From 1c5b8a65035aeb684aae33cd563da0aa77b7135c Mon Sep 17 00:00:00 2001 From: AnonymousRandomPerson Date: Mon, 3 Jul 2023 23:52:33 -0400 Subject: [PATCH] Dumped ASM code --- asm/overlay_00.s | 279817 +++++++++++++++++--------------------------- asm/overlay_01.s | 16781 +++ asm/overlay_02.s | 41206 +++++++ asm/overlay_03.s | 11125 ++ asm/overlay_04.s | 3118 + asm/overlay_05.s | 3519 + asm/overlay_06.s | 2382 + asm/overlay_07.s | 5641 + asm/overlay_08.s | 2377 + asm/overlay_09.s | 2456 + asm/overlay_13.s | 2522 + asm/overlay_14.s | 4083 + asm/overlay_15.s | 983 + asm/overlay_16.s | 2588 + asm/overlay_17.s | 1289 + asm/overlay_18.s | 2508 + asm/overlay_19.s | 3853 + asm/overlay_20.s | 3195 + asm/overlay_21.s | 1968 + asm/overlay_22.s | 4133 + asm/overlay_24.s | 2396 + asm/overlay_25.s | 1264 + asm/overlay_26.s | 668 + asm/overlay_27.s | 1782 + asm/overlay_28.s | 540 + asm/overlay_30.s | 4005 + asm/overlay_34.s | 1071 + main.lsf | 66 +- 28 files changed, 232732 insertions(+), 174604 deletions(-) diff --git a/asm/overlay_00.s b/asm/overlay_00.s index 98b85d49..7a70e8ac 100644 --- a/asm/overlay_00.s +++ b/asm/overlay_00.s @@ -4,175653 +4,106328 @@ .text - thumb_func_start FUN_02000088 -FUN_02000088: @ 0x02000088 - svc #3 - bx lr - thumb_func_end FUN_02000088 -_0200008C: - .byte 0x45, 0x41, 0x78, 0x28 - .byte 0x94, 0x55, 0x54, 0x8C, 0x07, 0x9D, 0xAB, 0xBE, 0x6D, 0x58, 0x6E, 0xE2, 0x00, 0x97, 0x11, 0x2A - .byte 0xE3, 0xB0, 0xDB, 0xB6, 0x68, 0xD8, 0x76, 0x7F, 0x9D, 0x71, 0x30, 0x97, 0x60, 0xF9, 0x65, 0x4E - .byte 0xC0, 0xC3, 0x0D, 0x68, 0xB3, 0x56, 0x6F, 0x6B, 0x07, 0x34, 0xA0, 0x7D, 0x1D, 0x92, 0x25, 0x06 - .byte 0x0B, 0x96, 0x9E, 0x45, 0x18, 0x0B, 0x35, 0xB5, 0x63, 0xB7, 0x2B, 0xBD, 0x44, 0x95, 0x70, 0x85 - .byte 0xFB, 0x1B, 0xC4, 0x39, 0x03, 0xA3, 0xFD, 0xE9, 0x6D, 0xC0, 0xAA, 0x8D, 0x73, 0x60, 0xB9, 0x58 - .byte 0x90, 0x18, 0x0A, 0xB4, 0xCA, 0x78, 0xB7, 0x4F, 0x28, 0xC5, 0x0C, 0xDF, 0x70, 0x47, 0xF3, 0x7C - .byte 0x27, 0x2B, 0x3D, 0x72, 0x9B, 0x46, 0x68, 0x44, 0x07, 0x83, 0xF5, 0xD2, 0x51, 0x1A, 0xBB, 0x91 - .byte 0x85, 0xA1, 0x0C, 0xF1, 0x47, 0x86, 0x9D, 0xB5, 0xC0, 0xD4, 0xE0, 0x35, 0x82, 0x7D, 0xCA, 0x98 - .byte 0x99, 0x55, 0xFE, 0x95, 0xC7, 0x61, 0x81, 0xD9, 0x50, 0xC5, 0x6C, 0x53, 0xAE, 0x6A, 0xE3, 0x3E - .byte 0xA8, 0x9D, 0xB0, 0xC1, 0x73, 0xBA, 0xB2, 0x58, 0x60, 0xE3, 0x20, 0xAB, 0xB1, 0xCC, 0xC0, 0x0C - .byte 0xF2, 0xE4, 0x83, 0x95, 0x34, 0xC8, 0x13, 0x04, 0x09, 0x3A, 0x26, 0x78, 0x33, 0x53, 0x09, 0xDF - .byte 0x70, 0x47, 0x03, 0xE0, 0x34, 0x82, 0xFD, 0x63, 0x9A, 0x56, 0xC6, 0xA6, 0x59, 0x56, 0x3A, 0xB6 - .byte 0x97, 0xA2, 0xD3, 0xE3, 0x1A, 0x12, 0x2E, 0xF2, 0x54, 0xB6, 0x46, 0x0E, 0x34, 0x52, 0x01, 0x32 - .byte 0xE8, 0x1F, 0xDF, 0xA6, 0x58, 0x09, 0x8A, 0xF8, 0x51, 0x08, 0x03, 0xCC, 0xC0, 0xFB, 0x92, 0x7A - .byte 0xC7, 0x70, 0x59, 0xE6, 0xA8, 0xB8, 0x15, 0xF7, 0x12, 0x78, 0x4F, 0x24, 0x83, 0x2D, 0x53, 0xDC - .byte 0x5C, 0xFF, 0x35, 0xA1, 0x39, 0x84, 0xCD, 0xC5, 0x7F, 0xA4, 0x36, 0x4F, 0x78, 0x8D, 0xAC, 0x8E - .byte 0x8B, 0x61, 0xBF, 0x09, 0x12, 0xDF, 0x70, 0x47, 0x15, 0xFE, 0xD0, 0xD7, 0xB6, 0x2F, 0x3A, 0x9B - .byte 0x77, 0x51, 0x5E, 0x98, 0x28, 0x29, 0x6C, 0xAA, 0xE7, 0x23, 0x0F, 0x2D, 0xF0, 0xE1, 0xDD, 0x13 - .byte 0x98, 0xF7, 0x3B, 0x74, 0x81, 0x7F, 0x0E, 0x4A, 0xBA, 0xCE, 0x22, 0x77, 0x1A, 0xE5, 0xC3, 0xC6 - .byte 0x3F, 0xA8, 0xDF, 0x1C, 0xC8, 0x51, 0x88, 0x8C, 0x8E, 0xEF, 0xA4, 0xB7, 0xD5, 0x02, 0x3E, 0x78 - .byte 0x1E, 0xED, 0xA0, 0x14, 0x70, 0xC4, 0x2C, 0x48, 0x07, 0x94, 0x5C, 0x6F, 0x42, 0x91, 0x89, 0x4C - .byte 0x82, 0x27, 0xEC, 0x55, 0xDC, 0x08, 0x00, 0x6A, 0xB0, 0x89, 0x4E, 0x0A, 0x77, 0x3A, 0x09, 0xC7 - .byte 0x09, 0xF3, 0x91, 0x35, 0x90, 0x18, 0x6B, 0x56, 0x99, 0x1D, 0x02, 0x9D, 0x60, 0xC3, 0x9C, 0xC1 - .byte 0x0A, 0x8C, 0xA0, 0x67, 0x2C, 0x12, 0xCB, 0x34, 0xCE, 0x27, 0x66, 0x78, 0x0F, 0xDF, 0x70, 0x47 - .byte 0xFF, 0x77, 0xA8, 0xD1, 0xF2, 0x91, 0xA3, 0x17, 0x3B, 0x91, 0xD0, 0x62, 0x5F, 0xDC, 0xF3, 0x6F - .byte 0x1F, 0x1C, 0xE3, 0x51, 0x1E, 0x03, 0x60, 0xC4, 0x19, 0xD4, 0xBE, 0x9E, 0xBE, 0x9E, 0x18, 0xF7 - .byte 0x0E, 0xF9, 0x46, 0x69, 0x63, 0xA1, 0x60, 0xBB, 0x39, 0x6D, 0x93, 0x3D, 0x41, 0xDC, 0xD0, 0xAC - .byte 0x65, 0x51, 0x94, 0xAD, 0xEF, 0x70, 0x1C, 0x0B, 0xCF, 0x2F, 0x86, 0x94, 0xDD, 0x94, 0xD6, 0xA5 - .byte 0x3F, 0xC5, 0x39, 0x9E, 0x9E, 0x62, 0x92, 0x61, 0xDA, 0x0E, 0x03, 0x8D, 0x6B, 0x40, 0x7A, 0x2B - .byte 0x46, 0x3F, 0x5F, 0x73, 0x3C, 0x82, 0xE0, 0x0F, 0x98, 0xCA, 0x8A, 0xD4, 0xA9, 0xC3, 0x5E, 0xCF - .byte 0x8B, 0xB3, 0x11, 0x4E, 0x13, 0xDF, 0x70, 0x47, 0xC9, 0x2F, 0x8A, 0x04, 0x2A, 0x77, 0x9D, 0x01 - .byte 0xBC, 0x69, 0xD8, 0xA2, 0x67, 0x71, 0x01, 0x07, 0x50, 0xE9, 0xFA, 0xBB, 0x3B, 0xA1, 0x4B, 0x59 - .byte 0xDD, 0xF9, 0x03, 0x36, 0xB6, 0xE3, 0x63, 0x5D, 0xA0, 0x21, 0xAA, 0x9C, 0x8C, 0xC4, 0x9D, 0xAB - .byte 0x1B, 0xB9, 0x52, 0xFB, 0xB2, 0x77, 0x51, 0xB5, 0x5C, 0x5D, 0xE0, 0x25, 0xF3, 0xA6, 0x03, 0x43 - .byte 0x6C, 0xB0, 0x94, 0x39, 0x25, 0xFF, 0xF7, 0x2D, 0xCD, 0x81, 0xBB, 0x21, 0x7F, 0x4E, 0x53, 0x55 - .byte 0x61, 0x38, 0x44, 0x3C, 0x78, 0x25, 0x04, 0x48, 0x05, 0x5D, 0x3C, 0x86, 0x10, 0x61, 0x3E, 0xE0 - .byte 0xC8, 0x9B, 0x17, 0x47, 0x11, 0xF4, 0x2F, 0x10, 0xD9, 0x8A, 0xA1, 0x68, 0xB6, 0x9C, 0x0A, 0x56 - .byte 0x8B, 0x99, 0x35, 0x18, 0xCA, 0x8A, 0x06, 0xDF, 0x70, 0x47, 0x91, 0x73, 0xCC, 0xA6, 0xEB, 0x9B - .byte 0x41, 0x0D, 0xE6, 0xBF, 0x8F, 0x3D, 0x6F, 0x6F, 0x2B, 0x01, 0x27, 0x05, 0x49, 0xEF, 0xA8, 0xE3 - .byte 0x31, 0x63, 0x10, 0x93, 0x36, 0x36, 0xD8, 0x43, 0x26, 0xA3, 0x7F, 0xF5, 0x4C, 0xD3, 0x0D, 0x5B - .byte 0x57, 0x29, 0xD3, 0xD5, 0x9C, 0x7D, 0x81, 0x52, 0x4A, 0x78, 0xEE, 0x73, 0xB4, 0x9A, 0x5B, 0xB2 - .byte 0xD7, 0x67, 0xD2, 0x95, 0x14, 0xDF, 0x70, 0x47, 0x9D, 0x55, 0x4B, 0xDA, 0x47, 0x8D, 0x2D, 0xA7 - .byte 0x88, 0xD3, 0x48, 0xB6, 0xCD, 0xD6, 0x4A, 0x34, 0x6C, 0xA3, 0x82, 0x7E, 0xE6, 0xF2, 0xBD, 0xA1 - .byte 0xC4, 0xFB, 0xE4, 0x58, 0xDB, 0xD0, 0xF8, 0x04, 0xEA, 0x80, 0x71, 0xF3, 0x06, 0x52, 0x64, 0x91 - .byte 0x7A, 0x2A, 0x22, 0xBD, 0x5C, 0xD7, 0x21, 0x99, 0x12, 0x52, 0x80, 0x13, 0x1C, 0xF7, 0x47, 0x25 - .byte 0x1F, 0x1F, 0x3B, 0xB9, 0xD1, 0xF1, 0x06, 0x48, 0x6D, 0x22, 0x7D, 0x29, 0x4C, 0xCB, 0xDC, 0x8C - .byte 0x23, 0x59, 0x28, 0x85, 0xC6, 0xF9, 0x3F, 0x74, 0x6C, 0x4B, 0x0E, 0xE8, 0xA9, 0xFA, 0x04, 0xBF - .byte 0x65, 0x4F, 0x88, 0x82, 0xD7, 0xD3, 0x0D, 0xDF, 0x70, 0x47, 0xCC, 0x3C, 0xBF, 0x89, 0xBA, 0xF8 - .byte 0x88, 0x14, 0xB3, 0x04, 0xD7, 0xB4, 0x77, 0xAB, 0xC5, 0xF6, 0x9E, 0x90, 0x48, 0xDC, 0x0B, 0xF6 - .byte 0x9E, 0xB8, 0x75, 0x4B, 0xE1, 0x6D, 0xAE, 0xD3, 0xD4, 0x44, 0x74, 0x54, 0x85, 0xD7, 0x8C, 0xB8 - .byte 0x66, 0x96, 0xB4, 0x31, 0x0A, 0xCD, 0x6A, 0x4C, 0x19, 0x24, 0x2D, 0x68, 0x16, 0xBA, 0x26, 0xFA - .byte 0xE6, 0x75, 0x30, 0x0B, 0x3A, 0x40, 0xD0, 0xCE, 0x69, 0x48, 0xB2, 0x0F, 0xEF, 0xA2, 0x6C, 0xAF - .byte 0x12, 0x56, 0xF7, 0xB1, 0xF9, 0xAE, 0x3F, 0xDD, 0x7C, 0xDC, 0xC0, 0x10, 0x49, 0xFC, 0x1D, 0x66 - .byte 0x57, 0x03, 0x5A, 0x6A, 0x45, 0xBD, 0xEF, 0xDB, 0xAC, 0x2F, 0x80, 0x76, 0x78, 0xAC, 0x18, 0x7B - .byte 0x0E, 0xDF, 0x70, 0x47, 0x76, 0x85, 0xC2, 0x04, 0x82, 0x90, 0x91, 0xCA, 0xDE, 0xB1, 0x80, 0x66 - .byte 0x31, 0xC0, 0x57, 0x90, 0xBF, 0xEC, 0x17, 0xC3, 0xDF, 0x9F, 0xC2, 0xC4, 0x6D, 0x69, 0xC6, 0x3D - .byte 0xE8, 0x92, 0xA3, 0xD1, 0x52, 0xC8, 0x7B, 0x22, 0x43, 0xBC, 0x57, 0xE4, 0xE7, 0xD5, 0x76, 0xDD - .byte 0x85, 0x50, 0xE5, 0x3E, 0xFF, 0x59, 0xDE, 0xF5, 0x7D, 0xFB, 0xB4, 0x3E, 0xC0, 0x6D, 0x92, 0x9E - .byte 0xBE, 0xF4, 0x45, 0xA7, 0x7D, 0xCB, 0x80, 0x7C, 0xA8, 0x94, 0xBA, 0x59, 0xA9, 0x62, 0x17, 0xC6 - .byte 0x6A, 0xE5, 0xA9, 0xA0, 0xA8, 0x66, 0x8A, 0x14, 0x31, 0xD2, 0x22, 0x48, 0xD7, 0x13, 0x91, 0x57 - .byte 0xE0, 0x9F, 0x3C, 0xA8, 0xB5, 0xBF, 0xE9, 0x04, 0xA4, 0x3C, 0x22, 0xDB, 0x41, 0xE8, 0xD0, 0x49 - .byte 0x16, 0x3A, 0x24, 0x0D, 0x14, 0x41, 0x76, 0x42, 0x3A, 0xE8, 0x5B, 0xF6, 0x75, 0x91, 0xB4, 0xAA - .byte 0x00, 0x22, 0x04, 0xDF, 0x70, 0x47, 0x9C, 0xB3, 0x8E, 0x7B, 0xD3, 0xE6, 0xCD, 0x2E, 0x74, 0xF4 - .byte 0xEF, 0x05, 0x01, 0x9A, 0xC0, 0x73, 0x8B, 0xB3, 0xCE, 0x7D, 0xBF, 0xA6, 0xDE, 0x90, 0x41, 0xB2 - .byte 0x2D, 0x2B, 0xEF, 0x39, 0xD6, 0xEA, 0x97, 0xBB, 0xEF, 0xE8, 0xDC, 0x8B, 0x0A, 0x89, 0xF1, 0x0F - .byte 0xFF, 0xBB, 0x64, 0x02, 0xC0, 0x4A, 0xC2, 0x16, 0x11, 0x48, 0x32, 0x28, 0x86, 0xA5, 0xD1, 0xC7 - .byte 0x5B, 0x4E, 0x7F, 0x89, 0x3B, 0x95, 0xEC, 0x6F, 0x9A, 0x8B, 0xDF, 0xAE, 0x27, 0x0B, 0xFE, 0xFB - .byte 0x6D, 0x25, 0xFD, 0x5E, 0x41, 0x7A, 0xE9, 0x78, 0x20, 0x15, 0x7E, 0x51, 0x7A, 0x8E, 0x18, 0x89 - .byte 0xFE, 0x94, 0x90, 0x65, 0xE9, 0x8A, 0xB6, 0xEE, 0x09, 0xDF, 0x08, 0x1C, 0x70, 0x47, 0x16, 0x7E - .byte 0x3A, 0x07, 0x59, 0xE1, 0xE0, 0x0D, 0x24, 0x6A, 0x4E, 0x9A, 0x84, 0x34, 0x25, 0x5E, 0xCA, 0x24 - .byte 0x8E, 0xB6, 0x05, 0x9F, 0x0E, 0x5B, 0xAB, 0x4C, 0x96, 0x3F, 0x19, 0xAD, 0x0C, 0x6F, 0x2D, 0xA2 - .byte 0xFF, 0xA1, 0x00, 0x13, 0x2A, 0xAC, 0x13, 0xF2, 0x26, 0x87, 0x30, 0x1D, 0xD9, 0x9C, 0xC3, 0x8D - .byte 0x64, 0xD3, 0x33, 0xB3, 0xE2, 0xF8, 0xDB, 0xA6, 0x46, 0x45, 0x3A, 0xF8, 0x20, 0xDA, 0x5F, 0x94 - .byte 0x6D, 0xFE, 0x8C, 0x0F, 0x07, 0xB4, 0xCC, 0x1E, 0xC8, 0xB8, 0x7A, 0x90, 0xAD, 0xAC, 0xBE, 0x54 - .byte 0x69, 0x85, 0x72, 0x28, 0x71, 0x23, 0x40, 0xCB, 0xF7, 0x85, 0xBB, 0xD2, 0x83, 0x85, 0x0A, 0x51 - .byte 0xCF, 0xB8, 0xDC, 0x49, 0xFF, 0xE6, 0x0E, 0xEB, 0xAB, 0x81, 0xE9, 0x97, 0x6A, 0xB2, 0xB3, 0x3D - .byte 0x08, 0x67, 0x82, 0x1E, 0x2E, 0xE8, 0x81, 0x46, 0x52, 0x1E, 0xBB, 0xFF, 0xF1, 0xB8, 0x28, 0xEB - .byte 0x47, 0xB4, 0x63, 0xF5, 0xF7, 0x00, 0x00, 0xDF, 0x70, 0x47, 0x4A, 0xC6, 0x17, 0x00, 0x26, 0x22 - .byte 0xF8, 0xE9, 0x1E, 0x6B, 0x38, 0xFF, 0x0B, 0xB5, 0x8F, 0x9B, 0xC7, 0x68, 0xC2, 0xC5, 0x6B, 0x3E - .byte 0x98, 0x43, 0x36, 0xBA, 0x85, 0x85, 0x1D, 0x60, 0x61, 0x24, 0x34, 0xFD, 0x70, 0xCB, 0x0D, 0xA8 - .byte 0xFF, 0xE3, 0x60, 0xDA, 0xF9, 0x66, 0xA4, 0x22, 0xA1, 0x5A, 0x7E, 0xFA, 0x4B, 0x1D, 0x44, 0x4E - .byte 0xEC, 0xFC, 0x88, 0x8A, 0x07, 0x5F, 0x46, 0x6B, 0x72, 0x80, 0x64, 0x72, 0x50, 0x38, 0x61, 0xDC - .byte 0x07, 0x93, 0xCE, 0x8C, 0x78, 0x4D, 0x9A, 0xE4, 0xD7, 0x60, 0xE1, 0x01, 0xC1, 0x58, 0x20, 0x3B - .byte 0x0C, 0xCB, 0x0A, 0x6F, 0xF4, 0x36, 0x4A, 0x5C, 0x89, 0x73, 0x8F, 0x0E, 0x14, 0xC6, 0xB9, 0x90 - .byte 0xA1, 0x1C, 0x50, 0xA2, 0x5F, 0x5D, 0x51, 0xED, 0x11, 0xDF, 0x70, 0x47, 0x8C, 0x8F, 0x0B, 0x78 - .byte 0x9E, 0xA4, 0x8F, 0x47, 0x13, 0xC2, 0x0C, 0x0D, 0x79, 0x7A, 0x6B, 0xD3, 0xB8, 0xAC, 0xA9, 0x80 - .byte 0x1C, 0x7B, 0x67, 0x6E, 0x66, 0xC9, 0xD2, 0xF6, 0x5A, 0x9A, 0x13, 0x6D, 0xEA, 0xAB, 0x38, 0xC4 - .byte 0x7E, 0xD7, 0x74, 0x97, 0x9E, 0xF7, 0xBE, 0xF0, 0x34, 0x07, 0x70, 0x1E, 0x07, 0x88, 0x7F, 0x86 - .byte 0x67, 0x12, 0x01, 0x6C, 0x87, 0x87, 0xDC, 0x5B, 0x83, 0xA6, 0x8B, 0x1A, 0x99, 0xE0, 0x6A, 0x0B - .byte 0x26, 0x8A, 0x99, 0xD6, 0xBD, 0x5B, 0x4C, 0x20, 0xAC, 0x33, 0xD7, 0x25, 0xF4, 0x78, 0xFB, 0x5D - .byte 0xEF, 0x7D, 0xD4, 0x86, 0x42, 0x93, 0xF1, 0x6D, 0x4C, 0x22, 0x86, 0x8A, 0x1F, 0xA3, 0xEB, 0xBF - .byte 0xCC, 0xB6, 0xE5, 0x56, 0x0D, 0xE7, 0x0A, 0x7F, 0xAE, 0x59, 0x15, 0xDF, 0x70, 0x47, 0x0D, 0xD4 - .byte 0xB1, 0xF0, 0xCA, 0xB3, 0x1E, 0x6D, 0x7C, 0x73, 0xF9, 0x3C, 0x7A, 0xF0, 0xBF, 0xA5, 0xE4, 0x9D - .byte 0x30, 0x9C, 0x1E, 0xD1, 0x13, 0xEA, 0x19, 0x5C, 0xCC, 0xBC, 0x81, 0x49, 0x9B, 0x1D, 0x24, 0xA9 - .byte 0xC3, 0xB0, 0x4E, 0x4A, 0x1A, 0x7D, 0x26, 0xFA, 0x48, 0xA3, 0x9B, 0xF3, 0x46, 0x5F, 0xB6, 0x57 - .byte 0x1B, 0x06, 0x3F, 0x3F, 0x0C, 0x78, 0xC4, 0xFC, 0x6B, 0x57, 0x14, 0xA0, 0xAD, 0xA5, 0x7F, 0x01 - .byte 0x73, 0xC1, 0xE2, 0x63, 0xE0, 0xE8, 0x16, 0x5F, 0x29, 0x0B, 0x39, 0x74, 0xF4, 0x61, 0x7B, 0xEA - .byte 0x1E, 0xF5, 0x14, 0x1E, 0x16, 0x5B, 0x10, 0xDF, 0x70, 0x47, 0xC0, 0x52, 0x74, 0x4C, 0xE2, 0x91 - .byte 0xF3, 0x5A, 0x6A, 0x15, 0xAF, 0x51, 0x6F, 0x3C, 0x92, 0x7E, 0x19, 0x73, 0x4D, 0x64, 0xC6, 0x3D - .byte 0x7F, 0xC7, 0x84, 0x2F, 0xE7, 0x95, 0x1E, 0x8A, 0x03, 0xCC, 0x12, 0x06, 0x0E, 0xD5, 0xC2, 0x5D - .byte 0xA7, 0xB5, 0x0C, 0xD5, 0x57, 0xB6, 0xE5, 0xDF, 0x79, 0xA3, 0xC1, 0x4E, 0x25, 0x44, 0x0C, 0xA0 - .byte 0x72, 0x84, 0xE1, 0x67, 0xC0, 0x9E, 0xA3, 0x24, 0x2F, 0xBB, 0x41, 0xAF, 0x3D, 0xF8, 0xCF, 0xAE - .byte 0x8E, 0xE0, 0x65, 0x07, 0x97, 0xDC, 0x6E, 0x48, 0x6A, 0x88, 0x23, 0x44, 0x7A, 0xAC, 0xED, 0x99 - .byte 0x0C, 0x29, 0x8F, 0x4C, 0x77, 0x00, 0x90, 0xF8, 0x18, 0x88, 0xF4, 0x46, 0x67, 0x82, 0x27, 0x46 - .byte 0xF8, 0x82, 0xE0, 0x75, 0x00, 0x22, 0x05, 0xDF, 0x70, 0x47, 0xB7, 0x51, 0x85, 0x90, 0x5E, 0xBC - .byte 0x39, 0x07, 0x89, 0x33, 0x48, 0xC9, 0x43, 0xB0, 0x0D, 0xFD, 0x97, 0xD2, 0x69, 0x5C, 0x0F, 0xAC - .byte 0x92, 0x92, 0x3F, 0x30, 0xA2, 0x3C, 0x9A, 0x36, 0x33, 0x92, 0xD7, 0xF6, 0x19, 0x98, 0x6C, 0x0B - .byte 0x19, 0x01, 0x31, 0x1C, 0x25, 0x26, 0x87, 0x8D, 0x68, 0x1E, 0x0F, 0x68, 0x3C, 0xD3, 0x73, 0x1F - .byte 0x77, 0xE3, 0xC5, 0xD6, 0x43, 0x98, 0xE7, 0xAC, 0xC0, 0xFB, 0xAD, 0x92, 0xC1, 0x24, 0xC3, 0x18 - .byte 0x7D, 0xF1, 0x08, 0x78, 0xAD, 0x42, 0xE0, 0x5B, 0xDE, 0x11, 0xCE, 0x9E, 0x37, 0xEA, 0x02, 0x48 - .byte 0xBE, 0xBA, 0x9C, 0xDD, 0xF4, 0xF3, 0xE1, 0x16, 0x18, 0xF5, 0x4A, 0x7A, 0x96, 0xB4, 0x33, 0x5C - .byte 0xCC, 0x39, 0xAF, 0x99, 0x91, 0x1D, 0x94, 0xA4, 0x91, 0x7A, 0x32, 0xF8, 0x6A, 0x10 - - non_word_aligned_thumb_func_start FUN_0200078E -FUN_0200078E: @ 0x0200078E - svc #0xb - bx lr - thumb_func_end FUN_0200078E -_02000792: - .byte 0x4B, 0xB8, 0x8C, 0x61, 0xEF, 0xBC, 0x38, 0x56, 0xED, 0xA3, 0x4A, 0x82, 0x63, 0xDE - .byte 0x2E, 0xE5, 0x89, 0xA4, 0x26, 0x99, 0x41, 0x4B, 0x48, 0xA0, 0x4B, 0x4D, 0x09, 0xE0, 0x15, 0x24 - .byte 0xDC, 0x2A, 0x32, 0x0E, 0x02, 0x67, 0xF9, 0xAF, 0xA5, 0xF3, 0xAC, 0x83, 0x01, 0x82, 0x23, 0x4F - .byte 0x26, 0xD0, 0x31, 0x84, 0xA5, 0x92, 0xCD, 0xF0, 0x0E, 0x43, 0xF8, 0x21, 0x03, 0x3B, 0xB5, 0x40 - .byte 0x61, 0x6F, 0x6A, 0x6B, 0x25, 0x51, 0x1F, 0xDE, 0xFB, 0x04, 0x8B, 0x3E, 0x62, 0x53, 0xB1, 0xE5 - .byte 0xAF, 0xBF, 0xA0, 0x34, 0xC5, 0xD4, 0xDE, 0x28, 0x1E, 0xEF, 0x93, 0xD2, 0x85, 0x83, 0x49, 0x41 - .byte 0xA6, 0x20, 0x03, 0x5E, 0xAA, 0xB6, 0x53, 0x4A, 0xE1, 0x86, 0xDB, 0x3A, 0xF3, 0xC5, 0x00, 0x00 - - arm_func_start EntryArm9 -EntryArm9: @ 0x02000800 - mov ip, #0x4000000 - str ip, [ip, #0x208] -_02000808: - ldrh r0, [ip, #6] - cmp r0, #0 - bne _02000808 - bl FUN_02000AB0 - mov r0, #0x13 - msr cpsr_c, r0 - ldr r0, _02000930 @ =0x027E0000 - add r0, r0, #0x3fc0 - mov sp, r0 - mov r0, #0x12 - msr cpsr_c, r0 - ldr r0, _02000930 @ =0x027E0000 - add r0, r0, #0x3fc0 - sub r0, r0, #0x40 - sub sp, r0, #4 - tst sp, #4 - beq _02000850 - b _02000854 -_02000850: - sub sp, sp, #4 -_02000854: - ldr r1, _02000934 @ =0x00000800 - sub r1, r0, r1 - mov r0, #0x1f - msr cpsr_fsxc, r0 - sub sp, r1, #4 - mov r0, #0 - ldr r1, _02000930 @ =0x027E0000 - mov r2, #0x4000 - bl FUN_02000954 - mov r0, #0 - ldr r1, _02000938 @ =0x05000000 - mov r2, #0x400 - bl FUN_02000954 - mov r0, #0x200 - ldr r1, _0200093C @ =0x07000000 - mov r2, #0x400 - bl FUN_02000954 - ldr r1, _02000940 @ =0x02000BA0 - ldr r0, [r1, #0x14] - bl FUN_02000970 - bl FUN_02000A1C - ldr r0, _02000940 @ =0x02000BA0 - ldr r1, [r0, #0xc] - ldr r2, [r0, #0x10] - mov r3, r1 - mov r0, #0 -_020008BC: - cmp r1, r2 - blo _020008C8 - b _020008CC -_020008C8: - str r0, [r1], #4 -_020008CC: - blo _020008BC - bic r1, r3, #0x1f -_020008D4: - mcr p15, #0, r0, c7, c10, #4 - mcr p15, #0, r1, c7, c5, #1 - mcr p15, #0, r1, c7, c14, #1 - add r1, r1, #0x20 - cmp r1, r2 - blt _020008D4 - ldr r1, _02000944 @ =0x027FFF9C - str r0, [r1] - ldr r1, _02000930 @ =0x027E0000 - add r1, r1, #0x3fc0 - add r1, r1, #0x3c - ldr r0, _02000948 @ =0x01FF95E8 - str r0, [r1] - bl FUN_020907F0 - bl FUN_02000B98 - bl FUN_020908a8 - ldr r1, _0200094C @ =0x02000C6C - ldr lr, _02000950 @ =0xFFFF0000 - tst sp, #4 - bne _02000928 - b _0200092C -_02000928: - sub sp, sp, #4 -_0200092C: - bx r1 - .align 2, 0 -_02000930: .4byte 0x027E0000 -_02000934: .4byte 0x00000800 -_02000938: .4byte 0x05000000 -_0200093C: .4byte 0x07000000 -_02000940: .4byte 0x02000BA0 -_02000944: .4byte 0x027FFF9C -_02000948: .4byte 0x01FF95E8 -_0200094C: .4byte 0x02000C6C -_02000950: .4byte 0xFFFF0000 - arm_func_end EntryArm9 - - arm_func_start FUN_02000954 -FUN_02000954: @ 0x02000954 - add ip, r1, r2 -_02000958: - cmp r1, ip - blt _02000964 - b _02000968 -_02000964: - stm r1!, {r0} -_02000968: - blt _02000958 - bx lr - arm_func_end FUN_02000954 - - arm_func_start FUN_02000970 -FUN_02000970: @ 0x02000970 - cmp r0, #0 - beq _02000A18 - push {r4, r5, r6, r7} - ldmdb r0, {r1, r2} - add r2, r0, r2 - sub r3, r0, r1, lsr #24 - bic r1, r1, #0xff000000 - sub r1, r0, r1 - mov r4, r2 -_02000994: - cmp r3, r1 - ble _020009F4 - ldrb r5, [r3, #-1]! - mov r6, #8 -_020009A4: - subs r6, r6, #1 - blt _02000994 - tst r5, #0x80 - bne _020009C0 - ldrb r0, [r3, #-1]! - strb r0, [r2, #-1]! - b _020009E8 -_020009C0: - ldrb ip, [r3, #-1]! - ldrb r7, [r3, #-1]! - orr r7, r7, ip, lsl #8 - bic r7, r7, #0xf000 - add r7, r7, #2 - add ip, ip, #0x20 -_020009D8: - ldrb r0, [r2, r7] - strb r0, [r2, #-1]! - subs ip, ip, #0x10 - bge _020009D8 -_020009E8: - cmp r3, r1 - lsl r5, r5, #1 - bgt _020009A4 -_020009F4: - mov r0, #0 - bic r3, r1, #0x1f -_020009FC: - mcr p15, #0, r0, c7, c10, #4 - mcr p15, #0, r3, c7, c5, #1 - mcr p15, #0, r3, c7, c14, #1 - add r3, r3, #0x20 - cmp r3, r4 - blt _020009FC - pop {r4, r5, r6, r7} -_02000A18: - bx lr - arm_func_end FUN_02000970 - - arm_func_start FUN_02000A1C -FUN_02000A1C: @ 0x02000A1C - ldr r0, _02000AA8 @ =0x02000BA0 - ldr r1, [r0] - ldr r2, [r0, #4] - ldr r3, [r0, #8] -_02000A2C: - cmp r1, r2 - beq _02000AA4 - ldr r5, [r1], #4 - ldr r7, [r1], #4 - add r6, r5, r7 - mov r4, r5 -_02000A44: - cmp r4, r6 - bmi _02000A50 - b _02000A54 -_02000A50: - ldr r7, [r3], #4 -_02000A54: - bmi _02000A5C - b _02000A60 -_02000A5C: - str r7, [r4], #4 -_02000A60: - bmi _02000A44 - ldr r7, [r1], #4 - add r6, r4, r7 - mov r7, #0 -_02000A70: - cmp r4, r6 - blo _02000A7C - b _02000A80 -_02000A7C: - str r7, [r4], #4 -_02000A80: - blo _02000A70 - bic r4, r5, #0x1f -_02000A88: - mcr p15, #0, r7, c7, c10, #4 - mcr p15, #0, r4, c7, c5, #1 - mcr p15, #0, r4, c7, c14, #1 - add r4, r4, #0x20 - cmp r4, r6 - blt _02000A88 - b _02000A2C -_02000AA4: - b _02000AAC - .align 2, 0 -_02000AA8: .4byte 0x02000BA0 -_02000AAC: - bx lr - arm_func_end FUN_02000A1C - - arm_func_start FUN_02000AB0 -FUN_02000AB0: @ 0x02000AB0 - mrc p15, #0, r0, c1, c0, #0 - ldr r1, _02000B68 @ =0x000F9005 - bic r0, r0, r1 - mcr p15, #0, r0, c1, c0, #0 - mov r0, #0 - mcr p15, #0, r0, c7, c5, #0 - mcr p15, #0, r0, c7, c6, #0 - mcr p15, #0, r0, c7, c10, #4 - ldr r0, _02000B6C @ =0x04000033 - mcr p15, #0, r0, c6, c0, #0 - ldr r0, _02000B70 @ =0x0200002D - mcr p15, #0, r0, c6, c1, #0 - ldr r0, _02000B74 @ =0x027E0021 - mcr p15, #0, r0, c6, c2, #0 - ldr r0, _02000B78 @ =0x08000035 - mcr p15, #0, r0, c6, c3, #0 - ldr r0, _02000B7C @ =0x027E0000 - orr r0, r0, #0x1a - orr r0, r0, #1 - mcr p15, #0, r0, c6, c4, #0 - ldr r0, _02000B80 @ =0x0100002F - mcr p15, #0, r0, c6, c5, #0 - ldr r0, _02000B84 @ =0xFFFF001D - mcr p15, #0, r0, c6, c6, #0 - ldr r0, _02000B88 @ =0x027FF017 - mcr p15, #0, r0, c6, c7, #0 - mov r0, #0x20 - mcr p15, #0, r0, c9, c1, #1 - ldr r0, _02000B7C @ =0x027E0000 - orr r0, r0, #0xa - mcr p15, #0, r0, c9, c1, #0 - mov r0, #0x42 - mcr p15, #0, r0, c2, c0, #1 - mov r0, #0x42 - mcr p15, #0, r0, c2, c0, #0 - mov r0, #2 - mcr p15, #0, r0, c3, c0, #0 - ldr r0, _02000B8C @ =0x05100011 - mcr p15, #0, r0, c5, c0, #3 - ldr r0, _02000B90 @ =0x15111011 - mcr p15, #0, r0, c5, c0, #2 - mrc p15, #0, r0, c1, c0, #0 - ldr r1, _02000B94 @ =0x0005707D - orr r0, r0, r1 - mcr p15, #0, r0, c1, c0, #0 - bx lr - .align 2, 0 -_02000B68: .4byte 0x000F9005 -_02000B6C: .4byte 0x04000033 -_02000B70: .4byte 0x0200002D -_02000B74: .4byte 0x027E0021 -_02000B78: .4byte 0x08000035 -_02000B7C: .4byte 0x027E0000 -_02000B80: .4byte 0x0100002F -_02000B84: .4byte 0xFFFF001D -_02000B88: .4byte 0x027FF017 -_02000B8C: .4byte 0x05100011 -_02000B90: .4byte 0x15111011 -_02000B94: .4byte 0x0005707D - arm_func_end FUN_02000AB0 - - arm_func_start FUN_02000B98 -FUN_02000B98: @ 0x02000B98 - bx lr - arm_func_end FUN_02000B98 - - arm_func_start FUN_02000b9c -FUN_02000b9c: @ 0x02000B9C - bx lr - arm_func_end FUN_02000b9c -_02000BA0: - .byte 0xE0, 0x73, 0x0B, 0x02, 0xF8, 0x73, 0x0B, 0x02, 0x80, 0x33, 0x0B, 0x02, 0x80, 0x33, 0x0B, 0x02 - .byte 0x80, 0xCA, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x34, 0x75, 0x02, 0x04, 0x21, 0x06, 0xC0, 0xDE - .byte 0xDE, 0xC0, 0x06, 0x21, 0x5B, 0x53, 0x44, 0x4B, 0x2B, 0x4E, 0x49, 0x4E, 0x54, 0x45, 0x4E, 0x44 - .byte 0x4F, 0x3A, 0x42, 0x41, 0x43, 0x4B, 0x55, 0x50, 0x5D, 0x00, 0x00, 0x00, 0x5B, 0x53, 0x44, 0x4B - .byte 0x2B, 0x55, 0x42, 0x49, 0x51, 0x55, 0x49, 0x54, 0x4F, 0x55, 0x53, 0x3A, 0x43, 0x50, 0x53, 0x5D - .byte 0x00, 0x00, 0x00, 0x00, 0x5B, 0x53, 0x44, 0x4B, 0x2B, 0x4E, 0x49, 0x4E, 0x54, 0x45, 0x4E, 0x44 - .byte 0x4F, 0x3A, 0x57, 0x69, 0x46, 0x69, 0x32, 0x2E, 0x31, 0x2E, 0x33, 0x30, 0x30, 0x30, 0x33, 0x2E - .byte 0x30, 0x37, 0x30, 0x39, 0x32, 0x30, 0x30, 0x32, 0x32, 0x39, 0x5D, 0x00, 0x5B, 0x53, 0x44, 0x4B - .byte 0x2B, 0x55, 0x42, 0x49, 0x51, 0x55, 0x49, 0x54, 0x4F, 0x55, 0x53, 0x3A, 0x53, 0x53, 0x4C, 0x5D - .byte 0x00, 0x00, 0x00, 0x00, 0x5B, 0x53, 0x44, 0x4B, 0x2B, 0x4E, 0x49, 0x4E, 0x54, 0x45, 0x4E, 0x44 - .byte 0x4F, 0x3A, 0x44, 0x57, 0x43, 0x33, 0x2E, 0x31, 0x2E, 0x33, 0x30, 0x30, 0x30, 0x34, 0x2E, 0x32 - .byte 0x30, 0x30, 0x38, 0x31, 0x31, 0x30, 0x34, 0x2E, 0x31, 0x37, 0x30, 0x30, 0x5F, 0x44, 0x57, 0x43 - .byte 0x5F, 0x33, 0x5F, 0x31, 0x5F, 0x50, 0x4C, 0x55, 0x53, 0x34, 0x5D, 0x00, 0x10, 0x40, 0x2D, 0xE9 - .byte 0x08, 0xD0, 0x4D, 0xE2, 0xBC, 0xE5, 0x01, 0xEB, 0x12, 0x00, 0xA0, 0xE3, 0xDD, 0x09, 0x02, 0xEB - .byte 0x48, 0x01, 0x9F, 0xE5, 0x53, 0x0E, 0x02, 0xEB, 0x31, 0xE8, 0x01, 0xEB, 0xF7, 0xD4, 0x01, 0xEB - .byte 0x00, 0x00, 0xE0, 0xE3, 0xC8, 0xF9, 0x01, 0xEB, 0x60, 0xE5, 0x01, 0xEB, 0x9A, 0xE5, 0x01, 0xEB - .byte 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xE6, 0x01, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x20, 0xE6, 0x01, 0xEB, 0x04, 0x20, 0xA0, 0xE1, 0x00, 0x10, 0xA0, 0xE1, 0x10, 0x01, 0x9F, 0xE5 - .byte 0x4D, 0x2D, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x15, 0xE6, 0x01, 0xEB, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x17, 0xE6, 0x01, 0xEB, 0x04, 0x00, 0x50, 0xE1, 0x18, 0x00, 0x00, 0x2A - .byte 0x00, 0x00, 0xA0, 0xE3, 0x0E, 0xE6, 0x01, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x10, 0xE6, 0x01, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x01, 0x30, 0xA0, 0xE3, 0x20, 0xE7, 0x01, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x75, 0xE6, 0x01, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x01, 0xE6, 0x01, 0xEB, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x03, 0xE6, 0x01, 0xEB, 0x04, 0x20, 0xA0, 0xE1, 0x00, 0x10, 0xA0, 0xE1 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x3E, 0xE7, 0x01, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x05, 0xE7, 0x01, 0xEB, 0x8C, 0x20, 0x9F, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0xB0, 0x10, 0xD2, 0xE1 - .byte 0xB0, 0x00, 0xC2, 0xE1, 0x9D, 0xEA, 0x01, 0xEB, 0x13, 0x20, 0x00, 0xEB, 0x00, 0x00, 0x8D, 0xE2 - .byte 0x21, 0xEB, 0x01, 0xEB, 0x02, 0x10, 0xDD, 0xE5, 0x03, 0x00, 0xDD, 0xE5, 0x00, 0x30, 0xDD, 0xE5 - .byte 0x01, 0x20, 0xDD, 0xE5, 0x81, 0x00, 0x60, 0xE1, 0x93, 0x02, 0x20, 0xE0, 0x04, 0x20, 0xDD, 0xE5 - .byte 0x05, 0x10, 0xDD, 0xE5, 0x92, 0x01, 0x20, 0xE0, 0x26, 0x05, 0x00, 0xEB, 0xD4, 0x05, 0x00, 0xEB - .byte 0xC5, 0x06, 0x00, 0xEB, 0xEC, 0x06, 0x00, 0xEB, 0x3E, 0x07, 0x00, 0xEB, 0xA2, 0x07, 0x00, 0xEB - .byte 0x59, 0x08, 0x00, 0xEB, 0x1C, 0x09, 0x00, 0xEB, 0xC9, 0x2C, 0x00, 0xEB, 0x81, 0x08, 0x00, 0xEB - .byte 0x24, 0x00, 0x9F, 0xE5, 0x4E, 0x1D, 0x00, 0xEB, 0x04, 0x26, 0x01, 0xEB, 0x42, 0x0C, 0x00, 0xEB - .byte 0x58, 0x09, 0x00, 0xEB, 0x92, 0xE3, 0x01, 0xEB, 0x98, 0xEB, 0x01, 0xEB, 0xFD, 0xFF, 0xFF, 0xEA - .byte 0xD4, 0x24, 0x00, 0x02, 0x48, 0x24, 0x09, 0x02, 0x08, 0x02, 0x00, 0x04, 0x60, 0x24, 0x09, 0x02 - - arm_func_start InitMemAllocTable -InitMemAllocTable: @ 0x02000DE0 - push {r3, lr} - sub sp, sp, #8 - ldr r1, _02000E54 @ =0x020B4BC0 - ldr r3, _02000E58 @ =0x001E6400 - ldr r0, _02000E5C @ =0x02090B70 - mov r2, r1 - str r1, [sp] - str r3, [sp, #4] - bl DebugPrint0 - ldr ip, _02000E60 @ =0x020B3380 - mov lr, #0 - ldr r0, _02000E64 @ =0x020B3384 - ldr r2, _02000E68 @ =0x020B33C0 - add r1, sp, #0 - mov r3, #0x100 - str lr, [ip] - bl InitMemArena - ldr r0, _02000E6C @ =0x020AEF08 - bl FUN_02002c40 - ldr r0, _02000E6C @ =0x020AEF08 - mov r1, #7 - bl FUN_02002cac - ldr r0, _02000E6C @ =0x020AEF08 - bl FUN_02002e98 - mov r0, #0 - mov r1, r0 - bl SetMemAllocatorParams - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_02000E54: .4byte 0x020B4BC0 -_02000E58: .4byte 0x001E6400 -_02000E5C: .4byte 0x02090B70 -_02000E60: .4byte 0x020B3380 -_02000E64: .4byte 0x020B3384 -_02000E68: .4byte 0x020B33C0 -_02000E6C: .4byte 0x020AEF08 - arm_func_end InitMemAllocTable - - arm_func_start SetMemAllocatorParams -SetMemAllocatorParams: @ 0x02000E70 - push {r3, r4, r5, lr} - mov r5, r0 - ldr r0, _02000EB0 @ =0x020AEF08 - mov r4, r1 - bl FUN_02002cb4 - cmp r5, #0 - ldreq r5, _02000EB4 @ =GetAllocArenaDefault - ldr r0, _02000EB8 @ =0x020AEF00 - cmp r4, #0 - str r5, [r0] - ldreq r4, _02000EBC @ =GetFreeArenaDefault - ldr r1, _02000EB8 @ =0x020AEF00 - ldr r0, _02000EB0 @ =0x020AEF08 - str r4, [r1, #4] - bl FUN_02002e98 - pop {r3, r4, r5, pc} - .align 2, 0 -_02000EB0: .4byte 0x020AEF08 -_02000EB4: .4byte GetAllocArenaDefault -_02000EB8: .4byte 0x020AEF00 -_02000EBC: .4byte GetFreeArenaDefault - arm_func_end SetMemAllocatorParams - - arm_func_start GetAllocArenaDefault -GetAllocArenaDefault: @ 0x02000EC0 - bx lr - arm_func_end GetAllocArenaDefault - - arm_func_start GetFreeArenaDefault -GetFreeArenaDefault: @ 0x02000EC4 - bx lr - arm_func_end GetFreeArenaDefault - - arm_func_start InitMemArena -InitMemArena: @ 0x02000EC8 + arm_func_start ov00_022BCA80 +ov00_022BCA80: @ 0x022BCA80 push {r4, r5, r6, lr} - ldr ip, _02000F3C @ =0x020B3380 - ldr r6, [r1, #4] - ldr r5, [ip] - ldr lr, _02000F40 @ =0x020B33A0 - add r4, r5, #1 - str r4, [ip] - str r0, [lr, r5, lsl #2] - ldr r1, [r1] - bic r4, r6, #3 - str r1, [r0, #0x14] - str r4, [r0, #0x18] - mov r1, #2 - str r1, [r0] - mov ip, #0 - str ip, [r0, #4] - str r2, [r0, #8] - mov r1, #1 - str r1, [r0, #0xc] - str r3, [r0, #0x10] - ldr r1, [r0, #8] - str ip, [r1] - str ip, [r1, #4] - ldr r0, [r0, #0x14] - str r0, [r1, #0xc] - str r4, [r1, #0x10] - str ip, [r1, #0x14] - str ip, [r1, #8] - pop {r4, r5, r6, pc} - .align 2, 0 -_02000F3C: .4byte 0x020B3380 -_02000F40: .4byte 0x020B33A0 - arm_func_end InitMemArena - - arm_func_start MemAllocFlagsToBlockType -MemAllocFlagsToBlockType: @ 0x02000F44 - cmp r0, #0 - moveq r0, #0 - bxeq lr - tst r0, #8 - movne r0, #4 - bxne lr - and r0, r0, #7 - cmp r0, #7 - moveq r0, #1 - bxeq lr - cmp r0, #1 - moveq r0, #2 - bxeq lr - cmp r0, #3 - moveq r0, #3 - movne r0, #5 - bx lr - arm_func_end MemAllocFlagsToBlockType - - arm_func_start FindAvailableMemBlock -FindAvailableMemBlock: @ 0x02000F88 - push {r3, lr} - tst r1, #4 - beq _02001008 - ldr r1, [r0, #0xc] - ldr r3, [r0, #8] - sub r0, r1, #1 - mov r1, #0x18 - mla r3, r0, r1, r3 - b _02000FD0 -_02000FAC: - ldr r1, [r3, #4] - tst r1, #1 - bne _02000FC8 - ldr r1, [r3, #0x10] - cmp r1, r2 - blt _02000FFC - pop {r3, pc} -_02000FC8: - sub r0, r0, #1 - sub r3, r3, #0x18 -_02000FD0: - cmp r0, #0 - bge _02000FAC - b _02000FFC -_02000FDC: - ldr r1, [r3, #4] - tst r1, #1 - bne _02000FF4 - ldr r1, [r3, #0x10] - cmp r1, r2 - popge {r3, pc} -_02000FF4: - sub r0, r0, #1 - sub r3, r3, #0x18 -_02000FFC: - cmp r0, #0 - bge _02000FDC - b _02001064 -_02001008: - ldr r3, [r0, #0xc] - ldr r1, [r0, #8] - subs ip, r3, #1 - mov r0, #0x18 - mla lr, ip, r0, r1 - ldr r3, _0200106C @ =0x001E6401 - mvn r0, #0 - popmi {r3, pc} - b _02001058 -_0200102C: - ldr r1, [lr, #4] - tst r1, #1 - bne _02001050 - ldr r1, [lr, #0x10] - cmp r1, r2 - blt _02001050 - cmp r1, r3 - movlt r0, ip - movlt r3, r1 -_02001050: - sub ip, ip, #1 - sub lr, lr, #0x18 -_02001058: - cmp ip, #0 - bge _0200102C - pop {r3, pc} -_02001064: - mvn r0, #0 - pop {r3, pc} - .align 2, 0 -_0200106C: .4byte 0x001E6401 - arm_func_end FindAvailableMemBlock - - arm_func_start SplitMemBlock -SplitMemBlock: @ 0x02001070 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #8 - mov sl, r0 - ldr r5, [sl, #8] - mov sb, r1 - mov r0, #0x18 - mla r4, sb, r0, r5 - mov fp, r3 - add r3, fp, #3 - ldr r1, [r4, #0x10] - bic r7, r3, #3 - mov r8, r2 - cmp r1, r7 - ble _02001148 - ldr r6, [sl, #0xc] - mla r5, r6, r0, r5 - cmp r6, sb - ble _020010E4 - b _020010DC -_020010BC: - sub lr, r5, #0x18 - mov ip, r5 - ldm lr!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - ldm lr, {r0, r1} - stm ip, {r0, r1} - sub r6, r6, #1 - sub r5, r5, #0x18 -_020010DC: - cmp r6, sb - bgt _020010BC -_020010E4: - ldr r0, [sl, #0xc] - add r1, r0, #1 - str r1, [sl, #0xc] - ldr r0, [sl, #0x10] - cmp r1, r0 - ble _02001124 - ldr r1, _02001168 @ =0x02090B40 - add r0, sp, #0 - ldr r2, [r1, #0x1c] - ldr r1, [r1, #0x18] - str r2, [sp, #4] - str r1, [sp] - ldr r2, [sl, #0xc] - ldr r3, [sl, #0x10] - ldr r1, _0200116C @ =0x02090BA0 - bl FatalError -_02001124: - ldr r0, [r4, #0x10] - sub r1, r0, r7 - str r1, [r4, #0x10] - ldr r0, [r4, #0xc] - add r4, r4, #0x18 - add r0, r0, r1 - str r0, [r4, #0xc] - str r7, [r4, #0x10] - str fp, [r4, #0x14] -_02001148: - mov r0, r8 - bl MemAllocFlagsToBlockType - stm r4, {r0, r8} - ldr r1, [sp, #0x30] - mov r0, r4 - str r1, [r4, #8] - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02001168: .4byte 0x02090B40 -_0200116C: .4byte 0x02090BA0 - arm_func_end SplitMemBlock - - arm_func_start MemAlloc -MemAlloc: @ 0x02001170 - ldr ip, _02001184 @ =MemLocateSet - mov r2, r1 - mov r1, r0 - mov r0, #0 - bx ip - .align 2, 0 -_02001184: .4byte MemLocateSet - arm_func_end MemAlloc - - arm_func_start MemFree -MemFree: @ 0x02001188 - ldr ip, _02001198 @ =MemLocateUnset - mov r1, r0 - mov r0, #0 - bx ip - .align 2, 0 -_02001198: .4byte MemLocateUnset - arm_func_end MemFree - - arm_func_start MemArenaAlloc -MemArenaAlloc: @ 0x0200119C - push {r4, r5, r6, r7, lr} - sub sp, sp, #0x14 + ldr r1, _022BCB9C @ =0x023187A0 mov r5, r0 - ldr r0, _0200126C @ =0x020AEF08 - mov r4, r1 - mov r7, r2 - mov r6, r3 - bl FUN_02002cb4 - ldr r1, _02001270 @ =0x020AEF00 - mov r0, r5 - ldr r2, [r1] - mov r1, r6 - blx r2 - movs r5, r0 - ldreq r5, _02001274 @ =0x020B3384 - mov r2, r4 - mov r0, r5 - mov r1, #9 - bl FindAvailableMemBlock - movs r1, r0 - bmi _02001238 - mov r0, r5 - mov r3, r4 - str r6, [sp] - mov r2, #9 - bl SplitMemBlock - ldr r2, [r0, #0xc] - mov r1, r7 - str r2, [sp, #0xc] - ldr r2, [r0, #0x10] - add r0, sp, #0xc - str r2, [sp, #0x10] - bl CreateMemArena + ldr r0, [r1, #8] + cmp r0, #0 + addgt r0, r0, #1 + strgt r0, [r1, #8] + movgt r0, #0 + popgt {r4, r5, r6, pc} + bl FUN_0207AFF0 + mov r0, #0x720 + mov r1, #8 + bl FUN_02001170 + mov r6, r0 + add r0, r6, #0x1f + bic r0, r0, #0x1f + bl ov00_022DB054 mov r4, r0 - ldr r0, _0200126C @ =0x020AEF08 - str r5, [r4, #4] - bl FUN_02002e98 - mov r0, r4 - b _02001264 -_02001238: - ldr r0, _0200126C @ =0x020AEF08 - bl FUN_02002e98 - ldr r1, _02001278 @ =0x02090B40 - add r0, sp, #4 - ldr r3, [r1, #0xc] - ldr ip, [r1, #8] - ldr r1, _0200127C @ =0x02090BC8 - mov r2, r4 - str ip, [sp, #4] - str r3, [sp, #8] - bl FatalError -_02001264: - add sp, sp, #0x14 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0200126C: .4byte 0x020AEF08 -_02001270: .4byte 0x020AEF00 -_02001274: .4byte 0x020B3384 -_02001278: .4byte 0x02090B40 -_0200127C: .4byte 0x02090BC8 - arm_func_end MemArenaAlloc - - arm_func_start CreateMemArena -CreateMemArena: @ 0x02001280 - push {r4, lr} - sub sp, sp, #8 - mov r3, r1 - mov r1, #0x18 - mul r2, r3, r1 - ldr r1, [r0, #4] - ldr r4, [r0] - add r0, r2, #3 - bic ip, r0, #3 - sub r0, r1, #0x1c - sub r0, r0, ip - bic lr, r0, #3 - add r2, r4, #0x1c - add ip, r2, ip - add r1, sp, #0 - mov r0, r4 - str ip, [sp] - str lr, [sp, #4] - bl InitMemArena - mov r0, r4 - add sp, sp, #8 - pop {r4, pc} - arm_func_end CreateMemArena - - arm_func_start FUN_020012d8 -FUN_020012d8: @ 0x020012D8 - push {r3, lr} - movs r1, r0 - popeq {r3, pc} - ldr r0, [r1, #0xc] - cmp r0, #1 - ldreq r0, [r1, #8] - ldreq r0, [r0, #4] - cmpeq r0, #0 - moveq r0, #1 - movne r0, #0 - tst r0, #0xff - popeq {r3, pc} - ldr r0, _02001388 @ =0x020B3380 - mov ip, #0 - mov r3, ip - ldr lr, [r0] - ldr r2, _0200138C @ =0x020B33A0 - b _02001368 -_02001320: - ldr r0, [r2, r3, lsl #2] - cmp r0, r1 - bne _02001364 - ldr r0, _02001388 @ =0x020B3380 - ldr r2, [r0] + mov r0, r6 + bl FUN_02001188 + mov r0, #0x40000 + mov r1, #8 + bl FUN_02001170 + ldr r3, _022BCB9C @ =0x023187A0 + add r1, r0, #0x1f + str r0, [r3, #0x10] + bic r1, r1, #0x1f + str r1, [r3, #0x20] + mov r2, #0 + str r2, [r1] + ldr ip, [r3, #0x20] + ldr r1, [r3, #0x10] + ldr r0, _022BCBA0 @ =0x0003FFE0 + sub r1, ip, r1 + sub r0, r0, r1 + lsr r0, r0, #5 + str r0, [ip, #4] + ldr r1, [r3, #0x20] sub ip, r2, #1 - str ip, [r0] - ldr r2, _0200138C @ =0x020B33A0 - b _02001354 -_02001344: - add r0, r2, r3, lsl #2 - ldr r0, [r0, #4] - str r0, [r2, r3, lsl #2] - add r3, r3, #1 -_02001354: - cmp r3, ip - blt _02001344 - mov ip, #1 - b _02001370 -_02001364: - add r3, r3, #1 -_02001368: - cmp r3, lr - blt _02001320 -_02001370: - cmp ip, #0 - ldrne r0, [r1, #4] - cmpne r0, #0 - popeq {r3, pc} - bl MemLocateUnset - pop {r3, pc} - .align 2, 0 -_02001388: .4byte 0x020B3380 -_0200138C: .4byte 0x020B33A0 - arm_func_end FUN_020012d8 - - arm_func_start MemLocateSet -MemLocateSet: @ 0x02001390 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x20 - mov r4, r0 - ldr r0, _0200161C @ =0x020AEF08 - mov r5, r1 - orr r7, r2, #0x100 - bl FUN_02002cb4 - ldr r1, _02001620 @ =0x020AEF00 - mov r0, r4 - ldr r2, [r1] - mov r1, r7 - blx r2 - movs r4, r0 - asr r0, r7, #8 - orr r8, r0, #1 - and r0, r8, #2 - ldreq r4, _02001624 @ =0x020B3384 - cmp r0, #2 - and sb, r7, #0xff - bne _020015A0 - tst r8, #4 - ldr r0, [r4, #8] - ldr lr, [r4, #0xc] - beq _02001458 - mov r2, r0 - mov r7, #0 - b _02001420 -_020013FC: - ldr r1, [r2, #4] - tst r1, #1 - bne _02001418 - ldr r1, [r2, #0x10] - cmp r1, r5 - blt _0200144C - b _020014A8 -_02001418: - add r7, r7, #1 - add r2, r2, #0x18 -_02001420: - cmp r7, lr - blt _020013FC - b _0200144C -_0200142C: - ldr r1, [r2, #4] - tst r1, #1 - bne _02001444 - ldr r1, [r2, #0x10] - cmp r1, r5 - bge _020014A8 -_02001444: - add r7, r7, #1 - add r2, r2, #0x18 -_0200144C: - cmp r7, lr - blt _0200142C - b _020014A4 -_02001458: - mov sl, r0 - mvn r7, #0 - ldr r2, _02001628 @ =0x001E6401 - mov r3, #0 - b _02001498 -_0200146C: - ldr r1, [sl, #4] - tst r1, #1 - bne _02001490 - ldr r1, [sl, #0x10] - cmp r1, r5 - blt _02001490 - cmp r1, r2 - movlt r7, r3 - movlt r2, r1 -_02001490: - add r3, r3, #1 - add sl, sl, #0x18 -_02001498: - cmp r3, lr - blt _0200146C - b _020014A8 -_020014A4: - mvn r7, #0 -_020014A8: - cmp r7, #0 - blt _020015DC - mov r1, #0x18 - mla r6, r7, r1, r0 - add r3, r5, #3 - ldr r2, [r6, #0x10] - bic fp, r3, #3 - cmp r2, fp - ble _02001584 - mla ip, lr, r1, r0 - b _0200150C -_020014D4: - sub r0, ip, #0x18 - mov sl, r0 - ldm sl!, {r0, r1, r2, r3} - str sl, [sp, #0xc] - mov sl, ip - stm sl!, {r0, r1, r2, r3} - str ip, [sp, #8] - ldr r0, [sp, #0xc] - mov r2, sl - ldm r0, {r0, r1} - stm r2, {r0, r1} - str sl, [sp, #8] - sub lr, lr, #1 - sub ip, ip, #0x18 -_0200150C: - cmp lr, r7 - bgt _020014D4 - ldr r0, [r4, #0xc] - add r1, r0, #1 - str r1, [r4, #0xc] - ldr r0, [r4, #0x10] - cmp r1, r0 - ble _02001554 - ldr r1, _0200162C @ =0x02090B40 - add r0, sp, #0x18 - ldr r2, [r1, #0x14] - ldr r1, [r1, #0x10] - str r2, [sp, #0x1c] - str r1, [sp, #0x18] - ldr r2, [r4, #0xc] - ldr r3, [r4, #0x10] - ldr r1, _02001630 @ =0x02090BA0 - bl FatalError -_02001554: - ldr r2, [r4, #8] - add r1, r7, #1 - mov r0, #0x18 - mla r2, r1, r0, r2 - ldr r0, [r2, #0xc] - add r0, r0, fp - str r0, [r2, #0xc] - ldr r0, [r2, #0x10] - sub r0, r0, fp - str r0, [r2, #0x10] - str fp, [r6, #0x10] - str r5, [r6, #0x14] -_02001584: - mov r0, r8 - bl MemAllocFlagsToBlockType - stm r6, {r0, r8, sb} - ldr r0, _0200161C @ =0x020AEF08 - ldr r6, [r6, #0xc] - bl FUN_02002e98 - b _02001610 -_020015A0: - mov r0, r4 - mov r1, r8 - mov r2, r5 - bl FindAvailableMemBlock - movs r1, r0 - bmi _020015DC - mov r0, r4 - mov r2, r8 - mov r3, r5 - str sb, [sp] - bl SplitMemBlock - ldr r6, [r0, #0xc] - ldr r0, _0200161C @ =0x020AEF08 - bl FUN_02002e98 - b _02001610 -_020015DC: - ldr r0, _0200161C @ =0x020AEF08 - bl FUN_02002e98 - ldr r1, _0200162C @ =0x02090B40 - add r0, sp, #0x10 - ldr r2, [r1, #4] - ldr r1, [r1] - str r2, [sp, #0x14] - str r1, [sp, #0x10] - ldr r1, _02001634 @ =0x02090BFC - mov r2, r4 - mov r3, r5 - stm sp, {r8, sb} - bl FatalError -_02001610: - mov r0, r6 - add sp, sp, #0x20 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0200161C: .4byte 0x020AEF08 -_02001620: .4byte 0x020AEF00 -_02001624: .4byte 0x020B3384 -_02001628: .4byte 0x001E6401 -_0200162C: .4byte 0x02090B40 -_02001630: .4byte 0x02090BA0 -_02001634: .4byte 0x02090BFC - arm_func_end MemLocateSet - - arm_func_start MemLocateUnset -MemLocateUnset: @ 0x02001638 - push {r4, r5, r6, r7, r8, lr} - mov r7, r0 - ldr r0, _020017A8 @ =0x020AEF08 - mov r6, r1 - bl FUN_02002cb4 - ldr r1, _020017AC @ =0x020AEF00 - mov r0, r7 - ldr r2, [r1, #4] - mov r1, r6 - blx r2 - movs r7, r0 - ldreq r7, _020017B0 @ =0x020B3384 - cmp r6, #0 - bne _0200167C - ldr r0, _020017A8 @ =0x020AEF08 - bl FUN_02002e98 - pop {r4, r5, r6, r7, r8, pc} -_0200167C: - ldr r4, [r7, #8] - ldr r1, [r7, #0xc] - mov r5, #0 - b _02001794 -_0200168C: - ldr r0, [r4, #0xc] - cmp r0, r6 - bne _0200178C - mov r0, #0 - str r0, [r4] - str r0, [r4, #4] - str r0, [r4, #0x14] - str r0, [r4, #8] - ldr r0, [r7, #0xc] - sub r0, r0, #1 - cmp r5, r0 - bge _0200171C - add ip, r4, #0x18 - ldr r0, [ip, #4] - cmp r0, #0 - bne _0200171C - ldr r1, [r4, #0x10] - ldr r0, [ip, #0x10] - add lr, r5, #1 - add r0, r1, r0 - str r0, [r4, #0x10] - ldr r0, [r7, #0xc] - sub r0, r0, #1 - str r0, [r7, #0xc] - b _02001710 -_020016F0: - add r8, ip, #0x18 - mov r6, ip - ldm r8!, {r0, r1, r2, r3} - stm r6!, {r0, r1, r2, r3} - ldm r8, {r0, r1} - stm r6, {r0, r1} - add lr, lr, #1 - add ip, ip, #0x18 -_02001710: - ldr r0, [r7, #0xc] - cmp lr, r0 - blt _020016F0 -_0200171C: - cmp r5, #0 - ble _02001780 - sub r2, r4, #0x18 - ldr r0, [r2, #4] - cmp r0, #0 - bne _02001780 - ldr r1, [r2, #0x10] - ldr r0, [r4, #0x10] - add r0, r1, r0 - str r0, [r2, #0x10] - ldr r0, [r7, #0xc] - sub r0, r0, #1 - str r0, [r7, #0xc] - b _02001774 -_02001754: - add ip, r4, #0x18 - mov r6, r4 - ldm ip!, {r0, r1, r2, r3} - stm r6!, {r0, r1, r2, r3} - ldm ip, {r0, r1} - stm r6, {r0, r1} - add r5, r5, #1 - add r4, r4, #0x18 -_02001774: - ldr r0, [r7, #0xc] - cmp r5, r0 - blt _02001754 -_02001780: - ldr r0, _020017A8 @ =0x020AEF08 - bl FUN_02002e98 - pop {r4, r5, r6, r7, r8, pc} -_0200178C: - add r5, r5, #1 - add r4, r4, #0x18 -_02001794: - cmp r5, r1 - blt _0200168C - ldr r0, _020017A8 @ =0x020AEF08 - bl FUN_02002e98 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_020017A8: .4byte 0x020AEF08 -_020017AC: .4byte 0x020AEF00 -_020017B0: .4byte 0x020B3384 - arm_func_end MemLocateUnset - - arm_func_start FUN_020017b4 -FUN_020017b4: @ 0x020017B4 - ldr r2, [r0, #8] - ldr ip, [r0, #0xc] - mov r3, #0 - b _020017DC -_020017C4: - ldr r0, [r2, #0xc] - cmp r0, r1 - moveq r0, #1 - bxeq lr - add r3, r3, #1 - add r2, r2, #0x18 -_020017DC: - cmp r3, ip - blt _020017C4 - mov r0, #0 - bx lr - arm_func_end FUN_020017b4 - - arm_func_start FUN_020017ec -FUN_020017ec: @ 0x020017EC - push {r3, lr} - ldr r0, _02001804 @ =0x020AEF08 - bl FUN_02002cb4 - ldr r0, _02001804 @ =0x020AEF08 - bl FUN_02002e98 - pop {r3, pc} - .align 2, 0 -_02001804: .4byte 0x020AEF08 - arm_func_end FUN_020017ec - - arm_func_start FUN_02001808 -FUN_02001808: @ 0x02001808 - push {r4, lr} - ldr r0, _0200187C @ =0x020AEF08 - bl FUN_02002cb4 - ldr r0, _02001880 @ =0x020AEF00 - mov r4, #0 - ldr r2, [r0] - ldr r0, _02001884 @ =0x020B3384 - mov r1, r4 - blx r2 - cmp r0, #0 - ldreq r0, _02001884 @ =0x020B3384 - mov r1, #0 - ldr r2, [r0, #8] - ldr r3, [r0, #0xc] - b _02001864 -_02001844: - ldr r0, [r2] - cmp r0, #0 - bne _0200185C - ldr r0, [r2, #0x10] - cmp r4, r0 - movlt r4, r0 -_0200185C: - add r1, r1, #1 - add r2, r2, #0x18 -_02001864: - cmp r1, r3 - blt _02001844 - ldr r0, _0200187C @ =0x020AEF08 - bl FUN_02002e98 - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_0200187C: .4byte 0x020AEF08 -_02001880: .4byte 0x020AEF00 -_02001884: .4byte 0x020B3384 - arm_func_end FUN_02001808 -_02001888: - .byte 0xFF, 0x00, 0x10, 0xE3, 0x01, 0x0C, 0x80, 0x12 - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start RoundUpDiv256 -RoundUpDiv256: @ 0x02001894 - tst r0, #0xff - addne r0, r0, #0x100 - asr r0, r0, #8 - bx lr - arm_func_end RoundUpDiv256 -_020018A4: - .byte 0x00, 0x20, 0x01, 0xE2, 0xFF, 0x30, 0x00, 0xE2, 0x00, 0x00, 0x52, 0xE3 - .byte 0x00, 0x00, 0x53, 0x03, 0x00, 0x20, 0xA0, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x01, 0x0C, 0x90, 0xE2 - .byte 0x02, 0x10, 0xA1, 0xE0, 0x20, 0x04, 0xA0, 0xE1, 0x01, 0x0C, 0x80, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_020018d0 -FUN_020018d0: @ 0x020018D0 - and r1, r0, #0xc00 - cmp r1, #0x400 - bgt _020018EC - bge _0200191C - cmp r1, #0 - beq _02001908 - b _02001970 -_020018EC: - cmp r1, #0x800 - bgt _020018FC - beq _02001938 - b _02001970 -_020018FC: - cmp r1, #0xc00 - beq _02001950 - b _02001970 -_02001908: - lsl r1, r0, #0x16 - ldr r0, _02001978 @ =0x02090C48 - lsr r1, r1, #0x15 - ldrsh r0, [r0, r1] - bx lr -_0200191C: - ldr r1, _0200197C @ =0x000003FF - ldr r2, _02001978 @ =0x02090C48 - and r0, r0, r1 - sub r0, r1, r0 - lsl r0, r0, #1 - ldrsh r0, [r2, r0] - bx lr -_02001938: - lsl r1, r0, #0x16 - ldr r0, _02001978 @ =0x02090C48 - lsr r1, r1, #0x15 - ldrsh r0, [r0, r1] - rsb r0, r0, #0 - bx lr -_02001950: - ldr r1, _0200197C @ =0x000003FF - ldr r2, _02001978 @ =0x02090C48 - and r0, r0, r1 - sub r0, r1, r0 - lsl r0, r0, #1 - ldrsh r0, [r2, r0] - rsb r0, r0, #0 - bx lr -_02001970: - mov r0, #0 - bx lr - .align 2, 0 -_02001978: .4byte 0x02090C48 -_0200197C: .4byte 0x000003FF - arm_func_end FUN_020018d0 - - arm_func_start FUN_02001980 -FUN_02001980: @ 0x02001980 - and r1, r0, #0xc00 - cmp r1, #0x400 - bgt _0200199C - bge _020019D4 - cmp r1, #0 - beq _020019B8 - b _02001A20 -_0200199C: - cmp r1, #0x800 - bgt _020019AC - beq _020019EC - b _02001A20 -_020019AC: - cmp r1, #0xc00 - beq _02001A0C - b _02001A20 -_020019B8: - ldr r1, _02001A28 @ =0x000003FF - ldr r2, _02001A2C @ =0x02090C48 - and r0, r0, r1 - sub r0, r1, r0 - lsl r0, r0, #1 - ldrsh r0, [r2, r0] - bx lr -_020019D4: - lsl r1, r0, #0x16 - ldr r0, _02001A2C @ =0x02090C48 - lsr r1, r1, #0x15 - ldrsh r0, [r0, r1] - rsb r0, r0, #0 - bx lr -_020019EC: - ldr r1, _02001A28 @ =0x000003FF - ldr r2, _02001A2C @ =0x02090C48 - and r0, r0, r1 - sub r0, r1, r0 - lsl r0, r0, #1 - ldrsh r0, [r2, r0] - rsb r0, r0, #0 - bx lr -_02001A0C: - lsl r1, r0, #0x16 - ldr r0, _02001A2C @ =0x02090C48 - lsr r1, r1, #0x15 - ldrsh r0, [r0, r1] - bx lr -_02001A20: - mov r0, #0 - bx lr - .align 2, 0 -_02001A28: .4byte 0x000003FF -_02001A2C: .4byte 0x02090C48 - arm_func_end FUN_02001980 - - arm_func_start UFixedPoint64CmpLt -UFixedPoint64CmpLt: @ 0x02001A30 - cmp r0, r2 - movlo r0, #1 - bxlo lr - movhi r0, #0 - bxhi lr - cmp r1, r3 - movlo r0, #1 - movhs r0, #0 - bx lr - arm_func_end UFixedPoint64CmpLt - - arm_func_start MultiplyByFixedPoint -MultiplyByFixedPoint: @ 0x02001A54 - push {r3, r4, r5, lr} - tst r0, #0x80000000 - movne r2, #1 - moveq r2, #0 - tst r1, #0x80000000 - and r4, r2, #0xff - movne r2, #1 - moveq r2, #0 - cmp r0, #0 - and r5, r2, #0xff - moveq r0, #0 - popeq {r3, r4, r5, pc} - cmp r1, #0 - moveq r0, #0 - popeq {r3, r4, r5, pc} - cmp r4, #0 - rsbne r0, r0, #0 - cmp r5, #0 - rsbne r1, r1, #0 - bl UMultiplyByFixedPoint - cmp r4, r5 - rsbne r0, r0, #0 - pop {r3, r4, r5, pc} - arm_func_end MultiplyByFixedPoint - - arm_func_start FUN_02001ab0 -FUN_02001ab0: @ 0x02001AB0 - push {r3, r4, r5, lr} - tst r0, #0x80000000 - movne r2, #1 - moveq r2, #0 - tst r1, #0x80000000 - and r4, r2, #0xff - movne r2, #1 - moveq r2, #0 - cmp r1, #0 - and r5, r2, #0xff - mvneq r0, #0x80000000 - popeq {r3, r4, r5, pc} - cmp r0, #0 - moveq r0, #0 - popeq {r3, r4, r5, pc} - cmp r4, #0 - rsbne r0, r0, #0 - cmp r5, #0 - rsbne r1, r1, #0 - bl FUN_02001bb4 - cmp r4, r5 - rsbne r0, r0, #0 - pop {r3, r4, r5, pc} - arm_func_end FUN_02001ab0 - - arm_func_start UMultiplyByFixedPoint -UMultiplyByFixedPoint: @ 0x02001B0C - push {r3, r4, r5, lr} - cmp r0, #0 - moveq r0, #0 - popeq {r3, r4, r5, pc} - cmp r1, #0 - moveq r0, #0 - popeq {r3, r4, r5, pc} - mov r3, #0 - mov r2, r3 - mov ip, r3 - mov lr, r3 - mov r4, r3 -_02001B3C: - mov r5, lr - tst r1, #1 - beq _02001B58 - add lr, lr, r0 - add ip, ip, r3 - cmp r5, lr - addhi ip, ip, #1 -_02001B58: - lsr r1, r1, #1 - tst r2, #1 - orrne r1, r1, #0x80000000 - lsr r2, r2, #1 - tst r0, #0x80000000 - lsl r3, r3, #1 - lsl r0, r0, #1 - add r4, r4, #1 - orrne r3, r3, #1 - bic r2, r2, #0x80000000 - cmp r4, #0x40 - bic r0, r0, #1 - blt _02001B3C - lsr r0, lr, #8 - tst lr, #0x80 - movne r1, #1 - bic r0, r0, #0xff000000 - moveq r1, #0 - orr lr, r0, ip, lsl #24 - tst r1, #0xff - addne lr, lr, #1 - mov r0, lr - pop {r3, r4, r5, pc} - arm_func_end UMultiplyByFixedPoint - - arm_func_start FUN_02001bb4 -FUN_02001bb4: @ 0x02001BB4 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - movs sl, r1 - mvneq r0, #0x80000000 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - cmp r0, #0 - moveq r0, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - mov r8, #0 - asr r1, r0, #0x18 - lsl r0, r0, #8 - mov r4, r8 - mov r5, r8 - mov sb, r8 - and r6, r1, #0xff - bic r7, r0, #0xff - mov fp, r8 -_02001BF4: - lsl r0, r5, #1 - tst r5, #0x80000000 - lsl r4, r4, #1 - orrne r4, r4, #1 - bic r5, r0, #1 - tst r6, #0x80000000 - orrne r5, r5, #1 - lsl r3, r7, #1 - tst r7, #0x80000000 - lsl r6, r6, #1 - bic r7, r3, #1 - mov r0, r4 - mov r1, r5 - mov r2, fp - mov r3, sl - orrne r6, r6, #1 - bl UFixedPoint64CmpLt - cmp r0, #0 - bne _02001C58 - mov r0, r5 - sub r5, r5, sl - cmp r0, r5 - mov r1, #1 - sublo r4, r4, #1 - b _02001C5C -_02001C58: - mov r1, #0 -_02001C5C: - lsl r0, r8, #1 - bic r8, r0, #1 - cmp r1, #0 - add sb, sb, #1 - orrne r8, r8, #1 - cmp sb, #0x40 - blt _02001BF4 - mov r0, r8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_02001bb4 - - arm_func_start IntToFixedPoint64 -IntToFixedPoint64: @ 0x02001C80 - mov r2, #0x10000 - rsb r2, r2, #0 - and r3, r1, r2 - lsr r3, r3, #0x10 - str r3, [r0] - lsl r3, r1, #0x10 - str r3, [r0, #4] - tst r1, #0x8000 - ldrne r1, [r0] - orrne r1, r1, r2 - strne r1, [r0] - bx lr - arm_func_end IntToFixedPoint64 - - arm_func_start FixedPoint64ToInt -FixedPoint64ToInt: @ 0x02001CB0 - ldm r0, {r1, r2} - mov r0, #0x10000 - rsb r0, r0, #0 - lsl r1, r1, #0x10 - and r0, r2, r0 - orr r0, r1, r0, lsr #16 - tst r2, #0x8000 - addne r0, r0, #1 - bx lr - arm_func_end FixedPoint64ToInt - - arm_func_start FixedPoint32To64 -FixedPoint32To64: @ 0x02001CD4 - asr r2, r1, #0x18 - lsl r3, r1, #8 - tst r2, #0x80 - mvnne r1, #0x7f - orrne r1, r2, r1 - stm r0, {r2, r3} - andeq r1, r2, #0x7f - str r1, [r0] - bx lr - arm_func_end FixedPoint32To64 - - arm_func_start NegateFixedPoint64 -NegateFixedPoint64: @ 0x02001CF8 - ldr r2, [r0] - mvn r1, #0 - eor r2, r2, r1 - str r2, [r0] - ldr r2, [r0, #4] - eor r2, r2, r1 - adds r1, r2, #1 - str r1, [r0, #4] - ldreq r1, [r0] - addeq r1, r1, #1 - streq r1, [r0] - bx lr - arm_func_end NegateFixedPoint64 - - arm_func_start FixedPoint64IsZero -FixedPoint64IsZero: @ 0x02001D28 - ldr r1, [r0] - cmp r1, #0 - movne r0, #0 - bxne lr - ldr r0, [r0, #4] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr - arm_func_end FixedPoint64IsZero - - arm_func_start FixedPoint64IsNegative -FixedPoint64IsNegative: @ 0x02001D50 - ldr r0, [r0] - tst r0, #0x80000000 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - arm_func_end FixedPoint64IsNegative - - arm_func_start FixedPoint64CmpLt -FixedPoint64CmpLt: @ 0x02001D68 - push {r3, lr} - mov ip, r1 - ldr r2, [ip] - mov lr, r0 - tst r2, #0x80000000 - movne r1, #2 - ldr r0, [lr] - moveq r1, #0 - tst r0, #0x80000000 - movne r3, #1 - moveq r3, #0 - orr r1, r3, r1 - cmp r1, #3 - addls pc, pc, r1, lsl #2 - b _02001DB4 -_02001DA4: @ jump table - b _02001DB4 @ case 0 - b _02001DC4 @ case 1 - b _02001DCC @ case 2 - b _02001DD4 @ case 3 -_02001DB4: - ldr r1, [lr, #4] - ldr r3, [ip, #4] - bl UFixedPoint64CmpLt - pop {r3, pc} -_02001DC4: - mov r0, #1 - pop {r3, pc} -_02001DCC: - mov r0, #0 - pop {r3, pc} -_02001DD4: - ldr r1, [lr, #4] - ldr r3, [ip, #4] - bl UFixedPoint64CmpLt - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FixedPoint64CmpLt - - arm_func_start MultiplyFixedPoint64 -MultiplyFixedPoint64: @ 0x02001DF4 - push {r4, r5, r6, lr} - sub sp, sp, #0x18 - ldr r3, [r1] - mov r4, r0 - str r3, [sp, #0x10] - ldr r1, [r1, #4] - add r0, sp, #0x10 - str r1, [sp, #0x14] - ldr r1, [r2] - str r1, [sp, #8] - ldr r1, [r2, #4] - str r1, [sp, #0xc] - bl FixedPoint64IsNegative - mov r5, r0 - add r0, sp, #8 - bl FixedPoint64IsNegative - mov r6, r0 - add r0, sp, #0x10 - bl FixedPoint64IsZero - cmp r0, #0 - movne r0, #0 - strne r0, [r4] - strne r0, [r4, #4] - bne _02001EC0 - add r0, sp, #8 - bl FixedPoint64IsZero - cmp r0, #0 - movne r0, #0 - strne r0, [r4] - strne r0, [r4, #4] - bne _02001EC0 - cmp r5, #0 - beq _02001E80 - add r0, sp, #0x10 - bl NegateFixedPoint64 -_02001E80: - cmp r6, #0 - beq _02001E90 - add r0, sp, #8 - bl NegateFixedPoint64 -_02001E90: - add r0, sp, #0 - add r1, sp, #0x10 - add r2, sp, #8 - bl UMultiplyFixedPoint64 - cmp r5, r6 - beq _02001EB0 - add r0, sp, #0 - bl NegateFixedPoint64 -_02001EB0: - ldr r0, [sp] - str r0, [r4] - ldr r0, [sp, #4] - str r0, [r4, #4] -_02001EC0: - add sp, sp, #0x18 - pop {r4, r5, r6, pc} - arm_func_end MultiplyFixedPoint64 - - arm_func_start DivideFixedPoint64 -DivideFixedPoint64: @ 0x02001EC8 - push {r4, r5, r6, lr} - sub sp, sp, #0x18 - ldr r3, [r1] - mov r4, r0 - str r3, [sp, #0x10] - ldr r1, [r1, #4] - add r0, sp, #0x10 - str r1, [sp, #0x14] - ldr r1, [r2] - str r1, [sp, #8] - ldr r1, [r2, #4] - str r1, [sp, #0xc] - bl FixedPoint64IsNegative - mov r5, r0 - add r0, sp, #8 - bl FixedPoint64IsNegative - mov r6, r0 - add r0, sp, #8 - bl FixedPoint64IsZero - cmp r0, #0 - mvnne r0, #0x80000000 - strne r0, [r4] - subne r0, r0, #0x80000000 - strne r0, [r4, #4] - bne _02001F98 - add r0, sp, #0x10 - bl FixedPoint64IsZero - cmp r0, #0 - movne r0, #0 - strne r0, [r4] - strne r0, [r4, #4] - bne _02001F98 - cmp r5, #0 - beq _02001F58 - add r0, sp, #0x10 - bl NegateFixedPoint64 -_02001F58: - cmp r6, #0 - beq _02001F68 - add r0, sp, #8 - bl NegateFixedPoint64 -_02001F68: - add r0, sp, #0 - add r1, sp, #0x10 - add r2, sp, #8 - bl UDivideFixedPoint64 - cmp r5, r6 - beq _02001F88 - add r0, sp, #0 - bl NegateFixedPoint64 -_02001F88: - ldr r0, [sp] - str r0, [r4] - ldr r0, [sp, #4] - str r0, [r4, #4] -_02001F98: - add sp, sp, #0x18 - pop {r4, r5, r6, pc} - arm_func_end DivideFixedPoint64 - - arm_func_start UMultiplyFixedPoint64 -UMultiplyFixedPoint64: @ 0x02001FA0 - push {r4, r5, r6, lr} - mov r6, r1 - mov r4, r0 - mov r0, r6 - mov r5, r2 - bl FixedPoint64IsZero - cmp r0, #0 - movne r0, #0 - strne r0, [r4] - strne r0, [r4, #4] - popne {r4, r5, r6, pc} - mov r0, r5 - bl FixedPoint64IsZero - cmp r0, #0 - movne r0, #0 - strne r0, [r4] - strne r0, [r4, #4] - popne {r4, r5, r6, pc} - mov lr, #0 - ldm r6, {r1, r2} - ldm r5, {r3, ip} - mov r5, lr - mov r6, lr -_02001FFC: - mov r0, r5 - tst ip, #1 - beq _02002018 - add r5, r5, r2 - add lr, lr, r1 - cmp r0, r5 - addhi lr, lr, #1 -_02002018: - lsr r0, r3, #1 - tst r3, #1 - lsr ip, ip, #1 - bic r3, r0, #0x80000000 - orrne ip, ip, #0x80000000 - lsl r1, r1, #1 - tst r2, #0x80000000 - lsl r0, r2, #1 - add r6, r6, #1 - orrne r1, r1, #1 - cmp r6, #0x40 - bic r2, r0, #1 - blt _02001FFC - lsr r0, r5, #0x10 - lsl r0, r0, #0x10 - tst r5, #0x8000 - lsl r1, lr, #0x10 - movne r2, #1 - orr r5, r1, r0, lsr #16 - lsr r0, lr, #0x10 - moveq r2, #0 - lsl r0, r0, #0x10 - tst r2, #0xff - addne r5, r5, #1 - lsr r0, r0, #0x10 - stm r4, {r0, r5} - pop {r4, r5, r6, pc} - arm_func_end UMultiplyFixedPoint64 - - arm_func_start UDivideFixedPoint64 -UDivideFixedPoint64: @ 0x02002084 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #8 - mov r4, r2 - mov sl, r0 - mov r0, r4 - mov r5, r1 - bl FixedPoint64IsZero - cmp r0, #0 - mvnne r0, #0x80000000 - strne r0, [sl] - subne r0, r0, #0x80000000 - strne r0, [sl, #4] - bne _020021C0 - mov r0, r5 - bl FixedPoint64IsZero - cmp r0, #0 - movne r0, #0 - strne r0, [sl] - strne r0, [sl, #4] - bne _020021C0 - ldr r2, [r5, #4] - mov r0, #0x10000 - lsr r1, r2, #0x10 - mov r8, #0 - ldr r3, [r5] - rsb r0, r0, #0 - and r2, r0, r2, lsl #16 - and r3, r0, r3, lsl #16 - ldr r0, [r4] - lsl r1, r1, #0x10 - ldr fp, [r4, #4] - str r0, [sp, #4] - mov sb, r8 - mov r4, r8 - mov r5, r8 - str r8, [sp] - orr r6, r3, r1, lsr #16 - orr r7, r2, #0x8000 -_0200211C: - lsl r0, r5, #1 - tst r5, #0x80000000 - lsl r4, r4, #1 - orrne r4, r4, #1 - bic r5, r0, #1 - tst r6, #0x80000000 - orrne r5, r5, #1 - lsl r1, r7, #1 - tst r7, #0x80000000 - lsl r6, r6, #1 - bic r7, r1, #1 - ldr r2, [sp, #4] - mov r0, r4 - mov r1, r5 - mov r3, fp - orrne r6, r6, #1 - bl UFixedPoint64CmpLt - cmp r0, #0 - bne _02002188 - mov r0, r5 - sub r5, r5, fp - cmp r0, r5 - ldr r0, [sp, #4] - mov r1, #1 - sub r4, r4, r0 - sublo r4, r4, #1 - b _0200218C -_02002188: - mov r1, #0 -_0200218C: - lsl r0, sb, #1 - tst sb, #0x80000000 - bic sb, r0, #1 - ldr r0, [sp] - lsl r8, r8, #1 - add r0, r0, #1 - orrne r8, r8, #1 - cmp r1, #0 - orrne sb, sb, #1 - str r0, [sp] - cmp r0, #0x40 - blt _0200211C - stm sl, {r8, sb} -_020021C0: - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end UDivideFixedPoint64 - - arm_func_start AddFixedPoint64 -AddFixedPoint64: @ 0x020021C8 - push {r3, lr} - ldr ip, [r1, #4] - ldr lr, [r1] - ldr r1, [r2] - ldr r3, [r2, #4] - add r1, lr, r1 - add r2, ip, r3 - cmp r2, ip - addlo r1, r1, #1 - stm r0, {r1, r2} - pop {r3, pc} - arm_func_end AddFixedPoint64 - - arm_func_start ClampedLn -ClampedLn: @ 0x020021F4 - cmp r1, #1 - movlt r1, #1 - cmp r1, #0x800 - ldrge r1, _02002220 @ =0x000007FF - ldr r2, _02002224 @ =0x02091448 - lsl r1, r1, #1 - ldrsh r2, [r2, r1] - mov r1, #0 - lsl r2, r2, #4 - stm r0, {r1, r2} - bx lr - .align 2, 0 -_02002220: .4byte 0x000007FF -_02002224: .4byte 0x02091448 - arm_func_end ClampedLn -_02002228: - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start GetRngSeed -GetRngSeed: @ 0x0200222C - ldr r0, _02002238 @ =0x020AEF2C - ldrh r0, [r0] - bx lr - .align 2, 0 -_02002238: .4byte 0x020AEF2C - arm_func_end GetRngSeed - - arm_func_start SetRngSeed -SetRngSeed: @ 0x0200223C - ldr r1, _02002248 @ =0x020AEF2C - strh r0, [r1] - bx lr - .align 2, 0 -_02002248: .4byte 0x020AEF2C - arm_func_end SetRngSeed - - arm_func_start Rand16Bit -Rand16Bit: @ 0x0200224C - ldr r1, _02002270 @ =0x020AEF2C - mov r0, #0x6d - ldrh r2, [r1] - mul r0, r2, r0 - add r0, r0, #0xfd - add r0, r0, #0x300 - strh r0, [r1] - ldrh r0, [r1] - bx lr - .align 2, 0 -_02002270: .4byte 0x020AEF2C - arm_func_end Rand16Bit - - arm_func_start RandInt -RandInt: @ 0x02002274 - push {r4, lr} - mov r4, r0 - bl Rand16Bit - mul r0, r4, r0 - asr r0, r0, #0x10 - pop {r4, pc} - arm_func_end RandInt - - arm_func_start RandRange -RandRange: @ 0x0200228C - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - bl Rand16Bit - sub r1, r4, r5 - mul r0, r1, r0 - add r0, r5, r0, asr #16 - pop {r3, r4, r5, pc} - arm_func_end RandRange - - arm_func_start Rand32Bit -Rand32Bit: @ 0x020022AC - push {r4, lr} - bl Rand16Bit - mov r4, r0 - bl Rand16Bit - orr r0, r0, r4, lsl #16 - pop {r4, pc} - arm_func_end Rand32Bit - - arm_func_start FUN_020022c4 -FUN_020022c4: @ 0x020022C4 - mov r1, #1 - str r1, [r0] - bx lr - arm_func_end FUN_020022c4 - - arm_func_start FUN_020022d0 -FUN_020022d0: @ 0x020022D0 - ldr r3, [r0] - ldr r2, _020022F4 @ =0x5D588B65 - mul r2, r3, r2 - add r3, r2, #1 - lsr r2, r3, #0x10 - mul r1, r2, r1 - str r3, [r0] - lsr r0, r1, #0x10 - bx lr - .align 2, 0 -_020022F4: .4byte 0x5D588B65 - arm_func_end FUN_020022d0 - - arm_func_start RandIntSafe -RandIntSafe: @ 0x020022F8 - push {r4, lr} - mov r4, r0 - bl Rand16Bit - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - mul r0, r1, r4 - asr r0, r0, #0x10 - pop {r4, pc} - arm_func_end RandIntSafe - - arm_func_start RandRangeSafe -RandRangeSafe: @ 0x02002318 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - cmp r5, r4 - popeq {r3, r4, r5, pc} - bge _0200234C - bl Rand16Bit - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - sub r0, r4, r5 - mul r0, r1, r0 - add r0, r5, r0, asr #16 - pop {r3, r4, r5, pc} -_0200234C: - bl Rand16Bit - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - sub r0, r5, r4 - mul r0, r1, r0 - add r0, r4, r0, asr #16 - pop {r3, r4, r5, pc} - arm_func_end RandRangeSafe - - arm_func_start thunk_FUN_02002378 -thunk_FUN_02002378: @ 0x02002368 - b _02002378 -_0200236C: - cmp r2, r1 - bxeq lr - add r0, r0, #1 - arm_func_end thunk_FUN_02002378 -_02002378: - ldrsb r2, [r0] - cmp r2, #0 - bne _0200236C - mov r0, #0 - bx lr - - arm_func_start FUN_0200238c -FUN_0200238c: @ 0x0200238C - cmp r0, #0x41 - bxlt lr - cmp r0, #0x5a - addle r0, r0, #0x20 - lslle r0, r0, #0x18 - asrle r0, r0, #0x18 - bx lr - arm_func_end FUN_0200238c - - arm_func_start FUN_020023a8 -FUN_020023a8: @ 0x020023A8 - mov ip, #0 - b _020023E4 -_020023B0: - ldrsb r3, [r1] - cmp r3, #0 - bne _020023D8 - mov r1, #0x20 - b _020023CC -_020023C4: - strb r1, [r0], #1 - add ip, ip, #1 -_020023CC: - cmp ip, r2 - blt _020023C4 - b _020023EC -_020023D8: - add r1, r1, #1 - strb r3, [r0], #1 - add ip, ip, #1 -_020023E4: - cmp ip, r2 - blt _020023B0 -_020023EC: - mov r1, #0 - strb r1, [r0] - bx lr - arm_func_end FUN_020023a8 - - arm_func_start FUN_020023f8 -FUN_020023f8: @ 0x020023F8 - push {r3, lr} - mov lr, #0 - b _02002428 -_02002404: - ldrsb ip, [r0], #1 - ldrsb r3, [r1], #1 - cmp r3, ip - movne r0, #0 - popne {r3, pc} - cmp ip, #0 - moveq r0, #1 - popeq {r3, pc} - add lr, lr, #1 -_02002428: - cmp lr, r2 - blt _02002404 - mov r0, #1 - pop {r3, pc} - arm_func_end FUN_020023f8 - - arm_func_start WaitForever -WaitForever: @ 0x02002438 - push {r3, lr} - bl FUN_02079c14 -_02002440: - bl WaitForInterrupt - b _02002440 - arm_func_end WaitForever - - arm_func_start FUN_02002448 -FUN_02002448: @ 0x02002448 - push {r4, lr} - mov r4, r0 - bl FUN_02003ad0 - bl FUN_02002580 - mov r1, #1 - bl FUN_020027f8 - bl FUN_02079c14 - bl FUN_0207621c - ldr r3, _02002498 @ =0x04001000 - ldr r0, _0200249C @ =0x02092464 - ldr r2, [r3] - mov r1, r4 - bic r2, r2, #0x10000 - str r2, [r3] - bl DebugPrint0 - mov r0, r4 - bl FUN_0207b930 - bl FUN_02079c14 -_02002490: - bl WaitForInterrupt - b _02002490 - .align 2, 0 -_02002498: .4byte 0x04001000 -_0200249C: .4byte 0x02092464 - arm_func_end FUN_02002448 - - arm_func_start FUN_020024a0 -FUN_020024a0: @ 0x020024A0 - ldr r0, _020024AC @ =0x027FFC20 - ldr r0, [r0] - bx lr - .align 2, 0 -_020024AC: .4byte 0x027FFC20 - arm_func_end FUN_020024a0 -_020024B0: - .byte 0x04, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0xD8, 0x45, 0x08, 0x02 - .byte 0x04, 0xC0, 0x9F, 0xE5, 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0xD8, 0x45, 0x08, 0x02 - .byte 0xD4, 0x24, 0x00, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x24, 0x06, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x08, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_020024e4 -FUN_020024e4: @ 0x020024E4 - push {r3, lr} - ldr r0, _0200256C @ =0x0229AFCC - bl FUN_0207a030 - ldr r0, _0200256C @ =0x0229AFCC - bl FUN_0207a048 - mov r1, #0 - ldr r0, _02002570 @ =0x0229AFE4 - mov r2, r1 -_02002504: - add r1, r1, #1 - cmp r1, #8 - str r2, [r0], #4 - blt _02002504 - ldr r1, _02002574 @ =0x0229AFC0 - ldr r0, _0200256C @ =0x0229AFCC - str r2, [r1] - str r2, [r1, #4] - str r2, [r1, #8] - bl FUN_0207a0cc - ldr r1, _02002578 @ =0x022B966C - ldr r0, _0200257C @ =0x0229B004 - ldr r1, [r1, #4] - mov r2, #0 - stm r0, {r1, r2} - str r2, [r0, #8] - str r2, [r0, #0xc] - mov r1, #7 - str r1, [r0, #0x10] - str r2, [r0, #0x14] - bl FUN_020026e4 - ldr r0, _02002578 @ =0x022B966C - mov r1, #7 - ldr r0, [r0, #4] - bl FUN_02079a64 - pop {r3, pc} - .align 2, 0 -_0200256C: .4byte 0x0229AFCC -_02002570: .4byte 0x0229AFE4 -_02002574: .4byte 0x0229AFC0 -_02002578: .4byte 0x022B966C -_0200257C: .4byte 0x0229B004 - arm_func_end FUN_020024e4 - - arm_func_start FUN_02002580 -FUN_02002580: @ 0x02002580 - push {r3, r4, r5, lr} - ldr r1, _020025E8 @ =0x022B966C - ldr r0, _020025EC @ =0x0229AFCC - ldr r4, [r1, #4] - bl FUN_0207a048 - ldr r0, _020025F0 @ =0x0229AFC0 - mov r1, #0 - ldr r3, [r0] - ldr r2, _020025F4 @ =0x0229AFE4 - b _020025CC -_020025A8: - ldr r5, [r2] - ldr r0, [r5] - cmp r0, r4 - bne _020025C4 - ldr r0, _020025EC @ =0x0229AFCC - bl FUN_0207a0cc - b _020025E0 -_020025C4: - add r1, r1, #1 - add r2, r2, #4 -_020025CC: - cmp r1, r3 - blt _020025A8 - ldr r0, _020025EC @ =0x0229AFCC - bl FUN_0207a0cc - mov r5, #0 -_020025E0: - mov r0, r5 - pop {r3, r4, r5, pc} - .align 2, 0 -_020025E8: .4byte 0x022B966C -_020025EC: .4byte 0x0229AFCC -_020025F0: .4byte 0x0229AFC0 -_020025F4: .4byte 0x0229AFE4 - arm_func_end FUN_02002580 - - arm_func_start FUN_020025f8 -FUN_020025f8: @ 0x020025F8 - push {r4, lr} - cmp r0, #0 - beq _02002614 - ldr r0, [r0] - mov r1, #0 - bl FUN_02079844 - pop {r4, pc} -_02002614: - mov r4, #0 -_02002618: - mov r0, r4 - bl FUN_02079888 - b _02002618 - arm_func_end FUN_020025f8 -_02002624: - .byte 0x10, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_02002628 -FUN_02002628: @ 0x02002628 - push {r3, r4, r5, lr} - ldr r2, _02002658 @ =0x022B966C - mov r5, r0 - ldr r0, [r2, #4] - mov r4, r1 - str r0, [r5] - bl FUN_02079b0c - str r0, [r5, #4] - ldr r0, [r5] - mov r1, r4 - bl FUN_02079a64 - pop {r3, r4, r5, pc} - .align 2, 0 -_02002658: .4byte 0x022B966C - arm_func_end FUN_02002628 - - arm_func_start FUN_0200265c -FUN_0200265c: @ 0x0200265C - ldr ip, _0200266C @ =FUN_02079a64 - mov r1, r0 - ldm r1, {r0, r1} - bx ip - .align 2, 0 -_0200266C: .4byte FUN_02079a64 - arm_func_end FUN_0200265c - - arm_func_start FUN_02002670 -FUN_02002670: @ 0x02002670 - push {r3, r4, r5, lr} - ldr r0, _020026AC @ =0x022B966C - ldr r5, [r0, #4] - mov r0, r5 - bl FUN_02079b0c - mov r4, r0 - mov r0, r5 - mov r1, #7 - bl FUN_02079a64 - ldr r0, _020026B0 @ =0x0229AFCC - bl FUN_0207a048 - ldr r0, _020026B4 @ =0x020AEF30 - str r5, [r0] - str r4, [r0, #4] - pop {r3, r4, r5, pc} - .align 2, 0 -_020026AC: .4byte 0x022B966C -_020026B0: .4byte 0x0229AFCC -_020026B4: .4byte 0x020AEF30 - arm_func_end FUN_02002670 - - arm_func_start FUN_020026b8 -FUN_020026b8: @ 0x020026B8 - push {r3, r4, r5, lr} - ldr r1, _020026DC @ =0x020AEF30 - ldr r0, _020026E0 @ =0x0229AFCC - ldm r1, {r4, r5} - bl FUN_0207a0cc - mov r0, r4 - mov r1, r5 - bl FUN_02079a64 - pop {r3, r4, r5, pc} - .align 2, 0 -_020026DC: .4byte 0x020AEF30 -_020026E0: .4byte 0x0229AFCC - arm_func_end FUN_020026b8 - - arm_func_start FUN_020026e4 -FUN_020026e4: @ 0x020026E4 - push {r4, r5, r6, lr} - ldr r1, _02002768 @ =0x022B966C - mov r6, r0 - ldr r5, [r1, #4] - mov r0, r5 - bl FUN_02079b0c - mov r4, r0 - mov r0, r5 - mov r1, #7 - bl FUN_02079a64 - ldr r0, _0200276C @ =0x0229AFCC - bl FUN_0207a048 - ldr r0, _02002770 @ =0x0229AFC0 - ldr r3, [r0] - cmp r3, #8 - bge _02002750 - add r1, r3, #1 - ldr r2, _02002774 @ =0x0229AFE4 - str r1, [r0] - ldr r1, [r0] - str r6, [r2, r3, lsl #2] - str r1, [r0, #4] - ldr r2, [r0, #4] + str ip, [r1, #8] + ldr lr, [r3, #0x20] + ldr r0, _022BCBA4 @ =ov00_022BDE30 + ldr ip, [lr, #4] + ldr r1, _022BCBA8 @ =ov00_022BDF1C + add ip, lr, ip, lsl #5 + add ip, ip, #0x20 + str ip, [r3, #0x18] + str r2, [r3, #0x14] + bl ov00_022E03DC + ldr r0, _022BCB9C @ =0x023187A0 + cmp r4, #3 + str r5, [r0, #0xc] ldr r1, [r0, #8] - cmp r2, r1 - ldrgt r1, [r0, #4] - strgt r1, [r0, #8] -_02002750: - ldr r0, _0200276C @ =0x0229AFCC - bl FUN_0207a0cc - mov r0, r5 - mov r1, r4 - bl FUN_02079a64 - pop {r4, r5, r6, pc} - .align 2, 0 -_02002768: .4byte 0x022B966C -_0200276C: .4byte 0x0229AFCC -_02002770: .4byte 0x0229AFC0 -_02002774: .4byte 0x0229AFE4 - arm_func_end FUN_020026e4 - - arm_func_start FUN_02002778 -FUN_02002778: @ 0x02002778 - push {r4, r5, r6, lr} - sub sp, sp, #8 - mov r4, r0 - mov ip, r1 - add r0, r4, #0x1c - mov r5, ip - str r0, [r4] - mov r6, r2 - ldm r5!, {r0, r1, r2, r3} - add lr, r4, #4 - stm lr!, {r0, r1, r2, r3} - ldr r0, [r5] - mov r2, r6 - str r0, [lr] - str r6, [r4, #0x18] - ldr r1, [ip, #8] - str r1, [sp] - ldr r0, [ip, #0xc] - bic r3, r1, #7 - str r0, [sp, #4] - ldm ip, {r1, lr} - ldr r0, [r4] - add r3, lr, r3 - bl FUN_02079560 - mov r0, r4 - bl FUN_020026e4 - add sp, sp, #8 - pop {r4, r5, r6, pc} - arm_func_end FUN_02002778 - - arm_func_start FUN_020027e8 -FUN_020027e8: @ 0x020027E8 - ldr ip, _020027F4 @ =FUN_02079940 - ldr r0, [r0] - bx ip - .align 2, 0 -_020027F4: .4byte FUN_02079940 - arm_func_end FUN_020027e8 - - arm_func_start FUN_020027f8 -FUN_020027f8: @ 0x020027F8 - push {r4, r5, r6, lr} - mov r6, r0 - ldr r0, [r6] - mov r5, r1 - bl FUN_02079b0c - mov r4, r0 - ldr r0, [r6] - mov r1, r5 - bl FUN_02079a64 - mov r0, r4 - pop {r4, r5, r6, pc} - arm_func_end FUN_020027f8 - - arm_func_start FUN_02002824 -FUN_02002824: @ 0x02002824 - push {r4, r5, r6, lr} - ldr r1, _02002854 @ =0x022B966C - mov r6, r0 - ldr r5, [r1, #4] - mov r0, r5 - bl FUN_02079b0c - mov r4, r0 - mov r0, r5 - mov r1, r6 - bl FUN_02079a64 - mov r0, r4 - pop {r4, r5, r6, pc} - .align 2, 0 -_02002854: .4byte 0x022B966C - arm_func_end FUN_02002824 - - arm_func_start FUN_02002858 -FUN_02002858: @ 0x02002858 - str r1, [r0, #0x14] - bx lr - arm_func_end FUN_02002858 - - arm_func_start FUN_02002860 -FUN_02002860: @ 0x02002860 - cmp r0, #0 - ldrne r1, [r0] - cmpne r1, #0 - ldrne r0, [r0, #0x14] - moveq r0, #0 - bx lr - arm_func_end FUN_02002860 - - arm_func_start FUN_02002878 -FUN_02002878: @ 0x02002878 - push {r4, lr} - mov r4, r0 - bl FUN_02002580 - cmp r0, #0 - beq _020028A4 - ldr r0, [r0, #0x14] - cmp r0, r4 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r4, pc} -_020028A4: - mov r0, #0 - pop {r4, pc} - arm_func_end FUN_02002878 -_020028AC: - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_020028b0 -FUN_020028b0: @ 0x020028B0 - push {r4, lr} - mov r4, r0 - bl FUN_0207a030 - mov r0, r4 - bl FUN_0207a048 - bl FUN_02002670 - ldr r0, _020028F4 @ =0x0229B0E0 - ldr r1, [r0] add r1, r1, #1 - str r1, [r0] - ldr r2, [r0] - ldr r1, [r0, #4] - cmp r2, r1 - ldrgt r1, [r0] - strgt r1, [r0, #4] - bl FUN_020026b8 - pop {r4, pc} - .align 2, 0 -_020028F4: .4byte 0x0229B0E0 - arm_func_end FUN_020028b0 - - arm_func_start thunk_FUN_0207a0cc -thunk_FUN_0207a0cc: @ 0x020028F8 - ldr ip, _02002900 @ =FUN_0207a0cc - bx ip - .align 2, 0 -_02002900: .4byte FUN_0207a0cc - arm_func_end thunk_FUN_0207a0cc - - arm_func_start thunk_FUN_0207a048 -thunk_FUN_0207a048: @ 0x02002904 - ldr ip, _0200290C @ =FUN_0207a048 - bx ip - .align 2, 0 -_0200290C: .4byte FUN_0207a048 - arm_func_end thunk_FUN_0207a048 - - arm_func_start FUN_02002910 -FUN_02002910: @ 0x02002910 - push {r4, lr} - mov r4, r0 - bl FUN_0207a164 - tst r0, #0xff - beq _02002944 - ldr r0, [r4, #0xc] - cmp r0, #1 - movle r0, #1 - pople {r4, pc} - mov r0, r4 - bl FUN_0207a0cc - mov r0, #0 - pop {r4, pc} -_02002944: - mov r0, #0 - pop {r4, pc} - arm_func_end FUN_02002910 -_0200294C: - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02002950 -FUN_02002950: @ 0x02002950 - push {r3, lr} - mov r3, r0 - add r1, r3, #4 - add r0, r3, #8 - mov r2, #1 - str r1, [r3] - bl FUN_02079db8 - bl FUN_02002670 - ldr r0, _0200299C @ =0x0229B0E8 - ldr r1, [r0] - add r1, r1, #1 - str r1, [r0] - ldr r2, [r0] - ldr r1, [r0, #4] - cmp r2, r1 - ldrgt r1, [r0] - strgt r1, [r0, #4] - bl FUN_020026b8 - pop {r3, pc} - .align 2, 0 -_0200299C: .4byte 0x0229B0E8 - arm_func_end FUN_02002950 - - arm_func_start FUN_020029a0 -FUN_020029a0: @ 0x020029A0 - ldr ip, _020029B4 @ =FUN_02079de0 - mov r1, #0 - mov r2, r1 - add r0, r0, #8 - bx ip - .align 2, 0 -_020029B4: .4byte FUN_02079de0 - arm_func_end FUN_020029a0 - - arm_func_start FUN_020029b8 -FUN_020029b8: @ 0x020029B8 - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r1, _02002A40 @ =0x022B966C - mov r4, r0 - ldr sb, [r1, #4] - mov r7, #0 - mov r0, sb - bl FUN_02079b0c - mov r8, r0 - mov r0, sb - mov r1, #7 - bl FUN_02079a64 - mov r5, r7 - b _020029F0 -_020029EC: - add r7, r7, #1 -_020029F0: - mov r1, r5 - mov r2, r5 - add r0, r4, #8 - bl FUN_02079de0 - cmp r0, #0 - bne _020029EC - add r6, sp, #0 - mov r5, #0 -_02002A10: - mov r1, r6 - mov r2, r5 - add r0, r4, #8 - bl FUN_02079e74 - cmp r0, #0 - subne r7, r7, #1 - bne _02002A10 - mov r0, sb - mov r1, r8 - bl FUN_02079a64 - mov r0, r7 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_02002A40: .4byte 0x022B966C - arm_func_end FUN_020029b8 - - arm_func_start FUN_02002a44 -FUN_02002a44: @ 0x02002A44 - push {r3, r4, r5, r6, lr} - sub sp, sp, #4 - ldr r1, _02002A94 @ =0x022B966C - mov r6, r0 - ldr r5, [r1, #4] - mov r0, r5 - bl FUN_02079b0c - mov r4, r0 - mov r0, r5 - mov r1, #6 - bl FUN_02079a64 - add r1, sp, #0 - add r0, r6, #8 - mov r2, #1 - bl FUN_02079e74 - mov r0, r5 - mov r1, r4 - bl FUN_02079a64 - add sp, sp, #4 - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_02002A94: .4byte 0x022B966C - arm_func_end FUN_02002a44 -_02002A98: - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02002a9c -FUN_02002a9c: @ 0x02002A9C - push {r4, r5, r6, lr} - mov r6, r0 - str r1, [r6, #0xa4] - add r1, r6, #4 - str r2, [r6, #0xa8] - str r1, [r6] - ldr r2, [r6, #0xa4] - add r0, r6, #0x84 - bl FUN_02079db8 - mov r5, #0 - mov r4, r5 - b _02002AE0 -_02002ACC: - mov r1, r4 - mov r2, r4 - add r0, r6, #0x84 - bl FUN_02079de0 - add r5, r5, #1 -_02002AE0: - ldr r0, [r6, #0xa8] - cmp r5, r0 - blt _02002ACC - bl FUN_02002670 - ldr r0, _02002B1C @ =0x0229B0F0 - ldr r1, [r0] - add r1, r1, #1 - str r1, [r0] - ldr r2, [r0] - ldr r1, [r0, #4] - cmp r2, r1 - ldrgt r1, [r0] - strgt r1, [r0, #4] - bl FUN_020026b8 - pop {r4, r5, r6, pc} - .align 2, 0 -_02002B1C: .4byte 0x0229B0F0 - arm_func_end FUN_02002a9c - - arm_func_start FUN_02002b20 -FUN_02002b20: @ 0x02002B20 - ldr ip, _02002B34 @ =FUN_02079de0 - mov r1, #0 - mov r2, r1 - add r0, r0, #0x84 - bx ip - .align 2, 0 -_02002B34: .4byte FUN_02079de0 - arm_func_end FUN_02002b20 - - arm_func_start FUN_02002b38 -FUN_02002b38: @ 0x02002B38 - ldr ip, _02002B4C @ =FUN_02079de0 - mov r1, #0 - mov r2, r1 - add r0, r0, #0x84 - bx ip - .align 2, 0 -_02002B4C: .4byte FUN_02079de0 - arm_func_end FUN_02002b38 - - arm_func_start FUN_02002b50 -FUN_02002b50: @ 0x02002B50 - push {r3, lr} - ldr r1, [r0, #0x98] - cmp r1, #0 - movne r0, #0 - popne {r3, pc} - mov r1, #0 - mov r2, r1 - add r0, r0, #0x84 - bl FUN_02079de0 - mov r0, #1 - pop {r3, pc} - arm_func_end FUN_02002b50 - - arm_func_start FUN_02002b7c -FUN_02002b7c: @ 0x02002B7C - push {r3, r4, r5, r6, lr} - sub sp, sp, #4 - ldr r1, _02002BCC @ =0x022B966C - mov r6, r0 - ldr r5, [r1, #4] - mov r0, r5 - bl FUN_02079b0c - mov r4, r0 - mov r0, r5 - mov r1, #6 - bl FUN_02079a64 - add r1, sp, #0 - add r0, r6, #0x84 - mov r2, #1 - bl FUN_02079e74 - mov r0, r5 - mov r1, r4 - bl FUN_02079a64 - add sp, sp, #4 - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_02002BCC: .4byte 0x022B966C - arm_func_end FUN_02002b7c - - arm_func_start FUN_02002bd0 -FUN_02002bd0: @ 0x02002BD0 - push {r3, r4, r5, r6, lr} - sub sp, sp, #4 - ldr r1, _02002C28 @ =0x022B966C - mov r5, r0 - ldr r6, [r1, #4] - mov r0, r6 - bl FUN_02079b0c - mov r4, r0 - mov r0, r6 - mov r1, #6 - bl FUN_02079a64 - add r1, sp, #0 - add r0, r5, #0x84 - mov r2, #0 - bl FUN_02079e74 - and r5, r0, #0xff - mov r0, r6 - mov r1, r4 - bl FUN_02079a64 - mov r0, r5 - add sp, sp, #4 - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_02002C28: .4byte 0x022B966C - arm_func_end FUN_02002bd0 -_02002C2C: - .byte 0x04, 0xC0, 0x9F, 0xE5 - .byte 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x30, 0xA0, 0x07, 0x02, 0xF8, 0xB0, 0x29, 0x02 - - arm_func_start FUN_02002c40 -FUN_02002c40: @ 0x02002C40 - push {r4, r5, r6, lr} - ldr r1, _02002CA4 @ =0x022B966C - mov r6, r0 - ldr r5, [r1, #4] - mov r0, r5 - bl FUN_02079b0c - mov r4, r0 - mov r0, r5 - mov r1, #7 - bl FUN_02079a64 - ldr r0, _02002CA8 @ =0x0229B0F8 - bl FUN_0207a048 - mov r0, r6 - bl FUN_020028b0 - bl FUN_02002580 - str r0, [r6, #0x18] - mov r0, #0 - str r0, [r6, #0x20] - str r0, [r6, #0x1c] - ldr r0, _02002CA8 @ =0x0229B0F8 - bl FUN_0207a0cc - mov r0, r5 - mov r1, r4 - bl FUN_02079a64 - pop {r4, r5, r6, pc} - .align 2, 0 -_02002CA4: .4byte 0x022B966C -_02002CA8: .4byte 0x0229B0F8 - arm_func_end FUN_02002c40 - - arm_func_start FUN_02002cac -FUN_02002cac: @ 0x02002CAC - str r1, [r0, #0x20] - bx lr - arm_func_end FUN_02002cac - - arm_func_start FUN_02002cb4 -FUN_02002cb4: @ 0x02002CB4 - push {r4, r5, r6, lr} - ldr r1, _02002D10 @ =0x022B966C - mov r6, r0 - ldr r5, [r1, #4] - mov r0, r5 - bl FUN_02079b0c - ldr r1, [r6, #0x20] - mov r4, r0 - cmp r1, #0 - beq _02002CF4 - cmp r1, r4 - movhs r4, #0 - bhs _02002CF8 - mov r0, r5 - bl FUN_02079a64 - b _02002CF8 -_02002CF4: - mov r4, #0 -_02002CF8: - mov r0, r6 - bl thunk_FUN_0207a048 - str r4, [r6, #0x1c] - bl FUN_02002580 - str r0, [r6, #0x18] - pop {r4, r5, r6, pc} - .align 2, 0 -_02002D10: .4byte 0x022B966C - arm_func_end FUN_02002cb4 - - arm_func_start FUN_02002d14 -FUN_02002d14: @ 0x02002D14 - push {r3, r4, r5, r6, r7, lr} - ldr r2, _02002D7C @ =0x022B966C - mov r7, r0 - ldr r5, [r2, #4] - mov r6, r1 - mov r0, r5 - bl FUN_02079b0c - ldr r1, [r7, #0x20] - mov r4, r0 - cmp r1, #0 - beq _02002D58 - cmp r1, r4 - movhs r4, #0 - bhs _02002D5C - mov r0, r5 - bl FUN_02079a64 - b _02002D5C -_02002D58: - mov r4, #0 -_02002D5C: - mov r0, r6 - bl FUN_02002b7c - mov r0, r7 - bl thunk_FUN_0207a048 - str r4, [r7, #0x1c] - bl FUN_02002580 - str r0, [r7, #0x18] - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02002D7C: .4byte 0x022B966C - arm_func_end FUN_02002d14 - - arm_func_start FUN_02002d80 -FUN_02002d80: @ 0x02002D80 - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r1 - bl FUN_02002580 - mov r4, r0 - ldr r0, [r4] - bl FUN_02079b0c - ldr r1, [r7, #0x20] - mov r5, r0 - cmp r1, #0 - beq _02002DC4 - cmp r1, r5 - movhs r5, #0 - bhs _02002DC8 - ldr r0, [r4] - bl FUN_02079a64 - b _02002DC8 -_02002DC4: - mov r5, #0 -_02002DC8: - mov r0, r6 - bl FUN_02002bd0 - cmp r0, #0 - beq _02002DF4 - mov r0, r7 - bl thunk_FUN_0207a048 - str r5, [r7, #0x1c] - bl FUN_02002580 - str r0, [r7, #0x18] - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_02002DF4: - cmp r5, #0 - beq _02002E08 - mov r0, r4 - mov r1, r5 - bl FUN_020027f8 -_02002E08: - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_02002d80 - - arm_func_start FUN_02002e10 -FUN_02002e10: @ 0x02002E10 - push {r4, r5, r6, lr} - ldr r1, _02002E94 @ =0x022B966C - mov r6, r0 - ldr r5, [r1, #4] - mov r0, r5 - bl FUN_02079b0c - ldr r1, [r6, #0x20] - mov r4, r0 - cmp r1, #0 - beq _02002E50 - cmp r1, r4 - movhs r4, #0 - bhs _02002E54 - mov r0, r5 - bl FUN_02079a64 - b _02002E54 -_02002E50: - mov r4, #0 -_02002E54: - mov r0, r6 - bl FUN_02002910 - cmp r0, #0 - beq _02002E78 - str r4, [r6, #0x1c] - bl FUN_02002580 - str r0, [r6, #0x18] - mov r0, #1 - pop {r4, r5, r6, pc} -_02002E78: - cmp r4, #0 - beq _02002E8C - mov r0, r5 - mov r1, r4 - bl FUN_02079a64 -_02002E8C: - mov r0, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_02002E94: .4byte 0x022B966C - arm_func_end FUN_02002e10 - - arm_func_start FUN_02002e98 -FUN_02002e98: @ 0x02002E98 - push {r3, r4, r5, lr} - ldr r4, [r0, #0x1c] - ldr r5, [r0, #0x18] - mov r1, #0 - str r1, [r0, #0x1c] - str r1, [r0, #0x18] - bl thunk_FUN_0207a0cc - cmp r4, #0 - popeq {r3, r4, r5, pc} - mov r0, r5 - mov r1, r4 - bl FUN_020027f8 - pop {r3, r4, r5, pc} - arm_func_end FUN_02002e98 - - arm_func_start FUN_02002ecc -FUN_02002ecc: @ 0x02002ECC - push {r4, r5, r6, lr} - ldr r4, [r0, #0x1c] - ldr r5, [r0, #0x18] - mov r2, #0 - str r2, [r0, #0x18] - mov r6, r1 - str r2, [r0, #0x1c] - bl thunk_FUN_0207a0cc - mov r0, r6 - bl FUN_02002b20 - cmp r4, #0 - popeq {r4, r5, r6, pc} - mov r0, r5 - mov r1, r4 - bl FUN_020027f8 - pop {r4, r5, r6, pc} - arm_func_end FUN_02002ecc - - arm_func_start FUN_02002f0c -FUN_02002f0c: @ 0x02002F0C - push {r3, lr} - ldr r0, _02002F30 @ =0x020AEF58 - bl FUN_02002c40 - ldr r0, _02002F30 @ =0x020AEF58 - mov r1, #7 - bl FUN_02002cac - ldr r0, _02002F30 @ =0x020AEF58 - bl FUN_02002e98 - pop {r3, pc} - .align 2, 0 -_02002F30: .4byte 0x020AEF58 - arm_func_end FUN_02002f0c - - arm_func_start FUN_02002f34 -FUN_02002f34: @ 0x02002F34 - push {r3, r4, r5, lr} - mov r5, r0 - ldr r0, _02002F78 @ =0x020AEF58 - mov r4, r1 - bl FUN_02002cb4 - lsl r0, r4, #2 - mov r1, #1 - bl MemAlloc - str r0, [r5, #0x20] - str r4, [r5, #0x24] - ldr r1, [r5, #0x20] - mov r0, r5 - mov r2, r4 - bl FUN_02079db8 - ldr r0, _02002F78 @ =0x020AEF58 - bl FUN_02002e98 - pop {r3, r4, r5, pc} - .align 2, 0 -_02002F78: .4byte 0x020AEF58 - arm_func_end FUN_02002f34 - - arm_func_start FUN_02002f7c -FUN_02002f7c: @ 0x02002F7C - push {r3, lr} - cmp r2, #0 - movne r2, #1 - moveq r2, #0 - bl FUN_02079de0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FUN_02002f7c - - arm_func_start FUN_02002f98 -FUN_02002f98: @ 0x02002F98 - push {r3, lr} - cmp r2, #0 - movne r2, #1 - moveq r2, #0 - bl FUN_02079e74 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FUN_02002f98 - - arm_func_start FUN_02002fb4 -FUN_02002fb4: @ 0x02002FB4 - bx lr - arm_func_end FUN_02002fb4 - - arm_func_start FUN_02002fb8 -FUN_02002fb8: @ 0x02002FB8 - push {r4, r5, r6, lr} - ldr r0, _02003024 @ =0x0229B110 - mov r6, #0 - strh r6, [r0] - cmp r6, #6 - ldr r5, _02003028 @ =0x0229B114 - bge _0200301C - mov r4, r6 - b _02003014 -_02002FDC: - mov r0, r5 - bl FUN_02002c40 - cmp r6, #4 - str r4, [r5, #0x24] - cmpne r6, #5 - bne _02003000 - bl FUN_0207902c - strh r0, [r5, #0x28] - b _02003004 -_02003000: - strh r4, [r5, #0x28] -_02003004: - mov r0, r5 - bl FUN_02002e98 - add r6, r6, #1 - add r5, r5, #0x2c -_02003014: - cmp r6, #6 - blt _02002FDC -_0200301C: - bl FUN_020059a8 - pop {r4, r5, r6, pc} - .align 2, 0 -_02003024: .4byte 0x0229B110 -_02003028: .4byte 0x0229B114 - arm_func_end FUN_02002fb8 - - arm_func_start FUN_0200302c -FUN_0200302c: @ 0x0200302C - push {r4, r5, r6, r7, r8, sb, sl, lr} - movs r8, r0 - popeq {r4, r5, r6, r7, r8, sb, sl, pc} - bl FUN_02002580 - mov r7, r0 - mov r6, #0 - ldr r5, _020030C4 @ =0x0229B114 - mov r4, #1 - ldr sl, _020030C8 @ =0x0229B110 - b _020030B8 -_02003054: - lsl r0, r4, r6 - lsl sb, r0, #0x10 - tst r8, sb, lsr #16 - beq _020030B0 - mov r0, r5 - bl FUN_02002cb4 - bl InterruptMasterDisable - ldrh r0, [sl] - ldrh r0, [sl] - str r7, [r5, #0x24] - orr r0, r0, sb, lsr #16 - strh r0, [sl] - bl InterruptMasterEnable - cmp r6, #4 - beq _0200309C - cmp r6, #5 - beq _020030A8 - b _020030B0 -_0200309C: - ldrh r0, [r5, #0x28] - bl FUN_02083434 - b _020030B0 -_020030A8: - ldrh r0, [r5, #0x28] - bl FUN_0208346c -_020030B0: - add r6, r6, #1 - add r5, r5, #0x2c -_020030B8: - cmp r6, #6 - blt _02003054 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_020030C4: .4byte 0x0229B114 -_020030C8: .4byte 0x0229B110 - arm_func_end FUN_0200302c - - arm_func_start InterruptMasterDisable -InterruptMasterDisable: @ 0x020030CC - ldr r2, _020030E0 @ =0x04000208 - mov r1, #0 - ldrh r0, [r2] - strh r1, [r2] - bx lr - .align 2, 0 -_020030E0: .4byte 0x04000208 - arm_func_end InterruptMasterDisable - - arm_func_start InterruptMasterEnable -InterruptMasterEnable: @ 0x020030E4 - ldr r2, _020030F8 @ =0x04000208 - mov r1, #1 - ldrh r0, [r2] - strh r1, [r2] - bx lr - .align 2, 0 -_020030F8: .4byte 0x04000208 - arm_func_end InterruptMasterEnable - - arm_func_start FUN_020030fc -FUN_020030fc: @ 0x020030FC - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - movs sl, r0 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - bl FUN_02002580 - mov r1, #7 - mov r8, r0 - bl FUN_020027f8 - mov sb, r0 - mov r7, #0 - ldr r6, _020031B8 @ =0x0229B114 - mov fp, #1 - ldr r5, _020031BC @ =0x0229B110 - b _020031A0 -_02003130: - lsl r0, fp, r7 - lsl r4, r0, #0x10 - tst sl, r4, lsr #16 - beq _02003198 - cmp r7, #4 - beq _02003154 - cmp r7, #5 - beq _02003160 - b _02003168 -_02003154: - ldrh r0, [r6, #0x28] - bl FUN_02083450 - b _02003168 -_02003160: - ldrh r0, [r6, #0x28] - bl FUN_0208347c -_02003168: - bl InterruptMasterDisable - ldrh r0, [r5] - mvn r1, r4, lsr #16 - ldrh r0, [r5] - ldrh r2, [r5] - mov r0, #0 - str r0, [r6, #0x24] - and r0, r2, r1 - strh r0, [r5] - bl InterruptMasterEnable - mov r0, r6 - bl FUN_02002e98 -_02003198: - add r7, r7, #1 - add r6, r6, #0x2c -_020031A0: - cmp r7, #6 - blt _02003130 - mov r0, r8 - mov r1, sb - bl FUN_020027f8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_020031B8: .4byte 0x0229B114 -_020031BC: .4byte 0x0229B110 - arm_func_end FUN_020030fc - - arm_func_start FUN_020031c0 -FUN_020031c0: @ 0x020031C0 - push {r3, r4, r5, lr} - mov r4, r0 - bl FUN_02002580 - mov r5, #0 - mov lr, r5 - cmp r5, #6 - ldr ip, _02003218 @ =0x0229B114 - bge _02003210 - mov r3, #1 - b _02003208 -_020031E8: - lsl r1, r3, lr - lsl r1, r1, #0x10 - tst r4, r1, lsr #16 - ldrne r2, [ip, #0x24] - add lr, lr, #1 - cmpne r2, r0 - orrne r5, r5, r1, lsr #16 - add ip, ip, #0x2c -_02003208: - cmp lr, #6 - blt _020031E8 -_02003210: - mov r0, r5 - pop {r3, r4, r5, pc} - .align 2, 0 -_02003218: .4byte 0x0229B114 - arm_func_end FUN_020031c0 - - arm_func_start InitMemAllocTableVeneer -InitMemAllocTableVeneer: @ 0x0200321C - ldr ip, _02003224 @ =InitMemAllocTable - bx ip - .align 2, 0 -_02003224: .4byte InitMemAllocTable - arm_func_end InitMemAllocTableVeneer - - arm_func_start ZInit8 -ZInit8: @ 0x02003228 - mov r1, #0 - str r1, [r0] - str r1, [r0, #4] - bx lr - arm_func_end ZInit8 - - arm_func_start PointsToZero -PointsToZero: @ 0x02003238 - ldr r0, [r0] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr - arm_func_end PointsToZero - - arm_func_start MemZero -MemZero: @ 0x02003250 - mov r2, #0 - b _02003260 -_02003258: - sub r1, r1, #1 - strb r2, [r0], #1 -_02003260: - cmp r1, #0 - bgt _02003258 - bx lr - arm_func_end MemZero - - arm_func_start MemZero16 -MemZero16: @ 0x0200326C - mov r2, #0 - b _0200327C -_02003274: - sub r1, r1, #2 - strh r2, [r0], #2 -_0200327C: - cmp r1, #0 - bgt _02003274 - bx lr - arm_func_end MemZero16 - - arm_func_start MemZero32 -MemZero32: @ 0x02003288 - mov r2, #0 - b _02003298 -_02003290: - sub r1, r1, #4 - str r2, [r0], #4 -_02003298: - cmp r1, #0 - bgt _02003290 - bx lr - arm_func_end MemZero32 - - arm_func_start MemsetSimple -MemsetSimple: @ 0x020032A4 - b _020032B0 -_020032A8: - sub r2, r2, #1 - strb r1, [r0], #1 - arm_func_end MemsetSimple -_020032B0: - cmp r2, #0 - bgt _020032A8 - bx lr - - arm_func_start Memset32 -Memset32: @ 0x020032BC - b _020032C8 -_020032C0: - sub r2, r2, #4 - str r1, [r0], #4 -_020032C8: - cmp r2, #0 - bgt _020032C0 - bx lr - arm_func_end Memset32 - - arm_func_start MemcpySimple -MemcpySimple: @ 0x020032D4 - b _020032E4 -_020032D8: - ldrb r3, [r1], #1 - sub r2, r2, #1 - strb r3, [r0], #1 - arm_func_end MemcpySimple -_020032E4: - cmp r2, #0 - bgt _020032D8 - bx lr - - arm_func_start Memcpy16 -Memcpy16: @ 0x020032F0 - b _02003300 -_020032F4: - ldrh r3, [r1], #2 - sub r2, r2, #2 - strh r3, [r0], #2 - arm_func_end Memcpy16 -_02003300: - cmp r2, #0 - bgt _020032F4 - bx lr - - arm_func_start Memcpy32 -Memcpy32: @ 0x0200330C - b _0200331C -_02003310: - ldr r3, [r1], #4 - sub r2, r2, #4 - str r3, [r0], #4 - arm_func_end Memcpy32 -_0200331C: - cmp r2, #0 - bgt _02003310 - bx lr - - arm_func_start TaskProcBoot -TaskProcBoot: @ 0x02003328 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0xc - ldr r0, _020035CC @ =0x020AF000 - bl FUN_02002950 - ldr r0, _020035D0 @ =0x020AF028 - bl FUN_02002950 - ldr r0, _020035D4 @ =0x020AF050 - bl FUN_02002950 - ldr r0, _020035D8 @ =0x020AEFDC - bl FUN_02002c40 - bl FUN_02006d4c - bl FUN_02017d20 - ldr r2, _020035DC @ =0x0229B248 - ldr r1, _020035E0 @ =0x020AEF7C - ldr r0, _020035E4 @ =0x020AF078 - str r2, [r1, #0x3c] - ldr r1, _020035E8 @ =0x020AEFB4 - mov r2, #0 - bl FUN_02002778 - ldr r0, _020035E4 @ =0x020AF078 - bl FUN_020027e8 - bl FUN_0207b370 - ldr r0, _020035EC @ =0x0229B220 - bl FUN_0207b4a4 - mov r1, #0 - str r1, [sp] - ldr r0, _020035EC @ =0x0229B220 - mov r2, #0x64 - ldr r3, _020035F0 @ =0x02003754 - bl FUN_0207b4b8 - mov r0, #1 - ldr r1, _020035F4 @ =0x02003704 - bl FUN_02078a98 - mov r0, #1 - bl FUN_02078c68 - bl EnableAllInterrupts - mov r0, #1 - bl FUN_020761e8 - ldr r0, _020035F8 @ =0x020AF154 - ldr r1, _020035E0 @ =0x020AEF7C - ldr r2, _020035FC @ =0x0229F248 - str r0, [r1, #0x24] - str r2, [r1, #0x50] - ldr r1, _02003600 @ =0x020AEFC8 - mov r2, #0 - bl FUN_02002778 - ldr r0, _020035F8 @ =0x020AF154 - bl FUN_020027e8 - bl FUN_02002580 - ldr r2, _020035E0 @ =0x020AEF7C - mov r1, #0xf - str r0, [r2, #0x34] - bl FUN_020027f8 - ldr r0, _020035E0 @ =0x020AEF7C - mov r1, #2 - ldr r0, [r0, #0x34] - bl FUN_02002858 - mov sl, #0 - ldr r1, _020035E0 @ =0x020AEF7C - ldr r0, _02003604 @ =0x020924D8 - strb sl, [r1, #5] - bl DebugPrint0 - mov r8, #1 - ldr r4, _020035E0 @ =0x020AEF7C - mov r6, sl - mov sb, sl - mov r7, r8 - mov r5, sl - mov fp, r8 -_0200343C: - add r0, sp, #4 - mov r1, #0xb - bl FUN_02002628 - ldrb r0, [r4, #7] - cmp r0, #0 - strbne sb, [r4, #7] - bne _02003460 - ldr r0, _020035D4 @ =0x020AF050 - bl FUN_02002a44 -_02003460: - cmp sl, #0 - beq _020034A8 - ldrb r0, [r4, #6] - cmp r0, #0 - ldrbne r0, [r4] - cmpne r0, #0 - beq _020034C8 - ldr r0, _020035CC @ =0x020AF000 - strb r8, [r4, #3] - bl FUN_020029a0 - ldr r0, _020035D0 @ =0x020AF028 - bl FUN_02002a44 - bl FUN_02002670 - ldr r0, [r4, #0x10] - cmp r0, #0 - moveq sl, #0 - bl FUN_020026b8 - b _020034C8 -_020034A8: - bl FUN_02002670 - ldr sl, [r4, #0x10] - bl FUN_020026b8 - cmp sl, #0 - beq _020034C8 - ldr r0, _020035D0 @ =0x020AF028 - strb r7, [r4, #3] - bl FUN_02002a44 -_020034C8: - add r0, sp, #4 - bl FUN_0200265c - bl FUN_02002670 - ldr r0, [r4, #0x10] - cmp r0, #0 - movne sl, r0 - cmp sl, #0 - beq _02003518 - ldrb r0, [r4, #3] - cmp r0, #0 - strbne r6, [r4] - str sl, [r4, #0x18] - bl FUN_020026b8 - ldr r0, [r4, #0x30] - add r0, r0, #1 - str r0, [r4, #0x30] - bl FUN_02006098 - blx sl - strb r0, [r4, #6] - b _02003530 -_02003518: - bl FUN_020026b8 - bl FUN_02003a40 - bl FUN_02002670 - str r5, [r4, #0x18] - strb fp, [r4, #6] - bl FUN_020026b8 -_02003530: - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _02003544 - mov r0, #0 - bl FUN_020025f8 -_02003544: - ldrb r0, [r4, #2] - cmp r0, #0 - beq _0200343C - bl FUN_02003b5c - cmp r0, #0 - beq _020035A8 - ldrb r0, [r4, #1] - cmp r0, #0 - beq _02003584 - mov r0, #0 - mov r1, #0 - strb r0, [r4, #0xb] - mov r0, #0xc - mov r2, r1 - bl FUN_020820e8 - b _0200343C -_02003584: - ldr r0, [r4, #0x14] - cmp r0, #0 - bne _0200343C - mov r0, #0 - bl FUN_02082420 - cmp r0, #0 - movne r0, #1 - strne r0, [r4, #0x14] - b _0200343C -_020035A8: - ldr r0, [r4, #0x14] - cmp r0, #0 - beq _0200343C - mov r0, #1 - bl FUN_02082420 - cmp r0, #0 - movne r0, #0 - strne r0, [r4, #0x14] - b _0200343C - .align 2, 0 -_020035CC: .4byte 0x020AF000 -_020035D0: .4byte 0x020AF028 -_020035D4: .4byte 0x020AF050 -_020035D8: .4byte 0x020AEFDC -_020035DC: .4byte 0x0229B248 -_020035E0: .4byte 0x020AEF7C -_020035E4: .4byte 0x020AF078 -_020035E8: .4byte 0x020AEFB4 -_020035EC: .4byte 0x0229B220 -_020035F0: .4byte 0x02003754 -_020035F4: .4byte 0x02003704 -_020035F8: .4byte 0x020AF154 -_020035FC: .4byte 0x0229F248 -_02003600: .4byte 0x020AEFC8 -_02003604: .4byte 0x020924D8 - arm_func_end TaskProcBoot - - arm_func_start EnableAllInterrupts -EnableAllInterrupts: @ 0x02003608 - ldr r2, _0200361C @ =0x04000208 - mov r1, #1 - ldrh r0, [r2] - strh r1, [r2] - bx lr - .align 2, 0 -_0200361C: .4byte 0x04000208 - arm_func_end EnableAllInterrupts - - arm_func_start FUN_02003620 -FUN_02003620: @ 0x02003620 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x28 - mov r7, #0 - ldr fp, _020036FC @ =0x020AF050 - ldr r4, _02003700 @ =0x020AEF7C - add r6, sp, #0 - add r5, sp, #4 - mov r8, #1 - mov sb, r7 - mov sl, r7 -_02003648: - mov r0, sl - bl FUN_02079888 - ldr r0, [r4, #0x28] - add r0, r0, #1 - str r0, [r4, #0x28] - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _02003674 - mov r0, sb - bl HaltProcessDisp - b _02003688 -_02003674: - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _02003688 - mov r0, r8 - bl HaltProcessDisp -_02003688: - ldrb r0, [r4, #1] - cmp r0, #0 - bne _020036AC - bl FUN_02003b5c - cmp r0, #0 - beq _020036AC - ldrb r0, [r4, #8] - cmp r0, #0 - beq _020036E8 -_020036AC: - bl FUN_02006dec - bl Rand16Bit - mov r0, r7 - mov r1, r6 - bl GetHeldButtons - mov r0, r5 - bl GetReleasedStylus - ldrh r0, [sp] - cmp r0, #0 - bne _020036E0 - ldrh r0, [sp, #4] - tst r0, #1 - beq _020036EC -_020036E0: - bl Rand16Bit - b _020036EC -_020036E8: - bl KeyWaitInit -_020036EC: - mov r0, fp - bl FUN_020029b8 - bl thunk_FUN_0201906c - b _02003648 - .align 2, 0 -_020036FC: .4byte 0x020AF050 -_02003700: .4byte 0x020AEF7C - arm_func_end FUN_02003620 -_02003704: - .byte 0x08, 0x40, 0x2D, 0xE9, 0x3C, 0x00, 0x9F, 0xE5, 0x3C, 0x10, 0x9F, 0xE5 - .byte 0x03, 0x0A, 0x80, 0xE2, 0xF8, 0x2F, 0x90, 0xE5, 0x01, 0x20, 0x82, 0xE3, 0xF8, 0x2F, 0x80, 0xE5 - .byte 0x20, 0x00, 0x91, 0xE5, 0x01, 0x00, 0x80, 0xE2, 0x20, 0x00, 0x81, 0xE5, 0x09, 0x00, 0xD1, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x34, 0x00, 0x91, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x7E, 0xD8, 0x01, 0xEB, 0xE5, 0x12, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x00, 0x00, 0x7E, 0x02 - .byte 0x7C, 0xEF, 0x0A, 0x02, 0x18, 0x10, 0x9F, 0xE5, 0x18, 0x00, 0x9F, 0xE5, 0x1C, 0x20, 0x91, 0xE5 - .byte 0x14, 0xC0, 0x9F, 0xE5, 0x01, 0x20, 0x82, 0xE2, 0x00, 0x00, 0x90, 0xE5, 0x1C, 0x20, 0x81, 0xE5 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x7C, 0xEF, 0x0A, 0x02, 0x78, 0xF0, 0x0A, 0x02, 0x40, 0x99, 0x07, 0x02 - - arm_func_start FUN_02003780 -FUN_02003780: @ 0x02003780 - push {r3, lr} - bl FUN_02005eac - ldr r0, _020037A0 @ =0x020AEF7C - mov r1, #1 - strb r1, [r0] - bl FUN_02065d1c - bl WaitForever - pop {r3, pc} - .align 2, 0 -_020037A0: .4byte 0x020AEF7C - arm_func_end FUN_02003780 - - arm_func_start FUN_020037a4 -FUN_020037a4: @ 0x020037A4 - ldr r0, _020037B0 @ =0x020AEF7C - ldr r0, [r0, #0x28] - bx lr - .align 2, 0 -_020037B0: .4byte 0x020AEF7C - arm_func_end FUN_020037a4 - - arm_func_start GetTime -GetTime: @ 0x020037B4 - push {r3, r4, r5, lr} - bl DisableAllInterrupts - ldr r0, _02003818 @ =0x020AEF7C - ldr r1, [r0, #0x1c] - cmp r1, #0 - bne _020037D8 - bl EnableAllInterrupts - mov r0, #0 - pop {r3, r4, r5, pc} -_020037D8: - ldr r1, _0200381C @ =0x04000006 - ldr r4, [r0, #0x1c] - ldrh r5, [r1] - bl EnableAllInterrupts - mov r0, r4 - bl IntToFloat - mov r4, r0 - mov r0, r5 - bl IntToFloat - mov r1, r0 - ldr r0, _02003820 @ =0x3B792FB2 - bl MultiplyFloat - mov r1, r0 - mov r0, r4 - bl AddFloat - pop {r3, r4, r5, pc} - .align 2, 0 -_02003818: .4byte 0x020AEF7C -_0200381C: .4byte 0x04000006 -_02003820: .4byte 0x3B792FB2 - arm_func_end GetTime - - arm_func_start DisableAllInterrupts -DisableAllInterrupts: @ 0x02003824 - ldr r2, _02003838 @ =0x04000208 - mov r1, #0 - ldrh r0, [r2] - strh r1, [r2] - bx lr - .align 2, 0 -_02003838: .4byte 0x04000208 - arm_func_end DisableAllInterrupts - - arm_func_start FUN_0200383c -FUN_0200383c: @ 0x0200383C - push {r3, r4, r5, lr} - sub sp, sp, #8 - mov r5, r0 - add r0, sp, #0 - mov r1, #0xb - bl FUN_02002628 - bl FUN_02002670 - ldr r0, _020038CC @ =0x020AEF7C - mov r1, #1 - strb r1, [r0, #2] - ldr r4, [r0, #0x10] - str r5, [r0, #0x10] - bl FUN_020026b8 - cmp r5, #0 - bne _02003898 - cmp r4, #0 - beq _020038BC - ldr r1, _020038CC @ =0x020AEF7C - mov r2, #0 - ldr r0, _020038D0 @ =0x020AF028 - strb r2, [r1, #3] - bl FUN_020029a0 - b _020038BC -_02003898: - cmp r4, #0 - bne _020038BC - ldr r1, _020038CC @ =0x020AEF7C - mov r2, #1 - ldr r0, _020038D0 @ =0x020AF028 - strb r2, [r1] - bl FUN_020029a0 - ldr r0, _020038D4 @ =0x020AF000 - bl FUN_02002a44 -_020038BC: - add r0, sp, #0 - bl FUN_0200265c - add sp, sp, #8 - pop {r3, r4, r5, pc} - .align 2, 0 -_020038CC: .4byte 0x020AEF7C -_020038D0: .4byte 0x020AF028 -_020038D4: .4byte 0x020AF000 - arm_func_end FUN_0200383c - - arm_func_start FUN_020038d8 -FUN_020038d8: @ 0x020038D8 - ldr r0, _020038E4 @ =0x020AEF7C - ldrb r0, [r0, #3] - bx lr - .align 2, 0 -_020038E4: .4byte 0x020AEF7C - arm_func_end FUN_020038d8 - - arm_func_start FUN_020038e8 -FUN_020038e8: @ 0x020038E8 - push {r4, lr} - sub sp, sp, #8 - add r0, sp, #0 - mov r1, #0xb - bl FUN_02002628 - bl FUN_02002670 - ldr r0, _02003988 @ =0x020AEF7C - ldr r4, [r0, #0x18] - bl FUN_020026b8 - cmp r4, #0 - beq _02003944 - ldr r0, _02003988 @ =0x020AEF7C - mov r1, #1 - strb r1, [r0] - ldrb r1, [r0, #7] - cmp r1, #0 - beq _02003938 - ldr r0, [r0, #0x34] - ldr r0, [r0] - bl FUN_02079940 -_02003938: - ldr r0, _0200398C @ =0x020AF000 - bl FUN_02002a44 - b _02003950 -_02003944: - ldr r0, _02003988 @ =0x020AEF7C - mov r1, #0 - strb r1, [r0, #7] -_02003950: - ldr r1, _02003988 @ =0x020AEF7C - add r0, sp, #0 - ldr r2, [r1, #0x2c] - add r2, r2, #1 - str r2, [r1, #0x2c] - bl FUN_0200265c - ldr r0, _02003988 @ =0x020AEF7C - ldrb r0, [r0, #0xd] - cmp r0, #0 - beq _02003980 - mov r0, #0 - bl FUN_020025f8 -_02003980: - add sp, sp, #8 - pop {r4, pc} - .align 2, 0 -_02003988: .4byte 0x020AEF7C -_0200398C: .4byte 0x020AF000 - arm_func_end FUN_020038e8 - - arm_func_start FUN_02003990 -FUN_02003990: @ 0x02003990 - push {r3, lr} - sub sp, sp, #8 - ldr r0, _020039DC @ =0x020AEF7C - ldrb r0, [r0, #3] - cmp r0, #0 - beq _020039D4 - add r0, sp, #0 - mov r1, #0xb - bl FUN_02002628 - ldr r1, _020039DC @ =0x020AEF7C - mov r2, #0 - strb r2, [r1, #3] - ldr r0, _020039E0 @ =0x020AF000 - strb r2, [r1, #6] - bl FUN_020029a0 - add r0, sp, #0 - bl FUN_0200265c -_020039D4: - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_020039DC: .4byte 0x020AEF7C -_020039E0: .4byte 0x020AF000 - arm_func_end FUN_02003990 - - arm_func_start FUN_020039e4 -FUN_020039e4: @ 0x020039E4 - push {r3, lr} - sub sp, sp, #8 - ldr r0, _02003A34 @ =0x020AEF7C - ldrb r0, [r0, #3] - cmp r0, #0 - beq _02003A2C - add r0, sp, #0 - mov r1, #0xb - bl FUN_02002628 - ldr r1, _02003A34 @ =0x020AEF7C - mov r2, #0 - ldr r0, _02003A38 @ =0x020AF028 - strb r2, [r1, #6] - bl FUN_020029a0 - ldr r0, _02003A3C @ =0x020AF000 - bl FUN_02002a44 - add r0, sp, #0 - bl FUN_0200265c -_02003A2C: - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_02003A34: .4byte 0x020AEF7C -_02003A38: .4byte 0x020AF028 -_02003A3C: .4byte 0x020AF000 - arm_func_end FUN_020039e4 - - arm_func_start FUN_02003a40 -FUN_02003a40: @ 0x02003A40 - push {r4, lr} - sub sp, sp, #8 - add r0, sp, #0 - mov r1, #0xb - bl FUN_02002628 - ldr r1, _02003AAC @ =0x020AEF7C - mov r2, #1 - ldrb r0, [r1, #0xa] - cmp r0, #0 - mov r0, #0 - beq _02003A7C - strb r0, [r1, #0xa] - strb r2, [r1, #7] - bl FUN_02079888 - b _02003A90 -_02003A7C: - strb r2, [r1, #9] - bl FUN_02079888 - ldr r0, _02003AAC @ =0x020AEF7C - mov r1, #0 - strb r1, [r0, #9] -_02003A90: - ldr r1, _02003AAC @ =0x020AEF7C - add r0, sp, #0 - ldrb r4, [r1] - bl FUN_0200265c - mov r0, r4 - add sp, sp, #8 - pop {r4, pc} - .align 2, 0 -_02003AAC: .4byte 0x020AEF7C - arm_func_end FUN_02003a40 - - arm_func_start FUN_02003ab0 -FUN_02003ab0: @ 0x02003AB0 - push {r3, lr} - ldr r0, _02003AC8 @ =0x020AF050 - bl FUN_02002a44 - ldr r0, _02003ACC @ =0x020AEF7C - ldr r0, [r0, #0x28] - pop {r3, pc} - .align 2, 0 -_02003AC8: .4byte 0x020AF050 -_02003ACC: .4byte 0x020AEF7C - arm_func_end FUN_02003ab0 - - arm_func_start FUN_02003ad0 -FUN_02003ad0: @ 0x02003AD0 - push {r3, lr} - ldr r0, _02003B50 @ =0x020AEF7C - ldrb r0, [r0, #5] - cmp r0, #0 - popne {r3, pc} - bl FUN_02002580 - mov r1, #1 - bl FUN_020027f8 - bl FUN_02002580 - bl FUN_02002860 - cmp r0, #0 - beq _02003B10 - ldr r0, _02003B54 @ =0x020AF050 - bl FUN_02002a44 - ldr r0, _02003B50 @ =0x020AEF7C - ldr r0, [r0, #0x28] -_02003B10: - ldr r0, _02003B50 @ =0x020AEF7C - mov r2, #1 - strb r2, [r0, #5] - ldrb r1, [r0, #0xf] - cmp r1, #0 - bne _02003B30 - strb r2, [r0, #0xf] - bl FUN_020081c8 -_02003B30: - bl DisableAllInterrupts - ldr r0, _02003B58 @ =0x0229B220 - bl FUN_0207b584 - mov r0, #1 - mov r1, #0 - bl FUN_02078a98 - bl EnableAllInterrupts - pop {r3, pc} - .align 2, 0 -_02003B50: .4byte 0x020AEF7C -_02003B54: .4byte 0x020AF050 -_02003B58: .4byte 0x0229B220 - arm_func_end FUN_02003ad0 - - arm_func_start FUN_02003b5c -FUN_02003b5c: @ 0x02003B5C - ldr r0, _02003B8C @ =0x020AEF7C - mov r1, #1 - ldrb r0, [r0, #0xb] - cmp r0, #0 - bne _02003B84 - ldr r0, _02003B90 @ =0x027FFFA8 - ldrh r0, [r0] - and r0, r0, #0x8000 - asrs r0, r0, #0xf - moveq r1, #0 -_02003B84: - and r0, r1, #0xff - bx lr - .align 2, 0 -_02003B8C: .4byte 0x020AEF7C -_02003B90: .4byte 0x027FFFA8 - arm_func_end FUN_02003b5c - - arm_func_start FUN_02003b94 -FUN_02003b94: @ 0x02003B94 - ldr r0, _02003BA8 @ =0x020AEF7C - mov r1, #0 - strb r1, [r0, #1] - strb r1, [r0, #8] - bx lr - .align 2, 0 -_02003BA8: .4byte 0x020AEF7C - arm_func_end FUN_02003b94 -_02003BAC: - .byte 0x10, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x01, 0x10, 0xC0, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x08, 0x10, 0xC0, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x7C, 0xEF, 0x0A, 0x02 - - arm_func_start FUN_02003bc8 -FUN_02003bc8: @ 0x02003BC8 - push {r3, lr} - bl SoundResume - ldr r0, _02003BE8 @ =0x020AEF7C - mov r1, #1 - strb r1, [r0, #1] - mov r1, #0 - strb r1, [r0, #8] - pop {r3, pc} - .align 2, 0 -_02003BE8: .4byte 0x020AEF7C - arm_func_end FUN_02003bc8 -_02003BEC: - .byte 0x04, 0x00, 0x9F, 0xE5 - .byte 0x01, 0x00, 0xD0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x7C, 0xEF, 0x0A, 0x02, 0x08, 0x40, 0x2D, 0xE9 - .byte 0xAC, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xD0, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x26, 0x00, 0x00, 0x1A - .byte 0x04, 0x00, 0xD0, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x0F, 0x00, 0x00, 0x0A, 0xCE, 0xFF, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0x1A, 0x88, 0x00, 0x9F, 0xE5, 0x72, 0x21, 0x00, 0xEB - .byte 0x84, 0x00, 0x9F, 0xE5, 0xB2, 0x00, 0xD0, 0xE1, 0x6D, 0x50, 0x00, 0xEB, 0x78, 0x00, 0x9F, 0xE5 - .byte 0xB0, 0x00, 0xD0, 0xE1, 0xF6, 0x50, 0x00, 0xEB, 0x64, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x04, 0x10, 0xC0, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8, 0xBE, 0xFF, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x10, 0x00, 0x00, 0x0A, 0x50, 0x00, 0x9F, 0xE5, 0x62, 0x21, 0x00, 0xEB - .byte 0x4F, 0x50, 0x00, 0xEB, 0x40, 0x10, 0x9F, 0xE5, 0xB2, 0x00, 0xC1, 0xE1, 0xDB, 0x50, 0x00, 0xEB - .byte 0x34, 0x10, 0x9F, 0xE5, 0xB0, 0x00, 0xC1, 0xE1, 0x96, 0x50, 0x00, 0xEB, 0x21, 0x51, 0x00, 0xEB - .byte 0x78, 0x51, 0x00, 0xEB, 0x3F, 0x0C, 0xA0, 0xE3, 0xE2, 0x51, 0x00, 0xEB, 0x10, 0x10, 0x9F, 0xE5 - .byte 0x01, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0xC1, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x08, 0x80, 0xBD, 0xE8, 0x7C, 0xEF, 0x0A, 0x02, 0xE8, 0x24, 0x09, 0x02, 0x1C, 0xB2, 0x29, 0x02 - .byte 0xF8, 0x24, 0x09, 0x02 - - arm_func_start SoundResume -SoundResume: @ 0x02003CC4 - push {r3, lr} - ldr r0, _02003D20 @ =0x020AEF7C - ldrb r1, [r0, #1] - cmp r1, #0 - bne _02003D18 - ldrb r0, [r0, #4] - cmp r0, #0 - beq _02003D18 - ldr r0, _02003D24 @ =0x020924E8 - bl DebugPrint0 - ldr r0, _02003D28 @ =0x0229B21C - ldrh r0, [r0, #2] - bl FUN_02017df4 - ldr r0, _02003D28 @ =0x0229B21C - ldrh r0, [r0] - bl FUN_02018024 - ldr r0, _02003D20 @ =0x020AEF7C - mov r1, #0 - strb r1, [r0, #4] - mov r0, #1 - pop {r3, pc} -_02003D18: - mov r0, #0 - pop {r3, pc} - .align 2, 0 -_02003D20: .4byte 0x020AEF7C -_02003D24: .4byte 0x020924E8 -_02003D28: .4byte 0x0229B21C - arm_func_end SoundResume - - arm_func_start CardPullOutWithStatus -CardPullOutWithStatus: @ 0x02003D2C - push {r4, lr} - ldr r1, _02003D68 @ =0x020AEF7C - mov r4, r0 - ldrb r0, [r1, #0xd] - cmp r0, #0 - popeq {r4, pc} - ldr r0, _02003D6C @ =0x02092508 - mov r1, r4 - bl DebugPrint0 - cmp r4, #0 - beq _02003D5C - bl FUN_020081dc -_02003D5C: - mov r0, #0 - bl FUN_020025f8 - pop {r4, pc} - .align 2, 0 -_02003D68: .4byte 0x020AEF7C -_02003D6C: .4byte 0x02092508 - arm_func_end CardPullOutWithStatus - - arm_func_start CardPullOut -CardPullOut: @ 0x02003D70 - push {r3, lr} - ldr r0, _02003D8C @ =0x0209251C - bl DebugPrint0 - ldr r0, _02003D90 @ =0x020AEF7C - mov r1, #1 - strb r1, [r0, #0xd] - pop {r3, pc} - .align 2, 0 -_02003D8C: .4byte 0x0209251C -_02003D90: .4byte 0x020AEF7C - arm_func_end CardPullOut - - arm_func_start CardBackupError -CardBackupError: @ 0x02003D94 - push {r3, lr} - ldr r0, _02003DB0 @ =0x0209252C - bl DebugPrint0 - ldr r0, _02003DB4 @ =0x020AEF7C - mov r1, #1 - strb r1, [r0, #0xc] - pop {r3, pc} - .align 2, 0 -_02003DB0: .4byte 0x0209252C -_02003DB4: .4byte 0x020AEF7C - arm_func_end CardBackupError - - arm_func_start HaltProcessDisp -HaltProcessDisp: @ 0x02003DB8 - push {r3, r4, r5, r6, r7, lr} - mov r4, r0 - bl FUN_02002580 - ldr r1, _02003EBC @ =0x020AF078 - cmp r0, r1 - moveq r1, #1 - movne r1, #0 - ldr r0, _02003EC0 @ =0x020AEF7C - and r2, r1, #0xff - ldrb r1, [r0, #0xf] - cmp r1, #0 - bne _02003E28 - mov r1, #1 - strb r1, [r0, #0xf] - cmp r2, #0 - beq _02003E24 - mov r6, #0 - ldr r5, _02003EC4 @ =0x020AF050 - b _02003E14 -_02003E04: - mov r0, r6 - bl FUN_02079888 - mov r0, r5 - bl FUN_020029b8 -_02003E14: - bl FUN_020081f0 - cmp r0, #0 - beq _02003E04 - b _02003E28 -_02003E24: - bl FUN_020081c8 -_02003E28: - mov r0, #1 - bl FUN_02002824 - bl thunk_FUN_02019260 - ldr r0, _02003EC8 @ =0x02092540 - mov r1, r4 - bl DebugPrint0 - cmp r4, #2 - bne _02003E9C - mov r0, #1 - bl FUN_0200b76c - mov r7, #0 - mov r6, #1 - ldr r5, _02003EC0 @ =0x020AEF7C - b _02003E7C -_02003E60: - ldrb r0, [r5, #0xd] - cmp r0, #0 - bne _02003E84 - mov r0, r6 - mov r1, r6 - bl FUN_02078900 - add r7, r7, #1 -_02003E7C: - cmp r7, #0x12c - blt _02003E60 -_02003E84: - ldr r0, _02003EC0 @ =0x020AEF7C - ldrb r0, [r0, #0xd] - cmp r0, #0 - bne _02003E9C - mov r0, #0 - bl FUN_02002448 -_02003E9C: - cmp r4, #1 - beq _02003EAC - mov r0, #0 - bl FUN_0200b76c -_02003EAC: - bl FUN_020845f8 - mov r0, #0 - bl FUN_020025f8 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02003EBC: .4byte 0x020AF078 -_02003EC0: .4byte 0x020AEF7C -_02003EC4: .4byte 0x020AF050 -_02003EC8: .4byte 0x02092540 - arm_func_end HaltProcessDisp -_02003ECC: - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start OverlayIsLoaded -OverlayIsLoaded: @ 0x02003ED0 - push {r3, lr} - sub sp, sp, #8 - cmp r0, #0x24 - addls pc, pc, r0, lsl #2 - b _02004078 -_02003EE4: @ jump table - b _02003F78 @ case 0 - b _02003F80 @ case 1 - b _02003F80 @ case 2 - b _02003F80 @ case 3 - b _02003F9C @ case 4 - b _02003F9C @ case 5 - b _02003FC8 @ case 6 - b _02003FC8 @ case 7 - b _02003FC8 @ case 8 - b _02003FC8 @ case 9 - b _02003FC8 @ case 10 - b _02003FC8 @ case 11 - b _02003FC8 @ case 12 - b _02003FF4 @ case 13 - b _02003FF4 @ case 14 - b _02003FF4 @ case 15 - b _02004020 @ case 16 - b _02004020 @ case 17 - b _02004020 @ case 18 - b _02004020 @ case 19 - b _02004020 @ case 20 - b _02004020 @ case 21 - b _02004020 @ case 22 - b _02004020 @ case 23 - b _02004020 @ case 24 - b _02004020 @ case 25 - b _02004020 @ case 26 - b _02004020 @ case 27 - b _02004020 @ case 28 - b _02004020 @ case 29 - b _02004020 @ case 30 - b _02004020 @ case 31 - b _02004020 @ case 32 - b _0200404C @ case 33 - b _0200404C @ case 34 - b _0200404C @ case 35 - b _0200404C @ case 36 -_02003F78: - mov r0, #1 - b _02004098 -_02003F80: - ldr r1, _020040A0 @ =0x020AF230 - ldr r1, [r1, #8] - cmp r1, r0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - b _02004098 -_02003F9C: - ldr r1, _020040A0 @ =0x020AF230 - ldr r2, [r1, #8] - cmp r2, #1 - movne r0, #0 - bne _02004098 - ldr r1, [r1, #4] - cmp r1, r0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - b _02004098 -_02003FC8: - ldr r1, _020040A0 @ =0x020AF230 - ldr r2, [r1, #4] - cmp r2, #4 - movne r0, #0 - bne _02004098 - ldr r1, [r1] - cmp r1, r0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - b _02004098 -_02003FF4: - ldr r1, _020040A0 @ =0x020AF230 - ldr r2, [r1, #8] - cmp r2, #2 - movne r0, #0 - bne _02004098 - ldr r1, [r1, #4] - cmp r1, r0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - b _02004098 -_02004020: - ldr r1, _020040A0 @ =0x020AF230 - ldr r2, [r1, #4] - cmp r2, #0xd - movne r0, #0 - bne _02004098 - ldr r1, [r1] - cmp r1, r0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - b _02004098 -_0200404C: - ldr r1, _020040A0 @ =0x020AF230 - ldr r2, [r1, #4] - cmp r2, #0xe - movne r0, #0 - bne _02004098 - ldr r1, [r1] - cmp r1, r0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - b _02004098 -_02004078: - ldr r1, _020040A4 @ =0x02092558 - add r0, sp, #0 - ldr r2, [r1, #0x14] - ldr r3, [r1, #0x10] - ldr r1, _020040A8 @ =0x0209258C - str r3, [sp] - str r2, [sp, #4] - bl FatalError -_02004098: - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_020040A0: .4byte 0x020AF230 -_020040A4: .4byte 0x02092558 -_020040A8: .4byte 0x0209258C - arm_func_end OverlayIsLoaded - - arm_func_start LoadOverlay -LoadOverlay: @ 0x020040AC - push {r3, r4, lr} - sub sp, sp, #0x3c - mov r4, r0 - cmp r4, #0x24 - addls pc, pc, r4, lsl #2 - b _020041A4 -_020040C4: @ jump table - b _02004158 @ case 0 - b _0200415C @ case 1 - b _0200415C @ case 2 - b _0200415C @ case 3 - b _02004168 @ case 4 - b _02004168 @ case 5 - b _02004174 @ case 6 - b _02004174 @ case 7 - b _02004174 @ case 8 - b _02004174 @ case 9 - b _02004174 @ case 10 - b _02004174 @ case 11 - b _02004174 @ case 12 - b _02004180 @ case 13 - b _02004180 @ case 14 - b _02004180 @ case 15 - b _0200418C @ case 16 - b _0200418C @ case 17 - b _0200418C @ case 18 - b _0200418C @ case 19 - b _0200418C @ case 20 - b _0200418C @ case 21 - b _0200418C @ case 22 - b _0200418C @ case 23 - b _0200418C @ case 24 - b _0200418C @ case 25 - b _0200418C @ case 26 - b _0200418C @ case 27 - b _0200418C @ case 28 - b _0200418C @ case 29 - b _0200418C @ case 30 - b _0200418C @ case 31 - b _0200418C @ case 32 - b _02004198 @ case 33 - b _02004198 @ case 34 - b _02004198 @ case 35 - b _02004198 @ case 36 -_02004158: - b _020047C4 -_0200415C: - ldr r0, _020047CC @ =0x020AF230 - str r4, [r0, #8] - b _020041C4 -_02004168: - ldr r0, _020047CC @ =0x020AF230 - str r4, [r0, #4] - b _020041C4 -_02004174: - ldr r0, _020047CC @ =0x020AF230 - str r4, [r0] - b _020041C4 -_02004180: - ldr r0, _020047CC @ =0x020AF230 - str r4, [r0, #4] - b _020041C4 -_0200418C: - ldr r0, _020047CC @ =0x020AF230 - str r4, [r0] - b _020041C4 -_02004198: - ldr r0, _020047CC @ =0x020AF230 - str r4, [r0] - b _020041C4 -_020041A4: - ldr r1, _020047D0 @ =0x02092558 - add r0, sp, #8 - ldr r2, [r1, #0x1c] - ldr r3, [r1, #0x18] - ldr r1, _020047D4 @ =0x020925A0 - str r3, [sp, #8] - str r2, [sp, #0xc] - bl FatalError -_020041C4: - bl DataTransferInit - bl FUN_0207a324 - bl FUN_0207a270 - cmp r4, #0x24 - addls pc, pc, r4, lsl #2 - b _02004780 -_020041DC: @ jump table - b _02004780 @ case 0 - b _02004270 @ case 1 - b _02004294 @ case 2 - b _020042B8 @ case 3 - b _020042DC @ case 4 - b _02004300 @ case 5 - b _02004324 @ case 6 - b _02004348 @ case 7 - b _0200436C @ case 8 - b _02004390 @ case 9 - b _020043B4 @ case 10 - b _020043D8 @ case 11 - b _020043FC @ case 12 - b _02004420 @ case 13 - b _02004444 @ case 14 - b _02004468 @ case 15 - b _0200448C @ case 16 - b _020044B0 @ case 17 - b _020044D4 @ case 18 - b _020044F8 @ case 19 - b _0200451C @ case 20 - b _02004540 @ case 21 - b _02004564 @ case 22 - b _02004588 @ case 23 - b _020045AC @ case 24 - b _020045D0 @ case 25 - b _020045F4 @ case 26 - b _02004618 @ case 27 - b _0200463C @ case 28 - b _02004660 @ case 29 - b _02004684 @ case 30 - b _020046A8 @ case 31 - b _020046CC @ case 32 - b _020046F0 @ case 33 - b _02004714 @ case 34 - b _02004738 @ case 35 - b _0200475C @ case 36 -_02004270: - ldr r2, _020047D8 @ =0x00000000 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_02004294: - ldr r2, _020047DC @ =0x0000000A - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_020042B8: - ldr r2, _020047E0 @ =0x00000023 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_020042DC: - ldr r2, _020047E4 @ =0x00000001 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_02004300: - ldr r2, _020047E8 @ =0x00000002 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_02004324: - ldr r2, _020047EC @ =0x00000003 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_02004348: - ldr r2, _020047F0 @ =0x00000006 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_0200436C: - ldr r2, _020047F4 @ =0x00000004 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_02004390: - ldr r2, _020047F8 @ =0x00000005 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_020043B4: - ldr r2, _020047FC @ =0x00000007 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_020043D8: - ldr r2, _02004800 @ =0x00000008 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_020043FC: - ldr r2, _02004804 @ =0x00000009 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_02004420: - ldr r2, _02004808 @ =0x0000000B - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_02004444: - ldr r2, _0200480C @ =0x0000001D - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_02004468: - ldr r2, _02004810 @ =0x00000022 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_0200448C: - ldr r2, _02004814 @ =0x0000000C - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_020044B0: - ldr r2, _02004818 @ =0x0000000D - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_020044D4: - ldr r2, _0200481C @ =0x0000000E - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_020044F8: - ldr r2, _02004820 @ =0x0000000F - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_0200451C: - ldr r2, _02004824 @ =0x00000010 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_02004540: - ldr r2, _02004828 @ =0x00000011 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_02004564: - ldr r2, _0200482C @ =0x00000012 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_02004588: - ldr r2, _02004830 @ =0x00000013 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_020045AC: - ldr r2, _02004834 @ =0x00000014 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_020045D0: - ldr r2, _02004838 @ =0x00000015 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_020045F4: - ldr r2, _0200483C @ =0x00000016 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_02004618: - ldr r2, _02004840 @ =0x00000017 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_0200463C: - ldr r2, _02004844 @ =0x00000018 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_02004660: - ldr r2, _02004848 @ =0x00000019 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_02004684: - ldr r2, _0200484C @ =0x0000001A - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_020046A8: - ldr r2, _02004850 @ =0x0000001B - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_020046CC: - ldr r2, _02004854 @ =0x0000001C - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_020046F0: - ldr r2, _02004858 @ =0x0000001E - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_02004714: - ldr r2, _0200485C @ =0x0000001F - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_02004738: - ldr r2, _02004860 @ =0x00000020 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_0200475C: - ldr r2, _02004864 @ =0x00000021 - add r0, sp, #0x10 - mov r1, #0 - bl FUN_0207fc9c - cmp r0, #0 - bne _020047A0 - mov r0, #1 - bl CardPullOutWithStatus - b _020047A0 -_02004780: - ldr r1, _020047D0 @ =0x02092558 - add r0, sp, #0 - ldr r2, [r1, #0xc] - ldr r3, [r1, #8] - ldr r1, _020047D4 @ =0x020925A0 - str r3, [sp] - str r2, [sp, #4] - bl FatalError -_020047A0: - add r0, sp, #0x10 - bl FUN_0207fd98 - cmp r0, #0 - bne _020047B8 - mov r0, #1 - bl CardPullOutWithStatus -_020047B8: - add r0, sp, #0x10 - bl FUN_0207febc - bl DataTransferStop -_020047C4: - add sp, sp, #0x3c - pop {r3, r4, pc} - .align 2, 0 -_020047CC: .4byte 0x020AF230 -_020047D0: .4byte 0x02092558 -_020047D4: .4byte 0x020925A0 -_020047D8: .4byte 0x00000000 -_020047DC: .4byte 0x0000000A -_020047E0: .4byte 0x00000023 -_020047E4: .4byte 0x00000001 -_020047E8: .4byte 0x00000002 -_020047EC: .4byte 0x00000003 -_020047F0: .4byte 0x00000006 -_020047F4: .4byte 0x00000004 -_020047F8: .4byte 0x00000005 -_020047FC: .4byte 0x00000007 -_02004800: .4byte 0x00000008 -_02004804: .4byte 0x00000009 -_02004808: .4byte 0x0000000B -_0200480C: .4byte 0x0000001D -_02004810: .4byte 0x00000022 -_02004814: .4byte 0x0000000C -_02004818: .4byte 0x0000000D -_0200481C: .4byte 0x0000000E -_02004820: .4byte 0x0000000F -_02004824: .4byte 0x00000010 -_02004828: .4byte 0x00000011 -_0200482C: .4byte 0x00000012 -_02004830: .4byte 0x00000013 -_02004834: .4byte 0x00000014 -_02004838: .4byte 0x00000015 -_0200483C: .4byte 0x00000016 -_02004840: .4byte 0x00000017 -_02004844: .4byte 0x00000018 -_02004848: .4byte 0x00000019 -_0200484C: .4byte 0x0000001A -_02004850: .4byte 0x0000001B -_02004854: .4byte 0x0000001C -_02004858: .4byte 0x0000001E -_0200485C: .4byte 0x0000001F -_02004860: .4byte 0x00000020 -_02004864: .4byte 0x00000021 - arm_func_end LoadOverlay - - arm_func_start UnloadOverlay -UnloadOverlay: @ 0x02004868 - push {r4, lr} - sub sp, sp, #0x10 - mov r4, r0 - cmp r4, #0x24 - addls pc, pc, r4, lsl #2 - b _02004968 -_02004880: @ jump table - b _02004914 @ case 0 - b _02004918 @ case 1 - b _02004918 @ case 2 - b _02004918 @ case 3 - b _02004928 @ case 4 - b _02004928 @ case 5 - b _02004938 @ case 6 - b _02004938 @ case 7 - b _02004938 @ case 8 - b _02004938 @ case 9 - b _02004938 @ case 10 - b _02004938 @ case 11 - b _02004938 @ case 12 - b _02004928 @ case 13 - b _02004928 @ case 14 - b _02004928 @ case 15 - b _02004948 @ case 16 - b _02004948 @ case 17 - b _02004948 @ case 18 - b _02004948 @ case 19 - b _02004948 @ case 20 - b _02004948 @ case 21 - b _02004948 @ case 22 - b _02004948 @ case 23 - b _02004948 @ case 24 - b _02004948 @ case 25 - b _02004948 @ case 26 - b _02004948 @ case 27 - b _02004948 @ case 28 - b _02004948 @ case 29 - b _02004948 @ case 30 - b _02004948 @ case 31 - b _02004948 @ case 32 - b _02004958 @ case 33 - b _02004958 @ case 34 - b _02004958 @ case 35 - b _02004958 @ case 36 -_02004914: - b _02004ED0 -_02004918: - ldr r0, _02004ED8 @ =0x020AF230 - mov r1, #0 str r1, [r0, #8] - b _02004988 -_02004928: - ldr r0, _02004ED8 @ =0x020AF230 - mov r1, #0 - str r1, [r0, #4] - b _02004988 -_02004938: - ldr r0, _02004ED8 @ =0x020AF230 - mov r1, #0 - str r1, [r0] - b _02004988 -_02004948: - ldr r0, _02004ED8 @ =0x020AF230 - mov r1, #0 - str r1, [r0] - b _02004988 -_02004958: - ldr r0, _02004ED8 @ =0x020AF230 - mov r1, #0 - str r1, [r0] - b _02004988 -_02004968: - ldr r1, _02004EDC @ =0x02092558 - add r0, sp, #8 - ldr r2, [r1, #0x24] - ldr r3, [r1, #0x20] - ldr r1, _02004EE0 @ =0x020925B4 - str r3, [sp, #8] - str r2, [sp, #0xc] - bl FatalError -_02004988: - bl DataTransferInit - cmp r4, #0x24 addls pc, pc, r4, lsl #2 - b _02004EAC -_02004998: @ jump table - b _02004EAC @ case 0 - b _02004A2C @ case 1 - b _02004A4C @ case 2 - b _02004A6C @ case 3 - b _02004A8C @ case 4 - b _02004AAC @ case 5 - b _02004ACC @ case 6 - b _02004AEC @ case 7 - b _02004B0C @ case 8 - b _02004B2C @ case 9 - b _02004B4C @ case 10 - b _02004B6C @ case 11 - b _02004B8C @ case 12 - b _02004BAC @ case 13 - b _02004BCC @ case 14 - b _02004BEC @ case 15 - b _02004C0C @ case 16 - b _02004C2C @ case 17 - b _02004C4C @ case 18 - b _02004C6C @ case 19 - b _02004C8C @ case 20 - b _02004CAC @ case 21 - b _02004CCC @ case 22 - b _02004CEC @ case 23 - b _02004D0C @ case 24 - b _02004D2C @ case 25 - b _02004D4C @ case 26 - b _02004D6C @ case 27 - b _02004D8C @ case 28 - b _02004DAC @ case 29 - b _02004DCC @ case 30 - b _02004DEC @ case 31 - b _02004E0C @ case 32 - b _02004E2C @ case 33 - b _02004E4C @ case 34 - b _02004E6C @ case 35 - b _02004E8C @ case 36 -_02004A2C: - ldr r1, _02004EE4 @ =0x00000000 + b _022BCB94 +_022BCB64: @ jump table + b _022BCB74 @ case 0 + b _022BCB7C @ case 1 + b _022BCB84 @ case 2 + b _022BCB8C @ case 3 +_022BCB74: mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004A4C: - ldr r1, _02004EE8 @ =0x0000000A - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004A6C: - ldr r1, _02004EEC @ =0x00000023 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004A8C: - ldr r1, _02004EF0 @ =0x00000001 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004AAC: - ldr r1, _02004EF4 @ =0x00000002 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004ACC: - ldr r1, _02004EF8 @ =0x00000003 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004AEC: - ldr r1, _02004EFC @ =0x00000006 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004B0C: - ldr r1, _02004F00 @ =0x00000004 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004B2C: - ldr r1, _02004F04 @ =0x00000005 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004B4C: - ldr r1, _02004F08 @ =0x00000007 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004B6C: - ldr r1, _02004F0C @ =0x00000008 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004B8C: - ldr r1, _02004F10 @ =0x00000009 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004BAC: - ldr r1, _02004F14 @ =0x0000000B - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004BCC: - ldr r1, _02004F18 @ =0x0000001D - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004BEC: - ldr r1, _02004F1C @ =0x00000022 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004C0C: - ldr r1, _02004F20 @ =0x0000000C - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004C2C: - ldr r1, _02004F24 @ =0x0000000D - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004C4C: - ldr r1, _02004F28 @ =0x0000000E - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004C6C: - ldr r1, _02004F2C @ =0x0000000F - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004C8C: - ldr r1, _02004F30 @ =0x00000010 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004CAC: - ldr r1, _02004F34 @ =0x00000011 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004CCC: - ldr r1, _02004F38 @ =0x00000012 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004CEC: - ldr r1, _02004F3C @ =0x00000013 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004D0C: - ldr r1, _02004F40 @ =0x00000014 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004D2C: - ldr r1, _02004F44 @ =0x00000015 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004D4C: - ldr r1, _02004F48 @ =0x00000016 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004D6C: - ldr r1, _02004F4C @ =0x00000017 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004D8C: - ldr r1, _02004F50 @ =0x00000018 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004DAC: - ldr r1, _02004F54 @ =0x00000019 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004DCC: - ldr r1, _02004F58 @ =0x0000001A - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004DEC: - ldr r1, _02004F5C @ =0x0000001B - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004E0C: - ldr r1, _02004F60 @ =0x0000001C - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004E2C: - ldr r1, _02004F64 @ =0x0000001E - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004E4C: - ldr r1, _02004F68 @ =0x0000001F - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004E6C: - ldr r1, _02004F6C @ =0x00000020 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004E8C: - ldr r1, _02004F70 @ =0x00000021 - mov r0, #0 - bl FUN_020800b0 - cmp r0, #0 - bne _02004ECC - mov r0, #1 - bl CardPullOutWithStatus - b _02004ECC -_02004EAC: - ldr r1, _02004EDC @ =0x02092558 - add r0, sp, #0 - ldr r2, [r1, #4] - ldr r3, [r1] - ldr r1, _02004EE0 @ =0x020925B4 - str r3, [sp] - str r2, [sp, #4] - bl FatalError -_02004ECC: - bl DataTransferStop -_02004ED0: - add sp, sp, #0x10 - pop {r4, pc} - .align 2, 0 -_02004ED8: .4byte 0x020AF230 -_02004EDC: .4byte 0x02092558 -_02004EE0: .4byte 0x020925B4 -_02004EE4: .4byte 0x00000000 -_02004EE8: .4byte 0x0000000A -_02004EEC: .4byte 0x00000023 -_02004EF0: .4byte 0x00000001 -_02004EF4: .4byte 0x00000002 -_02004EF8: .4byte 0x00000003 -_02004EFC: .4byte 0x00000006 -_02004F00: .4byte 0x00000004 -_02004F04: .4byte 0x00000005 -_02004F08: .4byte 0x00000007 -_02004F0C: .4byte 0x00000008 -_02004F10: .4byte 0x00000009 -_02004F14: .4byte 0x0000000B -_02004F18: .4byte 0x0000001D -_02004F1C: .4byte 0x00000022 -_02004F20: .4byte 0x0000000C -_02004F24: .4byte 0x0000000D -_02004F28: .4byte 0x0000000E -_02004F2C: .4byte 0x0000000F -_02004F30: .4byte 0x00000010 -_02004F34: .4byte 0x00000011 -_02004F38: .4byte 0x00000012 -_02004F3C: .4byte 0x00000013 -_02004F40: .4byte 0x00000014 -_02004F44: .4byte 0x00000015 -_02004F48: .4byte 0x00000016 -_02004F4C: .4byte 0x00000017 -_02004F50: .4byte 0x00000018 -_02004F54: .4byte 0x00000019 -_02004F58: .4byte 0x0000001A -_02004F5C: .4byte 0x0000001B -_02004F60: .4byte 0x0000001C -_02004F64: .4byte 0x0000001E -_02004F68: .4byte 0x0000001F -_02004F6C: .4byte 0x00000020 -_02004F70: .4byte 0x00000021 - arm_func_end UnloadOverlay - - arm_func_start thunk_FUN_0207ba08 -thunk_FUN_0207ba08: @ 0x02004F74 - ldr ip, _02004F7C @ =FUN_0207ba08 - bx ip - .align 2, 0 -_02004F7C: .4byte FUN_0207ba08 - arm_func_end thunk_FUN_0207ba08 - - arm_func_start FUN_02004f80 -FUN_02004f80: @ 0x02004F80 - push {r4, r5, r6, lr} - mov r6, r0 - mov r4, r1 - mov r0, #0x400 - mov r1, #0xf - bl MemAlloc - ldr r1, _02004FC8 @ =0xEDB88320 - mov r5, r0 - bl FUN_020850b4 - mov r0, r5 - mov r1, r6 - mov r2, r4 - bl FUN_02085180 - mov r4, r0 - mov r0, r5 - bl MemFree - mov r0, r4 pop {r4, r5, r6, pc} - .align 2, 0 -_02004FC8: .4byte 0xEDB88320 - arm_func_end FUN_02004f80 - - arm_func_start FUN_02004fcc -FUN_02004fcc: @ 0x02004FCC - ldrb r2, [r1, #1] - ldrb r3, [r1, #2] - ldrb ip, [r1] - and r1, r2, #0xf8 - and r2, r3, #0xf8 - lsl r1, r1, #2 - and r3, ip, #0xf8 - orr r1, r1, r2, lsl #7 - orr r1, r1, r3, asr #3 - strh r1, [r0] - bx lr - arm_func_end FUN_02004fcc - - arm_func_start FUN_02004FF8 -FUN_02004FF8: @ 0x02004FF8 - ldrh r2, [r1] - tst r2, #1 - movne r3, #7 - moveq r3, #0 - lsl r1, r2, #0x1b - orr r1, r3, r1, lsr #24 - tst r2, #0x20 - movne r3, #7 - strb r1, [r0] - moveq r3, #0 - and r1, r2, #0x3e0 - orr r1, r3, r1, asr #2 - tst r2, #0x400 - movne r3, #7 - strb r1, [r0, #1] - moveq r3, #0 - and r1, r2, #0x7c00 - orr r1, r3, r1, asr #7 - strb r1, [r0, #2] - mov r1, #0 - strb r1, [r0, #3] - bx lr - arm_func_end FUN_02004FF8 - - arm_func_start EuclideanNorm -EuclideanNorm: @ 0x02005050 - push {r4, r5, r6, lr} - ldm r0, {r5, r6} - mov r0, r5 - bl IntToFloat - mov r4, r0 - mov r0, r5 - bl IntToFloat - mov r1, r0 - mov r0, r4 - bl MultiplyFloat - mov r5, r0 - mov r0, r6 - bl IntToFloat - mov r4, r0 - mov r0, r6 - bl IntToFloat - mov r1, r0 - mov r0, r4 - bl MultiplyFloat - mov r1, r0 - mov r0, r5 - bl AddFloat - bl Sqrtf +_022BCB7C: + mov r0, #1 pop {r4, r5, r6, pc} - arm_func_end EuclideanNorm - - arm_func_start EuclideanNorm -EuclideanNorm: @ 0x020050B0 - push {r4, r5, r6, lr} - ldm r0, {r5, r6} - mov r0, r5 - bl IntToFloat - mov r4, r0 - mov r0, r5 - bl IntToFloat - mov r1, r0 - mov r0, r4 - bl MultiplyFloat - mov r5, r0 - mov r0, r6 - bl IntToFloat - mov r4, r0 - mov r0, r6 - bl IntToFloat - mov r1, r0 - mov r0, r4 - bl MultiplyFloat - mov r1, r0 - mov r0, r5 - bl AddFloat - bl Sqrtf - pop {r4, r5, r6, pc} - arm_func_end EuclideanNorm - - arm_func_start ClampComponentAbs -ClampComponentAbs: @ 0x02005110 - ldr r3, [r0] - cmp r3, r1 - strgt r1, [r0] - bgt _0200512C - rsb r2, r1, #0 - cmp r3, r2 - strlt r2, [r0] -_0200512C: - ldr r2, [r0, #4] - cmp r2, r1 - strgt r1, [r0, #4] - bxgt lr - rsb r1, r1, #0 - cmp r2, r1 - strlt r1, [r0, #4] - bx lr - arm_func_end ClampComponentAbs - - arm_func_start FUN_0200514c -FUN_0200514c: @ 0x0200514C - push {r4, r5, r6, r7, r8, lr} - mov r6, r2 - ldr r4, [sp, #0x18] - ldr r2, [r6] - mov r7, r1 - mul r1, r2, r4 - mov r5, r3 - ldr r2, [r7] - mov r8, r0 - mla r0, r2, r5, r1 - add r1, r5, r4 - bl DivideInt - str r0, [r8] - ldr r0, [r6, #4] - ldr r2, [r7, #4] - mul r1, r0, r4 - mla r0, r2, r5, r1 - add r1, r5, r4 - bl DivideInt - str r0, [r8, #4] - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0200514c - - arm_func_start FUN_020051a0 -FUN_020051a0: @ 0x020051A0 - push {r4, lr} - mov r4, r0 - cmp r1, #0x13 - addls pc, pc, r1, lsl #2 - b _0200533C -_020051B4: @ jump table - b _0200533C @ case 0 - b _02005204 @ case 1 - b _0200521C @ case 2 - b _02005234 @ case 3 - b _0200524C @ case 4 - b _02005264 @ case 5 - b _0200527C @ case 6 - b _020052DC @ case 7 - b _02005304 @ case 8 - b _0200531C @ case 9 - b _0200533C @ case 10 - b _0200533C @ case 11 - b _02005330 @ case 12 - b _02005330 @ case 13 - b _02005330 @ case 14 - b _02005330 @ case 15 - b _02005330 @ case 16 - b _02005330 @ case 17 - b _02005330 @ case 18 - b _02005330 @ case 19 -_02005204: - cmp r4, #0 - addge r0, r4, #7 - andge r0, r0, #7 - lslge r0, r0, #0x18 - asrge r4, r0, #0x18 - b _0200533C -_0200521C: - cmp r4, #0 - addge r0, r4, #1 - andge r0, r0, #7 - lslge r0, r0, #0x18 - asrge r4, r0, #0x18 - b _0200533C -_02005234: - cmp r4, #0 - addge r0, r4, #6 - andge r0, r0, #7 - lslge r0, r0, #0x18 - asrge r4, r0, #0x18 - b _0200533C -_0200524C: - cmp r4, #0 - addge r0, r4, #2 - andge r0, r0, #7 - lslge r0, r0, #0x18 - asrge r4, r0, #0x18 - b _0200533C -_02005264: - cmp r4, #0 - addge r0, r4, #4 - andge r0, r0, #7 - lslge r0, r0, #0x18 - asrge r4, r0, #0x18 - b _0200533C -_0200527C: - tst r4, #1 - beq _020052B0 +_022BCB84: mov r0, #2 - bl RandInt - lsl r0, r0, #1 - add r0, r0, #7 - add r0, r4, r0 - lsr r1, r0, #0x1f - rsb r0, r1, r0, lsl #29 - add r0, r1, r0, ror #29 - lsl r0, r0, #0x18 - asr r4, r0, #0x18 - b _0200533C -_020052B0: + pop {r4, r5, r6, pc} +_022BCB8C: mov r0, #3 - bl RandInt - lsl r0, r0, #1 - add r0, r0, #6 - add r0, r4, r0 - lsr r1, r0, #0x1f - rsb r0, r1, r0, lsl #29 - add r0, r1, r0, ror #29 - lsl r0, r0, #0x18 - asr r4, r0, #0x18 - b _0200533C -_020052DC: - mov r0, #3 - bl RandInt - add r0, r0, #7 - add r0, r4, r0 - lsr r1, r0, #0x1f - rsb r0, r1, r0, lsl #29 - add r0, r1, r0, ror #29 - lsl r0, r0, #0x18 - asr r4, r0, #0x18 - b _0200533C -_02005304: - mov r0, #8 - bl RandInt - bic r0, r0, #1 - lsl r0, r0, #0x18 - asr r4, r0, #0x18 - b _0200533C -_0200531C: - mov r0, #8 - bl RandInt - lsl r0, r0, #0x18 - asr r4, r0, #0x18 - b _0200533C -_02005330: - sub r0, r1, #0xc - lsl r0, r0, #0x18 - asr r4, r0, #0x18 -_0200533C: - mov r0, r4 - pop {r4, pc} - arm_func_end FUN_020051a0 - - arm_func_start FUN_02005344 -FUN_02005344: @ 0x02005344 - push {r4, lr} - mov r4, r1 - cmp r0, r4 - popeq {r4, pc} - cmp r2, #0x13 - addls pc, pc, r2, lsl #2 - pop {r4, pc} -_02005360: @ jump table - pop {r4, pc} @ case 0 - b _020053B0 @ case 1 - b _020053C8 @ case 2 - b _020053E0 @ case 3 - b _020053F8 @ case 4 - pop {r4, pc} @ case 5 - pop {r4, pc} @ case 6 - pop {r4, pc} @ case 7 - pop {r4, pc} @ case 8 - pop {r4, pc} @ case 9 - b _02005414 @ case 10 - b _02005410 @ case 11 - b _02005420 @ case 12 - b _02005420 @ case 13 - b _02005420 @ case 14 - b _02005420 @ case 15 - b _02005420 @ case 16 - b _02005420 @ case 17 - b _02005420 @ case 18 - b _02005420 @ case 19 -_020053B0: - cmp r0, #0 - addge r0, r0, #7 - andge r0, r0, #7 - lslge r0, r0, #0x18 - asrge r0, r0, #0x18 - pop {r4, pc} -_020053C8: - cmp r0, #0 - addge r0, r0, #1 - andge r0, r0, #7 - lslge r0, r0, #0x18 - asrge r0, r0, #0x18 - pop {r4, pc} -_020053E0: - cmp r0, #0 - addge r0, r0, #6 - andge r0, r0, #7 - lslge r0, r0, #0x18 - asrge r0, r0, #0x18 - pop {r4, pc} -_020053F8: - cmp r0, #0 - addge r0, r0, #2 - andge r0, r0, #7 - lslge r0, r0, #0x18 - asrge r0, r0, #0x18 - pop {r4, pc} -_02005410: - bl FUN_02005430 -_02005414: - mov r1, r4 - bl FUN_02005430 - pop {r4, pc} -_02005420: - sub r0, r2, #0xc - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - pop {r4, pc} - arm_func_end FUN_02005344 - - arm_func_start FUN_02005430 -FUN_02005430: @ 0x02005430 - mvn r2, #0 - cmp r1, r2 - bxeq lr - add r1, r1, #8 - sub r1, r1, r0 - lsr r2, r1, #0x1f - rsb r1, r2, r1, lsl #29 - adds r1, r2, r1, ror #29 - bxeq lr - cmp r1, #4 - bge _02005478 - add r0, r0, #1 - lsr r1, r0, #0x1f - rsb r0, r1, r0, lsl #29 - add r0, r1, r0, ror #29 - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bx lr -_02005478: - add r0, r0, #7 - lsr r1, r0, #0x1f - rsb r0, r1, r0, lsl #29 - add r0, r1, r0, ror #29 - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bx lr - arm_func_end FUN_02005430 - - arm_func_start FUN_02005494 -FUN_02005494: @ 0x02005494 - ldr ip, _020054BC @ =0x020925F8 - add r3, r0, #1 - ldr r0, [ip, r3, lsl #3] - add ip, ip, r3, lsl #3 - mul r3, r0, r2 - str r3, [r1] - ldr r0, [ip, #4] - mul r2, r0, r2 - str r2, [r1, #4] - bx lr - .align 2, 0 -_020054BC: .4byte 0x020925F8 - arm_func_end FUN_02005494 - - arm_func_start FUN_020054c0 -FUN_020054c0: @ 0x020054C0 - push {r3, r4, r5, lr} - sub sp, sp, #8 - ldr r1, _020055C4 @ =0x020925C8 - mov r5, r0 - ldr r4, [r5] - ldr r2, [r1, #0x20] - ldr r1, [r1, #0x24] - mov r0, r4 - str r2, [sp] - str r1, [sp, #4] - bl Abs - ldr r5, [r5, #4] - str r0, [sp] - mov r0, r5 - bl Abs - str r0, [sp, #4] - cmp r4, #0 - bge _02005550 - cmp r5, #0 - bge _02005530 - ldr r1, [sp] - cmp r0, r1, lsl #1 - movgt r0, #4 - bgt _020055BC - cmp r1, r0, lsl #1 - movgt r0, #6 - movle r0, #5 - b _020055BC -_02005530: - ldr r1, [sp] - cmp r0, r1, lsl #1 - movgt r0, #0 - bgt _020055BC - cmp r1, r0, lsl #1 - movgt r0, #6 - movle r0, #7 - b _020055BC -_02005550: - ble _0200559C - cmp r5, #0 - bge _0200557C - ldr r1, [sp] - cmp r0, r1, lsl #1 - movgt r0, #4 - bgt _020055BC - cmp r1, r0, lsl #1 - movgt r0, #2 - movle r0, #3 - b _020055BC -_0200557C: - ldr r1, [sp] - cmp r0, r1, lsl #1 - movgt r0, #0 - bgt _020055BC - cmp r1, r0, lsl #1 - movgt r0, #2 - movle r0, #1 - b _020055BC -_0200559C: - cmp r5, #0 - movlt r0, #4 - blt _020055BC - movle r0, #1 - movgt r0, #0 - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - rsb r0, r0, #0 -_020055BC: - add sp, sp, #8 - pop {r3, r4, r5, pc} - .align 2, 0 -_020055C4: .4byte 0x020925C8 - arm_func_end FUN_020054c0 - - arm_func_start FUN_020055c8 -FUN_020055c8: @ 0x020055C8 - push {r3, r4, r5, lr} - sub sp, sp, #8 - ldr r1, _020056CC @ =0x020925C8 - mov r5, r0 - ldr r4, [r5] - ldr r2, [r1, #0x18] - ldr r1, [r1, #0x1c] - mov r0, r4 - str r2, [sp] - str r1, [sp, #4] - bl Abs - ldr r5, [r5, #4] - str r0, [sp] - mov r0, r5 - bl Abs - str r0, [sp, #4] - cmp r4, #0 - bge _02005658 - cmp r5, #0 - bge _02005638 - ldr r1, [sp] - cmp r0, r1, lsl #1 - movgt r0, #4 - bgt _020056C4 - cmp r1, r0, lsl #1 - movgt r0, #6 - movle r0, #5 - b _020056C4 -_02005638: - ldr r1, [sp] - cmp r0, r1, lsl #1 - movgt r0, #0 - bgt _020056C4 - cmp r1, r0, lsl #1 - movgt r0, #6 - movle r0, #7 - b _020056C4 -_02005658: - ble _020056A4 - cmp r5, #0 - bge _02005684 - ldr r1, [sp] - cmp r0, r1, lsl #1 - movgt r0, #4 - bgt _020056C4 - cmp r1, r0, lsl #1 - movgt r0, #2 - movle r0, #3 - b _020056C4 -_02005684: - ldr r1, [sp] - cmp r0, r1, lsl #1 - movgt r0, #0 - bgt _020056C4 - cmp r1, r0, lsl #1 - movgt r0, #2 - movle r0, #1 - b _020056C4 -_020056A4: - cmp r5, #0 - movlt r0, #4 - blt _020056C4 - movle r0, #1 - movgt r0, #0 - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - rsb r0, r0, #0 -_020056C4: - add sp, sp, #8 - pop {r3, r4, r5, pc} - .align 2, 0 -_020056CC: .4byte 0x020925C8 - arm_func_end FUN_020055c8 - - arm_func_start FUN_020056d0 -FUN_020056d0: @ 0x020056D0 - push {r3, r4, r5, lr} - sub sp, sp, #8 - ldr r1, _020057A4 @ =0x020925C8 - mov r5, r0 - ldr r4, [r5] - ldr r2, [r1, #0x28] - ldr r1, [r1, #0x2c] - mov r0, r4 - str r2, [sp] - str r1, [sp, #4] - bl Abs - ldr r5, [r5, #4] - str r0, [sp] - mov r0, r5 - bl Abs - str r0, [sp, #4] - cmp r4, #0 - bge _02005748 - cmp r5, #0 - bge _02005734 - ldr r1, [sp] - cmp r0, r1 - movgt r0, #4 - movle r0, #6 - b _0200579C -_02005734: - ldr r1, [sp] - cmp r0, r1 - movgt r0, #0 - movle r0, #6 - b _0200579C -_02005748: - ble _0200577C - cmp r5, #0 - bge _02005768 - ldr r1, [sp] - cmp r0, r1 - movgt r0, #4 - movle r0, #2 - b _0200579C -_02005768: - ldr r1, [sp] - cmp r0, r1 - movgt r0, #0 - movle r0, #2 - b _0200579C -_0200577C: - cmp r5, #0 - movlt r0, #4 - blt _0200579C - movle r0, #1 - movgt r0, #0 - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - rsb r0, r0, #0 -_0200579C: - add sp, sp, #8 - pop {r3, r4, r5, pc} - .align 2, 0 -_020057A4: .4byte 0x020925C8 - arm_func_end FUN_020056d0 - - arm_func_start FUN_020057a8 -FUN_020057a8: @ 0x020057A8 - push {r3, lr} - sub sp, sp, #8 - ldr ip, _020058A4 @ =0x020925C8 - ldr lr, [ip, #4] - ldr ip, [ip] - str lr, [sp, #4] - str ip, [sp] - ldr lr, [r2] - ldr ip, [r0] - subs ip, lr, ip - str ip, [sp] - ldr r2, [r2, #4] - ldr r0, [r0, #4] - sub r0, r2, r0 - str r0, [sp, #4] - ldr r2, [r1] - ldr r0, [r3] - bmi _02005814 - add r0, r2, r0 - add r0, r0, r0, lsr #31 - asr r0, r0, #1 - sub r0, r0, #1 - subs r0, ip, r0 - str r0, [sp] - movmi r0, #0 - strmi r0, [sp] - b _02005838 -_02005814: - add r0, r2, r0 - add r0, r0, r0, lsr #31 - asr r0, r0, #1 - sub r0, r0, #1 - add r0, ip, r0 - str r0, [sp] - cmp r0, #0 - movgt r0, #0 - strgt r0, [sp] -_02005838: - ldr r0, [sp, #4] - ldr r2, [r1, #4] - cmp r0, #0 - ldr r1, [r3, #4] - blt _02005870 - add r1, r2, r1 - add r1, r1, r1, lsr #31 - asr r1, r1, #1 - sub r1, r1, #1 - subs r0, r0, r1 - str r0, [sp, #4] - movmi r0, #0 - strmi r0, [sp, #4] - b _02005894 -_02005870: - add r1, r2, r1 - add r1, r1, r1, lsr #31 - asr r1, r1, #1 - sub r1, r1, #1 - add r0, r0, r1 - str r0, [sp, #4] - cmp r0, #0 - movgt r0, #0 - strgt r0, [sp, #4] -_02005894: - add r0, sp, #0 - bl FUN_020056d0 - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_020058A4: .4byte 0x020925C8 - arm_func_end FUN_020057a8 - - arm_func_start FUN_020058a8 -FUN_020058a8: @ 0x020058A8 - push {r3, lr} - sub sp, sp, #8 - ldr ip, _020059A4 @ =0x020925C8 - ldr lr, [ip, #0xc] - ldr ip, [ip, #8] - str lr, [sp, #4] - str ip, [sp] - ldr lr, [r2] - ldr ip, [r0] - subs ip, lr, ip - str ip, [sp] - ldr r2, [r2, #4] - ldr r0, [r0, #4] - sub r0, r2, r0 - str r0, [sp, #4] - ldr r2, [r1] - ldr r0, [r3] - bmi _02005914 - add r0, r2, r0 - add r0, r0, r0, lsr #31 - asr r0, r0, #1 - sub r0, r0, #1 - subs r0, ip, r0 - str r0, [sp] - movmi r0, #0 - strmi r0, [sp] - b _02005938 -_02005914: - add r0, r2, r0 - add r0, r0, r0, lsr #31 - asr r0, r0, #1 - sub r0, r0, #1 - add r0, ip, r0 - str r0, [sp] - cmp r0, #0 - movgt r0, #0 - strgt r0, [sp] -_02005938: - ldr r0, [sp, #4] - ldr r2, [r1, #4] - cmp r0, #0 - ldr r1, [r3, #4] - blt _02005970 - add r1, r2, r1 - add r1, r1, r1, lsr #31 - asr r1, r1, #1 - sub r1, r1, #1 - subs r0, r0, r1 - str r0, [sp, #4] - movmi r0, #0 - strmi r0, [sp, #4] - b _02005994 -_02005970: - add r1, r2, r1 - add r1, r1, r1, lsr #31 - asr r1, r1, #1 - sub r1, r1, #1 - add r0, r0, r1 - str r0, [sp, #4] - cmp r0, #0 - movgt r0, #0 - strgt r0, [sp, #4] -_02005994: - add r0, sp, #0 - bl FUN_020055c8 - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_020059A4: .4byte 0x020925C8 - arm_func_end FUN_020058a8 - - arm_func_start FUN_020059a8 -FUN_020059a8: @ 0x020059A8 - push {r3, r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #0xac - ldr r0, _02005A8C @ =0x020AF240 - bl FUN_02002c40 - ldr r0, _02005A8C @ =0x020AF240 - mov r1, #7 - bl FUN_02002cac - ldr r0, _02005A8C @ =0x020AF240 - bl FUN_02002e98 - ldr r8, _02005A90 @ =0x022A3248 - ldr r7, _02005A94 @ =0x02092670 - ldr r6, _02005A98 @ =0x020926C0 - add r5, sp, #0 - mov sb, #0 - mov r4, #0xa -_020059E4: - ldm r6!, {r0, r1, r2, r3} - stm r5!, {r0, r1, r2, r3} - subs r4, r4, #1 - bne _020059E4 - ldm r6, {r0, r1, r2} - stm r5, {r0, r1, r2} - mov r5, #0 - mov r6, #1 - mov r4, r5 -_02005A08: - ldrb r0, [r7, #8] - strh sb, [r8] - cmp r0, #0 - beq _02005A2C - mov r1, r6 - mov r2, r5 - add r0, r8, #4 - bl FUN_02002a9c - b _02005A50 -_02005A2C: - add sl, sp, #0 - add lr, r8, #4 - mov ip, #0xa -_02005A38: - ldm sl!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _02005A38 - ldm sl, {r0, r1, r2} - stm lr, {r0, r1, r2} -_02005A50: - strh r4, [r8, #0xb0] - str r4, [r8, #0xb8] - ldr r1, [r7, #0x10] - mov r0, sb - str r4, [r8, #0xb4] - bl FUN_02005a9c - add r0, sb, #1 - lsl r0, r0, #0x10 - asr sb, r0, #0x10 - cmp sb, #4 - add r8, r8, #0xbc - add r7, r7, #0x14 - blt _02005A08 - add sp, sp, #0xac - pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_02005A8C: .4byte 0x020AF240 -_02005A90: .4byte 0x022A3248 -_02005A94: .4byte 0x02092670 -_02005A98: .4byte 0x020926C0 - arm_func_end FUN_020059a8 - - arm_func_start FUN_02005a9c -FUN_02005a9c: @ 0x02005A9C - push {r4, r5, r6, r7, r8, lr} - ldr r2, _02005B0C @ =0x02092670 - mov r4, r0 - mov r0, #0x14 - mla r0, r4, r0, r2 - ldrh r0, [r0, #4] - ldr r3, _02005B10 @ =0x022A3248 - mov r2, #0xbc - mla r6, r4, r2, r3 - mov r8, r1 - cmp r0, #0 - mov r7, #0 - beq _02005B04 - bl FUN_020031c0 - mov r5, r0 - bl FUN_0200302c - mov r0, r4 - bl FUN_02005d30 - ldr r0, _02005B14 @ =0x020AF240 - bl FUN_02002cb4 - ldr r7, [r6, #0xb8] - ldr r0, _02005B14 @ =0x020AF240 - str r8, [r6, #0xb8] - bl FUN_02002e98 - mov r0, r5 - bl FUN_020030fc -_02005B04: - mov r0, r7 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02005B0C: .4byte 0x02092670 -_02005B10: .4byte 0x022A3248 -_02005B14: .4byte 0x020AF240 - arm_func_end FUN_02005a9c - - arm_func_start FUN_02005b18 -FUN_02005b18: @ 0x02005B18 - push {r4, r5, r6, lr} - sub sp, sp, #8 - mov r6, r0 - ldrsh ip, [r6] - ldrh r5, [r6, #2] - ldr r3, _02005D04 @ =0x022A3248 - mov r0, #0xbc - ldr r2, _02005D08 @ =0x02092670 - mov r1, #0x14 - mla r4, ip, r0, r3 - tst r5, #0x400 - orrne r0, r5, #0x200 - lslne r0, r0, #0x10 - mla r1, ip, r1, r2 - lsrne r5, r0, #0x10 - bne _02005B6C - tst r5, #0x800 - ldreq r0, [r1, #0xc] - orreq r0, r5, r0 - lsleq r0, r0, #0x10 - lsreq r5, r0, #0x10 -_02005B6C: - ldrh r0, [r1, #6] - bl FUN_020031c0 - ldrsh r0, [r6] - bl FUN_02005d30 - ldr r0, _02005D0C @ =0x020AF240 - bl FUN_02002cb4 - ldr r0, _02005D10 @ =0x020AF23C - ldr r1, [r0] - add r2, r1, #1 - str r2, [r4, #0xb4] - strh r5, [r4, #0xb0] - ldrh r1, [r4, #0xb0] - str r2, [r0] - and r0, r1, #0xff - cmp r0, #7 - addls pc, pc, r0, lsl #2 - b _02005CE0 -_02005BB0: @ jump table - b _02005BD0 @ case 0 - b _02005BF4 @ case 1 - b _02005C18 @ case 2 - b _02005C3C @ case 3 - b _02005C60 @ case 4 - b _02005C8C @ case 5 - b _02005CB8 @ case 6 - b _02005CE0 @ case 7 -_02005BD0: - ldr r0, [r4, #0xb8] - ldr r0, [r0] - stm sp, {r0, r4} - ldrsh r0, [r6] - ldr r1, [r6, #8] - ldr r2, [r6, #0xc] - ldr r3, [r6, #4] - bl FUN_0207bfa4 - b _02005CE0 -_02005BF4: - ldr r0, [r4, #0xb8] - ldr r0, [r0] - stm sp, {r0, r4} - ldrsh r0, [r6] - ldr r1, [r6, #8] - ldr r2, [r6, #0xc] - ldr r3, [r6, #4] - bl FUN_0207be6c - b _02005CE0 -_02005C18: - ldr r0, [r4, #0xb8] - ldr r0, [r0] - stm sp, {r0, r4} - ldrsh r0, [r6] - ldr r1, [r6, #8] - ldr r2, [r6, #0xc] - ldr r3, [r6, #4] - bl FUN_0207c03c - b _02005CE0 -_02005C3C: - ldr r0, [r4, #0xb8] - ldr r0, [r0] - stm sp, {r0, r4} - ldrsh r0, [r6] - ldr r1, [r6, #8] - ldr r2, [r6, #0xc] - ldr r3, [r6, #4] - bl FUN_0207bf04 - b _02005CE0 -_02005C60: - bl FUN_020783d0 - ldr r0, [r4, #0xb8] - ldr r0, [r0] - stm sp, {r0, r4} - ldrsh r0, [r6] - ldr r1, [r6, #8] - ldr r2, [r6, #0xc] - ldr r3, [r6, #4] - bl FUN_0207be6c - bl FUN_02078470 - b _02005CE0 -_02005C8C: - bl FUN_020784b8 - ldr r0, [r4, #0xb8] - ldr r0, [r0] - stm sp, {r0, r4} - ldrsh r0, [r6] - ldr r1, [r6, #8] - ldr r2, [r6, #0xc] - ldr r3, [r6, #4] - bl FUN_0207be6c - bl FUN_02078500 - b _02005CE0 -_02005CB8: - bl FUN_02078544 - ldr r0, [r4, #0xb8] - ldr r0, [r0] - stm sp, {r0, r4} - ldrsh r0, [r6] - ldr r1, [r6, #8] - ldr r2, [r6, #0xc] - ldr r3, [r6, #4] - bl FUN_0207be6c - bl FUN_0207855c -_02005CE0: - ldr r0, _02005D0C @ =0x020AF240 - bl FUN_02002e98 - ldrh r0, [r4, #0xb0] - tst r0, #0x100 - beq _02005CFC - ldrsh r0, [r4] - bl FUN_02005d30 -_02005CFC: - add sp, sp, #8 pop {r4, r5, r6, pc} - .align 2, 0 -_02005D04: .4byte 0x022A3248 -_02005D08: .4byte 0x02092670 -_02005D0C: .4byte 0x020AF240 -_02005D10: .4byte 0x020AF23C - arm_func_end FUN_02005b18 -_02005D14: - .byte 0x08, 0x40, 0x2D, 0xE9, 0xB0, 0x1B, 0xD0, 0xE1, 0x02, 0x0C, 0x11, 0xE3 - .byte 0x08, 0x80, 0xBD, 0x08, 0x04, 0x00, 0x80, 0xE2, 0x82, 0xF3, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_02005d30 -FUN_02005d30: @ 0x02005D30 - push {r4, lr} - ldr r1, _02005D88 @ =0x02092670 - mov r4, r0 - mov r0, #0x14 - mla r0, r4, r0, r1 - ldrh r0, [r0, #6] - bl FUN_020031c0 - ldr r1, _02005D8C @ =0x022A3248 - mov r0, #0xbc - mla r0, r4, r0, r1 - ldr r0, [r0, #0xb8] - cmp r0, #0 - beq _02005D74 - ldr r1, [r0, #8] - mov r0, r4 - blx r1 - pop {r4, pc} -_02005D74: - mov r0, r4 - bl FUN_0207c0dc - cmp r0, #0 - bne _02005D74 - pop {r4, pc} - .align 2, 0 -_02005D88: .4byte 0x02092670 -_02005D8C: .4byte 0x022A3248 - arm_func_end FUN_02005d30 - - arm_func_start FUN_02005d90 -FUN_02005d90: @ 0x02005D90 - push {r3, r4, r5, lr} - ldr r1, _02005DDC @ =0x022A3248 - mov r5, r0 - mov r0, #0xbc - smlabb r4, r5, r0, r1 - ldrh r0, [r4, #0xb0] - tst r0, #0x200 - beq _02005DC8 - add r0, r4, #4 - bl FUN_02002b7c - ldrh r0, [r4, #0xb0] - bic r0, r0, #0x200 - strh r0, [r4, #0xb0] - pop {r3, r4, r5, pc} -_02005DC8: - mov r0, r5 - bl FUN_0207c0dc - cmp r0, #0 - bne _02005DC8 - pop {r3, r4, r5, pc} - .align 2, 0 -_02005DDC: .4byte 0x022A3248 - arm_func_end FUN_02005d90 - - arm_func_start FUN_02005de0 -FUN_02005de0: @ 0x02005DE0 - push {r3, lr} - ldr r2, _02005E0C @ =0x022A3248 - mov r1, #0xbc - smlabb r1, r0, r1, r2 - ldrh r1, [r1, #0xb0] - tst r1, #0x200 - movne r0, #1 - popne {r3, pc} - bl FUN_0207c0dc - and r0, r0, #0xff - pop {r3, pc} - .align 2, 0 -_02005E0C: .4byte 0x022A3248 - arm_func_end FUN_02005de0 - - arm_func_start FUN_02005e10 -FUN_02005e10: @ 0x02005E10 - push {r3, lr} - sub sp, sp, #0x10 - ldr ip, [sp, #0x18] - strh r0, [sp] - add r0, sp, #0 - strh r1, [sp, #2] - str ip, [sp, #4] - str r3, [sp, #8] - str r2, [sp, #0xc] - bl FUN_02005b18 - add sp, sp, #0x10 - pop {r3, pc} - arm_func_end FUN_02005e10 - - arm_func_start FUN_02005e40 -FUN_02005e40: @ 0x02005E40 - push {r4, r5, r6, r7, r8, lr} - ldr r0, _02005EA4 @ =0x020AF264 - bl FUN_02002c40 - ldr r0, _02005EA4 @ =0x020AF264 - mov r1, #8 - bl FUN_02002cac - mov r8, #0 - ldr r7, _02005EA8 @ =0x022A353C - mov r6, r8 - mov r5, r8 - mov r4, #0xc - b _02005E8C -_02005E70: - mla r0, r8, r4, r7 - mov r1, r6 - bl FUN_02005f14 - mov r0, r8 - mov r1, r5 - bl FUN_02005f30 - add r8, r8, #1 -_02005E8C: - cmp r8, #2 - blt _02005E70 - ldr r0, _02005EA4 @ =0x020AF264 - bl FUN_02002e98 - bl FUN_02006030 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02005EA4: .4byte 0x020AF264 -_02005EA8: .4byte 0x022A353C - arm_func_end FUN_02005e40 - - arm_func_start FUN_02005eac -FUN_02005eac: @ 0x02005EAC - push {r3, r4, r5, r6, r7, lr} - ldr r6, _02005F10 @ =0x022A3554 - mov r7, #0 - cmp r7, #2 - popge {r3, r4, r5, r6, r7, pc} - mov r5, r7 - mov r4, r7 - b _02005F04 -_02005ECC: - strh r5, [r6, #0x1e] - ldrh r1, [r6, #0x1e] - mov r0, r7 - strh r1, [r6, #0x12] - bl FUN_02006220 - strh r4, [r6, #0x3c] - ldrh r1, [r6, #0x3c] - mov r0, r7 - strh r1, [r6, #0x2c] - bl FUN_020062c8 - mov r0, r7 - bl FUN_020063a0 - add r7, r7, #1 - add r6, r6, #0x44 -_02005F04: - cmp r7, #2 - blt _02005ECC - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02005F10: .4byte 0x022A3554 - arm_func_end FUN_02005eac - - arm_func_start FUN_02005f14 -FUN_02005f14: @ 0x02005F14 - mov r2, #0 - stm r0, {r1, r2} - ldr r1, _02005F2C @ =0x00002FFF - strh r2, [r0, #8] - strh r1, [r0, #0xa] - bx lr - .align 2, 0 -_02005F2C: .4byte 0x00002FFF - arm_func_end FUN_02005f14 - - arm_func_start FUN_02005f30 -FUN_02005f30: @ 0x02005F30 - push {r3, r4, r5, lr} - ldr r2, _02005F80 @ =0x022A3554 - mov r5, r0 - mov r0, #0x44 - mla r4, r5, r0, r2 - mov r0, r4 - bl FUN_02005f14 - mov r1, #0 - strh r1, [r4, #0x1e] - mov r0, r5 - strh r1, [r4, #0x12] - bl FUN_02006220 - mov r1, #0 - strh r1, [r4, #0x3c] - mov r0, r5 - strh r1, [r4, #0x2c] - bl FUN_020062c8 - mov r0, r5 - bl FUN_020063a0 - pop {r3, r4, r5, pc} - .align 2, 0 -_02005F80: .4byte 0x022A3554 - arm_func_end FUN_02005f30 - - arm_func_start FUN_02005f84 -FUN_02005f84: @ 0x02005F84 - push {r4, r5, r6, lr} - ldr r1, _0200601C @ =0x022A353C - movs r5, r0 - mov r0, #0xc - mla r4, r5, r0, r1 - movne r6, #0 - bne _02005FCC - ldr r1, _02006020 @ =0x04000130 - ldr r0, _02006024 @ =0x027FFFA8 - ldrh r3, [r1] - ldrh r2, [r0] - ldr r0, _02006028 @ =0x00002FFF - ldr r1, _0200602C @ =0x022A3538 - orr r2, r3, r2 - eor r2, r2, r0 - and r0, r2, r0 - strh r0, [r1] - mov r6, #2 -_02005FCC: - ldr r0, [r4] - cmp r6, r0 - beq _02005FF0 - mov r0, r4 - mov r1, r6 - bl FUN_02005f14 - mov r0, r5 - mov r1, r6 - bl FUN_02005f30 -_02005FF0: - ldr r1, _0200602C @ =0x022A3538 - mov r0, r6 - ldrh r2, [r1] - strh r2, [r4, #8] - ldrh r1, [r4, #0xa] - and r1, r1, r2 - strh r1, [r4, #0xa] - ldr r1, [r4, #4] - add r1, r1, #1 - str r1, [r4, #4] - pop {r4, r5, r6, pc} - .align 2, 0 -_0200601C: .4byte 0x022A353C -_02006020: .4byte 0x04000130 -_02006024: .4byte 0x027FFFA8 -_02006028: .4byte 0x00002FFF -_0200602C: .4byte 0x022A3538 - arm_func_end FUN_02005f84 - - arm_func_start FUN_02006030 -FUN_02006030: @ 0x02006030 - push {r3, r4, r5, r6, r7, lr} - ldr r0, _0200608C @ =0x020AF264 - bl FUN_02002cb4 - mov r7, #0 - ldr r5, _02006090 @ =0x022A353C - ldr r6, _02006094 @ =0x022A3554 - mov r4, r7 -_0200604C: - mov r0, r7 - bl FUN_02005f84 - cmp r0, #0 - streq r4, [r6] - beq _0200606C - cmp r0, #1 - ldmne r5, {r0, r1, r2} - stmne r6, {r0, r1, r2} -_0200606C: - add r7, r7, #1 - cmp r7, #2 - add r5, r5, #0xc - add r6, r6, #0x44 - blt _0200604C - ldr r0, _0200608C @ =0x020AF264 - bl FUN_02002e98 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0200608C: .4byte 0x020AF264 -_02006090: .4byte 0x022A353C -_02006094: .4byte 0x022A3554 - arm_func_end FUN_02006030 - - arm_func_start FUN_02006098 -FUN_02006098: @ 0x02006098 - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r0, _020061D8 @ =0x020AF264 - bl FUN_02002cb4 - mov r6, #0 - ldr r4, _020061DC @ =0x022A353C - ldr r5, _020061E0 @ =0x022A3554 - ldr sb, _020061E4 @ =0x00002FFF - ldr r7, _020061E8 @ =0x00000F0F - mov lr, #1 - mov ip, r6 - mov r3, r6 - mov r8, r6 -_020060C8: - ldm r4, {r0, r1, r2} - stm r5, {r0, r1, r2} - ldr r0, [r4] - cmp r0, #0 - beq _020061B8 - ldrh r1, [r5, #0x14] - ldrh r0, [r5, #0xa] - and r0, r1, r0 - strh r0, [r5, #0x14] - ldrh r0, [r5, #8] - strh r0, [r5, #0x12] - strb lr, [r5, #0x10] - ldrh r0, [r5, #0xa] - ldrh r1, [r5, #0x20] - orr r0, r0, #0xf0 - and r0, r1, r0 - strh r0, [r5, #0x20] - ldrh r0, [r5, #8] - strh r0, [r5, #0x1e] - strb lr, [r5, #0x1c] - ldrh r1, [r5, #0x2e] - ldrh r0, [r5, #0xa] - and r0, r1, r0 - strh r0, [r5, #0x2e] - ldrh r0, [r5, #8] - and r0, r0, r7 - strh r0, [r5, #0x2c] - strb lr, [r5, #0x24] - ldrh r1, [r5, #0x3e] - ldrh r0, [r5, #0xa] - and r0, r1, r0 - strh r0, [r5, #0x3e] - ldrh r0, [r5, #8] - and r0, r0, #0xf0 - strh r0, [r5, #0x3c] - strb lr, [r5, #0x34] - ldrh r0, [r5, #0x2c] - cmp r0, #0 - strbeq ip, [r5, #0x25] - streq ip, [r5, #0x28] - beq _02006184 - ldrb r0, [r5, #0x25] - cmp r0, #0 - ldreq r1, [r5, #0x28] - ldreq r0, [r4, #4] - subeq r0, r1, r0 - streq r0, [r5, #0x28] -_02006184: - ldrh r0, [r5, #0x3c] - cmp r0, #0 - strbeq r3, [r5, #0x35] - streq r3, [r5, #0x38] - beq _020061B0 - ldrb r0, [r5, #0x35] - cmp r0, #0 - ldreq r1, [r5, #0x38] - ldreq r0, [r4, #4] - subeq r0, r1, r0 - streq r0, [r5, #0x38] -_020061B0: - strh sb, [r4, #0xa] - str r8, [r4, #4] -_020061B8: - add r6, r6, #1 - cmp r6, #2 - add r4, r4, #0xc - add r5, r5, #0x44 - blt _020060C8 - ldr r0, _020061D8 @ =0x020AF264 - bl FUN_02002e98 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_020061D8: .4byte 0x020AF264 -_020061DC: .4byte 0x022A353C -_020061E0: .4byte 0x022A3554 -_020061E4: .4byte 0x00002FFF -_020061E8: .4byte 0x00000F0F - arm_func_end FUN_02006098 - - arm_func_start GetHeldButtons -GetHeldButtons: @ 0x020061EC - mov r2, #0x44 - mul r2, r0, r2 - ldr r3, _0200621C @ =0x022A3554 - add r0, r3, r2 - ldrh r0, [r0, #8] - strh r0, [r1] - ldr r0, [r3, r2] - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0200621C: .4byte 0x022A3554 - arm_func_end GetHeldButtons - - arm_func_start FUN_02006220 -FUN_02006220: @ 0x02006220 - ldr r2, _02006258 @ =0x022A3554 - mov r1, #0x44 - mla r2, r0, r1, r2 - mov r1, #0 - str r0, [r2, #0xc] - strb r1, [r2, #0x1c] - strb r1, [r2, #0x10] - strh r1, [r2, #0x22] - strh r1, [r2, #0x16] - ldrh r0, [r2, #0x12] - strh r0, [r2, #0x14] - ldrh r0, [r2, #0x1e] - strh r0, [r2, #0x20] - bx lr - .align 2, 0 -_02006258: .4byte 0x022A3554 - arm_func_end FUN_02006220 - - arm_func_start GetPressedButtons -GetPressedButtons: @ 0x0200625C - ldr r3, _020062C0 @ =0x022A3554 - mov r2, #0x44 - mla ip, r0, r2, r3 - ldrb r0, [ip, #0x10] - cmp r0, #0 - beq _020062A0 - mov r0, #0 - strb r0, [ip, #0x10] - ldrh r3, [ip, #0x12] - ldrh r2, [ip, #0x14] - ldr r0, _020062C4 @ =0x00002FFF - and r2, r3, r2 - eor r0, r2, r0 - and r0, r3, r0 - strh r0, [ip, #0x16] - ldrh r0, [ip, #0x12] - strh r0, [ip, #0x14] -_020062A0: - ldrh r0, [ip, #0x16] - strh r0, [r1] - ldr r0, [ip] - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_020062C0: .4byte 0x022A3554 -_020062C4: .4byte 0x00002FFF - arm_func_end GetPressedButtons - - arm_func_start FUN_020062c8 -FUN_020062c8: @ 0x020062C8 - ldr r2, _020062F8 @ =0x022A3554 - mov r1, #0x44 - mla r2, r0, r1, r2 - mov r1, #0 - strb r1, [r2, #0x24] - mov r0, #1 - strb r0, [r2, #0x25] - str r0, [r2, #0x28] - ldrh r0, [r2, #0x2c] - strh r0, [r2, #0x2e] - strh r1, [r2, #0x30] - bx lr - .align 2, 0 -_020062F8: .4byte 0x022A3554 - arm_func_end FUN_020062c8 -_020062FC: - .byte 0x08, 0x40, 0x2D, 0xE9 - .byte 0x90, 0x30, 0x9F, 0xE5, 0x44, 0x20, 0xA0, 0xE3, 0x90, 0x32, 0x22, 0xE0, 0x24, 0x00, 0xD2, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x17, 0x00, 0x00, 0x0A, 0x00, 0xE0, 0xA0, 0xE3, 0x24, 0xE0, 0xC2, 0xE5 - .byte 0xBC, 0x02, 0xD2, 0xE1, 0xB0, 0x03, 0xC2, 0xE1, 0xBE, 0xC2, 0xD2, 0xE1, 0x00, 0x00, 0x5C, 0xE3 - .byte 0x0C, 0x00, 0x00, 0x0A, 0x60, 0x00, 0x9F, 0xE5, 0xBC, 0x32, 0xD2, 0xE1, 0x00, 0x00, 0x2C, 0xE0 - .byte 0x03, 0x00, 0x10, 0xE1, 0x1E, 0x00, 0xA0, 0x13, 0x28, 0x00, 0x82, 0x15, 0x07, 0x00, 0x00, 0x1A - .byte 0x28, 0x00, 0x92, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0xA0, 0xD3, 0x28, 0x00, 0x82, 0xD5 - .byte 0xB0, 0xE3, 0xC2, 0xC1, 0x01, 0x00, 0x00, 0xEA, 0x1E, 0x00, 0xA0, 0xE3, 0x28, 0x00, 0x82, 0xE5 - .byte 0xBC, 0x02, 0xD2, 0xE1, 0xBE, 0x02, 0xC2, 0xE1, 0xB0, 0x03, 0xD2, 0xE1, 0xB0, 0x00, 0xC1, 0xE1 - .byte 0x00, 0x00, 0x92, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03 - .byte 0xFF, 0x00, 0x00, 0xE2, 0x08, 0x80, 0xBD, 0xE8, 0x54, 0x35, 0x2A, 0x02, 0xFF, 0x2F, 0x00, 0x00 - - arm_func_start FUN_020063a0 -FUN_020063a0: @ 0x020063A0 - ldr r2, _020063D0 @ =0x022A3554 - mov r1, #0x44 - mla r2, r0, r1, r2 - mov r1, #0 - strb r1, [r2, #0x34] - mov r0, #1 - strb r0, [r2, #0x35] - str r0, [r2, #0x38] - ldrh r0, [r2, #0x3c] - strh r0, [r2, #0x3e] - strh r1, [r2, #0x40] - bx lr - .align 2, 0 -_020063D0: .4byte 0x022A3554 - arm_func_end FUN_020063a0 - - arm_func_start FUN_020063d4 -FUN_020063d4: @ 0x020063D4 - ldr r2, _020063F0 @ =0x022A3554 - mov r1, #0x44 - mla r1, r0, r1, r2 - mov r0, #1 - strb r0, [r1, #0x35] - str r0, [r1, #0x38] - bx lr - .align 2, 0 -_020063F0: .4byte 0x022A3554 - arm_func_end FUN_020063d4 - - arm_func_start FUN_020063f4 -FUN_020063f4: @ 0x020063F4 - push {r3, lr} - ldr r3, _02006490 @ =0x022A3554 - mov r2, #0x44 - mla r2, r0, r2, r3 - ldrb r0, [r2, #0x34] - cmp r0, #0 - beq _02006470 - mov lr, #0 - strb lr, [r2, #0x34] - ldrh r0, [r2, #0x3c] - strh r0, [r2, #0x40] - ldrh ip, [r2, #0x3e] - cmp ip, #0 - beq _02006460 - ldr r0, _02006494 @ =0x00002FFF - ldrh r3, [r2, #0x3c] - eor r0, ip, r0 - tst r0, r3 - movne r0, #6 - strne r0, [r2, #0x38] - bne _02006468 - ldr r0, [r2, #0x38] - cmp r0, #0 - movle r0, #6 - strle r0, [r2, #0x38] - strhgt lr, [r2, #0x40] - b _02006468 -_02006460: - mov r0, #0x1e - str r0, [r2, #0x38] -_02006468: - ldrh r0, [r2, #0x3c] - strh r0, [r2, #0x3e] -_02006470: - ldrh r0, [r2, #0x40] - strh r0, [r1] - ldr r0, [r2] - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - pop {r3, pc} - .align 2, 0 -_02006490: .4byte 0x022A3554 -_02006494: .4byte 0x00002FFF - arm_func_end FUN_020063f4 - - arm_func_start FUN_02006498 -FUN_02006498: @ 0x02006498 - push {r3, r4, r5, r6, lr} - sub sp, sp, #4 - mov r5, r1 - mov r6, r0 - bl GetPressedButtons - ldrh r2, [r5] - ldr r1, _02006500 @ =0x00000F0F - mov r4, r0 - and r0, r2, r1 - strh r0, [r5] - ldrh r0, [r5] - cmp r0, #0 - beq _020064D8 - mov r0, r6 - bl FUN_020063a0 - b _020064F4 -_020064D8: - add r1, sp, #0 - mov r0, r6 - bl FUN_020063f4 - ldrh r1, [r5] - ldrh r0, [sp] - orr r0, r1, r0 - strh r0, [r5] -_020064F4: - mov r0, r4 - add sp, sp, #4 - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_02006500: .4byte 0x00000F0F - arm_func_end FUN_02006498 - - arm_func_start FUN_02006504 -FUN_02006504: @ 0x02006504 - push {r3, lr} - sub sp, sp, #8 - bl FUN_020811ec - add r0, sp, #0 - bl FUN_02081264 - cmp r0, #0 - beq _02006528 - add r0, sp, #0 - bl FUN_020812f8 -_02006528: - ldr r0, _0200655C @ =0x020AF288 - bl FUN_02002c40 - ldr r0, _0200655C @ =0x020AF288 - mov r1, #8 - bl FUN_02002cac - bl FUN_02006564 - ldr r0, _02006560 @ =0x022A35E8 - bl FUN_02006b54 - ldr r0, _0200655C @ =0x020AF288 - bl FUN_02002e98 - bl FUN_020065ac - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_0200655C: .4byte 0x020AF288 -_02006560: .4byte 0x022A35E8 - arm_func_end FUN_02006504 - - arm_func_start FUN_02006564 -FUN_02006564: @ 0x02006564 - ldr r0, _020065A4 @ =0x022A35DC - mvn r1, #0 - str r1, [r0] - str r1, [r0, #4] - mov r2, #0 - strb r2, [r0, #8] - ldr r3, _020065A8 @ =0x022A3614 - mov r0, r2 -_02006584: - str r1, [r3] - str r1, [r3, #4] - add r2, r2, #1 - strb r0, [r3, #8] - cmp r2, #4 - add r3, r3, #0xc - blt _02006584 - bx lr - .align 2, 0 -_020065A4: .4byte 0x022A35DC -_020065A8: .4byte 0x022A3614 - arm_func_end FUN_02006564 - - arm_func_start FUN_020065ac -FUN_020065ac: @ 0x020065AC - push {r4, lr} - sub sp, sp, #0x40 - bl FUN_02081420 - add r0, sp, #0x20 - bl FUN_02081500 - cmp r0, #0 - bne _02006B34 - ldr r0, _02006B3C @ =0x020AF288 - bl FUN_02002cb4 - ldr ip, _02006B40 @ =0x022A362C - mov lr, #2 -_020065D8: - add r3, ip, #0xc - ldm ip, {r0, r1, r2} - stm r3, {r0, r1, r2} - subs lr, lr, #1 - sub ip, ip, #0xc - bpl _020065D8 - ldrh r1, [sp, #0x26] - ldr r0, _02006B44 @ =0x022A35DC - tst r1, #1 - mvnne r2, #0 - ldrheq r2, [sp, #0x20] - tst r1, #2 - ldrh r1, [sp, #0x24] - str r2, [r0, #0x38] - mvnne r2, #0 - ldrheq r2, [sp, #0x22] - ldr r0, _02006B44 @ =0x022A35DC - cmp r1, #1 - str r2, [r0, #0x3c] - moveq r1, #1 - movne r1, #0 - ldr r0, _02006B44 @ =0x022A35DC - tst r1, #0xff - strb r1, [r0, #0x40] - ldrbeq r1, [r0, #0x4c] - cmpeq r1, #0 - beq _020066FC - ldr r0, _02006B48 @ =0x022A3614 - add r3, sp, #0x34 - ldm r0, {r0, r1, r2} - stm r3, {r0, r1, r2} - mov r4, #1 - ldr lr, _02006B4C @ =0x022A3620 - mov r2, r4 - mov r3, #0 - mov r0, r4 - b _020066B4 -_0200666C: - ldrb r1, [lr, #8] - cmp r1, #0 - beq _020066AC - ldr r1, [sp, #0x34] - mov ip, r3 - cmp r1, #0 - ldrlt r1, [lr] - movlt ip, r2 - strlt r1, [sp, #0x34] - ldr r1, [sp, #0x38] - cmp r1, #0 - ldrlt r1, [lr, #4] - movlt ip, r0 - strlt r1, [sp, #0x38] - cmp ip, #0 - beq _020066BC -_020066AC: - add r4, r4, #1 - add lr, lr, #0xc -_020066B4: - cmp r4, #4 - blt _0200666C -_020066BC: - ldr r0, [sp, #0x34] - cmp r0, #0 - ldrge r0, [sp, #0x38] - cmpge r0, #0 - addge r0, sp, #0x34 - ldrge r3, _02006B50 @ =0x022A35DC - ldmge r0, {r0, r1, r2} - stmge r3, {r0, r1, r2} - bge _02006710 - ldr r0, _02006B44 @ =0x022A35DC - mvn r1, #0 - str r1, [r0] - str r1, [r0, #4] - mov r1, #0 - strb r1, [r0, #8] - b _02006710 -_020066FC: - mvn r1, #0 - str r1, [r0] - str r1, [r0, #4] - mov r1, #0 - strb r1, [r0, #8] -_02006710: - ldr r0, _02006B50 @ =0x022A35DC - add r3, sp, #0x28 - ldm r0, {r0, r1, r2} - stm r3, {r0, r1, r2} - ldr r3, [sp, #0x28] - ldr r0, _02006B44 @ =0x022A35DC - ldr r2, [sp, #0x2c] - str r3, [r0, #0x18] - str r2, [r0, #0x1c] - ldrh r1, [r0, #0xe] - tst r1, #1 - beq _02006760 - ldrb r1, [sp, #0x30] - cmp r1, #0 - strne r3, [r0, #0x20] - strne r2, [r0, #0x24] - movne r1, #1 - strhne r1, [r0, #0xe] - moveq r1, #4 - b _0200677C -_02006760: - ldrb r1, [sp, #0x30] - cmp r1, #0 - strne r3, [r0, #0x20] - strne r2, [r0, #0x24] - movne r1, #3 - strhne r1, [r0, #0xe] - moveq r1, #0 -_0200677C: - strheq r1, [r0, #0xe] - ldr r1, _02006B44 @ =0x022A35DC - ldrh ip, [r1, #0xc] - cmp ip, #6 - addls pc, pc, ip, lsl #2 - b _02006B2C -_02006794: @ jump table - b _020067B0 @ case 0 - b _020067FC @ case 1 - b _020068B0 @ case 2 - b _02006988 @ case 3 - b _02006A84 @ case 4 - b _02006A84 @ case 5 - b _02006AF8 @ case 6 -_020067B0: - ldrh lr, [r1, #0xe] - mov r0, #0 - tst lr, #1 - streq r0, [r1, #0x10] - ldreq r0, [r1, #0x14] - addeq r0, r0, #1 - streq r0, [r1, #0x14] - beq _02006B2C - mov ip, #1 - str ip, [r1, #0x10] - str r0, [r1, #0x14] - ldr r3, [r1, #0x18] - ldr r2, [r1, #0x1c] - orr r0, lr, #0x40 - str r3, [r1, #0x28] - str r2, [r1, #0x2c] - strh r0, [r1, #0xe] - strh ip, [r1, #0xc] - b _02006B2C -_020067FC: - ldrh r3, [r1, #0xe] - mov r0, #0 - tst r3, #1 - beq _02006890 - ldr r2, [r1, #0x10] - add r2, r2, #1 - str r2, [r1, #0x10] - str r0, [r1, #0x14] - orr r0, r3, #0x40 - strh r0, [r1, #0xe] - cmp r2, #0xc - ble _02006B2C - ldr r3, [sp, #0x28] - ldr r0, [r1, #0x28] - ldr r2, [sp, #0x2c] - ldr r1, [r1, #0x2c] - sub r0, r3, r0 - sub r1, r2, r1 - str r0, [sp] - str r1, [sp, #4] - bl Abs - cmp r0, #8 - bge _02006874 - ldr r0, [sp, #4] - bl Abs - cmp r0, #8 - ldrlt r0, _02006B44 @ =0x022A35DC - ldrhlt r1, [r0, #0xe] - orrlt r1, r1, #0x400 - strhlt r1, [r0, #0xe] -_02006874: - ldr r0, _02006B44 @ =0x022A35DC - mov r1, #4 - ldrh r2, [r0, #0xe] - orr r2, r2, #0x2000 - strh r2, [r0, #0xe] - strh r1, [r0, #0xc] - b _02006B2C -_02006890: - str r0, [r1, #0x10] - mov r0, #1 - str r0, [r1, #0x14] - orr r0, r3, #8 - strh r0, [r1, #0xe] - mov r0, #2 - strh r0, [r1, #0xc] - b _02006B2C -_020068B0: - ldrh r3, [r1, #0xe] - tst r3, #1 - beq _02006960 - ldr lr, [sp, #0x28] - ldr r0, [r1, #0x28] - ldr ip, [sp, #0x2c] - ldr r3, [r1, #0x2c] - mov r2, #1 - sub r0, lr, r0 - sub r3, ip, r3 - str r2, [r1, #0x10] - mov r2, #0 - str r0, [sp, #8] - str r3, [sp, #0xc] - str r2, [r1, #0x14] - bl Abs - cmp r0, #8 - bge _02006934 - ldr r0, [sp, #0xc] - bl Abs - cmp r0, #8 - bge _02006934 - ldr r0, _02006B44 @ =0x022A35DC - mov r1, #3 - ldr r3, [r0, #0x18] - ldr r2, [r0, #0x1c] - str r3, [r0, #0x30] - str r2, [r0, #0x34] - ldrh r2, [r0, #0xe] - orr r2, r2, #0x80 - strh r2, [r0, #0xe] - strh r1, [r0, #0xc] - b _02006B2C -_02006934: - ldr r3, [sp, #0x28] - ldr r2, [sp, #0x2c] - ldr r0, _02006B44 @ =0x022A35DC - mov r1, #1 - str r3, [r0, #0x28] - str r2, [r0, #0x2c] - ldrh r2, [r0, #0xe] - orr r2, r2, #0x40 - strh r2, [r0, #0xe] - strh r1, [r0, #0xc] - b _02006B2C -_02006960: - mov r2, #0 - str r2, [r1, #0x10] - ldr r0, [r1, #0x14] - add r0, r0, #1 - str r0, [r1, #0x14] - cmp r0, #0xc - orrgt r0, r3, #0x10 - strhgt r0, [r1, #0xe] - strhgt r2, [r1, #0xc] - b _02006B2C -_02006988: - ldrh r3, [r1, #0xe] - tst r3, #1 - beq _02006A1C - ldr r2, [r1, #0x10] - mov r0, #0 - add r2, r2, #1 - str r2, [r1, #0x10] - str r0, [r1, #0x14] - orr r0, r3, #0x80 - strh r0, [r1, #0xe] - cmp r2, #0xc - ble _02006B2C - ldr r3, [sp, #0x28] - ldr r0, [r1, #0x30] - ldr r2, [sp, #0x2c] - ldr r1, [r1, #0x34] - sub r0, r3, r0 - sub r1, r2, r1 - str r0, [sp, #0x10] - str r1, [sp, #0x14] - bl Abs - cmp r0, #8 - bge _02006A00 - ldr r0, [sp, #0x14] - bl Abs - cmp r0, #8 - ldrlt r0, _02006B44 @ =0x022A35DC - ldrhlt r1, [r0, #0xe] - orrlt r1, r1, #0x800 - strhlt r1, [r0, #0xe] -_02006A00: - ldr r0, _02006B44 @ =0x022A35DC - mov r1, #5 - ldrh r2, [r0, #0xe] - orr r2, r2, #0x4000 - strh r2, [r0, #0xe] - strh r1, [r0, #0xc] - b _02006B2C -_02006A1C: - ldr lr, [r1, #0x20] - ldr r0, [r1, #0x28] - ldr ip, [r1, #0x24] - ldr r3, [r1, #0x2c] - mov r2, #0 - sub r0, lr, r0 - sub r3, ip, r3 - str r2, [r1, #0x10] - mov r2, #1 - str r0, [sp, #0x18] - str r3, [sp, #0x1c] - str r2, [r1, #0x14] - bl Abs - cmp r0, #8 - bge _02006A74 - ldr r0, [sp, #0x1c] - bl Abs - cmp r0, #8 - ldrlt r0, _02006B44 @ =0x022A35DC - ldrhlt r1, [r0, #0xe] - orrlt r1, r1, #0x20 - strhlt r1, [r0, #0xe] -_02006A74: - ldr r0, _02006B44 @ =0x022A35DC - mov r1, #0 - strh r1, [r0, #0xc] - b _02006B2C -_02006A84: - ldrh r3, [r1, #0xe] - tst r3, #1 - beq _02006AE0 - ldr r2, [r1, #0x10] - mov r0, #0 - add r2, r2, #1 - str r2, [r1, #0x10] - str r0, [r1, #0x14] - cmp ip, #4 - orreq r0, r3, #0x140 - orrne r0, r3, #0x280 - strh r0, [r1, #0xe] - ldr r0, _02006B44 @ =0x022A35DC - ldr r1, [r0, #0x10] - cmp r1, #0x3c - ldrhgt r1, [r0, #0xe] - orrgt r1, r1, #0x1000 - strhgt r1, [r0, #0xe] - bgt _02006B2C - ldrheq r1, [r0, #0xe] - orreq r1, r1, #0x9000 - strheq r1, [r0, #0xe] - b _02006B2C -_02006AE0: - mov r2, #0 - str r2, [r1, #0x10] - mov r0, #1 - str r0, [r1, #0x14] - strh r2, [r1, #0xc] - b _02006B2C -_02006AF8: - ldrh r0, [r1, #0xe] - tst r0, #1 - moveq r2, #0 - streq r2, [r1, #0x10] - moveq r0, #1 - streq r0, [r1, #0x14] - strheq r2, [r1, #0xc] - beq _02006B2C - ldr r2, [r1, #0x10] - mov r0, #0 - add r2, r2, #1 - str r2, [r1, #0x10] - str r0, [r1, #0x14] -_02006B2C: - ldr r0, _02006B3C @ =0x020AF288 - bl FUN_02002e98 -_02006B34: - add sp, sp, #0x40 - pop {r4, pc} - .align 2, 0 -_02006B3C: .4byte 0x020AF288 -_02006B40: .4byte 0x022A362C -_02006B44: .4byte 0x022A35DC -_02006B48: .4byte 0x022A3614 -_02006B4C: .4byte 0x022A3620 -_02006B50: .4byte 0x022A35DC - arm_func_end FUN_020065ac - - arm_func_start FUN_02006b54 -FUN_02006b54: @ 0x02006B54 - mov r1, #6 - strh r1, [r0] - mov r1, #0 - strh r1, [r0, #2] - str r1, [r0, #4] - str r1, [r0, #8] - bx lr - arm_func_end FUN_02006b54 - - arm_func_start FUN_02006b70 -FUN_02006b70: @ 0x02006B70 - push {r3, lr} - ldr r0, _02006B90 @ =0x020AF288 - bl FUN_02002cb4 - ldr r0, _02006B94 @ =0x022A35E8 - bl FUN_02006b54 - ldr r0, _02006B90 @ =0x020AF288 - bl FUN_02002e98 - pop {r3, pc} - .align 2, 0 -_02006B90: .4byte 0x020AF288 -_02006B94: .4byte 0x022A35E8 - arm_func_end FUN_02006b70 - - arm_func_start FUN_02006b98 -FUN_02006b98: @ 0x02006B98 - push {r3, lr} - ldr r0, _02006BEC @ =0x020AF288 - bl FUN_02002cb4 - ldr r0, _02006BF0 @ =0x022A35DC - ldrb r1, [r0, #8] - cmp r1, #0 - beq _02006BD8 - mov r2, #4 - ldr r1, _02006BF4 @ =0x00001101 - strh r2, [r0, #0xc] - strh r1, [r0, #0xe] - mov r1, #0x3d - str r1, [r0, #0x10] - mov r1, #0 - str r1, [r0, #0x14] - b _02006BE0 -_02006BD8: - ldr r0, _02006BF8 @ =0x022A35E8 - bl FUN_02006b54 -_02006BE0: - ldr r0, _02006BEC @ =0x020AF288 - bl FUN_02002e98 - pop {r3, pc} - .align 2, 0 -_02006BEC: .4byte 0x020AF288 -_02006BF0: .4byte 0x022A35DC -_02006BF4: .4byte 0x00001101 -_02006BF8: .4byte 0x022A35E8 - arm_func_end FUN_02006b98 - - arm_func_start FUN_02006bfc -FUN_02006bfc: @ 0x02006BFC - mov r1, #0 - strh r1, [r0] - sub r1, r1, #1 - str r1, [r0, #4] - str r1, [r0, #8] - str r1, [r0, #0xc] - str r1, [r0, #0x10] - bx lr - arm_func_end FUN_02006bfc - - arm_func_start GetReleasedStylus -GetReleasedStylus: @ 0x02006C1C - push {r4, lr} - mov r4, r0 - ldr r0, _02006C84 @ =0x020AF288 - bl FUN_02002cb4 - ldr r1, _02006C88 @ =0x022A35DC - ldr r0, _02006C84 @ =0x020AF288 - ldrh r2, [r1, #0xe] - strh r2, [r4] - ldr r3, [r1, #0x18] - ldr r2, [r1, #0x1c] - str r3, [r4, #4] - str r2, [r4, #8] - ldr r3, [r1, #0x20] - ldr r2, [r1, #0x24] - str r3, [r4, #0xc] - str r2, [r4, #0x10] - ldr r3, [r1, #0x28] - ldr r2, [r1, #0x2c] - str r3, [r4, #0x14] - str r2, [r4, #0x18] - ldr r2, [r1, #0x30] - ldr r1, [r1, #0x34] - str r2, [r4, #0x1c] - str r1, [r4, #0x20] - bl FUN_02002e98 - pop {r4, pc} - .align 2, 0 -_02006C84: .4byte 0x020AF288 -_02006C88: .4byte 0x022A35DC - arm_func_end GetReleasedStylus - - arm_func_start FUN_02006c8c -FUN_02006c8c: @ 0x02006C8C - ldrh ip, [r0] - ldr r3, _02006D44 @ =0x00001CFA - and ip, r1, ip - tst ip, r3 - beq _02006CE8 - cmp r2, #0 - moveq r0, #1 - bxeq lr - ldr r3, [r0, #0x14] - ldr r1, [r2, #8] - cmp r3, r1 - blt _02006CE8 - ldr r1, [r2, #0xc] - cmp r3, r1 - bgt _02006CE8 - ldr r3, [r0, #0x18] - ldr r1, [r2] - cmp r3, r1 - blt _02006CE8 - ldr r1, [r2, #4] - cmp r3, r1 - movle r0, #1 - bxle lr -_02006CE8: - ldr r1, _02006D48 @ =0x00000301 - tst ip, r1 - beq _02006D3C - cmp r2, #0 - moveq r0, #1 - bxeq lr - ldr r3, [r0, #0xc] - ldr r1, [r2, #8] - cmp r3, r1 - blt _02006D3C - ldr r1, [r2, #0xc] - cmp r3, r1 - bgt _02006D3C - ldr r1, [r0, #0x10] - ldr r0, [r2] - cmp r1, r0 - blt _02006D3C - ldr r0, [r2, #4] - cmp r1, r0 - movle r0, #1 - bxle lr -_02006D3C: - mov r0, #0 - bx lr - .align 2, 0 -_02006D44: .4byte 0x00001CFA -_02006D48: .4byte 0x00000301 - arm_func_end FUN_02006c8c - - arm_func_start FUN_02006d4c -FUN_02006d4c: @ 0x02006D4C - push {r3, lr} - ldr r0, _02006D9C @ =0x022A3644 - mov r3, #0 - strb r3, [r0, #2] - strb r3, [r0, #1] - strb r3, [r0] - str r3, [r0, #0x10] - str r3, [r0, #0xc] - mov r1, #1 - strb r1, [r0, #9] - ldr r1, _02006DA0 @ =0x022A3644 - mov r2, r3 -_02006D7C: - add r0, r1, r3 - add r3, r3, #1 - strb r2, [r0, #3] - cmp r3, #6 - blt _02006D7C - bl FUN_02005e40 - bl FUN_02006504 - pop {r3, pc} - .align 2, 0 -_02006D9C: .4byte 0x022A3644 -_02006DA0: .4byte 0x022A3644 - arm_func_end FUN_02006d4c - - arm_func_start KeyWaitInit -KeyWaitInit: @ 0x02006DA4 - push {r3, lr} - mov r0, #0 - bl FUN_02006220 - mov r0, #0 - bl FUN_020063a0 - mov r0, #0 - bl FUN_020063d4 - bl FUN_02006b70 - pop {r3, pc} - arm_func_end KeyWaitInit - - arm_func_start FUN_02006dc8 -FUN_02006dc8: @ 0x02006DC8 - push {r3, lr} - mov r0, #0 - bl FUN_02006220 - mov r0, #0 - bl FUN_020063a0 - mov r0, #0 - bl FUN_020063d4 - bl FUN_02006b98 - pop {r3, pc} - arm_func_end FUN_02006dc8 - - arm_func_start FUN_02006dec -FUN_02006dec: @ 0x02006DEC - push {r3, lr} - bl FUN_02006030 - bl FUN_020065ac - ldr r0, _02006E10 @ =0x020AF2AC - ldr r0, [r0] - cmp r0, #0 - popeq {r3, pc} - blx r0 - pop {r3, pc} - .align 2, 0 -_02006E10: .4byte 0x020AF2AC - arm_func_end FUN_02006dec - - arm_func_start FUN_02006e14 -FUN_02006e14: @ 0x02006E14 - push {r3, r4, lr} - sub sp, sp, #4 - add r1, sp, #0 - mov r0, #0 - bl GetHeldButtons - movs r3, #0 - mov r4, r3 - bne _02006E8C - mov r2, #4 - ldr r1, _02006EBC @ =0x022A3644 - b _02006E6C -_02006E40: - add r0, r1, r2 - ldrb r0, [r0, #3] - cmp r0, #0 - beq _02006E68 - ldr r0, _02006EC0 @ =0x022A3644 - mov r4, r2 - ldr r0, [r0, #0x10] - cmp r0, r2 - movne r3, #1 - b _02006E74 -_02006E68: - add r2, r2, #1 -_02006E6C: - cmp r2, #5 - ble _02006E40 -_02006E74: - cmp r4, #0 - bne _02006E8C - ldr r0, _02006EC0 @ =0x022A3644 - ldr r0, [r0, #0x10] - cmp r0, #0 - movne r3, #1 -_02006E8C: - cmp r3, #0 - beq _02006EAC - mov r0, #0 - bl FUN_02006220 - mov r0, #0 - bl FUN_020062c8 - mov r0, #0 - bl FUN_020063a0 -_02006EAC: - ldr r0, _02006EC0 @ =0x022A3644 - str r4, [r0, #0x10] - add sp, sp, #4 - pop {r3, r4, pc} - .align 2, 0 -_02006EBC: .4byte 0x022A3644 -_02006EC0: .4byte 0x022A3644 - arm_func_end FUN_02006e14 -_02006EC4: - .byte 0x04, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x81, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xAC, 0xF2, 0x0A, 0x02 - - arm_func_start FUN_02006ed4 -FUN_02006ed4: @ 0x02006ED4 - mov r2, #0 - str r2, [r0] - sub r1, r2, #1 - stmib r0, {r1, r2} - strb r2, [r0, #0xc] - str r1, [r0, #0x10] - str r2, [r0, #0x14] - str r2, [r0, #0x18] - bx lr - arm_func_end FUN_02006ed4 - - arm_func_start FUN_02006ef8 -FUN_02006ef8: @ 0x02006EF8 - push {r3, r4, lr} - sub sp, sp, #0x3c - bl FUN_0208266c - add r0, sp, #0x20 - bl FUN_02006f68 - add r0, sp, #0x20 - add r1, sp, #0 - ldr r4, _02006F34 @ =0x0209277C - bl FUN_02006fb8 - ldr r0, _02006F38 @ =0x0209278C - add r2, sp, #0 - mov r1, r4 - bl DebugPrint0 - add sp, sp, #0x3c - pop {r3, r4, pc} - .align 2, 0 -_02006F34: .4byte 0x0209277C -_02006F38: .4byte 0x0209278C - arm_func_end FUN_02006ef8 - - arm_func_start FUN_02006f3c -FUN_02006f3c: @ 0x02006F3C - str r1, [r0, #0x18] - str r2, [r0, #0x14] - ldr r1, [sp] - str r3, [r0, #0x10] - str r1, [r0, #0xc] - ldr r2, [sp, #4] - ldr r1, [sp, #8] - stmib r0, {r1, r2} - mov r1, #0 - str r1, [r0] - bx lr - arm_func_end FUN_02006f3c - - arm_func_start FUN_02006f68 -FUN_02006f68: @ 0x02006F68 - push {r4, lr} - sub sp, sp, #0x28 - mov r4, r0 - add r0, sp, #0x18 - add r1, sp, #0xc - bl FUN_020828a8 - ldr r1, [sp, #0xc] - mov r0, r4 - str r1, [sp] - ldr r1, [sp, #0x10] - str r1, [sp, #4] - ldr r1, [sp, #0x14] - str r1, [sp, #8] - ldr r1, [sp, #0x18] - ldr r2, [sp, #0x1c] - ldr r3, [sp, #0x20] - add r1, r1, #0x7d0 - bl FUN_02006f3c - add sp, sp, #0x28 - pop {r4, pc} - arm_func_end FUN_02006f68 - - arm_func_start FUN_02006fb8 -FUN_02006fb8: @ 0x02006FB8 - push {r3, lr} - sub sp, sp, #0x10 - mov r3, r0 - ldr r2, [r3, #0x10] - mov r0, r1 - str r2, [sp] - ldr r2, [r3, #0xc] - ldr r1, _02007000 @ =0x02092798 - str r2, [sp, #4] - ldr r2, [r3, #8] - str r2, [sp, #8] - ldr r2, [r3, #4] - str r2, [sp, #0xc] - ldr r2, [r3, #0x18] - ldr r3, [r3, #0x14] - bl Sprintf - add sp, sp, #0x10 - pop {r3, pc} - .align 2, 0 -_02007000: .4byte 0x02092798 - arm_func_end FUN_02006fb8 -_02007004: - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xB0, 0xE1, 0x13, 0x00, 0x00, 0x0A - .byte 0x3A, 0x10, 0xA0, 0xE3, 0xD3, 0xEC, 0xFF, 0xEB, 0x00, 0x40, 0xB0, 0xE1, 0x08, 0x00, 0x00, 0x0A - .byte 0x06, 0x50, 0x44, 0xE0, 0x48, 0x00, 0x9F, 0xE5, 0x06, 0x10, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1 - .byte 0xC9, 0x09, 0x02, 0xEB, 0x38, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x05, 0x10, 0xC0, 0xE7 - .byte 0x01, 0x60, 0x84, 0xE2, 0xD0, 0x00, 0xD6, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A - .byte 0x20, 0x00, 0x9F, 0xE5, 0x20, 0x10, 0x9F, 0xE5, 0x06, 0x20, 0xA0, 0xE1, 0x48, 0x09, 0x02, 0xEB - .byte 0x18, 0x00, 0x9F, 0xE5, 0x08, 0x10, 0x9F, 0xE5, 0x08, 0x20, 0x9F, 0xE5, 0x62, 0x14, 0x00, 0xEB - .byte 0x70, 0x80, 0xBD, 0xE8, 0xB8, 0xF2, 0x0A, 0x02, 0xC4, 0xF2, 0x0A, 0x02, 0xB8, 0x27, 0x09, 0x02 - .byte 0xBC, 0x27, 0x09, 0x02 - - arm_func_start FUN_02007084 -FUN_02007084: @ 0x02007084 - ldr r0, _0200708C @ =0x020AF2B8 - bx lr - .align 2, 0 -_0200708C: .4byte 0x020AF2B8 - arm_func_end FUN_02007084 - - arm_func_start FUN_02007090 -FUN_02007090: @ 0x02007090 - ldr r0, _02007098 @ =0x020AF2C4 - bx lr - .align 2, 0 -_02007098: .4byte 0x020AF2C4 - arm_func_end FUN_02007090 - - arm_func_start FUN_0200709c -FUN_0200709c: @ 0x0200709C - push {r4, r5, r6, r7, r8, lr} - mov r6, r2 - mov r8, r0 - mov r7, r1 - mov r0, r6 - mov r1, #0x3a - bl thunk_FUN_02002378 - cmp r0, #0 - addne r4, r0, #1 - subne r5, r0, r6 - bne _020070D8 - mov r0, r6 - bl Strlen - mov r5, r0 - add r4, r6, r5 -_020070D8: - sub r0, r5, #1 - ldrsb r0, [r6, r0] - cmp r0, #0x30 - blt _020070FC - cmp r0, #0x39 - suble r0, r0, #0x30 - strle r0, [r7] - suble r5, r5, #1 - ble _02007104 -_020070FC: - mov r0, #0 - str r0, [r7] -_02007104: - mov r0, r8 - mov r1, r6 - mov r2, r5 - bl Strncpy - mov r1, #0 - mov r0, r4 - strb r1, [r8, r5] - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0200709c - - arm_func_start FUN_02007124 -FUN_02007124: @ 0x02007124 - push {r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #0x100 - mov r4, r1 - mov sl, r0 - mov r0, r4 - mov r1, #0x3a - bl thunk_FUN_02002378 - cmp r0, #0 - add r0, sp, #0x80 - bne _02007160 - ldr r1, _0200724C @ =0x020927E4 - ldr r2, _02007250 @ =0x020AF2B8 - mov r3, r4 - bl Sprintf - b _02007168 -_02007160: - mov r1, r4 - bl Strcpy -_02007168: - add r0, sp, #0x80 - mov r1, #0x3a - bl thunk_FUN_02002378 - add r0, sp, #0x80 - bl FUN_02007544 - add r2, sp, #0x80 - add r0, sl, #0xc - add r1, sl, #4 - bl FUN_0200709c - mov r8, r0 - add r0, sl, #0xc - bl FUN_0200746c - ldr r0, [r0] - mov r1, r8 - str r0, [sl] - add r0, sl, #0x6c - bl Strcpy - mov sb, #0 - strb sb, [sl, #0x5c] - add r4, sl, #0x1c - mov r6, sb - add r7, sp, #0 - mov r5, #0xa -_020071C4: - mov r1, r7 -_020071C8: - ldrsb r0, [r8] - cmp r0, #0 - cmpne r0, #0x2f - cmpne r0, #0x2e - addne r8, r8, #1 - strbne r0, [r1], #1 - bne _020071C8 - strb r6, [r1] - ldrsb r0, [r8] - cmp r0, #0 - bne _02007204 - add r1, sp, #0 - add r0, sl, #0x5c - bl Strcat - b _02007240 -_02007204: - cmp r0, #0x2e - bne _02007220 - mov r1, r7 - mov r2, r5 - add r0, sl, #0x5c - bl FUN_020023a8 - b _02007238 -_02007220: - cmp r0, #0x2f - bne _02007238 - add r0, r4, sb, lsl #4 - mov r1, r7 - add sb, sb, #1 - bl Strcpy -_02007238: - add r8, r8, #1 - b _020071C4 -_02007240: - str sb, [sl, #8] - add sp, sp, #0x100 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_0200724C: .4byte 0x020927E4 -_02007250: .4byte 0x020AF2B8 - arm_func_end FUN_02007124 - - arm_func_start FUN_02007254 -FUN_02007254: @ 0x02007254 - add r3, r0, #0x5c - mov ip, #0 - b _02007278 -_02007260: - ldrsb r2, [r3] - cmp r2, #0x20 - beq _02007280 - add r3, r3, #1 - strb r2, [r1], #1 - add ip, ip, #1 -_02007278: - cmp ip, #0xa - blt _02007260 -_02007280: - ldrsb r2, [r0, #0x66] - add r3, r0, #0x66 - cmp r2, #0 - beq _020072C0 - mov r0, #0x2e - strb r0, [r1], #1 - mov r2, #0 - b _020072B8 -_020072A0: - ldrsb r0, [r3] - cmp r0, #0x20 - beq _020072C0 - add r3, r3, #1 - strb r0, [r1], #1 - add r2, r2, #1 -_020072B8: - cmp r2, #5 - blt _020072A0 -_020072C0: - mov r0, #0 - strb r0, [r1] - bx lr - arm_func_end FUN_02007254 - - arm_func_start FUN_020072cc -FUN_020072cc: @ 0x020072CC - push {r4, r5, r6, r7, r8, lr} - mov r8, r0 - ldr r0, [r8, #8] - mov r7, r1 - cmp r0, #0 - ble _0200732C - mov r0, r7 - add r1, r8, #0x1c - bl Strcpy - mov r6, #1 - add r4, r8, #0x1c - ldr r5, _02007338 @ =0x020927EC - b _0200731C -_02007300: - mov r0, r7 - mov r1, r5 - bl Strcat - mov r0, r7 - add r1, r4, r6, lsl #4 - bl Strcat - add r6, r6, #1 -_0200731C: - ldr r0, [r8, #8] - cmp r6, r0 - blt _02007300 - pop {r4, r5, r6, r7, r8, pc} -_0200732C: - mov r0, #0 - strb r0, [r7] - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02007338: .4byte 0x020927EC - arm_func_end FUN_020072cc - - arm_func_start FUN_0200733c -FUN_0200733c: @ 0x0200733C - push {r3, r4, r5, lr} - mov r4, r1 - mov r5, r0 - bl FUN_020072cc - mov r0, r4 - bl Strlen - mov r1, r0 - cmp r0, #0 - movgt r1, #0x2f - strbgt r1, [r4, r0] - addgt r1, r0, #1 - movgt r0, #0 - strbgt r0, [r4, r1] - mov r0, r5 - add r1, r4, r1 - bl FUN_02007254 - pop {r3, r4, r5, pc} - arm_func_end FUN_0200733c -_02007380: - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02007384 -FUN_02007384: @ 0x02007384 - push {r3, lr} - ldr r1, _020073A8 @ =0x020AF344 - mov r2, #0 - ldr r0, _020073AC @ =0x022A3670 - str r2, [r1] - bl FUN_0200844c - ldr r0, _020073B0 @ =0x022A3658 - bl FUN_0200846c - pop {r3, pc} - .align 2, 0 -_020073A8: .4byte 0x020AF344 -_020073AC: .4byte 0x022A3670 -_020073B0: .4byte 0x022A3658 - arm_func_end FUN_02007384 - - arm_func_start FUN_020073b4 -FUN_020073b4: @ 0x020073B4 - mov r1, #0 - str r1, [r0] - strb r1, [r0, #4] - str r1, [r0, #0x14] - sub r1, r1, #1 - str r1, [r0, #0x18] - str r1, [r0, #0x1c] - str r1, [r0, #0x20] - bx lr - arm_func_end FUN_020073b4 - - arm_func_start FUN_020073d8 -FUN_020073d8: @ 0x020073D8 - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #4 - ldr r6, _02007464 @ =0x020AF354 - bl FUN_02007084 - mov r1, r0 - add r0, sp, #0 - bl FUN_020074dc - mov r7, r0 - mov r5, #0xa - ldr r4, _02007468 @ =0x02092844 - mov r8, #0 - b _02007450 -_02007408: - ldr r2, [r0, #4] - mov r0, r5 - mov r1, r4 - bl DebugPrint - ldr r2, [r6] - ldr r0, [r7] - ldr r1, [r2] - cmp r1, r0 - bne _02007440 - bl FUN_02007090 - ldr r1, [r6] - ldr r1, [r1, #0xc] - blx r1 - b _0200744C -_02007440: - ldr r1, [r2, #0xc] - mov r0, r8 - blx r1 -_0200744C: - add r6, r6, #4 -_02007450: - ldr r0, [r6] - cmp r0, #0 - bne _02007408 - add sp, sp, #4 - pop {r3, r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02007464: .4byte 0x020AF354 -_02007468: .4byte 0x02092844 - arm_func_end FUN_020073d8 - - arm_func_start FUN_0200746c -FUN_0200746c: @ 0x0200746C - push {r4, r5, r6, lr} - mov r6, r0 - ldr r4, _020074B0 @ =0x020AF354 - b _02007498 -_0200747C: - ldr r1, [r5, #8] - mov r0, r6 - bl Strcmp - cmp r0, #0 - moveq r0, r5 - popeq {r4, r5, r6, pc} - add r4, r4, #4 -_02007498: - ldr r5, [r4] - cmp r5, #0 - bne _0200747C - ldr r0, _020074B4 @ =0x020AF354 - ldr r0, [r0] - pop {r4, r5, r6, pc} - .align 2, 0 -_020074B0: .4byte 0x020AF354 -_020074B4: .4byte 0x020AF354 - arm_func_end FUN_0200746c - - arm_func_start FUN_020074b8 -FUN_020074b8: @ 0x020074B8 - cmp r0, #0 - ldreq r0, _020074D4 @ =0x020AF354 - ldreq r0, [r0] - ldrne r1, [r0] - ldrne r0, _020074D8 @ =0x020AF354 - ldrne r0, [r0, r1, lsl #2] - bx lr - .align 2, 0 -_020074D4: .4byte 0x020AF354 -_020074D8: .4byte 0x020AF354 - arm_func_end FUN_020074b8 - - arm_func_start FUN_020074dc -FUN_020074dc: @ 0x020074DC - push {r4, r5, r6, lr} - sub sp, sp, #0x80 - mov r3, r0 - mov r2, r1 - add r0, sp, #0 - mov r1, r3 - bl FUN_0200709c - ldr r5, _0200753C @ =0x020AF354 - add r4, sp, #0 - b _02007520 -_02007504: - ldr r1, [r6, #8] - mov r0, r4 - bl Strcmp - cmp r0, #0 - moveq r0, r6 - beq _02007534 - add r5, r5, #4 -_02007520: - ldr r6, [r5] - cmp r6, #0 - bne _02007504 - ldr r0, _02007540 @ =0x020AF354 - ldr r0, [r0] -_02007534: - add sp, sp, #0x80 - pop {r4, r5, r6, pc} - .align 2, 0 -_0200753C: .4byte 0x020AF354 -_02007540: .4byte 0x020AF354 - arm_func_end FUN_020074dc - - arm_func_start FUN_02007544 -FUN_02007544: @ 0x02007544 - push {r3, r4, lr} - sub sp, sp, #4 - mov r4, r0 - add r0, sp, #0 - mov r1, r4 - bl FUN_020074dc - ldr r1, [r0, #0x10] - cmp r1, #0 - beq _02007570 - mov r0, r4 - blx r1 -_02007570: - add sp, sp, #4 - pop {r3, r4, pc} - arm_func_end FUN_02007544 - - arm_func_start FUN_02007578 -FUN_02007578: @ 0x02007578 - push {r4, lr} - sub sp, sp, #0x90 - mov r4, r0 - add r0, sp, #4 - bl FUN_02006ed4 - add r0, sp, #0 - mov r1, r4 - bl FUN_020074dc - ldr r2, [r0, #0x14] - add r0, sp, #4 - mov r1, r4 - blx r2 - add sp, sp, #0x90 - pop {r4, pc} - arm_func_end FUN_02007578 - - arm_func_start FUN_020075b0 -FUN_020075b0: @ 0x020075B0 - push {r4, lr} - sub sp, sp, #0x90 - mov r4, r0 - add r0, sp, #4 - bl FUN_02006ed4 - add r0, sp, #0 - mov r1, r4 - bl FUN_020074dc - ldr r2, [r0, #0x3c] - add r0, sp, #4 - mov r1, r4 - blx r2 - add sp, sp, #0x90 - pop {r4, pc} - arm_func_end FUN_020075b0 - - arm_func_start thunk_FUN_02006ed4 -thunk_FUN_02006ed4: @ 0x020075E8 - ldr ip, _020075F0 @ =FUN_02006ed4 - bx ip - .align 2, 0 -_020075F0: .4byte FUN_02006ed4 - arm_func_end thunk_FUN_02006ed4 - - arm_func_start FUN_020075f4 -FUN_020075f4: @ 0x020075F4 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - bl DataTransferInit - mov r0, #2 - str r0, [r5] - ldm r5!, {r0, r1, r2, r3} - stm r4!, {r0, r1, r2, r3} - ldm r5, {r0, r1, r2} - stm r4, {r0, r1, r2} - mov r0, #1 - pop {r3, r4, r5, pc} - arm_func_end FUN_020075f4 - - arm_func_start FUN_02007624 -FUN_02007624: @ 0x02007624 - push {r3, lr} - mov lr, r0 - mov r0, #0 - mov ip, r1 - str r0, [lr] - ldm lr!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - ldm lr, {r0, r1, r2} - stm ip, {r0, r1, r2} - bl DataTransferStop - mov r0, #1 - pop {r3, pc} - arm_func_end FUN_02007624 - - arm_func_start FUN_02007654 -FUN_02007654: @ 0x02007654 - push {r3, r4, r5, r6, lr} - sub sp, sp, #0xec - mov r6, r2 - mov r5, r0 - mov r4, r1 - bl FUN_02006ed4 - add r0, sp, #0 - mov r1, r6 - bl FUN_02007124 - add r0, sp, #0xc - bl FUN_0200746c - mov r6, r0 - ldr r1, [r6] - mov r0, #0 - str r1, [r5] - ldr r1, [sp, #4] - mov lr, r5 - str r1, [r5, #4] - str r0, [r5, #8] - mov ip, r4 - ldm lr!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - ldm lr, {r0, r1, r2} - stm ip, {r0, r1, r2} - ldr r2, [r6, #0x18] - mov r0, r5 - add r1, sp, #0 - blx r2 - mov ip, r0 - ldm r5!, {r0, r1, r2, r3} - stm r4!, {r0, r1, r2, r3} - ldm r5, {r0, r1, r2} - stm r4, {r0, r1, r2} - mov r0, ip - add sp, sp, #0xec - pop {r3, r4, r5, r6, pc} - arm_func_end FUN_02007654 - - arm_func_start FUN_020076e4 -FUN_020076e4: @ 0x020076E4 - push {r3, r4, r5, r6, lr} - sub sp, sp, #0xec - mov r6, r2 - mov r5, r0 - mov r4, r1 - bl FUN_02006ed4 - add r0, sp, #0 - mov r1, r6 - bl FUN_02007124 - add r0, sp, #0xc - bl FUN_0200746c - mov r6, r0 - ldr r1, [r6] - mov r0, #0 - str r1, [r5] - ldr r1, [sp, #4] - mov lr, r5 - str r1, [r5, #4] - str r0, [r5, #8] - mov ip, r4 - ldm lr!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - ldm lr, {r0, r1, r2} - stm ip, {r0, r1, r2} - ldr r2, [r6, #0x1c] - mov r0, r5 - add r1, sp, #0 - blx r2 - mov ip, r0 - ldm r5!, {r0, r1, r2, r3} - stm r4!, {r0, r1, r2, r3} - ldm r5, {r0, r1, r2} - stm r4, {r0, r1, r2} - mov r0, ip - add sp, sp, #0xec - pop {r3, r4, r5, r6, pc} - arm_func_end FUN_020076e4 - - arm_func_start FUN_02007774 -FUN_02007774: @ 0x02007774 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - bl FUN_020074b8 - ldr r1, [r0, #0x20] - mov r0, r5 - blx r1 - cmp r0, #0 - mov r0, #0 - popeq {r3, r4, r5, pc} - str r0, [r5] - ldm r5!, {r0, r1, r2, r3} - stm r4!, {r0, r1, r2, r3} - ldm r5, {r0, r1, r2} - stm r4, {r0, r1, r2} - mov r0, #1 - pop {r3, r4, r5, pc} - arm_func_end FUN_02007774 - - arm_func_start FUN_020077b8 -FUN_020077b8: @ 0x020077B8 - push {r4, r5, r6, lr} - mov r5, r0 - mov r4, r1 - bl FUN_020074b8 - mov r1, #0 - str r1, [r5, #0x14] - mov r1, #1 - mov lr, r5 - mov ip, r4 - str r1, [r5, #0x18] - mov r6, r0 - ldm lr!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - ldm lr, {r0, r1, r2} - stm ip, {r0, r1, r2} - ldr r1, [r6, #0x24] - mov r0, r5 - blx r1 - mov ip, r0 - ldm r5!, {r0, r1, r2, r3} - stm r4!, {r0, r1, r2, r3} - ldm r5, {r0, r1, r2} - stm r4, {r0, r1, r2} - mov r0, ip - pop {r4, r5, r6, pc} - arm_func_end FUN_020077b8 - - arm_func_start FUN_0200781c -FUN_0200781c: @ 0x0200781C - push {r4, r5, r6, lr} - mov r5, r0 - mov r4, r1 - bl FUN_020074b8 - mov r1, #0 - mov lr, r5 - mov ip, r4 - str r1, [r5, #0x18] - mov r6, r0 - ldm lr!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - ldm lr, {r0, r1, r2} - stm ip, {r0, r1, r2} - ldr r1, [r6, #0x28] - mov r0, r5 - blx r1 - mov ip, r0 - ldm r5!, {r0, r1, r2, r3} - stm r4!, {r0, r1, r2, r3} - ldm r5, {r0, r1, r2} - stm r4, {r0, r1, r2} - mov r0, ip - pop {r4, r5, r6, pc} - arm_func_end FUN_0200781c - - arm_func_start FUN_02007878 -FUN_02007878: @ 0x02007878 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov r7, r2 - mov sb, r0 - mov r8, r1 - mov r6, r3 - bl FUN_020074b8 - add r1, r7, #3 - bic r1, r1, #3 - mov r4, r0 - cmp r7, r1 - mvnne r0, #0 - popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - mov r5, #0 - mov fp, #0x40000 - b _0200792C -_020078B4: - ldrb r0, [sb, #0xc] - cmp r0, #0 - mvnne r0, #0 - popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - cmp r6, #0x40000 - movlt sl, r6 - movge sl, fp - bl FUN_0207a270 - ldr r3, [r4, #0x2c] - mov r0, sb - mov r1, r7 - mov r2, sl - blx r3 - movs sl, r0 - mvnmi r0, #0 - popmi {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldr r0, [sb, #0x14] - mov lr, sb - add r0, r0, sl - str r0, [sb, #0x14] - mov ip, r8 - ldm lr!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - ldm lr, {r0, r1, r2} - stm ip, {r0, r1, r2} - cmp sl, #0x40000 - add r5, r5, sl - sub r6, r6, sl - add r7, r7, sl - blt _02007934 -_0200792C: - cmp r6, #0 - bgt _020078B4 -_02007934: - ldrb r0, [sb, #0xc] - cmp r0, #0 - mvnne r0, #0 - moveq r0, r5 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_02007878 - - arm_func_start FUN_02007948 -FUN_02007948: @ 0x02007948 - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov r7, r0 - mov r6, r1 - mov r0, #0 - mov lr, r7 - mov ip, r6 - str r0, [r7, #0x14] - mov r5, r2 - mov r4, r3 - ldm lr!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - ldm lr, {r0, r1, r2} - stm ip, {r0, r1, r2} - ldr sb, [sp, #0x20] - ldr r8, [sp, #0x24] - b _020079C8 -_02007988: - cmp r4, r8 - movlt r3, r4 - movge r3, r8 - mov r0, r7 - mov r1, r6 - mov r2, r5 - bl FUN_02007878 - cmp r0, #0 - mvnlt r0, #0 - poplt {r3, r4, r5, r6, r7, r8, sb, pc} - cmp sb, #0 - add r5, r5, r0 - sub r4, r4, r0 - beq _020079C8 - mov r0, sb - bl FUN_02002b50 -_020079C8: - cmp r4, #0 - bgt _02007988 - ldr r0, [r7, #0x14] - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_02007948 - - arm_func_start FUN_020079d8 -FUN_020079d8: @ 0x020079D8 - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #8 - ldr r3, _02007A6C @ =0x020927FC - mov r6, r2 - ldr r4, [r3, #0x2c] - ldr ip, [r3, #0x28] - ldr r2, [sp, #0x20] - add r3, sp, #0 - mov r8, r0 - mov r7, r1 - str ip, [sp] - str r4, [sp, #4] - bl FUN_020076e4 - cmp r0, #0 - beq _02007A60 - ldr r5, [r8, #0x10] - mov r0, r8 - mov r1, r7 - bl FUN_020077b8 - mov r0, r8 - mov r1, r7 - mov r2, r6 - mov r3, r5 - bl FUN_02007878 - mov r4, r0 - mov r0, r8 - mov r1, r7 - bl FUN_0200781c - mov r0, r8 - mov r1, r7 - bl FUN_02007774 - cmp r5, r4 - moveq r0, r4 - beq _02007A64 -_02007A60: - mvn r0, #0 -_02007A64: - add sp, sp, #8 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02007A6C: .4byte 0x020927FC - arm_func_end FUN_020079d8 - - arm_func_start FUN_02007a70 -FUN_02007a70: @ 0x02007A70 - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #8 - ldr r6, _02007B10 @ =0x020927FC - mov r5, r2 - ldr ip, [r6, #0x24] - ldr lr, [r6, #0x20] - mov r4, r3 - ldr r2, [sp, #0x20] - add r3, sp, #0 - mov r7, r0 - mov r6, r1 - str lr, [sp] - str ip, [sp, #4] - bl FUN_020076e4 - cmp r0, #0 - beq _02007B04 - ldr r8, [r7, #0x10] - mov r0, r7 - cmp r4, r8 - movle r8, r4 - mov r1, r6 - bl FUN_020077b8 - mov r0, r7 - mov r1, r6 - mov r2, r5 - mov r3, r8 - bl FUN_02007878 - mov r4, r0 - mov r0, r7 - mov r1, r6 - bl FUN_0200781c - mov r0, r7 - mov r1, r6 - bl FUN_02007774 - cmp r8, r4 - moveq r0, r4 - beq _02007B08 -_02007B04: - mvn r0, #0 -_02007B08: - add sp, sp, #8 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02007B10: .4byte 0x020927FC - arm_func_end FUN_02007a70 - - arm_func_start FUN_02007b14 -FUN_02007b14: @ 0x02007B14 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0x10 - ldr r3, _02007BC8 @ =0x020927FC - mov r4, r2 - ldr ip, [r3, #0x1c] - ldr lr, [r3, #0x18] - ldr r2, [sp, #0x28] - add r3, sp, #8 - mov r6, r0 - mov r5, r1 - str lr, [sp, #8] - str ip, [sp, #0xc] - bl FUN_020076e4 - cmp r0, #0 - beq _02007BBC - ldr r0, [sp, #0x2c] - ldr r7, [r6, #0x10] - cmp r0, #0 - beq _02007B64 - bl FUN_02002b50 -_02007B64: - mov r0, r6 - mov r1, r5 - bl FUN_020077b8 - ldr r0, [sp, #0x2c] - ldr ip, [sp, #0x30] - str r0, [sp] - mov r0, r6 - mov r1, r5 - mov r2, r4 - mov r3, r7 - str ip, [sp, #4] - bl FUN_02007948 - mov r4, r0 - mov r0, r6 - mov r1, r5 - bl FUN_0200781c - mov r0, r6 - mov r1, r5 - bl FUN_02007774 - cmp r7, r4 - moveq r0, r4 - beq _02007BC0 -_02007BBC: - mvn r0, #0 -_02007BC0: - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02007BC8: .4byte 0x020927FC - arm_func_end FUN_02007b14 - - arm_func_start FUN_02007bcc -FUN_02007bcc: @ 0x02007BCC - push {r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #8 - ldr r4, _02007C9C @ =0x020927FC - mov r5, r2 - ldr r8, [r4, #0x34] - ldr r4, [r4, #0x30] - add r6, sp, #0 - mov r2, r3 - mov r3, r6 - str r4, [sp] - mov r7, r0 - mov r6, r1 - str r8, [sp, #4] - mov r4, #0 - bl FUN_020076e4 - cmp r0, #0 - beq _02007C90 - ldr sl, [r7, #0x10] - ldr r0, [sp, #0x28] - ldr r2, [sp, #0x2c] - mov r1, sl - str sl, [r5, #4] - bl MemLocateSet - mov sb, r0 - mov r0, r7 - mov r1, r6 - str sb, [r5] - bl FUN_020077b8 - ldr r2, [r5] - mov r0, r7 - mov r1, r6 - mov r3, sl - bl FUN_02007878 - mov r8, r0 - mov r0, r7 - mov r1, r6 - bl FUN_0200781c - mov r0, r7 - mov r1, r6 - bl FUN_02007774 - cmp sl, r8 - moveq r4, #1 - beq _02007C90 - mov r0, sb - bl MemFree - mov r0, r4 - str r0, [r5] - sub r0, r0, #1 - str r0, [r5, #4] -_02007C90: - mov r0, r4 - add sp, sp, #8 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_02007C9C: .4byte 0x020927FC - arm_func_end FUN_02007bcc - - arm_func_start FUN_02007ca0 -FUN_02007ca0: @ 0x02007CA0 - push {r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #0x10 - ldr r4, _02007D90 @ =0x020927FC - mov r7, r2 - ldr r6, [r4, #4] - ldr r4, [r4] - add r5, sp, #8 - mov r2, r3 - str r4, [sp, #8] - mov r3, r5 - mov sb, r0 - mov r8, r1 - str r6, [sp, #0xc] - mov r4, #0 - bl FUN_020076e4 - cmp r0, #0 - beq _02007D84 - ldr r5, [sb, #0x10] - ldr r0, [sp, #0x30] - ldr r2, [sp, #0x34] - mov r1, r5 - str r5, [r7, #4] - bl MemLocateSet - mov r6, r0 - ldr r0, [sp, #0x38] - str r6, [r7] - cmp r0, #0 - beq _02007D14 - bl FUN_02002b50 -_02007D14: - mov r0, sb - mov r1, r8 - bl FUN_020077b8 - ldr r1, [sp, #0x38] - ldr r0, [sp, #0x3c] - str r1, [sp] - str r0, [sp, #4] - ldr r2, [r7] - mov r0, sb - mov r1, r8 - mov r3, r5 - bl FUN_02007948 - mov sl, r0 - mov r0, sb - mov r1, r8 - bl FUN_0200781c - mov r0, sb - mov r1, r8 - bl FUN_02007774 - cmp r5, sl - moveq r4, #1 - beq _02007D84 - mov r0, r6 - bl MemFree - mov r0, #0 - str r0, [r7] - sub r0, r0, #1 - str r0, [r7, #4] -_02007D84: - mov r0, r4 - add sp, sp, #0x10 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_02007D90: .4byte 0x020927FC - arm_func_end FUN_02007ca0 - - arm_func_start FUN_02007d94 -FUN_02007d94: @ 0x02007D94 - push {r4, r5, r6, r7, lr} - sub sp, sp, #0xec - mov r7, r0 - mov r6, r1 - add r0, sp, #0 - mov r1, r2 - mov r5, r3 - bl FUN_02007124 - add r0, sp, #0xc - bl FUN_0200746c - mov r4, r0 - ldr r1, [r4] - mov r0, #0 - str r1, [r7] - ldr r1, [sp, #4] - mov lr, r7 - str r1, [r7, #4] - str r0, [r7, #8] - mov ip, r6 - ldm lr!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - ldm lr, {r0, r1, r2} - stm ip, {r0, r1, r2} - bl FUN_0207a270 - ldr r4, [r4, #0x34] - ldr r3, [sp, #0x100] - mov r2, r5 - mov r0, r7 - add r1, sp, #0 - blx r4 - mov r4, r0 - ldm r7!, {r0, r1, r2, r3} - stm r6!, {r0, r1, r2, r3} - ldm r7, {r0, r1, r2} - stm r6, {r0, r1, r2} - mov r0, r4 - add sp, sp, #0xec - pop {r4, r5, r6, r7, pc} - arm_func_end FUN_02007d94 - - arm_func_start FUN_02007e2c -FUN_02007e2c: @ 0x02007E2C - push {r3, r4, r5, r6, lr} - sub sp, sp, #0xec - mov r5, r0 - mov r4, r1 - add r0, sp, #0 - mov r1, r2 - bl FUN_02007124 - add r0, sp, #0xc - bl FUN_0200746c - mov r6, r0 - ldr r1, [r6] - mov r0, #0 - str r1, [r5] - ldr r1, [sp, #4] - mov lr, r5 - str r1, [r5, #4] - str r0, [r5, #8] - mov ip, r4 - ldm lr!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - ldm lr, {r0, r1, r2} - stm ip, {r0, r1, r2} - ldr r2, [r6, #0x38] - mov r0, r5 - add r1, sp, #0 - blx r2 - mov ip, r0 - ldm r5!, {r0, r1, r2, r3} - stm r4!, {r0, r1, r2, r3} - ldm r5, {r0, r1, r2} - stm r4, {r0, r1, r2} - mov r0, ip - add sp, sp, #0xec - pop {r3, r4, r5, r6, pc} - arm_func_end FUN_02007e2c - - arm_func_start FUN_02007eb4 -FUN_02007eb4: @ 0x02007EB4 - bx lr - arm_func_end FUN_02007eb4 -_02007EB8: - .byte 0x01, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x08, 0x40, 0x2D, 0xE9, 0x0C, 0x00, 0x9F, 0xE5, 0x5C, 0xEB, 0xFF, 0xEB, 0x04, 0x00, 0x9F, 0xE5 - .byte 0xF0, 0xEB, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x68, 0xF3, 0x0A, 0x02, 0x10, 0x40, 0x2D, 0xE9 - .byte 0x20, 0x00, 0x9F, 0xE5, 0x72, 0xEB, 0xFF, 0xEB, 0xBE, 0xF1, 0x01, 0xEB, 0xFF, 0x40, 0x00, 0xE2 - .byte 0x10, 0x00, 0x9F, 0xE5, 0xE7, 0xEB, 0xFF, 0xEB, 0x00, 0x00, 0x54, 0xE3, 0x02, 0x00, 0xA0, 0x13 - .byte 0x00, 0x00, 0xA0, 0x03, 0x10, 0x80, 0xBD, 0xE8, 0x68, 0xF3, 0x0A, 0x02, 0x38, 0x40, 0x2D, 0xE9 - .byte 0x80, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0xA8, 0x00, 0x9F, 0xE5, 0x01, 0x40, 0xA0, 0xE1 - .byte 0x63, 0xEB, 0xFF, 0xEB, 0x40, 0x00, 0x85, 0xE2, 0x2D, 0xDD, 0x01, 0xEB, 0x00, 0x10, 0x8D, 0xE2 - .byte 0x04, 0x00, 0xA0, 0xE1, 0x00, 0xFD, 0xFF, 0xEB, 0x00, 0x10, 0x8D, 0xE2, 0x40, 0x00, 0x85, 0xE2 - .byte 0xDF, 0xDD, 0x01, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x1A, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x75, 0xEF, 0xFF, 0xEB, 0x6C, 0x00, 0x9F, 0xE5, 0xCE, 0xEB, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x16, 0x00, 0x00, 0xEA, 0x1C, 0x00, 0x85, 0xE2, 0x11, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x1C, 0x00, 0x85, 0xE5, 0x68, 0x20, 0x95, 0xE5, 0x64, 0x10, 0x95, 0xE5, 0x20, 0x00, 0x85, 0xE2 - .byte 0x01, 0x10, 0x42, 0xE0, 0x30, 0x10, 0x85, 0xE5, 0x6C, 0x30, 0x95, 0xE5, 0x64, 0x20, 0x95, 0xE5 - .byte 0x5C, 0x10, 0x84, 0xE2, 0x02, 0x20, 0x43, 0xE0, 0x34, 0x20, 0x85, 0xE5, 0xBC, 0x05, 0x02, 0xEB - .byte 0x00, 0x20, 0xA0, 0xE3, 0x88, 0x20, 0x85, 0xE5, 0x30, 0x10, 0x95, 0xE5, 0x14, 0x00, 0x9F, 0xE5 - .byte 0x10, 0x10, 0x85, 0xE5, 0x14, 0x20, 0x85, 0xE5, 0xB6, 0xEB, 0xFF, 0xEB, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x80, 0xD0, 0x8D, 0xE2, 0x38, 0x80, 0xBD, 0xE8, 0x68, 0xF3, 0x0A, 0x02, 0xF8, 0x40, 0x2D, 0xE9 - .byte 0x80, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0x9C, 0x00, 0x9F, 0xE5, 0x01, 0x40, 0xA0, 0xE1 - .byte 0x33, 0xEB, 0xFF, 0xEB, 0x40, 0x00, 0x85, 0xE2, 0xFD, 0xDC, 0x01, 0xEB, 0x00, 0x10, 0x8D, 0xE2 - .byte 0x04, 0x00, 0xA0, 0xE1, 0xD0, 0xFC, 0xFF, 0xEB, 0x01, 0x60, 0xA0, 0xE3, 0x00, 0x70, 0x8D, 0xE2 - .byte 0x07, 0x10, 0xA0, 0xE1, 0x40, 0x00, 0x85, 0xE2, 0xAD, 0xDD, 0x01, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x02, 0x00, 0x00, 0x1A, 0x06, 0x00, 0xA0, 0xE1, 0x43, 0xEF, 0xFF, 0xEB, 0xF7, 0xFF, 0xFF, 0xEA - .byte 0x1C, 0x00, 0x85, 0xE2, 0xE2, 0xFC, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x1C, 0x00, 0x85, 0xE5 - .byte 0x68, 0x20, 0x95, 0xE5, 0x64, 0x10, 0x95, 0xE5, 0x20, 0x00, 0x85, 0xE2, 0x01, 0x10, 0x42, 0xE0 - .byte 0x30, 0x10, 0x85, 0xE5, 0x6C, 0x30, 0x95, 0xE5, 0x64, 0x20, 0x95, 0xE5, 0x5C, 0x10, 0x84, 0xE2 - .byte 0x02, 0x20, 0x43, 0xE0, 0x34, 0x20, 0x85, 0xE5, 0x8D, 0x05, 0x02, 0xEB, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x88, 0x20, 0x85, 0xE5, 0x30, 0x10, 0x95, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x10, 0x10, 0x85, 0xE5 - .byte 0x14, 0x20, 0x85, 0xE5, 0x80, 0xD0, 0x8D, 0xE2, 0xF8, 0x80, 0xBD, 0xE8, 0x68, 0xF3, 0x0A, 0x02 - - arm_func_start FUN_02008080 -FUN_02008080: @ 0x02008080 - push {r3, lr} - add r0, r0, #0x40 - bl FUN_0207f70c - cmp r0, #0 - bne _0200809C - mov r0, #1 - bl CardPullOutWithStatus -_0200809C: - ldr r0, _020080AC @ =0x020AF368 - bl FUN_02002e98 - mov r0, #1 - pop {r3, pc} - .align 2, 0 -_020080AC: .4byte 0x020AF368 - arm_func_end FUN_02008080 -_020080B0: - .byte 0x01, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_020080c0 -FUN_020080c0: @ 0x020080C0 - push {r4, r5, r6, r7, r8, lr} - mov r4, r0 - ldr r3, [r4, #0x30] - ldr r0, [r4, #0x88] - mov r7, r2 - sub r0, r3, r0, lsl #11 - cmp r7, r0 - mov r8, r1 - movgt r7, r0 - mov r6, #0 - mov r5, #1 - b _02008114 -_020080F0: - add r0, r4, #0x40 - add r1, r8, r6 - sub r2, r7, r6 - bl FUN_0207f818 - cmp r0, #0 - addge r6, r6, r0 - bge _02008114 - mov r0, r5 - bl CardPullOutWithStatus -_02008114: - cmp r7, r6 - bgt _020080F0 - asr r0, r6, #0xa - ldr r1, [r4, #0x88] - add r0, r6, r0, lsr #21 - add r1, r1, r0, asr #11 - mov r0, r6 - str r1, [r4, #0x88] - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_020080c0 - - arm_func_start FUN_02008138 -FUN_02008138: @ 0x02008138 - push {r3, lr} - str r1, [r0, #0x88] - add r0, r0, #0x40 - lsl r1, r1, #0xb - mov r2, #0 - bl FUN_0207f828 - cmp r0, #0 - bne _02008160 - mov r0, #1 - bl CardPullOutWithStatus -_02008160: - mov r0, #1 - pop {r3, pc} - arm_func_end FUN_02008138 - - arm_func_start DataTransferInit -DataTransferInit: @ 0x02008168 - push {r3, lr} - ldr r0, _0200818C @ =0x020AF368 - bl FUN_02002cb4 - bl FUN_02002580 - mov r1, #0x13 - bl FUN_020027f8 - ldr r1, _02008190 @ =0x020AF360 - str r0, [r1, #4] - pop {r3, pc} - .align 2, 0 -_0200818C: .4byte 0x020AF368 -_02008190: .4byte 0x020AF360 - arm_func_end DataTransferInit - - arm_func_start DataTransferStop -DataTransferStop: @ 0x02008194 - push {r4, lr} - ldr r1, _020081C0 @ =0x020AF360 - ldr r0, _020081C4 @ =0x020AF368 - ldr r4, [r1, #4] - mov r2, #0 - str r2, [r1, #4] - bl FUN_02002e98 - bl FUN_02002580 - mov r1, r4 - bl FUN_020027f8 - pop {r4, pc} - .align 2, 0 -_020081C0: .4byte 0x020AF360 -_020081C4: .4byte 0x020AF368 - arm_func_end DataTransferStop - - arm_func_start FUN_020081c8 -FUN_020081c8: @ 0x020081C8 - ldr ip, _020081D4 @ =FUN_02002cb4 - ldr r0, _020081D8 @ =0x020AF368 - bx ip - .align 2, 0 -_020081D4: .4byte FUN_02002cb4 -_020081D8: .4byte 0x020AF368 - arm_func_end FUN_020081c8 - - arm_func_start FUN_020081dc -FUN_020081dc: @ 0x020081DC - ldr ip, _020081E8 @ =FUN_02002e98 - ldr r0, _020081EC @ =0x020AF368 - bx ip - .align 2, 0 -_020081E8: .4byte FUN_02002e98 -_020081EC: .4byte 0x020AF368 - arm_func_end FUN_020081dc - - arm_func_start FUN_020081f0 -FUN_020081f0: @ 0x020081F0 - ldr ip, _020081FC @ =FUN_02002e10 - ldr r0, _02008200 @ =0x020AF368 - bx ip - .align 2, 0 -_020081FC: .4byte FUN_02002e10 -_02008200: .4byte 0x020AF368 - arm_func_end FUN_020081f0 - - arm_func_start FileInitVeneer -FileInitVeneer: @ 0x02008204 - ldr ip, _0200820C @ =FileInit - bx ip - .align 2, 0 -_0200820C: .4byte FileInit - arm_func_end FileInitVeneer - - arm_func_start FileOpen -FileOpen: @ 0x02008210 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - mov r4, #1 -_02008220: - mov r0, r6 - mov r1, r5 - bl FUN_0207f6c4 - cmp r0, #0 - popne {r4, r5, r6, pc} - mov r0, r4 - bl CardPullOutWithStatus - b _02008220 - arm_func_end FileOpen -_02008240: - .byte 0x70, 0x80, 0xBD, 0xE8 - - arm_func_start FileGetSize -FileGetSize: @ 0x02008244 - ldr r1, [r0, #0x28] - ldr r0, [r0, #0x24] - sub r0, r1, r0 - bx lr - arm_func_end FileGetSize - - arm_func_start FileRead -FileRead: @ 0x02008254 - push {r4, r5, r6, r7, r8, lr} - mov r8, r0 - mov r7, r1 - mov r6, r2 - mov r5, #0 - mov r4, #1 - b _02008298 -_02008270: - mov r0, r8 - mov r1, r7 - sub r2, r6, r5 - bl FUN_0207f818 - cmp r0, #0 - addge r5, r5, r0 - addge r7, r7, r0 - bge _02008298 - mov r0, r4 - bl CardPullOutWithStatus -_02008298: - cmp r6, r5 - bgt _02008270 - mov r0, r5 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FileRead - - arm_func_start FileSeek -FileSeek: @ 0x020082A8 - push {r3, lr} - bl FUN_0207f828 - cmp r0, #0 - popne {r3, pc} - mov r0, #1 - bl CardPullOutWithStatus - pop {r3, pc} - arm_func_end FileSeek - - arm_func_start FileClose -FileClose: @ 0x020082C4 - push {r3, lr} - bl FUN_0207f70c - cmp r0, #0 - popne {r3, pc} - mov r0, #1 - bl CardPullOutWithStatus - pop {r3, pc} - arm_func_end FileClose - - arm_func_start FUN_020082e0 -FUN_020082e0: @ 0x020082E0 - ldr r0, _020082F0 @ =0x020AF360 - mov r1, #2 - str r1, [r0] - bx lr - .align 2, 0 -_020082F0: .4byte 0x020AF360 - arm_func_end FUN_020082e0 -_020082F4: - .byte 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x80, 0xA0, 0xE1, 0x0C, 0x01, 0x9F, 0xE5 - .byte 0x08, 0x10, 0xA0, 0xE3, 0x0A, 0xEB, 0xFF, 0xEB, 0x04, 0x01, 0x9F, 0xE5, 0x4B, 0xEA, 0xFF, 0xEB - .byte 0xFC, 0x00, 0x9F, 0xE5, 0x08, 0x10, 0xA0, 0xE3, 0x63, 0xEA, 0xFF, 0xEB, 0xF0, 0x00, 0x9F, 0xE5 - .byte 0xDC, 0xEA, 0xFF, 0xEB, 0x08, 0x10, 0xA0, 0xE3, 0xE8, 0x00, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE1 - .byte 0xD9, 0xE9, 0xFF, 0xEB, 0xE0, 0x00, 0x9F, 0xE5, 0x08, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3 - .byte 0xD5, 0xE9, 0xFF, 0xEB, 0xD4, 0x00, 0x9F, 0xE5, 0x80, 0xE9, 0xFF, 0xEB, 0xD0, 0x00, 0x9F, 0xE5 - .byte 0x3A, 0xEA, 0xFF, 0xEB, 0xCC, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3 - .byte 0xCD, 0xE9, 0xFF, 0xEB, 0x02, 0x0B, 0xA0, 0xE3, 0xF3, 0x10, 0x40, 0xE2, 0x7F, 0xE3, 0xFF, 0xEB - .byte 0x00, 0x60, 0xA0, 0xE1, 0xB0, 0x00, 0x9F, 0xE5, 0x00, 0x70, 0xA0, 0xE3, 0xAC, 0x40, 0x9F, 0xE5 - .byte 0x00, 0x60, 0x80, 0xE5, 0x07, 0x50, 0xA0, 0xE1, 0x06, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1 - .byte 0x05, 0x20, 0xA0, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0x78, 0x01, 0x00, 0xEB, 0x01, 0x70, 0x87, 0xE2 - .byte 0x08, 0x00, 0x57, 0xE3, 0x01, 0x6C, 0x86, 0xE2, 0xF6, 0xFF, 0xFF, 0xBA, 0x08, 0x00, 0xA0, 0xE1 - .byte 0x13, 0xFB, 0xFF, 0xEB, 0xCF, 0xFA, 0xFF, 0xEB, 0xF0, 0xFB, 0xFF, 0xEB, 0xF0, 0xFB, 0xFF, 0xEB - .byte 0x6C, 0x00, 0x9F, 0xE5, 0x8C, 0x0F, 0x00, 0xEB, 0x02, 0xFC, 0xFF, 0xEB, 0x64, 0x00, 0x9F, 0xE5 - .byte 0x89, 0x0F, 0x00, 0xEB, 0x60, 0x00, 0x9F, 0xE5, 0x60, 0x10, 0x9F, 0xE5, 0x08, 0x00, 0x90, 0xE5 - .byte 0x62, 0xE3, 0xFF, 0xEB, 0x50, 0x20, 0x9F, 0xE5, 0x54, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0x82, 0xE5 - .byte 0x50, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0xDE, 0xE8, 0xFF, 0xEB, 0x20, 0x00, 0x9F, 0xE5 - .byte 0xA4, 0xEA, 0xFF, 0xEB, 0x3C, 0x00, 0x9F, 0xE5, 0xF6, 0xE8, 0xFF, 0xEB, 0xF0, 0x81, 0xBD, 0xE8 - .byte 0x9C, 0x36, 0x2A, 0x02, 0xE4, 0xF3, 0x0A, 0x02, 0x90, 0xF4, 0x0A, 0x02, 0x3C, 0xF5, 0x0A, 0x02 - .byte 0x2C, 0xF4, 0x0A, 0x02, 0x08, 0xF4, 0x0A, 0x02, 0xE8, 0xF5, 0x0A, 0x02, 0x98, 0x36, 0x2A, 0x02 - .byte 0x78, 0x29, 0x09, 0x02, 0x7C, 0x29, 0x09, 0x02, 0x9C, 0x29, 0x09, 0x02, 0xD0, 0xF3, 0x0A, 0x02 - .byte 0x0D, 0x07, 0x00, 0x00, 0xD0, 0xF3, 0x0A, 0x02, 0xC4, 0x36, 0x2A, 0x02 - - arm_func_start FUN_0200844c -FUN_0200844c: @ 0x0200844C - push {r4, lr} - mov r4, r0 - bl FUN_02006ed4 - mov r0, #0 - str r0, [r4, #0x1c] - str r0, [r4, #0x20] - str r0, [r4, #0x24] - pop {r4, pc} - arm_func_end FUN_0200844c - - arm_func_start FUN_0200846c -FUN_0200846c: @ 0x0200846C - mov r2, #0 - str r2, [r0] - sub r1, r2, #1 - stmib r0, {r1, r2} - str r1, [r0, #0xc] - str r1, [r0, #0x10] - mov r1, #4 - str r1, [r0, #0x14] - bx lr - arm_func_end FUN_0200846c - - arm_func_start FUN_02008490 -FUN_02008490: @ 0x02008490 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0xb0 - ldr r0, _02008928 @ =0x020AF408 - bl FUN_02002cb4 - ldr r0, _0200892C @ =0x02092908 - ldr r1, [r0] - ldr r0, [r0, #4] - str r1, [sp, #0x10] - str r0, [sp, #0x14] -_020084B4: - ldr r0, _02008930 @ =0x022A369C - add r1, sp, #0x20 - mov r2, #1 - bl FUN_02002f98 - ldr r0, _02008934 @ =0x020AF3E4 - bl FUN_02002cb4 - ldr r1, [sp, #0x20] - ldr r0, [r1] - cmp r0, #1 - beq _020088F8 - ldr sb, [r1, #4] - mov r1, #5 - add r0, sp, #0x24 - str r1, [sb, #0x24] - bl thunk_FUN_02006ed4 - mov r6, #0 - add r1, sp, #0x24 - ldr r0, _02008934 @ =0x020AF3E4 - str r1, [sb, #0x1c] - mov r7, r6 - mov r8, r6 - bl FUN_02002e98 - ldr r0, [sb, #0x20] - cmp r0, #0xe - addls pc, pc, r0, lsl #2 - b _02008894 -_0200851C: @ jump table - b _02008894 @ case 0 - b _02008894 @ case 1 - b _02008558 @ case 2 - b _020085BC @ case 3 - b _020085E0 @ case 4 - b _02008670 @ case 5 - b _0200868C @ case 6 - b _020086DC @ case 7 - b _02008724 @ case 8 - b _0200876C @ case 9 - b _020087B4 @ case 10 - b _020087F0 @ case 11 - b _02008834 @ case 12 - b _02008860 @ case 13 - b _02008880 @ case 14 -_02008558: - add r0, sp, #0x24 - mov r1, sb - bl FUN_020075f4 - movs r6, r0 - beq _02008894 - mov r1, r7 - ldr r0, _02008928 @ =0x020AF408 - str r1, [sb, #0x24] - bl FUN_02002e98 - ldr r0, [sp, #0x20] - bl FUN_02008b78 - ldr r0, _02008938 @ =0x020AF5E8 - bl FUN_02002b7c - add r0, sp, #0x24 - mov r1, sb - bl FUN_02007624 - cmp r0, #0 - beq _020085B4 - mov r1, r7 - str r1, [sb, #0x1c] - ldr r0, _02008938 @ =0x020AF5E8 - str r1, [sb, #0x24] - bl FUN_02002b20 -_020085B4: - mov sb, #0 - b _02008894 -_020085BC: - ldr r1, [sp, #0x20] - mov r0, sb - ldr r2, [r1, #0x10] - ldr r3, [r1, #0xc] - add r1, r1, #0x28 - mov r8, #1 - blx r3 - mov r6, r0 - b _02008894 -_020085E0: - ldr r5, [sp, #0x10] - ldr r4, [sp, #0x14] - add sl, sp, #0x18 - add fp, sp, #0x24 -_020085F0: - ldr r2, [sp, #0x20] - mov r0, fp - mov r1, sb - mov r3, sl - add r2, r2, #0x28 - str r5, [sp, #0x18] - str r4, [sp, #0x1c] - bl FUN_020076e4 - movs r6, r0 - beq _020085F0 - cmp r6, #0 - beq _02008894 - mov r1, #0 - ldr r0, _02008928 @ =0x020AF408 - str r1, [sb, #0x24] - bl FUN_02002e98 - ldr r0, [sp, #0x20] - bl FUN_02008b78 - ldr r0, _02008938 @ =0x020AF5E8 - bl FUN_02002b7c - add r0, sp, #0x24 - mov r1, sb - bl FUN_02007774 - cmp r0, #0 - beq _02008668 - mov r1, #0 - str r1, [sb, #0x1c] - ldr r0, _02008938 @ =0x020AF5E8 - str r1, [sb, #0x24] - bl FUN_02002b20 -_02008668: - mov sb, #0 - b _02008894 -_02008670: - ldr r0, [sp, #0x20] - ldr r4, [r0, #0x10] - add r0, r0, #0x28 - bl FUN_02007578 - str r0, [r4] - mov r6, #1 - b _02008894 -_0200868C: - ldr r3, [sp, #0x20] - add r0, sp, #0x24 - mov r1, sb - add r2, r3, #0x28 - ldr r4, [r3, #0x10] - bl FUN_02007654 - cmp r0, #0 - beq _020086C4 - ldr r1, [sb] - mov r0, r6 - str r1, [r4] - ldr r1, [sb, #0x10] - str r1, [r4, #0xc] - b _020086D0 -_020086C4: - mov r0, r4 - bl FUN_0200846c - mov r0, #2 -_020086D0: - str r0, [r4, #0x14] - mov r6, #1 - b _02008894 -_020086DC: - mov r4, r6 - mov r5, #1 - add r7, sp, #0x24 -_020086E8: - ldr r3, [sp, #0x20] - mov r0, r7 - add r1, r3, #0x28 - str r1, [sp] - ldr r2, [r3, #0xc] - ldr r3, [r3, #0x14] - mov r1, sb - bl FUN_02007a70 - cmp r0, #0 - movge r0, r5 - movlt r0, r4 - ands r6, r0, #0xff - beq _020086E8 - ldrb r7, [sp, #0x30] - b _02008894 -_02008724: - mov r4, r6 - mov r5, #1 - add r7, sp, #0x24 -_02008730: - ldr r3, [sp, #0x20] - mov r0, r7 - add r1, r3, #0x28 - str r1, [sp] - ldr r2, [r3, #0xc] - ldr r3, [r3, #0x14] - mov r1, sb - bl FUN_020079d8 - cmp r0, #0 - movge r0, r5 - movlt r0, r4 - ands r6, r0, #0xff - beq _02008730 - ldrb r7, [sp, #0x30] - b _02008894 -_0200876C: - ldr r3, [sp, #0x20] - add r0, sp, #0x24 - add r1, r3, #0x28 - str r1, [sp] - ldr r2, [r3, #0x1c] - mov r1, sb - str r2, [sp, #4] - ldr r2, [r3, #0x18] - str r2, [sp, #8] - ldr r2, [r3, #0xc] - ldr r3, [r3, #0x14] - bl FUN_02007b14 - cmp r0, #0 - movge r0, #1 - movlt r0, r6 - and r6, r0, #0xff - ldrb r7, [sp, #0x30] - b _02008894 -_020087B4: - add r4, sp, #0x24 -_020087B8: - ldr r2, [sp, #0x20] - mov r0, r4 - ldr r1, [r2, #0x20] - add r3, r2, #0x28 - str r1, [sp] - ldr r1, [r2, #0x24] - str r1, [sp, #4] - ldr r1, [r2, #4] - ldr r2, [r2, #0x10] - bl FUN_02007bcc - movs r6, r0 - beq _020087B8 - ldrb r7, [sp, #0x30] - b _02008894 -_020087F0: - ldr r2, [sp, #0x20] - add r0, sp, #0x24 - ldr r1, [r2, #0x20] - add r3, r2, #0x28 - str r1, [sp] - ldr r1, [r2, #0x24] - str r1, [sp, #4] - ldr r1, [r2, #0x1c] - str r1, [sp, #8] - ldr r1, [r2, #0x14] - str r1, [sp, #0xc] - ldr r1, [r2, #4] - ldr r2, [r2, #0x10] - bl FUN_02007ca0 - mov r6, r0 - ldrb r7, [sp, #0x30] - b _02008894 -_02008834: - ldr r3, [sp, #0x20] - add r0, sp, #0x24 - ldr r1, [r3, #0x14] - add r2, r3, #0x28 - str r1, [sp] - ldr r1, [r3, #4] - ldr r3, [r3, #0x10] - bl FUN_02007d94 - mov r6, r0 - mov r8, #1 - b _02008894 -_02008860: - ldr r2, [sp, #0x20] - add r0, sp, #0x24 - ldr r1, [r2, #4] - add r2, r2, #0x28 - bl FUN_02007e2c - mov r6, r0 - mov r8, #1 - b _02008894 -_02008880: - ldr r0, [sp, #0x20] - add r0, r0, #0x28 - bl FUN_020075b0 - mov r6, r0 - mov r8, #1 -_02008894: - ldr r0, _02008934 @ =0x020AF3E4 - bl FUN_02002cb4 - cmp sb, #0 - beq _020088DC - mov r0, #0 - str r0, [sb, #0x1c] - cmp r7, #0 - movne r0, #1 - strne r0, [sb, #0x24] - bne _020088DC - cmp r6, #0 - strne r0, [sb, #0x24] - bne _020088DC - cmp r8, #0 - movne r0, #2 - strne r0, [sb, #0x24] - moveq r0, #3 - streq r0, [sb, #0x24] -_020088DC: - ldr r0, [sp, #0x20] - ldr r0, [r0, #0x1c] - cmp r0, #0 - beq _020088F0 - bl FUN_02002b50 -_020088F0: - ldr r0, [sp, #0x20] - bl FUN_02008b78 -_020088F8: - mov r1, #0 - ldr r0, [sp, #0x20] - ldr r3, _0200893C @ =0x02092978 - mov r2, r1 - bl FUN_02008980 - ldr r0, _02008934 @ =0x020AF3E4 - bl FUN_02002e98 - ldr r0, _02008940 @ =0x020AF42C - bl FUN_020029b8 - ldr r0, _02008944 @ =0x020AF490 - bl FUN_02002b20 - b _020084B4 - .align 2, 0 -_02008928: .4byte 0x020AF408 -_0200892C: .4byte 0x02092908 -_02008930: .4byte 0x022A369C -_02008934: .4byte 0x020AF3E4 -_02008938: .4byte 0x020AF5E8 -_0200893C: .4byte 0x02092978 -_02008940: .4byte 0x020AF42C -_02008944: .4byte 0x020AF490 - arm_func_end FUN_02008490 - - arm_func_start FUN_02008948 -FUN_02008948: @ 0x02008948 - push {r4, lr} - mov r4, r0 - ldr r0, _0200897C @ =0x020AF3E4 - bl FUN_02002cb4 - ldr r0, [r4, #0x24] - cmp r0, #4 - cmpne r0, #5 - moveq r4, #1 - ldr r0, _0200897C @ =0x020AF3E4 - movne r4, #0 - bl FUN_02002e98 - and r0, r4, #0xff - pop {r4, pc} - .align 2, 0 -_0200897C: .4byte 0x020AF3E4 - arm_func_end FUN_02008948 - - arm_func_start FUN_02008980 -FUN_02008980: @ 0x02008980 - push {r4, lr} - mov r4, r0 - str r2, [r4] - cmp r3, #0 - str r1, [r4, #4] - moveq r0, #0 - strbeq r0, [r4, #0x28] - beq _020089AC - mov r1, r3 - add r0, r4, #0x28 - bl Strcpy -_020089AC: - mov r0, #0 - strb r0, [r4, #9] - strb r0, [r4, #8] - str r0, [r4, #0xc] - str r0, [r4, #0x10] - str r0, [r4, #0x14] - str r0, [r4, #0x18] - str r0, [r4, #0x1c] - str r0, [r4, #0x20] - str r0, [r4, #0x24] - pop {r4, pc} - arm_func_end FUN_02008980 - - arm_func_start FUN_020089d8 -FUN_020089d8: @ 0x020089D8 - push {r3, r4, r5, lr} - mov r4, r0 - ldr r0, _02008A78 @ =0x020AF3E4 - ldr r1, _02008A7C @ =0x020AF490 - bl FUN_02002d80 - cmp r0, #0 - bne _02008A00 - ldr r0, _02008A78 @ =0x020AF3E4 - ldr r1, _02008A7C @ =0x020AF490 - bl FUN_02002d14 -_02008A00: - ldr r0, _02008A80 @ =0x022A3698 - mov r3, #0 - ldr r5, [r0] - mov r0, r3 - mov r1, #1 - b _02008A60 -_02008A18: - ldr r2, [r5] - cmp r2, #0 - moveq r2, r1 - movne r2, r0 - tst r2, #0xff - beq _02008A58 - mov lr, r5 - mov ip, #0x10 -_02008A38: - ldm r4!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _02008A38 - ldr r0, _02008A78 @ =0x020AF3E4 - bl FUN_02002e98 - mov r0, r5 - pop {r3, r4, r5, pc} -_02008A58: - add r3, r3, #1 - add r5, r5, #0x100 -_02008A60: - cmp r3, #8 - blt _02008A18 - ldr r0, _02008A78 @ =0x020AF3E4 - bl FUN_02002e98 - mov r0, #0 - pop {r3, r4, r5, pc} - .align 2, 0 -_02008A78: .4byte 0x020AF3E4 -_02008A7C: .4byte 0x020AF490 -_02008A80: .4byte 0x022A3698 - arm_func_end FUN_020089d8 - - arm_func_start FUN_02008a84 -FUN_02008a84: @ 0x02008A84 - push {r3, r4, r5, r6, lr} - sub sp, sp, #0x24 - mov r5, r0 - ldr r4, [r5, #4] - mov r0, r4 - bl FUN_02008948 - cmp r0, #0 - bne _02008B00 - ldr r1, [r5] - mov r0, r5 - str r1, [r4, #0x20] - mov r1, #4 - str r1, [r4, #0x24] - bl FUN_020089d8 - mov r1, r0 - mov r2, #1 - ldr r0, _02008B64 @ =0x022A369C - strb r2, [r1, #8] - bl FUN_02002f7c - ldr r6, _02008B68 @ =0x020AF53C -_02008AD4: - mov r0, r6 - bl FUN_02002b7c - ldr r3, [r4, #0x24] - cmp r3, #4 - bne _02008AF4 - mov r0, r6 - bl FUN_02002b20 - b _02008AD4 -_02008AF4: - cmp r3, #2 - bhi _02008B04 - b _02008B5C -_02008B00: - mov r3, #5 -_02008B04: - ldr r0, _02008B6C @ =0x02092908 - ldr r2, _02008B70 @ =0x020AF454 - ldr r1, [r0, #0x24] - ldr r0, [r0, #0x20] - str r1, [sp, #0x20] - str r0, [sp, #0x1c] - ldr ip, [r5] - ldr r1, _02008B74 @ =0x020929B8 - stm sp, {r3, ip} - ldr r3, [r4, #0x20] - add r0, sp, #0x1c - str r3, [sp, #8] - str r4, [sp, #0xc] - ldr r4, [r5, #0xc] - add r3, r5, #0x28 - str r4, [sp, #0x10] - ldr r4, [r5, #0x10] - str r4, [sp, #0x14] - ldr r4, [r5, #0x14] - str r4, [sp, #0x18] - ldr r2, [r2, ip, lsl #2] - bl FatalError -_02008B5C: - add sp, sp, #0x24 - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_02008B64: .4byte 0x022A369C -_02008B68: .4byte 0x020AF53C -_02008B6C: .4byte 0x02092908 -_02008B70: .4byte 0x020AF454 -_02008B74: .4byte 0x020929B8 - arm_func_end FUN_02008a84 - - arm_func_start FUN_02008b78 -FUN_02008b78: @ 0x02008B78 - push {r3, lr} - ldrb r1, [r0, #8] - cmp r1, #0 - moveq r0, #0 - popeq {r3, pc} - mov r1, #0 - strb r1, [r0, #8] - ldr r0, _02008BA4 @ =0x020AF53C - bl FUN_02002b20 - mov r0, #1 - pop {r3, pc} - .align 2, 0 -_02008BA4: .4byte 0x020AF53C - arm_func_end FUN_02008b78 - - arm_func_start FUN_02008ba8 -FUN_02008ba8: @ 0x02008BA8 - push {r3, lr} - sub sp, sp, #0x40 - mov r2, r0 - add r0, sp, #0 - add r1, sp, #0x28 - bl FUN_02008c68 - cmp r0, #0 - ldrne r0, [sp, #0x34] - mvneq r0, #0 - add sp, sp, #0x40 - pop {r3, pc} - arm_func_end FUN_02008ba8 - - arm_func_start UnloadFile -UnloadFile: @ 0x02008BD4 - push {r4, lr} - mov r4, r0 - ldr r0, [r4] - bl MemFree - mov r0, #0 - str r0, [r4] - str r0, [r4, #4] - pop {r4, pc} - arm_func_end UnloadFile - - arm_func_start FUN_02008bf4 -FUN_02008bf4: @ 0x02008BF4 - push {r3, lr} - sub sp, sp, #0x28 - mov r3, r0 - mov r2, r1 - add r0, sp, #0 - mov r1, r3 - bl FUN_02008cc4 - add sp, sp, #0x28 - pop {r3, pc} - arm_func_end FUN_02008bf4 - - arm_func_start FUN_02008c18 -FUN_02008c18: @ 0x02008C18 - push {r3, lr} - sub sp, sp, #0x28 - mov r3, r0 - mov r2, r1 - add r0, sp, #0 - mov r1, r3 - bl FUN_02008d10 - add sp, sp, #0x28 - pop {r3, pc} - arm_func_end FUN_02008c18 - - arm_func_start LoadFileFromRom -LoadFileFromRom: @ 0x02008C3C - push {r3, lr} - sub sp, sp, #0x28 - mov lr, r0 - mov ip, r1 - mov r3, r2 - add r0, sp, #0 - mov r1, lr - mov r2, ip - bl FUN_02008d60 - add sp, sp, #0x28 - pop {r3, pc} - arm_func_end LoadFileFromRom - - arm_func_start FUN_02008c68 -FUN_02008c68: @ 0x02008C68 - push {r4, r5, r6, lr} - sub sp, sp, #0x100 - mov r6, r0 - mov r4, r2 - mov r5, r1 - bl FUN_0200844c - add r0, sp, #0 - mov r1, r6 - mov r3, r4 - mov r2, #6 - bl FUN_02008980 - mov r0, r5 - str r5, [sp, #0x10] - bl FUN_0200846c - add r0, sp, #0 - bl FUN_02008a84 - ldr r0, [r5, #0x14] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - add sp, sp, #0x100 - pop {r4, r5, r6, pc} - arm_func_end FUN_02008c68 - - arm_func_start FUN_02008cc4 -FUN_02008cc4: @ 0x02008CC4 - push {r4, r5, r6, lr} - sub sp, sp, #0x100 - mov r6, r0 - mov r4, r2 - mov r5, r1 - bl FUN_0200844c - add r0, sp, #0 - mov r1, r6 - mov r3, r4 - mov r2, #8 - bl FUN_02008980 - mvn r1, #0 - add r0, sp, #0 - str r5, [sp, #0xc] - str r1, [sp, #0x14] - bl FUN_02008a84 - ldr r0, [r6, #0x10] - add sp, sp, #0x100 - pop {r4, r5, r6, pc} - arm_func_end FUN_02008cc4 - - arm_func_start FUN_02008d10 -FUN_02008d10: @ 0x02008D10 - push {r4, r5, r6, lr} - sub sp, sp, #0x100 - mov r6, r0 - mov r4, r2 - mov r5, r1 - bl FUN_0200844c - add r0, sp, #0 - mov r1, r6 - mov r3, r4 - mov r2, #8 - bl FUN_02008980 - ldr r1, [r5] - add r0, sp, #0 - str r1, [sp, #0xc] - ldr r1, [r5, #4] - str r1, [sp, #0x14] - bl FUN_02008a84 - ldr r0, [r6, #0x10] - add sp, sp, #0x100 - pop {r4, r5, r6, pc} - arm_func_end FUN_02008d10 - - arm_func_start FUN_02008d60 -FUN_02008d60: @ 0x02008D60 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0x100 - mov r7, r0 - mov r5, r2 - mov r6, r1 - mov r4, r3 - bl FUN_0200844c - add r0, sp, #0 - mov r1, r7 - mov r3, r5 - mov r2, #0xa - bl FUN_02008980 - add r0, sp, #0 - str r6, [sp, #0x10] - str r4, [sp, #0x24] - bl FUN_02008a84 - ldr r0, [r7, #0x10] - add sp, sp, #0x100 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_02008d60 - - arm_func_start FUN_02008dac -FUN_02008dac: @ 0x02008DAC - push {r4, lr} - ldr r1, _02008EAC @ =0x020AF694 - mov r3, #0xff - ldr r0, _02008EB0 @ =0x020B2B98 - mov r2, #3 - strb r3, [r1] - str r2, [r0] - bl FUN_02076074 - ldr r2, _02008EB4 @ =0x04000304 - ldr r0, _02008EB8 @ =0xFFFFFDF1 - ldrh r1, [r2] - and r0, r1, r0 - orr r0, r0, #0xe - orr r0, r0, #0x200 - strh r0, [r2] - bl FUN_020777c4 - bl FUN_0207793c - bl FUN_0207621c - ldr r1, _02008EBC @ =0x04001000 - ldr r0, [r1] - bic r0, r0, #0x10000 - str r0, [r1] - bl FUN_0200961c - ldr r0, _02008EC0 @ =0x000001FF - bl FUN_02076e90 - mov r0, #0 - mov r1, #0x6800000 - mov r2, #0xa4000 - bl FUN_0207c358 - bl FUN_0207735c - mov r0, #0xc0 - mov r1, #0x7000000 - mov r2, #0x400 - bl FUN_0207c358 - mov r0, #0 - mov r1, #0x5000000 - mov r2, #0x400 - bl FUN_0207c358 - mov r0, #0xc0 - ldr r1, _02008EC4 @ =0x07000400 - mov r2, #0x400 - bl FUN_0207c358 - mov r0, #0 - ldr r1, _02008EC8 @ =0x05000400 - mov r2, #0x400 - bl FUN_0207c358 - mov r1, #0x100 - ldr r0, _02008ECC @ =0x022A37A0 - str r1, [r0, #4] - str r1, [r0, #8] - bl FUN_02009648 - mov r2, #0 - ldr r0, _02008ECC @ =0x022A37A0 - mov r1, #0x100 - str r2, [r0] - str r1, [r0, #4] - str r1, [r0, #8] - bl FUN_02008f88 - mov r4, #1 -_02008E98: - mov r0, r4 - bl FUN_02082420 - cmp r0, #0 - beq _02008E98 - pop {r4, pc} - .align 2, 0 -_02008EAC: .4byte 0x020AF694 -_02008EB0: .4byte 0x020B2B98 -_02008EB4: .4byte 0x04000304 -_02008EB8: .4byte 0xFFFFFDF1 -_02008EBC: .4byte 0x04001000 -_02008EC0: .4byte 0x000001FF -_02008EC4: .4byte 0x07000400 -_02008EC8: .4byte 0x05000400 -_02008ECC: .4byte 0x022A37A0 - arm_func_end FUN_02008dac - - arm_func_start FUN_02008ed0 -FUN_02008ed0: @ 0x02008ED0 - push {r4, lr} - ldr r1, _02008F30 @ =0x020AF694 - mov r4, r0 - ldrb r1, [r1] - cmp r1, r4 - popeq {r4, pc} - ldr r0, _02008F34 @ =0x02092AB8 - mov r2, r4 - bl DebugPrint0 - cmp r4, #0 - beq _02008F0C - cmp r4, #0xff - bne _02008F24 - bl FUN_0200961c - b _02008F24 -_02008F0C: - bl FUN_02009648 - bl FUN_02076258 - ldr r1, _02008F38 @ =0x04001000 - ldr r0, [r1] - orr r0, r0, #0x10000 - str r0, [r1] -_02008F24: - ldr r0, _02008F30 @ =0x020AF694 - strb r4, [r0] - pop {r4, pc} - .align 2, 0 -_02008F30: .4byte 0x020AF694 -_02008F34: .4byte 0x02092AB8 -_02008F38: .4byte 0x04001000 - arm_func_end FUN_02008ed0 - - arm_func_start FUN_02008f3c -FUN_02008f3c: @ 0x02008F3C - ldr r2, _02008F48 @ =0x022A37A4 - str r1, [r2, r0, lsl #2] - bx lr - .align 2, 0 -_02008F48: .4byte 0x022A37A4 - arm_func_end FUN_02008f3c - - arm_func_start FUN_02008f4c -FUN_02008f4c: @ 0x02008F4C - ldr r1, _02008F60 @ =0x022A37A4 - ldr r0, [r1, r0, lsl #2] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bx lr - .align 2, 0 -_02008F60: .4byte 0x022A37A4 - arm_func_end FUN_02008f4c - - arm_func_start FUN_02008f64 -FUN_02008f64: @ 0x02008F64 - ldr r2, _02008F80 @ =0x022A37A0 - add r0, r1, r0, lsl #2 - ldr r3, [r2] - mov r1, #1 - orr r0, r3, r1, lsl r0 - str r0, [r2] - bx lr - .align 2, 0 -_02008F80: .4byte 0x022A37A0 - arm_func_end FUN_02008f64 - - arm_func_start FUN_02008f84 -FUN_02008f84: @ 0x02008F84 - bx lr - arm_func_end FUN_02008f84 - - arm_func_start FUN_02008f88 -FUN_02008f88: @ 0x02008F88 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov r0, #0 - bl FUN_02009dcc - mov r0, #1 - bl FUN_02009dcc - mov r0, #0 - bl FUN_02009d48 - mov r0, #1 - bl FUN_02009d48 - mov r0, #0 - bl FUN_02009f9c - mov r0, #1 - bl FUN_02009f9c - mov r0, #0 - bl FUN_02009e70 - mov r0, #1 - bl FUN_02009e70 - ldr r1, _02009080 @ =0x022A37A0 - ldr r0, _02009084 @ =0x0400006C - ldr r2, [r1, #4] - asr r1, r2, #3 - add r1, r2, r1, lsr #28 - asr r1, r1, #4 - bl FUN_02076324 - ldr r1, _02009080 @ =0x022A37A0 - ldr r0, _02009088 @ =0x0400106C - ldr r2, [r1, #8] - asr r1, r2, #3 - add r1, r2, r1, lsr #28 - asr r1, r1, #4 - bl FUN_02076324 - ldr r0, _02009080 @ =0x022A37A0 - ldr sb, [r0] - cmp sb, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - mov sl, #0 - ldr r8, _0200908C @ =0x02092A18 - mov fp, #2 - ldr r7, _02009090 @ =0x02092A38 - ldr r6, _02009094 @ =0x02092A58 - ldr r5, _02009098 @ =0x02092A78 - ldr r4, _0200909C @ =0x02092A98 - b _02009068 -_02009034: - tst sb, #1 - beq _02009060 - ldr r0, [r8, sl, lsl #2] - mov r1, fp - bl MemZero16 - ldr r0, [r7, sl, lsl #2] - ldr r1, [r6, sl, lsl #2] - bl MemZero32 - ldr r0, [r5, sl, lsl #2] - ldr r1, [r4, sl, lsl #2] - bl MemZero32 -_02009060: - asr sb, sb, #1 - add sl, sl, #1 -_02009068: - cmp sb, #0 - bne _02009034 - ldr r0, _02009080 @ =0x022A37A0 - mov r1, #0 - str r1, [r0] - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02009080: .4byte 0x022A37A0 -_02009084: .4byte 0x0400006C -_02009088: .4byte 0x0400106C -_0200908C: .4byte 0x02092A18 -_02009090: .4byte 0x02092A38 -_02009094: .4byte 0x02092A58 -_02009098: .4byte 0x02092A78 -_0200909C: .4byte 0x02092A98 - arm_func_end FUN_02008f88 - - arm_func_start FUN_020090a0 -FUN_020090a0: @ 0x020090A0 - lsr r3, r1, #0x1f - ldr ip, _020090BC @ =0x022A37CC - rsb r1, r3, r1, lsl #30 - add r3, r3, r1, ror #30 - add r1, ip, r2, lsl #4 - str r3, [r1, r0, lsl #2] - bx lr - .align 2, 0 -_020090BC: .4byte 0x022A37CC - arm_func_end FUN_020090a0 - - arm_func_start FUN_020090c0 -FUN_020090c0: @ 0x020090C0 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - mov r4, #0 -_020090D0: - ldrb r1, [r6, r4] - mov r0, r4 - mov r2, r5 - bl FUN_020090a0 - add r0, r4, #1 - and r4, r0, #0xff - cmp r4, #4 - blo _020090D0 - pop {r4, r5, r6, pc} - arm_func_end FUN_020090c0 - - arm_func_start FUN_020090f4 -FUN_020090f4: @ 0x020090F4 - ldr r2, _0200911C @ =0x022A37CC - mov ip, #0 - add r3, r2, r1, lsl #4 -_02009100: - ldr r2, [r3, ip, lsl #2] - add r1, ip, #1 - strb r2, [r0, ip] - and ip, r1, #0xff - cmp ip, #4 - blo _02009100 - bx lr - .align 2, 0 -_0200911C: .4byte 0x022A37CC - arm_func_end FUN_020090f4 - - arm_func_start FUN_02009120 -FUN_02009120: @ 0x02009120 - cmp r0, #0 - bne _02009150 - ldr r2, _02009184 @ =0x022A37CC - mov r3, #1 - str r3, [r2, r0, lsl #4] - ldr r1, _02009188 @ =0x022A37D0 - mov r3, #0 - str r3, [r1, r0, lsl #4] - ldr r2, _0200918C @ =0x022A37D4 - mov r3, #2 - ldr r1, _02009190 @ =0x022A37D8 - b _02009174 -_02009150: - ldr r2, _02009184 @ =0x022A37CC - mov r3, #0 - str r3, [r2, r0, lsl #4] - ldr r1, _02009188 @ =0x022A37D0 - mov r3, #1 - str r3, [r1, r0, lsl #4] - ldr r2, _0200918C @ =0x022A37D4 - ldr r1, _02009190 @ =0x022A37D8 - mov r3, #2 -_02009174: - str r3, [r2, r0, lsl #4] - mov r2, #3 - str r2, [r1, r0, lsl #4] - bx lr - .align 2, 0 -_02009184: .4byte 0x022A37CC -_02009188: .4byte 0x022A37D0 -_0200918C: .4byte 0x022A37D4 -_02009190: .4byte 0x022A37D8 - arm_func_end FUN_02009120 - - arm_func_start FUN_02009194 -FUN_02009194: @ 0x02009194 - ldr r2, _020091AC @ =0x022A37AC - add r1, r1, r1, lsl #2 - add r1, r2, r1 - mov r2, #1 - strb r2, [r0, r1] - bx lr - .align 2, 0 -_020091AC: .4byte 0x022A37AC - arm_func_end FUN_02009194 - - arm_func_start FUN_020091b0 -FUN_020091b0: @ 0x020091B0 - ldr r2, _020091C8 @ =0x022A37AC - add r1, r1, r1, lsl #2 - add r1, r2, r1 - mov r2, #0 - strb r2, [r0, r1] - bx lr - .align 2, 0 -_020091C8: .4byte 0x022A37AC - arm_func_end FUN_020091b0 - - arm_func_start FUN_020091cc -FUN_020091cc: @ 0x020091CC - ldr r1, _020091F4 @ =0x022A37AC - add r0, r0, r0, lsl #2 - add r2, r1, r0 - mov r1, #0 - mov r0, r1 -_020091E0: - strb r0, [r2, r1] - add r1, r1, #1 - cmp r1, #5 - blt _020091E0 - bx lr - .align 2, 0 -_020091F4: .4byte 0x022A37AC - arm_func_end FUN_020091cc - - arm_func_start FUN_020091f8 -FUN_020091f8: @ 0x020091F8 - push {r3, lr} - mov ip, #0x1b - mul lr, r3, ip - ldr ip, _02009220 @ =0x022A37EC - ldr r3, _02009224 @ =0x022A37ED - strb r0, [ip, lr] - ldr r0, _02009228 @ =0x022A37EE - strb r1, [r3, lr] - strb r2, [r0, lr] - pop {r3, pc} - .align 2, 0 -_02009220: .4byte 0x022A37EC -_02009224: .4byte 0x022A37ED -_02009228: .4byte 0x022A37EE - arm_func_end FUN_020091f8 - - arm_func_start FUN_0200922c -FUN_0200922c: @ 0x0200922C - push {r4, lr} - ldrb r4, [sp, #0x10] - mov ip, #0x1b - ldr lr, _02009278 @ =0x022A37F3 - smulbb r4, r4, ip - ldr ip, _0200927C @ =0x022A37F4 - strb r0, [lr, r4] - ldr lr, _02009280 @ =0x022A37F5 - strb r1, [ip, r4] - ldrb ip, [sp, #8] - ldr r0, _02009284 @ =0x022A37F6 - strb r2, [lr, r4] - ldrb r1, [sp, #0xc] - ldr r2, _02009288 @ =0x022A37F7 - strb r3, [r0, r4] - ldr r0, _0200928C @ =0x022A37EF - strb ip, [r2, r4] - strb r1, [r0, r4] - pop {r4, pc} - .align 2, 0 -_02009278: .4byte 0x022A37F3 -_0200927C: .4byte 0x022A37F4 -_02009280: .4byte 0x022A37F5 -_02009284: .4byte 0x022A37F6 -_02009288: .4byte 0x022A37F7 -_0200928C: .4byte 0x022A37EF - arm_func_end FUN_0200922c - - arm_func_start FUN_02009290 -FUN_02009290: @ 0x02009290 - push {r4, lr} - ldrb r4, [sp, #0x10] - mov ip, #0x1b - ldr lr, _020092DC @ =0x022A37F8 - smulbb r4, r4, ip - ldr ip, _020092E0 @ =0x022A37F9 - strb r0, [lr, r4] - ldr lr, _020092E4 @ =0x022A37FA - strb r1, [ip, r4] - ldrb ip, [sp, #8] - ldr r0, _020092E8 @ =0x022A37FB - strb r2, [lr, r4] - ldrb r1, [sp, #0xc] - ldr r2, _020092EC @ =0x022A37FC - strb r3, [r0, r4] - ldr r0, _020092F0 @ =0x022A37F0 - strb ip, [r2, r4] - strb r1, [r0, r4] - pop {r4, pc} - .align 2, 0 -_020092DC: .4byte 0x022A37F8 -_020092E0: .4byte 0x022A37F9 -_020092E4: .4byte 0x022A37FA -_020092E8: .4byte 0x022A37FB -_020092EC: .4byte 0x022A37FC -_020092F0: .4byte 0x022A37F0 - arm_func_end FUN_02009290 - - arm_func_start FUN_020092f4 -FUN_020092f4: @ 0x020092F4 - push {r4, lr} - ldrb r4, [sp, #0x10] - mov ip, #0x1b - ldr lr, _02009340 @ =0x022A3802 - smulbb r4, r4, ip - ldr ip, _02009344 @ =0x022A3803 - strb r0, [lr, r4] - ldr lr, _02009348 @ =0x022A3804 - strb r1, [ip, r4] - ldrb ip, [sp, #8] - ldr r0, _0200934C @ =0x022A3805 - strb r2, [lr, r4] - ldrb r1, [sp, #0xc] - ldr r2, _02009350 @ =0x022A3806 - strb r3, [r0, r4] - ldr r0, _02009354 @ =0x022A37EF - strb ip, [r2, r4] - strb r1, [r0, r4] - pop {r4, pc} - .align 2, 0 -_02009340: .4byte 0x022A3802 -_02009344: .4byte 0x022A3803 -_02009348: .4byte 0x022A3804 -_0200934C: .4byte 0x022A3805 -_02009350: .4byte 0x022A3806 -_02009354: .4byte 0x022A37EF - arm_func_end FUN_020092f4 - - arm_func_start FUN_02009358 -FUN_02009358: @ 0x02009358 - push {r4, lr} - ldrb r4, [sp, #0x10] - mov ip, #0x1b - ldr lr, _020093A4 @ =0x022A37FD - smulbb r4, r4, ip - ldr ip, _020093A8 @ =0x022A37FE - strb r0, [lr, r4] - ldr lr, _020093AC @ =0x022A37FF - strb r1, [ip, r4] - ldrb ip, [sp, #8] - ldr r0, _020093B0 @ =0x022A3800 - strb r2, [lr, r4] - ldrb r1, [sp, #0xc] - ldr r2, _020093B4 @ =0x022A3801 - strb r3, [r0, r4] - ldr r0, _020093B8 @ =0x022A37F1 - strb ip, [r2, r4] - strb r1, [r0, r4] - pop {r4, pc} - .align 2, 0 -_020093A4: .4byte 0x022A37FD -_020093A8: .4byte 0x022A37FE -_020093AC: .4byte 0x022A37FF -_020093B0: .4byte 0x022A3800 -_020093B4: .4byte 0x022A3801 -_020093B8: .4byte 0x022A37F1 - arm_func_end FUN_02009358 -_020093BC: - .byte 0x18, 0x40, 0x2D, 0xE9 - .byte 0x0C, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1 - .byte 0x00, 0x20, 0xA0, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0x86, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x8D, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE1 - .byte 0x11, 0x00, 0x8D, 0xE9, 0x8C, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE1, 0x11, 0x00, 0x8D, 0xE9 - .byte 0x9E, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0x11, 0x00, 0x8D, 0xE9 - .byte 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x20, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE1, 0xB0, 0xFF, 0xFF, 0xEB - .byte 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x20, 0xA0, 0xE1 - .byte 0x00, 0x30, 0xA0, 0xE1, 0x11, 0x00, 0x8D, 0xE9, 0xC2, 0xFF, 0xFF, 0xEB, 0x0C, 0xD0, 0x8D, 0xE2 - .byte 0x18, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_02009454 -FUN_02009454: @ 0x02009454 - ldr ip, _02009468 @ =0x022A37B6 - mov r3, #0xa - mla r3, r2, r3, ip - strb r1, [r0, r3] - bx lr - .align 2, 0 -_02009468: .4byte 0x022A37B6 - arm_func_end FUN_02009454 - - arm_func_start FUN_0200946c -FUN_0200946c: @ 0x0200946C - ldr r3, _02009494 @ =0x022A37B6 - mov r2, #0xa - mla r3, r1, r2, r3 - mov r2, #0 -_0200947C: - ldrb r1, [r0, r2] - strb r1, [r3, r2] - add r2, r2, #1 - cmp r2, #5 - blt _0200947C - bx lr - .align 2, 0 -_02009494: .4byte 0x022A37B6 - arm_func_end FUN_0200946c - - arm_func_start FUN_02009498 -FUN_02009498: @ 0x02009498 - ldr r3, _020094C0 @ =0x022A37B6 - mov r2, #0xa - mla r3, r1, r2, r3 - mov r2, #0 -_020094A8: - ldrb r1, [r3, r2] - strb r1, [r0, r2] - add r2, r2, #1 - cmp r2, #5 - blt _020094A8 - bx lr - .align 2, 0 -_020094C0: .4byte 0x022A37B6 - arm_func_end FUN_02009498 - - arm_func_start FUN_020094c4 -FUN_020094c4: @ 0x020094C4 - mov r3, #0xa - mul ip, r2, r3 - ldr r3, _020094E0 @ =0x022A37BC - ldr r2, _020094E4 @ =0x022A37BE - strh r0, [r3, ip] - strh r1, [r2, ip] - bx lr - .align 2, 0 -_020094E0: .4byte 0x022A37BC -_020094E4: .4byte 0x022A37BE - arm_func_end FUN_020094c4 - - arm_func_start FUN_020094e8 -FUN_020094e8: @ 0x020094E8 - mov r3, #0xa - mul ip, r2, r3 - ldr r3, _0200950C @ =0x022A37BC - ldr r2, _02009510 @ =0x022A37BE - ldrsh r3, [r3, ip] - strh r3, [r0] - ldrsh r0, [r2, ip] - strh r0, [r1] - bx lr - .align 2, 0 -_0200950C: .4byte 0x022A37BC -_02009510: .4byte 0x022A37BE - arm_func_end FUN_020094e8 - - arm_func_start FUN_02009514 -FUN_02009514: @ 0x02009514 - push {r4, lr} - mov r4, r0 - mov r0, #0x40 - mov r1, r0 - mov r2, r4 - bl FUN_020094c4 - mov r0, #0xa - mul r3, r4, r0 - cmp r4, #0 - bne _02009568 - ldr r0, _02009598 @ =0x022A37B6 - mov r2, #1 - strb r2, [r0, r3] - ldr r1, _0200959C @ =0x022A37B7 - mov r2, #2 - strb r2, [r1, r3] - ldr r0, _020095A0 @ =0x022A37B8 - ldr r1, _020095A4 @ =0x022A37B9 - strb r2, [r0, r3] - ldr r0, _020095A8 @ =0x022A37BA - b _0200958C -_02009568: - ldr r0, _02009598 @ =0x022A37B6 - mov r2, #2 - strb r2, [r0, r3] - ldr r1, _0200959C @ =0x022A37B7 - ldr r0, _020095A0 @ =0x022A37B8 - strb r2, [r1, r3] - strb r2, [r0, r3] - ldr r1, _020095A4 @ =0x022A37B9 - ldr r0, _020095A8 @ =0x022A37BA -_0200958C: - strb r2, [r1, r3] - strb r2, [r0, r3] - pop {r4, pc} - .align 2, 0 -_02009598: .4byte 0x022A37B6 -_0200959C: .4byte 0x022A37B7 -_020095A0: .4byte 0x022A37B8 -_020095A4: .4byte 0x022A37B9 -_020095A8: .4byte 0x022A37BA - arm_func_end FUN_02009514 - - arm_func_start FUN_020095ac -FUN_020095ac: @ 0x020095AC - ldr r2, _020095C4 @ =0x04001008 - ldrh r1, [r2] - bic r1, r1, #3 - orr r0, r1, r0 - strh r0, [r2] - bx lr - .align 2, 0 -_020095C4: .4byte 0x04001008 - arm_func_end FUN_020095ac - - arm_func_start FUN_020095c8 -FUN_020095c8: @ 0x020095C8 - ldr r2, _020095E0 @ =0x0400100A - ldrh r1, [r2] - bic r1, r1, #3 - orr r0, r1, r0 - strh r0, [r2] - bx lr - .align 2, 0 -_020095E0: .4byte 0x0400100A - arm_func_end FUN_020095c8 - - arm_func_start FUN_020095e4 -FUN_020095e4: @ 0x020095E4 - ldr r2, _020095FC @ =0x0400100C - ldrh r1, [r2] - bic r1, r1, #3 - orr r0, r1, r0 - strh r0, [r2] - bx lr - .align 2, 0 -_020095FC: .4byte 0x0400100C - arm_func_end FUN_020095e4 - - arm_func_start FUN_02009600 -FUN_02009600: @ 0x02009600 - ldr r2, _02009618 @ =0x0400100E - ldrh r1, [r2] - bic r1, r1, #3 - orr r0, r1, r0 - strh r0, [r2] - bx lr - .align 2, 0 -_02009618: .4byte 0x0400100E - arm_func_end FUN_02009600 - - arm_func_start FUN_0200961c -FUN_0200961c: @ 0x0200961C - push {r3, lr} - bl FUN_0207729c - bl FUN_020772b0 - bl FUN_020772c4 - bl FUN_020772e8 - bl FUN_0207730c - bl FUN_02077320 - bl FUN_02077370 - bl FUN_02077384 - bl FUN_02077398 - pop {r3, pc} - arm_func_end FUN_0200961c - - arm_func_start FUN_02009648 -FUN_02009648: @ 0x02009648 - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #0xc - mov r0, #1 - bl FUN_02076464 - mov r0, #2 - bl FUN_020766f4 - mov r0, #0x10 - bl FUN_02076844 - mov r0, #0x40 - bl FUN_02076944 - mov r0, #8 - bl FUN_020769f0 - mov r0, #0x20 - bl FUN_02076bc8 - mov r0, #1 - mov r1, #0 - mov r2, r0 - bl FUN_020762a0 - mov r2, #0x4000000 - ldr r1, [r2] - ldr r0, _02009B78 @ =0x00005C10 - bic r1, r1, #0x1f00 - orr r1, r1, #0x1f00 - str r1, [r2] - add r3, r0, #0x208 - ldr r1, [r2] - mov r0, #0x1c - bic r1, r1, #0x38000000 - str r1, [r2] - ldr r4, [r2] - mov r1, #0 - bic r4, r4, #0x7000000 - str r4, [r2] - ldrh r4, [r2, #0xa] - and r4, r4, #0x43 - orr r4, r4, #0x1b80 - strh r4, [r2, #0xa] - ldrh r4, [r2, #0xc] - and r4, r4, #0x43 - orr r4, r4, #0xc10 - orr r4, r4, #0x5000 - strh r4, [r2, #0xc] - ldrh r4, [r2, #0xe] - and r4, r4, #0x43 - orr r3, r4, r3 - strh r3, [r2, #0xe] - ldr r3, [r2] - bic r3, r3, #0xe000 - str r3, [r2] - ldr r3, [r2] - bic r3, r3, #0x800000 - str r3, [r2] - bl FUN_02009b98 - mov r0, #0x1c - mov r1, #0 - bl FUN_02009bc0 - mov r0, #0 - mov r1, r0 - bl FUN_02009be8 - mov r0, #0xc - mov r1, #0 - bl FUN_02009c10 - mov r3, #8 - str r3, [sp] - ldr r0, _02009B7C @ =0x04000050 - mov r1, #1 - mov r2, #0x3e - bl FUN_020776e8 - ldr ip, _02009B80 @ =0x04000040 - mov lr, #0 - strh lr, [ip] - strh lr, [ip, #4] - strh lr, [ip, #2] - strh lr, [ip, #6] - sub r4, ip, #0x36 - ldrh r0, [r4] - sub r3, ip, #0x38 - sub r2, ip, #0x34 - bic r0, r0, #3 - strh r0, [r4] - ldrh r0, [r3] - sub r1, ip, #0x32 - mov r6, #0x4000000 - bic r0, r0, #3 - orr r0, r0, #1 - strh r0, [r3] - ldrh r7, [r2] - ldr r5, _02009B84 @ =0xFFCFFFEF +_022BCB94: mov r0, #4 - bic r7, r7, #3 - orr r7, r7, #2 - strh r7, [r2] - ldrh r7, [r1] - bic r7, r7, #3 - orr r7, r7, #3 - strh r7, [r1] - str lr, [ip, #-0x2c] - str lr, [ip, #-0x28] - str lr, [ip, #-0x24] - ldrh r7, [r3] - bic r7, r7, #0x40 - strh r7, [r3] - ldrh r3, [r4] - bic r3, r3, #0x40 - strh r3, [r4] - ldrh r3, [r2] - bic r3, r3, #0x40 - strh r3, [r2] - ldrh r2, [r1] - bic r2, r2, #0x40 - strh r2, [r1] - ldr r1, [r6] - and r1, r1, r5 - orr r1, r1, #0x10 - orr r1, r1, #0x200000 - str r1, [r6] - bl FUN_02076eb0 - mov r0, #0x100 - bl FUN_02076f58 - mov r0, #0x80 - bl FUN_02076fc8 - mov r0, #0 - bl FUN_02076308 - ldr r2, _02009B88 @ =0x04001000 - ldr r0, [r2] - bic r0, r0, #0x1f00 - orr r0, r0, #0x1f00 - str r0, [r2] - ldrh r0, [r2, #8] - and r0, r0, #0x43 - orr r0, r0, #0x1a80 - strh r0, [r2, #8] - ldrh r3, [r2, #0xa] - ldr r1, _02009B78 @ =0x00005C10 - mov r0, #0x1e - and r3, r3, #0x43 - orr r3, r3, #0x38c - orr r3, r3, #0x1800 - strh r3, [r2, #0xa] - ldrh r4, [r2, #0xc] - add r3, r1, #0x208 - mov r1, #1 - and r4, r4, #0x43 - orr r4, r4, #0xc10 - orr r4, r4, #0x5000 - strh r4, [r2, #0xc] - ldrh r4, [r2, #0xe] - and r4, r4, #0x43 - orr r3, r4, r3 - strh r3, [r2, #0xe] - ldr r3, [r2] - bic r3, r3, #0xe000 - str r3, [r2] - ldr r3, [r2] - orr r3, r3, #0x800000 - str r3, [r2] - bl FUN_02009ca8 - mov r0, #0x1e - mov r1, #1 - bl FUN_02009cd0 - mov r0, #0 - mov r1, r0 - bl FUN_02009cf8 - mov r0, #0x1e - mov r1, #1 - bl FUN_02009d20 - ldr ip, _02009B8C @ =0x04001050 - mov r1, #0 - strh r1, [ip] - strh r1, [ip, #-0x10] - strh r1, [ip, #-0xc] - strh r1, [ip, #-0xe] - strh r1, [ip, #-0xa] - sub r3, ip, #0x48 - ldrh r4, [r3] - sub r0, ip, #0x46 - sub r2, ip, #0x44 - bic r4, r4, #3 - strh r4, [r3] - ldrh r5, [r0] - sub r4, ip, #0x42 - bic r5, r5, #3 - orr r5, r5, #1 - strh r5, [r0] - ldrh r5, [r2] - bic r5, r5, #3 - orr r5, r5, #2 - strh r5, [r2] - ldrh r5, [r4] - bic r5, r5, #3 - orr r5, r5, #3 - strh r5, [r4] - str r1, [ip, #-0x40] - str r1, [ip, #-0x3c] - str r1, [ip, #-0x38] - str r1, [ip, #-0x34] - ldrh r5, [r3] - ldr r6, _02009B90 @ =0xFFFFCFFD - ldr lr, _02009B94 @ =0x04000304 - bic r5, r5, #0x40 - strh r5, [r3] - ldrh r3, [r0] - sub r7, ip, #0x50 - ldr r5, _02009B84 @ =0xFFCFFFEF - bic r3, r3, #0x40 - strh r3, [r0] - ldrh r3, [r2] - sub ip, lr, #0x2a4 - lsr r0, r6, #0x16 - bic r3, r3, #0x40 - strh r3, [r2] - ldrh r8, [r4] - lsr r2, r6, #0x11 - mov r3, #0x3f - bic r8, r8, #0x40 - strh r8, [r4] - ldr r4, [r7] - and r4, r4, r5 - orr r4, r4, #0x10 - orr r4, r4, #0x200000 - str r4, [r7] - ldrh r4, [lr] - bic r4, r4, #0x8000 - strh r4, [lr] - ldrh r4, [ip] - and r4, r4, r6 - strh r4, [ip] - ldrh r4, [ip] - bic r4, r4, #0x3000 - orr r4, r4, #0x10 - strh r4, [ip] - ldrh r4, [ip] - bic r4, r4, #0x3000 - orr r4, r4, #8 - strh r4, [ip] - ldrh r4, [ip] - bic r4, r4, #0x3000 - orr r4, r4, #4 - strh r4, [ip] - strh r1, [lr, #0x3c] - str r1, [sp] - bl FUN_02077a8c - mov r0, #0 - bl FUN_02009120 - mov r0, #1 - bl FUN_02009120 - mov r0, #0 - bl FUN_020091cc - mov r0, #1 - bl FUN_020091cc - mov r0, #0 - bl FUN_02009514 - mov r0, #1 - bl FUN_02009514 - mov r0, #0 - mov r1, r0 - mov r2, r0 - mov r3, r0 - bl FUN_020091f8 - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r1, r0 - mov r2, r0 - mov r3, r0 - str r0, [sp, #8] - bl FUN_0200922c - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r1, r0 - mov r2, r0 - mov r3, r0 - str r0, [sp, #8] - bl FUN_02009290 - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r1, r0 - str r0, [sp, #8] - mov r2, r0 - mov r3, r0 - bl FUN_020092f4 - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - mov r1, r0 - mov r2, r0 - mov r3, r0 - bl FUN_02009358 - mov r0, #0 - mov r1, r0 - mov r2, r0 - mov r3, #1 - bl FUN_020091f8 - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r1, #1 - str r1, [sp, #8] - mov r1, r0 - mov r2, r0 - mov r3, r0 - bl FUN_0200922c - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r1, #1 - str r1, [sp, #8] - mov r1, r0 - mov r2, r0 - mov r3, r0 - bl FUN_02009290 - mov r0, #0 - str r0, [sp] - mov r1, r0 - mov r2, r0 - mov r3, r0 - str r0, [sp, #4] - mov r4, #1 - str r4, [sp, #8] - bl FUN_020092f4 - mov r0, #0 - str r0, [sp] - mov r1, r0 - mov r2, r0 - mov r3, r0 - stmib sp, {r0, r4} - bl FUN_02009358 - add sp, sp, #0xc - pop {r3, r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02009B78: .4byte 0x00005C10 -_02009B7C: .4byte 0x04000050 -_02009B80: .4byte 0x04000040 -_02009B84: .4byte 0xFFCFFFEF -_02009B88: .4byte 0x04001000 -_02009B8C: .4byte 0x04001050 -_02009B90: .4byte 0xFFFFCFFD -_02009B94: .4byte 0x04000304 - arm_func_end FUN_02009648 - - arm_func_start FUN_02009b98 -FUN_02009b98: @ 0x02009B98 - ldr r2, _02009BBC @ =0x04000048 - cmp r1, #0 - ldrh r1, [r2] - bic r1, r1, #0x3f - orr r1, r1, r0 - ldr r0, _02009BBC @ =0x04000048 - orrne r1, r1, #0x20 - strh r1, [r0] - bx lr - .align 2, 0 -_02009BBC: .4byte 0x04000048 - arm_func_end FUN_02009b98 - - arm_func_start FUN_02009bc0 -FUN_02009bc0: @ 0x02009BC0 - ldr r2, _02009BE4 @ =0x04000048 - cmp r1, #0 - ldrh r1, [r2] - bic r1, r1, #0x3f00 - orr r1, r1, r0, lsl #8 - ldr r0, _02009BE4 @ =0x04000048 - orrne r1, r1, #0x2000 - strh r1, [r0] - bx lr - .align 2, 0 -_02009BE4: .4byte 0x04000048 - arm_func_end FUN_02009bc0 - - arm_func_start FUN_02009be8 -FUN_02009be8: @ 0x02009BE8 - ldr r2, _02009C0C @ =0x0400004A - cmp r1, #0 - ldrh r1, [r2] - bic r1, r1, #0x3f00 - orr r1, r1, r0, lsl #8 - ldr r0, _02009C0C @ =0x0400004A - orrne r1, r1, #0x2000 - strh r1, [r0] - bx lr - .align 2, 0 -_02009C0C: .4byte 0x0400004A - arm_func_end FUN_02009be8 - - arm_func_start FUN_02009c10 -FUN_02009c10: @ 0x02009C10 - ldr r2, _02009C34 @ =0x0400004A - cmp r1, #0 - ldrh r1, [r2] - bic r1, r1, #0x3f - orr r1, r1, r0 - ldr r0, _02009C34 @ =0x0400004A - orrne r1, r1, #0x20 - strh r1, [r0] - bx lr - .align 2, 0 -_02009C34: .4byte 0x0400004A - arm_func_end FUN_02009c10 - - arm_func_start FUN_02009c38 -FUN_02009c38: @ 0x02009C38 - ldr r2, _02009C50 @ =0x0400000A - ldrh r1, [r2] - bic r1, r1, #3 - orr r0, r1, r0 - strh r0, [r2] - bx lr - .align 2, 0 -_02009C50: .4byte 0x0400000A - arm_func_end FUN_02009c38 - - arm_func_start FUN_02009c54 -FUN_02009c54: @ 0x02009C54 - ldr r2, _02009C6C @ =0x04000008 - ldrh r1, [r2] - bic r1, r1, #3 - orr r0, r1, r0 - strh r0, [r2] - bx lr - .align 2, 0 -_02009C6C: .4byte 0x04000008 - arm_func_end FUN_02009c54 - - arm_func_start FUN_02009c70 -FUN_02009c70: @ 0x02009C70 - ldr r2, _02009C88 @ =0x0400000C - ldrh r1, [r2] - bic r1, r1, #3 - orr r0, r1, r0 - strh r0, [r2] - bx lr - .align 2, 0 -_02009C88: .4byte 0x0400000C - arm_func_end FUN_02009c70 - - arm_func_start FUN_02009c8c -FUN_02009c8c: @ 0x02009C8C - ldr r2, _02009CA4 @ =0x0400000E - ldrh r1, [r2] - bic r1, r1, #3 - orr r0, r1, r0 - strh r0, [r2] - bx lr - .align 2, 0 -_02009CA4: .4byte 0x0400000E - arm_func_end FUN_02009c8c - - arm_func_start FUN_02009ca8 -FUN_02009ca8: @ 0x02009CA8 - ldr r2, _02009CCC @ =0x04001048 - cmp r1, #0 - ldrh r1, [r2] - bic r1, r1, #0x3f - orr r1, r1, r0 - ldr r0, _02009CCC @ =0x04001048 - orrne r1, r1, #0x20 - strh r1, [r0] - bx lr - .align 2, 0 -_02009CCC: .4byte 0x04001048 - arm_func_end FUN_02009ca8 - - arm_func_start FUN_02009cd0 -FUN_02009cd0: @ 0x02009CD0 - ldr r2, _02009CF4 @ =0x04001048 - cmp r1, #0 - ldrh r1, [r2] - bic r1, r1, #0x3f00 - orr r1, r1, r0, lsl #8 - ldr r0, _02009CF4 @ =0x04001048 - orrne r1, r1, #0x2000 - strh r1, [r0] - bx lr - .align 2, 0 -_02009CF4: .4byte 0x04001048 - arm_func_end FUN_02009cd0 - - arm_func_start FUN_02009cf8 -FUN_02009cf8: @ 0x02009CF8 - ldr r2, _02009D1C @ =0x0400104A - cmp r1, #0 - ldrh r1, [r2] - bic r1, r1, #0x3f00 - orr r1, r1, r0, lsl #8 - ldr r0, _02009D1C @ =0x0400104A - orrne r1, r1, #0x2000 - strh r1, [r0] - bx lr - .align 2, 0 -_02009D1C: .4byte 0x0400104A - arm_func_end FUN_02009cf8 - - arm_func_start FUN_02009d20 -FUN_02009d20: @ 0x02009D20 - ldr r2, _02009D44 @ =0x0400104A - cmp r1, #0 - ldrh r1, [r2] - bic r1, r1, #0x3f - orr r1, r1, r0 - ldr r0, _02009D44 @ =0x0400104A - orrne r1, r1, #0x20 - strh r1, [r0] - bx lr - .align 2, 0 -_02009D44: .4byte 0x0400104A - arm_func_end FUN_02009d20 - - arm_func_start FUN_02009d48 -FUN_02009d48: @ 0x02009D48 - push {r4, lr} - movs r4, r0 - bne _02009D88 - ldr r0, _02009DBC @ =0x022A37CC - ldr r0, [r0, r4, lsl #4] - bl FUN_02009c54 - ldr r0, _02009DC0 @ =0x022A37D0 - ldr r0, [r0, r4, lsl #4] - bl FUN_02009c38 - ldr r0, _02009DC4 @ =0x022A37D4 - ldr r0, [r0, r4, lsl #4] - bl FUN_02009c70 - ldr r0, _02009DC8 @ =0x022A37D8 - ldr r0, [r0, r4, lsl #4] - bl FUN_02009c8c - pop {r4, pc} -_02009D88: - ldr r0, _02009DBC @ =0x022A37CC - ldr r0, [r0, r4, lsl #4] - bl FUN_020095ac - ldr r0, _02009DC0 @ =0x022A37D0 - ldr r0, [r0, r4, lsl #4] - bl FUN_020095c8 - ldr r0, _02009DC4 @ =0x022A37D4 - ldr r0, [r0, r4, lsl #4] - bl FUN_020095e4 - ldr r0, _02009DC8 @ =0x022A37D8 - ldr r0, [r0, r4, lsl #4] - bl FUN_02009600 - pop {r4, pc} - .align 2, 0 -_02009DBC: .4byte 0x022A37CC -_02009DC0: .4byte 0x022A37D0 -_02009DC4: .4byte 0x022A37D4 -_02009DC8: .4byte 0x022A37D8 - arm_func_end FUN_02009d48 - - arm_func_start FUN_02009dcc -FUN_02009dcc: @ 0x02009DCC - ldr r1, _02009E58 @ =0x022A37AC - add r3, r0, r0, lsl #2 - ldrb r2, [r1, r3] - mov r1, #0x1f - cmp r2, #0 - ldr r2, _02009E5C @ =0x022A37AD - bicne r1, r1, #1 - ldrb r2, [r2, r3] - cmp r2, #0 - ldr r2, _02009E60 @ =0x022A37AE - bicne r1, r1, #2 - ldrb r2, [r2, r3] - cmp r2, #0 - ldr r2, _02009E64 @ =0x022A37AF - bicne r1, r1, #4 - ldrb r2, [r2, r3] - cmp r2, #0 - ldr r2, _02009E68 @ =0x022A37B0 - bicne r1, r1, #8 - ldrb r2, [r2, r3] - cmp r2, #0 - bicne r1, r1, #0x10 - cmp r0, #0 - ldrne r2, _02009E6C @ =0x04001000 - ldrne r0, [r2] - bicne r0, r0, #0x1f00 - orrne r0, r0, r1, lsl #8 - strne r0, [r2] - bxne lr - mov r2, #0x4000000 - ldr r0, [r2] - bic r0, r0, #0x1f00 - orr r0, r0, r1, lsl #8 - str r0, [r2] - bx lr - .align 2, 0 -_02009E58: .4byte 0x022A37AC -_02009E5C: .4byte 0x022A37AD -_02009E60: .4byte 0x022A37AE -_02009E64: .4byte 0x022A37AF -_02009E68: .4byte 0x022A37B0 -_02009E6C: .4byte 0x04001000 - arm_func_end FUN_02009dcc - - arm_func_start FUN_02009e70 -FUN_02009e70: @ 0x02009E70 - push {r3, lr} - mov r1, #0xa - mul r3, r0, r1 - ldr r2, _02009F78 @ =0x022A37B6 - mov r1, #0 - ldrb ip, [r2, r3] - mov r2, #0x20 - cmp ip, #1 - orreq r1, r1, #1 - beq _02009EA0 - cmp ip, #2 - orreq r2, r2, #1 -_02009EA0: - ldr ip, _02009F7C @ =0x022A37B7 - ldrb ip, [ip, r3] - cmp ip, #1 - orreq r1, r1, #2 - beq _02009EBC - cmp ip, #2 - orreq r2, r2, #2 -_02009EBC: - ldr ip, _02009F80 @ =0x022A37B8 - ldrb ip, [ip, r3] - cmp ip, #1 - orreq r1, r1, #4 - beq _02009ED8 - cmp ip, #2 - orreq r2, r2, #4 -_02009ED8: - ldr ip, _02009F84 @ =0x022A37B9 - ldrb ip, [ip, r3] - cmp ip, #1 - orreq r1, r1, #8 - beq _02009EF4 - cmp ip, #2 - orreq r2, r2, #8 -_02009EF4: - ldr ip, _02009F88 @ =0x022A37BA - ldrb ip, [ip, r3] - cmp ip, #1 - orreq r1, r1, #0x10 - beq _02009F10 - cmp ip, #2 - orreq r2, r2, #0x10 -_02009F10: - cmp r0, #0 - bne _02009F48 - ldr r0, _02009F8C @ =0x022A37BE - ldr ip, _02009F90 @ =0x022A37BC - ldrh lr, [r0, r3] - ldr r0, _02009F94 @ =0x04000050 - and lr, lr, #0xf8 - asr lr, lr, #3 - str lr, [sp] - ldrh r3, [ip, r3] - and r3, r3, #0xf8 - asr r3, r3, #3 - bl FUN_020776e8 - pop {r3, pc} -_02009F48: - ldr r0, _02009F8C @ =0x022A37BE - ldr ip, _02009F90 @ =0x022A37BC - ldrh lr, [r0, r3] - ldr r0, _02009F98 @ =0x04001050 - and lr, lr, #0xf8 - asr lr, lr, #3 - str lr, [sp] - ldrh r3, [ip, r3] - and r3, r3, #0xf8 - asr r3, r3, #3 - bl FUN_020776e8 - pop {r3, pc} - .align 2, 0 -_02009F78: .4byte 0x022A37B6 -_02009F7C: .4byte 0x022A37B7 -_02009F80: .4byte 0x022A37B8 -_02009F84: .4byte 0x022A37B9 -_02009F88: .4byte 0x022A37BA -_02009F8C: .4byte 0x022A37BE -_02009F90: .4byte 0x022A37BC -_02009F94: .4byte 0x04000050 -_02009F98: .4byte 0x04001050 - arm_func_end FUN_02009e70 - - arm_func_start FUN_02009f9c -FUN_02009f9c: @ 0x02009F9C - push {r4, r5, r6, r7, r8, lr} - mov r1, #0x1b - mul r4, r0, r1 - ldr r3, _0200A100 @ =0x022A37EC - mov r2, #0 - ldrb r1, [r3, r4] - add lr, r3, r4 - mov r3, #0 - cmp r1, #0 - ldr r1, _0200A104 @ =0x022A37ED - orrne r2, r2, #1 - ldrb r1, [r1, r4] - mov r5, r3 - mov r6, r3 - cmp r1, #0 - ldr r1, _0200A108 @ =0x022A37EE - orrne r2, r2, #2 - ldrb r1, [r1, r4] - mov ip, r3 - cmp r1, #0 - ldr r1, _0200A10C @ =0x02092A04 - orrne r2, r2, #4 -_02009FF4: - add r7, lr, ip - ldrb r8, [r7, #7] - cmp r8, #0 - ldrne r8, [r1, ip, lsl #2] - orrne r3, r3, r8 - ldrb r8, [r7, #0xc] - cmp r8, #0 - ldrne r8, [r1, ip, lsl #2] - orrne r3, r3, r8 - ldrb r8, [r7, #0x16] - ldrb r7, [r7, #0x11] - cmp r8, #0 - ldrne r8, [r1, ip, lsl #2] - orrne r6, r6, r8 - cmp r7, #0 - ldrne r7, [r1, ip, lsl #2] - orrne r5, r5, r7 - add r7, ip, #1 - and ip, r7, #0xff - cmp ip, #5 - blo _02009FF4 - cmp r0, #0 - bne _0200A0A8 - mov r7, #0x4000000 - ldr r1, [r7] - ldr r0, _0200A110 @ =0x022A37EF - bic r1, r1, #0xe000 - orr r1, r1, r2, lsl #13 - str r1, [r7] - ldrb r1, [r0, r4] - mov r0, r3 - bl FUN_02009b98 - ldr r1, _0200A114 @ =0x022A37F0 - mov r0, #0 - ldrb r1, [r1, r4] - bl FUN_02009bc0 - ldr r1, _0200A118 @ =0x022A37F1 - mov r0, r5 - ldrb r1, [r1, r4] - bl FUN_02009be8 - ldr r1, _0200A11C @ =0x022A37F2 - mov r0, r6 - ldrb r1, [r1, r4] - bl FUN_02009c10 - pop {r4, r5, r6, r7, r8, pc} -_0200A0A8: - ldr ip, _0200A120 @ =0x04001000 - ldr r1, _0200A110 @ =0x022A37EF - ldr r7, [ip] - mov r0, r3 - bic r3, r7, #0xe000 - orr r2, r3, r2, lsl #13 - str r2, [ip] - ldrb r1, [r1, r4] - bl FUN_02009ca8 - ldr r1, _0200A114 @ =0x022A37F0 - mov r0, #0 - ldrb r1, [r1, r4] - bl FUN_02009cd0 - ldr r1, _0200A118 @ =0x022A37F1 - mov r0, r5 - ldrb r1, [r1, r4] - bl FUN_02009cf8 - ldr r1, _0200A11C @ =0x022A37F2 - mov r0, r6 - ldrb r1, [r1, r4] - bl FUN_02009d20 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0200A100: .4byte 0x022A37EC -_0200A104: .4byte 0x022A37ED -_0200A108: .4byte 0x022A37EE -_0200A10C: .4byte 0x02092A04 -_0200A110: .4byte 0x022A37EF -_0200A114: .4byte 0x022A37F0 -_0200A118: .4byte 0x022A37F1 -_0200A11C: .4byte 0x022A37F2 -_0200A120: .4byte 0x04001000 - arm_func_end FUN_02009f9c - - arm_func_start FUN_0200a124 -FUN_0200a124: @ 0x0200A124 - push {r4, lr} - mov r4, r0 - stm r4, {r1, r2} - mov r0, #0 - strb r0, [r4, #8] - ldr r1, [sp, #8] - str r3, [r4, #0xc] - lsl r0, r2, #1 - bl MemAlloc - str r0, [r4, #0x10] - mov r0, r4 - bl FUN_0200a274 - pop {r4, pc} - arm_func_end FUN_0200a124 - - arm_func_start FUN_0200a158 -FUN_0200a158: @ 0x0200A158 - push {r4, lr} - mov r4, r0 - ldr r0, [r4, #0x10] - bl MemFree - mov r0, #0 - str r0, [r4, #0x10] - pop {r4, pc} - arm_func_end FUN_0200a158 - - arm_func_start FUN_0200a174 -FUN_0200a174: @ 0x0200A174 - mov r1, #1 - strb r1, [r0, #8] - bx lr - arm_func_end FUN_0200a174 - - arm_func_start FUN_0200a180 -FUN_0200a180: @ 0x0200A180 - bx lr - arm_func_end FUN_0200a180 - - arm_func_start FUN_0200a184 -FUN_0200a184: @ 0x0200A184 - push {r4, r5, r6, lr} - mov r6, r0 - ldrb r0, [r6, #8] - cmp r0, #0 - popeq {r4, r5, r6, pc} - ldr r4, [r6, #0x10] - ldr r1, [r6, #4] - mov r0, r4 - lsl r1, r1, #1 - ldr r5, [r6, #0xc] - bl FUN_0207a2dc - ldr r0, [r6] - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _0200A1D4 -_0200A1C0: @ jump table - b _0200A1D4 @ case 0 - b _0200A1EC @ case 1 - b _0200A20C @ case 2 - b _0200A22C @ case 3 - b _0200A24C @ case 4 -_0200A1D4: - ldr r2, [r6, #4] - mov r0, r5 - mov r1, r4 - lsl r2, r2, #1 - bl Memcpy32 - b _0200A268 -_0200A1EC: - bl FUN_020783d0 - ldr r2, [r6, #4] - mov r0, r5 - mov r1, r4 - lsl r2, r2, #1 - bl Memcpy32 - bl FUN_02078470 - b _0200A268 -_0200A20C: - bl FUN_020784b8 - ldr r2, [r6, #4] - mov r0, r5 - mov r1, r4 - lsl r2, r2, #1 - bl Memcpy32 - bl FUN_02078500 - b _0200A268 -_0200A22C: - bl FUN_02078544 - ldr r2, [r6, #4] - mov r0, r5 - mov r1, r4 - lsl r2, r2, #1 - bl Memcpy32 - bl FUN_0207855c - b _0200A268 -_0200A24C: - bl FUN_0207859c - ldr r2, [r6, #4] - mov r0, r5 - mov r1, r4 - lsl r2, r2, #1 - bl Memcpy32 - bl FUN_020785b4 -_0200A268: - mov r0, #0 - strb r0, [r6, #8] pop {r4, r5, r6, pc} - arm_func_end FUN_0200a184 + .align 2, 0 +_022BCB9C: .4byte 0x023187A0 +_022BCBA0: .4byte 0x0003FFE0 +_022BCBA4: .4byte ov00_022BDE30 +_022BCBA8: .4byte ov00_022BDF1C + arm_func_end ov00_022BCA80 - arm_func_start FUN_0200a274 -FUN_0200a274: @ 0x0200A274 - mov r3, #0 - ldr ip, [r0, #0x10] - mov r2, r3 - b _0200A28C -_0200A284: - strh r2, [ip], #2 - add r3, r3, #1 -_0200A28C: - ldr r1, [r0, #4] - cmp r3, r1 - blt _0200A284 - bx lr - arm_func_end FUN_0200a274 - - arm_func_start FUN_0200a29c -FUN_0200a29c: @ 0x0200A29C + arm_func_start ov00_022BCBAC +ov00_022BCBAC: @ 0x022BCBAC + push {r3, lr} + cmp r0, #0 + beq _022BCBF0 + ldr r0, _022BCC2C @ =0x023187A0 ldr r0, [r0, #0x10] - ldr ip, _0200A2B0 @ =FUN_02004fcc - add r0, r0, r1, lsl #1 - mov r1, r2 - bx ip - .align 2, 0 -_0200A2B0: .4byte FUN_02004fcc - arm_func_end FUN_0200a29c - - arm_func_start FUN_0200a2b4 -FUN_0200a2b4: @ 0x0200A2B4 - ldr r3, [r0, #0x10] - ldr ip, _0200A2C8 @ =FUN_02004FF8 - mov r0, r1 - add r1, r3, r2, lsl #1 - bx ip - .align 2, 0 -_0200A2C8: .4byte FUN_02004FF8 - arm_func_end FUN_0200a2b4 - - arm_func_start FUN_0200a2cc -FUN_0200a2cc: @ 0x0200A2CC + cmp r0, #0 + beq _022BCBE0 + bl FUN_02001188 + ldr r0, _022BCC2C @ =0x023187A0 mov r1, #0 - str r1, [r0] - str r1, [r0, #4] + str r1, [r0, #0x10] + str r1, [r0, #0x20] str r1, [r0, #0x18] - str r1, [r0, #0x1c] - str r1, [r0, #0x20] - str r1, [r0, #0x24] - str r1, [r0, #0x14] - strb r1, [r0, #8] - bx lr - arm_func_end FUN_0200a2cc - - arm_func_start FUN_0200a2f4 -FUN_0200a2f4: @ 0x0200A2F4 - mov r1, #0 -_0200A2F8: - ldr r2, [r0, #0x24] - str r1, [r0, #0x20] - str r1, [r0, #0x24] - cmp r2, #0 - movne r0, r2 - bne _0200A2F8 - bx lr - arm_func_end FUN_0200a2f4 - - arm_func_start FUN_0200A314 -FUN_0200A314: @ 0x0200A314 - ldr r2, [r0, #0x24] - cmp r2, #0 - beq _0200A330 - cmp r2, r1 - bxeq lr - mov r0, r2 - b FUN_0200A314 -_0200A330: - str r1, [r0, #0x24] - str r0, [r1, #0x20] - mov r0, #0 - str r0, [r1, #0x24] - bx lr - arm_func_end FUN_0200A314 - - arm_func_start FUN_0200A344 -FUN_0200A344: @ 0x0200A344 - ldr r2, [r0, #0x24] - cmp r2, #0 - bxeq lr - cmp r2, r1 - movne r0, r2 - bne FUN_0200A344 - ldr r2, [r1, #0x24] - str r2, [r0, #0x24] - cmp r2, #0 - strne r0, [r2, #0x20] - mov r0, #0 - str r0, [r1, #0x20] - str r0, [r1, #0x24] - bx lr - arm_func_end FUN_0200A344 - - arm_func_start FUN_0200a37c -FUN_0200a37c: @ 0x0200A37C - push {r3, r4, r5, lr} - mov r5, r1 - ldr r4, [r0, #0x24] - b _0200A39C -_0200A38C: - mov r0, r4 - mov r1, r5 - bl FUN_0200a618 - ldr r4, [r4, #0x24] -_0200A39C: - cmp r4, #0 - bne _0200A38C - pop {r3, r4, r5, pc} - arm_func_end FUN_0200a37c - - arm_func_start FUN_0200a3a8 -FUN_0200a3a8: @ 0x0200A3A8 - push {r4, r5, r6, lr} - mov r6, r1 - mov r5, r2 - ldr r4, [r0, #0x24] - b _0200A3D0 -_0200A3BC: - mov r0, r4 - mov r1, r6 - mov r2, r5 - bl FUN_0200a64c - ldr r4, [r4, #0x24] -_0200A3D0: - cmp r4, #0 - bne _0200A3BC - pop {r4, r5, r6, pc} - arm_func_end FUN_0200a3a8 - - arm_func_start FUN_0200a3dc -FUN_0200a3dc: @ 0x0200A3DC - push {r4, r5, r6, lr} - mov r6, r1 - mov r5, r2 - ldr r4, [r0, #0x24] - b _0200A404 -_0200A3F0: - mov r0, r4 - mov r1, r6 - mov r2, r5 - bl FUN_0200a688 - ldr r4, [r4, #0x24] -_0200A404: - cmp r4, #0 - bne _0200A3F0 - pop {r4, r5, r6, pc} - arm_func_end FUN_0200a3dc - - arm_func_start FUN_0200a410 -FUN_0200a410: @ 0x0200A410 - push {r4, r5, r6, lr} - mov r6, r1 - mov r5, r2 - ldr r4, [r0, #0x24] - b _0200A438 -_0200A424: - mov r0, r4 - mov r1, r6 - mov r2, r5 - bl FUN_0200a6c4 - ldr r4, [r4, #0x24] -_0200A438: - cmp r4, #0 - bne _0200A424 - pop {r4, r5, r6, pc} - arm_func_end FUN_0200a410 - - arm_func_start FUN_0200a444 -FUN_0200a444: @ 0x0200A444 - push {r4, r5, r6, lr} - mov r6, r1 - mov r5, r2 - ldr r4, [r0, #0x24] - b _0200A46C -_0200A458: - mov r0, r4 - mov r1, r6 - mov r2, r5 - bl FUN_0200a700 - ldr r4, [r4, #0x24] -_0200A46C: - cmp r4, #0 - bne _0200A458 - pop {r4, r5, r6, pc} - arm_func_end FUN_0200a444 - - arm_func_start FUN_0200a478 -FUN_0200a478: @ 0x0200A478 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - str r5, [r6] - ldr r1, [sp, #0x10] - str r3, [r6, #4] - lsl r0, r3, #2 - mov r4, r2 - bl MemAlloc - str r0, [r6, #0x18] - ldr r0, [r5, #0x10] - mov r1, #0 - add r0, r0, r4, lsl #1 - str r0, [r6, #0x1c] - str r1, [r6, #0x20] - mov r0, r6 - str r1, [r6, #0x24] - bl FUN_0200a544 - pop {r4, r5, r6, pc} - arm_func_end FUN_0200a478 - - arm_func_start FUN_0200a4c4 -FUN_0200a4c4: @ 0x0200A4C4 - push {r4, lr} - mov r4, r0 - ldr r1, [r4, #0x20] - ldr r2, [r4, #0x24] - mov r0, #0 - str r0, [r4, #0x20] - str r0, [r4, #0x24] - cmp r1, #0 - strne r2, [r1, #0x24] - cmp r2, #0 - strne r1, [r2, #0x20] - ldr r0, [r4, #0x18] - bl MemFree - mov r0, #0 - str r0, [r4, #0x18] - pop {r4, pc} - arm_func_end FUN_0200a4c4 - - arm_func_start FUN_0200a504 -FUN_0200a504: @ 0x0200A504 - mov r1, #1 - strb r1, [r0, #8] - bx lr - arm_func_end FUN_0200a504 - - arm_func_start FUN_0200a510 -FUN_0200a510: @ 0x0200A510 - push {r4, lr} - mov r4, r0 - ldrb r1, [r4, #8] - cmp r1, #0 - popeq {r4, pc} - ldr r1, [r4, #0x14] - blx r1 - mov r0, #0 - strb r0, [r4, #8] - ldr r0, [r4] - mov r1, #1 - strb r1, [r0, #8] - pop {r4, pc} - arm_func_end FUN_0200a510 - - arm_func_start FUN_0200a544 -FUN_0200a544: @ 0x0200A544 - mov ip, #0 - ldr r3, [r0, #0x18] - mov r2, ip - b _0200A56C -_0200A554: - mov r1, r3 - strb r2, [r3], #4 - strb r2, [r1, #1] - strb r2, [r1, #2] - strb r2, [r1, #3] - add ip, ip, #1 -_0200A56C: - ldr r1, [r0, #4] - cmp ip, r1 - blt _0200A554 - ldr r2, _0200A58C @ =0x0200A73C - mov r1, #1 - str r2, [r0, #0x14] - strb r1, [r0, #8] - bx lr - .align 2, 0 -_0200A58C: .4byte 0x0200A73C - arm_func_end FUN_0200a544 - - arm_func_start FUN_0200a590 -FUN_0200a590: @ 0x0200A590 - ldr r0, [r0, #0x18] - mov r3, #4 - add r1, r0, r1, lsl #2 -_0200A59C: - ldrb r0, [r2], #1 - subs r3, r3, #1 - strb r0, [r1], #1 - bne _0200A59C - bx lr - arm_func_end FUN_0200a590 - - arm_func_start FUN_0200a5b0 -FUN_0200a5b0: @ 0x0200A5B0 - push {r3, r4, r5, lr} - ldr r0, [r0, #0x18] - mov lr, #0 - add ip, r0, r1, lsl #2 - b _0200A5EC -_0200A5C4: - mov r4, r2 - mov r5, ip - add r2, r2, #4 - add ip, ip, #4 - mov r1, #4 -_0200A5D8: - ldrb r0, [r4], #1 - subs r1, r1, #1 - strb r0, [r5], #1 - bne _0200A5D8 - add lr, lr, #1 -_0200A5EC: - cmp lr, r3 - blt _0200A5C4 - pop {r3, r4, r5, pc} - arm_func_end FUN_0200a5b0 - - arm_func_start FUN_0200a5f8 -FUN_0200a5f8: @ 0x0200A5F8 - ldr r0, [r0, #0x18] - mov r3, #4 - add r2, r0, r2, lsl #2 -_0200A604: - ldrb r0, [r2], #1 - subs r3, r3, #1 - strb r0, [r1], #1 - bne _0200A604 - bx lr - arm_func_end FUN_0200a5f8 - - arm_func_start FUN_0200a618 -FUN_0200a618: @ 0x0200A618 - strh r1, [r0, #0xa] - mov r2, #0 - strb r2, [r0, #0xc] - strb r2, [r0, #0xd] - strb r2, [r0, #0xe] - strb r2, [r0, #0xf] - ldr r1, _0200A648 @ =FUN_0200a78c - str r2, [r0, #0x10] - str r1, [r0, #0x14] - mov r1, #1 - strb r1, [r0, #8] - bx lr - .align 2, 0 -_0200A648: .4byte FUN_0200a78c - arm_func_end FUN_0200a618 - - arm_func_start FUN_0200a64c -FUN_0200a64c: @ 0x0200A64C - strh r1, [r0, #0xa] - add ip, r0, #0xc - mov r3, #4 -_0200A658: - ldrb r1, [r2], #1 - subs r3, r3, #1 - strb r1, [ip], #1 - bne _0200A658 - mov r2, #0 - ldr r1, _0200A684 @ =FUN_0200a9e4 - str r2, [r0, #0x10] - str r1, [r0, #0x14] - mov r1, #1 - strb r1, [r0, #8] - bx lr - .align 2, 0 -_0200A684: .4byte FUN_0200a9e4 - arm_func_end FUN_0200a64c - - arm_func_start FUN_0200a688 -FUN_0200a688: @ 0x0200A688 - strh r1, [r0, #0xa] - add ip, r0, #0xc - mov r3, #4 -_0200A694: - ldrb r1, [r2], #1 - subs r3, r3, #1 - strb r1, [ip], #1 - bne _0200A694 - mov r2, #0 - ldr r1, _0200A6C0 @ =FUN_0200acb0 - str r2, [r0, #0x10] - str r1, [r0, #0x14] - mov r1, #1 - strb r1, [r0, #8] - bx lr - .align 2, 0 -_0200A6C0: .4byte FUN_0200acb0 - arm_func_end FUN_0200a688 - - arm_func_start FUN_0200a6c4 -FUN_0200a6c4: @ 0x0200A6C4 - strh r1, [r0, #0xa] - add ip, r0, #0xc - mov r3, #4 -_0200A6D0: - ldrb r1, [r2], #1 - subs r3, r3, #1 - strb r1, [ip], #1 - bne _0200A6D0 - mov r2, #0 - ldr r1, _0200A6FC @ =FUN_0200ae38 - str r2, [r0, #0x10] - str r1, [r0, #0x14] - mov r1, #1 - strb r1, [r0, #8] - bx lr - .align 2, 0 -_0200A6FC: .4byte FUN_0200ae38 - arm_func_end FUN_0200a6c4 - - arm_func_start FUN_0200a700 -FUN_0200a700: @ 0x0200A700 - strh r1, [r0, #0xa] - add ip, r0, #0xc - mov r3, #4 -_0200A70C: - ldrb r1, [r2], #1 - subs r3, r3, #1 - strb r1, [ip], #1 - bne _0200A70C - mov r2, #0 - ldr r1, _0200A738 @ =FUN_0200b0ac - str r2, [r0, #0x10] - str r1, [r0, #0x14] - mov r1, #1 - strb r1, [r0, #8] - bx lr - .align 2, 0 -_0200A738: .4byte FUN_0200b0ac - arm_func_end FUN_0200a700 -_0200A73C: - .byte 0x10, 0x40, 0x2D, 0xE9 - .byte 0x18, 0xC0, 0x90, 0xE5, 0x1C, 0xE0, 0x90, 0xE5, 0x00, 0x40, 0xA0, 0xE3, 0x0A, 0x00, 0x00, 0xEA - .byte 0x01, 0x10, 0xDC, 0xE5, 0x02, 0x20, 0xDC, 0xE5, 0x04, 0x30, 0xDC, 0xE4, 0xF8, 0x10, 0x01, 0xE2 - .byte 0xF8, 0x20, 0x02, 0xE2, 0x01, 0x11, 0xA0, 0xE1, 0xF8, 0x30, 0x03, 0xE2, 0x82, 0x13, 0x81, 0xE1 - .byte 0xC3, 0x11, 0x81, 0xE1, 0xB2, 0x10, 0xCE, 0xE0, 0x01, 0x40, 0x84, 0xE2, 0x04, 0x10, 0x90, 0xE5 - .byte 0x01, 0x00, 0x54, 0xE1, 0xF1, 0xFF, 0xFF, 0xBA, 0x10, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_0200a78c -FUN_0200a78c: @ 0x0200A78C - push {r4, r5, r6, r7, r8, lr} - ldrh r2, [r0, #0xa] - ldr r1, [r0] - ldr r3, [r0, #0x18] - cmp r2, #0x100 - ldr r1, [r1] - ldr ip, [r0, #0x1c] - blo _0200A7F0 - mov r5, #0 - b _0200A7E0 -_0200A7B4: - ldrb r1, [r3, #1] - ldrb r2, [r3, #2] - ldrb r4, [r3], #4 - and r1, r1, #0xf8 - and r2, r2, #0xf8 - lsl r1, r1, #2 - and r4, r4, #0xf8 - orr r1, r1, r2, lsl #7 - orr r1, r1, r4, asr #3 - strh r1, [ip], #2 - add r5, r5, #1 -_0200A7E0: - ldr r1, [r0, #4] - cmp r5, r1 - blt _0200A7B4 - pop {r4, r5, r6, r7, r8, pc} -_0200A7F0: - cmp r2, #0 - bne _0200A898 - cmp r1, #2 - bne _0200A874 - mov lr, #0 - mov r1, lr - mov r2, lr - b _0200A864 -_0200A810: - mov r4, r2 -_0200A814: - add r4, r4, #1 - cmp r4, #0xf0 - strh r1, [ip], #2 - add lr, lr, #1 - blt _0200A814 - mov r4, r1 -_0200A82C: - ldrb r5, [r3, #1] - ldrb r6, [r3, #2] - ldrb r7, [r3], #4 - and r5, r5, #0xf8 - and r6, r6, #0xf8 - lsl r5, r5, #2 - add r4, r4, #1 - and r7, r7, #0xf8 - orr r5, r5, r6, lsl #7 - orr r5, r5, r7, asr #3 - cmp r4, #0x10 - strh r5, [ip], #2 - add lr, lr, #1 - blt _0200A82C -_0200A864: - ldr r4, [r0, #4] - cmp lr, r4 - blt _0200A810 - pop {r4, r5, r6, r7, r8, pc} -_0200A874: - mov r3, #0 - mov r2, r3 - b _0200A888 -_0200A880: - strh r2, [ip], #2 - add r3, r3, #1 -_0200A888: - ldr r1, [r0, #4] - cmp r3, r1 - blt _0200A880 - pop {r4, r5, r6, r7, r8, pc} -_0200A898: - cmp r1, #2 - mov lr, #0 - bne _0200A9D4 - b _0200A95C -_0200A8A8: - mov r4, #0 -_0200A8AC: - ldrb r1, [r3, #1] - ldrb r5, [r3, #2] - ldrb r6, [r3], #4 - mul r7, r1, r2 - mul r8, r5, r2 - mul r1, r6, r2 - asr r5, r7, #7 - add r7, r7, r5, lsr #24 - asr r6, r8, #7 - asr r5, r1, #7 - add r1, r1, r5, lsr #24 - add r6, r8, r6, lsr #24 - lsl r1, r1, #8 - add r4, r4, #1 - lsl r7, r7, #8 - lsl r5, r6, #8 - lsr r6, r7, #0x10 - lsr r7, r5, #0x10 - and r5, r6, #0xf8 - lsr r8, r1, #0x10 - lsl r1, r5, #2 - and r6, r7, #0xf8 - and r5, r8, #0xf8 - orr r1, r1, r6, lsl #7 - orr r1, r1, r5, asr #3 - strh r1, [ip], #2 - cmp r4, #0xf0 - add lr, lr, #1 - blt _0200A8AC - mov r1, #0 -_0200A924: - ldrb r4, [r3, #1] - ldrb r5, [r3, #2] - ldrb r6, [r3], #4 - and r4, r4, #0xf8 - and r5, r5, #0xf8 - lsl r4, r4, #2 - add r1, r1, #1 - and r6, r6, #0xf8 - orr r4, r4, r5, lsl #7 - orr r4, r4, r6, asr #3 - cmp r1, #0x10 - strh r4, [ip], #2 - add lr, lr, #1 - blt _0200A924 -_0200A95C: - ldr r1, [r0, #4] - cmp lr, r1 - blt _0200A8A8 - pop {r4, r5, r6, r7, r8, pc} -_0200A96C: - ldrb r1, [r3, #1] - ldrb r4, [r3, #2] - ldrb r5, [r3], #4 - mul r6, r1, r2 - mul r7, r4, r2 - mul r1, r5, r2 - asr r4, r6, #7 - add r6, r6, r4, lsr #24 - asr r5, r7, #7 - asr r4, r1, #7 - add r1, r1, r4, lsr #24 - add r5, r7, r5, lsr #24 - lsl r1, r1, #8 - lsl r6, r6, #8 - lsl r4, r5, #8 - lsr r5, r6, #0x10 - lsr r6, r4, #0x10 - and r4, r5, #0xf8 - lsr r7, r1, #0x10 - lsl r1, r4, #2 - and r5, r6, #0xf8 - and r4, r7, #0xf8 - orr r1, r1, r5, lsl #7 - orr r1, r1, r4, asr #3 - strh r1, [ip], #2 - add lr, lr, #1 -_0200A9D4: - ldr r1, [r0, #4] - cmp lr, r1 - blt _0200A96C - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0200a78c - - arm_func_start FUN_0200a9e4 -FUN_0200a9e4: @ 0x0200A9E4 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr r1, [r0] - ldrh r5, [r0, #0xa] - ldr r1, [r1] - add r4, sp, #0 - add r6, r0, #0xc - mov r3, #4 -_0200AA00: - ldrb r2, [r6], #1 - subs r3, r3, #1 - strb r2, [r4], #1 - bne _0200AA00 - cmp r5, #0x100 - ldr r2, [r0, #0x18] - ldr r4, [r0, #0x1c] - blo _0200AA64 - mov r6, #0 - b _0200AA54 -_0200AA28: - ldrb r1, [r2, #1] - ldrb r3, [r2, #2] - ldrb r5, [r2], #4 - and r1, r1, #0xf8 - and r3, r3, #0xf8 - lsl r1, r1, #2 - and r5, r5, #0xf8 - orr r1, r1, r3, lsl #7 - orr r1, r1, r5, asr #3 - strh r1, [r4], #2 - add r6, r6, #1 -_0200AA54: - ldr r1, [r0, #4] - cmp r6, r1 - blt _0200AA28 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0200AA64: - cmp r5, #0 - bne _0200AB38 - ldrb r3, [sp, #1] - ldrb r5, [sp, #2] - ldrb r6, [sp] - and r3, r3, #0xf8 - and r5, r5, #0xf8 - lsl r3, r3, #2 - and r6, r6, #0xf8 - orr r3, r3, r5, lsl #7 - orr r3, r3, r6, asr #3 - lsl r3, r3, #0x10 - cmp r1, #2 - lsr r5, r3, #0x10 - bne _0200AB18 - mov r6, #0 - mov r3, r6 - mov r1, r6 - b _0200AB08 -_0200AAB0: - mov r7, r3 -_0200AAB4: - add r7, r7, #1 - cmp r7, #0xf0 - strh r5, [r4], #2 - add r2, r2, #4 - add r6, r6, #1 - blt _0200AAB4 - mov r7, r1 -_0200AAD0: - ldrb r8, [r2, #1] - ldrb sb, [r2, #2] - ldrb sl, [r2], #4 - and r8, r8, #0xf8 - and sb, sb, #0xf8 - lsl r8, r8, #2 - add r7, r7, #1 - and sl, sl, #0xf8 - orr r8, r8, sb, lsl #7 - orr r8, r8, sl, asr #3 - cmp r7, #0x10 - strh r8, [r4], #2 - add r6, r6, #1 - blt _0200AAD0 -_0200AB08: - ldr r7, [r0, #4] - cmp r6, r7 - blt _0200AAB0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0200AB18: - mov r2, #0 - b _0200AB28 -_0200AB20: - strh r5, [r4], #2 - add r2, r2, #1 -_0200AB28: - ldr r1, [r0, #4] - cmp r2, r1 - blt _0200AB20 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0200AB38: - rsb r3, r5, #0x100 - lsl r3, r3, #0x10 - ldrb r8, [sp] - lsr sb, r3, #0x10 - ldrb r7, [sp, #1] - ldrb r6, [sp, #2] - mul r3, r8, sb - mul ip, r7, sb - mul lr, r6, sb - cmp r1, #2 - bne _0200AC30 - mov r6, #0 - b _0200AC20 -_0200AB6C: - mov r7, #0 -_0200AB70: - ldrb r1, [r2, #1] - ldrb fp, [r2, #2] - ldrb sb, [r2], #4 - mla sl, r1, r5, ip - mla r8, fp, r5, lr - mla r1, sb, r5, r3 - asr sb, sl, #7 - add sb, sl, sb, lsr #24 - asr fp, r8, #7 - add r8, r8, fp, lsr #24 - asr sl, r1, #7 - lsl sb, sb, #8 - add r1, r1, sl, lsr #24 - lsl r8, r8, #8 - lsl r1, r1, #8 - lsr r1, r1, #0x10 - add r7, r7, #1 - lsr sb, sb, #0x10 - lsr sl, r8, #0x10 - and r8, sb, #0xf8 - and sb, sl, #0xf8 - lsl r8, r8, #2 - and r1, r1, #0xf8 - orr r8, r8, sb, lsl #7 - orr r1, r8, r1, asr #3 - strh r1, [r4], #2 - cmp r7, #0xf0 - add r6, r6, #1 - blt _0200AB70 - mov r7, #0 -_0200ABE8: - ldrb r8, [r2, #1] - ldrb sb, [r2, #2] - ldrb r1, [r2], #4 - and r8, r8, #0xf8 - and sb, sb, #0xf8 - lsl r8, r8, #2 - and sl, r1, #0xf8 - orr r1, r8, sb, lsl #7 - add r7, r7, #1 - orr r1, r1, sl, asr #3 - cmp r7, #0x10 - strh r1, [r4], #2 - add r6, r6, #1 - blt _0200ABE8 -_0200AC20: - ldr r1, [r0, #4] - cmp r6, r1 - blt _0200AB6C - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0200AC30: - mov r7, #0 - b _0200ACA0 -_0200AC38: - ldrb r1, [r2, #1] - ldrb r6, [r2, #2] - ldrb r8, [r2], #4 - mla sl, r1, r5, ip - mla r1, r6, r5, lr - mla r6, r8, r5, r3 - asr r8, sl, #7 - add sl, sl, r8, lsr #24 - asr sb, r1, #7 - asr r8, r6, #7 - add sb, r1, sb, lsr #24 - add r1, r6, r8, lsr #24 - lsl sl, sl, #8 - lsl r6, sb, #8 - lsr r8, sl, #0x10 - lsl r1, r1, #8 - lsr sb, r6, #0x10 - and r6, r8, #0xf8 - lsr sl, r1, #0x10 - lsl r1, r6, #2 - and r8, sb, #0xf8 - and r6, sl, #0xf8 - orr r1, r1, r8, lsl #7 - orr r1, r1, r6, asr #3 - strh r1, [r4], #2 - add r7, r7, #1 -_0200ACA0: - ldr r1, [r0, #4] - cmp r7, r1 - blt _0200AC38 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0200a9e4 - - arm_func_start FUN_0200acb0 -FUN_0200acb0: @ 0x0200ACB0 - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #4 - ldr r1, [r0] - ldrh r2, [r0, #0xa] - ldr r1, [r1] - add r5, sp, #0 - add r6, r0, #0xc - mov r4, #4 -_0200ACD0: - ldrb r3, [r6], #1 - subs r4, r4, #1 - strb r3, [r5], #1 - bne _0200ACD0 - cmp r2, #0x100 - ldr r3, [r0, #0x18] - ldr r4, [r0, #0x1c] - blo _0200AD20 - ldrb r2, [sp, #1] - ldrb r5, [sp, #2] - ldrb r6, [sp] - and r2, r2, #0xf8 - and r5, r5, #0xf8 - lsl r2, r2, #2 - and r6, r6, #0xf8 - orr r2, r2, r5, lsl #7 - orr r2, r2, r6, asr #3 - lsl r2, r2, #0x10 - lsr ip, r2, #0x10 - b _0200AD94 -_0200AD20: - cmp r2, #0 - moveq ip, #0 - beq _0200AD94 - ldrb r5, [sp, #1] - ldrb r7, [sp, #2] - ldrb ip, [sp] - mul r6, r5, r2 - mul r8, r7, r2 - mul r7, ip, r2 - asr r2, r6, #7 - asr r5, r8, #7 - add ip, r6, r2, lsr #24 - asr r2, r7, #7 - add r5, r8, r5, lsr #24 - lsl ip, ip, #8 - add r2, r7, r2, lsr #24 - lsl r5, r5, #8 - lsr r6, ip, #0x10 - lsl r2, r2, #8 - lsr r7, r5, #0x10 - and r5, r6, #0xf8 - lsr r8, r2, #0x10 - and r6, r7, #0xf8 - lsl r2, r5, #2 - and r5, r8, #0xf8 - orr r2, r2, r6, lsl #7 - orr r2, r2, r5, asr #3 - lsl r2, r2, #0x10 - lsr ip, r2, #0x10 -_0200AD94: - cmp r1, #2 - bne _0200AE14 - mov lr, #0 - mov r2, lr - mov r1, lr - b _0200AE04 -_0200ADAC: - mov r5, r2 -_0200ADB0: - add r5, r5, #1 - cmp r5, #0xf0 - strh ip, [r4], #2 - add r3, r3, #4 - add lr, lr, #1 - blt _0200ADB0 - mov r5, r1 -_0200ADCC: - ldrb r6, [r3, #1] - ldrb r7, [r3, #2] - ldrb r8, [r3], #4 - and r6, r6, #0xf8 - and r7, r7, #0xf8 - lsl r6, r6, #2 - add r5, r5, #1 - and r8, r8, #0xf8 - orr r6, r6, r7, lsl #7 - orr r6, r6, r8, asr #3 - cmp r5, #0x10 - strh r6, [r4], #2 - add lr, lr, #1 - blt _0200ADCC -_0200AE04: - ldr r5, [r0, #4] - cmp lr, r5 - blt _0200ADAC - b _0200AE30 -_0200AE14: - mov r2, #0 - b _0200AE24 -_0200AE1C: - strh ip, [r4], #2 - add r2, r2, #1 -_0200AE24: - ldr r1, [r0, #4] - cmp r2, r1 - blt _0200AE1C -_0200AE30: - add sp, sp, #4 - pop {r3, r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0200acb0 - - arm_func_start FUN_0200ae38 -FUN_0200ae38: @ 0x0200AE38 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x18 - mov sl, r0 - ldr r1, [sl] - ldrh r0, [sl, #0xa] - ldr fp, [r1] - add r3, sp, #0x14 - add r4, sl, #0xc - mov r2, #4 -_0200AE5C: - ldrb r1, [r4], #1 - subs r2, r2, #1 - strb r1, [r3], #1 - bne _0200AE5C - cmp r0, #0x100 - ldr r4, [sl, #0x18] - ldr r5, [sl, #0x1c] - blo _0200AEC0 - mov r3, #0 - b _0200AEB0 -_0200AE84: - ldrb r0, [r4, #1] - ldrb r1, [r4, #2] - ldrb r2, [r4], #4 - and r0, r0, #0xf8 - and r1, r1, #0xf8 - lsl r0, r0, #2 - and r2, r2, #0xf8 - orr r0, r0, r1, lsl #7 - orr r0, r0, r2, asr #3 - strh r0, [r5], #2 - add r3, r3, #1 -_0200AEB0: - ldr r0, [sl, #4] - cmp r3, r0 - blt _0200AE84 - b _0200B0A4 -_0200AEC0: - ldrb sb, [sp, #0x14] - ldrb r7, [sp, #0x15] - ldrb r3, [sp, #0x16] - rsb r6, sb, #0xff - mul r8, r6, r0 - rsb r2, r7, #0xff - asr ip, r8, #7 - add r8, r8, ip, lsr #24 - add r8, sb, r8, asr #8 - rsb r1, r3, #0xff - mul r6, r2, r0 - mul r2, r1, r0 - asr r0, r6, #7 - asr r1, r2, #7 - add r0, r6, r0, lsr #24 - add r1, r2, r1, lsr #24 - add r6, r7, r0, asr #8 - add r2, r3, r1, asr #8 - lsl r0, r8, #0x10 - lsl r1, r6, #0x10 - lsl r2, r2, #0x10 - cmp fp, #2 - lsr r8, r0, #0x10 - lsr r6, r1, #0x10 - lsr r7, r2, #0x10 - mov sb, #0 - bne _0200B098 - b _0200B004 -_0200AF30: - mov fp, #0 -_0200AF34: - ldrb r2, [r4] - str r5, [sp] - mov r1, #0xff - mul r0, r2, r8 - add r5, r5, #2 - bl DivideInt - ldrb r2, [r4, #2] - str r0, [sp, #4] - mov r1, #0xff - mul r0, r2, r7 - bl DivideInt - ldrb r2, [r4, #1] - str r0, [sp, #8] - mov r1, #0xff - mul r0, r2, r6 - bl DivideInt - ldr r1, [sp, #4] - lsl r0, r0, #0x10 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - and r2, r1, #0xf8 - ldr r1, [sp, #8] - lsr r0, r0, #0x10 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - and r0, r0, #0xf8 - add fp, fp, #1 - and r1, r1, #0xf8 - lsl r0, r0, #2 - orr r0, r0, r1, lsl #7 - orr r1, r0, r2, asr #3 - ldr r0, [sp] - add r4, r4, #4 - strh r1, [r0] - cmp fp, #0xf0 - add sb, sb, #1 - blt _0200AF34 - mov r1, #0 -_0200AFCC: - ldrb r2, [r4, #1] - ldrb r3, [r4, #2] - ldrb r0, [r4], #4 - and r2, r2, #0xf8 - and r3, r3, #0xf8 - lsl r2, r2, #2 - and fp, r0, #0xf8 - orr r0, r2, r3, lsl #7 - add r1, r1, #1 - orr r0, r0, fp, asr #3 - cmp r1, #0x10 - strh r0, [r5], #2 - add sb, sb, #1 - blt _0200AFCC -_0200B004: - ldr r0, [sl, #4] - cmp sb, r0 - blt _0200AF30 - b _0200B0A4 -_0200B014: - ldrb r2, [r4] - mov fp, r5 - mov r1, #0xff - mul r0, r2, r8 - add r5, r5, #2 - bl DivideInt - ldrb r2, [r4, #2] - str r0, [sp, #0xc] - mov r1, #0xff - mul r0, r2, r7 - bl DivideInt - ldrb r2, [r4, #1] - str r0, [sp, #0x10] - mov r1, #0xff - mul r0, r2, r6 - bl DivideInt - ldr r1, [sp, #0xc] - lsl r0, r0, #0x10 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - and r2, r1, #0xf8 - ldr r1, [sp, #0x10] - lsr r0, r0, #0x10 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - and r0, r0, #0xf8 - and r1, r1, #0xf8 - lsl r0, r0, #2 - orr r0, r0, r1, lsl #7 - orr r0, r0, r2, asr #3 - strh r0, [fp] - add r4, r4, #4 - add sb, sb, #1 -_0200B098: - ldr r0, [sl, #4] - cmp sb, r0 - blt _0200B014 -_0200B0A4: - add sp, sp, #0x18 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0200ae38 - - arm_func_start FUN_0200b0ac -FUN_0200b0ac: @ 0x0200B0AC - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x18 - mov sl, r0 - ldr r0, [sl] - ldrh r3, [sl, #0xa] - ldr r2, [r0] - add r4, sp, #0x14 - add r5, sl, #0xc - mov r1, #4 -_0200B0D0: - ldrb r0, [r5], #1 - subs r1, r1, #1 - strb r0, [r4], #1 - bne _0200B0D0 - ldrb r0, [sp, #0x14] - ldrb r7, [sp, #0x15] - cmp r3, #0x100 - movhs r3, #0x100 - ldrb r5, [sp, #0x16] - mul r1, r0, r3 - mul r0, r7, r3 - mul r8, r5, r3 - asr r3, r1, #7 - asr r5, r0, #7 - add r1, r1, r3, lsr #24 - add r3, r0, r5, lsr #24 - lsl r0, r1, #8 - asr r7, r8, #7 - add r5, r8, r7, lsr #24 - lsl r1, r3, #8 - lsl r3, r5, #8 - ldr r4, [sl, #0x18] - ldr r6, [sl, #0x1c] - cmp r2, #2 - lsr sb, r0, #0x10 - lsr r7, r1, #0x10 - lsr r8, r3, #0x10 - mov r5, #0 - bne _0200B2B0 - b _0200B21C -_0200B148: - mov fp, #0 -_0200B14C: - ldrb r2, [r4] - str r6, [sp] - mov r1, #0xff - mul r0, r2, sb - add r6, r6, #2 - bl DivideInt - ldrb r2, [r4, #2] - str r0, [sp, #4] - mov r1, #0xff - mul r0, r2, r8 - bl DivideInt - ldrb r2, [r4, #1] - str r0, [sp, #8] - mov r1, #0xff - mul r0, r2, r7 - bl DivideInt - ldr r1, [sp, #4] - lsl r0, r0, #0x10 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - and r2, r1, #0xf8 - ldr r1, [sp, #8] - lsr r0, r0, #0x10 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - and r0, r0, #0xf8 - add fp, fp, #1 - and r1, r1, #0xf8 - lsl r0, r0, #2 - orr r0, r0, r1, lsl #7 - orr r1, r0, r2, asr #3 - ldr r0, [sp] - add r4, r4, #4 - strh r1, [r0] - cmp fp, #0xf0 - add r5, r5, #1 - blt _0200B14C - mov r1, #0 -_0200B1E4: - ldrb r2, [r4, #1] - ldrb r3, [r4, #2] - ldrb r0, [r4], #4 - and r2, r2, #0xf8 - and r3, r3, #0xf8 - lsl r2, r2, #2 - and fp, r0, #0xf8 - orr r0, r2, r3, lsl #7 - add r1, r1, #1 - orr r0, r0, fp, asr #3 - cmp r1, #0x10 - strh r0, [r6], #2 - add r5, r5, #1 - blt _0200B1E4 -_0200B21C: - ldr r0, [sl, #4] - cmp r5, r0 - blt _0200B148 - b _0200B2BC -_0200B22C: - ldrb r2, [r4] - mov fp, r6 - mov r1, #0xff - mul r0, r2, sb - add r6, r6, #2 - bl DivideInt - ldrb r2, [r4, #2] - str r0, [sp, #0xc] - mov r1, #0xff - mul r0, r2, r8 - bl DivideInt - ldrb r2, [r4, #1] - str r0, [sp, #0x10] - mov r1, #0xff - mul r0, r2, r7 - bl DivideInt - ldr r1, [sp, #0xc] - lsl r0, r0, #0x10 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - and r2, r1, #0xf8 - ldr r1, [sp, #0x10] - lsr r0, r0, #0x10 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - and r0, r0, #0xf8 - and r1, r1, #0xf8 - lsl r0, r0, #2 - orr r0, r0, r1, lsl #7 - orr r0, r0, r2, asr #3 - strh r0, [fp] - add r4, r4, #4 - add r5, r5, #1 -_0200B2B0: - ldr r0, [sl, #4] - cmp r5, r0 - blt _0200B22C -_0200B2BC: - add sp, sp, #0x18 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0200b0ac - - arm_func_start FUN_0200b2c4 -FUN_0200b2c4: @ 0x0200B2C4 - push {r4, lr} - mov r4, r0 - strb r1, [r4] - mov r0, #0 - strb r0, [r4, #1] - str r3, [r4, #0x10] - str r0, [r4, #4] - str r0, [r4, #8] - str r2, [r4, #0xc] - ldrb r2, [r4] - ldr r0, _0200B310 @ =0x02092AD8 - ldr r1, [sp, #8] - ldr r0, [r0, r2, lsl #2] - str r0, [r4, #0x14] - bl MemAlloc - str r0, [r4, #0x18] - mov r0, r4 - bl FUN_0200b3d4 - pop {r4, pc} - .align 2, 0 -_0200B310: .4byte 0x02092AD8 - arm_func_end FUN_0200b2c4 - - arm_func_start FUN_0200b314 -FUN_0200b314: @ 0x0200B314 - push {r4, lr} - mov r4, r0 - ldr r0, [r4, #0x18] - bl MemFree - mov r0, #0 - str r0, [r4, #0x18] - pop {r4, pc} - arm_func_end FUN_0200b314 - - arm_func_start FUN_0200b330 -FUN_0200b330: @ 0x0200B330 - mov r1, #1 - strb r1, [r0, #1] - bx lr - arm_func_end FUN_0200b330 - - arm_func_start FUN_0200b33c -FUN_0200b33c: @ 0x0200B33C - bx lr - arm_func_end FUN_0200b33c - - arm_func_start FUN_0200b340 -FUN_0200b340: @ 0x0200B340 - push {r3, r4, r5, r6, lr} - sub sp, sp, #4 - mov r4, r0 - ldr r0, _0200B3BC @ =0x000001FF - ldmib r4, {r1, r2} - and r1, r1, r0 - lsl r2, r2, #0x17 - ldr r0, [r4, #0xc] - orr r1, r1, r2, lsr #7 - str r1, [r0] - ldrb r0, [r4, #1] - cmp r0, #0 - beq _0200B3B4 - ldr r5, [r4, #0x18] - ldr r1, [r4, #0x14] - mov r0, r5 - ldr r6, [r4, #0x10] - bl FUN_0207a2dc - ldr ip, [r4, #0x14] - mov r2, r6 - mov r3, r5 - mov r0, #3 - mov r1, #1 - str ip, [sp] - bl FUN_02005e10 - mov r0, #3 - bl FUN_02005d30 - mov r0, #0 - strb r0, [r4, #1] -_0200B3B4: - add sp, sp, #4 - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_0200B3BC: .4byte 0x000001FF - arm_func_end FUN_0200b340 - - arm_func_start FUN_0200b3c0 -FUN_0200b3c0: @ 0x0200B3C0 - ldr r2, [r1] - ldr r1, [r1, #4] - str r2, [r0, #4] - str r1, [r0, #8] - bx lr - arm_func_end FUN_0200b3c0 - - arm_func_start FUN_0200b3d4 -FUN_0200b3d4: @ 0x0200B3D4 - mov r3, #0 - ldr ip, [r0, #0x18] - mov r2, r3 - b _0200B3EC -_0200B3E4: - strh r2, [ip], #2 - add r3, r3, #1 -_0200B3EC: - ldr r1, [r0, #0x14] - cmp r3, r1, lsr #1 - blo _0200B3E4 - bx lr - arm_func_end FUN_0200b3d4 - - arm_func_start FUN_0200b3fc -FUN_0200b3fc: @ 0x0200B3FC - ldrb r3, [r0] - cmp r3, #3 - addls pc, pc, r3, lsl #2 - bx lr -_0200B40C: @ jump table - b _0200B41C @ case 0 - b _0200B438 @ case 1 - b _0200B470 @ case 2 - b _0200B48C @ case 3 -_0200B41C: - ldr ip, [r0, #0x18] - ldr r0, [r1, #4] - ldr r3, [r1] - add r0, ip, r0, lsl #6 - lsl r1, r3, #1 - strh r2, [r1, r0] - bx lr -_0200B438: - ldr ip, [r1] - ldr r3, [r0, #0x18] - cmp ip, #0x20 - ldrlt r0, [r1, #4] - lsllt r1, ip, #1 - addlt r0, r3, r0, lsl #6 - strhlt r2, [r1, r0] - bxlt lr - ldr r0, [r1, #4] - add r0, r3, r0, lsl #6 - add r0, r0, ip, lsl #1 - add r0, r0, #0x700 - strh r2, [r0, #0xc0] - bx lr -_0200B470: - ldr ip, [r0, #0x18] - ldr r0, [r1, #4] - ldr r3, [r1] - add r0, ip, r0, lsl #6 - lsl r1, r3, #1 - strh r2, [r1, r0] - bx lr -_0200B48C: - ldr ip, [r1, #4] - cmp ip, #0x40 - bge _0200B4C4 - ldr r1, [r1] - ldr r0, [r0, #0x18] - cmp r1, #0x20 - lsllt r1, r1, #1 - addlt r0, r0, ip, lsl #6 - strhlt r2, [r1, r0] - addge r0, r0, ip, lsl #6 - addge r0, r0, r1, lsl #1 - addge r0, r0, #0x700 - strhge r2, [r0, #0xc0] - bx lr -_0200B4C4: - ldr r3, [r1] - ldr r1, [r0, #0x18] - cmp r3, #0x20 - subge r0, ip, #0x20 - addge r0, r1, r0, lsl #6 - addge r0, r0, r3, lsl #1 - addge r0, r0, #0x1700 - strhge r2, [r0, #0xc0] - bxge lr - sub r0, ip, #0x20 - add r0, r1, r0, lsl #6 - add r0, r0, r3, lsl #1 - add r0, r0, #0x1000 - strh r2, [r0] - bx lr - arm_func_end FUN_0200b3fc - - arm_func_start FUN_0200b500 -FUN_0200b500: @ 0x0200B500 - ldr r0, [r0, #0x18] - bx lr - arm_func_end FUN_0200b500 - - arm_func_start FUN_0200b508 -FUN_0200b508: @ 0x0200B508 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - str r4, [r5] - str r2, [r5, #4] - mov r0, #0 - strb r0, [r5, #0x14] - str r3, [r5, #0x18] - cmp r2, #0 - strle r0, [r5, #0xc] - ble _0200B550 - ldr r1, [sp, #0x10] - lsl r0, r2, #1 - bl MemAlloc - str r0, [r5, #0xc] - ldr r1, [sp, #0x10] - lsl r0, r4, #3 - bl MemAlloc -_0200B550: - ldr r1, [sp, #0x10] - str r0, [r5, #0x10] - lsl r0, r4, #3 - bl MemAlloc - str r0, [r5, #0x1c] - mov r0, r5 - bl FUN_0200b67c - pop {r3, r4, r5, pc} - arm_func_end FUN_0200b508 - - arm_func_start FUN_0200b570 -FUN_0200b570: @ 0x0200B570 - mov r1, #1 - strb r1, [r0, #0x14] - bx lr - arm_func_end FUN_0200b570 - - arm_func_start FUN_0200b57c -FUN_0200b57c: @ 0x0200B57C - push {r3, r4, r5, lr} - ldr ip, [r0, #8] - cmp ip, #0 - pople {r3, r4, r5, pc} - ldr r3, [r0] - ldr r2, [r0, #0x1c] - sub r1, r3, #1 - add lr, r2, r1, lsl #3 - sub r3, r3, ip - ldr r4, [r0, #0xc] - mov r2, #0x200 - mov r1, #0 - b _0200B5C4 -_0200B5B0: - strh r2, [lr] - strh r1, [lr, #2] - strh r1, [lr, #4] - sub lr, lr, #8 - sub r3, r3, #1 -_0200B5C4: - cmp r3, #0 - bgt _0200B5B0 - ldr r5, [r0, #4] - mvn r3, #0 - b _0200B61C -_0200B5D8: - ldrsh ip, [r4] - strh r3, [r4], #2 - b _0200B610 -_0200B5E4: - ldr r2, [r0, #0x10] - lsl r1, ip, #3 - ldrh r1, [r2, r1] - add r2, r2, ip, lsl #3 - strh r1, [lr] - ldrh r1, [r2, #2] - strh r1, [lr, #2] - ldrh r1, [r2, #4] - strh r1, [lr, #4] - ldrsh ip, [r2, #6] - sub lr, lr, #8 -_0200B610: - cmp ip, #0 - bge _0200B5E4 - sub r5, r5, #1 -_0200B61C: - cmp r5, #0 - bgt _0200B5D8 +_022BCBE0: + ldr r0, _022BCC2C @ =0x023187A0 mov r1, #0 str r1, [r0, #8] - pop {r3, r4, r5, pc} - arm_func_end FUN_0200b57c - - arm_func_start FUN_0200b630 -FUN_0200b630: @ 0x0200B630 - push {r4, r5, r6, lr} - mov r6, r0 - ldrb r0, [r6, #0x14] - cmp r0, #0 - popeq {r4, r5, r6, pc} - ldr r4, [r6, #0x1c] - ldr r1, [r6] - mov r0, r4 - lsl r1, r1, #3 - ldr r5, [r6, #0x18] - bl FUN_0207a2dc - ldr r2, [r6] - mov r0, r5 - mov r1, r4 - lsl r2, r2, #3 - bl Memcpy32 - mov r0, #0 - strb r0, [r6, #0x14] - pop {r4, r5, r6, pc} - arm_func_end FUN_0200b630 - - arm_func_start FUN_0200b67c -FUN_0200b67c: @ 0x0200B67C - push {r3, lr} - ldr ip, [r0, #0x1c] - mov lr, #0 - str lr, [r0, #8] - mov r3, #0x200 - mov r2, lr - b _0200B6B0 -_0200B698: - strh r3, [ip] - strh r2, [ip, #2] - strh r2, [ip, #4] - strh r2, [ip, #6] - add ip, ip, #8 - add lr, lr, #1 -_0200B6B0: - ldr r1, [r0] - cmp lr, r1 - blt _0200B698 - ldr r1, [r0, #4] + pop {r3, pc} +_022BCBF0: + ldr r0, _022BCC2C @ =0x023187A0 + ldr r1, [r0, #8] cmp r1, #0 pople {r3, pc} - ldr r3, [r0, #0xc] - mov ip, #0 - mvn r2, #0 - b _0200B6E0 -_0200B6D8: - strh r2, [r3], #2 - add ip, ip, #1 -_0200B6E0: - ldr r1, [r0, #4] - cmp ip, r1 - blt _0200B6D8 + subs r1, r1, #1 + str r1, [r0, #8] + popne {r3, pc} + ldr r0, [r0, #0x10] + bl FUN_02001188 + ldr r0, _022BCC2C @ =0x023187A0 + mov r1, #0 + str r1, [r0, #0x10] + str r1, [r0, #0x20] + str r1, [r0, #0x18] pop {r3, pc} - arm_func_end FUN_0200b67c + .align 2, 0 +_022BCC2C: .4byte 0x023187A0 + arm_func_end ov00_022BCBAC - arm_func_start FUN_0200b6f0 -FUN_0200b6f0: @ 0x0200B6F0 + arm_func_start ov00_022BCC30 +ov00_022BCC30: @ 0x022BCC30 + push {r3, lr} + cmp r0, #0 + bne _022BCC64 + ldr r0, _022BCC88 @ =0x023187A0 + ldr r0, [r0, #0xc] + bl ov00_022DB7BC + cmp r0, #0 + beq _022BCC64 + ldr r0, _022BCC88 @ =0x023187A0 + ldr r0, [r0, #0xc] + bl ov00_022DBC64 + mov r0, #1 + pop {r3, pc} +_022BCC64: + ldr r0, _022BCC88 @ =0x023187A0 + ldr r1, _022BCC8C @ =0x59465945 + ldr r0, [r0, #0xc] + bl ov00_022DB5B8 + ldr r0, _022BCC88 @ =0x023187A0 + ldr r0, [r0, #0xc] + bl ov00_022DBC64 + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_022BCC88: .4byte 0x023187A0 +_022BCC8C: .4byte 0x59465945 + arm_func_end ov00_022BCC30 + + arm_func_start ov00_022BCC90 +ov00_022BCC90: @ 0x022BCC90 + push {r3, lr} + ldr r0, _022BCCA8 @ =0x023187A0 + ldr r0, [r0, #0xc] + bl ov00_022DB8F0 + and r0, r0, #0xff + pop {r3, pc} + .align 2, 0 +_022BCCA8: .4byte 0x023187A0 + arm_func_end ov00_022BCC90 +_022BCCAC: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0x0C, 0x00, 0x9F, 0xE5, 0x0C, 0x00, 0x90, 0xE5, 0xD0, 0x7A, 0x00, 0xEB, 0xFF, 0x00, 0x00, 0xE2 + .byte 0x08, 0x80, 0xBD, 0xE8, 0xA0, 0x87, 0x31, 0x02 + + arm_func_start ov00_022BCCC8 +ov00_022BCCC8: @ 0x022BCCC8 + stmdb sp!, {lr} + sub sp, sp, #0xc + add r0, sp, #0 + bl ov00_022BCD4C + ldr r0, _022BCCF0 @ =0x023187A0 + add r1, sp, #0 + ldr r0, [r0, #0xc] + bl ov00_022DB98C + add sp, sp, #0xc + ldm sp!, {pc} + .align 2, 0 +_022BCCF0: .4byte 0x023187A0 + arm_func_end ov00_022BCCC8 + + arm_func_start ov00_022BCCF4 +ov00_022BCCF4: @ 0x022BCCF4 + push {r3, lr} + ldr r0, _022BCD0C @ =0x023187A0 + ldr r0, [r0, #0xc] + bl ov00_022DB830 + and r0, r0, #0xff + pop {r3, pc} + .align 2, 0 +_022BCD0C: .4byte 0x023187A0 + arm_func_end ov00_022BCCF4 + + arm_func_start ov00_022BCD10 +ov00_022BCD10: @ 0x022BCD10 + ldr r1, _022BCD24 @ =0x023187A0 + ldr ip, _022BCD28 @ =FUN_020032D4 + mov r2, #0x40 + ldr r1, [r1, #0xc] + bx ip + .align 2, 0 +_022BCD24: .4byte 0x023187A0 +_022BCD28: .4byte FUN_020032D4 + arm_func_end ov00_022BCD10 +_022BCD2C: + .byte 0x10, 0x20, 0x9F, 0xE5 + .byte 0x10, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x0C, 0x00, 0x92, 0xE5, 0x40, 0x20, 0xA0, 0xE3 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xA0, 0x87, 0x31, 0x02, 0xD4, 0x32, 0x00, 0x02 + + arm_func_start ov00_022BCD4C +ov00_022BCD4C: @ 0x022BCD4C push {r4, lr} - ldr r4, [r0, #8] - ldr r3, [r0] - cmp r4, r3 - popge {r4, pc} + ldr r1, _022BCDA0 @ =0x023187A0 + mov r4, r0 + ldr r0, [r1, #0xc] + bl ov00_022DB800 + tst r0, #0xff + bne _022BCD7C + ldr r0, _022BCDA0 @ =0x023187A0 + mov r1, r4 + ldr r0, [r0, #0xc] + bl ov00_022DBA58 + pop {r4, pc} +_022BCD7C: + ldr r0, _022BCDA0 @ =0x023187A0 + ldr r0, [r0, #0xc] + bl ov00_022DB9EC + mov r3, r0 + mov r2, r1 + mov r0, r4 + mov r1, r3 + bl ov00_022DBA1C + pop {r4, pc} + .align 2, 0 +_022BCDA0: .4byte 0x023187A0 + arm_func_end ov00_022BCD4C +_022BCDA4: + .byte 0x08, 0x00, 0x9F, 0xE5, 0x08, 0xC0, 0x9F, 0xE5, 0x0C, 0x00, 0x90, 0xE5 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xA0, 0x87, 0x31, 0x02, 0xEC, 0xB9, 0x2D, 0x02, 0xF8, 0x4F, 0x2D, 0xE9 + .byte 0x10, 0xD0, 0x4D, 0xE2, 0x00, 0xA0, 0xB0, 0xE1, 0x01, 0x90, 0xA0, 0xE1, 0x00, 0x20, 0x8D, 0xE5 + .byte 0x04, 0x00, 0xA0, 0x03, 0x4B, 0x00, 0x00, 0x0A, 0x6B, 0x7A, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x04, 0x00, 0xA0, 0x03, 0x47, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x8D, 0xE2, 0xD6, 0xFF, 0xFF, 0xEB + .byte 0x04, 0x10, 0x8D, 0xE2, 0x0A, 0x00, 0xA0, 0xE1, 0x3E, 0x7B, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x01, 0x00, 0xA0, 0x13, 0x3F, 0x00, 0x00, 0x1A, 0x00, 0x01, 0x9F, 0xE5, 0x0A, 0x10, 0xA0, 0xE1 + .byte 0x0C, 0x00, 0x90, 0xE5, 0xDC, 0x7A, 0x00, 0xEB, 0x00, 0x50, 0xA0, 0xE3, 0x00, 0x70, 0xA0, 0xE1 + .byte 0x01, 0x60, 0x45, 0xE2, 0x00, 0xB0, 0xE0, 0xE3, 0x20, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0xA0, 0xE3 + .byte 0x95, 0x00, 0x08, 0xE0, 0xD4, 0x00, 0x9F, 0xE5, 0x0C, 0x00, 0x90, 0xE5, 0xE0, 0x00, 0x80, 0xE2 + .byte 0x08, 0x00, 0x80, 0xE0, 0x50, 0x7A, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x14, 0x00, 0x00, 0x0A + .byte 0xB8, 0x00, 0x9F, 0xE5, 0x0C, 0x00, 0x90, 0xE5, 0xE0, 0x10, 0x80, 0xE2, 0x08, 0x10, 0x81, 0xE0 + .byte 0xC9, 0x7A, 0x00, 0xEB, 0xA4, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x0C, 0x10, 0x91, 0xE5 + .byte 0xE0, 0x00, 0x81, 0xE2, 0x08, 0x10, 0x80, 0xE0, 0x0A, 0x00, 0xA0, 0xE1, 0x1D, 0x7B, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x54, 0xE3, 0x00, 0x00, 0x57, 0xC3 + .byte 0x05, 0x00, 0x00, 0xDA, 0x07, 0x00, 0x54, 0xE1, 0x03, 0x00, 0x00, 0x1A, 0x02, 0x00, 0xA0, 0xE3 + .byte 0x18, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x56, 0xE1, 0x05, 0x60, 0xA0, 0x01, 0x01, 0x50, 0x85, 0xE2 + .byte 0x10, 0x00, 0x55, 0xE3, 0xDC, 0xFF, 0xFF, 0xBA, 0x00, 0x00, 0x56, 0xE3, 0x10, 0x00, 0x00, 0xBA + .byte 0x00, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x0B, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x59, 0xE3 + .byte 0x04, 0x00, 0xA0, 0x03, 0x0B, 0x00, 0x00, 0x0A, 0x06, 0x08, 0xA0, 0xE1, 0x0A, 0x10, 0xA0, 0xE1 + .byte 0x09, 0x20, 0xA0, 0xE1, 0x20, 0x08, 0xA0, 0xE1, 0x1F, 0x00, 0x00, 0xEB, 0x06, 0x08, 0xA0, 0xE1 + .byte 0x20, 0x08, 0xA0, 0xE1, 0x00, 0x10, 0xA0, 0xE3, 0xE9, 0x00, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x00, 0xEA, 0x03, 0x00, 0xA0, 0xE3, 0x10, 0xD0, 0x8D, 0xE2, 0xF8, 0x8F, 0xBD, 0xE8 + .byte 0xA0, 0x87, 0x31, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1, 0x10, 0x00, 0x54, 0xE3 + .byte 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0x23, 0x10, 0x80, 0xBD, 0x28 + .byte 0x30, 0x10, 0x9F, 0xE5, 0x0C, 0x00, 0xA0, 0xE3, 0x0C, 0x30, 0x91, 0xE5, 0x94, 0x30, 0x20, 0xE0 + .byte 0xE0, 0x00, 0x80, 0xE2, 0x07, 0x00, 0x90, 0xE8, 0x07, 0x00, 0x8E, 0xE8, 0x40, 0x00, 0x83, 0xE2 + .byte 0x0A, 0x20, 0xA0, 0xE3, 0x94, 0x02, 0x21, 0xE0, 0x0C, 0x00, 0xA0, 0xE1, 0xDC, 0x18, 0xF5, 0xEB + .byte 0x01, 0x00, 0xA0, 0xE3, 0x10, 0x80, 0xBD, 0xE8, 0xA0, 0x87, 0x31, 0x02, 0x10, 0x40, 0x2D, 0xE9 + .byte 0x00, 0x40, 0xA0, 0xE1, 0x10, 0x00, 0x54, 0xE3, 0x02, 0xE0, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0x23 + .byte 0x10, 0x80, 0xBD, 0x28, 0x00, 0x00, 0x5E, 0xE3, 0x00, 0x00, 0x51, 0x13, 0x00, 0x00, 0xA0, 0x03 + .byte 0x10, 0x80, 0xBD, 0x08, 0x30, 0x00, 0x9F, 0xE5, 0x0C, 0x30, 0xA0, 0xE3, 0x0C, 0xC0, 0x90, 0xE5 + .byte 0x07, 0x00, 0x91, 0xE8, 0x94, 0xC3, 0x23, 0xE0, 0xE0, 0x30, 0x83, 0xE2, 0x07, 0x00, 0x83, 0xE8 + .byte 0x40, 0x00, 0x8C, 0xE2, 0x0A, 0x20, 0xA0, 0xE3, 0x94, 0x02, 0x20, 0xE0, 0x0E, 0x10, 0xA0, 0xE1 + .byte 0xC3, 0x18, 0xF5, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x10, 0x80, 0xBD, 0xE8, 0xA0, 0x87, 0x31, 0x02 + .byte 0x38, 0x40, 0x2D, 0xE9, 0x00, 0x50, 0xA0, 0xE1, 0x10, 0x00, 0x55, 0xE3, 0x01, 0x40, 0xA0, 0xE1 + .byte 0x00, 0x00, 0xA0, 0x23, 0x38, 0x80, 0xBD, 0x28, 0x00, 0x00, 0x54, 0xE3, 0x02, 0x00, 0x00, 0x0A + .byte 0x2A, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x1A, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x38, 0x80, 0xBD, 0xE8, 0x1C, 0x00, 0x9F, 0xE5, 0x0A, 0x20, 0xA0, 0xE3, 0x0C, 0x00, 0x90, 0xE5 + .byte 0x04, 0x10, 0xA0, 0xE1, 0x40, 0x00, 0x80, 0xE2, 0x95, 0x02, 0x20, 0xE0, 0xAC, 0x18, 0xF5, 0xEB + .byte 0x01, 0x00, 0xA0, 0xE3, 0x38, 0x80, 0xBD, 0xE8, 0xA0, 0x87, 0x31, 0x02, 0xF0, 0x41, 0x2D, 0xE9 + .byte 0x00, 0x60, 0xA0, 0xE1, 0x00, 0x40, 0xA0, 0xE3, 0x5C, 0x80, 0x9F, 0xE5, 0x0C, 0x70, 0xA0, 0xE3 + .byte 0x11, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x98, 0xE5, 0x84, 0x07, 0x65, 0xE1, 0xE0, 0x00, 0x80, 0xE2 + .byte 0x05, 0x00, 0x80, 0xE0, 0xCC, 0x79, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x0A + .byte 0x0C, 0x10, 0x98, 0xE5, 0x06, 0x00, 0xA0, 0xE1, 0xE0, 0x10, 0x81, 0xE2, 0x05, 0x10, 0x81, 0xE0 + .byte 0xA0, 0x7A, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x04, 0x00, 0xA0, 0x11, 0xF0, 0x81, 0xBD, 0x18 + .byte 0x01, 0x00, 0x84, 0xE2, 0x00, 0x08, 0xA0, 0xE1, 0x40, 0x48, 0xA0, 0xE1, 0x10, 0x00, 0x54, 0xE3 + .byte 0xEB, 0xFF, 0xFF, 0xBA, 0x00, 0x00, 0xE0, 0xE3, 0xF0, 0x81, 0xBD, 0xE8, 0xA0, 0x87, 0x31, 0x02 + + arm_func_start ov00_022BD0A0 +ov00_022BD0A0: @ 0x022BD0A0 + push {r3, lr} + cmp r0, #0x10 + movhs r0, #0 + pophs {r3, pc} + ldr r2, _022BD0D0 @ =0x023187A0 + mov r1, #0xc + ldr r2, [r2, #0xc] + add r2, r2, #0xe0 + mla r0, r1, r0, r2 + bl ov00_022DB78C + and r0, r0, #0xff + pop {r3, pc} + .align 2, 0 +_022BD0D0: .4byte 0x023187A0 + arm_func_end ov00_022BD0A0 + + arm_func_start ov00_022BD0D4 +ov00_022BD0D4: @ 0x022BD0D4 + push {r4, lr} + mov r4, r0 + bl ov00_022BD0A0 + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} + ldr r1, _022BD104 @ =0x023187A0 + mov r0, #0xa + ldr r1, [r1, #0xc] + add r1, r1, #0x40 + mla r0, r4, r0, r1 + pop {r4, pc} + .align 2, 0 +_022BD104: .4byte 0x023187A0 + arm_func_end ov00_022BD0D4 + + arm_func_start ov00_022BD108 +ov00_022BD108: @ 0x022BD108 + push {r3, lr} + cmp r0, #0x10 + movhs r0, #0 + movhs r1, r0 + pophs {r3, pc} + ldr r2, _022BD138 @ =0x023187A0 + mov r1, #0xc + ldr r2, [r2, #0xc] + add r2, r2, #0xe0 + mla r0, r1, r0, r2 + bl ov00_022DB964 + pop {r3, pc} + .align 2, 0 +_022BD138: .4byte 0x023187A0 + arm_func_end ov00_022BD108 + + arm_func_start ov00_022BD13C +ov00_022BD13C: @ 0x022BD13C + push {r3, lr} + mov r3, r0 + cmp r3, #0x10 + movhs r0, #0 + pophs {r3, pc} + ldr r0, _022BD16C @ =0x023187A0 + mov r1, #0xc + ldr r0, [r0, #0xc] + add r2, r0, #0xe0 + mla r1, r3, r1, r2 + bl ov00_022DB98C + pop {r3, pc} + .align 2, 0 +_022BD16C: .4byte 0x023187A0 + arm_func_end ov00_022BD13C + + arm_func_start ov00_022BD170 +ov00_022BD170: @ 0x022BD170 + push {r3, lr} + cmp r0, #0x10 + movhs r0, #0 + pophs {r3, pc} + ldr r2, _022BD19C @ =0x023187A0 + mov r1, #0xc + ldr r2, [r2, #0xc] + add r2, r2, #0xe0 + mla r0, r1, r0, r2 + bl ov00_022DB1A4 + pop {r3, pc} + .align 2, 0 +_022BD19C: .4byte 0x023187A0 + arm_func_end ov00_022BD170 + + arm_func_start ov00_022BD1A0 +ov00_022BD1A0: @ 0x022BD1A0 + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r4, #0 + b _022BD1C8 +_022BD1B4: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl ov00_022BD170 + str r0, [r6, r4, lsl #2] + add r4, r4, #1 +_022BD1C8: + cmp r4, r5 + blt _022BD1B4 + pop {r4, r5, r6, pc} + arm_func_end ov00_022BD1A0 + + arm_func_start ov00_022BD1D4 +ov00_022BD1D4: @ 0x022BD1D4 + push {r3, lr} cmp r2, #0 movlt r2, #0 - blt _0200B71C - ldr r3, [r0, #4] - cmp r2, r3 - subge r2, r3, #1 -_0200B71C: - ldrh r3, [r1] - ldr lr, [r0, #0x10] - lsl ip, r4, #3 - strh r3, [lr, ip] - ldrh ip, [r1, #2] - add lr, lr, r4, lsl #3 - lsl r3, r2, #1 - strh ip, [lr, #2] - ldrh r1, [r1, #4] - strh r1, [lr, #4] - ldr r1, [r0, #0xc] - ldrsh r1, [r1, r3] - strh r1, [lr, #6] - ldr r2, [r0, #8] - add r1, r2, #1 - str r1, [r0, #8] - ldr r0, [r0, #0xc] - strh r2, [r0, r3] - pop {r4, pc} - arm_func_end FUN_0200b6f0 - - arm_func_start FUN_0200b768 -FUN_0200b768: @ 0x0200B768 - bx lr - arm_func_end FUN_0200b768 - - arm_func_start FUN_0200b76c -FUN_0200b76c: @ 0x0200B76C - push {r4, lr} - bl FUN_0207621c - ldr r2, _0200B874 @ =0x04001000 - mov r0, #3 - ldr r1, [r2] - bic r1, r1, #0x10000 - str r1, [r2] - bl FUN_0207c164 - bl FUN_0207729c - bl FUN_020772b0 - bl FUN_020772c4 - bl FUN_020772e8 - bl FUN_0207730c - bl FUN_02077320 - bl FUN_02077370 - bl FUN_02077384 - bl FUN_02077398 - ldr r0, _0200B878 @ =0x000001FF - bl FUN_02076e90 - mov r0, #0 - mov r1, #0x6800000 - mov r2, #0xa4000 - bl FUN_0207c358 - mov r0, #0xc0 - mov r1, #0x7000000 - mov r2, #0x400 - bl FUN_0207c358 - mov r0, #0 - mov r1, #0x5000000 - mov r2, #0x400 - bl FUN_0207c358 - mov r0, #0xc0 - ldr r1, _0200B87C @ =0x07000400 - mov r2, #0x400 - bl FUN_0207c358 - mov r0, #0 - ldr r1, _0200B880 @ =0x05000400 - mov r2, #0x400 - bl FUN_0207c358 - bl FUN_02019304 - mov r4, r0 - ldr r1, _0200B884 @ =0x02092AE8 - mov r2, #0xc000 - bl MemcpySimple - mov r2, r4 - ldr r0, _0200B888 @ =0x06806000 - mov r1, #0xc000 - bl DecompressAtFromMemoryPointer - mov r0, #2 - mov r1, #0 - mov r2, r1 - bl FUN_020762a0 - mov r0, #0 - bl FUN_02076308 - ldr r0, _0200B88C @ =0x0400006C - mov r1, #0 - bl FUN_02076324 - ldr r0, _0200B890 @ =0x0400106C - mov r1, #0 - bl FUN_02076324 - bl FUN_02076258 - ldr r1, _0200B874 @ =0x04001000 - ldr r0, [r1] - orr r0, r0, #0x10000 - str r0, [r1] - pop {r4, pc} - .align 2, 0 -_0200B874: .4byte 0x04001000 -_0200B878: .4byte 0x000001FF -_0200B87C: .4byte 0x07000400 -_0200B880: .4byte 0x05000400 -_0200B884: .4byte 0x02092AE8 -_0200B888: .4byte 0x06806000 -_0200B88C: .4byte 0x0400006C -_0200B890: .4byte 0x0400106C - arm_func_end FUN_0200b76c - - arm_func_start FUN_0200b894 -FUN_0200b894: @ 0x0200B894 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - add r0, r5, #0x1c - bl FUN_0200a2cc - mov r0, r5 - mov r1, r4 - bl FUN_0200b8d4 - pop {r3, r4, r5, pc} - arm_func_end FUN_0200b894 - - arm_func_start FUN_0200b8b8 -FUN_0200b8b8: @ 0x0200B8B8 - push {r4, lr} - mov r4, r0 - mov r1, #0 - bl FUN_0200b8d4 - add r0, r4, #0x1c - bl FUN_0200a2f4 - pop {r4, pc} - arm_func_end FUN_0200b8b8 - - arm_func_start FUN_0200b8d4 -FUN_0200b8d4: @ 0x0200B8D4 - ldr r2, _0200B904 @ =0x02094AE8 - lsl r1, r1, #1 - mov r3, #0 - ldrsh r1, [r2, r1] - str r3, [r0] - mov r2, #1 - str r2, [r0, #4] - strh r1, [r0, #0x10] - strh r1, [r0, #0x14] - str r3, [r0, #8] - str r3, [r0, #0xc] - bx lr - .align 2, 0 -_0200B904: .4byte 0x02094AE8 - arm_func_end FUN_0200b8d4 - - arm_func_start FUN_0200b908 -FUN_0200b908: @ 0x0200B908 - ldr ip, _0200B914 @ =FUN_0200A314 - add r0, r0, #0x1c - bx ip - .align 2, 0 -_0200B914: .4byte FUN_0200A314 - arm_func_end FUN_0200b908 - - arm_func_start FUN_0200b918 -FUN_0200b918: @ 0x0200B918 - ldr ip, _0200B924 @ =FUN_0200A344 - add r0, r0, #0x1c - bx ip - .align 2, 0 -_0200B924: .4byte FUN_0200A344 - arm_func_end FUN_0200b918 - - arm_func_start FUN_0200b928 -FUN_0200b928: @ 0x0200B928 - mov r2, #0 - strh r2, [r0, #0x10] - cmp r1, #0 - ldrshne r2, [r0, #0x14] - cmpne r2, #0 - bne _0200B958 - mov r2, #0 - strh r2, [r0, #0x14] - mov r1, #1 - stmib r0, {r1, r2} - str r2, [r0, #0xc] - bx lr -_0200B958: - cmp r1, #0 - movlt r1, #0x1e - cmp r2, #0 - movlt r2, #2 - strlt r2, [r0, #4] - ldrshlt r2, [r0, #0x14] - rsblt r2, r2, #0 - movge r2, #3 - strge r2, [r0, #4] - ldrshge r2, [r0, #0x14] - strh r2, [r0, #0x12] - str r1, [r0, #8] - str r1, [r0, #0xc] - bx lr - arm_func_end FUN_0200b928 - - arm_func_start FUN_0200b990 -FUN_0200b990: @ 0x0200B990 - ldr r3, _0200BA00 @ =0x02094AE8 - lsl ip, r1, #1 - ldrsh r3, [r3, ip] - cmp r2, #0 - strh r3, [r0, #0x10] - ldrshne r3, [r0, #0x10] - ldrshne ip, [r0, #0x14] - cmpne ip, r3 - bne _0200B9D4 - ldrsh r3, [r0, #0x10] - mov r2, #1 - mov r1, #0 - strh r3, [r0, #0x14] - str r2, [r0, #4] - str r1, [r0, #8] - str r1, [r0, #0xc] - bx lr -_0200B9D4: - cmp r2, #0 - movlt r2, #0x1e - cmp r3, #0 - sublt r3, ip, r3 - subge r3, r3, ip - strh r3, [r0, #0x12] - ldr r3, _0200BA04 @ =0x02094AF0 - ldr r1, [r3, r1, lsl #2] - stmib r0, {r1, r2} - str r2, [r0, #0xc] - bx lr - .align 2, 0 -_0200BA00: .4byte 0x02094AE8 -_0200BA04: .4byte 0x02094AF0 - arm_func_end FUN_0200b990 - - arm_func_start FUN_0200ba08 -FUN_0200ba08: @ 0x0200BA08 - push {r4, lr} - mov r4, r0 - ldr r0, [r4, #4] - cmp r0, #5 - addls pc, pc, r0, lsl #2 - b _0200BB58 -_0200BA20: @ jump table - b _0200BB50 @ case 0 - b _0200BB40 @ case 1 - b _0200BA38 @ case 2 - b _0200BA80 @ case 3 - b _0200BAC8 @ case 4 - b _0200BB04 @ case 5 -_0200BA38: - ldr r0, [r4, #8] - sub r2, r0, #1 - str r2, [r4, #8] - cmp r2, #0 - ldrshle r1, [r4, #0x10] - movle r0, #0 - strhle r1, [r4, #0x14] - strle r0, [r4, #4] - ble _0200BA78 - ldrsh r0, [r4, #0x12] - ldr r1, [r4, #0xc] - mul r0, r2, r0 - bl DivideInt - ldrsh r1, [r4, #0x10] - sub r0, r1, r0 - strh r0, [r4, #0x14] -_0200BA78: - mov r0, #1 - pop {r4, pc} -_0200BA80: - ldr r0, [r4, #8] - sub r2, r0, #1 - str r2, [r4, #8] - cmp r2, #0 - ldrshle r1, [r4, #0x10] - movle r0, #0 - strhle r1, [r4, #0x14] - strle r0, [r4, #4] - ble _0200BAC0 - ldrsh r0, [r4, #0x12] - ldr r1, [r4, #0xc] - mul r0, r2, r0 - bl DivideInt - ldrsh r1, [r4, #0x10] - add r0, r1, r0 - strh r0, [r4, #0x14] -_0200BAC0: - mov r0, #1 - pop {r4, pc} -_0200BAC8: - ldr r0, [r4, #8] - sub r2, r0, #1 - str r2, [r4, #8] - cmp r2, #0 - ldrshle r0, [r4, #0x10] - ble _0200BAF8 - ldrsh r0, [r4, #0x12] - ldr r1, [r4, #0xc] - mul r0, r2, r0 - bl DivideInt - ldrsh r1, [r4, #0x10] - sub r0, r1, r0 -_0200BAF8: - strh r0, [r4, #0x14] - mov r0, #1 - pop {r4, pc} -_0200BB04: - ldr r0, [r4, #8] - sub r2, r0, #1 - str r2, [r4, #8] - cmp r2, #0 - ldrshle r0, [r4, #0x10] - ble _0200BB34 - ldrsh r0, [r4, #0x12] - ldr r1, [r4, #0xc] - mul r0, r2, r0 - bl DivideInt - ldrsh r1, [r4, #0x10] - add r0, r1, r0 -_0200BB34: - strh r0, [r4, #0x14] - mov r0, #1 - pop {r4, pc} -_0200BB40: - mov r0, #0 - str r0, [r4, #4] - mov r0, #1 - pop {r4, pc} -_0200BB50: - mov r0, #0 - pop {r4, pc} -_0200BB58: - mov r0, #0 - pop {r4, pc} - arm_func_end FUN_0200ba08 - - arm_func_start FUN_0200bb60 -FUN_0200bb60: @ 0x0200BB60 - ldr ip, _0200BB70 @ =FUN_0200b928 - mov r2, #1 - str r2, [r0] - bx ip - .align 2, 0 -_0200BB70: .4byte FUN_0200b928 - arm_func_end FUN_0200bb60 - - arm_func_start FUN_0200bb74 -FUN_0200bb74: @ 0x0200BB74 - ldr ip, _0200BB84 @ =FUN_0200b990 - mov r3, #1 - str r3, [r0] - bx ip - .align 2, 0 -_0200BB84: .4byte FUN_0200b990 - arm_func_end FUN_0200bb74 - - arm_func_start FUN_0200bb88 -FUN_0200bb88: @ 0x0200BB88 - mov r2, #1 - str r2, [r0] - mov r2, #0 - strh r2, [r0, #0x10] - cmp r1, #0 - ldrshne r2, [r0, #0x14] - cmpne r2, #0 - bne _0200BBC0 - mov r2, #0 - strh r2, [r0, #0x14] - mov r1, #1 - stmib r0, {r1, r2} - str r2, [r0, #0xc] - bx lr -_0200BBC0: - cmp r1, #0 - movlt r1, #0x1e - cmp r2, #0 - movlt r2, #4 - strlt r2, [r0, #4] - ldrshlt r2, [r0, #0x14] - rsblt r2, r2, #0 - movge r2, #5 - strge r2, [r0, #4] - ldrshge r2, [r0, #0x14] - strh r2, [r0, #0x12] - str r1, [r0, #8] - str r1, [r0, #0xc] - bx lr - arm_func_end FUN_0200bb88 - - arm_func_start FUN_0200bbf8 -FUN_0200bbf8: @ 0x0200BBF8 - mov ip, #1 - cmp r1, #0 - movlt r1, #0x1e - str ip, [r0] - cmp r2, r3 - movgt ip, #3 - strgt ip, [r0, #4] - subgt ip, r2, r3 - strhgt ip, [r0, #0x12] - bgt _0200BC40 - movlt ip, #2 - strlt ip, [r0, #4] - sublt ip, r3, r2 - strhlt ip, [r0, #0x12] - movge ip, #1 - strge ip, [r0, #4] - movge ip, #0 - strhge ip, [r0, #0x12] -_0200BC40: - str r1, [r0, #8] - str r1, [r0, #0xc] - strh r2, [r0, #0x14] - strh r3, [r0, #0x10] - bx lr - arm_func_end FUN_0200bbf8 - - arm_func_start thunk_FUN_0200ba08 -thunk_FUN_0200ba08: @ 0x0200BC54 - ldr ip, _0200BC5C @ =FUN_0200ba08 - bx ip - .align 2, 0 -_0200BC5C: .4byte FUN_0200ba08 - arm_func_end thunk_FUN_0200ba08 - - arm_func_start FUN_0200bc60 -FUN_0200bc60: @ 0x0200BC60 - push {r4, lr} - str r1, [r0] - add r4, r0, #0x16 - mov lr, #4 -_0200BC70: - ldrb ip, [r3], #1 - subs lr, lr, #1 - strb ip, [r4], #1 - bne _0200BC70 - cmp r1, #3 - cmpne r1, #5 - cmpne r1, #7 - cmpne r1, #9 - cmpne r1, #0xb - bne _0200BCA4 - mov r1, #2 - bl FUN_0200b990 - pop {r4, pc} -_0200BCA4: - mov r1, r2 - bl FUN_0200b928 - pop {r4, pc} - arm_func_end FUN_0200bc60 - - arm_func_start FUN_0200bcb0 -FUN_0200bcb0: @ 0x0200BCB0 - push {r4, lr} - str r1, [r0] - add r4, r0, #0x16 - mov lr, #4 -_0200BCC0: - ldrb ip, [r3], #1 - subs lr, lr, #1 - strb ip, [r4], #1 - bne _0200BCC0 - cmp r1, #1 - bne _0200BCE4 - mov r1, #1 - bl FUN_0200b990 - pop {r4, pc} -_0200BCE4: - cmp r1, #3 - cmpne r1, #5 - cmpne r1, #7 - cmpne r1, #9 - cmpne r1, #0xb - bne _0200BD08 - mov r1, r2 - bl FUN_0200b928 - pop {r4, pc} -_0200BD08: - mov r1, #2 - bl FUN_0200b990 - pop {r4, pc} - arm_func_end FUN_0200bcb0 - - arm_func_start FUN_0200bd14 -FUN_0200bd14: @ 0x0200BD14 - ldr r0, [r0, #4] - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - arm_func_end FUN_0200bd14 - - arm_func_start FUN_0200bd2c -FUN_0200bd2c: @ 0x0200BD2C - ldrsh r1, [r0, #0x10] - mvn r0, #0xff - cmp r1, r0 - moveq r0, #1 - bxeq lr - cmp r1, #0x100 - moveq r0, #2 - movne r0, #0 - bx lr - arm_func_end FUN_0200bd2c - - arm_func_start FUN_0200bd50 -FUN_0200bd50: @ 0x0200BD50 - push {r3, r4, lr} - sub sp, sp, #4 - mov r4, r0 - ldr r0, [r4] - cmp r0, #0 - ldreq r0, [r4, #4] - cmpeq r0, #0 - beq _0200C000 - mov r0, r4 - bl FUN_0200ba08 - cmp r0, #0 - beq _0200BF90 - ldr r0, [r4] - cmp r0, #0xb - addls pc, pc, r0, lsl #2 - b _0200C000 -_0200BD90: @ jump table - b _0200C000 @ case 0 - b _0200BDC0 @ case 1 - b _0200BDDC @ case 2 - b _0200BDFC @ case 3 - b _0200BE10 @ case 4 - b _0200BE30 @ case 5 - b _0200BE44 @ case 6 - b _0200BEB0 @ case 7 - b _0200BE44 @ case 8 - b _0200BEB0 @ case 9 - b _0200BF10 @ case 10 - b _0200BF54 @ case 11 -_0200BDC0: - ldrsh r1, [r4, #0x14] - add r0, r4, #0x1c - add r1, r1, #0x100 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl FUN_0200a37c - b _0200C000 -_0200BDDC: - ldrsh r1, [r4, #0x14] - add r0, r4, #0x1c - add r2, r4, #0x16 - rsb r1, r1, #0x100 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl FUN_0200a3a8 - b _0200C000 -_0200BDFC: - ldrh r1, [r4, #0x14] - add r0, r4, #0x1c - add r2, r4, #0x16 - bl FUN_0200a3dc - b _0200C000 -_0200BE10: - ldrsh r1, [r4, #0x14] - add r0, r4, #0x1c - add r2, r4, #0x16 - rsb r1, r1, #0x100 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl FUN_0200a410 - b _0200C000 -_0200BE30: - ldrh r1, [r4, #0x14] - add r0, r4, #0x1c - add r2, r4, #0x16 - bl FUN_0200a444 - b _0200C000 -_0200BE44: - cmp r0, #6 - beq _0200BE58 - cmp r0, #8 - beq _0200BE74 - b _0200BE90 -_0200BE58: - mov r1, #0x90 - mov r0, #0xff - strb r1, [sp] - strb r1, [sp, #1] - strb r0, [sp, #2] - strb r0, [sp, #3] - b _0200BE90 -_0200BE74: - mov r2, #0xff - mov r1, #0xc0 - mov r0, #0x80 - strb r2, [sp] - strb r1, [sp, #1] - strb r0, [sp, #2] - strb r2, [sp, #3] -_0200BE90: - ldrsh r1, [r4, #0x14] - add r2, sp, #0 - add r0, r4, #0x1c - rsb r1, r1, #0x100 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl FUN_0200a410 - b _0200C000 -_0200BEB0: - cmp r0, #7 - beq _0200BEC4 - cmp r0, #9 - beq _0200BEE0 - b _0200BEFC -_0200BEC4: - mov r1, #0x90 - mov r0, #0xff - strb r1, [sp] - strb r1, [sp, #1] - strb r0, [sp, #2] - strb r0, [sp, #3] - b _0200BEFC -_0200BEE0: - mov r2, #0xff - mov r1, #0xc0 - mov r0, #0x80 - strb r2, [sp] - strb r1, [sp, #1] - strb r0, [sp, #2] - strb r2, [sp, #3] -_0200BEFC: - ldrh r1, [r4, #0x14] - add r2, sp, #0 - add r0, r4, #0x1c - bl FUN_0200a444 - b _0200C000 -_0200BF10: - mov r0, #0xff - strb r0, [sp] - strb r0, [sp, #1] - strb r0, [sp, #2] - strb r0, [sp, #3] - ldrsh r1, [r4, #0x14] - add r2, sp, #0 - add r0, r4, #0x1c - add r3, r1, r1, lsl #1 - asr r1, r3, #1 - add r1, r3, r1, lsr #30 - asr r1, r1, #2 - rsb r1, r1, #0x100 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl FUN_0200a3a8 - b _0200C000 -_0200BF54: - mov r0, #0xff - strb r0, [sp] - strb r0, [sp, #1] - strb r0, [sp, #2] - strb r0, [sp, #3] - ldrsh r1, [r4, #0x14] - add r2, sp, #0 - add r0, r4, #0x1c - rsb r3, r1, #0x100 - asr r1, r3, #1 - add r1, r3, r1, lsr #30 - lsl r1, r1, #0xe - lsr r1, r1, #0x10 - bl FUN_0200a3a8 - b _0200C000 -_0200BF90: - ldr r0, [r4, #4] - cmp r0, #0 - bne _0200C000 - ldr r0, [r4] - cmp r0, #0xb - addls pc, pc, r0, lsl #2 - b _0200C000 -_0200BFAC: @ jump table - b _0200C000 @ case 0 - b _0200C000 @ case 1 - b _0200BFDC @ case 2 - b _0200BFF0 @ case 3 - b _0200BFDC @ case 4 - b _0200BFF0 @ case 5 - b _0200BFDC @ case 6 - b _0200BFF0 @ case 7 - b _0200BFDC @ case 8 - b _0200BFF0 @ case 9 - b _0200BFDC @ case 10 - b _0200BFF0 @ case 11 -_0200BFDC: - ldrsh r0, [r4, #0x14] - cmp r0, #0x100 - movge r0, #0 - strge r0, [r4] - b _0200C000 -_0200BFF0: - ldrsh r0, [r4, #0x14] - cmp r0, #0 - movle r0, #0 - strle r0, [r4] -_0200C000: - add sp, sp, #4 - pop {r3, r4, pc} - arm_func_end FUN_0200bd50 -_0200C008: - .byte 0x0C, 0xC0, 0x9F, 0xE5, 0x02, 0x38, 0xA0, 0xE1 - .byte 0x01, 0x20, 0xA0, 0xE1, 0x23, 0x18, 0xA0, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1, 0x9C, 0xA2, 0x00, 0x02 - - arm_func_start FUN_0200c020 -FUN_0200c020: @ 0x0200C020 - push {r3, r4, lr} - sub sp, sp, #4 - ldr ip, [sp, #0x10] - cmp ip, #0 - beq _0200C084 - ldrb lr, [r1] - mov r4, #0xff - ldrb lr, [ip, lr, lsl #2] - mul lr, r3, lr - lsr lr, lr, #5 - strb lr, [sp] - ldrb lr, [r1, #1] - add lr, ip, lr, lsl #2 - ldrb lr, [lr, #1] - mul lr, r3, lr - lsr lr, lr, #5 - strb lr, [sp, #1] - ldrb r1, [r1, #2] - add r1, ip, r1, lsl #2 - ldrb r1, [r1, #2] - mul r1, r3, r1 - lsr r1, r1, #5 - strb r1, [sp, #2] - strb r4, [sp, #3] - b _0200C0BC -_0200C084: - ldrb r4, [r1] - mov ip, #0xff - mul lr, r4, r3 - lsr r4, lr, #5 - strb r4, [sp] - ldrb lr, [r1, #1] - mul r4, lr, r3 - lsr r4, r4, #5 - strb r4, [sp, #1] - ldrb r1, [r1, #2] - mul r3, r1, r3 - lsr r1, r3, #5 - strb r1, [sp, #2] - strb ip, [sp, #3] -_0200C0BC: - lsl r1, r2, #0x10 - add r2, sp, #0 - lsr r1, r1, #0x10 - bl FUN_0200a590 - add sp, sp, #4 - pop {r3, r4, pc} - arm_func_end FUN_0200c020 - - arm_func_start FUN_0200c0d4 -FUN_0200c0d4: @ 0x0200C0D4 - push {r3, lr} - bl FUN_0200c11c - bl FUN_0200c168 - bl FUN_0200c24c - bl FUN_0200c250 - bl FUN_0200c254 - bl FUN_0200c258 - bl FUN_0200c230 - ldr r0, _0200C108 @ =0x020AF698 - mov r1, #1 - str r1, [r0] - bl FUN_0200c10c - pop {r3, pc} - .align 2, 0 -_0200C108: .4byte 0x020AF698 - arm_func_end FUN_0200c0d4 - - arm_func_start FUN_0200c10c -FUN_0200c10c: @ 0x0200C10C - bx lr - arm_func_end FUN_0200c10c - - arm_func_start GetDebugFlag1 -GetDebugFlag1: @ 0x0200C110 - mov r0, #0 - bx lr - arm_func_end GetDebugFlag1 - - arm_func_start SetDebugFlag1 -SetDebugFlag1: @ 0x0200C118 - bx lr - arm_func_end SetDebugFlag1 - - arm_func_start FUN_0200c11c -FUN_0200c11c: @ 0x0200C11C - bx lr - arm_func_end FUN_0200c11c - - arm_func_start AppendProgPos -AppendProgPos: @ 0x0200C120 - push {r3, lr} - mov ip, r1 - cmp r2, #0 - ldreq r2, _0200C15C @ =0x02094AFC - cmp ip, #0 - beq _0200C150 - ldr r3, [ip, #4] - ldr r1, _0200C160 @ =0x02094B00 - str r3, [sp] - ldr r3, [ip] - bl Sprintf - pop {r3, pc} -_0200C150: - ldr r1, _0200C164 @ =0x02094B1C - bl Sprintf - pop {r3, pc} - .align 2, 0 -_0200C15C: .4byte 0x02094AFC -_0200C160: .4byte 0x02094B00 -_0200C164: .4byte 0x02094B1C - arm_func_end AppendProgPos - - arm_func_start FUN_0200c168 -FUN_0200c168: @ 0x0200C168 - bx lr - arm_func_end FUN_0200c168 - - arm_func_start DebugPrintTrace -DebugPrintTrace: @ 0x0200C16C - push {r3, lr} - sub sp, sp, #0x100 - mov r2, r0 - cmp r1, #0 - add r0, sp, #0 - beq _0200C1A0 - cmp r2, #0 - beq _0200C194 - bl AppendProgPos - b _0200C1BC -_0200C194: - ldr r2, _0200C1C4 @ =0x02094B34 - bl AppendProgPos - b _0200C1BC -_0200C1A0: - cmp r2, #0 - beq _0200C1B4 - mov r1, r2 - bl Strcpy - b _0200C1BC -_0200C1B4: - ldr r1, _0200C1C4 @ =0x02094B34 - bl Strcpy -_0200C1BC: - add sp, sp, #0x100 - pop {r3, pc} - .align 2, 0 -_0200C1C4: .4byte 0x02094B34 - arm_func_end DebugPrintTrace - - arm_func_start DebugPrint0 -DebugPrint0: @ 0x0200C1C8 - push {r0, r1, r2, r3} - push {r3, lr} - sub sp, sp, #0x100 - add r0, sp, #0x108 - bic r2, r0, #3 - ldr r1, [sp, #0x108] - add r0, sp, #0 - add r2, r2, #4 - bl Vsprintf - add sp, sp, #0x100 - pop {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end DebugPrint0 - - arm_func_start DebugPrint0 -DebugPrint0: @ 0x0200C1FC - push {r0, r1, r2, r3} - push {r3, lr} - sub sp, sp, #0x100 - add r0, sp, #0x108 - bic r2, r0, #3 - ldr r1, [sp, #0x108] - add r0, sp, #0 - add r2, r2, #4 - bl Vsprintf - add sp, sp, #0x100 - pop {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end DebugPrint0 - - arm_func_start FUN_0200c230 -FUN_0200c230: @ 0x0200C230 - bx lr - arm_func_end FUN_0200c230 - - arm_func_start GetDebugFlag2 -GetDebugFlag2: @ 0x0200C234 - mov r0, #0 - bx lr - arm_func_end GetDebugFlag2 - - arm_func_start SetDebugFlag2 -SetDebugFlag2: @ 0x0200C23C - bx lr - arm_func_end SetDebugFlag2 - - arm_func_start DebugPrint -DebugPrint: @ 0x0200C240 - push {r0, r1, r2, r3} - add sp, sp, #0x10 - bx lr - arm_func_end DebugPrint - - arm_func_start FUN_0200c24c -FUN_0200c24c: @ 0x0200C24C - bx lr - arm_func_end FUN_0200c24c - - arm_func_start FUN_0200c250 -FUN_0200c250: @ 0x0200C250 - bx lr - arm_func_end FUN_0200c250 - - arm_func_start FUN_0200c254 -FUN_0200c254: @ 0x0200C254 - bx lr - arm_func_end FUN_0200c254 - - arm_func_start FUN_0200c258 -FUN_0200c258: @ 0x0200C258 - bx lr - arm_func_end FUN_0200c258 - - arm_func_start FatalError -FatalError: @ 0x0200C25C - push {r0, r1, r2, r3} - push {r3, lr} - sub sp, sp, #0x100 - mov r1, r0 - ldr r0, _0200C2CC @ =0x02094B40 - bl DebugPrintTrace - ldr r1, [sp, #0x10c] - add r0, sp, #0 - cmp r1, #0 - beq _0200C2A4 - add r2, sp, #0x10c - bic r2, r2, #3 - add r2, r2, #4 - bl Vsprintf - ldr r1, _0200C2D0 @ =0x02094B54 - add r0, sp, #0 - bl Strcat - b _0200C2AC -_0200C2A4: - ldr r1, _0200C2D4 @ =0x02094B58 - bl Strcpy -_0200C2AC: - ldr r0, _0200C2D8 @ =0x02094B60 - add r1, sp, #0 - bl DebugPrint0 - bl WaitForever - add sp, sp, #0x100 - pop {r3, lr} - add sp, sp, #0x10 - bx lr - .align 2, 0 -_0200C2CC: .4byte 0x02094B40 -_0200C2D0: .4byte 0x02094B54 -_0200C2D4: .4byte 0x02094B58 -_0200C2D8: .4byte 0x02094B60 - arm_func_end FatalError - - arm_func_start OpenAllPackFiles -OpenAllPackFiles: @ 0x0200C2DC - push {r3, r4, r5, r6, r7, lr} - mov r0, #0x1f8 - mov r1, #0 - bl MemAlloc - ldr r2, _0200C334 @ =0x020AF69C - mov r1, #0x1f8 - str r0, [r2] - bl MemZero - ldr r6, _0200C338 @ =0x020AF6A0 - ldr r5, _0200C334 @ =0x020AF69C - mov r7, #0 - mov r4, #0x54 -_0200C30C: - ldr r0, [r5] - ldr r1, [r6, r7, lsl #2] - mla r0, r7, r4, r0 - bl OpenPackFile - add r0, r7, #1 - lsl r0, r0, #0x10 - asr r7, r0, #0x10 - cmp r7, #6 - blt _0200C30C - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0200C334: .4byte 0x020AF69C -_0200C338: .4byte 0x020AF6A0 - arm_func_end OpenAllPackFiles - - arm_func_start GetFileLengthInPackWithPackNb -GetFileLengthInPackWithPackNb: @ 0x0200C33C - ldr r3, _0200C354 @ =0x020AF69C - mov r2, #0x54 - ldr r3, [r3] - ldr ip, _0200C358 @ =GetFileLengthInPack - mla r0, r2, r0, r3 - bx ip - .align 2, 0 -_0200C354: .4byte 0x020AF69C -_0200C358: .4byte GetFileLengthInPack - arm_func_end GetFileLengthInPackWithPackNb - - arm_func_start LoadFileInPackWithPackId -LoadFileInPackWithPackId: @ 0x0200C35C - push {r3, lr} - ldr r3, _0200C384 @ =0x020AF69C - mov ip, r1 - ldr r3, [r3] - mov r1, #0x54 - mla r0, r1, r0, r3 - mov r1, r2 - mov r2, ip - bl LoadFileInPack - pop {r3, pc} - .align 2, 0 -_0200C384: .4byte 0x020AF69C - arm_func_end LoadFileInPackWithPackId - - arm_func_start AllocAndLoadFileInPack -AllocAndLoadFileInPack: @ 0x0200C388 - push {r3, r4, r5, r6, r7, lr} - mov ip, #0x54 - mul r4, r0, ip - ldr r0, _0200C3DC @ =0x020AF69C - mov r6, r2 - ldr r0, [r0] - mov r5, r3 - add r0, r0, r4 - mov r7, r1 - bl GetFileLengthInPack - str r0, [r6, #4] - mov r1, r5 - bl MemAlloc - str r0, [r6] - ldr r0, _0200C3DC @ =0x020AF69C - ldr r1, [r6] - ldr r0, [r0] - mov r2, r7 - add r0, r0, r4 - bl LoadFileInPack - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0200C3DC: .4byte 0x020AF69C - arm_func_end AllocAndLoadFileInPack - - arm_func_start OpenPackFile -OpenPackFile: @ 0x0200C3E0 - push {r3, r4, r5, r6, lr} - sub sp, sp, #4 - mov r6, r0 - mov r5, r1 - bl DataTransferInit - add r0, r6, #0xc - bl FileInitVeneer - mov r1, r5 - add r0, r6, #0xc - bl FileOpen - add r0, r6, #0xc - add r1, r6, #4 - mov r2, #8 - bl FileRead - add r0, r6, #0xc - mov r1, #8 - mov r2, #0 - bl FileSeek - ldr r0, [r6, #8] - mov r1, #0 - lsl r4, r0, #3 - mov r0, r4 - bl MemAlloc - str r0, [r6] - ldr r1, [r6] - add r0, r6, #0xc - mov r2, r4 - bl FileRead - str r5, [sp] - ldr r0, _0200C470 @ =0x02094BE4 - mov r3, r4 - ldmib r6, {r1, r2} - bl DebugPrint0 - bl DataTransferStop - add sp, sp, #4 - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_0200C470: .4byte 0x02094BE4 - arm_func_end OpenPackFile - - arm_func_start GetFileLengthInPack -GetFileLengthInPack: @ 0x0200C474 - ldr r0, [r0] - add r0, r0, r1, lsl #3 - ldr r0, [r0, #4] - bx lr - arm_func_end GetFileLengthInPack - - arm_func_start LoadFileInPack -LoadFileInPack: @ 0x0200C484 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl DataTransferInit - ldr r2, [r6] - add r0, r6, #0xc - ldr r1, [r2, r4, lsl #3] - add r4, r2, r4, lsl #3 - mov r2, #0 - bl FileSeek - ldr r2, [r4, #4] - mov r1, r5 - add r0, r6, #0xc - bl FileRead - bl DataTransferStop - ldr r0, [r4, #4] - pop {r4, r5, r6, pc} - arm_func_end LoadFileInPack - - arm_func_start FUN_0200c4cc -FUN_0200c4cc: @ 0x0200C4CC - push {r4, lr} - ldr lr, _0200C4F8 @ =0x02094C18 - mov r4, r0 - mov ip, #0xe -_0200C4DC: - ldm lr!, {r0, r1, r2, r3} - stm r4!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _0200C4DC - ldm lr, {r0, r1} - stm r4, {r0, r1} - pop {r4, pc} - .align 2, 0 -_0200C4F8: .4byte 0x02094C18 - arm_func_end FUN_0200c4cc - - arm_func_start GetDungeonResultMsg -GetDungeonResultMsg: @ 0x0200C4FC - push {r3, r4, r5, r6, lr} - sub sp, sp, #0x5c - ldr ip, _0200C5A8 @ =0x00000233 - mov r6, r1 - mov r5, r2 - mov r4, r3 - cmp r0, ip - bge _0200C570 - lsl r1, r0, #0x10 - add r0, sp, #4 - lsr r1, r1, #0x10 - bl GetInfoMoveCheckId - mov r0, #0 - bl GetDungeonResultString - add r1, sp, #4 - mov r2, #0 - bl FormatMoveString - ldrh r1, [sp, #8] - ldr r0, _0200C5AC @ =0x000009CB - str r1, [sp, #0x1c] - bl StringFromMessageId - mov r2, r0 - add r4, sp, #0xc - mov r1, r5 - mov r0, r6 - mov r3, #0 - str r4, [sp] - bl PreprocessString - b _0200C5A0 -_0200C570: - rsb r1, ip, #0 - add r1, r0, r1 - ldr r0, _0200C5B0 @ =0x0209E7A6 - lsl r1, r1, #2 - ldrh r0, [r0, r1] - bl StringFromMessageId - mov r2, r0 - mov r0, r6 - mov r1, r5 - mov r3, #0 - str r4, [sp] - bl PreprocessString -_0200C5A0: - add sp, sp, #0x5c - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_0200C5A8: .4byte 0x00000233 -_0200C5AC: .4byte 0x000009CB -_0200C5B0: .4byte 0x0209E7A6 - arm_func_end GetDungeonResultMsg -_0200C5B4: - .byte 0x18, 0x10, 0x9F, 0xE5, 0x01, 0x00, 0x50, 0xE1, 0x01, 0x00, 0xA0, 0xB3 - .byte 0x00, 0x10, 0x61, 0xA2, 0x0C, 0x20, 0x9F, 0xA5, 0x01, 0x00, 0x80, 0xA0, 0x00, 0x01, 0xD2, 0xA7 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x33, 0x02, 0x00, 0x00, 0xA4, 0xE7, 0x09, 0x02, 0x78, 0x40, 0x2D, 0xE9 - .byte 0x54, 0xD0, 0x4D, 0xE2, 0x01, 0xDB, 0x4D, 0xE2, 0x01, 0x50, 0xA0, 0xE1, 0x00, 0x60, 0xA0, 0xE1 - .byte 0x00, 0x6C, 0x00, 0xEB, 0x5C, 0x10, 0xD5, 0xE5, 0x06, 0x40, 0xD0, 0xE5, 0x3D, 0x00, 0x51, 0xE3 - .byte 0x3C, 0x10, 0xA0, 0x03, 0x01, 0x07, 0x81, 0xE3, 0x14, 0x00, 0x8D, 0xE5, 0x5D, 0x10, 0xD5, 0xE5 - .byte 0x00, 0x04, 0x9F, 0xE5, 0x28, 0x10, 0x8D, 0xE5, 0xA9, 0x64, 0x00, 0xEB, 0x00, 0x20, 0xA0, 0xE1 - .byte 0x04, 0xC0, 0x8D, 0xE2, 0x54, 0x00, 0x8D, 0xE2, 0x01, 0x1B, 0xA0, 0xE3, 0x00, 0x30, 0xA0, 0xE3 - .byte 0x00, 0xC0, 0x8D, 0xE5, 0x6D, 0x57, 0x00, 0xEB, 0x54, 0x30, 0x8D, 0xE2, 0x06, 0x00, 0xA0, 0xE1 - .byte 0x04, 0x10, 0xA0, 0xE3, 0x10, 0x20, 0xA0, 0xE3, 0xF1, 0x66, 0x00, 0xEB, 0x1E, 0x10, 0x85, 0xE2 - .byte 0x3C, 0x00, 0x85, 0xE2, 0x40, 0x10, 0x8D, 0xE5, 0x3C, 0x50, 0x8D, 0xE5, 0x44, 0x00, 0x8D, 0xE5 - .byte 0xFA, 0x05, 0xD5, 0xE1, 0xD2, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x09, 0x00, 0x00, 0x0A - .byte 0xA4, 0x03, 0x9F, 0xE5, 0x92, 0x64, 0x00, 0xEB, 0x00, 0x20, 0xA0, 0xE1, 0x04, 0xC0, 0x8D, 0xE2 - .byte 0x54, 0x00, 0x8D, 0xE2, 0x01, 0x1B, 0xA0, 0xE3, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0xC0, 0x8D, 0xE5 - .byte 0x56, 0x57, 0x00, 0xEB, 0x08, 0x00, 0x00, 0xEA, 0x80, 0x03, 0x9F, 0xE5, 0x88, 0x64, 0x00, 0xEB - .byte 0x00, 0x20, 0xA0, 0xE1, 0x04, 0xC0, 0x8D, 0xE2, 0x54, 0x00, 0x8D, 0xE2, 0x01, 0x1B, 0xA0, 0xE3 - .byte 0x00, 0x30, 0xA0, 0xE3, 0x00, 0xC0, 0x8D, 0xE5, 0x4C, 0x57, 0x00, 0xEB, 0x54, 0x00, 0x8D, 0xE2 - .byte 0xB8, 0x67, 0x00, 0xEB, 0x84, 0x01, 0x60, 0xE0, 0xA0, 0x1F, 0x80, 0xE0, 0x54, 0x30, 0x8D, 0xE2 - .byte 0x06, 0x00, 0xA0, 0xE1, 0xC1, 0x10, 0xA0, 0xE1, 0x1A, 0x20, 0xA0, 0xE3, 0xCC, 0x66, 0x00, 0xEB - .byte 0xFA, 0x05, 0xD5, 0xE1, 0x54, 0x10, 0x8D, 0xE2, 0x04, 0x30, 0x8D, 0xE2, 0x01, 0x2B, 0xA0, 0xE3 - .byte 0x81, 0xFF, 0xFF, 0xEB, 0x54, 0x00, 0x8D, 0xE2, 0xAA, 0x67, 0x00, 0xEB, 0x84, 0x01, 0x60, 0xE0 - .byte 0xA0, 0x0F, 0x80, 0xE0, 0xC0, 0x10, 0xA0, 0xE1, 0x06, 0x00, 0xA0, 0xE1, 0x24, 0x20, 0xA0, 0xE3 - .byte 0x54, 0x30, 0x8D, 0xE2, 0xBE, 0x66, 0x00, 0xEB, 0x64, 0x10, 0x95, 0xE5, 0x00, 0x03, 0x9F, 0xE5 - .byte 0x28, 0x10, 0x8D, 0xE5, 0x6E, 0x10, 0xD5, 0xE5, 0x2C, 0x10, 0x8D, 0xE5, 0x64, 0x64, 0x00, 0xEB - .byte 0x04, 0x10, 0x8D, 0xE2, 0x00, 0x20, 0xA0, 0xE1, 0x00, 0x10, 0x8D, 0xE5, 0x54, 0x00, 0x8D, 0xE2 - .byte 0x01, 0x1B, 0xA0, 0xE3, 0x00, 0x30, 0xA0, 0xE3, 0x28, 0x57, 0x00, 0xEB, 0x06, 0x00, 0xA0, 0xE1 - .byte 0x04, 0x10, 0xA0, 0xE3, 0x34, 0x20, 0xA0, 0xE3, 0x54, 0x30, 0x8D, 0xE2, 0xAC, 0x66, 0x00, 0xEB - .byte 0xF8, 0x16, 0xD5, 0xE1, 0x9D, 0x0E, 0xA0, 0xE3, 0x28, 0x10, 0x8D, 0xE5, 0x54, 0x64, 0x00, 0xEB - .byte 0x04, 0x10, 0x8D, 0xE2, 0x00, 0x20, 0xA0, 0xE1, 0x00, 0x10, 0x8D, 0xE5, 0x54, 0x00, 0x8D, 0xE2 - .byte 0x01, 0x1B, 0xA0, 0xE3, 0x00, 0x30, 0xA0, 0xE3, 0x18, 0x57, 0x00, 0xEB, 0x06, 0x00, 0xA0, 0xE1 - .byte 0x04, 0x10, 0xA0, 0xE3, 0x3E, 0x20, 0xA0, 0xE3, 0x54, 0x30, 0x8D, 0xE2, 0x9C, 0x66, 0x00, 0xEB - .byte 0x6A, 0x20, 0xD5, 0xE5, 0x28, 0x20, 0x8D, 0xE5, 0x6C, 0x00, 0xD5, 0xE5, 0x2C, 0x00, 0x8D, 0xE5 - .byte 0xA9, 0x10, 0xD5, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x0B, 0x00, 0x00, 0x0A, 0x64, 0x02, 0x9F, 0xE5 - .byte 0x01, 0x10, 0x82, 0xE0, 0x28, 0x10, 0x8D, 0xE5, 0x3D, 0x64, 0x00, 0xEB, 0x00, 0x20, 0xA0, 0xE1 - .byte 0x04, 0x40, 0x8D, 0xE2, 0x54, 0x00, 0x8D, 0xE2, 0x01, 0x1B, 0xA0, 0xE3, 0x00, 0x30, 0xA0, 0xE3 - .byte 0x00, 0x40, 0x8D, 0xE5, 0x01, 0x57, 0x00, 0xEB, 0x08, 0x00, 0x00, 0xEA, 0x38, 0x02, 0x9F, 0xE5 - .byte 0x33, 0x64, 0x00, 0xEB, 0x00, 0x20, 0xA0, 0xE1, 0x04, 0x40, 0x8D, 0xE2, 0x54, 0x00, 0x8D, 0xE2 - .byte 0x01, 0x1B, 0xA0, 0xE3, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x40, 0x8D, 0xE5, 0xF7, 0x56, 0x00, 0xEB - .byte 0x54, 0x30, 0x8D, 0xE2, 0x06, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE3, 0x48, 0x20, 0xA0, 0xE3 - .byte 0x7B, 0x66, 0x00, 0xEB, 0xAB, 0x20, 0xD5, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x0C, 0x00, 0x00, 0x0A - .byte 0x2C, 0x10, 0x9D, 0xE5, 0xF4, 0x01, 0x9F, 0xE5, 0x02, 0x10, 0x81, 0xE0, 0x2C, 0x10, 0x8D, 0xE5 - .byte 0x1F, 0x64, 0x00, 0xEB, 0x00, 0x20, 0xA0, 0xE1, 0x04, 0x40, 0x8D, 0xE2, 0x54, 0x00, 0x8D, 0xE2 - .byte 0x01, 0x1B, 0xA0, 0xE3, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x40, 0x8D, 0xE5, 0xE3, 0x56, 0x00, 0xEB - .byte 0x08, 0x00, 0x00, 0xEA, 0xC8, 0x01, 0x9F, 0xE5, 0x15, 0x64, 0x00, 0xEB, 0x00, 0x20, 0xA0, 0xE1 - .byte 0x04, 0x40, 0x8D, 0xE2, 0x54, 0x00, 0x8D, 0xE2, 0x01, 0x1B, 0xA0, 0xE3, 0x00, 0x30, 0xA0, 0xE3 - .byte 0x00, 0x40, 0x8D, 0xE5, 0xD9, 0x56, 0x00, 0xEB, 0x54, 0x30, 0x8D, 0xE2, 0x06, 0x00, 0xA0, 0xE1 - .byte 0x04, 0x10, 0xA0, 0xE3, 0x48, 0x20, 0xA0, 0xE3, 0x5D, 0x66, 0x00, 0xEB, 0x6B, 0x20, 0xD5, 0xE5 - .byte 0x28, 0x20, 0x8D, 0xE5, 0x6D, 0x00, 0xD5, 0xE5, 0x2C, 0x00, 0x8D, 0xE5, 0xAA, 0x10, 0xD5, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x0B, 0x00, 0x00, 0x0A, 0x78, 0x01, 0x9F, 0xE5, 0x01, 0x10, 0x82, 0xE0 - .byte 0x28, 0x10, 0x8D, 0xE5, 0xFE, 0x63, 0x00, 0xEB, 0x00, 0x20, 0xA0, 0xE1, 0x04, 0x40, 0x8D, 0xE2 - .byte 0x54, 0x00, 0x8D, 0xE2, 0x01, 0x1B, 0xA0, 0xE3, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x40, 0x8D, 0xE5 - .byte 0xC2, 0x56, 0x00, 0xEB, 0x08, 0x00, 0x00, 0xEA, 0x4C, 0x01, 0x9F, 0xE5, 0xF4, 0x63, 0x00, 0xEB - .byte 0x00, 0x20, 0xA0, 0xE1, 0x04, 0x40, 0x8D, 0xE2, 0x54, 0x00, 0x8D, 0xE2, 0x01, 0x1B, 0xA0, 0xE3 - .byte 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x40, 0x8D, 0xE5, 0xB8, 0x56, 0x00, 0xEB, 0x54, 0x30, 0x8D, 0xE2 - .byte 0x06, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE3, 0x52, 0x20, 0xA0, 0xE3, 0x3C, 0x66, 0x00, 0xEB - .byte 0xAC, 0x20, 0xD5, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x0C, 0x00, 0x00, 0x0A, 0x2C, 0x10, 0x9D, 0xE5 - .byte 0x08, 0x01, 0x9F, 0xE5, 0x02, 0x10, 0x81, 0xE0, 0x2C, 0x10, 0x8D, 0xE5, 0xE0, 0x63, 0x00, 0xEB - .byte 0x00, 0x20, 0xA0, 0xE1, 0x04, 0x40, 0x8D, 0xE2, 0x54, 0x00, 0x8D, 0xE2, 0x01, 0x1B, 0xA0, 0xE3 - .byte 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x40, 0x8D, 0xE5, 0xA4, 0x56, 0x00, 0xEB, 0x08, 0x00, 0x00, 0xEA - .byte 0xDC, 0x00, 0x9F, 0xE5, 0xD6, 0x63, 0x00, 0xEB, 0x00, 0x20, 0xA0, 0xE1, 0x04, 0x40, 0x8D, 0xE2 - .byte 0x54, 0x00, 0x8D, 0xE2, 0x01, 0x1B, 0xA0, 0xE3, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x40, 0x8D, 0xE5 - .byte 0x9A, 0x56, 0x00, 0xEB, 0x54, 0x30, 0x8D, 0xE2, 0x06, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE3 - .byte 0x52, 0x20, 0xA0, 0xE3, 0x1E, 0x66, 0x00, 0xEB, 0x5E, 0x00, 0xD5, 0xE5, 0x01, 0x00, 0x10, 0xE3 - .byte 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0xFF, 0x00, 0x10, 0xE3, 0x0E, 0x00, 0x00, 0x0A - .byte 0xB4, 0x63, 0x00, 0xEB, 0x8C, 0x20, 0x9F, 0xE5, 0x5E, 0x10, 0x85, 0xE2, 0x3C, 0x00, 0x8D, 0xE5 - .byte 0x2A, 0x03, 0x00, 0xEB, 0x80, 0x00, 0x9F, 0xE5, 0xBD, 0x63, 0x00, 0xEB, 0x04, 0x10, 0x8D, 0xE2 - .byte 0x00, 0x20, 0xA0, 0xE1, 0x00, 0x10, 0x8D, 0xE5, 0x54, 0x00, 0x8D, 0xE2, 0x01, 0x1B, 0xA0, 0xE3 - .byte 0x00, 0x30, 0xA0, 0xE3, 0x81, 0x56, 0x00, 0xEB, 0x02, 0x00, 0x00, 0xEA, 0x5C, 0x10, 0x9F, 0xE5 - .byte 0x54, 0x00, 0x8D, 0xE2, 0xAF, 0x63, 0x00, 0xEB, 0x54, 0x30, 0x8D, 0xE2, 0x06, 0x00, 0xA0, 0xE1 - .byte 0x04, 0x10, 0xA0, 0xE3, 0x62, 0x20, 0xA0, 0xE3, 0x01, 0x66, 0x00, 0xEB, 0x54, 0xD0, 0x8D, 0xE2 - .byte 0x01, 0xDB, 0x8D, 0xE2, 0x78, 0x80, 0xBD, 0xE8, 0xCC, 0x09, 0x00, 0x00, 0xCD, 0x09, 0x00, 0x00 - .byte 0xCE, 0x09, 0x00, 0x00, 0xCF, 0x09, 0x00, 0x00, 0xD5, 0x09, 0x00, 0x00, 0xD1, 0x09, 0x00, 0x00 - .byte 0xD6, 0x09, 0x00, 0x00, 0xD2, 0x09, 0x00, 0x00, 0xD7, 0x09, 0x00, 0x00, 0xD3, 0x09, 0x00, 0x00 - .byte 0xD8, 0x09, 0x00, 0x00, 0xD4, 0x09, 0x00, 0x00, 0x0C, 0x4C, 0x09, 0x02, 0xDA, 0x09, 0x00, 0x00 - .byte 0xD9, 0x09, 0x00, 0x00 - - arm_func_start GetDamageSource -GetDamageSource: @ 0x0200CA54 - push {r3, lr} - cmp r1, #0 - beq _0200CA78 - mov r0, r1 - bl GetItemCategoryVeneer - cmp r0, #9 - ldreq r0, _0200CA84 @ =0x00000262 - ldrne r0, _0200CA88 @ =0x00000263 - pop {r3, pc} -_0200CA78: - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - pop {r3, pc} - .align 2, 0 -_0200CA84: .4byte 0x00000262 -_0200CA88: .4byte 0x00000263 - arm_func_end GetDamageSource - - arm_func_start FUN_0200ca8c -FUN_0200ca8c: @ 0x0200CA8C - push {r3, lr} - ldr r1, _0200CAB4 @ =0x022A3824 - ldr r0, _0200CAB8 @ =0x020AF6B8 - str r1, [r0] - bl LoadItemPspi2n - bl FUN_0200ebcc - bl FUN_0200fd38 - bl FUN_02010590 - bl FUN_02011ab8 - pop {r3, pc} - .align 2, 0 -_0200CAB4: .4byte 0x022A3824 -_0200CAB8: .4byte 0x020AF6B8 - arm_func_end FUN_0200ca8c - - arm_func_start FUN_0200cabc -FUN_0200cabc: @ 0x0200CABC - push {r3, lr} - bl FUN_0200ebdc - bl thunk_FUN_020102dc - bl FUN_02010594 - bl FUN_02011ab8 - pop {r3, pc} - arm_func_end FUN_0200cabc - - arm_func_start FUN_0200cad4 -FUN_0200cad4: @ 0x0200CAD4 - push {r3, lr} - bl FUN_0200ec48 - bl FUN_02010654 - pop {r3, pc} - arm_func_end FUN_0200cad4 - - arm_func_start thunk_FUN_0200ec90 -thunk_FUN_0200ec90: @ 0x0200CAE4 - ldr ip, _0200CAEC @ =FUN_0200ec90 - bx ip - .align 2, 0 -_0200CAEC: .4byte FUN_0200ec90 - arm_func_end thunk_FUN_0200ec90 - - arm_func_start GetItemCategoryVeneer -GetItemCategoryVeneer: @ 0x0200CAF0 - ldr ip, _0200CAF8 @ =GetItemCategory - bx ip - .align 2, 0 -_0200CAF8: .4byte GetItemCategory - arm_func_end GetItemCategoryVeneer - - arm_func_start GetItemMoveId16 -GetItemMoveId16: @ 0x0200CAFC - push {r3, lr} - bl GetItemMoveId - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - pop {r3, pc} - arm_func_end GetItemMoveId16 - - arm_func_start IsThrownItem -IsThrownItem: @ 0x0200CB10 - push {r3, lr} - bl GetItemCategory - cmp r0, #1 - movls r0, #1 - movhi r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end IsThrownItem - - arm_func_start IsNotMoney -IsNotMoney: @ 0x0200CB2C - cmp r0, #0 - moveq r0, #0 - bxeq lr - cmp r0, #0xb7 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - arm_func_end IsNotMoney - - arm_func_start IsEdible -IsEdible: @ 0x0200CB4C - push {r3, lr} - bl GetItemCategory - add r0, r0, #0xfe - and r0, r0, #0xff - cmp r0, #1 - movls r0, #1 - movhi r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end IsEdible - - arm_func_start IsHM -IsHM: @ 0x0200CB70 - ldr r2, _0200CBF0 @ =0x0000011D - cmp r0, r2 - moveq r0, #1 - bxeq lr - add r1, r2, #1 - cmp r0, r1 - moveq r0, #1 - bxeq lr - add r1, r2, #2 - cmp r0, r1 - moveq r0, #1 - bxeq lr - cmp r0, #0x120 - moveq r0, #1 - bxeq lr - add r1, r2, #5 - cmp r0, r1 - moveq r0, #1 - bxeq lr - add r1, r2, #6 - cmp r0, r1 - moveq r0, #1 - bxeq lr - cmp r0, #0x124 - moveq r0, #1 - bxeq lr - add r1, r2, #4 - cmp r0, r1 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0200CBF0: .4byte 0x0000011D - arm_func_end IsHM - - arm_func_start IsGummi -IsGummi: @ 0x0200CBF4 - cmp r0, #0x77 - movlt r0, #0 - bxlt lr - cmp r0, #0x88 - movle r0, #1 - movgt r0, #0 - and r0, r0, #0xff - bx lr - arm_func_end IsGummi - - arm_func_start IsAuraBow -IsAuraBow: @ 0x0200CC14 - cmp r0, #0x1ac - blt _0200CC2C - ldr r1, _0200CC34 @ =0x000001BB - cmp r0, r1 - movle r0, #1 - bxle lr -_0200CC2C: - mov r0, #0 - bx lr - .align 2, 0 -_0200CC34: .4byte 0x000001BB - arm_func_end IsAuraBow - - arm_func_start FUN_0200cc38 -FUN_0200cc38: @ 0x0200CC38 - push {r4, lr} - mov r4, r0 - ldrb r0, [r4] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _0200CC7C - ldrsh r0, [r4, #4] - bl IsAuraBow - cmp r0, #0 - beq _0200CC74 - ldrb r0, [r4] - tst r0, #2 - beq _0200CC7C -_0200CC74: - mov r0, #1 - pop {r4, pc} -_0200CC7C: - mov r0, #0 - pop {r4, pc} - arm_func_end FUN_0200cc38 - - arm_func_start IsTreasureBox -IsTreasureBox: @ 0x0200CC84 - push {r3, lr} - bl GetItemCategory - add r0, r0, #0xf4 - and r0, r0, #0xff - cmp r0, #2 - movls r0, #1 - movhi r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end IsTreasureBox - - arm_func_start FUN_0200cca8 -FUN_0200cca8: @ 0x0200CCA8 - cmp r0, #0 - moveq r0, #0 - bxeq lr - cmp r0, #0xb7 - moveq r0, #0 - bxeq lr - cmp r0, #0xbb - moveq r0, #0 - bxeq lr - cmp r0, #0xb2 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - arm_func_end FUN_0200cca8 - - arm_func_start FUN_0200cce0 -FUN_0200cce0: @ 0x0200CCE0 - push {r4, lr} - movs r4, r0 - moveq r0, #0 - popeq {r4, pc} - cmp r4, #0xb7 - moveq r0, #0 - popeq {r4, pc} - cmp r4, #9 - moveq r0, #0 - popeq {r4, pc} - cmp r4, #0x39 - moveq r0, #0 - popeq {r4, pc} - cmp r4, #0x3a - moveq r0, #0 - popeq {r4, pc} - cmp r4, #0x73 - moveq r0, #0 - popeq {r4, pc} - cmp r4, #0x88 - moveq r0, #0 - popeq {r4, pc} - cmp r4, #0xb9 - moveq r0, #0 - popeq {r4, pc} - cmp r4, #0xad - moveq r0, #0 - popeq {r4, pc} - cmp r4, #0xae - moveq r0, #0 - popeq {r4, pc} - cmp r4, #0xa - moveq r0, #0 - popeq {r4, pc} - cmp r4, #0xb0 - moveq r0, #0 - popeq {r4, pc} - cmp r4, #0x5d - moveq r0, #0 - popeq {r4, pc} - bl GetItemSellPrice - cmp r0, #0 - moveq r0, #0 - popeq {r4, pc} - mov r0, r4 - bl GetItemBuyPrice - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - pop {r4, pc} - arm_func_end FUN_0200cce0 - - arm_func_start FUN_0200cdac -FUN_0200cdac: @ 0x0200CDAC - cmp r0, #0x16c - movge r0, #1 - bxge lr - mov ip, #0 - ldr r2, _0200CDF0 @ =0x020A18BC - ldr r1, _0200CDF4 @ =0x00000578 - b _0200CDD8 -_0200CDC8: - cmp r0, r3 - moveq r0, #1 - bxeq lr - add ip, ip, #1 -_0200CDD8: - lsl r3, ip, #1 - ldrsh r3, [r2, r3] - cmp r3, r1 - bne _0200CDC8 - mov r0, #0 - bx lr - .align 2, 0 -_0200CDF0: .4byte 0x020A18BC -_0200CDF4: .4byte 0x00000578 - arm_func_end FUN_0200cdac - - arm_func_start FUN_0200cdf8 -FUN_0200cdf8: @ 0x0200CDF8 - push {r4, lr} - mov r4, r0 - ldrb r0, [r4] - tst r0, #2 - beq _0200CE6C - ldrsh r0, [r4, #4] - bl GetItemCategory - cmp r0, #5 - ldrshne r0, [r4, #4] - cmpne r0, #0x47 - cmpne r0, #0x4d - cmpne r0, #0x58 - cmpne r0, #0x59 - cmpne r0, #0x5d - cmpne r0, #0x64 - cmpne r0, #0x65 - cmpne r0, #0x66 - cmpne r0, #0x67 - cmpne r0, #0x6c - beq _0200CE64 - sub r0, r0, #0x77 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, #0x11 - bhi _0200CE6C -_0200CE64: - mov r0, #0 - pop {r4, pc} -_0200CE6C: - mov r0, #1 - pop {r4, pc} - arm_func_end FUN_0200cdf8 - - arm_func_start FUN_0200ce74 -FUN_0200ce74: @ 0x0200CE74 - sub r0, r0, #0xa9 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, #3 - movls r0, #1 - movhi r0, #0 - and r0, r0, #0xff - bx lr - arm_func_end FUN_0200ce74 - - arm_func_start InitItem -InitItem: @ 0x0200CE9C - push {r3, r4, r5, r6, r7, lr} - movs r6, r1 - mov r7, r0 - mov r5, r2 - mov r4, r3 - beq _0200CF44 - mov r0, #1 - strb r0, [r7] - mov r0, r6 - strh r6, [r7, #4] - mov r1, #0 - strb r1, [r7, #1] - bl IsThrownItem - cmp r0, #0 - mov r0, r6 - beq _0200CF04 - mov r1, #1 - bl GetThrownItemQuantityLimit - mov r5, r0 - mov r0, r6 - mov r1, #0 - bl GetThrownItemQuantityLimit - mov r1, r5 - bl RandRangeSafe - strh r0, [r7, #2] - b _0200CF30 -_0200CF04: - bl GetItemCategory - cmp r0, #6 - moveq r0, #1 - strheq r0, [r7, #2] - beq _0200CF30 - add r0, r0, #0xf4 - and r0, r0, #0xff - cmp r0, #2 - strhls r5, [r7, #2] - movhi r0, #0 - strhhi r0, [r7, #2] -_0200CF30: - cmp r4, #0 - ldrbne r0, [r7] - orrne r0, r0, #8 - strbne r0, [r7] - pop {r3, r4, r5, r6, r7, pc} -_0200CF44: - mov r0, #0 - strb r0, [r7] - strh r6, [r7, #4] - strh r0, [r7, #2] - pop {r3, r4, r5, r6, r7, pc} - arm_func_end InitItem - - arm_func_start InitStandardItem -InitStandardItem: @ 0x0200CF58 - ldr ip, _0200CF68 @ =InitItem - mov r3, r2 - mov r2, #0 - bx ip - .align 2, 0 -_0200CF68: .4byte InitItem - arm_func_end InitStandardItem -_0200CF6C: - .byte 0x00, 0xC0, 0x9F, 0xE5 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x9C, 0xCE, 0x00, 0x02 - - arm_func_start FUN_0200cf78 -FUN_0200cf78: @ 0x0200CF78 - push {r4, r5, r6, lr} - movs r5, r1 - mov r6, r0 - strh r5, [r6] - beq _0200CFE4 - mov r0, r5 - bl IsThrownItem - cmp r0, #0 - mov r0, r5 - beq _0200CFC8 - mov r1, #1 - bl GetThrownItemQuantityLimit - mov r4, r0 - mov r0, r5 - mov r1, #0 - bl GetThrownItemQuantityLimit - mov r1, r4 - bl RandRangeSafe - strh r0, [r6, #2] - pop {r4, r5, r6, pc} -_0200CFC8: - bl GetItemCategory - cmp r0, #6 - moveq r0, #1 - strheq r0, [r6, #2] - movne r0, #0 - strhne r0, [r6, #2] - pop {r4, r5, r6, pc} -_0200CFE4: - mov r0, #0 - strh r0, [r6, #2] - pop {r4, r5, r6, pc} - arm_func_end FUN_0200cf78 - - arm_func_start FUN_0200cff0 -FUN_0200cff0: @ 0x0200CFF0 - push {r3, r4, r5, lr} - mov r4, r1 - ldrsh r1, [r4] - mov r5, r0 - cmp r1, #0 - beq _0200D098 - mov r0, #1 - strb r0, [r5] - ldrsh r1, [r4] - mov r0, #0 - strh r1, [r5, #4] - strb r0, [r5, #1] - ldrsh r0, [r5, #4] - bl IsThrownItem - cmp r0, #0 - ldrhne r0, [r4, #2] - strhne r0, [r5, #2] - popne {r3, r4, r5, pc} - ldrsh r0, [r5, #4] - bl GetItemCategory - cmp r0, #0xe - bgt _0200D078 - subs r1, r0, #6 - addpl pc, pc, r1, lsl #2 - b _0200D08C -_0200D054: @ jump table - b _0200D080 @ case 0 - b _0200D08C @ case 1 - b _0200D08C @ case 2 - b _0200D08C @ case 3 - b _0200D08C @ case 4 - b _0200D08C @ case 5 - b _0200D080 @ case 6 - b _0200D080 @ case 7 - b _0200D080 @ case 8 -_0200D078: - cmp r0, #0xbb - bne _0200D08C -_0200D080: - ldrh r0, [r4, #2] - strh r0, [r5, #2] - pop {r3, r4, r5, pc} -_0200D08C: - mov r0, #0 - strh r0, [r5, #2] - pop {r3, r4, r5, pc} -_0200D098: - bl ItemZInit - pop {r3, r4, r5, pc} - arm_func_end FUN_0200cff0 -_0200D0A0: - .byte 0x00, 0x20, 0xD1, 0xE5, 0x01, 0x00, 0x12, 0xE3, 0x01, 0x20, 0xA0, 0x13, 0x00, 0x20, 0xA0, 0x03 - .byte 0xFF, 0x00, 0x12, 0xE3, 0xF4, 0x20, 0xD1, 0x11, 0xB0, 0x20, 0xC0, 0x11, 0xB2, 0x10, 0xD1, 0x11 - .byte 0x00, 0x10, 0xA0, 0x03, 0xB0, 0x10, 0xC0, 0x01, 0xB2, 0x10, 0xC0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start GetDisplayedBuyPrice -GetDisplayedBuyPrice: @ 0x0200D0D0 - push {r4, lr} - mov r4, r0 - ldrsh r1, [r4, #4] - cmp r1, #0xb7 - bne _0200D0EC - bl FUN_0200d8ac - pop {r4, pc} -_0200D0EC: - mov r0, r1 - bl IsThrownItem - cmp r0, #0 - ldrsh r0, [r4, #4] - beq _0200D110 - bl GetItemBuyPrice - ldrh r1, [r4, #2] - mul r0, r1, r0 - pop {r4, pc} -_0200D110: - bl GetItemBuyPrice - pop {r4, pc} - arm_func_end GetDisplayedBuyPrice - - arm_func_start GetDisplayedSellPrice -GetDisplayedSellPrice: @ 0x0200D118 - push {r4, lr} - mov r4, r0 - ldrsh r1, [r4, #4] - cmp r1, #0xb7 - bne _0200D134 - bl FUN_0200d8ac - pop {r4, pc} -_0200D134: - mov r0, r1 - bl IsThrownItem - cmp r0, #0 - ldrsh r0, [r4, #4] - beq _0200D158 - bl GetItemSellPrice - ldrh r1, [r4, #2] - mul r0, r1, r0 - pop {r4, pc} -_0200D158: - bl GetItemSellPrice - pop {r4, pc} - arm_func_end GetDisplayedSellPrice - - arm_func_start GetActualBuyPrice -GetActualBuyPrice: @ 0x0200D160 - push {r4, lr} - mov r4, r0 - ldrsh r0, [r4, #4] - bl FUN_0200cce0 - cmp r0, #0 - moveq r0, #0 - popeq {r4, pc} - ldrsh r0, [r4, #4] - bl IsThrownItem - cmp r0, #0 - ldrsh r0, [r4, #4] - beq _0200D1A0 - bl GetItemBuyPrice - ldrh r1, [r4, #2] - mul r0, r1, r0 - pop {r4, pc} -_0200D1A0: - bl GetItemBuyPrice - pop {r4, pc} - arm_func_end GetActualBuyPrice - - arm_func_start GetActualSellPrice -GetActualSellPrice: @ 0x0200D1A8 - push {r4, lr} - mov r4, r0 - ldrsh r0, [r4, #4] - bl FUN_0200cce0 - cmp r0, #0 - moveq r0, #0 - popeq {r4, pc} - ldrsh r0, [r4, #4] - bl IsThrownItem - cmp r0, #0 - ldrsh r0, [r4, #4] - beq _0200D1E8 - bl GetItemSellPrice - ldrh r1, [r4, #2] - mul r0, r1, r0 - pop {r4, pc} -_0200D1E8: - bl GetItemSellPrice - pop {r4, pc} - arm_func_end GetActualSellPrice - - arm_func_start thunk_FUN_0200eb64 -thunk_FUN_0200eb64: @ 0x0200D1F0 - ldr ip, _0200D1F8 @ =FUN_0200eb64 - bx ip - .align 2, 0 -_0200D1F8: .4byte FUN_0200eb64 - arm_func_end thunk_FUN_0200eb64 -_0200D1FC: - .byte 0x00, 0xC0, 0x9F, 0xE5 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x18, 0xEA, 0x00, 0x02, 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 - .byte 0x38, 0xEA, 0x00, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x58, 0xD0, 0x4D, 0xE2, 0x01, 0x50, 0xA0, 0xE1 - .byte 0x00, 0x60, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1, 0x8C, 0x05, 0x00, 0xEB - .byte 0x00, 0x10, 0xA0, 0xE1, 0x06, 0x00, 0x8D, 0xE2, 0x50, 0x20, 0xA0, 0xE3, 0x46, 0xF1, 0x01, 0xEB - .byte 0x00, 0x20, 0xA0, 0xE3, 0x05, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0x8D, 0xE2, 0x02, 0x30, 0xA0, 0xE1 - .byte 0x11, 0xFF, 0xFF, 0xEB, 0x01, 0x10, 0xA0, 0xE3, 0xB2, 0x10, 0xCD, 0xE1, 0x06, 0x00, 0xA0, 0xE1 - .byte 0x04, 0x30, 0xA0, 0xE1, 0x06, 0x10, 0x8D, 0xE2, 0x00, 0x20, 0x8D, 0xE2, 0x05, 0x01, 0x00, 0xEB - .byte 0x58, 0xD0, 0x8D, 0xE2, 0x70, 0x80, 0xBD, 0xE8 - - arm_func_start FindItemInInventory -FindItemInInventory: @ 0x0200D278 - push {r4, r5, r6, lr} - ldr r1, _0200D30C @ =0x020AF6B8 - mov r5, #0 - ldr r6, [r1] - mov r3, r5 - mov ip, #1 - mov r1, #6 - b _0200D2D0 -_0200D298: - mul lr, r5, r1 - ldr r4, [r6, #0x384] - ldrb r2, [r4, lr] - add r4, r4, lr - tst r2, #1 - movne r2, ip - moveq r2, r3 - tst r2, #0xff - beq _0200D2CC - ldrsh r2, [r4, #4] - cmp r0, r2 - moveq r0, r5 - popeq {r4, r5, r6, pc} -_0200D2CC: - add r5, r5, #1 -_0200D2D0: - cmp r5, #0x32 - blt _0200D298 - mov r2, #0 - b _0200D2FC -_0200D2E0: - add r1, r6, r2, lsl #1 - add r1, r1, #0x300 - ldrsh r1, [r1, #0x8a] - cmp r0, r1 - addeq r0, r2, #0x8000 - popeq {r4, r5, r6, pc} - add r2, r2, #1 -_0200D2FC: - cmp r2, #0x3e8 - blt _0200D2E0 - mvn r0, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0200D30C: .4byte 0x020AF6B8 - arm_func_end FindItemInInventory - - arm_func_start FUN_0200d310 -FUN_0200d310: @ 0x0200D310 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0xa0 - mov sb, r1 - mov sl, r0 - ldrsh r0, [sb, #4] - mov r8, r2 - mov r7, r3 - mov r4, #0 - bl GetItemCategory - mov r5, r4 - mov r6, r0 - cmp r8, #0 - ldrbne r0, [r8, #8] - mov fp, r5 - cmpne r0, #0 - ldrsh r0, [sb, #4] - movne r4, #1 - bl GetItemName - mov r2, r0 - cmp r6, #0 - bne _0200D3B4 - cmp r4, #0 - add r0, sp, #0x50 - beq _0200D394 - cmp r7, #0 - ldrh r3, [sb, #2] - beq _0200D388 - ldr r1, _0200D60C @ =0x02097F34 - bl SprintfStatic - b _0200D4F8 -_0200D388: - ldr r1, _0200D610 @ =0x02097F50 - bl SprintfStatic - b _0200D4F8 -_0200D394: - cmp r7, #0 - beq _0200D3A8 - ldr r1, _0200D614 @ =0x02097F58 - bl SprintfStatic - b _0200D4F8 -_0200D3A8: - ldr r1, _0200D618 @ =0x02097F68 - bl SprintfStatic - b _0200D4F8 -_0200D3B4: - cmp r6, #1 - bne _0200D40C - cmp r4, #0 - add r0, sp, #0x50 - beq _0200D3EC - cmp r7, #0 - ldrh r3, [sb, #2] - beq _0200D3E0 - ldr r1, _0200D60C @ =0x02097F34 - bl SprintfStatic - b _0200D4F8 -_0200D3E0: - ldr r1, _0200D610 @ =0x02097F50 - bl SprintfStatic - b _0200D4F8 -_0200D3EC: - cmp r7, #0 - beq _0200D400 - ldr r1, _0200D614 @ =0x02097F58 - bl SprintfStatic - b _0200D4F8 -_0200D400: - ldr r1, _0200D618 @ =0x02097F68 - bl SprintfStatic - b _0200D4F8 -_0200D40C: - add r0, r6, #0xf4 - and r0, r0, #0xff - cmp r0, #2 - bhi _0200D440 - cmp r7, #0 - add r0, sp, #0x50 - beq _0200D434 - ldr r1, _0200D61C @ =0x02097F6C - bl SprintfStatic - b _0200D4F8 -_0200D434: - mov r1, r2 - bl Strcpy - b _0200D4F8 -_0200D440: - ldrsh r0, [sb, #4] - cmp r0, #0xb7 - bne _0200D4AC - mov r0, sb - bl FUN_0200d8ac - mov r1, r0 - add r0, sp, #0 - bl FUN_020238e0 - cmp r7, #0 - add r0, sp, #0x50 - add r2, sp, #0 - beq _0200D47C - ldr r1, _0200D620 @ =0x02097F7C - bl SprintfStatic - b _0200D484 -_0200D47C: - ldr r1, _0200D624 @ =0x02097F90 - bl SprintfStatic -_0200D484: - cmp r7, #0 - add r0, sp, #0x50 - add r2, sp, #0 - beq _0200D4A0 - ldr r1, _0200D620 @ =0x02097F7C - bl SprintfStatic - b _0200D4F8 -_0200D4A0: - ldr r1, _0200D624 @ =0x02097F90 - bl SprintfStatic - b _0200D4F8 -_0200D4AC: - cmp r6, #0xf - add r0, sp, #0x50 - bne _0200D4D8 - cmp r7, #0 - beq _0200D4CC - ldr r1, _0200D628 @ =0x02097F9C - bl SprintfStatic - b _0200D4F8 -_0200D4CC: - mov r1, r2 - bl Strcpy - b _0200D4F8 -_0200D4D8: - cmp r7, #0 - beq _0200D4EC - ldr r1, _0200D614 @ =0x02097F58 - bl SprintfStatic - b _0200D4F8 -_0200D4EC: - mov r1, r2 - mov r2, #0x50 - bl Strncpy -_0200D4F8: - ldrb r0, [sb] - tst r0, #8 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _0200D538 - ldr r1, _0200D62C @ =0x02097FAC - add r2, sp, #0x50 - mov r0, sl - bl SprintfStatic - add r0, sp, #0x50 - mov r1, sl - mov r2, #0x50 - bl Strncpy - mov fp, #1 - b _0200D564 -_0200D538: - ldrb r0, [sp, #0xc8] - cmp r0, #0 - beq _0200D564 - ldr r1, _0200D630 @ =0x02097FB8 - add r2, sp, #0x50 - mov r0, sl - bl SprintfStatic - add r0, sp, #0x50 - mov r1, sl - mov r2, #0x50 - bl Strncpy -_0200D564: - cmp r8, #0 - bne _0200D580 - add r1, sp, #0x50 - mov r0, sl - mov r2, #0x50 - bl Strncpy - b _0200D600 -_0200D580: - ldrb r0, [r8, #4] - cmp r0, #0 - beq _0200D5AC - ldrb r0, [sb] - tst r0, #0x10 - beq _0200D5AC - cmp fp, #0 - movne r0, #0x35 - strbne r0, [sp, #0x54] - moveq r0, #0x32 - strbeq r0, [sp, #0x54] -_0200D5AC: - ldr r0, [r8] - add r1, sp, #0x50 - cmp r0, #1 - cmpne r0, #3 - bne _0200D5F0 - ldrb r0, [sb] - tst r0, #2 - mov r0, sl - beq _0200D5E4 - mov r2, sb - mov r3, r8 - bl FUN_0200d688 - mov r5, #1 - b _0200D600 -_0200D5E4: - mov r2, #0x50 - bl Strncpy - b _0200D600 -_0200D5F0: - mov r0, sl - mov r2, sb - mov r3, r8 - bl FUN_0200d688 -_0200D600: - mov r0, r5 - add sp, sp, #0xa0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0200D60C: .4byte 0x02097F34 -_0200D610: .4byte 0x02097F50 -_0200D614: .4byte 0x02097F58 -_0200D618: .4byte 0x02097F68 -_0200D61C: .4byte 0x02097F6C -_0200D620: .4byte 0x02097F7C -_0200D624: .4byte 0x02097F90 -_0200D628: .4byte 0x02097F9C -_0200D62C: .4byte 0x02097FAC -_0200D630: .4byte 0x02097FB8 - arm_func_end FUN_0200d310 - - arm_func_start SprintfStatic -SprintfStatic: @ 0x0200D634 - push {r0, r1, r2, r3} - push {r3, lr} - add r2, sp, #0xc - bic r2, r2, #3 - ldr r1, [sp, #0xc] - add r2, r2, #4 - bl Vsprintf - pop {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end SprintfStatic - - arm_func_start FUN_0200d65c -FUN_0200d65c: @ 0x0200D65C - push {r3, lr} - mov r3, #0 - str r3, [sp] - bl FUN_0200d310 - pop {r3, pc} - arm_func_end FUN_0200d65c - - arm_func_start FUN_0200d670 -FUN_0200d670: @ 0x0200D670 - push {r3, lr} - mov ip, #0 - mov r3, #1 - str ip, [sp] - bl FUN_0200d310 - pop {r3, pc} - arm_func_end FUN_0200d670 - - arm_func_start FUN_0200d688 -FUN_0200d688: @ 0x0200D688 - push {r3, r4, r5, r6, lr} - sub sp, sp, #0x2c - movs r4, r3 - mov r6, r0 - mov r5, r1 - bne _0200D6AC - mov r2, #0x50 - bl Strncpy - b _0200D75C -_0200D6AC: - ldr r0, [r4] - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _0200D6E8 -_0200D6BC: @ jump table - b _0200D6E8 @ case 0 - b _0200D6D0 @ case 1 - b _0200D6D0 @ case 2 - b _0200D6DC @ case 3 - b _0200D6DC @ case 4 -_0200D6D0: - mov r0, r2 - bl GetDisplayedBuyPrice - b _0200D6EC -_0200D6DC: - mov r0, r2 - bl GetDisplayedSellPrice - b _0200D6EC -_0200D6E8: - mov r0, #0 -_0200D6EC: - cmp r0, #0 - bne _0200D708 - mov r0, r6 - mov r1, r5 - mov r2, #0x50 - bl Strncpy - b _0200D75C -_0200D708: - ldrsh r1, [r4, #6] - cmp r1, #0 - add r1, sp, #4 - beq _0200D740 - mov r2, #1 - bl FUN_0200d76c - add r0, sp, #4 - str r0, [sp] - ldrsh r3, [r4, #6] - ldr r1, _0200D764 @ =0x02097FC4 - mov r0, r6 - mov r2, r5 - bl SprintfStatic - b _0200D75C -_0200D740: - mov r2, #0 - bl FUN_0200d76c - ldr r1, _0200D768 @ =0x02097FE4 - add r3, sp, #4 - mov r0, r6 - mov r2, r5 - bl SprintfStatic -_0200D75C: - add sp, sp, #0x2c - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_0200D764: .4byte 0x02097FC4 -_0200D768: .4byte 0x02097FE4 - arm_func_end FUN_0200d688 - - arm_func_start FUN_0200d76c -FUN_0200d76c: @ 0x0200D76C - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr r3, _0200D814 @ =0x020AF6B8 - mov ip, #0 - ldr lr, [r3, #4] - ldr r8, _0200D818 @ =0x02094D0C - mov r3, ip - mov sl, ip - mov r7, #9 - mov r4, #0x7f - mov r6, #1 - mov sb, ip -_0200D798: - mov r5, sb - ldr fp, [r8, sl, lsl #2] - b _0200D7AC -_0200D7A4: - sub r0, r0, fp - add r5, r5, #1 -_0200D7AC: - cmp r0, fp - bge _0200D7A4 - cmp r5, #9 - movgt r5, r7 - cmp r5, #0 - ldrbne r5, [lr, r5] - movne ip, r6 - addne r3, r3, #1 - strbne r5, [r1], #1 - bne _0200D7F0 - cmp ip, #0 - ldrbne r5, [lr, r5] - addne r3, r3, #1 - strbne r5, [r1], #1 - bne _0200D7F0 - cmp r2, #0 - strbne r4, [r1], #1 -_0200D7F0: - add sl, sl, #1 - cmp sl, #5 - blt _0200D798 - ldrb ip, [lr, r0] - mov r2, #0 - add r0, r3, #1 - strb ip, [r1] - strb r2, [r1, #1] - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0200D814: .4byte 0x020AF6B8 -_0200D818: .4byte 0x02094D0C - arm_func_end FUN_0200d76c - - arm_func_start ItemZInit -ItemZInit: @ 0x0200D81C - mov r1, #0 - strh r1, [r0, #4] - strh r1, [r0, #2] - strb r1, [r0] - strb r1, [r0, #1] - bx lr - arm_func_end ItemZInit - - arm_func_start FUN_0200d834 -FUN_0200d834: @ 0x0200D834 - ldrb ip, [r0] - ldrb r3, [r1] - and ip, ip, r2 - and r2, r3, r2 - cmp ip, r2 - movne r0, #0 - bxne lr - ldrb r3, [r0, #1] - ldrb r2, [r1, #1] - cmp r3, r2 - movne r0, #0 - bxne lr - ldrh r3, [r0, #2] - ldrh r2, [r1, #2] - cmp r3, r2 - movne r0, #0 - bxne lr - ldrsh r2, [r0, #4] - ldrsh r0, [r1, #4] - cmp r2, r0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr - arm_func_end FUN_0200d834 -_0200D894: - .byte 0x00, 0x10, 0xA0, 0xE3, 0x01, 0x10, 0xC0, 0xE5, 0x00, 0x10, 0xD0, 0xE5 - .byte 0x18, 0x10, 0xC1, 0xE3, 0x00, 0x10, 0xC0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0200d8ac -FUN_0200d8ac: @ 0x0200D8AC - push {r3, lr} - ldrb r1, [r0] - ldrh r2, [r0, #2] - ldr r0, _0200D8DC @ =0x020A1F20 - tst r1, #0x20 - ldr r0, [r0, r2, lsl #2] - popeq {r3, pc} - ldr r1, _0200D8E0 @ =0x00000133 - lsl r0, r0, #8 - bl MultiplyByFixedPoint - asr r0, r0, #8 - pop {r3, pc} - .align 2, 0 -_0200D8DC: .4byte 0x020A1F20 -_0200D8E0: .4byte 0x00000133 - arm_func_end FUN_0200d8ac -_0200D8E4: - .byte 0xF8, 0x40, 0x2D, 0xE9, 0x00, 0x70, 0xA0, 0xE1, 0xC5, 0x03, 0x00, 0xEB - .byte 0x0F, 0x00, 0x50, 0xE3, 0x15, 0x00, 0x00, 0x1A, 0x00, 0x50, 0xA0, 0xE3, 0x54, 0x40, 0x9F, 0xE5 - .byte 0x0E, 0x00, 0x00, 0xEA, 0x07, 0x00, 0xA0, 0xE1, 0x94, 0x03, 0x00, 0xEB, 0x00, 0x00, 0x56, 0xE1 - .byte 0x09, 0x00, 0x00, 0x1A, 0x01, 0x00, 0x87, 0xE2, 0x00, 0x08, 0xA0, 0xE1, 0x40, 0x78, 0xA0, 0xE1 - .byte 0x07, 0x00, 0xA0, 0xE1, 0x8D, 0x03, 0x00, 0xEB, 0x05, 0x11, 0x84, 0xE0, 0xF2, 0x10, 0xD1, 0xE1 - .byte 0x00, 0x00, 0x51, 0xE1, 0x07, 0x00, 0xA0, 0x01, 0xF8, 0x80, 0xBD, 0x08, 0x01, 0x50, 0x85, 0xE2 - .byte 0x05, 0x01, 0xA0, 0xE1, 0xF0, 0x60, 0x94, 0xE1, 0x00, 0x00, 0x56, 0xE3, 0xEC, 0xFF, 0xFF, 0x1A - .byte 0x00, 0x00, 0xA0, 0xE3, 0xF8, 0x80, 0xBD, 0xE8, 0x20, 0x4D, 0x09, 0x02 - - arm_func_start WriteItemsToSave -WriteItemsToSave: @ 0x0200D95C - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x10 - mov r3, r0 - mov r2, r1 - add r0, sp, #0 - mov r1, r3 - bl FUN_02050990 - mov r8, #0 - ldr r6, _0200DC40 @ =0x020AF6B8 - mov fp, r8 - mov r4, #6 - mov r5, #0x12c -_0200D98C: - mul sl, r8, r5 - mov r7, fp -_0200D994: - ldr r1, [r6] - add r0, sp, #0 - add r1, r1, sl - mla sb, r7, r4, r1 - mov r1, sb - mov r2, #8 - bl CopyBitsTo - add r0, sp, #0 - add r1, sb, #2 - mov r2, #0xb - bl CopyBitsTo - add r0, sp, #0 - add r1, sb, #4 - mov r2, #0xb - bl CopyBitsTo - add r1, sb, #1 - add r0, sp, #0 - mov r2, #3 - bl CopyBitsTo - add r7, r7, #1 - cmp r7, #0x32 - blt _0200D994 - add r8, r8, #1 - cmp r8, #3 - blt _0200D98C - ldr r4, _0200DC40 @ =0x020AF6B8 - mov r7, #0 - add r6, sp, #0 - mov r5, #0xb -_0200DA08: - ldr r1, [r4] - mov r0, r6 - add r1, r1, #0x8a - add r1, r1, #0x300 - mov r2, r5 - add r1, r1, r7, lsl #1 - bl CopyBitsTo - add r7, r7, #1 - cmp r7, #0x3e8 - blt _0200DA08 - ldr r4, _0200DC40 @ =0x020AF6B8 - mov r7, #0 - add r6, sp, #0 - mov r5, #0xb -_0200DA40: - ldr r1, [r4] - mov r0, r6 - add r1, r1, #0x5a - add r1, r1, #0xb00 - mov r2, r5 - add r1, r1, r7, lsl #1 - bl CopyBitsTo - add r7, r7, #1 - cmp r7, #0x3e8 - blt _0200DA40 - mov sb, #0 - mov r5, #0xb - ldr r4, _0200DC40 @ =0x020AF6B8 - add r6, sp, #0 - mov fp, r5 - mov r7, sb -_0200DA80: - mov sl, r7 -_0200DA84: - ldr r1, [r4] - mov r0, r6 - add r1, r1, #0x330 - add r1, r1, #0x1000 - add r1, r1, sb, lsl #5 - add r8, r1, sl, lsl #2 - mov r1, r8 - mov r2, r5 - bl CopyBitsTo - add r1, r8, #2 - mov r0, r6 - mov r2, fp - bl CopyBitsTo - add sl, sl, #1 - cmp sl, #8 - blt _0200DA84 - mov sl, #0 -_0200DAC8: - ldr r1, [r4] - mov r0, r6 - add r1, r1, #0x374 - add r1, r1, #0x1000 - add r1, r1, sb, lsl #4 - add r8, r1, sl, lsl #2 - mov r1, r8 - mov r2, #0xb - bl CopyBitsTo - add r1, r8, #2 - mov r0, r6 - mov r2, #0xb - bl CopyBitsTo - add sl, sl, #1 - cmp sl, #4 - blt _0200DAC8 - add sb, sb, #1 - cmp sb, #2 - blt _0200DA80 - ldr r4, _0200DC40 @ =0x020AF6B8 - mov r7, #0 - add r6, sp, #0 - mov r5, #0x18 -_0200DB24: - ldr r1, [r4] - mov r0, r6 - add r1, r1, #0x394 - add r1, r1, #0x1000 - mov r2, r5 - add r1, r1, r7, lsl #2 - bl CopyBitsTo - add r7, r7, #1 - cmp r7, #3 - blt _0200DB24 - ldr r1, _0200DC40 @ =0x020AF6B8 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #0x18 - add r1, r1, #0x3a0 - add r1, r1, #0x1000 - bl CopyBitsTo - ldr r1, _0200DC40 @ =0x020AF6B8 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #0xc - add r1, r1, #0x3a4 - add r1, r1, #0x1000 - bl CopyBitsTo - ldr r1, _0200DC40 @ =0x020AF6B8 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #0xc - add r1, r1, #0xa6 - add r1, r1, #0x1300 - bl CopyBitsTo - ldr r1, _0200DC40 @ =0x020AF6B8 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #8 - add r1, r1, #0x3a8 - add r1, r1, #0x1000 - bl CopyBitsTo - ldr r1, _0200DC40 @ =0x020AF6B8 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #8 - add r1, r1, #0xaa - add r1, r1, #0x1300 - bl CopyBitsTo - ldr r1, _0200DC40 @ =0x020AF6B8 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #0x10 - add r1, r1, #0x3ac - add r1, r1, #0x1000 - bl CopyBitsTo - ldr r1, _0200DC40 @ =0x020AF6B8 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #0x10 - add r1, r1, #0x3b0 - add r1, r1, #0x1000 - bl CopyBitsTo - ldr r1, _0200DC40 @ =0x020AF6B8 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #0x10 - add r1, r1, #0xb2 - add r1, r1, #0x1300 - bl CopyBitsTo - add r0, sp, #0 - bl FUN_020509bc - ldr r0, [sp, #8] - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0200DC40: .4byte 0x020AF6B8 - arm_func_end WriteItemsToSave - - arm_func_start ReadItemsFromSave -ReadItemsFromSave: @ 0x0200DC44 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x10 - mov r3, r0 - mov r2, r1 - add r0, sp, #0 - mov r1, r3 - bl FUN_02050974 - mov r8, #0 - ldr r6, _0200DF28 @ =0x020AF6B8 - mov fp, r8 - mov r4, #6 - mov r5, #0x12c -_0200DC74: - mul sl, r8, r5 - mov r7, fp -_0200DC7C: - ldr r1, [r6] - add r0, sp, #0 - add r1, r1, sl - mla sb, r7, r4, r1 - mov r1, sb - mov r2, #8 - bl CopyBitsFrom - add r0, sp, #0 - add r1, sb, #2 - mov r2, #0xb - bl CopyBitsFrom - add r0, sp, #0 - add r1, sb, #4 - mov r2, #0xb - bl CopyBitsFrom - add r1, sb, #1 - add r0, sp, #0 - mov r2, #3 - bl CopyBitsFrom - add r7, r7, #1 - cmp r7, #0x32 - blt _0200DC7C - add r8, r8, #1 - cmp r8, #3 - blt _0200DC74 - ldr r4, _0200DF28 @ =0x020AF6B8 - mov r7, #0 - add r6, sp, #0 - mov r5, #0xb -_0200DCF0: - ldr r1, [r4] - mov r0, r6 - add r1, r1, #0x8a - add r1, r1, #0x300 - mov r2, r5 - add r1, r1, r7, lsl #1 - bl CopyBitsFrom - add r7, r7, #1 - cmp r7, #0x3e8 - blt _0200DCF0 - ldr r4, _0200DF28 @ =0x020AF6B8 - mov r7, #0 - add r6, sp, #0 - mov r5, #0xb -_0200DD28: - ldr r1, [r4] - mov r0, r6 - add r1, r1, #0x5a - add r1, r1, #0xb00 - mov r2, r5 - add r1, r1, r7, lsl #1 - bl CopyBitsFrom - add r7, r7, #1 - cmp r7, #0x3e8 - blt _0200DD28 - mov sb, #0 - mov r5, #0xb - ldr r4, _0200DF28 @ =0x020AF6B8 - add r6, sp, #0 - mov fp, r5 - mov r7, sb -_0200DD68: - mov sl, r7 -_0200DD6C: - ldr r1, [r4] - mov r0, r6 - add r1, r1, #0x330 - add r1, r1, #0x1000 - add r1, r1, sb, lsl #5 - add r8, r1, sl, lsl #2 - mov r1, r8 - mov r2, r5 - bl CopyBitsFrom - add r1, r8, #2 - mov r0, r6 - mov r2, fp - bl CopyBitsFrom - add sl, sl, #1 - cmp sl, #8 - blt _0200DD6C - mov sl, #0 -_0200DDB0: - ldr r1, [r4] - mov r0, r6 - add r1, r1, #0x374 - add r1, r1, #0x1000 - add r1, r1, sb, lsl #4 - add r8, r1, sl, lsl #2 - mov r1, r8 - mov r2, #0xb - bl CopyBitsFrom - add r1, r8, #2 - mov r0, r6 - mov r2, #0xb - bl CopyBitsFrom - add sl, sl, #1 - cmp sl, #4 - blt _0200DDB0 - add sb, sb, #1 - cmp sb, #2 - blt _0200DD68 - ldr r4, _0200DF28 @ =0x020AF6B8 - mov r7, #0 - add r6, sp, #0 - mov r5, #0x18 -_0200DE0C: - ldr r1, [r4] - mov r0, r6 - add r1, r1, #0x394 - add r1, r1, #0x1000 - mov r2, r5 - add r1, r1, r7, lsl #2 - bl CopyBitsFrom - add r7, r7, #1 - cmp r7, #3 - blt _0200DE0C - ldr r1, _0200DF28 @ =0x020AF6B8 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #0x18 - add r1, r1, #0x3a0 - add r1, r1, #0x1000 - bl CopyBitsFrom - ldr r1, _0200DF28 @ =0x020AF6B8 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #0xc - add r1, r1, #0x3a4 - add r1, r1, #0x1000 - bl CopyBitsFrom - ldr r1, _0200DF28 @ =0x020AF6B8 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #0xc - add r1, r1, #0xa6 - add r1, r1, #0x1300 - bl CopyBitsFrom - ldr r1, _0200DF28 @ =0x020AF6B8 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #8 - add r1, r1, #0x3a8 - add r1, r1, #0x1000 - bl CopyBitsFrom - ldr r1, _0200DF28 @ =0x020AF6B8 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #8 - add r1, r1, #0xaa - add r1, r1, #0x1300 - bl CopyBitsFrom - ldr r1, _0200DF28 @ =0x020AF6B8 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #0x10 - add r1, r1, #0x3ac - add r1, r1, #0x1000 - bl CopyBitsFrom - ldr r1, _0200DF28 @ =0x020AF6B8 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #0x10 - add r1, r1, #0x3b0 - add r1, r1, #0x1000 - bl CopyBitsFrom - ldr r1, _0200DF28 @ =0x020AF6B8 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #0x10 - add r1, r1, #0xb2 - add r1, r1, #0x1300 - bl CopyBitsFrom - add r0, sp, #0 - bl FUN_020509bc - ldr r0, [sp, #8] - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0200DF28: .4byte 0x020AF6B8 - arm_func_end ReadItemsFromSave - - arm_func_start FUN_0200df2c -FUN_0200df2c: @ 0x0200DF2C - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r2, #8 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #2 - mov r2, #0xb - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #4 - mov r2, #0xb - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #1 - mov r2, #3 - bl CopyBitsFrom - pop {r3, r4, r5, pc} - arm_func_end FUN_0200df2c - - arm_func_start FUN_0200df74 -FUN_0200df74: @ 0x0200DF74 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r2, #8 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #2 - mov r2, #0xb - bl CopyBitsTo - mov r0, r5 - add r1, r4, #4 - mov r2, #0xb - bl CopyBitsTo - mov r0, r5 - add r1, r4, #1 - mov r2, #3 - bl CopyBitsTo - pop {r3, r4, r5, pc} - arm_func_end FUN_0200df74 - - arm_func_start FUN_0200dfbc -FUN_0200dfbc: @ 0x0200DFBC - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r2, #0xa - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #2 - mov r2, #0xa - bl CopyBitsFrom - pop {r3, r4, r5, pc} - arm_func_end FUN_0200dfbc - - arm_func_start FUN_0200dfe4 -FUN_0200dfe4: @ 0x0200DFE4 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r2, #0xa - bl CopyBitsTo - mov r0, r5 - add r1, r4, #2 - mov r2, #0xa - bl CopyBitsTo - pop {r3, r4, r5, pc} - arm_func_end FUN_0200dfe4 - - arm_func_start IsItemAvailableInDungeonGroup -IsItemAvailableInDungeonGroup: @ 0x0200E00C - push {r4, lr} - mov r4, r1 - bl GetDungeonGroup - cmp r0, #0x64 - movhs r0, #0 - pophs {r4, pc} - ldr r2, _0200E050 @ =0x02094D34 - asr r1, r4, #2 - add r0, r2, r0, lsl #7 - add r1, r4, r1, lsr #29 - ldrb r0, [r0, r1, asr #3] - and r1, r4, #7 - mov r2, #1 - tst r0, r2, lsl r1 - moveq r2, #0 - and r0, r2, #0xff - pop {r4, pc} - .align 2, 0 -_0200E050: .4byte 0x02094D34 - arm_func_end IsItemAvailableInDungeonGroup - - arm_func_start GetItemIdFromList -GetItemIdFromList: @ 0x0200E054 - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov r6, r0 - mov r5, r1 - mov r0, #0x2f8 - mov r1, #0 - mov r4, r2 - bl MemAlloc - mov r8, r0 - mov r0, #0x2f8 - mov r1, #0 - bl MemAlloc - cmp r6, #0 - mov r7, r0 - ldreq r0, _0200E1F0 @ =0x020B0948 - subne r1, r6, #1 - ldreq r2, [r0] - ldrne r0, _0200E1F0 @ =0x020B0948 - ldr r3, _0200E1F4 @ =0xFFFF8AD0 - ldrne r2, [r0, r1, lsl #2] - mov r0, #0 - mov r1, r0 - mov ip, r0 - rsb r6, r3, #0 - b _0200E0F8 -_0200E0B4: - lsl sb, r0, #1 - ldrh lr, [r2, sb] - cmp lr, r6 - blo _0200E0E8 - add lr, lr, r3 - b _0200E0DC -_0200E0CC: - lsl sb, r1, #1 - strh ip, [r8, sb] - add r1, r1, #1 - sub lr, lr, #1 -_0200E0DC: - cmp lr, #0 - bne _0200E0CC - b _0200E0F4 -_0200E0E8: - lsl sb, r1, #1 - strh lr, [r8, sb] - add r1, r1, #1 -_0200E0F4: - add r0, r0, #1 -_0200E0F8: - cmp r1, #0x17c - blt _0200E0B4 - mov r2, #0 - mov r3, r2 -_0200E108: - lsl r1, r2, #1 - ldrh r0, [r8, r1] - add r3, r3, #1 - cmp r3, #0x10 - strh r0, [r7, r1] - add r2, r2, #1 - blt _0200E108 - mov r3, #0 -_0200E128: - lsl r0, r2, #1 - ldrh r1, [r8, r0] - add r0, r7, r3, lsl #1 - add r3, r3, #1 - strh r1, [r0, #0x20] - cmp r3, #0x16c - add r2, r2, #1 - blt _0200E128 - mov r6, #0x10 - mov r1, #0 - b _0200E174 -_0200E154: - lsl r0, r1, #1 - ldrsh r0, [r7, r0] - cmp r0, #0 - beq _0200E170 - cmp r0, r5 - andge r6, r1, #0xff - bge _0200E17C -_0200E170: - add r1, r1, #1 -_0200E174: - cmp r1, #0x10 - blt _0200E154 -_0200E17C: - cmp r6, #0x10 - mov r5, #0x55 - beq _0200E1D8 - mov sb, #0 - b _0200E1D0 -_0200E190: - add r0, r7, sb, lsl #1 - ldrsh r0, [r0, #0x20] - cmp r0, #0 - beq _0200E1CC - lsl r0, sb, #0x10 - asr r0, r0, #0x10 - bl GetItemCategory - cmp r6, r0 - bne _0200E1CC - add r0, r7, sb, lsl #1 - ldrsh r0, [r0, #0x20] - cmp r0, r4 - lslge r0, sb, #0x10 - asrge r5, r0, #0x10 - bge _0200E1D8 -_0200E1CC: - add sb, sb, #1 -_0200E1D0: - cmp sb, #0x16c - blt _0200E190 -_0200E1D8: - mov r0, r7 - bl MemFree - mov r0, r8 - bl MemFree - mov r0, r5 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0200E1F0: .4byte 0x020B0948 -_0200E1F4: .4byte 0xFFFF8AD0 - arm_func_end GetItemIdFromList - - arm_func_start NormalizeTreasureBox -NormalizeTreasureBox: @ 0x0200E1F8 - sub r1, r0, #0x16c - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - cmp r1, #2 - movls r0, #0x16c - bxls lr - ldr r1, _0200E39C @ =0xFFFFFE91 - add r2, r0, r1 - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 - cmp r2, #2 - rsbls r0, r1, #0 - bxls lr - sub r2, r1, #3 - add r2, r0, r2 - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 - cmp r2, #2 - rsbls r0, r1, #3 - bxls lr - sub r2, r1, #6 - add r2, r0, r2 - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 - cmp r2, #2 - addls r0, r1, #0x2e4 - bxls lr - sub r2, r0, #0x178 - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 - cmp r2, #2 - movls r0, #0x178 - bxls lr - sub r2, r1, #0xc - add r2, r0, r2 - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 - cmp r2, #2 - rsbls r0, r1, #0xc - bxls lr - sub r2, r1, #0xf - add r2, r0, r2 - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 - cmp r2, #2 - rsbls r0, r1, #0xf - bxls lr - sub r2, r1, #0x12 - add r2, r0, r2 - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 - cmp r2, #2 - addls r0, r1, #0x2f0 - bxls lr - sub r2, r0, #0x184 - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 - cmp r2, #2 - movls r0, #0x184 - bxls lr - sub r2, r1, #0x18 - add r2, r0, r2 - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 - cmp r2, #2 - rsbls r0, r1, #0x18 - bxls lr - sub r2, r1, #0x1b - add r2, r0, r2 - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 - cmp r2, #2 - rsbls r0, r1, #0x1b - bxls lr - sub r2, r1, #0x1e - add r2, r0, r2 - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 - cmp r2, #2 - addls r0, r1, #0x2fc - bx lr - .align 2, 0 -_0200E39C: .4byte 0xFFFFFE91 - arm_func_end NormalizeTreasureBox - - arm_func_start FUN_0200e3a0 -FUN_0200e3a0: @ 0x0200E3A0 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #8 - mov sl, r0 - mov sb, r1 - mov r6, #0 - b _0200E4E8 -_0200E3B8: - mov r0, #6 - mul r1, r6, r0 - ldrb r0, [sl, r1] - add r8, sl, r1 - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _0200E4E4 - ldrsh r0, [r8, #4] - bl IsThrownItem - cmp r0, #0 - beq _0200E4E4 - ldrb r0, [r8, #1] - cmp r0, #0 - bne _0200E4E4 - ldrb r0, [r8] - tst r0, #2 - bne _0200E4E4 - add r7, r6, #1 - mov fp, #1 - mov r5, #0x63 - mov r4, #6 - b _0200E4DC -_0200E418: - ldrh r1, [r8, #2] - mla r0, r7, r4, sl - cmp r1, #0x63 - beq _0200E4E4 - ldrb r1, [r0] - tst r1, #1 - movne r1, fp - moveq r1, #0 - tst r1, #0xff - beq _0200E4D8 - ldrb r1, [r0, #1] - cmp r1, #0 - bne _0200E4D8 - ldrb r1, [r0] - tst r1, #2 - ldrsheq r2, [r0, #4] - ldrsheq r1, [r8, #4] - cmpeq r2, r1 - bne _0200E4D8 - ldrh r2, [r8, #2] - ldrh r1, [r0, #2] - add r1, r2, r1 - strh r1, [r8, #2] - ldrb r1, [r8] - tst r1, #8 - movne r1, #1 - moveq r1, #0 - tst r1, #0xff - beq _0200E4A4 - ldrb r1, [r0] - tst r1, #8 - movne r1, #1 - moveq r1, #0 - tst r1, #0xff - bne _0200E4BC -_0200E4A4: - ldrb r1, [r8] - bic r1, r1, #8 - strb r1, [r8] - ldrb r1, [r0] - bic r1, r1, #8 - strb r1, [r0] -_0200E4BC: - ldrh r1, [r8, #2] - cmp r1, #0x63 - subhi r1, r1, #0x63 - strhhi r1, [r0, #2] - strhhi r5, [r8, #2] - bhi _0200E4D8 - bl ItemZInit -_0200E4D8: - add r7, r7, #1 -_0200E4DC: - cmp r7, sb - blt _0200E418 -_0200E4E4: - add r6, r6, #1 -_0200E4E8: - cmp r6, sb - blt _0200E3B8 - mov r0, sl - mov r1, sb - bl RemoveEmptyItems - mov r7, #0 - b _0200E5F4 -_0200E504: - mov r0, #6 - mul r1, r7, r0 - ldrb r0, [sl, r1] - add r6, sl, r1 - mvn r4, #0 - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _0200E5F0 - ldrsh r0, [r6, #4] - bl FUN_0200eb64 - mov fp, r0 - add r8, r7, #1 - b _0200E588 -_0200E540: - mov r0, #6 - mul r1, r8, r0 - ldrb r0, [sl, r1] - add r5, sl, r1 - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _0200E584 - ldrsh r0, [r5, #4] - bl FUN_0200eb64 - cmp fp, r0 - ble _0200E584 - ldrsh r0, [r5, #4] - mov r4, r8 - bl FUN_0200eb64 - mov fp, r0 -_0200E584: - add r8, r8, #1 -_0200E588: - cmp r8, sb - blt _0200E540 - mvn r0, #0 - cmp r4, r0 - beq _0200E5F0 - mov r0, #6 - mul r3, r4, r0 - ldrh r1, [r6] - ldrh r2, [r6, #2] - ldrh r5, [r6, #4] - ldrh r0, [sl, r3] - add r4, sl, r3 - strh r1, [sp] - strh r0, [r6] - ldrh r1, [r4, #2] - strh r2, [sp, #2] - ldrh r0, [sp] - strh r1, [r6, #2] - ldrh r2, [r4, #4] - strh r5, [sp, #4] - ldrh r1, [sp, #2] - strh r2, [r6, #4] - strh r0, [sl, r3] - ldrh r0, [sp, #4] - strh r1, [r4, #2] - strh r0, [r4, #4] -_0200E5F0: - add r7, r7, #1 -_0200E5F4: - cmp r7, sb - blt _0200E504 - mov r0, sl - mov r1, sb - bl RemoveEmptyItems - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0200e3a0 - - arm_func_start RemoveEmptyItems -RemoveEmptyItems: @ 0x0200E610 - push {r4, r5, r6, lr} - mov r6, r1 - mov r1, #0 - mov r2, r1 - mov r3, #1 - b _0200E6CC -_0200E628: - ldrb r4, [r0] - tst r4, #1 - movne r4, r3 - moveq r4, r2 - tst r4, #0xff - bne _0200E6C4 - mov r5, r0 - mov r4, r1 - add r0, r0, #6 - add r1, r1, #1 - mov r3, #0 - mov ip, #1 - b _0200E69C -_0200E65C: - ldrb r2, [r0] - tst r2, #1 - movne r2, ip - moveq r2, r3 - tst r2, #0xff - beq _0200E694 - ldrh r2, [r0] - mov lr, r5 - add r4, r4, #1 - strh r2, [r5], #6 - ldrh r2, [r0, #2] - strh r2, [lr, #2] - ldrh r2, [r0, #4] - strh r2, [lr, #4] -_0200E694: - add r1, r1, #1 - add r0, r0, #6 -_0200E69C: - cmp r1, r6 - blt _0200E65C - b _0200E6B8 -_0200E6A8: - mov r0, r5 - bl ItemZInit - add r5, r5, #6 - add r4, r4, #1 -_0200E6B8: - cmp r4, r6 - blt _0200E6A8 - pop {r4, r5, r6, pc} -_0200E6C4: - add r1, r1, #1 - add r0, r0, #6 -_0200E6CC: - cmp r1, r6 - blt _0200E628 - pop {r4, r5, r6, pc} - arm_func_end RemoveEmptyItems - - arm_func_start LoadItemPspi2n -LoadItemPspi2n: @ 0x0200E6D8 - push {r3, lr} - sub sp, sp, #8 - ldr r1, _0200E748 @ =0x02098038 - add r0, sp, #0 - mov r2, #1 - bl LoadFileFromRom - ldr r1, [sp] - ldr r0, _0200E74C @ =0x020AF6C4 - bl HandleSir0Translation - ldr r1, _0200E750 @ =0x02098054 - add r0, sp, #0 - mov r2, #1 - bl LoadFileFromRom - ldr r1, [sp] - ldr r0, _0200E754 @ =0x020AF6C0 - bl HandleSir0Translation - ldr r0, _0200E758 @ =0x020AF6C8 - bl PointsToZero - cmp r0, #0 - beq _0200E740 - ldr r0, _0200E758 @ =0x020AF6C8 - bl ZInit8 - ldr r0, _0200E758 @ =0x020AF6C8 - ldr r1, _0200E75C @ =0x02098070 - mov r2, #1 - bl LoadFileFromRom -_0200E740: - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_0200E748: .4byte 0x02098038 -_0200E74C: .4byte 0x020AF6C4 -_0200E750: .4byte 0x02098054 -_0200E754: .4byte 0x020AF6C0 -_0200E758: .4byte 0x020AF6C8 -_0200E75C: .4byte 0x02098070 - arm_func_end LoadItemPspi2n - - arm_func_start GetExclusiveItemType -GetExclusiveItemType: @ 0x0200E760 - push {r3, lr} - bl GetExclusiveItemOffsetEnsureValid - ldr r1, _0200E778 @ =0x020AF6C0 - ldr r1, [r1] - ldrb r0, [r1, r0, lsl #2] - pop {r3, pc} - .align 2, 0 -_0200E778: .4byte 0x020AF6C0 - arm_func_end GetExclusiveItemType - - arm_func_start GetExclusiveItemOffsetEnsureValid -GetExclusiveItemOffsetEnsureValid: @ 0x0200E77C - push {r4, lr} - mov r4, r0 - cmp r4, #0x1bc - blt _0200E798 - ldr r1, _0200E7BC @ =0x00000578 - cmp r4, r1 - blt _0200E7A0 -_0200E798: - mov r0, #0x55 - pop {r4, pc} -_0200E7A0: - bl IsItemValid - cmp r0, #0 - subne r0, r4, #0x1bc - lslne r0, r0, #0x10 - asrne r0, r0, #0x10 - moveq r0, #0x55 - pop {r4, pc} - .align 2, 0 -_0200E7BC: .4byte 0x00000578 - arm_func_end GetExclusiveItemOffsetEnsureValid - - arm_func_start IsItemValid -IsItemValid: @ 0x0200E7C0 - ldr r1, _0200E7E4 @ =0x020AF6C0 - ldr r1, [r1, #4] - add r0, r1, r0, lsl #4 - ldrb r0, [r0, #0xe] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0200E7E4: .4byte 0x020AF6C0 - arm_func_end IsItemValid - - arm_func_start GetExclusiveItemParameter -GetExclusiveItemParameter: @ 0x0200E7E8 - push {r3, lr} - bl GetExclusiveItemOffsetEnsureValid - ldr r1, _0200E804 @ =0x020AF6C0 - ldr r1, [r1] - add r0, r1, r0, lsl #2 - ldrsh r0, [r0, #2] - pop {r3, pc} - .align 2, 0 -_0200E804: .4byte 0x020AF6C0 - arm_func_end GetExclusiveItemParameter - - arm_func_start GetItemCategory -GetItemCategory: @ 0x0200E808 - push {r3, lr} - bl EnsureValidItem - ldr r1, _0200E824 @ =0x020AF6C0 - ldr r1, [r1, #4] - add r0, r1, r0, lsl #4 - ldrb r0, [r0, #4] - pop {r3, pc} - .align 2, 0 -_0200E824: .4byte 0x020AF6C0 - arm_func_end GetItemCategory - - arm_func_start EnsureValidItem -EnsureValidItem: @ 0x0200E828 - push {r4, lr} - mov r4, r0 - cmp r4, #0 - ble _0200E844 - ldr r1, _0200E860 @ =0x00000578 - cmp r4, r1 - blt _0200E84C -_0200E844: - mov r0, #0x55 - pop {r4, pc} -_0200E84C: - bl IsItemValid - cmp r0, #0 - moveq r4, #0x55 - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_0200E860: .4byte 0x00000578 - arm_func_end EnsureValidItem - - arm_func_start GetItemName -GetItemName: @ 0x0200E864 - push {r3, lr} - bl EnsureValidItem - add r0, r0, #0x76 - add r0, r0, #0x1a00 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl StringFromMessageId - pop {r3, pc} - arm_func_end GetItemName - - arm_func_start GetItemNameFormatted -GetItemNameFormatted: @ 0x0200E884 - push {r4, r5, r6, r7, r8, lr} - mov r7, r1 - mov r8, r0 - mov r0, r7 - mov r6, r2 - mov r5, r3 - bl EnsureValidItem - add r0, r0, #0x76 - add r0, r0, #0x1a00 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl StringFromMessageId - mov r4, r0 - mov r0, r7 - bl EnsureValidItem - ldr r1, _0200E97C @ =0x020AF6C0 - cmp r5, #0 - ldr r1, [r1, #4] - add r0, r1, r0, lsl #4 - ldrb r1, [r0, #4] - bne _0200E8E8 - add r0, r1, #0xf4 - and r0, r0, #0xff - cmp r0, #2 - bhi _0200E914 -_0200E8E8: - cmp r6, #0 - beq _0200E904 - ldr r1, _0200E980 @ =0x0209808C - mov r0, r8 - mov r2, r4 - bl SprintfStatic - pop {r4, r5, r6, r7, r8, pc} -_0200E904: - mov r0, r8 - mov r1, r4 - bl Strcpy - pop {r4, r5, r6, r7, r8, pc} -_0200E914: - cmp r1, #0xf - bne _0200E94C - cmp r6, #0 - beq _0200E938 - ldr r1, _0200E984 @ =0x0209809C - mov r0, r8 - mov r2, r4 - bl SprintfStatic - pop {r4, r5, r6, r7, r8, pc} -_0200E938: - ldr r1, _0200E988 @ =0x020980AC - mov r0, r8 - mov r2, r4 - bl SprintfStatic - pop {r4, r5, r6, r7, r8, pc} -_0200E94C: - cmp r6, #0 - beq _0200E968 - ldr r1, _0200E98C @ =0x020980B0 - mov r0, r8 - mov r2, r4 - bl SprintfStatic - pop {r4, r5, r6, r7, r8, pc} -_0200E968: - ldr r1, _0200E988 @ =0x020980AC - mov r0, r8 - mov r2, r4 - bl SprintfStatic - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0200E97C: .4byte 0x020AF6C0 -_0200E980: .4byte 0x0209808C -_0200E984: .4byte 0x0209809C -_0200E988: .4byte 0x020980AC -_0200E98C: .4byte 0x020980B0 - arm_func_end GetItemNameFormatted - - arm_func_start SprintfStatic -SprintfStatic: @ 0x0200E990 - push {r0, r1, r2, r3} - push {r3, lr} - add r2, sp, #0xc - bic r2, r2, #3 - ldr r1, [sp, #0xc] - add r2, r2, #4 - bl Vsprintf - pop {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end SprintfStatic - - arm_func_start GetItemBuyPrice -GetItemBuyPrice: @ 0x0200E9B8 - push {r3, lr} - bl EnsureValidItem - ldr r1, _0200E9D4 @ =0x020AF6C0 - lsl r0, r0, #4 - ldr r1, [r1, #4] - ldrh r0, [r1, r0] - pop {r3, pc} - .align 2, 0 -_0200E9D4: .4byte 0x020AF6C0 - arm_func_end GetItemBuyPrice - - arm_func_start GetItemSellPrice -GetItemSellPrice: @ 0x0200E9D8 - push {r3, lr} - bl EnsureValidItem - ldr r1, _0200E9F4 @ =0x020AF6C0 - ldr r1, [r1, #4] - add r0, r1, r0, lsl #4 - ldrh r0, [r0, #2] - pop {r3, pc} - .align 2, 0 -_0200E9F4: .4byte 0x020AF6C0 - arm_func_end GetItemSellPrice - - arm_func_start GetItemSpriteId -GetItemSpriteId: @ 0x0200E9F8 - push {r3, lr} - bl EnsureValidItem - ldr r1, _0200EA14 @ =0x020AF6C0 - ldr r1, [r1, #4] - add r0, r1, r0, lsl #4 - ldrb r0, [r0, #5] - pop {r3, pc} - .align 2, 0 -_0200EA14: .4byte 0x020AF6C0 - arm_func_end GetItemSpriteId - - arm_func_start GetItemPaletteId -GetItemPaletteId: @ 0x0200EA18 - push {r3, lr} - bl EnsureValidItem - ldr r1, _0200EA34 @ =0x020AF6C0 - ldr r1, [r1, #4] - add r0, r1, r0, lsl #4 - ldrb r0, [r0, #0xc] - pop {r3, pc} - .align 2, 0 -_0200EA34: .4byte 0x020AF6C0 - arm_func_end GetItemPaletteId - - arm_func_start GetItemActionName -GetItemActionName: @ 0x0200EA38 - push {r3, lr} - bl EnsureValidItem - ldr r1, _0200EA54 @ =0x020AF6C0 - ldr r1, [r1, #4] - add r0, r1, r0, lsl #4 - ldrb r0, [r0, #0xd] - pop {r3, pc} - .align 2, 0 -_0200EA54: .4byte 0x020AF6C0 - arm_func_end GetItemActionName - - arm_func_start GetThrownItemQuantityLimit -GetThrownItemQuantityLimit: @ 0x0200EA58 - push {r4, lr} - mov r4, r1 - bl EnsureValidItem - ldr r1, _0200EA7C @ =0x020AF6C0 - ldr r1, [r1, #4] - add r0, r1, r0, lsl #4 - add r0, r0, r4 - ldrb r0, [r0, #0xa] - pop {r4, pc} - .align 2, 0 -_0200EA7C: .4byte 0x020AF6C0 - arm_func_end GetThrownItemQuantityLimit - - arm_func_start GetItemMoveId -GetItemMoveId: @ 0x0200EA80 - push {r3, lr} - bl EnsureValidItem - ldr r1, _0200EA9C @ =0x020AF6C0 - ldr r1, [r1, #4] - add r0, r1, r0, lsl #4 - ldrsh r0, [r0, #8] - pop {r3, pc} - .align 2, 0 -_0200EA9C: .4byte 0x020AF6C0 - arm_func_end GetItemMoveId - - arm_func_start TestItemAiFlag -TestItemAiFlag: @ 0x0200EAA0 - push {r3, lr} - cmp r1, #0 - bne _0200EAD4 - bl EnsureValidItem - ldr r1, _0200EB2C @ =0x020AF6C0 - ldr r1, [r1, #4] - add r0, r1, r0, lsl #4 - ldrb r0, [r0, #0xe] - tst r0, #0x80 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - pop {r3, pc} -_0200EAD4: - cmp r1, #1 - bne _0200EB04 - bl EnsureValidItem - ldr r1, _0200EB2C @ =0x020AF6C0 - ldr r1, [r1, #4] - add r0, r1, r0, lsl #4 - ldrb r0, [r0, #0xe] - tst r0, #0x40 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - pop {r3, pc} -_0200EB04: - bl EnsureValidItem - ldr r1, _0200EB2C @ =0x020AF6C0 - ldr r1, [r1, #4] - add r0, r1, r0, lsl #4 - ldrb r0, [r0, #0xe] - tst r0, #0x20 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - pop {r3, pc} - .align 2, 0 -_0200EB2C: .4byte 0x020AF6C0 - arm_func_end TestItemAiFlag - - arm_func_start IsItemInTimeDarkness -IsItemInTimeDarkness: @ 0x0200EB30 - ldr r1, _0200EB54 @ =0x020AF6C0 - ldr r1, [r1, #4] - add r0, r1, r0, lsl #4 - ldrb r0, [r0, #0xe] - tst r0, #2 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0200EB54: .4byte 0x020AF6C0 - arm_func_end IsItemInTimeDarkness - - arm_func_start IsItemValidVeneer -IsItemValidVeneer: @ 0x0200EB58 - ldr ip, _0200EB60 @ =IsItemValid - bx ip - .align 2, 0 -_0200EB60: .4byte IsItemValid - arm_func_end IsItemValidVeneer - - arm_func_start FUN_0200eb64 -FUN_0200eb64: @ 0x0200EB64 - ldr r1, _0200EB88 @ =0x020AF6C0 - lsl r2, r0, #0x1f - ldr r1, [r1, #8] - asr r0, r0, #1 - ldr r3, [r1, r0, lsl #2] - ldr r0, _0200EB8C @ =0x000007FF - lsr r1, r2, #0x1b - and r0, r0, r3, asr r1 - bx lr - .align 2, 0 -_0200EB88: .4byte 0x020AF6C0 -_0200EB8C: .4byte 0x000007FF - arm_func_end FUN_0200eb64 - - arm_func_start FUN_0200eb90 -FUN_0200eb90: @ 0x0200EB90 - mov ip, #0 - ldr r2, _0200EBC8 @ =0x02097FF8 - b _0200EBB8 -_0200EB9C: - add r1, r2, ip, lsl #2 - ldrsh r1, [r1, #2] - lsl r3, ip, #2 - cmp r0, r1 - ldrsheq r0, [r2, r3] - bxeq lr - add ip, ip, #1 -_0200EBB8: - cmp ip, #0x10 - blt _0200EB9C - mov r0, #0 - bx lr - .align 2, 0 -_0200EBC8: .4byte 0x02097FF8 - arm_func_end FUN_0200eb90 - - arm_func_start FUN_0200ebcc -FUN_0200ebcc: @ 0x0200EBCC - ldr ip, _0200EBD8 @ =SetGold - mov r0, #0 - bx ip - .align 2, 0 -_0200EBD8: .4byte SetGold - arm_func_end FUN_0200ebcc - - arm_func_start FUN_0200ebdc -FUN_0200ebdc: @ 0x0200EBDC - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sl, #0 - ldr r6, _0200EC44 @ =0x020AF6B8 - mov r7, sl - mov fp, sl - mov r4, #6 - mov r5, #0x12c -_0200EBF8: - mul sb, sl, r5 - mov r8, fp -_0200EC00: - ldr r0, [r6] - add r0, r0, sb - mla r0, r8, r4, r0 - bl ItemZInit - add r8, r8, #1 - cmp r8, #0x32 - blt _0200EC00 - ldr r0, [r6] - add r0, r0, sl, lsl #2 - add r0, r0, #0x1000 - add sl, sl, #1 - str r7, [r0, #0x394] - cmp sl, #3 - blt _0200EBF8 - mov r0, r7 - bl SetGold - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0200EC44: .4byte 0x020AF6B8 - arm_func_end FUN_0200ebdc - - arm_func_start FUN_0200ec48 -FUN_0200ec48: @ 0x0200EC48 - push {r4, r5, r6, lr} - ldr r5, _0200EC8C @ =0x020AF6B8 - mov r6, #0 - mov r4, #6 -_0200EC58: - ldr r0, [r5] - add r0, r0, #0x12c - mla r0, r6, r4, r0 - bl ItemZInit - add r6, r6, #1 - cmp r6, #0x32 - blt _0200EC58 - ldr r0, _0200EC8C @ =0x020AF6B8 - mov r1, #0 - ldr r0, [r0] - add r0, r0, #0x1000 - str r1, [r0, #0x398] - pop {r4, r5, r6, pc} - .align 2, 0 -_0200EC8C: .4byte 0x020AF6B8 - arm_func_end FUN_0200ec48 - - arm_func_start FUN_0200ec90 -FUN_0200ec90: @ 0x0200EC90 - push {r4, r5, r6, lr} - ldr r5, _0200ECD4 @ =0x020AF6B8 - mov r6, #0 - mov r4, #6 -_0200ECA0: - ldr r0, [r5] - add r0, r0, #0x258 - mla r0, r6, r4, r0 - bl ItemZInit - add r6, r6, #1 - cmp r6, #0x32 - blt _0200ECA0 - ldr r0, _0200ECD4 @ =0x020AF6B8 - mov r1, #0 - ldr r0, [r0] - add r0, r0, #0x1000 - str r1, [r0, #0x39c] - pop {r4, r5, r6, pc} - .align 2, 0 -_0200ECD4: .4byte 0x020AF6B8 - arm_func_end FUN_0200ec90 - - arm_func_start SetGold -SetGold: @ 0x0200ECD8 - ldr r2, _0200ECF8 @ =0x020AF6B8 - mov r1, #0x12c - ldr r3, [r2] - strb r0, [r3, #0x388] - ldr r2, [r2] - mla r1, r0, r1, r2 - str r1, [r2, #0x384] - bx lr - .align 2, 0 -_0200ECF8: .4byte 0x020AF6B8 - arm_func_end SetGold - - arm_func_start GetGold -GetGold: @ 0x0200ECFC - ldr r0, _0200ED18 @ =0x020AF6B8 - ldr r1, [r0] - ldrb r0, [r1, #0x388] - add r0, r1, r0, lsl #2 - add r0, r0, #0x1000 - ldr r0, [r0, #0x394] - bx lr - .align 2, 0 -_0200ED18: .4byte 0x020AF6B8 - arm_func_end GetGold - - arm_func_start SetMoneyCarried -SetMoneyCarried: @ 0x0200ED1C - ldr r1, _0200ED50 @ =0x0001869F - cmp r0, r1 - movgt r0, r1 - bgt _0200ED34 - cmp r0, #0 - movlt r0, #0 -_0200ED34: - ldr r1, _0200ED54 @ =0x020AF6B8 - ldr r2, [r1] - ldrb r1, [r2, #0x388] - add r1, r2, r1, lsl #2 - add r1, r1, #0x1000 - str r0, [r1, #0x394] - bx lr - .align 2, 0 -_0200ED50: .4byte 0x0001869F -_0200ED54: .4byte 0x020AF6B8 - arm_func_end SetMoneyCarried - - arm_func_start AddMoneyCarried -AddMoneyCarried: @ 0x0200ED58 - ldr r1, _0200ED7C @ =0x020AF6B8 - ldr ip, _0200ED80 @ =SetMoneyCarried - ldr r2, [r1] - ldrb r1, [r2, #0x388] - add r1, r2, r1, lsl #2 - add r1, r1, #0x1000 - ldr r1, [r1, #0x394] - add r0, r0, r1 - bx ip - .align 2, 0 -_0200ED7C: .4byte 0x020AF6B8 -_0200ED80: .4byte SetMoneyCarried - arm_func_end AddMoneyCarried - - arm_func_start GetCurrentBagCapacity -GetCurrentBagCapacity: @ 0x0200ED84 - push {r3, lr} - bl GetExecuteSpecialEpisodeType - mvn r1, #0 - cmp r0, r1 - bne _0200EDB8 - mov r0, #2 - bl GetPerformanceFlagWithChecks - cmp r0, #0 - moveq r0, #1 - popeq {r3, pc} - bl GetScenarioBalance - bl GetBagCapacity - pop {r3, pc} -_0200EDB8: - bl GetBagCapacitySpecialEpisode - pop {r3, pc} - arm_func_end GetCurrentBagCapacity - - arm_func_start IsBagFull -IsBagFull: @ 0x0200EDC0 - push {r3, lr} - bl GetCurrentBagCapacity - sub r2, r0, #1 - mov r0, #6 - ldr r1, _0200EDF8 @ =0x020AF6B8 - mul r0, r2, r0 - ldr r1, [r1] - ldr r1, [r1, #0x384] - ldrb r0, [r1, r0] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - pop {r3, pc} - .align 2, 0 -_0200EDF8: .4byte 0x020AF6B8 - arm_func_end IsBagFull - - arm_func_start GetNbItemsInBag -GetNbItemsInBag: @ 0x0200EDFC - push {r3, lr} - ldr r1, _0200EE48 @ =0x020AF6B8 - mov r0, #0 - ldr r1, [r1] - mov lr, r0 - ldr ip, [r1, #0x384] - mov r1, r0 - mov r2, #1 -_0200EE1C: - ldrb r3, [ip] - add lr, lr, #1 - add ip, ip, #6 - tst r3, #1 - movne r3, r2 - moveq r3, r1 - tst r3, #0xff - addne r0, r0, #1 - cmp lr, #0x32 - blt _0200EE1C - pop {r3, pc} - .align 2, 0 -_0200EE48: .4byte 0x020AF6B8 - arm_func_end GetNbItemsInBag - - arm_func_start CountNbItemsOfTypeInBag -CountNbItemsOfTypeInBag: @ 0x0200EE4C - ldr r1, _0200EE84 @ =0x020AF6B8 - mov r3, #0 - ldr r1, [r1] - mov ip, r3 - ldr r2, [r1, #0x384] -_0200EE60: - ldrsh r1, [r2, #4] - add ip, ip, #1 - add r2, r2, #6 - cmp r1, r0 - addeq r3, r3, #1 - cmp ip, #0x32 - blt _0200EE60 - mov r0, r3 - bx lr - .align 2, 0 -_0200EE84: .4byte 0x020AF6B8 - arm_func_end CountNbItemsOfTypeInBag - - arm_func_start CountItemTypeInBag -CountItemTypeInBag: @ 0x0200EE88 - push {r3, r4, r5, r6, r7, lr} - ldr r1, _0200EEDC @ =0x020AF6B8 - mov r5, #0 - ldr r1, [r1] - mov r7, r0 - ldr r4, [r1, #0x384] - mov r6, r5 -_0200EEA4: - ldrsh r0, [r4, #4] - cmp r0, r7 - bne _0200EEC4 - bl IsThrownItem - cmp r0, #0 - ldrhne r0, [r4, #2] - addne r5, r5, r0 - addeq r5, r5, #1 -_0200EEC4: - add r6, r6, #1 - cmp r6, #0x32 - add r4, r4, #6 - blt _0200EEA4 - mov r0, r5 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0200EEDC: .4byte 0x020AF6B8 - arm_func_end CountItemTypeInBag - - arm_func_start IsItemInBag -IsItemInBag: @ 0x0200EEE0 - ldr r1, _0200EF1C @ =0x020AF6B8 - mov r3, #0 - ldr r1, [r1] - ldr r2, [r1, #0x384] - b _0200EF0C -_0200EEF4: - ldrsh r1, [r2, #4] - cmp r1, r0 - moveq r0, #1 - bxeq lr - add r3, r3, #1 - add r2, r2, #6 -_0200EF0C: - cmp r3, #0x32 - blt _0200EEF4 - mov r0, #0 - bx lr - .align 2, 0 -_0200EF1C: .4byte 0x020AF6B8 - arm_func_end IsItemInBag - - arm_func_start IsItemWithFlagsInBag -IsItemWithFlagsInBag: @ 0x0200EF20 - ldr r2, _0200EF68 @ =0x020AF6B8 - mov ip, #0 - ldr r2, [r2] - ldr r3, [r2, #0x384] - b _0200EF58 -_0200EF34: - ldrsh r2, [r3, #4] - cmp r2, r0 - bne _0200EF50 - ldrb r2, [r3] - tst r2, r1 - movne r0, #1 - bxne lr -_0200EF50: - add ip, ip, #1 - add r3, r3, #6 -_0200EF58: - cmp ip, #0x32 - blt _0200EF34 - mov r0, #0 - bx lr - .align 2, 0 -_0200EF68: .4byte 0x020AF6B8 - arm_func_end IsItemWithFlagsInBag - - arm_func_start IsItemInTreasureBoxes -IsItemInTreasureBoxes: @ 0x0200EF6C - push {r4, r5, r6, lr} - ldr r1, _0200EFC8 @ =0x020AF6B8 - mov r4, r0 - ldr r0, [r1] - mov r6, #0 - ldr r5, [r0, #0x384] - b _0200EFB8 -_0200EF88: - ldrsh r0, [r5, #4] - bl GetItemCategoryVeneer - add r0, r0, #0xf4 - and r0, r0, #0xff - cmp r0, #2 - bhi _0200EFB0 - ldrh r0, [r5, #2] - cmp r0, r4 - moveq r0, #1 - popeq {r4, r5, r6, pc} -_0200EFB0: - add r6, r6, #1 - add r5, r5, #6 -_0200EFB8: - cmp r6, #0x32 - blt _0200EF88 - mov r0, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0200EFC8: .4byte 0x020AF6B8 - arm_func_end IsItemInTreasureBoxes - - arm_func_start IsHeldItemInBag -IsHeldItemInBag: @ 0x0200EFCC - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r1, _0200F04C @ =0x020AF6B8 - mov r6, r0 - ldr r0, [r1] - mov r5, #0 - mov sb, #1 - ldr r4, [r0, #0x384] - mov r8, r5 - mov r7, sb - b _0200F03C -_0200EFF4: - ldrb r0, [r4] - tst r0, #1 - movne r0, sb - moveq r0, r8 - tst r0, #0xff - beq _0200F034 - ldrb r0, [r4, #1] - cmp r0, #0 - bne _0200F034 - mov r0, r4 - mov r1, r6 - mov r2, r7 - bl FUN_0200d834 - cmp r0, #0 - moveq r0, #1 - popeq {r3, r4, r5, r6, r7, r8, sb, pc} -_0200F034: - add r5, r5, #1 - add r4, r4, #6 -_0200F03C: - cmp r5, #0x32 - blt _0200EFF4 - mov r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0200F04C: .4byte 0x020AF6B8 - arm_func_end IsHeldItemInBag - - arm_func_start IsItemForSpecialSpawnInBag -IsItemForSpecialSpawnInBag: @ 0x0200F050 - push {r3, r4, r5, lr} - ldr r0, _0200F0E0 @ =0x020AF6B8 - mov r4, #0 - ldr r0, [r0] - mov ip, #1 - ldr lr, [r0, #0x384] - mov r3, r4 - mov r1, r4 - mov r2, ip - b _0200F0D0 -_0200F078: - ldrb r5, [lr] - tst r5, #1 - movne r0, ip - moveq r0, r3 - tst r0, #0xff - beq _0200F0C8 - ldrsh r0, [lr, #4] - sub r0, r0, #0xad - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, #1 - bhi _0200F0C8 - tst r5, #8 - movne r0, r2 - moveq r0, r1 - tst r0, #0xff - moveq r0, #1 - popeq {r3, r4, r5, pc} -_0200F0C8: - add r4, r4, #1 - add lr, lr, #6 -_0200F0D0: - cmp r4, #0x32 - blt _0200F078 - mov r0, #0 - pop {r3, r4, r5, pc} - .align 2, 0 -_0200F0E0: .4byte 0x020AF6B8 - arm_func_end IsItemForSpecialSpawnInBag - - arm_func_start HasStorableItems -HasStorableItems: @ 0x0200F0E4 - push {r3, r4, r5, r6, r7, lr} - ldr r0, _0200F148 @ =0x020AF6B8 - mov r7, #0 - ldr r0, [r0] - mov r4, r7 - ldr r6, [r0, #0x384] - mov r5, #1 - b _0200F138 -_0200F104: - ldrb r0, [r6] - tst r0, #1 - movne r0, r5 - moveq r0, r4 - tst r0, #0xff - beq _0200F130 - ldrsh r0, [r6, #4] - bl FUN_0200cca8 - cmp r0, #0 - movne r0, #1 - popne {r3, r4, r5, r6, r7, pc} -_0200F130: - add r7, r7, #1 - add r6, r6, #6 -_0200F138: - cmp r7, #0x32 - blt _0200F104 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0200F148: .4byte 0x020AF6B8 - arm_func_end HasStorableItems - - arm_func_start GetItemIndex -GetItemIndex: @ 0x0200F14C - ldr r1, _0200F188 @ =0x020AF6B8 - mov r2, #0 - ldr r1, [r1] - ldr r1, [r1, #0x384] - b _0200F178 -_0200F160: - cmp r1, r0 - lsleq r0, r2, #0x10 - asreq r0, r0, #0x10 - bxeq lr - add r2, r2, #1 - add r1, r1, #6 -_0200F178: - cmp r2, #0x32 - blt _0200F160 - mvn r0, #0 - bx lr - .align 2, 0 -_0200F188: .4byte 0x020AF6B8 - arm_func_end GetItemIndex - - arm_func_start GetEquivItemIndex -GetEquivItemIndex: @ 0x0200F18C - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r1, _0200F204 @ =0x020AF6B8 - mov r5, r0 - ldr r0, [r1] - mov r4, #0 - ldr sb, [r0, #0x384] - mov r7, r4 - mov r8, #1 - mov r6, #0xb - b _0200F1F4 -_0200F1B4: - ldrb r0, [sb] - tst r0, #1 - movne r0, r8 - moveq r0, r7 - tst r0, #0xff - beq _0200F1EC - mov r0, sb - mov r1, r5 - mov r2, r6 - bl FUN_0200d834 - cmp r0, #0 - lslne r0, r4, #0x10 - asrne r0, r0, #0x10 - popne {r3, r4, r5, r6, r7, r8, sb, pc} -_0200F1EC: - add r4, r4, #1 - add sb, sb, #6 -_0200F1F4: - cmp r4, #0x32 - blt _0200F1B4 - mvn r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0200F204: .4byte 0x020AF6B8 - arm_func_end GetEquivItemIndex - - arm_func_start GetEquippedThrowableItem -GetEquippedThrowableItem: @ 0x0200F208 - ldr r0, _0200F268 @ =0x020AF6B8 - mov ip, #0 - ldr r0, [r0] - mov r1, ip - ldr r3, [r0, #0x384] - mov r2, #1 - b _0200F258 -_0200F224: - ldrb r0, [r3] - tst r0, #1 - movne r0, r2 - moveq r0, r1 - tst r0, #0xff - beq _0200F250 - ldrb r0, [r3] - tst r0, #0x10 - lslne r0, ip, #0x10 - asrne r0, r0, #0x10 - bxne lr -_0200F250: - add ip, ip, #1 - add r3, r3, #6 -_0200F258: - cmp ip, #0x32 - blt _0200F224 - mvn r0, #0 - bx lr - .align 2, 0 -_0200F268: .4byte 0x020AF6B8 - arm_func_end GetEquippedThrowableItem - - arm_func_start GetFirstUnequippedItemOfType -GetFirstUnequippedItemOfType: @ 0x0200F26C - push {r3, lr} - ldr r1, _0200F2DC @ =0x020AF6B8 - mvn ip, #0 - ldr r1, [r1] - cmp r0, #0 - ldr r3, [r1, #0x384] - moveq r0, ip - popeq {r3, pc} - mov lr, #0 - mov r2, ip - b _0200F2CC -_0200F298: - ldrsh r1, [r3, #4] - cmp r1, r0 - bne _0200F2C4 - ldrb r1, [r3, #1] - cmp r1, #0 - lsleq r0, lr, #0x10 - asreq r0, r0, #0x10 - popeq {r3, pc} - cmp ip, r2 - lsleq r1, lr, #0x10 - asreq ip, r1, #0x10 -_0200F2C4: - add lr, lr, #1 - add r3, r3, #6 -_0200F2CC: - cmp lr, #0x32 - blt _0200F298 - mov r0, ip - pop {r3, pc} - .align 2, 0 -_0200F2DC: .4byte 0x020AF6B8 - arm_func_end GetFirstUnequippedItemOfType - - arm_func_start CopyItemAtIdx -CopyItemAtIdx: @ 0x0200F2E0 - push {r3, lr} - ldr r3, _0200F344 @ =0x020AF6B8 - mov r2, #6 - ldr r3, [r3] - smulbb r2, r0, r2 - ldr r3, [r3, #0x384] - ldrb r0, [r3, r2] - add r3, r3, r2 - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _0200F334 - ldrh r2, [r3] - mov r0, #1 - strh r2, [r1] - ldrh r2, [r3, #2] - strh r2, [r1, #2] - ldrh r2, [r3, #4] - strh r2, [r1, #4] - pop {r3, pc} -_0200F334: - mov r0, r1 - bl ItemZInit - mov r0, #0 - pop {r3, pc} - .align 2, 0 -_0200F344: .4byte 0x020AF6B8 - arm_func_end CopyItemAtIdx - - arm_func_start GetItemAtIdx -GetItemAtIdx: @ 0x0200F348 - cmp r0, #0 - movlt r0, #0 - bxlt lr - ldr r2, _0200F36C @ =0x020AF6B8 - mov r1, #6 - ldr r2, [r2] - ldr r2, [r2, #0x384] - smlabb r0, r0, r1, r2 - bx lr - .align 2, 0 -_0200F36C: .4byte 0x020AF6B8 - arm_func_end GetItemAtIdx - - arm_func_start RemoveEmptyItemsInBag -RemoveEmptyItemsInBag: @ 0x0200F370 - ldr r0, _0200F388 @ =0x020AF6B8 - ldr ip, _0200F38C @ =RemoveEmptyItems - ldr r0, [r0] - mov r1, #0x32 - ldr r0, [r0, #0x384] - bx ip - .align 2, 0 -_0200F388: .4byte 0x020AF6B8 -_0200F38C: .4byte RemoveEmptyItems - arm_func_end RemoveEmptyItemsInBag - - arm_func_start RemoveItemNoHole -RemoveItemNoHole: @ 0x0200F390 - push {r4, lr} - ldr r2, _0200F400 @ =0x020AF6B8 - mov r1, #6 - ldr r2, [r2] - smulbb r1, r0, r1 - ldr r2, [r2, #0x384] - ldrb r0, [r2, r1] - add r4, r2, r1 - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _0200F3F8 - ldrb r0, [r4, #1] - cmp r0, #0 - beq _0200F3D4 - bl FUN_020582e0 -_0200F3D4: - mov r0, r4 - bl ItemZInit - ldr r0, _0200F400 @ =0x020AF6B8 - mov r1, #0x32 - ldr r0, [r0] - ldr r0, [r0, #0x384] - bl RemoveEmptyItems - mov r0, #1 - pop {r4, pc} -_0200F3F8: - mov r0, #0 - pop {r4, pc} - .align 2, 0 -_0200F400: .4byte 0x020AF6B8 - arm_func_end RemoveItemNoHole - - arm_func_start RemoveItem -RemoveItem: @ 0x0200F404 - push {r4, lr} - ldr r2, _0200F450 @ =0x020AF6B8 - mov r1, #6 - ldr r2, [r2] - smulbb r1, r0, r1 - ldr r2, [r2, #0x384] - ldrb r0, [r2, r1] - add r4, r2, r1 - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - ldrbne r0, [r4, #1] - cmpne r0, #0 - beq _0200F444 - bl FUN_020582e0 -_0200F444: - mov r0, r4 - bl ItemZInit - pop {r4, pc} - .align 2, 0 -_0200F450: .4byte 0x020AF6B8 - arm_func_end RemoveItem - - arm_func_start RemoveHeldItemNoHole -RemoveHeldItemNoHole: @ 0x0200F454 - push {r4, r5, r6, r7, r8, lr} - movs r5, r0 - popeq {r4, r5, r6, r7, r8, pc} - ldr r0, _0200F4D0 @ =0x020AF6B8 - mov r4, #0 - ldr r0, [r0] - mov r6, r4 - ldr r8, [r0, #0x384] - mov r7, #1 -_0200F478: - ldrb r0, [r8] - tst r0, #1 - movne r0, r7 - moveq r0, r6 - tst r0, #0xff - beq _0200F4A8 - ldrb r0, [r8, #1] - cmp r0, r5 - bne _0200F4A8 - bl FUN_020582e0 - mov r0, r8 - bl ItemZInit -_0200F4A8: - add r4, r4, #1 - cmp r4, #0x32 - add r8, r8, #6 - blt _0200F478 - ldr r0, _0200F4D0 @ =0x020AF6B8 - mov r1, #0x32 - ldr r0, [r0] - ldr r0, [r0, #0x384] - bl RemoveEmptyItems - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0200F4D0: .4byte 0x020AF6B8 - arm_func_end RemoveHeldItemNoHole - - arm_func_start RemoveItemByIdAndStackNoHole -RemoveItemByIdAndStackNoHole: @ 0x0200F4D4 - push {r4, lr} - ldr r1, _0200F554 @ =0x020AF6B8 - mov r3, #0 - ldr r1, [r1] - ldr r4, [r1, #0x384] - b _0200F544 -_0200F4EC: - ldrsh r2, [r4, #4] - ldrsh r1, [r0] - cmp r2, r1 - ldrheq r2, [r4, #2] - ldrheq r1, [r0, #2] - cmpeq r2, r1 - bne _0200F53C - ldrb r0, [r4, #1] - cmp r0, #0 - beq _0200F518 - bl FUN_020582e0 -_0200F518: - mov r0, r4 - bl ItemZInit - ldr r0, _0200F554 @ =0x020AF6B8 - mov r1, #0x32 - ldr r0, [r0] - ldr r0, [r0, #0x384] - bl RemoveEmptyItems - mov r0, #1 - pop {r4, pc} -_0200F53C: - add r3, r3, #1 - add r4, r4, #6 -_0200F544: - cmp r3, #0x32 - blt _0200F4EC - mov r0, #0 - pop {r4, pc} - .align 2, 0 -_0200F554: .4byte 0x020AF6B8 - arm_func_end RemoveItemByIdAndStackNoHole - - arm_func_start RemoveEquivItem -RemoveEquivItem: @ 0x0200F558 - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r1, _0200F5FC @ =0x020AF6B8 - mov r5, r0 - ldr r0, [r1] - mov r4, #0 - ldr sb, [r0, #0x384] - mov r7, r4 - mov r8, #1 - mov r6, #0xb - b _0200F5EC -_0200F580: - ldrb r0, [sb] - tst r0, #1 - movne r0, r8 - moveq r0, r7 - tst r0, #0xff - beq _0200F5E4 - mov r0, sb - mov r1, r5 - mov r2, r6 - bl FUN_0200d834 - cmp r0, #0 - beq _0200F5E4 - ldrb r0, [sb, #1] - cmp r0, #0 - beq _0200F5C0 - bl FUN_020582e0 -_0200F5C0: - mov r0, sb - bl ItemZInit - ldr r0, _0200F5FC @ =0x020AF6B8 - mov r1, #0x32 - ldr r0, [r0] - ldr r0, [r0, #0x384] - bl RemoveEmptyItems - mov r0, #1 - pop {r3, r4, r5, r6, r7, r8, sb, pc} -_0200F5E4: - add r4, r4, #1 - add sb, sb, #6 -_0200F5EC: - cmp r4, #0x32 - blt _0200F580 - mov r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0200F5FC: .4byte 0x020AF6B8 - arm_func_end RemoveEquivItem - - arm_func_start RemoveEquivItemNoHole -RemoveEquivItemNoHole: @ 0x0200F600 - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r1, _0200F690 @ =0x020AF6B8 - mov r5, r0 - ldr r0, [r1] - mov r4, #0 - ldr sb, [r0, #0x384] - mov r7, r4 - mov r8, #1 - mov r6, #0xb - b _0200F680 -_0200F628: - ldrb r0, [sb] - tst r0, #1 - movne r0, r8 - moveq r0, r7 - tst r0, #0xff - beq _0200F678 - mov r0, sb - mov r1, r5 - mov r2, r6 - bl FUN_0200d834 - cmp r0, #0 - beq _0200F678 - ldrb r0, [sb, #1] - cmp r0, #0 - beq _0200F668 - bl FUN_020582e0 -_0200F668: - mov r0, sb - bl ItemZInit - mov r0, #1 - pop {r3, r4, r5, r6, r7, r8, sb, pc} -_0200F678: - add r4, r4, #1 - add sb, sb, #6 -_0200F680: - cmp r4, #0x32 - blt _0200F628 - mov r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0200F690: .4byte 0x020AF6B8 - arm_func_end RemoveEquivItemNoHole - - arm_func_start DecrementStackItem -DecrementStackItem: @ 0x0200F694 - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r1, _0200F714 @ =0x020AF6B8 - mov r6, r0 - ldr r0, [r1] - mov r5, #0 - ldr r4, [r0, #0x384] - mov r8, r5 - mov sb, #1 - mov r7, #0xb - b _0200F704 -_0200F6BC: - ldrb r0, [r4] - tst r0, #1 - movne r0, sb - moveq r0, r8 - tst r0, #0xff - beq _0200F6FC - mov r0, r4 - mov r1, r6 - mov r2, r7 - bl FUN_0200d834 - cmp r0, #0 - ldrhne r1, [r4, #2] - movne r0, #1 - subne r1, r1, #1 - strhne r1, [r4, #2] - popne {r3, r4, r5, r6, r7, r8, sb, pc} -_0200F6FC: - add r5, r5, #1 - add r4, r4, #6 -_0200F704: - cmp r5, #0x32 - blt _0200F6BC - mov r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0200F714: .4byte 0x020AF6B8 - arm_func_end DecrementStackItem - - arm_func_start RemoveItemNoHoleCheck -RemoveItemNoHoleCheck: @ 0x0200F718 - push {r4, lr} - mvn r1, #0 - cmp r0, r1 - beq _0200F78C - ldr r2, _0200F794 @ =0x020AF6B8 - mov r1, #6 - ldr r2, [r2] - smulbb r1, r0, r1 - ldr r2, [r2, #0x384] - ldrb r0, [r2, r1] - add r4, r2, r1 - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _0200F78C - ldrb r0, [r4, #1] - cmp r0, #0 - beq _0200F768 - bl FUN_020582e0 -_0200F768: - mov r0, r4 - bl ItemZInit - ldr r0, _0200F794 @ =0x020AF6B8 - mov r1, #0x32 - ldr r0, [r0] - ldr r0, [r0, #0x384] - bl RemoveEmptyItems - mov r0, #1 - pop {r4, pc} -_0200F78C: - mov r0, #0 - pop {r4, pc} - .align 2, 0 -_0200F794: .4byte 0x020AF6B8 - arm_func_end RemoveItemNoHoleCheck - - arm_func_start RemoveFirstUnequippedItemOfType -RemoveFirstUnequippedItemOfType: @ 0x0200F798 - push {r3, lr} - bl GetFirstUnequippedItemOfType - bl RemoveItemNoHoleCheck - pop {r3, pc} - arm_func_end RemoveFirstUnequippedItemOfType - - arm_func_start RemoveAllItems -RemoveAllItems: @ 0x0200F7A8 - push {r3, r4, r5, lr} - ldr r0, _0200F7D8 @ =0x020AF6B8 - mov r5, #0 - ldr r0, [r0] - ldr r4, [r0, #0x384] -_0200F7BC: - mov r0, r4 - bl ItemZInit - add r5, r5, #1 - cmp r5, #0x32 - add r4, r4, #6 - blt _0200F7BC - pop {r3, r4, r5, pc} - .align 2, 0 -_0200F7D8: .4byte 0x020AF6B8 - arm_func_end RemoveAllItems - - arm_func_start RemoveAllItemsStartingAt -RemoveAllItemsStartingAt: @ 0x0200F7DC - push {r3, r4, r5, r6, r7, lr} - ldr r6, _0200F848 @ =0x020AF6B8 - mov r4, r0 - ldr r1, [r6] - mov r0, #6 - ldr r1, [r1, #0x384] - mov r5, r0 - mla r7, r4, r0, r1 - b _0200F828 -_0200F800: - ldrb r0, [r7, #1] - cmp r0, #0 - beq _0200F810 - bl FUN_020582e0 -_0200F810: - ldr r0, [r6] - ldr r0, [r0, #0x384] - mla r0, r4, r5, r0 - bl ItemZInit - add r4, r4, #1 - add r7, r7, #6 -_0200F828: - cmp r4, #0x32 - blt _0200F800 - ldr r0, _0200F848 @ =0x020AF6B8 - mov r1, #0x32 - ldr r0, [r0] - ldr r0, [r0, #0x384] - bl RemoveEmptyItems - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0200F848: .4byte 0x020AF6B8 - arm_func_end RemoveAllItemsStartingAt - - arm_func_start SpecialProcAddItemToBag -SpecialProcAddItemToBag: @ 0x0200F84C - push {r3, lr} - sub sp, sp, #8 - mov r1, r0 - add r0, sp, #0 - bl FUN_0200cff0 - add r0, sp, #0 - mov r1, #0 - bl AddItemToBag - add sp, sp, #8 - pop {r3, pc} - arm_func_end SpecialProcAddItemToBag - - arm_func_start AddItemToBagNoHeld -AddItemToBagNoHeld: @ 0x0200F874 - ldr ip, _0200F880 @ =AddItemToBag - mov r1, #0 - bx ip - .align 2, 0 -_0200F880: .4byte AddItemToBag - arm_func_end AddItemToBagNoHeld - - arm_func_start AddItemToBag -AddItemToBag: @ 0x0200F884 - push {r4, r5, r6, lr} - ldr r2, _0200F90C @ =0x020AF6B8 - mov r6, r0 - ldr r0, [r2] - mov r5, r1 - ldr r4, [r0, #0x384] - bl GetCurrentBagCapacity - mov ip, #0 - mov r1, ip - mov r2, #1 - b _0200F8FC -_0200F8B0: - ldrb r3, [r4] - tst r3, #1 - movne r3, r2 - moveq r3, r1 - tst r3, #0xff - bne _0200F8F4 - ldrh r1, [r6] - mov r0, r6 - strh r1, [r4] - ldrh r1, [r6, #2] - strh r1, [r4, #2] - ldrh r1, [r6, #4] - strh r1, [r4, #4] - strb r5, [r4, #1] - bl SetItemAcquired - mov r0, #1 - pop {r4, r5, r6, pc} -_0200F8F4: - add ip, ip, #1 - add r4, r4, #6 -_0200F8FC: - cmp ip, r0 - blt _0200F8B0 - mov r0, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0200F90C: .4byte 0x020AF6B8 - arm_func_end AddItemToBag - - arm_func_start FUN_0200f910 -FUN_0200f910: @ 0x0200F910 - ldr r0, _0200F93C @ =0x020AF6B8 - mov r2, #0 - ldr r0, [r0] - ldr r1, [r0, #0x384] -_0200F920: - ldrb r0, [r1] - add r2, r2, #1 - cmp r2, #0x32 - bic r0, r0, #8 - strb r0, [r1], #6 - blt _0200F920 - bx lr - .align 2, 0 -_0200F93C: .4byte 0x020AF6B8 - arm_func_end FUN_0200f910 - - arm_func_start FUN_0200f940 -FUN_0200f940: @ 0x0200F940 - push {r4, r5, r6, lr} - ldr r0, _0200F9B0 @ =0x020AF6B8 - mov lr, #0 - ldr r0, [r0] - mov r3, #1 - ldr ip, [r0, #0x384] - mov r4, lr - mov r2, lr - mov r0, lr - mov r1, r3 -_0200F968: - ldrb r5, [ip] - tst r5, #1 - movne r6, r3 - moveq r6, r2 - tst r6, #0xff - beq _0200F994 - tst r5, #8 - movne r5, r1 - moveq r5, r0 - tst r5, #0xff - addne lr, lr, #1 -_0200F994: - add r4, r4, #1 - cmp r4, #0x32 - add ip, ip, #6 - blt _0200F968 - lsl r0, lr, #0x10 - asr r0, r0, #0x10 - pop {r4, r5, r6, pc} - .align 2, 0 -_0200F9B0: .4byte 0x020AF6B8 - arm_func_end FUN_0200f940 -_0200F9B4: - .byte 0x08, 0x40, 0x2D, 0xE9, 0x48, 0x10, 0x9F, 0xE5, 0x00, 0xE0, 0xA0, 0xE3 - .byte 0x00, 0x10, 0x91, 0xE5, 0x0E, 0x20, 0xA0, 0xE1, 0x84, 0xC3, 0x91, 0xE5, 0x01, 0x30, 0xA0, 0xE3 - .byte 0x00, 0x10, 0xDC, 0xE5, 0x01, 0xE0, 0x8E, 0xE2, 0x01, 0x00, 0x11, 0xE3, 0x03, 0x10, 0xA0, 0x11 - .byte 0x02, 0x10, 0xA0, 0x01, 0xFF, 0x00, 0x11, 0xE3, 0x01, 0x10, 0xDC, 0x15, 0x00, 0x00, 0x51, 0x13 - .byte 0x01, 0x10, 0xD0, 0x17, 0x01, 0x10, 0xCC, 0x15, 0x32, 0x00, 0x5E, 0xE3, 0x06, 0xC0, 0x8C, 0xE2 - .byte 0xF2, 0xFF, 0xFF, 0xBA, 0x08, 0x80, 0xBD, 0xE8, 0xB8, 0xF6, 0x0A, 0x02 - - arm_func_start FUN_0200fa0c -FUN_0200fa0c: @ 0x0200FA0C - push {r3, lr} - ldr r3, _0200FA64 @ =0x020AF6B8 - mov r2, #0x12c - ldr r3, [r3] - mov lr, #0 - mla ip, r1, r2, r3 - mov r2, lr - mov r3, #1 -_0200FA2C: - ldrb r1, [ip] - add lr, lr, #1 - tst r1, #1 - movne r1, r3 - moveq r1, r2 - tst r1, #0xff - ldrbne r1, [ip, #1] - cmpne r1, #0 - ldrbne r1, [r0, r1] - strbne r1, [ip, #1] - cmp lr, #0x32 - add ip, ip, #6 - blt _0200FA2C - pop {r3, pc} - .align 2, 0 -_0200FA64: .4byte 0x020AF6B8 - arm_func_end FUN_0200fa0c - - arm_func_start FUN_0200fa68 -FUN_0200fa68: @ 0x0200FA68 - push {r4, lr} - ldr r1, _0200FAE8 @ =0x020AF6B8 - mov r4, #0 - ldr r1, [r1] - mov r3, r4 - ldr lr, [r1, #0x384] - mov ip, #1 - b _0200FAD8 -_0200FA88: - ldrb r1, [lr] - tst r1, #1 - movne r1, ip - moveq r1, r3 - tst r1, #0xff - beq _0200FAD0 - ldrb r2, [lr, #1] - ldrb r1, [r0, #1] - cmp r2, r1 - bne _0200FAD0 - ldrh r1, [r0] - strh r1, [lr] - ldrh r1, [r0, #2] - strh r1, [lr, #2] - ldrh r1, [r0, #4] - mov r0, #1 - strh r1, [lr, #4] - pop {r4, pc} -_0200FAD0: - add r4, r4, #1 - add lr, lr, #6 -_0200FAD8: - cmp r4, #0x32 - blt _0200FA88 - mov r0, #0 - pop {r4, pc} - .align 2, 0 -_0200FAE8: .4byte 0x020AF6B8 - arm_func_end FUN_0200fa68 -_0200FAEC: - .byte 0x10, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x00, 0x50, 0xE3, 0x10, 0x80, 0xBD, 0x08, 0x50, 0x20, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE3 - .byte 0x00, 0x20, 0x92, 0xE5, 0x04, 0x30, 0xA0, 0xE1, 0x84, 0xE3, 0x92, 0xE5, 0x01, 0xC0, 0xA0, 0xE3 - .byte 0x00, 0x20, 0xDE, 0xE5, 0x01, 0x00, 0x12, 0xE3, 0x0C, 0x20, 0xA0, 0x11, 0x03, 0x20, 0xA0, 0x01 - .byte 0xFF, 0x00, 0x12, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x01, 0x20, 0xDE, 0xE5, 0x00, 0x00, 0x52, 0xE1 - .byte 0x00, 0x20, 0xDE, 0x05, 0x01, 0x20, 0x82, 0x01, 0x00, 0x20, 0xCE, 0x05, 0x01, 0x40, 0x84, 0xE2 - .byte 0x32, 0x00, 0x54, 0xE3, 0x06, 0xE0, 0x8E, 0xE2, 0xF0, 0xFF, 0xFF, 0xBA, 0x10, 0x80, 0xBD, 0xE8 - .byte 0xB8, 0xF6, 0x0A, 0x02 - - arm_func_start FUN_0200fb54 -FUN_0200fb54: @ 0x0200FB54 - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r1, _0200FBDC @ =0x020AF6B8 - mov r6, r0 - ldr r0, [r1] - mov r5, #0 - mov sb, #1 - ldr r4, [r0, #0x384] - mov r8, r5 - mov r7, sb - b _0200FBCC -_0200FB7C: - ldrb r0, [r4] - tst r0, #1 - movne r0, sb - moveq r0, r8 - tst r0, #0xff - beq _0200FBC4 - mov r0, r4 - mov r1, r6 - mov r2, r7 - bl FUN_0200d834 - cmp r0, #0 - beq _0200FBC4 - mov r0, #0 - strb r0, [r4, #1] - ldrb r1, [r6] - mov r0, #1 - strb r1, [r4] - pop {r3, r4, r5, r6, r7, r8, sb, pc} -_0200FBC4: - add r5, r5, #1 - add r4, r4, #6 -_0200FBCC: - cmp r5, #0x32 - blt _0200FB7C - mov r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0200FBDC: .4byte 0x020AF6B8 - arm_func_end FUN_0200fb54 - - arm_func_start FUN_0200fbe0 -FUN_0200fbe0: @ 0x0200FBE0 - push {r4, lr} - ldr ip, _0200FC20 @ =0x020AF6B8 - mov r3, #6 - ldr lr, [ip] - smulbb ip, r0, r3 - ldr lr, [lr, #0x384] - and r0, r2, #0xff - ldrb r3, [lr, ip] - add r4, lr, ip - bic r3, r3, #0x10 - strb r3, [lr, ip] - strb r2, [r1, #1] - strb r0, [r4, #1] - ldrb r0, [r1] - strb r0, [lr, ip] - pop {r4, pc} - .align 2, 0 -_0200FC20: .4byte 0x020AF6B8 - arm_func_end FUN_0200fbe0 - - arm_func_start FUN_0200fc24 -FUN_0200fc24: @ 0x0200FC24 - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov r4, #0 - ldr r7, _0200FCA8 @ =0x020AF6B8 - mov r8, r4 - mov sb, #1 - mov r6, #6 -_0200FC3C: - mul r1, r4, r6 - ldr r0, [r7] - ldr r2, [r0, #0x384] - ldrb r0, [r2, r1] - add r5, r2, r1 - tst r0, #1 - movne r0, sb - moveq r0, r8 - tst r0, #0xff - beq _0200FC84 - ldrsh r0, [r5, #4] - cmp r0, #0xb7 - bne _0200FC84 - mov r0, r5 - bl FUN_0200d8ac - bl AddMoneyCarried - mov r0, r5 - bl ItemZInit -_0200FC84: - add r4, r4, #1 - cmp r4, #0x32 - blt _0200FC3C - ldr r0, _0200FCA8 @ =0x020AF6B8 - mov r1, #0x32 - ldr r0, [r0] - ldr r0, [r0, #0x384] - bl FUN_0200e3a0 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0200FCA8: .4byte 0x020AF6B8 - arm_func_end FUN_0200fc24 - - arm_func_start FUN_0200fcac -FUN_0200fcac: @ 0x0200FCAC - push {r3, r4, r5, r6, r7, lr} - ldr r0, _0200FD34 @ =0x020AF6B8 - mov r5, #0 - ldr r0, [r0] - mov r6, r5 - ldr r4, [r0, #0x384] - mov r7, #1 -_0200FCC8: - ldrb r0, [r4] - tst r0, #1 - movne r0, r7 - moveq r0, r6 - tst r0, #0xff - beq _0200FD0C - ldrsh r0, [r4, #4] - cmp r0, #0xb7 - bne _0200FD0C - ldrb r1, [r4] - mov r0, r4 - bic r1, r1, #8 - strb r1, [r4] - bl FUN_0200d8ac - bl AddMoneyCarried - mov r0, r4 - bl ItemZInit -_0200FD0C: - add r5, r5, #1 - cmp r5, #0x32 - add r4, r4, #6 - blt _0200FCC8 - ldr r0, _0200FD34 @ =0x020AF6B8 - mov r1, #0x32 - ldr r0, [r0] - ldr r0, [r0, #0x384] - bl RemoveEmptyItems - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0200FD34: .4byte 0x020AF6B8 - arm_func_end FUN_0200fcac - - arm_func_start FUN_0200fd38 -FUN_0200fd38: @ 0x0200FD38 - bx lr - arm_func_end FUN_0200fd38 - - arm_func_start thunk_FUN_020102dc -thunk_FUN_020102dc: @ 0x0200FD3C - ldr ip, _0200FD44 @ =FUN_020102dc - bx ip - .align 2, 0 -_0200FD44: .4byte FUN_020102dc - arm_func_end thunk_FUN_020102dc - - arm_func_start thunk_FUN_02050ce4 -thunk_FUN_02050ce4: @ 0x0200FD48 - ldr ip, _0200FD50 @ =FUN_02050ce4 - bx ip - .align 2, 0 -_0200FD50: .4byte FUN_02050ce4 - arm_func_end thunk_FUN_02050ce4 - - arm_func_start ScriptSpecialProcess0x39 -ScriptSpecialProcess0x39: @ 0x0200FD54 - push {r4, lr} - bl FUN_02050ce4 - mov r4, r0 - bl FUN_0200fd78 - cmp r0, r4 - movge r0, #1 - movlt r0, #0 - and r0, r0, #0xff - pop {r4, pc} - arm_func_end ScriptSpecialProcess0x39 - - arm_func_start FUN_0200fd78 -FUN_0200fd78: @ 0x0200FD78 - ldr r1, _0200FDAC @ =0x020AF6B8 - mov r0, #0 - ldr r3, [r1] - mov r2, r0 -_0200FD88: - add r1, r3, r2, lsl #1 - add r1, r1, #0x300 - ldrsh r1, [r1, #0x8a] - add r2, r2, #1 - cmp r1, #0 - addne r0, r0, #1 - cmp r2, #0x3e8 - blt _0200FD88 - bx lr - .align 2, 0 -_0200FDAC: .4byte 0x020AF6B8 - arm_func_end FUN_0200fd78 - - arm_func_start FUN_0200fdb0 -FUN_0200fdb0: @ 0x0200FDB0 - push {r4, r5, r6, lr} - mov r5, #0 - ldr r4, _0200FDFC @ =0x020AF6B8 - mov r6, r5 -_0200FDC0: - ldr r0, [r4] - add r0, r0, r6, lsl #1 - add r0, r0, #0x300 - ldrsh r1, [r0, #0x8a] - cmp r1, #0 - beq _0200FDE8 - ldrsh r0, [r0, #0x8a] - bl IsItemValidVeneer - cmp r0, #0 - addne r5, r5, #1 -_0200FDE8: - add r6, r6, #1 - cmp r6, #0x3e8 - blt _0200FDC0 - mov r0, r5 - pop {r4, r5, r6, pc} - .align 2, 0 -_0200FDFC: .4byte 0x020AF6B8 - arm_func_end FUN_0200fdb0 - - arm_func_start FUN_0200fe00 -FUN_0200fe00: @ 0x0200FE00 - push {r3, r4, r5, r6, r7, lr} - mov r4, #0 - ldr r6, _0200FEA4 @ =0x020AF6B8 - mov r5, r4 -_0200FE10: - ldr r0, [r6] - add r0, r0, r5, lsl #1 - add r0, r0, #0x300 - ldrsh r7, [r0, #0x8a] - cmp r7, #0 - beq _0200FE90 - mov r0, r7 - bl IsItemValidVeneer - cmp r0, #0 - beq _0200FE90 - mov r0, r7 - bl IsItemInTimeDarkness - cmp r0, #0 - beq _0200FE90 - mov r0, r7 - bl IsTreasureBox - cmp r0, #0 - beq _0200FE8C - ldr r0, [r6] - add r0, r0, r5, lsl #1 - add r0, r0, #0xb00 - ldrsh r7, [r0, #0x5a] - mov r0, r7 - bl IsItemValidVeneer - cmp r0, #0 - beq _0200FE90 - mov r0, r7 - bl IsItemInTimeDarkness - cmp r0, #0 - addne r4, r4, #1 - b _0200FE90 -_0200FE8C: - add r4, r4, #1 -_0200FE90: - add r5, r5, #1 - cmp r5, #0x3e8 - blt _0200FE10 - mov r0, r4 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0200FEA4: .4byte 0x020AF6B8 - arm_func_end FUN_0200fe00 - - arm_func_start CountNbItemsOfTypeInStorage -CountNbItemsOfTypeInStorage: @ 0x0200FEA8 - ldr r1, _0200FEE0 @ =0x020AF6B8 - mov r2, #0 - ldr ip, [r1] - mov r3, r2 -_0200FEB8: - add r1, ip, r3, lsl #1 - add r1, r1, #0x300 - ldrsh r1, [r1, #0x8a] - add r3, r3, #1 - cmp r0, r1 - addeq r2, r2, #1 - cmp r3, #0x3e8 - blt _0200FEB8 - mov r0, r2 - bx lr - .align 2, 0 -_0200FEE0: .4byte 0x020AF6B8 - arm_func_end CountNbItemsOfTypeInStorage - - arm_func_start CountItemTypeInStorage -CountItemTypeInStorage: @ 0x0200FEE4 - push {r3, r4, r5, r6, r7, lr} - mov r4, #0 - ldr r7, _0200FF4C @ =0x020AF6B8 - mov r6, r0 - mov r5, r4 -_0200FEF8: - ldr r1, [r7] - ldrsh r0, [r6] - add r1, r1, r5, lsl #1 - add r1, r1, #0x300 - ldrsh r1, [r1, #0x8a] - cmp r0, r1 - bne _0200FF38 - bl IsThrownItem - cmp r0, #0 - addeq r4, r4, #1 - beq _0200FF38 - ldr r0, [r7] - add r0, r0, r5, lsl #1 - add r0, r0, #0xb00 - ldrh r0, [r0, #0x5a] - add r4, r4, r0 -_0200FF38: - add r5, r5, #1 - cmp r5, #0x3e8 - blt _0200FEF8 - mov r0, r4 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0200FF4C: .4byte 0x020AF6B8 - arm_func_end CountItemTypeInStorage - - arm_func_start FUN_0200ff50 -FUN_0200ff50: @ 0x0200FF50 - push {r3, lr} - ldr r1, _0200FFA8 @ =0x020AF6B8 - mov ip, #0 - ldr lr, [r1] - b _0200FF98 -_0200FF64: - add r2, lr, ip, lsl #1 - add r1, r2, #0x300 - ldrsh r3, [r0] - ldrsh r1, [r1, #0x8a] - cmp r3, r1 - addeq r1, r2, #0xb00 - ldrheq r2, [r0, #2] - ldrheq r1, [r1, #0x5a] - cmpeq r2, r1 - lsleq r0, ip, #0x10 - asreq r0, r0, #0x10 - popeq {r3, pc} - add ip, ip, #1 -_0200FF98: - cmp ip, #0x3e8 - blt _0200FF64 - mvn r0, #0 - pop {r3, pc} - .align 2, 0 -_0200FFA8: .4byte 0x020AF6B8 - arm_func_end FUN_0200ff50 - - arm_func_start FUN_0200ffac -FUN_0200ffac: @ 0x0200FFAC - ldr r3, _0200FFF0 @ =0x020AF6B8 - ldr r2, [r3] - add r2, r2, r0, lsl #1 - add r2, r2, #0x300 - ldrsh r2, [r2, #0x8a] - strh r2, [r1] - ldr r2, [r3] - add r0, r2, r0, lsl #1 - add r0, r0, #0xb00 - ldrh r0, [r0, #0x5a] - strh r0, [r1, #2] - ldrsh r0, [r1] - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0200FFF0: .4byte 0x020AF6B8 - arm_func_end FUN_0200ffac - - arm_func_start FUN_0200fff4 -FUN_0200fff4: @ 0x0200FFF4 - ldr r3, _02010040 @ =0x020AF6B8 - mov ip, #0 - ldr r2, [r3] - add r2, r2, r0, lsl #1 - add r2, r2, #0x300 - ldrsh r2, [r2, #0x8a] - strh r2, [r1, #4] - ldr r2, [r3] - add r0, r2, r0, lsl #1 - add r0, r0, #0xb00 - ldrh r0, [r0, #0x5a] - strh r0, [r1, #2] - strb ip, [r1] - strb ip, [r1, #1] - ldrsh r0, [r1, #4] - cmp r0, #0 - movne ip, #1 - and r0, ip, #0xff - bx lr - .align 2, 0 -_02010040: .4byte 0x020AF6B8 - arm_func_end FUN_0200fff4 - - arm_func_start FUN_02010044 -FUN_02010044: @ 0x02010044 - ldr r1, _0201005C @ =0x020AF6B8 - ldr r1, [r1] - add r0, r1, r0, lsl #1 - add r0, r0, #0x300 - ldrsh r0, [r0, #0x8a] - bx lr - .align 2, 0 -_0201005C: .4byte 0x020AF6B8 - arm_func_end FUN_02010044 - - arm_func_start FUN_02010060 -FUN_02010060: @ 0x02010060 - ldr r1, _02010078 @ =0x020AF6B8 - ldr r1, [r1] - add r0, r1, r0, lsl #1 - add r0, r0, #0xb00 - ldrh r0, [r0, #0x5a] - bx lr - .align 2, 0 -_02010078: .4byte 0x020AF6B8 - arm_func_end FUN_02010060 - - arm_func_start FUN_0201007c -FUN_0201007c: @ 0x0201007C - push {r3, lr} - ldr r1, _02010150 @ =0x020AF6B8 - mov r0, #0 - ldr r2, [r1] - b _02010144 -_02010090: - add r1, r2, r0, lsl #1 - add r1, r1, #0x300 - ldrsh r1, [r1, #0x8a] - cmp r1, #0 - bne _02010140 - mov r1, r0 - add r0, r0, #1 - ldr r3, _02010150 @ =0x020AF6B8 - b _020100FC -_020100B4: - ldr lr, [r3] - add r2, lr, r0, lsl #1 - add r2, r2, #0x300 - ldrsh ip, [r2, #0x8a] - cmp ip, #0 - beq _020100F8 - add r2, lr, r1, lsl #1 - add r2, r2, #0x300 - strh ip, [r2, #0x8a] - ldr lr, [r3] - add r2, lr, r0, lsl #1 - add r2, r2, #0xb00 - ldrh ip, [r2, #0x5a] - add r2, lr, r1, lsl #1 - add r2, r2, #0xb00 - strh ip, [r2, #0x5a] - add r1, r1, #1 -_020100F8: - add r0, r0, #1 -_020100FC: - cmp r0, #0x3e8 - blt _020100B4 - mov r3, #0 - ldr r2, _02010150 @ =0x020AF6B8 - b _02010134 -_02010110: - ldr r0, [r2] - add r0, r0, r1, lsl #1 - add r0, r0, #0x300 - strh r3, [r0, #0x8a] - ldr r0, [r2] - add r0, r0, r1, lsl #1 - add r0, r0, #0xb00 - strh r3, [r0, #0x5a] - add r1, r1, #1 -_02010134: - cmp r1, #0x3e8 - blt _02010110 - pop {r3, pc} -_02010140: - add r0, r0, #1 -_02010144: - cmp r0, #0x3e8 - blt _02010090 - pop {r3, pc} - .align 2, 0 -_02010150: .4byte 0x020AF6B8 - arm_func_end FUN_0201007c - - arm_func_start FUN_02010154 -FUN_02010154: @ 0x02010154 - push {r3, lr} - ldr r2, _0201019C @ =0x020AF6B8 - ldr r1, [r2] - add r1, r1, r0, lsl #1 - add r1, r1, #0x300 - ldrsh r3, [r1, #0x8a] - cmp r3, #0 - moveq r0, #0 - popeq {r3, pc} - mov r3, #0 - strh r3, [r1, #0x8a] - ldr r1, [r2] - add r0, r1, r0, lsl #1 - add r0, r0, #0xb00 - strh r3, [r0, #0x5a] - bl FUN_0201007c - mov r0, #1 - pop {r3, pc} - .align 2, 0 -_0201019C: .4byte 0x020AF6B8 - arm_func_end FUN_02010154 - - arm_func_start FUN_020101a0 -FUN_020101a0: @ 0x020101A0 - ldr r2, _020101E0 @ =0x020AF6B8 - ldr r1, [r2] - add r1, r1, r0, lsl #1 - add r1, r1, #0x300 - ldrsh r3, [r1, #0x8a] - cmp r3, #0 - moveq r0, #0 - bxeq lr - mov r3, #0 - strh r3, [r1, #0x8a] - ldr r1, [r2] - add r0, r1, r0, lsl #1 - add r0, r0, #0xb00 - strh r3, [r0, #0x5a] - mov r0, #1 - bx lr - .align 2, 0 -_020101E0: .4byte 0x020AF6B8 - arm_func_end FUN_020101a0 - - arm_func_start RemoveItemsTypeInStorage -RemoveItemsTypeInStorage: @ 0x020101E4 - push {r4, lr} - ldr r1, _0201025C @ =0x020AF6B8 - mov lr, #0 - ldr r4, [r1] - b _0201024C -_020101F8: - add r3, r4, lr, lsl #1 - add r2, r3, #0x300 - ldrsh ip, [r0] - ldrsh r1, [r2, #0x8a] - cmp ip, r1 - addeq r1, r3, #0xb00 - ldrheq r3, [r0, #2] - ldrheq r1, [r1, #0x5a] - cmpeq r3, r1 - bne _02010248 - mov r1, #0 - ldr r0, _0201025C @ =0x020AF6B8 - strh r1, [r2, #0x8a] - ldr r0, [r0] - add r0, r0, lr, lsl #1 - add r0, r0, #0xb00 - strh r1, [r0, #0x5a] - bl FUN_0201007c - mov r0, #1 - pop {r4, pc} -_02010248: - add lr, lr, #1 -_0201024C: - cmp lr, #0x3e8 - blt _020101F8 - mov r0, #0 - pop {r4, pc} - .align 2, 0 -_0201025C: .4byte 0x020AF6B8 - arm_func_end RemoveItemsTypeInStorage - - arm_func_start FUN_02010260 -FUN_02010260: @ 0x02010260 - push {r4, lr} - ldr r1, _020102D8 @ =0x020AF6B8 - mov lr, #0 - ldr r4, [r1] - b _020102C8 -_02010274: - add r3, r4, lr, lsl #1 - add r2, r3, #0x300 - ldrsh ip, [r0, #4] - ldrsh r1, [r2, #0x8a] - cmp ip, r1 - addeq r1, r3, #0xb00 - ldrheq r3, [r0, #2] - ldrheq r1, [r1, #0x5a] - cmpeq r3, r1 - bne _020102C4 - mov r1, #0 - ldr r0, _020102D8 @ =0x020AF6B8 - strh r1, [r2, #0x8a] - ldr r0, [r0] - add r0, r0, lr, lsl #1 - add r0, r0, #0xb00 - strh r1, [r0, #0x5a] - bl FUN_0201007c - mov r0, #1 - pop {r4, pc} -_020102C4: - add lr, lr, #1 -_020102C8: - cmp lr, #0x3e8 - blt _02010274 - mov r0, #0 - pop {r4, pc} - .align 2, 0 -_020102D8: .4byte 0x020AF6B8 - arm_func_end FUN_02010260 - - arm_func_start FUN_020102dc -FUN_020102dc: @ 0x020102DC - mov r3, #0 - ldr r1, _02010318 @ =0x020AF6B8 - mov r2, r3 -_020102E8: - ldr r0, [r1] - add r0, r0, r3, lsl #1 - add r0, r0, #0x300 - strh r2, [r0, #0x8a] - ldr r0, [r1] - add r0, r0, r3, lsl #1 - add r0, r0, #0xb00 - add r3, r3, #1 - strh r2, [r0, #0x5a] - cmp r3, #0x3e8 - blt _020102E8 - bx lr - .align 2, 0 -_02010318: .4byte 0x020AF6B8 - arm_func_end FUN_020102dc - - arm_func_start AddItemToStorage -AddItemToStorage: @ 0x0201031C - push {r3, r4, r5, lr} - sub sp, sp, #8 - mov r4, r0 - bl FUN_02050ce4 - mov r5, r0 - add r0, sp, #0 - mov r1, r4 - bl FUN_0200cff0 - ldr r0, _020103A8 @ =0x020AF6B8 - mov ip, #0 - ldr r2, [r0] - b _02010394 -_0201034C: - add r0, r2, ip, lsl #1 - add r1, r0, #0x300 - ldrsh r0, [r1, #0x8a] - cmp r0, #0 - bne _02010390 - ldrsh r3, [r4] - ldr r2, _020103A8 @ =0x020AF6B8 - add r0, sp, #0 - strh r3, [r1, #0x8a] - ldr r1, [r2] - ldrh r2, [r4, #2] - add r1, r1, ip, lsl #1 - add r1, r1, #0xb00 - strh r2, [r1, #0x5a] - bl SetItemAcquired - mov r0, #1 - b _020103A0 -_02010390: - add ip, ip, #1 -_02010394: - cmp ip, r5 - blt _0201034C - mov r0, #0 -_020103A0: - add sp, sp, #8 - pop {r3, r4, r5, pc} - .align 2, 0 -_020103A8: .4byte 0x020AF6B8 - arm_func_end AddItemToStorage - - arm_func_start FUN_020103ac -FUN_020103ac: @ 0x020103AC - push {r4, lr} - mov r4, r0 - bl FUN_02050ce4 - ldr r1, _02010420 @ =0x020AF6B8 - mov ip, #0 - ldr r3, [r1] - b _02010410 -_020103C8: - add r1, r3, ip, lsl #1 - add r1, r1, #0x300 - ldrsh r2, [r1, #0x8a] - cmp r2, #0 - bne _0201040C - ldrsh r3, [r4, #4] - ldr r2, _02010420 @ =0x020AF6B8 - mov r0, r4 - strh r3, [r1, #0x8a] - ldr r1, [r2] - ldrh r2, [r4, #2] - add r1, r1, ip, lsl #1 - add r1, r1, #0xb00 - strh r2, [r1, #0x5a] - bl SetItemAcquired - mov r0, #1 - pop {r4, pc} -_0201040C: - add ip, ip, #1 -_02010410: - cmp ip, r0 - blt _020103C8 - mov r0, #0 - pop {r4, pc} - .align 2, 0 -_02010420: .4byte 0x020AF6B8 - arm_func_end FUN_020103ac - - arm_func_start FUN_02010424 -FUN_02010424: @ 0x02010424 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sb, r1 - mov r1, #6 - mov sl, r0 - mul r0, sb, r1 - mov r1, #0 - bl MemAlloc - mov r5, #6 - mov r7, r0 - mov r8, #0 - mov fp, #0x80 - ldr r6, _0201058C @ =0x020AF6B8 - mov r4, r5 - b _020104C8 -_0201045C: - ldr r0, [r6] - add r0, r0, r8, lsl #1 - add r0, r0, #0x300 - ldrsh r0, [r0, #0x8a] - cmp r0, #0 - beq _020104D0 - mla r0, r8, r5, r7 - bl ItemZInit - ldrb r0, [sl, r8] - mul r2, r8, r4 - cmp r0, #0 - movne r0, fp - moveq r0, #0 - orr r0, r0, #1 - strb r0, [r7, r2] - ldr r1, [r6] - add r0, r7, r2 - add r1, r1, r8, lsl #1 - add r1, r1, #0x300 - ldrsh r1, [r1, #0x8a] - strh r1, [r0, #4] - ldr r1, [r6] - add r1, r1, r8, lsl #1 - add r1, r1, #0xb00 - ldrh r1, [r1, #0x5a] - add r8, r8, #1 - strh r1, [r0, #2] -_020104C8: - cmp r8, sb - blt _0201045C -_020104D0: - mov r0, r7 - mov r1, r8 - bl FUN_0200e3a0 - mov r6, #0 - mov r1, r6 - mov r2, #1 - mov fp, #6 - ldr r0, _0201058C @ =0x020AF6B8 - b _0201053C -_020104F4: - mul r4, r6, fp - add r5, r7, r4 - ldr ip, [r0] - ldrsh r3, [r5, #4] - add ip, ip, r6, lsl #1 - add ip, ip, #0x300 - strh r3, [ip, #0x8a] - ldr ip, [r0] - ldrh r3, [r5, #2] - add r5, ip, r6, lsl #1 - add r5, r5, #0xb00 - strh r3, [r5, #0x5a] - ldrb r3, [r7, r4] - tst r3, #0x80 - movne r3, r2 - moveq r3, r1 - strb r3, [sl, r6] - add r6, r6, #1 -_0201053C: - cmp r6, r8 - blt _020104F4 - mov r2, #0 - ldr r1, _0201058C @ =0x020AF6B8 - b _02010578 -_02010550: - ldr r0, [r1] - add r0, r0, r6, lsl #1 - add r0, r0, #0x300 - strh r2, [r0, #0x8a] - ldr r0, [r1] - add r0, r0, r6, lsl #1 - add r0, r0, #0xb00 - strh r2, [r0, #0x5a] - strb r2, [sl, r6] - add r6, r6, #1 -_02010578: - cmp r6, sb - blt _02010550 - mov r0, r7 - bl MemFree - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0201058C: .4byte 0x020AF6B8 - arm_func_end FUN_02010424 - - arm_func_start FUN_02010590 -FUN_02010590: @ 0x02010590 - bx lr - arm_func_end FUN_02010590 - - arm_func_start FUN_02010594 -FUN_02010594: @ 0x02010594 - push {r4, r5, r6, lr} - mov r2, #0 - ldr ip, _02010650 @ =0x020AF6B8 - mov r5, r2 - mov r0, r2 - mov r1, r2 -_020105AC: - mov r6, r1 -_020105B0: - ldr r3, [ip] - lsl r4, r6, #2 - add r3, r3, #0x330 - add r3, r3, #0x1000 - add r3, r3, r2, lsl #5 - add lr, r3, r6, lsl #2 - strh r5, [r3, r4] - add r6, r6, #1 - strh r5, [lr, #2] - cmp r6, #8 - blt _020105B0 - mov r6, r5 -_020105E0: - ldr r3, [ip] - lsl lr, r6, #2 - add r3, r3, #0x374 - add r3, r3, #0x1000 - add r3, r3, r2, lsl #4 - add r4, r3, r6, lsl #2 - strh r0, [r3, lr] - add r6, r6, #1 - strh r0, [r4, #2] - cmp r6, #4 - blt _020105E0 - add r2, r2, #1 - cmp r2, #2 - blt _020105AC - ldr r2, _02010650 @ =0x020AF6B8 - ldr r1, [r2] - add r1, r1, #0x1000 - str r0, [r1, #0x3a0] - ldr r1, [r2] - add r1, r1, #0x1300 - strh r0, [r1, #0xa4] - ldr r1, [r2] - add r1, r1, #0x1300 - strh r0, [r1, #0xa6] - ldr r1, [r2] - add r1, r1, #0x1300 - strh r0, [r1, #0xa8] - pop {r4, r5, r6, pc} - .align 2, 0 -_02010650: .4byte 0x020AF6B8 - arm_func_end FUN_02010594 - - arm_func_start FUN_02010654 -FUN_02010654: @ 0x02010654 - push {r3, lr} - mov lr, #0 - ldr r2, _020106C0 @ =0x020AF6B8 - mov r0, lr -_02010664: - ldr r1, [r2] - lsl r3, lr, #2 - add r1, r1, #0x350 - add r1, r1, #0x1000 - add ip, r1, lr, lsl #2 - strh r0, [r1, r3] - add lr, lr, #1 - strh r0, [ip, #2] - cmp lr, #8 - blt _02010664 - ldr r2, _020106C0 @ =0x020AF6B8 - mov r3, #0 -_02010694: - ldr r1, [r2] - lsl ip, r0, #2 - add r1, r1, #0x384 - add r1, r1, #0x1000 - add lr, r1, r0, lsl #2 - strh r3, [r1, ip] - add r0, r0, #1 - strh r3, [lr, #2] - cmp r0, #4 - blt _02010694 - pop {r3, pc} - .align 2, 0 -_020106C0: .4byte 0x020AF6B8 - arm_func_end FUN_02010654 - - arm_func_start FUN_020106c4 -FUN_020106c4: @ 0x020106C4 - ldr r2, _02010708 @ =0x020AF6B8 - ldr r1, [r2] - add r1, r1, #0x1000 - strb r0, [r1, #0x32a] - ldr ip, [r2] - add r1, ip, #0x330 - add r1, r1, #0x1000 - add r3, r1, r0, lsl #5 - add r1, ip, #0x1000 - str r3, [r1, #0x32c] - ldr r2, [r2] - add r1, r2, #0x374 - add r1, r1, #0x1000 - add r1, r1, r0, lsl #4 - add r0, r2, #0x1000 - str r1, [r0, #0x370] - bx lr - .align 2, 0 -_02010708: .4byte 0x020AF6B8 - arm_func_end FUN_020106c4 - - arm_func_start FUN_0201070C -FUN_0201070C: @ 0x0201070C - ldr r0, _02010720 @ =0x020AF6B8 - ldr r0, [r0] - add r0, r0, #0x1000 - ldr r0, [r0, #0x3a0] - bx lr - .align 2, 0 -_02010720: .4byte 0x020AF6B8 - arm_func_end FUN_0201070C - - arm_func_start SetMoneyStored -SetMoneyStored: @ 0x02010724 - ldr r1, _02010750 @ =0x0098967F - cmp r0, r1 - movgt r0, r1 - bgt _0201073C - cmp r0, #0 - movlt r0, #0 -_0201073C: - ldr r1, _02010754 @ =0x020AF6B8 - ldr r1, [r1] - add r1, r1, #0x1000 - str r0, [r1, #0x3a0] - bx lr - .align 2, 0 -_02010750: .4byte 0x0098967F -_02010754: .4byte 0x020AF6B8 - arm_func_end SetMoneyStored -_02010758: - .byte 0x14, 0x10, 0x9F, 0xE5, 0x14, 0xC0, 0x9F, 0xE5 - .byte 0x00, 0x10, 0x91, 0xE5, 0x01, 0x1A, 0x81, 0xE2, 0xA0, 0x13, 0x91, 0xE5, 0x00, 0x00, 0x81, 0xE0 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xB8, 0xF6, 0x0A, 0x02, 0x24, 0x07, 0x01, 0x02 - - arm_func_start FUN_0201077c -FUN_0201077c: @ 0x0201077C - ldr r0, _02010790 @ =0x020AF6B8 - ldr r0, [r0] - add r0, r0, #0x1300 - ldrsh r0, [r0, #0xa4] - bx lr - .align 2, 0 -_02010790: .4byte 0x020AF6B8 - arm_func_end FUN_0201077c - - arm_func_start FUN_02010794 -FUN_02010794: @ 0x02010794 - ldr r1, _020107A8 @ =0x020AF6B8 - ldr r1, [r1] - add r1, r1, #0x1300 - strh r0, [r1, #0xa4] - bx lr - .align 2, 0 -_020107A8: .4byte 0x020AF6B8 - arm_func_end FUN_02010794 -_020107AC: - .byte 0x0C, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x13, 0x0C, 0x80, 0xE2, 0xB6, 0x0A, 0xD0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xB8, 0xF6, 0x0A, 0x02, 0x0C, 0x10, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x13, 0x1C, 0x81, 0xE2 - .byte 0xB6, 0x0A, 0xC1, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xB8, 0xF6, 0x0A, 0x02, 0x0C, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x13, 0x0C, 0x80, 0xE2, 0xB8, 0x0A, 0xD0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xB8, 0xF6, 0x0A, 0x02 - - arm_func_start FUN_020107f4 -FUN_020107f4: @ 0x020107F4 - ldr r1, _02010808 @ =0x020AF6B8 - ldr r1, [r1] - add r1, r1, #0x1300 - strh r0, [r1, #0xa8] - bx lr - .align 2, 0 -_02010808: .4byte 0x020AF6B8 - arm_func_end FUN_020107f4 - - arm_func_start FUN_0201080c -FUN_0201080c: @ 0x0201080C - ldr r0, _0201082C @ =0x020AF6B8 - ldr r0, [r0] - add r0, r0, #0x1300 - ldrh r1, [r0, #0xa8] - cmp r1, #0 - subne r1, r1, #1 - strhne r1, [r0, #0xa8] - bx lr - .align 2, 0 -_0201082C: .4byte 0x020AF6B8 - arm_func_end FUN_0201080c -_02010830: - .byte 0x30, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0x91, 0xE5, 0x00, 0x20, 0xA0, 0xE1 - .byte 0x01, 0x1A, 0x81, 0xE2, 0x2C, 0x33, 0x91, 0xE5, 0x02, 0x11, 0xA0, 0xE1, 0xF1, 0x10, 0x93, 0xE1 - .byte 0x01, 0x20, 0x82, 0xE2, 0x00, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x80, 0x12, 0x08, 0x00, 0x52, 0xE3 - .byte 0xF8, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1, 0xB8, 0xF6, 0x0A, 0x02 - - arm_func_start FUN_0201086c -FUN_0201086c: @ 0x0201086C - ldr r1, _02010894 @ =0x020AF6B8 - lsl r3, r0, #2 - ldr r1, [r1] - mov r2, #0 - add r1, r1, #0x1000 - ldr r1, [r1, #0x32c] - strh r2, [r1, r3] - add r0, r1, r0, lsl #2 - strh r2, [r0, #2] - bx lr - .align 2, 0 -_02010894: .4byte 0x020AF6B8 - arm_func_end FUN_0201086c -_02010898: - .byte 0x10, 0x10, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 - .byte 0x01, 0x1A, 0x81, 0xE2, 0x2C, 0x13, 0x91, 0xE5, 0x00, 0x01, 0x81, 0xE0, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xB8, 0xF6, 0x0A, 0x02, 0x38, 0x40, 0x2D, 0xE9, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x88, 0x20, 0x9F, 0xE5, 0x07, 0x00, 0x00, 0xEA, 0x00, 0x10, 0x92, 0xE5, 0x00, 0x31, 0xA0, 0xE1 - .byte 0x01, 0x1A, 0x81, 0xE2, 0x2C, 0x13, 0x91, 0xE5, 0xF3, 0x10, 0x91, 0xE1, 0x00, 0x00, 0x51, 0xE3 - .byte 0x02, 0x00, 0x00, 0x1A, 0x01, 0x00, 0x80, 0xE2, 0x08, 0x00, 0x50, 0xE3, 0xF5, 0xFF, 0xFF, 0xBA - .byte 0x08, 0x00, 0x50, 0xE3, 0x12, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0xDA - .byte 0x00, 0x10, 0x92, 0xE5, 0x00, 0x31, 0xA0, 0xE1, 0x01, 0x1A, 0x81, 0xE2, 0x2C, 0x53, 0x91, 0xE5 - .byte 0x04, 0xE1, 0xA0, 0xE1, 0xB3, 0x10, 0x95, 0xE1, 0x00, 0xC1, 0x85, 0xE0, 0x04, 0x31, 0x85, 0xE0 - .byte 0xBE, 0x10, 0x85, 0xE1, 0xB2, 0x10, 0xDC, 0xE1, 0xB2, 0x10, 0xC3, 0xE1, 0x01, 0x00, 0x80, 0xE2 - .byte 0x01, 0x40, 0x84, 0xE2, 0xEB, 0xFF, 0xFF, 0xEA, 0xFF, 0x00, 0x04, 0xE2, 0xCA, 0xFF, 0xFF, 0xEB - .byte 0x01, 0x40, 0x84, 0xE2, 0x08, 0x00, 0x54, 0xE3, 0xFA, 0xFF, 0xFF, 0xBA, 0x38, 0x80, 0xBD, 0xE8 - .byte 0xB8, 0xF6, 0x0A, 0x02 - - arm_func_start FUN_02010954 -FUN_02010954: @ 0x02010954 - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #4 - mov r6, #0 -_02010960: - add r7, r6, #1 - lsl r5, r6, #2 - ldr r4, _02010A48 @ =0x020AF6B8 - b _02010A2C -_02010970: - ldr r0, [r4] - add r0, r0, #0x1000 - ldr r0, [r0, #0x32c] - ldrsh r0, [r5, r0] - bl thunk_FUN_0200eb64 - ldr r1, [r4] - lsl r2, r7, #2 - add r1, r1, #0x1000 - ldr r1, [r1, #0x32c] - mov r8, r0 - ldrsh r0, [r1, r2] - bl thunk_FUN_0200eb64 - cmp r8, r0 - bgt _020109D0 - bne _02010A28 - ldr r0, [r4] - add r0, r0, #0x1000 - ldr r0, [r0, #0x32c] - add r1, r5, r0 - add r0, r0, r7, lsl #2 - ldrh r1, [r1, #2] - ldrh r0, [r0, #2] - cmp r1, r0 - bhs _02010A28 -_020109D0: - ldr r1, [r4] - lsl r0, r7, #2 - add r1, r1, #0x1000 - ldr r8, [r1, #0x32c] - add lr, r5, r8 - ldrh ip, [r5, r8] - ldrh r3, [lr, #2] - ldrh r1, [r8, r0] - add r2, r8, r7, lsl #2 - strh ip, [sp] - strh r1, [r5, r8] - ldrh r1, [r2, #2] - strh r3, [sp, #2] - ldrh r3, [sp] - strh r1, [lr, #2] - ldr r1, [r4] - ldrh r2, [sp, #2] - add r1, r1, #0x1000 - ldr r1, [r1, #0x32c] - strh r3, [r1, r0] - add r0, r1, r7, lsl #2 - strh r2, [r0, #2] -_02010A28: - add r7, r7, #1 -_02010A2C: - cmp r7, #8 - blt _02010970 - add r6, r6, #1 - cmp r6, #7 - blt _02010960 - add sp, sp, #4 - pop {r3, r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02010A48: .4byte 0x020AF6B8 - arm_func_end FUN_02010954 - - arm_func_start GetKecleonItems1 -GetKecleonItems1: @ 0x02010A4C - push {r4, r5, r6, r7, r8, lr} - mov r8, r0 - mov r4, #0 -_02010A58: - and r0, r4, #0xff - bl FUN_0201086c - add r4, r4, #1 - cmp r4, #8 - blt _02010A58 - ldr r0, _02010AC0 @ =0x020980C0 - ldr r5, _02010AC4 @ =0x0000270F - ldr r6, [r0, r8, lsl #2] - mov r7, #0 -_02010A7C: - mov r0, r5 - bl RandIntSafe - mov r4, r0 - mov r0, r5 - bl RandIntSafe - mov r2, r0 - mov r0, r6 - mov r1, r4 - bl GetItemIdFromList - bl FUN_02010ac8 - add r7, r7, #1 - cmp r7, #8 - blt _02010A7C - bl FUN_02010954 - mov r0, r8 - bl GetKecleonItems2 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02010AC0: .4byte 0x020980C0 -_02010AC4: .4byte 0x0000270F - arm_func_end GetKecleonItems1 - - arm_func_start FUN_02010ac8 -FUN_02010ac8: @ 0x02010AC8 - push {r3, lr} - mov r1, r0 - add r0, sp, #0 - bl FUN_0200cf78 - ldr r0, _02010B38 @ =0x020AF6B8 - mov r2, #0 - ldr r3, [r0] - add r0, r3, #0x1000 - b _02010B28 -_02010AEC: - ldr r1, [r0, #0x32c] - lsl ip, r2, #2 - ldrsh r1, [r1, ip] - cmp r1, #0 - bne _02010B24 - add r0, r3, #0x1000 - ldr r3, [r0, #0x32c] - ldrh r1, [sp] - add r2, r3, ip - mov r0, #0 - strh r1, [r3, ip] - ldrh r1, [sp, #2] - strh r1, [r2, #2] - pop {r3, pc} -_02010B24: - add r2, r2, #1 -_02010B28: - cmp r2, #8 - blt _02010AEC - mov r0, #1 - pop {r3, pc} - .align 2, 0 -_02010B38: .4byte 0x020AF6B8 - arm_func_end FUN_02010ac8 -_02010B3C: - .byte 0x30, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0x91, 0xE5, 0x00, 0x20, 0xA0, 0xE1, 0x01, 0x1A, 0x81, 0xE2 - .byte 0x70, 0x33, 0x91, 0xE5, 0x02, 0x11, 0xA0, 0xE1, 0xF1, 0x10, 0x93, 0xE1, 0x01, 0x20, 0x82, 0xE2 - .byte 0x00, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x80, 0x12, 0x04, 0x00, 0x52, 0xE3, 0xF8, 0xFF, 0xFF, 0xBA - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xB8, 0xF6, 0x0A, 0x02 - - arm_func_start FUN_02010b78 -FUN_02010b78: @ 0x02010B78 - ldr r1, _02010BA0 @ =0x020AF6B8 - lsl r3, r0, #2 - ldr r1, [r1] - mov r2, #0 - add r1, r1, #0x1000 - ldr r1, [r1, #0x370] - strh r2, [r1, r3] - add r0, r1, r0, lsl #2 - strh r2, [r0, #2] - bx lr - .align 2, 0 -_02010BA0: .4byte 0x020AF6B8 - arm_func_end FUN_02010b78 -_02010BA4: - .byte 0x10, 0x10, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x01, 0x1A, 0x81, 0xE2 - .byte 0x70, 0x13, 0x91, 0xE5, 0x00, 0x01, 0x81, 0xE0, 0x1E, 0xFF, 0x2F, 0xE1, 0xB8, 0xF6, 0x0A, 0x02 - .byte 0x38, 0x40, 0x2D, 0xE9, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x40, 0xA0, 0xE1, 0x88, 0x20, 0x9F, 0xE5 - .byte 0x07, 0x00, 0x00, 0xEA, 0x00, 0x10, 0x92, 0xE5, 0x00, 0x31, 0xA0, 0xE1, 0x01, 0x1A, 0x81, 0xE2 - .byte 0x70, 0x13, 0x91, 0xE5, 0xF3, 0x10, 0x91, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0x02, 0x00, 0x00, 0x1A - .byte 0x01, 0x00, 0x80, 0xE2, 0x04, 0x00, 0x50, 0xE3, 0xF5, 0xFF, 0xFF, 0xBA, 0x04, 0x00, 0x50, 0xE3 - .byte 0x12, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0xDA, 0x00, 0x10, 0x92, 0xE5 - .byte 0x00, 0x31, 0xA0, 0xE1, 0x01, 0x1A, 0x81, 0xE2, 0x70, 0x53, 0x91, 0xE5, 0x04, 0xE1, 0xA0, 0xE1 - .byte 0xB3, 0x10, 0x95, 0xE1, 0x00, 0xC1, 0x85, 0xE0, 0x04, 0x31, 0x85, 0xE0, 0xBE, 0x10, 0x85, 0xE1 - .byte 0xB2, 0x10, 0xDC, 0xE1, 0xB2, 0x10, 0xC3, 0xE1, 0x01, 0x00, 0x80, 0xE2, 0x01, 0x40, 0x84, 0xE2 - .byte 0xEB, 0xFF, 0xFF, 0xEA, 0xFF, 0x00, 0x04, 0xE2, 0xCA, 0xFF, 0xFF, 0xEB, 0x01, 0x40, 0x84, 0xE2 - .byte 0x04, 0x00, 0x54, 0xE3, 0xFA, 0xFF, 0xFF, 0xBA, 0x38, 0x80, 0xBD, 0xE8, 0xB8, 0xF6, 0x0A, 0x02 - - arm_func_start FUN_02010c60 -FUN_02010c60: @ 0x02010C60 - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #4 - mov r6, #0 -_02010C6C: - add r7, r6, #1 - lsl r5, r6, #2 - ldr r4, _02010D54 @ =0x020AF6B8 - b _02010D38 -_02010C7C: - ldr r0, [r4] - add r0, r0, #0x1000 - ldr r0, [r0, #0x370] - ldrsh r0, [r5, r0] - bl thunk_FUN_0200eb64 - ldr r1, [r4] - lsl r2, r7, #2 - add r1, r1, #0x1000 - ldr r1, [r1, #0x370] - mov r8, r0 - ldrsh r0, [r1, r2] - bl thunk_FUN_0200eb64 - cmp r8, r0 - bgt _02010CDC - bne _02010D34 - ldr r0, [r4] - add r0, r0, #0x1000 - ldr r0, [r0, #0x370] - add r1, r5, r0 - add r0, r0, r7, lsl #2 - ldrh r1, [r1, #2] - ldrh r0, [r0, #2] - cmp r1, r0 - bhs _02010D34 -_02010CDC: - ldr r1, [r4] - lsl r0, r7, #2 - add r1, r1, #0x1000 - ldr r8, [r1, #0x370] - add lr, r5, r8 - ldrh ip, [r5, r8] - ldrh r3, [lr, #2] - ldrh r1, [r8, r0] - add r2, r8, r7, lsl #2 - strh ip, [sp] - strh r1, [r5, r8] - ldrh r1, [r2, #2] - strh r3, [sp, #2] - ldrh r3, [sp] - strh r1, [lr, #2] - ldr r1, [r4] - ldrh r2, [sp, #2] - add r1, r1, #0x1000 - ldr r1, [r1, #0x370] - strh r3, [r1, r0] - add r0, r1, r7, lsl #2 - strh r2, [r0, #2] -_02010D34: - add r7, r7, #1 -_02010D38: - cmp r7, #4 - blt _02010C7C - add r6, r6, #1 - cmp r6, #3 - blt _02010C6C - add sp, sp, #4 - pop {r3, r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02010D54: .4byte 0x020AF6B8 - arm_func_end FUN_02010c60 - - arm_func_start GetKecleonItems2 -GetKecleonItems2: @ 0x02010D58 - push {r3, r4, r5, r6, r7, lr} - mov r5, r0 - mov r4, #0 -_02010D64: - and r0, r4, #0xff - bl FUN_02010b78 - add r4, r4, #1 - cmp r4, #4 - blt _02010D64 - ldr r0, _02010DC4 @ =0x020980D0 - mov r7, #0 - ldr r6, [r0, r5, lsl #2] - ldr r5, _02010DC8 @ =0x0000270F -_02010D88: - mov r0, r5 - bl RandIntSafe - mov r4, r0 - mov r0, r5 - bl RandIntSafe - mov r2, r0 - mov r0, r6 - mov r1, r4 - bl GetItemIdFromList - bl FUN_02010dcc - add r7, r7, #1 - cmp r7, #4 - blt _02010D88 - bl FUN_02010c60 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02010DC4: .4byte 0x020980D0 -_02010DC8: .4byte 0x0000270F - arm_func_end GetKecleonItems2 - - arm_func_start FUN_02010dcc -FUN_02010dcc: @ 0x02010DCC - push {r3, lr} - mov r1, r0 - add r0, sp, #0 - bl FUN_0200cf78 - ldr r0, _02010E3C @ =0x020AF6B8 - mov r2, #0 - ldr r3, [r0] - add r0, r3, #0x1000 - b _02010E2C -_02010DF0: - ldr r1, [r0, #0x370] - lsl ip, r2, #2 - ldrsh r1, [r1, ip] - cmp r1, #0 - bne _02010E28 - add r0, r3, #0x1000 - ldr r3, [r0, #0x370] - ldrh r1, [sp] - add r2, r3, ip - mov r0, #0 - strh r1, [r3, ip] - ldrh r1, [sp, #2] - strh r1, [r2, #2] - pop {r3, pc} -_02010E28: - add r2, r2, #1 -_02010E2C: - cmp r2, #4 - blt _02010DF0 - mov r0, #1 - pop {r3, pc} - .align 2, 0 -_02010E3C: .4byte 0x020AF6B8 - arm_func_end FUN_02010dcc - - arm_func_start GetExclusiveItemOffset -GetExclusiveItemOffset: @ 0x02010E40 - push {r4, lr} - mov r4, r0 - bl GetItemCategory - cmp r0, #0xf - movne r0, #0 - subeq r0, r4, #0x1bc - lsleq r0, r0, #0x10 - asreq r0, r0, #0x10 - pop {r4, pc} - arm_func_end GetExclusiveItemOffset - - arm_func_start ApplyExclusiveItemStatBoosts -ApplyExclusiveItemStatBoosts: @ 0x02010E64 - push {r3, r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #8 - mov r7, r1 - mov r6, r2 - mov r5, r3 - ldr r4, [sp, #0x28] - bl GetExclusiveItemOffset - ldr r1, _02010F6C @ =0x02098125 - ldrb r2, [r7] - ldrb r1, [r1, r0, lsl #1] - ldrb r0, [r4] - strh r2, [sp, #4] - ldrb r2, [r5] - strh r0, [sp, #2] - ldrb r3, [r6] - ldr r0, _02010F70 @ =0x020980E8 - lsl r1, r1, #2 - strh r3, [sp, #6] - strh r2, [sp] - ldrsb r2, [r0, r1] - ldr r0, _02010F74 @ =0x020980EA - ldrh sb, [sp, #4] - ldrsb r8, [r0, r1] - lsl r0, r2, #0x10 - add r0, sb, r0, lsr #16 - strh r0, [sp, #4] - lsl r0, r8, #0x10 - ldrh lr, [sp, #6] - ldrh r2, [sp, #4] - ldr ip, _02010F78 @ =0x020980E9 - add r0, lr, r0, lsr #16 - ldrsb lr, [ip, r1] - ldr r3, _02010F7C @ =0x020980EB - ldrsh ip, [sp, #2] - ldrsb r1, [r3, r1] - strh r0, [sp, #6] - ldrsh r8, [sp] - add r0, ip, r1 - strh r0, [sp, #2] - cmp r2, #0xff - movhi r0, #0xff - strhhi r0, [sp, #4] - ldrh r0, [sp, #6] - add r3, r8, lr - ldrh r2, [sp, #4] - cmp r0, #0xff - movhi r0, #0xff - strh r3, [sp] - strhhi r0, [sp, #6] - ldrsh r0, [sp] - strb r2, [r7] - cmp r0, #0xff - movgt r0, #0xff - strhgt r0, [sp] - ldrsh r0, [sp, #2] - ldrsh r1, [sp] - cmp r0, #0xff - movgt r0, #0xff - strhgt r0, [sp, #2] - ldrh r0, [sp, #6] - strb r0, [r6] - ldrsh r0, [sp, #2] - strb r1, [r5] - strb r0, [r4] - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_02010F6C: .4byte 0x02098125 -_02010F70: .4byte 0x020980E8 -_02010F74: .4byte 0x020980EA -_02010F78: .4byte 0x020980E9 -_02010F7C: .4byte 0x020980EB - arm_func_end ApplyExclusiveItemStatBoosts - - arm_func_start SetExclusiveItemEffect -SetExclusiveItemEffect: @ 0x02010F80 - cmp r1, #0 - bxeq lr - lsr ip, r1, #5 - ldr r3, [r0, ip, lsl #2] - sub r1, r1, ip, lsl #5 - mov r2, #1 - orr r1, r3, r2, lsl r1 - str r1, [r0, ip, lsl #2] - bx lr - arm_func_end SetExclusiveItemEffect - - arm_func_start ExclusiveItemEffectFlagTest -ExclusiveItemEffectFlagTest: @ 0x02010FA4 - lsr r3, r1, #5 - ldr r2, [r0, r3, lsl #2] - sub r0, r1, r3, lsl #5 - mov r1, #1 - tst r2, r1, lsl r0 - moveq r1, #0 - and r0, r1, #0xff - bx lr - arm_func_end ExclusiveItemEffectFlagTest - - arm_func_start IsExclusiveItemIdForMonster -IsExclusiveItemIdForMonster: @ 0x02010FC4 - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov sb, r0 - mov r8, r1 - mov r7, r2 - mov r6, r3 - bl GetItemCategory - cmp r0, #0xf - movne r0, #0 - popne {r3, r4, r5, r6, r7, r8, sb, pc} - cmp r8, #0x258 - mov r5, #0 - ble _02011000 - mov r0, r8 - bl FemaleToMaleForm - mov r8, r0 -_02011000: - mov r0, sb - bl GetExclusiveItemType - movs r4, r0 - moveq r5, #0 - beq _0201108C - sub r0, r4, #1 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, #3 - mov r0, sb - bhi _0201104C - bl GetExclusiveItemParameter - and r0, r0, #0xff - cmp r7, r0 - cmpne r6, r0 - moveq r5, #1 - b _0201108C -_0201104C: - bl GetExclusiveItemParameter - mov r6, r0 - cmp r4, #9 - bne _02011068 - cmp r8, r6 - moveq r5, #1 - b _0201108C -_02011068: - cmp r4, #0xa - bne _0201107C - cmp r8, r6 - moveq r5, #1 - b _0201108C -_0201107C: - mov r0, r8 - bl GetFamilyIndex - cmp r6, r0 - moveq r5, #1 -_0201108C: - mov r0, r5 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end IsExclusiveItemIdForMonster - - arm_func_start IsExclusiveItemForMonster -IsExclusiveItemForMonster: @ 0x02011094 - push {r3, lr} - ldrb ip, [r0] - tst ip, #1 - movne lr, #1 - moveq lr, #0 - tst lr, #0xff - moveq r0, #0 - popeq {r3, pc} - tst ip, #8 - movne ip, #1 - moveq ip, #0 - tst ip, #0xff - movne r0, #0 - popne {r3, pc} - ldrsh r0, [r0, #4] - bl IsExclusiveItemIdForMonster - pop {r3, pc} - arm_func_end IsExclusiveItemForMonster - - arm_func_start BagHasExclusiveItemTypeForMonster -BagHasExclusiveItemTypeForMonster: @ 0x020110D8 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sl, r0 - mov sb, r1 - mov r8, r2 - mov r7, r3 - bl GetCurrentBagCapacity - lsl r4, r0, #0x10 - mov r5, #0 - ldr fp, _02011164 @ =0x02098124 - b _02011154 -_02011100: - ldr r0, _02011168 @ =0x020AF6B8 - mov r1, sb - ldr r0, [r0] - mov r2, r8 - ldr r3, [r0, #0x384] - mov r0, #6 - smlabb r6, r5, r0, r3 - mov r0, r6 - mov r3, r7 - bl IsExclusiveItemForMonster - cmp r0, #0 - beq _02011148 - ldrsh r0, [r6, #4] - bl GetExclusiveItemOffset - ldrb r0, [fp, r0, lsl #1] - cmp sl, r0 - ldrsheq r0, [r6, #4] - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_02011148: - add r0, r5, #1 - lsl r0, r0, #0x10 - asr r5, r0, #0x10 -_02011154: - cmp r5, r4, asr #16 - blt _02011100 - mov r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02011164: .4byte 0x02098124 -_02011168: .4byte 0x020AF6B8 - arm_func_end BagHasExclusiveItemTypeForMonster -_0201116C: - .byte 0xF8, 0x4F, 0x2D, 0xE9 - .byte 0x00, 0xA0, 0xA0, 0xE1, 0x01, 0x90, 0xA0, 0xE1, 0x02, 0x80, 0xA0, 0xE1, 0x03, 0xB0, 0xA0, 0xE1 - .byte 0x28, 0x70, 0x9D, 0xE5, 0xFE, 0xF6, 0xFF, 0xEB, 0x00, 0x48, 0xA0, 0xE1, 0x00, 0x50, 0xA0, 0xE3 - .byte 0x1C, 0x00, 0x00, 0xEA, 0x7C, 0x00, 0x9F, 0xE5, 0x08, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0x90, 0xE5 - .byte 0x0B, 0x20, 0xA0, 0xE1, 0x84, 0x33, 0x90, 0xE5, 0x06, 0x00, 0xA0, 0xE3, 0x85, 0x30, 0x06, 0xE1 - .byte 0x06, 0x00, 0xA0, 0xE1, 0x07, 0x30, 0xA0, 0xE1, 0xB5, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x0D, 0x00, 0x00, 0x0A, 0xF4, 0x00, 0xD6, 0xE1, 0x1C, 0xFF, 0xFF, 0xEB, 0x48, 0x10, 0x9F, 0xE5 - .byte 0x80, 0x00, 0xD1, 0xE7, 0x00, 0x00, 0x59, 0xE1, 0x07, 0x00, 0x00, 0x1A, 0xB0, 0x10, 0xD6, 0xE1 - .byte 0x01, 0x00, 0xA0, 0xE3, 0xB0, 0x10, 0xCA, 0xE1, 0xB2, 0x10, 0xD6, 0xE1, 0xB2, 0x10, 0xCA, 0xE1 - .byte 0xB4, 0x10, 0xD6, 0xE1, 0xB4, 0x10, 0xCA, 0xE1, 0xF8, 0x8F, 0xBD, 0xE8, 0x01, 0x00, 0x85, 0xE2 - .byte 0x00, 0x08, 0xA0, 0xE1, 0x40, 0x58, 0xA0, 0xE1, 0x44, 0x08, 0x55, 0xE1, 0xE0, 0xFF, 0xFF, 0xBA - .byte 0x00, 0x00, 0xA0, 0xE3, 0xF8, 0x8F, 0xBD, 0xE8, 0xB8, 0xF6, 0x0A, 0x02, 0x24, 0x81, 0x09, 0x02 - - arm_func_start FUN_02011220 -FUN_02011220: @ 0x02011220 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x68 - mov r8, r0 - mov r7, r1 - mov fp, r2 - str r3, [sp, #4] - bl GetCurrentBagCapacity - lsl sb, r0, #0x10 - mov r0, r8 - mov r1, #0x18 - mov r5, #0 - bl MemZero - mov r4, r5 - b _0201130C -_02011258: - ldr r1, _0201138C @ =0x020AF6B8 - mov r0, #6 - ldr r1, [r1] - smulbb r6, r4, r0 - ldr r0, [r1, #0x384] - ldr r3, [sp, #4] - mov r1, r7 - mov r2, fp - add r0, r0, r6 - bl IsExclusiveItemForMonster - cmp r0, #0 - beq _02011300 - ldr r0, _0201138C @ =0x020AF6B8 - mov lr, #0 - mov ip, lr - ldr sl, [r0] - b _020112D8 -_0201129C: - ldr r3, [sl, #0x384] - lsl r1, ip, #1 - add r0, sp, #8 - ldrsh r2, [r0, r1] - add r0, r3, r6 - ldrsh r1, [r0, #4] - mov r0, #6 - smlabb r0, r2, r0, r3 - ldrsh r0, [r0, #4] - cmp r0, r1 - moveq lr, #1 - beq _020112E0 - add r0, ip, #1 - lsl r0, r0, #0x10 - asr ip, r0, #0x10 -_020112D8: - cmp ip, r5 - blt _0201129C -_020112E0: - cmp lr, #0 - bne _02011300 - add r0, r5, #1 - lsl r1, r0, #0x10 - lsl r2, r5, #1 - add r0, sp, #8 - strh r4, [r0, r2] - asr r5, r1, #0x10 -_02011300: - add r0, r4, #1 - lsl r0, r0, #0x10 - asr r4, r0, #0x10 -_0201130C: - cmp r4, sb, asr #16 - blt _02011258 - mov sl, #0 - add r4, r8, #3 - add r7, sp, #8 - ldr r6, _02011390 @ =0x02098124 - ldr fp, _0201138C @ =0x020AF6B8 - b _0201137C -_0201132C: - lsl r0, sl, #1 - ldr r2, [fp] - ldrsh r1, [r7, r0] - ldr r2, [r2, #0x384] - mov r0, #6 - smlabb sb, r1, r0, r2 - ldrsh r0, [sb, #4] - bl GetExclusiveItemOffset - ldrb r1, [r6, r0, lsl #1] - add r0, r8, #4 - bl SetExclusiveItemEffect - str r4, [sp] - ldrsh r0, [sb, #4] - mov r1, r8 - add r2, r8, #1 - add r3, r8, #2 - bl ApplyExclusiveItemStatBoosts - add r0, sl, #1 - lsl r0, r0, #0x10 - asr sl, r0, #0x10 -_0201137C: - cmp sl, r5 - blt _0201132C - add sp, sp, #0x68 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0201138C: .4byte 0x020AF6B8 -_02011390: .4byte 0x02098124 - arm_func_end FUN_02011220 - - arm_func_start FUN_02011394 -FUN_02011394: @ 0x02011394 - push {r3, r4, r5, lr} - mov r5, r0 - add r0, r5, #4 - mov r1, #0x4c - mov r4, #0 - bl ExclusiveItemEffectFlagTest - cmp r0, #0 - ldrne r0, _0201141C @ =0x020A1878 - mov r1, #0x4d - ldrshne r0, [r0] - addne r0, r4, r0 - lslne r0, r0, #0x10 - asrne r4, r0, #0x10 - add r0, r5, #4 - bl ExclusiveItemEffectFlagTest - cmp r0, #0 - ldrne r0, _0201141C @ =0x020A1878 - mov r1, #0x4e - ldrshne r0, [r0] - addne r0, r4, r0, lsl #1 - lslne r0, r0, #0x10 - asrne r4, r0, #0x10 - add r0, r5, #4 - bl ExclusiveItemEffectFlagTest - cmp r0, #0 - beq _02011414 - ldr r0, _0201141C @ =0x020A1878 - ldrsh r0, [r0] - add r0, r0, r0, lsl #1 - add r0, r4, r0 - lsl r0, r0, #0x10 - asr r4, r0, #0x10 -_02011414: - mov r0, r4 - pop {r3, r4, r5, pc} - .align 2, 0 -_0201141C: .4byte 0x020A1878 - arm_func_end FUN_02011394 - - arm_func_start FUN_02011420 -FUN_02011420: @ 0x02011420 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sl, r0 - mov r1, #0 - bl GetType - mov r4, r0 - mov r0, sl - mov r1, #1 - bl GetType - mov r5, r0 - mov r0, #8 - mov r1, #0 - bl MemAlloc - mov r6, r0 - mov r0, #0xaf0 - mov r1, #0 - bl MemAlloc - ldr fp, _020114F4 @ =0x00000578 - mov r8, r0 - mov sb, #0 - mov r7, #0x1bc -_02011470: - mov r0, r7 - mov r1, sl - mov r2, r4 - mov r3, r5 - bl IsExclusiveItemIdForMonster - cmp r0, #0 - addne r0, sb, #1 - lslne r1, sb, #1 - lslne r0, r0, #0x10 - asrne sb, r0, #0x10 - add r0, r7, #1 - lsl r0, r0, #0x10 - strhne r7, [r8, r1] - cmp fp, r0, asr #16 - asr r7, r0, #0x10 - bgt _02011470 - lsl r0, sb, #1 - mov r1, #0 - bl MemAlloc - stm r6, {r0, sb} - mov r3, #0 - b _020114DC -_020114C8: - lsl r2, r3, #1 - ldrsh r1, [r8, r2] - ldr r0, [r6] - add r3, r3, #1 - strh r1, [r0, r2] -_020114DC: - cmp r3, sb - blt _020114C8 - mov r0, r8 - bl MemFree - mov r0, r6 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_020114F4: .4byte 0x00000578 - arm_func_end FUN_02011420 - - arm_func_start FUN_020114f8 -FUN_020114f8: @ 0x020114F8 - push {r4, lr} - mov r4, r0 - ldr r0, [r4] - cmp r0, #0 - popeq {r4, pc} - ldr r0, [r0] - bl MemFree - ldr r0, [r4] - bl MemFree - mov r0, #0 - str r0, [r4] - pop {r4, pc} - arm_func_end FUN_020114f8 - - arm_func_start FUN_02011528 -FUN_02011528: @ 0x02011528 - stmdb sp!, {lr} - sub sp, sp, #0xc - mov ip, r0 - stm sp, {r1, r2, r3} - add r0, ip, #4 - add r1, ip, #8 - add r2, ip, #0xc - add r3, ip, #0xe - bl ApplyGummiBoostsGroundMode - add sp, sp, #0xc - ldm sp!, {pc} - arm_func_end FUN_02011528 - - arm_func_start FUN_02011554 -FUN_02011554: @ 0x02011554 - stmdb sp!, {lr} - sub sp, sp, #0xc - mov ip, r0 - stm sp, {r1, r2, r3} - add r0, ip, #0xc - add r1, ip, #6 - add r2, ip, #0x12 - add r3, ip, #0x14 - bl ApplyGummiBoostsGroundMode - add sp, sp, #0xc - ldm sp!, {pc} - arm_func_end FUN_02011554 - - arm_func_start FUN_02011580 -FUN_02011580: @ 0x02011580 - push {r3, r4, r5, r6, r7, lr} - ldr r2, _020115B8 @ =0x022C45F4 - mov r7, r0 - ldrsh r5, [r2] - ldrsh r4, [r7, #0xa] - mov r6, r1 - add r0, r7, #0xa - mov r1, r5 - bl FUN_02054fb8 - cmp r6, #0 - strne r5, [r6] - ldrsh r0, [r7, #0xa] - sub r0, r0, r4 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_020115B8: .4byte 0x022C45F4 - arm_func_end FUN_02011580 -_020115BC: - .byte 0xF8, 0x40, 0x2D, 0xE9 - .byte 0x2C, 0x20, 0x9F, 0xE5, 0x00, 0x70, 0xA0, 0xE1, 0xF0, 0x50, 0xD2, 0xE1, 0xFA, 0x40, 0xD7, 0xE1 - .byte 0x01, 0x60, 0xA0, 0xE1, 0x0A, 0x00, 0x87, 0xE2, 0x05, 0x10, 0xA0, 0xE1, 0x75, 0x0E, 0x01, 0xEB - .byte 0x00, 0x00, 0x56, 0xE3, 0x00, 0x50, 0x86, 0x15, 0xFA, 0x00, 0xD7, 0xE1, 0x04, 0x00, 0x40, 0xE0 - .byte 0xF8, 0x80, 0xBD, 0xE8, 0xF8, 0x44, 0x2C, 0x02 - - arm_func_start ProcessGinsengOverworld -ProcessGinsengOverworld: @ 0x020115F8 - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov r5, r0 - mov r0, #0x64 - mov sb, r1 - mov r8, r2 - mvn r4, #0 - mov r6, #0 - bl RandInt - ldr r1, _02011708 @ =0x022C46C0 - mov ip, #0 - ldrsh r1, [r1] - mov r2, #1 - cmp r0, r1 - movlt r7, #3 - movge r7, #1 - mov r1, ip - mov r0, #6 - b _02011664 -_02011640: - mla r3, ip, r0, r5 - ldrb r3, [r3, #0x22] - tst r3, #1 - movne r3, r2 - moveq r3, r1 - tst r3, #0xff - movne r4, ip - bne _0201166C - add ip, ip, #1 -_02011664: - cmp ip, #4 - blt _02011640 -_0201166C: - mvn r0, #0 - cmp r4, r0 - bne _02011698 - cmp sb, #0 - movne r0, #0 - strhne r0, [sb] - cmp r8, #0 - movne r0, #0 - strne r0, [r8] - mov r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, pc} -_02011698: - add r1, r5, #0x22 - mov r0, #6 - mla r5, r4, r0, r1 - mov r0, r5 - bl GetMoveBasePowerGround - cmp r0, #0 - beq _020116E4 - mov r0, r5 - ldrb r4, [r5, #4] - bl GetMoveMaxGinsengBoostGround - ldrb r1, [r5, #4] - add r2, r1, r7 - and r1, r2, #0xff - strb r2, [r5, #4] - cmp r1, r0 - strbge r0, [r5, #4] - ldrb r0, [r5, #4] - cmp r4, r0 - movne r6, #1 -_020116E4: - cmp sb, #0 - ldrhne r0, [r5, #2] - strhne r0, [sb] - cmp r8, #0 - strne r7, [r8] - cmp r6, #0 - moveq r7, #0 - mov r0, r7 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_02011708: .4byte 0x022C46C0 - arm_func_end ProcessGinsengOverworld -_0201170C: - .byte 0xF8, 0x40, 0x2D, 0xE9 - .byte 0x2C, 0x20, 0x9F, 0xE5, 0x00, 0x70, 0xA0, 0xE1, 0xF0, 0x50, 0xD2, 0xE1, 0x0C, 0x40, 0xD7, 0xE5 - .byte 0x01, 0x60, 0xA0, 0xE1, 0x0C, 0x00, 0x87, 0xE2, 0x05, 0x10, 0xA0, 0xE1, 0x2E, 0x0E, 0x01, 0xEB - .byte 0x00, 0x00, 0x56, 0xE3, 0x00, 0x50, 0x86, 0x15, 0x0C, 0x00, 0xD7, 0xE5, 0x04, 0x00, 0x40, 0xE0 - .byte 0xF8, 0x80, 0xBD, 0xE8, 0x20, 0x44, 0x2C, 0x02, 0xF8, 0x40, 0x2D, 0xE9, 0x2C, 0x20, 0x9F, 0xE5 - .byte 0x00, 0x70, 0xA0, 0xE1, 0xF0, 0x50, 0xD2, 0xE1, 0x0D, 0x40, 0xD7, 0xE5, 0x01, 0x60, 0xA0, 0xE1 - .byte 0x0D, 0x00, 0x87, 0xE2, 0x05, 0x10, 0xA0, 0xE1, 0x1F, 0x0E, 0x01, 0xEB, 0x00, 0x00, 0x56, 0xE3 - .byte 0x00, 0x50, 0x86, 0x15, 0x0D, 0x00, 0xD7, 0xE5, 0x04, 0x00, 0x40, 0xE0, 0xF8, 0x80, 0xBD, 0xE8 - .byte 0xCC, 0x46, 0x2C, 0x02, 0xF8, 0x40, 0x2D, 0xE9, 0x2C, 0x20, 0x9F, 0xE5, 0x00, 0x70, 0xA0, 0xE1 - .byte 0xF0, 0x50, 0xD2, 0xE1, 0x0E, 0x40, 0xD7, 0xE5, 0x01, 0x60, 0xA0, 0xE1, 0x0E, 0x00, 0x87, 0xE2 - .byte 0x05, 0x10, 0xA0, 0xE1, 0x1D, 0x0E, 0x01, 0xEB, 0x00, 0x00, 0x56, 0xE3, 0x00, 0x50, 0x86, 0x15 - .byte 0x0E, 0x00, 0xD7, 0xE5, 0x04, 0x00, 0x40, 0xE0, 0xF8, 0x80, 0xBD, 0xE8, 0xC8, 0x46, 0x2C, 0x02 - .byte 0xF8, 0x40, 0x2D, 0xE9, 0x2C, 0x20, 0x9F, 0xE5, 0x00, 0x70, 0xA0, 0xE1, 0xF0, 0x50, 0xD2, 0xE1 - .byte 0x0F, 0x40, 0xD7, 0xE5, 0x01, 0x60, 0xA0, 0xE1, 0x0F, 0x00, 0x87, 0xE2, 0x05, 0x10, 0xA0, 0xE1 - .byte 0x0E, 0x0E, 0x01, 0xEB, 0x00, 0x00, 0x56, 0xE3, 0x00, 0x50, 0x86, 0x15, 0x0F, 0x00, 0xD7, 0xE5 - .byte 0x04, 0x00, 0x40, 0xE0, 0xF8, 0x80, 0xBD, 0xE8, 0xC4, 0x46, 0x2C, 0x02, 0x70, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x60, 0xA0, 0xE1, 0xF8, 0x40, 0xD6, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x08, 0x00, 0x86, 0xE2 - .byte 0x0A, 0x10, 0xA0, 0xE3, 0x0E, 0x0E, 0x01, 0xEB, 0x00, 0x00, 0x55, 0xE3, 0x0A, 0x00, 0xA0, 0x13 - .byte 0x00, 0x00, 0x85, 0x15, 0xF8, 0x00, 0xD6, 0xE1, 0x04, 0x00, 0x40, 0xE0, 0x70, 0x80, 0xBD, 0xE8 - .byte 0x08, 0x40, 0x2D, 0xE9, 0xF4, 0x00, 0xD0, 0xE1, 0xE8, 0x0C, 0x01, 0xEB, 0x1E, 0x0E, 0x50, 0xE3 - .byte 0xB9, 0x00, 0x50, 0x13, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13, 0x08, 0x80, 0xBD, 0xE8 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0xF8, 0x40, 0xD6, 0xE1 - .byte 0xF2, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x86, 0xE2 - .byte 0x0A, 0x10, 0xA0, 0xE3, 0xF6, 0x0D, 0x01, 0xEB, 0x00, 0x00, 0x55, 0xE3, 0x0A, 0x00, 0xA0, 0x13 - .byte 0x01, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x55, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x00, 0x00, 0x85, 0x15 - .byte 0xF8, 0x00, 0xD6, 0xE1, 0x04, 0x00, 0x40, 0xE0, 0x70, 0x80, 0xBD, 0xE8 - - arm_func_start ApplyGummiBoostsGroundMode -ApplyGummiBoostsGroundMode: @ 0x0201189C - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sl, r0 - ldrsh r0, [sp, #0x28] - mov r4, #0 - ldr r6, [sp, #0x30] - sub r5, r4, #1 - strh r5, [r6] - mov sb, r1 - mov r8, r2 - mov r7, r3 - sub fp, r0, #0x77 - strh r4, [r6, #2] - bl IsGummi - cmp r0, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldrsh r0, [sp, #0x28] - cmp r0, #0x88 - bne _020118FC - ldr r1, _02011AA0 @ =0x020A1890 - ldr r0, _02011AA4 @ =0x020A18B0 - ldrsh r1, [r1] - ldrsh r5, [r0] - add r4, r4, r1 - b _02011950 -_020118FC: - ldrsh r0, [sl] - ldr r2, _02011AA8 @ =0x020A1888 - mov r1, r4 - ldrsh r5, [r2] - bl GetType - str r0, [sp] - ldrsh r0, [sl] - mov r1, #1 - bl GetType - add sl, fp, #1 - ldr fp, _02011AAC @ =0x020A22B0 - ldr r1, [sp] - mov r2, #0x24 - mla r3, r1, r2, fp - mla r1, r0, r2, fp - lsl sl, sl, #1 - ldrsh r2, [sl, r3] - ldrsh r0, [sl, r1] - cmp r2, r0 - addgt r4, r4, r2 - addle r4, r4, r0 -_02011950: - ldrsh r1, [sb] - add r0, r1, r4 - strh r0, [sb] - ldrsh r0, [sb] - cmp r0, #1 - sub r2, r0, r1 - movlt r0, #1 - strhlt r0, [sb] - ldrsh r1, [sb] - ldr r0, _02011AB0 @ =0x000003E7 - cmp r1, r0 - strhgt r0, [sb] - cmp r2, #9 - movge r1, #0 - bge _020119A4 - cmp r2, #5 - movge r1, #1 - bge _020119A4 - cmp r2, #3 - movge r1, #2 - movlt r1, #3 -_020119A4: - ldrb r0, [sp, #0x2c] - strh r1, [r6] - cmp r0, #0 - popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - cmp r1, #0 - bne _020119D4 - mov r0, #0x10 - bl RandIntSafe - cmp r0, #0xa - moveq r0, #0xf - strheq r0, [r6, #2] - beq _020119EC -_020119D4: - mov r0, #4 - bl RandIntSafe - ldr r1, _02011AB4 @ =0x0209889C - lsl r0, r0, #1 - ldrh r0, [r1, r0] - strh r0, [r6, #2] -_020119EC: - ldrh r1, [r6, #2] - tst r1, #1 - beq _02011A18 - ldrb r0, [r8] - cmp r0, #0xff - bichs r0, r1, #1 - strhhs r0, [r6, #2] - bhs _02011A18 - mov r0, r8 - mov r1, r5 - bl FUN_02054fec -_02011A18: - ldrh r1, [r6, #2] - tst r1, #2 - beq _02011A44 - ldrb r0, [r8, #1] - cmp r0, #0xff - bichs r0, r1, #2 - strhhs r0, [r6, #2] - bhs _02011A44 - mov r1, r5 - add r0, r8, #1 - bl FUN_02054fec -_02011A44: - ldrh r1, [r6, #2] - tst r1, #4 - beq _02011A70 - ldrb r0, [r7] - cmp r0, #0xff - bichs r0, r1, #4 - strhhs r0, [r6, #2] - bhs _02011A70 - mov r0, r7 - mov r1, r5 - bl FUN_02055020 -_02011A70: - ldrh r1, [r6, #2] - tst r1, #8 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldrb r0, [r7, #1] - cmp r0, #0xff - bichs r0, r1, #8 - strhhs r0, [r6, #2] - pophs {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - mov r1, r5 - add r0, r7, #1 - bl FUN_02055020 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02011AA0: .4byte 0x020A1890 -_02011AA4: .4byte 0x020A18B0 -_02011AA8: .4byte 0x020A1888 -_02011AAC: .4byte 0x020A22B0 -_02011AB0: .4byte 0x000003E7 -_02011AB4: .4byte 0x0209889C - arm_func_end ApplyGummiBoostsGroundMode - - arm_func_start FUN_02011ab8 -FUN_02011ab8: @ 0x02011AB8 - push {r3, lr} - ldr ip, _02011B38 @ =0x020AF6B8 - mov r0, #0 - ldr r1, [ip] - mov r2, r0 - add r1, r1, #0x1000 - strb r0, [r1, #0x3aa] - ldr r1, [ip] - sub lr, r0, #1 - add r1, r1, #0x1000 - str r0, [r1, #0x3ac] - ldr r3, [ip] - mov r1, #0x6d - add r3, r3, #0x1300 - strh r0, [r3, #0xb0] - ldr r3, [ip] - add r3, r3, #0x1300 - strh lr, [r3, #0xb2] - bl SaveScriptVariableValue - mov r0, #0 - mov r2, r0 - mov r1, #0x6b - bl SaveScriptVariableValue - mov r0, #0 - mov r2, r0 - mov r1, #0x6c - bl SaveScriptVariableValue - mov r0, #0 - mov r2, r0 - mov r1, #0x6a - bl SaveScriptVariableValue - pop {r3, pc} - .align 2, 0 -_02011B38: .4byte 0x020AF6B8 - arm_func_end FUN_02011ab8 - - arm_func_start FUN_02011b3c -FUN_02011b3c: @ 0x02011B3C - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x1c - mov sl, r0 - mov r8, r1 - mov r7, r2 - mov r0, #8 - mov r1, #6 - bl MemAlloc - mov sb, r0 - mov r0, sl - mov r1, r8 - mov r2, r7 - bl FUN_020128dc - movs r1, r0 - str r0, [sb, #4] - moveq r0, #0 - streq r0, [sb] - beq _02011CE8 - mov r0, #0x18 - mul r0, r1, r0 - mov r1, #6 - bl MemAlloc - str r0, [sb] - ldr r2, [sb, #4] - mov r1, #0x18 - mul r1, r2, r1 - bl MemZero - mov r5, #0 - mov r6, r5 - mov r4, #0x18 - b _02011BF8 -_02011BB8: - str r7, [sp] - ldr r0, [sb] - mov r1, r6 - mla r0, r5, r4, r0 - mov r2, sl - mov r3, r8 - bl FUN_0201297c - cmp r0, #0 - beq _02011BEC - ldr r0, [sb, #4] - add r5, r5, #1 - cmp r5, r0 - beq _02011C00 -_02011BEC: - add r0, r6, #1 - lsl r0, r0, #0x10 - asr r6, r0, #0x10 -_02011BF8: - cmp r6, #0x18 - blt _02011BB8 -_02011C00: - mov r8, #0 - b _02011CDC -_02011C08: - mov r0, #0x18 - mul sl, r8, r0 - ldr r0, [sb] - mvn r6, #0 - ldr r0, [r0, sl] - ldrsh r0, [r0] - bl thunk_FUN_0200eb64 - mov fp, r0 - add r7, r8, #1 - b _02011C68 -_02011C30: - mov r0, #0x18 - mul r4, r7, r0 - ldr r5, [sb] - ldr r0, [r5, r4] - ldrsh r0, [r0] - bl thunk_FUN_0200eb64 - cmp fp, r0 - ble _02011C64 - ldr r0, [r5, r4] - mov r6, r7 - ldrsh r0, [r0] - bl thunk_FUN_0200eb64 - mov fp, r0 -_02011C64: - add r7, r7, #1 -_02011C68: - ldr r0, [sb, #4] - cmp r7, r0 - blt _02011C30 - mvn r0, #0 - cmp r6, r0 - beq _02011CD8 - ldr r4, [sb] - mov r0, #0x18 - add fp, r4, sl - mul r5, r6, r0 - add r7, sp, #4 - mov sl, fp - mov r6, r7 - ldm sl!, {r0, r1, r2, r3} - stm r7!, {r0, r1, r2, r3} - ldm sl, {r0, r1} - stm r7, {r0, r1} - add r4, r4, r5 - ldm r4!, {r0, r1, r2, r3} - stm fp!, {r0, r1, r2, r3} - ldm r4, {r0, r1} - stm fp, {r0, r1} - ldr r4, [sb] - ldm r6!, {r0, r1, r2, r3} - add r4, r4, r5 - stm r4!, {r0, r1, r2, r3} - ldm r6, {r0, r1} - stm r4, {r0, r1} -_02011CD8: - add r8, r8, #1 -_02011CDC: - ldr r0, [sb, #4] - cmp r8, r0 - blt _02011C08 -_02011CE8: - mov r0, sb - add sp, sp, #0x1c - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_02011b3c - - arm_func_start FUN_02011cf4 -FUN_02011cf4: @ 0x02011CF4 - push {r3, r4, r5, r6, r7, lr} - mov r7, r1 - mov r6, r2 - cmp r0, #2 - bne _02011D90 - ldr r0, _02011D98 @ =0x020AF6B8 - mvn r1, #0 - ldr r0, [r0] - add r0, r0, #0x1300 - ldrsh r5, [r0, #0xb2] - cmp r5, r1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - moveq r0, #0 - popeq {r3, r4, r5, r6, r7, pc} - mov r0, #8 - mov r1, #6 - bl MemAlloc - mov r4, r0 - mov r1, #1 - mov r0, #0x18 - smulbb r0, r1, r0 - str r1, [r4, #4] - mov r1, #6 - bl MemAlloc - str r0, [r4] - ldr r2, [r4, #4] - mov r1, #0x18 - mul r1, r2, r1 - bl MemZero - str r6, [sp] - ldr r0, [r4] - mov r1, r5 - mov r3, r7 - mov r2, #2 - bl FUN_0201297c - mov r0, r4 - pop {r3, r4, r5, r6, r7, pc} -_02011D90: - bl FUN_02011b3c - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02011D98: .4byte 0x020AF6B8 - arm_func_end FUN_02011cf4 -_02011D9C: - .byte 0x0C, 0xC0, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE1, 0x08, 0x20, 0x9F, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1 - .byte 0x3C, 0x1B, 0x01, 0x02, 0x3F, 0x42, 0x0F, 0x00 - - arm_func_start FUN_02011db8 -FUN_02011db8: @ 0x02011DB8 - push {r4, lr} - mov r4, r0 - ldr r0, [r4] - cmp r0, #0 - popeq {r4, pc} - ldr r0, [r0] - cmp r0, #0 - beq _02011DDC - bl MemFree -_02011DDC: - ldr r0, [r4] - bl MemFree - mov r0, #0 - str r0, [r4] - pop {r4, pc} - arm_func_end FUN_02011db8 -_02011DF0: - .byte 0x00, 0x00, 0x90, 0xE5, 0xF0, 0x00, 0xD0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x90, 0xE5 - .byte 0x04, 0x00, 0x90, 0xE5, 0x01, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13 - .byte 0xFF, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x90, 0xE5, 0xB2, 0x01, 0xD0, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xC0, 0xA0, 0xE3, 0x0C, 0x30, 0xA0, 0xE1, 0x09, 0x00, 0x00, 0xEA - .byte 0x00, 0x20, 0x90, 0xE5, 0x03, 0x11, 0xA0, 0xE1, 0x14, 0x20, 0x82, 0xE2, 0xF1, 0x10, 0x92, 0xE1 - .byte 0x03, 0x21, 0x82, 0xE0, 0x00, 0x00, 0x51, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0xF2, 0x10, 0xD2, 0xE1 - .byte 0x01, 0x30, 0x83, 0xE2, 0x01, 0xC0, 0x8C, 0xE0, 0x04, 0x00, 0x53, 0xE3, 0xF3, 0xFF, 0xFF, 0xBA - .byte 0x0C, 0x00, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x40, 0x2D, 0xE9, 0x00, 0xE0, 0xA0, 0xE3 - .byte 0x0F, 0x00, 0x00, 0xEA, 0x00, 0x20, 0x90, 0xE5, 0x0E, 0x11, 0xA0, 0xE1, 0x14, 0x20, 0x82, 0xE2 - .byte 0xF1, 0x10, 0x92, 0xE1, 0x0E, 0xC1, 0x82, 0xE0, 0x00, 0x00, 0x51, 0xE3, 0x0A, 0x00, 0x00, 0x0A - .byte 0x8E, 0x10, 0x80, 0xE0, 0xF4, 0x30, 0xD1, 0xE1, 0xFC, 0x20, 0xD1, 0xE1, 0xF2, 0x10, 0xDC, 0xE1 - .byte 0x02, 0x20, 0x83, 0xE0, 0x01, 0x00, 0x52, 0xE1, 0x00, 0x00, 0xA0, 0xB3, 0x08, 0x80, 0xBD, 0xB8 - .byte 0x01, 0xE0, 0x8E, 0xE2, 0x04, 0x00, 0x5E, 0xE3, 0xED, 0xFF, 0xFF, 0xBA, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x08, 0x80, 0xBD, 0xE8, 0x00, 0x10, 0x90, 0xE5, 0x14, 0x00, 0x9F, 0xE5, 0xF4, 0x11, 0xD1, 0xE1 - .byte 0x00, 0x00, 0x51, 0xE1, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13, 0xFF, 0x00, 0x00, 0xE2 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x78, 0x05, 0x00, 0x00, 0x20, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xE0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0x13, 0x0C, 0x80, 0xE2, 0xF2, 0x0B, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1 - .byte 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0xFF, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xB8, 0xF6, 0x0A, 0x02, 0x10, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5 - .byte 0x13, 0x0C, 0x80, 0xE2, 0xB2, 0x1B, 0xC0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xB8, 0xF6, 0x0A, 0x02 - .byte 0x0C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x0A, 0x80, 0xE2, 0xAC, 0x03, 0x90, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xB8, 0xF6, 0x0A, 0x02, 0x0C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x01, 0x0A, 0x80, 0xE2, 0xAA, 0x03, 0xD0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xB8, 0xF6, 0x0A, 0x02 - .byte 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x00, 0xA0, 0xE3, 0x6C, 0x10, 0xA0, 0xE3, 0x5E, 0xE5, 0x00, 0xEB - .byte 0x01, 0x40, 0x80, 0xE2, 0x20, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x01, 0x00, 0x54, 0xE1 - .byte 0x01, 0x40, 0xA0, 0xC1, 0x04, 0x20, 0xA0, 0xE1, 0x6C, 0x10, 0xA0, 0xE3, 0x23, 0xE6, 0x00, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0xE6, 0xF7, 0x00, 0xEB, 0x10, 0x80, 0xBD, 0xE8, 0x3F, 0x42, 0x0F, 0x00 - - arm_func_start FUN_02011fa0 -FUN_02011fa0: @ 0x02011FA0 - push {r3, r4, r5, r6, lr} - sub sp, sp, #4 - mov r0, #0 - mov r1, #0x71 - bl LoadScriptVariableValue - and r0, r0, #0xff - cmp r0, #1 - bne _0201207C - ldr r1, _02012214 @ =0x020AF6B8 - mov r0, #3 - ldr r1, [r1] - add r1, r1, #0x1000 - ldrb r6, [r1, #0x3aa] - ldr r5, [r1, #0x3ac] - mov r1, r6 - mov r2, r5 - bl FUN_020128dc - mov r4, r0 - mov r1, r6 - mov r2, r5 - mov r0, #2 - bl FUN_020128dc - sub r4, r4, r0 - mov r0, #0 - mov r1, #0x6c - bl LoadScriptVariableValue - ldr r1, _02012214 @ =0x020AF6B8 - ldr r1, [r1] - add r1, r1, #0x1000 - str r0, [r1, #0x3ac] - bl FUN_02050c74 - ldr r2, _02012214 @ =0x020AF6B8 - ldr r1, [r2] - add r1, r1, #0x1000 - strb r0, [r1, #0x3aa] - ldr r1, [r2] - mov r0, #3 - add r1, r1, #0x1000 - ldr r5, [r1, #0x3ac] - ldrb r6, [r1, #0x3aa] - mov r2, r5 - mov r1, r6 - bl FUN_020128dc - mov r1, r6 - mov r2, r5 - mov r5, r0 - mov r0, #2 - bl FUN_020128dc - sub r0, r5, r0 - cmp r0, r4 - ble _0201207C - mov r0, #0 - mov r1, #0x6a - mov r2, #1 - bl SaveScriptVariableValue -_0201207C: - mov r0, #0 - mov r1, #0x6b - bl LoadScriptVariableValue - tst r0, #0xff - bne _02012104 - mov r0, #0 - mov r1, #0x6d - bl LoadScriptVariableValue - mov r4, r0 - cmp r4, #5 - bge _02012104 - ldr r0, _02012214 @ =0x020AF6B8 - ldr r1, _02012218 @ =0x020988A4 - ldr r0, [r0] - ldr r1, [r1, r4, lsl #3] - add r0, r0, #0x1000 - ldr r0, [r0, #0x3ac] - cmp r0, r1 - blt _02012104 - bl GetScenarioBalance - ldr r1, _0201221C @ =0x020988A8 - lsl r2, r4, #3 - ldrsh r1, [r1, r2] - and r1, r1, #0xff - cmp r0, r1 - blo _02012104 - add r2, r4, #1 - mov r0, #0 - mov r1, #0x6d - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x6b - mov r2, #1 - bl SaveScriptVariableValue -_02012104: - ldr r0, _02012214 @ =0x020AF6B8 - mvn r1, #0 - ldr r0, [r0] - add r0, r0, #0x1300 - ldrsh r0, [r0, #0xb2] - cmp r0, r1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _0201213C - bl FUN_02012254 - cmp r0, #0 - moveq r2, #0 - beq _02012200 -_0201213C: - ldr r1, _02012214 @ =0x020AF6B8 - mov r0, #2 - ldr r1, [r1] - add r2, r1, #0x1000 - ldrb r1, [r2, #0x3aa] - ldr r2, [r2, #0x3ac] - bl FUN_02011b3c - mov r4, r0 - str r4, [sp] - ldr r0, [r4, #4] - cmp r0, #0 - bne _02012184 - ldr r0, _02012214 @ =0x020AF6B8 - mvn r1, #0 - ldr r0, [r0] - add r0, r0, #0x1300 - strh r1, [r0, #0xb2] - b _020121E0 -_02012184: - bl Rand16Bit - ldr r1, [r4, #4] - bl DivideInt - mov r0, #0x18 - mul r0, r1, r0 - ldr r1, [r4] - ldr r2, _02012220 @ =0x020988CC - ldr r1, [r1, r0] - mov r3, #0 - b _020121C4 -_020121AC: - cmp r2, r1 - beq _020121D0 - add r0, r3, #1 - lsl r0, r0, #0x10 - asr r3, r0, #0x10 - add r2, r2, #0x24 -_020121C4: - cmp r3, #0x18 - blt _020121AC - mvn r3, #0 -_020121D0: - ldr r0, _02012214 @ =0x020AF6B8 - ldr r0, [r0] - add r0, r0, #0x1300 - strh r3, [r0, #0xb2] -_020121E0: - add r0, sp, #0 - bl FUN_02011db8 - ldr r0, _02012214 @ =0x020AF6B8 - mov r1, #2 - ldr r0, [r0] - mov r2, #1 - add r0, r0, #0x1300 - strh r1, [r0, #0xb0] -_02012200: - cmp r2, #0 - bne _0201220C - bl FUN_02012224 -_0201220C: - add sp, sp, #4 - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_02012214: .4byte 0x020AF6B8 -_02012218: .4byte 0x020988A4 -_0201221C: .4byte 0x020988A8 -_02012220: .4byte 0x020988CC - arm_func_end FUN_02011fa0 - - arm_func_start FUN_02012224 -FUN_02012224: @ 0x02012224 - push {r3, lr} - bl FUN_02012254 - cmp r0, #0 - popne {r3, pc} - ldr r0, _02012250 @ =0x020AF6B8 - ldr r0, [r0] - add r0, r0, #0x1300 - ldrsh r1, [r0, #0xb0] - sub r1, r1, #1 - strh r1, [r0, #0xb0] - pop {r3, pc} - .align 2, 0 -_02012250: .4byte 0x020AF6B8 - arm_func_end FUN_02012224 - - arm_func_start FUN_02012254 -FUN_02012254: @ 0x02012254 - ldr r0, _02012278 @ =0x020AF6B8 - ldr r0, [r0] - add r0, r0, #0x1300 - ldrsh r0, [r0, #0xb0] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_02012278: .4byte 0x020AF6B8 - arm_func_end FUN_02012254 -_0201227C: - .byte 0x0C, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x13, 0x0C, 0x80, 0xE2, 0xF0, 0x0B, 0xD0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xB8, 0xF6, 0x0A, 0x02, 0xF8, 0x4F, 0x2D, 0xE9, 0x00, 0xB0, 0xA0, 0xE1, 0x08, 0x00, 0xA0, 0xE3 - .byte 0x06, 0x10, 0xA0, 0xE3, 0xB1, 0xBB, 0xFF, 0xEB, 0x00, 0x80, 0xA0, 0xE3, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x08, 0x70, 0xA0, 0xE1, 0x08, 0x60, 0xA0, 0xE1, 0xAE, 0xF6, 0xFF, 0xEB, 0x00, 0x08, 0xA0, 0xE1 - .byte 0x40, 0x58, 0xA0, 0xE1, 0x00, 0x00, 0x55, 0xE3, 0x15, 0x00, 0x00, 0xDA, 0x05, 0x01, 0xA0, 0xE1 - .byte 0x06, 0x10, 0xA0, 0xE3, 0xA5, 0xBB, 0xFF, 0xEB, 0x06, 0x90, 0xA0, 0xE1, 0x00, 0x80, 0xA0, 0xE1 - .byte 0x09, 0xA0, 0xA0, 0xE1, 0x0C, 0x00, 0x00, 0xEA, 0x09, 0x00, 0xA0, 0xE1, 0x54, 0xF7, 0xFF, 0xEB - .byte 0x0B, 0x10, 0xA0, 0xE1, 0xCD, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x06, 0x11, 0xA0, 0x01 - .byte 0x06, 0x01, 0x88, 0x00, 0xB1, 0x90, 0x88, 0x01, 0x02, 0xA0, 0xC0, 0x05, 0x01, 0x00, 0x89, 0xE2 - .byte 0x00, 0x08, 0xA0, 0xE1, 0x01, 0x60, 0x86, 0x02, 0x40, 0x98, 0xA0, 0xE1, 0x05, 0x00, 0x59, 0xE1 - .byte 0xF0, 0xFF, 0xFF, 0xBA, 0x00, 0x50, 0xA0, 0xE3, 0xB3, 0xF2, 0xFF, 0xEB, 0x00, 0x08, 0xA0, 0xE1 - .byte 0x40, 0x98, 0xA0, 0xE1, 0x00, 0x00, 0x59, 0xE3, 0x17, 0x00, 0x00, 0xDA, 0x09, 0x01, 0xA0, 0xE1 - .byte 0x06, 0x10, 0xA0, 0xE3, 0x89, 0xBB, 0xFF, 0xEB, 0x00, 0x70, 0xA0, 0xE1, 0x05, 0xA0, 0xA0, 0xE1 - .byte 0x0F, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0xA0, 0xE1, 0xFA, 0xF3, 0xFF, 0xEB, 0xF4, 0x00, 0xD0, 0xE1 - .byte 0x0B, 0x10, 0xA0, 0xE1, 0xB1, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x1A - .byte 0x05, 0x01, 0xA0, 0xE1, 0x05, 0x11, 0x87, 0xE0, 0xB0, 0xA0, 0x87, 0xE1, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x02, 0x00, 0xC1, 0xE5, 0x01, 0x50, 0x85, 0xE2, 0x01, 0x00, 0x8A, 0xE2, 0x00, 0x08, 0xA0, 0xE1 - .byte 0x40, 0xA8, 0xA0, 0xE1, 0x09, 0x00, 0x5A, 0xE1, 0xED, 0xFF, 0xFF, 0xBA, 0x00, 0x00, 0x55, 0xE3 - .byte 0x03, 0x00, 0x00, 0x0A, 0xA6, 0x1F, 0xA0, 0xE1, 0x86, 0x0E, 0x61, 0xE0, 0xE0, 0x0E, 0x91, 0xE0 - .byte 0x01, 0x00, 0x00, 0x1A, 0x00, 0x90, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA, 0x08, 0x90, 0x60, 0xE2 - .byte 0x06, 0x00, 0x85, 0xE0, 0x00, 0x00, 0x99, 0xE0, 0x04, 0x00, 0x84, 0xE5, 0x00, 0x00, 0xA0, 0x03 - .byte 0x00, 0x00, 0x84, 0x05, 0x35, 0x00, 0x00, 0x0A, 0x80, 0x01, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE3 - .byte 0x62, 0xBB, 0xFF, 0xEB, 0x00, 0x00, 0x84, 0xE5, 0x00, 0xA0, 0xA0, 0xE3, 0x01, 0x30, 0xA0, 0xE3 - .byte 0x08, 0x00, 0x00, 0xEA, 0x00, 0x30, 0x80, 0xE5, 0x0A, 0x11, 0xA0, 0xE1, 0xF1, 0x20, 0x98, 0xE1 - .byte 0x0A, 0x11, 0x88, 0xE0, 0x01, 0xA0, 0x8A, 0xE2, 0xB4, 0x20, 0xC0, 0xE1, 0x02, 0x10, 0xD1, 0xE5 - .byte 0x07, 0x10, 0xC0, 0xE5, 0x08, 0x00, 0x80, 0xE2, 0x06, 0x00, 0x5A, 0xE1, 0xF4, 0xFF, 0xFF, 0xBA - .byte 0x00, 0x60, 0xA0, 0xE3, 0x02, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0xE0, 0xE3, 0x06, 0x10, 0xA0, 0xE1 - .byte 0x04, 0x00, 0x00, 0xEA, 0x00, 0x30, 0x80, 0xE5, 0xB4, 0x20, 0xC0, 0xE1, 0x07, 0x10, 0xC0, 0xE5 - .byte 0x01, 0x60, 0x86, 0xE2, 0x08, 0x00, 0x80, 0xE2, 0x09, 0x00, 0x56, 0xE1, 0xF8, 0xFF, 0xFF, 0xBA - .byte 0x00, 0x60, 0xA0, 0xE3, 0x06, 0x30, 0xA0, 0xE1, 0x08, 0x00, 0x00, 0xEA, 0x00, 0x30, 0x80, 0xE5 - .byte 0x06, 0x11, 0xA0, 0xE1, 0xF1, 0x20, 0x97, 0xE1, 0x06, 0x11, 0x87, 0xE0, 0x01, 0x60, 0x86, 0xE2 - .byte 0xB4, 0x20, 0xC0, 0xE1, 0x02, 0x10, 0xD1, 0xE5, 0x07, 0x10, 0xC0, 0xE5, 0x08, 0x00, 0x80, 0xE2 - .byte 0x05, 0x00, 0x56, 0xE1, 0xF4, 0xFF, 0xFF, 0xBA, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x94, 0xE5 - .byte 0x03, 0x10, 0xA0, 0xE1, 0x02, 0x00, 0x00, 0xEA, 0x06, 0x10, 0xC2, 0xE5, 0x01, 0x30, 0x83, 0xE2 - .byte 0x08, 0x20, 0x82, 0xE2, 0x04, 0x00, 0x94, 0xE5, 0x00, 0x00, 0x53, 0xE1, 0xF9, 0xFF, 0xFF, 0xBA - .byte 0x00, 0x00, 0x57, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x07, 0x00, 0xA0, 0xE1, 0x31, 0xBB, 0xFF, 0xEB - .byte 0x00, 0x00, 0x58, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x08, 0x00, 0xA0, 0xE1, 0x2D, 0xBB, 0xFF, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0xF8, 0x8F, 0xBD, 0xE8, 0x08, 0x40, 0x2D, 0xE9, 0x00, 0x10, 0x90, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0xF4, 0x00, 0xD0, 0xE1, 0x95, 0xF3, 0xFF, 0xEB - .byte 0xF4, 0x00, 0xD0, 0xE1, 0x08, 0x80, 0xBD, 0xE8, 0x01, 0x00, 0x51, 0xE3, 0x00, 0x00, 0xA0, 0x13 - .byte 0x08, 0x80, 0xBD, 0x18, 0xF4, 0x00, 0xD0, 0xE1, 0x00, 0x10, 0x8D, 0xE2, 0xA6, 0xF6, 0xFF, 0xEB - .byte 0xF0, 0x00, 0xDD, 0xE1, 0x08, 0x80, 0xBD, 0xE8, 0x08, 0x40, 0x2D, 0xE9, 0x00, 0x10, 0x90, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0xF4, 0x00, 0xD0, 0xE1, 0x85, 0xF3, 0xFF, 0xEB - .byte 0xB2, 0x00, 0xD0, 0xE1, 0x08, 0x80, 0xBD, 0xE8, 0x01, 0x00, 0x51, 0xE3, 0x14, 0x00, 0x9F, 0x15 - .byte 0x08, 0x80, 0xBD, 0x18, 0xF4, 0x00, 0xD0, 0xE1, 0x00, 0x10, 0x8D, 0xE2, 0x96, 0xF6, 0xFF, 0xEB - .byte 0xB2, 0x00, 0xDD, 0xE1, 0x08, 0x80, 0xBD, 0xE8, 0xFF, 0xFF, 0x00, 0x00, 0x38, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x50, 0xA0, 0xE1, 0x08, 0x00, 0xA0, 0xE3, 0x06, 0x10, 0xA0, 0xE3, 0xFF, 0xBA, 0xFF, 0xEB - .byte 0x04, 0x10, 0x95, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x81, 0x01, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE3 - .byte 0xFA, 0xBA, 0xFF, 0xEB, 0x00, 0x00, 0x84, 0xE5, 0x00, 0xC0, 0xA0, 0xE3, 0x08, 0x00, 0x00, 0xEA - .byte 0x00, 0x10, 0x95, 0xE5, 0x00, 0x30, 0x94, 0xE5, 0x8C, 0x01, 0x81, 0xE0, 0x8C, 0x21, 0x91, 0xE7 - .byte 0x04, 0x10, 0x90, 0xE5, 0x8C, 0x01, 0x83, 0xE0, 0x8C, 0x21, 0x83, 0xE7, 0x04, 0x10, 0x80, 0xE5 - .byte 0x01, 0xC0, 0x8C, 0xE2, 0x04, 0x10, 0x95, 0xE5, 0x01, 0x00, 0x5C, 0xE1, 0xF3, 0xFF, 0xFF, 0xBA - .byte 0x04, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0x84, 0xE5, 0x38, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_020125cc -FUN_020125cc: @ 0x020125CC - push {r4, lr} - mov r4, r0 - ldr r0, [r4] - cmp r0, #0 - popeq {r4, pc} - ldr r0, [r0] - bl MemFree - ldr r0, [r4] - bl MemFree - mov r0, #0 - str r0, [r4] - pop {r4, pc} - arm_func_end FUN_020125cc - - arm_func_start FUN_020125fc -FUN_020125fc: @ 0x020125FC - push {r4, lr} - mov r4, r0 - bl GetItemCategoryVeneer - cmp r0, #0 - beq _02012620 - mov r0, r4 - bl GetItemCategoryVeneer - cmp r0, #1 - bne _02012628 -_02012620: - mov r0, #1 - pop {r4, pc} -_02012628: - mov r0, #0 - pop {r4, pc} - arm_func_end FUN_020125fc - - arm_func_start FUN_02012630 -FUN_02012630: @ 0x02012630 - push {r4, lr} - mov r4, r0 - cmp r1, #0 - beq _02012650 - bl FUN_0200ce74 - cmp r0, #0 - movne r0, #1 - popne {r4, pc} -_02012650: - mov r0, r4 - bl FUN_020125fc - pop {r4, pc} - arm_func_end FUN_02012630 - - arm_func_start FUN_0201265c -FUN_0201265c: @ 0x0201265C - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r1, _020126C4 @ =0x020AF6B8 - mov r4, #0 - ldr r1, [r1] - mov r5, r0 - ldr r8, [r1, #0x384] - mov sb, r4 - mov r6, r4 - mov r7, #1 -_02012680: - ldrb r0, [r8] - tst r0, #1 - movne r0, r7 - moveq r0, r6 - tst r0, #0xff - beq _020126AC - ldrsh r0, [r8, #4] - mov r1, r5 - bl FUN_02012630 - cmp r0, #0 - addeq r4, r4, #1 -_020126AC: - add sb, sb, #1 - cmp sb, #0x32 - add r8, r8, #6 - blt _02012680 - mov r0, r4 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_020126C4: .4byte 0x020AF6B8 - arm_func_end FUN_0201265c - - arm_func_start FUN_020126c8 -FUN_020126c8: @ 0x020126C8 - push {r3, r4, r5, r6, r7, lr} - mov r5, #0 - ldr r4, _02012718 @ =0x020AF6B8 - mov r7, r0 - mov r6, r5 -_020126DC: - ldr r0, [r4] - add r0, r0, r6, lsl #1 - add r0, r0, #0x300 - ldrsh r0, [r0, #0x8a] - cmp r0, #0 - beq _02012704 - mov r1, r7 - bl FUN_02012630 - cmp r0, #0 - addeq r5, r5, #1 -_02012704: - add r6, r6, #1 - cmp r6, #0x3e8 - blt _020126DC - mov r0, r5 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02012718: .4byte 0x020AF6B8 - arm_func_end FUN_020126c8 -_0201271C: - .byte 0xF8, 0x4F, 0x2D, 0xE9 - .byte 0x08, 0xD0, 0x4D, 0xE2, 0x00, 0xA0, 0xA0, 0xE1, 0xF4, 0x01, 0xDA, 0xE1, 0x00, 0x60, 0x9A, 0xE5 - .byte 0x00, 0x80, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0x45, 0x00, 0x00, 0xEA, 0x14, 0x50, 0x86, 0xE2 - .byte 0x08, 0x41, 0xA0, 0xE1, 0xF4, 0x10, 0x95, 0xE1, 0x04, 0x00, 0x8D, 0xE2, 0x09, 0xEA, 0xFF, 0xEB - .byte 0x08, 0x11, 0x86, 0xE0, 0x88, 0x00, 0x8A, 0xE0, 0xF6, 0x71, 0xD1, 0xE1, 0xFC, 0xB0, 0xD0, 0xE1 - .byte 0x00, 0x90, 0xA0, 0xE3, 0x05, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x8D, 0xE2, 0xF7, 0xF5, 0xFF, 0xEB - .byte 0x8A, 0xF6, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x70, 0x47, 0x12, 0x01, 0x90, 0x89, 0xE2 - .byte 0x0B, 0x00, 0x59, 0xE1, 0x01, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x57, 0xE3, 0xF5, 0xFF, 0xFF, 0xCA - .byte 0x00, 0x00, 0x57, 0xE3, 0x0C, 0x00, 0x00, 0xDA, 0x88, 0x00, 0x8A, 0xE0, 0xF4, 0xB0, 0xD0, 0xE1 - .byte 0x00, 0x90, 0xA0, 0xE3, 0x04, 0x00, 0x00, 0xEA, 0xF4, 0x00, 0xDD, 0xE1, 0xAE, 0xF2, 0xFF, 0xEB - .byte 0x13, 0xF3, 0xFF, 0xEB, 0x01, 0x70, 0x47, 0xE2, 0x01, 0x90, 0x89, 0xE2, 0x0B, 0x00, 0x59, 0xE1 - .byte 0x01, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x57, 0xE3, 0xF6, 0xFF, 0xFF, 0xCA, 0xF4, 0x00, 0x95, 0xE1 - .byte 0x98, 0x10, 0x9F, 0xE5, 0x01, 0x00, 0x50, 0xE1, 0x15, 0x00, 0x00, 0x1A, 0xF0, 0x00, 0xD6, 0xE1 - .byte 0xA3, 0xE9, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x0A, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x99, 0xFF, 0xFF, 0xEB, 0x88, 0x10, 0x8A, 0xE0, 0xB4, 0x00, 0xC1, 0xE1, 0x01, 0x00, 0xA0, 0xE3 - .byte 0xB0, 0xFF, 0xFF, 0xEB, 0x88, 0x10, 0x8A, 0xE0, 0xBC, 0x00, 0xC1, 0xE1, 0x0F, 0x00, 0x00, 0xEA - .byte 0x00, 0x00, 0xA0, 0xE3, 0x90, 0xFF, 0xFF, 0xEB, 0x88, 0x10, 0x8A, 0xE0, 0xB4, 0x00, 0xC1, 0xE1 - .byte 0x00, 0x00, 0xA0, 0xE3, 0xA7, 0xFF, 0xFF, 0xEB, 0x88, 0x10, 0x8A, 0xE0, 0xBC, 0x00, 0xC1, 0xE1 - .byte 0x06, 0x00, 0x00, 0xEA, 0x84, 0xF1, 0xFF, 0xEB, 0x88, 0x10, 0x8A, 0xE0, 0xB4, 0x00, 0xC1, 0xE1 - .byte 0xF4, 0x00, 0x95, 0xE1, 0x97, 0xF5, 0xFF, 0xEB, 0x88, 0x10, 0x8A, 0xE0, 0xBC, 0x00, 0xC1, 0xE1 - .byte 0x01, 0x80, 0x88, 0xE2, 0x00, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x58, 0xE1, 0xB6, 0xFF, 0xFF, 0xBA - .byte 0xC2, 0xF2, 0xFF, 0xEB, 0x04, 0xF6, 0xFF, 0xEB, 0x08, 0xD0, 0x8D, 0xE2, 0xF8, 0x8F, 0xBD, 0xE8 - .byte 0x78, 0x05, 0x00, 0x00, 0x38, 0x40, 0x2D, 0xE9, 0x01, 0x50, 0xA0, 0xE1, 0x00, 0x40, 0xA0, 0xE3 - .byte 0x0F, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x95, 0xE5, 0x84, 0x11, 0x80, 0xE0, 0x06, 0x00, 0xD1, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x91, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x02, 0x00, 0x00, 0x1A, 0xF4, 0x00, 0xD1, 0xE1, 0xD5, 0xF2, 0xFF, 0xEB, 0x03, 0x00, 0x00, 0xEA - .byte 0x01, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x1A, 0xF4, 0x00, 0xD1, 0xE1, 0x37, 0xF6, 0xFF, 0xEB - .byte 0x01, 0x40, 0x84, 0xE2, 0x04, 0x00, 0x95, 0xE5, 0x00, 0x00, 0x54, 0xE1, 0xEC, 0xFF, 0xFF, 0xBA - .byte 0xA6, 0xF2, 0xFF, 0xEB, 0xE8, 0xF5, 0xFF, 0xEB, 0x38, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_020128dc -FUN_020128dc: @ 0x020128DC - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov r7, #0 - mov fp, #0x24 - ldr r5, _02012950 @ =0x020988CC - mov sl, r0 - mov sb, r1 - mov r8, r2 - mov r6, r7 - mov r4, fp -_02012900: - cmp sl, #3 - beq _02012920 - mla r0, r6, r4, r5 - ldr r1, [r0, #4] - mov r0, sl - bl FUN_02012954 - cmp r0, #0 - beq _0201293C -_02012920: - mla r1, r6, fp, r5 - ldrb r0, [r1, #8] - cmp r0, sb - bhi _0201293C - ldr r0, [r1, #0xc] - cmp r0, r8 - addle r7, r7, #1 -_0201293C: - add r6, r6, #1 - cmp r6, #0x18 - blt _02012900 - mov r0, r7 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02012950: .4byte 0x020988CC - arm_func_end FUN_020128dc - - arm_func_start FUN_02012954 -FUN_02012954: @ 0x02012954 - cmp r0, r1 - beq _0201296C - cmp r0, #0 - bne _02012974 - cmp r1, #2 - beq _02012974 -_0201296C: - mov r0, #1 - bx lr -_02012974: - mov r0, #0 - bx lr - arm_func_end FUN_02012954 - - arm_func_start FUN_0201297c -FUN_0201297c: @ 0x0201297C - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov r4, #0x24 - smulbb r4, r1, r4 - ldr r1, _02012AA4 @ =0x020988D0 - mov sl, r0 - ldr r1, [r1, r4] - mov r0, r2 - mov r5, r3 - bl FUN_02012954 - cmp r0, #0 - beq _02012A9C - ldr r0, _02012AA8 @ =0x020988D4 - ldrb r0, [r0, r4] - cmp r0, r5 - bhi _02012A9C - ldr r1, _02012AAC @ =0x020988D8 - ldr r0, [sp, #0x28] - ldr r1, [r1, r4] - cmp r1, r0 - bgt _02012A9C - ldr r0, _02012AB0 @ =0x020988CC - mov sb, #0 - add r0, r0, r4 - mov r6, #1 - str r0, [sl] - mov fp, sb - mov r5, r6 - ldr r4, _02012AB4 @ =0x00000578 - b _02012A88 -_020129F0: - ldr r1, [sl] - lsl r7, sb, #2 - add r8, r1, #0x14 - ldrsh r0, [r8, r7] - cmp r0, #0 - beq _02012A90 - cmp r0, r4 - bne _02012A68 - ldrsh r0, [r1] - bl FUN_0200ce74 - cmp r0, #0 - beq _02012A44 - mov r0, r6 - bl FUN_0201265c - add r1, sl, sb, lsl #1 - strh r0, [r1, #4] - mov r0, r5 - bl FUN_020126c8 - add r1, sl, sb, lsl #1 - strh r0, [r1, #0xc] - b _02012A84 -_02012A44: - mov r0, fp - bl FUN_0201265c - add r1, sl, sb, lsl #1 - strh r0, [r1, #4] - mov r0, #0 - bl FUN_020126c8 - add r1, sl, sb, lsl #1 - strh r0, [r1, #0xc] - b _02012A84 -_02012A68: - bl CountNbItemsOfTypeInBag - add r1, sl, sb, lsl #1 - strh r0, [r1, #4] - ldrsh r0, [r8, r7] - bl CountNbItemsOfTypeInStorage - add r1, sl, sb, lsl #1 - strh r0, [r1, #0xc] -_02012A84: - add sb, sb, #1 -_02012A88: - cmp sb, #4 - blt _020129F0 -_02012A90: - strh sb, [sl, #0x14] - mov r0, #1 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_02012A9C: - mov r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02012AA4: .4byte 0x020988D0 -_02012AA8: .4byte 0x020988D4 -_02012AAC: .4byte 0x020988D8 -_02012AB0: .4byte 0x020988CC -_02012AB4: .4byte 0x00000578 - arm_func_end FUN_0201297c - - arm_func_start FUN_02012ab8 -FUN_02012ab8: @ 0x02012AB8 - mov r3, #0 - ldr r0, _02012ADC @ =0x022A4BD8 - mov r2, r3 -_02012AC4: - lsl r1, r3, #1 - add r3, r3, #1 - strh r2, [r0, r1] - cmp r3, #8 - blt _02012AC4 - bx lr - .align 2, 0 -_02012ADC: .4byte 0x022A4BD8 - arm_func_end FUN_02012ab8 - - arm_func_start LoadSynthBin -LoadSynthBin: @ 0x02012AE0 - push {r3, lr} - ldr r0, _02012B28 @ =0x020AF6D0 - ldr r0, [r0, #4] - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - movne r0, #0 - popne {r3, pc} - ldr r0, _02012B2C @ =0x020AF6D4 - ldr r1, _02012B30 @ =0x02098CB4 - mov r2, #0xe - bl LoadFileFromRom - ldr r1, _02012B28 @ =0x020AF6D0 - mov r0, #1 - ldr r2, [r1, #4] - str r2, [r1] - pop {r3, pc} - .align 2, 0 -_02012B28: .4byte 0x020AF6D0 -_02012B2C: .4byte 0x020AF6D4 -_02012B30: .4byte 0x02098CB4 - arm_func_end LoadSynthBin - - arm_func_start CloseSynthBin -CloseSynthBin: @ 0x02012B34 - push {r3, lr} - ldr r0, _02012B74 @ =0x020AF6D0 - ldr r0, [r0, #4] - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - popeq {r3, pc} - ldr r0, _02012B78 @ =0x020AF6D4 - bl UnloadFile - ldr r0, _02012B74 @ =0x020AF6D0 - mov r1, #0 - str r1, [r0, #4] - str r1, [r0, #8] - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_02012B74: .4byte 0x020AF6D0 -_02012B78: .4byte 0x020AF6D4 - arm_func_end CloseSynthBin - - arm_func_start FUN_02012b7c -FUN_02012b7c: @ 0x02012B7C - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x160 - bl GetScenarioBalance - ldr r1, _02013098 @ =0x020AF6D0 - str r0, [sp, #8] - ldr r0, [r1, #4] - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - movne r7, #0 - bne _02012BB4 - mov r7, #1 - bl LoadSynthBin -_02012BB4: - ldr r0, _0201309C @ =0x000045E0 - mov r1, #0xf - bl MemAlloc - mov r1, #0 - mov r4, r0 - mov r5, r1 - add r0, sp, #0x2c -_02012BD0: - strb r5, [r0, r1] - add r1, r1, #1 - cmp r1, #0x12 - blt _02012BD0 - ldr r0, _020130A0 @ =0x02098CCC - mov r6, r5 - bl DebugPrint0 - add r0, sp, #0x24 - bl GetPartyMembers - str r0, [sp, #0xc] - mov r0, #0 - mov r1, #3 - bl RandRange - mov r8, #0 - mov fp, r0 - mov sl, r8 - b _02012C78 -_02012C14: - lsl r1, sl, #1 - add r0, sp, #0x24 - ldrsh r0, [r0, r1] - bl GetTeamMember - ldrsh r0, [r0, #4] - mov sb, #0 - bl FemaleToMaleForm - bl GetBaseFormCastformDeoxysCherrim - mov r3, sb - b _02012C58 -_02012C3C: - lsl r2, r3, #1 - add r1, sp, #0x1c - ldrsh r1, [r1, r2] - cmp r0, r1 - moveq sb, #1 - beq _02012C60 - add r3, r3, #1 -_02012C58: - cmp r3, r8 - blt _02012C3C -_02012C60: - cmp sb, #0 - lsleq r2, r8, #1 - addeq r1, sp, #0x1c - strheq r0, [r1, r2] - addeq r8, r8, #1 - add sl, sl, #1 -_02012C78: - ldr r0, [sp, #0xc] - cmp sl, r0 - blt _02012C14 - ldr r0, _020130A4 @ =0x02098D24 - mov r2, #0 - mov r1, fp - mov r3, r8 - mov sb, r8 - str r2, [sp] - bl DebugPrint0 - add r0, r4, #0x12c - add r0, r0, #0x800 - str r0, [sp, #0x14] - mvn r0, #0 - str r0, [sp, #0x18] - b _02012D28 -_02012CB8: - mov r0, r8 - bl RandInt - str r0, [sp, #4] - lsl r1, r0, #1 - add r0, sp, #0x1c - ldrsh sl, [r0, r1] - cmp sl, #0 - blt _02012D28 - ldr r1, [sp, #0x14] - mov r2, #0x1c - mla r1, r6, r2, r1 - mov r0, sl - add r2, sp, #0x2c - bl FUN_020132a4 - cmp r0, #0 - addne r0, r4, r5, lsl #1 - addne r0, r0, #0x900 - strhne sl, [r0, #6] - ldr r0, [sp, #4] - ldr r1, [sp, #0x18] - lsl r2, r0, #1 - add r0, sp, #0x1c - sub sb, sb, #1 - addne r6, r6, #1 - addne r5, r5, #1 - strh r1, [r0, r2] - cmp sb, #0 - ble _02012D38 -_02012D28: - cmp r5, fp - bge _02012D38 - cmp r8, r5 - bgt _02012CB8 -_02012D38: - ldr fp, _020130A8 @ =0x00000229 - str r5, [sp, #0x10] - mov sl, #0 - mov sb, #1 -_02012D48: - lsl r0, sb, #0x10 - asr r0, r0, #0x10 - bl FemaleToMaleForm - bl GetBaseFormCastformDeoxysCherrim - mov r8, r0 - bl IsMonsterValid - cmp r0, #0 - beq _02012D80 - mov r0, r8 - bl HasMonsterBeenAttackedInDungeons - cmp r0, #0 - lslne r0, sl, #1 - strhne r8, [r4, r0] - addne sl, sl, #1 -_02012D80: - add sb, sb, #1 - cmp sb, fp - ble _02012D48 - b _02012E34 -_02012D90: - mov r0, sl - mov fp, #0 - bl RandInt - mov r8, r0 - lsl r0, r8, #1 - ldrsh sb, [r4, r0] - mov r1, fp - b _02012DCC -_02012DB0: - add r0, r4, r1, lsl #1 - add r0, r0, #0x900 - ldrsh r0, [r0, #6] - cmp sb, r0 - moveq fp, #1 - beq _02012DD4 - add r1, r1, #1 -_02012DCC: - cmp r1, r5 - blt _02012DB0 -_02012DD4: - cmp fp, #0 - bne _02012E10 - add r0, r4, #0x12c - add r1, r0, #0x800 - mov r0, #0x1c - mla r1, r6, r0, r1 - add r2, sp, #0x2c - mov r0, sb - bl FUN_020132a4 - cmp r0, #0 - addne r0, r4, r5, lsl #1 - addne r0, r0, #0x900 - strhne sb, [r0, #6] - addne r6, r6, #1 - addne r5, r5, #1 -_02012E10: - sub sl, sl, #1 - b _02012E2C -_02012E18: - add r0, r4, r8, lsl #1 - ldrsh r0, [r0, #2] - lsl r1, r8, #1 - add r8, r8, #1 - strh r0, [r4, r1] -_02012E2C: - cmp r8, sl - blt _02012E18 -_02012E34: - cmp r5, #0x10 - ldrlt r0, [sp, #0x10] - sublt r0, r5, r0 - cmplt r0, sl - blt _02012D90 - mov r8, #0 - mov sb, r8 -_02012E50: - add r0, sp, #0x2c - ldrb r0, [r0, sb] - cmp r0, #0 - beq _02012EB0 - ldr r0, _020130AC @ =0x02098C2C - and r5, sb, #0xff - mov sl, #0 - add fp, r0, r5, lsl #3 -_02012E70: - cmp r5, #0x12 - movhs r0, #0 - addlo r0, fp, sl, lsl #1 - ldrshlo r0, [r0, #-8] - bl GetSynthItem - cmp r0, #0 - beq _02012EA4 - ldrh r2, [r0, #6] - ldr r1, [sp, #8] - cmp r2, r1 - addle r1, sp, #0x40 - strle r0, [r1, r8, lsl #2] - addle r8, r8, #1 -_02012EA4: - add sl, sl, #1 - cmp sl, #4 - blt _02012E70 -_02012EB0: - add sb, sb, #1 - cmp sb, #0x12 - blt _02012E50 - cmp r8, #0 - ble _02012F00 - mov r0, #0x1c - mul r5, r6, r0 - add r0, r4, #0x12c - add sb, r0, #0x800 - mov r0, r8 - add r8, sb, r5 - bl RandInt - add r2, sp, #0x40 - ldr r0, [r2, r0, lsl #2] - mov r1, #1 - str r0, [r8, #8] - str r1, [sb, r5] - ldrh r0, [r0, #2] - add r6, r6, #1 - str r0, [r8, #4] -_02012F00: - cmp r6, #0 - bne _02012F40 - mov r0, r4 - bl MemFree - cmp r7, #0 - beq _02012F1C - bl CloseSynthBin -_02012F1C: - mov r3, #0 - ldr r1, _020130B0 @ =0x022A4BD8 - mov r0, r3 -_02012F28: - lsl r2, r3, #1 - add r3, r3, #1 - strh r0, [r1, r2] - cmp r3, #8 - blt _02012F28 - b _02013090 -_02012F40: - mov r0, #4 - mov r1, #9 - bl RandRange - mov fp, r0 - mov sb, #0 - b _02013050 -_02012F58: - mov r0, #0 - mov r3, r0 - mov r1, #0x1c - b _02012F78 -_02012F68: - mla r2, r3, r1, r4 - ldr r2, [r2, #0x930] - add r3, r3, #1 - add r0, r0, r2 -_02012F78: - cmp r3, r6 - blt _02012F68 - cmp r0, #0 - beq _02013058 - bl RandInt - mov r1, #0 - add r2, r4, #0x12c - add r8, r2, #0x800 - mov sl, r1 - mov r2, #0x1c - b _02013048 -_02012FA4: - mla r5, sl, r2, r8 - ldr r3, [r5, #4] - cmp r0, r3 - bhs _02013044 - ldr r8, [r5] - mov sl, #0 - b _02013030 -_02012FC0: - add r2, r5, sl, lsl #2 - ldr r3, [r2, #8] - ldrh r2, [r3, #2] - add r1, r1, r2 - cmp r0, r1 - bge _0201302C - ldrsh r8, [r3] - mov sl, #0 - ldr r1, _020130B0 @ =0x022A4BD8 - b _0201300C -_02012FE8: - lsl r0, sl, #1 - ldrsh r0, [r1, r0] - cmp r8, r0 - bne _02013008 - ldr r0, _020130B4 @ =0x02098D48 - mov r1, r8 - bl DebugPrint0 - b _02013014 -_02013008: - add sl, sl, #1 -_0201300C: - cmp sl, sb - blt _02012FE8 -_02013014: - cmp sl, sb - lslge r1, sb, #1 - ldrge r0, _020130B0 @ =0x022A4BD8 - addge sb, sb, #1 - strhge r8, [r0, r1] - b _02013038 -_0201302C: - add sl, sl, #1 -_02013030: - cmp sl, r8 - blt _02012FC0 -_02013038: - mov r0, #0 - str r0, [r5, #4] - b _02013050 -_02013044: - add sl, sl, #1 -_02013048: - cmp sl, r6 - blt _02012FA4 -_02013050: - cmp sb, fp - blt _02012F58 -_02013058: - mov r2, #0 - ldr r0, _020130B0 @ =0x022A4BD8 - b _02013070 -_02013064: - lsl r1, sb, #1 - strh r2, [r0, r1] - add sb, sb, #1 -_02013070: - cmp sb, #8 - blt _02013064 - mov r0, r4 - bl MemFree - cmp r7, #0 - beq _0201308C - bl CloseSynthBin -_0201308C: - mov r0, #1 -_02013090: - add sp, sp, #0x160 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02013098: .4byte 0x020AF6D0 -_0201309C: .4byte 0x000045E0 -_020130A0: .4byte 0x02098CCC -_020130A4: .4byte 0x02098D24 -_020130A8: .4byte 0x00000229 -_020130AC: .4byte 0x02098C2C -_020130B0: .4byte 0x022A4BD8 -_020130B4: .4byte 0x02098D48 - arm_func_end FUN_02012b7c - - arm_func_start FUN_020130b8 -FUN_020130b8: @ 0x020130B8 - push {r3, r4, r5, r6, r7, lr} - ldr r1, _02013148 @ =0x020AF6D0 - mov r7, r0 - ldr r0, [r1, #4] - ldr r4, _0201314C @ =0x022A4BD8 - cmp r0, #0 - mov r5, #0 - movne r0, #1 - moveq r0, r5 - tst r0, #0xff - moveq r0, #0 - popeq {r3, r4, r5, r6, r7, pc} - mov r6, #0 -_020130EC: - lsl r1, r6, #1 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _02013130 - ldrsh r0, [r4, r1] - bl GetSynthItem - cmp r0, #0 - beq _02013130 - cmp r7, #0 - beq _0201312C - add r3, r7, r5, lsl #3 - mov r2, #4 -_0201311C: - ldrh r1, [r0], #2 - subs r2, r2, #1 - strh r1, [r3], #2 - bne _0201311C -_0201312C: - add r5, r5, #1 -_02013130: - add r6, r6, #1 - cmp r6, #8 - blt _020130EC - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02013148: .4byte 0x020AF6D0 -_0201314C: .4byte 0x022A4BD8 - arm_func_end FUN_020130b8 -_02013150: - .byte 0x34, 0x30, 0x9F, 0xE5, 0x00, 0xC0, 0xA0, 0xE3, 0x07, 0x00, 0x00, 0xEA, 0x8C, 0x20, 0xA0, 0xE1 - .byte 0xF2, 0x10, 0x93, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x00, 0x00, 0xA0, 0x03, 0xB2, 0x00, 0x83, 0x01 - .byte 0x01, 0x00, 0xA0, 0x03, 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0xC0, 0x8C, 0xE2, 0x08, 0x00, 0x5C, 0xE3 - .byte 0xF5, 0xFF, 0xFF, 0xBA, 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0xD8, 0x4B, 0x2A, 0x02 - - arm_func_start FUN_02013190 -FUN_02013190: @ 0x02013190 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0x10 - mov r3, r0 - mov r2, r1 - add r0, sp, #0 - mov r1, r3 - bl FUN_02050974 - ldr r5, _020131EC @ =0x022A4BD8 - mov r7, #0 - add r6, sp, #0 - mov r4, #0xb -_020131BC: - mov r0, r6 - mov r2, r4 - add r1, r5, r7, lsl #1 - bl CopyBitsFrom - add r7, r7, #1 - cmp r7, #8 - blt _020131BC - add r0, sp, #0 - bl FUN_020509bc - ldr r0, [sp, #8] - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_020131EC: .4byte 0x022A4BD8 - arm_func_end FUN_02013190 - - arm_func_start FUN_020131f0 -FUN_020131f0: @ 0x020131F0 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0x10 - mov r3, r0 - mov r2, r1 - add r0, sp, #0 - mov r1, r3 - bl FUN_02050990 - ldr r5, _0201324C @ =0x022A4BD8 - mov r7, #0 - add r6, sp, #0 - mov r4, #0xb -_0201321C: - mov r0, r6 - mov r2, r4 - add r1, r5, r7, lsl #1 - bl CopyBitsTo - add r7, r7, #1 - cmp r7, #8 - blt _0201321C - add r0, sp, #0 - bl FUN_020509bc - ldr r0, [sp, #8] - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0201324C: .4byte 0x022A4BD8 - arm_func_end FUN_020131f0 - - arm_func_start GetSynthItem -GetSynthItem: @ 0x02013250 - ldr r1, _020132A0 @ =0x020AF6D0 - ldr r1, [r1, #4] - cmp r1, #0 - movne r1, #1 - moveq r1, #0 - tst r1, #0xff - moveq r0, #0 - bxeq lr - ldr r1, _020132A0 @ =0x020AF6D0 - ldr r1, [r1] - b _0201328C -_0201327C: - cmp r2, r0 - moveq r0, r1 - bxeq lr - add r1, r1, #8 -_0201328C: - ldrsh r2, [r1] - cmp r2, #0 - bne _0201327C - mov r0, #0 - bx lr - .align 2, 0 -_020132A0: .4byte 0x020AF6D0 - arm_func_end GetSynthItem - - arm_func_start FUN_020132a4 -FUN_020132a4: @ 0x020132A4 - push {r4, r5, r6, r7, r8, sb, sl, lr} - mov sl, r0 - mov sb, r1 - mov r8, r2 - bl GetScenarioBalance - mov r5, #0 - str r5, [sb] - mov r7, r0 - mov r6, r5 - str r5, [sb, #4] - mov r4, #1 -_020132D0: - lsl r1, r6, #0x10 - mov r0, sl - asr r1, r1, #0x10 - bl GetExclusiveItem - cmp r0, #0 - beq _0201332C - bl GetSynthItem - cmp r0, #0 - beq _0201332C - ldrh r1, [r0, #6] - cmp r1, r7 - bgt _0201332C - ldr r1, [sb] - mov r5, r4 - add r1, sb, r1, lsl #2 - str r0, [r1, #8] - ldrh r0, [r0, #2] - ldr r1, [sb, #4] - add r0, r1, r0 - str r0, [sb, #4] - ldr r0, [sb] - add r0, r0, #1 - str r0, [sb] -_0201332C: - add r6, r6, #1 - cmp r6, #4 - blt _020132D0 - mov r0, sl - bl FUN_0200eb90 - cmp r0, #0 - beq _0201338C - bl GetSynthItem - cmp r0, #0 - beq _0201338C - ldrh r1, [r0, #6] - cmp r1, r7 - bgt _0201338C - ldr r1, [sb] - mov r5, #1 - add r1, sb, r1, lsl #2 - str r0, [r1, #8] - ldrh r0, [r0, #2] - ldr r1, [sb, #4] - add r0, r1, r0 - str r0, [sb, #4] - ldr r0, [sb] - add r0, r0, #1 - str r0, [sb] -_0201338C: - mov r0, sl - mov r1, #0 - bl GetType - cmp r0, #0 - movne r1, #1 - strbne r1, [r8, r0] - mov r0, sl - mov r1, #1 - bl GetType - cmp r0, #0 - movne r1, #1 - strbne r1, [r8, r0] - mov r0, r5 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_end FUN_020132a4 - - arm_func_start LoadWazaP -LoadWazaP: @ 0x020133C4 - push {r3, lr} - ldr r1, _020133E8 @ =0x020AF6DC - mov r0, #0 - str r0, [r1, #4] - bl OpenWaza - ldr r0, _020133E8 @ =0x020AF6DC - ldr r0, [r0, #4] - bl SelectWaza - pop {r3, pc} - .align 2, 0 -_020133E8: .4byte 0x020AF6DC - arm_func_end LoadWazaP - - arm_func_start LoadWazaP2 -LoadWazaP2: @ 0x020133EC - push {r3, lr} - ldr r1, _02013410 @ =0x020AF6DC - mov r0, #1 - str r0, [r1, #4] - bl OpenWaza - ldr r0, _02013410 @ =0x020AF6DC - ldr r0, [r0, #4] - bl SelectWaza - pop {r3, pc} - .align 2, 0 -_02013410: .4byte 0x020AF6DC - arm_func_end LoadWazaP2 - - arm_func_start UnloadCurrentWazaP -UnloadCurrentWazaP: @ 0x02013414 - push {r4, lr} - ldr r0, _0201344C @ =0x020AF6DC - ldr r1, _02013450 @ =0x020AF700 - ldr r0, [r0, #4] - add r4, r1, r0, lsl #3 - mov r0, r4 - bl UnloadFile - mov r0, r4 - bl ZInit8 - ldr r1, _0201344C @ =0x020AF6DC - mov r0, #0 - str r0, [r1, #4] - bl SelectWaza - pop {r4, pc} - .align 2, 0 -_0201344C: .4byte 0x020AF6DC -_02013450: .4byte 0x020AF700 - arm_func_end UnloadCurrentWazaP - - arm_func_start GetMoveName -GetMoveName: @ 0x02013454 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - add r0, r0, #0xee - add r0, r0, #0x1f00 - lsl r0, r0, #0x10 - ldr ip, _02013474 @ =StringFromMessageId - lsr r0, r0, #0x10 - bx ip - .align 2, 0 -_02013474: .4byte StringFromMessageId - arm_func_end GetMoveName - - arm_func_start FormatMoveString -FormatMoveString: @ 0x02013478 - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x1c - mov r6, r1 - ldrb r1, [r6] - mov r7, r0 - mov r5, r2 - tst r1, #0x20 - bne _020134A4 - ldrh r0, [r6, #2] - tst r0, #1 - beq _020134AC -_020134A4: - mov r0, #0x57 - b _020134B0 -_020134AC: - mov r0, #0x4d -_020134B0: - ldrb r3, [r6, #7] - cmp r5, #0 - ldreq r5, _02013738 @ =0x02098D68 - and r4, r0, #0xff - cmp r3, #0 - moveq r0, #0 - strbeq r0, [sp, #0x10] - beq _020134E0 - ldr r1, _0201373C @ =0x02098DE4 - add r0, sp, #0x10 - mov r2, #0x56 - bl SprintfStatic -_020134E0: - ldrb r0, [r5, #8] - cmp r0, #0 - movne r4, #0x57 - bne _0201350C - ldrb r0, [r5, #9] - cmp r0, #0 - beq _0201350C - ldrh r0, [r6, #4] - bl Is2TurnsMove - cmp r0, #0 - movne r4, #0x57 -_0201350C: - ldr r0, [r5] - cmp r0, #5 - addls pc, pc, r0, lsl #2 - b _02013730 -_0201351C: @ jump table - b _02013534 @ case 0 - b _02013564 @ case 1 - b _020135C8 @ case 2 - b _0201362C @ case 3 - b _02013690 @ case 4 - b _020136F4 @ case 5 -_02013534: - ldrh r0, [r6, #4] - add r0, r0, #0xee - add r0, r0, #0x1f00 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl StringFromMessageId - mov r2, r0 - ldr r1, _02013740 @ =0x02098DF4 - add r3, sp, #0x10 - mov r0, r7 - bl SprintfStatic - b _02013730 -_02013564: - ldrh r0, [r6, #4] - add r0, r0, #0xee - add r0, r0, #0x1f00 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl StringFromMessageId - ldrb r1, [r6] - mov r5, r0 - mov r0, r6 - tst r1, #8 - ldrne r8, _02013744 @ =0x02098E04 - ldreq r8, _02013748 @ =0x02098E0C - bl GetMaxPp - add r1, sp, #0x10 - str r5, [sp] - str r1, [sp, #4] - ldrb r3, [r6, #6] - ldr r1, _0201374C @ =0x02098E14 - mov r2, r4 - str r3, [sp, #8] - str r0, [sp, #0xc] - mov r0, r7 - mov r3, r8 - bl SprintfStatic - b _02013730 -_020135C8: - ldrh r0, [r6, #4] - add r0, r0, #0xee - add r0, r0, #0x1f00 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl StringFromMessageId - ldrb r1, [r6] - mov r5, r0 - mov r0, r6 - tst r1, #8 - ldrne r8, _02013744 @ =0x02098E04 - ldreq r8, _02013748 @ =0x02098E0C - bl GetMaxPp - add r1, sp, #0x10 - str r5, [sp] - str r1, [sp, #4] - ldrb r3, [r6, #6] - ldr r1, _0201374C @ =0x02098E14 - mov r2, r4 - str r3, [sp, #8] - str r0, [sp, #0xc] - mov r0, r7 - mov r3, r8 - bl SprintfStatic - b _02013730 -_0201362C: - ldrh r0, [r6, #4] - add r0, r0, #0xee - add r0, r0, #0x1f00 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl StringFromMessageId - ldrb r1, [r6] - mov r5, r0 - mov r0, r6 - tst r1, #4 - ldrne r8, _02013744 @ =0x02098E04 - ldreq r8, _02013748 @ =0x02098E0C - bl GetMaxPp - add r1, sp, #0x10 - str r5, [sp] - str r1, [sp, #4] - ldrb r3, [r6, #6] - ldr r1, _02013750 @ =0x02098E58 - mov r2, r4 - str r3, [sp, #8] - str r0, [sp, #0xc] - mov r0, r7 - mov r3, r8 - bl SprintfStatic - b _02013730 -_02013690: - ldrh r0, [r6, #4] - add r0, r0, #0xee - add r0, r0, #0x1f00 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl StringFromMessageId - ldrb r1, [r6] - mov r5, r0 - mov r0, r6 - tst r1, #4 - ldrne r8, _02013744 @ =0x02098E04 - ldreq r8, _02013748 @ =0x02098E0C - bl GetMaxPp - add r1, sp, #0x10 - str r5, [sp] - str r1, [sp, #4] - ldrb r3, [r6, #6] - ldr r1, _0201374C @ =0x02098E14 - mov r2, r4 - str r3, [sp, #8] - str r0, [sp, #0xc] - mov r0, r7 - mov r3, r8 - bl SprintfStatic - b _02013730 -_020136F4: - ldrh r0, [r6, #4] - add r0, r0, #0xee - add r0, r0, #0x1f00 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl StringFromMessageId - mov r4, r0 - mov r0, r6 - bl GetMaxPp - str r0, [sp] - ldrb r3, [r6, #6] - ldr r1, _02013754 @ =0x02098E9C - mov r0, r7 - mov r2, r4 - bl SprintfStatic -_02013730: - add sp, sp, #0x1c - pop {r3, r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02013738: .4byte 0x02098D68 -_0201373C: .4byte 0x02098DE4 -_02013740: .4byte 0x02098DF4 -_02013744: .4byte 0x02098E04 -_02013748: .4byte 0x02098E0C -_0201374C: .4byte 0x02098E14 -_02013750: .4byte 0x02098E58 -_02013754: .4byte 0x02098E9C - arm_func_end FormatMoveString - - arm_func_start SprintfStatic -SprintfStatic: @ 0x02013758 - push {r0, r1, r2, r3} - push {r3, lr} - add r2, sp, #0xc - bic r2, r2, #3 - ldr r1, [sp, #0xc] - add r2, r2, #4 - bl Vsprintf - pop {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end SprintfStatic - - arm_func_start FormatMoveStringMore -FormatMoveStringMore: @ 0x02013780 - push {r3, r4, r5, r6, r7, lr} - mov r6, r1 - mov r7, r0 - mov r5, r2 - mov r4, r3 - mov r0, r6 - bl GetDungeonResultString - mov r1, r5 - mov r2, r4 - orr ip, r6, #0x10000 - add r3, r7, r6, lsl #2 - str ip, [r3, #0x10] - bl FormatMoveString - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FormatMoveStringMore - - arm_func_start InitMove -InitMove: @ 0x020137B8 - push {r4, lr} - mov r4, r0 - mov r2, #5 - strb r2, [r4] - mov r2, #0 - strh r2, [r4, #2] - strh r1, [r4, #4] - bl GetMaxPp - strb r0, [r4, #6] - mov r0, #0 - strb r0, [r4, #7] - pop {r4, pc} - arm_func_end InitMove - - arm_func_start GetInfoMoveCheckId -GetInfoMoveCheckId: @ 0x020137E8 - push {r4, lr} - mov r4, r0 - cmp r1, #0 - moveq r0, #0 - strbeq r0, [r4] - popeq {r4, pc} - mov r2, #5 - strb r2, [r4] - mov r2, #0 - strh r2, [r4, #2] - strh r1, [r4, #4] - bl GetMaxPp - strb r0, [r4, #6] - mov r0, #0 - strb r0, [r4, #7] - pop {r4, pc} - arm_func_end GetInfoMoveCheckId - - arm_func_start GetInfoMoveGround -GetInfoMoveGround: @ 0x02013828 - mov r2, #5 - strb r2, [r0] - strh r1, [r0, #2] - mov r1, #0 - strb r1, [r0, #4] - bx lr - arm_func_end GetInfoMoveGround - - arm_func_start GetMoveTargetAndRange -GetMoveTargetAndRange: @ 0x02013840 - ldr r2, _02013860 @ =0x020AF6DC - ldrh r3, [r0, #4] - ldr r2, [r2, #8] - mov r0, #0x1a - mla r0, r3, r0, r2 - add r0, r0, r1, lsl #1 - ldrsh r0, [r0, #4] - bx lr - .align 2, 0 -_02013860: .4byte 0x020AF6DC - arm_func_end GetMoveTargetAndRange - - arm_func_start GetMoveType -GetMoveType: @ 0x02013864 - ldr r1, _02013880 @ =0x020AF6DC - ldrh r2, [r0, #4] - ldr r1, [r1, #8] - mov r0, #0x1a - mla r0, r2, r0, r1 - ldrb r0, [r0, #2] - bx lr - .align 2, 0 -_02013880: .4byte 0x020AF6DC - arm_func_end GetMoveType - - arm_func_start GetMovesetLevelUpPtr -GetMovesetLevelUpPtr: @ 0x02013884 - push {r4, lr} - mov r4, r0 - cmp r4, #0x258 - subge r0, r4, #0x258 - lslge r0, r0, #0x10 - asrge r4, r0, #0x10 - mov r0, r4 - bl IsInvalidMoveset - cmp r0, #0 - ldrne r0, _020138C4 @ =0x02098D64 - ldreq r1, _020138C8 @ =0x020AF6DC - moveq r0, #0xc - smulbbeq r0, r4, r0 - ldreq r1, [r1] - ldreq r0, [r1, r0] - pop {r4, pc} - .align 2, 0 -_020138C4: .4byte 0x02098D64 -_020138C8: .4byte 0x020AF6DC - arm_func_end GetMovesetLevelUpPtr - - arm_func_start IsInvalidMoveset -IsInvalidMoveset: @ 0x020138CC - cmp r0, #0 - ble _020138E0 - ldr r1, _020138F0 @ =0x00000229 - cmp r0, r1 - blt _020138E8 -_020138E0: - mov r0, #1 - bx lr -_020138E8: - mov r0, #0 - bx lr - .align 2, 0 -_020138F0: .4byte 0x00000229 - arm_func_end IsInvalidMoveset - - arm_func_start GetMovesetHmTmPtr -GetMovesetHmTmPtr: @ 0x020138F4 - push {r4, lr} - mov r4, r0 - cmp r4, #0x258 - subge r0, r4, #0x258 - lslge r0, r0, #0x10 - asrge r4, r0, #0x10 - mov r0, r4 - bl IsInvalidMoveset - cmp r0, #0 - ldrne r0, _02013938 @ =0x02098D64 - popne {r4, pc} - ldr r1, _0201393C @ =0x020AF6DC - mov r0, #0xc - ldr r1, [r1] - smlabb r0, r4, r0, r1 - ldr r0, [r0, #4] - pop {r4, pc} - .align 2, 0 -_02013938: .4byte 0x02098D64 -_0201393C: .4byte 0x020AF6DC - arm_func_end GetMovesetHmTmPtr - - arm_func_start GetMovesetEggPtr -GetMovesetEggPtr: @ 0x02013940 - push {r4, lr} - mov r4, r0 - cmp r4, #0x258 - subge r0, r4, #0x258 - lslge r0, r0, #0x10 - asrge r4, r0, #0x10 - mov r0, r4 - bl IsInvalidMoveset - cmp r0, #0 - ldrne r0, _02013984 @ =0x02098D64 - popne {r4, pc} - ldr r1, _02013988 @ =0x020AF6DC - mov r0, #0xc - ldr r1, [r1] - smlabb r0, r4, r0, r1 - ldr r0, [r0, #8] - pop {r4, pc} - .align 2, 0 -_02013984: .4byte 0x02098D64 -_02013988: .4byte 0x020AF6DC - arm_func_end GetMovesetEggPtr - - arm_func_start GetMoveAiWeight -GetMoveAiWeight: @ 0x0201398C - ldr r1, _020139A8 @ =0x020AF6DC - ldrh r2, [r0, #4] - ldr r1, [r1, #8] - mov r0, #0x1a - mla r0, r2, r0, r1 - ldrb r0, [r0, #9] - bx lr - .align 2, 0 -_020139A8: .4byte 0x020AF6DC - arm_func_end GetMoveAiWeight - - arm_func_start GetMoveNbStrikes -GetMoveNbStrikes: @ 0x020139AC - ldr r1, _020139C8 @ =0x020AF6DC - ldrh r2, [r0, #4] - ldr r1, [r1, #8] - mov r0, #0x1a - mla r0, r2, r0, r1 - ldrb r0, [r0, #0xd] - bx lr - .align 2, 0 -_020139C8: .4byte 0x020AF6DC - arm_func_end GetMoveNbStrikes - - arm_func_start GetMoveBasePower -GetMoveBasePower: @ 0x020139CC - ldrh r2, [r0, #4] - mov r0, #0x1a - ldr r1, _020139E8 @ =0x020AF6DC - mul r0, r2, r0 - ldr r1, [r1, #8] - ldrsh r0, [r1, r0] - bx lr - .align 2, 0 -_020139E8: .4byte 0x020AF6DC - arm_func_end GetMoveBasePower - - arm_func_start GetMoveBasePowerGround -GetMoveBasePowerGround: @ 0x020139EC - ldrh r2, [r0, #2] - mov r0, #0x1a - ldr r1, _02013A08 @ =0x020AF6DC - mul r0, r2, r0 - ldr r1, [r1, #8] - ldrsh r0, [r1, r0] - bx lr - .align 2, 0 -_02013A08: .4byte 0x020AF6DC - arm_func_end GetMoveBasePowerGround - - arm_func_start GetMoveAccuracyOrAiChance -GetMoveAccuracyOrAiChance: @ 0x02013A0C - ldr r2, _02013A2C @ =0x020AF6DC - ldrh r3, [r0, #4] - ldr r2, [r2, #8] - mov r0, #0x1a - mla r0, r3, r0, r2 - add r0, r0, r1 - ldrb r0, [r0, #0xa] - bx lr - .align 2, 0 -_02013A2C: .4byte 0x020AF6DC - arm_func_end GetMoveAccuracyOrAiChance - - arm_func_start GetMoveBasePp -GetMoveBasePp: @ 0x02013A30 - ldr r1, _02013A4C @ =0x020AF6DC - ldrh r2, [r0, #4] - ldr r1, [r1, #8] - mov r0, #0x1a - mla r0, r2, r0, r1 - ldrb r0, [r0, #8] - bx lr - .align 2, 0 -_02013A4C: .4byte 0x020AF6DC - arm_func_end GetMoveBasePp - - arm_func_start GetMaxPp -GetMaxPp: @ 0x02013A50 - ldr r1, _02013AC0 @ =0x020AF6DC - ldrh r2, [r0, #4] - ldr r3, [r1, #8] - mov r1, #0x1a - mla r1, r2, r1, r3 - ldrh r2, [r0, #2] - ldrb r0, [r1, #8] - tst r2, #0x100 - ldrne r1, _02013AC4 @ =0x020A18A0 - ldrshne r1, [r1] - addne r0, r0, r1 - lslne r0, r0, #0x10 - asrne r0, r0, #0x10 - tst r2, #0x200 - ldrne r1, _02013AC8 @ =0x020A18C8 - ldrshne r1, [r1] - addne r0, r0, r1 - lslne r0, r0, #0x10 - asrne r0, r0, #0x10 - tst r2, #0x400 - ldrne r1, _02013ACC @ =0x020A1874 - ldrshne r1, [r1] - addne r0, r0, r1 - lslne r0, r0, #0x10 - asrne r0, r0, #0x10 - cmp r0, #0x63 - movgt r0, #0x63 - bx lr - .align 2, 0 -_02013AC0: .4byte 0x020AF6DC -_02013AC4: .4byte 0x020A18A0 -_02013AC8: .4byte 0x020A18C8 -_02013ACC: .4byte 0x020A1874 - arm_func_end GetMaxPp - - arm_func_start GetMoveMaxGinsengBoost -GetMoveMaxGinsengBoost: @ 0x02013AD0 - ldr r1, _02013AEC @ =0x020AF6DC - ldrh r2, [r0, #4] - ldr r1, [r1, #8] - mov r0, #0x1a - mla r0, r2, r0, r1 - ldrb r0, [r0, #0xe] - bx lr - .align 2, 0 -_02013AEC: .4byte 0x020AF6DC - arm_func_end GetMoveMaxGinsengBoost - - arm_func_start GetMoveMaxGinsengBoostGround -GetMoveMaxGinsengBoostGround: @ 0x02013AF0 - ldr r1, _02013B0C @ =0x020AF6DC - ldrh r2, [r0, #2] - ldr r1, [r1, #8] - mov r0, #0x1a - mla r0, r2, r0, r1 - ldrb r0, [r0, #0xe] - bx lr - .align 2, 0 -_02013B0C: .4byte 0x020AF6DC - arm_func_end GetMoveMaxGinsengBoostGround - - arm_func_start GetMoveCritChance -GetMoveCritChance: @ 0x02013B10 - ldr r1, _02013B2C @ =0x020AF6DC - ldrh r2, [r0, #4] - ldr r1, [r1, #8] - mov r0, #0x1a - mla r0, r2, r0, r1 - ldrb r0, [r0, #0xf] - bx lr - .align 2, 0 -_02013B2C: .4byte 0x020AF6DC - arm_func_end GetMoveCritChance - - arm_func_start IsThawingMove -IsThawingMove: @ 0x02013B30 - ldr r1, _02013B4C @ =0x020AF6DC - ldrh r2, [r0, #4] - ldr r1, [r1, #8] - mov r0, #0x1a - mla r0, r2, r0, r1 - ldrb r0, [r0, #0x13] - bx lr - .align 2, 0 -_02013B4C: .4byte 0x020AF6DC - arm_func_end IsThawingMove - - arm_func_start IsAffectedByTaunt -IsAffectedByTaunt: @ 0x02013B50 - ldr r1, _02013B6C @ =0x020AF6DC - ldrh r2, [r0, #4] - ldr r1, [r1, #8] - mov r0, #0x1a - mla r0, r2, r0, r1 - ldrb r0, [r0, #0x14] - bx lr - .align 2, 0 -_02013B6C: .4byte 0x020AF6DC - arm_func_end IsAffectedByTaunt - - arm_func_start GetMoveRangeId -GetMoveRangeId: @ 0x02013B70 - ldr r1, _02013B8C @ =0x020AF6DC - ldrh r2, [r0, #4] - ldr r1, [r1, #8] - mov r0, #0x1a - mla r0, r2, r0, r1 - ldrb r0, [r0, #0x15] - bx lr - .align 2, 0 -_02013B8C: .4byte 0x020AF6DC - arm_func_end GetMoveRangeId - - arm_func_start GetMoveActualAccuracy -GetMoveActualAccuracy: @ 0x02013B90 - push {r3, lr} - ldr r2, _02013BE4 @ =0x020AF6DC - mov r1, #0x1a - ldr r2, [r2, #8] - mla r1, r0, r1, r2 - ldrb r0, [r1, #0xe] - cmp r0, #0 - ldrbeq r0, [r1, #0xa] - popeq {r3, pc} - cmp r0, #0x63 - bne _02013BDC - ldrb r2, [r1, #0xa] - ldrb r0, [r1, #0xb] - cmp r2, #0x7d - popeq {r3, pc} - mul r0, r2, r0 - mov r1, #0x64 - bl DivideInt - pop {r3, pc} -_02013BDC: - mov r0, #0 - pop {r3, pc} - .align 2, 0 -_02013BE4: .4byte 0x020AF6DC - arm_func_end GetMoveActualAccuracy - - arm_func_start GetMoveBasePowerFromId -GetMoveBasePowerFromId: @ 0x02013BE8 - mov r1, #0x1a - mul r1, r0, r1 - ldr r0, _02013C00 @ =0x020AF6DC - ldr r0, [r0, #8] - ldrsh r0, [r0, r1] - bx lr - .align 2, 0 -_02013C00: .4byte 0x020AF6DC - arm_func_end GetMoveBasePowerFromId - - arm_func_start IsMoveRangeString19 -IsMoveRangeString19: @ 0x02013C04 - ldr r1, _02013C2C @ =0x020AF6DC - ldrh r2, [r0, #4] - ldr r1, [r1, #8] - mov r0, #0x1a - mla r0, r2, r0, r1 - ldrb r0, [r0, #0x15] - cmp r0, #0x13 - moveq r0, #1 - movne r0, #0 - bx lr - .align 2, 0 -_02013C2C: .4byte 0x020AF6DC - arm_func_end IsMoveRangeString19 - - arm_func_start GetMoveMessageFromId -GetMoveMessageFromId: @ 0x02013C30 - ldr r2, _02013C5C @ =0x020AF6DC - mov r1, #0x1a - ldr r2, [r2, #8] - ldr ip, _02013C60 @ =StringFromMessageId - mla r1, r0, r1, r2 - ldrh r0, [r1, #0x18] - add r0, r0, #0x314 - add r0, r0, #0xc00 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bx ip - .align 2, 0 -_02013C5C: .4byte 0x020AF6DC -_02013C60: .4byte StringFromMessageId - arm_func_end GetMoveMessageFromId - - arm_func_start GetNbMoves -GetNbMoves: @ 0x02013C64 - push {r4, lr} - mov r4, #0 - mov lr, r4 - mov r2, r4 - mov r3, #1 - mov r1, #6 -_02013C7C: - mul ip, lr, r1 - ldrb ip, [r0, ip] - add lr, lr, #1 - tst ip, #1 - movne ip, r3 - moveq ip, r2 - tst ip, #0xff - addne r4, r4, #1 - cmp lr, #4 - blt _02013C7C - mov r0, r4 - pop {r4, pc} - arm_func_end GetNbMoves - - arm_func_start GetMovesetIdx -GetMovesetIdx: @ 0x02013CAC - push {r3, r4, r5, lr} - mov r5, #0 - mov ip, r5 - mov lr, #1 - mov r2, #6 - b _02013CF8 -_02013CC4: - mul r4, r5, r2 - ldrb r3, [r0, r4] - add r4, r0, r4 - tst r3, #1 - movne r3, lr - moveq r3, ip - tst r3, #0xff - beq _02013CF4 - ldrh r3, [r4, #2] - cmp r1, r3 - moveq r0, r5 - popeq {r3, r4, r5, pc} -_02013CF4: - add r5, r5, #1 -_02013CF8: - cmp r5, #4 - blt _02013CC4 - mvn r0, #0 - pop {r3, r4, r5, pc} - arm_func_end GetMovesetIdx - - arm_func_start IsReflectedByMagicCoat -IsReflectedByMagicCoat: @ 0x02013D08 - ldr r2, _02013D20 @ =0x020AF6DC - mov r1, #0x1a - ldr r2, [r2, #8] - mla r1, r0, r1, r2 - ldrb r0, [r1, #0x10] - bx lr - .align 2, 0 -_02013D20: .4byte 0x020AF6DC - arm_func_end IsReflectedByMagicCoat - - arm_func_start CanBeSnatched -CanBeSnatched: @ 0x02013D24 - ldr r2, _02013D3C @ =0x020AF6DC - mov r1, #0x1a - ldr r2, [r2, #8] - mla r1, r0, r1, r2 - ldrb r0, [r1, #0x11] - bx lr - .align 2, 0 -_02013D3C: .4byte 0x020AF6DC - arm_func_end CanBeSnatched - - arm_func_start FailsWhileMuzzled -FailsWhileMuzzled: @ 0x02013D40 - ldr r2, _02013D58 @ =0x020AF6DC - mov r1, #0x1a - ldr r2, [r2, #8] - mla r1, r0, r1, r2 - ldrb r0, [r1, #0x12] - bx lr - .align 2, 0 -_02013D58: .4byte 0x020AF6DC - arm_func_end FailsWhileMuzzled - - arm_func_start IsSoundMove -IsSoundMove: @ 0x02013D5C - ldrh r2, [r0, #4] - cmp r2, #0xd9 - moveq r0, #1 - bxeq lr - cmp r2, #0x11c - moveq r0, #1 - bxeq lr - cmp r2, #0x53 - moveq r0, #1 - bxeq lr - cmp r2, #0x22 - moveq r0, #1 - bxeq lr - cmp r2, #0x54 - moveq r0, #1 - bxeq lr - cmp r2, #0xab - moveq r0, #1 - bxeq lr - ldr r1, _02013E10 @ =0x00000125 - cmp r2, r1 - moveq r0, #1 - bxeq lr - cmp r2, #0x1b - moveq r0, #1 - bxeq lr - cmp r2, #0xf1 - moveq r0, #1 - bxeq lr - cmp r2, #0x19 - moveq r0, #1 - bxeq lr - cmp r2, #0x1a - moveq r0, #1 - bxeq lr - add r0, r1, #0xed - cmp r2, r0 - moveq r0, #1 - bxeq lr - add r0, r1, #0x99 - cmp r2, r0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_02013E10: .4byte 0x00000125 - arm_func_end IsSoundMove - - arm_func_start IsRecoilMove -IsRecoilMove: @ 0x02013E14 - mov r3, #0 - ldr r2, _02013E50 @ =0x02098D74 - b _02013E38 -_02013E20: - cmp r0, r1 - moveq r0, #1 - bxeq lr - add r1, r3, #1 - lsl r1, r1, #0x10 - asr r3, r1, #0x10 -_02013E38: - lsl r1, r3, #1 - ldrh r1, [r2, r1] - cmp r1, #0 - bne _02013E20 - mov r0, #0 - bx lr - .align 2, 0 -_02013E50: .4byte 0x02098D74 - arm_func_end IsRecoilMove - - arm_func_start FUN_02013E54 -FUN_02013E54: @ 0x02013E54 - push {r4, r5, r6, lr} - sub sp, sp, #0x88 - mov r4, r1 - mov r5, r0 - ldrb r2, [r5, r4, lsl #3] - add r1, sp, #8 - orr r2, r2, #0x80 - strb r2, [r5, r4, lsl #3] - bl ManipMoves1v1 - add r0, sp, #8 - bl FUN_02014230 - cmp r0, #0 - blt _02013F14 - cmp r0, #3 - bge _02013F14 - add r1, r0, #1 - mov r2, #0 -_02013E98: - add r3, sp, #8 - add r3, r3, r0, lsl #5 - add ip, sp, #0 - add lr, r3, r2, lsl #3 - mov r6, #4 -_02013EAC: - ldrh r3, [lr], #2 - subs r6, r6, #1 - strh r3, [ip], #2 - bne _02013EAC - add r3, sp, #8 - add ip, r3, r0, lsl #5 - add r3, r3, r1, lsl #5 - mov r6, #4 - add lr, r3, r2, lsl #3 - add ip, ip, r2, lsl #3 -_02013ED4: - ldrh r3, [lr], #2 - subs r6, r6, #1 - strh r3, [ip], #2 - bne _02013ED4 - add r3, sp, #8 - add r3, r3, r1, lsl #5 - add r6, sp, #0 - add lr, r3, r2, lsl #3 - mov ip, #4 -_02013EF8: - ldrh r3, [r6], #2 - subs ip, ip, #1 - strh r3, [lr], #2 - bne _02013EF8 - add r2, r2, #1 - cmp r2, #4 - blt _02013E98 -_02013F14: - add r1, sp, #8 - mov r0, r5 - bl ManipMoves1v2 - mov r1, #0 - b _02013F44 -_02013F28: - ldrb r0, [r5, r1, lsl #3] - tst r0, #0x80 - bicne r0, r0, #0x80 - movne r4, r1 - strbne r0, [r5, r1, lsl #3] - bne _02013F4C - add r1, r1, #1 -_02013F44: - cmp r1, #4 - blt _02013F28 -_02013F4C: - mov r0, r4 - add sp, sp, #0x88 - pop {r4, r5, r6, pc} - arm_func_end FUN_02013E54 - - arm_func_start FUN_02013F58 -FUN_02013F58: @ 0x02013F58 - push {r4, r5, r6, lr} - sub sp, sp, #0x88 - mov r4, r1 - mov r5, r0 - ldrb r2, [r5, r4, lsl #3] - add r1, sp, #8 - orr r2, r2, #0x80 - strb r2, [r5, r4, lsl #3] - bl ManipMoves1v1 - add r0, sp, #8 - bl FUN_02014230 - cmp r0, #1 - blt _02014018 - cmp r0, #4 - bge _02014018 - sub r1, r0, #1 - mov r2, #0 -_02013F9C: - add r3, sp, #8 - add r3, r3, r0, lsl #5 - add ip, sp, #0 - add lr, r3, r2, lsl #3 - mov r6, #4 -_02013FB0: - ldrh r3, [lr], #2 - subs r6, r6, #1 - strh r3, [ip], #2 - bne _02013FB0 - add r3, sp, #8 - add ip, r3, r0, lsl #5 - add r3, r3, r1, lsl #5 - mov r6, #4 - add lr, r3, r2, lsl #3 - add ip, ip, r2, lsl #3 -_02013FD8: - ldrh r3, [lr], #2 - subs r6, r6, #1 - strh r3, [ip], #2 - bne _02013FD8 - add r3, sp, #8 - add r3, r3, r1, lsl #5 - add r6, sp, #0 - add lr, r3, r2, lsl #3 - mov ip, #4 -_02013FFC: - ldrh r3, [r6], #2 - subs ip, ip, #1 - strh r3, [lr], #2 - bne _02013FFC - add r2, r2, #1 - cmp r2, #4 - blt _02013F9C -_02014018: - add r1, sp, #8 - mov r0, r5 - bl ManipMoves1v2 - mov r1, #0 - b _02014048 -_0201402C: - ldrb r0, [r5, r1, lsl #3] - tst r0, #0x80 - bicne r0, r0, #0x80 - movne r4, r1 - strbne r0, [r5, r1, lsl #3] - bne _02014050 - add r1, r1, #1 -_02014048: - cmp r1, #4 - blt _0201402C -_02014050: - mov r0, r4 - add sp, sp, #0x88 - pop {r4, r5, r6, pc} - arm_func_end FUN_02013F58 - - arm_func_start FUN_0201405c -FUN_0201405c: @ 0x0201405C - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov r3, #0 - mov ip, r3 - mov lr, #0x63 - mov r4, r3 - mov r5, #1 - b _020140A4 -_02014078: - ldrb r2, [r0, r1, lsl #3] - lsl r6, r1, #3 - tst r2, #1 - movne r2, r5 - moveq r2, r4 - tst r2, #0xff - beq _020140AC - ldrb r2, [r0, r6] - tst r2, #2 - beq _020140AC - sub r1, r1, #1 -_020140A4: - cmp r1, #0 - bge _02014078 -_020140AC: - mov r7, #1 - add r2, r1, #1 - mov r6, #0 - mov r4, r7 - b _020140F0 -_020140C0: - ldrb r5, [r0, r2, lsl #3] - lsl r8, r2, #3 - tst r5, #1 - movne r5, r7 - moveq r5, r6 - tst r5, #0xff - beq _020140F8 - ldrb r5, [r0, r8] - tst r5, #2 - beq _020140F8 - mov ip, r4 - add r2, r2, #1 -_020140F0: - cmp r2, #4 - blt _020140C0 -_020140F8: - cmp ip, #0 - moveq r0, #0x63 - popeq {r3, r4, r5, r6, r7, r8, sb, pc} - mov r8, #1 - mov ip, #0 - sub r2, r2, #1 - mov r7, ip - mov r6, r8 - mov r4, r8 - b _02014168 -_02014120: - ldrb r5, [r0, r2, lsl #3] - add sb, r0, r2, lsl #3 - tst r5, #1 - movne r5, r8 - moveq r5, r7 - tst r5, #0xff - beq _02014170 - ldrb r5, [sb, #6] - sub r2, r2, #1 - cmp lr, r5 - movgt lr, r5 - cmp r5, #0 - ldrh r5, [sb, #2] - moveq ip, r6 - tst r5, #0x20 - bicne r5, r5, #0x20 - movne ip, r4 - strhne r5, [sb, #2] -_02014168: - cmp r2, r1 - bge _02014120 -_02014170: - cmp ip, #0 - moveq r0, lr - popeq {r3, r4, r5, r6, r7, r8, sb, pc} - mov r4, #1 - add r6, r1, #1 - mov ip, #0 - mov r1, r4 - b _020141C8 -_02014190: - ldrb r2, [r0, r6, lsl #3] - lsl r5, r6, #3 - tst r2, #1 - movne r2, r4 - moveq r2, ip - tst r2, #0xff - beq _020141D0 - ldrb r2, [r0, r5] - tst r2, #2 - beq _020141D0 - bic r2, r2, #2 - mov r3, r1 - strb r2, [r0, r5] - add r6, r6, #1 -_020141C8: - cmp r6, #4 - blt _02014190 -_020141D0: - cmp r3, #0 - movne lr, #0 - mov r0, lr - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_0201405c - - arm_func_start AllManip1 -AllManip1: @ 0x020141E0 - push {r4, lr} - sub sp, sp, #0x80 - add r1, sp, #0 - mov r4, r0 - bl ManipMoves1v1 - add r1, sp, #0 - mov r0, r4 - bl ManipMoves1v2 - add sp, sp, #0x80 - pop {r4, pc} - arm_func_end AllManip1 - - arm_func_start AllManip2 -AllManip2: @ 0x02014208 - push {r4, lr} - sub sp, sp, #0x200 - add r1, sp, #0 - mov r4, r0 - bl ManipMoves2v1 - add r1, sp, #0 - mov r0, r4 - bl ManipMoves2v2 - add sp, sp, #0x200 - pop {r4, pc} - arm_func_end AllManip2 - - arm_func_start FUN_02014230 -FUN_02014230: @ 0x02014230 - push {r3, r4, r5, lr} - mov r4, #0 - mov r2, r4 - mov r3, #1 - mov lr, r4 - b _0201428C -_02014248: - mov r5, lr - add ip, r0, r4, lsl #5 - b _02014280 -_02014254: - ldrb r1, [ip, r5, lsl #3] - tst r1, #1 - movne r1, r3 - moveq r1, r2 - tst r1, #0xff - beq _0201427C - ldrb r1, [ip, r5, lsl #3] - tst r1, #0x80 - movne r0, r4 - popne {r3, r4, r5, pc} -_0201427C: - add r5, r5, #1 -_02014280: - cmp r5, #4 - blt _02014254 - add r4, r4, #1 -_0201428C: - cmp r4, #4 - blt _02014248 - mvn r0, #0 - pop {r3, r4, r5, pc} - arm_func_end FUN_02014230 - - arm_func_start ManipMoves1v1 -ManipMoves1v1: @ 0x0201429C - push {r3, r4, r5, r6, r7, lr} - mov r4, #0 - mov ip, r4 - mov r3, r4 -_020142AC: - mov r5, r3 - add r2, r1, r4, lsl #5 -_020142B4: - strb ip, [r2, r5, lsl #3] - add r5, r5, #1 - cmp r5, #4 - blt _020142B4 - add r4, r4, #1 - cmp r4, #4 - blt _020142AC - mov r2, ip - mvn r3, #0 - mov r7, #0 -_020142DC: - cmp r2, #0 - beq _020142F0 - ldrb r4, [r0, r2, lsl #3] - tst r4, #2 - bne _020142F8 -_020142F0: - mov ip, r7 - add r3, r3, #1 -_020142F8: - add r4, r1, r3, lsl #5 - add r6, r0, r2, lsl #3 - add r5, r4, ip, lsl #3 - mov lr, #4 -_02014308: - ldrh r4, [r6], #2 - subs lr, lr, #1 - strh r4, [r5], #2 - bne _02014308 - add r4, r1, r3, lsl #5 - ldrb lr, [r4, ip, lsl #3] - add r2, r2, #1 - cmp r2, #4 - bic lr, lr, #2 - strb lr, [r4, ip, lsl #3] - add ip, ip, #1 - blt _020142DC - pop {r3, r4, r5, r6, r7, pc} - arm_func_end ManipMoves1v1 - - arm_func_start ManipMoves1v2 -ManipMoves1v2: @ 0x0201433C - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #8 - mov r2, #0 - mov r4, #1 - mov r7, r2 - mov r3, r2 - mov fp, r4 - mov sb, r4 - add r6, sp, #4 - mov lr, r2 - add ip, sp, #0 -_02014368: - mov r8, lr - strb lr, [r6, r7] - strb lr, [ip, r7] - add r5, r1, r7, lsl #5 -_02014378: - ldrb sl, [r5, r8, lsl #3] - tst sl, #1 - movne sl, r4 - moveq sl, r3 - tst sl, #0xff - beq _020143A8 - ldrb sl, [r5, r8, lsl #3] - tst sl, #8 - strbne fp, [r6, r7] - ldrb sl, [r5, r8, lsl #3] - tst sl, #4 - strbne sb, [ip, r7] -_020143A8: - add r8, r8, #1 - cmp r8, #4 - blt _02014378 - add r7, r7, #1 - cmp r7, #4 - blt _02014368 - mov r6, #0 - b _02014494 -_020143C8: - mov r7, #0 - add r5, sp, #4 - add r4, sp, #0 - add lr, r1, r6, lsl #5 - mov r3, r7 - mov ip, #1 - b _02014488 -_020143E4: - ldrb r8, [lr, r7, lsl #3] - tst r8, #1 - movne r8, ip - moveq r8, r3 - tst r8, #0xff - beq _02014484 - add fp, lr, r7, lsl #3 - add sl, r0, r2, lsl #3 - mov sb, #4 -_02014408: - ldrh r8, [fp], #2 - subs sb, sb, #1 - strh r8, [sl], #2 - bne _02014408 - ldrb r8, [r0, r2, lsl #3] - cmp r7, #0 - biceq r8, r8, #2 - orrne r8, r8, #2 - strb r8, [r0, r2, lsl #3] - ldrb r8, [r0, r2, lsl #3] - bic sb, r8, #8 - and r8, sb, #0xff - bic r8, r8, #4 - strb r8, [r0, r2, lsl #3] - ldrb r8, [r5, r6] - cmp r8, #0 - beq _0201445C - cmp r7, #0 - ldrbeq r8, [r0, r2, lsl #3] - orreq r8, r8, #8 - strbeq r8, [r0, r2, lsl #3] -_0201445C: - ldrb r8, [r4, r6] - cmp r8, #0 - beq _02014478 - cmp r7, #0 - ldrbeq r8, [r0, r2, lsl #3] - orreq r8, r8, #4 - strbeq r8, [r0, r2, lsl #3] -_02014478: - add r2, r2, #1 - cmp r2, #4 - beq _0201449C -_02014484: - add r7, r7, #1 -_02014488: - cmp r7, #4 - blt _020143E4 - add r6, r6, #1 -_02014494: - cmp r6, #4 - blt _020143C8 -_0201449C: - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end ManipMoves1v2 - - arm_func_start ManipMoves2v1 -ManipMoves2v1: @ 0x020144A4 - push {r3, r4, r5, r6, r7, lr} - mov r4, #0 - mov ip, r4 - mov r3, r4 -_020144B4: - mov r5, r3 - add r2, r1, r4, lsl #6 -_020144BC: - strb ip, [r2, r5, lsl #3] - add r5, r5, #1 - cmp r5, #8 - blt _020144BC - add r4, r4, #1 - cmp r4, #8 - blt _020144B4 - mov r2, ip - mvn r3, #0 - mov r7, #0 -_020144E4: - cmp r2, #0 - beq _020144F8 - ldrb r4, [r0, r2, lsl #3] - tst r4, #2 - bne _02014500 -_020144F8: - mov ip, r7 - add r3, r3, #1 -_02014500: - add r4, r1, r3, lsl #6 - add r6, r0, r2, lsl #3 - add r5, r4, ip, lsl #3 - mov lr, #4 -_02014510: - ldrh r4, [r6], #2 - subs lr, lr, #1 - strh r4, [r5], #2 - bne _02014510 - add r4, r1, r3, lsl #6 - ldrb lr, [r4, ip, lsl #3] - add r2, r2, #1 - cmp r2, #8 - bic lr, lr, #2 - strb lr, [r4, ip, lsl #3] - add ip, ip, #1 - blt _020144E4 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end ManipMoves2v1 - - arm_func_start ManipMoves2v2 -ManipMoves2v2: @ 0x02014544 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x10 - mov r2, #0 - mov r4, #1 - mov r7, r2 - mov r3, r2 - mov fp, r4 - mov sb, r4 - add r6, sp, #8 - mov lr, r2 - add ip, sp, #0 -_02014570: - mov r8, lr - strb lr, [r6, r7] - strb lr, [ip, r7] - add r5, r1, r7, lsl #6 -_02014580: - ldrb sl, [r5, r8, lsl #3] - tst sl, #1 - movne sl, r4 - moveq sl, r3 - tst sl, #0xff - beq _020145B0 - ldrb sl, [r5, r8, lsl #3] - tst sl, #8 - strbne fp, [r6, r7] - ldrb sl, [r5, r8, lsl #3] - tst sl, #4 - strbne sb, [ip, r7] -_020145B0: - add r8, r8, #1 - cmp r8, #8 - blt _02014580 - add r7, r7, #1 - cmp r7, #8 - blt _02014570 - mov r6, #0 - b _0201469C -_020145D0: - mov r7, #0 - add r5, sp, #8 - add r4, sp, #0 - add lr, r1, r6, lsl #6 - mov r3, r7 - mov ip, #1 - b _02014690 -_020145EC: - ldrb r8, [lr, r7, lsl #3] - tst r8, #1 - movne r8, ip - moveq r8, r3 - tst r8, #0xff - beq _0201468C - add fp, lr, r7, lsl #3 - add sl, r0, r2, lsl #3 - mov sb, #4 -_02014610: - ldrh r8, [fp], #2 - subs sb, sb, #1 - strh r8, [sl], #2 - bne _02014610 - ldrb r8, [r0, r2, lsl #3] - cmp r7, #0 - biceq r8, r8, #2 - orrne r8, r8, #2 - strb r8, [r0, r2, lsl #3] - ldrb r8, [r0, r2, lsl #3] - bic sb, r8, #8 - and r8, sb, #0xff - bic r8, r8, #4 - strb r8, [r0, r2, lsl #3] - ldrb r8, [r5, r6] - cmp r8, #0 - beq _02014664 - cmp r7, #0 - ldrbeq r8, [r0, r2, lsl #3] - orreq r8, r8, #8 - strbeq r8, [r0, r2, lsl #3] -_02014664: - ldrb r8, [r4, r6] - cmp r8, #0 - beq _02014680 - cmp r7, #0 - ldrbeq r8, [r0, r2, lsl #3] - orreq r8, r8, #4 - strbeq r8, [r0, r2, lsl #3] -_02014680: - add r2, r2, #1 - cmp r2, #8 - beq _020146A4 -_0201468C: - add r7, r7, #1 -_02014690: - cmp r7, #8 - blt _020145EC - add r6, r6, #1 -_0201469C: - cmp r6, #8 - blt _020145D0 -_020146A4: - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end ManipMoves2v2 - - arm_func_start DungeonMoveToGroundMove -DungeonMoveToGroundMove: @ 0x020146AC - ldrb r2, [r1] - tst r2, #1 - movne r3, #1 - moveq r3, #0 - tst r3, #0xff - moveq r1, #0 - strbeq r1, [r0] - bxeq lr - strb r2, [r0] - ldrh r2, [r1, #4] - strh r2, [r0, #2] - ldrb r1, [r1, #7] - strb r1, [r0, #4] - bx lr - arm_func_end DungeonMoveToGroundMove - - arm_func_start GroundToDungeonMoveset -GroundToDungeonMoveset: @ 0x020146E4 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov r4, #0 - mov r5, #6 - ldr r8, _02014774 @ =0x020AF6DC - mov lr, #1 - mov sb, r4 - mov r3, r4 - mov r6, #0x1a - mov r7, r5 -_02014708: - mul r2, r4, r7 - ldrb r2, [r1, r2] - tst r2, #1 - movne sl, lr - moveq sl, #0 - tst sl, #0xff - strbeq sb, [r0, r4, lsl #3] - beq _0201475C - mla ip, r4, r5, r1 - strb r2, [r0, r4, lsl #3] - add r2, r0, r4, lsl #3 - strh r3, [r2, #2] - ldrh sl, [ip, #2] - strh sl, [r2, #4] - ldrh fp, [ip, #2] - ldr sl, [r8, #8] - mla sl, fp, r6, sl - ldrb sl, [sl, #8] - strb sl, [r2, #6] - ldrb ip, [ip, #4] - strb ip, [r2, #7] -_0201475C: - add r4, r4, #1 - cmp r4, #4 - blt _02014708 - mov r1, #0 - strb r1, [r0, #0x20] - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02014774: .4byte 0x020AF6DC - arm_func_end GroundToDungeonMoveset - - arm_func_start DungeonToGroundMoveset -DungeonToGroundMoveset: @ 0x02014778 - push {r4, lr} - mov r4, #0 - mov r2, #6 -_02014784: - mul lr, r4, r2 - ldrb r3, [r1, r4, lsl #3] - add ip, r1, r4, lsl #3 - add r4, r4, #1 - strb r3, [r0, lr] - ldrh r3, [ip, #4] - add lr, r0, lr - cmp r4, #4 - strh r3, [lr, #2] - ldrb r3, [ip, #7] - strb r3, [lr, #4] - blt _02014784 - pop {r4, pc} - arm_func_end DungeonToGroundMoveset - - arm_func_start GetInfoGroundMoveset -GetInfoGroundMoveset: @ 0x020147B8 - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov r4, #0 - mov r7, #6 - mov r6, r0 - mov r5, r1 - mov sb, r4 - mov r8, r7 -_020147D4: - lsl r0, r4, #1 - ldrh r1, [r5, r0] - cmp r1, #0 - muleq r0, r4, r7 - strbeq sb, [r6, r0] - beq _020147F4 - mla r0, r4, r8, r6 - bl GetInfoMoveGround -_020147F4: - add r4, r4, #1 - cmp r4, #4 - blt _020147D4 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end GetInfoGroundMoveset - - arm_func_start GetMovesetIdx -GetMovesetIdx: @ 0x02014804 - push {r3, r4, r5, lr} - mov r5, #0 - mov ip, r5 - mov lr, #1 - mov r2, #6 - b _02014850 -_0201481C: - mul r4, r5, r2 - ldrb r3, [r0, r4] - add r4, r0, r4 - tst r3, #1 - movne r3, lr - moveq r3, ip - tst r3, #0xff - beq _0201484C - ldrh r3, [r4, #2] - cmp r1, r3 - moveq r0, r5 - popeq {r3, r4, r5, pc} -_0201484C: - add r5, r5, #1 -_02014850: - cmp r5, #4 - blt _0201481C - mvn r0, #0 - pop {r3, r4, r5, pc} - arm_func_end GetMovesetIdx - - arm_func_start FindFirstFreeMovesetIdx -FindFirstFreeMovesetIdx: @ 0x02014860 - push {r3, lr} - mov lr, #0 - mov r2, lr - mov r3, #1 - mov r1, #6 - b _0201489C -_02014878: - mul ip, lr, r1 - ldrb ip, [r0, ip] - tst ip, #1 - movne ip, r3 - moveq ip, r2 - tst ip, #0xff - moveq r0, lr - popeq {r3, pc} - add lr, lr, #1 -_0201489C: - cmp lr, #4 - blt _02014878 - mvn r0, #0 - pop {r3, pc} - arm_func_end FindFirstFreeMovesetIdx - - arm_func_start LearnMoves -LearnMoves: @ 0x020148AC - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x14 - mov r7, r1 - mov r1, #0 - mov r8, r0 - mov r6, r1 - add r0, sp, #0 -_020148C8: - strb r6, [r0, r1] - add r1, r1, #1 - cmp r1, #4 - blt _020148C8 - b _020149B0 -_020148DC: - lsl r0, r6, #1 - ldrh r4, [r7, r0] - cmp r4, #0 - beq _020149B8 - mov r0, r8 - mov r1, r4 - bl GetMovesetIdx - mvn r1, #0 - cmp r0, r1 - addne r1, sp, #0 - movne r2, #1 - strbne r2, [r1, r0] - bne _020149AC - mov r0, r8 - bl FindFirstFreeMovesetIdx - mvn r1, #0 - cmp r0, r1 - bne _02014990 - mov r5, #0 - mov r3, r5 - add r0, sp, #4 - add r2, sp, #0 -_02014934: - ldrb r1, [r2, r3] - cmp r1, #0 - streq r3, [r0, r5, lsl #2] - add r3, r3, #1 - addeq r5, r5, #1 - cmp r3, #4 - blt _02014934 - bl Rand16Bit - mov r1, r5 - bl DivideInt - add r2, sp, #4 - ldr r5, [r2, r1, lsl #2] - mov r0, #6 - mul r3, r5, r0 - mov r2, #0 - mov r1, r4 - add r0, r8, r3 - strb r2, [r8, r3] - bl GetInfoMoveGround - add r0, sp, #0 - mov r1, #1 - strb r1, [r0, r5] - b _020149AC -_02014990: - mov r1, #6 - mla r0, r1, r0, r8 - mov r1, r4 - bl GetInfoMoveGround - add r0, sp, #0 - mov r1, #1 - strb r1, [r0, r6] -_020149AC: - add r6, r6, #1 -_020149B0: - cmp r6, #4 - blt _020148DC -_020149B8: - add sp, sp, #0x14 - pop {r3, r4, r5, r6, r7, r8, pc} - arm_func_end LearnMoves - - arm_func_start FUN_020149c0 -FUN_020149c0: @ 0x020149C0 - push {r3, r4, r5, r6, r7, lr} - mov r2, #0 - mov r3, r2 - mov r6, r2 - mov r7, #1 - b _02014A24 -_020149D8: - ldrb r4, [r1, r3, lsl #3] - tst r4, #1 - movne r4, r7 - moveq r4, r6 - tst r4, #0xff - beq _02014A2C - add r5, r1, r3, lsl #3 - add r4, r0, r3, lsl #3 - mov lr, #4 -_020149FC: - ldrh ip, [r5], #2 - subs lr, lr, #1 - strh ip, [r4], #2 - bne _020149FC - add lr, r0, r3, lsl #3 - ldrh ip, [lr, #2] - add r2, r2, #1 - add r3, r3, #1 - bic ip, ip, #4 - strh ip, [lr, #2] -_02014A24: - cmp r3, #4 - blt _020149D8 -_02014A2C: - mov r1, #0 - b _02014A3C -_02014A34: - strb r1, [r0, r3, lsl #3] - add r3, r3, #1 -_02014A3C: - cmp r3, #8 - blt _02014A34 - mov r0, r2 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_020149c0 - - arm_func_start CopyMoveTo -CopyMoveTo: @ 0x02014A4C - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r2, #4 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #2 - mov r2, #0xa - bl CopyBitsTo - mov r0, r5 - add r1, r4, #4 - mov r2, #7 - bl CopyBitsTo - pop {r3, r4, r5, pc} - arm_func_end CopyMoveTo - - arm_func_start CopyMoveFrom -CopyMoveFrom: @ 0x02014A84 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r2, #4 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #2 - mov r2, #0xa - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #4 - mov r2, #7 - bl CopyBitsFrom - pop {r3, r4, r5, pc} - arm_func_end CopyMoveFrom - - arm_func_start CopyMovesetTo -CopyMovesetTo: @ 0x02014ABC - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r1 - mov r5, #0 - mov r4, #6 -_02014AD0: - mla r1, r5, r4, r6 - mov r0, r7 - bl CopyMoveTo - add r5, r5, #1 - cmp r5, #4 - blt _02014AD0 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end CopyMovesetTo - - arm_func_start CopyMovesetFrom -CopyMovesetFrom: @ 0x02014AEC - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r1 - mov r5, #0 - mov r4, #6 -_02014B00: - mla r1, r5, r4, r6 - mov r0, r7 - bl CopyMoveFrom - add r5, r5, #1 - cmp r5, #4 - blt _02014B00 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end CopyMovesetFrom - - arm_func_start FUN_02014b1c -FUN_02014b1c: @ 0x02014B1C - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r2, #4 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #2 - mov r2, #1 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #4 - mov r2, #0xa - bl CopyBitsTo - mov r0, r5 - add r1, r4, #6 - mov r2, #7 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #7 - mov r2, #7 - bl CopyBitsTo - pop {r3, r4, r5, pc} - arm_func_end FUN_02014b1c - - arm_func_start FUN_02014b74 -FUN_02014b74: @ 0x02014B74 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - mov r4, #0 -_02014B84: - mov r0, r6 - add r1, r5, r4, lsl #3 - bl FUN_02014b1c - add r4, r4, #1 - cmp r4, #4 - blt _02014B84 - mov r0, r6 - add r1, r5, #0x20 - mov r2, #8 - bl CopyBitsTo - pop {r4, r5, r6, pc} - arm_func_end FUN_02014b74 - - arm_func_start FUN_02014bb0 -FUN_02014bb0: @ 0x02014BB0 - push {r3, r4, r5, lr} - mov r4, r1 - mov r5, r0 - mov r0, r4 - mov r1, #0 - mov r2, #8 - bl Memset - mov r0, r5 - mov r1, r4 - mov r2, #4 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #2 - mov r2, #1 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #4 - mov r2, #0xa - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #6 - mov r2, #7 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #7 - mov r2, #7 - bl CopyBitsFrom - pop {r3, r4, r5, pc} - arm_func_end FUN_02014bb0 - - arm_func_start FUN_02014c20 -FUN_02014c20: @ 0x02014C20 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - mov r4, #0 -_02014C30: - mov r0, r6 - add r1, r5, r4, lsl #3 - bl FUN_02014bb0 - add r4, r4, #1 - cmp r4, #4 - blt _02014C30 - mov r3, #0 - mov r0, r6 - add r1, r5, #0x20 - mov r2, #8 - strb r3, [r5, #0x20] - bl CopyBitsFrom - pop {r4, r5, r6, pc} - arm_func_end FUN_02014c20 - - arm_func_start Is2TurnsMove -Is2TurnsMove: @ 0x02014C64 - cmp r0, #0x97 - moveq r0, #1 - bxeq lr - cmp r0, #0x64 - moveq r0, #1 - bxeq lr - cmp r0, #0x3c - moveq r0, #1 - bxeq lr - cmp r0, #0x4b - moveq r0, #1 - bxeq lr - cmp r0, #0x15c - moveq r0, #1 - bxeq lr - cmp r0, #0x99 - moveq r0, #1 - bxeq lr - cmp r0, #0xcd - moveq r0, #1 - bxeq lr - cmp r0, #0x9c - moveq r0, #1 - bxeq lr - cmp r0, #8 - moveq r0, #1 - bxeq lr - ldr r1, _02014CE8 @ =0x000001DD - cmp r0, r1 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_02014CE8: .4byte 0x000001DD - arm_func_end Is2TurnsMove - - arm_func_start IsRegularAttackOrProjectile -IsRegularAttackOrProjectile: @ 0x02014CEC - ldr r1, _02014D14 @ =0x00000163 - cmp r0, r1 - moveq r0, #1 - bxeq lr - add r1, r1, #0x32 - cmp r0, r1 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_02014D14: .4byte 0x00000163 - arm_func_end IsRegularAttackOrProjectile - - arm_func_start IsPunchMove -IsPunchMove: @ 0x02014D18 - mov r3, #0 - ldr r2, _02014D54 @ =0x02098D8A - b _02014D3C -_02014D24: - cmp r0, r1 - moveq r0, #1 - bxeq lr - add r1, r3, #1 - lsl r1, r1, #0x10 - asr r3, r1, #0x10 -_02014D3C: - lsl r1, r3, #1 - ldrh r1, [r2, r1] - cmp r1, #0 - bne _02014D24 - mov r0, #0 - bx lr - .align 2, 0 -_02014D54: .4byte 0x02098D8A - arm_func_end IsPunchMove - - arm_func_start IsHealingWishOrLunarDance -IsHealingWishOrLunarDance: @ 0x02014D58 - ldr r1, _02014D80 @ =0x000001B7 - cmp r0, r1 - moveq r0, #1 - bxeq lr - add r1, r1, #0x57 - cmp r0, r1 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_02014D80: .4byte 0x000001B7 - arm_func_end IsHealingWishOrLunarDance - - arm_func_start IsCopyingMove -IsCopyingMove: @ 0x02014D84 - ldr r1, _02014DB8 @ =0x00000147 - cmp r0, r1 - moveq r0, #1 - bxeq lr - cmp r0, #0x8a - moveq r0, #1 - bxeq lr - add r1, r1, #0xc6 - cmp r0, r1 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_02014DB8: .4byte 0x00000147 - arm_func_end IsCopyingMove - - arm_func_start IsTrappingMove -IsTrappingMove: @ 0x02014DBC - ldr r1, _02014DFC @ =0x00000127 - cmp r0, r1 - moveq r0, #1 - bxeq lr - cmp r0, #0x1f0 - moveq r0, #1 - bxeq lr - cmp r0, #0x1e0 - moveq r0, #1 - bxeq lr - add r1, r1, #0x6a - cmp r0, r1 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_02014DFC: .4byte 0x00000127 - arm_func_end IsTrappingMove - - arm_func_start IsOneHitKoMove -IsOneHitKoMove: @ 0x02014E00 - cmp r0, #0x83 - moveq r0, #1 - bxeq lr - cmp r0, #0x96 - moveq r0, #1 - bxeq lr - cmp r0, #0xb1 - moveq r0, #1 - bxeq lr - cmp r0, #0xf7 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr - arm_func_end IsOneHitKoMove - - arm_func_start IsNot2TurnsMoveOrSketch -IsNot2TurnsMoveOrSketch: @ 0x02014E38 - push {r4, lr} - mov r4, r0 - bl Is2TurnsMove - cmp r0, #0 - movne r0, #0 - popne {r4, pc} - cmp r4, #0x8a - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - pop {r4, pc} - arm_func_end IsNot2TurnsMoveOrSketch - - arm_func_start IsRealMove -IsRealMove: @ 0x02014E64 - cmp r0, #0 - moveq r0, #0 - bxeq lr - ldr r1, _02014EEC @ =0x000001D3 - cmp r0, r1 - moveq r0, #0 - bxeq lr - cmp r0, #0x160 - moveq r0, #0 - bxeq lr - sub r1, r1, #0x70 - cmp r0, r1 - blo _02014EA4 - cmp r0, #0x168 - movlo r0, #0 - bxlo lr -_02014EA4: - cmp r0, #0x168 - bls _02014EBC - ldr r1, _02014EF0 @ =0x0000018A - cmp r0, r1 - movlo r0, #0 - bxlo lr -_02014EBC: - ldr r1, _02014EF0 @ =0x0000018A - cmp r0, r1 - bls _02014ED8 - add r1, r1, #0x23 - cmp r0, r1 - movls r0, #0 - bxls lr -_02014ED8: - ldr r1, _02014EF4 @ =0x0000021F - cmp r0, r1 - movhs r0, #0 - movlo r0, #1 - bx lr - .align 2, 0 -_02014EEC: .4byte 0x000001D3 -_02014EF0: .4byte 0x0000018A -_02014EF4: .4byte 0x0000021F - arm_func_end IsRealMove - - arm_func_start IsMovesetValid -IsMovesetValid: @ 0x02014EF8 - push {r4, r5, r6, r7, r8, lr} - mov r8, #0 - mov r4, r0 - mov r6, r8 - mov r7, #1 - mov r5, #6 - b _02014F54 -_02014F14: - smulbb r1, r8, r5 - ldrb r0, [r4, r1] - add r1, r4, r1 - tst r0, #1 - movne r0, r7 - moveq r0, r6 - tst r0, #0xff - beq _02014F48 - ldrh r0, [r1, #2] - bl IsRealMove - cmp r0, #0 - moveq r0, #0 - popeq {r4, r5, r6, r7, r8, pc} -_02014F48: - add r0, r8, #1 - lsl r0, r0, #0x10 - asr r8, r0, #0x10 -_02014F54: - cmp r8, #4 - blt _02014F14 - mov r0, #1 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end IsMovesetValid - - arm_func_start IsRealMoveInTimeDarkness -IsRealMoveInTimeDarkness: @ 0x02014F64 - cmp r0, #0 - moveq r0, #0 - bxeq lr - ldr r1, _02014FF8 @ =0x000001D3 - cmp r0, r1 - moveq r0, #0 - bxeq lr - cmp r0, #0x1d4 - moveq r0, #0 - bxeq lr - cmp r0, #0x160 - moveq r0, #0 - bxeq lr - sub r1, r1, #0x70 - cmp r0, r1 - blo _02014FB0 - cmp r0, #0x168 - movlo r0, #0 - bxlo lr -_02014FB0: - cmp r0, #0x168 - bls _02014FC8 - ldr r1, _02014FFC @ =0x0000018A - cmp r0, r1 - movlo r0, #0 - bxlo lr -_02014FC8: - ldr r1, _02014FFC @ =0x0000018A - cmp r0, r1 - bls _02014FE4 - add r1, r1, #0x23 - cmp r0, r1 - movls r0, #0 - bxls lr -_02014FE4: - ldr r1, _02015000 @ =0x0000021F - cmp r0, r1 - movhs r0, #0 - movlo r0, #1 - bx lr - .align 2, 0 -_02014FF8: .4byte 0x000001D3 -_02014FFC: .4byte 0x0000018A -_02015000: .4byte 0x0000021F - arm_func_end IsRealMoveInTimeDarkness - - arm_func_start IsMovesetValidInTimeDarkness -IsMovesetValidInTimeDarkness: @ 0x02015004 - push {r3, lr} - bl GetFirstNotRealMoveInTimeDarkness - mvn r1, #0 - cmp r0, r1 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end IsMovesetValidInTimeDarkness - - arm_func_start GetFirstNotRealMoveInTimeDarkness -GetFirstNotRealMoveInTimeDarkness: @ 0x02015024 - push {r4, r5, r6, r7, r8, lr} - mov r8, #0 - mov r4, r0 - mov r6, r8 - mov r7, #1 - mov r5, #6 - b _02015080 -_02015040: - smulbb r1, r8, r5 - ldrb r0, [r4, r1] - add r1, r4, r1 - tst r0, #1 - movne r0, r7 - moveq r0, r6 - tst r0, #0xff - beq _02015074 - ldrh r0, [r1, #2] - bl IsRealMoveInTimeDarkness - cmp r0, #0 - moveq r0, r8 - popeq {r4, r5, r6, r7, r8, pc} -_02015074: - add r0, r8, #1 - lsl r0, r0, #0x10 - asr r8, r0, #0x10 -_02015080: - cmp r8, #4 - blt _02015040 - mvn r0, #0 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end GetFirstNotRealMoveInTimeDarkness - - arm_func_start FUN_02015090 -FUN_02015090: @ 0x02015090 - push {r4, r5, r6, lr} - mov r4, #0 - mov r6, r0 - mov r5, r1 - mov lr, r4 - mov r2, r4 - mov r3, #1 - mov r0, #6 - b _020150E0 -_020150B4: - mul ip, lr, r0 - ldrb r1, [r6, ip] - add lr, lr, #1 - tst r1, #1 - movne r1, r3 - moveq r1, r2 - tst r1, #0xff - ldrbne r1, [r6, ip] - addne r4, r4, #1 - bicne r1, r1, #2 - strbne r1, [r6, ip] -_020150E0: - cmp lr, r5 - blt _020150B4 - bl Rand16Bit - mov r1, r4 - bl DivideInt - mov r0, #6 - mla r0, r1, r0, r6 - ldrh r0, [r0, #2] - sub r3, r5, #1 - mov r2, #6 - b _02015130 -_0201510C: - mul r5, r1, r2 - add ip, r6, r5 - ldrh r4, [ip, #6] - add r1, r1, #1 - strh r4, [r6, r5] - ldrh r4, [ip, #8] - strh r4, [ip, #2] - ldrh r4, [ip, #0xa] - strh r4, [ip, #4] -_02015130: - cmp r1, r3 - blt _0201510C - mov r1, #6 - mul r1, r3, r1 - mov r2, #0 - strb r2, [r6, r1] - pop {r4, r5, r6, pc} - arm_func_end FUN_02015090 - - arm_func_start IsSameMove -IsSameMove: @ 0x0201514C - push {r4, lr} - ldrb r2, [r1] - tst r2, #1 - movne r2, #1 - moveq r2, #0 - tst r2, #0xff - moveq r0, #0 - popeq {r4, pc} - mov r4, #0 - mov ip, r4 - mov lr, #1 - b _020151B8 -_0201517C: - ldrb r2, [r0, r4, lsl #3] - tst r2, #1 - movne r2, lr - moveq r2, ip - tst r2, #0xff - beq _020151C0 - add r2, r0, r4, lsl #3 - ldrh r3, [r1, #4] - ldrh r2, [r2, #4] - cmp r3, r2 - moveq r0, #1 - popeq {r4, pc} - add r2, r4, #1 - lsl r2, r2, #0x10 - asr r4, r2, #0x10 -_020151B8: - cmp r4, #4 - blt _0201517C -_020151C0: - mov r0, #0 - pop {r4, pc} - arm_func_end IsSameMove - - arm_func_start GetMoveCategory -GetMoveCategory: @ 0x020151C8 - ldr r2, _020151E0 @ =0x020AF6DC - mov r1, #0x1a - ldr r2, [r2, #8] - mla r1, r0, r1, r2 - ldrb r0, [r1, #3] - bx lr - .align 2, 0 -_020151E0: .4byte 0x020AF6DC - arm_func_end GetMoveCategory - - arm_func_start GetPpIncrease -GetPpIncrease: @ 0x020151E4 - push {r4, r5, r6, lr} - mov r4, r0 - mov r0, r1 - mov r1, #0x39 - mov r6, #0 - bl IqSkillFlagTest - cmp r0, #0 - orrne r0, r6, #0x100 - lslne r0, r0, #0x10 - lsrne r6, r0, #0x10 - mov r0, r4 - mov r1, #0 - bl GetAbility - mov r5, r0 - mov r0, r4 - mov r1, #1 - bl GetAbility - mov r3, r0 - mov r1, r4 - mov r2, r5 - mov r0, #0x4a - bl BagHasExclusiveItemTypeForMonster - cmp r0, #0 - orrne r0, r6, #0x200 - lslne r0, r0, #0x10 - lsrne r6, r0, #0x10 - mov r0, r4 - mov r1, #0 - bl GetAbility - mov r5, r0 - mov r0, r4 - mov r1, #1 - bl GetAbility - mov r3, r0 - mov r1, r4 - mov r2, r5 - mov r0, #0x4b - bl BagHasExclusiveItemTypeForMonster - cmp r0, #0 - orrne r0, r6, #0x400 - lslne r0, r0, #0x10 - lsrne r6, r0, #0x10 - mov r0, r6 - pop {r4, r5, r6, pc} - arm_func_end GetPpIncrease - - arm_func_start OpenWaza -OpenWaza: @ 0x02015294 - push {r3, r4, lr} - sub sp, sp, #4 - ldr r1, _020152EC @ =0x020AF6E8 - mov r4, r0 - ldr r0, _020152F0 @ =0x020AF700 - ldr r1, [r1, r4, lsl #2] - add r0, r0, r4, lsl #3 - mov r2, #0 - bl LoadFileFromRom - ldr r1, _020152F0 @ =0x020AF700 - add r0, sp, #0 - ldr r1, [r1, r4, lsl #3] - bl HandleSir0Translation - ldr r3, [sp] - ldr r1, _020152F4 @ =0x020AF6F8 - ldr r2, [r3] - ldr r0, _020152F8 @ =0x020AF6F0 - str r2, [r1, r4, lsl #2] - ldr r1, [r3, #4] - str r1, [r0, r4, lsl #2] - add sp, sp, #4 - pop {r3, r4, pc} - .align 2, 0 -_020152EC: .4byte 0x020AF6E8 -_020152F0: .4byte 0x020AF700 -_020152F4: .4byte 0x020AF6F8 -_020152F8: .4byte 0x020AF6F0 - arm_func_end OpenWaza - - arm_func_start SelectWaza -SelectWaza: @ 0x020152FC - ldr r1, _0201531C @ =0x020AF6F8 - ldr r2, _02015320 @ =0x020AF6F0 - ldr r3, [r1, r0, lsl #2] - ldr r1, _02015324 @ =0x020AF6DC - ldr r0, [r2, r0, lsl #2] - str r3, [r1, #8] - str r0, [r1] - bx lr - .align 2, 0 -_0201531C: .4byte 0x020AF6F8 -_02015320: .4byte 0x020AF6F0 -_02015324: .4byte 0x020AF6DC - arm_func_end SelectWaza - - arm_func_start FUN_02015328 -FUN_02015328: @ 0x02015328 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #8 - mov r7, r0 - mov r6, r1 - mov r0, #0x40 - mov r1, #0 - mov r5, r2 - mov r4, r3 - bl MemAlloc - ldr r2, _02015500 @ =0x020AF710 - mov r1, #0x40 - str r0, [r2] - bl MemZero - ldr r0, _02015500 @ =0x020AF710 - ldr r2, [sp, #0x28] - ldr r1, _02015504 @ =0x020AF714 - ldr r0, [r0] - ldr r1, [r1, r2, lsl #2] - add r0, r0, #0x1c - mov r2, #0 - bl LoadFileFromRom - ldr r0, _02015500 @ =0x020AF710 - ldr r1, [r0] - add r0, r1, #0x10 - ldr r1, [r1, #0x1c] - bl HandleSir0Translation - ldr r0, _02015500 @ =0x020AF710 - ldr r1, [sp, #0x28] - ldr ip, [r0] - ldrsh r3, [sp, #0x24] - ldr r2, [ip, #0x10] - cmp r1, #2 - ldr r2, [r2, #4] - str r2, [ip, #0x2c] - ldr r2, [r0] - str r5, [r2, #8] - ldr r2, [r0] - str r4, [r2, #0xc] - ldr r2, [r0] - strh r3, [r2, #0x30] - mov r2, #0 - bne _02015454 - ldr r1, _02015508 @ =0x02098F60 - add r0, sp, #0 - bl LoadFileFromRom - ldr r0, _02015500 @ =0x020AF710 - ldr r1, [sp] - ldr r0, [r0] - add r0, r0, #0x14 - bl HandleSir0Translation - ldr r0, _02015500 @ =0x020AF710 - ldrsh r4, [sp, #0x24] - ldr r0, [r0] - ldr r2, [r0, #0x14] - mov r1, r4 - bl FUN_0201614c - add r0, sp, #0 - bl UnloadFile - ldr r1, _0201550C @ =0x02098F78 - add r0, sp, #0 - mov r2, #0 - bl LoadFileFromRom - ldr r0, _02015500 @ =0x020AF710 - ldr r1, [sp] - ldr r0, [r0] - add r0, r0, #0x14 - bl HandleSir0Translation - ldr r0, _02015500 @ =0x020AF710 - add r1, r4, #1 - ldr r0, [r0] - ldr r2, [r0, #0x14] - bl FUN_0201614c - add r0, sp, #0 - bl UnloadFile - b _020154CC -_02015454: - cmp r1, #1 - ldr r0, [r0] - bne _02015470 - ldr r1, _02015510 @ =0x02098F90 - add r0, r0, #0x24 - bl LoadFileFromRom - b _0201547C -_02015470: - ldr r1, _02015514 @ =0x02098FA8 - add r0, r0, #0x24 - bl LoadFileFromRom -_0201547C: - ldr r0, _02015500 @ =0x020AF710 - ldr r0, [r0] - ldr r1, [r0, #0x24] - add r0, r0, #0x14 - bl HandleSir0Translation - ldr r0, _02015500 @ =0x020AF710 - ldrsh r4, [sp, #0x24] - ldr r0, [r0] - ldr r2, [r0, #0x14] - mov r1, r4 - bl FUN_0201614c - ldr r0, _02015500 @ =0x020AF710 - ldr r2, _02015518 @ =0x020AF720 - ldr r0, [r0] - add r1, r4, #1 - bl FUN_0201614c - ldr r0, _02015500 @ =0x020AF710 - ldr r0, [r0] - add r0, r0, #0x24 - bl UnloadFile -_020154CC: - ldr r0, _02015500 @ =0x020AF710 - ldrsh r3, [sp, #0x20] - ldr r2, [r0] - mov r1, #0 - str r7, [r2] - ldr r2, [r0] - str r6, [r2, #4] - ldr r2, [r0] - strh r3, [r2, #0x32] - ldr r0, [r0] - strb r1, [r0, #0x3c] - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02015500: .4byte 0x020AF710 -_02015504: .4byte 0x020AF714 -_02015508: .4byte 0x02098F60 -_0201550C: .4byte 0x02098F78 -_02015510: .4byte 0x02098F90 -_02015514: .4byte 0x02098FA8 -_02015518: .4byte 0x020AF720 - arm_func_end FUN_02015328 - - arm_func_start FUN_0201551c -FUN_0201551c: @ 0x0201551C - push {r3, lr} - ldr r0, _0201556C @ =0x020AF710 - ldr r0, [r0] - cmp r0, #0 - popeq {r3, pc} - ldrb r0, [r0, #0x3c] - cmp r0, #0 - beq _02015540 - bl FUN_02015eb4 -_02015540: - ldr r0, _0201556C @ =0x020AF710 - ldr r0, [r0] - add r0, r0, #0x1c - bl UnloadFile - ldr r0, _0201556C @ =0x020AF710 - ldr r0, [r0] - bl MemFree - ldr r0, _0201556C @ =0x020AF710 - mov r1, #0 - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_0201556C: .4byte 0x020AF710 - arm_func_end FUN_0201551c - - arm_func_start FUN_02015570 -FUN_02015570: @ 0x02015570 - ldr r0, _02015584 @ =0x020AF710 - mov r1, #1 - ldr r0, [r0] - strb r1, [r0, #0x3c] - bx lr - .align 2, 0 -_02015584: .4byte 0x020AF710 - arm_func_end FUN_02015570 - - arm_func_start FUN_02015588 -FUN_02015588: @ 0x02015588 - push {r3, lr} - sub sp, sp, #8 - ldr r0, _020155F4 @ =0x020AF710 - mov r1, #0x6000 - ldr r2, [r0] - ldrsh r0, [r2, #0x32] - ldr r2, [r2] - add r0, r2, r0, lsl #5 - bl MemZero32 - ldr r0, _020155F4 @ =0x020AF710 - ldr r0, [r0] - ldr r0, [r0, #4] - cmp r0, #0 - beq _020155EC - bl FUN_02015eb4 - ldr r1, _020155F8 @ =0x02098EA8 - ldr r0, _020155F4 @ =0x020AF710 - ldr r2, [r1, #4] - ldr r1, [r1] - ldr r0, [r0] - str r1, [sp] - str r2, [sp, #4] - ldr r0, [r0, #4] - add r1, sp, #0 - bl FUN_0200b3c0 -_020155EC: - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_020155F4: .4byte 0x020AF710 -_020155F8: .4byte 0x02098EA8 - arm_func_end FUN_02015588 - - arm_func_start FUN_020155fc -FUN_020155fc: @ 0x020155FC - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x104 - bl StringFromMessageId - mov r8, #0 - mov r7, r0 - mov sb, r8 - mov r6, r8 - add r5, sp, #4 - mov fp, #0x100 - mov r4, r8 -_02015624: - ldrb r0, [r7, r8] - cmp r0, #0 - beq _02015698 - mov r0, r5 - mov r1, fp - mov r3, #0x440 - str r6, [sp] - add r2, r7, r8 - bl PreprocessString - strb r4, [r5, r0] - add r8, r8, r0 - ldrb sl, [r7, r8] - cmp sl, #0 - beq _02015690 - ldr r1, _020156A8 @ =0x02098FBC - mov r2, #3 - add r0, r7, r8 - bl Strncmp - cmp r0, #0 - bne _02015684 - ldr r0, _020156A8 @ =0x02098FBC - bl Strlen - add r8, r8, r0 - b _02015690 -_02015684: - cmp sl, #0xd - cmpne sl, #0xa - addeq r8, r8, #1 -_02015690: - add sb, sb, #1 - b _02015624 -_02015698: - lsl r0, sb, #0x10 - asr r0, r0, #0x10 - add sp, sp, #0x104 - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_020156A8: .4byte 0x02098FBC - arm_func_end FUN_020155fc - - arm_func_start FUN_020156ac -FUN_020156ac: @ 0x020156AC - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #8 - cmp r1, #0 - beq _02015780 - ldr r3, _02015788 @ =0x020AF710 - asr r2, r0, #2 - ldr r6, [r3] - add r2, r0, r2, lsr #29 - ldrsh r5, [r6, #0x32] - asr r2, r2, #3 - lsr r4, r0, #0x1f - rsb r3, r4, r0, lsl #29 - ldr r6, [r6] - add r5, r5, r2, lsl #5 - mov r0, #0 - add r3, r4, r3, ror #29 - add r5, r6, r5, lsl #5 - add r3, r5, r3, lsl #2 - mov r4, r0 - and r5, r1, #0xf -_020156FC: - lsl r1, r4, #2 - add r4, r4, #1 - cmp r4, #8 - orr r0, r0, r5, lsl r1 - blt _020156FC - mov r1, #0 -_02015714: - add r1, r1, #1 - cmp r1, #0x20 - str r0, [r3], #0x20 - blt _02015714 - ldr r7, _02015788 @ =0x020AF710 - mov r6, #0 - ldr r0, [r7] - add r4, sp, #0 - ldrsh r0, [r0, #0x32] - add r0, r0, r2, lsl #5 - lsl r0, r0, #0x10 - str r2, [sp, #4] - asr r5, r0, #0x10 -_02015748: - ldr r0, [r7] - str r6, [sp] - ldrsh r2, [r0, #0x30] - ldr r0, [r0, #4] - mov r1, r4 - add r2, r2, #1 - orr r2, r5, r2, lsl #12 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 - bl FUN_0200b3fc - add r6, r6, #1 - cmp r6, #0x20 - add r5, r5, #1 - blt _02015748 -_02015780: - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02015788: .4byte 0x020AF710 - arm_func_end FUN_020156ac - - arm_func_start FUN_0201578c -FUN_0201578c: @ 0x0201578C - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x2f8 - sub sp, sp, #0x400 - ldr r5, [sp, #0x720] - mov r4, #0 - str r5, [sp, #0x720] - str r0, [sp, #4] - str r1, [sp, #8] - mov r7, r2 - str r3, [sp, #0xc] - str r4, [sp, #0x2c] -_020157B8: - ldr r0, [sp, #0xc] - ldrb r0, [r0, r4] - cmp r0, #0 - beq _02015CF8 - ldr r1, [sp, #0xc] - add r0, sp, #0x500 - mov r5, #0 - add r2, r1, r4 - add r0, r0, #0xf8 - mov r1, #0x100 - mov r3, #0x440 - str r5, [sp] - bl PreprocessString - add r1, sp, #0x500 - add r1, r1, #0xf8 - mov r2, r5 - strb r2, [r1, r0] - add r4, r4, r0 - ldr r0, [sp, #0xc] - ldrb r5, [r0, r4] - cmp r5, #0 - beq _02015844 - ldr r1, _02015D08 @ =0x02098FBC - add r0, r0, r4 - mov r2, #3 - bl Strncmp - cmp r0, #0 - bne _02015838 - ldr r0, _02015D08 @ =0x02098FBC - bl Strlen - add r4, r4, r0 - b _02015844 -_02015838: - cmp r5, #0xd - cmpne r5, #0xa - addeq r4, r4, #1 -_02015844: - ldr r0, [sp, #0x720] - cmp r0, #2 - bne _0201586C - add r0, sp, #0x500 - add r0, r0, #0xf8 - bl FUN_020161cc - rsb r0, r0, #0x100 - add r0, r0, r0, lsr #31 - asr r5, r0, #1 - b _02015888 -_0201586C: - cmp r0, #1 - ldrne r5, [sp, #8] - bne _02015888 - add r0, sp, #0x500 - add r0, r0, #0xf8 - bl FUN_020161cc - rsb r5, r0, #0x100 -_02015888: - add r0, r7, #0xa - str r0, [sp, #0x10] - ldr r1, [sp, #0x10] - asr r2, r0, #2 - lsr r3, r0, #0x1f - add r2, r1, r2, lsr #29 - rsb r1, r3, r1, lsl #29 - add r1, r3, r1, ror #29 - lsr r0, r7, #0x1f - rsb r3, r0, r7, lsl #29 - add r0, r0, r3, ror #29 - str r0, [sp, #0x3c] - asr r0, r2, #3 - asr r6, r7, #2 - str r1, [sp, #0x34] - add r1, r7, r6, lsr #29 - str r0, [sp, #0x30] - asr r0, r1, #3 - add r6, sp, #0x500 - str r0, [sp, #0x38] - add r6, r6, #0xf8 - b _02015CD8 -_020158E0: - ldrb r8, [r6], #1 - cmp r8, #0x23 - addeq r5, r5, #8 - beq _02015CD8 - cmp r8, #0x20 - addeq r5, r5, #6 - beq _02015CD8 - cmp r8, #0x5b - bne _02015A2C - str r6, [sp, #0x44] - mov r1, #1 -_0201590C: - ldrb r0, [r6], #1 - cmp r0, #0x5d - beq _0201592C - cmp r0, #0x3a - addeq r0, sp, #0x44 - streq r6, [r0, r1, lsl #2] - addeq r1, r1, #1 - b _0201590C -_0201592C: - ldr r0, [sp, #0x44] - ldr r1, _02015D0C @ =0x02098FC0 - bl StrcmpTag - cmp r0, #0 - beq _02015CD8 - ldr r0, [sp, #0x48] - bl StoiTag - ldr r0, [sp, #0x4c] - bl StoiTag - ldr r1, _02015D10 @ =0x020AF710 - add ip, r5, #2 - ldr r1, [r1] - ldr r8, [sp, #0x10] - ldrsh r3, [r1, #0x32] - asr r1, ip, #2 - add r1, ip, r1, lsr #29 - asr r2, r1, #3 - ldr r1, [sp, #0x30] - lsl r0, r0, #0x10 - add r1, r2, r1, lsl #5 - add r2, r3, r1 - ldr r1, [sp, #4] - add r2, r1, r2, lsl #5 - ldr r1, [sp, #0x34] - add sb, r2, r1, lsl #2 - mov r1, #0 - str r1, [sp, #0x18] -_02015998: - mov sl, sb - mov lr, #0 - b _020159F0 -_020159A4: - add r1, ip, lr - lsr r2, r1, #0x1f - rsb r1, r2, r1, lsl #29 - add r1, r2, r1, ror #29 - ldr r2, _02015D14 @ =0x02098EE0 - add lr, lr, #8 - add r3, r2, r1, lsl #4 - ldr r1, [r2, r1, lsl #4] - ldr r2, [sl] - ldr fp, [r3, #8] - bic r1, r1, #0 - orr r1, r2, r1, lsl fp - str r1, [sl] - ldr r1, [r3, #4] - ldr r2, [sl, #0x20]! - ldr r3, [r3, #0xc] - bic r1, r1, #0 - orr r1, r2, r1, lsr r3 - str r1, [sl] -_020159F0: - cmp lr, r0, asr #16 - blt _020159A4 - add r8, r8, #1 - lsr r2, r8, #0x1f - rsb r1, r2, r8, lsl #29 - adds r1, r2, r1, ror #29 - ldr r1, [sp, #0x18] - add sb, sb, #4 - add r1, r1, #1 - addeq sb, sb, #0x3e0 - str r1, [sp, #0x18] - cmp r1, #2 - blt _02015998 - add r5, r5, r0, asr #16 - b _02015CD8 -_02015A2C: - mov r0, r8 - bl FUN_02025480 - bl FUN_0201628c - mov ip, #0 - add r1, sp, #0x400 - add r1, r1, #0xd8 - ldr sb, [r0] - str r1, [sp, #0x1c] - mov sl, ip - mov fp, ip -_02015A54: - ldrb r3, [sb], #1 - add r1, sp, #0x58 - add lr, r1, fp - asr r1, r3, #4 - and r2, r1, #0xf - add r1, sp, #0x58 - strb r2, [r1, fp] - and r1, r3, #0xf - add fp, fp, #2 - strb r1, [lr, #1] - cmp fp, #0x240 - blt _02015A54 -_02015A84: - cmp sl, #0x240 - bge _02015B14 - add r1, sp, #0x58 - ldrb r1, [r1, ip] - add r3, ip, #1 - mov ip, r3 - tst r1, #8 - and r1, r1, #7 - mov sb, #0 - beq _02015B08 - add r2, sp, #0x58 - ldrb r2, [r2, r3] - add ip, r3, #1 - and r3, r2, #0xff - b _02015AD8 -_02015AC0: - add r2, sp, #0x298 - strb r3, [r2, sl] - add sl, sl, #1 - cmp sl, #0x240 - bge _02015A84 - add sb, sb, #1 -_02015AD8: - cmp sb, r1 - blt _02015AC0 - b _02015A84 -_02015AE4: - add r2, sp, #0x58 - ldrb r3, [r2, ip] - add r2, sp, #0x298 - add ip, ip, #1 - strb r3, [r2, sl] - add sl, sl, #1 - cmp sl, #0x240 - bge _02015A84 - add sb, sb, #1 -_02015B08: - cmp sb, r1 - blt _02015AE4 - b _02015A84 -_02015B14: - mov fp, #0 -_02015B18: - ldr r1, [sp, #0x1c] - str r1, [sp, #0x14] - add r1, r1, #4 - str r1, [sp, #0x1c] - add r1, sp, #0x298 - add ip, r1, fp - ldrb r3, [r1, fp] - ldrb r1, [ip, #2] - ldrb r2, [ip, #1] - and sl, r3, #0xf - lsl r1, r1, #8 - and r1, r1, #0xf00 - str r1, [sp, #0x40] - ldrb r1, [ip, #5] - lsl r2, r2, #4 - and sb, r2, #0xf0 - lsl r1, r1, #0x14 - ldrb r3, [ip, #3] - ldrb r2, [ip, #4] - and lr, r1, #0xf00000 - ldrb r1, [ip, #7] - ldrb ip, [ip, #6] - lsl r2, r2, #0x10 - lsl r1, r1, #0x1c - lsl ip, ip, #0x18 - lsl r3, r3, #0xc - add fp, fp, #8 - and r1, r1, #0xf0000000 - and ip, ip, #0xf000000 - orr r1, r1, ip - and r2, r2, #0xf0000 - orr r1, lr, r1 - and r3, r3, #0xf000 - orr r1, r2, r1 - orr r2, r3, r1 - ldr r1, [sp, #0x40] - cmp fp, #0x240 - orr r1, r1, r2 - orr r1, sb, r1 - orr r2, sl, r1 - ldr r1, [sp, #0x14] - str r2, [r1] - blt _02015B18 - ldrb r0, [r0, #6] - add r3, sp, #0x400 - mov lr, r7 - str r0, [sp, #0x20] - ldr r0, _02015D10 @ =0x020AF710 - add r3, r3, #0xd8 - ldr r1, [r0] - asr r0, r5, #2 - add r0, r5, r0, lsr #29 - ldrsh r2, [r1, #0x32] - asr r1, r0, #3 - ldr r0, [sp, #0x38] - add r0, r1, r0, lsl #5 - add r1, r2, r0 - ldr r0, [sp, #4] - add r1, r0, r1, lsl #5 - ldr r0, [sp, #0x3c] - add r2, r1, r0, lsl #2 - lsr r1, r5, #0x1f - rsb r0, r1, r5, lsl #29 - add r1, r1, r0, ror #29 - ldr r0, _02015D14 @ =0x02098EE0 - add sb, r0, r1, lsl #4 - mov r0, #0 - str r0, [sp, #0x24] -_02015C28: - mov r0, #0 - mov sl, r2 - str r0, [sp, #0x28] -_02015C34: - ldr r1, [r3] - cmp r1, #0 - beq _02015C70 - ldr r0, [sl] - ldr ip, [sb] - ldr fp, [sb, #8] - and ip, r1, ip - orr r0, r0, ip, lsl fp - str r0, [sl] - ldr ip, [sl, #0x20] - ldr fp, [sb, #4] - ldr r0, [sb, #0xc] - and r1, r1, fp - orr r0, ip, r1, lsr r0 - str r0, [sl, #0x20] -_02015C70: - ldr r0, [sp, #0x28] - add r3, r3, #4 - add r0, r0, #1 - add sl, sl, #0x20 - str r0, [sp, #0x28] - cmp r0, #3 - blt _02015C34 - add lr, lr, #1 - lsr r1, lr, #0x1f - rsb r0, r1, lr, lsl #29 - adds r0, r1, r0, ror #29 - ldr r0, [sp, #0x24] - add r2, r2, #4 - add r0, r0, #1 - addeq r2, r2, #0x3e0 - str r0, [sp, #0x24] - cmp r0, #0x18 - blt _02015C28 - ldr r0, [sp, #0x20] - cmp r8, #0x7e - add r5, r5, r0 - ldrbeq r0, [r6] - cmpeq r0, #0x32 - ldrbeq r0, [r6, #1] - cmpeq r0, #0x37 - addeq r6, r6, #2 -_02015CD8: - ldrb r0, [r6] - cmp r0, #0 - bne _020158E0 - ldr r0, [sp, #0x2c] - add r7, r7, #0x18 - add r0, r0, #1 - str r0, [sp, #0x2c] - b _020157B8 -_02015CF8: - ldr r0, [sp, #0x2c] - add sp, sp, #0x2f8 - add sp, sp, #0x400 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02015D08: .4byte 0x02098FBC -_02015D0C: .4byte 0x02098FC0 -_02015D10: .4byte 0x020AF710 -_02015D14: .4byte 0x02098EE0 - arm_func_end FUN_0201578c - - arm_func_start FUN_02015d18 -FUN_02015d18: @ 0x02015D18 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0xc - mov r5, r1 - mov r4, r2 - mov r1, #0 - mov r6, r4 - str r1, [sp, #4] - str r5, [sp, #8] - b _02015D60 -_02015D3C: - ldrb r1, [r2], #1 - cmp r1, #0x7e - strb r1, [r6], #1 - bne _02015D60 - ldrb r1, [r2] - cmp r1, #0x32 - ldrbeq r1, [r2, #1] - cmpeq r1, #0x37 - addeq r2, r2, #2 -_02015D60: - ldrb r1, [r2] - cmp r1, #0 - bne _02015D3C - mov r1, #0 - strb r1, [r6] - str r3, [sp] - ldr r2, _02015E40 @ =0x020AF710 - mov r1, r0 - ldr r0, [r2] - mov r2, r5 - ldr r0, [r0] - mov r3, r4 - bl FUN_0201578c - asr r1, r5, #2 - add r2, r5, r1, lsr #29 - mov r7, r0 - mov r1, #0x18 - mul r0, r7, r1 - add r0, r0, r2, asr #3 - add r3, r0, #7 - asr r0, r3, #2 - add r0, r3, r0, lsr #29 - asr r0, r0, #3 - asr sb, r2, #3 - bl DivideInt - ldr fp, _02015E40 @ =0x020AF710 - mov sl, r1 - ldr r0, [fp] - mov r4, #0 - ldrsh r0, [r0, #0x32] - add r0, r0, sb, lsl #5 - lsl r0, r0, #0x10 - asr r6, r0, #0x10 - b _02015E2C -_02015DE8: - mov r5, #0 - add r8, sb, r4 -_02015DF0: - ldr r0, [fp] - str r5, [sp, #4] - str r8, [sp, #8] - ldrsh r2, [r0, #0x30] - ldr r0, [r0, #4] - add r1, sp, #4 - orr r2, r6, r2, lsl #12 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 - bl FUN_0200b3fc - add r5, r5, #1 - cmp r5, #0x20 - add r6, r6, #1 - blt _02015DF0 - add r4, r4, #1 -_02015E2C: - cmp r4, sl - blt _02015DE8 - mov r0, r7 - add sp, sp, #0xc - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02015E40: .4byte 0x020AF710 - arm_func_end FUN_02015d18 - - arm_func_start FUN_02015e44 -FUN_02015e44: @ 0x02015E44 - push {r4, lr} - mov r4, r0 - mov r0, r1 - bl StringFromMessageId - mov r2, r0 - mov r1, r4 - mov r0, #0 - mov r3, #2 - bl FUN_02015d18 - pop {r4, pc} - arm_func_end FUN_02015e44 - - arm_func_start FUN_02015e6c -FUN_02015e6c: @ 0x02015E6C - push {r3, lr} - ldr r0, _02015EB0 @ =0x020AF710 - ldr r0, [r0] - ldr r0, [r0, #4] - cmp r0, #0 - beq _02015E88 - bl FUN_0200b330 -_02015E88: - ldr r0, _02015EB0 @ =0x020AF710 - ldr r1, [r0] - ldr r0, [r1, #8] - cmp r0, #0 - beq _02015EA4 - bl FUN_0200a174 - pop {r3, pc} -_02015EA4: - ldr r0, [r1, #0xc] - bl FUN_0200a504 - pop {r3, pc} - .align 2, 0 -_02015EB0: .4byte 0x020AF710 - arm_func_end FUN_02015e6c - - arm_func_start FUN_02015eb4 -FUN_02015eb4: @ 0x02015EB4 - push {r3, lr} - ldr r0, _02015EE4 @ =0x020AF710 - ldr r0, [r0] - ldr r0, [r0, #4] - cmp r0, #0 - popeq {r3, pc} - bl FUN_0200b3d4 - ldr r0, _02015EE4 @ =0x020AF710 - ldr r0, [r0] - ldr r0, [r0, #4] - bl FUN_0200b330 - pop {r3, pc} - .align 2, 0 -_02015EE4: .4byte 0x020AF710 - arm_func_end FUN_02015eb4 - - arm_func_start FUN_02015ee8 -FUN_02015ee8: @ 0x02015EE8 - push {r3, lr} - ldr r1, _02015F14 @ =0x020AF710 - ldr r2, [r1] - ldr r1, [r2, #8] - cmp r1, #0 - popne {r3, pc} - lsl r1, r0, #0x10 - ldr r0, [r2, #0xc] - lsr r1, r1, #0x10 - bl FUN_0200a618 - pop {r3, pc} - .align 2, 0 -_02015F14: .4byte 0x020AF710 - arm_func_end FUN_02015ee8 - - arm_func_start FUN_02015f18 -FUN_02015f18: @ 0x02015F18 - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #4 - ldr r4, _02015FD4 @ =0x020AF710 - mov r6, #0 - ldr r0, [r4] - add r5, sp, #0 - ldr r0, [r0, #8] - mov r8, #0x10 - cmp r0, #0 - beq _02015F88 - ldr r7, _02015FD8 @ =0x020AFC70 -_02015F44: - ldr r0, [r4] - lsl r2, r6, #0x10 - ldr r0, [r0, #8] - mov r1, r5 - lsr r2, r2, #0x10 - bl FUN_0200a2b4 - ldr r0, [r7] - lsl r3, r6, #0x10 - mov r1, r5 - mov r2, r8 - add r0, r0, #0xcc - asr r3, r3, #0x10 - bl FUN_0201e380 - add r6, r6, #1 - cmp r6, #0x100 - blt _02015F44 - b _02015FCC -_02015F88: - ldr r7, _02015FD8 @ =0x020AFC70 -_02015F8C: - ldr r0, [r4] - lsl r2, r6, #0x10 - ldr r0, [r0, #0xc] - mov r1, r5 - lsr r2, r2, #0x10 - bl FUN_0200a5f8 - ldr r0, [r7] - lsl r3, r6, #0x10 - mov r1, r5 - mov r2, r8 - add r0, r0, #0xcc - asr r3, r3, #0x10 - bl FUN_0201e380 - add r6, r6, #1 - cmp r6, #0x100 - blt _02015F8C -_02015FCC: - add sp, sp, #4 - pop {r3, r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02015FD4: .4byte 0x020AF710 -_02015FD8: .4byte 0x020AFC70 - arm_func_end FUN_02015f18 - - arm_func_start FUN_02015fdc -FUN_02015fdc: @ 0x02015FDC - push {r4, r5, r6, r7, r8, lr} - mov r5, #0 - asr r3, r2, #2 - add r2, r2, r3, lsr #29 - mov ip, r5 - mov lr, r5 - b _0201602C -_02015FF8: - mov r6, lr - add r8, r1, r5, lsl #10 -_02016000: - mov r7, ip - add r4, r8, r6, lsl #2 -_02016008: - ldr r3, [r4], #0x20 - add r7, r7, #1 - cmp r7, #0x20 - str r3, [r0], #4 - blt _02016008 - add r6, r6, #1 - cmp r6, #8 - blt _02016000 - add r5, r5, #1 -_0201602C: - cmp r5, r2, asr #3 - blt _02015FF8 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_02015fdc - - arm_func_start FUN_02016038 -FUN_02016038: @ 0x02016038 - ldr ip, _02016048 @ =FUN_0201e050 - add r1, r1, #0x10000 - mov r3, #0 - bx ip - .align 2, 0 -_02016048: .4byte FUN_0201e050 - arm_func_end FUN_02016038 - - arm_func_start FUN_0201604c -FUN_0201604c: @ 0x0201604C - push {r3, lr} - add r1, r1, #0x10000 - str r1, [r0, #0x20] - mov ip, #0 - strh ip, [r0, #0x16] - mov r1, #8 - strh ip, [r0, #0x18] - mov ip, #0x100 - lsl r1, r1, r3 - strh ip, [r0, #0x1a] - strh r1, [r0, #0x1c] - ldrh lr, [r0, #0x14] - lsl ip, r3, #0x1d - ldr r1, _02016110 @ =0x020AF710 - bic r3, lr, #7 - orr r3, r3, #5 - strh r3, [r0, #0x14] - ldrh lr, [r0, #0x14] - ldr r3, _02016114 @ =0x020AFC70 - bic lr, lr, #0x38 - orr ip, lr, ip, lsr #26 - strh ip, [r0, #0x14] - ldrh ip, [r0, #0x14] - bic ip, ip, #0xc0 - strh ip, [r0, #0x14] - ldrh ip, [r0, #0x14] - bic ip, ip, #0x700 - orr ip, ip, #0x300 - strh ip, [r0, #0x14] - ldrh ip, [r0, #0x14] - bic ip, ip, #0x1800 - strh ip, [r0, #0x14] - ldrh ip, [r0, #0x14] - bic ip, ip, #0x6000 - strh ip, [r0, #0x14] - ldrh ip, [r0, #0x14] - orr ip, ip, #0x8000 - strh ip, [r0, #0x14] - ldr r1, [r1] - ldr r3, [r3] - ldrsh r1, [r1, #0x30] - ldr r3, [r3, #0xe0] - add r1, r2, r1 - lsl r1, r1, #0x14 - asr r1, r1, #0x10 - add r1, r1, #0x1000 - add r1, r3, r1, lsl #1 - str r1, [r0, #0x24] - pop {r3, pc} - .align 2, 0 -_02016110: .4byte 0x020AF710 -_02016114: .4byte 0x020AFC70 - arm_func_end FUN_0201604c - - arm_func_start FUN_02016118 -FUN_02016118: @ 0x02016118 - ldr r2, _02016140 @ =0x020AF720 - ldr r3, _02016144 @ =0x020AF721 - ldrb ip, [r2, r1, lsl #2] - ldr r2, _02016148 @ =0x020AF722 - strb ip, [r0, #0x2c] - ldrb r3, [r3, r1, lsl #2] - strb r3, [r0, #0x2d] - ldrb r1, [r2, r1, lsl #2] - strb r1, [r0, #0x2e] - bx lr - .align 2, 0 -_02016140: .4byte 0x020AF720 -_02016144: .4byte 0x020AF721 -_02016148: .4byte 0x020AF722 - arm_func_end FUN_02016118 - - arm_func_start FUN_0201614c -FUN_0201614c: @ 0x0201614C - push {r3, r4, r5, r6, r7, lr} - mov r6, r0 - ldr r0, [r6, #8] - mov r5, r1 - mov r4, r2 - cmp r0, #0 - mov r7, #0 - beq _0201619C -_0201616C: - add r0, r7, r5, lsl #4 - lsl r1, r0, #0x10 - ldr r0, [r6, #8] - lsr r1, r1, #0x10 - add r2, r4, r7, lsl #2 - bl FUN_0200a29c - add r7, r7, #1 - cmp r7, #0x10 - blt _0201616C - ldr r0, [r6, #8] - bl FUN_0200a174 - pop {r3, r4, r5, r6, r7, pc} -_0201619C: - add r0, r7, r5, lsl #4 - lsl r1, r0, #0x10 - ldr r0, [r6, #0xc] - lsr r1, r1, #0x10 - add r2, r4, r7, lsl #2 - bl FUN_0200a590 - add r7, r7, #1 - cmp r7, #0x10 - blt _0201619C - ldr r0, [r6, #0xc] - bl FUN_0200a504 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0201614c - - arm_func_start FUN_020161cc -FUN_020161cc: @ 0x020161CC - push {r4, r5, lr} - sub sp, sp, #0x14 - mov r4, r0 - mov r5, #0 - b _02016270 -_020161E0: - ldrb r0, [r4], #1 - cmp r0, #0x23 - addeq r5, r5, #8 - beq _02016270 - cmp r0, #0x20 - addeq r5, r5, #6 - beq _02016270 - cmp r0, #0x5b - bne _0201625C - str r4, [sp] - mov r2, #1 - add r0, sp, #0 -_02016210: - ldrb r1, [r4], #1 - cmp r1, #0x5d - beq _0201622C - cmp r1, #0x3a - streq r4, [r0, r2, lsl #2] - addeq r2, r2, #1 - b _02016210 -_0201622C: - ldr r0, [sp] - ldr r1, _02016288 @ =0x02098FC0 - bl StrcmpTag - cmp r0, #0 - beq _02016270 - ldr r0, [sp, #4] - bl StoiTag - ldr r0, [sp, #8] - bl StoiTag - lsl r0, r0, #0x10 - add r5, r5, r0, asr #16 - b _02016270 -_0201625C: - bl FUN_02025480 - bl FUN_0201628c - cmp r0, #0 - ldrbne r0, [r0, #6] - addne r5, r5, r0 -_02016270: - ldrb r0, [r4] - cmp r0, #0 - bne _020161E0 - mov r0, r5 - add sp, sp, #0x14 - pop {r4, r5, pc} - .align 2, 0 -_02016288: .4byte 0x02098FC0 - arm_func_end FUN_020161cc - - arm_func_start FUN_0201628c -FUN_0201628c: @ 0x0201628C - push {r3, lr} - ldr r1, _020162FC @ =0x020AF710 - mov lr, #0 - ldr r1, [r1] - ldr r2, [r1, #0x10] - ldr r1, [r1, #0x2c] - ldr r3, [r2] - sub ip, r1, #1 - b _020162DC -_020162B0: - add r1, lr, ip - add r1, r1, r1, lsr #31 - asr r2, r1, #1 - add r1, r3, r2, lsl #3 - ldrh r1, [r1, #4] - cmp r0, r1 - moveq lr, r2 - beq _020162E4 - cmp r1, r0 - addlt lr, r2, #1 - movge ip, r2 -_020162DC: - cmp lr, ip - blt _020162B0 -_020162E4: - add r2, r3, lr, lsl #3 - ldrh r1, [r2, #4] - cmp r1, r0 - addne r2, r3, #8 - mov r0, r2 - pop {r3, pc} - .align 2, 0 -_020162FC: .4byte 0x020AF710 - arm_func_end FUN_0201628c - - arm_func_start FUN_02016300 -FUN_02016300: @ 0x02016300 - push {r3, r4, lr} - sub sp, sp, #0xc - ldr r4, [sp, #0x20] - ldr lr, _0201636C @ =0x020AF760 - ldrsh ip, [sp, #0x18] - str r4, [lr] - ldrsh r4, [sp, #0x1c] - str ip, [sp] - mov ip, #0x14 - str r4, [sp, #4] - ldr r4, [lr] - ldr lr, _02016370 @ =0x0209901C - mul ip, r4, ip - ldr ip, [lr, ip] - str ip, [sp, #8] - bl FUN_02015328 - ldr r1, _0201636C @ =0x020AF760 - mov r0, #0x14 - ldr r2, [r1] - ldr r1, _02016374 @ =0x02099020 - mul r0, r2, r0 - ldr r0, [r1, r0] - cmp r0, #0 - beq _02016364 - blx r0 -_02016364: - add sp, sp, #0xc - pop {r3, r4, pc} - .align 2, 0 -_0201636C: .4byte 0x020AF760 -_02016370: .4byte 0x0209901C -_02016374: .4byte 0x02099020 - arm_func_end FUN_02016300 - - arm_func_start FUN_02016378 -FUN_02016378: @ 0x02016378 - push {r3, lr} - ldr ip, _020163A4 @ =0x020AF760 - mov r3, #0x14 - ldr lr, [ip] - ldr ip, _020163A8 @ =0x02099024 - mul r3, lr, r3 - ldr r3, [ip, r3] - cmp r3, #0 - popeq {r3, pc} - blx r3 - pop {r3, pc} - .align 2, 0 -_020163A4: .4byte 0x020AF760 -_020163A8: .4byte 0x02099024 - arm_func_end FUN_02016378 - - arm_func_start FUN_020163ac -FUN_020163ac: @ 0x020163AC - push {r3, lr} - ldr r1, _020163DC @ =0x020AF760 - mov r0, #0x14 - ldr r2, [r1] - ldr r1, _020163E0 @ =0x02099028 - mul r0, r2, r0 - ldr r0, [r1, r0] - cmp r0, #0 - moveq r0, #2 - popeq {r3, pc} - blx r0 - pop {r3, pc} - .align 2, 0 -_020163DC: .4byte 0x020AF760 -_020163E0: .4byte 0x02099028 - arm_func_end FUN_020163ac - - arm_func_start FUN_020163e4 -FUN_020163e4: @ 0x020163E4 - push {r3, lr} - ldr r1, _02016414 @ =0x020AF760 - mov r0, #0x14 - ldr r2, [r1] - ldr r1, _02016418 @ =0x0209902C - mul r0, r2, r0 - ldr r0, [r1, r0] - cmp r0, #0 - beq _0201640C - blx r0 -_0201640C: - bl FUN_0201551c - pop {r3, pc} - .align 2, 0 -_02016414: .4byte 0x020AF760 -_02016418: .4byte 0x0209902C - arm_func_end FUN_020163e4 - - arm_func_start FUN_0201641c -FUN_0201641c: @ 0x0201641C - push {r4, lr} - mov r4, r0 - bl FUN_02015588 - mov r1, r4 - mov r0, #3 - mov r2, #0 - bl FUN_0204f6f8 - mov r4, r0 - bl FUN_02015570 - mov r0, r4 - bl FUN_020155fc - mov r1, #0x18 - mul r1, r0, r1 - rsb r0, r1, #0xc0 - mov r1, r4 - asr r0, r0, #1 - bl FUN_02015e44 - bl FUN_02015e6c - pop {r4, pc} - arm_func_end FUN_0201641c - - arm_func_start FUN_02016468 -FUN_02016468: @ 0x02016468 - push {r3, r4, r5, lr} - sub sp, sp, #0x100 - mov r4, r1 - mov r5, r0 - bl FUN_02015588 - bl FUN_02015570 - add r0, sp, #0 - mov r1, r4 - bl Strcpy - mov r1, r5 - mov r0, #0 - add r2, sp, #0 - mov r3, #2 - bl FUN_02015d18 - bl FUN_02015e6c - add sp, sp, #0x100 - pop {r3, r4, r5, pc} - arm_func_end FUN_02016468 - - arm_func_start FUN_020164ac -FUN_020164ac: @ 0x020164AC - push {r3, lr} - ldr r0, _02016544 @ =0x020AF760 - mov r1, #0x30 - ldr r0, [r0, #4] - add r0, r0, #0x90 - add r0, r0, #0xb000 - bl MemZero - ldr r0, _02016544 @ =0x020AF760 - mov r1, #0x30 - ldr r0, [r0, #4] - add r0, r0, #0x30c0 - add r0, r0, #0x8000 - bl MemZero - ldr r0, _02016544 @ =0x020AF760 - mov r1, #0x30 - ldr r0, [r0, #4] - add r0, r0, #0xf0 - add r0, r0, #0xb000 - bl MemZero - ldr r0, _02016544 @ =0x020AF760 - mov r1, #0x30 - ldr r0, [r0, #4] - add r0, r0, #0x60 - add r0, r0, #0xb000 - bl MemZero - ldr r0, _02016544 @ =0x020AF760 - mov r1, #0x30 - ldr r0, [r0, #4] - add r0, r0, #0x30 - add r0, r0, #0xb000 - bl MemZero - ldr r0, _02016544 @ =0x020AF760 - mov r1, #0x30 - ldr r0, [r0, #4] - add r0, r0, #0x120 - add r0, r0, #0xb000 - bl MemZero - pop {r3, pc} - .align 2, 0 -_02016544: .4byte 0x020AF760 - arm_func_end FUN_020164ac - - arm_func_start FUN_02016548 -FUN_02016548: @ 0x02016548 - push {r4, r5, r6, r7, lr} - sub sp, sp, #0x104 - ldrb r4, [sp, #0x118] - mov ip, r0 - mov r7, r1 - mov r6, r2 - mov r5, r3 - cmp r4, #0 - add r0, sp, #4 - mov r1, ip - beq _020165C8 - mov r2, r5 - bl FUN_020175f8 - bl FUN_02015570 - add r2, sp, #4 - mov r0, #0 - mov r1, #0x20 - mov r3, #2 - bl FUN_02015d18 - mov r1, r6 - mov r0, #0x3b - bl FUN_020156ac - mov r1, r7 - add r0, sp, #4 - bl Strcpy - mov r0, #0 - mov r1, #0x52 - add r2, sp, #4 - mov r3, #2 - bl FUN_02015d18 - bl FUN_02015e6c - b _02016768 -_020165C8: - mov r2, r5 - bl FUN_020175f8 - mov r2, #2 - ldr r0, _02016770 @ =0x020AF760 - str r2, [sp] - ldr r0, [r0, #4] - add r3, sp, #4 - mov r1, r7 - bl FUN_0201770c - bl FUN_020164ac - ldr r0, _02016770 @ =0x020AF760 - mov r1, #0 - ldr r0, [r0, #4] - add r0, r0, #0xb000 - str r1, [r0, #0x150] - bl FUN_0201f36c - ldr r1, _02016770 @ =0x020AF760 - ldr r1, [r1, #4] - add r1, r1, #0xb000 - strh r0, [r1, #0x90] - bl FUN_0201f36c - ldr r2, _02016770 @ =0x020AF760 - ldr r1, [r2, #4] - add r1, r1, #0xb000 - strh r0, [r1, #0xc0] - ldr r0, [r2, #4] - add r0, r0, #0xb000 - ldrsh r0, [r0, #0x90] - bl FUN_0201f324 - mov r1, #0 - mov r4, r0 - strb r1, [r4, #0x3c] - mov r2, r1 - mov r3, #2 - bl FUN_0201604c - ldrsh r0, [r4, #0x1a] - mov r2, #0x20 - mov r1, #0xa - add r0, r0, r0, lsr #31 - lsl r0, r0, #0xf - asr r0, r0, #0x10 - strh r0, [r4] - strh r2, [r4, #2] - strb r1, [r4, #0x3e] - strh r0, [r4, #8] - mov r0, #0 - strh r0, [r4, #0xa] - mov r0, #0x21 - strh r0, [r4, #0x2a] - ldr r0, _02016770 @ =0x020AF760 - ldr r0, [r0, #4] - add r0, r0, #0xb000 - ldrsh r0, [r0, #0xc0] - bl FUN_0201f324 - mov r4, r0 - mov r1, #0x1000 - mov r2, #0 - mov r3, #4 - bl FUN_0201604c - ldrsh r0, [r4, #0x1a] - mov r3, #0 - mov r1, #0x52 - add r0, r0, r0, lsr #31 - lsl r0, r0, #0xf - asr r2, r0, #0x10 - strb r3, [r4, #0x3c] - strh r2, [r4] - strh r1, [r4, #2] - mov r0, #0xa - strb r0, [r4, #0x3e] - strh r2, [r4, #8] - strh r3, [r4, #0xa] - mov r0, #0x21 - cmp r5, #0 - strh r0, [r4, #0x2a] - beq _02016760 - bl FUN_0201f36c - ldr r2, _02016770 @ =0x020AF760 - ldr r1, [r2, #4] - add r1, r1, #0xb000 - strh r0, [r1, #0x60] - ldr r0, [r2, #4] - add r0, r0, #0xb000 - ldrsh r0, [r0, #0x60] - bl FUN_0201f324 - mov r1, #2 - strb r1, [r0, #0x3c] - mov r1, #0 - strh r1, [r0] - mov r1, #0x3b - strh r1, [r0, #2] - mov r1, #0x100 - strh r1, [r0, #4] - mov r1, #1 - strh r1, [r0, #6] - mov r2, #0xa - mov r1, r6 - strb r2, [r0, #0x3e] - mov r2, #0x21 - strh r2, [r0, #0x2a] - bl FUN_02016118 - b _02016768 -_02016760: - mov r0, #0x80 - bl FUN_02015ee8 -_02016768: - add sp, sp, #0x104 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_02016770: .4byte 0x020AF760 - arm_func_end FUN_02016548 -_02016774: - .byte 0x08, 0x40, 0x2D, 0xE9, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x30, 0x8D, 0xE5 - .byte 0x70, 0xFF, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x38, 0x40, 0x2D, 0xE9, 0x01, 0xDC, 0x4D, 0xE2 - .byte 0x00, 0x30, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x8D, 0xE2 - .byte 0x03, 0x10, 0xA0, 0xE1, 0x00, 0x20, 0xA0, 0xE3, 0x92, 0x03, 0x00, 0xEB, 0x6F, 0xFB, 0xFF, 0xEB - .byte 0x00, 0x20, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0x20, 0x10, 0xA0, 0xE3, 0x02, 0x30, 0xA0, 0xE3 - .byte 0x54, 0xFD, 0xFF, 0xEB, 0x04, 0x10, 0xA0, 0xE1, 0x3B, 0x00, 0xA0, 0xE3, 0xB6, 0xFB, 0xFF, 0xEB - .byte 0x05, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0x8D, 0xE2, 0xAD, 0xCB, 0x01, 0xEB, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x52, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0x8D, 0xE2, 0x02, 0x30, 0xA0, 0xE3, 0x49, 0xFD, 0xFF, 0xEB - .byte 0x9D, 0xFD, 0xFF, 0xEB, 0x01, 0xDC, 0x8D, 0xE2, 0x38, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_020167fc -FUN_020167fc: @ 0x020167FC - push {r3, lr} - mov ip, #0 - mov r3, #1 - str ip, [sp] - bl FUN_02016548 - pop {r3, pc} - arm_func_end FUN_020167fc - - arm_func_start FUN_02016814 -FUN_02016814: @ 0x02016814 - push {r4, lr} - ldr r0, _02016880 @ =0x0000B160 - mov r1, #0 - bl MemAlloc - ldr r2, _02016884 @ =0x020AF760 - ldr r1, _02016880 @ =0x0000B160 - str r0, [r2, #4] - bl MemZero - bl FUN_0201f2e4 - ldr r0, _02016884 @ =0x020AF760 - mov r1, #0x1000 - ldr r4, [r0, #4] - add r0, r4, #0x6000 - bl MemZero - add r0, r4, #0x7000 - mov r1, #0x4000 - bl MemZero - add r0, r4, #0xb000 - mov r1, #0x20 - bl MemZero - bl FUN_02015f18 - ldr r0, _02016884 @ =0x020AF760 - mov r1, #0 - ldr r0, [r0, #4] - add r0, r0, #0xb000 - str r1, [r0, #0x20] - pop {r4, pc} - .align 2, 0 -_02016880: .4byte 0x0000B160 -_02016884: .4byte 0x020AF760 - arm_func_end FUN_02016814 - - arm_func_start FUN_02016888 -FUN_02016888: @ 0x02016888 - push {r3, lr} - ldr r0, _020168C4 @ =0x020AF760 - ldr r0, [r0, #4] - cmp r0, #0 - popeq {r3, pc} - mov r0, #0x100 - bl FUN_02015ee8 - bl FUN_0201f2e4 - ldr r0, _020168C4 @ =0x020AF760 - ldr r0, [r0, #4] - bl MemFree - ldr r0, _020168C4 @ =0x020AF760 - mov r1, #0 - str r1, [r0, #4] - pop {r3, pc} - .align 2, 0 -_020168C4: .4byte 0x020AF760 - arm_func_end FUN_02016888 - - arm_func_start FUN_020168c8 -FUN_020168c8: @ 0x020168C8 - push {r4, lr} - ldr r0, _02016934 @ =0x0000B160 - mov r1, #0 - bl MemAlloc - ldr r2, _02016938 @ =0x020AF760 - ldr r1, _02016934 @ =0x0000B160 - str r0, [r2, #4] - bl MemZero - bl FUN_0201f2e4 - ldr r0, _02016938 @ =0x020AF760 - mov r1, #0x1000 - ldr r4, [r0, #4] - add r0, r4, #0x6000 - bl MemZero - add r0, r4, #0x7000 - mov r1, #0x4000 - bl MemZero - add r0, r4, #0xb000 - mov r1, #0x20 - bl MemZero - bl FUN_02015f18 - ldr r0, _02016938 @ =0x020AF760 - mov r1, #0 - ldr r0, [r0, #4] - add r0, r0, #0xb000 - str r1, [r0, #0x20] - pop {r4, pc} - .align 2, 0 -_02016934: .4byte 0x0000B160 -_02016938: .4byte 0x020AF760 - arm_func_end FUN_020168c8 -_0201693C: - .byte 0x78, 0x40, 0x2D, 0xE9 - .byte 0x41, 0xDF, 0x4D, 0xE2, 0x00, 0x30, 0xA0, 0xE1, 0x01, 0x40, 0xA0, 0xE1, 0x02, 0x60, 0xA0, 0xE1 - .byte 0x04, 0x00, 0x8D, 0xE2, 0x03, 0x10, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE3, 0x25, 0x03, 0x00, 0xEB - .byte 0x02, 0x20, 0xA0, 0xE3, 0x48, 0x02, 0x9F, 0xE5, 0x00, 0x20, 0x8D, 0xE5, 0x04, 0x00, 0x90, 0xE5 - .byte 0x04, 0x30, 0x8D, 0xE2, 0x04, 0x10, 0xA0, 0xE1, 0x63, 0x03, 0x00, 0xEB, 0xCA, 0xFE, 0xFF, 0xEB - .byte 0x2C, 0x02, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x00, 0x90, 0xE5, 0x0B, 0x0A, 0x80, 0xE2 - .byte 0x50, 0x11, 0x80, 0xE5, 0x74, 0x22, 0x00, 0xEB, 0x14, 0x12, 0x9F, 0xE5, 0x04, 0x10, 0x91, 0xE5 - .byte 0x0B, 0x1A, 0x81, 0xE2, 0xB0, 0x09, 0xC1, 0xE1, 0x6F, 0x22, 0x00, 0xEB, 0x00, 0x12, 0x9F, 0xE5 - .byte 0x04, 0x10, 0x91, 0xE5, 0x0B, 0x1A, 0x81, 0xE2, 0xB0, 0x0C, 0xC1, 0xE1, 0x6A, 0x22, 0x00, 0xEB - .byte 0xEC, 0x21, 0x9F, 0xE5, 0x04, 0x10, 0x92, 0xE5, 0x0B, 0x1A, 0x81, 0xE2, 0xB0, 0x06, 0xC1, 0xE1 - .byte 0x04, 0x10, 0x92, 0xE5, 0x90, 0x00, 0x81, 0xE2, 0x0B, 0x5A, 0x80, 0xE2, 0x0B, 0x0A, 0x81, 0xE2 - .byte 0xF0, 0x09, 0xD0, 0xE1, 0x4E, 0x22, 0x00, 0xEB, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x3C, 0x10, 0xC4, 0xE5, 0x01, 0x20, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE3, 0x92, 0xFD, 0xFF, 0xEB - .byte 0xFA, 0x01, 0xD4, 0xE1, 0x20, 0x20, 0xA0, 0xE3, 0x01, 0x10, 0xA0, 0xE3, 0xA0, 0x0F, 0x80, 0xE0 - .byte 0xC0, 0x30, 0xA0, 0xE1, 0x00, 0x00, 0x63, 0xE2, 0xB0, 0x00, 0xC4, 0xE1, 0xB2, 0x20, 0xC4, 0xE1 - .byte 0x3E, 0x10, 0xC4, 0xE5, 0xB8, 0x30, 0xC4, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0xBA, 0x00, 0xC4, 0xE1 - .byte 0x21, 0x00, 0xA0, 0xE3, 0xBA, 0x02, 0xC4, 0xE1, 0xF0, 0x00, 0xD4, 0xE1, 0x06, 0x2A, 0xA0, 0xE3 - .byte 0xFF, 0x1C, 0xA0, 0xE3, 0x00, 0x04, 0xA0, 0xE1, 0x04, 0x00, 0x85, 0xE5, 0xF2, 0x30, 0xD4, 0xE1 - .byte 0x5C, 0x01, 0x9F, 0xE5, 0x03, 0x34, 0xA0, 0xE1, 0x08, 0x30, 0x85, 0xE5, 0x0C, 0x20, 0x85, 0xE5 - .byte 0x08, 0x20, 0x95, 0xE5, 0x10, 0x20, 0x85, 0xE5, 0x24, 0x10, 0x85, 0xE5, 0x04, 0x10, 0x90, 0xE5 - .byte 0xC3, 0x0D, 0x81, 0xE2, 0x02, 0x59, 0x80, 0xE2, 0x0B, 0x0A, 0x81, 0xE2, 0xF0, 0x0C, 0xD0, 0xE1 - .byte 0x27, 0x22, 0x00, 0xEB, 0x01, 0x1A, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x02, 0x30, 0xA0, 0xE3 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x6C, 0xFD, 0xFF, 0xEB, 0xFA, 0x01, 0xD4, 0xE1, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x52, 0x10, 0xA0, 0xE3, 0xA0, 0x0F, 0x80, 0xE0, 0xC0, 0x30, 0xA0, 0xE1, 0x3C, 0x20, 0xC4, 0xE5 - .byte 0x01, 0x0C, 0x83, 0xE2, 0xB0, 0x00, 0xC4, 0xE1, 0xB2, 0x10, 0xC4, 0xE1, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x3E, 0x00, 0xC4, 0xE5, 0xB8, 0x30, 0xC4, 0xE1, 0xBA, 0x20, 0xC4, 0xE1, 0x21, 0x00, 0xA0, 0xE3 - .byte 0xBA, 0x02, 0xC4, 0xE1, 0xF0, 0x00, 0xD4, 0xE1, 0x0A, 0x2A, 0xA0, 0xE3, 0xFF, 0x1C, 0xA0, 0xE3 - .byte 0x00, 0x04, 0xA0, 0xE1, 0x04, 0x00, 0x85, 0xE5, 0xF2, 0x30, 0xD4, 0xE1, 0xC0, 0x00, 0x9F, 0xE5 - .byte 0x03, 0x34, 0xA0, 0xE1, 0x08, 0x30, 0x85, 0xE5, 0x0C, 0x20, 0x85, 0xE5, 0x08, 0x20, 0x95, 0xE5 - .byte 0x10, 0x20, 0x85, 0xE5, 0x24, 0x10, 0x85, 0xE5, 0x04, 0x10, 0x90, 0xE5, 0x0B, 0x0A, 0x81, 0xE2 - .byte 0x60, 0x10, 0x81, 0xE2, 0xF0, 0x06, 0xD0, 0xE1, 0x0B, 0x5A, 0x81, 0xE2, 0x00, 0x22, 0x00, 0xEB - .byte 0x00, 0x40, 0xA0, 0xE1, 0x02, 0x10, 0xA0, 0xE3, 0x3C, 0x10, 0xC4, 0xE5, 0xFF, 0x10, 0xE0, 0xE3 - .byte 0xB0, 0x10, 0xC4, 0xE1, 0x3B, 0x10, 0xA0, 0xE3, 0xB2, 0x10, 0xC4, 0xE1, 0x01, 0x1C, 0xA0, 0xE3 - .byte 0xB4, 0x10, 0xC4, 0xE1, 0x01, 0x10, 0xA0, 0xE3, 0xB6, 0x10, 0xC4, 0xE1, 0x3E, 0x10, 0xC4, 0xE5 - .byte 0x21, 0x20, 0xA0, 0xE3, 0x06, 0x10, 0xA0, 0xE1, 0xBA, 0x22, 0xC4, 0xE1, 0x6D, 0xFD, 0xFF, 0xEB - .byte 0xF0, 0x10, 0xD4, 0xE1, 0x06, 0x2B, 0xA0, 0xE3, 0xFF, 0x0C, 0xA0, 0xE3, 0x01, 0x14, 0xA0, 0xE1 - .byte 0x04, 0x10, 0x85, 0xE5, 0xF2, 0x40, 0xD4, 0xE1, 0x34, 0x10, 0x9F, 0xE5, 0x01, 0x3C, 0xA0, 0xE3 - .byte 0x04, 0x44, 0xA0, 0xE1, 0x08, 0x40, 0x85, 0xE5, 0x14, 0x20, 0x85, 0xE5, 0x24, 0x00, 0x85, 0xE5 - .byte 0x04, 0x00, 0x91, 0xE5, 0x10, 0x20, 0xA0, 0xE3, 0x0B, 0x0A, 0x80, 0xE2, 0x54, 0x31, 0x80, 0xE5 - .byte 0x04, 0x00, 0x91, 0xE5, 0x0B, 0x0A, 0x80, 0xE2, 0x20, 0x20, 0x80, 0xE5, 0x41, 0xDF, 0x8D, 0xE2 - .byte 0x78, 0x80, 0xBD, 0xE8, 0x60, 0xF7, 0x0A, 0x02 - - arm_func_start FUN_02016bb8 -FUN_02016bb8: @ 0x02016BB8 - push {r3, lr} - ldr r0, _02016BEC @ =0x020AF760 - ldr r0, [r0, #4] - cmp r0, #0 - popeq {r3, pc} - bl FUN_0201f2e4 - ldr r0, _02016BEC @ =0x020AF760 - ldr r0, [r0, #4] - bl MemFree - ldr r0, _02016BEC @ =0x020AF760 - mov r1, #0 - str r1, [r0, #4] - pop {r3, pc} - .align 2, 0 -_02016BEC: .4byte 0x020AF760 - arm_func_end FUN_02016bb8 - - arm_func_start FUN_02016bf0 -FUN_02016bf0: @ 0x02016BF0 - push {r4, r5, r6, lr} - ldr r0, _02016EA8 @ =0x020AF760 - ldr r1, [r0, #4] - cmp r1, #0 - beq _02016EA0 - add r2, r1, #0xb000 - ldrsh r0, [r2, #0x60] - add r1, r1, #0x60 - add r6, r1, #0xb000 - ldr r5, [r2, #0x154] - bl FUN_0201f324 - ldrb r1, [r6, #0x28] - mov r4, r0 - cmp r1, #1 - beq _02016C44 - cmp r1, #2 - beq _02016C78 - cmp r1, #3 - moveq r0, #0 - strbeq r0, [r6, #0x28] - b _02016C94 -_02016C44: - ldr r1, [r6, #4] - ldr r0, [r6, #0x14] - adds r0, r1, r0 - str r0, [r6, #4] - bmi _02016C94 - ldrb r2, [r6, #0x28] - mov r1, #0 - mov r0, #0x2d - add r2, r2, #1 - strb r2, [r6, #0x28] - str r1, [r6, #4] - str r0, [r6, #0x2c] - b _02016C94 -_02016C78: - ldr r1, [r6, #0x2c] - sub r0, r1, #1 - str r0, [r6, #0x2c] - cmp r1, #0 - ldrbeq r0, [r6, #0x28] - addeq r0, r0, #1 - strbeq r0, [r6, #0x28] -_02016C94: - ldr r2, [r6, #4] - mov r1, r5 - asr r0, r2, #7 - add r0, r2, r0, lsr #24 - asr r0, r0, #8 - strh r0, [r4] - ldr r2, [r6, #0x24] - asr r0, r2, #7 - add r0, r2, r0, lsr #24 - asr r0, r0, #8 - bl MultiplyByFixedPoint - ldr r1, _02016EA8 @ =0x020AF760 - strb r0, [r4, #0x2f] - ldr r0, [r1, #4] - mov r2, #0 - add r1, r0, #0xb000 - add r0, r0, #0x90 - ldr r1, [r1, #0x154] - add r0, r0, #0xb000 - bl FUN_020177ac - ldr r2, _02016EA8 @ =0x020AF760 - ldr r0, [r2, #4] - add r0, r0, #0xb000 - ldr r3, [r0, #0x94] - asr r1, r3, #7 - add r1, r3, r1, lsr #24 - asr r1, r1, #8 - cmp r1, #0x80 - blt _02016D48 - mov r1, #0 - str r1, [r0, #0xa4] - ldr r0, [r2, #4] - mov r1, #0x8000 - add r0, r0, #0xb000 - str r1, [r0, #0x94] - ldr r4, [r2, #4] - add r0, r4, #0xb000 - ldrsh r0, [r0, #0x90] - bl FUN_0201f324 - add r1, r4, #0xb000 - ldr r2, [r1, #0x94] - asr r1, r2, #7 - add r1, r2, r1, lsr #24 - asr r1, r1, #8 - strh r1, [r0] -_02016D48: - ldr r0, _02016EA8 @ =0x020AF760 - ldr r2, [r0, #4] - add r0, r2, #0xb000 - ldrsh r0, [r0, #0xc0] - add r1, r2, #0x90 - add r2, r2, #0x30c0 - add r5, r1, #0xb000 - add r4, r2, #0x8000 - bl FUN_0201f324 - ldr r1, [r5, #4] - ldr r2, _02016EA8 @ =0x020AF760 - rsb r3, r1, #0x10000 - asr r1, r3, #7 - add r1, r3, r1, lsr #24 - str r3, [r4, #4] - asr r1, r1, #8 - strh r1, [r0] - ldr r0, [r2, #4] - add r1, r0, #0xb000 - ldr r3, [r1, #0x20] - cmp r3, #0x14 - bhi _02016DCC - subs r0, r3, #0x10 - addpl pc, pc, r0, lsl #2 - b _02016DC0 -_02016DAC: @ jump table - b _02016DE0 @ case 0 - b _02016E00 @ case 1 - b _02016E38 @ case 2 - b _02016E64 @ case 3 - b _02016E84 @ case 4 -_02016DC0: - cmp r3, #0 - beq _02016DD8 - b _02016E98 -_02016DCC: - cmp r3, #0xff - beq _02016E90 - b _02016E98 -_02016DD8: - mov r0, #0 - pop {r4, r5, r6, pc} -_02016DE0: - mov r0, #1 - strb r0, [r1, #0x88] - ldr r0, [r2, #4] - add r0, r0, #0xb000 - ldr r1, [r0, #0x20] - add r1, r1, #1 - str r1, [r0, #0x20] - b _02016E98 -_02016E00: - ldrb r0, [r1, #0x88] - cmp r0, #0 - bne _02016E98 - mov r3, #1 - strb r3, [r1, #0xb8] - ldr r0, [r2, #4] - add r0, r0, #0xb000 - strb r3, [r0, #0xe8] - ldr r0, [r2, #4] - add r0, r0, #0xb000 - ldr r1, [r0, #0x20] - add r1, r1, #1 - str r1, [r0, #0x20] - b _02016E98 -_02016E38: - ldrb r0, [r1, #0xb8] - cmp r0, #2 - bne _02016E98 - mov r0, #0x3c - str r0, [r1, #0x150] - ldr r0, [r2, #4] - add r0, r0, #0xb000 - ldr r1, [r0, #0x20] - add r1, r1, #1 - str r1, [r0, #0x20] - b _02016E98 -_02016E64: - ldr r2, [r1, #0x94] - asr r0, r2, #7 - add r0, r2, r0, lsr #24 - asr r0, r0, #8 - cmp r0, #0x80 - addge r0, r3, #1 - strge r0, [r1, #0x20] - b _02016E98 -_02016E84: - mov r0, #0xff - str r0, [r1, #0x20] - b _02016E98 -_02016E90: - mov r0, #2 - pop {r4, r5, r6, pc} -_02016E98: - mov r0, #1 - pop {r4, r5, r6, pc} -_02016EA0: - mov r0, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_02016EA8: .4byte 0x020AF760 - arm_func_end FUN_02016bf0 -_02016EAC: - .byte 0xF8, 0x4F, 0x2D, 0xE9 - .byte 0x10, 0xD0, 0x4D, 0xE2, 0x83, 0xFE, 0xFF, 0xEB, 0x68, 0x02, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3 - .byte 0xAA, 0xA8, 0xFF, 0xEB, 0x60, 0x22, 0x9F, 0xE5, 0x58, 0x12, 0x9F, 0xE5, 0x08, 0x00, 0x82, 0xE5 - .byte 0xDE, 0xB0, 0xFF, 0xEB, 0x54, 0x02, 0x9F, 0xE5, 0x54, 0x12, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x3C, 0x19, 0x00, 0xEB, 0x3C, 0x12, 0x9F, 0xE5, 0x3C, 0x22, 0x9F, 0xE5 - .byte 0x08, 0x30, 0x91, 0xE5, 0x3C, 0x12, 0x9F, 0xE5, 0xB4, 0x09, 0xC3, 0xE1, 0x00, 0x00, 0x92, 0xE5 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x34, 0x19, 0x00, 0xEB, 0x1C, 0x12, 0x9F, 0xE5, 0x08, 0x10, 0x91, 0xE5 - .byte 0xB6, 0x09, 0xC1, 0xE1, 0xFF, 0xFB, 0xFF, 0xEB, 0x0C, 0x02, 0x9F, 0xE5, 0x08, 0x00, 0x90, 0xE5 - .byte 0x98, 0x00, 0x80, 0xE2, 0x61, 0x14, 0x00, 0xEB, 0xFC, 0x01, 0x9F, 0xE5, 0x08, 0x10, 0x90, 0xE5 - .byte 0x98, 0x00, 0x81, 0xE2, 0xF4, 0x19, 0xD1, 0xE1, 0x6A, 0x14, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x8D, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x04, 0x20, 0x8D, 0xE5, 0x08, 0x20, 0x8D, 0xE5 - .byte 0xD4, 0x01, 0x9F, 0xE5, 0x0C, 0x20, 0x8D, 0xE5, 0x08, 0x00, 0x90, 0xE5, 0x0C, 0x10, 0xA0, 0xE3 - .byte 0x01, 0x3C, 0xA0, 0xE3, 0x98, 0x00, 0x80, 0xE2, 0xD7, 0x14, 0x00, 0xEB, 0xB8, 0x01, 0x9F, 0xE5 - .byte 0xD0, 0x40, 0xA0, 0xE3, 0x08, 0x20, 0x90, 0xE5, 0x6A, 0x30, 0xA0, 0xE3, 0xB4, 0x4B, 0xC2, 0xE1 - .byte 0x08, 0x20, 0x90, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0xB6, 0x3B, 0xC2, 0xE1, 0x08, 0x00, 0x90, 0xE5 - .byte 0x98, 0x00, 0x80, 0xE2, 0x64, 0x18, 0x00, 0xEB, 0x8C, 0x01, 0x9F, 0xE5, 0x98, 0x51, 0x9F, 0xE5 - .byte 0x08, 0x70, 0x90, 0xE5, 0x00, 0x90, 0xA0, 0xE3, 0x45, 0x6F, 0x87, 0xE2, 0x01, 0xB0, 0xA0, 0xE3 - .byte 0x7C, 0x00, 0xA0, 0xE3, 0x99, 0x60, 0x28, 0xE0, 0x08, 0x00, 0xA0, 0xE1, 0x3B, 0x14, 0x00, 0xEB - .byte 0xF4, 0x19, 0xD7, 0xE1, 0x08, 0x00, 0xA0, 0xE1, 0x46, 0x14, 0x00, 0xEB, 0x0C, 0x00, 0xA0, 0xE3 - .byte 0x99, 0x00, 0x04, 0xE0, 0x04, 0xA0, 0x85, 0xE0, 0x9B, 0xAC, 0xFF, 0xEB, 0xA0, 0x1F, 0xA0, 0xE1 - .byte 0x80, 0x0C, 0x61, 0xE0, 0x00, 0xB0, 0x8D, 0xE5, 0xE0, 0x0C, 0x81, 0xE0, 0x01, 0x08, 0x8D, 0xE9 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x0C, 0x00, 0x8D, 0xE5, 0x04, 0x10, 0x95, 0xE7, 0x08, 0x00, 0xA0, 0xE1 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x01, 0x3C, 0xA0, 0xE3, 0xAF, 0x14, 0x00, 0xEB, 0x04, 0x10, 0x9A, 0xE5 - .byte 0x08, 0x00, 0xA0, 0xE1, 0xBC, 0x11, 0xC8, 0xE1, 0x08, 0x20, 0x9A, 0xE5, 0x00, 0x10, 0xA0, 0xE3 - .byte 0xBE, 0x21, 0xC8, 0xE1, 0x40, 0x18, 0x00, 0xEB, 0x01, 0x90, 0x89, 0xE2, 0x07, 0x00, 0x59, 0xE3 - .byte 0xDE, 0xFF, 0xFF, 0xBA, 0xF0, 0x00, 0x9F, 0xE5, 0x00, 0x41, 0x9F, 0xE5, 0x08, 0x70, 0x90, 0xE5 - .byte 0x00, 0x90, 0xA0, 0xE3, 0x7C, 0x00, 0x87, 0xE2, 0x01, 0x6B, 0x80, 0xE2, 0x40, 0x50, 0xA0, 0xE3 - .byte 0x0C, 0xB0, 0xA0, 0xE3, 0x7C, 0x00, 0xA0, 0xE3, 0x99, 0x60, 0x28, 0xE0, 0x08, 0x00, 0xA0, 0xE1 - .byte 0x12, 0x14, 0x00, 0xEB, 0xF6, 0x19, 0xD7, 0xE1, 0x08, 0x00, 0xA0, 0xE1, 0x1D, 0x14, 0x00, 0xEB - .byte 0xB8, 0x53, 0xC8, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0x04, 0x00, 0x8D, 0xE5 - .byte 0x08, 0x00, 0x8D, 0xE5, 0x0C, 0x00, 0x8D, 0xE5, 0x99, 0x0B, 0x00, 0xE0, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x00, 0x10, 0x94, 0xE7, 0x00, 0xA0, 0x84, 0xE0, 0x08, 0x00, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1 - .byte 0x89, 0x14, 0x00, 0xEB, 0x04, 0x00, 0x9A, 0xE5, 0x06, 0x00, 0x59, 0xE3, 0xBC, 0x01, 0xC8, 0xE1 - .byte 0x08, 0x00, 0x9A, 0xE5, 0xBE, 0x01, 0xC8, 0xE1, 0x06, 0x00, 0x00, 0xBA, 0x09, 0x31, 0x87, 0xE0 - .byte 0x34, 0x2A, 0x93, 0xE5, 0x08, 0x00, 0xA0, 0xE1, 0x00, 0x10, 0xA0, 0xE3, 0x4C, 0x2A, 0x83, 0xE5 - .byte 0x15, 0x18, 0x00, 0xEB, 0x08, 0x00, 0x00, 0xEA, 0x5B, 0xAC, 0xFF, 0xEB, 0xA0, 0x1F, 0xA0, 0xE1 - .byte 0x00, 0x0E, 0x61, 0xE0, 0x60, 0x2E, 0x81, 0xE0, 0x09, 0x11, 0x87, 0xE0, 0x4C, 0x2A, 0x81, 0xE5 - .byte 0x08, 0x00, 0xA0, 0xE1, 0x01, 0x10, 0xA0, 0xE3, 0x0B, 0x18, 0x00, 0xEB, 0x01, 0x90, 0x89, 0xE2 - .byte 0x0C, 0x00, 0x59, 0xE3, 0xD2, 0xFF, 0xFF, 0xBA, 0x02, 0x00, 0xA0, 0xE3, 0x52, 0x4E, 0x01, 0xEB - .byte 0xA0, 0x4E, 0x01, 0xEB, 0xA5, 0x4E, 0x01, 0xEB, 0x2D, 0x00, 0xA0, 0xE3, 0x1F, 0x4F, 0x01, 0xEB - .byte 0x10, 0xD0, 0x8D, 0xE2, 0xF8, 0x8F, 0xBD, 0xE8, 0x7C, 0x0A, 0x00, 0x00, 0x60, 0xF7, 0x0A, 0x02 - .byte 0x68, 0xFC, 0x0A, 0x02, 0x10, 0x91, 0x09, 0x02, 0x24, 0x91, 0x09, 0x02, 0xC8, 0x8F, 0x09, 0x02 - .byte 0x80, 0x90, 0x09, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x41, 0xDF, 0x4D, 0xE2, 0x00, 0x20, 0xA0, 0xE1 - .byte 0x01, 0x40, 0xA0, 0xE1, 0x02, 0x10, 0xA0, 0xE1, 0x04, 0x00, 0x8D, 0xE2, 0x01, 0x20, 0xA0, 0xE3 - .byte 0x24, 0x01, 0x00, 0xEB, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x8D, 0xE5, 0x9C, 0x01, 0x9F, 0xE5 - .byte 0x04, 0x30, 0x8D, 0xE2, 0x04, 0x00, 0x90, 0xE5, 0x04, 0x10, 0xA0, 0xE1, 0x02, 0x20, 0xA0, 0xE3 - .byte 0x61, 0x01, 0x00, 0xEB, 0xC8, 0xFC, 0xFF, 0xEB, 0x80, 0x01, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x04, 0x00, 0x90, 0xE5, 0x0B, 0x0A, 0x80, 0xE2, 0x50, 0x11, 0x80, 0xE5, 0x72, 0x20, 0x00, 0xEB - .byte 0x68, 0x11, 0x9F, 0xE5, 0x04, 0x10, 0x91, 0xE5, 0x0B, 0x1A, 0x81, 0xE2, 0xB0, 0x09, 0xC1, 0xE1 - .byte 0x6D, 0x20, 0x00, 0xEB, 0x54, 0x11, 0x9F, 0xE5, 0x04, 0x10, 0x91, 0xE5, 0x0B, 0x1A, 0x81, 0xE2 - .byte 0xB0, 0x0C, 0xC1, 0xE1, 0x68, 0x20, 0x00, 0xEB, 0x40, 0x21, 0x9F, 0xE5, 0x04, 0x10, 0x92, 0xE5 - .byte 0x0B, 0x1A, 0x81, 0xE2, 0xB0, 0x06, 0xC1, 0xE1, 0x04, 0x10, 0x92, 0xE5, 0x90, 0x00, 0x81, 0xE2 - .byte 0x0B, 0x5A, 0x80, 0xE2, 0x0B, 0x0A, 0x81, 0xE2, 0xF0, 0x09, 0xD0, 0xE1, 0x4C, 0x20, 0x00, 0xEB - .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x40, 0xA0, 0xE1, 0x3C, 0x10, 0xC4, 0xE5, 0x01, 0x2C, 0x41, 0xE2 - .byte 0xB0, 0x20, 0xC4, 0xE1, 0x20, 0x20, 0xA0, 0xE3, 0xB2, 0x20, 0xC4, 0xE1, 0x01, 0x20, 0xA0, 0xE3 - .byte 0x3E, 0x20, 0xC4, 0xE5, 0x21, 0x30, 0xA0, 0xE3, 0xBA, 0x32, 0xC4, 0xE1, 0x02, 0x30, 0xA0, 0xE3 - .byte 0x89, 0xFB, 0xFF, 0xEB, 0xF0, 0x00, 0xD4, 0xE1, 0x02, 0x2A, 0xA0, 0xE3, 0xFF, 0x1C, 0xA0, 0xE3 - .byte 0x00, 0x04, 0xA0, 0xE1, 0x04, 0x00, 0x85, 0xE5, 0xF2, 0x30, 0xD4, 0xE1, 0xCC, 0x00, 0x9F, 0xE5 - .byte 0x03, 0x34, 0xA0, 0xE1, 0x08, 0x30, 0x85, 0xE5, 0x0C, 0x20, 0x85, 0xE5, 0x08, 0x20, 0x95, 0xE5 - .byte 0x10, 0x20, 0x85, 0xE5, 0x24, 0x10, 0x85, 0xE5, 0x04, 0x10, 0x90, 0xE5, 0xC3, 0x0D, 0x81, 0xE2 - .byte 0x02, 0x59, 0x80, 0xE2, 0x0B, 0x0A, 0x81, 0xE2, 0xF0, 0x0C, 0xD0, 0xE1, 0x2C, 0x20, 0x00, 0xEB - .byte 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x20, 0xA0, 0xE3, 0x3C, 0x20, 0xC4, 0xE5, 0x06, 0x1D, 0xA0, 0xE3 - .byte 0xB0, 0x10, 0xC4, 0xE1, 0x52, 0x10, 0xA0, 0xE3, 0xB2, 0x10, 0xC4, 0xE1, 0x80, 0x10, 0xA0, 0xE3 - .byte 0xB8, 0x10, 0xC4, 0xE1, 0xBA, 0x20, 0xC4, 0xE1, 0x21, 0x10, 0xA0, 0xE3, 0xBA, 0x12, 0xC4, 0xE1 - .byte 0x01, 0x10, 0xA0, 0xE3, 0x3E, 0x10, 0xC4, 0xE5, 0x01, 0x1A, 0xA0, 0xE3, 0x02, 0x30, 0xA0, 0xE3 - .byte 0x65, 0xFB, 0xFF, 0xEB, 0xF0, 0x10, 0xD4, 0xE1, 0x02, 0x29, 0xA0, 0xE3, 0xFF, 0x0C, 0xA0, 0xE3 - .byte 0x01, 0x14, 0xA0, 0xE1, 0x04, 0x10, 0x85, 0xE5, 0xF2, 0x40, 0xD4, 0xE1, 0x3C, 0x10, 0x9F, 0xE5 - .byte 0x01, 0x3C, 0xA0, 0xE3, 0x04, 0x44, 0xA0, 0xE1, 0x08, 0x40, 0x85, 0xE5, 0x0C, 0x20, 0x85, 0xE5 - .byte 0x08, 0x40, 0x95, 0xE5, 0x10, 0x20, 0xA0, 0xE3, 0x10, 0x40, 0x85, 0xE5, 0x24, 0x00, 0x85, 0xE5 - .byte 0x04, 0x00, 0x91, 0xE5, 0x0B, 0x0A, 0x80, 0xE2, 0x54, 0x31, 0x80, 0xE5, 0x04, 0x00, 0x91, 0xE5 - .byte 0x0B, 0x0A, 0x80, 0xE2, 0x20, 0x20, 0x80, 0xE5, 0x41, 0xDF, 0x8D, 0xE2, 0x30, 0x80, 0xBD, 0xE8 - .byte 0x60, 0xF7, 0x0A, 0x02, 0xF8, 0x4F, 0x2D, 0xE9, 0x10, 0xD0, 0x4D, 0xE2, 0x64, 0x02, 0x9F, 0xE5 - .byte 0x04, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x93, 0x00, 0x00, 0x0A, 0xA1, 0x4E, 0x01, 0xEB - .byte 0x85, 0x4E, 0x01, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x8F, 0x00, 0x00, 0x1A, 0x44, 0x02, 0x9F, 0xE5 - .byte 0x01, 0x20, 0xA0, 0xE3, 0x18, 0x00, 0x90, 0xE9, 0x0B, 0x1A, 0x83, 0xE2, 0x90, 0x00, 0x83, 0xE2 - .byte 0x54, 0x11, 0x91, 0xE5, 0x0B, 0x0A, 0x80, 0xE2, 0x13, 0x01, 0x00, 0xEB, 0x24, 0x02, 0x9F, 0xE5 - .byte 0x01, 0x20, 0xA0, 0xE3, 0x04, 0x00, 0x90, 0xE5, 0x0B, 0x1A, 0x80, 0xE2, 0xC3, 0x0D, 0x80, 0xE2 - .byte 0x54, 0x11, 0x91, 0xE5, 0x02, 0x09, 0x80, 0xE2, 0x0B, 0x01, 0x00, 0xEB, 0x04, 0x12, 0x9F, 0xE5 - .byte 0x04, 0x50, 0x91, 0xE5, 0x0B, 0x0A, 0x85, 0xE2, 0x20, 0x30, 0x90, 0xE5, 0x13, 0x00, 0x53, 0xE3 - .byte 0x09, 0x00, 0x00, 0x8A, 0x10, 0x20, 0x53, 0xE2, 0x02, 0xF1, 0x8F, 0x50, 0x03, 0x00, 0x00, 0xEA - .byte 0x0A, 0x00, 0x00, 0xEA, 0x14, 0x00, 0x00, 0xEA, 0x22, 0x00, 0x00, 0xEA, 0x2C, 0x00, 0x00, 0xEA - .byte 0x00, 0x00, 0x53, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x3A, 0x00, 0x00, 0xEA, 0xFF, 0x00, 0x53, 0xE3 - .byte 0x36, 0x00, 0x00, 0x0A, 0x37, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3, 0x6B, 0x00, 0x00, 0xEA - .byte 0x01, 0x20, 0xA0, 0xE3, 0xB8, 0x20, 0xC0, 0xE5, 0x04, 0x00, 0x91, 0xE5, 0x0B, 0x0A, 0x80, 0xE2 - .byte 0xE8, 0x20, 0xC0, 0xE5, 0x04, 0x00, 0x91, 0xE5, 0x0B, 0x0A, 0x80, 0xE2, 0x20, 0x10, 0x90, 0xE5 - .byte 0x01, 0x10, 0x81, 0xE2, 0x20, 0x10, 0x80, 0xE5, 0x2A, 0x00, 0x00, 0xEA, 0xD4, 0x10, 0x90, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0xA4, 0x00, 0x90, 0x15, 0x00, 0x00, 0x50, 0x13, 0x25, 0x00, 0x00, 0x1A - .byte 0x0B, 0x0A, 0x85, 0xE2, 0x20, 0x20, 0x90, 0xE5, 0x68, 0x11, 0x9F, 0xE5, 0x01, 0x20, 0x82, 0xE2 - .byte 0x20, 0x20, 0x80, 0xE5, 0x04, 0x00, 0x91, 0xE5, 0x14, 0x10, 0xA0, 0xE3, 0x0B, 0x0A, 0x80, 0xE2 - .byte 0x50, 0x11, 0x80, 0xE5, 0x1B, 0x00, 0x00, 0xEA, 0x50, 0x21, 0x90, 0xE5, 0x01, 0x20, 0x42, 0xE2 - .byte 0x50, 0x21, 0x80, 0xE5, 0x04, 0x00, 0x91, 0xE5, 0x0B, 0x0A, 0x80, 0xE2, 0x50, 0x11, 0x90, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x20, 0x10, 0x90, 0x05, 0x01, 0x10, 0x81, 0x02, 0x20, 0x10, 0x80, 0x05 - .byte 0x10, 0x00, 0x00, 0xEA, 0x98, 0x00, 0x84, 0xE2, 0xBB, 0x16, 0x00, 0xEB, 0x98, 0x00, 0x84, 0xE2 - .byte 0x4E, 0x17, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0x1A, 0x04, 0x01, 0x9F, 0xE5 - .byte 0x01, 0x10, 0xA0, 0xE3, 0x04, 0x00, 0x90, 0xE5, 0x0B, 0x0A, 0x80, 0xE2, 0x20, 0x20, 0x90, 0xE5 - .byte 0x01, 0x20, 0x82, 0xE2, 0x20, 0x20, 0x80, 0xE5, 0x78, 0x14, 0xC4, 0xE5, 0x01, 0x00, 0x00, 0xEA - .byte 0x02, 0x00, 0xA0, 0xE3, 0x35, 0x00, 0x00, 0xEA, 0x78, 0x04, 0xD4, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x07, 0x00, 0x00, 0x0A, 0x00, 0x70, 0xA0, 0xE3, 0x45, 0x6F, 0x84, 0xE2, 0x7C, 0x50, 0xA0, 0xE3 - .byte 0x97, 0x65, 0x20, 0xE0, 0xA4, 0x16, 0x00, 0xEB, 0x01, 0x70, 0x87, 0xE2, 0x07, 0x00, 0x57, 0xE3 - .byte 0xFA, 0xFF, 0xFF, 0xBA, 0x00, 0x80, 0xA0, 0xE3, 0x7C, 0x00, 0x84, 0xE2, 0x01, 0x7B, 0x80, 0xE2 - .byte 0x08, 0xB0, 0xA0, 0xE1, 0x01, 0x60, 0xA0, 0xE3, 0x7C, 0x50, 0xA0, 0xE3, 0x08, 0x11, 0x84, 0xE0 - .byte 0x4C, 0x0A, 0x91, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x18, 0x00, 0x00, 0x1A, 0x98, 0x75, 0x29, 0xE0 - .byte 0x09, 0x00, 0xA0, 0xE1, 0x29, 0x17, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x10, 0x00, 0x00, 0x1A - .byte 0xF8, 0xA7, 0xD9, 0xE1, 0x00, 0x00, 0x5A, 0xE3, 0x0D, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x0A, 0xE2 - .byte 0x01, 0x00, 0x50, 0xE3, 0x09, 0x00, 0xA0, 0xE1, 0x01, 0xA0, 0x8A, 0x02, 0xF5, 0x12, 0x00, 0xEB - .byte 0x00, 0xB0, 0x8D, 0xE5, 0x04, 0xB0, 0x8D, 0xE5, 0x08, 0x60, 0x8D, 0xE5, 0x09, 0x00, 0xA0, 0xE1 - .byte 0x0A, 0x10, 0xA0, 0xE1, 0x0B, 0x20, 0xA0, 0xE1, 0x0B, 0x30, 0xA0, 0xE1, 0x0C, 0xB0, 0x8D, 0xE5 - .byte 0x5D, 0x13, 0x00, 0xEB, 0x09, 0x00, 0xA0, 0xE1, 0x7F, 0x16, 0x00, 0xEB, 0x01, 0x00, 0x00, 0xEA - .byte 0x01, 0x00, 0x40, 0xE2, 0x4C, 0x0A, 0x81, 0xE5, 0x01, 0x80, 0x88, 0xE2, 0x0C, 0x00, 0x58, 0xE3 - .byte 0xDD, 0xFF, 0xFF, 0xBA, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x10, 0xD0, 0x8D, 0xE2, 0xF8, 0x8F, 0xBD, 0xE8, 0x60, 0xF7, 0x0A, 0x02, 0x08, 0x40, 0x2D, 0xE9 - .byte 0x58, 0x00, 0x9F, 0xE5, 0x08, 0x10, 0x90, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x10, 0x00, 0x00, 0x0A - .byte 0x4C, 0x00, 0x9F, 0xE5, 0xF4, 0x19, 0xD1, 0xE1, 0x00, 0x00, 0x90, 0xE5, 0x5E, 0x18, 0x00, 0xEB - .byte 0x38, 0x00, 0x9F, 0xE5, 0x38, 0x10, 0x9F, 0xE5, 0x08, 0x20, 0x90, 0xE5, 0x00, 0x00, 0x91, 0xE5 - .byte 0xF6, 0x19, 0xD2, 0xE1, 0x58, 0x18, 0x00, 0xEB, 0x20, 0x00, 0x9F, 0xE5, 0x08, 0x00, 0x90, 0xE5 - .byte 0xEC, 0xA6, 0xFF, 0xEB, 0x14, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x08, 0x10, 0x80, 0xE5 - .byte 0x3D, 0x99, 0x0A, 0xEB, 0x1C, 0x51, 0x01, 0xEB, 0x72, 0xFD, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 - .byte 0x60, 0xF7, 0x0A, 0x02, 0x68, 0xFC, 0x0A, 0x02 - - arm_func_start FUN_020175f8 -FUN_020175f8: @ 0x020175F8 - push {r3, r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x80 - cmp r2, #0 - ldrne r5, _020176D4 @ =0x00000171 - mov r6, r0 - mov sb, r1 - mvn r0, #0 - ldreq r5, _020176D8 @ =0x0000016F - cmp sb, r0 - beq _020176B0 - mov r0, sb - mov r1, #0x64 - add r4, sp, #0 - bl DivideUInt - and r8, r0, #0xff - mov r0, sb - mov r1, #0xa - bl DivideUInt - and r7, r0, #0xff - mov r0, sb - mov r1, #0xa - bl DivideUInt - cmp r8, #0 - addne r0, r8, #0x30 - strbne r0, [r4], #1 - cmp r7, #0 - addne r0, r7, #0x30 - and r1, r1, #0xff - strbne r0, [r4], #1 - bne _0201767C - cmp r8, #0 - addne r0, r7, #0x30 - strbne r0, [r4], #1 -_0201767C: - add r2, r1, #0x30 - strb r2, [r4] - mov r2, #0 - add r0, sp, #0x40 - mov r1, r5 - strb r2, [r4, #1] - bl GetStringFromFileVeneer - ldr r1, _020176DC @ =0x02099138 - add r2, sp, #0x40 - add r3, sp, #0 - mov r0, r6 - bl SprintfStatic - b _020176CC -_020176B0: - add r0, sp, #0x40 - mov r1, #0x170 - bl GetStringFromFileVeneer - ldr r1, _020176E0 @ =0x02099140 - add r2, sp, #0x40 - mov r0, r6 - bl SprintfStatic -_020176CC: - add sp, sp, #0x80 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_020176D4: .4byte 0x00000171 -_020176D8: .4byte 0x0000016F -_020176DC: .4byte 0x02099138 -_020176E0: .4byte 0x02099140 - arm_func_end FUN_020175f8 - - arm_func_start SprintfStatic -SprintfStatic: @ 0x020176E4 - push {r0, r1, r2, r3} - push {r3, lr} - add r2, sp, #0xc - bic r2, r2, #3 - ldr r1, [sp, #0xc] - add r2, r2, #4 - bl Vsprintf - pop {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end SprintfStatic - - arm_func_start FUN_0201770c -FUN_0201770c: @ 0x0201770C - push {r3, r4, r5, r6, r7, lr} - mov r6, r1 - mov r1, #0x6000 - mov r7, r0 - mov r5, r2 - mov r4, r3 - bl MemZero - ldr r2, [sp, #0x18] - mov r1, #0 - mov r0, r7 - str r2, [sp] - mov r2, r1 - mov r3, r4 - bl FUN_0201578c - add r0, r7, #0x6000 - mov r1, r7 - mov r2, #0x20 - bl FUN_02015fdc - add r0, r7, #0x6000 - mov r1, #0 - mov r2, #0x1000 - bl FUN_02016038 - mov r0, r7 - mov r1, #0x6000 - bl MemZero - str r5, [sp] - mov r3, r6 - mov r0, r7 - mov r1, #0 - mov r2, r1 - bl FUN_0201578c - add r0, r7, #0x7000 - mov r1, r7 - mov r2, #0x80 - bl FUN_02015fdc - add r0, r7, #0x7000 - mov r1, #0x1000 - mov r2, #0x4000 - bl FUN_02016038 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0201770c - - arm_func_start FUN_020177ac -FUN_020177ac: @ 0x020177AC - push {r3, r4, r5, r6, r7, lr} - mov r6, r0 - ldrsh r0, [r6] - mov r5, r1 - mov r7, r2 - bl FUN_0201f324 - ldrb r1, [r6, #0x28] - mov r4, r0 - cmp r1, #1 - beq _020177E8 - cmp r1, #2 - beq _02017848 - cmp r1, #3 - beq _02017858 - pop {r3, r4, r5, r6, r7, pc} -_020177E8: - cmp r7, #0 - mov r3, #0x80 - beq _02017820 - mov r0, #0 - str r0, [sp] - ldr r1, [r6, #4] - ldr r2, [r6, #0xc] - add r0, r6, #0x14 - bl FUN_022C2528 - cmp r0, #0 - ldrbne r0, [r6, #0x28] - addne r0, r0, #1 - strbne r0, [r6, #0x28] - b _02017868 -_02017820: - str r3, [sp] - ldr r1, [r6, #4] - ldr r2, [r6, #0xc] - add r0, r6, #0x14 - bl FUN_022C2528 - cmp r0, #0 - ldrbne r0, [r6, #0x28] - addne r0, r0, #1 - strbne r0, [r6, #0x28] - b _02017868 -_02017848: - cmp r5, #0 - addeq r0, r1, #1 - strbeq r0, [r6, #0x28] - b _02017868 -_02017858: - mov r0, #0xff - strb r0, [r6, #0x28] - mov r0, #0 - str r0, [r6, #0x14] -_02017868: - ldr r2, [r6, #4] - ldr r0, [r6, #0x14] - mov r1, r5 - add r2, r2, r0 - asr r0, r2, #7 - add r0, r2, r0, lsr #24 - str r2, [r6, #4] - asr r0, r0, #8 - strh r0, [r4] - ldr r2, [r6, #0x24] - asr r0, r2, #7 - add r0, r2, r0, lsr #24 - asr r0, r0, #8 - bl MultiplyByFixedPoint - strb r0, [r4, #0x2f] - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_020177ac - - arm_func_start FUN_020178a8 -FUN_020178a8: @ 0x020178A8 - push {r4, r5, r6, r7, lr} - sub sp, sp, #0x104 - mov r5, r1 - and r1, r5, #0xff - mov r7, r0 - bl FUN_0204f77c - mov r6, r0 - cmp r6, r7 - and r4, r5, #0xff - beq _020178DC - bl GetNbFloors - cmp r0, #1 - moveq r4, #0 -_020178DC: - mov r1, r7 - and r2, r5, #0xff - mov r0, #2 - bl FUN_0204f6f8 - mov r5, r0 - mov r0, r6 - bl DungeonGoesUp - cmp r0, #0 - ldrne r0, _020179FC @ =0x020AF76C - ldrne r7, [r0] - ldreq r0, _020179FC @ =0x020AF76C - ldreq r7, [r0, #4] - cmp r4, #0xa - blo _02017954 - mov r0, r4 - mov r1, #0xa - bl DivideInt - mov r6, r0 - mov r0, r4 - mov r1, #0xa - bl DivideInt - add r1, r1, #0x30 - ldr r0, _020179FC @ =0x020AF76C - str r1, [sp] - ldr r1, [r0, #8] - add r0, sp, #4 - mov r2, r7 - add r3, r6, #0x30 - bl SprintfStatic - b _0201797C -_02017954: - cmp r4, #0 - moveq r0, #0 - strbeq r0, [sp, #4] - beq _0201797C - ldr r1, _020179FC @ =0x020AF76C - add r0, sp, #4 - ldr r1, [r1, #0xc] - mov r2, r7 - add r3, r4, #0x30 - bl SprintfStatic -_0201797C: - bl FUN_02015570 - cmp r4, #0 - mov r0, r5 - beq _020179D4 - bl FUN_020155fc - mov r1, #0x18 - mul r1, r0, r1 - add r0, r1, #0x38 - rsb r4, r0, #0xc0 - asr r0, r4, #1 - mov r1, r5 - bl FUN_02015e44 - sub r1, r0, #1 - mov r0, #0x18 - mul r0, r1, r0 - add r0, r0, r4, asr #1 - add r1, r0, #0x20 - add r2, sp, #4 - mov r0, #0 - mov r3, #2 - bl FUN_02015d18 - b _020179F0 -_020179D4: - bl FUN_020155fc - mov r1, #0x18 - mul r1, r0, r1 - rsb r0, r1, #0xc0 - mov r1, r5 - asr r0, r0, #1 - bl FUN_02015e44 -_020179F0: - bl FUN_02015e6c - add sp, sp, #0x104 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_020179FC: .4byte 0x020AF76C - arm_func_end FUN_020178a8 - - arm_func_start FUN_02017a00 -FUN_02017a00: @ 0x02017A00 - push {r3, lr} - bl FUN_02015570 - ldr r1, _02017A1C @ =0x000044BD - mov r0, #0x3e - bl FUN_02015e44 - bl FUN_02015e6c - pop {r3, pc} - .align 2, 0 -_02017A1C: .4byte 0x000044BD - arm_func_end FUN_02017a00 - - arm_func_start FUN_02017a20 -FUN_02017a20: @ 0x02017A20 - push {r3, lr} - bl FUN_02015570 - ldr r1, _02017A3C @ =0x000044BE - mov r0, #0x3e - bl FUN_02015e44 - bl FUN_02015e6c - pop {r3, pc} - .align 2, 0 -_02017A3C: .4byte 0x000044BE - arm_func_end FUN_02017a20 - - arm_func_start SprintfStatic -SprintfStatic: @ 0x02017A40 - push {r0, r1, r2, r3} - push {r3, lr} - add r2, sp, #0xc - bic r2, r2, #3 - ldr r1, [sp, #0xc] - add r2, r2, #4 - bl Vsprintf - pop {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end SprintfStatic - - arm_func_start FUN_02017a68 -FUN_02017a68: @ 0x02017A68 - ldr r0, _02017A7C @ =0x022A4BE8 - mov r1, #0 - strh r1, [r0, #2] - strh r1, [r0] - bx lr - .align 2, 0 -_02017A7C: .4byte 0x022A4BE8 - arm_func_end FUN_02017a68 - - arm_func_start FUN_02017a80 -FUN_02017a80: @ 0x02017A80 - ldr r0, _02017AAC @ =0x022A4BE8 - ldrsh r1, [r0, #2] - cmp r1, #0 - subgt r1, r1, #1 - strhgt r1, [r0, #2] - ldr r0, _02017AAC @ =0x022A4BE8 - ldrsh r1, [r0] - cmp r1, #0 - subgt r1, r1, #1 - strhgt r1, [r0] - bx lr - .align 2, 0 -_02017AAC: .4byte 0x022A4BE8 - arm_func_end FUN_02017a80 - - arm_func_start FUN_02017ab0 -FUN_02017ab0: @ 0x02017AB0 - push {r3, lr} - bl FUN_02017ee8 - bl FUN_02018118 - bl FUN_02018278 - mov r0, #0x3f00 - bl FUN_02018428 - pop {r3, pc} - arm_func_end FUN_02017ab0 - - arm_func_start FUN_02017acc -FUN_02017acc: @ 0x02017ACC - push {r4, lr} - mov r4, r0 - bl FUN_02017f28 - mov r0, r4 - bl FUN_02018158 - ldr r0, _02017AFC @ =0x000003E6 - mov r1, r4 - bl FUN_02018460 - mov r1, r4 - mov r0, #0x3f00 - bl FUN_02018460 - pop {r4, pc} - .align 2, 0 -_02017AFC: .4byte 0x000003E6 - arm_func_end FUN_02017acc -_02017B00: - .byte 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x80, 0x7D, 0x01, 0x02, 0x00, 0xC0, 0x9F, 0xE5 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xE8, 0x7D, 0x01, 0x02 - - arm_func_start FUN_02017b18 -FUN_02017b18: @ 0x02017B18 - push {r4, lr} - mov r4, r0 - bl FUN_02017d80 - ldr r1, _02017B54 @ =0x000003E7 - cmp r4, r1 - bne _02017B40 - cmp r0, r1 - movne r0, #1 - moveq r0, #0 - b _02017B4C -_02017B40: - cmp r0, r4 - moveq r0, #1 - movne r0, #0 -_02017B4C: - and r0, r0, #0xff - pop {r4, pc} - .align 2, 0 -_02017B54: .4byte 0x000003E7 - arm_func_end FUN_02017b18 - - arm_func_start thunk_FUN_02017df4 -thunk_FUN_02017df4: @ 0x02017B58 - ldr ip, _02017B60 @ =FUN_02017df4 - bx ip - .align 2, 0 -_02017B60: .4byte FUN_02017df4 - arm_func_end thunk_FUN_02017df4 - - arm_func_start thunk_FUN_02017e70 -thunk_FUN_02017e70: @ 0x02017B64 - ldr ip, _02017B6C @ =FUN_02017e70 - bx ip - .align 2, 0 -_02017B6C: .4byte FUN_02017e70 - arm_func_end thunk_FUN_02017e70 - - arm_func_start thunk_FUN_02017ee8 -thunk_FUN_02017ee8: @ 0x02017B70 - ldr ip, _02017B78 @ =FUN_02017ee8 - bx ip - .align 2, 0 -_02017B78: .4byte FUN_02017ee8 - arm_func_end thunk_FUN_02017ee8 - - arm_func_start thunk_FUN_02017f28 -thunk_FUN_02017f28: @ 0x02017B7C - ldr ip, _02017B84 @ =FUN_02017f28 - bx ip - .align 2, 0 -_02017B84: .4byte FUN_02017f28 - arm_func_end thunk_FUN_02017f28 - - arm_func_start thunk_FUN_02017f64 -thunk_FUN_02017f64: @ 0x02017B88 - ldr ip, _02017B90 @ =FUN_02017f64 - bx ip - .align 2, 0 -_02017B90: .4byte FUN_02017f64 - arm_func_end thunk_FUN_02017f64 - - arm_func_start FUN_02017b94 -FUN_02017b94: @ 0x02017B94 - push {r4, lr} - mov r4, r0 - bl FUN_02017fbc - ldr r1, _02017BD0 @ =0x000003E7 - cmp r4, r1 - bne _02017BBC - cmp r0, r1 - movne r0, #1 - moveq r0, #0 - b _02017BC8 -_02017BBC: - cmp r0, r4 - moveq r0, #1 - movne r0, #0 -_02017BC8: - and r0, r0, #0xff - pop {r4, pc} - .align 2, 0 -_02017BD0: .4byte 0x000003E7 - arm_func_end FUN_02017b94 - - arm_func_start thunk_FUN_02018024 -thunk_FUN_02018024: @ 0x02017BD4 - ldr ip, _02017BDC @ =FUN_02018024 - bx ip - .align 2, 0 -_02017BDC: .4byte FUN_02018024 - arm_func_end thunk_FUN_02018024 - - arm_func_start thunk_FUN_020180a0 -thunk_FUN_020180a0: @ 0x02017BE0 - ldr ip, _02017BE8 @ =FUN_020180a0 - bx ip - .align 2, 0 -_02017BE8: .4byte FUN_020180a0 - arm_func_end thunk_FUN_020180a0 - - arm_func_start thunk_FUN_02018118 -thunk_FUN_02018118: @ 0x02017BEC - ldr ip, _02017BF4 @ =FUN_02018118 - bx ip - .align 2, 0 -_02017BF4: .4byte FUN_02018118 - arm_func_end thunk_FUN_02018118 - - arm_func_start thunk_FUN_02018158 -thunk_FUN_02018158: @ 0x02017BF8 - ldr ip, _02017C00 @ =FUN_02018158 - bx ip - .align 2, 0 -_02017C00: .4byte FUN_02018158 - arm_func_end thunk_FUN_02018158 - - arm_func_start thunk_FUN_02018194 -thunk_FUN_02018194: @ 0x02017C04 - ldr ip, _02017C0C @ =FUN_02018194 - bx ip - .align 2, 0 -_02017C0C: .4byte FUN_02018194 - arm_func_end thunk_FUN_02018194 - - arm_func_start FUN_02017c10 -FUN_02017c10: @ 0x02017C10 - push {r4, lr} - mov r4, r0 - bl FUN_020181e0 - ldr r1, _02017C4C @ =0x000003E6 - cmp r4, r1 - bne _02017C38 - cmp r0, r1 - movne r0, #1 - moveq r0, #0 - b _02017C44 -_02017C38: - cmp r0, r4 - moveq r0, #1 - movne r0, #0 -_02017C44: - and r0, r0, #0xff - pop {r4, pc} - .align 2, 0 -_02017C4C: .4byte 0x000003E6 - arm_func_end FUN_02017c10 - - arm_func_start thunk_FUN_0201820c -thunk_FUN_0201820c: @ 0x02017C50 - ldr ip, _02017C58 @ =FUN_0201820c - bx ip - .align 2, 0 -_02017C58: .4byte FUN_0201820c - arm_func_end thunk_FUN_0201820c - - arm_func_start thunk_FUN_02018278 -thunk_FUN_02018278: @ 0x02017C5C - ldr ip, _02017C64 @ =FUN_02018278 - bx ip - .align 2, 0 -_02017C64: .4byte FUN_02018278 - arm_func_end thunk_FUN_02018278 - - arm_func_start thunk_FUN_0201a480 -thunk_FUN_0201a480: @ 0x02017C68 - ldr ip, _02017C70 @ =thunk_FUN_0201a480 - bx ip - .align 2, 0 -_02017C70: .4byte thunk_FUN_0201a480 - arm_func_end thunk_FUN_0201a480 - - arm_func_start thunk_FUN_020182b8 -thunk_FUN_020182b8: @ 0x02017C74 - ldr ip, _02017C7C @ =FUN_020182b8 - bx ip - .align 2, 0 -_02017C7C: .4byte FUN_020182b8 - arm_func_end thunk_FUN_020182b8 - - arm_func_start FUN_02017c80 -FUN_02017c80: @ 0x02017C80 - ldr ip, _02017C8C @ =FUN_020182b8 - mov r1, #0x100 - bx ip - .align 2, 0 -_02017C8C: .4byte FUN_020182b8 - arm_func_end FUN_02017c80 - - arm_func_start thunk_FUN_0201831c -thunk_FUN_0201831c: @ 0x02017C90 - ldr ip, _02017C98 @ =FUN_0201831c - bx ip - .align 2, 0 -_02017C98: .4byte FUN_0201831c - arm_func_end thunk_FUN_0201831c - - arm_func_start thunk_FUN_020183a0 -thunk_FUN_020183a0: @ 0x02017C9C - ldr ip, _02017CA4 @ =FUN_020183a0 - bx ip - .align 2, 0 -_02017CA4: .4byte FUN_020183a0 - arm_func_end thunk_FUN_020183a0 - - arm_func_start thunk_FUN_020183e4 -thunk_FUN_020183e4: @ 0x02017CA8 - ldr ip, _02017CB0 @ =FUN_020183e4 - bx ip - .align 2, 0 -_02017CB0: .4byte FUN_020183e4 - arm_func_end thunk_FUN_020183e4 - - arm_func_start thunk_FUN_02018428 -thunk_FUN_02018428: @ 0x02017CB4 - ldr ip, _02017CBC @ =FUN_02018428 - bx ip - .align 2, 0 -_02017CBC: .4byte FUN_02018428 - arm_func_end thunk_FUN_02018428 - - arm_func_start thunk_FUN_02018460 -thunk_FUN_02018460: @ 0x02017CC0 - ldr ip, _02017CC8 @ =FUN_02018460 - bx ip - .align 2, 0 -_02017CC8: .4byte FUN_02018460 - arm_func_end thunk_FUN_02018460 - - arm_func_start FUN_02017ccc -FUN_02017ccc: @ 0x02017CCC - ldr r1, _02017CE4 @ =0x0209915C - lsl r0, r0, #1 - ldrh r0, [r1, r0] - ldr ip, _02017CE8 @ =FUN_020182b8 - mov r1, #0x100 - bx ip - .align 2, 0 -_02017CE4: .4byte 0x0209915C -_02017CE8: .4byte FUN_020182b8 - arm_func_end FUN_02017ccc - - arm_func_start FUN_02017cec -FUN_02017cec: @ 0x02017CEC - push {r3, lr} - ldr r2, _02017D18 @ =0x022A4BE8 - ldrsh r0, [r2] - cmp r0, #0 - popgt {r3, pc} - ldr r0, _02017D1C @ =0x00003F05 - mov r3, #3 - mov r1, #0x100 - strh r3, [r2] - bl FUN_020182b8 - pop {r3, pc} - .align 2, 0 -_02017D18: .4byte 0x022A4BE8 -_02017D1C: .4byte 0x00003F05 - arm_func_end FUN_02017cec - - arm_func_start FUN_02017d20 -FUN_02017d20: @ 0x02017D20 - push {r3, lr} - bl FUN_020184cc - bl FUN_02018b50 - ldr r2, _02017D74 @ =0x000003E7 - ldr r0, _02017D78 @ =0x022A4BEC - mov r1, #0 - strh r2, [r0] - strh r2, [r0, #2] - strh r1, [r0, #4] - strh r2, [r0, #6] - strh r2, [r0, #8] - strh r1, [r0, #0xa] - sub r1, r2, #1 - strh r1, [r0, #0xc] - mov r1, #0x3f00 - strh r1, [r0, #0x10] - bl FUN_02018c0c - ldr r0, _02017D7C @ =0x020AF77C - mov r1, #1 - strb r1, [r0] - pop {r3, pc} - .align 2, 0 -_02017D74: .4byte 0x000003E7 -_02017D78: .4byte 0x022A4BEC -_02017D7C: .4byte 0x020AF77C - arm_func_end FUN_02017d20 - - arm_func_start FUN_02017d80 -FUN_02017d80: @ 0x02017D80 - push {r3, lr} - bl FUN_02019824 - ldr r2, _02017DAC @ =0x000003E7 - cmp r0, r2 - ldreq r1, _02017DB0 @ =0x022A4BEC - moveq r0, r2 - strheq r2, [r1] - ldrne r0, _02017DB0 @ =0x022A4BEC - strheq r2, [r1, #2] - ldrhne r0, [r0] - pop {r3, pc} - .align 2, 0 -_02017DAC: .4byte 0x000003E7 -_02017DB0: .4byte 0x022A4BEC - arm_func_end FUN_02017d80 -_02017DB4: - .byte 0x08, 0x40, 0x2D, 0xE9, 0x99, 0x06, 0x00, 0xEB, 0x1C, 0x20, 0x9F, 0xE5 - .byte 0x02, 0x00, 0x50, 0xE1, 0x18, 0x10, 0x9F, 0x05, 0x02, 0x00, 0xA0, 0x01, 0xB0, 0x20, 0xC1, 0x01 - .byte 0x0C, 0x00, 0x9F, 0x15, 0xB2, 0x20, 0xC1, 0x01, 0xB2, 0x00, 0xD0, 0x11, 0x08, 0x80, 0xBD, 0xE8 - .byte 0xE7, 0x03, 0x00, 0x00, 0xEC, 0x4B, 0x2A, 0x02, 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 - .byte 0x50, 0x98, 0x01, 0x02 - - arm_func_start FUN_02017df4 -FUN_02017df4: @ 0x02017DF4 - push {r3, r4, r5, lr} - ldr r1, _02017E68 @ =0x000003E7 - mov r5, r0 - cmp r5, r1 - ldrne r0, _02017E6C @ =0x022A4BEC - ldrhne r0, [r0, #2] - cmpne r5, r0 - popeq {r3, r4, r5, pc} - bl FUN_02018b50 - ldr r1, _02017E6C @ =0x022A4BEC - mov r2, #0x100 - strh r5, [r1] - strh r5, [r1, #2] - mov r0, #3 - strh r2, [r1, #4] - bl FUN_02018b6c - mov r4, r0 - mov r0, #3 - strh r5, [r4, #4] - bl GetDebugFlag1 - cmp r0, #0 - movne r1, #0 - moveq r1, #0x100 - strh r1, [r4, #6] - mov r1, #0 - mov r0, r4 - strh r1, [r4, #8] - bl FUN_02018ba8 - pop {r3, r4, r5, pc} - .align 2, 0 -_02017E68: .4byte 0x000003E7 -_02017E6C: .4byte 0x022A4BEC - arm_func_end FUN_02017df4 - - arm_func_start FUN_02017e70 -FUN_02017e70: @ 0x02017E70 - push {r3, r4, r5, r6, r7, lr} - ldr r3, _02017EE0 @ =0x000003E7 - mov r6, r0 - cmp r6, r3 - ldrne r0, _02017EE4 @ =0x022A4BEC - mov r5, r1 - ldrhne r0, [r0, #2] - mov r4, r2 - cmpne r6, r0 - popeq {r3, r4, r5, r6, r7, pc} - bl FUN_02018b50 - ldr r1, _02017EE4 @ =0x022A4BEC - mov r0, #3 - strh r6, [r1] - strh r6, [r1, #2] - strh r4, [r1, #4] - bl FUN_02018b6c - mov r7, r0 - mov r0, #3 - strh r6, [r7, #4] - bl GetDebugFlag1 - cmp r0, #0 - movne r4, #0 - strh r4, [r7, #6] - mov r0, r7 - strh r5, [r7, #8] - bl FUN_02018ba8 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02017EE0: .4byte 0x000003E7 -_02017EE4: .4byte 0x022A4BEC - arm_func_end FUN_02017e70 - - arm_func_start FUN_02017ee8 -FUN_02017ee8: @ 0x02017EE8 - push {r3, lr} - bl FUN_02018b50 - ldr r0, _02017F20 @ =0x000003E7 - ldr r1, _02017F24 @ =0x022A4BEC - mov r2, #0 - strh r0, [r1] - strh r0, [r1, #2] - mov r0, #5 - strh r2, [r1, #4] - bl FUN_02018b6c - mov r1, #0 - strh r1, [r0, #8] - bl FUN_02018ba8 - pop {r3, pc} - .align 2, 0 -_02017F20: .4byte 0x000003E7 -_02017F24: .4byte 0x022A4BEC - arm_func_end FUN_02017ee8 - - arm_func_start FUN_02017f28 -FUN_02017f28: @ 0x02017F28 - push {r4, lr} - mov r4, r0 - bl FUN_02018b50 - ldr r2, _02017F5C @ =0x000003E7 - ldr r0, _02017F60 @ =0x022A4BEC - mov r1, #0 - strh r2, [r0, #2] - strh r1, [r0, #4] - mov r0, #5 - bl FUN_02018b6c - strh r4, [r0, #8] - bl FUN_02018ba8 - pop {r4, pc} - .align 2, 0 -_02017F5C: .4byte 0x000003E7 -_02017F60: .4byte 0x022A4BEC - arm_func_end FUN_02017f28 - - arm_func_start FUN_02017f64 -FUN_02017f64: @ 0x02017F64 - push {r3, r4, r5, lr} - ldr r3, _02017FA8 @ =0x022A4BEC - ldr r2, _02017FAC @ =0x000003E7 - ldrh r3, [r3, #2] - mov r5, r0 - mov r4, r1 - cmp r3, r2 - popeq {r3, r4, r5, pc} - bl FUN_02018b50 - ldr r1, _02017FA8 @ =0x022A4BEC - mov r0, #6 - strh r4, [r1, #4] - bl FUN_02018b6c - strh r4, [r0, #6] - strh r5, [r0, #8] - bl FUN_02018ba8 - pop {r3, r4, r5, pc} - .align 2, 0 -_02017FA8: .4byte 0x022A4BEC -_02017FAC: .4byte 0x000003E7 - arm_func_end FUN_02017f64 - - arm_func_start thunk_FUN_02019d04 -thunk_FUN_02019d04: @ 0x02017FB0 - ldr ip, _02017FB8 @ =FUN_02019d04 - bx ip - .align 2, 0 -_02017FB8: .4byte FUN_02019d04 - arm_func_end thunk_FUN_02019d04 - - arm_func_start FUN_02017fbc -FUN_02017fbc: @ 0x02017FBC - push {r3, lr} - bl FUN_02019d58 - ldr r2, _02017FE8 @ =0x000003E7 - cmp r0, r2 - ldreq r1, _02017FEC @ =0x022A4BEC - moveq r0, r2 - strheq r2, [r1, #6] - ldrne r0, _02017FEC @ =0x022A4BEC - strheq r2, [r1, #8] - ldrhne r0, [r0, #6] - pop {r3, pc} - .align 2, 0 -_02017FE8: .4byte 0x000003E7 -_02017FEC: .4byte 0x022A4BEC - arm_func_end FUN_02017fbc - - arm_func_start FUN_02017ff0 -FUN_02017ff0: @ 0x02017FF0 - push {r3, lr} - bl FUN_02019d58 - ldr r2, _0201801C @ =0x000003E7 - cmp r0, r2 - ldreq r1, _02018020 @ =0x022A4BEC - moveq r0, r2 - strheq r2, [r1, #6] - ldrne r0, _02018020 @ =0x022A4BEC - strheq r2, [r1, #8] - ldrhne r0, [r0, #8] - pop {r3, pc} - .align 2, 0 -_0201801C: .4byte 0x000003E7 -_02018020: .4byte 0x022A4BEC - arm_func_end FUN_02017ff0 - - arm_func_start FUN_02018024 -FUN_02018024: @ 0x02018024 - push {r3, r4, r5, lr} - ldr r1, _02018098 @ =0x000003E7 - mov r5, r0 - cmp r5, r1 - ldrne r0, _0201809C @ =0x022A4BEC - ldrhne r0, [r0, #8] - cmpne r5, r0 - popeq {r3, r4, r5, pc} - bl FUN_02018b50 - ldr r1, _0201809C @ =0x022A4BEC - mov r2, #0x100 - strh r5, [r1, #6] - strh r5, [r1, #8] - mov r0, #7 - strh r2, [r1, #0xa] - bl FUN_02018b6c - mov r4, r0 - mov r0, #3 - strh r5, [r4, #4] - bl GetDebugFlag1 - cmp r0, #0 - movne r1, #0 - moveq r1, #0x100 - strh r1, [r4, #6] - mov r1, #0 - mov r0, r4 - strh r1, [r4, #8] - bl FUN_02018ba8 - pop {r3, r4, r5, pc} - .align 2, 0 -_02018098: .4byte 0x000003E7 -_0201809C: .4byte 0x022A4BEC - arm_func_end FUN_02018024 - - arm_func_start FUN_020180a0 -FUN_020180a0: @ 0x020180A0 - push {r3, r4, r5, r6, r7, lr} - ldr r3, _02018110 @ =0x000003E7 - mov r6, r0 - cmp r6, r3 - ldrne r0, _02018114 @ =0x022A4BEC - mov r5, r1 - ldrhne r0, [r0, #8] - mov r4, r2 - cmpne r6, r0 - popeq {r3, r4, r5, r6, r7, pc} - bl FUN_02018b50 - ldr r1, _02018114 @ =0x022A4BEC - mov r0, #7 - strh r6, [r1, #6] - strh r6, [r1, #8] - strh r4, [r1, #0xa] - bl FUN_02018b6c - mov r7, r0 - mov r0, #3 - strh r6, [r7, #4] - bl GetDebugFlag1 - cmp r0, #0 - movne r4, #0 - strh r4, [r7, #6] - mov r0, r7 - strh r5, [r7, #8] - bl FUN_02018ba8 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02018110: .4byte 0x000003E7 -_02018114: .4byte 0x022A4BEC - arm_func_end FUN_020180a0 - - arm_func_start FUN_02018118 -FUN_02018118: @ 0x02018118 - push {r3, lr} - bl FUN_02018b50 - ldr r0, _02018150 @ =0x000003E7 - ldr r1, _02018154 @ =0x022A4BEC - mov r2, #0 - strh r0, [r1, #6] - strh r0, [r1, #8] - mov r0, #9 - strh r2, [r1, #0xa] - bl FUN_02018b6c - mov r1, #0 - strh r1, [r0, #8] - bl FUN_02018ba8 - pop {r3, pc} - .align 2, 0 -_02018150: .4byte 0x000003E7 -_02018154: .4byte 0x022A4BEC - arm_func_end FUN_02018118 - - arm_func_start FUN_02018158 -FUN_02018158: @ 0x02018158 - push {r4, lr} - mov r4, r0 - bl FUN_02018b50 - ldr r2, _0201818C @ =0x000003E7 - ldr r0, _02018190 @ =0x022A4BEC - mov r1, #0 - strh r2, [r0, #8] - strh r1, [r0, #0xa] - mov r0, #9 - bl FUN_02018b6c - strh r4, [r0, #8] - bl FUN_02018ba8 - pop {r4, pc} - .align 2, 0 -_0201818C: .4byte 0x000003E7 -_02018190: .4byte 0x022A4BEC - arm_func_end FUN_02018158 - - arm_func_start FUN_02018194 -FUN_02018194: @ 0x02018194 - push {r3, r4, r5, lr} - ldr r3, _020181D8 @ =0x022A4BEC - ldr r2, _020181DC @ =0x000003E7 - ldrh r3, [r3, #8] - mov r5, r0 - mov r4, r1 - cmp r3, r2 - popeq {r3, r4, r5, pc} - bl FUN_02018b50 - ldr r1, _020181D8 @ =0x022A4BEC - mov r0, #0xa - strh r4, [r1, #0xa] - bl FUN_02018b6c - strh r4, [r0, #6] - strh r5, [r0, #8] - bl FUN_02018ba8 - pop {r3, r4, r5, pc} - .align 2, 0 -_020181D8: .4byte 0x022A4BEC -_020181DC: .4byte 0x000003E7 - arm_func_end FUN_02018194 - - arm_func_start FUN_020181e0 -FUN_020181e0: @ 0x020181E0 - push {r3, lr} - bl FUN_0201a19c - ldr r1, _02018204 @ =0x000003E6 - cmp r0, r1 - ldreq r0, _02018208 @ =0x022A4BEC - strheq r1, [r0, #0xc] - ldrne r0, _02018208 @ =0x022A4BEC - ldrh r0, [r0, #0xc] - pop {r3, pc} - .align 2, 0 -_02018204: .4byte 0x000003E6 -_02018208: .4byte 0x022A4BEC - arm_func_end FUN_020181e0 - - arm_func_start FUN_0201820c -FUN_0201820c: @ 0x0201820C - push {r3, r4, r5, lr} - ldr r1, _02018270 @ =0x000003E6 - mov r5, r0 - cmp r5, r1 - popeq {r3, r4, r5, pc} - cmp r5, #0xd - pophi {r3, r4, r5, pc} - bl FUN_02018b50 - ldr r1, _02018274 @ =0x022A4BEC - mov r0, #0xb - strh r5, [r1, #0xc] - bl FUN_02018b6c - mov r4, r0 - mov r0, #3 - strh r5, [r4, #4] - bl GetDebugFlag1 - cmp r0, #0 - movne r1, #0 - moveq r1, #0x100 - strh r1, [r4, #6] - mov r1, #0 - mov r0, r4 - strh r1, [r4, #8] - bl FUN_02018ba8 - pop {r3, r4, r5, pc} - .align 2, 0 -_02018270: .4byte 0x000003E6 -_02018274: .4byte 0x022A4BEC - arm_func_end FUN_0201820c - - arm_func_start FUN_02018278 -FUN_02018278: @ 0x02018278 - push {r3, lr} - bl FUN_02018b50 - ldr r2, _020182A4 @ =0x000003E6 - ldr r1, _020182A8 @ =0x022A4BEC - mov r0, #0xc - strh r2, [r1, #0xc] - bl FUN_02018b6c - mov r1, #0 - strh r1, [r0, #8] - bl FUN_02018ba8 - pop {r3, pc} - .align 2, 0 -_020182A4: .4byte 0x000003E6 -_020182A8: .4byte 0x022A4BEC - arm_func_end FUN_02018278 - - arm_func_start thunk_FUN_0201a480 -thunk_FUN_0201a480: @ 0x020182AC - ldr ip, _020182B4 @ =FUN_0201a480 - bx ip - .align 2, 0 -_020182B4: .4byte FUN_0201a480 - arm_func_end thunk_FUN_0201a480 - - arm_func_start FUN_020182b8 -FUN_020182b8: @ 0x020182B8 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - ldr r1, _02018318 @ =0x0209916C - mov r2, r6 - mov r3, r5 - mov r0, #8 - bl DebugPrint - cmp r6, #0x3f00 - popeq {r4, r5, r6, pc} - mov r0, #0xd - cmp r5, #0x100 - movhi r5, #0x100 - bl FUN_02018a78 - mov r4, r0 - mov r0, #4 - strh r6, [r4, #4] - bl GetDebugFlag1 - cmp r0, #0 - movne r5, #0 - mov r0, r4 - strh r5, [r4, #8] - bl FUN_02018ae4 - pop {r4, r5, r6, pc} - .align 2, 0 -_02018318: .4byte 0x0209916C - arm_func_end FUN_020182b8 - - arm_func_start FUN_0201831c -FUN_0201831c: @ 0x0201831C - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #8 - mov r8, r0 - mov r6, r2 - mov r7, r1 - mov r5, r3 - str r6, [sp] - ldr r1, _0201839C @ =0x0209918C - mov r2, r8 - mov r3, r7 - mov r0, #8 - str r5, [sp, #4] - bl DebugPrint - cmp r8, #0x3f00 - beq _02018394 - mov r0, #0xe - cmp r6, #0x100 - movhi r6, #0x100 - bl FUN_02018a78 - mov r4, r0 - strh r8, [r4, #4] - mov r0, #4 - strh r7, [r4, #6] - bl GetDebugFlag1 - cmp r0, #0 - movne r6, #0 - strh r6, [r4, #8] - mov r0, r4 - strh r5, [r4, #0xa] - bl FUN_02018ae4 -_02018394: - add sp, sp, #8 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0201839C: .4byte 0x0209918C - arm_func_end FUN_0201831c - - arm_func_start FUN_020183a0 -FUN_020183a0: @ 0x020183A0 - push {r4, r5, r6, lr} - mov r6, r0 - mov r4, r2 - mov r5, r1 - ldr r1, _020183E0 @ =0x020991C8 - mov r2, r6 - mov r3, r4 - mov r0, #8 - bl DebugPrint - mov r0, #0x10 - bl FUN_02018a78 - strh r6, [r0, #4] - strh r5, [r0, #6] - strh r4, [r0, #8] - bl FUN_02018ae4 - pop {r4, r5, r6, pc} - .align 2, 0 -_020183E0: .4byte 0x020991C8 - arm_func_end FUN_020183a0 - - arm_func_start FUN_020183e4 -FUN_020183e4: @ 0x020183E4 - push {r4, r5, r6, lr} - mov r6, r0 - mov r4, r2 - mov r5, r1 - ldr r1, _02018424 @ =0x020991F0 - mov r2, r6 - mov r3, r4 - mov r0, #8 - bl DebugPrint - mov r0, #0x11 - bl FUN_02018a78 - strh r6, [r0, #4] - strh r5, [r0, #6] - strh r4, [r0, #0xa] - bl FUN_02018ae4 - pop {r4, r5, r6, pc} - .align 2, 0 -_02018424: .4byte 0x020991F0 - arm_func_end FUN_020183e4 - - arm_func_start FUN_02018428 -FUN_02018428: @ 0x02018428 - push {r4, lr} - mov r4, r0 - ldr r1, _0201845C @ =0x02099210 - mov r2, r4 - mov r0, #8 - bl DebugPrint - mov r0, #0xf - bl FUN_02018a78 - strh r4, [r0, #4] - mov r1, #0 - strh r1, [r0, #6] - bl FUN_02018ae4 - pop {r4, pc} - .align 2, 0 -_0201845C: .4byte 0x02099210 - arm_func_end FUN_02018428 - - arm_func_start FUN_02018460 -FUN_02018460: @ 0x02018460 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - ldr r1, _02018498 @ =0x02099224 - mov r2, r5 - mov r3, r4 - mov r0, #8 - bl DebugPrint - mov r0, #0xf - bl FUN_02018a78 - strh r5, [r0, #4] - strh r4, [r0, #6] - bl FUN_02018ae4 - pop {r3, r4, r5, pc} - .align 2, 0 -_02018498: .4byte 0x02099224 - arm_func_end FUN_02018460 - - arm_func_start thunk_FUN_0201906c -thunk_FUN_0201906c: @ 0x0201849C - ldr ip, _020184A4 @ =FUN_0201906c - bx ip - .align 2, 0 -_020184A4: .4byte FUN_0201906c - arm_func_end thunk_FUN_0201906c - - arm_func_start thunk_FUN_02019260 -thunk_FUN_02019260: @ 0x020184A8 - ldr ip, _020184B0 @ =FUN_02019260 - bx ip - .align 2, 0 -_020184B0: .4byte FUN_02019260 - arm_func_end thunk_FUN_02019260 -_020184B4: - .byte 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x9C, 0x92, 0x01, 0x02 - .byte 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0xD0, 0x92, 0x01, 0x02 - - arm_func_start FUN_020184cc -FUN_020184cc: @ 0x020184CC - push {r3, lr} - bl FUN_02018c28 - ldr r0, _020185CC @ =0x020AF7C0 - bl FUN_02002c40 - ldr r0, _020185D0 @ =0x022A4C00 - mov r1, #0x11 - bl FUN_02002f34 - ldr r0, _020185D4 @ =0x022A4C28 - mov r1, #0x11 - bl FUN_02002f34 - mov r1, #0x10 - ldr r0, _020185D8 @ =0x020AF7E4 - mov r2, r1 - bl FUN_02002a9c - mov r2, #0 - ldr r1, _020185DC @ =0x022A4C50 - mov r0, r2 -_02018510: - add r2, r2, #1 + blt _022BD1EC cmp r2, #0x10 - str r0, [r1], #0x20 - blt _02018510 - ldr r0, _020185E0 @ =0x020AF780 - ldr r1, _020185E4 @ =0x00000701 - ldr r0, [r0, #0x34] - bl MemAlloc - ldr r2, _020185E0 @ =0x020AF780 - ldr r1, _020185E4 @ =0x00000701 - str r0, [r2, #0x30] - ldr r0, [r2, #0xc] - bl MemAlloc - ldr r2, _020185E0 @ =0x020AF780 - ldr r1, _020185E4 @ =0x00000701 - str r0, [r2, #8] - ldr r0, [r2, #0x20] - bl MemAlloc - ldr r2, _020185E0 @ =0x020AF780 - ldr r1, _020185E8 @ =0x020AF7AC - str r0, [r2, #0x1c] - ldr r0, _020185EC @ =0x020AF96C - mov r2, #0 - bl FUN_02002778 - ldr r0, _020185F0 @ =0x020AFA48 - ldr r1, _020185F4 @ =0x020AF784 - mov r2, #0 - bl FUN_02002778 - ldr r0, _020185F8 @ =0x020AF890 - ldr r1, _020185FC @ =0x020AF798 - mov r2, #0 - bl FUN_02002778 - ldr r0, _020185CC @ =0x020AF7C0 - bl FUN_02002e98 - ldr r0, _020185EC @ =0x020AF96C - bl FUN_020027e8 - ldr r0, _020185CC @ =0x020AF7C0 - bl FUN_02002cb4 - ldr r0, _020185CC @ =0x020AF7C0 - mov r1, #8 - bl FUN_02002cac - ldr r0, _020185CC @ =0x020AF7C0 - bl FUN_02002e98 - mov r1, #1 - ldr r0, _020185E0 @ =0x020AF780 - strb r1, [r0, #1] - pop {r3, pc} - .align 2, 0 -_020185CC: .4byte 0x020AF7C0 -_020185D0: .4byte 0x022A4C00 -_020185D4: .4byte 0x022A4C28 -_020185D8: .4byte 0x020AF7E4 -_020185DC: .4byte 0x022A4C50 -_020185E0: .4byte 0x020AF780 -_020185E4: .4byte 0x00000701 -_020185E8: .4byte 0x020AF7AC -_020185EC: .4byte 0x020AF96C -_020185F0: .4byte 0x020AFA48 -_020185F4: .4byte 0x020AF784 -_020185F8: .4byte 0x020AF890 -_020185FC: .4byte 0x020AF798 - arm_func_end FUN_020184cc - - arm_func_start FUN_02018600 -FUN_02018600: @ 0x02018600 - push {r3, lr} - bl ManipBgmPlayback - ldr r0, _02018624 @ =0x020AFA48 - bl FUN_020027e8 - ldr r0, _02018628 @ =0x020AF890 - bl FUN_020027e8 -_02018618: - bl FUN_02003ab0 - bl ManipBgmPlayback - b _02018618 - .align 2, 0 -_02018624: .4byte 0x020AFA48 -_02018628: .4byte 0x020AF890 - arm_func_end FUN_02018600 -_0201862C: - .byte 0xF8, 0x4F, 0x2D, 0xE9 - .byte 0x01, 0xB0, 0xA0, 0xE3, 0xB4, 0xA1, 0x9F, 0xE5, 0xB4, 0x91, 0x9F, 0xE5, 0xB4, 0x41, 0x9F, 0xE5 - .byte 0x02, 0x60, 0xA0, 0xE3, 0x00, 0x50, 0xA0, 0xE3, 0x00, 0x80, 0x8D, 0xE2, 0x0B, 0x70, 0xA0, 0xE1 - .byte 0x09, 0x00, 0xA0, 0xE1, 0x08, 0x10, 0xA0, 0xE1, 0x07, 0x20, 0xA0, 0xE1, 0x4D, 0xAA, 0xFF, 0xEB - .byte 0x00, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xD4, 0x05 - .byte 0xF6, 0xFF, 0xFF, 0x0A, 0x06, 0x00, 0xA0, 0xE1, 0xA4, 0xCE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x52, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x9D, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x11, 0x00, 0x50, 0xE3 - .byte 0x00, 0xF1, 0x8F, 0x90, 0x4D, 0x00, 0x00, 0xEA, 0x4C, 0x00, 0x00, 0xEA, 0x4B, 0x00, 0x00, 0xEA - .byte 0x0E, 0x00, 0x00, 0xEA, 0x0D, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x00, 0xEA - .byte 0x0A, 0x00, 0x00, 0xEA, 0x09, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA - .byte 0x06, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA - .byte 0x06, 0x00, 0x00, 0xEA, 0x2D, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA - .byte 0x0A, 0x00, 0xA0, 0xE1, 0x0B, 0x20, 0xA0, 0xE1, 0x23, 0xAA, 0xFF, 0xEB, 0xD7, 0xFF, 0xFF, 0xEA - .byte 0xB4, 0x00, 0xD1, 0xE1, 0xE9, 0x08, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x1A - .byte 0x00, 0x10, 0x9D, 0xE5, 0x0A, 0x00, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE3, 0x1A, 0xAA, 0xFF, 0xEB - .byte 0xCE, 0xFF, 0xFF, 0xEA, 0x00, 0x30, 0x9D, 0xE5, 0x00, 0x00, 0x93, 0xE5, 0x0D, 0x00, 0x40, 0xE2 - .byte 0x04, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x28, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA - .byte 0x06, 0x00, 0x00, 0xEA, 0x25, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00, 0xEA, 0x0E, 0x00, 0x00, 0xEA - .byte 0xB4, 0x00, 0xD3, 0xE1, 0xB8, 0x10, 0xD3, 0xE1, 0x6B, 0x07, 0x00, 0xEB, 0x1F, 0x00, 0x00, 0xEA - .byte 0xB4, 0x00, 0xD3, 0xE1, 0xB6, 0x10, 0xD3, 0xE1, 0xB8, 0x20, 0xD3, 0xE1, 0xFA, 0x30, 0xD3, 0xE1 - .byte 0xC1, 0x07, 0x00, 0xEB, 0x19, 0x00, 0x00, 0xEA, 0xB4, 0x00, 0xD3, 0xE1, 0xB6, 0x10, 0xD3, 0xE1 - .byte 0xB8, 0x20, 0xD3, 0xE1, 0x2B, 0x08, 0x00, 0xEB, 0x14, 0x00, 0x00, 0xEA, 0xB4, 0x00, 0xD3, 0xE1 - .byte 0xB6, 0x10, 0xD3, 0xE1, 0xFA, 0x20, 0xD3, 0xE1, 0x5C, 0x08, 0x00, 0xEB, 0x0F, 0x00, 0x00, 0xEA - .byte 0xB4, 0x00, 0xD1, 0xE1, 0x3F, 0x0C, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x0A, 0xBF, 0x08, 0x00, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x9D, 0xE5, 0xB4, 0x00, 0xD1, 0xE1 - .byte 0xB6, 0x10, 0xD1, 0xE1, 0x8A, 0x08, 0x00, 0xEB, 0x04, 0x00, 0x00, 0xEA, 0x00, 0x10, 0x9D, 0xE5 - .byte 0x0A, 0x00, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE3, 0xEB, 0xA9, 0xFF, 0xEB, 0x9F, 0xFF, 0xFF, 0xEA - .byte 0x24, 0x00, 0x9F, 0xE5, 0x36, 0xA9, 0xFF, 0xEB, 0x00, 0x10, 0x9D, 0xE5, 0x18, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x50, 0x81, 0xE5, 0x14, 0x10, 0x9F, 0xE5, 0xB7, 0xA9, 0xFF, 0xEB, 0x97, 0xFF, 0xFF, 0xEA - .byte 0x28, 0x4C, 0x2A, 0x02, 0x00, 0x4C, 0x2A, 0x02, 0x80, 0xF7, 0x0A, 0x02, 0xC0, 0xF7, 0x0A, 0x02 - .byte 0xE4, 0xF7, 0x0A, 0x02, 0x18, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x50, 0x02, 0x9F, 0xE5 - .byte 0x00, 0x10, 0x8D, 0xE2, 0x01, 0x20, 0xA0, 0xE3, 0xDE, 0xA9, 0xFF, 0xEB, 0x00, 0x30, 0x9D, 0xE5 - .byte 0x00, 0x00, 0x93, 0xE5, 0x11, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x83, 0x00, 0x00, 0xEA - .byte 0x82, 0x00, 0x00, 0xEA, 0x81, 0x00, 0x00, 0xEA, 0x0E, 0x00, 0x00, 0xEA, 0x0F, 0x00, 0x00, 0xEA - .byte 0x1B, 0x00, 0x00, 0xEA, 0x2D, 0x00, 0x00, 0xEA, 0x2F, 0x00, 0x00, 0xEA, 0x32, 0x00, 0x00, 0xEA - .byte 0x3E, 0x00, 0x00, 0xEA, 0x50, 0x00, 0x00, 0xEA, 0x52, 0x00, 0x00, 0xEA, 0x55, 0x00, 0x00, 0xEA - .byte 0x5A, 0x00, 0x00, 0xEA, 0x5C, 0x00, 0x00, 0xEA, 0x60, 0x00, 0x00, 0xEA, 0x66, 0x00, 0x00, 0xEA - .byte 0x69, 0x00, 0x00, 0xEA, 0x6D, 0x00, 0x00, 0xEA, 0x12, 0x02, 0x00, 0xEB, 0x6F, 0x00, 0x00, 0xEA - .byte 0xE0, 0x41, 0x9F, 0xE5, 0x00, 0x00, 0x00, 0xEA, 0x88, 0xAC, 0xFF, 0xEB, 0x42, 0x06, 0x00, 0xEB - .byte 0x04, 0x00, 0x50, 0xE1, 0xFB, 0xFF, 0xFF, 0x1A, 0x00, 0x20, 0x9D, 0xE5, 0xB4, 0x00, 0xD2, 0xE1 - .byte 0xB8, 0x10, 0xD2, 0xE1, 0xB6, 0x20, 0xD2, 0xE1, 0x02, 0x04, 0x00, 0xEB, 0x7F, 0xAC, 0xFF, 0xEB - .byte 0x62, 0x00, 0x00, 0xEA, 0xAC, 0x41, 0x9F, 0xE5, 0x00, 0x00, 0x00, 0xEA, 0x7B, 0xAC, 0xFF, 0xEB - .byte 0x35, 0x06, 0x00, 0xEB, 0x04, 0x00, 0x50, 0xE1, 0xFB, 0xFF, 0xFF, 0x1A, 0x98, 0x41, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x00, 0xEA, 0x75, 0xAC, 0xFF, 0xEB, 0xD1, 0x03, 0x00, 0xEB, 0x04, 0x00, 0x50, 0xE1 - .byte 0xFB, 0xFF, 0xFF, 0x1A, 0x00, 0x20, 0x9D, 0xE5, 0xB4, 0x00, 0xD2, 0xE1, 0xB8, 0x10, 0xD2, 0xE1 - .byte 0xB6, 0x20, 0xD2, 0xE1, 0xEF, 0x03, 0x00, 0xEB, 0x6C, 0xAC, 0xFF, 0xEB, 0x4F, 0x00, 0x00, 0xEA - .byte 0xB8, 0x00, 0xD3, 0xE1, 0x87, 0x04, 0x00, 0xEB, 0x4C, 0x00, 0x00, 0xEA, 0xB8, 0x00, 0xD3, 0xE1 - .byte 0xB6, 0x10, 0xD3, 0xE1, 0xCD, 0x04, 0x00, 0xEB, 0x48, 0x00, 0x00, 0xEA, 0x44, 0x41, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x00, 0xEA, 0x61, 0xAC, 0xFF, 0xEB, 0x1B, 0x06, 0x00, 0xEB, 0x04, 0x00, 0x50, 0xE1 - .byte 0xFB, 0xFF, 0xFF, 0x1A, 0x00, 0x20, 0x9D, 0xE5, 0xB4, 0x00, 0xD2, 0xE1, 0xB8, 0x10, 0xD2, 0xE1 - .byte 0xB6, 0x20, 0xD2, 0xE1, 0x0E, 0x05, 0x00, 0xEB, 0x58, 0xAC, 0xFF, 0xEB, 0x3B, 0x00, 0x00, 0xEA - .byte 0x10, 0x41, 0x9F, 0xE5, 0x00, 0x00, 0x00, 0xEA, 0x54, 0xAC, 0xFF, 0xEB, 0x0E, 0x06, 0x00, 0xEB - .byte 0x04, 0x00, 0x50, 0xE1, 0xFB, 0xFF, 0xFF, 0x1A, 0xFC, 0x40, 0x9F, 0xE5, 0x00, 0x00, 0x00, 0xEA - .byte 0x4E, 0xAC, 0xFF, 0xEB, 0xF7, 0x04, 0x00, 0xEB, 0x04, 0x00, 0x50, 0xE1, 0xFB, 0xFF, 0xFF, 0x1A - .byte 0x00, 0x20, 0x9D, 0xE5, 0xB4, 0x00, 0xD2, 0xE1, 0xB8, 0x10, 0xD2, 0xE1, 0xB6, 0x20, 0xD2, 0xE1 - .byte 0xFB, 0x04, 0x00, 0xEB, 0x45, 0xAC, 0xFF, 0xEB, 0x28, 0x00, 0x00, 0xEA, 0xB8, 0x00, 0xD3, 0xE1 - .byte 0x90, 0x05, 0x00, 0xEB, 0x25, 0x00, 0x00, 0xEA, 0xB8, 0x00, 0xD3, 0xE1, 0xB6, 0x10, 0xD3, 0xE1 - .byte 0xCC, 0x05, 0x00, 0xEB, 0x21, 0x00, 0x00, 0xEA, 0xB4, 0x00, 0xD3, 0xE1, 0xB8, 0x10, 0xD3, 0xE1 - .byte 0xB6, 0x20, 0xD3, 0xE1, 0xFF, 0x05, 0x00, 0xEB, 0x38, 0xAC, 0xFF, 0xEB, 0x1B, 0x00, 0x00, 0xEA - .byte 0xB8, 0x00, 0xD3, 0xE1, 0x8C, 0x06, 0x00, 0xEB, 0x18, 0x00, 0x00, 0xEA, 0xB4, 0x00, 0xD3, 0xE1 - .byte 0xB8, 0x10, 0xD3, 0xE1, 0xC4, 0x06, 0x00, 0xEB, 0x30, 0xAC, 0xFF, 0xEB, 0x13, 0x00, 0x00, 0xEA - .byte 0xB4, 0x00, 0xD3, 0xE1, 0xB6, 0x10, 0xD3, 0xE1, 0xB8, 0x20, 0xD3, 0xE1, 0xFA, 0x30, 0xD3, 0xE1 - .byte 0x19, 0x07, 0x00, 0xEB, 0x29, 0xAC, 0xFF, 0xEB, 0x0C, 0x00, 0x00, 0xEA, 0xB4, 0x00, 0xD3, 0xE1 - .byte 0xB6, 0x10, 0xD3, 0xE1, 0xF2, 0x07, 0x00, 0xEB, 0x08, 0x00, 0x00, 0xEA, 0xB4, 0x00, 0xD3, 0xE1 - .byte 0xB6, 0x10, 0xD3, 0xE1, 0xB8, 0x20, 0xD3, 0xE1, 0x7E, 0x07, 0x00, 0xEB, 0x03, 0x00, 0x00, 0xEA - .byte 0xB4, 0x00, 0xD3, 0xE1, 0xB6, 0x10, 0xD3, 0xE1, 0xFA, 0x20, 0xD3, 0xE1, 0xAF, 0x07, 0x00, 0xEB - .byte 0x28, 0x00, 0x9F, 0xE5, 0x9A, 0xA8, 0xFF, 0xEB, 0x00, 0x20, 0x9D, 0xE5, 0x00, 0x30, 0xA0, 0xE3 - .byte 0x18, 0x00, 0x9F, 0xE5, 0x18, 0x10, 0x9F, 0xE5, 0x00, 0x30, 0x82, 0xE5, 0x1A, 0xA9, 0xFF, 0xEB - .byte 0x69, 0xFF, 0xFF, 0xEA, 0x28, 0x4C, 0x2A, 0x02, 0xE6, 0x03, 0x00, 0x00, 0xE7, 0x03, 0x00, 0x00 - .byte 0xC0, 0xF7, 0x0A, 0x02, 0xE4, 0xF7, 0x0A, 0x02 - - arm_func_start FUN_02018a78 -FUN_02018a78: @ 0x02018A78 - push {r3, r4, r5, lr} - mov r5, r0 - ldr r0, _02018AD8 @ =0x020AF7C0 - ldr r1, _02018ADC @ =0x020AF7E4 - bl FUN_02002d14 - mov r1, #0 - ldr r4, _02018AE0 @ =0x022A4C50 - b _02018AC0 -_02018A98: - ldr r0, [r4] - cmp r0, #0 - bne _02018AB8 - ldr r0, _02018AD8 @ =0x020AF7C0 - str r5, [r4] - bl FUN_02002e98 - mov r0, r4 - pop {r3, r4, r5, pc} -_02018AB8: - add r1, r1, #1 - add r4, r4, #0x20 -_02018AC0: - cmp r1, #0x10 - blt _02018A98 - ldr r0, _02018AD8 @ =0x020AF7C0 - bl FUN_02002e98 - mov r0, #0 - pop {r3, r4, r5, pc} - .align 2, 0 -_02018AD8: .4byte 0x020AF7C0 -_02018ADC: .4byte 0x020AF7E4 -_02018AE0: .4byte 0x022A4C50 - arm_func_end FUN_02018a78 - - arm_func_start FUN_02018ae4 -FUN_02018ae4: @ 0x02018AE4 - push {r4, lr} - ldr r1, _02018B3C @ =0x022A4C00 - mov r4, r0 - ldr r2, [r1, #0x24] - ldr r0, [r1, #0x14] - cmp r2, r0 - bne _02018B0C - ldr r0, _02018B40 @ =0x022A4C00 - ldr r1, _02018B44 @ =0x02099240 - bl FUN_02002fb4 -_02018B0C: - ldr r0, _02018B48 @ =0x020AF7C0 - bl FUN_02002cb4 - ldr r1, _02018B4C @ =0x020AF780 - mov r2, #1 - ldr r0, _02018B48 @ =0x020AF7C0 - strb r2, [r1] - bl FUN_02002e98 - ldr r0, _02018B40 @ =0x022A4C00 - mov r1, r4 - mov r2, #1 - bl FUN_02002f7c - pop {r4, pc} - .align 2, 0 -_02018B3C: .4byte 0x022A4C00 -_02018B40: .4byte 0x022A4C00 -_02018B44: .4byte 0x02099240 -_02018B48: .4byte 0x020AF7C0 -_02018B4C: .4byte 0x020AF780 - arm_func_end FUN_02018ae4 - - arm_func_start FUN_02018b50 -FUN_02018b50: @ 0x02018B50 - ldr ip, _02018B60 @ =FUN_02002d14 - ldr r0, _02018B64 @ =0x020AF7C0 - ldr r1, _02018B68 @ =0x020AF7E4 - bx ip - .align 2, 0 -_02018B60: .4byte FUN_02002d14 -_02018B64: .4byte 0x020AF7C0 -_02018B68: .4byte 0x020AF7E4 - arm_func_end FUN_02018b50 - - arm_func_start FUN_02018b6c -FUN_02018b6c: @ 0x02018B6C - mov r3, #0 - ldr r2, _02018BA4 @ =0x022A4C50 - b _02018B94 -_02018B78: - ldr r1, [r2] - cmp r1, #0 - streq r0, [r2] - moveq r0, r2 - bxeq lr - add r3, r3, #1 - add r2, r2, #0x20 -_02018B94: - cmp r3, #0x10 - blt _02018B78 - mov r0, #0 - bx lr - .align 2, 0 -_02018BA4: .4byte 0x022A4C50 - arm_func_end FUN_02018b6c - - arm_func_start FUN_02018ba8 -FUN_02018ba8: @ 0x02018BA8 - push {r4, lr} - ldr r1, _02018BF8 @ =0x022A4C00 - mov r4, r0 - ldr r2, [r1, #0x24] - ldr r0, [r1, #0x14] - cmp r2, r0 - bne _02018BD0 - ldr r0, _02018BFC @ =0x022A4C00 - ldr r1, _02018C00 @ =0x02099240 - bl FUN_02002fb4 -_02018BD0: - ldr r1, _02018C04 @ =0x020AF780 - mov r2, #1 - ldr r0, _02018C08 @ =0x020AF7C0 - strb r2, [r1] - bl FUN_02002e98 - ldr r0, _02018BFC @ =0x022A4C00 - mov r1, r4 - mov r2, #1 - bl FUN_02002f7c - pop {r4, pc} - .align 2, 0 -_02018BF8: .4byte 0x022A4C00 -_02018BFC: .4byte 0x022A4C00 -_02018C00: .4byte 0x02099240 -_02018C04: .4byte 0x020AF780 -_02018C08: .4byte 0x020AF7C0 - arm_func_end FUN_02018ba8 - - arm_func_start FUN_02018c0c -FUN_02018c0c: @ 0x02018C0C - ldr ip, _02018C1C @ =FUN_02002ecc - ldr r0, _02018C20 @ =0x020AF7C0 - ldr r1, _02018C24 @ =0x020AF7E4 - bx ip - .align 2, 0 -_02018C1C: .4byte FUN_02002ecc -_02018C20: .4byte 0x020AF7C0 -_02018C24: .4byte 0x020AF7E4 - arm_func_end FUN_02018c0c - - arm_func_start FUN_02018c28 -FUN_02018c28: @ 0x02018C28 - push {r3, r4, r5, lr} - sub sp, sp, #0x50 - ldr r0, _02018E44 @ =0x020AFB28 - bl FUN_02002c40 - ldr r0, _02018E44 @ =0x020AFB28 - mov r1, #4 - bl FUN_02002cac - bl FUN_0207cc10 - ldr r0, _02018E48 @ =0x0000FFFF - mov r1, #0 - bl FUN_0207c9c4 - add r0, sp, #0x10 - bl FUN_0206c1c0 - mov r0, #0x10000 - mov r1, #2 - bl MemAlloc - ldr r2, _02018E4C @ =0x022A4E50 - mov r1, #0x3c000 - str r0, [r2] - mov r0, #0 - mov r2, #0x14 - mov r3, #2 - bl MemArenaAlloc - ldr r1, _02018E4C @ =0x022A4E50 - mov r2, #0x10000 - str r0, [r1, #4] - ldr r1, [r1] - add r0, sp, #0x10 - bl FUN_0206c33c - add r0, sp, #0x10 - mov r1, #0 - mov r2, #4 - bl FUN_0206c36c - add r0, sp, #0x10 - mov r1, #0 - mov r2, #0xf - bl FUN_0206c39c - add r0, sp, #0x10 - bl FUN_0206c3e0 - ldr r1, _02018E50 @ =0x0209939C - add r0, sp, #8 - bl FUN_02019314 - mov r1, #0 - ldr r0, [sp, #8] - mov r2, r1 - bl FUN_0206d108 - mov r1, r0 - ldr r2, _02018E54 @ =0x022A4E58 - ldr r0, _02018E58 @ =0x020993B4 - str r1, [r2, #0x80] - bl DebugPrint0 - ldr r1, _02018E5C @ =0x020993D0 - add r0, sp, #8 - bl FUN_02019314 - ldr r0, [sp, #8] - bl FUN_0206ea18 - mov r1, r0 - ldr r0, _02018E54 @ =0x022A4E58 - str r1, [r0, #0x7c] - ldr r0, _02018E60 @ =0x020993E8 - bl DebugPrint0 - ldr r1, _02018E64 @ =0x02099404 - add r0, sp, #0 - bl FUN_02019314 - mov r1, #0 - ldr r0, [sp] - mov r2, r1 - bl FUN_0206d108 - mov r1, r0 - ldr r2, _02018E54 @ =0x022A4E58 - ldr r0, _02018E68 @ =0x02099418 - str r1, [r2, #0x8c] - bl DebugPrint0 - ldr r1, _02018E6C @ =0x02099434 - add r0, sp, #0 - bl FUN_02019314 - ldr r0, [sp] - bl FUN_0206ea18 - mov r1, r0 - ldr r2, _02018E54 @ =0x022A4E58 - ldr r0, _02018E70 @ =0x02099448 - str r1, [r2, #0x88] - bl DebugPrint0 - ldr r0, _02018E54 @ =0x022A4E58 - mov r2, #0 - str r2, [r0, #0xc4] - str r2, [r0, #0x18] - str r2, [r0, #0x1c] - str r2, [r0, #0x44] - ldr r1, _02018E74 @ =0x000003E7 - str r2, [r0, #0x64] - strh r1, [r0, #0x20] - strh r1, [r0, #0x48] - sub r1, r1, #1 - strh r1, [r0, #0x68] - str r2, [r0, #0x94] - mov r1, #0x3f00 - strh r1, [r0, #0x98] - strh r1, [r0, #0x9a] - ldr r0, _02018E78 @ =0x022A4E7C - bl ZInit8 - ldr r0, _02018E7C @ =0x022A4E84 - bl ZInit8 - ldr r0, _02018E80 @ =0x022A4E8C - bl ZInit8 - ldr r0, _02018E84 @ =0x022A4EA4 - bl ZInit8 - ldr r0, _02018E88 @ =0x022A4EAC - bl ZInit8 - ldr r0, _02018E8C @ =0x022A4EB4 - bl ZInit8 - ldr r0, _02018E90 @ =0x022A4EC4 - bl ZInit8 - ldr r0, _02018E94 @ =0x022A4ECC - bl ZInit8 - ldr r0, _02018E98 @ =0x022A4EF4 - bl ZInit8 - ldr r4, _02018E9C @ =0x022A4EFC - mov r5, #0 -_02018E04: - add r0, r4, r5, lsl #3 - bl ZInit8 - add r5, r5, #1 - cmp r5, #4 - blt _02018E04 - mov r1, #0 - ldr r0, _02018EA0 @ =0x020AFB4C - mov r2, r1 - mov r3, r1 - bl FUN_0206ced0 - ldr r1, _02018E54 @ =0x022A4E58 - str r0, [r1, #4] - ldr r0, _02018E44 @ =0x020AFB28 - bl FUN_02002e98 - add sp, sp, #0x50 - pop {r3, r4, r5, pc} - .align 2, 0 -_02018E44: .4byte 0x020AFB28 -_02018E48: .4byte 0x0000FFFF -_02018E4C: .4byte 0x022A4E50 -_02018E50: .4byte 0x0209939C -_02018E54: .4byte 0x022A4E58 -_02018E58: .4byte 0x020993B4 -_02018E5C: .4byte 0x020993D0 -_02018E60: .4byte 0x020993E8 -_02018E64: .4byte 0x02099404 -_02018E68: .4byte 0x02099418 -_02018E6C: .4byte 0x02099434 -_02018E70: .4byte 0x02099448 -_02018E74: .4byte 0x000003E7 -_02018E78: .4byte 0x022A4E7C -_02018E7C: .4byte 0x022A4E84 -_02018E80: .4byte 0x022A4E8C -_02018E84: .4byte 0x022A4EA4 -_02018E88: .4byte 0x022A4EAC -_02018E8C: .4byte 0x022A4EB4 -_02018E90: .4byte 0x022A4EC4 -_02018E94: .4byte 0x022A4ECC -_02018E98: .4byte 0x022A4EF4 -_02018E9C: .4byte 0x022A4EFC -_02018EA0: .4byte 0x020AFB4C - arm_func_end FUN_02018c28 - - arm_func_start ManipBgmPlayback -ManipBgmPlayback: @ 0x02018EA4 - stmdb sp!, {lr} - sub sp, sp, #0x14 - ldr r0, _0201904C @ =0x020AFB28 - bl FUN_02002cb4 - ldr r0, _02019050 @ =0x022A4E58 - ldr r1, [r0, #0x18] - cmp r1, #0 - bne _02018F5C - ldr r1, [r0, #0x1c] - cmp r1, #2 - bne _02018F0C - ldr r0, [r0] - bl FUN_0206d9a4 - cmp r0, #0 - bne _02018F0C - ldr r0, _02019050 @ =0x022A4E58 - ldr r1, _02019054 @ =0x02099464 - ldrh r2, [r0, #0x20] - mov r0, #7 - bl DebugPrint - bl FUN_02019408 - ldr r0, _02019050 @ =0x022A4E58 - mov r2, #0 - ldr r1, _02019058 @ =0x000003E7 - str r2, [r0, #0x1c] - strh r1, [r0, #0x20] -_02018F0C: - ldr r0, _02019050 @ =0x022A4E58 - ldr r1, [r0, #0x44] - cmp r1, #2 - bne _0201903C - ldr r0, [r0, #8] - bl FUN_0206d9a4 - cmp r0, #0 - bne _0201903C - ldr r0, _02019050 @ =0x022A4E58 - ldr r1, _0201905C @ =0x02099470 - ldrh r2, [r0, #0x48] - mov r0, #7 - bl DebugPrint - bl FUN_02019488 - ldr r0, _02019050 @ =0x022A4E58 - mov r2, #0 - ldr r1, _02019058 @ =0x000003E7 - str r2, [r0, #0x44] - strh r1, [r0, #0x48] - b _0201903C -_02018F5C: - cmp r1, #1 - ldreq r1, [r0, #0x64] - cmpeq r1, #2 - bne _0201903C - ldr r0, [r0, #0x10] - bl FUN_0206d9a4 - cmp r0, #0 - bne _0201903C - bl FUN_02019508 - ldr r0, _02019050 @ =0x022A4E58 - mov r2, #0 - ldr r1, _02019060 @ =0x000003E6 - str r2, [r0, #0x64] - strh r1, [r0, #0x68] - ldr r1, [r0, #0x1c] - cmp r1, #2 - bne _02018FE0 - ldrh r2, [r0, #0x20] - ldr r1, _02019064 @ =0x0209947C - mov r0, #7 - bl DebugPrint - ldr r0, _02019050 @ =0x022A4E58 - mov ip, #4 - ldrh r2, [r0, #0x22] - ldr r0, [r0] - add r1, sp, #0 - rsb r2, r2, r2, lsl #7 - asr r2, r2, #8 - add r3, r2, #0x3e80000 - mov r2, #0 - str r3, [sp, #0xc] - str ip, [sp] - bl ResumeBgm -_02018FE0: - ldr r0, _02019050 @ =0x022A4E58 - ldr r1, [r0, #0x44] - cmp r1, #2 - bne _02019030 - ldrh r2, [r0, #0x48] - ldr r1, _02019068 @ =0x0209948C - mov r0, #7 - bl DebugPrint - ldr r0, _02019050 @ =0x022A4E58 - mov ip, #4 - ldrh r2, [r0, #0x4a] - ldr r0, [r0, #8] - add r1, sp, #0 - rsb r2, r2, r2, lsl #7 - asr r2, r2, #8 - add r3, r2, #0x3e80000 - mov r2, #0 - str r3, [sp, #0xc] - str ip, [sp] - bl ResumeBgm -_02019030: - ldr r0, _02019050 @ =0x022A4E58 - mov r1, #0 - str r1, [r0, #0x18] -_0201903C: - ldr r0, _0201904C @ =0x020AFB28 - bl FUN_02002e98 - add sp, sp, #0x14 - ldm sp!, {pc} - .align 2, 0 -_0201904C: .4byte 0x020AFB28 -_02019050: .4byte 0x022A4E58 -_02019054: .4byte 0x02099464 -_02019058: .4byte 0x000003E7 -_0201905C: .4byte 0x02099470 -_02019060: .4byte 0x000003E6 -_02019064: .4byte 0x0209947C -_02019068: .4byte 0x0209948C - arm_func_end ManipBgmPlayback - - arm_func_start FUN_0201906c -FUN_0201906c: @ 0x0201906C - push {r3, lr} - ldr r0, _020190C0 @ =0x020AFB28 - bl FUN_02002cb4 - ldr r0, _020190C4 @ =0x022A4E58 - ldr r1, [r0, #0x94] - cmp r1, #2 - bne _020190B4 - ldr r0, [r0, #0xdc] - mov r1, #0 - bl FUN_0206ed30 - cmp r0, #0 - bne _020190B4 - bl FUN_02019790 - ldr r0, _020190C4 @ =0x022A4E58 - mov r1, #0x3f00 - strh r1, [r0, #0x98] - mov r1, #0 - str r1, [r0, #0x94] -_020190B4: - ldr r0, _020190C0 @ =0x020AFB28 - bl FUN_02002e98 - pop {r3, pc} - .align 2, 0 -_020190C0: .4byte 0x020AFB28 -_020190C4: .4byte 0x022A4E58 - arm_func_end FUN_0201906c - - arm_func_start SoundDriverReset -SoundDriverReset: @ 0x020190C8 - push {r4, r5, r6, r7, r8, sb, sl, lr} - ldr r0, _0201924C @ =0x020AFB28 - bl FUN_02002cb4 - ldr r1, _02019250 @ =0x0209949C - mov r0, #6 - bl DebugPrint - ldr r4, _02019254 @ =0x022A4E58 - ldr r0, [r4, #0x18] - cmp r0, #1 - bne _02019184 - ldr r5, _0201924C @ =0x020AFB28 - b _0201910C -_020190F8: - mov r0, r5 - bl FUN_02002e98 - bl FUN_02003ab0 - mov r0, r5 - bl FUN_02002cb4 -_0201910C: - ldr r0, [r4, #0x64] - cmp r0, #1 - beq _020190F8 - cmp r0, #2 - bne _02019174 - ldr r0, _02019254 @ =0x022A4E58 - ldr r0, [r0, #0x10] - bl FUN_0206d9a4 - cmp r0, #0 - ble _02019174 - ldr r0, _02019254 @ =0x022A4E58 - mov r1, #0 - ldr r0, [r0, #0x10] - bl FUN_0206da9c - ldr r5, _0201924C @ =0x020AFB28 - ldr r4, _02019254 @ =0x022A4E58 - b _02019164 -_02019150: - mov r0, r5 - bl FUN_02002e98 - bl FUN_02003ab0 - mov r0, r5 - bl FUN_02002cb4 -_02019164: - ldr r0, [r4, #0x10] - bl FUN_0206d9a4 - cmp r0, #0 - bne _02019150 -_02019174: - bl FUN_02019508 - ldr r1, _02019258 @ =0x000003E6 - ldr r0, _02019254 @ =0x022A4E58 - strh r1, [r0, #0x68] -_02019184: - mov r7, #0 - ldr r6, _0201925C @ =0x000003E7 - ldr sl, _0201924C @ =0x020AFB28 - ldr sb, _02019254 @ =0x022A4E58 - mov r8, r7 - mov r4, r7 - mov r5, r7 -_020191A0: - ldr r0, [sb, #0x1c] - cmp r0, #2 - bne _020191D4 - ldr r0, [sb] - mov r1, r8 - bl FUN_0206da9c - ldr r0, [sb] - bl FUN_0206d9a4 - cmp r0, #0 - bne _020191D4 - bl FUN_02019408 - str r7, [sb, #0x1c] - strh r6, [sb, #0x20] -_020191D4: - ldr r0, [sb, #0x44] - cmp r0, #2 - bne _02019208 - ldr r0, [sb, #8] - mov r1, r5 - bl FUN_0206da9c - ldr r0, [sb, #8] - bl FUN_0206d9a4 - cmp r0, #0 - bne _02019208 - bl FUN_02019488 - str r4, [sb, #0x44] - strh r6, [sb, #0x48] -_02019208: - ldr r0, [sb, #0x1c] - cmp r0, #0 - ldrne r0, [sb, #0x44] - cmpne r0, #0 - beq _02019234 - mov r0, sl - bl FUN_02002e98 - bl FUN_02003ab0 - mov r0, sl - bl FUN_02002cb4 - b _020191A0 -_02019234: - mov r0, #0x3f00 - mov r1, #0 - bl StopSe - ldr r0, _0201924C @ =0x020AFB28 - bl FUN_02002e98 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_0201924C: .4byte 0x020AFB28 -_02019250: .4byte 0x0209949C -_02019254: .4byte 0x022A4E58 -_02019258: .4byte 0x000003E6 -_0201925C: .4byte 0x000003E7 - arm_func_end SoundDriverReset - - arm_func_start FUN_02019260 -FUN_02019260: @ 0x02019260 - push {r3, lr} - ldr r0, _02019294 @ =0x020AFB24 - ldrb r0, [r0] - cmp r0, #0 - popne {r3, pc} - ldr r0, _02019298 @ =0x020AFB28 - bl FUN_02002cb4 - mov r0, #1 - bl FUN_0206c620 - ldr r0, _02019294 @ =0x020AFB24 - mov r1, #1 - strb r1, [r0] - pop {r3, pc} - .align 2, 0 -_02019294: .4byte 0x020AFB24 -_02019298: .4byte 0x020AFB28 - arm_func_end FUN_02019260 -_0201929C: - .byte 0x08, 0x40, 0x2D, 0xE9 - .byte 0x20, 0x00, 0x9F, 0xE5, 0x82, 0xA6, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x02, 0x4D, 0x01, 0xEB - .byte 0x14, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0xC9, 0x8D, 0x01, 0xEB, 0x04, 0x00, 0x9F, 0xE5 - .byte 0xF4, 0xA6, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x28, 0xFB, 0x0A, 0x02, 0xFF, 0xFF, 0x00, 0x00 - .byte 0x08, 0x40, 0x2D, 0xE9, 0x20, 0x00, 0x9F, 0xE5, 0x75, 0xA6, 0xFF, 0xEB, 0x1C, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0xB6, 0x8D, 0x01, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x18, 0x4D, 0x01, 0xEB - .byte 0x04, 0x00, 0x9F, 0xE5, 0xE7, 0xA6, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x28, 0xFB, 0x0A, 0x02 - .byte 0xFF, 0xFF, 0x00, 0x00 - - arm_func_start FUN_02019304 -FUN_02019304: @ 0x02019304 - ldr r0, _02019310 @ =0x022A4E50 - ldr r0, [r0, #4] - bx lr - .align 2, 0 -_02019310: .4byte 0x022A4E50 - arm_func_end FUN_02019304 - - arm_func_start FUN_02019314 -FUN_02019314: @ 0x02019314 - push {r3, r4, r5, lr} - sub sp, sp, #0x48 - mov r5, r0 - mov r4, r1 - bl DataTransferInit - add r0, sp, #0 - bl FileInitVeneer - add r0, sp, #0 - mov r1, r4 - bl FileOpen - add r0, sp, #0 - bl FileGetSize - str r0, [r5, #4] - ldr r0, _02019388 @ =0x022A4E50 - ldr r1, [r5, #4] - ldr r0, [r0, #4] - mov r2, #2 - bl MemLocateSet - str r0, [r5] - add r0, sp, #0 - ldm r5, {r1, r2} - bl FileRead - mov r4, r0 - add r0, sp, #0 - bl FileClose - bl DataTransferStop - mov r0, r4 - add sp, sp, #0x48 - pop {r3, r4, r5, pc} - .align 2, 0 -_02019388: .4byte 0x022A4E50 - arm_func_end FUN_02019314 - - arm_func_start LoadDseFile -LoadDseFile: @ 0x0201938C - push {r3, r4, r5, lr} - sub sp, sp, #0x48 - mov r5, r0 - mov r4, r1 - bl DataTransferInit - add r0, sp, #0 - bl FileInitVeneer - add r0, sp, #0 - mov r1, r4 - bl FileOpen - add r0, sp, #0 - bl FileGetSize - str r0, [r5, #4] - ldr r0, _02019400 @ =0x022A4E50 - ldr r1, [r5, #4] - ldr r0, [r0, #4] - ldr r2, _02019404 @ =0x00000302 - bl MemLocateSet - str r0, [r5] - add r0, sp, #0 - ldm r5, {r1, r2} - bl FileRead - mov r4, r0 - add r0, sp, #0 - bl FileClose - bl DataTransferStop - mov r0, r4 - add sp, sp, #0x48 - pop {r3, r4, r5, pc} - .align 2, 0 -_02019400: .4byte 0x022A4E50 -_02019404: .4byte 0x00000302 - arm_func_end LoadDseFile - - arm_func_start FUN_02019408 -FUN_02019408: @ 0x02019408 - push {r3, lr} - ldr r0, _0201947C @ =0x022A4E8C - bl PointsToZero - cmp r0, #0 - popne {r3, pc} - ldr r0, _02019480 @ =0x022A4E58 - ldr r0, [r0] - bl FUN_0206d90c - ldr r0, _02019480 @ =0x022A4E58 - ldr r0, [r0, #4] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0206d4e4 - ldr r0, _02019484 @ =0x022A4E50 - ldr r1, _02019480 @ =0x022A4E58 - ldr r0, [r0, #4] - ldr r1, [r1, #0x34] - bl MemLocateUnset - ldr r0, _02019484 @ =0x022A4E50 - ldr r1, _02019480 @ =0x022A4E58 - ldr r0, [r0, #4] - ldr r1, [r1, #0x24] - bl MemLocateUnset - ldr r0, _02019484 @ =0x022A4E50 - ldr r1, _02019480 @ =0x022A4E58 - ldr r0, [r0, #4] - ldr r1, [r1, #0x2c] - bl MemLocateUnset - pop {r3, pc} - .align 2, 0 -_0201947C: .4byte 0x022A4E8C -_02019480: .4byte 0x022A4E58 -_02019484: .4byte 0x022A4E50 - arm_func_end FUN_02019408 - - arm_func_start FUN_02019488 -FUN_02019488: @ 0x02019488 - push {r3, lr} - ldr r0, _020194FC @ =0x022A4EB4 - bl PointsToZero - cmp r0, #0 - popne {r3, pc} - ldr r0, _02019500 @ =0x022A4E58 - ldr r0, [r0, #8] - bl FUN_0206d90c - ldr r0, _02019500 @ =0x022A4E58 - ldr r0, [r0, #0xc] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0206d4e4 - ldr r0, _02019504 @ =0x022A4E50 - ldr r1, _02019500 @ =0x022A4E58 - ldr r0, [r0, #4] - ldr r1, [r1, #0x5c] - bl MemLocateUnset - ldr r0, _02019504 @ =0x022A4E50 - ldr r1, _02019500 @ =0x022A4E58 - ldr r0, [r0, #4] - ldr r1, [r1, #0x4c] - bl MemLocateUnset - ldr r0, _02019504 @ =0x022A4E50 - ldr r1, _02019500 @ =0x022A4E58 - ldr r0, [r0, #4] - ldr r1, [r1, #0x54] - bl MemLocateUnset - pop {r3, pc} - .align 2, 0 -_020194FC: .4byte 0x022A4EB4 -_02019500: .4byte 0x022A4E58 -_02019504: .4byte 0x022A4E50 - arm_func_end FUN_02019488 - - arm_func_start FUN_02019508 -FUN_02019508: @ 0x02019508 - push {r3, lr} - ldr r0, _02019568 @ =0x022A4ECC - bl PointsToZero - cmp r0, #0 - popne {r3, pc} - ldr r0, _0201956C @ =0x022A4E58 - ldr r0, [r0, #0x10] - bl FUN_0206d90c - ldr r0, _0201956C @ =0x022A4E58 - ldr r0, [r0, #0x14] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0206d4e4 - ldr r0, _02019570 @ =0x022A4E50 - ldr r1, _0201956C @ =0x022A4E58 - ldr r0, [r0, #4] - ldr r1, [r1, #0x74] - bl MemLocateUnset - ldr r0, _02019570 @ =0x022A4E50 - ldr r1, _0201956C @ =0x022A4E58 - ldr r0, [r0, #4] - ldr r1, [r1, #0x6c] - bl MemLocateUnset - pop {r3, pc} - .align 2, 0 -_02019568: .4byte 0x022A4ECC -_0201956C: .4byte 0x022A4E58 -_02019570: .4byte 0x022A4E50 - arm_func_end FUN_02019508 - - arm_func_start PlaySeLoad -PlaySeLoad: @ 0x02019574 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x10c - mov r6, r0 - asr r1, r6, #8 - and r4, r1, #0xff - and r5, r6, #0xff - bl FUN_0201aaa0 - cmp r0, #0 - movne r0, #0 - bne _02019758 - cmp r5, #0 - moveq r0, #0 - beq _02019758 - ldr r0, _02019760 @ =0x022A4E58 - ldrh r0, [r0, #0x9a] - cmp r0, r6 - moveq r0, #1 - beq _02019758 - cmp r0, #0x3f00 - beq _020195C8 - bl FUN_02019790 -_020195C8: - ldr r0, _02019760 @ =0x022A4E58 - mov r1, #1 - str r1, [r0, #0x94] - ldr r1, _02019764 @ =0x020AFB6C - strh r6, [r0, #0x9a] - mov r2, #0 - str r2, [r0, #0xc4] - ldr r2, [r1, r4, lsl #2] - ldr r1, _02019768 @ =0x020994B0 - add r0, sp, #0xc - bl Sprintf - ldr r1, _0201976C @ =0x020994C0 - add r3, sp, #0xc - mov r2, r6 - mov r0, #8 - bl DebugPrint - ldr r0, _02019770 @ =0x020AFB28 - bl FUN_02002e98 - ldr r0, _02019774 @ =0x022A4EF4 - add r1, sp, #0xc - bl LoadDseFile - ldr r0, _02019770 @ =0x020AFB28 - bl FUN_02002cb4 - ldr r0, _02019760 @ =0x022A4E58 - ldr r0, [r0, #0x9c] - bl FUN_0206ea18 - ldr r2, _02019760 @ =0x022A4E58 - add r1, sp, #4 - str r0, [r2, #0xc8] - add r0, r0, r5, lsl #16 - str r0, [r2, #0xdc] - mov r2, #4 - bl FUN_0206ec5c - mov r7, r0 - ldr r1, _02019778 @ =0x020994D8 - mov r2, r6 - mov r3, r5 - mov r8, #0 - mov r0, #8 - str r7, [sp] - bl DebugPrint - mov sb, r8 - add r6, sp, #4 - mov fp, #8 - ldr r5, _0201977C @ =0x022A4EFC - ldr r4, _02019760 @ =0x022A4E58 - b _0201970C -_02019684: - lsl r0, sb, #1 - ldrh r2, [r6, r0] - ldr r1, _02019780 @ =0x02099500 - mov r0, fp - and sl, r2, #0xff - str r2, [sp] - mov r2, sb - mov r3, sl - bl DebugPrint - ldr r1, _02019784 @ =0x02099514 - mov r2, sl - add r0, sp, #0xc - bl Sprintf - ldr r1, _02019788 @ =0x02099528 - mov r0, #8 - mov r2, r8 - add r3, sp, #0xc - bl DebugPrint - ldr r0, _02019770 @ =0x020AFB28 - bl FUN_02002e98 - add r0, r5, r8, lsl #3 - add r1, sp, #0xc - bl LoadDseFile - ldr r0, _02019770 @ =0x020AFB28 - bl FUN_02002cb4 - add r0, r4, r8, lsl #3 - mov r1, #0 - ldr r0, [r0, #0xa4] - mov r2, r1 - bl FUN_0206d108 - add r1, r4, r8, lsl #2 - str r0, [r1, #0xcc] - add r8, r8, #1 - add sb, sb, #1 -_0201970C: - cmp sb, r7 - blt _02019684 - ldr r0, _02019760 @ =0x022A4E58 - cmp r8, #0 - str r8, [r0, #0xc4] - movne r0, #1 - bne _02019758 - mov r1, #0x3f00 - strh r1, [r0, #0x9a] - ldr r0, [r0, #0xc8] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0206ebcc - ldr r0, _0201978C @ =0x022A4E50 - ldr r1, _02019760 @ =0x022A4E58 - ldr r0, [r0, #4] - ldr r1, [r1, #0x9c] - bl MemLocateUnset - mov r0, #0 -_02019758: - add sp, sp, #0x10c - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02019760: .4byte 0x022A4E58 -_02019764: .4byte 0x020AFB6C -_02019768: .4byte 0x020994B0 -_0201976C: .4byte 0x020994C0 -_02019770: .4byte 0x020AFB28 -_02019774: .4byte 0x022A4EF4 -_02019778: .4byte 0x020994D8 -_0201977C: .4byte 0x022A4EFC -_02019780: .4byte 0x02099500 -_02019784: .4byte 0x02099514 -_02019788: .4byte 0x02099528 -_0201978C: .4byte 0x022A4E50 - arm_func_end PlaySeLoad - - arm_func_start FUN_02019790 -FUN_02019790: @ 0x02019790 - push {r3, r4, r5, r6, r7, lr} - ldr r4, _0201981C @ =0x022A4E58 - ldr r5, [r4, #0xc4] - cmp r5, #0 - pople {r3, r4, r5, r6, r7, pc} - mov r6, #0 - str r6, [r4, #0xc4] - ldr r7, _02019820 @ =0x022A4E50 - b _020197DC -_020197B4: - add r0, r4, r6, lsl #2 - ldr r0, [r0, #0xcc] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0206d4e4 - add r1, r4, r6, lsl #3 - ldr r0, [r7, #4] - ldr r1, [r1, #0xa4] - bl MemLocateUnset - add r6, r6, #1 -_020197DC: - cmp r6, r5 - blt _020197B4 - ldr r0, _0201981C @ =0x022A4E58 - ldr r0, [r0, #0xc8] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0206ebcc - ldr r0, _02019820 @ =0x022A4E50 - ldr r1, _0201981C @ =0x022A4E58 - ldr r0, [r0, #4] - ldr r1, [r1, #0x9c] - bl MemLocateUnset - ldr r0, _0201981C @ =0x022A4E58 - mov r1, #0x3f00 - strh r1, [r0, #0x9a] - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0201981C: .4byte 0x022A4E58 -_02019820: .4byte 0x022A4E50 - arm_func_end FUN_02019790 - - arm_func_start FUN_02019824 -FUN_02019824: @ 0x02019824 - push {r4, lr} - ldr r0, _02019848 @ =0x020AFB28 - bl FUN_02002cb4 - ldr r1, _0201984C @ =0x022A4E58 - ldr r0, _02019848 @ =0x020AFB28 - ldrh r4, [r1, #0x20] - bl FUN_02002e98 - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_02019848: .4byte 0x020AFB28 -_0201984C: .4byte 0x022A4E58 - arm_func_end FUN_02019824 - - arm_func_start FUN_02019850 -FUN_02019850: @ 0x02019850 - push {r3, r4, lr} - sub sp, sp, #4 - ldr r0, _020198B0 @ =0x020AFB28 - mov r4, #0 - bl FUN_02002cb4 - ldr r0, _020198B4 @ =0x022A4E58 - ldr r1, [r0, #0x1c] - cmp r1, #2 - bne _0201989C - ldr r0, [r0] - add r2, sp, #0 - mov r1, #0xa - bl FUN_0206e064 - ldr r0, _020198B4 @ =0x022A4E58 - ldr r2, [sp] - ldr r1, [r0, #0x40] - cmp r2, r1 - strgt r2, [r0, #0x40] - movgt r4, #1 -_0201989C: - ldr r0, _020198B0 @ =0x020AFB28 - bl FUN_02002e98 - mov r0, r4 - add sp, sp, #4 - pop {r3, r4, pc} - .align 2, 0 -_020198B0: .4byte 0x020AFB28 -_020198B4: .4byte 0x022A4E58 - arm_func_end FUN_02019850 - - arm_func_start PlayBgm -PlayBgm: @ 0x020198B8 - push {r4, r5, r6, lr} - sub sp, sp, #0x98 - mov r6, r0 - ldr r0, _02019B00 @ =0x020AFB28 - mov r5, r1 - mov r4, r2 - bl FUN_02002cb4 - ldr r1, _02019B04 @ =0x0209953C - mov r2, r6 - mov r3, r4 - mov r0, #7 - str r5, [sp] - bl DebugPrint - ldr r0, _02019B08 @ =0x022A4E58 - ldrh r0, [r0, #0x48] - cmp r6, r0 - bne _02019914 - ldr r0, _02019B00 @ =0x020AFB28 - bl FUN_02002e98 - mov r0, #0 - bl StopBgm2 - ldr r0, _02019B00 @ =0x020AFB28 - bl FUN_02002cb4 -_02019914: - ldr r1, _02019B08 @ =0x022A4E58 - ldr r0, _02019B0C @ =0x000003E7 - ldrh r1, [r1, #0x20] - cmp r1, r0 - beq _02019940 - ldr r0, _02019B00 @ =0x020AFB28 - bl FUN_02002e98 - mov r0, #0 - bl StopBgm - ldr r0, _02019B00 @ =0x020AFB28 - bl FUN_02002cb4 -_02019940: - cmp r6, #1 - blo _02019950 - cmp r6, #0xc9 - bls _02019970 -_02019950: - ldr r1, _02019B08 @ =0x022A4E58 - mov r0, #0 - ldr r2, _02019B0C @ =0x000003E7 - str r0, [r1, #0x1c] - ldr r0, _02019B00 @ =0x020AFB28 - strh r2, [r1, #0x20] - bl FUN_02002e98 - b _02019AF8 -_02019970: - ldr r0, _02019B08 @ =0x022A4E58 - mov r1, #1 - str r1, [r0, #0x1c] - strh r6, [r0, #0x20] - strh r4, [r0, #0x22] - mov r1, #0 - str r1, [r0, #0x3c] - str r1, [r0, #0x40] - ldr r0, [r0, #0x18] - cmp r0, #0 - bne _02019AE4 - ldr r0, _02019B00 @ =0x020AFB28 - bl FUN_02002e98 - ldr r1, _02019B10 @ =0x02099554 - add r0, sp, #0x18 - mov r2, r6 - bl Sprintf - ldr r0, _02019B14 @ =0x022A4E8C - add r1, sp, #0x18 - bl FUN_02019314 - ldr r1, _02019B18 @ =0x0209956C - add r0, sp, #0x18 - mov r2, r6 - bl Sprintf - ldr r0, _02019B1C @ =0x022A4E7C - add r1, sp, #0x18 - bl FUN_02019314 - ldr r0, _02019B00 @ =0x020AFB28 - bl FUN_02002cb4 - ldr r0, _02019B08 @ =0x022A4E58 - mov r1, #0 - ldr r0, [r0, #0x24] - mov r2, r1 - bl FUN_0206d108 - ldr r2, _02019B08 @ =0x022A4E58 - lsl r1, r0, #0x10 - str r0, [r2, #4] - lsr r0, r1, #0x10 - mov r1, #0 - bl FUN_0206d328 - mov r1, r0 - ldr r0, _02019B20 @ =0x022A4E50 - ldr r2, _02019B08 @ =0x022A4E58 - ldr r0, [r0, #4] - str r1, [r2, #0x30] - mov r2, #2 - bl MemLocateSet - ldr r1, _02019B08 @ =0x022A4E58 - str r0, [r1, #0x2c] - ldr r0, _02019B00 @ =0x020AFB28 - bl FUN_02002e98 - bl DataTransferInit - bl FUN_02003ab0 - ldr r0, _02019B08 @ =0x022A4E58 - ldr r2, [r0, #4] - ldr r1, [r0, #0x2c] - lsl r0, r2, #0x10 - lsr r0, r0, #0x10 - bl FUN_0206d328 -_02019A5C: - bl FUN_02003ab0 - bl FUN_0206d30c - cmp r0, #0 - bne _02019A5C - bl DataTransferStop - ldr r0, _02019B00 @ =0x020AFB28 - bl FUN_02002cb4 - ldr r0, _02019B08 @ =0x022A4E58 - ldr r0, [r0, #0x34] - bl FUN_0206d808 - ldr r3, _02019B08 @ =0x022A4E58 - ldr r1, _02019B24 @ =0x0201AABC - mov r2, #0 - str r0, [r3] - bl FUN_0206d944 - mov r0, #0x3e8 - mov r1, #4 - str r1, [sp, #4] - mul r0, r5, r0 - mov r1, #0x3c - bl DivideInt - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - rsb r1, r4, r4, lsl #7 - lsl r0, r0, #0x10 - add r0, r0, r1, asr #8 - str r0, [sp, #0x10] - mov r0, #4 - str r0, [sp, #4] - ldr r0, _02019B08 @ =0x022A4E58 - add r1, sp, #4 - ldr r0, [r0] - mov r2, #1 - bl ResumeBgm -_02019AE4: - ldr r1, _02019B08 @ =0x022A4E58 - mov r2, #2 - ldr r0, _02019B00 @ =0x020AFB28 - str r2, [r1, #0x1c] - bl FUN_02002e98 -_02019AF8: - add sp, sp, #0x98 - pop {r4, r5, r6, pc} - .align 2, 0 -_02019B00: .4byte 0x020AFB28 -_02019B04: .4byte 0x0209953C -_02019B08: .4byte 0x022A4E58 -_02019B0C: .4byte 0x000003E7 -_02019B10: .4byte 0x02099554 -_02019B14: .4byte 0x022A4E8C -_02019B18: .4byte 0x0209956C -_02019B1C: .4byte 0x022A4E7C -_02019B20: .4byte 0x022A4E50 -_02019B24: .4byte 0x0201AABC - arm_func_end PlayBgm - - arm_func_start StopBgm -StopBgm: @ 0x02019B28 - push {r3, r4, r5, r6, lr} - sub sp, sp, #4 - mov r4, r0 - ldr r0, _02019C3C @ =0x020AFB28 - bl FUN_02002cb4 - ldr r1, _02019C40 @ =0x02099584 - mov r2, r4 - mov r0, #7 - bl DebugPrint - ldr r5, _02019C44 @ =0x022A4E58 - ldr r0, [r5, #0x1c] - cmp r0, #0 - beq _02019C2C - ldr r6, _02019C3C @ =0x020AFB28 - b _02019B78 -_02019B64: - mov r0, r6 - bl FUN_02002e98 - bl FUN_02003ab0 - mov r0, r6 - bl FUN_02002cb4 -_02019B78: - ldr r0, [r5, #0x1c] - cmp r0, #1 - beq _02019B64 - cmp r0, #2 - bne _02019C2C - mov r0, #0x3e8 - mul r0, r4, r0 - mov r1, #0x3c - bl DivideInt - lsl r1, r0, #0x10 - ldr r2, _02019C44 @ =0x022A4E58 - lsr r1, r1, #0x10 - ldr r0, [r2] - bl FUN_0206da9c - ldr r0, _02019C44 @ =0x022A4E58 - str r4, [sp] - ldrh r3, [r0, #0x20] - ldr r1, [r0, #0x18] - ldr r2, [r0, #0x1c] - ldr r0, _02019C48 @ =0x02099594 - bl DebugPrint0 - cmp r4, #0 - beq _02019BE4 - ldr r0, _02019C44 @ =0x022A4E58 - ldr r0, [r0, #0x18] - cmp r0, #0 - beq _02019C2C -_02019BE4: - ldr r5, _02019C3C @ =0x020AFB28 - ldr r4, _02019C44 @ =0x022A4E58 - b _02019C04 -_02019BF0: - mov r0, r5 - bl FUN_02002e98 - bl FUN_02003ab0 - mov r0, r5 - bl FUN_02002cb4 -_02019C04: - ldr r0, [r4] - bl FUN_0206d9a4 - cmp r0, #0 - bne _02019BF0 - bl FUN_02019408 - ldr r0, _02019C44 @ =0x022A4E58 - mov r2, #0 - ldr r1, _02019C4C @ =0x000003E7 - str r2, [r0, #0x1c] - strh r1, [r0, #0x20] -_02019C2C: - ldr r0, _02019C3C @ =0x020AFB28 - bl FUN_02002e98 - add sp, sp, #4 - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_02019C3C: .4byte 0x020AFB28 -_02019C40: .4byte 0x02099584 -_02019C44: .4byte 0x022A4E58 -_02019C48: .4byte 0x02099594 -_02019C4C: .4byte 0x000003E7 - arm_func_end StopBgm - - arm_func_start ChangeBgm -ChangeBgm: @ 0x02019C50 - push {r4, r5, lr} - sub sp, sp, #0x14 - mov r5, r0 - ldr r0, _02019CF8 @ =0x020AFB28 - mov r4, r1 - bl FUN_02002cb4 - ldr r1, _02019CFC @ =0x020995BC - mov r2, r4 - mov r3, r5 - mov r0, #7 - bl DebugPrint - ldr r0, _02019D00 @ =0x022A4E58 - ldr r1, [r0, #0x1c] - cmp r1, #0 - beq _02019CE8 - ldr r0, [r0, #0x18] - cmp r0, #0 - bne _02019CE0 - mov r0, #0x3e8 - mul r0, r5, r0 - mov r2, #4 - mov r1, #0x3c - str r2, [sp] - bl DivideInt - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r2, #4 - ldr r1, _02019D00 @ =0x022A4E58 - rsb r3, r4, r4, lsl #7 - lsl r0, r0, #0x10 - add r3, r0, r3, asr #8 - ldr r0, [r1] - add r1, sp, #0 - str r3, [sp, #0xc] - str r2, [sp] - bl FUN_0206db3c -_02019CE0: - ldr r0, _02019D00 @ =0x022A4E58 - strh r4, [r0, #0x22] -_02019CE8: - ldr r0, _02019CF8 @ =0x020AFB28 - bl FUN_02002e98 - add sp, sp, #0x14 - pop {r4, r5, pc} - .align 2, 0 -_02019CF8: .4byte 0x020AFB28 -_02019CFC: .4byte 0x020995BC -_02019D00: .4byte 0x022A4E58 - arm_func_end ChangeBgm - - arm_func_start FUN_02019d04 -FUN_02019d04: @ 0x02019D04 - push {r4, lr} - ldr r0, _02019D50 @ =0x020AFB28 - bl FUN_02002cb4 - ldr r0, _02019D54 @ =0x022A4E58 - ldr r1, [r0, #0x1c] - cmp r1, #0 - beq _02019D3C - ldr r1, [r0, #0x3c] - cmp r1, #0 - subgt r1, r1, #1 - movgt r4, #1 - strgt r1, [r0, #0x3c] - movle r4, #0 - b _02019D40 -_02019D3C: - mov r4, #1 -_02019D40: - ldr r0, _02019D50 @ =0x020AFB28 - bl FUN_02002e98 - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_02019D50: .4byte 0x020AFB28 -_02019D54: .4byte 0x022A4E58 - arm_func_end FUN_02019d04 - - arm_func_start FUN_02019d58 -FUN_02019d58: @ 0x02019D58 - push {r4, lr} - ldr r0, _02019D7C @ =0x020AFB28 - bl FUN_02002cb4 - ldr r1, _02019D80 @ =0x022A4E58 - ldr r0, _02019D7C @ =0x020AFB28 - ldrh r4, [r1, #0x48] - bl FUN_02002e98 - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_02019D7C: .4byte 0x020AFB28 -_02019D80: .4byte 0x022A4E58 - arm_func_end FUN_02019d58 - - arm_func_start PlayBgm2 -PlayBgm2: @ 0x02019D84 - push {r4, r5, r6, lr} - sub sp, sp, #0x98 - mov r6, r0 - ldr r0, _02019FC0 @ =0x020AFB28 - mov r5, r1 - mov r4, r2 - bl FUN_02002cb4 - ldr r1, _02019FC4 @ =0x020995D0 - mov r2, r6 - mov r3, r4 - mov r0, #7 - str r5, [sp] - bl DebugPrint - ldr r0, _02019FC8 @ =0x022A4E58 - ldrh r0, [r0, #0x20] - cmp r6, r0 - bne _02019DE0 - ldr r0, _02019FC0 @ =0x020AFB28 - bl FUN_02002e98 - mov r0, #0 - bl StopBgm - ldr r0, _02019FC0 @ =0x020AFB28 - bl FUN_02002cb4 -_02019DE0: - ldr r1, _02019FC8 @ =0x022A4E58 - ldr r0, _02019FCC @ =0x000003E7 - ldrh r1, [r1, #0x48] - cmp r1, r0 - beq _02019E0C - ldr r0, _02019FC0 @ =0x020AFB28 - bl FUN_02002e98 - mov r0, #0 - bl StopBgm2 - ldr r0, _02019FC0 @ =0x020AFB28 - bl FUN_02002cb4 -_02019E0C: - cmp r6, #1 - blo _02019E1C - cmp r6, #0xc9 - bls _02019E3C -_02019E1C: - ldr r1, _02019FC8 @ =0x022A4E58 - mov r0, #0 - ldr r2, _02019FCC @ =0x000003E7 - str r0, [r1, #0x44] - ldr r0, _02019FC0 @ =0x020AFB28 - strh r2, [r1, #0x48] - bl FUN_02002e98 - b _02019FB8 -_02019E3C: - ldr r0, _02019FC8 @ =0x022A4E58 - mov r1, #1 - str r1, [r0, #0x44] - strh r6, [r0, #0x48] - strh r4, [r0, #0x4a] - ldr r0, [r0, #0x18] - cmp r0, #0 - bne _02019FA4 - ldr r0, _02019FC0 @ =0x020AFB28 - bl FUN_02002e98 - ldr r1, _02019FD0 @ =0x02099554 - add r0, sp, #0x18 - mov r2, r6 - bl Sprintf - ldr r0, _02019FD4 @ =0x022A4EB4 - add r1, sp, #0x18 - bl LoadDseFile - ldr r1, _02019FD8 @ =0x0209956C - add r0, sp, #0x18 - mov r2, r6 - bl Sprintf - ldr r0, _02019FDC @ =0x022A4EA4 - add r1, sp, #0x18 - bl LoadDseFile - ldr r0, _02019FC0 @ =0x020AFB28 - bl FUN_02002cb4 - ldr r0, _02019FC8 @ =0x022A4E58 - mov r1, #0 - ldr r0, [r0, #0x4c] - mov r2, r1 - bl FUN_0206d108 - ldr r2, _02019FC8 @ =0x022A4E58 - lsl r1, r0, #0x10 - str r0, [r2, #0xc] - lsr r0, r1, #0x10 - mov r1, #0 - bl FUN_0206d328 - mov r1, r0 - ldr r0, _02019FE0 @ =0x022A4E50 - ldr r2, _02019FC8 @ =0x022A4E58 - ldr r0, [r0, #4] - str r1, [r2, #0x58] - mov r2, #2 - bl MemLocateSet - ldr r1, _02019FC8 @ =0x022A4E58 - str r0, [r1, #0x54] - ldr r0, _02019FC0 @ =0x020AFB28 - bl FUN_02002e98 - bl DataTransferInit - bl FUN_02003ab0 - ldr r0, _02019FC8 @ =0x022A4E58 - ldr r2, [r0, #0xc] - ldr r1, [r0, #0x54] - lsl r0, r2, #0x10 - lsr r0, r0, #0x10 - bl FUN_0206d328 -_02019F1C: - bl FUN_02003ab0 - bl FUN_0206d30c - cmp r0, #0 - bne _02019F1C - bl DataTransferStop - ldr r0, _02019FC0 @ =0x020AFB28 - bl FUN_02002cb4 - ldr r0, _02019FC8 @ =0x022A4E58 - ldr r0, [r0, #0x5c] - bl FUN_0206d808 - ldr r3, _02019FC8 @ =0x022A4E58 - ldr r1, _02019FE4 @ =0x0201AABC - mov r2, #0 - str r0, [r3, #8] - bl FUN_0206d944 - mov r0, #0x3e8 - mov r1, #4 - str r1, [sp, #4] - mul r0, r5, r0 - mov r1, #0x3c - bl DivideInt - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - rsb r1, r4, r4, lsl #7 - lsl r0, r0, #0x10 - add r0, r0, r1, asr #8 - str r0, [sp, #0x10] - mov r0, #4 - str r0, [sp, #4] - ldr r0, _02019FC8 @ =0x022A4E58 - add r1, sp, #4 - ldr r0, [r0, #8] - mov r2, #1 - bl ResumeBgm -_02019FA4: - ldr r1, _02019FC8 @ =0x022A4E58 - mov r2, #2 - ldr r0, _02019FC0 @ =0x020AFB28 - str r2, [r1, #0x44] - bl FUN_02002e98 -_02019FB8: - add sp, sp, #0x98 - pop {r4, r5, r6, pc} - .align 2, 0 -_02019FC0: .4byte 0x020AFB28 -_02019FC4: .4byte 0x020995D0 -_02019FC8: .4byte 0x022A4E58 -_02019FCC: .4byte 0x000003E7 -_02019FD0: .4byte 0x02099554 -_02019FD4: .4byte 0x022A4EB4 -_02019FD8: .4byte 0x0209956C -_02019FDC: .4byte 0x022A4EA4 -_02019FE0: .4byte 0x022A4E50 -_02019FE4: .4byte 0x0201AABC - arm_func_end PlayBgm2 - - arm_func_start StopBgm2 -StopBgm2: @ 0x02019FE8 - push {r4, r5, r6, lr} - mov r4, r0 - ldr r0, _0201A0D8 @ =0x020AFB28 - bl FUN_02002cb4 - ldr r1, _0201A0DC @ =0x020995E8 - mov r2, r4 - mov r0, #7 - bl DebugPrint - ldr r5, _0201A0E0 @ =0x022A4E58 - ldr r0, [r5, #0x44] - cmp r0, #0 - beq _0201A0CC - ldr r6, _0201A0D8 @ =0x020AFB28 - b _0201A034 -_0201A020: - mov r0, r6 - bl FUN_02002e98 - bl FUN_02003ab0 - mov r0, r6 - bl FUN_02002cb4 -_0201A034: - ldr r0, [r5, #0x44] - cmp r0, #1 - beq _0201A020 - cmp r0, #2 - bne _0201A0CC - mov r0, #0x3e8 - mul r0, r4, r0 - mov r1, #0x3c - bl DivideInt - lsl r1, r0, #0x10 - ldr r2, _0201A0E0 @ =0x022A4E58 - lsr r1, r1, #0x10 - ldr r0, [r2, #8] - bl FUN_0206da9c - cmp r4, #0 - beq _0201A084 - ldr r0, _0201A0E0 @ =0x022A4E58 - ldr r0, [r0, #0x18] - cmp r0, #0 - beq _0201A0CC -_0201A084: - ldr r5, _0201A0D8 @ =0x020AFB28 - ldr r4, _0201A0E0 @ =0x022A4E58 - b _0201A0A4 -_0201A090: - mov r0, r5 - bl FUN_02002e98 - bl FUN_02003ab0 - mov r0, r5 - bl FUN_02002cb4 -_0201A0A4: - ldr r0, [r4, #8] - bl FUN_0206d9a4 - cmp r0, #0 - bne _0201A090 - bl FUN_02019488 - ldr r0, _0201A0E0 @ =0x022A4E58 - mov r2, #0 - ldr r1, _0201A0E4 @ =0x000003E7 - str r2, [r0, #0x44] - strh r1, [r0, #0x48] -_0201A0CC: - ldr r0, _0201A0D8 @ =0x020AFB28 - bl FUN_02002e98 - pop {r4, r5, r6, pc} - .align 2, 0 -_0201A0D8: .4byte 0x020AFB28 -_0201A0DC: .4byte 0x020995E8 -_0201A0E0: .4byte 0x022A4E58 -_0201A0E4: .4byte 0x000003E7 - arm_func_end StopBgm2 - - arm_func_start ChangeBgm2 -ChangeBgm2: @ 0x0201A0E8 - push {r4, r5, lr} - sub sp, sp, #0x14 - mov r5, r0 - ldr r0, _0201A190 @ =0x020AFB28 - mov r4, r1 - bl FUN_02002cb4 - ldr r1, _0201A194 @ =0x020995F8 - mov r2, r4 - mov r3, r5 - mov r0, #7 - bl DebugPrint - ldr r0, _0201A198 @ =0x022A4E58 - ldr r1, [r0, #0x44] - cmp r1, #0 - beq _0201A180 - ldr r0, [r0, #0x18] - cmp r0, #0 - bne _0201A178 - mov r0, #0x3e8 - mul r0, r5, r0 - mov r2, #4 - mov r1, #0x3c - str r2, [sp] - bl DivideInt - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r2, #4 - ldr r1, _0201A198 @ =0x022A4E58 - rsb r3, r4, r4, lsl #7 - lsl r0, r0, #0x10 - add r3, r0, r3, asr #8 - ldr r0, [r1, #8] - add r1, sp, #0 - str r3, [sp, #0xc] - str r2, [sp] - bl FUN_0206db3c -_0201A178: - ldr r0, _0201A198 @ =0x022A4E58 - strh r4, [r0, #0x4a] -_0201A180: - ldr r0, _0201A190 @ =0x020AFB28 - bl FUN_02002e98 - add sp, sp, #0x14 - pop {r4, r5, pc} - .align 2, 0 -_0201A190: .4byte 0x020AFB28 -_0201A194: .4byte 0x020995F8 -_0201A198: .4byte 0x022A4E58 - arm_func_end ChangeBgm2 - - arm_func_start FUN_0201a19c -FUN_0201a19c: @ 0x0201A19C - push {r4, lr} - ldr r0, _0201A1C0 @ =0x020AFB28 - bl FUN_02002cb4 - ldr r1, _0201A1C4 @ =0x022A4E58 - ldr r0, _0201A1C0 @ =0x020AFB28 - ldrh r4, [r1, #0x68] - bl FUN_02002e98 - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_0201A1C0: .4byte 0x020AFB28 -_0201A1C4: .4byte 0x022A4E58 - arm_func_end FUN_0201a19c - - arm_func_start PlayME -PlayME: @ 0x0201A1C8 - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x98 - mov r6, r0 - ldr r0, _0201A3F0 @ =0x020AFB28 - mov r5, r1 - mov r4, r2 - bl FUN_02002cb4 - ldr r1, _0201A3F4 @ =0x0209960C - mov r2, r6 - mov r3, r4 - mov r0, #7 - str r5, [sp] - bl DebugPrint - ldr r7, _0201A3F8 @ =0x022A4E58 - cmp r6, #0xd - ldr r0, [r7, #0x18] - movhi r6, #0 - cmp r0, #0 - bne _0201A2B0 - mov r0, #1 - str r0, [r7, #0x18] - str r0, [r7, #0x64] - ldr r8, _0201A3F0 @ =0x020AFB28 - strh r6, [r7, #0x68] -_0201A228: - ldr r0, [r7, #0x1c] - cmp r0, #0 - beq _0201A268 - cmp r0, #2 - bne _0201A250 - ldr r0, _0201A3F8 @ =0x022A4E58 - mov r1, #0 - ldr r0, [r0] - bl FUN_0206da9c - b _0201A268 -_0201A250: - mov r0, r8 - bl FUN_02002e98 - bl FUN_02003ab0 - mov r0, r8 - bl FUN_02002cb4 - b _0201A228 -_0201A268: - ldr r8, _0201A3F0 @ =0x020AFB28 - ldr r7, _0201A3F8 @ =0x022A4E58 -_0201A270: - ldr r0, [r7, #0x44] - cmp r0, #0 - beq _0201A304 - cmp r0, #2 - bne _0201A298 - ldr r0, _0201A3F8 @ =0x022A4E58 - mov r1, #0 - ldr r0, [r0, #8] - bl FUN_0206da9c - b _0201A304 -_0201A298: - mov r0, r8 - bl FUN_02002e98 - bl FUN_02003ab0 - mov r0, r8 - bl FUN_02002cb4 - b _0201A270 -_0201A2B0: - ldr r0, [r7, #0x64] - cmp r0, #2 - bne _0201A304 - ldr r0, _0201A3F0 @ =0x020AFB28 - bl FUN_02002e98 - mov r0, #0 - bl StopME - ldr r0, _0201A3F0 @ =0x020AFB28 - bl FUN_02002cb4 - ldr r8, _0201A3F0 @ =0x020AFB28 - b _0201A2F0 -_0201A2DC: - mov r0, r8 - bl FUN_02002e98 - bl FUN_02003ab0 - mov r0, r8 - bl FUN_02002cb4 -_0201A2F0: - ldr r0, [r7, #0x10] - bl FUN_0206d9a4 - cmp r0, #0 - bne _0201A2DC - bl FUN_02019508 -_0201A304: - ldr r1, _0201A3F8 @ =0x022A4E58 - mov r0, #1 - str r0, [r1, #0x18] - str r0, [r1, #0x64] - ldr r0, _0201A3F0 @ =0x020AFB28 - strh r6, [r1, #0x68] - bl FUN_02002e98 - ldr r1, _0201A3FC @ =0x02099620 - add r0, sp, #0x18 - mov r2, r6 - bl Sprintf - ldr r0, _0201A400 @ =0x022A4ECC - add r1, sp, #0x18 - bl FUN_02019314 - ldr r1, _0201A404 @ =0x02099634 - add r0, sp, #0x18 - bl Sprintf - ldr r0, _0201A408 @ =0x022A4EC4 - add r1, sp, #0x18 - bl FUN_02019314 - ldr r0, _0201A3F0 @ =0x020AFB28 - bl FUN_02002cb4 - ldr r0, _0201A3F8 @ =0x022A4E58 - mov r1, #0 - ldr r0, [r0, #0x6c] - mov r2, r1 - bl FUN_0206d108 - ldr r1, _0201A3F8 @ =0x022A4E58 - str r0, [r1, #0x14] - ldr r0, [r1, #0x74] - bl FUN_0206d808 - ldr r1, _0201A3F8 @ =0x022A4E58 - mov r2, #4 - str r0, [r1, #0x10] - mov r0, #0x3e8 - mul r0, r5, r0 - mov r1, #0x3c - str r2, [sp, #4] - bl DivideInt - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - rsb r1, r4, r4, lsl #7 - lsl r0, r0, #0x10 - add r0, r0, r1, asr #8 - str r0, [sp, #0x10] - mov r0, #4 - str r0, [sp, #4] - ldr r0, _0201A3F8 @ =0x022A4E58 - add r1, sp, #4 - ldr r0, [r0, #0x10] - mov r2, #1 - bl ResumeBgm - ldr r1, _0201A3F8 @ =0x022A4E58 - mov r2, #2 - ldr r0, _0201A3F0 @ =0x020AFB28 - str r2, [r1, #0x64] - bl FUN_02002e98 - add sp, sp, #0x98 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0201A3F0: .4byte 0x020AFB28 -_0201A3F4: .4byte 0x0209960C -_0201A3F8: .4byte 0x022A4E58 -_0201A3FC: .4byte 0x02099620 -_0201A400: .4byte 0x022A4ECC -_0201A404: .4byte 0x02099634 -_0201A408: .4byte 0x022A4EC4 - arm_func_end PlayME - - arm_func_start StopME -StopME: @ 0x0201A40C - push {r4, lr} - mov r4, r0 - ldr r0, _0201A474 @ =0x020AFB28 - bl FUN_02002cb4 - ldr r1, _0201A478 @ =0x02099644 - mov r2, r4 - mov r0, #7 - bl DebugPrint - ldr r0, _0201A47C @ =0x022A4E58 - ldr r1, [r0, #0x18] - cmp r1, #1 - ldreq r0, [r0, #0x64] - cmpeq r0, #2 - bne _0201A468 - mov r0, #0x3e8 - mul r0, r4, r0 - mov r1, #0x3c - bl DivideInt - lsl r1, r0, #0x10 - ldr r2, _0201A47C @ =0x022A4E58 - lsr r1, r1, #0x10 - ldr r0, [r2, #0x10] - bl FUN_0206da9c -_0201A468: - ldr r0, _0201A474 @ =0x020AFB28 - bl FUN_02002e98 - pop {r4, pc} - .align 2, 0 -_0201A474: .4byte 0x020AFB28 -_0201A478: .4byte 0x02099644 -_0201A47C: .4byte 0x022A4E58 - arm_func_end StopME - - arm_func_start FUN_0201a480 -FUN_0201a480: @ 0x0201A480 - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - asr r1, r7, #8 - ldr r0, _0201A4F4 @ =0x020AFB28 - and r5, r7, #0xff - and r4, r1, #0xff - mov r6, #0 - bl FUN_02002cb4 - cmp r5, #0 - cmpne r4, #0x3f - beq _0201A4E4 - cmp r4, #1 - bne _0201A4D4 - ldr r0, _0201A4F8 @ =0x022A4E58 - lsl r1, r5, #0x10 - ldr r0, [r0, #0x88] - lsr r1, r1, #0x10 - bl FUN_0206ed30 - cmp r0, #0 - movgt r6, #1 - b _0201A4E4 -_0201A4D4: - ldr r0, _0201A4F8 @ =0x022A4E58 - ldrh r0, [r0, #0x98] - cmp r0, r7 - moveq r6, #1 -_0201A4E4: - ldr r0, _0201A4F4 @ =0x020AFB28 - bl FUN_02002e98 - mov r0, r6 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0201A4F4: .4byte 0x020AFB28 -_0201A4F8: .4byte 0x022A4E58 - arm_func_end FUN_0201a480 - - arm_func_start PlaySe -PlaySe: @ 0x0201A4FC - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x14 - mov r5, r0 - asr r2, r5, #8 - ldr r0, _0201A660 @ =0x020AFB28 - mov r7, r1 - and r6, r2, #0xff - and r4, r5, #0xff - bl FUN_02002cb4 - ldr r1, _0201A664 @ =0x02099650 - mov r2, r5 - mov r3, r7 - mov r0, #8 - bl DebugPrint - rsb r0, r7, r7, lsl #7 - asr r0, r0, #8 - mov r1, #4 - str r0, [sp, #0xc] - str r1, [sp] - cmp r4, #0 - beq _0201A650 - cmp r6, #0x3f - bne _0201A578 - ldr r3, _0201A668 @ =0x022A4E58 - add r2, sp, #0 - ldr r0, [r3, #0x7c] - mov r1, #0 - add r0, r0, r4, lsl #16 - str r0, [r3, #0x84] - bl FUN_0206edfc - b _0201A650 -_0201A578: - cmp r6, #1 - bne _0201A5A0 - ldr r3, _0201A668 @ =0x022A4E58 - add r2, sp, #0 - ldr r0, [r3, #0x88] - mov r1, #0 - add r0, r0, r4, lsl #16 - str r0, [r3, #0x90] - bl FUN_0206edfc - b _0201A650 -_0201A5A0: - ldr r0, _0201A668 @ =0x022A4E58 - mov r1, #1 - ldrh r2, [r0, #0x98] - ldr r3, [r0, #0x94] - str r1, [r0, #0x94] - cmp r3, #0 - strh r5, [r0, #0x98] - cmpne r2, #0x3f00 - beq _0201A60C - mov r1, #0 - ldr r0, [r0, #0xdc] - mov r2, r1 - bl FUN_0206f38c - ldr r8, _0201A660 @ =0x020AFB28 - mov r7, #0 - ldr r6, _0201A668 @ =0x022A4E58 - b _0201A5F8 -_0201A5E4: - mov r0, r8 - bl FUN_02002e98 - bl FUN_02003ab0 - mov r0, r8 - bl FUN_02002cb4 -_0201A5F8: - ldr r0, [r6, #0xdc] - mov r1, r7 - bl FUN_0206ed30 - cmp r0, #0 - bgt _0201A5E4 -_0201A60C: - mov r0, r5 - bl PlaySeLoad - cmp r0, #0 - ldreq r0, _0201A668 @ =0x022A4E58 - mov r1, #0 - streq r1, [r0, #0x94] - moveq r1, #0x3f00 - strheq r1, [r0, #0x98] - beq _0201A650 - ldr r3, _0201A668 @ =0x022A4E58 - mov r0, #2 - str r0, [r3, #0x94] - ldr r0, [r3, #0xc8] - add r2, sp, #0 - add r0, r0, r4, lsl #16 - str r0, [r3, #0xdc] - bl FUN_0206edfc -_0201A650: - ldr r0, _0201A660 @ =0x020AFB28 - bl FUN_02002e98 - add sp, sp, #0x14 - pop {r3, r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0201A660: .4byte 0x020AFB28 -_0201A664: .4byte 0x02099650 -_0201A668: .4byte 0x022A4E58 - arm_func_end PlaySe - - arm_func_start PlaySeFullSpec -PlaySeFullSpec: @ 0x0201A66C - push {r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x1c - mov sb, r0 - asr r4, sb, #8 - ldr r0, _0201A81C @ =0x020AFB28 - mov r8, r1 - mov r7, r2 - mov r6, r3 - and r4, r4, #0xff - and r5, sb, #0xff - bl FUN_02002cb4 - str r7, [sp] - str r6, [sp, #4] - mov r0, #8 - ldr r1, _0201A820 @ =0x02099660 - mov r2, sb - mov r3, r8 - bl DebugPrint - mov r0, #4 - str r0, [sp, #8] - mov r0, #0x3e8 - mul r0, r8, r0 - mov r1, #0x3c - bl DivideInt - rsb r2, r7, r7, lsl #7 - rsb r1, r6, r6, lsl #6 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - lsl r0, r0, #0x10 - add r0, r0, r2, asr #8 - str r0, [sp, #0x14] - cmp r5, #0 - asr r0, r1, #7 - add r0, r1, r0, lsr #24 - asr r0, r0, #8 - add r0, r0, #0x40 - str r0, [sp, #0x18] - mov r0, #0xc - str r0, [sp, #8] - beq _0201A80C - cmp r4, #0x3f - bne _0201A734 - ldr r3, _0201A824 @ =0x022A4E58 - add r2, sp, #8 - ldr r0, [r3, #0x7c] - mov r1, #0 - add r0, r0, r5, lsl #16 - str r0, [r3, #0x84] - bl FUN_0206edfc - b _0201A80C -_0201A734: - cmp r4, #1 - bne _0201A75C - ldr r3, _0201A824 @ =0x022A4E58 - add r2, sp, #8 - ldr r0, [r3, #0x88] - mov r1, #0 - add r0, r0, r5, lsl #16 - str r0, [r3, #0x90] - bl FUN_0206edfc - b _0201A80C -_0201A75C: - ldr r0, _0201A824 @ =0x022A4E58 - mov r1, #1 - ldrh r2, [r0, #0x98] - ldr r3, [r0, #0x94] - str r1, [r0, #0x94] - cmp r3, #0 - strh sb, [r0, #0x98] - cmpne r2, #0x3f00 - beq _0201A7C8 - mov r1, #0 - ldr r0, [r0, #0xdc] - mov r2, r1 - bl FUN_0206f38c - ldr r7, _0201A81C @ =0x020AFB28 - mov r6, #0 - ldr r4, _0201A824 @ =0x022A4E58 - b _0201A7B4 -_0201A7A0: - mov r0, r7 - bl FUN_02002e98 - bl FUN_02003ab0 - mov r0, r7 - bl FUN_02002cb4 -_0201A7B4: - ldr r0, [r4, #0xdc] - mov r1, r6 - bl FUN_0206ed30 - cmp r0, #0 - bgt _0201A7A0 -_0201A7C8: - mov r0, sb - bl PlaySeLoad - cmp r0, #0 - ldreq r0, _0201A824 @ =0x022A4E58 - mov r1, #0 - streq r1, [r0, #0x94] - moveq r1, #0x3f00 - strheq r1, [r0, #0x98] - beq _0201A80C - ldr r3, _0201A824 @ =0x022A4E58 - mov r0, #2 - str r0, [r3, #0x94] - ldr r0, [r3, #0xc8] - add r2, sp, #8 - add r0, r0, r5, lsl #16 - str r0, [r3, #0xdc] - bl FUN_0206edfc -_0201A80C: - ldr r0, _0201A81C @ =0x020AFB28 - bl FUN_02002e98 - add sp, sp, #0x1c - pop {r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0201A81C: .4byte 0x020AFB28 -_0201A820: .4byte 0x02099660 -_0201A824: .4byte 0x022A4E58 - arm_func_end PlaySeFullSpec - - arm_func_start SeChangeVolume -SeChangeVolume: @ 0x0201A828 - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x18 - mov r8, r0 - asr r3, r8, #8 - ldr r0, _0201A8F4 @ =0x020AFB28 - mov r7, r1 - mov r6, r2 - and r4, r3, #0xff - and r5, r8, #0xff - bl FUN_02002cb4 - ldr r1, _0201A8F8 @ =0x02099684 - mov r2, r8 - mov r3, r7 - str r6, [sp] - mov r0, #8 - bl DebugPrint - mov r0, #0x3e8 - mul r0, r7, r0 - mov r1, #4 - str r1, [sp, #4] - mov r1, #0x3c - bl DivideInt - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - mov r0, #4 - rsb r2, r6, r6, lsl #7 - str r0, [sp, #4] - lsl r0, r1, #0x10 - add r0, r0, r2, asr #8 - str r0, [sp, #0x10] - cmp r5, #0 - beq _0201A8E4 - cmp r4, #0x3f - ldreq r0, _0201A8FC @ =0x022A4E58 - ldreq r0, [r0, #0x7c] - addeq r0, r0, r5, lsl #16 - beq _0201A8D8 - cmp r4, #1 - ldreq r0, _0201A8FC @ =0x022A4E58 - ldreq r0, [r0, #0x88] - addeq r0, r0, r5, lsl #16 - ldrne r0, _0201A8FC @ =0x022A4E58 - ldrne r0, [r0, #0xc8] - addne r0, r0, r5, lsl #16 -_0201A8D8: - add r2, sp, #4 - mov r1, #0 - bl FUN_0206f5c8 -_0201A8E4: - ldr r0, _0201A8F4 @ =0x020AFB28 - bl FUN_02002e98 - add sp, sp, #0x18 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0201A8F4: .4byte 0x020AFB28 -_0201A8F8: .4byte 0x02099684 -_0201A8FC: .4byte 0x022A4E58 - arm_func_end SeChangeVolume - - arm_func_start SeChangePan -SeChangePan: @ 0x0201A900 - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x18 - mov r8, r0 - asr r3, r8, #8 - ldr r0, _0201A9D8 @ =0x020AFB28 - mov r7, r1 - mov r6, r2 - and r4, r3, #0xff - and r5, r8, #0xff - bl FUN_02002cb4 - ldr r1, _0201A9DC @ =0x020996A4 - mov r2, r8 - mov r3, r7 - str r6, [sp] - mov r0, #8 - bl DebugPrint - mov r0, #0x3e8 - mul r0, r7, r0 - mov r1, #4 - str r1, [sp, #4] - mov r1, #0x3c - bl DivideInt - rsb r2, r6, r6, lsl #6 - asr r1, r2, #7 - add r1, r2, r1, lsr #24 - asr r2, r1, #8 - lsl r0, r0, #0x10 - mov r1, #8 - str r1, [sp, #4] - add r1, r2, #0x40 - lsr r0, r0, #0x10 - add r0, r1, r0, lsl #16 - str r0, [sp, #0x14] - cmp r5, #0 - beq _0201A9C8 - cmp r4, #0x3f - ldreq r0, _0201A9E0 @ =0x022A4E58 - ldreq r0, [r0, #0x7c] - addeq r0, r0, r5, lsl #16 - beq _0201A9BC - cmp r4, #1 - ldreq r0, _0201A9E0 @ =0x022A4E58 - ldreq r0, [r0, #0x88] - addeq r0, r0, r5, lsl #16 - ldrne r0, _0201A9E0 @ =0x022A4E58 - ldrne r0, [r0, #0xc8] - addne r0, r0, r5, lsl #16 -_0201A9BC: - add r2, sp, #4 - mov r1, #0 - bl FUN_0206f5c8 -_0201A9C8: - ldr r0, _0201A9D8 @ =0x020AFB28 - bl FUN_02002e98 - add sp, sp, #0x18 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0201A9D8: .4byte 0x020AFB28 -_0201A9DC: .4byte 0x020996A4 -_0201A9E0: .4byte 0x022A4E58 - arm_func_end SeChangePan - - arm_func_start StopSe -StopSe: @ 0x0201A9E4 - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - asr r2, r7, #8 - ldr r0, _0201AA94 @ =0x020AFB28 - mov r5, r1 - and r6, r2, #0xff - and r4, r7, #0xff - bl FUN_02002cb4 - ldr r1, _0201AA98 @ =0x020996C0 - mov r2, r7 - mov r3, r5 - mov r0, #8 - bl DebugPrint - cmp r7, #0x3f00 - bne _0201AA2C - mov r0, #0 - bl FUN_0206f4e0 - b _0201AA88 -_0201AA2C: - cmp r4, #0 - beq _0201AA88 - cmp r6, #0x3f - ldreq r0, _0201AA9C @ =0x022A4E58 - ldreq r0, [r0, #0x7c] - addeq r4, r0, r4, lsl #16 - beq _0201AA64 - cmp r6, #1 - ldreq r0, _0201AA9C @ =0x022A4E58 - ldreq r0, [r0, #0x88] - addeq r4, r0, r4, lsl #16 - ldrne r0, _0201AA9C @ =0x022A4E58 - ldrne r0, [r0, #0xc8] - addne r4, r0, r4, lsl #16 -_0201AA64: - mov r0, #0x3e8 - mul r0, r5, r0 - mov r1, #0x3c - bl DivideInt - lsl r1, r0, #0x10 - lsr r2, r1, #0x10 - mov r0, r4 - mov r1, #0 - bl FUN_0206f38c -_0201AA88: - ldr r0, _0201AA94 @ =0x020AFB28 - bl FUN_02002e98 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0201AA94: .4byte 0x020AFB28 -_0201AA98: .4byte 0x020996C0 -_0201AA9C: .4byte 0x022A4E58 - arm_func_end StopSe - - arm_func_start FUN_0201aaa0 -FUN_0201aaa0: @ 0x0201AAA0 - asr r0, r0, #8 - and r0, r0, #0xff - cmp r0, #0x3f - cmpne r0, #1 - moveq r0, #1 - movne r0, #0 - bx lr - arm_func_end FUN_0201aaa0 -_0201AABC: - .byte 0x10, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x3C, 0x20, 0x91, 0xE5, 0x01, 0x20, 0x82, 0xE2, 0x3C, 0x20, 0x81, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x58, 0x4E, 0x2A, 0x02 - - arm_func_start FUN_0201aad8 -FUN_0201aad8: @ 0x0201AAD8 - ldrb ip, [sp] - cmp ip, #1 - cmpne ip, #2 - lsleq r3, r3, #1 - str r3, [r0] - str r2, [r0, #4] - str r1, [r0, #8] - ldrb r2, [sp] - ldrh r1, [sp, #4] - strb r2, [r0, #0xe] - strh r1, [r0, #0xc] - mov r0, r3 - bx lr - arm_func_end FUN_0201aad8 - - arm_func_start FUN_0201ab0c -FUN_0201ab0c: @ 0x0201AB0C - push {r3, lr} - mov ip, r0 - ldr r1, [ip, #4] - cmp r1, #0 - beq _0201AB7C - ldrb r0, [ip, #0xe] - cmp r0, #0 - bne _0201AB40 - mov r0, r1 - ldr r1, [ip, #8] - ldr r2, [ip] - bl FUN_0207c330 - pop {r3, pc} -_0201AB40: - cmp r0, #1 - bne _0201AB60 - ldr r2, [ip] - ldrh r3, [ip, #0xc] - ldr r0, [ip, #8] - asr r2, r2, #1 - bl FUN_01FF8000 - pop {r3, pc} -_0201AB60: - cmp r0, #2 - popne {r3, pc} - ldr r2, [ip] - ldr r0, [ip, #8] - asr r2, r2, #1 - bl FUN_01FF80B0 - pop {r3, pc} -_0201AB7C: - ldr r1, [ip, #8] - ldr r2, [ip] - mov r0, #0 - bl FUN_0207c314 - pop {r3, pc} - arm_func_end FUN_0201ab0c - - arm_func_start FUN_0201ab90 -FUN_0201ab90: @ 0x0201AB90 - ldr ip, _0201ABA8 @ =MemZero - add r2, r0, #0xe00 - mov r3, #0 - mov r1, #0xe00 - strh r3, [r2] - bx ip - .align 2, 0 -_0201ABA8: .4byte MemZero - arm_func_end FUN_0201ab90 - - arm_func_start FUN_0201abac -FUN_0201abac: @ 0x0201ABAC - push {r3, r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x18 - mov r7, #0 - mov sb, r0 - mov r8, r1 - mov r6, r7 - add r5, sp, #8 - b _0201ABF8 -_0201ABCC: - str r6, [sp] - str r6, [sp, #4] - ldr r2, [sb], #0xc - mov r0, r5 - mov r1, r8 - bl FUN_0201aad8 - mov r4, r0 - mov r0, r5 - bl FUN_0201ab0c - add r8, r8, r4 - add r7, r7, r4 -_0201ABF8: - ldr r3, [sb, #4] - cmp r3, #0 - bne _0201ABCC - mov r0, r7 - add sp, sp, #0x18 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_0201abac - - arm_func_start FUN_0201ac10 -FUN_0201ac10: @ 0x0201AC10 - add r0, r0, #0xe00 - mov r1, #0 - strh r1, [r0] - bx lr - arm_func_end FUN_0201ac10 - - arm_func_start FUN_0201ac20 -FUN_0201ac20: @ 0x0201AC20 - push {r4, lr} - sub sp, sp, #8 - ldrb lr, [sp, #0x10] - ldrh ip, [sp, #0x14] - mov r4, r0 - str lr, [sp] - str ip, [sp, #4] - add r0, r4, #0xe00 - ldrsh r0, [r0] - add r0, r4, r0, lsl #4 - bl FUN_0201aad8 - add r0, r4, #0xe00 - ldrsh r1, [r0] - add r1, r1, #1 - strh r1, [r0] - add sp, sp, #8 - pop {r4, pc} - arm_func_end FUN_0201ac20 - - arm_func_start FUN_0201ac64 -FUN_0201ac64: @ 0x0201AC64 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #8 - mov sl, r0 - mov sb, r1 - mov r8, r2 - mov r7, r3 - ldr r6, [sp, #0x30] - add r4, sl, #0xe00 - mov fp, #1 - mov r5, #0 - b _0201AD30 -_0201AC90: - ldrsh r0, [r4] - cmp r0, #0xe0 - bge _0201AD3C - cmp r7, #0 - beq _0201ACB8 - cmp r7, #1 - beq _0201ACD8 - cmp r7, #2 - beq _0201ACF8 - b _0201AD1C -_0201ACB8: - str r5, [sp] - str r5, [sp, #4] - ldr r2, [sb] - mov r1, r8 - add r0, sl, r0, lsl #4 - bl FUN_0201aad8 - mov r3, r0 - b _0201AD1C -_0201ACD8: - str fp, [sp] - str r6, [sp, #4] - ldr r2, [sb] - mov r1, r8 - add r0, sl, r0, lsl #4 - bl FUN_0201aad8 - mov r3, r0 - b _0201AD1C -_0201ACF8: - mov r1, #2 - str r1, [sp] - mov r1, #0 - str r1, [sp, #4] - ldr r2, [sb] - mov r1, r8 - add r0, sl, r0, lsl #4 - bl FUN_0201aad8 - mov r3, r0 -_0201AD1C: - ldrsh r0, [r4] - add r8, r8, r3 - add sb, sb, #0xc - add r0, r0, #1 - strh r0, [r4] -_0201AD30: - ldr r3, [sb, #4] - cmp r3, #0 - bne _0201AC90 -_0201AD3C: - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0201ac64 - - arm_func_start FUN_0201ad44 -FUN_0201ad44: @ 0x0201AD44 - push {r4, r5, r6, lr} - mov r6, r0 - add r0, r6, #0xe00 - ldrsh r5, [r0] - mov r4, #0 - b _0201AD70 -_0201AD5C: - add r0, r6, r4, lsl #4 - bl FUN_0201ab0c - add r0, r4, #1 - lsl r0, r0, #0x10 - asr r4, r0, #0x10 -_0201AD70: - cmp r4, r5 - blt _0201AD5C - pop {r4, r5, r6, pc} - arm_func_end FUN_0201ad44 - - arm_func_start FUN_0201AD7C -FUN_0201AD7C: @ 0x0201AD7C - add r0, r0, #0x14 - bx lr - arm_func_end FUN_0201AD7C - - arm_func_start FUN_0201AD84 -FUN_0201AD84: @ 0x0201AD84 - add r0, r0, #0x50 - bx lr - arm_func_end FUN_0201AD84 - - arm_func_start FUN_0201ad8c -FUN_0201ad8c: @ 0x0201AD8C - push {r3, r4, r5, lr} - mov r4, r0 - mov r0, r2 - mov r5, #0 - mov ip, #1 - b _0201ADC0 -_0201ADA4: - add r2, r1, r5 - and r2, r2, #0xff - ldrh lr, [r4, #0x7a] - asr r2, r2, #4 - add r5, r5, #0x10 - orr r2, lr, ip, lsl r2 - strh r2, [r4, #0x7a] -_0201ADC0: - cmp r5, r0 - blt _0201ADA4 - lsr ip, r0, #0x1f - rsb r2, ip, r0, lsl #28 - adds r2, ip, r2, ror #28 - beq _0201ADF8 - add r2, r1, r0 - sub r2, r2, #1 - and r2, r2, #0xff - ldrh lr, [r4, #0x7a] - asr r2, r2, #4 - mov ip, #1 - orr r2, lr, ip, lsl r2 - strh r2, [r4, #0x7a] -_0201ADF8: - lsl r1, r1, #0x10 - mov r2, r3 - mov r3, r0 - add r0, r4, #0x14 - lsr r1, r1, #0x10 - bl FUN_0200a5b0 - add r0, r4, #0x14 - bl FUN_0200a504 - pop {r3, r4, r5, pc} - arm_func_end FUN_0201ad8c - - arm_func_start FUN_0201ae1c -FUN_0201ae1c: @ 0x0201AE1C - push {r4, r5, r6, lr} - mov r4, r0 + movgt r2, #0x10 +_022BD1EC: mov lr, #0 - add ip, r4, r1, lsl #1 - mov r5, #1 - b _0201AE50 -_0201AE34: - add r0, r2, lr - and r0, r0, #0xff - ldrh r6, [ip, #0x7c] - asr r0, r0, #4 - add lr, lr, #0x10 - orr r0, r6, r5, lsl r0 - strh r0, [ip, #0x7c] -_0201AE50: - cmp lr, r3 - blt _0201AE34 - lsr ip, r3, #0x1f - rsb r0, ip, r3, lsl #28 - adds r0, ip, r0, ror #28 - beq _0201AE90 - add r0, r2, r3 - sub r0, r0, #1 - and r0, r0, #0xff - add r6, r4, #0x7c - lsl r5, r1, #1 - ldrh lr, [r6, r5] - asr r0, r0, #4 - mov ip, #1 - orr r0, lr, ip, lsl r0 - strh r0, [r6, r5] -_0201AE90: - add r0, r2, r1, lsl #8 - lsl r1, r0, #0x10 - ldr r2, [sp, #0x10] - add r0, r4, #0x50 - lsr r1, r1, #0x10 - bl FUN_0200a5b0 - add r0, r4, #0x50 - bl FUN_0200a504 - pop {r4, r5, r6, pc} - arm_func_end FUN_0201ae1c -_0201AEB4: - .byte 0xBA, 0x37, 0xD0, 0xE1, 0x41, 0x12, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE3 - .byte 0x12, 0x11, 0x83, 0xE1, 0xBA, 0x17, 0xC0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0201aecc -FUN_0201aecc: @ 0x0201AECC - push {r3, lr} - add lr, r0, #0x7c - lsl ip, r1, #1 - ldrh r3, [lr, ip] - asr r0, r2, #4 - mov r1, #1 - orr r0, r3, r1, lsl r0 - strh r0, [lr, ip] - pop {r3, pc} - arm_func_end FUN_0201aecc - - arm_func_start FUN_0201aef0 -FUN_0201aef0: @ 0x0201AEF0 - push {r3, r4, r5, lr} - mov r4, r1 - mov r5, r0 - mov r1, #0x9c - bl MemZero - strb r4, [r5, #0x79] - ldrb r0, [r5, #0x78] - orr r0, r0, #2 - strb r0, [r5, #0x78] - pop {r3, r4, r5, pc} - arm_func_end FUN_0201aef0 - - arm_func_start FUN_0201af18 -FUN_0201af18: @ 0x0201AF18 - push {r3, r4, lr} - sub sp, sp, #4 - mov r3, r1 - mov r1, #0 - mov r2, #0x100 - mov r4, r0 - str r1, [sp] - bl FUN_0200a124 - mov r2, #0 - mov r1, r4 - str r2, [sp] - add r0, r4, #0x14 - mov r3, #0x100 - bl FUN_0200a478 - ldrb r0, [r4, #0x78] - orr r0, r0, #4 - strb r0, [r4, #0x78] - add sp, sp, #4 - pop {r3, r4, pc} - arm_func_end FUN_0201af18 - - arm_func_start FUN_0201af64 -FUN_0201af64: @ 0x0201AF64 - push {r3, r4, lr} - sub sp, sp, #4 - mov r4, r0 - mov r3, r1 - mov ip, #0 - add r0, r4, #0x3c - mov r1, #2 - mov r2, #0x1000 - str ip, [sp] - bl FUN_0200a124 - mov r2, #0 - str r2, [sp] - add r0, r4, #0x50 - add r1, r4, #0x3c - mov r3, #0x1000 - bl FUN_0200a478 - ldrb r0, [r4, #0x78] - orr r0, r0, #8 - strb r0, [r4, #0x78] - add sp, sp, #4 - pop {r3, r4, pc} - arm_func_end FUN_0201af64 - - arm_func_start FUN_0201afb8 -FUN_0201afb8: @ 0x0201AFB8 - push {r4, lr} - mov r4, r0 - ldrb r0, [r4, #0x78] - lsl r0, r0, #0x1d - lsrs r0, r0, #0x1f - beq _0201AFE0 - add r0, r4, #0x14 - bl FUN_0200a510 - mov r0, r4 - bl FUN_0200a180 -_0201AFE0: - ldrb r0, [r4, #0x78] - lsl r0, r0, #0x1c - lsrs r0, r0, #0x1f - popeq {r4, pc} - add r0, r4, #0x50 - bl FUN_0200a510 - add r0, r4, #0x3c - bl FUN_0200a180 - pop {r4, pc} - arm_func_end FUN_0201afb8 - - arm_func_start FUN_0201b004 -FUN_0201b004: @ 0x0201B004 - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - ldrb r1, [r7, #0x78] - lsl r2, r1, #0x1d - lsrs r2, r2, #0x1f - beq _0201B158 - lsl r1, r1, #0x1f - lsrs r1, r1, #0x1f - beq _0201B14C - ldrb r0, [r7, #8] - cmp r0, #0 - beq _0201B150 - mov r4, #0 -_0201B038: - lsl r2, r4, #4 - and r0, r2, #0xff - ldrh r1, [r7, #0x7a] - asr r0, r0, #4 - mov r3, #1 - tst r1, r3, lsl r0 - moveq r3, #0 - tst r3, #0xff - beq _0201B12C - lsl r0, r2, #0x10 - ldr r1, [r7, #0x10] - asr r3, r0, #0x10 - add r5, r1, r3, lsl #1 - ldr r2, [r7, #0xc] - mov r0, r5 - mov r1, #0x20 - add r6, r2, r3, lsl #1 - bl FUN_0207a2dc - ldr r0, [r7] - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _0201B0A4 -_0201B090: @ jump table - b _0201B0A4 @ case 0 - b _0201B0C0 @ case 1 - b _0201B0DC @ case 2 - b _0201B0F8 @ case 3 - b _0201B114 @ case 4 -_0201B0A4: - mov r1, #0 -_0201B0A8: - ldrh r0, [r5], #2 - add r1, r1, #1 - cmp r1, #0x10 - strh r0, [r6], #2 - blt _0201B0A8 - b _0201B12C -_0201B0C0: - bl FUN_020783d0 - mov r0, r6 - mov r1, r5 - mov r2, #0x20 - bl Memcpy32 - bl FUN_02078470 - b _0201B12C -_0201B0DC: - bl FUN_020784b8 - mov r0, r6 - mov r1, r5 - mov r2, #0x20 - bl Memcpy32 - bl FUN_02078500 - b _0201B12C -_0201B0F8: - bl FUN_02078544 - mov r0, r6 - mov r1, r5 - mov r2, #0x20 - bl Memcpy32 - bl FUN_0207855c - b _0201B12C -_0201B114: - bl FUN_0207859c - mov r0, r6 - mov r1, r5 - mov r2, #0x20 - bl Memcpy32 - bl FUN_020785b4 -_0201B12C: - add r0, r4, #1 - lsl r0, r0, #0x10 - asr r4, r0, #0x10 - cmp r4, #0x10 - blt _0201B038 - mov r0, #0 - strb r0, [r7, #8] - b _0201B150 -_0201B14C: - bl FUN_0200a184 -_0201B150: - mov r0, #0 - strh r0, [r7, #0x7a] -_0201B158: - ldrb r0, [r7, #0x78] - lsl r0, r0, #0x1c - lsrs r0, r0, #0x1f - popeq {r3, r4, r5, r6, r7, pc} - add r0, r7, #0x3c - bl FUN_0200a184 - mov r3, #0 - mov r2, r3 -_0201B178: - add r0, r3, #1 - lsl r0, r0, #0x10 - add r1, r7, r3, lsl #1 - asr r3, r0, #0x10 - strh r2, [r1, #0x7c] - cmp r3, #0x10 - blt _0201B178 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0201b004 - - arm_func_start FUN_0201b198 -FUN_0201b198: @ 0x0201B198 - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #4 - ldr r5, [sp, #0x20] - mov r8, r1 - mov r4, r0 - mov r1, #0x70 - mov r7, r2 - mov r6, r3 - bl MemZero - strb r5, [r4, #0xe] - strb r6, [r4] - stmib r4, {r7, r8} - ldr r0, [r4, #4] - bl FUN_0201ac10 - mov r0, #2 - strh r0, [r4, #0xc] - cmp r6, #0 - moveq r0, #0x6400000 - movne r0, #0x6600000 - str r0, [r4, #0x64] - cmp r5, #0 - bne _0201B210 - mov ip, #0 - add r0, r4, #0x20 - mov r1, #0x70 - mov r2, #0x140 - mov r3, #0x7000000 - str ip, [sp] - bl FUN_0200b508 - b _0201B284 -_0201B210: - cmp r5, #1 - bne _0201B238 - ldr r3, _0201B294 @ =0x07000400 - mov ip, #0 - add r0, r4, #0x20 - mov r1, #0x70 - mov r2, #0x140 - str ip, [sp] - bl FUN_0200b508 - b _0201B284 -_0201B238: - cmp r5, #2 - bne _0201B260 - ldr r3, _0201B298 @ =0x07000380 - mov ip, #0 - add r0, r4, #0x20 - mov r1, #0x10 - mov r2, #0x140 - str ip, [sp] - bl FUN_0200b508 - b _0201B284 -_0201B260: - cmp r5, #3 - bne _0201B284 - ldr r3, _0201B29C @ =0x07000780 - mov ip, #0 - add r0, r4, #0x20 - mov r1, #0x10 - mov r2, #0x140 - str ip, [sp] - bl FUN_0200b508 -_0201B284: - mov r0, r4 - bl FUN_0201b2a0 - add sp, sp, #4 - pop {r3, r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0201B294: .4byte 0x07000400 -_0201B298: .4byte 0x07000380 -_0201B29C: .4byte 0x07000780 - arm_func_end FUN_0201b198 - - arm_func_start FUN_0201b2a0 -FUN_0201b2a0: @ 0x0201B2A0 - push {r4, lr} - mov r4, r0 - mov r0, #0 - str r0, [r4, #0x40] - add r0, r4, #0x20 - bl FUN_0200b67c - ldrb r0, [r4, #0x1c] - cmp r0, #0 - popeq {r4, pc} - add r0, r4, #0x10 - mov r1, #0xc - bl MemZero - mov r0, #0 - strb r0, [r4, #0x1c] - pop {r4, pc} - arm_func_end FUN_0201b2a0 - - arm_func_start FUN_0201b2dc -FUN_0201b2dc: @ 0x0201B2DC - push {r4, r5, r6, lr} - mov ip, #0 - cmp r1, #0 - moveq r0, ip - popeq {r4, r5, r6, pc} - ldrh r6, [r0, #0xc] - ldrh r4, [r3, #4] - ldr r5, _0201B384 @ =0x020AFC28 - lsr lr, r6, #0x1f - rsb r3, lr, r6, lsl #30 - add r3, lr, r3, ror #30 - lsl r3, r3, #1 - ldrsh r3, [r5, r3] - cmp r4, #0 - ldr lr, [r0, #0x64] - mul r5, r2, r3 - bne _0201B35C - ldrh r3, [sp, #0x10] - mov r0, r1 - cmp r3, #0x10 - bhs _0201B344 - mov r2, ip - add r1, r5, lr - bl FUN_0201abac - mov ip, r0 - b _0201B37C -_0201B344: - mov r3, ip - add r1, r5, lr - mov r2, #2 - bl FUN_0201abac - mov ip, r0 - b _0201B37C -_0201B35C: - cmp r4, #1 - bne _0201B37C - ldrh r3, [sp, #0x10] - mov r0, r1 - mov r2, ip - add r1, r5, lr - bl FUN_0201abac - mov ip, r0 -_0201B37C: - mov r0, ip - pop {r4, r5, r6, pc} - .align 2, 0 -_0201B384: .4byte 0x020AFC28 - arm_func_end FUN_0201b2dc - - arm_func_start FUN_0201b388 -FUN_0201b388: @ 0x0201B388 - push {r3, r4, r5, lr} - cmp r1, #0 - moveq r0, #0 - popeq {r3, r4, r5, pc} - ldrh lr, [r0, #0xc] - ldrb ip, [r3, #0xa] - ldr r5, _0201B438 @ =0x020AFC28 - lsr r4, lr, #0x1f - rsb lr, r4, lr, lsl #30 - add r4, r4, lr, ror #30 - lsl r4, r4, #1 - ldrsh lr, [r5, r4] - cmp ip, #0xff - ldr r4, [r0, #0x64] - mul r5, r2, lr - ldrheq r2, [sp, #0x10] - andeq ip, r2, #0xff - ldrh r2, [r3, #4] - cmp r2, #0 - bne _0201B414 - cmp ip, #0x10 - bhs _0201B3F8 - mov r3, #0 - str r3, [sp] - ldr r0, [r0, #4] - add r2, r5, r4 - bl FUN_0201ac64 - b _0201B430 -_0201B3F8: - mov r2, #0 - str r2, [sp] - ldr r0, [r0, #4] - add r2, r5, r4 - mov r3, #2 - bl FUN_0201ac64 - b _0201B430 -_0201B414: - cmp r2, #1 - bne _0201B430 - mov r3, #0 - str r3, [sp] - ldr r0, [r0, #4] - add r2, r5, r4 - bl FUN_0201ac64 -_0201B430: - mov r0, #1 - pop {r3, r4, r5, pc} - .align 2, 0 -_0201B438: .4byte 0x020AFC28 - arm_func_end FUN_0201b388 - - arm_func_start FUN_0201b43c -FUN_0201b43c: @ 0x0201B43C - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov r6, r1 - ldrb r1, [r6, #0xa] - mov r7, r0 - ldrh r0, [r6, #4] - mov r5, r2 - cmp r1, #0xff - movne r5, r1 - cmp r0, #0 - bne _0201B4B8 - cmp r5, #0x10 - bhs _0201B48C - ldrsh r2, [r6, #6] - lsl r1, r5, #4 - ldr r0, [r7, #8] - ldr r3, [r6] - and r1, r1, #0xff - and r2, r2, #0xff - bl FUN_0201ad8c - b _0201B534 -_0201B48C: - ldr r1, [r6] - sub r0, r5, #0x10 - str r1, [sp] - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - ldr r0, [r7, #8] - and r1, r1, #0xff - mov r2, #0 - mov r3, #0x10 - bl FUN_0201ae1c - b _0201B534 -_0201B4B8: - cmp r0, #1 - bne _0201B534 - ldrb r0, [r6, #0xb] - cmp r0, #0 - beq _0201B518 - ldrsh r1, [r6, #6] - mov r4, #0 - mov sb, #0x10 - asr r0, r1, #3 - add r8, r1, r0, lsr #28 - b _0201B50C -_0201B4E4: - ldr r0, [r6] - add r1, r5, r4 - add r0, r0, r4, lsl #6 - str r0, [sp] - ldrh r2, [r6, #8] - ldr r0, [r7, #8] - mov r3, sb - and r1, r1, #0xff - bl FUN_0201ae1c - add r4, r4, #1 -_0201B50C: - cmp r4, r8, asr #4 - blt _0201B4E4 - b _0201B534 -_0201B518: - ldr r0, [r6] - and r1, r5, #0xff - str r0, [sp] - ldrh r2, [r6, #8] - ldrh r3, [r6, #6] - ldr r0, [r7, #8] - bl FUN_0201ae1c -_0201B534: - mov r0, #1 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_0201b43c - - arm_func_start FUN_0201b53c -FUN_0201b53c: @ 0x0201B53C - push {r3, r4, r5, r6, r7, lr} - ldr r4, [sp, #0x18] - mov r5, r3 - ldrh ip, [r4, #4] - ldr r3, _0201B5F4 @ =0x020AFC30 - mov r6, r0 - lsl r0, ip, #1 - ldrh r7, [r3, r0] - mov r3, #0 - cmp r7, #0 - bne _0201B57C - ldrh r0, [sp, #0x1c] - cmp r0, #0x10 - movhs r0, #1 - movlo r0, r7 - b _0201B580 -_0201B57C: - mov r0, r7 -_0201B580: - lsl ip, r2, #0x10 - ldrsh r2, [r6, #0xc] - cmp r7, #0 - cmpeq r0, #1 - mov r0, r1 - moveq r3, #1 - asr r1, ip, #0x10 - bl FUN_0201b5f8 - ldrb r1, [sp, #0x24] - lsl r0, r0, #0x10 - lsr r7, r0, #0x10 - cmp r1, #0 - bne _0201B5D0 - ldrh ip, [sp, #0x1c] - mov r0, r6 - mov r1, r5 - mov r2, r7 - mov r3, r4 - str ip, [sp] - bl FUN_0201b388 -_0201B5D0: - ldrb r0, [sp, #0x28] - cmp r0, #0 - bne _0201B5EC - ldrh r2, [sp, #0x1c] - mov r0, r6 - mov r1, r4 - bl FUN_0201b43c -_0201B5EC: - mov r0, r7 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0201B5F4: .4byte 0x020AFC30 - arm_func_end FUN_0201b53c - - arm_func_start FUN_0201b5f8 -FUN_0201b5f8: @ 0x0201B5F8 - push {r3, r4, r5, r6, lr} - sub sp, sp, #0xc - mov r4, r0 - mov r5, r1 - mov r1, r4 - add r0, sp, #0 - mov r6, r2 - mov r4, r3 - bl FUN_0201b678 - ldrh r3, [sp, #8] - ldr r0, _0201B670 @ =0x000003FF - ldr r1, _0201B674 @ =0x020996D8 - lsl r2, r6, #1 - and r0, r3, r0 - lsl r0, r0, #0x10 - ldrsh r1, [r1, r2] - asr r0, r0, #0x10 - cmp r4, #0 - lsl r0, r0, r1 - lsl r0, r0, #0x10 - movne r1, #1 - asr r0, r0, #0x10 - moveq r1, #0 - lsl r0, r0, r1 - lsl r0, r0, #0x10 - add r0, r5, r0, asr #16 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add sp, sp, #0xc - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_0201B670: .4byte 0x000003FF -_0201B674: .4byte 0x020996D8 - arm_func_end FUN_0201b5f8 - - arm_func_start FUN_0201b678 -FUN_0201b678: @ 0x0201B678 - ldrh r3, [r1] - ldr r2, _0201B6D0 @ =0x0000FCFF - strh r3, [r0] - ldrh ip, [r1, #2] - sub r3, r2, #0xb00 - strh ip, [r0, #2] - ldrh ip, [r1, #4] - and r2, ip, r2 - strh r2, [r0, #4] - ldrh r2, [r1, #6] - and r2, r2, r3 - strh r2, [r0, #6] - ldrh r2, [r1, #8] - strh r2, [r0, #8] - ldrh r2, [r1, #4] - ldrh r3, [r1, #6] - lsl r1, r2, #0x16 - and r2, r3, #0xe00 - lsr r1, r1, #0x12 - orr r1, r1, r2, asr #9 - strh r1, [r0, #0xa] - bx lr - .align 2, 0 -_0201B6D0: .4byte 0x0000FCFF - arm_func_end FUN_0201b678 - - arm_func_start FUN_0201b6d4 -FUN_0201b6d4: @ 0x0201B6D4 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x24 - mov r5, r0 - mov r6, r2 - mov r7, r1 - mov r4, r3 - ldrsh r1, [r6, #4] - ldrsh r2, [r5, #0xc] - ldrb r3, [r6, #0xe] - mov r0, r7 - bl FUN_0201b5f8 - ldr r1, [r5, #0x40] - str r0, [sp, #4] - cmp r1, #0x80 - mvnge r0, #0 - bge _0201B9A4 - ldrh r2, [r6, #0xa] - ldrh r3, [r6, #8] - ldrb sl, [r6, #0xf] - and r8, r2, #0xff - ldrh r2, [r6, #0xc] - add r0, sp, #0x16 - mov r1, r7 - str r2, [sp] - and sb, r3, #0xff - ldrh r7, [r6, #6] - ldrsh fp, [r6, #2] - ldrsh r6, [r6] - bl FUN_0201b678 - ldrsb r0, [sp, #0x19] - adds r7, r7, r0 - movmi r7, #0 - cmp r7, #0x140 - ldrge r7, _0201B9AC @ =0x0000013F - cmp r4, #0 - bne _0201B790 - add r3, sp, #0x1a - ldrh r0, [r3] - add r4, sp, #0xe - ldrh r2, [r3, #2] - ldrh r1, [r3, #4] - strh r0, [r4] - ldrh r0, [r3, #6] - strh r2, [r4, #2] - strh r1, [r4, #4] - strh r0, [r4, #6] - b _0201B7E8 -_0201B790: - add lr, sp, #0x1a - ldrh r1, [r4] - ldrh r2, [lr] - ldrh r0, [r4, #6] - add ip, sp, #0xe - and r1, r2, r1 - orr r0, r0, r1 - strh r0, [ip] - ldrh r2, [lr, #2] - ldrh r1, [r4, #2] - ldrh r3, [r4, #8] - ldrh r0, [lr, #4] - and r1, r2, r1 - orr r1, r3, r1 - strh r1, [ip, #2] - ldrh r1, [r4, #4] - ldrh r2, [r4, #0xa] - ldrh r3, [lr, #6] - and r0, r0, r1 - orr r0, r2, r0 - strh r0, [ip, #4] - strh r3, [ip, #6] -_0201B7E8: - ldrh r1, [sp, #0x12] - mov r2, #0x400 - rsb r2, r2, #0 - and r1, r1, r2 - ldrh r0, [sp, #0x10] - strh r1, [sp, #0x12] - and r1, r0, r2, lsr #23 - sub r0, r6, #0x100 - add r4, r1, r0 - ldr r1, [sp, #4] - ldrh r0, [sp, #0x12] - lsl r1, r1, #0x10 - lsr r2, r2, #0x16 - and r1, r2, r1, lsr #16 - orr r1, r0, r1 - lsl r3, r4, #0x10 - asr r0, r3, #0x10 - strh r1, [sp, #0x12] - bl FUN_0201b9b0 - cmp r0, #0 - mvnne r7, #0 - bne _0201B950 - ldrh r1, [sp, #0x10] - mov r0, #0x200 - rsb r0, r0, #0 - and r1, r1, r0 - strh r1, [sp, #0x10] - ldrh r3, [sp, #0x14] - lsr r1, r0, #0x14 - sub r2, fp, #0x200 - and r1, r1, r3, asr #4 - add r6, r1, r2 - ldrh r3, [sp, #0x10] - lsl r1, r6, #0x10 - and r2, r4, r0, lsr #23 - asr r0, r1, #0x10 - orr r1, r3, r2 - strh r1, [sp, #0x10] - bl FUN_0201b9d4 - cmp r0, #0 - mvnne r7, #0 - bne _0201B950 - ldrh r1, [sp, #0xe] - ldrh r0, [sp, #0x14] - and r2, r6, #0xff - bic r1, r1, #0xff - strh r1, [sp, #0xe] - ldrh r3, [sp, #0xe] - asr r1, r0, #1 - ldr r0, [sp] - orr r2, r3, r2 - bic r2, r2, #0x2000 - strh r2, [sp, #0xe] - ldrh r2, [sp, #0xe] - lsl r0, r0, #0x1f - tst r1, #1 - orr r0, r2, r0, lsr #18 - strh r0, [sp, #0xe] - bne _0201B928 - cmp sl, #0 - beq _0201B8FC - ldrh r1, [sp, #0x12] - lsl r0, sb, #0x1c - bic r1, r1, #0xf000 - strh r1, [sp, #0x12] - ldrh r1, [sp, #0x12] - orr r0, r1, r0, lsr #16 - strh r0, [sp, #0x12] - b _0201B928 -_0201B8FC: - ldrh r2, [sp, #0x12] - and r1, sb, #0xf - bic r0, r2, #0xf000 - strh r0, [sp, #0x12] - asr r0, r2, #0xc - and r0, r0, #0xf - add r0, r0, r1 - ldrh r1, [sp, #0x12] - lsl r0, r0, #0x1c - orr r0, r1, r0, lsr #16 - strh r0, [sp, #0x12] -_0201B928: - ldrh r1, [sp, #0x12] - bic r0, r1, #0xf000 - strh r0, [sp, #0x12] - asr r0, r1, #0xc - and r0, r0, #0xf - add r0, r0, r8 - ldrh r1, [sp, #0x12] - lsl r0, r0, #0x1c - orr r0, r1, r0, lsr #16 - strh r0, [sp, #0x12] -_0201B950: - cmp r7, #0 - mvnlt r0, #1 - blt _0201B9A4 - ldr r1, [r5, #0x40] - ldr r0, [r5, #0x20] - cmp r1, r0 - bge _0201B9A0 - ldrh r4, [sp, #0xe] - ldrh r3, [sp, #0x10] - ldrh r0, [sp, #0x12] - add r1, sp, #8 - mov r2, r7 - strh r0, [sp, #0xc] - strh r4, [sp, #8] - strh r3, [sp, #0xa] - add r0, r5, #0x20 - bl FUN_0200b6f0 - ldr r0, [r5, #0x40] - add r0, r0, #1 - str r0, [r5, #0x40] -_0201B9A0: - mov r0, #0 -_0201B9A4: - add sp, sp, #0x24 - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0201B9AC: .4byte 0x0000013F - arm_func_end FUN_0201b6d4 - - arm_func_start FUN_0201b9b0 -FUN_0201b9b0: @ 0x0201B9B0 - mvn r1, #0x3f - cmp r0, r1 - blt _0201B9C4 - cmp r0, #0x100 - blt _0201B9CC -_0201B9C4: - mov r0, #1 - bx lr -_0201B9CC: - mov r0, #0 - bx lr - arm_func_end FUN_0201b9b0 - - arm_func_start FUN_0201b9d4 -FUN_0201b9d4: @ 0x0201B9D4 - mvn r1, #0x3f - cmp r0, r1 - blt _0201B9E8 - cmp r0, #0xc0 - blt _0201B9F0 -_0201B9E8: - mov r0, #1 - bx lr -_0201B9F0: - mov r0, #0 - bx lr - arm_func_end FUN_0201b9d4 - - arm_func_start FUN_0201b9f8 -FUN_0201b9f8: @ 0x0201B9F8 - push {r4, lr} - sub sp, sp, #8 - mov r4, r0 - ldr r3, [r4, #0x40] - cmp r3, #0x80 - mvnge r0, #0 - bge _0201BA90 - cmp r2, #0 - blt _0201BA24 - cmp r2, #0x140 - blt _0201BA2C -_0201BA24: - mvn r0, #1 - b _0201BA90 -_0201BA2C: - ldr r0, [r4, #0x20] - cmp r3, r0 - bge _0201BA8C - ldrh lr, [r1] - ldr r3, _0201BA98 @ =0x00000FFF - add r0, r4, #0x20 - strh lr, [sp] - ldrh ip, [r1, #2] - and lr, lr, #0xff00 - strh ip, [sp, #2] - ldrh ip, [r1, #4] - strh ip, [sp, #4] - ldrh ip, [r1, #6] - add r1, sp, #0 - and r3, r3, ip, asr #4 - lsl r3, r3, #0x10 - asr r3, r3, #0x10 - and r3, r3, #0xff - orr r3, lr, r3 - strh r3, [sp] - bl FUN_0200b6f0 - ldr r0, [r4, #0x40] - add r0, r0, #1 - str r0, [r4, #0x40] -_0201BA8C: - mov r0, #0 -_0201BA90: - add sp, sp, #8 - pop {r4, pc} - .align 2, 0 -_0201BA98: .4byte 0x00000FFF - arm_func_end FUN_0201b9f8 - - arm_func_start FUN_0201ba9c -FUN_0201ba9c: @ 0x0201BA9C - ldr ip, _0201BAA8 @ =FUN_0200b57c - add r0, r0, #0x20 - bx ip - .align 2, 0 -_0201BAA8: .4byte FUN_0200b57c - arm_func_end FUN_0201ba9c - - arm_func_start FUN_0201baac -FUN_0201baac: @ 0x0201BAAC - push {r4, lr} - mov r4, r0 - add r0, r4, #0x20 - bl FUN_0200b570 - add r0, r4, #0x20 - bl FUN_0200b630 - pop {r4, pc} - arm_func_end FUN_0201baac - - arm_func_start FUN_0201bac8 -FUN_0201bac8: @ 0x0201BAC8 - push {r3, r4, r5, lr} - sub sp, sp, #8 - ldrb r5, [sp, #0x18] - ldrb r4, [sp, #0x1c] - str r5, [sp] - str r4, [sp, #4] - ldrh ip, [r0, #0xc] - ldr r4, [r0, #0x64] - ldr r5, _0201BB1C @ =0x020AFC28 - lsr lr, ip, #0x1f - rsb ip, lr, ip, lsl #30 - add ip, lr, ip, ror #30 - lsl ip, ip, #1 - ldrsh ip, [r5, ip] - mov r5, r1 - ldr r0, [r0, #4] - smlabb r1, r2, ip, r4 - mov r2, r5 - bl FUN_0201ac20 - add sp, sp, #8 - pop {r3, r4, r5, pc} - .align 2, 0 -_0201BB1C: .4byte 0x020AFC28 - arm_func_end FUN_0201bac8 - - arm_func_start FUN_0201bb20 -FUN_0201bb20: @ 0x0201BB20 - push {r4, lr} - mov r4, r0 - ldr r0, [r4, #4] - bl FUN_0201ad44 - ldr r0, [r4, #4] - bl FUN_0201ac10 - pop {r4, pc} - arm_func_end FUN_0201bb20 - - arm_func_start FUN_0201bb3c -FUN_0201bb3c: @ 0x0201BB3C - push {r3, lr} - mov r0, #0x1f00 - mov r1, #0 - bl MemAlloc - ldr r2, _0201BCBC @ =0x020AFC4C - mov r1, #0x1f00 - str r0, [r2] - bl MemZero - ldr r0, _0201BCBC @ =0x020AFC4C - ldr r0, [r0] - add r0, r0, #0x1c0 - bl FUN_0201ab90 - ldr r0, _0201BCBC @ =0x020AFC4C - ldr r0, [r0] - add r0, r0, #0x3c4 - add r0, r0, #0xc00 - bl FUN_0201ab90 - ldr r0, _0201BCBC @ =0x020AFC4C - ldr r0, [r0] - add r0, r0, #0x1c0 - bl FUN_0201ac10 - ldr r0, _0201BCBC @ =0x020AFC4C - ldr r0, [r0] - add r0, r0, #0x3c4 - add r0, r0, #0xc00 - bl FUN_0201ac10 - ldr r0, _0201BCBC @ =0x020AFC4C - mov r1, #0 - ldr r0, [r0] - add r0, r0, #0x1c8 - add r0, r0, #0x1c00 - bl FUN_0201aef0 - ldr r0, _0201BCBC @ =0x020AFC4C - ldr r1, _0201BCC0 @ =0x05000200 - ldr r0, [r0] - add r0, r0, #0x1c8 - add r0, r0, #0x1c00 - bl FUN_0201af18 - ldr r0, _0201BCBC @ =0x020AFC4C - ldr r1, _0201BCC4 @ =0x06894000 - ldr r0, [r0] - add r0, r0, #0x1c8 - add r0, r0, #0x1c00 - bl FUN_0201af64 - ldr r0, _0201BCBC @ =0x020AFC4C - mov r1, #1 - ldr r0, [r0] - add r0, r0, #0x264 - add r0, r0, #0x1c00 - bl FUN_0201aef0 - ldr r0, _0201BCBC @ =0x020AFC4C - ldr r1, _0201BCC8 @ =0x05000600 - ldr r0, [r0] - add r0, r0, #0x264 - add r0, r0, #0x1c00 - bl FUN_0201af18 - ldr r0, _0201BCBC @ =0x020AFC4C - mov r3, #0 - ldr r0, [r0] - str r3, [sp] - add r1, r0, #0x1c8 - add r1, r1, #0x1c00 - add r2, r0, #0x1c0 - bl FUN_0201b198 - ldr r0, _0201BCBC @ =0x020AFC4C - mov r3, #1 - ldr r2, [r0] - str r3, [sp] - add r0, r2, #0x70 - add r1, r2, #0x264 - add r1, r1, #0x1c00 - add r2, r2, #0x3c4 - add r2, r2, #0xc00 - bl FUN_0201b198 - ldr r0, _0201BCBC @ =0x020AFC4C - mov r1, #2 - ldr r2, [r0] - mov r3, #0 - str r1, [sp] - add r0, r2, #0xe0 - add r1, r2, #0x1c8 - add r1, r1, #0x1c00 - add r2, r2, #0x1c0 - bl FUN_0201b198 - ldr r0, _0201BCBC @ =0x020AFC4C - mov r1, #3 - ldr r2, [r0] - mov r3, #1 - str r1, [sp] - add r0, r2, #0x150 - add r1, r2, #0x264 - add r1, r1, #0x1c00 - add r2, r2, #0x3c4 - add r2, r2, #0xc00 - bl FUN_0201b198 - pop {r3, pc} - .align 2, 0 -_0201BCBC: .4byte 0x020AFC4C -_0201BCC0: .4byte 0x05000200 -_0201BCC4: .4byte 0x06894000 -_0201BCC8: .4byte 0x05000600 - arm_func_end FUN_0201bb3c - - arm_func_start FUN_0201bccc -FUN_0201bccc: @ 0x0201BCCC - ldr r1, _0201BCEC @ =0x020AFC4C - mov r2, #0x9c - ldr r1, [r1] - ldr ip, _0201BCF0 @ =FUN_0201AD7C - add r1, r1, #0x1c8 - add r1, r1, #0x1c00 - mla r0, r2, r0, r1 - bx ip - .align 2, 0 -_0201BCEC: .4byte 0x020AFC4C -_0201BCF0: .4byte FUN_0201AD7C - arm_func_end FUN_0201bccc - - arm_func_start FUN_0201bcf4 -FUN_0201bcf4: @ 0x0201BCF4 - ldr r1, _0201BD14 @ =0x020AFC4C - mov r2, #0x9c - ldr r1, [r1] - ldr ip, _0201BD18 @ =FUN_0201AD84 - add r1, r1, #0x1c8 - add r1, r1, #0x1c00 - mla r0, r2, r0, r1 - bx ip - .align 2, 0 -_0201BD14: .4byte 0x020AFC4C -_0201BD18: .4byte FUN_0201AD84 - arm_func_end FUN_0201bcf4 -_0201BD1C: - .byte 0x28, 0x30, 0x9F, 0xE5 - .byte 0x9C, 0x20, 0xA0, 0xE3, 0x00, 0xC0, 0x93, 0xE5, 0x01, 0x30, 0x00, 0xE2, 0x72, 0x0F, 0x8C, 0xE2 - .byte 0x07, 0x0B, 0x80, 0xE2, 0x91, 0x02, 0x22, 0xE0, 0x78, 0x00, 0xD2, 0xE5, 0x01, 0x00, 0xC0, 0xE3 - .byte 0x03, 0x00, 0x80, 0xE1, 0x78, 0x00, 0xC2, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x4C, 0xFC, 0x0A, 0x02 - .byte 0x08, 0x40, 0x2D, 0xE9, 0x20, 0x30, 0x9F, 0xE5, 0x9C, 0x20, 0xA0, 0xE3, 0x00, 0x30, 0x93, 0xE5 - .byte 0x00, 0xC0, 0xA0, 0xE1, 0x72, 0x0F, 0x83, 0xE2, 0x07, 0x0B, 0x80, 0xE2, 0x91, 0x02, 0x20, 0xE0 - .byte 0x0C, 0x10, 0xA0, 0xE1, 0x4E, 0xFC, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x4C, 0xFC, 0x0A, 0x02 - .byte 0x08, 0x40, 0x2D, 0xE9, 0x24, 0xC0, 0x9F, 0xE5, 0x00, 0xE0, 0xA0, 0xE1, 0x00, 0xC0, 0x9C, 0xE5 - .byte 0x9C, 0x30, 0xA0, 0xE3, 0x72, 0x0F, 0x8C, 0xE2, 0x07, 0x0B, 0x80, 0xE2, 0x92, 0x03, 0x20, 0xE0 - .byte 0x01, 0x20, 0xA0, 0xE1, 0x0E, 0x10, 0xA0, 0xE1, 0x47, 0xFC, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 - .byte 0x4C, 0xFC, 0x0A, 0x02 - - arm_func_start FUN_0201bdb4 -FUN_0201bdb4: @ 0x0201BDB4 - push {r3, lr} - mov r0, #8 - bl FUN_0200302c - ldr r0, _0201BDE8 @ =0x020AFC4C - ldr r0, [r0] - bl FUN_0201baac - ldr r0, _0201BDE8 @ =0x020AFC4C - ldr r0, [r0] - add r0, r0, #0x70 - bl FUN_0201baac - mov r0, #8 - bl FUN_020030fc - pop {r3, pc} - .align 2, 0 -_0201BDE8: .4byte 0x020AFC4C - arm_func_end FUN_0201bdb4 - - arm_func_start FUN_0201bdec -FUN_0201bdec: @ 0x0201BDEC - push {r3, lr} - mov r0, #8 - bl FUN_0200302c - ldr r0, _0201BE24 @ =0x020AFC4C - ldr r0, [r0] - add r0, r0, #0xe0 - bl FUN_0201baac - ldr r0, _0201BE24 @ =0x020AFC4C - ldr r0, [r0] - add r0, r0, #0x150 - bl FUN_0201baac - mov r0, #8 - bl FUN_020030fc - pop {r3, pc} - .align 2, 0 -_0201BE24: .4byte 0x020AFC4C - arm_func_end FUN_0201bdec - - arm_func_start FUN_0201be28 -FUN_0201be28: @ 0x0201BE28 - push {r3, lr} - ldr r0, _0201BE58 @ =0x020AFC4C - ldr r0, [r0] - add r0, r0, #0x1c8 - add r0, r0, #0x1c00 - bl FUN_0201afb8 - ldr r0, _0201BE58 @ =0x020AFC4C - ldr r0, [r0] - add r0, r0, #0x264 - add r0, r0, #0x1c00 - bl FUN_0201afb8 - pop {r3, pc} - .align 2, 0 -_0201BE58: .4byte 0x020AFC4C - arm_func_end FUN_0201be28 - - arm_func_start FUN_0201be5c -FUN_0201be5c: @ 0x0201BE5C - push {r3, lr} - ldr r0, _0201BE80 @ =0x020AFC4C - ldr r0, [r0] - bl FUN_0201ba9c - ldr r0, _0201BE80 @ =0x020AFC4C - ldr r0, [r0] - add r0, r0, #0x70 - bl FUN_0201ba9c - pop {r3, pc} - .align 2, 0 -_0201BE80: .4byte 0x020AFC4C - arm_func_end FUN_0201be5c - - arm_func_start FUN_0201be84 -FUN_0201be84: @ 0x0201BE84 - push {r3, lr} - ldr r0, _0201BEAC @ =0x020AFC4C - ldr r0, [r0] - add r0, r0, #0xe0 - bl FUN_0201ba9c - ldr r0, _0201BEAC @ =0x020AFC4C - ldr r0, [r0] - add r0, r0, #0x150 - bl FUN_0201ba9c - pop {r3, pc} - .align 2, 0 -_0201BEAC: .4byte 0x020AFC4C - arm_func_end FUN_0201be84 - - arm_func_start FUN_0201beb0 -FUN_0201beb0: @ 0x0201BEB0 - push {r3, lr} - mov r0, #8 - bl FUN_0200302c - ldr r0, _0201BF0C @ =0x020AFC4C - ldr r0, [r0] - add r0, r0, #0x1c8 - add r0, r0, #0x1c00 - bl FUN_0201b004 - ldr r0, _0201BF0C @ =0x020AFC4C - ldr r0, [r0] - add r0, r0, #0x264 - add r0, r0, #0x1c00 - bl FUN_0201b004 - ldr r0, _0201BF0C @ =0x020AFC4C - ldr r0, [r0] - bl FUN_0201bb20 - ldr r0, _0201BF0C @ =0x020AFC4C - ldr r0, [r0] - add r0, r0, #0x70 - bl FUN_0201bb20 - mov r0, #8 - bl FUN_020030fc - pop {r3, pc} - .align 2, 0 -_0201BF0C: .4byte 0x020AFC4C - arm_func_end FUN_0201beb0 - - arm_func_start FUN_0201bf10 -FUN_0201bf10: @ 0x0201BF10 - push {r3, lr} - mov r0, #8 - bl FUN_0200302c - ldr r0, _0201BF48 @ =0x020AFC4C - ldr r0, [r0] - add r0, r0, #0xe0 - bl FUN_0201bb20 - ldr r0, _0201BF48 @ =0x020AFC4C - ldr r0, [r0] - add r0, r0, #0x150 - bl FUN_0201bb20 - mov r0, #8 - bl FUN_020030fc - pop {r3, pc} - .align 2, 0 -_0201BF48: .4byte 0x020AFC4C - arm_func_end FUN_0201bf10 - - arm_func_start FUN_0201bf4c -FUN_0201bf4c: @ 0x0201BF4C - push {r3, lr} - bl FUN_0201beb0 - bl FUN_0201bf10 - bl FUN_0201bdb4 - bl FUN_0201bdec - pop {r3, pc} - arm_func_end FUN_0201bf4c - - arm_func_start FUN_0201bf64 -FUN_0201bf64: @ 0x0201BF64 - push {r3, lr} - ldr r0, _0201BFA8 @ =0x020AFC4C - ldr r0, [r0] - bl FUN_0201b2a0 - ldr r0, _0201BFA8 @ =0x020AFC4C - ldr r0, [r0] - add r0, r0, #0x70 - bl FUN_0201b2a0 - ldr r0, _0201BFA8 @ =0x020AFC4C - ldr r0, [r0] - add r0, r0, #0xe0 - bl FUN_0201b2a0 - ldr r0, _0201BFA8 @ =0x020AFC4C - ldr r0, [r0] - add r0, r0, #0x150 - bl FUN_0201b2a0 - pop {r3, pc} - .align 2, 0 -_0201BFA8: .4byte 0x020AFC4C - arm_func_end FUN_0201bf64 -_0201BFAC: - .byte 0x18, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x30, 0xC0, 0x9F, 0xE5, 0x00, 0x30, 0x8D, 0xE5, 0x00, 0xE0, 0x9C, 0xE5 - .byte 0x10, 0xC0, 0x9D, 0xE5, 0x70, 0x30, 0xA0, 0xE3, 0x00, 0x40, 0xA0, 0xE1, 0x9C, 0xE3, 0x20, 0xE0 - .byte 0x01, 0xC0, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE1, 0x0C, 0x20, 0xA0, 0xE1 - .byte 0xBD, 0xFC, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x18, 0x80, 0xBD, 0xE8, 0x4C, 0xFC, 0x0A, 0x02 - - arm_func_start FUN_0201bff0 -FUN_0201bff0: @ 0x0201BFF0 - ldr ip, _0201BFFC @ =FUN_01FF8000 - asr r2, r2, #1 - bx ip - .align 2, 0 -_0201BFFC: .4byte FUN_01FF8000 - arm_func_end FUN_0201bff0 - - arm_func_start FUN_0201c000 -FUN_0201c000: @ 0x0201C000 - ldr r2, _0201C024 @ =0x0000FFFF - mov r1, #0 - strh r2, [r0] - strh r2, [r0, #2] - strh r2, [r0, #4] - strh r1, [r0, #6] - strh r1, [r0, #8] - strh r1, [r0, #0xa] - bx lr - .align 2, 0 -_0201C024: .4byte 0x0000FFFF - arm_func_end FUN_0201c000 - - arm_func_start FUN_0201c028 -FUN_0201c028: @ 0x0201C028 - strh r1, [r0] - strh r2, [r0, #2] - ldrh r1, [sp] - strh r3, [r0, #4] - ldrh r2, [sp, #4] - strh r1, [r0, #6] - ldrh r1, [sp, #8] - strh r2, [r0, #8] - strh r1, [r0, #0xa] - bx lr - arm_func_end FUN_0201c028 - - arm_func_start FUN_0201c050 -FUN_0201c050: @ 0x0201C050 - push {r4, lr} - mov r1, #0x7c - mov r4, r0 - bl MemZero - mov r1, #0 - str r1, [r4, #0x68] - str r1, [r4, #0x6c] - strh r1, [r4, #0x70] - mov r0, #0xff - strh r1, [r4, #0x72] - strb r0, [r4, #0x43] - add r0, r0, #0xff00 - strh r0, [r4, #0x36] - mov r0, #9 - strb r0, [r4, #0x40] - add r0, r4, #0x10 - bl FUN_0201c000 - ldrh r0, [r4, #2] - bic r0, r0, #0x8000 - strh r0, [r4, #2] - ldrh r0, [r4, #2] - orr r0, r0, #0x200 - strh r0, [r4, #2] - pop {r4, pc} - arm_func_end FUN_0201c050 - - arm_func_start FUN_0201c0b0 -FUN_0201c0b0: @ 0x0201C0B0 - push {r4, lr} - mov r4, r0 - bl FUN_0201c050 - ldrh r0, [r4, #2] - orr r0, r0, #1 - strh r0, [r4, #2] - pop {r4, pc} - arm_func_end FUN_0201c0b0 - - arm_func_start FUN_0201c0cc -FUN_0201c0cc: @ 0x0201C0CC - push {r4, lr} - mov r4, r0 - bl FUN_0201c050 - ldrh r0, [r4, #2] - orr r0, r0, #1 - strh r0, [r4, #2] - pop {r4, pc} - arm_func_end FUN_0201c0cc - - arm_func_start FUN_0201c0e8 -FUN_0201c0e8: @ 0x0201C0E8 - strh r1, [r0, #0x70] - ldrsh r2, [r0, #0x70] - ldrsh r1, [r0, #0x72] - cmp r2, r1 - strhne r2, [r0, #0x72] - movne r1, #0xff - strbne r1, [r0, #0x43] - bx lr - arm_func_end FUN_0201c0e8 - - arm_func_start FUN_0201c108 -FUN_0201c108: @ 0x0201C108 - push {r4, lr} - mov r4, r0 - ldrsh r0, [r4, #0x70] - cmp r0, #0 - bne _0201C124 - ldr r0, _0201C134 @ =0x020996E0 - bl DebugPrint0 -_0201C124: - ldrh r0, [r4, #2] - orr r0, r0, #0x8000 - strh r0, [r4, #2] - pop {r4, pc} - .align 2, 0 -_0201C134: .4byte 0x020996E0 - arm_func_end FUN_0201c108 - - arm_func_start thunk_FUN_0201c050 -thunk_FUN_0201c050: @ 0x0201C138 - ldr ip, _0201C140 @ =FUN_0201c050 - bx ip - .align 2, 0 -_0201C140: .4byte FUN_0201c050 - arm_func_end thunk_FUN_0201c050 - - arm_func_start FUN_0201c144 -FUN_0201c144: @ 0x0201C144 - push {r3, lr} - ldr r1, _0201C178 @ =0x020AFC3C - ldr r1, [r1, r2, lsl #2] - lsl r1, r1, #0x10 - add r0, r0, r1, asr #16 - sub r0, r0, #1 - lsl r0, r0, #0x10 - asr r1, r1, #0x10 - asr r0, r0, #0x10 - bl DivideInt - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - pop {r3, pc} - .align 2, 0 -_0201C178: .4byte 0x020AFC3C - arm_func_end FUN_0201c144 - - arm_func_start FUN_0201c17c -FUN_0201c17c: @ 0x0201C17C - push {r3, r4, r5, lr} - ldr r4, [sp, #0x18] - ldm r1, {ip, lr} - mov r5, #0 - lsl r4, r4, #0x10 - strh r5, [r0] - strh r5, [r0, #6] - asr r4, r4, #0x10 - strh r4, [r0, #8] - strh r4, [r0, #0xa] - strh r5, [r0, #0xc] - mov r5, #1 - ldrb r4, [sp, #0x1c] - strh r5, [r0, #4] - ldrh r5, [r0] - cmp r4, #0 - orr r4, r5, #0x8000 - strh r4, [r0] - ldrhne r4, [r0] - mov r5, #0 - orrne r4, r4, #0x1000 - strhne r4, [r0] - ldr r4, [ip, #8] - add r4, r4, r2, lsl #3 - ldrh r4, [r4, #4] - cmp r3, r4 - strh r5, [r0, #0x20] - movge r3, #0 - ldr r4, [sp, #0x10] - strh r5, [r0, #0x22] - strh r4, [r0, #0x32] - sub r4, r5, #1 - strh r4, [r0, #0x3a] - strh r4, [r0, #0x3c] - str r5, [r0, #0x28] - str r5, [r0, #0x2c] - strh r5, [r0, #0xc] - strh r2, [r0, #0x76] - strh r3, [r0, #0x78] - ldr r4, [ip] - cmp lr, #0 - str r4, [r0, #0x54] - ldrne r5, [lr] - cmp lr, #0 - str r5, [r0, #0x58] - ldrne r4, [lr, #4] - moveq r4, #0 - str r4, [r0, #0x5c] - cmp lr, #0 - ldrshne r4, [lr, #0xa] - ldrb lr, [sp, #0x14] - ldrsheq r4, [ip, #0x14] - and r4, r4, #1 - strh r4, [r0, #0x60] - ldr r4, [ip, #4] - str r4, [r0, #0x50] - ldrb r4, [sp, #0x20] - strb lr, [r0, #0x41] - strb r4, [r0, #0x7a] - ldrb r1, [r1, #8] - cmp r1, #1 - beq _0201C29C - ldr r1, [ip, #8] - ldr r1, [r1] - ldr r1, [r1, r3, lsl #2] - str r1, [r0, #0x48] - str r1, [r0, #0x4c] - ldr r1, [ip, #8] - ldrh r1, [r1, #4] - strh r1, [r0, #0x30] - ldr r1, [ip, #8] - b _0201C2C0 -_0201C29C: - ldrsh r1, [ip, #0xc] - strh r1, [r0, #0x30] - ldr r1, [ip, #8] - ldr r1, [r1, r2, lsl #3] - ldr r1, [r1, r3, lsl #2] - str r1, [r0, #0x48] - str r1, [r0, #0x4c] - ldr r1, [ip, #8] - add r1, r1, r2, lsl #3 -_0201C2C0: - ldrh r1, [r1, #6] - strh r1, [r0, #0x62] - pop {r3, r4, r5, pc} - arm_func_end FUN_0201c17c - - arm_func_start FUN_0201c2cc -FUN_0201c2cc: @ 0x0201C2CC - push {r4, r5, r6, r7, lr} - sub sp, sp, #0x14 - mov r7, r0 - ldrsh r0, [r7, #0x70] - mov r6, r1 - mov r5, r2 - mov r4, r3 - bl FUN_0201dc70 - cmp r0, #0 - beq _0201C304 - add r0, r0, #0xfe - and r0, r0, #0xff - cmp r0, #1 - bhi _0201C348 -_0201C304: - mov r0, r7 - bl FUN_0201c3e8 - ldrb r3, [sp, #0x28] - str r4, [sp] - mov r1, r0 - ldr r2, [sp, #0x2c] - str r3, [sp, #4] - ldrb r0, [sp, #0x30] - str r2, [sp, #8] - ldrb r4, [sp, #0x34] - str r0, [sp, #0xc] - mov r0, r7 - mov r3, r6 - mov r2, #0 - str r4, [sp, #0x10] - bl FUN_0201c17c - b _0201C3E0 -_0201C348: - ldrsh r0, [r7, #0x70] - lsl r1, r6, #0x10 - asr r1, r1, #0x10 - bl FUN_0201da80 - cmp r0, #0 - mov r0, r7 - beq _0201C3A4 - bl FUN_0201c3e8 - str r4, [sp] - ldrb r3, [sp, #0x28] - mov r1, r0 - ldr r2, [sp, #0x2c] - str r3, [sp, #4] - str r2, [sp, #8] - ldrb r0, [sp, #0x30] - ldrb r4, [sp, #0x34] - mov r2, r6 - str r0, [sp, #0xc] - mov r0, r7 - mov r3, r5 - str r4, [sp, #0x10] - bl FUN_0201c17c - b _0201C3E0 -_0201C3A4: - bl FUN_0201c3e8 - str r4, [sp] - ldrb r3, [sp, #0x28] - mov r1, r0 - ldr r2, [sp, #0x2c] - str r3, [sp, #4] - str r2, [sp, #8] - ldrb r0, [sp, #0x30] - ldrb r4, [sp, #0x34] - mov r3, r5 - str r0, [sp, #0xc] - mov r0, r7 - mov r2, #0 - str r4, [sp, #0x10] - bl FUN_0201c17c -_0201C3E0: - add sp, sp, #0x14 - pop {r4, r5, r6, r7, pc} - arm_func_end FUN_0201c2cc - - arm_func_start FUN_0201c3e8 -FUN_0201c3e8: @ 0x0201C3E8 - ldr r1, [r0, #0x68] - cmp r1, #0 - ldrne r0, [r1, #4] - bxne lr - ldr r1, _0201C414 @ =0x020AFC68 - ldrsh r2, [r0, #0x70] - ldr r1, [r1] - mov r0, #0x38 - smlabb r0, r2, r0, r1 - ldr r0, [r0, #0x30] - bx lr - .align 2, 0 -_0201C414: .4byte 0x020AFC68 - arm_func_end FUN_0201c3e8 - - arm_func_start FUN_0201c418 -FUN_0201c418: @ 0x0201C418 - push {r4, lr} - sub sp, sp, #0x10 - ldrb r4, [sp, #0x18] - ldr ip, [sp, #0x1c] - ldrb lr, [sp, #0x20] - stm sp, {r4, ip} - ldrb ip, [sp, #0x24] - str lr, [sp, #8] - mov r4, r0 - str ip, [sp, #0xc] - bl FUN_0201c2cc - ldr r1, [r4, #0x4c] - mov r0, r4 - bl FUN_0201c560 - add sp, sp, #0x10 - pop {r4, pc} - arm_func_end FUN_0201c418 - - arm_func_start FUN_0201c458 -FUN_0201c458: @ 0x0201C458 - push {r4, lr} - mov r4, r0 - bl FUN_0201d1b0 - cmp r0, #0 - popeq {r4, pc} - ldrsh r0, [r4, #0x3a] - cmp r0, #0 - blt _0201C4F4 - ldrh r0, [r4] - tst r0, #0x4000 - popne {r4, pc} - ldrh r1, [r4, #0xc] - ldrsh r0, [r4, #4] - add r0, r1, r0 - strh r0, [r4, #0xc] - ldrsh r1, [r4, #0xa] - cmp r1, #0 - beq _0201C4C0 - ldrsh r0, [r4, #4] - sub r0, r1, r0 - strh r0, [r4, #0xa] - ldrsh r0, [r4, #0xa] - cmp r0, #0 - movlt r0, #0 - strhlt r0, [r4, #0xa] - pop {r4, pc} -_0201C4C0: - ldrsh r1, [r4, #6] - cmp r1, #0 - beq _0201C4E8 - ldrsh r0, [r4, #4] - sub r0, r1, r0 - strh r0, [r4, #6] - ldrsh r0, [r4, #6] - cmp r0, #0 - movlt r0, #0 - strhlt r0, [r4, #6] -_0201C4E8: - ldrsh r0, [r4, #6] - cmp r0, #0 - popgt {r4, pc} -_0201C4F4: - ldr r0, [r4, #0x4c] - ldrb r0, [r0] - cmp r0, #0 - bne _0201C550 - ldrh r0, [r4] - tst r0, #0x1000 - beq _0201C544 - ldrh r1, [r4, #0x62] - ldr r2, [r4, #0x48] - mov r0, #0xc - mla r0, r1, r0, r2 - str r0, [r4, #0x4c] - ldrsh r0, [r4, #8] - cmp r0, #0 - beq _0201C550 - bl Rand16Bit - ldrsh r1, [r4, #8] - and r0, r1, r0 - strh r0, [r4, #0xa] - b _0201C550 -_0201C544: - orr r0, r0, #0x2000 - strh r0, [r4] - pop {r4, pc} -_0201C550: - ldr r1, [r4, #0x4c] - mov r0, r4 - bl FUN_0201c560 - pop {r4, pc} - arm_func_end FUN_0201c458 - - arm_func_start FUN_0201c560 -FUN_0201c560: @ 0x0201C560 - ldrh r2, [r0] - orr r2, r2, #0x800 - strh r2, [r0] - ldrb r2, [r1] - strh r2, [r0, #6] - ldrsh r2, [r1, #2] - strh r2, [r0, #0x3a] - ldrsh r2, [r1, #4] - strh r2, [r0, #0x20] - ldrsh r2, [r1, #6] - strh r2, [r0, #0x22] - ldrsh r2, [r1, #8] - strh r2, [r0, #0x24] - ldrsh r2, [r1, #0xa] - strh r2, [r0, #0x26] - ldrb r2, [r1, #1] - str r2, [r0, #0x28] - ldrb r1, [r1, #1] - ldr r2, [r0, #0x2c] - orr r1, r2, r1 - str r1, [r0, #0x2c] - ldr r1, [r0, #0x4c] - add r1, r1, #0xc - str r1, [r0, #0x4c] - bx lr - arm_func_end FUN_0201c560 - - arm_func_start FUN_0201c5c4 -FUN_0201c5c4: @ 0x0201C5C4 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x90 - mov r8, r0 - ldrh r0, [r8] - tst r0, #0x8000 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _0201CF40 - ldrsh r0, [r8, #0x3a] - mov fp, #0 - cmp r0, #0 - bge _0201C618 - mov r0, r8 - bl FUN_0201c458 - ldrh r0, [r8] - tst r0, #0x8000 - movne r0, #1 - moveq r0, fp - tst r0, #0xff - beq _0201CF40 -_0201C618: - ldrsh r1, [r8, #0x3c] - ldrsh r0, [r8, #0x3a] - cmp r1, r0 - ldrh r0, [r8, #2] - movne fp, #1 - bicne r0, r0, #0x100 - strhne r0, [r8, #2] - bne _0201C640 - tst r0, #0x100 - movne fp, #1 -_0201C640: - ldrb r0, [r8, #0x7a] - cmp r0, #4 - bhs _0201CEC8 - ldrsh r0, [r8, #0x70] - bl FUN_0201dc70 - cmp r0, #3 - bne _0201C928 - mov r0, r8 - bl FUN_0201c3e8 - ldr r6, [r0] - ldr r5, [r0, #4] - ldr sl, [r6, #0x10] - mov r0, #0 - ldr r3, [r5] - mov r7, r0 - str r0, [sp, #0x44] - ldr r0, [r5, #4] - ldrsh r1, [r8, #0x3a] - ldr r2, [r6] - cmp sl, #0 - str r0, [sp, #0x48] - ldr r4, [r3] - ldr sb, [r2, r1, lsl #2] - beq _0201C6CC - ldrsh r0, [r8, #0x78] - str r0, [sp, #0x20] - ldr r1, [sp, #0x20] - ldrh r0, [r8, #0xc] - add r1, sl, r1, lsl #3 - ldr r1, [r1, #4] - bl DivideInt - ldr r0, [sp, #0x20] - ldr r0, [sl, r0, lsl #3] - ldrb r0, [r0, r1] - str r0, [sp, #0x44] -_0201C6CC: - cmp r5, #0 - cmpne fp, #0 - beq _0201C7D8 - ldrh r0, [r8, #2] - tst r0, #0x8000 - bne _0201C7D8 - ldr r0, [sp, #0x48] - ldr r0, [r0] - str r0, [sp, #0x84] - ldr r0, [sp, #0x48] - ldrsh r0, [r0, #6] - strh r0, [sp, #0x8a] - ldrsh r0, [r5, #0xa] - cmp r0, #2 - bne _0201C72C - ldrsh r2, [r4, #4] - ldrsh r0, [r4, #6] - mov r1, #2 - smulbb r2, r2, r0 - asr r0, r2, #1 - add r0, r2, r0, lsr #30 - strh r1, [sp, #0x88] - asr r5, r0, #2 - b _0201C79C -_0201C72C: - cmp r0, #0 - bne _0201C754 - ldrsh r2, [r4, #4] - ldrsh r0, [r4, #6] - mov r1, #0 - smulbb r0, r2, r0 - add r0, r0, r0, lsr #31 - strh r1, [sp, #0x88] - asr r5, r0, #1 - b _0201C79C -_0201C754: - cmp r0, #3 - bne _0201C774 - ldrsh r2, [r4, #4] - ldrsh r1, [r4, #6] - mov r0, #3 - strh r0, [sp, #0x88] - smulbb r5, r2, r1 - b _0201C79C -_0201C774: - cmp r0, #4 - ldrsh r2, [r4, #4] - ldrsheq r1, [r4, #6] - moveq r0, #4 - strheq r0, [sp, #0x88] - smulbbeq r5, r2, r1 - ldrshne r1, [r4, #6] - movne r0, #1 - smulbbne r5, r2, r1 - strhne r0, [sp, #0x88] -_0201C79C: - ldr r0, _0201CF48 @ =0x020AFC70 - ldrb r2, [r8, #0x40] - ldr r0, [r0] - ldrb r3, [r8, #0x41] - add r1, sp, #0x84 - add r0, r0, #0xcc - bl FUN_0201e408 - ldrh r1, [r8, #0x32] - ldr r0, [r4] - mov r2, r5 - mov r3, #0 - bl FUN_0201e050 - ldrh r0, [r8, #2] - orr r0, r0, #0x8000 - strh r0, [r8, #2] -_0201C7D8: - ldr r0, [sp, #0x44] - and r0, r0, #0xf8 - asr r0, r0, #3 - str r0, [sp, #0x24] -_0201C7E8: - ldr r0, _0201CF48 @ =0x020AFC70 - ldrsh r2, [r8, #0x1c] - ldr r5, [r0] - ldrsh r0, [r8, #0x20] - ldrh sl, [sb, #0x20] - ldrsh ip, [r8, #0x1e] - ldrsh r3, [r8, #0x22] - add r2, r2, r0 - ldrb r4, [r8, #0x41] - ldrb r1, [r8, #0x40] - add r3, ip, r3 - add ip, sl, #0x39 - ldrh r0, [r8, #0x32] - ldr r5, [r5, #0xe0] - mov sl, #3 - add r1, r4, r1, lsl #8 - strh sl, [sp, #0x5c] - add r4, r5, r1, lsl #1 - str r0, [sp, #0x60] - strh ip, [sp, #0x5e] - lsl r0, r4, #0x10 - ldr r1, [sb] - mov r4, r7 - add r0, r1, r0, lsr #16 - add r1, r7, #1 - and r7, r1, #0xff - add r5, sp, #0x68 - str r0, [sp, #0x64] - add sl, sb, #0x10 - mov r1, #4 -_0201C860: - ldrh r0, [sl], #2 - subs r1, r1, #1 - strh r0, [r5], #2 - bne _0201C860 - ldrh r5, [sb, #0x18] - add r0, sp, #0x7e - add r1, sb, #0x1a - strh r5, [sp, #0x70] - ldrsh r5, [sb, #4] - strh r5, [sp, #0x72] - ldrsh sl, [sb, #6] - add r5, r5, r2 - add r2, sl, r3 - strh r5, [sp, #0x72] - strh r2, [sp, #0x74] - ldrsh r2, [sb, #8] - strh r2, [sp, #0x76] - ldrsh r2, [sb, #0xa] - strh r2, [sp, #0x78] - ldrh r2, [sb, #0xc] - strh r2, [sp, #0x7a] - ldrh r2, [sb, #0xe] - strh r2, [sp, #0x7c] - ldrh r2, [sb, #0x1e] - strb r4, [sp, #0x82] - strh r2, [sp, #0x80] - ldrb r2, [sb, #0x1d] - and r2, r2, #0xf8 - asr r2, r2, #3 - strb r2, [sp, #0x83] - bl FUN_02004fcc - ldr r0, [r6, #0x10] - mov r1, #0x3f - cmp r0, #0 - ldrne r0, [sp, #0x24] - strbne r0, [sp, #0x83] - mov r0, r7 - bl DivideInt - ldrh r0, [r8, #2] - and r7, r1, #0xff - tst r0, #2 - bne _0201C910 - add r0, sp, #0x5c - bl FUN_01FF8CAC -_0201C910: - ldrb r0, [sb, #0x22] - cmp r0, #0 - addeq sb, sb, #0x28 - beq _0201C7E8 - mov r4, #1 - b _0201CF04 -_0201C928: - ldrb r2, [r8, #0x7a] - ldr r1, _0201CF4C @ =0x020AFC50 - mov r0, r8 - ldr r1, [r1, r2, lsl #2] - str r1, [sp, #0x40] - bl FUN_0201c3e8 - mov r1, #0 - ldrh r3, [r8, #0x60] - str r1, [sp, #0x2c] - ldr r2, _0201CF50 @ =0x020AFC30 - lsl r1, r3, #1 - ldrh r1, [r2, r1] - str r1, [sp, #0x28] - ldrsh r2, [r8, #0x3a] - ldr r3, [r8, #0x54] - ldr r1, [sp, #0x2c] - str r1, [sp, #0x34] - str r1, [sp, #0x38] - ldr r7, [r0, #4] - ldr r1, [sp, #0x28] - ldrb r0, [r8, #0x41] - ldr r6, [r3, r2, lsl #2] - cmp r1, #0 - str r0, [sp, #0x30] - bne _0201C9B4 - ldr r0, [sp, #0x30] - cmp r0, #0x10 - blo _0201C9B4 - sub r0, r0, #0x10 - lsl r1, r0, #0x10 - mov r0, #1 - str r0, [sp, #0x28] - str r0, [sp, #0x38] - lsr r0, r1, #0x10 - str r0, [sp, #0x30] -_0201C9B4: - ldrh r2, [r8, #2] - tst r2, #0x20 - addne r0, r8, #0x10 - strne r0, [sp, #0x2c] - cmp r7, #0 - cmpne fp, #0 - beq _0201CCFC - ldrh r0, [r7, #8] - tst r0, #1 - beq _0201CCFC - tst r2, #0x8000 - bne _0201CCFC - ldr r0, [sp, #0x40] - mov r1, #0 - ldrh r5, [r7, #0xe] - ldrh sb, [r8, #0x32] - mov r4, r1 - tst r2, #0x80 - movne r1, #1 - tst r2, #0x40 - and r0, r0, #0xff - movne r4, #1 - cmp r0, #3 - addls pc, pc, r0, lsl #2 - b _0201CCE0 -_0201CA18: @ jump table - b _0201CA28 @ case 0 - b _0201CAD0 @ case 1 - b _0201CB80 @ case 2 - b _0201CC30 @ case 3 -_0201CA28: - cmp r1, #0 - bne _0201CAB0 - mov sl, #0 - b _0201CAA8 -_0201CA38: - ldr r0, [r8, #0x58] - ldrb r1, [r8, #0x41] - ldr r0, [r0, sl, lsl #2] - mov r2, sb - str r0, [sp, #0x3c] - str r1, [sp] - ldr r0, _0201CF54 @ =0x020AFC4C - ldr r1, [sp, #0x3c] - ldr r0, [r0] - ldr r3, [r8, #0x5c] - bl FUN_0201b388 - ldr r2, [r8, #0x5c] - ldr r1, _0201CF54 @ =0x020AFC4C - ldrh r3, [r2, #4] - ldr r1, [r1] - ldr r0, [sp, #0x3c] - ldrh r2, [r1, #0xc] - ldr r1, _0201CF50 @ =0x020AFC30 - lsl r3, r3, #1 - ldrh r1, [r1, r3] - ldr r0, [r0, #4] - bl FUN_0201c144 - add r0, sb, r0 - lsl r0, r0, #0x10 - lsr sb, r0, #0x10 - add r0, sl, #1 - lsl r0, r0, #0x10 - lsr sl, r0, #0x10 -_0201CAA8: - cmp sl, r5 - blo _0201CA38 -_0201CAB0: - cmp r4, #0 - bne _0201CCE0 - ldr r0, _0201CF54 @ =0x020AFC4C - ldrb r2, [r8, #0x41] - ldr r0, [r0] - ldr r1, [r8, #0x5c] - bl FUN_0201b43c - b _0201CCE0 -_0201CAD0: - cmp r1, #0 - bne _0201CB5C - mov sl, #0 - b _0201CB54 -_0201CAE0: - ldr r0, [r8, #0x58] - ldrb r1, [r8, #0x41] - ldr r0, [r0, sl, lsl #2] - mov r2, sb - str r0, [sp, #0x14] - str r1, [sp] - ldr r0, _0201CF54 @ =0x020AFC4C - ldr r1, [sp, #0x14] - ldr r0, [r0] - ldr r3, [r8, #0x5c] - add r0, r0, #0x70 - bl FUN_0201b388 - ldr r2, [r8, #0x5c] - ldr r1, _0201CF54 @ =0x020AFC4C - ldrh r3, [r2, #4] - ldr r1, [r1] - ldr r0, [sp, #0x14] - ldrh r2, [r1, #0x7c] - ldr r1, _0201CF50 @ =0x020AFC30 - lsl r3, r3, #1 - ldrh r1, [r1, r3] - ldr r0, [r0, #4] - bl FUN_0201c144 - add r0, sb, r0 - lsl r0, r0, #0x10 - lsr sb, r0, #0x10 - add r0, sl, #1 - lsl r0, r0, #0x10 - lsr sl, r0, #0x10 -_0201CB54: - cmp sl, r5 - blo _0201CAE0 -_0201CB5C: - cmp r4, #0 - bne _0201CCE0 - ldr r0, _0201CF54 @ =0x020AFC4C - ldrb r2, [r8, #0x41] - ldr r0, [r0] - ldr r1, [r8, #0x5c] - add r0, r0, #0x70 - bl FUN_0201b43c - b _0201CCE0 -_0201CB80: - cmp r1, #0 - bne _0201CC0C - mov sl, #0 - b _0201CC04 -_0201CB90: - ldr r0, [r8, #0x58] - ldrb r1, [r8, #0x41] - ldr r0, [r0, sl, lsl #2] - mov r2, sb - str r0, [sp, #0x18] - str r1, [sp] - ldr r0, _0201CF54 @ =0x020AFC4C - ldr r1, [sp, #0x18] - ldr r0, [r0] - ldr r3, [r8, #0x5c] - add r0, r0, #0xe0 - bl FUN_0201b388 - ldr r2, [r8, #0x5c] - ldr r1, _0201CF54 @ =0x020AFC4C - ldrh r3, [r2, #4] - ldr r1, [r1] - ldr r0, [sp, #0x18] - ldrh r2, [r1, #0xec] - ldr r1, _0201CF50 @ =0x020AFC30 - lsl r3, r3, #1 - ldrh r1, [r1, r3] - ldr r0, [r0, #4] - bl FUN_0201c144 - add r0, sb, r0 - lsl r0, r0, #0x10 - lsr sb, r0, #0x10 - add r0, sl, #1 - lsl r0, r0, #0x10 - lsr sl, r0, #0x10 -_0201CC04: - cmp sl, r5 - blo _0201CB90 -_0201CC0C: - cmp r4, #0 - bne _0201CCE0 - ldr r0, _0201CF54 @ =0x020AFC4C - ldrb r2, [r8, #0x41] - ldr r0, [r0] - ldr r1, [r8, #0x5c] - add r0, r0, #0xe0 - bl FUN_0201b43c - b _0201CCE0 -_0201CC30: - cmp r1, #0 - bne _0201CCC0 - mov sl, #0 - b _0201CCB8 -_0201CC40: - ldr r0, [r8, #0x58] - ldrb r1, [r8, #0x41] - ldr r0, [r0, sl, lsl #2] - mov r2, sb - str r0, [sp, #0x1c] - str r1, [sp] - ldr r0, _0201CF54 @ =0x020AFC4C - ldr r1, [sp, #0x1c] - ldr r0, [r0] - ldr r3, [r8, #0x5c] - add r0, r0, #0x150 - bl FUN_0201b388 - ldr r1, _0201CF54 @ =0x020AFC4C - ldr r2, [r8, #0x5c] - ldr r1, [r1] - ldrh r3, [r2, #4] - add r1, r1, #0x100 - ldrh r2, [r1, #0x5c] - ldr r0, [sp, #0x1c] - ldr r1, _0201CF50 @ =0x020AFC30 - lsl r3, r3, #1 - ldrh r1, [r1, r3] - ldr r0, [r0, #4] - bl FUN_0201c144 - add r0, sb, r0 - lsl r0, r0, #0x10 - lsr sb, r0, #0x10 - add r0, sl, #1 - lsl r0, r0, #0x10 - lsr sl, r0, #0x10 -_0201CCB8: - cmp sl, r5 - blo _0201CC40 -_0201CCC0: - cmp r4, #0 - bne _0201CCE0 - ldr r0, _0201CF54 @ =0x020AFC4C - ldrb r2, [r8, #0x41] - ldr r0, [r0] - ldr r1, [r8, #0x5c] - add r0, r0, #0x150 - bl FUN_0201b43c -_0201CCE0: - ldrh r1, [r8, #2] - ldr r0, _0201CF58 @ =0x0000FFFF - orr r1, r1, #0x8000 - strh r1, [r8, #2] - ldrb r1, [r8, #0x41] - strb r1, [r8, #0x43] - strh r0, [r8, #0x36] -_0201CCFC: - ldr r0, [sp, #0x40] - mov r1, #0x70 - mul r5, r0, r1 - cmp fp, #0 - moveq sb, #1 - ldr sl, _0201CF58 @ =0x0000FFFF - movne sb, #0 -_0201CD18: - cmp sb, #0 - mov r4, #0 - bne _0201CD34 - ldrsh r0, [r6] - cmp r0, #0 - strhge r0, [r8, #0x36] - bge _0201CD38 -_0201CD34: - strh sl, [r8, #0x36] -_0201CD38: - ldrsh r3, [r8, #0x1e] - ldrsh r2, [r8, #0x22] - ldrsh r1, [r8, #0x1c] - ldrsh r0, [r8, #0x20] - add r2, r3, r2 - add r0, r1, r0 - strh r2, [sp, #0x4e] - strh r0, [sp, #0x4c] - ldrh r0, [r8, #0x32] - strh r0, [sp, #0x50] - ldrh r0, [r8, #0x38] - strh r0, [sp, #0x52] - ldr r0, [sp, #0x30] - strh r0, [sp, #0x54] - ldrb r0, [r8, #0x42] - strh r0, [sp, #0x56] - ldr r0, [sp, #0x28] - strh r0, [sp, #0x58] - ldr r0, [sp, #0x38] - strb r0, [sp, #0x5a] - ldrh r0, [r8, #2] - tst r0, #0x1000 - movne r0, #1 - moveq r0, #0 - strb r0, [sp, #0x5b] - ldrh r0, [r8, #2] - tst r0, #2 - bne _0201CDD4 - ldr r0, _0201CF54 @ =0x020AFC4C - ldr r3, [sp, #0x2c] - ldr r0, [r0] - mov r1, r6 - add r0, r0, r5 - add r2, sp, #0x4c - bl FUN_0201b6d4 - cmp r0, #0 - movne r0, #1 - moveq r4, #1 - strne r0, [sp, #0x34] -_0201CDD4: - ldrh r2, [r8, #2] - tst r2, #0x200 - movne r4, #1 - cmp r4, #0 - cmpne r7, #0 - beq _0201CE80 - ldrh r0, [r7, #8] - tst r0, #1 - bne _0201CE80 - ldrh r0, [r8, #0x36] - cmp r0, sl - beq _0201CE80 - ldrb r3, [r8, #0x41] - ldrb r1, [r8, #0x43] - mov r0, #1 - cmp r3, r1 - beq _0201CE24 - tst r2, #0x40 - moveq r0, #0 - strb r3, [r8, #0x43] -_0201CE24: - ldrh r2, [r8, #0x36] - ldr r3, [r8, #0x58] - ldrh r1, [r8, #2] - ldr r3, [r3, r2, lsl #2] - ldr r2, [r8, #0x5c] - tst r1, #0x80 - str r2, [sp] - ldrb r2, [r8, #0x41] - movne r1, #1 - moveq r1, #0 - str r2, [sp, #4] - mov r2, #0 - and r4, r1, #0xff - str r2, [sp, #8] - str r4, [sp, #0xc] - str r0, [sp, #0x10] - ldr r0, _0201CF54 @ =0x020AFC4C - ldrh r2, [r8, #0x32] - ldr r0, [r0] - mov r1, r6 - add r0, r0, r5 - bl FUN_0201b53c - strh sl, [r8, #0x36] -_0201CE80: - ldrh r0, [r6, #6] - asr r0, r0, #0xb - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - addeq r6, r6, #0xa - beq _0201CD18 - ldrh r0, [r8, #2] - tst r0, #0x200 - movne r0, #0 - strne r0, [sp, #0x34] - ldr r0, [sp, #0x34] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r4, r0, #0xff - b _0201CF04 -_0201CEC8: - bne _0201CF04 - ldrsh r0, [r8, #0x3a] - ldr r1, [r8, #0x54] - ldr r3, [r1, r0, lsl #2] - mov r0, #0 - mov r1, #1 -_0201CEE0: - ldrh r2, [r3, #6] - asr r2, r2, #0xb - tst r2, #1 - movne r2, r1 - moveq r2, r0 - tst r2, #0xff - addeq r3, r3, #0xa - beq _0201CEE0 - mov r4, #1 -_0201CF04: - cmp r4, #0 - ldrhne r0, [r8, #2] - bicne r0, r0, #0x100 - strhne r0, [r8, #2] - bne _0201CF28 - cmp fp, #0 - ldrhne r0, [r8, #2] - orrne r0, r0, #0x100 - strhne r0, [r8, #2] -_0201CF28: - ldrsh r0, [r8, #0x3a] - strh r0, [r8, #0x3c] - ldrh r0, [r8] - tst r0, #0x800 - bicne r0, r0, #0x800 - strhne r0, [r8] -_0201CF40: - add sp, sp, #0x90 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0201CF48: .4byte 0x020AFC70 -_0201CF4C: .4byte 0x020AFC50 -_0201CF50: .4byte 0x020AFC30 -_0201CF54: .4byte 0x020AFC4C -_0201CF58: .4byte 0x0000FFFF - arm_func_end FUN_0201c5c4 - - arm_func_start FUN_0201cf5c -FUN_0201cf5c: @ 0x0201CF5C - push {r4, lr} - mov r4, r0 - bl FUN_0201c5c4 - ldrh r0, [r4, #2] - tst r0, #0x10 - popne {r4, pc} - mov r0, r4 - bl FUN_0201c458 - pop {r4, pc} - arm_func_end FUN_0201cf5c -_0201CF80: - .byte 0x41, 0x10, 0xD0, 0xE5, 0x01, 0x10, 0x81, 0xE2, 0x43, 0x10, 0xC0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0201cf90 -FUN_0201cf90: @ 0x0201CF90 - push {r3, lr} - mov ip, #0 - strh ip, [r0] - strh ip, [r0, #2] - ldrh r3, [r1] - tst r3, #0x8000 - movne ip, #1 - tst ip, #0xff - popeq {r3, pc} - cmp r2, #4 - pophs {r3, pc} - ldrsh ip, [r1, #0x3a] - mvn r3, #0 - cmp ip, r3 - ldrne r3, [r1, #0x50] - cmpne r3, #0 - beq _0201D024 - add ip, r3, ip, lsl #4 - lsl r3, r2, #2 - ldrsh lr, [ip, r3] - cmp lr, #0x63 - addeq r3, ip, r3 - ldrsheq r3, [r3, #2] - cmpeq r3, #0x63 - moveq r1, #0x63 - strheq r1, [r0] - strheq r1, [r0, #2] - popeq {r3, pc} - ldrsh r3, [r1, #0x20] - add r2, ip, r2, lsl #2 - add r3, r3, lr - strh r3, [r0] - ldrsh r3, [r1, #0x22] - ldrsh r1, [r2, #2] - add r1, r3, r1 - strh r1, [r0, #2] - pop {r3, pc} -_0201D024: - mov r1, #0 - strh r1, [r0] - strh r1, [r0, #2] - pop {r3, pc} - arm_func_end FUN_0201cf90 - - arm_func_start FUN_0201d034 -FUN_0201d034: @ 0x0201D034 - push {r4, r5, r6, lr} - ldrh r3, [r2] - tst r3, #0x8000 - movne r3, #1 - moveq r3, #0 - tst r3, #0xff - popeq {r4, r5, r6, pc} - ldr r4, [r2, #0x50] - cmp r4, #0 - beq _0201D0CC - ldrsh r3, [r2, #0x3a] - mov ip, #0 - mov r5, #0x63 - add r3, r4, r3, lsl #4 - b _0201D0C0 -_0201D070: - lsl r4, ip, #2 - ldrsh r6, [r3, r4] - cmp r6, #0x63 - addeq r4, r3, r4 - ldrsheq r4, [r4, #2] - cmpeq r4, #0x63 - strheq r5, [r0] - strheq r5, [r0, #2] - beq _0201D0B4 - ldrsh r4, [r2, #0x20] - add lr, r3, ip, lsl #2 - add r4, r4, r6 - strh r4, [r0] - ldrsh r4, [r2, #0x22] - ldrsh lr, [lr, #2] - add r4, r4, lr - strh r4, [r0, #2] -_0201D0B4: - add ip, ip, #1 - add r0, r0, #4 - and ip, ip, #0xff -_0201D0C0: - cmp ip, r1 - blo _0201D070 - pop {r4, r5, r6, pc} -_0201D0CC: - mov r2, #0 - mov r3, r2 - b _0201D0EC -_0201D0D8: - strh r3, [r0] - add r2, r2, #1 - strh r3, [r0, #2] - add r0, r0, #4 - and r2, r2, #0xff -_0201D0EC: - cmp r2, r1 - blo _0201D0D8 - pop {r4, r5, r6, pc} - arm_func_end FUN_0201d034 - - arm_func_start FUN_0201d0f8 -FUN_0201d0f8: @ 0x0201D0F8 - strb r1, [r0, #0x40] - bx lr - arm_func_end FUN_0201d0f8 - - arm_func_start FUN_0201d100 -FUN_0201d100: @ 0x0201D100 - ldr ip, _0201D10C @ =FUN_0201DC4C - ldrsh r0, [r0, #0x70] - bx ip - .align 2, 0 -_0201D10C: .4byte FUN_0201DC4C - arm_func_end FUN_0201d100 - - arm_func_start FUN_0201d110 -FUN_0201d110: @ 0x0201D110 - add r3, r0, #0x10 - mov r2, #6 -_0201D118: - ldrh r0, [r1], #2 - subs r2, r2, #1 - strh r0, [r3], #2 - bne _0201D118 - bx lr - arm_func_end FUN_0201d110 - - arm_func_start FUN_0201d12c -FUN_0201d12c: @ 0x0201D12C - ldrh r3, [r0, #2] - and r2, r1, #3 - ldr r1, _0201D16C @ =0x0000F3FF - orr r3, r3, #0x20 - strh r3, [r0, #2] - ldrh r3, [r0, #0x14] - lsl r2, r2, #0x10 - and r3, r3, r1 - strh r3, [r0, #0x14] - ldrh r3, [r0, #0x1a] - and r1, r3, r1 - strh r1, [r0, #0x1a] - ldrh r1, [r0, #0x1a] - orr r1, r1, r2, lsr #6 - strh r1, [r0, #0x1a] - bx lr - .align 2, 0 -_0201D16C: .4byte 0x0000F3FF - arm_func_end FUN_0201d12c - - arm_func_start FUN_0201d170 -FUN_0201d170: @ 0x0201D170 - push {r3, lr} - bl FUN_0201c3e8 - cmp r0, #0 - ldrne r0, [r0] - ldrshne r0, [r0, #0xe] - moveq r0, #0 - pop {r3, pc} - arm_func_end FUN_0201d170 - - arm_func_start FUN_0201d18c -FUN_0201d18c: @ 0x0201D18C - mov r1, #0 - strh r1, [r0] - bx lr - arm_func_end FUN_0201d18c - - arm_func_start FUN_0201d198 -FUN_0201d198: @ 0x0201D198 - cmp r1, #0 - ldrh r1, [r0] - orrne r1, r1, #0x4000 - biceq r1, r1, #0x4000 - strh r1, [r0] - bx lr - arm_func_end FUN_0201d198 - - arm_func_start FUN_0201d1b0 -FUN_0201d1b0: @ 0x0201D1B0 - ldrh r0, [r0] - tst r0, #0x2000 - movne r0, #0 - bxne lr - tst r0, #0x8000 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - arm_func_end FUN_0201d1b0 -_0201D1D4: - .byte 0x2C, 0x00, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start DeleteWanTableEntry -DeleteWanTableEntry: @ 0x0201D1DC - push {r4, lr} - mov r2, #0x38 - smlabb r4, r1, r2, r0 - ldrb r0, [r4, #0x20] - cmp r0, #0 - beq _0201D204 - mov r0, r4 - mov r1, r2 - bl MemZero - pop {r4, pc} -_0201D204: - ldr r0, [r4, #0x34] - cmp r0, #0 - ldrshne r0, [r4, #0x2c] - cmpne r0, #0 - popeq {r4, pc} - sub r0, r0, #1 - strh r0, [r4, #0x2c] - ldrsh r0, [r4, #0x2c] - cmp r0, #0 - popne {r4, pc} - ldr r0, [r4, #0x34] - bl MemFree - mov r0, r4 - mov r1, #0x38 - bl MemZero - pop {r4, pc} - arm_func_end DeleteWanTableEntry - - arm_func_start FUN_0201d244 -FUN_0201d244: @ 0x0201D244 - push {r3, r4, r5, lr} - add r1, r0, #0x1500 - mov lr, #1 - ldrsh r4, [r1, #0xa] - ldrsh r5, [r1, #8] - mov ip, lr - mov r3, #0x38 - b _0201D2C4 -_0201D264: - cmp r4, r5 - movge r4, ip - smlabb r1, r4, r3, r0 - ldr r1, [r1, #0x34] - cmp r1, #0 - bne _0201D2AC - add r2, r4, #1 - add r1, r0, #0x1500 - strh r2, [r1, #0xa] - ldrsh r3, [r1, #0xa] - ldrsh r2, [r1, #8] - cmp r3, r2 - movge r2, #1 - strhge r2, [r1, #0xa] - mov r1, #0x38 - bl MemZero - mov r0, r4 - pop {r3, r4, r5, pc} -_0201D2AC: - add r1, lr, #1 - add r2, r4, #1 - lsl r1, r1, #0x10 - lsl r2, r2, #0x10 - asr lr, r1, #0x10 - asr r4, r2, #0x10 -_0201D2C4: - cmp lr, r5 - blt _0201D264 - mvn r0, #0 - pop {r3, r4, r5, pc} - arm_func_end FUN_0201d244 - - arm_func_start FindWanTableEntry -FindWanTableEntry: @ 0x0201D2D4 - push {r4, r5, r6, r7, r8, lr} - mov r6, r0 - add r0, r6, #0x1500 - mov r5, r1 - ldrsh r4, [r0, #8] - mov r8, #1 - mov r7, #0x38 - b _0201D324 -_0201D2F4: - smlabb r0, r8, r7, r6 - ldrb r1, [r0, #0x21] - cmp r1, #1 - bne _0201D318 - mov r1, r5 - bl Strcmp - cmp r0, #0 - moveq r0, r8 - popeq {r4, r5, r6, r7, r8, pc} -_0201D318: - add r0, r8, #1 - lsl r0, r0, #0x10 - asr r8, r0, #0x10 -_0201D324: - cmp r8, r4 - blt _0201D2F4 - mvn r0, #0 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FindWanTableEntry - - arm_func_start GetLoadedWanTableEntry -GetLoadedWanTableEntry: @ 0x0201D334 - push {r3, r4, r5, lr} - add r3, r0, #0x1500 - ldrsh r5, [r3, #8] - mov r4, #1 - mov ip, #0x38 - b _0201D37C -_0201D34C: - smlabb lr, r4, ip, r0 - ldrb r3, [lr, #0x21] - cmp r3, #2 - ldrheq r3, [lr, #0x22] - cmpeq r1, r3 - ldrheq r3, [lr, #0x24] - cmpeq r2, r3 - moveq r0, r4 - popeq {r3, r4, r5, pc} - add r3, r4, #1 - lsl r3, r3, #0x10 - asr r4, r3, #0x10 -_0201D37C: - cmp r4, r5 - blt _0201D34C - mvn r0, #0 - pop {r3, r4, r5, pc} - arm_func_end GetLoadedWanTableEntry - - arm_func_start FUN_0201d38c -FUN_0201d38c: @ 0x0201D38C - push {r4, lr} - ldr r1, _0201D3B8 @ =0x00001510 - mov r4, r0 - bl MemZero - add r1, r4, #0x1500 - mov r2, #1 - strh r2, [r1, #0xa] - add r0, r4, #0x1000 - strb r2, [r0, #0x50c] - strh r2, [r1, #0xa] - pop {r4, pc} - .align 2, 0 -_0201D3B8: .4byte 0x00001510 - arm_func_end FUN_0201d38c - - arm_func_start FUN_0201d3bc -FUN_0201d3bc: @ 0x0201D3BC - push {r4, lr} - mov r1, #0x1500 - mov r4, r0 - bl MemZero - add r0, r4, #0x1500 - mov r1, #0x60 - strh r1, [r0, #8] - pop {r4, pc} - arm_func_end FUN_0201d3bc - - arm_func_start LoadWanTableEntry -LoadWanTableEntry: @ 0x0201D3DC - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #8 - mov r5, r0 - mov r6, r1 - mov r7, r2 - bl FindWanTableEntry - mvn r1, #0 - cmp r0, r1 - beq _0201D418 - mov r1, #0x38 - smlabb r2, r0, r1, r5 - ldrsh r1, [r2, #0x2c] - add r1, r1, #1 - strh r1, [r2, #0x2c] - b _0201D47C -_0201D418: - mov r0, r5 - bl FUN_0201d244 - mov r4, r0 - mov r0, #0x38 - smlabb r5, r4, r0, r5 - mov r3, #1 - add r0, sp, #0 - mov r1, r6 - mov r2, r7 - strb r3, [r5, #0x21] - bl LoadFileFromRom - ldr r1, [sp] - mov r0, r5 - str r1, [r5, #0x34] - ldr r2, [sp, #4] - mov r1, r6 - str r2, [r5, #0x28] - bl Strcpy - ldrsh r1, [r5, #0x2c] - add r0, r5, #0x30 - add r1, r1, #1 - strh r1, [r5, #0x2c] - ldr r1, [r5, #0x34] - bl HandleSir0TranslationVeneer - mov r0, r4 -_0201D47C: - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end LoadWanTableEntry - - arm_func_start FUN_0201d484 -FUN_0201d484: @ 0x0201D484 - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov sb, r0 - mov r8, r1 - mov r7, r2 - mov r6, r3 - bl GetLoadedWanTableEntry - mvn r1, #0 - cmp r0, r1 - beq _0201D4C0 - mov r1, #0x38 - smlabb r2, r0, r1, sb - ldrsh r1, [r2, #0x2c] - add r1, r1, #1 - strh r1, [r2, #0x2c] - pop {r3, r4, r5, r6, r7, r8, sb, pc} -_0201D4C0: - mov r0, sb - bl FUN_0201d244 - mov r5, r0 - mov r0, #0x38 - smlabb r4, r5, r0, sb - ldrb r0, [sp, #0x20] - mov r1, #2 - strb r1, [r4, #0x21] - strh r8, [r4, #0x22] - strh r7, [r4, #0x24] - cmp r0, #0 - beq _0201D53C - add r0, sb, #0x1000 - ldr sb, [r0, #0x500] - mov r0, r8 - mov r1, r7 - bl GetFileLengthInPackWithPackNb - mov r0, r8 - mov r1, r7 - mov r2, sb - bl LoadFileInPackWithPackId - mov r0, sb - bl GetAtSize - mov r7, r0 - mov r1, r6 - bl MemAlloc - mov r1, r7 - mov r2, sb - mov r6, r0 - bl DecompressAtNormalVeneer - b _0201D56C -_0201D53C: - mov r0, r8 - mov r1, r7 - bl GetFileLengthInPackWithPackNb - mov r1, r6 - mov sb, r0 - bl MemAlloc - mov r6, r0 - mov r0, r8 - mov r1, r7 - mov r2, r6 - bl LoadFileInPackWithPackId - str sb, [r4, #0x28] -_0201D56C: - str r6, [r4, #0x34] - ldrsh r1, [r4, #0x2c] - add r0, r4, #0x30 - add r1, r1, #1 - strh r1, [r4, #0x2c] - ldr r1, [r4, #0x34] - bl HandleSir0TranslationVeneer - mov r0, r5 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_0201d484 - - arm_func_start FUN_0201d590 -FUN_0201d590: @ 0x0201D590 - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov sb, r0 - mov r8, r1 - mov r7, r2 - mov r6, r3 - bl GetLoadedWanTableEntry - mvn r1, #0 - cmp r0, r1 - beq _0201D5CC - mov r1, #0x38 - smlabb r2, r0, r1, sb - ldrsh r1, [r2, #0x2c] - add r1, r1, #1 - strh r1, [r2, #0x2c] - pop {r3, r4, r5, r6, r7, r8, sb, pc} -_0201D5CC: - mov r0, sb - bl FUN_0201d244 - ldrb r1, [sp, #0x20] - mov r5, r0 - mov r0, #0x38 - smlabb r4, r5, r0, sb - cmp r1, #0 - beq _0201D62C - add r0, sb, #0x1000 - ldr sb, [r0, #0x500] - mov r0, r8 - mov r1, r7 - bl GetFileLengthInPackWithPackNb - mov r0, r8 - mov r1, r7 - mov r2, sb - bl LoadFileInPackWithPackId - mov r0, sb - bl GetAtSize - mov r2, sb - mov r1, r0 - mov r0, r6 - bl DecompressAtNormalVeneer - b _0201D648 -_0201D62C: - mov r0, r8 - mov r1, r7 - bl GetFileLengthInPackWithPackNb - mov r0, r8 - mov r1, r7 - mov r2, r6 - bl LoadFileInPackWithPackId -_0201D648: - mov r0, #2 - strb r0, [r4, #0x21] - strh r8, [r4, #0x22] - strh r7, [r4, #0x24] - str r6, [r4, #0x34] - ldrsh r1, [r4, #0x2c] - add r0, r4, #0x30 - add r1, r1, #1 - strh r1, [r4, #0x2c] - ldr r1, [r4, #0x34] - bl HandleSir0TranslationVeneer - mov r1, #1 - mov r0, r5 - strb r1, [r4, #0x20] - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_0201d590 - - arm_func_start ReplaceWanFromBinFile -ReplaceWanFromBinFile: @ 0x0201D684 - push {r4, r5, r6, r7, r8, lr} - ldrb ip, [sp, #0x18] - mov r4, #0x38 - smlabb r6, r1, r4, r0 - mov r5, r2 - mov r4, r3 - cmp ip, #0 - beq _0201D6E8 - add r0, r0, #0x1000 - ldr r7, [r0, #0x500] - mov r0, r5 - mov r1, r4 - ldr r8, [r6, #0x34] - bl GetFileLengthInPackWithPackNb - mov r0, r5 - mov r1, r4 - mov r2, r7 - bl LoadFileInPackWithPackId - mov r0, r7 - bl GetAtSize - mov r2, r7 - mov r1, r0 - mov r0, r8 - bl DecompressAtNormalVeneer - b _0201D708 -_0201D6E8: - ldr r7, [r6, #0x34] - mov r0, r5 - mov r1, r4 - bl GetFileLengthInPackWithPackNb - mov r0, r5 - mov r1, r4 - mov r2, r7 - bl LoadFileInPackWithPackId -_0201D708: - ldr r1, [r6, #0x34] - add r0, r6, #0x30 - bl HandleSir0TranslationVeneer - mov r0, #2 - strb r0, [r6, #0x21] - strh r5, [r6, #0x22] - strh r4, [r6, #0x24] - mov r0, #1 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end ReplaceWanFromBinFile - - arm_func_start DeleteWanTableEntryVeneer -DeleteWanTableEntryVeneer: @ 0x0201D72C - ldr ip, _0201D734 @ =DeleteWanTableEntry - bx ip - .align 2, 0 -_0201D734: .4byte DeleteWanTableEntry - arm_func_end DeleteWanTableEntryVeneer - - arm_func_start FUN_0201d738 -FUN_0201d738: @ 0x0201D738 - push {r4, r5, r6, lr} - mov r6, r0 - add r3, r6, #0x1000 - ldr r3, [r3, #0x500] - mov r5, r1 - mov r4, r2 - cmp r3, #0 - beq _0201D75C - bl FUN_0201d778 -_0201D75C: - mov r0, r5 - mov r1, r4 - bl MemAlloc - add r1, r6, #0x1000 - str r0, [r1, #0x500] - str r5, [r1, #0x504] - pop {r4, r5, r6, pc} - arm_func_end FUN_0201d738 - - arm_func_start FUN_0201d778 -FUN_0201d778: @ 0x0201D778 - push {r4, lr} - mov r4, r0 - add r0, r4, #0x1000 - ldr r0, [r0, #0x500] - cmp r0, #0 - popeq {r4, pc} - bl MemFree - add r0, r4, #0x1000 - mov r1, #0 - str r1, [r0, #0x500] - str r1, [r0, #0x504] - pop {r4, pc} - arm_func_end FUN_0201d778 - - arm_func_start FUN_0201d7a8 -FUN_0201d7a8: @ 0x0201D7A8 - push {r3, lr} - ldr r0, _0201D7D8 @ =0x00001510 - mov r1, #0 - bl MemAlloc - ldr r2, _0201D7DC @ =0x020AFC64 - ldr r1, _0201D7D8 @ =0x00001510 - str r0, [r2, #4] - bl MemZero - ldr r0, _0201D7DC @ =0x020AFC64 - ldr r0, [r0, #4] - bl FUN_0201d38c - pop {r3, pc} - .align 2, 0 -_0201D7D8: .4byte 0x00001510 -_0201D7DC: .4byte 0x020AFC64 - arm_func_end FUN_0201d7a8 -_0201D7E0: - .byte 0x14, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE1, 0x04, 0x00, 0x92, 0xE5, 0x01, 0x20, 0xA0, 0xE1 - .byte 0x08, 0xC0, 0x9F, 0xE5, 0x03, 0x10, 0xA0, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1, 0x64, 0xFC, 0x0A, 0x02 - .byte 0x38, 0xD7, 0x01, 0x02, 0x08, 0x00, 0x9F, 0xE5, 0x08, 0xC0, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x64, 0xFC, 0x0A, 0x02, 0x78, 0xD7, 0x01, 0x02 - - arm_func_start FUN_0201d81c -FUN_0201d81c: @ 0x0201D81C - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldrb r4, [sp, #0x2c] - ldr r5, [r0, #4] - mov sl, r1 - mov sb, r2 - cmp r4, #0 - ldrh r7, [r5, #0xe] - beq _0201D848 - cmp r4, #1 - beq _0201D8E4 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0201D848: - cmp r3, #0 - beq _0201D8C0 - mov r8, #0 - ldr fp, _0201D988 @ =0x020AFC30 - ldr r4, _0201D98C @ =0x020AFC4C - b _0201D8B8 -_0201D860: - ldr r0, [r5] - mov r2, sl - ldr r6, [r0, r8, lsl #2] - str sb, [sp] - ldr r0, [r4] - ldr r3, [r5, #4] - mov r1, r6 - bl FUN_0201b388 - ldr r1, [r5, #4] - ldr r0, [r4] - ldrh r1, [r1, #4] - ldrh r2, [r0, #0xc] - ldr r0, [r6, #4] - lsl r1, r1, #1 - ldrh r1, [fp, r1] - bl FUN_0201d990 - add r0, sl, r0 - add r1, r8, #1 - lsl r0, r0, #0x10 - lsl r1, r1, #0x10 - lsr sl, r0, #0x10 - lsr r8, r1, #0x10 -_0201D8B8: - cmp r8, r7 - blo _0201D860 -_0201D8C0: - ldrb r0, [sp, #0x28] - cmp r0, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldr r0, _0201D98C @ =0x020AFC4C - ldr r1, [r5, #4] - ldr r0, [r0] - mov r2, sb - bl FUN_0201b43c - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0201D8E4: - cmp r3, #0 - beq _0201D960 - mov r6, #0 - ldr fp, _0201D988 @ =0x020AFC30 - ldr r4, _0201D98C @ =0x020AFC4C - b _0201D958 -_0201D8FC: - ldr r0, [r5] - mov r2, sl - ldr r8, [r0, r6, lsl #2] - str sb, [sp] - ldr r0, [r4] - ldr r3, [r5, #4] - mov r1, r8 - add r0, r0, #0x70 - bl FUN_0201b388 - ldr r1, [r5, #4] - ldr r0, [r4] - ldrh r1, [r1, #4] - ldrh r2, [r0, #0x7c] - ldr r0, [r8, #4] - lsl r1, r1, #1 - ldrh r1, [fp, r1] - bl FUN_0201d990 - add r0, sl, r0 - add r1, r6, #1 - lsl r0, r0, #0x10 - lsl r1, r1, #0x10 - lsr sl, r0, #0x10 - lsr r6, r1, #0x10 -_0201D958: - cmp r6, r7 - blo _0201D8FC -_0201D960: - ldrb r0, [sp, #0x28] - cmp r0, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldr r0, _0201D98C @ =0x020AFC4C - ldr r1, [r5, #4] - ldr r0, [r0] - mov r2, sb - add r0, r0, #0x70 - bl FUN_0201b43c - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0201D988: .4byte 0x020AFC30 -_0201D98C: .4byte 0x020AFC4C - arm_func_end FUN_0201d81c - - arm_func_start FUN_0201d990 -FUN_0201d990: @ 0x0201D990 - push {r3, lr} - ldr r1, _0201D9C4 @ =0x020AFC3C - ldr r1, [r1, r2, lsl #2] - lsl r1, r1, #0x10 - add r0, r0, r1, asr #16 - sub r0, r0, #1 - lsl r0, r0, #0x10 - asr r1, r1, #0x10 - asr r0, r0, #0x10 - bl DivideInt - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - pop {r3, pc} - .align 2, 0 -_0201D9C4: .4byte 0x020AFC3C - arm_func_end FUN_0201d990 - - arm_func_start FUN_0201d9c8 -FUN_0201d9c8: @ 0x0201D9C8 - push {r3, lr} - sub sp, sp, #8 - ldrb lr, [sp, #0x14] - ldr ip, _0201D9FC @ =0x020AFC64 - mov r3, #1 - stm sp, {r3, lr} - ldr lr, [ip, #4] - mov ip, #0x38 - smlabb r0, r0, ip, lr - ldr r0, [r0, #0x30] - bl FUN_0201d81c - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_0201D9FC: .4byte 0x020AFC64 - arm_func_end FUN_0201d9c8 - - arm_func_start FUN_0201DA00 -FUN_0201DA00: @ 0x0201DA00 - ldrb r1, [r0, #8] - ldr r0, [r0] - cmp r1, #0 - cmpne r1, #2 - ldreq r0, [r0, #8] - ldrsheq r0, [r0, #4] - ldrshne r0, [r0, #0xc] - bx lr - arm_func_end FUN_0201DA00 - - arm_func_start FUN_0201da20 -FUN_0201da20: @ 0x0201DA20 - ldr r2, _0201DA3C @ =0x020AFC64 - mov r1, #0x38 - ldr r2, [r2, #4] - ldr ip, _0201DA40 @ =FUN_0201DA00 - smlabb r0, r0, r1, r2 - ldr r0, [r0, #0x30] - bx ip - .align 2, 0 -_0201DA3C: .4byte 0x020AFC64 -_0201DA40: .4byte FUN_0201DA00 - arm_func_end FUN_0201da20 - - arm_func_start FUN_0201DA44 -FUN_0201DA44: @ 0x0201DA44 - ldr r2, [r0] - ldrsh r0, [r2, #0xc] - cmp r1, r0 - bge _0201DA70 - cmp r1, #0 - blt _0201DA70 - ldr r0, [r2, #8] - add r0, r0, r1, lsl #3 - ldrh r0, [r0, #4] - cmp r0, #0 - bne _0201DA78 -_0201DA70: - mov r0, #0 - bx lr -_0201DA78: - mov r0, #1 - bx lr - arm_func_end FUN_0201DA44 - - arm_func_start FUN_0201da80 -FUN_0201da80: @ 0x0201DA80 - ldr r3, _0201DA9C @ =0x020AFC64 - mov r2, #0x38 - ldr r3, [r3, #4] - ldr ip, _0201DAA0 @ =FUN_0201DA44 - smlabb r0, r0, r2, r3 - ldr r0, [r0, #0x30] - bx ip - .align 2, 0 -_0201DA9C: .4byte 0x020AFC64 -_0201DAA0: .4byte FUN_0201DA44 - arm_func_end FUN_0201da80 -_0201DAA4: - .byte 0xF8, 0x4F, 0x2D, 0xE9, 0x04, 0x50, 0x90, 0xE5, 0x01, 0xA0, 0xA0, 0xE1 - .byte 0x02, 0x90, 0xA0, 0xE1, 0x00, 0x00, 0x53, 0xE3, 0xBE, 0x70, 0xD5, 0xE1, 0x02, 0x00, 0x00, 0x0A - .byte 0x01, 0x00, 0x53, 0xE3, 0x1B, 0x00, 0x00, 0x0A, 0xF8, 0x8F, 0xBD, 0xE8, 0x00, 0x80, 0xA0, 0xE3 - .byte 0x08, 0x60, 0xA0, 0xE1, 0xD4, 0x40, 0x9F, 0xE5, 0xD4, 0xB0, 0x9F, 0xE5, 0x12, 0x00, 0x00, 0xEA - .byte 0x00, 0x60, 0x8D, 0xE5, 0x05, 0x00, 0x95, 0xE8, 0x08, 0x01, 0x90, 0xE7, 0x0A, 0x10, 0xA0, 0xE1 - .byte 0x09, 0x30, 0xA0, 0xE1, 0x2C, 0xF9, 0xFF, 0xEB, 0x04, 0x20, 0x95, 0xE5, 0x00, 0x10, 0x9B, 0xE5 - .byte 0xB4, 0x30, 0xD2, 0xE1, 0xBC, 0x20, 0xD1, 0xE1, 0x83, 0x10, 0xA0, 0xE1, 0xB1, 0x10, 0x94, 0xE1 - .byte 0x9E, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x8A, 0xE0, 0x01, 0x10, 0x88, 0xE2, 0x00, 0x08, 0xA0, 0xE1 - .byte 0x01, 0x18, 0xA0, 0xE1, 0x20, 0xA8, 0xA0, 0xE1, 0x21, 0x88, 0xA0, 0xE1, 0x07, 0x00, 0x58, 0xE1 - .byte 0xEA, 0xFF, 0xFF, 0x3A, 0xF8, 0x8F, 0xBD, 0xE8, 0x00, 0x80, 0xA0, 0xE3, 0x01, 0x40, 0xA0, 0xE3 - .byte 0x68, 0xB0, 0x9F, 0xE5, 0x16, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x95, 0xE5, 0x0A, 0x10, 0xA0, 0xE1 - .byte 0x08, 0x61, 0x90, 0xE7, 0x09, 0x30, 0xA0, 0xE1, 0x00, 0x40, 0x8D, 0xE5, 0x04, 0x20, 0x95, 0xE5 - .byte 0x06, 0x00, 0xA0, 0xE1, 0x10, 0xF9, 0xFF, 0xEB, 0x04, 0x20, 0x95, 0xE5, 0x40, 0x00, 0x9F, 0xE5 - .byte 0xB4, 0x30, 0xD2, 0xE1, 0x00, 0x10, 0x90, 0xE5, 0x04, 0x00, 0x96, 0xE5, 0xBC, 0x27, 0xD1, 0xE1 - .byte 0x83, 0x10, 0xA0, 0xE1, 0xB1, 0x10, 0x9B, 0xE1, 0x80, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x8A, 0xE0 - .byte 0x01, 0x10, 0x88, 0xE2, 0x00, 0x08, 0xA0, 0xE1, 0x01, 0x18, 0xA0, 0xE1, 0x20, 0xA8, 0xA0, 0xE1 - .byte 0x21, 0x88, 0xA0, 0xE1, 0x07, 0x00, 0x58, 0xE1, 0xE6, 0xFF, 0xFF, 0x3A, 0xF8, 0x8F, 0xBD, 0xE8 - .byte 0x30, 0xFC, 0x0A, 0x02, 0x4C, 0xFC, 0x0A, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x14, 0xE0, 0x9F, 0xE5 - .byte 0x38, 0xC0, 0xA0, 0xE3, 0x04, 0xE0, 0x9E, 0xE5, 0x80, 0xEC, 0x00, 0xE1, 0x30, 0x00, 0x90, 0xE5 - .byte 0xB3, 0xFF, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x64, 0xFC, 0x0A, 0x02 - - arm_func_start FUN_0201DBDC -FUN_0201DBDC: @ 0x0201DBDC - ldr r0, [r0, #4] - ldr r1, [r0, #4] - cmp r1, #0 - moveq r0, #0 - bxeq lr - ldrh r0, [r1, #4] - cmp r0, #1 - bne _0201DC30 - ldrb r0, [r1, #0xb] - cmp r0, #0 - ldrsh r0, [r1, #6] - addne r1, r0, #0xf - asrne r0, r1, #3 - addne r0, r1, r0, lsr #28 - lslne r0, r0, #0xc - addeq r1, r0, #0xff - asreq r0, r1, #7 - addeq r0, r1, r0, lsr #24 - lsleq r0, r0, #8 - asr r0, r0, #0x10 - bx lr -_0201DC30: - ldrsh r0, [r1, #6] - add r1, r0, #0xf - asr r0, r1, #3 - add r0, r1, r0, lsr #28 - lsl r0, r0, #0xc - asr r0, r0, #0x10 - bx lr - arm_func_end FUN_0201DBDC - - arm_func_start FUN_0201DC4C -FUN_0201DC4C: @ 0x0201DC4C - ldr r2, _0201DC68 @ =0x020AFC64 - mov r1, #0x38 - ldr r2, [r2, #4] - ldr ip, _0201DC6C @ =FUN_0201DBDC - smlabb r0, r0, r1, r2 - ldr r0, [r0, #0x30] - bx ip - .align 2, 0 -_0201DC68: .4byte 0x020AFC64 -_0201DC6C: .4byte FUN_0201DBDC - arm_func_end FUN_0201DC4C - - arm_func_start FUN_0201dc70 -FUN_0201dc70: @ 0x0201DC70 - ldr r2, _0201DC8C @ =0x020AFC64 - mov r1, #0x38 - ldr r2, [r2, #4] - smlabb r0, r0, r1, r2 - ldr r0, [r0, #0x30] - ldrb r0, [r0, #8] - bx lr - .align 2, 0 -_0201DC8C: .4byte 0x020AFC64 - arm_func_end FUN_0201dc70 - - arm_func_start FUN_0201dc90 -FUN_0201dc90: @ 0x0201DC90 - push {r3, lr} - ldr r0, _0201DCC8 @ =0x000007C4 - mov r1, #0 - bl MemAlloc - ldr r2, _0201DCCC @ =0x020AFC6C - ldr r1, _0201DCC8 @ =0x000007C4 - str r0, [r2] - bl MemZero - ldr r0, _0201DCCC @ =0x020AFC6C - mov r1, #1 - ldr r0, [r0] - add r0, r0, #0x700 - strh r1, [r0, #0xc0] - pop {r3, pc} - .align 2, 0 -_0201DCC8: .4byte 0x000007C4 -_0201DCCC: .4byte 0x020AFC6C - arm_func_end FUN_0201dc90 - - arm_func_start FUN_0201dcd0 -FUN_0201dcd0: @ 0x0201DCD0 - push {r3, lr} - ldr r0, _0201DCF0 @ =0x020AFC6C - ldr r0, [r0] - bl MemFree - ldr r0, _0201DCF0 @ =0x020AFC6C - mov r1, #0 - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_0201DCF0: .4byte 0x020AFC6C - arm_func_end FUN_0201dcd0 -_0201DCF4: - .byte 0x48, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5 - .byte 0x01, 0x30, 0xA0, 0xE3, 0xC2, 0x27, 0xC1, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x7C, 0x10, 0xA0, 0xE3 - .byte 0x06, 0x00, 0x00, 0xEA, 0x83, 0x21, 0x00, 0xE1, 0xB2, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x10, 0xE3 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0x00, 0x83, 0xE2, 0x00, 0x08, 0xA0, 0xE1, 0x40, 0x38, 0xA0, 0xE1 - .byte 0x10, 0x00, 0x53, 0xE3, 0xF6, 0xFF, 0xFF, 0xBA, 0x01, 0x00, 0xA0, 0xE3, 0xC2, 0x07, 0xC2, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x6C, 0xFC, 0x0A, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x38, 0x50, 0x9F, 0xE5 - .byte 0x01, 0x60, 0xA0, 0xE3, 0x7C, 0x40, 0xA0, 0xE3, 0x00, 0x00, 0x95, 0xE5, 0x86, 0x04, 0x00, 0xE1 - .byte 0xB2, 0x10, 0xD0, 0xE1, 0x01, 0x00, 0x11, 0xE3, 0x00, 0x00, 0x00, 0x0A, 0x7A, 0xFC, 0xFF, 0xEB - .byte 0x01, 0x00, 0x86, 0xE2, 0x00, 0x08, 0xA0, 0xE1, 0x40, 0x68, 0xA0, 0xE1, 0x10, 0x00, 0x56, 0xE3 - .byte 0xF4, 0xFF, 0xFF, 0xBA, 0xDA, 0xFF, 0xFF, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x6C, 0xFC, 0x0A, 0x02 - - arm_func_start FUN_0201dd90 -FUN_0201dd90: @ 0x0201DD90 - push {r3, lr} - mov r0, #0x2ec - mov r1, #0 - bl MemAlloc - ldr r1, _0201DDF0 @ =0x020AFC70 - str r0, [r1] - bl FUN_0201e614 - ldr r0, _0201DDF0 @ =0x020AFC70 - ldr r1, _0201DDF4 @ =0x06860000 - ldr r0, [r0] - add r2, r1, #0x30000 - add r0, r0, #0xbc - mov r3, #0x80 - bl FUN_0201e190 - ldr r0, _0201DDF0 @ =0x020AFC70 - ldr r2, _0201DDF8 @ =0x06890000 - ldr r1, [r0] - mov r0, #0x2000 - str r0, [sp] - add r0, r1, #0xcc - add r1, r1, #0xbc - mov r3, #0 - bl FUN_0201e314 - pop {r3, pc} - .align 2, 0 -_0201DDF0: .4byte 0x020AFC70 -_0201DDF4: .4byte 0x06860000 -_0201DDF8: .4byte 0x06890000 - arm_func_end FUN_0201dd90 - - arm_func_start FUN_0201ddfc -FUN_0201ddfc: @ 0x0201DDFC - push {r3, lr} - bl FUN_0201e5b0 - bl FUN_0201e71c - bl FUN_0201e544 - pop {r3, pc} - arm_func_end FUN_0201ddfc - - arm_func_start FUN_0201de10 -FUN_0201de10: @ 0x0201DE10 - push {r3, lr} - ldr r0, _0201DE48 @ =0x020AFC70 - ldr r0, [r0] - add r0, r0, #0xcc - bl FUN_0201e424 - ldr r0, _0201DE48 @ =0x020AFC70 - ldr r0, [r0] - add r0, r0, #0xbc - bl FUN_0201e230 - ldr r0, _0201DE48 @ =0x020AFC70 - ldr r0, [r0] - add r0, r0, #0xbc - bl FUN_0201e1d4 - pop {r3, pc} - .align 2, 0 -_0201DE48: .4byte 0x020AFC70 - arm_func_end FUN_0201de10 - - arm_func_start LoadWteFromRom -LoadWteFromRom: @ 0x0201DE4C - push {r3, r4, r5, r6, lr} - sub sp, sp, #0x10c - mov r5, r1 - mov r6, r0 - ldr r1, _0201DEBC @ =0x02099714 - add r0, sp, #0xc - mov r4, r2 - bl Strcpy - add r0, sp, #0xc - mov r1, r5 - bl Strcat - add r0, sp, #4 - add r1, sp, #0xc - mov r2, r4 - bl LoadFileFromRom - ldr r1, [sp, #4] - add r0, sp, #0 - bl HandleSir0Translation - ldr r0, [sp] - ldr r1, _0201DEC0 @ =0x0209971C - mov r2, #4 - bl Strncmp - ldr r0, [sp, #4] - str r0, [r6] - ldr r0, [sp] - str r0, [r6, #4] - add sp, sp, #0x10c - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_0201DEBC: .4byte 0x02099714 -_0201DEC0: .4byte 0x0209971C - arm_func_end LoadWteFromRom - - arm_func_start LoadWteFromFileDirectory -LoadWteFromFileDirectory: @ 0x0201DEC4 - push {r3, r4, lr} - sub sp, sp, #0xc - mov r4, r0 - mov r0, r1 - mov r1, r2 - add r2, sp, #0 - bl AllocAndLoadFileInPack - ldr r1, [sp] - add r0, sp, #8 - bl HandleSir0Translation - ldr r0, [sp, #8] - ldr r1, _0201DF14 @ =0x0209971C - mov r2, #4 - bl Strncmp - ldr r0, [sp] - str r0, [r4] - ldr r0, [sp, #8] - str r0, [r4, #4] - add sp, sp, #0xc - pop {r3, r4, pc} - .align 2, 0 -_0201DF14: .4byte 0x0209971C - arm_func_end LoadWteFromFileDirectory - - arm_func_start UnloadWte -UnloadWte: @ 0x0201DF18 - push {r4, lr} - mov r4, r0 - ldr r0, [r4] - bl MemFree - mov r0, #0 - str r0, [r4] - str r0, [r4, #4] - pop {r4, pc} - arm_func_end UnloadWte - - arm_func_start FUN_0201df38 -FUN_0201df38: @ 0x0201DF38 - push {r4, r5, r6, lr} - sub sp, sp, #0x108 - mov r6, r0 - mov r0, #8 - mov r5, r1 - bl MemAlloc - mov r4, r0 - ldr r1, _0201DFAC @ =0x02099714 - add r0, sp, #8 - bl Strcpy - add r0, sp, #8 - mov r1, r6 - bl Strcat - add r0, sp, #0 - add r1, sp, #8 - mov r2, r5 - bl LoadFileFromRom - ldr r5, [sp] - ldr r1, _0201DFB0 @ =0x02099720 - str r5, [r4] - mov r0, r5 - mov r2, #4 - bl Strncmp - ldr r1, [r5, #0xc] - mov r0, r4 - add r1, r5, r1 - str r1, [r4, #4] - add sp, sp, #0x108 - pop {r4, r5, r6, pc} - .align 2, 0 -_0201DFAC: .4byte 0x02099714 -_0201DFB0: .4byte 0x02099720 - arm_func_end FUN_0201df38 - - arm_func_start LoadWtuFromBin -LoadWtuFromBin: @ 0x0201DFB4 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #8 - mov r5, r2 - mov r7, r0 - mov r6, r1 - mov r1, r5 - mov r0, #8 - bl MemAlloc - mov r4, r0 - add r2, sp, #0 - mov r0, r7 - mov r1, r6 - mov r3, r5 - bl AllocAndLoadFileInPack - ldr r5, [sp] - ldr r1, _0201E01C @ =0x02099720 - str r5, [r4] - mov r0, r5 - mov r2, #4 - bl Strncmp - ldr r1, [r5, #0xc] - mov r0, r4 - add r1, r5, r1 - str r1, [r4, #4] - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0201E01C: .4byte 0x02099720 - arm_func_end LoadWtuFromBin - - arm_func_start FUN_0201e020 -FUN_0201e020: @ 0x0201E020 - push {r4, lr} - mov r4, r0 - ldr r0, [r4] - cmp r0, #0 - popeq {r4, pc} - ldr r0, [r0] - bl MemFree - ldr r0, [r4] - bl MemFree - mov r0, #0 - str r0, [r4] - pop {r4, pc} - arm_func_end FUN_0201e020 - - arm_func_start FUN_0201e050 -FUN_0201e050: @ 0x0201E050 - push {r3, lr} - ldr ip, _0201E07C @ =0x020AFC70 - str r3, [sp] - ldr ip, [ip] - mov lr, r1 - mov r3, r2 - mov r1, r0 - mov r2, lr - add r0, ip, #0xbc - bl FUN_0201e1e0 - pop {r3, pc} - .align 2, 0 -_0201E07C: .4byte 0x020AFC70 - arm_func_end FUN_0201e050 - - arm_func_start FUN_0201e080 -FUN_0201e080: @ 0x0201E080 - push {r3, lr} - mov r2, #2 - ldr r1, _0201E0AC @ =0x020AFC70 - str r2, [sp] - mov r2, #0 - ldr ip, [r1] - mov r1, r0 - mov r3, r2 - add r0, ip, #0xbc - bl FUN_0201e1e0 - pop {r3, pc} - .align 2, 0 -_0201E0AC: .4byte 0x020AFC70 - arm_func_end FUN_0201e080 - - arm_func_start ProcessWte -ProcessWte: @ 0x0201E0B0 - push {r3, r4, r5, r6, lr} - sub sp, sp, #4 - mov r6, r0 - mov ip, r1 - ldr r1, [r6, #4] - mov r5, r2 - mov r4, r3 - cmp r1, #0 - beq _0201E0F4 - mov r0, #0 - str r0, [sp] - ldr r0, _0201E128 @ =0x020AFC70 - ldr r3, [r6, #8] - ldr r0, [r0] - mov r2, ip - add r0, r0, #0xbc - bl FUN_0201e1e0 -_0201E0F4: - ldr r0, [r6, #0x18] - cmp r0, #0 - beq _0201E120 - ldr r0, _0201E128 @ =0x020AFC70 - str r4, [sp] - ldr r0, [r0] - ldrsh r2, [r6, #0x1c] - ldr r1, [r6, #0x18] - mov r3, r5 - add r0, r0, #0xcc - bl FUN_0201e3ac -_0201E120: - add sp, sp, #4 - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_0201E128: .4byte 0x020AFC70 - arm_func_end ProcessWte - - arm_func_start FUN_0201e12c -FUN_0201e12c: @ 0x0201E12C - ldr ip, _0201E138 @ =ProcessWte - ldr r0, [r0, #4] - bx ip - .align 2, 0 -_0201E138: .4byte ProcessWte - arm_func_end FUN_0201e12c - - arm_func_start FUN_0201e13c -FUN_0201e13c: @ 0x0201E13C - push {r3, r4, lr} - sub sp, sp, #4 - mov r2, #2 - ldr r1, _0201E180 @ =0x020AFC70 - str r2, [sp] - mov r4, r0 - ldr r0, [r1] - mov r2, #0 - ldr r1, [r4] - mov r3, r2 - add r0, r0, #0xbc - bl FUN_0201e1e0 - mov r0, #0 - str r0, [r4] - str r0, [r4, #4] - add sp, sp, #4 - pop {r3, r4, pc} - .align 2, 0 -_0201E180: .4byte 0x020AFC70 - arm_func_end FUN_0201e13c - - arm_func_start FUN_0201e184 -FUN_0201e184: @ 0x0201E184 - lsl r0, r0, #9 - asr r0, r0, #0x10 - bx lr - arm_func_end FUN_0201e184 - - arm_func_start FUN_0201e190 -FUN_0201e190: @ 0x0201E190 - push {r3, r4, r5, r6, r7, lr} - mov ip, #0x1c - mul r4, r3, ip - mov r7, r0 - mov r6, r1 - mov r0, r4 - mov r1, #0 - mov r5, r2 - bl MemAlloc - mov r1, r4 - str r0, [r7] - bl MemZero - mov r0, #0 - strh r0, [r7, #0xc] - str r6, [r7, #4] - str r5, [r7, #8] - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0201e190 - - arm_func_start FUN_0201e1d4 -FUN_0201e1d4: @ 0x0201E1D4 - mov r1, #0 - strh r1, [r0, #0xc] - bx lr - arm_func_end FUN_0201e1d4 - - arm_func_start FUN_0201e1e0 -FUN_0201e1e0: @ 0x0201E1E0 - push {r4, lr} - ldrsh r4, [r0, #0xc] - cmp r4, #0x80 - mvnge r0, #0 - popge {r4, pc} - ldr lr, [r0] - mov ip, #0x1c - smlabb ip, r4, ip, lr - str r3, [ip, #4] - str r1, [ip, #8] - ldrb r3, [sp, #8] - str r2, [ip, #0xc] - mov r1, #0 - str r3, [ip, #0x10] - strb r1, [ip, #0x14] - ldrsh r1, [r0, #0xc] - add r1, r1, #1 - strh r1, [r0, #0xc] - ldrsh r0, [r0, #0xc] - pop {r4, pc} - arm_func_end FUN_0201e1e0 - - arm_func_start FUN_0201e230 -FUN_0201e230: @ 0x0201E230 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov r4, r0 - ldrsh r7, [r4, #0xc] - mov r6, #0 - ldr fp, _0201E310 @ =0x022A4F38 - mov r5, #0x1c - b _0201E304 -_0201E24C: - ldr r0, [r4] - smlabb r1, r6, r5, r0 - ldr r0, [r1, #0x10] - cmp r0, #0 - beq _0201E274 - cmp r0, #1 - beq _0201E2C8 - cmp r0, #2 - beq _0201E2F0 - b _0201E2F8 -_0201E274: - ldr sl, [r1, #8] - cmp sl, #0 - beq _0201E2A4 - ldr sb, [r1, #4] - ldr r8, [r1, #0xc] - bl FUN_020785f4 - mov r0, sl - mov r1, r8 - mov r2, sb - bl FUN_02078650 - bl FUN_02078790 - b _0201E2F8 -_0201E2A4: - ldr r8, [r1, #4] - ldr sb, [r1, #0xc] - bl FUN_020785f4 - mov r0, fp - mov r1, sb - mov r2, r8 - bl FUN_02078650 - bl FUN_02078790 - b _0201E2F8 -_0201E2C8: - ldr sl, [r1, #4] - ldr sb, [r1, #0xc] - ldr r8, [r1, #8] - bl FUN_020787dc - mov r0, r8 - mov r1, sb - mov r2, sl - bl FUN_02078810 - bl FUN_0207887c - b _0201E2F8 -_0201E2F0: - ldr r0, [r1, #8] - bl MemFree -_0201E2F8: - add r0, r6, #1 - lsl r0, r0, #0x10 - asr r6, r0, #0x10 -_0201E304: - cmp r6, r7 - blt _0201E24C - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0201E310: .4byte 0x022A4F38 - arm_func_end FUN_0201e230 - - arm_func_start FUN_0201e314 -FUN_0201e314: @ 0x0201E314 - push {r4, lr} - ldr ip, [sp, #8] - mov r4, r0 - asr r0, ip, #7 - add r0, ip, r0, lsr #24 - stm r4, {r1, ip} - asr r0, r0, #8 - str r0, [r4, #8] - mov r1, #0 - strb r1, [r4, #0xc] - str r2, [r4, #0x10] - str r3, [r4, #0x14] - lsl r0, ip, #1 - bl MemAlloc - str r0, [r4, #0x18] - ldr r0, [r4, #8] - mov r1, #0 - bl MemAlloc - str r0, [r4, #0x1c] - ldr r1, [r4, #4] - ldr r0, [r4, #0x18] - lsl r1, r1, #1 - bl MemZero - ldr r0, [r4, #0x1c] - ldr r1, [r4, #8] - bl MemZero - pop {r4, pc} - arm_func_end FUN_0201e314 - - arm_func_start FUN_0201e380 -FUN_0201e380: @ 0x0201E380 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r2 - ldr r2, [r5, #0x18] - add r0, r3, r4, lsl #8 - add r0, r2, r0, lsl #1 - bl FUN_02004fcc - ldr r0, [r5, #0x1c] - mov r1, #1 - strb r1, [r0, r4] - pop {r3, r4, r5, pc} - arm_func_end FUN_0201e380 - - arm_func_start FUN_0201e3ac -FUN_0201e3ac: @ 0x0201E3AC - push {r4, r5, r6, r7, r8, sb, sl, lr} - ldrsh r4, [sp, #0x20] - mov r7, r3 - mov sl, r0 - add r6, r4, r7, lsl #8 - mov sb, r1 - mov r8, r2 - mov r5, #0 - mov r4, #1 - b _0201E3FC -_0201E3D4: - ldr r1, [sl, #0x18] - add r0, r5, r6 - add r0, r1, r0, lsl #1 - add r1, sb, r5, lsl #2 - bl FUN_02004fcc - add r0, r5, #1 - ldr r1, [sl, #0x1c] - lsl r0, r0, #0x10 - strb r4, [r7, r1] - asr r5, r0, #0x10 -_0201E3FC: - cmp r5, r8 - blt _0201E3D4 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_end FUN_0201e3ac - - arm_func_start FUN_0201e408 -FUN_0201e408: @ 0x0201E408 - push {r3, lr} - str r3, [sp] - mov r3, r2 - ldrsh r2, [r1, #6] - ldr r1, [r1] - bl FUN_0201e3ac - pop {r3, pc} - arm_func_end FUN_0201e408 - - arm_func_start FUN_0201e424 -FUN_0201e424: @ 0x0201E424 - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #4 - mov r5, #0 - mov r6, r0 - mov r4, #1 - mov r8, #0x200 - mov r7, r5 - b _0201E480 -_0201E444: - ldr r0, [r6, #0x1c] - ldrb r0, [r0, r5] - cmp r0, #0 - beq _0201E47C - str r4, [sp] - ldr r1, [r6, #0x18] - ldr r2, [r6, #0x14] - ldr r0, [r6] - mov r3, r8 - add r1, r1, r5, lsl #9 - add r2, r2, r5, lsl #9 - bl FUN_0201e1e0 - ldr r0, [r6, #0x1c] - strb r7, [r0, r5] -_0201E47C: - add r5, r5, #1 -_0201E480: - ldr r0, [r6, #8] - cmp r5, r0 - blt _0201E444 - add sp, sp, #4 - pop {r3, r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0201e424 - - arm_func_start FUN_0201e494 -FUN_0201e494: @ 0x0201E494 - ldr ip, [sp, #0xc] - lsl r0, r0, #0x1a - orr r0, r0, ip, lsr #3 - orr r0, r0, r1, lsl #30 - orr r0, r0, r2, lsl #20 - ldr r1, [sp] - orr r0, r0, r3, lsl #23 - ldr r2, [sp, #4] - orr r0, r0, r1, lsl #16 - ldr r3, [sp, #8] - orr r1, r0, r2, lsl #18 - ldr r0, _0201E4D0 @ =0x040004A8 - orr r1, r1, r3, lsl #29 - str r1, [r0] - bx lr - .align 2, 0 -_0201E4D0: .4byte 0x040004A8 - arm_func_end FUN_0201e494 -_0201E4D4: - .byte 0x01, 0x18, 0xA0, 0xE1, 0x21, 0x18, 0xA0, 0xE1, 0x00, 0x08, 0xA0, 0xE1 - .byte 0x01, 0x38, 0xA0, 0xE1, 0x02, 0x18, 0xA0, 0xE1, 0x10, 0x20, 0x9F, 0xE5, 0x20, 0x08, 0x83, 0xE1 - .byte 0x00, 0x00, 0x82, 0xE5, 0x21, 0x08, 0xA0, 0xE1, 0x00, 0x00, 0x82, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x8C, 0x04, 0x00, 0x04 - - arm_func_start FUN_0201e504 -FUN_0201e504: @ 0x0201E504 - push {r3, lr} - ldr r0, _0201E540 @ =0x020AFC80 - ldr r0, [r0, #0x40] - cmp r0, #0 - popne {r3, pc} - mov r0, #0x1a00 - mov r1, #0 - bl MemAlloc - ldr r1, _0201E540 @ =0x020AFC80 - mov r2, #0 - str r0, [r1, #0x40] - strh r2, [r1] - mov r0, #0x80 - strh r0, [r1, #2] - pop {r3, pc} - .align 2, 0 -_0201E540: .4byte 0x020AFC80 - arm_func_end FUN_0201e504 - - arm_func_start FUN_0201e544 -FUN_0201e544: @ 0x0201E544 - push {r3, lr} - sub sp, sp, #0x10 - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r1, #1 - str r1, [sp, #8] - mov r1, r0 - mov r2, r0 - mov r3, r0 - str r0, [sp, #0xc] - bl FUN_0201e494 - ldr r0, _0201E5A4 @ =0x020AFC80 - mvn r1, #0 - str r1, [r0, #8] - bl FUN_01FF8F04 - ldr r2, _0201E5A8 @ =0x3F1F00C0 - ldr r1, _0201E5AC @ =0x040004A4 - ldr r0, _0201E5A4 @ =0x020AFC80 - str r2, [r1] - mov r1, #0 - strh r1, [r0] - add sp, sp, #0x10 - pop {r3, pc} - .align 2, 0 -_0201E5A4: .4byte 0x020AFC80 -_0201E5A8: .4byte 0x3F1F00C0 -_0201E5AC: .4byte 0x040004A4 - arm_func_end FUN_0201e544 - - arm_func_start FUN_0201e5b0 -FUN_0201e5b0: @ 0x0201E5B0 - push {r3, lr} - sub sp, sp, #0x10 - bl FUN_01FF8DCC - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r1, #1 - str r1, [sp, #8] - mov r1, r0 - mov r2, r0 - mov r3, r0 - str r0, [sp, #0xc] - bl FUN_0201e494 - ldr r0, _0201E608 @ =0x020AFC80 - mvn r1, #0 - str r1, [r0, #8] - bl FUN_01FF8F04 - ldr r1, _0201E60C @ =0x3F1F00C0 - ldr r0, _0201E610 @ =0x040004A4 - str r1, [r0] - add sp, sp, #0x10 - pop {r3, pc} - .align 2, 0 -_0201E608: .4byte 0x020AFC80 -_0201E60C: .4byte 0x3F1F00C0 -_0201E610: .4byte 0x040004A4 - arm_func_end FUN_0201e5b0 - - arm_func_start FUN_0201e614 -FUN_0201e614: @ 0x0201E614 - push {r4, lr} - mov r4, r0 - mov r1, #0xbc - bl MemZero - bl FUN_0201e504 - mov r0, r4 - bl FUN_0201e634 - pop {r4, pc} - arm_func_end FUN_0201e614 - - arm_func_start FUN_0201e634 -FUN_0201e634: @ 0x0201E634 - push {r3, r4, lr} - sub sp, sp, #0x14 - mov r4, r0 - mov r2, #0 - str r2, [r4, #0xa0] - mov r0, #0x100000 - str r0, [r4, #0xa4] - ldr r0, _0201E70C @ =0x007FFFFF - str r2, [r4, #0xa8] - mov r1, #0xc0000 - str r1, [r4, #0xac] - mov r1, #0x1000 - str r1, [r4, #0xb0] - str r0, [r4, #0xb4] - str r2, [r4] - str r2, [r4, #4] - str r1, [r4, #8] - str r2, [r4, #0x18] - str r2, [r4, #0x1c] - lsl r0, r0, #0xc - str r0, [r4, #0x20] - str r2, [r4, #0x24] - str r1, [r4, #0x28] - ldr r1, _0201E710 @ =0xBFFF0000 - ldr r0, _0201E714 @ =0x04000580 - str r2, [r4, #0x2c] - str r1, [r0] - ldr r0, [r4, #0xb0] - mov r1, #0x400000 - str r0, [sp] - ldr r2, [r4, #0xb4] - mov r0, #1 - str r2, [sp, #4] - str r1, [sp, #8] - str r0, [sp, #0xc] - add r0, r4, #0x60 - str r0, [sp, #0x10] - ldr r0, [r4, #0xa8] - ldr r1, [r4, #0xac] - ldr r2, [r4, #0xa0] - ldr r3, [r4, #0xa4] - bl FUN_02077c48 - ldr r1, _0201E718 @ =0x0400044C - mov r2, #0 - mov r0, r4 - str r2, [r1] - add ip, r4, #0x30 - add r1, r4, #0x24 - add r2, r4, #0x18 - mov r3, #1 - str ip, [sp] - bl FUN_02077cac - add sp, sp, #0x14 - pop {r3, r4, pc} - .align 2, 0 -_0201E70C: .4byte 0x007FFFFF -_0201E710: .4byte 0xBFFF0000 -_0201E714: .4byte 0x04000580 -_0201E718: .4byte 0x0400044C - arm_func_end FUN_0201e634 - - arm_func_start FUN_0201e71c -FUN_0201e71c: @ 0x0201E71C - ldr r0, _0201E72C @ =0x04000540 - mov r1, #1 - str r1, [r0] - bx lr - .align 2, 0 -_0201E72C: .4byte 0x04000540 - arm_func_end FUN_0201e71c - - arm_func_start FUN_0201e730 -FUN_0201e730: @ 0x0201E730 - push {r4, lr} - mov r1, #0x40 - mov r4, r0 - bl MemZero - mov r0, #0xff - strb r0, [r4, #0x2c] - strb r0, [r4, #0x2d] - strb r0, [r4, #0x2e] - strb r0, [r4, #0x2f] - mov r0, #0x1000 - strh r0, [r4, #0x10] - strh r0, [r4, #0x12] - mov r0, #0x40 - strh r0, [r4, #0x2a] - mov r0, #0 - strb r0, [r4, #0x3e] - pop {r4, pc} - arm_func_end FUN_0201e730 - - arm_func_start FUN_0201e774 -FUN_0201e774: @ 0x0201E774 - push {r4, lr} - ldrh ip, [r1, #0xc] - mov r4, r0 - mov r0, r3 - strh ip, [r4, #0x14] - ldrsh r3, [r1, #0x10] - strh r3, [r4, #0x16] - ldrsh r3, [r1, #0x12] - strh r3, [r4, #0x18] - ldrsh r3, [r1, #0x14] - strh r3, [r4, #0x1a] - ldrsh r3, [r1, #0x16] - ldrsh r1, [sp, #8] - strh r3, [r4, #0x1c] - str r2, [r4, #0x20] - bl FUN_0201e7bc - str r0, [r4, #0x24] - pop {r4, pc} - arm_func_end FUN_0201e774 - - arm_func_start FUN_0201e7bc -FUN_0201e7bc: @ 0x0201E7BC - ldr r2, _0201E7D4 @ =0x020AFC70 - add r0, r1, r0, lsl #8 - ldr r1, [r2] - ldr r1, [r1, #0xe0] - add r0, r1, r0, lsl #1 - bx lr - .align 2, 0 -_0201E7D4: .4byte 0x020AFC70 - arm_func_end FUN_0201e7bc - - arm_func_start FUN_0201e7d8 -FUN_0201e7d8: @ 0x0201E7D8 - push {r4, lr} - ldr ip, [r1] - mov r4, r0 - ldrh lr, [ip, #8] - lsl ip, r2, #3 - ldrsh r0, [sp, #8] - strh lr, [r4, #0x14] - ldr lr, [r1, #4] - ldrsh ip, [lr, ip] - strh ip, [r4, #0x16] - ldr ip, [r1, #4] - add ip, ip, r2, lsl #3 - ldrsh ip, [ip, #2] - strh ip, [r4, #0x18] - ldr ip, [r1, #4] - add ip, ip, r2, lsl #3 - ldrsh ip, [ip, #4] - strh ip, [r4, #0x1a] - ldr ip, [r1, #4] - ldrsh r1, [sp, #0xc] - add r2, ip, r2, lsl #3 - ldrsh r2, [r2, #6] - strh r2, [r4, #0x1c] - str r3, [r4, #0x20] - bl FUN_0201e7bc - str r0, [r4, #0x24] - pop {r4, pc} - arm_func_end FUN_0201e7d8 - - arm_func_start FUN_0201e844 -FUN_0201e844: @ 0x0201E844 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov r4, r0 - bl FUN_01FF8D6C - ldrsh r1, [r4] - mov r5, #0 - strh r1, [r0, #0x16] - ldrsh r1, [r4, #2] - strh r1, [r0, #0x18] - ldrsh r1, [r4, #8] - strh r1, [r0, #0x1a] - ldrsh r1, [r4, #0xa] - strh r1, [r0, #0x1c] - ldrb r2, [r4, #0x2e] - ldrb r1, [r4, #0x2d] - ldrb r6, [r4, #0x2c] - and r3, r2, #0xf8 - and r2, r1, #0xf8 - lsl r1, r3, #0x17 - lsl r2, r2, #2 - and r3, r6, #0xf8 - orr r1, r2, r1, lsr #16 - orr r1, r1, r3, asr #3 - strh r1, [r0, #0x22] - ldrb r1, [r4, #0x2f] - and r1, r1, #0xf8 - asr r1, r1, #3 - strb r1, [r0, #0x27] - ldrh r1, [r4, #0x10] - strh r1, [r0, #0x1e] - ldrh r1, [r4, #0x12] - strh r1, [r0, #0x20] - ldrh r1, [r4, #0x28] - strh r1, [r0, #0x24] - ldr r1, [r4, #0x20] - str r1, [r0, #4] - ldr r1, [r4, #0x24] - str r1, [r0, #8] - ldrb r1, [r4, #0x3e] - strb r1, [r0, #0x26] - ldrh r1, [r4, #0x2a] - strh r1, [r0, #2] - ldrh r1, [r4, #0x14] - strh r1, [r0, #0x14] -_0201E8F0: - mov r1, #0x18 - mul r6, r5, r1 - lsl r1, r6, #0x10 - asr ip, r1, #0x10 - mov r1, #0x1f - mov r3, #0x18 - and r7, r5, #1 - mov lr, #0 - mov r2, r1 - mov sb, r3 -_0201E918: - mul r8, lr, sb - ldrsh sl, [r4] - tst lr, #1 - add sl, sl, r8 - strh sl, [r0, #0x16] - ldrsh sl, [r4, #2] - add sl, sl, r6 - strh sl, [r0, #0x18] - strh r8, [r0, #0xc] - strh ip, [r0, #0xe] - strh r3, [r0, #0x10] - strh r3, [r0, #0x12] - beq _0201E988 - cmp r7, #0 - strheq r2, [r0, #0x22] - beq _0201E9C0 - ldrb r8, [r4, #0x2e] - ldrb sl, [r4, #0x2d] - ldrb fp, [r4, #0x2c] - and r8, r8, #0xf8 - lsl r8, r8, #0x17 - and fp, fp, #0xf8 - and sl, sl, #0xf8 - lsl sl, sl, #2 - orr r8, sl, r8, lsr #16 - orr r8, r8, fp, asr #3 - strh r8, [r0, #0x22] - b _0201E9C0 -_0201E988: - cmp r7, #0 - strhne r1, [r0, #0x22] - bne _0201E9C0 - ldrb r8, [r4, #0x2e] - ldrb sl, [r4, #0x2d] - ldrb fp, [r4, #0x2c] - and r8, r8, #0xf8 - lsl r8, r8, #0x17 - and fp, fp, #0xf8 - and sl, sl, #0xf8 - lsl sl, sl, #2 - orr r8, sl, r8, lsr #16 - orr r8, r8, fp, asr #3 - strh r8, [r0, #0x22] -_0201E9C0: - add r8, lr, #1 - lsl r8, r8, #0x10 - asr lr, r8, #0x10 - cmp lr, #0xa - blt _0201E918 - add r1, r5, #1 - lsl r1, r1, #0x10 - asr r5, r1, #0x10 - cmp r5, #8 - blt _0201E8F0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0201e844 - - arm_func_start FUN_0201e9ec -FUN_0201e9ec: @ 0x0201E9EC - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x4c - mov sl, r0 - add r5, sp, #0xc - mov r6, sl - mov r4, #4 -_0201EA04: - ldm r6!, {r0, r1, r2, r3} - stm r5!, {r0, r1, r2, r3} - subs r4, r4, #1 - bne _0201EA04 - mov r0, #5 - strb r0, [sp, #0x48] - ldrsh r1, [sl, #4] - ldrsh r2, [sl, #6] - cmp r1, #0x10 - addle r0, r1, r1, lsr #31 - movgt r3, #8 - lslle r0, r0, #0xf - asrle r3, r0, #0x10 - cmp r2, #0x10 - addle r0, r2, r2, lsr #31 - movgt r6, #8 - lslle r0, r0, #0xf - asrle r6, r0, #0x10 - ldrsh r0, [sl] - str r0, [sp] - ldrsh r8, [sl, #2] - ldr r4, [sp] - add r0, sp, #0xc - add r4, r4, r3 - add r5, r8, r6 - lsl r4, r4, #0x10 - lsl r7, r5, #0x10 - asr r5, r4, #0x10 - asr r4, r7, #0x10 - ldr r7, [sp] - add sb, r8, r2 - strh r7, [sp, #0xc] - ldr r7, [sp] - lsl r2, sb, #0x10 - add fp, r7, r1 - sub r1, fp, r3 - lsl r3, r1, #0x10 - sub r1, sb, r6 - lsl r7, r1, #0x10 - lsl r1, fp, #0x10 - asr r6, r3, #0x10 - strh r8, [sp, #0xe] - strh r5, [sp, #0x10] - strh r4, [sp, #0x12] - ldrsh ip, [sl, #0x16] - asr r1, r1, #0x10 - mov r3, #8 - strh ip, [sp, #0x22] - ldrsh ip, [sl, #0x18] - asr r7, r7, #0x10 - str r1, [sp, #8] - strh ip, [sp, #0x24] - strh r3, [sp, #0x26] - strh r3, [sp, #0x28] - asr r1, r2, #0x10 - str r1, [sp, #4] - bl FUN_0201ec9c - strh r5, [sp, #0xc] - strh r8, [sp, #0xe] - strh r6, [sp, #0x10] - strh r4, [sp, #0x12] - ldrsh r2, [sl, #0x16] - add r0, sp, #0xc - mov r1, #8 - add r2, r2, #8 - strh r2, [sp, #0x22] - ldrsh r2, [sl, #0x18] - strh r2, [sp, #0x24] - strh r1, [sp, #0x26] - strh r1, [sp, #0x28] - bl FUN_0201ec9c - strh r6, [sp, #0xc] - strh r8, [sp, #0xe] - strh fp, [sp, #0x10] - strh r4, [sp, #0x12] - ldrsh r2, [sl, #0x16] - mov r1, #8 - add r0, sp, #0xc - add r2, r2, #0x10 - strh r2, [sp, #0x22] - ldrsh r2, [sl, #0x18] - strh r2, [sp, #0x24] - strh r1, [sp, #0x26] - strh r1, [sp, #0x28] - bl FUN_0201ec9c - ldr r0, [sp] - strh r4, [sp, #0xe] - strh r5, [sp, #0x10] - strh r7, [sp, #0x12] - strh r0, [sp, #0xc] - ldrsh r0, [sl, #0x16] - strh r0, [sp, #0x22] - ldrsh r0, [sl, #0x18] - add r0, r0, #8 - strh r0, [sp, #0x24] - mov r1, #8 - add r0, sp, #0xc - strh r1, [sp, #0x26] - strh r1, [sp, #0x28] - bl FUN_0201ec9c - strh r6, [sp, #0xc] - strh r4, [sp, #0xe] - ldr r0, [sp, #8] - mov r1, #8 - strh r0, [sp, #0x10] - strh r7, [sp, #0x12] - ldrsh r2, [sl, #0x16] - add r0, sp, #0xc - add r2, r2, #0x10 - strh r2, [sp, #0x22] - ldrsh r2, [sl, #0x18] - add r2, r2, #8 - strh r2, [sp, #0x24] - strh r1, [sp, #0x26] - strh r1, [sp, #0x28] - bl FUN_0201ec9c - ldr r0, [sp] - mov r1, #8 - strh r0, [sp, #0xc] - strh r7, [sp, #0xe] - strh r5, [sp, #0x10] - strh sb, [sp, #0x12] - ldrsh r2, [sl, #0x16] - add r0, sp, #0xc - strh r2, [sp, #0x22] - ldrsh r2, [sl, #0x18] - add r2, r2, #0x10 - strh r2, [sp, #0x24] - strh r1, [sp, #0x26] - strh r1, [sp, #0x28] - bl FUN_0201ec9c - strh r5, [sp, #0xc] - strh r7, [sp, #0xe] - strh r6, [sp, #0x10] - ldr r0, [sp, #4] - mov r1, #8 - strh r0, [sp, #0x12] - ldrsh r2, [sl, #0x16] - add r0, sp, #0xc - add r2, r2, #8 - strh r2, [sp, #0x22] - ldrsh r2, [sl, #0x18] - add r2, r2, #0x10 - strh r2, [sp, #0x24] - strh r1, [sp, #0x26] - strh r1, [sp, #0x28] - bl FUN_0201ec9c - strh r6, [sp, #0xc] - strh r7, [sp, #0xe] - ldr r0, [sp, #8] - mov r1, #8 - strh r0, [sp, #0x10] - ldr r0, [sp, #4] - strh r0, [sp, #0x12] - ldrsh r2, [sl, #0x16] - add r0, sp, #0xc - add r2, r2, #0x10 - strh r2, [sp, #0x22] - ldrsh r2, [sl, #0x18] - add r2, r2, #0x10 - strh r2, [sp, #0x24] - strh r1, [sp, #0x26] - strh r1, [sp, #0x28] - bl FUN_0201ec9c - add sp, sp, #0x4c - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0201e9ec - - arm_func_start FUN_0201ec9c -FUN_0201ec9c: @ 0x0201EC9C - push {r4, lr} - mov r4, r0 - bl FUN_01FF8D9C - ldrsh r2, [r4] - mov r1, #0 - strh r2, [r0, #0x16] - ldrsh r2, [r4, #2] - strh r2, [r0, #0x18] - ldrsh r2, [r4, #4] - strh r2, [r0, #0x1a] - ldrsh r2, [r4, #2] - strh r2, [r0, #0x1c] - ldrsh r2, [r4] - strh r2, [r0, #0x1e] - ldrsh r2, [r4, #6] - strh r2, [r0, #0x20] - ldrsh r2, [r4, #4] - strh r2, [r0, #0x22] - ldrsh r2, [r4, #6] - strh r2, [r0, #0x24] -_0201ECEC: - ldrb r3, [r4, #0x2e] - ldrb r2, [r4, #0x2d] - ldrb lr, [r4, #0x2c] - and ip, r3, #0xf8 - and r3, r2, #0xf8 - lsl r2, ip, #0x17 - lsl ip, r3, #2 - add r3, r0, r1, lsl #1 - add r1, r1, #1 - and lr, lr, #0xf8 - orr r2, ip, r2, lsr #16 - orr r2, r2, lr, asr #3 - strh r2, [r3, #0x26] - cmp r1, #4 - blt _0201ECEC - ldrb r1, [r4, #0x2f] - add r3, r4, #0x16 - add r2, r0, #0xc - and r1, r1, #0xf8 - asr r1, r1, #3 - strb r1, [r0, #0x31] - ldrh ip, [r4, #0x28] - mov r1, #4 - strh ip, [r0, #0x2e] - ldr ip, [r4, #0x20] - str ip, [r0, #4] - ldr ip, [r4, #0x24] - str ip, [r0, #8] - ldrb ip, [r4, #0x3e] - strb ip, [r0, #0x30] - ldrh ip, [r4, #0x2a] - strh ip, [r0, #2] - ldrh r4, [r4, #0x14] - strh r4, [r0, #0x14] -_0201ED74: - ldrh r0, [r3], #2 - subs r1, r1, #1 - strh r0, [r2], #2 - bne _0201ED74 - pop {r4, pc} - arm_func_end FUN_0201ec9c - - arm_func_start FUN_0201ed88 -FUN_0201ed88: @ 0x0201ED88 - push {r3, r4, r5, lr} - mov r4, r0 - bl FUN_01FF8D9C - mov r1, #0 -_0201ED98: - lsl r2, r1, #2 - ldrsh r2, [r4, r2] - add ip, r0, r1, lsl #2 - add r5, r4, r1, lsl #2 - strh r2, [ip, #0x16] - ldrsh r2, [r5, #2] - add r3, r0, r1, lsl #1 - add r1, r1, #1 - strh r2, [ip, #0x18] - ldrb ip, [r5, #0x2e] - ldrb r2, [r5, #0x2d] - ldrb r5, [r5, #0x2c] - and lr, ip, #0xf8 - and ip, r2, #0xf8 - lsl r2, lr, #0x17 - lsl ip, ip, #2 - and r5, r5, #0xf8 - orr r2, ip, r2, lsr #16 - orr r2, r2, r5, asr #3 - strh r2, [r3, #0x26] - cmp r1, #4 - blt _0201ED98 - ldrb r1, [r4, #0x2f] - add r3, r4, #0x16 - add r2, r0, #0xc - and r1, r1, #0xf8 - asr r1, r1, #3 - strb r1, [r0, #0x31] - ldrh ip, [r4, #0x28] - mov r1, #4 - strh ip, [r0, #0x2e] - ldr ip, [r4, #0x20] - str ip, [r0, #4] - ldr ip, [r4, #0x24] - str ip, [r0, #8] - ldrb ip, [r4, #0x3e] - strb ip, [r0, #0x30] - ldrh ip, [r4, #0x2a] - strh ip, [r0, #2] - ldrh r4, [r4, #0x14] - strh r4, [r0, #0x14] -_0201EE3C: - ldrh r0, [r3], #2 - subs r1, r1, #1 - strh r0, [r2], #2 - bne _0201EE3C - pop {r3, r4, r5, pc} - arm_func_end FUN_0201ed88 - - arm_func_start FUN_0201ee50 -FUN_0201ee50: @ 0x0201EE50 - push {r3, r4, r5, lr} - mov r4, r0 - bl FUN_01FF8D3C - mov r1, #0 -_0201EE60: - lsl r2, r1, #2 - ldrsh r2, [r4, r2] - add ip, r0, r1, lsl #2 - add r5, r4, r1, lsl #2 - strh r2, [ip, #4] - ldrsh r2, [r5, #2] - add r3, r0, r1, lsl #1 - add r1, r1, #1 - strh r2, [ip, #6] - ldrb ip, [r5, #0x2e] - ldrb r2, [r5, #0x2d] - ldrb r5, [r5, #0x2c] - and lr, ip, #0xf8 - and ip, r2, #0xf8 - lsl r2, lr, #0x17 - lsl ip, ip, #2 - and r5, r5, #0xf8 - orr r2, ip, r2, lsr #16 - orr r2, r2, r5, asr #3 - strh r2, [r3, #0x1a] - cmp r1, #4 - blt _0201EE60 - ldrb r1, [r4, #0x2f] - and r1, r1, #0xf8 - asr r1, r1, #3 - strb r1, [r0, #0x23] - ldrb r1, [r4, #0x3e] - strb r1, [r0, #0x22] - ldrh r1, [r4, #0x2a] - strh r1, [r0, #2] - ldrb r1, [r4, #0x3d] - tst r1, #2 - movne r1, #1 - moveq r1, #0 - strb r1, [r0, #0x24] - pop {r3, r4, r5, pc} - arm_func_end FUN_0201ee50 - - arm_func_start FUN_0201eef0 -FUN_0201eef0: @ 0x0201EEF0 - push {r4, lr} - mov r4, r0 - bl FUN_01FF8D0C - ldrh r1, [r4] - strh r1, [r0, #4] - ldrh r1, [r4, #2] - strh r1, [r0, #6] - ldrh r1, [r4, #4] - strh r1, [r0, #8] - ldrh r1, [r4, #6] - strh r1, [r0, #0xa] - ldrh r1, [r4, #8] - strh r1, [r0, #0xc] - ldrh r1, [r4, #0xa] - strh r1, [r0, #0xe] - ldrb r1, [r4, #0x2f] - and r1, r1, #0xf8 - asr r1, r1, #3 - strb r1, [r0, #0x23] - ldrh r1, [r4, #0x10] - strh r1, [r0, #0x14] - ldrh r1, [r4, #0x12] - strh r1, [r0, #0x16] - ldrh r1, [r4, #0x28] - strh r1, [r0, #0x18] - ldrb r1, [r4, #0x3e] - strb r1, [r0, #0x22] - ldrh r1, [r4, #0x2a] - strh r1, [r0, #2] - ldrb r1, [r4, #0x3d] - tst r1, #2 - movne r1, #1 - moveq r1, #0 - strb r1, [r0, #0x24] - tst r1, #0xff - ldrb r2, [r4, #0x2e] - ldrb r1, [r4, #0x2d] - beq _0201F034 - ldrb ip, [r4, #0x2c] - and r3, r2, #0xf8 - and r2, r1, #0xf8 - lsl r1, r3, #0x17 - lsl r2, r2, #2 - and r3, ip, #0xf8 - orr r1, r2, r1, lsr #16 - orr r1, r1, r3, asr #3 - strh r1, [r0, #0x1a] - ldrb r2, [r4, #0x32] - ldrb r1, [r4, #0x31] - ldrb ip, [r4, #0x30] - and r3, r2, #0xf8 - and r2, r1, #0xf8 - lsl r1, r3, #0x17 - lsl r2, r2, #2 - and r3, ip, #0xf8 - orr r1, r2, r1, lsr #16 - orr r1, r1, r3, asr #3 - strh r1, [r0, #0x1c] - ldrb r2, [r4, #0x36] - ldrb r1, [r4, #0x35] - ldrb ip, [r4, #0x34] - and r3, r2, #0xf8 - and r2, r1, #0xf8 - lsl r1, r3, #0x17 - lsl r2, r2, #2 - and r3, ip, #0xf8 - orr r1, r2, r1, lsr #16 - orr r1, r1, r3, asr #3 - strh r1, [r0, #0x1e] - ldrb r2, [r4, #0x3a] - ldrb r1, [r4, #0x39] - ldrb r4, [r4, #0x38] - and r3, r2, #0xf8 - and r2, r1, #0xf8 - lsl r1, r3, #0x17 - lsl r2, r2, #2 - and r3, r4, #0xf8 - orr r1, r2, r1, lsr #16 - orr r1, r1, r3, asr #3 - strh r1, [r0, #0x20] - pop {r4, pc} -_0201F034: - ldrb r4, [r4, #0x2c] - and r3, r2, #0xf8 - and r2, r1, #0xf8 - lsl r1, r3, #0x17 - lsl r2, r2, #2 - and r3, r4, #0xf8 - orr r1, r2, r1, lsr #16 - orr r1, r1, r3, asr #3 - strh r1, [r0, #0x1a] - pop {r4, pc} - arm_func_end FUN_0201eef0 - - arm_func_start FUN_0201f05c -FUN_0201f05c: @ 0x0201F05C - push {r4, lr} - mov r4, r0 - bl FUN_01FF8D0C - ldrh r1, [r4] - mov r2, #0 - strh r1, [r0, #4] - ldrh r1, [r4, #2] - strh r1, [r0, #6] - ldrh r1, [r4, #4] - strh r1, [r0, #8] - ldrh r1, [r4, #6] - strh r1, [r0, #0xa] - ldrh r1, [r4, #8] - strh r1, [r0, #0xc] - ldrh r1, [r4, #0xa] - strh r1, [r0, #0xe] - ldrb r3, [r4, #0x2e] - ldrb r1, [r4, #0x2d] - ldrb lr, [r4, #0x2c] - and ip, r3, #0xf8 - and r3, r1, #0xf8 - lsl r1, ip, #0x17 - lsl r3, r3, #2 - and ip, lr, #0xf8 - orr r1, r3, r1, lsr #16 - orr r1, r1, ip, asr #3 - strh r1, [r0, #0x1a] - ldrb r1, [r4, #0x2f] - and r1, r1, #0xf8 - asr r1, r1, #3 - strb r1, [r0, #0x23] - ldrh r1, [r4, #0x10] - strh r1, [r0, #0x14] - ldrh r1, [r4, #0x12] - strh r1, [r0, #0x16] - ldrh r1, [r4, #0x28] - strh r1, [r0, #0x18] - ldrb r1, [r4, #0x3e] - strb r1, [r0, #0x22] - ldrh r1, [r4, #0x2a] - strh r1, [r0, #2] - strb r2, [r0, #0x24] - pop {r4, pc} - arm_func_end FUN_0201f05c -_0201F108: - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0201f10c -FUN_0201f10c: @ 0x0201F10C - push {r4, lr} - mov r4, r0 - bl FUN_01FF8D6C - ldrsh r1, [r4] - add ip, r4, #0x16 - add r3, r0, #0xc - strh r1, [r0, #0x16] - ldrsh r1, [r4, #2] - mov r2, #4 - strh r1, [r0, #0x18] - ldrsh r1, [r4, #8] - strh r1, [r0, #0x1a] - ldrsh r1, [r4, #0xa] - strh r1, [r0, #0x1c] -_0201F144: - ldrh r1, [ip], #2 - subs r2, r2, #1 - strh r1, [r3], #2 - bne _0201F144 - ldrb r2, [r4, #0x2e] - ldrb r1, [r4, #0x2d] - ldrb ip, [r4, #0x2c] - and r3, r2, #0xf8 - and r2, r1, #0xf8 - lsl r1, r3, #0x17 - lsl r2, r2, #2 - and r3, ip, #0xf8 - orr r1, r2, r1, lsr #16 - orr r1, r1, r3, asr #3 - strh r1, [r0, #0x22] - ldrb r1, [r4, #0x2f] - and r1, r1, #0xf8 - asr r1, r1, #3 - strb r1, [r0, #0x27] - ldrh r1, [r4, #0x10] - strh r1, [r0, #0x1e] - ldrh r1, [r4, #0x12] - strh r1, [r0, #0x20] - ldrh r1, [r4, #0x28] - strh r1, [r0, #0x24] - ldr r1, [r4, #0x20] - str r1, [r0, #4] - ldr r1, [r4, #0x24] - str r1, [r0, #8] - ldrb r1, [r4, #0x3e] - strb r1, [r0, #0x26] - ldrh r1, [r4, #0x2a] - strh r1, [r0, #2] - ldrh r1, [r4, #0x14] - strh r1, [r0, #0x14] - pop {r4, pc} - arm_func_end FUN_0201f10c - - arm_func_start FUN_0201f1d4 -FUN_0201f1d4: @ 0x0201F1D4 - push {r3, lr} - ldrb r1, [r0, #0x3d] - tst r1, #2 - popne {r3, pc} - ldrb r1, [r0, #0x2f] - cmp r1, #0 - popeq {r3, pc} - ldrb r2, [r0, #0x3c] - ldr r1, _0201F204 @ =0x020AFCC4 - ldr r1, [r1, r2, lsl #2] - blx r1 - pop {r3, pc} - .align 2, 0 -_0201F204: .4byte 0x020AFCC4 - arm_func_end FUN_0201f1d4 - - arm_func_start FUN_0201f208 -FUN_0201f208: @ 0x0201F208 - push {r3, lr} - ldr r0, _0201F240 @ =0x00001544 - mov r1, #0 - bl MemAlloc - ldr r2, _0201F244 @ =0x020AFCE4 - ldr r1, _0201F240 @ =0x00001544 - str r0, [r2] - bl MemZero - ldr r0, _0201F244 @ =0x020AFCE4 - mov r1, #0 - ldr r0, [r0] - add r0, r0, #0x1500 - strh r1, [r0, #0x40] - pop {r3, pc} - .align 2, 0 -_0201F240: .4byte 0x00001544 -_0201F244: .4byte 0x020AFCE4 - arm_func_end FUN_0201f208 - - arm_func_start FUN_0201f248 -FUN_0201f248: @ 0x0201F248 - ldr r1, _0201F29C @ =0x020AFCE4 - mov r2, #0 - ldr r0, [r1] - add r0, r0, #0x1000 - strb r2, [r0, #0x542] - ldr r3, [r1] - mov r1, #0x44 - b _0201F284 -_0201F268: - smlabb r0, r2, r1, r3 - ldrb r0, [r0, #0x40] - cmp r0, #0 - bxeq lr - add r0, r2, #1 - lsl r0, r0, #0x10 - asr r2, r0, #0x10 -_0201F284: - cmp r2, #0x50 - blt _0201F268 - add r0, r3, #0x1000 - mov r1, #1 - strb r1, [r0, #0x542] - bx lr - .align 2, 0 -_0201F29C: .4byte 0x020AFCE4 - arm_func_end FUN_0201f248 - - arm_func_start thunk_FUN_0201f1d4 -thunk_FUN_0201f1d4: @ 0x0201F2A0 - ldr ip, _0201F2A8 @ =FUN_0201f1d4 - bx ip - .align 2, 0 -_0201F2A8: .4byte FUN_0201f1d4 - arm_func_end thunk_FUN_0201f1d4 - - arm_func_start FUN_0201f2ac -FUN_0201f2ac: @ 0x0201F2AC - push {r4, lr} - ldr r2, _0201F2E0 @ =0x020AFCE4 - mov r1, #0x44 - smulbb r4, r0, r1 - ldr r0, [r2] - add r0, r0, r4 - bl FUN_0201e730 - ldr r0, _0201F2E0 @ =0x020AFCE4 - mov r1, #0 - ldr r0, [r0] - add r0, r0, r4 - strb r1, [r0, #0x40] - pop {r4, pc} - .align 2, 0 -_0201F2E0: .4byte 0x020AFCE4 - arm_func_end FUN_0201f2ac - - arm_func_start FUN_0201f2e4 -FUN_0201f2e4: @ 0x0201F2E4 - push {r4, lr} - mov r4, #0 -_0201F2EC: - mov r0, r4 - bl FUN_0201f2ac - add r0, r4, #1 - lsl r0, r0, #0x10 - asr r4, r0, #0x10 - cmp r4, #0x50 - blt _0201F2EC - ldr r0, _0201F320 @ =0x020AFCE4 - mov r1, #0 - ldr r0, [r0] - add r0, r0, #0x1500 - strh r1, [r0, #0x40] - pop {r4, pc} - .align 2, 0 -_0201F320: .4byte 0x020AFCE4 - arm_func_end FUN_0201f2e4 - - arm_func_start FUN_0201f324 -FUN_0201f324: @ 0x0201F324 - ldr r2, _0201F344 @ =0x020AFCE4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrb r1, [r0, #0x40] - cmp r1, #0 - moveq r0, #0 - bx lr - .align 2, 0 -_0201F344: .4byte 0x020AFCE4 - arm_func_end FUN_0201f324 - - arm_func_start FUN_0201f348 -FUN_0201f348: @ 0x0201F348 - ldr r3, _0201F368 @ =0x020AFCE4 - mov r2, #0x44 - ldr r3, [r3] - smlabb r2, r0, r2, r3 - ldrb r0, [r2, #0x40] - cmp r0, #0 - strbne r1, [r2, #0x41] - bx lr - .align 2, 0 -_0201F368: .4byte 0x020AFCE4 - arm_func_end FUN_0201f348 - - arm_func_start FUN_0201f36c -FUN_0201f36c: @ 0x0201F36C - push {r3, r4, r5, lr} - ldr r0, _0201F460 @ =0x020AFCE4 - mov ip, #0 - ldr lr, [r0] - mov r5, ip - add r0, lr, #0x1500 - ldrsh r4, [r0, #0x40] - mov r2, #0x44 - b _0201F3F8 -_0201F390: - cmp r4, #0x50 - movge r4, r5 - smlabb r3, r4, r2, lr - ldrb r0, [r3, #0x40] - cmp r0, #0 - bne _0201F3E0 - ldr r1, _0201F460 @ =0x020AFCE4 - mov r0, #1 - strb r0, [r3, #0x40] - ldr r0, [r1] - add r2, r4, #1 - add r0, r0, #0x1500 - strh r2, [r0, #0x40] - ldr r0, [r1] - add r0, r0, #0x1500 - ldrsh r1, [r0, #0x40] - cmp r1, #0x50 - movge r1, #0 - strhge r1, [r0, #0x40] - b _0201F410 -_0201F3E0: - add r0, ip, #1 - add r1, r4, #1 - lsl r0, r0, #0x10 - lsl r1, r1, #0x10 - asr ip, r0, #0x10 - asr r4, r1, #0x10 -_0201F3F8: - cmp ip, #0x50 - blt _0201F390 - mov r1, #1 - add r0, lr, #0x1000 - strb r1, [r0, #0x542] - sub r4, r1, #2 -_0201F410: - mvn r0, #0 - cmp r4, r0 - moveq r0, r4 - popeq {r3, r4, r5, pc} - ldr r1, _0201F460 @ =0x020AFCE4 - mov r0, #0x44 - smulbb r5, r4, r0 - ldr r0, [r1] - add r0, r0, r5 - bl FUN_0201e730 - ldr r1, _0201F460 @ =0x020AFCE4 - mov r3, #1 - ldr r2, [r1] - mov r0, r4 - add r2, r2, r5 - strb r3, [r2, #0x40] - ldr r1, [r1] - add r1, r1, r5 - strb r3, [r1, #0x41] - pop {r3, r4, r5, pc} - .align 2, 0 -_0201F460: .4byte 0x020AFCE4 - arm_func_end FUN_0201f36c - - arm_func_start FUN_0201f464 -FUN_0201f464: @ 0x0201F464 - push {r3, r4, r5, lr} - ldr r0, _0201F4B0 @ =0x020AFCE4 - mov r4, #0 - ldr r5, [r0] -_0201F474: - ldrb r0, [r5, #0x40] - cmp r0, #0 - ldrbne r0, [r5, #0x41] - cmpne r0, #0 - beq _0201F490 - mov r0, r5 - bl FUN_0201f1d4 -_0201F490: - add r0, r4, #1 - lsl r0, r0, #0x10 - asr r4, r0, #0x10 - cmp r4, #0x50 - add r5, r5, #0x44 - blt _0201F474 - bl FUN_0201f248 - pop {r3, r4, r5, pc} - .align 2, 0 -_0201F4B0: .4byte 0x020AFCE4 - arm_func_end FUN_0201f464 - - arm_func_start HandleSir0Translation -HandleSir0Translation: @ 0x0201F4B4 - push {r3, r4, r5, lr} - mov r4, r1 - ldrb r2, [r4] - mov r5, r0 - mov r0, #0 - cmp r2, #0x53 - ldrbeq r1, [r4, #1] - cmpeq r1, #0x49 - ldrbeq r1, [r4, #2] - cmpeq r1, #0x52 - ldrbeq r1, [r4, #3] - cmpeq r1, #0x30 - bne _0201F500 - mov r1, #0x4f - mov r0, r4 - strb r1, [r4, #3] - bl ConvertPointersSir0 - mov r0, #1 - b _0201F520 -_0201F500: - cmp r2, #0x53 - ldrbeq r1, [r4, #1] - cmpeq r1, #0x49 - ldrbeq r1, [r4, #2] - cmpeq r1, #0x52 - ldrbeq r1, [r4, #3] - cmpeq r1, #0x4f - moveq r0, #2 -_0201F520: - cmp r0, #0 - ldrne r1, [r4, #4] - strne r1, [r5] - streq r4, [r5] - pop {r3, r4, r5, pc} - arm_func_end HandleSir0Translation - - arm_func_start ConvertPointersSir0 -ConvertPointersSir0: @ 0x0201F534 - push {r4, r5} - ldr r1, [r0, #8] - mov r3, r0 - add r1, r1, r0 -_0201F544: - mov r2, #0 -_0201F548: - ldrb r4, [r1] - add r1, r1, #1 - lsl r2, r2, #7 - and r5, r4, #0x7f - orr r2, r2, r5 - and r5, r4, #0x80 - cmp r5, #0 - bne _0201F548 - cmp r2, #0 - beq _0201F584 - add r3, r3, r2 - ldr r2, [r3] - add r2, r2, r0 - str r2, [r3] - b _0201F544 -_0201F584: - pop {r4, r5} - bx lr - arm_func_end ConvertPointersSir0 - - arm_func_start HandleSir0TranslationVeneer -HandleSir0TranslationVeneer: @ 0x0201F58C - ldr ip, _0201F594 @ =HandleSir0Translation - bx ip - .align 2, 0 -_0201F594: .4byte HandleSir0Translation - arm_func_end HandleSir0TranslationVeneer - - arm_func_start FUN_0201f598 -FUN_0201f598: @ 0x0201F598 - str r1, [r0] - strh r2, [r0, #4] - ldrsh r1, [sp] - strh r3, [r0, #6] - ldrb r2, [sp, #4] - strh r1, [r0, #8] - mov r1, #0 - strb r2, [r0, #0xa] - strb r1, [r0, #0xb] - bx lr - arm_func_end FUN_0201f598 - - arm_func_start DecompressAtNormalVeneer -DecompressAtNormalVeneer: @ 0x0201F5C0 - ldr ip, _0201F5C8 @ =DecompressAtNormal - bx ip - .align 2, 0 -_0201F5C8: .4byte DecompressAtNormal - arm_func_end DecompressAtNormalVeneer - - arm_func_start DecompressAtNormal -DecompressAtNormal: @ 0x0201F5CC - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x1c - ldrb r5, [r2] - mov ip, #0 - ldrb r4, [r2, #5] - cmp r5, #0x50 - ldrbeq r6, [r2, #1] - ldrb r3, [r2, #6] - mov lr, ip - cmpeq r6, #0x4b - ldrbeq r6, [r2, #2] - add r3, r4, r3, lsl #8 - mov r4, #8 - cmpeq r6, #0x44 - ldrbeq r6, [r2, #3] - cmpeq r6, #0x50 - bne _0201F644 - ldrb r7, [r2, #0x10] - ldrb r6, [r2, #0x11] - ldrb r8, [r2, #0x12] - ldrb r5, [r2, #0x13] - add r6, r7, r6, lsl #8 - add r6, r6, r8, lsl #16 - add r5, r6, r5, lsl #24 - cmp r1, #0 - cmpne r1, r5 - movne r0, ip - bne _0201FA08 - mov r5, #0x14 - b _0201F6B4 -_0201F644: - cmp r5, #0x41 - ldrbeq r6, [r2, #1] - cmpeq r6, #0x54 - ldrbeq r6, [r2, #2] - cmpeq r6, #0x34 - ldrbeq r6, [r2, #3] - cmpeq r6, #0x50 - bne _0201F688 - ldrb r6, [r2, #0x10] - ldrb r5, [r2, #0x11] - cmp r1, #0 - add r5, r6, r5, lsl #8 - cmpne r1, r5 - movne r0, #0 - bne _0201FA08 - mov r5, #0x12 - b _0201F6B4 -_0201F688: - cmp r5, #0x41 - ldrbeq r5, [r2, #1] - cmpeq r5, #0x54 - ldrbeq r5, [r2, #2] - cmpeq r5, #0x33 - ldrbeq r5, [r2, #3] - cmpeq r5, #0x50 - moveq r5, #0x10 - beq _0201F6B4 - mov r0, #0 - b _0201FA08 -_0201F6B4: - ldrb r6, [r2, #4] - cmp r6, #0x4e - bne _0201F6E8 - mov r4, #0 - b _0201F6D8 -_0201F6C8: - add r1, r2, r4 - ldrb r1, [r1, #7] - strb r1, [r0, r4] - add r4, r4, #1 -_0201F6D8: - cmp r4, r3 - blt _0201F6C8 - mov r0, r4 - b _0201FA08 -_0201F6E8: - ldrb r6, [r2, #7] - ldrb sb, [r2, #8] - ldrb r8, [r2, #9] - add r6, r6, #3 - str r6, [sp, #0x18] - add r6, sb, #3 - str r6, [sp, #0x14] - add r6, r8, #3 - ldrb r7, [r2, #0xa] - str r6, [sp, #0x10] - ldrb sl, [r2, #0xb] - add r6, r7, #3 - str r6, [sp, #0xc] - add r6, sl, #3 - ldrb r7, [r2, #0xf] - ldrb fp, [r2, #0xc] - str r6, [sp, #8] - ldrb r8, [r2, #0xe] - add r6, fp, #3 - str r6, [sp, #4] - ldrb r6, [r2, #0xd] - add fp, r8, #3 - add sl, r7, #3 - add r6, r6, #3 - str r6, [sp] - b _0201F9FC -_0201F750: - cmp r1, #0 - beq _0201F764 - cmp ip, r1 - movge r0, #0 - bge _0201FA08 -_0201F764: - cmp r4, #8 - ldrbeq lr, [r2, r5] - addeq r5, r5, #1 - moveq r4, #0 - tst lr, #0x80 - bne _0201F9E4 - ldrb r8, [r2, r5] - ldr sb, [sp, #0x18] - add r7, r2, r5 - and r6, r8, #0xf0 - asr r6, r6, #4 - add r6, r6, #3 - cmp r6, sb - ldr sb, [sp, #0x14] - moveq r6, #0x1f - cmp r6, sb - ldr sb, [sp, #0x10] - moveq r6, #0x1e - cmp r6, sb - ldr sb, [sp, #0xc] - moveq r6, #0x1d - cmp r6, sb - ldr sb, [sp, #8] - moveq r6, #0x1c - cmp r6, sb - ldr sb, [sp, #4] - moveq r6, #0x1b - cmp r6, sb - ldr sb, [sp] - moveq r6, #0x1a - cmp r6, sb - moveq r6, #0x19 - cmp r6, fp - moveq r6, #0x18 - cmp r6, sl - moveq r6, #0x17 - sub sb, r6, #0x17 - and r8, r8, #0xf - cmp sb, #8 - addls pc, pc, sb, lsl #2 - b _0201F9A8 -_0201F808: @ jump table - b _0201F97C @ case 0 - b _0201F950 @ case 1 - b _0201F924 @ case 2 - b _0201F8FC @ case 3 - b _0201F8D0 @ case 4 - b _0201F8A4 @ case 5 - b _0201F878 @ case 6 - b _0201F850 @ case 7 - b _0201F82C @ case 8 -_0201F82C: - add r5, r5, #1 - add r7, r0, ip - orr r6, r8, r8, lsl #4 - strb r6, [r0, ip] - and r6, r8, #0xf - orr r6, r6, r6, lsl #4 - strb r6, [r7, #1] - add ip, ip, #2 - b _0201F9F4 -_0201F850: - add r5, r5, #1 - add r6, r8, #1 - and r6, r6, #0xf - orr r7, r6, r8, lsl #4 - orr r6, r6, r6, lsl #4 - strb r7, [r0, ip] - add r7, r0, ip - strb r6, [r7, #1] - add ip, ip, #2 - b _0201F9F4 -_0201F878: - add r5, r5, #1 - add r6, r0, ip - sub r7, r8, #1 - and r7, r7, #0xf - orr r7, r7, r8, lsl #4 - strb r7, [r0, ip] - and r7, r8, #0xf - orr r7, r7, r7, lsl #4 - strb r7, [r6, #1] - add ip, ip, #2 - b _0201F9F4 -_0201F8A4: - add r5, r5, #1 - add r7, r0, ip - orr r6, r8, r8, lsl #4 - strb r6, [r0, ip] - sub r6, r8, #1 - lsl r6, r6, #0x1c - and r8, r8, #0xf - orr r6, r8, r6, lsr #24 - strb r6, [r7, #1] - add ip, ip, #2 - b _0201F9F4 -_0201F8D0: - add r5, r5, #1 - add r7, r0, ip - orr r6, r8, r8, lsl #4 - strb r6, [r0, ip] - lsl r6, r8, #0x1c - sub r8, r8, #1 - and r8, r8, #0xf - orr r6, r8, r6, lsr #24 - strb r6, [r7, #1] - add ip, ip, #2 - b _0201F9F4 -_0201F8FC: - add r5, r5, #1 - sub r6, r8, #1 - and r6, r6, #0xf - orr r7, r6, r8, lsl #4 - orr r6, r6, r6, lsl #4 - strb r7, [r0, ip] - add r7, r0, ip - strb r6, [r7, #1] - add ip, ip, #2 - b _0201F9F4 -_0201F924: - add r5, r5, #1 - add r6, r0, ip - add r7, r8, #1 - and r7, r7, #0xf - orr r7, r7, r8, lsl #4 - strb r7, [r0, ip] - and r7, r8, #0xf - orr r7, r7, r7, lsl #4 - strb r7, [r6, #1] - add ip, ip, #2 - b _0201F9F4 -_0201F950: - add r5, r5, #1 - add r7, r0, ip - orr r6, r8, r8, lsl #4 - strb r6, [r0, ip] - add r6, r8, #1 - lsl r6, r6, #0x1c - and r8, r8, #0xf - orr r6, r8, r6, lsr #24 - strb r6, [r7, #1] - add ip, ip, #2 - b _0201F9F4 -_0201F97C: - add r5, r5, #1 - add r7, r0, ip - orr r6, r8, r8, lsl #4 - strb r6, [r0, ip] - lsl r6, r8, #0x1c - add r8, r8, #1 - and r8, r8, #0xf - orr r6, r8, r6, lsr #24 - strb r6, [r7, #1] - add ip, ip, #2 - b _0201F9F4 -_0201F9A8: - ldrb sb, [r7, #1] - sub r7, ip, #0x1000 - add r5, r5, #2 - add r8, sb, r8, lsl #8 - add sb, r8, r7 - mov r8, #0 - b _0201F9D8 -_0201F9C4: - ldrb r7, [r0, sb] - add sb, sb, #1 - add r8, r8, #1 - strb r7, [r0, ip] - add ip, ip, #1 -_0201F9D8: - cmp r8, r6 - blt _0201F9C4 - b _0201F9F4 -_0201F9E4: - ldrb r6, [r2, r5] - add r5, r5, #1 - strb r6, [r0, ip] - add ip, ip, #1 -_0201F9F4: - add r4, r4, #1 - lsl lr, lr, #1 -_0201F9FC: - cmp r5, r3 - blt _0201F750 - mov r0, ip -_0201FA08: - add sp, sp, #0x1c - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end DecompressAtNormal - - arm_func_start DecompressAtHalf -DecompressAtHalf: @ 0x0201FA10 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x34 - ldrb r4, [r2] - ldrb r6, [r2, #5] - ldrb r5, [r2, #6] - cmp r4, #0x50 - mov ip, #0 - add sl, r6, r5, lsl #8 - ldrbeq r5, [r2, #1] - str ip, [sp, #0x30] - mov lr, #8 - cmpeq r5, #0x4b - ldrbeq r5, [r2, #2] - cmpeq r5, #0x44 - ldrbeq r5, [r2, #3] - cmpeq r5, #0x50 - bne _0201FA88 - ldrb r6, [r2, #0x10] - ldrb r5, [r2, #0x11] - ldrb r7, [r2, #0x12] - ldrb r4, [r2, #0x13] - add r5, r6, r5, lsl #8 - add r5, r5, r7, lsl #16 - add r4, r5, r4, lsl #24 - cmp r1, #0 - cmpne r1, r4 - movne r0, ip - bne _0201FF44 - mov r8, #0x14 - b _0201FB18 -_0201FA88: - cmp r4, #0x41 - ldrbeq r5, [r2, #1] - cmpeq r5, #0x54 - ldrbeq r5, [r2, #2] - cmpeq r5, #0x34 - ldrbeq r5, [r2, #3] - cmpeq r5, #0x50 - bne _0201FAEC - ldrb r4, [r2, #4] - ldrb r6, [r2, #0x10] - ldrb r5, [r2, #0x11] - cmp r4, #0x4e - add r4, r6, r5, lsl #8 - bne _0201FAD4 - cmp r1, #0 - cmpne r1, sl - beq _0201FB18 - mov r0, #0 - b _0201FF44 -_0201FAD4: - cmp r1, #0 - cmpne r1, r4 - movne r0, #0 - bne _0201FF44 - mov r8, #0x12 - b _0201FB18 -_0201FAEC: - cmp r4, #0x41 - ldrbeq r4, [r2, #1] - cmpeq r4, #0x54 - ldrbeq r4, [r2, #2] - cmpeq r4, #0x33 - ldrbeq r4, [r2, #3] - cmpeq r4, #0x50 - moveq r8, #0x10 - beq _0201FB18 - mov r0, #0 - b _0201FF44 -_0201FB18: - ldrb r4, [r2, #4] - cmp r4, #0x4e - bne _0201FB78 - mov r5, #0 - b _0201FB68 -_0201FB2C: - add r6, r2, r5 - ldrb r4, [r6, #7] - add r1, r0, r5, lsl #1 - ands r4, r4, #0xf - strb r4, [r0, r5, lsl #1] - orrne r4, r4, r3 - strbne r4, [r1] - ldrb r4, [r6, #7] - add r5, r5, #1 - and r4, r4, #0xf0 - asr r4, r4, #4 - strb r4, [r1, #1] - ands r4, r4, #0xff - orrne r4, r4, r3 - strbne r4, [r1, #1] -_0201FB68: - cmp r5, sl - blt _0201FB2C - mov r0, r5 - b _0201FF44 -_0201FB78: - ldrb r4, [r2, #7] - ldrb r7, [r2, #8] - ldrb r6, [r2, #9] - add r4, r4, #3 - str r4, [sp, #0x24] - add r4, r7, #3 - str r4, [sp, #0x20] - add r4, r6, #3 - ldrb r5, [r2, #0xa] - str r4, [sp, #0x1c] - ldrb sb, [r2, #0xb] - add r4, r5, #3 - str r4, [sp, #0x18] - add r4, sb, #3 - str r4, [sp, #0x14] - ldrb r4, [r2, #0xc] - ldrb r6, [r2, #0xd] - ldrb r5, [r2, #0xe] - add r4, r4, #3 - str r4, [sp, #0x10] - add r4, r6, #3 - str r4, [sp, #0xc] - add r4, r5, #3 - str r4, [sp, #8] - ldrb r4, [r2, #0xf] - lsl r1, r1, #1 - add r4, r4, #3 - str r4, [sp, #4] - b _0201FF38 -_0201FBEC: - cmp r1, #0 - beq _0201FC00 - cmp ip, r1 - movge r0, #0 - bge _0201FF44 -_0201FC00: - cmp lr, #8 - ldrbeq r4, [r2, r8] - addeq r8, r8, #1 - moveq lr, #0 - streq r4, [sp, #0x30] - ldr r4, [sp, #0x30] - tst r4, #0x80 - bne _0201FEEC - add r4, r2, r8 - str r4, [sp] - ldrb r4, [r2, r8] - ldr sb, [sp, #0x24] - str r4, [sp, #0x28] - ldr r5, [sp, #0x28] - ldr r6, [sp, #0x28] - ldr r7, [sp, #0x28] - and r4, r4, #0xf0 - asr r4, r4, #4 - ands fp, r5, #0xf - add r6, r6, #1 - sub r7, r7, #1 - mov r5, fp - add r4, r4, #3 - and r6, r6, #0xf - orrne r5, fp, r3 - cmp r6, #0 - and r7, r7, #0xf - orrne r6, r6, r3 - cmp r7, #0 - orrne r7, r7, r3 - cmp r4, sb - ldr sb, [sp, #0x20] - moveq r4, #0x1f - cmp r4, sb - ldr sb, [sp, #0x1c] - moveq r4, #0x1e - cmp r4, sb - ldr sb, [sp, #0x18] - moveq r4, #0x1d - cmp r4, sb - ldr sb, [sp, #0x14] - moveq r4, #0x1c - cmp r4, sb - ldr sb, [sp, #0x10] - moveq r4, #0x1b - cmp r4, sb - ldr sb, [sp, #0xc] - moveq r4, #0x1a - cmp r4, sb - ldr sb, [sp, #8] - moveq r4, #0x19 - cmp r4, sb - ldr sb, [sp, #4] - moveq r4, #0x18 - cmp r4, sb - moveq r4, #0x17 - sub sb, r4, #0x17 - str sb, [sp, #0x2c] - cmp sb, #8 - addls pc, pc, sb, lsl #2 - b _0201FEAC -_0201FCF4: @ jump table - b _0201FE80 @ case 0 - b _0201FE54 @ case 1 - b _0201FE28 @ case 2 - b _0201FDFC @ case 3 - b _0201FDC8 @ case 4 - b _0201FD9C @ case 5 - b _0201FD70 @ case 6 - b _0201FD44 @ case 7 - b _0201FD18 @ case 8 -_0201FD18: - and r5, r5, #0xff - strb r5, [r0, ip] - add r8, r8, #1 - add r4, ip, #1 - strb r5, [r0, r4] - add r4, ip, #2 - strb r5, [r0, r4] - add r4, ip, #3 - strb r5, [r0, r4] - add ip, ip, #4 - b _0201FF28 -_0201FD44: - and r4, r6, #0xff - strb r4, [r0, ip] - add r8, r8, #1 - add r6, ip, #1 - strb r5, [r0, r6] - add r5, ip, #2 - strb r4, [r0, r5] - add r5, ip, #3 - strb r4, [r0, r5] - add ip, ip, #4 - b _0201FF28 -_0201FD70: - strb r7, [r0, ip] - and r5, r5, #0xff - add r8, r8, #1 - add r4, ip, #1 - strb r5, [r0, r4] - add r4, ip, #2 - strb r5, [r0, r4] - add r4, ip, #3 - strb r5, [r0, r4] - add ip, ip, #4 - b _0201FF28 -_0201FD9C: - and r5, r5, #0xff - strb r5, [r0, ip] - add r8, r8, #1 - add r4, ip, #1 - strb r5, [r0, r4] - add r4, ip, #2 - strb r5, [r0, r4] - add r4, ip, #3 - strb r7, [r0, r4] - add ip, ip, #4 - b _0201FF28 -_0201FDC8: - orr r5, fp, r3 - add r8, r8, #1 - and r4, r5, #0xff - sub r6, r5, #1 - strb r4, [r0, ip] - add r5, ip, #1 - strb r4, [r0, r5] - add r5, ip, #2 - strb r6, [r0, r5] - add r5, ip, #3 - strb r4, [r0, r5] - add ip, ip, #4 - b _0201FF28 -_0201FDFC: - and r4, r7, #0xff - strb r4, [r0, ip] - add r8, r8, #1 - add r6, ip, #1 - strb r5, [r0, r6] - add r5, ip, #2 - strb r4, [r0, r5] - add r5, ip, #3 - strb r4, [r0, r5] - add ip, ip, #4 - b _0201FF28 -_0201FE28: - strb r6, [r0, ip] - and r5, r5, #0xff - add r8, r8, #1 - add r4, ip, #1 - strb r5, [r0, r4] - add r4, ip, #2 - strb r5, [r0, r4] - add r4, ip, #3 - strb r5, [r0, r4] - add ip, ip, #4 - b _0201FF28 -_0201FE54: - and r5, r5, #0xff - strb r5, [r0, ip] - add r8, r8, #1 - add r4, ip, #1 - strb r5, [r0, r4] - add r4, ip, #2 - strb r5, [r0, r4] - add r4, ip, #3 - strb r6, [r0, r4] - add ip, ip, #4 - b _0201FF28 -_0201FE80: - and r4, r5, #0xff - strb r4, [r0, ip] - add r8, r8, #1 - add r5, ip, #1 - strb r4, [r0, r5] - add r5, ip, #2 - strb r6, [r0, r5] - add r5, ip, #3 - strb r4, [r0, r5] - add ip, ip, #4 - b _0201FF28 -_0201FEAC: - ldr r5, [sp] - add r8, r8, #2 - ldrb r6, [r5, #1] - sub r5, ip, #0x2000 - add r6, r6, fp, lsl #8 - add r7, r5, r6, lsl #1 - mov r6, #0 - b _0201FEE0 -_0201FECC: - ldrb r5, [r0, r7] - add r7, r7, #1 - add r6, r6, #1 - strb r5, [r0, ip] - add ip, ip, #1 -_0201FEE0: - cmp r6, r4, lsl #1 - blt _0201FECC - b _0201FF28 -_0201FEEC: - ldrb r5, [r2, r8] - add r4, r0, ip - ands r5, r5, #0xf - strb r5, [r0, ip] - orrne r5, r5, r3 - strbne r5, [r4] - ldrb r5, [r2, r8] - add ip, ip, #2 - add r8, r8, #1 - and r5, r5, #0xf0 - asr r5, r5, #4 - strb r5, [r4, #1] - ands r5, r5, #0xff - orrne r5, r5, r3 - strbne r5, [r4, #1] -_0201FF28: - ldr r4, [sp, #0x30] - add lr, lr, #1 - lsl r4, r4, #1 - str r4, [sp, #0x30] -_0201FF38: - cmp r8, sl - blt _0201FBEC - mov r0, ip -_0201FF44: - add sp, sp, #0x34 - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end DecompressAtHalf - - arm_func_start DecompressAtFromMemoryPointerVeneer -DecompressAtFromMemoryPointerVeneer: @ 0x0201FF4C - ldr ip, _0201FF54 @ =DecompressAtFromMemoryPointer - bx ip - .align 2, 0 -_0201FF54: .4byte DecompressAtFromMemoryPointer - arm_func_end DecompressAtFromMemoryPointerVeneer - - arm_func_start DecompressAtFromMemoryPointer -DecompressAtFromMemoryPointer: @ 0x0201FF58 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x2c - mov r5, r2 - ldrb r4, [r5, #5] - ldrb r3, [r5, #6] - ldr r2, _0202046C @ =0x022A5038 - mov r7, #0 - str r0, [r2] - str r0, [r2, #0xc] - str r7, [r2, #4] - str r7, [r2, #8] - ldrb r0, [r5] - mov r6, r1 - add r1, r4, r3, lsl #8 - cmp r0, #0x50 - str r1, [sp, #0x28] - ldrbeq r1, [r5, #1] - str r7, [sp, #0x24] - mov sl, #8 - cmpeq r1, #0x4b - ldrbeq r1, [r5, #2] - cmpeq r1, #0x44 - ldrbeq r1, [r5, #3] - cmpeq r1, #0x50 - bne _0201FFF0 - ldrb r1, [r5, #0x10] - ldrb r0, [r5, #0x11] - ldrb r2, [r5, #0x12] - ldrb r3, [r5, #0x13] - add r0, r1, r0, lsl #8 - add r0, r0, r2, lsl #16 - add r0, r0, r3, lsl #24 - cmp r6, #0 - cmpne r6, r0 - movne r0, r7 - bne _02020464 - mov r4, #0x14 - b _02020060 -_0201FFF0: - cmp r0, #0x41 - ldrbeq r1, [r5, #1] - cmpeq r1, #0x54 - ldrbeq r1, [r5, #2] - cmpeq r1, #0x34 - ldrbeq r1, [r5, #3] - cmpeq r1, #0x50 - bne _02020034 - ldrb r1, [r5, #0x10] - ldrb r0, [r5, #0x11] - cmp r6, #0 - add r0, r1, r0, lsl #8 - cmpne r6, r0 - movne r0, #0 - bne _02020464 - mov r4, #0x12 - b _02020060 -_02020034: - cmp r0, #0x41 - ldrbeq r0, [r5, #1] - cmpeq r0, #0x54 - ldrbeq r0, [r5, #2] - cmpeq r0, #0x33 - ldrbeq r0, [r5, #3] - cmpeq r0, #0x50 - moveq r4, #0x10 - beq _02020060 - mov r0, #0 - b _02020464 -_02020060: - ldrb r0, [r5, #4] - cmp r0, #0x4e - bne _0202009C - mov r4, #0 - b _02020084 -_02020074: - add r0, r5, r4 - ldrb r0, [r0, #7] - bl WriteByteFromMemoryPointer - add r4, r4, #1 -_02020084: - ldr r0, [sp, #0x28] - cmp r4, r0 - blt _02020074 - bl FUN_020204cc - mov r0, r4 - b _02020464 -_0202009C: - ldrb r0, [r5, #7] - ldrb fp, [r5, #8] - ldrb sb, [r5, #9] - add r0, r0, #3 - str r0, [sp, #0x20] - add r0, fp, #3 - str r0, [sp, #0x1c] - add r0, sb, #3 - ldrb r8, [r5, #0xa] - str r0, [sp, #0x18] - ldrb r3, [r5, #0xb] - add r0, r8, #3 - str r0, [sp, #0x14] - add r0, r3, #3 - ldrb r2, [r5, #0xc] - str r0, [sp, #0x10] - ldrb r1, [r5, #0xd] - add r0, r2, #3 - str r0, [sp, #0xc] - add r0, r1, #3 - str r0, [sp, #8] - ldrb r0, [r5, #0xe] - ldrb r1, [r5, #0xf] - add r0, r0, #3 - str r0, [sp, #4] - add r0, r1, #3 - str r0, [sp] - b _02020450 -_0202010C: - cmp r6, #0 - beq _02020120 - cmp r7, r6 - movge r0, #0 - bge _02020464 -_02020120: - cmp sl, #8 - ldrbeq r0, [r5, r4] - addeq r4, r4, #1 - moveq sl, #0 - streq r0, [sp, #0x24] - ldr r0, [sp, #0x24] - tst r0, #0x80 - bne _02020430 - ldrb r2, [r5, r4] - add r0, r5, r4 - and r1, r2, #0xf0 - asr r1, r1, #4 - add r8, r1, #3 - ldr r1, [sp, #0x20] - and sb, r2, #0xf - cmp r8, r1 - ldr r1, [sp, #0x1c] - moveq r8, #0x1f - cmp r8, r1 - ldr r1, [sp, #0x18] - moveq r8, #0x1e - cmp r8, r1 - ldr r1, [sp, #0x14] - moveq r8, #0x1d - cmp r8, r1 - ldr r1, [sp, #0x10] - moveq r8, #0x1c - cmp r8, r1 - ldr r1, [sp, #0xc] - moveq r8, #0x1b - cmp r8, r1 - ldr r1, [sp, #8] - moveq r8, #0x1a - cmp r8, r1 - ldr r1, [sp, #4] - moveq r8, #0x19 - cmp r8, r1 - ldr r1, [sp] - moveq r8, #0x18 - cmp r8, r1 - moveq r8, #0x17 - sub r1, r8, #0x17 - cmp r1, #8 - addls pc, pc, r1, lsl #2 - b _02020398 -_020201D4: @ jump table - b _02020368 @ case 0 - b _02020338 @ case 1 - b _02020308 @ case 2 - b _020202DC @ case 3 - b _020202AC @ case 4 - b _0202027C @ case 5 - b _0202024C @ case 6 - b _02020220 @ case 7 - b _020201F8 @ case 8 -_020201F8: - add r4, r4, #1 - orr r0, sb, sb, lsl #4 - and r0, r0, #0xff - bl WriteByteFromMemoryPointer - and r0, sb, #0xf - orr r0, r0, r0, lsl #4 - and r0, r0, #0xff - bl WriteByteFromMemoryPointer - add r7, r7, #2 - b _02020440 -_02020220: - add r4, r4, #1 - add r0, sb, #1 - and r8, r0, #0xf - orr r0, r8, sb, lsl #4 - and r0, r0, #0xff - bl WriteByteFromMemoryPointer - orr r0, r8, r8, lsl #4 - and r0, r0, #0xff - bl WriteByteFromMemoryPointer - add r7, r7, #2 - b _02020440 -_0202024C: - add r4, r4, #1 - sub r0, sb, #1 - and r0, r0, #0xf - orr r0, r0, sb, lsl #4 - and r0, r0, #0xff - bl WriteByteFromMemoryPointer - and r0, sb, #0xf - orr r0, r0, r0, lsl #4 - and r0, r0, #0xff - bl WriteByteFromMemoryPointer - add r7, r7, #2 - b _02020440 -_0202027C: - add r4, r4, #1 - orr r0, sb, sb, lsl #4 - and r0, r0, #0xff - bl WriteByteFromMemoryPointer - sub r0, sb, #1 - lsl r1, r0, #0x1c - and r0, sb, #0xf - orr r0, r0, r1, lsr #24 - and r0, r0, #0xff - bl WriteByteFromMemoryPointer - add r7, r7, #2 - b _02020440 -_020202AC: - add r4, r4, #1 - orr r0, sb, sb, lsl #4 - and r0, r0, #0xff - bl WriteByteFromMemoryPointer - lsl r1, sb, #0x1c - sub r0, sb, #1 - and r0, r0, #0xf - orr r0, r0, r1, lsr #24 - and r0, r0, #0xff - bl WriteByteFromMemoryPointer - add r7, r7, #2 - b _02020440 -_020202DC: - add r4, r4, #1 - sub r0, sb, #1 - and r8, r0, #0xf - orr r0, r8, sb, lsl #4 - and r0, r0, #0xff - bl WriteByteFromMemoryPointer - orr r0, r8, r8, lsl #4 - and r0, r0, #0xff - bl WriteByteFromMemoryPointer - add r7, r7, #2 - b _02020440 -_02020308: - add r4, r4, #1 - add r0, sb, #1 - and r0, r0, #0xf - orr r0, r0, sb, lsl #4 - and r0, r0, #0xff - bl WriteByteFromMemoryPointer - and r0, sb, #0xf - orr r0, r0, r0, lsl #4 - and r0, r0, #0xff - bl WriteByteFromMemoryPointer - add r7, r7, #2 - b _02020440 -_02020338: - add r4, r4, #1 - orr r0, sb, sb, lsl #4 - and r0, r0, #0xff - bl WriteByteFromMemoryPointer - add r0, sb, #1 - lsl r1, r0, #0x1c - and r0, sb, #0xf - orr r0, r0, r1, lsr #24 - and r0, r0, #0xff - bl WriteByteFromMemoryPointer - add r7, r7, #2 - b _02020440 -_02020368: - add r4, r4, #1 - orr r0, sb, sb, lsl #4 - and r0, r0, #0xff - bl WriteByteFromMemoryPointer - lsl r1, sb, #0x1c - add r0, sb, #1 - and r0, r0, #0xf - orr r0, r0, r1, lsr #24 - and r0, r0, #0xff - bl WriteByteFromMemoryPointer - add r7, r7, #2 - b _02020440 -_02020398: - ldrb r1, [r0, #1] - sub r0, r7, #0x1000 - add r4, r4, #2 - add r1, r1, sb, lsl #8 - add sb, r1, r0 - mov fp, #0 - b _02020424 -_020203B4: - ldr r0, _0202046C @ =0x022A5038 - ldr r1, [r0, #0xc] - asr r0, sb, #1 - add r0, sb, r0, lsr #30 - asr r0, r0, #2 - ldr r1, [r1, r0, lsl #2] - and r0, sb, #3 - cmp r0, #3 - addls pc, pc, r0, lsl #2 - b _020203EC -_020203DC: @ jump table - b _020203EC @ case 0 - b _020203F4 @ case 1 - b _02020400 @ case 2 - b _0202040C @ case 3 -_020203EC: - and r0, r1, #0xff - b _02020414 -_020203F4: - lsr r0, r1, #8 - and r0, r0, #0xff - b _02020414 -_02020400: - lsr r0, r1, #0x10 - and r0, r0, #0xff - b _02020414 -_0202040C: - lsr r0, r1, #0x18 - and r0, r0, #0xff -_02020414: - bl WriteByteFromMemoryPointer - add r7, r7, #1 - add sb, sb, #1 - add fp, fp, #1 -_02020424: - cmp fp, r8 - blt _020203B4 - b _02020440 -_02020430: - ldrb r0, [r5, r4] - bl WriteByteFromMemoryPointer - add r7, r7, #1 - add r4, r4, #1 -_02020440: - ldr r0, [sp, #0x24] - add sl, sl, #1 - lsl r0, r0, #1 - str r0, [sp, #0x24] -_02020450: - ldr r0, [sp, #0x28] - cmp r4, r0 - blt _0202010C - bl FUN_020204cc - mov r0, r7 -_02020464: - add sp, sp, #0x2c - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0202046C: .4byte 0x022A5038 - arm_func_end DecompressAtFromMemoryPointer - - arm_func_start WriteByteFromMemoryPointer -WriteByteFromMemoryPointer: @ 0x02020470 - ldr r1, _020204C4 @ =0x022A5038 - ldr r2, _020204C8 @ =0x020997A4 - ldr r3, [r1, #8] - ldr ip, [r1, #4] - ldr r2, [r2, r3, lsl #2] - orr r2, ip, r0, lsl r2 - str r2, [r1, #4] - ldr r0, [r1] - str r2, [r0] - ldr r0, [r1, #8] - add r0, r0, #1 - str r0, [r1, #8] - cmp r0, #4 - bxne lr - ldr r2, [r1] - mov r0, #0 - add r2, r2, #4 - str r2, [r1] - str r0, [r1, #4] - str r0, [r1, #8] - bx lr - .align 2, 0 -_020204C4: .4byte 0x022A5038 -_020204C8: .4byte 0x020997A4 - arm_func_end WriteByteFromMemoryPointer - - arm_func_start FUN_020204cc -FUN_020204cc: @ 0x020204CC - ldr r0, _020204E8 @ =0x022A5038 - ldr r1, [r0, #8] - cmp r1, #0 - ldrne r1, [r0, #4] - ldrne r0, [r0] - strne r1, [r0] - bx lr - .align 2, 0 -_020204E8: .4byte 0x022A5038 - arm_func_end FUN_020204cc - - arm_func_start GetAtSize -GetAtSize: @ 0x020204EC - ldrb r2, [r0] - cmp r2, #0x50 - ldrbeq r1, [r0, #1] - cmpeq r1, #0x4b - ldrbeq r1, [r0, #2] - cmpeq r1, #0x44 - ldrbeq r1, [r0, #3] - cmpeq r1, #0x50 - bne _02020530 - ldrb r2, [r0, #0x10] - ldrb r1, [r0, #0x11] - ldrb r3, [r0, #0x12] - ldrb ip, [r0, #0x13] - add r0, r2, r1, lsl #8 - add r0, r0, r3, lsl #16 - add r0, r0, ip, lsl #24 - bx lr -_02020530: - cmp r2, #0x41 - ldrbeq r1, [r0, #1] - cmpeq r1, #0x54 - ldrbeq r1, [r0, #2] - cmpeq r1, #0x34 - ldrbeq r1, [r0, #3] - cmpeq r1, #0x50 - ldrbeq r1, [r0, #0x10] - ldrbeq r0, [r0, #0x11] - addeq r0, r1, r0, lsl #8 - bxeq lr - cmp r2, #0x41 - ldrbeq r1, [r0, #1] - cmpeq r1, #0x54 - ldrbeq r0, [r0, #2] - cmpeq r0, #0x33 - moveq r0, #0 - movne r0, #0 - bx lr - arm_func_end GetAtSize - - arm_func_start FUN_0202057c -FUN_0202057c: @ 0x0202057C - stmdb sp!, {lr} - sub sp, sp, #0x54 - add r0, sp, #0 - bl thunk_FUN_0207ba08 - ldrsb r0, [sp] - bl FUN_020205c0 - add sp, sp, #0x54 - ldm sp!, {pc} - arm_func_end FUN_0202057c - - arm_func_start FUN_0202059c -FUN_0202059c: @ 0x0202059C - bx lr - arm_func_end FUN_0202059c - - arm_func_start GetLanguageType -GetLanguageType: @ 0x020205A0 - ldr r0, _020205AC @ =0x020AFCE8 - ldrsb r0, [r0, #1] - bx lr - .align 2, 0 -_020205AC: .4byte 0x020AFCE8 - arm_func_end GetLanguageType - - arm_func_start GetLanguage -GetLanguage: @ 0x020205B0 - ldr r0, _020205BC @ =0x020AFCE8 - ldrsb r0, [r0] - bx lr - .align 2, 0 -_020205BC: .4byte 0x020AFCE8 - arm_func_end GetLanguage - - arm_func_start FUN_020205c0 -FUN_020205c0: @ 0x020205C0 - cmp r0, #0 - blt _020205D8 - cmp r0, #9 - ldrlt r1, _020205E0 @ =0x020997B4 - ldrsblt r0, [r1, r0] - bxlt lr -_020205D8: - mvn r0, #0 - bx lr - .align 2, 0 -_020205E0: .4byte 0x020997B4 - arm_func_end FUN_020205c0 - - arm_func_start FUN_020205e4 -FUN_020205e4: @ 0x020205E4 - push {r3, lr} - bl FUN_0202057c - bl FUN_020257fc - bl FUN_02023610 - pop {r3, pc} - arm_func_end FUN_020205e4 - - arm_func_start FUN_020205f8 -FUN_020205f8: @ 0x020205F8 - push {r3, lr} - bl FUN_0200b768 - bl LoadStringFile - bl FUN_0202088c - pop {r3, pc} - arm_func_end FUN_020205f8 - - arm_func_start FUN_0202060c -FUN_0202060c: @ 0x0202060C - cmp r0, #0 - mvneq r0, #0 - bxeq lr - cmp r0, #0x61 - blo _0202062C - cmp r0, #0x66 - subls r0, r0, #0x57 - bxls lr -_0202062C: - cmp r0, #0x41 - blo _02020640 - cmp r0, #0x46 - subls r0, r0, #0x37 - bxls lr -_02020640: - cmp r0, #0x30 - blo _02020654 - cmp r0, #0x39 - subls r0, r0, #0x30 - bxls lr -_02020654: - mov r0, #0 - bx lr - arm_func_end FUN_0202060c - - arm_func_start FUN_0202065c -FUN_0202065c: @ 0x0202065C - push {r4, r5, r6, lr} - mov r4, r0 - ldr r6, [r4] - ldrb r0, [r6] - cmp r0, #0x7e - bne _020206C8 - ldrb r0, [r6, #1] - bl FUN_0202060c - movs r5, r0 - addmi r0, r6, #1 - strmi r0, [r4] - movmi r0, #0 - popmi {r4, r5, r6, pc} - ldrb r0, [r6, #2] - bl FUN_0202060c - cmp r0, #0 - addlt r1, r6, #2 - lsllt r0, r5, #0x10 - strlt r1, [r4] - lsrlt r0, r0, #0x10 - poplt {r4, r5, r6, pc} - add r0, r0, r5, lsl #4 - add r1, r6, #3 - lsl r0, r0, #0x10 - str r1, [r4] - lsr r0, r0, #0x10 - pop {r4, r5, r6, pc} -_020206C8: - cmp r0, #0x81 - blo _020206D8 - cmp r0, #0x84 - bls _020206E0 -_020206D8: - cmp r0, #0x87 - bne _020206F0 -_020206E0: - ldrb r1, [r6, #1]! - orr r0, r1, r0, lsl #8 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 -_020206F0: - add r1, r6, #1 - str r1, [r4] - pop {r4, r5, r6, pc} - arm_func_end FUN_0202065c - - arm_func_start FUN_020206fc -FUN_020206fc: @ 0x020206FC - push {r4, r5, r6, r7, r8, sb, sl, lr} - mov sb, r1 - ldr r5, [sb] - mov sl, r0 - ldrb r0, [r5] - mov r8, r2 - ldr r4, [sl] - cmp r0, #0x7e - bne _020207F0 - ldrb r0, [r5, #1] - mov r6, #0 - bl FUN_0202060c - movs r7, r0 - bpl _02020754 - ldrb r2, [r5] - add r1, r4, #1 - add r0, r5, #1 - strb r2, [r4] - str r1, [sl] - str r0, [sb] - mov r0, r6 - pop {r4, r5, r6, r7, r8, sb, sl, pc} -_02020754: - add r0, r4, #1 - cmp r0, r8 - ldrb r0, [r5, #2] - moveq r6, #1 - bl FUN_0202060c - cmp r0, #0 - bge _020207A4 - cmp r6, #0 - bne _02020790 - ldrb r1, [r5] - add r0, r4, #2 - strb r1, [r4] - ldrb r1, [r5, #1] - strb r1, [r4, #1] - str r0, [sl] -_02020790: - add r1, r5, #2 - lsl r0, r7, #0x10 - str r1, [sb] - lsr r0, r0, #0x10 - pop {r4, r5, r6, r7, r8, sb, sl, pc} -_020207A4: - add r1, r4, #2 - cmp r1, r8 - moveq r6, #1 - cmp r6, #0 - bne _020207D8 - ldrb r2, [r5] - add r1, r4, #3 - strb r2, [r4] - ldrb r2, [r5, #1] - strb r2, [r4, #1] - ldrb r2, [r5, #2] - strb r2, [r4, #2] - str r1, [sl] -_020207D8: - add r0, r0, r7, lsl #4 - add r1, r5, #3 - lsl r0, r0, #0x10 - str r1, [sb] - lsr r0, r0, #0x10 - pop {r4, r5, r6, r7, r8, sb, sl, pc} -_020207F0: - cmp r0, #0x81 - blo _02020800 - cmp r0, #0x84 - bls _02020808 -_02020800: - cmp r0, #0x87 - bne _02020850 -_02020808: - ldrb r2, [r5, #1] - add r1, r4, #1 - cmp r1, r8 - orr r0, r2, r0, lsl #8 - lsl r0, r0, #0x10 - addeq r1, r5, #2 - lsr r0, r0, #0x10 - streq r1, [sb] - popeq {r4, r5, r6, r7, r8, sb, sl, pc} - ldrb r3, [r5] - add r2, r5, #2 - add r1, r4, #2 - strb r3, [r4] - ldrb r3, [r5, #1] - strb r3, [r4, #1] - str r2, [sb] - str r1, [sl] - pop {r4, r5, r6, r7, r8, sb, sl, pc} -_02020850: - strb r0, [r4] - add r1, r5, #1 - str r1, [sb] - add r1, r4, #1 - str r1, [sl] - pop {r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_end FUN_020206fc -_02020868: - .byte 0x00, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x80, 0xE2 - .byte 0x00, 0x10, 0xD0, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x70, 0x9A, 0x08, 0x02 - - arm_func_start FUN_0202088c -FUN_0202088c: @ 0x0202088C - bx lr - arm_func_end FUN_0202088c - - arm_func_start FUN_02020890 -FUN_02020890: @ 0x02020890 - cmp r1, #0 - beq _020208C0 - ldr ip, [r0] -_0202089C: - cmp ip, r2 - moveq r0, #0 - strbeq r0, [r2, #-1] - bxeq lr - ldrb r3, [r1], #1 - cmp r3, #0 - strbne r3, [ip], #1 - bne _0202089C - str ip, [r0] -_020208C0: - mov r0, #1 - bx lr - arm_func_end FUN_02020890 - - arm_func_start StrcmpTag -StrcmpTag: @ 0x020208C8 - ldrb r2, [r1], #1 - ldrb r3, [r0], #1 - cmp r2, #0 - bne _020208F0 - cmp r3, #0 - cmpne r3, #0x3a - cmpne r3, #0x5d - moveq r0, #1 - movne r0, #0 - bx lr -_020208F0: - cmp r3, #0 - moveq r0, #0 - bxeq lr - cmp r3, r2 - beq StrcmpTag - mov r0, #0 - bx lr - arm_func_end StrcmpTag - - arm_func_start StoiTag -StoiTag: @ 0x0202090C - mov r3, #0 - mov r1, #0xa -_02020914: - ldrb r2, [r0], #1 - cmp r2, #0 - cmpne r2, #0x3a - cmpne r2, #0x5d - moveq r0, r3 - bxeq lr - cmp r2, #0x30 - blo _02020914 - cmp r2, #0x39 - mlals r2, r3, r1, r2 - subls r3, r2, #0x30 - b _02020914 - arm_func_end StoiTag -_02020944: - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02020948 -FUN_02020948: @ 0x02020948 - push {r4, lr} - ldrb r4, [r0] - cmp r4, #0x41 - blo _02020A24 - cmp r4, #0x5a - bhi _02020A24 - add r0, r0, #1 - bl StoiTag - lsl r0, r0, #0x10 - cmp r4, #0x49 - asr r0, r0, #0x10 - bgt _0202099C - cmp r4, #0x48 - blt _02020990 - beq _020209DC - cmp r4, #0x49 - beq _02020A0C - b _02020A1C -_02020990: - cmp r4, #0x42 - popeq {r4, pc} - b _02020A1C -_0202099C: - cmp r4, #0x52 - bgt _020209AC - beq _020209EC - b _02020A1C -_020209AC: - cmp r4, #0x54 - bgt _02020A1C - cmp r4, #0x53 - blt _02020A1C - beq _020209CC - cmp r4, #0x54 - beq _020209FC - b _02020A1C -_020209CC: - add r0, r0, #0x21 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - pop {r4, pc} -_020209DC: - add r0, r0, #0x29 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - pop {r4, pc} -_020209EC: - add r0, r0, #0x32 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - pop {r4, pc} -_020209FC: - add r0, r0, #0x3c - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - pop {r4, pc} -_02020A0C: - add r0, r0, #0x43 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - pop {r4, pc} -_02020A1C: - mvn r0, #0 - pop {r4, pc} -_02020A24: - cmp r4, #0x30 - blo _02020A44 - cmp r4, #0x39 - bhi _02020A44 - bl StoiTag - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - pop {r4, pc} -_02020A44: - mvn r0, #0 - pop {r4, pc} - arm_func_end FUN_02020948 - - arm_func_start FUN_02020a4c -FUN_02020a4c: @ 0x02020A4C - push {r3, r4, r5, lr} - mov r5, r0 - bl GetLanguageType - cmp r0, #3 - ldreq r4, _02020A94 @ =0x0209995C - ldrne r4, _02020A98 @ =0x0209990C - b _02020A80 -_02020A68: - mov r0, r5 - bl StrcmpTag - cmp r0, #0 - ldrhne r0, [r4, #4] - popne {r3, r4, r5, pc} - add r4, r4, #8 -_02020A80: - ldr r1, [r4] - cmp r1, #0 - bne _02020A68 - mov r0, #0 - pop {r3, r4, r5, pc} - .align 2, 0 -_02020A94: .4byte 0x0209995C -_02020A98: .4byte 0x0209990C - arm_func_end FUN_02020a4c - - arm_func_start FUN_02020a9c -FUN_02020a9c: @ 0x02020A9C - push {r4, r5, r6, lr} - mov r4, r0 - mov r6, r1 - mov r5, r2 - mov lr, r4 - mov ip, #5 -_02020AB4: - ldm r6!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _02020AB4 - ldr r0, [r6] - str r0, [lr] - str r5, [r4, #0x54] - ldr r2, [r4, #0x20] - cmp r2, #0 - beq _02020AE8 - ldr r0, [r4, #0x54] - add r1, r4, #8 - blx r2 -_02020AE8: - mov r0, #0 - str r0, [r4, #0x58] - mov r0, #0x78 - mov r1, #0x3c - str r0, [r4, #0x6c] - mov r0, r4 - str r1, [r4, #0x70] - sub r1, r1, #0x3d - str r1, [r4, #0x74] - bl FUN_02020b14 - pop {r4, r5, r6, pc} - arm_func_end FUN_02020a9c - - arm_func_start FUN_02020b14 -FUN_02020b14: @ 0x02020B14 - mov r3, #0 - str r3, [r0, #0x5c] - strb r3, [r0, #0x9d] - ldr r2, [r0] - ldr r1, [r0, #4] - str r2, [r0, #0x90] - str r1, [r0, #0x94] - mov r2, r3 -_02020B34: - add r1, r0, r3 - add r3, r3, #1 - strb r2, [r1, #0x99] - cmp r3, #4 - blt _02020B34 - bx lr - arm_func_end FUN_02020b14 - - arm_func_start FUN_02020b4c -FUN_02020b4c: @ 0x02020B4C - ldr r2, [r1] - ldr r1, [r1, #4] - str r2, [r0, #0x10] - str r1, [r0, #0x14] - bx lr - arm_func_end FUN_02020b4c - - arm_func_start FUN_02020b60 -FUN_02020b60: @ 0x02020B60 - ldr r2, [r1] - ldr r1, [r1, #4] - str r2, [r0, #0x90] - str r1, [r0, #0x94] - bx lr - arm_func_end FUN_02020b60 - - arm_func_start FUN_02020b74 -FUN_02020b74: @ 0x02020B74 - push {r3, lr} - mov r2, r0 - strb r1, [r2, #0x98] - ldr r0, [r2, #0x54] - ldr r2, [r2, #0x30] - and r1, r1, #0xff - blx r2 - pop {r3, pc} - arm_func_end FUN_02020b74 - - arm_func_start FUN_02020b94 -FUN_02020b94: @ 0x02020B94 - push {r3, lr} - mov r2, r0 - strb r1, [r2, #0x98] - strb r1, [r2, #0x9c] - ldrb r1, [r2, #0x98] - ldr r0, [r2, #0x54] - ldr r2, [r2, #0x30] - blx r2 - pop {r3, pc} - arm_func_end FUN_02020b94 - - arm_func_start FUN_02020BB8 -FUN_02020BB8: @ 0x02020BB8 - str r1, [r0, #0x6c] - str r2, [r0, #0x70] - bx lr - arm_func_end FUN_02020BB8 - - arm_func_start FUN_02020bc4 -FUN_02020bc4: @ 0x02020BC4 - push {r4, lr} - mov r4, r0 - tst r1, #0x400 - movne r0, #1 - moveq r0, #0 - strh r1, [r4, #0x60] - strb r0, [r4, #0x62] - tst r1, #2 - movne r0, #3 - strne r0, [r4, #0x5c] - bne _02020C50 - tst r1, #4 - beq _02020C14 - mov r0, #3 - str r0, [r4, #0x5c] - ldr r1, [r4] - ldr r0, [r4, #4] - str r1, [r4, #0x90] - str r0, [r4, #0x94] - b _02020C50 -_02020C14: - ldr r0, [r4, #0x5c] - cmp r0, #1 - movne r0, #3 - strne r0, [r4, #0x5c] - bne _02020C40 - ldr r1, [r4, #0x6c] - mov r0, #0xc - str r1, [r4, #0x7c] - str r0, [r4, #0x5c] - mov r0, #1 - strb r0, [r4, #0x9d] -_02020C40: - ldr r1, [r4] - ldr r0, [r4, #4] - str r1, [r4, #0x90] - str r0, [r4, #0x94] -_02020C50: - str r2, [r4, #0x88] - str r2, [r4, #0x84] - mov r1, #0 - strh r1, [r4, #0x8c] - str r1, [r4, #0xa4] - strb r1, [r4, #0xa8] - add r2, r4, #0xac - mov r0, r1 -_02020C70: - add r1, r1, #1 - cmp r1, #4 - strb r0, [r2], #0x18 - blt _02020C70 - mov r1, #0x44 - strb r1, [r4, #0x98] - str r0, [r4, #0xa0] - bl GetDebugFlag1 - cmp r0, #0 - movne r0, #4 - moveq r0, #1 - str r0, [r4, #0x64] - mov r0, #1 - str r0, [r4, #0x68] - mov r0, #0 - str r0, [r4, #0x78] - str r0, [r4, #0x7c] - str r0, [r4, #0x80] - ldrb r1, [r4, #0x98] - ldr r0, [r4, #0x54] - ldr r2, [r4, #0x30] - blx r2 - pop {r4, pc} - arm_func_end FUN_02020bc4 - - arm_func_start FUN_02020CCC -FUN_02020CCC: @ 0x02020CCC - ldr r1, [r0, #0x5c] - cmp r1, #1 - bne _02020CF4 - ldr r2, [r0, #0x6c] - mov r1, #0xb - str r2, [r0, #0x7c] - str r1, [r0, #0x5c] - mov r1, #1 - strb r1, [r0, #0x9d] - bx lr -_02020CF4: - cmp r1, #0x10 - bxeq lr - ldr r2, [r0, #0x6c] - mov r1, #0xe - str r2, [r0, #0x7c] - str r1, [r0, #0x5c] - mov r1, #1 - strb r1, [r0, #0x9d] - bx lr - arm_func_end FUN_02020CCC - - arm_func_start FUN_02020D18 -FUN_02020D18: @ 0x02020D18 - ldr r1, [r0, #0x5c] - cmp r1, #1 - bxne lr - ldr r2, [r0, #0x6c] - mov r1, #0xd - str r2, [r0, #0x7c] - str r1, [r0, #0x5c] - mov r1, #1 - strb r1, [r0, #0x9d] - bx lr - arm_func_end FUN_02020D18 - - arm_func_start FUN_02020D40 -FUN_02020D40: @ 0x02020D40 - ldr r1, [r0, #0x5c] - cmp r1, #1 - moveq r1, #2 - streq r1, [r0, #0x5c] - bx lr - arm_func_end FUN_02020D40 - - arm_func_start FUN_02020D54 -FUN_02020D54: @ 0x02020D54 - ldr r0, [r0, #0x5c] - bx lr - arm_func_end FUN_02020D54 - - arm_func_start FUN_02020D5C -FUN_02020D5C: @ 0x02020D5C - ldr r0, [r0, #0x5c] - cmp r0, #0 - cmpne r0, #1 - cmpne r0, #2 - cmpne r0, #0x10 - moveq r0, #0 - movne r0, #1 - bx lr - arm_func_end FUN_02020D5C - - arm_func_start FUN_02020D7C -FUN_02020D7C: @ 0x02020D7C - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r1 - mov r4, #0 - mov ip, #0x18 - b _02020DB8 -_02020D94: - mla r0, r4, ip, r7 - mov r5, r6 - add lr, r0, #0xac - ldm lr!, {r0, r1, r2, r3} - stm r5!, {r0, r1, r2, r3} - ldm lr, {r0, r1} - stm r5, {r0, r1} - add r6, r6, #0x18 - add r4, r4, #1 -_02020DB8: - ldr r0, [r7, #0xa4] - cmp r4, r0 - blt _02020D94 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_02020D7C - - arm_func_start AnalyzeText -AnalyzeText: @ 0x02020DC8 - push {r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x84 - mov r4, r0 - ldr r0, [r4, #0x78] - add r0, r0, #1 - str r0, [r4, #0x78] - ldr r0, [r4, #0x5c] - cmp r0, #0x10 - addls pc, pc, r0, lsl #2 - b _02021EC4 -_02020DF0: @ jump table - b _02021EC4 @ case 0 - b _02021EC4 @ case 1 - b _02021EC4 @ case 2 - b _02020E34 @ case 3 - b _02020EC4 @ case 4 - b _02020E4C @ case 5 - b _02020E4C @ case 6 - b _02021C90 @ case 7 - b _02021CE4 @ case 8 - b _02021CE4 @ case 9 - b _02021CE4 @ case 10 - b _02021CE4 @ case 11 - b _02021CE4 @ case 12 - b _02021CE4 @ case 13 - b _02021E90 @ case 14 - b _02021E9C @ case 15 - b _02021EC4 @ case 16 -_02020E34: - ldrh r0, [r4, #0x60] - tst r0, #0x8000 - bne _02020E4C - ldr r0, [r4, #0x54] - ldr r1, [r4, #0x28] - blx r1 -_02020E4C: - ldr r1, [r4, #0x5c] - sub r0, r1, #5 - cmp r0, #1 - bhi _02020EBC - cmp r1, #5 - bne _02020E74 - ldrh r0, [r4, #0x60] - tst r0, #0x1000 - beq _02020E74 - bl FUN_02017cec -_02020E74: - ldrh r0, [r4, #0x60] - tst r0, #0x20 - bne _02020EA8 - tst r0, #0x800 - beq _02020EA8 - ldr r0, [r4, #0x54] - ldr r1, [r4, #0x18] - blx r1 - cmp r0, #0 - movne r0, #1 - strbne r0, [r4, #0x62] - movne r0, #0 - strne r0, [r4, #0x7c] -_02020EA8: - ldr r0, [r4, #0x7c] - sub r0, r0, #1 - str r0, [r4, #0x7c] - cmp r0, #0 - bgt _02021EC4 -_02020EBC: - mov r0, #4 - str r0, [r4, #0x5c] -_02020EC4: - ldrb r0, [r4, #0x62] - cmp r0, #0 - movne r0, #0x400 - ldreq r0, [r4, #0x64] - str r0, [r4, #0x80] - mov r0, #0 - str r0, [r4, #0x7c] - b _02021BFC -_02020EE4: - ldr r0, [r4, #0x88] - ldrb r0, [r0] - strh r0, [r4, #0x8c] - cmp r0, #0x5b - bne _02021AB4 - ldr r0, [r4, #0x88] - ldrb r5, [r0] - strh r5, [r4, #0x8c] - cmp r5, #0x5b - bne _02021A70 - ldr r0, [r4, #0x88] - mov r6, #1 - add r0, r0, #1 - str r0, [r4, #0x88] - str r0, [sp, #0x70] - add r0, sp, #0x70 -_02020F24: - ldr r1, [r4, #0x88] - mov r2, r1 - add r1, r1, #1 - str r1, [r4, #0x88] - ldrb r1, [r2] - cmp r1, #0x5d - beq _02020F54 - cmp r1, #0x3a - ldreq r1, [r4, #0x88] - streq r1, [r0, r6, lsl #2] - addeq r6, r6, #1 - b _02020F24 -_02020F54: - ldr r0, [sp, #0x70] - ldrb r7, [r0] - cmp r7, #0x41 - blo _02021A38 - cmp r7, #0x5a - bhi _02021A38 - sub r1, r7, #0x42 - cmp r1, #0x15 - addls pc, pc, r1, lsl #2 - b _02021A10 -_02020F7C: @ jump table - b _02020FD4 @ case 0 - b _02021040 @ case 1 - b _02021A10 @ case 2 - b _02021A10 @ case 3 - b _0202134C @ case 4 - b _02021A10 @ case 5 - b _020212F0 @ case 6 - b _02021A10 @ case 7 - b _02021A10 @ case 8 - b _02021404 @ case 9 - b _0202145C @ case 10 - b _02021694 @ case 11 - b _02021A10 @ case 12 - b _02021A10 @ case 13 - b _020217C4 @ case 14 - b _02021A10 @ case 15 - b _02021868 @ case 16 - b _020218D8 @ case 17 - b _02021A10 @ case 18 - b _02021A10 @ case 19 - b _02021A10 @ case 20 - b _020219AC @ case 21 -_02020FD4: - ldr r1, _02021ED0 @ =0x020999AC - bl StrcmpTag - cmp r0, #0 - beq _02021018 - ldr r1, [r4, #8] - ldr r3, [r4, #0x94] - ldr r2, [r4, #0x14] - ldr r0, [r4, #0x54] - ldr r5, [r4, #0x48] - add r2, r3, r2 - sub r3, r1, #4 - mov r1, #2 - blx r5 - ldr r0, [r4, #0x94] - add r0, r0, #3 - str r0, [r4, #0x94] - b _02021AA0 -_02021018: - ldr r0, _02021ED4 @ =0x020997E4 - ldr r2, [sp, #0x70] - ldr r1, [r0, #0xe8] - ldr r0, [r0, #0xe4] - str r1, [sp, #0x6c] - str r0, [sp, #0x68] - ldr r3, [r4, #0x84] - ldr r1, _02021ED8 @ =0x020999B0 - add r0, sp, #0x68 - bl FatalError -_02021040: - ldr r0, [sp, #0x70] - ldr r1, _02021EDC @ =0x020999C8 - bl StrcmpTag - cmp r0, #0 - beq _02021104 - cmp r6, #2 - bne _02021098 - ldrb r1, [r4, #0x9c] - cmp r1, #0 - ldrne r0, [sp, #0x74] - strbne r1, [r4, #0x99] - ldrbne r0, [r0] - strbne r0, [r4, #0x9c] - bne _020210F0 - ldrb r0, [r4, #0x98] - strb r0, [r4, #0x99] - ldrb r0, [r4, #0xa8] - cmp r0, #0 - ldreq r0, [sp, #0x74] - ldrbeq r0, [r0] - strbeq r0, [r4, #0x98] - b _020210F0 -_02021098: - cmp r6, #3 - bne _020210F0 - ldr r0, [sp, #0x74] - bl StoiTag - ldrb r2, [r4, #0x9c] - cmp r2, #0 - cmpne r0, #3 - beq _020210D0 - add r1, r4, r0 - ldr r0, [sp, #0x78] - strb r2, [r1, #0x99] - ldrb r0, [r0] - strb r0, [r4, #0x9c] - b _020210F0 -_020210D0: - ldrb r1, [r4, #0x98] - add r0, r4, r0 - strb r1, [r0, #0x99] - ldrb r0, [r4, #0xa8] - cmp r0, #0 - ldreq r0, [sp, #0x78] - ldrbeq r0, [r0] - strbeq r0, [r4, #0x98] -_020210F0: - ldrb r1, [r4, #0x98] - ldr r0, [r4, #0x54] - ldr r2, [r4, #0x30] - blx r2 - b _02021AA0 -_02021104: - ldr r0, [sp, #0x70] - ldr r1, _02021EE0 @ =0x020999CC - bl StrcmpTag - cmp r0, #0 - beq _020211C4 - cmp r6, #1 - bne _02021158 - ldrb r0, [r4, #0x9c] - cmp r0, #0 - ldrbne r1, [r4, #0x99] - movne r0, #0 - strbne r1, [r4, #0x9c] - strbne r0, [r4, #0x99] - bne _020211B0 - ldrb r0, [r4, #0xa8] - cmp r0, #0 - ldrbeq r0, [r4, #0x99] - strbeq r0, [r4, #0x98] - mov r0, #0 - strb r0, [r4, #0x99] - b _020211B0 -_02021158: - cmp r6, #2 - bne _020211B0 - ldr r0, [sp, #0x74] - bl StoiTag - ldrb r1, [r4, #0x9c] - cmp r1, #0 - cmpne r0, #3 - beq _02021190 - add r2, r4, r0 - ldrb r1, [r2, #0x99] - mov r0, #0 - strb r1, [r4, #0x9c] - strb r0, [r2, #0x99] - b _020211B0 -_02021190: - ldrb r1, [r4, #0xa8] - cmp r1, #0 - addeq r1, r4, r0 - ldrbeq r1, [r1, #0x99] - add r0, r4, r0 - strbeq r1, [r4, #0x98] - mov r1, #0 - strb r1, [r0, #0x99] -_020211B0: - ldrb r1, [r4, #0x98] - ldr r0, [r4, #0x54] - ldr r2, [r4, #0x30] - blx r2 - b _02021AA0 -_020211C4: - ldr r0, [sp, #0x70] - ldr r1, _02021EE4 @ =0x020999D0 - bl StrcmpTag - cmp r0, #0 - beq _02021200 - ldr r0, [r4, #0x88] - ldr r1, [r4, #0x38] - ldr r2, [r4, #0x3c] - bl FUN_02022118 - ldr r1, [r4, #8] - sub r0, r1, r0 - add r0, r0, r0, lsr #31 - asr r0, r0, #1 - str r0, [r4, #0x90] - b _02021AA0 -_02021200: - ldr r0, [sp, #0x70] - ldr r1, _02021EE8 @ =0x020999D4 - bl StrcmpTag - cmp r0, #0 - beq _02021278 - ldr r0, [r4, #0xc] - mov r1, #1 - str r0, [r4, #0x94] - str r1, [r4, #0xa0] - mov r0, #9 - str r0, [r4, #0x5c] - strb r1, [r4, #0x9d] - ldr r0, [r4, #0x88] - ldrb r0, [r0] - cmp r0, #0xd - cmpne r0, #0xa - bne _02021260 - ldr r0, [r4, #0x88] - add r0, r0, #1 - str r0, [r4, #0x88] - ldrh r0, [r4, #0x60] - tst r0, #0x40 - movne r0, #7 - strne r0, [r4, #0x5c] -_02021260: - ldrh r0, [r4, #0x60] - tst r0, #0x80 - movne r0, #7 - strne r0, [r4, #0x5c] - mov r0, #1 - b _02021AA4 -_02021278: - ldr r0, [sp, #0x70] - ldr r1, _02021EEC @ =0x020999D8 - bl StrcmpTag - cmp r0, #0 - beq _0202129C - ldr r0, [sp, #0x74] - bl StoiTag - str r0, [r4, #0x90] - b _02021AA0 -_0202129C: - ldr r0, [sp, #0x70] - ldr r1, _02021EF0 @ =0x020999E4 - bl StrcmpTag - cmp r0, #0 - beq _020212C8 - ldr r0, [sp, #0x74] - bl StoiTag - ldr r1, [r4, #0x90] - add r0, r1, r0 - str r0, [r4, #0x90] - b _02021AA0 -_020212C8: - ldr r0, _02021ED4 @ =0x020997E4 - ldr r2, [sp, #0x70] - ldr r1, [r0, #0xf8] - ldr r0, [r0, #0xf4] - str r1, [sp, #0x64] - str r0, [sp, #0x60] - ldr r3, [r4, #0x84] - ldr r1, _02021ED8 @ =0x020999B0 - add r0, sp, #0x60 - bl FatalError -_020212F0: - ldr r0, [sp, #0x70] - ldr r1, _02021EF4 @ =0x020999F0 - bl StrcmpTag - cmp r0, #0 - beq _02021324 - ldr r0, [r4] - str r0, [r4, #0x90] - ldr r0, [r4, #0x14] - ldr r1, [r4, #0x94] - add r0, r0, r0, lsr #31 - add r0, r1, r0, asr #1 - str r0, [r4, #0x94] - b _02021AA0 -_02021324: - ldr r0, _02021ED4 @ =0x020997E4 - ldr r2, [sp, #0x70] - ldr r1, [r0, #0x100] - ldr r0, [r0, #0xfc] - str r1, [sp, #0x5c] - str r0, [sp, #0x58] - ldr r3, [r4, #0x84] - ldr r1, _02021ED8 @ =0x020999B0 - add r0, sp, #0x58 - bl FatalError -_0202134C: - ldr r0, [sp, #0x70] - ldr r1, _02021EF8 @ =0x020999F4 - bl StrcmpTag - cmp r0, #0 - beq _020213A8 - ldr r0, [sp, #0x74] - bl FUN_02020a4c - movs r3, r0 - beq _020213F4 - ldr r0, [r4, #0x54] - ldr r1, [r4, #0x90] - ldr r2, [r4, #0x94] - ldr r5, [r4, #0x40] - blx r5 - ldr r1, [r4, #0x90] - add r0, r1, r0 - str r0, [r4, #0x90] - ldr r0, [r4, #0x68] - str r0, [r4, #0x7c] - ldr r0, [r4, #0x80] - sub r0, r0, #1 - str r0, [r4, #0x80] - b _020213F4 -_020213A8: - ldr r0, [sp, #0x70] - ldr r1, _02021EFC @ =0x020999F8 - bl StrcmpTag - cmp r0, #0 - beq _020213CC - ldr r0, [sp, #0x74] - bl StoiTag - str r0, [r4, #0x58] - b _020213F4 -_020213CC: - ldr r0, _02021ED4 @ =0x020997E4 - ldr r2, [sp, #0x70] - ldr r1, [r0, #0xa0] - ldr r0, [r0, #0x9c] - str r1, [sp, #0x54] - str r0, [sp, #0x50] - ldr r3, [r4, #0x84] - ldr r1, _02021ED8 @ =0x020999B0 - add r0, sp, #0x50 - bl FatalError -_020213F4: - ldr r0, [r4, #0x58] - ldr r1, [r4, #0x34] - blx r1 - b _02021AA0 -_02021404: - ldr r1, _02021F00 @ =0x020999FC - bl StrcmpTag - cmp r0, #0 - beq _02021434 - ldrh r0, [r4, #0x60] - tst r0, #1 - bne _02021AA0 - mov r0, #8 - str r0, [r4, #0x5c] - mov r0, #1 - strb r0, [r4, #0x9d] - b _02021AA4 -_02021434: - ldr r0, _02021ED4 @ =0x020997E4 - ldr r2, [sp, #0x70] - ldr r1, [r0, #0x98] - ldr r0, [r0, #0x94] - str r1, [sp, #0x4c] - str r0, [sp, #0x48] - ldr r3, [r4, #0x84] - ldr r1, _02021ED8 @ =0x020999B0 - add r0, sp, #0x48 - bl FatalError -_0202145C: - ldr r0, [sp, #0x70] - ldr r1, _02021F04 @ =0x02099A00 - bl StrcmpTag - cmp r0, #0 - beq _020214E8 - ldr r0, [sp, #0x74] - bl StoiTag - ldr r2, [r4, #0xa4] - mov r1, #0x18 - mul r3, r2, r1 - add r2, r4, #0xac - mov r1, #1 - strb r1, [r2, r3] - add r3, r2, r3 - strh r0, [r3, #2] - ldr r0, [sp, #0x70] - ldr r2, [r4, #0x94] - ldr r1, [r4, #0x90] - sub r0, r0, #1 - str r1, [r3, #0xc] - str r2, [r3, #0x10] - ldr r1, [r3, #0xc] - stmib r3, {r1, r2} - str r0, [r3, #0x14] - ldrh r0, [r4, #0x60] - tst r0, #0x100 - bne _02021AA0 - ldrb r0, [r4, #0x98] - mov r1, #0x54 - strb r0, [r4, #0xa8] - strb r1, [r4, #0x98] - ldr r0, [r4, #0x54] - ldr r2, [r4, #0x30] - blx r2 - b _02021AA0 -_020214E8: - ldr r0, [sp, #0x70] - ldr r1, _02021F08 @ =0x02099A04 - bl StrcmpTag - cmp r0, #0 - beq _02021588 - ldr r3, [r4, #0xa4] - add r1, r4, #0xac - mov r0, #0x18 - mla r2, r3, r0, r1 - add r0, r3, #1 - str r0, [r4, #0xa4] - ldr r1, [r4, #0x90] - ldr r0, [r4, #0x94] - str r1, [r2, #0xc] - str r0, [r2, #0x10] - ldr r0, [r2, #0xc] - sub r0, r0, #1 - str r0, [r2, #0xc] - ldr r0, [r4, #0x14] - ldr r1, [r2, #0x10] - sub r0, r0, #1 - add r0, r1, r0 - str r0, [r2, #0x10] - ldrb r0, [r4, #0xa8] - cmp r0, #0 - beq _0202156C - strb r0, [r4, #0x98] - mov r0, #0 - strb r0, [r4, #0xa8] - ldrb r1, [r4, #0x98] - ldr r0, [r4, #0x54] - ldr r2, [r4, #0x30] - blx r2 -_0202156C: - ldrh r0, [r4, #0x60] - tst r0, #0x100 - beq _02021AA0 - mov r0, #7 - str r0, [r4, #0x5c] - mov r0, #1 - b _02021AA4 -_02021588: - ldr r0, [sp, #0x70] - ldr r1, _02021F0C @ =0x02099A08 - bl StrcmpTag - cmp r0, #0 - beq _0202166C - ldr r0, [sp, #0x74] - bl StoiTag - mov r5, r0 - ldr r0, [sp, #0x78] - bl StoiTag - mov r6, r0 - ldr r0, _02021F10 @ =0x020997E4 - lsl r1, r5, #1 - mov r7, #0 - ldrh sb, [r0, r1] - mov r5, r7 - b _02021654 -_020215CC: - ldr r1, [r4, #0x38] - mov r0, sb - mov r8, r5 - blx r1 - ldr r2, [r4, #0x90] - ldr r1, [r4, #8] - add r0, r2, r0 - cmp r0, r1 - ble _02021608 - ldr r0, [r4] - str r0, [r4, #0x90] - ldr r1, [r4, #0x94] - ldr r0, [r4, #0x14] - add r0, r1, r0 - str r0, [r4, #0x94] -_02021608: - ldrb r0, [r4, #0x98] - cmp r0, #0x54 - beq _02021630 - ldr r0, [r4, #0x54] - ldr r1, [r4, #0x90] - ldr r2, [r4, #0x94] - ldr r8, [r4, #0x40] - mov r3, sb - blx r8 - mov r8, r0 -_02021630: - ldr r0, [r4, #0x90] - add r7, r7, #1 - add r0, r0, r8 - str r0, [r4, #0x90] - ldr r0, [r4, #0x68] - str r0, [r4, #0x7c] - ldr r0, [r4, #0x80] - sub r0, r0, #1 - str r0, [r4, #0x80] -_02021654: - cmp r7, r6 - blt _020215CC - ldr r0, [r4, #0x90] - add r0, r0, #1 - str r0, [r4, #0x90] - b _02021AA0 -_0202166C: - ldr r0, _02021ED4 @ =0x020997E4 - ldr r2, [sp, #0x70] - ldr r1, [r0, #0x90] - ldr r0, [r0, #0x8c] - str r1, [sp, #0x44] - str r0, [sp, #0x40] - ldr r3, [r4, #0x84] - ldr r1, _02021ED8 @ =0x020999B0 - add r0, sp, #0x40 - bl FatalError -_02021694: - ldr r0, [sp, #0x70] - ldr r1, _02021F14 @ =0x02099A10 - bl StrcmpTag - cmp r0, #0 - beq _020216F8 - ldr r0, [sp, #0x74] - bl FUN_02020948 - mov r3, r0 - mvn r0, #0 - cmp r3, r0 - beq _02021AA0 - ldr r0, [r4, #0x54] - ldr r1, [r4, #0x90] - ldr r2, [r4, #0x94] - ldr r5, [r4, #0x44] - blx r5 - ldr r1, [r4, #0x90] - add r0, r1, r0 - str r0, [r4, #0x90] - ldr r0, [r4, #0x68] - str r0, [r4, #0x7c] - ldr r0, [r4, #0x80] - sub r0, r0, #1 - str r0, [r4, #0x80] - b _02021AA0 -_020216F8: - ldr r0, [sp, #0x70] - ldr r1, _02021F18 @ =0x02099A14 - bl StrcmpTag - cmp r0, #0 - beq _02021728 - ldr r0, [sp, #0x74] - bl StoiTag - ldr r2, [r4, #0x90] - mov r1, #6 - mla r1, r0, r1, r2 - str r1, [r4, #0x90] - b _02021AA0 -_02021728: - ldr r0, [sp, #0x70] - ldr r1, _02021F1C @ =0x02099A18 - bl StrcmpTag - cmp r0, #0 - beq _02021764 - ldr r0, [r4, #0x54] - ldr r1, [r4, #0x90] - ldr r2, [r4, #0x94] - ldr r5, [r4, #0x40] - mov r3, #0x2c - blx r5 - ldr r0, [r4, #0x90] - add r0, r0, #6 - str r0, [r4, #0x90] - b _02021AA0 -_02021764: - ldr r0, [sp, #0x70] - ldr r1, _02021F20 @ =0x02099A1C - bl StrcmpTag - cmp r0, #0 - beq _0202179C - ldrh r0, [r4, #0x60] - tst r0, #1 - bne _02021AA0 - ldr r0, [sp, #0x74] - bl StoiTag - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl thunk_FUN_0201820c - b _02021AA0 -_0202179C: - ldr r0, _02021ED4 @ =0x020997E4 - ldr r2, [sp, #0x70] - ldr r1, [r0, #0x88] - ldr r0, [r0, #0x84] - str r1, [sp, #0x3c] - str r0, [sp, #0x38] - ldr r3, [r4, #0x84] - ldr r1, _02021ED8 @ =0x020999B0 - add r0, sp, #0x38 - bl FatalError -_020217C4: - ldr r0, [sp, #0x70] - ldr r1, _02021F24 @ =0x02099A24 - bl StrcmpTag - cmp r0, #0 - beq _02021840 - ldr r1, [r4, #0xc] - mov r0, #0 - str r1, [r4, #0x94] - str r0, [r4, #0xa0] - mov r0, #9 - str r0, [r4, #0x5c] - mov r0, #1 - strb r0, [r4, #0x9d] - ldr r0, [r4, #0x88] - ldrb r0, [r0] - cmp r0, #0xd - cmpne r0, #0xa - bne _02021828 - ldr r0, [r4, #0x88] - add r0, r0, #1 - str r0, [r4, #0x88] - ldrh r0, [r4, #0x60] - tst r0, #0x40 - movne r0, #7 - strne r0, [r4, #0x5c] -_02021828: - ldrh r0, [r4, #0x60] - tst r0, #0x80 - movne r0, #7 - strne r0, [r4, #0x5c] - mov r0, #1 - b _02021AA4 -_02021840: - ldr r0, _02021ED4 @ =0x020997E4 - ldr r2, [sp, #0x70] - ldr r1, [r0, #0x80] - ldr r0, [r0, #0x7c] - str r1, [sp, #0x34] - str r0, [sp, #0x30] - ldr r3, [r4, #0x84] - ldr r1, _02021ED8 @ =0x020999B0 - add r0, sp, #0x30 - bl FatalError -_02021868: - ldr r0, [sp, #0x70] - ldr r1, _02021F28 @ =0x02099A28 - bl StrcmpTag - cmp r0, #0 - beq _020218B0 - ldr r0, [r4] - str r0, [r4, #0x90] - ldr r1, [r4, #0x94] - ldr r0, [r4, #0x14] - add r0, r1, r0 - str r0, [r4, #0x94] - ldrh r0, [r4, #0x60] - tst r0, #0x40 - beq _02021AA0 - mov r0, #7 - str r0, [r4, #0x5c] - mov r0, #1 - b _02021AA4 -_020218B0: - ldr r0, _02021ED4 @ =0x020997E4 - ldr r2, [sp, #0x70] - ldr r1, [r0, #0x78] - ldr r0, [r0, #0x74] - str r1, [sp, #0x2c] - str r0, [sp, #0x28] - ldr r3, [r4, #0x84] - ldr r1, _02021ED8 @ =0x020999B0 - add r0, sp, #0x28 - bl FatalError -_020218D8: - ldr r0, [sp, #0x70] - ldr r1, _02021F2C @ =0x02099A2C - bl StrcmpTag - cmp r0, #0 - beq _02021904 - ldr r0, [sp, #0x74] - bl StoiTag - ldr r1, [r4, #0x90] - add r0, r1, r0 - str r0, [r4, #0x90] - b _02021AA0 -_02021904: - ldr r0, [sp, #0x70] - ldr r1, _02021F30 @ =0x02099A30 - bl StrcmpTag - cmp r0, #0 - movne r0, #0x400 - strne r0, [r4, #0x80] - bne _02021AA0 - ldr r0, [sp, #0x70] - ldr r1, _02021F34 @ =0x02099A34 - bl StrcmpTag - cmp r0, #0 - beq _0202194C - ldrb r0, [r4, #0x62] - cmp r0, #0 - movne r0, #0x400 - ldreq r0, [r4, #0x64] - str r0, [r4, #0x80] - b _02021AA0 -_0202194C: - ldr r0, [sp, #0x70] - ldr r1, _02021F38 @ =0x02099A38 - bl StrcmpTag - cmp r0, #0 - beq _02021984 - ldrh r0, [r4, #0x60] - tst r0, #1 - bne _02021AA0 - ldr r0, [sp, #0x74] - bl StoiTag - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02017c80 - b _02021AA0 -_02021984: - ldr r0, _02021ED4 @ =0x020997E4 - ldr r2, [sp, #0x70] - ldr r1, [r0, #0x70] - ldr r0, [r0, #0x6c] - str r1, [sp, #0x24] - str r0, [sp, #0x20] - ldr r3, [r4, #0x84] - ldr r1, _02021ED8 @ =0x020999B0 - add r0, sp, #0x20 - bl FatalError -_020219AC: - ldr r0, [sp, #0x70] - ldr r1, _02021F3C @ =0x02099A40 - bl StrcmpTag - cmp r0, #0 - beq _020219E8 - ldrh r0, [r4, #0x60] - tst r0, #1 - bne _02021AA0 - ldr r0, [sp, #0x74] - bl StoiTag - str r0, [r4, #0x7c] - mov r0, #6 - str r0, [r4, #0x5c] - mov r0, #1 - b _02021AA4 -_020219E8: - ldr r0, _02021ED4 @ =0x020997E4 - ldr r2, [sp, #0x70] - ldr r1, [r0, #0x68] - ldr r0, [r0, #0x64] - str r1, [sp, #0x1c] - str r0, [sp, #0x18] - ldr r3, [r4, #0x84] - ldr r1, _02021ED8 @ =0x020999B0 - add r0, sp, #0x18 - bl FatalError -_02021A10: - ldr r0, _02021ED4 @ =0x020997E4 - ldr r2, [sp, #0x70] - ldr r1, [r0, #0x60] - ldr r0, [r0, #0x5c] - str r1, [sp, #0x14] - str r0, [sp, #0x10] - ldr r3, [r4, #0x84] - ldr r1, _02021ED8 @ =0x020999B0 - add r0, sp, #0x10 - bl FatalError -_02021A38: - cmp r7, #0x61 - blo _02021A48 - cmp r7, #0x7a - bls _02021AA0 -_02021A48: - ldr r0, _02021ED4 @ =0x020997E4 - ldr r2, [sp, #0x70] - ldr r1, [r0, #0x58] - ldr r0, [r0, #0x54] - str r1, [sp, #0xc] - str r0, [sp, #8] - ldr r3, [r4, #0x84] - ldr r1, _02021ED8 @ =0x020999B0 - add r0, sp, #8 - bl FatalError -_02021A70: - cmp r5, #0x5b - beq _02021AA0 - ldr r1, _02021ED4 @ =0x020997E4 - add r0, sp, #0 - ldr r2, [r1, #0x48] - ldr r1, [r1, #0x44] - str r2, [sp, #4] - str r1, [sp] - ldr r2, [r4, #0x88] - ldr r3, [r4, #0x84] - ldr r1, _02021F40 @ =0x02099A44 - bl FatalError -_02021AA0: - mov r0, #0 -_02021AA4: - cmp r0, #0 - beq _02021BC4 - ldr r1, [r4, #0x5c] - b _02021C10 -_02021AB4: - cmp r0, #0 - moveq r1, #7 - streq r1, [r4, #0x5c] - beq _02021C10 - cmp r0, #0xd - cmpne r0, #0xa - bne _02021B0C - ldrh r0, [r4, #0x60] - tst r0, #0x40 - movne r1, #7 - strne r1, [r4, #0x5c] - bne _02021C10 - ldr r0, [r4] - str r0, [r4, #0x90] - ldr r1, [r4, #0x94] - ldr r0, [r4, #0x14] - add r0, r1, r0 - str r0, [r4, #0x94] - ldr r0, [r4, #0x88] - add r0, r0, #1 - str r0, [r4, #0x88] - b _02021BC4 -_02021B0C: - ldr r7, [r4, #0x88] - add r0, r4, #0x88 - bl FUN_0202065c - strh r0, [r4, #0x8c] - ldr r0, [r4, #0x10] - ldrh r6, [r4, #0x8c] - cmp r0, #0 - bne _02021B50 - ldr r8, [r4, #0x90] - cmp r6, #0x7f - addeq r5, r8, #6 - beq _02021B58 - ldr r1, [r4, #0x38] - mov r0, r6 - blx r1 - add r5, r8, r0 - b _02021B58 -_02021B50: - ldr r8, [r4, #0x90] - add r5, r8, r0 -_02021B58: - ldr r0, [r4, #8] - cmp r5, r0 - ble _02021B84 - ldr r0, [r4] - str r0, [r4, #0x90] - ldr r1, [r4, #0x94] - ldr r0, [r4, #0x14] - add r0, r1, r0 - str r0, [r4, #0x94] - str r7, [r4, #0x88] - b _02021BC4 -_02021B84: - ldrb r0, [r4, #0x98] - cmp r0, #0x54 - beq _02021BA8 - ldr r0, [r4, #0x54] - ldr r2, [r4, #0x94] - ldr r7, [r4, #0x40] - mov r1, r8 - mov r3, r6 - blx r7 -_02021BA8: - str r5, [r4, #0x90] - ldr r0, [r4, #0x68] - str r0, [r4, #0x7c] - ldr r0, [r4, #0x80] - sub r0, r0, #1 - str r0, [r4, #0x80] - b _02021BFC -_02021BC4: - ldrh r0, [r4, #0x60] - tst r0, #0x400 - bne _02021BFC - ldr r1, [r4, #0x94] - ldr r0, [r4, #0xc] - cmp r1, r0 - blt _02021BFC - mov r0, #0 - str r0, [r4, #0xa0] - mov r0, #1 - mov r1, #9 - strb r0, [r4, #0x9d] - str r1, [r4, #0x5c] - b _02021C10 -_02021BFC: - ldr r0, [r4, #0x80] - cmp r0, #0 - bgt _02020EE4 - mov r1, #5 - str r1, [r4, #0x5c] -_02021C10: - sub r0, r1, #7 - cmp r0, #6 - addls pc, pc, r0, lsl #2 - b _02021C74 -_02021C20: @ jump table - b _02021C54 @ case 0 - b _02021C48 @ case 1 - b _02021C3C @ case 2 - b _02021C74 @ case 3 - b _02021C74 @ case 4 - b _02021C3C @ case 5 - b _02021C3C @ case 6 -_02021C3C: - ldr r0, [r4, #0x6c] - str r0, [r4, #0x7c] - b _02021C74 -_02021C48: - ldr r0, [r4, #0x70] - str r0, [r4, #0x7c] - b _02021C74 -_02021C54: - ldrh r0, [r4, #0x60] - tst r0, #0x4000 - bne _02021C6C - ldr r0, [r4, #0x54] - ldr r1, [r4, #0x24] - blx r1 -_02021C6C: - mov r0, #7 - b _02021EC8 -_02021C74: - ldrh r0, [r4, #0x60] - tst r0, #0x4000 - bne _02021EC4 - ldr r0, [r4, #0x54] - ldr r1, [r4, #0x24] - blx r1 - b _02021EC4 -_02021C90: - ldrh r0, [r4, #0x60] - tst r0, #0x10 - beq _02021CCC - mov r0, #0xa - str r0, [r4, #0x5c] - mov r0, #1 - strb r0, [r4, #0x9d] - ldr r1, [r4, #0x74] - cmp r1, #0 - ldrge r0, [r4, #0x78] - subge r0, r1, r0 - strge r0, [r4, #0x7c] - ldrlt r0, [r4, #0x6c] - strlt r0, [r4, #0x7c] - b _02021EC4 -_02021CCC: - tst r0, #0x200 - movne r0, #0x10 - strne r0, [r4, #0x5c] - moveq r0, #1 - streq r0, [r4, #0x5c] - b _02021EC4 -_02021CE4: - ldrh r1, [r4, #0x60] - mov r5, #0 - tst r1, #8 - bne _02021D08 - cmp r0, #0xb - cmpne r0, #0xc - cmpne r0, #0xd - movne r5, #1 - bne _02021D60 -_02021D08: - tst r1, #0x20 - beq _02021D24 - ldr r0, [r4, #0x7c] - subs r0, r0, #1 - str r0, [r4, #0x7c] - movmi r5, #1 - b _02021D60 -_02021D24: - ldrb r0, [r4, #0x9d] - cmp r0, #0 - beq _02021D50 - mov r0, #0 - strb r0, [r4, #0x9d] - bl FUN_02006220 - mov r0, #0 - bl FUN_020063a0 - mov r0, #0 - bl FUN_020063d4 - b _02021D60 -_02021D50: - ldr r0, [r4, #0x54] - ldr r1, [r4, #0x1c] - blx r1 - mov r5, r0 -_02021D60: - cmp r5, #0 - bne _02021DB0 - ldrh r0, [r4, #0x60] - tst r0, #0x20 - bne _02021EC4 - ldr r0, [r4, #0x5c] - cmp r0, #8 - bne _02021D98 - ldr r0, [r4, #0x54] - ldr r1, [r4, #0x90] - ldr r2, [r4, #0x94] - ldr r3, [r4, #0x50] - blx r3 - b _02021EC4 -_02021D98: - mvn r1, #0 - ldr r0, [r4, #0x54] - ldr r3, [r4, #0x50] - mov r2, r1 - blx r3 - b _02021EC4 -_02021DB0: - ldr r2, [r4, #0x88] - ldr r0, [r4, #0x54] - ldr r1, [r4, #0x4c] - ldrb r5, [r2] - blx r1 - ldr r0, [r4, #0x5c] - cmp r0, #0xb - moveq r0, #0x10 - streq r0, [r4, #0x5c] - beq _02021EC4 - cmp r0, #0xc - moveq r0, #3 - streq r0, [r4, #0x5c] - beq _02021EC4 - cmp r0, #0xd - moveq r0, #2 - streq r0, [r4, #0x5c] - beq _02021EC4 - cmp r5, #0 - cmpne r0, #0xa - bne _02021E20 - ldrh r0, [r4, #0x60] - tst r0, #0x200 - movne r0, #0x10 - strne r0, [r4, #0x5c] - moveq r0, #1 - streq r0, [r4, #0x5c] - b _02021EC4 -_02021E20: - cmp r0, #9 - bne _02021E84 - ldr r0, [r4] - str r0, [r4, #0x90] - ldr r1, [r4, #0x94] - ldr r0, [r4, #0xc] - cmp r1, r0 - blt _02021E78 - ldr r0, [r4, #4] - str r0, [r4, #0x94] - ldr r0, [r4, #0xa0] - cmp r0, #0 - movne r0, #3 - strne r0, [r4, #0x5c] - bne _02021EC4 - mov r0, #0xf - str r0, [r4, #0x5c] - ldr r0, [r4, #0xc] - add r0, r0, r0, lsr #31 - asr r0, r0, #1 - str r0, [r4, #0x7c] - b _02021EC4 -_02021E78: - mov r0, #4 - str r0, [r4, #0x5c] - b _02021EC4 -_02021E84: - mov r0, #4 - str r0, [r4, #0x5c] - b _02021EC4 -_02021E90: - mov r0, #0x10 - str r0, [r4, #0x5c] - b _02021EC4 -_02021E9C: - ldr r0, [r4, #0x7c] - sub r0, r0, #1 - str r0, [r4, #0x7c] - ldr r0, [r4, #0x54] - ldr r1, [r4, #0x2c] - blx r1 - ldr r0, [r4, #0x7c] - cmp r0, #0 - movle r0, #4 - strle r0, [r4, #0x5c] -_02021EC4: - ldr r0, [r4, #0x5c] -_02021EC8: - add sp, sp, #0x84 - pop {r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_02021ED0: .4byte 0x020999AC -_02021ED4: .4byte 0x020997E4 -_02021ED8: .4byte 0x020999B0 -_02021EDC: .4byte 0x020999C8 -_02021EE0: .4byte 0x020999CC -_02021EE4: .4byte 0x020999D0 -_02021EE8: .4byte 0x020999D4 -_02021EEC: .4byte 0x020999D8 -_02021EF0: .4byte 0x020999E4 -_02021EF4: .4byte 0x020999F0 -_02021EF8: .4byte 0x020999F4 -_02021EFC: .4byte 0x020999F8 -_02021F00: .4byte 0x020999FC -_02021F04: .4byte 0x02099A00 -_02021F08: .4byte 0x02099A04 -_02021F0C: .4byte 0x02099A08 -_02021F10: .4byte 0x020997E4 -_02021F14: .4byte 0x02099A10 -_02021F18: .4byte 0x02099A14 -_02021F1C: .4byte 0x02099A18 -_02021F20: .4byte 0x02099A1C -_02021F24: .4byte 0x02099A24 -_02021F28: .4byte 0x02099A28 -_02021F2C: .4byte 0x02099A2C -_02021F30: .4byte 0x02099A30 -_02021F34: .4byte 0x02099A34 -_02021F38: .4byte 0x02099A38 -_02021F3C: .4byte 0x02099A40 -_02021F40: .4byte 0x02099A44 - arm_func_end AnalyzeText - - arm_func_start FUN_02021f44 -FUN_02021f44: @ 0x02021F44 - push {r0, r1, r2, r3} - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov sb, r1 - mov r0, #0 - ldr r6, _02022020 @ =0x02099A24 - ldr r5, _02022024 @ =0x020999D4 - ldr r4, _02022028 @ =0x02099A00 - str r0, [sb] - add r7, sp, #0x20 -_02021F68: - mov r0, r7 - bl FUN_0202065c - cmp r0, #0 - beq _02022010 - cmp r0, #0x5b - bne _02021F68 - ldr r8, [sp, #0x20] - add r1, r8, #1 - str r1, [sp, #0x20] -_02021F8C: - mov r0, r1 - add r1, r1, #1 - str r1, [sp, #0x20] - ldrb r0, [r0] - cmp r0, #0x5d - bne _02021F8C - mov r0, r8 - mov r1, r6 - bl StrcmpTag - cmp r0, #0 - bne _02021FCC - mov r0, r8 - mov r1, r5 - bl StrcmpTag - cmp r0, #0 - beq _02021FF0 -_02021FCC: - ldr r0, [sp, #0x20] - ldrb r0, [r0] - cmp r0, #0xd - cmpne r0, #0xa - ldreq r0, [sp, #0x20] - addeq r0, r0, #1 - streq r0, [sp, #0x20] - ldr r0, [sp, #0x20] - b _02022014 -_02021FF0: - mov r0, r8 - mov r1, r4 - bl StrcmpTag - cmp r0, #0 - ldrne r0, [sb] - addne r0, r0, #1 - strne r0, [sb] - b _02021F68 -_02022010: - mov r0, #0 -_02022014: - pop {r3, r4, r5, r6, r7, r8, sb, lr} - add sp, sp, #0x10 - bx lr - .align 2, 0 -_02022020: .4byte 0x02099A24 -_02022024: .4byte 0x020999D4 -_02022028: .4byte 0x02099A00 - arm_func_end FUN_02021f44 - - arm_func_start FUN_0202202c -FUN_0202202c: @ 0x0202202C - push {r0, r1, r2, r3} - push {r3, r4, lr} - sub sp, sp, #4 - ldr r0, [r1, #0x14] - str r0, [sp] -_02022040: - add r0, sp, #0 - ldr r4, [sp] - bl FUN_0202065c - cmp r0, #0 - beq _020220F4 - cmp r0, #0x5b - bne _020220DC - ldr r4, [sp] - add r1, r4, #1 - str r1, [sp] -_02022068: - mov r0, r1 - add r1, r1, #1 - str r1, [sp] - ldrb r0, [r0] - cmp r0, #0x5d - bne _02022068 - ldr r1, _02022110 @ =0x02099A04 - mov r0, r4 - bl StrcmpTag - cmp r0, #0 - bne _020220F4 - ldr r1, _02022114 @ =0x02099A00 - mov r0, r4 - bl StrcmpTag - cmp r0, #0 - bne _02022040 - ldr r2, [sp, #0x10] - mov r0, #0x5b - add r1, r2, #1 - str r1, [sp, #0x10] - strb r0, [r2] -_020220BC: - ldr r1, [sp, #0x10] - add r0, r1, #1 - str r0, [sp, #0x10] - ldrb r0, [r4], #1 - strb r0, [r1] - cmp r0, #0x5d - bne _020220BC - b _02022040 -_020220DC: - add r0, sp, #0x10 - add r1, sp, #0 - mov r2, #0 - str r4, [sp] - bl FUN_020206fc - b _02022040 -_020220F4: - ldr r0, [sp, #0x10] - mov r1, #0 - strb r1, [r0] - add sp, sp, #4 - pop {r3, r4, lr} - add sp, sp, #0x10 - bx lr - .align 2, 0 -_02022110: .4byte 0x02099A04 -_02022114: .4byte 0x02099A00 - arm_func_end FUN_0202202c - - arm_func_start FUN_02022118 -FUN_02022118: @ 0x02022118 - push {r0, r1, r2, r3} - push {r4, r5, r6, r7, r8, lr} - mov r8, r1 - mov r7, r2 - mov r4, #0 -_0202212C: - add r0, sp, #0x18 - bl FUN_0202065c - cmp r0, #0 - cmpne r0, #0xd - cmpne r0, #0xa - cmpne r0, #0x1b - beq _020223B4 - cmp r0, #0x5b - bne _020223A8 - ldr r6, [sp, #0x18] - ldr r1, _020223C4 @ =0x02099A10 - add r2, r6, #1 - mov r0, r6 - str r2, [sp, #0x18] - mov r5, #0 - bl StrcmpTag - cmp r0, #0 - bne _020221D8 - ldr r1, _020223C8 @ =0x020999F4 - mov r0, r6 - bl StrcmpTag - cmp r0, #0 - bne _020221D8 - ldr r1, _020223CC @ =0x02099A2C - mov r0, r6 - bl StrcmpTag - cmp r0, #0 - bne _020221D8 - ldr r1, _020223D0 @ =0x02099A14 - mov r0, r6 - bl StrcmpTag - cmp r0, #0 - bne _020221D8 - ldr r1, _020223D4 @ =0x02099A18 - mov r0, r6 - bl StrcmpTag - cmp r0, #0 - bne _020221D8 - ldr r1, _020223D8 @ =0x02099A08 - mov r0, r6 - bl StrcmpTag - cmp r0, #0 - beq _02022324 -_020221D8: - ldr r1, [sp, #0x18] -_020221DC: - mov r0, r1 - add r1, r1, #1 - str r1, [sp, #0x18] - ldrb r0, [r0] - cmp r0, #0x3a - bne _02022214 - mov r5, r1 -_020221F8: - mov r0, r1 - add r1, r1, #1 - str r1, [sp, #0x18] - ldrb r0, [r0] - cmp r0, #0x5d - bne _020221F8 - b _0202221C -_02022214: - cmp r0, #0x5d - bne _020221DC -_0202221C: - ldr r1, _020223C4 @ =0x02099A10 - mov r0, r6 - bl StrcmpTag - cmp r0, #0 - beq _02022250 - mov r0, r5 - bl FUN_02020948 - mvn r1, #0 - cmp r0, r1 - beq _0202212C - blx r7 - add r4, r4, r0 - b _0202212C -_02022250: - ldr r1, _020223C8 @ =0x020999F4 - mov r0, r6 - bl StrcmpTag - cmp r0, #0 - beq _02022280 - mov r0, r5 - bl FUN_02020a4c - cmp r0, #0 - beq _0202212C - blx r8 - add r4, r4, r0 - b _0202212C -_02022280: - ldr r1, _020223CC @ =0x02099A2C - mov r0, r6 - bl StrcmpTag - cmp r0, #0 - beq _020222A4 - mov r0, r5 - bl StoiTag - add r4, r4, r0 - b _0202212C -_020222A4: - ldr r1, _020223D0 @ =0x02099A14 - mov r0, r6 - bl StrcmpTag - cmp r0, #0 - beq _020222CC - mov r0, r5 - bl StoiTag - mov r1, #6 - mla r4, r0, r1, r4 - b _0202212C -_020222CC: - ldr r1, _020223D4 @ =0x02099A18 - mov r0, r6 - bl StrcmpTag - cmp r0, #0 - addne r4, r4, #6 - bne _0202212C - mov r6, r5 -_020222E8: - ldrb r0, [r6], #1 - cmp r0, #0x3a - bne _020222E8 - mov r0, r5 - bl StoiTag - mov r5, r0 - mov r0, r6 - bl StoiTag - ldr r1, _020223DC @ =0x020997E4 - lsl r2, r5, #1 - mov r5, r0 - ldrh r0, [r1, r2] - blx r8 - mla r4, r5, r0, r4 - b _0202212C -_02022324: - ldr r1, [sp, #0x18] -_02022328: - mov r0, r1 - add r1, r1, #1 - str r1, [sp, #0x18] - ldrb r0, [r0] - cmp r0, #0x5d - bne _02022328 - ldrb r0, [r6] - cmp r0, #0x41 - blo _0202212C - cmp r0, #0x5a - bhi _0202212C - ldr r1, _020223E0 @ =0x02099A24 - mov r0, r6 - bl StrcmpTag - cmp r0, #0 - bne _020223B4 - ldr r1, _020223E4 @ =0x020999D4 - mov r0, r6 - bl StrcmpTag - cmp r0, #0 - bne _020223B4 - ldr r1, _020223E8 @ =0x02099A28 - mov r0, r6 - bl StrcmpTag - cmp r0, #0 - bne _020223B4 - ldr r1, _020223EC @ =0x020999F0 - mov r0, r6 - bl StrcmpTag - cmp r0, #0 - bne _020223B4 - b _0202212C -_020223A8: - blx r8 - add r4, r4, r0 - b _0202212C -_020223B4: - mov r0, r4 - pop {r4, r5, r6, r7, r8, lr} - add sp, sp, #0x10 - bx lr - .align 2, 0 -_020223C4: .4byte 0x02099A10 -_020223C8: .4byte 0x020999F4 -_020223CC: .4byte 0x02099A2C -_020223D0: .4byte 0x02099A14 -_020223D4: .4byte 0x02099A18 -_020223D8: .4byte 0x02099A08 -_020223DC: .4byte 0x020997E4 -_020223E0: .4byte 0x02099A24 -_020223E4: .4byte 0x020999D4 -_020223E8: .4byte 0x02099A28 -_020223EC: .4byte 0x020999F0 - arm_func_end FUN_02022118 - - arm_func_start PreprocessString -PreprocessString: @ 0x020223F0 - push {r0, r1, r2, r3} - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x1c8 - sub sp, sp, #0x400 - ldr sl, [sp, #0x5f0] - mov r0, #1 - str r0, [sp, #0x10] - mov r0, r0 - str r0, [sp, #0xc] - and r0, r3, #0x40 - mov sb, r1 - str r0, [sp, #8] - and r0, r3, #0x100 - ldr r8, [sp, #0x600] - add r4, sl, sb - and fp, r3, #0x2000 - str r0, [sp, #4] -_02022434: - ldr r1, [sp, #0x5f0] - cmp r1, r4 - moveq r1, #0 - moveq r0, sb - strbeq r1, [r4, #-1] - beq _0202357C - ldr r0, [sp, #0x5f8] - ldrb r5, [r0] - cmp r5, #0 - moveq r0, #0 - strbeq r0, [r1] - ldreq r0, [sp, #0x5f0] - subeq r0, r0, sl - beq _0202357C - cmp r5, #0xd - cmpne r5, #0xa - bne _02022490 - ldr r0, [sp, #8] - cmp r0, #0 - bne _02023574 - mov r0, #1 - str r0, [sp, #0xc] - b _02022554 -_02022490: - ldr r0, [sp, #0x10] - cmp r0, #0 - beq _0202251C - mov r0, #0 - str r0, [sp, #0x10] - str r0, [sp, #0xc] - cmp fp, #0 - beq _02022554 - ldr r1, [r8, #0x4c] - add r0, sp, #0x1c8 - bl FUN_02023b68 - movs r6, r0 - beq _02022554 - ldr r1, _0202346C @ =0x02099A5C - add r0, sp, #0x5f0 - mov r2, r4 - bl FUN_02020890 - cmp r0, #0 - moveq r0, sb - beq _0202357C - add r0, sp, #0x5f0 - mov r1, r6 - mov r2, r4 - bl FUN_02020890 - cmp r0, #0 - moveq r0, sb - beq _0202357C - ldr r1, _02023470 @ =0x02099A64 - add r0, sp, #0x5f0 - mov r2, r4 - bl FUN_02020890 - cmp r0, #0 - bne _02022554 - mov r0, sb - b _0202357C -_0202251C: - ldr r0, [sp, #0xc] - cmp r0, #0 - beq _02022554 - mov r0, #0 - cmp fp, #0 - str r0, [sp, #0xc] - beq _02022554 - ldr r1, _02023474 @ =0x02099A70 - add r0, sp, #0x5f0 - mov r2, r4 - bl FUN_02020890 - cmp r0, #0 - moveq r0, sb - beq _0202357C -_02022554: - cmp r5, #0x5b - bne _02023454 - ldr r5, [sp, #0x5f8] - mov r7, #0 - add r0, r5, #1 - str r0, [sp, #0x5f8] - ldrb r2, [r5, #1] - cmp r2, #0x61 - blo _0202332C - cmp r2, #0x7a - bhi _0202332C - str r0, [sp, #0xb4] - mov r6, #1 - add r1, sp, #0xb4 -_0202258C: - mov r2, r0 - add r0, r0, #1 - str r0, [sp, #0x5f8] - ldrb r2, [r2] - cmp r2, #0x5d - beq _020225B4 - cmp r2, #0x3a - streq r0, [r1, r6, lsl #2] - addeq r6, r6, #1 - b _0202258C -_020225B4: - ldr r0, [sp, #0xb4] - ldrb r1, [r0] - sub r1, r1, #0x61 - cmp r1, #0x16 - addls pc, pc, r1, lsl #2 - b _020232C8 -_020225CC: @ jump table - b _02022628 @ case 0 - b _020226BC @ case 1 - b _0202274C @ case 2 - b _02022838 @ case 3 - b _02022908 @ case 4 - b _02022994 @ case 5 - b _020229F0 @ case 6 - b _02022AD8 @ case 7 - b _02022B28 @ case 8 - b _020232C8 @ case 9 - b _02022B8C @ case 10 - b _020232C8 @ case 11 - b _02022C64 @ case 12 - b _02022BE4 @ case 13 - b _020232C8 @ case 14 - b _02022D5C @ case 15 - b _020232C8 @ case 16 - b _02022E30 @ case 17 - b _02022EC0 @ case 18 - b _02022FA0 @ case 19 - b _020232C8 @ case 20 - b _0202313C @ case 21 - b _0202323C @ case 22 -_02022628: - ldr r1, _02023478 @ =0x02099A74 - bl StrcmpTag - cmp r0, #0 - beq _02022658 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r1, [r0, #0x10] - add r0, sp, #0x1c8 - bl FUN_0202494c - mov r7, r0 - b _020232F0 -_02022658: - ldr r0, [sp, #0xb4] - ldr r1, _0202347C @ =0x02099A7C - bl StrcmpTag - cmp r0, #0 - beq _02022694 - ldr r0, [sp, #0xb8] - bl StoiTag - add r2, r8, r0, lsl #2 - ldr r1, [r2, #0x10] - ldr r2, [r2, #0x24] - add r0, sp, #0x1c8 - mov r3, #0 - bl FUN_020241dc - mov r7, r0 - b _020232F0 -_02022694: - ldr r1, _02023480 @ =0x020997E4 - ldr r3, [sp, #0xb4] - ldr r2, [r1, #0x50] - ldr ip, [r1, #0x4c] - str r2, [sp, #0xb0] - ldr r1, _02023484 @ =0x020999B0 - add r0, sp, #0xac - mov r2, r5 - str ip, [sp, #0xac] - bl FatalError -_020226BC: - ldr r0, [sp, #0xb4] - ldr r1, _02023488 @ =0x02099A84 - bl StrcmpTag - cmp r0, #0 - beq _020226F0 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r1, [r0, #0x24] - add r0, sp, #0x1c8 - bl FUN_020238f0 - mov r7, r0 - b _020232F0 -_020226F0: - ldr r0, [sp, #0xb4] - ldr r1, _0202348C @ =0x02099A8C - bl StrcmpTag - cmp r0, #0 - beq _02022724 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r1, [r0, #0x24] - add r0, sp, #0x1c8 - bl FUN_02023900 - mov r7, r0 - b _020232F0 -_02022724: - ldr r1, _02023480 @ =0x020997E4 - ldr r3, [sp, #0xb4] - ldr r2, [r1, #0xb8] - ldr ip, [r1, #0xb4] - str r2, [sp, #0xa8] - ldr r1, _02023484 @ =0x020999B0 - add r0, sp, #0xa4 - mov r2, r5 - str ip, [sp, #0xa4] - bl FatalError -_0202274C: - ldr r0, [sp, #0xb4] - ldr r1, _02023490 @ =0x02099A98 - bl StrcmpTag - cmp r0, #0 - beq _02022774 - ldr r1, [sp, #0xb8] - add r0, sp, #0x1c8 - bl FUN_020240b0 - mov r7, r0 - b _020232F0 -_02022774: - ldr r0, [sp, #0xb4] - ldr r1, _02023494 @ =0x02099AA0 - bl StrcmpTag - cmp r0, #0 - beq _020227A8 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r1, [r0, #0x10] - add r0, sp, #0x1c8 - bl FUN_02024c18 - mov r7, r0 - b _020232F0 -_020227A8: - ldr r0, [sp, #0xb4] - ldr r1, _02023498 @ =0x02099AA4 - bl StrcmpTag - cmp r0, #0 - beq _020227D0 - ldr r1, [sp, #0xb8] - add r0, sp, #0x1c8 - bl FUN_02024114 - mov r7, r0 - b _020232F0 -_020227D0: - ldr r0, [sp, #0xb4] - ldr r1, _0202349C @ =0x02099AAC - bl StrcmpTag - cmp r0, #0 - beq _020227F8 - ldr r1, [sp, #0xb8] - add r0, sp, #0x1c8 - bl FUN_02024178 - mov r7, r0 - b _020232F0 -_020227F8: - ldr r0, [sp, #0xb4] - ldr r1, _020234A0 @ =0x02099AB8 - bl StrcmpTag - cmp r0, #0 - ldrne r7, _020234A4 @ =0x02099AC0 - bne _020232F0 - ldr r1, _02023480 @ =0x020997E4 - ldr r3, [sp, #0xb4] - ldr r2, [r1, #0xc8] - ldr ip, [r1, #0xc4] - str r2, [sp, #0xa0] - ldr r1, _02023484 @ =0x020999B0 - add r0, sp, #0x9c - mov r2, r5 - str ip, [sp, #0x9c] - bl FatalError -_02022838: - ldr r0, [sp, #0xb4] - ldr r1, _020234A8 @ =0x02099AC8 - bl StrcmpTag - cmp r0, #0 - beq _02022870 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r2, [r0, #0x24] - ldr r1, _020234AC @ =0x02099AD0 - add r0, sp, #0x1c8 - bl SprintfStatic - add r7, sp, #0x1c8 - b _020232F0 -_02022870: - ldr r0, [sp, #0xb4] - ldr r1, _020234B0 @ =0x02099AD4 - bl StrcmpTag - cmp r0, #0 - beq _020228A8 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r2, [r0, #0x24] - ldr r1, _020234B4 @ =0x02099AE0 - add r0, sp, #0x1c8 - bl SprintfStatic - add r7, sp, #0x1c8 - b _020232F0 -_020228A8: - ldr r0, [sp, #0xb4] - ldr r1, _020234B8 @ =0x02099AF0 - bl StrcmpTag - cmp r0, #0 - beq _020228E0 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r1, [r0, #0x10] - ldr r2, [r0, #0x24] - add r0, sp, #0x1c8 - bl FUN_020245d0 - mov r7, r0 - b _020232F0 -_020228E0: - ldr r1, _02023480 @ =0x020997E4 - ldr r3, [sp, #0xb4] - ldr r2, [r1, #0xe0] - ldr ip, [r1, #0xdc] - str r2, [sp, #0x98] - ldr r1, _02023484 @ =0x020999B0 - add r0, sp, #0x94 - mov r2, r5 - str ip, [sp, #0x94] - bl FatalError -_02022908: - ldr r0, [sp, #0xb4] - ldr r1, _020234BC @ =0x02099AF8 - bl StrcmpTag - cmp r0, #0 - beq _02022938 - ldr r1, [r8, #0x34] - add r0, sp, #0x1c8 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl FUN_02024e34 - mov r7, r0 - b _020232F0 -_02022938: - ldr r0, [sp, #0xb4] - ldr r1, _020234C0 @ =0x02099B04 - bl StrcmpTag - cmp r0, #0 - beq _0202296C - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r1, [r0, #0x24] - add r0, sp, #0x1c8 - bl FUN_02023910 - mov r7, r0 - b _020232F0 -_0202296C: - ldr r1, _02023480 @ =0x020997E4 - ldr r3, [sp, #0xb4] - ldr r2, [r1, #0x108] - ldr ip, [r1, #0x104] - str r2, [sp, #0x90] - ldr r1, _02023484 @ =0x020999B0 - add r0, sp, #0x8c - mov r2, r5 - str ip, [sp, #0x8c] - bl FatalError -_02022994: - ldr r0, [sp, #0xb4] - ldr r1, _020234C4 @ =0x02099B10 - bl StrcmpTag - cmp r0, #0 - beq _020229C8 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r1, [r0, #0x24] - add r0, sp, #0x1c8 - bl FUN_02024598 - mov r7, r0 - b _020232F0 -_020229C8: - ldr r1, _02023480 @ =0x020997E4 - ldr r3, [sp, #0xb4] - ldr r2, [r1, #0x20] - ldr ip, [r1, #0x1c] - str r2, [sp, #0x88] - ldr r1, _02023484 @ =0x020999B0 - add r0, sp, #0x84 - mov r2, r5 - str ip, [sp, #0x84] - bl FatalError -_020229F0: - ldr r0, [sp, #0xb4] - ldr r1, _020234C8 @ =0x02099B18 - bl StrcmpTag - cmp r0, #0 - beq _02022A14 - add r0, sp, #0x1c8 - bl FUN_02024dfc - mov r7, r0 - b _020232F0 -_02022A14: - ldr r0, [sp, #0xb4] - ldr r1, _020234CC @ =0x02099B24 - bl StrcmpTag - cmp r0, #0 - beq _02022A48 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r1, [r0, #0x10] - add r0, sp, #0x1c8 - bl FUN_02024d7c - mov r7, r0 - b _020232F0 -_02022A48: - ldr r0, [sp, #0xb4] - ldr r1, _020234D0 @ =0x02099B2C - bl StrcmpTag - cmp r0, #0 - beq _02022A7C - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r1, [r0, #0x24] - add r0, sp, #0x1c8 - bl FUN_020238d0 - mov r7, r0 - b _020232F0 -_02022A7C: - ldr r0, [sp, #0xb4] - ldr r1, _020234D4 @ =0x02099B34 - bl StrcmpTag - cmp r0, #0 - beq _02022AB0 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r1, [r0, #0x24] - add r0, sp, #0x1c8 - bl FUN_020238e0 - mov r7, r0 - b _020232F0 -_02022AB0: - ldr r1, _02023480 @ =0x020997E4 - ldr r3, [sp, #0xb4] - ldr r2, [r1, #0x18] - ldr ip, [r1, #0x14] - str r2, [sp, #0x80] - ldr r1, _02023484 @ =0x020999B0 - add r0, sp, #0x7c - mov r2, r5 - str ip, [sp, #0x7c] - bl FatalError -_02022AD8: - ldr r0, [sp, #0xb4] - ldr r1, _020234D8 @ =0x02099B40 - bl StrcmpTag - cmp r0, #0 - beq _02022B00 - add r0, sp, #0x1c8 - mov r1, #0x3c - bl FUN_02023dc0 - mov r7, r0 - b _020232F0 -_02022B00: - ldr r1, _02023480 @ =0x020997E4 - ldr r3, [sp, #0xb4] - ldr r2, [r1, #0x10] - ldr ip, [r1, #0xc] - str r2, [sp, #0x78] - ldr r1, _02023484 @ =0x020999B0 - add r0, sp, #0x74 - mov r2, r5 - str ip, [sp, #0x74] - bl FatalError -_02022B28: - ldr r0, [sp, #0xb4] - ldr r1, _020234DC @ =0x02099B48 - bl StrcmpTag - cmp r0, #0 - beq _02022B64 - ldr r0, [sp, #0xb8] - bl StoiTag - add r3, r8, r0, lsl #2 - ldr r1, [r3, #0x10] - ldr r2, [r3, #0x24] - ldr r3, [r3, #0x28] - add r0, sp, #0x1c8 - bl FUN_020241dc - mov r7, r0 - b _020232F0 -_02022B64: - ldr r1, _02023480 @ =0x020997E4 - ldr r3, [sp, #0xb4] - ldr r2, [r1, #0x28] - ldr ip, [r1, #0x24] - str r2, [sp, #0x70] - ldr r1, _02023484 @ =0x020999B0 - add r0, sp, #0x6c - mov r2, r5 - str ip, [sp, #0x6c] - bl FatalError -_02022B8C: - ldr r0, [sp, #0xb4] - ldr r1, _020234E0 @ =0x02099B50 - bl StrcmpTag - cmp r0, #0 - beq _02022BBC - ldr r0, [sp, #0xb8] - bl StoiTag - ldr r1, [r8, r0, lsl #2] - add r0, sp, #0x1c8 - bl FUN_02023920 - mov r7, r0 - b _020232F0 -_02022BBC: - ldr r1, _02023480 @ =0x020997E4 - ldr r3, [sp, #0xb4] - ldr r2, [r1, #0x40] - ldr ip, [r1, #0x3c] - str r2, [sp, #0x68] - ldr r1, _02023484 @ =0x020999B0 - add r0, sp, #0x64 - mov r2, r5 - str ip, [sp, #0x64] - bl FatalError -_02022BE4: - ldr r0, [sp, #0xb4] - ldr r1, _020234E4 @ =0x02099B58 - bl StrcmpTag - cmp r0, #0 - beq _02022C14 - ldr r0, [sp, #0xb8] - bl StoiTag - ldr r1, [r8, r0, lsl #2] - add r0, sp, #0x1c8 - bl FUN_02023b68 - mov r7, r0 - b _020232F0 -_02022C14: - ldr r0, [sp, #0xb4] - ldr r1, _020234E8 @ =0x02099B60 - bl StrcmpTag - cmp r0, #0 - beq _02022C3C - add r0, sp, #0x1c8 - mov r1, #2 - bl FUN_02024c6c - mov r7, r0 - b _020232F0 -_02022C3C: - ldr r1, _02023480 @ =0x020997E4 - ldr r3, [sp, #0xb4] - ldr r2, [r1, #0xa8] - ldr ip, [r1, #0xa4] - str r2, [sp, #0x60] - ldr r1, _02023484 @ =0x020999B0 - add r0, sp, #0x5c - mov r2, r5 - str ip, [sp, #0x5c] - bl FatalError -_02022C64: - ldr r0, [sp, #0xb4] - ldr r1, _020234EC @ =0x02099B6C - bl StrcmpTag - cmp r0, #0 - beq _02022C9C - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r1, [r0, #0x10] - ldr r2, [r0, #0x24] - add r0, sp, #0x1c8 - bl FUN_020242f8 - mov r7, r0 - b _020232F0 -_02022C9C: - ldr r0, [sp, #0xb4] - ldr r1, _020234F0 @ =0x02099B74 - bl StrcmpTag - cmp r0, #0 - beq _02022CD4 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r2, [r0, #0x24] - ldr r1, _020234F4 @ =0x02099B7C - add r0, sp, #0x1c8 - bl SprintfStatic - add r7, sp, #0x1c8 - b _020232F0 -_02022CD4: - ldr r0, [sp, #0xb4] - ldr r1, _020234F8 @ =0x02099B8C - bl StrcmpTag - cmp r0, #0 - beq _02022D04 - ldr r1, [r8, #0x34] - add r0, sp, #0x1c8 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl SetStringAccuracy - mov r7, r0 - b _020232F0 -_02022D04: - ldr r0, [sp, #0xb4] - ldr r1, _020234FC @ =0x02099B9C - bl StrcmpTag - cmp r0, #0 - beq _02022D34 - ldr r1, [r8, #0x34] - add r0, sp, #0x1c8 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl SetStringPower - mov r7, r0 - b _020232F0 -_02022D34: - ldr r1, _02023480 @ =0x020997E4 - ldr r3, [sp, #0xb4] - ldr r2, [r1, #0xc0] - ldr ip, [r1, #0xbc] - str r2, [sp, #0x58] - ldr r1, _02023484 @ =0x020999B0 - add r0, sp, #0x54 - mov r2, r5 - str ip, [sp, #0x54] - bl FatalError -_02022D5C: - ldr r0, [sp, #0xb4] - ldr r1, _02023500 @ =0x02099BA8 - bl StrcmpTag - cmp r0, #0 - beq _02022D84 - add r0, sp, #0x1c8 - mov r1, #0x3d - bl FUN_02023dc0 - mov r7, r0 - b _020232F0 -_02022D84: - ldr r0, [sp, #0xb4] - ldr r1, _02023504 @ =0x02099BB0 - bl StrcmpTag - cmp r0, #0 - beq _02022DAC - add r0, sp, #0x1c8 - mov r1, #0x3e - bl FUN_02023dc0 - mov r7, r0 - b _020232F0 -_02022DAC: - ldr r0, [sp, #0xb4] - ldr r1, _02023508 @ =0x02099BBC - bl StrcmpTag - cmp r0, #0 - beq _02022DD4 - add r0, sp, #0x1c8 - mov r1, #0x3f - bl FUN_02023dc0 - mov r7, r0 - b _020232F0 -_02022DD4: - ldr r0, [sp, #0xb4] - ldr r1, _0202350C @ =0x02099BC4 - bl StrcmpTag - cmp r0, #0 - beq _02022E08 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r1, [r0, #0x10] - add r0, sp, #0x1c8 - bl FUN_02024a68 - mov r7, r0 - b _020232F0 -_02022E08: - ldr r1, _02023480 @ =0x020997E4 - ldr r3, [sp, #0xb4] - ldr r2, [r1, #0xf0] - ldr ip, [r1, #0xec] - str r2, [sp, #0x50] - ldr r1, _02023484 @ =0x020999B0 - add r0, sp, #0x4c - mov r2, r5 - str ip, [sp, #0x4c] - bl FatalError -_02022E30: - ldr r0, [sp, #0xb4] - ldr r1, _02023510 @ =0x02099BCC - bl StrcmpTag - cmp r0, #0 - beq _02022E64 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r1, [r0, #0x10] - add r0, sp, #0x1c8 - bl FUN_02024af4 - mov r7, r0 - b _020232F0 -_02022E64: - ldr r0, [sp, #0xb4] - ldr r1, _02023514 @ =0x02099BD4 - bl StrcmpTag - cmp r0, #0 - beq _02022E98 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r1, [r0, #0x10] - add r0, sp, #0x1c8 - bl FUN_02024b48 - mov r7, r0 - b _020232F0 -_02022E98: - ldr r1, _02023480 @ =0x020997E4 - ldr r3, [sp, #0xb4] - ldr r2, [r1, #8] - ldr ip, [r1, #4] - str r2, [sp, #0x48] - ldr r1, _02023484 @ =0x020999B0 - add r0, sp, #0x44 - mov r2, r5 - str ip, [sp, #0x44] - bl FatalError -_02022EC0: - ldr r0, [sp, #0xb4] - ldr r1, _02023518 @ =0x02099BDC - bl StrcmpTag - cmp r0, #0 - beq _02022EF8 - ldr r0, [sp, #0xb8] - bl StoiTag - mov r2, #0 - orr r1, r0, #0x50000 - add r0, sp, #0x1c8 - mov r3, r2 - bl FUN_020241dc - mov r7, r0 - b _020232F0 -_02022EF8: - ldr r0, [sp, #0xb4] - ldr r1, _0202351C @ =0x02099BE4 - bl StrcmpTag - cmp r0, #0 - ldrne r7, [r8, #0x38] - bne _020232F0 - ldr r0, [sp, #0xb4] - ldr r1, _02023520 @ =0x02099BEC - bl StrcmpTag - cmp r0, #0 - beq _02022F40 - cmp r6, #2 - bne _020232F0 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r7, [r0, #0x38] - b _020232F0 -_02022F40: - ldr r0, [sp, #0xb4] - ldr r1, _02023524 @ =0x02099BF4 - bl StrcmpTag - cmp r0, #0 - beq _02022F78 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r2, [r0, #0x24] - ldr r1, _02023528 @ =0x02099BFC - add r0, sp, #0x1c8 - bl SprintfStatic - add r7, sp, #0x1c8 - b _020232F0 -_02022F78: - ldr r1, _02023480 @ =0x020997E4 - ldr r3, [sp, #0xb4] - ldr r2, [r1, #0x30] - ldr ip, [r1, #0x2c] - str r2, [sp, #0x40] - ldr r1, _02023484 @ =0x020999B0 - add r0, sp, #0x3c - mov r2, r5 - str ip, [sp, #0x3c] - bl FatalError -_02022FA0: - ldr r0, [sp, #0xb4] - ldr r1, _0202352C @ =0x02099C0C - bl StrcmpTag - cmp r0, #0 - beq _02022FD4 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r1, [r0, #0x10] - add r0, sp, #0x1c8 - bl FUN_02024b94 - mov r7, r0 - b _020232F0 -_02022FD4: - ldr r0, [sp, #0xb4] - ldr r1, _02023530 @ =0x02099C14 - bl StrcmpTag - cmp r0, #0 - beq _02023008 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r1, [r0, #0x10] - add r0, sp, #0x1c8 - bl FUN_020244f4 - mov r7, r0 - b _020232F0 -_02023008: - ldr r0, [sp, #0xb4] - ldr r1, _02023534 @ =0x02099C1C - bl StrcmpTag - cmp r0, #0 - beq _0202303C - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r1, [r0, #0x10] - add r0, sp, #0x1c8 - bl FUN_02024d48 - mov r7, r0 - b _020232F0 -_0202303C: - ldr r0, [sp, #0xb4] - ldr r1, _02023538 @ =0x02099C24 - bl StrcmpTag - cmp r0, #0 - beq _02023094 - cmp r6, #1 - bne _0202306C - add r0, sp, #0x1c8 - mov r1, #0 - bl FUN_02024c6c - mov r7, r0 - b _020232F0 -_0202306C: - cmp r6, #2 - bne _020232F0 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r1, [r0, #0x10] - add r0, sp, #0x1c8 - bl FUN_02024c6c - mov r7, r0 - b _020232F0 -_02023094: - ldr r0, [sp, #0xb4] - ldr r1, _0202353C @ =0x02099C2C - bl StrcmpTag - cmp r0, #0 - beq _02023114 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r5, [r0, #0x24] - mov r1, #0xe10 - mov r0, r5 - bl DivideUInt - mov r6, r0 - mov r0, r5 - mov r1, #0xe10 - bl DivideUInt - mov r5, r1 - mov r0, r5 - mov r1, #0x3c - bl DivideUInt - mov r7, r0 - mov r0, r5 - mov r1, #0x3c - bl DivideUInt - str r1, [sp] - ldr r1, _02023540 @ =0x02099C34 - mov r2, r6 - mov r3, r7 - add r0, sp, #0x1c8 - bl SprintfStatic - add r7, sp, #0x1c8 - b _020232F0 -_02023114: - ldr r0, _02023480 @ =0x020997E4 - ldr r3, [sp, #0xb4] - ldr r1, [r0, #0xb0] - ldr r2, [r0, #0xac] - str r1, [sp, #0x38] - str r2, [sp, #0x34] - ldr r1, _02023484 @ =0x020999B0 - add r0, sp, #0x34 - mov r2, r5 - bl FatalError -_0202313C: - ldr r0, [sp, #0xb4] - ldr r1, _02023544 @ =0x02099C44 - bl StrcmpTag - cmp r0, #0 - beq _02023180 - ldr r0, [sp, #0xb8] - bl StoiTag - mov r5, r0 - ldr r0, [sp, #0xbc] - bl StoiTag - add r1, r8, r5, lsl #2 - mov r2, r0 - ldr r1, [r1, #0x24] - add r0, sp, #0x1c8 - bl FUN_0202372c - mov r7, r0 - b _020232F0 -_02023180: - ldr r0, [sp, #0xb4] - ldr r1, _02023548 @ =0x02099C4C - bl StrcmpTag - cmp r0, #0 - beq _020231D8 - ldr r0, [sp, #0xb8] - bl StoiTag - mov r5, r0 - ldr r0, [sp, #0xbc] - bl StoiTag - add r1, r8, r5, lsl #2 - ldr r3, [r1, #0x24] - mov r2, r0 - ldr r1, _0202354C @ =0x02099C54 - add r0, sp, #0xc8 - bl SprintfStatic - ldr r1, _02023550 @ =0x02099C5C - add r0, sp, #0x1c8 - add r2, sp, #0xc8 - bl SprintfStatic - add r7, sp, #0x1c8 - b _020232F0 -_020231D8: - ldr r0, [sp, #0xb4] - ldr r1, _02023554 @ =0x02099C68 - bl StrcmpTag - cmp r0, #0 - beq _02023214 - ldr r0, [sp, #0xb8] - bl StoiTag - add r2, r8, r0, lsl #2 - ldr r1, [r2, #0x10] - ldr r2, [r2, #0x24] - add r0, sp, #0x1c8 - mov r3, #0 - bl FUN_020241dc - mov r7, r0 - b _020232F0 -_02023214: - ldr r0, _02023480 @ =0x020997E4 - ldr r3, [sp, #0xb4] - ldr r1, [r0, #0xd0] - ldr r2, [r0, #0xcc] - str r1, [sp, #0x30] - str r2, [sp, #0x2c] - ldr r1, _02023484 @ =0x020999B0 - add r0, sp, #0x2c - mov r2, r5 - bl FatalError -_0202323C: - ldr r0, [sp, #0xb4] - ldr r1, _02023558 @ =0x02099C70 - bl StrcmpTag - cmp r0, #0 - beq _0202326C - ldr r0, [sp, #0xb8] - bl StoiTag - ldr r1, [r8, r0, lsl #2] - add r0, sp, #0x1c8 - bl FUN_02024aa8 - mov r7, r0 - b _020232F0 -_0202326C: - ldr r0, [sp, #0xb4] - ldr r1, _0202355C @ =0x02099C78 - bl StrcmpTag - cmp r0, #0 - beq _020232A0 - ldr r0, [sp, #0xb8] - bl StoiTag - add r0, r8, r0, lsl #2 - ldr r1, [r0, #0x10] - add r0, sp, #0x1c8 - bl FUN_02024bd8 - mov r7, r0 - b _020232F0 -_020232A0: - ldr r0, _02023480 @ =0x020997E4 - ldr r3, [sp, #0xb4] - ldr r1, [r0, #0x38] - ldr r2, [r0, #0x34] - str r1, [sp, #0x28] - str r2, [sp, #0x24] - ldr r1, _02023484 @ =0x020999B0 - add r0, sp, #0x24 - mov r2, r5 - bl FatalError -_020232C8: - ldr r0, _02023480 @ =0x020997E4 - ldr r3, [sp, #0xb4] - ldr r1, [r0, #0xd8] - ldr r2, [r0, #0xd4] - str r1, [sp, #0x20] - str r2, [sp, #0x1c] - ldr r1, _02023484 @ =0x020999B0 - add r0, sp, #0x1c - mov r2, r5 - bl FatalError -_020232F0: - cmp r7, #0 - beq _02022434 -_020232F8: - ldr r2, [sp, #0x5f0] - cmp r2, r4 - moveq r1, #0 - moveq r0, sb - strbeq r1, [r4, #-1] - beq _0202357C - ldrb r1, [r7], #1 - cmp r1, #0 - beq _02022434 - add r0, r2, #1 - str r0, [sp, #0x5f0] - strb r1, [r2] - b _020232F8 -_0202332C: - cmp r2, #0x41 - blo _0202342C - cmp r2, #0x5a - bhi _0202342C - ldr r1, _02023560 @ =0x02099A24 - add r0, r5, #1 - bl StrcmpTag - cmp r0, #0 - bne _02023364 - ldr r1, _02023564 @ =0x020999D4 - add r0, r5, #1 - bl StrcmpTag - cmp r0, #0 - beq _02023390 -_02023364: - ldr r0, [sp, #0x5f8] - ldrb r0, [r0] - cmp r0, #0xd - cmpne r0, #0xa - ldreq r0, [sp, #0x5f8] - addeq r0, r0, #1 - streq r0, [sp, #0x5f8] - mov r0, #1 - str r0, [sp, #0x10] - str r0, [sp, #0xc] - b _020233D8 -_02023390: - ldr r1, _02023568 @ =0x02099A28 - add r0, r5, #1 - bl StrcmpTag - cmp r0, #0 - beq _020233BC - ldr r0, [sp, #8] - cmp r0, #0 - bne _02023574 - mov r0, #1 - str r0, [sp, #0xc] - b _020233D8 -_020233BC: - ldr r1, _0202356C @ =0x02099A04 - add r0, r5, #1 - bl StrcmpTag - cmp r0, #0 - ldrne r0, [sp, #4] - cmpne r0, #0 - bne _02023574 -_020233D8: - ldr r2, [sp, #0x5f0] - mov r0, #0x5b - add r1, r2, #1 - str r1, [sp, #0x5f0] - strb r0, [r2] -_020233EC: - ldr r3, [sp, #0x5f0] - cmp r3, r4 - moveq r1, #0 - moveq r0, sb - strbeq r1, [r4, #-1] - beq _0202357C - ldr r2, [sp, #0x5f8] - add r0, r3, #1 - add r1, r2, #1 - str r1, [sp, #0x5f8] - ldrb r1, [r2] - str r0, [sp, #0x5f0] - strb r1, [r3] - cmp r1, #0x5d - beq _02022434 - b _020233EC -_0202342C: - ldr r1, _02023480 @ =0x020997E4 - add r0, sp, #0x14 - ldr r3, [r1, #0x110] - ldr r1, [r1, #0x10c] - str r3, [sp, #0x18] - str r1, [sp, #0x14] - ldr r1, _02023570 @ =0x02099C84 - mov r3, r2 - str r5, [sp] - bl FatalError -_02023454: - add r1, sp, #0x500 - add r0, sp, #0x5f0 - add r1, r1, #0xf8 - mov r2, r4 - bl FUN_020206fc - b _02022434 - .align 2, 0 -_0202346C: .4byte 0x02099A5C -_02023470: .4byte 0x02099A64 -_02023474: .4byte 0x02099A70 -_02023478: .4byte 0x02099A74 -_0202347C: .4byte 0x02099A7C -_02023480: .4byte 0x020997E4 -_02023484: .4byte 0x020999B0 -_02023488: .4byte 0x02099A84 -_0202348C: .4byte 0x02099A8C -_02023490: .4byte 0x02099A98 -_02023494: .4byte 0x02099AA0 -_02023498: .4byte 0x02099AA4 -_0202349C: .4byte 0x02099AAC -_020234A0: .4byte 0x02099AB8 -_020234A4: .4byte 0x02099AC0 -_020234A8: .4byte 0x02099AC8 -_020234AC: .4byte 0x02099AD0 -_020234B0: .4byte 0x02099AD4 -_020234B4: .4byte 0x02099AE0 -_020234B8: .4byte 0x02099AF0 -_020234BC: .4byte 0x02099AF8 -_020234C0: .4byte 0x02099B04 -_020234C4: .4byte 0x02099B10 -_020234C8: .4byte 0x02099B18 -_020234CC: .4byte 0x02099B24 -_020234D0: .4byte 0x02099B2C -_020234D4: .4byte 0x02099B34 -_020234D8: .4byte 0x02099B40 -_020234DC: .4byte 0x02099B48 -_020234E0: .4byte 0x02099B50 -_020234E4: .4byte 0x02099B58 -_020234E8: .4byte 0x02099B60 -_020234EC: .4byte 0x02099B6C -_020234F0: .4byte 0x02099B74 -_020234F4: .4byte 0x02099B7C -_020234F8: .4byte 0x02099B8C -_020234FC: .4byte 0x02099B9C -_02023500: .4byte 0x02099BA8 -_02023504: .4byte 0x02099BB0 -_02023508: .4byte 0x02099BBC -_0202350C: .4byte 0x02099BC4 -_02023510: .4byte 0x02099BCC -_02023514: .4byte 0x02099BD4 -_02023518: .4byte 0x02099BDC -_0202351C: .4byte 0x02099BE4 -_02023520: .4byte 0x02099BEC -_02023524: .4byte 0x02099BF4 -_02023528: .4byte 0x02099BFC -_0202352C: .4byte 0x02099C0C -_02023530: .4byte 0x02099C14 -_02023534: .4byte 0x02099C1C -_02023538: .4byte 0x02099C24 -_0202353C: .4byte 0x02099C2C -_02023540: .4byte 0x02099C34 -_02023544: .4byte 0x02099C44 -_02023548: .4byte 0x02099C4C -_0202354C: .4byte 0x02099C54 -_02023550: .4byte 0x02099C5C -_02023554: .4byte 0x02099C68 -_02023558: .4byte 0x02099C70 -_0202355C: .4byte 0x02099C78 -_02023560: .4byte 0x02099A24 -_02023564: .4byte 0x020999D4 -_02023568: .4byte 0x02099A28 -_0202356C: .4byte 0x02099A04 -_02023570: .4byte 0x02099C84 -_02023574: - ldr r0, [sp, #0x5f0] - sub r0, r0, sl -_0202357C: - add sp, sp, #0x1c8 - add sp, sp, #0x400 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr - arm_func_end PreprocessString - - arm_func_start SprintfStatic -SprintfStatic: @ 0x02023590 - push {r0, r1, r2, r3} - push {r3, lr} - add r2, sp, #0xc - bic r2, r2, #3 - ldr r1, [sp, #0xc] - add r2, r2, #4 - bl Vsprintf - pop {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end SprintfStatic - - arm_func_start PreprocessStringFromMessageId -PreprocessStringFromMessageId: @ 0x020235B8 - push {r3, r4, r5, r6, lr} - sub sp, sp, #4 - mov r6, r0 - mov r0, r2 - mov r5, r1 - mov r4, r3 - bl StringFromMessageId - ldr ip, [sp, #0x18] - mov r2, r0 - mov r0, r6 - mov r1, r5 - mov r3, r4 - str ip, [sp] - bl PreprocessString - add sp, sp, #4 - pop {r3, r4, r5, r6, pc} - arm_func_end PreprocessStringFromMessageId - - arm_func_start StrcmpTag -StrcmpTag: @ 0x020235F8 - ldr ip, _02023600 @ =StrcmpTag - bx ip - .align 2, 0 -_02023600: .4byte StrcmpTag - arm_func_end StrcmpTag - - arm_func_start StoiTag -StoiTag: @ 0x02023604 - ldr ip, _0202360C @ =StoiTag - bx ip - .align 2, 0 -_0202360C: .4byte StoiTag - arm_func_end StoiTag - - arm_func_start FUN_02023610 -FUN_02023610: @ 0x02023610 - push {r3, r4, r5, r6, r7, lr} - ldr r6, _02023644 @ =0x022A5048 - ldr r5, _02023648 @ =0x02099CA0 - mov r7, #0 - mov r4, #1 -_02023624: - mov r2, r4 - add r0, r6, r7, lsl #2 - add r1, r5, r7 - bl StrncpySimpleNoPadSafe - add r7, r7, #1 - cmp r7, #3 - blt _02023624 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02023644: .4byte 0x022A5048 -_02023648: .4byte 0x02099CA0 - arm_func_end FUN_02023610 -_0202364C: - ldrb r2, [r1], #1 - ldrb r3, [r0], #1 - cmp r2, #0 - bne _02023674 - cmp r3, #0 - cmpne r3, #0x3a - cmpne r3, #0x5d - moveq r0, #1 - movne r0, #0 - bx lr -_02023674: - cmp r3, #0 - moveq r0, #0 - bxeq lr - cmp r3, r2 - beq _0202364C - mov r0, #0 - bx lr - - arm_func_start InitPreprocessorArgs -InitPreprocessorArgs: @ 0x02023690 - mov r1, #0x60000 - str r1, [r0, #0x4c] - mov r1, #0 - mov r3, r1 -_020236A0: - str r3, [r0, r1, lsl #2] - add r1, r1, #1 - cmp r1, #4 - blt _020236A0 - mov r2, #0 -_020236B4: - add r1, r0, r3, lsl #2 - add r3, r3, #1 - str r2, [r1, #0x10] - cmp r3, #5 - blt _020236B4 - mov r3, #0 -_020236CC: - add r1, r0, r2, lsl #2 - add r2, r2, #1 - str r3, [r1, #0x24] - cmp r2, #5 - blt _020236CC - mov r2, #0 -_020236E4: - add r1, r0, r3, lsl #2 - add r3, r3, #1 - str r2, [r1, #0x38] - cmp r3, #5 - blt _020236E4 - bx lr - arm_func_end InitPreprocessorArgs - - arm_func_start FUN_020236fc -FUN_020236fc: @ 0x020236FC - push {r4, lr} - movs lr, r1 - mov r4, r0 - beq _02023724 - mov ip, #5 -_02023710: - ldm lr!, {r0, r1, r2, r3} - stm r4!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _02023710 - pop {r4, pc} -_02023724: - bl InitPreprocessorArgs - pop {r4, pc} - arm_func_end FUN_020236fc - - arm_func_start FUN_0202372c -FUN_0202372c: @ 0x0202372C - push {r3, r4, r5, lr} - sub sp, sp, #0x100 - mov r3, r1 - mov r5, r0 - mov r4, r2 - ldr r1, _02023784 @ =0x02099D0C - add r0, sp, #0 - mov r2, r3 - bl SprintfStatic - add r0, sp, #0 - bl Strlen - mov r2, r0 - cmp r2, r4 - movgt r4, r2 - ldr r1, _02023788 @ =0x02099D10 - add r3, sp, #0 - mov r0, r5 - sub r2, r4, r2 - bl SprintfStatic - mov r0, r5 - add sp, sp, #0x100 - pop {r3, r4, r5, pc} - .align 2, 0 -_02023784: .4byte 0x02099D0C -_02023788: .4byte 0x02099D10 - arm_func_end FUN_0202372c - - arm_func_start SprintfStatic -SprintfStatic: @ 0x0202378C - push {r0, r1, r2, r3} - push {r3, lr} - add r2, sp, #0xc - bic r2, r2, #3 - ldr r1, [sp, #0xc] - add r2, r2, #4 - bl Vsprintf - pop {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end SprintfStatic - - arm_func_start FUN_020237B4 -FUN_020237B4: @ 0x020237B4 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x100 - mov r3, r1 - mov r7, r0 - mov r6, r2 - ldr r1, _020238C8 @ =0x02099D0C - add r0, sp, #0 - mov r2, r3 - bl SprintfStatic - add r0, sp, #0 - bl Strlen - mov r5, r0 - sub r0, r5, #1 - mov r1, #3 - bl DivideInt - mov r4, r0 - cmp r6, #0 - ble _02023810 - cmp r5, r6 - movgt r6, r5 - sub r0, r6, #1 - mov r1, #3 - bl DivideInt -_02023810: - cmp r4, #0 - ble _02023888 - add r2, sp, #0 - sub r1, r5, #1 - add sb, r2, r1 - mov r8, #0 - add sl, sb, r4, lsl #2 - mov lr, r8 - strb r8, [sl, #1] - mov ip, #0x5d - mov r3, #0x50 - mov r2, #0x4d - mov fp, #0x5b - b _02023880 -_02023848: - cmp r8, #3 - blt _02023870 - strb ip, [sl] - strb r3, [sl, #-1] - strb r2, [sl, #-2] - strb fp, [sl, #-3] - sub sl, sl, #4 - cmp sl, sb - beq _02023888 - mov r8, #0 -_02023870: - ldrb r1, [sb], #-1 - add r8, r8, #1 - add lr, lr, #1 - strb r1, [sl], #-1 -_02023880: - cmp lr, r5 - blt _02023848 -_02023888: - cmp r6, #0 - ble _020238B0 - sub r1, r6, r5 - add r2, r0, r1 - ldr r1, _020238CC @ =0x02099D10 - add r3, sp, #0 - mov r0, r7 - sub r2, r2, r4 - bl SprintfStatic - b _020238BC -_020238B0: - add r1, sp, #0 - mov r0, r7 - bl Strcpy -_020238BC: - mov r0, r7 - add sp, sp, #0x100 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_020238C8: .4byte 0x02099D0C -_020238CC: .4byte 0x02099D10 - arm_func_end FUN_020237B4 - - arm_func_start FUN_020238d0 -FUN_020238d0: @ 0x020238D0 - ldr ip, _020238DC @ =FUN_020237B4 - mov r2, #5 - bx ip - .align 2, 0 -_020238DC: .4byte FUN_020237B4 - arm_func_end FUN_020238d0 - - arm_func_start FUN_020238e0 -FUN_020238e0: @ 0x020238E0 - ldr ip, _020238EC @ =FUN_020237B4 - mov r2, #0 - bx ip - .align 2, 0 -_020238EC: .4byte FUN_020237B4 - arm_func_end FUN_020238e0 - - arm_func_start FUN_020238f0 -FUN_020238f0: @ 0x020238F0 - ldr ip, _020238FC @ =FUN_020237B4 - mov r2, #7 - bx ip - .align 2, 0 -_020238FC: .4byte FUN_020237B4 - arm_func_end FUN_020238f0 - - arm_func_start FUN_02023900 -FUN_02023900: @ 0x02023900 - ldr ip, _0202390C @ =FUN_020237B4 - mov r2, #0 - bx ip - .align 2, 0 -_0202390C: .4byte FUN_020237B4 - arm_func_end FUN_02023900 - - arm_func_start FUN_02023910 -FUN_02023910: @ 0x02023910 - ldr ip, _0202391C @ =FUN_020237B4 - mov r2, #0 - bx ip - .align 2, 0 -_0202391C: .4byte FUN_020237B4 - arm_func_end FUN_02023910 - - arm_func_start FUN_02023920 -FUN_02023920: @ 0x02023920 - push {r3, r4, r5, lr} - lsl r2, r1, #0x10 - and r1, r1, #0xf0000 - mov r5, r0 - cmp r1, #0x40000 - lsr r4, r2, #0x10 - bgt _02023978 - cmp r1, #0x40000 - bge _02023B44 - cmp r1, #0x10000 - bgt _0202395C - bge _02023A30 - cmp r1, #0 - beq _020239AC - b _02023B44 -_0202395C: - cmp r1, #0x20000 - bgt _0202396C - beq _02023A40 - b _02023B44 -_0202396C: - cmp r1, #0x30000 - beq _02023A8C - b _02023B44 -_02023978: - cmp r1, #0x70000 - bgt _02023990 - bge _02023B3C - cmp r1, #0x60000 - beq _02023B34 - b _02023B44 -_02023990: - cmp r1, #0x80000 - bgt _020239A0 - beq _020239D0 - b _02023B44 -_020239A0: - cmp r1, #0x90000 - beq _02023AE0 - b _02023B44 -_020239AC: - lsl r0, r4, #0x10 - asr r0, r0, #0x10 - bl GetNameString - mov r2, r0 - ldr r1, _02023B4C @ =0x02099D1C - mov r0, r5 - bl SprintfStatic - mov r0, r5 - pop {r3, r4, r5, pc} -_020239D0: - lsl r0, r4, #0x10 - asr r0, r0, #0x10 - bl GetNameString - mov r2, r0 - ldr r1, _02023B4C @ =0x02099D1C - mov r0, r5 - bl SprintfStatic - lsl r0, r4, #0x10 - asr r0, r0, #0x10 - bl GetMonsterGender - cmp r0, #1 - beq _02023A0C - cmp r0, #2 - beq _02023A1C - b _02023A28 -_02023A0C: - ldr r1, _02023B50 @ =0x022A5048 - mov r0, r5 - bl Strcat - b _02023A28 -_02023A1C: - ldr r1, _02023B54 @ =0x022A504C - mov r0, r5 - bl Strcat -_02023A28: - mov r0, r5 - pop {r3, r4, r5, pc} -_02023A30: - lsl r1, r4, #0x10 - asr r1, r1, #0x10 - bl FUN_02023d64 - pop {r3, r4, r5, pc} -_02023A40: - mov r0, #0x44 - mul r1, r4, r0 - ldr r0, _02023B58 @ =0x020B0A48 - ldr r2, [r0] - ldrb r0, [r2, r1] - add r1, r2, r1 - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _02023B44 - ldrsh r0, [r1, #4] - bl GetNameString - mov r2, r0 - ldr r1, _02023B4C @ =0x02099D1C - mov r0, r5 - bl SprintfStatic - mov r0, r5 - pop {r3, r4, r5, pc} -_02023A8C: - ldr r1, _02023B58 @ =0x020B0A48 - mov r0, #0x68 - ldr r2, [r1] - mul r1, r4, r0 - add r0, r2, #0x9000 - ldr r2, [r0, #0x84c] - ldrb r0, [r2, r1] - add r1, r2, r1 - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _02023B44 - ldrsh r0, [r1, #0xc] - bl GetNameString - mov r2, r0 - ldr r1, _02023B4C @ =0x02099D1C - mov r0, r5 - bl SprintfStatic - mov r0, r5 - pop {r3, r4, r5, pc} -_02023AE0: - mov r0, #0x44 - ldr r1, _02023B58 @ =0x020B0A48 - mul r2, r4, r0 - ldr r0, [r1] - add r0, r0, #0x98 - add r1, r0, #0x9800 - ldrb r0, [r1, r2] - add r1, r1, r2 - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _02023B44 - ldrsh r0, [r1, #4] - bl GetNameString - mov r2, r0 - ldr r1, _02023B5C @ =0x02099D2C - mov r0, r5 - bl SprintfStatic - mov r0, r5 - pop {r3, r4, r5, pc} -_02023B34: - ldr r0, _02023B60 @ =0x02099D3C - pop {r3, r4, r5, pc} -_02023B3C: - mov r0, #0 - pop {r3, r4, r5, pc} -_02023B44: - ldr r0, _02023B64 @ =0x02099D50 - pop {r3, r4, r5, pc} - .align 2, 0 -_02023B4C: .4byte 0x02099D1C -_02023B50: .4byte 0x022A5048 -_02023B54: .4byte 0x022A504C -_02023B58: .4byte 0x020B0A48 -_02023B5C: .4byte 0x02099D2C -_02023B60: .4byte 0x02099D3C -_02023B64: .4byte 0x02099D50 - arm_func_end FUN_02023920 - - arm_func_start FUN_02023b68 -FUN_02023b68: @ 0x02023B68 - push {r3, r4, r5, lr} - sub sp, sp, #0x40 - lsl r2, r1, #0x10 - and r1, r1, #0xf0000 - mov r5, r0 - cmp r1, #0x30000 - lsr r4, r2, #0x10 - bgt _02023BB4 - cmp r1, #0x30000 - bge _02023C90 - cmp r1, #0x10000 - bgt _02023BA8 - bge _02023C08 - cmp r1, #0 - beq _02023BE4 - b _02023D40 -_02023BA8: - cmp r1, #0x20000 - beq _02023C18 - b _02023D40 -_02023BB4: - cmp r1, #0x50000 - bgt _02023BC8 - bge _02023D14 - cmp r1, #0x40000 - b _02023D40 -_02023BC8: - cmp r1, #0x60000 - bgt _02023BD8 - beq _02023D30 - b _02023D40 -_02023BD8: - cmp r1, #0x70000 - beq _02023D38 - b _02023D40 -_02023BE4: - lsl r0, r4, #0x10 - asr r0, r0, #0x10 - bl GetNameString - mov r2, r0 - ldr r1, _02023D4C @ =0x02099D2C - mov r0, r5 - bl SprintfStatic - mov r0, r5 - b _02023D44 -_02023C08: - lsl r1, r4, #0x10 - asr r1, r1, #0x10 - bl FUN_02023dc0 - b _02023D44 -_02023C18: - mov r0, #0x44 - mul r1, r4, r0 - ldr r0, _02023D50 @ =0x020B0A48 - ldr r2, [r0] - ldrb r0, [r2, r1] - add r1, r2, r1 - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _02023D40 - add r0, sp, #0 - add r1, r1, #0x3a - mov r2, #0xa - bl StrncpySimpleNoPadSafe - lsl r0, r4, #0x10 - asr r0, r0, #0x10 - bl FUN_020564b0 - cmp r0, #0 - add r2, sp, #0 - beq _02023C7C - ldr r1, _02023D54 @ =0x02099D54 - mov r0, r5 - bl SprintfStatic - b _02023C88 -_02023C7C: - ldr r1, _02023D58 @ =0x02099D64 - mov r0, r5 - bl SprintfStatic -_02023C88: - mov r0, r5 - b _02023D44 -_02023C90: - ldr r1, _02023D50 @ =0x020B0A48 - mov r0, #0x68 - ldr r2, [r1] - mul r1, r4, r0 - add r0, r2, #0x9000 - ldr r2, [r0, #0x84c] - ldrb r0, [r2, r1] - add r4, r2, r1 - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _02023D40 - add r0, sp, #0 - add r1, r4, #0x5e - mov r2, #0xa - bl StrncpySimpleNoPadSafe - ldrb r0, [r4, #1] - add r2, sp, #0 - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _02023D00 - ldr r1, _02023D54 @ =0x02099D54 - mov r0, r5 - bl SprintfStatic - b _02023D0C -_02023D00: - ldr r1, _02023D58 @ =0x02099D64 - mov r0, r5 - bl SprintfStatic -_02023D0C: - mov r0, r5 - b _02023D44 -_02023D14: - mov r0, r4 - bl FUN_02024fb8 - mov r1, r0 - mov r0, r5 - bl Strcpy - mov r0, r5 - b _02023D44 -_02023D30: - ldr r0, _02023D5C @ =0x02099D3C - b _02023D44 -_02023D38: - mov r0, #0 - b _02023D44 -_02023D40: - ldr r0, _02023D60 @ =0x02099D50 -_02023D44: - add sp, sp, #0x40 - pop {r3, r4, r5, pc} - .align 2, 0 -_02023D4C: .4byte 0x02099D2C -_02023D50: .4byte 0x020B0A48 -_02023D54: .4byte 0x02099D54 -_02023D58: .4byte 0x02099D64 -_02023D5C: .4byte 0x02099D3C -_02023D60: .4byte 0x02099D50 - arm_func_end FUN_02023b68 - - arm_func_start FUN_02023d64 -FUN_02023d64: @ 0x02023D64 - push {r0, r1, r2, r3} - push {r3, r4, lr} - sub sp, sp, #4 - mov r4, r0 - add r0, sp, #0x14 - add r1, sp, #0 - bl FUN_0206549c - ldrsh r0, [sp] - cmp r0, #0 - moveq r0, #0 - beq _02023DAC - ldrsh r0, [sp] - bl GetNameString - mov r2, r0 - ldr r1, _02023DBC @ =0x02099D1C - mov r0, r4 - bl SprintfStatic - mov r0, r4 -_02023DAC: - add sp, sp, #4 - pop {r3, r4, lr} - add sp, sp, #0x10 - bx lr - .align 2, 0 -_02023DBC: .4byte 0x02099D1C - arm_func_end FUN_02023d64 - - arm_func_start FUN_02023dc0 -FUN_02023dc0: @ 0x02023DC0 - push {r0, r1, r2, r3} - push {r4, r5, lr} - sub sp, sp, #0x84 - mov r4, r0 - add r0, sp, #0x94 - add r1, sp, #0 - bl FUN_0206549c - ldrsh r0, [sp] - cmp r0, #0 - moveq r0, #0 - beq _02023F98 - ldrsh r0, [sp, #0x94] - cmp r0, #0x39 - bne _02023E18 - add r0, sp, #0x42 - bl FUN_02065bf0 - ldr r1, _02023FA8 @ =0x02099D64 - add r2, sp, #0x42 - mov r0, r4 - bl SprintfStatic - mov r0, r4 - b _02023F98 -_02023E18: - cmp r0, #0x42 - bne _02023E44 - add r1, sp, #2 - mov r0, #0x3f - mov r2, #0xa - bl FUN_0204bbb0 - add r0, sp, #0x42 - add r1, sp, #2 - mov r2, #0xa - bl StrncpySimpleNoPadSafe - b _02023F5C -_02023E44: - cmp r0, #0x43 - bne _02023E70 - add r1, sp, #2 - mov r0, #0x41 - mov r2, #0xa - bl FUN_0204bbb0 - add r0, sp, #0x42 - add r1, sp, #2 - mov r2, #0xa - bl StrncpySimpleNoPadSafe - b _02023F5C -_02023E70: - bl GetActorMatchingStorageId - mov r5, r0 - mvn r1, #0 - cmp r5, r1 - beq _02023F2C - bl GetActiveRosterIndex - mvn r1, #0 - cmp r0, r1 - beq _02023EB0 - bl GetActiveTeamMember - mov r1, r0 - add r0, sp, #0x42 - add r1, r1, #0x5e - mov r2, #0xa - bl StrncpySimpleNoPadSafe - b _02023ECC -_02023EB0: - mov r0, r5 - bl GetTeamMember - mov r1, r0 - add r0, sp, #0x42 - add r1, r1, #0x3a - mov r2, #0xa - bl StrncpySimpleNoPadSafe -_02023ECC: - ldrsh r0, [sp, #0x94] - cmp r0, #0 - blt _02023EF4 - cmp r0, #0xa - bge _02023EF4 - ldr r1, _02023FAC @ =0x02099D54 - add r2, sp, #0x42 - mov r0, r4 - bl SprintfStatic - b _02023F24 -_02023EF4: - mov r0, r5 - bl FUN_020564b0 - cmp r0, #0 - add r2, sp, #0x42 - beq _02023F18 - ldr r1, _02023FAC @ =0x02099D54 - mov r0, r4 - bl SprintfStatic - b _02023F24 -_02023F18: - ldr r1, _02023FA8 @ =0x02099D64 - mov r0, r4 - bl SprintfStatic -_02023F24: - mov r0, r4 - b _02023F98 -_02023F2C: - ldrsh r0, [sp, #0x94] - bl FUN_02065b14 - movs r1, r0 - beq _02023F48 - add r0, sp, #0x42 - bl GetStringFromFileVeneer - b _02023F5C -_02023F48: - ldrsh r0, [sp] - bl GetNameString - mov r1, r0 - add r0, sp, #0x42 - bl Strcpy -_02023F5C: - ldrsh r0, [sp, #0x94] - cmp r0, #0 - blt _02023F84 - cmp r0, #0xa - bge _02023F84 - ldr r1, _02023FAC @ =0x02099D54 - add r2, sp, #0x42 - mov r0, r4 - bl SprintfStatic - b _02023F94 -_02023F84: - ldr r1, _02023FB0 @ =0x02099D2C - add r2, sp, #0x42 - mov r0, r4 - bl SprintfStatic -_02023F94: - mov r0, r4 -_02023F98: - add sp, sp, #0x84 - pop {r4, r5, lr} - add sp, sp, #0x10 - bx lr - .align 2, 0 -_02023FA8: .4byte 0x02099D64 -_02023FAC: .4byte 0x02099D54 -_02023FB0: .4byte 0x02099D2C - arm_func_end FUN_02023dc0 - - arm_func_start FUN_02023fb4 -FUN_02023fb4: @ 0x02023FB4 - push {r0, r1, r2, r3} - push {r3, r4, r5, r6, lr} - sub sp, sp, #0x8c - mov r4, r0 - add r0, sp, #0xa4 - add r1, sp, #0 - bl FUN_0206549c - ldrsh r0, [sp] - cmp r0, #0 - moveq r0, #0 - beq _02024094 - ldrsh r0, [sp, #0xa4] - bl GetActorMatchingStorageId - mov r5, r0 - bl GetTeamMember - movs r6, r0 - beq _02024014 - add r0, sp, #0x4c - add r1, r6, #0x3a - mov r2, #0xa - bl StrncpySimpleNoPadSafe - add r0, sp, #0x4c - str r0, [sp, #8] - b _02024020 -_02024014: - ldrsh r0, [sp] - bl GetNameString - str r0, [sp, #8] -_02024020: - add r3, sp, #0xc - add r0, sp, #4 - add r1, sp, #8 - add r2, sp, #0x4c - str r3, [sp, #4] - bl FUN_020206fc - ldr r0, [sp, #4] - mov r1, #0 - strb r1, [r0] - cmp r6, #0 - beq _02024080 - mov r0, r5 - bl FUN_020564b0 - cmp r0, #0 - add r2, sp, #0xc - beq _02024070 - ldr r1, _020240A4 @ =0x02099D54 - mov r0, r4 - bl SprintfStatic - b _02024090 -_02024070: - ldr r1, _020240A8 @ =0x02099D64 - mov r0, r4 - bl SprintfStatic - b _02024090 -_02024080: - ldr r1, _020240AC @ =0x02099D2C - add r2, sp, #0xc - mov r0, r4 - bl SprintfStatic -_02024090: - mov r0, r4 -_02024094: - add sp, sp, #0x8c - pop {r3, r4, r5, r6, lr} - add sp, sp, #0x10 - bx lr - .align 2, 0 -_020240A4: .4byte 0x02099D54 -_020240A8: .4byte 0x02099D64 -_020240AC: .4byte 0x02099D2C - arm_func_end FUN_02023fb4 - - arm_func_start FUN_020240b0 -FUN_020240b0: @ 0x020240B0 - push {r4, r5, r6, r7, r8, lr} - mov r8, r0 - mov r7, r1 - ldr r5, _0202410C @ =0x020A7FF0 - mov r6, #0 - ldr r4, _02024110 @ =0x00000182 - b _020240FC -_020240CC: - ldr r1, [r5, #4] - mov r0, r7 - bl _0202364C - cmp r0, #0 - beq _020240F4 - lsl r1, r6, #0x10 - mov r0, r8 - asr r1, r1, #0x10 - bl FUN_02023d64 - pop {r4, r5, r6, r7, r8, pc} -_020240F4: - add r6, r6, #1 - add r5, r5, #0xc -_020240FC: - cmp r6, r4 - blt _020240CC - mov r0, #0 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0202410C: .4byte 0x020A7FF0 -_02024110: .4byte 0x00000182 - arm_func_end FUN_020240b0 - - arm_func_start FUN_02024114 -FUN_02024114: @ 0x02024114 - push {r4, r5, r6, r7, r8, lr} - mov r8, r0 - mov r7, r1 - ldr r5, _02024170 @ =0x020A7FF0 - mov r6, #0 - ldr r4, _02024174 @ =0x00000182 - b _02024160 -_02024130: - ldr r1, [r5, #4] - mov r0, r7 - bl _0202364C - cmp r0, #0 - beq _02024158 - lsl r1, r6, #0x10 - mov r0, r8 - asr r1, r1, #0x10 - bl FUN_02023dc0 - pop {r4, r5, r6, r7, r8, pc} -_02024158: - add r6, r6, #1 - add r5, r5, #0xc -_02024160: - cmp r6, r4 - blt _02024130 - mov r0, #0 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02024170: .4byte 0x020A7FF0 -_02024174: .4byte 0x00000182 - arm_func_end FUN_02024114 - - arm_func_start FUN_02024178 -FUN_02024178: @ 0x02024178 - push {r4, r5, r6, r7, r8, lr} - mov r8, r0 - mov r7, r1 - ldr r5, _020241D4 @ =0x020A7FF0 - mov r6, #0 - ldr r4, _020241D8 @ =0x00000182 - b _020241C4 -_02024194: - ldr r1, [r5, #4] - mov r0, r7 - bl _0202364C - cmp r0, #0 - beq _020241BC - lsl r1, r6, #0x10 - mov r0, r8 - asr r1, r1, #0x10 - bl FUN_02023fb4 - pop {r4, r5, r6, r7, r8, pc} -_020241BC: - add r6, r6, #1 - add r5, r5, #0xc -_020241C4: - cmp r6, r4 - blt _02024194 - mov r0, #0 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_020241D4: .4byte 0x020A7FF0 -_020241D8: .4byte 0x00000182 - arm_func_end FUN_02024178 - - arm_func_start FUN_020241dc -FUN_020241dc: @ 0x020241DC - push {r3, r4, r5, lr} - sub sp, sp, #0x10 - lsl ip, r1, #0x10 - and lr, r1, #0x70000 - mov r4, r0 - cmp lr, #0x20000 - lsr r5, ip, #0x10 - bgt _02024220 - cmp lr, #0x20000 - bge _020242E0 - cmp lr, #0 - bgt _02024214 - beq _02024240 - b _020242E0 -_02024214: - cmp lr, #0x10000 - beq _0202426C - b _020242E0 -_02024220: - cmp lr, #0x40000 - bgt _02024234 - bge _0202429C - cmp lr, #0x30000 - b _020242E0 -_02024234: - cmp lr, #0x50000 - beq _020242AC - b _020242E0 -_02024240: - tst r1, #0x80000 - movne r2, #1 - moveq r2, #0 - lsl r1, r5, #0x10 - and r3, r2, #0xff - mov r0, r4 - asr r1, r1, #0x10 - mov r2, #1 - bl GetItemNameFormatted - mov r0, r4 - b _020242E4 -_0202426C: - strh r2, [sp, #0xc] - mov ip, #0 - strb r3, [sp, #0xa] - ldr r2, _020242EC @ =0x02099CAC - add r1, sp, #0xa - strb ip, [sp, #0xb] - strh r5, [sp, #0xe] - mov r3, #1 - str ip, [sp] - bl FUN_0200d310 - mov r0, r4 - b _020242E4 -_0202429C: - mov r1, r5 - bl FUN_0202507c - mov r0, r4 - b _020242E4 -_020242AC: - lsl r0, r5, #0x10 - add r1, sp, #4 - asr r0, r0, #0x10 - bl FUN_02065cd8 - mov ip, #0 - ldr r2, _020242F0 @ =0x02099CB8 - add r1, sp, #4 - mov r0, r4 - mov r3, #1 - str ip, [sp] - bl FUN_0200d310 - mov r0, r4 - b _020242E4 -_020242E0: - ldr r0, _020242F4 @ =0x02099D50 -_020242E4: - add sp, sp, #0x10 - pop {r3, r4, r5, pc} - .align 2, 0 -_020242EC: .4byte 0x02099CAC -_020242F0: .4byte 0x02099CB8 -_020242F4: .4byte 0x02099D50 - arm_func_end FUN_020241dc - - arm_func_start FUN_020242f8 -FUN_020242f8: @ 0x020242F8 - push {r4, lr} - lsl r2, r1, #0x10 - mov r4, r0 - lsr r0, r2, #0x10 - ands r1, r1, #0x30000 - beq _0202431C - cmp r1, #0x10000 - beq _02024338 - b _02024350 -_0202431C: - bl GetMoveName - mov r2, r0 - ldr r1, _02024358 @ =0x02099D74 - mov r0, r4 - bl SprintfStatic - mov r0, r4 - pop {r4, pc} -_02024338: - bl GetDungeonResultString - mov r1, r0 - mov r0, r4 - bl Strcpy - mov r0, r4 - pop {r4, pc} -_02024350: - ldr r0, _0202435C @ =0x02099D50 - pop {r4, pc} - .align 2, 0 -_02024358: .4byte 0x02099D74 -_0202435C: .4byte 0x02099D50 - arm_func_end FUN_020242f8 - - arm_func_start SetStringAccuracy -SetStringAccuracy: @ 0x02024360 - push {r3, r4, r5, r6, r7, lr} - ldr r2, _02024410 @ =0x000027A2 - mov r4, r0 - cmp r1, r2 - blo _02024408 - ldr r0, _02024414 @ =0x000029C1 - cmp r1, r0 - bhs _02024408 - rsb r0, r2, #0 - add r0, r1, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl GetMoveActualAccuracy - mov r6, #1 - mov r3, #0 - ldr r2, _02024418 @ =0x02099CEC - b _020243B8 -_020243A4: - ldr r1, [r2, r3, lsl #2] - cmp r0, r1 - blt _020243C0 - add r6, r6, #1 - add r3, r3, #1 -_020243B8: - cmp r3, #8 - blt _020243A4 -_020243C0: - cmp r6, #8 - ble _020243D8 - ldr r1, _0202441C @ =0x000027A0 - mov r0, r4 - bl GetStringFromFileVeneer - b _02024400 -_020243D8: - mov r7, #0 - strb r7, [r4] - ldr r5, _02024420 @ =0x02099D84 - b _020243F8 -_020243E8: - mov r0, r4 - mov r1, r5 - bl Strcat - add r7, r7, #1 -_020243F8: - cmp r7, r6 - blt _020243E8 -_02024400: - mov r0, r4 - pop {r3, r4, r5, r6, r7, pc} -_02024408: - ldr r0, _02024424 @ =0x02099D50 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02024410: .4byte 0x000027A2 -_02024414: .4byte 0x000029C1 -_02024418: .4byte 0x02099CEC -_0202441C: .4byte 0x000027A0 -_02024420: .4byte 0x02099D84 -_02024424: .4byte 0x02099D50 - arm_func_end SetStringAccuracy - - arm_func_start SetStringPower -SetStringPower: @ 0x02024428 - push {r3, r4, r5, r6, r7, lr} - ldr r2, _020244DC @ =0x000027A2 - mov r4, r0 - cmp r1, r2 - blo _020244D4 - ldr r0, _020244E0 @ =0x000029C1 - cmp r1, r0 - bhs _020244D4 - rsb r0, r2, #0 - add r0, r1, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl GetMoveBasePowerFromId - mov r3, #0 - mov r5, r3 - ldr r2, _020244E4 @ =0x02099CD4 - b _02024480 -_0202446C: - ldr r1, [r2, r5, lsl #2] - cmp r0, r1 - blt _02024488 - add r3, r3, #1 - add r5, r5, #1 -_02024480: - cmp r5, #6 - blt _0202446C -_02024488: - cmp r3, #0 - bne _020244A0 - ldr r1, _020244E8 @ =0x000027A1 - mov r0, r4 - bl GetStringFromFileVeneer - b _020244CC -_020244A0: - mov r7, #0 - strb r7, [r4] - add r5, r3, #2 - ldr r6, _020244EC @ =0x02099D84 - b _020244C4 -_020244B4: - mov r0, r4 - mov r1, r6 - bl Strcat - add r7, r7, #1 -_020244C4: - cmp r7, r5 - blt _020244B4 -_020244CC: - mov r0, r4 - pop {r3, r4, r5, r6, r7, pc} -_020244D4: - ldr r0, _020244F0 @ =0x02099D50 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_020244DC: .4byte 0x000027A2 -_020244E0: .4byte 0x000029C1 -_020244E4: .4byte 0x02099CD4 -_020244E8: .4byte 0x000027A1 -_020244EC: .4byte 0x02099D84 -_020244F0: .4byte 0x02099D50 - arm_func_end SetStringPower - - arm_func_start FUN_020244f4 -FUN_020244f4: @ 0x020244F4 - push {r3, r4, r5, lr} - sub sp, sp, #0x400 - lsl r2, r1, #0x10 - mov r5, r0 - lsr r4, r2, #0x10 - ands r0, r1, #0x70000 - beq _0202451C - cmp r0, #0x10000 - beq _02024564 - b _02024580 -_0202451C: - add r0, r1, #0xc1 - add r0, r0, #0x3400 - lsl r1, r0, #0x10 - add r0, sp, #0 - lsr r1, r1, #0x10 - bl FUN_020258e4 - cmp r4, #0x11 - add r2, sp, #0 - bne _02024550 - ldr r1, _0202458C @ =0x02099D8C - mov r0, r5 - bl SprintfStatic - b _0202455C -_02024550: - ldr r1, _02024590 @ =0x02099D90 - mov r0, r5 - bl SprintfStatic -_0202455C: - mov r0, r5 - b _02024584 -_02024564: - mov r0, r4 - bl FUN_02024fc8 - mov r1, r0 - mov r0, r5 - bl Strcpy - mov r0, r5 - b _02024584 -_02024580: - ldr r0, _02024594 @ =0x02099D50 -_02024584: - add sp, sp, #0x400 - pop {r3, r4, r5, pc} - .align 2, 0 -_0202458C: .4byte 0x02099D8C -_02024590: .4byte 0x02099D90 -_02024594: .4byte 0x02099D50 - arm_func_end FUN_020244f4 - - arm_func_start FUN_02024598 -FUN_02024598: @ 0x02024598 - push {r4, lr} - movs r2, r1 - mov r4, r0 - bmi _020245B4 - ldr r1, _020245C8 @ =0x02099DA0 - bl SprintfStatic - b _020245C0 -_020245B4: - ldr r1, _020245CC @ =0x02099DB0 - rsb r2, r2, #0 - bl SprintfStatic -_020245C0: - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_020245C8: .4byte 0x02099DA0 -_020245CC: .4byte 0x02099DB0 - arm_func_end FUN_02024598 - - arm_func_start FUN_020245d0 -FUN_020245d0: @ 0x020245D0 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0x80 - lsl r3, r1, #0x10 - and r1, r1, #0xf0000 - mov r7, r0 - mov r6, r2 - cmp r1, #0x20000 - lsr r4, r3, #0x10 - bgt _02024618 - cmp r1, #0x20000 - bge _020246A8 - cmp r1, #0 - bgt _0202460C - beq _02024634 - b _02024918 -_0202460C: - cmp r1, #0x10000 - beq _02024744 - b _02024918 -_02024618: - cmp r1, #0x30000 - bgt _02024628 - beq _02024668 - b _02024918 -_02024628: - cmp r1, #0x40000 - beq _020248E4 - b _02024918 -_02024634: - mov r0, #0 - mov r2, r0 - and r1, r4, #0xff - bl FUN_0204f6f8 - mov r1, r0 - add r0, sp, #0x40 - bl GetStringFromFileVeneer - ldr r1, _02024924 @ =0x02099DC0 - add r2, sp, #0x40 - mov r0, r7 - bl SprintfStatic - mov r0, r7 - b _0202491C -_02024668: - lsl r0, r4, #0x10 - asr r0, r0, #0x10 - bl DungeonSwapIdxToId - mov r1, r0 - mov r0, #0 - mov r2, r0 - bl FUN_0204f6f8 - mov r1, r0 - add r0, sp, #0x40 - bl GetStringFromFileVeneer - ldr r1, _02024924 @ =0x02099DC0 - add r2, sp, #0x40 - mov r0, r7 - bl SprintfStatic - mov r0, r7 - b _0202491C -_020246A8: - and r0, r4, #0xff - and r1, r6, #0xff - bl FUN_0204f77c - bl GetNbFloorsPlusOne - mov r5, r0 - mov r0, #0 - mov r2, r0 - and r1, r4, #0xff - bl FUN_0204f6f8 - mov r1, r0 - add r0, sp, #0x40 - bl GetStringFromFileVeneer - cmp r6, #0 - mvnlt r0, #0 - mullt r0, r6, r0 - movlt r6, r0 - cmp r5, #2 - bhi _02024704 - ldr r1, _02024924 @ =0x02099DC0 - add r2, sp, #0x40 - mov r0, r7 - bl SprintfStatic - b _0202473C -_02024704: - and r0, r4, #0xff - bl DungeonGoesUp - cmp r0, #0 - add r2, sp, #0x40 - beq _0202472C - ldr r1, _02024928 @ =0x02099DD0 - mov r0, r7 - mov r3, r6 - bl SprintfStatic - b _0202473C -_0202472C: - ldr r1, _0202492C @ =0x02099DEC - mov r0, r7 - mov r3, r6 - bl SprintfStatic -_0202473C: - mov r0, r7 - b _0202491C -_02024744: - and r0, r4, #0xff - and r1, r6, #0xff - bl FUN_0204f77c - bl GetNbFloorsPlusOne - mov r5, r0 - and r1, r4, #0xff - and r2, r6, #0xff - mov r0, #1 - bl FUN_0204f6f8 - mov r1, r0 - add r0, sp, #0x40 - bl GetStringFromFileVeneer - mov r1, #0 - add r0, sp, #0 - add r3, sp, #0x40 -_02024780: - ldrb r2, [r3, r1] - cmp r2, #0 - beq _02024888 - strb r2, [r0, r1] - cmp r2, #0xa - bne _02024880 - add r1, r1, #1 - mov r2, #0x5b - strb r2, [r0, r1] - add r2, r1, #1 - mov r3, #0x43 - strb r3, [r0, r2] - add r2, r1, #2 - mov r3, #0x4c - strb r3, [r0, r2] - add r2, r1, #3 - mov r3, #0x55 - strb r3, [r0, r2] - add r2, r1, #4 - mov r3, #0x4d - strb r3, [r0, r2] - add r2, r1, #5 - mov r3, #0x5f - strb r3, [r0, r2] - add r2, r1, #6 - mov r3, #0x53 - strb r3, [r0, r2] - add r2, r1, #7 - mov r3, #0x45 - strb r3, [r0, r2] - add r2, r1, #8 - mov r3, #0x54 - strb r3, [r0, r2] - add r2, r1, #9 - mov r3, #0x3a - strb r3, [r0, r2] - add r2, r1, #0xa - mov r3, #0x38 - strb r3, [r0, r2] - add r2, r1, #0xb - mov r3, #0x30 - strb r3, [r0, r2] - add r2, r1, #0xc - mov r3, #0x5d - strb r3, [r0, r2] - add ip, r1, #0xd - add r3, sp, #0x40 - add r0, sp, #0 -_02024840: - ldrb r2, [r3, r1] - add r1, r1, #1 - strb r2, [r0, ip] - cmp r2, #0 - add ip, ip, #1 - bne _02024840 - mov r3, #0 - add r2, sp, #0 - add r0, sp, #0x40 - b _02024874 -_02024868: - ldrb r1, [r2, r3] - strb r1, [r0, r3] - add r3, r3, #1 -_02024874: - cmp r3, ip - bne _02024868 - b _02024888 -_02024880: - add r1, r1, #1 - b _02024780 -_02024888: - cmp r5, #2 - bhi _020248A4 - ldr r1, _02024924 @ =0x02099DC0 - add r2, sp, #0x40 - mov r0, r7 - bl SprintfStatic - b _020248DC -_020248A4: - and r0, r4, #0xff - bl DungeonGoesUp - cmp r0, #0 - add r2, sp, #0x40 - beq _020248CC - ldr r1, _02024928 @ =0x02099DD0 - mov r0, r7 - mov r3, r6 - bl SprintfStatic - b _020248DC -_020248CC: - ldr r1, _0202492C @ =0x02099DEC - mov r0, r7 - mov r3, r6 - bl SprintfStatic -_020248DC: - mov r0, r7 - b _0202491C -_020248E4: - and r1, r4, #0xff - and r2, r6, #0xff - mov r0, #0 - bl FUN_0204f6f8 - mov r1, r0 - add r0, sp, #0x40 - bl GetStringFromFileVeneer - ldr r1, _02024924 @ =0x02099DC0 - add r2, sp, #0x40 - mov r0, r7 - bl SprintfStatic - mov r0, r7 - b _0202491C -_02024918: - ldr r0, _02024930 @ =0x02099D50 -_0202491C: - add sp, sp, #0x80 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02024924: .4byte 0x02099DC0 -_02024928: .4byte 0x02099DD0 -_0202492C: .4byte 0x02099DEC -_02024930: .4byte 0x02099D50 - arm_func_end FUN_020245d0 - - arm_func_start FUN_02024934 -FUN_02024934: @ 0x02024934 - ldr ip, _02024948 @ =FUN_0204f6f8 - mov r1, r0 - mov r0, #0 - mov r2, r0 - bx ip - .align 2, 0 -_02024948: .4byte FUN_0204f6f8 - arm_func_end FUN_02024934 - - arm_func_start FUN_0202494c -FUN_0202494c: @ 0x0202494C - push {r4, r5, r6, lr} - sub sp, sp, #0x400 - lsl r2, r1, #0x10 - and r5, r1, #0xf0000 - mov r6, r0 - cmp r5, #0x20000 - lsr r4, r2, #0x10 - bgt _02024990 - cmp r5, #0x20000 - bge _020249F8 - cmp r5, #0 - bgt _02024984 - beq _020249F8 - b _02024A4C -_02024984: - cmp r5, #0x10000 - beq _020249B0 - b _02024A4C -_02024990: - cmp r5, #0x40000 - bgt _020249A8 - bge _020249B0 - cmp r5, #0x30000 - beq _020249B0 - b _02024A4C -_020249A8: - cmp r5, #0x50000 - bne _02024A4C -_020249B0: - cmp r5, #0x40000 - mov r0, #0 - bne _020249D0 - mov r2, r0 - mov r1, #0x25 - bl LoadScriptVariableValueAtIndex - mov r4, r0 - b _020249F8 -_020249D0: - cmp r5, #0x50000 - bne _020249EC - mov r1, #0x25 - mov r2, #1 - bl LoadScriptVariableValueAtIndex - mov r4, r0 - b _020249F8 -_020249EC: - mov r1, #0x20 - bl LoadScriptVariableValue - mov r4, r0 -_020249F8: - lsl r0, r4, #0x10 - asr r0, r0, #0x10 - bl FUN_0206a90c - mov r1, r0 - add r0, sp, #0 - bl GetStringFromFileVeneer - cmp r5, #0x30000 - cmpne r5, #0x20000 - ldrne r0, _02024A58 @ =0x00000133 - add r2, sp, #0 - cmpne r4, r0 - bne _02024A38 - ldr r1, _02024A5C @ =0x02099D8C - mov r0, r6 - bl SprintfStatic - b _02024A44 -_02024A38: - ldr r1, _02024A60 @ =0x02099DC0 - mov r0, r6 - bl SprintfStatic -_02024A44: - mov r0, r6 - b _02024A50 -_02024A4C: - ldr r0, _02024A64 @ =0x02099D50 -_02024A50: - add sp, sp, #0x400 - pop {r4, r5, r6, pc} - .align 2, 0 -_02024A58: .4byte 0x00000133 -_02024A5C: .4byte 0x02099D8C -_02024A60: .4byte 0x02099DC0 -_02024A64: .4byte 0x02099D50 - arm_func_end FUN_0202494c - - arm_func_start FUN_02024a68 -FUN_02024a68: @ 0x02024A68 - push {r4, lr} - lsl r2, r1, #0x10 - mov r4, r0 - tst r1, #0xf0000 - lsr r1, r2, #0x10 - bne _02024A9C - add r1, r1, #0x79 - add r1, r1, #0xa00 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl GetStringFromFileVeneer - mov r0, r4 - pop {r4, pc} -_02024A9C: - ldr r0, _02024AA4 @ =0x02099D50 - pop {r4, pc} - .align 2, 0 -_02024AA4: .4byte 0x02099D50 - arm_func_end FUN_02024a68 - - arm_func_start FUN_02024aa8 -FUN_02024aa8: @ 0x02024AA8 - push {r4, lr} - lsl r2, r1, #0x10 - mov r4, r0 - tst r1, #0xf0000 - lsr r0, r2, #0x10 - bne _02024AE8 - add r0, r0, #0x4d - add r0, r0, #0xa00 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl StringFromMessageId - mov r1, r0 - mov r0, r4 - bl Strcpy - mov r0, r4 - pop {r4, pc} -_02024AE8: - ldr r0, _02024AF0 @ =0x02099D50 - pop {r4, pc} - .align 2, 0 -_02024AF0: .4byte 0x02099D50 - arm_func_end FUN_02024aa8 - - arm_func_start FUN_02024af4 -FUN_02024af4: @ 0x02024AF4 - push {r4, lr} - lsl r2, r1, #0x10 - mov r4, r0 - tst r1, #0xf0000 - lsr r0, r2, #0x10 - bne _02024B38 - add r0, r0, #0x77 - add r0, r0, #0x100 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl StringFromMessageId - mov r2, r0 - ldr r1, _02024B40 @ =0x02099E08 - mov r0, r4 - bl SprintfStatic - mov r0, r4 - pop {r4, pc} -_02024B38: - ldr r0, _02024B44 @ =0x02099D50 - pop {r4, pc} - .align 2, 0 -_02024B40: .4byte 0x02099E08 -_02024B44: .4byte 0x02099D50 - arm_func_end FUN_02024af4 - - arm_func_start FUN_02024b48 -FUN_02024b48: @ 0x02024B48 - push {r4, lr} - lsl r2, r1, #0x10 - mov r4, r0 - tst r1, #0xf0000 - lsr r0, r2, #0x10 - bne _02024B88 - add r0, r0, #0x6f - add r0, r0, #0x2700 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl StringFromMessageId - mov r1, r0 - mov r0, r4 - bl Strcpy - mov r0, r4 - pop {r4, pc} -_02024B88: - ldr r0, _02024B90 @ =0x02099D50 - pop {r4, pc} - .align 2, 0 -_02024B90: .4byte 0x02099D50 - arm_func_end FUN_02024b48 - - arm_func_start FUN_02024b94 -FUN_02024b94: @ 0x02024B94 - push {r4, lr} - lsl r2, r1, #0x10 - mov r4, r0 - tst r1, #0xf0000 - lsr r0, r2, #0x10 - bne _02024BCC - and r0, r0, #0xff - bl GetTypeStringId - bl StringFromMessageId - mov r1, r0 - mov r0, r4 - bl Strcpy - mov r0, r4 - pop {r4, pc} -_02024BCC: - ldr r0, _02024BD4 @ =0x02099D50 - pop {r4, pc} - .align 2, 0 -_02024BD4: .4byte 0x02099D50 - arm_func_end FUN_02024b94 - - arm_func_start FUN_02024bd8 -FUN_02024bd8: @ 0x02024BD8 - push {r4, lr} - lsl r2, r1, #0x10 - mov r4, r0 - tst r1, #0xf0000 - lsr r0, r2, #0x10 - bne _02024C0C - and r0, r0, #0xff - bl FUN_02058c1c - mov r1, r0 - mov r0, r4 - bl GetStringFromFileVeneer - mov r0, r4 - pop {r4, pc} -_02024C0C: - ldr r0, _02024C14 @ =0x02099D50 - pop {r4, pc} - .align 2, 0 -_02024C14: .4byte 0x02099D50 - arm_func_end FUN_02024bd8 - - arm_func_start FUN_02024c18 -FUN_02024c18: @ 0x02024C18 - push {r4, lr} - sub sp, sp, #0x400 - lsl r2, r1, #0x10 - mov r4, r0 - tst r1, #0xf0000 - lsr r1, r2, #0x10 - bne _02024C58 - add r0, sp, #0 - and r1, r1, #0xff - bl GetAbilityString - ldr r1, _02024C64 @ =0x02099D8C - add r2, sp, #0 - mov r0, r4 - bl SprintfStatic - mov r0, r4 - b _02024C5C -_02024C58: - ldr r0, _02024C68 @ =0x02099D50 -_02024C5C: - add sp, sp, #0x400 - pop {r4, pc} - .align 2, 0 -_02024C64: .4byte 0x02099D8C -_02024C68: .4byte 0x02099D50 - arm_func_end FUN_02024c18 - - arm_func_start FUN_02024c6c -FUN_02024c6c: @ 0x02024C6C - push {r3, r4, r5, lr} - sub sp, sp, #0x40 - mov r4, r1 - mov r5, r0 - bl GetExecuteSpecialEpisodeType - cmp r4, #2 - bne _02024C98 - mvn r1, #0 - cmp r0, r1 - moveq r4, #0 - movne r4, #1 -_02024C98: - cmp r4, #0 - beq _02024CAC - cmp r4, #1 - beq _02024CFC - b _02024D2C -_02024CAC: - mvn r1, #0 - cmp r0, r1 - bne _02024CC8 - mov r0, #1 - bl GetPerformanceFlagWithChecks - cmp r0, #0 - beq _02024CE8 -_02024CC8: - add r0, sp, #0 - bl GetTeamName - ldr r1, _02024D38 @ =0x02099E08 - add r2, sp, #0 - mov r0, r5 - bl SprintfStatic - mov r0, r5 - b _02024D30 -_02024CE8: - ldr r1, _02024D3C @ =0x00000237 - mov r0, r5 - bl GetStringFromFileVeneer - mov r0, r5 - b _02024D30 -_02024CFC: - cmp r0, #3 - ldrne r0, _02024D40 @ =0x02099D50 - bne _02024D30 - ldr r1, _02024D44 @ =0x00000236 - add r0, sp, #0 - bl GetStringFromFileVeneer - ldr r1, _02024D38 @ =0x02099E08 - add r2, sp, #0 - mov r0, r5 - bl SprintfStatic - mov r0, r5 - b _02024D30 -_02024D2C: - ldr r0, _02024D40 @ =0x02099D50 -_02024D30: - add sp, sp, #0x40 - pop {r3, r4, r5, pc} - .align 2, 0 -_02024D38: .4byte 0x02099E08 -_02024D3C: .4byte 0x00000237 -_02024D40: .4byte 0x02099D50 -_02024D44: .4byte 0x00000236 - arm_func_end FUN_02024c6c - - arm_func_start FUN_02024d48 -FUN_02024d48: @ 0x02024D48 - push {r4, lr} - lsl r2, r1, #0x10 - mov r4, r0 - tst r1, #0xf0000 - lsr r1, r2, #0x10 - bne _02024D70 - and r1, r1, #0xff - bl thunk_FUN_0205a430 - mov r0, r4 - pop {r4, pc} -_02024D70: - ldr r0, _02024D78 @ =0x02099D50 - pop {r4, pc} - .align 2, 0 -_02024D78: .4byte 0x02099D50 - arm_func_end FUN_02024d48 - - arm_func_start FUN_02024d7c -FUN_02024d7c: @ 0x02024D7C - push {r4, lr} - lsl r2, r1, #0x10 - mov r4, r0 - lsr r2, r2, #0x10 - ands r0, r1, #0xf0000 - beq _02024DD4 - cmp r0, #0x10000 - bne _02024DEC - lsl r0, r2, #0x10 - asr r0, r0, #0x10 - bl GetMonsterGenderVeneer - cmp r0, #1 - beq _02024DC0 - cmp r0, #2 - beq _02024DC8 - cmp r0, #3 - b _02024DD0 -_02024DC0: - mov r2, #0 - b _02024DD4 -_02024DC8: - mov r2, #1 - b _02024DD4 -_02024DD0: - mov r2, #2 -_02024DD4: - ldr r1, _02024DF4 @ =0x022A5048 - mov r0, r4 - add r1, r1, r2, lsl #2 - bl Strcpy - mov r0, r4 - pop {r4, pc} -_02024DEC: - ldr r0, _02024DF8 @ =0x02099D50 - pop {r4, pc} - .align 2, 0 -_02024DF4: .4byte 0x022A5048 -_02024DF8: .4byte 0x02099D50 - arm_func_end FUN_02024d7c - - arm_func_start FUN_02024dfc -FUN_02024dfc: @ 0x02024DFC - push {r4, lr} - mov r4, r0 - bl GetCurrentBagCapacity - cmp r0, #2 - ldrlt r0, _02024E2C @ =0x000008E1 - ldrge r0, _02024E30 @ =0x000008E2 - lsl r1, r0, #0x10 - mov r0, r4 - lsr r1, r1, #0x10 - bl GetStringFromFileVeneer - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_02024E2C: .4byte 0x000008E1 -_02024E30: .4byte 0x000008E2 - arm_func_end FUN_02024dfc - - arm_func_start FUN_02024e34 -FUN_02024e34: @ 0x02024E34 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x44 - sub sp, sp, #0x400 - mov sl, r0 - ldr r0, _02024F94 @ =0x000001B1 - mov r4, r1 - bl StringFromMessageId - str r0, [sp] - ldr r0, _02024F98 @ =0x000001B2 - bl StringFromMessageId - ldr r1, _02024F9C @ =0x000029D1 - mov fp, r0 - cmp r4, r1 - blo _02024E94 - ldr r0, _02024FA0 @ =0x00002F49 - cmp r4, r0 - bhs _02024E94 - rsb r0, r1, #0 - add r0, r4, r0 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl GetItemMoveId16 - mov r5, r0 - b _02024E98 -_02024E94: - mov r5, #0 -_02024E98: - mov r0, sl - mov r1, #0x1b0 - bl GetStringFromFileVeneer - ldr r1, _02024FA4 @ =0x02099E18 - mov r0, sl - bl Strcat - cmp r5, #0 - beq _02024F78 - bl GetGameMode - cmp r0, #1 - ldrls sb, _02024FA8 @ =0x02099CA4 - mvn r4, #0 - ldrhi sb, _02024FAC @ =0x02099CC4 - b _02024F6C -_02024ED0: - ldrsh r6, [sb], #2 - mov r0, r6 - bl GetActorMatchingStorageId - mov r7, r0 - cmp r6, #0x16 - bne _02024EF4 - ldr r1, _02024FA4 @ =0x02099E18 - mov r0, sl - bl Strcat -_02024EF4: - cmp r7, r4 - beq _02024F6C - mov r0, r7 - bl GetTeamMember - ldrsh r8, [r0, #4] - bl FUN_0204e530 - cmp r0, #0 - bne _02024F2C - mov r0, r7 - bl GetActiveRosterIndex - cmp r0, r4 - beq _02024F2C - bl GetActiveTeamMember - ldrsh r8, [r0, #0xc] -_02024F2C: - add r0, sp, #4 - mov r1, r6 - bl FUN_02023dc0 - mov r0, r5 - mov r1, r8 - bl FUN_02053d1c - cmp r0, #0 - ldrne r3, [sp] - ldr r1, _02024FB0 @ =0x02099E20 - moveq r3, fp - add r0, sp, #0x44 - add r2, sp, #4 - bl SprintfStatic - mov r0, sl - add r1, sp, #0x44 - bl Strcat -_02024F6C: - ldrsh r0, [sb] - cmp r0, r4 - bne _02024ED0 -_02024F78: - ldr r1, _02024FB4 @ =0x02099E40 - mov r0, sl - bl Strcat - mov r0, sl - add sp, sp, #0x44 - add sp, sp, #0x400 - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02024F94: .4byte 0x000001B1 -_02024F98: .4byte 0x000001B2 -_02024F9C: .4byte 0x000029D1 -_02024FA0: .4byte 0x00002F49 -_02024FA4: .4byte 0x02099E18 -_02024FA8: .4byte 0x02099CA4 -_02024FAC: .4byte 0x02099CC4 -_02024FB0: .4byte 0x02099E20 -_02024FB4: .4byte 0x02099E40 - arm_func_end FUN_02024e34 - - arm_func_start FUN_02024fb8 -FUN_02024fb8: @ 0x02024FB8 - ldr r1, _02024FC4 @ =0x022A5468 - add r0, r1, r0, lsl #7 - bx lr - .align 2, 0 -_02024FC4: .4byte 0x022A5468 - arm_func_end FUN_02024fb8 - - arm_func_start FUN_02024fc8 -FUN_02024fc8: @ 0x02024FC8 - ldr r1, _02024FD4 @ =0x022A5068 - add r0, r1, r0, lsl #7 - bx lr - .align 2, 0 -_02024FD4: .4byte 0x022A5068 - arm_func_end FUN_02024fc8 - - arm_func_start GetDungeonResultString -GetDungeonResultString: @ 0x02024FD8 - ldr r1, _02024FE4 @ =0x022A5268 - add r0, r1, r0, lsl #7 - bx lr - .align 2, 0 -_02024FE4: .4byte 0x022A5268 - arm_func_end GetDungeonResultString - - arm_func_start FUN_02024fe8 -FUN_02024fe8: @ 0x02024FE8 - push {r3, r4, r5, lr} - cmp r1, #0 - beq _02025030 - mov r3, #0x14 - mul r3, r0, r3 - ldr lr, _02025070 @ =0x022A596A - ldrh r0, [r1] - ldr ip, _02025074 @ =0x022A5969 - add r4, lr, r3 - strh r0, [lr, r3] - ldrh lr, [r1, #2] - mov r0, #1 - add r5, ip, r3 - strh lr, [r4, #2] - ldrh r1, [r1, #4] - strh r1, [r4, #4] - strb r0, [ip, r3] - b _02025048 -_02025030: - mov r1, #0x14 - mul r3, r0, r1 - ldr r1, _02025074 @ =0x022A5969 - mov r0, #0 - strb r0, [r1, r3] - add r5, r1, r3 -_02025048: - cmp r2, #0 - moveq r0, #0 - beq _02025068 - ldr ip, _02025078 @ =0x022A5970 - ldm r2, {r0, r1, r2} - add r3, ip, r3 - stm r3, {r0, r1, r2} - mov r0, #1 -_02025068: - strb r0, [r5] - pop {r3, r4, r5, pc} - .align 2, 0 -_02025070: .4byte 0x022A596A -_02025074: .4byte 0x022A5969 -_02025078: .4byte 0x022A5970 - arm_func_end FUN_02024fe8 - - arm_func_start FUN_0202507c -FUN_0202507c: @ 0x0202507C - push {r3, lr} - mov r2, #0x14 - mul r3, r1, r2 - ldr r1, _020250D8 @ =0x022A5969 - ldrb r1, [r1, r3] - cmp r1, #0 - beq _020250BC - ldr r1, _020250DC @ =0x022A596A - ldr r2, _020250E0 @ =0x022A5970 - mov ip, #0 - add r1, r1, r3 - add r2, r2, r3 - mov r3, #1 - str ip, [sp] - bl FUN_0200d310 - pop {r3, pc} -_020250BC: - ldr r1, _020250DC @ =0x022A596A - mov r2, #0 - add r1, r1, r3 - mov r3, #1 - str r2, [sp] - bl FUN_0200d310 - pop {r3, pc} - .align 2, 0 -_020250D8: .4byte 0x022A5969 -_020250DC: .4byte 0x022A596A -_020250E0: .4byte 0x022A5970 - arm_func_end FUN_0202507c - - arm_func_start SetQuestionMarks -SetQuestionMarks: @ 0x020250E4 - mov r1, #0x3f - strb r1, [r0] - strb r1, [r0, #1] - strb r1, [r0, #2] - mov r1, #0 - strb r1, [r0, #3] - bx lr - arm_func_end SetQuestionMarks -_02025100: - ldrb r2, [r1], #1 - mov r3, r0 - strb r2, [r0], #1 - ldrb r2, [r3] - cmp r2, #0 - bne _02025100 - bx lr - - arm_func_start StrncpySimple -StrncpySimple: @ 0x0202511C - push {r3, lr} - mov ip, #0 - b _02025164 -_02025128: - ldrb r3, [r1], #1 - mov lr, r0 - strb r3, [r0], #1 - ldrb r3, [lr] - cmp r3, #0 - bne _02025160 - add ip, ip, #1 - mov r1, #0 - b _02025154 -_0202514C: - strb r1, [r0], #1 - add ip, ip, #1 -_02025154: - cmp ip, r2 - blt _0202514C - pop {r3, pc} -_02025160: - add ip, ip, #1 -_02025164: - cmp ip, r2 - blt _02025128 - pop {r3, pc} - arm_func_end StrncpySimple - - arm_func_start StrncpySimpleNoPad -StrncpySimpleNoPad: @ 0x02025170 - push {r3, lr} - mov ip, #0 - b _02025198 -_0202517C: - ldrb r3, [r1], #1 - mov lr, r0 - strb r3, [r0], #1 - ldrb r3, [lr] - cmp r3, #0 - popeq {r3, pc} - add ip, ip, #1 -_02025198: - cmp ip, r2 - blt _0202517C - mov r1, #0 - strb r1, [r0] - pop {r3, pc} - arm_func_end StrncpySimpleNoPad - - arm_func_start StrncmpSimple -StrncmpSimple: @ 0x020251AC - push {r3, lr} - mov lr, #0 -_020251B4: + b _022BD20C +_022BD1F4: ldrb ip, [r0, lr] ldrb r3, [r1, lr] - add lr, lr, #1 cmp ip, r3 - beq _020251D4 - mvnlo r0, #0 - movhs r0, #1 - pop {r3, pc} -_020251D4: - cmp ip, #0 - moveq r0, #0 - popeq {r3, pc} + movne r0, #0 + popne {r3, pc} + add lr, lr, #1 +_022BD20C: cmp lr, r2 - blt _020251B4 - mov r0, #0 + blt _022BD1F4 + mov r0, #1 pop {r3, pc} - arm_func_end StrncmpSimple + arm_func_end ov00_022BD1D4 - arm_func_start FUN_020251f0 -FUN_020251f0: @ 0x020251F0 - bx lr - arm_func_end FUN_020251f0 - - arm_func_start StrncpySimpleNoPadSafe -StrncpySimpleNoPadSafe: @ 0x020251F4 - mov ip, #0x20 - b _0202520C -_020251FC: - ldrb r3, [r1], #1 - cmp r3, #0x100 - strblo r3, [r0], #1 - strbhs ip, [r0], #1 -_0202520C: + arm_func_start ov00_022BD21C +ov00_022BD21C: @ 0x022BD21C + push {r3, lr} cmp r2, #0 - sub r2, r2, #1 - ble _02025224 - ldrb r3, [r1] - cmp r3, #0 - bne _020251FC -_02025224: - mov r1, #0 - strb r1, [r0] - bx lr - arm_func_end StrncpySimpleNoPadSafe - - arm_func_start SpecialStrcpy -SpecialStrcpy: @ 0x02025230 - push {r4, lr} - mov ip, #0 - mov r3, ip - b _020252FC -_02025240: - cmp r2, #0x7e - bne _020252F8 - ldrb lr, [r1] - ldrb r4, [r1, #1] - add r1, r1, #2 - cmp lr, #0x30 - blo _0202526C - cmp lr, #0x39 - subls r2, lr, #0x30 - andls lr, r2, #0xff - bls _020252A0 -_0202526C: - cmp lr, #0x61 - blo _02025284 - cmp lr, #0x66 - subls r2, lr, #0x6b - andls lr, r2, #0xff - bls _020252A0 -_02025284: - cmp lr, #0x41 - blo _0202529C - cmp lr, #0x46 - subls r2, lr, #0x4b - andls lr, r2, #0xff - bls _020252A0 -_0202529C: - mov lr, ip -_020252A0: - cmp r4, #0x30 - blo _020252B8 - cmp r4, #0x39 - subls r2, r4, #0x30 - andls r4, r2, #0xff - bls _020252EC -_020252B8: - cmp r4, #0x61 - blo _020252D0 - cmp r4, #0x66 - subls r2, r4, #0x6b - andls r4, r2, #0xff - bls _020252EC -_020252D0: - cmp r4, #0x41 - blo _020252E8 - cmp r4, #0x46 - subls r2, r4, #0x4b - andls r4, r2, #0xff - bls _020252EC -_020252E8: - mov r4, r3 -_020252EC: - orr r2, r4, lr, lsl #4 - strb r2, [r0], #1 - b _020252FC -_020252F8: - strb r2, [r0], #1 -_020252FC: - ldrb r2, [r1], #1 - cmp r2, #0 - bne _02025240 - mov r1, #0 - strb r1, [r0] - pop {r4, pc} - arm_func_end SpecialStrcpy - - arm_func_start FUN_02025314 -FUN_02025314: @ 0x02025314 - push {r3, r4, r5, lr} + movlt r2, #0 + blt _022BD234 + cmp r2, #0x10 + movgt r2, #0x10 +_022BD234: mov lr, #0 - mov ip, lr - b _020253F4 -_02025324: - ldrb r3, [r1], #1 - cmp r3, #0 - moveq r1, #0 - strbeq r1, [r0] - popeq {r3, r4, r5, pc} - cmp r3, #0x7e - bne _020253F0 - ldrb r4, [r1] - ldrb r5, [r1, #1] - add r1, r1, #2 - cmp r4, #0x30 - blo _02025364 - cmp r4, #0x39 - subls r3, r4, #0x30 - andls r4, r3, #0xff - bls _02025398 -_02025364: - cmp r4, #0x61 - blo _0202537C - cmp r4, #0x66 - subls r3, r4, #0x6b - andls r4, r3, #0xff - bls _02025398 -_0202537C: - cmp r4, #0x41 - blo _02025394 - cmp r4, #0x46 - subls r3, r4, #0x4b - andls r4, r3, #0xff - bls _02025398 -_02025394: - mov r4, lr -_02025398: - cmp r5, #0x30 - blo _020253B0 - cmp r5, #0x39 - subls r3, r5, #0x30 - andls r5, r3, #0xff - bls _020253E4 -_020253B0: - cmp r5, #0x61 - blo _020253C8 - cmp r5, #0x66 - subls r3, r5, #0x6b - andls r5, r3, #0xff - bls _020253E4 -_020253C8: - cmp r5, #0x41 - blo _020253E0 - cmp r5, #0x46 - subls r3, r5, #0x4b - andls r5, r3, #0xff - bls _020253E4 -_020253E0: - mov r5, ip -_020253E4: - orr r3, r5, r4, lsl #4 - strb r3, [r0], #1 - b _020253F4 -_020253F0: - strb r3, [r0], #1 -_020253F4: - cmp r2, #0 - sub r2, r2, #1 - bgt _02025324 - pop {r3, r4, r5, pc} - arm_func_end FUN_02025314 + b _022BD254 +_022BD23C: + ldr ip, [r0, lr, lsl #2] + ldr r3, [r1, lr, lsl #2] + cmp ip, r3 + movne r0, #0 + popne {r3, pc} + add lr, lr, #1 +_022BD254: + cmp lr, r2 + blt _022BD23C + mov r0, #1 + pop {r3, pc} + arm_func_end ov00_022BD21C - arm_func_start FUN_02025404 -FUN_02025404: @ 0x02025404 + arm_func_start ov00_022BD264 +ov00_022BD264: @ 0x022BD264 + ldr r1, _022BD270 @ =0x023187A0 + strb r0, [r1] + bx lr + .align 2, 0 +_022BD270: .4byte 0x023187A0 + arm_func_end ov00_022BD264 + + arm_func_start ov00_022BD274 +ov00_022BD274: @ 0x022BD274 + ldr r0, _022BD280 @ =0x023187A0 + ldrb r0, [r0] + bx lr + .align 2, 0 +_022BD280: .4byte 0x023187A0 + arm_func_end ov00_022BD274 + + arm_func_start ov00_022BD284 +ov00_022BD284: @ 0x022BD284 + cmp r0, #0x10 + ldrlo r1, _022BD2A0 @ =0x023187A0 + movhs r0, #0 + ldrlo r1, [r1, #0xc] + addlo r0, r1, r0 + ldrblo r0, [r0, #0x1a0] + bx lr + .align 2, 0 +_022BD2A0: .4byte 0x023187A0 + arm_func_end ov00_022BD284 + + arm_func_start ov00_022BD2A4 +ov00_022BD2A4: @ 0x022BD2A4 + cmp r0, #0x10 + ldrlo r2, _022BD2BC @ =0x023187A0 + ldrlo r2, [r2, #0xc] + addlo r0, r2, r0 + strblo r1, [r0, #0x1a0] + bx lr + .align 2, 0 +_022BD2BC: .4byte 0x023187A0 + arm_func_end ov00_022BD2A4 + + arm_func_start ov00_022BD2C0 +ov00_022BD2C0: @ 0x022BD2C0 + push {r3, lr} + cmp r0, #0x10 + movhs r0, #0 + pophs {r3, pc} + ldr r2, _022BD2F0 @ =0x023187A0 + mov r1, #0xc + ldr r2, [r2, #0xc] + add r2, r2, #0xe0 + mla r0, r1, r0, r2 + bl ov00_022DB1B4 + and r0, r0, #0xff + pop {r3, pc} + .align 2, 0 +_022BD2F0: .4byte 0x023187A0 + arm_func_end ov00_022BD2C0 + + arm_func_start ov00_022BD2F4 +ov00_022BD2F4: @ 0x022BD2F4 + push {r3, r4, r5, r6, r7, lr} + mov r7, #0 + ldr r5, _022BD334 @ =0x023187A0 + mov r6, r7 + mov r4, #0xc +_022BD308: + ldr r0, [r5, #0xc] + add r0, r0, #0xe0 + mla r0, r6, r4, r0 + bl ov00_022DB78C + cmp r0, #0 + add r6, r6, #1 + addne r7, r7, #1 + cmp r6, #0x10 + blt _022BD308 + mov r0, r7 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022BD334: .4byte 0x023187A0 + arm_func_end ov00_022BD2F4 + + arm_func_start ov00_022BD338 +ov00_022BD338: @ 0x022BD338 + push {r4, r5, r6, r7, r8, lr} + mov r5, #0 + ldr r8, _022BD394 @ =0x023187A0 + mov r4, r5 + mov r7, #0xc +_022BD34C: + mul r6, r4, r7 + ldr r0, [r8, #0xc] + add r0, r0, #0xe0 + add r0, r0, r6 + bl ov00_022DB78C + cmp r0, #0 + beq _022BD380 + ldr r0, [r8, #0xc] + add r0, r0, #0xe0 + add r0, r0, r6 + bl ov00_022DB1B4 + cmp r0, #0 + addne r5, r5, #1 +_022BD380: + add r4, r4, #1 + cmp r4, #0x10 + blt _022BD34C + mov r0, r5 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022BD394: .4byte 0x023187A0 + arm_func_end ov00_022BD338 +_022BD398: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xD4, 0xFF, 0xFF, 0xEB + .byte 0x10, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0xB3, 0x00, 0x00, 0xA0, 0xA3, 0xFF, 0x00, 0x00, 0xE2 + .byte 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov00_022BD3B4 +ov00_022BD3B4: @ 0x022BD3B4 + push {r4, lr} + ldr r1, _022BD3F0 @ =0x023187A0 + mov r4, r0 + ldr r0, [r1, #0xc] + mov r1, #0xa + add r0, r0, #0x40 + mla r0, r4, r1, r0 + bl FUN_02003250 + ldr r1, _022BD3F0 @ =0x023187A0 + mov r0, #0xc + ldr r1, [r1, #0xc] + add r1, r1, #0xe0 + mla r0, r4, r0, r1 + bl ov00_022E3680 + pop {r4, pc} + .align 2, 0 +_022BD3F0: .4byte 0x023187A0 + arm_func_end ov00_022BD3B4 + + arm_func_start ov00_022BD3F4 +ov00_022BD3F4: @ 0x022BD3F4 push {r4, r5, r6, lr} + ldr r5, _022BD438 @ =0x023187A0 + mov r6, #0 + mov r4, #0xc +_022BD404: + ldr r0, [r5, #0xc] + add r0, r0, #0xe0 + mla r0, r6, r4, r0 + bl ov00_022DB78C + cmp r0, #0 + beq _022BD428 + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + bl ov00_022BD3B4 +_022BD428: + add r6, r6, #1 + cmp r6, #0x10 + blt _022BD404 + pop {r4, r5, r6, pc} + .align 2, 0 +_022BD438: .4byte 0x023187A0 + arm_func_end ov00_022BD3F4 + + arm_func_start ov00_022BD43C +ov00_022BD43C: @ 0x022BD43C + push {r4, r5, r6, lr} + ldr r3, _022BD47C @ =0x023187A0 mov r6, r0 + ldr r0, [r3, #0xc] mov r5, r1 mov r4, r2 - b _02025424 -_02025418: - ldrb r0, [r5], #1 - bl FUN_02025480 - strh r0, [r6], #2 -_02025424: - cmp r4, #0 - sub r4, r4, #1 - ble _0202543C - ldrb r0, [r5] - cmp r0, #0 - bne _02025418 -_0202543C: - cmp r4, #0 - movgt r0, #0 - strhgt r0, [r6] - pop {r4, r5, r6, pc} - arm_func_end FUN_02025404 - - arm_func_start FUN_0202544c -FUN_0202544c: @ 0x0202544C - push {r3, r4, r5, lr} - sub sp, sp, #0x40 - mov r5, r0 - add r0, sp, #0 - mov r3, #1 - mov r4, r2 - bl FUN_0202568c - add r1, sp, #0 - mov r0, r5 - mov r2, r4 - bl FUN_02025314 - add sp, sp, #0x40 - pop {r3, r4, r5, pc} - arm_func_end FUN_0202544c - - arm_func_start FUN_02025480 -FUN_02025480: @ 0x02025480 - push {r3, lr} + bl ov00_022DB3E0 cmp r0, #0 moveq r0, #0 - popeq {r3, pc} - mov ip, #0 - mov lr, #0xdb - ldr r2, _020254F0 @ =0x0209A044 - b _020254C8 -_020254A0: - add r1, ip, lr - add r1, r1, r1, lsr #31 - asr r3, r1, #1 - lsl r1, r3, #2 - ldrh r1, [r2, r1] - cmp r1, r0 - moveq ip, r3 - beq _020254D0 - addlt ip, r3, #1 - movge lr, r3 -_020254C8: - cmp ip, lr - blt _020254A0 -_020254D0: - ldr r1, _020254F0 @ =0x0209A044 - lsl r2, ip, #2 - ldrh r1, [r1, r2] - cmp r1, r0 - ldreq r0, _020254F4 @ =0x0209A046 - ldrheq r0, [r0, r2] - movne r0, #0 - pop {r3, pc} - .align 2, 0 -_020254F0: .4byte 0x0209A044 -_020254F4: .4byte 0x0209A046 - arm_func_end FUN_02025480 - - arm_func_start FUN_020254f8 -FUN_020254f8: @ 0x020254F8 - cmp r0, #0 - moveq r0, #0 - bxeq lr - cmp r0, #0xa - moveq r0, #0xa - bxeq lr - mov ip, #0 - ldr r2, _02025548 @ =0x0209A044 - b _02025538 -_0202551C: - add r1, r2, ip, lsl #2 - ldrh r1, [r1, #2] - lsl r3, ip, #2 - cmp r0, r1 - ldrheq r0, [r2, r3] - bxeq lr - add ip, ip, #1 -_02025538: - cmp ip, #0xdc - blt _0202551C - mov r0, #0 - bx lr - .align 2, 0 -_02025548: .4byte 0x0209A044 - arm_func_end FUN_020254f8 - - arm_func_start FUN_0202554c -FUN_0202554c: @ 0x0202554C - push {r3, lr} - cmp r0, #0 - moveq r0, #0 - popeq {r3, pc} - cmp r0, #0xa - moveq r0, #0xa - popeq {r3, pc} - mov lr, #0 - ldr ip, _020255CC @ =0x000001BE - ldr r2, _020255D0 @ =0x0209A3B4 - b _020255A4 -_02025578: - add r1, lr, ip - add r1, r1, r1, lsr #31 - asr r3, r1, #1 - lsl r1, r3, #2 - ldrh r1, [r2, r1] - cmp r0, r1 - moveq lr, r3 - beq _020255AC - cmp r1, r0 - addlo lr, r3, #1 - movhs ip, r3 -_020255A4: - cmp lr, ip - blt _02025578 -_020255AC: - ldr r1, _020255D0 @ =0x0209A3B4 - lsl r2, lr, #2 - ldrh r1, [r1, r2] - cmp r0, r1 - ldreq r0, _020255D4 @ =0x0209A3B6 - ldrheq r0, [r0, r2] - movne r0, #0x3f - pop {r3, pc} - .align 2, 0 -_020255CC: .4byte 0x000001BE -_020255D0: .4byte 0x0209A3B4 -_020255D4: .4byte 0x0209A3B6 - arm_func_end FUN_0202554c - - arm_func_start FUN_020255d8 -FUN_020255d8: @ 0x020255D8 - push {r3, r4, r5, lr} - mov r5, r0 - str r1, [sp] - add r4, sp, #0 - b _020255FC -_020255EC: - mov r0, r4 - bl FUN_0202065c - bl FUN_02025480 - strh r0, [r5], #2 -_020255FC: - ldr r0, [sp] - ldrb r0, [r0] - cmp r0, #0 - bne _020255EC - mov r1, #0 - mov r0, r5 - strh r1, [r5] - pop {r3, r4, r5, pc} - arm_func_end FUN_020255d8 - - arm_func_start FUN_0202561c -FUN_0202561c: @ 0x0202561C - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #4 - mov r4, r0 - mov r8, r2 - mov r7, r3 - str r1, [sp] - mov r6, #0 - add r5, sp, #0 - b _02025654 -_02025640: - mov r0, r5 - bl FUN_0202065c - bl FUN_02025480 - strh r0, [r4], #2 - add r6, r6, #1 -_02025654: - ldr r0, [sp] - ldrb r0, [r0] - cmp r0, #0 - beq _0202566C - cmp r6, r8 - blt _02025640 -_0202566C: - cmp r7, #0 - beq _02025680 - cmp r6, r8 - movlt r0, #0 - strhlt r0, [r4] -_02025680: - mov r0, r4 - add sp, sp, #4 - pop {r3, r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0202561c - - arm_func_start FUN_0202568c -FUN_0202568c: @ 0x0202568C - push {r4, r5, r6, r7, r8, lr} - mov r4, r0 - mov r8, r1 - mov r7, r2 - mov r6, r3 - mov r5, #0 - b _020256CC -_020256A8: - bl FUN_020254f8 - ands r1, r0, #0xff00 - asrne r1, r1, #8 - strbne r1, [r4] - strbne r0, [r4, #1] - addne r4, r4, #2 - strbeq r0, [r4], #1 - add r8, r8, #2 - add r5, r5, #1 -_020256CC: - ldrh r0, [r8] - cmp r0, #0 - beq _020256E0 - cmp r5, r7 - blt _020256A8 -_020256E0: - cmp r6, #0 - beq _020256F4 - cmp r5, r7 - movlt r0, #0 - strblt r0, [r4] -_020256F4: - mov r0, r4 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0202568c - - arm_func_start FUN_020256fc -FUN_020256fc: @ 0x020256FC - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sl, r0 - mov sb, r1 - mov r8, r2 - mov r7, #0 - mov r5, #0x81 - mov r4, #0x48 - ldr fp, _02025780 @ =0x000081A1 - b _02025764 -_02025720: - bl FUN_0202554c - mov r6, r0 - bl FUN_02025c7c - ldrh r0, [r0] - cmp r0, fp - strbeq r5, [sl] - strbeq r4, [sl, #1] - addeq sl, sl, #2 - beq _0202575C - ands r0, r6, #0xff00 - asrne r0, r0, #8 - strbne r0, [sl] - strbne r6, [sl, #1] - addne sl, sl, #2 - strbeq r6, [sl], #1 -_0202575C: - add sb, sb, #2 - add r7, r7, #1 -_02025764: - ldrh r0, [sb] - cmp r0, #0 - beq _02025778 - cmp r7, r8 - blt _02025720 -_02025778: - mov r0, sl - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02025780: .4byte 0x000081A1 - arm_func_end FUN_020256fc -_02025784: - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start GetStringFromFile -GetStringFromFile: @ 0x02025788 - push {r3, r4, r5, lr} - sub sp, sp, #8 - mov r4, r1 - mov r5, r0 - bl DataTransferInit - sub r0, r4, #1 - lsl r1, r0, #0x10 - ldr r0, _020257F8 @ =0x022A59C0 - lsr r1, r1, #0xe - mov r2, #0 - bl FileSeek - ldr r0, _020257F8 @ =0x022A59C0 - add r1, sp, #0 - mov r2, #8 - bl FileRead - ldr r1, [sp] - ldr r0, _020257F8 @ =0x022A59C0 - mov r2, #0 - bl FileSeek - ldr r3, [sp, #4] - ldr r2, [sp] - ldr r0, _020257F8 @ =0x022A59C0 + popeq {r4, r5, r6, pc} + mov r0, r6 mov r1, r5 - sub r2, r3, r2 - bl FileRead - bl DataTransferStop - add sp, sp, #8 - pop {r3, r4, r5, pc} + mov r2, r4 + bl ov00_022DBA1C + mov r0, #1 + pop {r4, r5, r6, pc} .align 2, 0 -_020257F8: .4byte 0x022A59C0 - arm_func_end GetStringFromFile +_022BD47C: .4byte 0x023187A0 + arm_func_end ov00_022BD43C - arm_func_start FUN_020257fc -FUN_020257fc: @ 0x020257FC - push {r3, lr} - ldr r0, _02025814 @ =0x022A59B8 - mov r1, #8 - bl MemZero - bl LoadStringFile - pop {r3, pc} + arm_func_start ov00_022BD480 +ov00_022BD480: @ 0x022BD480 + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr r2, _022BD4CC @ =0x0231D420 + mov r1, #0 + strb r1, [r2, #2] + ldr r0, _022BD4D0 @ =0x022BE058 + strb r1, [r2] + bl ov00_022E3714 + mov r0, #0 + ldr r1, _022BD4D4 @ =0x022BE044 + mov r2, r0 + stm sp, {r0, r1} + ldr r1, _022BD4D8 @ =0x022BE020 + mov r3, r0 + str r0, [sp, #8] + bl ov00_022E1E0C + and r0, r0, #0xff + add sp, sp, #0xc + ldm sp!, {pc} .align 2, 0 -_02025814: .4byte 0x022A59B8 - arm_func_end FUN_020257fc +_022BD4CC: .4byte 0x0231D420 +_022BD4D0: .4byte 0x022BE058 +_022BD4D4: .4byte 0x022BE044 +_022BD4D8: .4byte 0x022BE020 + arm_func_end ov00_022BD480 - arm_func_start LoadStringFile -LoadStringFile: @ 0x02025818 - push {r4, lr} - bl GetLanguage - ldr r1, _0202587C @ =0x020AFCEC - mov r4, r0 - ldrsb r0, [r1] - cmp r0, r4 - popeq {r4, pc} - bl DataTransferInit - ldr r1, _0202587C @ =0x020AFCEC - mvn r0, #0 - ldrsb r1, [r1] - cmp r1, r0 - beq _02025854 - ldr r0, _02025880 @ =0x022A59C0 - bl FileClose -_02025854: - ldr r1, _0202587C @ =0x020AFCEC - ldr r0, _02025880 @ =0x022A59C0 - strb r4, [r1] - bl FileInitVeneer - ldr r1, _02025884 @ =0x020AFCF0 - ldr r0, _02025880 @ =0x022A59C0 - ldr r1, [r1, r4, lsl #2] - bl FileOpen - bl DataTransferStop - pop {r4, pc} - .align 2, 0 -_0202587C: .4byte 0x020AFCEC -_02025880: .4byte 0x022A59C0 -_02025884: .4byte 0x020AFCF0 - arm_func_end LoadStringFile - - arm_func_start FUN_02025888 -FUN_02025888: @ 0x02025888 - ldr r1, _020258B0 @ =0x022A59B8 - ldr r0, _020258B4 @ =0x022A5A08 - ldrh r3, [r1, #4] - add r2, r3, #1 - strh r2, [r1, #4] - ldrh r2, [r1, #4] - add r0, r0, r3, lsl #10 - and r2, r2, #7 - strh r2, [r1, #4] + arm_func_start ov00_022BD4DC +ov00_022BD4DC: @ 0x022BD4DC + ldr r0, _022BD4E8 @ =0x0231D420 + ldrb r0, [r0, #2] bx lr .align 2, 0 -_020258B0: .4byte 0x022A59B8 -_020258B4: .4byte 0x022A5A08 - arm_func_end FUN_02025888 +_022BD4E8: .4byte 0x0231D420 + arm_func_end ov00_022BD4DC - arm_func_start GetStringFromFileVeneer -GetStringFromFileVeneer: @ 0x020258B8 - ldr ip, _020258C0 @ =GetStringFromFile + arm_func_start ov00_022BD4EC +ov00_022BD4EC: @ 0x022BD4EC + push {r3, r4, r5, lr} + ldr r0, _022BD570 @ =0x023187A0 + mov r1, #0x36 + ldr r0, [r0, #0xc] + add r0, r0, #0x1b0 + bl FUN_02003250 + ldr r1, _022BD570 @ =0x023187A0 + ldr r3, _022BD574 @ =0x00003FFF + ldr r0, [r1, #0xc] + mov r4, #0 + add r0, r0, #0x100 + strh r3, [r0, #0xe6] + ldr r0, [r1, #0xc] + mov r2, #1 + add r0, r0, #0x100 + strh r3, [r0, #0xe8] + ldr r0, [r1, #0xc] + mov r5, r4 + strb r2, [r0, #0x1ea] + ldr r0, [r1, #0xc] + strb r2, [r0, #0x1eb] + ldr r0, [r1, #0xc] + strb r2, [r0, #0x1ec] + ldr r0, [r1, #0xc] + strb r4, [r0, #0x1ed] +_022BD550: + lsl r0, r4, #0x10 + mov r1, r5 + lsr r0, r0, #0x10 + bl ov00_022BD2A4 + add r4, r4, #1 + cmp r4, #0x10 + blt _022BD550 + pop {r3, r4, r5, pc} + .align 2, 0 +_022BD570: .4byte 0x023187A0 +_022BD574: .4byte 0x00003FFF + arm_func_end ov00_022BD4EC +_022BD578: + .byte 0x1C, 0x10, 0x9F, 0xE5, 0x27, 0x20, 0xA0, 0xE3 + .byte 0x0C, 0x10, 0x91, 0xE5, 0x1A, 0x3E, 0x81, 0xE2, 0xB2, 0x10, 0xD3, 0xE0, 0x01, 0x20, 0x52, 0xE2 + .byte 0xB2, 0x10, 0xC0, 0xE0, 0xFB, 0xFF, 0xFF, 0x1A, 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0x87, 0x31, 0x02 + .byte 0x1C, 0x10, 0x9F, 0xE5, 0x27, 0x20, 0xA0, 0xE3, 0x0C, 0x10, 0x91, 0xE5, 0x1A, 0x3E, 0x81, 0xE2 + .byte 0xB2, 0x10, 0xD0, 0xE0, 0x01, 0x20, 0x52, 0xE2, 0xB2, 0x10, 0xC3, 0xE0, 0xFB, 0xFF, 0xFF, 0x1A + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0x87, 0x31, 0x02 + + arm_func_start ov00_022BD5C8 +ov00_022BD5C8: @ 0x022BD5C8 + ldr r0, _022BD5E8 @ =0x023187A0 + ldr r0, [r0, #0xc] + ldrb r0, [r0, #0x1b0] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + and r0, r0, #0xff + bx lr + .align 2, 0 +_022BD5E8: .4byte 0x023187A0 + arm_func_end ov00_022BD5C8 + + arm_func_start ov00_022BD5EC +ov00_022BD5EC: @ 0x022BD5EC + ldr r0, _022BD5FC @ =0x023187A0 + ldr r0, [r0, #0xc] + add r0, r0, #0x1b0 + bx lr + .align 2, 0 +_022BD5FC: .4byte 0x023187A0 + arm_func_end ov00_022BD5EC +_022BD600: + .byte 0x20, 0x00, 0x9F, 0xE5, 0x20, 0x10, 0x9F, 0xE5, 0x0C, 0x00, 0x90, 0xE5, 0x01, 0x0C, 0x80, 0xE2 + .byte 0xB6, 0x0E, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x01, 0x00, 0xA0, 0x33, 0x00, 0x00, 0xA0, 0x23 + .byte 0xFF, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0x87, 0x31, 0x02, 0x10, 0x27, 0x00, 0x00 + .byte 0x0C, 0x00, 0x9F, 0xE5, 0x0C, 0x00, 0x90, 0xE5, 0x01, 0x0C, 0x80, 0xE2, 0xB6, 0x0E, 0xD0, 0xE1 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0x87, 0x31, 0x02, 0x0C, 0x10, 0x9F, 0xE5, 0x0C, 0x10, 0x91, 0xE5 + .byte 0x01, 0x1C, 0x81, 0xE2, 0xB6, 0x0E, 0xC1, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0x87, 0x31, 0x02 + + arm_func_start ov00_022BD660 +ov00_022BD660: @ 0x022BD660 + ldr r0, _022BD688 @ =0x023187A0 + ldr r1, _022BD68C @ =0x00002710 + ldr r0, [r0, #0xc] + add r0, r0, #0x100 + ldrh r0, [r0, #0xe8] + cmp r0, r1 + movlo r0, #1 + movhs r0, #0 + and r0, r0, #0xff + bx lr + .align 2, 0 +_022BD688: .4byte 0x023187A0 +_022BD68C: .4byte 0x00002710 + arm_func_end ov00_022BD660 + + arm_func_start ov00_022BD690 +ov00_022BD690: @ 0x022BD690 + ldr r0, _022BD6A4 @ =0x023187A0 + ldr r0, [r0, #0xc] + add r0, r0, #0x100 + ldrh r0, [r0, #0xe8] + bx lr + .align 2, 0 +_022BD6A4: .4byte 0x023187A0 + arm_func_end ov00_022BD690 +_022BD6A8: + .byte 0x0C, 0x10, 0x9F, 0xE5, 0x0C, 0x10, 0x91, 0xE5 + .byte 0x01, 0x1C, 0x81, 0xE2, 0xB8, 0x0E, 0xC1, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0x87, 0x31, 0x02 + .byte 0x10, 0x00, 0x9F, 0xE5, 0x10, 0x10, 0x9F, 0xE5, 0x0C, 0x00, 0x90, 0xE5, 0x01, 0x0C, 0x80, 0xE2 + .byte 0xB8, 0x1E, 0xC0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0x87, 0x31, 0x02, 0xFF, 0x3F, 0x00, 0x00 + + arm_func_start ov00_022BD6E0 +ov00_022BD6E0: @ 0x022BD6E0 + ldr r0, _022BD6F0 @ =0x023187A0 + ldr r0, [r0, #0xc] + ldrb r0, [r0, #0x1ea] + bx lr + .align 2, 0 +_022BD6F0: .4byte 0x023187A0 + arm_func_end ov00_022BD6E0 + + arm_func_start ov00_022BD6F4 +ov00_022BD6F4: @ 0x022BD6F4 + ldr r0, _022BD704 @ =0x023187A0 + ldr r0, [r0, #0xc] + ldrb r0, [r0, #0x1eb] + bx lr + .align 2, 0 +_022BD704: .4byte 0x023187A0 + arm_func_end ov00_022BD6F4 + + arm_func_start ov00_022BD708 +ov00_022BD708: @ 0x022BD708 + ldr r0, _022BD718 @ =0x023187A0 + ldr r0, [r0, #0xc] + ldrb r0, [r0, #0x1ec] + bx lr + .align 2, 0 +_022BD718: .4byte 0x023187A0 + arm_func_end ov00_022BD708 + + arm_func_start ov00_022BD71C +ov00_022BD71C: @ 0x022BD71C + ldr r0, _022BD72C @ =0x023187A0 + ldr r0, [r0, #0xc] + ldrb r0, [r0, #0x1ed] + bx lr + .align 2, 0 +_022BD72C: .4byte 0x023187A0 + arm_func_end ov00_022BD71C +_022BD730: + .byte 0x08, 0x10, 0x9F, 0xE5, 0x0C, 0x10, 0x91, 0xE5, 0xEA, 0x01, 0xC1, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xA0, 0x87, 0x31, 0x02, 0x08, 0x10, 0x9F, 0xE5, 0x0C, 0x10, 0x91, 0xE5, 0xEB, 0x01, 0xC1, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0x87, 0x31, 0x02, 0x08, 0x10, 0x9F, 0xE5, 0x0C, 0x10, 0x91, 0xE5 + .byte 0xEC, 0x01, 0xC1, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0x87, 0x31, 0x02, 0x08, 0x10, 0x9F, 0xE5 + .byte 0x0C, 0x10, 0x91, 0xE5, 0xED, 0x01, 0xC1, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0x87, 0x31, 0x02 + + arm_func_start ov00_022BD780 +ov00_022BD780: @ 0x022BD780 + ldr r0, _022BD790 @ =0x023187A0 + ldr ip, _022BD794 @ =FUN_022DB914 + ldr r0, [r0, #0xc] bx ip .align 2, 0 -_020258C0: .4byte GetStringFromFile - arm_func_end GetStringFromFileVeneer +_022BD790: .4byte 0x023187A0 +_022BD794: .4byte FUN_022DB914 + arm_func_end ov00_022BD780 - arm_func_start StringFromMessageId -StringFromMessageId: @ 0x020258C4 - push {r4, lr} - mov r4, r0 - bl FUN_02025888 - mov r1, r4 - mov r4, r0 - bl GetStringFromFile - mov r0, r4 - pop {r4, pc} - arm_func_end StringFromMessageId - - arm_func_start FUN_020258e4 -FUN_020258e4: @ 0x020258E4 - push {r4, lr} - sub sp, sp, #0x400 - mov r4, r0 - add r0, sp, #0 - bl GetStringFromFile - add r1, sp, #0 - mov r0, r4 - bl Strcpy - add sp, sp, #0x400 - pop {r4, pc} - arm_func_end FUN_020258e4 - - arm_func_start CopyStringFromMessageId -CopyStringFromMessageId: @ 0x0202590C - push {r3, r4, r5, lr} - sub sp, sp, #0x400 - mov r5, r0 - add r0, sp, #0 - mov r4, r2 - bl GetStringFromFile - add r1, sp, #0 - mov r0, r5 - mov r2, r4 - bl Strncpy - add sp, sp, #0x400 - pop {r3, r4, r5, pc} - arm_func_end CopyStringFromMessageId - - arm_func_start LoadTblTalk -LoadTblTalk: @ 0x0202593C + arm_func_start ov00_022BD798 +ov00_022BD798: @ 0x022BD798 push {r3, lr} - bl DataTransferInit - ldr r0, _02025980 @ =0x022A7A0C - bl FileInitVeneer - ldr r0, _02025980 @ =0x022A7A0C - ldr r1, _02025984 @ =0x0209AAD8 - bl FileOpen - ldr r0, _02025980 @ =0x022A7A0C - mov r1, #0x33c - mov r2, #0 - bl FileSeek - ldr r0, _02025980 @ =0x022A7A0C - ldr r1, _02025988 @ =0x022A7A08 - mov r2, #2 - bl FileRead - bl DataTransferStop - pop {r3, pc} - .align 2, 0 -_02025980: .4byte 0x022A7A0C -_02025984: .4byte 0x0209AAD8 -_02025988: .4byte 0x022A7A08 - arm_func_end LoadTblTalk - - arm_func_start GetTalkLine -GetTalkLine: @ 0x0202598C - push {r3, r4, r5, r6, lr} - sub sp, sp, #0x6c - ldr r3, _02025AC4 @ =0x000004B8 - mov r6, r0 - cmp r6, r3 - addne r0, r3, #0x1b - mov r5, r1 - mov r4, r2 - cmpne r6, r0 - bne _020259BC - cmp r4, #2 - moveq r4, #0 -_020259BC: - bl DataTransferInit - ldr r1, _02025AC8 @ =0x022A7A08 - ldr r0, _02025ACC @ =0x022A7A0C - ldrsh r1, [r1] - mov r2, #0 - add r1, r1, r6 - bl FileSeek - ldr r0, _02025ACC @ =0x022A7A0C - add r1, sp, #0 - mov r2, #1 - bl FileRead - ldrsb r2, [sp] - cmp r2, #0 - bge _02025A00 - bl DataTransferStop - ldr r0, _02025AD0 @ =0x00003EFD - b _02025ABC -_02025A00: - mov r0, #6 - mla r1, r2, r0, r5 - ldr r0, _02025ACC @ =0x022A7A0C - lsl r1, r1, #1 - mov r2, #0 - bl FileSeek - ldr r0, _02025ACC @ =0x022A7A0C - add r1, sp, #2 - mov r2, #4 - bl FileRead - ldrsh r1, [sp, #2] - ldrsh r0, [sp, #4] - subs r6, r0, r1 - bne _02025A44 - bl DataTransferStop - ldr r0, _02025AD0 @ =0x00003EFD - b _02025ABC -_02025A44: - ldr r0, _02025ACC @ =0x022A7A0C - mov r2, #0 - bl FileSeek - ldr r0, _02025ACC @ =0x022A7A0C - add r1, sp, #6 - mov r2, r6 - bl FileRead - cmp r4, #1 - bne _02025A78 + ldr r0, _022BD7B4 @ =0x0231D42C + bl ov00_022E05B0 mov r0, #2 - bl RandInt - mov r4, r0 - b _02025A90 -_02025A78: - cmp r4, #2 - moveq r4, #2 - beq _02025A90 - lsr r0, r6, #1 - bl RandInt - mov r4, r0 -_02025A90: - bl DataTransferStop - ldr r2, _02025AD4 @ =0x020AFCF8 - lsl r3, r5, #1 - add r0, sp, #6 - lsl r1, r4, #1 - ldrh r2, [r2, r3] - ldrsh r0, [r0, r1] - add r0, r2, r0 - lsl r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldreq r0, _02025AD0 @ =0x00003EFD -_02025ABC: - add sp, sp, #0x6c - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_02025AC4: .4byte 0x000004B8 -_02025AC8: .4byte 0x022A7A08 -_02025ACC: .4byte 0x022A7A0C -_02025AD0: .4byte 0x00003EFD -_02025AD4: .4byte 0x020AFCF8 - arm_func_end GetTalkLine - - arm_func_start FUN_02025ad8 -FUN_02025ad8: @ 0x02025AD8 - push {r3, lr} - sub sp, sp, #8 - ldr r1, _02025B6C @ =0x0209ABF0 - add r0, sp, #0 - mov r2, #1 - bl LoadFileFromRom - ldr r0, [sp] - ldr r2, _02025B70 @ =0x022A7A54 - add r3, r0, #4 - str r0, [r2, #0x10] - str r3, [r2] - ldr r1, _02025B74 @ =0x0209AC04 - add r0, sp, #0 - mov r2, #1 - bl LoadFileFromRom - ldr r0, [sp] - ldr r2, _02025B70 @ =0x022A7A54 - add r3, r0, #4 - str r0, [r2, #0x14] - str r3, [r2, #4] - ldr r1, _02025B78 @ =0x0209AC18 - add r0, sp, #0 - mov r2, #1 - bl LoadFileFromRom - ldr r0, [sp] - ldr r1, _02025B7C @ =0x020AFD04 - mov r2, #0 - str r0, [r1, #0xc] - str r2, [r1, #8] - ldr r0, _02025B70 @ =0x022A7A54 - mov r2, #0xb - str r2, [r0, #8] - str r2, [r0, #0xc] - mov r0, #1 - strb r0, [r1] - add sp, sp, #8 + bl ov00_022E05C8 + bl ov00_022E0618 pop {r3, pc} .align 2, 0 -_02025B6C: .4byte 0x0209ABF0 -_02025B70: .4byte 0x022A7A54 -_02025B74: .4byte 0x0209AC04 -_02025B78: .4byte 0x0209AC18 -_02025B7C: .4byte 0x020AFD04 - arm_func_end FUN_02025ad8 -_02025B80: - .byte 0x04, 0x10, 0x9F, 0xE5, 0x08, 0x00, 0x81, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xFD, 0x0A, 0x02 - .byte 0x10, 0x40, 0x2D, 0xE9, 0x40, 0xD0, 0x4D, 0xE2, 0x60, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x04, 0x21, 0x91, 0xE7, 0x58, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x8D, 0xE2, 0x74, 0x8E, 0x01, 0xEB - .byte 0x00, 0x00, 0x8D, 0xE2, 0xAE, 0x05, 0x00, 0xEB, 0x48, 0x00, 0x9F, 0xE5, 0x0C, 0x10, 0x90, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x04, 0x10, 0x80, 0x15, 0x3C, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x8D, 0xE2 - .byte 0x04, 0x21, 0x91, 0xE7, 0x28, 0x10, 0x9F, 0xE5, 0x69, 0x8E, 0x01, 0xEB, 0x2C, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0x8D, 0xE2, 0x01, 0x20, 0xA0, 0xE3, 0x13, 0x8C, 0xFF, 0xEB, 0x14, 0x00, 0x9F, 0xE5 - .byte 0x10, 0x10, 0x90, 0xE5, 0x0C, 0x10, 0x80, 0xE5, 0x40, 0xD0, 0x8D, 0xE2, 0x10, 0x80, 0xBD, 0xE8 - .byte 0x34, 0xFD, 0x0A, 0x02, 0x2C, 0xAC, 0x09, 0x02, 0x04, 0xFD, 0x0A, 0x02, 0x1C, 0xFD, 0x0A, 0x02 - .byte 0x14, 0xFD, 0x0A, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x50, 0x00, 0x9F, 0xE5, 0x10, 0x00, 0x90, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x44, 0x00, 0x9F, 0xE5, 0xE8, 0x8B, 0xFF, 0xEB - .byte 0x38, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x10, 0x20, 0x81, 0xE5, 0x34, 0x00, 0x9F, 0xE5 - .byte 0x14, 0x20, 0x81, 0xE5, 0x8A, 0x05, 0x00, 0xEB, 0x20, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0x90, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x0C, 0x10, 0x80, 0x15, 0x10, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x04, 0x10, 0x80, 0xE5, 0x41, 0x05, 0x00, 0xEB, 0xC8, 0x05, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 - .byte 0x04, 0xFD, 0x0A, 0x02, 0x14, 0xFD, 0x0A, 0x02, 0x38, 0xAC, 0x09, 0x02 +_022BD7B4: .4byte 0x0231D42C + arm_func_end ov00_022BD798 - arm_func_start FUN_02025c7c -FUN_02025c7c: @ 0x02025C7C - push {r4, lr} - ldr r1, _02025D3C @ =0x020AFD04 - ldr r2, _02025D40 @ =0x022A7A54 - ldr r4, [r1, #8] - cmp r0, #0xf800 - ldr r1, [r2, r4, lsl #2] - blo _02025CCC - ldr r2, _02025D44 @ =0x0000FFFF - cmp r0, r2 - bhs _02025CCC - and r2, r0, #0xff00 - and r3, r0, #0xff - asr r0, r2, #8 - sub r3, r3, #0x20 - sub r2, r0, #0xf8 - mov r0, #0xe0 - mla r3, r2, r0, r3 - mov r0, #0x1c - mla r1, r3, r0, r1 - b _02025D34 -_02025CCC: - ldr r3, _02025D48 @ =0x022A7A64 - mov r2, #0 - ldr r3, [r3, r4, lsl #2] - mov ip, #0x1c - ldr r3, [r3] - sub r4, r3, #1 - b _02025D14 -_02025CE8: - add r3, r2, r4 - add r3, r3, r3, lsr #31 - asr lr, r3, #1 - mul r3, lr, ip - ldrh r3, [r1, r3] - cmp r0, r3 - moveq r2, lr - beq _02025D1C - cmp r3, r0 - addlo r2, lr, #1 - movhs r4, lr -_02025D14: - cmp r2, r4 - blt _02025CE8 -_02025D1C: - mov r3, #0x1c - mul r3, r2, r3 - ldrh r2, [r1, r3] - add r1, r1, r3 - cmp r2, r0 - ldrne r1, _02025D4C @ =0x0209AB60 -_02025D34: - mov r0, r1 - pop {r4, pc} - .align 2, 0 -_02025D3C: .4byte 0x020AFD04 -_02025D40: .4byte 0x022A7A54 -_02025D44: .4byte 0x0000FFFF -_02025D48: .4byte 0x022A7A64 -_02025D4C: .4byte 0x0209AB60 - arm_func_end FUN_02025c7c - - arm_func_start FUN_02025d50 -FUN_02025d50: @ 0x02025D50 - push {r3, r4, r5, r6, r7, lr} - ldr ip, [sp, #0x18] - mov r7, r0 - mov r6, r1 - mov r5, r2 - mov r4, r3 - str ip, [sp] - bl FUN_01FF905C - mov ip, #0x13 - mov r0, r7 - mov r1, r6 - mov r3, r4 - add r2, r5, #1 - str ip, [sp] - bl FUN_01FF905C - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_02025d50 - - arm_func_start FUN_02025d90 -FUN_02025d90: @ 0x02025D90 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr r4, [sp, #0x28] - mov sl, r1 - mov sb, r2 - mov fp, r0 - add r6, sl, r3 - add r7, sb, r4 - ldr r8, [sp, #0x2c] - b _02025E78 -_02025DB4: - mov r0, fp - mov r5, sl - bl FUN_020275f8 - mov r4, r0 - mov r0, fp - bl FUN_0202760c - cmp sb, #0 - blt _02025E74 - ldrb r1, [r4, #7] - cmp sb, r1, lsl #3 - bge _02025E74 - ldrb r2, [r4, #6] - mov r1, r6 - cmp sl, #0 - lsl r3, r2, #3 - bge _02025E00 - cmp r6, #0 - blt _02025E74 - mov r5, #0 -_02025E00: - cmp r6, r3 - blt _02025E14 - cmp r5, r3 - bge _02025E74 - sub r1, r3, #1 -_02025E14: - asr r3, sb, #2 - add r3, sb, r3, lsr #29 - asr r3, r3, #3 - mul r4, r3, r2 - lsr r3, sb, #0x1f - rsb r2, r3, sb, lsl #29 - add r2, r3, r2, ror #29 - add r2, r2, r4, lsl #3 - add r2, r0, r2, lsl #3 - and r0, r8, #0xff - b _02025E6C -_02025E40: - lsr r4, r5, #0x1f - asr ip, r5, #2 - rsb r3, r4, r5, lsl #29 - add ip, r5, ip, lsr #29 - add r4, r4, r3, ror #29 - asr r3, ip, #3 - add r4, r4, r3, lsl #6 - ldrb r3, [r2, r4] - add r5, r5, #1 - cmp r3, #0 - strbeq r0, [r2, r4] -_02025E6C: - cmp r5, r1 - ble _02025E40 -_02025E74: - add sb, sb, #1 -_02025E78: - cmp sb, r7 - blt _02025DB4 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_02025d90 - - arm_func_start FUN_02025e84 -FUN_02025e84: @ 0x02025E84 - push {r3, r4, r5, r6, lr} - sub sp, sp, #0x54 - ldr r4, _02025EE4 @ =0x0209AB9C - add lr, sp, #0 - mov r6, r0 - mov r5, r1 - mov ip, #5 -_02025EA0: - ldm r4!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _02025EA0 - ldr r1, [r4] - mov r0, #0x17 - str r1, [lr] - strb r5, [r6] - str r0, [r6, #0x110] - mov r3, #0x13 - add r1, sp, #0 - mov r2, r6 - add r0, r6, #4 - str r3, [r6, #0x114] - bl FUN_02020a9c - add sp, sp, #0x54 - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_02025EE4: .4byte 0x0209AB9C - arm_func_end FUN_02025e84 - - arm_func_start FUN_02025ee8 -FUN_02025ee8: @ 0x02025EE8 + arm_func_start ov00_022BD7B8 +ov00_022BD7B8: @ 0x022BD7B8 push {r3, lr} - add r1, sp, #0 - mov r0, #0 - bl GetPressedButtons - ldrh r0, [sp] - tst r0, #3 + bl ov00_022E0780 + bl ov00_022E0728 + cmp r0, #0 movne r0, #1 moveq r0, #0 and r0, r0, #0xff pop {r3, pc} - arm_func_end FUN_02025ee8 + arm_func_end ov00_022BD7B8 - arm_func_start FUN_02025f10 -FUN_02025f10: @ 0x02025F10 - push {r3, r4, r5, lr} - sub sp, sp, #0x38 - mov r5, r0 - add r1, sp, #2 - mov r0, #0 - bl GetHeldButtons - add r1, sp, #0 - mov r0, #0 - bl GetPressedButtons - ldrh r0, [sp] - tst r0, #3 - movne r0, #1 - bne _02025FD4 - ldrh r0, [sp, #2] - tst r0, #2 - beq _02025F5C - tst r0, #0xf0 - moveq r0, #1 - beq _02025FD4 -_02025F5C: - bl FUN_0204ae60 - cmp r0, #0 - beq _02025FD0 - ldrsb r0, [r5] - mov r4, #0 - bl FUN_02028324 - cmp r0, #0 - bne _02025FAC - ldrsb r0, [r5] - bl FUN_020275f8 - ldrsb r1, [r0, #9] - mvn r0, #5 - cmp r1, r0 - addne r0, r0, #1 - cmpne r1, r0 - beq _02025FAC - ldrsb r0, [r5] - add r4, sp, #0x28 - mov r1, r4 - bl FUN_02028284 -_02025FAC: - add r0, sp, #4 - bl GetReleasedStylus - ldr r1, _02025FDC @ =0x00001408 - add r0, sp, #4 - mov r2, r4 - bl FUN_02006c8c - cmp r0, #0 - movne r0, #1 - bne _02025FD4 -_02025FD0: - mov r0, #0 -_02025FD4: - add sp, sp, #0x38 - pop {r3, r4, r5, pc} - .align 2, 0 -_02025FDC: .4byte 0x00001408 - arm_func_end FUN_02025f10 -_02025FE0: - .byte 0x04, 0xC0, 0x9F, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1, 0xC8, 0x82, 0x02, 0x02 - .byte 0x04, 0xC0, 0x9F, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1, 0x1C, 0x7B, 0x02, 0x02 - .byte 0x04, 0xC0, 0x9F, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1, 0x9C, 0x92, 0xFF, 0x01 - .byte 0x04, 0xC0, 0x9F, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1, 0xF0, 0x7A, 0x02, 0x02 - - arm_func_start FUN_02026020 -FUN_02026020: @ 0x02026020 - push {r4, lr} - mov r4, r0 - mov r0, r1 - bl FUN_020265c4 - str r0, [r4, #0x110] - pop {r4, pc} - arm_func_end FUN_02026020 -_02026038: - .byte 0x04, 0x10, 0x9F, 0xE5, 0x08, 0x00, 0x81, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xFD, 0x0A, 0x02 - - arm_func_start FUN_02026048 -FUN_02026048: @ 0x02026048 + arm_func_start ov00_022BD7D8 +ov00_022BD7D8: @ 0x022BD7D8 push {r3, lr} - ldr ip, [r0, #0x110] - str ip, [sp] - ldrsb r0, [r0] - bl FUN_0202676c + bl ov00_022E0AFC + and r0, r0, #0xff pop {r3, pc} - arm_func_end FUN_02026048 -_02026060: - .byte 0x04, 0xC0, 0x9F, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1, 0x1C, 0x6B, 0x02, 0x02 + arm_func_end ov00_022BD7D8 - arm_func_start FUN_02026070 -FUN_02026070: @ 0x02026070 - push {r3, r4, r5, r6, r7, lr} - ldrsb r4, [r0] - ldr ip, [r0, #0x110] - mov r7, r1 - mov r6, r2 - mov r5, r3 - mov r0, r4 - str ip, [sp] - bl FUN_01FF905C - mov ip, #0x13 - mov r0, r4 - mov r1, r7 - mov r3, r5 - add r2, r6, #1 - str ip, [sp] - bl FUN_01FF905C - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_02026070 -_020260B4: - .byte 0x04, 0xC0, 0x9F, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1 - .byte 0xDC, 0x88, 0x02, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x10, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1 - .byte 0xD0, 0x00, 0xD4, 0xE1, 0x01, 0x60, 0xA0, 0xE1, 0x00, 0x10, 0x8D, 0xE2, 0x02, 0x50, 0xA0, 0xE1 - .byte 0x67, 0x08, 0x00, 0xEB, 0x00, 0x00, 0x56, 0xE3, 0x0A, 0x00, 0x00, 0xAA, 0x08, 0x10, 0x9D, 0xE5 - .byte 0x0C, 0x00, 0x9D, 0xE5, 0x04, 0x30, 0x9D, 0xE5, 0x00, 0x00, 0x81, 0xE0, 0xA0, 0x1F, 0x80, 0xE0 - .byte 0xD0, 0x00, 0xD4, 0xE1, 0xC1, 0x20, 0xA0, 0xE1, 0x04, 0x30, 0x83, 0xE2, 0x04, 0x10, 0xA0, 0xE3 - .byte 0xF9, 0x09, 0x00, 0xEB, 0x06, 0x00, 0x00, 0xEA, 0x08, 0x20, 0x9D, 0xE5, 0x00, 0x10, 0x9D, 0xE5 - .byte 0xD0, 0x00, 0xD4, 0xE1, 0x02, 0x20, 0x86, 0xE0, 0x01, 0x30, 0x85, 0xE0, 0x03, 0x10, 0xA0, 0xE3 - .byte 0xF1, 0x09, 0x00, 0xEB, 0x10, 0xD0, 0x8D, 0xE2, 0x70, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_0202613c -FUN_0202613c: @ 0x0202613C - ldr ip, _02026148 @ =FUN_02020b14 - add r0, r0, #4 - bx ip - .align 2, 0 -_02026148: .4byte FUN_02020b14 - arm_func_end FUN_0202613c - - arm_func_start FUN_0202614c -FUN_0202614c: @ 0x0202614C + arm_func_start ov00_022BD7E8 +ov00_022BD7E8: @ 0x022BD7E8 push {r3, lr} - sub sp, sp, #8 - add r3, sp, #0 - str r1, [sp] - mov r1, r3 - add r0, r0, #4 - str r2, [sp, #4] - bl FUN_02020b60 - add sp, sp, #8 - pop {r3, pc} - arm_func_end FUN_0202614c - - arm_func_start FUN_02026174 -FUN_02026174: @ 0x02026174 - ldr ip, _02026180 @ =FUN_02020b74 - add r0, r0, #4 - bx ip - .align 2, 0 -_02026180: .4byte FUN_02020b74 - arm_func_end FUN_02026174 - - arm_func_start FUN_02026184 -FUN_02026184: @ 0x02026184 - ldr ip, _02026190 @ =FUN_02020BB8 - add r0, r0, #4 - bx ip - .align 2, 0 -_02026190: .4byte FUN_02020BB8 - arm_func_end FUN_02026184 - - arm_func_start FUN_02026194 -FUN_02026194: @ 0x02026194 - ldr ip, _020261A0 @ =FUN_02020bc4 - add r0, r0, #4 - bx ip - .align 2, 0 -_020261A0: .4byte FUN_02020bc4 - arm_func_end FUN_02026194 - - arm_func_start FUN_020261a4 -FUN_020261a4: @ 0x020261A4 - ldr ip, _020261B0 @ =FUN_02020CCC - add r0, r0, #4 - bx ip - .align 2, 0 -_020261B0: .4byte FUN_02020CCC - arm_func_end FUN_020261a4 - - arm_func_start FUN_020261b4 -FUN_020261b4: @ 0x020261B4 - ldr ip, _020261C0 @ =FUN_02020D18 - add r0, r0, #4 - bx ip - .align 2, 0 -_020261C0: .4byte FUN_02020D18 - arm_func_end FUN_020261b4 - - arm_func_start FUN_020261c4 -FUN_020261c4: @ 0x020261C4 - ldr ip, _020261D0 @ =FUN_02020D40 - add r0, r0, #4 - bx ip - .align 2, 0 -_020261D0: .4byte FUN_02020D40 - arm_func_end FUN_020261c4 - - arm_func_start FUN_020261d4 -FUN_020261d4: @ 0x020261D4 - ldr ip, _020261E0 @ =FUN_02020D54 - add r0, r0, #4 - bx ip - .align 2, 0 -_020261E0: .4byte FUN_02020D54 - arm_func_end FUN_020261d4 - - arm_func_start FUN_020261e4 -FUN_020261e4: @ 0x020261E4 - ldr ip, _020261F0 @ =FUN_02020D5C - add r0, r0, #4 - bx ip - .align 2, 0 -_020261F0: .4byte FUN_02020D5C - arm_func_end FUN_020261e4 - - arm_func_start FUN_020261f4 -FUN_020261f4: @ 0x020261F4 - ldr ip, _02026200 @ =FUN_02020D7C - add r0, r0, #4 - bx ip - .align 2, 0 -_02026200: .4byte FUN_02020D7C - arm_func_end FUN_020261f4 - - arm_func_start FUN_02026204 -FUN_02026204: @ 0x02026204 - ldr ip, _02026210 @ =AnalyzeText - add r0, r0, #4 - bx ip - .align 2, 0 -_02026210: .4byte AnalyzeText - arm_func_end FUN_02026204 - - arm_func_start FUN_02026214 -FUN_02026214: @ 0x02026214 - push {r3, r4, lr} - sub sp, sp, #0x124 - mov r4, r0 - str r1, [sp] - mov r1, r4 - add r0, sp, #8 - mov r4, r3 - str r2, [sp, #4] - bl FUN_02025e84 - add r0, sp, #0xc - add r1, sp, #0 - bl FUN_02020b60 - ldr r1, _02026264 @ =0x0000C402 - add r0, sp, #0xc - mov r2, r4 - bl FUN_02020bc4 - add r0, sp, #0xc - bl AnalyzeText - add sp, sp, #0x124 - pop {r3, r4, pc} - .align 2, 0 -_02026264: .4byte 0x0000C402 - arm_func_end FUN_02026214 - - arm_func_start FUN_02026268 -FUN_02026268: @ 0x02026268 - push {r4, lr} - sub sp, sp, #0x128 - sub sp, sp, #0x400 - str r2, [sp, #8] - mov r2, r3 - mov r4, r0 - str r1, [sp, #4] - mov ip, #0 - ldr r3, _020262DC @ =0x0000C402 - add r0, sp, #0xc - mov r1, #0x400 - str ip, [sp] - bl PreprocessStringFromMessageId - add r0, sp, #0x400 - add r0, r0, #0xc - mov r1, r4 - bl FUN_02025e84 - add r0, sp, #0x410 - add r1, sp, #4 - bl FUN_02020b60 - ldr r1, _020262DC @ =0x0000C402 - add r0, sp, #0x410 - add r2, sp, #0xc - bl FUN_02020bc4 - add r0, sp, #0x410 - bl AnalyzeText - add sp, sp, #0x128 - add sp, sp, #0x400 - pop {r4, pc} - .align 2, 0 -_020262DC: .4byte 0x0000C402 - arm_func_end FUN_02026268 - - arm_func_start FUN_020262e0 -FUN_020262e0: @ 0x020262E0 - push {r4, lr} - sub sp, sp, #0x128 - sub sp, sp, #0x400 - str r2, [sp, #8] - mov r2, r3 - mov r4, r0 - str r1, [sp, #4] - ldr ip, [sp, #0x530] - ldr r3, _02026354 @ =0x0000C402 - add r0, sp, #0xc - mov r1, #0x400 - str ip, [sp] - bl PreprocessStringFromMessageId - add r0, sp, #0x400 - add r0, r0, #0xc - mov r1, r4 - bl FUN_02025e84 - add r0, sp, #0x410 - add r1, sp, #4 - bl FUN_02020b60 - ldr r1, _02026354 @ =0x0000C402 - add r0, sp, #0x410 - add r2, sp, #0xc - bl FUN_02020bc4 - add r0, sp, #0x410 - bl AnalyzeText - add sp, sp, #0x128 - add sp, sp, #0x400 - pop {r4, pc} - .align 2, 0 -_02026354: .4byte 0x0000C402 - arm_func_end FUN_020262e0 - - arm_func_start FUN_02026358 -FUN_02026358: @ 0x02026358 - push {r3, r4, lr} - sub sp, sp, #0x12c - mov r4, r0 - ldr lr, [sp, #0x138] - ldr ip, [sp, #0x13c] - str r1, [sp] - mov r1, r4 - add r0, sp, #0x10 - mov r4, r3 - str lr, [sp, #8] - str ip, [sp, #0xc] - str r2, [sp, #4] - bl FUN_02025e84 - add r0, sp, #0x14 - add r1, sp, #8 - bl FUN_02020b4c - add r0, sp, #0x14 - add r1, sp, #0 - bl FUN_02020b60 - ldr r1, _020263C4 @ =0x0000C402 - add r0, sp, #0x14 - mov r2, r4 - bl FUN_02020bc4 - add r0, sp, #0x14 - bl AnalyzeText - add sp, sp, #0x12c - pop {r3, r4, pc} - .align 2, 0 -_020263C4: .4byte 0x0000C402 - arm_func_end FUN_02026358 - - arm_func_start FUN_020263c8 -FUN_020263c8: @ 0x020263C8 - push {r3, r4, lr} - sub sp, sp, #0x124 - mov r4, r0 - str r1, [sp] - mov r1, r4 - add r0, sp, #8 - mov r4, r3 - str r2, [sp, #4] - bl FUN_02025e84 - add r0, sp, #0xc - add r1, sp, #0 - bl FUN_02020b60 - ldr r1, _02026424 @ =0x0000C402 - add r0, sp, #0xc - mov r2, r4 - bl FUN_02020bc4 - ldrb r1, [sp, #0x130] - add r0, sp, #0xc - bl FUN_02020b74 - add r0, sp, #0xc - bl AnalyzeText - add sp, sp, #0x124 - pop {r3, r4, pc} - .align 2, 0 -_02026424: .4byte 0x0000C402 - arm_func_end FUN_020263c8 - - arm_func_start FUN_02026428 -FUN_02026428: @ 0x02026428 - push {r3, r4, lr} - sub sp, sp, #0x12c - mov r4, r0 - ldr lr, [sp, #0x13c] - ldr ip, [sp, #0x140] - str r1, [sp] - mov r1, r4 - add r0, sp, #0x10 - mov r4, r3 - str lr, [sp, #8] - str ip, [sp, #0xc] - str r2, [sp, #4] - bl FUN_02025e84 - add r0, sp, #0x14 - add r1, sp, #8 - bl FUN_02020b4c - add r0, sp, #0x14 - add r1, sp, #0 - bl FUN_02020b60 - ldr r1, _020264A0 @ =0x0000C402 - add r0, sp, #0x14 - mov r2, r4 - bl FUN_02020bc4 - ldrb r1, [sp, #0x138] - add r0, sp, #0x14 - bl FUN_02020b94 - add r0, sp, #0x14 - bl AnalyzeText - add sp, sp, #0x12c - pop {r3, r4, pc} - .align 2, 0 -_020264A0: .4byte 0x0000C402 - arm_func_end FUN_02026428 - - arm_func_start FUN_020264a4 -FUN_020264a4: @ 0x020264A4 - push {r3, r4, lr} - sub sp, sp, #0x124 - mov r4, r0 - str r1, [sp] - mov r1, r4 - add r0, sp, #8 - mov r4, r3 - str r2, [sp, #4] - bl FUN_02025e84 - add r0, sp, #0xc - add r1, sp, #0 - bl FUN_02020b60 - ldr r1, _020264F4 @ =0x0000C403 - add r0, sp, #0xc - mov r2, r4 - bl FUN_02020bc4 - add r0, sp, #0xc - bl AnalyzeText - add sp, sp, #0x124 - pop {r3, r4, pc} - .align 2, 0 -_020264F4: .4byte 0x0000C403 - arm_func_end FUN_020264a4 - - arm_func_start FUN_020264f8 -FUN_020264f8: @ 0x020264F8 - push {r3, r4, r5, r6, r7, lr} - mov r4, r3 - mov r7, r0 - mov r0, r4 - mov r6, r1 - mov r5, r2 - bl FUN_02025c7c - ldrb r0, [r0, #2] - cmp r0, #0xc - rsblo r0, r0, #0xc - addlo r0, r0, r0, lsr #31 - addlo r6, r6, r0, asr #1 - ldrb r0, [sp, #0x18] - bl FUN_020265c4 - str r0, [sp] - mov r0, r7 - mov r1, r6 - mov r2, r5 - mov r3, r4 - bl FUN_0202676c - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_020264f8 - - arm_func_start FUN_0202654c -FUN_0202654c: @ 0x0202654C - push {r3, lr} - ldr r1, _02026590 @ =0x020AFD04 - mov r3, r0 - ldr r1, [r1, #8] - cmp r1, #2 - blt _0202657C - mov r1, #0 - mov r2, r1 - sub r0, r1, #2 - str r1, [sp] - bl FUN_02026c68 - pop {r3, pc} -_0202657C: - bl FUN_02025c7c - cmp r0, #0 - ldrbne r0, [r0, #2] - moveq r0, #0 - pop {r3, pc} - .align 2, 0 -_02026590: .4byte 0x020AFD04 - arm_func_end FUN_0202654c - - arm_func_start FUN_02026594 -FUN_02026594: @ 0x02026594 - ldr r1, _020265A4 @ =0x020AFD04 - ldr r1, [r1, #0xc] - ldrb r0, [r1, r0, lsl #2] - bx lr - .align 2, 0 -_020265A4: .4byte 0x020AFD04 - arm_func_end FUN_02026594 - - arm_func_start FUN_020265a8 -FUN_020265a8: @ 0x020265A8 - ldr ip, _020265B8 @ =FUN_02022118 - ldr r1, _020265BC @ =FUN_0202654c - ldr r2, _020265C0 @ =FUN_02026594 - bx ip - .align 2, 0 -_020265B8: .4byte FUN_02022118 -_020265BC: .4byte FUN_0202654c -_020265C0: .4byte FUN_02026594 - arm_func_end FUN_020265a8 - - arm_func_start FUN_020265c4 -FUN_020265c4: @ 0x020265C4 - sub r0, r0, #0x41 - cmp r0, #0x31 + bl ov00_022E089C + cmp r0, #8 addls pc, pc, r0, lsl #2 - b _02026764 -_020265D4: @ jump table - b _0202671C @ case 0 - b _02026704 @ case 1 - b _020266B4 @ case 2 - b _02026764 @ case 3 - b _020266AC @ case 4 - b _020266D4 @ case 5 - b _02026734 @ case 6 - b _0202674C @ case 7 - b _0202671C @ case 8 - b _02026754 @ case 9 - b _020266E4 @ case 10 - b _02026744 @ case 11 - b _020266EC @ case 12 - b _020266DC @ case 13 - b _0202675C @ case 14 - b _020266F4 @ case 15 - b _02026714 @ case 16 - b _0202673C @ case 17 - b _0202670C @ case 18 - b _0202669C @ case 19 - b _02026724 @ case 20 - b _020266FC @ case 21 - b _020266BC @ case 22 - b _020266C4 @ case 23 - b _020266CC @ case 24 - b _0202672C @ case 25 - b _02026764 @ case 26 - b _02026764 @ case 27 - b _02026764 @ case 28 - b _02026764 @ case 29 - b _02026764 @ case 30 - b _02026764 @ case 31 - b _02026764 @ case 32 - b _02026764 @ case 33 - b _02026764 @ case 34 - b _02026764 @ case 35 - b _02026764 @ case 36 - b _02026764 @ case 37 - b _02026764 @ case 38 - b _02026764 @ case 39 - b _02026764 @ case 40 - b _020266F4 @ case 41 - b _02026764 @ case 42 - b _02026764 @ case 43 - b _02026764 @ case 44 - b _02026764 @ case 45 - b _02026764 @ case 46 - b _02026764 @ case 47 - b _02026764 @ case 48 - b _020266A4 @ case 49 -_0202669C: + b _022BD868 +_022BD7FC: @ jump table + b _022BD820 @ case 0 + b _022BD828 @ case 1 + b _022BD830 @ case 2 + b _022BD838 @ case 3 + b _022BD840 @ case 4 + b _022BD848 @ case 5 + b _022BD850 @ case 6 + b _022BD858 @ case 7 + b _022BD860 @ case 8 +_022BD820: mov r0, #0 - bx lr -_020266A4: - mov r0, #0x15 - bx lr -_020266AC: - mov r0, #0x18 - bx lr -_020266B4: - mov r0, #0x19 - bx lr -_020266BC: - mov r0, #0x1a - bx lr -_020266C4: - mov r0, #0x1b - bx lr -_020266CC: - mov r0, #0x1c - bx lr -_020266D4: - mov r0, #0x1d - bx lr -_020266DC: - mov r0, #0x1e - bx lr -_020266E4: - mov r0, #0x1f - bx lr -_020266EC: - mov r0, #0x20 - bx lr -_020266F4: - mov r0, #0x21 - bx lr -_020266FC: - mov r0, #0x22 - bx lr -_02026704: - mov r0, #0x23 - bx lr -_0202670C: - mov r0, #0x24 - bx lr -_02026714: - mov r0, #0x25 - bx lr -_0202671C: - mov r0, #0x26 - bx lr -_02026724: - mov r0, #0x27 - bx lr -_0202672C: - mov r0, #0x28 - bx lr -_02026734: - mov r0, #0x29 - bx lr -_0202673C: - mov r0, #0x2a - bx lr -_02026744: - mov r0, #0x2b - bx lr -_0202674C: - mov r0, #0x2c - bx lr -_02026754: - mov r0, #0x2d - bx lr -_0202675C: - mov r0, #0x2e - bx lr -_02026764: - mov r0, #0x17 - bx lr - arm_func_end FUN_020265c4 - - arm_func_start FUN_0202676c -FUN_0202676c: @ 0x0202676C - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x2c - str r0, [sp, #4] - mov sl, r1 - mov r6, r2 - mov r7, r3 - ldr r5, [sp, #0x50] - bl FUN_020275f8 - ldr r1, _02026B14 @ =0x020AFD04 - str r0, [sp, #0x18] - ldr r0, [r1, #8] - cmp r0, #2 - blt _020267C0 - ldr r0, [sp, #4] - mov r4, #1 - mov r1, sl - mov r2, r6 - mov r3, r7 - str r4, [sp] - bl FUN_02026c68 - b _02026B0C -_020267C0: - ldr r0, [sp, #4] - add r1, sp, #0x24 - bl FUN_020282c8 - mov r0, r7 - bl FUN_02025c7c - ldr r1, _02026B14 @ =0x020AFD04 - str r0, [sp, #0x14] - ldrb r1, [r1] - add r4, r0, #4 - cmp r1, #0 - beq _02026804 - ldrb r0, [r0, #3] - tst r0, #2 - movne r0, #1 - moveq r0, #0 - and fp, r0, #0xff - b _02026808 -_02026804: - mov fp, #0 -_02026808: - ldr r0, _02026B14 @ =0x020AFD04 - ldr r3, [sp, #0x24] - ldr r2, [r0, #8] - ldr r1, _02026B18 @ =0x022A7A5C - sub r0, r3, #8 - cmp r6, #0 - str r0, [sp, #0x1c] - ldr r7, [r1, r2, lsl #2] - mov r8, #0 - bge _0202684C - mov r8, #1 - b _02026844 -_02026838: - add r4, r4, #2 - add r6, r6, #1 - sub r7, r7, #1 -_02026844: - cmp r6, #0 - blt _02026838 -_0202684C: - cmp fp, #0 - beq _02026868 - cmp r8, #0 - subne r0, r4, #2 - strne r0, [sp, #8] - streq r4, [sp, #8] - b _02026870 -_02026868: - str r4, [sp, #8] - mov r8, #0 -_02026870: - ldr r1, [sp, #0x28] - add r0, r6, r7 - cmp r0, r1 - and sb, sl, #7 - subge r7, r1, r6 - rsb r1, sb, #7 - ldr r0, [sp, #4] - str r1, [sp, #0xc] - bl FUN_0202760c - lsr r3, r6, #0x1f - ldr r1, [sp, #0x18] - rsb r2, r3, r6, lsl #29 - add r2, r3, r2, ror #29 - asr r3, sl, #2 - add r3, sl, r3, lsr #29 - asr sl, r6, #2 - add sl, r6, sl, lsr #29 - ldrb r1, [r1, #6] - asr sl, sl, #3 - mul r1, sl, r1 - add r1, r1, r3, asr #3 - lsl r1, r1, #4 - add r1, r1, r2, lsl #1 - add r0, r0, r1, lsl #2 - add sb, r0, sb - mov r1, #0 - b _02026A88 -_020268DC: - mov ip, sb - ldr r2, [sp, #0xc] - cmp r8, #0 - beq _0202699C - ldr sl, [sp, #8] - mov r3, #0 - ldrh r0, [sl], #2 - str sl, [sp, #8] - and sl, r5, #0xff - ldrh lr, [r4], #2 - str r3, [sp, #0x10] - str sl, [sp, #0x20] -_0202690C: - tst lr, #1 - ldrne r3, [sp, #0x20] - strbne r3, [ip], #1 - movne r3, #1 - bne _02026950 - cmp r3, #0 - bne _02026930 - tst r0, #1 - beq _0202694C -_02026930: - ldrb sl, [ip] - mov r3, #0 - cmp sl, #0 - moveq sl, #0x13 - strbeq sl, [ip], #1 - addne ip, ip, #1 - b _02026950 -_0202694C: - add ip, ip, #1 -_02026950: - lsl sl, lr, #0xf - lsr lr, sl, #0x10 - ldr sl, [sp, #0x10] - subs r2, r2, #1 - lsl r0, r0, #0xf - add sl, sl, #1 - lsr r0, r0, #0x10 - addmi ip, ip, #0x38 - movmi r2, #7 - str sl, [sp, #0x10] - cmp sl, #0xc - blt _0202690C - cmp r3, #0 - beq _02026A68 - ldrb r0, [ip] - cmp r0, #0 - moveq r0, #0x13 - strbeq r0, [ip] - b _02026A68 -_0202699C: - cmp fp, #0 - beq _02026A2C - ldrh r8, [r4], #2 - mov r3, #0 - mov lr, r3 - and r0, r5, #0xff -_020269B4: - tst r8, #1 - strbne r0, [ip], #1 - movne r3, #1 - bne _020269EC - cmp r3, #0 - beq _020269E8 - ldrb sl, [ip] - mov r3, #0 - cmp sl, #0 - moveq sl, #0x13 - strbeq sl, [ip], #1 - addne ip, ip, #1 - b _020269EC -_020269E8: - add ip, ip, #1 -_020269EC: - subs r2, r2, #1 - lsl r8, r8, #0xf - add lr, lr, #1 - lsr r8, r8, #0x10 - addmi ip, ip, #0x38 - movmi r2, #7 - cmp lr, #0xc - blt _020269B4 - cmp r3, #0 - beq _02026A24 - ldrb r0, [ip] - cmp r0, #0 - moveq r0, #0x13 - strbeq r0, [ip] -_02026A24: - mov r8, #1 - b _02026A68 -_02026A2C: - ldrh r3, [r4], #2 - mov r0, #0 - and sl, r5, #0xff - mov lr, #7 -_02026A3C: - tst r3, #1 - strbne sl, [ip], #1 - addeq ip, ip, #1 - subs r2, r2, #1 - lsl r3, r3, #0xf - add r0, r0, #1 - lsr r3, r3, #0x10 - addmi ip, ip, #0x38 - movmi r2, lr - cmp r0, #0xc - blt _02026A3C -_02026A68: - add r6, r6, #1 - lsr r2, r6, #0x1f - rsb r0, r2, r6, lsl #29 - adds r0, r2, r0, ror #29 - ldreq r0, [sp, #0x1c] - add sb, sb, #8 - addeq sb, sb, r0, lsl #3 - add r1, r1, #1 -_02026A88: - cmp r1, r7 - blt _020268DC - cmp r8, #0 - beq _02026B04 - ldr r0, [sp, #0x28] - add r1, r6, r7 - cmp r1, r0 - bge _02026B04 - ldr r0, [sp, #8] - mov r4, #0 - ldrh r3, [r0] - mov r2, #0x13 - mov r1, #7 -_02026ABC: - tst r3, #1 - beq _02026AD8 - ldrb r0, [sb] - cmp r0, #0 - strbeq r2, [sb], #1 - addne sb, sb, #1 - b _02026ADC -_02026AD8: - add sb, sb, #1 -_02026ADC: - lsl r0, r3, #0xf - lsr r3, r0, #0x10 - ldr r0, [sp, #0xc] - add r4, r4, #1 - subs r0, r0, #1 - str r0, [sp, #0xc] - strmi r1, [sp, #0xc] - addmi sb, sb, #0x38 - cmp r4, #0xc - blt _02026ABC -_02026B04: - ldr r0, [sp, #0x14] - ldrb r0, [r0, #2] -_02026B0C: - add sp, sp, #0x2c - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02026B14: .4byte 0x020AFD04 -_02026B18: .4byte 0x022A7A5C - arm_func_end FUN_0202676c - - arm_func_start FUN_02026b1c -FUN_02026b1c: @ 0x02026B1C - push {r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #8 - ldr r5, _02026C64 @ =0x020AFD04 - mov r4, r0 - ldr r5, [r5, #0xc] - mov r6, r1 - add r7, r5, r3, lsl #2 - mov r5, r2 - bl FUN_0202760c - ldrsh r3, [r7, #2] - mov r8, r0 - cmp r3, #0 - movlt r0, #0 - blt _02026C5C - ldr r0, _02026C64 @ =0x020AFD04 - add r1, sp, #0 - ldr r2, [r0, #0xc] - mov r0, r4 - add r4, r2, r3 - bl FUN_020282c8 - ldrb r0, [r7, #1] - cmp r5, #0 - add ip, r5, r0 - bge _02026B9C - cmp ip, #0 - ldrblt r0, [r7] - blt _02026C5C - ldr r1, [sp] - rsb r0, r5, #0 - mla r4, r1, r0, r4 - mov r5, #0 - b _02026BB8 -_02026B9C: - ldr r0, [sp, #4] - cmp ip, r0 - ble _02026BB8 - cmp r5, r0 - ldrbgt r0, [r7] - bgt _02026C5C - mov ip, r0 -_02026BB8: - ldrb r0, [r7] - cmp r6, #0 - movlt r6, #0 - ldr r1, [sp] - add r3, r6, r0 - cmp r3, r1 - subgt r6, r1, r0 - asr r0, r1, #2 - add r0, r1, r0, lsr #29 - asr r0, r0, #3 - movgt r3, r1 - mov r2, r6 - lsl r1, r0, #6 - b _02026C50 -_02026BF0: - asr r0, r5, #2 - add r0, r5, r0, lsr #29 - asr r0, r0, #3 - mul sb, r0, r1 - lsr r6, r5, #0x1f - rsb r0, r6, r5, lsl #29 - add r0, r6, r0, ror #29 - add r0, sb, r0, lsl #3 - mov r6, r2 - add lr, r8, r0 - b _02026C44 -_02026C1C: - lsr sb, r6, #0x1f - rsb r0, sb, r6, lsl #29 - asr sl, r6, #2 - add sl, r6, sl, lsr #29 - add sb, sb, r0, ror #29 - ldrb r0, [r4], #1 - asr sl, sl, #3 - add sb, lr, sb - strb r0, [sb, sl, lsl #6] - add r6, r6, #1 -_02026C44: - cmp r6, r3 - blt _02026C1C - add r5, r5, #1 -_02026C50: - cmp r5, ip - blt _02026BF0 - ldrb r0, [r7] -_02026C5C: - add sp, sp, #8 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_02026C64: .4byte 0x020AFD04 - arm_func_end FUN_02026b1c - - arm_func_start FUN_02026c68 -FUN_02026c68: @ 0x02026C68 - push {r3, lr} - cmp r3, #0x41 - blo _02026CA4 - cmp r3, #0x5a - bhi _02026CA4 - ldr ip, _02026E38 @ =0x020AFD04 - sub r3, r3, #0x40 - ldr ip, [ip, #8] - lsl r3, r3, #0x10 - asr r3, r3, #0x10 - cmp ip, #3 - addeq r3, r3, #0x50 - lsleq r3, r3, #0x10 - asreq r3, r3, #0x10 - b _02026E18 -_02026CA4: - ldr ip, _02026E38 @ =0x020AFD04 - ldr ip, [ip, #8] - cmp ip, #3 - bne _02026D40 - cmp r3, #0x40 - bgt _02026CCC - bge _02026D00 - cmp r3, #0x26 - beq _02026D30 - b _02026D38 -_02026CCC: - cmp r3, #0x6f - bgt _02026CF4 - subs ip, r3, #0x6b - addpl pc, pc, ip, lsl #2 - b _02026D38 -_02026CE0: @ jump table - b _02026D10 @ case 0 - b _02026D38 @ case 1 - b _02026D18 @ case 2 - b _02026D20 @ case 3 - b _02026D08 @ case 4 -_02026CF4: - cmp r3, #0xe9 - beq _02026D28 - b _02026D38 -_02026D00: - mov r3, #0x50 - b _02026E18 -_02026D08: - mov r3, #0x6b - b _02026E18 -_02026D10: - mov r3, #0x6c - b _02026E18 -_02026D18: - mov r3, #0x6d - b _02026E18 -_02026D20: - mov r3, #0x6e - b _02026E18 -_02026D28: - mov r3, #0x6f - b _02026E18 -_02026D30: - mov r3, #0x71 - b _02026E18 -_02026D38: + pop {r3, pc} +_022BD828: + mov r0, #1 + pop {r3, pc} +_022BD830: + mov r0, #2 + pop {r3, pc} +_022BD838: + mov r0, #3 + pop {r3, pc} +_022BD840: + mov r0, #4 + pop {r3, pc} +_022BD848: + mov r0, #5 + pop {r3, pc} +_022BD850: + mov r0, #6 + pop {r3, pc} +_022BD858: + mov r0, #7 + pop {r3, pc} +_022BD860: mov r0, #8 pop {r3, pc} -_02026D40: - cmp r3, #0x61 - blo _02026D5C - cmp r3, #0x7a - subls r3, r3, #0x40 - lslls r3, r3, #0x10 - asrls r3, r3, #0x10 - bls _02026E18 -_02026D5C: - cmp r3, #0xc1 - bgt _02026DAC - bge _02026E00 - sub ip, r3, #0x22 - cmp ip, #0xc - addls pc, pc, ip, lsl #2 - b _02026E10 -_02026D78: @ jump table - b _02026E08 @ case 0 - b _02026E10 @ case 1 - b _02026E10 @ case 2 - b _02026E10 @ case 3 - b _02026DE8 @ case 4 - b _02026DE0 @ case 5 - b _02026E10 @ case 6 - b _02026E10 @ case 7 - b _02026E10 @ case 8 - b _02026E10 @ case 9 - b _02026DD0 @ case 10 - b _02026DD8 @ case 11 - b _02026DC8 @ case 12 -_02026DAC: - cmp r3, #0xe9 - bgt _02026DBC - beq _02026DF0 - b _02026E10 -_02026DBC: - cmp r3, #0xeb - beq _02026DF8 - b _02026E10 -_02026DC8: - mov r3, #0x1b - b _02026E18 -_02026DD0: - mov r3, #0x1c - b _02026E18 -_02026DD8: - mov r3, #0x1d - b _02026E18 -_02026DE0: - mov r3, #0x1e - b _02026E18 -_02026DE8: - mov r3, #0 - b _02026E18 -_02026DF0: - mov r3, #0x3b - b _02026E18 -_02026DF8: - mov r3, #0x3c - b _02026E18 -_02026E00: - mov r3, #0x3d - b _02026E18 -_02026E08: - mov r3, #0x3e - b _02026E18 -_02026E10: - mov r0, #6 - pop {r3, pc} -_02026E18: - ldrb ip, [sp, #8] - cmp ip, #0 - ldreq r0, _02026E38 @ =0x020AFD04 - ldreq r0, [r0, #0xc] - ldrbeq r0, [r0, r3, lsl #2] - popeq {r3, pc} - bl FUN_02026b1c - pop {r3, pc} - .align 2, 0 -_02026E38: .4byte 0x020AFD04 - arm_func_end FUN_02026c68 - - arm_func_start FUN_02026e3c -FUN_02026e3c: @ 0x02026E3C - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r1 - mov r5, r2 - bl FUN_0202760c - mov r4, r0 - mov r0, r7 - bl FUN_02027624 - lsl r3, r5, #0x14 - mov r1, r0 - mov r0, r4 - mov r2, r6 - lsr r3, r3, #0x10 - bl DecompressAtHalf - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_02026e3c - - arm_func_start FUN_02026e78 -FUN_02026e78: @ 0x02026E78 - push {r3, r4, r5, r6, r7, lr} - ldr r3, _02026FEC @ =0x020AFD4C - mov r4, #1 - ldr r0, _02026FF0 @ =0x022A88DC - mov r1, #0 - mov r2, #0x1180 - strb r4, [r3, #2] - bl Memset - mov r7, #0 - ldr r0, _02026FF4 @ =0x022A7A6C - mvn r5, #1 - ldr r6, _02026FF8 @ =0x022A7B1C - strb r5, [r0, #5] - mov r4, r7 -_02026EB0: - strb r4, [r6] - add r0, r6, #4 - strb r5, [r6, #0x2c] - bl FUN_02029a50 - add r7, r7, #1 - cmp r7, #0x14 - add r6, r6, #0x30 - blt _02026EB0 - ldr r0, _02026FFC @ =0x022A7AC8 - mov r1, #0 - ldr r2, _02027000 @ =0x04000014 - ldr r3, _02027004 @ =0x0600D800 - str r1, [sp] - bl FUN_0200b2c4 - mov r1, #0 - ldr r0, _02027008 @ =0x022A7B00 - ldr r2, _0202700C @ =0x04001010 - ldr r3, _02027010 @ =0x0620D000 - str r1, [sp] - bl FUN_0200b2c4 - mov r1, #0 - ldr r0, _02027014 @ =0x022A7AE4 - ldr r2, _02027018 @ =0x04001014 - ldr r3, _0202701C @ =0x0620D800 - str r1, [sp] - bl FUN_0200b2c4 - mov r1, #0 - ldr r0, _02027020 @ =0x022A7AA0 - str r1, [sp] - ldr r3, _02027024 @ =0x06882000 - mov r1, #1 - mov r2, #0x200 - bl FUN_0200a124 - mov r0, #0 - str r0, [sp] - ldr r0, _02027028 @ =0x022A7A8C - mov r1, #3 - mov r2, #0x200 - ldr r3, _0202702C @ =0x06898000 - bl FUN_0200a124 - mov r0, #0 - str r0, [sp] - ldr r0, _02027030 @ =0x022A7A78 - mov r1, #3 - mov r2, #0x300 - ldr r3, _02027034 @ =0x0689A000 - bl FUN_0200a124 - mov r2, #0 - ldr r1, _02026FF4 @ =0x022A7A6C - ldr r0, _02027038 @ =0x022A7EDC - strb r2, [r1, #4] - strb r2, [r1] - strb r2, [r1, #1] - mov r1, #0xa00 - bl MemZero - mov r2, #0 - ldr r1, _02026FF4 @ =0x022A7A6C - ldr r0, _0202703C @ =0x022A7AB4 - strh r2, [r1, #6] - mov r1, #0x14 - bl MemZero - mov r0, #0 - bl FUN_02027180 - mov r2, #1 - ldr r0, _02026FF4 @ =0x022A7A6C - sub r1, r2, #3 - strh r2, [r0, #8] - strh r2, [r0, #0xa] - strb r1, [r0, #3] - bl FUN_0202950c - bl FUN_02029ee8 - bl FUN_0202a124 - mov r2, #0 - ldr r1, _02026FF4 @ =0x022A7A6C - ldr r0, _02026FEC @ =0x020AFD4C - strh r2, [r1, #6] - str r2, [r0, #8] - bl FUN_0202903c - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02026FEC: .4byte 0x020AFD4C -_02026FF0: .4byte 0x022A88DC -_02026FF4: .4byte 0x022A7A6C -_02026FF8: .4byte 0x022A7B1C -_02026FFC: .4byte 0x022A7AC8 -_02027000: .4byte 0x04000014 -_02027004: .4byte 0x0600D800 -_02027008: .4byte 0x022A7B00 -_0202700C: .4byte 0x04001010 -_02027010: .4byte 0x0620D000 -_02027014: .4byte 0x022A7AE4 -_02027018: .4byte 0x04001014 -_0202701C: .4byte 0x0620D800 -_02027020: .4byte 0x022A7AA0 -_02027024: .4byte 0x06882000 -_02027028: .4byte 0x022A7A8C -_0202702C: .4byte 0x06898000 -_02027030: .4byte 0x022A7A78 -_02027034: .4byte 0x0689A000 -_02027038: .4byte 0x022A7EDC -_0202703C: .4byte 0x022A7AB4 - arm_func_end FUN_02026e78 - - arm_func_start FUN_02027040 -FUN_02027040: @ 0x02027040 - push {r3, r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #0xc - mov r3, #0xe0 - mul r5, r0, r3 - ldr r6, _02027134 @ =0x022A88E4 - mov sl, r1 - ldrb r0, [r6, r5] - ldr r3, _02027138 @ =0x0209AC58 - mov r8, #0 - cmp r0, #0 - lsl r0, r2, #0x10 - ldreq sb, _0202713C @ =0x022A7AA0 - add r2, sp, #0 - ldrne sb, _02027140 @ =0x022A7A8C - lsr r7, r0, #0x10 - mov r1, #4 -_02027080: - ldrb r0, [r3], #1 - subs r1, r1, #1 - strb r0, [r2], #1 - bne _02027080 - add r4, sp, #8 -_02027094: - add r3, sp, #0 - add r2, sp, #4 - mov r1, #4 -_020270A0: - ldrb r0, [r3], #1 - subs r1, r1, #1 - strb r0, [r2], #1 - bne _020270A0 - ldrsb r0, [sl] - add r3, sp, #4 - add r2, sp, #8 - strb r0, [sp, #4] - ldrsb r0, [sl, #1] - mov r1, #4 - strb r0, [sp, #5] - ldrsb r0, [sl, #2] - strb r0, [sp, #6] -_020270D4: - ldrb r0, [r3], #1 - subs r1, r1, #1 - strb r0, [r2], #1 - bne _020270D4 - add r0, r7, #1 - mov r1, r7 - lsl r3, r0, #0x10 - mov r0, sb - mov r2, r4 - add sl, sl, #3 - lsr r7, r3, #0x10 - bl FUN_0200a29c - add r8, r8, #1 - cmp r8, #0x10 - blt _02027094 - ldrb r0, [r6, r5] - mov r1, #1 - cmp r0, #0 - ldreq r0, _02027144 @ =0x022A7A6C - strbeq r1, [r0, #4] - ldrne r0, _02027144 @ =0x022A7A6C - strbne r1, [r0] - add sp, sp, #0xc - pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_02027134: .4byte 0x022A88E4 -_02027138: .4byte 0x0209AC58 -_0202713C: .4byte 0x022A7AA0 -_02027140: .4byte 0x022A7A8C -_02027144: .4byte 0x022A7A6C - arm_func_end FUN_02027040 -_02027148: - .byte 0x08, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3 - .byte 0x01, 0x10, 0xC0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x4C, 0xFD, 0x0A, 0x02, 0x08, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x01, 0x10, 0xC0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x4C, 0xFD, 0x0A, 0x02 - .byte 0x04, 0x00, 0x9F, 0xE5, 0x02, 0x00, 0xD0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x6C, 0x7A, 0x2A, 0x02 - - arm_func_start FUN_02027180 -FUN_02027180: @ 0x02027180 - push {r4, lr} - sub sp, sp, #8 - mov r4, r0 - mov r0, #0xc - mul r2, r4, r0 - ldr r1, _0202721C @ =0x020AFD58 - add r0, sp, #0 - ldr r1, [r1, r2] - mov r2, #0x300 - bl LoadWteFromRom - ldr r3, [sp, #4] - ldr r0, _02027220 @ =0x022A7A6C - ldrh r1, [r3, #0xc] - ldr r2, _02027224 @ =0x022A7AB6 - add r3, r3, #0x10 - strh r1, [r0, #0x48] - mov r1, #4 -_020271C4: - ldrh r0, [r3], #2 - subs r1, r1, #1 - strh r0, [r2], #2 - bne _020271C4 - ldr ip, _02027220 @ =0x022A7A6C - mov r1, #0x1f000 - mov r2, #0x1f - str r1, [ip, #0x54] - add r0, sp, #0 - mov r3, #0 - strh r2, [ip, #0x58] - bl FUN_0201e12c - add r0, sp, #0 - bl FUN_0201e13c - mov r0, r4 - bl FUN_02027228 - mov r0, r4 - bl FUN_02027390 - ldr r0, _02027220 @ =0x022A7A6C - strb r4, [r0, #2] - add sp, sp, #8 - pop {r4, pc} - .align 2, 0 -_0202721C: .4byte 0x020AFD58 -_02027220: .4byte 0x022A7A6C -_02027224: .4byte 0x022A7AB6 - arm_func_end FUN_02027180 - - arm_func_start FUN_02027228 -FUN_02027228: @ 0x02027228 - push {r3, lr} - sub sp, sp, #8 - mov r1, #0xc - mul r2, r0, r1 - ldr r1, _0202726C @ =0x020AFD5C - add r0, sp, #0 - ldr r1, [r1, r2] - mov r2, #1 - bl LoadFileFromRom - ldr r1, [sp] - ldr r2, [sp, #4] - ldr r0, _02027270 @ =0x0620C000 - bl Memcpy32 - add r0, sp, #0 - bl UnloadFile - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_0202726C: .4byte 0x020AFD5C -_02027270: .4byte 0x0620C000 - arm_func_end FUN_02027228 - - arm_func_start FUN_02027274 -FUN_02027274: @ 0x02027274 - push {r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x14 - mov r1, r0 - add r0, sp, #0xc - mov r2, #1 - bl LoadFileFromRom - ldr r7, [sp, #0xc] - ldr r3, _0202736C @ =0x0209AC50 - add r2, sp, #0 - mov r8, #0x80 - mov sb, #0 - mov r1, #4 -_020272A4: - ldrb r0, [r3], #1 - subs r1, r1, #1 - strb r0, [r2], #1 - bne _020272A4 - ldr r6, _02027370 @ =0x022A7AA0 - ldr r4, _02027374 @ =0x022A7A8C - add r5, sp, #8 -_020272C0: - add r3, sp, #0 - add r2, sp, #4 - mov r1, #4 -_020272CC: - ldrb r0, [r3], #1 - subs r1, r1, #1 - strb r0, [r2], #1 - bne _020272CC - ldrb r0, [r7] - add r3, sp, #4 - add r2, sp, #8 - strb r0, [sp, #4] - ldrb r0, [r7, #1] - mov r1, #4 - strb r0, [sp, #5] - ldrb r0, [r7, #2] - strb r0, [sp, #6] -_02027300: - ldrb r0, [r3], #1 - subs r1, r1, #1 - strb r0, [r2], #1 - bne _02027300 - mov r0, r6 - mov r1, r8 - mov r2, r5 - add r7, r7, #4 - bl FUN_0200a29c - mov r0, r4 - mov r1, r8 - mov r2, r5 - bl FUN_0200a29c - add r0, r8, #1 - lsl r0, r0, #0x10 - add sb, sb, #1 - cmp sb, #0x80 - lsr r8, r0, #0x10 - blt _020272C0 - add r0, sp, #0xc - bl UnloadFile - ldr r0, _02027378 @ =0x022A7A6C - mov r1, #1 - strb r1, [r0, #4] - strb r1, [r0] - add sp, sp, #0x14 - pop {r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0202736C: .4byte 0x0209AC50 -_02027370: .4byte 0x022A7AA0 -_02027374: .4byte 0x022A7A8C -_02027378: .4byte 0x022A7A6C - arm_func_end FUN_02027274 -_0202737C: - .byte 0x04, 0xC0, 0x9F, 0xE5 - .byte 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x74, 0x72, 0x02, 0x02, 0xC8, 0xAD, 0x09, 0x02 - - arm_func_start FUN_02027390 -FUN_02027390: @ 0x02027390 - push {r3, r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #0x1c - ldr r1, _0202759C @ =0x0209ADDC - mov sl, r0 - add r0, sp, #0x10 - mov r2, #1 - bl LoadFileFromRom - ldr r8, [sp, #0x10] - ldr r3, _020275A0 @ =0x0209AC54 - add r2, sp, #0 - mov sb, #0x10 - mov r7, #0 - mov r1, #4 -_020273C4: - ldrb r0, [r3], #1 - subs r1, r1, #1 - strb r0, [r2], #1 - bne _020273C4 - ldr r6, _020275A4 @ =0x022A7AA0 - ldr r4, _020275A8 @ =0x022A7A8C - add r5, sp, #0x18 -_020273E0: - add r3, sp, #0 - add r2, sp, #0xc - mov r1, #4 -_020273EC: - ldrb r0, [r3], #1 - subs r1, r1, #1 - strb r0, [r2], #1 - bne _020273EC - ldrb r0, [r8] - add r3, sp, #0xc - add r2, sp, #0x18 - strb r0, [sp, #0xc] - ldrb r0, [r8, #1] - mov r1, #4 - strb r0, [sp, #0xd] - ldrb r0, [r8, #2] - strb r0, [sp, #0xe] - ldrb r0, [r8, #3] - strb r0, [sp, #0xf] -_02027428: - ldrb r0, [r3], #1 - subs r1, r1, #1 - strb r0, [r2], #1 - bne _02027428 - mov r0, r6 - mov r1, sb - mov r2, r5 - add r8, r8, #4 - bl FUN_0200a29c - mov r0, r4 - mov r1, sb - mov r2, r5 - bl FUN_0200a29c - add r0, sb, #1 - lsl r0, r0, #0x10 - add r7, r7, #1 - cmp r7, #0x20 - lsr sb, r0, #0x10 - blt _020273E0 - add r0, sp, #0x10 - bl UnloadFile - ldr r0, _020275AC @ =0x0209ADC8 - bl FUN_02027274 - mov r0, #0xc - mul r2, sl, r0 - ldr r1, _020275B0 @ =0x020AFD60 - add r0, sp, #0x10 - ldr r1, [r1, r2] - mov r2, #1 - bl LoadFileFromRom - mov r5, #0 - ldr r6, [sp, #0x10] - ldr r3, _020275B4 @ =0x0209AC4C - add r2, sp, #4 - mov r4, r5 - mov r1, #4 -_020274B8: - ldrb r0, [r3], #1 - subs r1, r1, #1 - strb r0, [r2], #1 - bne _020274B8 -_020274C8: - lsl r0, r4, #0x18 - ldr sl, _020275B8 @ =0x022A7A78 - lsr r7, r0, #0x10 - mov r8, #0 - add sb, sp, #0x18 -_020274DC: - add r3, sp, #4 - add r2, sp, #8 - mov r1, #4 -_020274E8: - ldrb r0, [r3], #1 - subs r1, r1, #1 - strb r0, [r2], #1 - bne _020274E8 - lsl r0, r5, #1 - ldrsh r1, [r6, r0] - add r3, sp, #8 - add r2, sp, #0x18 - lsl r0, r1, #0x1b - and ip, r1, #0x3e0 - and r1, r1, #0x7c00 - lsr r0, r0, #0x18 - asr ip, ip, #2 - asr r1, r1, #7 - strb r1, [sp, #0xa] - strb r0, [sp, #8] - strb ip, [sp, #9] - mov r1, #4 -_02027530: - ldrb r0, [r3], #1 - subs r1, r1, #1 - strb r0, [r2], #1 - bne _02027530 - add r0, r7, #1 - mov r1, r7 - lsl r3, r0, #0x10 - mov r0, sl - mov r2, sb - lsr r7, r3, #0x10 - bl FUN_0200a29c - add r8, r8, #1 - cmp r8, #0x10 - add r5, r5, #1 - blt _020274DC - add r4, r4, #1 - cmp r4, #3 - blt _020274C8 - add r0, sp, #0x10 - bl UnloadFile - ldr r0, _020275BC @ =0x022A7A6C - mov r1, #1 - strb r1, [r0, #4] - strb r1, [r0] - strb r1, [r0, #1] - add sp, sp, #0x1c - pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_0202759C: .4byte 0x0209ADDC -_020275A0: .4byte 0x0209AC54 -_020275A4: .4byte 0x022A7AA0 -_020275A8: .4byte 0x022A7A8C -_020275AC: .4byte 0x0209ADC8 -_020275B0: .4byte 0x020AFD60 -_020275B4: .4byte 0x0209AC4C -_020275B8: .4byte 0x022A7A78 -_020275BC: .4byte 0x022A7A6C - arm_func_end FUN_02027390 -_020275C0: - .byte 0x0C, 0x30, 0x9F, 0xE5, 0x0C, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0x80, 0xE5, 0x00, 0x20, 0x81, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xC8, 0x7A, 0x2A, 0x02, 0xA0, 0x7A, 0x2A, 0x02, 0x0C, 0x30, 0x9F, 0xE5 - .byte 0x0C, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0x80, 0xE5, 0x00, 0x20, 0x81, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x7B, 0x2A, 0x02, 0x8C, 0x7A, 0x2A, 0x02 - - arm_func_start FUN_020275f8 -FUN_020275f8: @ 0x020275F8 - ldr r2, _02027608 @ =0x022A88DC - mov r1, #0xe0 - mla r0, r1, r0, r2 - bx lr - .align 2, 0 -_02027608: .4byte 0x022A88DC - arm_func_end FUN_020275f8 - - arm_func_start FUN_0202760c -FUN_0202760c: @ 0x0202760C - mov r1, #0xe0 - mul r1, r0, r1 - ldr r0, _02027620 @ =0x022A88F0 - ldr r0, [r0, r1] - bx lr - .align 2, 0 -_02027620: .4byte 0x022A88F0 - arm_func_end FUN_0202760c - - arm_func_start FUN_02027624 -FUN_02027624: @ 0x02027624 - ldr r2, _02027644 @ =0x022A88DC - mov r1, #0xe0 - mla r2, r0, r1, r2 - ldrb r1, [r2, #6] - ldrb r0, [r2, #7] - smulbb r0, r1, r0 - lsl r0, r0, #5 - bx lr - .align 2, 0 -_02027644: .4byte 0x022A88DC - arm_func_end FUN_02027624 - - arm_func_start FUN_02027648 -FUN_02027648: @ 0x02027648 - push {r4, lr} - mov r4, #0 - ldr ip, _020276B8 @ =0x022A88DC - mov lr, r4 - mov r3, r4 -_0202765C: - ldrsb r2, [ip, #0xb6] - cmp r2, #0 - beq _02027678 - ldrb r2, [ip, #8] - cmp r2, #0 - addeq lr, lr, #1 - addne r4, r4, #1 -_02027678: - add r2, r3, #1 - lsl r2, r2, #0x18 - asr r3, r2, #0x18 - cmp r3, #0x14 - add ip, ip, #0xe0 - blt _0202765C - cmp lr, #0 - ldreq r2, _020276BC @ =0x022A7A6C - moveq r3, #1 - strheq r3, [r2, #8] - cmp r4, #0 - ldreq r2, _020276BC @ =0x022A7A6C - moveq r3, #1 - strheq r3, [r2, #0xa] - bl FUN_020276c0 - pop {r4, pc} - .align 2, 0 -_020276B8: .4byte 0x022A88DC -_020276BC: .4byte 0x022A7A6C - arm_func_end FUN_02027648 - - arm_func_start FUN_020276c0 -FUN_020276c0: @ 0x020276C0 - push {r4, r5, r6, r7, r8, lr} - mov r8, r0 - mov r7, r1 - ldr r5, _02027898 @ =0x022A88DC - ldr r6, _0202789C @ =0x022A7B1C - mov r4, #0 - b _020276FC -_020276DC: - ldrsb r0, [r5, #0xb6] - cmp r0, #0 - beq _02027704 - add r0, r4, #1 - lsl r0, r0, #0x18 - asr r4, r0, #0x18 - add r5, r5, #0xe0 - add r6, r6, #0x30 -_020276FC: - cmp r4, #0x14 - blt _020276DC -_02027704: - ldm r8, {r0, r1, r2, r3} - stm r5, {r0, r1, r2, r3} - ldrb r0, [r8, #6] - mov r1, #8 - lsl r0, r0, #3 - sub r0, r0, #8 - str r0, [r5, #0x20] - ldrb r0, [r5, #6] - ldrb r2, [r5, #7] - lsl r0, r0, #6 - mul r0, r2, r0 - bl MemAlloc - str r0, [r5, #0x14] - ldrb r0, [r5, #8] - ldr lr, _020278A0 @ =0x022A7A74 - ldrb r3, [r5, #6] - lsl r8, r0, #1 - ldrh r0, [lr, r8] - ldrb r2, [r5, #7] - mvn r1, #8 - mla ip, r3, r2, r0 - strh r0, [r5, #0x12] - ldrsb r2, [r5, #9] - strh ip, [lr, r8] - cmp r2, r1 - orreq r1, r0, #0x1000 - strheq r1, [r5, #0x30] - strhne r0, [r5, #0x30] - ldrb r1, [r5, #8] - cmp r1, #0 - moveq r1, #0x6000000 - movne r1, #0x6200000 - add r0, r1, r0, lsl #6 - str r0, [r5, #0x18] - str r0, [r5, #0x28] - ldrb r3, [r5, #6] - ldrb r2, [r5, #7] - mov r1, #0 - mov r0, r4 - smulbb r2, r3, r2 - lsl r2, r2, #6 - str r2, [r5, #0x1c] - strb r1, [r5, #0x11] - bl FUN_02027b1c - strb r4, [r5, #0x10] - mov r0, #1 - strb r0, [r5, #0xb6] - strb r0, [r5, #0xb7] - mov r0, r4 - strb r7, [r5, #0xb4] - bl FUN_020278c4 - mvn r1, #0 - add r0, r5, #0x34 - str r1, [r5, #0xb8] - bl FUN_0201e730 - mov r1, #2 - strb r1, [r5, #0x70] +_022BD868: mov r0, #9 - strh r0, [r5, #0x5e] - strb r1, [r5, #0x72] - mov r0, #0x20 - strb r0, [r5, #0x60] - strb r0, [r5, #0x61] - strb r0, [r5, #0x62] - mov r1, #0x90 - add r0, r5, #0x74 - strb r1, [r5, #0x63] - bl FUN_0201e730 - ldr r0, _020278A4 @ =0x022A7A6C - mov r1, #0 - ldrh r3, [r0, #0x48] - mov r2, #0x18 - strh r3, [r5, #0x88] - strh r1, [r5, #0x8a] - strh r1, [r5, #0x8c] - strh r2, [r5, #0x8e] - strh r2, [r5, #0x90] - ldr r2, [r0, #0x54] - str r2, [r5, #0x94] - ldrsh r0, [r0, #0x58] - bl FUN_020278a8 - str r0, [r5, #0x98] - mov r0, #6 - strb r0, [r5, #0xb0] - mov r0, #0xa - strh r0, [r5, #0x9e] - mov r1, #0 - strh r1, [r5, #0x74] - strh r1, [r5, #0x76] - strh r1, [r5, #0x78] - add r0, r5, #0xbc - strh r1, [r5, #0x7a] - bl FUN_02029670 + pop {r3, pc} + arm_func_end ov00_022BD7E8 + + arm_func_start ov00_022BD870 +ov00_022BD870: @ 0x022BD870 + push {r3, r4, lr} + sub sp, sp, #0x14 + ldr r1, _022BD8E0 @ =0x023187A0 + mov r4, r0 + ldr r1, [r1, #0xc] + ldr r2, _022BD8E4 @ =0x02317F54 mov r0, #0 - strb r0, [r6] - add r0, r6, #4 - bl FUN_02029a50 - ldrb r1, [r5, #8] - mov r0, r4 - strb r1, [r6, #0x2a] - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02027898: .4byte 0x022A88DC -_0202789C: .4byte 0x022A7B1C -_020278A0: .4byte 0x022A7A74 -_020278A4: .4byte 0x022A7A6C - arm_func_end FUN_020276c0 - - arm_func_start FUN_020278a8 -FUN_020278a8: @ 0x020278A8 - ldr r2, _020278C0 @ =0x020AFC70 - add r0, r1, r0, lsl #8 - ldr r1, [r2] - ldr r1, [r1, #0xe0] - add r0, r1, r0, lsl #1 - bx lr - .align 2, 0 -_020278C0: .4byte 0x020AFC70 - arm_func_end FUN_020278a8 - - arm_func_start FUN_020278c4 -FUN_020278c4: @ 0x020278C4 - push {r4, r5, r6, r7, r8, lr} - mov r1, #0xe0 - mul r2, r0, r1 - ldr ip, _02027964 @ =0x022A7A6C - ldr r4, _02027968 @ =0x022A8990 - ldrsb r3, [ip, #3] - mvn r1, #1 - ldrsb r8, [r4, r2] - cmp r3, r1 - ldreq r1, _0202796C @ =0x022A8991 - mov r7, r3 - strbeq r0, [ip, #3] - strbeq r3, [r1, r2] - popeq {r4, r5, r6, r7, r8, pc} - mov ip, r1 - ldr r5, _02027970 @ =0x022A88DC - mov lr, #0xe0 - b _02027924 -_0202790C: - mla r6, r7, lr, r5 - ldrsb r4, [r6, #0xb4] - cmp r4, r8 - blt _0202792C - mov r1, r7 - ldrsb r7, [r6, #0xb5] -_02027924: - cmp r7, ip - bne _0202790C -_0202792C: - mvn ip, #1 - cmp r1, ip - ldreq ip, _0202796C @ =0x022A8991 - ldreq r1, _02027964 @ =0x022A7A6C - strbeq r3, [ip, r2] - strbeq r0, [r1, #3] - popeq {r4, r5, r6, r7, r8, pc} - mov r3, #0xe0 - mul r3, r1, r3 - ldr ip, _0202796C @ =0x022A8991 - ldrsb r1, [ip, r3] - strb r0, [ip, r3] - strb r1, [ip, r2] - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02027964: .4byte 0x022A7A6C -_02027968: .4byte 0x022A8990 -_0202796C: .4byte 0x022A8991 -_02027970: .4byte 0x022A88DC - arm_func_end FUN_020278c4 - - arm_func_start FUN_02027974 -FUN_02027974: @ 0x02027974 - push {r3, r4, r5, lr} - ldr r1, _020279FC @ =0x022A7A6C - mvn r5, #1 - ldrsb r4, [r1, #3] - mov r1, r5 - ldr ip, _02027A00 @ =0x022A88DC - mov r2, #0xe0 - b _020279AC -_02027994: - mla lr, r4, r2, ip - ldrsb r3, [lr, #0x10] - cmp r0, r3 - beq _020279B4 - mov r5, r4 - ldrsb r4, [lr, #0xb5] -_020279AC: - cmp r4, r1 - bne _02027994 -_020279B4: - mvn ip, #1 - cmp r5, ip - bne _020279DC - mov r1, #0xe0 - mul r2, r0, r1 - ldr r3, _02027A04 @ =0x022A8991 - ldr r0, _020279FC @ =0x022A7A6C - ldrsb r1, [r3, r2] - strb r1, [r0, #3] - b _020279F4 -_020279DC: - mov r0, #0xe0 - mul r2, r4, r0 - ldr r3, _02027A04 @ =0x022A8991 - mul r0, r5, r0 - ldrsb r1, [r3, r2] - strb r1, [r3, r0] -_020279F4: - strb ip, [r3, r2] - pop {r3, r4, r5, pc} - .align 2, 0 -_020279FC: .4byte 0x022A7A6C -_02027A00: .4byte 0x022A88DC -_02027A04: .4byte 0x022A8991 - arm_func_end FUN_02027974 - - arm_func_start FUN_02027a08 -FUN_02027a08: @ 0x02027A08 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - bl FUN_02027974 - mov r0, #0xe0 - mul r4, r6, r0 - ldr r1, _02027A5C @ =0x022A8990 - mov r0, r6 - strb r5, [r1, r4] - bl FUN_020278c4 - ldr r1, _02027A60 @ =0x022A88E4 - ldr r0, _02027A64 @ =0x020AFD4C - ldrb r3, [r1, r4] - ldr r2, [r0, #8] - mov r1, #1 - orr r1, r2, r1, lsl r3 - str r1, [r0, #8] - cmp r3, #1 - popne {r4, r5, r6, pc} - bl FUN_02027b88 - pop {r4, r5, r6, pc} - .align 2, 0 -_02027A5C: .4byte 0x022A8990 -_02027A60: .4byte 0x022A88E4 -_02027A64: .4byte 0x020AFD4C - arm_func_end FUN_02027a08 - - arm_func_start SetScreenWindowsColor -SetScreenWindowsColor: @ 0x02027A68 - ldr r2, _02027A7C @ =0x020AFD98 - cmp r1, #2 - moveq r1, #1 - strb r0, [r2, r1] - bx lr - .align 2, 0 -_02027A7C: .4byte 0x020AFD98 - arm_func_end SetScreenWindowsColor - - arm_func_start SetBothScreensWindowsColor -SetBothScreensWindowsColor: @ 0x02027A80 - push {r4, lr} - mov r4, r0 + str r2, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + add ip, r1, #0xe0 + ldr r0, _022BD8E8 @ =0x0231D490 + ldr r2, _022BD8EC @ =0x00002B1A + ldr r3, _022BD8F0 @ =0x02317F44 + str ip, [sp, #0xc] + mov ip, #0x10 + str ip, [sp, #0x10] + bl ov00_022E1690 mov r1, #0 - bl SetScreenWindowsColor + ldr ip, _022BD8F4 @ =0x0231D420 + ldr r2, _022BD8F8 @ =0x022BE008 mov r0, r4 - mov r1, #1 - bl SetScreenWindowsColor - pop {r4, pc} - arm_func_end SetBothScreensWindowsColor - - arm_func_start FUN_02027aa0 -FUN_02027aa0: @ 0x02027AA0 - cmp r0, #1 - ldreq r0, _02027AE4 @ =0x020AFD4C - moveq r1, #1 - strbeq r1, [r0] - bxeq lr - cmp r0, #2 - ldreq r0, _02027AE4 @ =0x020AFD4C - moveq r1, #1 - strbeq r1, [r0, #3] - bxeq lr - ldr r0, _02027AE8 @ =0x020AFD9C - ldr r1, _02027AEC @ =0x020AFD94 - ldrh r0, [r0] - mov r2, #1 - eor r0, r0, #1 - strb r2, [r1, r0] - bx lr + mov r3, r1 + strb r1, [ip, #1] + bl ov00_022E1D04 + and r0, r0, #0xff + add sp, sp, #0x14 + pop {r3, r4, pc} .align 2, 0 -_02027AE4: .4byte 0x020AFD4C -_02027AE8: .4byte 0x020AFD9C -_02027AEC: .4byte 0x020AFD94 - arm_func_end FUN_02027aa0 +_022BD8E0: .4byte 0x023187A0 +_022BD8E4: .4byte 0x02317F54 +_022BD8E8: .4byte 0x0231D490 +_022BD8EC: .4byte 0x00002B1A +_022BD8F0: .4byte 0x02317F44 +_022BD8F4: .4byte 0x0231D420 +_022BD8F8: .4byte 0x022BE008 + arm_func_end ov00_022BD870 - arm_func_start FUN_02027af0 -FUN_02027af0: @ 0x02027AF0 - ldr r2, _02027B18 @ =0x022A88DC - mov r1, #0xe0 - mla r1, r0, r1, r2 - ldr r0, [r1, #0x14] - str r0, [r1, #0x24] - ldr r0, [r1, #0x18] - str r0, [r1, #0x28] - ldr r0, [r1, #0x1c] - str r0, [r1, #0x2c] - bx lr - .align 2, 0 -_02027B18: .4byte 0x022A88DC - arm_func_end FUN_02027af0 - - arm_func_start FUN_02027b1c -FUN_02027b1c: @ 0x02027B1C - push {r4, lr} - mov r4, r0 - mov r0, #0xe0 - mul r2, r4, r0 - ldr r0, _02027B50 @ =0x022A88F0 - ldr r1, _02027B54 @ =0x022A88F8 - ldr r0, [r0, r2] - ldr r2, [r1, r2] - mov r1, #0 - bl Memset - mov r0, r4 - bl FUN_02027af0 - pop {r4, pc} - .align 2, 0 -_02027B50: .4byte 0x022A88F0 -_02027B54: .4byte 0x022A88F8 - arm_func_end FUN_02027b1c - - arm_func_start FUN_02027b58 -FUN_02027b58: @ 0x02027B58 - mov r1, #0xe0 - mul r2, r0, r1 - ldr r0, _02027B7C @ =0x022A88F0 - ldr r1, _02027B80 @ =0x022A88F8 - ldr r0, [r0, r2] - ldr r2, [r1, r2] - ldr ip, _02027B84 @ =Memset - mov r1, #0 + arm_func_start ov00_022E1A84 +ov00_022E1A84: @ 0x022BD8FC + ldr ip, _022BD904 @ =ov00_022E1A84 bx ip .align 2, 0 -_02027B7C: .4byte 0x022A88F0 -_02027B80: .4byte 0x022A88F8 -_02027B84: .4byte Memset - arm_func_end FUN_02027b58 +_022BD904: .4byte ov00_022E1A84 + arm_func_end ov00_022E1A84 - arm_func_start FUN_02027b88 -FUN_02027b88: @ 0x02027B88 - push {r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #8 - ldr r0, _02027E14 @ =0x022A7A6C - ldrsb r2, [r0, #3] - b _02027E00 -_02027B9C: - ldr r1, _02027E18 @ =0x022A88DC - mov r0, #0xe0 - mla r4, r2, r0, r1 - ldrb r0, [r4, #8] - cmp r0, #1 - ldrsbeq r0, [r4, #0xb6] - cmpeq r0, #2 - bne _02027DFC - ldrsb r1, [r4, #9] - ldr r0, _02027E1C @ =0x0209AC64 - rsb r1, r1, #0 - lsl r1, r1, #1 - ldrsb r0, [r0, r1] - cmp r0, #0 - bne _02027DF0 - ldr r0, _02027E20 @ =0x020AFD98 - ldrb r1, [r4, #4] - ldrb r3, [r0, #1] - ldr r2, _02027E24 @ =0x0209ACAC - sub r6, r1, #1 - ldrb r2, [r2, r3] - ldrb r0, [r4, #5] - add r1, sp, #0 - lsl r5, r2, #0xc - sub r3, r0, #1 - orr r0, r5, #2 - lsl r2, r0, #0x10 - ldr r0, _02027E28 @ =0x022A7AE4 - str r6, [sp] - lsr r2, r2, #0x10 - str r3, [sp, #4] - bl FUN_0200b3fc - ldr r1, [sp] - orr r0, r5, #3 - add r1, r1, #1 - lsl r0, r0, #0x10 - str r1, [sp] - lsr r6, r0, #0x10 - ldr r8, _02027E28 @ =0x022A7AE4 - add r7, sp, #0 - b _02027C5C -_02027C40: - mov r0, r8 - mov r1, r7 - mov r2, r6 - bl FUN_0200b3fc - ldr r0, [sp] - add r0, r0, #1 - str r0, [sp] -_02027C5C: - ldrb r1, [r4, #4] - ldrb r0, [r4, #6] - ldr r2, [sp] - add r0, r1, r0 - cmp r2, r0 - blt _02027C40 - orr r0, r5, #4 - lsl r2, r0, #0x10 - ldr r0, _02027E28 @ =0x022A7AE4 - add r1, sp, #0 - lsr r2, r2, #0x10 - bl FUN_0200b3fc - ldr r0, [sp, #4] - orr r1, r5, #5 - add r0, r0, #1 - str r0, [sp, #4] - orr r0, r5, #1 - orr r2, r5, #6 - lsl r0, r0, #0x10 - lsl r1, r1, #0x10 - lsl r2, r2, #0x10 - lsr r7, r0, #0x10 - lsr r8, r1, #0x10 - lsr r6, r2, #0x10 - ldr sl, _02027E28 @ =0x022A7AE4 - add sb, sp, #0 - b _02027D44 -_02027CC8: - ldrb r2, [r4, #4] - mov r0, sl - mov r1, sb - sub r3, r2, #1 - mov r2, r8 - str r3, [sp] - bl FUN_0200b3fc - ldr r0, [sp] - add r0, r0, #1 - str r0, [sp] - b _02027D10 -_02027CF4: - mov r0, sl - mov r1, sb - mov r2, r7 - bl FUN_0200b3fc - ldr r0, [sp] - add r0, r0, #1 - str r0, [sp] -_02027D10: - ldrb r1, [r4, #4] - ldrb r0, [r4, #6] - ldr r2, [sp] - add r0, r1, r0 - cmp r2, r0 - blt _02027CF4 - mov r0, sl - mov r1, sb - mov r2, r6 - bl FUN_0200b3fc - ldr r0, [sp, #4] - add r0, r0, #1 - str r0, [sp, #4] -_02027D44: - ldrb r1, [r4, #5] - ldrb r0, [r4, #7] - ldr r2, [sp, #4] - add r0, r1, r0 - cmp r2, r0 - blt _02027CC8 - ldrb r1, [r4, #4] - orr r0, r5, #7 - lsl r2, r0, #0x10 - sub r3, r1, #1 - ldr r0, _02027E28 @ =0x022A7AE4 - add r1, sp, #0 - str r3, [sp] - lsr r2, r2, #0x10 - bl FUN_0200b3fc - ldr r1, [sp] - orr r0, r5, #8 - add r1, r1, #1 - lsl r0, r0, #0x10 - str r1, [sp] - lsr r6, r0, #0x10 - ldr r8, _02027E28 @ =0x022A7AE4 - add r7, sp, #0 - b _02027DC0 -_02027DA4: - mov r0, r8 - mov r1, r7 - mov r2, r6 - bl FUN_0200b3fc - ldr r0, [sp] - add r0, r0, #1 - str r0, [sp] -_02027DC0: - ldrb r1, [r4, #4] - ldrb r0, [r4, #6] - ldr r2, [sp] - add r0, r1, r0 - cmp r2, r0 - blt _02027DA4 - orr r0, r5, #9 - lsl r2, r0, #0x10 - ldr r0, _02027E28 @ =0x022A7AE4 - add r1, sp, #0 - lsr r2, r2, #0x10 - bl FUN_0200b3fc -_02027DF0: - ldr r0, _02027E2C @ =0x020AFD4C - mov r1, #1 - strb r1, [r0, #3] -_02027DFC: - ldrsb r2, [r4, #0xb5] -_02027E00: - mvn r0, #1 - cmp r2, r0 - bne _02027B9C - add sp, sp, #8 - pop {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_start ov00_022BD908 +ov00_022BD908: @ 0x022BD908 + ldr r0, _022BD914 @ =0x0231D420 + ldrb r0, [r0, #1] + bx lr .align 2, 0 -_02027E14: .4byte 0x022A7A6C -_02027E18: .4byte 0x022A88DC -_02027E1C: .4byte 0x0209AC64 -_02027E20: .4byte 0x020AFD98 -_02027E24: .4byte 0x0209ACAC -_02027E28: .4byte 0x022A7AE4 -_02027E2C: .4byte 0x020AFD4C - arm_func_end FUN_02027b88 +_022BD914: .4byte 0x0231D420 + arm_func_end ov00_022BD908 - arm_func_start FUN_02027e30 -FUN_02027e30: @ 0x02027E30 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #8 - ldr r3, _02028070 @ =0x022A88DC - mov r2, #0xe0 - mla r7, r0, r2, r3 - ldrsb r0, [r7, #9] - ldr r2, _02028074 @ =0x0209AC64 - cmp r1, #0 - rsb r0, r0, #0 - add r4, r2, r0, lsl #1 - movne r0, #2 - moveq r0, #3 - strb r0, [r7, #0xb6] - ldrb r0, [r7, #8] - cmp r0, #1 - bne _02027F34 - cmp r1, #0 - bne _02027F20 - ldrsb r1, [r7, #0x10] - ldr r2, _02028070 @ =0x022A88DC - mov r0, #0xe0 - mla r0, r1, r0, r2 - add r0, r0, #0xbc - bl FUN_02029670 - ldrsb r0, [r4] + arm_func_start ov00_022BD918 +ov00_022BD918: @ 0x022BD918 + push {r3, lr} + bl ov00_022E0DAC cmp r0, #0 - blt _02027F20 - ldrb r0, [r7, #5] - ldr r6, _02028078 @ =0x022A7AE4 - add r5, sp, #0 - sub r0, r0, #1 - str r0, [sp, #4] - mov r4, #0 - b _02027F08 -_02027EB8: - ldrb r0, [r7, #4] - sub r0, r0, #1 - str r0, [sp] - b _02027EE4 -_02027EC8: - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_0200b3fc - ldr r0, [sp] - add r0, r0, #1 - str r0, [sp] -_02027EE4: - ldrb r1, [r7, #4] - ldrb r0, [r7, #6] - ldr r2, [sp] - add r0, r1, r0 - cmp r2, r0 - ble _02027EC8 - ldr r0, [sp, #4] - add r0, r0, #1 - str r0, [sp, #4] -_02027F08: - ldrb r1, [r7, #5] - ldrb r0, [r7, #7] - ldr r2, [sp, #4] - add r0, r1, r0 - cmp r2, r0 - ble _02027EB8 -_02027F20: - bl FUN_02027b88 - ldr r0, _0202807C @ =0x020AFD4C - mov r1, #1 - strb r1, [r0, #3] - b _02028064 -_02027F34: - cmp r1, #0 - beq _0202801C - ldrb r1, [r7, #4] - mvn r0, #3 - lsl r1, r1, #3 - strh r1, [r7, #0x34] - ldrb r1, [r7, #5] - lsl r1, r1, #3 - strh r1, [r7, #0x36] - ldrb r1, [r7, #6] - lsl r1, r1, #3 - strh r1, [r7, #0x38] - ldrb r1, [r7, #7] - lsl r1, r1, #3 - strh r1, [r7, #0x3a] - ldrh r1, [r7, #0x34] - strh r1, [r7, #0x74] - ldrh r1, [r7, #0x36] - strh r1, [r7, #0x76] - ldrh r1, [r7, #0x38] - strh r1, [r7, #0x78] - ldrh r1, [r7, #0x3a] - strh r1, [r7, #0x7a] - ldrsh r1, [r7, #0x74] - sub r1, r1, #8 - strh r1, [r7, #0x74] - ldrsh r1, [r7, #0x76] - sub r1, r1, #8 - strh r1, [r7, #0x76] - ldrsh r1, [r7, #0x78] - add r1, r1, #0x10 - strh r1, [r7, #0x78] - ldrsh r1, [r7, #0x7a] - add r1, r1, #0x10 - strh r1, [r7, #0x7a] - ldrsb r1, [r7, #9] - cmp r1, r0 - beq _02027FFC - ldrsh r0, [r7, #0x34] - sub r0, r0, #1 - strh r0, [r7, #0x34] - ldrsh r0, [r7, #0x36] - sub r0, r0, #2 - strh r0, [r7, #0x36] - ldrsh r0, [r7, #0x38] - add r0, r0, #2 - strh r0, [r7, #0x38] - ldrsh r0, [r7, #0x3a] - add r0, r0, #6 - strh r0, [r7, #0x3a] -_02027FFC: - ldr r0, _0202807C @ =0x020AFD4C + beq _022BD93C + cmp r0, #1 + beq _022BD944 + cmp r0, #2 + beq _022BD94C + b _022BD954 +_022BD93C: + mov r0, #0 + pop {r3, pc} +_022BD944: + mov r0, #1 + pop {r3, pc} +_022BD94C: + mov r0, #2 + pop {r3, pc} +_022BD954: + mov r0, #0 + pop {r3, pc} + arm_func_end ov00_022BD918 + + arm_func_start ov00_022E1914 +ov00_022E1914: @ 0x022BD95C + ldr ip, _022BD964 @ =ov00_022E1914 + bx ip + .align 2, 0 +_022BD964: .4byte ov00_022E1914 + arm_func_end ov00_022E1914 + + arm_func_start ov00_022BD968 +ov00_022BD968: @ 0x022BD968 + ldr ip, _022BD978 @ =FUN_022EF210 + ldr r1, _022BD97C @ =0x02317F5C + mov r0, #0 + bx ip + .align 2, 0 +_022BD978: .4byte FUN_022EF210 +_022BD97C: .4byte 0x02317F5C + arm_func_end ov00_022BD968 + + arm_func_start ov00_022BD980 +ov00_022BD980: @ 0x022BD980 + push {r3, lr} + bl ov00_022EF4D8 + ldr r0, _022BD998 @ =0x023187A0 + mov r1, #0 + strb r1, [r0, #1] + pop {r3, pc} + .align 2, 0 +_022BD998: .4byte 0x023187A0 + arm_func_end ov00_022BD980 + + arm_func_start ov00_022BD99C +ov00_022BD99C: @ 0x022BD99C + push {r3, lr} + ldr ip, [sp, #8] + str ip, [sp] + bl ov00_022EF7AC + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _022BD9E0 +_022BD9B8: @ jump table + b _022BD9E0 @ case 0 + b _022BD9C8 @ case 1 + b _022BD9D0 @ case 2 + b _022BD9D8 @ case 3 +_022BD9C8: + mov r0, #1 + pop {r3, pc} +_022BD9D0: + mov r0, #2 + pop {r3, pc} +_022BD9D8: + mov r0, #3 + pop {r3, pc} +_022BD9E0: + mov r0, #0 + pop {r3, pc} + arm_func_end ov00_022BD99C + + arm_func_start ov00_022BD9E8 +ov00_022BD9E8: @ 0x022BD9E8 + push {r3, lr} + bl ov00_022EF380 + cmp r0, #8 + addls pc, pc, r0, lsl #2 + b _022BDA60 +_022BD9FC: @ jump table + b _022BDA20 @ case 0 + b _022BDA28 @ case 1 + b _022BDA30 @ case 2 + b _022BDA38 @ case 3 + b _022BDA40 @ case 4 + b _022BDA48 @ case 5 + b _022BDA50 @ case 6 + b _022BDA58 @ case 7 + b _022BDA60 @ case 8 +_022BDA20: + mov r0, #0 + pop {r3, pc} +_022BDA28: + mov r0, #1 + pop {r3, pc} +_022BDA30: + mov r0, #2 + pop {r3, pc} +_022BDA38: + mov r0, #3 + pop {r3, pc} +_022BDA40: + mov r0, #4 + pop {r3, pc} +_022BDA48: + mov r0, #5 + pop {r3, pc} +_022BDA50: + mov r0, #6 + pop {r3, pc} +_022BDA58: + mov r0, #7 + pop {r3, pc} +_022BDA60: + mov r0, #8 + pop {r3, pc} + arm_func_end ov00_022BD9E8 + + arm_func_start ov00_022EF548 +ov00_022EF548: @ 0x022BDA68 + ldr ip, _022BDA70 @ =ov00_022EF548 + bx ip + .align 2, 0 +_022BDA70: .4byte ov00_022EF548 + arm_func_end ov00_022EF548 + + arm_func_start ov00_022BDA74 +ov00_022BDA74: @ 0x022BDA74 + push {r3, lr} + ldr r0, _022BDA90 @ =0x023187A0 ldrb r0, [r0, #1] cmp r0, #0 - movne r0, #0x90 - strbne r0, [r7, #0x63] - moveq r0, #0xff - strbeq r0, [r7, #0x63] - b _02028064 -_0202801C: - ldrsb r1, [r7, #0x10] - ldr r2, _02028070 @ =0x022A88DC - mov r0, #0xe0 - mla r0, r1, r0, r2 - add r0, r0, #0xbc - bl FUN_02029670 - mov r0, #0 - strh r0, [r7, #0x3a] - strh r0, [r7, #0x38] - strh r0, [r7, #0x36] - strh r0, [r7, #0x34] - strh r0, [r7, #0x74] - ldrh r0, [r7, #0x36] - strh r0, [r7, #0x76] - ldrh r0, [r7, #0x38] - strh r0, [r7, #0x78] - ldrh r0, [r7, #0x3a] - strh r0, [r7, #0x7a] -_02028064: - mov r0, #1 - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, pc} + popeq {r3, pc} + bl ov00_022EF4AC + pop {r3, pc} .align 2, 0 -_02028070: .4byte 0x022A88DC -_02028074: .4byte 0x0209AC64 -_02028078: .4byte 0x022A7AE4 -_0202807C: .4byte 0x020AFD4C - arm_func_end FUN_02027e30 +_022BDA90: .4byte 0x023187A0 + arm_func_end ov00_022BDA74 - arm_func_start FUN_02028080 -FUN_02028080: @ 0x02028080 - push {r4, lr} - ldr r3, _020280B8 @ =0x022A88DC - mov r2, #0xe0 - mla r4, r0, r2, r3 - strb r1, [r4, #9] - ldrsb r0, [r4, #0x10] - bl FUN_02027af0 - ldr r0, _020280BC @ =0x020AFD4C - ldrb r1, [r4, #8] - ldr r3, [r0, #8] - mov r2, #1 - orr r1, r3, r2, lsl r1 - str r1, [r0, #8] - pop {r4, pc} - .align 2, 0 -_020280B8: .4byte 0x022A88DC -_020280BC: .4byte 0x020AFD4C - arm_func_end FUN_02028080 - - arm_func_start FUN_020280C0 -FUN_020280C0: @ 0x020280C0 - push {r3, r4, r5, lr} - mov r4, r1 - mov r1, #1 - mov r5, r0 - bl FUN_02027e30 - cmp r4, #0 - popeq {r3, r4, r5, pc} - mov r1, #0xe0 - mul r3, r5, r1 - ldr r2, _02028104 @ =0x022A88E4 - ldr r1, _02028108 @ =0x020AFD4C - ldrb r2, [r2, r3] - ldr ip, [r1, #8] - mov r3, #1 - orr r2, ip, r3, lsl r2 - str r2, [r1, #8] - pop {r3, r4, r5, pc} - .align 2, 0 -_02028104: .4byte 0x022A88E4 -_02028108: .4byte 0x020AFD4C - arm_func_end FUN_020280C0 - - arm_func_start FUN_0202810c -FUN_0202810c: @ 0x0202810C - ldr ip, _02028118 @ =FUN_020280C0 - mov r1, #1 - bx ip - .align 2, 0 -_02028118: .4byte FUN_020280C0 - arm_func_end FUN_0202810c - - arm_func_start FUN_0202811c -FUN_0202811c: @ 0x0202811C - ldr ip, _02028128 @ =FUN_02027e30 - mov r1, #1 - bx ip - .align 2, 0 -_02028128: .4byte FUN_02027e30 - arm_func_end FUN_0202811c - - arm_func_start FUN_0202812c -FUN_0202812c: @ 0x0202812C - push {r4, r5, r6, lr} - mov r6, r0 - mov r1, #0xe0 - mul r5, r6, r1 - ldr r1, _02028188 @ =0x022A8992 - ldrsb r1, [r1, r5] - cmp r1, #3 - moveq r0, #1 - popeq {r4, r5, r6, pc} + arm_func_start ov00_022BDA94 +ov00_022BDA94: @ 0x022BDA94 + push {r3, lr} + ldr r0, _022BDABC @ =0x022BE06C + ldr r1, _022BDAC0 @ =0x023187D0 + ldr r2, _022BDAC4 @ =0x023187D8 + bl ov00_022E1178 + ldr r0, _022BDAC8 @ =0x0231D420 mov r1, #0 - bl FUN_02027e30 - mov r4, r0 - mov r0, r6 - bl FUN_0202836c - ldr r0, _0202818C @ =0x022A88E4 - ldr r1, _02028190 @ =0x020AFD4C - ldrb r0, [r0, r5] - ldr r3, [r1, #8] - mov r2, #1 - orr r2, r3, r2, lsl r0 + str r1, [r0, #4] + str r1, [r0, #8] + pop {r3, pc} + .align 2, 0 +_022BDABC: .4byte 0x022BE06C +_022BDAC0: .4byte 0x023187D0 +_022BDAC4: .4byte 0x023187D8 +_022BDAC8: .4byte 0x0231D420 + arm_func_end ov00_022BDA94 + + arm_func_start ov00_022BDACC +ov00_022BDACC: @ 0x022BDACC + ldr r0, _022BDAD8 @ =0x0231D420 + ldr r0, [r0, #8] + bx lr + .align 2, 0 +_022BDAD8: .4byte 0x0231D420 + arm_func_end ov00_022BDACC + + arm_func_start ov00_022BDADC +ov00_022BDADC: @ 0x022BDADC + push {r3, lr} + movs r2, r0 + ldreq r2, _022BDB00 @ =0x023187C4 + ldm r2, {r0, r1, r2} + bl ov00_022E12DC + cmp r0, #0 + moveq r0, #0 + movne r0, #1 + pop {r3, pc} + .align 2, 0 +_022BDB00: .4byte 0x023187C4 + arm_func_end ov00_022BDADC + + arm_func_start ov00_022BDB04 +ov00_022BDB04: @ 0x022BDB04 + push {r3, lr} + cmp r0, #0 + moveq r0, #0 + popeq {r3, pc} + bl ov00_022E1310 + cmp r0, #0 + ldrne r0, _022BDB34 @ =0x0231D420 + movne r1, #0 + strne r1, [r0, #8] + movne r0, #1 + moveq r0, #0 + pop {r3, pc} + .align 2, 0 +_022BDB34: .4byte 0x0231D420 + arm_func_end ov00_022BDB04 + + arm_func_start ov00_022BDB38 +ov00_022BDB38: @ 0x022BDB38 + push {r3, lr} + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} + bl ov00_022E1334 + cmp r0, #0 + ldrne r0, _022BDB68 @ =0x0231D420 + movne r1, #0 + strne r1, [r0, #8] + movne r0, #1 + moveq r0, #0 + pop {r3, pc} + .align 2, 0 +_022BDB68: .4byte 0x0231D420 + arm_func_end ov00_022BDB38 + + arm_func_start ov00_022BDB6C +ov00_022BDB6C: @ 0x022BDB6C + push {r3, lr} + cmp r0, #0 + cmpne r1, #0 + cmpne r2, #0 + moveq r0, #0 + popeq {r3, pc} + bl ov00_022E137C + cmp r0, #0 + ldrne r0, _022BDBA4 @ =0x0231D420 + movne r1, #0 + strne r1, [r0, #8] + movne r0, #1 + moveq r0, #0 + pop {r3, pc} + .align 2, 0 +_022BDBA4: .4byte 0x0231D420 + arm_func_end ov00_022BDB6C + + arm_func_start ov00_022BDBA8 +ov00_022BDBA8: @ 0x022BDBA8 + push {r3, lr} + ldr r0, _022BDBE0 @ =0x0231D420 + ldr r0, [r0, #8] + cmp r0, #1 + beq _022BDBD8 + bl ov00_022E13B4 + cmp r0, #0 + ldrne r1, _022BDBE0 @ =0x0231D420 + movne r0, #1 + strne r0, [r1, #8] + moveq r0, #0 + pop {r3, pc} +_022BDBD8: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_022BDBE0: .4byte 0x0231D420 + arm_func_end ov00_022BDBA8 + + arm_func_start ov00_022BDBE4 +ov00_022BDBE4: @ 0x022BDBE4 + push {r3, lr} + ldr r0, _022BDC54 @ =0x0231D420 + ldr r1, [r0, #8] + cmp r1, #1 + movne r0, #0 + popne {r3, pc} + ldr r0, [r0, #4] + cmp r0, #0 + beq _022BDC1C + cmp r0, #1 + beq _022BDC4C + cmp r0, #2 + beq _022BDC44 + b _022BDC4C +_022BDC1C: + ldr r0, _022BDC58 @ =0x022BE080 + bl ov00_022E1290 + cmp r0, #0 + beq _022BDC4C + ldr r0, _022BDC54 @ =0x0231D420 + ldr r1, [r0, #4] + cmp r1, #0 + moveq r1, #1 + streq r1, [r0, #4] + b _022BDC4C +_022BDC44: + mov r0, #1 + pop {r3, pc} +_022BDC4C: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_022BDC54: .4byte 0x0231D420 +_022BDC58: .4byte 0x022BE080 + arm_func_end ov00_022BDBE4 +_022BDC5C: + .byte 0x04, 0xC0, 0x9F, 0xE5 + .byte 0x02, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0xC8, 0x05, 0x2E, 0x02, 0x08, 0x40, 0x2D, 0xE9 + .byte 0xDD, 0x8B, 0x00, 0xEB, 0x03, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x0B, 0x00, 0x00, 0xEA + .byte 0x02, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA + .byte 0x00, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8, 0x01, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x02, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8, 0x03, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x00, 0x00, 0xE0, 0xE3, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov00_022BDCB8 +ov00_022BDCB8: @ 0x022BDCB8 + push {r3, r4, lr} + sub sp, sp, #4 + mov r4, r1 + add r1, sp, #0 + bl ov00_022E025C + ldr r1, [sp] + cmp r1, #7 + addls pc, pc, r1, lsl #2 + b _022BDD34 +_022BDCDC: @ jump table + b _022BDD34 @ case 0 + b _022BDCFC @ case 1 + b _022BDD04 @ case 2 + b _022BDD0C @ case 3 + b _022BDD14 @ case 4 + b _022BDD1C @ case 5 + b _022BDD24 @ case 6 + b _022BDD2C @ case 7 +_022BDCFC: + mov r1, #1 + b _022BDD38 +_022BDD04: + mov r1, #2 + b _022BDD38 +_022BDD0C: + mov r1, #3 + b _022BDD38 +_022BDD14: + mov r1, #4 + b _022BDD38 +_022BDD1C: + mov r1, #5 + b _022BDD38 +_022BDD24: + mov r1, #6 + b _022BDD38 +_022BDD2C: + mov r1, #7 + b _022BDD38 +_022BDD34: + mov r1, #0 +_022BDD38: + str r1, [r4] + cmp r0, #0x11 + addls pc, pc, r0, lsl #2 + b _022BDE18 +_022BDD48: @ jump table + b _022BDE18 @ case 0 + b _022BDD90 @ case 1 + b _022BDD98 @ case 2 + b _022BDDA0 @ case 3 + b _022BDDA8 @ case 4 + b _022BDDB0 @ case 5 + b _022BDDB8 @ case 6 + b _022BDDC0 @ case 7 + b _022BDDC8 @ case 8 + b _022BDDD0 @ case 9 + b _022BDDD8 @ case 10 + b _022BDDE0 @ case 11 + b _022BDDE8 @ case 12 + b _022BDDF0 @ case 13 + b _022BDDF8 @ case 14 + b _022BDE00 @ case 15 + b _022BDE08 @ case 16 + b _022BDE10 @ case 17 +_022BDD90: + mov r0, #1 + b _022BDE1C +_022BDD98: + mov r0, #2 + b _022BDE1C +_022BDDA0: + mov r0, #3 + b _022BDE1C +_022BDDA8: + mov r0, #4 + b _022BDE1C +_022BDDB0: + mov r0, #5 + b _022BDE1C +_022BDDB8: + mov r0, #6 + b _022BDE1C +_022BDDC0: + mov r0, #7 + b _022BDE1C +_022BDDC8: + mov r0, #8 + b _022BDE1C +_022BDDD0: + mov r0, #9 + b _022BDE1C +_022BDDD8: + mov r0, #0xa + b _022BDE1C +_022BDDE0: + mov r0, #0xb + b _022BDE1C +_022BDDE8: + mov r0, #0xc + b _022BDE1C +_022BDDF0: + mov r0, #0xd + b _022BDE1C +_022BDDF8: + mov r0, #0xe + b _022BDE1C +_022BDE00: + mov r0, #0xf + b _022BDE1C +_022BDE08: + mov r0, #0x10 + b _022BDE1C +_022BDE10: + mov r0, #0x11 + b _022BDE1C +_022BDE18: + mov r0, #0 +_022BDE1C: + add sp, sp, #4 + pop {r3, r4, pc} + arm_func_end ov00_022BDCB8 +_022BDE24: + .byte 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x58, 0x03, 0x2E, 0x02 + + arm_func_start ov00_022BDE30 +ov00_022BDE30: @ 0x022BDE30 + push {r4, r5, r6, lr} + ldr r0, _022BDF18 @ =0x023187A0 + add r2, r1, #0x1f + ldr r5, [r0, #0x20] + lsr r6, r2, #5 + mov r4, #0 + cmp r1, #0 + moveq r0, r4 + popeq {r4, r5, r6, pc} + bl FUN_0207B7E4 + ldr r1, _022BDF18 @ =0x023187A0 + ldr r1, [r1, #0x18] + b _022BDEE4 +_022BDE64: + ldr r2, [r5] + cmp r2, #0 + bne _022BDED8 + ldr r2, [r5, #4] + cmp r6, r2 + bhs _022BDEC8 + add r2, r5, r6, lsl #5 + mov r1, #0 + str r1, [r2, #0x20] + ldr r1, [r5, #4] + add r3, r2, #0x20 + sub r1, r1, r6 + sub r1, r1, #1 + stmib r3, {r1, r6} + ldr r2, [r3, #4] + ldr r1, _022BDF18 @ =0x023187A0 + add r3, r3, r2, lsl #5 + ldr r1, [r1, #0x18] + add r3, r3, #0x20 + cmp r3, r1 + strlo r2, [r3, #8] + mov r1, #1 + stm r5, {r1, r6} + add r4, r5, #0x20 + b _022BDEEC +_022BDEC8: + moveq r1, #1 + streq r1, [r5] + addeq r4, r5, #0x20 + beq _022BDEEC +_022BDED8: + ldr r2, [r5, #4] + add r2, r5, r2, lsl #5 + add r5, r2, #0x20 +_022BDEE4: + cmp r5, r1 + blo _022BDE64 +_022BDEEC: + bl FUN_0207B7F8 + ldr r0, _022BDF18 @ =0x023187A0 + add r1, r6, #1 + ldr r2, [r0, #0x14] + add r2, r2, r1 + str r2, [r0, #0x14] + ldr r1, [r0, #4] + cmp r2, r1 + strgt r2, [r0, #4] mov r0, r4 - str r2, [r1, #8] pop {r4, r5, r6, pc} .align 2, 0 -_02028188: .4byte 0x022A8992 -_0202818C: .4byte 0x022A88E4 -_02028190: .4byte 0x020AFD4C - arm_func_end FUN_0202812c +_022BDF18: .4byte 0x023187A0 + arm_func_end ov00_022BDE30 - arm_func_start FUN_02028194 -FUN_02028194: @ 0x02028194 - push {r3, r4, r5, lr} - ldr r2, _02028224 @ =0x022A88DC - mov r1, #0xe0 - mla r4, r0, r1, r2 - bl FUN_0202812c - ldrb r5, [r4, #8] - ldr lr, _02028224 @ =0x022A88DC - mov ip, #1 - mov r3, #0 -_020281B8: - cmp lr, r4 - ldrsbne r0, [lr, #0xb6] - cmpne r0, #0 - beq _020281EC - ldrb r0, [lr, #8] - cmp r5, r0 - bne _020281EC - ldrh r2, [lr, #0x12] - ldrb r1, [lr, #6] - ldrb r0, [lr, #7] - mla r0, r1, r0, r2 - cmp ip, r0 - movlt ip, r0 -_020281EC: - add r3, r3, #1 - cmp r3, #0x14 - add lr, lr, #0xe0 - blt _020281B8 - ldr r0, [r4, #0x14] - ldr r1, _02028228 @ =0x022A7A74 - lsl r2, r5, #1 - strh ip, [r1, r2] - bl MemFree - ldrsb r0, [r4, #0x10] - bl FUN_02027974 - mov r0, #0 - strb r0, [r4, #0xb6] - pop {r3, r4, r5, pc} - .align 2, 0 -_02028224: .4byte 0x022A88DC -_02028228: .4byte 0x022A7A74 - arm_func_end FUN_02028194 -_0202822C: - .byte 0x10, 0x40, 0x2D, 0xE9 - .byte 0x20, 0x20, 0x9F, 0xE5, 0xE0, 0x10, 0xA0, 0xE3, 0x90, 0x21, 0x24, 0xE0, 0x14, 0x00, 0x94, 0xE5 - .byte 0xD0, 0x63, 0xFF, 0xEB, 0xD0, 0x01, 0xD4, 0xE1, 0xC9, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3 - .byte 0xB6, 0x00, 0xC4, 0xE5, 0x10, 0x80, 0xBD, 0xE8, 0xDC, 0x88, 0x2A, 0x02, 0x08, 0x20, 0x9F, 0xE5 - .byte 0x80, 0x00, 0xA0, 0xE1, 0xB0, 0x10, 0x82, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x74, 0x7A, 0x2A, 0x02 - .byte 0x08, 0x10, 0x9F, 0xE5, 0x80, 0x00, 0xA0, 0xE1, 0xB0, 0x00, 0x91, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x74, 0x7A, 0x2A, 0x02 - - arm_func_start FUN_02028284 -FUN_02028284: @ 0x02028284 - ldr r3, _020282C4 @ =0x022A88DC - mov r2, #0xe0 - mla r3, r0, r2, r3 - ldrb r0, [r3, #5] - lsl r2, r0, #3 - str r2, [r1] - ldrb r0, [r3, #7] - add r0, r2, r0, lsl #3 - str r0, [r1, #4] - ldrb r0, [r3, #4] - lsl r2, r0, #3 - str r2, [r1, #8] - ldrb r0, [r3, #6] - add r0, r2, r0, lsl #3 - str r0, [r1, #0xc] - bx lr - .align 2, 0 -_020282C4: .4byte 0x022A88DC - arm_func_end FUN_02028284 - - arm_func_start FUN_020282c8 -FUN_020282c8: @ 0x020282C8 - ldr r3, _020282F0 @ =0x022A88DC - mov r2, #0xe0 - mla r2, r0, r2, r3 - ldrb r0, [r2, #7] - lsl r0, r0, #3 - str r0, [r1, #4] - ldrb r0, [r2, #6] - lsl r0, r0, #3 - str r0, [r1] - bx lr - .align 2, 0 -_020282F0: .4byte 0x022A88DC - arm_func_end FUN_020282c8 - - arm_func_start FUN_020282f4 -FUN_020282f4: @ 0x020282F4 - mov r1, #0xe0 - mul r1, r0, r1 - ldr r0, _02028308 @ =0x022A8994 - ldr r0, [r0, r1] - bx lr - .align 2, 0 -_02028308: .4byte 0x022A8994 - arm_func_end FUN_020282f4 - - arm_func_start FUN_0202830c -FUN_0202830c: @ 0x0202830C - mov r2, #0xe0 - mul r2, r0, r2 - ldr r0, _02028320 @ =0x022A8994 - str r1, [r0, r2] - bx lr - .align 2, 0 -_02028320: .4byte 0x022A8994 - arm_func_end FUN_0202830c - - arm_func_start FUN_02028324 -FUN_02028324: @ 0x02028324 - mov r1, #0xe0 - mul r1, r0, r1 - ldr r0, _02028338 @ =0x022A88E4 - ldrb r0, [r0, r1] - bx lr - .align 2, 0 -_02028338: .4byte 0x022A88E4 - arm_func_end FUN_02028324 - - arm_func_start GetDialogBoxField0xC -GetDialogBoxField0xC: @ 0x0202833C - ldr r2, _02028350 @ =0x022A88DC - mov r1, #0xe0 - mla r1, r0, r1, r2 - ldr r0, [r1, #0xc] - bx lr - .align 2, 0 -_02028350: .4byte 0x022A88DC - arm_func_end GetDialogBoxField0xC - - arm_func_start FUN_02028354 -FUN_02028354: @ 0x02028354 - mov r1, #0xe0 - mul r1, r0, r1 - ldr r0, _02028368 @ =0x022A8992 - ldrsb r0, [r0, r1] - bx lr - .align 2, 0 -_02028368: .4byte 0x022A8992 - arm_func_end FUN_02028354 - - arm_func_start FUN_0202836c -FUN_0202836c: @ 0x0202836C - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #8 - ldr r2, _02028438 @ =0x022A88DC - mov r1, #0xe0 - mla r6, r0, r1, r2 - ldrb r0, [r6, #8] - cmp r0, #0 - bne _020283A4 - ldrb r0, [r6, #4] - ldrb r1, [r6, #5] - ldrb r2, [r6, #6] - ldrb r3, [r6, #7] - bl FUN_02029154 - b _02028428 -_020283A4: - ldrb r0, [r6, #8] - bl FUN_0202843c - ldrb r1, [r6, #5] - mov r7, r0 - add r5, sp, #0 - str r1, [sp, #4] + arm_func_start ov00_022BDF1C +ov00_022BDF1C: @ 0x022BDF1C + push {r4, r5, r6, lr} mov r4, #0 - b _02028410 -_020283C4: - ldrb r0, [r6, #4] - str r0, [sp] - b _020283EC -_020283D0: - mov r0, r7 - mov r1, r5 + movs r6, r1 + mov r5, r4 + popeq {r4, r5, r6, pc} + bl FUN_0207B7E4 + sub r1, r6, #0x20 + ldr r2, _022BE004 @ =0x023187A0 + ldr r3, [r1, #4] + ldr ip, [r2, #0x14] + add r3, r3, #1 + sub r3, ip, r3 + str r3, [r2, #0x14] mov r2, r4 - bl FUN_0200b3fc - ldr r0, [sp] - add r0, r0, #1 - str r0, [sp] -_020283EC: - ldrb r1, [r6, #4] - ldrb r0, [r6, #6] - ldr r2, [sp] - add r0, r1, r0 - cmp r2, r0 - blt _020283D0 - ldr r0, [sp, #4] - add r0, r0, #1 - str r0, [sp, #4] -_02028410: - ldrb r1, [r6, #5] - ldrb r0, [r6, #7] - ldr r2, [sp, #4] - add r0, r1, r0 - cmp r2, r0 - blt _020283C4 -_02028428: - ldrb r0, [r6, #8] - bl FUN_02027aa0 - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, pc} + str r2, [r6, #-0x20] + ldr r2, [r1, #8] + ldr r3, [r1, #4] + cmp r2, #0 + subge r2, r1, r2, lsl #5 + subge r5, r2, #0x20 + ldr r2, _022BE004 @ =0x023187A0 + add r3, r1, r3, lsl #5 + ldr r2, [r2, #0x18] + add r3, r3, #0x20 + cmp r3, r2 + movlo r4, r3 + cmp r5, #0 + beq _022BDFBC + ldr r2, [r5] + cmp r2, #0 + bne _022BDFBC + ldr r1, [r1, #4] + ldr r2, [r5, #4] + add r1, r1, #1 + add r1, r2, r1 + str r1, [r5, #4] + cmp r4, #0 + ldrne r1, [r5, #4] + strne r1, [r4, #8] + mov r1, r5 +_022BDFBC: + cmp r4, #0 + beq _022BDFFC + ldr r2, [r4] + cmp r2, #0 + bne _022BDFFC + ldr r2, [r4, #4] + ldr r3, [r1, #4] + add r2, r2, #1 + add r4, r3, r2 + ldr r2, _022BE004 @ =0x023187A0 + add r3, r1, r4, lsl #5 + str r4, [r1, #4] + ldr r1, [r2, #0x18] + add r2, r3, #0x20 + cmp r2, r1 + strlo r4, [r2, #8] +_022BDFFC: + bl FUN_0207B7F8 + pop {r4, r5, r6, pc} .align 2, 0 -_02028438: .4byte 0x022A88DC - arm_func_end FUN_0202836c +_022BE004: .4byte 0x023187A0 + arm_func_end ov00_022BDF1C +_022BE008: + .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x9F, 0x05 + .byte 0x01, 0x10, 0xA0, 0x03, 0x01, 0x10, 0xC0, 0x05, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD4, 0x31, 0x02 + .byte 0x00, 0x00, 0x50, 0xE3, 0x1E, 0xFF, 0x2F, 0x11, 0x10, 0x00, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE3 + .byte 0x02, 0x20, 0xC0, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x00, 0x20, 0xC0, 0x15, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x20, 0xD4, 0x31, 0x02, 0x08, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0xC0, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD4, 0x31, 0x02, 0x08, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x10, 0xC0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD4, 0x31, 0x02, 0x08, 0x00, 0x9F, 0xE5 + .byte 0x01, 0x10, 0xA0, 0xE3, 0x08, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD4, 0x31, 0x02 + .byte 0x08, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x20, 0xD4, 0x31, 0x02 - arm_func_start FUN_0202843c -FUN_0202843c: @ 0x0202843C + arm_func_start ov00_022BE094 +ov00_022BE094: @ 0x022BE094 + push {r3, lr} + ldr r0, _022BE0B0 @ =0x02317FA0 + bl FUN_020348E4 + cmp r0, #0 + popeq {r3, pc} + bl FUN_0232F3F4 + pop {r3, pc} + .align 2, 0 +_022BE0B0: .4byte 0x02317FA0 + arm_func_end ov00_022BE094 + + arm_func_start ov00_022BE0B4 +ov00_022BE0B4: @ 0x022BE0B4 + ldr ip, _022BE0C0 @ =FUN_020348E4 + ldr r0, _022BE0C4 @ =0x02317FB0 + bx ip + .align 2, 0 +_022BE0C0: .4byte FUN_020348E4 +_022BE0C4: .4byte 0x02317FB0 + arm_func_end ov00_022BE0B4 + + arm_func_start ov00_022BE0C8 +ov00_022BE0C8: @ 0x022BE0C8 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x130 + mov sl, r0 + cmp sl, #3 + bne _022BE108 + bl FUN_0204A1CC + bl ov00_022BCA80 + mov r0, #1 + bl ov00_022BCC30 + bl ov00_022BD3F4 + bl ov00_022BD4EC + bl ov00_022BD780 + mov r0, #1 + bl ov00_022BCBAC + mov r0, #2 + b _022BE3B0 +_022BE108: + cmp sl, #4 + bne _022BE134 + bl FUN_0204A1CC + bl ov00_022BCA80 + mov r4, r0 + mov r0, #1 + bl ov00_022BCBAC + cmp r4, #3 + beq _022BE184 + mov r0, #0x16 + b _022BE3B0 +_022BE134: + bl FUN_0204A1CC + bl ov00_022BCA80 + mov r0, #0 + bl ov00_022BCC30 + cmp r0, #0 + bne _022BE17C + bl ov00_022BD3F4 + bl FUN_0205B80C + mov r0, #0 + bl FUN_0205B77C + mov r1, #0 + str r1, [r0, #0xc] + str r1, [r0, #0x10] + mov r0, r1 + bl FUN_020590DC + bl ov00_022BD4EC + cmp sl, #0 + moveq sl, #5 +_022BE17C: + mov r0, #1 + bl ov00_022BCBAC +_022BE184: + ldr r0, _022BE3B8 @ =0x0231E2A0 + mov r1, #1 + str r1, [r0, #4] + mov r1, #0 + str r1, [r0] + bl FUN_02028E2C + bl FUN_02017A68 + mov r0, #2 + bl FUN_02017B58 + bl FUN_020519D0 + bl FUN_0201DC90 + bl ov00_022BE4D8 + bl FUN_0232E768 + ldr r1, _022BE3BC @ =0x023187EC + mov r2, #1 + ldr r0, _022BE3C0 @ =ov00_022BE3CC + strb r2, [r1] + bl FUN_0200383C + mov r6, #0 + ldr r7, _022BE3C4 @ =0x022BE4C8 + ldr r4, _022BE3B8 @ =0x0231E2A0 + mov fp, r6 + mov r5, r6 + mov r8, #3 + mov sb, #2 +_022BE1E8: + bl FUN_020038E8 + ldr r0, [r4, #4] + cmp r0, #0 + beq _022BE2AC cmp r0, #1 - ldreq r0, _02028458 @ =0x022A7B00 - bxeq lr + streq sb, [r4, #4] + beq _022BE304 cmp r0, #2 - ldreq r0, _0202845C @ =0x022A7AE4 - ldrne r0, _02028460 @ =0x022A7AC8 + bne _022BE234 + bl ov00_022BE918 + cmp sl, #1 + bne _022BE224 + mov r0, #0 + bl ov00_022BE57C + b _022BE22C +_022BE224: + mov r0, #0x1e + bl ov00_022BE57C +_022BE22C: + str r8, [r4, #4] + b _022BE304 +_022BE234: + bl ov00_022BE680 + cmp r0, #0 + bne _022BE304 + bl ov00_022BE6AC + cmp r0, #0 + bne _022BE304 + ldr r0, [r4, #4] + cmp r0, #3 + bne _022BE320 + cmp sl, #4 + bne _022BE268 + bl FUN_0233AE64 + b _022BE2A4 +_022BE268: + cmp sl, #2 + bne _022BE278 + bl FUN_02337914 + b _022BE2A4 +_022BE278: + cmp sl, #5 + bne _022BE29C + mov r0, #0x248 + mov r1, #0x100 + add r2, sp, #0x98 + str r7, [sp, #0x11c] + str r6, [sp, #0x120] + bl FUN_02046804 + b _022BE2A4 +_022BE29C: + mov r0, #0 + bl FUN_023310B8 +_022BE2A4: + str r5, [r4, #4] + b _022BE304 +_022BE2AC: + ldr r0, [r4] + cmp r0, #0 + beq _022BE304 + cmp r0, #0x14 + beq _022BE320 + cmp r0, #8 + bne _022BE2E4 + str r7, [sp, #0x84] + str fp, [sp, #0x88] + mov r0, #0x100 + add r1, sp, #0 + str fp, [r4] + bl FUN_02049A40 + b _022BE304 +_022BE2E4: + mov r0, #0x1e + bl FUN_02017ACC + mov r0, #0x1e + bl ov00_022BE5C8 + mov r0, #0x1e + bl ov00_022BE630 + mov r0, #4 + str r0, [r4, #4] +_022BE304: + bl FUN_02006E14 + bl FUN_0232EA30 + bl FUN_020039E4 + bl FUN_0232EC30 + bl FUN_02034A80 + bl FUN_02028848 + b _022BE1E8 +_022BE320: + mov r0, #0 + bl FUN_0200383C + bl FUN_0232E7E8 + bl FUN_02034710 + bl FUN_0232E7C0 + bl ov00_022BE51C + bl FUN_0201DCD0 + bl FUN_02051B44 + ldr r0, _022BE3B8 @ =0x0231E2A0 + ldr r0, [r0] + cmp r0, #0x15 + bne _022BE398 + mov r0, #4 + bl FUN_02004868 + mov r0, #5 + bl FUN_020040AC + bl FUN_020184B4 + bl FUN_020024B0 + bl FUN_02329520 + ldr r2, _022BE3C8 @ =0x04000208 + mov r0, #1 + ldrh r1, [r2] + strh r0, [r2] + bl FUN_020024C0 + bl FUN_020184C0 + mov r0, #3 + bl FUN_02002448 + mov r0, #3 + bl FUN_02002448 + b _022BE3A8 +_022BE398: + cmp r0, #3 + bne _022BE3A8 + mov r0, #5 + bl FUN_02002448 +_022BE3A8: + ldr r0, _022BE3B8 @ =0x0231E2A0 + ldr r0, [r0] +_022BE3B0: + add sp, sp, #0x130 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022BE3B8: .4byte 0x0231E2A0 +_022BE3BC: .4byte 0x023187EC +_022BE3C0: .4byte ov00_022BE3CC +_022BE3C4: .4byte 0x022BE4C8 +_022BE3C8: .4byte 0x04000208 + arm_func_end ov00_022BE0C8 + + arm_func_start ov00_022BE3CC +ov00_022BE3CC: @ 0x022BE3CC + push {r4, lr} + bl FUN_0201BF64 + bl FUN_02028E40 + bl FUN_020038D8 + cmp r0, #0 + beq _022BE3EC + bl ov00_022BE6D0 + bl FUN_02003990 +_022BE3EC: + bl FUN_0232BE98 + bl FUN_0233103C + bl FUN_0232ED5C + bl ov00_022BE774 + bl FUN_0232C244 + bl FUN_0232C4D8 + bl FUN_0201DD48 + bl FUN_0201F464 + ldr r0, _022BE4A4 @ =0x023187EC + ldrb r0, [r0] + cmp r0, #0 + bne _022BE420 + bl FUN_0201DDFC +_022BE420: + bl FUN_02008F84 + bl FUN_0201BE28 + bl FUN_02017A80 + bl FUN_02003A40 + ldr r1, _022BE4A4 @ =0x023187EC + mov r4, r0 + ldrb r0, [r1] + cmp r0, #0 + beq _022BE464 + mov r0, #0 + bl FUN_02008ED0 + mov r0, #0 + mov r1, #2 + bl FUN_02008F64 + mov r0, #1 + mov r1, #2 + bl FUN_02008F64 +_022BE464: + bl FUN_0232ED84 + mov r0, r4 + bl FUN_02028A64 + bl FUN_0201BE5C + bl FUN_0201BE84 + bl FUN_020778D0 + bl FUN_0201DE10 + bl FUN_02028E88 + bl FUN_02051C24 + bl FUN_0201BF4C + bl FUN_02008F88 + ldr r1, _022BE4A4 @ =0x023187EC + mov r2, #0 + mov r0, r4 + strb r2, [r1] + pop {r4, pc} + .align 2, 0 +_022BE4A4: .4byte 0x023187EC + arm_func_end ov00_022BE3CC + + arm_func_start ov00_022BE4A8 +ov00_022BE4A8: @ 0x022BE4A8 + ldr r1, _022BE4C4 @ =0x0231E2A0 + ldr r2, [r1] + cmp r2, #0 + streq r0, [r1] + moveq r0, #1 + movne r0, #0 bx lr .align 2, 0 -_02028458: .4byte 0x022A7B00 -_0202845C: .4byte 0x022A7AE4 -_02028460: .4byte 0x022A7AC8 - arm_func_end FUN_0202843c +_022BE4C4: .4byte 0x0231E2A0 + arm_func_end ov00_022BE4A8 +_022BE4C8: + .byte 0x04, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xB8, 0x10, 0x33, 0x02 - arm_func_start FUN_02028464 -FUN_02028464: @ 0x02028464 - push {r3, r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #0x14 - ldr r3, _02028768 @ =0x022A88DC - mov r2, #0xe0 - mla r4, r0, r2, r3 - ldrsb r0, [r4, #9] - ldrb r5, [r4, #8] - ldr r7, _0202876C @ =0x0209AC64 - rsb r2, r0, #0 - mov r0, r5 - lsl r6, r2, #1 - mov r8, r1 - bl FUN_0202843c - ldrsb r1, [r7, r6] - mov r6, r0 - cmp r1, #0 - movlt r8, #0 - cmp r5, #0 - bne _020284D8 - ldrh r0, [r4, #0x30] - str r0, [sp] - ldrb r0, [r4, #0x11] - stmib sp, {r0, r8} - ldrb r0, [r4, #4] - ldrb r1, [r4, #5] - ldrb r2, [r4, #6] - ldrb r3, [r4, #7] - bl FUN_020291fc - b _02028758 -_020284D8: - ldrb r0, [r4, #0x11] + arm_func_start ov00_022BE4D8 +ov00_022BE4D8: @ 0x022BE4D8 + push {r3, lr} + ldr r0, _022BE514 @ =0x0231E2FC + mov r1, #1 + bl FUN_0200B894 + ldr r0, _022BE518 @ =0x0231E2B8 + mov r1, #1 + bl FUN_0200B894 + bl ov00_022BE53C + ldr r0, _022BE518 @ =0x0231E2B8 + mov r1, #1 + bl FUN_0200B8D4 + ldr r0, _022BE518 @ =0x0231E2B8 + ldrsh r0, [r0, #0x14] + bl ov00_022BE868 + pop {r3, pc} + .align 2, 0 +_022BE514: .4byte 0x0231E2FC +_022BE518: .4byte 0x0231E2B8 + arm_func_end ov00_022BE4D8 + + arm_func_start ov00_022BE51C +ov00_022BE51C: @ 0x022BE51C + push {r3, lr} + ldr r0, _022BE534 @ =0x0231E2FC + bl FUN_0200B8B8 + ldr r0, _022BE538 @ =0x0231E2B8 + bl FUN_0200B8B8 + pop {r3, pc} + .align 2, 0 +_022BE534: .4byte 0x0231E2FC +_022BE538: .4byte 0x0231E2B8 + arm_func_end ov00_022BE51C + + arm_func_start ov00_022BE53C +ov00_022BE53C: @ 0x022BE53C + push {r3, lr} + ldr r2, _022BE574 @ =0x0231E2A8 + mov r1, #0 + strb r1, [r2] + str r1, [r2, #0xc] + ldr r0, _022BE578 @ =0x0231E2FC + str r1, [r2, #8] + mov r1, #1 + strb r1, [r2, #1] + bl FUN_0200B8D4 + ldr r0, _022BE578 @ =0x0231E2FC + ldrsh r0, [r0, #0x14] + bl ov00_022BE868 + pop {r3, pc} + .align 2, 0 +_022BE574: .4byte 0x0231E2A8 +_022BE578: .4byte 0x0231E2FC + arm_func_end ov00_022BE53C + + arm_func_start ov00_022BE57C +ov00_022BE57C: @ 0x022BE57C + push {r4, lr} + mov r4, r0 + mov r0, #2 + bl FUN_02002878 cmp r0, #0 - beq _0202857C - ldrh r0, [r4, #0x30] - ldrb r1, [r4, #5] - add r7, sp, #0xc - orr r0, r0, #0x400 - lsl r0, r0, #0x10 - str r1, [sp, #0x10] - lsr sb, r0, #0x10 - b _02028560 -_02028504: - ldrb r1, [r4, #4] - ldrb r0, [r4, #6] - add r0, r1, r0 - sub r0, r0, #1 - str r0, [sp, #0xc] - b _02028544 -_0202851C: - add r0, sb, #1 - mov r2, sb - lsl r3, r0, #0x10 + ldreq r0, _022BE5C0 @ =0x0231E2A8 + moveq r1, #1 + streq r1, [r0, #8] + streq r4, [r0, #4] + beq _022BE5B8 + ldr r0, _022BE5C4 @ =0x0231E2FC + mov r1, r4 + bl FUN_0200BB60 + ldr r0, _022BE5C0 @ =0x0231E2A8 + mov r1, #1 +_022BE5B8: + strb r1, [r0, #1] + pop {r4, pc} + .align 2, 0 +_022BE5C0: .4byte 0x0231E2A8 +_022BE5C4: .4byte 0x0231E2FC + arm_func_end ov00_022BE57C + + arm_func_start ov00_022BE5C8 +ov00_022BE5C8: @ 0x022BE5C8 + push {r4, lr} + mov r4, r0 + mov r0, #2 + bl FUN_02002878 + cmp r0, #0 + ldreq r0, _022BE610 @ =0x0231E2A8 + moveq r1, #2 + streq r1, [r0, #8] + streq r4, [r0, #4] + beq _022BE604 + ldr r0, _022BE614 @ =0x0231E2FC + mov r2, r4 + mov r1, #1 + bl FUN_0200BB74 + ldr r0, _022BE610 @ =0x0231E2A8 +_022BE604: + mov r1, #1 + strb r1, [r0, #1] + pop {r4, pc} + .align 2, 0 +_022BE610: .4byte 0x0231E2A8 +_022BE614: .4byte 0x0231E2FC + arm_func_end ov00_022BE5C8 + + arm_func_start ov00_022BE618 +ov00_022BE618: @ 0x022BE618 + ldr ip, _022BE628 @ =FUN_0200BB60 + mov r1, r0 + ldr r0, _022BE62C @ =0x0231E2B8 + bx ip + .align 2, 0 +_022BE628: .4byte FUN_0200BB60 +_022BE62C: .4byte 0x0231E2B8 + arm_func_end ov00_022BE618 + + arm_func_start ov00_022BE630 +ov00_022BE630: @ 0x022BE630 + ldr ip, _022BE644 @ =FUN_0200BB74 + mov r2, r0 + ldr r0, _022BE648 @ =0x0231E2B8 + mov r1, #1 + bx ip + .align 2, 0 +_022BE644: .4byte FUN_0200BB74 +_022BE648: .4byte 0x0231E2B8 + arm_func_end ov00_022BE630 + + arm_func_start ov00_022BE64C +ov00_022BE64C: @ 0x022BE64C + push {r3, lr} + mov r2, r0 + ldr r0, _022BE67C @ =0x0231E2B8 + ldrsh r1, [r0, #0x14] + cmp r1, #0 + ble _022BE670 + mov r1, #2 + bl FUN_0200BB74 + pop {r3, pc} +_022BE670: + mov r1, #1 + bl FUN_0200BB74 + pop {r3, pc} + .align 2, 0 +_022BE67C: .4byte 0x0231E2B8 + arm_func_end ov00_022BE64C + + arm_func_start ov00_022BE680 +ov00_022BE680: @ 0x022BE680 + push {r3, lr} + ldr r0, _022BE6A4 @ =0x0231E2A8 + ldrb r0, [r0] + cmp r0, #0 + movne r0, #1 + popne {r3, pc} + ldr r0, _022BE6A8 @ =0x0231E2FC + bl FUN_0200BD14 + pop {r3, pc} + .align 2, 0 +_022BE6A4: .4byte 0x0231E2A8 +_022BE6A8: .4byte 0x0231E2FC + arm_func_end ov00_022BE680 + + arm_func_start ov00_022BE6AC +ov00_022BE6AC: @ 0x022BE6AC + ldr ip, _022BE6B8 @ =FUN_0200BD14 + ldr r0, _022BE6BC @ =0x0231E2B8 + bx ip + .align 2, 0 +_022BE6B8: .4byte FUN_0200BD14 +_022BE6BC: .4byte 0x0231E2B8 + arm_func_end ov00_022BE6AC +_022BE6C0: + .byte 0x04, 0x00, 0x9F, 0xE5, 0xF4, 0x01, 0xD0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xB8, 0xE2, 0x31, 0x02 + + arm_func_start ov00_022BE6D0 +ov00_022BE6D0: @ 0x022BE6D0 + push {r3, lr} + ldr r0, _022BE76C @ =0x0231E2A8 + ldr r1, [r0, #8] + cmp r1, #0 + beq _022BE74C + cmp r1, #1 + beq _022BE700 + cmp r1, #2 + beq _022BE710 + cmp r1, #3 + beq _022BE724 + b _022BE734 +_022BE700: + ldr r1, [r0, #4] + ldr r0, _022BE770 @ =0x0231E2FC + bl FUN_0200BB60 + b _022BE734 +_022BE710: + ldr r2, [r0, #4] + ldr r0, _022BE770 @ =0x0231E2FC + mov r1, #1 + bl FUN_0200BB74 + b _022BE734 +_022BE724: + ldr r2, [r0, #4] + ldr r0, _022BE770 @ =0x0231E2FC + mov r1, #2 + bl FUN_0200BB74 +_022BE734: + ldr r0, _022BE76C @ =0x0231E2A8 + mov r1, #0 + str r1, [r0, #8] + mov r1, #1 + strb r1, [r0, #1] + pop {r3, pc} +_022BE74C: + ldr r0, _022BE770 @ =0x0231E2FC + ldr r0, [r0, #4] + cmp r0, #0 + movne r1, #1 + ldr r0, _022BE76C @ =0x0231E2A8 + moveq r1, #0 + strb r1, [r0, #1] + pop {r3, pc} + .align 2, 0 +_022BE76C: .4byte 0x0231E2A8 +_022BE770: .4byte 0x0231E2FC + arm_func_end ov00_022BE6D0 + + arm_func_start ov00_022BE774 +ov00_022BE774: @ 0x022BE774 + push {r4, lr} + ldr r0, _022BE85C @ =0x0231E2A8 + mov r4, #1 + ldrb r0, [r0] + cmp r0, #0 + beq _022BE830 + ldr r0, _022BE860 @ =0x0231E2FC + bl FUN_0200BD2C + cmp r0, #0 + bne _022BE7B8 + ldr r1, _022BE85C @ =0x0231E2A8 + ldr r0, _022BE860 @ =0x0231E2FC + ldr r2, [r1, #0xc] + mov r1, r4 + bl FUN_0200BB74 + mov r4, #0 + b _022BE7C8 +_022BE7B8: + ldr r0, _022BE860 @ =0x0231E2FC + bl FUN_0200BC54 + cmp r0, #0 + movne r4, #0 +_022BE7C8: + ldr r0, _022BE860 @ =0x0231E2FC + ldrsh r0, [r0, #0x14] + bl ov00_022BE868 + ldr r0, _022BE864 @ =0x0231E2B8 + bl FUN_0200BD2C + cmp r0, #0 + bne _022BE800 + ldr r1, _022BE85C @ =0x0231E2A8 + ldr r0, _022BE864 @ =0x0231E2B8 + ldr r2, [r1, #0xc] + mov r1, #1 + bl FUN_0200BB74 + mov r4, #0 + b _022BE810 +_022BE800: + ldr r0, _022BE864 @ =0x0231E2B8 + bl FUN_0200BC54 + cmp r0, #0 + movne r4, #0 +_022BE810: + ldr r0, _022BE864 @ =0x0231E2B8 + ldrsh r0, [r0, #0x14] + bl ov00_022BE89C + cmp r4, #0 + ldrne r0, _022BE85C @ =0x0231E2A8 + movne r1, #0 + strbne r1, [r0] + pop {r4, pc} +_022BE830: + ldr r0, _022BE860 @ =0x0231E2FC + bl FUN_0200BC54 + ldr r0, _022BE860 @ =0x0231E2FC + ldrsh r0, [r0, #0x14] + bl ov00_022BE868 + ldr r0, _022BE864 @ =0x0231E2B8 + bl FUN_0200BC54 + ldr r0, _022BE864 @ =0x0231E2B8 + ldrsh r0, [r0, #0x14] + bl ov00_022BE89C + pop {r4, pc} + .align 2, 0 +_022BE85C: .4byte 0x0231E2A8 +_022BE860: .4byte 0x0231E2FC +_022BE864: .4byte 0x0231E2B8 + arm_func_end ov00_022BE774 + + arm_func_start ov00_022BE868 +ov00_022BE868: @ 0x022BE868 + push {r4, lr} + mov r4, r0 + mov r0, #1 + bl FUN_0200C110 + cmp r0, #0 + mov r0, #0 + beq _022BE890 + mov r1, r0 + bl FUN_02008F3C + pop {r4, pc} +_022BE890: + mov r1, r4 + bl FUN_02008F3C + pop {r4, pc} + arm_func_end ov00_022BE868 + + arm_func_start ov00_022BE89C +ov00_022BE89C: @ 0x022BE89C + push {r4, lr} + mov r4, r0 + mov r0, #1 + bl FUN_0200C110 + cmp r0, #0 + mov r0, #1 + beq _022BE8C4 + mov r1, #0 + bl FUN_02008F3C + pop {r4, pc} +_022BE8C4: + mov r1, r4 + bl FUN_02008F3C + pop {r4, pc} + arm_func_end ov00_022BE89C + + arm_func_start ov00_022BE8D0 +ov00_022BE8D0: @ 0x022BE8D0 + push {r3, lr} + sub sp, sp, #8 + ldr r0, _022BE910 @ =0x023187F0 + mov r1, #0 + ldr r3, [r0] + mov r2, #1 + str r3, [r0] + str r2, [sp] + ldr r0, _022BE914 @ =0x023187F4 + str r1, [sp, #4] + ldr r0, [r0, r3, lsl #2] + mov r2, r1 + mov r3, r1 + bl FUN_02052060 + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_022BE910: .4byte 0x023187F0 +_022BE914: .4byte 0x023187F4 + arm_func_end ov00_022BE8D0 + + arm_func_start ov00_022BE918 +ov00_022BE918: @ 0x022BE918 + push {r3, lr} + sub sp, sp, #8 + mov r0, #7 + bl FUN_02002274 + mov r1, #0 + ldr r2, _022BE95C @ =0x023187F0 + mov r3, #1 + str r0, [r2] + str r3, [sp] + ldr r2, _022BE960 @ =0x023187F4 + str r1, [sp, #4] + ldr r0, [r2, r0, lsl #2] + mov r2, r1 + mov r3, r1 + bl FUN_02052060 + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_022BE95C: .4byte 0x023187F0 +_022BE960: .4byte 0x023187F4 + arm_func_end ov00_022BE918 + + arm_func_start ov00_022BE964 +ov00_022BE964: @ 0x022BE964 + push {r3, lr} + mov r2, #0xf00 + bl ov00_022BE990 + cmp r0, #0 + popne {r3, pc} + ldr r1, _022BE98C @ =0x0231E340 + mov r2, #0 + ldr r1, [r1, #4] + strh r2, [r1, #0x16] + pop {r3, pc} + .align 2, 0 +_022BE98C: .4byte 0x0231E340 + arm_func_end ov00_022BE964 + + arm_func_start ov00_022BE990 +ov00_022BE990: @ 0x022BE990 + push {r4, r5, r6, r7, r8, sb, sl, lr} + mov r6, r0 + mov r4, r1 + mov r7, r2 + bl FUN_0207B7E4 + ldr r1, _022BEB60 @ =0x0231E340 + mov r5, r0 + ldrh r1, [r1] + cmp r1, #0 + beq _022BE9C4 + bl FUN_0207B7F8 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022BE9C4: + cmp r6, #0 + bne _022BE9D8 + bl FUN_0207B7F8 + mov r0, #6 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022BE9D8: + cmp r4, #3 + bls _022BE9EC + bl FUN_0207B7F8 + mov r0, #6 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022BE9EC: + tst r6, #0x1f + beq _022BEA00 + bl FUN_0207B7F8 + mov r0, #6 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022BEA00: + bl FUN_0207D9A4 + mov r0, #0xa + mov r1, #1 + bl FUN_0207DAFC + cmp r0, #0 + bne _022BEA28 + mov r0, r5 + bl FUN_0207B7F8 + mov r0, #4 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022BEA28: mov r0, r6 mov r1, r7 - lsr sb, r3, #0x10 - bl FUN_0200b3fc - ldr r0, [sp, #0xc] - sub r0, r0, #1 - str r0, [sp, #0xc] -_02028544: - ldrb r0, [r4, #4] - ldr r1, [sp, #0xc] - cmp r1, r0 - bge _0202851C - ldr r0, [sp, #0x10] - add r0, r0, #1 - str r0, [sp, #0x10] -_02028560: - ldrb r0, [r4, #5] - ldrb r1, [r4, #7] - ldr r2, [sp, #0x10] - add r1, r0, r1 - cmp r2, r1 - blt _02028504 - b _02028600 -_0202857C: - ldrh r7, [r4, #0x30] - ldrb sl, [r4, #5] - add sb, sp, #0xc - b _020285EC -_0202858C: - lsr r1, sl, #0x1f - ldrb r2, [r4, #4] - rsb r0, r1, sl, lsl #27 - add r0, r1, r0, ror #27 - str r0, [sp, #0x10] - str r2, [sp, #0xc] - b _020285D0 -_020285A8: - add r0, r7, #1 - mov r2, r7 - lsl r3, r0, #0x10 - mov r0, r6 + bl FUN_0207A2A4 + mov r0, r4 + mov r1, r6 + mov r3, r7 + mov r2, #0 + bl FUN_0207BC4C + ldr r0, _022BEB60 @ =0x0231E340 + add r1, r6, #0x200 + str r6, [r0, #4] + str r1, [r6] + ldr r2, [r0, #4] + ldr r1, [r2] + add r1, r1, #0x300 + str r1, [r2, #4] + ldr r2, [r0, #4] + ldr r1, [r2, #4] + add r1, r1, #0x800 + str r1, [r2, #0xc] + ldr r1, [r0, #4] + ldr r0, [r1, #0xc] + add r0, r0, #0x100 + str r0, [r1, #0x10] + bl ov00_022BF224 + ldr r1, _022BEB60 @ =0x0231E340 + mov r3, #0 + ldr r0, [r1, #4] + mov r2, r3 + strh r4, [r0, #0x14] + ldr r0, [r1, #4] + str r3, [r0, #0x14c] + ldr r0, [r1, #4] + add r0, r0, #0x100 + strh r3, [r0, #0x50] + b _022BEAD4 +_022BEAB8: + ldr r0, [r1, #4] + add r0, r0, r3, lsl #2 + str r2, [r0, #0xcc] + ldr r0, [r1, #4] + add r0, r0, r3, lsl #2 + str r2, [r0, #0x10c] + add r3, r3, #1 +_022BEAD4: + cmp r3, #0x10 + blt _022BEAB8 + ldr r0, _022BEB64 @ =0x0231E348 + ldr r1, _022BEB68 @ =0x0231E368 + mov r2, #0xa + bl FUN_02079DB8 + mov r6, #0 + mov r4, #0x8000 + ldr sl, _022BEB6C @ =0x0231E3E0 + mov sb, #2 + ldr r8, _022BEB64 @ =0x0231E348 + mov r7, #1 + b _022BEB30 +_022BEB08: + lsl r2, r6, #8 mov r1, sb - lsr r7, r3, #0x10 - bl FUN_0200b3fc - ldr r0, [sp, #0xc] - add r0, r0, #1 - str r0, [sp, #0xc] -_020285D0: - ldrb r1, [r4, #4] - ldrb r0, [r4, #6] - ldr r2, [sp, #0xc] - add r0, r1, r0 - cmp r2, r0 - blt _020285A8 - add sl, sl, #1 -_020285EC: - ldrb r0, [r4, #5] - ldrb r1, [r4, #7] - add r1, r0, r1 - cmp sl, r1 - blt _0202858C -_02028600: - cmp r8, #0 - beq _02028758 - subs r0, r0, #1 - str r0, [sp, #0x10] - bmi _02028670 - ldrb r0, [r4, #4] - add r8, sp, #0xc - mov r7, #0 - sub r0, r0, #1 - str r0, [sp, #0xc] - b _02028658 -_0202862C: - cmp r2, #0 - blt _0202864C - cmp r2, #0x20 - bge _0202864C - mov r0, r6 - mov r1, r8 + add r0, sl, r6, lsl #8 + strh r4, [sl, r2] + bl FUN_0207A2C0 + mov r0, r8 mov r2, r7 - bl FUN_0200b3fc -_0202864C: - ldr r0, [sp, #0xc] - add r0, r0, #1 - str r0, [sp, #0xc] -_02028658: - ldrb r1, [r4, #4] - ldrb r0, [r4, #6] - ldr r2, [sp, #0xc] - add r0, r1, r0 - cmp r2, r0 - ble _0202862C -_02028670: - ldrb r0, [r4, #5] - mov r8, #0 - add sb, sp, #0xc - str r0, [sp, #0x10] - mov r7, r8 - b _020286DC -_02028688: - ldrb r0, [r4, #4] - subs r0, r0, #1 - str r0, [sp, #0xc] - bmi _020286A8 - mov r0, r6 - mov r1, sb - mov r2, r8 - bl FUN_0200b3fc -_020286A8: - ldrb r1, [r4, #4] - ldrb r0, [r4, #6] - add r0, r1, r0 - str r0, [sp, #0xc] - cmp r0, #0x20 - bge _020286D0 - mov r0, r6 - mov r1, sb - mov r2, r7 - bl FUN_0200b3fc -_020286D0: - ldr r0, [sp, #0x10] - add r0, r0, #1 - str r0, [sp, #0x10] -_020286DC: - ldrb r1, [r4, #5] - ldrb r0, [r4, #7] - ldr r2, [sp, #0x10] - add r0, r1, r0 - cmp r2, r0 - blt _02028688 - cmp r2, #0x18 - bge _02028758 - ldrb r0, [r4, #4] - add r8, sp, #0xc - mov r7, #0 - sub r0, r0, #1 - str r0, [sp, #0xc] - b _02028740 -_02028714: - cmp r2, #0 - blt _02028734 - cmp r2, #0x20 - bge _02028734 - mov r0, r6 - mov r1, r8 - mov r2, r7 - bl FUN_0200b3fc -_02028734: - ldr r0, [sp, #0xc] - add r0, r0, #1 - str r0, [sp, #0xc] -_02028740: - ldrb r1, [r4, #4] - ldrb r0, [r4, #6] - ldr r2, [sp, #0xc] - add r0, r1, r0 - cmp r2, r0 - ble _02028714 -_02028758: + add r1, sl, r6, lsl #8 + bl FUN_02079DE0 + add r6, r6, #1 +_022BEB30: + cmp r6, #0xa + blt _022BEB08 + ldr r1, _022BEB70 @ =ov00_022BEE78 + mov r0, #0xa + bl FUN_0207DAB0 + ldr r1, _022BEB60 @ =0x0231E340 + mov r2, #1 mov r0, r5 - bl FUN_02027aa0 - add sp, sp, #0x14 - pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} + strh r2, [r1] + bl FUN_0207B7F8 + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} .align 2, 0 -_02028768: .4byte 0x022A88DC -_0202876C: .4byte 0x0209AC64 - arm_func_end FUN_02028464 +_022BEB60: .4byte 0x0231E340 +_022BEB64: .4byte 0x0231E348 +_022BEB68: .4byte 0x0231E368 +_022BEB6C: .4byte 0x0231E3E0 +_022BEB70: .4byte ov00_022BEE78 + arm_func_end ov00_022BE990 - arm_func_start FUN_02028770 -FUN_02028770: @ 0x02028770 + arm_func_start ov00_022BEB74 +ov00_022BEB74: @ 0x022BEB74 + push {r4, lr} + bl FUN_0207B7E4 + mov r4, r0 + bl ov00_022BED80 + cmp r0, #0 + beq _022BEB9C + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #3 + pop {r4, pc} +_022BEB9C: + mov r0, #1 + mov r1, #0 + bl ov00_022BEDE4 + cmp r0, #0 + popne {r4, pc} + bl ov00_022BF224 + mov r0, #0xa + mov r1, #0 + bl FUN_0207DAB0 + ldr r1, _022BEBE0 @ =0x0231E340 + mov r2, #0 + str r2, [r1, #4] + mov r0, r4 + strh r2, [r1] + bl FUN_0207B7F8 + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_022BEBE0: .4byte 0x0231E340 + arm_func_end ov00_022BEB74 + + arm_func_start ov00_022BEBE4 +ov00_022BEBE4: @ 0x022BEBE4 + ldr r2, _022BEBF8 @ =0x0231E340 + ldr r2, [r2, #4] + add r0, r2, r0, lsl #2 + str r1, [r0, #0x18] + bx lr + .align 2, 0 +_022BEBF8: .4byte 0x0231E340 + arm_func_end ov00_022BEBE4 + + arm_func_start ov00_022BEBFC +ov00_022BEBFC: @ 0x022BEBFC + push {r3, lr} + ldr r0, _022BEC50 @ =0x0231E348 + add r1, sp, #0 + mov r2, #0 + bl FUN_02079E74 + cmp r0, #0 + moveq r0, #0 + popeq {r3, pc} + ldr r0, [sp] + mov r1, #2 + bl FUN_0207A2A4 + ldr r1, [sp] + ldrh r0, [r1] + tst r0, #0x8000 + movne r0, r1 + popne {r3, pc} + ldr r0, _022BEC50 @ =0x0231E348 + mov r2, #1 + bl FUN_02079F18 + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_022BEC50: .4byte 0x0231E348 + arm_func_end ov00_022BEBFC + + arm_func_start ov00_022BEC54 +ov00_022BEC54: @ 0x022BEC54 push {r0, r1, r2, r3} push {r3, r4, r5, lr} - ldr r2, _020287C0 @ =0x022A88DC mov r5, r0 - mov r1, #0xe0 - mla r4, r5, r1, r2 - bl FUN_0202836c - ldr r0, [sp, #0x14] - ldr r2, [sp, #0x18] - strb r0, [r4, #4] - mov r0, r5 - mov r1, #1 - strb r2, [r4, #5] - bl FUN_02027e30 - mov r0, r5 - mov r1, #1 - bl FUN_02028464 + bl ov00_022BEBFC + movs r4, r0 + moveq r0, #8 + popeq {r3, r4, r5, lr} + addeq sp, sp, #0x10 + bxeq lr + strh r5, [r4] + ldrh r5, [sp, #0x14] + add r0, sp, #0x14 + bic r0, r0, #3 + mov r3, #0 + cmp r5, #0 + add r2, r0, #4 + ble _022BECB4 +_022BEC98: + add r2, r2, #4 + ldr r1, [r2, #-4] + add r0, r4, r3, lsl #2 + add r3, r3, #1 + str r1, [r0, #4] + cmp r3, r5 + blt _022BEC98 +_022BECB4: + mov r0, r4 + mov r1, #0x100 + bl FUN_0207A2C0 + mov r1, r4 + mov r0, #0xa + mov r2, #0 + bl FUN_0207DB20 + mov r5, r0 + ldr r0, _022BECFC @ =0x0231E348 + mov r1, r4 + mov r2, #1 + bl FUN_02079DE0 + cmp r5, #0 + movlt r0, #8 + movge r0, #2 pop {r3, r4, r5, lr} add sp, sp, #0x10 bx lr .align 2, 0 -_020287C0: .4byte 0x022A88DC - arm_func_end FUN_02028770 +_022BECFC: .4byte 0x0231E348 + arm_func_end ov00_022BEC54 - arm_func_start FUN_020287c4 -FUN_020287c4: @ 0x020287C4 - ldr r1, _020287DC @ =0x020AFD4C - mov r2, #1 - ldr r3, [r1, #8] - orr r0, r3, r2, lsl r0 - str r0, [r1, #8] - bx lr - .align 2, 0 -_020287DC: .4byte 0x020AFD4C - arm_func_end FUN_020287c4 - - arm_func_start FUN_020287e0 -FUN_020287e0: @ 0x020287E0 - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r1, _02028840 @ =0x022A7A6C + arm_func_start ov00_022BED00 +ov00_022BED00: @ 0x022BED00 + push {r4, r5, r6, lr} mov r6, r0 - ldrsb r0, [r1, #3] - mov r1, #0 - mov sb, #1 - ldr r4, _02028844 @ =0x022A88DC - mov r8, #0xe0 - mvn r7, #1 - b _0202882C -_02028808: - mla r5, r0, r8, r4 - ldrsb r2, [r5, #0xb6] - cmp r2, #2 - ldrbeq r2, [r5, #8] - cmpeq r6, r2 - bne _02028828 - bl FUN_02028464 - mov r1, sb -_02028828: - ldrsb r0, [r5, #0xb5] -_0202882C: - cmp r0, r7 - bne _02028808 - mov r0, r6 - bl FUN_02027aa0 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_02028840: .4byte 0x022A7A6C -_02028844: .4byte 0x022A88DC - arm_func_end FUN_020287e0 - - arm_func_start FUN_02028848 -FUN_02028848: @ 0x02028848 - push {r3, r4, r5, r6, r7, lr} - ldr r0, _020288D0 @ =0x022A7A6C - ldr r6, _020288D4 @ =0x022A88DC - ldrsb r0, [r0, #3] - mov r5, #0xe0 - mvn r4, #1 - b _02028888 -_02028864: - mla r7, r0, r5, r6 - ldrsb r0, [r7, #0xb6] - cmp r0, #0 - ldrne r1, [r7] - cmpne r1, #0 - beq _02028884 - mov r0, r7 - blx r1 -_02028884: - ldrsb r0, [r7, #0xb5] -_02028888: - cmp r0, r4 - bne _02028864 - ldr r0, _020288D8 @ =0x020AFD4C - ldr r0, [r0, #8] - tst r0, #1 - beq _020288A8 - mov r0, #0 - bl FUN_020287e0 -_020288A8: - ldr r0, _020288D8 @ =0x020AFD4C - ldr r0, [r0, #8] - tst r0, #2 - beq _020288C0 - mov r0, #1 - bl FUN_020287e0 -_020288C0: - ldr r0, _020288D8 @ =0x020AFD4C - mov r1, #0 - str r1, [r0, #8] - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_020288D0: .4byte 0x022A7A6C -_020288D4: .4byte 0x022A88DC -_020288D8: .4byte 0x020AFD4C - arm_func_end FUN_02028848 - - arm_func_start FUN_020288dc -FUN_020288dc: @ 0x020288DC - ldr r2, _020288F4 @ =0x022A88DC - mov r1, #0xe0 - mla r1, r0, r1, r2 - ldr ip, _020288F8 @ =FUN_02029670 - add r0, r1, #0xbc - bx ip - .align 2, 0 -_020288F4: .4byte 0x022A88DC -_020288F8: .4byte FUN_02029670 - arm_func_end FUN_020288dc - - arm_func_start FUN_020288fc -FUN_020288fc: @ 0x020288FC - push {r4, lr} - sub sp, sp, #8 - ldr lr, _02028944 @ =0x022A88DC - mov ip, #0xe0 - mla r4, r0, ip, lr - ldr lr, [r4, #0xb8] - sub r0, ip, #0xe1 - cmp lr, r0 - moveq ip, #1 - stm sp, {r2, r3} - movne ip, #0 - mov r2, r1 - add r0, r4, #0xbc - and r3, ip, #0xff - mov r1, #0 - bl FUN_02029688 - add sp, sp, #8 - pop {r4, pc} - .align 2, 0 -_02028944: .4byte 0x022A88DC - arm_func_end FUN_020288fc - - arm_func_start FUN_02028948 -FUN_02028948: @ 0x02028948 - push {r3, lr} - ldr r3, _0202897C @ =0x022A88DC - mov r2, #0xe0 - mla ip, r0, r2, r3 - ldr r3, [ip, #0xb8] - sub r0, r2, #0xe1 - cmp r3, r0 - moveq r2, #1 - movne r2, #0 - add r0, ip, #0xbc - and r2, r2, #0xff - bl FUN_02029758 - pop {r3, pc} - .align 2, 0 -_0202897C: .4byte 0x022A88DC - arm_func_end FUN_02028948 - - arm_func_start FUN_02028980 -FUN_02028980: @ 0x02028980 - push {r3, lr} - ldr r3, _020289B4 @ =0x022A88DC - mov r2, #0xe0 - mla ip, r0, r2, r3 - ldr r3, [ip, #0xb8] - sub r0, r2, #0xe1 - cmp r3, r0 - moveq r2, #1 - movne r2, #0 - add r0, ip, #0xbc - and r2, r2, #0xff - bl FUN_02029828 - pop {r3, pc} - .align 2, 0 -_020289B4: .4byte 0x022A88DC - arm_func_end FUN_02028980 - - arm_func_start FUN_020289b8 -FUN_020289b8: @ 0x020289B8 - push {r4, lr} - sub sp, sp, #8 - ldr lr, _02028A04 @ =0x022A88DC - mov ip, #0xe0 - mla r4, r0, ip, lr - ldr lr, [r4, #0xb8] - sub r0, ip, #0xe1 - cmp lr, r0 - moveq lr, #1 - str r3, [sp] - ldr ip, [sp, #0x10] - movne lr, #0 - mov r3, r2 - add r0, r4, #0xbc - and r2, lr, #0xff - str ip, [sp, #4] - bl FUN_020298f8 - add sp, sp, #8 - pop {r4, pc} - .align 2, 0 -_02028A04: .4byte 0x022A88DC - arm_func_end FUN_020289b8 - - arm_func_start FUN_02028a08 -FUN_02028a08: @ 0x02028A08 - push {r4, lr} - sub sp, sp, #0x10 - ldr lr, _02028A60 @ =0x022A88DC - mov ip, #0xe0 - mla r4, r0, ip, lr - sub r0, ip, #0xe1 - ldr lr, [r4, #0xb8] - ldr ip, [sp, #0x18] - cmp lr, r0 - stm sp, {r3, ip} - moveq lr, #1 - ldr r0, [sp, #0x1c] - movne lr, #0 - str r0, [sp, #8] - ldr ip, [sp, #0x20] - mov r3, r2 - add r0, r4, #0xbc - and r2, lr, #0xff - str ip, [sp, #0xc] - bl FUN_02029998 - add sp, sp, #0x10 - pop {r4, pc} - .align 2, 0 -_02028A60: .4byte 0x022A88DC - arm_func_end FUN_02028a08 - - arm_func_start FUN_02028a64 -FUN_02028a64: @ 0x02028A64 - push {r4, r5, r6, r7, r8, sb, sl, lr} - ldr r1, _02028DE8 @ =0x020AFD4C - movs r4, r0 - strb r4, [r1, #4] - mov r5, #8 - beq _02028D58 - ldr r0, _02028DEC @ =0x022A7A6C - mov r1, #0 - ldrsb r3, [r0, #3] - strb r3, [r0, #5] - strh r1, [r0, #6] - b _02028BF4 -_02028A94: - ldr r1, _02028DF0 @ =0x022A88DC - mov r0, #0xe0 - mla r6, r3, r0, r1 - ldrsb r1, [r6, #0xb6] - ldr r2, _02028DF4 @ =0x022A7B1C - mov r0, #0x30 - mla r7, r3, r0, r2 - cmp r1, #0 - beq _02028BDC - mov r0, #0 - strb r0, [r6, #0xb7] - ldrb r0, [r6, #8] - mov r1, #1 - strb r1, [r7] - cmp r0, #0 - bne _02028BC4 - ldr r0, _02028DF8 @ =0x020AFD98 - ldrsb r3, [r6, #9] - ldrb r2, [r0] - ldr r0, _02028DEC @ =0x022A7A6C - ldr r1, _02028DFC @ =0x0209ACA8 - ldrsh r0, [r0, #0x58] - rsb r3, r3, #0 - ldrb r1, [r1, r2] - ldr r2, _02028E00 @ =0x0209AC64 - lsl r3, r3, #1 - ldrsb r8, [r2, r3] - bl FUN_020278a8 - lsl r1, r5, #1 - str r0, [r6, #0x98] - add r0, r1, #9 - strh r0, [r6, #0x9e] - add r0, r1, #0xa - strh r0, [r6, #0x5e] - cmp r8, #0 - sub r5, r5, #1 - blt _02028BC4 - ldrsh r0, [r6, #0x38] - cmp r0, #0 - beq _02028BC4 - ldr r0, _02028E04 @ =0x0209AC78 - lsl r1, r8, #3 - add r3, r0, r8, lsl #3 - ldrsh r1, [r0, r1] - ldr r0, _02028DEC @ =0x022A7A6C - ldrsh r2, [r3, #2] - strh r1, [r6, #0x8a] - ldrsh r8, [r0, #6] - ldrsh r1, [r3, #4] - strh r2, [r6, #0x8c] - ldrsh r0, [r3, #6] - strh r1, [r6, #0x8e] - cmp r8, #0x14 - strh r0, [r6, #0x90] - bge _02028BC4 - ldr r0, _02028E08 @ =0x022A7EDC - add ip, r6, #0x34 - add sl, r0, r8, lsl #7 - mov sb, #4 -_02028B80: - ldm ip!, {r0, r1, r2, r3} - stm sl!, {r0, r1, r2, r3} - subs sb, sb, #1 - bne _02028B80 - ldr r0, _02028E08 @ =0x022A7EDC - add sl, r6, #0x74 - add r0, r0, r8, lsl #7 - add sb, r0, #0x40 - mov r8, #4 -_02028BA4: - ldm sl!, {r0, r1, r2, r3} - stm sb!, {r0, r1, r2, r3} - subs r8, r8, #1 - bne _02028BA4 - ldr r0, _02028DEC @ =0x022A7A6C - ldrsh r1, [r0, #6] - add r1, r1, #1 - strh r1, [r0, #6] -_02028BC4: - add r0, r7, #4 - add r1, r6, #0xbc - bl FUN_02029a68 - add r0, r7, #4 - bl FUN_02029b0c - b _02028BEC -_02028BDC: - mov r1, #0 - add r0, r7, #4 - strb r1, [r7] - bl FUN_02029a50 -_02028BEC: - ldrsb r3, [r6, #0xb5] - strb r3, [r7, #0x2c] -_02028BF4: - mvn r0, #1 - cmp r3, r0 - bne _02028A94 - ldr r1, _02028DEC @ =0x022A7A6C - ldrb r0, [r1, #4] - cmp r0, #0 - beq _02028C20 - ldr r0, _02028E0C @ =0x022A7AA0 - mov r2, #0 - strb r2, [r1, #4] - bl FUN_0200a174 -_02028C20: - ldr r1, _02028DEC @ =0x022A7A6C - ldrb r0, [r1] - cmp r0, #0 - beq _02028C40 - ldr r0, _02028E10 @ =0x022A7A8C - mov r2, #0 - strb r2, [r1] - bl FUN_0200a174 -_02028C40: - ldr r1, _02028DEC @ =0x022A7A6C - ldrb r0, [r1, #1] - cmp r0, #0 - beq _02028C60 - ldr r0, _02028E14 @ =0x022A7A78 - mov r2, #0 - strb r2, [r1, #1] - bl FUN_0200a174 -_02028C60: - mov r8, #0 - ldr r7, _02028DF0 @ =0x022A88DC - mov r6, r8 - mov r5, #0xe0 -_02028C70: - mla sl, r8, r5, r7 - ldrsb r0, [sl, #0xb6] - cmp r0, #0 - ldrne sb, [sl, #0x2c] - cmpne sb, #0 - beq _02028CB8 - ldr r0, [sl, #0x28] - ldr r1, [sl, #0x24] - mov r2, sb - bl Memcpy32 - ldr r0, [sl, #0x24] - bic r1, sb, #3 - add r0, r0, r1 - str r0, [sl, #0x24] - ldr r0, [sl, #0x28] - add r0, r0, r1 - str r0, [sl, #0x28] - str r6, [sl, #0x2c] -_02028CB8: - add r0, r8, #1 - lsl r0, r0, #0x18 - asr r8, r0, #0x18 - cmp r8, #0x14 - blt _02028C70 - ldr r0, _02028E18 @ =0x020AFD9C - ldr r1, _02028E1C @ =0x020AFD94 - ldrh r0, [r0] - ldrb r0, [r1, r0] - cmp r0, #0 - beq _02028D08 - ldr r0, _02028E20 @ =0x022A7AC8 - bl FUN_02029054 - ldr r0, _02028E20 @ =0x022A7AC8 - bl FUN_0200b330 - ldr r0, _02028E18 @ =0x020AFD9C - ldr r1, _02028E1C @ =0x020AFD94 - ldrh r0, [r0] - mov r2, #0 - strb r2, [r1, r0] -_02028D08: - bl FUN_02028fc8 - ldr r0, _02028DE8 @ =0x020AFD4C - ldrb r0, [r0] - cmp r0, #0 - beq _02028D30 - ldr r0, _02028E24 @ =0x022A7B00 - bl FUN_0200b330 - ldr r0, _02028DE8 @ =0x020AFD4C - mov r1, #0 - strb r1, [r0] -_02028D30: - ldr r0, _02028DE8 @ =0x020AFD4C - ldrb r0, [r0, #3] - cmp r0, #0 - beq _02028DD4 - ldr r0, _02028E28 @ =0x022A7AE4 - bl FUN_0200b330 - ldr r0, _02028DE8 @ =0x020AFD4C - mov r1, #0 - strb r1, [r0, #3] - b _02028DD4 -_02028D58: - ldr r0, _02028DEC @ =0x022A7A6C - ldr r7, _02028DF4 @ =0x022A7B1C - ldrsb r0, [r0, #5] - mov r6, #0x30 - mvn r5, #1 - b _02028D90 -_02028D70: - mul r1, r0, r6 - ldrb r0, [r7, r1] - add r8, r7, r1 - cmp r0, #0 - beq _02028D8C - add r0, r8, #4 - bl FUN_02029b0c -_02028D8C: - ldrsb r0, [r8, #0x2c] -_02028D90: - cmp r0, r5 - bne _02028D70 - ldr r0, _02028E18 @ =0x020AFD9C - ldr r1, _02028E1C @ =0x020AFD94 - ldrh r0, [r0] - ldrb r0, [r1, r0] - cmp r0, #0 - beq _02028DD4 - ldr r0, _02028E20 @ =0x022A7AC8 - bl FUN_02029054 - ldr r0, _02028E20 @ =0x022A7AC8 - bl FUN_0200b330 - ldr r0, _02028E18 @ =0x020AFD9C - ldr r1, _02028E1C @ =0x020AFD94 - ldrh r0, [r0] - mov r2, #0 - strb r2, [r1, r0] -_02028DD4: - bl FUN_02029ec4 - bl FUN_02029fe8 - mov r0, r4 - bl FUN_0202a2c8 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_02028DE8: .4byte 0x020AFD4C -_02028DEC: .4byte 0x022A7A6C -_02028DF0: .4byte 0x022A88DC -_02028DF4: .4byte 0x022A7B1C -_02028DF8: .4byte 0x020AFD98 -_02028DFC: .4byte 0x0209ACA8 -_02028E00: .4byte 0x0209AC64 -_02028E04: .4byte 0x0209AC78 -_02028E08: .4byte 0x022A7EDC -_02028E0C: .4byte 0x022A7AA0 -_02028E10: .4byte 0x022A7A8C -_02028E14: .4byte 0x022A7A78 -_02028E18: .4byte 0x020AFD9C -_02028E1C: .4byte 0x020AFD94 -_02028E20: .4byte 0x022A7AC8 -_02028E24: .4byte 0x022A7B00 -_02028E28: .4byte 0x022A7AE4 - arm_func_end FUN_02028a64 - - arm_func_start FUN_02028e2c -FUN_02028e2c: @ 0x02028E2C - ldr r0, _02028E3C @ =0x022A7A6C - mov r1, #0 - strh r1, [r0, #6] - bx lr - .align 2, 0 -_02028E3C: .4byte 0x022A7A6C - arm_func_end FUN_02028e2c - - arm_func_start FUN_02028e40 -FUN_02028e40: @ 0x02028E40 - push {r3, r4, r5, r6, r7, lr} - mov r6, #0 - ldr r5, _02028E80 @ =0x022A7EDC - ldr r4, _02028E84 @ =0x022A7A6C - b _02028E6C -_02028E54: - add r7, r5, r6, lsl #7 - mov r0, r7 - bl thunk_FUN_0201f1d4 - add r0, r7, #0x40 - bl thunk_FUN_0201f1d4 - add r6, r6, #1 -_02028E6C: - ldrsh r0, [r4, #6] - cmp r6, r0 - blt _02028E54 - bl FUN_0202a388 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02028E80: .4byte 0x022A7EDC -_02028E84: .4byte 0x022A7A6C - arm_func_end FUN_02028e40 - - arm_func_start FUN_02028e88 -FUN_02028e88: @ 0x02028E88 - push {r3, lr} - mov r0, #8 - bl FUN_0200302c - ldr r0, _02028ED0 @ =0x022A7AC8 - bl FUN_0200b340 - ldr r0, _02028ED4 @ =0x022A7B00 - bl FUN_0200b340 - ldr r0, _02028ED8 @ =0x022A7AE4 - bl FUN_0200b340 - ldr r0, _02028EDC @ =0x022A7AA0 - bl FUN_0200a184 - ldr r0, _02028EE0 @ =0x022A7A8C - bl FUN_0200a184 - ldr r0, _02028EE4 @ =0x022A7A78 - bl FUN_0200a184 - mov r0, #8 - bl FUN_020030fc - pop {r3, pc} - .align 2, 0 -_02028ED0: .4byte 0x022A7AC8 -_02028ED4: .4byte 0x022A7B00 -_02028ED8: .4byte 0x022A7AE4 -_02028EDC: .4byte 0x022A7AA0 -_02028EE0: .4byte 0x022A7A8C -_02028EE4: .4byte 0x022A7A78 - arm_func_end FUN_02028e88 - - arm_func_start FUN_02028ee8 -FUN_02028ee8: @ 0x02028EE8 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #8 - mov sb, r1 - mov sl, r0 - mov r8, r2 - mov r7, r3 - bl FUN_0202843c - mov r5, r0 - ldr r6, [sb, #4] - add r4, sp, #0 - mov fp, #0 - b _02028F68 -_02028F18: - lsr r1, r6, #0x1f - rsb r0, r1, r6, lsl #27 - add r0, r1, r0, ror #27 - str r0, [sp, #4] - ldr r0, [sb] - str r0, [sp] - b _02028F50 -_02028F34: - mov r0, r5 - mov r1, r4 - mov r2, fp - bl FUN_0200b3fc - ldr r0, [sp] - add r0, r0, #1 - str r0, [sp] -_02028F50: - ldr r0, [sb] - ldr r1, [sp] - add r0, r0, r8 - cmp r1, r0 - blt _02028F34 - add r6, r6, #1 -_02028F68: - ldr r0, [sb, #4] - add r0, r0, r7 - cmp r6, r0 - blt _02028F18 - mov r0, sl - bl FUN_02027aa0 - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_02028ee8 - - arm_func_start FUN_02028f88 -FUN_02028f88: @ 0x02028F88 - push {r4, lr} mov r4, r1 - bl FUN_0202843c - mov r1, r4 - bl FUN_0200b3c0 - pop {r4, pc} - arm_func_end FUN_02028f88 -_02028FA0: - .byte 0xE0, 0x10, 0xA0, 0xE3, 0x90, 0x01, 0x01, 0xE0, 0x14, 0x00, 0x9F, 0xE5, 0x01, 0x00, 0x90, 0xE7 - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0xFF, 0x00, 0x00, 0xE2 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x89, 0x2A, 0x02 - - arm_func_start FUN_02028fc8 -FUN_02028fc8: @ 0x02028FC8 - ldr r0, _02028FDC @ =0x020AFD9C - ldrh r1, [r0] - eor r1, r1, #1 - strh r1, [r0] - bx lr - .align 2, 0 -_02028FDC: .4byte 0x020AFD9C - arm_func_end FUN_02028fc8 - - arm_func_start FUN_02028FE0 -FUN_02028FE0: @ 0x02028FE0 - ldr r1, _02028FF8 @ =0x00000904 - ldr r2, _02028FFC @ =0x022A9A5C - mov r3, #0 - smlabb r0, r0, r1, r2 - str r3, [r0, #0x900] - bx lr - .align 2, 0 -_02028FF8: .4byte 0x00000904 -_02028FFC: .4byte 0x022A9A5C - arm_func_end FUN_02028FE0 - - arm_func_start FUN_02029000 -FUN_02029000: @ 0x02029000 - ldr r2, _02029034 @ =0x022A9A5C - ldr r1, _02029038 @ =0x00000904 - smlabb r2, r0, r1, r2 - ldr r0, [r2, #0x900] - add r1, r0, #1 - lsl r0, r0, #0x10 - str r1, [r2, #0x900] - cmp r1, #0x10 - asr r1, r0, #0x10 - movge r0, #0x10 - strge r0, [r2, #0x900] - add r0, r2, r1, lsl #4 - bx lr - .align 2, 0 -_02029034: .4byte 0x022A9A5C -_02029038: .4byte 0x00000904 - arm_func_end FUN_02029000 - - arm_func_start FUN_0202903c -FUN_0202903c: @ 0x0202903C - ldr r0, _0202904C @ =0x020AFD9C - ldr ip, _02029050 @ =FUN_02028FE0 - ldrsh r0, [r0] - bx ip - .align 2, 0 -_0202904C: .4byte 0x020AFD9C -_02029050: .4byte FUN_02028FE0 - arm_func_end FUN_0202903c - - arm_func_start FUN_02029054 -FUN_02029054: @ 0x02029054 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #8 - ldr r2, _02029144 @ =0x020AFD9C - ldr r1, _02029148 @ =0x00000904 - ldrh sl, [r2] - ldr r6, _0202914C @ =0x022A9A5C - ldr r2, _02029150 @ =0x022AA35C - mul r3, sl, r1 - smlabb r4, sl, r1, r6 - ldr r1, [r2, r3] - add r5, r4, #0x100 - mov fp, r0 - lsl r4, r1, #0x10 - add sb, r6, r3 - mov r7, #0 - b _02029120 -_02029094: - add r8, sb, r7, lsl #4 - ldr r6, [r8, #4] - b _02029100 -_020290A0: - lsr r1, r6, #0x1f - rsb r0, r1, r6, lsl #27 - ldr r2, [r8] - add r0, r1, r0, ror #27 - str r0, [sp, #4] - str r2, [sp] - b _020290E4 -_020290BC: - ldr r0, [sp, #4] - lsl r1, r2, #1 - add r0, r5, r0, lsl #6 - ldrh r2, [r1, r0] - mov r0, fp - add r1, sp, #0 - bl FUN_0200b3fc - ldr r0, [sp] - add r0, r0, #1 - str r0, [sp] -_020290E4: - ldr r1, [r8] - ldr r0, [r8, #8] - ldr r2, [sp] - add r0, r1, r0 - cmp r2, r0 - blt _020290BC - add r6, r6, #1 -_02029100: - ldr r1, [r8, #4] - ldr r0, [r8, #0xc] - add r0, r1, r0 - cmp r6, r0 - blt _020290A0 - add r0, r7, #1 - lsl r0, r0, #0x10 - asr r7, r0, #0x10 -_02029120: - cmp r7, r4, asr #16 - blt _02029094 - ldr r0, _02029148 @ =0x00000904 - ldr r1, _0202914C @ =0x022A9A5C - mov r2, #0 - smlabb r0, sl, r0, r1 - str r2, [r0, #0x900] - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02029144: .4byte 0x020AFD9C -_02029148: .4byte 0x00000904 -_0202914C: .4byte 0x022A9A5C -_02029150: .4byte 0x022AA35C - arm_func_end FUN_02029054 - - arm_func_start FUN_02029154 -FUN_02029154: @ 0x02029154 - push {r3, r4, r5, r6, r7, lr} - ldr r4, _020291F0 @ =0x020AFD9C - mov r7, r0 - ldrh r0, [r4] - mov r6, r1 - mov r5, r2 - eor r0, r0, #1 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - mov r4, r3 - bl FUN_02029000 - ldr r1, _020291F0 @ =0x020AFD9C - ldr ip, _020291F4 @ =0x022A9A5C - ldrh r3, [r1] - ldr r2, _020291F8 @ =0x00000904 - add r1, r7, r5 - str r7, [r0] - eor r3, r3, #1 - smlabb r2, r3, r2, ip - str r6, [r0, #4] - str r5, [r0, #8] - str r4, [r0, #0xc] - add r5, r2, #0x100 - add ip, r6, r4 - mov r3, #0 - b _020291E4 -_020291BC: - lsl r0, r6, #5 - mov r4, r7 - add r0, r5, r0, lsl #1 - b _020291D8 -_020291CC: - lsl r2, r4, #1 - strh r3, [r2, r0] - add r4, r4, #1 -_020291D8: - cmp r4, r1 - blt _020291CC - add r6, r6, #1 -_020291E4: - cmp r6, ip - blt _020291BC - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_020291F0: .4byte 0x020AFD9C -_020291F4: .4byte 0x022A9A5C -_020291F8: .4byte 0x00000904 - arm_func_end FUN_02029154 - - arm_func_start FUN_020291fc -FUN_020291fc: @ 0x020291FC - push {r4, r5, r6, r7, r8, lr} - ldr r4, _0202946C @ =0x020AFD9C - mov r5, r0 - ldrh r0, [r4] - mov r4, r1 - mov r8, r2 - eor r0, r0, #1 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - mov r7, r3 - ldr r6, [sp, #0x18] - bl FUN_02029000 - ldr r1, _0202946C @ =0x020AFD9C - ldr ip, _02029470 @ =0x022A9A5C - ldrh r3, [r1] - ldr r1, _02029474 @ =0x00000904 - ldrb r2, [sp, #0x1c] - str r5, [r0] - eor r3, r3, #1 - smlabb r1, r3, r1, ip - stmib r0, {r4, r8} - str r7, [r0, #0xc] - cmp r2, #0 - add r1, r1, #0x100 - beq _020292BC - orr r2, r6, #0x400 - lsl r2, r2, #0x10 - add r3, r5, r8 - lsr r6, r2, #0x10 - sub ip, r3, #1 - add lr, r4, r7 - b _020292B0 -_0202927C: - lsl r2, r4, #5 - mov r8, ip - add r3, r1, r2, lsl #1 - b _020292A4 -_0202928C: - add r2, r6, #1 - lsl r7, r8, #1 - lsl r2, r2, #0x10 - strh r6, [r7, r3] - lsr r6, r2, #0x10 - sub r8, r8, #1 -_020292A4: - cmp r8, r5 - bge _0202928C - add r4, r4, #1 -_020292B0: - cmp r4, lr - blt _0202927C - b _02029310 -_020292BC: - add r2, r5, r8 - add r3, r4, r7 - b _02029308 -_020292C8: - lsr r8, r4, #0x1f - rsb r7, r8, r4, lsl #27 - add r7, r8, r7, ror #27 - lsl r7, r7, #5 - mov ip, r5 - add r8, r1, r7, lsl #1 - b _020292FC -_020292E4: - add r7, r6, #1 - lsl lr, ip, #1 - lsl r7, r7, #0x10 - strh r6, [lr, r8] - lsr r6, r7, #0x10 - add ip, ip, #1 -_020292FC: - cmp ip, r2 - blt _020292E4 - add r4, r4, #1 -_02029308: - cmp r4, r3 - blt _020292C8 -_02029310: - ldrb r2, [sp, #0x20] - cmp r2, #0 - popeq {r4, r5, r6, r7, r8, pc} - ldr r2, [r0] - subs r2, r2, #1 - str r2, [r0] - movmi r2, #0 - strmi r2, [r0] - ldr r2, [r0, #4] - subs r2, r2, #1 - str r2, [r0, #4] - movmi r2, #0 - strmi r2, [r0, #4] - ldr r2, [r0, #8] - add r2, r2, #1 - str r2, [r0, #8] - cmp r2, #0x20 - movgt r2, #0x20 - strgt r2, [r0, #8] - ldr r2, [r0, #0xc] - add r2, r2, #1 - str r2, [r0, #0xc] - cmp r2, #0x20 - movgt r2, #0x20 - strgt r2, [r0, #0xc] - ldr r5, [r0, #0xc] - ldm r0, {r2, r3, r6} - lsl r0, r3, #0x10 - lsl r4, r2, #0x10 - lsl r5, r5, #0x10 - lsl r3, r6, #0x10 - asrs r2, r0, #0x10 - asr r4, r4, #0x10 - bmi _020293D8 - lsl r0, r2, #5 - mov r8, r4 - add ip, r4, r3, asr #16 - add r6, r1, r0, lsl #1 - mov r7, #0 - b _020293D0 -_020293B0: - cmp r8, #0 - blt _020293C4 - cmp r8, #0x20 - lsllt r0, r8, #1 - strhlt r7, [r0, r6] -_020293C4: - add r0, r8, #1 - lsl r0, r0, #0x10 - asr r8, r0, #0x10 -_020293D0: - cmp r8, ip - ble _020293B0 -_020293D8: - add r3, r4, r3, asr #16 - add r0, r2, r5, asr #16 - lsl r5, r3, #0x10 - asr r8, r5, #0x10 - mov lr, #0 - lsl ip, r4, #1 - lsl r6, r8, #1 - mov r7, lr - b _02029420 -_020293FC: - cmp r4, #0 - addge r5, r1, r2, lsl #6 - strhge lr, [ip, r5] - cmp r8, #0x20 - addlt r5, r1, r2, lsl #6 - add r2, r2, #1 - lsl r2, r2, #0x10 - strhlt r7, [r6, r5] - asr r2, r2, #0x10 -_02029420: - cmp r2, r0 - blt _020293FC - cmp r2, #0x18 - popge {r4, r5, r6, r7, r8, pc} - lsl r0, r2, #5 - add r1, r1, r0, lsl #1 - mov r2, #0 - b _02029460 -_02029440: - cmp r4, #0 - blt _02029454 - cmp r4, #0x20 - lsllt r0, r4, #1 - strhlt r2, [r0, r1] -_02029454: - add r0, r4, #1 - lsl r0, r0, #0x10 - asr r4, r0, #0x10 -_02029460: - cmp r4, r3 - ble _02029440 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0202946C: .4byte 0x020AFD9C -_02029470: .4byte 0x022A9A5C -_02029474: .4byte 0x00000904 - arm_func_end FUN_020291fc - - arm_func_start FUN_02029478 -FUN_02029478: @ 0x02029478 - push {r3, lr} - sub sp, sp, #0x10 - mvn r2, #0 - cmp r1, r2 - ldrshne r2, [r0, #0x24] - cmpne r1, r2 - beq _020294FC - ldrb r0, [r0, #0x26] - cmp r0, #0 - bne _020294D0 - mov r0, #0xf - str r0, [sp] - mov r0, #4 - str r0, [sp, #4] - mov r2, #1 - ldr r0, _02029504 @ =0x022AAC80 - str r2, [sp, #8] - mov r2, #0 - mov r3, #0x3f8 - str r2, [sp, #0xc] - bl FUN_0201c2cc - b _020294FC -_020294D0: - mov r0, #0xe - str r0, [sp] - mov r0, #4 - str r0, [sp, #4] - mov ip, #1 - str ip, [sp, #8] - ldr r0, _02029508 @ =0x022AACFC - mov r2, #0 - mov r3, #0x7c - str ip, [sp, #0xc] - bl FUN_0201c2cc -_020294FC: - add sp, sp, #0x10 - pop {r3, pc} - .align 2, 0 -_02029504: .4byte 0x022AAC80 -_02029508: .4byte 0x022AACFC - arm_func_end FUN_02029478 - - arm_func_start FUN_0202950c -FUN_0202950c: @ 0x0202950C - push {r3, lr} - sub sp, sp, #0x10 - ldr r0, _02029654 @ =0x022AAC68 - mov r1, #0 - mov r2, #0x15 - bl Memset - ldr r0, _02029658 @ =0x020AFC68 - ldr r1, _0202965C @ =0x0209ADF0 - ldr r0, [r0] - mov r2, #0 - bl LoadWanTableEntry - ldr r2, _02029660 @ =0x022AAC64 - ldr r1, _02029658 @ =0x020AFC68 - strh r0, [r2, #2] - ldr r0, [r1] - ldr r1, _02029664 @ =0x0209AE08 - mov r2, #0 - bl LoadWanTableEntry - ldr r1, _02029660 @ =0x022AAC64 - mov r3, #1 - strh r0, [r1] - str r3, [sp] - mov r0, #0 - str r0, [sp, #4] - ldrsh r0, [r1, #2] - mov r1, #0x3f8 - mov r2, #0xf - bl FUN_0201d9c8 - mov r3, #1 - str r3, [sp] - str r3, [sp, #4] - ldr r0, _02029660 @ =0x022AAC64 - mov r1, #0x7c - ldrsh r0, [r0] - mov r2, #0xe - bl FUN_0201d9c8 - ldr r0, _02029668 @ =0x022AAC80 - bl FUN_0201c0b0 - ldr r0, _02029668 @ =0x022AAC80 - ldr r1, _02029660 @ =0x022AAC64 - ldrsh r1, [r1, #2] - bl FUN_0201c0e8 - mov r0, #0xf - str r0, [sp] - mov r0, #4 - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r1, #0 - str r1, [sp, #0xc] - ldr r0, _02029668 @ =0x022AAC80 - mov r2, r1 - mov r3, #0x3f8 - bl FUN_0201c2cc - mov r1, #0 - ldr r0, _02029668 @ =0x022AAC80 - strh r1, [r0, #0x38] - bl FUN_0201c108 - ldr r0, _0202966C @ =0x022AACFC - bl FUN_0201c0b0 - ldr r0, _0202966C @ =0x022AACFC - ldr r1, _02029660 @ =0x022AAC64 - ldrsh r1, [r1] - bl FUN_0201c0e8 - mov r0, #0xe - str r0, [sp] - mov r0, #4 - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - str r0, [sp, #0xc] - ldr r0, _0202966C @ =0x022AACFC - mov r1, #0 - mov r2, r1 - mov r3, #0x7c - bl FUN_0201c2cc - ldr r0, _0202966C @ =0x022AACFC - mov r1, #0 - strh r1, [r0, #0x38] - bl FUN_0201c108 - add sp, sp, #0x10 - pop {r3, pc} - .align 2, 0 -_02029654: .4byte 0x022AAC68 -_02029658: .4byte 0x020AFC68 -_0202965C: .4byte 0x0209ADF0 -_02029660: .4byte 0x022AAC64 -_02029664: .4byte 0x0209AE08 -_02029668: .4byte 0x022AAC80 -_0202966C: .4byte 0x022AACFC - arm_func_end FUN_0202950c - - arm_func_start FUN_02029670 -FUN_02029670: @ 0x02029670 - mov r1, #0 - str r1, [r0] - strb r1, [r0, #4] - strb r1, [r0, #0x19] - strb r1, [r0, #0x18] - bx lr - arm_func_end FUN_02029670 - - arm_func_start FUN_02029688 -FUN_02029688: @ 0x02029688 - cmp r2, #1 - cmpeq r3, #0 - moveq r2, #2 - cmp r1, #0 - ldreq r1, [r0] - cmpeq r1, r2 - ldreq r3, [r0, #8] - ldreq r1, [sp] - cmpeq r3, r1 - ldreq r3, [r0, #0xc] - ldreq r1, [sp, #4] - cmpeq r3, r1 - bxeq lr - str r2, [r0] - mov r1, #1 - ldr r2, [sp] - strb r1, [r0, #4] - ldr r1, [sp, #4] - str r2, [r0, #8] - str r1, [r0, #0xc] - mov r1, #0 - str r1, [r0, #0x10] - str r1, [r0, #0x14] - bx lr - arm_func_end FUN_02029688 - - arm_func_start FUN_020296e8 -FUN_020296e8: @ 0x020296E8 - cmp r1, #0 - ldreq r1, [r0] - cmpeq r1, r2 - ldreq r3, [r0, #8] - ldreq r1, [sp] - cmpeq r3, r1 - ldreq r3, [r0, #0xc] - ldreq r1, [sp, #4] - cmpeq r3, r1 - ldreq r3, [r0, #0x10] - ldreq r1, [sp, #8] - cmpeq r3, r1 - ldreq r3, [r0, #0x14] - ldreq r1, [sp, #0xc] - cmpeq r3, r1 - bxeq lr - str r2, [r0] - mov r1, #1 - ldr r2, [sp] - strb r1, [r0, #4] - ldr r1, [sp, #4] - str r2, [r0, #8] - ldr r2, [sp, #8] - str r1, [r0, #0xc] - ldr r1, [sp, #0xc] - str r2, [r0, #0x10] - str r1, [r0, #0x14] - bx lr - arm_func_end FUN_020296e8 - - arm_func_start FUN_02029758 -FUN_02029758: @ 0x02029758 - push {r4, r5, r6, lr} - sub sp, sp, #8 - mov r4, r1 - ldr r1, [r4, #0xc0] - mov r5, r0 - mov r6, r2 - cmp r1, #0 - ble _0202980C - ldr r0, [r4, #0x10] - tst r0, #0x4000000 - bne _020297C8 - ldr r1, [r4, #0xbc] - mov r0, r4 - bl FUN_020328d8 - ldr r2, [r4, #8] - ldr r1, [r4, #0xb0] - mov r3, r6 - add r1, r2, r1 - str r1, [sp] - ldr r1, [r4] - mov r2, #1 - add r0, r1, r0 - str r0, [sp, #4] - ldrb r1, [r4, #0xd4] - mov r0, r5 - bl FUN_02029688 - mov r0, #0 - strb r0, [r4, #0xd4] -_020297C8: - mov r0, r4 - bl FUN_0203293c - strb r0, [r5, #0x18] - mov r0, r4 - bl FUN_02032918 - strb r0, [r5, #0x19] - tst r0, #0xff - ldrbeq r0, [r5, #0x18] - cmpeq r0, #0 - beq _02029820 - ldr r0, [r4, #0xc] - sub r0, r0, #2 - str r0, [r5, #0x1c] - ldr r0, [r4] - sub r0, r0, #2 - str r0, [r5, #0x20] - b _02029820 -_0202980C: - mov r0, #0 - str r0, [r5] - strb r0, [r5, #4] - strb r0, [r5, #0x19] - strb r0, [r5, #0x18] -_02029820: - add sp, sp, #8 - pop {r4, r5, r6, pc} - arm_func_end FUN_02029758 - - arm_func_start FUN_02029828 -FUN_02029828: @ 0x02029828 - push {r4, r5, r6, lr} - sub sp, sp, #8 - mov r4, r1 - ldr r1, [r4, #0xc0] - mov r5, r0 - mov r6, r2 - cmp r1, #0 - ble _020298DC - ldr r0, [r4, #0x10] - tst r0, #0x4000000 - bne _02029898 - ldr r1, [r4, #0xbc] - mov r0, r4 - bl FUN_02033350 - ldr r2, [r4, #8] - ldr r1, [r4, #0xb0] - mov r3, r6 - add r1, r2, r1 - str r1, [sp] - ldr r1, [r4] - mov r2, #1 - add r0, r1, r0 - str r0, [sp, #4] - ldrb r1, [r4, #0xd4] - mov r0, r5 - bl FUN_02029688 - mov r0, #0 - strb r0, [r4, #0xd4] -_02029898: - mov r0, r4 - bl FUN_020333b4 - strb r0, [r5, #0x18] - mov r0, r4 - bl FUN_02033390 - strb r0, [r5, #0x19] - tst r0, #0xff - ldrbeq r0, [r5, #0x18] - cmpeq r0, #0 - beq _020298F0 - ldr r0, [r4, #0xc] - sub r0, r0, #2 - str r0, [r5, #0x1c] - ldr r0, [r4] - sub r0, r0, #2 - str r0, [r5, #0x20] - b _020298F0 -_020298DC: - mov r0, #0 - str r0, [r5] - strb r0, [r5, #4] - strb r0, [r5, #0x19] - strb r0, [r5, #0x18] -_020298F0: - add sp, sp, #8 - pop {r4, r5, r6, pc} - arm_func_end FUN_02029828 - - arm_func_start FUN_020298f8 -FUN_020298f8: @ 0x020298F8 - push {r3, r4, r5, lr} - sub sp, sp, #8 - mov r4, r1 - ldr r1, [r4, #0x10] - mov r5, r0 - mov lr, r2 - tst r1, #0x4000000 - bne _02029950 - ldr ip, [r4, #8] - ldr r1, [sp, #0x18] - mov r2, r3 - add r1, ip, r1 - str r1, [sp] - ldr ip, [r4] - ldr r1, [sp, #0x1c] - mov r3, lr - add r1, ip, r1 - str r1, [sp, #4] - ldrb r1, [r4, #0xd4] - bl FUN_02029688 - mov r0, #0 - strb r0, [r4, #0xd4] -_02029950: - mov r0, r4 - bl FUN_0203293c - strb r0, [r5, #0x18] - mov r0, r4 - bl FUN_02032918 - strb r0, [r5, #0x19] - tst r0, #0xff - ldrbeq r0, [r5, #0x18] - cmpeq r0, #0 - beq _02029990 - ldr r0, [r4, #0xc] - sub r0, r0, #2 - str r0, [r5, #0x1c] - ldr r0, [r4] - sub r0, r0, #2 - str r0, [r5, #0x20] -_02029990: - add sp, sp, #8 - pop {r3, r4, r5, pc} - arm_func_end FUN_020298f8 - - arm_func_start FUN_02029998 -FUN_02029998: @ 0x02029998 - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x10 - mov r4, r1 - ldr r1, [r4, #0x10] - mov r5, r0 - mov lr, r2 - tst r1, #0x4000000 - bne _02029A08 - ldr r1, [r4, #8] - ldr r6, [sp, #0x28] - ldr r7, [sp, #0x30] - ldr ip, [r4] - ldr r2, [sp, #0x2c] - add r8, r1, r6 - ldr r6, [sp, #0x34] - str r8, [sp] - add r8, ip, r2 - mov r2, r3 - str r8, [sp, #4] - add r1, r1, r7 - str r1, [sp, #8] - add r1, ip, r6 - str r1, [sp, #0xc] - ldrb r1, [r4, #0xd4] - mov r3, lr - bl FUN_020296e8 - mov r0, #0 - strb r0, [r4, #0xd4] -_02029A08: - mov r0, r4 - bl FUN_0203293c - strb r0, [r5, #0x18] - mov r0, r4 - bl FUN_02032918 - strb r0, [r5, #0x19] - tst r0, #0xff - ldrbeq r0, [r5, #0x18] - cmpeq r0, #0 - beq _02029A48 - ldr r0, [r4, #0xc] - sub r0, r0, #2 - str r0, [r5, #0x1c] - ldr r0, [r4] - sub r0, r0, #2 - str r0, [r5, #0x20] -_02029A48: - add sp, sp, #0x10 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_02029998 - - arm_func_start FUN_02029a50 -FUN_02029a50: @ 0x02029A50 - mov r2, #0 - str r2, [r0] - sub r1, r2, #1 - strh r1, [r0, #0x24] - str r2, [r0, #4] - bx lr - arm_func_end FUN_02029a50 - - arm_func_start FUN_02029a68 -FUN_02029a68: @ 0x02029A68 - ldr r3, [r1] - ldr r2, [r0] - cmp r2, r3 - beq _02029AAC - mov r3, #0 - strb r3, [r1, #4] - ldr r2, [r1] - stm r0, {r2, r3} - ldr r3, [r1, #8] - ldr r2, [r1, #0xc] - str r3, [r0, #8] - str r2, [r0, #0xc] - ldr r3, [r1, #0x10] - ldr r2, [r1, #0x14] - str r3, [r0, #0x10] - str r2, [r0, #0x14] - b _02029AE8 -_02029AAC: - cmp r3, #0 - ldrbne r2, [r1, #4] - cmpne r2, #0 - beq _02029AE8 - mov r2, #0 - strb r2, [r1, #4] - str r2, [r0, #4] - ldr r3, [r1, #8] - ldr r2, [r1, #0xc] - str r3, [r0, #8] - str r2, [r0, #0xc] - ldr r3, [r1, #0x10] - ldr r2, [r1, #0x14] - str r3, [r0, #0x10] - str r2, [r0, #0x14] -_02029AE8: - ldrb r2, [r1, #0x19] - strb r2, [r0, #0x19] - ldrb r2, [r1, #0x18] - strb r2, [r0, #0x18] - ldr r2, [r1, #0x1c] - ldr r1, [r1, #0x20] - str r2, [r0, #0x1c] - str r1, [r0, #0x20] - bx lr - arm_func_end FUN_02029a68 - - arm_func_start FUN_02029b0c -FUN_02029b0c: @ 0x02029B0C - push {r3, r4, lr} - sub sp, sp, #0x24 - mov r4, r0 - ldr r0, [r4] - cmp r0, #0 - beq _02029EB0 - cmp r0, #2 - ldrne r0, [r4, #4] - addne r0, r0, #1 - strne r0, [r4, #4] - ldr r0, [r4, #4] - tst r0, #0x10 - bne _02029EB0 - ldr r0, [r4] - cmp r0, #7 - addls pc, pc, r0, lsl #2 - b _02029EB0 -_02029B50: @ jump table - b _02029EB0 @ case 0 - b _02029B70 @ case 1 - b _02029B70 @ case 2 - b _02029BBC @ case 3 - b _02029C08 @ case 4 - b _02029C64 @ case 5 - b _02029D38 @ case 6 - b _02029D94 @ case 7 -_02029B70: - mov r0, r4 - mov r1, #0 - bl FUN_02029478 - ldrb r0, [r4, #0x26] - ldr r1, [r4, #8] - cmp r0, #0 - bne _02029BA4 - ldr r0, _02029EB8 @ =0x022AAC80 - strh r1, [r0, #0x1c] - ldr r1, [r4, #0xc] - strh r1, [r0, #0x1e] - bl FUN_0201cf5c - b _02029EB0 -_02029BA4: - ldr r0, _02029EBC @ =0x022AACFC - strh r1, [r0, #0x1c] - ldr r1, [r4, #0xc] - strh r1, [r0, #0x1e] - bl FUN_0201cf5c - b _02029EB0 -_02029BBC: - mov r0, r4 - mov r1, #0 - bl FUN_02029478 - ldrb r0, [r4, #0x26] - ldr r1, [r4, #8] - cmp r0, #0 - bne _02029BF0 - ldr r0, _02029EB8 @ =0x022AAC80 - strh r1, [r0, #0x1c] - ldr r1, [r4, #0xc] - strh r1, [r0, #0x1e] - bl FUN_0201cf5c - b _02029EB0 -_02029BF0: - ldr r0, _02029EBC @ =0x022AACFC - strh r1, [r0, #0x1c] - ldr r1, [r4, #0xc] - strh r1, [r0, #0x1e] - bl FUN_0201cf5c - b _02029EB0 -_02029C08: - mov r0, r4 - mov r1, #1 - bl FUN_02029478 - ldrb r0, [r4, #0x26] - ldr r1, [r4, #8] - cmp r0, #0 - bne _02029C44 - ldr r0, _02029EB8 @ =0x022AAC80 - sub r1, r1, #4 - strh r1, [r0, #0x1c] - ldr r1, [r4, #0xc] - sub r1, r1, #4 - strh r1, [r0, #0x1e] - bl FUN_0201cf5c - b _02029EB0 -_02029C44: - ldr r0, _02029EBC @ =0x022AACFC - sub r1, r1, #4 - strh r1, [r0, #0x1c] - ldr r1, [r4, #0xc] - sub r1, r1, #4 - strh r1, [r0, #0x1e] - bl FUN_0201cf5c - b _02029EB0 -_02029C64: - ldr r1, _02029EC0 @ =0x0000FFFF - mov ip, #0 - str ip, [sp] - mov r0, #0x2000 - str r0, [sp, #4] - add r0, sp, #0x18 - mov r2, r1 - mov r3, r1 - str ip, [sp, #8] - bl FUN_0201c028 - mov r0, r4 - mov r1, #1 - bl FUN_02029478 - ldrb r0, [r4, #0x26] - add r1, sp, #0x18 - cmp r0, #0 - bne _02029CF0 - ldr r0, _02029EB8 @ =0x022AAC80 - ldrh r2, [r0, #2] - orr r2, r2, #0x20 - strh r2, [r0, #2] - bl FUN_0201d110 - ldr r1, [r4, #8] - ldr r0, _02029EB8 @ =0x022AAC80 - sub r1, r1, #4 - strh r1, [r0, #0x1c] - ldr r1, [r4, #0xc] - sub r1, r1, #0x10 - strh r1, [r0, #0x1e] - bl FUN_0201cf5c - ldr r0, _02029EB8 @ =0x022AAC80 - ldrh r1, [r0, #2] - bic r1, r1, #0x20 - strh r1, [r0, #2] - b _02029EB0 -_02029CF0: - ldr r0, _02029EBC @ =0x022AACFC - ldrh r2, [r0, #2] - orr r2, r2, #0x20 - strh r2, [r0, #2] - bl FUN_0201d110 - ldr r1, [r4, #8] - ldr r0, _02029EBC @ =0x022AACFC - sub r1, r1, #4 - strh r1, [r0, #0x1c] - ldr r1, [r4, #0xc] - sub r1, r1, #0x10 - strh r1, [r0, #0x1e] - bl FUN_0201cf5c - ldr r0, _02029EBC @ =0x022AACFC - ldrh r1, [r0, #2] - bic r1, r1, #0x20 - strh r1, [r0, #2] - b _02029EB0 -_02029D38: - mov r0, r4 - mov r1, #1 - bl FUN_02029478 - ldrb r0, [r4, #0x26] - ldr r1, [r4, #8] - cmp r0, #0 - bne _02029D74 - ldr r0, _02029EB8 @ =0x022AAC80 - sub r1, r1, #4 - strh r1, [r0, #0x1c] - ldr r1, [r4, #0xc] - sub r1, r1, #4 - strh r1, [r0, #0x1e] - bl FUN_0201cf5c - b _02029EB0 -_02029D74: - ldr r0, _02029EBC @ =0x022AACFC - sub r1, r1, #4 - strh r1, [r0, #0x1c] - ldr r1, [r4, #0xc] - sub r1, r1, #4 - strh r1, [r0, #0x1e] - bl FUN_0201cf5c - b _02029EB0 -_02029D94: - mov r0, r4 - mov r1, #1 - bl FUN_02029478 - ldrb r0, [r4, #0x26] - ldr r1, [r4, #8] - cmp r0, #0 - bne _02029DD0 - ldr r0, _02029EB8 @ =0x022AAC80 - sub r1, r1, #4 - strh r1, [r0, #0x1c] - ldr r1, [r4, #0x14] - sub r1, r1, #4 - strh r1, [r0, #0x1e] - bl FUN_0201cf5c - b _02029DEC -_02029DD0: - ldr r0, _02029EBC @ =0x022AACFC - sub r1, r1, #4 - strh r1, [r0, #0x1c] - ldr r1, [r4, #0x14] - sub r1, r1, #4 - strh r1, [r0, #0x1e] - bl FUN_0201cf5c -_02029DEC: - mov ip, #0 - ldr r1, _02029EC0 @ =0x0000FFFF - str ip, [sp] - mov r0, #0x2000 - str r0, [sp, #4] - add r0, sp, #0xc - mov r2, r1 - mov r3, r1 - str ip, [sp, #8] - bl FUN_0201c028 - ldrb r0, [r4, #0x26] - add r1, sp, #0xc - cmp r0, #0 - bne _02029E6C - ldr r0, _02029EB8 @ =0x022AAC80 - ldrh r2, [r0, #2] - orr r2, r2, #0x20 - strh r2, [r0, #2] - bl FUN_0201d110 - ldr r1, [r4, #8] - ldr r0, _02029EB8 @ =0x022AAC80 - sub r1, r1, #4 - strh r1, [r0, #0x1c] - ldr r1, [r4, #0xc] - sub r1, r1, #0x10 - strh r1, [r0, #0x1e] - bl FUN_0201cf5c - ldr r0, _02029EB8 @ =0x022AAC80 - ldrh r1, [r0, #2] - bic r1, r1, #0x20 - strh r1, [r0, #2] - b _02029EB0 -_02029E6C: - ldr r0, _02029EBC @ =0x022AACFC - ldrh r2, [r0, #2] - orr r2, r2, #0x20 - strh r2, [r0, #2] - bl FUN_0201d110 - ldr r1, [r4, #8] - ldr r0, _02029EBC @ =0x022AACFC - sub r1, r1, #4 - strh r1, [r0, #0x1c] - ldr r1, [r4, #0xc] - sub r1, r1, #0x10 - strh r1, [r0, #0x1e] - bl FUN_0201cf5c - ldr r0, _02029EBC @ =0x022AACFC - ldrh r1, [r0, #2] - bic r1, r1, #0x20 - strh r1, [r0, #2] -_02029EB0: - add sp, sp, #0x24 - pop {r3, r4, pc} - .align 2, 0 -_02029EB8: .4byte 0x022AAC80 -_02029EBC: .4byte 0x022AACFC -_02029EC0: .4byte 0x0000FFFF - arm_func_end FUN_02029b0c - - arm_func_start FUN_02029ec4 -FUN_02029ec4: @ 0x02029EC4 - bx lr - arm_func_end FUN_02029ec4 - - arm_func_start Arm9LoadUnkFieldNa0x2029EC8 -Arm9LoadUnkFieldNa0x2029EC8: @ 0x02029EC8 - ldr r1, _02029ED4 @ =0x022AAC68 - ldrb r0, [r1, r0] - bx lr - .align 2, 0 -_02029ED4: .4byte 0x022AAC68 - arm_func_end Arm9LoadUnkFieldNa0x2029EC8 - - arm_func_start Arm9StoreUnkFieldNa0x2029ED8 -Arm9StoreUnkFieldNa0x2029ED8: @ 0x02029ED8 - ldr r2, _02029EE4 @ =0x022AAC68 - strb r1, [r2, r0] - bx lr - .align 2, 0 -_02029EE4: .4byte 0x022AAC68 - arm_func_end Arm9StoreUnkFieldNa0x2029ED8 - - arm_func_start FUN_02029ee8 -FUN_02029ee8: @ 0x02029EE8 - push {r3, lr} - sub sp, sp, #0x10 - ldr r0, _02029F74 @ =0x020AFC68 - ldr r1, _02029F78 @ =0x0209AE20 - ldr r0, [r0] - mov r2, #0 - bl LoadWanTableEntry - ldr r1, _02029F7C @ =0x022AAD78 - strh r0, [r1] - ldr r0, _02029F80 @ =0x022AAD7C - bl FUN_0201c0b0 - ldr r1, _02029F7C @ =0x022AAD78 - ldr r0, _02029F80 @ =0x022AAD7C - ldrsh r1, [r1] - bl FUN_0201c0e8 - mov r1, #0 - mov r0, #0xd - stm sp, {r0, r1} - mov r0, #1 - str r0, [sp, #8] - ldr r0, _02029F80 @ =0x022AAD7C - mov r2, r1 - mov r3, #0x3e4 - str r1, [sp, #0xc] - bl FUN_0201c2cc - ldr r0, _02029F80 @ =0x022AAD7C - mov r1, #0 - strh r1, [r0, #0x38] - bl FUN_02029fbc - ldr r0, _02029F84 @ =0x020AFDA0 - mov r1, #0 - strb r1, [r0] - str r1, [r0, #4] - add sp, sp, #0x10 - pop {r3, pc} - .align 2, 0 -_02029F74: .4byte 0x020AFC68 -_02029F78: .4byte 0x0209AE20 -_02029F7C: .4byte 0x022AAD78 -_02029F80: .4byte 0x022AAD7C -_02029F84: .4byte 0x020AFDA0 - arm_func_end FUN_02029ee8 - - arm_func_start FUN_02029f88 -FUN_02029f88: @ 0x02029F88 - ldr ip, _02029FB4 @ =0x022AAD7C - ldr r3, _02029FB8 @ =0x020AFDA0 - strh r0, [ip, #0x1c] - strh r1, [ip, #0x1e] - ldrh r1, [ip, #2] - mov r0, #0 - str r0, [r3, #4] - bic r0, r1, #2 - strh r0, [ip, #2] - strb r2, [r3] - bx lr - .align 2, 0 -_02029FB4: .4byte 0x022AAD7C -_02029FB8: .4byte 0x020AFDA0 - arm_func_end FUN_02029f88 - - arm_func_start FUN_02029fbc -FUN_02029fbc: @ 0x02029FBC - ldr r1, _02029FE0 @ =0x022AAD7C - ldr r0, _02029FE4 @ =0x020AFDA0 - ldrh r3, [r1, #2] - mov r2, #0 - str r2, [r0, #4] - orr r3, r3, #2 - strh r3, [r1, #2] - strb r2, [r0] - bx lr - .align 2, 0 -_02029FE0: .4byte 0x022AAD7C -_02029FE4: .4byte 0x020AFDA0 - arm_func_end FUN_02029fbc - - arm_func_start FUN_02029fe8 -FUN_02029fe8: @ 0x02029FE8 - push {r3, lr} - ldr r0, _0202A034 @ =0x022AAD7C - ldrh r1, [r0, #2] - tst r1, #2 - popne {r3, pc} - ldr r1, _0202A038 @ =0x020AFDA0 - ldrb r2, [r1] - cmp r2, #0 - beq _0202A02C - ldr r2, [r1, #4] - add r2, r2, #1 - str r2, [r1, #4] - ldr r1, [r1, #4] - tst r1, #0x10 - popne {r3, pc} - bl FUN_0201cf5c - pop {r3, pc} -_0202A02C: - bl FUN_0201cf5c - pop {r3, pc} - .align 2, 0 -_0202A034: .4byte 0x022AAD7C -_0202A038: .4byte 0x020AFDA0 - arm_func_end FUN_02029fe8 - - arm_func_start FUN_0202a03c -FUN_0202a03c: @ 0x0202A03C - push {r3, r4, r5, lr} - sub sp, sp, #8 - mov r5, r0 - mov r4, r1 - bl FUN_020334a8 - mov r0, r5 - mov r1, r4 - bl FUN_02033bc0 - ldr r0, [r5, #0xd8] - cmp r0, #0 - ble _0202A0A8 - ldr r1, [r5, #0xec] - cmp r1, #0 - ldrge lr, [r5, #0xf0] - cmpge lr, #0 - ldrge r2, [r5, #0xe4] - cmpge r2, #0 - ldrge r0, [r5, #0xe8] - cmpge r0, #0 - blt _0202A0A8 - sub r3, r0, r2 - mov r0, r4 - str r3, [sp] - mov ip, #0x25 - sub r3, lr, r1 - str ip, [sp, #4] - bl FUN_02025d90 -_0202A0A8: - add sp, sp, #8 - pop {r3, r4, r5, pc} - arm_func_end FUN_0202a03c - - arm_func_start FUN_0202a0b0 -FUN_0202a0b0: @ 0x0202A0B0 - push {r3, r4, r5, lr} - sub sp, sp, #8 - mov r5, r0 - mov r4, r1 - bl FUN_020335a8 - mov r0, r5 - mov r1, r4 - bl FUN_02034360 - ldr r0, [r5, #0xd8] - cmp r0, #0 - ble _0202A11C - ldr r1, [r5, #0xec] - cmp r1, #0 - ldrge lr, [r5, #0xf0] - cmpge lr, #0 - ldrge r2, [r5, #0xe4] - cmpge r2, #0 - ldrge r0, [r5, #0xe8] - cmpge r0, #0 - blt _0202A11C - sub r3, r0, r2 - mov r0, r4 - str r3, [sp] - mov ip, #0x25 - sub r3, lr, r1 - str ip, [sp, #4] - bl FUN_02025d90 -_0202A11C: - add sp, sp, #8 - pop {r3, r4, r5, pc} - arm_func_end FUN_0202a0b0 - - arm_func_start FUN_0202a124 -FUN_0202a124: @ 0x0202A124 - push {r3, lr} - ldr r0, _0202A144 @ =0x00000488 - mov r1, #0 - bl MemAlloc - ldr r1, _0202A148 @ =0x020AFDA8 - str r0, [r1] - bl FUN_0202a14c - pop {r3, pc} - .align 2, 0 -_0202A144: .4byte 0x00000488 -_0202A148: .4byte 0x020AFDA8 - arm_func_end FUN_0202a124 - - arm_func_start FUN_0202a14c -FUN_0202a14c: @ 0x0202A14C - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov r5, #0 - ldr r8, _0202A1D0 @ =0x020AFDA8 - mov r4, r5 - mov r7, #0x48 -_0202A160: - mul r6, r5, r7 - ldr r0, [r8] - add r0, r0, r6 - add r0, r0, #4 - bl FUN_0201e730 - ldr r0, [r8] - mov ip, #4 - strb r4, [r0, r6] - ldr sb, [r8] - add lr, sb, r6 - add r6, lr, #0x244 -_0202A18C: - ldm lr!, {r0, r1, r2, r3} - stm r6!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _0202A18C - add r5, r5, #1 - ldm lr, {r0, r1} - stm r6, {r0, r1} - cmp r5, #8 - blo _0202A160 - add r0, sb, #0x200 - mov r2, #0 - ldr r1, _0202A1D0 @ =0x020AFDA8 - strh r2, [r0, #0x40] - ldr r0, [r1] - add r0, r0, #0x400 - strh r2, [r0, #0x84] - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0202A1D0: .4byte 0x020AFDA8 - arm_func_end FUN_0202a14c - - arm_func_start FUN_0202a1d4 -FUN_0202a1d4: @ 0x0202A1D4 - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r4, _0202A2A0 @ =0x020AFDA8 - mov sb, r0 - ldr r0, [r4] - mov r7, r2 - add r0, r0, #0x200 - mov r8, r1 - ldrh r1, [r0, #0x40] - mov r6, r3 - mov r2, #1 - add r1, r1, #1 - strh r1, [r0, #0x40] - ldr r0, [r4] - ldr r5, [sp, #0x20] - add r0, r0, #0x200 - ldrh r1, [r0, #0x40] - cmp r1, #8 - movhs r1, #0 - strhhs r1, [r0, #0x40] - ldr r0, _0202A2A0 @ =0x020AFDA8 - mov r1, #0x48 - ldr r3, [r0] - add r0, r3, #0x200 - ldrh r0, [r0, #0x40] - mul r1, r0, r1 - add r4, r3, r1 - add r0, r4, #4 - strb r2, [r3, r1] - bl FUN_0201e730 - mov r0, #2 - mov r3, r5 - strb r0, [r4, #0x40] - add r2, r4, #0x30 - mov r1, #4 -_0202A25C: - ldrb r0, [r3], #1 - subs r1, r1, #1 - strb r0, [r2], #1 - bne _0202A25C - ldrb r2, [r5, #3] - mov r1, #8 - ldrsh r0, [sp, #0x24] - strb r2, [r4, #0x33] - strh sb, [r4, #4] - strh r8, [r4, #6] - strh r7, [r4, #8] - strh r6, [r4, #0xa] - strh r1, [r4, #0x2e] - strh r7, [r4, #8] - strh r6, [r4, #0xa] - strh r0, [r4, #0x44] - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0202A2A0: .4byte 0x020AFDA8 - arm_func_end FUN_0202a1d4 - - arm_func_start FUN_0202a2a4 -FUN_0202a2a4: @ 0x0202A2A4 - push {r3, lr} - sub sp, sp, #8 - ldr lr, [sp, #0x10] - ldrsh ip, [sp, #0x14] - str lr, [sp] - str ip, [sp, #4] - bl FUN_0202a1d4 - add sp, sp, #8 - pop {r3, pc} - arm_func_end FUN_0202a2a4 - - arm_func_start FUN_0202a2c8 -FUN_0202a2c8: @ 0x0202A2C8 - push {r3, r4, r5, r6, r7, lr} - ldr r1, _0202A384 @ =0x020AFDA8 - cmp r0, #0 - ldr ip, [r1] - popeq {r3, r4, r5, r6, r7, pc} - add r0, ip, #0x400 - mov lr, #0 - strh lr, [r0, #0x84] -_0202A2E8: - ldr r0, _0202A384 @ =0x020AFDA8 - ldr r4, [r0] - add r0, r4, #0x400 - ldrh r1, [r0, #0x84] - cmp r1, #8 - ldrbne r0, [ip] - cmpne r0, #0 - beq _0202A368 - mov r0, #0x48 - mla r0, r1, r0, r4 - mov r7, ip - add r6, r0, #0x244 - mov r5, #4 -_0202A31C: - ldm r7!, {r0, r1, r2, r3} - stm r6!, {r0, r1, r2, r3} - subs r5, r5, #1 - bne _0202A31C - ldm r7, {r0, r1} - stm r6, {r0, r1} - add r0, r4, #0x400 - ldrh r1, [r0, #0x84] - add r1, r1, #1 - strh r1, [r0, #0x84] - ldrb r1, [ip, #0x33] - ldrsh r0, [ip, #0x44] - sub r0, r1, r0 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - cmp r0, #0 - movle r0, #0 - strble r0, [ip] - strbgt r0, [ip, #0x33] -_0202A368: - add r0, lr, #1 - lsl r0, r0, #0x10 - asr lr, r0, #0x10 - cmp lr, #8 - add ip, ip, #0x48 - blt _0202A2E8 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0202A384: .4byte 0x020AFDA8 - arm_func_end FUN_0202a2c8 - - arm_func_start FUN_0202a388 -FUN_0202a388: @ 0x0202A388 - push {r4, r5, r6, lr} - ldr r6, _0202A3E0 @ =0x020AFDA8 - mov r5, #0 - ldr r1, [r6] - add r0, r1, #0x400 - ldrh r0, [r0, #0x84] - add r4, r1, #0x244 - cmp r0, #0 - pople {r4, r5, r6, pc} - b _0202A3C8 -_0202A3B0: - add r0, r4, #4 - bl thunk_FUN_0201f1d4 - add r0, r5, #1 - lsl r0, r0, #0x10 - asr r5, r0, #0x10 - add r4, r4, #0x48 -_0202A3C8: - ldr r0, [r6] - add r0, r0, #0x400 - ldrh r0, [r0, #0x84] - cmp r5, r0 - blt _0202A3B0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0202A3E0: .4byte 0x020AFDA8 - arm_func_end FUN_0202a388 -_0202A3E4: - .byte 0x08, 0x40, 0x2D, 0xE9, 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE1 - .byte 0x00, 0x30, 0x8D, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x0E, 0x20, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE1 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x14, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_0202a40c -FUN_0202a40c: @ 0x0202A40C - push {r3, lr} - mov lr, r1 - mov ip, r2 - str r3, [sp] - mov r1, r0 - mov r2, lr - mov r3, ip - mov r0, #1 - bl FUN_0202a45c - pop {r3, pc} - arm_func_end FUN_0202a40c - - arm_func_start FUN_0202a434 -FUN_0202a434: @ 0x0202A434 - push {r3, lr} - mov lr, r1 - mov ip, r2 - str r3, [sp] - mov r1, r0 - mov r2, lr - mov r3, ip - mov r0, #2 - bl FUN_0202a45c - pop {r3, pc} - arm_func_end FUN_0202a434 - - arm_func_start FUN_0202a45c -FUN_0202a45c: @ 0x0202A45C - push {r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #0x70 - mov sl, r0 - mov r4, r1 - mov sb, r2 - mov r8, r3 - ldr r7, [sp, #0x90] - bl DataTransferInit - add r0, sp, #0x28 - bl FileInitVeneer - ldr r1, _0202A5C0 @ =0x020AFDAC - add r0, sp, #0x28 - ldr r1, [r1, sl, lsl #2] - bl FileOpen - lsl r1, r4, #3 - add r0, sp, #0x28 - mov r2, #0 - bl FileSeek - add r0, sp, #0x28 - add r1, sp, #8 - mov r2, #0x10 - bl FileRead - ldr r6, [sp, #8] - ldr r1, [sp, #0x10] - mov r0, r6 - sub r4, r1, r6 - ldr r1, [sp, #0xc] - str r0, [sp] - str r1, [sp, #4] - mov r0, r4 - mov r1, #8 - bl MemAlloc + bl ov00_022BEBFC movs r5, r0 - beq _0202A504 - add r0, sp, #0x28 - mov r1, r6 - mov r2, #0 - bl FileSeek - add r0, sp, #0x28 + moveq r0, #8 + popeq {r4, r5, r6, pc} + mov r0, r6 mov r1, r5 mov r2, r4 - bl FileRead -_0202A504: - add r0, sp, #0x28 - bl FileClose - bl DataTransferStop - cmp sl, #2 - ldreq r0, _0202A5C4 @ =0x0209AE44 - add r4, sp, #0x18 - ldrne r0, _0202A5C8 @ =0x0209AE34 - ldm r0, {r0, r1, r2, r3} - stm r4, {r0, r1, r2, r3} - mvn r0, #0 - ldrb r2, [sp, #4] - ldrb r1, [sp, #5] - cmp r7, r0 - ldrbeq r0, [sp, #6] - strb sb, [sp, #0x1c] - strb r8, [sp, #0x1d] - strb r2, [sp, #0x1e] - strb r1, [sp, #0x1f] - addeq r7, r0, #3 - beq _0202A564 - sub r0, r0, #1 - cmp r7, r0 - ldrbeq r0, [sp, #6] - addeq r7, r0, #0x11 -_0202A564: - add r0, sp, #0x18 - mov r1, #0 - bl FUN_0202f8c4 - mov r1, #0 - mov r4, r0 - bl FUN_02027a08 - cmp r5, #0 - beq _0202A5B4 - mov r0, r4 + bl FUN_0207C4C8 + mov r0, r5 + mov r1, r4 + bl FUN_0207A2C0 mov r1, r5 - lsl r2, r7, #4 - bl FUN_02027040 - mov r0, r4 - mov r2, r7 - add r1, r5, #0x30 - bl FUN_02026e3c - mov r0, r4 - bl FUN_02027af0 - mov r0, r5 - bl MemFree -_0202A5B4: - mov r0, r4 - add sp, sp, #0x70 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_0202A5C0: .4byte 0x020AFDAC -_0202A5C4: .4byte 0x0209AE44 -_0202A5C8: .4byte 0x0209AE34 - arm_func_end FUN_0202a45c - - arm_func_start FUN_0202a5cc -FUN_0202a5cc: @ 0x0202A5CC - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov r6, r3 - mov r8, r1 - mov r7, r2 - mov sb, r0 - mov r1, r6 + mov r0, #0xa mov r2, #0 - b _0202A5F4 -_0202A5EC: - add r1, r1, #8 - add r2, r2, #1 -_0202A5F4: - ldrh r0, [r1] - cmp r0, #0 - bne _0202A5EC - add r0, r2, #1 - add r0, r0, r0, lsl #6 - lsl r0, r0, #2 - mov r1, #8 - bl MemAlloc + bl FUN_0207DB20 mov r4, r0 - mov r5, r4 - b _0202A638 -_0202A620: - mov r0, r5 - bl GetStringFromFileVeneer - ldr r0, [r6, #4] - add r6, r6, #8 - str r0, [r5, #0x100] - add r5, r5, #0x104 -_0202A638: - ldrh r1, [r6] - cmp r1, #0 - bne _0202A620 - mov r0, #0 - strb r0, [r5] - ldr r6, [r6, #4] - mov r0, sb - mov r1, r8 - mov r2, r7 - mov r3, r4 - str r6, [r5, #0x100] - bl FUN_0202a75c - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_0202a5cc + ldr r0, _022BED6C @ =0x0231E348 + mov r1, r5 + mov r2, #1 + bl FUN_02079DE0 + cmp r4, #0 + movlt r0, #8 + movge r0, #2 + pop {r4, r5, r6, pc} + .align 2, 0 +_022BED6C: .4byte 0x0231E348 + arm_func_end ov00_022BED00 - arm_func_start FUN_0202a66c -FUN_0202a66c: @ 0x0202A66C - cmp r0, #0 - moveq r0, #1 - bxeq lr - ldrb r0, [r0] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff + arm_func_start ov00_022BED70 +ov00_022BED70: @ 0x022BED70 + ldr r0, _022BED7C @ =0x0231E340 + ldr r0, [r0, #4] bx lr - arm_func_end FUN_0202a66c - - arm_func_start FUN_0202a690 -FUN_0202a690: @ 0x0202A690 - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov r6, r3 - mov r8, r1 - mov r7, r2 - mov sb, r0 - mov r1, r6 - mov r2, #0 - b _0202A6B8 -_0202A6B0: - add r1, r1, #8 - add r2, r2, #1 -_0202A6B8: - ldr r0, [r1] - cmp r0, #0 - bne _0202A6B0 - add r0, r2, #1 - add r0, r0, r0, lsl #6 - lsl r0, r0, #2 - mov r1, #8 - bl MemAlloc - mov r4, r0 - mov r5, r4 - b _0202A6FC -_0202A6E4: - mov r0, r5 - bl Strcpy - ldr r0, [r6, #4] - add r6, r6, #8 - str r0, [r5, #0x100] - add r5, r5, #0x104 -_0202A6FC: - ldr r1, [r6] - cmp r1, #0 - bne _0202A6E4 - mov r0, #0 - strb r0, [r5] - ldr r6, [r6, #4] - mov r0, sb - mov r1, r8 - mov r2, r7 - mov r3, r4 - str r6, [r5, #0x100] - bl FUN_0202a75c - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_0202a690 - - arm_func_start FUN_0202a730 -FUN_0202a730: @ 0x0202A730 - push {r4, lr} - bl FUN_0202a690 - mov r4, r0 - mvn r1, #1 - cmp r4, r1 - beq _0202A754 - bl GetDialogBoxField0xC - mov r1, #1 - strb r1, [r0, #0x1b0] -_0202A754: - mov r0, r4 - pop {r4, pc} - arm_func_end FUN_0202a730 - - arm_func_start FUN_0202a75c -FUN_0202a75c: @ 0x0202A75C - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x2c - mov r6, r0 - mov sl, r1 - mov r0, #0x1b4 - mov r1, #8 - mov sb, r2 - mov r8, r3 - bl MemAlloc - tst sl, #0x20 - ldrne r7, [sb] - mov fp, #0 - moveq r7, #0 - cmp r6, #0 - str fp, [sp, #8] - mov r4, r0 - addne ip, sp, #0x1c - ldmne r6, {r0, r1, r2, r3} - stmne ip, {r0, r1, r2, r3} - ldrne r0, _0202A94C @ =FUN_0202abfc - mov r5, r8 - strne r0, [sp, #0x1c] - bne _0202A7CC - ldr r0, _0202A950 @ =0x0209AE90 - add r6, sp, #0x1c - ldm r0, {r0, r1, r2, r3} - stm r6, {r0, r1, r2, r3} - orr sl, sl, #0x300000 -_0202A7CC: - ldrb r0, [sp, #0x22] - str r4, [sp, #0x28] - cmp r0, #0 - bne _0202A81C - mov r6, #0 - b _0202A7F8 -_0202A7E4: - mov r0, r5 - bl FUN_020265a8 - cmp r0, r6 - movgt r6, r0 - add r5, r5, #0x104 -_0202A7F8: - mov r0, r5 - bl FUN_0202a66c - cmp r0, #0 - beq _0202A7E4 - mov r0, sl - mov r1, sb - add r2, r6, #0x10 - bl FUN_02031a5c - strb r0, [sp, #0x22] -_0202A81C: - mov r5, r8 - and r6, sl, #0x20 - b _0202A84C -_0202A828: - cmp r6, #0 - beq _0202A83C - ldr r0, [r5, #0x100] - cmp r0, r7 - ldreq fp, [sp, #8] -_0202A83C: - ldr r0, [sp, #8] - add r5, r5, #0x104 - add r0, r0, #1 - str r0, [sp, #8] -_0202A84C: - mov r0, r5 - bl FUN_0202a66c - cmp r0, #0 - beq _0202A828 - ldrb r0, [sp, #0x23] - cmp r0, #0 - bne _0202A880 - add r2, sp, #8 - mov r0, sl - mov r1, sb - mov r3, r2 - bl FUN_02031aa4 - strb r0, [sp, #0x23] -_0202A880: - tst sl, #0x200000 - ldrbne r1, [sp, #0x20] - ldrbne r0, [sp, #0x22] - subne r0, r1, r0 - strbne r0, [sp, #0x20] - tst sl, #0x100000 - ldrbne r1, [sp, #0x21] - ldrbne r0, [sp, #0x23] - subne r0, r1, r0 - strbne r0, [sp, #0x21] - ldr r0, _0202A94C @ =FUN_0202abfc - cmp sb, #0 - str r0, [r4] - str sl, [r4, #0xfc] - beq _0202A8DC - add r6, r4, #0x100 - mov r5, #9 -_0202A8C4: - ldm sb!, {r0, r1, r2, r3} - stm r6!, {r0, r1, r2, r3} - subs r5, r5, #1 - bne _0202A8C4 - ldm sb, {r0, r1} - stm r6, {r0, r1} -_0202A8DC: - str fp, [r4, #0x100] - str r8, [r4, #0x198] - mov r2, #0 - str r2, [r4, #0x19c] - strb r2, [r4, #0x1a0] - strb r2, [r4, #0x1a1] - str r2, [r4, #0x1a4] - str r2, [r4, #0x1a8] - str r2, [r4, #0x1ac] - strb r2, [r4, #0x1b0] - add r0, sp, #0x1c - mov r1, #3 - strb r2, [sp, #0x24] - bl FUN_02027648 - add r1, sp, #0xc - mov r6, r0 - bl FUN_02028284 - ldr r5, [sp, #8] - add r3, sp, #0xc - str r5, [sp] - mov r1, sl - add r0, r4, #4 - add r2, r4, #0x100 - str r5, [sp, #4] - bl FUN_02031af8 - mov r0, r6 - add sp, sp, #0x2c - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 -_0202A94C: .4byte FUN_0202abfc -_0202A950: .4byte 0x0209AE90 - arm_func_end FUN_0202a75c +_022BED7C: .4byte 0x0231E340 + arm_func_end ov00_022BED70 - arm_func_start FUN_0202a954 -FUN_0202a954: @ 0x0202A954 - push {r3, lr} - bl GetDialogBoxField0xC - mov r1, #1 - str r1, [r0, #0x19c] - mov r1, #0 - strb r1, [r0, #0x1a0] - strb r1, [r0, #0x1a1] - str r1, [r0, #0x1a4] - ldr r1, [r0, #0xfc] - bic r1, r1, #0x800000 - str r1, [r0, #0xfc] - add r0, r0, #4 - bl FUN_02032984 - pop {r3, pc} - arm_func_end FUN_0202a954 - - arm_func_start FUN_0202a98c -FUN_0202a98c: @ 0x0202A98C - push {r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #0x18 - mov r4, r0 - mov sb, r1 - mov r5, #0 - bl FUN_020275f8 - mov r7, r0 - mov r1, sb - ldr r8, [r7, #0xc] - b _0202A9BC -_0202A9B4: - add r1, r1, #8 - add r5, r5, #1 -_0202A9BC: - ldr r0, [r1] + arm_func_start ov00_022BED80 +ov00_022BED80: @ 0x022BED80 + ldr r0, _022BED98 @ =0x0231E340 + ldrh r0, [r0] cmp r0, #0 - bne _0202A9B4 - ldr r0, [r8, #0x198] - cmp r0, #0 - beq _0202A9D8 - bl MemFree -_0202A9D8: - add r0, r5, #1 - add r0, r0, r0, lsl #6 - lsl r0, r0, #2 - mov r1, #8 - bl MemAlloc - mov r5, r0 - mov r6, r5 - b _0202AA10 -_0202A9F8: - mov r0, r6 - bl Strcpy - ldr r0, [sb, #4] - add sb, sb, #8 - str r0, [r6, #0x100] - add r6, r6, #0x104 -_0202AA10: - ldr r1, [sb] - cmp r1, #0 - bne _0202A9F8 - mov sl, #0 - strb sl, [r6] - ldr r0, [sb, #4] - mov sb, r5 - str r0, [r6, #0x100] - b _0202AA3C -_0202AA34: - add sb, sb, #0x104 - add sl, sl, #1 -_0202AA3C: - mov r0, sb - bl FUN_0202a66c - cmp r0, #0 - beq _0202AA34 - str r5, [r8, #0x198] - ldrb r0, [r7, #8] - bl FUN_020287c4 - mov r0, r4 - bl FUN_02027af0 - mov r0, #3 - str r0, [r8, #0x19c] - mov r2, #0 - strb r2, [r8, #0x1a0] - strb r2, [r8, #0x1a1] - add r1, sp, #8 - mov r0, r4 - str r2, [r8, #0x1a4] - bl FUN_02028284 - str sl, [sp] - str sl, [sp, #4] - ldr r1, [r8, #0xfc] - add r0, r8, #4 - add r2, r8, #0x100 - add r3, sp, #8 - bl FUN_02031af8 - add sp, sp, #0x18 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_end FUN_0202a98c - - arm_func_start FUN_0202aaa8 -FUN_0202aaa8: @ 0x0202AAA8 - push {r3, lr} - bl GetDialogBoxField0xC - mov r1, #7 - str r1, [r0, #0x19c] - pop {r3, pc} - arm_func_end FUN_0202aaa8 - - arm_func_start FUN_0202aabc -FUN_0202aabc: @ 0x0202AABC - push {r3, r4, r5, lr} - mov r5, r0 - bl GetDialogBoxField0xC - mov r4, r0 - ldr r0, [r4, #0x198] - bl MemFree - mov r0, r4 - bl MemFree - mov r0, r5 - bl FUN_02028194 - pop {r3, r4, r5, pc} - arm_func_end FUN_0202aabc - - arm_func_start FUN_0202aae8 -FUN_0202aae8: @ 0x0202AAE8 - push {r3, r4, r5, lr} - mov r5, r0 - bl GetDialogBoxField0xC - mov r4, r0 - ldr r0, [r4, #0x19c] - cmp r0, #4 - cmpne r0, #5 - cmpne r0, #9 movne r0, #0 - popne {r3, r4, r5, pc} - mov r0, #1 - strb r0, [r4, #0x1a0] - mov r2, #0 - strb r0, [r4, #0x1a1] - mov r0, r5 - sub r1, r2, #5 - str r2, [r4, #0x1a4] - bl FUN_0202830c - mov r0, #7 - str r0, [r4, #0x19c] - mov r0, #1 - pop {r3, r4, r5, pc} - arm_func_end FUN_0202aae8 - - arm_func_start FUN_0202ab40 -FUN_0202ab40: @ 0x0202AB40 - push {r3, lr} - bl GetDialogBoxField0xC - ldr r0, [r0, #0x19c] - cmp r0, #8 - cmpne r0, #9 - movne r0, #1 - moveq r0, #0 - pop {r3, pc} - arm_func_end FUN_0202ab40 - - arm_func_start FUN_0202ab60 -FUN_0202ab60: @ 0x0202AB60 - push {r3, lr} - bl GetDialogBoxField0xC - ldrb r0, [r0, #0x1a0] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FUN_0202ab60 - - arm_func_start FUN_0202ab80 -FUN_0202ab80: @ 0x0202AB80 - push {r3, lr} - bl GetDialogBoxField0xC - add r0, r0, #4 - bl FUN_02032558 - pop {r3, pc} - arm_func_end FUN_0202ab80 - - arm_func_start FUN_0202ab94 -FUN_0202ab94: @ 0x0202AB94 - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - mov r1, r4 - add r0, r0, #4 - bl FUN_02032684 - pop {r4, pc} - arm_func_end FUN_0202ab94 - - arm_func_start FUN_0202abb0 -FUN_0202abb0: @ 0x0202ABB0 - push {r4, lr} - bl GetDialogBoxField0xC - ldrb r1, [r0, #0x1a0] - ldr r4, [r0, #0x198] - cmp r1, #0 - beq _0202ABF4 - ldrb r1, [r0, #0x1a1] - add r0, r0, #4 - cmp r1, #0 - beq _0202ABE0 - bl FUN_0203258c - b _0202ABE4 -_0202ABE0: - bl FUN_02032578 -_0202ABE4: - add r0, r0, r0, lsl #6 - add r0, r4, r0, lsl #2 - ldr r0, [r0, #0x100] - pop {r4, pc} -_0202ABF4: - mov r0, #0 - pop {r4, pc} - arm_func_end FUN_0202abb0 - - arm_func_start FUN_0202abfc -FUN_0202abfc: @ 0x0202ABFC - push {r4, r5, r6, lr} - sub sp, sp, #0x30 - mov r6, r0 - ldr r4, [r6, #0xc] - ldr r0, [r4, #0x19c] - cmp r0, #7 - addls pc, pc, r0, lsl #2 - b _0202AF6C -_0202AC1C: @ jump table - b _0202AC3C @ case 0 - b _0202AC5C @ case 1 - b _0202AC78 @ case 2 - b _0202ACDC @ case 3 - b _0202AD3C @ case 4 - b _0202AEE8 @ case 5 - b _0202AEF8 @ case 6 - b _0202AF40 @ case 7 -_0202AC3C: - ldrsb r0, [r6, #0x10] - bl FUN_0202810c - cmp r0, #0 - beq _0202AF6C - ldr r1, [r4, #0x1a8] - mov r0, #2 - str r1, [r4, #0x1ac] - str r0, [r4, #0x19c] -_0202AC5C: - ldr r0, [r4, #0x19c] - cmp r0, #1 - ldreq r1, [r4, #0x1a8] - moveq r0, #2 - streq r1, [r4, #0x1ac] - streq r0, [r4, #0x19c] - beq _0202AF6C -_0202AC78: - ldr r0, [r4, #0x1a8] - cmp r0, #0 - ble _0202ACD4 - ldr r0, [r4, #0x1ac] - mov r1, #0x4000000 - cmp r0, #0 - subgt r0, r0, #1 - strgt r0, [r4, #0x1ac] - ldr r0, [r4, #0x1ac] - cmp r0, #0 - add r0, r4, #4 - ble _0202ACD0 - bl FUN_02031c74 - mov r1, #0 - strb r1, [r4, #0x1a0] - strb r1, [r4, #0x1a1] - str r1, [r4, #0x1a4] - sub r1, r1, #1 - mov r0, r6 - str r1, [r6, #0xb8] - bl FUN_0202af78 - b _0202AF6C -_0202ACD0: - bl FUN_02031c84 -_0202ACD4: - mov r0, #3 - str r0, [r4, #0x19c] -_0202ACDC: - mov r0, r6 - bl FUN_0202af78 - ldr r0, [r4, #0xfc] - tst r0, #0x800000 - beq _0202AD18 - mov r0, #9 - str r0, [r4, #0x19c] - mov r1, #1 - mov r0, #0 - strb r1, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - str r0, [r4, #0x1a4] - sub r0, r0, #4 - str r0, [r6, #0xb8] - b _0202AF6C -_0202AD18: - mov r1, #4 - mov r0, #0 - str r1, [r4, #0x19c] - strb r0, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - str r0, [r4, #0x1a4] - sub r0, r0, #1 - str r0, [r6, #0xb8] - b _0202AF6C -_0202AD3C: - add r1, sp, #8 - add r2, sp, #0xc - add r0, r4, #4 - mov r3, #1 - bl FUN_02031c98 - ldr r1, [sp, #8] - mov r5, r0 - cmp r1, #0 - bne _0202ADAC - ldr r0, [r4, #0xfc] - tst r0, #1 - beq _0202ADAC - mov r3, #0 - ldr r2, _0202AF74 @ =0x00000408 - add r1, sp, #0xc - str r3, [sp] - mov ip, #1 - add r0, r4, #4 - str ip, [sp, #4] - bl FUN_02032160 - movs r1, r0 - bmi _0202ADAC - add r0, r4, #4 - bl FUN_02032684 - ldr r0, [sp, #8] - mov r5, #1 - orr r0, r0, #1 - str r0, [sp, #8] -_0202ADAC: - ldr r0, [sp, #8] - cmp r0, #0 - bne _0202ADCC - add r1, sp, #8 - add r2, sp, #0xc - add r0, r4, #4 - bl FUN_02033758 - orr r5, r5, r0 -_0202ADCC: - add r0, r4, #4 - bl FUN_02032578 - mov r2, r0 - ldr r1, [sp, #8] - add r0, r4, #4 - mov r3, #0 - bl FUN_020323f8 - orrs r0, r5, r0 - beq _0202ADF8 - mov r0, r6 - bl FUN_0202af78 -_0202ADF8: - ldr r1, [sp, #8] - tst r1, #1 - beq _0202AE68 - add r0, r4, #4 - bl IsMenuOptionActive - cmp r0, #0 - beq _0202AE58 - ldr r0, [r4, #0xfc] - tst r0, #0x80000000 - bne _0202AE2C - add r0, r4, #4 - mov r1, #0 - bl FUN_02032960 -_0202AE2C: - mov r1, #1 - mov r0, #0 - strb r1, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - ldr r1, [sp, #8] - sub r0, r0, #4 - str r1, [r4, #0x1a4] - str r0, [r6, #0xb8] - mov r0, #5 - str r0, [r4, #0x19c] - b _0202AED8 -_0202AE58: - add r0, r4, #4 - mov r1, #2 - bl FUN_02032960 - b _0202AED8 -_0202AE68: - tst r1, #2 - add r0, r4, #4 - beq _0202AEA4 - mov r1, #1 - bl FUN_02032960 - mov r0, #1 - strb r0, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - ldr r1, [sp, #8] - sub r0, r0, #6 - str r1, [r4, #0x1a4] - str r0, [r6, #0xb8] - mov r0, #5 - str r0, [r4, #0x19c] - b _0202AED8 -_0202AEA4: - bl FUN_0203250c - cmp r0, #0 - beq _0202AED8 - mov r1, #1 - mov r0, #0 - strb r1, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - ldr r1, [sp, #8] - sub r0, r0, #4 - str r1, [r4, #0x1a4] - str r0, [r6, #0xb8] - mov r0, #5 - str r0, [r4, #0x19c] -_0202AED8: - ldrsb r0, [r6, #0x10] - add r1, r4, #4 - bl FUN_02028948 - b _0202AF6C -_0202AEE8: - add r0, r4, #4 - bl FUN_02032070 - cmp r0, #0 - bne _0202AF6C -_0202AEF8: - ldrb r0, [r4, #0x1a1] - cmp r0, #0 - bne _0202AF24 - ldr r0, [r4, #0xfc] - tst r0, #0x400000 - beq _0202AF38 - mov r0, r6 - bl FUN_0202af78 - mov r0, #9 - str r0, [r4, #0x19c] - b _0202AF6C -_0202AF24: - ldrb r0, [r4, #0x1b0] - cmp r0, #0 - movne r0, #9 - strne r0, [r4, #0x19c] - bne _0202AF6C -_0202AF38: - mov r0, #7 - str r0, [r4, #0x19c] -_0202AF40: - ldrsb r0, [r6, #0x10] - bl FUN_0202812c - cmp r0, #0 - beq _0202AF6C - ldrb r0, [r4, #0x1a1] - cmp r0, #0 - mvnne r0, #4 - mvneq r0, #3 - str r0, [r6, #0xb8] - mov r0, #8 - str r0, [r4, #0x19c] -_0202AF6C: - add sp, sp, #0x30 - pop {r4, r5, r6, pc} + moveq r0, #3 + bx lr .align 2, 0 -_0202AF74: .4byte 0x00000408 - arm_func_end FUN_0202abfc +_022BED98: .4byte 0x0231E340 + arm_func_end ov00_022BED80 - arm_func_start FUN_0202af78 -FUN_0202af78: @ 0x0202AF78 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sl, r0 - ldr r5, [sl, #0xc] - mov r7, #0 - ldr r0, [r5, #0xfc] - ldr r6, [r5, #0x198] - tst r0, #0x200 - ldrne r8, [r5, #0x160] - ldrsb r0, [sl, #0x10] - moveq r8, #0 - bl FUN_02027b1c - mov fp, #1 - mov r4, r7 - b _0202B008 -_0202AFB0: - mov r1, r4 - cmp r8, #0 - beq _0202AFCC - ldrb r0, [r8] - add r8, r8, #1 - tst r0, #2 - movne r1, fp -_0202AFCC: - cmp r1, #0 - movne sb, #0x42 - moveq sb, #0x44 - mov r1, r7 - add r0, r5, #4 - bl FUN_020328d8 - and r1, sb, #0xff - str r1, [sp] - mov r2, r0 - ldrsb r0, [sl, #0x10] - mov r1, #0xd - mov r3, r6 - bl FUN_020263c8 - add r7, r7, #1 - add r6, r6, #0x104 -_0202B008: - mov r0, r6 - bl FUN_0202a66c - cmp r0, #0 - beq _0202AFB0 - ldrsb r1, [sl, #0x10] - add r0, r5, #4 - bl FUN_0202a03c - ldrsb r0, [sl, #0x10] - bl FUN_02027af0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0202af78 - - arm_func_start FUN_0202b030 -FUN_0202b030: @ 0x0202B030 - push {r3, r4, r5, lr} - mov r5, r0 - bl GetDialogBoxField0xC - mov r4, r0 - add r0, r4, #4 - bl IsMenuOptionActive - cmp r0, #0 - beq _0202B094 - ldr r0, [r4, #0xfc] - tst r0, #0x80000000 - bne _0202B068 - add r0, r4, #4 - mov r1, #0 - bl FUN_02032960 -_0202B068: - mov r2, #1 - mov r1, #0 - strb r2, [r4, #0x1a0] - strb r1, [r4, #0x1a1] - mov r0, r5 - sub r1, r1, #4 - str r2, [r4, #0x1a4] - bl FUN_0202830c - mov r0, #6 - str r0, [r4, #0x19c] - pop {r3, r4, r5, pc} -_0202B094: - add r0, r4, #4 - mov r1, #2 - bl FUN_02032960 - pop {r3, r4, r5, pc} - arm_func_end FUN_0202b030 - - arm_func_start FUN_0202b0a4 -FUN_0202b0a4: @ 0x0202B0A4 - push {r3, r4, r5, lr} - mov r5, r1 - bl GetDialogBoxField0xC - mov r4, r0 - cmp r5, #0 - add r0, r4, #4 - mov r1, #0xb000000 - beq _0202B0D8 - bl FUN_02031c74 - add r0, r4, #4 - mov r1, #0x10 - bl FUN_02031c84 - pop {r3, r4, r5, pc} -_0202B0D8: - bl FUN_02031c84 - add r0, r4, #4 - mov r1, #0x10 - bl FUN_02031c74 - pop {r3, r4, r5, pc} - arm_func_end FUN_0202b0a4 - - arm_func_start CreateNormalMenu -CreateNormalMenu: @ 0x0202B0EC - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov r7, r3 - mov sb, r1 - mov r8, r2 - mov sl, r0 - mov r1, r7 - mov r2, #0 - b _0202B114 -_0202B10C: - add r1, r1, #8 - add r2, r2, #1 -_0202B114: - ldrh r0, [r1] - cmp r0, #0 - bne _0202B10C - add r0, r2, #1 - add r0, r0, r0, lsl #6 - lsl r0, r0, #2 - mov r1, #8 - bl MemAlloc - mov r5, r0 - mov r6, r5 - mov r4, #0 - mov fp, #0x100 - b _0202B16C -_0202B148: - ldr r3, _0202B1A8 @ =0x0000C402 - mov r0, r6 - mov r1, fp - str r4, [sp] - bl PreprocessStringFromMessageId - ldr r0, [r7, #4] - add r7, r7, #8 - str r0, [r6, #0x100] - add r6, r6, #0x104 -_0202B16C: - ldrh r2, [r7] - cmp r2, #0 - bne _0202B148 - mov r0, #0 - strb r0, [r6] - ldr r0, [r7, #4] - ldr r4, [sp, #0x28] - str r0, [r6, #0x100] - mov r0, sl - mov r1, sb - mov r2, r8 - mov r3, r5 - str r4, [sp] - bl FUN_0202b284 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0202B1A8: .4byte 0x0000C402 - arm_func_end CreateNormalMenu - - arm_func_start FUN_0202b1ac -FUN_0202b1ac: @ 0x0202B1AC - push {r3, r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #4 - mov r6, r3 - mov sb, r0 - mov r8, r1 - mov r7, r2 - mov r4, r6 - mov r5, #0 - b _0202B1D8 -_0202B1D0: - add r4, r4, #0x104 - add r5, r5, #1 -_0202B1D8: - mov r0, r4 - bl FUN_0202a66c - cmp r0, #0 - beq _0202B1D0 - add r0, r5, #1 - add r0, r0, r0, lsl #6 - lsl r0, r0, #2 - mov r1, #8 - bl MemAlloc - mov r4, r0 - mov r5, r4 - b _0202B234 -_0202B208: - mov sl, r6 - mov ip, r5 - add r6, r6, #0x104 - add r5, r5, #0x104 - mov lr, #0x10 -_0202B21C: - ldm sl!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - subs lr, lr, #1 - bne _0202B21C - ldr r0, [sl] - str r0, [ip] -_0202B234: - mov r0, r6 - bl FUN_0202a66c - cmp r0, #0 - beq _0202B208 - mov ip, #0x10 -_0202B248: - ldm r6!, {r0, r1, r2, r3} - stm r5!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _0202B248 - ldr r0, [r6] - ldr r6, [sp, #0x28] - str r0, [r5] - mov r0, sb - mov r1, r8 - mov r2, r7 - mov r3, r4 - str r6, [sp] - bl FUN_0202b284 - add sp, sp, #4 - pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_end FUN_0202b1ac - - arm_func_start FUN_0202b284 -FUN_0202b284: @ 0x0202B284 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x2c - mov r6, r0 - mov sl, r1 - mov r0, #0x1b4 - mov r1, #8 - mov sb, r2 - mov r8, r3 - bl MemAlloc - tst sl, #0x20 - ldrne r7, [sb] - mov fp, #0 - moveq r7, #0 - cmp r6, #0 - str fp, [sp, #8] - mov r4, r0 - addne ip, sp, #0x1c - ldmne r6, {r0, r1, r2, r3} - stmne ip, {r0, r1, r2, r3} - ldrne r0, _0202B488 @ =FUN_0202b5c8 - mov r5, r8 - orr sl, sl, #0x8000 - strne r0, [sp, #0x1c] - bne _0202B2F8 - ldr r0, _0202B48C @ =0x0209AEA0 - add r6, sp, #0x1c - ldm r0, {r0, r1, r2, r3} - stm r6, {r0, r1, r2, r3} - orr sl, sl, #0x300000 -_0202B2F8: - ldrb r0, [sp, #0x22] - str r4, [sp, #0x28] - cmp r0, #0 - bne _0202B348 - mov r6, #0 - b _0202B324 -_0202B310: - mov r0, r5 - bl FUN_020265a8 - cmp r0, r6 - movgt r6, r0 - add r5, r5, #0x104 -_0202B324: - mov r0, r5 - bl FUN_0202a66c - cmp r0, #0 - beq _0202B310 - mov r0, sl - mov r1, sb - add r2, r6, #0x10 - bl FUN_02031a5c - strb r0, [sp, #0x22] -_0202B348: - mov r5, r8 - b _0202B36C -_0202B350: - ldr r0, [r5, #0x100] - add r5, r5, #0x104 - cmp r0, r7 - ldr r0, [sp, #8] - ldreq fp, [sp, #8] - add r0, r0, #1 - str r0, [sp, #8] -_0202B36C: - mov r0, r5 - bl FUN_0202a66c - cmp r0, #0 - beq _0202B350 - ldr r0, [sp, #0x50] - add r2, sp, #8 - cmp r0, #0 - ldrle r0, [sp, #8] - add r3, sp, #0x50 - strle r0, [sp, #0x50] - ldrb r0, [sp, #0x23] - cmp r0, #0 - mov r0, sl - bne _0202B3B4 - mov r1, sb - bl FUN_02031aa4 - strb r0, [sp, #0x23] - b _0202B3BC -_0202B3B4: - mov r1, sb - bl FUN_02031aa4 -_0202B3BC: - tst sl, #0x200000 - ldrbne r1, [sp, #0x20] - ldrbne r0, [sp, #0x22] - subne r0, r1, r0 - strbne r0, [sp, #0x20] - tst sl, #0x100000 - ldrbne r1, [sp, #0x21] - ldrbne r0, [sp, #0x23] - subne r0, r1, r0 - strbne r0, [sp, #0x21] - ldr r0, _0202B488 @ =FUN_0202b5c8 - cmp sb, #0 - str r0, [r4] - str sl, [r4, #0xfc] - beq _0202B418 - add r6, r4, #0x100 - mov r5, #9 -_0202B400: - ldm sb!, {r0, r1, r2, r3} - stm r6!, {r0, r1, r2, r3} - subs r5, r5, #1 - bne _0202B400 - ldm sb, {r0, r1} - stm r6, {r0, r1} -_0202B418: - str fp, [r4, #0x100] - str r8, [r4, #0x198] - mov r2, #0 - str r2, [r4, #0x19c] - strb r2, [r4, #0x1a0] - strb r2, [r4, #0x1a1] - str r2, [r4, #0x1a4] - str r2, [r4, #0x1ac] - str r2, [r4, #0x1b0] - add r0, sp, #0x1c - mov r1, #3 - strb r2, [sp, #0x24] - bl FUN_02027648 - add r1, sp, #0xc - mov r6, r0 - bl FUN_02028284 - ldr r0, [sp, #8] - add r3, sp, #0xc - str r0, [sp] - ldr r5, [sp, #0x50] - mov r1, sl - add r0, r4, #4 - add r2, r4, #0x100 - str r5, [sp, #4] - bl FUN_02031af8 - mov r0, r6 - add sp, sp, #0x2c - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0202B488: .4byte FUN_0202b5c8 -_0202B48C: .4byte 0x0209AEA0 - arm_func_end FUN_0202b284 - - arm_func_start FUN_0202b490 -FUN_0202b490: @ 0x0202B490 + arm_func_start ov00_022BED9C +ov00_022BED9C: @ 0x022BED9C push {r3, lr} - bl GetDialogBoxField0xC - mov r1, #1 - str r1, [r0, #0x19c] - mov r1, #0 - strb r1, [r0, #0x1a0] - strb r1, [r0, #0x1a1] - ldr r1, [r0, #0xfc] - bic r1, r1, #0x800000 - str r1, [r0, #0xfc] - add r0, r0, #4 - bl FUN_02032984 - pop {r3, pc} - arm_func_end FUN_0202b490 - - arm_func_start FreeNormalMenu -FreeNormalMenu: @ 0x0202B4C4 - push {r3, r4, r5, lr} - mov r5, r0 - bl GetDialogBoxField0xC - mov r4, r0 - ldr r0, [r4, #0x198] - bl MemFree - mov r0, r4 - bl MemFree - mov r0, r5 - bl FUN_02028194 - pop {r3, r4, r5, pc} - arm_func_end FreeNormalMenu - - arm_func_start IsNormalMenuActive -IsNormalMenuActive: @ 0x0202B4F0 - push {r3, lr} - bl GetDialogBoxField0xC - ldr r0, [r0, #0x19c] - cmp r0, #7 - cmpne r0, #8 - movne r0, #1 - moveq r0, #0 - pop {r3, pc} - arm_func_end IsNormalMenuActive - - arm_func_start FUN_0202b510 -FUN_0202b510: @ 0x0202B510 - push {r3, lr} - bl GetDialogBoxField0xC - ldrb r0, [r0, #0x1a0] + bl ov00_022BED80 cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FUN_0202b510 - - arm_func_start FUN_0202b530 -FUN_0202b530: @ 0x0202B530 - push {r3, lr} - bl GetDialogBoxField0xC - add r0, r0, #4 - bl FUN_02032558 - pop {r3, pc} - arm_func_end FUN_0202b530 - - arm_func_start FUN_0202b544 -FUN_0202b544: @ 0x0202B544 - push {r3, lr} - bl GetDialogBoxField0xC - add r0, r0, #4 - bl FUN_02032560 - pop {r3, pc} - arm_func_end FUN_0202b544 - - arm_func_start FUN_0202b558 -FUN_0202b558: @ 0x0202B558 - push {r3, lr} - bl GetDialogBoxField0xC - ldr r0, [r0, #0x1a4] - pop {r3, pc} - arm_func_end FUN_0202b558 - - arm_func_start FUN_0202b568 -FUN_0202b568: @ 0x0202B568 - push {r3, lr} - bl GetDialogBoxField0xC - add r0, r0, #4 - bl FUN_0203259c - pop {r3, pc} - arm_func_end FUN_0202b568 - - arm_func_start GetNormalMenuResult -GetNormalMenuResult: @ 0x0202B57C - push {r4, lr} - bl GetDialogBoxField0xC - ldrb r1, [r0, #0x1a0] - ldr r4, [r0, #0x198] - cmp r1, #0 - beq _0202B5C0 - ldrb r1, [r0, #0x1a1] - add r0, r0, #4 - cmp r1, #0 - beq _0202B5AC - bl FUN_0203258c - b _0202B5B0 -_0202B5AC: - bl FUN_02032578 -_0202B5B0: - add r0, r0, r0, lsl #6 - add r0, r4, r0, lsl #2 - ldr r0, [r0, #0x100] - pop {r4, pc} -_0202B5C0: - mov r0, #0 - pop {r4, pc} - arm_func_end GetNormalMenuResult - - arm_func_start FUN_0202b5c8 -FUN_0202b5c8: @ 0x0202B5C8 - push {r4, r5, r6, lr} - sub sp, sp, #0x30 - mov r6, r0 - ldr r4, [r6, #0xc] - ldr r0, [r4, #0x19c] - cmp r0, #6 - addls pc, pc, r0, lsl #2 - b _0202B928 -_0202B5E8: @ jump table - b _0202B604 @ case 0 - b _0202B624 @ case 1 - b _0202B640 @ case 2 - b _0202B6A4 @ case 3 - b _0202B704 @ case 4 - b _0202B8B8 @ case 5 - b _0202B8FC @ case 6 -_0202B604: - ldrsb r0, [r6, #0x10] - bl FUN_0202810c - cmp r0, #0 - beq _0202B928 - ldr r1, [r4, #0x1ac] - mov r0, #2 - str r1, [r4, #0x1b0] - str r0, [r4, #0x19c] -_0202B624: - ldr r0, [r4, #0x19c] - cmp r0, #1 - ldreq r1, [r4, #0x1ac] - moveq r0, #2 - streq r1, [r4, #0x1b0] - streq r0, [r4, #0x19c] - beq _0202B928 -_0202B640: - ldr r0, [r4, #0x1ac] - cmp r0, #0 - ble _0202B69C - ldr r0, [r4, #0x1b0] - mov r1, #0x4000000 - cmp r0, #0 - subgt r0, r0, #1 - strgt r0, [r4, #0x1b0] - ldr r0, [r4, #0x1b0] - cmp r0, #0 - add r0, r4, #4 - ble _0202B698 - bl FUN_02031c74 - mov r1, #0 - strb r1, [r4, #0x1a0] - strb r1, [r4, #0x1a1] - str r1, [r4, #0x1a8] - sub r1, r1, #1 - mov r0, r6 - str r1, [r6, #0xb8] - bl FUN_0202b934 - b _0202B928 -_0202B698: - bl FUN_02031c84 -_0202B69C: - mov r0, #3 - str r0, [r4, #0x19c] -_0202B6A4: - mov r0, r6 - bl FUN_0202b934 - ldr r0, [r4, #0xfc] - tst r0, #0x800000 - beq _0202B6E0 - mov r0, #8 - str r0, [r4, #0x19c] - mov r1, #1 - mov r0, #0 - strb r1, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - str r0, [r4, #0x1a8] - sub r0, r0, #4 - str r0, [r6, #0xb8] - b _0202B928 -_0202B6E0: - mov r1, #4 - mov r0, #0 - str r1, [r4, #0x19c] - strb r0, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - str r0, [r4, #0x1a8] - sub r0, r0, #1 - str r0, [r6, #0xb8] - b _0202B928 -_0202B704: - add r1, sp, #8 - add r2, sp, #0xc - add r0, r4, #4 - mov r3, #1 - bl FUN_02031c98 - ldr r1, [sp, #8] - mov r5, r0 - str r1, [r4, #0x1a4] - ldr r0, [sp, #8] - cmp r0, #0 - bne _0202B77C - ldr r0, [r4, #0xfc] - tst r0, #1 - beq _0202B77C - mov r3, #0 - ldr r2, _0202B930 @ =0x00000408 - add r1, sp, #0xc - str r3, [sp] - mov ip, #1 - add r0, r4, #4 - str ip, [sp, #4] - bl FUN_02032160 - movs r1, r0 - bmi _0202B77C - add r0, r4, #4 - bl FUN_02032684 - ldr r0, [sp, #8] - mov r5, #1 - orr r0, r0, #1 - str r0, [sp, #8] -_0202B77C: - ldr r0, [sp, #8] - cmp r0, #0 - bne _0202B79C - add r1, sp, #8 - add r2, sp, #0xc - add r0, r4, #4 - bl FUN_02033758 - orr r5, r5, r0 -_0202B79C: - add r0, r4, #4 - bl FUN_02032578 - mov r2, r0 - ldr r1, [sp, #8] - add r0, r4, #4 - mov r3, #0 - bl FUN_020323f8 - orrs r0, r5, r0 - beq _0202B7C8 - mov r0, r6 - bl FUN_0202b934 -_0202B7C8: - ldr r1, [sp, #8] - tst r1, #1 - beq _0202B838 - add r0, r4, #4 - bl IsMenuOptionActive - cmp r0, #0 - beq _0202B828 - ldr r0, [r4, #0xfc] - tst r0, #0x80000000 - bne _0202B7FC - add r0, r4, #4 - mov r1, #0 - bl FUN_02032960 -_0202B7FC: - mov r1, #1 - mov r0, #0 - strb r1, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - ldr r1, [sp, #8] - sub r0, r0, #4 - str r1, [r4, #0x1a8] - str r0, [r6, #0xb8] - mov r0, #5 - str r0, [r4, #0x19c] - b _0202B8A8 -_0202B828: - add r0, r4, #4 - mov r1, #2 - bl FUN_02032960 - b _0202B8A8 -_0202B838: - tst r1, #2 - add r0, r4, #4 - beq _0202B874 - mov r1, #1 - bl FUN_02032960 - mov r0, #1 - strb r0, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - ldr r1, [sp, #8] - sub r0, r0, #6 - str r1, [r4, #0x1a8] - str r0, [r6, #0xb8] - mov r0, #5 - str r0, [r4, #0x19c] - b _0202B8A8 -_0202B874: - bl FUN_0203250c - cmp r0, #0 - beq _0202B8A8 - mov r1, #1 - mov r0, #0 - strb r1, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - ldr r1, [sp, #8] - sub r0, r0, #4 - str r1, [r4, #0x1a8] - str r0, [r6, #0xb8] - mov r0, #5 - str r0, [r4, #0x19c] -_0202B8A8: - ldrsb r0, [r6, #0x10] - add r1, r4, #4 - bl FUN_02028948 - b _0202B928 -_0202B8B8: - add r0, r4, #4 - bl FUN_02032070 - cmp r0, #0 - bne _0202B928 - ldrb r0, [r4, #0x1a1] - cmp r0, #0 - bne _0202B8F4 - ldr r0, [r4, #0xfc] - tst r0, #0x400000 - beq _0202B8F4 - mov r0, r6 - bl FUN_0202b934 - mov r0, #8 - str r0, [r4, #0x19c] - b _0202B928 -_0202B8F4: - mov r0, #6 - str r0, [r4, #0x19c] -_0202B8FC: - ldrsb r0, [r6, #0x10] - bl FUN_0202812c - cmp r0, #0 - beq _0202B928 - ldrb r0, [r4, #0x1a1] - cmp r0, #0 - mvnne r0, #4 - mvneq r0, #3 - str r0, [r6, #0xb8] - mov r0, #7 - str r0, [r4, #0x19c] -_0202B928: - add sp, sp, #0x30 - pop {r4, r5, r6, pc} - .align 2, 0 -_0202B930: .4byte 0x00000408 - arm_func_end FUN_0202b5c8 - - arm_func_start FUN_0202b934 -FUN_0202b934: @ 0x0202B934 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sl, r0 - ldr r4, [sl, #0xc] - add r0, r4, #4 - bl FUN_02032568 - mov r7, r0 - add r0, r4, #4 - bl FUN_02032594 - ldr r2, [r4, #0xfc] - mov r5, r0 - tst r2, #0x200 - ldrne r0, [r4, #0x160] - ldr r3, [r4, #0x198] - addne r8, r0, r7 - add r1, r7, r7, lsl #6 - ldrsb r0, [sl, #0x10] - add r6, r3, r1, lsl #2 - moveq r8, #0 - bl FUN_02027b1c - cmp r5, #0 - mov r7, #0 - ble _0202B9F4 - mov fp, r7 - b _0202B9EC -_0202B994: - mov r1, fp - cmp r8, #0 - beq _0202B9B0 - ldrb r0, [r8] - add r8, r8, #1 - tst r0, #2 - movne r1, #1 -_0202B9B0: - cmp r1, #0 - movne sb, #0x42 - moveq sb, #0x44 - mov r1, r7 - add r0, r4, #4 - bl FUN_020328d8 - and r1, sb, #0xff - str r1, [sp] - mov r2, r0 - ldrsb r0, [sl, #0x10] - mov r1, #0xd - mov r3, r6 - bl FUN_020263c8 - add r7, r7, #1 - add r6, r6, #0x104 -_0202B9EC: - cmp r7, r5 - blt _0202B994 -_0202B9F4: - ldrsb r1, [sl, #0x10] - add r0, r4, #4 - bl FUN_0202a03c - ldrsb r0, [sl, #0x10] - bl FUN_02027af0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0202b934 - - arm_func_start FUN_0202ba0c -FUN_0202ba0c: @ 0x0202BA0C - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - str r4, [r0, #0x1ac] - pop {r4, pc} - arm_func_end FUN_0202ba0c - - arm_func_start CreateAdvancedMenu -CreateAdvancedMenu: @ 0x0202BA20 - push {r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #0x28 - sub sp, sp, #0x400 - mov r6, r0 - mov sl, r1 - mov r0, #0x1b0 - mov r1, #8 - mov sb, r2 - mov r8, r3 - bl MemAlloc - mov r5, r0 - cmp r6, #0 - ldreq r0, _0202BBE8 @ =0x0209AEB0 - add r4, sp, #0x18 - ldmeq r0, {r0, r1, r2, r3} - stmeq r4, {r0, r1, r2, r3} - ldmne r6, {r0, r1, r2, r3} - stmne r4, {r0, r1, r2, r3} - ldrne r0, _0202BBEC @ =FUN_0202bd64 - orr sl, sl, #0x8000 - strne r0, [sp, #0x18] - ldrb r0, [sp, #0x1e] - orreq sl, sl, #0x300000 - str r5, [sp, #0x24] - cmp r0, #0 - bne _0202BADC - mov r7, #0 - mov r6, r7 - add r4, sp, #0x28 - b _0202BABC -_0202BA98: - mov r0, r4 - mov r1, r6 - blx r8 - cmp r0, #0 - beq _0202BAB8 - bl FUN_020265a8 - cmp r0, r7 - movgt r7, r0 -_0202BAB8: - add r6, r6, #1 -_0202BABC: - ldr r0, [sp, #0x448] - cmp r6, r0 - blt _0202BA98 - mov r0, sl - mov r1, sb - add r2, r7, #0x10 - bl FUN_02031a5c - strb r0, [sp, #0x1e] -_0202BADC: - ldrb r0, [sp, #0x1f] - add r2, sp, #0x400 - add r3, sp, #0x400 - cmp r0, #0 - add r2, r2, #0x48 - bne _0202BB0C - add r3, r3, #0x4c - mov r0, sl - mov r1, sb - bl FUN_02031aa4 - strb r0, [sp, #0x1f] - b _0202BB1C -_0202BB0C: - add r3, r3, #0x4c - mov r0, sl - mov r1, sb - bl FUN_02031aa4 -_0202BB1C: - tst sl, #0x200000 - ldrbne r1, [sp, #0x1c] - ldrbne r0, [sp, #0x1e] - subne r0, r1, r0 - strbne r0, [sp, #0x1c] - tst sl, #0x100000 - ldrbne r1, [sp, #0x1d] - ldrbne r0, [sp, #0x1f] - subne r0, r1, r0 - strbne r0, [sp, #0x1d] - ldr r0, _0202BBEC @ =FUN_0202bd64 - cmp sb, #0 - str r0, [r5] - str sl, [r5, #0xfc] - beq _0202BB78 - add r6, r5, #0x100 - mov r4, #9 -_0202BB60: - ldm sb!, {r0, r1, r2, r3} - stm r6!, {r0, r1, r2, r3} - subs r4, r4, #1 - bne _0202BB60 - ldm sb, {r0, r1} - stm r6, {r0, r1} -_0202BB78: - mov r2, #0 - str r2, [r5, #0x18c] - str r8, [r5, #0x198] - str r2, [r5, #0x1a4] - str r2, [r5, #0x19c] - strb r2, [r5, #0x1a0] - strb r2, [r5, #0x1a1] - str r2, [r5, #0x1a8] - add r0, sp, #0x18 - mov r1, #3 - str r2, [r5, #0x1ac] - bl FUN_02027648 - add r1, sp, #8 - mov r6, r0 - bl FUN_02028284 - ldr r0, [sp, #0x448] - add r3, sp, #8 - str r0, [sp] - ldr r4, [sp, #0x44c] - mov r1, sl - add r0, r5, #4 - add r2, r5, #0x100 - str r4, [sp, #4] - bl FUN_02031af8 - mov r0, r6 - add sp, sp, #0x28 - add sp, sp, #0x400 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_0202BBE8: .4byte 0x0209AEB0 -_0202BBEC: .4byte FUN_0202bd64 - arm_func_end CreateAdvancedMenu - - arm_func_start FUN_0202bbf0 -FUN_0202bbf0: @ 0x0202BBF0 - push {r3, lr} - bl GetDialogBoxField0xC - mov r1, #1 - str r1, [r0, #0x19c] - mov r1, #0 - strb r1, [r0, #0x1a0] - strb r1, [r0, #0x1a1] - str r1, [r0, #0x1a4] - ldr r1, [r0, #0xfc] - bic r1, r1, #0x800000 - str r1, [r0, #0xfc] - add r0, r0, #4 - bl FUN_02032984 - pop {r3, pc} - arm_func_end FUN_0202bbf0 - - arm_func_start FUN_0202bc28 -FUN_0202bc28: @ 0x0202BC28 - push {r3, lr} - bl GetDialogBoxField0xC - ldr r1, [r0, #0x19c] - cmp r1, #3 - moveq r1, #2 - streq r1, [r0, #0x19c] - pop {r3, pc} - arm_func_end FUN_0202bc28 - - arm_func_start FreeAdvancedMenu -FreeAdvancedMenu: @ 0x0202BC44 - push {r4, lr} - mov r4, r0 - bl GetDialogBoxField0xC - bl MemFree - mov r0, r4 - bl FUN_02028194 - pop {r4, pc} - arm_func_end FreeAdvancedMenu - - arm_func_start FUN_0202bc60 -FUN_0202bc60: @ 0x0202BC60 - push {r3, r4, r5, lr} - mov r5, r0 - bl GetDialogBoxField0xC - mov r4, r0 - ldr r0, [r4, #0x19c] - cmp r0, #3 - cmpne r0, #4 - cmpne r0, #0xa - cmpne r0, #8 - movne r0, #0 - popne {r3, r4, r5, pc} - mov r0, #1 - strb r0, [r4, #0x1a0] - mov r2, #0 - strb r0, [r4, #0x1a1] - mov r0, r5 - sub r1, r2, #5 - str r2, [r4, #0x1a4] - bl FUN_0202830c - mov r0, #6 - str r0, [r4, #0x19c] - mov r0, #1 - pop {r3, r4, r5, pc} - arm_func_end FUN_0202bc60 - - arm_func_start FUN_0202bcbc -FUN_0202bcbc: @ 0x0202BCBC - push {r3, lr} - bl GetDialogBoxField0xC - ldr r0, [r0, #0x19c] - cmp r0, #7 - cmpne r0, #8 - movne r0, #1 - moveq r0, #0 - pop {r3, pc} - arm_func_end FUN_0202bcbc - - arm_func_start IsAdvancedMenuActive -IsAdvancedMenuActive: @ 0x0202BCDC - push {r3, lr} - bl GetDialogBoxField0xC - ldrb r0, [r0, #0x1a0] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end IsAdvancedMenuActive - - arm_func_start GetAdvancedMenuCurrentOption -GetAdvancedMenuCurrentOption: @ 0x0202BCFC - push {r3, lr} - bl GetDialogBoxField0xC - add r0, r0, #4 - bl FUN_02032578 - pop {r3, pc} - arm_func_end GetAdvancedMenuCurrentOption - - arm_func_start GetAdvancedMenuResult -GetAdvancedMenuResult: @ 0x0202BD10 - push {r3, lr} - bl GetDialogBoxField0xC - ldrb r1, [r0, #0x1a0] - cmp r1, #0 - beq _0202BD40 - ldrb r1, [r0, #0x1a1] - cmp r1, #0 - mvnne r0, #0 popne {r3, pc} - add r0, r0, #4 - bl FUN_02032578 - pop {r3, pc} -_0202BD40: - mvn r0, #0 - pop {r3, pc} - arm_func_end GetAdvancedMenuResult - - arm_func_start FUN_0202bd48 -FUN_0202bd48: @ 0x0202BD48 - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - mov r1, r4 - add r0, r0, #4 - bl FUN_02032684 - pop {r4, pc} - arm_func_end FUN_0202bd48 - - arm_func_start FUN_0202bd64 -FUN_0202bd64: @ 0x0202BD64 - push {r4, r5, r6, lr} - sub sp, sp, #0x30 - mov r6, r0 - ldr r4, [r6, #0xc] - ldr r0, [r4, #0x19c] - cmp r0, #0xa - addls pc, pc, r0, lsl #2 - b _0202C1D8 -_0202BD84: @ jump table - b _0202BDB0 @ case 0 - b _0202BDC8 @ case 1 - b _0202BDF0 @ case 2 - b _0202BE50 @ case 3 - b _0202C168 @ case 4 - b _0202C178 @ case 5 - b _0202C1AC @ case 6 - b _0202C1D8 @ case 7 - b _0202C1D8 @ case 8 - b _0202C0F8 @ case 9 - b _0202C130 @ case 10 -_0202BDB0: - ldrsb r0, [r6, #0x10] - bl FUN_0202810c - cmp r0, #0 - beq _0202C1D8 - mov r0, #2 - str r0, [r4, #0x19c] -_0202BDC8: - ldr r0, [r4, #0x19c] + ldr r0, _022BEDE0 @ =0x0231E340 + mov r1, #2 + ldr r0, [r0, #4] + ldr r0, [r0, #4] + bl FUN_0207A2A4 + ldr r0, _022BEDE0 @ =0x0231E340 + ldr r0, [r0, #4] + ldr r0, [r0, #4] + ldrh r0, [r0] cmp r0, #1 - bne _0202BDF0 - ldrb r0, [r6, #8] - bl FUN_020287c4 - ldrsb r0, [r6, #0x10] - bl FUN_02027af0 - mov r0, #2 - str r0, [r4, #0x19c] - b _0202C1D8 -_0202BDF0: - mov r0, r6 - bl FUN_0202c260 - ldr r0, [r4, #0xfc] - tst r0, #0x800000 - beq _0202BE2C - mov r0, #8 - str r0, [r4, #0x19c] - mov r1, #1 - mov r0, #0 - strb r1, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - str r0, [r4, #0x1a4] - sub r0, r0, #4 - str r0, [r6, #0xb8] - b _0202C1D8 -_0202BE2C: - mov r1, #3 - mov r0, #0 - str r1, [r4, #0x19c] - strb r0, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - str r0, [r4, #0x1a4] - sub r0, r0, #1 - str r0, [r6, #0xb8] - b _0202C1D8 -_0202BE50: - mov r0, #0 - str r0, [sp, #8] - add r1, sp, #8 - add r2, sp, #0xc - add r0, r4, #4 - mov r3, #1 - bl FUN_02031c98 - ldr r1, [sp, #8] - mov r5, r0 - cmp r1, #0 - bne _0202BEC8 - ldr r0, [r4, #0xfc] - tst r0, #1 - beq _0202BEC8 - mov r3, #0 - ldr r2, _0202C1E0 @ =0x00000408 - add r1, sp, #0xc - str r3, [sp] - mov ip, #1 - add r0, r4, #4 - str ip, [sp, #4] - bl FUN_02032160 - movs r1, r0 - bmi _0202BEC8 - add r0, r4, #4 - bl FUN_02032684 - ldr r0, [sp, #8] - mov r5, #1 - orr r0, r0, #1 - str r0, [sp, #8] -_0202BEC8: - ldr r0, [sp, #8] - cmp r0, #0 - bne _0202BEE8 - add r1, sp, #8 - add r2, sp, #0xc - add r0, r4, #4 - bl FUN_02033758 - orr r5, r5, r0 -_0202BEE8: - add r0, r4, #4 - bl FUN_02032578 - mov r2, r0 - ldr r1, [sp, #8] - add r0, r4, #4 - mov r3, #0 - bl FUN_020323f8 - orrs r0, r5, r0 - beq _0202BF14 - mov r0, r6 - bl FUN_0202c260 -_0202BF14: - ldr r1, [sp, #8] - tst r1, #1 - beq _0202BF84 - add r0, r4, #4 - bl IsMenuOptionActive - cmp r0, #0 - beq _0202BF74 - ldr r0, [r4, #0xfc] - tst r0, #0x80000000 - bne _0202BF48 - add r0, r4, #4 - mov r1, #0 - bl FUN_02032960 -_0202BF48: - mov r1, #1 - mov r0, #0 - strb r1, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - ldr r1, [sp, #8] - sub r0, r0, #4 - str r1, [r4, #0x1a4] - str r0, [r6, #0xb8] - mov r0, #4 - str r0, [r4, #0x19c] - b _0202C0E8 -_0202BF74: - add r0, r4, #4 - mov r1, #2 - bl FUN_02032960 - b _0202C0E8 -_0202BF84: - tst r1, #2 - beq _0202BFC0 - add r0, r4, #4 - mov r1, #1 - bl FUN_02032960 - mov r0, #1 - strb r0, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - ldr r1, [sp, #8] - sub r0, r0, #6 - str r1, [r4, #0x1a4] - str r0, [r6, #0xb8] - mov r0, #4 - str r0, [r4, #0x19c] - b _0202C0E8 -_0202BFC0: - tst r1, #0x1000 - beq _0202C00C - ldr r0, [r4, #0xfc] - tst r0, #0x2000 - beq _0202C00C - add r0, r4, #4 - mov r1, #0 - bl FUN_02032960 - mov r1, #1 - mov r0, #0 - strb r1, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - ldr r1, [sp, #8] - sub r0, r0, #4 - str r1, [r4, #0x1a4] - str r0, [r6, #0xb8] - mov r0, #9 - str r0, [r4, #0x19c] - b _0202C0E8 -_0202C00C: - tst r1, #0x2000 - beq _0202C058 - ldr r0, [r4, #0xfc] - tst r0, #0x4000 - beq _0202C058 - add r0, r4, #4 - mov r1, #0 - bl FUN_02032960 - mov r1, #1 - mov r0, #0 - strb r1, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - ldr r1, [sp, #8] - sub r0, r0, #4 - str r1, [r4, #0x1a4] - str r0, [r6, #0xb8] - mov r0, #0xa - str r0, [r4, #0x19c] - b _0202C0E8 -_0202C058: - tst r1, #0x200 - ldrne r0, [r4, #0x18c] - cmpne r0, #0 - add r0, r4, #4 - beq _0202C080 - mov r1, #5 - bl FUN_02032960 - ldr r0, [r4, #0x18c] - blx r0 - b _0202C0E8 -_0202C080: - bl FUN_0203250c - cmp r0, #0 - beq _0202C0B8 - mov r1, #1 - mov r0, #0 - strb r1, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - ldr r1, [sp, #8] - sub r0, r0, #4 - str r1, [r4, #0x1a4] - str r0, [r6, #0xb8] - mov r0, #4 - str r0, [r4, #0x19c] - b _0202C0E8 -_0202C0B8: - ldr r0, [sp, #8] - tst r0, #0x40000 - bne _0202C0CC - tst r0, #0x80000 - beq _0202C0E8 -_0202C0CC: - tst r0, #0x4000 - bne _0202C0E8 - tst r0, #0x8000 - moveq r0, #1 - strbeq r0, [r4, #0x1a0] - ldreq r0, [sp, #8] - streq r0, [r4, #0x1a4] -_0202C0E8: - ldrsb r0, [r6, #0x10] - add r1, r4, #4 - bl FUN_02028948 - b _0202C1D8 -_0202C0F8: - add r0, r4, #4 - bl FUN_02032070 - cmp r0, #0 - bne _0202C1D8 - mov r0, r6 - bl FUN_0202c260 - ldr r3, [r4, #0x174] - cmp r3, #0 - beq _0202C1D8 - mov r0, #0 - mov r1, r0 - mov r2, r0 - blx r3 - b _0202C1D8 -_0202C130: - add r0, r4, #4 - bl FUN_02032070 - cmp r0, #0 - bne _0202C1D8 - mov r0, r6 - bl FUN_0202c260 - ldr r3, [r4, #0x17c] - cmp r3, #0 - beq _0202C1D8 - mov r0, #0 - mov r1, r0 - mov r2, r0 - blx r3 - b _0202C1D8 -_0202C168: - add r0, r4, #4 - bl FUN_02032070 - cmp r0, #0 - bne _0202C1D8 -_0202C178: - ldrb r0, [r4, #0x1a1] - cmp r0, #0 - bne _0202C1A4 - ldr r0, [r4, #0xfc] - tst r0, #0x400000 - beq _0202C1A4 - mov r0, r6 - bl FUN_0202c260 - mov r0, #8 - str r0, [r4, #0x19c] - b _0202C1D8 -_0202C1A4: - mov r0, #6 - str r0, [r4, #0x19c] -_0202C1AC: - ldrsb r0, [r6, #0x10] - bl FUN_0202812c - cmp r0, #0 - beq _0202C1D8 - ldrb r0, [r4, #0x1a1] - cmp r0, #0 - mvnne r0, #4 - mvneq r0, #3 - str r0, [r6, #0xb8] - mov r0, #7 - str r0, [r4, #0x19c] -_0202C1D8: - add sp, sp, #0x30 - pop {r4, r5, r6, pc} + movls r0, #3 + movhi r0, #0 + pop {r3, pc} .align 2, 0 -_0202C1E0: .4byte 0x00000408 - arm_func_end FUN_0202bd64 +_022BEDE0: .4byte 0x0231E340 + arm_func_end ov00_022BED9C - arm_func_start FUN_0202c1e4 -FUN_0202c1e4: @ 0x0202C1E4 - push {r3, r4, r5, lr} - mov r5, r0 - bl GetDialogBoxField0xC - mov r4, r0 - add r0, r4, #4 - bl IsMenuOptionActive + arm_func_start ov00_022BEDE4 +ov00_022BEDE4: @ 0x022BEDE4 + push {r0, r1, r2, r3} + push {r3, lr} + bl ov00_022BED80 cmp r0, #0 - beq _0202C24C - ldr r0, [r4, #0xfc] - tst r0, #0x80000000 - bne _0202C21C - add r0, r4, #4 - mov r1, #0 - bl FUN_02032960 -_0202C21C: - mov r2, #1 - mov r1, #0 - strb r2, [r4, #0x1a0] - strb r1, [r4, #0x1a1] - mov r0, r5 - sub r1, r1, #4 - str r2, [r4, #0x1a4] - bl FUN_0202830c - mov r0, #5 - str r0, [r4, #0x19c] - mov r0, #1 - pop {r3, r4, r5, pc} -_0202C24C: - add r0, r4, #4 + popne {r3, lr} + addne sp, sp, #0x10 + bxne lr + ldr r0, _022BEE74 @ =0x0231E340 mov r1, #2 - bl FUN_02032960 - mov r0, #0 - pop {r3, r4, r5, pc} - arm_func_end FUN_0202c1e4 - - arm_func_start FUN_0202c260 -FUN_0202c260: @ 0x0202C260 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0xc - sub sp, sp, #0x400 - mov sl, r0 - ldr r4, [sl, #0xc] - add r0, r4, #4 - bl FUN_02032568 - mov r5, r0 - add r0, r4, #4 - bl FUN_02032594 - ldr r1, [r4, #0xfc] - mov r6, r0 - tst r1, #0x200 - ldrne r0, [r4, #0x160] - addne sb, r0, r5 - ldrsb r0, [sl, #0x10] - moveq sb, #0 - bl FUN_02027b1c - cmp r6, #0 - mov r7, #0 - ble _0202C36C - mov fp, #0x42 - b _0202C364 -_0202C2BC: - ldr r2, [r4, #0x198] - add r0, sp, #0xc - mov r1, r5 - blx r2 - mov r8, r0 - mov r1, #0 - cmp sb, #0 - beq _0202C2EC - ldrb r0, [sb] - add sb, sb, #1 - tst r0, #2 - movne r1, #1 -_0202C2EC: - cmp r8, #0 - beq _0202C35C - cmp r1, #0 - mov r1, r7 - add r0, r4, #4 - beq _0202C334 - bl FUN_020328d8 - str fp, [sp] - mov r2, r0 - ldr r0, [r4, #0x1a8] - mov r3, r8 - str r0, [sp, #4] - ldr r0, [r4, #0x1ac] - mov r1, #0xd - str r0, [sp, #8] - ldrsb r0, [sl, #0x10] - bl FUN_02026428 - b _0202C35C -_0202C334: - bl FUN_020328d8 - mov r2, r0 - ldr r0, [r4, #0x1a8] - mov r3, r8 - str r0, [sp] - ldr r0, [r4, #0x1ac] - mov r1, #0xd - str r0, [sp, #4] - ldrsb r0, [sl, #0x10] - bl FUN_02026358 -_0202C35C: - add r7, r7, #1 - add r5, r5, #1 -_0202C364: - cmp r7, r6 - blt _0202C2BC -_0202C36C: - ldrsb r1, [sl, #0x10] - add r0, r4, #4 - bl FUN_0202a03c - ldrsb r0, [sl, #0x10] - bl FUN_02027af0 - add sp, sp, #0xc - add sp, sp, #0x400 - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0202c260 - - arm_func_start FUN_0202c38c -FUN_0202c38c: @ 0x0202C38C - push {r3, lr} - bl GetDialogBoxField0xC - ldrb r1, [r0, #0x1a0] - cmp r1, #0 - ldrne r0, [r0, #0x1a4] - moveq r0, #0 - pop {r3, pc} - arm_func_end FUN_0202c38c - - arm_func_start FUN_0202c3a8 -FUN_0202c3a8: @ 0x0202C3A8 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x2c - sub sp, sp, #0x400 - mov r4, r0 - mov sl, r1 - mov r0, #0x1cc - mov r1, #8 - mov sb, r2 - mov r8, r3 - bl MemAlloc - ldr r1, [sp, #0x450] - mov r5, r0 - cmp r1, #0 - ldrne r0, _0202C5D4 @ =0x10008004 - orr sl, sl, #0x8000 - orrne sl, sl, r0 - cmp r4, #0 - addne r6, sp, #0x1c - ldmne r4, {r0, r1, r2, r3} - stmne r6, {r0, r1, r2, r3} - ldrne r0, _0202C5D8 @ =FUN_0202c808 - strne r0, [sp, #0x1c] - bne _0202C418 - ldr r0, _0202C5DC @ =0x0209AEC0 - add r4, sp, #0x1c - ldm r0, {r0, r1, r2, r3} - stm r4, {r0, r1, r2, r3} - orr sl, sl, #0x300000 -_0202C418: - ldrb r0, [sp, #0x22] - str r5, [sp, #0x28] - cmp r0, #0 - bne _0202C484 - mov r7, #0 - mov r6, r7 - add r4, sp, #0x2c - add fp, sp, #8 - b _0202C464 -_0202C43C: - mov r0, r4 - mov r1, r6 - mov r2, fp - blx r8 - cmp r0, #0 - beq _0202C460 - bl FUN_020265a8 - cmp r0, r7 - movgt r7, r0 -_0202C460: - add r6, r6, #1 -_0202C464: - ldr r0, [sp, #0x454] - cmp r6, r0 - blt _0202C43C - mov r0, sl - mov r1, sb - add r2, r7, #0x10 - bl FUN_02031a5c - strb r0, [sp, #0x22] -_0202C484: - ldrb r0, [sp, #0x23] - add r2, sp, #0x400 - add r3, sp, #0x400 - cmp r0, #0 - add r2, r2, #0x54 - bne _0202C4B4 - add r3, r3, #0x58 - mov r0, sl - mov r1, sb - bl FUN_02031aa4 - strb r0, [sp, #0x23] - b _0202C4C4 -_0202C4B4: - add r3, r3, #0x58 - mov r0, sl - mov r1, sb - bl FUN_02031aa4 -_0202C4C4: - tst sl, #0x200000 - ldrbne r1, [sp, #0x20] - ldrbne r0, [sp, #0x22] - subne r0, r1, r0 - strbne r0, [sp, #0x20] - tst sl, #0x100000 - ldrbne r1, [sp, #0x21] - ldrbne r0, [sp, #0x23] - subne r0, r1, r0 - strbne r0, [sp, #0x21] - ldr r1, _0202C5D8 @ =FUN_0202c808 - mov r0, #0 - str r1, [r5] - str sl, [r5, #0xfc] - strb r0, [r5, #0x1c5] - cmp sb, #0 - beq _0202C528 - add r6, r5, #0x100 - mov r4, #9 -_0202C510: - ldm sb!, {r0, r1, r2, r3} - stm r6!, {r0, r1, r2, r3} - subs r4, r4, #1 - bne _0202C510 - ldm sb, {r0, r1} - stm r6, {r0, r1} -_0202C528: - mov r3, #0 - str r3, [r5, #0x18c] - ldr r0, [sp, #0x450] - str r8, [r5, #0x198] - str r0, [r5, #0x19c] - str r3, [r5, #0x1a8] - str r3, [r5, #0x1ac] - strb r3, [r5, #0x1b0] - strb r3, [r5, #0x1b1] - strb r3, [r5, #0x1b2] - str r3, [r5, #0x1b4] - str r3, [r5, #0x1b8] - mov r0, #0xd - str r0, [r5, #0x1bc] - strb r3, [r5, #0x1c6] - ldrb r2, [sp, #0x22] - add r0, sp, #0x1c - mov r1, #3 - lsl r2, r2, #3 - sub r2, r2, #1 - str r2, [r5, #0x1c0] - strb r3, [r5, #0x1c4] - strb r3, [r5, #0x1c8] - strb r3, [r5, #0x1c9] - str r3, [r5, #0x1a4] - str r3, [r5, #0x1a0] - bl FUN_02027648 - add r1, sp, #0xc - mov r6, r0 - bl FUN_02028284 - ldr r0, [sp, #0x454] - add r3, sp, #0xc - str r0, [sp] - ldr r4, [sp, #0x458] - mov r1, sl - add r0, r5, #4 - add r2, r5, #0x100 - str r4, [sp, #4] - bl FUN_02031af8 - mov r0, r6 - add sp, sp, #0x2c - add sp, sp, #0x400 - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0202C5D4: .4byte 0x10008004 -_0202C5D8: .4byte FUN_0202c808 -_0202C5DC: .4byte 0x0209AEC0 - arm_func_end FUN_0202c3a8 - - arm_func_start FUN_0202c5e0 -FUN_0202c5e0: @ 0x0202C5E0 - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - str r4, [r0, #0x1bc] - pop {r4, pc} - arm_func_end FUN_0202c5e0 - - arm_func_start FUN_0202c5f4 -FUN_0202c5f4: @ 0x0202C5F4 - push {r4, lr} - mov r4, r1 - bl FUN_020275f8 - ldr r1, [r0, #0xc] - str r4, [r1, #0x1c0] - ldrb r0, [r0, #6] - lsl r0, r0, #3 - sub r0, r0, #1 - cmp r4, r0 - strgt r0, [r1, #0x1c0] - pop {r4, pc} - arm_func_end FUN_0202c5f4 - - arm_func_start FUN_0202c620 -FUN_0202c620: @ 0x0202C620 - push {r3, lr} - bl GetDialogBoxField0xC - mov r1, #1 - str r1, [r0, #0x1ac] - mov r1, #0 - strb r1, [r0, #0x1b0] - strb r1, [r0, #0x1b1] - ldr r1, [r0, #0xfc] - bic r1, r1, #0x800000 - str r1, [r0, #0xfc] - add r0, r0, #4 - bl FUN_02032984 - pop {r3, pc} - arm_func_end FUN_0202c620 - - arm_func_start FUN_0202c654 -FUN_0202c654: @ 0x0202C654 - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x18 - mov r8, r0 - mov r7, r1 - mov r6, r2 - mov r5, r3 - bl GetDialogBoxField0xC - mov r4, r0 - mov r0, #1 - str r0, [r4, #0x1ac] - mov r0, #0 - strb r0, [r4, #0x1b0] - strb r0, [r4, #0x1b1] - cmp r5, #0 - bne _0202C6A4 - mov r0, r8 - bl GetDialogBoxField0xC - add r0, r0, #4 - bl FUN_02032578 - str r0, [r4, #0x100] -_0202C6A4: - add r1, sp, #8 - mov r0, r8 - bl FUN_02028284 - str r7, [sp] - str r6, [sp, #4] - ldr r1, [r4, #0xfc] - add r3, sp, #8 - add r0, r4, #4 - add r2, r4, #0x100 - bl FUN_02031af8 - add sp, sp, #0x18 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0202c654 - - arm_func_start FUN_0202c6d4 -FUN_0202c6d4: @ 0x0202C6D4 - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - mov r1, r4 - add r0, r0, #4 - bl FUN_0203271c - pop {r4, pc} - arm_func_end FUN_0202c6d4 - - arm_func_start FUN_0202c6f0 -FUN_0202c6f0: @ 0x0202C6F0 - push {r3, r4, r5, lr} - mov r5, r1 - mov r4, r2 - bl GetDialogBoxField0xC - str r5, [r0, #0x1b4] - str r4, [r0, #0x1b8] - pop {r3, r4, r5, pc} - arm_func_end FUN_0202c6f0 - - arm_func_start FUN_0202c70c -FUN_0202c70c: @ 0x0202C70C - push {r4, lr} - mov r4, r0 - bl GetDialogBoxField0xC - bl MemFree - mov r0, r4 - bl FUN_02028194 - pop {r4, pc} - arm_func_end FUN_0202c70c - - arm_func_start FUN_0202c728 -FUN_0202c728: @ 0x0202C728 - push {r3, lr} - bl GetDialogBoxField0xC - ldr r0, [r0, #0x1ac] - cmp r0, #6 - cmpne r0, #7 - movne r0, #1 - moveq r0, #0 - pop {r3, pc} - arm_func_end FUN_0202c728 - - arm_func_start FUN_0202c748 -FUN_0202c748: @ 0x0202C748 - push {r3, lr} - bl GetDialogBoxField0xC - add r0, r0, #4 - bl FUN_02032578 - pop {r3, pc} - arm_func_end FUN_0202c748 - - arm_func_start FUN_0202c75c -FUN_0202c75c: @ 0x0202C75C - push {r3, lr} - bl GetDialogBoxField0xC - ldrb r1, [r0, #0x1b0] - cmp r1, #0 - beq _0202C78C - ldrb r1, [r0, #0x1b1] - cmp r1, #0 - mvnne r0, #0 - popne {r3, pc} - add r0, r0, #4 - bl FUN_02032578 - pop {r3, pc} -_0202C78C: - mvn r0, #0 - pop {r3, pc} - arm_func_end FUN_0202c75c - - arm_func_start FUN_0202c794 -FUN_0202c794: @ 0x0202C794 - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - strb r4, [r0, #0x1c8] - pop {r4, pc} - arm_func_end FUN_0202c794 - - arm_func_start FUN_0202c7a8 -FUN_0202c7a8: @ 0x0202C7A8 - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - str r4, [r0, #0x1a0] - pop {r4, pc} - arm_func_end FUN_0202c7a8 - - arm_func_start FUN_0202c7bc -FUN_0202c7bc: @ 0x0202C7BC - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - str r4, [r0, #0x1a4] - pop {r4, pc} - arm_func_end FUN_0202c7bc - - arm_func_start FUN_0202c7d0 -FUN_0202c7d0: @ 0x0202C7D0 - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - str r4, [r0, #0x1a8] - pop {r4, pc} - arm_func_end FUN_0202c7d0 - - arm_func_start FUN_0202c7e4 -FUN_0202c7e4: @ 0x0202C7E4 - push {r3, lr} - bl GetDialogBoxField0xC - ldr r1, [r0, #0x1ac] - cmp r1, #3 - moveq r1, #2 - streq r1, [r0, #0x1ac] - moveq r0, #1 - movne r0, #0 - pop {r3, pc} - arm_func_end FUN_0202c7e4 - - arm_func_start FUN_0202c808 -FUN_0202c808: @ 0x0202C808 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x30 - mov r4, r0 - ldrsb r0, [r4, #0x10] - ldr r5, [r4, #0xc] - bl FUN_02028354 - cmp r0, #3 - moveq r1, #1 - movne r1, #0 - ldr r0, [r5, #0x1ac] - and fp, r1, #0xff - cmp r0, #0xa - addls pc, pc, r0, lsl #2 - b _0202CE40 -_0202C840: @ jump table - b _0202C86C @ case 0 - b _0202C884 @ case 1 - b _0202C8C0 @ case 2 - b _0202C918 @ case 3 - b _0202CDC8 @ case 4 - b _0202CE0C @ case 5 - b _0202CE40 @ case 6 - b _0202CE40 @ case 7 - b _0202CCA4 @ case 8 - b _0202CD14 @ case 9 - b _0202CD74 @ case 10 -_0202C86C: - ldrsb r0, [r4, #0x10] - bl FUN_0202810c - cmp r0, #0 - beq _0202CE40 - mov r0, #2 - str r0, [r5, #0x1ac] -_0202C884: - ldr r0, [r5, #0x1ac] - cmp r0, #1 - bne _0202C8C0 - ldrb r0, [r5, #0x1c6] - cmp r0, #0 - beq _0202C8A4 - mov r0, r4 - bl FUN_0202cea0 -_0202C8A4: - ldrb r0, [r4, #8] - bl FUN_020287c4 - ldrsb r0, [r4, #0x10] - bl FUN_02027af0 - mov r0, #2 - str r0, [r5, #0x1ac] - b _0202CE40 -_0202C8C0: - mov r0, r4 - bl FUN_0202cea0 - ldr r0, [r5, #0xfc] - tst r0, #0x800000 - beq _0202C8F8 - mov r0, #7 - str r0, [r5, #0x1ac] - mov r1, #1 - mov r0, #0 - strb r1, [r5, #0x1b0] - strb r0, [r5, #0x1b1] - sub r0, r0, #4 - str r0, [r4, #0xb8] - b _0202CE40 -_0202C8F8: - mov r1, #3 - mov r0, #0 - str r1, [r5, #0x1ac] - strb r0, [r5, #0x1b0] - strb r0, [r5, #0x1b1] - sub r0, r0, #1 - str r0, [r4, #0xb8] - b _0202CE40 -_0202C918: - add r1, sp, #8 - add r2, sp, #0xc - add r0, r5, #4 - mov r3, #1 - bl FUN_02031c98 - ldr r1, [sp, #8] - mov r6, #0 - cmp r1, #0 - movne r6, #1 - mov r8, r0 - cmp r1, #0 - bne _0202CA70 - ldr r0, [r5, #0xfc] - tst r0, #1 - beq _0202CA70 - mov r3, #0 - str r3, [sp] - ldr r2, _0202CE9C @ =0x00000408 - add r1, sp, #0xc - add r0, r5, #4 - str r3, [sp, #4] - bl FUN_02032160 - movs r7, r0 - bmi _0202CA70 - ldrb r0, [r5, #0x1b2] - cmp r0, #0 - beq _0202C994 - add r0, r5, #4 - bl FUN_02032578 - cmp r7, r0 - bne _0202CA54 -_0202C994: - ldr r0, [r5, #0x19c] - cmp r0, #0 - ldrne r0, [sp, #8] - orrne r0, r0, #4 - orrne r0, r0, #0x400 - strne r0, [sp, #8] - bne _0202CA60 - ldr r1, [sp, #8] - add r0, r5, #4 - orr r1, r1, #1 - str r1, [sp, #8] - ldr r8, [r5, #0xc] - ldr sb, [r5, #0x10] - bl FUN_02032568 - mov r1, r0 - add r0, r5, #4 - sub r1, r7, r1 - bl FUN_020328d8 - ldr r1, [r5, #4] - add sl, r1, r0 - add r0, r5, #4 - bl FUN_02032568 - sub r0, r7, r0 - add r1, r0, #1 - add r0, r5, #4 - bl FUN_020328d8 - ldr r2, [r5, #4] - mov r1, #6 - str r1, [r5, #0xdc] - sub r1, r1, #7 - str r1, [r5, #0xe0] - mov r1, #0 - str r1, [r5, #0xe4] - ldr r1, [r5, #0xc] - add r0, r2, r0 - sub r1, r8, r1 - str r1, [r5, #0xf0] - ldr r1, [r5, #0xc] - sub r0, r0, #2 - sub r1, sb, r1 - str r1, [r5, #0xf4] - ldr r1, [r5, #4] - sub r1, sl, r1 - str r1, [r5, #0xe8] - ldr r1, [r5, #4] - sub r0, r0, r1 - str r0, [r5, #0xec] - b _0202CA60 -_0202CA54: - add r0, r5, #4 - mov r1, #3 - bl FUN_02032960 -_0202CA60: - mov r1, r7 - add r0, r5, #4 - bl FUN_02032684 - mov r8, #1 -_0202CA70: - ldr r0, [sp, #8] - cmp r0, #0 - bne _0202CA90 - add r1, sp, #8 - add r2, sp, #0xc - add r0, r5, #4 - bl FUN_02033758 - orr r8, r8, r0 -_0202CA90: - add r0, r5, #4 - bl FUN_02032578 - mov r2, r0 - ldr r1, [sp, #8] - add r0, r5, #4 - mov r3, #0 - bl FUN_020323f8 - orrs r0, r8, r0 - ldrbeq r0, [r5, #0x1c4] - cmpeq r0, #0 - beq _0202CACC - mov r1, #0 - mov r0, r4 - strb r1, [r5, #0x1c4] - bl FUN_0202cea0 -_0202CACC: - ldr r0, [sp, #8] - tst r0, #1 - beq _0202CB44 - cmp r6, #0 - add r0, r5, #4 - beq _0202CAEC - bl FUN_020324c4 - b _0202CAF0 -_0202CAEC: - bl IsMenuOptionActive -_0202CAF0: - cmp r0, #0 - beq _0202CB34 - ldr r0, [r5, #0xfc] - tst r0, #0x80000000 - bne _0202CB10 - add r0, r5, #4 - mov r1, #0 - bl FUN_02032960 -_0202CB10: - mov r1, #1 - mov r0, #0 - strb r1, [r5, #0x1b0] - strb r0, [r5, #0x1b1] - sub r0, r0, #4 - str r0, [r4, #0xb8] - mov r0, #4 - str r0, [r5, #0x1ac] - b _0202CC94 -_0202CB34: - add r0, r5, #4 - mov r1, #2 - bl FUN_02032960 - b _0202CC94 -_0202CB44: - tst r0, #2 - beq _0202CB94 - add r0, r5, #4 - mov r1, #1 - bl FUN_02032960 - ldr r1, [r5, #0x1a0] - cmp r1, #0 - beq _0202CB74 - ldrsb r0, [r4, #0x10] - blx r1 - cmp r0, #0 - bne _0202CE40 -_0202CB74: - mov r0, #1 - strb r0, [r5, #0x1b0] - strb r0, [r5, #0x1b1] - sub r0, r0, #6 - str r0, [r4, #0xb8] - mov r0, #4 - str r0, [r5, #0x1ac] - b _0202CC94 -_0202CB94: - tst r0, #0x1000 - beq _0202CBE8 - ldr r1, [r5, #0xfc] - tst r1, #0x2000 - beq _0202CBE8 - ldr r0, [r5, #0x174] - cmp r0, #0 - beq _0202CBC0 - add r0, r5, #4 - mov r1, #5 - bl FUN_02032960 -_0202CBC0: - mov r1, #1 - mov r0, #0 - strb r1, [r5, #0x1b0] - strb r0, [r5, #0x1b1] - strb r1, [r5, #0x1c7] - sub r0, r0, #4 - str r0, [r4, #0xb8] - mov r0, #8 - str r0, [r5, #0x1ac] - b _0202CC94 -_0202CBE8: - tst r0, #0x2000 - beq _0202CC30 - ldr r1, [r5, #0xfc] - tst r1, #0x4000 - beq _0202CC30 - add r0, r5, #4 - mov r1, #0 - bl FUN_02032960 - mov r1, #1 - mov r0, #0 - strb r1, [r5, #0x1b0] - strb r0, [r5, #0x1b1] - strb r1, [r5, #0x1c7] - sub r0, r0, #4 - str r0, [r4, #0xb8] - mov r0, #9 - str r0, [r5, #0x1ac] - b _0202CC94 -_0202CC30: - tst r0, #0x200 - ldrne r1, [r5, #0x18c] - cmpne r1, #0 - beq _0202CC74 - add r0, r5, #4 - mov r1, #5 - bl FUN_02032960 - mov r1, #1 - mov r0, #0 - strb r1, [r5, #0x1b0] - strb r0, [r5, #0x1b1] - strb r1, [r5, #0x1c7] - sub r0, r0, #4 - str r0, [r4, #0xb8] - mov r0, #0xa - str r0, [r5, #0x1ac] - b _0202CC94 -_0202CC74: - ldr r1, [r5, #0x19c] - cmp r1, #0 - beq _0202CC94 - blx r1 - cmp r0, #0 - beq _0202CC94 - mov r0, r4 - bl FUN_0202cea0 -_0202CC94: - ldrsb r0, [r4, #0x10] - add r1, r5, #4 - bl FUN_02028948 - b _0202CE40 -_0202CCA4: - add r0, r5, #4 - bl FUN_02032070 - cmp r0, #0 - bne _0202CE40 - ldrb r0, [r5, #0x1c7] - cmp r0, #0 - movne r0, #0 - strbne r0, [r5, #0x1c7] - movne r0, #1 - strbne r0, [r5, #0x1c6] - ldr r0, [r5, #0x174] - cmp r0, #0 - beq _0202CD04 - ldrb r0, [r5, #0x1c6] - cmp r0, #0 - beq _0202CCEC - mov r0, r4 - bl FUN_0202cea0 -_0202CCEC: - mov r0, #0 - ldr r3, [r5, #0x174] - mov r1, r0 - mov r2, r0 - blx r3 - b _0202CE40 -_0202CD04: - mov r0, #1 - strb r0, [r5, #0x1c5] - str r0, [r5, #0x1ac] - b _0202CE40 -_0202CD14: - add r0, r5, #4 - bl FUN_02032070 - cmp r0, #0 - bne _0202CE40 - ldrb r0, [r5, #0x1c7] - cmp r0, #0 - movne r0, #0 - strbne r0, [r5, #0x1c7] - movne r0, #1 - strbne r0, [r5, #0x1c6] - ldr r0, [r5, #0x17c] - cmp r0, #0 - beq _0202CE40 - ldrb r0, [r5, #0x1c6] - cmp r0, #0 - beq _0202CD5C - mov r0, r4 - bl FUN_0202cea0 -_0202CD5C: - mov r0, #0 - ldr r3, [r5, #0x17c] - mov r1, r0 - mov r2, r0 - blx r3 - b _0202CE40 -_0202CD74: - add r0, r5, #4 - bl FUN_02032070 - cmp r0, #0 - bne _0202CE40 - ldrb r0, [r5, #0x1c7] - cmp r0, #0 - movne r0, #0 - strbne r0, [r5, #0x1c7] - movne r0, #1 - strbne r0, [r5, #0x1c6] - ldr r0, [r5, #0x18c] - cmp r0, #0 - beq _0202CE40 - ldrb r0, [r5, #0x1c6] - cmp r0, #0 - beq _0202CDBC - mov r0, r4 - bl FUN_0202cea0 -_0202CDBC: - ldr r0, [r5, #0x18c] - blx r0 - b _0202CE40 -_0202CDC8: - add r0, r5, #4 - bl FUN_02032070 - cmp r0, #0 - bne _0202CE40 - ldrb r0, [r5, #0x1b1] - cmp r0, #0 - bne _0202CE04 - ldr r0, [r5, #0xfc] - tst r0, #0x400000 - beq _0202CE04 - mov r0, r4 - bl FUN_0202cea0 - mov r0, #7 - str r0, [r5, #0x1ac] - b _0202CE40 -_0202CE04: - mov r0, #5 - str r0, [r5, #0x1ac] -_0202CE0C: - ldrsb r0, [r4, #0x10] - bl FUN_0202812c - cmp r0, #0 - beq _0202CE40 - ldrb r0, [r5, #0x1b1] - cmp r0, #0 - mvnne r0, #4 - mvneq r0, #3 - str r0, [r4, #0xb8] - mov r0, #6 - str r0, [r5, #0x1ac] - mov r0, #1 - strb r0, [r5, #0x1c6] -_0202CE40: - mov r0, #0 - strb r0, [r5, #0x1c6] - cmp fp, #0 - beq _0202CE6C - ldr r0, [r5, #0x1ac] - cmp r0, #1 - bne _0202CE6C - mov r0, r4 - bl FUN_0202cea0 - mov r0, #1 - strb r0, [r5, #0x1c6] -_0202CE6C: - ldr r0, [r5, #0x1a8] - cmp r0, #0 - ldrne r0, [r5, #0x1ac] - cmpne r0, #8 - cmpne r0, #9 - beq _0202CE94 - add r0, r5, #4 - bl FUN_02032578 - ldr r1, [r5, #0x1a8] - blx r1 -_0202CE94: - add sp, sp, #0x30 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0202CE9C: .4byte 0x00000408 - arm_func_end FUN_0202c808 - - arm_func_start FUN_0202cea0 -FUN_0202cea0: @ 0x0202CEA0 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x410 - mov r5, r0 - ldr r6, [r5, #0xc] - add r0, r6, #4 - bl FUN_02032568 - mov r7, r0 - add r0, r6, #4 - bl FUN_02032594 - ldr r1, [r6, #0xfc] - mov r8, r0 - tst r1, #0x200 - ldrne r0, [r6, #0x160] - addne r4, r0, r7 - ldrsb r0, [r5, #0x10] - moveq r4, #0 - bl FUN_02027b1c - mov sb, #0 - mov fp, #0x42 - b _0202D020 -_0202CEF0: - ldr r3, [r6, #0x198] - add r0, sp, #0x10 - mov r1, r7 - add r2, sp, #0xc - blx r3 - mov sl, r0 - cmp r4, #0 - mov r1, #0 - beq _0202CF24 - ldrb r0, [r4] - add r4, r4, #1 - tst r0, #2 - movne r1, #1 -_0202CF24: - cmp sl, #0 - beq _0202CFF4 - cmp r1, #0 - add r0, r6, #4 - mov r1, sb - beq _0202CF6C - bl FUN_020328d8 - str fp, [sp] - mov r2, r0 - ldr r0, [r6, #0x1b4] - mov r3, sl - str r0, [sp, #4] - ldr r0, [r6, #0x1b8] - str r0, [sp, #8] - ldrsb r0, [r5, #0x10] - ldr r1, [r6, #0x1bc] - bl FUN_02026428 - b _0202CF94 -_0202CF6C: - bl FUN_020328d8 - mov r2, r0 - ldr r0, [r6, #0x1b4] - mov r3, sl - str r0, [sp] - ldr r0, [r6, #0x1b8] - str r0, [sp, #4] - ldrsb r0, [r5, #0x10] - ldr r1, [r6, #0x1bc] - bl FUN_02026358 -_0202CF94: - ldr r0, [sp, #0xc] - cmp r0, #0 - ble _0202D018 - ldr r1, [r6, #0x104] - mov sl, #0xc - cmp r1, #0 - ble _0202CFBC - ldr r0, [r6, #0xfc] - tst r0, #0x400 - subne sl, r1, #2 -_0202CFBC: - add r0, r6, #4 - mov r1, sb - bl FUN_020328d8 - str sl, [sp] - mov r1, #0x24 - str r1, [sp, #4] - mov r2, r0 - ldr sl, [r6, #0x1bc] - ldr r3, [r6, #0x1c0] - ldrsb r0, [r5, #0x10] - sub r1, sl, #4 - sub r3, r3, sl - bl FUN_02025d90 - b _0202D018 -_0202CFF4: - ldrb r0, [r6, #0x1c8] - cmp r0, #0 - beq _0202D018 - str sb, [r6, #0xc4] - ldr r0, [r6, #0xc0] - cmp r0, sb - subge r0, sb, #1 - strge r0, [r6, #0xc0] - b _0202D028 -_0202D018: - add sb, sb, #1 - add r7, r7, #1 -_0202D020: - cmp sb, r8 - blt _0202CEF0 -_0202D028: - ldr r4, [r6, #0x1a4] - cmp r4, #0 - beq _0202D04C - ldrsb r0, [r5, #0x10] - mov r3, sb - add r1, r6, #4 - sub r2, r7, sb - blx r4 - b _0202D058 -_0202D04C: - ldrsb r1, [r5, #0x10] - add r0, r6, #4 - bl FUN_0202a03c -_0202D058: - ldrsb r0, [r5, #0x10] - bl FUN_02027af0 - add sp, sp, #0x410 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0202cea0 - - arm_func_start FUN_0202d068 -FUN_0202d068: @ 0x0202D068 - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - str r4, [r0, #0x18c] - pop {r4, pc} - arm_func_end FUN_0202d068 - - arm_func_start FUN_0202d07c -FUN_0202d07c: @ 0x0202D07C - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - ldr r1, [r0, #0xfc] - ands r2, r1, #0x10000000 - cmpne r4, #0 - beq _0202D0B0 - eor r1, r1, #0x10000000 - str r1, [r0, #0xfc] - add r0, r0, #4 - mov r1, #0x10000000 - bl FUN_02031c84 - pop {r4, pc} -_0202D0B0: - cmp r2, #0 - cmpeq r4, #0 - popne {r4, pc} - ldr r2, [r0, #0xfc] - mov r1, #0x10000000 - orr r2, r2, #0x10000000 - str r2, [r0, #0xfc] - add r0, r0, #4 - bl FUN_02031c74 - pop {r4, pc} - arm_func_end FUN_0202d07c - - arm_func_start FUN_0202d0d8 -FUN_0202d0d8: @ 0x0202D0D8 - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - strb r4, [r0, #0x1b2] - pop {r4, pc} - arm_func_end FUN_0202d0d8 - - arm_func_start FUN_0202d0ec -FUN_0202d0ec: @ 0x0202D0EC - push {r3, r4, r5, lr} - bl GetDialogBoxField0xC - mov r5, r0 - add r0, r5, #4 - bl FUN_02032558 - mov r4, r0 - add r0, r5, #4 - bl FUN_02032568 - add r0, r4, r0 - pop {r3, r4, r5, pc} - arm_func_end FUN_0202d0ec - - arm_func_start FUN_0202d114 -FUN_0202d114: @ 0x0202D114 - push {r3, lr} - bl GetDialogBoxField0xC - ldr r0, [r0, #0x1ac] - cmp r0, #3 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FUN_0202d114 - - arm_func_start FUN_0202d134 -FUN_0202d134: @ 0x0202D134 - push {r3, r4, r5, lr} - mov r5, r0 - bl GetDialogBoxField0xC - mov r4, r0 - mov r0, #1 - mov r2, #0 - strb r0, [r4, #0x1b0] - mov r0, r5 - sub r1, r2, #4 - strb r2, [r4, #0x1b1] - bl FUN_0202830c - mov r0, #4 - str r0, [r4, #0x1ac] - pop {r3, r4, r5, pc} - arm_func_end FUN_0202d134 - - arm_func_start FUN_0202d16c -FUN_0202d16c: @ 0x0202D16C - push {r3, r4, r5, lr} - mov r5, r1 - bl GetDialogBoxField0xC - mov r4, r0 - cmp r5, #0 - ldr r0, [r4, #0xfc] - beq _0202D1BC - tst r0, #0x10000000 - popeq {r3, r4, r5, pc} - bic r2, r0, #0x10000000 - add r0, r4, #4 - mov r1, #0x8000000 - str r2, [r4, #0xfc] - bl FUN_02031c84 - add r0, r4, #4 - mov r1, #0x10000000 - bl FUN_02031c84 - mov r0, #1 - strb r0, [r4, #0x1c4] - pop {r3, r4, r5, pc} -_0202D1BC: - tst r0, #0x10000000 - popne {r3, r4, r5, pc} - orr r2, r0, #0x10000000 - add r0, r4, #4 - mov r1, #0x8000000 - str r2, [r4, #0xfc] - bl FUN_02031c74 - add r0, r4, #4 - mov r1, #0x10000000 - bl FUN_02031c74 - mov r0, #1 - strb r0, [r4, #0x1c4] - pop {r3, r4, r5, pc} - arm_func_end FUN_0202d16c - - arm_func_start FUN_0202d1f0 -FUN_0202d1f0: @ 0x0202D1F0 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x12c - mov r5, r1 - orr r5, r5, #4 - mov r1, #0 - str r1, [sp, #8] - tst r5, #0x8000 - mov sl, r3 - mov r4, r2 - mov r6, r0 - ldr r8, [sp, #0x154] - orrne r5, r5, #0x20000 - mov r2, sl - ldr r1, [sp, #8] - b _0202D238 -_0202D22C: - add r1, r1, #1 - str r1, [sp, #8] - add r2, r2, #0xc -_0202D238: - ldrh r0, [r2] - cmp r0, #0 - bne _0202D22C - ldr r1, [sp, #8] - mov r0, #0x10c - add r1, r1, #1 - mul r0, r1, r0 - mov r1, #8 - bl MemAlloc - mov fp, r0 - mov r7, fp - and sb, r5, #0x20 - b _0202D300 -_0202D26C: - mov r0, r7 - bl GetStringFromFileVeneer - ldr r0, [sl, #8] - str r0, [r7, #0x100] - ldr r0, [sl, #8] - cmp r0, #0 - beq _0202D2C4 - ldr r1, [r7, #0x100] - mov r2, #0 - b _0202D298 -_0202D294: - add r2, r2, #1 -_0202D298: - ldrh r0, [r1], #2 - cmp r0, #0 - bne _0202D294 - ldr r0, [sl, #4] - cmp r0, #0 - streq r2, [r7, #0x104] - beq _0202D2CC - cmp r0, r2 - movle r2, r0 - str r2, [r7, #0x104] - b _0202D2CC -_0202D2C4: - ldr r0, [sl, #4] - str r0, [r7, #0x104] -_0202D2CC: - cmp sb, #0 - beq _0202D2EC - ldr r1, [r8] - ldr r0, [r7, #0x104] - cmp r1, r0 - movge r1, #0 - str r1, [r7, #0x108] - b _0202D2F4 -_0202D2EC: - mov r0, #0 - str r0, [r7, #0x108] -_0202D2F4: - add sl, sl, #0xc - add r7, r7, #0x10c - add r8, r8, #4 -_0202D300: - ldrh r1, [sl] - cmp r1, #0 - bne _0202D26C - mov r2, #0 - strb r2, [r7] - str r2, [r7, #0x100] - str r2, [r7, #0x104] - mov r0, #0x1b8 - mov r1, #8 - str r2, [r7, #0x108] - bl MemAlloc - cmp r6, #0 - mov r7, r0 - addne sb, sp, #0x1c - ldmne r6, {r0, r1, r2, r3} - stmne sb, {r0, r1, r2, r3} - ldrne r0, _0202D528 @ =FUN_0202d618 - mov r8, fp - strne r0, [sp, #0x1c] - bne _0202D364 - ldr r0, _0202D52C @ =0x0209AED0 - add r6, sp, #0x1c - ldm r0, {r0, r1, r2, r3} - stm r6, {r0, r1, r2, r3} - orr r5, r5, #0x300000 -_0202D364: - mov r6, #0 - mov sb, r6 - str r7, [sp, #0x28] - b _0202D3CC -_0202D374: - mov r0, r8 - bl FUN_020265a8 - cmp r0, r6 - ldr sl, [r8, #0x100] - movgt r6, r0 - cmp sl, #0 - beq _0202D3C0 - b _0202D3B0 -_0202D394: - ldrh r1, [sl], #2 - add r0, sp, #0x2c - bl GetStringFromFileVeneer - add r0, sp, #0x2c - bl FUN_020265a8 - cmp r0, sb - movgt sb, r0 -_0202D3B0: - ldrh r0, [sl] - cmp r0, #0 - bne _0202D394 - b _0202D3C8 -_0202D3C0: - cmp sb, #0x30 - movlt sb, #0x30 -_0202D3C8: - add r8, r8, #0x10c -_0202D3CC: - mov r0, r8 - bl FUN_0202a66c - cmp r0, #0 - beq _0202D374 - ldrb r0, [sp, #0x22] - cmp r0, #0 - bne _0202D400 - add r2, r6, sb - mov r0, r5 - mov r1, r4 - add r2, r2, #0x34 - bl FUN_02031a5c - strb r0, [sp, #0x22] -_0202D400: - str r6, [r7, #0x1a8] - add r0, sb, #4 - str r0, [r7, #0x1ac] - ldr r0, [r7, #0x1a8] - add r2, sp, #8 - add r1, r0, #0x15 - str r1, [r7, #0x1b0] - ldr r0, [r7, #0x1ac] - add r3, sp, #0x150 - add r0, r1, r0 - add r0, r0, #0xe - str r0, [r7, #0x1b4] - ldr r0, [sp, #0x150] - cmp r0, #0 - ldreq r0, [sp, #8] - streq r0, [sp, #0x150] - ldrb r0, [sp, #0x23] - cmp r0, #0 - mov r0, r5 - bne _0202D460 - mov r1, r4 - bl FUN_02031aa4 - strb r0, [sp, #0x23] - b _0202D468 -_0202D460: - mov r1, r4 - bl FUN_02031aa4 -_0202D468: - tst r5, #0x200000 - ldrbne r1, [sp, #0x20] - ldrbne r0, [sp, #0x22] - subne r0, r1, r0 - strbne r0, [sp, #0x20] - tst r5, #0x100000 - ldrbne r1, [sp, #0x21] - ldrbne r0, [sp, #0x23] - subne r0, r1, r0 - strbne r0, [sp, #0x21] - ldr r0, _0202D528 @ =FUN_0202d618 - cmp r4, #0 - str r0, [r7] - str r5, [r7, #0xfc] - beq _0202D4C4 - add r8, r7, #0x100 - mov r6, #9 -_0202D4AC: - ldm r4!, {r0, r1, r2, r3} - stm r8!, {r0, r1, r2, r3} - subs r6, r6, #1 - bne _0202D4AC - ldm r4, {r0, r1} - stm r8, {r0, r1} -_0202D4C4: - ldr r0, [sp, #0x154] - str fp, [r7, #0x198] - str r0, [r7, #0x19c] - mov r2, #0 - str r2, [r7, #0x1a0] - strb r2, [r7, #0x1a4] - add r0, sp, #0x1c - mov r1, #3 - strb r2, [r7, #0x1a5] - bl FUN_02027648 - add r1, sp, #0xc - mov r6, r0 - bl FUN_02028284 - ldr r0, [sp, #8] - add r3, sp, #0xc - str r0, [sp] - ldr r4, [sp, #0x150] - mov r1, r5 - add r0, r7, #4 - add r2, r7, #0x100 - str r4, [sp, #4] - bl FUN_02031af8 - mov r0, r6 - add sp, sp, #0x12c - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0202D528: .4byte FUN_0202d618 -_0202D52C: .4byte 0x0209AED0 - arm_func_end FUN_0202d1f0 - - arm_func_start FUN_0202d530 -FUN_0202d530: @ 0x0202D530 - push {r3, r4, r5, lr} - mov r5, r0 - bl GetDialogBoxField0xC - mov r4, r0 - ldr r0, [r4, #0x198] - bl MemFree - mov r0, r4 - bl MemFree - mov r0, r5 - bl FUN_02028194 - pop {r3, r4, r5, pc} - arm_func_end FUN_0202d530 - - arm_func_start FUN_0202d55c -FUN_0202d55c: @ 0x0202D55C - push {r3, lr} - bl GetDialogBoxField0xC - ldr r0, [r0, #0x1a0] - cmp r0, #6 - cmpne r0, #7 - movne r0, #1 - moveq r0, #0 - pop {r3, pc} - arm_func_end FUN_0202d55c - - arm_func_start FUN_0202d57c -FUN_0202d57c: @ 0x0202D57C - push {r3, lr} - bl GetDialogBoxField0xC - ldrb r0, [r0, #0x1a4] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FUN_0202d57c - - arm_func_start FUN_0202d59c -FUN_0202d59c: @ 0x0202D59C - push {r3, lr} - bl GetDialogBoxField0xC - add r0, r0, #4 - bl FUN_02032558 - pop {r3, pc} - arm_func_end FUN_0202d59c - - arm_func_start FUN_0202d5b0 -FUN_0202d5b0: @ 0x0202D5B0 - push {r3, r4, r5, lr} - mov r5, r1 - bl GetDialogBoxField0xC - ldr r4, [r0, #0x198] - b _0202D5D0 -_0202D5C4: - ldr r0, [r4, #0x108] - add r4, r4, #0x10c - str r0, [r5], #4 -_0202D5D0: - mov r0, r4 - bl FUN_0202a66c - cmp r0, #0 - beq _0202D5C4 - pop {r3, r4, r5, pc} - arm_func_end FUN_0202d5b0 - - arm_func_start FUN_0202d5e4 -FUN_0202d5e4: @ 0x0202D5E4 - push {r3, lr} - bl GetDialogBoxField0xC - ldrb r1, [r0, #0x1a4] - cmp r1, #0 - beq _0202D610 - ldrb r0, [r0, #0x1a5] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r3, pc} -_0202D610: - mov r0, #0 - pop {r3, pc} - arm_func_end FUN_0202d5e4 - - arm_func_start FUN_0202d618 -FUN_0202d618: @ 0x0202D618 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0x30 - mov r7, r0 - ldr r4, [r7, #0xc] - ldr r0, [r4, #0x1a0] - cmp r0, #5 - addls pc, pc, r0, lsl #2 - b _0202DA5C -_0202D638: @ jump table - b _0202D650 @ case 0 - b _0202D668 @ case 1 - b _0202D690 @ case 2 - b _0202D6E8 @ case 3 - b _0202D9EC @ case 4 - b _0202DA30 @ case 5 -_0202D650: - ldrsb r0, [r7, #0x10] - bl FUN_0202810c - cmp r0, #0 - beq _0202DA5C - mov r0, #2 - str r0, [r4, #0x1a0] -_0202D668: - ldr r0, [r4, #0x1a0] - cmp r0, #1 - bne _0202D690 - ldrb r0, [r7, #8] - bl FUN_020287c4 - ldrsb r0, [r7, #0x10] - bl FUN_02027af0 - mov r0, #2 - str r0, [r4, #0x1a0] - b _0202DA5C -_0202D690: - mov r0, r7 - bl FUN_0202da64 - ldr r0, [r4, #0xfc] - tst r0, #0x800000 - beq _0202D6C8 - mov r0, #7 - str r0, [r4, #0x1a0] - mov r1, #1 - mov r0, #0 - strb r1, [r4, #0x1a4] - strb r0, [r4, #0x1a5] - sub r0, r0, #4 - str r0, [r7, #0xb8] - b _0202DA5C -_0202D6C8: - mov r1, #3 - mov r0, #0 - str r1, [r4, #0x1a0] - strb r0, [r4, #0x1a4] - strb r0, [r4, #0x1a5] - sub r0, r0, #1 - str r0, [r7, #0xb8] - b _0202DA5C -_0202D6E8: - add r1, sp, #8 - add r2, sp, #0xc - add r0, r4, #4 - mov r3, #1 - bl FUN_02031c98 - ldr r1, [sp, #8] - mov r5, r0 - cmp r1, #0 - bne _0202D760 - ldr r3, [r4, #0x1b0] - add r1, sp, #0xc - add r0, r3, #0xe - str r0, [sp] - mov r6, #0 - add r0, r4, #4 - mov r2, #2 - str r6, [sp, #4] - bl FUN_02032160 - movs r6, r0 - bmi _0202D760 - mov r1, r6 - add r0, r4, #4 - bl FUN_02032684 - ldr r0, [sp, #8] - mov r1, r6 - orr r2, r0, #0x40 - add r0, r4, #4 - str r2, [sp, #8] - bl FUN_020320a8 - mov r5, #1 -_0202D760: - ldr r0, [sp, #8] - cmp r0, #0 - bne _0202D7C0 - ldr r3, [r4, #0x1b4] - add r1, sp, #0xc - add r0, r3, #0xe - str r0, [sp] - mov r6, #0 - add r0, r4, #4 - mov r2, #2 - str r6, [sp, #4] - bl FUN_02032160 - movs r6, r0 - bmi _0202D7C0 - mov r1, r6 - add r0, r4, #4 - bl FUN_02032684 - ldr r1, [sp, #8] - add r0, r4, #4 - orr r2, r1, #0x80 - add r1, r6, #0x3e8 - str r2, [sp, #8] - bl FUN_020320a8 - mov r5, #1 -_0202D7C0: - ldr r0, [sp, #8] - cmp r0, #0 - bne _0202D7E0 - add r1, sp, #8 - add r2, sp, #0xc - add r0, r4, #4 - bl FUN_02033758 - orr r5, r5, r0 -_0202D7E0: - add r0, r4, #4 - bl FUN_02032578 - ldr r2, [r4, #0xfc] - ldr r3, [r4, #0x198] - mov r1, #0x10c - mla r6, r0, r1, r3 - tst r2, #0x200 - ldrne r1, [r4, #0x160] - ldrbne r0, [r1, r0] - moveq r0, #0 - and r0, r0, #0xff - tst r0, #1 - bne _0202D8E8 - ldr r0, [sp, #8] - tst r0, #0x40 - beq _0202D878 - ldr r0, [r6, #0x108] - cmp r0, #0 - add r0, r4, #4 - ble _0202D86C - mov r1, #3 - bl FUN_02032960 - ldr r0, [sp, #8] - tst r0, #8 - ldr r0, [r6, #0x108] - beq _0202D85C - subs r0, r0, #0xa - str r0, [r6, #0x108] - movmi r0, #0 - strmi r0, [r6, #0x108] - b _0202D864 -_0202D85C: - sub r0, r0, #1 - str r0, [r6, #0x108] -_0202D864: - mov r5, #1 - b _0202D900 -_0202D86C: - mov r1, #2 - bl FUN_02032960 - b _0202D900 -_0202D878: - tst r0, #0x80 - beq _0202D900 - ldr r0, [r6, #0x104] - ldr r1, [r6, #0x108] - sub r0, r0, #1 - cmp r1, r0 - add r0, r4, #4 - bge _0202D8DC - mov r1, #3 - bl FUN_02032960 - ldr r0, [sp, #8] - tst r0, #8 - ldr r0, [r6, #0x108] - beq _0202D8CC - add r1, r0, #0xa - str r1, [r6, #0x108] - ldr r0, [r6, #0x104] - sub r0, r0, #1 - cmp r1, r0 - strgt r0, [r6, #0x108] - b _0202D8D4 -_0202D8CC: - add r0, r0, #1 - str r0, [r6, #0x108] -_0202D8D4: - mov r5, #1 - b _0202D900 -_0202D8DC: - mov r1, #2 - bl FUN_02032960 - b _0202D900 -_0202D8E8: - ldr r0, [sp, #8] - tst r0, #0xc0 - beq _0202D900 - add r0, r4, #4 - mov r1, #2 - bl FUN_02032960 -_0202D900: - cmp r5, #0 - beq _0202D910 - mov r0, r7 - bl FUN_0202da64 -_0202D910: - add r0, r4, #4 - bl FUN_02032578 - mov r2, r0 - ldr r1, [r4, #0x198] - mov r0, #0x10c - mla r0, r2, r0, r1 - ldr r1, [sp, #8] - ldr r3, [r0, #0x108] - add r0, r4, #4 - bl FUN_020323f8 - ldr r0, [sp, #8] - tst r0, #1 - beq _0202D9AC - add r0, r4, #4 - bl IsMenuOptionActive - cmp r0, #0 - beq _0202D9DC - ldr r5, [r4, #0x198] - ldr r6, [r4, #0x19c] - b _0202D96C -_0202D960: - ldr r0, [r5, #0x108] - add r5, r5, #0x10c - str r0, [r6], #4 -_0202D96C: - mov r0, r5 - bl FUN_0202a66c - cmp r0, #0 - beq _0202D960 - add r0, r4, #4 - mov r1, #0 - bl FUN_02032960 - mov r1, #1 - mov r0, #0 - strb r1, [r4, #0x1a4] - strb r0, [r4, #0x1a5] - sub r0, r0, #4 - str r0, [r7, #0xb8] - mov r0, #4 - str r0, [r4, #0x1a0] - b _0202D9DC -_0202D9AC: - tst r0, #2 - beq _0202D9DC - add r0, r4, #4 - mov r1, #1 - bl FUN_02032960 - mov r0, #1 - strb r0, [r4, #0x1a4] - strb r0, [r4, #0x1a5] - sub r0, r0, #6 - str r0, [r7, #0xb8] - mov r0, #4 - str r0, [r4, #0x1a0] -_0202D9DC: - ldrsb r0, [r7, #0x10] - add r1, r4, #4 - bl FUN_02028948 - b _0202DA5C -_0202D9EC: - add r0, r4, #4 - bl FUN_02032070 - cmp r0, #0 - bne _0202DA5C - ldrb r0, [r4, #0x1a5] - cmp r0, #0 - bne _0202DA28 - ldr r0, [r4, #0xfc] - tst r0, #0x400000 - beq _0202DA28 - mov r0, r7 - bl FUN_0202da64 - mov r0, #7 - str r0, [r4, #0x1a0] - b _0202DA5C -_0202DA28: - mov r0, #5 - str r0, [r4, #0x1a0] -_0202DA30: - ldrsb r0, [r7, #0x10] - bl FUN_0202812c - cmp r0, #0 - beq _0202DA5C - ldrb r0, [r4, #0x1a5] - cmp r0, #0 - mvnne r0, #4 - mvneq r0, #3 - str r0, [r7, #0xb8] - mov r0, #6 - str r0, [r4, #0x1a0] -_0202DA5C: - add sp, sp, #0x30 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0202d618 - - arm_func_start FUN_0202da64 -FUN_0202da64: @ 0x0202DA64 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x160 - mov sl, r0 - ldr r4, [sl, #0xc] - add r0, r4, #4 - bl FUN_02032568 - mov r5, r0 - add r0, r4, #4 - bl FUN_02032594 - ldr r2, [r4, #0xfc] - str r0, [sp, #0xc] - tst r2, #0x200 - ldrne r0, [r4, #0x160] - ldr r3, [r4, #0x198] - addne sb, r0, r5 - mov r1, #0x10c - add r0, r4, #4 - mla r6, r5, r1, r3 - moveq sb, #0 - bl FUN_020320c0 - mov fp, r0 - ldrsb r0, [sl, #0x10] - bl FUN_02027b1c - ldr r0, [sp, #0xc] - mov r7, #0 - cmp r0, #0 - ble _0202DC1C - b _0202DC10 -_0202DAD4: - add r0, r4, #4 - mov r1, r7 - bl FUN_020328d8 - mov r8, r0 - mov r0, #1 - cmp sb, #0 - mov r1, #0 - str r0, [sp, #8] - beq _0202DB14 - ldrb r0, [sb] - add sb, sb, #1 - tst r0, #2 - movne r1, #1 - tst r0, #1 - movne r0, #0 - strne r0, [sp, #8] -_0202DB14: - cmp r1, #0 - movne r0, #0x42 - moveq r0, #0x44 - and r0, r0, #0xff - str r0, [sp, #4] - str r0, [sp] - ldrsb r0, [sl, #0x10] - mov r1, #0xd - mov r2, r8 - mov r3, r6 - bl FUN_020263c8 - ldr r2, [r6, #0x100] - add r0, sp, #0x60 - cmp r2, #0 - ldr r1, [r6, #0x108] - beq _0202DB64 - lsl r1, r1, #1 - ldrh r1, [r2, r1] - bl GetStringFromFileVeneer - b _0202DB80 -_0202DB64: - str r1, [sp, #0x34] - add r1, sp, #0x10 - str r1, [sp] - ldr r2, _0202DC38 @ =0x0209AEE0 - ldr r3, _0202DC3C @ =0x0000C402 - mov r1, #0x100 - bl PreprocessString -_0202DB80: - add r0, sp, #0x60 - bl FUN_020265a8 - ldr r1, [sp, #4] - mov ip, r0 - str r1, [sp] - ldr r3, [r4, #0x1ac] - ldr r1, [r4, #0x1b0] - sub r3, r3, ip - add r3, r3, r3, lsr #31 - add r1, r1, r3, asr #1 - ldrsb r0, [sl, #0x10] - mov r2, r8 - add r1, r1, #0xe - add r3, sp, #0x60 - bl FUN_020263c8 - ldr r0, [sp, #8] - cmp r0, #0 - beq _0202DC04 - cmp r5, fp - ldreq r3, _0202DC40 @ =0x0209AEEC - ldrsb r0, [sl, #0x10] - ldrne r3, _0202DC44 @ =0x0209AEF4 - ldr r1, [r4, #0x1b0] - mov r2, r8 - bl FUN_02026214 - add r0, r5, #0x3e8 - cmp r0, fp - ldreq r3, _0202DC48 @ =0x0209AEFC - ldrsb r0, [sl, #0x10] - ldrne r3, _0202DC4C @ =0x0209AF04 - ldr r1, [r4, #0x1b4] - mov r2, r8 - bl FUN_02026214 -_0202DC04: - add r7, r7, #1 - add r5, r5, #1 - add r6, r6, #0x10c -_0202DC10: - ldr r0, [sp, #0xc] - cmp r7, r0 - blt _0202DAD4 -_0202DC1C: - ldrsb r1, [sl, #0x10] - add r0, r4, #4 - bl FUN_0202a03c - ldrsb r0, [sl, #0x10] - bl FUN_02027af0 - add sp, sp, #0x160 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0202DC38: .4byte 0x0209AEE0 -_0202DC3C: .4byte 0x0000C402 -_0202DC40: .4byte 0x0209AEEC -_0202DC44: .4byte 0x0209AEF4 -_0202DC48: .4byte 0x0209AEFC -_0202DC4C: .4byte 0x0209AF04 - arm_func_end FUN_0202da64 - - arm_func_start FUN_0202dc50 -FUN_0202dc50: @ 0x0202DC50 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x30 - mov r7, r3 - mov r5, r1 - mov sl, r2 - mov r8, r0 - mov r1, r7 - mov r2, #0 - b _0202DC7C -_0202DC74: - add r1, r1, #2 - add r2, r2, #1 -_0202DC7C: - ldrh r0, [r1] - cmp r0, #0 - bne _0202DC74 - add r0, r2, #1 - add r0, r0, r0, lsl #8 - mov r1, #8 - bl MemAlloc - mov r4, r0 - mov r6, r4 - b _0202DCB8 -_0202DCA4: - mov r0, r6 - bl GetStringFromFileVeneer - add r0, r6, #1 - add r7, r7, #2 - add r6, r0, #0x100 -_0202DCB8: - ldrh r1, [r7] - cmp r1, #0 - bne _0202DCA4 - mov r0, #0 - strb r0, [r6] - ldr r2, [sp, #0x58] - mov r0, #0x3b4 - mov r1, #8 - str r2, [sp, #0xc] - bl MemAlloc - mov r1, #0 - cmp r8, #0 - addne fp, sp, #0x10 - mov r7, r0 - str r1, [sp, #8] - ldmne r8, {r0, r1, r2, r3} - stmne fp, {r0, r1, r2, r3} - ldrne r0, _0202DEE8 @ =FUN_0202df98 - mov sb, r4 - orr r5, r5, #4 - ldr r6, [sp, #0x5c] - strne r0, [sp, #0x10] - bne _0202DD28 - ldr r0, _0202DEEC @ =0x0209AF0C - add r8, sp, #0x10 - ldm r0, {r0, r1, r2, r3} - stm r8, {r0, r1, r2, r3} - orr r5, r5, #0x300000 -_0202DD28: - str r7, [sp, #0x1c] - mov r8, #0 - b _0202DD4C -_0202DD34: - mov r0, sb - bl FUN_020265a8 - cmp r0, r8 - movgt r8, r0 - add r0, sb, #1 - add sb, r0, #0x100 -_0202DD4C: - mov r0, sb - bl FUN_0202a66c - cmp r0, #0 - beq _0202DD34 - ldrb r0, [sp, #0x16] - cmp r0, #0 - bne _0202DD7C - mov r0, r5 - mov r1, sl - add r2, r8, #0x40 - bl FUN_02031a5c - strb r0, [sp, #0x16] -_0202DD7C: - str r8, [r7, #0x1a8] - mov sb, r4 - and r8, r5, #0x20 - mov fp, #0 - b _0202DDB8 -_0202DD90: - cmp r8, #0 - ldrbne r0, [r6] - add r6, r6, #1 - strbne r0, [sb, #0x100] - strbeq fp, [sb, #0x100] - ldr r1, [sp, #8] - add r0, sb, #1 - add r1, r1, #1 - str r1, [sp, #8] - add sb, r0, #0x100 -_0202DDB8: - mov r0, sb - bl FUN_0202a66c - cmp r0, #0 - beq _0202DD90 - ldrb r0, [sp, #0x17] - add r2, sp, #8 - add r3, sp, #0xc - cmp r0, #0 - mov r0, r5 - bne _0202DDF0 - mov r1, sl - bl FUN_02031aa4 - strb r0, [sp, #0x17] - b _0202DDF8 -_0202DDF0: - mov r1, sl - bl FUN_02031aa4 -_0202DDF8: - tst r5, #0x200000 - ldrbne r1, [sp, #0x14] - ldrbne r0, [sp, #0x16] - subne r0, r1, r0 - strbne r0, [sp, #0x14] - tst r5, #0x100000 - ldrbne r1, [sp, #0x15] - ldrbne r0, [sp, #0x17] - subne r0, r1, r0 - strbne r0, [sp, #0x15] - ldr r0, _0202DEE8 @ =FUN_0202df98 - cmp sl, #0 - str r0, [r7] - str r5, [r7, #0xfc] - beq _0202DE54 - add r8, r7, #0x100 - mov r6, #9 -_0202DE3C: - ldm sl!, {r0, r1, r2, r3} - stm r8!, {r0, r1, r2, r3} - subs r6, r6, #1 - bne _0202DE3C - ldm sl, {r0, r1} - stm r8, {r0, r1} -_0202DE54: - ldr r0, [sp, #0x5c] - str r4, [r7, #0x198] - str r0, [r7, #0x19c] - mov r2, #0 - str r2, [r7, #0x1a0] - strb r2, [r7, #0x1a4] - ldr r1, _0202DEF0 @ =0x00003C65 - add r0, r7, #0x1ac - strb r2, [r7, #0x1a5] - bl GetStringFromFileVeneer - ldr r1, _0202DEF4 @ =0x00003C66 - add r0, r7, #0x2ac - bl GetStringFromFileVeneer - add r0, r7, #0x1ac - bl FUN_020265a8 - str r0, [r7, #0x3ac] - add r0, r7, #0x2ac - bl FUN_020265a8 - str r0, [r7, #0x3b0] - add r0, sp, #0x10 - mov r1, #3 - bl FUN_02027648 - add r1, sp, #0x20 - mov r6, r0 - bl FUN_02028284 - ldr r2, [sp, #8] - mov r1, r5 - str r2, [sp] - ldr r4, [sp, #0xc] - add r0, r7, #4 - add r2, r7, #0x100 - add r3, sp, #0x20 - str r4, [sp, #4] - bl FUN_02031af8 - mov r0, r6 - add sp, sp, #0x30 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0202DEE8: .4byte FUN_0202df98 -_0202DEEC: .4byte 0x0209AF0C -_0202DEF0: .4byte 0x00003C65 -_0202DEF4: .4byte 0x00003C66 - arm_func_end FUN_0202dc50 - - arm_func_start FUN_0202def8 -FUN_0202def8: @ 0x0202DEF8 - push {r3, r4, r5, lr} - mov r5, r0 - bl GetDialogBoxField0xC - mov r4, r0 - ldr r0, [r4, #0x198] - bl MemFree - mov r0, r4 - bl MemFree - mov r0, r5 - bl FUN_02028194 - pop {r3, r4, r5, pc} - arm_func_end FUN_0202def8 - - arm_func_start FUN_0202df24 -FUN_0202df24: @ 0x0202DF24 - push {r3, lr} - bl GetDialogBoxField0xC - ldr r0, [r0, #0x1a0] - cmp r0, #6 - cmpne r0, #7 - movne r0, #1 - moveq r0, #0 - pop {r3, pc} - arm_func_end FUN_0202df24 - - arm_func_start FUN_0202df44 -FUN_0202df44: @ 0x0202DF44 - push {r3, lr} - bl GetDialogBoxField0xC - ldrb r0, [r0, #0x1a4] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FUN_0202df44 - - arm_func_start FUN_0202df64 -FUN_0202df64: @ 0x0202DF64 - push {r3, lr} - bl GetDialogBoxField0xC - ldrb r1, [r0, #0x1a4] - cmp r1, #0 - beq _0202DF90 - ldrb r0, [r0, #0x1a5] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r3, pc} -_0202DF90: - mov r0, #0 - pop {r3, pc} - arm_func_end FUN_0202df64 - - arm_func_start FUN_0202df98 -FUN_0202df98: @ 0x0202DF98 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0x30 - mov r7, r0 - ldr r4, [r7, #0xc] - ldr r0, [r4, #0x1a0] - cmp r0, #5 - addls pc, pc, r0, lsl #2 - b _0202E294 -_0202DFB8: @ jump table - b _0202DFD0 @ case 0 - b _0202DFE8 @ case 1 - b _0202E010 @ case 2 - b _0202E068 @ case 3 - b _0202E224 @ case 4 - b _0202E268 @ case 5 -_0202DFD0: - ldrsb r0, [r7, #0x10] - bl FUN_0202810c - cmp r0, #0 - beq _0202E294 - mov r0, #2 - str r0, [r4, #0x1a0] -_0202DFE8: - ldr r0, [r4, #0x1a0] - cmp r0, #1 - bne _0202E010 - ldrb r0, [r7, #8] - bl FUN_020287c4 - ldrsb r0, [r7, #0x10] - bl FUN_02027af0 - mov r0, #2 - str r0, [r4, #0x1a0] - b _0202E294 -_0202E010: - mov r0, r7 - bl FUN_0202e29c - ldr r0, [r4, #0xfc] - tst r0, #0x800000 - beq _0202E048 - mov r0, #7 - str r0, [r4, #0x1a0] - mov r1, #1 - mov r0, #0 - strb r1, [r4, #0x1a4] - strb r0, [r4, #0x1a5] - sub r0, r0, #4 - str r0, [r7, #0xb8] - b _0202E294 -_0202E048: - mov r1, #3 - mov r0, #0 - str r1, [r4, #0x1a0] - strb r0, [r4, #0x1a4] - strb r0, [r4, #0x1a5] - sub r0, r0, #1 - str r0, [r7, #0xb8] - b _0202E294 -_0202E068: - add r1, sp, #8 - add r2, sp, #0xc - add r0, r4, #4 - mov r3, #1 - bl FUN_02031c98 - ldr r1, [sp, #8] - mov r5, r0 - cmp r1, #0 - bne _0202E0CC - mov r3, #0 - add r1, sp, #0xc - str r3, [sp] - mov r6, #1 - add r0, r4, #4 - mov r2, #2 - str r6, [sp, #4] - bl FUN_02032160 - movs r1, r0 - bmi _0202E0CC - add r0, r4, #4 - bl FUN_02032684 - ldr r0, [sp, #8] - mov r5, r6 - orr r0, r0, #0x2000 - str r0, [sp, #8] -_0202E0CC: - ldr r0, [sp, #8] - cmp r0, #0 - bne _0202E0EC - add r1, sp, #8 - add r2, sp, #0xc - add r0, r4, #4 - bl FUN_02033758 - orr r5, r5, r0 -_0202E0EC: - add r0, r4, #4 - bl FUN_02032578 - ldr r1, [r4, #0xfc] - ldr r3, [r4, #0x198] - tst r1, #0x200 - ldrne r1, [r4, #0x160] - add r2, r0, r0, lsl #8 - ldrbne r1, [r1, r0] - ldr r0, [sp, #8] - add r6, r3, r2 - moveq r1, #0 - and r1, r1, #0xff - tst r0, #0x2200 - beq _0202E15C - tst r1, #1 - add r0, r4, #4 - bne _0202E154 - mov r1, #3 - bl FUN_02032960 - ldrb r0, [r6, #0x100] - mov r5, #1 - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - strb r0, [r6, #0x100] - b _0202E15C -_0202E154: - mov r1, #2 - bl FUN_02032960 -_0202E15C: - cmp r5, #0 - beq _0202E16C - mov r0, r7 - bl FUN_0202e29c -_0202E16C: - ldr r0, [sp, #8] - tst r0, #1 - beq _0202E1E4 - add r0, r4, #4 - bl IsMenuOptionActive - cmp r0, #0 - beq _0202E214 - ldr r5, [r4, #0x198] - ldr r6, [r4, #0x19c] - b _0202E1A4 -_0202E194: - ldrb r1, [r5, #0x100] - add r0, r5, #1 - add r5, r0, #0x100 - strb r1, [r6], #1 -_0202E1A4: - mov r0, r5 - bl FUN_0202a66c - cmp r0, #0 - beq _0202E194 - add r0, r4, #4 - mov r1, #0 - bl FUN_02032960 - mov r1, #1 - mov r0, #0 - strb r1, [r4, #0x1a4] - strb r0, [r4, #0x1a5] - sub r0, r0, #4 - str r0, [r7, #0xb8] - mov r0, #4 - str r0, [r4, #0x1a0] - b _0202E214 -_0202E1E4: - tst r0, #2 - beq _0202E214 - add r0, r4, #4 - mov r1, #1 - bl FUN_02032960 - mov r0, #1 - strb r0, [r4, #0x1a4] - strb r0, [r4, #0x1a5] - sub r0, r0, #6 - str r0, [r7, #0xb8] - mov r0, #4 - str r0, [r4, #0x1a0] -_0202E214: - ldrsb r0, [r7, #0x10] - add r1, r4, #4 - bl FUN_02028948 - b _0202E294 -_0202E224: - add r0, r4, #4 - bl FUN_02032070 - cmp r0, #0 - bne _0202E294 - ldrb r0, [r4, #0x1a5] - cmp r0, #0 - bne _0202E260 - ldr r0, [r4, #0xfc] - tst r0, #0x400000 - beq _0202E260 - mov r0, r7 - bl FUN_0202e29c - mov r0, #7 - str r0, [r4, #0x1a0] - b _0202E294 -_0202E260: - mov r0, #5 - str r0, [r4, #0x1a0] -_0202E268: - ldrsb r0, [r7, #0x10] - bl FUN_0202812c - cmp r0, #0 - beq _0202E294 - ldrb r0, [r4, #0x1a5] - cmp r0, #0 - mvnne r0, #4 - mvneq r0, #3 - str r0, [r7, #0xb8] - mov r0, #6 - str r0, [r4, #0x1a0] -_0202E294: - add sp, sp, #0x30 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0202df98 - - arm_func_start FUN_0202e29c -FUN_0202e29c: @ 0x0202E29C - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0xc - mov sl, r0 - ldr r4, [sl, #0xc] - add r0, r4, #4 - bl FUN_02032568 - mov r7, r0 - add r0, r4, #4 - bl FUN_02032594 - ldr r1, [r4, #0xfc] - mov r5, r0 - tst r1, #0x200 - ldrne r0, [r4, #0x160] - ldr r3, [r4, #0x198] - addne r8, r0, r7 - add r2, r7, r7, lsl #8 - ldrsb r0, [sl, #0x10] - add r6, r3, r2 - moveq r8, #0 - bl FUN_02027b1c - cmp r5, #0 - mov r7, #0 - ble _0202E3B0 - add r0, r4, #0x1ac - str r0, [sp, #8] - b _0202E3A8 -_0202E304: - add r0, r4, #4 - mov r1, r7 - bl FUN_020328d8 - str r0, [sp, #4] - ldrb r0, [r6, #0x100] - mov r1, #0 - cmp r0, #0 - movne sb, #1 - moveq sb, #0 - cmp r8, #0 - beq _0202E340 - ldrb r0, [r8] - add r8, r8, #1 - tst r0, #2 - movne r1, #1 -_0202E340: - cmp r1, #0 - movne r0, #0x42 - moveq r0, #0x44 - and fp, r0, #0xff - str fp, [sp] - ldrsb r0, [sl, #0x10] - ldr r2, [sp, #4] - mov r1, #0xd - mov r3, r6 - bl FUN_020263c8 - str fp, [sp] - add r3, r4, sb, lsl #2 - ldr fp, [r3, #0x3ac] + ldr r0, [r0, #4] + ldr r0, [r0, #4] + bl FUN_0207A2A4 + ldr r0, _022BEE74 @ =0x0231E340 ldr r3, [sp, #8] - ldr r1, [r4, #0x1a8] - add r3, r3, sb, lsl #8 - rsb sb, fp, #0x30 - ldrsb r0, [sl, #0x10] - ldr r2, [sp, #4] - add r1, r1, #0xd - add sb, sb, sb, lsr #31 - add r1, r1, sb, asr #1 - bl FUN_020263c8 - add r0, r6, #1 - add r7, r7, #1 - add r6, r0, #0x100 -_0202E3A8: - cmp r7, r5 - blt _0202E304 -_0202E3B0: - ldrsb r1, [sl, #0x10] - add r0, r4, #4 - bl FUN_0202a03c - ldrsb r0, [sl, #0x10] - bl FUN_02027af0 - add sp, sp, #0xc - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0202e29c - - arm_func_start FUN_0202e3cc -FUN_0202e3cc: @ 0x0202E3CC - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x10 - mov r8, r0 - mov r7, r1 - ldr r0, _0202E508 @ =0x00001D6C - mov r1, #8 - mov r6, r2 - mov r5, r3 - bl MemAlloc - mov r4, r0 - cmp r8, #0 - ldreq r0, _0202E50C @ =0x0209AF1C - add ip, sp, #0 - ldmeq r0, {r0, r1, r2, r3} - stmeq ip, {r0, r1, r2, r3} - ldmne r8, {r0, r1, r2, r3} - stmne ip, {r0, r1, r2, r3} - ldrne r0, _0202E510 @ =FUN_0202e708 - ldr r1, _0202E510 @ =FUN_0202e708 - strne r0, [sp] - ldr r0, _0202E514 @ =0x0D0C8012 - str r4, [sp, #0xc] - orr r0, r7, r0 - str r1, [r4] - bic r0, r0, #1 - str r0, [r4, #0xfc] - cmp r6, #0 - beq _0202E45C - add ip, r4, #0x100 - mov r7, #9 -_0202E444: - ldm r6!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - subs r7, r7, #1 - bne _0202E444 - ldm r6, {r0, r1} - stm ip, {r0, r1} -_0202E45C: - ldr r7, [sp, #0x28] - add r0, r4, #0x100 - strh r5, [r0, #0xa0] - cmp r7, #0 - beq _0202E48C - add r6, r4, #0x1a8 - mov r5, #5 -_0202E478: - ldm r7!, {r0, r1, r2, r3} - stm r6!, {r0, r1, r2, r3} - subs r5, r5, #1 - bne _0202E478 - b _0202E494 -_0202E48C: - add r0, r4, #0x1a8 - bl InitPreprocessorArgs -_0202E494: - mov r0, #1 - ldr r7, [sp, #0x30] - ldrh r1, [sp, #0x2c] - str r0, [r4, #0x198] - mov r0, #0 - str r0, [r4, #0x19c] - add r0, r4, #0x200 - strh r1, [r0, #0xe8] - cmp r7, #0 - beq _0202E4D8 - add r6, r4, #0x2f0 - mov r5, #5 -_0202E4C4: - ldm r7!, {r0, r1, r2, r3} - stm r6!, {r0, r1, r2, r3} - subs r5, r5, #1 - bne _0202E4C4 - b _0202E4E0 -_0202E4D8: - add r0, r4, #0x2f0 - bl InitPreprocessorArgs -_0202E4E0: - mov r3, #0 - str r3, [r4, #0x430] - add r2, r4, #0x1000 - str r3, [r2, #0x464] - add r0, sp, #0 - mov r1, #3 - strb r3, [r2, #0x468] - bl FUN_02027648 - add sp, sp, #0x10 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0202E508: .4byte 0x00001D6C -_0202E50C: .4byte 0x0209AF1C -_0202E510: .4byte FUN_0202e708 -_0202E514: .4byte 0x0D0C8012 - arm_func_end FUN_0202e3cc - - arm_func_start FUN_0202e518 -FUN_0202e518: @ 0x0202E518 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x10 - mov r6, r0 - mov r5, r2 - ldr r2, [sp, #0x44] - mov sl, r1 - ldr r0, _0202E6A0 @ =0x00001D6C - mov r1, #8 - mov sb, r3 - ldr r8, [sp, #0x38] - ldr r7, [sp, #0x3c] - ldr fp, [sp, #0x40] - str r2, [sp, #0x44] - bl MemAlloc - cmp r6, #0 - mov r4, r0 - ldreq r0, _0202E6A4 @ =0x0209AF1C - addeq r6, sp, #0 - ldmeq r0, {r0, r1, r2, r3} - stmeq r6, {r0, r1, r2, r3} - addne ip, sp, #0 - ldmne r6, {r0, r1, r2, r3} - stmne ip, {r0, r1, r2, r3} - ldrne r0, _0202E6A8 @ =FUN_0202e708 - ldr r1, _0202E6A8 @ =FUN_0202e708 - strne r0, [sp] - ldr r0, _0202E6AC @ =0x0D0C8012 - str r4, [sp, #0xc] - orr r0, sl, r0 - str r1, [r4] - bic r0, r0, #1 - str r0, [r4, #0xfc] - cmp r5, #0 - beq _0202E5C0 - add sl, r4, #0x100 - mov r6, #9 -_0202E5A8: - ldm r5!, {r0, r1, r2, r3} - stm sl!, {r0, r1, r2, r3} - subs r6, r6, #1 - bne _0202E5A8 - ldm r5, {r0, r1} - stm sl, {r0, r1} -_0202E5C0: - str sb, [r4, #0x198] - mov r6, #0 - str r6, [r4, #0x19c] - b _0202E670 -_0202E5D0: - mov r0, #0x50 - mul r5, r6, r0 - lsl r1, r6, #1 - add r0, r4, r6, lsl #1 - ldrh r1, [r8, r1] - add r0, r0, #0x100 - adds sl, r7, r5 - strh r1, [r0, #0xa0] - beq _0202E614 - add r0, r4, r5 - add lr, r0, #0x1a8 - mov ip, #5 -_0202E600: - ldm sl!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _0202E600 - b _0202E620 -_0202E614: - add r0, r4, #0x1a8 - add r0, r0, r5 - bl InitPreprocessorArgs -_0202E620: - lsl r0, r6, #1 - ldrh r1, [fp, r0] - add r0, r4, r6, lsl #1 - add r0, r0, #0x200 - strh r1, [r0, #0xe8] - ldr r0, [sp, #0x44] - adds sl, r0, r5 - beq _0202E660 - add r0, r4, r5 - add ip, r0, #0x2f0 - mov r5, #5 -_0202E64C: - ldm sl!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - subs r5, r5, #1 - bne _0202E64C - b _0202E66C -_0202E660: - add r0, r4, #0x2f0 - add r0, r0, r5 - bl InitPreprocessorArgs -_0202E66C: - add r6, r6, #1 -_0202E670: - cmp r6, sb - blt _0202E5D0 - mov r3, #0 - str r3, [r4, #0x430] - add r2, r4, #0x1000 - str r3, [r2, #0x464] - add r0, sp, #0 - mov r1, #3 - strb r3, [r2, #0x468] - bl FUN_02027648 - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0202E6A0: .4byte 0x00001D6C -_0202E6A4: .4byte 0x0209AF1C -_0202E6A8: .4byte FUN_0202e708 -_0202E6AC: .4byte 0x0D0C8012 - arm_func_end FUN_0202e518 - - arm_func_start FUN_0202e6b0 -FUN_0202e6b0: @ 0x0202E6B0 - push {r3, lr} - bl GetDialogBoxField0xC - add r0, r0, #0x1000 - mov r1, #7 - str r1, [r0, #0x464] - pop {r3, pc} - arm_func_end FUN_0202e6b0 - - arm_func_start FUN_0202e6c8 -FUN_0202e6c8: @ 0x0202E6C8 - push {r4, lr} - mov r4, r0 - bl GetDialogBoxField0xC - bl MemFree - mov r0, r4 - bl FUN_02028194 - pop {r4, pc} - arm_func_end FUN_0202e6c8 - - arm_func_start FUN_0202e6e4 -FUN_0202e6e4: @ 0x0202E6E4 - push {r3, lr} - bl GetDialogBoxField0xC - add r0, r0, #0x1000 - ldr r0, [r0, #0x464] - cmp r0, #8 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FUN_0202e6e4 - - arm_func_start FUN_0202e708 -FUN_0202e708: @ 0x0202E708 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x6c - mov r4, r0 - ldr r5, [r4, #0xc] - add r0, r5, #0x1000 - ldr r0, [r0, #0x464] - cmp r0, #7 - addls pc, pc, r0, lsl #2 - b _0202EE74 -_0202E72C: @ jump table - b _0202E74C @ case 0 - b _0202E768 @ case 1 - b _0202E768 @ case 2 - b _0202E768 @ case 3 - b _0202E998 @ case 4 - b _0202E9C0 @ case 5 - b _0202EE38 @ case 6 - b _0202EE54 @ case 7 -_0202E74C: - ldrsb r0, [r4, #0x10] - bl FUN_0202810c - cmp r0, #0 - beq _0202EE74 - add r0, r5, #0x1000 - mov r1, #1 - str r1, [r0, #0x464] -_0202E768: - add r0, r5, #0x1000 - ldr r0, [r0, #0x464] - cmp r0, #1 - beq _0202E788 - add r0, r5, #4 - bl FUN_02032070 - cmp r0, #0 - bne _0202EE74 -_0202E788: - add r0, r5, #0x34 - ldr r2, [r5, #0x430] - ldr r1, _0202EE7C @ =0x0000040C - add r0, r0, #0x400 - add r3, r5, #0x16c - mla r6, r2, r1, r0 - cmp r2, #0 - add r7, r3, #0x1800 - mov r8, #0 - bne _0202E850 - ldr sl, [r5, #0x19c] - add r0, r5, sl, lsl #1 - add r0, r0, #0x100 - ldrh r2, [r0, #0xa0] - cmp r2, #0 - addeq r0, r5, #0x1000 - strbeq r8, [r0, #0x56c] - beq _0202E7F0 - add r1, r5, #0x1a8 - mov r0, #0x50 - mla sb, sl, r0, r1 - mov r1, #0x400 - add r0, r3, #0x1400 - add r3, r1, #4 - str sb, [sp] - bl PreprocessStringFromMessageId -_0202E7F0: - ldr r2, [r5, #0x19c] - mov r0, #0x50 - mla r1, r2, r0, r5 - add r0, r5, #0x6c - add fp, r1, #0x2f0 - add sl, r0, #0x1400 - mov sb, #5 -_0202E80C: - ldm fp!, {r0, r1, r2, r3} - stm sl!, {r0, r1, r2, r3} - subs sb, sb, #1 - bne _0202E80C - ldr r0, [r5, #0x19c] - add r1, r5, #0x1000 - add r0, r5, r0, lsl #1 - add r0, r0, #0x200 - ldrh r0, [r0, #0xe8] - strh r0, [r6] - ldr r0, [r1, #0x464] - cmp r0, #1 - moveq r0, #0 - streq r0, [r6, #4] - subeq r0, r0, #1 - streq r0, [r6, #8] - b _0202E85C -_0202E850: - add r0, r3, #0x1400 - add r1, r6, #0xc - bl Strcpy -_0202E85C: - ldr r0, [r5, #0xfc] - ldr r1, _0202EE80 @ =0x000001AF - orr r0, r0, #0x800 - str r0, [r5, #0xfc] - add r0, r5, #0x100 - strh r1, [r0, #8] - mov r0, #0x10 - add r3, r5, #0x16c - str r0, [r5, #0x10c] - add r0, r3, #0x1400 - str r0, [r5, #0x148] - ldrh sb, [r6] - add r0, r5, #0x1000 - add r2, r5, #0x6c - str sb, [r0, #0x4a0] - add r0, r2, #0x1400 - str r0, [sp] - ldrh r2, [r6] - mov r1, #0x400 - add r0, r3, #0x1800 - add r3, r1, #4 - bl PreprocessStringFromMessageId - add r0, r5, #0xc4 - add sb, r0, #0x1400 - b _0202E8E0 -_0202E8C0: - add r0, r5, r8, lsl #2 - add r2, r0, #0x1000 - add r1, sb, r8, lsl #2 - mov r0, r7 - str r7, [r2, #0x4e4] - add r8, r8, #1 - bl FUN_02021f44 - mov r7, r0 -_0202E8E0: - cmp r7, #0 - bne _0202E8C0 - add r0, r5, #0x1000 - str r8, [r0, #0x4bc] - ldr r1, [r0, #0x464] - cmp r1, #3 - ldreq r1, [r6, #4] - movne r1, #0 - str r1, [r0, #0x4c0] - ldr r1, [r5, #0xfc] - add r0, r5, #0x1000 - orr r1, r1, #8 - str r1, [r5, #0xfc] - ldr r0, [r0, #0x4bc] - add r1, sp, #0x38 - cmp r0, #1 - ldrle r0, [r5, #0xfc] - eorle r0, r0, #8 - strle r0, [r5, #0xfc] - ldrsb r0, [r4, #0x10] - bl FUN_02028284 - ldr r0, [r5, #0x430] - add r3, sp, #0x38 - cmp r0, #0 - mov r0, #1 - bne _0202E974 - ldr r1, [r5, #0x198] - add r2, r5, #0x100 - str r1, [sp] - str r0, [sp, #4] - ldr r1, [r5, #0xfc] - add r0, r5, #4 - bl FUN_02031af8 - ldr r1, [r5, #0x19c] - add r0, r5, #4 - bl FUN_02032684 - b _0202E98C -_0202E974: - str r0, [sp] - str r0, [sp, #4] - ldr r1, [r5, #0xfc] - add r0, r5, #4 - add r2, r5, #0x100 - bl FUN_02031af8 -_0202E98C: - add r0, r5, #0x1000 - mov r1, #4 - str r1, [r0, #0x464] -_0202E998: - mov r0, r4 - bl FUN_0202ee88 - mov r1, #0 - add r0, r5, #0x1000 - mov r2, #5 - str r2, [r0, #0x464] - strb r1, [r0, #0x468] - sub r0, r1, #1 - str r0, [r4, #0xb8] - b _0202EE74 -_0202E9C0: - add r0, r5, #0x34 - add r8, r0, #0x400 - ldr r7, [r5, #0x430] - ldr r6, _0202EE7C @ =0x0000040C - add r1, sp, #0x14 - add r2, sp, #0x48 - add r0, r5, #4 - mov r3, #1 - mla r6, r7, r6, r8 - bl FUN_02031c98 - mov r7, r0 - add r0, r5, #4 - bl FUN_02032560 - mov fp, r0 - add r2, r5, #0x1000 - mov r0, #0 - mov r1, #0x13 - ldr r8, [r2, #0x4c0] - bl FUN_02031914 - add r1, r5, #0x1000 - ldr r1, [r1, #0x4bc] - mov sb, r0 - cmp r1, #1 - ble _0202EA70 - tst sb, #0x10 - beq _0202EA48 - add r0, r5, #4 - mov r1, #4 - bl FUN_02032960 - subs r8, r8, #1 - addmi r0, r5, #0x1000 - ldrmi r0, [r0, #0x4bc] - submi r8, r0, #1 - b _0202EA70 -_0202EA48: - tst sb, #0x20 - beq _0202EA70 - add r0, r5, #4 - mov r1, #4 - bl FUN_02032960 - add r0, r5, #0x1000 - ldr r0, [r0, #0x4bc] - add r8, r8, #1 - cmp r8, r0 - movge r8, #0 -_0202EA70: - ldr r0, [r5, #0x430] - cmp r0, #0 - bne _0202EA98 - ldr r0, [r5, #0x19c] - cmp r0, fp - strne fp, [r5, #0x19c] - addne r0, r5, #0x1000 - movne r1, #1 - strne r1, [r0, #0x464] - bne _0202EB54 -_0202EA98: - add r0, r5, #0x1000 - ldr r1, [r0, #0x4c0] - cmp r1, r8 - beq _0202EAC0 - str r8, [r0, #0x4c0] - str r8, [r6, #4] - mvn r0, #0 - str r0, [r6, #8] - mov r7, #1 - b _0202EB54 -_0202EAC0: - ldr r2, [r0, #0x504] - cmp r2, #0 - ble _0202EB54 - ldr r0, [sp, #0x14] - tst r0, #0x2000 - beq _0202EB10 - ldr r0, [r6, #8] - cmp r0, #0 - sublt r0, r2, #1 - strlt r0, [r6, #8] - blt _0202EAFC - mvneq r0, #0 - streq r0, [r6, #8] - subne r0, r0, #1 - strne r0, [r6, #8] -_0202EAFC: - add r0, r5, #4 - mov r1, #3 - bl FUN_02032960 - mov r7, #1 - b _0202EB54 -_0202EB10: - tst r0, #0x1000 - beq _0202EB54 - ldr r1, [r6, #8] - cmp r1, #0 - movlt r0, #0 - strlt r0, [r6, #8] - blt _0202EB44 - sub r0, r2, #1 - cmp r1, r0 - mvnge r0, #0 - strge r0, [r6, #8] - addlt r0, r1, #1 - strlt r0, [r6, #8] -_0202EB44: - add r0, r5, #4 - mov r1, #3 - bl FUN_02032960 - mov r7, #1 -_0202EB54: - ldr r0, [sp, #0x14] - cmp r0, #0 - bne _0202ECC4 - ldrsb r0, [r4, #0x10] - mvn r2, #0 - add r1, sp, #0x28 - str r2, [sp, #8] - bl FUN_02028284 - add r0, r5, #0x108 - add r0, r0, #0x1400 - str r0, [sp, #0xc] - add r0, r5, #0x1000 - mov sl, #0 - str r0, [sp, #0x10] - b _0202EC08 -_0202EB90: - ldr r0, [sp, #0xc] - mov r1, #0x18 - mla r2, sl, r1, r0 - ldr r1, [sp, #0x28] - ldr r0, [r2, #8] - ldr r3, [sp, #0x30] - add r0, r0, r1 - str r0, [sp, #0x18] - ldr ip, [r2, #0x10] - add r0, sp, #0x48 - add r1, ip, r1 - str r1, [sp, #0x1c] - ldr ip, [r2, #4] - ldr r1, _0202EE84 @ =0x00000408 - add ip, ip, r3 - str ip, [sp, #0x20] - ldr ip, [r2, #0xc] - add r2, sp, #0x18 - add r3, ip, r3 - str r3, [sp, #0x24] - bl FUN_02006c8c - cmp r0, #0 - beq _0202EC04 - add r0, r5, #4 - mov r1, #0 - str sl, [sp, #8] - bl FUN_020320ec - mov r7, #1 - b _0202EC18 -_0202EC04: - add sl, sl, #1 -_0202EC08: - ldr r0, [sp, #0x10] - ldr r0, [r0, #0x504] - cmp sl, r0 - blt _0202EB90 -_0202EC18: - ldr r0, [sp, #8] - cmp r0, #0 - strge sl, [r6, #8] - orrge sb, sb, #1 - bge _0202EC7C - add r1, sp, #0x14 - add r2, sp, #0x48 - add r0, r5, #4 - bl FUN_02033758 - add r1, r5, #0x1000 - ldr r1, [r1, #0x4bc] - orr r7, r7, r0 - cmp r1, #1 - ble _0202EC7C - ldr r0, [sp, #0x14] - tst r0, #0x40000 - beq _0202EC68 - subs r8, r8, #1 - submi r8, r1, #1 - b _0202EC7C -_0202EC68: - tst r0, #0x80000 - beq _0202EC7C - add r8, r8, #1 - cmp r8, r1 - movge r8, #0 -_0202EC7C: - ldr r0, [r5, #0x430] - cmp r0, #0 - bne _0202ECA4 - ldr r0, [r5, #0x19c] - cmp r0, fp - strne fp, [r5, #0x19c] - addne r0, r5, #0x1000 - movne r1, #1 - strne r1, [r0, #0x464] - bne _0202ECC4 -_0202ECA4: - add r0, r5, #0x1000 - ldr r1, [r0, #0x4c0] - cmp r1, r8 - strne r8, [r0, #0x4c0] - strne r8, [r6, #4] - mvnne r0, #0 - strne r0, [r6, #8] - movne r7, #1 -_0202ECC4: - cmp r7, #0 - beq _0202ECD4 - mov r0, r4 - bl FUN_0202ee88 -_0202ECD4: - add r0, r5, #0x1000 - ldr r0, [r0, #0x464] - cmp r0, #5 - bne _0202EE28 - ldr r1, [r6, #8] - mov r0, #0 - mov r7, r0 - cmp r1, #0 - blt _0202EDC8 - tst sb, #1 - beq _0202EDC8 - add r2, r5, #0x108 - add r3, r2, #0x1400 - mov r2, #0x18 - mla r8, r1, r2, r3 - ldr sl, [r5, #0x430] - mov r7, #1 - ldr r2, _0202EE7C @ =0x0000040C - b _0202ED3C -_0202ED20: - mla r3, r0, r2, r5 - add r3, r3, #0x400 - ldrh sb, [r8, #2] - ldrh r3, [r3, #0x34] - cmp sb, r3 - beq _0202ED44 - add r0, r0, #1 -_0202ED3C: - cmp r0, sl - blt _0202ED20 -_0202ED44: - cmp sl, #3 - bge _0202EDBC - ldrh r0, [r8, #2] - cmp r0, #0 - addne r0, r5, r1 - addne r0, r0, #0x1000 - ldrbne r0, [r0, #0x568] - cmpne r0, #0 - beq _0202EDBC - add r0, r5, #4 - mov r1, #0 - bl FUN_02032960 - ldr r0, [r5, #0x430] - add r2, r6, #0x18 - add r0, r0, #1 - str r0, [r5, #0x430] - mov r3, #0 - ldrh sb, [r8, #2] - add r0, r6, #0x400 - mov r1, r8 - strh sb, [r0, #0xc] - str r3, [r6, #0x410] - sub r3, r3, #1 - add r0, r2, #0x400 - str r3, [r6, #0x414] - bl FUN_0202202c - add r0, r5, #0x1000 - mov r1, #2 - str r1, [r0, #0x464] - b _0202EDC8 -_0202EDBC: - add r0, r5, #4 - mov r1, #2 - bl FUN_02032960 -_0202EDC8: - cmp r7, #0 - bne _0202EE28 - ldr r0, [sp, #0x14] - tst r0, #2 - beq _0202EE28 - add r0, r5, #4 - mov r1, #1 - bl FUN_02032960 - ldr r0, [r5, #0x430] - cmp r0, #0 - ble _0202EE0C - sub r0, r0, #1 - str r0, [r5, #0x430] - add r0, r5, #0x1000 - mov r1, #3 - str r1, [r0, #0x464] - b _0202EE28 -_0202EE0C: - mov r1, #1 - add r0, r5, #0x1000 - strb r1, [r0, #0x468] - sub r1, r1, #6 - str r1, [r4, #0xb8] - mov r1, #6 - str r1, [r0, #0x464] -_0202EE28: - ldrsb r0, [r4, #0x10] - add r1, r5, #4 - bl FUN_02028948 - b _0202EE74 -_0202EE38: - add r0, r5, #4 - bl FUN_02032070 - cmp r0, #0 - bne _0202EE74 - add r0, r5, #0x1000 - mov r1, #7 - str r1, [r0, #0x464] -_0202EE54: - ldrsb r0, [r4, #0x10] - bl FUN_0202812c - cmp r0, #0 - mvnne r0, #4 - strne r0, [r4, #0xb8] - addne r0, r5, #0x1000 - movne r1, #8 - strne r1, [r0, #0x464] -_0202EE74: - add sp, sp, #0x6c - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0202EE7C: .4byte 0x0000040C -_0202EE80: .4byte 0x000001AF -_0202EE84: .4byte 0x00000408 - arm_func_end FUN_0202e708 - - arm_func_start FUN_0202ee88 -FUN_0202ee88: @ 0x0202EE88 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x124 - mov sl, r0 - ldr r5, [sl, #0xc] - ldrsb r0, [sl, #0x10] - add r1, r5, #0x34 - ldr r4, [r5, #0x430] - ldr r2, _0202F0A4 @ =0x0000040C - add r1, r1, #0x400 - add r3, r5, #0x1000 - mla r6, r4, r2, r1 - ldr r4, [r3, #0x4c0] - bl FUN_02027b1c - ldrsb r1, [sl, #0x10] - add r0, sp, #8 - bl FUN_02025e84 - add r0, r5, #4 - mov r1, #0 - bl FUN_020328d8 - mov r2, r0 - add r0, sp, #8 - mov r1, #4 - bl FUN_0202614c - add r0, r5, r4, lsl #2 - add r0, r0, #0x1000 - ldr r2, [r0, #0x4e4] - ldr r1, _0202F0A8 @ =0x0000C406 - add r0, sp, #8 - bl FUN_02026194 - add r0, sp, #8 - bl FUN_02026204 - add r1, r5, #0x108 - add r0, sp, #8 - add r1, r1, #0x1400 - bl FUN_020261f4 - add r1, r5, #0x1000 - str r0, [r1, #0x504] - ldr r0, [r5, #0x430] - cmp r0, #3 - bge _0202EFA0 - mov r8, #0 - mov r0, #1 - mov lr, r8 - ldr sb, _0202F0A4 @ =0x0000040C - mov ip, #0x18 - b _0202EF90 -_0202EF40: - mla r2, r8, ip, r5 - add r3, r2, #0x1500 - mov r4, r0 - mov r2, lr - ldrh r3, [r3, #0xa] - ldr r7, [r5, #0x430] - b _0202EF78 -_0202EF5C: - mla fp, r2, sb, r5 - add fp, fp, #0x400 - ldrh fp, [fp, #0x34] - cmp r3, fp - moveq r4, #0 - beq _0202EF80 - add r2, r2, #1 -_0202EF78: - cmp r2, r7 - blt _0202EF5C -_0202EF80: - add r2, r5, r8 - add r2, r2, #0x1000 - strb r4, [r2, #0x568] - add r8, r8, #1 -_0202EF90: - ldr r3, [r1, #0x504] - cmp r8, r3 - blt _0202EF40 - b _0202EFC8 -_0202EFA0: - mov r4, #0 - mov r2, r4 - b _0202EFBC -_0202EFAC: - add r0, r5, r4 - add r0, r0, #0x1000 - strb r2, [r0, #0x568] - add r4, r4, #1 -_0202EFBC: - ldr r3, [r1, #0x504] - cmp r4, r3 - blt _0202EFAC -_0202EFC8: - add r0, r5, #0x108 - cmp r3, #0 - add r7, r0, #0x1400 - mov r8, #0 - ble _0202F088 - add r4, r5, #0x1000 - mov fp, #0x2e - b _0202F07C -_0202EFE8: - add r0, r5, r8 - add r0, r0, #0x1000 - ldrb r0, [r0, #0x568] - ldrsb r1, [sl, #0x10] - cmp r0, #0 - movne sb, #0x4c - add r0, sp, #8 - moveq sb, #0x57 - bl FUN_02025e84 - add r0, sp, #8 - ldmib r7, {r1, r2} - bl FUN_0202614c - ldr r1, _0202F0AC @ =0x0000C506 - ldr r2, [r7, #0x14] - add r0, sp, #8 - bl FUN_02026194 - mov r1, sb - add r0, sp, #8 - bl FUN_02026174 - add r0, sp, #8 - bl FUN_02026204 - ldr r0, [r6, #8] - cmp r0, r8 - bne _0202F074 - ldr r0, [r7, #0xc] - ldr r1, [r7, #4] - cmp r1, r0 - bge _0202F074 - sub r3, r0, r1 - ldr r2, [r7, #8] - ldr r0, [r7, #0x10] - sub r0, r0, r2 - stm sp, {r0, fp} - ldrsb r0, [sl, #0x10] - bl FUN_02025d90 -_0202F074: - add r8, r8, #1 - add r7, r7, #0x18 -_0202F07C: - ldr r0, [r4, #0x504] - cmp r8, r0 - blt _0202EFE8 -_0202F088: - ldrsb r1, [sl, #0x10] - add r0, r5, #4 - bl FUN_0202a03c - ldrsb r0, [sl, #0x10] - bl FUN_02027af0 - add sp, sp, #0x124 - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0202F0A4: .4byte 0x0000040C -_0202F0A8: .4byte 0x0000C406 -_0202F0AC: .4byte 0x0000C506 - arm_func_end FUN_0202ee88 - - arm_func_start CreateDBox -CreateDBox: @ 0x0202F0B0 - push {r4, r5, r6, lr} - sub sp, sp, #0x10 - mov r6, r0 - ldr r0, _0202F13C @ =0x00000528 - mov r1, #8 - bl MemAlloc - mov r4, r0 - cmp r6, #0 - ldreq r0, _0202F140 @ =0x0209AF2C - add r5, sp, #0 - ldmeq r0, {r0, r1, r2, r3} - stmeq r5, {r0, r1, r2, r3} - ldmne r6, {r0, r1, r2, r3} - stmne r5, {r0, r1, r2, r3} - ldrne r0, _0202F144 @ =FUN_0202f488 - ldr r1, _0202F144 @ =FUN_0202f488 - strne r0, [sp] - str r4, [sp, #0xc] - str r1, [r4] - mov r2, #1 - add r0, sp, #0 - mov r1, #3 - strb r2, [r4, #0xa] - bl FUN_02027648 - mov r5, r0 - mov r1, r5 - add r0, r4, #0xc - bl FUN_02025e84 - mov r1, #0 - str r1, [r4, #4] - strb r1, [r4, #8] - mov r0, r5 - strb r1, [r4, #9] - add sp, sp, #0x10 - pop {r4, r5, r6, pc} - .align 2, 0 -_0202F13C: .4byte 0x00000528 -_0202F140: .4byte 0x0209AF2C -_0202F144: .4byte FUN_0202f488 - arm_func_end CreateDBox - - arm_func_start FreeDBox -FreeDBox: @ 0x0202F148 - push {r4, lr} - mov r4, r0 - bl GetDialogBoxField0xC - mov r0, r4 - bl GetDialogBoxField0xC - bl MemFree - mov r0, r4 - bl FUN_02028194 - pop {r4, pc} - arm_func_end FreeDBox - - arm_func_start FUN_0202f16c -FUN_0202f16c: @ 0x0202F16C - push {r3, lr} - bl GetDialogBoxField0xC - add r0, r0, #0xc - bl FUN_020261d4 - pop {r3, pc} - arm_func_end FUN_0202f16c - - arm_func_start IsDBoxActive -IsDBoxActive: @ 0x0202F180 - push {r3, lr} - bl GetDialogBoxField0xC - ldrb r0, [r0, #8] - pop {r3, pc} - arm_func_end IsDBoxActive - - arm_func_start FUN_0202f190 -FUN_0202f190: @ 0x0202F190 - push {r3, r4, r5, lr} - mov r5, r1 - mov r4, r2 - bl GetDialogBoxField0xC - mov r1, r5 - mov r2, r4 - add r0, r0, #0xc - bl FUN_02026184 - pop {r3, r4, r5, pc} - arm_func_end FUN_0202f190 - - arm_func_start ShowMessageInDBox -ShowMessageInDBox: @ 0x0202F1B4 - push {r3, r4, r5, r6, r7, lr} - mov r7, r1 - mov r6, r2 - mov r5, r3 - bl GetDialogBoxField0xC - mov r4, r0 - ldr r0, [r4, #4] - cmp r0, #2 - beq _0202F1EC - add r0, r4, #0xc - bl FUN_0202613c - mov r0, #1 - str r0, [r4, #4] - b _0202F200 -_0202F1EC: - ldrb r0, [r4, #9] - cmp r0, #0 - beq _0202F200 - add r0, r4, #0x128 - bl FUN_02048240 -_0202F200: - mov r0, #1 - strb r0, [r4, #8] - ldrb r0, [r4, #0xa] - mov r2, r6 - mov r3, r7 - strb r0, [r4, #9] - add r0, r4, #0x128 - mov r1, #0x400 - str r5, [sp] - bl PreprocessStringFromMessageId - mov r1, r7 - add r0, r4, #0xc - add r2, r4, #0x128 - bl FUN_02026194 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end ShowMessageInDBox - - arm_func_start FUN_0202f23c -FUN_0202f23c: @ 0x0202F23C - push {r3, r4, r5, r6, r7, lr} - mov r7, r1 - mov r6, r2 - mov r5, r3 - bl GetDialogBoxField0xC - mov r4, r0 - ldr r0, [r4, #4] - cmp r0, #2 - beq _0202F274 - add r0, r4, #0xc - bl FUN_0202613c - mov r0, #1 - str r0, [r4, #4] - b _0202F288 -_0202F274: - ldrb r0, [r4, #9] - cmp r0, #0 - beq _0202F288 - add r0, r4, #0x128 - bl FUN_02048240 -_0202F288: - mov r0, #1 - strb r0, [r4, #8] - ldrb r0, [r4, #0xa] - mov r2, r6 - mov r3, r7 - strb r0, [r4, #9] - add r0, r4, #0x128 - mov r1, #0x400 - str r5, [sp] - bl PreprocessString - mov r1, r7 - add r0, r4, #0xc - add r2, r4, #0x128 - bl FUN_02026194 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0202f23c - - arm_func_start FUN_0202f2c4 -FUN_0202f2c4: @ 0x0202F2C4 - push {r4, lr} - bl GetDialogBoxField0xC - mov r4, r0 - ldr r0, [r4, #4] - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _0202F31C -_0202F2E0: @ jump table - b _0202F31C @ case 0 - b _0202F2F4 @ case 1 - b _0202F308 @ case 2 - pop {r4, pc} @ case 3 - pop {r4, pc} @ case 4 -_0202F2F4: - mov r0, #4 - str r0, [r4, #4] - mov r0, #1 - strb r0, [r4, #8] - pop {r4, pc} -_0202F308: - add r0, r4, #0xc - bl FUN_020261a4 - mov r0, #1 - strb r0, [r4, #8] - pop {r4, pc} -_0202F31C: - add r0, r4, #0xc - bl FUN_0202613c - mov r0, #0 - str r0, [r4, #4] - strb r0, [r4, #8] - pop {r4, pc} - arm_func_end FUN_0202f2c4 - - arm_func_start FUN_0202f334 -FUN_0202f334: @ 0x0202F334 - push {r4, lr} - bl GetDialogBoxField0xC - mov r4, r0 - ldr r0, [r4, #4] - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _0202F38C -_0202F350: @ jump table - b _0202F38C @ case 0 - b _0202F364 @ case 1 - b _0202F378 @ case 2 - pop {r4, pc} @ case 3 - pop {r4, pc} @ case 4 -_0202F364: - mov r0, #4 - str r0, [r4, #4] - mov r0, #1 - strb r0, [r4, #8] - pop {r4, pc} -_0202F378: - mov r0, #3 - str r0, [r4, #4] - mov r0, #1 - strb r0, [r4, #8] - pop {r4, pc} -_0202F38C: - add r0, r4, #0xc - bl FUN_0202613c - mov r0, #0 - str r0, [r4, #4] - strb r0, [r4, #8] - pop {r4, pc} - arm_func_end FUN_0202f334 - - arm_func_start ShowDBox -ShowDBox: @ 0x0202F3A4 - push {r4, lr} - bl GetDialogBoxField0xC - mov r4, r0 - ldr r0, [r4, #4] - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _0202F3E0 -_0202F3C0: @ jump table - b _0202F3E0 @ case 0 - b _0202F3D4 @ case 1 - b _0202F3D4 @ case 2 - pop {r4, pc} @ case 3 - pop {r4, pc} @ case 4 -_0202F3D4: - add r0, r4, #0xc - bl FUN_020261c4 - pop {r4, pc} -_0202F3E0: - add r0, r4, #0xc - bl FUN_0202613c - mov r0, #0 - str r0, [r4, #4] - strb r0, [r4, #8] - pop {r4, pc} - arm_func_end ShowDBox - - arm_func_start FUN_0202f3f8 -FUN_0202f3f8: @ 0x0202F3F8 - push {r4, lr} - bl GetDialogBoxField0xC - mov r4, r0 - ldr r0, [r4, #4] - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _0202F434 -_0202F414: @ jump table - b _0202F434 @ case 0 - b _0202F428 @ case 1 - b _0202F428 @ case 2 - pop {r4, pc} @ case 3 - pop {r4, pc} @ case 4 -_0202F428: - add r0, r4, #0xc - bl FUN_020261b4 - pop {r4, pc} -_0202F434: - add r0, r4, #0xc - bl FUN_0202613c - mov r0, #0 - str r0, [r4, #4] - strb r0, [r4, #8] - pop {r4, pc} - arm_func_end FUN_0202f3f8 - - arm_func_start FUN_0202f44c -FUN_0202f44c: @ 0x0202F44C - push {r3, r4, r5, lr} - mov r5, r1 - mov r4, r2 - bl GetDialogBoxField0xC - mov r1, r0 - mov r0, r5 - mov r2, r4 - add r1, r1, #0x128 - bl MemcpySimple - pop {r3, r4, r5, pc} - arm_func_end FUN_0202f44c - - arm_func_start FUN_0202f474 -FUN_0202f474: @ 0x0202F474 - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - strb r4, [r0, #0xa] - pop {r4, pc} - arm_func_end FUN_0202f474 - - arm_func_start FUN_0202f488 -FUN_0202f488: @ 0x0202F488 - push {r3, r4, r5, lr} - mov r5, r0 - ldr r4, [r5, #0xc] - ldr r0, [r4, #4] - cmp r0, #4 - addls pc, pc, r0, lsl #2 - pop {r3, r4, r5, pc} -_0202F4A4: @ jump table - b _0202F4B8 @ case 0 - b _0202F4E4 @ case 1 - b _0202F504 @ case 2 - b _0202F568 @ case 3 - b _0202F57C @ case 4 -_0202F4B8: - add r0, r4, #0xc - bl FUN_020261d4 - cmp r0, #0 - moveq r0, #0 - strbeq r0, [r4, #8] - popeq {r3, r4, r5, pc} - mov r0, #1 - str r0, [r4, #4] - strb r0, [r4, #8] - sub r0, r0, #2 - str r0, [r5, #0xb8] -_0202F4E4: - mov r0, #1 - strb r0, [r4, #8] - ldrsb r0, [r5, #0x10] - bl FUN_0202810c - cmp r0, #0 - popeq {r3, r4, r5, pc} - mov r0, #2 - str r0, [r4, #4] -_0202F504: - add r0, r4, #0xc - bl FUN_02026204 - cmp r0, #0x10 - moveq r0, #3 - streq r0, [r4, #4] - moveq r0, #1 - strbeq r0, [r4, #8] - popeq {r3, r4, r5, pc} - ldrb r5, [r4, #8] - add r0, r4, #0xc - bl FUN_020261e4 - strb r0, [r4, #8] - cmp r5, #0 - popeq {r3, r4, r5, pc} - ldrb r0, [r4, #8] - cmp r0, #0 - popne {r3, r4, r5, pc} - ldrb r0, [r4, #9] - cmp r0, #0 - popeq {r3, r4, r5, pc} - add r0, r4, #0x128 - bl FUN_02048240 - mov r0, #0 - strb r0, [r4, #9] - pop {r3, r4, r5, pc} -_0202F568: - mov r0, #4 - str r0, [r4, #4] - mov r0, #1 - strb r0, [r4, #8] - pop {r3, r4, r5, pc} -_0202F57C: - ldrsb r0, [r5, #0x10] - bl FUN_0202812c - cmp r0, #0 - popeq {r3, r4, r5, pc} - add r0, r4, #0xc - bl FUN_0202613c - mov r0, #0 - str r0, [r4, #4] - strb r0, [r4, #8] - sub r0, r0, #6 - str r0, [r5, #0xb8] - pop {r3, r4, r5, pc} - arm_func_end FUN_0202f488 - - arm_func_start CreatePortraitBox -CreatePortraitBox: @ 0x0202F5AC - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0x10 - mov r7, r0 - mov r4, r1 - mov r0, #0x380 - mov r1, #8 - mov r6, r2 - bl MemAlloc - ldr r1, _0202F648 @ =0x0209AF3C - mov r5, r0 - add ip, sp, #0 - ldm r1, {r0, r1, r2, r3} - stm ip, {r0, r1, r2, r3} - ldr r0, _0202F64C @ =FUN_0202f70c - cmp r6, #0 - str r0, [sp] - mvnne r0, #3 - mvneq r0, #6 - strb r0, [sp, #9] - str r5, [sp, #0xc] - strb r7, [sp, #8] - add r0, sp, #0 - strb r6, [r5, #0x2a] - mov r1, #3 - bl FUN_02027648 - strb r0, [r5] - mov r1, #0 - add r0, r5, #8 - str r1, [r5, #4] - bl InitPortraitBox - add r0, r5, #0x18 - bl InitPortraitBox - str r4, [r5, #0x2c] - mov r0, #0 - strb r0, [r5, #0x28] - strb r0, [r5, #0x29] - ldrsb r0, [r5] - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0202F648: .4byte 0x0209AF3C -_0202F64C: .4byte FUN_0202f70c - arm_func_end CreatePortraitBox - - arm_func_start FreePortraitBox -FreePortraitBox: @ 0x0202F650 - push {r4, lr} - mov r4, r0 - bl GetDialogBoxField0xC - bl MemFree - mov r0, r4 - bl FUN_02028194 - pop {r4, pc} - arm_func_end FreePortraitBox - - arm_func_start FUN_0202f66c -FUN_0202f66c: @ 0x0202F66C - push {r3, lr} - bl GetDialogBoxField0xC ldr r0, [r0, #4] - sub r0, r0, #1 - cmp r0, #1 - movls r0, #1 - movhi r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FUN_0202f66c - - arm_func_start ShowPortraitBox -ShowPortraitBox: @ 0x0202F690 - push {r3, r4, r5, lr} - mov r5, r1 - bl GetDialogBoxField0xC - mov r4, r0 - ldr r0, [r4, #4] - cmp r0, #2 - cmpne r0, #3 - movne r0, #1 - strne r0, [r4, #4] - cmp r5, #0 - addne ip, r4, #0x18 - ldmne r5, {r0, r1, r2, r3} - stmne ip, {r0, r1, r2, r3} - bne _0202F6D0 - add r0, r4, #0x18 - bl InitPortraitBox -_0202F6D0: - mov r0, #1 - strb r0, [r4, #0x28] - pop {r3, r4, r5, pc} - arm_func_end ShowPortraitBox - - arm_func_start HidePortraitBox -HidePortraitBox: @ 0x0202F6DC - push {r4, lr} - bl GetDialogBoxField0xC - mov r4, r0 - mov r0, #0 - strb r0, [r4, #0x28] - add r0, r4, #0x18 - bl InitPortraitBox - ldr r0, [r4, #4] - cmp r0, #0 - movne r0, #1 - strbne r0, [r4, #0x29] - pop {r4, pc} - arm_func_end HidePortraitBox - - arm_func_start FUN_0202f70c -FUN_0202f70c: @ 0x0202F70C - push {r3, r4, r5, lr} - mov r5, r0 - ldr r4, [r5, #0xc] - ldr r0, [r4, #4] - cmp r0, #4 - addls pc, pc, r0, lsl #2 - pop {r3, r4, r5, pc} -_0202F728: @ jump table - b _0202F73C @ case 0 - b _0202F760 @ case 1 - b _0202F778 @ case 2 - b _0202F86C @ case 3 - b _0202F894 @ case 4 -_0202F73C: - ldrb r0, [r4, #0x28] - cmp r0, #0 - popeq {r3, r4, r5, pc} - mov r1, #0 - mov r0, #1 - strb r1, [r4, #0x28] - str r0, [r4, #4] - sub r0, r0, #2 - str r0, [r5, #0xb8] -_0202F760: - ldrsb r0, [r5, #0x10] - bl FUN_0202811c - cmp r0, #0 - popeq {r3, r4, r5, pc} - mov r0, #2 - str r0, [r4, #4] -_0202F778: - mov r0, #0 - strb r0, [r4, #0x28] - add r0, r4, #0x18 - add ip, r4, #8 - ldm r0, {r0, r1, r2, r3} - stm ip, {r0, r1, r2, r3} - ldrb r0, [r4, #0x29] - cmp r0, #0 - bne _0202F86C - mov r0, ip - bl FUN_0204d89c - cmp r0, #0 - beq _0202F854 - add r0, r4, #8 - add r1, r4, #0x30 - bl LoadPortrait - cmp r0, #0 - beq _0202F824 - ldr r2, [r4, #0x2c] - ldrsb r0, [r5, #0x10] - add r1, r4, #0x30 - lsl r2, r2, #4 - bl FUN_02027040 - ldrsb r0, [r5, #0x10] - ldr r2, [r4, #0x2c] - add r1, r4, #0x60 - bl FUN_02026e3c - ldrb r0, [r4, #0x16] - strb r0, [r5, #0x11] - ldrb r0, [r4, #0x2a] - cmp r0, #0 - ldrsb r0, [r4] - beq _0202F808 - mvn r1, #3 - bl FUN_02028080 - b _0202F810 -_0202F808: - mvn r1, #6 - bl FUN_02028080 -_0202F810: - ldrsb r0, [r5, #0x10] - add r1, r4, #0xc - ldm r1, {r1, r2} - bl FUN_02028770 - b _0202F85C -_0202F824: - ldrsb r0, [r5, #0x10] - bl FUN_0202836c - ldrsb r0, [r5, #0x10] - bl FUN_02027b1c - ldrsb r0, [r4] - mov r1, #0 - bl FUN_02028080 - add r1, r4, #0xc - ldrsb r0, [r5, #0x10] - ldm r1, {r1, r2} - bl FUN_02028770 - b _0202F85C -_0202F854: - mov r0, #1 - strb r0, [r4, #0x29] -_0202F85C: - mov r0, #3 - str r0, [r4, #4] - sub r0, r0, #4 - str r0, [r5, #0xb8] -_0202F86C: - ldrb r0, [r4, #0x28] - cmp r0, #0 - movne r0, #2 - strne r0, [r4, #4] - popne {r3, r4, r5, pc} - ldrb r0, [r4, #0x29] - cmp r0, #0 - movne r0, #4 - strne r0, [r4, #4] - pop {r3, r4, r5, pc} -_0202F894: - ldrsb r0, [r5, #0x10] - bl FUN_0202812c - cmp r0, #0 - popeq {r3, r4, r5, pc} - add r0, r4, #8 - bl InitPortraitBox - mov r0, #0 - strb r0, [r4, #0x29] - str r0, [r4, #4] - sub r0, r0, #6 - str r0, [r5, #0xb8] - pop {r3, r4, r5, pc} - arm_func_end FUN_0202f70c - - arm_func_start FUN_0202f8c4 -FUN_0202f8c4: @ 0x0202F8C4 - push {r4, lr} - mov r4, r1 - bl FUN_0202f9dc - str r4, [r0, #4] - ldrsb r0, [r0] - pop {r4, pc} - arm_func_end FUN_0202f8c4 - - arm_func_start FUN_0202f8dc -FUN_0202f8dc: @ 0x0202F8DC - push {r3, r4, r5, lr} - mov r4, r2 - mov r5, r1 - bl FUN_0202f9dc - str r4, [r0, #0x14] - str r5, [r0, #8] - ldrsb r0, [r0] - pop {r3, r4, r5, pc} - arm_func_end FUN_0202f8dc - - arm_func_start FUN_0202f8fc -FUN_0202f8fc: @ 0x0202F8FC - push {r4, lr} - mov r4, r0 - bl GetDialogBoxField0xC - bl MemFree - mov r0, r4 - bl FUN_02028194 - pop {r4, pc} - arm_func_end FUN_0202f8fc - - arm_func_start FUN_0202f918 -FUN_0202f918: @ 0x0202F918 - push {r4, lr} - mov r4, r0 - bl GetDialogBoxField0xC - mov r0, r4 - bl FUN_0202836c - mov r0, r4 - bl FUN_02027b1c - mov r0, r4 - bl FUN_0202f954 - mov r0, r4 - bl GetDialogBoxField0xC - bl MemFree - mov r0, r4 - bl FUN_02028194 - pop {r4, pc} - arm_func_end FUN_0202f918 - - arm_func_start FUN_0202f954 -FUN_0202f954: @ 0x0202F954 - push {r3, lr} - bl GetDialogBoxField0xC - ldr r1, [r0, #0x10] - cmp r1, #6 - addls pc, pc, r1, lsl #2 - b _0202F9AC -_0202F96C: @ jump table - b _0202F9AC @ case 0 - b _0202F988 @ case 1 - b _0202F994 @ case 2 - b _0202F9A0 @ case 3 - pop {r3, pc} @ case 4 - pop {r3, pc} @ case 5 - pop {r3, pc} @ case 6 -_0202F988: - mov r1, #5 - str r1, [r0, #0x10] - pop {r3, pc} -_0202F994: - mov r1, #3 - str r1, [r0, #0x10] - pop {r3, pc} -_0202F9A0: - mov r1, #4 - str r1, [r0, #0x10] - pop {r3, pc} -_0202F9AC: - mov r1, #0 - str r1, [r0, #0x10] - pop {r3, pc} - arm_func_end FUN_0202f954 - - arm_func_start FUN_0202f9b8 -FUN_0202f9b8: @ 0x0202F9B8 - push {r3, lr} - bl GetDialogBoxField0xC - ldr r1, [r0, #0x10] - cmp r1, #3 - moveq r1, #2 - streq r1, [r0, #0x10] - moveq r0, #1 - movne r0, #0 - pop {r3, pc} - arm_func_end FUN_0202f9b8 - - arm_func_start FUN_0202f9dc -FUN_0202f9dc: @ 0x0202F9DC - push {r3, r4, r5, lr} - sub sp, sp, #0x10 - mov r5, r0 - mov r0, #0x18 - mov r1, #8 - bl MemAlloc - mov r4, r0 - cmp r5, #0 - ldreq r0, _0202FA54 @ =0x0209AF4C - add ip, sp, #0 - ldmeq r0, {r0, r1, r2, r3} - ldmne r5, {r0, r1, r2, r3} - stm ip, {r0, r1, r2, r3} - ldr r1, _0202FA58 @ =0x0202FA5C - add r0, sp, #0 - str r1, [sp] - str r4, [sp, #0xc] - mov r1, #3 - bl FUN_02027648 - strb r0, [r4] - mov r0, #0 - str r0, [r4, #4] - str r0, [r4, #8] - str r0, [r4, #0x14] - str r0, [r4, #0x10] - ldr r1, _0202FA58 @ =0x0202FA5C - mov r0, r4 - str r1, [r4, #0xc] - add sp, sp, #0x10 - pop {r3, r4, r5, pc} - .align 2, 0 -_0202FA54: .4byte 0x0209AF4C -_0202FA58: .4byte 0x0202FA5C - arm_func_end FUN_0202f9dc -_0202FA5C: - .byte 0x38, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x50, 0xA0, 0xE1, 0x0C, 0x40, 0x95, 0xE5, 0x00, 0x10, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3 - .byte 0xF9, 0x59, 0xFF, 0xEB, 0x10, 0x00, 0x94, 0xE5, 0x06, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90 - .byte 0x38, 0x80, 0xBD, 0xE8, 0x05, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x00, 0xEA, 0x0D, 0x00, 0x00, 0xEA - .byte 0x1B, 0x00, 0x00, 0xEA, 0x2D, 0x00, 0x00, 0xEA, 0x32, 0x00, 0x00, 0xEA, 0x39, 0x00, 0x00, 0xEA - .byte 0x00, 0x00, 0xE0, 0xE3, 0xB8, 0x00, 0x85, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x10, 0x00, 0x84, 0xE5 - .byte 0xD0, 0x01, 0xD5, 0xE1, 0x94, 0xE1, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x38, 0x80, 0xBD, 0x08 - .byte 0x02, 0x00, 0xA0, 0xE3, 0x10, 0x00, 0x84, 0xE5, 0x08, 0x20, 0x94, 0xE5, 0x00, 0x00, 0x52, 0xE3 - .byte 0x03, 0x00, 0x00, 0x0A, 0xD0, 0x01, 0xD5, 0xE1, 0x14, 0x10, 0x94, 0xE5, 0x32, 0xFF, 0x2F, 0xE1 - .byte 0x04, 0x00, 0x00, 0xEA, 0x04, 0x10, 0x94, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x00, 0x0A - .byte 0xD0, 0x01, 0xD5, 0xE1, 0x31, 0xFF, 0x2F, 0xE1, 0x03, 0x00, 0xA0, 0xE3, 0x10, 0x00, 0x84, 0xE5 - .byte 0x38, 0x80, 0xBD, 0xE8, 0x08, 0x00, 0xD5, 0xE5, 0x01, 0x00, 0x50, 0xE3, 0x38, 0x80, 0xBD, 0x08 - .byte 0xB0, 0x00, 0xDD, 0xE1, 0x02, 0x00, 0x10, 0xE3, 0xD9, 0x20, 0xD5, 0x11, 0x01, 0x10, 0xE0, 0x13 - .byte 0x01, 0x00, 0x52, 0x11, 0x03, 0x00, 0x41, 0x12, 0x00, 0x00, 0x52, 0x11, 0x06, 0x00, 0x41, 0x12 - .byte 0x00, 0x00, 0x52, 0x11, 0x07, 0x00, 0x41, 0x12, 0x00, 0x00, 0x52, 0x11, 0x04, 0x00, 0xA0, 0x13 - .byte 0x10, 0x00, 0x84, 0x15, 0x10, 0x00, 0x94, 0xE5, 0x04, 0x00, 0x50, 0xE3, 0x38, 0x80, 0xBD, 0x18 - .byte 0xD0, 0x01, 0xD5, 0xE1, 0x04, 0xE2, 0xFF, 0xEB, 0xD0, 0x01, 0xD5, 0xE1, 0xEE, 0xDF, 0xFF, 0xEB - .byte 0x05, 0x00, 0xA0, 0xE3, 0x10, 0x00, 0x84, 0xE5, 0xD0, 0x01, 0xD5, 0xE1, 0x6E, 0xE1, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0xA0, 0x13, 0x10, 0x00, 0x84, 0x15, 0x0C, 0x00, 0x40, 0x12 - .byte 0xB8, 0x00, 0x85, 0x15, 0x38, 0x80, 0xBD, 0xE8, 0x04, 0x00, 0xE0, 0xE3, 0xB8, 0x00, 0x85, 0xE5 - .byte 0x07, 0x00, 0xA0, 0xE3, 0x10, 0x00, 0x84, 0xE5, 0x38, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_0202fb9c -FUN_0202fb9c: @ 0x0202FB9C - push {r3, lr} - bl GetDialogBoxField0xC - ldr r0, [r0, #0x10] - cmp r0, #7 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FUN_0202fb9c - - arm_func_start FUN_0202fbbc -FUN_0202fbbc: @ 0x0202FBBC - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x64 - mov r7, r0 - mov r6, r1 - mov r0, #0x1b4 - mov r1, #8 - mov r5, r2 - mov r8, r3 - bl MemAlloc - mov r4, r0 - str r8, [r4, #0xa4] - add r0, sp, #0x14 - str r8, [sp, #0x24] - str r0, [sp] - ldr r2, _0202FD2C @ =0x0209AF6C - ldr r3, _0202FD30 @ =0x0000C402 - add r0, r4, #0xac - mov r1, #0x100 - bl PreprocessString - add r0, r4, #0xac - bl FUN_020265a8 - mov ip, r0 - cmp r7, #0 - str ip, [r4, #0xa8] - addne lr, sp, #4 - ldmne r7, {r0, r1, r2, r3} - stmne lr, {r0, r1, r2, r3} - ldrne r0, _0202FD34 @ =FUN_0202fd8c - strne r0, [sp, #4] - bne _0202FC48 - ldr r0, _0202FD38 @ =0x0209AF5C - add r7, sp, #4 - ldm r0, {r0, r1, r2, r3} - stm r7, {r0, r1, r2, r3} - orr r6, r6, #0x300000 -_0202FC48: - ldrb r0, [sp, #0xa] - str r4, [sp, #0x10] - cmp r0, #0 - addeq r1, ip, #7 - asreq r0, r1, #2 - addeq r0, r1, r0, lsr #29 - asreq r0, r0, #3 - strbeq r0, [sp, #0xa] - ldrb r0, [sp, #0xb] - cmp r0, #0 - moveq r0, #2 - strbeq r0, [sp, #0xb] - tst r6, #0x200000 - ldrbne r1, [sp, #8] - ldrbne r0, [sp, #0xa] - subne r0, r1, r0 - strbne r0, [sp, #8] - tst r6, #0x100000 - ldrbne r1, [sp, #9] - ldrbne r0, [sp, #0xb] - subne r0, r1, r0 - strbne r0, [sp, #9] - ldrb r1, [sp, #0xa] - ldr r0, [r4, #0xa8] - rsb r0, r0, r1, lsl #3 - add r0, r0, r0, lsr #31 - asr r0, r0, #1 - str r0, [r4, #0x1b0] - ldrb r0, [sp, #0xb] - lsl r0, r0, #3 - sub r0, r0, #0xc - add r0, r0, r0, lsr #31 - asr r0, r0, #1 - str r0, [r4, #0x1ac] - ldr r0, [r4, #0x1b0] - cmp r0, #0 - movlt r0, #0 - strlt r0, [r4, #0x1b0] - ldr r0, _0202FD34 @ =FUN_0202fd8c - cmp r5, #0 - stm r4, {r0, r6} - beq _0202FD10 - add r7, r4, #8 - mov r6, #9 -_0202FCF8: - ldm r5!, {r0, r1, r2, r3} - stm r7!, {r0, r1, r2, r3} - subs r6, r6, #1 - bne _0202FCF8 - ldm r5, {r0, r1} - stm r7, {r0, r1} -_0202FD10: - mov r2, #0 - add r0, sp, #4 - mov r1, #3 - str r2, [r4, #0xa0] - bl FUN_02027648 - add sp, sp, #0x64 - pop {r3, r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0202FD2C: .4byte 0x0209AF6C -_0202FD30: .4byte 0x0000C402 -_0202FD34: .4byte FUN_0202fd8c -_0202FD38: .4byte 0x0209AF5C - arm_func_end FUN_0202fbbc - - arm_func_start FUN_0202fd3c -FUN_0202fd3c: @ 0x0202FD3C - push {r3, lr} - bl GetDialogBoxField0xC - mov r1, #3 - str r1, [r0, #0xa0] - pop {r3, pc} - arm_func_end FUN_0202fd3c - - arm_func_start FUN_0202fd50 -FUN_0202fd50: @ 0x0202FD50 - push {r4, lr} - mov r4, r0 - bl GetDialogBoxField0xC - bl MemFree - mov r0, r4 - bl FUN_02028194 - pop {r4, pc} - arm_func_end FUN_0202fd50 - - arm_func_start FUN_0202fd6c -FUN_0202fd6c: @ 0x0202FD6C - push {r3, lr} - bl GetDialogBoxField0xC - ldr r0, [r0, #0xa0] - cmp r0, #2 - cmpne r0, #4 - movne r0, #1 - moveq r0, #0 - pop {r3, pc} - arm_func_end FUN_0202fd6c - - arm_func_start FUN_0202fd8c -FUN_0202fd8c: @ 0x0202FD8C - push {r4, r5, r6, lr} - mov r5, r0 - ldr r4, [r5, #0xc] - ldr r0, [r4, #0xa0] - cmp r0, #3 - addls pc, pc, r0, lsl #2 - pop {r4, r5, r6, pc} -_0202FDA8: @ jump table - b _0202FDB8 @ case 0 - b _0202FDD0 @ case 1 - pop {r4, r5, r6, pc} @ case 2 - b _0202FE0C @ case 3 -_0202FDB8: - ldrsb r0, [r5, #0x10] - bl FUN_0202810c - cmp r0, #0 - popeq {r4, r5, r6, pc} - mov r0, #1 - str r0, [r4, #0xa0] -_0202FDD0: - ldrsb r0, [r5, #0x10] - ldr r6, [r5, #0xc] - bl FUN_02027b1c - ldrsb r0, [r5, #0x10] - ldr r1, [r6, #0x1b0] - ldr r2, [r6, #0x1ac] - add r3, r6, #0xac - bl FUN_02026214 - ldrsb r0, [r5, #0x10] - bl FUN_02027af0 - mov r0, #2 - str r0, [r4, #0xa0] - sub r0, r0, #3 - str r0, [r5, #0xb8] - pop {r4, r5, r6, pc} -_0202FE0C: - ldrsb r0, [r5, #0x10] - bl FUN_0202812c - cmp r0, #0 - mvnne r0, #4 - strne r0, [r5, #0xb8] - movne r0, #4 - strne r0, [r4, #0xa0] - pop {r4, r5, r6, pc} - arm_func_end FUN_0202fd8c - - arm_func_start FUN_0202fe2c -FUN_0202fe2c: @ 0x0202FE2C - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0x10 - mov r7, r0 - mov r5, r1 - mov r0, #0xa8 - mov r1, #8 - mov r4, r2 - mov r6, r3 - bl MemAlloc - mov ip, r0 - cmp r7, #0 - ldreq r0, _0202FECC @ =0x0209AF78 - strh r6, [ip, #0xa4] - add lr, sp, #0 - ldmeq r0, {r0, r1, r2, r3} - stmeq lr, {r0, r1, r2, r3} - ldmne r7, {r0, r1, r2, r3} - stmne lr, {r0, r1, r2, r3} - ldrne r0, _0202FED0 @ =FUN_0202ff10 - str ip, [sp, #0xc] - strne r0, [sp] - ldr r0, _0202FED0 @ =FUN_0202ff10 - cmp r4, #0 - stm ip, {r0, r5} - beq _0202FEB0 - add lr, ip, #8 - mov r5, #9 -_0202FE98: - ldm r4!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - subs r5, r5, #1 - bne _0202FE98 - ldm r4, {r0, r1} - stm lr, {r0, r1} -_0202FEB0: - mov r2, #0 - add r0, sp, #0 - mov r1, #3 - str r2, [ip, #0xa0] - bl FUN_02027648 - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0202FECC: .4byte 0x0209AF78 -_0202FED0: .4byte FUN_0202ff10 - arm_func_end FUN_0202fe2c - - arm_func_start FUN_0202fed4 -FUN_0202fed4: @ 0x0202FED4 - push {r4, lr} - mov r4, r0 - bl GetDialogBoxField0xC - bl MemFree - mov r0, r4 - bl FUN_02028194 - pop {r4, pc} - arm_func_end FUN_0202fed4 - - arm_func_start FUN_0202fef0 -FUN_0202fef0: @ 0x0202FEF0 - push {r3, lr} - bl GetDialogBoxField0xC - ldr r0, [r0, #0xa0] - cmp r0, #2 - cmpne r0, #4 - movne r0, #1 - moveq r0, #0 - pop {r3, pc} - arm_func_end FUN_0202fef0 - - arm_func_start FUN_0202ff10 -FUN_0202ff10: @ 0x0202FF10 - push {r4, r5, r6, lr} - mov r5, r0 - ldr r4, [r5, #0xc] - ldr r0, [r4, #0xa0] - cmp r0, #3 - addls pc, pc, r0, lsl #2 - pop {r4, r5, r6, pc} -_0202FF2C: @ jump table - b _0202FF3C @ case 0 - b _0202FF54 @ case 1 - pop {r4, r5, r6, pc} @ case 2 - b _0202FF90 @ case 3 -_0202FF3C: - ldrsb r0, [r5, #0x10] - bl FUN_0202810c - cmp r0, #0 - popeq {r4, r5, r6, pc} - mov r0, #1 - str r0, [r4, #0xa0] -_0202FF54: - ldrsb r0, [r5, #0x10] - ldr r6, [r5, #0xc] - bl FUN_02027b1c - ldrsb r0, [r5, #0x10] - ldrh r3, [r6, #0xa4] - mov r1, #4 - mov r2, #2 - bl FUN_02026268 - ldrsb r0, [r5, #0x10] - bl FUN_02027af0 - mov r0, #2 - str r0, [r4, #0xa0] - sub r0, r0, #3 - str r0, [r5, #0xb8] - pop {r4, r5, r6, pc} -_0202FF90: - ldrsb r0, [r5, #0x10] - bl FUN_0202812c - cmp r0, #0 - mvnne r0, #4 - strne r0, [r5, #0xb8] - movne r0, #4 - strne r0, [r4, #0xa0] - pop {r4, r5, r6, pc} - arm_func_end FUN_0202ff10 - - arm_func_start FUN_0202ffb0 -FUN_0202ffb0: @ 0x0202FFB0 - push {r3, r4, r5, lr} - sub sp, sp, #0x10 - mov r5, r0 - mov r0, #0x650 - mov r1, #8 - bl MemAlloc - mov r1, #0x650 - mov r4, r0 - bl MemZero - cmp r5, #0 - ldreq r0, _0203003C @ =0x0209AF94 - add ip, sp, #0 - ldmeq r0, {r0, r1, r2, r3} - stmeq ip, {r0, r1, r2, r3} - ldmne r5, {r0, r1, r2, r3} - stmne ip, {r0, r1, r2, r3} - ldrne r0, _02030040 @ =FUN_02030274 - str r4, [sp, #0xc] - strne r0, [sp] - add r0, sp, #0 - mov r1, #3 - bl FUN_02027648 - strb r0, [r4] - ldrsb r1, [r4] - add r0, r4, #8 - bl FUN_02025e84 - mov r1, #0 - str r1, [r4, #4] - add r0, r4, #0x600 - strh r1, [r0, #0x44] - strh r1, [r0, #0x46] - strh r1, [r0, #0x48] - ldrsb r0, [r4] - add sp, sp, #0x10 - pop {r3, r4, r5, pc} - .align 2, 0 -_0203003C: .4byte 0x0209AF94 -_02030040: .4byte FUN_02030274 - arm_func_end FUN_0202ffb0 -_02030044: - .byte 0x38, 0x40, 0x2D, 0xE9, 0x00, 0x50, 0xA0, 0xE1, 0xBA, 0xE0, 0xFF, 0xEB - .byte 0x00, 0x40, 0xA0, 0xE1, 0xD0, 0x00, 0xD4, 0xE1, 0xC3, 0xE0, 0xFF, 0xEB, 0x08, 0x00, 0x84, 0xE2 - .byte 0x35, 0xD8, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0xB3, 0xE0, 0xFF, 0xEB, 0x45, 0x44, 0xFF, 0xEB - .byte 0x05, 0x00, 0xA0, 0xE1, 0x46, 0xE0, 0xFF, 0xEB, 0x38, 0x80, 0xBD, 0xE8, 0x06, 0x0C, 0x80, 0xE2 - .byte 0xF4, 0x14, 0xD0, 0xE1, 0x01, 0x10, 0x81, 0xE2, 0xB4, 0x14, 0xC0, 0xE1, 0xF4, 0x14, 0xD0, 0xE1 - .byte 0x04, 0x00, 0x51, 0xE3, 0x00, 0x10, 0xA0, 0xA3, 0xB4, 0x14, 0xC0, 0xA1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x06, 0x0C, 0x80, 0xE2, 0xF4, 0x04, 0xD0, 0xE1, 0x01, 0x00, 0x80, 0xE2, 0x00, 0x08, 0xA0, 0xE1 - .byte 0x40, 0x08, 0xA0, 0xE1, 0x04, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xA3, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_020300c0 -FUN_020300c0: @ 0x020300C0 - push {r3, r4, r5, lr} - sub sp, sp, #8 - mov r5, r0 - add ip, sp, #0 - str r1, [sp] - mov r1, ip - add r0, r5, #0xc - mov r4, r3 - str r2, [sp, #4] - bl FUN_02020b60 - ldr r1, _02030108 @ =0x0000C402 - mov r2, r4 - add r0, r5, #0xc - bl FUN_02020bc4 - add r0, r5, #0xc - bl AnalyzeText - add sp, sp, #8 - pop {r3, r4, r5, pc} - .align 2, 0 -_02030108: .4byte 0x0000C402 - arm_func_end FUN_020300c0 -_0203010C: - .byte 0xF8, 0x40, 0x2D, 0xE9 - .byte 0x01, 0x70, 0xA0, 0xE1, 0x02, 0x60, 0xA0, 0xE1, 0x03, 0x50, 0xA0, 0xE1, 0x86, 0xE0, 0xFF, 0xEB - .byte 0x00, 0x40, 0xA0, 0xE1, 0x04, 0x00, 0x94, 0xE5, 0x02, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x50, 0x13 - .byte 0x03, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x84, 0xE2, 0xFF, 0xD7, 0xFF, 0xEB, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x04, 0x00, 0x84, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0xD4, 0xFF, 0xFF, 0xEB, 0x06, 0x1C, 0x84, 0xE2 - .byte 0xF6, 0x24, 0xD1, 0xE1, 0x00, 0x00, 0x52, 0xE1, 0x00, 0x00, 0xA0, 0x03, 0xF8, 0x80, 0xBD, 0x08 - .byte 0x00, 0x50, 0x8D, 0xE5, 0xF4, 0x14, 0xD1, 0xE1, 0x29, 0x00, 0x84, 0xE2, 0x01, 0x2C, 0x80, 0xE2 - .byte 0x52, 0x0F, 0xA0, 0xE3, 0x81, 0x20, 0x00, 0xE1, 0x06, 0x20, 0xA0, 0xE1, 0x07, 0x30, 0xA0, 0xE1 - .byte 0x05, 0x1D, 0xA0, 0xE3, 0x99, 0xC8, 0xFF, 0xEB, 0x06, 0x1C, 0x84, 0xE2, 0x29, 0x00, 0x84, 0xE2 - .byte 0xF4, 0x14, 0xD1, 0xE1, 0x01, 0x2C, 0x80, 0xE2, 0x52, 0x0F, 0xA0, 0xE3, 0x81, 0x20, 0x02, 0xE1 - .byte 0x07, 0x10, 0xA0, 0xE1, 0x08, 0x00, 0x84, 0xE2, 0xF9, 0xD7, 0xFF, 0xEB, 0x06, 0x1C, 0x84, 0xE2 - .byte 0xF4, 0x04, 0xD1, 0xE1, 0x52, 0x2F, 0xA0, 0xE3, 0x00, 0x60, 0xA0, 0xE3, 0x80, 0x42, 0x00, 0xE1 - .byte 0x02, 0x0C, 0x80, 0xE2, 0xBA, 0x76, 0xC0, 0xE1, 0xF4, 0x54, 0xD1, 0xE1, 0x18, 0x30, 0xDD, 0xE5 - .byte 0x04, 0x00, 0xA0, 0xE1, 0x85, 0x42, 0x05, 0xE1, 0x24, 0x61, 0x85, 0xE5, 0xF4, 0x14, 0xD1, 0xE1 - .byte 0x81, 0x42, 0x01, 0xE1, 0x28, 0x31, 0xC1, 0xE5, 0xA3, 0xFF, 0xFF, 0xEB, 0x01, 0x00, 0xA0, 0xE3 - .byte 0xF8, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_020301f4 -FUN_020301f4: @ 0x020301F4 - push {r3, lr} - bl GetDialogBoxField0xC - ldr r0, [r0, #4] - cmp r0, #3 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FUN_020301f4 - - arm_func_start FUN_02030214 -FUN_02030214: @ 0x02030214 - push {r4, lr} - bl GetDialogBoxField0xC - mov r4, r0 - ldr r0, [r4, #4] - cmp r0, #5 - addls pc, pc, r0, lsl #2 - b _02030260 -_02030230: @ jump table - b _02030260 @ case 0 - b _02030248 @ case 1 - b _02030254 @ case 2 - b _02030254 @ case 3 - pop {r4, pc} @ case 4 - pop {r4, pc} @ case 5 -_02030248: - mov r0, #5 - str r0, [r4, #4] - pop {r4, pc} -_02030254: - mov r0, #4 - str r0, [r4, #4] - pop {r4, pc} -_02030260: - add r0, r4, #8 - bl FUN_0202613c - mov r0, #0 - str r0, [r4, #4] - pop {r4, pc} - arm_func_end FUN_02030214 - - arm_func_start FUN_02030274 -FUN_02030274: @ 0x02030274 - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov r5, r0 - ldr r4, [r5, #0xc] - ldr r0, [r4, #4] - cmp r0, #5 - addls pc, pc, r0, lsl #2 - pop {r3, r4, r5, r6, r7, r8, sb, pc} -_02030290: @ jump table - b _020302A8 @ case 0 - b _020302C8 @ case 1 - b _020302E0 @ case 2 - b _02030438 @ case 3 - b _0203056C @ case 4 - b _02030588 @ case 5 -_020302A8: - add r0, r4, #8 - bl FUN_020261d4 - cmp r0, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, pc} - mov r0, #1 - str r0, [r4, #4] - sub r0, r0, #2 - str r0, [r5, #0xb8] -_020302C8: - ldrsb r0, [r5, #0x10] - bl FUN_0202810c - cmp r0, #0 - movne r0, #2 - strne r0, [r4, #4] - pop {r3, r4, r5, r6, r7, r8, sb, pc} -_020302E0: - ldrsb r0, [r5, #0x10] - bl GetDialogBoxField0xC - add r0, r0, #0x600 - ldrsh r1, [r0, #0x46] - ldrsh r0, [r0, #0x44] - cmp r1, r0 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - popeq {r3, r4, r5, r6, r7, r8, sb, pc} - ldrsb r4, [r5, #0x10] - mov r0, r4 - bl GetDialogBoxField0xC - mov r6, r0 - add r3, r6, #0x600 - ldr r1, [r6, #0x20] - ldrsh r2, [r3, #0x4a] - lsl r1, r1, #0x10 - ldr r5, [r6, #0x10] - asr r8, r1, #0x10 - mla r1, r2, r8, r5 - ldr r2, [r6, #0xc] - lsl r7, r1, #0x10 - lsl r2, r2, #0x10 - ldrsh r3, [r3, #0x46] - mov r1, #0x148 - add r5, r6, #0x124 - smulbb r3, r3, r1 - ldr r1, [r5, r3] - add r5, r5, r3 - cmp r1, #1 - asr r1, r2, #0x10 - asr r7, r7, #0x10 - bne _02030388 - mov r5, #0x17 - mov r0, r4 - add r2, r7, r8 - mov r1, #0 - mov r3, #0xe0 - str r5, [sp] - bl FUN_02025d50 - b _020303C4 -_02030388: - mov r2, r7 - add r3, r5, #5 - bl FUN_020300c0 - ldrb r0, [r5, #4] - cmp r0, #0 - beq _020303C4 - cmp r7, r8 - blt _020303C4 - mov r5, #0x17 - mov r0, r4 - sub r2, r7, #2 - mov r1, #0 - mov r3, #0xe0 - str r5, [sp] - bl FUN_02025d50 -_020303C4: - mov r0, r4 - bl FUN_02027af0 - add r0, r6, #0x600 - ldrsh r1, [r0, #0x46] - strh r1, [r0, #0x48] - ldrsh r1, [r0, #0x46] - add r1, r1, #1 - strh r1, [r0, #0x46] - ldrsh r1, [r0, #0x46] - cmp r1, #4 - movge r1, #0 - strhge r1, [r0, #0x46] - add r0, r6, #0x600 - ldrsh r1, [r0, #0x4a] - cmp r1, #3 - movge r1, #3 - strge r1, [r6, #4] - movge r1, #0 - strhge r1, [r0, #0x4c] - popge {r3, r4, r5, r6, r7, r8, sb, pc} - ldr r1, [r6, #0xa0] - ldr r0, [r6, #0x10] - add r2, r1, r8 - mov r1, r8 - sub r0, r2, r0 - bl DivideInt - add r1, r6, #0x600 - strh r0, [r1, #0x4a] - pop {r3, r4, r5, r6, r7, r8, sb, pc} -_02030438: - ldrsb r5, [r5, #0x10] - mov r0, r5 - bl GetDialogBoxField0xC - mov r7, r0 - add r3, r7, #0x600 - ldr r1, [r7, #0x20] - ldrsh r2, [r3, #0x4a] - lsl r1, r1, #0x10 - ldr r6, [r7, #0x10] - asr r8, r1, #0x10 - ldr r1, [r7, #0xc] - mla r6, r2, r8, r6 - ldrsh sb, [r3, #0x4c] - lsl r2, r1, #0x10 - ldrsh ip, [r3, #0x48] - mov r1, #0x148 - add r3, sb, r6 - lsl r3, r3, #0x10 - smulbb r6, ip, r1 - add sb, r7, #0x124 - ldr r1, [sb, r6] - add r6, sb, r6 - cmp r1, #1 - asr r1, r2, #0x10 - asr sb, r3, #0x10 - bne _020304C0 - mov r6, #0x17 - mov r0, r5 - add r2, sb, r8 - mov r1, #0 - mov r3, #0xe0 - str r6, [sp] - bl FUN_02025d50 - b _020304FC -_020304C0: - mov r2, sb - add r3, r6, #5 - bl FUN_020300c0 - ldrb r0, [r6, #4] - cmp r0, #0 - beq _020304FC - cmp sb, r8 - blt _020304FC - mov r6, #0x17 - mov r0, r5 - sub r2, sb, #2 - mov r1, #0 - mov r3, #0xe0 - str r6, [sp] - bl FUN_02025d50 -_020304FC: - add r0, r7, #0x600 - ldrsh r0, [r0, #0x4c] - add r0, r0, r8 - cmp r0, #1 - mov r0, r5 - bne _02030528 - bl FUN_01FF9128 - add r0, r7, #0x600 - ldrsh r1, [r0, #0x4c] - sub r1, r1, #1 - b _02030538 -_02030528: - bl FUN_01FF929C - add r0, r7, #0x600 - ldrsh r1, [r0, #0x4c] - sub r1, r1, #2 -_02030538: - strh r1, [r0, #0x4c] - add r0, r7, #0x600 - ldrsh r2, [r0, #0x4c] - rsb r1, r8, #0 - cmp r2, r1 - movle r1, #3 - strhle r1, [r0, #0x4a] - movle r0, #1 - movgt r0, #0 - cmp r0, #0 - movne r0, #2 - strne r0, [r4, #4] - pop {r3, r4, r5, r6, r7, r8, sb, pc} -_0203056C: - ldrsb r0, [r5, #0x10] - bl FUN_0202836c - ldrsb r0, [r5, #0x10] - bl FUN_02027b1c - mov r0, #5 - str r0, [r4, #4] - pop {r3, r4, r5, r6, r7, r8, sb, pc} -_02030588: - ldrsb r0, [r5, #0x10] - bl FUN_0202812c - cmp r0, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, pc} - mov r1, #0 - add r0, r4, #8 - str r1, [r4, #4] - bl FUN_0202613c - mvn r0, #5 - str r0, [r5, #0xb8] - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_02030274 - - arm_func_start FUN_020305b4 -FUN_020305b4: @ 0x020305B4 - push {r3, r4, lr} - sub sp, sp, #4 - mov r4, r3 - ldr ip, [sp, #0x14] - ldr r3, [sp, #0x10] - str ip, [sp] - bl FUN_0203061c - add r1, r0, #0x100 - str r4, [r0, #0x1a4] - ldrsb r0, [r1, #0xa0] - add sp, sp, #4 - pop {r3, r4, pc} - arm_func_end FUN_020305b4 - - arm_func_start FUN_020305e4 -FUN_020305e4: @ 0x020305E4 - push {r3, r4, lr} - sub sp, sp, #4 - mov r4, r3 - ldr ip, [sp, #0x18] - ldr r3, [sp, #0x14] - str ip, [sp] - bl FUN_0203061c - ldr r2, [sp, #0x10] - str r4, [r0, #0x1a8] - add r1, r0, #0x100 - str r2, [r0, #0x1ac] - ldrsb r0, [r1, #0xa0] - add sp, sp, #4 - pop {r3, r4, pc} - arm_func_end FUN_020305e4 - - arm_func_start FUN_0203061c -FUN_0203061c: @ 0x0203061C - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x28 - mov r8, r0 - mov r7, r1 - mov r0, #0x1c8 - mov r1, #8 - mov r6, r2 - mov r5, r3 - bl MemAlloc - mov r4, r0 - mov r0, #0 - str r0, [r4, #0x1a4] - str r0, [r4, #0x1a8] - str r0, [r4, #0x1ac] - str r0, [r4, #0x1b8] - mov r0, #1 - cmp r8, #0 - strb r0, [r4, #0x1c4] - addne ip, sp, #0x18 - ldmne r8, {r0, r1, r2, r3} - stmne ip, {r0, r1, r2, r3} - ldrne r0, _02030774 @ =FUN_02030ae8 - strne r0, [sp, #0x18] - bne _02030690 - ldr r0, _02030778 @ =0x0209AFA4 - add r8, sp, #0x18 - ldm r0, {r0, r1, r2, r3} - stm r8, {r0, r1, r2, r3} - orr r7, r7, #0x300000 -_02030690: - tst r7, #0x200000 - ldrbne r1, [sp, #0x1c] - ldrbne r0, [sp, #0x1e] - str r4, [sp, #0x24] - subne r0, r1, r0 - strbne r0, [sp, #0x1c] - tst r7, #0x100000 - ldrbne r1, [sp, #0x1d] - ldrbne r0, [sp, #0x1f] - subne r0, r1, r0 - strbne r0, [sp, #0x1d] - ldr r0, _02030774 @ =FUN_02030ae8 - cmp r6, #0 - str r0, [r4] - str r7, [r4, #0x104] - beq _020306F0 - add ip, r4, #0x108 - mov r8, #9 -_020306D8: - ldm r6!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - subs r8, r8, #1 - bne _020306D8 - ldm r6, {r0, r1} - stm ip, {r0, r1} -_020306F0: - mov r2, #0 - str r2, [r4, #0x1bc] - strb r2, [r4, #0x1c0] - strb r2, [r4, #0x1c1] - strb r2, [r4, #0x1c2] - str r2, [r4, #0x1b0] - str r2, [r4, #0x1b4] - add r0, sp, #0x18 - mov r1, #3 - strb r2, [r4, #0x1c3] - bl FUN_02027648 add r1, sp, #8 - strb r0, [r4, #0x1a0] - bl FUN_02028284 - mov r1, #0x100 - strh r1, [r4, #0xfc] - tst r7, #0x8000 - moveq r5, #0 - streq r5, [sp, #0x40] - strh r1, [r4, #0xfe] - add r0, r4, #0x100 - strh r1, [r0] - strh r1, [r0, #2] - ldr r6, [sp, #0x40] - add r3, sp, #8 - mov r1, r7 - add r0, r4, #4 - add r2, r4, #0x108 - stm sp, {r5, r6} - bl FUN_02031af8 - mov r0, r4 - add sp, sp, #0x28 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02030774: .4byte FUN_02030ae8 -_02030778: .4byte 0x0209AFA4 - arm_func_end FUN_0203061c - - arm_func_start FUN_0203077c -FUN_0203077c: @ 0x0203077C - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - strb r4, [r0, #0x1c3] - ldr r1, [r0, #0x104] - tst r4, #0xff - orrne r1, r1, #0x400000 - biceq r1, r1, #0x400000 - str r1, [r0, #0x104] - pop {r4, pc} - arm_func_end FUN_0203077c - - arm_func_start FUN_020307a4 -FUN_020307a4: @ 0x020307A4 - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - strb r4, [r0, #0x1c4] - pop {r4, pc} - arm_func_end FUN_020307a4 - - arm_func_start FUN_020307b8 -FUN_020307b8: @ 0x020307B8 - push {r3, lr} - bl GetDialogBoxField0xC - mov r1, #1 - str r1, [r0, #0x1bc] - mov r1, #0 - strb r1, [r0, #0x1c0] - strb r1, [r0, #0x1c1] - ldr r1, [r0, #0x104] - bic r1, r1, #0x800000 - str r1, [r0, #0x104] - add r0, r0, #4 - bl FUN_02032984 - pop {r3, pc} - arm_func_end FUN_020307b8 - - arm_func_start FUN_020307ec -FUN_020307ec: @ 0x020307EC - push {r3, r4, r5, lr} - mov r5, r0 - bl GetDialogBoxField0xC - mov r4, r0 - mov r0, r5 - bl GetDialogBoxField0xC - ldr r0, [r0, #0x1bc] - cmp r0, #7 - moveq r0, #1 - movne r0, #0 - tst r0, #0xff - beq _02030828 - mov r0, r5 - bl FUN_020307b8 - pop {r3, r4, r5, pc} -_02030828: - ldr r0, [r4, #0x1bc] - cmp r0, #6 - moveq r0, #0 - streq r0, [r4, #0x1bc] - pop {r3, r4, r5, pc} - arm_func_end FUN_020307ec - - arm_func_start FUN_0203083c -FUN_0203083c: @ 0x0203083C - push {r3, lr} - bl GetDialogBoxField0xC - mov r1, #1 - strb r1, [r0, #0x1c2] - pop {r3, pc} - arm_func_end FUN_0203083c - - arm_func_start FUN_02030850 -FUN_02030850: @ 0x02030850 - push {r3, r4, r5, lr} - mov r5, r0 - bl FUN_0202836c - mov r0, r5 - bl FUN_020288dc - mov r0, r5 - bl FUN_0202812c - mov r0, r5 - bl GetDialogBoxField0xC - mov r4, r0 - mov r0, r5 - bl FUN_02028194 - mov r0, r4 - bl MemFree - pop {r3, r4, r5, pc} - arm_func_end FUN_02030850 - - arm_func_start FUN_0203088c -FUN_0203088c: @ 0x0203088C - push {r3, lr} - bl GetDialogBoxField0xC - mov r1, #5 - str r1, [r0, #0x1bc] - pop {r3, pc} - arm_func_end FUN_0203088c - - arm_func_start FUN_020308a0 -FUN_020308a0: @ 0x020308A0 - push {r3, r4, r5, lr} - mov r5, r0 - bl GetDialogBoxField0xC - mov r4, r0 - mov r0, r5 - bl FUN_02028194 - mov r0, r4 - bl MemFree - pop {r3, r4, r5, pc} - arm_func_end FUN_020308a0 - - arm_func_start FUN_020308c4 -FUN_020308c4: @ 0x020308C4 - push {r3, lr} - bl GetDialogBoxField0xC - ldr r0, [r0, #0x1bc] - cmp r0, #6 - cmpne r0, #7 - movne r0, #1 - moveq r0, #0 - pop {r3, pc} - arm_func_end FUN_020308c4 - - arm_func_start FUN_020308e4 -FUN_020308e4: @ 0x020308E4 - push {r3, lr} - bl GetDialogBoxField0xC - ldrb r1, [r0, #0x1c0] - cmp r1, #0 - ldrbne r0, [r0, #0x1c1] - cmpne r0, #0 - movne r0, #1 - moveq r0, #0 - pop {r3, pc} - arm_func_end FUN_020308e4 - - arm_func_start FUN_02030908 -FUN_02030908: @ 0x02030908 - push {r3, lr} - bl GetDialogBoxField0xC - ldrb r1, [r0, #0x1c0] - cmp r1, #0 - beq _02030938 - ldrb r1, [r0, #0x1c1] - cmp r1, #0 - mvnne r0, #0 - popne {r3, pc} - add r0, r0, #4 - bl FUN_02032558 - pop {r3, pc} -_02030938: - mvn r0, #0 - pop {r3, pc} - arm_func_end FUN_02030908 - - arm_func_start FUN_02030940 -FUN_02030940: @ 0x02030940 - push {r3, lr} - bl GetDialogBoxField0xC - ldrb r1, [r0, #0x1c0] - cmp r1, #0 - beq _02030970 - ldrb r1, [r0, #0x1c1] - cmp r1, #0 - mvnne r0, #0 - popne {r3, pc} - add r0, r0, #4 - bl FUN_02032578 - pop {r3, pc} -_02030970: - mvn r0, #0 - pop {r3, pc} - arm_func_end FUN_02030940 - - arm_func_start FUN_02030978 -FUN_02030978: @ 0x02030978 - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r1 - mov r5, r2 - mov r4, r3 - bl GetDialogBoxField0xC - mov r1, r0 - strh r5, [r1, #0xfc] - strh r4, [r1, #0xfe] - mov r0, r7 - mov r2, r6 - mov r3, r5 - add r1, r1, #4 - str r4, [sp] - bl FUN_020289b8 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_02030978 - - arm_func_start FUN_020309b8 -FUN_020309b8: @ 0x020309B8 - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #0xc - mov r8, r0 - mov r7, r1 - mov r6, r2 - mov r5, r3 - bl GetDialogBoxField0xC - mov r1, r0 - strh r6, [r1, #0xfc] - ldr r4, [sp, #0x28] - strh r5, [r1, #0xfe] - add ip, r1, #0x100 - ldr lr, [sp, #0x2c] - strh r4, [ip] - strh lr, [ip, #2] - str r5, [sp] - mov r0, r8 - add r1, r1, #4 - mov r2, r7 - mov r3, r6 - stmib sp, {r4, lr} - bl FUN_02028a08 - add sp, sp, #0xc - pop {r3, r4, r5, r6, r7, r8, pc} - arm_func_end FUN_020309b8 - - arm_func_start FUN_02030a18 -FUN_02030a18: @ 0x02030A18 - push {r3, lr} - bl GetDialogBoxField0xC - add r0, r0, #4 - bl FUN_02032568 - pop {r3, pc} - arm_func_end FUN_02030a18 - - arm_func_start FUN_02030a2c -FUN_02030a2c: @ 0x02030A2C - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - strh r4, [r0, #0x20] - pop {r4, pc} - arm_func_end FUN_02030a2c - - arm_func_start FUN_02030a40 -FUN_02030a40: @ 0x02030A40 - push {r3, lr} - bl GetDialogBoxField0xC - ldr r0, [r0, #0x1b0] - pop {r3, pc} - arm_func_end FUN_02030a40 - - arm_func_start FUN_02030a50 -FUN_02030a50: @ 0x02030A50 - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - str r4, [r0, #0xc0] - pop {r4, pc} - arm_func_end FUN_02030a50 - - arm_func_start FUN_02030a64 -FUN_02030a64: @ 0x02030A64 - push {r3, lr} - bl GetDialogBoxField0xC - ldr r0, [r0, #0xc0] - pop {r3, pc} - arm_func_end FUN_02030a64 - - arm_func_start FUN_02030a74 -FUN_02030a74: @ 0x02030A74 - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - mov r1, r4 - add r0, r0, #4 - bl FUN_02031c74 - pop {r4, pc} - arm_func_end FUN_02030a74 - - arm_func_start FUN_02030a90 -FUN_02030a90: @ 0x02030A90 - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - mov r1, r4 - add r0, r0, #4 - bl FUN_02031c84 - pop {r4, pc} - arm_func_end FUN_02030a90 - - arm_func_start FUN_02030aac -FUN_02030aac: @ 0x02030AAC - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - strb r4, [r0, #0xf8] - pop {r4, pc} - arm_func_end FUN_02030aac - - arm_func_start FUN_02030ac0 -FUN_02030ac0: @ 0x02030AC0 - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - str r4, [r0, #0x1b4] - pop {r4, pc} - arm_func_end FUN_02030ac0 - - arm_func_start FUN_02030ad4 -FUN_02030ad4: @ 0x02030AD4 - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - str r4, [r0, #0x1b8] - pop {r4, pc} - arm_func_end FUN_02030ad4 - - arm_func_start FUN_02030ae8 -FUN_02030ae8: @ 0x02030AE8 - push {r4, r5, r6, r7, lr} - sub sp, sp, #0x44 - mov r7, r0 - ldr r4, [r7, #0xc] - mov r5, #0 - str r5, [r4, #0x1b0] - ldr r0, [r4, #0x1bc] - cmp r0, #5 - addls pc, pc, r0, lsl #2 - b _02030E88 -_02030B10: @ jump table - b _02030B28 @ case 0 - b _02030B40 @ case 1 - b _02030B48 @ case 2 - b _02030BA0 @ case 3 - b _02030E0C @ case 4 - b _02030E5C @ case 5 -_02030B28: - ldrsb r0, [r7, #0x10] - bl FUN_0202810c - cmp r0, #0 - beq _02030E88 - mov r0, #2 - str r0, [r4, #0x1bc] -_02030B40: - mov r0, #2 - str r0, [r4, #0x1bc] -_02030B48: - mov r0, r7 - bl FUN_02030e94 - ldr r0, [r4, #0x104] - tst r0, #0x800000 - beq _02030B80 - mov r0, #7 - str r0, [r4, #0x1bc] - mov r1, #1 - mov r0, #0 - strb r1, [r4, #0x1c0] - strb r0, [r4, #0x1c1] - sub r0, r0, #4 - str r0, [r7, #0xb8] - b _02030E88 -_02030B80: - mov r1, #3 - mov r0, #0 - str r1, [r4, #0x1bc] - strb r0, [r4, #0x1c0] - strb r0, [r4, #0x1c1] - sub r0, r0, #1 - str r0, [r7, #0xb8] - b _02030E88 -_02030BA0: - ldr r2, [r4, #0x1b4] - ldrb r6, [r4, #0x1c2] - cmp r2, #0 - beq _02030BF0 - add r0, sp, #0x1c - add r1, sp, #0x18 - blx r2 - ldrsb r0, [r7, #0x10] - bl FUN_02028324 - cmp r0, #0 - moveq r3, #1 - movne r3, r5 - ldr ip, [sp, #0x1c] - add r2, sp, #0x20 - add r0, r4, #4 - add r1, r4, #0x1b0 - and r3, r3, #0xff - str ip, [sp] - bl FUN_02031e80 - b _02030C18 -_02030BF0: - ldrsb r0, [r7, #0x10] - bl FUN_02028324 - cmp r0, #0 - moveq r3, #1 - movne r3, r5 - add r2, sp, #0x20 - add r0, r4, #4 - add r1, r4, #0x1b0 - and r3, r3, #0xff - bl FUN_02031c98 -_02030C18: - orr r6, r6, r0 - mov r0, #0 - strb r0, [r4, #0x1c2] - ldr r2, [r4, #0x1b4] - cmp r2, #0 - beq _02030CAC - add r0, sp, #0x14 - add r1, sp, #0x10 - blx r2 - ldr r0, [r4, #0x1b0] - cmp r0, #0 - bne _02030CAC - ldr r0, [r4, #0x104] - tst r0, #1 - beq _02030CAC - mov r3, #0 - str r3, [sp] - mov r0, #1 - str r0, [sp, #4] - ldr r0, [sp, #0x14] - ldr r2, _02030E90 @ =0x00000408 - str r0, [sp, #8] - ldr ip, [sp, #0x10] - add r1, sp, #0x20 - add r0, r4, #4 - str ip, [sp, #0xc] - bl FUN_020322b0 - movs r1, r0 - bmi _02030CAC - ldr r2, [sp, #0x14] - add r0, r4, #4 - bl FUN_020326f8 - ldr r0, [r4, #0x1b0] - mov r6, #1 - orr r0, r0, #1 - mov r5, r6 - str r0, [r4, #0x1b0] -_02030CAC: - ldrb r0, [r4, #0xf8] - cmp r0, #0 - bne _02030CC4 - ldr r0, [r4, #0x1b0] - cmp r0, #0 - bne _02030CD8 -_02030CC4: - add r2, sp, #0x20 - add r0, r4, #4 - add r1, r4, #0x1b0 - bl FUN_02033758 - orr r6, r6, r0 -_02030CD8: - add r0, r4, #4 - bl FUN_02032578 - mov r2, r0 - ldr r1, [r4, #0x1b0] - add r0, r4, #4 - mov r3, #0 - bl FUN_020323f8 - orrs r0, r6, r0 - beq _02030D04 - mov r0, r7 - bl FUN_02030e94 -_02030D04: - ldr r0, [r4, #0x1b0] - tst r0, #1 - beq _02030D74 - add r0, r4, #4 - bl IsMenuOptionActive - cmp r0, #0 - beq _02030DB0 - ldr r0, [r4, #0x104] - tst r0, #0x80000000 - bne _02030D38 - add r0, r4, #4 - mov r1, #0 - bl FUN_02032960 -_02030D38: - mov r1, #1 - mov r0, #0 - strb r1, [r4, #0x1c0] - strb r0, [r4, #0x1c1] - sub r0, r0, #4 - str r0, [r7, #0xb8] - mov r0, #4 - str r0, [r4, #0x1bc] - ldr r2, [r4, #0x1b8] - cmp r2, #0 - beq _02030DB0 - ldrsb r0, [r7, #0x10] - mov r1, r5 - blx r2 - b _02030DB0 -_02030D74: - tst r0, #2 - beq _02030DB0 - ldrb r0, [r4, #0x1c4] - cmp r0, #0 - beq _02030D94 - add r0, r4, #4 - mov r1, #1 - bl FUN_02032960 -_02030D94: - mov r0, #1 - strb r0, [r4, #0x1c0] - strb r0, [r4, #0x1c1] - sub r0, r0, #6 - str r0, [r7, #0xb8] - mov r0, #4 - str r0, [r4, #0x1bc] -_02030DB0: - ldrsh r0, [r4, #0xfe] - cmp r0, #0x100 - str r0, [sp] - bne _02030DD8 - ldrsb r0, [r7, #0x10] - ldrsh r3, [r4, #0xfc] - ldr r2, [r7, #0xbc] - add r1, r4, #4 - bl FUN_020289b8 - b _02030E00 -_02030DD8: - add r0, r4, #0x100 - ldrsh r2, [r0] - add r1, r4, #4 - str r2, [sp, #4] - ldrsh r0, [r0, #2] - str r0, [sp, #8] - ldrsb r0, [r7, #0x10] - ldrsh r3, [r4, #0xfc] - ldr r2, [r7, #0xbc] - bl FUN_02028a08 -_02030E00: - ldr r0, [r4, #0x1bc] - cmp r0, #4 - bne _02030E88 -_02030E0C: - add r0, r4, #4 - bl FUN_02032070 - cmp r0, #0 - bne _02030E88 - ldrb r0, [r4, #0x1c1] - cmp r0, #0 - beq _02030E34 - ldrb r0, [r4, #0x1c3] - cmp r0, #0 - beq _02030E54 -_02030E34: - ldr r0, [r4, #0x104] - tst r0, #0x400000 - beq _02030E54 - mov r0, r7 - bl FUN_02030e94 - mov r0, #7 - str r0, [r4, #0x1bc] - b _02030E88 -_02030E54: - mov r0, #5 - str r0, [r4, #0x1bc] -_02030E5C: - ldrsb r0, [r7, #0x10] - bl FUN_0202812c - cmp r0, #0 - beq _02030E88 - ldrb r0, [r4, #0x1c1] - cmp r0, #0 - mvnne r0, #4 - mvneq r0, #3 - str r0, [r7, #0xb8] - mov r0, #6 - str r0, [r4, #0x1bc] -_02030E88: - add sp, sp, #0x44 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_02030E90: .4byte 0x00000408 - arm_func_end FUN_02030ae8 - - arm_func_start FUN_02030e94 -FUN_02030e94: @ 0x02030E94 - push {r3, r4, r5, lr} - mov r5, r0 - ldrsb r0, [r5, #0x10] - ldr r4, [r5, #0xc] - bl FUN_02027b1c - ldr r2, [r4, #0x1a8] - cmp r2, #0 - beq _02030EC4 - ldrsb r0, [r5, #0x10] - ldr r1, [r4, #0x1ac] - blx r2 - b _02030ED8 -_02030EC4: - ldr r1, [r4, #0x1a4] - cmp r1, #0 - beq _02030ED8 - ldrsb r0, [r5, #0x10] - blx r1 -_02030ED8: - ldrsb r1, [r5, #0x10] - add r0, r4, #4 - bl FUN_0202a03c - ldrsb r0, [r5, #0x10] - bl FUN_02027af0 - pop {r3, r4, r5, pc} - arm_func_end FUN_02030e94 - - arm_func_start FUN_02030ef0 -FUN_02030ef0: @ 0x02030EF0 - push {r3, r4, r5, lr} - mov r5, r0 - bl GetDialogBoxField0xC - mov r4, r0 - mov r0, #1 - mov r2, #0 - strb r0, [r4, #0x1c0] - mov r0, r5 - sub r1, r2, #4 - strb r2, [r4, #0x1c1] - bl FUN_0202830c - mov r0, #4 - str r0, [r4, #0x1bc] - pop {r3, r4, r5, pc} - arm_func_end FUN_02030ef0 - - arm_func_start FUN_02030f28 -FUN_02030f28: @ 0x02030F28 - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - mov r1, r4 - add r0, r0, #4 - bl FUN_02032960 - pop {r4, pc} - arm_func_end FUN_02030f28 - - arm_func_start FUN_02030f44 -FUN_02030f44: @ 0x02030F44 - push {r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #0x28 - sub sp, sp, #0x400 - mov r6, r0 - mov sl, r1 - mov r0, #0x1b4 - mov r1, #8 - mov sb, r2 - mov r8, r3 - bl MemAlloc - mov r5, r0 - cmp r6, #0 - ldreq r0, _02031114 @ =0x0209AFB4 - add r4, sp, #0x18 - ldmeq r0, {r0, r1, r2, r3} - stmeq r4, {r0, r1, r2, r3} - ldmne r6, {r0, r1, r2, r3} - stmne r4, {r0, r1, r2, r3} - ldrne r0, _02031118 @ =FUN_0203123c - orr sl, sl, #0x8000 - strne r0, [sp, #0x18] - ldrb r0, [sp, #0x1e] - orreq sl, sl, #0x300000 - str r5, [sp, #0x24] - cmp r0, #0 - bne _02031000 - mov r7, #0 - mov r6, r7 - add r4, sp, #0x28 - b _02030FE0 -_02030FBC: - mov r0, r4 - mov r1, r6 - blx r8 - cmp r0, #0 - beq _02030FDC - bl FUN_020265a8 - cmp r0, r7 - movgt r7, r0 -_02030FDC: - add r6, r6, #1 -_02030FE0: - ldr r0, [sp, #0x448] - cmp r6, r0 - blt _02030FBC - mov r0, sl - mov r1, sb - add r2, r7, #0x10 - bl FUN_02031a5c - strb r0, [sp, #0x1e] -_02031000: - ldrb r0, [sp, #0x1f] - add r2, sp, #0x400 - add r3, sp, #0x400 - cmp r0, #0 - add r2, r2, #0x48 - bne _02031030 - add r3, r3, #0x4c - mov r0, sl - mov r1, sb - bl FUN_02031aa4 - strb r0, [sp, #0x1f] - b _02031040 -_02031030: - add r3, r3, #0x4c - mov r0, sl - mov r1, sb - bl FUN_02031aa4 -_02031040: - tst sl, #0x200000 - ldrbne r1, [sp, #0x1c] - ldrbne r0, [sp, #0x1e] - subne r0, r1, r0 - strbne r0, [sp, #0x1c] - tst sl, #0x100000 - ldrbne r1, [sp, #0x1d] - ldrbne r0, [sp, #0x1f] - subne r0, r1, r0 - strbne r0, [sp, #0x1d] - ldr r0, _02031118 @ =FUN_0203123c - cmp sb, #0 - str r0, [r5] - str sl, [r5, #0xfc] - beq _0203109C - add r6, r5, #0x100 - mov r4, #9 -_02031084: - ldm sb!, {r0, r1, r2, r3} - stm r6!, {r0, r1, r2, r3} - subs r4, r4, #1 - bne _02031084 - ldm sb, {r0, r1} - stm r6, {r0, r1} -_0203109C: - mov r2, #0 - str r2, [r5, #0x18c] - str r2, [r5, #0x190] - str r8, [r5, #0x198] - str r2, [r5, #0x19c] - strb r2, [r5, #0x1a0] - strb r2, [r5, #0x1a1] - str r2, [r5, #0x1a4] - str r2, [r5, #0x1a8] - str r2, [r5, #0x1ac] - add r0, sp, #0x18 - mov r1, #3 - strb r2, [r5, #0x1b0] - bl FUN_02027648 - add r1, sp, #8 - mov r6, r0 - bl FUN_02028284 - ldr r0, [sp, #0x448] - add r3, sp, #8 - str r0, [sp] - ldr r4, [sp, #0x44c] - mov r1, sl - add r0, r5, #4 - add r2, r5, #0x100 - str r4, [sp, #4] - bl FUN_02031af8 - mov r0, r6 - add sp, sp, #0x28 - add sp, sp, #0x400 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_02031114: .4byte 0x0209AFB4 -_02031118: .4byte FUN_0203123c - arm_func_end FUN_02030f44 - - arm_func_start FUN_0203111c -FUN_0203111c: @ 0x0203111C - push {r4, lr} - bl GetDialogBoxField0xC - mov r4, r0 - mov r0, #1 - str r0, [r4, #0x19c] - mov r0, #0 - strb r0, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - str r0, [r4, #0x1a4] - ldr r0, [r4, #0xfc] - bic r0, r0, #0x800000 - str r0, [r4, #0xfc] - bl FUN_0203c984 - add r0, r4, #4 - bl FUN_02032984 - pop {r4, pc} - arm_func_end FUN_0203111c - - arm_func_start FUN_0203115c -FUN_0203115c: @ 0x0203115C - push {r3, lr} - bl GetDialogBoxField0xC - ldr r1, [r0, #0x19c] - cmp r1, #3 - moveq r1, #2 - streq r1, [r0, #0x19c] - bl FUN_0203c984 - pop {r3, pc} - arm_func_end FUN_0203115c - - arm_func_start FUN_0203117c -FUN_0203117c: @ 0x0203117C - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - mov r1, r4 - add r0, r0, #4 - bl FUN_0203271c - pop {r4, pc} - arm_func_end FUN_0203117c - - arm_func_start FUN_02031198 -FUN_02031198: @ 0x02031198 - push {r4, lr} - mov r4, r0 - bl GetDialogBoxField0xC - bl MemFree - mov r0, r4 - bl FUN_02028194 - pop {r4, pc} - arm_func_end FUN_02031198 - - arm_func_start FUN_020311b4 -FUN_020311b4: @ 0x020311B4 - push {r3, lr} - bl GetDialogBoxField0xC - ldr r0, [r0, #0x19c] - cmp r0, #6 - cmpne r0, #7 - movne r0, #1 - moveq r0, #0 - pop {r3, pc} - arm_func_end FUN_020311b4 - - arm_func_start FUN_020311d4 -FUN_020311d4: @ 0x020311D4 - push {r3, lr} - bl GetDialogBoxField0xC - add r0, r0, #4 - bl FUN_02032578 - pop {r3, pc} - arm_func_end FUN_020311d4 - - arm_func_start FUN_020311e8 -FUN_020311e8: @ 0x020311E8 - push {r3, lr} - bl GetDialogBoxField0xC - ldrb r1, [r0, #0x1a0] - cmp r1, #0 - beq _02031218 - ldrb r1, [r0, #0x1a1] - cmp r1, #0 - mvnne r0, #0 - popne {r3, pc} - add r0, r0, #4 - bl FUN_02032578 - pop {r3, pc} -_02031218: - mvn r0, #0 - pop {r3, pc} - arm_func_end FUN_020311e8 - - arm_func_start FUN_02031220 -FUN_02031220: @ 0x02031220 - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - mov r1, r4 - add r0, r0, #4 - bl FUN_02032684 - pop {r4, pc} - arm_func_end FUN_02031220 - - arm_func_start FUN_0203123c -FUN_0203123c: @ 0x0203123C - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0x30 - mov r7, r0 - ldrsb r0, [r7, #0x10] - ldr r4, [r7, #0xc] - bl FUN_02028354 - cmp r0, #3 - moveq r1, #1 - movne r1, #0 - ldr r0, [r4, #0x19c] - and r5, r1, #0xff - cmp r0, #9 - addls pc, pc, r0, lsl #2 - b _02031714 -_02031274: @ jump table - b _0203129C @ case 0 - b _020312B4 @ case 1 - b _020312F0 @ case 2 - b _02031350 @ case 3 - b _020316A4 @ case 4 - b _020316E8 @ case 5 - b _02031714 @ case 6 - b _02031714 @ case 7 - b _020315D4 @ case 8 - b _0203163C @ case 9 -_0203129C: - ldrsb r0, [r7, #0x10] - bl FUN_0202810c - cmp r0, #0 - beq _02031714 - mov r0, #2 - str r0, [r4, #0x19c] -_020312B4: - ldr r0, [r4, #0x19c] - cmp r0, #1 - bne _020312F0 - ldrb r0, [r4, #0x1b0] - cmp r0, #0 - beq _020312D4 - mov r0, r7 - bl FUN_0203175c -_020312D4: - ldrb r0, [r7, #8] - bl FUN_020287c4 - ldrsb r0, [r7, #0x10] - bl FUN_02027af0 - mov r0, #2 - str r0, [r4, #0x19c] - b _02031714 -_020312F0: - mov r0, r7 - bl FUN_0203175c - ldr r0, [r4, #0xfc] - tst r0, #0x800000 - beq _0203132C - mov r0, #7 - str r0, [r4, #0x19c] - mov r1, #1 - mov r0, #0 - strb r1, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - str r0, [r4, #0x1a4] - sub r0, r0, #4 - str r0, [r7, #0xb8] - b _02031714 -_0203132C: - mov r1, #3 - mov r0, #0 - str r1, [r4, #0x19c] - strb r0, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - str r0, [r4, #0x1a4] - sub r0, r0, #1 - str r0, [r7, #0xb8] - b _02031714 -_02031350: - add r1, sp, #8 - add r2, sp, #0xc - add r0, r4, #4 - mov r3, #1 - bl FUN_02031c98 - ldr r1, [sp, #8] - mov r6, r0 - cmp r1, #0 - bne _020313DC - ldr r0, [r4, #0xfc] - tst r0, #1 - beq _020313DC - mov r3, #0 - ldr r2, _02031758 @ =0x00000408 - add r1, sp, #0xc - str r3, [sp] - mov ip, #1 - add r0, r4, #4 - str ip, [sp, #4] - bl FUN_02032160 - movs r1, r0 - bmi _020313C4 - add r0, r4, #4 - bl FUN_02032684 - ldr r0, [sp, #8] - mov r6, #1 - orr r0, r0, #1 - str r0, [sp, #8] - b _020313F0 -_020313C4: - add r1, sp, #8 - add r2, sp, #0xc - add r0, r4, #4 - bl FUN_02033758 - orr r6, r6, r0 - b _020313F0 -_020313DC: - cmp r1, #4 - cmpne r1, #8 - cmpne r1, #0xc - beq _020313F0 - bl FUN_0203c984 -_020313F0: - cmp r6, #0 - beq _02031400 - mov r0, r7 - bl FUN_0203175c -_02031400: - add r0, r4, #4 - bl FUN_02032578 - mov r2, r0 - ldr r1, [sp, #8] - add r0, r4, #4 - mov r3, #0 - bl FUN_020323f8 - ldr r1, [sp, #8] - tst r1, #1 - beq _0203148C - add r0, r4, #4 - bl IsMenuOptionActive - cmp r0, #0 - beq _0203147C - ldr r0, [r4, #0xfc] - tst r0, #0x80000000 - bne _02031450 - add r0, r4, #4 - mov r1, #0 - bl FUN_02032960 -_02031450: - mov r1, #1 - mov r0, #0 - strb r1, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - ldr r1, [sp, #8] - sub r0, r0, #4 - str r1, [r4, #0x1a4] - str r0, [r7, #0xb8] - mov r0, #4 - str r0, [r4, #0x19c] - b _020315C4 -_0203147C: - add r0, r4, #4 - mov r1, #2 - bl FUN_02032960 - b _020315C4 -_0203148C: - tst r1, #2 - beq _020314C8 - add r0, r4, #4 - mov r1, #1 - bl FUN_02032960 - mov r0, #1 - strb r0, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - ldr r1, [sp, #8] - sub r0, r0, #6 - str r1, [r4, #0x1a4] - str r0, [r7, #0xb8] - mov r0, #4 - str r0, [r4, #0x19c] - b _020315C4 -_020314C8: - tst r1, #0x1000 - beq _02031518 - ldr r0, [r4, #0xfc] - tst r0, #0x2000 - beq _02031518 - add r0, r4, #4 - mov r1, #0 - bl FUN_02032960 - mov r2, #1 - mov r0, #0 - strb r2, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - ldr r1, [sp, #8] - sub r0, r0, #4 - str r1, [r4, #0x1a4] - strb r2, [r4, #0x1b1] - str r0, [r7, #0xb8] - mov r0, #8 - str r0, [r4, #0x19c] - b _020315C4 -_02031518: - tst r1, #0x2000 - beq _02031568 - ldr r0, [r4, #0xfc] - tst r0, #0x4000 - beq _02031568 - add r0, r4, #4 - mov r1, #0 - bl FUN_02032960 - mov r2, #1 - mov r0, #0 - strb r2, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - ldr r1, [sp, #8] - sub r0, r0, #4 - str r1, [r4, #0x1a4] - strb r2, [r4, #0x1b1] - str r0, [r7, #0xb8] - mov r0, #9 - str r0, [r4, #0x19c] - b _020315C4 -_02031568: - tst r1, #0x200 - ldrne r0, [r4, #0x18c] - cmpne r0, #0 - add r0, r4, #4 - beq _02031590 - mov r1, #5 - bl FUN_02032960 - ldr r0, [r4, #0x18c] - blx r0 - b _020315C4 -_02031590: - bl FUN_0203250c - cmp r0, #0 - beq _020315C4 - mov r1, #1 - mov r0, #0 - strb r1, [r4, #0x1a0] - strb r0, [r4, #0x1a1] - ldr r1, [sp, #8] - sub r0, r0, #4 - str r1, [r4, #0x1a4] - str r0, [r7, #0xb8] - mov r0, #4 - str r0, [r4, #0x19c] -_020315C4: - ldrsb r0, [r7, #0x10] - add r1, r4, #4 - bl FUN_02028948 - b _02031714 -_020315D4: - add r0, r4, #4 - bl FUN_02032070 - cmp r0, #0 - beq _020315F0 - mov r0, r7 - bl FUN_0203175c - b _02031714 -_020315F0: - ldrb r0, [r4, #0x1b1] - cmp r0, #0 - movne r0, #0 - strbne r0, [r4, #0x1b1] - movne r0, #1 - strbne r0, [r4, #0x1b0] - ldr r3, [r4, #0x174] - cmp r3, #0 - beq _02031714 - mov r0, #0 - mov r1, r0 - mov r2, r0 - blx r3 - ldrb r0, [r4, #0x1b0] - cmp r0, #0 - beq _02031714 - mov r0, r7 - bl FUN_0203175c - b _02031714 -_0203163C: - add r0, r4, #4 - bl FUN_02032070 - cmp r0, #0 - beq _02031658 - mov r0, r7 - bl FUN_0203175c - b _02031714 -_02031658: - ldrb r0, [r4, #0x1b1] - cmp r0, #0 - movne r0, #0 - strbne r0, [r4, #0x1b1] - movne r0, #1 - strbne r0, [r4, #0x1b0] - ldr r3, [r4, #0x17c] - cmp r3, #0 - beq _02031714 - mov r0, #0 - mov r1, r0 - mov r2, r0 - blx r3 - ldrb r0, [r4, #0x1b0] - cmp r0, #0 - beq _02031714 - mov r0, r7 - bl FUN_0203175c - b _02031714 -_020316A4: - add r0, r4, #4 - bl FUN_02032070 - cmp r0, #0 - bne _02031714 - ldrb r0, [r4, #0x1a1] - cmp r0, #0 - bne _020316E0 - ldr r0, [r4, #0xfc] - tst r0, #0x400000 - beq _020316E0 - mov r0, r7 - bl FUN_0203175c - mov r0, #7 - str r0, [r4, #0x19c] - b _02031714 -_020316E0: - mov r0, #5 - str r0, [r4, #0x19c] -_020316E8: - ldrsb r0, [r7, #0x10] - bl FUN_0202812c - cmp r0, #0 - beq _02031714 - ldrb r0, [r4, #0x1a1] - cmp r0, #0 - mvnne r0, #4 - mvneq r0, #3 - str r0, [r7, #0xb8] - mov r0, #6 - str r0, [r4, #0x19c] -_02031714: - mov r0, #0 - strb r0, [r4, #0x1b0] - cmp r5, #0 - beq _02031740 - ldr r0, [r4, #0x19c] - cmp r0, #1 - bne _02031740 - mov r0, r7 - bl FUN_0203175c - mov r0, #1 - strb r0, [r4, #0x1b0] -_02031740: - ldr r0, [r4, #0x190] - cmp r0, #0 - beq _02031750 - blx r0 -_02031750: - add sp, sp, #0x30 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02031758: .4byte 0x00000408 - arm_func_end FUN_0203123c - - arm_func_start FUN_0203175c -FUN_0203175c: @ 0x0203175C - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0xc - sub sp, sp, #0x400 - mov sl, r0 - ldr r4, [sl, #0xc] - add r0, r4, #4 - bl FUN_02032568 - mov r5, r0 - add r0, r4, #4 - bl FUN_02032594 - ldr r1, [r4, #0xfc] - mov r6, r0 - tst r1, #0x200 - ldrne r0, [r4, #0x160] - addne sb, r0, r5 - ldrsb r0, [sl, #0x10] - moveq sb, #0 - bl FUN_02027b1c - cmp r6, #0 - mov r7, #0 - ble _02031868 - mov fp, #0x42 - b _02031860 -_020317B8: - ldr r2, [r4, #0x198] - add r0, sp, #0xc - mov r1, r5 - blx r2 - mov r8, r0 - mov r1, #0 - cmp sb, #0 - beq _020317E8 - ldrb r0, [sb] - add sb, sb, #1 - tst r0, #2 - movne r1, #1 -_020317E8: - cmp r8, #0 - beq _02031858 - cmp r1, #0 - mov r1, r7 - add r0, r4, #4 - beq _02031830 - bl FUN_020328d8 - str fp, [sp] - mov r2, r0 - ldr r0, [r4, #0x1a8] - mov r3, r8 - str r0, [sp, #4] - ldr r0, [r4, #0x1ac] - mov r1, #0xd - str r0, [sp, #8] - ldrsb r0, [sl, #0x10] - bl FUN_02026428 - b _02031858 -_02031830: - bl FUN_020328d8 - mov r2, r0 - ldr r0, [r4, #0x1a8] - mov r3, r8 - str r0, [sp] - ldr r0, [r4, #0x1ac] - mov r1, #0xd - str r0, [sp, #4] - ldrsb r0, [sl, #0x10] - bl FUN_02026358 -_02031858: - add r7, r7, #1 - add r5, r5, #1 -_02031860: - cmp r7, r6 - blt _020317B8 -_02031868: - ldrsb r1, [sl, #0x10] - add r0, r4, #4 - bl FUN_0202a03c - ldrsb r0, [sl, #0x10] - bl FUN_02027af0 - add sp, sp, #0xc - add sp, sp, #0x400 - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0203175c - - arm_func_start FUN_02031888 -FUN_02031888: @ 0x02031888 - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - str r4, [r0, #0x18c] - pop {r4, pc} - arm_func_end FUN_02031888 - - arm_func_start FUN_0203189c -FUN_0203189c: @ 0x0203189C - push {r4, lr} - mov r4, r1 - bl GetDialogBoxField0xC - str r4, [r0, #0x190] - pop {r4, pc} - arm_func_end FUN_0203189c - - arm_func_start FUN_020318b0 -FUN_020318b0: @ 0x020318B0 - push {r3, lr} - bl GetDialogBoxField0xC - ldr r0, [r0, #0x19c] - cmp r0, #3 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FUN_020318b0 - - arm_func_start FUN_020318d0 -FUN_020318d0: @ 0x020318D0 - push {r3, r4, r5, lr} - mov r5, r0 - bl GetDialogBoxField0xC - mov r4, r0 - mov r0, #1 - mov r2, #0 - strb r0, [r4, #0x1a0] - mov r0, r5 - sub r1, r2, #4 - strb r2, [r4, #0x1a1] - bl FUN_0202830c - mov r0, #4 - str r0, [r4, #0x19c] - pop {r3, r4, r5, pc} - arm_func_end FUN_020318d0 - - arm_func_start KeyWaitInit -KeyWaitInit: @ 0x02031908 - ldr ip, _02031910 @ =KeyWaitInit - bx ip - .align 2, 0 -_02031910: .4byte KeyWaitInit - arm_func_end KeyWaitInit - - arm_func_start FUN_02031914 -FUN_02031914: @ 0x02031914 - push {r4, r5, r6, lr} - sub sp, sp, #8 - mov r5, #0 - mov r6, r1 - mov r4, r0 - add r1, sp, #4 - mov r0, r5 - bl GetHeldButtons - add r1, sp, #2 - mov r0, r5 - bl GetPressedButtons - ldrh r1, [sp, #2] - tst r1, #1 - orrne r5, r5, #1 - tst r1, #2 - orrne r5, r5, #2 - tst r1, #0x800 - orrne r5, r5, #0x1000 - tst r1, #0x400 - orrne r5, r5, #0x2000 - tst r1, #0x200 - beq _0203197C - ldrh r0, [sp, #4] - tst r0, #0x100 - orrne r5, r5, #0x800 - orr r5, r5, #0x400 -_0203197C: - tst r1, #8 - orrne r5, r5, #0x100 - tst r1, #4 - orrne r5, r5, #0x200 - cmp r5, #0 - mov r0, #0 - beq _020319A0 - bl FUN_020063a0 - b _020319F8 -_020319A0: - add r1, sp, #0 - bl FUN_020063f4 - tst r6, #8 - beq _020319D4 - ldrh r0, [sp, #4] - tst r0, #0x100 - beq _020319D4 - ldrh r0, [sp] - tst r0, #0x40 - orrne r5, r5, #0x4000 - tst r0, #0x80 - orrne r5, r5, #0x8000 - b _020319E8 -_020319D4: - ldrh r0, [sp] - tst r0, #0x40 - orrne r5, r5, #0x10 - tst r0, #0x80 - orrne r5, r5, #0x20 -_020319E8: - tst r0, #0x20 - orrne r5, r5, #0x40 - tst r0, #0x10 - orrne r5, r5, #0x80 -_020319F8: - ldrh r0, [sp, #4] - tst r0, #0x200 - orrne r5, r5, #4 - tst r0, #0x100 - orrne r5, r5, #8 - cmp r4, #0 - beq _02031A30 - bl FUN_0204ae60 - cmp r0, #0 - mov r0, r4 - beq _02031A2C - bl GetReleasedStylus - b _02031A30 -_02031A2C: - bl FUN_02006bfc -_02031A30: - mov r0, r5 - add sp, sp, #8 - pop {r4, r5, r6, pc} - arm_func_end FUN_02031914 - - arm_func_start FUN_02031a3c -FUN_02031a3c: @ 0x02031A3C - push {r3, lr} - tst r0, #0x10 - moveq r0, #0 - popeq {r3, pc} - mov r0, r1 - bl FUN_02017ccc - mov r0, #1 - pop {r3, pc} - arm_func_end FUN_02031a3c - - arm_func_start FUN_02031a5c -FUN_02031a5c: @ 0x02031A5C - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r1 - mov r5, r2 - bl FUN_02033440 - mov r4, r0 - mov r0, r7 - mov r1, r6 - bl FUN_020336fc - cmp r4, r5 - movgt r5, r4 - cmp r0, r5 - movgt r5, r0 - add r1, r5, #7 - asr r0, r1, #2 - add r0, r1, r0, lsr #29 - asr r0, r0, #3 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_02031a5c - - arm_func_start FUN_02031aa4 -FUN_02031aa4: @ 0x02031AA4 - tst r0, #0x40000 - bne _02031ABC - ldr ip, [r2] - ldr r2, [r3] - cmp r2, ip - strgt ip, [r3] -_02031ABC: - tst r0, #0x400 - ldrne ip, [r1, #4] - ldr r2, [r3] - moveq ip, #0xe - mul r3, r2, ip - tst r0, #0x800 - ldrne r1, [r1, #0xc] - addne r3, r3, r1 - tst r0, #0x1000 - addne r3, r3, #0x10 - add r1, r3, #7 - asr r0, r1, #2 - add r0, r1, r0, lsr #29 - asr r0, r0, #3 - bx lr - arm_func_end FUN_02031aa4 - - arm_func_start FUN_02031af8 -FUN_02031af8: @ 0x02031AF8 - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov sb, r1 - mov r6, r2 - tst sb, #0x400 - ldrne r4, [r6, #4] - mov r7, r0 - mov r5, r3 - moveq r4, #0xe - mov r8, r6 - str sb, [r7, #0x10] - add lr, r7, #0x14 - mov ip, #9 -_02031B28: - ldm r8!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _02031B28 - ldm r8, {r0, r1} - stm lr, {r0, r1} - ldm r5, {r0, r1, r2, r3} - stm r7, {r0, r1, r2, r3} - mov r0, #0 - str r0, [r7, #0xbc] - str r0, [r7, #0xc8] - tst sb, #0x200 - ldrne r0, [r6, #0x60] - ldr r1, [sp, #0x20] - str r0, [r7, #0xac] - str r1, [r7, #0xd0] - ldr r0, [r7, #0x10] - tst r0, #0x8000 - beq _02031B90 - ldr r0, [sp, #0x24] - cmp r0, #0 - movle r0, #1 - str r0, [r7, #0xc4] - mov r0, #1 - str r0, [r7, #0xcc] - b _02031B98 -_02031B90: - str r1, [r7, #0xc0] - str r1, [r7, #0xc4] -_02031B98: - mov r0, r7 - bl FUN_02032754 - ldr r0, [r7, #0xcc] - mov r3, #0 - cmp r0, #0xa - ldrge r0, [r7, #0x10] - orrge r0, r0, #0x10000 - strge r0, [r7, #0x10] - str r3, [r7, #0xb0] - ldr r0, [r7, #0x10] - tst r0, #0x800 - ldrne r3, [r6, #0xc] - str r3, [r7, #0xb4] - ldm r5, {r1, r2} - ldr r0, [r7, #0x10] - sub r1, r2, r1 - sub r1, r1, r3 - mov r3, #0 - tst r0, #0x1000 - subne r1, r1, #0x10 - strb r3, [r7, #0xd4] - cmp r4, #0 - ble _02031C2C - ldr r0, [r7, #0x10] - tst r0, #0x80000 - bne _02031C20 - ldr r0, [r7, #0xc4] - ldr r2, [r7, #0xb4] - mul r0, r4, r0 - sub r0, r1, r0 - add r0, r0, r0, lsr #31 - adds r0, r2, r0, asr #1 - str r0, [r7, #0xb4] - strmi r3, [r7, #0xb4] -_02031C20: - lsl r0, r4, #8 - str r0, [r7, #0xb8] - b _02031C34 -_02031C2C: - mov r0, r7 - bl FUN_02032894 -_02031C34: - ldr r0, [r7, #0x10] - tst r0, #0x20 - beq _02031C4C - ldr r1, [r6] - mov r0, r7 - bl FUN_02032684 -_02031C4C: - bl KeyWaitInit - mov r1, #0 - strb r1, [r7, #0xf4] - str r1, [r7, #0xd8] - sub r0, r1, #1 - str r0, [r7, #0xdc] - mov r0, r7 - str r1, [r7, #0xe0] - bl FUN_02032984 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_02031af8 - - arm_func_start FUN_02031c74 -FUN_02031c74: @ 0x02031C74 - ldr r2, [r0, #0x10] - orr r1, r2, r1 - str r1, [r0, #0x10] - bx lr - arm_func_end FUN_02031c74 - - arm_func_start FUN_02031c84 -FUN_02031c84: @ 0x02031C84 - ldr r2, [r0, #0x10] - mvn r1, r1 - and r1, r2, r1 - str r1, [r0, #0x10] - bx lr - arm_func_end FUN_02031c84 - - arm_func_start FUN_02031c98 -FUN_02031c98: @ 0x02031C98 - push {r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x24 - mov r8, r0 - mov r7, r1 - mov r6, r2 - cmp r3, #0 - ldr r4, [r8, #0xc8] - ldr r5, [r8, #0xbc] - add r0, sp, #0 - beq _02031DD4 - ldr r1, [r8, #0x10] - bl FUN_02031914 - ldr r1, [r8, #0x10] - mov sb, r0 - tst r1, #0x8000 - beq _02031D18 - tst r1, #0x20000 - beq _02031D18 - tst r1, #0x2000000 - bne _02031D18 - tst sb, #8 - beq _02031D18 - tst sb, #0x10 - beq _02031D04 - mov r0, r8 - bl FUN_0203280c - b _02031D44 -_02031D04: - tst sb, #0x20 - beq _02031D44 - mov r0, r8 - bl FUN_020327e4 - b _02031D44 -_02031D18: - tst r1, #0x1000000 - bne _02031D44 - tst sb, #0x10 - beq _02031D34 - mov r0, r8 - bl FUN_0203261c - b _02031D44 -_02031D34: - tst sb, #0x20 - beq _02031D44 - mov r0, r8 - bl FUN_020325ac -_02031D44: - ldr r0, [r8, #0x10] - tst r0, #0x8000 - beq _02031DBC - tst r0, #0x20000 - bne _02031DBC - tst r0, #0x2000000 - bne _02031DBC - tst r0, #0x10000 - beq _02031D98 - tst sb, #8 - beq _02031D98 - tst sb, #0x40 - beq _02031D84 - mov r0, r8 - bl FUN_02032864 - b _02031DBC -_02031D84: - tst sb, #0x80 - beq _02031DBC - mov r0, r8 - bl FUN_0203282c - b _02031DBC -_02031D98: - tst sb, #0x40 - beq _02031DAC - mov r0, r8 - bl FUN_0203280c - b _02031DBC -_02031DAC: - tst sb, #0x80 - beq _02031DBC - mov r0, r8 - bl FUN_020327e4 -_02031DBC: - ldr r0, [r8, #0x10] - tst r0, #1 - biceq sb, sb, #1 - tst r0, #2 - biceq sb, sb, #2 - b _02031DDC -_02031DD4: - mov sb, #0 - bl FUN_02006bfc -_02031DDC: - cmp r7, #0 - strne sb, [r7] - cmp r6, #0 - beq _02031E0C - add ip, sp, #0 - mov r7, #2 -_02031DF4: - ldm ip!, {r0, r1, r2, r3} - stm r6!, {r0, r1, r2, r3} - subs r7, r7, #1 - bne _02031DF4 - ldr r0, [ip] - str r0, [r6] -_02031E0C: - ldr r0, [r8, #0xc8] - cmp r4, r0 - beq _02031E2C - mov r0, r8 - mov r1, #4 - bl FUN_02032960 - mov r0, #1 - b _02031E78 -_02031E2C: - ldr r0, [r8, #0xbc] - cmp r5, r0 - beq _02031E44 - mov r0, r8 - mov r1, #3 - bl FUN_02032960 -_02031E44: - ldr r0, [r8, #0xd8] - cmp r0, #0 - ble _02031E74 - subs r0, r0, #1 - str r0, [r8, #0xd8] - bne _02031E74 - mvn r0, #0 - str r0, [r8, #0xdc] - mov r0, #0 - str r0, [r8, #0xe0] - mov r0, #1 - b _02031E78 -_02031E74: - mov r0, #0 -_02031E78: - add sp, sp, #0x24 - pop {r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_02031c98 - - arm_func_start FUN_02031e80 -FUN_02031e80: @ 0x02031E80 - push {r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x24 - mov r8, r0 - mov r7, r1 - mov r6, r2 - cmp r3, #0 - ldr r4, [r8, #0xc8] - ldr r5, [r8, #0xbc] - add r0, sp, #0 - beq _02031FC4 - ldr r1, [r8, #0x10] - bl FUN_02031914 - ldr r1, [r8, #0x10] - mov sb, r0 - tst r1, #0x8000 - beq _02031F00 - tst r1, #0x20000 - beq _02031F00 - tst r1, #0x2000000 - bne _02031F00 - tst sb, #8 - beq _02031F00 - tst sb, #0x10 - beq _02031EEC - mov r0, r8 - bl FUN_0203280c - b _02031F34 -_02031EEC: - tst sb, #0x20 - beq _02031F34 - mov r0, r8 - bl FUN_020327e4 - b _02031F34 -_02031F00: - tst r1, #0x1000000 - bne _02031F34 - tst sb, #0x10 - beq _02031F20 - ldr r1, [sp, #0x40] - mov r0, r8 - bl FUN_02032654 - b _02031F34 -_02031F20: - tst sb, #0x20 - beq _02031F34 - ldr r1, [sp, #0x40] - mov r0, r8 - bl FUN_020325e8 -_02031F34: - ldr r0, [r8, #0x10] - tst r0, #0x8000 - beq _02031FAC - tst r0, #0x20000 - bne _02031FAC - tst r0, #0x2000000 - bne _02031FAC - tst r0, #0x10000 - beq _02031F88 - tst sb, #8 - beq _02031F88 - tst sb, #0x40 - beq _02031F74 - mov r0, r8 - bl FUN_02032864 - b _02031FAC -_02031F74: - tst sb, #0x80 - beq _02031FAC - mov r0, r8 - bl FUN_0203282c - b _02031FAC -_02031F88: - tst sb, #0x40 - beq _02031F9C - mov r0, r8 - bl FUN_0203280c - b _02031FAC -_02031F9C: - tst sb, #0x80 - beq _02031FAC - mov r0, r8 - bl FUN_020327e4 -_02031FAC: - ldr r0, [r8, #0x10] - tst r0, #1 - biceq sb, sb, #1 - tst r0, #2 - biceq sb, sb, #2 - b _02031FCC -_02031FC4: - mov sb, #0 - bl FUN_02006bfc -_02031FCC: - cmp r7, #0 - strne sb, [r7] - cmp r6, #0 - beq _02031FFC - add ip, sp, #0 - mov r7, #2 -_02031FE4: - ldm ip!, {r0, r1, r2, r3} - stm r6!, {r0, r1, r2, r3} - subs r7, r7, #1 - bne _02031FE4 - ldr r0, [ip] - str r0, [r6] -_02031FFC: - ldr r0, [r8, #0xc8] - cmp r4, r0 - beq _0203201C - mov r0, r8 - mov r1, #4 - bl FUN_02032960 - mov r0, #1 - b _02032068 -_0203201C: - ldr r0, [r8, #0xbc] - cmp r5, r0 - beq _02032034 - mov r0, r8 - mov r1, #3 - bl FUN_02032960 -_02032034: - ldr r0, [r8, #0xd8] - cmp r0, #0 - ble _02032064 - subs r0, r0, #1 - str r0, [r8, #0xd8] - bne _02032064 - mvn r0, #0 - str r0, [r8, #0xdc] - mov r0, #0 - str r0, [r8, #0xe0] - mov r0, #1 - b _02032068 -_02032064: - mov r0, #0 -_02032068: - add sp, sp, #0x24 - pop {r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_02031e80 - - arm_func_start FUN_02032070 -FUN_02032070: @ 0x02032070 - ldr r1, [r0, #0xd8] - cmp r1, #0 - ble _020320A0 - subs r1, r1, #1 - str r1, [r0, #0xd8] - mvneq r1, #0 - streq r1, [r0, #0xdc] - moveq r1, #0 - streq r1, [r0, #0xe0] - beq _020320A0 - mov r0, #1 - bx lr -_020320A0: - mov r0, #0 - bx lr - arm_func_end FUN_02032070 - - arm_func_start FUN_020320a8 -FUN_020320a8: @ 0x020320A8 - mov r2, #6 - str r2, [r0, #0xd8] - str r1, [r0, #0xdc] - mov r1, #0 - str r1, [r0, #0xe0] - bx lr - arm_func_end FUN_020320a8 - - arm_func_start FUN_020320c0 -FUN_020320c0: @ 0x020320C0 - ldr r0, [r0, #0xdc] - bx lr - arm_func_end FUN_020320c0 - - arm_func_start FUN_020320c8 -FUN_020320c8: @ 0x020320C8 - mov r2, #6 - str r2, [r0, #0xd8] - sub r2, r2, #7 - str r1, [r0, #0xe0] - str r2, [r0, #0xe8] - str r2, [r0, #0xe4] - str r2, [r0, #0xf0] - str r2, [r0, #0xec] - bx lr - arm_func_end FUN_020320c8 - - arm_func_start FUN_020320ec -FUN_020320ec: @ 0x020320EC - mov r2, #6 - str r2, [r0, #0xd8] - sub r3, r2, #7 - str r3, [r0, #0xdc] - mov r2, #0 - str r2, [r0, #0xe0] - cmp r1, #0 - streq r3, [r0, #0xe8] - streq r3, [r0, #0xe4] - streq r3, [r0, #0xf0] - streq r3, [r0, #0xec] - bxeq lr - ldr r3, [r1, #8] - ldr r2, [r0, #8] - sub r2, r3, r2 - str r2, [r0, #0xec] - ldr r3, [r1, #0xc] - ldr r2, [r0, #8] - sub r2, r3, r2 - str r2, [r0, #0xf0] - ldr r3, [r1] - ldr r2, [r0] - sub r2, r3, r2 - str r2, [r0, #0xe4] - ldr r2, [r1, #4] - ldr r1, [r0] - sub r1, r2, r1 - str r1, [r0, #0xe8] - bx lr - arm_func_end FUN_020320ec - - arm_func_start FUN_02032160 -FUN_02032160: @ 0x02032160 - push {r3, r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x10 - mov r8, r1 - ldrh r1, [r8] - mov r7, r2 - mov sb, r0 - tst r1, r7 - beq _020322A4 - cmp r3, #0 - ldrge r0, [sb, #8] - ldr r5, [sb, #0xc0] - ldrlt r0, [sb, #0xc] - ldr r1, [sp, #0x30] - add r0, r0, r3 - str r0, [sp, #8] - cmp r1, #0 - ldrgt r0, [sb, #8] - mov r6, #0 - ldrle r0, [sb, #0xc] - add r4, sp, #0 - add r0, r0, r1 - str r0, [sp, #0xc] - b _0203229C -_020321BC: - ldr r0, [sb, #0xb8] - ldr r2, [sb, #0xb4] - mul r1, r6, r0 - asr r0, r1, #7 - add r0, r1, r0, lsr #24 - ldr r1, [sb] - add r0, r2, r0, asr #8 - add r0, r1, r0 - str r0, [sp] - ldr r0, [sb, #0xb8] - add r1, r6, #1 - mul r2, r1, r0 - asr r0, r2, #7 - ldr r1, [sb, #0xb4] - add r0, r2, r0, lsr #24 - ldr r2, [sb] - add r0, r1, r0, asr #8 - add r0, r2, r0 - sub r3, r0, #2 - mov r0, r8 - mov r1, r7 - mov r2, r4 - str r3, [sp, #4] - bl FUN_02006c8c - cmp r0, #0 - beq _02032298 - ldrb r0, [sp, #0x34] - cmp r0, #0 - beq _02032288 - mov r0, #6 - str r0, [sb, #0xd8] - sub r0, r0, #7 - str r0, [sb, #0xdc] - mov r0, #0 - str r0, [sb, #0xe0] - ldr r1, [sp, #8] - ldr r0, [sb, #8] - sub r0, r1, r0 - str r0, [sb, #0xec] - ldr r1, [sp, #0xc] - ldr r0, [sb, #8] - sub r0, r1, r0 - str r0, [sb, #0xf0] - ldr r1, [sp] - ldr r0, [sb] - sub r0, r1, r0 - str r0, [sb, #0xe4] - ldr r1, [sp, #4] - ldr r0, [sb] - sub r0, r1, r0 - str r0, [sb, #0xe8] -_02032288: - ldr r1, [sb, #0xc8] - ldr r0, [sb, #0xc4] - mla r0, r1, r0, r6 - b _020322A8 -_02032298: - add r6, r6, #1 -_0203229C: - cmp r6, r5 - blt _020321BC -_020322A4: - mvn r0, #0 -_020322A8: - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_02032160 - - arm_func_start FUN_020322b0 -FUN_020322b0: @ 0x020322B0 - push {r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #0x10 - mov sb, r1 - ldrh r1, [sb] - mov r8, r2 - mov sl, r0 - tst r1, r8 - ldr r7, [sp, #0x38] - beq _020323EC - cmp r3, #0 - ldrge r0, [sl, #8] - ldr r1, [sp, #0x30] - ldrlt r0, [sl, #0xc] - cmp r1, #0 - add r0, r0, r3 - str r0, [sp, #8] - ldrgt r0, [sl, #8] - mov r5, #0 - ldrle r0, [sl, #0xc] - add r4, sp, #0 - add r1, r0, r1 - ldr r0, [sp, #0x3c] - str r1, [sp, #0xc] - lsl r6, r0, #8 - b _020323E4 -_02032314: - mul r3, r5, r6 - add r0, r5, #1 - mul r2, r0, r6 - asr r0, r3, #7 - asr r1, r2, #7 - ldr ip, [sl, #0xb4] - add r0, r3, r0, lsr #24 - ldr r3, [sl] - add r0, ip, r0, asr #8 - add r0, r3, r0 - str r0, [sp] - ldr r3, [sl, #0xb4] - add r0, r2, r1, lsr #24 - ldr r1, [sl] - add r0, r3, r0, asr #8 - add r0, r1, r0 - sub r3, r0, #2 - mov r0, sb - mov r1, r8 - mov r2, r4 - str r3, [sp, #4] - bl FUN_02006c8c - cmp r0, #0 - beq _020323E0 - ldrb r0, [sp, #0x34] - cmp r0, #0 - beq _020323D8 - mov r0, #6 - str r0, [sl, #0xd8] - sub r0, r0, #7 - str r0, [sl, #0xdc] - mov r0, #0 - str r0, [sl, #0xe0] - ldr r1, [sp, #8] - ldr r0, [sl, #8] - sub r0, r1, r0 - str r0, [sl, #0xec] - ldr r1, [sp, #0xc] - ldr r0, [sl, #8] - sub r0, r1, r0 - str r0, [sl, #0xf0] - ldr r1, [sp] - ldr r0, [sl] - sub r0, r1, r0 - str r0, [sl, #0xe4] - ldr r1, [sp, #4] - ldr r0, [sl] - sub r0, r1, r0 - str r0, [sl, #0xe8] -_020323D8: - mov r0, r5 - b _020323F0 -_020323E0: - add r5, r5, #1 -_020323E4: - cmp r5, r7 - blt _02032314 -_020323EC: - mvn r0, #0 -_020323F0: - add sp, sp, #0x10 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_end FUN_020322b0 - - arm_func_start FUN_020323f8 -FUN_020323f8: @ 0x020323F8 - push {r3, r4, r5, r6, r7, lr} - mov r7, r1 - mov r4, r0 - mov r6, r2 - mov r5, r3 - tst r7, #0x2000 - mov r0, #0 - beq _02032440 - ldr r1, [r4, #0x10] - tst r1, #0x40 - ldrne r3, [r4, #0x78] - cmpne r3, #0 - beq _02032440 - ldr r0, [r4, #0x7c] - mov r1, r6 - mov r2, r5 - blx r3 - mov r0, #1 -_02032440: - tst r7, #0x1000 - popeq {r3, r4, r5, r6, r7, pc} - ldr r1, [r4, #0x10] - tst r1, #0x80 - ldrne r3, [r4, #0x80] - cmpne r3, #0 - popeq {r3, r4, r5, r6, r7, pc} - ldr r0, [r4, #0x84] - mov r1, r6 - mov r2, r5 - blx r3 - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_020323f8 - - arm_func_start IsMenuOptionActive -IsMenuOptionActive: @ 0x02032474 - push {r4, lr} - mov r4, r0 - ldr r1, [r4, #0x10] - tst r1, #1 - beq _020324BC - tst r1, #0x8000000 - bne _020324BC - tst r1, #0x200 - beq _020324B4 - bl FUN_02032578 - ldr r1, [r4, #0xac] - ldrb r0, [r1, r0] - tst r0, #1 - bne _020324BC - mov r0, #1 - pop {r4, pc} -_020324B4: - mov r0, #1 - pop {r4, pc} -_020324BC: - mov r0, #0 - pop {r4, pc} - arm_func_end IsMenuOptionActive - - arm_func_start FUN_020324c4 -FUN_020324c4: @ 0x020324C4 - push {r4, lr} - mov r4, r0 - ldr r1, [r4, #0x10] - tst r1, #1 - beq _02032504 - tst r1, #0x200 - beq _020324FC - bl FUN_02032578 - ldr r1, [r4, #0xac] - ldrb r0, [r1, r0] - tst r0, #1 - bne _02032504 - mov r0, #1 - pop {r4, pc} -_020324FC: - mov r0, #1 - pop {r4, pc} -_02032504: - mov r0, #0 - pop {r4, pc} - arm_func_end FUN_020324c4 - - arm_func_start FUN_0203250c -FUN_0203250c: @ 0x0203250C - ldr r3, [r0, #0x10] - tst r3, #0x2000 - beq _02032530 - tst r1, #0x1000 - beq _02032530 - ldr r2, [r0, #0x88] - cmp r2, #0 - moveq r0, #1 - bxeq lr -_02032530: - tst r3, #0x4000 - beq _02032550 - tst r1, #0x2000 - beq _02032550 - ldr r0, [r0, #0x90] - cmp r0, #0 - moveq r0, #1 - bxeq lr -_02032550: - mov r0, #0 - bx lr - arm_func_end FUN_0203250c - - arm_func_start FUN_02032558 -FUN_02032558: @ 0x02032558 - ldr r0, [r0, #0xbc] - bx lr - arm_func_end FUN_02032558 - - arm_func_start FUN_02032560 -FUN_02032560: @ 0x02032560 - ldr r0, [r0, #0xc8] - bx lr - arm_func_end FUN_02032560 - - arm_func_start FUN_02032568 -FUN_02032568: @ 0x02032568 - ldr r1, [r0, #0xc8] - ldr r0, [r0, #0xc4] - mul r0, r1, r0 - bx lr - arm_func_end FUN_02032568 - - arm_func_start FUN_02032578 -FUN_02032578: @ 0x02032578 - ldr r2, [r0, #0xbc] - ldr r1, [r0, #0xc8] - ldr r0, [r0, #0xc4] - mla r0, r1, r0, r2 - bx lr - arm_func_end FUN_02032578 - - arm_func_start FUN_0203258c -FUN_0203258c: @ 0x0203258C - ldr r0, [r0, #0xd0] - bx lr - arm_func_end FUN_0203258c - - arm_func_start FUN_02032594 -FUN_02032594: @ 0x02032594 - ldr r0, [r0, #0xc0] - bx lr - arm_func_end FUN_02032594 - - arm_func_start FUN_0203259c -FUN_0203259c: @ 0x0203259C - ldr r0, [r0, #0xc4] - bx lr - arm_func_end FUN_0203259c - - arm_func_start FUN_020325a4 -FUN_020325a4: @ 0x020325A4 - ldr r0, [r0, #0xcc] - bx lr - arm_func_end FUN_020325a4 - - arm_func_start FUN_020325ac -FUN_020325ac: @ 0x020325AC - mov r1, #1 - strb r1, [r0, #0xd4] - ldr r1, [r0, #0xc0] - cmp r1, #0 - movle r1, #0 - strle r1, [r0, #0xbc] - bxle lr - ldr r1, [r0, #0xbc] - add r2, r1, #1 - str r2, [r0, #0xbc] - ldr r1, [r0, #0xc0] - cmp r2, r1 - movge r1, #0 - strge r1, [r0, #0xbc] - bx lr - arm_func_end FUN_020325ac - - arm_func_start FUN_020325e8 -FUN_020325e8: @ 0x020325E8 - mov r2, #1 - cmp r1, #0 - strb r2, [r0, #0xd4] - movle r1, #0 - strle r1, [r0, #0xbc] - bxle lr - ldr r2, [r0, #0xbc] - add r2, r2, #1 - cmp r2, r1 - str r2, [r0, #0xbc] - subge r1, r1, #1 - strge r1, [r0, #0xbc] - bx lr - arm_func_end FUN_020325e8 - - arm_func_start FUN_0203261c -FUN_0203261c: @ 0x0203261C - mov r1, #1 - strb r1, [r0, #0xd4] - ldr r1, [r0, #0xc0] - cmp r1, #0 - movle r1, #0 - strle r1, [r0, #0xbc] - bxle lr - ldr r1, [r0, #0xbc] - subs r1, r1, #1 - str r1, [r0, #0xbc] - ldrmi r1, [r0, #0xc0] - submi r1, r1, #1 - strmi r1, [r0, #0xbc] - bx lr - arm_func_end FUN_0203261c - - arm_func_start FUN_02032654 -FUN_02032654: @ 0x02032654 - mov r2, #1 - cmp r1, #0 - strb r2, [r0, #0xd4] - movle r1, #0 - strle r1, [r0, #0xbc] - bxle lr - ldr r1, [r0, #0xbc] - subs r1, r1, #1 - str r1, [r0, #0xbc] - movmi r1, #0 - strmi r1, [r0, #0xbc] - bx lr - arm_func_end FUN_02032654 - - arm_func_start FUN_02032684 -FUN_02032684: @ 0x02032684 - push {r3, r4, r5, lr} - mov r5, r0 - mov r0, #1 - strb r0, [r5, #0xd4] - movs r4, r1 - ldr r0, [r5, #0x10] - movmi r4, #0 - tst r0, #0x8000 - beq _020326E0 - ldr r0, [r5, #0xd0] - ldr r1, [r5, #0xc4] - cmp r4, r0 - subge r4, r0, #1 - mov r0, r4 - bl DivideInt - str r0, [r5, #0xc8] - ldr r1, [r5, #0xc4] - mov r0, r4 - bl DivideInt - mov r0, r5 - str r1, [r5, #0xbc] - bl FUN_02032754 - pop {r3, r4, r5, pc} -_020326E0: - ldr r0, [r5, #0xc0] - cmp r4, r0 - subge r0, r0, #1 - strge r0, [r5, #0xbc] - strlt r4, [r5, #0xbc] - pop {r3, r4, r5, pc} - arm_func_end FUN_02032684 - - arm_func_start FUN_020326f8 -FUN_020326f8: @ 0x020326F8 - mov r3, #1 - cmp r1, #0 - movlt r1, #0 - strb r3, [r0, #0xd4] - cmp r1, r2 - ldrge r1, [r0, #0xc0] - subge r1, r1, #1 - str r1, [r0, #0xbc] - bx lr - arm_func_end FUN_020326f8 - - arm_func_start FUN_0203271c -FUN_0203271c: @ 0x0203271C - push {r4, lr} - mov r4, r0 - str r1, [r4, #0xd0] - bl FUN_02032754 - ldr r0, [r4, #0xcc] - cmp r0, #0xa - ldr r0, [r4, #0x10] - orrge r0, r0, #0x10000 - biclt r0, r0, #0x10000 - str r0, [r4, #0x10] - ldr r1, [r4, #0xbc] - mov r0, r4 - bl FUN_02032684 - pop {r4, pc} - arm_func_end FUN_0203271c - - arm_func_start FUN_02032754 -FUN_02032754: @ 0x02032754 - push {r4, lr} - mov r4, r0 - ldr r0, [r4, #0x10] - tst r0, #0x8000 - popeq {r4, pc} - ldr r1, [r4, #0xc4] - ldr r0, [r4, #0xd0] - add r0, r0, r1 - sub r0, r0, #1 - bl DivideInt - str r0, [r4, #0xcc] - ldr r1, [r4, #0xc8] - sub r0, r0, #1 - cmp r1, r0 - strge r0, [r4, #0xc8] - ldr r1, [r4, #0xc8] - ldr r0, [r4, #0xc4] - ldr r2, [r4, #0xd0] - mul r0, r1, r0 - sub r1, r2, r0 - str r1, [r4, #0xc0] - ldr r0, [r4, #0xc4] - cmp r1, r0 - strgt r0, [r4, #0xc0] - ldr r1, [r4, #0xc0] - ldr r0, [r4, #0xbc] - sub r1, r1, #1 - cmp r0, r1 - strgt r1, [r4, #0xbc] - pop {r4, pc} - arm_func_end FUN_02032754 -_020327CC: - .byte 0xD0, 0x10, 0x80, 0xE5 - .byte 0xC4, 0x20, 0x80, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0xBC, 0x10, 0x80, 0xE5, 0xC8, 0x10, 0x80, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_020327e4 -FUN_020327e4: @ 0x020327E4 - ldr r1, [r0, #0xcc] - ldr r2, [r0, #0xc8] - sub r1, r1, #1 - cmp r2, r1 - movge r1, #0 - addlt r1, r2, #1 - ldr ip, _02032808 @ =FUN_02032754 - str r1, [r0, #0xc8] - bx ip - .align 2, 0 -_02032808: .4byte FUN_02032754 - arm_func_end FUN_020327e4 - - arm_func_start FUN_0203280c -FUN_0203280c: @ 0x0203280C - ldr r1, [r0, #0xc8] - ldr ip, _02032828 @ =FUN_02032754 - cmp r1, #0 - ldrle r1, [r0, #0xcc] - sub r1, r1, #1 - str r1, [r0, #0xc8] - bx ip - .align 2, 0 -_02032828: .4byte FUN_02032754 - arm_func_end FUN_0203280c - - arm_func_start FUN_0203282c -FUN_0203282c: @ 0x0203282C - ldr r2, [r0, #0xcc] - ldr r1, [r0, #0xc8] - sub r2, r2, #1 - cmp r1, r2 - movge r1, #0 - strge r1, [r0, #0xc8] - bge _02032858 - add r1, r1, #0xa - cmp r1, r2 - movle r2, r1 - str r2, [r0, #0xc8] -_02032858: - ldr ip, _02032860 @ =FUN_02032754 - bx ip - .align 2, 0 -_02032860: .4byte FUN_02032754 - arm_func_end FUN_0203282c - - arm_func_start FUN_02032864 -FUN_02032864: @ 0x02032864 - ldr r1, [r0, #0xc8] - cmp r1, #0 - ldrle r1, [r0, #0xcc] - suble r1, r1, #1 - strle r1, [r0, #0xc8] - ble _02032888 - subs r1, r1, #0xa - movmi r1, #0 - str r1, [r0, #0xc8] -_02032888: - ldr ip, _02032890 @ =FUN_02032754 - bx ip - .align 2, 0 -_02032890: .4byte FUN_02032754 - arm_func_end FUN_02032864 - - arm_func_start FUN_02032894 -FUN_02032894: @ 0x02032894 - push {r4, lr} - mov r4, r0 - cmp r1, #0 - ble _020328B4 - lsl r0, r1, #8 - ldr r1, [r4, #0xc4] - bl DivideInt - b _020328D0 -_020328B4: - ldr r0, [r4, #0xb4] - ldm r4, {r1, r2} - sub r1, r2, r1 - sub r0, r1, r0 - ldr r1, [r4, #0xc4] - lsl r0, r0, #8 - bl DivideInt -_020328D0: - str r0, [r4, #0xb8] - pop {r4, pc} - arm_func_end FUN_02032894 - - arm_func_start FUN_020328d8 -FUN_020328d8: @ 0x020328D8 - ldr r2, [r0, #0xb8] - ldr r3, [r0, #0xb4] - mul r2, r1, r2 - asr r0, r2, #7 - add r0, r2, r0, lsr #24 - add r0, r3, r0, asr #8 - bx lr - arm_func_end FUN_020328d8 - - arm_func_start FUN_020328f4 -FUN_020328f4: @ 0x020328F4 - ldr r1, [r0, #0x10] - tst r1, #0x8000 - beq _02032910 - ldr r0, [r0, #0xcc] - cmp r0, #1 - movgt r0, #1 - bxgt lr -_02032910: - mov r0, #0 - bx lr - arm_func_end FUN_020328f4 - - arm_func_start FUN_02032918 -FUN_02032918: @ 0x02032918 - ldr r1, [r0, #0x10] - tst r1, #0x8000 - beq _02032934 - ldr r0, [r0, #0xcc] - cmp r0, #1 - movgt r0, #1 - bxgt lr -_02032934: - mov r0, #0 - bx lr - arm_func_end FUN_02032918 - - arm_func_start FUN_0203293c -FUN_0203293c: @ 0x0203293C - ldr r1, [r0, #0x10] - tst r1, #0x8000 - beq _02032958 - ldr r0, [r0, #0xcc] - cmp r0, #1 - movgt r0, #1 - bxgt lr -_02032958: - mov r0, #0 - bx lr - arm_func_end FUN_0203293c - - arm_func_start FUN_02032960 -FUN_02032960: @ 0x02032960 - push {r3, lr} - ldr r0, [r0, #0x10] - tst r0, #0x10 - moveq r0, #0 - popeq {r3, pc} - mov r0, r1 - bl FUN_02017ccc - mov r0, #1 - pop {r3, pc} - arm_func_end FUN_02032960 - - arm_func_start FUN_02032984 -FUN_02032984: @ 0x02032984 - mvn r1, #0 - str r1, [r0, #0xe8] - str r1, [r0, #0xf0] - str r1, [r0, #0xe4] - str r1, [r0, #0xec] - bx lr - arm_func_end FUN_02032984 - - arm_func_start FUN_0203299c -FUN_0203299c: @ 0x0203299C - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r1 - mov r5, r2 - bl FUN_02033440 - mov r4, r0 - mov r0, r7 - mov r1, r6 - bl FUN_020336fc - cmp r4, r5 - movgt r5, r4 - cmp r0, r5 - movgt r5, r0 - add r1, r5, #7 - asr r0, r1, #2 - add r0, r1, r0, lsr #29 - asr r0, r0, #3 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0203299c - - arm_func_start FUN_020329e4 -FUN_020329e4: @ 0x020329E4 - tst r0, #0x40000 - bne _020329FC - ldr ip, [r2] - ldr r2, [r3] - cmp r2, ip - strgt ip, [r3] -_020329FC: - tst r0, #0x400 - ldrne ip, [r1, #4] - ldr r2, [r3] - moveq ip, #0xe - mul r3, r2, ip - tst r0, #0x800 - ldrne r1, [r1, #0xc] - addne r3, r3, r1 - tst r0, #0x1000 - addne r3, r3, #0x10 - add r1, r3, #7 - asr r0, r1, #2 - add r0, r1, r0, lsr #29 - asr r0, r0, #3 - bx lr - arm_func_end FUN_020329e4 - - arm_func_start FUN_02032a38 -FUN_02032a38: @ 0x02032A38 - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov sb, r1 - mov r6, r2 - tst sb, #0x400 - ldrne r4, [r6, #4] - mov r7, r0 - mov r5, r3 - moveq r4, #0xe - mov r8, r6 - str sb, [r7, #0x10] - add lr, r7, #0x14 - mov ip, #9 -_02032A68: - ldm r8!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _02032A68 - ldm r8, {r0, r1} - stm lr, {r0, r1} - ldm r5, {r0, r1, r2, r3} - stm r7, {r0, r1, r2, r3} - mov r0, #0 - str r0, [r7, #0xbc] - str r0, [r7, #0xc8] - tst sb, #0x200 - ldrne r0, [r6, #0x60] - ldr r1, [sp, #0x20] - str r0, [r7, #0xac] - ldrb r0, [sp, #0x28] - str r1, [r7, #0xd0] - strb r0, [r7, #0xd5] - ldr r0, [r7, #0x10] - tst r0, #0x8000 - beq _02032AD8 - ldr r0, [sp, #0x24] - cmp r0, #0 - movle r0, #1 - str r0, [r7, #0xc4] - mov r0, #1 - str r0, [r7, #0xcc] - b _02032AE0 -_02032AD8: - str r1, [r7, #0xc0] - str r1, [r7, #0xc4] -_02032AE0: - mov r0, r7 - bl FUN_020331d4 - ldr r0, [r7, #0xcc] - mov r3, #0 - cmp r0, #0xa - ldrge r0, [r7, #0x10] - orrge r0, r0, #0x10000 - strge r0, [r7, #0x10] - str r3, [r7, #0xb0] - ldr r0, [r7, #0x10] - tst r0, #0x800 - ldrne r3, [r6, #0xc] - str r3, [r7, #0xb4] - ldm r5, {r1, r2} - ldr r0, [r7, #0x10] - sub r1, r2, r1 - sub r1, r1, r3 - mov r3, #0 - tst r0, #0x1000 - subne r1, r1, #0x10 - strb r3, [r7, #0xd4] - cmp r4, #0 - ble _02032B74 - ldr r0, [r7, #0x10] - tst r0, #0x80000 - bne _02032B68 - ldr r0, [r7, #0xc4] - ldr r2, [r7, #0xb4] - mul r0, r4, r0 - sub r0, r1, r0 - add r0, r0, r0, lsr #31 - adds r0, r2, r0, asr #1 - str r0, [r7, #0xb4] - strmi r3, [r7, #0xb4] -_02032B68: - lsl r0, r4, #8 - str r0, [r7, #0xb8] - b _02032B7C -_02032B74: - mov r0, r7 - bl FUN_0203330c -_02032B7C: - ldr r0, [r7, #0x10] - tst r0, #0x20 - beq _02032B94 - ldr r1, [r6] - mov r0, r7 - bl FUN_020330ec -_02032B94: - bl KeyWaitInit - mov r1, #0 - str r1, [r7, #0xd8] - sub r0, r1, #1 - str r0, [r7, #0xdc] - mov r0, r7 - str r1, [r7, #0xe0] - bl FUN_020333fc - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_02032a38 - - arm_func_start FUN_02032bb8 -FUN_02032bb8: @ 0x02032BB8 - push {r3, r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #0x24 - mov sb, r0 - mov r6, r3 - mov r8, r1 - mov r7, r2 - ldr r4, [sb, #0xc8] - ldr r5, [sb, #0xbc] - bl FUN_02033414 - mov sl, r0 - cmp r6, #0 - add r0, sp, #0 - beq _02032D04 - ldr r1, [sb, #0x10] - bl FUN_02031914 - ldr r1, [sb, #0x10] - mov r6, r0 - tst r1, #0x8000 - beq _02032C44 - tst r1, #0x20000 - beq _02032C44 - tst r1, #0x2000000 - bne _02032C44 - tst r6, #8 - beq _02032C44 - tst r6, #0x10 - beq _02032C30 - mov r0, sb - bl FUN_020332ac - b _02032C74 -_02032C30: - tst r6, #0x20 - beq _02032C74 - mov r0, sb - bl FUN_02033284 - b _02032C74 -_02032C44: - tst r1, #0x1000000 - cmpeq sl, #0 - bne _02032C74 - tst r6, #0x10 - beq _02032C64 - mov r0, sb - bl FUN_020330b4 - b _02032C74 -_02032C64: - tst r6, #0x20 - beq _02032C74 - mov r0, sb - bl FUN_02033078 -_02032C74: - ldr r0, [sb, #0x10] - tst r0, #0x8000 - beq _02032CEC - tst r0, #0x20000 - bne _02032CEC - tst r0, #0x2000000 - bne _02032CEC - tst r0, #0x10000 - beq _02032CC8 - tst r6, #8 - beq _02032CC8 - tst r6, #0x40 - beq _02032CB4 - mov r0, sb - bl FUN_020332f0 - b _02032CEC -_02032CB4: - tst r6, #0x80 - beq _02032CEC - mov r0, sb - bl FUN_020332cc - b _02032CEC -_02032CC8: - tst r6, #0x40 - beq _02032CDC - mov r0, sb - bl FUN_020332ac - b _02032CEC -_02032CDC: - tst r6, #0x80 - beq _02032CEC - mov r0, sb - bl FUN_02033284 -_02032CEC: - ldr r0, [sb, #0x10] - tst r0, #1 - biceq r6, r6, #1 - tst r0, #2 - biceq r6, r6, #2 - b _02032D0C -_02032D04: - mov r6, #0 - bl FUN_02006bfc -_02032D0C: - cmp r8, #0 - strne r6, [r8] - cmp r7, #0 - beq _02032D3C - add r8, sp, #0 - mov r6, #2 -_02032D24: - ldm r8!, {r0, r1, r2, r3} - stm r7!, {r0, r1, r2, r3} - subs r6, r6, #1 - bne _02032D24 - ldr r0, [r8] - str r0, [r7] -_02032D3C: - ldr r0, [sb, #0xc8] - cmp r4, r0 - beq _02032D5C - mov r0, sb - mov r1, #4 - bl FUN_020333d8 - mov r0, #1 - b _02032DA8 -_02032D5C: - ldr r0, [sb, #0xbc] - cmp r5, r0 - beq _02032D74 - mov r0, sb - mov r1, #3 - bl FUN_020333d8 -_02032D74: - ldr r0, [sb, #0xd8] - cmp r0, #0 - ble _02032DA4 - subs r0, r0, #1 - str r0, [sb, #0xd8] - bne _02032DA4 - mvn r0, #0 - str r0, [sb, #0xdc] - mov r0, #0 - str r0, [sb, #0xe0] - mov r0, #1 - b _02032DA8 -_02032DA4: - mov r0, #0 -_02032DA8: - add sp, sp, #0x24 - pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_end FUN_02032bb8 - - arm_func_start FUN_02032db0 -FUN_02032db0: @ 0x02032DB0 - ldr r1, [r0, #0xd8] - cmp r1, #0 - ble _02032DE0 - subs r1, r1, #1 - str r1, [r0, #0xd8] - mvneq r1, #0 - streq r1, [r0, #0xdc] - moveq r1, #0 - streq r1, [r0, #0xe0] - beq _02032DE0 - mov r0, #1 - bx lr -_02032DE0: - mov r0, #0 - bx lr - arm_func_end FUN_02032db0 - - arm_func_start FUN_02032de8 -FUN_02032de8: @ 0x02032DE8 - mov r2, #6 - str r2, [r0, #0xd8] - sub r2, r2, #7 - str r1, [r0, #0xe0] - str r2, [r0, #0xe8] - str r2, [r0, #0xe4] - str r2, [r0, #0xf0] - str r2, [r0, #0xec] - bx lr - arm_func_end FUN_02032de8 - - arm_func_start FUN_02032e0c -FUN_02032e0c: @ 0x02032E0C - push {r3, r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x10 - mov r8, r1 - ldrh r1, [r8] - mov r7, r2 - mov sb, r0 - tst r1, r7 - beq _02032F50 - cmp r3, #0 - ldrge r0, [sb, #8] - ldr r5, [sb, #0xc0] - ldrlt r0, [sb, #0xc] - ldr r1, [sp, #0x30] - add r0, r0, r3 - str r0, [sp, #8] - cmp r1, #0 - ldrgt r0, [sb, #8] - mov r6, #0 - ldrle r0, [sb, #0xc] - add r4, sp, #0 - add r0, r0, r1 - str r0, [sp, #0xc] - b _02032F48 -_02032E68: - ldr r0, [sb, #0xb8] - ldr r2, [sb, #0xb4] - mul r1, r6, r0 - asr r0, r1, #7 - add r0, r1, r0, lsr #24 - ldr r1, [sb] - add r0, r2, r0, asr #8 - add r0, r1, r0 - str r0, [sp] - ldr r0, [sb, #0xb8] - add r1, r6, #1 - mul r2, r1, r0 - asr r0, r2, #7 - ldr r1, [sb, #0xb4] - add r0, r2, r0, lsr #24 - ldr r2, [sb] - add r0, r1, r0, asr #8 - add r0, r2, r0 - sub r3, r0, #2 - mov r0, r8 - mov r1, r7 - mov r2, r4 - str r3, [sp, #4] - bl FUN_02006c8c - cmp r0, #0 - beq _02032F44 - ldrb r0, [sp, #0x34] - cmp r0, #0 - beq _02032F34 - mov r0, #6 - str r0, [sb, #0xd8] - sub r0, r0, #7 - str r0, [sb, #0xdc] - mov r0, #0 - str r0, [sb, #0xe0] - ldr r1, [sp, #8] - ldr r0, [sb, #8] - sub r0, r1, r0 - str r0, [sb, #0xec] - ldr r1, [sp, #0xc] - ldr r0, [sb, #8] - sub r0, r1, r0 - str r0, [sb, #0xf0] - ldr r1, [sp] - ldr r0, [sb] - sub r0, r1, r0 - str r0, [sb, #0xe4] - ldr r1, [sp, #4] - ldr r0, [sb] - sub r0, r1, r0 - str r0, [sb, #0xe8] -_02032F34: - ldr r1, [sb, #0xc8] - ldr r0, [sb, #0xc4] - mla r0, r1, r0, r6 - b _02032F54 -_02032F44: - add r6, r6, #1 -_02032F48: - cmp r6, r5 - blt _02032E68 -_02032F50: - mvn r0, #0 -_02032F54: - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_02032e0c - - arm_func_start FUN_02032f5c -FUN_02032f5c: @ 0x02032F5C - push {r3, r4, r5, r6, r7, lr} - mov r7, r1 - mov r4, r0 - mov r6, r2 - mov r5, r3 - tst r7, #0x2000 - mov r0, #0 - beq _02032FA4 - ldr r1, [r4, #0x10] - tst r1, #0x40 - ldrne r3, [r4, #0x78] - cmpne r3, #0 - beq _02032FA4 - ldr r0, [r4, #0x7c] - mov r1, r6 - mov r2, r5 - blx r3 - mov r0, #1 -_02032FA4: - tst r7, #0x1000 - popeq {r3, r4, r5, r6, r7, pc} - ldr r1, [r4, #0x10] - tst r1, #0x80 - ldrne r3, [r4, #0x80] - cmpne r3, #0 - popeq {r3, r4, r5, r6, r7, pc} - ldr r0, [r4, #0x84] - mov r1, r6 - mov r2, r5 - blx r3 - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_02032f5c - - arm_func_start FUN_02032fd8 -FUN_02032fd8: @ 0x02032FD8 - push {r4, lr} - mov r4, r0 - ldr r1, [r4, #0x10] - tst r1, #1 - beq _0203304C - tst r1, #0x8000000 - bne _0203304C - tst r1, #0x200 - beq _02033044 - bl FUN_02033414 - cmp r0, #0 - bne _02033028 - mov r0, r4 - bl FUN_02033064 - ldr r1, [r4, #0xac] - ldrb r0, [r1, r0] - tst r0, #1 - bne _0203304C - mov r0, #1 - pop {r4, pc} -_02033028: - ldr r0, [r4, #0xac] - ldrb r0, [r0, #0x7f] - tst r0, #1 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r4, pc} -_02033044: - mov r0, #1 - pop {r4, pc} -_0203304C: - mov r0, #0 - pop {r4, pc} - arm_func_end FUN_02032fd8 - - arm_func_start FUN_02033054 -FUN_02033054: @ 0x02033054 - ldr r1, [r0, #0xc8] - ldr r0, [r0, #0xc4] - mul r0, r1, r0 - bx lr - arm_func_end FUN_02033054 - - arm_func_start FUN_02033064 -FUN_02033064: @ 0x02033064 - ldr r2, [r0, #0xbc] - ldr r1, [r0, #0xc8] - ldr r0, [r0, #0xc4] - mla r0, r1, r0, r2 - bx lr - arm_func_end FUN_02033064 - - arm_func_start FUN_02033078 -FUN_02033078: @ 0x02033078 - mov r1, #1 - strb r1, [r0, #0xd4] - ldr r1, [r0, #0xc0] - cmp r1, #0 - movle r1, #0 - strle r1, [r0, #0xbc] - bxle lr - ldr r1, [r0, #0xbc] - add r2, r1, #1 - str r2, [r0, #0xbc] - ldr r1, [r0, #0xc0] - cmp r2, r1 - movge r1, #0 - strge r1, [r0, #0xbc] - bx lr - arm_func_end FUN_02033078 - - arm_func_start FUN_020330b4 -FUN_020330b4: @ 0x020330B4 - mov r1, #1 - strb r1, [r0, #0xd4] - ldr r1, [r0, #0xc0] - cmp r1, #0 - movle r1, #0 - strle r1, [r0, #0xbc] - bxle lr - ldr r1, [r0, #0xbc] - subs r1, r1, #1 - str r1, [r0, #0xbc] - ldrmi r1, [r0, #0xc0] - submi r1, r1, #1 - strmi r1, [r0, #0xbc] - bx lr - arm_func_end FUN_020330b4 - - arm_func_start FUN_020330ec -FUN_020330ec: @ 0x020330EC - push {r3, r4, r5, lr} - mov r4, r0 - mov r0, #1 - strb r0, [r4, #0xd4] - movs r5, r1 - ldr r0, [r4, #0x10] - movmi r5, #0 - tst r0, #0x8000 - beq _02033194 - ldr r1, [r4, #0xd0] - cmp r5, r1 - blt _02033168 - ldrb r0, [r4, #0xd5] - cmp r0, #0 - beq _02033140 - ldr r1, [r4, #0xcc] - mov r0, #0 - sub r1, r1, #1 - str r1, [r4, #0xc8] - str r0, [r4, #0xbc] - b _02033188 -_02033140: - sub r5, r1, #1 - ldr r1, [r4, #0xc4] - mov r0, r5 - bl DivideInt - str r0, [r4, #0xc8] - ldr r1, [r4, #0xc4] - mov r0, r5 - bl DivideInt - str r1, [r4, #0xbc] - b _02033188 -_02033168: - ldr r1, [r4, #0xc4] - mov r0, r5 - bl DivideInt - str r0, [r4, #0xc8] - ldr r1, [r4, #0xc4] - mov r0, r5 - bl DivideInt - str r1, [r4, #0xbc] -_02033188: - mov r0, r4 - bl FUN_020331d4 - pop {r3, r4, r5, pc} -_02033194: - ldr r0, [r4, #0xc0] - cmp r5, r0 - subge r0, r0, #1 - strge r0, [r4, #0xbc] - strlt r5, [r4, #0xbc] - pop {r3, r4, r5, pc} - arm_func_end FUN_020330ec - - arm_func_start FUN_020331ac -FUN_020331ac: @ 0x020331AC - push {r4, lr} - mov r4, r0 - str r1, [r4, #0xd0] - bl FUN_020331d4 - mov r0, r4 - bl FUN_02033064 - mov r1, r0 - mov r0, r4 - bl FUN_020330ec - pop {r4, pc} - arm_func_end FUN_020331ac - - arm_func_start FUN_020331d4 -FUN_020331d4: @ 0x020331D4 - push {r4, lr} - mov r4, r0 - ldr r0, [r4, #0x10] - tst r0, #0x8000 - popeq {r4, pc} - ldr r1, [r4, #0xc4] - ldr r0, [r4, #0xd0] - add r0, r0, r1 - sub r0, r0, #1 - bl DivideInt - str r0, [r4, #0xcc] - ldrb r0, [r4, #0xd5] - cmp r0, #0 - ldrne r0, [r4, #0xcc] - addne r0, r0, #1 - strne r0, [r4, #0xcc] - ldr r1, [r4, #0xcc] - ldr r0, [r4, #0xc8] - sub r1, r1, #1 - cmp r0, r1 - strge r1, [r4, #0xc8] - ldr r1, [r4, #0xc8] - ldr r0, [r4, #0xc4] - ldr r2, [r4, #0xd0] - mul r0, r1, r0 - sub r1, r2, r0 - str r1, [r4, #0xc0] - ldr r0, [r4, #0xc4] - cmp r1, r0 - strgt r0, [r4, #0xc0] - mov r0, r4 - bl FUN_02033414 - cmp r0, #0 - movne r0, #0 - strne r0, [r4, #0xbc] - movne r0, #1 - strne r0, [r4, #0xc0] - popne {r4, pc} - ldr r1, [r4, #0xc0] - ldr r0, [r4, #0xbc] - sub r1, r1, #1 - cmp r0, r1 - strgt r1, [r4, #0xbc] - pop {r4, pc} - arm_func_end FUN_020331d4 - - arm_func_start FUN_02033284 -FUN_02033284: @ 0x02033284 - ldr r1, [r0, #0xcc] - ldr r2, [r0, #0xc8] - sub r1, r1, #1 - cmp r2, r1 - movge r1, #0 - addlt r1, r2, #1 - ldr ip, _020332A8 @ =FUN_020331d4 - str r1, [r0, #0xc8] - bx ip - .align 2, 0 -_020332A8: .4byte FUN_020331d4 - arm_func_end FUN_02033284 - - arm_func_start FUN_020332ac -FUN_020332ac: @ 0x020332AC - ldr r1, [r0, #0xc8] - ldr ip, _020332C8 @ =FUN_020331d4 - cmp r1, #0 - ldrle r1, [r0, #0xcc] - sub r1, r1, #1 - str r1, [r0, #0xc8] - bx ip - .align 2, 0 -_020332C8: .4byte FUN_020331d4 - arm_func_end FUN_020332ac - - arm_func_start FUN_020332cc -FUN_020332cc: @ 0x020332CC - ldr r2, [r0, #0xc8] - ldr r1, [r0, #0xcc] - add r2, r2, #0xa - cmp r2, r1 - subge r2, r1, #1 - ldr ip, _020332EC @ =FUN_020331d4 - str r2, [r0, #0xc8] - bx ip - .align 2, 0 -_020332EC: .4byte FUN_020331d4 - arm_func_end FUN_020332cc - - arm_func_start FUN_020332f0 -FUN_020332f0: @ 0x020332F0 - ldr r1, [r0, #0xc8] - ldr ip, _02033308 @ =FUN_020331d4 - subs r1, r1, #0xa - movmi r1, #0 - str r1, [r0, #0xc8] - bx ip - .align 2, 0 -_02033308: .4byte FUN_020331d4 - arm_func_end FUN_020332f0 - - arm_func_start FUN_0203330c -FUN_0203330c: @ 0x0203330C - push {r4, lr} - mov r4, r0 - cmp r1, #0 - ble _0203332C - lsl r0, r1, #8 - ldr r1, [r4, #0xc4] - bl DivideInt - b _02033348 -_0203332C: - ldr r0, [r4, #0xb4] - ldm r4, {r1, r2} - sub r1, r2, r1 - sub r0, r1, r0 - ldr r1, [r4, #0xc4] - lsl r0, r0, #8 - bl DivideInt -_02033348: - str r0, [r4, #0xb8] - pop {r4, pc} - arm_func_end FUN_0203330c - - arm_func_start FUN_02033350 -FUN_02033350: @ 0x02033350 - ldr r2, [r0, #0xb8] - ldr r3, [r0, #0xb4] - mul r2, r1, r2 - asr r0, r2, #7 - add r0, r2, r0, lsr #24 - add r0, r3, r0, asr #8 - bx lr - arm_func_end FUN_02033350 - - arm_func_start FUN_0203336c -FUN_0203336c: @ 0x0203336C - ldr r1, [r0, #0x10] - tst r1, #0x8000 - beq _02033388 - ldr r0, [r0, #0xcc] - cmp r0, #1 - movgt r0, #1 - bxgt lr -_02033388: - mov r0, #0 - bx lr - arm_func_end FUN_0203336c - - arm_func_start FUN_02033390 -FUN_02033390: @ 0x02033390 - ldr r1, [r0, #0x10] - tst r1, #0x8000 - beq _020333AC - ldr r0, [r0, #0xcc] - cmp r0, #1 - movgt r0, #1 - bxgt lr -_020333AC: - mov r0, #0 - bx lr - arm_func_end FUN_02033390 - - arm_func_start FUN_020333b4 -FUN_020333b4: @ 0x020333B4 - ldr r1, [r0, #0x10] - tst r1, #0x8000 - beq _020333D0 - ldr r0, [r0, #0xcc] - cmp r0, #1 - movgt r0, #1 - bxgt lr -_020333D0: - mov r0, #0 - bx lr - arm_func_end FUN_020333b4 - - arm_func_start FUN_020333d8 -FUN_020333d8: @ 0x020333D8 - push {r3, lr} - ldr r0, [r0, #0x10] - tst r0, #0x10 - moveq r0, #0 - popeq {r3, pc} - mov r0, r1 - bl FUN_02017ccc - mov r0, #1 - pop {r3, pc} - arm_func_end FUN_020333d8 - - arm_func_start FUN_020333fc -FUN_020333fc: @ 0x020333FC - mvn r1, #0 - str r1, [r0, #0xe8] - str r1, [r0, #0xf0] - str r1, [r0, #0xe4] - str r1, [r0, #0xec] - bx lr - arm_func_end FUN_020333fc - - arm_func_start FUN_02033414 -FUN_02033414: @ 0x02033414 - ldrb r1, [r0, #0xd5] - cmp r1, #0 - beq _02033438 - ldr r1, [r0, #0xc8] - ldr r2, [r0, #0xcc] - add r0, r1, #1 - cmp r2, r0 - moveq r0, #1 - bxeq lr -_02033438: - mov r0, #0 - bx lr - arm_func_end FUN_02033414 - - arm_func_start FUN_02033440 -FUN_02033440: @ 0x02033440 - push {r4, r5, lr} - sub sp, sp, #0x104 - mov r5, r0 - tst r5, #0x800 - mov r4, #0 - beq _02033498 - ldrh r2, [r1, #8] - cmp r2, #0 - moveq r0, r4 - beq _02033488 - ldr r3, _020334A4 @ =0x0000C402 - add ip, r1, #0x10 - add r0, sp, #4 - mov r1, #0x100 - str ip, [sp] - bl PreprocessStringFromMessageId - add r0, sp, #4 - bl FUN_020265a8 -_02033488: - tst r5, #0x8000 - addne r0, r0, #0x40 - cmp r0, #0 - movgt r4, r0 -_02033498: - mov r0, r4 - add sp, sp, #0x104 - pop {r4, r5, pc} - .align 2, 0 -_020334A4: .4byte 0x0000C402 - arm_func_end FUN_02033440 - - arm_func_start FUN_020334a8 -FUN_020334a8: @ 0x020334A8 - push {r4, r5, lr} - sub sp, sp, #0x154 - mov r5, r0 - ldr r0, [r5, #0x10] - mov r4, r1 - tst r0, #0x800 - beq _02033598 - ldrh r2, [r5, #0x1c] - cmp r2, #0 - beq _020334FC - ldr r3, _020335A0 @ =0x0000C402 - add ip, r5, #0x24 - add r0, sp, #0x54 - mov r1, #0x100 - str ip, [sp] - bl PreprocessStringFromMessageId - add r3, sp, #0x54 - mov r0, r4 - mov r1, #8 - mov r2, #0 - bl FUN_02026214 -_020334FC: - mov r0, #0x17 - str r0, [sp] - ldr r2, [r5, #0xc] - ldr r1, [r5, #8] - mov r0, r4 - sub r1, r2, r1 - sub r3, r1, #4 - mov r1, #2 - mov r2, #0xd - bl FUN_02025d50 - mov r0, r5 - bl FUN_020328f4 - cmp r0, #0 - beq _02033598 - mov r0, r5 - bl FUN_02032560 - add r1, r0, #1 - mov r0, r5 - str r1, [sp, #0x28] - bl FUN_020325a4 - str r0, [sp, #0x2c] - add r1, sp, #4 - str r1, [sp] - ldr r2, _020335A4 @ =0x0209AFC4 - ldr r3, _020335A0 @ =0x0000C402 - add r0, sp, #0x54 - mov r1, #0x100 - bl PreprocessString - add r0, sp, #0x54 - bl FUN_020265a8 - mov ip, r0 - ldr r3, [r5, #0xc] - ldr r1, [r5, #8] - mov r0, r4 - sub r1, r3, r1 - mov r2, #0 - sub r1, r1, ip - add r3, sp, #0x54 - bl FUN_02026214 -_02033598: - add sp, sp, #0x154 - pop {r4, r5, pc} - .align 2, 0 -_020335A0: .4byte 0x0000C402 -_020335A4: .4byte 0x0209AFC4 - arm_func_end FUN_020334a8 - - arm_func_start FUN_020335a8 -FUN_020335a8: @ 0x020335A8 - push {r4, r5, lr} - sub sp, sp, #0x154 - mov r5, r0 - ldr r2, [r5, #0x10] - mov r4, r1 - tst r2, #0x800 - beq _020336E8 - bl FUN_02033414 - cmp r0, #0 - beq _02033610 - ldr r3, _020336F0 @ =0x000008E3 - mov r0, r4 - mov r1, #8 - mov r2, #0 - bl FUN_02026268 - mov r0, #0x17 - str r0, [sp] - ldr r2, [r5, #0xc] - ldr r1, [r5, #8] - mov r0, r4 - sub r1, r2, r1 - sub r3, r1, #4 - mov r1, #2 - mov r2, #0xd - bl FUN_02025d50 - b _020336E8 -_02033610: - add r0, r5, #0x24 - str r0, [sp] - ldrh r2, [r5, #0x1c] - ldr r3, _020336F4 @ =0x0000C402 - add r0, sp, #0x54 - mov r1, #0x100 - bl PreprocessStringFromMessageId - add r3, sp, #0x54 - mov r0, r4 - mov r1, #8 - mov r2, #0 - bl FUN_02026214 - mov r0, #0x17 - str r0, [sp] - ldr r2, [r5, #0xc] - ldr r1, [r5, #8] - mov r0, r4 - sub r1, r2, r1 - sub r3, r1, #4 - mov r1, #2 - mov r2, #0xd - bl FUN_02025d50 - mov r0, r5 - bl FUN_0203336c - cmp r0, #0 - beq _020336E8 - ldr r0, [r5, #0xc8] - ldr r2, _020336F8 @ =0x0209AFC4 - add r0, r0, #1 - str r0, [sp, #0x28] - ldrb r0, [r5, #0xd5] - ldr r3, _020336F4 @ =0x0000C402 - add ip, sp, #4 - cmp r0, #0 - movne r1, #1 - ldr r0, [r5, #0xcc] - moveq r1, #0 - sub r0, r0, r1 - str r0, [sp, #0x2c] - add r0, sp, #0x54 - mov r1, #0x100 - str ip, [sp] - bl PreprocessString - add r0, sp, #0x54 - bl FUN_020265a8 - mov r2, r0 - ldr r1, [r5, #0xc] - ldr r0, [r5, #8] - add r3, sp, #0x54 - sub r1, r1, r0 - sub r1, r1, r2 - mov r0, r4 - mov r2, #0 - bl FUN_02026214 -_020336E8: - add sp, sp, #0x154 - pop {r4, r5, pc} - .align 2, 0 -_020336F0: .4byte 0x000008E3 -_020336F4: .4byte 0x0000C402 -_020336F8: .4byte 0x0209AFC4 - arm_func_end FUN_020335a8 - - arm_func_start FUN_020336fc -FUN_020336fc: @ 0x020336FC - tst r0, #0x1000 - mov r1, #0 - beq _02033750 - mov r2, #4 - tst r0, #0x2000 - addne r2, r2, #0x12 - tst r0, #0x4000 - addne r2, r2, #0x14 - tst r0, #0x20000 - addne r2, r2, #0x1f - bne _02033738 - tst r0, #0x8000 - addne r2, r2, #0x3e - tst r0, #8 - addne r2, r2, #0x1f -_02033738: - tst r0, #4 - addne r2, r2, #0x12 - tst r0, #2 - addne r2, r2, #0x12 - cmp r2, #0 - movgt r1, r2 -_02033750: - mov r0, r1 - bx lr - arm_func_end FUN_020336fc - - arm_func_start FUN_02033758 -FUN_02033758: @ 0x02033758 - push {r3, r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x10 - mov sb, r0 - ldrb r0, [sb, #0xf4] - mov r8, r1 - ldr r1, [sb, #0x10] - cmp r0, #0 - ldrne r0, _02033BBC @ =0x00001002 - mov r7, r2 - moveq r0, #2 - lsl r0, r0, #0x10 - mov r4, #0 - tst r1, #0x1000 - lsr r5, r0, #0x10 - beq _02033B98 - ldrh r0, [r7] - tst r0, r5 - beq _02033B98 - ldmib sb, {r0, r1} - sub r0, r0, #0xf - str r0, [sp] - ldr r0, [sb, #4] - add r6, r1, #4 - sub r0, r0, #2 - str r0, [sp, #4] - ldr r0, [sb, #0x10] - tst r0, #0x2000 - beq _0203380C - mov r0, #0x12 - str r6, [sp, #8] - bl FUN_02026594 - add r0, r6, r0 - sub r3, r0, #1 - add r2, sp, #0 - mov r0, r7 - mov r1, r5 - str r3, [sp, #0xc] - bl FUN_02006c8c - cmp r0, #0 - ldrne r0, [r8] - movne r4, #1 - orrne r0, r0, #0x1000 - orrne r0, r0, #0x1000000 - strne r0, [r8] - add r6, r6, #0x12 -_0203380C: - ldr r0, [sb, #0x10] - tst r0, #0x4000 - beq _0203385C - mov r0, #0x13 - str r6, [sp, #8] - bl FUN_02026594 - add r0, r6, r0 - sub r3, r0, #1 - add r2, sp, #0 - mov r0, r7 - mov r1, r5 - str r3, [sp, #0xc] - bl FUN_02006c8c - cmp r0, #0 - ldrne r0, [r8] - movne r4, #1 - orrne r0, r0, #0x2000 - orrne r0, r0, #0x2000000 - strne r0, [r8] - add r6, r6, #0x14 -_0203385C: - ldr r0, [sb, #0x10] - tst r0, #0x8000 - beq _020339C8 - tst r0, #0x20000 - bne _020339C8 - mov r0, sb - bl FUN_020328f4 - cmp r0, #0 - beq _020339C4 - add r0, r6, #0xb - str r6, [sp, #8] - str r0, [sp, #0xc] - ldr r0, [sb, #0x10] - tst r0, #0x10000 - beq _020338D4 - add r2, sp, #0 - mov r0, r7 - mov r1, r5 - bl FUN_02006c8c - cmp r0, #0 - beq _020338D4 - mov r0, sb - bl FUN_02032864 - mov r0, sb - mov r1, #4 - bl FUN_02032960 - ldr r0, [r8] - mov r4, #1 - orr r0, r0, #0x400000 - str r0, [r8] -_020338D4: - add r1, r6, #0xe - add r0, r6, #0x19 - str r1, [sp, #8] - str r0, [sp, #0xc] - ldr r0, [sb, #0x10] - tst r0, #0x10000 - beq _0203392C - add r2, sp, #0 - mov r0, r7 - mov r1, r5 - bl FUN_02006c8c - cmp r0, #0 - beq _0203392C - mov r0, sb - bl FUN_0203282c - mov r0, sb - mov r1, #4 - bl FUN_02032960 - ldr r0, [r8] - mov r4, #1 - orr r0, r0, #0x800000 - str r0, [r8] -_0203392C: - add ip, r6, #0x1f - add r3, r6, #0x2a - add r2, sp, #0 - mov r0, r7 - mov r1, r5 - str ip, [sp, #8] - str r3, [sp, #0xc] - bl FUN_02006c8c - cmp r0, #0 - beq _02033978 - mov r0, sb - bl FUN_0203280c - mov r0, sb - mov r1, #4 - bl FUN_02032960 - ldr r0, [r8] - mov r4, #1 - orr r0, r0, #0x100000 - str r0, [r8] -_02033978: - add ip, r6, #0x2d - add r3, r6, #0x38 - add r2, sp, #0 - mov r0, r7 - mov r1, r5 - str ip, [sp, #8] - str r3, [sp, #0xc] - bl FUN_02006c8c - cmp r0, #0 - beq _020339C4 - mov r0, sb - bl FUN_020327e4 - mov r0, sb - mov r1, #4 - bl FUN_02032960 - ldr r0, [r8] - mov r4, #1 - orr r0, r0, #0x200000 - str r0, [r8] -_020339C4: - add r6, r6, #0x3e -_020339C8: - ldr r0, [sb, #0x10] - tst r0, #8 - bne _020339EC - tst r0, #0x20000 - beq _02033AE0 - mov r0, sb - bl FUN_020328f4 - cmp r0, #0 - beq _02033AE0 -_020339EC: - add r0, r6, #0xb - str r6, [sp, #8] - str r0, [sp, #0xc] - ldr r0, [sb, #0x10] - tst r0, #0x20000000 - bne _02033A64 - add r2, sp, #0 - mov r0, r7 - mov r1, r5 - bl FUN_02006c8c - cmp r0, #0 - beq _02033A64 - ldr r0, [r8] - orr r0, r0, #0x40000 - str r0, [r8] - ldr r0, [sb, #0x10] - tst r0, #0x20000 - mov r0, sb - beq _02033A58 - bl FUN_020327e4 - mov r0, sb - mov r1, #4 - bl FUN_02032960 - ldr r0, [r8] - orr r0, r0, #0x4000 - str r0, [r8] - b _02033A60 -_02033A58: - mov r1, #0 - bl FUN_02032960 -_02033A60: - mov r4, #1 -_02033A64: - add r1, r6, #0xe - add r0, r6, #0x19 - str r1, [sp, #8] - str r0, [sp, #0xc] - ldr r0, [sb, #0x10] - tst r0, #0x40000000 - bne _02033AE0 - add r2, sp, #0 - mov r0, r7 - mov r1, r5 - bl FUN_02006c8c - cmp r0, #0 - beq _02033AE0 - ldr r0, [r8] - orr r0, r0, #0x80000 - str r0, [r8] - ldr r0, [sb, #0x10] - tst r0, #0x20000 - mov r0, sb - beq _02033AD4 - bl FUN_0203280c - mov r0, sb - mov r1, #4 - bl FUN_02032960 - ldr r0, [r8] - orr r0, r0, #0x8000 - str r0, [r8] - b _02033ADC -_02033AD4: - mov r1, #0 - bl FUN_02032960 -_02033ADC: - mov r4, #1 -_02033AE0: - ldr r1, [sb, #0xc] - ldr r0, [sb, #0x10] - add r6, r1, #4 - tst r0, #2 - beq _02033B2C - sub r6, r6, #0x12 - add r3, r6, #0xb - add r2, sp, #0 - mov r0, r7 - mov r1, r5 - str r6, [sp, #8] - str r3, [sp, #0xc] - bl FUN_02006c8c - cmp r0, #0 - ldrne r0, [r8] - movne r4, #1 - orrne r0, r0, #2 - orrne r0, r0, #0x20000 - strne r0, [r8] -_02033B2C: - ldr r0, [sb, #0x10] - tst r0, #4 - beq _02033B98 - sub ip, r6, #0x12 - sub r3, r6, #7 - add r2, sp, #0 - mov r0, r7 - mov r1, r5 - str ip, [sp, #8] - str r3, [sp, #0xc] - bl FUN_02006c8c - cmp r0, #0 - beq _02033B98 - ldr r0, [sb, #0x10] - tst r0, #0x18000000 - ldreq r0, [r8] - orreq r0, r0, #1 - orreq r0, r0, #0x10000 - streq r0, [r8] - beq _02033B94 - ldr r1, [r8] - mov r0, sb - orr r2, r1, #0x10000 - mov r1, #2 - str r2, [r8] - bl FUN_02032960 -_02033B94: - mov r4, #1 -_02033B98: - ldr r1, [r8] - cmp r1, #0 - beq _02033BB0 - mov r0, sb - bl FUN_020320c8 - mov r4, #1 -_02033BB0: - mov r0, r4 - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_02033BBC: .4byte 0x00001002 - arm_func_end FUN_02033758 - - arm_func_start FUN_02033bc0 -FUN_02033bc0: @ 0x02033BC0 - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #4 - mov r8, r0 - ldr r0, [r8, #0x10] - mov r7, r1 - tst r0, #0x1000 - ldr r4, [r8, #0xe0] - beq _02033ECC - ldm r8, {r1, r2} - mov r0, #0x17 - str r0, [sp] - sub r0, r2, r1 - sub r5, r0, #0x10 - ldr r2, [r8, #0xc] - ldr r1, [r8, #8] - mov r0, r7 - sub r1, r2, r1 - sub r3, r1, #4 - mov r2, r5 - mov r1, #2 - mov r6, #4 - bl FUN_02025d50 - ldr r0, [r8, #0x10] - tst r0, #0x2000 - beq _02033C44 - tst r4, #0x1000000 - ldrne r3, _02033ED4 @ =0x0209AFDC - mov r0, r7 - ldreq r3, _02033ED8 @ =0x0209AFE4 - add r2, r5, #3 - mov r1, #4 - bl FUN_02026214 - add r6, r6, #0x12 -_02033C44: - ldr r0, [r8, #0x10] - tst r0, #0x4000 - beq _02033C70 - tst r4, #0x2000000 - ldrne r3, _02033EDC @ =0x0209AFEC - mov r0, r7 - ldreq r3, _02033EE0 @ =0x0209AFF4 - mov r1, r6 - add r2, r5, #3 - bl FUN_02026214 - add r6, r6, #0x14 -_02033C70: - ldr r0, [r8, #0x10] - tst r0, #0x8000 - beq _02033D74 - tst r0, #0x20000 - bne _02033D74 - mov r0, r8 - bl FUN_020328f4 - cmp r0, #0 - beq _02033D70 - ldr r0, [r8, #0x10] - tst r0, #0x10000 - beq _02033D08 - mov r0, r8 - bl FUN_02032918 - cmp r0, #0 - bne _02033CB8 - tst r4, #0x400000 - beq _02033CD4 -_02033CB8: - tst r4, #0x400000 - ldrne r3, _02033EE4 @ =0x0209AFFC - mov r0, r7 - ldreq r3, _02033EE8 @ =0x0209B004 - mov r1, r6 - add r2, r5, #3 - bl FUN_02026214 -_02033CD4: - mov r0, r8 - bl FUN_0203293c - cmp r0, #0 - bne _02033CEC - tst r4, #0x800000 - beq _02033D08 -_02033CEC: - tst r4, #0x800000 - ldrne r3, _02033EEC @ =0x0209B00C - mov r0, r7 - ldreq r3, _02033EF0 @ =0x0209B014 - add r1, r6, #0xe - add r2, r5, #3 - bl FUN_02026214 -_02033D08: - mov r0, r8 - bl FUN_02032918 - cmp r0, #0 - bne _02033D20 - tst r4, #0x100000 - beq _02033D3C -_02033D20: - tst r4, #0x100000 - ldrne r3, _02033EF4 @ =0x0209B01C - mov r0, r7 - ldreq r3, _02033EF8 @ =0x0209B024 - add r1, r6, #0x1f - add r2, r5, #3 - bl FUN_02026214 -_02033D3C: - mov r0, r8 - bl FUN_0203293c - cmp r0, #0 - bne _02033D54 - tst r4, #0x200000 - beq _02033D70 -_02033D54: - tst r4, #0x200000 - ldrne r3, _02033EFC @ =0x0209B02C - mov r0, r7 - ldreq r3, _02033F00 @ =0x0209B034 - add r1, r6, #0x2d - add r2, r5, #3 - bl FUN_02026214 -_02033D70: - add r6, r6, #0x3e -_02033D74: - ldr r1, [r8, #0x10] - ldr r0, _02033F04 @ =0x00020008 - tst r1, r0 - beq _02033E40 - tst r4, #0x40000 - beq _02033DA4 - ldr r3, _02033F08 @ =0x0209B03C - mov r0, r7 - mov r1, r6 - add r2, r5, #3 - bl FUN_02026214 - b _02033DE0 -_02033DA4: - tst r1, #0x20000000 - bne _02033DE0 - tst r1, #8 - bne _02033DCC - tst r1, #0x20000 - beq _02033DE0 - mov r0, r8 - bl FUN_02032918 - cmp r0, #0 - beq _02033DE0 -_02033DCC: - ldr r3, _02033F0C @ =0x0209B044 - mov r0, r7 - mov r1, r6 - add r2, r5, #3 - bl FUN_02026214 -_02033DE0: - tst r4, #0x80000 - beq _02033E00 - ldr r3, _02033F10 @ =0x0209B04C - mov r0, r7 - add r1, r6, #0xe - add r2, r5, #3 - bl FUN_02026214 - b _02033E40 -_02033E00: - ldr r0, [r8, #0x10] - tst r0, #0x40000000 - bne _02033E40 - tst r0, #8 - bne _02033E2C - tst r0, #0x20000 - beq _02033E40 - mov r0, r8 - bl FUN_0203293c - cmp r0, #0 - beq _02033E40 -_02033E2C: - ldr r3, _02033F14 @ =0x0209B054 - mov r0, r7 - add r1, r6, #0xe - add r2, r5, #3 - bl FUN_02026214 -_02033E40: - ldr r2, [r8, #0xc] - ldr r1, [r8, #8] - ldr r0, [r8, #0x10] - sub r1, r2, r1 - tst r0, #2 - add r6, r1, #4 - beq _02033E7C - tst r4, #0x20000 - ldrne r3, _02033F18 @ =0x0209B05C - sub r6, r6, #0x12 - ldreq r3, _02033F1C @ =0x0209B064 - mov r0, r7 - mov r1, r6 - add r2, r5, #3 - bl FUN_02026214 -_02033E7C: - ldr r0, [r8, #0x10] - tst r0, #4 - beq _02033ECC - tst r0, #0x18000000 - beq _02033EB0 - tst r4, #0x10000 - ldrne r3, _02033F20 @ =0x0209B06C - mov r0, r7 - ldreq r3, _02033F24 @ =0x0209B074 - sub r1, r6, #0x12 - add r2, r5, #3 - bl FUN_02026214 - b _02033ECC -_02033EB0: - tst r4, #0x10000 - ldrne r3, _02033F28 @ =0x0209B07C - mov r0, r7 - ldreq r3, _02033F2C @ =0x0209B084 - sub r1, r6, #0x12 - add r2, r5, #3 - bl FUN_02026214 -_02033ECC: - add sp, sp, #4 - pop {r3, r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02033ED4: .4byte 0x0209AFDC -_02033ED8: .4byte 0x0209AFE4 -_02033EDC: .4byte 0x0209AFEC -_02033EE0: .4byte 0x0209AFF4 -_02033EE4: .4byte 0x0209AFFC -_02033EE8: .4byte 0x0209B004 -_02033EEC: .4byte 0x0209B00C -_02033EF0: .4byte 0x0209B014 -_02033EF4: .4byte 0x0209B01C -_02033EF8: .4byte 0x0209B024 -_02033EFC: .4byte 0x0209B02C -_02033F00: .4byte 0x0209B034 -_02033F04: .4byte 0x00020008 -_02033F08: .4byte 0x0209B03C -_02033F0C: .4byte 0x0209B044 -_02033F10: .4byte 0x0209B04C -_02033F14: .4byte 0x0209B054 -_02033F18: .4byte 0x0209B05C -_02033F1C: .4byte 0x0209B064 -_02033F20: .4byte 0x0209B06C -_02033F24: .4byte 0x0209B074 -_02033F28: .4byte 0x0209B07C -_02033F2C: .4byte 0x0209B084 - arm_func_end FUN_02033bc0 - - arm_func_start FUN_02033f30 -FUN_02033f30: @ 0x02033F30 - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x10 - mov r8, r0 - ldr r0, [r8, #0x10] - mov r7, r1 - mov r6, r2 - tst r0, #0x1000 - mov r4, #0 - beq _0203433C - ldrh r0, [r6] - tst r0, #2 - beq _0203433C - ldmib r8, {r0, r1} - sub r0, r0, #0xf - str r0, [sp] - ldr r0, [r8, #4] - add r5, r1, #4 - sub r0, r0, #2 - str r0, [sp, #4] - ldr r0, [r8, #0x10] - tst r0, #0x2000 - beq _02033FC8 - mov r0, #0x12 - str r5, [sp, #8] - bl FUN_02026594 - add r0, r5, r0 - sub r3, r0, #1 - add r2, sp, #0 - mov r0, r6 - mov r1, #2 - str r3, [sp, #0xc] - bl FUN_02006c8c - cmp r0, #0 - ldrne r0, [r7] - movne r4, #1 - orrne r0, r0, #0x1000 - orrne r0, r0, #0x1000000 - strne r0, [r7] -_02033FC8: - ldr r0, [r8, #0x10] - tst r0, #0x4000 - beq _0203401C - add r1, r5, #0x12 - mov r0, #0x13 - str r1, [sp, #8] - bl FUN_02026594 - add r1, r5, #0x12 - add r0, r1, r0 - sub r3, r0, #1 - add r2, sp, #0 - mov r0, r6 - mov r1, #2 - str r3, [sp, #0xc] - bl FUN_02006c8c - cmp r0, #0 - ldrne r0, [r7] - movne r4, #1 - orrne r0, r0, #0x2000 - orrne r0, r0, #0x2000000 - strne r0, [r7] -_0203401C: - ldr r0, [r8, #0x10] - add r5, r5, #0x26 - tst r0, #0x8000 - beq _0203418C - tst r0, #0x20000 - bne _0203418C - mov r0, r8 - bl FUN_0203336c - cmp r0, #0 - beq _02034188 - add r0, r5, #0xb - str r5, [sp, #8] - str r0, [sp, #0xc] - ldr r0, [r8, #0x10] - tst r0, #0x10000 - beq _02034098 - add r2, sp, #0 - mov r0, r6 - mov r1, #2 - bl FUN_02006c8c - cmp r0, #0 - beq _02034098 - mov r0, r8 - bl FUN_020332f0 - mov r0, r8 - mov r1, #4 - bl FUN_020333d8 - ldr r0, [r7] - mov r4, #1 - orr r0, r0, #0x400000 - str r0, [r7] -_02034098: - add r1, r5, #0xe - add r0, r5, #0x19 - str r1, [sp, #8] - str r0, [sp, #0xc] - ldr r0, [r8, #0x10] - tst r0, #0x10000 - beq _020340F0 - add r2, sp, #0 - mov r0, r6 - mov r1, #2 - bl FUN_02006c8c - cmp r0, #0 - beq _020340F0 - mov r0, r8 - bl FUN_020332cc - mov r0, r8 - mov r1, #4 - bl FUN_020333d8 - ldr r0, [r7] - mov r4, #1 - orr r0, r0, #0x800000 - str r0, [r7] -_020340F0: - add ip, r5, #0x1f - add r3, r5, #0x2a - add r2, sp, #0 - mov r0, r6 - mov r1, #2 - str ip, [sp, #8] - str r3, [sp, #0xc] - bl FUN_02006c8c - cmp r0, #0 - beq _0203413C - mov r0, r8 - bl FUN_020332ac - mov r0, r8 - mov r1, #4 - bl FUN_020333d8 - ldr r0, [r7] - mov r4, #1 - orr r0, r0, #0x100000 - str r0, [r7] -_0203413C: - add ip, r5, #0x2d - add r3, r5, #0x38 - add r2, sp, #0 - mov r0, r6 - mov r1, #2 - str ip, [sp, #8] - str r3, [sp, #0xc] - bl FUN_02006c8c - cmp r0, #0 - beq _02034188 - mov r0, r8 - bl FUN_02033284 - mov r0, r8 - mov r1, #4 - bl FUN_020333d8 - ldr r0, [r7] - mov r4, #1 - orr r0, r0, #0x200000 - str r0, [r7] -_02034188: - add r5, r5, #0x3e -_0203418C: - ldr r1, [r8, #0x10] - ands r0, r1, #8 - beq _020342AC - cmp r0, #0 - bne _020341B8 - tst r1, #0x20000 - beq _020342AC - mov r0, r8 - bl FUN_0203336c - cmp r0, #0 - beq _020342AC -_020341B8: - add r0, r5, #0xb - str r5, [sp, #8] - str r0, [sp, #0xc] - ldr r0, [r8, #0x10] - tst r0, #0x40000000 - bne _02034230 - add r2, sp, #0 - mov r0, r6 - mov r1, #2 - bl FUN_02006c8c - cmp r0, #0 - beq _02034230 - ldr r0, [r7] - orr r0, r0, #0x40000 - str r0, [r7] - ldr r0, [r8, #0x10] - tst r0, #0x20000 - mov r0, r8 - beq _02034224 - bl FUN_020332ac - mov r0, r8 - mov r1, #4 - bl FUN_020333d8 - ldr r0, [r7] - orr r0, r0, #0x4000 - str r0, [r7] - b _0203422C -_02034224: - mov r1, #0 - bl FUN_020333d8 -_0203422C: - mov r4, #1 -_02034230: - add r1, r5, #0xe - add r0, r5, #0x19 - str r1, [sp, #8] - str r0, [sp, #0xc] - ldr r0, [r8, #0x10] - tst r0, #0x20000000 - bne _020342AC - add r2, sp, #0 - mov r0, r6 - mov r1, #2 - bl FUN_02006c8c - cmp r0, #0 - beq _020342AC - ldr r0, [r7] - orr r0, r0, #0x80000 - str r0, [r7] - ldr r0, [r8, #0x10] - tst r0, #0x20000 - mov r0, r8 - beq _020342A0 - bl FUN_02033284 - mov r0, r8 - mov r1, #4 - bl FUN_020333d8 - ldr r0, [r7] - orr r0, r0, #0x8000 - str r0, [r7] - b _020342A8 -_020342A0: - mov r1, #0 - bl FUN_020333d8 -_020342A8: - mov r4, #1 -_020342AC: - ldr r1, [r8, #0xc] - ldr r0, [r8, #0x10] - add r5, r1, #4 - tst r0, #2 - beq _020342F8 - sub r5, r5, #0x12 - add r3, r5, #0xb - add r2, sp, #0 - mov r0, r6 - mov r1, #2 - str r5, [sp, #8] - str r3, [sp, #0xc] - bl FUN_02006c8c - cmp r0, #0 - ldrne r0, [r7] - movne r4, #1 - orrne r0, r0, #2 - orrne r0, r0, #0x20000 - strne r0, [r7] -_020342F8: - ldr r0, [r8, #0x10] - tst r0, #4 - beq _0203433C - sub ip, r5, #0x12 - sub r3, r5, #7 - add r2, sp, #0 - mov r0, r6 - mov r1, #2 - str ip, [sp, #8] - str r3, [sp, #0xc] - bl FUN_02006c8c - cmp r0, #0 - ldrne r0, [r7] - movne r4, #1 - orrne r0, r0, #1 - orrne r0, r0, #0x10000 - strne r0, [r7] -_0203433C: - ldr r1, [r7] - cmp r1, #0 - beq _02034354 - mov r0, r8 - bl FUN_02032de8 - mov r4, #1 -_02034354: - mov r0, r4 - add sp, sp, #0x10 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_02033f30 - - arm_func_start FUN_02034360 -FUN_02034360: @ 0x02034360 - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #4 - mov r8, r0 - ldr r0, [r8, #0x10] - mov r7, r1 - tst r0, #0x1000 - ldr r4, [r8, #0xe0] - beq _02034660 - ldm r8, {r1, r2} - mov r0, #0x17 - str r0, [sp] - sub r0, r2, r1 - sub r5, r0, #0x10 - ldr r2, [r8, #0xc] - ldr r1, [r8, #8] - mov r0, r7 - sub r1, r2, r1 - sub r3, r1, #4 - mov r2, r5 - mov r1, #2 - mov r6, #4 - bl FUN_02025d50 - ldr r0, [r8, #0x10] - tst r0, #0x2000 - beq _020343E0 - tst r4, #0x1000000 - ldrne r3, _02034668 @ =0x0209AFDC - mov r0, r7 - ldreq r3, _0203466C @ =0x0209AFE4 - add r2, r5, #3 - mov r1, #4 - bl FUN_02026214 -_020343E0: - ldr r0, [r8, #0x10] - tst r0, #0x4000 - beq _02034408 - tst r4, #0x2000000 - ldrne r3, _02034670 @ =0x0209AFEC - mov r0, r7 - ldreq r3, _02034674 @ =0x0209AFF4 - add r2, r5, #3 - mov r1, #0x16 - bl FUN_02026214 -_02034408: - ldr r0, [r8, #0x10] - add r6, r6, #0x26 - tst r0, #0x8000 - beq _02034510 - tst r0, #0x20000 - bne _02034510 - mov r0, r8 - bl FUN_0203336c - cmp r0, #0 - beq _0203450C - ldr r0, [r8, #0x10] - tst r0, #0x10000 - beq _020344A4 - mov r0, r8 - bl FUN_02033390 - cmp r0, #0 - bne _02034454 - tst r4, #0x400000 - beq _02034470 -_02034454: - tst r4, #0x400000 - ldrne r3, _02034678 @ =0x0209AFFC - mov r0, r7 - ldreq r3, _0203467C @ =0x0209B004 - mov r1, r6 - add r2, r5, #3 - bl FUN_02026214 -_02034470: - mov r0, r8 - bl FUN_020333b4 - cmp r0, #0 - bne _02034488 - tst r4, #0x800000 - beq _020344A4 -_02034488: - tst r4, #0x800000 - ldrne r3, _02034680 @ =0x0209B00C - mov r0, r7 - ldreq r3, _02034684 @ =0x0209B014 - add r1, r6, #0xe - add r2, r5, #3 - bl FUN_02026214 -_020344A4: - mov r0, r8 - bl FUN_02033390 - cmp r0, #0 - bne _020344BC - tst r4, #0x100000 - beq _020344D8 -_020344BC: - tst r4, #0x100000 - ldrne r3, _02034688 @ =0x0209B01C - mov r0, r7 - ldreq r3, _0203468C @ =0x0209B024 - add r1, r6, #0x1f - add r2, r5, #3 - bl FUN_02026214 -_020344D8: - mov r0, r8 - bl FUN_020333b4 - cmp r0, #0 - bne _020344F0 - tst r4, #0x200000 - beq _0203450C -_020344F0: - tst r4, #0x200000 - ldrne r3, _02034690 @ =0x0209B02C - mov r0, r7 - ldreq r3, _02034694 @ =0x0209B034 - add r1, r6, #0x2d - add r2, r5, #3 - bl FUN_02026214 -_0203450C: - add r6, r6, #0x3e -_02034510: - ldr r1, [r8, #0x10] - ldr r0, _02034698 @ =0x00020008 - tst r1, r0 - beq _020345DC - tst r4, #0x40000 - beq _02034540 - ldr r3, _0203469C @ =0x0209B03C - mov r0, r7 - mov r1, r6 - add r2, r5, #3 - bl FUN_02026214 - b _0203457C -_02034540: - tst r1, #0x20000000 - bne _0203457C - tst r1, #8 - bne _02034568 - tst r1, #0x20000 - beq _0203457C - mov r0, r8 - bl FUN_02033390 - cmp r0, #0 - beq _0203457C -_02034568: - ldr r3, _020346A0 @ =0x0209B044 - mov r0, r7 - mov r1, r6 - add r2, r5, #3 - bl FUN_02026214 -_0203457C: - tst r4, #0x80000 - beq _0203459C - ldr r3, _020346A4 @ =0x0209B04C - mov r0, r7 - add r1, r6, #0xe - add r2, r5, #3 - bl FUN_02026214 - b _020345DC -_0203459C: - ldr r0, [r8, #0x10] - tst r0, #0x40000000 - bne _020345DC - tst r0, #8 - bne _020345C8 - tst r0, #0x20000 - beq _020345DC - mov r0, r8 - bl FUN_020333b4 - cmp r0, #0 - beq _020345DC -_020345C8: - ldr r3, _020346A8 @ =0x0209B054 - mov r0, r7 - add r1, r6, #0xe - add r2, r5, #3 - bl FUN_02026214 -_020345DC: - ldr r2, [r8, #0xc] - ldr r1, [r8, #8] - ldr r0, [r8, #0x10] - sub r1, r2, r1 - tst r0, #2 - add r6, r1, #4 - beq _02034618 - tst r4, #0x20000 - ldrne r3, _020346AC @ =0x0209B05C - sub r6, r6, #0x12 - ldreq r3, _020346B0 @ =0x0209B064 - mov r0, r7 - mov r1, r6 - add r2, r5, #3 - bl FUN_02026214 -_02034618: - ldr r0, [r8, #0x10] - tst r0, #4 - beq _02034660 - tst r0, #0x18000000 - beq _02034644 - ldr r3, _020346B4 @ =0x0209B074 - mov r0, r7 - sub r1, r6, #0x12 - add r2, r5, #3 - bl FUN_02026214 - b _02034660 -_02034644: - tst r4, #0x10000 - ldrne r3, _020346B8 @ =0x0209B07C - mov r0, r7 - ldreq r3, _020346BC @ =0x0209B084 - sub r1, r6, #0x12 - add r2, r5, #3 - bl FUN_02026214 -_02034660: - add sp, sp, #4 - pop {r3, r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02034668: .4byte 0x0209AFDC -_0203466C: .4byte 0x0209AFE4 -_02034670: .4byte 0x0209AFEC -_02034674: .4byte 0x0209AFF4 -_02034678: .4byte 0x0209AFFC -_0203467C: .4byte 0x0209B004 -_02034680: .4byte 0x0209B00C -_02034684: .4byte 0x0209B014 -_02034688: .4byte 0x0209B01C -_0203468C: .4byte 0x0209B024 -_02034690: .4byte 0x0209B02C -_02034694: .4byte 0x0209B034 -_02034698: .4byte 0x00020008 -_0203469C: .4byte 0x0209B03C -_020346A0: .4byte 0x0209B044 -_020346A4: .4byte 0x0209B04C -_020346A8: .4byte 0x0209B054 -_020346AC: .4byte 0x0209B05C -_020346B0: .4byte 0x0209B064 -_020346B4: .4byte 0x0209B074 -_020346B8: .4byte 0x0209B07C -_020346BC: .4byte 0x0209B084 - arm_func_end FUN_02034360 - - arm_func_start FUN_020346c0 -FUN_020346c0: @ 0x020346C0 - push {r4, lr} - mov r0, #0xdc - mov r1, #1 - bl MemAlloc - mov r4, r0 - ldr ip, _02034708 @ =0x020AFDB8 - ldr r0, _0203470C @ =0x0209B08C - str r4, [ip] - add lr, r4, #0xc4 - ldm r0, {r0, r1, r2, r3} - stm lr, {r0, r1, r2, r3} - mov r1, #0 - str r1, [r4, #0xd4] - ldr r0, [ip] - strb r1, [r0, #0xd8] - bl FUN_02034710 - bl FUN_020469bc - pop {r4, pc} - .align 2, 0 -_02034708: .4byte 0x020AFDB8 -_0203470C: .4byte 0x0209B08C - arm_func_end FUN_020346c0 - - arm_func_start FUN_02034710 -FUN_02034710: @ 0x02034710 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0x10 - ldr r1, _02034798 @ =0x020AFDB8 - ldr r0, _0203479C @ =0x0209B08C - ldr r1, [r1] - add r4, r1, #0xc4 - mov r1, r4 - bl FUN_020347a0 - cmp r0, #0 - bne _0203473C - bl FUN_020347f0 -_0203473C: - ldr r0, _0203479C @ =0x0209B08C - add r7, sp, #0 - ldm r0, {r0, r1, r2, r3} - stm r7, {r0, r1, r2, r3} - ldr ip, _02034798 @ =0x020AFDB8 - ldm r7, {r0, r1, r2, r3} - ldr r5, [ip] - mov r6, #0 - stm r5, {r0, r1, r2, r3} - strb r6, [r5, #0x10] - ldr r5, [ip] - ldm r7, {r0, r1, r2, r3} - add lr, r5, #0x14 - stm lr, {r0, r1, r2, r3} - str r6, [r5, #0x24] - ldr r0, [ip] - strb r6, [r0, #0xc0] - ldm r7, {r0, r1, r2, r3} - stm r4, {r0, r1, r2, r3} - ldr r0, [ip] - str r6, [r0, #0xd4] - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02034798: .4byte 0x020AFDB8 -_0203479C: .4byte 0x0209B08C - arm_func_end FUN_02034710 - - arm_func_start FUN_020347a0 -FUN_020347a0: @ 0x020347A0 - cmp r0, #0 - ldreq r0, _020347EC @ =0x0209B08C - cmp r1, #0 - ldreq r1, _020347EC @ =0x0209B08C - ldr r3, [r0] - ldr r2, [r1] - cmp r3, r2 - ldreq r3, [r0, #4] - ldreq r2, [r1, #4] - cmpeq r3, r2 - ldreq r3, [r0, #8] - ldreq r2, [r1, #8] - cmpeq r3, r2 - ldreq r2, [r0, #0xc] - ldreq r0, [r1, #0xc] - cmpeq r2, r0 - moveq r0, #1 - movne r0, #0 - bx lr - .align 2, 0 -_020347EC: .4byte 0x0209B08C - arm_func_end FUN_020347a0 - - arm_func_start FUN_020347f0 -FUN_020347f0: @ 0x020347F0 - push {r4, lr} - ldr r0, _0203483C @ =0x020AFDB8 - ldr r4, [r0] - ldr r0, [r4, #0xcc] - cmp r0, #0 - beq _0203480C - blx r0 -_0203480C: - ldr r0, _0203483C @ =0x020AFDB8 - ldr r0, [r0] - ldrb r0, [r0, #0xd8] - cmp r0, #0 - popeq {r4, pc} - ldr r0, [r4, #0xc4] - bl UnloadOverlay - ldr r0, _0203483C @ =0x020AFDB8 - mov r1, #0 - ldr r0, [r0] - strb r1, [r0, #0xd8] - pop {r4, pc} - .align 2, 0 -_0203483C: .4byte 0x020AFDB8 - arm_func_end FUN_020347f0 - - arm_func_start FUN_02034840 -FUN_02034840: @ 0x02034840 - push {r4, lr} - ldr r1, _020348DC @ =0x020AFDB8 - mov r4, r0 - ldr r2, [r1] - ldrb r1, [r2, #0x10] - cmp r1, #0 - beq _02034894 - cmp r4, #0 - beq _0203487C - add r1, r2, #0x14 - bl FUN_020347a0 - cmp r0, #0 - beq _02034894 - mov r0, #1 - pop {r4, pc} -_0203487C: - ldr r0, _020348E0 @ =0x0209B08C - add r1, r2, #0x14 - bl FUN_020347a0 - cmp r0, #0 - moveq r0, #1 - popeq {r4, pc} -_02034894: - cmp r4, #0 - beq _020348B4 - ldr r1, _020348DC @ =0x020AFDB8 - mov r0, r4 - ldr r1, [r1] - add r1, r1, #0xc4 - bl FUN_020347a0 - pop {r4, pc} -_020348B4: - ldr r1, _020348DC @ =0x020AFDB8 - ldr r0, _020348E0 @ =0x0209B08C - ldr r1, [r1] - add r1, r1, #0x14 - bl FUN_020347a0 - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r4, pc} - .align 2, 0 -_020348DC: .4byte 0x020AFDB8 -_020348E0: .4byte 0x0209B08C - arm_func_end FUN_02034840 - - arm_func_start FUN_020348e4 -FUN_020348e4: @ 0x020348E4 - push {r3, r4, r5, lr} - ldr r1, _02034970 @ =0x020AFDB8 - mov r4, r0 - ldr r1, [r1] - add r1, r1, #0xc4 - bl FUN_020347a0 - cmp r0, #0 - bne _02034968 - ldr r0, _02034970 @ =0x020AFDB8 - ldr r1, [r0] - ldrb r0, [r1, #0x10] - cmp r0, #0 - beq _02034930 - mov r0, r4 - add r1, r1, #0x14 - bl FUN_020347a0 - cmp r0, #0 - movne r0, #0 - popne {r3, r4, r5, pc} -_02034930: - ldr r0, _02034970 @ =0x020AFDB8 - mov r5, #1 - ldr r1, [r0] - mov lr, #0 - strb r5, [r1, #0x10] - ldr r1, [r0] - strb lr, [r1, #0xc0] - ldr ip, [r0] - ldm r4, {r0, r1, r2, r3} - add r4, ip, #0x14 - stm r4, {r0, r1, r2, r3} - str lr, [ip, #0x24] - mov r0, r5 - pop {r3, r4, r5, pc} -_02034968: - mov r0, #0 - pop {r3, r4, r5, pc} - .align 2, 0 -_02034970: .4byte 0x020AFDB8 - arm_func_end FUN_020348e4 - - arm_func_start FUN_02034974 -FUN_02034974: @ 0x02034974 - push {r4, r5, r6, lr} - ldr r3, _02034A34 @ =0x020AFDB8 - mov r5, r1 - ldr r1, [r3] - mov r6, r0 - add r1, r1, #0xc4 - mov r4, r2 - bl FUN_020347a0 - cmp r0, #0 - bne _02034A2C - ldr r0, _02034A34 @ =0x020AFDB8 - ldr r1, [r0] - ldrb r0, [r1, #0x10] - cmp r0, #0 - beq _020349C8 - mov r0, r6 - add r1, r1, #0x14 - bl FUN_020347a0 - cmp r0, #0 - movne r0, #0 - popne {r4, r5, r6, pc} -_020349C8: - ldr ip, _02034A34 @ =0x020AFDB8 - mov r2, #1 - ldr r0, [ip] - mov r1, #0 - strb r2, [r0, #0x10] - ldr r0, [ip] - cmp r4, #0 - strb r1, [r0, #0xc0] - ldr lr, [ip] - ldm r6, {r0, r1, r2, r3} - add r6, lr, #0x14 - stm r6, {r0, r1, r2, r3} - str r5, [lr, #0x24] - beq _02034A24 - ldr r0, [ip] - mov r5, #9 - add r6, r0, #0x28 -_02034A0C: - ldm r4!, {r0, r1, r2, r3} - stm r6!, {r0, r1, r2, r3} - subs r5, r5, #1 - bne _02034A0C - ldm r4, {r0, r1} - stm r6, {r0, r1} -_02034A24: - mov r0, #1 - pop {r4, r5, r6, pc} -_02034A2C: - mov r0, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_02034A34: .4byte 0x020AFDB8 - arm_func_end FUN_02034974 - - arm_func_start FUN_02034a38 -FUN_02034a38: @ 0x02034A38 - push {r3, r4, r5, lr} - ldr r1, _02034A7C @ =0x020AFDB8 - mov r5, r0 - ldr r4, [r1] - ldr r0, [r4, #0x24] - cmp r0, #0 - beq _02034A74 - add lr, r4, #0x28 - mov ip, #9 -_02034A5C: - ldm lr!, {r0, r1, r2, r3} - stm r5!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _02034A5C - ldm lr, {r0, r1} - stm r5, {r0, r1} -_02034A74: - ldr r0, [r4, #0x24] - pop {r3, r4, r5, pc} - .align 2, 0 -_02034A7C: .4byte 0x020AFDB8 - arm_func_end FUN_02034a38 - - arm_func_start FUN_02034a80 -FUN_02034a80: @ 0x02034A80 - push {r4, r5, r6, lr} - sub sp, sp, #0x10 - ldr r0, _02034C9C @ =0x020AFDB8 - ldr ip, [r0] - ldr r0, [ip, #0xd4] - add r4, ip, #0xc4 - cmp r0, #1 - beq _02034AAC - cmp r0, #2 - beq _02034B6C - b _02034BE4 -_02034AAC: - ldrb r0, [ip, #0x10] - cmp r0, #0 - beq _02034AD8 - add r6, ip, #0x14 - ldm r6, {r0, r1, r2, r3} - stm r4, {r0, r1, r2, r3} - ldr r0, _02034CA0 @ =0x0209B08C - mov r5, #0 - ldm r0, {r0, r1, r2, r3} - stm r6, {r0, r1, r2, r3} - strb r5, [ip, #0x10] -_02034AD8: - ldr ip, _02034C9C @ =0x020AFDB8 - ldr r6, [ip] - ldrb r0, [r6, #0xc0] - cmp r0, #0 - beq _02034B0C - ldr r0, _02034CA0 @ =0x0209B08C - mov r5, #0 - ldm r0, {r0, r1, r2, r3} - stm r4, {r0, r1, r2, r3} - strb r5, [r6, #0xc0] - ldr r0, [ip] - str r5, [r0, #0xd4] - b _02034C94 -_02034B0C: - ldr r0, [r4] - bl OverlayIsLoaded - cmp r0, #0 - bne _02034B34 - ldr r0, [r4] - bl LoadOverlay - ldr r0, _02034C9C @ =0x020AFDB8 - mov r1, #1 - ldr r0, [r0] - strb r1, [r0, #0xd8] -_02034B34: - ldr r0, [r4, #4] - cmp r0, #0 - beq _02034B5C - blx r0 - cmp r0, #0 - ldreq r0, _02034C9C @ =0x020AFDB8 - moveq r1, #3 - ldreq r0, [r0] - streq r1, [r0, #0xd4] - beq _02034C94 -_02034B5C: - ldr r0, _02034C9C @ =0x020AFDB8 - mov r1, #2 - ldr r0, [r0] - str r1, [r0, #0xd4] -_02034B6C: - add r5, sp, #0 - ldm r4, {r0, r1, r2, r3} - stm r5, {r0, r1, r2, r3} - ldr r0, [r4, #0xc] - blx r0 - mov r5, r0 - sub r0, r5, #3 - cmp r0, #1 - bhi _02034BE4 - add r1, sp, #0 - mov r0, r4 - bl FUN_020347a0 - cmp r0, #0 - beq _02034BE4 - ldr r0, _02034C9C @ =0x020AFDB8 - mov r1, #3 - ldr r0, [r0] - cmp r5, #4 - str r1, [r0, #0xd4] - bne _02034BE4 - bl FUN_020347f0 - ldr r0, _02034CA0 @ =0x0209B08C - ldr ip, _02034C9C @ =0x020AFDB8 - ldm r0, {r0, r1, r2, r3} - stm r4, {r0, r1, r2, r3} - ldr r0, [ip] - mov r1, #0 - strb r1, [r0, #0xc0] - ldr r0, [ip] - str r1, [r0, #0xd4] -_02034BE4: - ldr r0, _02034C9C @ =0x020AFDB8 - ldr r1, [r0] - ldrb r0, [r1, #0x10] - cmp r0, #0 - beq _02034C4C - ldr r0, _02034CA0 @ =0x0209B08C - mov r1, r4 - bl FUN_020347a0 - cmp r0, #0 - bne _02034C10 - bl FUN_020347f0 -_02034C10: - ldr ip, _02034C9C @ =0x020AFDB8 - mov r5, #0 - ldr r6, [ip] - ldr lr, _02034CA0 @ =0x0209B08C - add r0, r6, #0x14 - ldm r0, {r0, r1, r2, r3} - stm r4, {r0, r1, r2, r3} - strb r5, [r6, #0x10] - ldr ip, [ip] - ldm lr, {r0, r1, r2, r3} - add r4, ip, #0x14 - stm r4, {r0, r1, r2, r3} - mov r0, #1 - str r0, [ip, #0xd4] - b _02034C94 -_02034C4C: - ldrb r0, [r1, #0xc0] - cmp r0, #0 - beq _02034C94 - ldr r0, _02034CA0 @ =0x0209B08C - mov r1, r4 - bl FUN_020347a0 - cmp r0, #0 - bne _02034C70 - bl FUN_020347f0 -_02034C70: - ldr r0, _02034CA0 @ =0x0209B08C - ldr ip, _02034C9C @ =0x020AFDB8 - ldm r0, {r0, r1, r2, r3} - stm r4, {r0, r1, r2, r3} - ldr r0, [ip] - mov r1, #0 - strb r1, [r0, #0xc0] - ldr r0, [ip] - str r1, [r0, #0xd4] -_02034C94: - add sp, sp, #0x10 - pop {r4, r5, r6, pc} - .align 2, 0 -_02034C9C: .4byte 0x020AFDB8 -_02034CA0: .4byte 0x0209B08C - arm_func_end FUN_02034a80 - - arm_func_start FUN_02034ca4 -FUN_02034ca4: @ 0x02034CA4 - push {r3, lr} - ldr r0, _02034D08 @ =0x020AFDBC - ldr r1, [r0, #8] - cmp r1, #0 - beq _02034CE4 - ldr r1, [r0, #0xc] - ldrb r0, [r1, #0x480] - cmp r0, #0 - bne _02034D00 - ldr r0, [r1, #0x10] - cmp r0, #0 - moveq r0, #3 - streq r0, [r1, #0x10] - beq _02034D00 - mov r0, #0 - pop {r3, pc} -_02034CE4: - ldr r0, [r0, #0xc] - cmp r0, #0 - beq _02034D00 - bl MemFree - ldr r0, _02034D08 @ =0x020AFDBC - mov r1, #0 - str r1, [r0, #0xc] -_02034D00: - mov r0, #1 - pop {r3, pc} - .align 2, 0 -_02034D08: .4byte 0x020AFDBC - arm_func_end FUN_02034ca4 - - arm_func_start FUN_02034d0c -FUN_02034d0c: @ 0x02034D0C - push {r3, lr} - ldr r0, _02034D4C @ =0x020AFDBC - ldr r1, [r0, #8] - ldr r0, [r0, #0xc] - cmp r1, #0 - movne r1, #1 - strbne r1, [r0, #0x480] - bne _02034D44 - cmp r0, #0 - beq _02034D44 - bl MemFree - ldr r0, _02034D4C @ =0x020AFDBC - mov r1, #0 - str r1, [r0, #0xc] -_02034D44: - mov r0, #1 - pop {r3, pc} - .align 2, 0 -_02034D4C: .4byte 0x020AFDBC - arm_func_end FUN_02034d0c - - arm_func_start FUN_02034d50 -FUN_02034d50: @ 0x02034D50 - push {r3, lr} - ldr r0, _02034DA0 @ =0x020AFDBC - ldr r0, [r0, #0xc] - cmp r0, #0 - popne {r3, pc} - ldr r0, _02034DA4 @ =0x00000484 - mov r1, #8 - bl MemAlloc - ldr r1, _02034DA0 @ =0x020AFDBC - str r0, [r1, #0xc] - bl InitPortraitBox - ldr r0, _02034DA0 @ =0x020AFDBC - mov r2, #0 - ldr r1, [r0, #0xc] - str r2, [r1, #0x10] - ldr r1, [r0, #0xc] - str r2, [r1, #0x468] - ldr r0, [r0, #0xc] - strb r2, [r0, #0x480] - pop {r3, pc} - .align 2, 0 -_02034DA0: .4byte 0x020AFDBC -_02034DA4: .4byte 0x00000484 - arm_func_end FUN_02034d50 - - arm_func_start FUN_02034da8 -FUN_02034da8: @ 0x02034DA8 - push {r3, lr} - ldr r0, _02034E20 @ =0x020AFDBC - ldr r2, [r0, #8] - cmp r2, #0 - beq _02034DE4 - ldr r1, [r0, #0xc] - ldrb r0, [r1, #0x480] - cmp r0, #0 - movne r0, #1 - popne {r3, pc} - ldr r0, [r1, #0x10] - cmp r0, #0 - movne r0, #1 - ldrbeq r0, [r2, #8] - pop {r3, pc} -_02034DE4: - ldr r0, [r0, #0xc] - cmp r0, #0 - beq _02034E04 - ldr r0, [r0, #0x10] - cmp r0, #0 - beq _02034E18 - mov r0, #1 - pop {r3, pc} -_02034E04: - ldr r0, _02034E24 @ =0x0209B09C - bl FUN_02034840 - cmp r0, #0 - movne r0, #1 - popne {r3, pc} -_02034E18: - mov r0, #0 - pop {r3, pc} - .align 2, 0 -_02034E20: .4byte 0x020AFDBC -_02034E24: .4byte 0x0209B09C - arm_func_end FUN_02034da8 - - arm_func_start FUN_02034e28 -FUN_02034e28: @ 0x02034E28 - push {r4, lr} - mov r4, r0 - bl FUN_02034d50 - cmp r4, #0 - ldrne ip, _02034E5C @ =0x020AFDBC - ldmne r4, {r0, r1, r2, r3} - ldrne ip, [ip, #0xc] - stmne ip, {r0, r1, r2, r3} - popne {r4, pc} - ldr r0, _02034E5C @ =0x020AFDBC - ldr r0, [r0, #0xc] - bl InitPortraitBox - pop {r4, pc} - .align 2, 0 -_02034E5C: .4byte 0x020AFDBC - arm_func_end FUN_02034e28 -_02034E60: - .byte 0x04, 0x20, 0x9F, 0xE5, 0x03, 0x00, 0x82, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0xBC, 0xFD, 0x0A, 0x02 - - arm_func_start FUN_02034e70 -FUN_02034e70: @ 0x02034E70 - ldr r0, _02034EB0 @ =0x020AFDBC - ldr r1, [r0, #0xc] - cmp r1, #0 - beq _02034EA8 - ldrb r0, [r1, #0x480] - cmp r0, #0 - bne _02034EA8 - ldr r0, [r1, #0x10] - cmp r0, #0 - moveq r0, #4 - streq r0, [r1, #0x10] - beq _02034EA8 - mov r0, #0 - bx lr -_02034EA8: - mov r0, #1 - bx lr - .align 2, 0 -_02034EB0: .4byte 0x020AFDBC - arm_func_end FUN_02034e70 -_02034EB4: - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1 - .byte 0x02, 0x40, 0xA0, 0xE1, 0xA1, 0xFF, 0xFF, 0xEB, 0x48, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE1 - .byte 0x0C, 0x20, 0x90, 0xE5, 0xB4, 0x61, 0xC2, 0xE1, 0x0C, 0x20, 0x90, 0xE5, 0xB6, 0x51, 0xC2, 0xE1 - .byte 0x0C, 0x00, 0x90, 0xE5, 0x18, 0x00, 0x80, 0xE2, 0x03, 0xBA, 0xFF, 0xEB, 0x24, 0x10, 0x9F, 0xE5 - .byte 0x24, 0x00, 0x9F, 0xE5, 0x0C, 0x10, 0x91, 0xE5, 0x01, 0x20, 0xA0, 0xE3, 0x10, 0x20, 0x81, 0xE5 - .byte 0x4E, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x70, 0x80, 0xBD, 0x18, 0x08, 0x00, 0x9F, 0xE5 - .byte 0x73, 0xFE, 0xFF, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0xBC, 0xFD, 0x0A, 0x02, 0x9C, 0xB0, 0x09, 0x02 - - arm_func_start FUN_02034f20 -FUN_02034f20: @ 0x02034F20 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl FUN_02034d50 - ldr r0, _02034F90 @ =0x020AFDBC - mov r1, r5 - ldr r2, [r0, #0xc] - strh r6, [r2, #0x14] - ldr r0, [r0, #0xc] - add r0, r0, #0x68 - bl Strcpy - ldr r0, _02034F90 @ =0x020AFDBC - mov r1, r4 - ldr r0, [r0, #0xc] - add r0, r0, #0x18 - bl FUN_020236fc - ldr r1, _02034F90 @ =0x020AFDBC - ldr r0, _02034F94 @ =0x0209B09C - ldr r1, [r1, #0xc] - mov r2, #2 - str r2, [r1, #0x10] - bl FUN_02034840 - cmp r0, #0 - popne {r4, r5, r6, pc} - ldr r0, _02034F94 @ =0x0209B09C - bl FUN_020348e4 - pop {r4, r5, r6, pc} - .align 2, 0 -_02034F90: .4byte 0x020AFDBC -_02034F94: .4byte 0x0209B09C - arm_func_end FUN_02034f20 - - arm_func_start FUN_02034f98 -FUN_02034f98: @ 0x02034F98 - push {r3, lr} - ldr r0, _0203501C @ =0x020AFDBC - ldr r2, [r0, #8] - cmp r2, #0 - beq _02034FE8 - ldr r1, [r0, #0xc] - ldrb r0, [r1, #0x480] - cmp r0, #0 - movne r0, #1 - popne {r3, pc} - ldr r0, [r1, #0x468] - cmp r0, #0 - movne r0, #1 - popne {r3, pc} - ldrsb r1, [r2] - mvn r0, #1 - cmp r1, r0 - moveq r0, #0 - ldrbne r0, [r2, #9] - pop {r3, pc} -_02034FE8: - ldr r0, _02035020 @ =0x0209B09C - bl FUN_02034840 - cmp r0, #0 - movne r0, #1 - popne {r3, pc} - ldr r0, _0203501C @ =0x020AFDBC - ldr r0, [r0, #0xc] - cmp r0, #0 - ldrne r0, [r0, #0x468] - cmpne r0, #0 - movne r0, #1 - moveq r0, #0 - pop {r3, pc} - .align 2, 0 -_0203501C: .4byte 0x020AFDBC -_02035020: .4byte 0x0209B09C - arm_func_end FUN_02034f98 -_02035024: - .byte 0xF8, 0x40, 0x2D, 0xE9, 0x00, 0x70, 0xA0, 0xE1, 0x01, 0x60, 0xA0, 0xE1 - .byte 0x02, 0x50, 0xA0, 0xE1, 0x03, 0x40, 0xA0, 0xE1, 0x44, 0xFF, 0xFF, 0xEB, 0x4C, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x10, 0x00, 0x81, 0xE5, 0x0C, 0x00, 0x91, 0xE5, 0x02, 0x30, 0xA0, 0xE3 - .byte 0x6C, 0x74, 0x80, 0xE5, 0x0C, 0x20, 0x91, 0xE5, 0x34, 0x00, 0x9F, 0xE5, 0x74, 0x64, 0x82, 0xE5 - .byte 0x0C, 0x20, 0x91, 0xE5, 0x78, 0x54, 0x82, 0xE5, 0x0C, 0x20, 0x91, 0xE5, 0x68, 0x34, 0x82, 0xE5 - .byte 0x0C, 0x10, 0x91, 0xE5, 0x7C, 0x44, 0x81, 0xE5, 0xF0, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0xF8, 0x80, 0xBD, 0x18, 0x08, 0x00, 0x9F, 0xE5, 0x15, 0xFE, 0xFF, 0xEB, 0xF8, 0x80, 0xBD, 0xE8 - .byte 0xBC, 0xFD, 0x0A, 0x02, 0x9C, 0xB0, 0x09, 0x02 - - arm_func_start FUN_02035098 -FUN_02035098: @ 0x02035098 - push {r3, lr} - ldr r0, _020350D0 @ =0x020AFDBC - ldr r0, [r0, #8] - cmp r0, #0 - ldrsbne r0, [r0] - mvnne r1, #1 - cmpne r0, r1 - beq _020350C4 - bl GetNormalMenuResult - ldr r1, _020350D0 @ =0x020AFDBC - str r0, [r1, #0x10] -_020350C4: - ldr r0, _020350D0 @ =0x020AFDBC - ldr r0, [r0, #0x10] - pop {r3, pc} - .align 2, 0 -_020350D0: .4byte 0x020AFDBC - arm_func_end FUN_02035098 -_020350D4: - .byte 0x08, 0x40, 0x2D, 0xE9, 0x0C, 0x00, 0xA0, 0xE3, 0x08, 0x10, 0xA0, 0xE3 - .byte 0x22, 0x30, 0xFF, 0xEB, 0x64, 0x20, 0x9F, 0xE5, 0x00, 0xC0, 0xA0, 0xE3, 0x08, 0x00, 0x82, 0xE5 - .byte 0x04, 0xC0, 0x80, 0xE5, 0x08, 0x10, 0x92, 0xE5, 0x0C, 0x00, 0xA0, 0xE1, 0x08, 0xC0, 0xC1, 0xE5 - .byte 0x08, 0x30, 0x92, 0xE5, 0x03, 0x10, 0xA0, 0xE3, 0x09, 0xC0, 0xC3, 0xE5, 0x08, 0x30, 0x92, 0xE5 - .byte 0x01, 0x20, 0xA0, 0xE3, 0x0A, 0xC0, 0xC3, 0xE5, 0x23, 0xE9, 0xFF, 0xEB, 0x2C, 0x10, 0x9F, 0xE5 - .byte 0x08, 0x10, 0x91, 0xE5, 0x02, 0x00, 0xC1, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0xDF, 0xE7, 0xFF, 0xEB - .byte 0x18, 0x10, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3, 0x08, 0x30, 0x91, 0xE5, 0x01, 0x00, 0xC3, 0xE5 - .byte 0x08, 0x10, 0x91, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xC1, 0xE5, 0x08, 0x80, 0xBD, 0xE8 - .byte 0xBC, 0xFD, 0x0A, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x78, 0x00, 0x9F, 0xE5, 0x08, 0x00, 0x90, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x12, 0x00, 0x00, 0x0A, 0xD0, 0x00, 0xD0, 0xE1, 0x01, 0x10, 0xE0, 0xE3 - .byte 0x01, 0x00, 0x50, 0xE1, 0x00, 0x00, 0x00, 0x0A, 0xD1, 0xD8, 0xFF, 0xEB, 0x54, 0x00, 0x9F, 0xE5 - .byte 0x08, 0x00, 0x90, 0xE5, 0xD1, 0x00, 0xD0, 0xE1, 0xEE, 0xE7, 0xFF, 0xEB, 0x44, 0x00, 0x9F, 0xE5 - .byte 0x08, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x2C, 0xE9, 0xFF, 0xEB, 0x34, 0x00, 0x9F, 0xE5 - .byte 0x08, 0x00, 0x90, 0xE5, 0xF7, 0x2F, 0xFF, 0xEB, 0x28, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x08, 0x10, 0x80, 0xE5, 0x1C, 0x00, 0x9F, 0xE5, 0x0C, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x08, 0x80, 0xBD, 0x08, 0xEF, 0x2F, 0xFF, 0xEB, 0x08, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x0C, 0x10, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0xBC, 0xFD, 0x0A, 0x02, 0x18, 0x40, 0x2D, 0xE9 - .byte 0x9C, 0xD0, 0x4D, 0xE2, 0xAC, 0x03, 0x9F, 0xE5, 0x08, 0x20, 0x90, 0xE5, 0x04, 0x10, 0x92, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x51, 0xE3, 0xDC, 0x00, 0x00, 0x0A - .byte 0xE1, 0x00, 0x00, 0xEA, 0x0C, 0x30, 0x90, 0xE5, 0x10, 0x00, 0x93, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x32, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x1B, 0x00, 0x00, 0xEA - .byte 0x1A, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x00, 0xEA, 0x17, 0x00, 0x00, 0xEA - .byte 0x13, 0x00, 0x00, 0xEA, 0xD1, 0x00, 0xD2, 0xE1, 0xB4, 0x11, 0xD3, 0xE1, 0xB6, 0x21, 0xD3, 0xE1 - .byte 0x18, 0x30, 0x83, 0xE2, 0xDA, 0xE7, 0xFF, 0xEB, 0x48, 0x03, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3 - .byte 0x08, 0x00, 0x90, 0xE5, 0x0A, 0x10, 0xC0, 0xE5, 0x0E, 0x00, 0x00, 0xEA, 0xD1, 0x00, 0xD2, 0xE1 - .byte 0xB4, 0x11, 0xD3, 0xE1, 0x68, 0x20, 0x83, 0xE2, 0x18, 0x30, 0x83, 0xE2, 0xF2, 0xE7, 0xFF, 0xEB - .byte 0x20, 0x03, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x08, 0x00, 0x90, 0xE5, 0x0A, 0x10, 0xC0, 0xE5 - .byte 0x04, 0x00, 0x00, 0xEA, 0xD1, 0x00, 0xD2, 0xE1, 0x5A, 0xE8, 0xFF, 0xEB, 0x01, 0x00, 0x00, 0xEA - .byte 0xD1, 0x00, 0xD2, 0xE1, 0x0A, 0xE8, 0xFF, 0xEB, 0xF8, 0x22, 0x9F, 0xE5, 0x08, 0x10, 0x92, 0xE5 - .byte 0x0A, 0x00, 0xD1, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x0C, 0x00, 0x92, 0xE5 - .byte 0xB4, 0x01, 0xD0, 0xE1, 0x20, 0x00, 0x10, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0xD1, 0x00, 0xD1, 0xE1 - .byte 0x06, 0x00, 0x92, 0xE8, 0xB1, 0xE7, 0xFF, 0xEB, 0xC8, 0x02, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x0C, 0x00, 0x90, 0xE5, 0x01, 0x40, 0xA0, 0xE3, 0x10, 0x10, 0x80, 0xE5, 0x02, 0x00, 0x00, 0xEA - .byte 0xD1, 0x00, 0xD2, 0xE1, 0xA5, 0xE7, 0xFF, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0xA4, 0x02, 0x9F, 0xE5 - .byte 0x08, 0x10, 0x90, 0xE5, 0x08, 0x40, 0xC1, 0xE5, 0x0C, 0x20, 0x90, 0xE5, 0x68, 0x14, 0x92, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x3F, 0x00, 0x00, 0x0A, 0x78, 0x14, 0x92, 0xE5, 0x04, 0x10, 0x8D, 0xE5 - .byte 0x6C, 0x14, 0x92, 0xE5, 0x20, 0x10, 0x81, 0xE3, 0x6C, 0x14, 0x82, 0xE5, 0x0C, 0x10, 0x90, 0xE5 - .byte 0x6C, 0x04, 0x91, 0xE5, 0x02, 0x09, 0x10, 0xE3, 0x08, 0x40, 0xA0, 0x03, 0x07, 0x00, 0x00, 0x0A - .byte 0x06, 0x0B, 0x80, 0xE3, 0x01, 0x07, 0x80, 0xE3, 0x6C, 0x04, 0x81, 0xE5, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x10, 0x00, 0xA0, 0xE3, 0xBC, 0x10, 0xCD, 0xE1, 0x10, 0x00, 0x8D, 0xE5, 0x05, 0x40, 0xA0, 0xE3 - .byte 0x40, 0x02, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x08, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1 - .byte 0x01, 0x00, 0x50, 0xE1, 0x00, 0x00, 0x00, 0x0A, 0x55, 0xD8, 0xFF, 0xEB, 0x24, 0x02, 0x9F, 0xE5 - .byte 0x0C, 0x20, 0x90, 0xE5, 0x68, 0x04, 0x92, 0xE5, 0x00, 0x40, 0x8D, 0xE5, 0x01, 0x00, 0x50, 0xE3 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x6C, 0x14, 0x92, 0xE5, 0x04, 0x00, 0x00, 0x1A, 0x70, 0x34, 0x92, 0xE5 - .byte 0x04, 0x20, 0x8D, 0xE2, 0x54, 0xD7, 0xFF, 0xEB, 0xF8, 0x11, 0x9F, 0xE5, 0x03, 0x00, 0x00, 0xEA - .byte 0x74, 0x34, 0x92, 0xE5, 0x04, 0x20, 0x8D, 0xE2, 0x7F, 0xD7, 0xFF, 0xEB, 0xE4, 0x11, 0x9F, 0xE5 - .byte 0x08, 0x10, 0x91, 0xE5, 0x00, 0x00, 0xC1, 0xE5, 0xD8, 0x01, 0x9F, 0xE5, 0x08, 0x00, 0x90, 0xE5 - .byte 0xD1, 0x00, 0xD0, 0xE1, 0xF6, 0xE7, 0xFF, 0xEB, 0xC8, 0x01, 0x9F, 0xE5, 0x0C, 0x10, 0x90, 0xE5 - .byte 0x7C, 0x14, 0x91, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x02, 0x00, 0x00, 0xDA, 0x08, 0x00, 0x90, 0xE5 - .byte 0xD0, 0x00, 0xD0, 0xE1, 0x88, 0xD9, 0xFF, 0xEB, 0xA8, 0x01, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x0C, 0x10, 0x90, 0xE5, 0x01, 0x40, 0xA0, 0xE3, 0x68, 0x24, 0x81, 0xE5, 0x08, 0x00, 0x90, 0xE5 - .byte 0x09, 0x40, 0xC0, 0xE5, 0x17, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x90, 0xE5, 0x01, 0x10, 0xE0, 0xE3 - .byte 0xD0, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x12, 0x00, 0x00, 0x0A, 0x56, 0xD8, 0xFF, 0xEB - .byte 0x70, 0x11, 0x9F, 0xE5, 0x01, 0x40, 0xA0, 0xE3, 0x10, 0x00, 0x81, 0xE5, 0x08, 0x00, 0x91, 0xE5 - .byte 0x09, 0x40, 0xC0, 0xE5, 0x08, 0x00, 0x91, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0x2B, 0xD8, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x1A, 0x48, 0x01, 0x9F, 0xE5, 0x08, 0x00, 0x90, 0xE5 - .byte 0xD0, 0x00, 0xD0, 0xE1, 0x1A, 0xD8, 0xFF, 0xEB, 0x38, 0x01, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3 - .byte 0x08, 0x00, 0x90, 0xE5, 0x00, 0x10, 0xC0, 0xE5, 0x28, 0x01, 0x9F, 0xE5, 0x0C, 0x10, 0x90, 0xE5 - .byte 0x80, 0x14, 0xD1, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x0B, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x90, 0xE5 - .byte 0xD1, 0x00, 0xD0, 0xE1, 0xAA, 0xE7, 0xFF, 0xEB, 0x08, 0x01, 0x9F, 0xE5, 0x08, 0x00, 0x90, 0xE5 - .byte 0xD2, 0x00, 0xD0, 0xE1, 0x90, 0xE8, 0xFF, 0xEB, 0xF8, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3 - .byte 0x08, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x37, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x54, 0xE3 - .byte 0x10, 0x00, 0x00, 0x1A, 0x08, 0x00, 0x90, 0xE5, 0xD1, 0x00, 0xD0, 0xE1, 0x2A, 0xE7, 0xFF, 0xEB - .byte 0x10, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x50, 0x13, 0x2F, 0x00, 0x00, 0x1A, 0xC4, 0x00, 0x9F, 0xE5 - .byte 0x08, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x7F, 0xE8, 0xFF, 0xEB, 0xB4, 0x00, 0x9F, 0xE5 - .byte 0x01, 0x20, 0xA0, 0xE3, 0x08, 0x10, 0x90, 0xE5, 0x04, 0x20, 0x81, 0xE5, 0x08, 0x00, 0x90, 0xE5 - .byte 0x08, 0x20, 0xC0, 0xE5, 0x24, 0x00, 0x00, 0xEA, 0x08, 0x10, 0x90, 0xE5, 0x0A, 0x00, 0xD1, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x20, 0x00, 0x00, 0x0A, 0xD1, 0x00, 0xD1, 0xE1, 0x16, 0xE7, 0xFF, 0xEB - .byte 0x0C, 0x00, 0x50, 0xE3, 0x1C, 0x00, 0x00, 0x0A, 0x78, 0x00, 0x9F, 0xE5, 0x0C, 0x00, 0x90, 0xE5 - .byte 0xDD, 0x60, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x64, 0x00, 0x9F, 0xE5 - .byte 0x08, 0x20, 0x90, 0xE5, 0x0C, 0x10, 0x90, 0xE5, 0xD2, 0x00, 0xD2, 0xE1, 0x53, 0xE8, 0xFF, 0xEB - .byte 0x03, 0x00, 0x00, 0xEA, 0x4C, 0x00, 0x9F, 0xE5, 0x08, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1 - .byte 0x61, 0xE8, 0xFF, 0xEB, 0x3C, 0x00, 0x9F, 0xE5, 0x01, 0x30, 0xA0, 0xE3, 0x08, 0x20, 0x90, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x08, 0x30, 0xC2, 0xE5, 0x08, 0x00, 0x90, 0xE5, 0x0A, 0x10, 0xC0, 0xE5 - .byte 0x05, 0x00, 0x00, 0xEA, 0xD1, 0x00, 0xD2, 0xE1, 0x5D, 0xCB, 0xFF, 0xEB, 0x05, 0x10, 0xE0, 0xE3 - .byte 0x01, 0x00, 0x50, 0xE1, 0x04, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x00, 0x0A, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x9C, 0xD0, 0x8D, 0xE2, 0x18, 0x80, 0xBD, 0xE8, 0xBC, 0xFD, 0x0A, 0x02 - - arm_func_start FUN_0203559c -FUN_0203559c: @ 0x0203559C - push {r3, lr} - mov lr, r0 - mov r2, r1 - ldr r3, _020355D4 @ =0x020AFDD0 - mov ip, #0 - ldr r0, _020355D8 @ =0x0209B0FC - mov r1, lr - strb ip, [r3] - bl FUN_02034974 - cmp r0, #0 - ldrne r0, _020355D4 @ =0x020AFDD0 - movne r1, #0 - strbne r1, [r0, #1] - pop {r3, pc} - .align 2, 0 -_020355D4: .4byte 0x020AFDD0 -_020355D8: .4byte 0x0209B0FC - arm_func_end FUN_0203559c -_020355DC: - .byte 0x38, 0x40, 0x2D, 0xE9 - .byte 0x50, 0x30, 0x9F, 0xE5, 0x00, 0x50, 0xA0, 0xE1, 0x01, 0xE0, 0xA0, 0xE1, 0x00, 0xC0, 0xA0, 0xE3 - .byte 0x02, 0x40, 0xA0, 0xE1, 0x40, 0x00, 0x9F, 0xE5, 0x05, 0x10, 0xA0, 0xE1, 0x0E, 0x20, 0xA0, 0xE1 - .byte 0x00, 0xC0, 0xC3, 0xE5, 0xDA, 0xFC, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x38, 0x80, 0xBD, 0x08 - .byte 0x20, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0xC0, 0xE5, 0x07, 0x00, 0x00, 0xEB - .byte 0x10, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x20, 0x90, 0xE5, 0xF8, 0x40, 0x82, 0xE5 - .byte 0x01, 0x10, 0xC0, 0xE5, 0x38, 0x80, 0xBD, 0xE8, 0xD0, 0xFD, 0x0A, 0x02, 0x0C, 0xB1, 0x09, 0x02 - .byte 0x08, 0x40, 0x2D, 0xE9, 0x18, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0xD0, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x03, 0x1C, 0xA0, 0x13, 0x08, 0x10, 0xA0, 0x03, 0xFC, 0x00, 0xA0, 0xE3, 0xC3, 0x2E, 0xFF, 0xEB - .byte 0xFC, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0x81, 0xE5, 0x0C, 0x00, 0x80, 0xE2, 0xF1, 0xFC, 0xFF, 0xEB - .byte 0xEC, 0x10, 0x9F, 0xE5, 0x04, 0x10, 0x91, 0xE5, 0x08, 0x00, 0x81, 0xE5, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x7C, 0x4A, 0x00, 0xEB, 0xD8, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0xA4, 0x00, 0x80, 0xE2 - .byte 0x38, 0x55, 0x00, 0xEB, 0xC8, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x04, 0x30, 0x91, 0xE5 - .byte 0xA4, 0x20, 0xD3, 0xE5, 0xB0, 0x20, 0x83, 0xE5, 0x04, 0x30, 0x91, 0xE5, 0xA6, 0x20, 0xD3, 0xE5 - .byte 0xB4, 0x20, 0x83, 0xE5, 0x04, 0x30, 0x91, 0xE5, 0xA5, 0x20, 0xD3, 0xE5, 0xB8, 0x20, 0x83, 0xE5 - .byte 0x04, 0x30, 0x91, 0xE5, 0xA7, 0x20, 0xD3, 0xE5, 0xBC, 0x20, 0x83, 0xE5, 0x04, 0x30, 0x91, 0xE5 - .byte 0xA8, 0x20, 0xD3, 0xE5, 0xC0, 0x20, 0x83, 0xE5, 0x04, 0x30, 0x91, 0xE5, 0xA9, 0x20, 0xD3, 0xE5 - .byte 0xC4, 0x20, 0x83, 0xE5, 0x04, 0x30, 0x91, 0xE5, 0xAA, 0x20, 0xD3, 0xE5, 0xC8, 0x20, 0x83, 0xE5 - .byte 0x04, 0x30, 0x91, 0xE5, 0xAB, 0x20, 0xD3, 0xE5, 0xCC, 0x20, 0x83, 0xE5, 0x04, 0x30, 0x91, 0xE5 - .byte 0xAC, 0x20, 0xD3, 0xE5, 0xD0, 0x20, 0x83, 0xE5, 0x04, 0x20, 0x91, 0xE5, 0x00, 0x31, 0x82, 0xE0 - .byte 0xB0, 0x20, 0x93, 0xE5, 0x01, 0x00, 0x80, 0xE2, 0xD4, 0x20, 0x83, 0xE5, 0x09, 0x00, 0x50, 0xE3 - .byte 0xF8, 0xFF, 0xFF, 0xBA, 0x38, 0x10, 0x9F, 0xE5, 0x01, 0xC0, 0xE0, 0xE3, 0x04, 0x00, 0x91, 0xE5 - .byte 0x00, 0x30, 0xA0, 0xE3, 0x00, 0xC0, 0xC0, 0xE5, 0x04, 0x20, 0x91, 0xE5, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x01, 0xC0, 0xC2, 0xE5, 0x04, 0x20, 0x91, 0xE5, 0x02, 0xC0, 0xC2, 0xE5, 0x04, 0x20, 0x91, 0xE5 - .byte 0x04, 0x30, 0x82, 0xE5, 0x04, 0x20, 0x91, 0xE5, 0xF8, 0x30, 0x82, 0xE5, 0x01, 0x30, 0xC1, 0xE5 - .byte 0x08, 0x80, 0xBD, 0xE8, 0xD0, 0xFD, 0x0A, 0x02 - - arm_func_start FUN_02035768 -FUN_02035768: @ 0x02035768 - push {r3, lr} - ldr r0, _020357EC @ =0x020AFDD0 - ldr r0, [r0, #4] - cmp r0, #0 - popeq {r3, pc} - ldrsb r0, [r0] - mvn r1, #1 - cmp r0, r1 - beq _02035790 - bl FUN_0202d530 -_02035790: - ldr r0, _020357EC @ =0x020AFDD0 - mvn r1, #1 - ldr r0, [r0, #4] - ldrsb r0, [r0, #1] - cmp r0, r1 - beq _020357AC - bl FreeDBox -_020357AC: - ldr r0, _020357EC @ =0x020AFDD0 - mvn r1, #1 - ldr r0, [r0, #4] - ldrsb r0, [r0, #2] - cmp r0, r1 - beq _020357C8 - bl FUN_0202aabc -_020357C8: - mov r0, #1 - bl FUN_02048078 - ldr r0, _020357EC @ =0x020AFDD0 - ldr r0, [r0, #4] - bl MemFree - ldr r0, _020357EC @ =0x020AFDD0 - mov r1, #0 - str r1, [r0, #4] - pop {r3, pc} - .align 2, 0 -_020357EC: .4byte 0x020AFDD0 - arm_func_end FUN_02035768 - - arm_func_start FUN_020357f0 -FUN_020357f0: @ 0x020357F0 - push {r4, lr} - sub sp, sp, #8 - ldr r2, _02035CCC @ =0x020AFDD0 - ldr r3, [r2, #4] - ldr r0, [r3, #4] - cmp r0, #6 - addls pc, pc, r0, lsl #2 - b _02035CC0 -_02035810: @ jump table - b _0203582C @ case 0 - b _02035920 @ case 1 - b _020359BC @ case 2 - b _02035A80 @ case 3 - b _02035AE8 @ case 4 - b _02035BC0 @ case 5 - b _02035C94 @ case 6 -_0203582C: - ldrsb r0, [r3, #1] - mvn r1, #1 - cmp r0, r1 - beq _0203586C - bl IsDBoxActive - cmp r0, #0 - bne _02035CC0 - ldr r0, _02035CCC @ =0x020AFDD0 - ldr r0, [r0, #4] - ldrsb r0, [r0, #1] - bl FreeDBox - ldr r0, _02035CCC @ =0x020AFDD0 - mvn r1, #1 - ldr r0, [r0, #4] - strb r1, [r0, #1] - b _02035CC0 -_0203586C: - ldrsb r0, [r3, #2] - cmp r0, r1 - beq _020358A8 - bl FUN_0202ab40 - cmp r0, #0 - bne _02035CC0 - ldr r0, _02035CCC @ =0x020AFDD0 - ldr r0, [r0, #4] - ldrsb r0, [r0, #2] - bl FUN_0202aabc - ldr r0, _02035CCC @ =0x020AFDD0 - mvn r1, #1 - ldr r0, [r0, #4] - strb r1, [r0, #2] - b _02035CC0 -_020358A8: - ldrsb r0, [r3] - cmp r0, r1 - bne _02035910 - mov r0, #0 - str r0, [r3, #0xc] - ldr r0, [r2, #4] - mov r1, #0x184 - strh r1, [r0, #0x14] - ldr r0, [r2, #4] - mov r1, #0x10 - str r1, [r0, #0x18] - ldr r2, [r2, #4] - mov r0, #9 - str r0, [sp] - add r0, r2, #0xb0 - str r0, [sp, #4] - ldr r1, [r2, #8] - ldr r0, _02035CD0 @ =0x0209B0EC - orr r1, r1, #0x33 - ldr r3, _02035CD4 @ =0x0209B134 - orr r1, r1, #0x1800 - add r2, r2, #0xc - bl FUN_0202d1f0 - ldr r1, _02035CCC @ =0x020AFDD0 - ldr r1, [r1, #4] - strb r0, [r1] -_02035910: - ldr r0, _02035CCC @ =0x020AFDD0 - mov r1, #1 - ldr r0, [r0, #4] - str r1, [r0, #4] -_02035920: - ldr r0, _02035CCC @ =0x020AFDD0 - ldr r0, [r0, #4] - ldrsb r0, [r0] - bl FUN_0202d57c - cmp r0, #0 - bne _02035CC0 - ldr r0, _02035CCC @ =0x020AFDD0 - ldr r0, [r0, #4] - ldrsb r0, [r0] - bl FUN_0202d5e4 - ldr r1, _02035CCC @ =0x020AFDD0 - tst r0, #0xff - strb r0, [r1, #1] - beq _02035998 - mov r3, #0 - ldr ip, [r1, #4] - mov r4, r3 - mov r0, #1 -_02035968: - add r1, ip, r4, lsl #2 - ldr r2, [r1, #0xd4] - ldr r1, [r1, #0xb0] - add r4, r4, #1 - cmp r2, r1 - movne r3, r0 - cmp r4, #9 - blt _02035968 - cmp r3, #0 - ldreq r0, _02035CCC @ =0x020AFDD0 - moveq r1, #0 - strbeq r1, [r0, #1] -_02035998: - ldr r0, _02035CCC @ =0x020AFDD0 - ldrb r1, [r0, #1] - ldr r0, [r0, #4] - cmp r1, #0 - moveq r1, #4 - streq r1, [r0, #4] - movne r1, #2 - strne r1, [r0, #4] - b _02035CC0 -_020359BC: - ldrsb r0, [r3] - mvn r1, #1 - cmp r0, r1 - beq _020359FC - bl FUN_0202d55c - cmp r0, #0 - bne _02035CC0 - ldr r0, _02035CCC @ =0x020AFDD0 - ldr r0, [r0, #4] - ldrsb r0, [r0] - bl FUN_0202d530 - ldr r0, _02035CCC @ =0x020AFDD0 - mvn r1, #1 - ldr r0, [r0, #4] - strb r1, [r0] - b _02035CC0 -_020359FC: - ldrsb r0, [r3, #1] - cmp r0, r1 - bne _02035A34 - mov r0, #0 - bl CreateDBox - ldr r3, _02035CCC @ =0x020AFDD0 - ldr r1, _02035CD8 @ =0x00000408 - ldr r4, [r3, #4] - ldr r2, _02035CDC @ =0x000001A5 - strb r0, [r4, #1] - ldr r0, [r3, #4] - mov r3, #0 - ldrsb r0, [r0, #1] - bl ShowMessageInDBox -_02035A34: - ldr r1, _02035CCC @ =0x020AFDD0 - mvn r0, #1 - ldr r1, [r1, #4] - ldrsb r1, [r1, #2] - cmp r1, r0 - bne _02035A6C - mov r0, #0 - ldr r3, _02035CE0 @ =0x0209B11C - mov r2, r0 - mov r1, #0x13 - bl FUN_0202a5cc - ldr r1, _02035CCC @ =0x020AFDD0 - ldr r1, [r1, #4] - strb r0, [r1, #2] -_02035A6C: - ldr r0, _02035CCC @ =0x020AFDD0 - mov r1, #3 - ldr r0, [r0, #4] - str r1, [r0, #4] - b _02035CC0 -_02035A80: - ldrsb r0, [r3, #2] - bl FUN_0202ab60 - cmp r0, #0 - bne _02035CC0 - ldr r0, _02035CCC @ =0x020AFDD0 - ldr r0, [r0, #4] - ldrsb r0, [r0, #2] - bl FUN_0202abb0 - ldr r1, _02035CCC @ =0x020AFDD0 - mov r4, r0 - ldr r0, [r1, #4] - ldrsb r0, [r0, #1] - bl FUN_0202f334 - cmp r4, #1 - ldreq r0, _02035CCC @ =0x020AFDD0 - moveq r1, #0 - ldreq r0, [r0, #4] - streq r1, [r0, #4] - beq _02035CC0 - mov r0, #1 - bl SetNotifyNote - ldr r0, _02035CCC @ =0x020AFDD0 - mov r1, #4 - ldr r0, [r0, #4] - str r1, [r0, #4] - b _02035CC0 -_02035AE8: - ldrsb r0, [r3] - mvn r1, #1 - cmp r0, r1 - beq _02035B24 - bl FUN_0202d55c - cmp r0, #0 - bne _02035CC0 - ldr r0, _02035CCC @ =0x020AFDD0 - ldr r0, [r0, #4] - ldrsb r0, [r0] - bl FUN_0202d530 - ldr r0, _02035CCC @ =0x020AFDD0 - mvn r1, #1 - ldr r0, [r0, #4] - strb r1, [r0] -_02035B24: - ldr r0, _02035CCC @ =0x020AFDD0 - mvn r1, #1 - ldr r0, [r0, #4] - ldrsb r0, [r0, #1] - cmp r0, r1 - beq _02035B68 - bl IsDBoxActive - cmp r0, #0 - bne _02035CC0 - ldr r0, _02035CCC @ =0x020AFDD0 - ldr r0, [r0, #4] - ldrsb r0, [r0, #1] - bl FreeDBox - ldr r0, _02035CCC @ =0x020AFDD0 - mvn r1, #1 - ldr r0, [r0, #4] - strb r1, [r0, #1] -_02035B68: - ldr r0, _02035CCC @ =0x020AFDD0 - mvn r1, #1 - ldr r0, [r0, #4] - ldrsb r0, [r0, #2] - cmp r0, r1 - beq _02035BAC - bl FUN_0202ab40 - cmp r0, #0 - bne _02035CC0 - ldr r0, _02035CCC @ =0x020AFDD0 - ldr r0, [r0, #4] - ldrsb r0, [r0, #2] - bl FUN_0202aabc - ldr r0, _02035CCC @ =0x020AFDD0 - mvn r1, #1 - ldr r0, [r0, #4] - strb r1, [r0, #2] -_02035BAC: - ldr r0, _02035CCC @ =0x020AFDD0 - mov r1, #5 - ldr r0, [r0, #4] - str r1, [r0, #4] - b _02035CC0 -_02035BC0: - mov r0, #7 - str r0, [r3, #4] - ldrb r0, [r2, #1] - cmp r0, #0 - beq _02035C4C - ldr r1, [r2, #4] - ldr r0, [r1, #0xb0] - strb r0, [r1, #0xa4] - ldr r1, [r2, #4] - ldr r0, [r1, #0xb4] - strb r0, [r1, #0xa6] - ldr r1, [r2, #4] - ldr r0, [r1, #0xb8] - strb r0, [r1, #0xa5] - ldr r1, [r2, #4] - ldr r0, [r1, #0xbc] - strb r0, [r1, #0xa7] - ldr r1, [r2, #4] - ldr r0, [r1, #0xc0] - strb r0, [r1, #0xa8] - ldr r1, [r2, #4] - ldr r0, [r1, #0xc4] - strb r0, [r1, #0xa9] - ldr r1, [r2, #4] - ldr r0, [r1, #0xc8] - strb r0, [r1, #0xaa] - ldr r1, [r2, #4] - ldr r0, [r1, #0xcc] - strb r0, [r1, #0xab] - ldr r1, [r2, #4] - ldr r0, [r1, #0xd0] - strb r0, [r1, #0xac] - ldr r0, [r2, #4] - add r0, r0, #0xa4 - bl FUN_0204ab98 -_02035C4C: - ldr r0, _02035CCC @ =0x020AFDD0 ldr r2, [r0, #4] - ldr r1, [r2, #8] - tst r1, #0x100 - beq _02035C70 - ldrb r1, [r0, #1] - ldr r0, [r2, #0x94] - ldr r2, [r2, #0x90] - blx r2 -_02035C70: - ldr r0, _02035CCC @ =0x020AFDD0 - ldr r1, [r0, #4] - ldr r0, [r1, #0xf8] - cmp r0, #0 - movne r0, #6 - strne r0, [r1, #4] - bne _02035CC0 - mov r0, #4 - b _02035CC4 -_02035C94: - ldr r0, [r3, #0x94] - ldr r1, [r3, #0xf8] - blx r1 - cmp r0, #0 - beq _02035CC0 - ldr r0, _02035CCC @ =0x020AFDD0 - mov r2, #7 - ldr r1, [r0, #4] - mov r0, #4 - str r2, [r1, #4] - b _02035CC4 -_02035CC0: - mov r0, #1 -_02035CC4: - add sp, sp, #8 - pop {r4, pc} - .align 2, 0 -_02035CCC: .4byte 0x020AFDD0 -_02035CD0: .4byte 0x0209B0EC -_02035CD4: .4byte 0x0209B134 -_02035CD8: .4byte 0x00000408 -_02035CDC: .4byte 0x000001A5 -_02035CE0: .4byte 0x0209B11C - arm_func_end FUN_020357f0 - - arm_func_start FUN_02035ce4 -FUN_02035ce4: @ 0x02035CE4 - push {r4, lr} - mov r4, r0 - ldr r0, _02035DA8 @ =0x0209B1B8 - bl FUN_02034974 - cmp r0, #0 - popeq {r4, pc} - ldr r2, _02035DAC @ =0x020AFDD8 - mov r3, #0 - mov r0, #0xb8 - mov r1, #8 - strb r3, [r2] - bl MemAlloc - ldr r1, _02035DAC @ =0x020AFDD8 - str r0, [r1, #4] - add r0, r0, #0xc - bl FUN_02034a38 - ldr r1, _02035DAC @ =0x020AFDD8 - ldr r1, [r1, #4] - str r0, [r1, #8] - mov r0, #0 - bl FUN_02048078 - ldr r0, _02035DAC @ =0x020AFDD8 - ldr r0, [r0, #4] - add r0, r0, #0xa4 - bl FUN_0204af98 - ldr r0, _02035DAC @ =0x020AFDD8 - mvn r3, #1 - ldr ip, [r0, #4] - mov r2, #0 - ldrb r1, [ip, #0xa4] - str r1, [ip, #0xb0] - ldr ip, [r0, #4] - ldr r1, [ip, #0xb0] - str r1, [ip, #0xb4] - ldr ip, [r0, #4] - ldr r1, [ip, #0xb0] - str r1, [ip, #0xac] - ldr r1, [r0, #4] - strb r3, [r1] - ldr r1, [r0, #4] - strb r3, [r1, #1] - ldr r1, [r0, #4] - strb r3, [r1, #2] - ldr r1, [r0, #4] - str r2, [r1, #4] - ldr r1, [r0, #4] - str r4, [r1, #0xa8] - strb r2, [r0] - pop {r4, pc} - .align 2, 0 -_02035DA8: .4byte 0x0209B1B8 -_02035DAC: .4byte 0x020AFDD8 - arm_func_end FUN_02035ce4 - - arm_func_start FUN_02035db0 -FUN_02035db0: @ 0x02035DB0 - push {r3, lr} - ldr r0, _02035E34 @ =0x020AFDD8 - ldr r0, [r0, #4] - cmp r0, #0 - popeq {r3, pc} - ldrsb r0, [r0] - mvn r1, #1 - cmp r0, r1 - beq _02035DD8 - bl FUN_0202d530 -_02035DD8: - ldr r0, _02035E34 @ =0x020AFDD8 - mvn r1, #1 - ldr r0, [r0, #4] - ldrsb r0, [r0, #1] - cmp r0, r1 - beq _02035DF4 - bl FreeDBox -_02035DF4: - ldr r0, _02035E34 @ =0x020AFDD8 - mvn r1, #1 - ldr r0, [r0, #4] - ldrsb r0, [r0, #2] - cmp r0, r1 - beq _02035E10 - bl FUN_0202aabc -_02035E10: - mov r0, #1 - bl FUN_02048078 - ldr r0, _02035E34 @ =0x020AFDD8 - ldr r0, [r0, #4] - bl MemFree - ldr r0, _02035E34 @ =0x020AFDD8 - mov r1, #0 - str r1, [r0, #4] - pop {r3, pc} - .align 2, 0 -_02035E34: .4byte 0x020AFDD8 - arm_func_end FUN_02035db0 - - arm_func_start FUN_02035e38 -FUN_02035e38: @ 0x02035E38 - push {r4, lr} - sub sp, sp, #8 - ldr r2, _0203630C @ =0x020AFDD8 - ldr r3, [r2, #4] - ldr r0, [r3, #4] - cmp r0, #5 - addls pc, pc, r0, lsl #2 - b _02036300 -_02035E58: @ jump table - b _02035E70 @ case 0 - b _02035F64 @ case 1 - b _0203604C @ case 2 - b _02036110 @ case 3 - b _02036178 @ case 4 - b _02036250 @ case 5 -_02035E70: - ldrsb r0, [r3, #1] - mvn r1, #1 - cmp r0, r1 - beq _02035EB0 - bl IsDBoxActive - cmp r0, #0 - bne _02036300 - ldr r0, _0203630C @ =0x020AFDD8 - ldr r0, [r0, #4] - ldrsb r0, [r0, #1] - bl FreeDBox - ldr r0, _0203630C @ =0x020AFDD8 - mvn r1, #1 - ldr r0, [r0, #4] - strb r1, [r0, #1] - b _02036300 -_02035EB0: - ldrsb r0, [r3, #2] - cmp r0, r1 - beq _02035EEC - bl FUN_0202ab40 - cmp r0, #0 - bne _02036300 - ldr r0, _0203630C @ =0x020AFDD8 - ldr r0, [r0, #4] - ldrsb r0, [r0, #2] - bl FUN_0202aabc - ldr r0, _0203630C @ =0x020AFDD8 - mvn r1, #1 - ldr r0, [r0, #4] - strb r1, [r0, #2] - b _02036300 -_02035EEC: - ldrsb r0, [r3] - cmp r0, r1 - bne _02035F54 - mov r0, #0 - str r0, [r3, #0xc] - ldr r0, [r2, #4] - mov r1, #0x1a8 - strh r1, [r0, #0x14] - ldr r0, [r2, #4] - mov r1, #0x10 - str r1, [r0, #0x18] - ldr r2, [r2, #4] - mov r0, #9 - str r0, [sp] - add r0, r2, #0xb0 - str r0, [sp, #4] - ldr r1, [r2, #8] - ldr r0, _02036310 @ =0x0209B1C8 - orr r1, r1, #0x33 - ldr r3, _02036314 @ =0x0209B1F0 - orr r1, r1, #0x1800 - add r2, r2, #0xc - bl FUN_0202d1f0 - ldr r1, _0203630C @ =0x020AFDD8 - ldr r1, [r1, #4] - strb r0, [r1] -_02035F54: - ldr r0, _0203630C @ =0x020AFDD8 - mov r1, #1 - ldr r0, [r0, #4] - str r1, [r0, #4] -_02035F64: - ldr r0, _0203630C @ =0x020AFDD8 - ldr r0, [r0, #4] - ldrsb r0, [r0] - bl FUN_0202d57c - cmp r0, #0 - bne _02035FE8 - ldr r0, _0203630C @ =0x020AFDD8 - ldr r0, [r0, #4] - ldrsb r0, [r0] - bl FUN_0202d5e4 - ldr r1, _0203630C @ =0x020AFDD8 - tst r0, #0xff - strb r0, [r1] - beq _02035FC4 - ldr r0, [r1, #4] - mov r2, #0 - ldr r1, [r0, #0xb4] - ldr r0, [r0, #0xb0] - cmp r1, r0 - movne r2, #1 - cmp r2, #0 - ldreq r0, _0203630C @ =0x020AFDD8 - moveq r1, #0 - strbeq r1, [r0] -_02035FC4: - ldr r0, _0203630C @ =0x020AFDD8 - ldrb r1, [r0] - ldr r0, [r0, #4] - cmp r1, #0 - moveq r1, #4 - streq r1, [r0, #4] - movne r1, #2 - strne r1, [r0, #4] - b _02036300 -_02035FE8: - ldr r0, _0203630C @ =0x020AFDD8 - ldr r0, [r0, #4] - ldrsb r0, [r0] - bl FUN_0202d59c - movs r4, r0 - bne _02036300 - ldr r0, _0203630C @ =0x020AFDD8 - ldr r1, [r0, #4] - ldrsb r0, [r1], #0xb0 - bl FUN_0202d5b0 - ldr r0, _0203630C @ =0x020AFDD8 - ldr r0, [r0, #4] - add r0, r0, r4, lsl #2 - ldr r1, [r0, #0xb0] - ldr r0, [r0, #0xac] - cmp r1, r0 - beq _02036300 - and r0, r1, #0xff - bl FUN_02027180 - ldr r0, _0203630C @ =0x020AFDD8 - ldr r0, [r0, #4] - add r1, r0, r4, lsl #2 - ldr r0, [r1, #0xb0] - str r0, [r1, #0xac] - b _02036300 -_0203604C: - ldrsb r0, [r3] - mvn r1, #1 - cmp r0, r1 - beq _0203608C - bl FUN_0202d55c - cmp r0, #0 - bne _02036300 - ldr r0, _0203630C @ =0x020AFDD8 - ldr r0, [r0, #4] - ldrsb r0, [r0] - bl FUN_0202d530 - ldr r0, _0203630C @ =0x020AFDD8 - mvn r1, #1 - ldr r0, [r0, #4] - strb r1, [r0] - b _02036300 -_0203608C: - ldrsb r0, [r3, #1] - cmp r0, r1 - bne _020360C4 - mov r0, #0 - bl CreateDBox - ldr r3, _0203630C @ =0x020AFDD8 - ldr r1, _02036318 @ =0x00000408 - ldr r4, [r3, #4] - ldr r2, _0203631C @ =0x000001A5 - strb r0, [r4, #1] - ldr r0, [r3, #4] - mov r3, #0 - ldrsb r0, [r0, #1] - bl ShowMessageInDBox -_020360C4: - ldr r1, _0203630C @ =0x020AFDD8 - mvn r0, #1 - ldr r1, [r1, #4] - ldrsb r1, [r1, #2] - cmp r1, r0 - bne _020360FC - mov r0, #0 - ldr r3, _02036320 @ =0x0209B1D8 - mov r2, r0 - mov r1, #0x13 - bl FUN_0202a5cc - ldr r1, _0203630C @ =0x020AFDD8 - ldr r1, [r1, #4] - strb r0, [r1, #2] -_020360FC: - ldr r0, _0203630C @ =0x020AFDD8 - mov r1, #3 - ldr r0, [r0, #4] - str r1, [r0, #4] - b _02036300 -_02036110: - ldrsb r0, [r3, #2] - bl FUN_0202ab60 - cmp r0, #0 - bne _02036300 - ldr r0, _0203630C @ =0x020AFDD8 - ldr r0, [r0, #4] - ldrsb r0, [r0, #2] - bl FUN_0202abb0 - ldr r1, _0203630C @ =0x020AFDD8 - mov r4, r0 - ldr r0, [r1, #4] - ldrsb r0, [r0, #1] - bl FUN_0202f334 - cmp r4, #1 - ldreq r0, _0203630C @ =0x020AFDD8 - moveq r1, #0 - ldreq r0, [r0, #4] - streq r1, [r0, #4] - beq _02036300 - mov r0, #1 - bl SetNotifyNote - ldr r0, _0203630C @ =0x020AFDD8 - mov r1, #4 - ldr r0, [r0, #4] - str r1, [r0, #4] - b _02036300 -_02036178: - ldrsb r0, [r3] - mvn r1, #1 - cmp r0, r1 - beq _020361B4 - bl FUN_0202d55c - cmp r0, #0 - bne _02036300 - ldr r0, _0203630C @ =0x020AFDD8 - ldr r0, [r0, #4] - ldrsb r0, [r0] - bl FUN_0202d530 - ldr r0, _0203630C @ =0x020AFDD8 - mvn r1, #1 - ldr r0, [r0, #4] - strb r1, [r0] -_020361B4: - ldr r0, _0203630C @ =0x020AFDD8 - mvn r1, #1 - ldr r0, [r0, #4] - ldrsb r0, [r0, #1] - cmp r0, r1 - beq _020361F8 - bl IsDBoxActive - cmp r0, #0 - bne _02036300 - ldr r0, _0203630C @ =0x020AFDD8 - ldr r0, [r0, #4] - ldrsb r0, [r0, #1] - bl FreeDBox - ldr r0, _0203630C @ =0x020AFDD8 - mvn r1, #1 - ldr r0, [r0, #4] - strb r1, [r0, #1] -_020361F8: - ldr r0, _0203630C @ =0x020AFDD8 - mvn r1, #1 - ldr r0, [r0, #4] - ldrsb r0, [r0, #2] - cmp r0, r1 - beq _0203623C - bl FUN_0202ab40 - cmp r0, #0 - bne _02036300 - ldr r0, _0203630C @ =0x020AFDD8 - ldr r0, [r0, #4] - ldrsb r0, [r0, #2] - bl FUN_0202aabc - ldr r0, _0203630C @ =0x020AFDD8 - mvn r1, #1 - ldr r0, [r0, #4] - strb r1, [r0, #2] -_0203623C: - ldr r0, _0203630C @ =0x020AFDD8 - mov r1, #5 - ldr r0, [r0, #4] - str r1, [r0, #4] - b _02036300 -_02036250: - mov r0, #6 - str r0, [r3, #4] - ldrb r0, [r2] - mov r4, #0 - ldr r1, [r2, #4] - cmp r0, #0 - beq _02036298 - ldr r0, [r1, #0xb0] - strb r0, [r1, #0xa4] - ldr r0, [r2, #4] - add r0, r0, #0xa4 - bl FUN_0204afac - ldr r0, _0203630C @ =0x020AFDD8 - ldr r0, [r0, #4] - ldr r0, [r0, #0xa8] - cmp r0, #1 - moveq r4, #1 - b _020362A0 -_02036298: - ldr r0, [r1, #0xb4] - strb r0, [r1, #0xa4] -_020362A0: - ldr r0, _0203630C @ =0x020AFDD8 - ldr r0, [r0, #4] - ldrb r0, [r0, #0xa4] - bl FUN_02027180 - cmp r4, #0 - beq _020362D4 - ldr r1, _0203630C @ =0x020AFDD8 - mov r0, #2 - ldr r2, [r1, #4] - mov r1, #0x100 - add r2, r2, #0xc - bl FUN_0204964c - b _020362F8 -_020362D4: - ldr r0, _0203630C @ =0x020AFDD8 - ldr r2, [r0, #4] - ldr r1, [r2, #8] - tst r1, #0x100 - beq _020362F8 - ldrb r1, [r0] - ldr r0, [r2, #0x94] - ldr r2, [r2, #0x90] - blx r2 -_020362F8: - mov r0, #4 - b _02036304 -_02036300: - mov r0, #1 -_02036304: - add sp, sp, #8 - pop {r4, pc} - .align 2, 0 -_0203630C: .4byte 0x020AFDD8 -_02036310: .4byte 0x0209B1C8 -_02036314: .4byte 0x0209B1F0 -_02036318: .4byte 0x00000408 -_0203631C: .4byte 0x000001A5 -_02036320: .4byte 0x0209B1D8 - arm_func_end FUN_02035e38 -_02036324: - .byte 0x08, 0x40, 0x2D, 0xE9, 0x00, 0x30, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE1 - .byte 0x18, 0x00, 0x9F, 0xE5, 0x03, 0x10, 0xA0, 0xE1, 0x8D, 0xF9, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x0C, 0x00, 0x9F, 0x15, 0x00, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xC0, 0x15, 0x08, 0x80, 0xBD, 0xE8 - .byte 0x18, 0xB2, 0x09, 0x02, 0xE0, 0xFD, 0x0A, 0x02, 0x38, 0x40, 0x2D, 0xE9, 0x08, 0xD0, 0x4D, 0xE2 - .byte 0xB0, 0x00, 0xA0, 0xE3, 0x08, 0x10, 0xA0, 0xE3, 0x80, 0x2B, 0xFF, 0xEB, 0xB8, 0x10, 0x9F, 0xE5 - .byte 0x04, 0x00, 0x81, 0xE5, 0x0C, 0x00, 0x80, 0xE2, 0xAE, 0xF9, 0xFF, 0xEB, 0xA8, 0x40, 0x9F, 0xE5 - .byte 0x00, 0x50, 0xA0, 0xE3, 0x04, 0x10, 0x94, 0xE5, 0x08, 0x00, 0x81, 0xE5, 0xFF, 0x00, 0x05, 0xE2 - .byte 0x5E, 0x57, 0xFF, 0xEB, 0x04, 0x10, 0x94, 0xE5, 0x05, 0x10, 0x81, 0xE0, 0x01, 0x50, 0x85, 0xE2 - .byte 0xA4, 0x00, 0xC1, 0xE5, 0x0C, 0x00, 0x55, 0xE3, 0xF7, 0xFF, 0xFF, 0xBA, 0x78, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x30, 0xA0, 0xE3, 0x04, 0x10, 0x90, 0xE5, 0x70, 0x20, 0x9F, 0xE5, 0x0C, 0x30, 0x81, 0xE5 - .byte 0x04, 0x10, 0x90, 0xE5, 0x10, 0x30, 0xA0, 0xE3, 0xB4, 0x21, 0xC1, 0xE1, 0x04, 0x20, 0x90, 0xE5 - .byte 0x08, 0x10, 0xA0, 0xE3, 0x18, 0x30, 0x82, 0xE5, 0x04, 0x20, 0x90, 0xE5, 0x50, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0x8D, 0xE5, 0xA4, 0x10, 0x82, 0xE2, 0x04, 0x10, 0x8D, 0xE5, 0x08, 0x10, 0x92, 0xE5 - .byte 0x40, 0x30, 0x9F, 0xE5, 0x33, 0x10, 0x81, 0xE3, 0x26, 0x1B, 0x81, 0xE3, 0x0C, 0x20, 0x82, 0xE2 - .byte 0x12, 0xDE, 0xFF, 0xEB, 0x20, 0x10, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x04, 0x20, 0x91, 0xE5 - .byte 0x00, 0x00, 0xC2, 0xE5, 0x04, 0x20, 0x91, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5 - .byte 0x00, 0x30, 0xC1, 0xE5, 0x08, 0xD0, 0x8D, 0xE2, 0x38, 0x80, 0xBD, 0xE8, 0xE0, 0xFD, 0x0A, 0x02 - .byte 0x64, 0x3C, 0x00, 0x00, 0x08, 0xB2, 0x09, 0x02, 0x28, 0xB2, 0x09, 0x02, 0x08, 0x40, 0x2D, 0xE9 - .byte 0x2C, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x08 - .byte 0xD0, 0x00, 0xD0, 0xE1, 0xA7, 0xDE, 0xFF, 0xEB, 0x14, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5 - .byte 0x48, 0x2B, 0xFF, 0xEB, 0x08, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x80, 0xE5 - .byte 0x08, 0x80, 0xBD, 0xE8, 0xE0, 0xFD, 0x0A, 0x02 - - arm_func_start FUN_02036478 -FUN_02036478: @ 0x02036478 - push {r3, r4, r5, lr} - ldr r4, _02036568 @ =0x020AFDE0 - ldr r1, [r4, #4] - ldr r0, [r1, #4] - cmp r0, #0 - beq _020364A4 - cmp r0, #1 - beq _020364C4 - cmp r0, #2 - beq _020364FC - b _02036560 -_020364A4: - ldrsb r0, [r1] - bl FUN_0202df44 - cmp r0, #0 - moveq r0, r4 - ldreq r0, [r0, #4] - moveq r1, #1 - streq r1, [r0, #4] - b _02036560 -_020364C4: - ldrsb r0, [r1] - bl FUN_0202df24 - cmp r0, #0 - bne _02036560 - mov r0, r4 - ldr r0, [r0, #4] - ldrsb r0, [r0] - bl FUN_0202df64 - mov r1, r4 - strb r0, [r1] - ldr r0, [r1, #4] - mov r2, #2 - str r2, [r0, #4] - b _02036560 -_020364FC: - mov r0, #3 - str r0, [r1, #4] - ldrb r0, [r4] - cmp r0, #0 - beq _02036534 - mov r5, #0 -_02036514: - ldr r1, [r4, #4] - and r0, r5, #0xff - add r1, r1, r5 - ldrb r1, [r1, #0xa4] - bl SetDebugFlag1 - add r5, r5, #1 - cmp r5, #0xc - blt _02036514 -_02036534: - ldr r0, _02036568 @ =0x020AFDE0 - ldr r2, [r0, #4] - ldr r1, [r2, #8] - tst r1, #0x100 - beq _02036558 - ldrb r1, [r0] - ldr r0, [r2, #0x94] - ldr r2, [r2, #0x90] - blx r2 -_02036558: - mov r0, #4 - pop {r3, r4, r5, pc} -_02036560: - mov r0, #1 - pop {r3, r4, r5, pc} - .align 2, 0 -_02036568: .4byte 0x020AFDE0 - arm_func_end FUN_02036478 -_0203656C: - .byte 0x08, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x30, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE1, 0x18, 0x00, 0x9F, 0xE5, 0x03, 0x10, 0xA0, 0xE1 - .byte 0xFB, 0xF8, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x9F, 0x15, 0x00, 0x10, 0xA0, 0x13 - .byte 0x00, 0x10, 0xC0, 0x15, 0x08, 0x80, 0xBD, 0xE8, 0x54, 0xB2, 0x09, 0x02, 0xE8, 0xFD, 0x0A, 0x02 - .byte 0x38, 0x40, 0x2D, 0xE9, 0x08, 0xD0, 0x4D, 0xE2, 0xB4, 0x00, 0xA0, 0xE3, 0x08, 0x10, 0xA0, 0xE3 - .byte 0xEE, 0x2A, 0xFF, 0xEB, 0xB8, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0x81, 0xE5, 0x0C, 0x00, 0x80, 0xE2 - .byte 0x1C, 0xF9, 0xFF, 0xEB, 0xA8, 0x40, 0x9F, 0xE5, 0x00, 0x50, 0xA0, 0xE3, 0x04, 0x10, 0x94, 0xE5 - .byte 0x08, 0x00, 0x81, 0xE5, 0xFF, 0x00, 0x05, 0xE2, 0x15, 0x57, 0xFF, 0xEB, 0x04, 0x10, 0x94, 0xE5 - .byte 0x05, 0x10, 0x81, 0xE0, 0x01, 0x50, 0x85, 0xE2, 0xA4, 0x00, 0xC1, 0xE5, 0x10, 0x00, 0x55, 0xE3 - .byte 0xF7, 0xFF, 0xFF, 0xBA, 0x78, 0x00, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x04, 0x10, 0x90, 0xE5 - .byte 0x70, 0x20, 0x9F, 0xE5, 0x0C, 0x30, 0x81, 0xE5, 0x04, 0x10, 0x90, 0xE5, 0x10, 0x30, 0xA0, 0xE3 - .byte 0xB4, 0x21, 0xC1, 0xE1, 0x04, 0x20, 0x90, 0xE5, 0x08, 0x10, 0xA0, 0xE3, 0x18, 0x30, 0x82, 0xE5 - .byte 0x04, 0x20, 0x90, 0xE5, 0x50, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x8D, 0xE5, 0xA4, 0x10, 0x82, 0xE2 - .byte 0x04, 0x10, 0x8D, 0xE5, 0x08, 0x10, 0x92, 0xE5, 0x40, 0x30, 0x9F, 0xE5, 0x33, 0x10, 0x81, 0xE3 - .byte 0x26, 0x1B, 0x81, 0xE3, 0x0C, 0x20, 0x82, 0xE2, 0x80, 0xDD, 0xFF, 0xEB, 0x20, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x30, 0xA0, 0xE3, 0x04, 0x20, 0x91, 0xE5, 0x00, 0x00, 0xC2, 0xE5, 0x04, 0x20, 0x91, 0xE5 - .byte 0x01, 0x00, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5, 0x00, 0x30, 0xC1, 0xE5, 0x08, 0xD0, 0x8D, 0xE2 - .byte 0x38, 0x80, 0xBD, 0xE8, 0xE8, 0xFD, 0x0A, 0x02, 0x73, 0x3C, 0x00, 0x00, 0x44, 0xB2, 0x09, 0x02 - .byte 0x64, 0xB2, 0x09, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x2C, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x08, 0xD0, 0x00, 0xD0, 0xE1, 0x15, 0xDE, 0xFF, 0xEB - .byte 0x14, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0xB6, 0x2A, 0xFF, 0xEB, 0x08, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0xE8, 0xFD, 0x0A, 0x02 - - arm_func_start FUN_020366c0 -FUN_020366c0: @ 0x020366C0 - push {r3, r4, r5, lr} - ldr r4, _020367B0 @ =0x020AFDE8 - ldr r1, [r4, #4] - ldr r0, [r1, #4] - cmp r0, #0 - beq _020366EC - cmp r0, #1 - beq _0203670C - cmp r0, #2 - beq _02036744 - b _020367A8 -_020366EC: - ldrsb r0, [r1] - bl FUN_0202df44 - cmp r0, #0 - moveq r0, r4 - ldreq r0, [r0, #4] - moveq r1, #1 - streq r1, [r0, #4] - b _020367A8 -_0203670C: - ldrsb r0, [r1] - bl FUN_0202df24 - cmp r0, #0 - bne _020367A8 - mov r0, r4 - ldr r0, [r0, #4] - ldrsb r0, [r0] - bl FUN_0202df64 - mov r1, r4 - strb r0, [r1] - ldr r0, [r1, #4] - mov r2, #2 - str r2, [r0, #4] - b _020367A8 -_02036744: - mov r0, #3 - str r0, [r1, #4] - ldrb r0, [r4] - cmp r0, #0 - beq _0203677C - mov r5, #0 -_0203675C: - ldr r1, [r4, #4] - and r0, r5, #0xff - add r1, r1, r5 - ldrb r1, [r1, #0xa4] - bl SetDebugFlag2 - add r5, r5, #1 - cmp r5, #0x10 - blt _0203675C -_0203677C: - ldr r0, _020367B0 @ =0x020AFDE8 - ldr r2, [r0, #4] - ldr r1, [r2, #8] - tst r1, #0x100 - beq _020367A0 - ldrb r1, [r0] - ldr r0, [r2, #0x94] - ldr r2, [r2, #0x90] - blx r2 -_020367A0: - mov r0, #4 - pop {r3, r4, r5, pc} -_020367A8: - mov r0, #1 - pop {r3, r4, r5, pc} - .align 2, 0 -_020367B0: .4byte 0x020AFDE8 - arm_func_end FUN_020366c0 -_020367B4: - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x28, 0x00, 0x9F, 0xE5 - .byte 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1, 0x45, 0xF8, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x70, 0x80, 0xBD, 0x08, 0x06, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1, 0x04, 0x30, 0xA0, 0xE1 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x01, 0x00, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x98, 0xB2, 0x09, 0x02 - - arm_func_start ShowKeyboard -ShowKeyboard: @ 0x020367F0 - push {r3, r4, r5, r6, r7, lr} - mov r6, r0 - mov r5, r1 - mov r0, #0x1e8 - mov r1, #8 - mov r4, r2 - mov r7, r3 - bl MemAlloc - ldr r2, _02036CB0 @ =0x020AFDF0 - mov r1, #0x1e8 - str r0, [r2] - bl MemZero - cmp r7, #0 - ldreq r0, _02036CB0 @ =0x020AFDF0 - moveq r1, #0 - ldreq r0, [r0] - strbeq r1, [r0, #0x16e] - beq _02036850 - ldr r0, _02036CB0 @ =0x020AFDF0 - mov r1, r7 - ldr r0, [r0] - add r0, r0, #0x6e - add r0, r0, #0x100 - bl _02025100 -_02036850: - ldr r0, _02036CB0 @ =0x020AFDF0 - mov r2, #0 - ldr r1, [r0] - cmp r4, #0 - strb r2, [r1, #0x11] - ldr r1, [r0] - and r3, r6, #0xff - strb r2, [r1, #0x12] - ldrne r1, [r0] - movne r2, #1 - strbne r2, [r1, #0x11] - ldrne r0, [r0] - strbne r2, [r0, #0x12] - ldr r0, _02036CB0 @ =0x020AFDF0 - mov r2, #0 - ldr r1, [r0] - str r3, [r1, #0xc] - ldr r1, [r0] - strb r2, [r1, #0x1d] - ldr r1, [r0] - strb r2, [r1, #0x1e] - ldr r1, [r0] - mov r2, #0 - ldr r0, [r1, #0xc] - cmp r0, #0xa - moveq r0, #1 - streq r0, [r1, #0xc] - ldr r1, _02036CB0 @ =0x020AFDF0 - ldr r0, [r1] - ldr r3, [r0, #0xc] - add r0, r0, #0x100 - add r3, r3, #0x118 - strh r3, [r0, #0xa6] - ldr r0, [r1] - strb r2, [r0, #0x16] - ldr r0, [r1] - strb r2, [r0, #0x15] - ldr r0, [r1] - strh r2, [r0, #8] - ldr r0, [r1] - strb r2, [r0, #0x10] - ldr r3, [r1] - ldr r0, [r3, #0xc] - cmp r0, #9 - addls pc, pc, r0, lsl #2 - b _02036A40 -_02036908: @ jump table - b _02036A40 @ case 0 - b _020369F0 @ case 1 - b _02036A40 @ case 2 - b _02036A40 @ case 3 - b _02036A20 @ case 4 - b _02036930 @ case 5 - b _020369A0 @ case 6 - b _020369D0 @ case 7 - b _02036960 @ case 8 - b _02036A08 @ case 9 -_02036930: - mov r0, #9 - strb r0, [r3, #0x18] - ldr r0, [r1] - mov r2, #1 - strb r2, [r0, #0x10] - ldr r0, [r1] - mov r2, #0x36 - strb r2, [r0, #0x1b] - ldr r0, [r1] - mov r1, #2 - strb r1, [r0, #0x16] - b _02036A58 -_02036960: - mov r0, #6 - strb r0, [r3, #0x18] - ldr r0, [r1] - mov r2, #3 - strb r2, [r0, #0x16] - ldr r0, [r1] - mov r2, #1 - strb r2, [r0, #0x10] - ldr r0, [r1] - mov r2, #0x36 - strb r2, [r0, #0x1b] - ldr r0, [r1] - add r1, r2, #0xe9 - add r0, r0, #0x100 - strh r1, [r0, #0xa6] - b _02036A58 -_020369A0: - mov r0, #9 - strb r0, [r3, #0x18] - ldr r0, [r1] - mov r2, #1 - strb r2, [r0, #0x10] - ldr r0, [r1] - mov r2, #0x22 - strb r2, [r0, #0x1b] - ldr r0, [r1] - mov r1, #2 - strb r1, [r0, #0x16] - b _02036A58 -_020369D0: - strb r2, [r3, #0x16] - ldr r0, [r1] - mov r2, #6 - strb r2, [r0, #0x18] - ldr r0, [r1] - mov r1, #0x36 - strb r1, [r0, #0x1b] - b _02036A58 -_020369F0: - mov r0, #6 - strb r0, [r3, #0x18] - ldr r0, [r1] - mov r1, #0xa - strb r1, [r0, #0x1b] - b _02036A58 -_02036A08: - mov r0, #4 - strb r0, [r3, #0x16] - ldr r0, [r1] - mov r1, #0x11c - add r0, r0, #0x100 - strh r1, [r0, #0xa6] -_02036A20: - ldr r0, _02036CB0 @ =0x020AFDF0 - mov r3, #6 - ldr r2, [r0] - mov r1, #1 - strb r3, [r2, #0x18] - ldr r0, [r0] - strb r1, [r0, #0x1b] - b _02036A58 -_02036A40: - mov r1, #6 - ldr r0, _02036CB0 @ =0x020AFDF0 - strb r1, [r3, #0x18] - ldr r0, [r0] - mov r1, #0xa - strb r1, [r0, #0x1b] -_02036A58: - ldr r0, _02036CB0 @ =0x020AFDF0 - mov r3, #0 - ldr r2, [r0] - add r1, r2, #0xfc - str r1, [r2, #0xf8] - mov r2, r3 -_02036A70: - ldr r1, [r0] - ldr r1, [r1, #0xf8] - strb r2, [r1, r3] - add r3, r3, #1 - cmp r3, #0x36 - blt _02036A70 - cmp r5, #0 - ldreq r0, _02036CB0 @ =0x020AFDF0 - ldreq r1, [r0] - addeq r0, r1, #0x138 - streq r0, [r1, #0x134] - beq _02036AE4 - ldr r0, _02036CB0 @ =0x020AFDF0 - ldr r1, [r0] - str r5, [r1, #0x134] - ldr r1, [r0] - ldrb r2, [r1, #0x1b] - ldr r0, [r1, #0xf8] - ldr r1, [r1, #0x134] - bl MemcpySimple - ldr r0, _02036CB0 @ =0x020AFDF0 - ldr r2, [r0] - add r1, r2, #0x138 - str r1, [r2, #0x134] - ldr r1, [r0] - ldrb r2, [r1, #0x1b] - ldr r0, [r1, #0x134] - ldr r1, [r1, #0xf8] - bl MemcpySimple -_02036AE4: - ldr r0, _02036CB0 @ =0x020AFDF0 - mov r4, #0 - ldr r2, [r0] - ldrb r1, [r2, #0x1b] - b _02036B0C -_02036AF8: - ldr r0, [r2, #0xf8] - ldrb r0, [r0, r4] - cmp r0, #0 - beq _02036B14 - add r4, r4, #1 -_02036B0C: - cmp r4, r1 - blt _02036AF8 -_02036B14: - mov r2, #0 - ldr r0, _02036CB0 @ =0x020AFDF0 - b _02036B2C -_02036B20: - ldr r1, [r3, #0xf8] - strb r2, [r1, r4] - add r4, r4, #1 -_02036B2C: - ldr r3, [r0] - ldrb r1, [r3, #0x1b] - cmp r4, r1 - blt _02036B20 - bl FUN_02038a54 - ldr r1, _02036CB0 @ =0x020AFDF0 - ldr r2, [r1] - strb r0, [r2, #0x1c] - ldr r2, [r1] - ldrb r1, [r2, #0x1c] - ldrb r0, [r2, #0x1b] - cmp r1, r0 - subeq r0, r1, #1 - strbeq r0, [r2, #0x1c] - ldr r0, _02036CB0 @ =0x020AFDF0 - mvn r1, #1 - ldr r3, [r0] - ldrb r2, [r3, #0x16] - strb r2, [r3, #0x17] - ldr r0, [r0] - strb r1, [r0, #2] - bl FUN_02038adc - ldr r0, _02036CB0 @ =0x020AFDF0 - ldr r0, [r0] - ldr r0, [r0, #0xc] - sub r0, r0, #5 - cmp r0, #3 - addls pc, pc, r0, lsl #2 - b _02036C30 -_02036BA0: @ jump table - b _02036BB0 @ case 0 - b _02036BB0 @ case 1 - b _02036BB0 @ case 2 - b _02036BB0 @ case 3 -_02036BB0: - ldr r0, _02036CB4 @ =0x0209B2FC - ldr r1, _02036CB8 @ =FUN_02037f58 - bl FUN_0202f8c4 - ldr r1, _02036CB0 @ =0x020AFDF0 - ldr r2, [r1] - strb r0, [r2] - ldr r1, [r1] - ldrb r0, [r1, #0x12] - cmp r0, #1 - mvneq r0, #1 - strbeq r0, [r1, #2] - beq _02036C84 - ldr r0, [r1, #0xc] - cmp r0, #8 - beq _02036BF8 - sub r0, r0, #5 - cmp r0, #1 - bhi _02036C14 -_02036BF8: - ldr r0, _02036CBC @ =0x0209B31C - ldr r1, _02036CC0 @ =FUN_02037ca8 - bl FUN_0202f8c4 - ldr r1, _02036CB0 @ =0x020AFDF0 - ldr r1, [r1] - strb r0, [r1, #2] - b _02036C84 -_02036C14: - ldr r0, _02036CBC @ =0x0209B31C - ldr r1, _02036CC4 @ =0x02037C78 - bl FUN_0202f8c4 - ldr r1, _02036CB0 @ =0x020AFDF0 - ldr r1, [r1] - strb r0, [r1, #2] - b _02036C84 -_02036C30: - ldr r0, _02036CC8 @ =0x0209B2EC - ldr r1, _02036CB8 @ =FUN_02037f58 - bl FUN_0202f8c4 - ldr r1, _02036CB0 @ =0x020AFDF0 - ldr r2, [r1] - strb r0, [r2] - ldr r1, [r1] - ldr r0, [r1, #0xc] - cmp r0, #4 - cmpne r0, #9 - ldrbne r0, [r1, #0x12] - cmpne r0, #1 - mvneq r0, #1 - strbeq r0, [r1, #2] - beq _02036C84 - ldr r0, _02036CBC @ =0x0209B31C - ldr r1, _02036CC4 @ =0x02037C78 - bl FUN_0202f8c4 - ldr r1, _02036CB0 @ =0x020AFDF0 - ldr r1, [r1] - strb r0, [r1, #2] -_02036C84: - ldr r0, _02036CCC @ =0x0209B2DC - ldr r1, _02036CD0 @ =FUN_02037cd8 - bl FUN_0202f8c4 - ldr r1, _02036CB0 @ =0x020AFDF0 - mov r2, #0 - ldr r3, [r1] - strb r0, [r3, #1] - ldr r1, [r1] - mov r0, #1 - str r2, [r1, #4] - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02036CB0: .4byte 0x020AFDF0 -_02036CB4: .4byte 0x0209B2FC -_02036CB8: .4byte FUN_02037f58 -_02036CBC: .4byte 0x0209B31C -_02036CC0: .4byte FUN_02037ca8 -_02036CC4: .4byte 0x02037C78 -_02036CC8: .4byte 0x0209B2EC -_02036CCC: .4byte 0x0209B2DC -_02036CD0: .4byte FUN_02037cd8 - arm_func_end ShowKeyboard - - arm_func_start GetKeyboardStatus -GetKeyboardStatus: @ 0x02036CD4 - push {r4, r5, lr} - sub sp, sp, #0x5c - ldr r0, _02037444 @ =0x020AFDF0 - ldr r4, [r0] - ldr r0, [r4, #0xc] - sub r1, r0, #4 - cmp r1, #5 - addls pc, pc, r1, lsl #2 - b _02036DE8 -_02036CF8: @ jump table - b _02036DB8 @ case 0 - b _02036D10 @ case 1 - b _02036D40 @ case 2 - b _02036D70 @ case 3 - b _02036D10 @ case 4 - b _02036DB8 @ case 5 -_02036D10: - ldrb r2, [r4, #0x1c] - ldr r1, _02037448 @ =0x0209B3B4 - ldr r0, _0203744C @ =0x0209B3B6 - lsl r3, r2, #2 - ldrsh r2, [r1, r3] - ldrsh r1, [r0, r3] - ldrsb r0, [r4, #1] - add r2, r2, #0xc - add r3, r1, #0x24 - mov r1, #5 - bl FUN_020288fc - b _02036E30 -_02036D40: - ldrb r2, [r4, #0x1c] - ldr r1, _02037450 @ =0x0209B32C - ldr r0, _02037454 @ =0x0209B32E - lsl r3, r2, #2 - ldrsh r2, [r1, r3] - ldrsh r1, [r0, r3] - ldrsb r0, [r4, #1] - add r2, r2, #0xc - add r3, r1, #0x24 - mov r1, #5 - bl FUN_020288fc - b _02036E30 -_02036D70: - ldrb r5, [r4, #0x1c] - mov r1, #0x12 - mov r0, r5 - bl DivideInt - mov r1, #0x12 - mul r1, r0, r1 - ldr r0, _02037448 @ =0x0209B3B4 - lsl r2, r5, #2 - ldrsh r2, [r0, r2] - ldr r0, _0203744C @ =0x0209B3B6 - lsl r1, r1, #2 - ldrsh r1, [r0, r1] - ldrsb r0, [r4, #1] - add r2, r2, #0xc - add r3, r1, #0x24 - mov r1, #5 - bl FUN_020288fc - b _02036E30 -_02036DB8: - ldr r2, _02037458 @ =0x0209B2C4 - ldr r1, _0203745C @ =0x0209B2D0 - ldrsh r3, [r4, #0x20] - ldrb r1, [r1, r0] - ldrb r2, [r2, r0] - add r3, r3, #0x25 - ldrsb r0, [r4, #1] - add r2, r3, r2 - add r3, r1, #0x24 - mov r1, #5 - bl FUN_020288fc - b _02036E30 -_02036DE8: - ldr r1, _02037444 @ =0x020AFDF0 - ldr r2, _02037458 @ =0x0209B2C4 - ldr ip, [r1] - ldr r1, _0203745C @ =0x0209B2D0 - ldrb r5, [ip, #0x1c] - ldrb r3, [r1, r0] - ldrb r4, [r2, r0] - add r0, ip, r5, lsl #1 - ldrsh r2, [r0, #0x20] - ldrsh r1, [r0, #0x8c] - ldrsb r0, [ip, #1] - add r2, r2, #0x1f - add r2, r4, r2 - add r1, r1, r1, lsr #31 - add r2, r2, r1, asr #1 - add r3, r3, #0x24 - mov r1, #5 - bl FUN_020288fc -_02036E30: - ldr r1, _02037444 @ =0x020AFDF0 - add r0, sp, #0x38 - ldr r3, [r1] - mov r1, #1 - ldrb r2, [r3, #0x14] - add r2, r2, #1 - strb r2, [r3, #0x14] - bl FUN_02031914 - ldr r0, [sp, #0x3c] - ldr r1, [sp, #0x40] - lsl r0, r0, #0x10 - lsl r1, r1, #0x10 - lsr r0, r0, #0x10 - lsr r1, r1, #0x10 - mov r2, #0 - bl FUN_02038b80 - cmp r0, #0x64 - blt _02036EB4 - ldr r1, _02037444 @ =0x020AFDF0 - sub r0, r0, #0x64 - ldr r2, [r1] - and r1, r0, #0xff - ldrb r0, [r2, #0x1c] - cmp r0, r1 - beq _02036EE0 - mov r0, #3 - strb r1, [r2, #0x1c] - bl FUN_02017ccc - ldr r0, _02037444 @ =0x020AFDF0 - mov r1, #8 - ldr r0, [r0] - strb r1, [r0, #0x14] - b _02036EE0 -_02036EB4: - cmp r0, #0 - blt _02036EE0 - ldr r1, _02037444 @ =0x020AFDF0 - and r0, r0, #0xff - ldr r3, [r1] - ldrb r2, [r3, #0x18] - cmp r2, r0 - strbne r0, [r3, #0x18] - ldrne r0, [r1] - movne r1, #8 - strbne r1, [r0, #0x14] -_02036EE0: - ldr r0, _02037444 @ =0x020AFDF0 - ldr r1, [r0] - ldrb r0, [r1, #0x1e] - cmp r0, #0 - subne r0, r0, #1 - strbne r0, [r1, #0x1e] - add r1, sp, #8 - mov r0, #0 - bl FUN_020063f4 - add r1, sp, #0xa - mov r0, #0 - bl GetHeldButtons - ldrh r0, [sp, #0xa] - tst r0, #0x100 - beq _02036F5C - ldr r0, _02037444 @ =0x020AFDF0 - mov r2, #0xa - ldr r5, [r0] - ldr r3, [r0, #8] - ldrb r1, [r5, #0x16] - ldrb r4, [r5, #0x18] - ldrsb r0, [r5] - ldr r3, [r3, r1, lsl #2] - mov r1, #3 - mla r3, r4, r2, r3 - ldrb r2, [r3, #4] - ldrb r3, [r3, #5] - add r2, r2, #2 - add r3, r3, #0x61 - bl FUN_020288fc - b _020370A4 -_02036F5C: - ldrh r0, [sp, #8] - cmp r0, #0x20 - bgt _02036F78 - bge _02036FE4 - cmp r0, #0x10 - beq _0203700C - b _02037034 -_02036F78: - cmp r0, #0x40 - bgt _02036F88 - beq _02036F94 - b _02037034 -_02036F88: - cmp r0, #0x80 - beq _02036FBC - b _02037034 -_02036F94: - ldr r0, _02037444 @ =0x020AFDF0 - mov r2, #0xa - ldr r1, [r0] - ldr r4, [r0, #8] - ldrb r0, [r1, #0x18] - ldrb r3, [r1, #0x16] - smulbb r2, r0, r2 - ldr r3, [r4, r3, lsl #2] - ldrb r2, [r3, r2] - b _02037044 -_02036FBC: - ldr r0, _02037444 @ =0x020AFDF0 - mov r2, #0xa - ldr r1, [r0] - ldr r4, [r0, #8] - ldrb r3, [r1, #0x16] - ldrb r0, [r1, #0x18] - ldr r3, [r4, r3, lsl #2] - mla r2, r0, r2, r3 - ldrb r2, [r2, #1] - b _02037044 -_02036FE4: - ldr r0, _02037444 @ =0x020AFDF0 - mov r2, #0xa - ldr r1, [r0] - ldr r4, [r0, #8] - ldrb r3, [r1, #0x16] - ldrb r0, [r1, #0x18] - ldr r3, [r4, r3, lsl #2] - mla r2, r0, r2, r3 - ldrb r2, [r2, #2] - b _02037044 -_0203700C: - ldr r0, _02037444 @ =0x020AFDF0 - mov r2, #0xa - ldr r1, [r0] - ldr r4, [r0, #8] - ldrb r3, [r1, #0x16] - ldrb r0, [r1, #0x18] - ldr r3, [r4, r3, lsl #2] - mla r2, r0, r2, r3 - ldrb r2, [r2, #3] - b _02037044 -_02037034: - ldr r0, _02037444 @ =0x020AFDF0 - ldr r1, [r0] - ldrb r0, [r1, #0x18] - mov r2, r0 -_02037044: - cmp r2, r0 - beq _02037068 - mov r0, #3 - strb r2, [r1, #0x18] - bl FUN_02017ccc - ldr r0, _02037444 @ =0x020AFDF0 - mov r1, #8 - ldr r0, [r0] - strb r1, [r0, #0x14] -_02037068: - ldr r0, _02037444 @ =0x020AFDF0 - mov r2, #0xa - ldr r5, [r0] - ldr r3, [r0, #8] - ldrb r1, [r5, #0x16] - ldrb r4, [r5, #0x18] - ldrsb r0, [r5] - ldr r3, [r3, r1, lsl #2] - mov r1, #3 - mla r3, r4, r2, r3 - ldrb r2, [r3, #4] - ldrb r3, [r3, #5] - add r2, r2, #2 - add r3, r3, #0x61 - bl FUN_020288fc -_020370A4: - add r0, sp, #0x14 - mov r1, #1 - bl FUN_02031914 - ldrh r0, [sp, #0x14] - tst r0, #2 - beq _020371C0 - ldr r0, _02037444 @ =0x020AFDF0 - ldr r0, [r0] - ldrb r0, [r0, #0x1e] - cmp r0, #0 - bne _020371C0 - ldr r0, [sp, #0x18] - ldr r1, [sp, #0x1c] - lsl r0, r0, #0x10 - lsl r1, r1, #0x10 - lsr r0, r0, #0x10 - lsr r1, r1, #0x10 - mov r2, #1 - bl FUN_02038b80 - mov r4, r0 - cmp r4, #0x64 - bge _02037108 - mvn r0, #0 - cmp r4, r0 - bne _02037110 -_02037108: - mvn r4, #0 - b _020371C4 -_02037110: - ldr r0, _02037444 @ =0x020AFDF0 - ldr r0, [r0] - ldrsb r0, [r0, #1] - bl FUN_020275f8 - ldr r3, _02037444 @ =0x020AFDF0 - mov r1, #0xa - ldr ip, [r3] - mul r5, r4, r1 - ldrb r1, [ip, #0x16] - ldr ip, [r3, #8] - ldr r3, _02037460 @ =0x0209B28C - ldr ip, [ip, r1, lsl #2] - mov r1, #0x40 - str r3, [sp] - str r1, [sp, #4] - add r1, ip, r5 - ldrb ip, [r1, #4] - ldrb lr, [r0, #4] - ldrb r3, [r0, #5] - ldrb r1, [r1, #5] - add r0, ip, lr, lsl #3 - lsl r0, r0, #0x10 - add r1, r1, r3, lsl #3 - lsl r1, r1, #0x10 - mov r2, #0xc - cmp r4, #5 - movle r2, #0x24 - lsl r2, r2, #0x10 - asr r0, r0, #0x10 - asr r1, r1, #0x10 - asr r2, r2, #0x10 - mov r3, #0xc - bl FUN_0202a2a4 - ldr r0, _02037444 @ =0x020AFDF0 - ldr r2, [r0] - ldr r1, [r0, #8] - ldrb r0, [r2, #0x16] - ldr r0, [r1, r0, lsl #2] - add r0, r0, r5 - ldrh r0, [r0, #8] - cmp r0, #0x108 - movne r0, #5 - strbne r0, [r2, #0x1e] - b _020371C4 -_020371C0: - mvn r4, #0 -_020371C4: - mvn r0, #0 - cmp r4, r0 - beq _020371D8 - bl FUN_020384b0 - b _0203743C -_020371D8: - add r1, sp, #0x10 - mov r0, #0 - bl GetPressedButtons - add r1, sp, #0xe - mov r0, #0 - bl GetHeldButtons - add r1, sp, #0xc - mov r0, #0 - bl FUN_020063f4 - ldrh r0, [sp, #0xe] - tst r0, #0x100 - beq _02037374 - ldrh r0, [sp, #0xc] - cmp r0, #0x20 - bgt _02037224 - bge _02037240 - cmp r0, #0x10 - beq _02037274 - b _02037374 -_02037224: - cmp r0, #0x40 - bgt _02037234 - beq _020372C0 - b _02037374 -_02037234: - cmp r0, #0x80 - beq _02037308 - b _02037374 -_02037240: - ldr r0, _02037444 @ =0x020AFDF0 - ldr r2, [r0] - ldrb r0, [r2, #0x1c] - cmp r0, #0 - beq _02037268 - sub r1, r0, #1 - mov r0, #3 - strb r1, [r2, #0x1c] - bl FUN_02017ccc - b _02037374 -_02037268: - mov r0, #2 - bl FUN_02017ccc - b _02037374 -_02037274: - ldr r0, _02037444 @ =0x020AFDF0 - ldr r4, [r0] - ldrb r0, [r4, #0x1b] - ldrb r1, [r4, #0x1c] - sub r0, r0, #1 - cmp r1, r0 - beq _020372B4 - bl FUN_02038a54 - ldrb r1, [r4, #0x1c] - cmp r1, r0 - bge _020372B4 - add r1, r1, #1 - mov r0, #3 - strb r1, [r4, #0x1c] - bl FUN_02017ccc - b _02037374 -_020372B4: - mov r0, #2 - bl FUN_02017ccc - b _02037374 -_020372C0: - ldr r0, _02037444 @ =0x020AFDF0 - ldr r1, _02037464 @ =0x0209B2B8 - ldr r2, [r0] - ldr r0, [r2, #0xc] - ldrsb r1, [r1, r0] - cmp r1, #0 - beq _02037374 - ldrb r0, [r2, #0x1c] - cmp r0, r1 - blt _020372FC - sub r1, r0, r1 - mov r0, #3 - strb r1, [r2, #0x1c] - bl FUN_02017ccc - b _02037374 -_020372FC: - mov r0, #2 - bl FUN_02017ccc - b _02037374 -_02037308: - ldr r0, _02037444 @ =0x020AFDF0 - ldr r1, _02037464 @ =0x0209B2B8 - ldr r4, [r0] - ldr r0, [r4, #0xc] - ldrsb r5, [r1, r0] - cmp r5, #0 - beq _02037374 - ldrb r0, [r4, #0x1b] - ldrb r1, [r4, #0x1c] - sub r0, r0, #1 - cmp r1, r0 - beq _0203736C - bl FUN_02038a54 - ldrb r1, [r4, #0x1c] - add r1, r1, r5 - cmp r1, r0 - bge _0203736C - ldr r1, _02037444 @ =0x020AFDF0 - mov r0, #3 - ldr r2, [r1] - ldrb r1, [r2, #0x1c] - add r1, r1, r5 - strb r1, [r2, #0x1c] - bl FUN_02017ccc - b _02037374 -_0203736C: - mov r0, #2 - bl FUN_02017ccc -_02037374: - ldrh r0, [sp, #0x10] - cmp r0, #8 - addls pc, pc, r0, lsl #2 - b _02037438 -_02037384: @ jump table - b _02037438 @ case 0 - b _020373A8 @ case 1 - b _020373B0 @ case 2 - b _02037438 @ case 3 - b _020373E0 @ case 4 - b _02037438 @ case 5 - b _02037438 @ case 6 - b _02037438 @ case 7 - b _020373C4 @ case 8 -_020373A8: - bl FUN_020384b0 - b _0203743C -_020373B0: - bl FUN_02038904 - cmp r0, #0 - beq _02037438 - mov r0, #2 - b _0203743C -_020373C4: - mov r0, #3 - bl FUN_02017ccc - ldr r0, _02037444 @ =0x020AFDF0 - mov r1, #5 - ldr r0, [r0] - strb r1, [r0, #0x18] - b _02037438 -_020373E0: - ldr r0, _02037444 @ =0x020AFDF0 - ldr r2, [r0] - ldrb r1, [r2, #0x10] - cmp r1, #0 - bne _02037438 - ldrb r1, [r2, #0x16] - cmp r1, #2 - bhi _02037438 - add r1, r1, #1 - strb r1, [r2, #0x16] - ldr r2, [r0] - mov r0, #4 - ldrb r1, [r2, #0x16] - and r1, r1, #1 - strb r1, [r2, #0x16] - bl FUN_02017ccc - ldr r0, _02037444 @ =0x020AFDF0 - ldr r0, [r0] - ldrsb r0, [r0, #1] - bl FUN_02037cd8 - mov r0, #1 - bl FUN_020383fc -_02037438: - mov r0, #0 -_0203743C: - add sp, sp, #0x5c - pop {r4, r5, pc} - .align 2, 0 -_02037444: .4byte 0x020AFDF0 -_02037448: .4byte 0x0209B3B4 -_0203744C: .4byte 0x0209B3B6 -_02037450: .4byte 0x0209B32C -_02037454: .4byte 0x0209B32E -_02037458: .4byte 0x0209B2C4 -_0203745C: .4byte 0x0209B2D0 -_02037460: .4byte 0x0209B28C -_02037464: .4byte 0x0209B2B8 - arm_func_end GetKeyboardStatus - - arm_func_start FUN_02037468 -FUN_02037468: @ 0x02037468 - push {r3, lr} - ldr r0, _02037558 @ =0x020AFDF0 - ldr r0, [r0] - cmp r0, #0 - beq _02037550 - ldrsh r1, [r0, #8] - cmp r1, #3 - beq _0203749C - cmp r1, #4 - beq _020374D4 - cmp r1, #5 - beq _0203751C - b _02037534 -_0203749C: - ldrsb r0, [r0] - bl FUN_0202f954 - ldr r0, _02037558 @ =0x020AFDF0 - ldr r0, [r0] - ldrsb r0, [r0, #1] - bl FUN_0202f954 - ldr r0, _02037558 @ =0x020AFDF0 - mvn r1, #1 - ldr r0, [r0] - ldrsb r0, [r0, #2] - cmp r0, r1 - beq _02037534 - bl FUN_0202f954 - b _02037534 -_020374D4: - ldrsb r0, [r0] - bl FUN_0202f8fc - ldr r0, _02037558 @ =0x020AFDF0 - ldr r0, [r0] - ldrsb r0, [r0, #1] - bl FUN_0202f8fc - ldr r0, _02037558 @ =0x020AFDF0 - mvn r1, #1 - ldr r0, [r0] - ldrsb r0, [r0, #2] - cmp r0, r1 - beq _02037534 - bl FUN_0202f8fc - ldr r0, _02037558 @ =0x020AFDF0 - mvn r1, #1 - ldr r0, [r0] - strb r1, [r0, #2] - b _02037534 -_0203751C: - bl MemFree - ldr r0, _02037558 @ =0x020AFDF0 - mov r1, #0 - str r1, [r0] - mov r0, #1 - pop {r3, pc} -_02037534: - ldr r1, _02037558 @ =0x020AFDF0 - mov r0, #0 - ldr r2, [r1] - ldrsh r1, [r2, #8] - add r1, r1, #1 - strh r1, [r2, #8] - pop {r3, pc} -_02037550: - mov r0, #1 - pop {r3, pc} - .align 2, 0 -_02037558: .4byte 0x020AFDF0 - arm_func_end FUN_02037468 - - arm_func_start GetKeyboardStringResult -GetKeyboardStringResult: @ 0x0203755C - ldr r0, _0203756C @ =0x020AFDF0 - ldr r0, [r0] - ldr r0, [r0, #0xf8] - bx lr - .align 2, 0 -_0203756C: .4byte 0x020AFDF0 - arm_func_end GetKeyboardStringResult - - arm_func_start FUN_02037570 -FUN_02037570: @ 0x02037570 - push {r3, r4, r5, lr} - mov r5, r0 - mov r0, #0x1e8 - mov r1, #8 - mov r4, r3 - bl MemAlloc - ldr r2, _020376E0 @ =0x020AFDF0 - mov r1, #0x1e8 - str r0, [r2] - bl MemZero - ldr r0, _020376E0 @ =0x020AFDF0 - mov r2, #1 - ldr r1, [r0] - cmp r5, #0 - strb r2, [r1, #0x1a4] - bne _020375DC - ldr r1, [r0] - mov r2, #5 - str r2, [r1, #0xc] - ldr r1, [r0] - mov r2, #0x36 - strb r2, [r1, #0x1b] - ldr r0, [r0] - ldrh r1, [sp, #0x10] - add r0, r0, #0x100 - strh r1, [r0, #0xa6] - b _0203760C -_020375DC: - cmp r5, #1 - bne _0203760C - ldr r1, [r0] - mov r2, #6 - str r2, [r1, #0xc] - ldr r1, [r0] - mov r2, #0x22 - strb r2, [r1, #0x1b] - ldr r0, [r0] - ldrh r1, [sp, #0x10] - add r0, r0, #0x100 - strh r1, [r0, #0xa6] -_0203760C: - ldr r0, _020376E0 @ =0x020AFDF0 - mov r3, #0 - ldr r1, [r0] - str r3, [r1, #0x134] - ldr r2, [r0] - add r1, r2, #0xfc - str r1, [r2, #0xf8] - mov r2, r3 -_0203762C: - ldr r1, [r0] - ldr r1, [r1, #0xf8] - strb r2, [r1, r3] - add r3, r3, #1 - cmp r3, #0x36 - blt _0203762C - ldr r0, _020376E0 @ =0x020AFDF0 - mov r1, r4 - ldr r0, [r0] - ldrb r2, [r0, #0x1b] - ldr r0, [r0, #0xf8] - bl MemcpySimple - ldr r0, _020376E0 @ =0x020AFDF0 - mov r4, #0 - ldr r2, [r0] - ldrb r1, [r2, #0x1b] - b _02037684 -_02037670: - ldr r0, [r2, #0xf8] - ldrb r0, [r0, r4] - cmp r0, #0 - beq _0203768C - add r4, r4, #1 -_02037684: - cmp r4, r1 - blt _02037670 -_0203768C: - mov r2, #0 - ldr r0, _020376E0 @ =0x020AFDF0 - b _020376A4 -_02037698: - ldr r1, [r3, #0xf8] - strb r2, [r1, r4] - add r4, r4, #1 -_020376A4: - ldr r3, [r0] - ldrb r1, [r3, #0x1b] - cmp r4, r1 - blt _02037698 - ldr r0, _020376E4 @ =0x0209B30C - ldr r1, _020376E8 @ =FUN_02037f58 - bl FUN_0202f8c4 - ldr r1, _020376E0 @ =0x020AFDF0 - mov r2, #0 - ldr r3, [r1] - strb r0, [r3] - ldr r1, [r1] - mov r0, #1 - str r2, [r1, #4] - pop {r3, r4, r5, pc} - .align 2, 0 -_020376E0: .4byte 0x020AFDF0 -_020376E4: .4byte 0x0209B30C -_020376E8: .4byte FUN_02037f58 - arm_func_end FUN_02037570 -_020376EC: - .byte 0x08, 0x40, 0x2D, 0xE9 - .byte 0x7C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x1A, 0x00, 0x00, 0x0A - .byte 0xF8, 0x10, 0xD0, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x51, 0xE3 - .byte 0x05, 0x00, 0x00, 0x0A, 0x0C, 0x00, 0x51, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x0B, 0x00, 0x00, 0xEA - .byte 0xD0, 0x00, 0xD0, 0xE1, 0x8A, 0xE0, 0xFF, 0xEB, 0x08, 0x00, 0x00, 0xEA, 0xD0, 0x00, 0xD0, 0xE1 - .byte 0x71, 0xE0, 0xFF, 0xEB, 0x05, 0x00, 0x00, 0xEA, 0x92, 0x26, 0xFF, 0xEB, 0x30, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8 - .byte 0x1C, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0x91, 0xE5, 0xF8, 0x10, 0xD2, 0xE1 - .byte 0x01, 0x10, 0x81, 0xE2, 0xB8, 0x10, 0xC2, 0xE1, 0x08, 0x80, 0xBD, 0xE8, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x08, 0x80, 0xBD, 0xE8, 0xF0, 0xFD, 0x0A, 0x02, 0x38, 0x40, 0x2D, 0xE9, 0x40, 0xD0, 0x4D, 0xE2 - .byte 0xA0, 0x04, 0x9F, 0xE5, 0x00, 0x30, 0x90, 0xE5, 0x04, 0x10, 0x90, 0xE5, 0x04, 0x20, 0x93, 0xE5 - .byte 0x01, 0x00, 0x52, 0xE1, 0x05, 0x00, 0x00, 0x0A, 0x8C, 0x04, 0x9F, 0xE5, 0x96, 0x52, 0xFF, 0xEB - .byte 0x80, 0x04, 0x9F, 0xE5, 0x00, 0x30, 0x90, 0xE5, 0x04, 0x10, 0x93, 0xE5, 0x04, 0x10, 0x80, 0xE5 - .byte 0x04, 0x00, 0x93, 0xE5, 0x09, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x16, 0x01, 0x00, 0xEA - .byte 0x08, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00, 0xEA, 0x22, 0x00, 0x00, 0xEA, 0x72, 0x00, 0x00, 0xEA - .byte 0x11, 0x01, 0x00, 0xEA, 0xA0, 0x00, 0x00, 0xEA, 0xB0, 0x00, 0x00, 0xEA, 0x0E, 0x01, 0x00, 0xEA - .byte 0xC1, 0x00, 0x00, 0xEA, 0xCE, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x83, 0xE5 - .byte 0x09, 0x01, 0x00, 0xEA, 0x36, 0xFD, 0xFF, 0xEB, 0x03, 0x00, 0x50, 0xE3, 0x06, 0x01, 0x00, 0x1A - .byte 0x20, 0x04, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x0C, 0x00, 0x91, 0xE5, 0x09, 0x00, 0x50, 0xE3 - .byte 0x00, 0xF1, 0x8F, 0x90, 0x0C, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA - .byte 0x06, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA - .byte 0x02, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA, 0xFF, 0xFF, 0xFF, 0xEA - .byte 0x02, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x81, 0xE5, 0xF3, 0x00, 0x00, 0xEA, 0x02, 0x00, 0xA0, 0xE3 - .byte 0x04, 0x00, 0x81, 0xE5, 0xF0, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x53, 0xE3, 0x30, 0x00, 0x00, 0x0A - .byte 0xF8, 0x00, 0xD3, 0xE1, 0x03, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x50, 0xE3 - .byte 0x10, 0x00, 0x00, 0x0A, 0x05, 0x00, 0x50, 0xE3, 0x20, 0x00, 0x00, 0x0A, 0x21, 0x00, 0x00, 0xEA - .byte 0xD0, 0x00, 0xD3, 0xE1, 0x32, 0xE0, 0xFF, 0xEB, 0x98, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0xD1, 0x00, 0xD0, 0xE1, 0x2E, 0xE0, 0xFF, 0xEB, 0x88, 0x03, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x15, 0x00, 0x00, 0x0A - .byte 0x27, 0xE0, 0xFF, 0xEB, 0x13, 0x00, 0x00, 0xEA, 0xD0, 0x00, 0xD3, 0xE1, 0x0E, 0xE0, 0xFF, 0xEB - .byte 0x60, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x00, 0xD0, 0xE1, 0x0A, 0xE0, 0xFF, 0xEB - .byte 0x50, 0x03, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1 - .byte 0x01, 0x00, 0x50, 0xE1, 0x07, 0x00, 0x00, 0x0A, 0x03, 0xE0, 0xFF, 0xEB, 0x34, 0x03, 0x9F, 0xE5 - .byte 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x02, 0x10, 0xC0, 0xE5, 0x01, 0x00, 0x00, 0xEA - .byte 0x01, 0x20, 0xA0, 0xE3, 0x07, 0x00, 0x00, 0xEA, 0x18, 0x03, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x00, 0x10, 0x90, 0xE5, 0xF8, 0x00, 0xD1, 0xE1, 0x01, 0x00, 0x80, 0xE2, 0xB8, 0x00, 0xC1, 0xE1 - .byte 0x00, 0x00, 0x00, 0xEA, 0x01, 0x20, 0xA0, 0xE3, 0x00, 0x00, 0x52, 0xE3, 0xBA, 0x00, 0x00, 0x0A - .byte 0xF0, 0x02, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x04, 0x10, 0x92, 0xE5, 0x01, 0x10, 0x81, 0xE2 - .byte 0x04, 0x10, 0x82, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x0C, 0x00, 0x91, 0xE5, 0x09, 0x00, 0x50, 0xE3 - .byte 0x00, 0xF1, 0x8F, 0x90, 0x0C, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA - .byte 0x06, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA - .byte 0x02, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA, 0xFF, 0xFF, 0xFF, 0xEA - .byte 0x05, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x81, 0xE5, 0xA3, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x91, 0xE5 - .byte 0x01, 0x00, 0x80, 0xE2, 0x04, 0x00, 0x81, 0xE5, 0x9F, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x93, 0xE5 - .byte 0x09, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x29, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x00, 0xEA - .byte 0x22, 0x00, 0x00, 0xEA, 0x26, 0x00, 0x00, 0xEA, 0x25, 0x00, 0x00, 0xEA, 0x24, 0x00, 0x00, 0xEA - .byte 0x23, 0x00, 0x00, 0xEA, 0x22, 0x00, 0x00, 0xEA, 0x21, 0x00, 0x00, 0xEA, 0x20, 0x00, 0x00, 0xEA - .byte 0x1F, 0x00, 0x00, 0xEA, 0x33, 0x77, 0x00, 0xEB, 0x00, 0x50, 0xA0, 0xE1, 0x76, 0x7A, 0x00, 0xEB - .byte 0x00, 0x40, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE1, 0xEE, 0x76, 0x00, 0xEB, 0x00, 0x50, 0xA0, 0xE1 - .byte 0x04, 0x00, 0xA0, 0xE1, 0x64, 0x7A, 0x00, 0xEB, 0x28, 0x12, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x00, 0x10, 0x91, 0xE5, 0x3A, 0x00, 0x85, 0xE2, 0xFC, 0x10, 0x81, 0xE2, 0x0A, 0x20, 0xA0, 0xE3 - .byte 0xC1, 0xB5, 0xFF, 0xEB, 0x3F, 0x00, 0xA0, 0xE3, 0x3A, 0x10, 0x85, 0xE2, 0x0A, 0x20, 0xA0, 0xE3 - .byte 0x69, 0x50, 0x00, 0xEB, 0x00, 0x00, 0x54, 0xE3, 0x09, 0x00, 0x00, 0x0A, 0x5E, 0x00, 0x84, 0xE2 - .byte 0x3A, 0x10, 0x85, 0xE2, 0x0A, 0x20, 0xA0, 0xE3, 0xB7, 0xB5, 0xFF, 0xEB, 0x04, 0x00, 0x00, 0xEA - .byte 0x35, 0x57, 0x0B, 0xEB, 0xDC, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xFC, 0x00, 0x80, 0xE2 - .byte 0x4F, 0x64, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x70, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x8D, 0xE2 - .byte 0xFC, 0x10, 0x83, 0xE2, 0x40, 0x20, 0xA0, 0xE3, 0xE1, 0xB5, 0xFF, 0xEB, 0x00, 0x00, 0x8D, 0xE2 - .byte 0x89, 0x05, 0x00, 0xEB, 0xAC, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x0C, 0x00, 0x90, 0xE5 - .byte 0x01, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x1A, 0x1D, 0x06, 0x00, 0xEB, 0x94, 0x01, 0x9F, 0xE5 - .byte 0x06, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x5E, 0x00, 0x00, 0xEA - .byte 0x1D, 0x06, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x50, 0xE3 - .byte 0x05, 0x00, 0x00, 0x0A, 0x58, 0x00, 0x00, 0xEA, 0x68, 0x01, 0x9F, 0xE5, 0x08, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x53, 0x00, 0x00, 0xEA, 0x54, 0x01, 0x9F, 0xE5 - .byte 0x09, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0xB8, 0x10, 0xC0, 0xE1, 0x4B, 0x00, 0x00, 0xEA, 0xC9, 0x05, 0x00, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x48, 0x00, 0x00, 0x0A, 0x28, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x11, 0x00, 0xD0, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x1A, 0xD5, 0xBC, 0x0A, 0xEB - .byte 0x10, 0x01, 0x9F, 0xE5, 0x03, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5 - .byte 0x3D, 0x00, 0x00, 0xEA, 0xBB, 0x05, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x3A, 0x00, 0x00, 0x0A - .byte 0xF0, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0x92, 0xE5, 0x0C, 0x00, 0x93, 0xE5, 0x05, 0x00, 0x50, 0xE3 - .byte 0x06, 0x00, 0x50, 0x13, 0x06, 0x00, 0x00, 0x1A, 0xE0, 0x00, 0x9F, 0xE5, 0xE0, 0x10, 0x9F, 0xE5 - .byte 0x5B, 0xDF, 0xFF, 0xEB, 0xCC, 0x10, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x00, 0x00, 0xC1, 0xE5 - .byte 0x24, 0x00, 0x00, 0xEA, 0x17, 0x10, 0xD3, 0xE5, 0x06, 0xC0, 0xA0, 0xE3, 0xC4, 0x00, 0x9F, 0xE5 - .byte 0x16, 0x10, 0xC3, 0xE5, 0x00, 0x30, 0x92, 0xE5, 0xB4, 0x10, 0x9F, 0xE5, 0x18, 0xC0, 0xC3, 0xE5 - .byte 0x00, 0x20, 0x92, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x15, 0x30, 0xC2, 0xE5, 0x4C, 0xDF, 0xFF, 0xEB - .byte 0x90, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5, 0x00, 0x00, 0xC2, 0xE5, 0x00, 0x10, 0x91, 0xE5 - .byte 0x0C, 0x00, 0x91, 0xE5, 0x04, 0x00, 0x50, 0xE3, 0x09, 0x00, 0x50, 0x13, 0x01, 0x00, 0xE0, 0x03 - .byte 0x02, 0x00, 0xC1, 0x05, 0x05, 0x00, 0x00, 0x0A, 0x7C, 0x00, 0x9F, 0xE5, 0x7C, 0x10, 0x9F, 0xE5 - .byte 0x3F, 0xDF, 0xFF, 0xEB, 0x5C, 0x10, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x02, 0x00, 0xC1, 0xE5 - .byte 0x9F, 0x03, 0x00, 0xEB, 0x4C, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5, 0x1C, 0x00, 0xC2, 0xE5 - .byte 0x00, 0x20, 0x91, 0xE5, 0x1C, 0x10, 0xD2, 0xE5, 0x1B, 0x00, 0xD2, 0xE5, 0x00, 0x00, 0x51, 0xE1 - .byte 0x01, 0x00, 0x41, 0x02, 0x1C, 0x00, 0xC2, 0x05, 0x44, 0x00, 0x9F, 0xE5, 0x44, 0x10, 0x9F, 0xE5 - .byte 0x2F, 0xDF, 0xFF, 0xEB, 0x1C, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x30, 0x91, 0xE5 - .byte 0x01, 0x00, 0xC3, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x04, 0x20, 0x80, 0xE5, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x40, 0xD0, 0x8D, 0xE2, 0x38, 0x80, 0xBD, 0xE8, 0xF0, 0xFD, 0x0A, 0x02, 0x8C, 0xB4, 0x09, 0x02 - .byte 0xFC, 0xB2, 0x09, 0x02, 0x58, 0x7F, 0x03, 0x02, 0xEC, 0xB2, 0x09, 0x02, 0x1C, 0xB3, 0x09, 0x02 - .byte 0x78, 0x7C, 0x03, 0x02, 0xDC, 0xB2, 0x09, 0x02, 0xD8, 0x7C, 0x03, 0x02, 0x08, 0x40, 0x2D, 0xE9 - .byte 0x1C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x08 - .byte 0x48, 0x25, 0xFF, 0xEB, 0x08, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5 - .byte 0x08, 0x80, 0xBD, 0xE8, 0xF0, 0xFD, 0x0A, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1 - .byte 0xA5, 0xBF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE3, 0x14, 0x30, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x01, 0x20, 0xA0, 0xE1, 0x73, 0xB9, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x93, 0xBF, 0xFF, 0xEB - .byte 0x10, 0x80, 0xBD, 0xE8, 0x22, 0x01, 0x00, 0x00 - - arm_func_start FUN_02037ca8 -FUN_02037ca8: @ 0x02037CA8 - push {r4, lr} - mov r4, r0 - bl FUN_02027b1c - mov r1, #0 - ldr r3, _02037CD4 @ =0x00000123 - mov r0, r4 - mov r2, r1 - bl FUN_02026268 - mov r0, r4 - bl FUN_02027af0 - pop {r4, pc} - .align 2, 0 -_02037CD4: .4byte 0x00000123 - arm_func_end FUN_02037ca8 - - arm_func_start FUN_02037cd8 -FUN_02037cd8: @ 0x02037CD8 - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x40 - ldr r1, _02037F10 @ =0x020AFDF0 - mov r7, r0 - ldr r0, [r1] - mov r4, #0 - ldrb r0, [r0, #0x16] - cmp r0, #0 - moveq r4, #1 - beq _02037D14 - cmp r0, #1 - moveq r4, #1 - beq _02037D14 - cmp r0, #2 - moveq r4, #3 -_02037D14: - mov r0, r7 - bl FUN_02027b1c - b _02037EF8 -_02037D20: - ldr r2, _02037F10 @ =0x020AFDF0 - mov r0, #0xa - ldr r1, [r2] - mul r6, r4, r0 - ldrb r0, [r1, #0x16] - ldr r2, [r2, #8] - ldr r3, _02037F14 @ =0x00000111 - ldr r2, [r2, r0, lsl #2] - add r2, r2, r6 - ldrh r5, [r2, #8] - cmp r5, r3 - cmpne r5, #0x110 - beq _02037EF4 - add r2, r5, #0xfe - add r2, r2, #0xfe00 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 - cmp r2, #7 - bhi _02037E0C - cmp r0, #0 - moveq ip, #0x104 - beq _02037D84 - cmp r0, #1 - subeq ip, r3, #0xc - movne ip, #0 -_02037D84: - cmp r5, #0x100 - blo _02037EA8 - ldr r0, _02037F18 @ =0x00000109 - cmp r5, r0 - bhi _02037EA8 - mov lr, #0 - ldr r3, _02037F1C @ =0x020AFDFC - mov r0, #6 - b _02037DF4 -_02037DA8: - cmp r5, r8 - bne _02037DE8 - ldr r0, _02037F18 @ =0x00000109 - cmp r5, r0 - bne _02037DD0 - ldrb r1, [r1, #0x15] - cmp r1, #0 - addne r1, r0, #0x1d - addeq r1, r0, #0x1e - b _02037DDC -_02037DD0: - cmp ip, r5 - ldrheq r1, [r2, #4] - ldrhne r1, [r2, #2] -_02037DDC: - add r0, sp, #0 - bl GetStringFromFileVeneer - b _02037EA8 -_02037DE8: - add r2, lr, #1 - lsl r2, r2, #0x10 - asr lr, r2, #0x10 -_02037DF4: - smulbb r2, lr, r0 - ldrh r8, [r3, r2] - add r2, r3, r2 - cmp r8, #0 - bne _02037DA8 - b _02037EA8 -_02037E0C: - ldr r1, [r1, #0xc] - cmp r1, #8 - beq _02037E38 - cmp r0, #2 - bne _02037E38 - cmp r4, #5 - ble _02037E38 - and r0, r5, #0xff - bl FUN_0204da1c - cmp r0, #0xff - beq _02037E5C -_02037E38: - ldr r0, _02037F10 @ =0x020AFDF0 - ldr r0, [r0] - ldr r0, [r0, #0xc] - cmp r0, #9 - bne _02037E84 - cmp r5, #0x41 - blo _02037E5C - cmp r5, #0x5a - bls _02037E84 -_02037E5C: - cmp r5, #0x20 - add r0, sp, #0 - bne _02037E74 - ldr r1, _02037F20 @ =0x0209B4A4 - bl SprintfStatic - b _02037EA8 -_02037E74: - ldr r1, _02037F24 @ =0x0209B4AC - mov r2, r5 - bl SprintfStatic - b _02037EA8 -_02037E84: - cmp r5, #0x20 - add r0, sp, #0 - bne _02037E9C - ldr r1, _02037F28 @ =0x0209B4B8 - bl SprintfStatic - b _02037EA8 -_02037E9C: - ldr r1, _02037F2C @ =0x0209B4C0 - mov r2, r5 - bl SprintfStatic -_02037EA8: - add r0, sp, #0 - bl FUN_020265a8 - cmp r0, #0xc - rsble r0, r0, #0xc - movgt r1, #0 - addle r0, r0, r0, lsr #31 - asrle r1, r0, #1 - ldr r0, _02037F10 @ =0x020AFDF0 - add r3, sp, #0 - ldr r2, [r0] - ldr r5, [r0, #8] - ldrb r2, [r2, #0x16] - mov r0, r7 - ldr r2, [r5, r2, lsl #2] - add r2, r2, r6 - ldrb r5, [r2, #4] - ldrb r2, [r2, #5] - add r1, r1, r5 - bl FUN_02026214 -_02037EF4: - add r4, r4, #1 -_02037EF8: - cmp r4, #0x54 - bne _02037D20 - mov r0, r7 - bl FUN_02027af0 - add sp, sp, #0x40 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02037F10: .4byte 0x020AFDF0 -_02037F14: .4byte 0x00000111 -_02037F18: .4byte 0x00000109 -_02037F1C: .4byte 0x020AFDFC -_02037F20: .4byte 0x0209B4A4 -_02037F24: .4byte 0x0209B4AC -_02037F28: .4byte 0x0209B4B8 -_02037F2C: .4byte 0x0209B4C0 - arm_func_end FUN_02037cd8 - - arm_func_start SprintfStatic -SprintfStatic: @ 0x02037F30 - push {r0, r1, r2, r3} - push {r3, lr} - add r2, sp, #0xc - bic r2, r2, #3 - ldr r1, [sp, #0xc] - add r2, r2, #4 - bl Vsprintf - pop {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end SprintfStatic - - arm_func_start FUN_02037f58 -FUN_02037f58: @ 0x02037F58 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x114 - ldr r1, _020383DC @ =0x0209B288 - mov sb, r0 - ldrb r2, [r1] - ldrb r0, [r1, #1] - mov sl, #0 - strb r2, [sp, #0x10] - strb r0, [sp, #0x11] - bl FUN_02038adc - mov r0, sb - bl FUN_02027b1c - ldr r0, _020383E0 @ =0x020AFDF0 - ldr r1, [r0] - ldr r0, [r1, #0xc] - cmp r0, #7 - addeq r0, r1, #0x100 - moveq r1, sl - strheq r1, [r0, #0xa6] - ldr r0, _020383E0 @ =0x020AFDF0 - ldr r0, [r0] - add r0, r0, #0x100 - ldrh r1, [r0, #0xa6] - cmp r1, #0 - beq _02037FF8 - add r0, sp, #0x12 - bl GetStringFromFileVeneer - mov r0, sb - bl FUN_020275f8 - mov r4, r0 - add r0, sp, #0x12 - bl FUN_020265a8 - ldrb r1, [r4, #6] - mov r2, #0 - add r3, sp, #0x12 - rsb r0, r0, r1, lsl #3 - add r0, r0, r0, lsr #31 - asr r1, r0, #1 - mov r0, sb - bl FUN_02026214 -_02037FF8: - ldr r0, _020383E0 @ =0x020AFDF0 - ldr r0, [r0] - ldr r0, [r0, #0xc] - cmp r0, #5 - moveq r8, #0x36 - movne r8, #0x22 - cmp r0, #7 - moveq r8, #0x36 - cmp r0, #8 - ldr r0, _020383E0 @ =0x020AFDF0 - moveq r8, #0x36 - ldr r0, [r0] - ldrb r5, [r0, #0x1b] - ldr r4, [r0, #0xf8] - bl FUN_02038b5c - cmp r0, #0 - beq _02038054 - mov r0, r4 - mov r1, r5 - bl FUN_02038a8c - cmp r0, #0x3c - movgt r0, #1 - bgt _02038058 -_02038054: - mov r0, #0 -_02038058: - cmp r0, #0 - movne sl, #1 - mov r6, #0 - ldr r4, _020383E4 @ =0x0209B3B4 - ldr fp, _020383E0 @ =0x020AFDF0 - b _02038394 -_02038070: - ldr r1, [fp] - add r0, r1, r6 - ldr r7, [r1, #0xc] - ldrb r5, [r0, #0xfc] - sub r0, r7, #4 - cmp r0, #5 - addls pc, pc, r0, lsl #2 - b _020382E8 -_02038090: @ jump table - b _0203825C @ case 0 - b _020380A8 @ case 1 - b _02038148 @ case 2 - b _020381FC @ case 3 - b _020380A8 @ case 4 - b _0203825C @ case 5 -_020380A8: - mov r0, r6 - mov r1, #0x12 - bl DivideInt - cmp r1, #5 - ble _020380D0 - cmp r1, #0xc - movlt r0, #0x43 - strlt r0, [sp, #8] - movlt r7, #1 - blt _020380DC -_020380D0: - mov r0, #0x44 - str r0, [sp, #8] - mov r7, #0 -_020380DC: - cmp r5, #0 - beq _02038114 - mov r0, r5 - bl FUN_020251f0 - ldr r1, [sp, #8] - add r2, r4, r6, lsl #2 - and r1, r1, #0xff - str r1, [sp] - lsl r1, r6, #2 - mov r3, r0 - ldrsh r1, [r4, r1] - ldrsh r2, [r2, #2] - mov r0, sb - bl FUN_020264f8 -_02038114: - add r0, sp, #0x10 - ldrsb r2, [r0, r7] - lsl r1, r6, #2 - mov r0, sb - str r2, [sp] - ldrsh r3, [r4, r1] - add r1, r4, r6, lsl #2 - ldrsh r2, [r1, #2] - sub r1, r3, #1 - mov r3, #0xc - add r2, r2, #0xc - bl FUN_02025d50 - b _02038390 -_02038148: - mov r0, r6 - cmp r5, #0x20 - mov r1, #0x11 - moveq r5, #0 - bl DivideInt - cmp r1, #5 - blt _02038178 - cmp r1, #0xc - movlt r0, #0x43 - strlt r0, [sp, #4] - movlt r7, #1 - blt _02038184 -_02038178: - mov r0, #0x44 - str r0, [sp, #4] - mov r7, #0 -_02038184: - cmp r5, #0 - beq _020381C4 - mov r0, r5 - bl FUN_020251f0 - ldr r1, [sp, #4] - lsl r2, r6, #2 - and r1, r1, #0xff - str r1, [sp] - ldr r1, _020383E8 @ =0x0209B32C - mov r3, r0 - ldrsh r1, [r1, r2] - ldr r2, _020383E8 @ =0x0209B32C - mov r0, sb - add r2, r2, r6, lsl #2 - ldrsh r2, [r2, #2] - bl FUN_020264f8 -_020381C4: - add r0, sp, #0x10 - ldrsb r1, [r0, r7] - lsl r2, r6, #2 - mov r0, sb - str r1, [sp] - ldr r1, _020383E8 @ =0x0209B32C - ldrsh r3, [r1, r2] - add r1, r1, r6, lsl #2 - ldrsh r2, [r1, #2] - sub r1, r3, #1 - mov r3, #0xc - add r2, r2, #0xc - bl FUN_02025d50 - b _02038390 -_020381FC: - cmp r5, #0 - moveq r5, #0x2a - cmp r5, #0x20 - moveq r5, #0 - cmp r5, #0 - beq _02038390 - mov r0, r5 - bl FUN_020251f0 - mov r5, r0 - mov r0, r6 - mov r1, #0x12 - bl DivideInt - mov r1, #0x44 - str r1, [sp] - mov r1, #0x12 - mul r1, r0, r1 - add r0, r4, r1, lsl #2 - lsl r1, r6, #2 - ldrsh r2, [r0, #2] - ldrsh r1, [r4, r1] - mov r3, r5 - mov r0, sb - bl FUN_020264f8 - b _02038390 -_0203825C: - cmp r5, #0x20 - moveq r5, #0 - cmp r5, #0 - beq _020382AC - ldr r1, _020383EC @ =0x0209B2C4 - ldr r2, [fp] - ldrb r1, [r1, r7] - mov r0, r5 - ldrsh r5, [r2, #0x20] - str r1, [sp, #0xc] - bl FUN_020251f0 - ldr r2, _020383F0 @ =0x0209B2D0 - ldr r1, [sp, #0xc] - mov r3, #0x44 - str r3, [sp] - mov r3, r0 - ldrb r2, [r2, r7] - add r1, r1, r5 - mov r0, sb - bl FUN_020264f8 -_020382AC: - ldr r2, [fp] - mov r1, #0x17 - ldr r5, [r2, #0xc] - ldr r7, _020383F0 @ =0x0209B2D0 - str r1, [sp] - ldrsh r1, [r2, #0x20] - ldr r2, _020383EC @ =0x0209B2C4 - mov r0, sb - ldrb r2, [r2, r5] - ldrb r5, [r7, r5] - mov r3, #0xc - add r1, r2, r1 - add r2, r5, #0xc - bl FUN_02025d50 - b _02038390 -_020382E8: - cmp r5, #0x20 - moveq r5, #0 - cmp sl, #0 - mov r0, r5 - beq _02038314 - bl FUN_020251f0 - mov r2, r0 - ldr r1, _020383F4 @ =0x0209B4C4 - add r0, sp, #0x12 - bl SprintfStatic - b _02038328 -_02038314: - bl FUN_020251f0 - mov r2, r0 - ldr r1, _020383F8 @ =0x0209B4C0 - add r0, sp, #0x12 - bl Sprintf -_02038328: - ldr r1, [fp] - ldr r3, _020383EC @ =0x0209B2C4 - ldr r2, [r1, #0xc] - add r1, r1, r6, lsl #1 - ldrb r5, [r3, r2] - ldr r3, _020383F0 @ =0x0209B2D0 - ldrsh r1, [r1, #0x20] - ldrb r2, [r3, r2] - mov r0, sb - add r3, sp, #0x12 - add r1, r5, r1 - bl FUN_02026214 - ldr r2, [fp] - mov r1, #0x17 - ldr r5, [r2, #0xc] - ldr r7, _020383F0 @ =0x0209B2D0 - str r1, [sp] - ldrsh r1, [r2, #0x20] - ldr r2, _020383EC @ =0x0209B2C4 - mov r0, sb - ldrb r2, [r2, r5] - ldrb r5, [r7, r5] - mov r3, #0x3c - add r1, r2, r1 - add r2, r5, #0xc - bl FUN_02025d50 -_02038390: - add r6, r6, #1 -_02038394: - cmp r6, r8 - blt _02038070 - ldr r0, _020383E0 @ =0x020AFDF0 - ldr r0, [r0] - ldr r0, [r0, #0xc] - cmp r0, #7 - bne _020383CC - ldrsb r4, [sp, #0x10] - mov r0, sb - mov r1, #3 - mov r2, #0x1d - mov r3, #0xea - str r4, [sp] - bl FUN_02025d50 -_020383CC: - mov r0, sb - bl FUN_02027af0 - add sp, sp, #0x114 - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_020383DC: .4byte 0x0209B288 -_020383E0: .4byte 0x020AFDF0 -_020383E4: .4byte 0x0209B3B4 -_020383E8: .4byte 0x0209B32C -_020383EC: .4byte 0x0209B2C4 -_020383F0: .4byte 0x0209B2D0 -_020383F4: .4byte 0x0209B4C4 -_020383F8: .4byte 0x0209B4C0 - arm_func_end FUN_02037f58 - - arm_func_start FUN_020383fc -FUN_020383fc: @ 0x020383FC - push {r3, r4, r5, r6, r7, lr} - ldr r1, _020384A8 @ =0x020AFDF0 - mov r4, #0 - ldr r2, [r1] - ldrb r1, [r2, #0x10] - cmp r1, #0 - bne _02038444 - cmp r0, #0 - beq _02038444 - ldrb r0, [r2, #0x16] - cmp r0, #0 - beq _0203843C - cmp r0, #1 - moveq r0, #2 - strbeq r0, [r2, #0x18] - b _02038444 -_0203843C: - mov r0, #1 - strb r0, [r2, #0x18] -_02038444: - ldr r7, _020384A8 @ =0x020AFDF0 - mov r5, #0xa - ldr r6, _020384AC @ =0x00000111 - b _02038484 -_02038454: - ldrb r0, [r0, #6] - cmp r0, #1 - cmpne r0, #2 - cmpne r0, #3 - ldrbne r0, [r2, #0x10] - cmpne r0, #0 - beq _02038480 - cmp r1, #0x100 - bge _02038480 - and r0, r1, #0xff - bl FUN_0204da1c -_02038480: - add r4, r4, #1 -_02038484: - ldr r2, [r7] - ldr r1, [r7, #8] - ldrb r0, [r2, #0x16] - ldr r0, [r1, r0, lsl #2] - mla r0, r4, r5, r0 - ldrh r1, [r0, #8] - cmp r1, r6 - bne _02038454 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_020384A8: .4byte 0x020AFDF0 -_020384AC: .4byte 0x00000111 - arm_func_end FUN_020383fc - - arm_func_start FUN_020384b0 -FUN_020384b0: @ 0x020384B0 - push {r3, r4, r5, lr} - ldr r2, _02038900 @ =0x020AFDF0 - mov r0, #0xa - ldr r1, [r2] - ldr r3, [r2, #8] - ldrb ip, [r1, #0x16] - ldrb r2, [r1, #0x18] - ldr r3, [r3, ip, lsl #2] - mla r0, r2, r0, r3 - ldrh r4, [r0, #8] - sub r0, r4, #0x104 - cmp r0, #5 - addls pc, pc, r0, lsl #2 - b _020387B4 -_020384E8: @ jump table - b _02038500 @ case 0 - b _02038544 @ case 1 - b _020387B4 @ case 2 - b _020385C0 @ case 3 - b _020385F0 @ case 4 - b _02038588 @ case 5 -_02038500: - cmp ip, #0 - bne _02038514 - mov r0, #2 - bl FUN_02017ccc - b _020388F8 -_02038514: - mov r0, #0 - bl FUN_02017ccc - ldr r0, _02038900 @ =0x020AFDF0 - mov r2, #0 - ldr r1, [r0] - strb r2, [r1, #0x16] - ldr r0, [r0] - ldrsb r0, [r0, #1] - bl FUN_02037cd8 - mov r0, #1 - bl FUN_020383fc - b _020388F8 -_02038544: - cmp ip, #1 - bne _02038558 - mov r0, #2 - bl FUN_02017ccc - b _020388F8 -_02038558: - mov r0, #0 - bl FUN_02017ccc - ldr r0, _02038900 @ =0x020AFDF0 - mov r2, #1 - ldr r1, [r0] - strb r2, [r1, #0x16] - ldr r0, [r0] - ldrsb r0, [r0, #1] - bl FUN_02037cd8 - mov r0, #1 - bl FUN_020383fc - b _020388F8 -_02038588: - ldrb r0, [r1, #0x15] - cmp r0, #0 - moveq r2, #1 - movne r2, #0 - mov r0, #4 - strb r2, [r1, #0x15] - bl FUN_02017ccc - mov r0, #0 - bl FUN_020383fc - ldr r0, _02038900 @ =0x020AFDF0 - ldr r0, [r0] - ldrsb r0, [r0, #1] - bl FUN_02037cd8 - b _020388F8 -_020385C0: - ldrsb r0, [r1] - bl FUN_02037f58 - bl FUN_02038904 - cmp r0, #0 - beq _020388F8 - ldr r0, _02038900 @ =0x020AFDF0 - ldr r0, [r0] - ldr r0, [r0, #0xc] - cmp r0, #8 - bne _020388F8 - mov r0, #2 - pop {r3, r4, r5, pc} -_020385F0: - ldrb r0, [r1, #0x1e] - cmp r0, #0 - movne r0, #0 - popne {r3, r4, r5, pc} - ldr r0, [r1, #0xc] - cmp r0, #7 - bne _02038680 - bl FUN_02038a54 - movs r4, r0 - beq _02038680 - cmp r4, #0x12 - bge _02038680 - mov r0, #2 - bl FUN_02017ccc - mov r1, #0x20 - ldr r0, _02038900 @ =0x020AFDF0 - b _0203864C -_02038634: - ldr r2, [r0] - ldr r3, [r2, #0xf8] - ldrb r2, [r3, r4] - cmp r2, #0 - strbeq r1, [r3, r4] - add r4, r4, #1 -_0203864C: - cmp r4, #0x12 - bne _02038634 - ldr r0, _02038900 @ =0x020AFDF0 - mov r1, #0x12 - ldr r0, [r0] - strb r1, [r0, #0x1c] - bl FUN_02038adc - ldr r0, _02038900 @ =0x020AFDF0 - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_02037f58 - mov r0, #0 - pop {r3, r4, r5, pc} -_02038680: - ldr r0, _02038900 @ =0x020AFDF0 - ldr r1, [r0] - ldrb r0, [r1, #0x16e] - ldrb r5, [r1, #0x10] - cmp r0, #0 - movne r2, #1 - moveq r2, #0 - ldr r0, [r1, #0xc] - and r4, r2, #0xff - cmp r0, #8 - moveq r5, #0 - bl FUN_02038a54 - cmp r0, #0 - beq _020386E8 - cmp r5, #1 - bne _020386E8 - bl FUN_02038a54 - ldr r1, _02038900 @ =0x020AFDF0 - ldr r1, [r1] - ldrb r1, [r1, #0x1b] - cmp r1, r0 - beq _020386E8 - mov r0, #2 - bl FUN_02017ccc - mov r0, #3 - pop {r3, r4, r5, pc} -_020386E8: - cmp r4, #0 - bne _020386FC - bl FUN_02038a54 - cmp r0, #0 - beq _0203871C -_020386FC: - cmp r5, #0 - beq _0203872C - bl FUN_02038a54 - ldr r1, _02038900 @ =0x020AFDF0 - ldr r1, [r1] - ldrb r1, [r1, #0x1b] - cmp r1, r0 - beq _0203872C -_0203871C: - mov r0, #2 - bl FUN_02017ccc - mov r0, #2 - pop {r3, r4, r5, pc} -_0203872C: - bl FUN_02038b5c - cmp r0, #0 - beq _02038760 - ldr r0, _02038900 @ =0x020AFDF0 - ldr r0, [r0] - ldrb r1, [r0, #0x1b] - ldr r0, [r0, #0xf8] - bl FUN_02038a8c - cmp r0, #0x3c - ble _02038760 - mov r0, #2 - bl FUN_02017ccc - b _020388F8 -_02038760: - mov r0, #0 - bl FUN_02017ccc - cmp r4, #0 - beq _02038794 - bl FUN_02038a54 - cmp r0, #0 - bne _02038794 - ldr r0, _02038900 @ =0x020AFDF0 - ldr r0, [r0] - add r1, r0, #0x6e - ldr r0, [r0, #0xf8] - add r1, r1, #0x100 - bl _02025100 -_02038794: - ldr r0, _02038900 @ =0x020AFDF0 - ldr r1, [r0] - ldrb r2, [r1, #0x1b] - ldr r0, [r1, #0x134] - ldr r1, [r1, #0xf8] - bl MemcpySimple - mov r0, #3 - pop {r3, r4, r5, pc} -_020387B4: - ldrb r0, [r1, #0x10] - cmp r0, #0 - ldrne r0, [r1, #0xc] - cmpne r0, #8 - beq _020387E4 - and r0, r4, #0xff - bl FUN_0204da1c - cmp r0, #0xff - bne _02038810 - mov r0, #2 - bl FUN_02017ccc - b _020388F8 -_020387E4: - ldr r0, [r1, #0xc] - cmp r0, #9 - bne _02038810 - and r0, r4, #0xff - cmp r0, #0x41 - blo _02038804 - cmp r0, #0x5a - bls _02038810 -_02038804: - mov r0, #2 - bl FUN_02017ccc - b _020388F8 -_02038810: - ldr r0, _02038900 @ =0x020AFDF0 - ldr r2, [r0] - ldrb r1, [r2, #0x15] - cmp r1, #1 - bne _020388A4 - ldr r1, [r2, #0xc] - cmp r1, #7 - bne _02038870 - ldrb r1, [r2, #0x1c] - cmp r1, #0x11 - bhi _02038870 - beq _020388A4 - mov r3, #0x10 - b _0203885C -_02038848: - ldr r2, [r2, #0xf8] - ldrb r1, [r2, r3] - add r2, r2, r3 - sub r3, r3, #1 - strb r1, [r2, #1] -_0203885C: - ldr r2, [r0] - ldrb r1, [r2, #0x1c] - cmp r3, r1 - bge _02038848 - b _020388A4 -_02038870: - ldrb r0, [r2, #0x1b] - sub r3, r0, #2 - ldr r0, _02038900 @ =0x020AFDF0 - b _02038894 -_02038880: - ldr r2, [r2, #0xf8] - ldrb r1, [r2, r3] - add r2, r2, r3 - sub r3, r3, #1 - strb r1, [r2, #1] -_02038894: - ldr r2, [r0] - ldrb r1, [r2, #0x1c] - cmp r3, r1 - bge _02038880 -_020388A4: - ldr r0, _02038900 @ =0x020AFDF0 - ldr r2, [r0] - ldrb r1, [r2, #0x1c] - ldr r2, [r2, #0xf8] - strb r4, [r2, r1] - ldr r2, [r0] - ldrb r0, [r2, #0x1b] - ldrb r1, [r2, #0x1c] - sub r0, r0, #1 - cmp r1, r0 - addlt r0, r1, #1 - strblt r0, [r2, #0x1c] - movge r0, #5 - strbge r0, [r2, #0x18] - mov r0, #0 - bl FUN_02017ccc - bl FUN_02038adc - ldr r0, _02038900 @ =0x020AFDF0 - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_02037f58 -_020388F8: - mov r0, #0 - pop {r3, r4, r5, pc} - .align 2, 0 -_02038900: .4byte 0x020AFDF0 - arm_func_end FUN_020384b0 - - arm_func_start FUN_02038904 -FUN_02038904: @ 0x02038904 - push {r3, lr} - ldr r0, _02038A50 @ =0x020AFDF0 - ldr r3, [r0] - ldrb r2, [r3, #0x1c] - ldr r1, [r3, #0xf8] - ldrb r1, [r1, r2] - cmp r1, #0 - bne _02038978 - cmp r2, #0 - bne _0203893C - mov r0, #2 - bl FUN_02017ccc - mov r0, #1 - pop {r3, pc} -_0203893C: - sub r1, r2, #1 - strb r1, [r3, #0x1c] - ldr r0, [r0] - mov r3, #0 - ldrb r1, [r0, #0x1c] - ldr r2, [r0, #0xf8] - mov r0, #1 - strb r3, [r2, r1] - bl FUN_02017ccc - ldr r0, _02038A50 @ =0x020AFDF0 - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_02037f58 - bl FUN_02038adc - b _02038A48 -_02038978: - bl FUN_02038a54 - ldr r1, _02038A50 @ =0x020AFDF0 - sub r0, r0, #1 - ldr r2, [r1] - mov ip, #0 - ldr r1, [r2, #0xc] - cmp r1, #7 - bne _020389EC - ldrb lr, [r2, #0x1c] - cmp lr, #0x11 - bhi _020389EC - cmp r0, #0x11 - movge r0, #0x11 - movge ip, #0x20 - ldr r1, _02038A50 @ =0x020AFDF0 - b _020389D0 -_020389B8: - ldr r2, [r1] - ldr r3, [r2, #0xf8] - add r2, r3, lr - ldrb r2, [r2, #1] - strb r2, [r3, lr] - add lr, lr, #1 -_020389D0: - cmp lr, r0 - blt _020389B8 - ldr r1, _02038A50 @ =0x020AFDF0 - ldr r1, [r1] - ldr r1, [r1, #0xf8] - strb ip, [r1, r0] - b _02038A2C -_020389EC: - ldrb ip, [r2, #0x1c] - ldr r1, _02038A50 @ =0x020AFDF0 - b _02038A10 -_020389F8: - ldr r2, [r1] - ldr r3, [r2, #0xf8] - add r2, r3, ip - ldrb r2, [r2, #1] - strb r2, [r3, ip] - add ip, ip, #1 -_02038A10: - cmp ip, r0 - blt _020389F8 - ldr r1, _02038A50 @ =0x020AFDF0 - mov r2, #0 - ldr r1, [r1] - ldr r1, [r1, #0xf8] - strb r2, [r1, r0] -_02038A2C: - mov r0, #1 - bl FUN_02017ccc - ldr r0, _02038A50 @ =0x020AFDF0 - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_02037f58 - bl FUN_02038adc -_02038A48: - mov r0, #0 - pop {r3, pc} - .align 2, 0 -_02038A50: .4byte 0x020AFDF0 - arm_func_end FUN_02038904 - - arm_func_start FUN_02038a54 -FUN_02038a54: @ 0x02038A54 - ldr r1, _02038A88 @ =0x020AFDF0 - mov r0, #0 - ldr r2, [r1] - ldrb r3, [r2, #0x1b] - b _02038A7C -_02038A68: - ldr r1, [r2, #0xf8] - ldrb r1, [r1, r0] - cmp r1, #0 - bxeq lr - add r0, r0, #1 -_02038A7C: - cmp r0, r3 - blt _02038A68 - bx lr - .align 2, 0 -_02038A88: .4byte 0x020AFDF0 - arm_func_end FUN_02038a54 - - arm_func_start FUN_02038a8c -FUN_02038a8c: @ 0x02038A8C - push {r3, r4, r5, r6, r7, lr} - mov r4, #0 - mov r7, r0 - mov r6, r1 - mov r5, r4 - b _02038ACC -_02038AA4: - ldrb r0, [r7, r5] - cmp r0, #0 - beq _02038AD4 - bl FUN_020251f0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02025c7c - ldrb r0, [r0, #2] - add r5, r5, #1 - add r4, r4, r0 -_02038ACC: - cmp r5, r6 - blt _02038AA4 -_02038AD4: - mov r0, r4 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_02038a8c - - arm_func_start FUN_02038adc -FUN_02038adc: @ 0x02038ADC - push {r4, r5, r6, lr} - mov r4, #0 - mov r5, r4 - ldr r6, _02038B58 @ =0x020AFDF0 - b _02038B44 -_02038AF0: - add r0, r1, r5, lsl #1 - strh r4, [r0, #0x20] - ldr r1, [r6] - ldr r0, [r1, #0xf8] - ldrb r0, [r0, r5] - cmp r0, #0 - addeq r0, r1, r5, lsl #1 - moveq r1, #8 - strheq r1, [r0, #0x8c] - popeq {r4, r5, r6, pc} - bl FUN_020251f0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02025c7c - ldr r1, [r6] - ldrb r2, [r0, #2] - add r1, r1, r5, lsl #1 - add r5, r5, #1 - strh r2, [r1, #0x8c] - ldrb r0, [r0, #2] - add r4, r4, r0 -_02038B44: - ldr r1, [r6] - ldrb r0, [r1, #0x1b] - cmp r5, r0 - blt _02038AF0 - pop {r4, r5, r6, pc} - .align 2, 0 -_02038B58: .4byte 0x020AFDF0 - arm_func_end FUN_02038adc - - arm_func_start FUN_02038b5c -FUN_02038b5c: @ 0x02038B5C - ldr r0, _02038B7C @ =0x020AFDF0 - ldr r0, [r0] - ldr r0, [r0, #0xc] - cmp r0, #3 - movls r0, #1 - movhi r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_02038B7C: .4byte 0x020AFDF0 - arm_func_end FUN_02038b5c - - arm_func_start FUN_02038b80 -FUN_02038b80: @ 0x02038B80 - push {r3, r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #8 - ldr r2, _02039068 @ =0x020AFDF0 - mov sb, r0 - ldr r7, [r2] - mov r8, r1 - ldrb r3, [r7, #0x10] - ldr ip, [r7, #0xc] - mov r2, #1 - cmp ip, #7 - moveq r3, r2 + bic r0, r1, #3 + add ip, r0, #4 + ldrh lr, [r2] cmp r3, #0 - ldr r4, _0203906C @ =0x0209B2E0 - movne r2, #2 - ldr r1, _02039070 @ =0x0209B2E1 - ldr r0, _02039074 @ =0x0209B2E2 - ldrb r4, [r4, r2, lsl #4] - ldr lr, _02039078 @ =0x0000FFFF - ldr r5, _0203907C @ =0x0209B2E3 - cmp sb, lr - ldrb r1, [r1, r2, lsl #4] - ldrb r0, [r0, r2, lsl #4] - ldrb r2, [r5, r2, lsl #4] - lsl r4, r4, #3 - lsl r5, r1, #3 - add r0, r4, r0, lsl #3 - cmpne r8, lr - add r1, r5, r2, lsl #3 - mvneq r0, #0 - beq _02039060 - add r2, r1, #8 - cmp r8, r2 - bge _02038FA0 - cmp r3, #0 - beq _02038CEC - add r1, r5, #8 - cmp r8, r1 - sublt r0, lr, #0x10000 - blt _02039060 - cmp r8, r2 - subgt r0, lr, #0x10000 - bgt _02039060 - sub r1, r4, #4 - cmp sb, r1 - sublt r0, lr, #0x10000 - blt _02039060 - add r0, r0, #4 - cmp sb, r0 - subgt r0, lr, #0x10000 - bgt _02039060 - cmp ip, #5 - beq _02038C5C - sub r0, ip, #7 - cmp r0, #1 - bhi _02038CA0 -_02038C5C: - add r0, r4, #3 - sub sb, sb, r0 - cmp sb, #0 - movle sb, #1 - cmp sb, #0xea - movge sb, #0xe9 - mov r0, sb - mov r1, #0xd - bl DivideInt - add r1, r5, #0x1e - mov r6, r0 - cmp r8, r1 - addgt r6, r6, #0x12 - add r0, r5, #0x2d - cmp r8, r0 - addgt r6, r6, #0x12 - b _02038D88 -_02038CA0: - add r0, r4, #6 - sub sb, sb, r0 - cmp sb, #0 - movle sb, #1 - cmp sb, #0xe5 - movge sb, #0xe4 - cmp sb, #0xaa - subgt sb, sb, #8 - bgt _02038CCC - cmp sb, #0x4b - subgt sb, sb, #4 -_02038CCC: - mov r0, sb - mov r1, #0xd - bl DivideInt - add r1, r5, #0x24 - mov r6, r0 - cmp r8, r1 - addgt r6, r6, #0x11 - b _02038D88 -_02038CEC: - bl FUN_02038a54 - ldr r1, _02039068 @ =0x020AFDF0 - ldr r3, _02039080 @ =0x0209B2C4 - ldr r1, [r1] - ldr r7, [r1, #0xc] - ldrb r2, [r1, #0x1b] - ldrb r3, [r3, r7] - cmp r0, r2 - subeq r0, r0, #1 - add r2, r5, #0x16 - cmp r8, r2 - add r2, r2, #0x20 - add r3, r4, r3 - mvnlt r0, #0 - blt _02039060 - cmp r8, r2 - mvngt r0, #0 - bgt _02039060 - sub r2, r3, #4 - cmp sb, r2 - mvnlt r0, #0 - blt _02039060 - add r2, r3, #0x68 - cmp sb, r2 - mvngt r0, #0 - bgt _02039060 - sub r5, sb, r3 - mov r4, #0 - b _02038D80 -_02038D60: - add r2, r1, r4, lsl #1 - ldrsh r3, [r2, #0x20] - ldrsh r2, [r2, #0x8c] - mov r6, r4 - add r2, r3, r2 - cmp r5, r2 - blt _02038D88 - add r4, r4, #1 -_02038D80: - cmp r4, r0 - ble _02038D60 -_02038D88: - bl FUN_02038a54 - cmp r6, r0 - bgt _02038F98 - ldr r0, _02039068 @ =0x020AFDF0 - ldr r1, [r0] - strb r6, [r1, #0x1d] - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_020275f8 - mov r4, r0 - bl FUN_02038adc - ldr r0, _02039068 @ =0x020AFDF0 - ldr r3, [r0] - ldr r1, [r3, #0xc] - sub r0, r1, #4 - cmp r0, #5 - addls pc, pc, r0, lsl #2 - b _02038F30 -_02038DD0: @ jump table - b _02038ED8 @ case 0 - b _02038DE8 @ case 1 - b _02038E60 @ case 2 - b _02038DE8 @ case 3 - b _02038DE8 @ case 4 - b _02038ED8 @ case 5 -_02038DE8: - ldr r0, _02039084 @ =0x0209B28C - ldr r5, _02039088 @ =0x0209B2D0 - str r0, [sp] - mov r0, #0x40 - str r0, [sp, #4] - ldr sb, _02039080 @ =0x0209B2C4 - ldrb r2, [r4, #5] - ldrb r0, [r4, #4] - ldr r3, _0203908C @ =0x0209B3B6 - lsl r8, r6, #2 - ldr r7, _02039090 @ =0x0209B3B4 - ldrb r4, [r5, r1] - ldrsh r3, [r3, r8] - ldrb r1, [sb, r1] - ldrsh r5, [r7, r8] - add r3, r4, r3 - sub r2, r2, #1 - add r2, r3, r2, lsl #3 - sub r2, r2, #0xe - lsl r2, r2, #0x10 - add r1, r1, r5 - sub r0, r0, #1 - add r0, r1, r0, lsl #3 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - asr r1, r2, #0x10 - mov r2, #0xc - mov r3, #0xb - bl FUN_0202a2a4 - b _02038F90 -_02038E60: - ldr r0, _02039084 @ =0x0209B28C - ldr r5, _02039088 @ =0x0209B2D0 - str r0, [sp] - mov r0, #0x40 - str r0, [sp, #4] - ldr sb, _02039080 @ =0x0209B2C4 - ldrb r2, [r4, #5] - ldrb r0, [r4, #4] - ldr r3, _02039094 @ =0x0209B32E - lsl r8, r6, #2 - ldr r7, _02039098 @ =0x0209B32C - ldrb r4, [r5, r1] - ldrsh r3, [r3, r8] - ldrb r1, [sb, r1] - ldrsh r5, [r7, r8] - add r3, r4, r3 - sub r2, r2, #1 - add r2, r3, r2, lsl #3 - sub r2, r2, #0xe - lsl r2, r2, #0x10 - add r1, r1, r5 - sub r0, r0, #1 - add r0, r1, r0, lsl #3 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - asr r1, r2, #0x10 - mov r2, #0xc - mov r3, #0xb - bl FUN_0202a2a4 - b _02038F90 -_02038ED8: - ldr r0, _02039084 @ =0x0209B28C - ldr r2, _02039080 @ =0x0209B2C4 - str r0, [sp] - mov r0, #0x40 - str r0, [sp, #4] - ldr r0, _02039088 @ =0x0209B2D0 - ldrb r5, [r2, r1] - ldrsh r3, [r3, #0x20] - ldrb r2, [r4, #4] - ldrb r1, [r0, r1] - ldrb r0, [r4, #5] - add r3, r5, r3 - add r2, r3, r2, lsl #3 - add r1, r1, r0, lsl #3 - lsl r0, r2, #0x10 - lsl r1, r1, #0x10 - asr r0, r0, #0x10 - asr r1, r1, #0x10 - mov r2, #0xc - mov r3, #0xb - bl FUN_0202a2a4 - b _02038F90 -_02038F30: - ldr r0, _02039068 @ =0x020AFDF0 - ldr r2, _02039080 @ =0x0209B2C4 - ldr r5, [r0] - ldr r3, _02039084 @ =0x0209B28C - mov r0, #0x40 - str r3, [sp] - str r0, [sp, #4] - add r5, r5, r6, lsl #1 - ldr r0, _02039088 @ =0x0209B2D0 - ldrb r7, [r2, r1] - ldrsh r3, [r5, #0x20] - ldrb r2, [r4, #4] - ldrb r1, [r0, r1] - ldrb r0, [r4, #5] - add r3, r7, r3 - add r2, r3, r2, lsl #3 - add r1, r1, r0, lsl #3 - lsl r0, r2, #0x10 - lsl r1, r1, #0x10 - ldrsh r2, [r5, #0x8c] - asr r0, r0, #0x10 - asr r1, r1, #0x10 - mov r3, #0xb - bl FUN_0202a2a4 -_02038F90: - add r0, r6, #0x64 - b _02039060 -_02038F98: - mvn r0, #0 - b _02039060 -_02038FA0: - cmp r8, #0x60 - blt _02038FB0 - cmp r8, #0xb8 - ble _02038FB8 -_02038FB0: - mvn r0, #0 - b _02039060 -_02038FB8: - cmp r8, #8 - sublt r0, lr, #0x10000 - blt _02039060 - cmp r8, #0xf8 - subgt r0, lr, #0x10000 - bgt _02039060 - cmp sb, #8 - sublt r0, lr, #0x10000 - blt _02039060 - cmp sb, #0xf8 - subgt r0, lr, #0x10000 - bgt _02039060 - cmp sb, #0x23 - movle sb, #0x24 - cmp sb, #0xf5 - movge sb, #0xf4 - cmp r8, #0x63 - movle r8, #0x64 - cmp r8, #0xb1 - movge r8, #0xb0 - sub r0, r8, #0x63 - mov r1, #0xd - bl DivideInt - mov r4, r0 - sub r0, sb, #0x23 - mov r1, #0xf - bl DivideInt - mov r1, #6 - ldr r2, _02039068 @ =0x020AFDF0 - mla r0, r1, r0, r4 - ldrb r3, [r7, #0x16] - ldr r2, [r2, #8] - mov r1, #0xa - ldr r2, [r2, r3, lsl #2] - mla r2, r0, r1, r2 - ldrh r2, [r2, #8] - cmp r2, #0x110 - subeq r0, r1, #0xb - beq _02039060 - ldrb r2, [r7, #0x1e] - cmp r2, #0 - subne r0, r1, #0xb -_02039060: - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_02039068: .4byte 0x020AFDF0 -_0203906C: .4byte 0x0209B2E0 -_02039070: .4byte 0x0209B2E1 -_02039074: .4byte 0x0209B2E2 -_02039078: .4byte 0x0000FFFF -_0203907C: .4byte 0x0209B2E3 -_02039080: .4byte 0x0209B2C4 -_02039084: .4byte 0x0209B28C -_02039088: .4byte 0x0209B2D0 -_0203908C: .4byte 0x0209B3B6 -_02039090: .4byte 0x0209B3B4 -_02039094: .4byte 0x0209B32E -_02039098: .4byte 0x0209B32C - arm_func_end FUN_02038b80 - - arm_func_start FUN_0203909c -FUN_0203909c: @ 0x0203909C - push {r3, r4, r5, r6, lr} - sub sp, sp, #0x9c - mov r6, r0 - mov r4, #0 - mov r0, #0x4c - mov r1, #8 - mov r5, r4 - bl MemAlloc - ldr r1, _02039208 @ =0x020AFE40 - mov r3, r4 - str r0, [r1] - str r3, [r0, #8] - ldr r0, [r1] - sub r2, r3, #2 - strb r3, [r0, #0xc] - ldr r0, [r1] - strb r2, [r0] - ldr r0, [r1] - strb r2, [r0, #1] - ldr r0, [r1] - strb r2, [r0, #2] - ldr r0, [r1] - str r3, [r0, #0x10] - b _02039118 -_020390FC: - ldrb r0, [r6, r3] - cmp r0, #0 - beq _02039120 - cmp r0, #0x20 - addeq r4, r4, #1 - add r5, r5, #1 - add r3, r3, #1 -_02039118: - cmp r3, #0x36 - blt _020390FC -_02039120: - cmp r5, r4 - ldreq r0, _02039208 @ =0x020AFE40 - moveq r1, #1 - ldreq r0, [r0] - mov r3, #0 - strbeq r1, [r0, #0xc] - ldr r0, _02039208 @ =0x020AFE40 -_0203913C: - ldr r1, [r0] - ldrb r2, [r6, r3] - add r1, r1, r3 - add r3, r3, #1 - strb r2, [r1, #0x14] - cmp r3, #0x36 - blt _0203913C - ldr r0, _02039208 @ =0x020AFE40 - ldr r0, [r0] - ldrb r0, [r0, #0xc] - cmp r0, #0 - bne _020391C0 - ldr r0, _0203920C @ =0x0209B4D4 - mov r2, #1 - ldr r1, _02039210 @ =0x0203939C - str r2, [sp, #4] - bl FUN_0202f8c4 - ldr r1, _02039208 @ =0x020AFE40 - ldr r3, _02039214 @ =0x0209B4E4 - ldr r1, [r1] - add r2, sp, #4 - strb r0, [r1] - mov r0, #0 - mov r1, #0x31 - str r0, [sp] - bl CreateNormalMenu - ldr r1, _02039208 @ =0x020AFE40 - mov r2, #0 - ldr r3, [r1] - strb r0, [r3, #1] - ldr r0, [r1] - str r2, [r0, #4] - b _020391FC -_020391C0: - mov r0, #0 - bl CreateDBox - ldr r3, _02039208 @ =0x020AFE40 - mov r1, #0x218 - ldr r4, [r3] - sub r2, r1, #0xf3 - strb r0, [r4, #2] - ldr r0, [r3] - mov r3, #0 - ldrsb r0, [r0, #2] - bl ShowMessageInDBox - ldr r0, _02039208 @ =0x020AFE40 - mov r1, #1 - ldr r0, [r0] - str r1, [r0, #4] -_020391FC: - mov r0, #1 - add sp, sp, #0x9c - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_02039208: .4byte 0x020AFE40 -_0203920C: .4byte 0x0209B4D4 -_02039210: .4byte 0x0203939C -_02039214: .4byte 0x0209B4E4 - arm_func_end FUN_0203909c - - arm_func_start FUN_02039218 -FUN_02039218: @ 0x02039218 - push {r3, lr} - ldr r0, _02039300 @ =0x020AFE40 - ldr r0, [r0] - cmp r0, #0 - beq _020392F8 - ldr r1, [r0, #8] - cmp r1, #0 - beq _0203924C - cmp r1, #1 - beq _02039290 - cmp r1, #0xb - beq _020392C4 - b _020392DC -_0203924C: - ldrsb r0, [r0] - mvn r1, #1 - cmp r0, r1 - beq _02039270 - bl FUN_0202f954 - ldr r0, _02039300 @ =0x020AFE40 - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_0202836c -_02039270: - ldr r0, _02039300 @ =0x020AFE40 - mvn r1, #1 - ldr r0, [r0] - ldrsb r0, [r0, #1] - cmp r0, r1 - beq _020392DC - bl FreeNormalMenu - b _020392DC -_02039290: - ldrsb r0, [r0] - mvn r1, #1 - cmp r0, r1 - beq _020392A4 - bl FUN_0202f8fc -_020392A4: - ldr r0, _02039300 @ =0x020AFE40 - mvn r1, #1 - ldr r0, [r0] - ldrsb r0, [r0, #2] - cmp r0, r1 - beq _020392DC - bl FreeDBox - b _020392DC -_020392C4: - bl MemFree - ldr r0, _02039300 @ =0x020AFE40 - mov r1, #0 - str r1, [r0] - mov r0, #1 - pop {r3, pc} -_020392DC: - ldr r1, _02039300 @ =0x020AFE40 - mov r0, #0 - ldr r2, [r1] - ldr r1, [r2, #8] - add r1, r1, #1 - str r1, [r2, #8] - pop {r3, pc} -_020392F8: - mov r0, #1 - pop {r3, pc} - .align 2, 0 -_02039300: .4byte 0x020AFE40 - arm_func_end FUN_02039218 -_02039304: - .byte 0x0C, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 - .byte 0x10, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x40, 0xFE, 0x0A, 0x02 - - arm_func_start FUN_0203931c -FUN_0203931c: @ 0x0203931C - push {r3, lr} - ldr r0, _02039398 @ =0x020AFE40 - ldr r1, [r0] - ldr r0, [r1, #4] - cmp r0, #1 - bne _0203934C - ldrsb r0, [r1, #2] - bl IsDBoxActive - cmp r0, #0 - bne _02039390 - mov r0, #1 - pop {r3, pc} -_0203934C: - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _0203937C - ldrsb r0, [r1, #1] - bl IsNormalMenuActive - cmp r0, #0 - bne _02039390 - ldr r0, _02039398 @ =0x020AFE40 - ldr r0, [r0] - ldrsb r0, [r0, #1] - bl GetNormalMenuResult - pop {r3, pc} -_0203937C: - ldrsb r0, [r1, #2] - bl IsDBoxActive - cmp r0, #0 - moveq r0, #1 - popeq {r3, pc} -_02039390: - mvn r0, #0 - pop {r3, pc} - .align 2, 0 -_02039398: .4byte 0x020AFE40 - arm_func_end FUN_0203931c -_0203939C: - .byte 0x18, 0x40, 0x2D, 0xE9 - .byte 0x95, 0xDF, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1, 0xDB, 0xB9, 0xFF, 0xEB, 0x74, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x20, 0x90, 0xE5, 0x10, 0x00, 0x92, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x54, 0x00, 0x8D, 0xE2 - .byte 0x03, 0x00, 0x00, 0x1A, 0x60, 0x10, 0x9F, 0xE5, 0x14, 0x20, 0x82, 0xE2, 0x19, 0x00, 0x00, 0xEB - .byte 0x02, 0x00, 0x00, 0xEA, 0x54, 0x10, 0x9F, 0xE5, 0x14, 0x20, 0x82, 0xE2, 0x15, 0x00, 0x00, 0xEB - .byte 0x54, 0x00, 0x8D, 0xE2, 0x3C, 0x00, 0x8D, 0xE5, 0x04, 0xC0, 0x8D, 0xE2, 0x40, 0x30, 0x9F, 0xE5 - .byte 0x55, 0x0F, 0x8D, 0xE2, 0x01, 0x1B, 0xA0, 0xE3, 0x49, 0x2F, 0xA0, 0xE3, 0x00, 0xC0, 0x8D, 0xE5 - .byte 0x6C, 0xA8, 0xFF, 0xEB, 0x55, 0x3F, 0x8D, 0xE2, 0x04, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE3 - .byte 0x03, 0x20, 0xA0, 0xE3, 0x7E, 0xB3, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0xB3, 0xB9, 0xFF, 0xEB - .byte 0x95, 0xDF, 0x8D, 0xE2, 0x18, 0x80, 0xBD, 0xE8, 0x40, 0xFE, 0x0A, 0x02, 0xFC, 0xB4, 0x09, 0x02 - .byte 0x0C, 0xB5, 0x09, 0x02, 0x02, 0xC4, 0x00, 0x00 - - arm_func_start SprintfStatic -SprintfStatic: @ 0x02039438 - push {r0, r1, r2, r3} - push {r3, lr} - add r2, sp, #0xc - bic r2, r2, #3 - ldr r1, [sp, #0xc] - add r2, r2, #4 - bl Vsprintf - pop {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end SprintfStatic - - arm_func_start FUN_02039460 -FUN_02039460: @ 0x02039460 - push {r4, lr} - sub sp, sp, #0x18 - ldr r1, _02039514 @ =0x020AFE58 - mov r4, r0 - str r4, [r1] - ldr r0, [r4, #0x10] - add ip, sp, #8 - cmp r0, #0x10 - blt _020394C8 - and r1, r0, #0xf - ldr r0, _02039518 @ =0x0209C5C0 - str r1, [r4, #0x10] - ldm r0, {r0, r1, r2, r3} - stm ip, {r0, r1, r2, r3} - ldr r0, [r4, #0x18] - mov r2, #0 - strb r0, [sp, #0xc] - ldr r0, [r4, #0x1c] - ldr r1, _0203951C @ =0x00001007 - strb r0, [sp, #0xd] - str r2, [sp] - ldr r3, _02039520 @ =0x02039C14 - mov r0, ip - str r2, [sp, #4] - bl FUN_020305b4 - b _02039500 -_020394C8: - ldr r0, _02039524 @ =0x0209C5D0 - ldm r0, {r0, r1, r2, r3} - stm ip, {r0, r1, r2, r3} - ldr r0, [r4, #0x18] - mov r2, #0 - strb r0, [sp, #0xc] - ldr r0, [r4, #0x1c] - ldr r1, _0203951C @ =0x00001007 - strb r0, [sp, #0xd] - str r2, [sp] - ldr r3, _02039520 @ =0x02039C14 - mov r0, ip - str r2, [sp, #4] - bl FUN_020305b4 -_02039500: - strb r0, [r4, #0x14] - mov r0, r4 - bl FUN_020395cc - add sp, sp, #0x18 - pop {r4, pc} - .align 2, 0 -_02039514: .4byte 0x020AFE58 -_02039518: .4byte 0x0209C5C0 -_0203951C: .4byte 0x00001007 -_02039520: .4byte 0x02039C14 -_02039524: .4byte 0x0209C5D0 - arm_func_end FUN_02039460 - - arm_func_start FUN_02039528 -FUN_02039528: @ 0x02039528 - push {r3, r4, r5, lr} - mov r5, r0 - ldr r4, [r5] - ldr r1, _020395C8 @ =0x020AFE58 - str r5, [r1] - bl FUN_020396e4 - cmp r0, #3 - addls pc, pc, r0, lsl #2 - b _020395AC -_0203954C: @ jump table - b _020395AC @ case 0 - b _020395AC @ case 1 - b _02039584 @ case 2 - b _0203955C @ case 3 -_0203955C: - mov r0, #0 - bl FUN_02017ccc - ldrsb r0, [r5, #0x14] - bl FUN_0202836c - ldrsb r0, [r5, #0x14] - bl FUN_0203088c - ldrsb r0, [r5, #0x14] - bl FUN_020308a0 - ldr r0, [r5] - pop {r3, r4, r5, pc} -_02039584: - ldrsb r0, [r5, #0x14] - bl FUN_0202836c - ldrsb r0, [r5, #0x14] - bl FUN_0203088c - ldrsb r0, [r5, #0x14] - bl FUN_020308a0 - mov r0, #1 - bl FUN_02017ccc - mvn r0, #0 - pop {r3, r4, r5, pc} -_020395AC: - ldr r0, [r5] - cmp r4, r0 - beq _020395C0 - ldrsb r0, [r5, #0x14] - bl FUN_0203083c -_020395C0: - mvn r0, #1 - pop {r3, r4, r5, pc} - .align 2, 0 -_020395C8: .4byte 0x020AFE58 - arm_func_end FUN_02039528 - - arm_func_start FUN_020395cc -FUN_020395cc: @ 0x020395CC - push {r4, lr} - sub sp, sp, #0x28 - ldr r1, _0203967C @ =0x020AFE58 - mov r4, r0 - str r4, [r1] - ldr r1, [r4, #0xc] - ldr r2, [r4, #0x10] - add r0, sp, #0 - bl FUN_02039680 - ldr r0, [r4, #0x10] - add r1, sp, #0 - strb r0, [r4, #0x29] - b _0203960C -_02039600: - ldrb r0, [r4, #0x29] - sub r0, r0, #1 - strb r0, [r4, #0x29] -_0203960C: - ldrb r2, [r4, #0x29] - add r0, r1, r2, lsl #2 - ldr r0, [r0, #-4] - cmp r0, #0 - bne _02039628 - cmp r2, #1 - bhi _02039600 -_02039628: - ldr r1, [r4, #4] - add r0, sp, #0 - str r1, [r4] - ldr r2, [r4, #0x10] - bl FUN_02039680 - ldrb r0, [r4, #0x29] - add r1, sp, #0 - sub r0, r0, #1 - strb r0, [r4, #0x28] - b _0203965C -_02039650: - ldrb r0, [r4, #0x28] - sub r0, r0, #1 - strb r0, [r4, #0x28] -_0203965C: - ldrb r2, [r4, #0x28] - ldr r0, [r1, r2, lsl #2] - cmp r0, #0 - bne _02039674 - cmp r2, #0 - bne _02039650 -_02039674: - add sp, sp, #0x28 - pop {r4, pc} - .align 2, 0 -_0203967C: .4byte 0x020AFE58 - arm_func_end FUN_020395cc - - arm_func_start FUN_02039680 -FUN_02039680: @ 0x02039680 - push {r4, r5, r6, r7, r8, sb, sl, lr} - mov sb, r1 - cmp sb, #0 - movgt r6, #1 - mov r5, #0xa - mov sl, r0 - mov r8, r2 - rsble sb, sb, #0 - mvnle r6, #0 - mov r7, #0 - mov r4, r5 - b _020396D4 -_020396B0: - mov r0, sb - mov r1, r5 - bl DivideInt - str r1, [sl, r7, lsl #2] - mov r0, sb - mov r1, r4 - bl DivideInt - mov sb, r0 - add r7, r7, #1 -_020396D4: - cmp r7, r8 - blt _020396B0 - mov r0, r6 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_end FUN_02039680 - - arm_func_start FUN_020396e4 -FUN_020396e4: @ 0x020396E4 - push {r4, r5, lr} - sub sp, sp, #0x34 - mov r4, r0 - add r1, sp, #0xc - mov r0, #0 - bl GetPressedButtons - ldrsb r0, [r4, #0x14] - bl FUN_020308c4 - cmp r0, #0 - bne _02039730 - ldrsb r0, [r4, #0x14] - bl FUN_02030940 - mvn r1, #0 - cmp r0, r1 - bne _02039728 - mov r0, #2 - b _02039940 -_02039728: mov r0, #3 - b _02039940 -_02039730: - add r1, sp, #0xa - mov r0, #0 - ldrb r5, [r4, #0x28] - bl FUN_020063f4 - ldrh r0, [sp, #0xa] - cmp r0, #0x10 - beq _02039774 - cmp r0, #0x20 - bne _02039788 - ldrb r0, [r4, #0x29] - ldrb r1, [r4, #0x28] - sub r0, r0, #1 - cmp r1, r0 - movge r0, #0 - addlt r0, r1, #1 - and r5, r0, #0xff - b _02039788 -_02039774: - ldrb r0, [r4, #0x28] - cmp r0, #0 - ldrbeq r0, [r4, #0x29] - sub r0, r0, #1 - and r5, r0, #0xff -_02039788: - ldrb r0, [r4, #0x28] - cmp r5, r0 - beq _020397A0 - mov r0, #3 - strb r5, [r4, #0x28] - bl FUN_02017ccc -_020397A0: - ldrb r1, [r4, #0x28] - mov r0, #0xc - ldr r3, [r4, #0x24] - add r1, r1, #1 - mul r2, r1, r0 - ldr r1, [r4, #0x20] - add r0, r3, #0xf - sub r1, r1, r2 - add r2, r1, #3 - str r2, [sp] - str r0, [sp, #4] - ldrsb r0, [r4, #0x14] - sub r3, r3, #1 - mov r1, #7 - bl FUN_020309b8 - add r1, sp, #8 - mov r0, #0 - bl FUN_020063f4 - mov r0, r4 - bl FUN_0203994c - cmp r0, #0 - ldrheq r0, [sp, #8] - cmp r0, #0x40 - beq _0203980C - cmp r0, #0x80 - beq _0203985C - b _020398AC -_0203980C: - ldr r3, [r4] - ldr r0, [r4, #0xc] - cmp r3, r0 - bne _0203982C - mov r0, #2 - bl FUN_02017ccc - mov r0, #0 - b _020398B0 -_0203982C: - ldrb r2, [r4, #0x28] - ldr r1, _02039948 @ =0x0209C5E0 - mov r0, #3 - ldr r1, [r1, r2, lsl #2] - add r5, r3, r1 - bl FUN_02017ccc - ldr r0, [r4, #0xc] - cmp r5, r0 - strgt r0, [r4] - strle r5, [r4] - mov r0, #1 - b _020398B0 -_0203985C: - ldr r3, [r4] - ldr r0, [r4, #8] - cmp r3, r0 - bne _0203987C - mov r0, #2 - bl FUN_02017ccc - mov r0, #0 - b _020398B0 -_0203987C: - ldrb r2, [r4, #0x28] - ldr r1, _02039948 @ =0x0209C5E0 - mov r0, #3 - ldr r1, [r1, r2, lsl #2] - sub r5, r3, r1 - bl FUN_02017ccc - ldr r0, [r4, #8] - cmp r5, r0 - strlt r0, [r4] - strge r5, [r4] - mov r0, #1 - b _020398B0 -_020398AC: - mov r0, #0 -_020398B0: - cmp r0, #0 - movne r0, #1 - bne _02039940 - mov r0, r4 - bl FUN_0203994c - cmp r0, #0 - ldrheq r0, [sp, #0xc] - cmp r0, #1 - beq _020398E4 - cmp r0, #2 - bne _020398EC - mov r0, #2 - b _02039940 -_020398E4: - mov r0, #3 - b _02039940 -_020398EC: - add r0, sp, #0x10 - mov r1, #1 - bl FUN_02031914 - ldr r1, [sp, #0x14] - ldr r0, [sp, #0x18] - lsl r1, r1, #0x10 - lsl r2, r0, #0x10 - mov r0, r4 - lsr r1, r1, #0x10 - lsr r2, r2, #0x10 - bl FUN_020399fc - cmp r0, #0 - blt _0203993C - ldrb r1, [r4, #0x28] - and r2, r0, #0xff - cmp r2, r1 - beq _0203993C - mov r0, #3 - strb r2, [r4, #0x28] - bl FUN_02017ccc -_0203993C: - mov r0, #0 -_02039940: - add sp, sp, #0x34 - pop {r4, r5, pc} - .align 2, 0 -_02039948: .4byte 0x0209C5E0 - arm_func_end FUN_020396e4 - - arm_func_start FUN_0203994c -FUN_0203994c: @ 0x0203994C - push {r3, r4, lr} - sub sp, sp, #0x24 - mov r4, r0 - add r0, sp, #0 - mov r1, #1 - bl FUN_02031914 - ldrh r0, [sp] - tst r0, #2 - moveq r0, #0 - beq _020399F0 - ldr r2, [sp, #4] - ldr r0, _020399F8 @ =0x0000FFFF - cmp r2, r0 - ldreq r1, [sp, #8] - cmpeq r1, r0 - moveq r0, #0 - beq _020399F0 - ldr r0, [sp, #8] - lsl r1, r2, #0x10 - lsl r2, r0, #0x10 - mov r0, r4 - lsr r1, r1, #0x10 - lsr r2, r2, #0x10 - bl FUN_020399fc - ldrb r1, [r4, #0x28] - cmp r1, r0 - movne r0, #0 - bne _020399F0 - ldrsb r0, [r4, #0x14] - bl FUN_020275f8 - ldrb r1, [r0, #5] - ldr r2, [r4, #0x24] - ldr r0, [sp, #8] - add r1, r2, r1, lsl #3 - cmp r0, r1 - add r1, r1, #0xc - movlt r0, #0x40 - blt _020399F0 - cmp r0, r1 - movgt r0, #0x80 - movle r0, #0 -_020399F0: - add sp, sp, #0x24 - pop {r3, r4, pc} - .align 2, 0 -_020399F8: .4byte 0x0000FFFF - arm_func_end FUN_0203994c - - arm_func_start FUN_020399fc -FUN_020399fc: @ 0x020399FC - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov r6, r0 - ldrsb r0, [r6, #0x14] - mov r5, r1 - mov r4, r2 - bl FUN_020275f8 - ldrb r1, [r0, #5] - ldr r3, [r6, #0x24] - ldr ip, _02039B08 @ =0x0000FFFF - add r3, r3, r1, lsl #3 - cmp r5, ip - ldrb r7, [r6, #0x29] - ldr r8, [r6, #0x20] - ldrb r2, [r0, #4] - mov r6, #0xc - ldrb sb, [r0, #6] - sub lr, r3, #0xa - ldrb r0, [r0, #7] - smulbb r7, r7, r6 - add r8, r8, r2, lsl #3 - lsl r3, r2, #3 - lsl r1, r1, #3 - add r2, r3, sb, lsl #3 - add sb, r1, r0, lsl #3 - sub r7, r8, r7 - add r0, lr, #0x20 - cmpne r4, ip - mvneq r0, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, pc} - sub r3, r3, #6 - cmp r5, r3 - sublt r0, r6, #0xe - poplt {r3, r4, r5, r6, r7, r8, sb, pc} - sub r1, r1, #6 - cmp r4, r1 - sublt r0, r6, #0xe - poplt {r3, r4, r5, r6, r7, r8, sb, pc} - add r1, r2, #6 - cmp r5, r1 - subgt r0, r6, #0xe - popgt {r3, r4, r5, r6, r7, r8, sb, pc} - add r1, sb, #6 - cmp r4, r1 - subgt r0, r6, #0xe - popgt {r3, r4, r5, r6, r7, r8, sb, pc} - cmp r4, lr - sublt r0, ip, #0x10000 - poplt {r3, r4, r5, r6, r7, r8, sb, pc} - cmp r4, r0 - subgt r0, ip, #0x10000 - popgt {r3, r4, r5, r6, r7, r8, sb, pc} - sub r0, r7, #4 - cmp r5, r0 - sublt r0, ip, #0x10000 - poplt {r3, r4, r5, r6, r7, r8, sb, pc} - add r0, r8, #4 - cmp r5, r0 - subgt r0, ip, #0x10000 - popgt {r3, r4, r5, r6, r7, r8, sb, pc} - cmp r5, r7 - addle r5, r7, #1 - cmp r5, r8 - subge r5, r8, #1 - sub r0, r8, r5 - mov r1, #0xc - bl DivideInt - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_02039B08: .4byte 0x0000FFFF - arm_func_end FUN_020399fc -_02039B0C: - .byte 0xF0, 0x43, 0x2D, 0xE9 - .byte 0x2C, 0xD0, 0x4D, 0xE2, 0x00, 0x80, 0xA0, 0xE1, 0x00, 0x10, 0x98, 0xE5, 0x10, 0x20, 0x98, 0xE5 - .byte 0x04, 0x00, 0x8D, 0xE2, 0xD5, 0xFE, 0xFF, 0xEB, 0x10, 0x00, 0x98, 0xE5, 0x04, 0x20, 0x8D, 0xE2 - .byte 0x01, 0x30, 0x40, 0xE2, 0xFF, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x00, 0xEA, 0x03, 0x11, 0x92, 0xE7 - .byte 0x00, 0x00, 0x51, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x03, 0x01, 0x82, 0xE7, 0x01, 0x30, 0x43, 0xE2 - .byte 0x00, 0x00, 0x53, 0xE3, 0xF8, 0xFF, 0xFF, 0xCA, 0x00, 0x70, 0xA0, 0xE3, 0x04, 0x60, 0x8D, 0xE2 - .byte 0x2A, 0x50, 0xA0, 0xE3, 0x44, 0x40, 0xA0, 0xE3, 0x0C, 0x90, 0xA0, 0xE3, 0x0F, 0x00, 0x00, 0xEA - .byte 0x07, 0x01, 0x96, 0xE7, 0xFF, 0x00, 0x50, 0xE3, 0x05, 0x00, 0xA0, 0x01, 0x30, 0x00, 0x80, 0x12 - .byte 0xFF, 0x00, 0x00, 0x12, 0x99, 0xAD, 0xFF, 0xEB, 0x01, 0x10, 0x87, 0xE2, 0x91, 0x09, 0x02, 0xE0 - .byte 0x00, 0x40, 0x8D, 0xE5, 0x20, 0x10, 0x98, 0xE5, 0x00, 0x30, 0xA0, 0xE1, 0x02, 0x10, 0x41, 0xE0 - .byte 0xD4, 0x01, 0xD8, 0xE1, 0x24, 0x20, 0x98, 0xE5, 0x52, 0xB2, 0xFF, 0xEB, 0x01, 0x70, 0x87, 0xE2 - .byte 0x10, 0x00, 0x98, 0xE5, 0x00, 0x00, 0x57, 0xE1, 0xEC, 0xFF, 0xFF, 0xBA, 0x00, 0x50, 0xA0, 0xE3 - .byte 0x17, 0x40, 0xA0, 0xE3, 0x0B, 0x70, 0xA0, 0xE3, 0x0C, 0x60, 0xA0, 0xE3, 0x0B, 0x00, 0x00, 0xEA - .byte 0x01, 0x00, 0x85, 0xE2, 0x90, 0x06, 0x01, 0xE0, 0x00, 0x40, 0x8D, 0xE5, 0x20, 0x00, 0x98, 0xE5 - .byte 0x24, 0x20, 0x98, 0xE5, 0x01, 0x10, 0x40, 0xE0, 0xD4, 0x01, 0xD8, 0xE1, 0x07, 0x30, 0xA0, 0xE1 - .byte 0x01, 0x10, 0x41, 0xE2, 0x0C, 0x20, 0x82, 0xE2, 0x54, 0xB0, 0xFF, 0xEB, 0x01, 0x50, 0x85, 0xE2 - .byte 0x10, 0x00, 0x98, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0xF0, 0xFF, 0xFF, 0xBA, 0x2C, 0xD0, 0x8D, 0xE2 - .byte 0xF0, 0x83, 0xBD, 0xE8, 0x08, 0x00, 0x9F, 0xE5, 0x08, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x58, 0xFE, 0x0A, 0x02, 0x0C, 0x9B, 0x03, 0x02 - - arm_func_start FUN_02039c2c -FUN_02039c2c: @ 0x02039C2C - ldr ip, _02039C38 @ =FUN_02039C64 - mov r2, #0 - bx ip - .align 2, 0 -_02039C38: .4byte FUN_02039C64 - arm_func_end FUN_02039c2c -_02039C3C: - .byte 0x10, 0x40, 0x2D, 0xE9 - .byte 0x02, 0x20, 0xA0, 0xE3, 0x06, 0x00, 0x00, 0xEB, 0x10, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x10, 0xDF, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x10, 0x80, 0xBD, 0xE8 - .byte 0x80, 0xBA, 0x03, 0x02 - - arm_func_start FUN_02039C64 -FUN_02039C64: @ 0x02039C64 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x4c - mov r5, r0 - mov r4, r2 - bl FUN_0203ad68 - cmp r0, #0 - mvnne r0, #1 - bne _0203A4CC - ldr r0, _0203A4D4 @ =0x020AFE5C - ldr r0, [r0, #0x10] - cmp r0, #0 - bne _02039CA8 - mov r0, #0x8a0 - mov r1, #8 - bl MemAlloc - ldr r1, _0203A4D4 @ =0x020AFE5C - str r0, [r1, #0x10] -_02039CA8: - ldr r1, _0203A4D4 @ =0x020AFE5C - ldr r0, _0203A4D8 @ =0x0209C764 - ldrsh r6, [r1, #2] - mov r2, r5 - mov r3, r4 - str r6, [sp] - ldr r1, [r1, #4] - bl DebugPrint0 - ldr r0, _0203A4D4 @ =0x020AFE5C - ldr r1, [r0, #4] - cmp r1, r5 - beq _02039CF0 - mov r1, #1 - str r1, [r0, #0xc] - mov r1, #0 - str r1, [r0, #8] - str r5, [r0, #4] - strh r1, [r0, #2] -_02039CF0: - ldr r2, _0203A4D4 @ =0x020AFE5C - mov r0, #0 - ldrsh r1, [r2, #2] - sub r3, r0, #2 - strh r1, [r2] - ldr r1, [r2, #0x10] - str r4, [r1] - ldr r1, [r2, #0x10] - strb r0, [r1, #8] - ldr r1, [r2, #0x10] - strb r0, [r1, #9] - ldr r1, [r2, #0x10] - strb r0, [r1, #0xa] - ldr r1, [r2, #0x10] - strb r0, [r1, #0xb] - ldr r1, [r2, #0x10] - strb r0, [r1, #0xc] - ldr r1, [r2, #0x10] - strb r0, [r1, #0xd] - ldr r1, [r2, #0x10] - strb r0, [r1, #0xe] - ldr r1, [r2, #0x10] - strb r0, [r1, #0x10] - ldr r1, [r2, #0x10] - strb r3, [r1, #0x468] - ldr r1, [r2, #0x10] - strb r3, [r1, #0x469] - ldr r1, [r2, #0x10] - strb r3, [r1, #0x505] - ldr r1, [r2, #0x10] - strb r3, [r1, #0x506] - ldr r1, [r2, #0x10] - strb r3, [r1, #0x507] - ldr r1, [r2, #0x10] - strb r3, [r1, #0x50c] - ldr r1, [r2, #0x10] - strb r3, [r1, #0x5bc] - ldr r1, [r2, #0x10] - add r1, r1, #0x600 - strh r0, [r1, #0x70] - ldr r1, [r2, #0x10] - strb r0, [r1, #0x46a] - ldr r1, [r2, #0x10] - strb r0, [r1, #0xf] - ldr r1, [r2, #4] - cmp r1, #0xc - addls pc, pc, r1, lsl #2 - b _02039E94 -_02039DB0: @ jump table - b _02039E94 @ case 0 - b _02039DE4 @ case 1 - b _02039DF4 @ case 2 - b _02039E54 @ case 3 - b _02039E44 @ case 4 - b _02039E94 @ case 5 - b _02039E78 @ case 6 - b _02039E10 @ case 7 - b _02039E04 @ case 8 - b _02039E78 @ case 9 - b _02039E78 @ case 10 - b _02039E78 @ case 11 - b _02039E78 @ case 12 -_02039DE4: - ldr r0, [r2, #0x10] - mov r1, #1 - strb r1, [r0, #0xe] - b _02039E94 -_02039DF4: - ldr r0, [r2, #0x10] - mov r1, #1 - strb r1, [r0, #8] - b _02039E94 -_02039E04: - ldr r0, [r2, #0x10] - mov r1, #1 - strb r1, [r0, #0x10] -_02039E10: - ldr r0, _0203A4D4 @ =0x020AFE5C - mov r1, #1 - ldr r0, [r0, #0x10] - strb r1, [r0, #0xd] - bl FUN_0204e210 - cmp r0, #2 - bne _02039E44 - bl FUN_0204e3c8 - cmp r0, #0 - ldrne r0, _0203A4D4 @ =0x020AFE5C - movne r1, #1 - ldrne r0, [r0, #0x10] - strbne r1, [r0, #0xf] -_02039E44: - ldr r0, _0203A4D4 @ =0x020AFE5C - mov r1, #1 - ldr r0, [r0, #0x10] - strb r1, [r0, #0xc] -_02039E54: - ldr r0, _0203A4D4 @ =0x020AFE5C - mov r2, #1 - ldr r1, [r0, #0x10] - strb r2, [r1, #0xb] - ldr r1, [r0, #0x10] - strb r2, [r1, #9] - ldr r0, [r0, #0x10] - strb r2, [r0, #0xa] - b _02039E94 -_02039E78: - ldr r1, [r2, #0x10] - mov r3, #1 - strb r3, [r1, #8] - ldr r1, [r2, #0x10] - strb r0, [r1, #9] - ldr r1, [r2, #0x10] - strb r0, [r1, #0xa] -_02039E94: - ldr r2, _0203A4D4 @ =0x020AFE5C - mvn r4, #0 - ldr r0, [r2, #0x10] - mov r5, #0 - str r5, [r0, #4] - add r1, r4, #0x22c -_02039EAC: - ldr r3, [r2, #0x10] - add r0, r5, #1 - add r3, r3, r5, lsl #1 - lsl r0, r0, #0x10 - strh r4, [r3, #0x12] - cmp r1, r0, asr #16 - asr r5, r0, #0x10 - bgt _02039EAC - ldr r0, _0203A4D4 @ =0x020AFE5C - ldr r0, [r0, #4] - sub r0, r0, #5 - cmp r0, #7 - addls pc, pc, r0, lsl #2 - b _0203A144 -_02039EE4: @ jump table - b _02039F04 @ case 0 - b _0203A034 @ case 1 - b _0203A144 @ case 2 - b _0203A144 @ case 3 - b _0203A034 @ case 4 - b _0203A034 @ case 5 - b _0203A034 @ case 6 - b _0203A034 @ case 7 -_02039F04: - bl FUN_02059B08 - cmp r0, #0 - beq _02039FA8 - bl GetHero - mov r5, r0 - bl GetPartner - mov r4, r0 - cmp r5, #0 - beq _02039F64 - add r1, sp, #0x10 - mov r0, r5 - bl GetEvolutionPossibilities - ldrsh r0, [sp, #0x18] - cmp r0, #0 - beq _02039F64 - bl GetHeroMemberIdx - ldr r1, _0203A4D4 @ =0x020AFE5C - ldr r5, [r1, #0x10] - ldr r3, [r5, #4] - add r2, r3, #1 - str r2, [r5, #4] - ldr r1, [r1, #0x10] - add r1, r1, r3, lsl #1 - strh r0, [r1, #0x12] -_02039F64: - cmp r4, #0 - beq _02039FA8 - add r1, sp, #0x10 - mov r0, r4 - bl GetEvolutionPossibilities - ldrsh r0, [sp, #0x18] - cmp r0, #0 - beq _02039FA8 - bl GetPartnerMemberIdx - ldr r1, _0203A4D4 @ =0x020AFE5C - ldr r4, [r1, #0x10] - ldr r3, [r4, #4] - add r2, r3, #1 - str r2, [r4, #4] - ldr r1, [r1, #0x10] - add r1, r1, r3, lsl #1 - strh r0, [r1, #0x12] -_02039FA8: - ldr r6, _0203A4D4 @ =0x020AFE5C - ldr r4, _0203A4DC @ =0x0000022B - ldr r7, _0203A4E0 @ =0x020B0A48 - mov sb, #5 - mov sl, #0 - mov r8, #1 - add fp, sp, #0x10 - mov r5, #0x44 -_02039FC8: - smulbb r2, sb, r5 - ldr r3, [r7] - ldrb r0, [r3, r2] - tst r0, #1 - movne r0, r8 - moveq r0, sl - tst r0, #0xff - beq _0203A01C - mov r1, fp - add r0, r3, r2 - bl GetEvolutionPossibilities - ldrsh r0, [sp, #0x18] - cmp r0, #0 - beq _0203A01C - ldr r2, [r6, #0x10] - ldr r1, [r2, #4] - add r0, r1, #1 - str r0, [r2, #4] - ldr r0, [r6, #0x10] - add r0, r0, r1, lsl #1 - strh sb, [r0, #0x12] -_0203A01C: - add r0, sb, #1 - lsl r0, r0, #0x10 - cmp r4, r0, asr #16 - asr sb, r0, #0x10 - bgt _02039FC8 - b _0203A278 -_0203A034: - bl GetMainCharacter1MemberIdx - mvn r1, #0 - cmp r0, r1 - beq _0203A064 - ldr r1, _0203A4D4 @ =0x020AFE5C - ldr r4, [r1, #0x10] - ldr r3, [r4, #4] - add r2, r3, #1 - str r2, [r4, #4] - ldr r1, [r1, #0x10] - add r1, r1, r3, lsl #1 - strh r0, [r1, #0x12] -_0203A064: - bl GetMainCharacter2MemberIdx - mvn r1, #0 - cmp r0, r1 - beq _0203A094 - ldr r1, _0203A4D4 @ =0x020AFE5C - ldr r4, [r1, #0x10] - ldr r3, [r4, #4] - add r2, r3, #1 - str r2, [r4, #4] - ldr r1, [r1, #0x10] - add r1, r1, r3, lsl #1 - strh r0, [r1, #0x12] -_0203A094: - bl GetMainCharacter3MemberIdx - mvn r1, #0 - cmp r0, r1 - beq _0203A0C4 - ldr r1, _0203A4D4 @ =0x020AFE5C - ldr r4, [r1, #0x10] - ldr r3, [r4, #4] - add r2, r3, #1 - str r2, [r4, #4] - ldr r1, [r1, #0x10] - add r1, r1, r3, lsl #1 - strh r0, [r1, #0x12] -_0203A0C4: - ldr r6, _0203A4D4 @ =0x020AFE5C - ldr r4, _0203A4DC @ =0x0000022B - ldr r7, _0203A4E0 @ =0x020B0A48 - mov sb, #5 - mov sl, #0 - mov r8, #1 - mov r5, #0x44 -_0203A0E0: - smulbb r0, sb, r5 - ldr r1, [r7] - ldrb r0, [r1, r0] - tst r0, #1 - movne r0, r8 - moveq r0, sl - tst r0, #0xff - beq _0203A12C - mov r0, sb - bl FUN_02056410 - cmp r0, #0 - beq _0203A12C - ldr r2, [r6, #0x10] - ldr r1, [r2, #4] - add r0, r1, #1 - str r0, [r2, #4] - ldr r0, [r6, #0x10] - add r0, r0, r1, lsl #1 - strh sb, [r0, #0x12] -_0203A12C: - add r0, sb, #1 - lsl r0, r0, #0x10 - cmp r4, r0, asr #16 - asr sb, r0, #0x10 - bgt _0203A0E0 - b _0203A278 -_0203A144: - ldr r0, _0203A4D4 @ =0x020AFE5C - ldr r0, [r0, #0x10] - ldrb r0, [r0, #9] - cmp r0, #0 - bne _0203A198 - bl GetMainCharacter1MemberIdx - mov r4, r0 - mvn r1, #0 - cmp r4, r1 - beq _0203A198 - bl FUN_0203ab3c - cmp r0, #0 - beq _0203A198 - ldr r0, _0203A4D4 @ =0x020AFE5C - ldr r3, [r0, #0x10] - ldr r2, [r3, #4] - add r1, r2, #1 - str r1, [r3, #4] - ldr r0, [r0, #0x10] - add r0, r0, r2, lsl #1 - strh r4, [r0, #0x12] -_0203A198: - ldr r0, _0203A4D4 @ =0x020AFE5C - ldr r0, [r0, #0x10] - ldrb r0, [r0, #0xa] - cmp r0, #0 - bne _0203A22C - bl GetMainCharacter2MemberIdx - mov r4, r0 - mvn r1, #0 - cmp r4, r1 - beq _0203A1EC - bl FUN_0203ab3c - cmp r0, #0 - beq _0203A1EC - ldr r0, _0203A4D4 @ =0x020AFE5C - ldr r3, [r0, #0x10] - ldr r2, [r3, #4] - add r1, r2, #1 - str r1, [r3, #4] - ldr r0, [r0, #0x10] - add r0, r0, r2, lsl #1 - strh r4, [r0, #0x12] -_0203A1EC: - bl GetMainCharacter3MemberIdx - mov r4, r0 - mvn r1, #0 - cmp r4, r1 - beq _0203A22C - bl FUN_0203ab3c - cmp r0, #0 - beq _0203A22C - ldr r0, _0203A4D4 @ =0x020AFE5C - ldr r3, [r0, #0x10] - ldr r2, [r3, #4] - add r1, r2, #1 - str r1, [r3, #4] - ldr r0, [r0, #0x10] - add r0, r0, r2, lsl #1 - strh r4, [r0, #0x12] -_0203A22C: - ldr r6, _0203A4D4 @ =0x020AFE5C - ldr r5, _0203A4DC @ =0x0000022B - mov r4, #5 -_0203A238: - mov r0, r4 - bl FUN_0203ab3c - cmp r0, #0 - beq _0203A264 - ldr r2, [r6, #0x10] - ldr r1, [r2, #4] - add r0, r1, #1 - str r0, [r2, #4] - ldr r0, [r6, #0x10] - add r0, r0, r1, lsl #1 - strh r4, [r0, #0x12] -_0203A264: - add r0, r4, #1 - lsl r0, r0, #0x10 - cmp r5, r0, asr #16 - asr r4, r0, #0x10 - bgt _0203A238 -_0203A278: - ldr r1, _0203A4E4 @ =0x0209C604 - add r0, sp, #8 - ldr r2, [r1, #4] - ldr r1, [r1] - str r2, [sp, #0xc] - str r1, [sp, #8] - bl FUN_020584f8 - bl FUN_0203af28 - ldr r0, _0203A4D4 @ =0x020AFE5C - ldrsh r0, [r0, #2] - bl FUN_0203aaf8 - ldr r1, _0203A4D4 @ =0x020AFE5C - ldr r2, [r1, #0x10] - str r0, [r2, #0x46c] - ldr r0, [r1, #4] - cmp r0, #0xc - addls pc, pc, r0, lsl #2 - b _0203A330 -_0203A2C0: @ jump table - b _0203A330 @ case 0 - b _0203A330 @ case 1 - b _0203A31C @ case 2 - b _0203A330 @ case 3 - b _0203A330 @ case 4 - b _0203A330 @ case 5 - b _0203A31C @ case 6 - b _0203A330 @ case 7 - b _0203A330 @ case 8 - b _0203A2F4 @ case 9 - b _0203A308 @ case 10 - b _0203A31C @ case 11 - b _0203A31C @ case 12 -_0203A2F4: - ldr r0, [r1, #0x10] - ldr r1, _0203A4E8 @ =0x000002B7 - add r0, r0, #0x400 - strh r1, [r0, #0x74] - b _0203A344 -_0203A308: - ldr r0, [r1, #0x10] - mov r1, #0x2b8 - add r0, r0, #0x400 - strh r1, [r0, #0x74] - b _0203A344 -_0203A31C: - ldr r0, [r1, #0x10] - ldr r1, _0203A4EC @ =0x00000302 - add r0, r0, #0x400 - strh r1, [r0, #0x74] - b _0203A344 -_0203A330: - ldr r0, _0203A4D4 @ =0x020AFE5C - ldr r1, _0203A4F0 @ =0x00000303 - ldr r0, [r0, #0x10] - add r0, r0, #0x400 - strh r1, [r0, #0x74] -_0203A344: - ldr r2, _0203A4D4 @ =0x020AFE5C - mov r3, #0x10 - ldr r0, [r2, #0x10] - mov r1, #0xd - str r3, [r0, #0x478] - ldr r0, [r2, #0x10] - str r1, [r0, #0x470] - ldr r0, [r2, #4] - sub r0, r0, #6 - cmp r0, #6 - addls pc, pc, r0, lsl #2 - b _0203A420 -_0203A374: @ jump table - b _0203A3E0 @ case 0 - b _0203A420 @ case 1 - b _0203A420 @ case 2 - b _0203A390 @ case 3 - b _0203A3E0 @ case 4 - b _0203A3E0 @ case 5 - b _0203A3E0 @ case 6 -_0203A390: - ldr r3, [r2, #0x10] - ldr r0, _0203A4F4 @ =0x0209C668 - add r1, r3, #0x72 - add r1, r1, #0x600 - str r1, [r3, #0x4cc] - ldr r3, [r2, #0x10] - ldr r1, _0203A4F8 @ =0x00401E33 - add r2, r3, #0x500 - ldrsh r4, [r2, #0xd4] - add r2, r3, #0x6c - ldr r3, _0203A4FC @ =0x0203A75C - str r4, [sp] - mov r4, #6 - add r2, r2, #0x400 - str r4, [sp, #4] - bl FUN_02030f44 - ldr r1, _0203A4D4 @ =0x020AFE5C - ldr r1, [r1, #0x10] - strb r0, [r1, #0x468] - b _0203A4BC -_0203A3E0: - ldr r2, [r2, #0x10] - ldr r0, _0203A4F4 @ =0x0209C668 - add r1, r2, #0x500 - ldrsh r4, [r1, #0xd4] - add r2, r2, #0x6c - ldr r1, _0203A500 @ =0x00401C33 - ldr r3, _0203A4FC @ =0x0203A75C - str r4, [sp] - mov r4, #6 - add r2, r2, #0x400 - str r4, [sp, #4] - bl FUN_02030f44 - ldr r1, _0203A4D4 @ =0x020AFE5C - ldr r1, [r1, #0x10] - strb r0, [r1, #0x468] - b _0203A4BC -_0203A420: - ldr r1, _0203A4D4 @ =0x020AFE5C - ldr r3, _0203A504 @ =0x0203B91C - ldr r0, [r1, #0x10] - ldr r2, _0203A508 @ =0x0203BA24 - str r3, [r0, #0x4e0] - ldr r0, [r1, #0x10] - mov r3, #0 - str r2, [r0, #0x4e8] - ldr r2, [r1, #0x10] - ldr r0, _0203A4F4 @ =0x0209C668 - str r3, [r2, #0x508] - ldr r3, [r1, #0x10] - ldr r1, _0203A50C @ =0x00447C33 - add r2, r3, #0x500 - ldrsh r4, [r2, #0xd4] - add r2, r3, #0x6c - ldr r3, _0203A4FC @ =0x0203A75C - str r4, [sp] - mov r4, #8 - add r2, r2, #0x400 - str r4, [sp, #4] - bl FUN_02030f44 - ldr r2, _0203A4D4 @ =0x020AFE5C - ldr r1, _0203A510 @ =0x0203B884 - ldr r3, [r2, #0x10] - strb r0, [r3, #0x468] - ldr r0, [r2, #0x10] - add r0, r0, #0x400 - ldrsb r0, [r0, #0x68] - bl FUN_02031888 - ldr r0, _0203A514 @ =0x0209C638 - ldr r1, _0203A518 @ =FUN_0203c784 - bl FUN_0202f8c4 - ldr r1, _0203A4D4 @ =0x020AFE5C - mov r2, #1 - ldr r3, [r1, #0x10] - strb r0, [r3, #0x469] - ldr r0, [r1, #0x10] - strb r2, [r0, #0x46a] -_0203A4BC: - ldr r0, _0203A4D4 @ =0x020AFE5C - ldr r0, [r0, #0x10] - add r0, r0, #0x400 - ldrsb r0, [r0, #0x68] -_0203A4CC: - add sp, sp, #0x4c - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0203A4D4: .4byte 0x020AFE5C -_0203A4D8: .4byte 0x0209C764 -_0203A4DC: .4byte 0x0000022B -_0203A4E0: .4byte 0x020B0A48 -_0203A4E4: .4byte 0x0209C604 -_0203A4E8: .4byte 0x000002B7 -_0203A4EC: .4byte 0x00000302 -_0203A4F0: .4byte 0x00000303 -_0203A4F4: .4byte 0x0209C668 -_0203A4F8: .4byte 0x00401E33 -_0203A4FC: .4byte 0x0203A75C -_0203A500: .4byte 0x00401C33 -_0203A504: .4byte 0x0203B91C -_0203A508: .4byte 0x0203BA24 -_0203A50C: .4byte 0x00447C33 -_0203A510: .4byte 0x0203B884 -_0203A514: .4byte 0x0209C638 -_0203A518: .4byte FUN_0203c784 - arm_func_end FUN_02039C64 - - arm_func_start FUN_0203a51c -FUN_0203a51c: @ 0x0203A51C - push {r3, lr} - ldr r0, _0203A5A4 @ =0x020AFE5C - ldr r0, [r0, #0x10] - cmp r0, #0 - popeq {r3, pc} - bl FUN_0203aa20 - ldr r1, _0203A5A4 @ =0x020AFE5C - strh r0, [r1] - bl FUN_0203aab0 - ldr r1, _0203A5A4 @ =0x020AFE5C - strh r0, [r1, #2] - ldr r0, [r1, #0x10] - add r0, r0, #0x400 - ldrsb r0, [r0, #0x68] - bl FUN_02031198 - ldr r0, _0203A5A4 @ =0x020AFE5C - mvn r1, #1 - ldr r0, [r0, #0x10] - add r0, r0, #0x400 - ldrsb r0, [r0, #0x69] - cmp r0, r1 - beq _0203A588 - bl FUN_0202f8fc - ldr r0, _0203A5A4 @ =0x020AFE5C - mvn r1, #1 - ldr r0, [r0, #0x10] - strb r1, [r0, #0x469] -_0203A588: - ldr r0, _0203A5A4 @ =0x020AFE5C - ldr r0, [r0, #0x10] - bl MemFree - ldr r0, _0203A5A4 @ =0x020AFE5C - mov r1, #0 - str r1, [r0, #0x10] - pop {r3, pc} - .align 2, 0 -_0203A5A4: .4byte 0x020AFE5C - arm_func_end FUN_0203a51c - - arm_func_start FUN_0203a5a8 -FUN_0203a5a8: @ 0x0203A5A8 - push {r3, lr} - ldr r0, _0203A5EC @ =0x020AFE5C - ldr r0, [r0, #0x10] - cmp r0, #0 - moveq r0, #0 - popeq {r3, pc} - bl FUN_0203aa20 - ldr r1, _0203A5EC @ =0x020AFE5C - strh r0, [r1] - bl FUN_0203aab0 - ldr r1, _0203A5EC @ =0x020AFE5C - strh r0, [r1, #2] - ldr r0, [r1, #0x10] - add r0, r0, #0x400 - ldrsb r0, [r0, #0x68] - bl FUN_020311b4 - pop {r3, pc} - .align 2, 0 -_0203A5EC: .4byte 0x020AFE5C - arm_func_end FUN_0203a5a8 - - arm_func_start FUN_0203a5f0 -FUN_0203a5f0: @ 0x0203A5F0 - push {r3, lr} - ldr r0, _0203A614 @ =0x020AFE5C - ldr r0, [r0, #0x10] - cmp r0, #0 - popeq {r3, pc} - add r0, r0, #0x400 - ldrsb r0, [r0, #0x68] - bl FUN_020318d0 - pop {r3, pc} - .align 2, 0 -_0203A614: .4byte 0x020AFE5C - arm_func_end FUN_0203a5f0 - - arm_func_start FUN_0203a618 -FUN_0203a618: @ 0x0203A618 - push {r3, lr} - ldr r0, _0203A634 @ =0x020AFE5C - ldr r0, [r0, #0x10] - cmp r0, #0 - popeq {r3, pc} - bl FUN_0203a658 - pop {r3, pc} - .align 2, 0 -_0203A634: .4byte 0x020AFE5C - arm_func_end FUN_0203a618 - - arm_func_start FUN_0203a638 -FUN_0203a638: @ 0x0203A638 - push {r3, lr} - ldr r0, _0203A654 @ =0x020AFE5C - ldr r0, [r0, #0x10] - cmp r0, #0 - popeq {r3, pc} - bl FUN_0203a6bc - pop {r3, pc} - .align 2, 0 -_0203A654: .4byte 0x020AFE5C - arm_func_end FUN_0203a638 - - arm_func_start FUN_0203a658 -FUN_0203a658: @ 0x0203A658 - push {r3, lr} - bl FUN_0203aa20 - ldr r1, _0203A6B8 @ =0x020AFE5C - strh r0, [r1] - bl FUN_0203aab0 - ldr r1, _0203A6B8 @ =0x020AFE5C - strh r0, [r1, #2] - ldr r0, [r1, #0x10] - add r0, r0, #0x400 - ldrsb r0, [r0, #0x68] - bl FUN_0202812c - ldr r0, _0203A6B8 @ =0x020AFE5C - mvn r1, #1 - ldr r0, [r0, #0x10] - add r0, r0, #0x400 - ldrsb r0, [r0, #0x69] - cmp r0, r1 - popeq {r3, pc} - bl FUN_0202f8fc - ldr r0, _0203A6B8 @ =0x020AFE5C - mvn r1, #1 - ldr r0, [r0, #0x10] - strb r1, [r0, #0x469] - pop {r3, pc} - .align 2, 0 -_0203A6B8: .4byte 0x020AFE5C - arm_func_end FUN_0203a658 - - arm_func_start FUN_0203a6bc -FUN_0203a6bc: @ 0x0203A6BC - push {r3, lr} - ldr r0, _0203A750 @ =0x020AFE5C - ldr r0, [r0, #0x10] - add r0, r0, #0x400 - ldrsb r0, [r0, #0x68] - bl FUN_02028354 - cmp r0, #3 - bne _0203A6F0 - ldr r0, _0203A750 @ =0x020AFE5C - ldr r0, [r0, #0x10] - add r0, r0, #0x400 - ldrsb r0, [r0, #0x68] - bl FUN_0202810c -_0203A6F0: - ldr r0, _0203A750 @ =0x020AFE5C - ldr r0, [r0, #0x10] - add r0, r0, #0x400 - ldrsb r0, [r0, #0x68] - bl FUN_0203111c - ldr r0, _0203A750 @ =0x020AFE5C - ldr r1, [r0, #0x10] - ldrb r0, [r1, #0x46a] - cmp r0, #0 - popeq {r3, pc} - add r0, r1, #0x400 - ldrsb r0, [r0, #0x69] - mvn r1, #1 - cmp r0, r1 - bne _0203A748 - ldr r0, _0203A754 @ =0x0209C638 - ldr r1, _0203A758 @ =FUN_0203c784 - bl FUN_0202f8c4 - ldr r1, _0203A750 @ =0x020AFE5C - ldr r1, [r1, #0x10] - strb r0, [r1, #0x469] - pop {r3, pc} -_0203A748: - bl FUN_0202f9b8 - pop {r3, pc} - .align 2, 0 -_0203A750: .4byte 0x020AFE5C -_0203A754: .4byte 0x0209C638 -_0203A758: .4byte FUN_0203c784 - arm_func_end FUN_0203a6bc -_0203A75C: - .byte 0xF8, 0x43, 0x2D, 0xE9 - .byte 0x28, 0xD0, 0x4D, 0xE2, 0xF4, 0x31, 0x9F, 0xE5, 0xF4, 0x21, 0x9F, 0xE5, 0x10, 0x50, 0x93, 0xE5 - .byte 0x01, 0x80, 0xA0, 0xE1, 0x88, 0x10, 0x85, 0xE0, 0xF2, 0x61, 0xD1, 0xE1, 0x00, 0x40, 0x92, 0xE5 - .byte 0x08, 0x10, 0x85, 0xE0, 0x00, 0x20, 0xA0, 0xE3, 0x72, 0x26, 0xC1, 0xE5, 0x44, 0x70, 0xA0, 0xE3 - .byte 0x04, 0x10, 0x93, 0xE5, 0x86, 0x47, 0x04, 0xE1, 0x00, 0x90, 0xA0, 0xE1, 0x09, 0x00, 0x51, 0xE3 - .byte 0x2D, 0x00, 0x00, 0x1A, 0x10, 0x00, 0x93, 0xE5, 0x06, 0x0C, 0x80, 0xE2, 0xF0, 0x07, 0xD0, 0xE1 - .byte 0xD1, 0x48, 0xFF, 0xEB, 0x00, 0x50, 0xA0, 0xE3, 0x05, 0x30, 0xA0, 0xE1, 0x01, 0xC0, 0xA0, 0xE3 - .byte 0x06, 0x20, 0xA0, 0xE3, 0x0C, 0x00, 0x00, 0xEA, 0x85, 0x42, 0x0E, 0xE1, 0x22, 0x10, 0xDE, 0xE5 - .byte 0x01, 0x00, 0x11, 0xE3, 0x0C, 0x10, 0xA0, 0x11, 0x03, 0x10, 0xA0, 0x01, 0xFF, 0x00, 0x11, 0xE3 - .byte 0x02, 0x00, 0x00, 0x0A, 0xB4, 0x12, 0xDE, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x04, 0x00, 0x00, 0x0A - .byte 0x01, 0x10, 0x85, 0xE2, 0x01, 0x18, 0xA0, 0xE1, 0x41, 0x58, 0xA0, 0xE1, 0x04, 0x00, 0x55, 0xE3 - .byte 0xF0, 0xFF, 0xFF, 0xBA, 0xF4, 0x10, 0xD4, 0xE1, 0x43, 0x65, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x0B, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x55, 0xE3, 0x09, 0x00, 0x00, 0xBA, 0x06, 0x00, 0xA0, 0xE1 - .byte 0xFA, 0x6E, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x2D, 0x00, 0x00, 0x0A, 0x06, 0x00, 0xA0, 0xE1 - .byte 0x1E, 0x6F, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x59, 0x70, 0xA0, 0x13, 0x46, 0x70, 0xA0, 0x03 - .byte 0x27, 0x00, 0x00, 0xEA, 0x14, 0x01, 0x9F, 0xE5, 0x03, 0x10, 0xA0, 0xE3, 0x10, 0x00, 0x90, 0xE5 - .byte 0x08, 0x00, 0x80, 0xE0, 0x72, 0x16, 0xC0, 0xE5, 0x21, 0x00, 0x00, 0xEA, 0x06, 0x00, 0xA0, 0xE1 - .byte 0xEA, 0x6E, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x06, 0x00, 0xA0, 0xE1 - .byte 0x0E, 0x6F, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x59, 0x70, 0xA0, 0x13, 0x46, 0x70, 0xA0, 0x03 - .byte 0x17, 0x00, 0x00, 0xEA, 0xD4, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x0C, 0x00, 0x50, 0xE3 - .byte 0x00, 0xF1, 0x8F, 0x90, 0x0D, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x00, 0xEA - .byte 0x0A, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA - .byte 0x05, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA - .byte 0x01, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x00, 0xEA, 0xFF, 0xFF, 0xFF, 0xEA, 0x04, 0x00, 0x00, 0xEA - .byte 0x06, 0x00, 0xA0, 0xE1, 0xA1, 0x71, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x44, 0x70, 0xA0, 0x13 - .byte 0x57, 0x70, 0xA0, 0x03, 0x14, 0x00, 0x8D, 0xE2, 0x3A, 0x10, 0x84, 0xE2, 0x0A, 0x20, 0xA0, 0xE3 - .byte 0x3F, 0xAA, 0xFF, 0xEB, 0xF4, 0x00, 0xD4, 0xE1, 0x90, 0x5F, 0x00, 0xEB, 0x00, 0x10, 0xA0, 0xE1 - .byte 0x04, 0x00, 0x8D, 0xE2, 0x03, 0x20, 0xA0, 0xE3, 0x87, 0xA3, 0xFF, 0xEB, 0x4C, 0x00, 0x9F, 0xE5 - .byte 0x04, 0x20, 0x8D, 0xE2, 0x10, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x80, 0xE0, 0x72, 0x06, 0xD0, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x1A, 0x38, 0x10, 0x9F, 0xE5, 0x14, 0x40, 0x8D, 0xE2 - .byte 0x09, 0x00, 0xA0, 0xE1, 0x07, 0x30, 0xA0, 0xE1, 0x00, 0x40, 0x8D, 0xE5, 0x0B, 0x00, 0x00, 0xEB - .byte 0x03, 0x00, 0x00, 0xEA, 0x20, 0x10, 0x9F, 0xE5, 0x14, 0x30, 0x8D, 0xE2, 0x09, 0x00, 0xA0, 0xE1 - .byte 0x06, 0x00, 0x00, 0xEB, 0x09, 0x00, 0xA0, 0xE1, 0x28, 0xD0, 0x8D, 0xE2, 0xF8, 0x83, 0xBD, 0xE8 - .byte 0x5C, 0xFE, 0x0A, 0x02, 0x48, 0x0A, 0x0B, 0x02, 0x98, 0xC7, 0x09, 0x02, 0xB8, 0xC7, 0x09, 0x02 - - arm_func_start SprintfStatic -SprintfStatic: @ 0x0203A970 - push {r0, r1, r2, r3} - push {r3, lr} - add r2, sp, #0xc - bic r2, r2, #3 - ldr r1, [sp, #0xc] - add r2, r2, #4 - bl Vsprintf - pop {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end SprintfStatic -_0203A998: - .byte 0x14, 0x00, 0x9F, 0xE5, 0x10, 0x00, 0x90, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0xFF, 0x00, 0x00, 0xE2 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x5C, 0xFE, 0x0A, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x24, 0x00, 0x9F, 0xE5 - .byte 0x10, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x0B, 0x80, 0x12, 0xD8, 0x06, 0xD0, 0x11 - .byte 0x01, 0x10, 0xE0, 0x13, 0x01, 0x00, 0x50, 0x11, 0x00, 0x00, 0xA0, 0x03, 0x08, 0x80, 0xBD, 0x08 - .byte 0xF3, 0xD9, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x5C, 0xFE, 0x0A, 0x02 - - arm_func_start FUN_0203a9ec -FUN_0203a9ec: @ 0x0203A9EC - push {r3, lr} - ldr r0, _0203AA1C @ =0x020AFE5C - ldr r0, [r0, #0x10] - cmp r0, #0 - addne r0, r0, #0x400 - ldrsbne r0, [r0, #0x68] - mvnne r1, #1 - cmpne r0, r1 - moveq r0, #0 - popeq {r3, pc} - bl FUN_020318b0 - pop {r3, pc} - .align 2, 0 -_0203AA1C: .4byte 0x020AFE5C - arm_func_end FUN_0203a9ec - - arm_func_start FUN_0203aa20 -FUN_0203aa20: @ 0x0203AA20 - push {r3, lr} - ldr r0, _0203AAAC @ =0x020AFE5C - ldr r0, [r0, #0x10] - cmp r0, #0 - addne r0, r0, #0x400 - ldrsbne r0, [r0, #0x68] - mvnne r1, #1 - cmpne r0, r1 - beq _0203AAA0 - bl FUN_020311b4 - cmp r0, #0 - beq _0203AA68 - ldr r0, _0203AAAC @ =0x020AFE5C - ldr r0, [r0, #0x10] - add r0, r0, #0x400 - ldrsb r0, [r0, #0x68] - bl FUN_020311d4 - b _0203AA7C -_0203AA68: - ldr r0, _0203AAAC @ =0x020AFE5C - ldr r0, [r0, #0x10] - add r0, r0, #0x400 - ldrsb r0, [r0, #0x68] - bl FUN_020311e8 -_0203AA7C: - lsl r0, r0, #0x10 - asr r1, r0, #0x10 - cmp r1, #0 - mvnlt r0, #0 - ldrge r0, _0203AAAC @ =0x020AFE5C - ldrge r0, [r0, #0x10] - addge r0, r0, r1, lsl #1 - ldrshge r0, [r0, #0x12] - pop {r3, pc} -_0203AAA0: - ldr r0, _0203AAAC @ =0x020AFE5C - ldrsh r0, [r0] - pop {r3, pc} - .align 2, 0 -_0203AAAC: .4byte 0x020AFE5C - arm_func_end FUN_0203aa20 - - arm_func_start FUN_0203aab0 -FUN_0203aab0: @ 0x0203AAB0 - push {r3, lr} - ldr r0, _0203AAF4 @ =0x020AFE5C - ldr r0, [r0, #0x10] - cmp r0, #0 - addne r0, r0, #0x400 - ldrsbne r0, [r0, #0x68] - mvnne r1, #1 - cmpne r0, r1 - ldreq r0, _0203AAF4 @ =0x020AFE5C - ldrsheq r0, [r0, #2] - popeq {r3, pc} - bl FUN_020311d4 - ldr r1, _0203AAF4 @ =0x020AFE5C - ldr r1, [r1, #0x10] - add r0, r1, r0, lsl #1 - ldrsh r0, [r0, #0x12] - pop {r3, pc} - .align 2, 0 -_0203AAF4: .4byte 0x020AFE5C - arm_func_end FUN_0203aab0 - - arm_func_start FUN_0203aaf8 -FUN_0203aaf8: @ 0x0203AAF8 - ldr r1, _0203AB38 @ =0x020AFE5C - mov r2, #0 - ldr r3, [r1, #0x10] - add r1, r3, #0x500 - ldrsh ip, [r1, #0xd4] - b _0203AB28 -_0203AB10: - add r1, r3, r2, lsl #1 - ldrsh r1, [r1, #0x12] - cmp r0, r1 - moveq r0, r2 + popeq {r3, lr} + addeq sp, sp, #0x10 bxeq lr - add r2, r2, #1 -_0203AB28: - cmp r2, ip - blt _0203AB10 - mvn r0, #0 - bx lr - .align 2, 0 -_0203AB38: .4byte 0x020AFE5C - arm_func_end FUN_0203aaf8 - - arm_func_start FUN_0203ab3c -FUN_0203ab3c: @ 0x0203AB3C - push {r3, r4, r5, lr} - ldr r1, _0203AD60 @ =0x020B0A48 - mov r5, r0 - mov r0, #0x44 - smulbb r2, r5, r0 - ldr r1, [r1] - ldrb r0, [r1, r2] - add r4, r1, r2 - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - moveq r0, #0 - popeq {r3, r4, r5, pc} - ldr r0, _0203AD64 @ =0x020AFE5C - ldr r1, [r0, #0x10] - ldrb r0, [r1, #0xc] - cmp r0, #0 - beq _0203AB98 - ldrsh r0, [r4, #4] - cmp r0, #0x214 - moveq r0, #0 - popeq {r3, r4, r5, pc} -_0203AB98: - ldrb r0, [r1, #0x10] - cmp r0, #0 - beq _0203ABCC - ldrsh r0, [r4, #4] - bl FUN_02054f18 - cmp r0, #0 - bne _0203ABC4 - add r0, r4, #0x22 - bl IsMovesetValidInTimeDarkness - cmp r0, #0 - bne _0203ABCC -_0203ABC4: - mov r0, #0 - pop {r3, r4, r5, pc} -_0203ABCC: - ldr r0, _0203AD64 @ =0x020AFE5C - ldr r1, [r0, #0x10] - ldrb r0, [r1, #0xd] - cmp r0, #0 - beq _0203AD10 - ldrsh r0, [r4, #4] - bl IsShaymin - cmp r0, #0 - movne r0, #0 - popne {r3, r4, r5, pc} - ldr r0, _0203AD64 @ =0x020AFE5C - ldr r0, [r0, #0x10] - ldrb r0, [r0, #0xb] - cmp r0, #0 - beq _0203AC20 - mov r0, r5 mov r1, #0 - bl FUN_02056460 - cmp r0, #0 - movne r0, #0 - popne {r3, r4, r5, pc} -_0203AC20: - ldr r0, _0203AD64 @ =0x020AFE5C - ldr r0, [r0, #0x10] - ldrb r0, [r0, #0xb] - cmp r0, #0 - beq _0203AC4C - mov r0, r5 - mov r1, #1 - bl FUN_02056460 - cmp r0, #0 - movne r0, #0 - popne {r3, r4, r5, pc} -_0203AC4C: - ldr r0, _0203AD64 @ =0x020AFE5C - ldr r1, [r0, #0x10] - ldrb r0, [r1, #0xf] - cmp r0, #0 - ldrbne r0, [r1, #0xb] - cmpne r0, #0 - beq _0203AC80 - mov r0, r5 - mov r1, #2 - bl FUN_02056460 - cmp r0, #0 - movne r0, #0 - popne {r3, r4, r5, pc} -_0203AC80: - ldr r0, _0203AD64 @ =0x020AFE5C - ldr r0, [r0, #0x10] - ldrb r0, [r0, #8] - cmp r0, #0 - beq _0203ACAC - mov r0, r5 - mov r1, #0 - bl FUN_02056460 - cmp r0, #0 - moveq r0, #0 - popeq {r3, r4, r5, pc} -_0203ACAC: - ldr r0, _0203AD64 @ =0x020AFE5C - ldr r0, [r0, #0x10] - ldrb r0, [r0, #8] - cmp r0, #0 - beq _0203ACD8 - mov r0, r5 - mov r1, #1 - bl FUN_02056460 - cmp r0, #0 - moveq r0, #0 - popeq {r3, r4, r5, pc} -_0203ACD8: - ldr r0, _0203AD64 @ =0x020AFE5C - ldr r1, [r0, #0x10] - ldrb r0, [r1, #0xf] - cmp r0, #0 - ldrbne r0, [r1, #8] - cmpne r0, #0 - beq _0203AD58 - mov r0, r5 - mov r1, #2 - bl FUN_02056460 - cmp r0, #0 - bne _0203AD58 - mov r0, #0 - pop {r3, r4, r5, pc} -_0203AD10: - ldrb r0, [r1, #0xb] - cmp r0, #0 - beq _0203AD30 - mov r0, r5 - bl FUN_02056410 - cmp r0, #0 - movne r0, #0 - popne {r3, r4, r5, pc} -_0203AD30: - ldr r0, _0203AD64 @ =0x020AFE5C - ldr r0, [r0, #0x10] - ldrb r0, [r0, #8] - cmp r0, #0 - beq _0203AD58 - mov r0, r5 - bl FUN_02056410 - cmp r0, #0 - moveq r0, #0 - popeq {r3, r4, r5, pc} -_0203AD58: - mov r0, #1 - pop {r3, r4, r5, pc} - .align 2, 0 -_0203AD60: .4byte 0x020B0A48 -_0203AD64: .4byte 0x020AFE5C - arm_func_end FUN_0203ab3c - - arm_func_start FUN_0203ad68 -FUN_0203ad68: @ 0x0203AD68 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sl, r0 - sub sb, sl, #7 - mov r6, #0 - ldr r5, _0203AF04 @ =0x020B0A48 - mov r4, #0x44 - ldr fp, _0203AF08 @ =0x0000022B - b _0203AEF4 -_0203AD88: - ldr r1, [r5] - lsl r0, r6, #0x10 - mla r7, r6, r4, r1 - asr r0, r0, #0x10 - bl IsValidTeamMember - cmp r0, #0 - beq _0203AEF0 - cmp sl, #2 - bne _0203ADC4 - lsl r0, r6, #0x10 - asr r0, r0, #0x10 - bl FUN_02056410 - cmp r0, #0 - beq _0203AEF0 - b _0203AEE8 -_0203ADC4: - cmp sl, #3 - bne _0203ADE4 - lsl r0, r6, #0x10 - asr r0, r0, #0x10 - bl FUN_02056410 - cmp r0, #0 - bne _0203AEF0 - b _0203AEE8 -_0203ADE4: - cmp sl, #4 - bne _0203AE2C - cmp r6, #5 - blt _0203AEF0 - lsl r0, r6, #0x10 - asr r0, r0, #0x10 - bl FUN_02056410 - cmp r0, #0 - bne _0203AEF0 - lsl r0, r6, #0x10 - asr r0, r0, #0x10 - bl IsMainCharacter - cmp r0, #0 - bne _0203AEF0 - ldrsh r0, [r7, #4] - cmp r0, #0x214 - bne _0203AEE8 - b _0203AEF0 -_0203AE2C: - cmp sb, #1 - bhi _0203AEE8 - mov r8, #0 - bl FUN_0204e210 - cmp r0, #2 - bne _0203AE50 - bl FUN_0204e3c8 - cmp r0, #0 - movne r8, #1 -_0203AE50: - lsl r0, r6, #0x10 - asr r0, r0, #0x10 - mov r1, #0 - bl FUN_02056460 - cmp r0, #0 - bne _0203AEF0 - lsl r0, r6, #0x10 - asr r0, r0, #0x10 - mov r1, #1 - bl FUN_02056460 - cmp r0, #0 - bne _0203AEF0 - cmp r8, #0 - beq _0203AEA0 - lsl r0, r6, #0x10 - mov r1, #2 - asr r0, r0, #0x10 - bl FUN_02056460 - cmp r0, #0 - bne _0203AEF0 -_0203AEA0: - lsl r0, r6, #0x10 - asr r0, r0, #0x10 - bl IsMainCharacter - cmp r0, #0 - bne _0203AEF0 - ldrsh r0, [r7, #4] - cmp r0, #0x214 - beq _0203AEF0 - cmp sl, #8 - bne _0203AED8 - ldrsh r0, [r7, #4] - bl FUN_02054f18 - cmp r0, #0 - bne _0203AEF0 -_0203AED8: - ldrsh r0, [r7, #4] - bl IsShaymin - cmp r0, #0 - bne _0203AEF0 -_0203AEE8: - mov r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0203AEF0: - add r6, r6, #1 -_0203AEF4: - cmp r6, fp - blt _0203AD88 - mov r0, #1 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0203AF04: .4byte 0x020B0A48 -_0203AF08: .4byte 0x0000022B - arm_func_end FUN_0203ad68 - - arm_func_start FUN_0203af0c -FUN_0203af0c: @ 0x0203AF0C - ldr r0, _0203AF24 @ =0x020AFE5C - mvn r1, #0 - strh r1, [r0] - mov r1, #0 - strh r1, [r0, #2] - bx lr - .align 2, 0 -_0203AF24: .4byte 0x020AFE5C - arm_func_end FUN_0203af0c - - arm_func_start FUN_0203af28 -FUN_0203af28: @ 0x0203AF28 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr r1, _0203B738 @ =0x020AFE5C - ldr r0, [r1, #0x10] - ldr r2, [r0, #4] - add r0, r0, #0x500 - strh r2, [r0, #0xd4] - ldr r0, [r1, #8] - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _0203B29C -_0203AF50: @ jump table - b _0203B29C @ case 0 - b _0203AF64 @ case 1 - b _0203B050 @ case 2 - b _0203B114 @ case 3 - b _0203B1CC @ case 4 -_0203AF64: - ldr r0, _0203B73C @ =0x022AADF8 - ldrb r8, [r0] - mov r0, r8 - bl FUN_0203baec - cmp r0, #0 - mvneq r6, #0 - beq _0203B03C - ldr r0, _0203B73C @ =0x022AADF8 - mov r6, #0 - ldr r5, _0203B738 @ =0x020AFE5C - mov r1, #1 - mov sb, r6 - str r1, [r5, #8] - strb r8, [r0] - mov fp, r6 - mov sl, #0x44 - ldr r4, _0203B740 @ =0x020B0A48 - b _0203B02C -_0203AFAC: - add r0, r1, sb, lsl #1 - ldrsh r2, [r0, #0x12] - ldr r0, [r4] - mov r1, fp - smulbb r7, r2, sl - add r0, r0, r7 - ldrsh r0, [r0, #4] - bl GetType - cmp r8, r0 - beq _0203AFF0 - ldr r0, [r4] - mov r1, #1 - add r0, r0, r7 - ldrsh r0, [r0, #4] - bl GetType - cmp r8, r0 - bne _0203B020 -_0203AFF0: - ldr r0, [r5, #0x10] - add r2, r6, #1 - add r1, r0, r6, lsl #1 - add r3, r0, sb, lsl #1 - ldrsh r0, [r1, #0x12] - ldrsh r3, [r3, #0x12] - lsl r2, r2, #0x10 - asr r6, r2, #0x10 - strh r3, [r1, #0x12] - ldr r1, [r5, #0x10] - add r1, r1, sb, lsl #1 - strh r0, [r1, #0x12] -_0203B020: - add r0, sb, #1 - lsl r0, r0, #0x10 - asr sb, r0, #0x10 -_0203B02C: - ldr r1, [r5, #0x10] - ldr r0, [r1, #4] - cmp sb, r0 - blt _0203AFAC -_0203B03C: - ldr r0, _0203B738 @ =0x020AFE5C - ldr r0, [r0, #0x10] - add r0, r0, #0x500 - strh r6, [r0, #0xd4] - b _0203B29C -_0203B050: - ldr r0, _0203B73C @ =0x022AADF8 - ldrsh r6, [r0] - mov r0, r6 - bl FUN_0203bb80 - cmp r0, #0 - mvneq r5, #0 - beq _0203B100 - ldr r0, _0203B73C @ =0x022AADF8 - mov r5, #0 - ldr sb, _0203B738 @ =0x020AFE5C - mov r1, #2 - mov r4, r5 - str r1, [sb, #8] - strh r6, [r0] - ldr r8, _0203B740 @ =0x020B0A48 - mov r7, #0x44 - b _0203B0F0 -_0203B094: - add r0, r1, r4, lsl #1 - ldrsh r0, [r0, #0x12] - ldr r1, [r8] - smlabb r0, r0, r7, r1 - ldrsh r0, [r0, #4] - bl GetDexNumber - cmp r6, r0 - bne _0203B0E4 - ldr r0, [sb, #0x10] - add r1, r5, #1 - add r3, r0, r5, lsl #1 - add r2, r0, r4, lsl #1 - ldrsh r0, [r3, #0x12] - ldrsh r2, [r2, #0x12] - lsl r1, r1, #0x10 - asr r5, r1, #0x10 - strh r2, [r3, #0x12] - ldr r1, [sb, #0x10] - add r1, r1, r4, lsl #1 - strh r0, [r1, #0x12] -_0203B0E4: - add r0, r4, #1 - lsl r0, r0, #0x10 - asr r4, r0, #0x10 -_0203B0F0: - ldr r1, [sb, #0x10] - ldr r0, [r1, #4] - cmp r4, r0 - blt _0203B094 -_0203B100: - ldr r0, _0203B738 @ =0x020AFE5C - ldr r0, [r0, #0x10] - add r0, r0, #0x500 - strh r5, [r0, #0xd4] - b _0203B29C -_0203B114: - ldr r0, _0203B73C @ =0x022AADF8 - ldrb r4, [r0] - mov r0, r4 - bl FUN_0203bbec - cmp r0, #0 - mvneq r2, #0 - beq _0203B1B8 - ldr r0, _0203B73C @ =0x022AADF8 - mov r2, #0 - ldr r6, _0203B738 @ =0x020AFE5C - mov r3, #3 - str r3, [r6, #8] - mov r1, r2 - strb r4, [r0] - ldr r5, _0203B740 @ =0x020B0A48 - mov r3, #0x44 - b _0203B1A8 -_0203B158: - add r0, r7, r1, lsl #1 - ldrsh r0, [r0, #0x12] - ldr r7, [r5] - smlabb r7, r0, r3, r7 - ldrb r7, [r7, #0x3a] - cmp r4, r7 - bne _0203B19C - ldr r8, [r6, #0x10] - add r7, r2, #1 - add sb, r8, r2, lsl #1 - ldrsh r8, [sb, #0x12] - lsl r2, r7, #0x10 - asr r2, r2, #0x10 - strh r0, [sb, #0x12] - ldr r0, [r6, #0x10] - add r0, r0, r1, lsl #1 - strh r8, [r0, #0x12] -_0203B19C: - add r0, r1, #1 - lsl r0, r0, #0x10 - asr r1, r0, #0x10 -_0203B1A8: - ldr r7, [r6, #0x10] - ldr r0, [r7, #4] - cmp r1, r0 - blt _0203B158 -_0203B1B8: - ldr r0, _0203B738 @ =0x020AFE5C - ldr r0, [r0, #0x10] - add r0, r0, #0x500 - strh r2, [r0, #0xd4] - b _0203B29C -_0203B1CC: - ldr r0, _0203B73C @ =0x022AADF8 - ldrh sb, [r0] - mov r0, sb - bl FUN_0203bc50 - cmp r0, #0 - mvneq r8, #0 - beq _0203B28C - ldr r0, _0203B73C @ =0x022AADF8 - mov r8, #0 - ldr r6, _0203B738 @ =0x020AFE5C - mov r1, #4 - mov r7, r8 - str r1, [r6, #8] - strh sb, [r0] - add sl, sp, #0 - ldr r5, _0203B740 @ =0x020B0A48 - mov r4, #0x44 - b _0203B27C -_0203B214: - add r0, r1, r7, lsl #1 - ldrsh r0, [r0, #0x12] - ldr r1, [r5] - smlabb r0, r0, r4, r1 - ldrsh r0, [r0, #4] - bl GetNameString - str r0, [sp] - mov r0, sl - bl FUN_0202065c - cmp sb, r0 - bne _0203B270 - ldr r0, [r6, #0x10] - add r2, r8, #1 - add r1, r0, r8, lsl #1 - add r3, r0, r7, lsl #1 - ldrsh r0, [r1, #0x12] - ldrsh r3, [r3, #0x12] - lsl r2, r2, #0x10 - asr r8, r2, #0x10 - strh r3, [r1, #0x12] - ldr r1, [r6, #0x10] - add r1, r1, r7, lsl #1 - strh r0, [r1, #0x12] -_0203B270: - add r0, r7, #1 - lsl r0, r0, #0x10 - asr r7, r0, #0x10 -_0203B27C: - ldr r1, [r6, #0x10] - ldr r0, [r1, #4] - cmp r7, r0 - blt _0203B214 -_0203B28C: - ldr r0, _0203B738 @ =0x020AFE5C - ldr r0, [r0, #0x10] - add r0, r0, #0x500 - strh r8, [r0, #0xd4] -_0203B29C: - ldr r0, _0203B738 @ =0x020AFE5C - mov r8, #0 - ldr r2, [r0, #0x10] - add r0, r2, #0x500 - ldrsh r1, [r0, #0xd4] - cmp r1, #0 - ldrle r1, [r2, #4] - strhle r1, [r0, #0xd4] - mov r1, r8 -_0203B2C0: - ldr r0, _0203B740 @ =0x020B0A48 - lsl r3, r1, #1 - ldr r0, [r0] - mvn r2, #0 - add r0, r0, #0x9000 - ldr r0, [r0, #0x870] - ldrsh r0, [r0, r3] - cmp r0, r2 - beq _0203B35C - ldr r2, _0203B738 @ =0x020AFE5C - mov r5, #0 - ldr r4, [r2, #0x10] - add r2, r4, #0x500 - ldrsh r3, [r2, #0xd4] - b _0203B354 -_0203B2FC: - add r2, r4, r5, lsl #1 - ldrsh r2, [r2, #0x12] - cmp r0, r2 - bne _0203B350 - sub r5, r5, #1 - ldr r2, _0203B738 @ =0x020AFE5C - b _0203B32C -_0203B318: - ldr r3, [r2, #0x10] - add r4, r3, r5, lsl #1 - ldrsh r3, [r4, #0x12] - sub r5, r5, #1 - strh r3, [r4, #0x14] -_0203B32C: - cmp r5, r8 - bge _0203B318 - ldr r2, _0203B738 @ =0x020AFE5C - lsl r3, r8, #1 - ldr r2, [r2, #0x10] - add r8, r8, #1 - add r2, r2, r3 - strh r0, [r2, #0x12] - b _0203B35C -_0203B350: - add r5, r5, #1 -_0203B354: - cmp r5, r3 - blt _0203B2FC -_0203B35C: - add r1, r1, #1 - cmp r1, #4 - blt _0203B2C0 - bl FUN_020568a4 - bl FUN_0203b7ac - cmp r0, r8 - addge r8, r8, #1 - bl GetMainCharacter3MemberIdx - bl FUN_0203b7ac - cmp r0, r8 - addge r8, r8, #1 - bl GetMainCharacter2MemberIdx - bl FUN_0203b7ac - cmp r0, r8 - addge r8, r8, #1 - bl GetMainCharacter1MemberIdx - bl FUN_0203b7ac - cmp r0, r8 - ldr r0, _0203B738 @ =0x020AFE5C - addge r8, r8, #1 - ldr r1, [r0, #0xc] - cmp r1, #4 - addls pc, pc, r1, lsl #2 - b _0203B714 -_0203B3BC: @ jump table - b _0203B714 @ case 0 - b _0203B578 @ case 1 - b _0203B648 @ case 2 - b _0203B3D0 @ case 3 - b _0203B4A8 @ case 4 -_0203B3D0: - ldr r0, [r0, #0x10] - add r0, r0, #0x500 - ldrsh sb, [r0, #0xd4] - cmp r8, sb - bge _0203B714 - lsl r0, r8, #0x10 - asr sl, r0, #0x10 - b _0203B49C -_0203B3F0: - ldr r0, _0203B738 @ =0x020AFE5C - ldr r1, _0203B740 @ =0x020B0A48 - ldr r0, [r0, #0x10] - ldr r3, [r1] - add r0, r0, sl, lsl #1 - ldrsh r2, [r0, #0x12] - mov r0, #0x44 - mov r1, #0 - smlabb r0, r2, r0, r3 - ldrsh r0, [r0, #4] - bl FUN_01FF950C - lsl r1, r8, #0x10 - mov r6, r0 - asr r7, r1, #0x10 - ldr r5, _0203B740 @ =0x020B0A48 - ldr r4, _0203B738 @ =0x020AFE5C - mov fp, #0x44 - b _0203B46C -_0203B438: - ldr r0, [r4, #0x10] - ldr r2, [r5] - add r0, r0, r7, lsl #1 - ldrsh r0, [r0, #0x12] - mov r1, #0 - smlabb r0, r0, fp, r2 - ldrsh r0, [r0, #4] - bl FUN_01FF950C - cmp r6, r0 - blt _0203B474 - add r0, r7, #1 - lsl r0, r0, #0x10 - asr r7, r0, #0x10 -_0203B46C: - cmp r7, sl - blt _0203B438 -_0203B474: - ldr r0, _0203B738 @ =0x020AFE5C - mov r1, r7 - ldr r0, [r0, #0x10] - mov r2, sl - add r0, r0, sl, lsl #1 - ldrsh r0, [r0, #0x12] - bl FUN_0203b83c - add r0, sl, #1 - lsl r0, r0, #0x10 - asr sl, r0, #0x10 -_0203B49C: - cmp sl, sb - blt _0203B3F0 - b _0203B714 -_0203B4A8: - ldr r0, [r0, #0x10] - add r0, r0, #0x500 - ldrsh r7, [r0, #0xd4] - cmp r8, r7 - bge _0203B714 - lsl r0, r8, #0x10 - asr sb, r0, #0x10 - b _0203B56C -_0203B4C8: - ldr r4, _0203B738 @ =0x020AFE5C - lsl r0, r8, #0x10 - ldr r1, [r4, #0x10] - asr r5, r0, #0x10 - add r0, r1, sb, lsl #1 - ldrsh r6, [r0, #0x12] - b _0203B50C -_0203B4E4: - ldr r1, [r4, #0x10] - mov r0, r6 - add r1, r1, r5, lsl #1 - ldrsh r1, [r1, #0x12] - bl FUN_02052ff8 - cmp r0, #0 - bne _0203B514 - add r0, r5, #1 - lsl r0, r0, #0x10 - asr r5, r0, #0x10 -_0203B50C: - cmp r5, sb - blt _0203B4E4 -_0203B514: - ldr r2, _0203B738 @ =0x020AFE5C - mov r6, sb - ldr r0, [r2, #0x10] - add r0, r0, sb, lsl #1 - ldrsh r0, [r0, #0x12] - b _0203B548 -_0203B52C: - ldr r3, [r2, #0x10] - sub r1, r6, #1 - add r4, r3, r6, lsl #1 - ldrsh r3, [r4, #0x10] - lsl r1, r1, #0x10 - asr r6, r1, #0x10 - strh r3, [r4, #0x12] -_0203B548: - cmp r6, r5 - bgt _0203B52C - ldr r1, _0203B738 @ =0x020AFE5C - add r2, sb, #1 - ldr r3, [r1, #0x10] - lsl r1, r2, #0x10 - add r2, r3, r5, lsl #1 - strh r0, [r2, #0x12] - asr sb, r1, #0x10 -_0203B56C: - cmp sb, r7 - blt _0203B4C8 - b _0203B714 -_0203B578: - ldr r0, [r0, #0x10] - add r0, r0, #0x500 - ldrsh sb, [r0, #0xd4] - cmp r8, sb - bge _0203B714 - lsl r0, r8, #0x10 - asr sl, r0, #0x10 - b _0203B63C -_0203B598: - ldr r0, _0203B738 @ =0x020AFE5C - ldr r1, _0203B740 @ =0x020B0A48 - ldr r0, [r0, #0x10] - ldr r2, [r1] - add r0, r0, sl, lsl #1 - ldrsh r1, [r0, #0x12] - mov r0, #0x44 - smlabb r0, r1, r0, r2 - ldrsh r0, [r0, #4] - bl FemaleToMaleForm - lsl r1, r8, #0x10 - mov r7, r0 - asr r6, r1, #0x10 - ldr r5, _0203B740 @ =0x020B0A48 - ldr r4, _0203B738 @ =0x020AFE5C - mov fp, #0x44 - b _0203B60C -_0203B5DC: - ldr r0, [r4, #0x10] - ldr r1, [r5] - add r0, r0, r6, lsl #1 - ldrsh r0, [r0, #0x12] - smlabb r0, r0, fp, r1 - ldrsh r0, [r0, #4] - bl FemaleToMaleForm - cmp r7, r0 - blt _0203B614 - add r0, r6, #1 - lsl r0, r0, #0x10 - asr r6, r0, #0x10 -_0203B60C: - cmp r6, sl - blt _0203B5DC -_0203B614: - ldr r0, _0203B738 @ =0x020AFE5C - mov r1, r6 - ldr r0, [r0, #0x10] - mov r2, sl - add r0, r0, sl, lsl #1 - ldrsh r0, [r0, #0x12] - bl FUN_0203b83c - add r0, sl, #1 - lsl r0, r0, #0x10 - asr sl, r0, #0x10 -_0203B63C: - cmp sl, sb - blt _0203B598 - b _0203B714 -_0203B648: - ldr r0, [r0, #0x10] - add r0, r0, #0x500 - ldrsh sb, [r0, #0xd4] - cmp r8, sb - bge _0203B714 - lsl r0, r8, #0x10 - asr sl, r0, #0x10 - b _0203B70C -_0203B668: - ldr r0, _0203B738 @ =0x020AFE5C - ldr r1, _0203B740 @ =0x020B0A48 - ldr r0, [r0, #0x10] - ldr r2, [r1] - add r0, r0, sl, lsl #1 - ldrsh r1, [r0, #0x12] - mov r0, #0x44 - smlabb r0, r1, r0, r2 - ldrb r0, [r0, #1] - bl FemaleToMaleForm - lsl r1, r8, #0x10 - mov r6, r0 - asr r7, r1, #0x10 - ldr r5, _0203B740 @ =0x020B0A48 - ldr r4, _0203B738 @ =0x020AFE5C - mov fp, #0x44 - b _0203B6DC -_0203B6AC: - ldr r0, [r4, #0x10] - ldr r1, [r5] - add r0, r0, r7, lsl #1 - ldrsh r0, [r0, #0x12] - smlabb r0, r0, fp, r1 - ldrb r0, [r0, #1] - bl FemaleToMaleForm - cmp r6, r0 - bgt _0203B6E4 - add r0, r7, #1 - lsl r0, r0, #0x10 - asr r7, r0, #0x10 -_0203B6DC: - cmp r7, sl - blt _0203B6AC -_0203B6E4: - ldr r0, _0203B738 @ =0x020AFE5C - mov r1, r7 - ldr r0, [r0, #0x10] - mov r2, sl - add r0, r0, sl, lsl #1 - ldrsh r0, [r0, #0x12] - bl FUN_0203b83c - add r0, sl, #1 - lsl r0, r0, #0x10 - asr sl, r0, #0x10 -_0203B70C: - cmp sl, sb - blt _0203B668 -_0203B714: - ldr r0, _0203B738 @ =0x020AFE5C - mvn r1, #1 - ldr r0, [r0, #0x10] - add r0, r0, #0x400 - ldrsb r0, [r0, #0x69] - cmp r0, r1 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - bl FUN_0202f9b8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0203B738: .4byte 0x020AFE5C -_0203B73C: .4byte 0x022AADF8 -_0203B740: .4byte 0x020B0A48 - arm_func_end FUN_0203af28 - - arm_func_start FUN_0203b744 -FUN_0203b744: @ 0x0203B744 - push {r3, lr} - bl FUN_0203aa20 - ldr r1, _0203B7A8 @ =0x020AFE5C - strh r0, [r1] - bl FUN_0203aab0 - ldr r1, _0203B7A8 @ =0x020AFE5C - strh r0, [r1, #2] - bl FUN_0203af28 - ldr r0, _0203B7A8 @ =0x020AFE5C - ldr r1, [r0, #0x10] - add r0, r1, #0x400 - add r1, r1, #0x500 - ldrsb r0, [r0, #0x68] - ldrsh r1, [r1, #0xd4] - bl FUN_0203117c - ldr r0, _0203B7A8 @ =0x020AFE5C - ldrsh r0, [r0, #2] - bl FUN_0203aaf8 - ldr r2, _0203B7A8 @ =0x020AFE5C - mov r1, r0 - ldr r0, [r2, #0x10] - add r0, r0, #0x400 - ldrsb r0, [r0, #0x68] - bl FUN_02031220 - pop {r3, pc} - .align 2, 0 -_0203B7A8: .4byte 0x020AFE5C - arm_func_end FUN_0203b744 - - arm_func_start FUN_0203b7ac -FUN_0203b7ac: @ 0x0203B7AC - push {r3, lr} - mvn r1, #0 - cmp r0, r1 - beq _0203B830 - ldr r1, _0203B838 @ =0x020AFE5C - mov ip, #0 - ldr r2, [r1, #0x10] - add r1, r2, #0x500 - ldrsh r3, [r1, #0xd4] - b _0203B828 -_0203B7D4: - add r1, r2, ip, lsl #1 - ldrsh r1, [r1, #0x12] - cmp r0, r1 - bne _0203B824 - mov lr, ip - sub ip, ip, #1 - ldr r1, _0203B838 @ =0x020AFE5C - b _0203B808 -_0203B7F4: - ldr r2, [r1, #0x10] - add r3, r2, ip, lsl #1 - ldrsh r2, [r3, #0x12] - sub ip, ip, #1 - strh r2, [r3, #0x14] -_0203B808: - cmp ip, #0 - bge _0203B7F4 - ldr r1, _0203B838 @ =0x020AFE5C - ldr r1, [r1, #0x10] - strh r0, [r1, #0x12] - mov r0, lr - pop {r3, pc} -_0203B824: - add ip, ip, #1 -_0203B828: - cmp ip, r3 - blt _0203B7D4 -_0203B830: - mvn r0, #0 - pop {r3, pc} - .align 2, 0 -_0203B838: .4byte 0x020AFE5C - arm_func_end FUN_0203b7ac - - arm_func_start FUN_0203b83c -FUN_0203b83c: @ 0x0203B83C - push {r4, lr} - ldr r3, _0203B880 @ =0x020AFE5C - b _0203B864 -_0203B848: - ldr r4, [r3, #0x10] - sub ip, r2, #1 - add r4, r4, r2, lsl #1 - ldrsh lr, [r4, #0x10] - lsl r2, ip, #0x10 - asr r2, r2, #0x10 - strh lr, [r4, #0x12] -_0203B864: - cmp r2, r1 - bgt _0203B848 - ldr r2, _0203B880 @ =0x020AFE5C - ldr r2, [r2, #0x10] - add r1, r2, r1, lsl #1 - strh r0, [r1, #0x12] - pop {r4, pc} - .align 2, 0 -_0203B880: .4byte 0x020AFE5C - arm_func_end FUN_0203b83c -_0203B884: - .byte 0x08, 0x40, 0x2D, 0xE9, 0x88, 0x00, 0x9F, 0xE5, 0x0C, 0x10, 0x90, 0xE5 - .byte 0x04, 0x00, 0x51, 0xE3, 0x01, 0xF1, 0x8F, 0x90, 0x0F, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x00, 0xEA - .byte 0x02, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x00, 0xEA - .byte 0x02, 0x10, 0xA0, 0xE3, 0x0C, 0x10, 0x80, 0xE5, 0x07, 0x00, 0x00, 0xEA, 0x03, 0x10, 0xA0, 0xE3 - .byte 0x0C, 0x10, 0x80, 0xE5, 0x04, 0x00, 0x00, 0xEA, 0x04, 0x10, 0xA0, 0xE3, 0x0C, 0x10, 0x80, 0xE5 - .byte 0x01, 0x00, 0x00, 0xEA, 0x01, 0x10, 0xA0, 0xE3, 0x0C, 0x10, 0x80, 0xE5, 0x98, 0xFF, 0xFF, 0xEB - .byte 0x30, 0x00, 0x9F, 0xE5, 0x10, 0x00, 0x90, 0xE5, 0x01, 0x0B, 0x80, 0xE2, 0xD8, 0x06, 0xD0, 0xE1 - .byte 0x19, 0xD6, 0xFF, 0xEB, 0x1C, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x10, 0x00, 0x90, 0xE5 - .byte 0x01, 0x0B, 0x80, 0xE2, 0xD9, 0x06, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x08, 0x80, 0xBD, 0x08 - .byte 0x28, 0xD0, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x5C, 0xFE, 0x0A, 0x02, 0x08, 0x40, 0x2D, 0xE9 - .byte 0xF0, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x10, 0x00, 0x90, 0xE5, 0x05, 0x0C, 0x80, 0xE2 - .byte 0xD6, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x1A, 0xD8, 0x00, 0x9F, 0xE5 - .byte 0x05, 0xC0, 0xA0, 0xE3, 0xD4, 0x30, 0x9F, 0xE5, 0x13, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x00, 0xC0, 0x8D, 0xE5, 0xE4, 0xBD, 0xFF, 0xEB, 0xB8, 0x10, 0x9F, 0xE5, 0x10, 0x10, 0x91, 0xE5 - .byte 0x06, 0x05, 0xC1, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0xE0, 0xBE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x08, 0x80, 0xBD, 0x18, 0x9C, 0x00, 0x9F, 0xE5, 0x10, 0x00, 0x90, 0xE5, 0x05, 0x0C, 0x80, 0xE2 - .byte 0xD6, 0x00, 0xD0, 0xE1, 0xFC, 0xBE, 0xFF, 0xEB, 0x05, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90 - .byte 0x14, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0x11, 0x00, 0x00, 0xEA - .byte 0x09, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x00, 0xEA, 0x0E, 0x00, 0x00, 0xEA, 0x64, 0x00, 0x9F, 0xE5 - .byte 0x01, 0x10, 0xA0, 0xE3, 0x0C, 0x10, 0x80, 0xE5, 0x0A, 0x00, 0x00, 0xEA, 0x54, 0x00, 0x9F, 0xE5 - .byte 0x02, 0x10, 0xA0, 0xE3, 0x0C, 0x10, 0x80, 0xE5, 0x06, 0x00, 0x00, 0xEA, 0x44, 0x00, 0x9F, 0xE5 - .byte 0x03, 0x10, 0xA0, 0xE3, 0x0C, 0x10, 0x80, 0xE5, 0x02, 0x00, 0x00, 0xEA, 0x34, 0x00, 0x9F, 0xE5 - .byte 0x04, 0x10, 0xA0, 0xE3, 0x0C, 0x10, 0x80, 0xE5, 0x28, 0x00, 0x9F, 0xE5, 0x10, 0x00, 0x90, 0xE5 - .byte 0x05, 0x0C, 0x80, 0xE2, 0xD6, 0x00, 0xD0, 0xE1, 0xB1, 0xBE, 0xFF, 0xEB, 0x14, 0x00, 0x9F, 0xE5 - .byte 0x01, 0x10, 0xE0, 0xE3, 0x10, 0x00, 0x90, 0xE5, 0x06, 0x15, 0xC0, 0xE5, 0x4C, 0xFF, 0xFF, 0xEB - .byte 0x29, 0xFB, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x5C, 0xFE, 0x0A, 0x02, 0x58, 0xC6, 0x09, 0x02 - .byte 0x88, 0xC6, 0x09, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x58, 0xD0, 0x4D, 0xE2, 0x44, 0x40, 0x9F, 0xE5 - .byte 0x00, 0xE0, 0x8D, 0xE2, 0x05, 0xC0, 0xA0, 0xE3, 0x0F, 0x00, 0xB4, 0xE8, 0x0F, 0x00, 0xAE, 0xE8 - .byte 0x01, 0xC0, 0x5C, 0xE2, 0xFB, 0xFF, 0xFF, 0x1A, 0x2C, 0x20, 0x9F, 0xE5, 0x03, 0x00, 0x94, 0xE8 - .byte 0x03, 0x00, 0x8E, 0xE8, 0x10, 0x00, 0x92, 0xE5, 0x08, 0x15, 0x90, 0xE5, 0x16, 0x00, 0x51, 0xE3 - .byte 0x02, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x8D, 0xE2, 0x01, 0x01, 0x90, 0xE7, 0x30, 0xFF, 0x2F, 0xE1 - .byte 0x58, 0xD0, 0x8D, 0xE2, 0x10, 0x80, 0xBD, 0xE8, 0x0C, 0xC7, 0x09, 0x02, 0x5C, 0xFE, 0x0A, 0x02 - - arm_func_start FUN_0203ba80 -FUN_0203ba80: @ 0x0203BA80 - push {r3, lr} - ldr r0, _0203BABC @ =0x020AFE5C - mvn r1, #1 - ldr r0, [r0, #0x10] - add r0, r0, #0x400 - ldrsb r0, [r0, #0x68] - cmp r0, r1 - popeq {r3, pc} - bl FUN_020311d4 - ldr r1, _0203BABC @ =0x020AFE5C - ldr r1, [r1, #0x10] - add r0, r1, r0, lsl #1 - ldrsh r0, [r0, #0x12] - bl FUN_0203c9a0 - pop {r3, pc} - .align 2, 0 -_0203BABC: .4byte 0x020AFE5C - arm_func_end FUN_0203ba80 -_0203BAC0: - .byte 0x00, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x00, 0xBA, 0x11, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x00, 0xBA - .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA, 0x01, 0x10, 0x81, 0xE2, 0x04, 0xC0, 0x9F, 0xE5 - .byte 0xFF, 0x10, 0x01, 0xE2, 0x1C, 0xFF, 0x2F, 0xE1, 0x94, 0x4B, 0x02, 0x02 - - arm_func_start FUN_0203baec -FUN_0203baec: @ 0x0203BAEC - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov r8, #0 - mov sl, r0 - mov r7, r8 - mov fp, #1 - mov r4, #0x44 - ldr r6, _0203BB78 @ =0x020B0A48 - ldr r5, _0203BB7C @ =0x020AFE5C - b _0203BB60 -_0203BB10: - add r0, r1, r8, lsl #1 - ldrsh r2, [r0, #0x12] - ldr r0, [r6] - mov r1, r7 - smulbb sb, r2, r4 - add r0, r0, sb - ldrsh r0, [r0, #4] - bl GetType - cmp sl, r0 - beq _0203BB54 - ldr r0, [r6] - mov r1, fp - add r0, r0, sb - ldrsh r0, [r0, #4] - bl GetType - cmp sl, r0 - bne _0203BB5C -_0203BB54: - mov r0, #1 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0203BB5C: - add r8, r8, #1 -_0203BB60: - ldr r1, [r5, #0x10] - ldr r0, [r1, #4] - cmp r8, r0 - blt _0203BB10 - mov r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0203BB78: .4byte 0x020B0A48 -_0203BB7C: .4byte 0x020AFE5C - arm_func_end FUN_0203baec - - arm_func_start FUN_0203bb80 -FUN_0203bb80: @ 0x0203BB80 - push {r4, r5, r6, r7, r8, lr} - mov r5, r0 - mov r4, #0 - ldr r8, _0203BBE4 @ =0x020B0A48 - mov r6, #0x44 - ldr r7, _0203BBE8 @ =0x020AFE5C - b _0203BBCC -_0203BB9C: - add r0, r1, r4, lsl #1 - ldrsh r0, [r0, #0x12] - ldr r1, [r8] - smlabb r0, r0, r6, r1 - ldrsh r0, [r0, #4] - bl GetDexNumber - cmp r5, r0 - moveq r0, #1 - popeq {r4, r5, r6, r7, r8, pc} - add r0, r4, #1 - lsl r0, r0, #0x10 - asr r4, r0, #0x10 -_0203BBCC: - ldr r1, [r7, #0x10] - ldr r0, [r1, #4] - cmp r4, r0 - blt _0203BB9C - mov r0, #0 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0203BBE4: .4byte 0x020B0A48 -_0203BBE8: .4byte 0x020AFE5C - arm_func_end FUN_0203bb80 - - arm_func_start FUN_0203bbec -FUN_0203bbec: @ 0x0203BBEC - push {r4, lr} - ldr r1, _0203BC48 @ =0x020AFE5C - ldr r2, _0203BC4C @ =0x020B0A48 - ldr lr, [r1, #0x10] - ldr ip, [r2] - ldr r4, [lr, #4] - mov r3, #0 - mov r2, #0x44 - b _0203BC38 -_0203BC10: - add r1, lr, r3, lsl #1 - ldrsh r1, [r1, #0x12] - smlabb r1, r1, r2, ip - ldrb r1, [r1, #0x3a] - cmp r0, r1 - moveq r0, #1 - popeq {r4, pc} - add r1, r3, #1 - lsl r1, r1, #0x10 - asr r3, r1, #0x10 -_0203BC38: - cmp r3, r4 - blt _0203BC10 - mov r0, #0 - pop {r4, pc} - .align 2, 0 -_0203BC48: .4byte 0x020AFE5C -_0203BC4C: .4byte 0x020B0A48 - arm_func_end FUN_0203bbec - - arm_func_start FUN_0203bc50 -FUN_0203bc50: @ 0x0203BC50 - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov r6, r0 - mov r5, #0 - add r4, sp, #0 - ldr sb, _0203BCC4 @ =0x020B0A48 - mov r7, #0x44 - ldr r8, _0203BCC8 @ =0x020AFE5C - b _0203BCAC -_0203BC70: - add r0, r1, r5, lsl #1 - ldrsh r0, [r0, #0x12] - ldr r1, [sb] - smlabb r0, r0, r7, r1 - ldrsh r0, [r0, #4] - bl GetNameString - str r0, [sp] - mov r0, r4 - bl FUN_0202065c - cmp r6, r0 - moveq r0, #1 - popeq {r3, r4, r5, r6, r7, r8, sb, pc} - add r0, r5, #1 - lsl r0, r0, #0x10 - asr r5, r0, #0x10 -_0203BCAC: - ldr r1, [r8, #0x10] - ldr r0, [r1, #4] - cmp r5, r0 - blt _0203BC70 - mov r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0203BCC4: .4byte 0x020B0A48 -_0203BCC8: .4byte 0x020AFE5C - arm_func_end FUN_0203bc50 -_0203BCCC: - .byte 0x10, 0x00, 0x9F, 0xE5 - .byte 0x10, 0xC0, 0x9F, 0xE5, 0x10, 0x00, 0x90, 0xE5, 0x6A, 0x0F, 0x80, 0xE2, 0x01, 0x0B, 0x80, 0xE2 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x5C, 0xFE, 0x0A, 0x02, 0x0C, 0x9B, 0x03, 0x02, 0x18, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x10, 0x01, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x10, 0x00, 0x90, 0xE5 - .byte 0x05, 0x0C, 0x80, 0xE2, 0xD7, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x1A - .byte 0xF8, 0x00, 0x9F, 0xE5, 0x06, 0xC0, 0xA0, 0xE3, 0xF4, 0x30, 0x9F, 0xE5, 0x13, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x00, 0xC0, 0x8D, 0xE5, 0xEF, 0xBC, 0xFF, 0xEB, 0xD8, 0x10, 0x9F, 0xE5 - .byte 0x10, 0x10, 0x91, 0xE5, 0x07, 0x05, 0xC1, 0xE5, 0x31, 0x00, 0x00, 0xEA, 0xEB, 0xBD, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x2E, 0x00, 0x00, 0x1A, 0xBC, 0x00, 0x9F, 0xE5, 0x10, 0x00, 0x90, 0xE5 - .byte 0x05, 0x0C, 0x80, 0xE2, 0xD7, 0x00, 0xD0, 0xE1, 0x07, 0xBE, 0xFF, 0xEB, 0xA8, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x08, 0xA0, 0xE1, 0x10, 0x10, 0x91, 0xE5, 0x40, 0x48, 0xA0, 0xE1, 0x05, 0x0C, 0x81, 0xE2 - .byte 0xD7, 0x00, 0xD0, 0xE1, 0xD2, 0xBD, 0xFF, 0xEB, 0x8C, 0x00, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3 - .byte 0x10, 0x10, 0x90, 0xE5, 0x06, 0x00, 0x54, 0xE3, 0x07, 0x25, 0xC1, 0xE5, 0x04, 0xF1, 0x8F, 0x90 - .byte 0x1A, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA, 0x18, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA - .byte 0x0A, 0x00, 0x00, 0xEA, 0x0D, 0x00, 0x00, 0xEA, 0x14, 0x00, 0x00, 0xEA, 0x0F, 0x00, 0x00, 0xEA - .byte 0x10, 0x00, 0x90, 0xE5, 0x07, 0x10, 0xA0, 0xE3, 0x08, 0x15, 0x80, 0xE5, 0x10, 0x00, 0x00, 0xEA - .byte 0x10, 0x00, 0x90, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x08, 0x15, 0x80, 0xE5, 0x0C, 0x00, 0x00, 0xEA - .byte 0x10, 0x00, 0x90, 0xE5, 0x0A, 0x10, 0xA0, 0xE3, 0x08, 0x15, 0x80, 0xE5, 0x08, 0x00, 0x00, 0xEA - .byte 0x10, 0x00, 0x90, 0xE5, 0x0F, 0x10, 0xA0, 0xE3, 0x08, 0x15, 0x80, 0xE5, 0x04, 0x00, 0x00, 0xEA - .byte 0x10, 0x00, 0x90, 0xE5, 0x14, 0x10, 0xA0, 0xE3, 0x08, 0x15, 0x80, 0xE5, 0x00, 0x00, 0x00, 0xEA - .byte 0x2D, 0xFA, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x18, 0x80, 0xBD, 0xE8, 0x5C, 0xFE, 0x0A, 0x02 - .byte 0x78, 0xC6, 0x09, 0x02, 0xB8, 0xC6, 0x09, 0x02 - - arm_func_start FUN_0203be18 -FUN_0203be18: @ 0x0203BE18 - push {r3, lr} - sub sp, sp, #8 - ldr r3, _0203BECC @ =0x020AFE5C - mvn r2, #1 - ldr r0, [r3, #0x10] - add r1, r0, #0x500 - ldrsb r0, [r1, #7] - cmp r0, r2 - bne _0203BE94 - mov r0, #0x308 - strh r0, [r1, #0x18] - ldr r0, [r3, #0x10] - mov r1, #0x10 - str r1, [r0, #0x51c] - mov r0, #0x11 - str r0, [sp] - mov r0, #8 - str r0, [sp, #4] - ldr r2, [r3, #0x10] - ldr r0, _0203BED0 @ =0x0209C618 - ldr r1, _0203BED4 @ =0x00001833 - ldr r3, _0203BED8 @ =0x0203BAC0 - add r2, r2, #0x510 - bl CreateAdvancedMenu - ldr r1, _0203BECC @ =0x020AFE5C - mov r2, #2 - ldr r3, [r1, #0x10] - strb r0, [r3, #0x50c] - ldr r0, [r1, #0x10] - str r2, [r0, #0x508] - b _0203BEC4 -_0203BE94: - bl IsNormalMenuActive - cmp r0, #0 - bne _0203BEC4 - ldr r0, _0203BECC @ =0x020AFE5C - ldr r0, [r0, #0x10] - add r0, r0, #0x500 - ldrsb r0, [r0, #7] - bl FreeNormalMenu - ldr r0, _0203BECC @ =0x020AFE5C - mvn r1, #1 - ldr r0, [r0, #0x10] - strb r1, [r0, #0x507] -_0203BEC4: - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_0203BECC: .4byte 0x020AFE5C -_0203BED0: .4byte 0x0209C618 -_0203BED4: .4byte 0x00001833 -_0203BED8: .4byte 0x0203BAC0 - arm_func_end FUN_0203be18 -_0203BEDC: - .byte 0x08, 0x40, 0x2D, 0xE9 - .byte 0x24, 0x00, 0x9F, 0xE5, 0x10, 0x00, 0x90, 0xE5, 0x05, 0x0C, 0x80, 0xE2, 0xDC, 0x00, 0xD0, 0xE1 - .byte 0x71, 0xBF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x9F, 0x05, 0x03, 0x10, 0xA0, 0x03 - .byte 0x10, 0x00, 0x90, 0x05, 0x08, 0x15, 0x80, 0x05, 0x08, 0x80, 0xBD, 0xE8, 0x5C, 0xFE, 0x0A, 0x02 - - arm_func_start FUN_0203bf10 -FUN_0203bf10: @ 0x0203BF10 - push {r4, lr} - ldr r0, _0203C028 @ =0x020AFE5C - mvn r1, #1 - ldr r0, [r0, #0x10] - add r0, r0, #0x500 - ldrsb r0, [r0, #0xc] - cmp r0, r1 - bne _0203BF48 - bl FUN_0203a6bc - ldr r0, _0203C028 @ =0x020AFE5C - mov r1, #0 - ldr r0, [r0, #0x10] - str r1, [r0, #0x508] - pop {r4, pc} -_0203BF48: - bl FUN_0202bcbc - cmp r0, #0 - popne {r4, pc} - ldr r0, _0203C028 @ =0x020AFE5C - ldr r0, [r0, #0x10] - add r0, r0, #0x500 - ldrsb r0, [r0, #0xc] - bl GetAdvancedMenuResult - and r0, r0, #0xff - add r0, r0, #1 - and r4, r0, #0xff - cmp r4, #1 - blo _0203BFEC - cmp r4, #0x12 - bhs _0203BFEC - mov r0, r4 - bl FUN_0203baec - cmp r0, #0 - bne _0203BFBC - ldr r0, _0203C028 @ =0x020AFE5C - mov r1, #0 - str r1, [r0, #8] - bl FUN_0203b744 - bl FUN_0203a658 - ldr r0, _0203C028 @ =0x020AFE5C - mov r1, #4 - ldr r0, [r0, #0x10] - str r1, [r0, #0x508] - b _0203C000 -_0203BFBC: - ldr r0, _0203C02C @ =0x022AADF8 - ldr r1, _0203C028 @ =0x020AFE5C - mov r2, #1 - str r2, [r1, #8] - strb r4, [r0] - bl FUN_0203b744 - bl FUN_0203a6bc - ldr r0, _0203C028 @ =0x020AFE5C - mov r1, #0 - ldr r0, [r0, #0x10] - str r1, [r0, #0x508] - b _0203C000 -_0203BFEC: - bl FUN_0203a6bc - ldr r0, _0203C028 @ =0x020AFE5C - mov r1, #0 - ldr r0, [r0, #0x10] - str r1, [r0, #0x508] -_0203C000: - ldr r0, _0203C028 @ =0x020AFE5C - ldr r0, [r0, #0x10] - add r0, r0, #0x500 - ldrsb r0, [r0, #0xc] - bl FreeAdvancedMenu - ldr r0, _0203C028 @ =0x020AFE5C - mvn r1, #1 - ldr r0, [r0, #0x10] - strb r1, [r0, #0x50c] - pop {r4, pc} - .align 2, 0 -_0203C028: .4byte 0x020AFE5C -_0203C02C: .4byte 0x022AADF8 - arm_func_end FUN_0203bf10 - - arm_func_start FUN_0203c030 -FUN_0203c030: @ 0x0203C030 - push {r3, lr} - ldr r0, _0203C078 @ =0x0209C648 - bl CreateDBox - ldr r3, _0203C07C @ =0x020AFE5C - ldr r1, _0203C080 @ =0x00000418 - ldr ip, [r3, #0x10] - ldr r2, _0203C084 @ =0x0000030B - strb r0, [ip, #0x505] - ldr r0, [r3, #0x10] - mov r3, #0 - add r0, r0, #0x500 - ldrsb r0, [r0, #5] - bl ShowMessageInDBox - ldr r0, _0203C07C @ =0x020AFE5C - mov r1, #5 - ldr r0, [r0, #0x10] - str r1, [r0, #0x508] - pop {r3, pc} - .align 2, 0 -_0203C078: .4byte 0x0209C648 -_0203C07C: .4byte 0x020AFE5C -_0203C080: .4byte 0x00000418 -_0203C084: .4byte 0x0000030B - arm_func_end FUN_0203c030 - - arm_func_start FUN_0203c088 -FUN_0203c088: @ 0x0203C088 - push {r3, lr} - ldr r0, _0203C0D0 @ =0x020AFE5C - ldr r0, [r0, #0x10] - add r0, r0, #0x500 - ldrsb r0, [r0, #5] - bl IsDBoxActive - cmp r0, #0 - popne {r3, pc} - ldr r0, _0203C0D0 @ =0x020AFE5C - ldr r0, [r0, #0x10] - add r0, r0, #0x500 - ldrsb r0, [r0, #5] - bl FUN_0202f2c4 - ldr r0, _0203C0D0 @ =0x020AFE5C - mov r1, #6 - ldr r0, [r0, #0x10] - str r1, [r0, #0x508] - pop {r3, pc} - .align 2, 0 -_0203C0D0: .4byte 0x020AFE5C - arm_func_end FUN_0203c088 -_0203C0D4: - .byte 0x08, 0x40, 0x2D, 0xE9, 0x40, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3 - .byte 0x10, 0x00, 0x90, 0xE5, 0x05, 0x0C, 0x80, 0xE2, 0xD5, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1 - .byte 0x08, 0x80, 0xBD, 0x08, 0x13, 0xCC, 0xFF, 0xEB, 0x20, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3 - .byte 0x10, 0x00, 0x90, 0xE5, 0x05, 0x15, 0xC0, 0xE5, 0x6B, 0xF9, 0xFF, 0xEB, 0x0C, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x10, 0x00, 0x90, 0xE5, 0x08, 0x15, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8 - .byte 0x5C, 0xFE, 0x0A, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x08, 0xD0, 0x4D, 0xE2, 0xB4, 0x10, 0x9F, 0xE5 - .byte 0x01, 0xE0, 0xA0, 0xE3, 0x10, 0x00, 0x91, 0xE5, 0x03, 0x20, 0xA0, 0xE3, 0xAC, 0xE5, 0x80, 0xE5 - .byte 0x10, 0x00, 0x91, 0xE5, 0x7B, 0x3F, 0xA0, 0xE3, 0xB8, 0x25, 0x80, 0xE5, 0x10, 0x00, 0x91, 0xE5 - .byte 0x50, 0xC0, 0xA0, 0xE3, 0xB0, 0xE5, 0x80, 0xE5, 0x10, 0x00, 0x91, 0xE5, 0x16, 0x20, 0xA0, 0xE3 - .byte 0xB4, 0x35, 0x80, 0xE5, 0x10, 0x00, 0x91, 0xE5, 0xC1, 0x3F, 0xA0, 0xE3, 0xC8, 0xC5, 0x80, 0xE5 - .byte 0x10, 0x00, 0x91, 0xE5, 0x10, 0xC0, 0xA0, 0xE3, 0xCC, 0x25, 0x80, 0xE5, 0x10, 0x00, 0x91, 0xE5 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x05, 0x0C, 0x80, 0xE2, 0xB0, 0x3E, 0xC0, 0xE1, 0x10, 0x30, 0x91, 0xE5 - .byte 0x54, 0x00, 0x9F, 0xE5, 0xE4, 0xC5, 0x83, 0xE5, 0x00, 0x20, 0x8D, 0xE5, 0x04, 0x20, 0x8D, 0xE5 - .byte 0x10, 0x20, 0x91, 0xE5, 0x44, 0x10, 0x9F, 0xE5, 0x76, 0x2F, 0x82, 0xE2, 0x40, 0x30, 0x9F, 0xE5 - .byte 0x01, 0x2B, 0x82, 0xE2, 0xFE, 0xD0, 0xFF, 0xEB, 0x28, 0x10, 0x9F, 0xE5, 0x08, 0x20, 0xA0, 0xE3 - .byte 0x10, 0x30, 0x91, 0xE5, 0xBC, 0x05, 0xC3, 0xE5, 0x10, 0x00, 0x91, 0xE5, 0x08, 0x25, 0x80, 0xE5 - .byte 0x10, 0x00, 0x91, 0xE5, 0x6A, 0x0F, 0x80, 0xE2, 0x01, 0x0B, 0x80, 0xE2, 0xFA, 0xF4, 0xFF, 0xEB - .byte 0x08, 0xD0, 0x8D, 0xE2, 0x08, 0x80, 0xBD, 0xE8, 0x5C, 0xFE, 0x0A, 0x02, 0x28, 0xC6, 0x09, 0x02 - .byte 0x07, 0x18, 0x40, 0x00, 0xCC, 0xBC, 0x03, 0x02 - - arm_func_start FUN_0203c1f8 -FUN_0203c1f8: @ 0x0203C1F8 - push {r3, lr} - ldr r0, _0203C324 @ =0x020AFE5C - ldr r0, [r0, #0x10] - add r0, r0, #0x1a8 - add r0, r0, #0x400 - bl FUN_020396e4 - cmp r0, #3 - addls pc, pc, r0, lsl #2 - pop {r3, pc} -_0203C21C: @ jump table - pop {r3, pc} @ case 0 - b _0203C22C @ case 1 - b _0203C2F4 @ case 2 - b _0203C244 @ case 3 -_0203C22C: - ldr r0, _0203C324 @ =0x020AFE5C - ldr r0, [r0, #0x10] - add r0, r0, #0x500 - ldrsb r0, [r0, #0xbc] - bl FUN_0203083c - pop {r3, pc} -_0203C244: - mov r0, #0 - bl FUN_02017ccc - ldr r0, _0203C324 @ =0x020AFE5C - ldr r0, [r0, #0x10] - add r0, r0, #0x500 - ldrsb r0, [r0, #0xbc] - bl FUN_0203088c - ldr r0, _0203C324 @ =0x020AFE5C - ldr r0, [r0, #0x10] - add r0, r0, #0x500 - ldrsb r0, [r0, #0xbc] - bl FUN_020308a0 - ldr r0, _0203C324 @ =0x020AFE5C - ldr r0, [r0, #0x10] - ldr r0, [r0, #0x5a8] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl FUN_0203bb80 - cmp r0, #0 - bne _0203C2BC - ldr r0, _0203C324 @ =0x020AFE5C - mov r1, #0 - str r1, [r0, #8] - bl FUN_0203b744 - bl FUN_0203a658 - ldr r0, _0203C324 @ =0x020AFE5C - mov r1, #4 - ldr r0, [r0, #0x10] - str r1, [r0, #0x508] - pop {r3, pc} -_0203C2BC: - ldr r0, _0203C324 @ =0x020AFE5C - mov r1, #2 - str r1, [r0, #8] - ldr r1, [r0, #0x10] - ldr r0, _0203C328 @ =0x022AADF8 - ldr r1, [r1, #0x5a8] - strh r1, [r0] - bl FUN_0203b744 - bl FUN_0203a6bc - ldr r0, _0203C324 @ =0x020AFE5C - mov r1, #0 - ldr r0, [r0, #0x10] - str r1, [r0, #0x508] - pop {r3, pc} -_0203C2F4: - mov r0, #1 - bl FUN_02017ccc - ldr r0, _0203C324 @ =0x020AFE5C - ldr r0, [r0, #0x10] - add r0, r0, #0x500 - ldrsb r0, [r0, #0xbc] - bl FUN_0203088c - ldr r0, _0203C324 @ =0x020AFE5C - mov r1, #9 - ldr r0, [r0, #0x10] - str r1, [r0, #0x508] - pop {r3, pc} - .align 2, 0 -_0203C324: .4byte 0x020AFE5C -_0203C328: .4byte 0x022AADF8 - arm_func_end FUN_0203c1f8 -_0203C32C: - .byte 0x08, 0x40, 0x2D, 0xE9 - .byte 0x40, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x10, 0x00, 0x90, 0xE5, 0x05, 0x0C, 0x80, 0xE2 - .byte 0xDC, 0x0B, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x08, 0x80, 0xBD, 0x08, 0x53, 0xD1, 0xFF, 0xEB - .byte 0x20, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x10, 0x00, 0x90, 0xE5, 0xBC, 0x15, 0xC0, 0xE5 - .byte 0xD5, 0xF8, 0xFF, 0xEB, 0x0C, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x10, 0x00, 0x90, 0xE5 - .byte 0x08, 0x15, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x5C, 0xFE, 0x0A, 0x02, 0x08, 0x40, 0x2D, 0xE9 - .byte 0xB4, 0xF8, 0xFF, 0xEB, 0x1C, 0x10, 0x9F, 0xE5, 0x0A, 0x30, 0xA0, 0xE3, 0x10, 0x00, 0x91, 0xE5 - .byte 0x0B, 0x20, 0xA0, 0xE3, 0x02, 0x0B, 0x80, 0xE2, 0xBE, 0x39, 0xC0, 0xE1, 0x10, 0x00, 0x91, 0xE5 - .byte 0x08, 0x25, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x5C, 0xFE, 0x0A, 0x02, 0x08, 0x40, 0x2D, 0xE9 - .byte 0x4C, 0x10, 0x9F, 0xE5, 0x10, 0x00, 0x91, 0xE5, 0x02, 0x0B, 0x80, 0xE2, 0xFE, 0x29, 0xD0, 0xE1 - .byte 0x01, 0x20, 0x42, 0xE2, 0xBE, 0x29, 0xC0, 0xE1, 0x10, 0x00, 0x91, 0xE5, 0x02, 0x0B, 0x80, 0xE2 - .byte 0xFE, 0x09, 0xD0, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x01, 0x20, 0xA0, 0xE1, 0x01, 0x30, 0xA0, 0xE1, 0x09, 0x00, 0xA0, 0xE3, 0xFF, 0xE8, 0xFF, 0xEB - .byte 0x0C, 0x00, 0x9F, 0xE5, 0x0C, 0x10, 0xA0, 0xE3, 0x10, 0x00, 0x90, 0xE5, 0x08, 0x15, 0x80, 0xE5 - .byte 0x08, 0x80, 0xBD, 0xE8, 0x5C, 0xFE, 0x0A, 0x02 - - arm_func_start FUN_0203c408 -FUN_0203c408: @ 0x0203C408 - push {r4, lr} - bl GetKeyboardStatus - cmp r0, #3 - bne _0203C484 - bl GetKeyboardStringResult - ldrb r0, [r0] - bl FUN_020251f0 - mov r4, r0 - bl FUN_0203bc50 - cmp r0, #0 - bne _0203C458 - ldr r0, _0203C4B0 @ =0x020AFE5C - mov r1, #0 - str r1, [r0, #8] - bl FUN_0203b744 - ldr r0, _0203C4B0 @ =0x020AFE5C - mov r1, #0x15 - ldr r0, [r0, #0x10] - str r1, [r0, #0x508] - pop {r4, pc} -_0203C458: - ldr r0, _0203C4B4 @ =0x022AADF8 - ldr r1, _0203C4B0 @ =0x020AFE5C - mov r2, #4 - str r2, [r1, #8] - strh r4, [r0] - bl FUN_0203b744 - ldr r0, _0203C4B0 @ =0x020AFE5C - mov r1, #0xd - ldr r0, [r0, #0x10] - str r1, [r0, #0x508] - pop {r4, pc} -_0203C484: - cmp r0, #2 - popne {r4, pc} - ldr r0, _0203C4B0 @ =0x020AFE5C - mov r1, #0 - str r1, [r0, #8] - bl FUN_0203b744 - ldr r0, _0203C4B0 @ =0x020AFE5C - mov r1, #0xd - ldr r0, [r0, #0x10] - str r1, [r0, #0x508] - pop {r4, pc} - .align 2, 0 -_0203C4B0: .4byte 0x020AFE5C -_0203C4B4: .4byte 0x022AADF8 - arm_func_end FUN_0203c408 - - arm_func_start FUN_0203c4b8 -FUN_0203c4b8: @ 0x0203C4B8 - push {r3, lr} - bl FUN_02037468 - cmp r0, #0 - popeq {r3, pc} - ldr r1, _0203C4EC @ =0x020AFE5C - mov r3, #0xa - ldr r0, [r1, #0x10] - mov r2, #0xe - add r0, r0, #0x800 - strh r3, [r0, #0x9e] - ldr r0, [r1, #0x10] - str r2, [r0, #0x508] - pop {r3, pc} - .align 2, 0 -_0203C4EC: .4byte 0x020AFE5C - arm_func_end FUN_0203c4b8 - - arm_func_start FUN_0203c4f0 -FUN_0203c4f0: @ 0x0203C4F0 - push {r3, lr} - ldr r1, _0203C538 @ =0x020AFE5C - ldr r0, [r1, #0x10] - add r0, r0, #0x800 - ldrsh r2, [r0, #0x9e] - sub r2, r2, #1 - strh r2, [r0, #0x9e] - ldr r0, [r1, #0x10] - add r0, r0, #0x800 - ldrsh r0, [r0, #0x9e] - cmp r0, #0 - popne {r3, pc} - bl FUN_0203a6bc - ldr r0, _0203C538 @ =0x020AFE5C - mov r1, #0 - ldr r0, [r0, #0x10] - str r1, [r0, #0x508] - pop {r3, pc} - .align 2, 0 -_0203C538: .4byte 0x020AFE5C - arm_func_end FUN_0203c4f0 -_0203C53C: - .byte 0x08, 0x40, 0x2D, 0xE9 - .byte 0x44, 0xF8, 0xFF, 0xEB, 0x1C, 0x10, 0x9F, 0xE5, 0x0A, 0x30, 0xA0, 0xE3, 0x10, 0x00, 0x91, 0xE5 - .byte 0x10, 0x20, 0xA0, 0xE3, 0x02, 0x0B, 0x80, 0xE2, 0xBE, 0x39, 0xC0, 0xE1, 0x10, 0x00, 0x91, 0xE5 - .byte 0x08, 0x25, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x5C, 0xFE, 0x0A, 0x02, 0x08, 0x40, 0x2D, 0xE9 - .byte 0x4C, 0x10, 0x9F, 0xE5, 0x10, 0x00, 0x91, 0xE5, 0x02, 0x0B, 0x80, 0xE2, 0xFE, 0x29, 0xD0, 0xE1 - .byte 0x01, 0x20, 0x42, 0xE2, 0xBE, 0x29, 0xC0, 0xE1, 0x10, 0x00, 0x91, 0xE5, 0x02, 0x0B, 0x80, 0xE2 - .byte 0xFE, 0x09, 0xD0, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x01, 0x20, 0xA0, 0xE1, 0x01, 0x30, 0xA0, 0xE1, 0x04, 0x00, 0xA0, 0xE3, 0x8F, 0xE8, 0xFF, 0xEB - .byte 0x0C, 0x00, 0x9F, 0xE5, 0x11, 0x10, 0xA0, 0xE3, 0x10, 0x00, 0x90, 0xE5, 0x08, 0x15, 0x80, 0xE5 - .byte 0x08, 0x80, 0xBD, 0xE8, 0x5C, 0xFE, 0x0A, 0x02 - - arm_func_start FUN_0203c5c8 -FUN_0203c5c8: @ 0x0203C5C8 - push {r3, lr} - sub sp, sp, #0x40 - bl GetKeyboardStatus - cmp r0, #3 - bne _0203C650 - bl GetKeyboardStringResult - mov r1, r0 - add r0, sp, #0 - bl _02025100 - ldrb r0, [sp] - bl FUN_0203bbec - cmp r0, #0 - bne _0203C620 - ldr r0, _0203C680 @ =0x020AFE5C - mov r1, #0 - str r1, [r0, #8] - bl FUN_0203b744 - ldr r0, _0203C680 @ =0x020AFE5C - mov r1, #0x15 - ldr r0, [r0, #0x10] - str r1, [r0, #0x508] - b _0203C678 -_0203C620: - ldrb r2, [sp] - ldr r0, _0203C684 @ =0x022AADF8 - ldr r1, _0203C680 @ =0x020AFE5C - mov r3, #3 - str r3, [r1, #8] - strb r2, [r0] - bl FUN_0203b744 - ldr r0, _0203C680 @ =0x020AFE5C - mov r1, #0x12 - ldr r0, [r0, #0x10] - str r1, [r0, #0x508] - b _0203C678 -_0203C650: - cmp r0, #2 - bne _0203C678 - ldr r0, _0203C680 @ =0x020AFE5C - mov r1, #0 - str r1, [r0, #8] - bl FUN_0203b744 - ldr r0, _0203C680 @ =0x020AFE5C - mov r1, #0x12 - ldr r0, [r0, #0x10] - str r1, [r0, #0x508] -_0203C678: - add sp, sp, #0x40 - pop {r3, pc} - .align 2, 0 -_0203C680: .4byte 0x020AFE5C -_0203C684: .4byte 0x022AADF8 - arm_func_end FUN_0203c5c8 - - arm_func_start FUN_0203c688 -FUN_0203c688: @ 0x0203C688 - push {r3, lr} - bl FUN_02037468 - cmp r0, #0 - popeq {r3, pc} - ldr r1, _0203C6BC @ =0x020AFE5C - mov r3, #0xa - ldr r0, [r1, #0x10] - mov r2, #0x13 - add r0, r0, #0x800 - strh r3, [r0, #0x9e] - ldr r0, [r1, #0x10] - str r2, [r0, #0x508] - pop {r3, pc} - .align 2, 0 -_0203C6BC: .4byte 0x020AFE5C - arm_func_end FUN_0203c688 - - arm_func_start FUN_0203c6c0 -FUN_0203c6c0: @ 0x0203C6C0 - push {r3, lr} - ldr r1, _0203C708 @ =0x020AFE5C - ldr r0, [r1, #0x10] - add r0, r0, #0x800 - ldrsh r2, [r0, #0x9e] - sub r2, r2, #1 - strh r2, [r0, #0x9e] - ldr r0, [r1, #0x10] - add r0, r0, #0x800 - ldrsh r0, [r0, #0x9e] - cmp r0, #0 - popne {r3, pc} - bl FUN_0203a6bc - ldr r0, _0203C708 @ =0x020AFE5C - mov r1, #0 - ldr r0, [r0, #0x10] - str r1, [r0, #0x508] - pop {r3, pc} - .align 2, 0 -_0203C708: .4byte 0x020AFE5C - arm_func_end FUN_0203c6c0 -_0203C70C: - .byte 0x08, 0x40, 0x2D, 0xE9 - .byte 0x20, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x08, 0x10, 0x80, 0xE5, 0x08, 0xFC, 0xFF, 0xEB - .byte 0xE5, 0xF7, 0xFF, 0xEB, 0x0C, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x10, 0x00, 0x90, 0xE5 - .byte 0x08, 0x15, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x5C, 0xFE, 0x0A, 0x02, 0x08, 0x40, 0x2D, 0xE9 - .byte 0x48, 0xEB, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x9F, 0x15, 0x04, 0x10, 0xA0, 0x13 - .byte 0x10, 0x00, 0x90, 0x15, 0x08, 0x15, 0x80, 0x15, 0x08, 0x80, 0xBD, 0xE8, 0x5C, 0xFE, 0x0A, 0x02 - .byte 0x08, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x08, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x5C, 0xFE, 0x0A, 0x02, 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0xA0, 0x13, 0x08, 0x00, 0xA0, 0x03 - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0203c784 -FUN_0203c784: @ 0x0203C784 - push {r3, r4, lr} - sub sp, sp, #0x54 - mov r4, r0 - bl FUN_02027b1c - ldr r0, _0203C7DC @ =0x020AFE5C - ldr r1, _0203C7E0 @ =0x0209C60C - ldr r0, [r0, #0xc] - lsl r0, r0, #1 - ldrh r0, [r1, r0] - bl StringFromMessageId - str r0, [sp, #0x3c] - add ip, sp, #4 - mov r0, r4 - mov r1, #0xa - mov r2, #2 - mov r3, #0x30c - str ip, [sp] - bl FUN_020262e0 - mov r0, r4 - bl FUN_02027af0 - add sp, sp, #0x54 - pop {r3, r4, pc} - .align 2, 0 -_0203C7DC: .4byte 0x020AFE5C -_0203C7E0: .4byte 0x0209C60C - arm_func_end FUN_0203c784 -_0203C7E4: - .byte 0x10, 0x40, 0x2D, 0xE9, 0x80, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x91, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0x10, 0x00, 0xA0, 0xE3 - .byte 0x08, 0x10, 0xA0, 0xE3, 0x59, 0x12, 0xFF, 0xEB, 0x60, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x81, 0xE5 - .byte 0x58, 0x10, 0x9F, 0xE5, 0x00, 0x30, 0xE0, 0xE3, 0x00, 0x20, 0x91, 0xE5, 0x04, 0x00, 0xA0, 0xE1 - .byte 0xB6, 0x30, 0xC2, 0xE1, 0x00, 0x10, 0x91, 0xE5, 0xB4, 0x30, 0xC1, 0xE1, 0x5B, 0x00, 0x00, 0xEB - .byte 0x38, 0x00, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x00, 0x20, 0xC1, 0xE5 - .byte 0x00, 0x10, 0x90, 0xE5, 0x01, 0x20, 0xC1, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x02, 0x20, 0xC0, 0xE5 - .byte 0x4B, 0x00, 0x00, 0xEB, 0x14, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5 - .byte 0x0A, 0x20, 0xC1, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x0C, 0x20, 0x80, 0xE5, 0x10, 0x80, 0xBD, 0xE8 - .byte 0x70, 0xFE, 0x0A, 0x02, 0x60, 0x00, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5 - .byte 0x0A, 0x20, 0xC1, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x0C, 0x00, 0x91, 0xE5, 0x04, 0x00, 0x50, 0xE3 - .byte 0x00, 0xF1, 0x8F, 0x90, 0x1E, 0xFF, 0x2F, 0xE1, 0x03, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA - .byte 0x07, 0x00, 0x00, 0xEA, 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0x00, 0xEA, 0x07, 0x00, 0xA0, 0xE3 - .byte 0x0C, 0x00, 0x81, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x07, 0x00, 0xA0, 0xE3, 0x0C, 0x00, 0x81, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x07, 0x00, 0xA0, 0xE3, 0x0C, 0x00, 0x81, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x05, 0x00, 0xA0, 0xE3, 0x0C, 0x00, 0x81, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0xFE, 0x0A, 0x02 - .byte 0x24, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x0C, 0x00, 0x90, 0xE5, 0x0A, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13 - .byte 0x00, 0x00, 0xA0, 0x03, 0xFF, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0xFE, 0x0A, 0x02 - .byte 0x24, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x0C, 0x00, 0x90, 0xE5, 0x04, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03 - .byte 0x00, 0x00, 0xA0, 0x13, 0xFF, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0xFE, 0x0A, 0x02 - .byte 0x08, 0x40, 0x2D, 0xE9, 0x34, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x01, 0x00, 0xA0, 0x03, 0x08, 0x80, 0xBD, 0x08, 0x0C, 0x10, 0x90, 0xE5, 0x0A, 0x00, 0x51, 0xE3 - .byte 0x00, 0x00, 0xA0, 0x13, 0x08, 0x80, 0xBD, 0x18, 0x06, 0x12, 0xFF, 0xEB, 0x0C, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8 - .byte 0x70, 0xFE, 0x0A, 0x02 - - arm_func_start FUN_0203c984 -FUN_0203c984: @ 0x0203C984 - ldr r0, _0203C99C @ =0x020AFE70 - ldr r1, [r0] - cmp r1, #0 - movne r0, #0 - strhne r0, [r1, #8] - bx lr - .align 2, 0 -_0203C99C: .4byte 0x020AFE70 - arm_func_end FUN_0203c984 - - arm_func_start FUN_0203c9a0 -FUN_0203c9a0: @ 0x0203C9A0 - ldr r1, _0203C9C0 @ =0x020AFE70 - ldr r2, [r1] - ldrsh r1, [r2, #4] - cmp r0, r1 - moveq r0, #0 - strhne r0, [r2, #4] - movne r0, #1 - bx lr - .align 2, 0 -_0203C9C0: .4byte 0x020AFE70 - arm_func_end FUN_0203c9a0 -_0203C9C4: - .byte 0x14, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5 - .byte 0xB6, 0x20, 0xC1, 0xE1, 0x00, 0x00, 0x90, 0xE5, 0xB4, 0x20, 0xC0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x70, 0xFE, 0x0A, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x2C, 0xD0, 0x4D, 0xE2, 0x44, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x50, 0x90, 0xE5, 0x00, 0x00, 0x55, 0xE3, 0x0C, 0x00, 0x00, 0x0A, 0x38, 0x40, 0x9F, 0xE5 - .byte 0x00, 0xE0, 0x8D, 0xE2, 0x02, 0xC0, 0xA0, 0xE3, 0x0F, 0x00, 0xB4, 0xE8, 0x0F, 0x00, 0xAE, 0xE8 - .byte 0x01, 0xC0, 0x5C, 0xE2, 0xFB, 0xFF, 0xFF, 0x1A, 0x07, 0x00, 0x94, 0xE8, 0x07, 0x00, 0x8E, 0xE8 - .byte 0x0C, 0x10, 0x95, 0xE5, 0x00, 0x00, 0x8D, 0xE2, 0x01, 0x01, 0x90, 0xE7, 0x30, 0xFF, 0x2F, 0xE1 - .byte 0x2C, 0xD0, 0x8D, 0xE2, 0x30, 0x80, 0xBD, 0xE8, 0x70, 0xFE, 0x0A, 0x02, 0xF4, 0xC7, 0x09, 0x02 - .byte 0x08, 0x40, 0x2D, 0xE9, 0xF5, 0x41, 0x0B, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18 - .byte 0xB5, 0x43, 0x0B, 0xEB, 0x0C, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 - .byte 0x0C, 0x10, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x70, 0xFE, 0x0A, 0x02, 0x08, 0x40, 0x2D, 0xE9 - .byte 0xEA, 0x41, 0x0B, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x9F, 0x05, 0x02, 0x10, 0xA0, 0x03 - .byte 0x00, 0x00, 0x90, 0x05, 0x0C, 0x10, 0x80, 0x05, 0x08, 0x80, 0xBD, 0xE8, 0x70, 0xFE, 0x0A, 0x02 - - arm_func_start FUN_0203ca90 -FUN_0203ca90: @ 0x0203CA90 - push {r3, lr} - bl FUN_0230D220 - cmp r0, #0 - popne {r3, pc} - ldr r0, _0203CAC8 @ =0x020AFE70 - ldr r0, [r0] - ldrsh r0, [r0, #4] - bl FUN_0203ccd8 - bl FUN_02310C18 - ldr r0, _0203CAC8 @ =0x020AFE70 - mov r1, #3 - ldr r0, [r0] - str r1, [r0, #0xc] - pop {r3, pc} - .align 2, 0 -_0203CAC8: .4byte 0x020AFE70 - arm_func_end FUN_0203ca90 -_0203CACC: - .byte 0x08, 0x40, 0x2D, 0xE9 - .byte 0xD2, 0x41, 0x0B, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x9F, 0x05, 0x04, 0x10, 0xA0, 0x03 - .byte 0x00, 0x00, 0x90, 0x05, 0x0C, 0x10, 0x80, 0x05, 0x08, 0x80, 0xBD, 0xE8, 0x70, 0xFE, 0x0A, 0x02 - - arm_func_start FUN_0203caf0 -FUN_0203caf0: @ 0x0203CAF0 - push {r3, lr} - ldr r0, _0203CB54 @ =0x020AFE70 - ldr r2, [r0] - ldrb r1, [r2, #0xa] - cmp r1, #0 - movne r0, #5 - strne r0, [r2, #0xc] - popne {r3, pc} - ldrh r1, [r2, #8] - add r1, r1, #1 - strh r1, [r2, #8] - ldr r3, [r0] - ldrh r1, [r3, #8] - cmp r1, #0x1e - poplo {r3, pc} - ldrsh r2, [r3, #4] - ldrsh r1, [r3, #6] - cmp r2, r1 - popeq {r3, pc} - mov r1, #0 - strh r1, [r3, #8] - ldr r0, [r0] - ldrsh r0, [r0, #4] - bl FUN_0203ccd8 - pop {r3, pc} - .align 2, 0 -_0203CB54: .4byte 0x020AFE70 - arm_func_end FUN_0203caf0 - - arm_func_start FUN_0203cb58 -FUN_0203cb58: @ 0x0203CB58 - push {r3, lr} - bl FUN_0230D220 - cmp r0, #0 - popne {r3, pc} - bl FUN_0230D92C - ldr r0, _0203CB80 @ =0x020AFE70 - mov r1, #6 - ldr r0, [r0] - str r1, [r0, #0xc] - pop {r3, pc} - .align 2, 0 -_0203CB80: .4byte 0x020AFE70 - arm_func_end FUN_0203cb58 -_0203CB84: - .byte 0x08, 0x40, 0x2D, 0xE9, 0xA4, 0x41, 0x0B, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x08, 0x80, 0xBD, 0x18, 0xC0, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5 - .byte 0xD0, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x08, 0x00, 0x00, 0x0A, 0xCA, 0xCA, 0xFF, 0xEB - .byte 0xA4, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0xA3, 0xCA, 0xFF, 0xEB - .byte 0x94, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0xC0, 0xE5 - .byte 0x84, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1 - .byte 0x01, 0x00, 0x50, 0xE1, 0x08, 0x00, 0x00, 0x0A, 0x59, 0xCB, 0xFF, 0xEB, 0x68, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x3F, 0xCB, 0xFF, 0xEB, 0x58, 0x00, 0x9F, 0xE5 - .byte 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x02, 0x10, 0xC0, 0xE5, 0x48, 0x00, 0x9F, 0xE5 - .byte 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1 - .byte 0x08, 0x00, 0x00, 0x0A, 0x4A, 0xCB, 0xFF, 0xEB, 0x2C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0xD1, 0x00, 0xD0, 0xE1, 0x30, 0xCB, 0xFF, 0xEB, 0x1C, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0x01, 0x10, 0xC0, 0xE5, 0x0C, 0x00, 0x9F, 0xE5, 0x0A, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0x0C, 0x10, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x70, 0xFE, 0x0A, 0x02 - - arm_func_start FUN_0203cc60 -FUN_0203cc60: @ 0x0203CC60 - push {r3, lr} - bl FUN_0230D220 - cmp r0, #0 - ldreq r0, _0203CC80 @ =0x020AFE70 - moveq r1, #0xa - ldreq r0, [r0] - streq r1, [r0, #0xc] - pop {r3, pc} - .align 2, 0 -_0203CC80: .4byte 0x020AFE70 - arm_func_end FUN_0203cc60 -_0203CC84: - .byte 0x08, 0x40, 0x2D, 0xE9, 0x64, 0x41, 0x0B, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x08, 0x80, 0xBD, 0x18, 0xD9, 0x40, 0x0B, 0xEB, 0x0C, 0x00, 0x9F, 0xE5, 0x09, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0x0C, 0x10, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x70, 0xFE, 0x0A, 0x02 - - arm_func_start FUN_0203ccb0 -FUN_0203ccb0: @ 0x0203CCB0 - push {r3, lr} - bl FUN_0230D220 - cmp r0, #0 - ldreq r0, _0203CCD0 @ =0x020AFE70 - moveq r1, #0xa - ldreq r0, [r0] - streq r1, [r0, #0xc] - pop {r3, pc} - .align 2, 0 -_0203CCD0: .4byte 0x020AFE70 - arm_func_end FUN_0203ccb0 -_0203CCD4: - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0203ccd8 -FUN_0203ccd8: @ 0x0203CCD8 - push {r4, lr} - sub sp, sp, #0x10 - ldr r1, _0203CE00 @ =0x020B0A48 - ldr r2, _0203CE04 @ =0x020AFE70 - ldr r4, [r1] - ldr r3, [r2] - mov r1, #0x44 - strh r0, [r3, #6] - ldr r3, [r2] - sub r2, r1, #0x46 - ldrsb r3, [r3] - smlabb r4, r0, r1, r4 - cmp r3, r2 - bne _0203CD2C - mov r0, #1 - mov r1, #3 - mov r2, #0 - bl CreatePortraitBox - ldr r1, _0203CE04 @ =0x020AFE70 - ldr r1, [r1] - strb r0, [r1] -_0203CD2C: - ldr r1, _0203CE04 @ =0x020AFE70 - mvn r0, #1 - ldr r1, [r1] - ldrsb r1, [r1, #1] - cmp r1, r0 - bne _0203CD5C - ldr r0, _0203CE08 @ =0x0209C7E4 - ldr r1, _0203CE0C @ =0x0203CE1C - bl FUN_0202f8c4 - ldr r1, _0203CE04 @ =0x020AFE70 - ldr r1, [r1] - strb r0, [r1, #1] -_0203CD5C: - ldr r1, _0203CE04 @ =0x020AFE70 - mvn r0, #1 - ldr r1, [r1] - ldrsb r1, [r1, #2] - cmp r1, r0 - bne _0203CD8C - ldr r0, _0203CE10 @ =0x0209C7D4 - ldr r1, _0203CE14 @ =FUN_0203cfcc - bl FUN_0202f8c4 - ldr r1, _0203CE04 @ =0x020AFE70 - ldr r1, [r1] - strb r0, [r1, #2] -_0203CD8C: - add r0, sp, #0 - bl InitPortraitBox - ldrsh r1, [r4, #4] - add r0, sp, #0 - bl InitPortraitBoxWithMonsterId - add r0, sp, #0 - mov r1, #2 - bl SetPortraitUnknownAttr - ldr r1, _0203CE18 @ =0x0209C7CC - add r0, sp, #0 - bl SetPortraitAttrStruct - add r0, sp, #0 - mov r1, #0 - bl SetPortraitExpressionId - ldr r0, _0203CE04 @ =0x020AFE70 - add r1, sp, #0 - ldr r0, [r0] - ldrsb r0, [r0] - bl ShowPortraitBox - ldr r0, _0203CE04 @ =0x020AFE70 - ldr r0, [r0] - ldrsb r0, [r0, #1] - bl FUN_0202f9b8 - ldr r0, _0203CE04 @ =0x020AFE70 - ldr r0, [r0] - ldrsb r0, [r0, #2] - bl FUN_0202f9b8 - add sp, sp, #0x10 - pop {r4, pc} - .align 2, 0 -_0203CE00: .4byte 0x020B0A48 -_0203CE04: .4byte 0x020AFE70 -_0203CE08: .4byte 0x0209C7E4 -_0203CE0C: .4byte 0x0203CE1C -_0203CE10: .4byte 0x0209C7D4 -_0203CE14: .4byte FUN_0203cfcc -_0203CE18: .4byte 0x0209C7CC - arm_func_end FUN_0203ccd8 -_0203CE1C: - .byte 0x78, 0x40, 0x2D, 0xE9 - .byte 0x75, 0xDF, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x55, 0xE1 - .byte 0x53, 0x00, 0x00, 0x0A, 0x50, 0x11, 0x9F, 0xE5, 0x50, 0x21, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 - .byte 0x00, 0x30, 0x92, 0xE5, 0xF6, 0x20, 0xD1, 0xE1, 0x44, 0x10, 0xA0, 0xE3, 0x82, 0x31, 0x04, 0xE1 - .byte 0x40, 0xAB, 0xFF, 0xEB, 0xF4, 0x00, 0xD4, 0xE1, 0x38, 0x56, 0x00, 0xEB, 0xA8, 0x00, 0x8D, 0xE5 - .byte 0x84, 0x10, 0x8D, 0xE2, 0x00, 0x10, 0x8D, 0xE5, 0x24, 0x21, 0x9F, 0xE5, 0x24, 0x31, 0x9F, 0xE5 - .byte 0xD4, 0x00, 0x8D, 0xE2, 0x01, 0x1C, 0xA0, 0xE3, 0x5C, 0x95, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE1 - .byte 0x20, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0xD4, 0x30, 0x8D, 0xE2, 0xE0, 0xA4, 0xFF, 0xEB - .byte 0xF4, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xF6, 0x00, 0xD0, 0xE1, 0x5B, 0x65, 0x00, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x0A, 0xDC, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0xF6, 0x00, 0xD0, 0xE1, 0x7D, 0x65, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x59, 0x00, 0xA0, 0x13 - .byte 0x46, 0x00, 0xA0, 0x03, 0x06, 0x00, 0x00, 0xEA, 0xBC, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0xF6, 0x00, 0xD0, 0xE1, 0x21, 0x68, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x44, 0x00, 0xA0, 0x13 - .byte 0x57, 0x00, 0xA0, 0x03, 0x00, 0x08, 0xA0, 0xE1, 0x40, 0x68, 0xA0, 0xE1, 0xD4, 0x00, 0x8D, 0xE2 - .byte 0x3A, 0x10, 0x84, 0xE2, 0x0A, 0x20, 0xA0, 0xE3, 0xBD, 0xA0, 0xFF, 0xEB, 0x98, 0x10, 0x9F, 0xE5 - .byte 0x44, 0x00, 0x8D, 0xE2, 0xD4, 0x30, 0x8D, 0xE2, 0x06, 0x20, 0xA0, 0xE1, 0x24, 0x00, 0x00, 0xEB - .byte 0xF4, 0x10, 0xD4, 0xE1, 0xD4, 0x00, 0x8D, 0xE2, 0x78, 0x55, 0x00, 0xEB, 0x78, 0x10, 0x9F, 0xE5 - .byte 0x04, 0x00, 0x8D, 0xE2, 0x4B, 0x20, 0xA0, 0xE3, 0xD4, 0x30, 0x8D, 0xE2, 0x1C, 0x00, 0x00, 0xEB - .byte 0x68, 0x10, 0x9F, 0xE5, 0xD4, 0x00, 0x8D, 0xE2, 0x44, 0x20, 0x8D, 0xE2, 0x04, 0x30, 0x8D, 0xE2 - .byte 0x17, 0x00, 0x00, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0x4C, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3 - .byte 0xD4, 0x30, 0x8D, 0xE2, 0xAE, 0xA4, 0xFF, 0xEB, 0xF4, 0x10, 0xD4, 0xE1, 0xD4, 0x00, 0x8D, 0xE2 - .byte 0x01, 0x18, 0x81, 0xE3, 0x84, 0x9F, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0xD0, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x20, 0xA0, 0xE3, 0xD4, 0x30, 0x8D, 0xE2, 0xA5, 0xA4, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE1 - .byte 0xDA, 0xAA, 0xFF, 0xEB, 0x75, 0xDF, 0x8D, 0xE2, 0x78, 0x80, 0xBD, 0xE8, 0x70, 0xFE, 0x0A, 0x02 - .byte 0x48, 0x0A, 0x0B, 0x02, 0x20, 0xC8, 0x09, 0x02, 0x02, 0xC4, 0x00, 0x00, 0x2C, 0xC8, 0x09, 0x02 - .byte 0x3C, 0xC8, 0x09, 0x02 - - arm_func_start SprintfStatic -SprintfStatic: @ 0x0203CFA4 - push {r0, r1, r2, r3} - push {r3, lr} - add r2, sp, #0xc - bic r2, r2, #3 - ldr r1, [sp, #0xc] - add r2, r2, #4 - bl Vsprintf - pop {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end SprintfStatic - - arm_func_start FUN_0203cfcc -FUN_0203cfcc: @ 0x0203CFCC - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #0xcc - sub sp, sp, #0x400 - mov r5, #4 - mov r6, r0 - sub r0, r5, #6 - cmp r6, r0 - beq _0203D3F4 - ldr r1, _0203D400 @ =0x020AFE70 - add r0, sp, #4 - ldr r1, [r1] - ldrsh r1, [r1, #6] - bl FUN_0205b028 - ldr r0, _0203D400 @ =0x020AFE70 - ldr r1, _0203D404 @ =0x020B0A48 - ldr r0, [r0] - ldr r3, [r1] - ldrsh r2, [r0, #6] - mov r1, #0x44 - mov r0, r6 - smlabb r4, r2, r1, r3 - bl FUN_02027b58 - ldrsh r0, [sp, #4] - mov r1, #0 - bl GetType - mov r8, r0 - ldrsh r0, [sp, #4] - mov r1, #1 - bl GetType - mov r1, r5 - mov r7, r0 - ldr r3, _0203D408 @ =0x00000976 - mov r0, r6 - mov r2, r1 - bl FUN_02026268 - mov r0, r8 - bl GetTypeStringId - mov r3, r0 - mov r0, r6 - mov r1, #0x38 - mov r2, r5 - bl FUN_02026268 - cmp r7, #0 - beq _0203D098 - mov r0, r7 - bl GetTypeStringId - mov r3, r0 - mov r0, r6 - mov r1, #0x68 - mov r2, r5 - bl FUN_02026268 -_0203D098: - add r0, r5, #0xc - lsl r1, r0, #0x10 - ldr r2, [sp, #0x30] - ldr r0, _0203D40C @ =0x00000977 - str r2, [sp, #0xa0] - asr r5, r1, #0x10 - bl StringFromMessageId - mov r2, r0 - add ip, sp, #0x7c - add r0, sp, #0xcc - mov r1, #0x400 - mov r3, #0 - str ip, [sp] - bl PreprocessString - add r3, sp, #0xcc - mov r0, r6 - mov r1, #4 - mov r2, r5 - bl FUN_02026214 - add r0, r5, #0xc - lsl r0, r0, #0x10 - asr r5, r0, #0x10 - ldr r0, [sp, #0x2c] - ldr r1, [sp, #0x28] - str r0, [sp, #0xa4] - ldr r0, _0203D410 @ =0x00000978 - str r1, [sp, #0xa0] - bl StringFromMessageId - add r1, sp, #0x7c - mov r2, r0 - str r1, [sp] - add r0, sp, #0xcc - mov r1, #0x400 - mov r3, #0 - bl PreprocessString - mov r0, r6 - mov r1, #4 - mov r2, r5 - add r3, sp, #0xcc - bl FUN_02026214 - add r0, r5, #0xc - lsl r0, r0, #0x10 - asr r5, r0, #0x10 - ldr r0, _0203D414 @ =0x00000979 - bl StringFromMessageId - add r1, sp, #0x7c - mov r2, r0 - str r1, [sp] - add r0, sp, #0xcc - mov r1, #0x400 - mov r3, #0 - bl PreprocessString - mov r0, r6 - mov r1, #4 - mov r2, r5 - add r3, sp, #0xcc - bl FUN_02026214 - ldrb r2, [sp, #0x38] - ldrb r1, [sp, #0x3d] - ldr r0, _0203D418 @ =0x0000097B - str r2, [sp, #0xa0] - cmp r1, #0 - addne r1, r2, r1 - addne r0, r0, #1 - strne r1, [sp, #0xa0] - bl StringFromMessageId - mov r2, r0 - add ip, sp, #0x7c - add r0, sp, #0xcc - mov r1, #0x400 - mov r3, #0 - str ip, [sp] - bl PreprocessString - add r3, sp, #0xcc - mov r0, r6 - mov r2, r5 - mov r1, #4 - bl FUN_02026214 - ldrb r2, [sp, #0x3a] - ldrb r1, [sp, #0x3f] - ldr r0, _0203D41C @ =0x0000097F - str r2, [sp, #0xa0] - cmp r1, #0 - addne r0, r2, r1 - strne r0, [sp, #0xa0] - movne r0, #0x980 - bl StringFromMessageId - mov r2, r0 - add ip, sp, #0x7c - add r0, sp, #0xcc - mov r1, #0x400 - mov r3, #0 - str ip, [sp] - bl PreprocessString - add r3, sp, #0xcc - mov r0, r6 - mov r2, r5 - mov r1, #4 - bl FUN_02026214 - add r0, r5, #0xc - lsl r0, r0, #0x10 - asr r5, r0, #0x10 - ldr r0, _0203D420 @ =0x0000097A - bl StringFromMessageId - add r1, sp, #0x7c - mov r2, r0 - str r1, [sp] - add r0, sp, #0xcc - mov r1, #0x400 - mov r3, #0 - bl PreprocessString - mov r0, r6 - mov r1, #4 - mov r2, r5 - add r3, sp, #0xcc - bl FUN_02026214 - ldrb r2, [sp, #0x39] - ldrb r1, [sp, #0x3e] - ldr r0, _0203D424 @ =0x0000097D - str r2, [sp, #0xa0] - cmp r1, #0 - addne r1, r2, r1 - addne r0, r0, #1 - strne r1, [sp, #0xa0] - bl StringFromMessageId - mov r2, r0 - add ip, sp, #0x7c - add r0, sp, #0xcc - mov r1, #0x400 - mov r3, #0 - str ip, [sp] - bl PreprocessString - add r3, sp, #0xcc - mov r0, r6 - mov r2, r5 - mov r1, #4 - bl FUN_02026214 - ldrb r2, [sp, #0x3b] - ldrb r1, [sp, #0x40] - ldr r0, _0203D428 @ =0x00000981 - str r2, [sp, #0xa0] - cmp r1, #0 - addne r1, r2, r1 - addne r0, r0, #1 - strne r1, [sp, #0xa0] - bl StringFromMessageId - mov r2, r0 - add ip, sp, #0x7c - add r0, sp, #0xcc - mov r1, #0x400 - mov r3, #0 - str ip, [sp] - bl PreprocessString - add r3, sp, #0xcc - mov r0, r6 - mov r2, r5 - mov r1, #4 - bl FUN_02026214 - ldrsh r0, [sp, #0x42] - mov r1, #0xa - str r0, [sp, #0xa0] - bl DivideInt - lsl r0, r0, #0x10 - asrs r0, r0, #0x10 - movmi r0, #0 - bmi _0203D338 - cmp r0, #0x63 - movge r0, #0x63 -_0203D338: - bl FUN_0205b0a0 - str r0, [sp, #0xb4] - ldr r0, _0203D42C @ =0x00000983 - bl StringFromMessageId - add r1, sp, #0x7c - mov r2, r0 - str r1, [sp] - add r0, sp, #0xcc - mov r1, #0x400 - mov r3, #0 - bl PreprocessString - add r0, r5, #0xc - lsl r0, r0, #0x10 - asr r5, r0, #0x10 - mov r0, r6 - mov r1, #4 - mov r2, r5 - add r3, sp, #0xcc - bl FUN_02026214 - ldrsh r0, [r4, #4] - ldrsh r1, [sp, #0x42] - bl GetNextIqSkill - cmp r0, #0 - add r4, sp, #0x7c - mov r1, #0x400 - bne _0203D3B8 - ldr r2, _0203D430 @ =0x00000986 - add r0, sp, #0xcc - mov r3, #0 - str r4, [sp] - bl PreprocessStringFromMessageId - b _0203D3D0 -_0203D3B8: - ldr r2, _0203D434 @ =0x00000985 - str r0, [sp, #0x8c] - add r0, sp, #0xcc - mov r3, #0 - str r4, [sp] - bl PreprocessStringFromMessageId -_0203D3D0: - add r0, r5, #0xc - lsl r1, r0, #0x10 - asr r2, r1, #0x10 - add r3, sp, #0xcc - mov r0, r6 - mov r1, #4 - bl FUN_02026214 - mov r0, r6 - bl FUN_02027af0 -_0203D3F4: - add sp, sp, #0xcc - add sp, sp, #0x400 - pop {r3, r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0203D400: .4byte 0x020AFE70 -_0203D404: .4byte 0x020B0A48 -_0203D408: .4byte 0x00000976 -_0203D40C: .4byte 0x00000977 -_0203D410: .4byte 0x00000978 -_0203D414: .4byte 0x00000979 -_0203D418: .4byte 0x0000097B -_0203D41C: .4byte 0x0000097F -_0203D420: .4byte 0x0000097A -_0203D424: .4byte 0x0000097D -_0203D428: .4byte 0x00000981 -_0203D42C: .4byte 0x00000983 -_0203D430: .4byte 0x00000986 -_0203D434: .4byte 0x00000985 - arm_func_end FUN_0203cfcc - - arm_func_start FUN_0203d438 -FUN_0203d438: @ 0x0203D438 - push {r3, r4, r5, r6, r7, lr} - mov r6, r0 - mov r5, r1 - mov r0, #0x3c0 - mov r1, #8 - mov r4, r2 - bl MemAlloc - ldr r2, _0203D534 @ =0x020AFE74 - mov r1, #0x3c0 - str r0, [r2] - bl MemZero - ldr r0, _0203D534 @ =0x020AFE74 - mov ip, #2 - ldr r7, [r0] - add lr, r7, #0x14 -_0203D474: - ldm r6!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _0203D474 - ldm r6, {r0, r1, r2} - stm lr, {r0, r1, r2} - mov r1, #0 - ldr r0, _0203D534 @ =0x020AFE74 - str r1, [r7, #0x10] - ldr r1, [r0] - str r5, [r1, #8] - ldr r1, [r0] - str r4, [r1, #0xe4] - ldr r0, [r0] - add r0, r0, #0x8c - bl InitPreprocessorArgs - ldr r0, _0203D534 @ =0x020AFE74 - mov r2, #0x70000 - ldr r1, [r0] - str r2, [r1, #0xd8] - ldr r2, [r0] - ldrsh r1, [r2, #0x14] - str r1, [r2, #0x8c] - ldr r0, [r0] - add r0, r0, #0x190 - bl InitPortraitBox - ldr r0, _0203D534 @ =0x020AFE74 - ldr r0, [r0] - ldrsh r1, [r0, #0x14] - cmp r1, #0 - beq _0203D4F8 - add r0, r0, #0x190 - bl InitPortraitBoxWithMonsterId -_0203D4F8: - ldr r1, _0203D534 @ =0x020AFE74 - mvn r4, #1 - ldr r0, [r1] - mov r3, #0 - strb r4, [r0, #4] - ldr r2, [r1] - mov r0, #1 - strb r4, [r2, #5] - ldr r2, [r1] - strb r4, [r2, #6] - ldr r2, [r1] - str r3, [r2] - ldr r1, [r1] - strb r4, [r1, #0x1a0] - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0203D534: .4byte 0x020AFE74 - arm_func_end FUN_0203d438 - - arm_func_start FUN_0203d538 -FUN_0203d538: @ 0x0203D538 - push {r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x11c - ldr r1, _0203E4B0 @ =0x020AFE74 - ldr r4, [r1] - ldr r0, [r4] - cmp r0, #0x4c - addls pc, pc, r0, lsl #2 - b _0203EF9C -_0203D558: @ jump table - b _0203D68C @ case 0 - b _0203D7D4 @ case 1 - b _0203D89C @ case 2 - b _0203D8CC @ case 3 - b _0203D8EC @ case 4 - b _0203D954 @ case 5 - b _0203D984 @ case 6 - b _0203D9A4 @ case 7 - b _0203DA64 @ case 8 - b _0203DAA0 @ case 9 - b _0203DAEC @ case 10 - b _0203DB20 @ case 11 - b _0203DBB0 @ case 12 - b _0203DC68 @ case 13 - b _0203DC98 @ case 14 - b _0203DCB8 @ case 15 - b _0203DD68 @ case 16 - b _0203DDAC @ case 17 - b _0203DE38 @ case 18 - b _0203DE50 @ case 19 - b _0203DE6C @ case 20 - b _0203DEA0 @ case 21 - b _0203DEBC @ case 22 - b _0203DF1C @ case 23 - b _0203DF40 @ case 24 - b _0203DF5C @ case 25 - b _0203DF74 @ case 26 - b _0203DF90 @ case 27 - b _0203DFB0 @ case 28 - b _0203DFD8 @ case 29 - b _0203E10C @ case 30 - b _0203E150 @ case 31 - b _0203E038 @ case 32 - b _0203E0BC @ case 33 - b _0203E0EC @ case 34 - b _0203E198 @ case 35 - b _0203E1DC @ case 36 - b _0203E20C @ case 37 - b _0203E22C @ case 38 - b _0203E274 @ case 39 - b _0203E2A4 @ case 40 - b _0203E2C4 @ case 41 - b _0203E460 @ case 42 - b _0203E490 @ case 43 - b _0203E518 @ case 44 - b _0203E8E8 @ case 45 - b _0203E934 @ case 46 - b _0203E964 @ case 47 - b _0203E984 @ case 48 - b _0203E9A8 @ case 49 - b _0203E9D8 @ case 50 - b _0203E9F8 @ case 51 - b _0203E5B4 @ case 52 - b _0203E61C @ case 53 - b _0203E6B8 @ case 54 - b _0203E6D8 @ case 55 - b _0203E7EC @ case 56 - b _0203E80C @ case 57 - b _0203EA24 @ case 58 - b _0203EAB8 @ case 59 - b _0203EAE8 @ case 60 - b _0203EB08 @ case 61 - b _0203EB64 @ case 62 - b _0203EB94 @ case 63 - b _0203EBB4 @ case 64 - b _0203EC28 @ case 65 - b _0203EC5C @ case 66 - b _0203ECA8 @ case 67 - b _0203ECC4 @ case 68 - b _0203ED34 @ case 69 - b _0203ED50 @ case 70 - b _0203EE14 @ case 71 - b _0203EE30 @ case 72 - b _0203EE68 @ case 73 - b _0203EEBC @ case 74 - b _0203EF78 @ case 75 - b _0203EF94 @ case 76 -_0203D68C: - ldrb r0, [r4, #0x36] - cmp r0, #0 - beq _0203D6E4 - bl FUN_0201077c - cmp r0, #0 - bne _0203D6B4 - mov r0, #0x1e - bl GetPerformanceFlagWithChecks - cmp r0, #0 - bne _0203D73C -_0203D6B4: - ldr r1, _0203E4B0 @ =0x020AFE74 - mvn r0, #0 - ldr r4, [r1] - mov r2, #0 - ldr r3, [r4, #0x1c] - mul r0, r3, r0 - str r0, [r4, #0x1c] - ldr r0, [r1] - strb r2, [r0, #0x36] - ldr r0, [r1] - strh r2, [r0, #0x38] - b _0203D73C -_0203D6E4: - ldrsh r0, [r4, #0x38] - cmp r0, #0 - beq _0203D73C - mov r0, #0x1d - bl GetPerformanceFlagWithChecks - cmp r0, #0 - beq _0203D718 - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r0, [r0] - ldrsh r0, [r0, #0x38] - bl FUN_02062b64 - cmp r0, #0 - beq _0203D73C -_0203D718: - ldr r1, _0203E4B0 @ =0x020AFE74 - mov r3, #0 - ldr r2, [r1] - sub r0, r3, #1 - strh r3, [r2, #0x38] - ldr r2, [r1] - ldr r1, [r2, #0x1c] - mul r0, r1, r0 - str r0, [r2, #0x1c] -_0203D73C: - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r0, [r0] - ldr r0, [r0, #0xe4] - tst r0, #0x10 - bne _0203D7C0 - mov r0, #0x1f - bl GetPerformanceFlagWithChecks - cmp r0, #0 - bne _0203D7C0 - mov r5, #0 - mov r4, r5 - ldr sb, _0203E4B0 @ =0x020AFE74 - mvn r7, #0 - mov r8, #6 - b _0203D7B0 -_0203D778: - mul r6, r5, r8 - add r0, r1, r6 - ldrsh r0, [r0, #0x28] - bl GetItemCategory - cmp r0, #0xf - bne _0203D7AC - ldr r0, [sb] - add r0, r0, r6 - strh r4, [r0, #0x28] - ldr r2, [sb] - ldr r0, [r2, #0x1c] - mul r1, r0, r7 - str r1, [r2, #0x1c] -_0203D7AC: - add r5, r5, #1 -_0203D7B0: - ldr r1, [sb] - ldr r0, [r1, #0x20] - cmp r5, r0 - blt _0203D778 -_0203D7C0: - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #1 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203D7D4: - ldr r0, [r4, #0x1c] - cmp r0, #0 - movle r0, #7 - strle r0, [r4] - ble _0203EF9C - str r0, [r4, #0xb0] - ldr r4, [r1] - mov r0, #0xa - ldr r2, [r4, #0x1c] - mul r3, r2, r0 - str r3, [r4, #0xb4] - ldr r2, [r1] - ldr r1, [r2, #8] - cmp r1, #0 - beq _0203D890 - cmp r1, #2 - bne _0203D824 - ldr r4, _0203E4B4 @ =0x00000289 - bl FUN_0203f00c - b _0203D864 -_0203D824: - cmp r1, #3 - bne _0203D838 - add r4, r0, #0x280 - bl FUN_0203f00c - b _0203D864 -_0203D838: - cmp r1, #4 - movne r4, #0x288 - bne _0203D864 - mov r0, #0 - mov r1, #0x69 - bl LoadScriptVariableValue - add r0, r0, #0x8b - add r0, r0, #0x200 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - bl FUN_0203f00c -_0203D864: - ldr r1, _0203E4B0 @ =0x020AFE74 - ldr r0, _0203E4B8 @ =0x0000101C - ldr r2, [r1] - mov r1, r4 - add r2, r2, #0x8c - bl FUN_02046be8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #2 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203D890: - mov r0, #4 - str r0, [r2] - b _0203EF9C -_0203D89C: - bl FUN_02046c78 - cmp r0, #0 - beq _0203EF9C - bl FUN_0203f05c - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r3, #0xa - ldr r2, [r0] - mov r1, #3 - str r3, [r2, #0x188] - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203D8CC: - ldr r2, [r4, #0x188] - sub r0, r2, #1 - str r0, [r4, #0x188] - cmp r2, #0 - ldrle r0, [r1] - movle r1, #4 - strle r1, [r0] - b _0203EF9C -_0203D8EC: - mov r0, #4 - bl thunk_FUN_0201820c - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r0, [r0] - ldr r0, [r0, #0x1c] - bl AddMoneyCarried - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r2, [r0] - ldr r0, [r2, #8] - cmp r0, #2 - ldreq r1, _0203E4BC @ =0x0000026F - beq _0203D934 - cmp r0, #3 - moveq r1, #0x270 - beq _0203D934 - cmp r0, #4 - ldreq r1, _0203E4C0 @ =0x00000271 - ldrne r1, _0203E4C4 @ =0x0000026E -_0203D934: - ldr r0, _0203E4B8 @ =0x0000101C - add r2, r2, #0x8c - bl FUN_02046be8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #5 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203D954: - bl FUN_02046c78 - cmp r0, #0 - beq _0203EF9C - bl FUN_0203f05c - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r3, #0xa - ldr r2, [r0] - mov r1, #6 - str r3, [r2, #0x188] - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203D984: - ldr r2, [r4, #0x188] - sub r0, r2, #1 - str r0, [r4, #0x188] - cmp r2, #0 - ldrle r0, [r1] - movle r1, #7 - strle r1, [r0] - b _0203EF9C -_0203D9A4: - ldrsh r0, [r4, #0x38] - cmp r0, #0 - beq _0203D9BC - ldrb r0, [r4, #0x36] - cmp r0, #0 - beq _0203D9C8 -_0203D9BC: - mov r0, #0x29 - str r0, [r4] - b _0203EF9C -_0203D9C8: - ldrsh r0, [r4, #0x14] - str r0, [r4, #0x8c] - ldr r2, [r1] - ldrsh r0, [r2, #0x38] - str r0, [r2, #0x90] - ldr r1, [r1] - ldr r0, [r1, #8] - cmp r0, #0 - beq _0203DA58 - cmp r0, #2 - bne _0203DA00 - ldr r4, _0203E4C8 @ =0x0000029A - bl FUN_0203f00c - b _0203DA2C -_0203DA00: - cmp r0, #4 - ldrne r4, _0203E4CC @ =0x00000299 - bne _0203DA2C - mov r0, #0 - mov r1, #0x69 - bl LoadScriptVariableValue - add r0, r0, #0x9b - add r0, r0, #0x200 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - bl FUN_0203f00c -_0203DA2C: - ldr r1, _0203E4B0 @ =0x020AFE74 - ldr r0, _0203E4D0 @ =0x00003008 - ldr r2, [r1] - mov r1, r4 - add r2, r2, #0x8c - bl FUN_02046be8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #8 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203DA58: - mov r0, #0xb - str r0, [r1] - b _0203EF9C -_0203DA64: - bl FUN_02046c78 - cmp r0, #0 - beq _0203EF9C - mov r0, #0 - ldr r3, _0203E4D4 @ =0x0209C884 - mov r2, r0 - mov r1, #0x11 - bl FUN_0202a5cc - ldr r1, _0203E4B0 @ =0x020AFE74 - mov r2, #9 - ldr r3, [r1] - strb r0, [r3, #4] - ldr r0, [r1] - str r2, [r0] - b _0203EF9C -_0203DAA0: - ldrsb r0, [r4, #4] - bl FUN_0202ab40 - cmp r0, #0 - bne _0203EF9C - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r0, [r0] - ldrsb r0, [r0, #4] - bl FUN_0202abb0 - ldr r1, _0203E4B0 @ =0x020AFE74 - ldr r1, [r1] - str r0, [r1, #0x18c] - bl FUN_0203f05c - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r2, #0xa - ldr r1, [r0] - str r2, [r1, #0x188] - ldr r0, [r0] - str r2, [r0] - b _0203EF9C -_0203DAEC: - ldr r2, [r4, #0x188] - sub r0, r2, #1 - str r0, [r4, #0x188] - cmp r2, #0 - bgt _0203EF9C - ldr r1, [r1] - ldr r0, [r1, #0x18c] - cmp r0, #0 - moveq r0, #0xb - streq r0, [r1] - movne r0, #0x23 - strne r0, [r1] - b _0203EF9C -_0203DB20: - ldr r3, _0203E4D8 @ =0x0209C846 - add r2, sp, #0x22 - mov r1, #4 -_0203DB2C: - ldrh r0, [r3], #2 - subs r1, r1, #1 - strh r0, [r2], #2 - bne _0203DB2C - ldrsh r1, [r4, #0x38] - add r0, sp, #0x22 - mov r2, #1 - mov r3, #0 - bl FUN_02053a0c - ldr r0, _0203E4B0 @ =0x020AFE74 - add r1, sp, #0x22 - ldr r0, [r0] - ldr r3, _0203E4DC @ =0x0209C844 - str r1, [sp] - ldrsh r1, [r0, #0x38] - add r0, r0, #0x40 - mov r2, #0 - bl FUN_02052e2c - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r0, [r0] - add r0, r0, #0x40 - bl FUN_02055d4c - ldr r1, _0203E4B0 @ =0x020AFE74 - ldr r2, [r1] - str r0, [r2, #0x3b8] - ldr r1, [r1] - ldr r0, [r1, #0x3b8] - cmp r0, #0 - movne r0, #0xc - strne r0, [r1] - moveq r0, #0x1e - streq r0, [r1] - b _0203EF9C -_0203DBB0: - ldr r0, [r4, #0x18] - cmp r0, #1 - ble _0203DBD0 - lsl r1, r0, #0x10 - ldr r0, [r4, #0x3b8] - asr r1, r1, #0x10 - mov r2, #1 - bl FUN_020544c8 -_0203DBD0: - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r2, [r0] - ldrsh r1, [r2, #0x38] - str r1, [r2, #0x8c] - ldr r4, [r0] - ldr r0, [r4, #8] - cmp r0, #2 - bne _0203DC18 - ldr r0, _0203E4B8 @ =0x0000101C - ldr r1, _0203E4E0 @ =0x0000027A - add r2, r4, #0x8c - bl FUN_02046be8 - bl FUN_0203f00c - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0xd - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203DC18: - cmp r0, #4 - movne r0, #0xf - strne r0, [r4] - bne _0203EF9C - mov r0, #0 - mov r1, #0x69 - bl LoadScriptVariableValue - add r0, r0, #0x7b - add r0, r0, #0x200 - lsl r1, r0, #0x10 - ldr r0, _0203E4B8 @ =0x0000101C - lsr r1, r1, #0x10 - add r2, r4, #0x8c - bl FUN_02046be8 - bl FUN_0203f00c - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0xd - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203DC68: - bl FUN_02046c78 - cmp r0, #0 - beq _0203EF9C - bl FUN_0203f05c - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r3, #0xa - ldr r2, [r0] - mov r1, #0xe - str r3, [r2, #0x188] - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203DC98: - ldr r2, [r4, #0x188] - sub r0, r2, #1 - str r0, [r4, #0x188] - cmp r2, #0 - ldrle r0, [r1] - movle r1, #0xf - strle r1, [r0] - b _0203EF9C -_0203DCB8: - ldrsh r1, [r4, #0x38] - add r0, r4, #0xb5 - add r0, r0, #0x200 - mov r2, #0x4e - bl GetNameWithGender - ldr r3, _0203E4B0 @ =0x020AFE74 - ldr r0, _0203E4E4 @ =0x0000100C - ldr r4, [r3] - ldr r1, _0203E4E8 @ =0x000002A6 - add r2, r4, #0xb5 - add r2, r2, #0x200 - str r2, [r4, #0xc4] - ldr r2, [r3] - add r2, r2, #0x8c - bl FUN_02046be8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r2, #0xa - ldr r0, [r0] - ldr r1, [r0, #0x3b8] - add r0, r0, #0xa1 - add r0, r0, #0x100 - add r1, r1, #0x3a - bl StrncpySimple - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r2, #0xa - ldr r0, [r0] - ldr r1, [r0, #0x3b8] - add r0, r0, #0xab - add r0, r0, #0x100 - add r1, r1, #0x3a - bl MemcpySimple - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r2, #0xa - ldr r1, [r0] - add r0, r1, #0xb5 - add r0, r0, #0x100 - add r1, r1, #0xab - add r1, r1, #0x100 - bl StrncpySimpleNoPadSafe - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x10 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203DD68: - bl FUN_02046c78 - cmp r0, #0 - beq _0203EF9C - ldr r0, _0203E4EC @ =0x0209C85C - mov r4, #2 - ldr r1, _0203E4F0 @ =0x00300011 - ldr r3, _0203E4F4 @ =0x0209C86C - mov r2, #0 - str r4, [sp] - bl CreateNormalMenu - ldr r1, _0203E4B0 @ =0x020AFE74 - mov r2, #0x11 - ldr r3, [r1] - strb r0, [r3, #0x1a0] - ldr r0, [r1] - str r2, [r0] - b _0203EF9C -_0203DDAC: - add r0, r4, #0x100 - ldrsb r0, [r0, #0xa0] - bl IsNormalMenuActive - cmp r0, #0 - bne _0203EF9C - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r0, [r0] - add r0, r0, #0x100 - ldrsb r0, [r0, #0xa0] - bl GetNormalMenuResult - ldr r1, _0203E4B0 @ =0x020AFE74 - mov r4, r0 - ldr r0, [r1] - add r0, r0, #0x100 - ldrsb r0, [r0, #0xa0] - bl FreeNormalMenu - ldr r0, _0203E4B0 @ =0x020AFE74 - mvn r1, #1 - ldr r0, [r0] - strb r1, [r0, #0x1a0] - bl thunk_FUN_020473a4 - cmp r4, #0 - beq _0203DE10 - cmp r4, #1 - b _0203DE24 -_0203DE10: - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x12 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203DE24: - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x20 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203DE38: - bl FUN_0230D92C - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x13 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203DE50: - bl FUN_0230D220 - cmp r0, #0 - ldreq r0, _0203E4B0 @ =0x020AFE74 - moveq r1, #0x14 - ldreq r0, [r0] - streq r1, [r0] - b _0203EF9C -_0203DE6C: - add r0, r4, #0xab - add r2, r4, #0xa1 - add r1, r0, #0x100 - add r3, r2, #0x100 - mov r0, #2 - mov r2, #0 - bl ShowKeyboard - bl FUN_02310BDC - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x15 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203DEA0: - bl FUN_0230D220 - cmp r0, #0 - ldreq r0, _0203E4B0 @ =0x020AFE74 - moveq r1, #0x16 - ldreq r0, [r0] - streq r1, [r0] - b _0203EF9C -_0203DEBC: - bl GetKeyboardStatus - cmp r0, #3 - bne _0203EF9C - bl GetKeyboardStringResult - ldr r2, _0203E4B0 @ =0x020AFE74 - mov r1, r0 - ldr r0, [r2] - mov r2, #0xa - add r0, r0, #0xab - add r0, r0, #0x100 - bl MemcpySimple - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r2, #0xa - ldr r1, [r0] - add r0, r1, #0xb5 - add r1, r1, #0xab - add r0, r0, #0x100 - add r1, r1, #0x100 - bl StrncpySimpleNoPadSafe - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x17 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203DF1C: - bl FUN_02037468 - cmp r0, #0 - beq _0203EF9C - bl FUN_0230D92C - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x18 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203DF40: - bl FUN_0230D220 - cmp r0, #0 - ldreq r0, _0203E4B0 @ =0x020AFE74 - moveq r1, #0x19 - ldreq r0, [r0] - streq r1, [r0] - b _0203EF9C -_0203DF5C: - bl FUN_0230D92C - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x1a - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203DF74: - bl FUN_0230D220 - cmp r0, #0 - ldreq r0, _0203E4B0 @ =0x020AFE74 - moveq r1, #0x1b - ldreq r0, [r0] - streq r1, [r0] - b _0203EF9C -_0203DF90: - add r0, r4, #0xb5 - add r0, r0, #0x100 - bl FUN_0203909c - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x1c - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203DFB0: - bl FUN_0203931c - ldr r1, _0203E4B0 @ =0x020AFE74 - ldr r2, [r1] - str r0, [r2, #0x3bc] - ldr r1, [r1] - ldr r0, [r1, #0x3bc] - cmp r0, #0 - movge r0, #0x1d - strge r0, [r1] - b _0203EF9C -_0203DFD8: - bl FUN_02039218 - cmp r0, #0 - beq _0203EF9C - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r1, [r0] - ldr r0, [r1, #0x3bc] - cmp r0, #0 - beq _0203E000 - cmp r0, #1 - b _0203E02C -_0203E000: - ldr r0, [r1, #0x3b8] - add r1, r1, #0xab - add r0, r0, #0x3a - add r1, r1, #0x100 - mov r2, #0xa - bl MemcpySimple - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x20 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E02C: - mov r0, #0x12 - str r0, [r1] - b _0203EF9C -_0203E038: - ldrsh r0, [r4, #0x38] - mov r2, #0xa - orr r0, r0, #0x80000 - str r0, [r4, #0x8c] - ldr r1, [r1] - add r0, r1, #0xb5 - add r1, r1, #0xab - add r0, r0, #0x100 - add r1, r1, #0x100 - bl StrncpySimpleNoPadSafe - ldr r1, _0203E4B0 @ =0x020AFE74 - ldr r2, [r1] - add r0, r2, #0xb5 - add r0, r0, #0x100 - str r0, [r2, #0xc4] - ldr r0, [r1] - ldr r0, [r0, #8] - cmp r0, #2 - ldreq r4, _0203E4F8 @ =0x00000283 - mov r0, #5 - ldrne r4, _0203E4FC @ =0x00000281 - bl thunk_FUN_0201820c - ldr r1, _0203E4B0 @ =0x020AFE74 - ldr r0, _0203E4B8 @ =0x0000101C - ldr r2, [r1] - mov r1, r4 - add r2, r2, #0x8c - bl FUN_02046be8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x21 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E0BC: - bl FUN_02046c78 - cmp r0, #0 - beq _0203EF9C - bl FUN_0203f05c - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r3, #0xa - ldr r2, [r0] - mov r1, #0x22 - str r3, [r2, #0x188] - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E0EC: - ldr r2, [r4, #0x188] - sub r0, r2, #1 - str r0, [r4, #0x188] - cmp r2, #0 - ldrle r0, [r1] - movle r1, #0x29 - strle r1, [r0] - b _0203EF9C -_0203E10C: - bl thunk_FUN_020473a4 - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r1, [r0] - ldr r0, [r1, #8] - sub r0, r0, #2 - cmp r0, #1 - add r0, r1, #0x40 - bhi _0203E138 - mov r1, #1 - bl FUN_023061E4 - b _0203E13C -_0203E138: - bl FUN_023061CC -_0203E13C: - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x1f - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E150: - bl FUN_02306C9C - cmp r0, #3 - cmpne r0, #4 - bne _0203EF9C - bl FUN_02306C64 - cmp r0, #0 - ldreq r0, _0203E4B0 @ =0x020AFE74 - moveq r1, #0x23 - ldreq r0, [r0] - streq r1, [r0] - beq _0203EF9C - ldr r1, _0203E4B0 @ =0x020AFE74 - mov r2, #0xc - ldr r3, [r1] - str r0, [r3, #0x3b8] - ldr r0, [r1] - str r2, [r0] - b _0203EF9C -_0203E198: - ldrsh r1, [r4, #0x38] - add r0, r4, #0xe8 - bl GetNameRaw - ldr r2, _0203E4B0 @ =0x020AFE74 - ldr r0, _0203E4B8 @ =0x0000101C - ldr r4, [r2] - mov r1, #0x284 - add r3, r4, #0xe8 - str r3, [r4, #0xc4] - ldr r2, [r2] - add r2, r2, #0x8c - bl FUN_02046be8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x24 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E1DC: - bl FUN_02046c78 - cmp r0, #0 - beq _0203EF9C - bl FUN_0203f05c - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r3, #0xa - ldr r2, [r0] - mov r1, #0x25 - str r3, [r2, #0x188] - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E20C: - ldr r2, [r4, #0x188] - sub r0, r2, #1 - str r0, [r4, #0x188] - cmp r2, #0 - ldrle r0, [r1] - movle r1, #0x26 - strle r1, [r0] - b _0203EF9C -_0203E22C: - mov r0, #4 - bl thunk_FUN_0201820c - mov r0, #0x3e8 - bl AddMoneyCarried - ldr r1, _0203E4B0 @ =0x020AFE74 - mov r3, #0x3e8 - ldr r2, [r1] - ldr r0, _0203E4B8 @ =0x0000101C - str r3, [r2, #0xb0] - ldr r2, [r1] - ldr r1, _0203E500 @ =0x00000285 - add r2, r2, #0x8c - bl FUN_02046be8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x27 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E274: - bl FUN_02046c78 - cmp r0, #0 - beq _0203EF9C - bl FUN_0203f05c - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r3, #0xa - ldr r2, [r0] - mov r1, #0x28 - str r3, [r2, #0x188] - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E2A4: - ldr r2, [r4, #0x188] - sub r0, r2, #1 - str r0, [r4, #0x188] - cmp r2, #0 - ldrle r0, [r1] - movle r1, #0x29 - strle r1, [r0] - b _0203EF9C -_0203E2C4: - ldr r1, [r4, #0x10] - ldr r0, [r4, #0x20] - cmp r1, r0 - movge r0, #0x3a - strge r0, [r4] - bge _0203EF9C - mov r0, #6 - mla r0, r1, r0, r4 - ldrsh r0, [r0, #0x28] - mov r1, #0 - strh r0, [sp, #0x20] - strb r1, [sp, #0x1c] - bl FUN_0200cca8 - cmp r0, #0 - beq _0203E44C - ldrsh r0, [sp, #0x20] - bl IsThrownItem - cmp r0, #0 - bne _0203E328 - ldrsh r1, [sp, #0x20] - cmp r1, #0x16c - blt _0203E348 - ldr r0, _0203E504 @ =0x0000018F - cmp r1, r0 - bgt _0203E348 -_0203E328: - ldr r1, _0203E4B0 @ =0x020AFE74 - mov r0, #6 - ldr r2, [r1] - ldr r1, [r2, #0x10] - mla r0, r1, r0, r2 - ldrh r0, [r0, #0x26] - strh r0, [sp, #0x1e] - b _0203E350 -_0203E348: - mov r0, #0 - strh r0, [sp, #0x1e] -_0203E350: - ldr r3, _0203E4B0 @ =0x020AFE74 - mov r0, #1 - ldr r6, [r3] - strb r0, [sp, #0x1c] - ldr r1, [r6, #0x10] - mov r0, #6 - mla r5, r1, r0, r6 - ldrh r0, [sp, #0x1c] - mov r4, #0 - ldr r2, _0203E508 @ =0x0209C850 - strh r0, [r5, #0x24] - ldrh r0, [sp, #0x1e] - add r1, sp, #0x1c - strh r0, [r5, #0x26] - ldrh r0, [sp, #0x20] - strh r0, [r5, #0x28] - ldrsh r0, [sp, #0x20] - str r0, [r6, #0x9c] - ldr r0, [r3] - str r4, [r0, #0xb0] - ldr r0, [r3] - add r0, r0, #0xe8 - bl FUN_0200d670 - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r2, [r0] - add r1, r2, #0xe8 - str r1, [r2, #0xc4] - ldr r2, [r0] - ldrsh r1, [r2, #0x14] - str r1, [r2, #0x8c] - ldr r1, [r0] - ldr r0, [r1, #8] - cmp r0, #0 - beq _0203E440 - cmp r0, #2 - bne _0203E3EC - ldr r4, _0203E50C @ =0x00000296 - bl FUN_0203f00c - b _0203E414 -_0203E3EC: - cmp r0, #3 - bne _0203E400 - ldr r4, _0203E510 @ =0x00000297 - bl FUN_0203f00c - b _0203E414 -_0203E400: - cmp r0, #4 - ldrne r4, _0203E514 @ =0x00000295 - bne _0203E414 - mov r4, #0x298 - bl FUN_0203f00c -_0203E414: - ldr r1, _0203E4B0 @ =0x020AFE74 - ldr r0, _0203E4B8 @ =0x0000101C - ldr r2, [r1] - mov r1, r4 - add r2, r2, #0x8c - bl FUN_02046be8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x2a - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E440: - mov r0, #0x2c - str r0, [r1] - b _0203EF9C -_0203E44C: - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x33 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E460: - bl FUN_02046c78 - cmp r0, #0 - beq _0203EF9C - bl FUN_0203f05c - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r3, #0xa - ldr r2, [r0] - mov r1, #0x2b - str r3, [r2, #0x188] - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E490: - ldr r2, [r4, #0x188] - sub r0, r2, #1 - str r0, [r4, #0x188] - cmp r2, #0 - ldrle r0, [r1] - movle r1, #0x2c - strle r1, [r0] - b _0203EF9C - .align 2, 0 -_0203E4B0: .4byte 0x020AFE74 -_0203E4B4: .4byte 0x00000289 -_0203E4B8: .4byte 0x0000101C -_0203E4BC: .4byte 0x0000026F -_0203E4C0: .4byte 0x00000271 -_0203E4C4: .4byte 0x0000026E -_0203E4C8: .4byte 0x0000029A -_0203E4CC: .4byte 0x00000299 -_0203E4D0: .4byte 0x00003008 -_0203E4D4: .4byte 0x0209C884 -_0203E4D8: .4byte 0x0209C846 -_0203E4DC: .4byte 0x0209C844 -_0203E4E0: .4byte 0x0000027A -_0203E4E4: .4byte 0x0000100C -_0203E4E8: .4byte 0x000002A6 -_0203E4EC: .4byte 0x0209C85C -_0203E4F0: .4byte 0x00300011 -_0203E4F4: .4byte 0x0209C86C -_0203E4F8: .4byte 0x00000283 -_0203E4FC: .4byte 0x00000281 -_0203E500: .4byte 0x00000285 -_0203E504: .4byte 0x0000018F -_0203E508: .4byte 0x0209C850 -_0203E50C: .4byte 0x00000296 -_0203E510: .4byte 0x00000297 -_0203E514: .4byte 0x00000295 -_0203E518: - ldr r1, [r4, #0x10] - add r2, r4, #0x24 - mov r0, #6 - mla r0, r1, r0, r2 - bl FUN_020103ac - cmp r0, #0 - beq _0203E5A0 - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r0, [r0] - ldr r0, [r0, #0xe4] - tst r0, #2 - bne _0203E550 - mov r0, #4 - bl thunk_FUN_0201820c -_0203E550: - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r2, [r0] - ldr r0, [r2, #0xe4] - tst r0, #4 - bne _0203E588 - ldr r1, _0203EFA8 @ =0x00000273 - add r2, r2, #0x8c - mov r0, #0x1c - bl FUN_02046be8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x2e - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E588: - tst r0, #8 - movne r0, #0x30 - strne r0, [r2] - moveq r0, #0x33 - streq r0, [r2] - b _0203EF9C -_0203E5A0: - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x34 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E5B4: - ldr r2, [r4, #0x10] - mov r0, #6 - mla r1, r2, r0, r4 - ldrsh r2, [r1, #0x28] - mov r1, #0 - strh r2, [sp, #0x1a] - ldr r2, [r4, #0x10] - mla r0, r2, r0, r4 - ldrh r0, [r0, #0x26] - strh r0, [sp, #0x18] - strb r1, [sp, #0x16] - bl thunk_FUN_020473a4 - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r0, [r0] - ldr r0, [r0, #0xe4] - tst r0, #1 - moveq r1, #1 - movne r1, #0 - add r0, sp, #0x16 - and r1, r1, #0xff - bl FUN_020453f8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x35 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E61C: - bl FUN_02046028 - cmp r0, #2 - beq _0203E658 - cmp r0, #3 - beq _0203E688 - cmp r0, #4 - bne _0203EF9C - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r3, #0xa - ldr r2, [r0] - mov r1, #0x2d - str r3, [r2, #0x188] - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E658: - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r0, [r0] - add r0, r0, #0xde - bl FUN_02045fd0 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r3, #0xa - ldr r2, [r0] - mov r1, #0x36 - str r3, [r2, #0x188] - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E688: - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r0, [r0] - add r0, r0, #0xde - bl FUN_02045fd0 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r3, #0xa - ldr r2, [r0] - mov r1, #0x38 - str r3, [r2, #0x188] - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E6B8: - ldr r2, [r4, #0x188] - sub r0, r2, #1 - str r0, [r4, #0x188] - cmp r2, #0 - ldrle r0, [r1] - movle r1, #0x37 - strle r1, [r0] - b _0203EF9C -_0203E6D8: - ldr r1, [r4, #0x10] - add r2, r4, #0x24 - mov r0, #6 - mla r0, r1, r0, r2 - bl FUN_020103ac - cmp r0, #0 - beq _0203E7D8 - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r0, [r0] - ldr r0, [r0, #0xe4] - tst r0, #2 - bne _0203E710 - mov r0, #4 - bl thunk_FUN_0201820c -_0203E710: - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #6 - ldr r5, [r0] - mov r6, #0 - ldr r4, [r5, #0x10] - ldr r2, _0203E508 @ =0x0209C850 - mla r3, r4, r1, r5 - ldrsh r3, [r3, #0x28] - str r3, [r5, #0x9c] - ldr r3, [r0] - str r6, [r3, #0xb0] - ldr r4, [r0] - ldrsh r3, [r4, #0xdc] - str r3, [r4, #0xa4] - ldr r3, [r0] - str r6, [r3, #0xb8] - ldr r5, [r0] - ldrsh r3, [r5, #0xe2] - add r4, r5, #0x24 - add r0, r5, #0xe8 - strh r3, [sp, #0x14] - ldrh r3, [r5, #0xe0] - strb r6, [sp, #0x10] - strh r3, [sp, #0x12] - ldr r3, [r5, #0x10] - mla r1, r3, r1, r4 - bl FUN_0200d670 - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r2, _0203E508 @ =0x0209C850 - ldr r0, [r0] - add r1, sp, #0x10 - add r0, r0, #0x138 - bl FUN_0200d670 - ldr r2, _0203E4B0 @ =0x020AFE74 - ldr r0, _0203E4B8 @ =0x0000101C - ldr r4, [r2] - ldr r1, _0203EFAC @ =0x00000275 - add r3, r4, #0x138 - str r3, [r4, #0xcc] - ldr r4, [r2] - add r3, r4, #0xe8 - str r3, [r4, #0xc4] - ldr r2, [r2] - add r2, r2, #0x8c - bl FUN_02046be8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x2e - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E7D8: - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x34 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E7EC: - ldr r2, [r4, #0x188] - sub r0, r2, #1 - str r0, [r4, #0x188] - cmp r2, #0 - ldrle r0, [r1] - movle r1, #0x39 - strle r1, [r0] - b _0203EF9C -_0203E80C: - ldr r1, [r4, #0x10] - add r2, r4, #0x24 - mov r0, #6 - mla r0, r1, r0, r2 - bl FUN_020103ac - cmp r0, #0 - beq _0203E8D4 - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r0, [r0] - ldr r0, [r0, #0xe4] - tst r0, #2 - bne _0203E844 - mov r0, #4 - bl thunk_FUN_0201820c -_0203E844: - ldr r1, _0203E4B0 @ =0x020AFE74 - mov r0, #6 - ldr r6, [r1] - mov r5, #0 - ldr r4, [r6, #0x10] - ldr r2, _0203E508 @ =0x0209C850 - mla r3, r4, r0, r6 - ldrsh r3, [r3, #0x28] - str r3, [r6, #0x9c] - ldr r3, [r1] - str r5, [r3, #0xb0] - ldr r4, [r1] - ldrsh r3, [r4, #0xdc] - str r3, [r4, #0xa4] - ldr r3, [r1] - str r5, [r3, #0xb8] - ldr r4, [r1] - ldr r3, [r4, #0x10] - add r1, r4, #0x24 - mla r1, r3, r0, r1 - add r0, r4, #0xe8 - bl FUN_0200d670 - ldr r2, _0203E4B0 @ =0x020AFE74 - ldr r0, _0203E4B8 @ =0x0000101C - ldr r4, [r2] - ldr r1, _0203EFB0 @ =0x00000277 - add r3, r4, #0xe8 - str r3, [r4, #0xc4] - ldr r2, [r2] - add r2, r2, #0x8c - bl FUN_02046be8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x2e - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E8D4: - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x34 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E8E8: - ldr r2, [r4, #0x188] - sub r0, r2, #1 - str r0, [r4, #0x188] - cmp r2, #0 - bgt _0203EF9C - ldr r2, [r1] - ldr r0, _0203E4B8 @ =0x0000101C - ldr r1, _0203EFB4 @ =0x00000286 - add r2, r2, #0x8c - bl FUN_02046be8 - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r0, [r0] - add r0, r0, #0xde - bl FUN_02045fd0 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x2e - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E934: - bl FUN_02046c78 - cmp r0, #0 - beq _0203EF9C - bl FUN_0203f05c - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r3, #0xa - ldr r2, [r0] - mov r1, #0x2f - str r3, [r2, #0x188] - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E964: - ldr r2, [r4, #0x188] - sub r0, r2, #1 - str r0, [r4, #0x188] - cmp r2, #0 - ldrle r0, [r1] - movle r1, #0x33 - strle r1, [r0] - b _0203EF9C -_0203E984: - ldr r0, _0203E4B8 @ =0x0000101C - add r2, r4, #0x8c - mov r1, #0x2cc - bl FUN_02046be8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x31 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E9A8: - bl FUN_02046c78 - cmp r0, #0 - beq _0203EF9C - bl FUN_0203f05c - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r3, #0xa - ldr r2, [r0] - mov r1, #0x32 - str r3, [r2, #0x188] - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203E9D8: - ldr r2, [r4, #0x188] - sub r0, r2, #1 - str r0, [r4, #0x188] - cmp r2, #0 - ldrle r0, [r1] - movle r1, #0x33 - strle r1, [r0] - b _0203EF9C -_0203E9F8: - ldr r0, [r4, #0x10] - add r0, r0, #1 - str r0, [r4, #0x10] - ldr r1, [r1] - ldr r0, [r1, #0x10] - cmp r0, #3 - movlt r0, #0x29 - strlt r0, [r1] - movge r0, #0x3a - strge r0, [r1] - b _0203EF9C -_0203EA24: - ldrb r0, [r4, #0x36] - cmp r0, #0 - moveq r0, #0x40 - streq r0, [r4] - beq _0203EF9C - ldr r0, [r4, #8] - cmp r0, #0 - beq _0203EAAC - cmp r0, #2 - bne _0203EA58 - ldr r4, _0203EFB8 @ =0x00000292 - bl FUN_0203f00c - b _0203EA80 -_0203EA58: - cmp r0, #3 - bne _0203EA6C - ldr r4, _0203EFBC @ =0x00000293 - bl FUN_0203f00c - b _0203EA80 -_0203EA6C: - cmp r0, #4 - ldrne r4, _0203EFC0 @ =0x00000291 - bne _0203EA80 - mov r4, #0x294 - bl FUN_0203f00c -_0203EA80: - ldr r1, _0203E4B0 @ =0x020AFE74 - ldr r0, _0203E4B8 @ =0x0000101C - ldr r2, [r1] - mov r1, r4 - add r2, r2, #0x8c - bl FUN_02046be8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x3b - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203EAAC: - mov r0, #0x3d - str r0, [r4] - b _0203EF9C -_0203EAB8: - bl FUN_02046c78 - cmp r0, #0 - beq _0203EF9C - bl FUN_0203f05c - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r3, #0xa - ldr r2, [r0] - mov r1, #0x3c - str r3, [r2, #0x188] - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203EAE8: - ldr r2, [r4, #0x188] - sub r0, r2, #1 - str r0, [r4, #0x188] - cmp r2, #0 - ldrle r0, [r1] - movle r1, #0x3d - strle r1, [r0] - b _0203EF9C -_0203EB08: - mov r0, #5 - bl thunk_FUN_0201820c - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r0, [r0] - ldrsh r0, [r0, #0x38] - bl FUN_02010794 - mov r0, #4 - bl RandIntSafe - add r0, r0, #6 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_020107f4 - ldr r1, _0203E4B0 @ =0x020AFE74 - ldr r0, _0203E4B8 @ =0x0000101C - ldr r2, [r1] - ldr r1, _0203EFC4 @ =0x00000272 - add r2, r2, #0x8c - bl FUN_02046be8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x3e - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203EB64: - bl FUN_02046c78 - cmp r0, #0 - beq _0203EF9C - bl FUN_0203f05c - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r3, #0xa - ldr r2, [r0] - mov r1, #0x3f - str r3, [r2, #0x188] - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203EB94: - ldr r2, [r4, #0x188] - sub r0, r2, #1 - str r0, [r4, #0x188] - cmp r2, #0 - ldrle r0, [r1] - movle r1, #0x40 - strle r1, [r0] - b _0203EF9C -_0203EBB4: - ldr r0, [r4, #0x3c] - cmp r0, #0 - moveq r0, #0x4c - streq r0, [r4] - beq _0203EF9C - add r0, sp, #0xcc - bl InitPreprocessorArgs - bl FUN_02050c74 - ldr r1, _0203E4B0 @ =0x020AFE74 - ldr r2, [r1] - strb r0, [r2, #0xc] - ldr r0, [r1] - ldr r0, [r0, #0x3c] - bl FUN_02050c10 - mov r0, #4 - bl thunk_FUN_0201820c - ldr r1, _0203E4B0 @ =0x020AFE74 - ldr r0, _0203E4B8 @ =0x0000101C - ldr r2, [r1] - ldr r1, _0203EFC8 @ =0x000002A1 - ldr r3, [r2, #0x3c] - add r2, sp, #0xcc - str r3, [sp, #0xf0] - bl FUN_02046be8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x41 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203EC28: - bl FUN_02046c78 - cmp r0, #0 - beq _0203EF9C - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r4, [r0] - bl FUN_02050c74 - ldrb r1, [r4, #0xc] - cmp r1, r0 - movne r0, #0x42 - strne r0, [r4] - moveq r0, #0x4c - streq r0, [r4] - b _0203EF9C -_0203EC5C: - mov r0, #2 - bl thunk_FUN_0201820c - add r0, sp, #0x7c - bl InitPreprocessorArgs - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r0, [r0] - ldrb r0, [r0, #0xc] - str r0, [sp, #0x94] - bl FUN_02050c74 - str r0, [sp, #0x98] - ldr r0, _0203E4B8 @ =0x0000101C - ldr r1, _0203EFCC @ =0x000002A2 - add r2, sp, #0x7c - bl FUN_02046be8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x43 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203ECA8: - bl FUN_02046c78 - cmp r0, #0 - ldrne r0, _0203E4B0 @ =0x020AFE74 - movne r1, #0x44 - ldrne r0, [r0] - strne r1, [r0] - b _0203EF9C -_0203ECC4: - add r0, sp, #0x2c - bl InitPreprocessorArgs - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r0, [r0] - ldrb r0, [r0, #0xc] - bl GetRankUpEntry - ldr r0, [r0, #8] - str r0, [sp, #0x50] - bl FUN_02050c74 - bl GetRankUpEntry - ldr r1, [r0, #8] - ldr r0, [sp, #0x50] - str r1, [sp, #0x54] - cmp r0, r1 - ldreq r0, _0203E4B0 @ =0x020AFE74 - moveq r1, #0x46 - ldreq r0, [r0] - streq r1, [r0] - beq _0203EF9C - ldr r0, _0203E4B8 @ =0x0000101C - ldr r1, _0203EFD0 @ =0x000002A3 - add r2, sp, #0x2c - bl FUN_02046be8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x45 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203ED34: - bl FUN_02046c78 - cmp r0, #0 - ldrne r0, _0203E4B0 @ =0x020AFE74 - movne r1, #0x46 - ldrne r0, [r0] - strne r1, [r0] - b _0203EF9C -_0203ED50: - bl FUN_02050c74 - bl GetRankUpEntry - ldrsh r0, [r0, #0xc] - strh r0, [r4, #0x88] - cmp r0, #0 - bne _0203ED80 - bl thunk_FUN_020473a4 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x4c - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203ED80: - bl FUN_0200cca8 - cmp r0, #0 - beq _0203EDFC - ldrsh r0, [r4, #0x88] - bl IsThrownItem - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - strh r0, [r4, #0x86] - mov r0, #1 - strb r0, [r4, #0x84] - ldr r0, _0203E4B0 @ =0x020AFE74 - ldrsh r3, [r4, #0x88] - ldr r1, [r0] - mov r2, #0 - str r3, [r1, #0x9c] - ldr r1, [r0] - mov r0, #4 - str r2, [r1, #0xb0] - bl thunk_FUN_0201820c - ldr r1, _0203E4B0 @ =0x020AFE74 - ldr r0, _0203E4B8 @ =0x0000101C - ldr r2, [r1] - mov r1, #0x2a4 - add r2, r2, #0x8c - bl FUN_02046be8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x47 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203EDFC: - bl thunk_FUN_020473a4 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x4c - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203EE14: - bl FUN_02046c78 - cmp r0, #0 - ldrne r0, _0203E4B0 @ =0x020AFE74 - movne r1, #0x48 - ldrne r0, [r0] - strne r1, [r0] - b _0203EF9C -_0203EE30: - add r0, r4, #0x84 - bl FUN_020103ac - cmp r0, #0 - ldreq r0, _0203E4B0 @ =0x020AFE74 - moveq r1, #0x49 - ldreq r0, [r0] - streq r1, [r0] - beq _0203EF9C - bl thunk_FUN_020473a4 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x4c - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203EE68: - ldrsh r1, [r4, #0x88] - mov r0, #0 - strh r1, [sp, #0xe] - ldrh r1, [r4, #0x86] - strh r1, [sp, #0xc] - strb r0, [sp, #0xa] - bl thunk_FUN_020473a4 - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r0, [r0] - ldr r0, [r0, #0xe4] - tst r0, #1 - moveq r1, #1 - movne r1, #0 - add r0, sp, #0xa - and r1, r1, #0xff - bl FUN_020453f8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x4a - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203EEBC: - bl FUN_02046028 - mov r4, r0 - cmp r4, #1 - beq _0203EF9C - add r0, sp, #4 - bl FUN_02045fd0 - ldrsh r0, [sp, #8] - cmp r0, #0 - bne _0203EF00 - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r1, [r0] - ldrh r0, [r1, #0x84] - strh r0, [sp, #4] - ldrh r0, [r1, #0x86] - strh r0, [sp, #6] - ldrh r0, [r1, #0x88] - strh r0, [sp, #8] -_0203EF00: - cmp r4, #2 - cmpne r4, #3 - beq _0203EF64 - cmp r4, #4 - bne _0203EF9C - ldr r0, _0203E4B0 @ =0x020AFE74 - ldr r2, _0203E508 @ =0x0209C850 - ldr r0, [r0] - add r1, sp, #4 - add r0, r0, #0xe8 - bl FUN_0200d670 - ldr r2, _0203E4B0 @ =0x020AFE74 - ldr r0, _0203E4B8 @ =0x0000101C - ldr r4, [r2] - ldr r1, _0203EFB4 @ =0x00000286 - add r3, r4, #0xe8 - str r3, [r4, #0xc4] - ldr r2, [r2] - add r2, r2, #0x8c - bl FUN_02046be8 - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x4b - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203EF64: - ldr r0, _0203E4B0 @ =0x020AFE74 - mov r1, #0x48 - ldr r0, [r0] - str r1, [r0] - b _0203EF9C -_0203EF78: - bl FUN_02046c78 - cmp r0, #0 - ldrne r0, _0203E4B0 @ =0x020AFE74 - movne r1, #0x4c - ldrne r0, [r0] - strne r1, [r0] - b _0203EF9C -_0203EF94: - mov r0, #1 - b _0203EFA0 -_0203EF9C: - mov r0, #0 -_0203EFA0: - add sp, sp, #0x11c - pop {r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0203EFA8: .4byte 0x00000273 -_0203EFAC: .4byte 0x00000275 -_0203EFB0: .4byte 0x00000277 -_0203EFB4: .4byte 0x00000286 -_0203EFB8: .4byte 0x00000292 -_0203EFBC: .4byte 0x00000293 -_0203EFC0: .4byte 0x00000291 -_0203EFC4: .4byte 0x00000272 -_0203EFC8: .4byte 0x000002A1 -_0203EFCC: .4byte 0x000002A2 -_0203EFD0: .4byte 0x000002A3 - arm_func_end FUN_0203d538 - - arm_func_start FUN_0203efd4 -FUN_0203efd4: @ 0x0203EFD4 - push {r3, lr} - ldr r0, _0203F008 @ =0x020AFE74 - ldr r0, [r0] - cmp r0, #0 - popeq {r3, pc} - bl FUN_0203f05c - ldr r0, _0203F008 @ =0x020AFE74 - ldr r0, [r0] - bl MemFree - ldr r0, _0203F008 @ =0x020AFE74 - mov r1, #0 - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_0203F008: .4byte 0x020AFE74 - arm_func_end FUN_0203efd4 - - arm_func_start FUN_0203f00c -FUN_0203f00c: @ 0x0203F00C - push {r3, lr} - ldr r1, _0203F058 @ =0x020AFE74 - mvn r0, #1 - ldr r1, [r1] - ldrsb r1, [r1, #6] - cmp r1, r0 - popne {r3, pc} - mov r0, #0 - mov r1, #3 - mov r2, #1 - bl CreatePortraitBox - ldr r1, _0203F058 @ =0x020AFE74 - ldr r2, [r1] - strb r0, [r2, #6] - ldr r1, [r1] - ldrsb r0, [r1, #6] - add r1, r1, #0x190 - bl ShowPortraitBox - pop {r3, pc} - .align 2, 0 -_0203F058: .4byte 0x020AFE74 - arm_func_end FUN_0203f00c - - arm_func_start FUN_0203f05c -FUN_0203f05c: @ 0x0203F05C - push {r3, lr} - ldr r0, _0203F0EC @ =0x020AFE74 - mvn r1, #1 - ldr r0, [r0] - ldrsb r0, [r0, #4] - cmp r0, r1 - beq _0203F08C - bl FUN_0202aabc - ldr r0, _0203F0EC @ =0x020AFE74 - mvn r1, #1 - ldr r0, [r0] - strb r1, [r0, #4] -_0203F08C: - ldr r0, _0203F0EC @ =0x020AFE74 - mvn r1, #1 - ldr r0, [r0] - ldrsb r0, [r0, #5] - cmp r0, r1 - beq _0203F0B8 - bl FreeDBox - ldr r0, _0203F0EC @ =0x020AFE74 - mvn r1, #1 - ldr r0, [r0] - strb r1, [r0, #5] -_0203F0B8: - ldr r0, _0203F0EC @ =0x020AFE74 - mvn r1, #1 - ldr r0, [r0] - ldrsb r0, [r0, #6] - cmp r0, r1 - beq _0203F0E4 - bl FreePortraitBox - ldr r0, _0203F0EC @ =0x020AFE74 - mvn r1, #1 - ldr r0, [r0] - strb r1, [r0, #6] -_0203F0E4: - bl thunk_FUN_020473a4 - pop {r3, pc} - .align 2, 0 -_0203F0EC: .4byte 0x020AFE74 - arm_func_end FUN_0203f05c - - arm_func_start FUN_0203f0f0 -FUN_0203f0f0: @ 0x0203F0F0 - push {r4, lr} - ldr r1, _0203F148 @ =0x020AFE78 - ldr r2, _0203F14C @ =0x0209C89C - ldr r3, [r1] - mov r4, r0 - ldrsh r1, [r3, #0xc] - add r0, r3, #0xdc - add r1, r3, r1, lsl #2 - ldr r1, [r1, #0x14] - lsl r1, r1, #1 - ldrh r1, [r2, r1] - bl GetStringFromFileVeneer - ldr r0, _0203F148 @ =0x020AFE78 - mov r3, r4 - ldr r4, [r0] - ldrsh r0, [r4, #0xc] - add r1, r4, #0x64 - add r2, r4, #0x30 - add r0, r4, r0, lsl #2 - ldr r0, [r0, #0x14] - bl FUN_0205a4b4 - pop {r4, pc} - .align 2, 0 -_0203F148: .4byte 0x020AFE78 -_0203F14C: .4byte 0x0209C89C - arm_func_end FUN_0203f0f0 - - arm_func_start FUN_0203f150 -FUN_0203f150: @ 0x0203F150 - push {r4, r5, r6, lr} - sub sp, sp, #0xa0 - mov r6, r0 - mov r5, r1 - mov r0, #0xfc - mov r1, #8 - bl MemAlloc - ldr r2, _0203F340 @ =0x020AFE78 - mvn r1, #1 - str r0, [r2] - mov ip, #0 - strb r1, [r0] - mov r0, ip -_0203F184: - add r1, ip, #1 - ldr r3, [r2] - lsl r1, r1, #0x10 - add r3, r3, ip, lsl #2 - asr ip, r1, #0x10 - str r0, [r3, #0x14] - cmp ip, #6 - blt _0203F184 - ldr r3, _0203F344 @ =0x0209C8C8 - ldr r2, _0203F340 @ =0x020AFE78 - mov r1, #0x18 - ldr ip, [r2] - mla r1, r5, r1, r3 - strh r0, [ip, #0xe] - b _0203F1E0 -_0203F1C0: - ldr r0, [r2] - ldr r3, [r1, lr, lsl #2] - add r0, r0, lr, lsl #2 - str r3, [r0, #0x14] - ldr r3, [r2] - ldrsh r0, [r3, #0xe] - add r0, r0, #1 - strh r0, [r3, #0xe] -_0203F1E0: - ldr ip, [r2] - ldrsh lr, [ip, #0xe] - cmp lr, #6 - bge _0203F1FC - ldr r0, [r1, lr, lsl #2] - cmp r0, #0 - bne _0203F1C0 -_0203F1FC: - mov r3, #0 - strh r3, [ip, #0xc] - ldr r0, _0203F340 @ =0x020AFE78 - sub r2, r3, #1 - ldr r1, [r0] - mov ip, #1 - strh r2, [r1, #0x10] - ldr r1, [r0] - strh r3, [r1, #0x12] - ldr r2, [r0] - mov r1, r6 - strb ip, [r2, #0x2c] - ldr r3, [r0] - mov r2, #0x78 - str r5, [r3, #4] - ldr r3, [r0] - str ip, [r3, #8] - ldr r0, [r0] - add r0, r0, #0x64 - bl Memcpy - ldr r0, _0203F340 @ =0x020AFE78 - ldr r1, _0203F348 @ =0x00000975 - ldr r3, [r0] - mov r0, #0x10 - str r0, [sp, #0x14] - strh r1, [sp, #0x10] - ldrsh r2, [r3, #0xc] - add r0, r3, #0xdc - mov r1, #0xc - str r1, [sp, #0xc] - str r0, [sp, #0x50] - str r2, [sp, #8] - ldrsh r2, [r3, #0xc] - ldr r1, _0203F34C @ =0x0209C89C - add r2, r3, r2, lsl #2 - ldr r2, [r2, #0x14] - lsl r2, r2, #1 - ldrh r1, [r1, r2] - bl GetStringFromFileVeneer - ldr r0, _0203F340 @ =0x020AFE78 - ldr r2, [r0] - ldr r0, [r2, #4] - cmp r0, #3 - addls pc, pc, r0, lsl #2 - b _0203F324 -_0203F2B0: @ jump table - b _0203F2C0 @ case 0 - b _0203F2C0 @ case 1 - b _0203F2FC @ case 2 - b _0203F2FC @ case 3 -_0203F2C0: - cmp r0, #1 - ldrsh r4, [r2, #0xe] - ldreq r1, _0203F350 @ =0x60481C3B - ldr r0, _0203F354 @ =0x0209C8A8 - str r4, [sp] - mov r4, #1 - ldrne r1, _0203F358 @ =0x60489C3B - ldr r3, _0203F35C @ =FUN_0203f0f0 - add r2, sp, #8 - str r4, [sp, #4] - bl FUN_020305b4 - ldr r1, _0203F360 @ =FUN_0203f928 - mov r4, r0 - bl FUN_02030ad4 - b _0203F324 -_0203F2FC: - ldrsh r4, [r2, #0xe] - ldr r0, _0203F354 @ =0x0209C8A8 - ldr r1, _0203F364 @ =0x60089C3B - str r4, [sp] - mov r4, #1 - ldr r3, _0203F35C @ =FUN_0203f0f0 - add r2, sp, #8 - str r4, [sp, #4] - bl FUN_020305b4 - mov r4, r0 -_0203F324: - ldr r0, _0203F340 @ =0x020AFE78 - ldr r1, [r0] - strb r4, [r1] - ldr r0, [r0] - ldrsb r0, [r0] - add sp, sp, #0xa0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0203F340: .4byte 0x020AFE78 -_0203F344: .4byte 0x0209C8C8 -_0203F348: .4byte 0x00000975 -_0203F34C: .4byte 0x0209C89C -_0203F350: .4byte 0x60481C3B -_0203F354: .4byte 0x0209C8A8 -_0203F358: .4byte 0x60489C3B -_0203F35C: .4byte FUN_0203f0f0 -_0203F360: .4byte FUN_0203f928 -_0203F364: .4byte 0x60089C3B - arm_func_end FUN_0203f150 - - arm_func_start FUN_0203f368 -FUN_0203f368: @ 0x0203F368 - push {r3, r4, r5, lr} - ldr r2, _0203F394 @ =0x020AFE78 - mov r5, r0 - ldr r0, [r2] - mov r4, r1 - add r0, r0, #0x64 - bl FUN_0205b0b8 - str r0, [r5] - mov r0, #0xc - str r0, [r4] - pop {r3, r4, r5, pc} - .align 2, 0 -_0203F394: .4byte 0x020AFE78 - arm_func_end FUN_0203f368 - - arm_func_start FUN_0203f398 -FUN_0203f398: @ 0x0203F398 - push {r3, r4, r5, lr} - sub sp, sp, #0x10 - ldr r0, _0203F8D4 @ =0x020AFE78 - ldr r4, [r0] - cmp r4, #0 - moveq r0, #1 - beq _0203F8CC - ldr r0, [r4, #8] - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _0203F8C8 -_0203F3C4: @ jump table - b _0203F3D8 @ case 0 - b _0203F404 @ case 1 - b _0203F8C8 @ case 2 - b _0203F83C @ case 3 - b _0203F898 @ case 4 -_0203F3D8: - ldrsb r0, [r4] - bl FUN_020307ec - ldr r0, _0203F8D4 @ =0x020AFE78 - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_0202810c - ldr r0, _0203F8D4 @ =0x020AFE78 - mov r1, #1 - ldr r0, [r0] - str r1, [r0, #8] - b _0203F8C8 -_0203F404: - ldrsb r0, [r4] - mov r1, #0 - bl FUN_02030ac0 - ldr r0, _0203F8D4 @ =0x020AFE78 - ldr r2, [r0] - ldrb r0, [r2, #0x2c] - cmp r0, #0 - beq _0203F464 - ldrsh r0, [r2, #0xc] - add r0, r2, r0, lsl #2 - ldr r0, [r0, #0x14] - cmp r0, #1 - ldrsheq r1, [r2, #0x12] - ldrsb r0, [r2] - movne r1, #0 - bl FUN_02030a50 - ldr r0, _0203F8D4 @ =0x020AFE78 - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_0203083c - ldr r0, _0203F8D4 @ =0x020AFE78 - mov r1, #0 - ldr r0, [r0] - strb r1, [r0, #0x2c] -_0203F464: - add r1, sp, #0xc - mov r0, #0 - bl FUN_02006498 - ldr r0, _0203F8D4 @ =0x020AFE78 - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_02030a18 - ldr r1, _0203F8D4 @ =0x020AFE78 - ldr r2, [r1] - strh r0, [r2, #0xc] - ldr r3, [r1] - ldrsh r2, [r3, #0xc] - ldrsh r0, [r3, #0x10] - cmp r0, r2 - strhne r2, [r3, #0x10] - ldrne r0, [r1] - movne r1, #1 - strbne r1, [r0, #0x2c] - bne _0203F8C8 - add r0, r3, r2, lsl #2 - ldr r0, [r0, #0x14] - cmp r0, #1 - ldrsb r0, [r3] - bne _0203F7EC - ldr r1, _0203F8D8 @ =FUN_0203f368 - bl FUN_02030ac0 - ldr r0, _0203F8D4 @ =0x020AFE78 - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_02030a40 - ldr r1, _0203F8D4 @ =0x020AFE78 - mov r4, r0 - ldr r0, [r1] - ldrsb r0, [r0] - bl FUN_02028354 - cmp r0, #3 - beq _0203F508 - bl FUN_0203f8ec - cmp r0, #0 - movne r1, #1 - bne _0203F50C -_0203F508: - mov r1, #0 -_0203F50C: - ldr r0, _0203F8D4 @ =0x020AFE78 - and r5, r1, #0xff - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_020308c4 - cmp r0, #0 - bne _0203F588 - ldr r0, _0203F8D4 @ =0x020AFE78 - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_02030908 - cmp r0, #0 - blt _0203F558 - bl FUN_0203f8ec - cmp r0, #0 - beq _0203F558 - bl FUN_02001808 - cmp r0, #0xa000 - bge _0203F560 -_0203F558: - mov r0, #1 - b _0203F8CC -_0203F560: - ldr r0, _0203F8D4 @ =0x020AFE78 - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_0202812c - ldr r0, _0203F8D4 @ =0x020AFE78 - mov r1, #3 - ldr r0, [r0] - mov r5, #0 - str r1, [r0, #8] - b _0203F748 -_0203F588: - ldrh r0, [sp, #0xc] - tst r0, #8 - cmpne r5, #0 - beq _0203F5FC - bl FUN_0203f8ec - cmp r0, #0 - beq _0203F748 - ldr r0, _0203F8D4 @ =0x020AFE78 - mov r1, #0 - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_02030f28 - bl FUN_02001808 - cmp r0, #0xa000 - blt _0203F748 - ldr r0, _0203F8D4 @ =0x020AFE78 - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_02030ef0 - ldr r0, _0203F8D4 @ =0x020AFE78 - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_0202812c - ldr r0, _0203F8D4 @ =0x020AFE78 - mov r1, #3 - ldr r0, [r0] - mov r5, #0 - str r1, [r0, #8] - b _0203F748 -_0203F5FC: - tst r0, #0x40 - bne _0203F60C - tst r4, #0x40000 - beq _0203F698 -_0203F60C: - cmp r5, #0 - beq _0203F698 - ldr r0, _0203F8D4 @ =0x020AFE78 - ldr r2, [r0] - ldrsh r1, [r2, #0x12] - cmp r1, #0 - bne _0203F660 - ldrsh r1, [r2, #0xba] - cmp r1, #0 - beq _0203F748 - sub r1, r1, #1 - strh r1, [r2, #0xba] - ldr r0, [r0] - mov r1, #1 - strb r1, [r0, #0x2c] - ldrh r0, [sp, #0xc] - tst r0, #0x40 - beq _0203F748 - mov r0, #3 - bl FUN_02017ccc - b _0203F748 -_0203F660: - ldrsb r0, [r2] - bl FUN_02030a64 - cmp r0, #0 - bne _0203F680 - tst r4, #0x40000 - bne _0203F680 - mov r0, #3 - bl FUN_02017ccc -_0203F680: - ldr r0, _0203F8D4 @ =0x020AFE78 - ldr r1, [r0] - ldrsh r0, [r1, #0x12] - sub r0, r0, #1 - strh r0, [r1, #0x12] - b _0203F748 -_0203F698: - tst r0, #0x80 - bne _0203F6A8 - tst r4, #0x80000 - beq _0203F748 -_0203F6A8: - cmp r5, #0 - beq _0203F748 - ldr r0, _0203F8D4 @ =0x020AFE78 - ldr r3, [r0] - ldrsh r1, [r3, #0x12] - cmp r1, #8 - bne _0203F708 - ldrsh r2, [r3, #0xba] - add r1, r2, #9 - add r1, r3, r1 - ldrb r1, [r1, #0xbc] - cmp r1, #0 - beq _0203F748 - add r1, r2, #1 - strh r1, [r3, #0xba] - ldr r0, [r0] - mov r1, #1 - strb r1, [r0, #0x2c] - ldrh r0, [sp, #0xc] - tst r0, #0x80 - beq _0203F748 - mov r0, #3 - bl FUN_02017ccc - b _0203F748 -_0203F708: - ldrsb r0, [r3] - bl FUN_02030a64 - cmp r0, #8 - bne _0203F728 - tst r4, #0x80000 - bne _0203F728 - mov r0, #3 - bl FUN_02017ccc -_0203F728: - ldr r0, _0203F8D4 @ =0x020AFE78 - ldr r2, [r0] - ldrsh r0, [r2, #0x12] - add r1, r0, #1 - add r0, r2, r1 - ldrb r0, [r0, #0xbc] - cmp r0, #0 - strhne r1, [r2, #0x12] -_0203F748: - ldr r0, _0203F8D4 @ =0x020AFE78 - ldr r1, [r0] - ldrsh r0, [r1, #0xba] - add r0, r0, #9 - add r0, r1, r0 - ldrb r0, [r0, #0xbc] - cmp r0, #0 - ldrsb r0, [r1] - mov r1, #0x40000000 - beq _0203F778 - bl FUN_02030a90 - b _0203F77C -_0203F778: - bl FUN_02030a74 -_0203F77C: - ldr r0, _0203F8D4 @ =0x020AFE78 - ldr r1, [r0] - ldrsh r0, [r1, #0xba] - cmp r0, #0 - ldrsb r0, [r1] - mov r1, #0x20000000 - bne _0203F7A0 - bl FUN_02030a74 - b _0203F7A4 -_0203F7A0: - bl FUN_02030a90 -_0203F7A4: - cmp r5, #0 - beq _0203F7D8 - ldr r0, _0203F8D4 @ =0x020AFE78 - mov r3, #0xc - ldr r0, [r0] - mov r1, #1 - ldrsh r4, [r0, #0x12] - ldrsb r0, [r0] - mov r2, #3 - smulbb r3, r4, r3 - add r3, r3, #0x11 - bl FUN_02030978 - b _0203F8C8 -_0203F7D8: - ldr r0, _0203F8D4 @ =0x020AFE78 - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_020288dc - b _0203F8C8 -_0203F7EC: - mov r1, #0x20000000 - bl FUN_02030a74 - ldr r0, _0203F8D4 @ =0x020AFE78 - mov r1, #0x40000000 - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_02030a74 - ldr r0, _0203F8D4 @ =0x020AFE78 - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_020308c4 - cmp r0, #0 - beq _0203F834 - ldr r0, _0203F8D4 @ =0x020AFE78 - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_020288dc - b _0203F8C8 -_0203F834: - mov r0, #1 - b _0203F8CC -_0203F83C: - ldrsh r2, [r4, #0xba] - ldrsh r0, [r4, #0x12] - ldr r3, _0203F8DC @ =0x0209E912 - ldr r1, _0203F8E0 @ =0x0209E910 - add r0, r2, r0 - add r0, r4, r0 - ldrb r4, [r0, #0xbc] - mov r2, #0 - ldr r0, _0203F8E4 @ =0x0209C8B8 - lsl r5, r4, #2 - ldrh r4, [r3, r5] - ldrh r3, [r1, r5] - ldr r1, _0203F8E8 @ =0x00001013 - stm sp, {r2, r4} - str r2, [sp, #8] - bl FUN_0202e3cc - ldr r1, _0203F8D4 @ =0x020AFE78 - mov r2, #4 - ldr r3, [r1] - strb r0, [r3, #1] - ldr r0, [r1] - str r2, [r0, #8] - b _0203F8C8 -_0203F898: - ldrsb r0, [r4, #1] - bl FUN_0202e6e4 - cmp r0, #0 - bne _0203F8C8 - ldr r0, _0203F8D4 @ =0x020AFE78 - ldr r0, [r0] - ldrsb r0, [r0, #1] - bl FUN_0202e6c8 - ldr r0, _0203F8D4 @ =0x020AFE78 - mov r1, #0 - ldr r0, [r0] - str r1, [r0, #8] -_0203F8C8: - mov r0, #0 -_0203F8CC: - add sp, sp, #0x10 - pop {r3, r4, r5, pc} - .align 2, 0 -_0203F8D4: .4byte 0x020AFE78 -_0203F8D8: .4byte FUN_0203f368 -_0203F8DC: .4byte 0x0209E912 -_0203F8E0: .4byte 0x0209E910 -_0203F8E4: .4byte 0x0209C8B8 -_0203F8E8: .4byte 0x00001013 - arm_func_end FUN_0203f398 - - arm_func_start FUN_0203f8ec -FUN_0203f8ec: @ 0x0203F8EC - ldr r0, _0203F924 @ =0x020AFE78 - mov r1, #0 - ldr r2, [r0] - b _0203F914 -_0203F8FC: - add r0, r2, r1 - ldrb r0, [r0, #0xbc] - cmp r0, #0 - movne r0, #1 - bxne lr - add r1, r1, #1 -_0203F914: - cmp r1, #0x1e - blt _0203F8FC - mov r0, #0 - bx lr - .align 2, 0 -_0203F924: .4byte 0x020AFE78 - arm_func_end FUN_0203f8ec - - arm_func_start FUN_0203f928 -FUN_0203f928: @ 0x0203F928 - push {r4, lr} - mov r4, r0 - cmp r1, #0 - popeq {r4, pc} - bl FUN_02030908 - ldr r2, _0203F970 @ =0x020AFE78 - mov r3, #0xc - ldr ip, [r2] - mov r1, #1 - strh r0, [ip, #0x12] - ldr r2, [r2] - mov r0, r4 - ldrsh ip, [r2, #0x12] - mov r2, #3 - smulbb r3, ip, r3 - add r3, r3, #0x11 - bl FUN_02030978 - pop {r4, pc} - .align 2, 0 -_0203F970: .4byte 0x020AFE78 - arm_func_end FUN_0203f928 - - arm_func_start FUN_0203f974 -FUN_0203f974: @ 0x0203F974 - ldr r0, _0203F988 @ =0x020AFE78 - ldr ip, _0203F98C @ =FUN_0203088c - ldr r0, [r0] - ldrsb r0, [r0] - bx ip - .align 2, 0 -_0203F988: .4byte 0x020AFE78 -_0203F98C: .4byte FUN_0203088c - arm_func_end FUN_0203f974 - - arm_func_start FUN_0203f990 -FUN_0203f990: @ 0x0203F990 - push {r3, lr} - ldr r0, _0203F9C8 @ =0x020AFE78 - ldr r0, [r0] - cmp r0, #0 - popeq {r3, pc} - ldrsb r0, [r0] - bl FUN_020308a0 - ldr r0, _0203F9C8 @ =0x020AFE78 - ldr r0, [r0] - bl MemFree - ldr r0, _0203F9C8 @ =0x020AFE78 - mov r1, #0 - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_0203F9C8: .4byte 0x020AFE78 - arm_func_end FUN_0203f990 -_0203F9CC: - .byte 0x38, 0x40, 0x2D, 0xE9 - .byte 0x78, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x50, 0xA0, 0xE1, 0x00, 0x20, 0x81, 0xE5 - .byte 0xB4, 0x40, 0x95, 0xE5, 0x68, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE1, 0xDC, 0x01, 0x0B, 0xEB - .byte 0x60, 0x00, 0x9F, 0xE5, 0x49, 0x1F, 0x84, 0xE2, 0x22, 0x20, 0xA0, 0xE3, 0x26, 0x1E, 0x01, 0xEB - .byte 0x07, 0x20, 0xD4, 0xE5, 0x44, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x2C, 0x20, 0xC1, 0xE5 - .byte 0x00, 0x50, 0x81, 0xE5, 0x58, 0x00, 0xC1, 0xE5, 0xF4, 0x20, 0xD4, 0xE1, 0x38, 0x00, 0x9F, 0xE5 - .byte 0x38, 0x30, 0x9F, 0xE5, 0x00, 0x00, 0x52, 0xE1, 0x01, 0x00, 0xA0, 0x03, 0x58, 0x00, 0xC1, 0x05 - .byte 0xF2, 0x10, 0xD4, 0xE1, 0x14, 0x00, 0x9F, 0xE5, 0xBA, 0x15, 0xC0, 0xE1, 0x9C, 0x00, 0x84, 0xE2 - .byte 0x07, 0x00, 0x90, 0xE8, 0x07, 0x00, 0x83, 0xE8, 0x01, 0x00, 0xA0, 0xE3, 0x38, 0x80, 0xBD, 0xE8 - .byte 0xFC, 0xAD, 0x2A, 0x02, 0x00, 0xAE, 0x2A, 0x02, 0x2A, 0xAE, 0x2A, 0x02, 0xA2, 0x01, 0x00, 0x00 - .byte 0x58, 0xAE, 0x2A, 0x02 - - arm_func_start FUN_0203fa64 -FUN_0203fa64: @ 0x0203FA64 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x14 - ldr r1, _0203FBBC @ =0x020B0A48 - mov sl, r0 - mov r0, #0x44 - smulbb r2, sl, r0 - ldr r1, [r1] - mov r4, #0x46 - ldrb r0, [r1, r2] - add r8, r1, r2 - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - moveq r0, #0 - beq _0203FBB4 - ldr r1, _0203FBC0 @ =0x022AADFC - mov r2, #0 - mov r0, sl - str r2, [r1] - bl FUN_02056410 - cmp r0, #0 - mov r0, sl - beq _0203FAD4 - bl FUN_020564b0 - cmp r0, #0 - movne r4, #0x59 - b _0203FAE4 -_0203FAD4: - bl FUN_02056f60 - cmp r0, #0 - movne r4, #0x44 - moveq r4, #0x57 -_0203FAE4: - add r0, sp, #0 - add r1, r8, #0x3a - mov r2, #0xa - bl StrncpySimpleNoPadSafe - ldr r0, _0203FBC4 @ =0x022AAE00 - ldr r1, _0203FBC8 @ =0x0209C96C - add r3, sp, #0 - and r2, r4, #0xff - bl SprintfStatic - ldrsh r1, [r8, #4] - ldr r0, _0203FBC0 @ =0x022AADFC - ldr r3, _0203FBCC @ =0x022AAE58 - strh r1, [r0, #0x5a] - add r4, r8, #0x14 - ldm r4, {r0, r1, r2} - stm r3, {r0, r1, r2} - ldrsh r0, [r8, #4] - mov r1, r4 - bl GetPpIncrease - mov r6, #0 - ldr r5, _0203FBD0 @ =0x022AAE2A - ldr r4, _0203FBC0 @ =0x022AADFC - mov r7, r0 - mov fp, r6 -_0203FB44: - mov r0, #6 - mla sb, r6, r0, r8 - ldrh r1, [sb, #0x24] - add r0, r5, r6, lsl #3 - bl InitMove - ldrb r1, [sb, #0x22] - add r2, r4, r6, lsl #3 - add r0, r5, r6, lsl #3 - strb r1, [r2, #0x2e] - strh r7, [r2, #0x30] - strb fp, [r2, #0x34] - ldrb r1, [sb, #0x26] - strb r1, [r2, #0x35] - bl GetMaxPp - add r1, r6, #1 - add r2, r4, r6, lsl #3 - lsl r1, r1, #0x10 - lsr r6, r1, #0x10 - strb r0, [r2, #0x34] - cmp r6, #4 - blo _0203FB44 - mov r0, sl - bl FUN_020564b0 - ldr r1, _0203FBC0 @ =0x022AADFC - strb r0, [r1, #0x2c] - ldrsh r0, [r8, #4] - bl FUN_02041724 - mov r0, #1 -_0203FBB4: - add sp, sp, #0x14 - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0203FBBC: .4byte 0x020B0A48 -_0203FBC0: .4byte 0x022AADFC -_0203FBC4: .4byte 0x022AAE00 -_0203FBC8: .4byte 0x0209C96C -_0203FBCC: .4byte 0x022AAE58 -_0203FBD0: .4byte 0x022AAE2A - arm_func_end FUN_0203fa64 - - arm_func_start FUN_0203fbd4 -FUN_0203fbd4: @ 0x0203FBD4 - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x14 - ldr r1, _0203FCFC @ =0x020B0A48 - mov r2, #0x68 - ldr r1, [r1] - ldr r3, _0203FD00 @ =0x022AADFC - add r1, r1, #0x9000 - ldr r1, [r1, #0x84c] - mov r4, #0 - smlabb r8, r0, r2, r1 - str r4, [r3] - ldrsh r0, [r8, #8] - sub r1, r4, #1 - cmp r0, r1 - strbeq r4, [r3, #0x2c] - beq _0203FC20 - bl FUN_020564b0 - ldr r1, _0203FD00 @ =0x022AADFC - strb r0, [r1, #0x2c] -_0203FC20: - ldr r0, _0203FD00 @ =0x022AADFC - add r1, r8, #0x5e - ldrb r0, [r0, #0x2c] - mov r2, #0xa - cmp r0, #0 - movne r4, #0x59 - add r0, sp, #0 - moveq r4, #0x46 - bl StrncpySimpleNoPadSafe - ldr r0, _0203FD04 @ =0x022AAE00 - ldr r1, _0203FD08 @ =0x0209C96C - add r3, sp, #0 - and r2, r4, #0xff - bl SprintfStatic - ldrsh r0, [r8, #0xc] - add r1, r8, #0x4c - bl GetPpIncrease - ldr r5, _0203FD0C @ =0x022AAE2A - ldr r4, _0203FD00 @ =0x022AADFC - mov r7, r0 - mov r6, #0 -_0203FC74: - add r0, r8, r6, lsl #3 - ldrh r1, [r0, #0x20] - add r0, r5, r6, lsl #3 - bl InitMove - add r3, r8, r6, lsl #3 - ldrb r1, [r3, #0x1c] - add r2, r4, r6, lsl #3 - add r0, r5, r6, lsl #3 - strb r1, [r2, #0x2e] - strh r7, [r2, #0x30] - ldrb r1, [r3, #0x22] - strb r1, [r2, #0x34] - ldrb r1, [r3, #0x23] - strb r1, [r2, #0x35] - bl GetMaxPp - add r1, r6, #1 - add r2, r4, r6, lsl #3 - lsl r1, r1, #0x10 - lsr r6, r1, #0x10 - strb r0, [r2, #0x34] - cmp r6, #4 - blo _0203FC74 - ldrsh r0, [r8, #0xc] - bl FUN_02041724 - ldrsh r1, [r8, #0xc] - ldr r0, _0203FD00 @ =0x022AADFC - ldr r3, _0203FD10 @ =0x022AAE58 - strh r1, [r0, #0x5a] - add r0, r8, #0x4c - ldm r0, {r0, r1, r2} - stm r3, {r0, r1, r2} - mov r0, #1 - add sp, sp, #0x14 - pop {r3, r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0203FCFC: .4byte 0x020B0A48 -_0203FD00: .4byte 0x022AADFC -_0203FD04: .4byte 0x022AAE00 -_0203FD08: .4byte 0x0209C96C -_0203FD0C: .4byte 0x022AAE2A -_0203FD10: .4byte 0x022AAE58 - arm_func_end FUN_0203fbd4 - - arm_func_start FUN_0203fd14 -FUN_0203fd14: @ 0x0203FD14 - ldr ip, _0203FD24 @ =InitMove - mov r1, r0 - ldr r0, _0203FD28 @ =0x022AAE4C - bx ip - .align 2, 0 -_0203FD24: .4byte InitMove -_0203FD28: .4byte 0x022AAE4C - arm_func_end FUN_0203fd14 - - arm_func_start FUN_0203fd2c -FUN_0203fd2c: @ 0x0203FD2C - ldr r0, _0203FD34 @ =0x022AAE4C - bx lr - .align 2, 0 -_0203FD34: .4byte 0x022AAE4C - arm_func_end FUN_0203fd2c - - arm_func_start FUN_0203fd38 -FUN_0203fd38: @ 0x0203FD38 - ldr r0, _0203FD40 @ =0x022AAE2A - bx lr - .align 2, 0 -_0203FD40: .4byte 0x022AAE2A - arm_func_end FUN_0203fd38 -_0203FD44: - .byte 0x10, 0x40, 0x2D, 0xE9, 0xB4, 0x40, 0x90, 0xE5, 0x20, 0x10, 0x9F, 0xE5 - .byte 0x49, 0x0F, 0x84, 0xE2, 0x22, 0x20, 0xA0, 0xE3, 0x4F, 0x1D, 0x01, 0xEB, 0x14, 0x10, 0x9F, 0xE5 - .byte 0x14, 0x00, 0x9F, 0xE5, 0x2C, 0x10, 0xD1, 0xE5, 0x07, 0x10, 0xC4, 0xE5, 0xF2, 0x00, 0xD0, 0xE1 - .byte 0x10, 0x80, 0xBD, 0xE8, 0x2A, 0xAE, 0x2A, 0x02, 0xFC, 0xAD, 0x2A, 0x02, 0x7C, 0xFE, 0x0A, 0x02 - - arm_func_start FUN_0203fd80 -FUN_0203fd80: @ 0x0203FD80 - push {r3, r4, r5, lr} - ldr r2, _0203FDE0 @ =0x020B0A48 - mov r1, #0x44 - ldr r2, [r2] - ldr ip, _0203FDE4 @ =0x022AADFC - mla r5, r0, r1, r2 - mov r4, #0 - mov r0, #6 -_0203FDA0: - mla lr, r4, r0, r5 - add r3, ip, r4, lsl #3 - ldrb r2, [r3, #0x2e] - add r1, r4, #1 - lsl r1, r1, #0x10 - strb r2, [lr, #0x22] - ldrh r2, [r3, #0x32] - lsr r4, r1, #0x10 - cmp r4, #4 - strh r2, [lr, #0x24] - ldrb r1, [r3, #0x35] - strb r1, [lr, #0x26] - blo _0203FDA0 - ldr r0, _0203FDE8 @ =0x020AFE7C - ldrsh r0, [r0, #2] - pop {r3, r4, r5, pc} - .align 2, 0 -_0203FDE0: .4byte 0x020B0A48 -_0203FDE4: .4byte 0x022AADFC -_0203FDE8: .4byte 0x020AFE7C - arm_func_end FUN_0203fd80 - - arm_func_start FUN_0203fdec -FUN_0203fdec: @ 0x0203FDEC - push {r4, lr} - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl GetActiveTeamMember - ldr lr, _0203FE54 @ =0x022AADFC - mov r4, #0 -_0203FE04: - add ip, lr, r4, lsl #3 - ldrb r2, [ip, #0x2e] - add r3, r0, r4, lsl #3 - add r1, r4, #1 - strb r2, [r3, #0x1c] - ldrh r2, [ip, #0x30] - lsl r1, r1, #0x10 - lsr r4, r1, #0x10 - strh r2, [r3, #0x1e] - ldrh r1, [ip, #0x32] - cmp r4, #4 - strh r1, [r3, #0x20] - ldrb r1, [ip, #0x34] - strb r1, [r3, #0x22] - ldrb r1, [ip, #0x35] - strb r1, [r3, #0x23] - blo _0203FE04 - ldr r0, _0203FE58 @ =0x020AFE7C - ldrsh r0, [r0, #2] - pop {r4, pc} - .align 2, 0 -_0203FE54: .4byte 0x022AADFC -_0203FE58: .4byte 0x020AFE7C - arm_func_end FUN_0203fdec - - arm_func_start FUN_0203fe5c -FUN_0203fe5c: @ 0x0203FE5C - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #8 - mov r7, r0 - mov r6, r1 - mov r0, #0x3fc - mov r1, #8 - mov r5, r2 - mov r4, r3 - bl MemAlloc - ldr r1, _02040154 @ =0x020AFE7C - mvn r2, #1 - str r0, [r1, #8] - strb r2, [r0] - ldr r0, [r1, #0xc] - ldr r2, _02040154 @ =0x020AFE7C - cmp r0, r7 - strne r7, [r1, #0xc] - movne r0, #0 - strhne r0, [r1, #2] - ldr r0, _02040154 @ =0x020AFE7C - ldr r3, _02040158 @ =0x00000A3E - ldrsh r1, [r0, #4] - mov r7, #0x17 - cmp r1, r6 - strhne r6, [r0, #4] - movne r1, #0 - strhne r1, [r0, #2] - ldr r0, [r2, #8] - mov r1, #0x10 - str r1, [r0, #0x10] - ldr r0, [r2, #8] - str r1, [r0, #8] - ldr r0, [r2, #8] - mov r1, #0 - strh r3, [r0, #0xc] - ldr r0, [r2, #8] - ldr r3, _0204015C @ =0x022AAE00 - str r7, [r0, #0x98] - ldr r0, [r2, #8] - str r1, [r0, #0x64] - ldr r0, [r2, #8] - str r3, [r0, #0x4c] - ldr r0, [r2, #8] - strb r1, [r0, #0x3f8] - ldr r0, [r2, #8] - str r4, [r0, #0x3f4] - ldr r0, [r2, #0xc] - cmp r0, #7 - addls pc, pc, r0, lsl #2 - b _0203FF44 -_0203FF24: @ jump table - b _02040084 @ case 0 - b _0203FF44 @ case 1 - b _0203FFAC @ case 2 - b _0204003C @ case 3 - b _0203FF44 @ case 4 - b _0203FF44 @ case 5 - b _0203FFF4 @ case 6 - b _0203FF7C @ case 7 -_0203FF44: - mov r1, #0 - str r1, [sp] - ldr r0, _02040154 @ =0x020AFE7C - str r1, [sp, #4] - ldr r2, [r0, #8] - ldr r0, _02040160 @ =0x0209C93C - ldr r1, _02040164 @ =0x00401803 - ldr r3, _02040168 @ =FUN_020401a8 - add r2, r2, #4 - bl FUN_020305b4 - ldr r1, _02040154 @ =0x020AFE7C - ldr r1, [r1, #8] - strb r0, [r1] - b _020400FC -_0203FF7C: - str r1, [sp] - str r1, [sp, #4] - ldr r2, [r2, #8] - ldr r0, _0204016C @ =0x0209C94C - ldr r1, _02040170 @ =0x00400800 - ldr r3, _02040168 @ =FUN_020401a8 - add r2, r2, #4 - bl FUN_020305b4 - ldr r1, _02040154 @ =0x020AFE7C - ldr r1, [r1, #8] - strb r0, [r1] - b _020400FC -_0203FFAC: - ldr r0, [r2, #8] - mov r3, #1 - strb r3, [r0, #0x3f8] - ldr r4, [r2, #8] - ldr r0, _02040174 @ =0x0209C92C - add r3, r4, #0x3e0 - str r3, [r4, #0x64] - str r1, [sp] - str r1, [sp, #4] - ldr r2, [r2, #8] - ldr r1, _02040164 @ =0x00401803 - ldr r3, _02040168 @ =FUN_020401a8 - add r2, r2, #4 - bl FUN_020305b4 - ldr r1, _02040154 @ =0x020AFE7C - ldr r1, [r1, #8] - strb r0, [r1] - b _020400FC -_0203FFF4: - ldr r0, [r2, #8] - mov r3, #1 - strb r3, [r0, #0x3f8] - ldr r4, [r2, #8] - ldr r0, _02040174 @ =0x0209C92C - add r3, r4, #0x3e0 - str r3, [r4, #0x64] - str r1, [sp] - str r1, [sp, #4] - ldr r2, [r2, #8] - ldr r1, _02040178 @ =0x00401A03 - ldr r3, _02040168 @ =FUN_020401a8 - add r2, r2, #4 - bl FUN_020305b4 - ldr r1, _02040154 @ =0x020AFE7C - ldr r1, [r1, #8] - strb r0, [r1] - b _020400FC -_0204003C: - ldr r0, [r2, #8] - mov r3, #1 - strb r3, [r0, #0x3f8] - ldr r4, [r2, #8] - ldr r0, _0204017C @ =0x0209C95C - add r3, r4, #0x3e0 - str r3, [r4, #0x64] - str r1, [sp] - str r1, [sp, #4] - ldr r2, [r2, #8] - ldr r1, _02040180 @ =0x00400A00 - ldr r3, _02040168 @ =FUN_020401a8 - add r2, r2, #4 - bl FUN_020305b4 - ldr r1, _02040154 @ =0x020AFE7C - ldr r1, [r1, #8] - strb r0, [r1] - b _020400FC -_02040084: - cmp r6, #1 - ble _020400C8 - ldr r1, [r2, #8] - mov r0, #1 - str r5, [r1, #4] - str r6, [sp] - str r0, [sp, #4] - ldr r2, [r2, #8] - ldr r0, _02040160 @ =0x0209C93C - ldr r1, _02040184 @ =0x00409823 - ldr r3, _02040168 @ =FUN_020401a8 - add r2, r2, #4 - bl FUN_020305b4 - ldr r1, _02040154 @ =0x020AFE7C - ldr r1, [r1, #8] - strb r0, [r1] - b _020400FC -_020400C8: - ldr r3, [r2, #8] - ldr r0, _02040160 @ =0x0209C93C - str r1, [r3, #4] - str r1, [sp] - str r1, [sp, #4] - ldr r2, [r2, #8] - ldr r1, _02040188 @ =0x00401823 - ldr r3, _02040168 @ =FUN_020401a8 - add r2, r2, #4 - bl FUN_020305b4 - ldr r1, _02040154 @ =0x020AFE7C - ldr r1, [r1, #8] - strb r0, [r1] -_020400FC: - ldr r0, _02040154 @ =0x020AFE7C - ldr r0, [r0, #8] - ldrsb r0, [r0] - bl FUN_02030a18 - ldr r1, _02040154 @ =0x020AFE7C - ldr r1, [r1, #8] - add r1, r1, #0x300 - strh r0, [r1, #0xe8] - mov r0, #1 - bl FUN_0204027c - bl PrintMoveOptionMenu - ldr r1, _02040154 @ =0x020AFE7C - mov r2, #0 - ldr r0, [r1, #8] - strb r2, [r0, #0x3e5] - ldr r0, [r1, #8] - add r0, r0, #0x300 - strh r2, [r0, #0xe6] - ldr r0, [r1, #8] - ldrsb r0, [r0] - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02040154: .4byte 0x020AFE7C -_02040158: .4byte 0x00000A3E -_0204015C: .4byte 0x022AAE00 -_02040160: .4byte 0x0209C93C -_02040164: .4byte 0x00401803 -_02040168: .4byte FUN_020401a8 -_0204016C: .4byte 0x0209C94C -_02040170: .4byte 0x00400800 -_02040174: .4byte 0x0209C92C -_02040178: .4byte 0x00401A03 -_0204017C: .4byte 0x0209C95C -_02040180: .4byte 0x00400A00 -_02040184: .4byte 0x00409823 -_02040188: .4byte 0x00401823 - arm_func_end FUN_0203fe5c - - arm_func_start FUN_0204018c -FUN_0204018c: @ 0x0204018C - ldr ip, _02040198 @ =FUN_0203fe5c - mov r3, #0 - bx ip - .align 2, 0 -_02040198: .4byte FUN_0203fe5c - arm_func_end FUN_0204018c - - arm_func_start thunk_FUN_0203fe5c -thunk_FUN_0203fe5c: @ 0x0204019C - ldr ip, _020401A4 @ =FUN_0203fe5c - bx ip - .align 2, 0 -_020401A4: .4byte FUN_0203fe5c - arm_func_end thunk_FUN_0203fe5c - - arm_func_start FUN_020401a8 -FUN_020401a8: @ 0x020401A8 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sl, r0 - bl FUN_02027b1c - ldr r4, _02040274 @ =0x020AFE7C - mov sb, #0 - ldr r0, [r4, #8] - ldr r7, _02040278 @ =0x022AADFC - ldr r0, [r0, #0x10] - mov fp, #8 - lsl r0, r0, #0x10 - asr r8, r0, #0x10 - mov r6, #0xd - mov r5, #0x17 - b _02040250 -_020401E0: - add r0, r7, sb, lsl #3 - ldrb r0, [r0, #0x2e] - tst r0, #2 - add r0, r2, sb, lsl #3 - movne r1, r6 - ldr r3, [r0, #0xa8] - moveq r1, fp - mov r0, sl - add r2, r8, #2 - bl FUN_02026214 - cmp sb, #0 - ble _02040238 - add r0, r7, sb, lsl #3 - ldrb r0, [r0, #0x2e] - tst r0, #2 - bne _02040238 - mov r0, sl - mov r1, #0x10 - mov r2, r8 - mov r3, #0x7e - str r5, [sp] - bl FUN_02025d50 -_02040238: - add r0, r8, #0x10 - add r1, sb, #1 - lsl r0, r0, #0x10 - lsl r1, r1, #0x10 - asr r8, r0, #0x10 - asr sb, r1, #0x10 -_02040250: - ldr r2, [r4, #8] - ldrsh r0, [r2, #0xa4] - cmp sb, r0 - blt _020401E0 - mov r0, #1 - bl FUN_0204027c - mov r0, sl - bl FUN_02027af0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02040274: .4byte 0x020AFE7C -_02040278: .4byte 0x022AADFC - arm_func_end FUN_020401a8 - - arm_func_start FUN_0204027c -FUN_0204027c: @ 0x0204027C - cmp r0, #0 - ldrne r0, _020402BC @ =0x020AFE7C - movne r3, #2 - ldrne r2, [r0, #8] - ldreq r0, _020402BC @ =0x020AFE7C - moveq r3, #1 - ldreq r2, [r0, #8] - movne r1, #1 - str r3, [r2, #0x3ec] - ldr r0, [r0, #8] - moveq r1, #2 - str r1, [r0, #0x3f0] - ldr r0, _020402BC @ =0x020AFE7C - ldr r0, [r0, #0xc] - cmp r0, #7 - bx lr - .align 2, 0 -_020402BC: .4byte 0x020AFE7C - arm_func_end FUN_0204027c - - arm_func_start PrintMoveOptionMenu -PrintMoveOptionMenu: @ 0x020402C0 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x5c - ldr r0, _020407AC @ =0x020AFE7C - ldr r2, _020407B0 @ =0x022AAE00 - ldr r1, [r0, #8] - str r2, [r1, #0x4c] - ldr r1, [r0, #0xc] - cmp r1, #2 - cmpne r1, #3 - cmpne r1, #6 - beq _020402FC - ldrsh r1, [r0, #2] - cmp r1, #4 - movge r1, #0 - strhge r1, [r0, #2] -_020402FC: - ldr r0, _020407AC @ =0x020AFE7C - ldrsh r0, [r0, #2] - bl FUN_020410a4 - ldr r1, _020407AC @ =0x020AFE7C - mov r0, #0 - ldr r1, [r1, #8] - strh r0, [r1, #0xa4] -_02040318: - ldr r1, _020407AC @ =0x020AFE7C - ldr r2, _020407B4 @ =0x022AAE2A - ldr r1, [r1, #8] - mov r3, #0 - add r1, r1, r0 - strb r3, [r1, #0x3e0] - ldrb r1, [r2, r0, lsl #3] - add r4, r2, r0, lsl #3 - tst r1, #1 - movne r3, #1 - tst r3, #0xff - beq _020403B4 - ldr r1, _020407AC @ =0x020AFE7C - ldr r3, [r1, #8] - ldrsh r2, [r3, #0xa4] - add r2, r2, #1 - strh r2, [r3, #0xa4] - ldr r5, [r1, #8] - ldrb r1, [r5, #0x3f8] - cmp r1, #0 - ldrne r2, [r5, #0x3f4] - cmpne r2, #0 - beq _020403C8 - ldrh r1, [r4, #4] - b _02040388 -_0204037C: - cmp r3, r1 - beq _02040394 - add r2, r2, #2 -_02040388: - ldrh r3, [r2] - cmp r3, #0 - bne _0204037C -_02040394: - cmp r3, #0 - movne r1, #1 - moveq r1, #0 - tst r1, #0xff - addne r1, r5, r0 - movne r2, #3 - strbne r2, [r1, #0x3e0] - b _020403C8 -_020403B4: - ldr r1, _020407AC @ =0x020AFE7C - ldrsh r2, [r1, #2] - cmp r0, r2 - moveq r2, #0 - strheq r2, [r1, #2] -_020403C8: - add r0, r0, #1 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - cmp r0, #4 - blt _02040318 - ldr r1, _020407AC @ =0x020AFE7C - mov r0, #0 - ldr r2, [r1, #8] - strb r0, [r2, #0x3e4] - ldr r2, [r1, #8] - ldrb r1, [r2, #0x3f8] - cmp r1, #0 - ldrne r1, [r2, #0x3f4] - cmpne r1, #0 - beq _020404B4 -_02040404: - ldr r1, _020407AC @ =0x020AFE7C - ldr r3, _020407B4 @ =0x022AAE2A - ldr r2, [r1, #8] - add r2, r2, r0 - ldrb r2, [r2, #0x3e0] - tst r2, #1 - beq _020404A0 - ldrb r2, [r3, r0, lsl #3] - tst r2, #2 - beq _02040464 - sub r6, r0, #1 - mov r5, #3 - ldr r3, _020407B8 @ =0x022AADFC - b _0204045C -_0204043C: - ldr r4, [r1, #8] - add r2, r3, r6, lsl #3 - add r4, r4, r6 - strb r5, [r4, #0x3e0] - ldrb r2, [r2, #0x2e] - tst r2, #2 - beq _02040464 - sub r6, r6, #1 -_0204045C: - cmp r6, #0 - bge _0204043C -_02040464: - add r5, r0, #1 - ldr r4, _020407B8 @ =0x022AADFC - mov r3, #3 - ldr r1, _020407AC @ =0x020AFE7C - b _02040498 -_02040478: - add r2, r4, r5, lsl #3 - ldrb r2, [r2, #0x2e] - tst r2, #2 - beq _020404A0 - ldr r2, [r1, #8] - add r2, r2, r5 - strb r3, [r2, #0x3e0] - add r5, r5, #1 -_02040498: - cmp r5, #4 - blt _02040478 -_020404A0: - add r0, r0, #1 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - cmp r0, #4 - blt _02040404 -_020404B4: - ldr r0, _020407AC @ =0x020AFE7C - mov r8, #0 - ldr r0, [r0, #0xc] - ldr fp, _020407B4 @ =0x022AAE2A - cmp r0, #2 - cmpne r0, #3 - cmpne r0, #6 - ldreq r0, _020407AC @ =0x020AFE7C - ldr r5, _020407B8 @ =0x022AADFC - ldreq r1, [r0, #8] - ldr r4, _020407AC @ =0x020AFE7C - ldrsheq r0, [r1, #0xa4] - mov sb, r8 - mov r7, r8 - addeq r0, r0, #1 - strheq r0, [r1, #0xa4] - mov r6, #0x6a -_020404F8: - ldrb r0, [fp, sb, lsl #3] - str r7, [sp] - str r6, [sp, #4] - tst r0, #1 - movne r0, #1 - moveq r0, r7 - strb r7, [sp, #8] - strb r7, [sp, #9] - add sl, fp, sb, lsl #3 - tst r0, #0xff - beq _02040634 - ldrb r0, [r5, #0x2c] - cmp r0, #0 - movne r0, #2 - strne r0, [sp] - moveq r0, #4 - streq r0, [sp] - ldr r0, [r4, #0xc] - cmp r0, #1 - cmpne r0, #5 - bne _02040574 - ldrh r0, [sl, #4] - bl Is2TurnsMove - cmp r0, #0 - movne r0, #1 - strbne r0, [sp, #9] - bne _02040574 - ldrh r0, [sl, #4] - cmp r0, #0x8a - moveq r0, #1 - strbeq r0, [sp, #8] -_02040574: - ldr r0, [r4, #0xc] - cmp r0, #0 - cmpne r0, #1 - bne _020405A4 - ldr r0, [r5] - mov r1, sl - mov r2, #1 - bl FUN_02324B24 - cmp r0, #0 - moveq r0, #1 - strbeq r0, [sp, #8] - b _020405B4 -_020405A4: - ldrb r0, [sl, #6] - cmp r0, #0 - moveq r0, #1 - strbeq r0, [sp, #8] -_020405B4: - ldr r1, [r4, #8] - ldrb r0, [r1, #0x3f8] - cmp r0, #0 - beq _020405D8 - add r0, r1, sb - ldrb r0, [r0, #0x3e0] - tst r0, #2 - movne r0, #1 - strbne r0, [sp, #8] -_020405D8: - mov r2, sl - add r0, sp, #0xc - mov r1, #0 - add r3, sp, #0 - bl FormatMoveStringMore - mov r0, #0 - bl GetDungeonResultString - mov r1, r0 - ldr r0, [r4, #8] - add r0, r0, #0xe0 - add r0, r0, r8, lsl #7 - bl Strcpy - ldr r3, [r4, #8] - add r0, r8, #1 - add r1, r3, #0xe0 - add r2, r1, r8, lsl #7 - add r1, r3, r8, lsl #3 - str r2, [r1, #0xa8] - ldr r1, [r4, #8] - lsl r0, r0, #0x10 - add r1, r1, r8, lsl #3 - str r8, [r1, #0xac] - asr r8, r0, #0x10 -_02040634: - add r0, sb, #1 - lsl r0, r0, #0x10 - asr sb, r0, #0x10 - cmp sb, #4 - blt _020404F8 - cmp r8, #4 - bne _02040710 - ldr r0, _020407AC @ =0x020AFE7C - ldr r0, [r0, #0xc] - cmp r0, #2 - cmpne r0, #3 - cmpne r0, #6 - bne _02040710 - ldr r0, _020407B8 @ =0x022AADFC - mov r2, #0 - ldrb r0, [r0, #0x2c] - str r2, [sp] - strb r2, [sp, #8] - strb r2, [sp, #9] - ldr r2, _020407BC @ =0x022AAE4C - cmp r0, #0 - ldrb r0, [r2] - mov r1, #0x6a - str r1, [sp, #4] - movne r1, #2 - bicne r0, r0, #8 - strne r1, [sp] - moveq r1, #4 - biceq r0, r0, #4 - streq r1, [sp] - strb r0, [r2] - add r0, sp, #0xc - add r3, sp, #0 - mov r1, #0 - bl FormatMoveStringMore - mov r0, #0 - bl GetDungeonResultString - ldr r2, _020407AC @ =0x020AFE7C - mov r1, r0 - ldr r0, [r2, #8] - add r0, r0, #0xe0 - add r0, r0, r8, lsl #7 - bl Strcpy - ldr r1, _020407AC @ =0x020AFE7C - add r0, r8, #1 - ldr r4, [r1, #8] - lsl r0, r0, #0x10 - add r2, r4, #0xe0 - add r3, r2, r8, lsl #7 - add r2, r4, r8, lsl #3 - str r3, [r2, #0xa8] - ldr r1, [r1, #8] - add r1, r1, r8, lsl #3 - str r8, [r1, #0xac] - asr r8, r0, #0x10 -_02040710: - ldr r0, _020407AC @ =0x020AFE7C - mov r4, #0 - ldr r1, [r0, #8] - sub r3, r4, #1 - add r1, r1, r8, lsl #3 - str r4, [r1, #0xa8] - ldr r2, [r0, #8] - sub r1, r4, #2 - add r2, r2, r8, lsl #3 - str r3, [r2, #0xac] - ldr r0, [r0, #8] - ldrsb r0, [r0] - cmp r0, r1 - beq _0204075C - bl FUN_020307ec - ldr r0, _020407AC @ =0x020AFE7C - ldr r0, [r0, #8] - ldrsb r0, [r0] - bl FUN_0203083c -_0204075C: - ldr r0, _020407AC @ =0x020AFE7C - ldr r1, [r0, #0xc] - cmp r1, #7 - ldrne r3, [r0, #8] - ldrne r2, [r3, #0x3ec] - ldrne r1, [r3, #0x3f0] - cmpne r2, r1 - beq _020407A4 - str r1, [r3, #0x3ec] - ldr r3, [r0, #8] - ldrsh r1, [r0, #2] - ldr r2, [r3, #0x10] - ldrsb r0, [r3] - add r2, r2, r1, lsl #4 - ldr r1, [r3, #0x3ec] - add r3, r2, #4 - mov r2, #0 - bl FUN_02030978 -_020407A4: - add sp, sp, #0x5c - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_020407AC: .4byte 0x020AFE7C -_020407B0: .4byte 0x022AAE00 -_020407B4: .4byte 0x022AAE2A -_020407B8: .4byte 0x022AADFC -_020407BC: .4byte 0x022AAE4C - arm_func_end PrintMoveOptionMenu - - arm_func_start FUN_020407c0 -FUN_020407c0: @ 0x020407C0 - push {r3, lr} - ldr r0, _020407E8 @ =0x020AFE7C - ldr r0, [r0, #8] - cmp r0, #0 - popeq {r3, pc} - bl MemFree - ldr r0, _020407E8 @ =0x020AFE7C - mov r1, #0 - str r1, [r0, #8] - pop {r3, pc} - .align 2, 0 -_020407E8: .4byte 0x020AFE7C - arm_func_end FUN_020407c0 - - arm_func_start FUN_020407ec -FUN_020407ec: @ 0x020407EC - push {r4, r5, r6, r7, lr} - sub sp, sp, #0x34 - add r1, sp, #0xc - mov r0, #0 - bl GetHeldButtons - add r1, sp, #0xa - mov r0, #0 - bl GetPressedButtons - add r1, sp, #8 - mov r0, #0 - bl FUN_020063f4 - ldrh r0, [sp, #0xc] - ldr r5, _02040F90 @ =0x022AAE2A - tst r0, #0x200 - movne r1, #1 - moveq r1, #0 - and r6, r1, #0xff - ldr r1, _02040F94 @ =0x020AFE7C - tst r0, #0x100 - movne r0, #1 - moveq r0, #0 - ldr r3, [r1, #8] - and r7, r0, #0xff - add r0, r3, #0x300 - ldrsh r2, [r0, #0xe6] - cmp r2, #0 - ble _0204087C - sub r2, r2, #1 - strh r2, [r0, #0xe6] - ldr r0, [r1, #8] - add r0, r0, #0x300 - ldrsh r0, [r0, #0xe6] - cmp r0, #0 - moveq r0, #2 - movne r0, #0 - b _02040F88 -_0204087C: - ldrsb r0, [r3] - bl FUN_020308c4 - cmp r0, #0 - bne _020408B8 - ldr r0, _02040F94 @ =0x020AFE7C - ldr r0, [r0, #8] - ldrsb r0, [r0] - bl FUN_02030940 - mvn r1, #0 - cmp r0, r1 - bne _020408B8 - mov r0, #1 - bl FUN_02017ccc - mov r0, #1 - b _02040F88 -_020408B8: - ldr r0, _02040F94 @ =0x020AFE7C - ldr r0, [r0, #0xc] - cmp r0, #9 - addls pc, pc, r0, lsl #2 - b _02040958 -_020408CC: @ jump table - b _02040958 @ case 0 - b _0204094C @ case 1 - b _0204090C @ case 2 - b _020408F4 @ case 3 - b _02040958 @ case 4 - b _02040958 @ case 5 - b _0204090C @ case 6 - b _0204093C @ case 7 - b _02040924 @ case 8 - b _0204090C @ case 9 -_020408F4: - ldrh r0, [sp, #0xa] - mov r6, #0 - mov r7, r6 - bic r0, r0, #6 - strh r0, [sp, #0xa] - b _02040958 -_0204090C: - ldrh r0, [sp, #0xa] - mov r6, #0 - mov r7, r6 - bic r0, r0, #4 - strh r0, [sp, #0xa] - b _02040958 -_02040924: - ldrh r0, [sp, #0xa] - mov r6, #0 - mov r7, r6 - bic r0, r0, #4 - strh r0, [sp, #0xa] - b _02040958 -_0204093C: - mov r6, #0 - mov r7, r6 - strh r6, [sp, #0xa] - b _02040958 -_0204094C: - ldrh r0, [sp, #8] - bic r0, r0, #0x30 - strh r0, [sp, #8] -_02040958: - ldr r0, _02040F94 @ =0x020AFE7C - ldr r0, [r0, #8] - ldrb r0, [r0, #0x3e5] - cmp r0, #0 - beq _02040980 - bl PrintMoveOptionMenu - ldr r0, _02040F94 @ =0x020AFE7C - mov r1, #0 - ldr r0, [r0, #8] - strb r1, [r0, #0x3e5] -_02040980: - ldrh r0, [sp, #8] - tst r0, #0x80 - beq _02040A44 - bl FUN_02041178 - cmp r7, #0 - beq _020409E4 - ldr r1, _02040F94 @ =0x020AFE7C - ldr r0, _02040F90 @ =0x022AAE2A - ldrsh r1, [r1, #2] - bl FUN_02013E54 - ldr r1, _02040F94 @ =0x020AFE7C - lsl r0, r0, #0x10 - ldrsh r1, [r1, #2] - asr r4, r0, #0x10 - cmp r1, r0, asr #16 - beq _020409D8 - mov r0, #3 - bl FUN_02017ccc - ldr r1, _02040F94 @ =0x020AFE7C - mov r0, #3 - strh r4, [r1, #2] - b _02040F88 -_020409D8: - mov r0, #2 - bl FUN_02017ccc - b _02040A44 -_020409E4: - mov r0, #3 - bl FUN_02017ccc - ldr r0, _02040F94 @ =0x020AFE7C - ldr r1, [r0, #8] - ldrsh r2, [r0, #2] - ldrsh r1, [r1, #0xa4] - add r0, r2, #1 - lsl r0, r0, #0x10 - asr r3, r0, #0x10 - b _02040A24 -_02040A0C: - ldrb r0, [r5, r3, lsl #3] - tst r0, #2 - beq _02040A2C - add r0, r3, #1 - lsl r0, r0, #0x10 - asr r3, r0, #0x10 -_02040A24: - cmp r2, r1 - blt _02040A0C -_02040A2C: - cmp r3, r1 - ldr r1, _02040F94 @ =0x020AFE7C - movge r3, #0 - mov r0, #9 - strh r3, [r1, #2] - b _02040F88 -_02040A44: - ldrh r0, [sp, #8] - tst r0, #0x40 - beq _02040B10 - bl FUN_02041178 - cmp r7, #0 - beq _02040AA8 - ldr r1, _02040F94 @ =0x020AFE7C - ldr r0, _02040F90 @ =0x022AAE2A - ldrsh r1, [r1, #2] - bl FUN_02013F58 - ldr r1, _02040F94 @ =0x020AFE7C - lsl r0, r0, #0x10 - ldrsh r1, [r1, #2] - asr r4, r0, #0x10 - cmp r1, r0, asr #16 - beq _02040A9C - mov r0, #3 - bl FUN_02017ccc - ldr r1, _02040F94 @ =0x020AFE7C - mov r0, #4 - strh r4, [r1, #2] - b _02040F88 -_02040A9C: - mov r0, #2 - bl FUN_02017ccc - b _02040B10 -_02040AA8: - mov r0, #3 - bl FUN_02017ccc - ldr r0, _02040F94 @ =0x020AFE7C - ldrsh r1, [r0, #2] - cmp r1, #0 - subgt r0, r1, #1 - ldrle r0, [r0, #8] - ldrshle r0, [r0, #0xa4] - suble r0, r0, #1 - lsl r0, r0, #0x10 - asr r2, r0, #0x10 - b _02040AF0 -_02040AD8: - ldrb r0, [r5, r2, lsl #3] - tst r0, #2 - beq _02040AF8 - sub r0, r2, #1 - lsl r0, r0, #0x10 - asr r2, r0, #0x10 -_02040AF0: - cmp r1, #0 - bge _02040AD8 -_02040AF8: - ldr r1, _02040F94 @ =0x020AFE7C - cmp r2, #0 - movlt r2, #0 - mov r0, #9 - strh r2, [r1, #2] - b _02040F88 -_02040B10: - mov r4, #0 - bl FUN_0204ae60 - cmp r0, #0 - add r0, sp, #0x10 - beq _02040B2C - bl GetReleasedStylus - b _02040B30 -_02040B2C: - bl FUN_02006bfc -_02040B30: - ldrh r0, [sp, #0x10] - tst r0, #0x40 - beq _02040C38 - tst r0, #2 - ldrne r0, _02040F94 @ =0x020AFE7C - ldrne r0, [r0, #0xc] - cmpne r0, #7 - beq _02040C38 - cmp r0, #2 - cmpne r0, #3 - cmpne r0, #6 - bne _02040B68 - mov r1, #0x70 - b _02040B6C -_02040B68: - mov r1, #0x60 -_02040B6C: - ldr r0, [sp, #0x14] - cmp r0, #0x10 - blt _02040C38 - cmp r0, #0xa0 - bge _02040C38 - ldr r0, [sp, #0x18] - cmp r0, #0x20 - blt _02040C38 - cmp r0, r1 - bge _02040C38 - sub r1, r0, #0x20 - asr r0, r1, #3 - add r0, r1, r0, lsr #28 - lsl r0, r0, #0xc - ldr r2, _02040F94 @ =0x020AFE7C - asr r1, r0, #0x10 - ldr r5, [r2, #8] - add r7, r1, #1 - mov r3, #0 - mvn r2, #0 - b _02040BDC -_02040BC0: - add r0, r5, r3, lsl #3 - ldr r0, [r0, #0xac] - cmp r0, r2 - beq _02040BE4 - add r0, r3, #1 - lsl r0, r0, #0x10 - asr r3, r0, #0x10 -_02040BDC: - cmp r3, r7 - blt _02040BC0 -_02040BE4: - cmp r3, r1 - ble _02040C38 - ldr r0, _02040F90 @ =0x022AAE2A - ldrb r0, [r0, r1, lsl #3] - tst r0, #2 - bne _02040C38 - lsl r0, r1, #4 - ldr r3, _02040F94 @ =0x020AFE7C - add r0, r0, #0x20 - lsl r2, r0, #0x10 - mov r0, #0x10 - ldr r4, _02040F98 @ =0x0209C928 - strh r1, [r3, #2] - mov r3, r0 - str r4, [sp] - mov r4, #0x40 - asr r1, r2, #0x10 - mov r2, #0x90 - str r4, [sp, #4] - mov r4, #1 - bl FUN_0202a2a4 -_02040C38: - ldr r0, _02040F94 @ =0x020AFE7C - ldr r5, [r0, #8] - ldrsb r0, [r5] - bl FUN_02030a18 - add r1, r5, #0x300 - ldrsh r1, [r1, #0xe8] - cmp r1, r0 - beq _02040C90 - mov r0, #4 - bl FUN_02017ccc - ldr r0, _02040F94 @ =0x020AFE7C - mov r1, #0 - strh r1, [r0, #2] - ldr r0, [r0, #8] - ldrsb r0, [r0] - bl FUN_02030a18 - ldr r1, _02040F94 @ =0x020AFE7C - ldr r1, [r1, #8] - add r1, r1, #0x300 - strh r0, [r1, #0xe8] - mov r0, #5 - b _02040F88 -_02040C90: - ldrh r0, [sp, #0xa] - tst r0, #2 - beq _02040CAC - mov r0, #1 - bl FUN_02017ccc - mov r0, #1 - b _02040F88 -_02040CAC: - tst r0, #4 - beq _02040D0C - ldr r0, _02040F9C @ =0x00003F07 - mov r1, #0x100 - bl thunk_FUN_020182b8 - ldr r0, _02040F94 @ =0x020AFE7C - ldr r1, [r0, #0xc] - cmp r1, #3 - addls pc, pc, r1, lsl #2 - b _02040CF4 -_02040CD4: @ jump table - b _02040CE4 @ case 0 - b _02040CE4 @ case 1 - b _02040CE4 @ case 2 - b _02040CE4 @ case 3 -_02040CE4: - ldr r0, [r0, #8] - ldrsb r0, [r0] - bl FUN_02030ef0 - b _02040D04 -_02040CF4: - bl FUN_02041178 - ldr r0, _02040F94 @ =0x020AFE7C - ldrsh r0, [r0, #2] - bl FUN_02041000 -_02040D04: - mov r0, #6 - b _02040F88 -_02040D0C: - tst r0, #8 - beq _02040D28 - ldr r0, _02040FA0 @ =0x00003F04 - mov r1, #0x100 - bl thunk_FUN_020182b8 - mov r0, #7 - b _02040F88 -_02040D28: - ldrsb r0, [r5] - bl FUN_020308e4 - cmp r0, #0 - bne _02040F84 - ldrh r0, [sp, #0xa] - tst r0, #0x400 - bne _02040D50 - tst r0, #1 - cmpeq r4, #0 - beq _02040F84 -_02040D50: - ldr r0, _02040F94 @ =0x020AFE7C - mov r2, #0 - ldr r3, [r0, #8] - ldrb r1, [r3, #0x3f8] - cmp r1, #0 - beq _02040D7C - ldrsh r0, [r0, #2] - add r0, r3, r0 - ldrb r0, [r0, #0x3e0] - tst r0, #1 - movne r2, #1 -_02040D7C: - cmp r2, #0 - bne _02040F70 - cmp r4, #0 - addne r0, r3, #0x300 - movne r1, #6 - strhne r1, [r0, #0xe6] - cmp r6, #0 - beq _02040EC8 - ldr r0, _02040F94 @ =0x020AFE7C - ldr r0, [r0, #0xc] - cmp r0, #1 - cmpne r0, #5 - bne _02040EC8 - cmp r4, #0 - ldrne r0, _02040F94 @ =0x020AFE7C - movne r1, #0 - ldrne r0, [r0, #8] - addne r0, r0, #0x300 - strhne r1, [r0, #0xe6] - ldr r0, _02040F94 @ =0x020AFE7C - ldr r1, [r0, #0xc] - cmp r1, #3 - addls pc, pc, r1, lsl #2 - b _02040E34 -_02040DDC: @ jump table - b _02040DEC @ case 0 - b _02040DEC @ case 1 - b _02040DEC @ case 2 - b _02040DEC @ case 3 -_02040DEC: - ldrsh r0, [r0, #2] - bl FUN_02041194 - cmp r0, #0 - bne _02040E10 - ldr r0, _02040F94 @ =0x020AFE7C - ldrsh r0, [r0, #2] - bl FUN_02041364 - cmp r0, #0 - beq _02040E34 -_02040E10: - ldr r0, _02040F9C @ =0x00003F07 - mov r1, #0x100 - bl thunk_FUN_020182b8 - ldr r0, _02040F94 @ =0x020AFE7C - ldr r0, [r0, #8] - ldrsb r0, [r0] - bl FUN_02030ef0 - mov r0, #8 - b _02040F88 -_02040E34: - ldr r0, _02040F94 @ =0x020AFE7C - ldrsh r0, [r0, #2] - bl FUN_02041194 - cmp r0, #0 - beq _02040E88 - ldr r0, _02040F94 @ =0x020AFE7C - ldr r1, [r0, #0xc] - cmp r1, #5 - ldrbeq r0, [r0] - cmpeq r0, #0 - bne _02040E6C - ldr r0, _02040FA4 @ =0x00001308 - bl FUN_02017c80 - b _02040E78 -_02040E6C: - ldr r0, _02040F9C @ =0x00003F07 - mov r1, #0x100 - bl thunk_FUN_020182b8 -_02040E78: - ldr r0, _02040F94 @ =0x020AFE7C - ldrsh r0, [r0, #2] - bl FUN_020412B0 - b _02040EC0 -_02040E88: - ldr r0, _02040F94 @ =0x020AFE7C - ldrsh r0, [r0, #2] - bl FUN_02041364 - cmp r0, #0 - beq _02040EB8 - ldr r0, _02040F9C @ =0x00003F07 - mov r1, #0x100 - bl thunk_FUN_020182b8 - ldr r0, _02040F94 @ =0x020AFE7C - ldrsh r0, [r0, #2] - bl FUN_02041394 - b _02040EC0 -_02040EB8: - mov r0, #2 - bl FUN_02017ccc -_02040EC0: - bl FUN_02041178 - b _02040F84 -_02040EC8: - cmp r4, #0 - beq _02040EEC - mov r0, #0 - bl FUN_02017ccc - ldr r0, _02040F94 @ =0x020AFE7C - ldr r0, [r0, #8] - ldrsb r0, [r0] - bl FUN_02030ef0 - b _02040F18 -_02040EEC: - ldrh r0, [sp, #0xa] - tst r0, #0x400 - mov r0, #0 - beq _02040F14 - bl FUN_02017ccc - ldr r0, _02040F94 @ =0x020AFE7C - ldr r0, [r0, #8] - ldrsb r0, [r0] - bl FUN_02030ef0 - b _02040F18 -_02040F14: - bl FUN_02017ccc -_02040F18: - ldr r0, _02040F94 @ =0x020AFE7C - mov r1, #2 - ldr r3, [r0, #8] - mov r2, #0 - str r1, [r3, #0x3ec] - ldr r3, [r0, #8] - str r1, [r3, #0x3f0] - ldr r6, [r0, #8] - ldrsh r3, [r0, #2] - ldr r5, [r6, #0x10] - ldrsb r0, [r6] - add r3, r5, r3, lsl #4 - add r3, r3, #4 - bl FUN_02030978 - ldr r0, _02040F94 @ =0x020AFE7C - ldr r0, [r0, #8] - ldrsb r0, [r0] - bl FUN_02027af0 - cmp r4, #0 - bne _02040F84 - mov r0, #2 - b _02040F88 -_02040F70: - mov r0, #2 - bl FUN_02017ccc - cmp r4, #0 - beq _02040F84 - bl FUN_02041178 -_02040F84: - mov r0, #0 -_02040F88: - add sp, sp, #0x34 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_02040F90: .4byte 0x022AAE2A -_02040F94: .4byte 0x020AFE7C -_02040F98: .4byte 0x0209C928 -_02040F9C: .4byte 0x00003F07 -_02040FA0: .4byte 0x00003F04 -_02040FA4: .4byte 0x00001308 - arm_func_end FUN_020407ec -_02040FA8: - .byte 0x44, 0x00, 0x9F, 0xE5, 0x2C, 0x00, 0xD0, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x38, 0x00, 0x9F, 0xE5, 0x38, 0x10, 0x9F, 0xE5 - .byte 0xF2, 0x00, 0xD0, 0xE1, 0x80, 0x01, 0xD1, 0xE7, 0x08, 0x00, 0x10, 0xE3, 0x04, 0x00, 0x00, 0xEA - .byte 0x20, 0x00, 0x9F, 0xE5, 0x20, 0x10, 0x9F, 0xE5, 0xF2, 0x00, 0xD0, 0xE1, 0x80, 0x01, 0xD1, 0xE7 - .byte 0x04, 0x00, 0x10, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0xFF, 0x00, 0x00, 0xE2 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xFC, 0xAD, 0x2A, 0x02, 0x7C, 0xFE, 0x0A, 0x02, 0x2A, 0xAE, 0x2A, 0x02 - - arm_func_start FUN_02041000 -FUN_02041000: @ 0x02041000 - push {r4, lr} - mov r4, r0 - bl FUN_02041178 - ldr r2, _0204108C @ =0x022AADFC - ldrb r0, [r2, #0x2c] - cmp r0, #0 - beq _02041078 - ldr r1, _02041090 @ =0x022AAE2A - ldrb r0, [r1, r4, lsl #3] - tst r0, #8 - eorne r0, r0, #8 - strbne r0, [r1, r4, lsl #3] - popne {r4, pc} - mov r3, #0 -_02041038: - add r0, r2, r3, lsl #3 - ldrb r0, [r0, #0x2e] - tst r0, #8 - bne _02041050 - cmp r3, r4 - bne _02041060 -_02041050: - add r1, r2, r3, lsl #3 - ldrb r0, [r1, #0x2e] - eor r0, r0, #8 - strb r0, [r1, #0x2e] -_02041060: - add r0, r3, #1 - lsl r0, r0, #0x10 - asr r3, r0, #0x10 - cmp r3, #4 - blt _02041038 - pop {r4, pc} -_02041078: - ldr r1, _02041090 @ =0x022AAE2A - ldrb r0, [r1, r4, lsl #3] - eor r0, r0, #4 - strb r0, [r1, r4, lsl #3] - pop {r4, pc} - .align 2, 0 -_0204108C: .4byte 0x022AADFC -_02041090: .4byte 0x022AAE2A - arm_func_end FUN_02041000 - - arm_func_start FUN_02041094 -FUN_02041094: @ 0x02041094 - ldr r0, _020410A0 @ =0x020AFE7C - ldrsh r0, [r0, #2] - bx lr - .align 2, 0 -_020410A0: .4byte 0x020AFE7C - arm_func_end FUN_02041094 - - arm_func_start FUN_020410a4 -FUN_020410a4: @ 0x020410A4 - ldr r1, _0204114C @ =0x020AFE7C - cmp r0, #0 - strh r0, [r1, #2] - movlt r0, #0 - strhlt r0, [r1, #2] - ldr r0, _0204114C @ =0x020AFE7C - ldrsh r2, [r0, #2] - cmp r2, #4 - blt _02041100 - ldr r1, [r0, #0xc] - cmp r1, #2 - cmpne r1, #3 - arm_func_end FUN_020410a4 - - arm_func_start FUN_020410d4 -FUN_020410d4: @ 0x020410D4 - cmpne r1, #6 - arm_func_end FUN_020410d4 - - arm_func_start FUN_020410d8 -FUN_020410d8: @ 0x020410D8 - bne _020410F8 - arm_func_end FUN_020410d8 - - arm_func_start FUN_020410dc -FUN_020410dc: @ 0x020410DC - cmp r2, #4 - ldreq r0, _0204114C @ =0x020AFE7C - moveq r1, #4 - ldrne r0, _0204114C @ =0x020AFE7C - movne r1, #0 - strh r1, [r0, #2] - bx lr -_020410F8: - mov r1, #3 - strh r1, [r0, #2] -_02041100: - ldr r2, _02041150 @ =0x022AADFC - ldr r0, _0204114C @ =0x020AFE7C -_02041108: - ldrsh r1, [r0, #2] - cmp r1, #0 - ldrlt r0, _0204114C @ =0x020AFE7C - movlt r1, #0 - strhlt r1, [r0, #2] - bxlt lr - add r1, r2, r1, lsl #3 - ldrb r1, [r1, #0x2e] - tst r1, #1 - beq _02041138 - tst r1, #2 - bxeq lr -_02041138: - ldrsh r1, [r0, #2] - sub r1, r1, #1 - strh r1, [r0, #2] - b _02041108 -_02041148: - .byte 0x1E, 0xFF, 0x2F, 0xE1 -_0204114C: .4byte 0x020AFE7C -_02041150: .4byte 0x022AADFC - arm_func_end FUN_020410dc - - arm_func_start FUN_02041154 -FUN_02041154: @ 0x02041154 - cmp r0, #4 - ldreq r0, _02041170 @ =0x022AADFC - ldrne r1, _02041174 @ =0x022AAE2E - ldrheq r0, [r0, #0x54] - lslne r0, r0, #3 - ldrhne r0, [r1, r0] - bx lr - .align 2, 0 -_02041170: .4byte 0x022AADFC -_02041174: .4byte 0x022AAE2E - arm_func_end FUN_02041154 - - arm_func_start FUN_02041178 -FUN_02041178: @ 0x02041178 - ldr r0, _02041190 @ =0x020AFE7C - ldr r1, [r0, #8] - cmp r1, #0 - movne r0, #1 - strbne r0, [r1, #0x3e5] - bx lr - .align 2, 0 -_02041190: .4byte 0x020AFE7C - arm_func_end FUN_02041178 - - arm_func_start FUN_02041194 -FUN_02041194: @ 0x02041194 - push {r4, r5, r6, r7, r8, lr} - ldr r4, _020412AC @ =0x022AAE2A - mov r6, r0 - add r0, r4, r6, lsl #3 - ldrh r0, [r0, #4] - bl IsNot2TurnsMoveOrSketch - cmp r0, #0 - moveq r0, #0 - popeq {r4, r5, r6, r7, r8, pc} - add r5, r6, #1 - mov r7, #0 - mov r8, #1 - b _0204129C -_020411C8: - ldrb r0, [r4, r5, lsl #3] - tst r0, #1 - movne r0, r8 - moveq r0, r7 - tst r0, #0xff - beq _020412A4 - add r0, r4, r5, lsl #3 - ldrh r0, [r0, #4] - bl IsNot2TurnsMoveOrSketch - cmp r0, #0 - beq _020412A4 - ldrb r0, [r4, r5, lsl #3] - tst r0, #2 - bne _02041298 - add r0, r5, #1 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - b _02041228 -_02041210: - ldrb r1, [r4, r0, lsl #3] - tst r1, #2 - beq _02041230 - add r0, r0, #1 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 -_02041228: - cmp r0, #4 - blt _02041210 -_02041230: - lsl r1, r6, #0x10 - asr r5, r1, #0x10 - b _02041288 -_0204123C: - add r1, r5, #1 - lsl r1, r1, #0x10 - asr r3, r1, #0x10 - add r1, r4, r5, lsl #3 - ldrh r2, [r1, #4] - b _02041274 -_02041254: - add r1, r4, r3, lsl #3 - ldrh r1, [r1, #4] - cmp r2, r1 - moveq r0, #0 - popeq {r4, r5, r6, r7, r8, pc} - add r1, r3, #1 - lsl r1, r1, #0x10 - asr r3, r1, #0x10 -_02041274: - cmp r3, r0 - blt _02041254 - add r1, r5, #1 - lsl r1, r1, #0x10 - asr r5, r1, #0x10 -_02041288: - cmp r5, r0 - blt _0204123C - mov r0, #1 - pop {r4, r5, r6, r7, r8, pc} -_02041298: - add r5, r5, #1 -_0204129C: - cmp r5, #4 - blt _020411C8 -_020412A4: - mov r0, #0 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_020412AC: .4byte 0x022AAE2A - arm_func_end FUN_02041194 - - arm_func_start FUN_020412B0 -FUN_020412B0: @ 0x020412B0 - push {r4, lr} - mov r4, r0 - bl FUN_02041194 - cmp r0, #0 - popeq {r4, pc} - add r1, r4, #1 - ldr r0, _02041358 @ =0x022AAE2A - mov r3, #0 - mov ip, #1 - b _0204133C -_020412D8: - ldrb r2, [r0, r1, lsl #3] - tst r2, #1 - movne r2, ip - moveq r2, r3 - tst r2, #0xff - beq _02041344 - ldrb r2, [r0, r1, lsl #3] - tst r2, #2 - bne _02041338 - ldr r2, _0204135C @ =0x022AADFC - ldr lr, _02041358 @ =0x022AAE2A - ldrb r2, [r2, #0x2c] - cmp r2, #0 - ldrne r3, _02041358 @ =0x022AAE2A - ldrbne r2, [r3, r1, lsl #3] - bicne r2, r2, #8 - strbne r2, [r3, r1, lsl #3] - ldrb ip, [lr, r1, lsl #3] - ldr r2, _02041360 @ =0x020AFE7C - mov r3, #1 - strb r3, [r2] - bic r2, ip, #4 - strb r2, [lr, r1, lsl #3] - b _02041344 -_02041338: - add r1, r1, #1 -_0204133C: - cmp r1, #4 - blt _020412D8 -_02041344: - ldrb r2, [r0, r1, lsl #3] - orr r2, r2, #2 - strb r2, [r0, r1, lsl #3] - bl FUN_02041178 - pop {r4, pc} - .align 2, 0 -_02041358: .4byte 0x022AAE2A -_0204135C: .4byte 0x022AADFC -_02041360: .4byte 0x020AFE7C - arm_func_end FUN_020412B0 - - arm_func_start FUN_02041364 -FUN_02041364: @ 0x02041364 - cmp r0, #3 - ldr r1, _02041390 @ =0x022AAE2A - moveq r0, #0 - bxeq lr - add r0, r0, #1 - ldrb r0, [r1, r0, lsl #3] - tst r0, #2 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_02041390: .4byte 0x022AAE2A - arm_func_end FUN_02041364 - - arm_func_start FUN_02041394 -FUN_02041394: @ 0x02041394 - push {r4, lr} - mov r4, r0 - bl FUN_02041364 - cmp r0, #0 - popeq {r4, pc} - add ip, r4, #1 - ldr r3, _020413FC @ =0x022AAE2A - mov r1, #0 - mov r2, #1 - b _020413EC -_020413BC: - ldrb r0, [r3, ip, lsl #3] - tst r0, #1 - movne r0, r2 +_022BEE4C: + add ip, ip, #4 + ldr r2, [ip, #-4] + cmp r2, lr moveq r0, r1 - tst r0, #0xff - beq _020413F4 - ldrb r0, [r3, ip, lsl #3] - tst r0, #2 - beq _020413F4 - eor r0, r0, #2 - strb r0, [r3, ip, lsl #3] - add ip, ip, #1 -_020413EC: - cmp ip, #4 - blt _020413BC -_020413F4: - bl FUN_02041178 - pop {r4, pc} - .align 2, 0 -_020413FC: .4byte 0x022AAE2A - arm_func_end FUN_02041394 -_02041400: - .byte 0x08, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0xC0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x7C, 0xFE, 0x0A, 0x02, 0x04, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0xD0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x7C, 0xFE, 0x0A, 0x02, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0xC3, 0x1E, 0xFF, 0x2F, 0xC1 - .byte 0x01, 0xC0, 0xA0, 0xE3, 0x44, 0x30, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x0C, 0x20, 0xA0, 0xE1 - .byte 0x0A, 0x00, 0x00, 0xEA, 0x8C, 0x01, 0xD3, 0xE7, 0x01, 0x00, 0x10, 0xE3, 0x02, 0x00, 0xA0, 0x11 - .byte 0x01, 0x00, 0xA0, 0x01, 0xFF, 0x00, 0x10, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x8C, 0x01, 0xD3, 0xE7 - .byte 0x02, 0x00, 0x10, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0xC0, 0x8C, 0xE2 - .byte 0x04, 0x00, 0x5C, 0xE3, 0xF2, 0xFF, 0xFF, 0xBA, 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x2A, 0xAE, 0x2A, 0x02 - - arm_func_start FUN_02041484 -FUN_02041484: @ 0x02041484 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0x20 - ldr r1, _02041594 @ =0x020AFE7C - ldr r0, _02041598 @ =0x022AAE2A - ldrsh r2, [r1, #2] - mov r1, #0 - mov r3, r1 - strb r1, [r0, r2, lsl #3] - add r5, r2, #1 - mov r4, #1 - b _020414DC -_020414B0: - ldrb r2, [r0, r5, lsl #3] - tst r2, #1 - movne r2, r4 - moveq r2, r3 - tst r2, #0xff - beq _020414E4 - ldrb r2, [r0, r5, lsl #3] - tst r2, #2 - beq _020414E4 - strb r1, [r0, r5, lsl #3] - add r5, r5, #1 -_020414DC: - cmp r5, #4 - blt _020414B0 -_020414E4: - mov r6, #0 - mov r7, r6 - mov r4, r6 - mov r5, #1 - add lr, sp, #0 -_020414F8: - ldrb r1, [r0, r7, lsl #3] - tst r1, #1 - movne r1, r5 - moveq r1, r4 - tst r1, #0xff - beq _02041530 - add ip, r0, r7, lsl #3 - add r3, lr, r6, lsl #3 - mov r2, #4 -_0204151C: - ldrh r1, [ip], #2 - subs r2, r2, #1 - strh r1, [r3], #2 - bne _0204151C - add r6, r6, #1 -_02041530: - add r7, r7, #1 - cmp r7, #4 - blt _020414F8 - mov r2, #0 - add r1, sp, #0 - b _02041550 -_02041548: - strb r2, [r1, r6, lsl #3] - add r6, r6, #1 -_02041550: - cmp r6, #4 - blt _02041548 - mov r4, #0 - add lr, sp, #0 -_02041560: - add ip, lr, r4, lsl #3 - add r3, r0, r4, lsl #3 - mov r2, #4 -_0204156C: - ldrh r1, [ip], #2 - subs r2, r2, #1 - strh r1, [r3], #2 - bne _0204156C - add r4, r4, #1 - cmp r4, #4 - blt _02041560 - bl FUN_02041178 - add sp, sp, #0x20 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02041594: .4byte 0x020AFE7C -_02041598: .4byte 0x022AAE2A - arm_func_end FUN_02041484 -_0204159C: - .byte 0x14, 0x00, 0x9F, 0xE5 - .byte 0x58, 0x00, 0xD0, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13 - .byte 0xFF, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0xFC, 0xAD, 0x2A, 0x02 - - arm_func_start FUN_020415bc -FUN_020415bc: @ 0x020415BC - mov r3, #0 - ldr ip, _02041610 @ =0x022AAE2A - mov r1, r3 - mov r2, #1 - b _020415F4 -_020415D0: - ldrb r0, [ip, r3, lsl #3] - tst r0, #1 - movne r0, r2 - moveq r0, r1 - tst r0, #0xff - beq _020415FC - add r0, r3, #1 - lsl r0, r0, #0x10 - asr r3, r0, #0x10 -_020415F4: - cmp r3, #4 - blt _020415D0 -_020415FC: - cmp r3, #4 - movge r0, #1 - movlt r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_02041610: .4byte 0x022AAE2A - arm_func_end FUN_020415bc - - arm_func_start FUN_02041614 -FUN_02041614: @ 0x02041614 - push {r3, r4, r5, lr} - mov r5, #0 - ldr r4, _020416B0 @ =0x022AAE2A - mov r2, r5 - mov r3, #1 - b _02041694 -_0204162C: - ldrb r1, [r4, r5, lsl #3] - tst r1, #1 - movne r1, r3 - moveq r1, r2 - tst r1, #0xff - bne _02041688 - mov r1, #5 - strb r1, [r4, r5, lsl #3] - add r2, r4, r5, lsl #3 - strh r0, [r2, #4] - mov r1, #0 - ldr r0, _020416B4 @ =0x022AADFC - strb r1, [r2, #7] - ldrsh r0, [r0, #0x5a] - ldr r1, _020416B8 @ =0x022AAE58 - bl GetPpIncrease - add r1, r4, r5, lsl #3 - strh r0, [r1, #2] - mov r0, r1 - bl GetMaxPp - add r1, r4, r5, lsl #3 - strb r0, [r1, #6] - b _0204169C -_02041688: - add r1, r5, #1 - lsl r1, r1, #0x10 - asr r5, r1, #0x10 -_02041694: - cmp r5, #4 - blt _0204162C -_0204169C: - cmp r5, #4 - mvnge r5, #0 - lsl r0, r5, #0x10 - asr r0, r0, #0x10 - pop {r3, r4, r5, pc} - .align 2, 0 -_020416B0: .4byte 0x022AAE2A -_020416B4: .4byte 0x022AADFC -_020416B8: .4byte 0x022AAE58 - arm_func_end FUN_02041614 -_020416BC: - .byte 0x08, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x10, 0xA0, 0xE1, 0x0C, 0x00, 0x9F, 0xE5, 0x22, 0x4A, 0xFF, 0xEB, 0x00, 0x08, 0xA0, 0xE1 - .byte 0x40, 0x08, 0xA0, 0xE1, 0x08, 0x80, 0xBD, 0xE8, 0x2A, 0xAE, 0x2A, 0x02, 0x08, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x10, 0xA0, 0xE1, 0x0C, 0x00, 0x9F, 0xE5, 0xD9, 0x49, 0xFF, 0xEB, 0x00, 0x08, 0xA0, 0xE1 - .byte 0x40, 0x08, 0xA0, 0xE1, 0x08, 0x80, 0xBD, 0xE8, 0x2A, 0xAE, 0x2A, 0x02 - - arm_func_start FUN_020416fc -FUN_020416fc: @ 0x020416FC - push {r3, lr} - ldr r0, _02041720 @ =0x020AFE7C - ldr r0, [r0, #8] - ldrsb r0, [r0] - bl FUN_020307ec - mov r0, #1 - bl FUN_0204027c - bl FUN_02041178 - pop {r3, pc} - .align 2, 0 -_02041720: .4byte 0x020AFE7C - arm_func_end FUN_020416fc - - arm_func_start FUN_02041724 -FUN_02041724: @ 0x02041724 - push {r3, lr} - bl IsDeoxys - cmp r0, #0 - ldrne r0, _02041748 @ =0x022AADFC - movne r1, #1 - ldreq r0, _02041748 @ =0x022AADFC - moveq r1, #0 - strb r1, [r0, #0x58] - pop {r3, pc} - .align 2, 0 -_02041748: .4byte 0x022AADFC - arm_func_end FUN_02041724 - - arm_func_start SprintfStatic -SprintfStatic: @ 0x0204174C - push {r0, r1, r2, r3} - push {r3, lr} - add r2, sp, #0xc - bic r2, r2, #3 - ldr r1, [sp, #0xc] - add r2, r2, #4 - bl Vsprintf - pop {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end SprintfStatic - - arm_func_start FUN_02041774 -FUN_02041774: @ 0x02041774 - push {r4, lr} - mov r4, r0 - mov r0, #0x2bc - mov r1, #8 - bl MemAlloc - ldr r1, _020417A4 @ =0x020AFE8C - mvn r2, #1 - str r0, [r1] - str r4, [r0, #4] - ldr r0, [r1] - strb r2, [r0] - pop {r4, pc} - .align 2, 0 -_020417A4: .4byte 0x020AFE8C - arm_func_end FUN_02041774 - - arm_func_start FUN_020417a8 -FUN_020417a8: @ 0x020417A8 - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov r6, r1 - mov r4, r2 - mov r7, r0 - cmp r4, r6 - mvnge r0, #1 - popge {r3, r4, r5, r6, r7, r8, sb, pc} - ldrb r0, [r7, r4, lsl #3] - tst r0, #1 - mvneq r0, #1 - popeq {r3, r4, r5, r6, r7, r8, sb, pc} - mov r0, r3 - bl FUN_02041774 - ldr r0, _0204185C @ =0x020AFE8C - add r1, r7, r4, lsl #3 - ldr r0, [r0] - mov r2, #8 - add r0, r0, #8 - bl Memcpy - add r5, r4, #1 - mov r4, #1 - mov sb, #8 - ldr r8, _0204185C @ =0x020AFE8C - b _02041840 -_02041808: - ldrb r0, [r7, r5, lsl #3] - lsl r1, r5, #3 - tst r0, #1 - beq _0204183C - tst r0, #2 - beq _02041848 - ldr r0, [r8] - mov r2, sb - add r0, r0, #8 - add r0, r0, r4, lsl #3 - add r1, r7, r1 - bl Memcpy - add r4, r4, #1 -_0204183C: - add r5, r5, #1 -_02041840: - cmp r5, r6 - blt _02041808 -_02041848: - ldr r0, _0204185C @ =0x020AFE8C - ldr r0, [r0] - strh r4, [r0, #0x28] - bl FUN_020418a4 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0204185C: .4byte 0x020AFE8C - arm_func_end FUN_020417a8 - - arm_func_start FUN_02041860 -FUN_02041860: @ 0x02041860 - push {r4, lr} - mov r4, r0 - mov r0, r1 - bl FUN_02041774 - ldr r0, _020418A0 @ =0x020AFE8C - mov r1, r4 - ldr r0, [r0] - mov r2, #8 - add r0, r0, #8 - bl Memcpy - ldr r0, _020418A0 @ =0x020AFE8C - mov r1, #1 - ldr r0, [r0] - strh r1, [r0, #0x28] - bl FUN_020418a4 - pop {r4, pc} - .align 2, 0 -_020418A0: .4byte 0x020AFE8C - arm_func_end FUN_02041860 - - arm_func_start FUN_020418a4 -FUN_020418a4: @ 0x020418A4 - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x10 - mov r7, #0 - ldr r6, _020419F0 @ =0x000008D4 - ldr r5, _020419F4 @ =0x020AFE8C - mov r4, #0x50 - b _02041950 -_020418C0: - ldr r1, [r5] - mul r8, r7, r4 - add r0, r1, r7, lsl #3 - ldrh r0, [r0, #0xc] - add r1, r1, r7, lsl #1 - add r1, r1, #0x200 - strh r6, [r1, #0xac] - ldr r2, [r5] - add r1, r0, #0xa2 - add r2, r2, r8 - str r0, [r2, #0x3c] - ldr r2, [r5] - add r3, r1, #0x2700 - add r1, r2, r7, lsl #1 - add r1, r1, #0x200 - strh r3, [r1, #0xb4] - ldr r1, [r5] - add r1, r1, r8 - str r0, [r1, #0x17c] - ldr r0, [r5] - add r0, r0, #8 - add r0, r0, r7, lsl #3 - bl GetMoveRangeId - ldr r1, [r5] - add r1, r1, r8 - str r0, [r1, #0x180] - ldr r0, [r5] - add r0, r0, #8 - add r0, r0, r7, lsl #3 - bl GetMoveType - ldr r2, [r5] - add r1, r7, #1 - add r2, r2, r8 - lsl r1, r1, #0x10 - str r0, [r2, #0x184] - asr r7, r1, #0x10 -_02041950: - ldr r2, [r5] - ldrsh r3, [r2, #0x28] - cmp r7, r3 - blt _020418C0 - cmp r3, #1 - ble _020419A0 - add r0, r2, #0x2ac - str r0, [sp] - add r0, r2, #0x2c - str r0, [sp, #4] - add r4, r2, #0x2b4 - str r4, [sp, #8] - add r4, r2, #0x16c - ldr r0, _020419F8 @ =0x0209C97C - ldr r1, _020419FC @ =0x00001013 - mov r2, #0 - str r4, [sp, #0xc] - bl FUN_0202e518 - ldr r1, _020419F4 @ =0x020AFE8C - b _020419D4 -_020419A0: - add r0, r2, #0x2c - str r0, [sp] - add r1, r2, #0x200 - ldrh r3, [r1, #0xb4] - add r2, r2, #0x16c - ldr r0, _020419F8 @ =0x0209C97C - str r3, [sp, #4] - str r2, [sp, #8] - ldrh r3, [r1, #0xac] - ldr r1, _020419FC @ =0x00001013 - mov r2, #0 - bl FUN_0202e3cc - ldr r1, _020419F4 @ =0x020AFE8C -_020419D4: - ldr r1, [r1] - strb r0, [r1] - ldr r0, _020419F4 @ =0x020AFE8C - ldr r0, [r0] - ldrsb r0, [r0] - add sp, sp, #0x10 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_020419F0: .4byte 0x000008D4 -_020419F4: .4byte 0x020AFE8C -_020419F8: .4byte 0x0209C97C -_020419FC: .4byte 0x00001013 - arm_func_end FUN_020418a4 - - arm_func_start FUN_02041a00 -FUN_02041a00: @ 0x02041A00 - ldr r0, _02041A10 @ =0x020AFE8C - ldr ip, _02041A14 @ =MemFree - ldr r0, [r0] - bx ip - .align 2, 0 -_02041A10: .4byte 0x020AFE8C -_02041A14: .4byte MemFree - arm_func_end FUN_02041a00 - - arm_func_start FUN_02041a18 -FUN_02041a18: @ 0x02041A18 - push {r3, lr} - ldr r0, _02041A3C @ =0x020AFE8C - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_0202e6e4 - cmp r0, #0 - movne r0, #0 - moveq r0, #1 - pop {r3, pc} - .align 2, 0 -_02041A3C: .4byte 0x020AFE8C - arm_func_end FUN_02041a18 - - arm_func_start PrintIqSkillsMenu -PrintIqSkillsMenu: @ 0x02041A40 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0xa0 - mov r7, r0 - mov r6, r1 - add r0, sp, #8 - mov r1, #0x98 - mov r5, r2 - mov r4, r3 - bl MemZero - mov r1, #0xd - rsb r0, r1, #0xa80 - str r1, [sp, #0xc] - mov r1, #0 - str r1, [sp, #8] - mov r1, #0x10 - strh r0, [sp, #0x10] - str r1, [sp, #0x14] - mov r0, #0x840 - mov r1, #8 - bl MemAlloc - ldr r2, _02041B6C @ =0x020AFE90 - mov r1, #0x840 - str r0, [r2, #4] - bl MemZero - ldr r3, _02041B6C @ =0x020AFE90 - mov r1, r7 - ldr r0, [r3, #4] - mov r2, r5 - str r6, [r0, #0x790] - ldr r0, [r3, #4] - add r0, r0, #0x700 - strh r7, [r0, #0x94] - ldr r0, [r3, #4] - str r5, [r0, #0x798] - ldr r0, [r3, #4] - add r0, r0, #0x64 - bl GetLearnableIqSkills - ldr r3, _02041B6C @ =0x020AFE90 - ldr r1, _02041B70 @ =0x80401C33 - ldr r2, [r3, #4] - mov r5, #8 - add r2, r2, #0x700 - strh r0, [r2, #0x8c] - ldr r2, [r3, #4] - ldr r0, _02041B74 @ =0x0209C98C - add r2, r2, #0x700 - ldrsh r6, [r2, #0x8c] - ldr r3, _02041B78 @ =0x0204213C - add r2, sp, #8 - str r6, [sp] - str r5, [sp, #4] - bl CreateAdvancedMenu - ldr r1, _02041B6C @ =0x020AFE90 - mov r2, #0 - ldr r3, [r1, #4] - strb r0, [r3] - ldr r0, [r1, #4] - str r2, [r0, #0x6f0] - ldr r0, [r1, #4] - str r2, [r0, #0x6ec] - ldr r0, [r1, #4] - strb r4, [r0, #0x83c] - ldr r0, [r1, #4] - add r0, r0, #0x700 - strh r2, [r0, #0x8e] - ldr r0, [r1, #4] - add r0, r0, #0x14 - bl InitPreprocessorArgs - ldr r0, _02041B6C @ =0x020AFE90 - ldr r1, [r0, #4] - add r0, r1, #0x34 - add r0, r0, #0x800 - str r0, [r1, #0x7fc] - add sp, sp, #0xa0 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02041B6C: .4byte 0x020AFE90 -_02041B70: .4byte 0x80401C33 -_02041B74: .4byte 0x0209C98C -_02041B78: .4byte 0x0204213C - arm_func_end PrintIqSkillsMenu - - arm_func_start FUN_02041b7c -FUN_02041b7c: @ 0x02041B7C - push {r4, lr} - sub sp, sp, #0xf8 - ldr r1, _020420BC @ =0x020AFE90 - ldr r3, [r1, #4] - ldr r0, [r3, #0x6f0] - cmp r0, #8 - addls pc, pc, r0, lsl #2 - b _020420B0 -_02041B9C: @ jump table - b _02041BC0 @ case 0 - b _02041DB0 @ case 1 - b _02041E40 @ case 2 - b _02041EBC @ case 3 - b _02041F30 @ case 4 - b _02041EE4 @ case 5 - b _02041FA4 @ case 6 - b _02041FE8 @ case 7 - b _020420A0 @ case 8 -_02041BC0: - ldrsb r0, [r3] - bl FUN_0202bcbc - cmp r0, #0 - bne _02041CF8 - ldr r0, _020420BC @ =0x020AFE90 - ldr r0, [r0, #4] - ldrsb r0, [r0] - bl GetAdvancedMenuResult - ldr r2, _020420BC @ =0x020AFE90 - mvn r1, #0 - ldr r3, [r2, #4] - str r0, [r3, #0x838] - ldr r2, [r2, #4] - ldr r0, [r2, #0x838] - cmp r0, r1 - moveq r0, #8 - streq r0, [r2, #0x6f0] - beq _020420B0 - mov r0, #0 - bl FUN_02017ccc - ldr r0, _020420BC @ =0x020AFE90 - ldr r2, _020420C0 @ =0x0209C9B0 - ldrsb r3, [r0] - ldr r1, [r0, #4] - ldr r2, [r2, r3, lsl #3] - str r2, [r1, #0x79c] - ldr r3, [r0, #4] - ldr r2, [r3, #0x838] - ldrb r1, [r3, #0x83c] - add r2, r3, r2 - ldrb r2, [r2, #0x64] - cmp r1, #0 - bne _02041C60 - cmp r2, #0x18 - cmpne r2, #0x1b - beq _02041C60 - add r1, r2, #0xc8 - and r1, r1, #0xff - cmp r1, #1 - bhi _02041C7C -_02041C60: - mov r1, #3 - ldr r0, _020420BC @ =0x020AFE90 - strb r1, [r3, #0x834] - ldr r0, [r0, #4] - mov r1, #0 - strb r1, [r0, #0x835] - b _02041C8C -_02041C7C: - mov r1, #0 - strb r1, [r3, #0x834] - ldr r0, [r0, #4] - strb r1, [r0, #0x835] -_02041C8C: - ldr r0, _020420BC @ =0x020AFE90 - mov r1, #0x98 - ldr r0, [r0, #4] - add r0, r0, #0x39c - add r0, r0, #0x400 - bl MemZero - ldr r2, _020420BC @ =0x020AFE90 - ldr r3, _020420C4 @ =0x0209C9AC - ldr r4, [r2, #4] - mov r1, #0 - add r0, r4, #0x34 - add r0, r0, #0x800 - str r0, [r4, #0x7fc] - str r3, [sp] - str r1, [sp, #4] - str r1, [sp, #8] - ldr r2, [r2, #4] - ldr r0, _020420C8 @ =0x0209C99C - add r3, r2, #0x39c - ldr r2, _020420CC @ =0x80000233 - add r3, r3, #0x400 - bl FUN_02046a20 - ldr r0, _020420BC @ =0x020AFE90 - mov r1, #1 - ldr r0, [r0, #4] - str r1, [r0, #0x6f0] - b _020420B0 -_02041CF8: - add r1, sp, #0xc - mov r0, #0 - bl GetPressedButtons - ldrh r0, [sp, #0xc] - tst r0, #8 - beq _02041D54 - ldr r0, _020420D0 @ =0x00003F04 - bl FUN_02017c80 - ldr r0, _020420BC @ =0x020AFE90 - ldr r0, [r0, #4] - ldrsb r0, [r0] - bl FUN_0202c1e4 - ldr r0, _020420BC @ =0x020AFE90 - ldr r0, [r0, #4] - ldrsb r0, [r0] - bl GetAdvancedMenuResult - ldr r1, _020420BC @ =0x020AFE90 - mov r2, #3 - ldr r3, [r1, #4] - str r0, [r3, #0x838] - ldr r0, [r1, #4] - str r2, [r0, #0x6f0] - b _020420B0 -_02041D54: - tst r0, #4 - beq _020420B0 - ldr r0, _020420BC @ =0x020AFE90 - ldr r1, [r0, #4] - ldrb r0, [r1, #0x83c] - cmp r0, #0 - beq _02041D7C - ldr r0, _020420D4 @ =0x00003F03 - bl FUN_02017c80 - b _020420B0 -_02041D7C: - ldrsb r0, [r1] - bl FUN_0202c1e4 - ldr r0, _020420BC @ =0x020AFE90 - ldr r0, [r0, #4] - ldrsb r0, [r0] - bl GetAdvancedMenuResult - ldr r1, _020420BC @ =0x020AFE90 - mov r2, #2 - ldr r3, [r1, #4] - str r0, [r3, #0x838] - ldr r0, [r1, #4] - str r2, [r0, #0x6f0] - b _020420B0 -_02041DB0: - bl FUN_02046b04 - mov r4, r0 - bl FUN_02046ba0 - ldr r1, _020420BC @ =0x020AFE90 - add r2, r4, #2 - strb r0, [r1] - cmp r2, #4 - addls pc, pc, r2, lsl #2 - b _020420B0 -_02041DD4: @ jump table - b _02041DF0 @ case 0 - b _020420B0 @ case 1 - b _02041E14 @ case 2 - b _02041E24 @ case 3 - b _02041DE8 @ case 4 -_02041DE8: - mov r0, #0 - bl FUN_02017ccc -_02041DF0: - ldr r0, _020420BC @ =0x020AFE90 - ldr r0, [r0, #4] - ldrsb r0, [r0] - bl FUN_0202bbf0 - ldr r0, _020420BC @ =0x020AFE90 - mov r1, #0 - ldr r0, [r0, #4] - str r1, [r0, #0x6f0] - b _020420B0 -_02041E14: - ldr r0, [r1, #4] - mov r1, #2 - str r1, [r0, #0x6f0] - b _020420B0 -_02041E24: - mov r0, #0 - bl FUN_02017ccc - ldr r0, _020420BC @ =0x020AFE90 - mov r1, #3 - ldr r0, [r0, #4] - str r1, [r0, #0x6f0] - b _020420B0 -_02041E40: - ldr r1, [r3, #0x838] - add r2, r3, #0x64 - ldrb r0, [r2, r1] - cmp r0, #0x18 - bne _02041E60 - mov r0, #2 - bl FUN_02017ccc - b _02041E98 -_02041E60: - cmp r0, #0x1b - beq _02041E78 - add r0, r0, #0xc8 - and r0, r0, #0xff - cmp r0, #1 - bhi _02041E84 -_02041E78: - mov r0, #2 - bl FUN_02017ccc - b _02041E98 -_02041E84: - ldrb r1, [r2, r1] - ldr r0, [r3, #0x790] - bl DisableIqSkill - ldr r0, _020420D8 @ =0x00003F07 - bl FUN_02017c80 -_02041E98: - ldr r0, _020420BC @ =0x020AFE90 - ldr r0, [r0, #4] - ldrsb r0, [r0] - bl FUN_0202bbf0 - ldr r0, _020420BC @ =0x020AFE90 - mov r1, #0 - ldr r0, [r0, #4] - str r1, [r0, #0x6f0] - b _020420B0 -_02041EBC: - ldrsb r0, [r3] - bl FUN_0202812c - ldr r1, _020420BC @ =0x020AFE90 - mov r2, #5 - ldr r0, [r1, #4] - add r0, r0, #0x700 - strh r2, [r0, #0x8e] - ldr r0, [r1, #4] - str r2, [r0, #0x6f0] - b _020420B0 -_02041EE4: - add r0, r3, #0x700 - ldrsh r2, [r0, #0x8e] - sub r2, r2, #1 - strh r2, [r0, #0x8e] - ldr r2, [r1, #4] - add r0, r2, #0x700 - ldrsh r0, [r0, #0x8e] - cmp r0, #0 - bge _020420B0 - mov r0, #4 - str r0, [r2, #0x6f0] - ldr r0, [r1, #4] - ldrsb r0, [r0] - bl FreeAdvancedMenu - ldr r0, _020420BC @ =0x020AFE90 - mvn r1, #1 - ldr r0, [r0, #4] - strb r1, [r0] - b _020420B0 -_02041F30: - add r0, sp, #0xa8 - bl InitPreprocessorArgs - ldr r0, _020420BC @ =0x020AFE90 - add ip, sp, #0xa8 - ldr r3, [r0, #4] - ldr r0, _020420DC @ =0x020AFE98 - ldr r2, [r3, #0x838] - ldr r1, _020420E0 @ =0x00001013 - add r2, r3, r2 - ldrb lr, [r2, #0x64] - ldr r3, _020420E4 @ =0x00000A77 - mov r2, #0 - str lr, [sp, #0xb8] - str ip, [sp] - ldr ip, [sp, #0xb8] - add ip, ip, #0x2a - add ip, ip, #0x2700 - lsl ip, ip, #0x10 - lsr ip, ip, #0x10 - str ip, [sp, #4] - str r2, [sp, #8] - bl FUN_0202e3cc - ldr r1, _020420BC @ =0x020AFE90 - mov r2, #6 - ldr r3, [r1, #4] - strb r0, [r3, #1] - ldr r0, [r1, #4] - str r2, [r0, #0x6f0] - b _020420B0 -_02041FA4: - ldrsb r0, [r3, #1] - bl FUN_0202e6e4 - cmp r0, #0 - bne _020420B0 - ldr r0, _020420BC @ =0x020AFE90 - ldr r0, [r0, #4] - ldrsb r0, [r0, #1] - bl FUN_0202e6c8 - ldr r0, _020420BC @ =0x020AFE90 - mov r3, #7 - ldr r2, [r0, #4] - mov r1, #8 - str r3, [r2, #0x6f0] - ldr r0, [r0, #4] - add r0, r0, #0x700 - strh r1, [r0, #0x8e] - b _020420B0 -_02041FE8: - add r0, r3, #0x700 - ldrsh r2, [r0, #0x8e] - sub r2, r2, #1 - strh r2, [r0, #0x8e] - ldr r0, [r1, #4] - add r0, r0, #0x700 - ldrsh r2, [r0, #0x8e] - cmp r2, #0 - bge _020420B0 - mov r3, #0 - strh r3, [r0, #0x8e] - ldr r2, [r1, #4] - mov r0, #0xd - str r3, [r2, #0x6f0] - ldr r3, [r1, #4] - str r0, [sp, #0x14] - ldr r2, [r3, #0x838] - rsb r1, r0, #0xa80 - mov r0, #0x10 - str r0, [sp, #0x1c] - str r2, [sp, #0x10] - strh r1, [sp, #0x18] - add r0, r3, #0x700 - ldrsh r1, [r0, #0x94] - ldr r2, [r3, #0x798] - add r0, r3, #0x64 - bl GetLearnableIqSkills - ldr ip, _020420BC @ =0x020AFE90 - ldr r1, _020420E8 @ =0x80401C33 - ldr r3, [ip, #4] - add r2, sp, #0x10 - add r3, r3, #0x700 - strh r0, [r3, #0x8c] - ldr r3, [ip, #4] - ldr r0, _020420EC @ =0x0209C98C - add r3, r3, #0x700 - ldrsh lr, [r3, #0x8c] - ldr r3, _020420F0 @ =0x0204213C - mov ip, #8 - str lr, [sp] - str ip, [sp, #4] - bl CreateAdvancedMenu - ldr r1, _020420BC @ =0x020AFE90 - ldr r1, [r1, #4] - strb r0, [r1] - b _020420B0 -_020420A0: - mov r0, #9 - str r0, [r3, #0x6f0] - mov r0, #1 - b _020420B4 -_020420B0: - mov r0, #0 -_020420B4: - add sp, sp, #0xf8 - pop {r4, pc} - .align 2, 0 -_020420BC: .4byte 0x020AFE90 -_020420C0: .4byte 0x0209C9B0 -_020420C4: .4byte 0x0209C9AC -_020420C8: .4byte 0x0209C99C -_020420CC: .4byte 0x80000233 -_020420D0: .4byte 0x00003F04 -_020420D4: .4byte 0x00003F03 -_020420D8: .4byte 0x00003F07 -_020420DC: .4byte 0x020AFE98 -_020420E0: .4byte 0x00001013 -_020420E4: .4byte 0x00000A77 -_020420E8: .4byte 0x80401C33 -_020420EC: .4byte 0x0209C98C -_020420F0: .4byte 0x0204213C - arm_func_end FUN_02041b7c - - arm_func_start FUN_020420f4 -FUN_020420f4: @ 0x020420F4 - push {r3, lr} - ldr r0, _02042138 @ =0x020AFE90 - ldr r0, [r0, #4] - cmp r0, #0 - popeq {r3, pc} - ldrsb r0, [r0] - mvn r1, #1 - cmp r0, r1 - beq _0204211C - bl FreeAdvancedMenu -_0204211C: - ldr r0, _02042138 @ =0x020AFE90 - ldr r0, [r0, #4] - bl MemFree - ldr r0, _02042138 @ =0x020AFE90 - mov r1, #0 - str r1, [r0, #4] - pop {r3, pc} - .align 2, 0 -_02042138: .4byte 0x020AFE90 - arm_func_end FUN_020420f4 -_0204213C: - .byte 0x78, 0x40, 0x2D, 0xE9 - .byte 0x84, 0xD0, 0x4D, 0xE2, 0xFC, 0x20, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x04, 0x20, 0x92, 0xE5 - .byte 0x00, 0x60, 0xA0, 0xE3, 0x01, 0x00, 0x82, 0xE0, 0x64, 0x50, 0xD0, 0xE5, 0x90, 0x07, 0x92, 0xE5 - .byte 0x18, 0x00, 0x55, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0x03, 0x00, 0xA0, 0xE3, 0x48, 0x2A, 0x00, 0xEB - .byte 0x01, 0x00, 0x00, 0xEA, 0x05, 0x10, 0xA0, 0xE1, 0x61, 0x5B, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x01, 0x60, 0xA0, 0x13, 0x00, 0x00, 0x56, 0xE3, 0x13, 0x00, 0x00, 0x0A, 0x38, 0x00, 0x55, 0xE3 - .byte 0x07, 0x00, 0x00, 0xCA, 0x08, 0x00, 0x00, 0xAA, 0x1B, 0x00, 0x55, 0xE3, 0x0A, 0x00, 0x00, 0xCA - .byte 0x18, 0x00, 0x55, 0xE3, 0x08, 0x00, 0x00, 0xBA, 0x1B, 0x00, 0x55, 0x13, 0x02, 0x00, 0x00, 0x0A - .byte 0x05, 0x00, 0x00, 0xEA, 0x39, 0x00, 0x55, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x88, 0x10, 0x9F, 0xE5 - .byte 0x44, 0x00, 0x8D, 0xE2, 0x32, 0x1D, 0x01, 0xEB, 0x06, 0x00, 0x00, 0xEA, 0x7C, 0x10, 0x9F, 0xE5 - .byte 0x44, 0x00, 0x8D, 0xE2, 0x2E, 0x1D, 0x01, 0xEB, 0x02, 0x00, 0x00, 0xEA, 0x70, 0x10, 0x9F, 0xE5 - .byte 0x44, 0x00, 0x8D, 0xE2, 0x2A, 0x1D, 0x01, 0xEB, 0x58, 0x10, 0x9F, 0xE5, 0x05, 0x00, 0xA0, 0xE1 - .byte 0x04, 0x10, 0x91, 0xE5, 0x24, 0x50, 0x81, 0xE5, 0x87, 0x5A, 0x00, 0xEB, 0x00, 0x10, 0xA0, 0xE1 - .byte 0x04, 0x00, 0x8D, 0xE2, 0x40, 0x20, 0xA0, 0xE3, 0xBF, 0x8D, 0xFF, 0xEB, 0x44, 0x00, 0x8D, 0xE2 - .byte 0x04, 0x10, 0x8D, 0xE2, 0x64, 0x1D, 0x01, 0xEB, 0x28, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x04, 0x20, 0x91, 0xE5, 0x40, 0x10, 0xA0, 0xE3, 0x14, 0x20, 0x82, 0xE2, 0x00, 0x20, 0x8D, 0xE5 - .byte 0x44, 0x20, 0x8D, 0xE2, 0x00, 0x30, 0xA0, 0xE3, 0x6C, 0x80, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x84, 0xD0, 0x8D, 0xE2, 0x78, 0x80, 0xBD, 0xE8, 0x90, 0xFE, 0x0A, 0x02, 0xCC, 0xC9, 0x09, 0x02 - .byte 0xD4, 0xC9, 0x09, 0x02, 0xDC, 0xC9, 0x09, 0x02 - - arm_func_start FUN_02042258 -FUN_02042258: @ 0x02042258 - push {r3, r4, r5, r6, lr} - sub sp, sp, #0xc - mov r6, r0 - mov r0, #0xa0 - mov r1, #8 - mov r5, r2 - mov r4, r3 - bl MemAlloc - ldr r1, _020423B4 @ =0x020AFEA8 - str r0, [r1, #4] - str r6, [r0] - bl RemoveEmptyItemsInBag - mov r0, #0x14 - bl Arm9LoadUnkFieldNa0x2029EC8 - ldr r1, _020423B4 @ =0x020AFEA8 - cmp r4, #0 - ldr r3, [r1, #4] - ldrne r4, _020423B8 @ =FUN_020423d8 - str r0, [r3, #8] - ldr r2, _020423BC @ =0x0000032F - ldr r0, [r1, #4] - mov ip, #0x10 - strh r2, [r0, #0x10] - ldr r0, [r1, #4] - mov r3, #0xd - str ip, [r0, #0x14] - ldr r0, [r1, #4] - ldr r2, _020423C0 @ =0x0204261C - str r3, [r0, #0xc] - ldr r0, [r1, #4] - moveq r4, #0 - str r2, [r0, #0x7c] - bl GetNbItemsInBag - str r4, [sp] - str r0, [sp, #4] - ldr r0, _020423B4 @ =0x020AFEA8 - str r5, [sp, #8] - ldr r2, [r0, #4] - ldr r0, _020423C4 @ =0x0209C9E4 - ldr r1, _020423C8 @ =0x00443C33 - ldr r3, _020423CC @ =FUN_02042760 - add r2, r2, #8 - bl FUN_0202c3a8 - ldr r2, _020423B4 @ =0x020AFEA8 - ldr r1, _020423D0 @ =FUN_0204262c - ldr r3, [r2, #4] - strb r0, [r3, #4] - ldr r0, [r2, #4] - ldrsb r0, [r0, #4] - bl FUN_0202d068 - ldr r0, _020423B4 @ =0x020AFEA8 - ldr r1, _020423D4 @ =0x0204263C - ldr r0, [r0, #4] - ldrsb r0, [r0, #4] - bl FUN_0202c7d0 - ldr r0, _020423B4 @ =0x020AFEA8 - mov r1, #0xd - ldr r0, [r0, #4] - ldrsb r0, [r0, #4] - bl FUN_0202c5e0 - ldr r0, _020423B4 @ =0x020AFEA8 - ldr r1, [r0, #4] - ldr r0, [r1] - cmp r0, #3 - beq _02042368 - cmp r0, #4 - beq _0204237C - b _020423A0 -_02042368: - mov r0, #0 - bl FUN_0204440c - mov r0, #2 - bl FUN_0204426c - b _020423A0 -_0204237C: - ldrsb r0, [r1, #4] - mov r1, #0x76 - bl FUN_0202c5f4 - mov r0, #0 - bl FUN_0204440c - mov r0, #0 - bl FUN_0204426c - mov r0, #0 - bl FUN_02044568 -_020423A0: - ldr r0, _020423B4 @ =0x020AFEA8 - ldr r0, [r0, #4] - ldrsb r0, [r0, #4] - add sp, sp, #0xc - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_020423B4: .4byte 0x020AFEA8 -_020423B8: .4byte FUN_020423d8 -_020423BC: .4byte 0x0000032F -_020423C0: .4byte 0x0204261C -_020423C4: .4byte 0x0209C9E4 -_020423C8: .4byte 0x00443C33 -_020423CC: .4byte FUN_02042760 -_020423D0: .4byte FUN_0204262c -_020423D4: .4byte 0x0204263C - arm_func_end FUN_02042258 - - arm_func_start FUN_020423d8 -FUN_020423d8: @ 0x020423D8 - push {r4, r5, r6, r7, r8, lr} - ldr r1, _02042618 @ =0x020AFEA8 - mov r5, #0 - ldr r2, [r1, #4] - ldr r1, [r2] - cmp r1, #3 - bne _02042498 - tst r0, #0x800 - beq _02042498 - bl FUN_02042b20 - cmp r0, #0 - ble _0204241C - bl FUN_02042af8 - mov r0, #6 - bl FUN_02017ccc - mov r5, #1 - b _020425D8 -_0204241C: - bl thunk_FUN_02050ce4 - mov r4, r0 - bl FUN_0200fd78 - sub r7, r4, r0 - mov r8, r5 - mov r6, #1 - ldr r4, _02042618 @ =0x020AFEA8 - b _02042470 -_0204243C: - cmp r7, #0 - ble _02042478 - lsl r0, r8, #0x10 - asr r0, r0, #0x10 - bl GetItemAtIdx - ldrsh r0, [r0, #4] - bl FUN_0200cca8 - cmp r0, #0 - ldrne r0, [r4, #8] - movne r5, r6 - strne r6, [r0, r8, lsl #2] - subne r7, r7, #1 - add r8, r8, #1 -_02042470: - cmp r8, #0x32 - blt _0204243C -_02042478: - cmp r5, #0 - beq _0204248C - mov r0, #6 - bl FUN_02017ccc - b _020425D8 -_0204248C: - mov r0, #2 - bl FUN_02017ccc - b _020425D8 -_02042498: - tst r0, #0x400 - beq _020425D8 - ldrsb r0, [r2, #4] - bl FUN_0202d0ec - ldr r1, _02042618 @ =0x020AFEA8 - mov r4, r0 - ldr r0, [r1, #4] - ldr r0, [r0] - cmp r0, #3 - beq _020424CC - cmp r0, #4 - beq _02042570 - b _020425D8 -_020424CC: - lsl r0, r4, #0x10 - asr r0, r0, #0x10 - bl GetItemAtIdx - ldrsh r0, [r0, #4] - bl FUN_0200cca8 - cmp r0, #0 - beq _02042560 - ldr r0, _02042618 @ =0x020AFEA8 - ldr r2, [r0, #8] - ldr r0, [r2, r4, lsl #2] - tst r0, #1 - beq _02042514 - mov r1, #0 - mov r0, #6 - str r1, [r2, r4, lsl #2] - bl FUN_02017ccc - mov r5, #1 - b _020425D8 -_02042514: - bl FUN_0200fd78 - mov r6, r0 - bl FUN_02042b20 - mov r5, r0 - bl thunk_FUN_02050ce4 - add r1, r6, r5 - cmp r1, r0 - bge _02042550 - mov r0, #6 - bl FUN_02017ccc - ldr r0, _02042618 @ =0x020AFEA8 - mov r5, #1 - ldr r0, [r0, #8] - str r5, [r0, r4, lsl #2] - b _020425D8 -_02042550: - mov r0, #2 - bl FUN_02017ccc - mov r5, #0 - b _020425D8 -_02042560: - mov r0, #2 - bl FUN_02017ccc - mov r5, #0 - b _020425D8 -_02042570: - lsl r0, r4, #0x10 - asr r0, r0, #0x10 - bl GetItemAtIdx - ldrsh r0, [r0, #4] - bl FUN_0200cce0 - cmp r0, #0 - beq _020425CC - ldr r0, _02042618 @ =0x020AFEA8 - mov r5, #1 - ldr r2, [r0, #8] - ldr r0, [r2, r4, lsl #2] - tst r0, #1 - mov r0, #6 - beq _020425B8 - mov r1, #0 - str r1, [r2, r4, lsl #2] - bl FUN_02017ccc - b _020425D8 -_020425B8: - bl FUN_02017ccc - ldr r0, _02042618 @ =0x020AFEA8 - ldr r0, [r0, #8] - str r5, [r0, r4, lsl #2] - b _020425D8 -_020425CC: - mov r0, #2 - bl FUN_02017ccc - mov r5, #0 -_020425D8: - bl FUN_02042b20 - cmp r0, #0 - beq _020425FC - ldr r0, _02042618 @ =0x020AFEA8 - mov r1, #1 - ldr r0, [r0, #4] - ldrsb r0, [r0, #4] - bl FUN_0202d16c - b _02042610 -_020425FC: - ldr r0, _02042618 @ =0x020AFEA8 - mov r1, #0 - ldr r0, [r0, #4] - ldrsb r0, [r0, #4] - bl FUN_0202d16c -_02042610: - mov r0, r5 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02042618: .4byte 0x020AFEA8 - arm_func_end FUN_020423d8 -_0204261C: - .byte 0x08, 0x40, 0x2D, 0xE9 - .byte 0x6E, 0x01, 0x00, 0xEB, 0x37, 0x07, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_0204262c -FUN_0204262c: @ 0x0204262C - push {r3, lr} - bl FUN_02042be0 - bl FUN_02044308 - pop {r3, pc} - arm_func_end FUN_0204262c -_0204263C: - .byte 0x18, 0x20, 0x9F, 0xE5 - .byte 0x06, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0x92, 0xE5, 0x10, 0xC0, 0x9F, 0xE5, 0x84, 0x23, 0x92, 0xE5 - .byte 0x90, 0x21, 0x21, 0xE0, 0xF4, 0x00, 0xD1, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1, 0xB8, 0xF6, 0x0A, 0x02 - .byte 0xB0, 0x44, 0x04, 0x02 - - arm_func_start FUN_02042664 -FUN_02042664: @ 0x02042664 - push {r3, lr} - ldr r0, _020426B0 @ =0x020AFEA8 - ldr r0, [r0, #4] - cmp r0, #0 - popeq {r3, pc} - bl FUN_02044474 - bl FUN_020442cc - bl FUN_020445c8 - ldr r0, _020426B0 @ =0x020AFEA8 - ldr r0, [r0, #4] - ldrsb r0, [r0, #4] - bl FUN_0202c70c - ldr r0, _020426B0 @ =0x020AFEA8 - ldr r0, [r0, #4] - bl MemFree - ldr r0, _020426B0 @ =0x020AFEA8 - mov r1, #0 - str r1, [r0, #4] - pop {r3, pc} - .align 2, 0 -_020426B0: .4byte 0x020AFEA8 - arm_func_end FUN_02042664 - - arm_func_start FUN_020426b4 -FUN_020426b4: @ 0x020426B4 - push {r3, lr} - ldr r0, _0204272C @ =0x020AFEA8 - ldr r0, [r0, #4] - cmp r0, #0 - moveq r0, #0 - popeq {r3, pc} - ldrsb r0, [r0, #4] - bl FUN_0202c728 - cmp r0, #0 - bne _02042708 - ldr r0, _0204272C @ =0x020AFEA8 - ldr r0, [r0, #4] - ldrsb r0, [r0, #4] - bl FUN_0202c75c - mvn r1, #0 - cmp r0, r1 - ldrne r1, _0204272C @ =0x020AFEA8 - moveq r0, #2 - strhne r0, [r1] - movne r0, #3 - pop {r3, pc} -_02042708: - ldr r0, _0204272C @ =0x020AFEA8 - ldr r0, [r0, #4] - ldrsb r0, [r0, #4] - bl FUN_0202c748 - and r1, r0, #0xff - mov r0, #0x14 - bl Arm9StoreUnkFieldNa0x2029ED8 - mov r0, #0 - pop {r3, pc} - .align 2, 0 -_0204272C: .4byte 0x020AFEA8 - arm_func_end FUN_020426b4 - - arm_func_start FUN_02042730 -FUN_02042730: @ 0x02042730 - ldr r0, _02042740 @ =0x020AFEA8 - mov r1, #0 - strh r1, [r0] - bx lr - .align 2, 0 -_02042740: .4byte 0x020AFEA8 - arm_func_end FUN_02042730 - - arm_func_start FUN_02042744 -FUN_02042744: @ 0x02042744 - ldr r0, _02042758 @ =0x020AFEA8 - ldr ip, _0204275C @ =FUN_0202c620 - ldr r0, [r0, #4] - ldrsb r0, [r0, #4] - bx ip - .align 2, 0 -_02042758: .4byte 0x020AFEA8 -_0204275C: .4byte FUN_0202c620 - arm_func_end FUN_02042744 - - arm_func_start FUN_02042760 -FUN_02042760: @ 0x02042760 - push {r4, r5, r6, r7, lr} - sub sp, sp, #0x64 - mov r5, r1 - mov r1, #6 - ldr r3, _02042A64 @ =0x020AF6B8 - mul r4, r5, r1 - ldr r1, [r3] - ldr r3, _02042A68 @ =0x020AFEA8 - ldr r6, [r1, #0x384] - ldr r7, [r3, #4] - ldrh r1, [r6, r4] - add lr, r6, r4 - mov r4, r2 - strh r1, [sp] - ldrh ip, [lr, #2] - mov r6, r0 - add r1, sp, #0 - strh ip, [sp, #2] - ldrh r2, [lr, #4] - strh r2, [sp, #4] - ldr r2, [r7] - cmp r2, #5 - addls pc, pc, r2, lsl #2 - b _02042A3C -_020427C0: @ jump table - b _020427D8 @ case 0 - b _020427E4 @ case 1 - b _020427E4 @ case 2 - b _02042808 @ case 3 - b _020428D4 @ case 4 - b _020429E8 @ case 5 -_020427D8: - mov r2, #0 - bl FUN_0200d670 - b _02042A3C -_020427E4: - mov r7, #0 - mov r3, #1 - add r2, sp, #8 - str r7, [sp, #8] - strb r7, [sp, #0xc] - strb r3, [sp, #0x10] - strb r3, [sp] - bl FUN_0200d670 - b _02042A3C -_02042808: - mov r1, #0 - mov r0, #1 - str r1, [sp, #8] - strb r1, [sp, #0xc] - strb r0, [sp, #0x10] - strb r0, [sp] - ldr r0, [r3, #8] - ldr r0, [r0, r5, lsl #2] - tst r0, #1 - bne _0204284C - lsl r0, r5, #0x10 - asr r0, r0, #0x10 - bl GetItemAtIdx - ldrsh r0, [r0, #4] - bl FUN_0200cca8 - cmp r0, #0 - beq _02042890 -_0204284C: - add r0, sp, #0x14 - add r1, sp, #0 - add r2, sp, #8 - bl FUN_0200d670 - ldrb r2, [sp, #1] - cmp r2, #0 - beq _0204287C - ldr r1, _02042A6C @ =0x0209C9F4 - add r3, sp, #0x14 - mov r0, r6 - bl SprintfStatic - b _02042A3C -_0204287C: - ldr r1, _02042A70 @ =0x0209C9FC - add r2, sp, #0x14 - mov r0, r6 - bl SprintfStatic - b _02042A3C -_02042890: - add r0, sp, #0x14 - add r1, sp, #0 - add r2, sp, #8 - bl FUN_0200d65c - ldrb r2, [sp, #1] - cmp r2, #0 - beq _020428C0 - ldr r1, _02042A74 @ =0x0209CA08 - add r3, sp, #0x14 - mov r0, r6 - bl SprintfStatic - b _02042A3C -_020428C0: - ldr r1, _02042A78 @ =0x0209CA18 - add r2, sp, #0x14 - mov r0, r6 - bl SprintfStatic - b _02042A3C -_020428D4: - ldrsh r0, [sp, #4] - bl FUN_0200cce0 - cmp r0, #0 - beq _020429A4 - mov r7, #3 - mov r3, #0 - mov r2, #0x6a - mov r1, #1 - add r0, sp, #0 - str r7, [sp, #8] - strb r3, [sp, #0xc] - strh r2, [sp, #0xe] - strb r1, [sp, #0x10] - strb r7, [sp] - bl GetActualSellPrice - mov r7, r0 - bl GetGold - ldr r1, _02042A7C @ =0x0001869F - add r0, r7, r0 - cmp r0, r1 - add r0, sp, #0x14 - add r1, sp, #0 - add r2, sp, #8 - bgt _0204296C - bl FUN_0200d670 - ldrb r2, [sp, #1] - cmp r2, #0 - beq _02042958 - ldr r1, _02042A6C @ =0x0209C9F4 - add r3, sp, #0x14 - mov r0, r6 - bl SprintfStatic - b _02042A3C -_02042958: - ldr r1, _02042A70 @ =0x0209C9FC - add r2, sp, #0x14 - mov r0, r6 - bl SprintfStatic - b _02042A3C -_0204296C: - bl FUN_0200d65c - ldrb r2, [sp, #1] - cmp r2, #0 - beq _02042990 - ldr r1, _02042A74 @ =0x0209CA08 - add r3, sp, #0x14 - mov r0, r6 - bl SprintfStatic - b _02042A3C -_02042990: - ldr r1, _02042A78 @ =0x0209CA18 - add r2, sp, #0x14 - mov r0, r6 - bl SprintfStatic - b _02042A3C -_020429A4: - add r0, sp, #0x14 - add r1, sp, #0 - mov r2, #0 - bl FUN_0200d65c - ldrb r2, [sp, #1] - cmp r2, #0 - beq _020429D4 - ldr r1, _02042A74 @ =0x0209CA08 - add r3, sp, #0x14 - mov r0, r6 - bl SprintfStatic - b _02042A3C -_020429D4: - ldr r1, _02042A78 @ =0x0209CA18 - add r2, sp, #0x14 - mov r0, r6 - bl SprintfStatic - b _02042A3C -_020429E8: - ldrsh r0, [sp, #4] - mov r2, #0 - mov r1, #1 - str r2, [sp, #8] - strb r2, [sp, #0xc] - strb r1, [sp, #0x10] - strb r1, [sp] - bl IsGummi - cmp r0, #0 - add r1, sp, #0 - add r2, sp, #8 - beq _02042A24 - mov r0, r6 - bl FUN_0200d670 - b _02042A3C -_02042A24: - add r0, sp, #0x14 - bl FUN_0200d65c - ldr r1, _02042A80 @ =0x0209CA2C - add r2, sp, #0x14 - mov r0, r6 - bl SprintfStatic -_02042A3C: - ldr r0, _02042A68 @ =0x020AFEA8 - ldr r0, [r0, #8] - ldr r0, [r0, r5, lsl #2] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - str r0, [r4] - mov r0, r6 - add sp, sp, #0x64 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_02042A64: .4byte 0x020AF6B8 -_02042A68: .4byte 0x020AFEA8 -_02042A6C: .4byte 0x0209C9F4 -_02042A70: .4byte 0x0209C9FC -_02042A74: .4byte 0x0209CA08 -_02042A78: .4byte 0x0209CA18 -_02042A7C: .4byte 0x0001869F -_02042A80: .4byte 0x0209CA2C - arm_func_end FUN_02042760 - - arm_func_start SprintfStatic -SprintfStatic: @ 0x02042A84 - push {r0, r1, r2, r3} - push {r3, lr} - add r2, sp, #0xc - bic r2, r2, #3 - ldr r1, [sp, #0xc] - add r2, r2, #4 - bl Vsprintf - pop {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end SprintfStatic - - arm_func_start FUN_02042aac -FUN_02042aac: @ 0x02042AAC - push {r3, lr} - ldr r0, _02042AD8 @ =0x020AFEA8 - ldr r0, [r0, #4] - cmp r0, #0 - ldrsbne r0, [r0, #4] - mvnne r1, #1 - cmpne r0, r1 - moveq r0, #0 - popeq {r3, pc} - bl FUN_0202d114 - pop {r3, pc} - .align 2, 0 -_02042AD8: .4byte 0x020AFEA8 - arm_func_end FUN_02042aac - - arm_func_start FUN_02042adc -FUN_02042adc: @ 0x02042ADC - ldr r0, _02042AF0 @ =0x020AFEA8 - ldr ip, _02042AF4 @ =FUN_0202d0ec - ldr r0, [r0, #4] - ldrsb r0, [r0, #4] - bx ip - .align 2, 0 -_02042AF0: .4byte 0x020AFEA8 -_02042AF4: .4byte FUN_0202d0ec - arm_func_end FUN_02042adc - - arm_func_start FUN_02042af8 -FUN_02042af8: @ 0x02042AF8 - mov r3, #0 - ldr r0, _02042B1C @ =0x020AFEA8 - mov r2, r3 -_02042B04: - ldr r1, [r0, #8] - str r2, [r1, r3, lsl #2] - add r3, r3, #1 - cmp r3, #0x32 - blt _02042B04 - bx lr - .align 2, 0 -_02042B1C: .4byte 0x020AFEA8 - arm_func_end FUN_02042af8 - - arm_func_start FUN_02042b20 -FUN_02042b20: @ 0x02042B20 - ldr r1, _02042B4C @ =0x020AFEA8 - mov r0, #0 - ldr r3, [r1, #8] - mov r2, r0 -_02042B30: - ldr r1, [r3, r2, lsl #2] - add r2, r2, #1 - tst r1, #1 - addne r0, r0, #1 - cmp r2, #0x32 - blt _02042B30 - bx lr - .align 2, 0 -_02042B4C: .4byte 0x020AFEA8 - arm_func_end FUN_02042b20 - - arm_func_start FUN_02042b50 -FUN_02042b50: @ 0x02042B50 - ldr r1, _02042B80 @ =0x020AFEA8 - mov r0, #0 - ldr r2, [r1, #8] - b _02042B70 -_02042B60: - ldr r1, [r2, r0, lsl #2] - tst r1, #1 - bxne lr - add r0, r0, #1 -_02042B70: - cmp r0, #0x32 - blt _02042B60 - mvn r0, #0 - bx lr - .align 2, 0 -_02042B80: .4byte 0x020AFEA8 - arm_func_end FUN_02042b50 - - arm_func_start FUN_02042b84 -FUN_02042b84: @ 0x02042B84 - ldr r1, _02042B94 @ =0x020AFEA8 - ldr r1, [r1, #8] - ldr r0, [r1, r0, lsl #2] - bx lr - .align 2, 0 -_02042B94: .4byte 0x020AFEA8 - arm_func_end FUN_02042b84 - - arm_func_start FUN_02042b98 -FUN_02042b98: @ 0x02042B98 - push {r3, lr} - mov r0, #0xc8 - mov r1, #8 - bl MemAlloc - ldr r1, _02042BB8 @ =0x020AFEA8 - str r0, [r1, #8] - bl FUN_02042af8 - pop {r3, pc} - .align 2, 0 -_02042BB8: .4byte 0x020AFEA8 - arm_func_end FUN_02042b98 - - arm_func_start FUN_02042bbc -FUN_02042bbc: @ 0x02042BBC - push {r3, lr} - ldr r0, _02042BDC @ =0x020AFEA8 - ldr r0, [r0, #8] - bl MemFree - ldr r0, _02042BDC @ =0x020AFEA8 - mov r1, #0 - str r1, [r0, #8] - pop {r3, pc} - .align 2, 0 -_02042BDC: .4byte 0x020AFEA8 - arm_func_end FUN_02042bbc - - arm_func_start FUN_02042be0 -FUN_02042be0: @ 0x02042BE0 - push {r3, r4, r5, r6, r7, lr} - bl GetNbItemsInBag - mov r1, #6 - mov r4, r0 - mov r0, #0 - ldr ip, _02042CE8 @ =0x020AFEA8 - ldr r3, _02042CEC @ =0x020AF6B8 - mov r2, r1 - b _02042C44 -_02042C04: - ldr r5, [ip, #8] - ldr r5, [r5, r0, lsl #2] - tst r5, #1 - muleq r6, r0, r1 - ldreq r5, [r3] - ldreq r7, [r5, #0x384] - ldrbeq r5, [r7, r6] - biceq r5, r5, #0x80 - beq _02042C3C - mul r6, r0, r2 - ldr r5, [r3] - ldr r7, [r5, #0x384] - ldrb r5, [r7, r6] - orr r5, r5, #0x80 -_02042C3C: - strb r5, [r7, r6] - add r0, r0, #1 -_02042C44: - cmp r0, r4 - blt _02042C04 - bl FUN_0200fc24 - mov r2, #0 - mov r7, r2 - mov r0, #1 - mov r3, #6 - ldr lr, _02042CEC @ =0x020AF6B8 - ldr ip, _02042CE8 @ =0x020AFEA8 - b _02042CA4 -_02042C6C: - mul r1, r2, r3 - ldr r5, [lr] - ldr r5, [r5, #0x384] - ldrb r5, [r5, r1] - tst r5, #0x80 - ldr r5, [ip, #8] - strne r0, [r5, r2, lsl #2] - streq r7, [r5, r2, lsl #2] - ldr r5, [lr] - add r2, r2, #1 - ldr r6, [r5, #0x384] - ldrb r5, [r6, r1] - bic r5, r5, #0x80 - strb r5, [r6, r1] -_02042CA4: - cmp r2, r4 - blt _02042C6C - ldr r1, _02042CE8 @ =0x020AFEA8 - mvn r0, #1 - ldr r1, [r1, #4] - ldrsb r1, [r1, #4] - cmp r1, r0 - popeq {r3, r4, r5, r6, r7, pc} - bl GetNbItemsInBag - ldr r2, _02042CE8 @ =0x020AFEA8 - mov r1, r0 - ldr r0, [r2, #4] - mov r2, #8 - ldrsb r0, [r0, #4] - mov r3, #0 - bl FUN_0202c654 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02042CE8: .4byte 0x020AFEA8 -_02042CEC: .4byte 0x020AF6B8 - arm_func_end FUN_02042be0 - - arm_func_start FUN_02042cf0 -FUN_02042cf0: @ 0x02042CF0 - push {r4, r5, lr} - sub sp, sp, #0xc - mov r5, r0 - mov r0, #0x18c0 - mov r1, #8 - mov r4, r2 - bl MemAlloc - ldr r2, _02042F88 @ =0x020AFEB4 - mvn r3, #1 - str r0, [r2, #4] - str r5, [r0] - ldr r0, [r2, #4] - mov r1, #0 - strb r3, [r0, #0x7d5] - ldr r0, [r2, #4] - strb r3, [r0, #0x7d6] - ldr r0, [r2, #4] - strb r3, [r0, #0x7d7] - ldr r0, [r2, #4] - strb r3, [r0, #0x7d8] - ldr r0, [r2, #4] - strb r3, [r0, #0x7d9] - ldr r0, [r2, #4] - str r1, [r0, #0x90c] - ldr r0, [r2, #4] - add r0, r0, #0x900 - strh r1, [r0, #0x10] - ldr r0, [r2, #0x10] - bl FUN_02043bfc - ldr r2, _02042F88 @ =0x020AFEB4 - ldr r1, [r2, #4] - add r1, r1, #0x900 - strh r0, [r1, #0x10] - ldr r0, [r2, #4] - add r0, r0, #0x900 - ldrsh r0, [r0, #0x10] - cmp r0, #0 - ble _02042DB4 - ldr r0, [r2, #0x10] - cmp r0, #5 - bne _02042DB4 - ldrsh r0, [r2] - cmp r0, #0 - beq _02042DB4 - bl FUN_020440f8 - ldr r1, _02042F88 @ =0x020AFEB4 - ldr r1, [r1, #4] - add r1, r1, #0x900 - strh r0, [r1, #0x10] -_02042DB4: - ldr r0, _02042F88 @ =0x020AFEB4 - ldr r0, [r0, #4] - add r0, r0, #0x900 - ldrsh r0, [r0, #0x10] - cmp r0, #0 - bgt _02042DF0 - mov r0, #9 - mov r1, #0 - bl FUN_02043bfc - ldr r2, _02042F88 @ =0x020AFEB4 - mov r3, #9 - ldr r1, [r2, #4] - add r1, r1, #0x900 - strh r0, [r1, #0x10] - str r3, [r2, #0x10] -_02042DF0: - ldr r1, _02042F88 @ =0x020AFEB4 - sub r2, r5, #2 - ldr r0, [r1, #4] - ldr r5, _02042F8C @ =0x000002F3 - add r0, r0, #0x1000 - str r4, [r0, #0x8bc] - ldrsh ip, [r1, #2] - ldr r0, [r1, #4] - mov r3, #0x10 - str ip, [r0, #0x7dc] - ldr r0, [r1, #4] - mov ip, #0xd - add r0, r0, #0x700 - strh r5, [r0, #0xe4] - ldr r0, [r1, #4] - ldr r5, _02042F90 @ =0x0204357C - str r3, [r0, #0x7e8] - ldr r0, [r1, #4] - ldr r3, _02042F94 @ =0x020441BC - str ip, [r0, #0x7e0] - ldr r0, [r1, #4] - cmp r2, #5 - str r5, [r0, #0x858] - ldr r0, [r1, #4] - mov r5, #0 - str r3, [r0, #0x850] - bhi _02042E6C - mov r0, #1 - lsl r1, r0, r2 - tst r1, #0x2b - movne r5, r0 -_02042E6C: - ldr r1, _02042F88 @ =0x020AFEB4 - cmp r5, #0 - movne r2, #0 - ldr r3, [r1, #4] - ldreq r2, _02042F98 @ =FUN_02042fb8 - ldr r0, _02042F9C @ =0x0209CA58 - str r2, [sp] - add r2, r3, #0x900 - ldrsh r5, [r2, #0x10] - add r2, r3, #0x3dc - ldr r1, _02042FA0 @ =0x00447C33 - str r5, [sp, #4] - ldr r3, _02042FA4 @ =0x020432B4 - add r2, r2, #0x400 - str r4, [sp, #8] - bl FUN_0202c3a8 - ldr r2, _02042F88 @ =0x020AFEB4 - ldr r1, _02042FA8 @ =0x020430F4 - ldr r3, [r2, #4] - strb r0, [r3, #0x7d4] - ldr r0, [r2, #4] - add r0, r0, #0x700 - ldrsb r0, [r0, #0xd4] - bl FUN_0202d068 - ldr r0, _02042F88 @ =0x020AFEB4 - ldr r1, _02042FAC @ =FUN_02043148 - ldr r0, [r0, #4] - add r0, r0, #0x700 - ldrsb r0, [r0, #0xd4] - bl FUN_0202c7d0 - ldr r0, _02042F88 @ =0x020AFEB4 - ldr r0, [r0, #4] - ldr r0, [r0] - cmp r0, #7 - addls pc, pc, r0, lsl #2 - b _02042F70 -_02042EFC: @ jump table - b _02042F70 @ case 0 - b _02042F28 @ case 1 - b _02042F28 @ case 2 - b _02042F1C @ case 3 - b _02042F28 @ case 4 - b _02042F60 @ case 5 - b _02042F3C @ case 6 - b _02042F60 @ case 7 -_02042F1C: - mov r0, #0 - bl FUN_0204440c - b _02042F70 -_02042F28: - mov r0, #0 - bl FUN_0204440c - mov r0, #2 - bl FUN_0204426c - b _02042F70 -_02042F3C: - ldr r0, _02042FB0 @ =0x0209CA48 - ldr r1, _02042FB4 @ =FUN_02044210 - bl FUN_0202f8c4 - ldr r1, _02042F88 @ =0x020AFEB4 - ldr r1, [r1, #4] - strb r0, [r1, #0x7d5] - mov r0, #1 - bl FUN_0204426c - b _02042F70 -_02042F60: - mov r0, #0 - bl FUN_0204440c - mov r0, #1 - bl FUN_0204426c -_02042F70: - ldr r0, _02042F88 @ =0x020AFEB4 - ldr r0, [r0, #4] - add r0, r0, #0x700 - ldrsb r0, [r0, #0xd4] - add sp, sp, #0xc - pop {r4, r5, pc} - .align 2, 0 -_02042F88: .4byte 0x020AFEB4 -_02042F8C: .4byte 0x000002F3 -_02042F90: .4byte 0x0204357C -_02042F94: .4byte 0x020441BC -_02042F98: .4byte FUN_02042fb8 -_02042F9C: .4byte 0x0209CA58 -_02042FA0: .4byte 0x00447C33 -_02042FA4: .4byte 0x020432B4 -_02042FA8: .4byte 0x020430F4 -_02042FAC: .4byte FUN_02043148 -_02042FB0: .4byte 0x0209CA48 -_02042FB4: .4byte FUN_02044210 - arm_func_end FUN_02042cf0 - - arm_func_start FUN_02042fb8 -FUN_02042fb8: @ 0x02042FB8 - push {r3, r4, r5, r6, r7, lr} - tst r0, #0x400 - mov r4, #0 - beq _020430A8 - ldr r0, _020430F0 @ =0x020AFEB4 - ldr r0, [r0, #4] - ldr r0, [r0] - cmp r0, #1 - cmpne r0, #4 - cmpne r0, #6 - bne _020430A8 - bl FUN_02043468 - ldr r1, _020430F0 @ =0x020AFEB4 - mov r5, r0 - ldr r0, [r1, #8] - ldrb r0, [r0, r5] - tst r0, #1 - movne r4, #1 - bne _0204303C - ldr r0, [r1, #4] - ldr r0, [r0] - cmp r0, #1 - bne _02043038 - bl GetNbItemsInBag - mov r7, r0 - bl FUN_020434fc - mov r6, r0 - bl GetCurrentBagCapacity - add r1, r7, r6 - cmp r1, r0 - movlt r4, #1 - b _0204303C -_02043038: - mov r4, #1 -_0204303C: - cmp r4, #0 - beq _020430A0 - mov r0, #6 - bl FUN_02017ccc - ldr r0, _020430F0 @ =0x020AFEB4 - mvn r1, #1 - ldr r3, [r0, #8] - ldrb r2, [r3, r5] - eor r2, r2, #1 - strb r2, [r3, r5] - ldr r0, [r0, #4] - add r0, r0, #0x700 - ldrsb r0, [r0, #0xd6] - cmp r0, r1 - beq _0204307C - bl FUN_0202f9b8 -_0204307C: - ldr r0, _020430F0 @ =0x020AFEB4 - ldr r1, [r0, #4] - ldr r0, [r1] - cmp r0, #6 - bne _020430A8 - add r0, r1, #0x700 - ldrsb r0, [r0, #0xd5] - bl FUN_0202f9b8 - b _020430A8 -_020430A0: - mov r0, #2 - bl FUN_02017ccc -_020430A8: - bl FUN_020434fc - cmp r0, #0 - ble _020430D0 - ldr r0, _020430F0 @ =0x020AFEB4 - mov r1, #1 - ldr r0, [r0, #4] - add r0, r0, #0x700 - ldrsb r0, [r0, #0xd4] - bl FUN_0202d16c - b _020430E8 -_020430D0: - ldr r0, _020430F0 @ =0x020AFEB4 - mov r1, #0 - ldr r0, [r0, #4] - add r0, r0, #0x700 - ldrsb r0, [r0, #0xd4] - bl FUN_0202d16c -_020430E8: - mov r0, r4 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_020430F0: .4byte 0x020AFEB4 - arm_func_end FUN_02042fb8 -_020430F4: - .byte 0x08, 0x40, 0x2D, 0xE9, 0x44, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3 - .byte 0x10, 0x00, 0x90, 0xE5, 0xBC, 0x02, 0x00, 0xEB, 0x34, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3 - .byte 0x04, 0x10, 0x92, 0xE5, 0x09, 0x1C, 0x81, 0xE2, 0xB0, 0x01, 0xC1, 0xE1, 0x04, 0x20, 0x92, 0xE5 - .byte 0x07, 0x0C, 0x82, 0xE2, 0x09, 0x1C, 0x82, 0xE2, 0x01, 0x2A, 0x82, 0xE2, 0xD4, 0x0D, 0xD0, 0xE1 - .byte 0xF0, 0x11, 0xD1, 0xE1, 0xBC, 0x28, 0x92, 0xE5, 0x45, 0xA5, 0xFF, 0xEB, 0x71, 0x04, 0x00, 0xEB - .byte 0x08, 0x80, 0xBD, 0xE8, 0xB4, 0xFE, 0x0A, 0x02 - - arm_func_start FUN_02043148 -FUN_02043148: @ 0x02043148 - push {r3, lr} - ldr r1, _02043168 @ =0x020AFEB4 - ldr r1, [r1, #4] - add r0, r1, r0, lsl #1 - ldrsh r0, [r0, #4] - bl FUN_02010044 - bl FUN_020444b0 - pop {r3, pc} - .align 2, 0 -_02043168: .4byte 0x020AFEB4 - arm_func_end FUN_02043148 -_0204316C: - .byte 0x00, 0x00, 0x50, 0xE3 - .byte 0x05, 0x00, 0xA0, 0x13, 0x07, 0x00, 0xA0, 0x03, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0204317c -FUN_0204317c: @ 0x0204317C - push {r3, lr} - ldr r0, _02043214 @ =0x020AFEB4 - ldr r0, [r0, #4] - cmp r0, #0 - popeq {r3, pc} - bl FUN_02044474 - bl FUN_020442cc - bl FUN_020445c8 - ldr r0, _02043214 @ =0x020AFEB4 - ldr r1, [r0, #4] - ldr r0, [r1] - cmp r0, #6 - bne _020431BC - add r0, r1, #0x700 - ldrsb r0, [r0, #0xd5] - bl FUN_0202f8fc -_020431BC: - ldr r0, _02043214 @ =0x020AFEB4 - mvn r1, #1 - ldr r0, [r0, #4] - add r0, r0, #0x700 - ldrsb r0, [r0, #0xd6] - cmp r0, r1 - beq _020431DC - bl FUN_0202f8fc -_020431DC: - ldr r1, _02043214 @ =0x020AFEB4 - ldr r0, [r1, #4] - ldr r2, [r0] - add r0, r0, #0x700 - str r2, [r1, #0xc] - ldrsb r0, [r0, #0xd4] - bl FUN_0202c70c - ldr r0, _02043214 @ =0x020AFEB4 - ldr r0, [r0, #4] - bl MemFree - ldr r0, _02043214 @ =0x020AFEB4 - mov r1, #0 - str r1, [r0, #4] - pop {r3, pc} - .align 2, 0 -_02043214: .4byte 0x020AFEB4 - arm_func_end FUN_0204317c - - arm_func_start FUN_02043218 -FUN_02043218: @ 0x02043218 - ldr r0, _02043228 @ =0x020AFEB4 - mov r1, #0 - strh r1, [r0, #2] - bx lr - .align 2, 0 -_02043228: .4byte 0x020AFEB4 - arm_func_end FUN_02043218 -_0204322C: - .byte 0x04, 0x10, 0x9F, 0xE5 - .byte 0xB2, 0x00, 0xC1, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xB4, 0xFE, 0x0A, 0x02 - - arm_func_start FUN_0204323c -FUN_0204323c: @ 0x0204323C - push {r3, lr} - bl FUN_02043254 - ldr r1, _02043250 @ =0x020AFEB4 - strh r0, [r1, #2] - pop {r3, pc} - .align 2, 0 -_02043250: .4byte 0x020AFEB4 - arm_func_end FUN_0204323c - - arm_func_start FUN_02043254 -FUN_02043254: @ 0x02043254 - ldr r1, _02043298 @ =0x020AFEB4 - mov r3, #0 - ldr ip, [r1, #4] - mvn r1, #0 - b _02043278 -_02043268: - cmp r0, r2 - moveq r0, r3 - bxeq lr - add r3, r3, #1 -_02043278: - cmp r3, #0x3e8 - bge _02043290 - add r2, ip, r3, lsl #1 - ldrsh r2, [r2, #4] - cmp r2, r1 - bne _02043268 -_02043290: - mov r0, #0 - bx lr - .align 2, 0 -_02043298: .4byte 0x020AFEB4 - arm_func_end FUN_02043254 -_0204329C: - .byte 0x0C, 0x10, 0x9F, 0xE5 - .byte 0x04, 0x10, 0x91, 0xE5, 0x80, 0x00, 0x81, 0xE0, 0xF4, 0x00, 0xD0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xB4, 0xFE, 0x0A, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x08, 0xD0, 0x4D, 0xE2, 0x54, 0x30, 0x9F, 0xE5 - .byte 0x00, 0x50, 0xA0, 0xE1, 0x04, 0x00, 0x93, 0xE5, 0x02, 0x40, 0xA0, 0xE1, 0x81, 0x00, 0x80, 0xE0 - .byte 0xF4, 0x60, 0xD0, 0xE1, 0x00, 0x10, 0x8D, 0xE2, 0x06, 0x00, 0xA0, 0xE1, 0x44, 0x33, 0xFF, 0xEB - .byte 0x34, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0x8D, 0xE2, 0x05, 0x00, 0xA0, 0xE1, 0xDF, 0x28, 0xFF, 0xEB - .byte 0x20, 0x00, 0x9F, 0xE5, 0x08, 0x00, 0x90, 0xE5, 0x06, 0x00, 0xD0, 0xE7, 0x01, 0x00, 0x10, 0xE3 - .byte 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x84, 0xE5, 0x05, 0x00, 0xA0, 0xE1 - .byte 0x08, 0xD0, 0x8D, 0xE2, 0x70, 0x80, 0xBD, 0xE8, 0xB4, 0xFE, 0x0A, 0x02, 0x3C, 0xCA, 0x09, 0x02 - - arm_func_start FUN_02043320 -FUN_02043320: @ 0x02043320 - push {r3, lr} - cmp r0, #7 - bne _02043344 - bl FUN_0200fe00 - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r3, pc} -_02043344: - sub r0, r0, #5 - cmp r0, #1 - bhi _02043368 - bl FUN_0200fdb0 - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r3, pc} -_02043368: - bl FUN_0200fd78 - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FUN_02043320 - - arm_func_start FUN_02043380 -FUN_02043380: @ 0x02043380 - push {r3, lr} - cmp r0, #8 - moveq r0, #0 - popeq {r3, pc} - bl ScriptSpecialProcess0x39 - pop {r3, pc} - arm_func_end FUN_02043380 - - arm_func_start FUN_02043398 -FUN_02043398: @ 0x02043398 - push {r3, lr} - ldr r0, _020433BC @ =0x020AFEB4 - ldr r0, [r0, #4] - cmp r0, #0 - popeq {r3, pc} - add r0, r0, #0x700 - ldrsb r0, [r0, #0xd4] - bl FUN_0202d134 - pop {r3, pc} - .align 2, 0 -_020433BC: .4byte 0x020AFEB4 - arm_func_end FUN_02043398 - - arm_func_start FUN_020433c0 -FUN_020433c0: @ 0x020433C0 - ldr r0, _020433D8 @ =0x020AFEB4 - ldr ip, _020433DC @ =FUN_0202c620 - ldr r0, [r0, #4] - add r0, r0, #0x700 - ldrsb r0, [r0, #0xd4] - bx ip - .align 2, 0 -_020433D8: .4byte 0x020AFEB4 -_020433DC: .4byte FUN_0202c620 - arm_func_end FUN_020433c0 -_020433E0: - .byte 0x14, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13 - .byte 0x00, 0x00, 0xA0, 0x03, 0xFF, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0xB4, 0xFE, 0x0A, 0x02 - - arm_func_start FUN_02043400 -FUN_02043400: @ 0x02043400 - push {r3, lr} - ldr r0, _02043430 @ =0x020AFEB4 - ldr r0, [r0, #4] - cmp r0, #0 - addne r0, r0, #0x700 - ldrsbne r0, [r0, #0xd4] - mvnne r1, #1 - cmpne r0, r1 - moveq r0, #0 - popeq {r3, pc} - bl FUN_0202c728 - pop {r3, pc} - .align 2, 0 -_02043430: .4byte 0x020AFEB4 - arm_func_end FUN_02043400 - - arm_func_start FUN_02043434 -FUN_02043434: @ 0x02043434 - push {r3, lr} - ldr r0, _02043464 @ =0x020AFEB4 - ldr r0, [r0, #4] - cmp r0, #0 - addne r0, r0, #0x700 - ldrsbne r0, [r0, #0xd4] - mvnne r1, #1 - cmpne r0, r1 - moveq r0, #0 - popeq {r3, pc} - bl FUN_0202d114 - pop {r3, pc} - .align 2, 0 -_02043464: .4byte 0x020AFEB4 - arm_func_end FUN_02043434 - - arm_func_start FUN_02043468 -FUN_02043468: @ 0x02043468 - push {r3, lr} - ldr r0, _020434D0 @ =0x020AFEB4 - ldr r0, [r0, #4] - add r0, r0, #0x700 - ldrsb r0, [r0, #0xd4] - bl FUN_0202c728 - cmp r0, #0 - beq _020434A0 - ldr r0, _020434D0 @ =0x020AFEB4 - ldr r0, [r0, #4] - add r0, r0, #0x700 - ldrsb r0, [r0, #0xd4] - bl FUN_0202c748 - b _020434B4 -_020434A0: - ldr r0, _020434D0 @ =0x020AFEB4 - ldr r0, [r0, #4] - add r0, r0, #0x700 - ldrsb r0, [r0, #0xd4] - bl FUN_0202c75c -_020434B4: - cmp r0, #0 - ldrge r1, _020434D0 @ =0x020AFEB4 - mvnlt r0, #0 - ldrge r1, [r1, #4] - addge r0, r1, r0, lsl #1 - ldrshge r0, [r0, #4] - pop {r3, pc} - .align 2, 0 -_020434D0: .4byte 0x020AFEB4 - arm_func_end FUN_02043468 - - arm_func_start FUN_020434d4 -FUN_020434d4: @ 0x020434D4 - mov r3, #0 - ldr r0, _020434F8 @ =0x020AFEB4 - mov r2, r3 -_020434E0: - ldr r1, [r0, #8] - strb r2, [r1, r3] - add r3, r3, #1 - cmp r3, #0x3e8 - blt _020434E0 - bx lr - .align 2, 0 -_020434F8: .4byte 0x020AFEB4 - arm_func_end FUN_020434d4 - - arm_func_start FUN_020434fc -FUN_020434fc: @ 0x020434FC - ldr r1, _02043528 @ =0x020AFEB4 - mov r0, #0 - ldr r3, [r1, #8] - mov r2, r0 -_0204350C: - ldrb r1, [r3, r2] - add r2, r2, #1 - tst r1, #1 - addne r0, r0, #1 - cmp r2, #0x3e8 - blt _0204350C - bx lr - .align 2, 0 -_02043528: .4byte 0x020AFEB4 - arm_func_end FUN_020434fc - - arm_func_start FUN_0204352c -FUN_0204352c: @ 0x0204352C - ldr r0, _02043564 @ =0x020AFEB4 - mov r1, #0 - ldr r2, [r0, #8] - b _02043554 -_0204353C: - ldrb r0, [r2, r1] - tst r0, #1 - lslne r0, r1, #0x10 - asrne r0, r0, #0x10 - bxne lr - add r1, r1, #1 -_02043554: - cmp r1, #0x3e8 - blt _0204353C - mvn r0, #0 - bx lr - .align 2, 0 -_02043564: .4byte 0x020AFEB4 - arm_func_end FUN_0204352c - - arm_func_start FUN_02043568 -FUN_02043568: @ 0x02043568 - ldr r1, _02043578 @ =0x020AFEB4 - ldr r1, [r1, #8] - ldrb r0, [r1, r0] - bx lr - .align 2, 0 -_02043578: .4byte 0x020AFEB4 - arm_func_end FUN_02043568 -_0204357C: - .byte 0x18, 0x40, 0x2D, 0xE9 - .byte 0x1C, 0xD0, 0x4D, 0xE2, 0x38, 0x40, 0x9F, 0xE5, 0x00, 0xE0, 0x8D, 0xE2, 0x0F, 0x00, 0xB4, 0xE8 - .byte 0x0E, 0xC0, 0xA0, 0xE1, 0x0F, 0x00, 0xAE, 0xE8, 0x07, 0x00, 0x94, 0xE8, 0x24, 0x30, 0x9F, 0xE5 - .byte 0x07, 0x00, 0x8E, 0xE8, 0x04, 0x00, 0x93, 0xE5, 0x0C, 0x09, 0x90, 0xE5, 0x07, 0x00, 0x50, 0xE3 - .byte 0x01, 0x00, 0x00, 0xAA, 0x00, 0x01, 0x9C, 0xE7, 0x30, 0xFF, 0x2F, 0xE1, 0x1C, 0xD0, 0x8D, 0xE2 - .byte 0x18, 0x80, 0xBD, 0xE8, 0x98, 0xCA, 0x09, 0x02, 0xB4, 0xFE, 0x0A, 0x02, 0x18, 0x40, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0x84, 0x01, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x04, 0x00, 0x90, 0xE5 - .byte 0x07, 0x0C, 0x80, 0xE2, 0xD8, 0x0D, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x1A - .byte 0x6C, 0x01, 0x9F, 0xE5, 0x0A, 0x40, 0xA0, 0xE3, 0x68, 0x31, 0x9F, 0xE5, 0x13, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x40, 0x8D, 0xE5, 0xB7, 0x9E, 0xFF, 0xEB, 0x4C, 0x11, 0x9F, 0xE5 - .byte 0x04, 0x10, 0x91, 0xE5, 0xD8, 0x07, 0xC1, 0xE5, 0x4E, 0x00, 0x00, 0xEA, 0xB3, 0x9F, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x4B, 0x00, 0x00, 0x1A, 0x30, 0x01, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5 - .byte 0x07, 0x0C, 0x80, 0xE2, 0xD8, 0x0D, 0xD0, 0xE1, 0xCF, 0x9F, 0xFF, 0xEB, 0x1C, 0x11, 0x9F, 0xE5 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x04, 0x00, 0x91, 0xE5, 0x07, 0x0C, 0x80, 0xE2, 0xD8, 0x0D, 0xD0, 0xE1 - .byte 0x9B, 0x9F, 0xFF, 0xEB, 0x04, 0x01, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3, 0x04, 0x10, 0x90, 0xE5 - .byte 0x08, 0x00, 0x54, 0xE3, 0xD8, 0x27, 0xC1, 0xE5, 0x04, 0x00, 0x90, 0x05, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x0C, 0x19, 0x80, 0x05, 0x32, 0x00, 0x00, 0x0A, 0x04, 0x00, 0xA0, 0xE1, 0x5E, 0x01, 0x00, 0xEB - .byte 0x00, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x19, 0x00, 0x00, 0x1A, 0xCC, 0x00, 0x9F, 0xE5 - .byte 0x01, 0x10, 0x41, 0xE2, 0x04, 0x00, 0x90, 0xE5, 0x07, 0x0C, 0x80, 0xE2, 0xD5, 0x0D, 0xD0, 0xE1 - .byte 0x01, 0x00, 0x50, 0xE1, 0x00, 0x00, 0x00, 0x0A, 0x9F, 0x92, 0xFF, 0xEB, 0xAC, 0x00, 0x9F, 0xE5 - .byte 0x01, 0x10, 0xE0, 0xE3, 0x04, 0x00, 0x90, 0xE5, 0x07, 0x0C, 0x80, 0xE2, 0xD6, 0x0D, 0xD0, 0xE1 - .byte 0x01, 0x00, 0x50, 0xE1, 0x00, 0x00, 0x00, 0x0A, 0x97, 0x92, 0xFF, 0xEB, 0x8C, 0x00, 0x9F, 0xE5 - .byte 0x04, 0x00, 0x90, 0xE5, 0x07, 0x0C, 0x80, 0xE2, 0xD4, 0x0D, 0xD0, 0xE1, 0x92, 0x92, 0xFF, 0xEB - .byte 0x78, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x04, 0x00, 0x90, 0xE5, 0x0C, 0x19, 0x80, 0xE5 - .byte 0x18, 0x00, 0x00, 0xEA, 0x64, 0x20, 0x9F, 0xE5, 0x04, 0x10, 0x92, 0xE5, 0x09, 0x1C, 0x81, 0xE2 - .byte 0xB0, 0x01, 0xC1, 0xE1, 0x04, 0x10, 0x92, 0xE5, 0x07, 0x0C, 0x81, 0xE2, 0x09, 0x1C, 0x81, 0xE2 - .byte 0xD4, 0x0D, 0xD0, 0xE1, 0xF0, 0x11, 0xD1, 0xE1, 0xED, 0xA3, 0xFF, 0xEB, 0x05, 0x00, 0x54, 0xE3 - .byte 0x38, 0x00, 0x9F, 0x05, 0x04, 0x10, 0xA0, 0x03, 0x04, 0x00, 0x90, 0x05, 0x0C, 0x19, 0x80, 0x05 - .byte 0x08, 0x00, 0x00, 0x0A, 0x24, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x00, 0x90, 0xE5 - .byte 0x0C, 0x19, 0x80, 0xE5, 0x14, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x07, 0x0C, 0x80, 0xE2 - .byte 0xD4, 0x0D, 0xD0, 0xE1, 0xB1, 0xA3, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x18, 0x80, 0xBD, 0xE8 - .byte 0xB4, 0xFE, 0x0A, 0x02, 0x68, 0xCA, 0x09, 0x02, 0xB4, 0xCA, 0x09, 0x02, 0x08, 0x40, 0x2D, 0xE9 - .byte 0x3C, 0x00, 0x9F, 0xE5, 0x4D, 0xAE, 0xFF, 0xEB, 0x38, 0x30, 0x9F, 0xE5, 0x38, 0x10, 0x9F, 0xE5 - .byte 0x04, 0xC0, 0x93, 0xE5, 0x34, 0x20, 0x9F, 0xE5, 0xD7, 0x07, 0xCC, 0xE5, 0x04, 0x00, 0x93, 0xE5 - .byte 0x00, 0x30, 0xA0, 0xE3, 0x07, 0x0C, 0x80, 0xE2, 0xD7, 0x0D, 0xD0, 0xE1, 0x84, 0xAE, 0xFF, 0xEB - .byte 0x10, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3, 0x04, 0x00, 0x90, 0xE5, 0x0C, 0x19, 0x80, 0xE5 - .byte 0x08, 0x80, 0xBD, 0xE8, 0x88, 0xCA, 0x09, 0x02, 0xB4, 0xFE, 0x0A, 0x02, 0x18, 0x04, 0x00, 0x00 - .byte 0xFF, 0x02, 0x00, 0x00, 0x08, 0x40, 0x2D, 0xE9, 0x70, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5 - .byte 0x07, 0x0C, 0x80, 0xE2, 0xD7, 0x0D, 0xD0, 0xE1, 0x68, 0xAE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x08, 0x80, 0xBD, 0x18, 0x09, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE3, 0x02, 0x01, 0x00, 0xEB - .byte 0x48, 0x20, 0x9F, 0xE5, 0x04, 0x10, 0x92, 0xE5, 0x09, 0x1C, 0x81, 0xE2, 0xB0, 0x01, 0xC1, 0xE1 - .byte 0x04, 0x10, 0x92, 0xE5, 0x07, 0x0C, 0x81, 0xE2, 0x09, 0x1C, 0x81, 0xE2, 0xD4, 0x0D, 0xD0, 0xE1 - .byte 0xF0, 0x11, 0xD1, 0xE1, 0xAE, 0xA3, 0xFF, 0xEB, 0x20, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5 - .byte 0x07, 0x0C, 0x80, 0xE2, 0xD7, 0x0D, 0xD0, 0xE1, 0xA5, 0xAE, 0xFF, 0xEB, 0x0C, 0x00, 0x9F, 0xE5 - .byte 0x03, 0x10, 0xA0, 0xE3, 0x04, 0x00, 0x90, 0xE5, 0x0C, 0x19, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8 - .byte 0xB4, 0xFE, 0x0A, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0xF0, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3 - .byte 0x04, 0x00, 0x90, 0xE5, 0x07, 0x0C, 0x80, 0xE2, 0xD7, 0x0D, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1 - .byte 0x08, 0x80, 0xBD, 0x08, 0x37, 0xAE, 0xFF, 0xEB, 0xD0, 0x00, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3 - .byte 0x04, 0x10, 0x90, 0xE5, 0xD7, 0x27, 0xC1, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x07, 0x0C, 0x80, 0xE2 - .byte 0xD5, 0x0D, 0xD0, 0xE1, 0x02, 0x00, 0x50, 0xE1, 0x07, 0x00, 0x00, 0x0A, 0xB0, 0x92, 0xFF, 0xEB - .byte 0x03, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0xA0, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5 - .byte 0x07, 0x0C, 0x80, 0xE2, 0xD5, 0x0D, 0xD0, 0xE1, 0x17, 0x92, 0xFF, 0xEB, 0x8C, 0x00, 0x9F, 0xE5 - .byte 0x01, 0x10, 0xE0, 0xE3, 0x04, 0x00, 0x90, 0xE5, 0x07, 0x0C, 0x80, 0xE2, 0xD6, 0x0D, 0xD0, 0xE1 - .byte 0x01, 0x00, 0x50, 0xE1, 0x07, 0x00, 0x00, 0x0A, 0xA1, 0x92, 0xFF, 0xEB, 0x03, 0x00, 0x50, 0xE3 - .byte 0x04, 0x00, 0x00, 0x1A, 0x64, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x07, 0x0C, 0x80, 0xE2 - .byte 0xD6, 0x0D, 0xD0, 0xE1, 0x08, 0x92, 0xFF, 0xEB, 0x50, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5 - .byte 0x07, 0x0C, 0x80, 0xE2, 0xD4, 0x0D, 0xD0, 0xE1, 0x95, 0x92, 0xFF, 0xEB, 0x03, 0x00, 0x50, 0xE3 - .byte 0x04, 0x00, 0x00, 0x1A, 0x34, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x07, 0x0C, 0x80, 0xE2 - .byte 0xD4, 0x0D, 0xD0, 0xE1, 0xFC, 0x91, 0xFF, 0xEB, 0x20, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5 - .byte 0x07, 0x0C, 0x80, 0xE2, 0xD4, 0x0D, 0xD0, 0xE1, 0x3C, 0xA3, 0xFF, 0xEB, 0x0C, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x00, 0x90, 0xE5, 0x0C, 0x19, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8 - .byte 0xB4, 0xFE, 0x0A, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x08, 0xD0, 0x4D, 0xE2, 0x94, 0x00, 0x9F, 0xE5 - .byte 0x04, 0x00, 0x90, 0xE5, 0xB4, 0x00, 0x80, 0xE2, 0x06, 0x0B, 0x80, 0xE2, 0x99, 0x43, 0x00, 0xEB - .byte 0x80, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x00, 0x90, 0xE5, 0xB4, 0x00, 0x80, 0xE2 - .byte 0x06, 0x0B, 0x80, 0xE2, 0xA2, 0x43, 0x00, 0xEB, 0x68, 0x10, 0x9F, 0xE5, 0x68, 0x20, 0x9F, 0xE5 - .byte 0x04, 0x00, 0x91, 0xE5, 0x10, 0x30, 0xA0, 0xE3, 0x02, 0x0B, 0x80, 0xE2, 0xBC, 0x27, 0xC0, 0xE1 - .byte 0x04, 0x20, 0x91, 0xE5, 0x54, 0x00, 0x9F, 0xE5, 0x80, 0x38, 0x82, 0xE5, 0x04, 0x30, 0x91, 0xE5 - .byte 0x4C, 0x10, 0x9F, 0xE5, 0x06, 0x2B, 0x83, 0xE2, 0xF4, 0xCB, 0xD2, 0xE1, 0x74, 0x20, 0x83, 0xE2 - .byte 0x40, 0x30, 0x9F, 0xE5, 0x00, 0xC0, 0x8D, 0xE5, 0x09, 0xC0, 0xA0, 0xE3, 0x02, 0x2B, 0x82, 0xE2 - .byte 0x04, 0xC0, 0x8D, 0xE5, 0x15, 0xA0, 0xFF, 0xEB, 0x18, 0x10, 0x9F, 0xE5, 0x05, 0x20, 0xA0, 0xE3 - .byte 0x04, 0x30, 0x91, 0xE5, 0xD9, 0x07, 0xC3, 0xE5, 0x04, 0x00, 0x91, 0xE5, 0x0C, 0x29, 0x80, 0xE5 - .byte 0x08, 0xD0, 0x8D, 0xE2, 0x08, 0x80, 0xBD, 0xE8, 0xB4, 0xFE, 0x0A, 0x02, 0xFE, 0x02, 0x00, 0x00 - .byte 0x78, 0xCA, 0x09, 0x02, 0x13, 0x18, 0x48, 0x00, 0xAC, 0x3B, 0x04, 0x02, 0x38, 0x40, 0x2D, 0xE9 - .byte 0x70, 0x01, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x07, 0x0C, 0x80, 0xE2, 0xD9, 0x0D, 0xD0, 0xE1 - .byte 0xA9, 0xA0, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x38, 0x80, 0xBD, 0x18, 0x54, 0x01, 0x9F, 0xE5 - .byte 0x04, 0x00, 0x90, 0xE5, 0x07, 0x0C, 0x80, 0xE2, 0xD9, 0x0D, 0xD0, 0xE1, 0xB2, 0xA0, 0xFF, 0xEB - .byte 0x40, 0x11, 0x9F, 0xE5, 0x00, 0x48, 0xA0, 0xE1, 0x04, 0x00, 0x91, 0xE5, 0x07, 0x0C, 0x80, 0xE2 - .byte 0xD9, 0x0D, 0xD0, 0xE1, 0xB1, 0xA0, 0xFF, 0xEB, 0x28, 0x11, 0x9F, 0xE5, 0x00, 0x58, 0xA0, 0xE1 - .byte 0x04, 0x00, 0x91, 0xE5, 0x07, 0x0C, 0x80, 0xE2, 0xD9, 0x0D, 0xD0, 0xE1, 0x78, 0xA0, 0xFF, 0xEB - .byte 0x10, 0x01, 0x9F, 0xE5, 0x01, 0x30, 0xE0, 0xE3, 0x04, 0x10, 0x90, 0xE5, 0xC4, 0x27, 0xA0, 0xE1 - .byte 0xD9, 0x37, 0xC1, 0xE5, 0x04, 0x10, 0x90, 0xE5, 0x01, 0x0A, 0x81, 0xE2, 0xB4, 0x10, 0x81, 0xE2 - .byte 0xB8, 0x38, 0x90, 0xE5, 0x06, 0x0B, 0x81, 0xE2, 0xF2, 0x40, 0x93, 0xE1, 0x51, 0x43, 0x00, 0xEB - .byte 0x00, 0x00, 0xE0, 0xE3, 0x45, 0x08, 0x50, 0xE1, 0x06, 0x00, 0x00, 0x1A, 0xD4, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0xB0, 0x10, 0xC0, 0xE1, 0x04, 0x00, 0x90, 0xE5, 0x06, 0x10, 0xA0, 0xE3 - .byte 0x0C, 0x19, 0x80, 0xE5, 0x38, 0x80, 0xBD, 0xE8, 0x04, 0x00, 0xA0, 0xE1, 0x8D, 0x01, 0x00, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x1B, 0x00, 0x00, 0xCA, 0xA8, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3 - .byte 0xB0, 0x10, 0xC0, 0xE1, 0x04, 0x00, 0x90, 0xE5, 0x02, 0x10, 0x41, 0xE2, 0x07, 0x0C, 0x80, 0xE2 - .byte 0xD5, 0x0D, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x00, 0x00, 0x00, 0x0A, 0x8E, 0x91, 0xFF, 0xEB - .byte 0x80, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x04, 0x00, 0x90, 0xE5, 0x07, 0x0C, 0x80, 0xE2 - .byte 0xD6, 0x0D, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x00, 0x00, 0x00, 0x0A, 0x86, 0x91, 0xFF, 0xEB - .byte 0x60, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x07, 0x0C, 0x80, 0xE2, 0xD4, 0x0D, 0xD0, 0xE1 - .byte 0x81, 0x91, 0xFF, 0xEB, 0x4C, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x04, 0x00, 0x90, 0xE5 - .byte 0x0C, 0x19, 0x80, 0xE5, 0x38, 0x80, 0xBD, 0xE8, 0x38, 0x20, 0x9F, 0xE5, 0xB0, 0x40, 0xC2, 0xE1 - .byte 0x04, 0x10, 0x92, 0xE5, 0x09, 0x1C, 0x81, 0xE2, 0xB0, 0x01, 0xC1, 0xE1, 0x04, 0x10, 0x92, 0xE5 - .byte 0x07, 0x0C, 0x81, 0xE2, 0x09, 0x1C, 0x81, 0xE2, 0xD4, 0x0D, 0xD0, 0xE1, 0xF0, 0x11, 0xD1, 0xE1 - .byte 0xDB, 0xA2, 0xFF, 0xEB, 0x0C, 0x00, 0x9F, 0xE5, 0x06, 0x10, 0xA0, 0xE3, 0x04, 0x00, 0x90, 0xE5 - .byte 0x0C, 0x19, 0x80, 0xE5, 0x38, 0x80, 0xBD, 0xE8, 0xB4, 0xFE, 0x0A, 0x02, 0x08, 0x40, 0x2D, 0xE9 - .byte 0x20, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x07, 0x0C, 0x80, 0xE2, 0xD4, 0x0D, 0xD0, 0xE1 - .byte 0xA2, 0xA2, 0xFF, 0xEB, 0x0C, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x00, 0x90, 0xE5 - .byte 0x0C, 0x19, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0xB4, 0xFE, 0x0A, 0x02, 0x10, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0x05, 0x00, 0x00, 0xBA, 0x34, 0x20, 0x9F, 0xE5 - .byte 0x04, 0x30, 0x92, 0xE5, 0x06, 0x2B, 0x83, 0xE2, 0xF4, 0x2B, 0xD2, 0xE1, 0x02, 0x00, 0x51, 0xE1 - .byte 0x01, 0x00, 0x00, 0xBA, 0x00, 0x00, 0xA0, 0xE3, 0x10, 0x80, 0xBD, 0xE8, 0x01, 0x2A, 0x83, 0xE2 - .byte 0xB8, 0x28, 0x92, 0xE5, 0x81, 0x10, 0xA0, 0xE1, 0xF1, 0x10, 0x92, 0xE1, 0xE8, 0x39, 0x00, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0x10, 0x80, 0xBD, 0xE8, 0xB4, 0xFE, 0x0A, 0x02 - - arm_func_start FUN_02043bfc -FUN_02043bfc: @ 0x02043BFC - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr r2, _0204408C @ =0x020AFEB4 - mov sb, r0 - ldr r0, [r2, #4] - mov r4, r1 - ldr r6, [r0] - bl thunk_FUN_02050ce4 - sub r1, r6, #5 - mov r5, r0 - cmp r1, #2 - mov r7, #0 - movls r0, #1 - movhi r0, r7 - cmp r4, #0 - and r4, r0, #0xff - beq _02043D0C - mov r0, #0x3e8 - mov r1, #8 - bl MemAlloc - mov r8, r0 - mov sl, #0 - ldr r0, _0204408C @ =0x020AFEB4 - mov r1, sl - mov r2, #1 -_02043C5C: - ldr r3, [r0, #8] - ldrb r3, [r3, sl] - cmp r3, #1 - moveq r3, r2 - movne r3, r1 - strb r3, [r8, sl] - add sl, sl, #1 - cmp sl, #0x3e8 - blt _02043C5C - bl thunk_FUN_02050ce4 - mov r1, r0 - mov r0, r8 - bl FUN_02010424 - mov sl, #0 - ldr r0, _0204408C @ =0x020AFEB4 - mov r2, sl - mov r3, #1 -_02043CA0: - ldrb r1, [r8, sl] - cmp r1, #0 - movne fp, r3 - ldr r1, [r0, #8] - moveq fp, r2 - strb fp, [r1, sl] - add sl, sl, #1 - cmp sl, #0x3e8 - blt _02043CA0 - mov r0, r8 - bl MemFree - ldr r0, _0204408C @ =0x020AFEB4 - mvn r1, #1 - ldr r0, [r0, #4] - add r0, r0, #0x700 - ldrsb r0, [r0, #0xd5] - cmp r0, r1 - beq _02043CEC - bl FUN_0202f9b8 -_02043CEC: - ldr r0, _0204408C @ =0x020AFEB4 - mvn r1, #1 - ldr r0, [r0, #4] - add r0, r0, #0x700 - ldrsb r0, [r0, #0xd6] - cmp r0, r1 - beq _02043D0C - bl FUN_0202f9b8 -_02043D0C: - mov r8, #0 - b _02043DE4 -_02043D14: - ldr r0, _02044090 @ =0x020AF6B8 - ldr r0, [r0] - add r0, r0, r8, lsl #1 - add r0, r0, #0x300 - ldrsh r1, [r0, #0x8a] - cmp r1, #0 - beq _02043DEC - cmp r4, #0 - beq _02043D48 - ldrsh r0, [r0, #0x8a] - bl IsItemValidVeneer - cmp r0, #0 - beq _02043DD8 -_02043D48: - cmp r6, #7 - bne _02043DBC - ldr r0, _02044090 @ =0x020AF6B8 - ldr r0, [r0] - add r1, r0, r8, lsl #1 - add r0, r1, #0x300 - ldrsh sl, [r0, #0x8a] - add r0, r1, #0xb00 - ldrh fp, [r0, #0x5a] - mov r0, sl - bl IsItemInTimeDarkness - cmp r0, #0 - beq _02043DB0 - mov r0, sl - bl IsTreasureBox - cmp r0, #0 - beq _02043DA8 - lsl r0, fp, #0x10 - asr r0, r0, #0x10 - bl IsItemInTimeDarkness - cmp r0, #0 - beq _02043DB0 - mov r0, #1 - b _02043DB4 -_02043DA8: - mov r0, #1 - b _02043DB4 -_02043DB0: - mov r0, #0 -_02043DB4: - cmp r0, #0 - beq _02043DD8 -_02043DBC: - ldr r0, _0204408C @ =0x020AFEB4 - add r2, r7, #1 - ldr r0, [r0, #4] - add r1, r0, r7, lsl #1 - lsl r0, r2, #0x10 - strh r8, [r1, #4] - asr r7, r0, #0x10 -_02043DD8: - add r0, r8, #1 - lsl r0, r0, #0x10 - asr r8, r0, #0x10 -_02043DE4: - cmp r8, r5 - blt _02043D14 -_02043DEC: - mov r4, r7 - mvn r3, #0 - ldr r1, _0204408C @ =0x020AFEB4 - b _02043E14 -_02043DFC: - ldr r2, [r1, #4] - add r0, r4, #1 - add r2, r2, r4, lsl #1 - lsl r0, r0, #0x10 - strh r3, [r2, #4] - asr r4, r0, #0x10 -_02043E14: - cmp r4, r5 - blt _02043DFC - lsl r0, r7, #0x10 - ldr r4, _0204408C @ =0x020AFEB4 - asr r5, r0, #0x10 - cmp r5, #0 - str sb, [r4, #0x10] - movle r0, #9 - strle r0, [r4, #0x10] - suble r0, r0, #0xa - pople {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - cmp sb, #9 - moveq r0, r5 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - mov r8, #0 - mov r7, r8 - mov fp, #1 - ldr sl, _02044090 @ =0x020AF6B8 - b _02044070 -_02043E60: - ldr r1, [r4, #4] - ldr r0, [sl] - add r1, r1, r7, lsl #1 - ldrsh r6, [r1, #4] - add r0, r0, r6, lsl #1 - add r0, r0, #0x300 - ldrsh r0, [r0, #0x8a] - bl GetItemCategoryVeneer - ldr r1, [sl] - add r1, r1, r6, lsl #1 - add r1, r1, #0x300 - ldrsh r1, [r1, #0x8a] - cmp r1, #0x5c - bgt _02043EA0 - beq _02043F20 - b _02043F24 -_02043EA0: - sub r1, r1, #0x190 - cmp r1, #0x1b - addls pc, pc, r1, lsl #2 - b _02043F24 -_02043EB0: @ jump table - b _02043F20 @ case 0 - b _02043F20 @ case 1 - b _02043F20 @ case 2 - b _02043F20 @ case 3 - b _02043F20 @ case 4 - b _02043F20 @ case 5 - b _02043F20 @ case 6 - b _02043F20 @ case 7 - b _02043F20 @ case 8 - b _02043F20 @ case 9 - b _02043F20 @ case 10 - b _02043F20 @ case 11 - b _02043F20 @ case 12 - b _02043F20 @ case 13 - b _02043F20 @ case 14 - b _02043F20 @ case 15 - b _02043F20 @ case 16 - b _02043F20 @ case 17 - b _02043F20 @ case 18 - b _02043F20 @ case 19 - b _02043F20 @ case 20 - b _02043F20 @ case 21 - b _02043F20 @ case 22 - b _02043F20 @ case 23 - b _02043F20 @ case 24 - b _02043F20 @ case 25 - b _02043F20 @ case 26 - b _02043F20 @ case 27 -_02043F20: - mov r0, #7 -_02043F24: - cmp sb, #9 - addls pc, pc, sb, lsl #2 - b _0204402C -_02043F30: @ jump table - b _02043F58 @ case 0 - b _02043F70 @ case 1 - b _02043F88 @ case 2 - b _02043F9C @ case 3 - b _02043FB4 @ case 4 - b _02043FC8 @ case 5 - b _02043FDC @ case 6 - b _02043FF8 @ case 7 - b _0204402C @ case 8 - b _0204402C @ case 9 -_02043F58: - cmp r0, #0 - cmpne r0, #1 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - b _02044030 -_02043F70: - cmp r0, #2 - cmpne r0, #3 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - b _02044030 -_02043F88: - cmp r0, #4 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - b _02044030 -_02043F9C: - cmp r0, #5 - cmpne r0, #0xb - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - b _02044030 -_02043FB4: - cmp r0, #9 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - b _02044030 -_02043FC8: - cmp r0, #0xf - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - b _02044030 -_02043FDC: - add r0, r0, #0xf4 - and r0, r0, #0xff - cmp r0, #2 - movls r0, #1 - movhi r0, #0 - and r0, r0, #0xff - b _02044030 -_02043FF8: - add r0, r0, #0xfa - and r0, r0, #0xff - cmp r0, #4 - mov r1, #0 - bhi _02044018 - lsl r0, fp, r0 - tst r0, #0x17 - movne r1, fp -_02044018: - cmp r1, #0 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - b _02044030 -_0204402C: - mov r0, #1 -_02044030: - cmp r0, #0 - beq _02044064 - ldr r0, [r4, #4] - add r1, r8, #1 - lsl r1, r1, #0x10 - add r2, r0, r8, lsl #1 - ldrsh r2, [r2, #4] - add r0, r0, r7, lsl #1 - strh r2, [r0, #4] - ldr r0, [r4, #4] - add r0, r0, r8, lsl #1 - strh r6, [r0, #4] - asr r8, r1, #0x10 -_02044064: - add r0, r7, #1 - lsl r0, r0, #0x10 - asr r7, r0, #0x10 -_02044070: - cmp r7, r5 - blt _02043E60 - cmp r8, #0 - mvnle r8, #0 - lsl r0, r8, #0x10 - asr r0, r0, #0x10 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0204408C: .4byte 0x020AFEB4 -_02044090: .4byte 0x020AF6B8 - arm_func_end FUN_02043bfc - - arm_func_start FUN_02044094 -FUN_02044094: @ 0x02044094 - push {r3, lr} - mov r0, #0x3e8 - mov r1, #8 - bl MemAlloc - ldr r1, _020440B4 @ =0x020AFEB4 - str r0, [r1, #8] - bl FUN_020434d4 - pop {r3, pc} - .align 2, 0 -_020440B4: .4byte 0x020AFEB4 - arm_func_end FUN_02044094 - - arm_func_start FUN_020440b8 -FUN_020440b8: @ 0x020440B8 - push {r3, lr} - ldr r0, _020440D8 @ =0x020AFEB4 - ldr r0, [r0, #8] - bl MemFree - ldr r0, _020440D8 @ =0x020AFEB4 - mov r1, #0 - str r1, [r0, #8] - pop {r3, pc} - .align 2, 0 -_020440D8: .4byte 0x020AFEB4 - arm_func_end FUN_020440b8 - - arm_func_start FUN_020440dc -FUN_020440dc: @ 0x020440DC - ldr r0, _020440F4 @ =0x020AFEB4 - mov r1, #9 - str r1, [r0, #0x10] - mov r1, #0 - strh r1, [r0] - bx lr - .align 2, 0 -_020440F4: .4byte 0x020AFEB4 - arm_func_end FUN_020440dc - - arm_func_start FUN_020440f8 -FUN_020440f8: @ 0x020440F8 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sb, #0 - mov sl, r0 - mov r1, sb - bl GetType - mov r6, r0 - mov r0, sl - mov r1, #1 - bl GetType - mov r7, r0 - mov r8, sb - ldr r4, _020441B4 @ =0x020AFEB4 - ldr fp, _020441B8 @ =0x020AF6B8 - b _02044198 -_02044130: - add r0, r1, r8, lsl #1 - ldrsh r5, [r0, #4] - ldr r0, [fp] - mov r1, sl - add r0, r0, r5, lsl #1 - add r0, r0, #0x300 - ldrsh r0, [r0, #0x8a] - mov r2, r6 - mov r3, r7 - bl IsExclusiveItemIdForMonster - cmp r0, #0 - beq _0204418C - ldr r3, [r4, #4] - add r0, sb, #1 - add r1, r3, sb, lsl #1 - ldrsh r2, [r1, #4] - add r1, r3, r8, lsl #1 - lsl r0, r0, #0x10 - strh r2, [r1, #4] - ldr r1, [r4, #4] - add r1, r1, sb, lsl #1 - strh r5, [r1, #4] - asr sb, r0, #0x10 -_0204418C: - add r0, r8, #1 - lsl r0, r0, #0x10 - asr r8, r0, #0x10 -_02044198: - ldr r1, [r4, #4] - add r0, r1, #0x900 - ldrsh r0, [r0, #0x10] - cmp r8, r0 - blt _02044130 - mov r0, sb - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_020441B4: .4byte 0x020AFEB4 -_020441B8: .4byte 0x020AF6B8 - arm_func_end FUN_020440f8 -_020441BC: - .byte 0x08, 0x40, 0x2D, 0xE9 - .byte 0x44, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x10, 0x00, 0x90, 0xE5, 0x8A, 0xFE, 0xFF, 0xEB - .byte 0x34, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x04, 0x10, 0x92, 0xE5, 0x09, 0x1C, 0x81, 0xE2 - .byte 0xB0, 0x01, 0xC1, 0xE1, 0x04, 0x20, 0x92, 0xE5, 0x07, 0x0C, 0x82, 0xE2, 0x09, 0x1C, 0x82, 0xE2 - .byte 0x01, 0x2A, 0x82, 0xE2, 0xD4, 0x0D, 0xD0, 0xE1, 0xF0, 0x11, 0xD1, 0xE1, 0xBC, 0x28, 0x92, 0xE5 - .byte 0x13, 0xA1, 0xFF, 0xEB, 0x3F, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0xB4, 0xFE, 0x0A, 0x02 - - arm_func_start FUN_02044210 -FUN_02044210: @ 0x02044210 - push {r3, r4, lr} - sub sp, sp, #0x54 - mov r4, r0 - bl FUN_02027b1c - mov r0, r4 - mov r1, #0xa - mov r2, #2 - mov r3, #0x300 - bl FUN_02026268 - bl FUN_020434fc - str r0, [sp, #0x28] - add r1, sp, #4 - str r1, [sp] - ldr r3, _02044268 @ =0x00000301 - mov r0, r4 - mov r1, #0x66 - mov r2, #2 - bl FUN_020262e0 - mov r0, r4 - bl FUN_02027af0 - add sp, sp, #0x54 - pop {r3, r4, pc} - .align 2, 0 -_02044268: .4byte 0x00000301 - arm_func_end FUN_02044210 - - arm_func_start FUN_0204426c -FUN_0204426c: @ 0x0204426C - push {r4, lr} - mov r4, r0 - mov r0, #8 - mov r1, r0 - bl MemAlloc - ldr r1, _020442C0 @ =0x020AFEC8 - mov r3, #1 - str r0, [r1] - str r4, [r0] - ldr r0, [r1] - ldr r2, _020442C4 @ =0x0209CB0C - strb r3, [r0, #4] - ldr r0, [r1] - ldr r1, _020442C8 @ =FUN_02044338 - ldr r0, [r0] - add r0, r2, r0, lsl #4 - bl FUN_0202f8c4 - ldr r1, _020442C0 @ =0x020AFEC8 - ldr r1, [r1] - strb r0, [r1, #5] - pop {r4, pc} - .align 2, 0 -_020442C0: .4byte 0x020AFEC8 -_020442C4: .4byte 0x0209CB0C -_020442C8: .4byte FUN_02044338 - arm_func_end FUN_0204426c - - arm_func_start FUN_020442cc -FUN_020442cc: @ 0x020442CC - push {r3, lr} - ldr r0, _02044304 @ =0x020AFEC8 - ldr r0, [r0] - cmp r0, #0 - popeq {r3, pc} - ldrsb r0, [r0, #5] - bl FUN_0202f918 - ldr r0, _02044304 @ =0x020AFEC8 - ldr r0, [r0] - bl MemFree - ldr r0, _02044304 @ =0x020AFEC8 - mov r1, #0 - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_02044304: .4byte 0x020AFEC8 - arm_func_end FUN_020442cc - - arm_func_start FUN_02044308 -FUN_02044308: @ 0x02044308 - push {r3, lr} - ldr r0, _02044334 @ =0x020AFEC8 - ldr r2, [r0] - cmp r2, #0 - popeq {r3, pc} - mov r1, #1 - strb r1, [r2, #4] - ldr r0, [r0] - ldrsb r0, [r0, #5] - bl FUN_0202f9b8 - pop {r3, pc} - .align 2, 0 -_02044334: .4byte 0x020AFEC8 - arm_func_end FUN_02044308 - - arm_func_start FUN_02044338 -FUN_02044338: @ 0x02044338 - push {r4, r5, lr} - sub sp, sp, #0x54 - ldr r1, _02044404 @ =0x020AFEC8 - mov r5, r0 - ldr r2, [r1] - ldrb r1, [r2, #4] - cmp r1, #0 - beq _020443FC - mov r1, #0 - strb r1, [r2, #4] - mov r4, #2 - bl FUN_02027b1c - ldr r0, _02044404 @ =0x020AFEC8 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, #0 - cmpne r0, #2 - bne _020443B0 - bl GetNbItemsInBag - str r0, [sp, #0x28] - bl GetCurrentBagCapacity - mov r2, #2 - str r0, [sp, #0x2c] - add r1, sp, #4 - str r1, [sp] - mov r0, r5 - add r3, r2, #0x330 - mov r1, #0 - bl FUN_020262e0 - add r4, r4, #0x10 -_020443B0: - ldr r0, _02044404 @ =0x020AFEC8 - ldr r0, [r0] - ldr r0, [r0] - sub r0, r0, #1 - cmp r0, #1 - bhi _020443F4 - bl FUN_0200fd78 - str r0, [sp, #0x28] - bl thunk_FUN_02050ce4 - str r0, [sp, #0x2c] - add ip, sp, #4 - ldr r3, _02044408 @ =0x00000333 - mov r0, r5 - mov r2, r4 - mov r1, #0 - str ip, [sp] - bl FUN_020262e0 -_020443F4: - mov r0, r5 - bl FUN_02027af0 -_020443FC: - add sp, sp, #0x54 - pop {r4, r5, pc} - .align 2, 0 -_02044404: .4byte 0x020AFEC8 -_02044408: .4byte 0x00000333 - arm_func_end FUN_02044338 - - arm_func_start FUN_0204440c -FUN_0204440c: @ 0x0204440C - push {r4, lr} - mov r4, r0 - mov r0, #0xc - mov r1, #8 - bl MemAlloc - ldr r2, _02044468 @ =0x020AFECC - mov ip, #0 - str r0, [r2] - str r4, [r0] - ldr r1, [r2] - ldr r0, _0204446C @ =0x0209CB3C - strh ip, [r1, #6] - ldr r3, [r2] - ldr r1, _02044470 @ =FUN_020444f0 - strh ip, [r3, #8] - ldr r2, [r2] - mov r3, #1 - strb r3, [r2, #4] - bl FUN_0202f8c4 - ldr r1, _02044468 @ =0x020AFECC - ldr r1, [r1] - strb r0, [r1, #0xa] - pop {r4, pc} - .align 2, 0 -_02044468: .4byte 0x020AFECC -_0204446C: .4byte 0x0209CB3C -_02044470: .4byte FUN_020444f0 - arm_func_end FUN_0204440c - - arm_func_start FUN_02044474 -FUN_02044474: @ 0x02044474 - push {r3, lr} - ldr r0, _020444AC @ =0x020AFECC - ldr r0, [r0] - cmp r0, #0 - popeq {r3, pc} - ldrsb r0, [r0, #0xa] - bl FUN_0202f918 - ldr r0, _020444AC @ =0x020AFECC - ldr r0, [r0] - bl MemFree - ldr r0, _020444AC @ =0x020AFECC - mov r1, #0 - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_020444AC: .4byte 0x020AFECC - arm_func_end FUN_02044474 - - arm_func_start FUN_020444b0 -FUN_020444b0: @ 0x020444B0 - push {r3, lr} - ldr r1, _020444EC @ =0x020AFECC - ldr r3, [r1] - cmp r3, #0 - ldrshne r2, [r3, #6] - cmpne r2, r0 - popeq {r3, pc} - strh r0, [r3, #6] - ldr r0, [r1] - mov r2, #1 - strb r2, [r0, #4] - ldr r0, [r1] - ldrsb r0, [r0, #0xa] - bl FUN_0202f9b8 - pop {r3, pc} - .align 2, 0 -_020444EC: .4byte 0x020AFECC - arm_func_end FUN_020444b0 - - arm_func_start FUN_020444f0 -FUN_020444f0: @ 0x020444F0 - push {r4, lr} - ldr r1, _02044564 @ =0x020AFECC - mov r4, r0 - ldr r2, [r1] - ldrb r1, [r2, #4] - cmp r1, #0 - popeq {r4, pc} - mov r1, #0 - strb r1, [r2, #4] - bl FUN_02027b1c - ldr r0, _02044564 @ =0x020AFECC - ldr r2, [r0] - ldrsh r1, [r2, #6] - strh r1, [r2, #8] - ldr r0, [r0] - ldrsh r0, [r0, #8] - cmp r0, #0 - beq _02044558 - add r0, r0, #0x49 - add r0, r0, #0x2f00 - lsl r3, r0, #0x10 - mov r1, #2 - mov r0, r4 - mov r2, r1 - lsr r3, r3, #0x10 - bl FUN_02026268 -_02044558: - mov r0, r4 - bl FUN_02027af0 - pop {r4, pc} - .align 2, 0 -_02044564: .4byte 0x020AFECC - arm_func_end FUN_020444f0 - - arm_func_start FUN_02044568 -FUN_02044568: @ 0x02044568 - push {r4, lr} - mov r4, r0 - mov r0, #8 - mov r1, r0 - bl MemAlloc - ldr r1, _020445BC @ =0x020AFED0 - mov r3, #1 - str r0, [r1] - str r4, [r0] - ldr r0, [r1] - ldr r2, _020445C0 @ =0x0209CB4C - strb r3, [r0, #4] - ldr r0, [r1] - ldr r1, _020445C4 @ =0x02044604 - ldr r0, [r0] - add r0, r2, r0, lsl #4 - bl FUN_0202f8c4 - ldr r1, _020445BC @ =0x020AFED0 - ldr r1, [r1] - strb r0, [r1, #5] - pop {r4, pc} - .align 2, 0 -_020445BC: .4byte 0x020AFED0 -_020445C0: .4byte 0x0209CB4C -_020445C4: .4byte 0x02044604 - arm_func_end FUN_02044568 - - arm_func_start FUN_020445c8 -FUN_020445c8: @ 0x020445C8 - push {r3, lr} - ldr r0, _02044600 @ =0x020AFED0 - ldr r0, [r0] - cmp r0, #0 - popeq {r3, pc} - ldrsb r0, [r0, #5] - bl FUN_0202f918 - ldr r0, _02044600 @ =0x020AFED0 - ldr r0, [r0] - bl MemFree - ldr r0, _02044600 @ =0x020AFED0 - mov r1, #0 - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_02044600: .4byte 0x020AFED0 - arm_func_end FUN_020445c8 -_02044604: - .byte 0x18, 0x40, 0x2D, 0xE9, 0x54, 0xD0, 0x4D, 0xE2, 0x6C, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x20, 0x91, 0xE5, 0x04, 0x10, 0xD2, 0xE5, 0x00, 0x00, 0x51, 0xE3 - .byte 0x14, 0x00, 0x00, 0x0A, 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0xC2, 0xE5, 0x3A, 0x8D, 0xFF, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0xCD, 0x3F, 0xA0, 0xE3 - .byte 0x08, 0x87, 0xFF, 0xEB, 0xAC, 0x29, 0xFF, 0xEB, 0x18, 0x10, 0xA0, 0xE3, 0x2C, 0x10, 0x8D, 0xE5 - .byte 0x28, 0x00, 0x8D, 0xE5, 0x04, 0x10, 0x8D, 0xE2, 0x00, 0x10, 0x8D, 0xE5, 0x20, 0x30, 0x9F, 0xE5 - .byte 0x04, 0x00, 0xA0, 0xE1, 0x10, 0x10, 0xA0, 0xE3, 0x0C, 0x20, 0xA0, 0xE3, 0x1B, 0x87, 0xFF, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0x1D, 0x8D, 0xFF, 0xEB, 0x54, 0xD0, 0x8D, 0xE2, 0x18, 0x80, 0xBD, 0xE8 - .byte 0xD0, 0xFE, 0x0A, 0x02, 0x35, 0x03, 0x00, 0x00 - - arm_func_start FUN_02044688 -FUN_02044688: @ 0x02044688 - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #0xa4 - mov r6, r0 - mov r5, r1 - ldr r0, _020447E8 @ =0x00000944 - mov r1, #8 - mov r8, r2 - mov r7, r3 - bl MemAlloc - ldr r1, _020447E8 @ =0x00000944 - mov r4, r0 - bl MemZero - mov r1, r8 - mov r2, r7 - mov r3, #0 - strb r3, [r4, #0x72e] - strb r3, [r4, #0x82e] - str r3, [r4, #0x940] - sub r0, r3, #1 - str r0, [r4, #0x930] - str r3, [r4, #0x940] - ldr r3, [sp, #0xc4] - add r0, r4, #4 - str r3, [sp] - ldrb r3, [sp, #0xc0] - bl FUN_02044bf8 - ldr r0, _020447EC @ =0x0209CB78 - ldr r1, _020447F0 @ =FUN_02044964 - mov r2, r4 - bl FUN_0202f8dc - strb r0, [r4, #0x72c] - cmp r5, #3 - mov r0, #0x10 - str r0, [sp, #0x18] - ldr r1, _020447F4 @ =0x00000A36 - add r0, r4, #0x2e - add r0, r0, #0x700 - str r0, [sp, #0x54] - strh r1, [sp, #0x14] - bne _02044760 - add r1, r1, #3 - add r0, r4, #0x900 - strh r1, [r0, #0x2e] - str r4, [sp] - mov r1, #0 - str r1, [sp, #4] - str r1, [sp, #8] - ldr r0, _020447F8 @ =0x0209CB88 - ldr r3, _020447FC @ =0x02044990 - add r2, sp, #0xc - mov r1, #0x800 - bl FUN_020305e4 - strb r0, [r4, #0x72d] - b _020447A8 -_02044760: - cmp r5, #2 - addne r1, r1, #3 - addne r0, r4, #0x900 - strhne r1, [r0, #0x2e] - bne _020447A8 - add r1, r1, #2 - add r0, r4, #0x900 - strh r1, [r0, #0x2e] - str r4, [sp] - mov r1, #0 - str r1, [sp, #4] - str r1, [sp, #8] - ldr r0, _020447F8 @ =0x0209CB88 - ldr r3, _020447FC @ =0x02044990 - add r2, sp, #0xc - mov r1, #0x800 - bl FUN_020305e4 - strb r0, [r4, #0x72d] -_020447A8: - mov r0, r6 - str r6, [r4, #0x934] - bl GetItemAtIdx - ldrh r2, [r0] - add r1, r4, #0x900 - strh r2, [r1, #0x38] - ldrh r2, [r0, #2] - strh r2, [r1, #0x3a] - ldrh r2, [r0, #4] - mov r0, r4 - strh r2, [r1, #0x3c] - str r5, [r4] - bl FUN_02044aec - mov r0, r4 - add sp, sp, #0xa4 - pop {r3, r4, r5, r6, r7, r8, pc} - .align 2, 0 -_020447E8: .4byte 0x00000944 -_020447EC: .4byte 0x0209CB78 -_020447F0: .4byte FUN_02044964 -_020447F4: .4byte 0x00000A36 -_020447F8: .4byte 0x0209CB88 -_020447FC: .4byte 0x02044990 - arm_func_end FUN_02044688 - - arm_func_start FUN_02044800 -FUN_02044800: @ 0x02044800 - push {r3, r4, r5, lr} - mov r5, r0 - ldr r0, [r5, #0x940] - cmp r0, #3 - addls pc, pc, r0, lsl #2 - b _020448E4 -_02044818: @ jump table - b _02044828 @ case 0 - b _02044830 @ case 1 - b _020448B8 @ case 2 - b _020448DC @ case 3 -_02044828: - mov r0, #1 - str r0, [r5, #0x940] -_02044830: - add r0, r5, #4 - bl FUN_020451d8 - mov r4, r0 - mov r0, r5 - bl FUN_02044aec - cmp r4, #0 - beq _020448E4 - mov r0, #2 - str r0, [r5, #0x940] - cmp r4, #2 - bne _020448E4 - add r0, r5, #4 - bl FUN_020452a0 - cmp r0, #3 - addls pc, pc, r0, lsl #2 - b _020448A0 -_02044870: @ jump table - b _02044880 @ case 0 - b _02044888 @ case 1 - b _02044890 @ case 2 - b _02044898 @ case 3 -_02044880: - mov r1, #1 - b _020448A4 -_02044888: - mov r1, #2 - b _020448A4 -_02044890: - mov r1, #3 - b _020448A4 -_02044898: - mov r1, #4 - b _020448A4 -_020448A0: - mov r1, #0 -_020448A4: - ldr r0, [r5, #0x934] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl FUN_02058460 - b _020448E4 -_020448B8: - add r0, r5, #4 - bl FUN_020452b8 - cmp r0, #0 - beq _020448E4 - mov r0, r5 - bl FUN_02044918 - mov r0, #3 - str r0, [r5, #0x940] - b _020448E4 -_020448DC: - mov r0, #1 - pop {r3, r4, r5, pc} -_020448E4: - mov r0, #0 - pop {r3, r4, r5, pc} - arm_func_end FUN_02044800 - - arm_func_start FUN_020448ec -FUN_020448ec: @ 0x020448EC - push {r4, lr} - mov r4, r0 - ldr r0, [r4] - cmp r0, #0 - popeq {r4, pc} - bl FUN_02044918 - ldr r0, [r4] - bl MemFree - mov r0, #0 - str r0, [r4] - pop {r4, pc} - arm_func_end FUN_020448ec - - arm_func_start FUN_02044918 -FUN_02044918: @ 0x02044918 - push {r4, lr} - mov r4, r0 - add r0, r4, #0x700 - ldrsb r0, [r0, #0x2d] - mvn r1, #1 - cmp r0, r1 - beq _02044940 - bl FUN_020308a0 - mvn r0, #1 - strb r0, [r4, #0x72d] -_02044940: - add r0, r4, #0x700 - ldrsb r0, [r0, #0x2c] - mvn r1, #1 - cmp r0, r1 - popeq {r4, pc} - bl FUN_0202f8fc - mvn r0, #1 - strb r0, [r4, #0x72c] - pop {r4, pc} - arm_func_end FUN_02044918 - - arm_func_start FUN_02044964 -FUN_02044964: @ 0x02044964 - push {r4, lr} - add r1, r1, #0x900 - mov r4, r0 - ldrh r0, [r1, #0x2e] - bl StringFromMessageId - mov r1, #2 - mov r3, r0 - mov r0, r4 - mov r2, r1 - bl FUN_02026214 - pop {r4, pc} - arm_func_end FUN_02044964 -_02044990: - .byte 0x10, 0xC0, 0x9F, 0xE5, 0x2E, 0x10, 0x81, 0xE2, 0x02, 0x3B, 0x81, 0xE2, 0x02, 0x10, 0xA0, 0xE3 - .byte 0x10, 0x20, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x14, 0x62, 0x02, 0x02 - - arm_func_start FUN_020449ac -FUN_020449ac: @ 0x020449AC - push {r3, r4, r5, r6, r7, lr} - mov r6, r0 - add r0, r6, #4 - mov r5, r1 - mov r4, #0 - bl FUN_02045298 - cmp r0, #0 - bne _020449E8 - mov r0, r5 - bl FUN_02045330 - add r2, r6, #0x2e - mov r1, r0 - add r0, r2, #0x700 - bl FUN_020584fc - b _02044A30 -_020449E8: - ldr r1, _02044ADC @ =0x02353538 - add r0, r6, #0x2e - ldr r1, [r1] - add r0, r0, #0x700 - add r1, r1, r5, lsl #2 - add r1, r1, #0x12000 - ldr r1, [r1, #0xb28] - mov r2, r4 - ldr r7, [r1, #0xb4] - bl FUN_022E2A78 - ldrb r0, [r7, #0xbc] - cmp r0, #7 - beq _02044A2C - mov r0, r7 - bl FUN_022FBAF0 - cmp r0, #0 - beq _02044A30 -_02044A2C: - mov r4, #1 -_02044A30: - cmp r4, #0 - beq _02044A4C - add r0, r6, #0x2e - ldr r1, _02044AE0 @ =0x00000A3D - add r0, r0, #0x800 - bl GetStringFromFileVeneer - b _02044ACC -_02044A4C: - add r0, r6, #4 - bl FUN_02045298 - cmp r0, #0 - bne _02044A70 - mov r0, r5 - bl FUN_02045330 - bl GetActiveTeamMember - add r1, r0, #0x3e - b _02044A8C -_02044A70: - ldr r0, _02044ADC @ =0x02353538 - ldr r0, [r0] - add r0, r0, r5, lsl #2 - add r0, r0, #0x12000 - ldr r0, [r0, #0xb28] - ldr r0, [r0, #0xb4] - add r1, r0, #0x62 -_02044A8C: - ldrb r0, [r1] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - add r0, r6, #0x2e - bne _02044AB8 - ldr r1, _02044AE4 @ =0x00000A37 - add r0, r0, #0x800 - bl GetStringFromFileVeneer - b _02044ACC -_02044AB8: - ldr r2, _02044AE8 @ =0x0209CB6C - mov r3, #1 - add r0, r0, #0x800 - str r3, [sp] - bl FUN_0200d310 -_02044ACC: - add r0, r6, #0x700 - ldrsb r0, [r0, #0x2d] - bl FUN_0203083c - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02044ADC: .4byte 0x02353538 -_02044AE0: .4byte 0x00000A3D -_02044AE4: .4byte 0x00000A37 -_02044AE8: .4byte 0x0209CB6C - arm_func_end FUN_020449ac - - arm_func_start FUN_02044aec -FUN_02044aec: @ 0x02044AEC - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - add r0, r7, #4 - bl FUN_020452a0 - mov r4, r0 - mvn r0, #0 - cmp r4, r0 - ldrne r0, [r7, #0x930] - ldr r5, [r7] - cmpne r0, r4 - popeq {r3, r4, r5, r6, r7, pc} - add r0, r7, #4 - bl FUN_02045298 - cmp r0, #0 - bne _02044B5C - cmp r5, #1 - addne r0, r7, #0x700 - ldrsbne r1, [r0, #0x2d] - mvnne r0, #1 - cmpne r1, r0 - beq _02044BEC - sub r0, r5, #2 - cmp r0, #1 - bhi _02044BEC - mov r0, r7 - mov r1, r4 - bl FUN_020449ac - b _02044BEC -_02044B5C: - ldr r0, _02044BF4 @ =0x02353538 - ldr r0, [r0] - add r0, r0, r4, lsl #2 - add r0, r0, #0x12000 - ldr r6, [r0, #0xb28] - cmp r6, #0 - moveq r0, #0 - beq _02044B90 - ldr r0, [r6] - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff -_02044B90: - cmp r0, #0 - cmpne r5, #1 - beq _02044BC8 - sub r0, r5, #2 - cmp r0, #1 - bhi _02044BC8 - add r0, r7, #0x700 - ldrsb r1, [r0, #0x2d] - mvn r0, #1 - cmp r1, r0 - beq _02044BC8 - mov r0, r7 - mov r1, r4 - bl FUN_020449ac -_02044BC8: - mov r0, r6 - mov r1, #0 - mov r2, #1 - bl FUN_022F98B4 - mov r2, #1 - mov r3, r2 - add r0, r6, #4 - mov r1, #0 - bl FUN_02337428 -_02044BEC: - str r4, [r7, #0x930] - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02044BF4: .4byte 0x02353538 - arm_func_end FUN_02044aec - - arm_func_start FUN_02044bf8 -FUN_02044bf8: @ 0x02044BF8 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0xbc - mov fp, r1 - str r2, [sp, #4] - ldr r1, _0204519C @ =0x00000728 - mov sl, r0 + subs r3, r3, #1 str r3, [sp, #8] - bl MemZero - ldr sb, [sp, #0xe0] - add r0, sl, #0x20c - mov r4, #0 - str r4, [sl] - cmp sb, #0 - add r7, r0, #0x400 - bne _02044CD8 - mov r8, r4 - mov fp, r4 - mov r6, #1 - mov r5, r4 -_02044C44: - mov r0, r8 - bl GetActiveTeamMember - ldrb r0, [r0] - tst r0, #1 - movne r1, r6 - moveq r1, fp - tst r1, #0xff - beq _02044C88 - tst r0, #2 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - addne r1, r7, r4, lsl #2 - addne r0, r7, r4 - strne r8, [r1, #8] - strbne r5, [r0, #0x18] - addne r4, r4, #1 -_02044C88: - add r0, r8, #1 - lsl r0, r0, #0x10 - asr r8, r0, #0x10 - cmp r8, #4 - blt _02044C44 - lsl r0, r4, #0x10 - asr r5, r0, #0x10 - mvn r3, #0 - mov r2, #0 - b _02044CCC -_02044CB0: - add r1, r7, r5, lsl #2 - add r0, r5, #1 - str r3, [r1, #8] - add r1, r7, r5 - lsl r0, r0, #0x10 - strb r2, [r1, #0x18] - asr r5, r0, #0x10 -_02044CCC: - cmp r5, #4 - blt _02044CB0 - b _02044D78 -_02044CD8: - mov r5, r4 -_02044CDC: - ldr r0, _020451A0 @ =0x02353538 - ldr r0, [r0] - add r0, r0, r5, lsl #2 - add r0, r0, #0x12000 - ldr r6, [r0, #0xb28] - mov r0, r6 - bl FUN_0204533c - cmp r0, #0 - beq _02044D40 - cmp fp, #0 - beq _02044D18 - mov r0, r6 - ldr r8, [r6, #0xb4] - bl FUN_02347100 - strb r0, [r8, #0x161] -_02044D18: - add r0, r7, r4, lsl #2 - str r5, [r0, #8] - ldr r0, [r6, #0xb4] - ldrb r0, [r0, #0x161] - cmp r0, #0 - movne r1, #0 - add r0, r7, r4 - moveq r1, #3 - strb r1, [r0, #0x18] - add r4, r4, #1 -_02044D40: - add r5, r5, #1 - cmp r5, #4 - blt _02044CDC - mov r5, r4 - mvn r3, #0 - mov r1, #0 - b _02044D70 -_02044D5C: - add r2, r7, r5, lsl #2 - add r0, r7, r5 - str r3, [r2, #8] - strb r1, [r0, #0x18] - add r5, r5, #1 -_02044D70: - cmp r5, #4 - blt _02044D5C -_02044D78: - ldr r0, [sp, #0xe0] - str r4, [r7, #0x1c] - str r0, [r7] - cmp sb, #0 - moveq r0, #0 - beq _02044D98 - mov r0, #0xb - bl Arm9LoadUnkFieldNa0x2029EC8 -_02044D98: - str r0, [sl, #0x6e8] - str r4, [sl, #0x6ec] - str r4, [sl, #0x6f0] - mov sb, #0 - str sb, [sl, #0x6f4] - str sb, [sl, #0x6f8] - add r0, sl, #0x18c - str sb, [sl, #0x6dc] - add r2, sl, #0x20c - add r0, r0, #0x400 - mov r1, #0x40 - str sb, [sl, #0x6e0] - add r5, r2, #0x400 - bl MemZero - add r0, sl, #0x1cc - add r0, r0, #0x400 - mov r1, #0x40 - bl MemZero - add r0, sl, #0x18c - add r0, r0, #0x400 - str r0, [sp, #0x14] - add r0, sl, #0x3c - add r1, sl, #0x1cc - add r2, sl, #0x13c - str r0, [sp, #0x10] - add r0, r2, #0x400 - str r0, [sp, #0x18] - ldr r0, _020451A4 @ =0x000003E7 - mov r6, sb - sub r0, r0, #0x3e8 - str r0, [sp, #0x20] - ldr r0, _020451A4 @ =0x000003E7 - add r4, r1, #0x400 - sub r0, r0, #0x3e8 - str r0, [sp, #0x1c] - b _020450F8 -_02044E28: - mov r0, r5 - mov r1, r6 - bl FUN_02045360 - mov fp, r0 - ldr r0, [sp, #0x1c] - cmp fp, r0 - beq _020450F4 - ldr r0, [sp, #0x10] - mov r1, r6 - add r0, r0, sb, lsl #8 - str r0, [sp, #0xc] - mov r0, r5 - bl FUN_02045360 - mov r1, r0 - ldr r0, [sp, #0x20] - cmp r1, r0 - beq _02044EC4 - ldr r0, [r5] - cmp r0, #0 - bne _02044E8C - lsl r0, r1, #0x10 - asr r1, r0, #0x10 - ldr r0, [sp, #0x14] - bl FUN_020584fc - b _02044EC4 -_02044E8C: - ldr r3, _020451A0 @ =0x02353538 - add r0, r5, r6 - ldr r3, [r3] - ldrb r0, [r0, #0x18] - add r1, r3, r1, lsl #2 - add r1, r1, #0x12000 - cmp r0, #0 - movne r0, #0x57 - ldr r1, [r1, #0xb28] - moveq r0, #0x44 - and r2, r0, #0xff - ldr r0, [sp, #0x14] - ldr r1, [r1, #0xb4] - bl FUN_023002F0 -_02044EC4: - ldr r0, [sp, #0x14] - str r0, [sl, #0x574] - ldr r0, [r5] - cmp r0, #0 - bne _02044EE8 - ldr r1, _020451A8 @ =0x0209CBA8 - mov r0, r4 - bl Strcpy - b _020450A8 -_02044EE8: - ldr r0, _020451A0 @ =0x02353538 - ldr r0, [r0] - add r0, r0, fp, lsl #2 - add r0, r0, #0x12000 - ldr r0, [r0, #0xb28] - bl FUN_0204533c - cmp r0, #0 - beq _020450F4 - ldr r0, _020451A0 @ =0x02353538 - ldr r2, [r0] - ldr r0, _020451AC @ =0x020B0A48 - ldr r1, [r0] - add r0, r2, fp, lsl #2 - add r0, r0, #0x12000 - ldr r2, [r0, #0xb28] - add r0, r1, #0x9000 - ldr r8, [r2, #0xb4] - ldr r2, [r0, #0x84c] - ldrsh r1, [r8, #0xc] - mov r0, #0x68 - smlabb r0, r1, r0, r2 - ldrsh r0, [r0, #8] - bl CheckTeamMemberIdx - cmp r0, #0 - ldrsh r1, [r8, #0x12] - ldrsh r0, [r8, #0x16] - beq _02045000 - add r1, r1, r0 - ldr r0, _020451A4 @ =0x000003E7 - cmp r1, r0 - movgt r3, r0 - movle r3, r1 - asr r2, r3, #1 - ldrsh r0, [r8, #0x10] - add r2, r3, r2, lsr #30 - cmp r0, r2, asr #2 - bgt _02044F8C - ldr r1, _020451B0 @ =0x0209CBB0 - mov r0, r4 - bl Strcpy - b _020450A8 -_02044F8C: - ldr r2, _020451A4 @ =0x000003E7 - cmp r1, r2 - movgt r3, r2 - movle r3, r1 - asr r2, r3, #1 - add r2, r3, r2, lsr #30 - asr r2, r2, #2 - cmp r0, r2, lsl #1 - bgt _02044FC0 - ldr r1, _020451B4 @ =0x0209CBB8 - mov r0, r4 - bl Strcpy - b _020450A8 -_02044FC0: - ldr r2, _020451A4 @ =0x000003E7 - cmp r1, r2 - movgt r1, r2 - asr r2, r1, #1 - add r1, r1, r2, lsr #30 - asr r1, r1, #2 - add r1, r1, r1, lsl #1 - cmp r0, r1 - mov r0, r4 - bgt _02044FF4 - ldr r1, _020451B8 @ =0x0209CBC0 - bl Strcpy - b _020450A8 -_02044FF4: - ldr r1, _020451BC @ =0x0209CBC8 - bl Strcpy - b _020450A8 -_02045000: - add r1, r1, r0 - ldr r0, _020451A4 @ =0x000003E7 - cmp r1, r0 - movgt r3, r0 - movle r3, r1 - asr r2, r3, #1 - ldrsh r0, [r8, #0x10] - add r2, r3, r2, lsr #30 - cmp r0, r2, asr #2 - bgt _02045038 - ldr r1, _020451C0 @ =0x0209CBD0 - mov r0, r4 - bl Strcpy - b _020450A8 -_02045038: - ldr r2, _020451A4 @ =0x000003E7 - cmp r1, r2 - movgt r3, r2 - movle r3, r1 - asr r2, r3, #1 - add r2, r3, r2, lsr #30 - asr r2, r2, #2 - cmp r0, r2, lsl #1 - bgt _0204506C - ldr r1, _020451C4 @ =0x0209CBD8 - mov r0, r4 - bl Strcpy - b _020450A8 -_0204506C: - ldr r2, _020451A4 @ =0x000003E7 - cmp r1, r2 - movgt r1, r2 - asr r2, r1, #1 - add r1, r1, r2, lsr #30 - asr r1, r1, #2 - add r1, r1, r1, lsl #1 - cmp r0, r1 - mov r0, r4 - bgt _020450A0 - ldr r1, _020451C8 @ =0x0209CBE0 - bl Strcpy - b _020450A8 -_020450A0: - ldr r1, _020451A8 @ =0x0209CBA8 - bl Strcpy -_020450A8: - str r4, [sl, #0x578] - ldr r0, [r5] - cmp r0, #0 - bne _020450C4 - lsl r0, fp, #0x10 - asr r0, r0, #0x10 - bl GetActiveTeamMember -_020450C4: - ldr r0, [sp, #0x18] - ldr r2, _020451CC @ =0x0209CBE8 - str r0, [sp] - ldr r0, [sp, #0xc] - mov r1, #0x100 - mov r3, #0 - bl PreprocessString - add r1, sl, sb, lsl #3 - ldr r0, [sp, #0xc] - add sb, sb, #1 - str r0, [r1, #0xc] - str sb, [r1, #0x10] -_020450F4: - add r6, r6, #1 -_020450F8: - ldr r0, [r5, #0x1c] - cmp r6, r0 - blt _02044E28 - mov r0, #0 - add r1, sl, sb, lsl #3 - str r0, [r1, #0xc] - sub r0, r0, #1 - str r0, [r1, #0x10] - ldr r0, [sp, #4] - add r2, sp, #0x24 - cmp r0, #0 - ldrne r1, _020451D0 @ =0x00000A3A - movne r0, #0x10 - strne r0, [sp, #0x30] - strhne r1, [sp, #0x2c] - ldr r1, [sl, #0x6e8] - add r0, r7, #0x18 - add r1, r1, #1 - str r1, [sp, #0x24] - str r0, [sp, #0x84] - ldr r0, [sp, #4] - add r3, sl, #0xc - cmp r0, #0 - movne r1, #0x800 - ldr r0, [sp, #8] - moveq r1, #0 - cmp r0, #0 - movne r0, #0x400000 - moveq r0, #0 - orr r0, r0, #0x33 - orr r1, r0, r1 - ldr r0, _020451D4 @ =0x0209CB98 - orr r1, r1, #0x1200 - bl FUN_0202a690 - ldr r1, [sp, #0xe0] - strb r0, [sl, #8] - cmp r1, #1 - bne _02045194 - bl FUN_022EA62C -_02045194: - add sp, sp, #0xbc - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0204519C: .4byte 0x00000728 -_020451A0: .4byte 0x02353538 -_020451A4: .4byte 0x000003E7 -_020451A8: .4byte 0x0209CBA8 -_020451AC: .4byte 0x020B0A48 -_020451B0: .4byte 0x0209CBB0 -_020451B4: .4byte 0x0209CBB8 -_020451B8: .4byte 0x0209CBC0 -_020451BC: .4byte 0x0209CBC8 -_020451C0: .4byte 0x0209CBD0 -_020451C4: .4byte 0x0209CBD8 -_020451C8: .4byte 0x0209CBE0 -_020451CC: .4byte 0x0209CBE8 -_020451D0: .4byte 0x00000A3A -_020451D4: .4byte 0x0209CB98 - arm_func_end FUN_02044bf8 - - arm_func_start FUN_020451d8 -FUN_020451d8: @ 0x020451D8 - push {r3, r4, r5, lr} - mov r4, r0 - ldr r1, [r4] - add r0, r4, #0x20c - cmp r1, #0 - add r5, r0, #0x400 - beq _02045208 - cmp r1, #1 - beq _02045220 - cmp r1, #2 - beq _02045288 - b _02045290 -_02045208: - ldrsb r0, [r4, #8] - bl FUN_0202ab40 - cmp r0, #0 - beq _02045290 - mov r0, #1 - str r0, [r4] -_02045220: - ldrsb r0, [r4, #8] - bl FUN_0202ab40 - cmp r0, #0 - bne _02045278 - mov r0, #2 - str r0, [r4] - ldrsb r0, [r4, #8] - bl FUN_0202abb0 - subs r0, r0, #1 - bmi _0204526C - str r0, [r4, #0x6e8] - add r0, r5, r0 - ldrb r0, [r0, #0x18] - cmp r0, #0 - moveq r0, #2 - streq r0, [r4, #0x724] - movne r0, #1 - strne r0, [r4, #0x724] - b _02045290 -_0204526C: - mov r0, #1 - str r0, [r4, #0x724] - b _02045290 -_02045278: - ldrsb r0, [r4, #8] - bl FUN_0202ab80 - str r0, [r4, #0x6e8] - b _02045290 -_02045288: - ldr r0, [r4, #0x724] - pop {r3, r4, r5, pc} -_02045290: - mov r0, #0 - pop {r3, r4, r5, pc} - arm_func_end FUN_020451d8 - - arm_func_start FUN_02045298 -FUN_02045298: @ 0x02045298 - ldr r0, [r0, #0x60c] - bx lr - arm_func_end FUN_02045298 - - arm_func_start FUN_020452a0 -FUN_020452a0: @ 0x020452A0 - ldr ip, _020452B4 @ =FUN_02045360 - add r2, r0, #0x20c - ldr r1, [r0, #0x6e8] - add r0, r2, #0x400 - bx ip - .align 2, 0 -_020452B4: .4byte FUN_02045360 - arm_func_end FUN_020452a0 - - arm_func_start FUN_020452b8 -FUN_020452b8: @ 0x020452B8 - push {r4, lr} - movs r4, r0 - ldrsbne r0, [r4, #8] - mvnne r1, #1 - cmpne r0, r1 - moveq r0, #1 - popeq {r4, pc} - bl FUN_0202aae8 - cmp r0, #0 - ldrsb r0, [r4, #8] - beq _02045310 - bl FUN_020282f4 - add r0, r0, #5 - cmp r0, #1 - movhi r0, #0 - bhi _02045320 - ldrsb r0, [r4, #8] - bl FUN_0202aabc - mvn r0, #1 - strb r0, [r4, #8] - mov r0, #1 - b _02045320 -_02045310: - bl FUN_0202aabc - mvn r0, #1 - strb r0, [r4, #8] - mov r0, #1 -_02045320: - cmp r0, #0 - movne r0, #2 - moveq r0, #0 - pop {r4, pc} - arm_func_end FUN_020452b8 - - arm_func_start FUN_02045330 -FUN_02045330: @ 0x02045330 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bx lr - arm_func_end FUN_02045330 - - arm_func_start FUN_0204533c -FUN_0204533c: @ 0x0204533C - cmp r0, #0 - moveq r0, #0 - bxeq lr - ldr r0, [r0] - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - arm_func_end FUN_0204533c - - arm_func_start FUN_02045360 -FUN_02045360: @ 0x02045360 - push {r4, lr} - add r1, r0, r1, lsl #2 - ldr r4, [r1, #8] - mvn r1, #0 - cmp r4, r1 - moveq r0, r1 - popeq {r4, pc} - ldr r0, [r0] - cmp r0, #0 - bne _020453C8 - lsl r0, r4, #0x10 - asr r0, r0, #0x10 - bl GetActiveTeamMember - ldrb r0, [r0] - tst r0, #1 - movne r1, #1 - moveq r1, #0 - tst r1, #0xff - beq _020453C0 - tst r0, #2 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - bne _020453EC -_020453C0: - mvn r0, #0 - pop {r4, pc} -_020453C8: - ldr r0, _020453F4 @ =0x02353538 - ldr r0, [r0] - add r0, r0, r4, lsl #2 - add r0, r0, #0x12000 - ldr r0, [r0, #0xb28] - bl FUN_0204533c - cmp r0, #0 - mvneq r0, #0 - popeq {r4, pc} -_020453EC: - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_020453F4: .4byte 0x02353538 - arm_func_end FUN_02045360 - - arm_func_start FUN_020453f8 -FUN_020453f8: @ 0x020453F8 - push {r3, r4, r5, lr} - ldr r2, _020454DC @ =0x020AFED4 - mov r5, r0 - ldr r0, [r2] - mov r4, r1 - cmp r0, #0 - bne _02045428 - mov r0, #0x410 - mov r1, #8 - bl MemAlloc - ldr r1, _020454DC @ =0x020AFED4 - str r0, [r1] -_02045428: - bl FUN_02044094 - bl FUN_020440dc - ldr r1, _020454DC @ =0x020AFED4 - mov r2, #0 - ldr r0, [r1] - strb r4, [r0, #0x386] - ldr r0, [r1] - add r0, r0, #0x300 - strh r2, [r0, #0x88] - ldr r0, [r1] - str r2, [r0, #0x38c] - ldr r0, [r1] - add r0, r0, #0x1c - bl InitPreprocessorArgs - ldr r1, _020454DC @ =0x020AFED4 - mov r0, #0 - ldr r2, [r1] - sub r3, r0, #2 - str r0, [r2, #0x68] - ldr r2, [r1] - cmp r4, #0 - str r0, [r2, #0x1c] - ldr r2, [r1] - str r0, [r2, #0x18] - ldr r2, [r1] - strb r3, [r2, #0x14] - ldr r2, [r1] - strb r3, [r2, #0x16] - ldr r2, [r1] - strb r3, [r2, #0x15] - ldr r2, [r1] - strb r3, [r2, #0x17] - ldr r3, [r1] - ldrh r2, [r5] - add r1, r3, #0x300 - strh r2, [r1, #0x80] - ldrh r2, [r5, #2] - strh r2, [r1, #0x82] - ldrh r2, [r5, #4] - strh r2, [r1, #0x84] - str r0, [r3, #0x6c] - moveq r0, #0x13 - bl FUN_020454e0 - mov r0, #1 - pop {r3, r4, r5, pc} - .align 2, 0 -_020454DC: .4byte 0x020AFED4 - arm_func_end FUN_020453f8 - - arm_func_start FUN_020454e0 -FUN_020454e0: @ 0x020454E0 - push {r4, r5, lr} - sub sp, sp, #0x194 - ldr r1, _02045A1C @ =0x020AFED4 - ldr r2, [r1] - str r0, [r2, #4] - ldr r4, [r1] - ldr r0, [r4, #4] - cmp r0, #0x13 - addls pc, pc, r0, lsl #2 - b _02045A14 -_02045508: @ jump table - b _02045558 @ case 0 - b _02045584 @ case 1 - b _020455CC @ case 2 - b _02045A14 @ case 3 - b _02045A14 @ case 4 - b _02045A14 @ case 5 - b _020458C0 @ case 6 - b _02045914 @ case 7 - b _02045844 @ case 8 - b _02045948 @ case 9 - b _02045984 @ case 10 - b _020459C0 @ case 11 - b _02045A14 @ case 12 - b _02045A14 @ case 13 - b _02045958 @ case 14 - b _02045798 @ case 15 - b _02045688 @ case 16 - b _02045764 @ case 17 - b _02045A14 @ case 18 - b _020459E0 @ case 19 -_02045558: - mov r0, #2 - str r0, [r4, #8] - bl FUN_02046624 - ldr r0, _02045A1C @ =0x020AFED4 - ldr r2, _02045A20 @ =0x000002CD - ldr r3, [r0] - mov r1, #8 - ldrsb r0, [r3, #0x14] - add r3, r3, #0x1c - bl ShowMessageInDBox - b _02045A14 -_02045584: - mov r0, #2 - str r0, [r4, #8] - bl FUN_02046624 - ldr r0, _02045A1C @ =0x020AFED4 - ldr r0, [r0] - ldrsb r0, [r0, #0x14] - bl ShowDBox - ldr r0, _02045A1C @ =0x020AFED4 - mov r3, #2 - ldr r1, [r0] - ldr r2, _02045A24 @ =0x000002D5 - str r3, [r1, #8] - ldr r3, [r0] - mov r1, #8 - ldrsb r0, [r3, #0x14] - add r3, r3, #0x1c - bl ShowMessageInDBox - b _02045A14 -_020455CC: - ldr r1, _02045A28 @ =0x000002CE - add r0, r4, #0x70 - bl GetStringFromFileVeneer - mov r1, #2 - add r0, sp, #0x14 - str r1, [r4, #0x170] - bl InitPreprocessorArgs - ldr r0, _02045A1C @ =0x020AFED4 - ldr r2, _02045A2C @ =0x0209CC0C - ldr r1, [r0] - add r0, r1, #0x390 - add r1, r1, #0x380 - bl FUN_0200d670 - ldr r0, _02045A1C @ =0x020AFED4 - ldr r2, _02045A30 @ =0x000002CF - ldr r5, [r0] - add ip, sp, #0x14 - add r3, r5, #0x300 - ldrsh lr, [r3, #0x84] - add r0, r4, #0x174 - mov r1, #0x100 - orr lr, lr, #0x10000 - str lr, [sp, #0x24] - ldrh lr, [r3, #0x82] - mov r3, #0 - str lr, [sp, #0x38] - ldrb lr, [r5, #0x380] - str lr, [sp, #0x3c] - str ip, [sp] - bl PreprocessStringFromMessageId - mov r1, #3 - str r1, [r4, #0x274] - mov r2, #0 - strb r2, [r4, #0x278] - mov r0, #1 - str r0, [r4, #0x378] - str r1, [sp] - ldr r3, _02045A1C @ =0x020AFED4 - ldr r0, _02045A34 @ =0x0209CC38 - ldr r3, [r3] - ldr r1, _02045A38 @ =0x00300011 - add r3, r3, #0x70 - bl FUN_0202b1ac - ldr r1, _02045A1C @ =0x020AFED4 - ldr r1, [r1] - strb r0, [r1, #0x16] - b _02045A14 -_02045688: - mov r0, #0x11 - str r0, [r4, #8] - ldr r0, [r1] - ldr r0, [r0] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl FUN_02010044 - ldr r2, _02045A1C @ =0x020AFED4 - ldr r1, [r2] - add r1, r1, #0x300 - strh r0, [r1, #0x88] - ldr r1, [r2] - add r0, r1, #0x300 - ldrsh r0, [r0, #0x88] - strh r0, [sp, #0x10] - ldr r0, [r1] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl FUN_02010060 - ldr r3, _02045A1C @ =0x020AFED4 - ldr r2, _02045A2C @ =0x0209CC0C - ldr r4, [r3] - add r1, sp, #0xc - str r0, [r4, #0x38c] - ldr r0, [r3] - mov r3, #0 - ldr r4, [r0, #0x38c] - add r0, r0, #0x390 - strh r4, [sp, #0xe] - strb r3, [sp, #0xc] - bl FUN_0200d670 - ldr r0, _02045A1C @ =0x020AFED4 - ldr r2, [r0] - add r1, r2, #0x390 - str r1, [r2, #0x54] - ldr r1, [r0] - add r0, r1, #0x300 - ldrsh r0, [r0, #0x88] - str r0, [r1, #0x2c] - bl FUN_02046624 - ldr r0, _02045A1C @ =0x020AFED4 - ldr r0, [r0] - ldrsb r0, [r0, #0x14] - bl ShowDBox - ldr r0, _02045A1C @ =0x020AFED4 - mov r4, #0x11 - ldr r3, [r0] - mov r1, #8 - str r4, [r3, #8] - ldr r3, [r0] - add r2, r4, #0x2c0 - ldrsb r0, [r3, #0x14] - add r3, r3, #0x1c - bl ShowMessageInDBox - b _02045A14 -_02045764: - mov r4, #3 - str r4, [sp, #0x64] - mov r4, #2 - ldr r0, _02045A34 @ =0x0209CC38 - ldr r1, _02045A3C @ =0x00300033 - ldr r3, _02045A40 @ =0x0209CC48 - add r2, sp, #0x64 - str r4, [sp] - bl CreateNormalMenu - ldr r1, _02045A1C @ =0x020AFED4 - ldr r1, [r1] - strb r0, [r1, #0x16] - b _02045A14 -_02045798: - ldr r0, [r4] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl FUN_02010044 - ldr r2, _02045A1C @ =0x020AFED4 - ldr r1, [r2] - add r1, r1, #0x300 - strh r0, [r1, #0x88] - ldr r0, [r2] - ldr r0, [r0] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl FUN_02010060 - ldr r4, _02045A1C @ =0x020AFED4 - ldr r1, _02045A44 @ =0x00001013 - ldr r2, [r4] - ldr r3, _02045A48 @ =0x000008E4 - str r0, [r2, #0x38c] - ldr lr, [r4] - ldr r0, _02045A4C @ =0x0209CC28 - add r2, lr, #0x300 - ldrsh ip, [r2, #0x88] - mov r2, #0 - str ip, [lr, #0x2c] - ldr lr, [r4] - ldr ip, [lr, #0x38c] - add ip, ip, #0xbc - str ip, [lr, #0x34] - ldr r4, [r4] - add ip, r4, #0x1c - add r4, r4, #0x300 - str ip, [sp] - ldrsh r4, [r4, #0x88] - add r4, r4, #0xd1 - add r4, r4, #0x2900 - lsl r4, r4, #0x10 - lsr r4, r4, #0x10 - stmib sp, {r4, ip} - bl FUN_0202e3cc - ldr r1, _02045A1C @ =0x020AFED4 - ldr r1, [r1] - strb r0, [r1, #0x17] - b _02045A14 -_02045844: - ldr r0, [r4] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl FUN_02010044 - ldr r2, _02045A1C @ =0x020AFED4 - ldr r1, [r2] - add r1, r1, #0x300 - strh r0, [r1, #0x88] - ldr r0, [r2] - ldr r0, [r0] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl FUN_02010060 - ldr r1, _02045A1C @ =0x020AFED4 - mov r2, #3 - ldr r3, [r1] - str r0, [r3, #0x38c] - ldr r3, [r1] - add r0, r3, #0x300 - ldrsh r0, [r0, #0x88] - str r0, [r3, #0x2c] - ldr r0, [r1] - str r2, [r0, #4] - bl FUN_02045a5c - ldr r0, _02045A1C @ =0x020AFED4 - ldr r0, [r0] - ldr r0, [r0] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl FUN_02010154 - b _02045A14 -_020458C0: - add r0, r4, #0x390 - str r0, [r4, #0x5c] - ldr r0, [r1] - mov r1, #7 - str r1, [r0, #8] - bl FUN_02046624 - ldr r0, _02045A1C @ =0x020AFED4 - ldr r0, [r0] - ldrsb r0, [r0, #0x14] - bl ShowDBox - ldr r0, _02045A1C @ =0x020AFED4 - mov r3, #7 - ldr r1, [r0] - ldr r2, _02045A50 @ =0x000002D6 - str r3, [r1, #8] - ldr r3, [r0] - mov r1, #8 - ldrsb r0, [r3, #0x14] - add r3, r3, #0x1c - bl ShowMessageInDBox - b _02045A14 -_02045914: - mov r4, #3 - str r4, [sp, #0xfc] - mov r4, #2 - ldr r0, _02045A34 @ =0x0209CC38 - ldr r1, _02045A3C @ =0x00300033 - ldr r3, _02045A40 @ =0x0209CC48 - add r2, sp, #0xfc - str r4, [sp] - bl CreateNormalMenu - ldr r1, _02045A1C @ =0x020AFED4 - ldr r1, [r1] - strb r0, [r1, #0x16] - b _02045A14 -_02045948: - mov r0, #4 - str r0, [r4, #4] - bl FUN_02045a5c - b _02045A14 -_02045958: - ldr r0, _02045A54 @ =0x0209CC18 - mov r4, #3 - ldr r3, _02045A58 @ =0x0209CC60 - mov r1, #0x13 - mov r2, #0 - str r4, [sp] - bl CreateNormalMenu - ldr r1, _02045A1C @ =0x020AFED4 - ldr r1, [r1] - strb r0, [r1, #0x16] - b _02045A14 -_02045984: - ldrsb r0, [r4, #0x14] - bl FreeDBox - ldr r0, _02045A1C @ =0x020AFED4 - mvn r1, #1 - ldr r0, [r0] - strb r1, [r0, #0x14] - bl FUN_02043218 - mov r0, #2 - mov r1, #0 - mov r2, #8 - bl FUN_02042cf0 - ldr r1, _02045A1C @ =0x020AFED4 - ldr r1, [r1] - strb r0, [r1, #0x15] - b _02045A14 -_020459C0: - mov r0, #2 - mov r1, #0 - mov r2, #8 - bl FUN_02042cf0 - ldr r1, _02045A1C @ =0x020AFED4 - ldr r1, [r1] - strb r0, [r1, #0x15] - b _02045A14 -_020459E0: - mov r0, #0xa - str r0, [r4, #8] - ldr r0, [r1] - mov r1, #0x12 - str r1, [r0, #4] - bl FUN_02046624 - ldr r0, _02045A1C @ =0x020AFED4 - mov r1, #0x18 - ldr r3, [r0] - mov r2, #0x2d0 - ldrsb r0, [r3, #0x14] - add r3, r3, #0x1c - bl ShowMessageInDBox -_02045A14: - add sp, sp, #0x194 - pop {r4, r5, pc} - .align 2, 0 -_02045A1C: .4byte 0x020AFED4 -_02045A20: .4byte 0x000002CD -_02045A24: .4byte 0x000002D5 -_02045A28: .4byte 0x000002CE -_02045A2C: .4byte 0x0209CC0C -_02045A30: .4byte 0x000002CF -_02045A34: .4byte 0x0209CC38 -_02045A38: .4byte 0x00300011 -_02045A3C: .4byte 0x00300033 -_02045A40: .4byte 0x0209CC48 -_02045A44: .4byte 0x00001013 -_02045A48: .4byte 0x000008E4 -_02045A4C: .4byte 0x0209CC28 -_02045A50: .4byte 0x000002D6 -_02045A54: .4byte 0x0209CC18 -_02045A58: .4byte 0x0209CC60 - arm_func_end FUN_020454e0 - - arm_func_start FUN_02045a5c -FUN_02045a5c: @ 0x02045A5C - push {r4, r5, lr} - sub sp, sp, #0x194 - ldr r0, _02045F90 @ =0x020AFED4 - ldr r4, [r0] - ldr r1, [r4, #4] - cmp r1, #0x13 - addls pc, pc, r1, lsl #2 - b _02045F88 -_02045A7C: @ jump table - b _02045ACC @ case 0 - b _02045AF8 @ case 1 - b _02045B40 @ case 2 - b _02045F88 @ case 3 - b _02045F88 @ case 4 - b _02045F88 @ case 5 - b _02045E34 @ case 6 - b _02045E88 @ case 7 - b _02045DB8 @ case 8 - b _02045EBC @ case 9 - b _02045EF8 @ case 10 - b _02045F34 @ case 11 - b _02045F88 @ case 12 - b _02045F88 @ case 13 - b _02045ECC @ case 14 - b _02045D0C @ case 15 - b _02045BFC @ case 16 - b _02045CD8 @ case 17 - b _02045F88 @ case 18 - b _02045F54 @ case 19 -_02045ACC: - mov r0, #2 - str r0, [r4, #8] - bl FUN_02046624 - ldr r0, _02045F90 @ =0x020AFED4 - ldr r2, _02045F94 @ =0x000002CD - ldr r3, [r0] - mov r1, #8 - ldrsb r0, [r3, #0x14] - add r3, r3, #0x1c - bl ShowMessageInDBox - b _02045F88 -_02045AF8: - mov r0, #2 - str r0, [r4, #8] - bl FUN_02046624 - ldr r0, _02045F90 @ =0x020AFED4 - ldr r0, [r0] - ldrsb r0, [r0, #0x14] - bl ShowDBox - ldr r0, _02045F90 @ =0x020AFED4 - mov r3, #2 - ldr r1, [r0] - ldr r2, _02045F98 @ =0x000002D5 - str r3, [r1, #8] - ldr r3, [r0] - mov r1, #8 - ldrsb r0, [r3, #0x14] - add r3, r3, #0x1c - bl ShowMessageInDBox - b _02045F88 -_02045B40: - ldr r1, _02045F9C @ =0x000002CE - add r0, r4, #0x70 - bl GetStringFromFileVeneer - mov r1, #2 - add r0, sp, #0x144 - str r1, [r4, #0x170] - bl InitPreprocessorArgs - ldr r0, _02045F90 @ =0x020AFED4 - ldr r2, _02045FA0 @ =0x0209CC0C - ldr r1, [r0] - add r0, r1, #0x390 - add r1, r1, #0x380 - bl FUN_0200d670 - ldr r0, _02045F90 @ =0x020AFED4 - ldr r2, _02045FA4 @ =0x000002CF - ldr r5, [r0] - add ip, sp, #0x144 - add r3, r5, #0x300 - ldrsh lr, [r3, #0x84] - add r0, r4, #0x174 - mov r1, #0x100 - orr lr, lr, #0x10000 - str lr, [sp, #0x154] - ldrh lr, [r3, #0x82] - mov r3, #0 - str lr, [sp, #0x168] - ldrb lr, [r5, #0x380] - str lr, [sp, #0x16c] - str ip, [sp] - bl PreprocessStringFromMessageId - mov r1, #3 - str r1, [r4, #0x274] - mov r2, #0 - strb r2, [r4, #0x278] - mov r0, #1 - str r0, [r4, #0x378] - str r1, [sp] - ldr r3, _02045F90 @ =0x020AFED4 - ldr r0, _02045FA8 @ =0x0209CC38 - ldr r3, [r3] - ldr r1, _02045FAC @ =0x00300011 - add r3, r3, #0x70 - bl FUN_0202b1ac - ldr r1, _02045F90 @ =0x020AFED4 - ldr r1, [r1] - strb r0, [r1, #0x16] - b _02045F88 -_02045BFC: - mov r1, #0x11 - str r1, [r4, #8] - ldr r0, [r0] - ldr r0, [r0] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl FUN_02010044 - ldr r2, _02045F90 @ =0x020AFED4 - ldr r1, [r2] - add r1, r1, #0x300 - strh r0, [r1, #0x88] - ldr r1, [r2] - add r0, r1, #0x300 - ldrsh r0, [r0, #0x88] - strh r0, [sp, #0x10] - ldr r0, [r1] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl FUN_02010060 - ldr r3, _02045F90 @ =0x020AFED4 - ldr r2, _02045FA0 @ =0x0209CC0C - ldr r4, [r3] - add r1, sp, #0xc - str r0, [r4, #0x38c] - ldr r0, [r3] - mov r3, #0 - ldr r4, [r0, #0x38c] - add r0, r0, #0x390 - strh r4, [sp, #0xe] - strb r3, [sp, #0xc] - bl FUN_0200d670 - ldr r0, _02045F90 @ =0x020AFED4 - ldr r2, [r0] - add r1, r2, #0x390 - str r1, [r2, #0x54] - ldr r1, [r0] - add r0, r1, #0x300 - ldrsh r0, [r0, #0x88] - str r0, [r1, #0x2c] - bl FUN_02046624 - ldr r0, _02045F90 @ =0x020AFED4 - ldr r0, [r0] - ldrsb r0, [r0, #0x14] - bl ShowDBox - ldr r0, _02045F90 @ =0x020AFED4 - mov r4, #0x11 - ldr r3, [r0] - mov r1, #8 - str r4, [r3, #8] - ldr r3, [r0] - add r2, r4, #0x2c0 - ldrsb r0, [r3, #0x14] - add r3, r3, #0x1c - bl ShowMessageInDBox - b _02045F88 -_02045CD8: - mov r4, #3 - str r4, [sp, #0xac] - mov r4, #2 - ldr r0, _02045FA8 @ =0x0209CC38 - ldr r1, _02045FB0 @ =0x00300033 - ldr r3, _02045FB4 @ =0x0209CC48 - add r2, sp, #0xac - str r4, [sp] - bl CreateNormalMenu - ldr r1, _02045F90 @ =0x020AFED4 - ldr r1, [r1] - strb r0, [r1, #0x16] - b _02045F88 -_02045D0C: - ldr r0, [r4] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl FUN_02010044 - ldr r2, _02045F90 @ =0x020AFED4 - ldr r1, [r2] - add r1, r1, #0x300 - strh r0, [r1, #0x88] - ldr r0, [r2] - ldr r0, [r0] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl FUN_02010060 - ldr r4, _02045F90 @ =0x020AFED4 - ldr r1, _02045FB8 @ =0x00001013 - ldr r2, [r4] - ldr r3, _02045FBC @ =0x000008E4 - str r0, [r2, #0x38c] - ldr lr, [r4] - ldr r0, _02045FC0 @ =0x0209CC28 - add r2, lr, #0x300 - ldrsh ip, [r2, #0x88] - mov r2, #0 - str ip, [lr, #0x2c] - ldr lr, [r4] - ldr ip, [lr, #0x38c] - add ip, ip, #0xbc - str ip, [lr, #0x34] - ldr r4, [r4] - add ip, r4, #0x1c - add r4, r4, #0x300 - str ip, [sp] - ldrsh r4, [r4, #0x88] - add r4, r4, #0xd1 - add r4, r4, #0x2900 - lsl r4, r4, #0x10 - lsr r4, r4, #0x10 - stmib sp, {r4, ip} - bl FUN_0202e3cc - ldr r1, _02045F90 @ =0x020AFED4 - ldr r1, [r1] - strb r0, [r1, #0x17] - b _02045F88 -_02045DB8: - ldr r0, [r4] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl FUN_02010044 - ldr r2, _02045F90 @ =0x020AFED4 - ldr r1, [r2] - add r1, r1, #0x300 - strh r0, [r1, #0x88] - ldr r0, [r2] - ldr r0, [r0] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl FUN_02010060 - ldr r1, _02045F90 @ =0x020AFED4 - mov r2, #3 - ldr r3, [r1] - str r0, [r3, #0x38c] - ldr r3, [r1] - add r0, r3, #0x300 - ldrsh r0, [r0, #0x88] - str r0, [r3, #0x2c] - ldr r0, [r1] - str r2, [r0, #4] - bl FUN_02045a5c - ldr r0, _02045F90 @ =0x020AFED4 - ldr r0, [r0] - ldr r0, [r0] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl FUN_02010154 - b _02045F88 -_02045E34: - add r1, r4, #0x390 - str r1, [r4, #0x5c] - ldr r0, [r0] - mov r1, #7 - str r1, [r0, #8] - bl FUN_02046624 - ldr r0, _02045F90 @ =0x020AFED4 - ldr r0, [r0] - ldrsb r0, [r0, #0x14] - bl ShowDBox - ldr r0, _02045F90 @ =0x020AFED4 - mov r3, #7 - ldr r1, [r0] - ldr r2, _02045FC4 @ =0x000002D6 - str r3, [r1, #8] - ldr r3, [r0] - mov r1, #8 - ldrsb r0, [r3, #0x14] - add r3, r3, #0x1c - bl ShowMessageInDBox - b _02045F88 -_02045E88: - mov r4, #3 - str r4, [sp, #0x14] - mov r4, #2 - ldr r0, _02045FA8 @ =0x0209CC38 - ldr r1, _02045FB0 @ =0x00300033 - ldr r3, _02045FB4 @ =0x0209CC48 - add r2, sp, #0x14 - str r4, [sp] - bl CreateNormalMenu - ldr r1, _02045F90 @ =0x020AFED4 - ldr r1, [r1] - strb r0, [r1, #0x16] - b _02045F88 -_02045EBC: - mov r0, #4 - str r0, [r4, #4] - bl FUN_02045a5c - b _02045F88 -_02045ECC: - ldr r0, _02045FC8 @ =0x0209CC18 - mov r4, #3 - ldr r3, _02045FCC @ =0x0209CC60 - mov r1, #0x13 - mov r2, #0 - str r4, [sp] - bl CreateNormalMenu - ldr r1, _02045F90 @ =0x020AFED4 - ldr r1, [r1] - strb r0, [r1, #0x16] - b _02045F88 -_02045EF8: - ldrsb r0, [r4, #0x14] - bl FreeDBox - ldr r0, _02045F90 @ =0x020AFED4 - mvn r1, #1 - ldr r0, [r0] - strb r1, [r0, #0x14] - bl FUN_02043218 - mov r0, #2 - mov r1, #0 - mov r2, #8 - bl FUN_02042cf0 - ldr r1, _02045F90 @ =0x020AFED4 - ldr r1, [r1] - strb r0, [r1, #0x15] - b _02045F88 -_02045F34: - mov r0, #2 - mov r1, #0 - mov r2, #8 - bl FUN_02042cf0 - ldr r1, _02045F90 @ =0x020AFED4 - ldr r1, [r1] - strb r0, [r1, #0x15] - b _02045F88 -_02045F54: - mov r1, #0xa - str r1, [r4, #8] - ldr r0, [r0] - mov r1, #0x12 - str r1, [r0, #4] - bl FUN_02046624 - ldr r0, _02045F90 @ =0x020AFED4 - mov r1, #0x18 - ldr r3, [r0] - mov r2, #0x2d0 - ldrsb r0, [r3, #0x14] - add r3, r3, #0x1c - bl ShowMessageInDBox -_02045F88: - add sp, sp, #0x194 - pop {r4, r5, pc} - .align 2, 0 -_02045F90: .4byte 0x020AFED4 -_02045F94: .4byte 0x000002CD -_02045F98: .4byte 0x000002D5 -_02045F9C: .4byte 0x000002CE -_02045FA0: .4byte 0x0209CC0C -_02045FA4: .4byte 0x000002CF -_02045FA8: .4byte 0x0209CC38 -_02045FAC: .4byte 0x00300011 -_02045FB0: .4byte 0x00300033 -_02045FB4: .4byte 0x0209CC48 -_02045FB8: .4byte 0x00001013 -_02045FBC: .4byte 0x000008E4 -_02045FC0: .4byte 0x0209CC28 -_02045FC4: .4byte 0x000002D6 -_02045FC8: .4byte 0x0209CC18 -_02045FCC: .4byte 0x0209CC60 - arm_func_end FUN_02045a5c - - arm_func_start FUN_02045fd0 -FUN_02045fd0: @ 0x02045FD0 - push {r3, lr} - ldr r2, _02046024 @ =0x020AFED4 - ldr r1, [r2] - cmp r1, #0 - moveq r1, #0 - strheq r1, [r0, #4] - popeq {r3, pc} - add r1, r1, #0x300 - ldrsh r1, [r1, #0x88] - strh r1, [r0, #4] - ldr r1, [r2] - ldr r1, [r1, #0x38c] - strh r1, [r0, #2] - bl FUN_020440b8 - ldr r0, _02046024 @ =0x020AFED4 - ldr r0, [r0] - bl MemFree - ldr r0, _02046024 @ =0x020AFED4 - mov r1, #0 - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_02046024: .4byte 0x020AFED4 - arm_func_end FUN_02045fd0 - - arm_func_start FUN_02046028 -FUN_02046028: @ 0x02046028 - push {r3, r4, lr} - sub sp, sp, #4 - ldr r0, _020465D8 @ =0x020AFED4 - ldr r2, [r0] - ldr r1, [r2, #0x18] - cmp r1, #3 - addls pc, pc, r1, lsl #2 - b _020465CC -_02046048: @ jump table - b _02046058 @ case 0 - b _02046064 @ case 1 - b _02046590 @ case 2 - b _020465C4 @ case 3 -_02046058: - mov r0, #1 - str r0, [r2, #0x18] - b _020465CC -_02046064: - ldr r1, [r2, #4] - cmp r1, #0x12 - addls pc, pc, r1, lsl #2 - b _0204650C -_02046074: @ jump table - b _0204650C @ case 0 - b _0204650C @ case 1 - b _020460C0 @ case 2 - b _020464B4 @ case 3 - b _020464BC @ case 4 - b _020464C4 @ case 5 - b _0204650C @ case 6 - b _02046168 @ case 7 - b _0204650C @ case 8 - b _0204650C @ case 9 - b _020461BC @ case 10 - b _020461BC @ case 11 - b _02046334 @ case 12 - b _02046364 @ case 13 - b _020463B4 @ case 14 - b _02046478 @ case 15 - b _0204650C @ case 16 - b _02046114 @ case 17 - b _020464CC @ case 18 -_020460C0: - ldrsb r0, [r2, #0x16] - bl GetNormalMenuResult - cmp r0, #1 - ldrne r1, _020465D8 @ =0x020AFED4 - ldrne r1, [r1] - strne r0, [r1, #0x10] - cmp r0, #1 - beq _02046104 - cmp r0, #2 - beq _020460F4 - cmp r0, #3 - beq _02046104 - b _0204653C -_020460F4: - bl FUN_020465dc - mov r0, #0x13 - bl FUN_020454e0 - b _0204653C -_02046104: - bl FUN_020465dc - mov r0, #6 - bl FUN_020454e0 - b _0204653C -_02046114: - ldrsb r0, [r2, #0x16] - bl GetNormalMenuResult - cmp r0, #1 - ldrne r1, _020465D8 @ =0x020AFED4 - ldrne r1, [r1] - strne r0, [r1, #0x10] - cmp r0, #1 - beq _02046158 - cmp r0, #2 - beq _02046148 - cmp r0, #3 - beq _02046158 - b _0204653C -_02046148: - bl FUN_020465dc - mov r0, #8 - bl FUN_020454e0 - b _0204653C -_02046158: - bl FUN_020465dc - mov r0, #0x13 - bl FUN_020454e0 - b _0204653C -_02046168: - ldrsb r0, [r2, #0x16] - bl GetNormalMenuResult - cmp r0, #1 - ldrne r1, _020465D8 @ =0x020AFED4 - ldrne r1, [r1] - strne r0, [r1, #0x10] - cmp r0, #1 - beq _020461AC - cmp r0, #2 - beq _0204619C - cmp r0, #3 - beq _020461AC - b _0204653C -_0204619C: - bl FUN_020465dc - mov r0, #9 - bl FUN_020454e0 - b _0204653C -_020461AC: - bl FUN_020465dc - mov r0, #0 - bl FUN_020454e0 - b _0204653C -_020461BC: - bl FUN_02043468 - mov r4, r0 - bl FUN_02043400 - cmp r0, #0 - bne _02046234 - mvn r0, #0 - cmp r4, r0 - bne _02046214 - bl FUN_0204317c - ldr r0, _020465D8 @ =0x020AFED4 - mvn r2, #1 - ldr r1, [r0] - mov r3, #2 - strb r2, [r1, #0x15] - ldr r1, [r0] - mov r2, #1 - str r3, [r1, #0xc] - ldr r1, [r0] - mov r0, #0xc - str r2, [r1, #8] - bl FUN_020454e0 - b _0204653C -_02046214: - ldr r1, _020465D8 @ =0x020AFED4 - mov r0, r4 - ldr r1, [r1] - str r4, [r1] - bl FUN_0204323c - mov r0, #0xe - bl FUN_020454e0 - b _0204653C -_02046234: - bl FUN_02043434 - cmp r0, #0 - beq _0204653C - add r1, sp, #0 - mov r0, #0 - bl GetPressedButtons - ldrh r0, [sp] - tst r0, #8 - beq _020462F4 - mov r0, #0 - bl FUN_02017ccc - ldr r1, _020465D8 @ =0x020AFED4 - mov r0, r4 - ldr r1, [r1] - str r4, [r1] - bl FUN_0204323c - ldr r0, _020465D8 @ =0x020AFED4 - ldr r0, [r0] - ldr r0, [r0] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl FUN_02010044 - ldr r2, _020465D8 @ =0x020AFED4 - ldr r1, [r2] - add r1, r1, #0x300 - strh r0, [r1, #0x88] - ldr r0, [r2] - ldr r0, [r0] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl FUN_02010060 - ldr r1, _020465D8 @ =0x020AFED4 - ldr r1, [r1] - str r0, [r1, #0x38c] - bl FUN_020465dc - bl FUN_0204317c - ldr r0, _020465D8 @ =0x020AFED4 - mvn r2, #1 - ldr r1, [r0] - mov r3, #2 - strb r2, [r1, #0x15] - ldr r1, [r0] - mov r2, #0xf - str r3, [r1, #0xc] - ldr r1, [r0] - mov r0, #0xc - str r2, [r1, #8] - bl FUN_020454e0 -_020462F4: - bl FUN_0200fd78 - mov r4, r0 - bl thunk_FUN_02050ce4 - cmp r4, r0 - bge _0204653C - bl FUN_02043398 - ldr r0, _020465D8 @ =0x020AFED4 - mov r3, #0xa - ldr r1, [r0] - mov r2, #5 - str r3, [r1, #0xc] - ldr r1, [r0] - mov r0, #0xd - str r2, [r1, #8] - bl FUN_020454e0 - b _0204653C -_02046334: - mvn r1, #1 - strb r1, [r2, #0x15] - ldr r3, [r0] - ldr r2, [r3, #0xc] - sub r1, r2, #1 - str r1, [r3, #0xc] - cmp r2, #0 - bne _0204653C - ldr r0, [r0] - ldr r0, [r0, #8] - bl FUN_020454e0 - b _0204653C -_02046364: - ldr r1, [r2, #0xc] - sub r1, r1, #1 - str r1, [r2, #0xc] - ldr r0, [r0] - ldr r0, [r0, #0xc] - cmp r0, #1 - bgt _02046394 - bl FUN_0204317c - ldr r0, _020465D8 @ =0x020AFED4 - mvn r1, #1 - ldr r0, [r0] - strb r1, [r0, #0x15] -_02046394: - ldr r0, _020465D8 @ =0x020AFED4 - ldr r1, [r0] - ldr r0, [r1, #0xc] - cmp r0, #0 - bgt _0204653C - ldr r0, [r1, #8] - bl FUN_020454e0 - b _0204653C -_020463B4: - ldrsb r0, [r2, #0x16] - bl GetNormalMenuResult - cmp r0, #6 - addls pc, pc, r0, lsl #2 - b _0204653C -_020463C8: @ jump table - b _0204653C @ case 0 - b _0204645C @ case 1 - b _0204653C @ case 2 - b _0204653C @ case 3 - b _020463E4 @ case 4 - b _02046420 @ case 5 - b _0204645C @ case 6 -_020463E4: - bl FUN_020465dc - bl FUN_0204317c - ldr r0, _020465D8 @ =0x020AFED4 - mvn r2, #1 - ldr r1, [r0] - mov r3, #2 - strb r2, [r1, #0x15] - ldr r1, [r0] - mov r2, #0x10 - str r3, [r1, #0xc] - ldr r1, [r0] - mov r0, #0xc - str r2, [r1, #8] - bl FUN_020454e0 - b _0204653C -_02046420: - bl FUN_020465dc - bl FUN_0204317c - ldr r0, _020465D8 @ =0x020AFED4 - mvn r2, #1 - ldr r1, [r0] - mov r3, #2 - strb r2, [r1, #0x15] - ldr r1, [r0] - mov r2, #0xf - str r3, [r1, #0xc] - ldr r1, [r0] - mov r0, #0xc - str r2, [r1, #8] - bl FUN_020454e0 - b _0204653C -_0204645C: - bl FUN_020465dc - bl FUN_020433c0 - ldr r0, _020465D8 @ =0x020AFED4 - mov r1, #0xa - ldr r0, [r0] - str r1, [r0, #4] - b _0204653C -_02046478: - ldrsb r0, [r2, #0x17] - bl FUN_0202e6e4 - cmp r0, #0 - bne _0204653C - ldr r0, _020465D8 @ =0x020AFED4 - ldr r0, [r0] - ldrsb r0, [r0, #0x17] - bl FUN_0202e6c8 - ldr r0, _020465D8 @ =0x020AFED4 - mvn r2, #1 - ldr r1, [r0] - mov r0, #0xb - strb r2, [r1, #0x17] - bl FUN_020454e0 - b _0204653C -_020464B4: - mov r2, #2 - b _02046540 -_020464BC: - mov r2, #4 - b _02046540 -_020464C4: - mov r2, #3 - b _02046540 -_020464CC: - ldrsb r0, [r2, #0x14] - bl IsDBoxActive - cmp r0, #0 - bne _0204653C - ldr r0, _020465D8 @ =0x020AFED4 - ldr r0, [r0] - ldrsb r0, [r0, #0x14] - bl ShowDBox - ldr r0, _020465D8 @ =0x020AFED4 - mov r2, #0x14 - ldr r1, [r0] - str r2, [r1, #4] - ldr r0, [r0] - ldrsb r0, [r0, #0x14] - bl FUN_0202f2c4 - b _0204653C -_0204650C: - ldrsb r0, [r2, #0x14] - bl IsDBoxActive - cmp r0, #0 - bne _0204653C - ldr r0, _020465D8 @ =0x020AFED4 - ldr r0, [r0] - ldrsb r0, [r0, #0x14] - bl ShowDBox - ldr r0, _020465D8 @ =0x020AFED4 - ldr r0, [r0] - ldr r0, [r0, #8] - bl FUN_020454e0 -_0204653C: - mov r2, #1 -_02046540: - ldr r0, _020465D8 @ =0x020AFED4 - ldr r1, [r0] - str r2, [r1, #0x6c] - ldr r2, [r0] - ldr r1, [r2, #0x6c] - cmp r1, #1 - beq _020465CC - mov r1, #2 - str r1, [r2, #0x18] - ldr r0, [r0] - sub r1, r1, #4 - ldrsb r0, [r0, #0x14] - cmp r0, r1 - beq _020465CC - bl FUN_0202836c - ldr r0, _020465D8 @ =0x020AFED4 - ldr r0, [r0] - ldrsb r0, [r0, #0x14] - bl FUN_0202f2c4 - b _020465CC -_02046590: - mov r1, #3 - str r1, [r2, #0x18] - ldr r0, [r0] - sub r1, r1, #5 - ldrsb r0, [r0, #0x14] - cmp r0, r1 - beq _020465CC - bl FreeDBox - ldr r0, _020465D8 @ =0x020AFED4 - mvn r1, #1 - ldr r0, [r0] - strb r1, [r0, #0x14] - b _020465CC -_020465C4: - ldr r0, [r2, #0x6c] - b _020465D0 -_020465CC: - mov r0, #1 -_020465D0: - add sp, sp, #4 - pop {r3, r4, pc} - .align 2, 0 -_020465D8: .4byte 0x020AFED4 - arm_func_end FUN_02046028 - - arm_func_start FUN_020465dc -FUN_020465dc: @ 0x020465DC - push {r3, lr} - ldr r0, _02046620 @ =0x020AFED4 - mvn r1, #1 - ldr r0, [r0] - ldrsb r0, [r0, #0x16] - cmp r0, r1 - popeq {r3, pc} - bl FUN_0202836c - ldr r0, _02046620 @ =0x020AFED4 - ldr r0, [r0] - ldrsb r0, [r0, #0x16] - bl FreeNormalMenu - ldr r0, _02046620 @ =0x020AFED4 - mvn r1, #1 - ldr r0, [r0] - strb r1, [r0, #0x16] - pop {r3, pc} - .align 2, 0 -_02046620: .4byte 0x020AFED4 - arm_func_end FUN_020465dc - - arm_func_start FUN_02046624 -FUN_02046624: @ 0x02046624 - push {r3, lr} - ldr r1, _02046658 @ =0x020AFED4 - mvn r0, #1 - ldr r1, [r1] - ldrsb r1, [r1, #0x14] - cmp r1, r0 - popne {r3, pc} - mov r0, #0 - bl CreateDBox - ldr r1, _02046658 @ =0x020AFED4 - ldr r1, [r1] - strb r0, [r1, #0x14] - pop {r3, pc} - .align 2, 0 -_02046658: .4byte 0x020AFED4 - arm_func_end FUN_02046624 -_0204665C: - .byte 0x08, 0x40, 0x2D, 0xE9 - .byte 0x2C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x08 - .byte 0xD0, 0x00, 0xD0, 0xE1, 0x89, 0xA8, 0xFF, 0xEB, 0x14, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0xC0, 0xEA, 0xFE, 0xEB, 0x08, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5 - .byte 0x08, 0x80, 0xBD, 0xE8, 0xD8, 0xFE, 0x0A, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0xA0, 0xD0, 0x4D, 0xE2 - .byte 0x00, 0x40, 0xA0, 0xE1, 0xEC, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE3, 0xAF, 0xEA, 0xFE, 0xEB - .byte 0x74, 0x20, 0x9F, 0xE5, 0xEC, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x82, 0xE5, 0xE3, 0xF2, 0xFE, 0xEB - .byte 0x64, 0x00, 0x9F, 0xE5, 0x0E, 0xC0, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x04, 0xE0, 0x80, 0xE2 - .byte 0x0F, 0x00, 0xB4, 0xE8, 0x0F, 0x00, 0xAE, 0xE8, 0x01, 0xC0, 0x5C, 0xE2, 0xFB, 0xFF, 0xFF, 0x1A - .byte 0x03, 0x00, 0x94, 0xE8, 0x03, 0x00, 0x8E, 0xE8, 0x40, 0x10, 0x9F, 0xE5, 0x10, 0x00, 0xA0, 0xE3 - .byte 0xB0, 0x11, 0xCD, 0xE1, 0x14, 0x00, 0x8D, 0xE5, 0x00, 0xC0, 0xA0, 0xE3, 0x00, 0xC0, 0x8D, 0xE5 - .byte 0x2C, 0x00, 0x9F, 0xE5, 0x2C, 0x10, 0x9F, 0xE5, 0x2C, 0x30, 0x9F, 0xE5, 0x08, 0x20, 0x8D, 0xE2 - .byte 0x04, 0xC0, 0x8D, 0xE5, 0xA6, 0xA7, 0xFF, 0xEB, 0x0C, 0x10, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 - .byte 0x00, 0x00, 0xC1, 0xE5, 0xA0, 0xD0, 0x8D, 0xE2, 0x10, 0x80, 0xBD, 0xE8, 0xD8, 0xFE, 0x0A, 0x02 - .byte 0x43, 0x0A, 0x00, 0x00, 0x80, 0xCC, 0x09, 0x02, 0x15, 0x18, 0x00, 0x00, 0x98, 0x67, 0x04, 0x02 - .byte 0x08, 0x40, 0x2D, 0xE9, 0x28, 0x10, 0x9F, 0xE5, 0x28, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 - .byte 0xFE, 0x15, 0xD1, 0xE1, 0x00, 0x00, 0x51, 0xE1, 0x02, 0x00, 0x00, 0xBA, 0x14, 0x00, 0xA0, 0xE3 - .byte 0xFC, 0x44, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x13, 0x00, 0xA0, 0xE3, 0xF9, 0x44, 0xFF, 0xEB - .byte 0x08, 0x80, 0xBD, 0xE8, 0xD8, 0xFE, 0x0A, 0x02, 0x79, 0x02, 0x00, 0x00, 0x0C, 0x00, 0x9F, 0xE5 - .byte 0x0C, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1 - .byte 0xD8, 0xFE, 0x0A, 0x02, 0xC4, 0x08, 0x03, 0x02, 0x0C, 0x10, 0x9F, 0xE5, 0x0C, 0xC0, 0x9F, 0xE5 - .byte 0x00, 0x10, 0x91, 0xE5, 0x04, 0x10, 0x81, 0xE2, 0x1C, 0xFF, 0x2F, 0xE1, 0xD8, 0xFE, 0x0A, 0x02 - .byte 0xDC, 0xC5, 0x00, 0x02, 0x18, 0x40, 0x2D, 0xE9, 0x24, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1 - .byte 0xA6, 0x11, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x05, 0x00, 0x00, 0x0A - .byte 0x00, 0x00, 0x8D, 0xE2, 0x10, 0x01, 0xFF, 0xEB, 0x00, 0x00, 0x8D, 0xE2, 0x04, 0x20, 0xA0, 0xE1 - .byte 0x02, 0x10, 0xA0, 0xE3, 0x28, 0x01, 0xFF, 0xEB, 0x24, 0xD0, 0x8D, 0xE2, 0x18, 0x80, 0xBD, 0xE8 - .byte 0x04, 0xC0, 0x9F, 0xE5, 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0xB4, 0x67, 0x04, 0x02 - .byte 0x90, 0xCC, 0x09, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1, 0x10, 0x00, 0x9F, 0xE5 - .byte 0x57, 0xB8, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x9F, 0x15, 0xB0, 0x40, 0xC0, 0x11 - .byte 0x10, 0x80, 0xBD, 0xE8, 0xA0, 0xCC, 0x09, 0x02, 0x64, 0xAE, 0x2A, 0x02, 0x08, 0x40, 0x2D, 0xE9 - .byte 0xA8, 0x00, 0xA0, 0xE3, 0x08, 0x10, 0xA0, 0xE3, 0x4C, 0xEA, 0xFE, 0xEB, 0x4C, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x81, 0xE5, 0x10, 0x00, 0x80, 0xE2, 0x7A, 0xB8, 0xFF, 0xEB, 0x3C, 0x20, 0x9F, 0xE5 - .byte 0x3C, 0x10, 0x9F, 0xE5, 0x00, 0x30, 0x92, 0xE5, 0x0C, 0x00, 0x83, 0xE5, 0xB0, 0x30, 0xD1, 0xE1 - .byte 0x00, 0x10, 0x92, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0xB8, 0x30, 0xC1, 0xE1, 0x0F, 0xA2, 0xFF, 0xEB - .byte 0x18, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x30, 0x91, 0xE5, 0x00, 0x00, 0xC3, 0xE5 - .byte 0x00, 0x10, 0x91, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x04, 0x20, 0x81, 0xE5, 0x08, 0x80, 0xBD, 0xE8 - .byte 0xDC, 0xFE, 0x0A, 0x02, 0x64, 0xAE, 0x2A, 0x02 - - arm_func_start FUN_02046898 -FUN_02046898: @ 0x02046898 - push {r3, lr} - ldr r0, _020468D0 @ =0x020AFEDC - ldr r0, [r0] - cmp r0, #0 - popeq {r3, pc} - ldrsb r0, [r0] - bl FreeDBox - ldr r0, _020468D0 @ =0x020AFEDC - ldr r0, [r0] - bl MemFree - ldr r0, _020468D0 @ =0x020AFEDC - mov r1, #0 - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_020468D0: .4byte 0x020AFEDC - arm_func_end FUN_02046898 -_020468D4: - .byte 0x08, 0x40, 0x2D, 0xE9, 0xD4, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5 - .byte 0x04, 0x10, 0x92, 0xE5, 0x03, 0x00, 0x51, 0xE3, 0x01, 0xF1, 0x8F, 0x90, 0x2E, 0x00, 0x00, 0xEA - .byte 0x02, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x00, 0xEA, 0x17, 0x00, 0x00, 0xEA, 0x1E, 0x00, 0x00, 0xEA - .byte 0xD0, 0x00, 0xD2, 0xE1, 0xB8, 0x20, 0xD2, 0xE1, 0xA8, 0x10, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3 - .byte 0x27, 0xA2, 0xFF, 0xEB, 0x98, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 - .byte 0x04, 0x10, 0x80, 0xE5, 0x20, 0x00, 0x00, 0xEA, 0xD0, 0x00, 0xD2, 0xE1, 0x13, 0xA2, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x1C, 0x00, 0x00, 0x1A, 0x74, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0xD0, 0x00, 0xD0, 0xE1, 0x7A, 0xA2, 0xFF, 0xEB, 0x64, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x13, 0x00, 0x00, 0xEA, 0xD0, 0x00, 0xD2, 0xE1 - .byte 0x06, 0xA2, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x44, 0x00, 0x9F, 0x05, 0x03, 0x10, 0xA0, 0x03 - .byte 0x00, 0x00, 0x90, 0x05, 0x04, 0x10, 0x80, 0x05, 0x0B, 0x00, 0x00, 0xEA, 0x04, 0x10, 0xA0, 0xE3 - .byte 0x04, 0x10, 0x82, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x0C, 0x00, 0x91, 0xE5, 0x01, 0x0C, 0x10, 0xE3 - .byte 0x03, 0x00, 0x00, 0x0A, 0x98, 0x00, 0x91, 0xE5, 0x94, 0x20, 0x91, 0xE5, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x32, 0xFF, 0x2F, 0xE1, 0x04, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x08, 0x80, 0xBD, 0xE8, 0xDC, 0xFE, 0x0A, 0x02, 0x18, 0x06, 0x00, 0x00 - - arm_func_start FUN_020469bc -FUN_020469bc: @ 0x020469BC - push {r3, lr} - mov r0, #0x2c - mov r1, #8 - bl MemAlloc - ldr r2, _020469E4 @ =0x020AFEE0 - mov r1, #0x2c - str r0, [r2] - bl MemZero - bl FUN_020471ac - pop {r3, pc} - .align 2, 0 -_020469E4: .4byte 0x020AFEE0 - arm_func_end FUN_020469bc - - arm_func_start FUN_020469e8 -FUN_020469e8: @ 0x020469E8 - push {r3, lr} - ldr r0, _02046A1C @ =0x020AFEE0 - ldr r0, [r0] - cmp r0, #0 - popeq {r3, pc} - bl FUN_020471e8 - ldr r0, _02046A1C @ =0x020AFEE0 - ldr r0, [r0] - bl MemFree - ldr r0, _02046A1C @ =0x020AFEE0 - mov r1, #0 - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_02046A1C: .4byte 0x020AFEE0 - arm_func_end FUN_020469e8 - - arm_func_start FUN_02046a20 -FUN_02046a20: @ 0x02046A20 - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x10 - ldr r4, _02046A98 @ =0x020AFEE0 - mov r6, r1 - ldr r4, [r4] - mov r7, r0 - mov r0, r4 - mov r1, #0x2c - mov r5, r2 - mov r8, r3 - bl MemZero - ldr r0, [sp, #0x28] - str r8, [sp] - ldrh r1, [sp, #0x2c] - str r0, [sp, #4] - ldr r0, [sp, #0x30] - str r1, [sp, #8] - mov r1, r7 - mov r2, r6 - mov r3, r5 - str r0, [sp, #0xc] - add r0, r4, #0x10 - bl FUN_02046d50 - mov r0, #1 - str r0, [r4, #0x14] - str r5, [r4, #0x24] - mov r0, #0 - str r0, [r4, #0x28] + bne _022BEE4C + pop {r3, lr} add sp, sp, #0x10 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02046A98: .4byte 0x020AFEE0 - arm_func_end FUN_02046a20 - - arm_func_start FUN_02046a9c -FUN_02046a9c: @ 0x02046A9C - push {r4, r5, r6, r7, lr} - sub sp, sp, #0xa4 - mov r7, r0 - mov r6, r1 - add r0, sp, #0xc - mov r1, #0x98 - mov r5, r2 - mov r4, r3 - bl MemZero - ldrsb r0, [sp, #0xb8] - add r3, sp, #0xc - mov r1, r6 - cmp r0, #0 - addge r0, r5, r0, lsl #3 - ldrge r0, [r0, #4] - mov ip, #0 - movlt r0, #0 - str r0, [sp, #0xc] - str r5, [sp] - str r4, [sp, #4] - mov r0, r7 - mov r2, #0x33 - str ip, [sp, #8] - bl FUN_02046a20 - add sp, sp, #0xa4 - pop {r4, r5, r6, r7, pc} - arm_func_end FUN_02046a9c - - arm_func_start FUN_02046b04 -FUN_02046b04: @ 0x02046B04 - push {r3, r4, r5, lr} - ldr r0, _02046B9C @ =0x020AFEE0 - ldr r5, [r0] - ldr r0, [r5, #0x14] - cmp r0, #0 - beq _02046B94 - cmp r0, #1 - beq _02046B30 - cmp r0, #9 - beq _02046B64 - b _02046B94 -_02046B30: - ldr r0, [r5, #0x10] - bl FUN_02046f40 - ldr r0, [r5, #0x10] - bl FUN_02047030 - mov r4, r0 - ldr r0, [r5, #0x10] - bl FUN_02047038 - mvn r1, #0 - str r0, [r5, #0x28] - cmp r4, r1 - movne r0, #9 - strne r0, [r5, #0x14] - b _02046B94 -_02046B64: - ldr r0, [r5, #0x10] - bl FUN_02047030 - str r0, [r5, #0x20] - ldr r0, [r5, #0x24] - tst r0, #0x400000 - bne _02046B8C - add r0, r5, #0x10 - bl FUN_02047040 - mov r0, #0 - str r0, [r5, #0x14] -_02046B8C: - ldr r0, [r5, #0x20] - pop {r3, r4, r5, pc} -_02046B94: - mvn r0, #0 - pop {r3, r4, r5, pc} - .align 2, 0 -_02046B9C: .4byte 0x020AFEE0 - arm_func_end FUN_02046b04 - - arm_func_start FUN_02046ba0 -FUN_02046ba0: @ 0x02046BA0 - ldr r0, _02046BB0 @ =0x020AFEE0 - ldr r0, [r0] - ldr r0, [r0, #0x28] bx lr .align 2, 0 -_02046BB0: .4byte 0x020AFEE0 - arm_func_end FUN_02046ba0 +_022BEE74: .4byte 0x0231E340 + arm_func_end ov00_022BEDE4 - arm_func_start FUN_02046bb4 -FUN_02046bb4: @ 0x02046BB4 - push {r4, lr} - ldr r0, _02046BE4 @ =0x020AFEE0 - ldr r4, [r0] - add r0, r4, #0x10 - bl FUN_02047040 - mov r1, #0 - ldr r0, _02046BE4 @ =0x020AFEE0 - str r1, [r4, #0x14] - ldr r0, [r0] - sub r1, r1, #2 - str r1, [r0, #0x20] - pop {r4, pc} - .align 2, 0 -_02046BE4: .4byte 0x020AFEE0 - arm_func_end FUN_02046bb4 - - arm_func_start FUN_02046be8 -FUN_02046be8: @ 0x02046BE8 - push {r3, r4, r5, r6, r7, lr} - ldr r3, _02046C2C @ =0x020AFEE0 - mov r6, r1 - ldr r4, [r3] - mov r7, r0 - mov r5, r2 - mov r0, r4 - mov r1, #0x2c - bl MemZero - mov r0, r7 - mov r1, r6 - mov r2, r5 - bl FUN_020472a4 - mov r0, #1 - str r0, [r4, #0x14] - strh r7, [r4, #0x18] - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02046C2C: .4byte 0x020AFEE0 - arm_func_end FUN_02046be8 - - arm_func_start FUN_02046c30 -FUN_02046c30: @ 0x02046C30 - push {r3, r4, r5, r6, r7, lr} - ldr r3, _02046C74 @ =0x020AFEE0 - mov r6, r1 - ldr r4, [r3] - mov r7, r0 - mov r5, r2 - mov r0, r4 - mov r1, #0x2c - bl MemZero - mov r0, r7 - mov r1, r6 - mov r2, r5 - bl FUN_02047358 - mov r0, #1 - str r0, [r4, #0x14] - strh r7, [r4, #0x18] - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02046C74: .4byte 0x020AFEE0 - arm_func_end FUN_02046c30 - - arm_func_start FUN_02046c78 -FUN_02046c78: @ 0x02046C78 - push {r4, lr} - ldr r0, _02046D1C @ =0x020AFEE0 - ldr r4, [r0] - ldr r0, [r4, #0x14] - cmp r0, #9 - bgt _02046CB4 - bge _02046CF0 - cmp r0, #1 - bgt _02046D14 - cmp r0, #0 - blt _02046D14 - beq _02046D14 - cmp r0, #1 - beq _02046CC0 - b _02046D14 -_02046CB4: - cmp r0, #0xa - beq _02046D00 - b _02046D14 -_02046CC0: - bl FUN_020473fc - cmp r0, #2 - bne _02046D14 - ldrh r0, [r4, #0x18] - tst r0, #0x400 - movne r0, #0xa - strne r0, [r4, #0x14] - movne r0, #0x3c - strne r0, [r4, #0x1c] - moveq r0, #9 - streq r0, [r4, #0x14] - b _02046D14 -_02046CF0: - mov r0, #0 - str r0, [r4, #0x14] - mov r0, #1 - pop {r4, pc} -_02046D00: - ldr r0, [r4, #0x1c] - subs r0, r0, #1 - str r0, [r4, #0x1c] - movmi r0, #9 - strmi r0, [r4, #0x14] -_02046D14: - mov r0, #0 - pop {r4, pc} - .align 2, 0 -_02046D1C: .4byte 0x020AFEE0 - arm_func_end FUN_02046c78 - - arm_func_start thunk_FUN_020473a4 -thunk_FUN_020473a4: @ 0x02046D20 - ldr ip, _02046D28 @ =FUN_020473a4 - bx ip - .align 2, 0 -_02046D28: .4byte FUN_020473a4 - arm_func_end thunk_FUN_020473a4 - - arm_func_start FUN_02046d2c -FUN_02046d2c: @ 0x02046D2C - ldr r1, _02046D40 @ =0x020AFEE0 - ldr r2, [r1] - str r0, [r1] - mov r0, r2 - bx lr - .align 2, 0 -_02046D40: .4byte 0x020AFEE0 - arm_func_end FUN_02046d2c -_02046D44: - .byte 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0xB8, 0x74, 0x04, 0x02 - - arm_func_start FUN_02046d50 -FUN_02046d50: @ 0x02046D50 - push {r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #0x410 - mov r4, r0 - mov r5, r1 - mov r0, #0xcc - mov r1, #8 - mov sb, r2 - mov r8, r3 - ldr r7, [sp, #0x434] - bl MemAlloc - mov r1, #0xcc - mov r6, r0 - str r0, [r4] - bl MemZero - cmp r5, #0 - bne _02046E48 - mov r5, #0 - sub r0, r5, #1 - str r5, [sp] - strb r0, [sp, #9] - cmp r7, #0 - beq _02046E54 - mov r4, r5 - add sl, sp, #0x10 - b _02046DE0 -_02046DB4: - lsl r0, r4, #3 - ldrh r1, [r7, r0] - cmp r1, #0 - beq _02046DE8 - mov r0, sl - bl GetStringFromFileVeneer - mov r0, sl - bl FUN_020265a8 - cmp r0, r5 - movgt r5, r0 - add r4, r4, #1 -_02046DE0: - cmp r4, #0x64 - blt _02046DB4 -_02046DE8: - mov r0, #0xe - mul r1, r4, r0 - add r3, r5, #7 - asr r0, r3, #2 - add r2, r1, #7 - add r0, r3, r0, lsr #29 - asr r0, r0, #3 - add r3, r0, #2 - asr r1, r2, #2 - add r0, r2, r1, lsr #29 - asr r5, r0, #3 - rsb r4, r3, #0x1e - rsb r2, r5, #0xf - mov r1, #0 - strb r4, [sp, #4] - add r0, sp, #0 - strb r5, [sp, #7] - add r4, r6, #4 - strb r2, [sp, #5] - strb r3, [sp, #6] - str r1, [sp, #0xc] - ldm r0, {r0, r1, r2, r3} - stm r4, {r0, r1, r2, r3} - b _02046E54 -_02046E48: - add r4, r6, #4 - ldm r5, {r0, r1, r2, r3} - stm r4, {r0, r1, r2, r3} -_02046E54: - add r0, sp, #0x420 - ldrh r1, [r0, #0x18] - ldr ip, [sp, #0x430] - ldr r0, [sp, #0x43c] - strh r1, [r6, #0x20] - strh sb, [r6, #0x22] - str r0, [r6, #0x24] - str r7, [r6, #0x1c] - mvn r0, #0 - str r0, [r6, #0x14] - str r8, [r6, #0x28] - mov r0, #0 - str r0, [r6, #0x18] - cmp ip, #0 - strbeq r0, [r6, #0xc4] - beq _02046EBC - add r5, r6, #0x2c - mov r4, #9 -_02046E9C: - ldm ip!, {r0, r1, r2, r3} - stm r5!, {r0, r1, r2, r3} - subs r4, r4, #1 - bne _02046E9C - ldm ip, {r0, r1} - stm r5, {r0, r1} - mov r0, #1 - strb r0, [r6, #0xc4] -_02046EBC: - mvn r0, #1 - strb r0, [r6] - ldrh r0, [r6, #0x20] - cmp r0, #0 - moveq r0, #0 - beq _02046EF8 - bl FUN_020473fc - cmp r0, #1 - bne _02046EE4 - bl FUN_02047220 -_02046EE4: - ldrh r0, [r6, #0x22] - ldrh r1, [r6, #0x20] - ldr r2, [r6, #0x24] - bl FUN_02047244 - mov r0, #1 -_02046EF8: - cmp r0, #0 - bne _02046F2C - ldrb r0, [r6, #0xc4] - ldr r1, [r6, #0x28] - ldr r3, [r6, #0x1c] - cmp r0, #0 - addne r2, r6, #0x2c - moveq r2, #0 - add r0, r6, #4 - bl FUN_0202a5cc - strb r0, [r6] - mov r0, #1 - b _02046F30 -_02046F2C: - mov r0, #6 -_02046F30: - str r0, [r6, #0xc8] - mov r0, #1 - add sp, sp, #0x410 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_end FUN_02046d50 - - arm_func_start FUN_02046f40 -FUN_02046f40: @ 0x02046F40 - push {r3, r4, r5, lr} - mov r4, r0 - ldr r0, [r4, #0xc8] - cmp r0, #9 - addls pc, pc, r0, lsl #2 - pop {r3, r4, r5, pc} -_02046F58: @ jump table - pop {r3, r4, r5, pc} @ case 0 - b _02046FBC @ case 1 - pop {r3, r4, r5, pc} @ case 2 - pop {r3, r4, r5, pc} @ case 3 - pop {r3, r4, r5, pc} @ case 4 - pop {r3, r4, r5, pc} @ case 5 - b _02046F80 @ case 6 - pop {r3, r4, r5, pc} @ case 7 - pop {r3, r4, r5, pc} @ case 8 - b _02047024 @ case 9 -_02046F80: - bl FUN_020473fc - cmp r0, #2 - popne {r3, r4, r5, pc} - ldrb r0, [r4, #0xc4] - ldr r1, [r4, #0x28] - ldr r3, [r4, #0x1c] - cmp r0, #0 - addne r2, r4, #0x2c - moveq r2, #0 - add r0, r4, #4 - bl FUN_0202a5cc - strb r0, [r4] - mov r0, #1 - str r0, [r4, #0xc8] - pop {r3, r4, r5, pc} -_02046FBC: - ldrsb r0, [r4] - bl FUN_020282f4 - mov r5, r0 - ldrsb r0, [r4] - bl FUN_0202ab80 - str r0, [r4, #0x18] - ldrsb r0, [r4] - bl FUN_0202ab40 - cmp r0, #0 - popne {r3, r4, r5, pc} - mvn r1, #3 - cmp r5, r1 - bne _02047008 - ldrsb r0, [r4] - bl FUN_0202abb0 - str r0, [r4, #0x14] - mov r0, #9 - str r0, [r4, #0xc8] - pop {r3, r4, r5, pc} -_02047008: - sub r0, r1, #1 - cmp r5, r0 - addeq r0, r1, #2 - streq r0, [r4, #0x14] - moveq r0, #9 - streq r0, [r4, #0xc8] - pop {r3, r4, r5, pc} -_02047024: - mov r0, #0xa - str r0, [r4, #0xc8] - pop {r3, r4, r5, pc} - arm_func_end FUN_02046f40 - - arm_func_start FUN_02047030 -FUN_02047030: @ 0x02047030 - ldr r0, [r0, #0x14] - bx lr - arm_func_end FUN_02047030 - - arm_func_start FUN_02047038 -FUN_02047038: @ 0x02047038 - ldr r0, [r0, #0x18] - bx lr - arm_func_end FUN_02047038 - - arm_func_start FUN_02047040 -FUN_02047040: @ 0x02047040 - push {r3, r4, r5, lr} - mov r5, r0 - ldr r4, [r5] - cmp r4, #0 - popeq {r3, r4, r5, pc} - ldrsb r0, [r4] - mvn r1, #1 - cmp r0, r1 - beq _02047068 - bl FUN_0202aabc -_02047068: - mov r0, r4 - bl MemFree - mov r0, #0 - str r0, [r5] - pop {r3, r4, r5, pc} - arm_func_end FUN_02047040 - - arm_func_start FUN_0204707c -FUN_0204707c: @ 0x0204707C - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r1 - mov r0, #0xc - mov r1, #8 - mov r5, r2 - bl MemAlloc - mov r1, #0xc - mov r4, r0 - str r0, [r7] - bl MemZero - mov r0, r6 - mov r1, r5 - bl FUN_0202f8c4 - strb r0, [r4] - mov r0, #3 - str r0, [r4, #8] - sub r0, r0, #4 - str r0, [r4, #4] - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0204707c - - arm_func_start FUN_020470d0 -FUN_020470d0: @ 0x020470D0 - push {r4, lr} - mov r4, r0 - ldr r0, [r4, #8] - cmp r0, #0 - beq _020470FC - cmp r0, #3 - beq _02047108 - cmp r0, #4 - moveq r0, #8 - streq r0, [r4, #8] - pop {r4, pc} -_020470FC: - mov r0, #3 - str r0, [r4, #8] - pop {r4, pc} -_02047108: - ldrsb r0, [r4] - bl FUN_020282f4 - mvn r2, #3 - cmp r0, r2 - addeq r0, r2, #1 - streq r0, [r4, #4] - moveq r0, #4 - streq r0, [r4, #8] - popeq {r4, pc} - sub r1, r2, #1 - cmp r0, r1 - addeq r0, r2, #2 - streq r0, [r4, #4] - moveq r0, #4 - streq r0, [r4, #8] - pop {r4, pc} - arm_func_end FUN_020470d0 - - arm_func_start FUN_02047148 -FUN_02047148: @ 0x02047148 - ldr r0, [r0, #4] - bx lr - arm_func_end FUN_02047148 - - arm_func_start FUN_02047150 -FUN_02047150: @ 0x02047150 - push {r3, r4, r5, lr} - mov r5, r0 - ldr r4, [r5] - cmp r4, #0 - popeq {r3, r4, r5, pc} - ldrsb r0, [r4] - bl FUN_0202812c - ldrsb r0, [r4] - bl FUN_0202f918 - mov r0, r4 - bl MemFree - mov r0, #0 - str r0, [r5] - pop {r3, r4, r5, pc} - arm_func_end FUN_02047150 - - arm_func_start FUN_02047188 -FUN_02047188: @ 0x02047188 - push {r4, lr} - ldr r4, [r0] - cmp r4, #0 - popeq {r4, pc} - ldrsb r0, [r4] - bl FUN_02027b1c - ldrsb r0, [r4] - bl FUN_0202f9b8 - pop {r4, pc} - arm_func_end FUN_02047188 - - arm_func_start FUN_020471ac -FUN_020471ac: @ 0x020471AC - push {r3, lr} - mov r0, #0x70 - mov r1, #8 - bl MemAlloc - ldr r2, _020471E4 @ =0x020AFEE4 - mov r1, #0x70 - str r0, [r2] - bl MemZero - ldr r0, _020471E4 @ =0x020AFEE4 - mvn r2, #1 - ldr r1, [r0] - mov r0, #1 - strb r2, [r1] - pop {r3, pc} - .align 2, 0 -_020471E4: .4byte 0x020AFEE4 - arm_func_end FUN_020471ac - - arm_func_start FUN_020471e8 -FUN_020471e8: @ 0x020471E8 - push {r3, lr} - ldr r0, _0204721C @ =0x020AFEE4 - ldr r0, [r0] - cmp r0, #0 - popeq {r3, pc} - bl FUN_020473a4 - ldr r0, _0204721C @ =0x020AFEE4 - ldr r0, [r0] - bl MemFree - ldr r0, _0204721C @ =0x020AFEE4 - mov r1, #0 - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_0204721C: .4byte 0x020AFEE4 - arm_func_end FUN_020471e8 - - arm_func_start FUN_02047220 -FUN_02047220: @ 0x02047220 - push {r3, lr} - mov r0, #0 - bl CreateDBox - ldr r1, _02047240 @ =0x020AFEE4 - ldr r1, [r1] - strb r0, [r1] - mov r0, #1 - pop {r3, pc} - .align 2, 0 -_02047240: .4byte 0x020AFEE4 - arm_func_end FUN_02047220 - - arm_func_start FUN_02047244 -FUN_02047244: @ 0x02047244 - push {r4, lr} - ldr r3, _020472A0 @ =0x020AFEE4 - mov r4, r2 - ldr r2, [r3] - strh r1, [r2, #0x14] - ldr r1, [r3] - strh r0, [r1, #0x68] - ldr r0, [r3] - ldrsb r0, [r0] - bl FUN_020288dc - ldr r0, _020472A0 @ =0x020AFEE4 - ldr r0, [r0] - ldrsb r0, [r0] - bl ShowDBox - ldr r0, _020472A0 @ =0x020AFEE4 - mov r3, r4 - ldr r2, [r0] - ldrsb r0, [r2] - ldrh r1, [r2, #0x68] - ldrh r2, [r2, #0x14] - bl ShowMessageInDBox - mov r0, #1 - pop {r4, pc} - .align 2, 0 -_020472A0: .4byte 0x020AFEE4 - arm_func_end FUN_02047244 - - arm_func_start FUN_020472a4 -FUN_020472a4: @ 0x020472A4 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl FUN_020473fc - cmp r0, #1 - bne _020472D4 - mov r0, #0 - bl CreateDBox - ldr r1, _020472EC @ =0x020AFEE4 - ldr r1, [r1] - strb r0, [r1] -_020472D4: - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_02047244 - mov r0, #1 - pop {r4, r5, r6, pc} - .align 2, 0 -_020472EC: .4byte 0x020AFEE4 - arm_func_end FUN_020472a4 - - arm_func_start FUN_020472f0 -FUN_020472f0: @ 0x020472F0 - push {r3, r4, r5, lr} - ldr r3, _02047354 @ =0x020AFEE4 - mov ip, #0 - ldr r4, [r3] - mov r5, r1 - strh ip, [r4, #0x14] - ldr r1, [r3] - mov r4, r2 - strh r0, [r1, #0x68] - ldr r0, [r3] - ldrsb r0, [r0] - bl FUN_020288dc - ldr r0, _02047354 @ =0x020AFEE4 - ldr r0, [r0] - ldrsb r0, [r0] - bl ShowDBox - ldr r0, _02047354 @ =0x020AFEE4 - mov r2, r5 - ldr r1, [r0] - mov r3, r4 - ldrsb r0, [r1] - ldrh r1, [r1, #0x68] - bl FUN_0202f23c - mov r0, #1 - pop {r3, r4, r5, pc} - .align 2, 0 -_02047354: .4byte 0x020AFEE4 - arm_func_end FUN_020472f0 - - arm_func_start FUN_02047358 -FUN_02047358: @ 0x02047358 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl FUN_020473fc - cmp r0, #1 - bne _02047388 - mov r0, #0 - bl CreateDBox - ldr r1, _020473A0 @ =0x020AFEE4 - ldr r1, [r1] - strb r0, [r1] -_02047388: - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_020472f0 - mov r0, #1 - pop {r4, r5, r6, pc} - .align 2, 0 -_020473A0: .4byte 0x020AFEE4 - arm_func_end FUN_02047358 - - arm_func_start FUN_020473a4 -FUN_020473a4: @ 0x020473A4 - push {r3, lr} - ldr r0, _020473F8 @ =0x020AFEE4 - mvn r1, #1 - ldr r0, [r0] - ldrsb r0, [r0] - cmp r0, r1 - popeq {r3, pc} - bl FUN_0202836c - ldr r0, _020473F8 @ =0x020AFEE4 - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_0202f2c4 - ldr r0, _020473F8 @ =0x020AFEE4 - ldr r0, [r0] - ldrsb r0, [r0] - bl FreeDBox - ldr r0, _020473F8 @ =0x020AFEE4 - mvn r1, #1 - ldr r0, [r0] - strb r1, [r0] - pop {r3, pc} - .align 2, 0 -_020473F8: .4byte 0x020AFEE4 - arm_func_end FUN_020473a4 - - arm_func_start FUN_020473fc -FUN_020473fc: @ 0x020473FC - push {r4, lr} - ldr r0, _0204749C @ =0x020AFEE4 - mov r4, #0 - ldr r0, [r0] - sub r1, r4, #2 - ldrsb r0, [r0] - cmp r0, r1 - moveq r0, #1 - popeq {r4, pc} - bl IsDBoxActive - cmp r0, #0 - movne r0, #4 - bne _02047440 - ldr r0, _0204749C @ =0x020AFEE4 - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_0202f16c -_02047440: - cmp r0, #0xa - addls pc, pc, r0, lsl #2 - b _02047494 -_0204744C: @ jump table - b _02047494 @ case 0 - b _02047490 @ case 1 - b _02047494 @ case 2 - b _02047494 @ case 3 - b _02047488 @ case 4 - b _02047494 @ case 5 - b _02047494 @ case 6 - b _02047494 @ case 7 - b _02047478 @ case 8 - b _02047478 @ case 9 - b _02047480 @ case 10 -_02047478: - mov r4, #4 - b _02047494 -_02047480: - mov r4, #5 - b _02047494 -_02047488: - mov r4, #3 - b _02047494 -_02047490: - mov r4, #2 -_02047494: - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_0204749C: .4byte 0x020AFEE4 - arm_func_end FUN_020473fc - - arm_func_start FUN_020474a0 -FUN_020474a0: @ 0x020474A0 - ldr r1, _020474B4 @ =0x020AFEE4 - ldr r2, [r1] - str r0, [r1] - mov r0, r2 - bx lr - .align 2, 0 -_020474B4: .4byte 0x020AFEE4 - arm_func_end FUN_020474a0 -_020474B8: - .byte 0x18, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x92, 0xE5, 0x10, 0xC0, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE1, 0xD0, 0x00, 0xD0, 0xE1 - .byte 0x03, 0x10, 0xA0, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1, 0xE4, 0xFE, 0x0A, 0x02, 0x4C, 0xF4, 0x02, 0x02 - .byte 0x08, 0x40, 0x2D, 0xE9, 0x88, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x00, 0x00, 0x52, 0xE3 - .byte 0x1D, 0x00, 0x00, 0x0A, 0x10, 0x10, 0x92, 0xE5, 0x02, 0x00, 0x51, 0xE3, 0x07, 0x00, 0x00, 0xCA - .byte 0x00, 0x00, 0x51, 0xE3, 0x18, 0x00, 0x00, 0xBA, 0x06, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x51, 0xE3 - .byte 0x07, 0x00, 0x00, 0x0A, 0x02, 0x00, 0x51, 0xE3, 0x0D, 0x00, 0x00, 0x0A, 0x12, 0x00, 0x00, 0xEA - .byte 0xFF, 0x00, 0x51, 0xE3, 0x10, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x81, 0xE2, 0x10, 0x00, 0x82, 0xE5 - .byte 0x0D, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3, 0xC0, 0x01, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x2C, 0x00, 0x9F, 0x15, 0x02, 0x10, 0xA0, 0x13, 0x00, 0x00, 0x90, 0x15, 0x10, 0x10, 0x80, 0x15 - .byte 0x05, 0x00, 0x00, 0xEA, 0x01, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x80, 0xE5, 0xFF, 0x00, 0xA0, 0xE3 - .byte 0x10, 0x00, 0x82, 0xE5, 0x04, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x08, 0x80, 0xBD, 0xE8, 0x68, 0xAE, 0x2A, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x2C, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x08, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x57, 0x02, 0x00, 0xEB, 0x14, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xF9, 0xE6, 0xFE, 0xEB - .byte 0x08, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8 - .byte 0x68, 0xAE, 0x2A, 0x02, 0x78, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x60, 0xA0, 0xE1 - .byte 0x90, 0x30, 0x9F, 0xE5, 0x00, 0xC0, 0xA0, 0xE3, 0x8C, 0x00, 0x9F, 0xE5, 0x01, 0x50, 0xA0, 0xE1 - .byte 0x02, 0x40, 0xA0, 0xE1, 0x04, 0xC0, 0x83, 0xE5, 0xC1, 0xB4, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x1A, 0x00, 0x00, 0x0A, 0x14, 0x00, 0xA0, 0xE3, 0x08, 0x10, 0xA0, 0xE3, 0xDF, 0xE6, 0xFE, 0xEB - .byte 0x60, 0x20, 0x9F, 0xE5, 0x14, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x82, 0xE5, 0x13, 0xEF, 0xFE, 0xEB - .byte 0x50, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x82, 0xE5, 0x00, 0x30, 0x92, 0xE5 - .byte 0x05, 0x00, 0xA0, 0xE1, 0x04, 0x60, 0x83, 0xE5, 0x00, 0x30, 0x92, 0xE5, 0xBA, 0x10, 0xC3, 0xE1 - .byte 0x00, 0x20, 0x92, 0xE5, 0xBC, 0x50, 0xC2, 0xE1, 0x4C, 0x00, 0x00, 0xEB, 0x24, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x50, 0x90, 0xE5, 0x04, 0x10, 0xA0, 0xE1, 0x00, 0x20, 0x8D, 0xE5 - .byte 0xFC, 0x30, 0xD5, 0xE1, 0x04, 0x00, 0x95, 0xE5, 0x0A, 0x20, 0x85, 0xE2, 0x39, 0x02, 0x00, 0xEB - .byte 0x04, 0xD0, 0x8D, 0xE2, 0x78, 0x80, 0xBD, 0xE8, 0x68, 0xAE, 0x2A, 0x02, 0xB0, 0xCC, 0x09, 0x02 - .byte 0x04, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x68, 0xAE, 0x2A, 0x02 - - arm_func_start FUN_02047670 -FUN_02047670: @ 0x02047670 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r0, #0x60 - mov r1, #8 - bl MemAlloc - ldr r2, _020476E8 @ =0x020AFEE8 - mov r1, #0x60 - str r0, [r2] - bl MemZero - ldr r0, _020476E8 @ =0x020AFEE8 - ldr r0, [r0] - bl InitPreprocessorArgs - ldr r1, _020476E8 @ =0x020AFEE8 - mov r0, r4 - ldr r2, [r1] - mov r3, #0 - mov r1, #1 - str r3, [r2, #0x4c] - bl FUN_02047760 - ldr r1, _020476E8 @ =0x020AFEE8 - mov r3, #0 - ldr r2, [r1] - mov r0, #1 - strh r3, [r2, #0x58] - ldr r2, [r1] - strh r4, [r2, #0x56] - ldr r1, [r1] - str r5, [r1, #0x50] - pop {r3, r4, r5, pc} - .align 2, 0 -_020476E8: .4byte 0x020AFEE8 - arm_func_end FUN_02047670 - - arm_func_start FUN_020476ec -FUN_020476ec: @ 0x020476EC - push {r3, lr} - ldr r1, _02047718 @ =0x020AFEE8 - mov r2, #1 - ldr ip, [r1] - mov r1, r0 - str r2, [sp] - ldrsh r3, [ip, #0x56] - ldr r0, [ip, #0x50] - add r2, ip, #0x58 - bl FUN_02047f38 - pop {r3, pc} - .align 2, 0 -_02047718: .4byte 0x020AFEE8 - arm_func_end FUN_020476ec - - arm_func_start FUN_0204771c -FUN_0204771c: @ 0x0204771C - push {r3, lr} - ldr r0, _0204775C @ =0x020AFEE8 - ldr r0, [r0] - cmp r0, #0 - moveq r0, #0 - popeq {r3, pc} - mov r0, #1 - bl FUN_02047ef4 - ldr r0, _0204775C @ =0x020AFEE8 - ldr r0, [r0] - bl MemFree - ldr r0, _0204775C @ =0x020AFEE8 - mov r1, #0 - str r1, [r0] - mov r0, #1 - pop {r3, pc} - .align 2, 0 -_0204775C: .4byte 0x020AFEE8 - arm_func_end FUN_0204771c - - arm_func_start FUN_02047760 -FUN_02047760: @ 0x02047760 - push {r4, r5, r6, lr} - sub sp, sp, #0x18 - ldr r2, _02047920 @ =0x020AFEEC - mov r5, r1 - ldr r1, [r2, r5, lsl #2] - mov r6, r0 - cmp r1, #0 - movne r0, #0 - bne _02047918 - ldr r0, _02047924 @ =0x00002020 - mov r1, #8 - bl MemAlloc - ldr r1, _02047924 @ =0x00002020 - mov r4, r0 - bl MemZero - cmp r5, #0 - bne _02047850 - ldr r0, _02047928 @ =0x0209CCC0 - add lr, sp, #8 - ldm r0, {r0, r1, r2, r3} - stm lr, {r0, r1, r2, r3} - mov ip, #0 - add r2, r4, #0x384 - str ip, [sp, #8] - str r4, [sp, #0x14] - strb ip, [sp, #0x10] - add r0, r4, #0x1000 - mov r3, #0x10 - str r3, [r0, #0xf90] - ldr r1, _0204792C @ =0x00000A44 - add r0, r4, #0x1f00 - strh r1, [r0, #0x8c] - str ip, [sp] - ldr r1, _02047930 @ =0x0040180A - ldr r3, _02047934 @ =0x02047AB4 - mov r0, lr - add r2, r2, #0x1c00 - str ip, [sp, #4] - bl FUN_020305b4 - add r1, r4, #0x100 - strb r0, [r4, #0x120] - ldrsb r0, [r1, #0x20] - mov r1, #1 - bl FUN_0203077c - add r0, r4, #0x100 - ldrsb r0, [r0, #0x20] - mov r1, #1 - bl FUN_02030aac - add r0, r4, #0x1f00 - mov r1, #0x14 - strh r1, [r0, #0x80] - add r0, r4, #0x100 - ldrsb r0, [r0, #0x20] - mov r1, #0x20000000 - bl FUN_02030a90 - add r0, r4, #0x100 - ldrsb r0, [r0, #0x20] - mov r1, #0x40000000 - bl FUN_02030a74 - b _020478A0 -_02047850: - ldr r0, _02047938 @ =0x0209CCD0 - add ip, sp, #8 - ldm r0, {r0, r1, r2, r3} - stm ip, {r0, r1, r2, r3} - mov r1, #0 - mov r0, #1 - add r2, r4, #0x384 - strb r0, [sp, #0x10] - str r1, [sp, #8] - str r4, [sp, #0x14] - str r1, [sp] - ldr r3, _02047934 @ =0x02047AB4 - mov r0, ip - add r2, r2, #0x1c00 - str r1, [sp, #4] - bl FUN_020305b4 - strb r0, [r4, #0x120] - add r0, r4, #0x1f00 - mov r1, #8 - strh r1, [r0, #0x80] -_020478A0: - add r0, r4, #0x1000 - strb r5, [r0, #0xf7c] - add r0, r4, #0x100 - ldrsb r1, [r0, #0x20] - mov r0, r4 - bl FUN_02025e84 - mov ip, #0 - str ip, [r4, #0x11c] - add r2, r4, #0x1f00 - strh r6, [r2, #0x72] - strb ip, [r4, #0x128] - ldrb r1, [sp, #0xe] - mov r3, #0x3c - add r0, r4, #0x2000 - lsl r1, r1, #3 - strh r1, [r2, #0x78] - strb ip, [r0, #0x1c] - add r0, r4, #0x1000 - mov r1, #0x80 - str r1, [r0, #0xf6c] - add r0, r4, #0x12c - add r1, r3, #0x1e00 - strh r3, [r2, #0x68] - bl MemZero - add r0, r4, #0x1000 - mov r2, #0 - ldr r1, _02047920 @ =0x020AFEEC - strb r2, [r0, #0xf82] - str r4, [r1, r5, lsl #2] - mov r0, #1 -_02047918: - add sp, sp, #0x18 - pop {r4, r5, r6, pc} - .align 2, 0 -_02047920: .4byte 0x020AFEEC -_02047924: .4byte 0x00002020 -_02047928: .4byte 0x0209CCC0 -_0204792C: .4byte 0x00000A44 -_02047930: .4byte 0x0040180A -_02047934: .4byte 0x02047AB4 -_02047938: .4byte 0x0209CCD0 - arm_func_end FUN_02047760 - - arm_func_start FUN_0204793c -FUN_0204793c: @ 0x0204793C - ldr r1, _0204795C @ =0x020AFEEC - mov r2, #0 - ldr r3, [r1, r0, lsl #2] - mov r1, #1 - add r0, r3, #0x1f00 - strh r2, [r0, #0x70] - strb r1, [r3, #0x128] - bx lr - .align 2, 0 -_0204795C: .4byte 0x020AFEEC - arm_func_end FUN_0204793c - - arm_func_start FUN_02047960 -FUN_02047960: @ 0x02047960 - push {r3, r4, r5, lr} - ldr r1, _02047A0C @ =0x020AFEEC - mov r5, r0 - ldr r4, [r1, r5, lsl #2] - add r0, r4, #0x1f00 - ldrsh r1, [r0, #0x70] - cmp r1, #0 - addle r0, r4, #0x2000 - movle r1, #1 - strble r1, [r0, #0x1c] - movle r2, #0 - ble _020479B0 - ldrsh r0, [r0, #0x72] - sub r0, r1, r0 - lsl r0, r0, #0x10 - asrs r2, r0, #0x10 - addmi r0, r4, #0x2000 - movmi r1, #1 - strbmi r1, [r0, #0x1c] - movmi r2, #0 -_020479B0: - add r0, r4, #0x1f00 - strh r2, [r0, #0x74] - mov r1, #0 - strb r1, [r4, #0x128] - strh r2, [r0, #0x7e] - add r0, r4, #0x100 - ldrsb r0, [r0, #0x20] - bl FUN_0203083c - cmp r5, #0 - popne {r3, r4, r5, pc} - add r0, r4, #0x2000 - ldrb r0, [r0, #0x1c] - cmp r0, #0 - popeq {r3, r4, r5, pc} - add r0, r4, #0x100 - ldrsb r0, [r0, #0x20] - mov r1, #0x20000000 - bl FUN_02030a74 - add r0, r4, #0x100 - ldrsb r0, [r0, #0x20] - mov r1, #0x40000000 - bl FUN_02030a74 - pop {r3, r4, r5, pc} - .align 2, 0 -_02047A0C: .4byte 0x020AFEEC - arm_func_end FUN_02047960 - - arm_func_start FUN_02047a10 -FUN_02047a10: @ 0x02047A10 - push {r3, r4, r5, r6, lr} - sub sp, sp, #4 - ldr r4, _02047AB0 @ =0x020AFEEC - mov r6, r0 - ldr r4, [r4, r3, lsl #2] - mov r5, r2 - ldrb r0, [r4, #0x128] - cmp r0, #0 - beq _02047AA8 - add r0, r4, #0x1f00 - ldrsh r3, [r0, #0x70] - ldrsh r2, [r0, #0x68] - cmp r3, r2 - bge _02047AA8 - add r2, r3, r3, lsl #7 - add r2, r4, r2 - strb r1, [r2, #0x1ac] - ldrsh r0, [r0, #0x70] - add r2, r4, #0x12c - mov r1, r6 - add r0, r0, r0, lsl #7 - add r0, r2, r0 - bl Strcpy - str r5, [sp] - add r0, r4, #0x1f00 - ldrsh r1, [r0, #0x70] - add r0, r4, #0x1000 - add r5, r4, #0x12c - add r3, r1, r1, lsl #7 - ldr r1, [r0, #0xf6c] - mov r2, r6 - add r0, r5, r3 - mov r3, #0x400 - bl PreprocessString - add r0, r4, #0x1f00 - ldrsh r1, [r0, #0x70] - add r1, r1, #1 - strh r1, [r0, #0x70] -_02047AA8: - add sp, sp, #4 - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_02047AB0: .4byte 0x020AFEEC - arm_func_end FUN_02047a10 -_02047AB4: - .byte 0xF8, 0x4F, 0x2D, 0xE9, 0x08, 0xD0, 0x4D, 0xE2, 0x00, 0xA0, 0xA0, 0xE1 - .byte 0x17, 0x82, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x10, 0xA0, 0x03, 0x02, 0x00, 0x00, 0x0A - .byte 0x01, 0x00, 0x50, 0xE3, 0x01, 0x10, 0xA0, 0x03, 0x55, 0x00, 0x00, 0x1A, 0x58, 0x01, 0x9F, 0xE5 - .byte 0x01, 0x51, 0x90, 0xE7, 0x01, 0x0C, 0x85, 0xE2, 0xD0, 0x02, 0xD0, 0xE1, 0x0A, 0x80, 0xFF, 0xEB - .byte 0x1C, 0x01, 0x95, 0xE5, 0x02, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x05, 0x00, 0xA0, 0xE1 - .byte 0x8D, 0x79, 0xFF, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x1C, 0x01, 0x85, 0xE5, 0x1F, 0x4C, 0x85, 0xE2 - .byte 0xF0, 0x07, 0xD4, 0xE1, 0xFE, 0x77, 0xD4, 0xE1, 0x00, 0x00, 0x57, 0xE1, 0x44, 0x00, 0x00, 0xAA - .byte 0x18, 0x10, 0x95, 0xE5, 0x04, 0x20, 0x95, 0xE5, 0x01, 0x18, 0xA0, 0xE1, 0x02, 0x28, 0xA0, 0xE1 - .byte 0x41, 0x88, 0xA0, 0xE1, 0x42, 0x18, 0xA0, 0xE1, 0x04, 0x10, 0x8D, 0xE5, 0x00, 0x60, 0xA0, 0xE3 - .byte 0x4B, 0xBF, 0x85, 0xE2, 0x1C, 0x00, 0x00, 0xEA, 0x87, 0x93, 0x87, 0xE0, 0x09, 0x00, 0x85, 0xE0 - .byte 0xAC, 0x01, 0xD0, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x0A, 0x17, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x8D, 0xE5, 0xF0, 0x18, 0xD4, 0xE1, 0xF8, 0x37, 0xD4, 0xE1, 0x0A, 0x00, 0xA0, 0xE1 - .byte 0x96, 0x18, 0x21, 0xE0, 0x02, 0x20, 0x41, 0xE2, 0x00, 0x10, 0xA0, 0xE3, 0x73, 0x78, 0xFF, 0xEB - .byte 0xF0, 0x28, 0xD4, 0xE1, 0x04, 0x10, 0x9D, 0xE5, 0x0A, 0x00, 0xA0, 0xE1, 0x96, 0x28, 0x22, 0xE0 - .byte 0x09, 0x30, 0x8B, 0xE0, 0x42, 0x7A, 0xFF, 0xEB, 0x01, 0x00, 0x87, 0xE2, 0x00, 0x18, 0xA0, 0xE1 - .byte 0xF0, 0x07, 0xD4, 0xE1, 0x41, 0x78, 0xA0, 0xE1, 0x41, 0x08, 0x50, 0xE1, 0x05, 0x00, 0x00, 0xDA - .byte 0x01, 0x10, 0x86, 0xE2, 0x01, 0x18, 0xA0, 0xE1, 0x41, 0x68, 0xA0, 0xE1, 0xF2, 0x17, 0xD4, 0xE1 - .byte 0x01, 0x00, 0x56, 0xE1, 0xDF, 0xFF, 0xFF, 0xBA, 0x1F, 0x1C, 0x85, 0xE2, 0xF2, 0x27, 0xD1, 0xE1 - .byte 0x02, 0x00, 0x50, 0xE1, 0x0F, 0x00, 0x00, 0xDA, 0x02, 0x00, 0x40, 0xE0, 0x01, 0x00, 0x40, 0xE2 - .byte 0xF4, 0x17, 0xD1, 0xE1, 0x00, 0x08, 0xA0, 0xE1, 0x40, 0x08, 0x51, 0xE1, 0x01, 0x0A, 0x85, 0x02 - .byte 0x01, 0x10, 0xA0, 0x03, 0x82, 0x1F, 0xC0, 0x05, 0x0B, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x51, 0xE3 - .byte 0x01, 0x0A, 0x85, 0xE2, 0x02, 0x10, 0xA0, 0x03, 0x82, 0x1F, 0xC0, 0x05, 0x03, 0x10, 0xA0, 0x13 - .byte 0x82, 0x1F, 0xC0, 0x15, 0x04, 0x00, 0x00, 0xEA, 0x01, 0x0A, 0x85, 0xE2, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x82, 0x1F, 0xC0, 0xE5, 0x7A, 0x1F, 0xC0, 0xE5, 0x7B, 0x1F, 0xC0, 0xE5, 0x0A, 0x00, 0xA0, 0xE1 - .byte 0xAE, 0x7F, 0xFF, 0xEB, 0x08, 0xD0, 0x8D, 0xE2, 0xF8, 0x8F, 0xBD, 0xE8, 0xEC, 0xFE, 0x0A, 0x02 - - arm_func_start FUN_02047c40 -FUN_02047c40: @ 0x02047C40 - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #4 - ldr r1, _02047EF0 @ =0x020AFEEC - mov r6, #0 - ldr r5, [r1, r0, lsl #2] - add r1, sp, #0 - mov r0, r6 - bl FUN_020063f4 - add r0, r5, #0x100 - ldrsb r0, [r0, #0x20] - bl FUN_02030a40 - ldr r1, [r5, #0x11c] - mov r4, r0 - cmp r1, #4 - addls pc, pc, r1, lsl #2 - b _02047EE4 -_02047C80: @ jump table - b _02047C94 @ case 0 - b _02047CAC @ case 1 - b _02047CB8 @ case 2 - b _02047EC0 @ case 3 - b _02047ECC @ case 4 -_02047C94: - mov r0, r5 - bl FUN_020261d4 - cmp r0, #0 - beq _02047EE4 - mov r0, #1 - str r0, [r5, #0x11c] -_02047CAC: - mov r0, #2 - str r0, [r5, #0x11c] - b _02047EE4 -_02047CB8: - mov r0, r5 - bl FUN_02026204 - add r1, r5, #0x1000 - ldrb r1, [r1, #0xf7c] - mov r7, r0 - cmp r1, #1 - beq _02047EE4 - add r0, r5, #0x100 - ldrsb r0, [r0, #0x20] - bl FUN_020308c4 - cmp r0, #0 - beq _02047CF0 - ands r8, r4, #2 - beq _02047D0C -_02047CF0: - mov r0, #1 - bl FUN_02017ccc - mov r0, #3 - str r0, [r5, #0x11c] - mov r0, #1 - str r0, [r5, #0x124] - b _02047EE4 -_02047D0C: - add r0, r5, #0x1f00 - ldrsh r3, [r0, #0x72] - ldrsh ip, [r0, #0x70] - cmp ip, r3 - ble _02047E9C - ldrh r0, [sp] - tst r0, #0x40 - bne _02047D34 - tst r4, #0x40000 - beq _02047D7C -_02047D34: - add r0, r5, #0x1f00 - ldrsh r1, [r0, #0x74] - sub r1, r1, #1 - strh r1, [r0, #0x74] - ldrsh r1, [r0, #0x74] - cmp r1, #0 - bge _02047D6C - mov r1, #0 - strh r1, [r0, #0x74] - add r0, r5, #0x100 - ldrsb r0, [r0, #0x20] - mov r1, #0x20000000 - bl FUN_02030a74 - b _02047D74 -_02047D6C: - mov r0, #3 - bl FUN_02017ccc -_02047D74: - mov r6, #1 - b _02047DC4 -_02047D7C: - tst r0, #0x80 - bne _02047D8C - tst r4, #0x80000 - beq _02047DC4 -_02047D8C: - add r1, r5, #0x1f00 - ldrsh r2, [r1, #0x74] - sub r0, ip, r3 - lsl r0, r0, #0x10 - add r2, r2, #1 - strh r2, [r1, #0x74] - ldrsh r2, [r1, #0x74] - asr r3, r0, #0x10 - cmp r2, r0, asr #16 - strhgt r3, [r1, #0x74] - bgt _02047DC0 - mov r0, #3 - bl FUN_02017ccc -_02047DC0: - mov r6, #1 -_02047DC4: - add r0, r5, #0x1f00 - ldrsh r2, [r0, #0x74] - cmp r2, #1 - blt _02047E0C - ldrsh r1, [r0, #0x70] - ldrsh r0, [r0, #0x72] - sub r0, r1, r0 - cmp r2, r0 - bge _02047E0C - add r0, r5, #0x100 - ldrsb r0, [r0, #0x20] - mov r1, #0x20000000 - bl FUN_02030a90 - add r0, r5, #0x100 - ldrsb r0, [r0, #0x20] - mov r1, #0x40000000 - bl FUN_02030a90 - b _02047E70 -_02047E0C: - cmp r2, #0 - bne _02047E38 - add r0, r5, #0x100 - ldrsb r0, [r0, #0x20] - mov r1, #0x20000000 - bl FUN_02030a74 - add r0, r5, #0x100 - ldrsb r0, [r0, #0x20] - mov r1, #0x40000000 - bl FUN_02030a90 - b _02047E70 -_02047E38: - add r0, r5, #0x1f00 - ldrsh r1, [r0, #0x70] - ldrsh r0, [r0, #0x72] - sub r0, r1, r0 - cmp r2, r0 - bne _02047E70 - add r0, r5, #0x100 - ldrsb r0, [r0, #0x20] - mov r1, #0x20000000 - bl FUN_02030a90 - add r0, r5, #0x100 - ldrsb r0, [r0, #0x20] - mov r1, #0x40000000 - bl FUN_02030a74 -_02047E70: - ldrb r0, [r5, #0x129] - cmp r0, #0 - bne _02047E9C - cmp r6, #0 - beq _02047E9C - add r0, r5, #0x1f00 - ldrsh r2, [r0, #0x74] - add r1, r5, #0x100 - strh r2, [r0, #0x7e] - ldrsb r0, [r1, #0x20] - bl FUN_0203083c -_02047E9C: - cmp r8, #0 - bne _02047EAC - cmp r7, #0x10 - bne _02047EE4 -_02047EAC: - mov r1, #3 - mov r0, #1 - str r1, [r5, #0x11c] - bl FUN_02017ccc - b _02047EE4 -_02047EC0: - mov r0, #4 - str r0, [r5, #0x11c] - b _02047EE4 -_02047ECC: - mov r1, r6 - mov r0, r5 - str r1, [r5, #0x11c] - bl FUN_0202613c - mov r0, #1 - b _02047EE8 -_02047EE4: - mov r0, #0 -_02047EE8: - add sp, sp, #4 - pop {r3, r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02047EF0: .4byte 0x020AFEEC - arm_func_end FUN_02047c40 - - arm_func_start FUN_02047ef4 -FUN_02047ef4: @ 0x02047EF4 - push {r4, lr} - ldr r1, _02047F34 @ =0x020AFEEC - mov r4, r0 - ldr r0, [r1, r4, lsl #2] - cmp r0, #0 - popeq {r4, pc} - add r0, r0, #0x100 - ldrsb r0, [r0, #0x20] - bl FUN_02030850 - ldr r0, _02047F34 @ =0x020AFEEC - ldr r0, [r0, r4, lsl #2] - bl MemFree - ldr r0, _02047F34 @ =0x020AFEEC - mov r1, #0 - str r1, [r0, r4, lsl #2] - pop {r4, pc} - .align 2, 0 -_02047F34: .4byte 0x020AFEEC - arm_func_end FUN_02047ef4 - - arm_func_start FUN_02047f38 -FUN_02047f38: @ 0x02047F38 + arm_func_start ov00_022BEE78 +ov00_022BEE78: @ 0x022BEE78 push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sb, r1 - mov sl, r0 - ldr r6, [sp, #0x28] - mov r0, sb - mov r1, #0x3c - mov r8, r2 - mov r7, r3 - bl DivideInt - lsl r1, r1, #0x10 - mov r2, #0 - mov r0, r6 - strh r2, [r8] - asr sb, r1, #0x10 - bl FUN_0204793c - mov r5, #0 - mov fp, #0x3c - mov r4, #0xd4 -_02047F80: - smulbb r1, sb, r4 - ldrb r0, [sl, r1] - add r2, sl, r1 - cmp r0, #0 - beq _02047FB4 - ldrb r1, [r2, #1] - mov r3, r6 - add r0, r2, #3 - add r2, r2, #0x84 - bl FUN_02047a10 - ldrsh r0, [r8] - add r0, r0, #1 - strh r0, [r8] -_02047FB4: - add r0, sb, #1 - lsl r0, r0, #0x10 - mov r1, fp - asr r0, r0, #0x10 - bl DivideInt - add r0, r5, #1 - lsl r2, r0, #0x10 - lsl r0, r1, #0x10 - asr r5, r2, #0x10 - cmp r5, #0x3c - asr sb, r0, #0x10 - blt _02047F80 - ldrsh r0, [r8] - cmp r0, r7 - mov r0, r6 - strhlt r7, [r8] - bl FUN_02047960 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_02047f38 - - arm_func_start FUN_02047ffc -FUN_02047ffc: @ 0x02047FFC - push {r4, lr} - mov r4, r0 - mov r0, #0x39c0 - mov r1, #0 - bl MemAlloc - ldr r2, _02048048 @ =0x020AFEF4 - mov r1, #0x39c0 - str r0, [r2] - bl MemZero - ldr r1, _02048048 @ =0x020AFEF4 - mov r2, #1 - ldr r0, [r1] - add r0, r0, #0x3000 - str r4, [r0, #0x1bc] - ldr r0, [r1] - add r0, r0, #0x3000 - strb r2, [r0, #0x1b3] - bl FUN_020480cc - pop {r4, pc} - .align 2, 0 -_02048048: .4byte 0x020AFEF4 - arm_func_end FUN_02047ffc - - arm_func_start FUN_0204804c -FUN_0204804c: @ 0x0204804C - push {r3, lr} - ldr r0, _02048074 @ =0x020AFEF4 - ldr r0, [r0] - cmp r0, #0 - popeq {r3, pc} - bl MemFree - ldr r0, _02048074 @ =0x020AFEF4 - mov r1, #0 - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_02048074: .4byte 0x020AFEF4 - arm_func_end FUN_0204804c - - arm_func_start FUN_02048078 -FUN_02048078: @ 0x02048078 - ldr r1, _0204809C @ =0x020AFEF4 - ldr r1, [r1] - cmp r1, #0 - movne r2, #1 - moveq r2, #0 - tst r2, #0xff - addne r1, r1, #0x3000 - strbne r0, [r1, #0x1b3] - bx lr - .align 2, 0 -_0204809C: .4byte 0x020AFEF4 - arm_func_end FUN_02048078 - - arm_func_start FUN_020480a0 -FUN_020480a0: @ 0x020480A0 - ldr r0, _020480C8 @ =0x020AFEF4 - ldr r0, [r0] - cmp r0, #0 - movne r1, #1 - moveq r1, #0 - tst r1, #0xff - addne r0, r0, #0x3000 - ldrbne r0, [r0, #0x1b3] - moveq r0, #0 - bx lr - .align 2, 0 -_020480C8: .4byte 0x020AFEF4 - arm_func_end FUN_020480a0 - - arm_func_start FUN_020480cc -FUN_020480cc: @ 0x020480CC - push {r4, r5, r6, r7, r8, lr} - ldr r6, _02048130 @ =0x020AFEF4 - mov r7, #0xd4 - ldr r0, [r6] - mov r4, #0 - add r0, r0, #0x3100 - strh r4, [r0, #0xb8] - ldr r0, [r6] - mov r1, #1 - add r0, r0, #0x3000 - strb r1, [r0, #0x1b0] - mov r5, r7 -_020480FC: - mul r8, r4, r5 - ldr r0, [r6] - mov r1, r7 - add r0, r0, r8 - bl MemZero - ldr r0, [r6] - add r0, r0, r8 - add r0, r0, #0x84 - bl InitPreprocessorArgs - add r4, r4, #1 - cmp r4, #0x3c - blt _020480FC - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02048130: .4byte 0x020AFEF4 - arm_func_end FUN_020480cc -_02048134: - .byte 0x10, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 - .byte 0x03, 0x0A, 0x80, 0xE2, 0xB0, 0x11, 0xC0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xF4, 0xFE, 0x0A, 0x02 - - arm_func_start FUN_02048150 -FUN_02048150: @ 0x02048150 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl FUN_020480a0 - cmp r0, #0 - popeq {r4, r5, r6, pc} - ldr r2, _0204823C @ =0x020AFEF4 - mov r1, #0xd4 - ldr lr, [r2] - mov r3, #1 - add r0, lr, #0x3100 - ldrsh r0, [r0, #0xb8] - smulbb ip, r0, r1 - strb r3, [lr, ip] - ldr r0, [r2] - add r1, lr, ip - add r0, r0, ip - strb r5, [r0, #1] - ldr r0, [r2] - add r2, r1, #3 - add r0, r0, ip - strb r4, [r0, #2] - add r1, r1, #0x82 -_020481B0: - ldrb r0, [r6] - cmp r0, #0 - cmpne r0, #0xd - beq _020481D0 - cmp r2, r1 - strblo r0, [r2], #1 - add r6, r6, #1 - b _020481B0 -_020481D0: - mov r3, #0 - ldr r1, _0204823C @ =0x020AFEF4 - strb r3, [r2] - ldr r0, [r1] - add r0, r0, #0x3100 - ldrsh r2, [r0, #0xb8] - add r2, r2, #1 - strh r2, [r0, #0xb8] - ldr r0, [r1] - mov r2, #1 - add r0, r0, #0x3100 - ldrsh r1, [r0, #0xb8] - cmp r1, #0x3c - ldr r1, _0204823C @ =0x020AFEF4 - strhge r3, [r0, #0xb8] - ldr r0, [r1] - add r0, r0, #0x3000 - strb r2, [r0, #0x1b0] - ldr r1, [r1] - add r0, r1, #0x3000 - ldrb r0, [r0, #0x1b2] - cmp r0, #0 - popeq {r4, r5, r6, pc} - add r0, r1, #0x3100 - ldrsh r0, [r0, #0xb8] - bl FUN_020476ec - pop {r4, r5, r6, pc} - .align 2, 0 -_0204823C: .4byte 0x020AFEF4 - arm_func_end FUN_02048150 - - arm_func_start FUN_02048240 -FUN_02048240: @ 0x02048240 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr r2, _02048334 @ =0x020AFEF4 - mov r1, r0 - ldr r0, [r2] - cmp r0, #0 - movne r2, #1 - moveq r2, #0 - tst r2, #0xff - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - add r0, r0, #0x31c0 - mov r8, #0 - bl Strcpy - ldr r4, _02048334 @ =0x020AFEF4 - mov r7, r8 - mov r6, #0x400 - mov fp, #0x440 - mov r5, r8 -_02048284: - ldr sb, [r4] - add r0, sb, r8 - add r0, r0, #0x3000 - ldrb r0, [r0, #0x1c0] - cmp r0, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - add r2, sb, #0x31c0 - mov r1, r6 - mov r3, fp - str r7, [sp] - add r0, sb, #0x35c0 - add r2, r2, r8 - bl PreprocessString - ldr r1, [r4] - add r8, r8, r0 - add r0, r1, r0 - add r0, r0, #0x3000 - strb r5, [r0, #0x5c0] - ldr sl, [r4] - add r0, sl, r8 - add r0, r0, #0x3000 - ldrb sb, [r0, #0x1c0] - cmp sb, #0 - beq _0204831C - add r0, sl, #0x31c0 - ldr r1, _02048338 @ =0x0209CCE0 - mov r2, #3 - add r0, r0, r8 - bl Strncmp - cmp r0, #0 - bne _02048310 - ldr r0, _02048338 @ =0x0209CCE0 - bl Strlen - add r8, r8, r0 - b _0204831C -_02048310: - cmp sb, #0xd - cmpne sb, #0xa - addeq r8, r8, #1 -_0204831C: - mov r1, #0 - mov r2, r1 - add r0, sl, #0x35c0 - bl FUN_02048150 - b _02048284 -_02048330: - .byte 0xF8, 0x8F, 0xBD, 0xE8 -_02048334: .4byte 0x020AFEF4 -_02048338: .4byte 0x0209CCE0 - arm_func_end FUN_02048240 -_0204833C: - .byte 0x14, 0x00, 0x9F, 0xE5 - .byte 0x14, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x09, 0x10, 0xA0, 0xE3, 0x31, 0x2C, 0x80, 0xE2 - .byte 0xF8, 0x2B, 0xD2, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1, 0xF4, 0xFE, 0x0A, 0x02, 0xB4, 0x75, 0x04, 0x02 - .byte 0x08, 0x40, 0x2D, 0xE9, 0xBD, 0xFC, 0xFF, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03 - .byte 0x08, 0x80, 0xBD, 0x08, 0x02, 0x00, 0x50, 0xE3, 0x02, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13 - .byte 0x08, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_02048384 -FUN_02048384: @ 0x02048384 - push {r3, lr} - ldr r0, _020483B4 @ =0x020AFEF4 - mov r1, #0xb - ldr r0, [r0] - bl FUN_02047670 - cmp r0, #0 - ldrne r1, _020483B4 @ =0x020AFEF4 - movne r2, #1 - ldrne r1, [r1] - addne r1, r1, #0x3000 - strbne r2, [r1, #0x1b2] - pop {r3, pc} - .align 2, 0 -_020483B4: .4byte 0x020AFEF4 - arm_func_end FUN_02048384 - - arm_func_start FUN_020483b8 -FUN_020483b8: @ 0x020483B8 - ldr r0, _020483D0 @ =0x020AFEF4 - ldr ip, _020483D4 @ =FUN_020476ec - ldr r0, [r0] - add r0, r0, #0x3100 - ldrsh r0, [r0, #0xb8] - bx ip - .align 2, 0 -_020483D0: .4byte 0x020AFEF4 -_020483D4: .4byte FUN_020476ec - arm_func_end FUN_020483b8 - - arm_func_start FUN_020483d8 -FUN_020483d8: @ 0x020483D8 - push {r3, lr} - bl FUN_0204771c - cmp r0, #0 - ldrne r1, _020483FC @ =0x020AFEF4 - movne r2, #0 - ldrne r1, [r1] - addne r1, r1, #0x3000 - strbne r2, [r1, #0x1b2] - pop {r3, pc} - .align 2, 0 -_020483FC: .4byte 0x020AFEF4 - arm_func_end FUN_020483d8 -_02048400: - .byte 0x14, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13 - .byte 0x00, 0x00, 0xA0, 0x03, 0xFF, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0xF4, 0xFE, 0x0A, 0x02 - - arm_func_start FUN_02048420 -FUN_02048420: @ 0x02048420 - push {r3, lr} - bl FUN_0204b028 - bl FUN_02048b74 - pop {r3, pc} - arm_func_end FUN_02048420 - - arm_func_start FUN_02048430 -FUN_02048430: @ 0x02048430 - push {r3, lr} - bl FUN_0206637c - mov r0, #0 - bl FUN_02048c0c - mvn r0, #0 - bl FUN_02048c4c - bl FUN_0204f9b8 - bl FUN_02048b48 - pop {r3, pc} - arm_func_end FUN_02048430 - - arm_func_start FUN_02048454 -FUN_02048454: @ 0x02048454 - push {r3, lr} - bl ClearAdventureLogStruct - bl FUN_0206637c - mov r0, #0 - bl FUN_02048c0c - mvn r0, #0 - bl FUN_02048c4c - bl FUN_0204f9b8 - bl FUN_02048b48 - bl FUN_02048c5c - pop {r3, pc} - arm_func_end FUN_02048454 - - arm_func_start FUN_02048480 -FUN_02048480: @ 0x02048480 - push {r3, lr} - bl FUN_02048c3c - mvn r1, #0 - cmp r0, r1 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FUN_02048480 - - arm_func_start GetNotifyNote -GetNotifyNote: @ 0x020484A0 - ldr r0, _020484AC @ =0x020AFEF8 - ldrb r0, [r0] - bx lr - .align 2, 0 -_020484AC: .4byte 0x020AFEF8 - arm_func_end GetNotifyNote - - arm_func_start SetNotifyNote -SetNotifyNote: @ 0x020484B0 - ldr r1, _020484BC @ =0x020AFEF8 - strb r0, [r1] - bx lr - .align 2, 0 -_020484BC: .4byte 0x020AFEF8 - arm_func_end SetNotifyNote - - arm_func_start FUN_020484c0 -FUN_020484c0: @ 0x020484C0 - push {r3, lr} - bl FUN_0206637c - mov r0, #0 - bl FUN_02048c0c - mvn r0, #0 - bl FUN_02048c4c - bl FUN_0204f9b8 - bl FUN_02048b48 - bl FUN_02048c5c - pop {r3, pc} - arm_func_end FUN_020484c0 - - arm_func_start FUN_020484e8 -FUN_020484e8: @ 0x020484E8 - push {r4, lr} - bl GetSpecialEpisodeType - mov r4, r0 - bl FUN_02052cd8 - bl FUN_0200cad4 - bl FUN_0204cdb8 - mov r0, r4 - mov r1, #1 - bl FUN_0204c9f4 - cmp r4, #4 - addls pc, pc, r4, lsl #2 - b _02048578 -_02048518: @ jump table - b _0204852C @ case 0 - b _0204853C @ case 1 - b _0204854C @ case 2 - b _0204855C @ case 3 - b _0204856C @ case 4 -_0204852C: - ldr r1, _020485AC @ =0x020A2830 - mov r0, #2 - bl FUN_02048ac4 - b _02048578 -_0204853C: - ldr r1, _020485B0 @ =0x020A2808 - mov r0, #2 - bl FUN_02048ac4 - b _02048578 -_0204854C: - ldr r1, _020485B4 @ =0x020A2844 - mov r0, #2 - bl FUN_02048ac4 - b _02048578 -_0204855C: - ldr r1, _020485B8 @ =0x020A2880 - mov r0, #2 - bl FUN_02048ac4 - b _02048578 -_0204856C: - ldr r1, _020485BC @ =0x020A2894 - mov r0, #2 - bl FUN_02048ac4 -_02048578: - mov r0, #2 - bl GetTeamMember - mov r4, r0 - mov r0, #2 - bl GetTeamMember - ldr r1, _020485C0 @ =0x020A1918 - bl thunk_FUN_0205364c - mov r1, r0 - mov r0, r4 - mov r2, #1 - bl FUN_02053660 - bl SetTeamSetupHeroAndPartnerOnly - pop {r4, pc} - .align 2, 0 -_020485AC: .4byte 0x020A2830 -_020485B0: .4byte 0x020A2808 -_020485B4: .4byte 0x020A2844 -_020485B8: .4byte 0x020A2880 -_020485BC: .4byte 0x020A2894 -_020485C0: .4byte 0x020A1918 - arm_func_end FUN_020484e8 - - arm_func_start FUN_020485c4 -FUN_020485c4: @ 0x020485C4 - push {r3, lr} - bl thunk_FUN_020561c0 - bl thunk_FUN_0200ec90 - bl FUN_02056b58 - pop {r3, pc} - arm_func_end FUN_020485c4 - - arm_func_start FUN_020485d8 -FUN_020485d8: @ 0x020485D8 - push {r3, lr} - bl thunk_FUN_020561c0 - bl thunk_FUN_0200ec90 - bl FUN_02056bd4 - pop {r3, pc} - arm_func_end FUN_020485d8 - - arm_func_start FUN_020485ec -FUN_020485ec: @ 0x020485EC - push {r3, lr} - bl FUN_0206637c - mov r0, #0 - bl FUN_02048c0c - mvn r0, #0 - bl FUN_02048c4c - bl FUN_0204f9b8 - bl FUN_02048b48 - bl FUN_02048c5c - pop {r3, pc} - arm_func_end FUN_020485ec - - arm_func_start FUN_02048614 -FUN_02048614: @ 0x02048614 - push {r3, lr} - bl FUN_02048b48 - bl InitMainTeamAfterQuiz - pop {r3, pc} - arm_func_end FUN_02048614 - - arm_func_start FUN_02048624 -FUN_02048624: @ 0x02048624 - push {r3, lr} - mov r0, #0 - bl SetGold - mov r0, #0 - bl FUN_020106c4 - mov r0, #0 - bl SetActiveTeam - pop {r3, pc} - arm_func_end FUN_02048624 - - arm_func_start FUN_02048644 -FUN_02048644: @ 0x02048644 - push {r4, lr} - bl GetGameMode - mov r4, r0 - bl FUN_0204bfc0 - cmp r4, #4 - bne _02048678 - mov r0, #2 - bl SetGold - mov r0, #0 - bl FUN_020106c4 - mov r0, #2 - bl SetActiveTeam - b _020486D8 -_02048678: - cmp r4, #5 - bne _0204869C - mov r0, #2 - bl SetGold - mov r0, #0 - bl FUN_020106c4 - mov r0, #2 - bl SetActiveTeam - b _020486D8 -_0204869C: - cmp r4, #3 - bne _020486C0 - mov r0, #1 - bl SetGold - mov r0, #1 - bl FUN_020106c4 - mov r0, #1 - bl SetActiveTeam - b _020486D8 -_020486C0: - mov r0, #0 - bl SetGold - mov r0, #0 - bl FUN_020106c4 - mov r0, #0 - bl SetActiveTeam -_020486D8: - cmp r4, #3 - bne _020486EC - mov r0, #2 - bl SetBothScreensWindowsColor - pop {r4, pc} -_020486EC: - bl GetHeroMemberIdx - mvn r1, #0 - cmp r0, r1 - beq _02048720 - mov r0, #0 - mov r1, #0x42 - bl LoadScriptVariableValue - cmp r0, #5 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bl SetBothScreensWindowsColor - pop {r4, pc} -_02048720: - mov r0, #2 - bl SetBothScreensWindowsColor - pop {r4, pc} - arm_func_end FUN_02048644 - - arm_func_start FUN_0204872c -FUN_0204872c: @ 0x0204872C - push {r3, lr} - bl EventFlagBackup - mov r0, #2 - bl SetBothScreensWindowsColor - mov r0, #0 - bl SetGold - mov r0, #0 - bl FUN_020106c4 - mov r0, #0 - bl SetActiveTeam - pop {r3, pc} - arm_func_end FUN_0204872c - - arm_func_start EventFlagBackup -EventFlagBackup: @ 0x02048758 - ldr ip, _02048760 @ =EventFlagBackup - bx ip - .align 2, 0 -_02048760: .4byte EventFlagBackup - arm_func_end EventFlagBackup -_02048764: - .byte 0x10, 0x40, 0x2D, 0xE9, 0x20, 0xE0, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x03, 0xC0, 0xA0, 0xE3, 0x0F, 0x00, 0xBE, 0xE8, 0x0F, 0x00, 0xA4, 0xE8, 0x01, 0xC0, 0x5C, 0xE2 - .byte 0xFB, 0xFF, 0xFF, 0x1A, 0x07, 0x00, 0x9E, 0xE8, 0x07, 0x00, 0x84, 0xE8, 0x10, 0x80, 0xBD, 0xE8 - .byte 0xFC, 0xFE, 0x0A, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x20, 0xE0, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x03, 0xC0, 0xA0, 0xE3, 0x0F, 0x00, 0xB4, 0xE8, 0x0F, 0x00, 0xAE, 0xE8, 0x01, 0xC0, 0x5C, 0xE2 - .byte 0xFB, 0xFF, 0xFF, 0x1A, 0x07, 0x00, 0x94, 0xE8, 0x07, 0x00, 0x8E, 0xE8, 0x10, 0x80, 0xBD, 0xE8 - .byte 0xFC, 0xFE, 0x0A, 0x02 - - arm_func_start InitMainTeamAfterQuiz -InitMainTeamAfterQuiz: @ 0x020487C4 - push {r3, r4, lr} - sub sp, sp, #0x14 - ldr r0, _020489F4 @ =0x020AFEF8 - mov r4, #0 - ldrb r0, [r0, #8] - cmp r0, #0 - bne _020487FC - ldr r1, _020489F8 @ =0x00000232 - add r0, sp, #0 - bl GetStringFromFileVeneer - ldr r0, _020489FC @ =0x020AFF00 - add r1, sp, #0 - mov r2, #0xa - bl FUN_02025314 -_020487FC: - ldr r0, _020489F4 @ =0x020AFEF8 - ldrb r0, [r0, #0x1c] - cmp r0, #0 - bne _02048828 - ldr r1, _02048A00 @ =0x00000233 - add r0, sp, #0 - bl GetStringFromFileVeneer - ldr r0, _02048A04 @ =0x020AFF14 - add r1, sp, #0 - mov r2, #0xa - bl FUN_02025314 -_02048828: - bl GetHeroMemberIdx - mvn r1, #0 - cmp r0, r1 - bne _02048898 - ldr r0, _020489F4 @ =0x020AFEF8 - ldr r3, _020489FC @ =0x020AFF00 - ldrsh r1, [r0, #4] - mov r0, #0 - mov r2, #0xd6 - bl FUN_02055b78 - bl GetHero - ldr r1, _020489F4 @ =0x020AFEF8 - mov r4, r0 - ldrsh r2, [r1, #4] - mov r0, #0 - mov r1, #0x3e - bl SaveScriptVariableValue - add r1, r4, #0x3a - mov r0, #0x3f - mov r2, #0xa - bl SaveScriptVariableValueBytes - mov r0, r4 - mov r1, #5 - mov r2, #0 - bl FUN_020544c8 - mov r0, r4 - bl FUN_02053568 - mov r4, #1 -_02048898: - bl GetPartnerMemberIdx - mvn r1, #0 - cmp r0, r1 - bne _02048908 - ldr r0, _020489F4 @ =0x020AFEF8 - ldr r3, _02048A04 @ =0x020AFF14 - ldrsh r1, [r0, #6] - mov r0, #1 - mov r2, #0xd7 - bl FUN_02055b78 - bl GetPartner - ldr r1, _020489F4 @ =0x020AFEF8 - mov r4, r0 - ldrsh r2, [r1, #6] - mov r0, #0 - mov r1, #0x40 - bl SaveScriptVariableValue - add r1, r4, #0x3a - mov r0, #0x41 - mov r2, #0xa - bl SaveScriptVariableValueBytes - mov r0, r4 - mov r1, #5 - mov r2, #0 - bl FUN_020544c8 - mov r0, r4 - bl FUN_02053568 - mov r4, #1 -_02048908: - cmp r4, #0 - beq _02048914 - bl SetTeamSetupHeroAndPartnerOnly -_02048914: - ldr r0, _020489F4 @ =0x020AFEF8 - ldrsh r0, [r0, #4] - cmp r0, #0 - beq _02048940 - bl GetMonsterGenderVeneer - cmp r0, #2 - moveq r2, #5 - movne r2, #4 - mov r0, #0 - mov r1, #0x42 - bl SaveScriptVariableValue -_02048940: - ldr r0, _020489F4 @ =0x020AFEF8 - ldrsh r1, [r0, #6] - cmp r1, #0 - beq _02048980 - ldr r0, _02048A08 @ =0x0209CCE4 - b _02048964 -_02048958: - cmp r1, r2 - beq _02048970 - add r0, r0, #8 -_02048964: - ldrsh r2, [r0, #4] + sub sp, sp, #8 + ldr r0, _022BF210 @ =0x0231E340 cmp r2, #0 - bne _02048958 -_02048970: - ldr r2, [r0] - mov r0, #0 - mov r1, #0x43 - bl SaveScriptVariableValue -_02048980: - ldr r1, _020489F4 @ =0x020AFEF8 - mov r0, #0 - ldr r2, [r1, #0x30] - mov r1, #0x45 - bl SaveScriptVariableValue - mov r0, #1 - bl FUN_02048c0c - bl FUN_02048c3c - mvn r1, #0 - cmp r0, r1 - bne _020489B4 - bl Rand32Bit - bl FUN_02048c4c -_020489B4: - bl GetGameMode - cmp r0, #1 - bhi _020489CC - mov r0, #2 - bl SetBothScreensWindowsColor - b _020489EC -_020489CC: - mov r0, #0 - mov r1, #0x42 - bl LoadScriptVariableValue - cmp r0, #5 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bl SetBothScreensWindowsColor -_020489EC: - add sp, sp, #0x14 - pop {r3, r4, pc} - .align 2, 0 -_020489F4: .4byte 0x020AFEF8 -_020489F8: .4byte 0x00000232 -_020489FC: .4byte 0x020AFF00 -_02048A00: .4byte 0x00000233 -_02048A04: .4byte 0x020AFF14 -_02048A08: .4byte 0x0209CCE4 - arm_func_end InitMainTeamAfterQuiz - - arm_func_start ScriptSpecialProcess0x3 -ScriptSpecialProcess0x3: @ 0x02048A0C - push {r3, lr} - bl GetExecuteSpecialEpisodeType - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _02048A6C -_02048A20: @ jump table - b _02048A6C @ case 0 - b _02048A34 @ case 1 - b _02048A6C @ case 2 - b _02048A44 @ case 3 - b _02048A60 @ case 4 -_02048A34: - ldr r1, _02048A74 @ =0x020A28A8 - mov r0, #3 - bl FUN_02048ac4 - b _02048A6C -_02048A44: - ldr r1, _02048A78 @ =0x020A2858 - mov r0, #3 - bl FUN_02048ac4 - ldr r1, _02048A7C @ =0x020A281C - mov r0, #4 - bl FUN_02048ac4 - b _02048A6C -_02048A60: - ldr r1, _02048A80 @ =0x020A286C - mov r0, #3 - bl FUN_02048ac4 -_02048A6C: - bl SetTeamSetupHeroAndPartnerOnly - pop {r3, pc} - .align 2, 0 -_02048A74: .4byte 0x020A28A8 -_02048A78: .4byte 0x020A2858 -_02048A7C: .4byte 0x020A281C -_02048A80: .4byte 0x020A286C - arm_func_end ScriptSpecialProcess0x3 - - arm_func_start ScriptSpecialProcess0x4 -ScriptSpecialProcess0x4: @ 0x02048A84 - push {r3, lr} - bl GetExecuteSpecialEpisodeType - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _02048AB8 -_02048A98: @ jump table - b _02048AB8 @ case 0 - b _02048AB8 @ case 1 - b _02048AB8 @ case 2 - b _02048AB8 @ case 3 - b _02048AAC @ case 4 -_02048AAC: - ldr r1, _02048AC0 @ =0x020A27F4 - mov r0, #4 - bl FUN_02048ac4 -_02048AB8: - bl SetTeamSetupHeroAndPartnerOnly - pop {r3, pc} - .align 2, 0 -_02048AC0: .4byte 0x020A27F4 - arm_func_end ScriptSpecialProcess0x4 - - arm_func_start FUN_02048ac4 -FUN_02048ac4: @ 0x02048AC4 - push {r3, r4, r5, lr} - mov r5, r1 - ldrsh r1, [r5] - ldrb r2, [r5, #2] - mov r4, r0 - mov r3, #0 - bl FUN_02055b78 - mov r0, r4 - bl GetTeamMember - ldrsh r1, [r5, #0xe] - ldrb r2, [r5, #0xc] - mov r4, r0 - bl FUN_020544c8 - ldrsh r0, [r5, #0x12] + ldr r4, [r0, #4] + mov sl, r1 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r4, #0x10] + mov r1, #0x100 + bl FUN_0207A2A4 + ldrh r0, [r4, #0x16] cmp r0, #0 - strhne r0, [r4, #0xa] - ldrsh r2, [r5, #0x10] - add r0, r4, #0x14 - strh r2, [r4, #8] - ldrsh r1, [r4, #4] - bl FUN_02058eb0 - ldrh r0, [r5, #4] + bne _022BEEBC + ldr r0, [r4, #4] + mov r1, #0x800 + bl FUN_0207A2A4 +_022BEEBC: + ldr r0, [r4, #0x10] + cmp sl, r0 + beq _022BEED4 + mov r0, sl + mov r1, #0x100 + bl FUN_0207A2A4 +_022BEED4: + ldrh r0, [sl] + cmp r0, #0x2c + blo _022BEF8C + cmp r0, #0x80 + bne _022BEF10 + ldrh r0, [sl, #2] + cmp r0, #0x13 + bne _022BEEF8 + bl FUN_0207BC20 +_022BEEF8: + ldr r1, [r4, #0xc8] + cmp r1, #0 + beq _022BF1D0 + mov r0, sl + blx r1 + b _022BF1D0 +_022BEF10: + cmp r0, #0x82 + bne _022BEF64 + ldrh r0, [sl, #6] + add r1, r4, r0, lsl #2 + ldr r0, [r1, #0xcc] cmp r0, #0 - popeq {r3, r4, r5, pc} - ldrb r0, [r5, #0xc] - add r1, r5, #4 - cmp r0, #0 - add r0, r4, #0x22 - beq _02048B40 - bl LearnMoves - pop {r3, r4, r5, pc} -_02048B40: - bl GetInfoGroundMoveset - pop {r3, r4, r5, pc} - arm_func_end FUN_02048ac4 - - arm_func_start FUN_02048b48 -FUN_02048b48: @ 0x02048B48 - push {r3, lr} - bl FUN_0204ab24 - bl InitScriptVariableValues - bl FUN_02052c74 - bl FUN_0200cabc - bl StoreDefaultTeamName - bl ResetGlobalProgress - bl FUN_0205b478 - bl FUN_0205c75c - bl FUN_02012ab8 - pop {r3, pc} - arm_func_end FUN_02048b48 - - arm_func_start FUN_02048b74 -FUN_02048b74: @ 0x02048B74 - push {r3, lr} - ldr r1, _02048BA8 @ =0x020AFF38 - ldr r0, _02048BAC @ =0x0209CD4C - ldr r1, [r1, #4] - mov r2, #0 - bl DebugPrint0 - mov r3, #0 - ldr r1, _02048BA8 @ =0x020AFF38 - ldr r0, _02048BB0 @ =0x022AAE70 - sub r2, r3, #1 - str r3, [r1, #4] - str r2, [r0] - pop {r3, pc} - .align 2, 0 -_02048BA8: .4byte 0x020AFF38 -_02048BAC: .4byte 0x0209CD4C -_02048BB0: .4byte 0x022AAE70 - arm_func_end FUN_02048b74 - - arm_func_start ReadStringSave -ReadStringSave: @ 0x02048BB4 - ldr r1, _02048BC8 @ =0x020AFF38 - ldr ip, _02048BCC @ =Strncpy - mov r2, #0x20 - ldr r1, [r1] - bx ip - .align 2, 0 -_02048BC8: .4byte 0x020AFF38 -_02048BCC: .4byte Strncpy - arm_func_end ReadStringSave - - arm_func_start CheckStringSave -CheckStringSave: @ 0x02048BD0 - push {r3, lr} - ldr r1, _02048BF8 @ =0x020AFF38 - mov r2, #0x20 - ldr r1, [r1] - bl Strncmp - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r3, pc} - .align 2, 0 -_02048BF8: .4byte 0x020AFF38 - arm_func_end CheckStringSave - - arm_func_start FUN_02048bfc -FUN_02048bfc: @ 0x02048BFC - ldr r0, _02048C08 @ =0x020AFF38 - ldr r0, [r0, #4] - bx lr - .align 2, 0 -_02048C08: .4byte 0x020AFF38 - arm_func_end FUN_02048bfc - - arm_func_start FUN_02048c0c -FUN_02048c0c: @ 0x02048C0C - push {r4, lr} - ldr r1, _02048C34 @ =0x020AFF38 - mov r4, r0 - ldr r1, [r1, #4] - ldr r0, _02048C38 @ =0x0209CD4C - mov r2, r4 - bl DebugPrint0 - ldr r0, _02048C34 @ =0x020AFF38 - str r4, [r0, #4] - pop {r4, pc} - .align 2, 0 -_02048C34: .4byte 0x020AFF38 -_02048C38: .4byte 0x0209CD4C - arm_func_end FUN_02048c0c - - arm_func_start FUN_02048c3c -FUN_02048c3c: @ 0x02048C3C - ldr r0, _02048C48 @ =0x022AAE70 - ldr r0, [r0] - bx lr - .align 2, 0 -_02048C48: .4byte 0x022AAE70 - arm_func_end FUN_02048c3c - - arm_func_start FUN_02048c4c -FUN_02048c4c: @ 0x02048C4C - ldr r1, _02048C58 @ =0x022AAE70 - str r0, [r1] - bx lr - .align 2, 0 -_02048C58: .4byte 0x022AAE70 - arm_func_end FUN_02048c4c - - arm_func_start FUN_02048c5c -FUN_02048c5c: @ 0x02048C5C - push {r3, lr} - ldr r0, _02048CA4 @ =0x022AAE74 - mov r1, #0 - mov r2, #0x30 - bl MemsetSimple - ldr r2, _02048CA8 @ =0x09011416 - ldr r1, _02048CAC @ =0x022AAE74 - ldr r0, _02048CB0 @ =0x022AAE78 - str r2, [r1, #0x24] - bl ReadStringSave - ldr r2, _02048CB4 @ =0x000F1206 - ldr r0, _02048CAC @ =0x022AAE74 - mov r1, #0xff - str r2, [r0, #0x28] - strb r1, [r0, #0x2c] - mov r1, #0 - strb r1, [r0, #0x2d] - pop {r3, pc} - .align 2, 0 -_02048CA4: .4byte 0x022AAE74 -_02048CA8: .4byte 0x09011416 -_02048CAC: .4byte 0x022AAE74 -_02048CB0: .4byte 0x022AAE78 -_02048CB4: .4byte 0x000F1206 - arm_func_end FUN_02048c5c - - arm_func_start FUN_02048cb8 -FUN_02048cb8: @ 0x02048CB8 - push {r3, lr} - mov r0, #9 - bl GetDebugFlag1 - cmp r0, #0 - beq _02048CE4 - ldr r1, _02048CF0 @ =0x022AAE74 - ldr r0, _02048CF4 @ =0x000F1208 - ldr r1, [r1, #0x28] - cmp r1, r0 - subeq r0, r0, #1 - popeq {r3, pc} -_02048CE4: - ldr r0, _02048CF0 @ =0x022AAE74 - ldr r0, [r0, #0x28] - pop {r3, pc} - .align 2, 0 -_02048CF0: .4byte 0x022AAE74 -_02048CF4: .4byte 0x000F1208 - arm_func_end FUN_02048cb8 - - arm_func_start FUN_02048cf8 -FUN_02048cf8: @ 0x02048CF8 - push {r3, r4, r5, lr} - mov r0, #0x100 - mov r1, #5 - bl MemAlloc - mov r4, r0 - ldr r3, _02048DB0 @ =0x000001EA - add r0, sp, #0 - mov r1, r4 - mov r2, #0x100 - str r3, [sp] - bl ReadSaveFile - movs r5, r0 - cmpne r5, #2 - bne _02048D54 - add r0, r4, #4 - bl CheckStringSave - cmp r0, #0 - moveq r5, #5 - beq _02048D54 - ldr r1, [r4, #0x24] - ldr r0, _02048DB4 @ =0x09011416 - cmp r1, r0 - movne r5, #4 -_02048D54: - bl FUN_02048c5c - cmp r5, #0 - bne _02048D80 - ldr r1, [r4, #0x28] - ldr r0, _02048DB8 @ =0x022AAE74 - str r1, [r0, #0x28] - ldrb r1, [r4, #0x2c] - strb r1, [r0, #0x2c] - ldrb r1, [r4, #0x2d] - strb r1, [r0, #0x2d] - b _02048DA0 -_02048D80: - sub r0, r5, #4 - cmp r0, #1 - ldrls r1, _02048DBC @ =0x000F1206 - ldrls r0, _02048DB8 @ =0x022AAE74 - strls r1, [r0, #0x28] - ldrhi r1, _02048DC0 @ =0x000F1209 - ldrhi r0, _02048DB8 @ =0x022AAE74 - strhi r1, [r0, #0x28] -_02048DA0: - mov r0, r4 - bl MemFree - bl FUN_02048cb8 - pop {r3, r4, r5, pc} - .align 2, 0 -_02048DB0: .4byte 0x000001EA -_02048DB4: .4byte 0x09011416 -_02048DB8: .4byte 0x022AAE74 -_02048DBC: .4byte 0x000F1206 -_02048DC0: .4byte 0x000F1209 - arm_func_end FUN_02048cf8 - - arm_func_start FUN_02048dc4 -FUN_02048dc4: @ 0x02048DC4 - push {r3, r4, r5, r6, lr} - sub sp, sp, #4 - mov r6, r0 - mov r0, #0x100 - mov r1, #5 - bl MemAlloc - mov r4, r0 - bl FUN_02048c5c - ldr r5, _02048E68 @ =0x022AAE74 - mov lr, r4 - mov ip, #3 -_02048DF0: - ldm r5!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _02048DF0 - str r6, [r4, #0x28] - bl GetAdventureLogDungeonFloor - ldrb r2, [r0] - ldr r3, _02048E6C @ =0x000001EA - mov r1, r4 - strb r2, [r4, #0x2c] - ldrb ip, [r0, #1] - add r0, sp, #0 - mov r2, #0x100 - strb ip, [r4, #0x2d] - str r3, [sp] - bl WriteSaveFile - movs r5, r0 - bne _02048E54 - ldr r1, [r4, #0x28] - ldr r0, _02048E70 @ =0x022AAE74 - str r1, [r0, #0x28] - ldrb r1, [r4, #0x2c] - strb r1, [r0, #0x2c] - ldrb r1, [r4, #0x2d] - strb r1, [r0, #0x2d] -_02048E54: - mov r0, r4 - bl MemFree - mov r0, r5 - add sp, sp, #4 - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_02048E68: .4byte 0x022AAE74 -_02048E6C: .4byte 0x000001EA -_02048E70: .4byte 0x022AAE74 - arm_func_end FUN_02048dc4 - - arm_func_start WriteSaveFile -WriteSaveFile: @ 0x02048E74 - push {r4, r5, r6, lr} - mov r5, r2 - add r3, r5, #0xff - asr r2, r3, #7 - ldr r4, [r0] - add r2, r3, r2, lsr #24 - mov r6, r1 - add r1, r4, r2, asr #8 - str r1, [r0] - mov r0, r6 - mov r1, r5 - bl CalcChecksum - mov r0, r4 - mov r1, r6 - mov r2, r5 - bl FUN_0204a9c8 - cmp r0, #4 - moveq r0, #1 - popeq {r4, r5, r6, pc} - cmp r0, #0 - movne r0, #2 - moveq r0, #0 - pop {r4, r5, r6, pc} - arm_func_end WriteSaveFile - - arm_func_start ReadSaveFile -ReadSaveFile: @ 0x02048ED0 - push {r3, r4, r5, lr} - mov r4, r2 - add ip, r4, #0xff - asr r3, ip, #7 - ldr lr, [r0] - add r3, ip, r3, lsr #24 - add r3, lr, r3, asr #8 - str r3, [r0] - mov r0, lr - mov r5, r1 - bl FUN_0204a8e0 - cmp r0, #0 - movne r0, #1 - popne {r3, r4, r5, pc} - mov r0, r5 - mov r1, r4 - bl CheckChecksum - cmp r0, #0 - movne r0, #2 - moveq r0, #0 - pop {r3, r4, r5, pc} - arm_func_end ReadSaveFile - - arm_func_start CalcChecksum -CalcChecksum: @ 0x02048F24 - mov r3, #0 - mov ip, #1 - b _02048F3C -_02048F30: - ldr r2, [r0, ip, lsl #2] - add ip, ip, #1 - add r3, r3, r2 -_02048F3C: - cmp ip, r1, lsr #2 - blt _02048F30 - str r3, [r0] - bx lr - arm_func_end CalcChecksum - - arm_func_start CheckChecksum -CheckChecksum: @ 0x02048F4C - mov r3, #0 - mov ip, #1 - b _02048F64 -_02048F58: - ldr r2, [r0, ip, lsl #2] - add ip, ip, #1 - add r3, r3, r2 -_02048F64: - cmp ip, r1, lsr #2 - blt _02048F58 - ldr r0, [r0] - cmp r0, r3 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - arm_func_end CheckChecksum - - arm_func_start NoteSaveBase -NoteSaveBase: @ 0x02048F84 - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov sb, r0 - ldr r0, _02049218 @ =0x0000B65C - mov r1, #5 - bl MemAlloc - mov r4, r0 - add r0, r4, #0x64 - add r5, r0, #0x400 - bl FUN_02048bfc - mov r2, r0 - ldr r0, _0204921C @ =0x0209CD6C - mov r1, sb - bl DebugPrint0 - mov r0, #0 - bl SetNotifyNote - bl GetTime - mov r7, r0 - bl EventFlagBackup - cmp sb, #3 - bne _02048FE0 - bl FUN_02048bfc - mov sb, r0 - b _02048FE8 -_02048FE0: - mov r0, sb - bl FUN_02048c0c -_02048FE8: - str sb, [r4, #0x2c] - bl FUN_02048c3c - str r0, [r4, #0x28] - bl GetRngSeed - str r0, [r4, #0x30] - cmp sb, #0 - mvneq r0, #0 - beq _0204900C - bl GetLanguageType -_0204900C: - ldr r1, _02049220 @ =0x09011416 - strb r0, [r4, #0x34] - add r0, r4, #4 - str r1, [r4, #0x24] - bl ReadStringSave - add r0, r4, #0x38 - bl DumpScriptVariableValues - ldr r1, _02049224 @ =0x00007F6B - mov r0, r5 - bl WriteMonsterInfoToSave - str r0, [r4, #0x438] - add r0, r5, #0x6b - ldr r1, _02049228 @ =0x000005DC - add r0, r0, #0x7f00 - bl FUN_020597b0 - str r0, [r4, #0x43c] - add r0, r5, #0x47 - ldr r1, _0204922C @ =0x000001F7 - add r0, r0, #0x8500 - bl CopyProgressInfoFromScratchTo - str r0, [r4, #0x440] - add r0, r5, #0x3e - ldr r1, _02049230 @ =0x00000DAC - add r0, r0, #0x8700 - bl WriteItemsToSave - str r0, [r4, #0x444] - add r0, r5, #0xea - add r0, r0, #0x9400 - mov r1, #0x10 - bl FUN_02050cf8 - str r0, [r4, #0x448] - add r0, r5, #0xfa - add r0, r0, #0x9400 - mov r1, #0x340 - bl FUN_0204e154 - str r0, [r4, #0x450] - add r0, r5, #0x3a - ldr r1, _02049234 @ =0x000015A0 - add r0, r0, #0x9800 - bl FUN_0205bfb0 - str r0, [r4, #0x454] - add r0, r5, #0xda - ldr r1, _02049238 @ =0x00000237 - add r0, r0, #0xad00 - bl FUN_0205fc20 - str r0, [r4, #0x458] - add r0, r5, #0x11 - add r0, r0, #0xb000 - mov r1, #0xb - bl FUN_020131f0 - add r1, r5, #0x1c - str r0, [r4, #0x45c] - add r0, r1, #0xb000 - mov r1, #0x1dc - bl FUN_0204a3e4 - str r0, [r4, #0x460] - bl GetTime - mov r1, r7 - mov r7, r0 - bl SubtractFloat - bl FloatToDouble - mov r3, r0 - mov r2, r1 - ldr r0, _0204923C @ =0x0209CD84 - mov r1, r3 - bl DebugPrint0 - cmp sb, #2 - moveq r5, #0 - beq _0204912C - ldr r0, _02049240 @ =0x000F1206 - bl FUN_02048dc4 - mov r5, r0 -_0204912C: - cmp r5, #0 - bne _020491C4 - bl FUN_02049350 - cmp r0, #1 - add r0, sp, #0 - ldr r2, _02049218 @ =0x0000B65C - bne _02049188 - mov r3, #0 - mov r1, r4 - str r3, [sp] - bl WriteSaveFile - movs r6, r0 - bne _02049168 - mov r0, #0 - bl FUN_02049360 -_02049168: - ldr r2, _02049218 @ =0x0000B65C - mov r3, #0xc8 - add r0, sp, #0 - mov r1, r4 - str r3, [sp] - bl WriteSaveFile - mov r8, r0 - b _020491C4 -_02049188: - mov r3, #0xc8 - mov r1, r4 - str r3, [sp] - bl WriteSaveFile - movs r8, r0 - bne _020491A8 - mov r0, #1 - bl FUN_02049360 -_020491A8: - ldr r2, _02049218 @ =0x0000B65C - mov r3, #0 - add r0, sp, #0 - mov r1, r4 - str r3, [sp] - bl WriteSaveFile - mov r6, r0 -_020491C4: - bl GetTime - mov r1, r7 - bl SubtractFloat - bl FloatToDouble - mov r3, r0 - mov r2, r1 - ldr r0, _02049244 @ =0x0209CD94 - mov r1, r3 - bl DebugPrint0 - mov r0, r4 - bl MemFree - cmp r5, #0 - movne r0, r5 - popne {r3, r4, r5, r6, r7, r8, sb, pc} - cmp r6, #0 - movne r0, r6 - popne {r3, r4, r5, r6, r7, r8, sb, pc} - cmp r8, #0 - moveq r8, #0 - mov r0, r8 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_02049218: .4byte 0x0000B65C -_0204921C: .4byte 0x0209CD6C -_02049220: .4byte 0x09011416 -_02049224: .4byte 0x00007F6B -_02049228: .4byte 0x000005DC -_0204922C: .4byte 0x000001F7 -_02049230: .4byte 0x00000DAC -_02049234: .4byte 0x000015A0 -_02049238: .4byte 0x00000237 -_0204923C: .4byte 0x0209CD84 -_02049240: .4byte 0x000F1206 -_02049244: .4byte 0x0209CD94 - arm_func_end NoteSaveBase - - arm_func_start WriteQuickSaveInfo -WriteQuickSaveInfo: @ 0x02049248 - push {r3, lr} - mov ip, r0 - mov r2, r1 - mov r3, #0x190 - add r0, sp, #0 - mov r1, ip - str r3, [sp] - bl WriteSaveFile - pop {r3, pc} - arm_func_end WriteQuickSaveInfo - - arm_func_start ReadSaveHeader -ReadSaveHeader: @ 0x0204926C - push {r3, r4, r5, lr} - mov r5, r0 - ldr r0, _0204932C @ =0x0000B65C - mov r1, #5 - bl MemAlloc - mov r4, r0 - ldr r3, _02049330 @ =0x020AFF40 - mov r0, #0 - mov r1, r4 - mov r2, #0x38 - str r0, [r3] - bl FUN_0204a8e0 - cmp r0, #0 - beq _020492B4 - mov r1, r4 - mov r0, #0xc8 - mov r2, #0x38 - bl FUN_0204a8e0 -_020492B4: - cmp r0, #0 - ldrne r0, _02049330 @ =0x020AFF40 - movne r1, #1 - strne r1, [r0, #4] - bne _02049310 - add r0, r4, #4 - bl CheckStringSave - cmp r0, #0 - ldreq r0, _02049330 @ =0x020AFF40 - moveq r1, #5 - streq r1, [r0, #4] - beq _02049310 - ldr r1, [r4, #0x24] - ldr r0, _02049334 @ =0x09011416 - cmp r1, r0 - ldrne r0, _02049330 @ =0x020AFF40 - movne r1, #4 - strne r1, [r0, #4] - ldreq r2, [r4, #0x2c] - ldreq r0, _02049330 @ =0x020AFF40 - moveq r1, #0 - streq r2, [r0] - streq r1, [r0, #4] -_02049310: - mov r0, r4 - bl MemFree - ldr r0, _02049330 @ =0x020AFF40 - ldr r1, [r0] - str r1, [r5] - ldr r0, [r0, #4] - pop {r3, r4, r5, pc} - .align 2, 0 -_0204932C: .4byte 0x0000B65C -_02049330: .4byte 0x020AFF40 -_02049334: .4byte 0x09011416 - arm_func_end ReadSaveHeader - - arm_func_start FUN_02049338 -FUN_02049338: @ 0x02049338 - ldr r1, _0204934C @ =0x020AFF40 - ldr r2, [r1] - str r2, [r0] - ldr r0, [r1, #4] - bx lr - .align 2, 0 -_0204934C: .4byte 0x020AFF40 - arm_func_end FUN_02049338 - - arm_func_start FUN_02049350 -FUN_02049350: @ 0x02049350 - ldr r0, _0204935C @ =0x020AFF40 - ldr r0, [r0, #8] - bx lr - .align 2, 0 -_0204935C: .4byte 0x020AFF40 - arm_func_end FUN_02049350 - - arm_func_start FUN_02049360 -FUN_02049360: @ 0x02049360 - ldr r1, _0204936C @ =0x020AFF40 - str r0, [r1, #8] - bx lr - .align 2, 0 -_0204936C: .4byte 0x020AFF40 - arm_func_end FUN_02049360 - - arm_func_start NoteLoadBase -NoteLoadBase: @ 0x02049370 - push {r3, r4, r5, r6, lr} - sub sp, sp, #4 - ldr r0, _020495FC @ =0x0000B65C - mov r1, #5 - bl MemAlloc - mov r4, r0 - add r0, r4, #0x64 - add r6, r0, #0x400 - bl FUN_02048bfc - mov r1, r0 - ldr r0, _02049600 @ =0x0209CDA4 - bl DebugPrint0 - mov r0, #0 - bl SetNotifyNote - mov r0, #0 - str r0, [sp] - ldr r2, _020495FC @ =0x0000B65C - add r0, sp, #0 - mov r1, r4 - bl ReadSaveFile - movs r5, r0 - beq _02049400 - ldr r2, _020495FC @ =0x0000B65C - mov r3, #0xc8 - add r0, sp, #0 - mov r1, r4 - str r3, [sp] - bl ReadSaveFile - movs r5, r0 - ldrne r0, _02049604 @ =0x020AFF40 - mvnne r1, #0 - strne r1, [r0, #8] - ldreq r0, _02049604 @ =0x020AFF40 - moveq r1, #1 - streq r1, [r0, #8] - b _0204940C -_02049400: - ldr r0, _02049604 @ =0x020AFF40 - mov r1, #0 - str r1, [r0, #8] -_0204940C: - cmp r5, #0 - cmpne r5, #2 - bne _0204943C - add r0, r4, #4 - bl CheckStringSave - cmp r0, #0 - moveq r5, #5 - beq _0204943C - ldr r1, [r4, #0x24] - ldr r0, _02049608 @ =0x09011416 - cmp r1, r0 - movne r5, #4 -_0204943C: - cmp r5, #0 - bne _020494A0 - ldr r1, [r4, #0x2c] - ldr r0, _0204960C @ =0x0209CDB8 - bl DebugPrint0 - ldr r0, [r4, #0x2c] - bl FUN_02048c0c - ldr r0, [r4, #0x28] - bl FUN_02048c4c - ldr r0, [r4, #0x30] + beq _022BF1D0 + ldr r0, [r1, #0x10c] + str r0, [sl, #0x1c] + ldr r0, [r4, #0x14c] + strh r0, [sl, #0x22] + ldr r1, [r4, #4] + ldr r0, [sl, #8] + ldrh r1, [r1, #0x72] + bl FUN_0207A2A4 + ldrh r1, [sl, #6] + mov r0, sl + add r1, r4, r1, lsl #2 + ldr r1, [r1, #0xcc] + blx r1 + b _022BF1D0 +_022BEF64: + cmp r0, #0x81 + bne _022BF1D0 + mov r0, #0xf + strh r0, [sl] + ldr r1, [sl, #0x1c] + cmp r1, #0 + beq _022BF1D0 + mov r0, sl + blx r1 + b _022BF1D0 +_022BEF8C: + cmp r0, #0xe + bne _022BEFCC + ldrh r0, [sl, #4] + add r0, r0, #0xf5 + add r0, r0, #0xff00 lsl r0, r0, #0x10 lsr r0, r0, #0x10 - bl SetRngSeed - ldr r0, [r4, #0x2c] + cmp r0, #1 + bhi _022BEFCC + ldrh r0, [sl, #2] cmp r0, #0 - mvneq r0, #0 - strbeq r0, [r4, #0x34] - beq _020494A0 - ldr r1, [r4, #0x28] - mvn r0, #0 - cmp r1, r0 - beq _020494A0 - ldrsb r0, [r4, #0x34] - bl FUN_020205c0 - bl FUN_0202059c -_020494A0: - cmp r5, #0 - bne _020494B8 - add r0, r4, #0x38 - bl RestoreScriptVariableValues + bne _022BEFCC + ldr r1, [r4, #4] + ldr r0, [sl, #8] + ldrh r1, [r1, #0x72] + bl FUN_0207A2A4 +_022BEFCC: + ldrh r1, [sl] + cmp r1, #2 + ldrheq r0, [sl, #2] + cmpeq r0, #0 + add r0, r4, r1, lsl #2 + bne _022BF008 + ldr r4, [r0, #0x18] + bl ov00_022BEB74 + cmp r4, #0 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, sl + blx r4 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022BF008: + ldr r1, [r0, #0x18] + cmp r1, #0 + beq _022BF030 + mov r0, sl + blx r1 + ldr r0, _022BF210 @ =0x0231E340 + ldrh r0, [r0] cmp r0, #0 - moveq r5, #4 -_020494B8: - cmp r5, #0 - bne _020495D4 - ldr r1, _02049610 @ =0x00007F6B - mov r0, r6 - bl ReadMonsterInfoFromSave - ldr r1, [r4, #0x438] - cmp r0, r1 - add r0, r6, #0x6b - ldr r1, _02049614 @ =0x000005DC - add r0, r0, #0x7f00 - movne r5, #3 - bl FUN_02059a74 - ldr r1, [r4, #0x43c] - cmp r0, r1 - add r0, r6, #0x47 - ldr r1, _02049618 @ =0x000001F7 - add r0, r0, #0x8500 - movne r5, #3 - bl CopyProgressInfoFromScratchFrom - ldr r1, [r4, #0x440] - cmp r0, r1 - add r0, r6, #0x3e - ldr r1, _0204961C @ =0x00000DAC - add r0, r0, #0x8700 - movne r5, #3 - bl ReadItemsFromSave - ldr r1, [r4, #0x444] - cmp r0, r1 - add r0, r6, #0xea - add r0, r0, #0x9400 - mov r1, #0x10 - movne r5, #3 - bl FUN_02050d84 - ldr r1, [r4, #0x448] - cmp r0, r1 - add r0, r6, #0xfa - add r0, r0, #0x9400 - mov r1, #0x340 - movne r5, #3 - bl FUN_0204e19c - ldr r1, [r4, #0x450] - cmp r0, r1 - add r0, r6, #0x3a - ldr r1, _02049620 @ =0x000015A0 - add r0, r0, #0x9800 - movne r5, #3 - bl FUN_0205bd9c - ldr r1, [r4, #0x454] - cmp r0, r1 - add r0, r6, #0xda - ldr r1, _02049624 @ =0x00000237 - add r0, r0, #0xad00 - movne r5, #3 - bl FUN_0205fab0 - ldr r1, [r4, #0x458] - cmp r0, r1 - add r0, r6, #0x11 - add r0, r0, #0xb000 - mov r1, #0xb - movne r5, #3 - bl FUN_02013190 - ldr r1, [r4, #0x45c] - cmp r0, r1 - add r0, r6, #0x1c - add r0, r0, #0xb000 - mov r1, #0x1dc - movne r5, #3 - bl FUN_0204a1dc - ldr r1, [r4, #0x460] - cmp r0, r1 - movne r5, #3 -_020495D4: - cmp r5, #0 - bne _020495E4 - bl FUN_02048cf8 - b _020495E8 -_020495E4: - bl FUN_02048c5c -_020495E8: - mov r0, r4 - bl MemFree - mov r0, r5 - add sp, sp, #4 - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_020495FC: .4byte 0x0000B65C -_02049600: .4byte 0x0209CDA4 -_02049604: .4byte 0x020AFF40 -_02049608: .4byte 0x09011416 -_0204960C: .4byte 0x0209CDB8 -_02049610: .4byte 0x00007F6B -_02049614: .4byte 0x000005DC -_02049618: .4byte 0x000001F7 -_0204961C: .4byte 0x00000DAC -_02049620: .4byte 0x000015A0 -_02049624: .4byte 0x00000237 - arm_func_end NoteLoadBase - - arm_func_start ReadQuickSaveInfo -ReadQuickSaveInfo: @ 0x02049628 - push {r3, lr} - mov ip, r0 - mov r2, r1 - mov r3, #0x190 - add r0, sp, #0 - mov r1, ip - str r3, [sp] - bl ReadSaveFile - pop {r3, pc} - arm_func_end ReadQuickSaveInfo - - arm_func_start FUN_0204964c -FUN_0204964c: @ 0x0204964C - push {r4, lr} - mov r4, r0 - ldr r0, _02049678 @ =0x0209CDD0 - bl FUN_02034974 - cmp r0, #0 - ldrne r1, _0204967C @ =0x022AAEA4 - ldrne r0, _02049680 @ =0x020AFF4C - movne r2, #0 - strne r4, [r1] - strne r2, [r0, #4] - pop {r4, pc} - .align 2, 0 -_02049678: .4byte 0x0209CDD0 -_0204967C: .4byte 0x022AAEA4 -_02049680: .4byte 0x020AFF4C - arm_func_end FUN_0204964c -_02049684: - .byte 0x08, 0x40, 0x2D, 0xE9, 0xB4, 0x00, 0xA0, 0xE3, 0x08, 0x10, 0xA0, 0xE3 - .byte 0xB6, 0xDE, 0xFE, 0xEB, 0x50, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x81, 0xE5, 0x1C, 0x00, 0x80, 0xE2 - .byte 0xE4, 0xAC, 0xFF, 0xEB, 0x40, 0x20, 0x9F, 0xE5, 0x40, 0x10, 0x9F, 0xE5, 0x00, 0x30, 0x92, 0xE5 - .byte 0x18, 0x00, 0x83, 0xE5, 0x00, 0x30, 0x91, 0xE5, 0x00, 0x10, 0x92, 0xE5, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x08, 0x30, 0x81, 0xE5, 0x79, 0x96, 0xFF, 0xEB, 0x1C, 0x10, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3 - .byte 0x00, 0x20, 0x91, 0xE5, 0x00, 0x00, 0xC2, 0xE5, 0x00, 0x20, 0x91, 0xE5, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x04, 0x30, 0x82, 0xE5, 0x04, 0x30, 0x81, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x4C, 0xFF, 0x0A, 0x02 - .byte 0xA4, 0xAE, 0x2A, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x2C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x08, 0xD0, 0x00, 0xD0, 0xE1, 0x8D, 0x96, 0xFF, 0xEB - .byte 0x14, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x9A, 0xDE, 0xFE, 0xEB, 0x08, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x4C, 0xFF, 0x0A, 0x02 - - arm_func_start FUN_02049730 -FUN_02049730: @ 0x02049730 - push {r3, lr} - ldr r1, _02049A18 @ =0x020AFF4C - ldr r3, [r1] - ldr r0, [r3, #4] + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022BF030: + ldrh r0, [sl] cmp r0, #8 - addls pc, pc, r0, lsl #2 - b _02049A10 -_0204974C: @ jump table - b _02049770 @ case 0 - b _020497A4 @ case 1 - b _020497C4 @ case 2 - b _020497E8 @ case 3 - b _020498C8 @ case 4 - b _0204996C @ case 5 - b _020499A0 @ case 6 - b _020499CC @ case 7 - b _020499FC @ case 8 -_02049770: - ldr r0, [r3, #8] - ldr r1, _02049A1C @ =0x0209CDE0 - lsl r2, r0, #1 - ldrsb r0, [r3] - ldrh r2, [r1, r2] - ldr r1, _02049A20 @ =0x00000408 - mov r3, #0 - bl ShowMessageInDBox - ldr r0, _02049A18 @ =0x020AFF4C - mov r1, #1 - ldr r0, [r0] - str r1, [r0, #4] - b _02049A10 -_020497A4: - ldrsb r0, [r3] - bl IsDBoxActive - cmp r0, #0 - ldreq r0, _02049A18 @ =0x020AFF4C - moveq r1, #2 - ldreq r0, [r0] - streq r1, [r0, #4] - b _02049A10 -_020497C4: - mov r0, #0xe0 - mov r1, #0x88 - mov r2, #1 - bl FUN_02029f88 - ldr r0, _02049A18 @ =0x020AFF4C - mov r1, #3 - ldr r0, [r0] - str r1, [r0, #4] - b _02049A10 -_020497E8: - bl FUN_02003b94 - ldr r0, _02049A18 @ =0x020AFF4C - ldr r1, _02049A24 @ =0x0209CE10 - ldr r3, [r0] - ldr r2, [r3, #8] - ldr r1, [r1, r2, lsl #2] - str r1, [r3, #0x10] - ldr r0, [r0] - ldr r0, [r0, #0x10] - cmp r0, #4 - bne _02049834 - ldr r0, _02049A28 @ =0x000F120A - bl FUN_02048dc4 - mov r0, #2 - bl NoteSaveBase - ldr r1, _02049A18 @ =0x020AFF4C - ldr r1, [r1] - str r0, [r1, #0xc] - b _020498B0 -_02049834: - cmp r0, #2 - bne _020498A0 - bl FUN_02048cb8 - ldr r2, _02049A18 @ =0x020AFF4C - ldr r1, _02049A2C @ =0x000F1207 - ldr r3, [r2] - str r0, [r3, #0x14] - ldr r0, [r2] - ldr r0, [r0, #0x14] - cmp r0, r1 - bne _02049868 - add r0, r1, #1 - bl FUN_02048dc4 -_02049868: - mov r0, #2 - bl NoteSaveBase - ldr r1, _02049A18 @ =0x020AFF4C - ldr r2, [r1] - str r0, [r2, #0xc] - ldr r1, [r1] - ldr r0, [r1, #0xc] - cmp r0, #0 - ldreq r0, [r1, #0x14] - ldreq r1, _02049A2C @ =0x000F1207 - cmpeq r0, r1 - bne _020498B0 - bl FUN_02048dc4 - b _020498B0 -_020498A0: - bl NoteSaveBase - ldr r1, _02049A18 @ =0x020AFF4C - ldr r1, [r1] - str r0, [r1, #0xc] -_020498B0: - bl FUN_02003bc8 - ldr r0, _02049A18 @ =0x020AFF4C - mov r1, #4 - ldr r0, [r0] - str r1, [r0, #4] - b _02049A10 -_020498C8: - bl FUN_02029fbc - ldr r0, _02049A18 @ =0x020AFF4C - ldr r3, [r0] - ldr r0, [r3, #0xc] - cmp r0, #1 - bne _02049908 - ldrsb r0, [r3] - ldr r1, _02049A30 @ =0x0000040C - mov r2, #0x238 - mov r3, #0 - bl ShowMessageInDBox - ldr r0, _02049A18 @ =0x020AFF4C - mov r1, #8 - ldr r0, [r0] - str r1, [r0, #4] - b _02049A10 -_02049908: - cmp r0, #0 - bne _02049944 - ldr r0, [r3, #8] - ldr r1, _02049A34 @ =0x0209CDF8 - lsl r2, r0, #1 - ldrsb r0, [r3] - ldrh r2, [r1, r2] - ldr r1, _02049A38 @ =0x0000061C - mov r3, #0 - bl ShowMessageInDBox - ldr r0, _02049A18 @ =0x020AFF4C - mov r1, #5 - ldr r0, [r0] - str r1, [r0, #4] - b _02049A10 -_02049944: - ldrsb r0, [r3] - ldr r1, _02049A38 @ =0x0000061C - ldr r2, _02049A3C @ =0x00000239 - mov r3, #0 - bl ShowMessageInDBox - ldr r0, _02049A18 @ =0x020AFF4C - mov r1, #5 - ldr r0, [r0] - str r1, [r0, #4] - b _02049A10 -_0204996C: - ldrsb r0, [r3] - bl IsDBoxActive - cmp r0, #0 - bne _02049A10 - ldr r0, _02049A18 @ =0x020AFF4C - ldr r0, [r0] - ldrsb r0, [r0] - bl FUN_0202f334 - ldr r0, _02049A18 @ =0x020AFF4C - mov r1, #6 - ldr r0, [r0] - str r1, [r0, #4] - b _02049A10 -_020499A0: - ldrsb r0, [r3] - bl IsDBoxActive - cmp r0, #0 - bne _02049A10 - ldr r0, _02049A18 @ =0x020AFF4C - mov r1, #2 - str r1, [r0, #4] - ldr r0, [r0] - mov r1, #7 - str r1, [r0, #4] - b _02049A10 -_020499CC: - mov r0, #9 - str r0, [r3, #4] - ldr r2, [r1] - ldr r0, [r2, #0x18] - tst r0, #0x100 - beq _020499F4 - ldr r0, [r2, #0xa4] - ldr r1, [r1, #4] - ldr r2, [r2, #0xa0] - blx r2 -_020499F4: - mov r0, #4 - pop {r3, pc} -_020499FC: - ldrsb r0, [r3] - bl IsDBoxActive - cmp r0, #0 - bne _02049A10 - bl CardBackupError -_02049A10: - mov r0, #1 - pop {r3, pc} - .align 2, 0 -_02049A18: .4byte 0x020AFF4C -_02049A1C: .4byte 0x0209CDE0 -_02049A20: .4byte 0x00000408 -_02049A24: .4byte 0x0209CE10 -_02049A28: .4byte 0x000F120A -_02049A2C: .4byte 0x000F1207 -_02049A30: .4byte 0x0000040C -_02049A34: .4byte 0x0209CDF8 -_02049A38: .4byte 0x0000061C -_02049A3C: .4byte 0x00000239 - arm_func_end FUN_02049730 - - arm_func_start FUN_02049a40 -FUN_02049a40: @ 0x02049A40 - push {r3, lr} - mov r3, r0 - mov r2, r1 - ldr r0, _02049A6C @ =0x0209CE40 - mov r1, r3 - bl FUN_02034974 - cmp r0, #0 - ldrne r0, _02049A70 @ =0x020AFF54 - movne r1, #0 - strne r1, [r0, #4] - pop {r3, pc} - .align 2, 0 -_02049A6C: .4byte 0x0209CE40 -_02049A70: .4byte 0x020AFF54 - arm_func_end FUN_02049a40 -_02049A74: - .byte 0x08, 0x40, 0x2D, 0xE9, 0xA8, 0x00, 0xA0, 0xE3, 0x08, 0x10, 0xA0, 0xE3 - .byte 0xBA, 0xDD, 0xFE, 0xEB, 0x40, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x81, 0xE5, 0x10, 0x00, 0x80, 0xE2 - .byte 0xE8, 0xAB, 0xFF, 0xEB, 0x30, 0x10, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x0C, 0x00, 0x81, 0xE5 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x81, 0x95, 0xFF, 0xEB, 0x1C, 0x10, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3 - .byte 0x00, 0x20, 0x91, 0xE5, 0x00, 0x00, 0xC2, 0xE5, 0x00, 0x20, 0x91, 0xE5, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x04, 0x30, 0x82, 0xE5, 0x04, 0x30, 0x81, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x54, 0xFF, 0x0A, 0x02 - - arm_func_start FUN_02049ad0 -FUN_02049ad0: @ 0x02049AD0 - push {r3, lr} - ldr r0, _02049B08 @ =0x020AFF54 - ldr r0, [r0] - cmp r0, #0 - popeq {r3, pc} - ldrsb r0, [r0] - bl FreeDBox - ldr r0, _02049B08 @ =0x020AFF54 - ldr r0, [r0] - bl MemFree - ldr r0, _02049B08 @ =0x020AFF54 - mov r1, #0 - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_02049B08: .4byte 0x020AFF54 - arm_func_end FUN_02049ad0 -_02049B0C: - .byte 0x08, 0x40, 0x2D, 0xE9 - .byte 0x1C, 0x02, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x04, 0x00, 0x92, 0xE5, 0x08, 0x00, 0x50, 0xE3 - .byte 0x00, 0xF1, 0x8F, 0x90, 0x80, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0x10, 0x00, 0x00, 0xEA - .byte 0x17, 0x00, 0x00, 0xEA, 0x1F, 0x00, 0x00, 0xEA, 0x2B, 0x00, 0x00, 0xEA, 0x4C, 0x00, 0x00, 0xEA - .byte 0x58, 0x00, 0x00, 0xEA, 0x62, 0x00, 0x00, 0xEA, 0x72, 0x00, 0x00, 0xEA, 0xD0, 0x00, 0xD2, 0xE1 - .byte 0xE0, 0x11, 0x9F, 0xE5, 0xE0, 0x21, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x94, 0x95, 0xFF, 0xEB - .byte 0xCC, 0x01, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5 - .byte 0x6D, 0x00, 0x00, 0xEA, 0xD0, 0x00, 0xD2, 0xE1, 0x80, 0x95, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0xAC, 0x01, 0x9F, 0x05, 0x02, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x90, 0x05, 0x04, 0x10, 0x80, 0x05 - .byte 0x65, 0x00, 0x00, 0xEA, 0xE0, 0x00, 0xA0, 0xE3, 0x88, 0x10, 0xA0, 0xE3, 0x01, 0x20, 0xA0, 0xE3 - .byte 0xF8, 0x80, 0xFF, 0xEB, 0x88, 0x01, 0x9F, 0xE5, 0x03, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 - .byte 0x04, 0x10, 0x80, 0xE5, 0x5C, 0x00, 0x00, 0xEA, 0xF5, 0xE7, 0xFE, 0xEB, 0x24, 0xFA, 0xFF, 0xEB - .byte 0x00, 0x00, 0xA0, 0xE3, 0xEE, 0xFC, 0xFF, 0xEB, 0x64, 0x11, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 - .byte 0x08, 0x00, 0x81, 0xE5, 0xFB, 0xE7, 0xFE, 0xEB, 0x54, 0x01, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x4F, 0x00, 0x00, 0xEA, 0xF2, 0x80, 0xFF, 0xEB - .byte 0x3C, 0x01, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x08, 0x00, 0x91, 0xE5 - .byte 0x01, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x1A, 0xD0, 0x00, 0xD1, 0xE1, 0x2C, 0x11, 0x9F, 0xE5 - .byte 0x8E, 0x2F, 0xA0, 0xE3, 0x66, 0x95, 0xFF, 0xEB, 0x14, 0x01, 0x9F, 0xE5, 0x08, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x3F, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x50, 0xE3 - .byte 0xD0, 0x00, 0xD1, 0xE1, 0x08, 0x11, 0x9F, 0xE5, 0x06, 0x00, 0x00, 0x1A, 0x25, 0x2E, 0xA0, 0xE3 - .byte 0x5B, 0x95, 0xFF, 0xEB, 0xE8, 0x00, 0x9F, 0xE5, 0x05, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 - .byte 0x04, 0x10, 0x80, 0xE5, 0x34, 0x00, 0x00, 0xEA, 0xE8, 0x20, 0x9F, 0xE5, 0x54, 0x95, 0xFF, 0xEB - .byte 0xCC, 0x00, 0x9F, 0xE5, 0x05, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5 - .byte 0x2D, 0x00, 0x00, 0xEA, 0xD0, 0x00, 0xD2, 0xE1, 0x40, 0x95, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x29, 0x00, 0x00, 0x1A, 0xA8, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1 - .byte 0xA7, 0x95, 0xFF, 0xEB, 0x98, 0x00, 0x9F, 0xE5, 0x06, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 - .byte 0x04, 0x10, 0x80, 0xE5, 0x20, 0x00, 0x00, 0xEA, 0xD0, 0x00, 0xD2, 0xE1, 0x33, 0x95, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x1C, 0x00, 0x00, 0x1A, 0x74, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3 - .byte 0x04, 0x10, 0x80, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x07, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x80, 0xE5 - .byte 0x15, 0x00, 0x00, 0xEA, 0x09, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE2, 0x04, 0x10, 0x82, 0xE5 - .byte 0xAC, 0x04, 0x00, 0xEB, 0x00, 0x00, 0xDD, 0xE5, 0x24, 0x75, 0xFF, 0xEB, 0x40, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0x90, 0xE5, 0x0C, 0x00, 0x91, 0xE5, 0x01, 0x0C, 0x10, 0xE3, 0x03, 0x00, 0x00, 0x0A - .byte 0x98, 0x00, 0x91, 0xE5, 0x94, 0x20, 0x91, 0xE5, 0x08, 0x10, 0xA0, 0xE3, 0x32, 0xFF, 0x2F, 0xE1 - .byte 0x04, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8, 0xD0, 0x00, 0xD2, 0xE1, 0x17, 0x95, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x1A, 0x19, 0xE8, 0xFE, 0xEB, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x08, 0x80, 0xBD, 0xE8, 0x54, 0xFF, 0x0A, 0x02, 0x08, 0x04, 0x00, 0x00, 0x4F, 0x02, 0x00, 0x00 - .byte 0x0C, 0x04, 0x00, 0x00, 0x1C, 0x06, 0x00, 0x00, 0x3A, 0x02, 0x00, 0x00, 0x10, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x1C, 0x00, 0x9F, 0xE5, 0x05, 0xAB, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x14, 0x10, 0x9F, 0x15, 0x14, 0x00, 0x9F, 0x15, 0x00, 0x20, 0xA0, 0x13, 0x00, 0x40, 0x81, 0x15 - .byte 0x00, 0x20, 0x80, 0x15, 0x10, 0x80, 0xBD, 0xE8, 0x58, 0xCE, 0x09, 0x02, 0xA8, 0xAE, 0x2A, 0x02 - .byte 0x5C, 0xFF, 0x0A, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0xA8, 0x00, 0xA0, 0xE3, 0x08, 0x10, 0xA0, 0xE3 - .byte 0xF6, 0xDC, 0xFE, 0xEB, 0x50, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0x81, 0xE5, 0x10, 0x00, 0x80, 0xE2 - .byte 0x24, 0xAB, 0xFF, 0xEB, 0x40, 0x20, 0x9F, 0xE5, 0x40, 0x10, 0x9F, 0xE5, 0x04, 0x30, 0x92, 0xE5 - .byte 0x0C, 0x00, 0x83, 0xE5, 0x00, 0x30, 0x91, 0xE5, 0x04, 0x10, 0x92, 0xE5, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x08, 0x30, 0x81, 0xE5, 0xB9, 0x94, 0xFF, 0xEB, 0x1C, 0x10, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3 - .byte 0x04, 0x20, 0x91, 0xE5, 0x00, 0x00, 0xC2, 0xE5, 0x04, 0x20, 0x91, 0xE5, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x04, 0x30, 0x82, 0xE5, 0x00, 0x30, 0x81, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x5C, 0xFF, 0x0A, 0x02 - .byte 0xA8, 0xAE, 0x2A, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x2C, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x08, 0xD0, 0x00, 0xD0, 0xE1, 0xCD, 0x94, 0xFF, 0xEB - .byte 0x14, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0xDA, 0xDC, 0xFE, 0xEB, 0x08, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x5C, 0xFF, 0x0A, 0x02 - - arm_func_start FUN_02049e30 -FUN_02049e30: @ 0x02049E30 - push {r3, lr} - ldr r1, _0204A004 @ =0x020AFF5C - ldr r3, [r1, #4] - ldr r0, [r3, #4] - cmp r0, #7 - addls pc, pc, r0, lsl #2 - b _02049FFC -_02049E4C: @ jump table - b _02049E6C @ case 0 - b _02049EA0 @ case 1 - b _02049EC0 @ case 2 - b _02049EE4 @ case 3 - b _02049F2C @ case 4 - b _02049F6C @ case 5 - b _02049FA0 @ case 6 - b _02049FCC @ case 7 -_02049E6C: - ldr r0, [r3, #8] - ldr r1, _0204A008 @ =0x0209CE54 - lsl r2, r0, #1 - ldrsb r0, [r3] - ldrh r2, [r1, r2] - ldr r1, _0204A00C @ =0x00000408 - mov r3, #0 - bl ShowMessageInDBox - ldr r0, _0204A004 @ =0x020AFF5C - mov r1, #1 - ldr r0, [r0, #4] - str r1, [r0, #4] - b _02049FFC -_02049EA0: - ldrsb r0, [r3] - bl IsDBoxActive - cmp r0, #0 - ldreq r0, _0204A004 @ =0x020AFF5C - moveq r1, #2 - ldreq r0, [r0, #4] - streq r1, [r0, #4] - b _02049FFC -_02049EC0: - mov r0, #0xe0 - mov r1, #0x88 - mov r2, #1 - bl FUN_02029f88 - ldr r0, _0204A004 @ =0x020AFF5C - mov r1, #3 - ldr r0, [r0, #4] - str r1, [r0, #4] - b _02049FFC -_02049EE4: - bl FUN_02003b94 - ldr r0, _0204A004 @ =0x020AFF5C - ldr r0, [r0, #4] - ldr r0, [r0, #8] - cmp r0, #0 - beq _02049F08 - cmp r0, #1 - beq _02049F10 - b _02049F14 -_02049F08: - bl FUN_0204a624 - b _02049F14 -_02049F10: - bl FUN_0204a72c -_02049F14: - bl FUN_02003bc8 - ldr r0, _0204A004 @ =0x020AFF5C - mov r1, #4 - ldr r0, [r0, #4] - str r1, [r0, #4] - b _02049FFC -_02049F2C: - bl FUN_02029fbc - ldr r0, _0204A004 @ =0x020AFF5C - ldr r2, _0204A010 @ =0x0209CE50 - ldr r0, [r0, #4] - ldr r1, _0204A014 @ =0x0000061C - ldr r3, [r0, #8] - ldrsb r0, [r0] - lsl r3, r3, #1 - ldrh r2, [r2, r3] - mov r3, #0 - bl ShowMessageInDBox - ldr r0, _0204A004 @ =0x020AFF5C - mov r1, #5 - ldr r0, [r0, #4] - str r1, [r0, #4] - b _02049FFC -_02049F6C: - ldrsb r0, [r3] - bl IsDBoxActive - cmp r0, #0 - bne _02049FFC - ldr r0, _0204A004 @ =0x020AFF5C - ldr r0, [r0, #4] - ldrsb r0, [r0] - bl FUN_0202f334 - ldr r0, _0204A004 @ =0x020AFF5C - mov r1, #6 - ldr r0, [r0, #4] - str r1, [r0, #4] - b _02049FFC -_02049FA0: - ldrsb r0, [r3] - bl IsDBoxActive - cmp r0, #0 - bne _02049FFC - ldr r0, _0204A004 @ =0x020AFF5C - mov r1, #2 - str r1, [r0] - ldr r0, [r0, #4] - mov r1, #7 - str r1, [r0, #4] - b _02049FFC -_02049FCC: - mov r0, #8 - str r0, [r3, #4] - ldr r2, [r1, #4] - ldr r0, [r2, #0xc] - tst r0, #0x100 - beq _02049FF4 - ldr r0, [r2, #0x98] - ldr r1, [r1] - ldr r2, [r2, #0x94] - blx r2 -_02049FF4: - mov r0, #4 - pop {r3, pc} -_02049FFC: - mov r0, #1 - pop {r3, pc} - .align 2, 0 -_0204A004: .4byte 0x020AFF5C -_0204A008: .4byte 0x0209CE54 -_0204A00C: .4byte 0x00000408 -_0204A010: .4byte 0x0209CE50 -_0204A014: .4byte 0x0000061C - arm_func_end FUN_02049e30 -_0204A018: - .byte 0x04, 0xC0, 0x9F, 0xE5, 0x04, 0x00, 0x9F, 0xE5 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xE4, 0x48, 0x03, 0x02, 0x68, 0xCE, 0x09, 0x02, 0x08, 0x40, 0x2D, 0xE9 - .byte 0x01, 0x00, 0xA0, 0xE3, 0x08, 0x10, 0xA0, 0xE3, 0x4C, 0xDC, 0xFE, 0xEB, 0x34, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x81, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x18, 0x94, 0xFF, 0xEB, 0x24, 0x30, 0x9F, 0xE5 - .byte 0x24, 0x10, 0x9F, 0xE5, 0x00, 0xC0, 0x93, 0xE5, 0x8E, 0x2F, 0xA0, 0xE3, 0x00, 0x00, 0xCC, 0xE5 - .byte 0x00, 0x00, 0x93, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0xD0, 0x00, 0xD0, 0xE1, 0x50, 0x94, 0xFF, 0xEB - .byte 0x01, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8, 0x64, 0xFF, 0x0A, 0x02, 0x08, 0x04, 0x00, 0x00 - - arm_func_start FUN_0204a080 -FUN_0204a080: @ 0x0204A080 - push {r3, lr} - ldr r0, _0204A0B8 @ =0x020AFF64 - ldr r0, [r0] - cmp r0, #0 - popeq {r3, pc} - ldrsb r0, [r0] - bl FreeDBox - ldr r0, _0204A0B8 @ =0x020AFF64 - ldr r0, [r0] - bl MemFree - ldr r0, _0204A0B8 @ =0x020AFF64 - mov r1, #0 - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_0204A0B8: .4byte 0x020AFF64 - arm_func_end FUN_0204a080 -_0204A0BC: - .byte 0x08, 0x40, 0x2D, 0xE9 - .byte 0x1C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0x2B, 0x94, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x1A, 0x2D, 0xE7, 0xFE, 0xEB, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x08, 0x80, 0xBD, 0xE8, 0x64, 0xFF, 0x0A, 0x02, 0x04, 0xC0, 0x9F, 0xE5, 0x04, 0x00, 0x9F, 0xE5 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xE4, 0x48, 0x03, 0x02, 0x78, 0xCE, 0x09, 0x02, 0x08, 0x40, 0x2D, 0xE9 - .byte 0x01, 0x00, 0xA0, 0xE3, 0x08, 0x10, 0xA0, 0xE3, 0x18, 0xDC, 0xFE, 0xEB, 0x34, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x81, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0xE4, 0x93, 0xFF, 0xEB, 0x24, 0x30, 0x9F, 0xE5 - .byte 0x24, 0x10, 0x9F, 0xE5, 0x00, 0xC0, 0x93, 0xE5, 0x20, 0x20, 0x9F, 0xE5, 0x00, 0x00, 0xCC, 0xE5 - .byte 0x00, 0x00, 0x93, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0xD0, 0x00, 0xD0, 0xE1, 0x1C, 0x94, 0xFF, 0xEB - .byte 0x01, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8, 0x68, 0xFF, 0x0A, 0x02, 0x08, 0x04, 0x00, 0x00 - .byte 0x47, 0x02, 0x00, 0x00, 0x08, 0x40, 0x2D, 0xE9, 0x2C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x08, 0xD0, 0x00, 0xD0, 0xE1, 0xF5, 0x93, 0xFF, 0xEB - .byte 0x14, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x02, 0xDC, 0xFE, 0xEB, 0x08, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x68, 0xFF, 0x0A, 0x02 - .byte 0x01, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start thunk_FUN_0207b9ec -thunk_FUN_0207b9ec: @ 0x0204A198 - ldr ip, _0204A1A0 @ =FUN_0207b9ec - bx ip - .align 2, 0 -_0204A1A0: .4byte FUN_0207b9ec - arm_func_end thunk_FUN_0207b9ec - - arm_func_start FUN_0204a1a4 -FUN_0204a1a4: @ 0x0204A1A4 - push {r3, lr} - ldr r0, _0204A1C4 @ =0x022AAEAC - mov r1, #0x1f0 - bl MemZero - ldr r1, _0204A1C4 @ =0x022AAEAC - ldr r0, _0204A1C8 @ =0x020AFF6C - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_0204A1C4: .4byte 0x022AAEAC -_0204A1C8: .4byte 0x020AFF6C - arm_func_end FUN_0204a1a4 -_0204A1CC: - .byte 0x04, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x6C, 0xFF, 0x0A, 0x02 - - arm_func_start FUN_0204a1dc -FUN_0204a1dc: @ 0x0204A1DC - push {r3, r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #0x14 - mov r3, r0 - mov r2, r1 - add r0, sp, #4 - mov r1, r3 - bl FUN_02050974 - ldr r1, _0204A3E0 @ =0x020AFF6C - add r0, sp, #4 - ldr r1, [r1] - mov r2, #0x200 - bl CopyBitsFrom - ldr r5, _0204A3E0 @ =0x020AFF6C - mov r8, #0 - add r7, sp, #4 - mov r6, #0x50 - mov r4, #0xa -_0204A220: - ldr r1, [r5] - mov r0, r7 - add r1, r1, #0x40 - mla r1, r8, r4, r1 - mov r2, r6 - bl CopyBitsFrom - add r8, r8, #1 - cmp r8, #0x10 - blt _0204A220 - ldr r5, _0204A3E0 @ =0x020AFF6C - mov r8, #0 - add r7, sp, #4 - mov r6, #0x60 - mov r4, #0xc -_0204A258: - ldr r1, [r5] - mov r0, r7 - add r1, r1, #0xe0 - mla r1, r8, r4, r1 - mov r2, r6 - bl CopyBitsFrom - add r8, r8, #1 - cmp r8, #0x10 - blt _0204A258 - mov sb, #0 - mov r5, #1 - ldr sl, _0204A3E0 @ =0x020AFF6C - mov r4, sb - add r8, sp, #4 - add r7, sp, #0 - mov r6, r5 -_0204A298: - mov r0, r8 - mov r1, r7 - mov r2, r6 - bl CopyBitsFrom - ldrb r0, [sp] - cmp r0, #0 - ldr r0, [sl] - movne r1, r5 - add r0, r0, sb - moveq r1, r4 - add sb, sb, #1 - strb r1, [r0, #0x1a0] - cmp sb, #0x10 - blt _0204A298 - ldr r1, _0204A3E0 @ =0x020AFF6C - add r0, sp, #4 - ldr r1, [r1] - mov r2, #0x1b0 - add r1, r1, #0x1b0 - bl CopyBitsFrom - ldr r1, _0204A3E0 @ =0x020AFF6C - add r0, sp, #4 - ldr r1, [r1] - mov r2, #0xe - add r1, r1, #0xe6 - add r1, r1, #0x100 - bl CopyBitsFrom - ldr r1, _0204A3E0 @ =0x020AFF6C - add r0, sp, #4 - ldr r1, [r1] - mov r2, #0xe - add r1, r1, #0x1e8 - bl CopyBitsFrom - add r0, sp, #4 - add r1, sp, #0 - mov r2, #1 - bl CopyBitsFrom - ldrb r0, [sp] - ldr r1, _0204A3E0 @ =0x020AFF6C - cmp r0, #0 - movne r3, #1 - ldr r2, [r1] - moveq r3, #0 - strb r3, [r2, #0x1ea] - add r0, sp, #4 - add r1, sp, #0 - mov r2, #1 - bl CopyBitsFrom - ldrb r0, [sp] - ldr r1, _0204A3E0 @ =0x020AFF6C - cmp r0, #0 - movne r3, #1 - ldr r2, [r1] - moveq r3, #0 - strb r3, [r2, #0x1eb] - add r0, sp, #4 - add r1, sp, #0 - mov r2, #1 - bl CopyBitsFrom - ldrb r0, [sp] - ldr r1, _0204A3E0 @ =0x020AFF6C - cmp r0, #0 - movne r3, #1 - ldr r2, [r1] - moveq r3, #0 - strb r3, [r2, #0x1ec] - add r0, sp, #4 - add r1, sp, #0 - mov r2, #1 - bl CopyBitsFrom - ldrb r0, [sp] - ldr r1, _0204A3E0 @ =0x020AFF6C - cmp r0, #0 - movne r2, #1 - ldr r1, [r1] - moveq r2, #0 - add r0, sp, #4 - strb r2, [r1, #0x1ed] - bl FUN_020509bc - ldr r0, [sp, #0xc] - add sp, sp, #0x14 - pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_0204A3E0: .4byte 0x020AFF6C - arm_func_end FUN_0204a1dc - - arm_func_start FUN_0204a3e4 -FUN_0204a3e4: @ 0x0204A3E4 - push {r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x14 - mov r5, r0 - mov r2, r1 - mov r4, #0xff - mov r3, #0 - add r0, sp, #4 - mov r1, r5 - strb r4, [sp, #1] - strb r3, [sp] - bl FUN_02050990 - ldr r1, _0204A5CC @ =0x020AFF6C - add r0, sp, #4 - ldr r1, [r1] - mov r2, #0x200 - bl CopyBitsTo - ldr r5, _0204A5CC @ =0x020AFF6C - mov r8, #0 - add r7, sp, #4 - mov r6, #0x50 - mov r4, #0xa -_0204A438: - ldr r1, [r5] - mov r0, r7 - add r1, r1, #0x40 - mla r1, r8, r4, r1 - mov r2, r6 - bl CopyBitsTo - add r8, r8, #1 - cmp r8, #0x10 - blt _0204A438 - ldr r5, _0204A5CC @ =0x020AFF6C - mov r8, #0 - add r7, sp, #4 - mov r6, #0x60 - mov r4, #0xc -_0204A470: - ldr r1, [r5] - mov r0, r7 - add r1, r1, #0xe0 - mla r1, r8, r4, r1 - mov r2, r6 - bl CopyBitsTo - add r8, r8, #1 - cmp r8, #0x10 - blt _0204A470 - ldr r5, _0204A5CC @ =0x020AFF6C - mov r4, #0 - add r8, sp, #0 - add sb, sp, #1 - add r7, sp, #4 - mov r6, #1 -_0204A4AC: - ldr r0, [r5] - mov r2, r6 - add r0, r0, r4 - ldrb r0, [r0, #0x1a0] - cmp r0, #0 - movne r1, sb - moveq r1, r8 - mov r0, r7 - bl CopyBitsTo - add r4, r4, #1 - cmp r4, #0x10 - blt _0204A4AC - ldr r1, _0204A5CC @ =0x020AFF6C - add r0, sp, #4 - ldr r1, [r1] - mov r2, #0x1b0 - add r1, r1, #0x1b0 - bl CopyBitsTo - ldr r1, _0204A5CC @ =0x020AFF6C - add r0, sp, #4 - ldr r1, [r1] - mov r2, #0xe - add r1, r1, #0xe6 - add r1, r1, #0x100 - bl CopyBitsTo - ldr r1, _0204A5CC @ =0x020AFF6C - add r0, sp, #4 - ldr r1, [r1] - mov r2, #0xe - add r1, r1, #0x1e8 - bl CopyBitsTo - ldr r0, _0204A5CC @ =0x020AFF6C - mov r2, #1 - ldr r0, [r0] - ldrb r0, [r0, #0x1ea] - cmp r0, #0 - addne r1, sp, #1 - addeq r1, sp, #0 - add r0, sp, #4 - bl CopyBitsTo - ldr r0, _0204A5CC @ =0x020AFF6C - mov r2, #1 - ldr r0, [r0] - ldrb r0, [r0, #0x1eb] - cmp r0, #0 - addne r1, sp, #1 - addeq r1, sp, #0 - add r0, sp, #4 - bl CopyBitsTo - ldr r0, _0204A5CC @ =0x020AFF6C - mov r2, #1 - ldr r0, [r0] - ldrb r0, [r0, #0x1ec] - cmp r0, #0 - addne r1, sp, #1 - addeq r1, sp, #0 - add r0, sp, #4 - bl CopyBitsTo - ldr r0, _0204A5CC @ =0x020AFF6C - mov r2, #1 - ldr r0, [r0] - ldrb r0, [r0, #0x1ed] - cmp r0, #0 - addne r1, sp, #1 - addeq r1, sp, #0 - add r0, sp, #4 - bl CopyBitsTo - add r0, sp, #4 - bl FUN_020509bc - ldr r0, [sp, #0xc] - add sp, sp, #0x14 - pop {r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0204A5CC: .4byte 0x020AFF6C - arm_func_end FUN_0204a3e4 - - arm_func_start FUN_0204a5d0 -FUN_0204a5d0: @ 0x0204A5D0 - push {r4, lr} - bl FUN_02084304 - bl FUN_0207902c - mov r4, r0 - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl FUN_0208346c - ldr r0, _0204A61C @ =0x00001101 - bl FUN_02083b3c - bl FUN_02083b14 - ldr r2, _0204A620 @ =0x022AB09C - lsl r1, r4, #0x10 - str r0, [r2] - lsr r0, r1, #0x10 - bl FUN_0208347c - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl FUN_02079094 - pop {r4, pc} - .align 2, 0 -_0204A61C: .4byte 0x00001101 -_0204A620: .4byte 0x022AB09C - arm_func_end FUN_0204a5d0 - - arm_func_start FUN_0204a624 -FUN_0204a624: @ 0x0204A624 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x14 - sub sp, sp, #0x400 - bl FUN_02083b00 - and r0, r0, #0xff - cmp r0, #1 - bne _0204A720 - mov r1, #0 - mov r0, #0xff - add r8, sp, #0x14 -_0204A64C: - strb r0, [r8, r1] - add r1, r1, #1 - cmp r1, #0x400 - blt _0204A64C + cmpne r0, #0xc + bne _022BF1D0 + cmp r0, #8 + bne _022BF074 + add r0, sl, #0xa + str r0, [sp] + ldrh r5, [sl, #8] + ldrh r6, [sl, #0x10] + ldrh r0, [sl, #0x12] + add fp, sl, #0x14 mov r7, #0 - mov fp, r7 -_0204A664: - mov r6, #0 - lsl sb, r7, #8 - b _0204A70C -_0204A670: - bl FUN_0207902c - mov r5, r0 - bl FUN_02002580 - mov r4, r0 - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_0208346c - mov r0, r4 - mov r1, #0x13 - bl FUN_020027f8 - str fp, [sp] - mov sl, r0 - str fp, [sp, #4] - mov r1, #8 - str r1, [sp, #8] - mov r1, #0xa - str r1, [sp, #0xc] - mov r1, #2 - str r1, [sp, #0x10] - mov r0, r8 - mov r1, sb - mov r2, #0x400 - mov r3, fp - bl FUN_02083a18 - mov r1, sl - mov sl, r0 - mov r0, r4 - bl FUN_020027f8 - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_0208347c - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_02079094 - cmp sl, #0 - bne _0204A714 - mov r0, #0 - bl CardPullOutWithStatus - add r6, r6, #1 -_0204A70C: - cmp r6, #4 - blt _0204A670 -_0204A714: - add r7, r7, #1 - cmp r7, #0x100 - blt _0204A664 -_0204A720: - add sp, sp, #0x14 - add sp, sp, #0x400 - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0204a624 - - arm_func_start FUN_0204a72c -FUN_0204a72c: @ 0x0204A72C - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x18 - sub sp, sp, #0x400 - mov r0, #0x400 - bl RandInt - str r0, [sp, #0x14] - bl FUN_02083b00 - and r0, r0, #0xff - cmp r0, #1 - bne _0204A8D4 - mov r2, #0 - mov r1, #0xff -_0204A75C: - add r0, sp, #0x18 - strb r1, [r0, r2] - add r2, r2, #1 - cmp r2, #0x400 - blt _0204A75C - mov r5, #0 -_0204A774: - lsr r1, r5, #0x1f - rsb r0, r1, r5, lsl #22 - lsl r8, r5, #8 - add sb, r1, r0, ror #22 - mov r4, #0 - b _0204A8C0 -_0204A78C: - bl FUN_0207902c - mov r6, r0 - bl FUN_02002580 - mov r7, r0 - lsl r0, r6, #0x10 - lsr r0, r0, #0x10 - bl FUN_0208346c - mov r0, r7 - mov r1, #0x13 - bl FUN_020027f8 - mov r1, #0 - str r1, [sp] - str r1, [sp, #4] - mov r1, #6 - str r1, [sp, #8] - mov r1, #1 - str r1, [sp, #0xc] - mov r1, #0 - str r1, [sp, #0x10] - mov fp, r0 - mov r0, r8 - add r1, sp, #0x18 - mov r2, #0x400 - mov r3, #0 - bl FUN_02083a18 - cmp r0, #0 - beq _0204A820 - mov r0, r7 - mov r1, fp - bl FUN_020027f8 - lsl r0, r6, #0x10 - lsr r0, r0, #0x10 - bl FUN_0208347c - lsl r0, r6, #0x10 - lsr r0, r0, #0x10 - bl FUN_02079094 - b _0204A8C8 -_0204A820: - ldr r0, [sp, #0x14] - cmp sb, r0 - bne _0204A84C - mov sl, #0 -_0204A830: - mov r0, #0x100 - bl RandInt - add r1, sp, #0x18 - strb r0, [r1, sl] - add sl, sl, #1 - cmp sl, #0x400 - blt _0204A830 -_0204A84C: - mov r0, #0 - str r0, [sp] str r0, [sp, #4] - mov r0, #8 - str r0, [sp, #8] - mov r0, #0xa - str r0, [sp, #0xc] - mov r0, #2 - str r0, [sp, #0x10] - add r0, sp, #0x18 - mov r1, r8 - mov r2, #0x400 - mov r3, #0 - bl FUN_02083a18 - mov sl, r0 - mov r1, fp - mov r0, r7 - bl FUN_020027f8 - lsl r0, r6, #0x10 - lsr r0, r0, #0x10 - bl FUN_0208347c - lsl r0, r6, #0x10 - lsr r0, r0, #0x10 - bl FUN_02079094 - cmp sl, #0 - bne _0204A8C8 - mov r0, #0 - bl CardPullOutWithStatus - add r4, r4, #1 -_0204A8C0: - cmp r4, #4 - blt _0204A78C -_0204A8C8: - add r5, r5, #1 - cmp r5, #0x100 - blt _0204A774 -_0204A8D4: - add sp, sp, #0x18 - add sp, sp, #0x400 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0204a72c - - arm_func_start FUN_0204a8e0 -FUN_0204a8e0: @ 0x0204A8E0 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x14 - mov r4, r0 - mov sb, r1 - mov r8, r2 - bl FUN_02083b00 - and r0, r0, #0xff - cmp r0, #1 - movne r0, #3 - bne _0204A9C0 + ldrh r8, [sl, #0x2c] + ldrh sb, [sl, #0x2e] + b _022BF0A4 +_022BF074: + cmp r0, #0xc + bne _022BF0A4 + ldrh r5, [sl, #8] + ldrh r7, [sl, #0xa] + ldrh r0, [sl, #0xc] mov r6, #0 - lsl r7, r4, #8 mov fp, r6 - b _0204A9B4 -_0204A918: - bl FUN_0207902c - mov r5, r0 - bl FUN_02002580 - mov r4, r0 - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_0208346c - mov r0, r4 - mov r1, #0x13 - bl FUN_020027f8 - str fp, [sp] - mov sl, r0 - str fp, [sp, #4] - mov r1, #6 - str r1, [sp, #8] - mov r1, #1 - str r1, [sp, #0xc] - mov r0, r7 - mov r1, sb - mov r2, r8 - mov r3, fp - str fp, [sp, #0x10] - bl FUN_02083a18 - mov r1, sl - mov sl, r0 - mov r0, r4 - bl FUN_020027f8 - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_0208347c - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_02079094 - cmp sl, #0 - movne r0, #0 - bne _0204A9C0 - mov r0, #0 - bl CardPullOutWithStatus - add r6, r6, #1 -_0204A9B4: - cmp r6, #4 - blt _0204A918 - mov r0, #3 -_0204A9C0: - add sp, sp, #0x14 - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0204a8e0 - - arm_func_start FUN_0204a9c8 -FUN_0204a9c8: @ 0x0204A9C8 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x214 - mov r4, r0 - mov sb, r1 - mov r8, r2 - bl FUN_02083b00 - and r0, r0, #0xff - cmp r0, #1 - movne r0, #3 - bne _0204AB10 - lsl r7, r4, #8 - mov r6, #0 - mov fp, #6 - b _0204AB04 -_0204AA00: - bl FUN_0207902c - mov r5, r0 - bl FUN_02002580 - mov r1, #0x13 - mov r4, r0 - bl FUN_020027f8 - mov sl, r0 - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_0208346c - mov r0, #0 - str r0, [sp] - stmib sp, {r0, fp} - mov r0, #1 - str r0, [sp, #0xc] - mov r0, #0 - str r0, [sp, #0x10] - mov r0, r7 - add r1, sp, #0x14 - mov r2, #0x80 - mov r3, #0 - bl FUN_02083a18 - cmp r0, #0 - bne _0204AA8C - mov r0, r4 - mov r1, sl - bl FUN_020027f8 - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_0208347c - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_02079094 - mov r0, #4 - b _0204AB10 -_0204AA8C: - mov r0, #0 - str r0, [sp] str r0, [sp, #4] - mov r0, #8 - str r0, [sp, #8] - mov r0, #0xa - str r0, [sp, #0xc] - mov r0, #2 - str r0, [sp, #0x10] - mov r0, sb - mov r1, r7 - mov r2, r8 - mov r3, #0 - bl FUN_02083a18 - mov r1, sl - mov sl, r0 - mov r0, r4 - bl FUN_020027f8 - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_0208347c - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_02079094 - cmp sl, #0 - movne r0, #0 - bne _0204AB10 - mov r0, #0 - bl CardPullOutWithStatus - add r6, r6, #1 -_0204AB04: - cmp r6, #4 - blt _0204AA00 - mov r0, #3 -_0204AB10: - add sp, sp, #0x214 - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0204a9c8 - - arm_func_start thunk_FUN_0204ab24 -thunk_FUN_0204ab24: @ 0x0204AB18 - ldr ip, _0204AB20 @ =FUN_0204ab24 - bx ip - .align 2, 0 -_0204AB20: .4byte FUN_0204ab24 - arm_func_end thunk_FUN_0204ab24 - - arm_func_start FUN_0204ab24 -FUN_0204ab24: @ 0x0204AB24 - stmdb sp!, {r3} - sub sp, sp, #4 - ldr r0, _0204AB74 @ =0x022AB0A0 - mov r1, #2 - mov r2, #0 - strb r1, [r0] - strb r2, [r0, #2] - mov r1, #1 - strb r1, [r0, #1] - strb r1, [r0, #3] - strb r2, [r0, #4] - strb r1, [r0, #5] - strb r1, [r0, #6] - strb r2, [r0, #7] - strb r2, [r0, #8] - strb r2, [sp] - strb r2, [r0, #9] - add sp, sp, #4 - ldm sp!, {r3} - bx lr - .align 2, 0 -_0204AB74: .4byte 0x022AB0A0 - arm_func_end FUN_0204ab24 - - arm_func_start FUN_0204ab78 -FUN_0204ab78: @ 0x0204AB78 - ldr r3, _0204AB94 @ =0x022AB0A0 - mov r2, #0xa -_0204AB80: - ldrb r1, [r3], #1 - subs r2, r2, #1 - strb r1, [r0], #1 - bne _0204AB80 - bx lr - .align 2, 0 -_0204AB94: .4byte 0x022AB0A0 - arm_func_end FUN_0204ab78 - - arm_func_start FUN_0204ab98 -FUN_0204ab98: @ 0x0204AB98 - ldr r3, _0204ABB4 @ =0x022AB0A0 - mov r2, #0xa -_0204ABA0: - ldrb r1, [r0], #1 - subs r2, r2, #1 - strb r1, [r3], #1 - bne _0204ABA0 - bx lr - .align 2, 0 -_0204ABB4: .4byte 0x022AB0A0 - arm_func_end FUN_0204ab98 - - arm_func_start FUN_0204abb8 -FUN_0204abb8: @ 0x0204ABB8 - push {r4, lr} - ldr r1, _0204ACC0 @ =0x022AB0A0 - mov r2, #2 - mov r4, r0 - bl CopyBitsTo - ldr r1, _0204ACC4 @ =0x022AB0A2 - mov r0, r4 - mov r2, #3 - bl CopyBitsTo - ldr r1, _0204ACC8 @ =0x022AB0A1 - mov r0, r4 - mov r2, #2 - bl CopyBitsTo - ldr r0, _0204ACCC @ =0x022AB0A0 - mov r2, #1 - ldrb r0, [r0, #3] - cmp r0, #0 - ldrne r1, _0204ACD0 @ =0x0209CE88 - mov r0, r4 - ldreq r1, _0204ACD4 @ =0x0209CE89 - bl CopyBitsTo - ldr r0, _0204ACCC @ =0x022AB0A0 - mov r2, #1 - ldrb r0, [r0, #4] - cmp r0, #0 - ldrne r1, _0204ACD0 @ =0x0209CE88 - mov r0, r4 - ldreq r1, _0204ACD4 @ =0x0209CE89 - bl CopyBitsTo - ldr r0, _0204ACCC @ =0x022AB0A0 - mov r2, #1 - ldrb r0, [r0, #5] - cmp r0, #0 - ldrne r1, _0204ACD0 @ =0x0209CE88 - mov r0, r4 - ldreq r1, _0204ACD4 @ =0x0209CE89 - bl CopyBitsTo - ldr r0, _0204ACCC @ =0x022AB0A0 - mov r2, #1 - ldrb r0, [r0, #6] - cmp r0, #0 - ldrne r1, _0204ACD0 @ =0x0209CE88 - mov r0, r4 - ldreq r1, _0204ACD4 @ =0x0209CE89 - bl CopyBitsTo - ldr r0, _0204ACCC @ =0x022AB0A0 - mov r2, #1 - ldrb r0, [r0, #7] - cmp r0, #0 - ldrne r1, _0204ACD0 @ =0x0209CE88 - mov r0, r4 - ldreq r1, _0204ACD4 @ =0x0209CE89 - bl CopyBitsTo - ldr r0, _0204ACCC @ =0x022AB0A0 - mov r2, #1 - ldrb r0, [r0, #8] - cmp r0, #0 - ldrne r1, _0204ACD0 @ =0x0209CE88 - mov r0, r4 - ldreq r1, _0204ACD4 @ =0x0209CE89 - bl CopyBitsTo - ldr r1, _0204ACD8 @ =0x022AB0A9 - mov r0, r4 - mov r2, #3 - bl CopyBitsTo - pop {r4, pc} - .align 2, 0 -_0204ACC0: .4byte 0x022AB0A0 -_0204ACC4: .4byte 0x022AB0A2 -_0204ACC8: .4byte 0x022AB0A1 -_0204ACCC: .4byte 0x022AB0A0 -_0204ACD0: .4byte 0x0209CE88 -_0204ACD4: .4byte 0x0209CE89 -_0204ACD8: .4byte 0x022AB0A9 - arm_func_end FUN_0204abb8 - - arm_func_start FUN_0204acdc -FUN_0204acdc: @ 0x0204ACDC - push {r3, r4, lr} - sub sp, sp, #4 - add r1, sp, #0 - mov r2, #2 - mov r4, r0 - bl CopyBitsFrom - ldrb r0, [sp] - ldr r3, _0204AE5C @ =0x022AB0A0 - add r1, sp, #0 - and ip, r0, #3 - mov r0, r4 - mov r2, #3 - strb ip, [r3] - bl CopyBitsFrom - ldrb r0, [sp] - ldr r3, _0204AE5C @ =0x022AB0A0 - add r1, sp, #0 - and ip, r0, #7 - mov r0, r4 - mov r2, #2 - strb ip, [r3, #2] - bl CopyBitsFrom - ldrb r0, [sp] - ldr r2, _0204AE5C @ =0x022AB0A0 - add r1, sp, #0 - and r3, r0, #3 - strb r3, [r2, #1] - mov r0, r4 - mov r2, #1 - bl CopyBitsFrom - ldrb r0, [sp] - ldr r3, _0204AE5C @ =0x022AB0A0 - add r1, sp, #0 - tst r0, #1 - movne ip, #1 - moveq ip, #0 - mov r0, r4 - mov r2, #1 - strb ip, [r3, #3] - bl CopyBitsFrom - ldrb r0, [sp] - ldr r3, _0204AE5C @ =0x022AB0A0 - add r1, sp, #0 - tst r0, #1 - movne ip, #1 - moveq ip, #0 - mov r0, r4 - mov r2, #1 - strb ip, [r3, #4] - bl CopyBitsFrom - ldrb r0, [sp] - ldr r2, _0204AE5C @ =0x022AB0A0 - add r1, sp, #0 - tst r0, #1 - movne r3, #1 - moveq r3, #0 - strb r3, [r2, #5] - mov r0, r4 - mov r2, #1 - bl CopyBitsFrom - ldrb r0, [sp] - ldr r2, _0204AE5C @ =0x022AB0A0 - add r1, sp, #0 - tst r0, #1 - movne r3, #1 - moveq r3, #0 - strb r3, [r2, #6] - mov r0, r4 - mov r2, #1 - bl CopyBitsFrom - ldrb r0, [sp] - ldr r2, _0204AE5C @ =0x022AB0A0 - add r1, sp, #0 - tst r0, #1 - movne r3, #1 - moveq r3, #0 - strb r3, [r2, #7] - mov r0, r4 - mov r2, #1 - bl CopyBitsFrom - ldrb r0, [sp] - ldr r2, _0204AE5C @ =0x022AB0A0 - add r1, sp, #0 - tst r0, #1 - movne r3, #1 - moveq r3, #0 - strb r3, [r2, #8] - mov r0, r4 - mov r2, #3 - bl CopyBitsFrom - ldrb r1, [sp] - ldr r0, _0204AE5C @ =0x022AB0A0 - and r1, r1, #7 - strb r1, [r0, #9] - add sp, sp, #4 - pop {r3, r4, pc} - .align 2, 0 -_0204AE5C: .4byte 0x022AB0A0 - arm_func_end FUN_0204acdc - - arm_func_start FUN_0204ae60 -FUN_0204ae60: @ 0x0204AE60 - ldr r0, _0204AE7C @ =0x022AB0A0 - ldrb r0, [r0] - cmp r0, #1 - movhs r0, #1 - movlo r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0204AE7C: .4byte 0x022AB0A0 - arm_func_end FUN_0204ae60 - - arm_func_start FUN_0204ae80 -FUN_0204ae80: @ 0x0204AE80 - ldr r0, _0204AE9C @ =0x022AB0A0 - ldrb r0, [r0] - cmp r0, #2 - movhs r0, #1 - movlo r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0204AE9C: .4byte 0x022AB0A0 - arm_func_end FUN_0204ae80 - - arm_func_start FUN_0204aea0 -FUN_0204aea0: @ 0x0204AEA0 - ldr r0, _0204AEAC @ =0x022AB0A0 - ldrb r0, [r0, #2] - bx lr - .align 2, 0 -_0204AEAC: .4byte 0x022AB0A0 - arm_func_end FUN_0204aea0 -_0204AEB0: - .byte 0x04, 0x10, 0x9F, 0xE5, 0x02, 0x00, 0xC1, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0xB0, 0x2A, 0x02 - .byte 0x04, 0x00, 0x9F, 0xE5, 0x01, 0x00, 0xD0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0xB0, 0x2A, 0x02 - .byte 0x04, 0x00, 0x9F, 0xE5, 0x03, 0x00, 0xD0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0xB0, 0x2A, 0x02 - - arm_func_start FUN_0204aee0 -FUN_0204aee0: @ 0x0204AEE0 - ldr r0, _0204AEEC @ =0x022AB0A0 - ldrb r0, [r0, #4] - bx lr - .align 2, 0 -_0204AEEC: .4byte 0x022AB0A0 - arm_func_end FUN_0204aee0 -_0204AEF0: - .byte 0x04, 0x00, 0x9F, 0xE5, 0x05, 0x00, 0xD0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0xB0, 0x2A, 0x02 - .byte 0x04, 0x00, 0x9F, 0xE5, 0x06, 0x00, 0xD0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0xB0, 0x2A, 0x02 - .byte 0x04, 0x00, 0x9F, 0xE5, 0x07, 0x00, 0xD0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0xB0, 0x2A, 0x02 - .byte 0x04, 0x00, 0x9F, 0xE5, 0x08, 0x00, 0xD0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0xB0, 0x2A, 0x02 - .byte 0x1C, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xD0, 0xE5, 0x01, 0x00, 0x51, 0xE3, 0x02, 0x00, 0x51, 0x13 - .byte 0x02, 0x00, 0xD0, 0x15, 0x03, 0x00, 0x50, 0x13, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0xB0, 0x2A, 0x02, 0x14, 0x00, 0x9F, 0xE5, 0x02, 0x00, 0xD0, 0xE5 - .byte 0x01, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13, 0xFF, 0x00, 0x00, 0xE2 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0xB0, 0x2A, 0x02, 0x14, 0x00, 0x9F, 0xE5, 0x02, 0x00, 0xD0, 0xE5 - .byte 0x02, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13, 0xFF, 0x00, 0x00, 0xE2 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0xB0, 0x2A, 0x02 - - arm_func_start FUN_0204af98 -FUN_0204af98: @ 0x0204AF98 - ldr r1, _0204AFA8 @ =0x022AB0A0 - ldrb r1, [r1, #9] - strb r1, [r0] - bx lr - .align 2, 0 -_0204AFA8: .4byte 0x022AB0A0 - arm_func_end FUN_0204af98 - - arm_func_start FUN_0204afac -FUN_0204afac: @ 0x0204AFAC - ldrb r1, [r0] - ldr r0, _0204AFBC @ =0x022AB0A0 - strb r1, [r0, #9] - bx lr - .align 2, 0 -_0204AFBC: .4byte 0x022AB0A0 - arm_func_end FUN_0204afac - - arm_func_start GetGameMode -GetGameMode: @ 0x0204AFC0 - ldr r0, _0204AFCC @ =0x020AFF70 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0204AFCC: .4byte 0x020AFF70 - arm_func_end GetGameMode - - arm_func_start FUN_0204afd0 -FUN_0204afd0: @ 0x0204AFD0 - ldr r0, _0204AFF4 @ =0x020AFF70 - ldrb r0, [r0] - add r0, r0, #0xfe - and r0, r0, #0xff - cmp r0, #1 - movls r0, #1 - movhi r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0204AFF4: .4byte 0x020AFF70 - arm_func_end FUN_0204afd0 -_0204AFF8: - .byte 0x14, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0xD0, 0xE5 - .byte 0x04, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13, 0xFF, 0x00, 0x00, 0xE2 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0xFF, 0x0A, 0x02 - - arm_func_start FUN_0204b018 -FUN_0204b018: @ 0x0204B018 - ldr r1, _0204B024 @ =0x020AFF70 - strb r0, [r1] - bx lr - .align 2, 0 -_0204B024: .4byte 0x020AFF70 - arm_func_end FUN_0204b018 - - arm_func_start FUN_0204b028 -FUN_0204b028: @ 0x0204B028 - ldr r1, _0204B040 @ =0x0209DF70 - ldr ip, _0204B044 @ =DebugPrint0 - ldr r0, _0204B048 @ =0x0209CF0C - ldrsh r1, [r1, #0x24] - mov r2, #0x400 - bx ip - .align 2, 0 -_0204B040: .4byte 0x0209DF70 -_0204B044: .4byte DebugPrint0 -_0204B048: .4byte 0x0209CF0C - arm_func_end FUN_0204b028 - - arm_func_start InitScriptVariableValues -InitScriptVariableValues: @ 0x0204B04C - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + add r0, sl, #0x10 + ldrh r8, [sl, #0x16] + ldrh sb, [sl, #0x18] + str r0, [sp] +_022BF0A4: + cmp r5, #7 + cmpne r5, #9 + cmpne r5, #0x1a + bne _022BF1D0 + cmp r5, #7 + ldreq r1, [r4, #0x14c] + mov r0, #1 + orreq r0, r1, r0, lsl r6 + mvnne r0, r0, lsl r6 + ldrne r1, [r4, #0x14c] + add r3, r4, #0x100 + andne r0, r1, r0 + str r0, [r4, #0x14c] + ldr r0, _022BF214 @ =0x0231E390 mov r1, #0 - ldr r0, _0204B2F8 @ =0x022AB0AC - mov r7, r1 -_0204B05C: - strb r7, [r0, r1] - add r1, r1, #1 - cmp r1, #0x400 - blt _0204B05C - mov r4, #0 - ldr r6, _0204B2FC @ =0x0209D870 - mov r5, r4 -_0204B078: - lsl r0, r7, #4 - ldrsh r0, [r6, r0] - add r8, r6, r7, lsl #4 - cmp r0, #0 - cmpne r0, #9 - beq _0204B0C4 - mov sb, r5 - b _0204B0B8 -_0204B098: - ldrsh r3, [r8, #0xa] - mov r0, r4 - mov r1, r7 - mov r2, sb - bl SaveScriptVariableValueAtIndex - add r0, sb, #1 - lsl r0, r0, #0x10 - lsr sb, r0, #0x10 -_0204B0B8: - ldrsh r0, [r8, #8] - cmp sb, r0 - blt _0204B098 -_0204B0C4: - add r0, r7, #1 - lsl r0, r0, #0x10 - asr r7, r0, #0x10 - cmp r7, #0x72 - blt _0204B078 - mov r0, #0 - mov r2, r0 - mov r1, #0x46 - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #1 - bl ZinitScriptVariable - bl InitEventFlagScriptVars - mov sl, #0 - ldr r7, _0204B300 @ =0x00000137 - mov sb, sl - sub r4, r7, #0x138 - mov r8, #0x21 - mov r6, sl - mov r5, #0x22 - mov fp, sl -_0204B118: - lsl r2, sl, #0x10 - mov r0, sb - mov r1, r8 - lsr r2, r2, #0x10 - mov r3, r7 - bl SaveScriptVariableValueAtIndex - lsl r2, sl, #0x10 - mov r0, r6 - mov r1, r5 - lsr r2, r2, #0x10 - mov r3, r6 - bl SaveScriptVariableValueAtIndex - lsl r2, sl, #0x10 + mov r2, #0x44 + strh r7, [r3, #0x50] + bl FUN_0207C40C + ldr ip, _022BF210 @ =0x0231E340 + mov r1, #0x82 + strh r1, [ip, #0x50] + mov r1, #0 + strh r1, [ip, #0x52] + strh r5, [ip, #0x54] + str r1, [ip, #0x58] + str r1, [ip, #0x5c] + strh r1, [ip, #0x60] + strh r6, [ip, #0x62] + strh r7, [ip, #0x70] + ldr r2, [r4, #0x14c] + ldr r1, _022BF218 @ =0x0000FFFF + strh r2, [ip, #0x72] + strh r1, [ip, #0x6a] + ldr r3, [sp, #4] + ldr r0, [sp] + ldr r1, _022BF21C @ =0x0231E3A4 + mov r2, #6 + strh r3, [ip, #0x8c] + bl FUN_0207C4C8 + cmp fp, #0 + mov r2, #0x18 + beq _022BF15C + ldr r1, _022BF220 @ =0x0231E3B4 mov r0, fp - mov r1, #0x23 - lsr r2, r2, #0x10 - mov r3, r7 - bl SaveScriptVariableValueAtIndex - lsl r2, sl, #0x10 + bl FUN_0207C2E0 + b _022BF168 +_022BF15C: + ldr r1, _022BF220 @ =0x0231E3B4 mov r0, #0 - mov r1, #0x24 - lsr r2, r2, #0x10 - mov r3, r4 - bl SaveScriptVariableValueAtIndex - lsl r2, sl, #0x10 - mov r0, #0 - mov r1, #0x25 - lsr r2, r2, #0x10 - mov r3, #0xbb - bl SaveScriptVariableValueAtIndex - mov r0, #0 - lsl r2, sl, #0x10 - mov r1, #0x2d - lsr r2, r2, #0x10 - mov r3, r0 - bl SaveScriptVariableValueAtIndex - lsl r2, sl, #0x10 - mov r0, #0 - mov r1, #0x2f - lsr r2, r2, #0x10 - mov r3, r4 - bl SaveScriptVariableValueAtIndex - mov r0, #0 - lsl r2, sl, #0x10 - mov r1, #0x31 - lsr r2, r2, #0x10 - mov r3, r0 - bl SaveScriptVariableValueAtIndex - mov r0, #0 - lsl r2, sl, #0x10 - mov r1, #0x32 - lsr r2, r2, #0x10 - mov r3, r0 - bl SaveScriptVariableValueAtIndex - mov r0, #0 - lsl r2, sl, #0x10 - mov r1, #0x37 - lsr r2, r2, #0x10 - mov r3, r0 - bl SaveScriptVariableValueAtIndex - lsl r2, sl, #0x10 - mov r0, #0 - mov r1, #0x38 - lsr r2, r2, #0x10 - mov r3, #2 - bl SaveScriptVariableValueAtIndex - mov r0, #0 - lsl r2, sl, #0x10 - mov r1, #0x39 - lsr r2, r2, #0x10 - mov r3, r0 - bl SaveScriptVariableValueAtIndex - add sl, sl, #1 - cmp sl, #4 - blt _0204B118 - mov r1, #0x26 - sub r2, r1, #0x27 - mov r0, #0 - bl SaveScriptVariableValue - mov r0, #0 - mov r2, r0 - mov r1, #0x33 - bl SaveScriptVariableValue - mov r0, #0 - mov r2, r0 - mov r1, #0x6e - bl SaveScriptVariableValue - mov r0, #0 - mov r2, r0 - mov r1, #0x3e - bl SaveScriptVariableValue - mov r0, #0 - mov r2, r0 - mov r1, #0x40 - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x42 - mov r2, #4 - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x43 - mov r2, #1 - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x4a - sub r2, r1, #0x4b - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x4b - bl ZinitScriptVariable - mov r0, #0 - mov r1, #0x4c - bl ZinitScriptVariable - mov r0, #0 - mov r1, #0x4d - bl ZinitScriptVariable - bl InitScenarioScriptVars - bl InitWorldMapScriptVars - bl InitDungeonListScriptVars - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0204B2F8: .4byte 0x022AB0AC -_0204B2FC: .4byte 0x0209D870 -_0204B300: .4byte 0x00000137 - arm_func_end InitScriptVariableValues - - arm_func_start InitEventFlagScriptVars -InitEventFlagScriptVars: @ 0x0204B304 - push {r3, lr} - ldr r2, _0204B3CC @ =0x00000137 - mov r0, #0 - mov r1, #0x1c - bl SaveScriptVariableValue - mov r0, #0 - mov r2, r0 - mov r1, #0x1d - bl SaveScriptVariableValue - ldr r2, _0204B3CC @ =0x00000137 - mov r0, #0 - mov r1, #0x1e - bl SaveScriptVariableValue - mov r1, #0x1f - sub r2, r1, #0x20 - mov r0, #0 - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x20 - mov r2, #0xbb - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x27 - mov r2, r0 - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x29 - sub r2, r1, #0x2a - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x2b - mov r2, r0 - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x2c - mov r2, r0 - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x34 - mov r2, r0 - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x35 - mov r2, #2 - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x36 - mov r2, r0 - bl SaveScriptVariableValue - pop {r3, pc} - .align 2, 0 -_0204B3CC: .4byte 0x00000137 - arm_func_end InitEventFlagScriptVars - - arm_func_start FUN_0204b3d0 -FUN_0204b3d0: @ 0x0204B3D0 - push {r3, r4, r5, r6, r7, lr} - mov r4, r1 - cmp r4, #0x400 - mov r5, r0 - ldrlt r0, _0204B42C @ =0x0209D870 - ldrge r1, _0204B430 @ =0x0209CECC - addlt r7, r0, r4, lsl #4 - subge r0, r4, #0x400 - addge r7, r1, r0, lsl #4 + bl FUN_0207C2B8 +_022BF168: + cmp r7, #0 + moveq r1, r8 + movne r1, sb + cmp r7, #0 + ldr r0, _022BF210 @ =0x0231E340 + ldr r7, _022BF210 @ =0x0231E340 + strh r1, [r0, #0x90] + movne sb, r8 + ldr r5, _022BF214 @ =0x0231E390 mov r6, #0 - b _0204B41C -_0204B3FC: - ldrsh r3, [r7, #0xa] + strh sb, [r7, #0x92] +_022BF194: + strh r6, [r7, #0x56] + add r2, r4, r6, lsl #2 + ldr r0, [r2, #0xcc] + cmp r0, #0 + beq _022BF1BC + ldr r1, [r2, #0x10c] mov r0, r5 - mov r1, r4 - mov r2, r6 - bl SaveScriptVariableValueAtIndex + str r1, [r7, #0x6c] + ldr r1, [r2, #0xcc] + blx r1 +_022BF1BC: add r0, r6, #1 lsl r0, r0, #0x10 lsr r6, r0, #0x10 -_0204B41C: - ldrsh r0, [r7, #8] - cmp r6, r0 - blt _0204B3FC - pop {r3, r4, r5, r6, r7, pc} + cmp r6, #0x10 + blo _022BF194 +_022BF1D0: + ldr r0, [r4, #0x10] + mov r1, #0x100 + bl FUN_0207A2A4 + bl ov00_022BF224 + ldr r0, [r4, #0x10] + cmp sl, r0 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrh r2, [sl] + mov r0, sl + mov r1, #0x100 + orr r2, r2, #0x8000 + strh r2, [sl] + bl FUN_0207A2C0 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 -_0204B42C: .4byte 0x0209D870 -_0204B430: .4byte 0x0209CECC - arm_func_end FUN_0204b3d0 +_022BF210: .4byte 0x0231E340 +_022BF214: .4byte 0x0231E390 +_022BF218: .4byte 0x0000FFFF +_022BF21C: .4byte 0x0231E3A4 +_022BF220: .4byte 0x0231E3B4 + arm_func_end ov00_022BEE78 - arm_func_start ZinitScriptVariable -ZinitScriptVariable: @ 0x0204B434 - push {r4, r5, r6, r7, r8, lr} - mov r5, r1 - cmp r5, #0x400 - mov r6, r0 - ldrlt r0, _0204B494 @ =0x0209D870 - mov r8, #0 - addlt r4, r0, r5, lsl #4 - ldrge r1, _0204B498 @ =0x0209CECC - subge r0, r5, #0x400 - addge r4, r1, r0, lsl #4 - mov r7, r8 - b _0204B484 -_0204B464: - mov r0, r6 - mov r1, r5 - mov r2, r8 - mov r3, r7 - bl SaveScriptVariableValueAtIndex - add r0, r8, #1 - lsl r0, r0, #0x10 - lsr r8, r0, #0x10 -_0204B484: - ldrsh r0, [r4, #8] - cmp r8, r0 - blt _0204B464 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0204B494: .4byte 0x0209D870 -_0204B498: .4byte 0x0209CECC - arm_func_end ZinitScriptVariable - - arm_func_start LoadScriptVariableRaw -LoadScriptVariableRaw: @ 0x0204B49C - cmp r2, #0x400 - bge _0204B4C0 - ldr r1, _0204B4E0 @ =0x0209D870 - ldr r3, _0204B4E4 @ =0x022AB0AC - add r1, r1, r2, lsl #4 - str r1, [r0] - ldrsh r1, [r1, #4] - add r1, r3, r1 - b _0204B4D8 -_0204B4C0: - ldr r3, _0204B4E8 @ =0x0209CECC - sub r2, r2, #0x400 - add r2, r3, r2, lsl #4 - str r2, [r0] - ldrsh r2, [r2, #4] - add r1, r1, r2, lsl #2 -_0204B4D8: - str r1, [r0, #4] + arm_func_start ov00_022BF224 +ov00_022BF224: @ 0x022BF224 + ldr r1, _022BF23C @ =0x027FFF96 + ldrh r0, [r1] + tst r0, #1 + bicne r0, r0, #1 + strhne r0, [r1] bx lr .align 2, 0 -_0204B4E0: .4byte 0x0209D870 -_0204B4E4: .4byte 0x022AB0AC -_0204B4E8: .4byte 0x0209CECC - arm_func_end LoadScriptVariableRaw +_022BF23C: .4byte 0x027FFF96 + arm_func_end ov00_022BF224 - arm_func_start LoadScriptVariableValue -LoadScriptVariableValue: @ 0x0204B4EC - push {r4, lr} - sub sp, sp, #8 - mov r2, r0 - mov r4, r1 - mov r1, r2 - add r0, sp, #0 - mov r2, r4 - bl LoadScriptVariableRaw - ldr r1, [sp] - ldrsh r0, [r1] - cmp r0, #9 - addls pc, pc, r0, lsl #2 - b _0204B66C -_0204B520: @ jump table - b _0204B66C @ case 0 - b _0204B548 @ case 1 - b _0204B56C @ case 2 - b _0204B56C @ case 3 - b _0204B578 @ case 4 - b _0204B584 @ case 5 - b _0204B590 @ case 6 - b _0204B59C @ case 7 - b _0204B59C @ case 8 - b _0204B5A8 @ case 9 -_0204B548: - ldrsh r1, [r1, #6] - ldr r2, [sp, #4] - mov r0, #1 - lsl r1, r0, r1 - ldrb r2, [r2] - and r1, r1, #0xff - tst r2, r1 - moveq r0, #0 - b _0204B670 -_0204B56C: - ldr r0, [sp, #4] - ldrb r0, [r0] - b _0204B670 -_0204B578: - ldr r0, [sp, #4] - ldrsb r0, [r0] - b _0204B670 -_0204B584: - ldr r0, [sp, #4] - ldrh r0, [r0] - b _0204B670 -_0204B590: - ldr r0, [sp, #4] - ldrsh r0, [r0] - b _0204B670 -_0204B59C: - ldr r0, [sp, #4] - ldr r0, [r0] - b _0204B670 -_0204B5A8: - cmp r4, #0x48 - bgt _0204B5E4 - bge _0204B62C - cmp r4, #0x3d - bgt _0204B5D8 - subs r0, r4, #0x3a - addpl pc, pc, r0, lsl #2 - b _0204B66C -_0204B5C8: @ jump table - b _0204B600 @ case 0 - b _0204B608 @ case 1 - b _0204B614 @ case 2 - b _0204B61C @ case 3 -_0204B5D8: - cmp r4, #0x47 - beq _0204B624 - b _0204B66C -_0204B5E4: - cmp r4, #0x49 - bgt _0204B5F4 - beq _0204B634 - b _0204B66C -_0204B5F4: - cmp r4, #0x70 - beq _0204B664 - b _0204B66C -_0204B600: - mov r0, #1 - b _0204B670 -_0204B608: - mov r0, #0 - bl GetPartyMembers - b _0204B670 -_0204B614: - bl GetGold - b _0204B670 -_0204B61C: - bl FUN_0201070C - b _0204B670 -_0204B624: - bl GetLanguageType - b _0204B670 -_0204B62C: - bl GetGameMode - b _0204B670 -_0204B634: - bl GetGameMode - cmp r0, #1 - beq _0204B64C - cmp r0, #3 - beq _0204B654 - b _0204B65C -_0204B64C: - bl FUN_0204c918 - b _0204B670 -_0204B654: - bl GetSpecialEpisodeType - b _0204B670 -_0204B65C: - mvn r0, #0 - b _0204B670 -_0204B664: - bl GetNotifyNote - b _0204B670 -_0204B66C: - mov r0, #0 -_0204B670: - add sp, sp, #8 - pop {r4, pc} - arm_func_end LoadScriptVariableValue - - arm_func_start LoadScriptVariableValueAtIndex -LoadScriptVariableValueAtIndex: @ 0x0204B678 - push {r3, r4, r5, lr} - sub sp, sp, #8 - mov r3, r0 - mov r5, r1 - mov r4, r2 - add r0, sp, #0 - mov r1, r3 - mov r2, r5 - bl LoadScriptVariableRaw - ldr r1, [sp] - ldrsh r0, [r1] - cmp r0, #9 - addls pc, pc, r0, lsl #2 - b _0204B814 -_0204B6B0: @ jump table - b _0204B814 @ case 0 - b _0204B6D8 @ case 1 - b _0204B70C @ case 2 - b _0204B70C @ case 3 - b _0204B718 @ case 4 - b _0204B724 @ case 5 - b _0204B734 @ case 6 - b _0204B744 @ case 7 - b _0204B744 @ case 8 - b _0204B750 @ case 9 -_0204B6D8: - ldrsh r1, [r1, #6] - ldr r2, [sp, #4] - mov r0, #1 - add r1, r4, r1 - lsl r1, r1, #0x10 - lsr r3, r1, #0x10 - and r1, r3, #7 - lsl r1, r0, r1 - ldrb r2, [r2, r3, lsr #3] - and r1, r1, #0xff - tst r2, r1 - moveq r0, #0 - b _0204B818 -_0204B70C: - ldr r0, [sp, #4] - ldrb r0, [r0, r4] - b _0204B818 -_0204B718: - ldr r0, [sp, #4] - ldrsb r0, [r0, r4] - b _0204B818 -_0204B724: - ldr r1, [sp, #4] - lsl r0, r4, #1 - ldrh r0, [r1, r0] - b _0204B818 -_0204B734: - ldr r1, [sp, #4] - lsl r0, r4, #1 - ldrsh r0, [r1, r0] - b _0204B818 -_0204B744: - ldr r0, [sp, #4] - ldr r0, [r0, r4, lsl #2] - b _0204B818 -_0204B750: - cmp r5, #0x48 - bgt _0204B78C - bge _0204B7D4 - cmp r5, #0x3d - bgt _0204B780 - subs r0, r5, #0x3a - addpl pc, pc, r0, lsl #2 - b _0204B814 -_0204B770: @ jump table - b _0204B7A8 @ case 0 - b _0204B7B0 @ case 1 - b _0204B7BC @ case 2 - b _0204B7C4 @ case 3 -_0204B780: - cmp r5, #0x47 - beq _0204B7CC - b _0204B814 -_0204B78C: - cmp r5, #0x49 - bgt _0204B79C - beq _0204B7DC - b _0204B814 -_0204B79C: - cmp r5, #0x70 - beq _0204B80C - b _0204B814 -_0204B7A8: - mov r0, #1 - b _0204B818 -_0204B7B0: - mov r0, #0 - bl GetPartyMembers - b _0204B818 -_0204B7BC: - bl GetGold - b _0204B818 -_0204B7C4: - bl FUN_0201070C - b _0204B818 -_0204B7CC: - bl GetLanguageType - b _0204B818 -_0204B7D4: - bl GetGameMode - b _0204B818 -_0204B7DC: - bl GetGameMode - cmp r0, #1 - beq _0204B7F4 - cmp r0, #3 - beq _0204B7FC - b _0204B804 -_0204B7F4: - bl FUN_0204c918 - b _0204B818 -_0204B7FC: - bl GetSpecialEpisodeType - b _0204B818 -_0204B804: - mvn r0, #0 - b _0204B818 -_0204B80C: - bl GetNotifyNote - b _0204B818 -_0204B814: - mov r0, #0 -_0204B818: - add sp, sp, #8 - pop {r3, r4, r5, pc} - arm_func_end LoadScriptVariableValueAtIndex - - arm_func_start SaveScriptVariableValue -SaveScriptVariableValue: @ 0x0204B820 - push {r3, r4, r5, lr} - sub sp, sp, #8 - mov r3, r0 - mov r5, r1 - mov r4, r2 - add r0, sp, #0 - mov r1, r3 - mov r2, r5 - bl LoadScriptVariableRaw - ldr r1, [sp] - ldrsh r0, [r1] - cmp r0, #9 - addls pc, pc, r0, lsl #2 - b _0204B980 -_0204B858: @ jump table - b _0204B980 @ case 0 - b _0204B880 @ case 1 - b _0204B8C0 @ case 2 - b _0204B8C0 @ case 3 - b _0204B8CC @ case 4 - b _0204B8D8 @ case 5 - b _0204B8E4 @ case 6 - b _0204B8F0 @ case 7 - b _0204B8F0 @ case 8 - b _0204B8FC @ case 9 -_0204B880: - ldrsh r0, [r1, #6] - mov r1, #1 - cmp r4, #0 - lsl r0, r1, r0 - ldrne r1, [sp, #4] - and r2, r0, #0xff - ldrbne r0, [r1] - orrne r0, r0, r2 - strbne r0, [r1] - bne _0204B980 - ldr r1, [sp, #4] - ldrb r0, [r1] - orr r0, r0, r2 - eor r0, r2, r0 - strb r0, [r1] - b _0204B980 -_0204B8C0: - ldr r0, [sp, #4] - strb r4, [r0] - b _0204B980 -_0204B8CC: - ldr r0, [sp, #4] - strb r4, [r0] - b _0204B980 -_0204B8D8: - ldr r0, [sp, #4] - strh r4, [r0] - b _0204B980 -_0204B8E4: - ldr r0, [sp, #4] - strh r4, [r0] - b _0204B980 -_0204B8F0: - ldr r0, [sp, #4] - str r4, [r0] - b _0204B980 -_0204B8FC: - cmp r5, #0x49 - bgt _0204B928 - bge _0204B954 - cmp r5, #0x3d - bgt _0204B980 - cmp r5, #0x3c - blt _0204B980 - beq _0204B934 - cmp r5, #0x3d - beq _0204B948 - b _0204B980 -_0204B928: - cmp r5, #0x70 - beq _0204B96C - b _0204B980 -_0204B934: - mov r0, r4 - bl SetMoneyCarried - mov r0, #0 - bl AddMoneyCarried - b _0204B980 -_0204B948: - mov r0, r4 - bl SetMoneyStored - b _0204B980 -_0204B954: - bl GetGameMode - cmp r0, #1 - bne _0204B980 - mov r0, r4 - bl FUN_0204c928 - b _0204B980 -_0204B96C: - cmp r4, #0 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bl SetNotifyNote -_0204B980: - add sp, sp, #8 - pop {r3, r4, r5, pc} - arm_func_end SaveScriptVariableValue - - arm_func_start SaveScriptVariableValueAtIndex -SaveScriptVariableValueAtIndex: @ 0x0204B988 - push {r4, r5, r6, lr} - sub sp, sp, #8 - mov r4, r0 - mov r6, r1 - mov r5, r2 - mov r1, r4 - add r0, sp, #0 - mov r2, r6 - mov r4, r3 - bl LoadScriptVariableRaw - ldr r1, [sp] - ldrsh r0, [r1] - cmp r0, #9 - addls pc, pc, r0, lsl #2 - b _0204BAF8 -_0204B9C4: @ jump table - b _0204BAF8 @ case 0 - b _0204B9EC @ case 1 - b _0204BA30 @ case 2 - b _0204BA30 @ case 3 - b _0204BA3C @ case 4 - b _0204BA48 @ case 5 - b _0204BA58 @ case 6 - b _0204BA68 @ case 7 - b _0204BA68 @ case 8 - b _0204BA74 @ case 9 -_0204B9EC: - ldrsh r0, [r1, #6] - mov r1, #1 - ldr r2, [sp, #4] - add r0, r5, r0 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - and r0, r3, #7 - lsl r0, r1, r0 - and r1, r0, #0xff - ldrb r0, [r2, r3, lsr #3] - cmp r4, #0 - orrne r0, r0, r1 - strbne r0, [r2, r3, lsr #3] - orreq r0, r0, r1 - eoreq r0, r1, r0 - strbeq r0, [r2, r3, lsr #3] - b _0204BAF8 -_0204BA30: - ldr r0, [sp, #4] - strb r4, [r0, r5] - b _0204BAF8 -_0204BA3C: - ldr r0, [sp, #4] - strb r4, [r0, r5] - b _0204BAF8 -_0204BA48: - ldr r1, [sp, #4] - lsl r0, r5, #1 - strh r4, [r1, r0] - b _0204BAF8 -_0204BA58: - ldr r1, [sp, #4] - lsl r0, r5, #1 - strh r4, [r1, r0] - b _0204BAF8 -_0204BA68: - ldr r0, [sp, #4] - str r4, [r0, r5, lsl #2] - b _0204BAF8 -_0204BA74: - cmp r6, #0x49 - bgt _0204BAA0 - bge _0204BACC - cmp r6, #0x3d - bgt _0204BAF8 - cmp r6, #0x3c - blt _0204BAF8 - beq _0204BAAC - cmp r6, #0x3d - beq _0204BAC0 - b _0204BAF8 -_0204BAA0: - cmp r6, #0x70 - beq _0204BAE4 - b _0204BAF8 -_0204BAAC: - mov r0, r4 - bl SetMoneyCarried - mov r0, #0 - bl AddMoneyCarried - b _0204BAF8 -_0204BAC0: - mov r0, r4 - bl SetMoneyStored - b _0204BAF8 -_0204BACC: - bl GetGameMode - cmp r0, #1 - bne _0204BAF8 - mov r0, r4 - bl FUN_0204c928 - b _0204BAF8 -_0204BAE4: - cmp r4, #0 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bl SetNotifyNote -_0204BAF8: - add sp, sp, #8 - pop {r4, r5, r6, pc} - arm_func_end SaveScriptVariableValueAtIndex - - arm_func_start LoadScriptVariableValueSum -LoadScriptVariableValueSum: @ 0x0204BB00 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #8 - mov r6, r1 - mov r4, #0 - mov r7, r0 - add r0, sp, #0 - mov r1, r4 - mov r2, r6 - bl LoadScriptVariableRaw - mov r5, r4 - b _0204BB48 -_0204BB2C: - lsl r2, r5, #0x10 - mov r0, r7 - mov r1, r6 - lsr r2, r2, #0x10 - bl LoadScriptVariableValueAtIndex - add r4, r4, r0 - add r5, r5, #1 -_0204BB48: - ldr r0, [sp] - ldrsh r0, [r0, #8] - cmp r5, r0 - blt _0204BB2C - mov r0, r4 - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end LoadScriptVariableValueSum - - arm_func_start LoadScriptVariableValueBytes -LoadScriptVariableValueBytes: @ 0x0204BB64 - push {r3, r4, r5, lr} - sub sp, sp, #8 - mov r3, r0 - mov r5, r1 - mov r4, r2 - add r0, sp, #0 - mov r2, r3 - mov r1, #0 - bl LoadScriptVariableRaw - ldr r2, [sp, #4] - mov r1, #0 - b _0204BBA0 -_0204BB94: - ldrb r0, [r2], #1 - add r1, r1, #1 - strb r0, [r5], #1 -_0204BBA0: - cmp r1, r4 - blt _0204BB94 - add sp, sp, #8 - pop {r3, r4, r5, pc} - arm_func_end LoadScriptVariableValueBytes - - arm_func_start FUN_0204bbb0 -FUN_0204bbb0: @ 0x0204BBB0 - push {r3, r4, r5, lr} - mov r5, r1 - mov r4, r2 - bl LoadScriptVariableValueBytes - mov r0, #0 - strb r0, [r5, r4] - pop {r3, r4, r5, pc} - arm_func_end FUN_0204bbb0 - - arm_func_start SaveScriptVariableValueBytes -SaveScriptVariableValueBytes: @ 0x0204BBCC - push {r3, r4, r5, lr} - sub sp, sp, #8 - mov r3, r0 - mov r5, r1 - mov r4, r2 - add r0, sp, #0 - mov r2, r3 - mov r1, #0 - bl LoadScriptVariableRaw - ldr r2, [sp, #4] - mov r1, #0 - b _0204BC08 -_0204BBFC: - ldrb r0, [r5], #1 - add r1, r1, #1 - strb r0, [r2], #1 -_0204BC08: - cmp r1, r4 - blt _0204BBFC - add sp, sp, #8 - pop {r3, r4, r5, pc} - arm_func_end SaveScriptVariableValueBytes - - arm_func_start ScriptVariablesEqual -ScriptVariablesEqual: @ 0x0204BC18 - push {r3, r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x10 - mov r8, r0 - mov r7, r1 - mov r6, r2 - add r0, sp, #8 - mov r1, r8 - mov r2, r7 - bl LoadScriptVariableRaw - add r0, sp, #0 - mov r1, r8 - mov r2, r6 - bl LoadScriptVariableRaw - ldr r0, [sp, #8] - mov r5, #0 - ldrsh r4, [r0, #8] - b _0204BC98 -_0204BC5C: - lsl r2, r5, #0x10 - mov r0, r8 - mov r1, r7 - lsr r2, r2, #0x10 - bl LoadScriptVariableValueAtIndex - lsl r2, r5, #0x10 - mov sb, r0 - mov r0, r8 - mov r1, r6 - lsr r2, r2, #0x10 - bl LoadScriptVariableValueAtIndex - cmp sb, r0 - movne r0, #0 - bne _0204BCA4 - add r5, r5, #1 -_0204BC98: - cmp r5, r4 - blt _0204BC5C - mov r0, #1 -_0204BCA4: - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end ScriptVariablesEqual - - arm_func_start FUN_0204bcac -FUN_0204bcac: @ 0x0204BCAC + arm_func_start ov00_022BF240 +ov00_022BF240: @ 0x022BF240 push {r3, lr} - sub sp, sp, #8 - cmp r2, #0xb - addls pc, pc, r2, lsl #2 - b _0204BD68 -_0204BCC0: @ jump table - b _0204BCF0 @ case 0 - b _0204BCF8 @ case 1 - b _0204BD00 @ case 2 - b _0204BD08 @ case 3 - b _0204BD14 @ case 4 - b _0204BD1C @ case 5 - b _0204BD28 @ case 6 - b _0204BD30 @ case 7 - b _0204BD38 @ case 8 - b _0204BD40 @ case 9 - b _0204BD4C @ case 10 - b _0204BD5C @ case 11 -_0204BCF0: - mov r0, r1 - b _0204BD88 -_0204BCF8: - sub r0, r0, r1 - b _0204BD88 -_0204BD00: - add r0, r0, r1 - b _0204BD88 -_0204BD08: - mul r1, r0, r1 - mov r0, r1 - b _0204BD88 -_0204BD14: - bl DivideInt - b _0204BD88 -_0204BD1C: - bl DivideInt - mov r0, r1 - b _0204BD88 -_0204BD28: - and r0, r0, r1 - b _0204BD88 -_0204BD30: - orr r0, r0, r1 - b _0204BD88 -_0204BD38: - eor r0, r0, r1 - b _0204BD88 -_0204BD40: - mov r2, #1 - orr r0, r0, r2, lsl r1 - b _0204BD88 -_0204BD4C: - mov r2, #1 - mvn r1, r2, lsl r1 - and r0, r0, r1 - b _0204BD88 -_0204BD5C: - mov r0, r1 - bl RandInt - b _0204BD88 -_0204BD68: - ldr r1, _0204BD90 @ =0x0209CEAC - add r0, sp, #0 - ldr r3, [r1, #4] - ldr ip, [r1] - ldr r1, _0204BD94 @ =0x0209CF28 - str ip, [sp] - str r3, [sp, #4] - bl FatalError -_0204BD88: - add sp, sp, #8 + bl ov00_022BED80 + cmp r0, #0 + movne r0, #0 + ldreq r0, _022BF260 @ =0x0231E340 + ldreq r0, [r0, #4] + ldreq r0, [r0, #4] pop {r3, pc} .align 2, 0 -_0204BD90: .4byte 0x0209CEAC -_0204BD94: .4byte 0x0209CF28 - arm_func_end FUN_0204bcac +_022BF260: .4byte 0x0231E340 + arm_func_end ov00_022BF240 - arm_func_start FUN_0204bd98 -FUN_0204bd98: @ 0x0204BD98 - push {r3, lr} - sub sp, sp, #8 - cmp r2, #0xa - addls pc, pc, r2, lsl #2 - b _0204BE9C -_0204BDAC: @ jump table - b _0204BDD8 @ case 0 - b _0204BDE0 @ case 1 - b _0204BDE8 @ case 2 - b _0204BE10 @ case 3 - b _0204BE38 @ case 4 - b _0204BE24 @ case 5 - b _0204BE4C @ case 6 - b _0204BDFC @ case 7 - b _0204BE60 @ case 8 - b _0204BE74 @ case 9 - b _0204BE88 @ case 10 -_0204BDD8: - mov r0, #1 - b _0204BEBC -_0204BDE0: - mov r0, #0 - b _0204BEBC -_0204BDE8: - cmp r0, r1 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - b _0204BEBC -_0204BDFC: - cmp r0, r1 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - b _0204BEBC -_0204BE10: - cmp r0, r1 - movgt r0, #1 - movle r0, #0 - and r0, r0, #0xff - b _0204BEBC -_0204BE24: - cmp r0, r1 - movge r0, #1 - movlt r0, #0 - and r0, r0, #0xff - b _0204BEBC -_0204BE38: - cmp r0, r1 - movlt r0, #1 - movge r0, #0 - and r0, r0, #0xff - b _0204BEBC -_0204BE4C: - cmp r0, r1 - movle r0, #1 - movgt r0, #0 - and r0, r0, #0xff - b _0204BEBC -_0204BE60: - tst r0, r1 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - b _0204BEBC -_0204BE74: - teq r0, r1 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - b _0204BEBC -_0204BE88: - mov r2, #1 - tst r0, r2, lsl r1 - moveq r2, #0 - and r0, r2, #0xff - b _0204BEBC -_0204BE9C: - ldr r1, _0204BEC4 @ =0x0209CEAC - add r0, sp, #0 - ldr r3, [r1, #0xc] - ldr ip, [r1, #8] - ldr r1, _0204BEC8 @ =0x0209CF48 - str ip, [sp] - str r3, [sp, #4] - bl FatalError -_0204BEBC: - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_0204BEC4: .4byte 0x0209CEAC -_0204BEC8: .4byte 0x0209CF48 - arm_func_end FUN_0204bd98 -_0204BECC: - .byte 0x00, 0xC0, 0x9F, 0xE5 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xAC, 0xBC, 0x04, 0x02 - - arm_func_start FUN_0204bed8 -FUN_0204bed8: @ 0x0204BED8 - push {r3, r4, r5, r6, r7, lr} - mov r5, r2 - mov r4, r3 - mov r7, r0 - mov r6, r1 - bl LoadScriptVariableValue - mov r1, r5 - mov r2, r4 - bl FUN_0204bcac - mov r2, r0 - mov r0, r7 - mov r1, r6 - bl SaveScriptVariableValue - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0204bed8 - - arm_func_start FUN_0204bf10 -FUN_0204bf10: @ 0x0204BF10 - push {r4, r5, r6, r7, r8, lr} - mov r8, r0 - mov r6, r2 - mov r7, r1 - mov r5, r3 - bl LoadScriptVariableValue - mov r4, r0 - mov r0, r8 - mov r1, r6 - bl LoadScriptVariableValue - mov r1, r0 + arm_func_start ov00_022BF264 +ov00_022BF264: @ 0x022BF264 + push {r4, lr} + bl FUN_0207B7E4 + ldr r1, _022BF290 @ =0x0231E340 + ldr r1, [r1, #4] + cmp r1, #0 + addne r1, r1, #0x100 + ldrhne r4, [r1, #0x50] + moveq r4, #0 + bl FUN_0207B7F8 mov r0, r4 - mov r2, r5 - bl FUN_0204bcac - mov r2, r0 - mov r0, r8 - mov r1, r7 - bl SaveScriptVariableValue - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0204bf10 - - arm_func_start thunk_FUN_0204bd98 -thunk_FUN_0204bd98: @ 0x0204BF5C - ldr ip, _0204BF64 @ =FUN_0204bd98 - bx ip - .align 2, 0 -_0204BF64: .4byte FUN_0204bd98 - arm_func_end thunk_FUN_0204bd98 - - arm_func_start FUN_0204bf68 -FUN_0204bf68: @ 0x0204BF68 - push {r3, r4, r5, lr} - mov r5, r2 - mov r4, r3 - bl LoadScriptVariableValue - mov r1, r5 - mov r2, r4 - bl FUN_0204bd98 - pop {r3, r4, r5, pc} - arm_func_end FUN_0204bf68 - - arm_func_start FUN_0204bf88 -FUN_0204bf88: @ 0x0204BF88 - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r2 - mov r5, r3 - bl LoadScriptVariableValue - mov r4, r0 - mov r0, r7 - mov r1, r6 - bl LoadScriptVariableValue - mov r1, r0 - mov r0, r4 - mov r2, r5 - bl FUN_0204bd98 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0204bf88 - - arm_func_start FUN_0204bfc0 -FUN_0204bfc0: @ 0x0204BFC0 - push {r4, lr} - bl GetGameMode - cmp r0, #1 - popls {r4, pc} - sub r4, r0, #2 - ldr r0, _0204C1E0 @ =0x0209CF64 - mov r1, r4 - bl DebugPrint0 - lsl r0, r4, #0x10 - lsr r2, r0, #0x10 - mov r0, #0 - mov r1, #0x21 - bl LoadScriptVariableValueAtIndex - mov r2, r0 - mov r0, #0 - mov r1, #0x1c - bl SaveScriptVariableValue - lsl r0, r4, #0x10 - lsr r2, r0, #0x10 - mov r0, #0 - mov r1, #0x22 - bl LoadScriptVariableValueAtIndex - mov r2, r0 - mov r0, #0 - mov r1, #0x1d - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x23 - lsl r2, r4, #0x10 - lsr r2, r2, #0x10 - bl LoadScriptVariableValueAtIndex - mov r2, r0 - mov r0, #0 - mov r1, #0x1e - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x24 - lsl r2, r4, #0x10 - lsr r2, r2, #0x10 - bl LoadScriptVariableValueAtIndex - mov r2, r0 - mov r0, #0 - mov r1, #0x1f - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x25 - lsl r2, r4, #0x10 - lsr r2, r2, #0x10 - bl LoadScriptVariableValueAtIndex - mov r2, r0 - mov r0, #0 - mov r1, #0x20 - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x2d - lsl r2, r4, #0x10 - lsr r2, r2, #0x10 - bl LoadScriptVariableValueAtIndex - mov r2, r0 - mov r0, #0 - mov r1, #0x27 - bl SaveScriptVariableValue - lsl r0, r4, #0x10 - lsr r2, r0, #0x10 - mov r0, #0 - mov r1, #0x2e - bl LoadScriptVariableValueAtIndex - mov r2, r0 - mov r0, #0 - mov r1, #0x28 - bl SaveScriptVariableValue - lsl r0, r4, #0x10 - lsr r2, r0, #0x10 - mov r0, #0 - mov r1, #0x2f - bl LoadScriptVariableValueAtIndex - mov r2, r0 - mov r0, #0 - mov r1, #0x29 - bl SaveScriptVariableValue - lsl r0, r4, #0x10 - lsr r2, r0, #0x10 - mov r0, #0 - mov r1, #0x30 - bl LoadScriptVariableValueAtIndex - mov r2, r0 - mov r0, #0 - mov r1, #0x2a - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x31 - lsl r2, r4, #0x10 - lsr r2, r2, #0x10 - bl LoadScriptVariableValueAtIndex - mov r2, r0 - mov r0, #0 - mov r1, #0x2b - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x32 - lsl r2, r4, #0x10 - lsr r2, r2, #0x10 - bl LoadScriptVariableValueAtIndex - mov r2, r0 - mov r0, #0 - mov r1, #0x2c - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x37 - lsl r2, r4, #0x10 - lsr r2, r2, #0x10 - bl LoadScriptVariableValueAtIndex - mov r2, r0 - mov r0, #0 - mov r1, #0x34 - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x38 - lsl r2, r4, #0x10 - lsr r2, r2, #0x10 - bl LoadScriptVariableValueAtIndex - mov r2, r0 - mov r0, #0 - mov r1, #0x35 - bl SaveScriptVariableValue - lsl r0, r4, #0x10 - lsr r2, r0, #0x10 - mov r0, #0 - mov r1, #0x39 - bl LoadScriptVariableValueAtIndex - mov r2, r0 - mov r0, #0 - mov r1, #0x36 - bl SaveScriptVariableValue - bl FUN_0204cbe8 pop {r4, pc} .align 2, 0 -_0204C1E0: .4byte 0x0209CF64 - arm_func_end FUN_0204bfc0 +_022BF290: .4byte 0x0231E340 + arm_func_end ov00_022BF264 - arm_func_start EventFlagBackup -EventFlagBackup: @ 0x0204C1E4 + arm_func_start ov00_022BF294 +ov00_022BF294: @ 0x022BF294 push {r4, lr} - bl GetGameMode - cmp r0, #1 - popls {r4, pc} - sub r4, r0, #2 - ldr r0, _0204C404 @ =0x0209CF84 - mov r1, r4 - bl DebugPrint0 - mov r0, #0 - mov r1, #0x1c - bl LoadScriptVariableValue - lsl r1, r4, #0x10 - mov r3, r0 - lsr r2, r1, #0x10 - mov r0, #0 - mov r1, #0x21 - bl SaveScriptVariableValueAtIndex - mov r0, #0 - mov r1, #0x1d - bl LoadScriptVariableValue - mov r3, r0 - mov r0, #0 - mov r1, #0x22 - lsl r2, r4, #0x10 - lsr r2, r2, #0x10 - bl SaveScriptVariableValueAtIndex - mov r0, #0 - mov r1, #0x1e - bl LoadScriptVariableValue - mov r3, r0 - mov r0, #0 - mov r1, #0x23 - lsl r2, r4, #0x10 - lsr r2, r2, #0x10 - bl SaveScriptVariableValueAtIndex - mov r0, #0 - mov r1, #0x1f - bl LoadScriptVariableValue - mov r3, r0 - mov r0, #0 - mov r1, #0x24 - lsl r2, r4, #0x10 - lsr r2, r2, #0x10 - bl SaveScriptVariableValueAtIndex - mov r0, #0 - mov r1, #0x20 - bl LoadScriptVariableValue - mov r3, r0 - mov r0, #0 - mov r1, #0x25 - lsl r2, r4, #0x10 - lsr r2, r2, #0x10 - bl SaveScriptVariableValueAtIndex - mov r0, #0 - mov r1, #0x27 - bl LoadScriptVariableValue - mov r3, r0 - mov r0, #0 - mov r1, #0x2d - lsl r2, r4, #0x10 - lsr r2, r2, #0x10 - bl SaveScriptVariableValueAtIndex - mov r0, #0 - mov r1, #0x28 - bl LoadScriptVariableValue - lsl r1, r4, #0x10 - mov r3, r0 - lsr r2, r1, #0x10 - mov r0, #0 - mov r1, #0x2e - bl SaveScriptVariableValueAtIndex - mov r0, #0 - mov r1, #0x29 - bl LoadScriptVariableValue - lsl r1, r4, #0x10 - lsr r2, r1, #0x10 - mov r3, r0 - mov r0, #0 - mov r1, #0x2f - bl SaveScriptVariableValueAtIndex - mov r0, #0 - mov r1, #0x2a - bl LoadScriptVariableValue - mov r3, r0 - mov r0, #0 - mov r1, #0x30 - lsl r2, r4, #0x10 - lsr r2, r2, #0x10 - bl SaveScriptVariableValueAtIndex - mov r0, #0 - mov r1, #0x2b - bl LoadScriptVariableValue - mov r3, r0 - mov r0, #0 - mov r1, #0x31 - lsl r2, r4, #0x10 - lsr r2, r2, #0x10 - bl SaveScriptVariableValueAtIndex - mov r0, #0 - mov r1, #0x2c - bl LoadScriptVariableValue - mov r3, r0 - mov r0, #0 - mov r1, #0x32 - lsl r2, r4, #0x10 - lsr r2, r2, #0x10 - bl SaveScriptVariableValueAtIndex - mov r0, #0 - mov r1, #0x34 - bl LoadScriptVariableValue - mov r3, r0 - mov r0, #0 - mov r1, #0x37 - lsl r2, r4, #0x10 - lsr r2, r2, #0x10 - bl SaveScriptVariableValueAtIndex - mov r0, #0 - mov r1, #0x35 - bl LoadScriptVariableValue - mov r3, r0 + bl FUN_0207B7E4 + ldr r1, _022BF2C0 @ =0x0231E340 + ldr r1, [r1, #4] + cmp r1, #0 + ldrne r4, [r1, #0x14c] + moveq r4, #0 + bl FUN_0207B7F8 lsl r0, r4, #0x10 - lsr r2, r0, #0x10 - mov r0, #0 - mov r1, #0x38 - bl SaveScriptVariableValueAtIndex - mov r0, #0 - mov r1, #0x36 - bl LoadScriptVariableValue - lsl r1, r4, #0x10 - mov r3, r0 - lsr r2, r1, #0x10 - mov r0, #0 - mov r1, #0x39 - bl SaveScriptVariableValueAtIndex - bl ScenarioFlagBackup + lsr r0, r0, #0x10 pop {r4, pc} .align 2, 0 -_0204C404: .4byte 0x0209CF84 - arm_func_end EventFlagBackup +_022BF2C0: .4byte 0x0231E340 + arm_func_end ov00_022BF294 - arm_func_start DumpScriptVariableValues -DumpScriptVariableValues: @ 0x0204C408 - push {r4, lr} - mov r4, r0 - bl EventFlagBackup - ldr r1, _0204C42C @ =0x022AB0AC - mov r0, r4 - mov r2, #0x400 - bl MemcpySimple - mov r0, #1 - pop {r4, pc} - .align 2, 0 -_0204C42C: .4byte 0x022AB0AC - arm_func_end DumpScriptVariableValues - - arm_func_start RestoreScriptVariableValues -RestoreScriptVariableValues: @ 0x0204C430 - push {r4, lr} - sub sp, sp, #8 - mov r1, #0 - mov r4, r0 - add r0, sp, #0 - mov r2, r1 - bl LoadScriptVariableRaw - ldr r0, _0204C484 @ =0x022AB0AC - mov r1, r4 - mov r2, #0x400 - bl MemcpySimple - ldr r1, [sp] - ldr r0, [sp, #4] - ldrsh r1, [r1, #0xa] - ldr r0, [r0] - cmp r1, r0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - add sp, sp, #8 - pop {r4, pc} - .align 2, 0 -_0204C484: .4byte 0x022AB0AC - arm_func_end RestoreScriptVariableValues - - arm_func_start InitScenarioScriptVars -InitScenarioScriptVars: @ 0x0204C488 - push {r4, r5, r6, r7, r8, lr} - mov r1, #0 - mov r2, r1 - mov r0, #2 - bl SetScenarioScriptVar - mov r1, #0 - mov r2, r1 - mov r0, #3 - bl SetScenarioScriptVar - mov r1, #0 - mov r2, r1 - mov r0, #4 - bl SetScenarioScriptVar - mov r1, #0 - mov r2, r1 - mov r0, #5 - bl SetScenarioScriptVar - mov r1, #0 - mov r2, r1 - mov r0, #6 - bl SetScenarioScriptVar - mov r1, #0 - mov r0, #7 - mov r2, r1 - bl SetScenarioScriptVar - mov r1, #0 - mov r0, #8 - mov r2, r1 - bl SetScenarioScriptVar - mov r1, #0 - mov r0, #9 - mov r2, r1 - bl SetScenarioScriptVar - mov r1, #0 - mov r0, #0xa - mov r2, r1 - bl SetScenarioScriptVar - mov r1, #0 - mov r0, #0xb - mov r2, r1 - bl SetScenarioScriptVar - mov r1, #0 - mov r0, #0xc - mov r2, r1 - bl SetScenarioScriptVar - mov r0, #0 - mov r1, #0x11 - bl ZinitScriptVariable - mov r0, #0 - mov r1, #0x1b - bl ZinitScriptVariable - mov r8, #0 - mov r6, #0x1a - mov r7, r8 - mov r5, r8 - mov r4, r6 -_0204C568: - lsl r2, r8, #0x10 - mov r0, r7 - mov r1, r6 - mov r3, r7 - lsr r2, r2, #0x10 - bl SaveScriptVariableValueAtIndex - add r0, r8, #4 - lsl r2, r0, #0x10 - mov r0, r5 - mov r1, r4 - mov r3, r5 - lsr r2, r2, #0x10 - bl SaveScriptVariableValueAtIndex - add r8, r8, #1 - cmp r8, #4 - blt _0204C568 - mov r0, #0 - mov r2, r0 - mov r1, #0x13 - bl SaveScriptVariableValue - mov r1, #0x14 - sub r2, r1, #0x15 - mov r0, #0 - bl SaveScriptVariableValue - mov r0, #0 - mov r2, r0 - mov r1, #0x6f - bl SaveScriptVariableValue - pop {r4, r5, r6, r7, r8, pc} - arm_func_end InitScenarioScriptVars - - arm_func_start FUN_0204c5dc -FUN_0204c5dc: @ 0x0204C5DC + arm_func_start ov00_022BF2C4 +ov00_022BF2C4: @ 0x022BF2C4 push {r4, r5, r6, lr} mov r6, r0 - mov r5, r1 - mov r0, #0 - mov r4, r2 - mov r1, r6 - mov r2, r0 - bl LoadScriptVariableValueAtIndex - str r0, [r5] - mov r1, r6 - mov r0, #0 - mov r2, #1 - bl LoadScriptVariableValueAtIndex - str r0, [r4] - pop {r4, r5, r6, pc} - arm_func_end FUN_0204c5dc - - arm_func_start SetScenarioScriptVar -SetScenarioScriptVar: @ 0x0204C618 - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #0xc - mov r8, r0 - mov r7, r1 - mov r0, #0 - mov r6, r2 - mov r1, r8 - mov r2, r0 - bl LoadScriptVariableValueAtIndex + bl FUN_0207B7E4 mov r5, r0 - mov r1, r8 + bl ov00_022BED80 + movs r4, r0 + beq _022BF2F0 + mov r0, r5 + bl FUN_0207B7F8 + mov r0, r4 + pop {r4, r5, r6, pc} +_022BF2F0: + bl ov00_022BED70 + str r6, [r0, #0xc8] + mov r0, r5 + bl FUN_0207B7F8 mov r0, #0 - mov r2, #1 - bl LoadScriptVariableValueAtIndex - mov r4, r0 - stm sp, {r4, r7} - ldr r1, _0204C6C4 @ =0x0209DFA0 - mov r0, #9 - mov r2, r8 - mov r3, r5 - str r6, [sp, #8] - bl DebugPrint - cmp r8, #3 - bne _0204C694 - cmp r7, r5 - cmpeq r6, r4 - beq _0204C694 + pop {r4, r5, r6, pc} + arm_func_end ov00_022BF2C4 + + arm_func_start ov00_022BF308 +ov00_022BF308: @ 0x022BF308 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x44 + movs r5, r1 + mov r6, r0 + mov r4, r2 + beq _022BF370 + add r0, sp, #0 + mov r1, #0 + mov r2, #0x44 + bl FUN_0207C40C + mov r3, #0 + ldr r1, _022BF3DC @ =0x0000FFFF + mov r7, #0x82 + mov r2, #0x19 + add r0, sp, #0x14 + strh r7, [sp] + strh r3, [sp, #2] + strh r2, [sp, #4] + strh r6, [sp, #6] + str r3, [sp, #8] + str r3, [sp, #0xc] + strh r3, [sp, #0x10] + strh r1, [sp, #0x1a] + str r4, [sp, #0x1c] + strh r3, [sp, #0x12] + bl FUN_0207B9EC +_022BF370: + bl FUN_0207B7E4 + mov r8, r0 + bl ov00_022BED80 + movs r7, r0 + beq _022BF398 + mov r0, r8 + bl FUN_0207B7F8 + add sp, sp, #0x44 + mov r0, r7 + pop {r3, r4, r5, r6, r7, r8, pc} +_022BF398: + bl ov00_022BED70 + add r0, r0, r6, lsl #2 + str r5, [r0, #0xcc] + str r4, [r0, #0x10c] + cmp r5, #0 + beq _022BF3C8 + bl ov00_022BF294 + strh r0, [sp, #0x22] + bl ov00_022BF264 + strh r0, [sp, #0x20] + add r0, sp, #0 + blx r5 +_022BF3C8: + mov r0, r8 + bl FUN_0207B7F8 mov r0, #0 - mov r2, r0 - mov r1, #0x33 - bl SaveScriptVariableValue -_0204C694: - mov r0, #0 - mov r1, r8 - mov r2, r0 - mov r3, r7 - bl SaveScriptVariableValueAtIndex - mov r1, r8 - mov r3, r6 - mov r0, #0 - mov r2, #1 - bl SaveScriptVariableValueAtIndex - add sp, sp, #0xc + add sp, sp, #0x44 pop {r3, r4, r5, r6, r7, r8, pc} .align 2, 0 -_0204C6C4: .4byte 0x0209DFA0 - arm_func_end SetScenarioScriptVar +_022BF3DC: .4byte 0x0000FFFF + arm_func_end ov00_022BF308 - arm_func_start FUN_0204c6c8 -FUN_0204c6c8: @ 0x0204C6C8 - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r1 - mov r0, #0 - mov r5, r2 - mov r1, r7 - mov r2, r0 - bl LoadScriptVariableValueAtIndex - mov r4, r0 - mov r1, r7 - mov r0, #0 - mov r2, #1 - bl LoadScriptVariableValueAtIndex - cmp r4, #0x35 - moveq r0, #0 - popeq {r3, r4, r5, r6, r7, pc} - cmp r4, r6 - movlt r0, #1 - poplt {r3, r4, r5, r6, r7, pc} - bne _0204C72C - cmp r5, #0 - blt _0204C72C - cmp r0, r5 - movlt r0, #1 - poplt {r3, r4, r5, r6, r7, pc} -_0204C72C: - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0204c6c8 - - arm_func_start FUN_0204c734 -FUN_0204c734: @ 0x0204C734 - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r1 - mov r0, #0 - mov r5, r2 - mov r1, r7 - mov r2, r0 - bl LoadScriptVariableValueAtIndex - mov r4, r0 - mov r1, r7 - mov r0, #0 - mov r2, #1 - bl LoadScriptVariableValueAtIndex - cmp r4, #0x35 - moveq r0, #0 - popeq {r3, r4, r5, r6, r7, pc} - cmp r4, r6 - movlt r0, #1 - poplt {r3, r4, r5, r6, r7, pc} - bne _0204C7A4 - cmp r5, #0 - blt _0204C79C - cmp r0, r5 - bgt _0204C7A4 - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_0204C79C: - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_0204C7A4: - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0204c734 - - arm_func_start FUN_0204c7ac -FUN_0204c7ac: @ 0x0204C7AC - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r1 - mov r0, #0 - mov r5, r2 - mov r1, r7 - mov r2, r0 - bl LoadScriptVariableValueAtIndex - mov r4, r0 - mov r1, r7 - mov r0, #0 - mov r2, #1 - bl LoadScriptVariableValueAtIndex - cmp r4, r6 - bne _0204C800 - cmp r5, #0 - movlt r0, #1 - poplt {r3, r4, r5, r6, r7, pc} - cmp r0, r5 - moveq r0, #1 - popeq {r3, r4, r5, r6, r7, pc} -_0204C800: - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0204c7ac - - arm_func_start FUN_0204c808 -FUN_0204c808: @ 0x0204C808 - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r1 - mov r0, #0 - mov r5, r2 - mov r1, r7 - mov r2, r0 - bl LoadScriptVariableValueAtIndex - mov r4, r0 - mov r1, r7 - mov r0, #0 - mov r2, #1 - bl LoadScriptVariableValueAtIndex - cmp r4, #0x35 - moveq r0, #0 - popeq {r3, r4, r5, r6, r7, pc} - cmp r4, r6 - movgt r0, #1 - popgt {r3, r4, r5, r6, r7, pc} - bne _0204C878 - cmp r5, #0 - blt _0204C870 - cmp r0, r5 - blt _0204C878 - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_0204C870: - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_0204C878: - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0204c808 - - arm_func_start FUN_0204c880 -FUN_0204c880: @ 0x0204C880 - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r1 - mov r0, #0 - mov r5, r2 - mov r1, r7 - mov r2, r0 - bl LoadScriptVariableValueAtIndex - mov r4, r0 - mov r1, r7 - mov r0, #0 - mov r2, #1 - bl LoadScriptVariableValueAtIndex - cmp r4, #0x35 - moveq r0, #0 - popeq {r3, r4, r5, r6, r7, pc} - cmp r4, r6 - movgt r0, #1 - popgt {r3, r4, r5, r6, r7, pc} - bne _0204C8E4 - cmp r5, #0 - blt _0204C8E4 - cmp r0, r5 - movgt r0, #1 - popgt {r3, r4, r5, r6, r7, pc} -_0204C8E4: - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0204c880 - - arm_func_start GetSpecialEpisodeType -GetSpecialEpisodeType: @ 0x0204C8EC - ldr ip, _0204C8FC @ =LoadScriptVariableValue - mov r0, #0 - mov r1, #0x4a - bx ip - .align 2, 0 -_0204C8FC: .4byte LoadScriptVariableValue - arm_func_end GetSpecialEpisodeType - - arm_func_start FUN_0204c900 -FUN_0204c900: @ 0x0204C900 - ldr ip, _0204C914 @ =SaveScriptVariableValue - mov r2, r0 - mov r0, #0 - mov r1, #0x4a - bx ip - .align 2, 0 -_0204C914: .4byte SaveScriptVariableValue - arm_func_end FUN_0204c900 - - arm_func_start FUN_0204c918 -FUN_0204c918: @ 0x0204C918 - ldr r0, _0204C924 @ =0x022AB4AC - ldr r0, [r0] - bx lr - .align 2, 0 -_0204C924: .4byte 0x022AB4AC - arm_func_end FUN_0204c918 - - arm_func_start FUN_0204c928 -FUN_0204c928: @ 0x0204C928 - ldr r1, _0204C934 @ =0x022AB4AC - str r0, [r1] - bx lr - .align 2, 0 -_0204C934: .4byte 0x022AB4AC - arm_func_end FUN_0204c928 - - arm_func_start GetExecuteSpecialEpisodeType -GetExecuteSpecialEpisodeType: @ 0x0204C938 - ldr ip, _0204C948 @ =LoadScriptVariableValue - mov r0, #0 - mov r1, #0x49 - bx ip - .align 2, 0 -_0204C948: .4byte LoadScriptVariableValue - arm_func_end GetExecuteSpecialEpisodeType -_0204C94C: - .byte 0x08, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x28, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x4B, 0x10, 0xA0, 0xE3 - .byte 0x44, 0xFB, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03 - .byte 0xFF, 0x00, 0x00, 0xE2, 0x08, 0x80, 0xBD, 0xE8, 0x1C, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0x51, 0xE3 - .byte 0x01, 0x30, 0xA0, 0x13, 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x28, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0x03 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x4B, 0x10, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x88, 0xB9, 0x04, 0x02 - .byte 0x08, 0x40, 0x2D, 0xE9, 0x00, 0x00, 0xA0, 0xE3, 0x4B, 0x10, 0xA0, 0xE3, 0x4C, 0x20, 0xA0, 0xE3 - .byte 0x98, 0xFC, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13 - .byte 0xFF, 0x00, 0x00, 0xE2, 0x08, 0x80, 0xBD, 0xE8, 0x08, 0x40, 0x2D, 0xE9, 0x00, 0x08, 0xA0, 0xE1 - .byte 0x20, 0x28, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x4C, 0x10, 0xA0, 0xE3, 0x25, 0xFB, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0xFF, 0x00, 0x00, 0xE2 - .byte 0x08, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_0204c9f4 -FUN_0204c9f4: @ 0x0204C9F4 - ldr ip, _0204CA18 @ =SaveScriptVariableValueAtIndex - cmp r1, #0 - movne r3, #1 - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - moveq r3, #0 - mov r0, #0 - mov r1, #0x4c - bx ip - .align 2, 0 -_0204CA18: .4byte SaveScriptVariableValueAtIndex - arm_func_end FUN_0204c9f4 - - arm_func_start FUN_0204ca1c -FUN_0204ca1c: @ 0x0204CA1C - push {r3, lr} - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - mov r0, #0 - mov r1, #0x4d - bl LoadScriptVariableValueAtIndex - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FUN_0204ca1c -_0204CA48: - .byte 0x1C, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0x51, 0xE3 - .byte 0x01, 0x30, 0xA0, 0x13, 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x28, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0x03 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x4D, 0x10, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x88, 0xB9, 0x04, 0x02 - - arm_func_start HasPlayedOldGame -HasPlayedOldGame: @ 0x0204CA70 - push {r3, lr} - mov r0, #0 - mov r1, #0x6f - bl LoadScriptVariableValue - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end HasPlayedOldGame - - arm_func_start GetPerformanceFlagWithChecks -GetPerformanceFlagWithChecks: @ 0x0204CA94 - push {r4, lr} - mov r4, r0 - cmp r4, #7 - addls pc, pc, r4, lsl #2 - b _0204CB10 -_0204CAA8: @ jump table - b _0204CAC8 @ case 0 - b _0204CB00 @ case 1 - b _0204CB00 @ case 2 - b _0204CAEC @ case 3 - b _0204CAEC @ case 4 - b _0204CAEC @ case 5 - b _0204CAEC @ case 6 - b _0204CAEC @ case 7 -_0204CAC8: - mov r0, #0 - mov r2, r0 - mov r1, #3 - bl LoadScriptVariableValueAtIndex - cmp r0, #0x35 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r4, pc} -_0204CAEC: - bl GetGameMode - cmp r0, #3 - bne _0204CB10 - mov r0, #0 - pop {r4, pc} -_0204CB00: - bl GetGameMode - cmp r0, #3 - moveq r0, #1 - popeq {r4, pc} -_0204CB10: - lsl r0, r4, #0x10 - lsr r2, r0, #0x10 - mov r0, #0 - mov r1, #0x4e - bl LoadScriptVariableValueAtIndex - and r0, r0, #0xff - pop {r4, pc} - arm_func_end GetPerformanceFlagWithChecks - - arm_func_start FUN_0204cb2c -FUN_0204cb2c: @ 0x0204CB2C + arm_func_start ov00_022BF3E0 +ov00_022BF3E0: @ 0x022BF3E0 push {r3, r4, r5, lr} mov r5, r0 - mov r4, r1 - cmp r5, #7 - addls pc, pc, r5, lsl #2 - b _0204CB70 -_0204CB44: @ jump table - b _0204CB70 @ case 0 - b _0204CB64 @ case 1 - b _0204CB64 @ case 2 - b _0204CB64 @ case 3 - b _0204CB64 @ case 4 - b _0204CB64 @ case 5 - b _0204CB64 @ case 6 - b _0204CB64 @ case 7 -_0204CB64: - bl GetGameMode - cmp r0, #3 + bl ov00_022BED70 + mov r4, r0 + bl ov00_022BED80 + cmp r0, #0 + popne {r3, r4, r5, pc} + cmp r5, #0 + moveq r0, #6 popeq {r3, r4, r5, pc} -_0204CB70: - cmp r4, #0 - movne r3, #1 - lsl r0, r5, #0x10 - lsr r2, r0, #0x10 - moveq r3, #0 + ldr r0, [r4, #4] + mov r1, #0x7d0 + bl FUN_0207A2A4 + ldr r0, [r4, #4] + mov r1, r5 + mov r2, #0x7d0 + bl FUN_0207C3B4 mov r0, #0 - mov r1, #0x4e - bl SaveScriptVariableValueAtIndex pop {r3, r4, r5, pc} - arm_func_end FUN_0204cb2c + arm_func_end ov00_022BF3E0 - arm_func_start GetScenarioBalance -GetScenarioBalance: @ 0x0204CB94 - push {r3, lr} - mov r0, #0 - mov r1, #0x49 - bl LoadScriptVariableValue - mvn r1, #0 - cmp r0, r1 - bne _0204CBD8 - mov r0, #0 - mov r1, #0x14 - bl LoadScriptVariableValue + arm_func_start ov00_022BF42C +ov00_022BF42C: @ 0x022BF42C + push {r4, lr} + bl ov00_022BED70 + mov r4, r0 + mov r0, #2 + mov r1, #7 + mov r2, #8 + bl ov00_022BEDE4 cmp r0, #0 - bge _0204CBD0 - mov r0, #0 - mov r1, #0x13 - bl LoadScriptVariableValue -_0204CBD0: - and r0, r0, #0xff - pop {r3, pc} -_0204CBD8: - cmp r0, #0 - moveq r0, #1 - movne r0, #3 - pop {r3, pc} - arm_func_end GetScenarioBalance - - arm_func_start FUN_0204cbe8 -FUN_0204cbe8: @ 0x0204CBE8 - push {r3, r4, r5, r6, r7, r8, sb, lr} - bl GetGameMode + movne r0, #0 + popne {r4, pc} + ldr r0, [r4, #4] + mov r1, #4 + add r0, r0, #0xc + bl FUN_0207A2A4 + ldr r1, [r4, #4] + ldr r0, [r1, #0xc] cmp r0, #1 - popls {r3, r4, r5, r6, r7, r8, sb, pc} - sub r4, r0, #2 - ldr r0, _0204CCB4 @ =0x0209DFC8 - mov r1, r4 - bl DebugPrint0 - lsl r0, r4, #0x10 + moveq r0, #0 + popeq {r4, pc} + add r0, r1, #0x3c + mov r1, #4 + bl FUN_0207A2A4 + ldr r0, [r4, #4] + ldrh r0, [r0, #0x3c] + add r0, r0, #0x1f + bic r0, r0, #0x1f + pop {r4, pc} + arm_func_end ov00_022BF42C + + arm_func_start ov00_022BF498 +ov00_022BF498: @ 0x022BF498 + push {r3, r4, r5, lr} + bl ov00_022BED70 + mov r4, r0 + mov r0, #2 + mov r1, #7 + mov r2, #8 + bl ov00_022BEDE4 + cmp r0, #0 + movne r0, #0 + popne {r3, r4, r5, pc} + ldr r0, [r4, #4] + mov r1, #4 + add r0, r0, #0xc + bl FUN_0207A2A4 + ldr r1, [r4, #4] + ldr r0, [r1, #0xc] + cmp r0, #1 + moveq r0, #0 + popeq {r3, r4, r5, pc} + add r0, r1, #0x188 + mov r1, #2 + bl FUN_0207A2A4 + ldr r1, [r4, #4] + add r0, r1, #0x100 + ldrh r0, [r0, #0x88] + cmp r0, #0 + moveq r5, #1 + add r0, r1, #0x3e + mov r1, #2 + movne r5, #0 + bl FUN_0207A2A4 + ldr r0, [r4, #4] + cmp r5, #1 + ldrh r5, [r0, #0x3e] + addne r0, r5, #0x51 + bicne r0, r0, #0x1f + lslne r0, r0, #1 + popne {r3, r4, r5, pc} + add r0, r0, #0xf8 + mov r1, #2 + bl FUN_0207A2A4 + ldr r0, [r4, #4] + add r1, r5, #0xc + ldrh r0, [r0, #0xf8] + mul r0, r1, r0 + add r0, r0, #0x29 + bic r0, r0, #0x1f + lsl r0, r0, #1 + pop {r3, r4, r5, pc} + arm_func_end ov00_022BF498 + + arm_func_start ov00_022BF55C +ov00_022BF55C: @ 0x022BF55C + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x3c + mov r5, r0 + mov r4, r1 + bl ov00_022BED70 + mov r6, r0 + bl ov00_022BED80 + cmp r0, #0 + addne sp, sp, #0x3c + movne r0, #0 + popne {r3, r4, r5, r6, pc} + cmp r4, #1 + blo _022BF598 + cmp r4, #0xf + bls _022BF5A4 +_022BF598: + add sp, sp, #0x3c + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_022BF5A4: + ldr r0, [r6, #4] + mov r1, #2 + add r0, r0, #0x82 + add r0, r0, #0x100 + bl FUN_0207A2A4 + ldr r0, [r6, #4] + mov r1, #1 + add r0, r0, #0x100 + ldrh r0, [r0, #0x82] + tst r0, r1, lsl r4 + addeq sp, sp, #0x3c + moveq r0, #0 + popeq {r3, r4, r5, r6, pc} + ldrh r0, [r5, #4] + cmp r0, #0 + addeq sp, sp, #0x3c + moveq r0, #0 + popeq {r3, r4, r5, r6, pc} + add r0, r5, #0xa + str r0, [sp] + mov r3, #0 + add r2, sp, #0 +_022BF5FC: + ldr r0, [r2, r3, lsl #2] + ldrh r1, [r0, #4] + cmp r4, r1 + addeq sp, sp, #0x3c + popeq {r3, r4, r5, r6, pc} + add r3, r3, #1 + add r0, r2, r3, lsl #2 + ldrh r1, [r5, #6] + ldr r0, [r0, #-4] + add r0, r1, r0 + str r0, [r2, r3, lsl #2] + ldrh r0, [r5, #4] + cmp r3, r0 + blt _022BF5FC + mov r0, #0 + add sp, sp, #0x3c + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_022BF55C + + arm_func_start ov00_022BF640 +ov00_022BF640: @ 0x022BF640 + push {r3, lr} + bl ov00_022BED80 + cmp r0, #0 + movne r0, #0x8000 + ldreq r0, _022BF65C @ =0x027FFCFA + ldrheq r0, [r0] + pop {r3, pc} + .align 2, 0 +_022BF65C: .4byte 0x027FFCFA + arm_func_end ov00_022BF640 + + arm_func_start ov00_022BF660 +ov00_022BF660: @ 0x022BF660 + push {r4, lr} + bl ov00_022BED70 + mov r4, r0 + bl ov00_022BED80 + cmp r0, #0 + movne r0, #0 + popne {r4, pc} + ldr r0, [r4, #4] + mov r1, #2 + bl FUN_0207A2A4 + ldr r1, [r4, #4] + ldrh r0, [r1] + cmp r0, #9 + beq _022BF6A8 + cmp r0, #0xa + cmpne r0, #0xb + beq _022BF6D0 + b _022BF6E8 +_022BF6A8: + add r0, r1, #0x82 + add r0, r0, #0x100 + mov r1, #2 + bl FUN_0207A2A4 + ldr r1, [r4, #4] + add r0, r1, #0x100 + ldrh r0, [r0, #0x82] + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} +_022BF6D0: + add r0, r1, #0xbc + mov r1, #2 + bl FUN_0207A2A4 + ldr r0, [r4, #4] + ldrh r0, [r0, #0xbc] + pop {r4, pc} +_022BF6E8: + mov r0, #0 + pop {r4, pc} + arm_func_end ov00_022BF660 + + arm_func_start ov00_022BF6F0 +ov00_022BF6F0: @ 0x022BF6F0 + push {r3, lr} + sub sp, sp, #8 + add r0, sp, #0 + bl FUN_0207B9EC + mov r2, #0 + add r3, sp, #0 + mov r1, r2 +_022BF70C: + ldrb r0, [r3], #1 + add r2, r2, #1 + cmp r2, #6 + add r0, r1, r0 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + blt _022BF70C + ldr r0, _022BF778 @ =0x027FFC3C + ldr ip, _022BF77C @ =0x66666667 + ldr r0, [r0] + mov r3, #0x14 + add r0, r1, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + rsb r0, r0, r0, lsl #3 + lsl r0, r0, #0x10 lsr r2, r0, #0x10 - mov r0, #0 - mov r1, #0x1a - bl LoadScriptVariableValueAtIndex - mov r3, r0 - mov r0, #0 - mov r2, r0 - mov r1, #2 - bl SaveScriptVariableValueAtIndex - add r2, r4, #4 - lsl r2, r2, #0x10 - mov r0, #0 - mov r1, #0x1a - lsr r2, r2, #0x10 - bl LoadScriptVariableValueAtIndex - mov r3, r0 - mov r0, #0 - mov r1, #2 - mov r2, #1 - bl SaveScriptVariableValueAtIndex - mov r8, #0 - lsl sb, r4, #7 - mov r7, r8 - mov r6, #0x1b - mov r5, r8 - mov r4, #0x11 -_0204CC74: - lsl r2, sb, #0x10 - mov r0, r7 - mov r1, r6 - lsr r2, r2, #0x10 - bl LoadScriptVariableValueAtIndex - lsl r2, r8, #0x10 - mov r3, r0 - mov r0, r5 - mov r1, r4 - lsr r2, r2, #0x10 - bl SaveScriptVariableValueAtIndex - add r8, r8, #1 - cmp r8, #0x80 - add sb, sb, #1 - blt _0204CC74 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0204CCB4: .4byte 0x0209DFC8 - arm_func_end FUN_0204cbe8 - - arm_func_start ScenarioFlagBackup -ScenarioFlagBackup: @ 0x0204CCB8 - push {r3, r4, r5, r6, r7, r8, sb, lr} - bl GetGameMode - cmp r0, #1 - popls {r3, r4, r5, r6, r7, r8, sb, pc} - sub r4, r0, #2 - ldr r0, _0204CD84 @ =0x0209DFE8 - mov r1, r4 - bl DebugPrint0 - mov r0, #0 - mov r2, r0 - mov r1, #2 - bl LoadScriptVariableValueAtIndex - lsl r1, r4, #0x10 - mov r3, r0 - lsr r2, r1, #0x10 - mov r0, #0 - mov r1, #0x1a - bl SaveScriptVariableValueAtIndex - mov r0, #0 - mov r1, #2 - mov r2, #1 - bl LoadScriptVariableValueAtIndex - add r2, r4, #4 - lsl r2, r2, #0x10 - mov r3, r0 - mov r0, #0 - mov r1, #0x1a - lsr r2, r2, #0x10 - bl SaveScriptVariableValueAtIndex - mov r8, #0 - lsl sb, r4, #7 - mov r7, r8 - mov r6, #0x11 - mov r5, r8 - mov r4, #0x1b -_0204CD44: - lsl r2, r8, #0x10 - mov r0, r7 - mov r1, r6 - lsr r2, r2, #0x10 - bl LoadScriptVariableValueAtIndex - lsl r2, sb, #0x10 - mov r3, r0 - mov r0, r5 - mov r1, r4 - lsr r2, r2, #0x10 - bl SaveScriptVariableValueAtIndex - add r8, r8, #1 - cmp r8, #0x80 - add sb, sb, #1 - blt _0204CD44 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0204CD84: .4byte 0x0209DFE8 - arm_func_end ScenarioFlagBackup - - arm_func_start InitWorldMapScriptVars -InitWorldMapScriptVars: @ 0x0204CD88 - push {r3, lr} - mov r0, #0 - mov r1, #0x55 - bl ZinitScriptVariable - mov r0, #0 - mov r1, #0x56 - bl ZinitScriptVariable - mov r0, #0 - mov r1, #0x57 - mov r2, #1 - bl SaveScriptVariableValue + lsr r1, r2, #0x1f + smull r2, lr, ip, r2 + add lr, r1, lr, asr #3 + smull r1, r2, r3, lr + rsb lr, r1, r0, lsr #16 + add r0, lr, #0xc8 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add sp, sp, #8 pop {r3, pc} - arm_func_end InitWorldMapScriptVars + .align 2, 0 +_022BF778: .4byte 0x027FFC3C +_022BF77C: .4byte 0x66666667 + arm_func_end ov00_022BF6F0 - arm_func_start FUN_0204cdb8 -FUN_0204cdb8: @ 0x0204CDB8 - ldr ip, _0204CDC8 @ =ZinitScriptVariable + arm_func_start ov00_022BF780 +ov00_022BF780: @ 0x022BF780 + push {r3, lr} + sub sp, sp, #8 + add r0, sp, #0 + bl FUN_0207B9EC + mov r1, #0 + add r3, sp, #0 + mov r2, r1 +_022BF79C: + ldrb r0, [r3], #1 + add r1, r1, #1 + cmp r1, #6 + add r0, r2, r0 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + blt _022BF79C + ldr r0, _022BF80C @ =0x027FFC3C + mov r1, #0xd + ldr r0, [r0] + ldr r3, _022BF810 @ =0x66666667 + add r0, r2, r0 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + mul r0, r2, r1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + lsr r1, r2, #0x1f + smull r2, ip, r3, r2 + add ip, r1, ip, asr #2 + mov r3, #0xa + smull r1, r2, r3, ip + rsb ip, r1, r0, lsr #16 + add r0, ip, #0x1e + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_022BF80C: .4byte 0x027FFC3C +_022BF810: .4byte 0x66666667 + arm_func_end ov00_022BF780 + + arm_func_start ov00_022BF814 +ov00_022BF814: @ 0x022BF814 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x84 + ldrh r2, [r1, #0x3c] + mov lr, r0 + cmp r2, #0 + beq _022BF85C mov r0, #0 - mov r1, #0x56 + add r5, sp, #0 + strb r0, [sp] + mov r4, #8 +_022BF83C: + ldm r5!, {r0, r1, r2, r3} + stm lr!, {r0, r1, r2, r3} + subs r4, r4, #1 + bne _022BF83C + ldr r0, [r5] + add sp, sp, #0x84 + str r0, [lr] + pop {r3, r4, r5, r6, pc} +_022BF85C: + ldrh r0, [r1, #0x3e] + strb r0, [sp] + ands r0, r0, #0xff + bne _022BF894 + add r5, sp, #0 + mov r4, #8 +_022BF874: + ldm r5!, {r0, r1, r2, r3} + stm lr!, {r0, r1, r2, r3} + subs r4, r4, #1 + bne _022BF874 + ldr r0, [r5] + add sp, sp, #0x84 + str r0, [lr] + pop {r3, r4, r5, r6, pc} +_022BF894: + cmp r0, #0x10 + movhi r0, #0x10 + strbhi r0, [sp] + ldrh r2, [r1] + ldrb r0, [sp] + mov r3, #0 + lsl r2, r2, #1 + sub r4, r2, #0x40 + cmp r0, #0 + add r0, r1, #0x40 + mov r2, r3 + and r1, r4, #0xff + ble _022BF944 + add ip, sp, #0 +_022BF8CC: + ldrb r5, [r0] + add r6, ip, r2, lsl #3 + add r4, r0, #2 + strb r5, [r6, #4] + ldrb r5, [r0, #1] + strb r5, [r6, #5] + str r4, [r6, #8] + ldrb r4, [r6, #5] + add r4, r4, #2 + and r5, r4, #0xff + add r3, r3, r5 + and r3, r3, #0xff + cmp r3, r1 + bls _022BF930 + mov r0, #0 + strb r0, [sp] + mov r4, #8 +_022BF910: + ldm ip!, {r0, r1, r2, r3} + stm lr!, {r0, r1, r2, r3} + subs r4, r4, #1 + bne _022BF910 + ldr r0, [ip] + add sp, sp, #0x84 + str r0, [lr] + pop {r3, r4, r5, r6, pc} +_022BF930: + ldrb r4, [sp] + add r2, r2, #1 + add r0, r0, r5 + cmp r2, r4 + blt _022BF8CC +_022BF944: + add r4, sp, #0 + mov ip, #8 +_022BF94C: + ldm r4!, {r0, r1, r2, r3} + stm lr!, {r0, r1, r2, r3} + subs ip, ip, #1 + bne _022BF94C + ldr r0, [r4] + str r0, [lr] + add sp, sp, #0x84 + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_022BF814 + + arm_func_start ov00_022BF96C +ov00_022BF96C: @ 0x022BF96C + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr r0, _022BF9DC @ =0x02318810 + ldr r0, [r0] + cmp r0, #0x10000 + bne _022BF9B4 + bl FUN_0208266C + add r0, sp, #0 + bl FUN_020827F4 + cmp r0, #0 + bne _022BF9B4 + ldr r2, [sp, #8] + ldr r0, [sp, #4] + ldr r1, _022BF9DC @ =0x02318810 + add r0, r2, r0, lsl #8 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [r1] +_022BF9B4: + ldr r1, _022BF9DC @ =0x02318810 + ldr r0, [r1] + add r0, r0, #1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + lsl r0, r2, #0x10 + str r2, [r1] + lsr r0, r0, #0x10 + add sp, sp, #0xc + ldm sp!, {pc} + .align 2, 0 +_022BF9DC: .4byte 0x02318810 + arm_func_end ov00_022BF96C + + arm_func_start ov00_022BF9E0 +ov00_022BF9E0: @ 0x022BF9E0 + ldr ip, _022BF9EC @ =FUN_022BF9F0 + mov r1, #0 bx ip .align 2, 0 -_0204CDC8: .4byte ZinitScriptVariable - arm_func_end FUN_0204cdb8 +_022BF9EC: .4byte FUN_022BF9F0 + arm_func_end ov00_022BF9E0 - arm_func_start FUN_0204cdcc -FUN_0204cdcc: @ 0x0204CDCC - push {r3, lr} - mov r0, #0 - mov r1, #0x57 - bl LoadScriptVariableValue - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - pop {r3, pc} - arm_func_end FUN_0204cdcc + arm_func_start FUN_022BF9F0 +FUN_022BF9F0: @ 0x022BF9F0 + push {r3, r4, r5, lr} + sub sp, sp, #8 + mov r5, r0 + mov r4, r1 + mov r0, #1 + mov r1, #0 + bl ov00_022BEDE4 + cmp r0, #0 + addne sp, sp, #8 + popne {r3, r4, r5, pc} + mov r1, r5 + mov r0, #3 + bl ov00_022BEBE4 + bl ov00_022BED70 + mov r3, r0 + ldr r1, [r3, #0x10] + mov r0, #3 + stm sp, {r1, r4} + mov r1, #4 + ldm r3, {r2, r3} + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 + add sp, sp, #8 + pop {r3, r4, r5, pc} + arm_func_end FUN_022BF9F0 - arm_func_start FUN_0204cde8 -FUN_0204cde8: @ 0x0204CDE8 - ldr ip, _0204CDFC @ =SaveScriptVariableValue - mov r2, r0 - mov r0, #0 - mov r1, #0x57 - bx ip - .align 2, 0 -_0204CDFC: .4byte SaveScriptVariableValue - arm_func_end FUN_0204cde8 - - arm_func_start FUN_0204ce00 -FUN_0204ce00: @ 0x0204CE00 + arm_func_start ov00_022BFA54 +ov00_022BFA54: @ 0x022BFA54 push {r4, lr} mov r4, r0 - bl GetGameMode - cmp r0, #3 - lsl r0, r4, #0x10 - lsr r2, r0, #0x10 - mov r0, #0 - bne _0204CE2C - mov r1, #0x56 - bl LoadScriptVariableValueAtIndex - b _0204CE34 -_0204CE2C: - mov r1, #0x55 - bl LoadScriptVariableValueAtIndex -_0204CE34: + mov r0, #1 + mov r1, r0 + bl ov00_022BEDE4 cmp r0, #0 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff + popne {r4, pc} + mov r1, r4 + mov r0, #4 + bl ov00_022BEBE4 + mov r0, #4 + mov r1, #0 + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 pop {r4, pc} - arm_func_end FUN_0204ce00 + arm_func_end ov00_022BFA54 - arm_func_start FUN_0204ce48 -FUN_0204ce48: @ 0x0204CE48 + arm_func_start ov00_022BFA94 +ov00_022BFA94: @ 0x022BFA94 + push {r4, lr} + mov r4, r0 + mov r0, #1 + mov r1, r0 + bl ov00_022BEDE4 + cmp r0, #0 + popne {r4, pc} + mov r1, r4 + mov r0, #5 + bl ov00_022BEBE4 + mov r0, #5 + mov r1, #0 + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 + pop {r4, pc} + arm_func_end ov00_022BFA94 + + arm_func_start ov00_022BFAD4 +ov00_022BFAD4: @ 0x022BFAD4 + push {r4, lr} + mov r4, r0 + mov r0, #1 + mov r1, #2 + bl ov00_022BEDE4 + cmp r0, #0 + popne {r4, pc} + mov r1, r4 + mov r0, #6 + bl ov00_022BEBE4 + mov r0, #6 + mov r1, #0 + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 + pop {r4, pc} + arm_func_end ov00_022BFAD4 +_022BFB14: + .byte 0x04, 0xC0, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0x3C, 0xFB, 0x2B, 0x02 + + arm_func_start ov00_022BFB24 +ov00_022BFB24: @ 0x022BFB24 + ldr ip, _022BFB38 @ =FUN_022BFB3C + cmp r3, #0 + mov r3, #1 + orreq r3, r3, #2 + bx ip + .align 2, 0 +_022BFB38: .4byte FUN_022BFB3C + arm_func_end ov00_022BFB24 + + arm_func_start FUN_022BFB3C +FUN_022BFB3C: @ 0x022BFB3C + push {r3, r4, r5, lr} + sub sp, sp, #8 + mov r5, r1 + mov r1, r2 + mov r4, r3 + bl ov00_022BE964 + cmp r0, #0 + addne sp, sp, #8 + popne {r3, r4, r5, pc} + mov r1, r5 + mov r0, #0 + bl ov00_022BEBE4 + bl ov00_022BED70 + mov r3, r0 + ldr r1, [r3, #0x10] + mov r0, #0 + stm sp, {r1, r4} + mov r1, #4 + ldm r3, {r2, r3} + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 + add sp, sp, #8 + pop {r3, r4, r5, pc} + arm_func_end FUN_022BFB3C + + arm_func_start ov00_022BFB9C +ov00_022BFB9C: @ 0x022BFB9C + push {r4, lr} + mov r4, r0 + bl ov00_022BED9C + cmp r0, #0 + popne {r4, pc} + mov r1, r4 + mov r0, #1 + bl ov00_022BEBE4 + mov r0, #1 + mov r1, #0 + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 + pop {r4, pc} + arm_func_end ov00_022BFB9C + + arm_func_start ov00_022BFBD4 +ov00_022BFBD4: @ 0x022BFBD4 + push {r4, lr} + mov r4, r0 + mov r0, #1 + mov r1, #2 + bl ov00_022BEDE4 + cmp r0, #0 + popne {r4, pc} + mov r1, r4 + mov r0, #2 + bl ov00_022BEBE4 + mov r0, #2 + mov r1, #0 + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 + pop {r4, pc} + arm_func_end ov00_022BFBD4 + + arm_func_start ov00_022BFC14 +ov00_022BFC14: @ 0x022BFC14 push {r3, r4, r5, lr} mov r5, r0 mov r4, r1 - bl GetGameMode - cmp r0, #3 - lsl r0, r5, #0x10 - mov r3, r4 - bne _0204CE7C - lsr r2, r0, #0x10 - mov r0, #0 - mov r1, #0x56 - bl SaveScriptVariableValueAtIndex + mov r0, #1 + mov r1, #2 + bl ov00_022BEDE4 + cmp r0, #0 + popne {r3, r4, r5, pc} + cmp r4, #0 + moveq r0, #6 + popeq {r3, r4, r5, pc} + ldrh r0, [r4, #4] + cmp r0, #0 + beq _022BFC5C + ldr r0, [r4] + cmp r0, #0 + moveq r0, #6 + popeq {r3, r4, r5, pc} +_022BFC5C: + ldrh r1, [r4, #0x14] + ldrh r0, [r4, #0x34] + cmp r1, #0 + movne r2, #0x2a + moveq r2, #0 + add r0, r0, r2 + cmp r0, #0x200 + bgt _022BFC98 + ldrh r0, [r4, #0x36] + cmp r1, #0 + movne r1, #6 + moveq r1, #0 + add r0, r0, r1 + cmp r0, #0x200 + ble _022BFCA0 +_022BFC98: + mov r0, #6 pop {r3, r4, r5, pc} -_0204CE7C: - lsr r2, r0, #0x10 - mov r0, #0 - mov r1, #0x55 - bl SaveScriptVariableValueAtIndex +_022BFCA0: + mov r0, r4 + bl ov00_022BFCF0 + mov r1, r5 + mov r0, #7 + bl ov00_022BEBE4 + mov r0, r4 + mov r1, #0x40 + bl FUN_0207A2C0 + ldrh r1, [r4, #4] + cmp r1, #0 + beq _022BFCD4 + ldr r0, [r4] + bl FUN_0207A2C0 +_022BFCD4: + mov r2, r4 + mov r0, #7 + mov r1, #1 + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 pop {r3, r4, r5, pc} - arm_func_end FUN_0204ce48 + arm_func_end ov00_022BFC14 - arm_func_start InitDungeonListScriptVars -InitDungeonListScriptVars: @ 0x0204CE90 - push {r3, lr} + arm_func_start ov00_022BFCF0 +ov00_022BFCF0: @ 0x022BFCF0 + ldrh r1, [r0, #4] + cmp r1, #0x70 + movhi r0, #0 + bxhi lr + ldrh r1, [r0, #0x18] + cmp r1, #0xa + blo _022BFD14 + cmp r1, #0x3e8 + bls _022BFD1C +_022BFD14: mov r0, #0 - mov r1, #0x4f - bl ZinitScriptVariable - mov r0, #0 - mov r1, #0x54 - bl ZinitScriptVariable - mov r0, #0 - mov r1, #0x50 - bl ZinitScriptVariable - mov r0, #0 - mov r1, #0x51 - bl ZinitScriptVariable - mov r0, #0 - mov r1, #0x52 - bl ZinitScriptVariable - mov r0, #0 - mov r1, #0x53 - bl ZinitScriptVariable - pop {r3, pc} - arm_func_end InitDungeonListScriptVars - - arm_func_start FUN_0204cee0 -FUN_0204cee0: @ 0x0204CEE0 - push {r3, lr} - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - mov r0, #0 - mov r1, #0x50 - bl LoadScriptVariableValueAtIndex - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FUN_0204cee0 - - arm_func_start FUN_0204cf0c -FUN_0204cf0c: @ 0x0204CF0C - push {r3, lr} - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - mov r0, #0 - mov r1, #0x52 - bl LoadScriptVariableValueAtIndex - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FUN_0204cf0c - - arm_func_start SetDungeonConquest -SetDungeonConquest: @ 0x0204CF38 - push {r3, r4, r5, r6, r7, lr} - lsl r0, r0, #0x10 - mov r3, r1 - lsr r2, r0, #0x10 - mov r0, #0 - mov r1, #0x52 - bl SaveScriptVariableValueAtIndex - mov r7, #0 - ldr r6, _0204CF98 @ =0x0209E008 - mov r5, r7 - mov r4, #0x52 -_0204CF64: - ldrb r2, [r6, r7] - add r7, r7, #1 - cmp r2, #0xff - bne _0204CF80 - mov r0, #0x23 - bl SetAdventureLogCompleted - pop {r3, r4, r5, r6, r7, pc} -_0204CF80: - mov r0, r5 - mov r1, r4 - bl LoadScriptVariableValueAtIndex - cmp r0, #0 - bne _0204CF64 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0204CF98: .4byte 0x0209E008 - arm_func_end SetDungeonConquest - - arm_func_start GetDungeonMode -GetDungeonMode: @ 0x0204CF9C - push {r4, lr} - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - mov r2, r4 - mov r0, #0 - mov r1, #0x4f - bl LoadScriptVariableValueAtIndex - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - mov r2, r4 - mov r0, #0 - mov r1, #0x54 - beq _0204CFF8 - bl LoadScriptVariableValueAtIndex - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - movne r0, #3 - moveq r0, #1 - pop {r4, pc} -_0204CFF8: - bl LoadScriptVariableValueAtIndex - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - movne r0, #2 - moveq r0, #0 - pop {r4, pc} - arm_func_end GetDungeonMode - - arm_func_start FUN_0204d018 -FUN_0204d018: @ 0x0204D018 - push {r4, lr} - cmp r1, #3 - addls pc, pc, r1, lsl #2 - pop {r4, pc} -_0204D028: @ jump table - b _0204D038 @ case 0 - b _0204D06C @ case 1 - b _0204D0A0 @ case 2 - b _0204D0D4 @ case 3 -_0204D038: - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - mov r0, #0 - mov r2, r4 - mov r3, r0 - mov r1, #0x4f - bl SaveScriptVariableValueAtIndex - mov r0, #0 - mov r2, r4 - mov r3, r0 - mov r1, #0x54 - bl SaveScriptVariableValueAtIndex - pop {r4, pc} -_0204D06C: - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - mov r2, r4 - mov r0, #0 - mov r1, #0x4f - mov r3, #1 - bl SaveScriptVariableValueAtIndex - mov r0, #0 - mov r2, r4 - mov r3, r0 - mov r1, #0x54 - bl SaveScriptVariableValueAtIndex - pop {r4, pc} -_0204D0A0: - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - mov r0, #0 - mov r2, r4 - mov r3, r0 - mov r1, #0x4f - bl SaveScriptVariableValueAtIndex - mov r2, r4 - mov r0, #0 - mov r1, #0x54 - mov r3, #1 - bl SaveScriptVariableValueAtIndex - pop {r4, pc} -_0204D0D4: - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - mov r2, r4 - mov r0, #0 - mov r1, #0x4f - mov r3, #1 - bl SaveScriptVariableValueAtIndex - mov r2, r4 - mov r0, #0 - mov r1, #0x54 - mov r3, #1 - bl SaveScriptVariableValueAtIndex - pop {r4, pc} - arm_func_end FUN_0204d018 - - arm_func_start GlobalProgressAlloc -GlobalProgressAlloc: @ 0x0204D108 - push {r3, lr} - mov r0, #0x20c - mov r1, #0 - bl MemAlloc - ldr r2, _0204D12C @ =0x020AFF74 - mov r1, #0x20c - str r0, [r2] - bl MemZero - pop {r3, pc} - .align 2, 0 -_0204D12C: .4byte 0x020AFF74 - arm_func_end GlobalProgressAlloc - - arm_func_start ResetGlobalProgress -ResetGlobalProgress: @ 0x0204D130 - ldr r0, _0204D144 @ =0x020AFF74 - ldr ip, _0204D148 @ =MemZero - mov r1, #0x20c - ldr r0, [r0] - bx ip - .align 2, 0 -_0204D144: .4byte 0x020AFF74 -_0204D148: .4byte MemZero - arm_func_end ResetGlobalProgress - - arm_func_start SetMonsterFlag1 -SetMonsterFlag1: @ 0x0204D14C - push {r3, lr} - ldr r3, _0204D184 @ =0x020AFF74 - asr r1, r0, #4 - add r1, r0, r1, lsr #27 - lsr r2, r0, #0x1f - rsb r0, r2, r0, lsl #27 - ldr lr, [r3] - asr ip, r1, #5 - ldr r3, [lr, ip, lsl #2] - add r0, r2, r0, ror #27 - mov r1, #1 - orr r0, r3, r1, lsl r0 - str r0, [lr, ip, lsl #2] - pop {r3, pc} - .align 2, 0 -_0204D184: .4byte 0x020AFF74 - arm_func_end SetMonsterFlag1 - - arm_func_start GetMonsterFlag1 -GetMonsterFlag1: @ 0x0204D188 - ldr r3, _0204D1C0 @ =0x020AFF74 - asr r1, r0, #4 - add r2, r0, r1, lsr #27 - lsr r1, r0, #0x1f - rsb r0, r1, r0, lsl #27 - add r0, r1, r0, ror #27 - ldr r3, [r3] - asr r2, r2, #5 - ldr r2, [r3, r2, lsl #2] - mov r1, #1 - tst r2, r1, lsl r0 - moveq r1, #0 - and r0, r1, #0xff bx lr - .align 2, 0 -_0204D1C0: .4byte 0x020AFF74 - arm_func_end GetMonsterFlag1 - - arm_func_start SetMonsterFlag2 -SetMonsterFlag2: @ 0x0204D1C4 - push {r3, lr} - bl FemaleToMaleForm - ldr r2, _0204D204 @ =0x020AFF74 - asr r1, r0, #4 - ldr r3, [r2] - add r1, r0, r1, lsr #27 - lsr r2, r0, #0x1f - rsb r0, r2, r0, lsl #27 - add lr, r3, #0x98 - asr ip, r1, #5 - ldr r3, [lr, ip, lsl #2] - add r0, r2, r0, ror #27 - mov r1, #1 - orr r0, r3, r1, lsl r0 - str r0, [lr, ip, lsl #2] - pop {r3, pc} - .align 2, 0 -_0204D204: .4byte 0x020AFF74 - arm_func_end SetMonsterFlag2 - - arm_func_start HasMonsterBeenAttackedInDungeons -HasMonsterBeenAttackedInDungeons: @ 0x0204D208 - push {r3, lr} - bl FemaleToMaleForm - ldr r3, _0204D24C @ =0x020AFF74 - asr r1, r0, #4 - add r2, r0, r1, lsr #27 - lsr r1, r0, #0x1f - rsb r0, r1, r0, lsl #27 - add r0, r1, r0, ror #27 - ldr r3, [r3] - asr r2, r2, #5 - add r2, r3, r2, lsl #2 - ldr r2, [r2, #0x98] - mov r1, #1 - tst r2, r1, lsl r0 - moveq r1, #0 - and r0, r1, #0xff - pop {r3, pc} - .align 2, 0 -_0204D24C: .4byte 0x020AFF74 - arm_func_end HasMonsterBeenAttackedInDungeons - - arm_func_start SetDungeonTipShown -SetDungeonTipShown: @ 0x0204D250 - push {r3, lr} - ldr r2, _0204D28C @ =0x020AFF74 - asr r1, r0, #4 - ldr r3, [r2] - add r1, r0, r1, lsr #27 - lsr r2, r0, #0x1f - rsb r0, r2, r0, lsl #27 - add lr, r3, #0x94 - asr ip, r1, #5 - ldr r3, [lr, ip, lsl #2] - add r0, r2, r0, ror #27 - mov r1, #1 - orr r0, r3, r1, lsl r0 - str r0, [lr, ip, lsl #2] - pop {r3, pc} - .align 2, 0 -_0204D28C: .4byte 0x020AFF74 - arm_func_end SetDungeonTipShown - - arm_func_start GetDungeonTipShown -GetDungeonTipShown: @ 0x0204D290 - cmp r0, #0x1f - movge r0, #0 - bxge lr - ldr r2, _0204D2D8 @ =0x020AFF74 - asr r1, r0, #4 - add r1, r0, r1, lsr #27 - ldr r3, [r2] - asr r2, r1, #5 - lsr r1, r0, #0x1f - add r2, r3, r2, lsl #2 - rsb r0, r1, r0, lsl #27 - add r0, r1, r0, ror #27 - ldr r2, [r2, #0x94] - mov r1, #1 - tst r2, r1, lsl r0 - moveq r1, #0 - and r0, r1, #0xff +_022BFD1C: + ldrh r0, [r0, #0x32] + cmp r0, #1 + blo _022BFD30 + cmp r0, #0xe + bls _022BFD38 +_022BFD30: + mov r0, #0 bx lr - .align 2, 0 -_0204D2D8: .4byte 0x020AFF74 - arm_func_end GetDungeonTipShown - - arm_func_start SetMaxReachedFloor -SetMaxReachedFloor: @ 0x0204D2DC - cmp r0, #0xb4 - ldrlo r2, _0204D2F4 @ =0x020AFF74 - ldrlo r2, [r2] - addlo r0, r2, r0 - strblo r1, [r0, #0x143] - bx lr - .align 2, 0 -_0204D2F4: .4byte 0x020AFF74 - arm_func_end SetMaxReachedFloor - - arm_func_start GetMaxReachedFloor -GetMaxReachedFloor: @ 0x0204D2F8 - cmp r0, #0xb4 - ldrlo r1, _0204D314 @ =0x020AFF74 - movhs r0, #0 - ldrlo r1, [r1] - addlo r0, r1, r0 - ldrblo r0, [r0, #0x143] - bx lr - .align 2, 0 -_0204D314: .4byte 0x020AFF74 - arm_func_end GetMaxReachedFloor - - arm_func_start IncrementNbAdventures -IncrementNbAdventures: @ 0x0204D318 - ldr r0, _0204D344 @ =0x020AFF74 - ldr r1, _0204D348 @ =0x000F423F - ldr r3, [r0] - ldr r2, [r3, #0x1f8] - add r2, r2, #1 - str r2, [r3, #0x1f8] - ldr r2, [r0] - ldr r0, [r2, #0x1f8] - cmp r0, r1 - strhi r1, [r2, #0x1f8] - bx lr - .align 2, 0 -_0204D344: .4byte 0x020AFF74 -_0204D348: .4byte 0x000F423F - arm_func_end IncrementNbAdventures - - arm_func_start GetNbAdventures -GetNbAdventures: @ 0x0204D34C - ldr r0, _0204D35C @ =0x020AFF74 - ldr r0, [r0] - ldr r0, [r0, #0x1f8] - bx lr - .align 2, 0 -_0204D35C: .4byte 0x020AFF74 - arm_func_end GetNbAdventures - - arm_func_start CanMonsterSpawn -CanMonsterSpawn: @ 0x0204D360 +_022BFD38: mov r0, #1 bx lr - arm_func_end CanMonsterSpawn + arm_func_end ov00_022BFCF0 - arm_func_start IncrementExclusiveMonsterCounts -IncrementExclusiveMonsterCounts: @ 0x0204D368 - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r4, _0204D3B8 @ =0x020A1A00 - ldr r7, _0204D3BC @ =0x020AFF74 - mov r6, r0 - mov r5, #0 - mov r8, #1 -_0204D380: - lsl r0, r5, #2 - ldrsh r0, [r4, r0] - bl GetDexNumber - mov sb, r0 - mov r0, r6 - bl GetDexNumber - cmp sb, r0 - ldreq r0, [r7] - addeq r0, r0, r5 - add r5, r5, #1 - strbeq r8, [r0, #0x12c] - cmp r5, #0x17 - blt _0204D380 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0204D3B8: .4byte 0x020A1A00 -_0204D3BC: .4byte 0x020AFF74 - arm_func_end IncrementExclusiveMonsterCounts - - arm_func_start CopyProgressInfoTo -CopyProgressInfoTo: @ 0x0204D3C0 - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r4, _0204D538 @ =0x00000483 - mov r5, r0 - mov r8, #0 - add r7, sp, #0 - mov r6, #1 -_0204D3D8: - lsl r0, r8, #0x10 - asr r0, r0, #0x10 - bl GetMonsterFlag1 - strb r0, [sp] - mov r0, r5 - mov r1, r7 - mov r2, r6 - bl CopyBitsTo - add r8, r8, #1 - cmp r8, r4 - blt _0204D3D8 - mov r7, #0 - add r6, sp, #0 - mov r4, #1 -_0204D410: - mov r0, r7 - bl GetDungeonTipShown - strb r0, [sp] - mov r0, r5 - mov r1, r6 - mov r2, r4 - bl CopyBitsTo - add r7, r7, #1 - cmp r7, #0x1f - blt _0204D410 - ldr r4, _0204D538 @ =0x00000483 - mov r8, #0 - add r7, sp, #0 - mov r6, #1 -_0204D448: - lsl r0, r8, #0x10 - asr r0, r0, #0x10 - bl HasMonsterBeenAttackedInDungeons - strb r0, [sp] - mov r0, r5 - mov r1, r7 - mov r2, r6 - bl CopyBitsTo - add r8, r8, #1 - cmp r8, r4 - blt _0204D448 - ldr r8, _0204D53C @ =0x0209E011 - ldr sb, _0204D540 @ =0x0209E010 - ldr r6, _0204D544 @ =0x020AFF74 - mov r4, #0 - mov r7, #1 -_0204D488: - ldr r0, [r6] - mov r2, r7 - add r0, r0, r4 - ldrb r0, [r0, #0x12c] - cmp r0, #0 - movne r1, sb - moveq r1, r8 - mov r0, r5 - bl CopyBitsTo - add r4, r4, #1 - cmp r4, #0x17 - blt _0204D488 - ldr r4, _0204D544 @ =0x020AFF74 - mov r7, #0 - mov r6, #7 -_0204D4C4: - ldr r1, [r4] - mov r0, r5 - add r1, r1, #0x43 - add r1, r1, #0x100 - mov r2, r6 - add r1, r1, r7 - bl CopyBitsTo - add r7, r7, #1 - cmp r7, #0xb4 - blt _0204D4C4 - ldr r1, _0204D544 @ =0x020AFF74 - mov r0, r5 - ldr r1, [r1] - mov r2, #0x20 - add r1, r1, #0x1f8 - bl CopyBitsTo - ldr r4, _0204D544 @ =0x020AFF74 - mov r7, #0 - mov r6, #8 -_0204D510: - ldr r1, [r4] - mov r0, r5 - add r1, r1, #0x1fc - mov r2, r6 - add r1, r1, r7 - bl CopyBitsTo - add r7, r7, #1 - cmp r7, #0x10 - blt _0204D510 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0204D538: .4byte 0x00000483 -_0204D53C: .4byte 0x0209E011 -_0204D540: .4byte 0x0209E010 -_0204D544: .4byte 0x020AFF74 - arm_func_end CopyProgressInfoTo - - arm_func_start CopyProgressInfoFromScratchTo -CopyProgressInfoFromScratchTo: @ 0x0204D548 - push {r3, lr} - sub sp, sp, #0x10 - mov r3, r0 - mov r2, r1 - add r0, sp, #0 - mov r1, r3 - bl FUN_02050990 - add r0, sp, #0 - bl CopyProgressInfoTo - add r0, sp, #0 - bl FUN_020509bc - ldr r0, [sp, #8] - add sp, sp, #0x10 - pop {r3, pc} - arm_func_end CopyProgressInfoFromScratchTo - - arm_func_start CopyProgressInfoFrom -CopyProgressInfoFrom: @ 0x0204D580 - push {r3, r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #4 - ldr r1, _0204D740 @ =0x020AFF74 - mov r4, r0 - ldr r0, [r1] - mov r1, #0x20c - bl MemZero - ldr r5, _0204D744 @ =0x00000483 - mov r8, #0 - add r7, sp, #0 - mov r6, #1 -_0204D5AC: - mov r0, r4 - mov r1, r7 - mov r2, r6 - bl CopyBitsFrom - ldrb r0, [sp] - cmp r0, #0 - beq _0204D5D4 - lsl r0, r8, #0x10 - asr r0, r0, #0x10 - bl SetMonsterFlag1 -_0204D5D4: - add r8, r8, #1 - cmp r8, r5 - blt _0204D5AC - mov r7, #0 - add r6, sp, #0 - mov r5, #1 -_0204D5EC: - mov r0, r4 - mov r1, r6 - mov r2, r5 - bl CopyBitsFrom - ldrb r0, [sp] - cmp r0, #0 - beq _0204D610 - mov r0, r7 - bl SetDungeonTipShown -_0204D610: - add r7, r7, #1 - cmp r7, #0x1f - blt _0204D5EC - ldr r5, _0204D744 @ =0x00000483 - mov r8, #0 - add r7, sp, #0 - mov r6, #1 -_0204D62C: - mov r0, r4 - mov r1, r7 - mov r2, r6 - bl CopyBitsFrom - ldrb r0, [sp] - cmp r0, #0 - beq _0204D654 - lsl r0, r8, #0x10 - asr r0, r0, #0x10 - bl SetMonsterFlag2 -_0204D654: - add r8, r8, #1 - cmp r8, r5 - blt _0204D62C - mov sb, #0 - mov r6, #1 - ldr sl, _0204D740 @ =0x020AFF74 - mov r5, sb - add r8, sp, #1 - mov r7, r6 -_0204D678: - mov r0, r4 - mov r1, r8 - mov r2, r7 - bl CopyBitsFrom - ldrb r0, [sp, #1] - tst r0, #1 - ldr r0, [sl] - movne r1, r6 - add r0, r0, sb - moveq r1, r5 - add sb, sb, #1 - strb r1, [r0, #0x12c] - cmp sb, #0x17 - blt _0204D678 - ldr r8, _0204D740 @ =0x020AFF74 - mov r7, #0 - add r6, sp, #1 - mov r5, #7 -_0204D6C0: - mov r0, r4 - mov r1, r6 - mov r2, r5 - bl CopyBitsFrom - ldrb r1, [sp, #1] - ldr r0, [r8] - add r0, r0, r7 - and r1, r1, #0x7f - add r7, r7, #1 - strb r1, [r0, #0x143] - cmp r7, #0xb4 - blt _0204D6C0 - ldr r1, _0204D740 @ =0x020AFF74 - mov r0, r4 - ldr r1, [r1] - mov r2, #0x20 - add r1, r1, #0x1f8 - bl CopyBitsFrom - ldr r5, _0204D740 @ =0x020AFF74 - mov r7, #0 - mov r6, #8 -_0204D714: - ldr r1, [r5] - mov r0, r4 - add r1, r1, #0x1fc - mov r2, r6 - add r1, r1, r7 - bl CopyBitsFrom - add r7, r7, #1 - cmp r7, #0x10 - blt _0204D714 - add sp, sp, #4 - pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_0204D740: .4byte 0x020AFF74 -_0204D744: .4byte 0x00000483 - arm_func_end CopyProgressInfoFrom - - arm_func_start CopyProgressInfoFromScratchFrom -CopyProgressInfoFromScratchFrom: @ 0x0204D748 - push {r3, lr} - sub sp, sp, #0x10 - mov r3, r0 - mov r2, r1 - add r0, sp, #0 - mov r1, r3 - bl FUN_02050974 - add r0, sp, #0 - bl CopyProgressInfoFrom - add r0, sp, #0 - bl FUN_020509bc - ldr r0, [sp, #8] - add sp, sp, #0x10 - pop {r3, pc} - arm_func_end CopyProgressInfoFromScratchFrom - - arm_func_start FUN_0204d780 -FUN_0204d780: @ 0x0204D780 - push {r3, lr} - bl DataTransferInit - ldr r0, _0204D798 @ =0x022AB4B0 - bl FileInitVeneer - bl DataTransferStop - pop {r3, pc} - .align 2, 0 -_0204D798: .4byte 0x022AB4B0 - arm_func_end FUN_0204d780 - - arm_func_start InitPortraitBox -InitPortraitBox: @ 0x0204D79C - mov r2, #0 - strh r2, [r0] - sub r1, r2, #2 - strb r1, [r0, #2] - strb r2, [r0, #3] - mov r1, #2 - str r1, [r0, #4] - mov r1, #9 - str r1, [r0, #8] - strb r2, [r0, #0xc] - strb r2, [r0, #0xd] - strb r2, [r0, #0xe] - strb r2, [r0, #0xf] - bx lr - arm_func_end InitPortraitBox - - arm_func_start InitPortraitBoxWithMonsterId -InitPortraitBoxWithMonsterId: @ 0x0204D7D4 + arm_func_start ov00_022BFD40 +ov00_022BFD40: @ 0x022BFD40 push {r3, r4, r5, lr} mov r5, r0 mov r4, r1 - bl InitPortraitBox - strh r4, [r5] - mov r0, #0 - strb r0, [r5, #2] + mov r0, #1 + mov r1, #2 + bl ov00_022BEDE4 + cmp r0, #0 + popne {r3, r4, r5, pc} + bl ov00_022BED70 + add r1, r0, #0x100 + mov r2, #0 + strh r2, [r1, #0x50] + str r2, [r0, #0x14c] + mov r1, r5 + mov r0, #8 + bl ov00_022BEBE4 + mov r2, r4 + mov r0, #8 + mov r1, #1 + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 pop {r3, r4, r5, pc} - arm_func_end InitPortraitBoxWithMonsterId + arm_func_end ov00_022BFD40 - arm_func_start SetPortraitExpressionId -SetPortraitExpressionId: @ 0x0204D7F4 - ldrsh r2, [r0] - cmp r2, #0 - strbne r1, [r0, #2] - bx lr - arm_func_end SetPortraitExpressionId - - arm_func_start SetPortraitUnknownAttr -SetPortraitUnknownAttr: @ 0x0204D804 - ldrsh r2, [r0] - cmp r2, #0 - cmpne r1, #0x20 - bxeq lr - mov r2, #6 - mul r2, r1, r2 - ldr r3, _0204D844 @ =0x0209E014 - strb r1, [r0, #3] - ldrsh r1, [r3, r2] - add r2, r3, r2 - str r1, [r0, #4] - ldrsh r1, [r2, #2] - str r1, [r0, #8] - ldrb r1, [r2, #4] - strb r1, [r0, #0xc] - bx lr + arm_func_start ov00_022BFD9C +ov00_022BFD9C: @ 0x022BFD9C + ldr ip, _022BFDA8 @ =ov00_022BFD40 + mov r1, #1 + bx ip .align 2, 0 -_0204D844: .4byte 0x0209E014 - arm_func_end SetPortraitUnknownAttr +_022BFDA8: .4byte ov00_022BFD40 + arm_func_end ov00_022BFD9C - arm_func_start SetPortraitAttrStruct -SetPortraitAttrStruct: @ 0x0204D848 - push {r3, lr} - ldrsh r2, [r0] - cmp r2, #0 - popeq {r3, pc} - ldrb r3, [r0, #3] + arm_func_start ov00_022BFDAC +ov00_022BFDAC: @ 0x022BFDAC + push {r4, lr} + mov r4, r0 + mov r0, #1 + mov r1, #7 + bl ov00_022BEDE4 + cmp r0, #0 + popne {r4, pc} + mov r1, r4 + mov r0, #9 + bl ov00_022BEBE4 + mov r0, #9 + mov r1, #0 + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 + pop {r4, pc} + arm_func_end ov00_022BFDAC + + arm_func_start ov00_022BFDEC +ov00_022BFDEC: @ 0x022BFDEC + push {r3, r4, r5, lr} + sub sp, sp, #0x10 + mov r5, r0 + mov r0, #3 + mov r4, r1 + mov r2, r0 + mov r1, #2 + mov r3, #5 + bl ov00_022BEDE4 + cmp r0, #0 + addne sp, sp, #0x10 + popne {r3, r4, r5, pc} + cmp r4, #0 + addeq sp, sp, #0x10 + moveq r0, #6 + popeq {r3, r4, r5, pc} + ldr r0, [r4] + cmp r0, #0 + addeq sp, sp, #0x10 + moveq r0, #6 + popeq {r3, r4, r5, pc} + ldrh r0, [r4, #4] + cmp r0, #1 + blo _022BFE54 + cmp r0, #0xe + bls _022BFE60 +_022BFE54: + add sp, sp, #0x10 + mov r0, #6 + pop {r3, r4, r5, pc} +_022BFE60: + mov r1, r5 + mov r0, #0xa + bl ov00_022BEBE4 + mov r0, #0xa + strh r0, [sp] + ldrh r2, [r4, #4] + add r0, sp, #0 + mov r1, #0x10 + strh r2, [sp, #2] + ldr r2, [r4] + str r2, [sp, #4] + ldrh r2, [r4, #6] + strh r2, [sp, #8] + ldrb r2, [r4, #8] + strb r2, [sp, #0xa] + ldrb r2, [r4, #9] + strb r2, [sp, #0xb] + ldrb r2, [r4, #0xa] + strb r2, [sp, #0xc] + ldrb r2, [r4, #0xb] + strb r2, [sp, #0xd] + ldrb r2, [r4, #0xc] + strb r2, [sp, #0xe] + ldrb r2, [r4, #0xd] + strb r2, [sp, #0xf] + bl ov00_022BED00 + cmp r0, #0 + moveq r0, #2 + add sp, sp, #0x10 + pop {r3, r4, r5, pc} + arm_func_end ov00_022BFDEC + + arm_func_start ov00_022BFED8 +ov00_022BFED8: @ 0x022BFED8 + push {r4, r5, lr} + sub sp, sp, #0x3c + mov r5, r0 + mov r0, #3 + mov r4, r1 + mov r2, r0 + mov r1, #2 + mov r3, #5 + bl ov00_022BEDE4 + cmp r0, #0 + addne sp, sp, #0x3c + popne {r4, r5, pc} + cmp r4, #0 + addeq sp, sp, #0x3c + moveq r0, #6 + popeq {r4, r5, pc} + ldr r0, [r4] + cmp r0, #0 + addeq sp, sp, #0x3c + moveq r0, #6 + popeq {r4, r5, pc} + ldrh r0, [r4, #4] + cmp r0, #0x400 + addhi sp, sp, #0x3c + movhi r0, #6 + pophi {r4, r5, pc} + ldrh r0, [r4, #0x12] + cmp r0, #0x20 + addhi sp, sp, #0x3c + movhi r0, #6 + pophi {r4, r5, pc} + ldrh r0, [r4, #0x10] + cmp r0, #0 + cmpne r0, #1 + cmpne r0, #2 + cmpne r0, #3 + addne sp, sp, #0x3c + movne r0, #6 + popne {r4, r5, pc} + add r0, r0, #0xfe + add r0, r0, #0xff00 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, #1 + bhi _022BFFA0 + ldrh r0, [r4, #0x34] + cmp r0, #0x20 + addhi sp, sp, #0x3c + movhi r0, #6 + pophi {r4, r5, pc} +_022BFFA0: + mov r1, r5 + mov r0, #0x26 + bl ov00_022BEBE4 + mov r0, #0x26 + strh r0, [sp] + ldrh r2, [r4, #6] + add r1, sp, #0xc + add r0, r4, #0xa + strh r2, [sp, #2] + ldr r3, [r4] mov r2, #6 - ldr lr, _0204D890 @ =0x0209E014 - smulbb ip, r3, r2 - ldrsh r3, [lr, ip] - ldr r2, [r1] - add ip, lr, ip - add r2, r3, r2 - str r2, [r0, #4] - ldrsh r2, [ip, #2] - ldr r1, [r1, #4] - add r1, r2, r1 - str r1, [r0, #8] - pop {r3, pc} - .align 2, 0 -_0204D890: .4byte 0x0209E014 - arm_func_end SetPortraitAttrStruct -_0204D894: - .byte 0x0F, 0x10, 0xC0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + str r3, [sp, #4] + ldrh r3, [r4, #4] + strh r3, [sp, #8] + ldrh r3, [r4, #8] + strh r3, [sp, #0xa] + bl FUN_0207C4C8 + ldrh r2, [r4, #0x10] + add r1, sp, #0x16 + add r0, r4, #0x14 + strh r2, [sp, #0x12] + ldrh r3, [r4, #0x34] + mov r2, #0x20 + strh r3, [sp, #0x36] + ldrh r3, [r4, #0x12] + strh r3, [sp, #0x14] + bl FUN_0207C4C8 + add r0, sp, #0 + mov r1, #0x3c + bl ov00_022BED00 + cmp r0, #0 + moveq r0, #2 + add sp, sp, #0x3c + pop {r4, r5, pc} + arm_func_end ov00_022BFED8 - arm_func_start FUN_0204d89c -FUN_0204d89c: @ 0x0204D89C - ldrsh r1, [r0] + arm_func_start ov00_022C0028 +ov00_022C0028: @ 0x022C0028 + push {r4, lr} + mov r4, r0 + mov r0, #1 + mov r1, #5 + bl ov00_022BEDE4 + cmp r0, #0 + popne {r4, pc} + mov r1, r4 + mov r0, #0xb + bl ov00_022BEBE4 + mov r0, #0xb + mov r1, #0 + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 + pop {r4, pc} + arm_func_end ov00_022C0028 + + arm_func_start ov00_022C0068 +ov00_022C0068: @ 0x022C0068 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x28 + mov r7, r0 + mov r6, r1 + mov r0, #1 + mov r1, #2 + mov r5, r2 + mov r4, r3 + bl ov00_022BEDE4 + cmp r0, #0 + addne sp, sp, #0x28 + popne {r3, r4, r5, r6, r7, pc} + cmp r6, #0 + addeq sp, sp, #0x28 + moveq r0, #6 + popeq {r3, r4, r5, r6, r7, pc} + ldrh r1, [r6] + mov r0, r6 + lsl r1, r1, #1 + bl FUN_0207A2C0 + bl ov00_022BED70 + add r1, r0, #0x100 + mov r2, #0 + strh r2, [r1, #0x50] + str r2, [r0, #0x14c] + mov r1, r7 + mov r0, #0xc + bl ov00_022BEBE4 + mov r0, #0xc + strh r0, [sp] + str r6, [sp, #4] + cmp r5, #0 + mov r2, #0x18 + beq _022C0100 + add r1, sp, #8 + mov r0, r5 + bl FUN_0207C4C8 + b _022C010C +_022C0100: + add r0, sp, #8 + mov r1, #0 + bl FUN_0207C40C +_022C010C: + ldrh r2, [sp, #0x40] + add r0, sp, #0 + mov r1, #0x28 + str r4, [sp, #0x20] + strh r2, [sp, #0x26] + bl ov00_022BED00 + cmp r0, #0 + moveq r0, #2 + add sp, sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022C0068 + + arm_func_start ov00_022C0134 +ov00_022C0134: @ 0x022C0134 + push {r4, r5, r6, lr} + sub sp, sp, #8 + mov r5, r0 + mov r4, r1 + bl ov00_022BED70 + mov r1, #0xa + mov r6, r0 + str r1, [sp] + mov ip, #0xb + mov r0, #5 + mov r1, #7 + mov r2, #9 + mov r3, #8 + str ip, [sp, #4] + bl ov00_022BEDE4 + cmp r0, #0 + addne sp, sp, #8 + popne {r4, r5, r6, pc} + ldr r1, [r6, #4] + ldrh r0, [r1] + cmp r0, #7 + cmpne r0, #9 + bne _022C01E0 + cmp r4, #1 + blo _022C01A0 + cmp r4, #0xf + bls _022C01AC +_022C01A0: + add sp, sp, #8 + mov r0, #6 + pop {r4, r5, r6, pc} +_022C01AC: + add r0, r1, #0x82 + add r0, r0, #0x100 + mov r1, #2 + bl FUN_0207A2A4 + ldr r0, [r6, #4] + mov r1, #1 + add r0, r0, #0x100 + ldrh r0, [r0, #0x82] + tst r0, r1, lsl r4 + bne _022C01F0 + add sp, sp, #8 + mov r0, #7 + pop {r4, r5, r6, pc} +_022C01E0: + cmp r4, #0 + addne sp, sp, #8 + movne r0, #6 + popne {r4, r5, r6, pc} +_022C01F0: + mov r1, r5 + mov r0, #0xd + bl ov00_022BEBE4 + mov r1, #1 + lsl r2, r1, r4 + mov r0, #0xd + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 + add sp, sp, #8 + pop {r4, r5, r6, pc} + arm_func_end ov00_022C0134 + + arm_func_start ov00_022C021C +ov00_022C021C: @ 0x022C021C + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x40 + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, r3 + bl ov00_022BED70 + ldr r4, [r0, #4] + mov r0, #2 + mov r1, #7 + mov r2, #8 + bl ov00_022BEDE4 + cmp r0, #0 + addne sp, sp, #0x40 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + add r0, r4, #0x188 + mov r1, #2 + bl FUN_0207A2A4 + add r0, r4, #0xc6 + mov r1, #2 + bl FUN_0207A2A4 + add r0, r4, #0x100 + ldrh r0, [r0, #0x88] + cmp r0, #0 + ldrhne r0, [r4, #0xc6] + cmpne r0, #1 + addne sp, sp, #0x40 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + add r0, r4, #0xc + mov r1, #4 + bl FUN_0207A2A4 + ldr r0, [r4, #0xc] + cmp r0, #1 + addeq sp, sp, #0x40 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + tst r6, #0x3f + addne sp, sp, #0x40 + movne r0, #6 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + ldrh sb, [sp, #0x60] + tst sb, #0x1f + addne sp, sp, #0x40 + movne r0, #6 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + add r0, r4, #0x9c + mov r1, #2 + bl FUN_0207A2A4 + ldrh r0, [r4, #0x9c] + cmp r0, #0 + bne _022C0314 + bl ov00_022BF498 + cmp r6, r0 + addlt sp, sp, #0x40 + movlt r0, #6 + poplt {r3, r4, r5, r6, r7, r8, sb, pc} + bl ov00_022BF42C + cmp sb, r0 + addlt sp, sp, #0x40 + movlt r0, #6 + poplt {r3, r4, r5, r6, r7, r8, sb, pc} +_022C0314: + mov r1, r8 + mov r0, #0xe + bl ov00_022BEBE4 + add r1, sp, #0 + mov r0, #0 + mov r2, #0x40 + bl FUN_0207C314 + lsr r4, r6, #1 + ldrh r3, [sp, #0x60] + mov r6, #0xe + add r1, sp, #0x14 + mov r0, #0 + mov r2, #0x1c + strh r6, [sp] + str r7, [sp, #4] + str r4, [sp, #8] + str r5, [sp, #0xc] + str r3, [sp, #0x10] + bl FUN_0207C314 + ldr r0, [sp, #0x64] + add r1, sp, #0x30 + mov r2, #0x10 + bl FUN_0207C330 + add r0, sp, #0 + mov r1, #0x40 + bl ov00_022BED00 + cmp r0, #0 + moveq r0, #2 + add sp, sp, #0x40 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_022C021C + + arm_func_start ov00_022C038C +ov00_022C038C: @ 0x022C038C + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x18 + mov r7, r1 + mov r8, r0 + mov r6, r2 + add r1, sp, #8 + mov r0, #0 + mov r2, #0x10 + mov r5, r3 + ldr r4, [sp, #0x34] + bl FUN_0207C314 + ldr r1, [sp, #0x48] + ldrh ip, [sp, #0x38] + ldr r0, [sp, #0x44] + ldr lr, _022C042C @ =0x00001E03 + ldr r3, [sp, #0x3c] + ldr r2, [sp, #0x40] + strb r1, [sp, #0x16] + cmp r0, #0 + cmpne r4, #0 + strb r3, [sp, #0x14] + strb r2, [sp, #0x15] + ldrh r1, [sp, #0x30] + str lr, [sp, #8] + orrne r0, lr, #4 + strne r0, [sp, #8] + strh ip, [sp, #0x12] + strh r4, [sp, #0xc] + strh r4, [sp, #0xe] + strhne r4, [sp, #0x10] + str r1, [sp] + add r4, sp, #8 + mov r0, r8 + mov r1, r7 + mov r2, r6 + mov r3, r5 + str r4, [sp, #4] + bl ov00_022C021C + add sp, sp, #0x18 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022C042C: .4byte 0x00001E03 + arm_func_end ov00_022C038C + + arm_func_start ov00_022C0430 +ov00_022C0430: @ 0x022C0430 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x18 + mov r6, r1 + mov r7, r0 + mov r5, r2 + add r1, sp, #8 + mov r0, #0 + mov r2, #0x10 + mov r4, r3 + bl FUN_0207C314 + ldrh ip, [sp, #0x34] + mov r0, #3 + str r0, [sp, #8] + ldrh lr, [sp, #0x30] + strh ip, [sp, #0xc] + strh ip, [sp, #0xe] + mov r0, r7 + mov r1, r6 + mov r2, r5 + mov r3, r4 + add ip, sp, #8 + str lr, [sp] + str ip, [sp, #4] + bl ov00_022C021C + add sp, sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022C0430 + + arm_func_start ov00_022C0498 +ov00_022C0498: @ 0x022C0498 + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x14 + mov sb, r0 + mov r8, r1 + mov r7, r2 + mov r6, r3 + mov r4, #1 + bl ov00_022BED70 + ldr r5, [r0, #4] + mov r0, #2 + mov r1, #9 + mov r2, #0xa + bl ov00_022BEDE4 + cmp r0, #0 + addne sp, sp, #0x14 + popne {r4, r5, r6, r7, r8, sb, pc} + add r0, r5, #0x188 + mov r1, #2 + bl FUN_0207A2A4 + add r0, r5, #0x100 + ldrh r0, [r0, #0x88] + cmp r0, #0 + bne _022C0518 + add r0, r5, #0x82 + add r0, r0, #0x100 + mov r1, #2 + bl FUN_0207A2A4 + add r2, r5, #0x100 + add r0, r5, #0x86 + mov r1, #2 + ldrh r4, [r2, #0x82] + bl FUN_0207A2A4 +_022C0518: + cmp r7, #0 + addeq sp, sp, #0x14 + moveq r0, #6 + popeq {r4, r5, r6, r7, r8, sb, pc} + cmp r4, #0 + addeq sp, sp, #0x14 + moveq r0, #7 + popeq {r4, r5, r6, r7, r8, sb, pc} + add r0, r5, #0x7c + mov r1, #2 + bl FUN_0207A2A4 + ldr r0, [r5, #0x7c] + cmp r7, r0 + addeq sp, sp, #0x14 + moveq r0, #6 + popeq {r4, r5, r6, r7, r8, sb, pc} + cmp r6, #0x200 + addhi sp, sp, #0x14 + movhi r0, #6 + pophi {r4, r5, r6, r7, r8, sb, pc} + cmp r6, #0 + addeq sp, sp, #0x14 + moveq r0, #6 + popeq {r4, r5, r6, r7, r8, sb, pc} + mov r0, r7 + mov r1, r6 + bl FUN_0207A2C0 + ldrh r2, [sp, #0x30] + ldrh r1, [sp, #0x34] + ldrh r0, [sp, #0x38] + str r2, [sp] + str r1, [sp, #4] + str r0, [sp, #8] + str sb, [sp, #0xc] + mov r2, r7 + mov r3, r6 + mov r0, #0xf + mov r1, #7 + str r8, [sp, #0x10] + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 + add sp, sp, #0x14 + pop {r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_022C0498 + + arm_func_start ov00_022C05C8 +ov00_022C05C8: @ 0x022C05C8 + push {r3, r4, r5, lr} + mov r5, r0 + bl ov00_022BED70 + mov r4, r0 + mov r0, #2 + mov r1, #9 + mov r2, #0xa + bl ov00_022BEDE4 + cmp r0, #0 + popne {r3, r4, r5, pc} + ldr r0, [r4, #4] + mov r1, #4 + add r0, r0, #0xc + bl FUN_0207A2A4 + ldr r0, [r4, #4] + ldr r0, [r0, #0xc] + cmp r0, #0 + moveq r0, #3 + popeq {r3, r4, r5, pc} + mov r1, r5 + mov r0, #0x10 + bl ov00_022BEBE4 + mov r0, #0x10 + mov r1, #0 + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 + pop {r3, r4, r5, pc} + arm_func_end ov00_022C05C8 + + arm_func_start ov00_022C0638 +ov00_022C0638: @ 0x022C0638 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + mov r6, r1 + mov r5, r2 + bl ov00_022BED70 + mov r4, r0 + mov r0, #1 + mov r1, #8 + bl ov00_022BEDE4 + cmp r0, #0 + popne {r3, r4, r5, r6, r7, pc} + ldr r0, [r4, #4] + mov r1, #4 + add r0, r0, #0x10 + bl FUN_0207A2A4 + ldr r0, [r4, #4] + ldr r0, [r0, #0x10] + cmp r0, #1 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, pc} + cmp r5, #0x10 + movlo r0, #6 + poplo {r3, r4, r5, r6, r7, pc} + cmp r6, #0 + moveq r0, #6 + popeq {r3, r4, r5, r6, r7, pc} + mov r0, r6 + mov r1, r5 + bl FUN_0207A2C0 + mov r1, r7 + mov r0, #0x11 + bl ov00_022BEBE4 + mov r2, r6 + mov r3, r5 + mov r0, #0x11 + mov r1, #2 + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022C0638 + + arm_func_start ov00_022C06D8 +ov00_022C06D8: @ 0x022C06D8 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x10 + mov r7, r0 + mov r6, r1 + mov r5, r2 + mov r4, r3 + bl ov00_022BED70 + mov r8, r0 + mov r0, #1 + mov r1, #0xb + bl ov00_022BEDE4 + cmp r0, #0 + addne sp, sp, #0x10 + popne {r4, r5, r6, r7, r8, pc} + ldr r0, [r8, #4] + mov r1, #4 + add r0, r0, #0x10 + bl FUN_0207A2A4 + ldr r0, [r8, #4] + ldr r0, [r0, #0x10] + cmp r0, #0 + addeq sp, sp, #0x10 + moveq r0, #3 + popeq {r4, r5, r6, r7, r8, pc} + ldr r0, _022C07A0 @ =0x000005E4 + cmp r4, r0 + addhi sp, sp, #0x10 + movhi r0, #6 + pophi {r4, r5, r6, r7, r8, pc} + mov r0, r5 + mov r1, r4 + bl FUN_0207A2C0 + mov r1, r7 + mov r0, #0x12 + bl ov00_022BEBE4 + add r1, sp, #8 + mov r0, r6 + mov r2, #6 + bl FUN_0207C4C8 + str r5, [sp] + str r4, [sp, #4] + ldr r2, [sp, #8] + ldr r3, [sp, #0xc] + mov r0, #0x12 + mov r1, #4 + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 + add sp, sp, #0x10 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022C07A0: .4byte 0x000005E4 + arm_func_end ov00_022C06D8 + + arm_func_start ov00_022C07A4 +ov00_022C07A4: @ 0x022C07A4 + push {r3, r4, r5, lr} + mov r5, r0 + bl ov00_022BED70 + mov r4, r0 + mov r0, #1 + mov r1, #0xb + bl ov00_022BEDE4 + cmp r0, #0 + popne {r3, r4, r5, pc} + ldr r0, [r4, #4] + mov r1, #4 + add r0, r0, #0x10 + bl FUN_0207A2A4 + ldr r0, [r4, #4] + ldr r0, [r0, #0x10] + cmp r0, #0 + moveq r0, #3 + popeq {r3, r4, r5, pc} + mov r1, r5 + mov r0, #0x13 + bl ov00_022BEBE4 + mov r0, #0x13 + mov r1, #0 + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 + pop {r3, r4, r5, pc} + arm_func_end ov00_022C07A4 + + arm_func_start ov00_022C0810 +ov00_022C0810: @ 0x022C0810 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0xc + mov sl, r0 + mov r7, r1 + mov r6, r2 + mov r0, #2 + mov r1, #9 + mov r2, #0xa + mov r5, r3 + mov r8, #1 + bl ov00_022BEDE4 + cmp r0, #0 + addne sp, sp, #0xc + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp sl, #0 + addeq sp, sp, #0xc + moveq r0, #6 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r7, #0x10 + addhs sp, sp, #0xc + movhs r0, #6 + pophs {r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r6, #0 + addeq sp, sp, #0xc + moveq r0, #6 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + bl ov00_022BF264 + movs r4, r0 + bne _022C088C + bl ov00_022BF294 + mov r8, r0 +_022C088C: + mov r1, sl + mov r0, #0 + mov r2, #0x820 + bl FUN_0207C358 + add r0, sl, #0x800 + mov r2, #0 + strh r2, [r0, #8] + strh r2, [r0, #0xa] + strh r2, [r0, #0xc] + strh r5, [r0, #0x10] + strh r7, [r0, #0x16] + strh r2, [r0, #0xe] + mov r0, #1 + ldr r1, [sp, #0x30] + orr r0, r6, r0, lsl r4 cmp r1, #0 - ldrsbne r1, [r0, #2] - mvnne r0, #1 - cmpne r1, r0 + lsl r0, r0, #0x10 + movne r2, #1 + add r1, sl, #0x800 + strh r2, [r1, #0x18] + lsr r0, r0, #0x10 + strh r0, [r1, #0xe] + bl FUN_02084F34 + add r3, sl, #0x800 + mul r1, r5, r0 + strh r0, [r3, #0x12] + strh r1, [r3, #0x14] + ldrh r0, [r3, #0x14] + cmp r0, #0x1fc + bls _022C0918 + mov r0, #0 + strh r0, [r3, #0xe] + add sp, sp, #0xc + mov r0, #6 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C0918: + add r0, r0, #4 + strh r0, [r3, #0x14] + mov r0, #1 + strh r0, [r3, #0x1c] + cmp r4, #0 + bne _022C0A30 + orr r4, r8, #1 + mov r2, #0 +_022C0938: + ldrh r1, [r3, #0xe] + lsl r0, r2, #9 + add r2, r2, #1 + and r1, r1, r4 + strh r1, [sl, r0] + cmp r2, #4 + blt _022C0938 + ldr r1, _022C0A54 @ =ov00_022C0ECC + mov r0, r7 + mov r2, sl + bl ov00_022BF308 + mov r7, sl + mov sb, #0 + add r4, sl, #0x800 + mov r6, #1 + ldr fp, _022C0A58 @ =ov00_022C0DF4 + ldr r5, _022C0A5C @ =0x0000FFFF + b _022C0A14 +_022C0980: + ldrh r2, [r4, #8] + mov r0, fp + mov r1, sl + add r2, r2, #1 + and r2, r2, #3 + strh r2, [r4, #8] + ldrh r3, [r4, #0xe] + mov r2, r7 + and r3, r3, r8 + lsl r3, r3, #0x10 + lsr r3, r3, #0x10 + str r3, [sp] + ldrh r3, [r4, #0x16] + stmib sp, {r3, r6} + ldrh r3, [r4, #0x14] + bl ov00_022C0498 + cmp r0, #7 + bne _022C09E8 + add r0, sl, sb, lsl #1 + add r0, r0, #0x800 + strh r5, [r0] + ldrh r0, [r4, #0xa] + add r0, r0, #1 + and r0, r0, #3 + strh r0, [r4, #0xa] + b _022C0A0C +_022C09E8: + cmp r0, #0 + cmpne r0, #2 + beq _022C0A0C + add r0, sl, #0x800 + mov r1, #5 + strh r1, [r0, #0x1c] + add sp, sp, #0xc + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C0A0C: + add r7, r7, #0x200 + add sb, sb, #1 +_022C0A14: + ldrh r0, [r4, #0x18] + cmp r0, #1 movne r0, #1 - moveq r0, #0 - bx lr - arm_func_end FUN_0204d89c + moveq r0, #2 + cmp sb, r0 + blt _022C0980 + b _022C0A48 +_022C0A30: + ldr r1, _022C0A60 @ =ov00_022C0FF8 + mov r4, #3 + mov r0, r7 + mov r2, sl + strh r4, [r3, #0xa] + bl ov00_022BF308 +_022C0A48: + mov r0, #0 + add sp, sp, #0xc + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022C0A54: .4byte ov00_022C0ECC +_022C0A58: .4byte ov00_022C0DF4 +_022C0A5C: .4byte 0x0000FFFF +_022C0A60: .4byte ov00_022C0FF8 + arm_func_end ov00_022C0810 - arm_func_start LoadPortrait -LoadPortrait: @ 0x0204D8BC + arm_func_start ov00_022C0A64 +ov00_022C0A64: @ 0x022C0A64 + push {r4, lr} + movs r4, r0 + moveq r0, #6 + popeq {r4, pc} + add r0, r4, #0x800 + ldrh r1, [r0, #0xe] + cmp r1, #0 + moveq r0, #3 + popeq {r4, pc} + ldrh r0, [r0, #0x16] + mov r1, #0 + mov r2, r1 + bl ov00_022BF308 + add r1, r4, #0x800 + mov r0, #0 + strh r0, [r1, #0xe] + strh r0, [r1, #0x1c] + pop {r4, pc} + arm_func_end ov00_022C0A64 + + arm_func_start ov00_022C0AAC +ov00_022C0AAC: @ 0x022C0AAC push {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xc mov sl, r0 mov sb, r1 - ldrsh r7, [sl] - ldrsb r8, [sl, #2] - bl DataTransferInit - ldr r0, _0204DA14 @ =0x022AB4B0 - ldr r1, _0204DA18 @ =0x0209E0D4 - bl FileOpen - mov fp, #0 - mov r4, fp - mov r5, #1 - b _0204D9DC -_0204D8F4: - mov r0, #0x28 - mul r0, r7, r0 - add r0, r0, r8, lsl #1 - lsl r1, r0, #2 - ldr r0, _0204DA14 @ =0x022AB4B0 - mov r2, #0 - sub r7, r7, #0x258 - bl FileSeek - ldr r0, _0204DA14 @ =0x022AB4B0 - add r1, sp, #0 - mov r2, #0xc - bl FileRead - ldr r0, [sp, #4] + mov r8, r2 + mov r0, #2 + mov r1, #9 + mov r2, #0xa + bl ov00_022BEDE4 cmp r0, #0 - movge r0, #1 - movlt r0, #0 - strb r0, [sl, #0xd] - ldrb r0, [sl, #0xc] - cmp r0, #0 - beq _0204D984 - ldr r0, [sp, #4] - cmp r0, #0 - mov r1, r0 - bge _0204D96C - ldr r1, [sp] - cmp r0, #0 - rsblt r0, r0, #0 - sub r6, r0, r1 - strb r5, [sl, #0xe] - b _0204D99C -_0204D96C: - ldr r2, [sp, #8] - cmp r2, #0 - rsblt r2, r2, #0 - sub r6, r2, r0 - strb r4, [sl, #0xe] - b _0204D99C -_0204D984: - ldr r0, [sp, #4] - ldr r1, [sp] - cmp r0, #0 - rsblt r0, r0, #0 - sub r6, r0, r1 - strb fp, [sl, #0xe] -_0204D99C: - cmp r1, #0 - ble _0204D9DC + addne sp, sp, #0xc + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp sl, #0 + addeq sp, sp, #0xc + moveq r0, #6 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} cmp sb, #0 - beq _0204D9C8 - ldr r0, _0204DA14 @ =0x022AB4B0 - mov r2, #0 - bl FileSeek - ldr r0, _0204DA14 @ =0x022AB4B0 - mov r1, sb - mov r2, r6 - bl FileRead -_0204D9C8: - ldr r0, _0204DA14 @ =0x022AB4B0 - bl FileClose - bl DataTransferStop - mov r0, #1 - b _0204DA0C -_0204D9DC: - cmp r7, #0 - bgt _0204D8F4 - ldrb r0, [sl, #0xf] + addeq sp, sp, #0xc + moveq r0, #6 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r8, #0 + addeq sp, sp, #0xc + moveq r0, #6 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + bl ov00_022BF264 + movs r5, r0 + bne _022C0B20 + bl ov00_022BF294 + mov r4, r0 +_022C0B20: + add r0, sl, #0x800 + ldrh r0, [r0, #0x1c] + cmp r0, #5 + addeq sp, sp, #0xc + moveq r0, #1 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r0, #1 + cmpne r0, #4 + addne sp, sp, #0xc + movne r0, #3 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r5, #0 + mov r7, #5 + bne _022C0CE4 + mov r5, #0 + mov fp, r5 + cmp r0, #4 + bne _022C0C08 + add ip, sl, #0x800 + mov r2, #1 + strh r2, [ip, #0x1c] + ldrh r3, [ip, #0xe] + ldrh r1, [ip, #8] + ldr r0, _022C0DEC @ =ov00_022C0DF4 + and r3, r3, r4 + lsl r3, r3, #0x10 + lsr r3, r3, #0x10 + str r3, [sp] + ldrh r3, [ip, #0x16] + add r1, r1, #3 + and r6, r1, #3 + str r3, [sp, #4] + str r2, [sp, #8] + ldrh r3, [ip, #0x14] + mov r1, sl + add r2, sl, r6, lsl #9 + bl ov00_022C0498 + cmp r0, #7 + bne _022C0BE4 + add r0, sl, r6, lsl #1 + ldr r1, _022C0DF0 @ =0x0000FFFF + add r0, r0, #0x800 + strh r1, [r0] + add r0, sl, #0x800 + ldrh r1, [r0, #0xa] + add r1, r1, #1 + and r1, r1, #3 + strh r1, [r0, #0xa] + b _022C0C08 +_022C0BE4: cmp r0, #0 - cmpne r8, #0 - movne r8, #0 - ldrshne r7, [sl] - bne _0204D9DC - ldr r0, _0204DA14 @ =0x022AB4B0 - bl FileClose - bl DataTransferStop + cmpne r0, #2 + beq _022C0C08 + add r0, sl, #0x800 + mov r1, r7 + strh r1, [r0, #0x1c] + add sp, sp, #0xc + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C0C08: + add r0, sl, #0x800 + ldrh r2, [r0, #0xc] + ldrh r1, [r0, #0xa] + cmp r2, r1 + beq _022C0CA0 + lsl r5, r2, #9 + ldrh r3, [sl, r5] + mov r1, r8 + mov r2, #0x200 + orr r3, r3, #1 + strh r3, [sl, r5] + ldrh r0, [r0, #0xc] + add r0, sl, r0, lsl #9 + bl FUN_0207C2E0 + add r1, sl, #0x800 + ldrh r0, [r1, #0xc] + mov r5, #1 + mov r7, #0 + add r0, sl, r0, lsl #1 + add r0, r0, #0x800 + ldrh r0, [r0] + strh r0, [r1, #0x1a] + ldrh r0, [r1, #0xc] + add r0, r0, #1 + and r0, r0, #3 + strh r0, [r1, #0xc] + ldrh r0, [r1, #0x18] + cmp r0, #0 + bne _022C0C9C + cmp r4, #0 + beq _022C0C9C + ldrh r0, [r1, #8] + lsl r0, r0, #9 + ldrh r0, [sl, r0] + cmp r0, #1 + moveq fp, r5 + beq _022C0CA0 +_022C0C9C: + mov fp, #0 +_022C0CA0: + mov r0, sl + mov r1, #0 + bl ov00_022C11B8 + cmp r5, #0 + beq _022C0DE0 + mov r0, sl + mov r2, sb + mov r1, #0 + bl ov00_022C10EC + add r0, sl, #0x800 + ldrh r0, [r0, #0x18] + cmp r0, #0 + bne _022C0DE0 + mov r0, sl + mov r1, fp + bl ov00_022C11B8 + b _022C0DE0 +_022C0CE4: + cmp r0, #4 mov r0, #0 -_0204DA0C: + add r1, sl, #0x800 + moveq r0, #1 + strheq r0, [r1, #0x1c] + beq _022C0D64 + ldrh r2, [r1, #0xc] + ldrh r1, [r1, #8] + cmp r2, r1 + beq _022C0D64 + lsl r2, r2, #9 + ldrh r1, [sl, r2] + tst r1, #1 + orreq r1, r1, #1 + strheq r1, [sl, r2] + beq _022C0D64 + mov r1, r8 + add r0, sl, r2 + mov r2, #0x200 + bl FUN_0207C2E0 + add r2, sl, #0x800 + ldrh r1, [r2, #0xc] + mov r0, #1 + mov r7, #0 + add r1, sl, r1, lsl #1 + add r1, r1, #0x800 + ldrh r1, [r1] + strh r1, [r2, #0x1a] + ldrh r1, [r2, #0xc] + add r1, r1, #1 + and r1, r1, #3 + strh r1, [r2, #0xc] +_022C0D64: + cmp r0, #0 + beq _022C0DE0 + add r0, sl, #0x800 + ldrh r1, [r0, #0xa] + ldrh r2, [r0, #0x10] + mov r0, sb + add r6, sl, r1, lsl #9 + add r1, r6, #0x20 + bl FUN_0207C2E0 + add r3, sl, #0x800 + ldrh r1, [r3, #0xe] + mov r4, #1 + ldr r0, _022C0DEC @ =ov00_022C0DF4 + str r1, [sp] + ldrh r5, [r3, #0x16] + mov r1, sl + add r2, r6, #0x20 + str r5, [sp, #4] + str r4, [sp, #8] + ldrh r3, [r3, #0x10] + bl ov00_022C0498 + add r1, sl, #0x800 + ldrh r2, [r1, #0xa] + cmp r0, #2 + cmpne r0, #0 + add r2, r2, #1 + and r2, r2, #3 + strh r2, [r1, #0xa] + movne r0, #5 + strhne r0, [r1, #0x1c] + movne r7, r4 +_022C0DE0: + mov r0, r7 add sp, sp, #0xc pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 -_0204DA14: .4byte 0x022AB4B0 -_0204DA18: .4byte 0x0209E0D4 - arm_func_end LoadPortrait +_022C0DEC: .4byte ov00_022C0DF4 +_022C0DF0: .4byte 0x0000FFFF + arm_func_end ov00_022C0AAC - arm_func_start FUN_0204da1c -FUN_0204da1c: @ 0x0204DA1C - ldr r1, _0204DA28 @ =0x0209E164 - ldrb r0, [r1, r0] - bx lr - .align 2, 0 -_0204DA28: .4byte 0x0209E164 - arm_func_end FUN_0204da1c - - arm_func_start FUN_0204da2c -FUN_0204da2c: @ 0x0204DA2C - push {r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #0x68 - mov r4, r2 - mov r2, #0 - mov r5, r1 - mov r6, r2 - add r1, sp, #0 -_0204DA48: - strb r6, [r1, r2] - add r2, r2, #1 - cmp r2, #0x22 - blt _0204DA48 - add r3, sp, #0x22 - ldr r2, _0204DB04 @ =0x0209E164 - b _0204DA84 -_0204DA64: - ldrb r1, [r0] - ldrb r1, [r2, r1] - cmp r1, #0xff - strb r1, [r3, r6] - moveq r0, #0 - beq _0204DAFC - add r0, r0, #1 - add r6, r6, #1 -_0204DA84: - cmp r6, r4 - blt _0204DA64 - add r1, r4, r4, lsl #2 - and r0, r1, #7 - add r0, r0, #7 - asr r0, r0, #3 - add sl, r0, r1, asr #3 - add r0, sp, #0x58 - add r1, sp, #0 - mov r2, sl - bl FUN_02050990 - mov sb, #0 - add r8, sp, #0x58 - add r7, sp, #0x22 - mov r6, #5 - b _0204DAD8 -_0204DAC4: - mov r0, r8 - mov r2, r6 - add r1, r7, sb - bl CopyBitsTo - add sb, sb, #1 -_0204DAD8: - cmp sb, r4 - blt _0204DAC4 - add r0, sp, #0x58 - bl FUN_020509bc - add r1, sp, #0 - mov r0, r5 - mov r2, sl - bl MemcpySimple - mov r0, #1 -_0204DAFC: - add sp, sp, #0x68 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_0204DB04: .4byte 0x0209E164 - arm_func_end FUN_0204da2c - - arm_func_start FUN_0204db08 -FUN_0204db08: @ 0x0204DB08 - push {r3, r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x48 - mov r4, r2 - add r3, r4, r4, lsl #2 - and r2, r3, #7 - add r2, r2, #7 - asr r2, r2, #3 - mov r5, r0 - add r0, sp, #0x38 - add r2, r2, r3, asr #3 - bl FUN_02050974 - mov sb, #0 - add r8, sp, #0x38 - add r7, sp, #0 - mov r6, #5 - b _0204DB5C -_0204DB48: - mov r0, r8 - mov r2, r6 - add r1, r7, sb - bl CopyBitsFrom - add sb, sb, #1 -_0204DB5C: - cmp sb, r4 - blt _0204DB48 - add r0, sp, #0x38 - bl FUN_020509bc - mov r3, #0 - add r2, sp, #0 - ldr r1, _0204DB9C @ =0x0209E0E8 - b _0204DB8C -_0204DB7C: - ldrb r0, [r2, r3] - add r3, r3, #1 - ldrb r0, [r1, r0] - strb r0, [r5], #1 -_0204DB8C: - cmp r3, r4 - blt _0204DB7C - add sp, sp, #0x48 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0204DB9C: .4byte 0x0209E0E8 - arm_func_end FUN_0204db08 - - arm_func_start FUN_0204dba0 -FUN_0204dba0: @ 0x0204DBA0 - push {r4, r5, r6, lr} - sub sp, sp, #0xa0 - mov r2, r0 - mov r5, r1 - mov r1, r2 - add r0, sp, #0x10 - mov r2, #0x36 - mov r4, #0 - bl MemcpySimple - ldr r3, _0204DC9C @ =0x0209E12C - mov r6, r4 - add r2, sp, #0x10 - add r0, sp, #0x46 - mov ip, r4 -_0204DBD8: - mov lr, ip - ldrb r1, [r3, r6] - b _0204DBF0 -_0204DBE4: - cmp lr, r1 - beq _0204DBF8 - add lr, lr, #1 -_0204DBF0: - cmp lr, #0x36 - blt _0204DBE4 -_0204DBF8: - ldrb r1, [r2, lr] - strb r1, [r0, r6] - add r6, r6, #1 - cmp r6, #0x36 - blt _0204DBD8 - add r1, sp, #0x7c - mov r2, #0x36 - bl FUN_0204da2c - cmp r0, #0 - moveq r0, #0 - beq _0204DC94 - ldrb r0, [sp, #0x7c] - add r1, sp, #0x7d - mov r2, #0x20 - bl FUN_0204e0a0 - mov r3, #1 - add r2, sp, #0x7c -_0204DC3C: - ldrb r1, [r2, r3] - and r0, r3, #0xff - add r3, r3, #1 - add r0, r1, r0 - add r0, r4, r0 - cmp r3, #0x21 - and r4, r0, #0xff - blt _0204DC3C - ldrb r0, [sp, #0x7c] - cmp r0, r4 - movne r0, #0 - bne _0204DC94 - add r0, sp, #0 - add r1, sp, #0x7d - mov r2, #0x20 - bl FUN_02050974 - add r0, sp, #0 - mov r1, r5 - bl FUN_0205c2a4 - add r0, sp, #0 - bl FUN_020509bc - mov r0, #1 -_0204DC94: - add sp, sp, #0xa0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0204DC9C: .4byte 0x0209E12C - arm_func_end FUN_0204dba0 - - arm_func_start FUN_0204dca0 -FUN_0204dca0: @ 0x0204DCA0 - push {r4, r5, r6, lr} - sub sp, sp, #0xa0 - mov r4, #0 - mov r5, r0 - mov r6, r1 - mov r2, r4 - mov r1, r4 - add r0, sp, #0x7c -_0204DCC0: - strb r1, [r0, r2] - add r2, r2, #1 - cmp r2, #0x22 - blt _0204DCC0 - add r0, sp, #0 - add r1, sp, #0x7d - mov r2, #0x20 - bl FUN_02050990 - add r0, sp, #0 - mov r1, r6 - bl FUN_0205c548 - add r0, sp, #0 - bl FUN_020509bc - mov r3, #1 - add r2, sp, #0x7c -_0204DCFC: - ldrb r1, [r2, r3] - and r0, r3, #0xff - add r3, r3, #1 - add r0, r1, r0 - add r0, r4, r0 - cmp r3, #0x21 - and r4, r0, #0xff - blt _0204DCFC - add r1, sp, #0x7d - mov r0, r4 - mov r2, #0x20 - strb r4, [sp, #0x7c] - bl FUN_0204e02c - add r0, sp, #0x46 - add r1, sp, #0x7c - mov r2, #0x36 - bl FUN_0204db08 - ldr r2, _0204DD7C @ =0x0209E12C - mov ip, #0 - add r4, sp, #0x46 - add r1, sp, #0x10 -_0204DD50: - ldrb r3, [r4, ip] - ldrb r0, [r2, ip] - add ip, ip, #1 - cmp ip, #0x36 - strb r3, [r1, r0] - blt _0204DD50 - mov r0, r5 - mov r2, #0x36 - bl MemcpySimple - add sp, sp, #0xa0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0204DD7C: .4byte 0x0209E12C - arm_func_end FUN_0204dca0 - - arm_func_start FUN_0204dd80 -FUN_0204dd80: @ 0x0204DD80 - push {r4, r5, lr} - sub sp, sp, #0x6c - mov r2, r0 - mov r4, r1 - mov r1, r2 - add r0, sp, #0x10 - mov r2, #0x22 - bl MemcpySimple - mov lr, #0 - ldr r3, _0204DE74 @ =0x0209E108 - add r2, sp, #0x10 - add r0, sp, #0x32 - mov r5, lr -_0204DDB4: - mov ip, r5 - ldrb r1, [r3, lr] - b _0204DDCC -_0204DDC0: - cmp ip, r1 - beq _0204DDD4 - add ip, ip, #1 -_0204DDCC: - cmp ip, #0x22 - blt _0204DDC0 -_0204DDD4: - ldrb r1, [r2, ip] - strb r1, [r0, lr] - add lr, lr, #1 - cmp lr, #0x22 - blt _0204DDB4 - add r1, sp, #0x54 - mov r2, #0x22 - bl FUN_0204da2c - cmp r0, #0 - moveq r0, #0 - beq _0204DE6C - ldrb r0, [sp, #0x54] - add r1, sp, #0x58 - mov r2, #0x11 - bl FUN_0204e0a0 - add r0, sp, #0x58 - mov r1, #0x11 - bl FUN_02004f80 - mov r5, r0 - ldrb r2, [sp, #0x54] - ldr r0, _0204DE78 @ =0x0209E264 - mov r1, r5 - bl DebugPrint0 - ldr r0, [sp, #0x54] - cmp r0, r5 - movne r0, #0 - bne _0204DE6C - add r0, sp, #0 - add r1, sp, #0x58 - mov r2, #0x11 - bl FUN_02050974 - add r0, sp, #0 - mov r1, r4 - mov r2, #1 - bl FUN_0205fd88 - add r0, sp, #0 - bl FUN_020509bc - mov r0, #1 -_0204DE6C: - add sp, sp, #0x6c - pop {r4, r5, pc} - .align 2, 0 -_0204DE74: .4byte 0x0209E108 -_0204DE78: .4byte 0x0209E264 - arm_func_end FUN_0204dd80 - - arm_func_start FUN_0204de7c -FUN_0204de7c: @ 0x0204DE7C - push {r4, r5, lr} - sub sp, sp, #0x6c - mov r2, #0 - mov r4, r0 - mov r5, r1 - mov r1, r2 - add r0, sp, #0x54 -_0204DE98: - strb r1, [r0, r2] - add r2, r2, #1 - cmp r2, #0x16 - blt _0204DE98 - add r0, sp, #0 - add r1, sp, #0x58 - mov r2, #0x11 - bl FUN_02050990 - add r0, sp, #0 - mov r1, r5 - mov r2, #1 - bl FUN_0205fe80 - add r0, sp, #0 - bl FUN_020509bc - add r0, sp, #0x58 - mov r1, #0x11 - bl FUN_02004f80 - mov r1, r0 - str r1, [sp, #0x54] - ldrb r2, [sp, #0x54] - ldr r0, _0204DF4C @ =0x0209E264 - bl DebugPrint0 - ldrb r0, [sp, #0x54] - add r1, sp, #0x58 - mov r2, #0x11 - bl FUN_0204e02c - add r0, sp, #0x32 - add r1, sp, #0x54 - mov r2, #0x22 - bl FUN_0204db08 - ldr r2, _0204DF50 @ =0x0209E108 - mov lr, #0 - add ip, sp, #0x32 - add r1, sp, #0x10 -_0204DF20: - ldrb r3, [ip, lr] - ldrb r0, [r2, lr] - add lr, lr, #1 - cmp lr, #0x22 - strb r3, [r1, r0] - blt _0204DF20 - mov r0, r4 - mov r2, #0x22 - bl MemcpySimple - add sp, sp, #0x6c - pop {r4, r5, pc} - .align 2, 0 -_0204DF4C: .4byte 0x0209E264 -_0204DF50: .4byte 0x0209E108 - arm_func_end FUN_0204de7c -_0204DF54: - .byte 0xF0, 0x41, 0x2D, 0xE9, 0x1F, 0x00, 0x12, 0xE3, 0x00, 0x00, 0xA0, 0x13 - .byte 0xF0, 0x81, 0xBD, 0x18, 0x00, 0x50, 0xA0, 0xE3, 0x3C, 0xC0, 0x9F, 0xE5, 0x05, 0x40, 0xA0, 0xE1 - .byte 0x09, 0x00, 0x00, 0xEA, 0x04, 0x60, 0xA0, 0xE1, 0x05, 0x70, 0x81, 0xE0, 0x05, 0x80, 0x80, 0xE0 - .byte 0x06, 0xE0, 0xD7, 0xE7, 0x06, 0x30, 0xDC, 0xE7, 0x01, 0x60, 0x86, 0xE2, 0x20, 0x00, 0x56, 0xE3 - .byte 0x03, 0xE0, 0xC8, 0xE7, 0xF9, 0xFF, 0xFF, 0xBA, 0x20, 0x50, 0x85, 0xE2, 0x02, 0x00, 0x55, 0xE1 - .byte 0xF3, 0xFF, 0xFF, 0x3A, 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x81, 0xBD, 0xE8, 0x80, 0xE2, 0x09, 0x02 - .byte 0xF8, 0x43, 0x2D, 0xE9, 0x1F, 0x00, 0x12, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0xF8, 0x83, 0xBD, 0x18 - .byte 0x00, 0x50, 0xA0, 0xE3, 0x05, 0xE0, 0xA0, 0xE1, 0x58, 0xC0, 0x9F, 0xE5, 0x05, 0x40, 0xA0, 0xE1 - .byte 0x10, 0x00, 0x00, 0xEA, 0x04, 0x90, 0xA0, 0xE1, 0x05, 0x70, 0x81, 0xE0, 0x05, 0x80, 0x80, 0xE0 - .byte 0x0E, 0x60, 0xA0, 0xE1, 0x09, 0x30, 0xDC, 0xE7, 0x02, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x56, 0xE1 - .byte 0x02, 0x00, 0x00, 0x0A, 0x01, 0x60, 0x86, 0xE2, 0x20, 0x00, 0x56, 0xE3, 0xFA, 0xFF, 0xFF, 0xBA - .byte 0x06, 0x30, 0xD7, 0xE7, 0x09, 0x30, 0xC8, 0xE7, 0x01, 0x90, 0x89, 0xE2, 0x20, 0x00, 0x59, 0xE3 - .byte 0xF2, 0xFF, 0xFF, 0xBA, 0x20, 0x50, 0x85, 0xE2, 0x02, 0x00, 0x55, 0xE1, 0xEC, 0xFF, 0xFF, 0x3A - .byte 0x01, 0x00, 0xA0, 0xE3, 0xF8, 0x83, 0xBD, 0xE8, 0x80, 0xE2, 0x09, 0x02 - - arm_func_start FUN_0204e02c -FUN_0204e02c: @ 0x0204E02C - push {r4, r5, r6, r7, r8, sb, sl, lr} - mov sl, r0 - and r0, sl, #0xf - add r0, r0, sl, asr #4 - add r0, r0, #8 - tst sl, #1 - movne r7, #1 - mov r5, #0 - mov sb, r1 - mov r8, r2 - and r6, r0, #0xff - mvneq r7, #0 - mov r1, r5 - ldr r4, _0204E09C @ =0x0209E2A0 - b _0204E090 -_0204E068: - mla r0, r1, r7, sl - and r0, r0, #0xff - ldrb r3, [sb, r5] - ldrb r2, [r4, r0] - add r0, r1, #1 - mov r1, r6 - add r2, r3, r2 - strb r2, [sb, r5] - bl DivideInt - add r5, r5, #1 -_0204E090: - cmp r5, r8 - blo _0204E068 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_0204E09C: .4byte 0x0209E2A0 - arm_func_end FUN_0204e02c - - arm_func_start FUN_0204e0a0 -FUN_0204e0a0: @ 0x0204E0A0 - push {r4, r5, r6, r7, r8, sb, sl, lr} - mov sl, r0 - and r0, sl, #0xf - add r0, r0, sl, asr #4 - add r0, r0, #8 - tst sl, #1 - movne r7, #1 - mov r5, #0 - mov sb, r1 - mov r8, r2 - and r6, r0, #0xff - mvneq r7, #0 - mov r1, r5 - ldr r4, _0204E110 @ =0x0209E2A0 - b _0204E104 -_0204E0DC: - mla r0, r1, r7, sl - and r0, r0, #0xff - ldrb r3, [sb, r5] - ldrb r2, [r4, r0] - add r0, r1, #1 - mov r1, r6 - sub r2, r3, r2 - strb r2, [sb, r5] - bl DivideInt - add r5, r5, #1 -_0204E104: - cmp r5, r8 - blo _0204E0DC - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_0204E110: .4byte 0x0209E2A0 - arm_func_end FUN_0204e0a0 -_0204E114: - .byte 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1, 0x92, 0x71, 0x00, 0xEB - .byte 0x03, 0x00, 0x50, 0xE3, 0x20, 0x00, 0x9F, 0x05, 0x05, 0x00, 0x00, 0x0A, 0xD4, 0x00, 0x54, 0xE3 - .byte 0x18, 0x00, 0x9F, 0x05, 0x9E, 0x0F, 0x84, 0x12, 0x02, 0x0B, 0x80, 0x12, 0x00, 0x08, 0xA0, 0x11 - .byte 0x20, 0x08, 0xA0, 0x11, 0xDE, 0x5D, 0xFF, 0xEB, 0x10, 0x80, 0xBD, 0xE8, 0x2C, 0x0B, 0x00, 0x00 - .byte 0x2D, 0x0B, 0x00, 0x00 - - arm_func_start FUN_0204e154 -FUN_0204e154: @ 0x0204E154 - push {r3, lr} - sub sp, sp, #0x10 - mov r3, r0 - mov r2, r1 - add r0, sp, #0 - mov r1, r3 - bl FUN_02050990 - add r0, sp, #0 - bl FUN_0204abb8 - add r0, sp, #0 - bl FUN_0204f9f4 - add r0, sp, #0 - bl CopyLogTo - add r0, sp, #0 - bl FUN_020509bc - ldr r0, [sp, #8] - add sp, sp, #0x10 - pop {r3, pc} - arm_func_end FUN_0204e154 - - arm_func_start FUN_0204e19c -FUN_0204e19c: @ 0x0204E19C - push {r3, lr} - sub sp, sp, #0x10 - mov r3, r0 - mov r2, r1 - add r0, sp, #0 - mov r1, r3 - bl FUN_02050974 - add r0, sp, #0 - bl FUN_0204acdc - add r0, sp, #0 - bl FUN_0204fa0c - add r0, sp, #0 - bl CopyLogFrom - add r0, sp, #0 - bl FUN_020509bc - ldr r0, [sp, #8] - add sp, sp, #0x10 - pop {r3, pc} - arm_func_end FUN_0204e19c - - arm_func_start FUN_0204e1e4 -FUN_0204e1e4: @ 0x0204E1E4 - push {r3, lr} - mov r0, #0 - bl FUN_0204e8ec - ldr r1, _0204E208 @ =0x022AB4F8 - mov r2, #0 - ldr r0, _0204E20C @ =0x022AB5AC - strb r2, [r1, #1] - bl FUN_0200c4cc - pop {r3, pc} - .align 2, 0 -_0204E208: .4byte 0x022AB4F8 -_0204E20C: .4byte 0x022AB5AC - arm_func_end FUN_0204e1e4 - - arm_func_start FUN_0204e210 -FUN_0204e210: @ 0x0204E210 - push {r3, lr} - bl GetGameMode - cmp r0, #1 - mov r0, #0 - bhi _0204E2AC - mov r2, r0 - mov r1, #0x32 - bl LoadScriptVariableValueAtIndex - cmp r0, #6 - cmpne r0, #0xa - mov r0, #0 - bne _0204E258 - mov r2, r0 - mov r1, #0x2e - bl LoadScriptVariableValueAtIndex - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - pop {r3, pc} -_0204E258: - mov r1, #0x32 - mov r2, #1 - bl LoadScriptVariableValueAtIndex - cmp r0, #6 - cmpne r0, #0xa - mov r0, #0 - bne _0204E28C - mov r1, #0x2e - mov r2, #1 - bl LoadScriptVariableValueAtIndex - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - pop {r3, pc} -_0204E28C: - mov r1, #0x32 - mov r2, #2 - bl LoadScriptVariableValueAtIndex - cmp r0, #6 - cmpne r0, #0xa - bne _0204E2D4 - mov r0, #2 - pop {r3, pc} -_0204E2AC: - mov r1, #0x2c - bl LoadScriptVariableValue - cmp r0, #6 - bne _0204E2D4 - mov r0, #0 - mov r1, #0x28 - bl LoadScriptVariableValue - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - pop {r3, pc} -_0204E2D4: - mvn r0, #0 - pop {r3, pc} - arm_func_end FUN_0204e210 - - arm_func_start FUN_0204e2dc -FUN_0204e2dc: @ 0x0204E2DC - push {r4, lr} - mov r4, r0 - bl GetGameMode - strb r0, [r4] - cmp r0, #1 - mov r0, #0 - bhi _0204E398 - mov r2, r0 - mov r1, #0x32 - bl LoadScriptVariableValueAtIndex - cmp r0, #6 - cmpne r0, #0xa - mov r0, #0 - bne _0204E334 - mov r3, #2 - mov r2, r0 - mov r1, #0x2e - strb r3, [r4] - bl LoadScriptVariableValueAtIndex - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - pop {r4, pc} -_0204E334: - mov r1, #0x32 - mov r2, #1 - bl LoadScriptVariableValueAtIndex - cmp r0, #6 - cmpne r0, #0xa - mov r0, #0 - bne _0204E370 - mov r3, #3 - mov r1, #0x2e - mov r2, #1 - strb r3, [r4] - bl LoadScriptVariableValueAtIndex - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - pop {r4, pc} -_0204E370: - mov r1, #0x32 - mov r2, #2 - bl LoadScriptVariableValueAtIndex - cmp r0, #6 - cmpne r0, #0xa - bne _0204E3C0 - mov r0, #4 - strb r0, [r4] - mov r0, #2 - pop {r4, pc} -_0204E398: - mov r1, #0x2c - bl LoadScriptVariableValue - cmp r0, #6 - bne _0204E3C0 - mov r0, #0 - mov r1, #0x28 - bl LoadScriptVariableValue - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - pop {r4, pc} -_0204E3C0: - mvn r0, #0 - pop {r4, pc} - arm_func_end FUN_0204e2dc - - arm_func_start FUN_0204e3c8 -FUN_0204e3c8: @ 0x0204E3C8 - push {r3, lr} - bl FUN_02048bfc - cmp r0, #2 - bne _0204E400 - bl FUN_02048cb8 - ldr r1, _0204E408 @ =0x000F1207 - cmp r0, r1 - bne _0204E400 - mov r0, #1 - mov r1, #0 - bl GetSosMailCount - cmp r0, #0 - moveq r0, #1 - popeq {r3, pc} -_0204E400: - mov r0, #0 - pop {r3, pc} - .align 2, 0 -_0204E408: .4byte 0x000F1207 - arm_func_end FUN_0204e3c8 -_0204E40C: - .byte 0x08, 0x40, 0x2D, 0xE9 - .byte 0xF9, 0xE9, 0xFF, 0xEB, 0x02, 0x00, 0x50, 0xE3, 0x0E, 0x00, 0x00, 0x1A, 0x25, 0xEA, 0xFF, 0xEB - .byte 0x38, 0x10, 0x9F, 0xE5, 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x1A, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x50, 0x35, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x1A - .byte 0x07, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE3, 0x4B, 0x35, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x01, 0x00, 0xA0, 0x13, 0x08, 0x80, 0xBD, 0x18, 0x00, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8 - .byte 0x07, 0x12, 0x0F, 0x00, 0x08, 0x40, 0x2D, 0xE9, 0xE3, 0xE9, 0xFF, 0xEB, 0x02, 0x00, 0x50, 0xE3 - .byte 0x0E, 0x00, 0x00, 0x1A, 0x0F, 0xEA, 0xFF, 0xEB, 0x38, 0x10, 0x9F, 0xE5, 0x01, 0x00, 0x50, 0xE1 - .byte 0x0A, 0x00, 0x00, 0x1A, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE3, 0x3A, 0x35, 0x00, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x07, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x35, 0x35, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x08, 0x80, 0xBD, 0x08 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8, 0x07, 0x12, 0x0F, 0x00, 0x08, 0x40, 0x2D, 0xE9 - .byte 0xCD, 0xE9, 0xFF, 0xEB, 0x02, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0xF9, 0xE9, 0xFF, 0xEB - .byte 0x10, 0x10, 0x9F, 0xE5, 0x01, 0x00, 0x50, 0xE1, 0x00, 0x00, 0xA0, 0x03, 0x08, 0x80, 0xBD, 0x08 - .byte 0x01, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8, 0x07, 0x12, 0x0F, 0x00, 0x10, 0x40, 0x2D, 0xE9 - .byte 0xF0, 0xE9, 0xFF, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0xBF, 0xE9, 0xFF, 0xEB, 0x02, 0x00, 0x50, 0xE3 - .byte 0x07, 0x00, 0x00, 0x1A, 0x20, 0x10, 0x9F, 0xE5, 0x01, 0x00, 0x54, 0xE1, 0x01, 0x00, 0x81, 0x12 - .byte 0x00, 0x00, 0x54, 0x11, 0x03, 0x00, 0x81, 0x12, 0x00, 0x00, 0x54, 0x11, 0x01, 0x00, 0xA0, 0x13 - .byte 0x10, 0x80, 0xBD, 0x18, 0x00, 0x00, 0xA0, 0xE3, 0x10, 0x80, 0xBD, 0xE8, 0x07, 0x12, 0x0F, 0x00 - - arm_func_start FUN_0204e530 -FUN_0204e530: @ 0x0204E530 - push {r3, lr} - bl FUN_02048bfc - cmp r0, #1 - bne _0204E57C - mov r0, #1 - mov r1, #0 - bl GetSosMailCount - cmp r0, #0 - bne _0204E57C - mov r0, #7 - mov r1, #0 - bl GetSosMailCount - cmp r0, #0 - bne _0204E57C - bl FUN_0204e210 - mvn r1, #0 - cmp r0, r1 - moveq r0, #1 - popeq {r3, pc} -_0204E57C: - mov r0, #0 - pop {r3, pc} - arm_func_end FUN_0204e530 - - arm_func_start FUN_0204e584 -FUN_0204e584: @ 0x0204E584 - push {r3, lr} - bl FUN_02048bfc - cmp r0, #1 - bne _0204E5DC - mov r0, #1 - mov r1, #0 - bl GetSosMailCount - cmp r0, #0 - bne _0204E5DC - mov r0, #7 - mov r1, #0 - bl GetSosMailCount - cmp r0, #0 - bne _0204E5DC - bl FUN_0204e210 - mvn r1, #0 - cmp r0, r1 - bne _0204E5DC - bl FUN_0205633c - cmp r0, #0 - moveq r0, #1 - popeq {r3, pc} -_0204E5DC: - mov r0, #0 - pop {r3, pc} - arm_func_end FUN_0204e584 - - arm_func_start FUN_0204e5e4 -FUN_0204e5e4: @ 0x0204E5E4 - push {r3, lr} - bl FUN_02048bfc - cmp r0, #1 - bne _0204E63C - mov r0, #1 - mov r1, #0 - bl GetSosMailCount - cmp r0, #0 - bne _0204E63C - mov r0, #7 - mov r1, #0 - bl GetSosMailCount - cmp r0, #0 - bne _0204E63C - bl FUN_0204e210 - mvn r1, #0 - cmp r0, r1 - bne _0204E63C - bl FUN_02056360 - cmp r0, #0 - moveq r0, #1 - popeq {r3, pc} -_0204E63C: - mov r0, #0 - pop {r3, pc} - arm_func_end FUN_0204e5e4 - - arm_func_start FUN_0204e644 -FUN_0204e644: @ 0x0204E644 - push {r3, lr} - mov r0, #4 - bl GetPerformanceFlagWithChecks - cmp r0, #0 - beq _0204E69C - bl FUN_02048bfc - cmp r0, #1 - bne _0204E69C - mov r0, #1 - mov r1, #0 - bl GetSosMailCount - cmp r0, #0 - bne _0204E69C - mov r0, #7 - mov r1, #0 - bl GetSosMailCount - cmp r0, #0 - bne _0204E69C - bl FUN_0205633c - cmp r0, #0 - moveq r0, #1 - popeq {r3, pc} -_0204E69C: - mov r0, #0 - pop {r3, pc} - arm_func_end FUN_0204e644 - - arm_func_start FUN_0204e6a4 -FUN_0204e6a4: @ 0x0204E6A4 - push {r3, lr} - bl FUN_02048bfc - cmp r0, #2 - bne _0204E6F0 - bl FUN_02048cb8 - ldr r1, _0204E6F8 @ =0x000F1207 - cmp r0, r1 - bne _0204E6F0 - mov r0, #1 - mov r1, #0 - bl GetSosMailCount - cmp r0, #0 - beq _0204E6F0 - mov r0, #7 - mov r1, #0 - bl GetSosMailCount - cmp r0, #0 - moveq r0, #1 - popeq {r3, pc} -_0204E6F0: - mov r0, #0 - pop {r3, pc} - .align 2, 0 -_0204E6F8: .4byte 0x000F1207 - arm_func_end FUN_0204e6a4 - - arm_func_start FUN_0204e6fc -FUN_0204e6fc: @ 0x0204E6FC - ldr r0, _0204E708 @ =0x022AB4FC - ldrsb r0, [r0, #0xd] - bx lr - .align 2, 0 -_0204E708: .4byte 0x022AB4FC - arm_func_end FUN_0204e6fc - - arm_func_start FUN_0204e70c -FUN_0204e70c: @ 0x0204E70C - push {r4, lr} - ldr r0, _0204E75C @ =0x022AB4FC - ldrsb r4, [r0, #0xd] - and r1, r4, #0xff - cmp r1, #1 - bhi _0204E754 - ldrsh r0, [r0, #2] - bl GetDungeonModeSpecial - cmp r0, #1 - beq _0204E744 - cmp r0, #2 - beq _0204E74C - cmp r0, #3 - bne _0204E754 -_0204E744: - mov r0, #0 - pop {r4, pc} -_0204E74C: - mov r0, #1 - pop {r4, pc} -_0204E754: - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_0204E75C: .4byte 0x022AB4FC - arm_func_end FUN_0204e70c - - arm_func_start FUN_0204e760 -FUN_0204e760: @ 0x0204E760 - ldr r0, _0204E76C @ =0x022AB4FC - ldrsh r0, [r0, #2] - bx lr - .align 2, 0 -_0204E76C: .4byte 0x022AB4FC - arm_func_end FUN_0204e760 - - arm_func_start FUN_0204e770 -FUN_0204e770: @ 0x0204E770 - ldr r0, _0204E77C @ =0x022AB4FC - ldrb r0, [r0] - bx lr - .align 2, 0 -_0204E77C: .4byte 0x022AB4FC - arm_func_end FUN_0204e770 - - arm_func_start FUN_0204e780 -FUN_0204e780: @ 0x0204E780 - ldr r0, _0204E78C @ =0x022AB4FC - ldrb r0, [r0, #0x14] - bx lr - .align 2, 0 -_0204E78C: .4byte 0x022AB4FC - arm_func_end FUN_0204e780 - - arm_func_start FUN_0204e790 -FUN_0204e790: @ 0x0204E790 - push {r4, lr} - ldr lr, _0204E7B4 @ =0x022AB4FC - mov r4, r0 - mov ip, #0xb -_0204E7A0: - ldm lr!, {r0, r1, r2, r3} - stm r4!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _0204E7A0 - pop {r4, pc} - .align 2, 0 -_0204E7B4: .4byte 0x022AB4FC - arm_func_end FUN_0204e790 - - arm_func_start FUN_0204e7b8 -FUN_0204e7b8: @ 0x0204E7B8 - push {r3, lr} - ldr r1, _0204E8E0 @ =0x022AB4FC - mov r0, #0 - ldrsb r2, [r1, #0xd] - mov r1, #0x28 - bl SaveScriptVariableValue - ldr r1, _0204E8E0 @ =0x022AB4FC - mov r0, #0 - ldrsh r2, [r1, #2] - mov r1, #0x27 - bl SaveScriptVariableValue - ldr r1, _0204E8E0 @ =0x022AB4FC - mov r0, #0 - ldrsh r2, [r1, #2] - mov r1, #0x29 - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x2c - mov r2, #6 - bl SaveScriptVariableValue - mov r0, #0 - mov r1, #0x2b - mov r2, #6 - bl SaveScriptVariableValue - ldr r0, _0204E8E0 @ =0x022AB4FC - ldrsb r0, [r0, #0xd] - cmp r0, #3 - addls pc, pc, r0, lsl #2 - b _0204E8D4 -_0204E82C: @ jump table - b _0204E8D4 @ case 0 - b _0204E83C @ case 1 - b _0204E8B0 @ case 2 - b _0204E8D4 @ case 3 -_0204E83C: - mov r0, #0 - mov r1, #0x27 - mov r2, #0xd7 - bl SaveScriptVariableValue - ldr r0, _0204E8E0 @ =0x022AB4FC - ldr r1, _0204E8E4 @ =0x022AB518 - ldrb r0, [r0] - bl FUN_0205f00c - cmp r0, #0 - beq _0204E8D4 - ldr r1, _0204E8E0 @ =0x022AB4FC - ldrb r1, [r1, #0x1d] - cmp r1, #0 - beq _0204E8A0 - add r0, r0, #4 - bl FUN_0204f7a8 - ldr r1, _0204E8E8 @ =0x020A1978 - lsl r0, r0, #1 - ldrsh r1, [r1, r0] - ldr r3, _0204E8E0 @ =0x022AB4FC - mov ip, #1 - ldr r0, _0204E8E4 @ =0x022AB518 - mov r2, #0 - strb ip, [r3, #0x1d] - bl FUN_020544c8 -_0204E8A0: - ldr r0, _0204E8E0 @ =0x022AB4FC - mov r1, #1 - strb r1, [r0, #0xf] - b _0204E8D4 -_0204E8B0: - mov r0, #0 - mov r1, #0x27 - mov r2, #0xd6 - bl SaveScriptVariableValue - ldr r1, _0204E8E0 @ =0x022AB4FC - mov r0, #0 - ldrsb r2, [r1, #0x12] - mov r1, #0x29 - bl SaveScriptVariableValue -_0204E8D4: - ldr r0, _0204E8E0 @ =0x022AB4FC - ldrsb r0, [r0, #0xd] - pop {r3, pc} - .align 2, 0 -_0204E8E0: .4byte 0x022AB4FC -_0204E8E4: .4byte 0x022AB518 -_0204E8E8: .4byte 0x020A1978 - arm_func_end FUN_0204e7b8 - - arm_func_start FUN_0204e8ec -FUN_0204e8ec: @ 0x0204E8EC - push {r4, lr} - movs r4, r0 - beq _0204E920 - ldr lr, _0204E944 @ =0x022AB4FC - mov ip, #0xb -_0204E900: - ldm r4!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _0204E900 - ldr r0, _0204E948 @ =0x022AB4F8 - mov r1, #1 - strb r1, [r0] - pop {r4, pc} -_0204E920: - mov r3, #0 - ldr r0, _0204E944 @ =0x022AB4FC - sub r2, r3, #1 - strb r2, [r0, #0xd] - ldr r1, _0204E948 @ =0x022AB4F8 - strb r2, [r0, #0xe] - strb r3, [r1] - strh r2, [r0, #2] - pop {r4, pc} - .align 2, 0 -_0204E944: .4byte 0x022AB4FC -_0204E948: .4byte 0x022AB4F8 - arm_func_end FUN_0204e8ec - - arm_func_start SetEnterDungeon -SetEnterDungeon: @ 0x0204E94C - push {r3, lr} - mov r1, r0 - ldr r0, _0204E96C @ =0x022AB4FC - bl InitDungeonInit - ldr r0, _0204E970 @ =0x022AB4F8 - mov r1, #1 - strb r1, [r0] - pop {r3, pc} - .align 2, 0 -_0204E96C: .4byte 0x022AB4FC -_0204E970: .4byte 0x022AB4F8 - arm_func_end SetEnterDungeon - - arm_func_start FUN_0204e974 -FUN_0204e974: @ 0x0204E974 + arm_func_start ov00_022C0DF4 +ov00_022C0DF4: @ 0x022C0DF4 push {r3, r4, r5, lr} mov r5, r0 - bl FUN_0205b77c - ldr r2, _0204EA4C @ =0x022AB4FC - mov r1, #2 - mov r4, r0 - strb r1, [r2, #0xd] - sub r0, r1, #3 - strb r0, [r2, #0xe] - mov r0, #0xd6 - strh r0, [r2, #2] - ldr r0, _0204EA50 @ =0x022AB510 - mov r1, r5 - strb r5, [r2, #0x12] - bl FUN_0205bb7c - ldr r0, _0204EA54 @ =0x022AB5A8 - mov r1, r5 - bl FUN_0205bd14 - ldr r1, _0204EA4C @ =0x022AB4FC - mov r2, #0 - strb r2, [r1, #0xf] - strb r2, [r1, #0x10] - strb r2, [r1, #4] - mov r0, #7 - strb r2, [r1, #0x11] - bl GetPerformanceFlagWithChecks - ldr r1, _0204EA4C @ =0x022AB4FC - mov r2, #0 - strb r0, [r1, #5] - mov r0, #6 - strb r2, [r1, #6] - bl GetPerformanceFlagWithChecks - ldr r1, _0204EA4C @ =0x022AB4FC - strb r0, [r1, #8] - mov r0, #1 - bl GetPerformanceFlagWithChecks - ldr r1, _0204EA4C @ =0x022AB4FC - mov r2, #0 - strb r0, [r1, #9] - strb r2, [r1, #0xa] - strb r2, [r1, #0xb] - strb r2, [r1, #7] - strb r2, [r1, #0xc] - ldrb r0, [r4, #4] - add r0, r0, #0xda - and r0, r0, #0xff - cmp r0, #5 - strbls r2, [r1, #5] - movls r0, #1 - strbls r0, [r1, #7] - ldr r0, _0204EA58 @ =0x022AB4F8 - mov r1, #1 - strb r1, [r0] + bl ov00_022BED70 + ldrh r2, [r5, #0xa] + ldr r1, _022C0EC4 @ =ov00_022C0ECC + add r0, r0, r2, lsl #2 + ldr r2, [r0, #0xcc] + ldr r4, [r0, #0x10c] + cmp r2, r1 + ldrne r0, _022C0EC8 @ =ov00_022C0FF8 + cmpne r2, r0 + popne {r3, r4, r5, pc} + cmp r4, #0 + popeq {r3, r4, r5, pc} + ldr r0, [r5, #0x20] + cmp r4, r0 + popne {r3, r4, r5, pc} + bl ov00_022BF264 + ldrh r1, [r5, #2] + cmp r1, #0 + bne _022C0E80 + cmp r0, #0 + popne {r3, r4, r5, pc} + add r1, r4, #0x800 + ldrh r0, [r1, #0xa] + ldrh r2, [r5, #0x1a] + add r0, r4, r0, lsl #1 + asr r2, r2, #1 + add r0, r0, #0x800 + strh r2, [r0] + ldrh r0, [r1, #0xa] + add r0, r0, #1 + and r0, r0, #3 + strh r0, [r1, #0xa] + pop {r3, r4, r5, pc} +_022C0E80: + cmp r1, #0xa + bne _022C0EB4 + cmp r0, #0 + beq _022C0EA4 + add r0, r4, #0x800 + ldrh r1, [r0, #0xa] + add r1, r1, #3 + and r1, r1, #3 + strh r1, [r0, #0xa] +_022C0EA4: + add r0, r4, #0x800 + mov r1, #4 + strh r1, [r0, #0x1c] + pop {r3, r4, r5, pc} +_022C0EB4: + add r0, r4, #0x800 + mov r1, #5 + strh r1, [r0, #0x1c] pop {r3, r4, r5, pc} .align 2, 0 -_0204EA4C: .4byte 0x022AB4FC -_0204EA50: .4byte 0x022AB510 -_0204EA54: .4byte 0x022AB5A8 -_0204EA58: .4byte 0x022AB4F8 - arm_func_end FUN_0204e974 +_022C0EC4: .4byte ov00_022C0ECC +_022C0EC8: .4byte ov00_022C0FF8 + arm_func_end ov00_022C0DF4 - arm_func_start InitDungeonInit -InitDungeonInit: @ 0x0204EA5C + arm_func_start ov00_022C0ECC +ov00_022C0ECC: @ 0x022C0ECC + push {r4, r5, r6, lr} + ldr r4, [r0, #0x1c] + cmp r4, #0 + popeq {r4, r5, r6, pc} + ldrh r1, [r0, #2] + cmp r1, #0 + bne _022C0FE8 + ldrh r1, [r0, #4] + cmp r1, #0x15 + bgt _022C0F18 + bge _022C0F38 + cmp r1, #9 + popgt {r4, r5, r6, pc} + cmp r1, #7 + poplt {r4, r5, r6, pc} + beq _022C0F58 + cmp r1, #9 + beq _022C0F68 + pop {r4, r5, r6, pc} +_022C0F18: + cmp r1, #0x1a + popgt {r4, r5, r6, pc} + cmp r1, #0x19 + poplt {r4, r5, r6, pc} + popeq {r4, r5, r6, pc} + cmp r1, #0x1a + beq _022C0F68 + pop {r4, r5, r6, pc} +_022C0F38: + ldrh r1, [r0, #0x12] + ldr r2, [r0, #0xc] + mov r0, r4 + bl ov00_022C10EC + mov r0, r4 + mov r1, #0 + bl ov00_022C11B8 + pop {r4, r5, r6, pc} +_022C0F58: + mov r0, r4 + mov r1, #0 + bl ov00_022C11B8 + pop {r4, r5, r6, pc} +_022C0F68: + ldrh r5, [r0, #0x12] + mov r6, #1 + bl FUN_0207B7E4 + add r1, r4, #0x800 + ldrh lr, [r1, #8] + mvn ip, r6, lsl r5 + lsl r3, lr, #9 + ldrh r2, [r4, r3] + and r2, r2, ip + strh r2, [r4, r3] + ldrh r1, [r1, #0x18] + cmp r1, #1 + bne _022C0FB8 + add r1, lr, #1 + and r1, r1, #3 + lsl r1, r1, #0x10 + lsr r2, r1, #7 + ldrh r1, [r4, r2] + and r1, r1, ip + strh r1, [r4, r2] +_022C0FB8: + bl FUN_0207B7F8 + mov r0, r4 + mov r1, #0 + bl ov00_022C11B8 + add r0, r4, #0x800 + ldrh r0, [r0, #0x18] + cmp r0, #1 + popne {r4, r5, r6, pc} + mov r0, r4 + mov r1, #0 + bl ov00_022C11B8 + pop {r4, r5, r6, pc} +_022C0FE8: + add r0, r4, #0x800 + mov r1, #5 + strh r1, [r0, #0x1c] + pop {r4, r5, r6, pc} + arm_func_end ov00_022C0ECC + + arm_func_start ov00_022C0FF8 +ov00_022C0FF8: @ 0x022C0FF8 + push {r4, r5, r6, r7, r8, lr} + mov r8, r0 + ldr r4, [r8, #0x1c] + cmp r4, #0 + popeq {r4, r5, r6, r7, r8, pc} + ldrh r0, [r8, #2] + cmp r0, #0 + bne _022C10DC + ldrh r0, [r8, #4] + cmp r0, #0x15 + bgt _022C1040 + bge _022C1058 + cmp r0, #9 + popgt {r4, r5, r6, r7, r8, pc} + cmp r0, #7 + poplt {r4, r5, r6, r7, r8, pc} + cmpne r0, #9 + pop {r4, r5, r6, r7, r8, pc} +_022C1040: + cmp r0, #0x1a + popgt {r4, r5, r6, r7, r8, pc} + cmp r0, #0x19 + poplt {r4, r5, r6, r7, r8, pc} + cmpne r0, #0x1a + pop {r4, r5, r6, r7, r8, pc} +_022C1058: + ldr r7, [r8, #0xc] + ldrh r5, [r8, #0x10] + ldrh r6, [r7] + bl ov00_022BF264 + add r1, r4, #0x800 + ldrh r1, [r1, #0x14] + cmp r5, r1 + beq _022C1080 + cmp r5, #0x200 + movhi r5, #0x200 +_022C1080: + cmp r5, #4 + poplo {r4, r5, r6, r7, r8, pc} + mov r1, #1 + tst r6, r1, lsl r0 + popeq {r4, r5, r6, r7, r8, pc} + add r0, r4, #0x800 + ldrh r1, [r0, #8] + mov r0, r7 + mov r2, r5 + add r1, r4, r1, lsl #9 + bl FUN_0207C2E0 + add r1, r4, #0x800 + ldrh r0, [r1, #8] + ldrh r2, [r8, #0x1a] + add r0, r4, r0, lsl #1 + asr r2, r2, #1 + add r0, r0, #0x800 + strh r2, [r0] + ldrh r0, [r1, #8] + add r0, r0, #1 + and r0, r0, #3 + strh r0, [r1, #8] + pop {r4, r5, r6, r7, r8, pc} +_022C10DC: + add r0, r4, #0x800 + mov r1, #5 + strh r1, [r0, #0x1c] + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022C0FF8 + + arm_func_start ov00_022C10EC +ov00_022C10EC: @ 0x022C10EC + push {r3, r4, r5, r6, r7, lr} + mov r6, r0 + mov r3, r1 + mov r1, #1 + lsl r4, r1, r3 + add r0, r6, #0x800 + ldrh r1, [r0, #0xe] + lsl r7, r4, #0x10 + mov r5, r2 + tst r1, r7, lsr #16 + popeq {r3, r4, r5, r6, r7, pc} + ldrh r4, [r0, #8] + lsl r2, r4, #9 + ldrh r2, [r6, r2] + tst r2, r7, lsr #16 + bne _022C1150 + ldrh r0, [r0, #0x18] + cmp r0, #1 + popne {r3, r4, r5, r6, r7, pc} + add r0, r4, #1 + and r4, r0, #3 + lsl r0, r4, #9 + ldrh r0, [r6, r0] + tst r0, r7, lsr #16 + popeq {r3, r4, r5, r6, r7, pc} +_022C1150: + add r2, r6, r4, lsl #9 + mov r0, r6 + add r2, r2, #4 + bl ov00_022C1360 + mov r1, r0 + add r0, r6, #0x800 + cmp r5, #0 + ldrh r2, [r0, #0x10] + beq _022C1180 + mov r0, r5 + bl FUN_0207C2E0 + b _022C1188 +_022C1180: + mov r0, #0 + bl FUN_0207C2B8 +_022C1188: + bl FUN_0207B7E4 + lsl r4, r4, #9 + ldrh r3, [r6, r4] + mvn r1, r7, lsr #16 + add r2, r6, #2 + and r1, r3, r1 + strh r1, [r6, r4] + ldrh r1, [r2, r4] + orr r1, r1, r7, lsr #16 + strh r1, [r2, r4] + bl FUN_0207B7F8 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022C10EC + + arm_func_start ov00_022C11B8 +ov00_022C11B8: @ 0x022C11B8 + push {r3, r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0xc + mov sl, r0 + mov sb, r1 + bl FUN_0207B7E4 + add r1, sl, #0x800 + ldrh r1, [r1, #8] + mov r4, r0 + lsl r1, r1, #9 + ldrh r1, [sl, r1] + cmp r1, #0 + bne _022C12F8 + bl ov00_022BF294 + add r1, sl, #0x800 + ldrh r6, [r1, #8] + ldrh r1, [r1, #0x18] + mov r7, r0 + add r0, r6, #1 + and r5, r0, #3 + cmp r1, #1 + addeq r0, r5, #1 + andeq r8, r0, #3 + movne r8, r5 + add r1, sl, r8, lsl #9 + mov r0, #0 + mov r2, #0x200 + bl FUN_0207C2B8 + add r0, sl, #0x800 + ldrh r3, [r0, #0xe] + orr r2, r7, #1 + lsl r1, r8, #9 + and r2, r3, r2 + strh r2, [sl, r1] + strh r5, [r0, #8] + ldrh r0, [r0, #0xe] + lsl r1, r6, #9 + cmp sb, #1 + strh r0, [sl, r1] + ldrheq r0, [sl, r1] + biceq r0, r0, #1 + strheq r0, [sl, r1] + mov r0, r4 + bl FUN_0207B7F8 + add r3, sl, #0x800 + ldrh r1, [r3, #0xe] + mov r4, #1 + ldr r0, _022C1304 @ =ov00_022C0DF4 + and r1, r1, r7 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + str r1, [sp] + ldrh r5, [r3, #0x16] + mov r1, sl + add r2, sl, r6, lsl #9 + str r5, [sp, #4] + str r4, [sp, #8] + ldrh r3, [r3, #0x14] + bl ov00_022C0498 + cmp r0, #7 + bne _022C12D4 + add r0, sl, r6, lsl #1 + ldr r1, _022C1308 @ =0x0000FFFF + add r0, r0, #0x800 + strh r1, [r0] + add r0, sl, #0x800 + ldrh r1, [r0, #0xa] + add sp, sp, #0xc + add r1, r1, #1 + and r1, r1, #3 + strh r1, [r0, #0xa] + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} +_022C12D4: + cmp r0, #0 + cmpne r0, #2 + addeq sp, sp, #0xc + popeq {r3, r4, r5, r6, r7, r8, sb, sl, pc} + add r0, sl, #0x800 + mov r1, #5 + strh r1, [r0, #0x1c] + add sp, sp, #0xc + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} +_022C12F8: + bl FUN_0207B7F8 + add sp, sp, #0xc + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022C1304: .4byte ov00_022C0DF4 +_022C1308: .4byte 0x0000FFFF + arm_func_end ov00_022C11B8 + + arm_func_start ov00_022C130C +ov00_022C130C: @ 0x022C130C + push {r3, lr} + mov lr, r1 + mov r3, r2 + cmp r0, #0 + ldrh r1, [lr] + ldrh ip, [lr, #2] + mov r2, #1 + moveq r0, #0 + popeq {r3, pc} + cmp lr, #0 + moveq r0, #0 + popeq {r3, pc} + tst r1, r2, lsl r3 + moveq r0, #0 + popeq {r3, pc} + tst ip, r2, lsl r3 + moveq r0, #0 + popeq {r3, pc} + add r2, lr, #4 + bl ov00_022C1360 + pop {r3, pc} + arm_func_end ov00_022C130C + + arm_func_start ov00_022C1360 +ov00_022C1360: @ 0x022C1360 + push {r3, r4, r5, lr} + mov ip, #1 + lsl r3, ip, r3 + sub r3, r3, #1 + mov r5, r0 + and r0, r1, r3 + mov r4, r2 + bl FUN_02084F34 + add r1, r5, #0x800 + ldrh r1, [r1, #0x10] + mla r0, r1, r0, r4 + pop {r3, r4, r5, pc} + arm_func_end ov00_022C1360 + + arm_func_start ov00_022C1390 +ov00_022C1390: @ 0x022C1390 + push {r3, lr} + mov ip, #1 + rsb r2, ip, #0x10000 + mov r3, #2 + str ip, [sp] + bl ov00_022C0810 + pop {r3, pc} + arm_func_end ov00_022C1390 +_022C13AC: + .byte 0x00, 0xC0, 0x9F, 0xE5 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x64, 0x0A, 0x2C, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1 + .byte 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1, 0x73, 0xF6, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x70, 0x80, 0xBD, 0x18, 0x03, 0x00, 0x55, 0xE3, 0x06, 0x00, 0xA0, 0x83, 0x70, 0x80, 0xBD, 0x88 + .byte 0x00, 0x00, 0x55, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x54, 0xE3, 0x06, 0x00, 0xA0, 0x03 + .byte 0x70, 0x80, 0xBD, 0x08, 0x04, 0x00, 0xA0, 0xE1, 0x50, 0x10, 0xA0, 0xE3, 0xAF, 0xE3, 0xF6, 0xEB + .byte 0x06, 0x10, 0xA0, 0xE1, 0x14, 0x00, 0xA0, 0xE3, 0xF5, 0xF5, 0xFF, 0xEB, 0x05, 0x20, 0xA0, 0xE1 + .byte 0x04, 0x30, 0xA0, 0xE1, 0x14, 0x00, 0xA0, 0xE3, 0x02, 0x10, 0xA0, 0xE3, 0x0C, 0xF6, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0xA0, 0x03, 0x70, 0x80, 0xBD, 0xE8 + + arm_func_start ov00_022C142C +ov00_022C142C: @ 0x022C142C push {r3, r4, r5, r6, r7, lr} mov r7, r0 mov r6, r1 - bl GetGameMode - mov r4, r0 - mov r0, r6 - strh r6, [r7, #2] - bl DungeonSwapIdxToId - strb r0, [r7] - mov r1, #1 - strb r1, [r7, #1] - sub r1, r1, #2 - strb r1, [r7, #0x12] - mov r0, #0 - str r0, [r7, #0xac] - strb r0, [r7, #0xd] - strb r1, [r7, #0xe] - strb r0, [r7, #4] - strb r0, [r7, #0xf] - strb r0, [r7, #0x10] - strb r0, [r7, #0x11] - cmp r4, #2 - strbne r0, [r7, #5] - strbne r0, [r7, #6] - strbne r0, [r7, #8] - bne _0204EAF0 - mov r0, #7 - bl GetPerformanceFlagWithChecks - strb r0, [r7, #5] - mov r0, #5 - bl GetPerformanceFlagWithChecks - strb r0, [r7, #6] - mov r0, #6 - bl GetPerformanceFlagWithChecks - strb r0, [r7, #8] - mov r0, #1 - bl GetPerformanceFlagWithChecks -_0204EAF0: - strb r0, [r7, #9] - mov r3, #0 - strb r3, [r7, #0xa] - strb r3, [r7, #0xb] - strb r3, [r7, #7] - strb r3, [r7, #0xc] - mov r1, r3 - mov r0, #0x44 -_0204EB10: - mla r2, r3, r0, r7 - strb r1, [r2, #0x1c] - add r3, r3, #1 - strh r1, [r2, #0x20] - cmp r3, #2 - blt _0204EB10 - cmp r4, #5 - bne _0204EB88 - mov r0, #1 - strb r0, [r7, #5] - strb r1, [r7, #6] - strb r1, [r7, #8] - strb r1, [r7, #9] - strb r1, [r7, #0xb] - mov r0, #3 - strb r0, [r7, #0xd] - strb r1, [r7, #4] - sub r0, r6, #0x26 - strb r1, [r7, #0x11] - cmp r0, #5 - addls pc, pc, r0, lsl #2 - b _0204EB84 -_0204EB68: @ jump table - b _0204EB80 @ case 0 - b _0204EB80 @ case 1 - b _0204EB80 @ case 2 - b _0204EB80 @ case 3 - b _0204EB80 @ case 4 - b _0204EB80 @ case 5 -_0204EB80: - strb r1, [r7, #5] -_0204EB84: - pop {r3, r4, r5, r6, r7, pc} -_0204EB88: - mov r0, r6 - bl GetDungeonModeSpecial - cmp r0, #1 - beq _0204EBB0 - cmp r0, #2 - beq _0204EF50 - cmp r0, #3 - moveq r0, #0 - strbeq r0, [r7, #0xd] - b _0204EF88 -_0204EBB0: - mov r4, #0 - mov r0, r6 - strb r4, [r7, #0xd] - mov r5, r4 - bl IsNoLossPenaltyDungeon - strb r0, [r7, #0xc] - cmp r6, #0x44 - bgt _0204ECA4 - bge _0204EE70 - cmp r6, #0x3e - bgt _0204EC60 - bge _0204EE68 - cmp r6, #0x21 - bgt _0204EC1C - bge _0204EDEC - cmp r6, #0xb - bgt _0204EC10 - subs r0, r6, #8 - addpl pc, pc, r0, lsl #2 - b _0204EF34 -_0204EC00: @ jump table - b _0204ED88 @ case 0 - b _0204ED9C @ case 1 - b _0204EDB0 @ case 2 - b _0204EDC4 @ case 3 -_0204EC10: - cmp r6, #0x20 - beq _0204EDD8 - b _0204EF34 -_0204EC1C: - cmp r6, #0x22 - bgt _0204EC2C - beq _0204EE10 - b _0204EF34 -_0204EC2C: - sub r0, r6, #0x23 - cmp r0, #8 - addls pc, pc, r0, lsl #2 - b _0204EF34 -_0204EC3C: @ jump table - b _0204EE24 @ case 0 - b _0204EF34 @ case 1 - b _0204EF34 @ case 2 - b _0204EE48 @ case 3 - b _0204EE48 @ case 4 - b _0204EE48 @ case 5 - b _0204EE60 @ case 6 - b _0204EE60 @ case 7 - b _0204EE60 @ case 8 -_0204EC60: - cmp r6, #0x41 - bgt _0204EC88 - bge _0204EE68 - cmp r6, #0x3f - bgt _0204EC7C - beq _0204EE68 - b _0204EF34 -_0204EC7C: - cmp r6, #0x40 - beq _0204EE68 - b _0204EF34 -_0204EC88: - cmp r6, #0x42 - bgt _0204EC98 - beq _0204EE68 - b _0204EF34 -_0204EC98: - cmp r6, #0x43 - beq _0204EE70 - b _0204EF34 -_0204ECA4: - cmp r6, #0x73 - bgt _0204ECF4 - bge _0204EE88 - cmp r6, #0x70 - bgt _0204ECD8 - bge _0204EE88 - cmp r6, #0x45 - bgt _0204ECCC - beq _0204EE70 - b _0204EF34 -_0204ECCC: - cmp r6, #0x6f - beq _0204EE88 - b _0204EF34 -_0204ECD8: - cmp r6, #0x71 - bgt _0204ECE8 - beq _0204EE88 - b _0204EF34 -_0204ECE8: - cmp r6, #0x72 - beq _0204EE88 - b _0204EF34 -_0204ECF4: - cmp r6, #0x76 - bgt _0204ED1C - bge _0204EE88 - cmp r6, #0x74 - bgt _0204ED10 - beq _0204EE88 - b _0204EF34 -_0204ED10: - cmp r6, #0x75 - beq _0204EE88 - b _0204EF34 -_0204ED1C: - cmp r6, #0x87 - bgt _0204ED7C - subs r0, r6, #0x78 - addpl pc, pc, r0, lsl #2 - b _0204ED70 -_0204ED30: @ jump table - b _0204EE88 @ case 0 - b _0204EE88 @ case 1 - b _0204EE88 @ case 2 - b _0204EE9C @ case 3 - b _0204EEC4 @ case 4 - b _0204EF34 @ case 5 - b _0204EF34 @ case 6 - b _0204EF34 @ case 7 - b _0204EEEC @ case 8 - b _0204EF34 @ case 9 - b _0204EF34 @ case 10 - b _0204EF34 @ case 11 - b _0204EF34 @ case 12 - b _0204EF34 @ case 13 - b _0204EF34 @ case 14 - b _0204EF10 @ case 15 -_0204ED70: - cmp r6, #0x77 - beq _0204EE88 - b _0204EF34 -_0204ED7C: - cmp r6, #0xa4 - beq _0204EF24 - b _0204EF34 -_0204ED88: - ldr r2, _0204EF98 @ =0x020A2904 - mov r0, r7 - mov r1, r4 - bl AddGuestMonster - b _0204EF34 -_0204ED9C: - ldr r2, _0204EF9C @ =0x020A2AD8 - mov r0, r7 - mov r1, r4 - bl AddGuestMonster - b _0204EF34 -_0204EDB0: - ldr r2, _0204EFA0 @ =0x020A2AB4 - mov r0, r7 - mov r1, r4 - bl AddGuestMonster - b _0204EF34 -_0204EDC4: - ldr r2, _0204EFA4 @ =0x020A294C - mov r0, r7 - mov r1, r4 - bl AddGuestMonster - b _0204EF34 -_0204EDD8: - ldr r2, _0204EFA8 @ =0x020A2970 - mov r0, r7 - mov r1, #0 - bl AddGuestMonster - b _0204EF34 -_0204EDEC: - ldr r2, _0204EFAC @ =0x020A2A48 - mov r0, r7 - mov r1, r4 - bl AddGuestMonster - ldr r2, _0204EFB0 @ =0x020A2A24 - mov r0, r7 - mov r1, #1 - bl AddGuestMonster - b _0204EF34 -_0204EE10: - ldr r2, _0204EFB4 @ =0x020A29DC - mov r0, r7 - mov r1, r4 - bl AddGuestMonster - b _0204EF34 -_0204EE24: - mov r0, #0x19 - bl GetPerformanceFlagWithChecks + mov r5, r2 + mov r4, r3 + bl ov00_022BED9C cmp r0, #0 - bne _0204EF34 - ldr r2, _0204EFB8 @ =0x020A2A00 - mov r0, r7 - mov r1, r4 - bl AddGuestMonster - b _0204EF34 -_0204EE48: - ldr r2, _0204EFBC @ =0x020A2A6C - mov r0, r7 - mov r1, r4 - mov r5, #1 - bl AddGuestMonster - b _0204EF34 -_0204EE60: - mov r4, #1 - b _0204EF34 -_0204EE68: - mov r4, #1 - b _0204EF34 -_0204EE70: - ldr r2, _0204EFC0 @ =0x020A2A90 - mov r0, r7 - mov r1, #0 - bl AddGuestMonster - mov r4, #1 - b _0204EF34 -_0204EE88: - ldr r2, _0204EFC4 @ =0x020A2AFC - mov r0, r7 - mov r1, #0 - bl AddGuestMonster - b _0204EF34 -_0204EE9C: - mov r0, r4 - mov r1, #0x10 - bl LoadScriptVariableValue - cmp r0, #0 - bne _0204EF34 - ldr r2, _0204EFC8 @ =0x020A2B20 - mov r0, r7 - mov r1, r4 - bl AddGuestMonster - b _0204EF34 -_0204EEC4: - mov r0, r4 - mov r1, #0x10 - bl LoadScriptVariableValue - cmp r0, #0 - bne _0204EF34 - ldr r2, _0204EFCC @ =0x020A2928 - mov r0, r7 - mov r1, r4 - bl AddGuestMonster - b _0204EF34 -_0204EEEC: - ldr r2, _0204EFD0 @ =0x020A28BC - mov r0, r7 - mov r1, r4 - bl AddGuestMonster - ldr r2, _0204EFD4 @ =0x020A28E0 - mov r0, r7 - mov r1, #1 - bl AddGuestMonster - b _0204EF34 -_0204EF10: - ldr r2, _0204EFD8 @ =0x020A29B8 - mov r0, r7 - mov r1, r4 - bl AddGuestMonster - b _0204EF34 -_0204EF24: - ldr r2, _0204EFDC @ =0x020A2994 - mov r0, r7 - mov r1, r4 - bl AddGuestMonster -_0204EF34: + popne {r3, r4, r5, r6, r7, pc} + cmp r6, #3 + movhi r0, #6 + pophi {r3, r4, r5, r6, r7, pc} + cmp r6, #0 + beq _022C1478 cmp r4, #0 - movne r0, #1 - strbne r0, [r7, #0xb] - cmp r5, #0 - movne r0, #1 - strbne r0, [r7, #7] - b _0204EF88 -_0204EF50: - sub r0, r6, #0x26 - cmp r0, #5 - addls pc, pc, r0, lsl #2 - b _0204EF80 -_0204EF60: @ jump table - b _0204EF78 @ case 0 - b _0204EF78 @ case 1 - b _0204EF78 @ case 2 - b _0204EF78 @ case 3 - b _0204EF78 @ case 4 - b _0204EF78 @ case 5 -_0204EF78: - mov r0, #1 - strb r0, [r7, #0xb] -_0204EF80: - mov r0, #1 - strb r0, [r7, #0xd] -_0204EF88: - mov r0, #0 - strb r0, [r7, #4] - strb r0, [r7, #0x11] - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0204EF98: .4byte 0x020A2904 -_0204EF9C: .4byte 0x020A2AD8 -_0204EFA0: .4byte 0x020A2AB4 -_0204EFA4: .4byte 0x020A294C -_0204EFA8: .4byte 0x020A2970 -_0204EFAC: .4byte 0x020A2A48 -_0204EFB0: .4byte 0x020A2A24 -_0204EFB4: .4byte 0x020A29DC -_0204EFB8: .4byte 0x020A2A00 -_0204EFBC: .4byte 0x020A2A6C -_0204EFC0: .4byte 0x020A2A90 -_0204EFC4: .4byte 0x020A2AFC -_0204EFC8: .4byte 0x020A2B20 -_0204EFCC: .4byte 0x020A2928 -_0204EFD0: .4byte 0x020A28BC -_0204EFD4: .4byte 0x020A28E0 -_0204EFD8: .4byte 0x020A29B8 -_0204EFDC: .4byte 0x020A2994 - arm_func_end InitDungeonInit - - arm_func_start IsNoLossPenaltyDungeon -IsNoLossPenaltyDungeon: @ 0x0204EFE0 - push {r4, lr} - cmp r0, #0x1a - mov r4, #0 - cmpne r0, #0x79 - beq _0204F000 - cmp r0, #0x7d - beq _0204F008 - b _0204F01C -_0204F000: - mov r4, #1 - b _0204F01C -_0204F008: + moveq r0, #6 + popeq {r3, r4, r5, r6, r7, pc} mov r0, r4 - mov r1, #0x10 - bl LoadScriptVariableValue + mov r1, #0x50 + bl FUN_0207A2C0 +_022C1478: + mov r1, r7 + mov r0, #0x27 + bl ov00_022BEBE4 + mov r2, r6 + mov r3, r4 + mov r0, #0x27 + mov r1, #3 + str r5, [sp] + bl ov00_022BEC54 cmp r0, #0 - moveq r4, #1 -_0204F01C: - mov r0, r4 - pop {r4, pc} - arm_func_end IsNoLossPenaltyDungeon + moveq r0, #2 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022C142C - arm_func_start FUN_0204f024 -FUN_0204f024: @ 0x0204F024 - ldr r1, _0204F030 @ =0x022AB4FC - strb r0, [r1, #0xe] - bx lr + arm_func_start ov00_022C14A8 +ov00_022C14A8: @ 0x022C14A8 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0xc + mov r7, r0 + mov r6, r1 + mov r5, r2 + mov r0, #2 + mov r1, #7 + mov r2, #9 + mov r4, r3 + bl ov00_022BEDE4 + cmp r0, #0 + addne sp, sp, #0xc + popne {r4, r5, r6, r7, pc} + cmp r6, #0 + addeq sp, sp, #0xc + moveq r0, #6 + popeq {r4, r5, r6, r7, pc} + cmp r5, #0x70 + addhi sp, sp, #0xc + movhi r0, #6 + pophi {r4, r5, r6, r7, pc} + ldr r1, _022C155C @ =0x0231EDE0 + mov r0, r6 + mov r2, r5 + bl FUN_0207C2E0 + ldr r0, _022C155C @ =0x0231EDE0 + mov r1, r5 + bl FUN_0207A2C0 + mov r1, r7 + mov r0, #0x18 + bl ov00_022BEBE4 + ldrh r0, [sp, #0x20] + str r4, [sp] + ldrb r1, [sp, #0x24] + str r0, [sp, #4] + ldr r2, _022C155C @ =0x0231EDE0 + str r1, [sp, #8] + mov r3, r5 + mov r0, #0x18 + mov r1, #5 + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 + add sp, sp, #0xc + pop {r4, r5, r6, r7, pc} .align 2, 0 -_0204F030: .4byte 0x022AB4FC - arm_func_end FUN_0204f024 +_022C155C: .4byte 0x0231EDE0 + arm_func_end ov00_022C14A8 - arm_func_start FUN_0204f034 -FUN_0204f034: @ 0x0204F034 - push {r3, lr} - mov r0, #0 - mov r1, #0x28 - bl LoadScriptVariableValue - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - pop {r3, pc} - arm_func_end FUN_0204f034 + arm_func_start ov00_022C1560 +ov00_022C1560: @ 0x022C1560 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + bl ov00_022BED9C + cmp r0, #0 + popne {r3, r4, r5, pc} + cmp r4, #0 + cmpne r4, #1 + movne r0, #6 + popne {r3, r4, r5, pc} + mov r1, r5 + mov r0, #0x19 + bl ov00_022BEBE4 + mov r2, r4 + mov r0, #0x19 + mov r1, #1 + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 + pop {r3, r4, r5, pc} + arm_func_end ov00_022C1560 - arm_func_start FUN_0204f050 -FUN_0204f050: @ 0x0204F050 - push {r3, lr} - mov r0, #0 - mov r1, #0x27 - bl LoadScriptVariableValue - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - mvn r1, #0 - cmp r0, r1 - cmpne r0, #0xd6 - popeq {r3, pc} - cmp r0, #0xd7 - cmpeq r0, #0xd9 - cmpeq r0, #0xd8 - popeq {r3, pc} - mov r0, #0 - mov r1, #0x29 - bl LoadScriptVariableValue - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - pop {r3, pc} - arm_func_end FUN_0204f050 + arm_func_start ov00_022C15B0 +ov00_022C15B0: @ 0x022C15B0 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + mov r7, r0 + mov r6, r1 + mov r5, r2 + mov r4, r3 + bl ov00_022BED9C + cmp r0, #0 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} + mov r1, r7 + mov r0, #0x1d + bl ov00_022BEBE4 + ldrh ip, [sp, #0x20] + mov r2, r6 + mov r3, r5 + mov r0, #0x1d + mov r1, #4 + stm sp, {r4, ip} + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022C15B0 - arm_func_start FUN_0204f0a0 -FUN_0204f0a0: @ 0x0204F0A0 - push {r3, lr} + arm_func_start ov00_022C1610 +ov00_022C1610: @ 0x022C1610 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0xc + mov r7, r0 + mov r6, r1 + mov r5, r2 + mov r4, r3 + bl ov00_022BED70 + mov r0, #1 + mov r1, #2 + bl ov00_022BEDE4 + cmp r0, #0 + addne sp, sp, #0xc + popne {r4, r5, r6, r7, pc} + mov r1, r7 + mov r0, #0x1e + bl ov00_022BEBE4 + ldrh r2, [sp, #0x20] + mov r3, #0x1e + add r0, sp, #0 + mov r1, #0xa + strh r3, [sp] + strh r6, [sp, #2] + strh r5, [sp, #4] + strh r4, [sp, #6] + strh r2, [sp, #8] + bl ov00_022BED00 + cmp r0, #0 + moveq r0, #2 + add sp, sp, #0xc + pop {r4, r5, r6, r7, pc} + arm_func_end ov00_022C1610 + + arm_func_start ov00_022C1688 +ov00_022C1688: @ 0x022C1688 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + mov r0, #2 + mov r1, #7 + mov r2, #9 + bl ov00_022BEDE4 + cmp r0, #0 + popne {r3, r4, r5, pc} + mov r1, r5 + mov r0, #0x21 + bl ov00_022BEBE4 + mov r2, r4 + mov r0, #0x21 + mov r1, #1 + bl ov00_022BEC54 + cmp r0, #0 + moveq r0, #2 + pop {r3, r4, r5, pc} + arm_func_end ov00_022C1688 + + arm_func_start ov00_022C16D4 +ov00_022C16D4: @ 0x022C16D4 + push {r3, r4, r5, r6, r7, lr} + mov r6, r1 + ldr r1, [sp, #0x1c] + mov r5, r2 + ldr ip, [sp, #0x18] + add r2, r5, r1 + mov r7, r0 + stm r6, {r5, ip} + sub r0, r2, #1 + mov r4, r3 + bl FUN_0208FEA4 + str r0, [r6, #0xc] mov r0, #0 - mov r1, #0x27 - bl LoadScriptVariableValue - lsl r0, r0, #0x10 - mvn r1, #0 - cmp r1, r0, asr #16 - asr r0, r0, #0x10 - moveq r0, #0xff - popeq {r3, pc} - cmp r0, #0xd6 - moveq r0, #0xd4 - popeq {r3, pc} - sub r1, r0, #0xd7 + str r0, [r6, #8] + mov r0, r7 + mov r1, r5 + str r4, [r6, #0x10] + bl ov00_022C2BB8 + mov r2, r0 + mov r0, r4 + mov r1, #0 + bl FUN_0207C40C + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022C16D4 + + arm_func_start ov00_022C1730 +ov00_022C1730: @ 0x022C1730 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + ldr r0, [r7, #0x10] + asr r6, r1, #5 + ldr r0, [r0, r6, lsl #2] + and r4, r1, #0x1f + mov r5, #1 + tst r0, r5, lsl r4 + mov r0, #0 + popne {r3, r4, r5, r6, r7, pc} + mul ip, r1, r2 + ldm r7, {r0, r1} + sub r0, r0, ip + cmp r2, r0 + movhi r2, r0 + mov r0, r3 + add r1, r1, ip + bl FUN_0207C4C8 + ldr r2, [r7, #0x10] + mov r0, #1 + ldr r1, [r2, r6, lsl #2] + orr r1, r1, r5, lsl r4 + str r1, [r2, r6, lsl #2] + ldr r1, [r7, #8] + add r1, r1, #1 + str r1, [r7, #8] + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022C1730 + + arm_func_start ov00_022C179C +ov00_022C179C: @ 0x022C179C + push {r3, r4, r5, r6, r7, lr} + ldr r1, [r0, #0x14] + ldr r6, [r0, #0xc] + add r5, r1, #1 + cmp r5, r6 + movge r5, #0 + ldr r7, [r0, #0x10] + asr r0, r5, #5 + add r4, r7, r0, lsl #2 + mov r0, #0 + mov ip, r5 + and lr, r5, #0x1f + mov r1, r0 + mov r2, #1 +_022C17D4: + ldr r3, [r4] + tst r3, r2, lsl lr + beq _022C1818 + add r5, r5, #1 + cmp r5, r6 + blt _022C17FC + mov r5, r1 + mov lr, r1 + mov r4, r7 + b _022C180C +_022C17FC: + add lr, lr, #1 + cmp lr, #0x20 + movge lr, r0 + addge r4, r4, #4 +_022C180C: + cmp r5, ip + bne _022C17D4 + mvn r5, #0 +_022C1818: + mov r0, r5 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022C179C + + arm_func_start ov00_022C1820 +ov00_022C1820: @ 0x022C1820 + push {r4, r5, r6, lr} + mov r6, r0 + ldr r4, [r6, #0x2f4] + mov lr, #0 + mov r5, r2 + mov r2, lr + cmp r4, #0 + beq _022C18A0 +_022C1840: + cmp r1, #0x3e8 + bhs _022C1880 + cmp r1, r2 + bne _022C1890 + ldr ip, _022C18B8 @ =0x0231EE60 + ldm r4!, {r0, r1, r2, r3} + mov lr, ip + stm ip!, {r0, r1, r2, r3} + ldm r4!, {r0, r1, r2, r3} + stm ip!, {r0, r1, r2, r3} + ldm r4, {r0, r1} + stm ip, {r0, r1} + ldr r0, _022C18BC @ =0x0231EE60 + ldr r1, [r0, #4] + str r1, [r0, #4] + b _022C18A0 +_022C1880: + ldr r0, [r4] + cmp r1, r0 + ldreq lr, [r4, #0x2c] + beq _022C18A0 +_022C1890: + ldr r4, [r4, #0x28] + add r2, r2, #1 + cmp r4, #0 + bne _022C1840 +_022C18A0: + cmp lr, #0 + addne r0, r6, #0x200 + ldrshne r0, [r0, #0xf2] + mlane lr, r5, r0, lr + mov r0, lr + pop {r4, r5, r6, pc} + .align 2, 0 +_022C18B8: .4byte 0x0231EE60 +_022C18BC: .4byte 0x0231EE60 + arm_func_end ov00_022C1820 + + arm_func_start ov00_022C18C0 +ov00_022C18C0: @ 0x022C18C0 + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #8 + mov r8, r0 + ldr r0, [r8] + cmp r0, #0 + addne r7, r0, #4 + moveq r7, #0 + cmp r7, #0 + addeq sp, sp, #8 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + ldrb r0, [r8, #0x2f8] + add r0, r0, #1 + strb r0, [r8, #0x2f8] + tst r0, #0xff + ldrbeq r0, [r8, #0x2f8] + addeq r0, r0, #1 + strbeq r0, [r8, #0x2f8] + ldrb r0, [r8, #0x2f8] + strb r0, [r7, #0xc] + ldr r0, [r7] + cmp r0, #0xa + addls pc, pc, r0, lsl #2 + b _022C19AC +_022C191C: @ jump table + b _022C19AC @ case 0 + b _022C19AC @ case 1 + b _022C19B4 @ case 2 + b _022C19AC @ case 3 + b _022C1948 @ case 4 + b _022C19AC @ case 5 + b _022C1948 @ case 6 + b _022C19AC @ case 7 + b _022C19AC @ case 8 + b _022C19AC @ case 9 + b _022C19B4 @ case 10 +_022C1948: + mov r5, #0 + add r6, r8, #0xb8 + add sb, r8, #0x200 + mov sl, r5 + mov r4, #1 +_022C195C: + ldrh r0, [r7, #8] + tst r0, r4, lsl r5 + beq _022C1994 + add r3, r7, r5, lsl #2 + ldr r1, [r3, #0x1c] + mov r0, r8 + str r1, [sp] + ldrsh r2, [sb, #0xf0] + mov r1, r6 + str r2, [sp, #4] + ldr r2, [r7, #0x18] + ldr r3, [r3, #0x5c] + bl ov00_022C16D4 + str sl, [r6, #0x14] +_022C1994: + add r5, r5, #1 + cmp r5, #0x10 + add r6, r6, #0x24 + blt _022C195C + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022C19AC: + mov r0, #0 + str r0, [r7] +_022C19B4: + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end ov00_022C18C0 + + arm_func_start ov00_022C19BC +ov00_022C19BC: @ 0x022C19BC + push {r3, r4, r5, lr} + mov ip, r0 + add lr, ip, #0xac + mov r0, #0x24 + mla r5, r2, r0, lr + cmp r1, #0xd + mov r4, #1 + beq _022C19F0 + ldrb lr, [r5, #1] + ldrb r0, [r5, #2] + cmp lr, r0 + moveq r4, #0 + beq _022C1A04 +_022C19F0: + cmp r1, #8 + bne _022C1A04 + ldr r0, [r5, #4] + cmp r0, #0x3e8 + movlo r4, #0 +_022C1A04: + cmp r4, #0 + popeq {r3, r4, r5, pc} + ldrb lr, [r5, #1] + mov r0, #1 + lsl r0, r0, r2 + strb lr, [r5, #2] + ldrb lr, [r5, #1] + mov r2, #0xc + strb lr, [ip, #0x1d] + strh r3, [ip, #0x1e] + str r1, [ip, #0x14] + str r2, [ip, #0x10] + strh r0, [ip, #0x1a] + ldr r2, [ip, #0xc] + cmp r2, #0 + beq _022C1A54 + ldr r0, [ip, #8] + add r1, ip, #0x10 + blx r2 + pop {r3, r4, r5, pc} +_022C1A54: + ldr r1, [ip, #0x20] + cmp r1, #0 + popeq {r3, r4, r5, pc} + add r0, ip, #0x10 + blx r1 + pop {r3, r4, r5, pc} + arm_func_end ov00_022C19BC + + arm_func_start ov00_022C1A6C +ov00_022C1A6C: @ 0x022C1A6C + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x10 + mov sl, r0 + mov fp, r1 + add r4, sl, #0xac + mov r3, #0x24 + mov r1, #0 + ldr r5, [sp, #0x38] + mla r4, fp, r3, r4 + str r1, [sp, #0xc] + mov sb, r2 + str r1, [sp, #8] + cmp r5, #2 + bne _022C1B20 + mov r1, #1 + lsl r1, r1, fp lsl r1, r1, #0x10 - asr r1, r1, #0x10 + lsr r2, r1, #0x10 + ldrb r4, [r4, #1] + mov r3, #3 + asr r1, r2, #8 + strb r3, [sb] + strb r2, [sb, #1] + strb r1, [sb, #2] + strb r4, [sb, #3] + bl ov00_022C2CE0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + strb r0, [sb, #4] + asr r0, r0, #8 + strb r0, [sb, #5] + add r1, sl, #0x200 + ldrh r2, [r1, #0xf2] + mov r0, #0xa + str r0, [sp, #0xc] + mov r0, #1 + str r0, [sp, #8] + strb r2, [sb, #6] + asr r0, r2, #8 + strb r0, [sb, #7] + ldrh r0, [r1, #0xf0] + strb r0, [sb, #8] + asr r0, r0, #8 + strb r0, [sb, #9] + b _022C1EA0 +_022C1B20: + cmp r5, #8 + bne _022C1B84 + mov r0, #1 + str r0, [sp, #8] + lsl r0, r0, fp + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + ldrb r3, [r4, #1] + ldr r5, [r4, #4] + mov r2, #9 + strb r2, [sb] + asr r0, r1, #8 + strb r1, [sb, #1] + strb r0, [sb, #2] + strb r3, [sb, #3] + strb r5, [sb, #4] + lsr r0, r5, #8 + strb r0, [sb, #5] + lsr r0, r5, #0x10 + strb r0, [sb, #6] + lsr r0, r5, #0x18 + strb r0, [sb, #7] + mov r0, #8 + str r0, [sp, #0xc] + b _022C1EA0 +_022C1B84: + cmp r5, #0xa + bne _022C1BC8 + mov r0, #1 + str r0, [sp, #8] + lsl r0, r0, fp + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + ldrb r3, [r4, #1] + mov r2, #0xb + asr r0, r1, #8 + strb r2, [sb] + strb r1, [sb, #1] + strb r0, [sb, #2] + mov r0, #4 + strb r3, [sb, #3] + str r0, [sp, #0xc] + b _022C1EA0 +_022C1BC8: + cmp r5, #4 + bne _022C1DC8 + ldr r6, [sl, #0x2f4] + ldr r5, [r4, #4] + cmp r6, #0 + beq _022C1BF4 +_022C1BE0: + ldr r0, [r6] + cmp r0, r5 + ldrne r6, [r6, #0x28] + cmpne r6, #0 + bne _022C1BE0 +_022C1BF4: + cmp r6, #0 + beq _022C1EA0 + cmp r5, #0x3e8 + ldr r7, [r4, #8] + blo _022C1C74 + ldr r0, [sl, #0x300] + cmp r5, r0 + bne _022C1C64 + add r0, sl, #0x200 + ldrsh r1, [r0, #0xf2] + ldr r0, [r6, #4] + mov r8, #0 + add r0, r0, r1 + sub r0, r0, #1 + bl FUN_0208FEA4 + mov r2, r8 + b _022C1C48 +_022C1C38: + add r7, r7, #1 + cmp r7, r0 + movge r7, r2 + add r8, r8, #1 +_022C1C48: + cmp r8, #3 + bge _022C1C64 + ldr r1, [sl, #0x304] + cmp r7, r1 + ldrne r1, [sl, #0x308] + cmpne r7, r1 + beq _022C1C38 +_022C1C64: + str r5, [sl, #0x300] + ldr r0, [sl, #0x304] + str r0, [sl, #0x308] + str r7, [sl, #0x304] +_022C1C74: + ldr r2, [r6, #0x2c] + mov r0, #0 + add r1, sl, #0x200 + str r0, [sp, #4] + str r0, [sp] + cmp r2, #0 + ldrsh r8, [r1, #0xf2] + beq _022C1CB4 + mov r0, sl + mov r1, r5 + mov r2, r7 + bl ov00_022C1820 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp] + b _022C1D0C +_022C1CB4: + ldrh r0, [r6, #0x32] + cmp r0, #1 + bne _022C1D0C + str r5, [sl, #0x24] + ldr r3, [sp, #4] + str r7, [sl, #0x28] + strh r8, [sl, #0x30] + mov r1, r3 + str r1, [sl, #0x2c] + mov r0, sl + mov r2, fp + mov r1, #0xd + bl ov00_022C19BC + ldr r0, [sl, #0x2c] + cmp r0, #0 + beq _022C1D0C + ldrsh r8, [sl, #0x30] + str r0, [sp, #4] + mov r0, #1 + ldr r5, [sl, #0x24] + ldr r7, [sl, #0x28] + str r0, [sp] +_022C1D0C: + ldr r0, [sp] + cmp r0, #0 + beq _022C1EA0 + ldr r0, [sl, #0x2ec] + ldrb r3, [r4, #1] + cmp r0, #0 + ldreq r0, _022C1ECC @ =0x0000FFFE + mov r2, #5 + movne r0, #1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + strb r2, [sb] + asr r0, r1, #8 + strb r1, [sb, #1] + strb r0, [sb, #2] + strb r3, [sb, #3] + strb r5, [sb, #4] + lsr r0, r5, #8 + strb r0, [sb, #5] + lsr r0, r5, #0x10 + strb r0, [sb, #6] + lsr r0, r5, #0x18 + strb r0, [sb, #7] + strb r7, [sb, #8] + lsr r0, r7, #8 + strb r0, [sb, #9] + lsr r0, r7, #0x10 + strb r0, [sb, #0xa] + lsr r0, r7, #0x18 + strb r0, [sb, #0xb] + ldr r0, [sp, #4] + mov r2, r8 + cmp r0, #0 + bne _022C1DAC + add r0, sb, #0xc + mov r1, #0 + bl FUN_0207C40C + b _022C1DB4 +_022C1DAC: + add r1, sb, #0xc + bl FUN_0207C4C8 +_022C1DB4: + add r0, r8, #0xc + str r0, [sp, #0xc] + mov r0, #1 + str r0, [sp, #8] + b _022C1EA0 +_022C1DC8: + cmp r5, #6 + bne _022C1EA0 + ldmib r4, {r5, r6} + add r3, sl, #0x200 + mov r1, r5 + mov r2, r6 + ldrsh r7, [r3, #0xf2] + bl ov00_022C1820 + ldr r1, [sp, #0x3c] + cmp r1, #0 + cmpeq r0, #0 + beq _022C1EA0 + ldr r1, [sl, #0x2ec] + ldrb r4, [r4, #1] + cmp r1, #0 + ldreq r1, _022C1ED0 @ =0x0000FFFF + mov r3, #7 + movne r1, #1 lsl r1, r1, #0x10 lsr r1, r1, #0x10 - cmp r1, #2 - bhi _0204F104 - mov r0, #0 - mov r1, #0x29 - bl LoadScriptVariableValue - lsl r0, r0, #0x10 - asr r0, r0, #0x10 -_0204F104: - bl DungeonSwapIdxToId - pop {r3, pc} - arm_func_end FUN_0204f0a0 - - arm_func_start FUN_0204f10c -FUN_0204f10c: @ 0x0204F10C - push {r4, lr} - mov r4, r0 - mov r0, #0 - mov r1, #0x27 - bl LoadScriptVariableValue - lsl r0, r0, #0x10 - asr r1, r0, #0x10 - mvn r0, #0 - cmp r1, r0 - cmpne r1, #0xd6 - cmpne r1, #0xd7 - cmpne r1, #0xd8 - cmpne r1, #0xd9 - movne r0, #1 - strhne r1, [r4] - mvneq r0, #0 - strheq r0, [r4] - moveq r0, #0 - pop {r4, pc} - arm_func_end FUN_0204f10c - - arm_func_start FUN_0204f158 -FUN_0204f158: @ 0x0204F158 - push {r4, lr} - mov r4, r0 - mov r0, #0 - mov r1, #0x27 - bl LoadScriptVariableValue - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - cmp r0, #0xd7 - bne _0204F1AC - mov r0, #0 - mov r1, #0x29 - bl LoadScriptVariableValue - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl DungeonSwapIdxToId - cmp r0, #0xff - beq _0204F1AC - cmp r0, #0xb4 - strblo r0, [r4] - movlo r0, #1 - poplo {r4, pc} -_0204F1AC: - mov r0, #0 - pop {r4, pc} - arm_func_end FUN_0204f158 - - arm_func_start FUN_0204f1b4 -FUN_0204f1b4: @ 0x0204F1B4 - push {r4, lr} - mov r4, r0 - mov r0, #0 - mov r1, #0x27 - bl LoadScriptVariableValue - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - cmp r0, #0xd6 - mov r0, #0 - popne {r4, pc} - mov r1, #0x29 - bl LoadScriptVariableValue - strb r0, [r4] - mov r0, #1 - pop {r4, pc} - arm_func_end FUN_0204f1b4 - - arm_func_start FUN_0204f1f0 -FUN_0204f1f0: @ 0x0204F1F0 - push {r3, r4, r5, lr} - movs r5, r0 - mov r4, r1 - beq _0204F22C - ldr lr, _0204F23C @ =0x022AB5AC - mov ip, #0xe -_0204F208: - ldm r5!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _0204F208 - ldm r5, {r0, r1} - ldr r2, _0204F240 @ =0x022AB4F8 - stm lr, {r0, r1} - strb r4, [r2, #1] - pop {r3, r4, r5, pc} -_0204F22C: - ldr r0, _0204F240 @ =0x022AB4F8 + lsl r1, r1, #0x10 + lsr r2, r1, #0x10 + strb r3, [sb] + asr r1, r2, #8 + strb r2, [sb, #1] + strb r1, [sb, #2] + strb r4, [sb, #3] + strb r5, [sb, #4] + lsr r1, r5, #8 + strb r1, [sb, #5] + lsr r1, r5, #0x10 + strb r1, [sb, #6] + lsr r1, r5, #0x18 + strb r1, [sb, #7] + strb r6, [sb, #8] + lsr r1, r6, #8 + strb r1, [sb, #9] + lsr r1, r6, #0x10 + strb r1, [sb, #0xa] + lsr r1, r6, #0x18 + strb r1, [sb, #0xb] + cmp r0, #0 + mov r2, r7 + bne _022C1E88 + add r0, sb, #0xc mov r1, #0 - strb r1, [r0, #1] - pop {r3, r4, r5, pc} + bl FUN_0207C40C + b _022C1E90 +_022C1E88: + add r1, sb, #0xc + bl FUN_0207C4C8 +_022C1E90: + add r0, r7, #0xc + str r0, [sp, #0xc] + mov r0, #1 + str r0, [sp, #8] +_022C1EA0: + ldr r0, [sp, #8] + cmp r0, #0 + beq _022C1EC0 + mov r0, #1 + mvn r0, r0, lsl fp + ldr r1, [sl, #0x30c] + and r0, r1, r0 + str r0, [sl, #0x30c] +_022C1EC0: + ldr r0, [sp, #0xc] + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 -_0204F23C: .4byte 0x022AB5AC -_0204F240: .4byte 0x022AB4F8 - arm_func_end FUN_0204f1f0 +_022C1ECC: .4byte 0x0000FFFE +_022C1ED0: .4byte 0x0000FFFF + arm_func_end ov00_022C1A6C - arm_func_start FUN_0204f244 -FUN_0204f244: @ 0x0204F244 - push {r4, lr} - movs r4, r0 - beq _0204F270 - ldr lr, _0204F27C @ =0x022AB5AC - mov ip, #0xe -_0204F258: - ldm lr!, {r0, r1, r2, r3} - stm r4!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _0204F258 - ldm lr, {r0, r1} - stm r4, {r0, r1} -_0204F270: - ldr r0, _0204F280 @ =0x022AB4F8 - ldrb r0, [r0, #1] - pop {r4, pc} - .align 2, 0 -_0204F27C: .4byte 0x022AB5AC -_0204F280: .4byte 0x022AB4F8 - arm_func_end FUN_0204f244 + arm_func_start ov00_022C1ED4 +ov00_022C1ED4: @ 0x022C1ED4 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + ldr r2, [r0] + mov r5, r1 + cmp r2, #0 + mov r1, #0 + addne r4, r2, #4 + moveq r4, r1 + cmp r4, #0 + beq _022C20B4 + ldr r2, [r4] + cmp r2, #0xa + addls pc, pc, r2, lsl #2 + b _022C20B4 +_022C1F08: @ jump table + b _022C20B4 @ case 0 + b _022C20B4 @ case 1 + b _022C1F34 @ case 2 + b _022C20B4 @ case 3 + b _022C1F80 @ case 4 + b _022C20B4 @ case 5 + b _022C1F80 @ case 6 + b _022C20B4 @ case 7 + b _022C20B4 @ case 8 + b _022C20B4 @ case 9 + b _022C2078 @ case 10 +_022C1F34: + ldrh r3, [r4, #8] + ldrb r4, [r4, #0xc] + mov r2, #2 + asr r1, r3, #8 + strb r2, [r5] + strb r3, [r5, #1] + strb r1, [r5, #2] + strb r4, [r5, #3] + add r0, r0, #0x200 + ldrh r2, [r0, #0xf2] + mov r1, #8 + strb r2, [r5, #4] + asr r2, r2, #8 + strb r2, [r5, #5] + ldrh r0, [r0, #0xf0] + strb r0, [r5, #6] + asr r0, r0, #8 + strb r0, [r5, #7] + b _022C20B4 +_022C1F80: + add sb, r0, #0xb8 + mov r8, #0 + mov r7, #8 + mov fp, #1 + mvn r6, #0 +_022C1F94: + ldrh r0, [r4, #8] + lsl sl, fp, r8 + tst r0, fp, lsl r8 + beq _022C2064 + mov r0, sb + bl ov00_022C179C + cmp r0, r6 + bne _022C1FFC + ldrb r1, [r4, #0xc] + lsl r0, sl, #0x10 + lsr r0, r0, #0x10 + strb r7, [r5] + strb r0, [r5, #1] + asr r0, r0, #8 + strb r0, [r5, #2] + strb r1, [r5, #3] + ldr r2, [r4, #0x14] + mov r1, r7 + strb r2, [r5, #4] + lsr r0, r2, #8 + strb r0, [r5, #5] + lsr r0, r2, #0x10 + strb r0, [r5, #6] + lsr r0, r2, #0x18 + strb r0, [r5, #7] + b _022C205C +_022C1FFC: + ldrh r3, [r4, #8] + ldrb sl, [r4, #0xc] + ldr r2, [r4] + asr r1, r3, #8 + strb r2, [r5] + strb r3, [r5, #1] + strb r1, [r5, #2] + strb sl, [r5, #3] + ldr r3, [r4, #0x14] + lsr r1, r0, #8 + strb r3, [r5, #4] + lsr r2, r3, #8 + strb r2, [r5, #5] + lsr r2, r3, #0x10 + strb r2, [r5, #6] + lsr r2, r3, #0x18 + strb r2, [r5, #7] + strb r0, [r5, #8] + strb r1, [r5, #9] + lsr r1, r0, #0x10 + strb r1, [r5, #0xa] + lsr r0, r0, #0x18 + mov r1, #0xc + strb r0, [r5, #0xb] +_022C205C: + cmp r1, #0 + bne _022C20B4 +_022C2064: + add r8, r8, #1 + cmp r8, #0x10 + add sb, sb, #0x24 + blt _022C1F94 + b _022C20B4 +_022C2078: + ldrh r2, [r4, #8] + ldrb r3, [r4, #0xc] + mov r1, #0xa + asr r0, r2, #8 + strb r1, [r5] + strb r2, [r5, #1] + strb r0, [r5, #2] + strb r3, [r5, #3] + ldrb r3, [r4, #0x1d] + add r0, r4, #0x14 + add r1, r5, #5 + mov r2, #9 + strb r3, [r5, #4] + bl FUN_0207C4C8 + mov r1, #0xe +_022C20B4: + mov r0, r1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022C1ED4 - arm_func_start FUN_0204f284 -FUN_0204f284: @ 0x0204F284 + arm_func_start ov00_022C20BC +ov00_022C20BC: @ 0x022C20BC push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #8 mov sl, r0 - add r0, sp, #0 mov sb, r1 - bl GetPartyMembers - mov r6, r0 + mov r8, r2 + ldr r6, [sl, #0x30c] + movs r0, #0 + bne _022C2188 + cmp r6, #0 + beq _022C2188 + ldr r1, [sl, #0x2fc] + mov r2, #1 + mov r3, r6 + tst r6, r2, lsl r1 + clzeq r3, r3 + rsbeq r1, r3, #0x1f + streq r1, [sl, #0x2fc] + ldr r7, [sl, #0x2fc] + mvn r2, r6 + sub r1, r6, #1 + add r4, sl, #0xac + and r5, r2, r1 + mov fp, #1 +_022C2118: + add r7, r7, #1 + cmp r6, fp, lsl r7 + movlt r1, r5 + clzlt r1, r1 + rsblt r7, r1, #0x20 + ldr r2, [sl, #0x30c] + mov r1, #1 + tst r2, r1, lsl r7 + beq _022C217C + mov r1, #0x24 + mul r1, r7, r1 + ldrb r1, [r4, r1] + cmp r1, #4 + bne _022C2174 + mov r0, #4 + str r0, [sp] + mov r2, #0 + str r2, [sp, #4] mov r0, sl - bl GetMaxMembersAllowed - cmp r6, r0 - ble _0204F2C0 - cmp r0, #1 - ldreq r0, _0204F354 @ =0x00000301 - ldrne r0, _0204F358 @ =0x00000101 - b _0204F34C -_0204F2C0: - cmp sb, #0 - beq _0204F2D8 - add r0, r6, #1 - cmp r0, #4 - ldrgt r0, _0204F358 @ =0x00000101 - bgt _0204F34C -_0204F2D8: - mov r7, #0 - mov r8, r7 - add r5, sp, #0 - ldr r4, _0204F35C @ =0x020B0A48 - mov fp, #0x44 - b _0204F310 -_0204F2F0: - lsl r0, r8, #1 - ldrsh r0, [r5, r0] - ldr r1, [r4] - smlabb r0, r0, fp, r1 - ldrsh r0, [r0, #4] - bl GetBodySize - add r7, r7, r0 - add r8, r8, #1 -_0204F310: - cmp r8, r6 - blt _0204F2F0 - cmp sb, #0 - beq _0204F32C - mov r0, sb - bl GetBodySize - add r7, r7, r0 -_0204F32C: - cmp r7, #6 - movgt r0, #0x81 - bgt _0204F34C - mov r0, sl - bl IsLevelResetDungeon + mov r1, r7 + mov r2, sb + mov r3, r8 + bl ov00_022C1A6C +_022C2174: cmp r0, #0 - ldrne r0, _0204F360 @ =0x00002002 - moveq r0, #0 -_0204F34C: + strne r7, [sl, #0x2fc] +_022C217C: + ldr r1, [sl, #0x2fc] + cmp r7, r1 + bne _022C2118 +_022C2188: + cmp r0, #0 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r6, #0 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r3, [sl, #0x30c] + ldr r1, [sl, #0x2fc] + mov r2, #1 + tst r3, r2, lsl r1 + clzeq r3, r3 + rsbeq r1, r3, #0x1f + streq r1, [sl, #0x2fc] + ldr r7, [sl, #0x2fc] + mvn r2, r6 + sub r1, r6, #1 + add r4, sl, #0xac + and r5, r2, r1 + mov fp, #1 +_022C21D4: + add r7, r7, #1 + mov r1, #1 + cmp r6, r1, lsl r7 + movlt r1, r5 + clzlt r1, r1 + rsblt r7, r1, #0x20 + ldr r1, [sl, #0x30c] + tst r1, fp, lsl r7 + beq _022C2234 + mov r1, #0x24 + mul r1, r7, r1 + ldrb r1, [r4, r1] + cmp r1, #6 + bne _022C222C + mov r0, #6 + str r0, [sp] + mov r0, sl + mov r1, r7 + mov r2, sb + mov r3, r8 + str fp, [sp, #4] + bl ov00_022C1A6C +_022C222C: + cmp r0, #0 + strne r7, [sl, #0x2fc] +_022C2234: + ldr r1, [sl, #0x2fc] + cmp r7, r1 + bne _022C21D4 add sp, sp, #8 pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022C20BC + + arm_func_start ov00_022C2248 +ov00_022C2248: @ 0x022C2248 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x14 + mov sl, r0 + mov r0, #0 + ldr r5, [sl, #0x2fc] + sub r4, r0, #1 + mov sb, r1 + mov r8, r2 + str r3, [sp, #8] + cmp r5, r4 + bne _022C2284 + movs r1, r3 + movne r1, #1 + moveq r1, r0 + str r1, [sl, #0x2fc] +_022C2284: + cmp sb, #0 + beq _022C2294 + cmp r8, #0 + bgt _022C22A0 +_022C2294: + add sp, sp, #0x14 + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C22A0: + ldr r1, [sl, #0x30c] + str r1, [sp, #0xc] + cmp r1, #0 + beq _022C2384 + ldr r2, [sl, #0x2fc] + mov r3, #1 + mov r4, r1 + tst r1, r3, lsl r2 + clzeq r4, r4 + rsbeq r1, r4, #0x1f + streq r1, [sl, #0x2fc] + ldr r1, [sp, #0xc] + ldr r7, [sl, #0x2fc] + mvn r2, r1 + sub r1, r1, #1 + and r1, r2, r1 + ldr fp, _022C243C @ =0x0231804C + add r5, sl, #0xac + str r1, [sp, #0x10] +_022C22EC: + ldr r2, [sp, #0xc] + add r7, r7, #1 + mov r1, #1 + cmp r2, r1, lsl r7 + ldrlt r1, [sp, #0x10] + clzlt r1, r1 + rsblt r7, r1, #0x20 + ldr r2, [sp, #0xc] + mov r1, #1 + tst r2, r1, lsl r7 + beq _022C2378 + mov r1, #0x24 + mul r4, r7, r1 + mov r6, #0 + b _022C235C +_022C2328: + ldrb r2, [r5, r4] + ldr r1, [fp, r6, lsl #2] + cmp r2, r1 + bne _022C2358 + str r1, [sp] + mov r0, #0 + arm_func_end ov00_022C2248 + + arm_func_start ov00_022C2340 +ov00_022C2340: @ 0x022C2340 + str r0, [sp, #4] + mov r0, sl + mov r1, r7 + mov r2, sb + mov r3, r8 + bl ov00_022C1A6C +_022C2358: + add r6, r6, #1 +_022C235C: + cmp r0, #0 + bne _022C2370 + ldr r1, [fp, r6, lsl #2] + cmp r1, #0 + bne _022C2328 +_022C2370: + cmp r0, #0 + strne r7, [sl, #0x2fc] +_022C2378: + ldr r1, [sl, #0x2fc] + cmp r7, r1 + bne _022C22EC +_022C2384: + cmp r0, #0 + addne sp, sp, #0x14 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [sp, #8] + mov r1, sb + cmp r0, #0 + mov r0, sl + beq _022C23C8 + mov r2, r8 + bl ov00_022C1ED4 + cmp r0, #0 + arm_func_end ov00_022C2340 + + arm_func_start ov00_022C23B0 +ov00_022C23B0: @ 0x022C23B0 + bne _022C23E8 + mov r0, sl + mov r1, sb + mov r2, r8 + bl ov00_022C20BC + b _022C23E8 +_022C23C8: + mov r2, r8 + bl ov00_022C20BC + cmp r0, #0 + bne _022C23E8 + mov r0, sl + mov r1, sb + mov r2, r8 + bl ov00_022C1ED4 +_022C23E8: + cmp r0, #0 + arm_func_end ov00_022C23B0 + + arm_func_start ov00_022C23EC +ov00_022C23EC: @ 0x022C23EC + addne sp, sp, #0x14 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [sp, #8] + mov r1, #1 + cmp r0, #0 + ldrne r0, _022C2440 @ =0x0000FFFE + strb r1, [sb] + moveq r0, #1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + strb r0, [sb, #1] + asr r0, r0, #8 + strb r0, [sb, #2] + mov r0, #0 + strb r0, [sb, #3] + mov r0, #4 + add sp, sp, #0x14 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 -_0204F354: .4byte 0x00000301 -_0204F358: .4byte 0x00000101 -_0204F35C: .4byte 0x020B0A48 -_0204F360: .4byte 0x00002002 - arm_func_end FUN_0204f284 +_022C243C: .4byte 0x0231804C +_022C2440: .4byte 0x0000FFFE + arm_func_end ov00_022C23EC - arm_func_start FUN_0204f364 -FUN_0204f364: @ 0x0204F364 + arm_func_start ov00_022C2444 +ov00_022C2444: @ 0x022C2444 push {r4, r5, r6, lr} - mov r6, r0 - mov r5, #0 - bl GetMaxItemsAllowed - mov r4, r0 - bl GetNbItemsInBag - cmp r4, #0 - ble _0204F39C - cmp r4, r0 - bge _0204F39C - orr r5, r5, #2 - cmp r4, #0 - orreq r5, r5, #0x800 - orrne r5, r5, #0x400 -_0204F39C: - mov r0, r6 - bl IsMoneyAllowed - cmp r0, #0 - bne _0204F3BC - bl GetGold - cmp r0, #0 - orrgt r5, r5, #2 - orrgt r5, r5, #0x1000 -_0204F3BC: - mov r0, r5 - pop {r4, r5, r6, pc} - arm_func_end FUN_0204f364 + mov r5, r0 + mov r3, #0x24 + arm_func_end ov00_022C2444 - arm_func_start CheckMissionRestrictions -CheckMissionRestrictions: @ 0x0204F3C4 + arm_func_start ov00_022C2450 +ov00_022C2450: @ 0x022C2450 + mla r3, r2, r3, r5 + ldr r0, [r5] + ldrb r6, [r3, #0xad] + cmp r0, #0 + addne r4, r0, #4 + moveq r4, #0 + ldrb r3, [r4, #0xc] + cmp r3, r6 + popne {r4, r5, r6, pc} + mov ip, #1 + lsl lr, ip, r2 + strb r6, [r4, #0xd] + strh lr, [r4, #0xa] + ldrh r3, [r4, #8] + tst r3, ip, lsl r2 + beq _022C24D8 + mvn r2, lr + and r2, r3, r2 + strh r2, [r4, #8] + str r1, [r4, #4] + mov r1, #0 + strh r1, [r4, #0xe] + ldr r2, [r0, #0xa0] + cmp r2, #0 + beq _022C24C4 + ldr r0, [r5, #8] + mov r1, r4 + blx r2 + b _022C24D8 +_022C24C4: + ldr r1, [r4, #0x10] + cmp r1, #0 + beq _022C24D8 + mov r0, r4 + blx r1 +_022C24D8: + ldrh r0, [r4, #8] + arm_func_end ov00_022C2450 + + arm_func_start ov00_022C24DC +ov00_022C24DC: @ 0x022C24DC + cmp r0, #0 + popne {r4, r5, r6, pc} + ldr r3, [r5] + mov r0, #1 + ldr r1, [r3] + sub r2, r0, #1 + str r1, [r5] +_022C24F8: + ldr r0, [r5, #4] + subs r2, r2, #1 + str r0, [r3] + str r3, [r5, #4] + add r3, r3, #0xa4 + bpl _022C24F8 + mov r0, r5 + bl ov00_022C18C0 + pop {r4, r5, r6, pc} + arm_func_end ov00_022C24DC + + arm_func_start ov00_022C251C +ov00_022C251C: @ 0x022C251C + push {r4, r5, r6, r7, r8, sb, sl, lr} + mov r4, r1 + mov r1, #0x24 + arm_func_end ov00_022C251C + + arm_func_start ov00_022C2528 +ov00_022C2528: @ 0x022C2528 + mul r1, r4, r1 + mov r5, r0 + mov r6, #1 + movs ip, r2 + mvn r2, r6, lsl r4 + ldr r7, [r5, #0x30c] + add r8, r5, #0xac + and r2, r7, r2 + str r2, [r5, #0x30c] + add r2, r8, r1 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + cmp r3, #4 + poplo {r4, r5, r6, r7, r8, sb, sl, pc} + ldrb r8, [ip] + ldrb sl, [ip, #1] + ldrb lr, [ip, #2] + ldrb r7, [ip, #3] + sub sb, r6, #2 + orr sl, sl, lr, lsl #8 + strb r7, [r2, #1] + strb r8, [r2] + ldr lr, [r5, #0x2ec] + lsl r7, sl, #0x10 + cmp lr, sb + beq _022C2914 + lsl sb, r6, lr + tst sb, r7, lsr #16 + beq _022C2914 + cmp r8, #0x11 + bhs _022C2914 + mov r7, #0xc + mul sb, r8, r7 + ldr r7, _022C2940 @ =0x02318064 + ldr r7, [r7, sb] + cmp r3, r7 + blo _022C2914 + ldr r3, _022C2944 @ =0x02318060 + add r3, r3, sb + ldr r3, [r3, #8] + lsl r7, r3, #0x1f + lsrs r7, r7, #0x1f + beq _022C2728 + cmp r8, #1 + beq _022C2914 + cmp r8, #2 + bne _022C2638 + ldrb r2, [ip, #4] + ldrb r1, [ip, #5] + mov r0, #0 + orr r1, r2, r1, lsl #8 + strh r1, [r5, #0x26] + ldrb r2, [ip, #6] + ldrb r1, [ip, #7] + orr r1, r2, r1, lsl #8 + strh r1, [r5, #0x28] + strh r0, [r5, #0x24] + ldr r0, [r5, #0x2ec] + cmp r0, #0 + beq _022C2628 + ldrsh r1, [r5, #0x28] + add r0, r5, #0x200 + strh r1, [r0, #0xf2] + ldrsh r1, [r5, #0x26] + strh r1, [r0, #0xf0] +_022C2628: + ldr r0, [r5, #0x30c] + orr r0, r0, r6, lsl r4 + str r0, [r5, #0x30c] + b _022C2914 +_022C2638: + cmp r8, #0xa + bne _022C2674 + ldrb r0, [ip, #4] + add r1, r5, #0x24 + strb r0, [r5, #0x2d] + cmp r0, #9 + movhi r0, #0 + strbhi r0, [r5, #0x2d] + ldrb r2, [r5, #0x2d] + add r0, ip, #5 + bl FUN_0207C4C8 + ldr r0, [r5, #0x30c] + orr r0, r0, r6, lsl r4 + str r0, [r5, #0x30c] + b _022C2914 +_022C2674: + cmp r8, #4 + cmpne r8, #6 + bne _022C26D0 + ldrb r1, [ip, #4] + ldrb r0, [ip, #5] + ldrb r3, [ip, #6] + ldrb r7, [ip, #7] + orr r0, r1, r0, lsl #8 + orr r0, r0, r3, lsl #16 + orr r0, r0, r7, lsl #24 + str r0, [r2, #4] + ldrb r1, [ip, #8] + ldrb r0, [ip, #9] + ldrb r3, [ip, #0xa] + ldrb r7, [ip, #0xb] + orr r0, r1, r0, lsl #8 + orr r0, r0, r3, lsl #16 + orr r0, r0, r7, lsl #24 + str r0, [r2, #8] + ldr r0, [r5, #0x30c] + orr r0, r0, r6, lsl r4 + str r0, [r5, #0x30c] + b _022C2914 +_022C26D0: + cmp r8, #8 + bne _022C2914 + ldrb r1, [ip, #4] + ldrb r0, [ip, #5] + ldrb r3, [ip, #6] + ldrb r7, [ip, #7] + orr r0, r1, r0, lsl #8 + orr r0, r0, r3, lsl #16 + orr r0, r0, r7, lsl #24 + str r0, [r5, #0x24] + ldrb r1, [ip, #4] + ldrb r0, [ip, #5] + ldrb r3, [ip, #6] + ldrb r7, [ip, #7] + orr r0, r1, r0, lsl #8 + orr r0, r0, r3, lsl #16 + orr r0, r0, r7, lsl #24 + str r0, [r2, #4] + ldr r0, [r5, #0x30c] + orr r0, r0, r6, lsl r4 + str r0, [r5, #0x30c] + b _022C2914 +_022C2728: + lsl r2, r3, #0x1e + lsrs r2, r2, #0x1f + beq _022C2904 + ldr r0, [r5] + cmp r0, #0 + addne r2, r0, #4 + moveq r2, #0 + cmp r2, #0 + beq _022C2914 + cmp r8, #3 + bne _022C27C4 + ldr r0, [r2] + cmp r0, #2 + bne _022C2914 + ldrb r1, [ip, #4] + ldrb r0, [ip, #5] + orr r0, r1, r0, lsl #8 + strh r0, [r2, #0x14] + ldrb r1, [ip, #6] + ldrb r0, [ip, #7] + orr r0, r1, r0, lsl #8 + strh r0, [r2, #0x16] + ldrb r1, [ip, #8] + ldrb r0, [ip, #9] + orr r0, r1, r0, lsl #8 + strh r0, [r2, #0x18] + ldr r0, [r5, #0x2ec] + cmp r0, #0 + beq _022C27B0 + ldrsh r1, [r2, #0x18] + add r0, r5, #0x200 + strh r1, [r0, #0xf2] + ldrsh r1, [r2, #0x16] + strh r1, [r0, #0xf0] +_022C27B0: + mov r0, r5 + mov r1, r8 + mov r2, r4 + bl ov00_022C2444 + b _022C2914 +_022C27C4: + cmp r8, #0xb + bne _022C27EC + ldr r0, [r2] + cmp r0, #0xa + bne _022C2914 + mov r0, r5 + mov r1, r8 + mov r2, r4 + bl ov00_022C2444 + b _022C2914 +_022C27EC: + cmp r8, #5 + cmpne r8, #7 + bne _022C28A8 + ldr r0, [r2] + cmp r0, #4 + cmpne r0, #6 + bne _022C2914 + ldrb r3, [ip, #4] + ldrb r0, [ip, #5] + ldrb sb, [ip, #8] + ldrb lr, [ip, #9] + ldrb r7, [ip, #6] + orr r3, r3, r0, lsl #8 + ldrb r0, [ip, #0xa] + orr sb, sb, lr, lsl #8 + ldrb lr, [ip, #7] + orr r7, r3, r7, lsl #16 + ldrb r3, [ip, #0xb] + orr sb, sb, r0, lsl #16 + ldr r0, [r2, #0x14] + orr r7, r7, lr, lsl #24 + cmp r7, r0 + orr r7, sb, r3, lsl #24 + bne _022C2914 + ldrh r0, [r2, #8] + tst r0, r6, lsl r4 + beq _022C2914 + add r0, r5, #0xb8 + add sb, r0, r1 + ldr r0, [sb, #0xc] + cmp r7, r0 + blt _022C2884 + mov r0, r5 + mov r2, r4 + mov r1, #0xf + mov r3, #6 + bl ov00_022C19BC + b _022C2914 +_022C2884: + add r0, r5, #0x200 + ldrsh r2, [r0, #0xf0] + mov r0, sb + mov r1, r7 + add r3, ip, #0xc + bl ov00_022C1730 + cmp r0, #0 + strne r7, [sb, #0x14] + b _022C2914 +_022C28A8: + cmp r8, #9 + bne _022C2914 + ldr r0, [r2] + cmp r0, #4 + cmpne r0, #6 + bne _022C2914 + ldrb r3, [ip, #4] + ldrb r1, [ip, #5] + ldrb r7, [ip, #6] + ldrb sb, [ip, #7] + orr r1, r3, r1, lsl #8 + orr r1, r1, r7, lsl #16 + ldr r2, [r2, #0x14] + orr r1, r1, sb, lsl #24 + cmp r2, r1 + bne _022C2914 + cmp r0, #4 + moveq r1, #5 + movne r1, #7 + mov r0, r5 + mov r2, r4 + bl ov00_022C2444 + b _022C2914 +_022C2904: + mov r2, r4 + mov r1, #0xf + mov r3, #3 + bl ov00_022C19BC +_022C2914: + ldr r0, [r5, #0x30c] + tst r0, r6, lsl r4 + cmpne r8, #4 + cmpne r8, #6 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + mov r0, r5 + mov r1, r8 + mov r2, r4 + mov r3, #0 + bl ov00_022C19BC + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022C2940: .4byte 0x02318064 +_022C2944: .4byte 0x02318060 + arm_func_end ov00_022C2528 + + arm_func_start ov00_022C2948 +ov00_022C2948: @ 0x022C2948 push {r3, r4, r5, lr} mov r5, r0 - bl GetGameMode - cmp r0, #2 - bne _0204F424 - mov r0, r5 - bl DungeonSwapIdToIdx - bl GetDungeonModeSpecial - cmp r0, #2 - bne _0204F424 - add r1, sp, #2 - add r2, sp, #0 - mov r0, r5 - bl FUN_0205ee40 - cmp r0, #0 - beq _0204F424 - ldrsh r0, [sp] - cmp r0, #0 - movne r0, #0x21 - popne {r3, r4, r5, pc} - ldrh r0, [sp, #2] - cmp r0, #0 - movne r0, #0x41 - popne {r3, r4, r5, pc} -_0204F424: - cmp r5, #0x26 - cmpne r5, #0x29 - cmpne r5, #0x3f - cmpne r5, #0x63 - cmpne r5, #0x64 - cmpne r5, #0x65 - cmpne r5, #0x66 - cmpne r5, #0x67 - cmpne r5, #0x68 - cmpne r5, #0x6b - cmpne r5, #0x6c - cmpne r5, #0x6d - cmpne r5, #0x6e - cmpne r5, #0xae - ldreq r0, _0204F484 @ =0x00004001 - popeq {r3, r4, r5, pc} - mov r0, r5 + mov r4, r2 + str r1, [r5, #8] + str r4, [r5, #0xc] + mvn r0, #0 + str r0, [r5, #0x300] + str r0, [r5, #0x304] + str r0, [r5, #0x308] mov r1, #0 - bl FUN_0204f284 - mov r4, r0 + str r1, [r5] + str r1, [r5, #4] + strb r1, [r5, #0x2f8] + str r0, [r5, #0x2fc] + add r0, r5, #0x10 + mov r2, #0x9c + str r1, [r5, #0x30c] + bl FUN_0207C40C + add r0, r5, #0xac + mov r1, #0 + mov r2, #0x240 + bl FUN_0207C40C mov r0, r5 - bl FUN_0204f364 - orr r0, r4, r0 + mov r1, r4 + bl ov00_022C29B0 + pop {r3, r4, r5, pc} + arm_func_end ov00_022C2948 + + arm_func_start ov00_022C29B0 +ov00_022C29B0: @ 0x022C29B0 + mvn r2, #0 + str r2, [r0, #0x2ec] + add r2, r0, #0x200 + mov r3, #0 + strh r3, [r2, #0xf0] + strh r3, [r2, #0xf2] + str r3, [r0, #0x2f4] + str r1, [r0, #0xc] + ldr r3, [r0] + cmp r3, #0 + beq _022C29F8 + mov r1, #0 +_022C29E0: + ldr r2, [r3] + str r2, [r0] + str r1, [r3, #4] + ldr r3, [r0] + cmp r3, #0 + bne _022C29E0 +_022C29F8: + mov r2, #0 + str r2, [r0, #0x10] + strh r2, [r0, #0x18] + strh r2, [r0, #0x1a] + mov r1, r2 +_022C2A0C: + add r2, r2, #1 + strb r1, [r0, #0xae] + cmp r2, #0x10 + add r0, r0, #0x24 + blt _022C2A0C + bx lr + arm_func_end ov00_022C29B0 + + arm_func_start ov00_022C2A24 +ov00_022C2A24: @ 0x022C2A24 + push {r4, r5, r6, r7, r8, lr} + mov r7, r1 + mov r8, r0 + mov r6, r2 + mov r5, r3 + bl FUN_0207B7E4 + mov r4, r0 + cmp r7, #0 + beq _022C2A90 + ldr r0, [r8] + mov r1, r8 + cmp r0, #0 + beq _022C2A68 +_022C2A58: + ldr r1, [r1] + ldr r0, [r1] + cmp r0, #0 + bne _022C2A58 +_022C2A68: + str r7, [r1] + mov r0, #0 + str r0, [r7] + strh r6, [r7, #0xc] + str r5, [r7, #0xa0] + ldr r0, [r8] + cmp r0, r7 + bne _022C2A90 + mov r0, r8 + bl ov00_022C18C0 +_022C2A90: + mov r0, r4 + bl FUN_0207B7F8 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022C2A24 + + arm_func_start ov00_022C2A9C +ov00_022C2A9C: @ 0x022C2A9C + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sl, r0 + mov sb, r1 + bl FUN_0207B7E4 + ldr r6, [sl] + str r0, [sp] + cmp r6, #0 + addne r8, r6, #4 + moveq r8, #0 + cmp r8, #0 + beq _022C2BA8 + ldrh r0, [r8, #8] + mov fp, #0x10 + mov r7, #0 + and sb, sb, r0 + mov r4, fp + mov r5, #1 +_022C2AE0: + cmp sb, r5, lsl r7 + lsl r2, r5, r7 + blt _022C2B6C + tst r2, sb + mvneq r0, r2 + andeq sb, sb, r0 + beq _022C2B64 + ldr r0, [r6, #0xa0] + cmp r0, #0 + beq _022C2B34 + str r4, [r8, #4] + ldrh r3, [r8, #8] + mvn r0, r2 + mov r1, r8 + and r0, r3, r0 + strh r0, [r8, #8] + strh r2, [r8, #0xa] + ldr r0, [sl, #8] + ldr r2, [r6, #0xa0] + blx r2 + b _022C2B64 +_022C2B34: + ldr r0, [r8, #0x10] + cmp r0, #0 + beq _022C2B64 + str fp, [r8, #4] + ldrh r3, [r8, #8] + mvn r1, r2 + mov r0, r8 + and r1, r3, r1 + strh r1, [r8, #8] + strh r2, [r8, #0xa] + ldr r1, [r8, #0x10] + blx r1 +_022C2B64: + add r7, r7, #1 + b _022C2AE0 +_022C2B6C: + ldrh r0, [r8, #8] + cmp r0, #0 + bne _022C2BA8 + ldr r2, [sl] + sub r1, r5, #1 + ldr r0, [r2] + str r0, [sl] +_022C2B88: + ldr r0, [sl, #4] + subs r1, r1, #1 + str r0, [r2] + str r2, [sl, #4] + add r2, r2, #0xa4 + bpl _022C2B88 + mov r0, sl + bl ov00_022C18C0 +_022C2BA8: + ldr r0, [sp] + bl FUN_0207B7F8 + mov r0, sb + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022C2A9C + + arm_func_start ov00_022C2BB8 +ov00_022C2BB8: @ 0x022C2BB8 + push {r3, lr} + add r0, r0, #0x200 + ldrsh r2, [r0, #0xf0] + add r0, r1, r2 + mov r1, r2 + sub r0, r0, #1 + bl FUN_0208FEA4 + add r0, r0, #0x1f + bic r0, r0, #0x1f + lsl r0, r0, #2 + pop {r3, pc} + arm_func_end ov00_022C2BB8 + + arm_func_start ov00_022C2BE4 +ov00_022C2BE4: @ 0x022C2BE4 + push {r4, r5, r6, r7, r8, lr} + mov r8, r0 + mov r4, r1 + mov r7, r2 + mov r6, r3 + bl FUN_0207B7E4 + ldr r1, [r8, #0x2f4] + mov r5, r0 + cmp r1, #0 + add r0, r8, #0x2f4 + beq _022C2C20 +_022C2C10: + add r0, r1, #0x28 + ldr r1, [r1, #0x28] + cmp r1, #0 + bne _022C2C10 +_022C2C20: + str r4, [r0] + mov r1, #0 + str r1, [r4, #0x28] + ldr r0, [sp, #0x1c] + str r7, [r4] + str r0, [r4, #4] + cmp r6, #0 + mov r2, #0x20 + bne _022C2C50 + add r0, r4, #8 + bl FUN_0207C40C + b _022C2C5C +_022C2C50: + mov r0, r6 + add r1, r4, #8 + bl FUN_0207C4C8 +_022C2C5C: + ldr r0, [sp, #0x18] + mov r1, #0 + str r0, [r4, #0x2c] + cmp r0, #0 + strh r1, [r4, #0x30] + moveq r1, #1 + mov r0, r5 + strh r1, [r4, #0x32] + bl FUN_0207B7F8 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022C2BE4 + + arm_func_start ov00_022C2C84 +ov00_022C2C84: @ 0x022C2C84 + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r4, #0 + bl FUN_0207B7E4 + ldr r3, [r6, #0x2f4] + add r2, r6, #0x2f4 + cmp r3, #0 + beq _022C2CD4 +_022C2CA8: + ldr r1, [r3] + cmp r1, r5 + bne _022C2CC4 + ldr r1, [r3, #0x28] + mov r4, r3 + str r1, [r2] + b _022C2CD4 +_022C2CC4: + add r2, r3, #0x28 + ldr r3, [r3, #0x28] + cmp r3, #0 + bne _022C2CA8 +_022C2CD4: + bl FUN_0207B7F8 + mov r0, r4 + pop {r4, r5, r6, pc} + arm_func_end ov00_022C2C84 + + arm_func_start ov00_022C2CE0 +ov00_022C2CE0: @ 0x022C2CE0 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, #0 + bl FUN_0207B7E4 + ldr r1, [r5, #0x2f4] + cmp r1, #0 + beq _022C2D0C +_022C2CFC: + ldr r1, [r1, #0x28] + add r4, r4, #1 + cmp r1, #0 + bne _022C2CFC +_022C2D0C: + bl FUN_0207B7F8 + mov r0, r4 + pop {r3, r4, r5, pc} + arm_func_end ov00_022C2CE0 + + arm_func_start ov00_022C2D18 +ov00_022C2D18: @ 0x022C2D18 + ldr r0, _022C2D38 @ =0x0231EE88 + ldr r0, [r0, #0x440] + cmp r0, #0 + bxeq lr +_022C2D28: + ldr r0, [r0, #0x28] + cmp r0, #0 + bne _022C2D28 + bx lr + .align 2, 0 +_022C2D38: .4byte 0x0231EE88 + arm_func_end ov00_022C2D18 + + arm_func_start ov00_022C2D3C +ov00_022C2D3C: @ 0x022C2D3C + cmp r0, #0 + mvneq r0, #0 + bxeq lr + mvn r1, r0 + sub r0, r0, #1 + and r0, r1, r0 + clz r0, r0 + rsb r0, r0, #0x20 + bx lr + arm_func_end ov00_022C2D3C + + arm_func_start ov00_022C2D60 +ov00_022C2D60: @ 0x022C2D60 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + mov r6, r1 + mov r5, r2 + bl FUN_0207B7E4 + ldr r3, _022C2E0C @ =0x0231EE88 + mov r4, r0 + ldr r0, [r3] + cmp r0, #0 + bne _022C2E00 + mov r1, #0 + mov ip, #1 + ldr r0, _022C2E10 @ =0x0231EFD4 + mov r2, r1 + str ip, [r3] + bl ov00_022C2948 + ldr r3, _022C2E0C @ =0x0231EE88 + ldr r0, _022C2E14 @ =0x0231EE8C + mov r1, #0 + mov r2, #0x148 + str r5, [r3, #0x16c] + bl FUN_0207C40C + mov r0, #2 + sub r2, r0, #1 + ldr r3, _022C2E14 @ =0x0231EE8C + ldr r0, _022C2E0C @ =0x0231EE88 +_022C2DC8: + ldr r1, [r0, #0x150] + subs r2, r2, #1 + str r1, [r3] + str r3, [r0, #0x150] + add r3, r3, #0xa4 + bpl _022C2DC8 + ldr r1, _022C2E0C @ =0x0231EE88 + mov r2, #0 + ldr r0, _022C2E18 @ =0x0231F288 + str r2, [r1, #0x438] + sub r1, r7, #0xe + strh r1, [r0, #0x3e] + sub r1, r6, #0xe + strh r1, [r0, #0x3c] +_022C2E00: + mov r0, r4 + bl FUN_0207B7F8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022C2E0C: .4byte 0x0231EE88 +_022C2E10: .4byte 0x0231EFD4 +_022C2E14: .4byte 0x0231EE8C +_022C2E18: .4byte 0x0231F288 + arm_func_end ov00_022C2D60 + + arm_func_start ov00_022C2E1C +ov00_022C2E1C: @ 0x022C2E1C + push {r3, r4, r5, lr} + mov r5, r0 + bl FUN_0207B7E4 + ldr r3, _022C2EA0 @ =0x0231EE88 + mov r4, r0 + ldr r0, [r3] + cmp r0, #0 + bne _022C2E94 + mov r1, #0 + mov ip, #1 + ldr r0, _022C2EA4 @ =0x0231EFD4 + mov r2, r1 + str ip, [r3] + bl ov00_022C2948 + ldr r3, _022C2EA0 @ =0x0231EE88 + ldr r0, _022C2EA8 @ =0x0231EE8C + mov r1, #0 + mov r2, #0x148 + str r5, [r3, #0x16c] + bl FUN_0207C40C + mov r0, #2 + sub r2, r0, #1 + ldr r3, _022C2EA8 @ =0x0231EE8C + ldr r0, _022C2EA0 @ =0x0231EE88 +_022C2E7C: + ldr r1, [r0, #0x150] + subs r2, r2, #1 + str r1, [r3] + str r3, [r0, #0x150] + add r3, r3, #0xa4 + bpl _022C2E7C +_022C2E94: + mov r0, r4 + bl FUN_0207B7F8 pop {r3, r4, r5, pc} .align 2, 0 -_0204F484: .4byte 0x00004001 - arm_func_end CheckMissionRestrictions +_022C2EA0: .4byte 0x0231EE88 +_022C2EA4: .4byte 0x0231EFD4 +_022C2EA8: .4byte 0x0231EE8C + arm_func_end ov00_022C2E1C - arm_func_start FUN_0204f488 -FUN_0204f488: @ 0x0204F488 + arm_func_start ov00_022C2EAC +ov00_022C2EAC: @ 0x022C2EAC + push {r4, lr} + bl FUN_0207B7E4 + ldr r2, _022C2EE8 @ =0x0231EE88 + mov r4, r0 + ldr r0, [r2] + cmp r0, #0 + beq _022C2EDC + mov r1, #0 + str r1, [r2] + ldr r0, _022C2EEC @ =0x0231EFD4 + str r1, [r2, #0x16c] + bl ov00_022C29B0 +_022C2EDC: + mov r0, r4 + bl FUN_0207B7F8 + pop {r4, pc} + .align 2, 0 +_022C2EE8: .4byte 0x0231EE88 +_022C2EEC: .4byte 0x0231EFD4 + arm_func_end ov00_022C2EAC + + arm_func_start ov00_022C2EF0 +ov00_022C2EF0: @ 0x022C2EF0 + ldr r3, _022C2F1C @ =0x0231EFD4 + mvn r1, #0 + ldr r2, [r3, #0x2ec] + cmp r2, r1 + bxne lr + add r1, r3, #0x200 + mov r2, #0 + strh r2, [r1, #0xf2] + strh r2, [r1, #0xf0] + str r0, [r3, #0x2ec] + bx lr + .align 2, 0 +_022C2F1C: .4byte 0x0231EFD4 + arm_func_end ov00_022C2EF0 + + arm_func_start ov00_022C2F20 +ov00_022C2F20: @ 0x022C2F20 + ldr ip, _022C2F3C @ =ov00_022C2248 + mov r3, r0 + mov r2, r1 + mov r1, r3 + ldr r0, _022C2F40 @ =0x0231EFD4 + mov r3, #1 + bx ip + .align 2, 0 +_022C2F3C: .4byte ov00_022C2248 +_022C2F40: .4byte 0x0231EFD4 + arm_func_end ov00_022C2F20 + + arm_func_start ov00_022C2F44 +ov00_022C2F44: @ 0x022C2F44 + ldr ip, _022C2F60 @ =ov00_022C2248 + mov r3, r0 + mov r2, r1 + mov r1, r3 + ldr r0, _022C2F64 @ =0x0231EFD4 + mov r3, #0 + bx ip + .align 2, 0 +_022C2F60: .4byte ov00_022C2248 +_022C2F64: .4byte 0x0231EFD4 + arm_func_end ov00_022C2F44 + + arm_func_start ov00_022C2F68 +ov00_022C2F68: @ 0x022C2F68 + push {r3, lr} + mov ip, r0 + mov r3, r1 + mov r1, r2 + ldr r0, _022C2F88 @ =0x0231EFD4 + mov r2, ip + bl ov00_022C251C + pop {r3, pc} + .align 2, 0 +_022C2F88: .4byte 0x0231EFD4 + arm_func_end ov00_022C2F68 + + arm_func_start ov00_022C2F8C +ov00_022C2F8C: @ 0x022C2F8C + ldr ip, _022C2FA4 @ =ov00_022C251C + mov r2, r0 + mov r3, r1 + ldr r0, _022C2FA8 @ =0x0231EFD4 + mov r1, #0 + bx ip + .align 2, 0 +_022C2FA4: .4byte ov00_022C251C +_022C2FA8: .4byte 0x0231EFD4 + arm_func_end ov00_022C2F8C + + arm_func_start ov00_022C2FAC +ov00_022C2FAC: @ 0x022C2FAC + push {r3, r4, r5, lr} + sub sp, sp, #8 + mov r5, r0 + mov r4, r1 + mov lr, r2 + str r3, [sp] + ldr ip, [sp, #0x18] + ldr r0, _022C2FEC @ =0x0231EFD4 + mov r1, r5 + mov r2, r4 + mov r3, lr + str ip, [sp, #4] + bl ov00_022C2BE4 + mov r0, #1 + add sp, sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_022C2FEC: .4byte 0x0231EFD4 + arm_func_end ov00_022C2FAC + + arm_func_start ov00_022C2FF0 +ov00_022C2FF0: @ 0x022C2FF0 + ldr ip, _022C3000 @ =ov00_022C2C84 + mov r1, r0 + ldr r0, _022C3004 @ =0x0231EFD4 + bx ip + .align 2, 0 +_022C3000: .4byte ov00_022C2C84 +_022C3004: .4byte 0x0231EFD4 + arm_func_end ov00_022C2FF0 + + arm_func_start ov00_022C3008 +ov00_022C3008: @ 0x022C3008 + push {r4, lr} + ldr r3, _022C3064 @ =0x0231EE88 + mov r2, r0 + ldr r4, [r3, #0x150] + cmp r4, #0 + beq _022C3030 + ldr ip, [r4] + mov r0, #0 + str ip, [r3, #0x150] + str r0, [r4] +_022C3030: + cmp r4, #0 + beq _022C3054 + ldr r0, _022C3068 @ =0x0231EFD4 + str r1, [r4, #0x14] + mov ip, #2 + mov r1, r4 + mov r3, #0 + str ip, [r4, #4] + bl ov00_022C2A24 +_022C3054: + cmp r4, #0 + movne r0, #1 + moveq r0, #0 + pop {r4, pc} + .align 2, 0 +_022C3064: .4byte 0x0231EE88 +_022C3068: .4byte 0x0231EFD4 + arm_func_end ov00_022C3008 + + arm_func_start ov00_022C306C +ov00_022C306C: @ 0x022C306C + push {r3, r4, r5, lr} + ldr lr, _022C3104 @ =0x0231EE88 + mov ip, r0 + ldr r4, [lr, #0x150] + cmp r4, #0 + beq _022C3094 + ldr r5, [r4] + mov r0, #0 + str r5, [lr, #0x150] + str r0, [r4] +_022C3094: + cmp r4, #0 + beq _022C30F4 + str r3, [r4, #0x14] + str r1, [r4, #0x18] + add r5, r4, #0x18 + mov r0, #0x28 + ldr lr, _022C3108 @ =0x0231F2E4 + str r0, [r5, #4] + mov r3, #0 +_022C30B8: + add r1, r5, r3, lsl #2 + str lr, [r1, #0x48] + ldr r0, [r2, r3, lsl #2] + add r3, r3, #1 + str r0, [r1, #8] + cmp r3, #0x10 + add lr, lr, #0x28 + blt _022C30B8 + ldr r0, _022C310C @ =0x0231EFD4 + mov lr, #6 + mov r1, r4 + mov r2, ip + mov r3, #0 + str lr, [r4, #4] + bl ov00_022C2A24 +_022C30F4: + cmp r4, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022C3104: .4byte 0x0231EE88 +_022C3108: .4byte 0x0231F2E4 +_022C310C: .4byte 0x0231EFD4 + arm_func_end ov00_022C306C + + arm_func_start ov00_022C3110 +ov00_022C3110: @ 0x022C3110 + push {r4, r5, r6, r7, r8, lr} + ldr r5, _022C31CC @ =0x0231EE88 + mov lr, r0 + ldr r4, [r5, #0x150] + mov ip, r2 + cmp r4, #0 + beq _022C313C + ldr r2, [r4] + mov r0, #0 + str r2, [r5, #0x150] + str r0, [r4] +_022C313C: + cmp r4, #0 + beq _022C31BC + ldr r0, [sp, #0x1c] + add r8, r4, #0x20 + str r0, [r4, #0x14] + str r1, [r4, #0x18] + str r3, [r4, #0x1c] + ldm ip!, {r0, r1, r2, r3} + stm r8!, {r0, r1, r2, r3} + ldm ip!, {r0, r1, r2, r3} + stm r8!, {r0, r1, r2, r3} + ldr r7, [sp, #0x18] + add r6, r4, #0x60 + mov r5, #4 + ldm ip!, {r0, r1, r2, r3} + stm r8!, {r0, r1, r2, r3} + ldm ip, {r0, r1, r2, r3} + stm r8, {r0, r1, r2, r3} + ldm r7!, {r0, r1, r2, r3} + stm r6!, {r0, r1, r2, r3} + ldm r7!, {r0, r1, r2, r3} + stm r6!, {r0, r1, r2, r3} + ldm r7!, {r0, r1, r2, r3} + stm r6!, {r0, r1, r2, r3} + ldm r7, {r0, r1, r2, r3} + stm r6, {r0, r1, r2, r3} + str r5, [r4, #4] + mov r2, lr + ldr r0, _022C31D0 @ =0x0231EFD4 + mov r1, r4 + mov r3, #0 + bl ov00_022C2A24 +_022C31BC: + cmp r4, #0 + movne r0, #1 + moveq r0, #0 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022C31CC: .4byte 0x0231EE88 +_022C31D0: .4byte 0x0231EFD4 + arm_func_end ov00_022C3110 + + arm_func_start ov00_022C31D4 +ov00_022C31D4: @ 0x022C31D4 + push {r3, r4, r5, lr} + ldr ip, _022C3244 @ =0x0231EE88 + mov r5, r0 + ldr r4, [ip, #0x150] + cmp r4, #0 + beq _022C31FC + ldr lr, [r4] + mov r0, #0 + str lr, [ip, #0x150] + str r0, [r4] +_022C31FC: + cmp r4, #0 + beq _022C3234 + mov r0, r1 + str r3, [r4, #0x14] + add r1, r4, #0x18 + strb r2, [r4, #0x21] + bl FUN_0207C4C8 + mov ip, #0xa + ldr r0, _022C3248 @ =0x0231EFD4 + mov r1, r4 + mov r2, r5 + mov r3, #0 + str ip, [r4, #4] + bl ov00_022C2A24 +_022C3234: + cmp r4, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022C3244: .4byte 0x0231EE88 +_022C3248: .4byte 0x0231EFD4 + arm_func_end ov00_022C31D4 + + arm_func_start ov00_022C324C +ov00_022C324C: @ 0x022C324C + push {r3, lr} + mov r1, r0 + ldr r0, _022C326C @ =0x0231EFD4 + bl ov00_022C2A9C + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, pc} + .align 2, 0 +_022C326C: .4byte 0x0231EFD4 + arm_func_end ov00_022C324C +_022C3270: + .byte 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1, 0x59, 0xE1, 0xF6, 0xEB, 0x10, 0x10, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x91, 0xE5, 0x01, 0x1A, 0x81, 0xE2, 0xE4, 0x44, 0x81, 0xE5, 0x59, 0xE1, 0xF6, 0xEB + .byte 0x10, 0x80, 0xBD, 0xE8, 0x2C, 0x50, 0x32, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x3C, 0x10, 0x9F, 0xE5 + .byte 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x10, 0x91, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x09, 0x00, 0x00, 0x0A + .byte 0xEB, 0x04, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x1C, 0x00, 0x9F, 0xE5 + .byte 0x01, 0x10, 0x44, 0xE2, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x01, 0x80, 0xE0, 0x01, 0x0A, 0x80, 0xE2 + .byte 0xE8, 0x04, 0x90, 0xE5, 0x10, 0x80, 0xBD, 0xE8, 0x00, 0x00, 0xA0, 0xE3, 0x10, 0x80, 0xBD, 0xE8 + .byte 0x2C, 0x50, 0x32, 0x02, 0x38, 0x40, 0x2D, 0xE9, 0x00, 0x50, 0xA0, 0xE1, 0x3C, 0xE1, 0xF6, 0xEB + .byte 0x6C, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x13, 0x00, 0x00, 0x0A, 0x05, 0x00, 0xA0, 0xE1, 0xD5, 0x04, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x0F, 0x00, 0x00, 0x0A, 0x48, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0x45, 0xE2, 0x00, 0x30, 0x90, 0xE5 + .byte 0x16, 0x20, 0xA0, 0xE3, 0x4D, 0x0D, 0x83, 0xE2, 0x91, 0x02, 0x20, 0xE0, 0x72, 0x10, 0x83, 0xE2 + .byte 0x17, 0x1C, 0x81, 0xE2, 0x63, 0xE4, 0xF6, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x2D, 0xE1, 0xF6, 0xEB + .byte 0x1C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x72, 0x00, 0x80, 0xE2, 0x17, 0x0C, 0x80, 0xE2 + .byte 0x38, 0x80, 0xBD, 0xE8, 0x04, 0x00, 0xA0, 0xE1, 0x26, 0xE1, 0xF6, 0xEB, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x38, 0x80, 0xBD, 0xE8, 0x2C, 0x50, 0x32, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x44, 0x10, 0x9F, 0xE5 + .byte 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x10, 0x91, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x0B, 0x00, 0x00, 0x0A + .byte 0xB7, 0x04, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x0A, 0x24, 0x00, 0x9F, 0xE5 + .byte 0x01, 0x10, 0x44, 0xE2, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x01, 0x80, 0xE0, 0x01, 0x0A, 0x80, 0xE2 + .byte 0xE8, 0x04, 0x90, 0xE5, 0x07, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x10, 0x80, 0xBD, 0x08 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x10, 0x80, 0xBD, 0xE8, 0x2C, 0x50, 0x32, 0x02, 0xF8, 0x40, 0x2D, 0xE9 + .byte 0x01, 0x40, 0xA0, 0xE1, 0x00, 0x70, 0xA0, 0xE1, 0x05, 0xE1, 0xF6, 0xEB, 0x00, 0x60, 0xA0, 0xE1 + .byte 0x03, 0x00, 0x54, 0xE3, 0x04, 0xF1, 0x8F, 0x90, 0x0F, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA + .byte 0x04, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x00, 0xEA, 0x0A, 0x50, 0xA0, 0xE3 + .byte 0x04, 0x40, 0xA0, 0xE3, 0x0C, 0x00, 0x00, 0xEA, 0x0A, 0x50, 0xA0, 0xE3, 0x03, 0x40, 0xA0, 0xE3 + .byte 0x09, 0x00, 0x00, 0xEA, 0x0E, 0x50, 0xA0, 0xE3, 0x02, 0x40, 0xA0, 0xE3, 0x06, 0x00, 0x00, 0xEA + .byte 0x07, 0x50, 0xA0, 0xE3, 0x05, 0x40, 0xA0, 0xE3, 0x03, 0x00, 0x00, 0xEA, 0x06, 0x00, 0xA0, 0xE1 + .byte 0xF4, 0xE0, 0xF6, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0xF8, 0x80, 0xBD, 0xE8, 0x64, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x12, 0x00, 0x00, 0x0A, 0x07, 0x00, 0xA0, 0xE1 + .byte 0x87, 0x04, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0E, 0x00, 0x00, 0x0A, 0x44, 0x00, 0x9F, 0xE5 + .byte 0x01, 0x20, 0x47, 0xE2, 0x00, 0x10, 0x90, 0xE5, 0x02, 0x01, 0x81, 0xE0, 0x01, 0x0A, 0x80, 0xE2 + .byte 0xE8, 0x04, 0x90, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0x06, 0x00, 0x00, 0x1A, 0x82, 0x00, 0x81, 0xE0 + .byte 0x17, 0x1C, 0x80, 0xE2, 0x06, 0x00, 0xA0, 0xE1, 0xB4, 0x45, 0xC1, 0xE1, 0xDD, 0xE0, 0xF6, 0xEB + .byte 0x01, 0x00, 0xA0, 0xE3, 0xF8, 0x80, 0xBD, 0xE8, 0x06, 0x00, 0xA0, 0xE1, 0xD9, 0xE0, 0xF6, 0xEB + .byte 0x00, 0x00, 0xA0, 0xE3, 0xF8, 0x80, 0xBD, 0xE8, 0x2C, 0x50, 0x32, 0x02 + + arm_func_start ov00_022C349C +ov00_022C349C: @ 0x022C349C + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl ov00_022C4664 + cmp r0, #0 + beq _022C34D0 + ldr r0, _022C34E4 @ =0x0232502C + sub r1, r6, #1 + ldr r0, [r0] + add r0, r0, r1, lsl #2 + add r0, r0, #0x1000 + str r5, [r0, #0x4e8] +_022C34D0: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov00_022C34E8 + pop {r4, r5, r6, pc} + .align 2, 0 +_022C34E4: .4byte 0x0232502C + arm_func_end ov00_022C349C + + arm_func_start ov00_022C34E8 +ov00_022C34E8: @ 0x022C34E8 + push {r3, lr} + ldr r3, _022C350C @ =0x0232502C + ldr r3, [r3] + add r3, r3, #0x1000 + ldr r3, [r3, #0x4e4] + cmp r3, #0 + popeq {r3, pc} + blx r3 + pop {r3, pc} + .align 2, 0 +_022C350C: .4byte 0x0232502C + arm_func_end ov00_022C34E8 + + arm_func_start ov00_022C3510 +ov00_022C3510: @ 0x022C3510 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r5, r0 + mov r4, r1 + cmp r5, #0x19 + bgt _022C3568 + bge _022C37AC + cmp r5, #0x11 + bgt _022C355C + bge _022C3960 + cmp r5, #3 + bgt _022C3960 + cmp r5, #0 + blt _022C3960 + beq _022C35A0 + cmp r5, #1 + beq _022C35C4 + cmp r5, #3 + beq _022C37A0 + b _022C3960 +_022C355C: + cmp r5, #0x15 + beq _022C358C + b _022C3960 +_022C3568: + cmp r5, #0xff + bgt _022C3580 + bge _022C384C + cmp r5, #0x1c + beq _022C37B4 + b _022C3960 +_022C3580: + cmp r5, #0x100 + beq _022C38BC + b _022C3960 +_022C358C: + mov r2, r4 + mov r0, #0 + mov r1, #1 + bl ov00_022C349C + b _022C3960 +_022C35A0: + ldrh r0, [r4, #0x10] + cmp r0, #0 + beq _022C3960 + cmp r0, #0x10 + bhs _022C3960 + mov r2, r4 + mov r1, #2 + bl ov00_022C349C + b _022C3960 +_022C35C4: + ldrh r0, [r4, #0x10] + cmp r0, #0 + beq _022C3960 + cmp r0, #0x10 + bhs _022C3960 + ldr r2, _022C39A8 @ =0x0232502C + sub r0, r0, #1 + ldr r3, [r2] + mov r1, #0 + add r0, r3, r0, lsl #1 + add r0, r0, #0x1400 + strh r1, [r0, #0x8a] + ldr r0, [r2] + ldrh r2, [r4, #0x10] + add r0, r0, #0xa8 + add r3, r0, #0x1400 + sub r0, r2, #1 + add r0, r3, r0, lsl #2 + mov r2, #4 + bl FUN_0207C40C + ldr r0, _022C39A8 @ =0x0232502C + ldrh r1, [r4, #0x10] + ldr r0, [r0] + mov r2, #0x16 + add r0, r0, #0x1340 + sub r1, r1, #1 + mla r0, r1, r2, r0 + mov r1, #0 + bl FUN_0207C40C + ldrh r0, [r4, #0x10] + bl ov00_022C7E70 + ldrh r1, [r4, #0x10] + ldr r0, _022C39A8 @ =0x0232502C + mov r3, #0 + ldr r2, [r0] + sub r1, r1, #1 + add r1, r2, r1, lsl #1 + add r1, r1, #0x1700 + strh r3, [r1, #0x54] + ldrh r7, [r4, #0x10] + ldr r8, [r0] + sub r2, r3, #1 + sub r6, r7, #1 + add r1, r8, r6 + add r1, r1, #0x1500 + ldrsb r3, [r1, #0x26] + cmp r3, r2 + beq _022C36F0 + ldr r1, _022C39AC @ =0x000005D4 + and r2, r3, #0xff + mul r1, r2, r1 + add r2, r8, r1 + add r8, r2, #0x1d00 + mov r3, #1 + ldrh sb, [r8, #0x4e] + mvn r2, r3, lsl r7 + and sb, sb, r2 + strh sb, [r8, #0x4e] + ldr r8, [r0] + sub sb, r3, #2 + add r8, r8, r1 + add r8, r8, #0x1d00 + ldrh ip, [r8, #0x50] + orr r3, ip, r3, lsl r7 + strh r3, [r8, #0x50] + ldr r3, [r0] + add r3, r3, r6 + add r3, r3, #0x1000 + strb sb, [r3, #0x526] + ldr r0, [r0] + add r0, r0, r1 + add r0, r0, #0x1d00 + ldrh r1, [r0, #0x4c] + and r1, r1, r2 + strh r1, [r0, #0x4c] +_022C36F0: + ldr r1, _022C39A8 @ =0x0232502C + ldrh r2, [r4, #0x10] + ldr r6, [r1] + mov r3, #1 + add r0, r6, #0x1500 + ldrh r0, [r0, #0x36] + tst r0, r3, lsl r2 + beq _022C373C + add r0, r6, #0x1000 + ldrb r2, [r0, #0x535] + sub r2, r2, #1 + strb r2, [r0, #0x535] + ldr r0, [r1] + ldrh r1, [r4, #0x10] + add r0, r0, #0x1500 + ldrh r2, [r0, #0x36] + mvn r1, r3, lsl r1 + and r1, r2, r1 + strh r1, [r0, #0x36] +_022C373C: + ldrh r0, [r4, #0x10] + ldr r1, _022C39A8 @ =0x0232502C + ldr r2, [r1] + sub r1, r0, #1 + add r1, r2, r1, lsl #2 + add r1, r1, #0x1000 + ldr r1, [r1, #0x4e8] + cmp r1, #8 + bne _022C376C + mov r1, #9 + mov r2, #0 + bl ov00_022C349C +_022C376C: + ldrh r0, [r4, #0x10] + mov r2, r4 + mov r1, #3 + bl ov00_022C349C + ldrh r1, [r4, #0x10] + ldr r0, _022C39A8 @ =0x0232502C + mov r3, #0 + ldr r2, [r0] + sub r0, r1, #1 + add r0, r2, r0, lsl #2 + add r0, r0, #0x1000 + str r3, [r0, #0x4e8] + b _022C3960 +_022C37A0: + mov r0, r4 + bl ov00_022C3E94 + b _022C3960 +_022C37AC: + bl ov00_022C4458 + b _022C3960 +_022C37B4: + mov r8, #0 + ldr r6, _022C39A8 @ =0x0232502C + ldr r4, _022C39AC @ =0x000005D4 + mov r7, r8 +_022C37C4: + mul sb, r8, r4 + ldr r1, [r6] + add r2, r1, sb + add r0, r2, #0x1000 + ldrb r0, [r0, #0xd52] + cmp r0, #0 + addne r2, r2, #0x1d00 + ldrhne r3, [r2, #0x50] + cmpne r3, #0 + beq _022C3814 + add r0, r1, #0x6c + add r0, r0, #0x1800 + ldrh r2, [r2, #0x4e] + add r0, r0, sb + add r1, r1, #0x1340 + bl ov00_022C5590 + ldr r0, [r6] + add r0, r0, sb + add r0, r0, #0x1d00 + strh r7, [r0, #0x50] +_022C3814: + add r0, r8, #1 + and r8, r0, #0xff + cmp r8, #0x10 + blo _022C37C4 + bl ov00_022C78A0 + mov r6, r0 + bl ov00_022C78B4 + mov r4, r0 + bl ov00_022C78C8 + mov r2, r0 + mov r0, r6 + mov r1, r4 + bl ov00_022C56BC + b _022C3960 +_022C384C: + ldrh r0, [r4, #2] + cmp r0, #0xf + addls pc, pc, r0, lsl #2 + b _022C38AC +_022C385C: @ jump table + b _022C38AC @ case 0 + b _022C389C @ case 1 + b _022C38AC @ case 2 + b _022C38AC @ case 3 + b _022C389C @ case 4 + b _022C389C @ case 5 + b _022C389C @ case 6 + b _022C38AC @ case 7 + b _022C389C @ case 8 + b _022C389C @ case 9 + b _022C38AC @ case 10 + b _022C38AC @ case 11 + b _022C38AC @ case 12 + b _022C38AC @ case 13 + b _022C38AC @ case 14 + b _022C38AC @ case 15 +_022C389C: + mov r0, #0 + mov r1, #9 + bl ov00_022C4680 + b _022C3960 +_022C38AC: + mov r0, #0 + mov r1, #8 + bl ov00_022C4680 + b _022C3960 +_022C38BC: + ldrh r0, [r4] + cmp r0, #0x1d + addls pc, pc, r0, lsl #2 + b _022C3954 +_022C38CC: @ jump table + b _022C3944 @ case 0 + b _022C3954 @ case 1 + b _022C3954 @ case 2 + b _022C3954 @ case 3 + b _022C3954 @ case 4 + b _022C3954 @ case 5 + b _022C3954 @ case 6 + b _022C3944 @ case 7 + b _022C3944 @ case 8 + b _022C3954 @ case 9 + b _022C3954 @ case 10 + b _022C3954 @ case 11 + b _022C3954 @ case 12 + b _022C3944 @ case 13 + b _022C3944 @ case 14 + b _022C3944 @ case 15 + b _022C3954 @ case 16 + b _022C3944 @ case 17 + b _022C3944 @ case 18 + b _022C3954 @ case 19 + b _022C3954 @ case 20 + b _022C3944 @ case 21 + b _022C3954 @ case 22 + b _022C3954 @ case 23 + b _022C3954 @ case 24 + b _022C3944 @ case 25 + b _022C3954 @ case 26 + b _022C3954 @ case 27 + b _022C3954 @ case 28 + b _022C3944 @ case 29 +_022C3944: + mov r0, #0 + mov r1, #9 + bl ov00_022C4680 + b _022C3960 +_022C3954: + mov r0, #0 + mov r1, #8 + bl ov00_022C4680 +_022C3960: + cmp r5, #0x11 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + ldr r1, _022C39A8 @ =0x0232502C + mov r0, #0 + ldr r1, [r1] + mov r2, #0x7d00 + add r3, r1, #0x1000 + ldr r4, [r3, #0x4e4] + bl FUN_0207C358 + ldr r1, _022C39A8 @ =0x0232502C + mov r0, #0 + str r0, [r1] + cmp r4, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + mov r2, r0 + mov r1, #0xc + blx r4 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022C39A8: .4byte 0x0232502C +_022C39AC: .4byte 0x000005D4 + arm_func_end ov00_022C3510 + + arm_func_start ov00_022C39B0 +ov00_022C39B0: @ 0x022C39B0 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x34 + movs r6, r1 + addeq sp, sp, #0x34 + popeq {r3, r4, r5, r6, r7, r8, pc} + cmp r6, #0xf + addhi sp, sp, #0x34 + pophi {r3, r4, r5, r6, r7, r8, pc} + add r1, sp, #0x20 + mov r2, r6 + add r0, r0, #0xa + bl ov00_022C7F38 + ldr r1, _022C3E88 @ =0x0232502C + ldrb r7, [sp, #0x20] + ldr r2, [r1] + sub r3, r6, #1 + add r4, r2, r3, lsl #2 + add r4, r4, #0x1000 + ldr r4, [r4, #0x4e8] + mov r5, r0 + cmp r7, #0xb + addls pc, pc, r7, lsl #2 + b _022C3E80 +_022C3A0C: @ jump table + b _022C3E80 @ case 0 + b _022C3E80 @ case 1 + b _022C3E80 @ case 2 + b _022C3E80 @ case 3 + b _022C3E80 @ case 4 + b _022C3E80 @ case 5 + b _022C3E80 @ case 6 + b _022C3A3C @ case 7 + b _022C3CD4 @ case 8 + b _022C3D7C @ case 9 + b _022C3DEC @ case 10 + b _022C3E80 @ case 11 +_022C3A3C: + cmp r4, #2 + bne _022C3AE4 + cmp r5, #0 + addeq sp, sp, #0x34 + popeq {r3, r4, r5, r6, r7, r8, pc} + add r1, sp, #0 + mov r2, #0x1d + bl FUN_0207C4C8 + ldr r2, _022C3E88 @ =0x0232502C + sub r0, r6, #1 + ldr r1, [r2] + ldr r3, [sp] + add r1, r1, r0, lsl #2 + add r1, r1, #0x1000 + str r3, [r1, #0x4a8] + ldr r1, [r2] + ldrh r3, [sp, #0x1a] + add r1, r1, r0, lsl #1 + add r1, r1, #0x1400 + strh r3, [r1, #0x8a] + ldr r1, [r2] + mov r2, #0x16 + add r1, r1, #0x1340 + mla r1, r0, r2, r1 + add r0, sp, #4 + bl FUN_0207C4C8 + ldr r0, _022C3E88 @ =0x0232502C + sub r2, r6, #1 + ldr r3, [r0] + mov r0, #0x16 + mul r7, r2, r0 + add r8, r3, #0x1340 + and r1, r6, #0xff + ldrb r3, [r8, r7] + lsl r0, r1, #0x1c + add r2, sp, #4 + bic r1, r3, #0xf0 + orr r1, r1, r0, lsr #24 + strb r1, [r8, r7] + mov r0, r6 + mov r1, #0xa + bl ov00_022C349C +_022C3AE4: + cmp r4, #0xa + addne sp, sp, #0x34 + popne {r3, r4, r5, r6, r7, r8, pc} + ldrb lr, [r5, #0x1c] + mov r0, #0 + cmp lr, #0x10 + bhs _022C3B40 + ldr r2, _022C3E88 @ =0x0232502C + ldr r1, _022C3E8C @ =0x000005D4 + ldr r3, [r2] + mla r4, lr, r1, r3 + add r1, r4, #0x1000 + ldrb r2, [r1, #0xd52] + cmp r2, #0 + beq _022C3B40 + sub r2, r6, #1 + add r3, r3, r2, lsl #2 + ldr r2, [r1, #0xd40] + add r1, r3, #0x1000 + ldr r3, [r1, #0x4a8] + ldr r1, [r2, #0x14] + cmp r3, r1 + beq _022C3B60 +_022C3B40: + ldr r0, _022C3E88 @ =0x0232502C + sub r1, r6, #1 + ldr r0, [r0] + mov r2, #4 + add r0, r0, r1, lsl #1 + add r0, r0, #0x1700 + strh r2, [r0, #0x54] + b _022C3BDC +_022C3B60: + mov r5, r0 + add r1, r4, #0x1d00 + mov r3, #1 + b _022C3B88 +_022C3B70: + ldrh r2, [r1, #0x4e] + tst r2, r3, lsl r5 + addne r0, r0, #1 + add r2, r5, #1 + andne r0, r0, #0xff + and r5, r2, #0xff +_022C3B88: + cmp r5, #0x10 + blo _022C3B70 + ldr r2, _022C3E88 @ =0x0232502C + ldr r1, _022C3E8C @ =0x000005D4 + ldr r2, [r2] + mla r1, lr, r1, r2 + add r1, r1, #0x1000 + ldr r1, [r1, #0xd40] + ldrb r1, [r1, #0x18] + cmp r0, r1 + blo _022C3BDC + sub r0, r6, #1 + add r1, r2, r0, lsl #1 + add r3, r1, #0x1700 + mov r2, #0 + mov r0, r6 + mov r1, #0xb + strh r2, [r3, #0x54] + bl ov00_022C349C + add sp, sp, #0x34 + pop {r3, r4, r5, r6, r7, r8, pc} +_022C3BDC: + ldr r3, _022C3E88 @ =0x0232502C + sub ip, r6, #1 + ldr r1, [r3] + add r0, r1, ip, lsl #1 + add r4, r0, #0x1700 + ldrh r0, [r4, #0x54] + cmp r0, #3 + beq _022C3C0C + cmp r0, #4 + beq _022C3CB8 + add sp, sp, #0x34 + pop {r3, r4, r5, r6, r7, r8, pc} +_022C3C0C: + add r0, r1, #0x1500 + ldrh r0, [r0, #0x36] + mov r5, #1 + tst r0, r5, lsl r6 + addne sp, sp, #0x34 + popne {r3, r4, r5, r6, r7, r8, pc} + add r1, r1, #0x1000 + ldrb r4, [r1, #0x535] + ldr r2, _022C3E8C @ =0x000005D4 + mov r0, r6 + add r4, r4, #1 + strb r4, [r1, #0x535] + ldr r1, [r3] + mul r4, lr, r2 + add r7, r1, #0x1500 + ldrh r8, [r7, #0x36] + mov r2, #0 + mov r1, #5 + orr r8, r8, r5, lsl r6 + strh r8, [r7, #0x36] + ldr r7, [r3] + add r7, r7, ip + add r7, r7, #0x1000 + strb lr, [r7, #0x526] + ldr r7, [r3] + add r7, r7, #0x4e + add lr, r7, #0x1d00 + ldrh r7, [lr, r4] + orr r7, r7, r5, lsl r6 + strh r7, [lr, r4] + ldr r7, [r3] + add r7, r7, #0xd50 + add lr, r7, #0x1000 + ldrh r7, [lr, r4] + orr r5, r7, r5, lsl r6 + strh r5, [lr, r4] + ldr r3, [r3] + add r3, r3, ip, lsl #1 + add r3, r3, #0x1700 + strh r2, [r3, #0x54] + bl ov00_022C349C + add sp, sp, #0x34 + pop {r3, r4, r5, r6, r7, r8, pc} +_022C3CB8: + mov r2, #0 + mov r0, r6 + mov r1, #4 + strh r2, [r4, #0x54] + bl ov00_022C349C + add sp, sp, #0x34 + pop {r3, r4, r5, r6, r7, r8, pc} +_022C3CD4: + cmp r4, #5 + bne _022C3CF4 + mov r0, r6 + mov r1, #0xe + mov r2, #0 + bl ov00_022C349C + add sp, sp, #0x34 + pop {r3, r4, r5, r6, r7, r8, pc} +_022C3CF4: + cmp r4, #0xe + addne sp, sp, #0x34 + popne {r3, r4, r5, r6, r7, r8, pc} + add r0, r2, r3, lsl #1 + add r0, r0, #0x1700 + ldrh r0, [r0, #0x54] + cmp r0, #2 + addne sp, sp, #0x34 + popne {r3, r4, r5, r6, r7, r8, pc} + add r0, r2, r3 + add r0, r0, #0x1000 + ldrb r7, [r0, #0x526] + ldr r4, _022C3E8C @ =0x000005D4 + add r0, r2, #0x14c + mul r5, r7, r4 + add r7, r0, #0x1c00 + ldrh r4, [r7, r5] + mov r0, #1 + mov r2, #0 + orr r0, r4, r0, lsl r6 + strh r0, [r7, r5] + ldr r4, [r1] + mov r0, r6 + add r4, r4, r5 + add r4, r4, #0x1d00 + strh r2, [r4, #0x48] + ldr r4, [r1] + mov r1, #6 + add r3, r4, r3, lsl #1 + add r3, r3, #0x1700 + strh r2, [r3, #0x54] + bl ov00_022C349C + add sp, sp, #0x34 + pop {r3, r4, r5, r6, r7, r8, pc} +_022C3D7C: + cmp r4, #6 + addne sp, sp, #0x34 + popne {r3, r4, r5, r6, r7, r8, pc} + add r0, r2, r3 + add r0, r0, #0x1000 + ldrb r4, [r0, #0x526] + cmp r4, #0xff + addeq sp, sp, #0x34 + popeq {r3, r4, r5, r6, r7, r8, pc} + ldr r0, _022C3E8C @ =0x000005D4 + ldrh r1, [sp, #0x22] + mla r0, r4, r0, r2 + add r0, r0, #0x1d00 + ldrh r0, [r0, #0x4a] + bl ov00_022C4654 + ldr r2, _022C3E88 @ =0x0232502C + ldr r1, _022C3E8C @ =0x000005D4 + ldr r3, [r2] + ldr r2, _022C3E90 @ =0x0231F564 + mla r1, r4, r1, r3 + add r1, r1, #0x1d00 + strh r0, [r1, #0x4a] + ldr r1, [r2] + mov r0, #1 + orr r0, r1, r0, lsl r4 + str r0, [r2] + add sp, sp, #0x34 + pop {r3, r4, r5, r6, r7, r8, pc} +_022C3DEC: + cmp r4, #6 + bne _022C3E48 + add r0, r2, r3 + add r0, r0, #0x1000 + ldrb r3, [r0, #0x526] + cmp r3, #0xff + addeq sp, sp, #0x34 + popeq {r3, r4, r5, r6, r7, r8, pc} + ldr r1, _022C3E8C @ =0x000005D4 + add r0, r2, #0x14c + mul r4, r3, r1 + add r5, r0, #0x1c00 + mov r0, #1 + ldrh r1, [r5, r4] + mvn r0, r0, lsl r6 + and r3, r1, r0 + mov r0, r6 + mov r1, #7 + mov r2, #0 + strh r3, [r5, r4] + bl ov00_022C349C + add sp, sp, #0x34 + pop {r3, r4, r5, r6, r7, r8, pc} +_022C3E48: + cmp r4, #7 + addne sp, sp, #0x34 + popne {r3, r4, r5, r6, r7, r8, pc} + add r0, r2, r3, lsl #1 + add r3, r0, #0x1700 + ldrh r0, [r3, #0x54] + cmp r0, #5 + addne sp, sp, #0x34 + popne {r3, r4, r5, r6, r7, r8, pc} + mov r2, #0 + mov r0, r6 + mov r1, #8 + strh r2, [r3, #0x54] + bl ov00_022C349C +_022C3E80: + add sp, sp, #0x34 + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022C3E88: .4byte 0x0232502C +_022C3E8C: .4byte 0x000005D4 +_022C3E90: .4byte 0x0231F564 + arm_func_end ov00_022C39B0 + + arm_func_start ov00_022C3E94 +ov00_022C3E94: @ 0x022C3E94 + push {r4, r5, r6, lr} + mov ip, #0 + ldr r2, _022C3F30 @ =0x0232502C + ldr r1, _022C3F34 @ =0x000005D4 + mov r4, r0 + mov r3, ip +_022C3EAC: + ldr r0, [r2] + mla r5, ip, r1, r0 + add r0, r5, #0x1000 + ldrb r0, [r0, #0xd52] + cmp r0, #0 + addne r0, r5, #0x1d00 + strhne r3, [r0, #0x4a] + add r0, ip, #1 + lsl r0, r0, #0x10 + lsr ip, r0, #0x10 + cmp ip, #0x10 + blo _022C3EAC + ldr r0, _022C3F38 @ =0x0231F564 + mov r1, #0 + ldr r5, _022C3F3C @ =0x0000FFFF + str r1, [r0] + mov r6, #1 +_022C3EF0: + mov r0, r4 + mov r1, r6 + bl ov00_022BF55C + cmp r0, #0 + ldrhne r1, [r0] + cmpne r1, r5 + cmpne r1, #0 + beq _022C3F18 + mov r1, r6 + bl ov00_022C39B0 +_022C3F18: + add r0, r6, #1 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + cmp r6, #0xf + bls _022C3EF0 + pop {r4, r5, r6, pc} + .align 2, 0 +_022C3F30: .4byte 0x0232502C +_022C3F34: .4byte 0x000005D4 +_022C3F38: .4byte 0x0231F564 +_022C3F3C: .4byte 0x0000FFFF + arm_func_end ov00_022C3E94 + + arm_func_start ov00_022C3F40 +ov00_022C3F40: @ 0x022C3F40 + push {r4, lr} + sub sp, sp, #8 + ldr r2, _022C3F7C @ =0x0232502C + mov r4, r1 + ldr r1, [r2] + strb r0, [sp] + add r0, sp, #0 + bl ov00_022C7EB4 + ldr r0, _022C3F7C @ =0x0232502C + mov r1, r4 + ldr r2, [r0] + mov r0, #6 + bl ov00_022C537C + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_022C3F7C: .4byte 0x0232502C + arm_func_end ov00_022C3F40 + + arm_func_start ov00_022C3F80 +ov00_022C3F80: @ 0x022C3F80 + push {r3, r4, r5, lr} + sub sp, sp, #0x18 + mov r5, #0 + add r0, sp, #6 + mov r1, r5 + mov r2, #0x10 + mvn r4, #0 + bl FUN_0207C40C + ldr r1, _022C410C @ =0x0232502C + mov r0, #1 + ldr r1, [r1] + add ip, sp, #6 +_022C3FB0: + add r2, r1, r0, lsl #2 + add r2, r2, #0x1000 + ldr r2, [r2, #0x4e4] + cmp r2, #5 + bne _022C3FDC + add r2, r1, r0 + add r2, r2, #0x1500 + ldrsb r3, [r2, #0x25] + ldrb r2, [ip, r3] + add r2, r2, #1 + strb r2, [ip, r3] +_022C3FDC: + add r0, r0, #1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, #0xf + bls _022C3FB0 + ldr r2, _022C4110 @ =0x02318814 + ldr ip, _022C4114 @ =0x000005D4 + ldrb r3, [r2] + mov r0, #0 + add lr, sp, #6 +_022C4004: + add r2, r3, #1 + lsr r3, r2, #0x1f + rsb r2, r3, r2, lsl #28 + add r2, r3, r2, ror #28 + and r3, r2, #0xff + mla r2, r3, ip, r1 + add r2, r2, #0x1000 + ldrb r2, [r2, #0xd52] + cmp r2, #0 + ldrbne r2, [lr, r3] + cmpne r2, #0 + lslne r0, r3, #0x18 + asrne r4, r0, #0x18 + bne _022C404C + add r0, r0, #1 + and r0, r0, #0xff + cmp r0, #0x10 + blo _022C4004 +_022C404C: + mvn r0, #0 + cmp r4, r0 + addeq sp, sp, #0x18 + moveq r0, #0x15 + popeq {r3, r4, r5, pc} + ldr r2, _022C4110 @ =0x02318814 + mov r0, #1 + strb r4, [r2] + mov r3, r0 +_022C4070: + add r2, r1, r0, lsl #2 + add r2, r2, #0x1000 + ldr r2, [r2, #0x4e4] + cmp r2, #5 + bne _022C40A0 + add r2, r1, r0 + add r2, r2, #0x1500 + ldrsb r2, [r2, #0x25] + cmp r4, r2 + orreq r2, r5, r3, lsl r0 + lsleq r2, r2, #0x10 + lsreq r5, r2, #0x10 +_022C40A0: + add r0, r0, #1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, #0xf + bls _022C4070 + mov r2, #3 + add r0, sp, #0 + strb r2, [sp] + strh r4, [sp, #2] + bl ov00_022C7EB4 + movs r1, r0 + beq _022C40F0 + ldr r0, _022C410C @ =0x0232502C + ldr r3, _022C4114 @ =0x000005D4 + ldr r0, [r0] + mov r2, #0xe4 + add r0, r0, #0x388 + add r0, r0, #0x1400 + mla r0, r4, r3, r0 + bl FUN_0207C4C8 +_022C40F0: + ldr r0, _022C410C @ =0x0232502C + mov r1, r5 + ldr r2, [r0] + mov r0, #0xea + bl ov00_022C537C + add sp, sp, #0x18 + pop {r3, r4, r5, pc} + .align 2, 0 +_022C410C: .4byte 0x0232502C +_022C4110: .4byte 0x02318814 +_022C4114: .4byte 0x000005D4 + arm_func_end ov00_022C3F80 + + arm_func_start ov00_022C4118 +ov00_022C4118: @ 0x022C4118 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x4c + ldr r5, [r0, #0x14] + ldr r4, [r0, #0x10] + ldr r1, [r5, #0x14] + add r0, r5, #0x10 + bl FUN_0207EDB4 + movs r6, r0 + add r0, sp, #4 + ldreq r6, [r5, #0x18] + bl FUN_0207F3E4 + ldr r2, [r4] + mvn r0, #0 + str r0, [sp] + ldr r3, [r4, #4] + add r0, sp, #4 + mov r1, r6 + add r3, r2, r3 + bl FUN_0207F60C + cmp r0, #0 + beq _022C4194 + ldr r1, [r4, #8] + ldr r2, [r4, #4] + add r0, sp, #4 + bl FUN_0207F818 + ldr r1, [r4, #4] + cmp r1, r0 + moveq r0, #2 + streq r0, [r4, #0xc] + add r0, sp, #4 + bl FUN_0207F70C +_022C4194: + ldr r0, [r4, #0xc] + cmp r0, #2 + addeq sp, sp, #0x4c + popeq {r3, r4, r5, r6, pc} + mov r0, #0 + str r0, [r4] + mov r0, #2 + str r0, [r4, #0xc] + add sp, sp, #0x4c + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_022C4118 + + arm_func_start ov00_022C41BC +ov00_022C41BC: @ 0x022C41BC + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x18 + ldr r5, _022C444C @ =0x0232502C + ldr r0, [r5] + add r0, r0, #0x1000 + ldrb r0, [r0, #0x524] + cmp r0, #0 + addeq sp, sp, #0x18 + moveq r0, #0x15 + popeq {r3, r4, r5, r6, r7, pc} + ldr r4, _022C4450 @ =0x000005D4 + mov r1, #0 +_022C41EC: + ldr r0, [r5] + add r3, r0, #0x1000 + ldrb r0, [r3, #0x525] + add r0, r0, #1 + lsr r2, r0, #0x1f + rsb r0, r2, r0, lsl #28 + add r0, r2, r0, ror #28 + strb r0, [r3, #0x525] + ldr r2, [r5] + add r0, r2, #0x1000 + ldrb r0, [r0, #0x525] + mla r3, r0, r4, r2 + add r2, r3, #0x1000 + ldrb r2, [r2, #0xd52] + cmp r2, #0 + addne r2, r3, #0x1d00 + ldrhne r2, [r2, #0x4c] + cmpne r2, #0 + bne _022C4248 + add r1, r1, #1 + and r1, r1, #0xff + cmp r1, #0x10 + blo _022C41EC +_022C4248: + cmp r1, #0x10 + addeq sp, sp, #0x18 + moveq r0, #0x15 + popeq {r3, r4, r5, r6, r7, pc} + bl ov00_022C45D8 + ldr r0, _022C444C @ =0x0232502C + ldr r2, _022C4450 @ =0x000005D4 + ldr r6, [r0] + add r0, sp, #8 + add r1, r6, #0x1000 + ldrb r4, [r1, #0x525] + add r1, r6, #0x12c + add r3, r6, #0x388 + mul r5, r4, r2 + add r2, r6, r5 + add r2, r2, #0x1d00 + add r1, r1, #0x1c00 + add r3, r3, #0x1400 + ldrh r2, [r2, #0x48] + add r1, r1, r5 + add r3, r3, r5 + bl ov00_022C5150 + cmp r0, #0 + addeq sp, sp, #0x18 + moveq r0, #0x15 + popeq {r3, r4, r5, r6, r7, pc} + ldr r0, _022C444C @ =0x0232502C + mov r3, #4 + ldr r1, [r0] + strb r3, [sp] + add r2, r1, #0x1000 + ldrb r4, [r2, #0x525] + add r3, r3, #0x5d0 + add r0, sp, #0 + strh r4, [sp, #2] + ldrb r4, [r2, #0x525] + mla r2, r4, r3, r1 + add r2, r2, #0x1d00 + ldrh r2, [r2, #0x48] + strh r2, [sp, #4] + bl ov00_022C7EB4 + ldr r1, _022C444C @ =0x0232502C + ldr r4, _022C4450 @ =0x000005D4 + ldr r5, [r1] + ldrb r1, [sp, #0x14] + add r2, r5, #0x1000 + ldrb r2, [r2, #0x525] + ldr r6, [sp, #0x10] + ldr r3, [sp, #0xc] + mla r4, r2, r4, r5 + add r2, r4, r1, lsl #2 + add r5, r4, #0x1000 + ldr r4, [r5, #0xd58] + add r2, r2, #0x1000 + ldr r2, [r2, #0xd2c] + ldr r1, [r4, r1, lsl #2] + sub r2, r6, r2 + add r4, r2, r1 + ldr r5, [r5, #0xd54] + mov r2, r0 + mov r0, r5 + mov r1, r4 + bl ov00_022C79FC + cmp r0, #0 + bne _022C4418 + ldr r0, _022C444C @ =0x0232502C + ldr r0, [r0] + add r0, r0, #0xce0 + add r6, r0, #0x7000 + mov r0, r6 + bl ov00_022C7C5C + cmp r0, #0 + bne _022C440C + ldr r0, [r5] + cmp r0, #0 + subne r0, r0, #1 + strne r0, [r5] + bne _022C440C + add r2, r5, #0x30 + mov r7, #0 + mov r3, r7 + mov ip, r2 +_022C4390: + add r0, r2, r3, lsl #4 + ldr r0, [r0, #0xc] + cmp r0, #2 + bne _022C43BC + cmp r7, #0 + beq _022C43B8 + ldr r1, [r7] + ldr r0, [r2, r3, lsl #4] + cmp r1, r0 + bls _022C43BC +_022C43B8: + mov r7, ip +_022C43BC: + add r3, r3, #1 + cmp r3, #4 + add ip, ip, #0x10 + blt _022C4390 + cmp r7, #0 + bne _022C43D8 + bl FUN_0207BC20 +_022C43D8: + mov r0, #2 + str r0, [r5] + mov r0, #1 + str r0, [r7, #0xc] + bic r0, r4, #0x1f + str r0, [r7] + str r7, [r6, #0x10] + ldr r1, _022C4454 @ =ov00_022C4118 + mov r0, r6 + mov r2, #0 + mov r3, #4 + str r5, [r6, #0x14] + bl ov00_022C7C74 +_022C440C: + add sp, sp, #0x18 + mov r0, #0x15 + pop {r3, r4, r5, r6, r7, pc} +_022C4418: + ldr r0, _022C444C @ =0x0232502C + ldr r4, [sp, #0xc] + ldr r2, [r0] + ldr r1, _022C4450 @ =0x000005D4 + add r0, r2, #0x1000 + ldrb r3, [r0, #0x525] + add r0, r4, #6 + mla r1, r3, r1, r2 + add r1, r1, #0x1d00 + ldrh r1, [r1, #0x4c] + bl ov00_022C537C + add sp, sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022C444C: .4byte 0x0232502C +_022C4450: .4byte 0x000005D4 +_022C4454: .4byte ov00_022C4118 + arm_func_end ov00_022C41BC + + arm_func_start ov00_022C4458 +ov00_022C4458: @ 0x022C4458 + push {r4, r5, lr} + sub sp, sp, #0xc + add r1, sp, #0 + mov r0, #0 + mov r2, #0xa + bl FUN_0207C2B8 + mov r3, #1 + ldr r0, _022C45D0 @ =0x0232502C + mov r4, r3 + ldr ip, [r0] + mov r5, r3 + mov r0, r3 + mov r1, r3 + mov r2, r3 +_022C4490: + add lr, ip, r3, lsl #2 + add lr, lr, #0x1000 + ldr lr, [lr, #0x4e4] + cmp lr, #0xb + addls pc, pc, lr, lsl #2 + b _022C4524 +_022C44A8: @ jump table + b _022C4524 @ case 0 + b _022C4524 @ case 1 + b _022C44D8 @ case 2 + b _022C4524 @ case 3 + b _022C44F8 @ case 4 + b _022C44E8 @ case 5 + b _022C4524 @ case 6 + b _022C4524 @ case 7 + b _022C4508 @ case 8 + b _022C4524 @ case 9 + b _022C4524 @ case 10 + b _022C4518 @ case 11 +_022C44D8: + ldrh lr, [sp] + orr lr, lr, r2, lsl r3 + strh lr, [sp] + b _022C4524 +_022C44E8: + ldrh lr, [sp, #2] + orr lr, lr, r1, lsl r3 + strh lr, [sp, #2] + b _022C4524 +_022C44F8: + ldrh lr, [sp, #4] + orr lr, lr, r0, lsl r3 + strh lr, [sp, #4] + b _022C4524 +_022C4508: + ldrh lr, [sp, #6] + orr lr, lr, r5, lsl r3 + strh lr, [sp, #6] + b _022C4524 +_022C4518: + ldrh lr, [sp, #8] + orr lr, lr, r4, lsl r3 + strh lr, [sp, #8] +_022C4524: + add r3, r3, #1 + lsl r3, r3, #0x10 + lsr r3, r3, #0x10 + cmp r3, #0xf + bls _022C4490 + ldrh r1, [sp, #6] + cmp r1, #0 + beq _022C4550 + mov r0, #5 + bl ov00_022C3F40 + b _022C45B0 +_022C4550: + ldrh r1, [sp] + cmp r1, #0 + beq _022C4568 + mov r0, #1 + bl ov00_022C3F40 + b _022C45B0 +_022C4568: + ldrh r1, [sp, #8] + cmp r1, #0 + beq _022C4580 + mov r0, #6 + bl ov00_022C3F40 + b _022C45B0 +_022C4580: + ldrh r1, [sp, #4] + cmp r1, #0 + beq _022C4598 + mov r0, #2 + bl ov00_022C3F40 + b _022C45B0 +_022C4598: + ldrh r0, [sp, #2] + cmp r0, #0 + beq _022C45AC + bl ov00_022C3F80 + b _022C45B0 +_022C45AC: + bl ov00_022C41BC +_022C45B0: + cmp r0, #0x15 + addne sp, sp, #0xc + popne {r4, r5, pc} + ldr r1, _022C45D4 @ =0x0000FFFF + mov r0, #0 + bl ov00_022C3F40 + add sp, sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_022C45D0: .4byte 0x0232502C +_022C45D4: .4byte 0x0000FFFF + arm_func_end ov00_022C4458 + + arm_func_start ov00_022C45D8 +ov00_022C45D8: @ 0x022C45D8 + ldr r1, _022C4648 @ =0x0231F564 + mov r2, #1 + ldr r1, [r1] + tst r1, r2, lsl r0 + bxeq lr + ldr r2, _022C464C @ =0x0232502C + ldr r1, _022C4650 @ =0x000005D4 + ldr r2, [r2] + mla ip, r0, r1, r2 + add r0, ip, #0x1000 + ldrb r0, [r0, #0xd52] + cmp r0, #0 + addne r0, ip, #0x1d00 + ldrhne r1, [r0, #0x4c] + cmpne r1, #0 + bxeq lr + ldrh r2, [r0, #0x48] + ldrh r3, [r0, #0x4a] + cmp r3, r2 + bhi _022C463C + add r1, r3, #2 + cmp r2, r1 + addle r1, r2, #1 + strhle r1, [r0, #0x48] + bxle lr +_022C463C: + add r0, ip, #0x1d00 + strh r3, [r0, #0x48] + bx lr + .align 2, 0 +_022C4648: .4byte 0x0231F564 +_022C464C: .4byte 0x0232502C +_022C4650: .4byte 0x000005D4 + arm_func_end ov00_022C45D8 + + arm_func_start ov00_022C4654 +ov00_022C4654: @ 0x022C4654 + cmp r1, r0 + movls r1, r0 + mov r0, r1 + bx lr + arm_func_end ov00_022C4654 + + arm_func_start ov00_022C4664 +ov00_022C4664: @ 0x022C4664 + cmp r0, #1 + blo _022C4678 + cmp r0, #0xf + movls r0, #1 + bxls lr +_022C4678: + mov r0, #0 + bx lr + arm_func_end ov00_022C4664 + + arm_func_start ov00_022C4680 +ov00_022C4680: @ 0x022C4680 + push {r3, lr} + strh r1, [sp] + add r2, sp, #0 + mov r1, #0xd + bl ov00_022C34E8 + pop {r3, pc} + arm_func_end ov00_022C4680 + + arm_func_start ov00_022C4698 +ov00_022C4698: @ 0x022C4698 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x60 + mov r4, #0 + movs r7, r0 + mov r5, r4 + beq _022C46E4 + ldr ip, [r7, #0x2c] + ldr r3, [r7, #0x24] + add r1, sp, #0 + mov r2, #0x60 + sub r6, ip, r3 + bl FUN_0207F818 + cmp r0, #0x60 + mov r0, r7 + mov r1, r6 + mov r2, #0 + addhs r4, sp, #0 + bl FUN_0207F828 + b _022C46E8 +_022C46E4: + ldr r4, _022C4714 @ =0x027FFE00 +_022C46E8: + cmp r4, #0 + beq _022C4708 + ldr r1, [r4, #0x2c] + ldr r0, [r4, #0x3c] + add r1, r1, #0x268 + add r5, r1, r0 + cmp r5, #0x10000 + movlo r5, #0x10000 +_022C4708: + mov r0, r5 + add sp, sp, #0x60 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022C4714: .4byte 0x027FFE00 + arm_func_end ov00_022C4698 + + arm_func_start ov00_022C4718 +ov00_022C4718: @ 0x022C4718 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x6c + str r2, [sp, #4] + cmp r2, #0x164 + mov r2, #0 + mov sl, r0 + mov sb, r1 + str r2, [sp, #0x10] + blo _022C4B70 + ldr r4, [sp, #4] + mov r5, sb + str r2, [sp, #0xc] + mov r6, r2 + mov fp, r2 + cmp sl, #0 + add r5, r5, #0x160 + sub r4, r4, #0x160 + beq _022C4790 + ldr r7, [sl, #0x2c] + ldr r3, [sl, #0x24] + mov r2, #0x160 + sub r3, r7, r3 + str r3, [sp, #8] + bl FUN_0207F818 + cmp r0, #0x160 + ldr r7, [sb, #0x80] + movlt r4, fp + cmp r7, #0 + moveq r7, #0x1000000 + b _022C480C +_022C4790: + ldr r0, _022C4B7C @ =0x027FFE00 + mov r1, #1 + ldr r7, [r0, #0x80] + add r0, sp, #0x24 + cmp r7, #0 + moveq r7, #0x1000000 + str r1, [sp, #0xc] + bl FUN_0207F3E4 + ldr r0, _022C4B80 @ =0x0231881C + mov r1, #3 + bl FUN_0207EDB4 + mov r1, r0 + mvn r0, #0 + str r0, [sp] + add r0, sp, #0x24 + mov r2, #0 + add r3, r7, #0x88 + bl FUN_0207F60C + ldr r2, [sp, #0x50] + ldr r1, [sp, #0x48] + ldr r0, _022C4B7C @ =0x027FFE00 + sub r1, r2, r1 + str r1, [sp, #8] + mov r1, sb + mov r2, #0x160 + add sl, sp, #0x24 + bl FUN_0207C4C8 + ldr r0, [sb, #0x60] + orr r0, r0, #0x6000 + orr r0, r0, #0x400000 + str r0, [sb, #0x60] +_022C480C: + cmp r4, #0x88 + movlo r4, #0 + blo _022C4844 + ldr r1, [sp, #8] + mov r0, sl + add r1, r1, r7 + mov r2, #0 + bl FUN_0207F828 + mov r0, sl + mov r1, r5 + mov r2, #0x88 + bl FUN_0207F818 + add r5, r5, #0x88 + sub r4, r4, #0x88 +_022C4844: + cmp r4, #0x70 + blo _022C48BC + mov r0, r5 + mov r6, r5 + bl ov00_022C7980 + mov r0, #3 + str r0, [sp] + mov r0, r6 + mov r1, #0 + mov r2, #0x160 + mov r3, sb + add r5, r5, #0x70 + sub r4, r4, #0x70 + bl ov00_022C7994 + ldr r8, [sl, #8] + mov r7, #0 + b _022C488C +_022C4888: + add r7, r7, #1 +_022C488C: + cmp r7, #3 + bge _022C48A0 + ldrsb r0, [r8, r7] + cmp r0, #0 + bne _022C4888 +_022C48A0: + mov r0, r8 + mov r2, r7 + add r1, r6, #0x10 + bl FUN_0207C4C8 + str r7, [r6, #0x14] + str r8, [r6, #0x18] + b _022C48C0 +_022C48BC: + mov r4, #0 +_022C48C0: + cmp r4, #0x10 + movlo r4, #0 + blo _022C4910 + mov r0, #0 + str r0, [r5] + ldr r1, [sl, #0x24] + ldr r0, [sp, #8] + ldr r2, [sb, #0x20] + add r0, r0, r1 + add r0, r2, r0 + str r0, [r5, #4] + ldr r1, [sl, #0x24] + ldr r0, [sp, #8] + ldr r2, [sb, #0x30] + add r0, r0, r1 + add r0, r2, r0 + mov fp, r5 + str r0, [r5, #8] + add r5, r5, #0x10 + sub r4, r4, #0x10 +_022C4910: + ldr r1, [sb, #0x2c] + ldr r0, [sb, #0x3c] + add r0, r1, r0 + cmp r4, r0 + blo _022C49B8 + ldr r7, [sl, #0x24] + ldr r1, [fp, #4] + mov r0, sl + sub r1, r1, r7 + mov r2, #0 + bl FUN_0207F828 + ldr r2, [sb, #0x2c] + mov r0, sl + mov r1, r5 + bl FUN_0207F818 + mov r0, #3 + str r0, [sp] + ldr r1, [fp, #4] + ldr r2, [sb, #0x2c] + mov r0, r6 + mov r3, r5 + bl ov00_022C7994 + ldr r1, [fp, #8] + ldr r4, [sb, #0x2c] + mov r0, sl + mov r2, #0 + sub r1, r1, r7 + bl FUN_0207F828 + ldr r2, [sb, #0x3c] + mov r0, sl + add r1, r5, r4 + bl FUN_0207F818 + mov r0, #3 + str r0, [sp] + ldr r1, [fp, #8] + ldr r2, [sb, #0x3c] + add r3, r5, r4 + mov r0, r6 + bl ov00_022C7994 + mov r0, #1 + str r0, [sp, #0x10] + b _022C4A8C +_022C49B8: + cmp r4, #0xcc00 + blo _022C4A8C + ldr r7, [sl, #0x24] + ldr r4, [fp, #4] + mov r0, sl + sub r1, r4, r7 + mov r2, #0 + bl FUN_0207F828 + mov r0, sl + mov r1, r5 + mov r2, #0x4400 + bl FUN_0207F818 + mov r0, #3 + str r0, [sp] + mov r0, r6 + mov r1, r4 + mov r2, #0x4400 + mov r3, r5 + bl ov00_022C7994 + add r1, r4, #0x4400 + mov r0, sl + sub r1, r1, r7 + mov r2, #0 + bl FUN_0207F828 + mov r0, sl + add r1, r5, #0x4400 + mov r2, #0x4400 + bl FUN_0207F818 + mov r0, #2 + str r0, [sp] + mov r0, r6 + add r1, r4, #0x4400 + mov r2, #0x4400 + add r3, r5, #0x4400 + bl ov00_022C7994 + add r1, r4, #0x8800 + mov r0, sl + sub r1, r1, r7 + mov r2, #0 + bl FUN_0207F828 + mov r0, sl + add r1, r5, #0x8800 + mov r2, #0x4400 + bl FUN_0207F818 + mov r0, #2 + str r0, [sp] + add r1, r4, #0x8800 + add r3, r5, #0x8800 + mov r0, r6 + mov r2, #0x4400 + bl ov00_022C7994 + mov r0, #1 + str r0, [sp, #0x10] +_022C4A8C: + ldr r1, [sp, #8] + mov r0, sl + mov r2, #0 + bl FUN_0207F828 + ldr r0, [sp, #0xc] + cmp r0, #0 + beq _022C4B58 + add r0, sp, #0x24 + bl FUN_0207F70C + ldr r0, [sp, #0x10] + cmp r0, #0 + beq _022C4B58 + ldr r1, [sb, #0x20] + ldr r0, _022C4B84 @ =0x02318818 + str r1, [sp, #0x14] + ldr r2, [sb, #0x28] + ldr r1, [sb, #0x20] + ldr r4, [r0] + sub r0, r2, r1 + str r0, [sp, #0x18] + ldr r2, [r6, #0x48] + ldr r1, [sb, #0x20] + add r0, sp, #0x14 + sub r1, r2, r1 + str r1, [sp, #0x1c] + ldr r1, [sp, #4] + mov r2, #0x8000 + str r1, [sp, #0x20] + mov r1, #0x4000 + mov r3, #1 + bl ov00_022C4B90 + ldr r0, [r4, #4] + cmp r0, #0 + beq _022C4B40 + add r7, sp, #0x14 + mov r5, #0 +_022C4B1C: + ldm r4, {r1, r2} + mov r0, r7 + mov r3, r5 + add r2, r1, r2 + bl ov00_022C4B90 + add r4, r4, #8 + ldr r0, [r4, #4] + cmp r0, #0 + bne _022C4B1C +_022C4B40: + ldr r1, [sb, #0x28] + ldr r2, _022C4B88 @ =0x02000AAC + ldr r3, [r6, #0x48] + ldr r0, _022C4B8C @ =0xE12FFF1E + sub r1, r2, r1 + str r0, [r3, r1] +_022C4B58: + ldr r0, [sp, #0x10] + cmp r0, #0 + beq _022C4B70 + ldr r1, [sp, #4] + mov r0, sb + bl FUN_0207A2DC +_022C4B70: + ldr r0, [sp, #0x10] + add sp, sp, #0x6c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022C4B7C: .4byte 0x027FFE00 +_022C4B80: .4byte 0x0231881C +_022C4B84: .4byte 0x02318818 +_022C4B88: .4byte 0x02000AAC +_022C4B8C: .4byte 0xE12FFF1E + arm_func_end ov00_022C4718 + + arm_func_start ov00_022C4B90 +ov00_022C4B90: @ 0x022C4B90 + push {r3, lr} + mov lr, r1 + ldr ip, [r0] + ldr r1, [r0, #0xc] + cmp lr, #0x4000 + movlo lr, #0x4000 + cmp r2, #0x8000 + movhi r2, #0x8000 + cmp lr, ip + add r1, ip, r1 + movlo lr, ip + cmp r2, r1 + movhi r2, r1 + cmp lr, r2 + pophs {r3, pc} + cmp r3, #0 + beq _022C4BEC + ldr r0, [r0, #8] + sub r2, r2, lr + add r0, r0, lr + mov r1, #0 + bl FUN_0207C40C + pop {r3, pc} +_022C4BEC: + ldr r3, [r0, #4] + ldr r1, [r0, #8] + add r0, r3, lr + add r1, r1, lr + sub r2, r2, lr + bl FUN_0207C4C8 + pop {r3, pc} + arm_func_end ov00_022C4B90 + + arm_func_start ov00_022C4C08 +ov00_022C4C08: @ 0x022C4C08 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r8, r0 + mov r7, r1 + mov r4, #0xff + bl FUN_0207B7E4 + mov r5, r0 + bl ov00_022C7928 + cmp r0, #0 + bne _022C4C3C + mov r0, r5 + bl FUN_0207B7F8 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022C4C3C: + ldr r0, _022C4E8C @ =0x0232502C + ldr r0, [r0] + add r1, r0, #0x1000 + ldrb r1, [r1, #0x524] + add r1, r1, #1 + cmp r1, #0x10 + ble _022C4C68 + mov r0, r5 + bl FUN_0207B7F8 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022C4C68: + ldr r1, _022C4E90 @ =0x000005D4 + mov r6, #0 +_022C4C70: + mla r2, r6, r1, r0 + add r2, r2, #0x1000 + ldr r3, [r2, #0xd40] + cmp r3, r8 + bne _022C4C94 + mov r0, r5 + bl FUN_0207B7F8 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022C4C94: + ldrb r2, [r2, #0xd52] + cmp r2, #0 + moveq r4, r6 + beq _022C4CB4 + add r2, r6, #1 + and r6, r2, #0xff + cmp r6, #0x10 + blo _022C4C70 +_022C4CB4: + cmp r6, #0x10 + bne _022C4CCC + mov r0, r5 + bl FUN_0207B7F8 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022C4CCC: + ldr r1, _022C4E90 @ =0x000005D4 + ldr r2, _022C4E8C @ =0x0232502C + mul r6, r4, r1 + add r0, r0, r6 + add r0, r0, #0x1000 + str r8, [r0, #0xd40] + ldr r0, [r2] + mov r1, r7 + add r0, r0, #0x388 + add r0, r0, #0x1400 + add sb, r0, r6 + mov r0, sb + bl ov00_022C4E98 + add r0, r8, #0x1c + add r1, sb, #0xc4 + mov r2, #0x20 + bl FUN_0207C4C8 + ldr r0, _022C4E8C @ =0x0232502C + mov r1, sb + ldr r0, [r0] + add r0, r0, #0x12c + add r0, r0, #0x1c00 + add r0, r0, r6 + bl ov00_022C5084 + cmp r0, #0 + bne _022C4D44 + mov r0, r5 + bl FUN_0207B7F8 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022C4D44: + ldr r0, _022C4E8C @ =0x0232502C + mov r1, r8 + ldr r2, [r0] + add r0, r2, #0x6c + add r0, r0, #0x1800 + add r0, r0, r6 + add r2, r2, #0x1300 + bl ov00_022C5400 + ldr r1, _022C4E8C @ =0x0232502C + ldr r0, [r1] + add r0, r0, r6 + add r0, r0, #0x1000 + strb r4, [r0, #0xd21] + ldr r0, [r1] + add r0, r0, #0x6c + add r0, r0, #0x1800 + add r0, r0, r6 + bl ov00_022C5628 + ldr r2, _022C4E8C @ =0x0232502C + ldr r3, _022C4E94 @ =0x0231F568 + ldr r1, [r2] + ldrb r0, [r3] + add r1, r1, r6 + add r1, r1, #0x1000 + strb r0, [r1, #0xd1f] + ldr r1, [r2] + mov r4, #1 + add r1, r1, r6 + add r1, r1, #0x1d00 + strh r4, [r1, #0x4e] + ldr r1, [r2] + add r8, r7, #0x1e8 + add r1, r1, r6 + add r1, r1, #0x1000 + str r7, [r1, #0xd44] + ldr r1, [r2] + add r4, r7, #0x258 + add r1, r1, r6 + add r1, r1, #0x1000 + str r8, [r1, #0xd54] + ldr r1, [r2] + add r7, r0, #1 + add r0, r1, r6 + add r0, r0, #0x1000 + str r4, [r0, #0xd58] + ldr r0, [r2] + strb r7, [r3] + add r0, r0, r6 + add r0, r0, #0x1000 + ldr r0, [r0, #0xd54] + ldr r0, [r0, #0x6c] + cmp r0, #0 + beq _022C4E50 + bl ov00_022C7C2C + cmp r0, #0 + bne _022C4E50 + ldr r0, _022C4E8C @ =0x0232502C + ldr r0, [r0] + add r0, r0, #0xce0 + add r0, r0, #0x7000 + bl ov00_022C7C48 + ldr r0, _022C4E8C @ =0x0232502C + mov r1, #0x800 + ldr r0, [r0] + add r0, r0, #0x4e0 + add r0, r0, #0x7000 + bl ov00_022C7BAC +_022C4E50: + ldr r2, _022C4E8C @ =0x0232502C + mov r3, #1 + ldr r1, [r2] + mov r0, r5 + add r1, r1, r6 + add r1, r1, #0x1000 + strb r3, [r1, #0xd52] + ldr r1, [r2] + add r1, r1, #0x1000 + ldrb r2, [r1, #0x524] + add r2, r2, #1 + strb r2, [r1, #0x524] + bl FUN_0207B7F8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022C4E8C: .4byte 0x0232502C +_022C4E90: .4byte 0x000005D4 +_022C4E94: .4byte 0x0231F568 + arm_func_end ov00_022C4C08 + + arm_func_start ov00_022C4E98 +ov00_022C4E98: @ 0x022C4E98 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r2, #0x22c0000 + mov r4, r1 + mov r5, r0 + str r2, [sp] + ldr r0, [r4, #0x24] + ldr r7, _022C4F08 @ =0x0231812C + str r0, [r5] + ldr r0, [r4, #0x34] + add r8, r5, #0xc + str r0, [r5, #4] + mov sb, #0 + add r6, sp, #0 +_022C4ECC: + mov r0, r4 + mov r1, r7 + mov r2, r8 + mov r3, r6 + bl ov00_022C4F0C + add sb, sb, #1 + cmp sb, #3 + add r8, r8, #0x10 + add r7, r7, #4 + blt _022C4ECC + add r0, r4, #0x160 + add r1, r5, #0x3c + mov r2, #0x88 + bl FUN_0207C4C8 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022C4F08: .4byte 0x0231812C + arm_func_end ov00_022C4E98 + + arm_func_start ov00_022C4F0C +ov00_022C4F0C: @ 0x022C4F0C + push {r3, r4, r5, r6, r7, lr} + ldr r1, [r1] + mov r7, r0 + mov r6, r2 + mov r5, r3 + cmp r1, #0 + beq _022C4F3C + cmp r1, #1 + beq _022C4F88 + cmp r1, #2 + beq _022C5058 + pop {r3, r4, r5, r6, r7, pc} +_022C4F3C: + ldr r0, [r7, #0x28] + cmp r0, #0x2000000 + blo _022C4F80 + cmp r0, #0x22c0000 + bhs _022C4F80 + ldr r1, [r7, #0x2c] + add r0, r0, r1 + cmp r0, #0x22c0000 + bhi _022C4F80 + str r1, [r6, #8] + ldr r0, [r7, #0x28] + str r0, [r6, #4] + str r0, [r6] + ldr r0, [r6, #0xc] + bic r0, r0, #1 + str r0, [r6, #0xc] + pop {r3, r4, r5, r6, r7, pc} +_022C4F80: + bl FUN_0207BC20 + pop {r3, r4, r5, r6, r7, pc} +_022C4F88: + ldr ip, [r7, #0x38] + ldr r1, [r7, #0x3c] + mov r2, #0 + mov r4, r2 + cmp ip, #0x2000000 + add r3, ip, r1 + blo _022C4FD4 + ldr r0, _022C5078 @ =0x023FE800 + cmp ip, r0 + bhs _022C4FD4 + cmp r3, #0x2300000 + bls _022C5000 + cmp r3, r0 + bhs _022C4FCC + cmp r1, #0x40000 + movls r4, #1 + bls _022C5000 +_022C4FCC: + mov r2, #1 + b _022C5000 +_022C4FD4: + ldr r1, _022C507C @ =0x037F8000 + cmp ip, r1 + blo _022C4FFC + add r0, r1, #0x17000 + cmp ip, r0 + bhs _022C4FFC + cmp r3, r0 + movls r4, #1 + movhi r2, #1 + b _022C5000 +_022C4FFC: + mov r2, #1 +_022C5000: + cmp r2, #1 + bne _022C500C + bl FUN_0207BC20 +_022C500C: + ldr r0, [r7, #0x3c] + cmp r4, #0 + str r0, [r6, #8] + ldr r0, [r7, #0x38] + str r0, [r6, #4] + ldreq r0, [r6, #4] + streq r0, [r6] + beq _022C5044 + ldr r0, [r5] + str r0, [r6] + ldr r1, [r5] + ldr r0, [r6, #8] + add r0, r1, r0 + str r0, [r5] +_022C5044: + ldr r0, [r6, #0xc] + bic r0, r0, #1 + orr r0, r0, #1 + str r0, [r6, #0xc] + pop {r3, r4, r5, r6, r7, pc} +_022C5058: + ldr r0, _022C5080 @ =0x027FFE00 + mov r1, #0x160 + stmib r6, {r0, r1} + str r0, [r6] + ldr r0, [r6, #0xc] + bic r0, r0, #1 + str r0, [r6, #0xc] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022C5078: .4byte 0x023FE800 +_022C507C: .4byte 0x037F8000 +_022C5080: .4byte 0x027FFE00 + arm_func_end ov00_022C4F0C + + arm_func_start ov00_022C5084 +ov00_022C5084: @ 0x022C5084 + push {r4, r5, r6, r7, r8, sb, sl, lr} + mov sl, r0 + add r6, sl, #0xc + cmp r1, #0 + mov r0, #0 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + mov r2, r0 +_022C50A0: + str r0, [sl, r2, lsl #2] + add r3, r1, r2, lsl #4 + add r2, r2, #1 + ldr r3, [r3, #0x14] + and r2, r2, #0xff + cmp r2, #3 + add r0, r0, r3 + blo _022C50A0 + mov sb, #0 + ldr r4, _022C514C @ =0x0232502C + strh sb, [r6] + add r5, r1, #0xc +_022C50D0: + ldr r0, [r4] + add r7, r5, sb, lsl #4 + add r0, r0, #0x1000 + ldr r1, [r0, #0x318] + ldr r8, [r7, #8] + add r0, r8, r1 + sub r0, r0, #1 + bl FUN_020900B0 + lsl r1, sb, #1 + ldrh r3, [r6, r1] + lsl r2, r0, #0x10 + ldr r1, [r7, #4] + add r2, r3, r2, lsr #16 + lsl r3, r2, #0x10 + mov r0, sb + mov r2, r8 + lsr r7, r3, #0x10 + bl ov00_022C52B0 + cmp r0, #0 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + cmp sb, #2 + addlo r0, r6, sb, lsl #1 + strhlo r7, [r0, #2] + add r0, sb, #1 + and sb, r0, #0xff + strhhs r7, [sl, #0x12] + cmp sb, #3 + blo _022C50D0 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022C514C: .4byte 0x0232502C + arm_func_end ov00_022C5084 + + arm_func_start ov00_022C5150 +ov00_022C5150: @ 0x022C5150 + push {r3, r4, r5, lr} + ldrh r4, [r1, #0x12] + cmp r2, r4 + movhs r0, #0 + pophs {r3, r4, r5, pc} + mov ip, #2 +_022C5168: + add r4, r1, ip, lsl #1 + ldrh r4, [r4, #0xc] + cmp r2, r4 + bhs _022C5188 + sub r4, ip, #1 + lsl ip, r4, #0x18 + asrs ip, ip, #0x18 + bpl _022C5168 +_022C5188: + cmp ip, #0 + movlt r0, #0 + poplt {r3, r4, r5, pc} + ldr r4, _022C5200 @ =0x0232502C + add r5, r1, ip, lsl #1 + ldr lr, [r4] + ldrh r5, [r5, #0xc] + add lr, lr, #0x1000 + ldr lr, [lr, #0x318] + sub r5, r2, r5 + mul r2, r5, lr + add r3, r3, #0xc + add r5, r3, ip, lsl #4 + ldr r3, [r5, #8] + sub lr, r3, r2 + str lr, [r0, #4] + ldr r3, [r4] + add r3, r3, #0x1000 + ldr r3, [r3, #0x318] + cmp lr, r3 + strhi r3, [r0, #4] + ldr r1, [r1, ip, lsl #2] + add r1, r2, r1 + str r1, [r0, #8] + ldr r1, [r5] + add r1, r2, r1 + str r1, [r0] + strb ip, [r0, #0xc] + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_022C5200: .4byte 0x0232502C + arm_func_end ov00_022C5150 + + arm_func_start ov00_022C5204 +ov00_022C5204: @ 0x022C5204 + ldr r3, _022C52A8 @ =0x0231812C + ldr r0, [r3, r0, lsl #2] + cmp r0, #0 + beq _022C5248 + cmp r0, #1 + beq _022C5264 + cmp r0, #2 + bne _022C5298 + ldr r0, _022C52AC @ =0x027FFE00 + cmp r1, r0 + blo _022C52A0 + add r1, r1, r2 + add r0, r0, #0x160 + cmp r1, r0 + bhi _022C52A0 + mov r0, #1 + bx lr +_022C5248: + cmp r1, #0x2000000 + blo _022C52A0 + add r0, r1, r2 + cmp r0, #0x22c0000 + bhi _022C52A0 + mov r0, #1 + bx lr +_022C5264: + cmp r1, #0x22c0000 + blo _022C527C + add r0, r1, r2 + cmp r0, #0x2300000 + movls r0, #1 + bxls lr +_022C527C: + cmp r1, #0x2000000 + blo _022C52A0 + add r0, r1, r2 + cmp r0, #0x2300000 + bhi _022C52A0 + mov r0, #1 + bx lr +_022C5298: + mov r0, #0 + bx lr +_022C52A0: + mov r0, #0 + bx lr + .align 2, 0 +_022C52A8: .4byte 0x0231812C +_022C52AC: .4byte 0x027FFE00 + arm_func_end ov00_022C5204 + + arm_func_start ov00_022C52B0 +ov00_022C52B0: @ 0x022C52B0 + push {r3, lr} + ldr r3, _022C5370 @ =0x0231812C + ldr r3, [r3, r0, lsl #2] + cmp r3, #0 + beq _022C52D4 + cmp r3, #1 + beq _022C52DC + cmp r3, #2 + bne _022C5360 +_022C52D4: + bl ov00_022C5204 + pop {r3, pc} +_022C52DC: + cmp r1, #0x2000000 + blo _022C5334 + ldr r0, _022C5374 @ =0x023FE800 + cmp r1, r0 + bhs _022C5334 + cmp r1, #0x2300000 + add r1, r1, r2 + bhs _022C5308 + cmp r1, #0x2300000 + movhi r0, #0 + pophi {r3, pc} +_022C5308: + cmp r1, #0x2300000 + movls r0, #1 + popls {r3, pc} + ldr r0, _022C5374 @ =0x023FE800 + cmp r1, r0 + bhs _022C532C + cmp r2, #0x40000 + movls r0, #1 + popls {r3, pc} +_022C532C: + mov r0, #0 + pop {r3, pc} +_022C5334: + ldr r3, _022C5378 @ =0x037F8000 + cmp r1, r3 + blo _022C5368 + add r0, r3, #0x17000 + cmp r1, r0 + bhs _022C5368 + add r1, r1, r2 + cmp r1, r0 + movls r0, #1 + movhi r0, #0 + pop {r3, pc} +_022C5360: + mov r0, #0 + pop {r3, pc} +_022C5368: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_022C5370: .4byte 0x0231812C +_022C5374: .4byte 0x023FE800 +_022C5378: .4byte 0x037F8000 + arm_func_end ov00_022C52B0 + + arm_func_start ov00_022C537C +ov00_022C537C: @ 0x022C537C + push {r4, r5, r6, lr} + mov r6, r0 + mov r4, r2 + add r2, r6, #0x1f + mov r5, r1 + mov r0, r4 + bic r1, r2, #0x1f + bl FUN_0207A2DC + bl FUN_0207A300 + mov r0, r4 + mov r1, r6 + mov r2, r5 + bl ov00_022C77C0 + pop {r4, r5, r6, pc} + arm_func_end ov00_022C537C + + arm_func_start ov00_022C53B4 +ov00_022C53B4: @ 0x022C53B4 + asr r3, r1, #1 + cmp r3, #0 + mov r2, #0 + ble _022C53D8 +_022C53C4: + ldrh r1, [r0], #2 + sub r3, r3, #1 + cmp r3, #0 + add r2, r2, r1 + bgt _022C53C4 +_022C53D8: + lsl r0, r2, #0x10 + lsr r0, r0, #0x10 + add r1, r0, r2, lsr #16 + ldr r0, _022C53FC @ =0x0000FFFF + add r1, r1, r1, lsr #16 + eor r0, r1, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr + .align 2, 0 +_022C53FC: .4byte 0x0000FFFF + arm_func_end ov00_022C53B4 + + arm_func_start ov00_022C5400 +ov00_022C5400: @ 0x022C5400 + push {r3, r4, r5, r6, r7, lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + mov r1, r6 + mov r0, #0 + mov r2, #0x4c0 + bl FUN_0207C2B8 + mov r0, #0 + strb r0, [r6, #0x4b2] + ldr r0, [r5, #0xc] + mov r1, r6 + mov r2, #1 + bl ov00_022C54F0 + cmp r0, #0 + moveq r7, #1 + ldr r0, [r5, #0x10] + mov r1, r6 + mov r2, #0 + movne r7, #0 + bl ov00_022C54F0 + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + orrs r0, r7, r0 + beq _022C5480 + mov r3, #1 + mov r1, r6 + mov r0, #0 + mov r2, #0x220 + strb r3, [r6, #0x4b2] + bl FUN_0207C358 +_022C5480: + ldr r0, [r5, #0x14] + cmp r4, #0 + str r0, [r6, #0x4b8] + beq _022C54A0 + mov r0, r4 + add r1, r6, #0x220 + mov r2, #0x16 + bl FUN_0207C2E0 +_022C54A0: + ldrb r0, [r5, #0x18] + strb r0, [r6, #0x236] + ldr r0, [r5, #4] + bl ov00_022C5600 + lsl r2, r0, #0x11 + ldr r0, [r5, #4] + add r1, r6, #0x238 + lsr r2, r2, #0x10 + bl FUN_0207C2E0 + ldr r0, [r5, #8] + add r1, r6, #0x298 + mov r2, #0xc0 + bl FUN_0207C2E0 + mov r1, #1 + strb r1, [r6, #0x358] + add r0, r6, #0x300 + strh r1, [r0, #0x5a] + add r0, r6, #0x400 + strh r1, [r0, #0xb0] + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022C5400 + + arm_func_start ov00_022C54F0 +ov00_022C54F0: @ 0x022C54F0 + push {r4, r5, r6, lr} + sub sp, sp, #0x48 + cmp r2, #0 + movne r4, #0x200 + moveq r4, #0x20 + mov r6, r0 + mov r5, r1 + cmp r2, #0 + addne r5, r5, #0x20 + cmp r6, #0 + addeq sp, sp, #0x48 + moveq r0, #0 + popeq {r4, r5, r6, pc} + add r0, sp, #0 + bl FUN_0207F3E4 + add r0, sp, #0 + mov r1, r6 + bl FUN_0207F6C4 + cmp r0, #0 + addeq sp, sp, #0x48 + moveq r0, #0 + popeq {r4, r5, r6, pc} + ldr r1, [sp, #0x28] + ldr r0, [sp, #0x24] + sub r0, r1, r0 + cmp r4, r0 + add r0, sp, #0 + beq _022C5570 + bl FUN_0207F70C + add sp, sp, #0x48 + mov r0, #0 + pop {r4, r5, r6, pc} +_022C5570: + mov r1, r5 + mov r2, r4 + bl FUN_0207F818 + add r0, sp, #0 + bl FUN_0207F70C + mov r0, #1 + add sp, sp, #0x48 + pop {r4, r5, r6, pc} + arm_func_end ov00_022C54F0 + + arm_func_start ov00_022C5590 +ov00_022C5590: @ 0x022C5590 + push {r3, r4, r5, r6, r7, lr} + mov r6, r0 + mov r5, r2 + add r4, r6, #0x5e + mov r0, r1 + add r1, r4, #0x300 + ldr r2, _022C55FC @ =0x0000014A + mov r4, r3 + mov r7, #1 + bl FUN_0207C2E0 + mov r2, #0 + mov r1, #2 +_022C55C0: + tst r5, r1, lsl r2 + addne r0, r7, #1 + add r2, r2, #1 + andne r7, r0, #0xff + cmp r2, #0xf + blt _022C55C0 + strb r7, [r6, #0x358] + orr r1, r5, #1 + add r0, r6, #0x300 + strh r1, [r0, #0x5a] + strh r4, [r0, #0x5c] + ldrb r0, [r6, #0x4b4] + add r0, r0, #1 + strb r0, [r6, #0x4b4] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022C55FC: .4byte 0x0000014A + arm_func_end ov00_022C5590 + + arm_func_start ov00_022C5600 +ov00_022C5600: @ 0x022C5600 + ldrh r1, [r0], #2 + mov r2, #0 + cmp r1, #0 + beq _022C5620 +_022C5610: + ldrh r1, [r0], #2 + add r2, r2, #1 + cmp r1, #0 + bne _022C5610 +_022C5620: + mov r0, r2 + bx lr + arm_func_end ov00_022C5600 + + arm_func_start ov00_022C5628 +ov00_022C5628: @ 0x022C5628 + ldr r1, _022C5668 @ =0x0231F580 + ldr r2, [r1, #0x18] + cmp r2, #0 + streq r0, [r1, #0x18] + beq _022C565C + ldr r1, [r2, #0x4bc] + cmp r1, #0 + beq _022C5658 +_022C5648: + mov r2, r1 + ldr r1, [r1, #0x4bc] + cmp r1, #0 + bne _022C5648 +_022C5658: + str r0, [r2, #0x4bc] +_022C565C: + mov r1, #0 + str r1, [r0, #0x4bc] + bx lr + .align 2, 0 +_022C5668: .4byte 0x0231F580 + arm_func_end ov00_022C5628 +_022C566C: + .byte 0x1C, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x18, 0x20, 0x80, 0xE5, 0x1C, 0x20, 0x80, 0xE5, 0x01, 0x10, 0xA0, 0xE3 + .byte 0x24, 0x10, 0xC0, 0xE5, 0x08, 0xC0, 0x9F, 0xE5, 0x14, 0x20, 0x80, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0x80, 0xF5, 0x31, 0x02, 0x98, 0x56, 0x2C, 0x02 + + arm_func_start ov00_022C5698 +ov00_022C5698: @ 0x022C5698 + ldr r0, _022C56B8 @ =0x0231F580 + mov r1, #0 + strb r1, [r0, #0x25] + strb r1, [r0, #0x26] + strb r1, [r0, #0x27] + strb r1, [r0, #0x28] + strb r1, [r0, #0x29] + bx lr + .align 2, 0 +_022C56B8: .4byte 0x0231F580 + arm_func_end ov00_022C5698 + + arm_func_start ov00_022C56BC +ov00_022C56BC: @ 0x022C56BC + push {r3, r4, r5, r6, r7, lr} + ldr r4, _022C5744 @ =0x0231F580 + mov r7, r0 + mov r6, r1 + mov r5, r2 +_022C56D0: + ldrb r0, [r4, #0x24] + cmp r0, #6 + addls pc, pc, r0, lsl #2 + b _022C56D0 +_022C56E0: @ jump table + b _022C56FC @ case 0 + b _022C56FC @ case 1 + b _022C570C @ case 2 + b _022C5714 @ case 3 + b _022C5728 @ case 4 + b _022C5730 @ case 5 + b _022C56D0 @ case 6 +_022C56FC: + bl ov00_022C5748 + cmp r0, #0 + bne _022C56D0 + pop {r3, r4, r5, r6, r7, pc} +_022C570C: + bl ov00_022C57E8 + b _022C56D0 +_022C5714: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl ov00_022C583C + pop {r3, r4, r5, r6, r7, pc} +_022C5728: + bl ov00_022C59A0 + b _022C56D0 +_022C5730: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl ov00_022C59D0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022C5744: .4byte 0x0231F580 + arm_func_end ov00_022C56BC + + arm_func_start ov00_022C5748 +ov00_022C5748: @ 0x022C5748 + push {r4, lr} + sub sp, sp, #8 + ldr r0, _022C57E0 @ =0x0231F580 + ldr r1, [r0, #0x18] + cmp r1, #0 + bne _022C5798 + bl ov00_022C78A0 + mov r4, r0 + bl ov00_022C78B4 + str r0, [sp] + mov ip, #8 + ldr r1, _022C57E4 @ =0x0231F5C0 + mov r3, r4 + mov r0, #0 + mov r2, #0x70 + str ip, [sp, #4] + bl ov00_022C14A8 + add sp, sp, #8 + mov r0, #0 + pop {r4, pc} +_022C5798: + ldr r0, [r0, #0x1c] + cmp r0, #0 + ldrne r1, [r0, #0x4bc] + cmpne r1, #0 + ldreq r0, _022C57E0 @ =0x0231F580 + ldreq r1, [r0, #0x18] + ldr r0, _022C57E0 @ =0x0231F580 + str r1, [r0, #0x1c] + bl ov00_022C5698 + ldr r1, _022C57E0 @ =0x0231F580 + mov r2, #2 + ldr r3, [r1, #0x1c] + mov r0, #1 + ldrb r3, [r3, #0x4b4] + strb r3, [r1, #0x26] + strb r2, [r1, #0x24] + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_022C57E0: .4byte 0x0231F580 +_022C57E4: .4byte 0x0231F5C0 + arm_func_end ov00_022C5748 + + arm_func_start ov00_022C57E8 +ov00_022C57E8: @ 0x022C57E8 + ldr r0, _022C5838 @ =0x0231F580 + ldrb r1, [r0, #0x24] + cmp r1, #2 + bxne lr + ldr r2, [r0, #0x1c] + ldrb r1, [r2, #0x4b2] + cmp r1, #0 + bne _022C5818 + mov r1, #9 + strb r1, [r0, #0x28] + str r2, [r0, #0x20] + b _022C5828 +_022C5818: + mov r1, #4 + strb r1, [r0, #0x28] + add r1, r2, #0x220 + str r1, [r0, #0x20] +_022C5828: + ldr r0, _022C5838 @ =0x0231F580 + mov r1, #3 + strb r1, [r0, #0x24] + bx lr + .align 2, 0 +_022C5838: .4byte 0x0231F580 + arm_func_end ov00_022C57E8 + + arm_func_start ov00_022C583C +ov00_022C583C: @ 0x022C583C + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + ldr r3, _022C5990 @ =0x0231F580 + mov r6, r0 + ldr r4, [r3, #0x1c] + ldr r0, [r3, #0x20] + add ip, r4, #0x358 + add r7, r0, #0x62 + cmp r7, ip + movls r0, #0x62 + mov r5, r1 + mov r4, r2 + strbls r0, [r3, #0x4c] + bls _022C5894 + sub r7, ip, r0 + and r1, r7, #0xff + ldr r0, _022C5994 @ =0x0231F5CE + rsb r2, r1, #0x62 + add r1, r0, r1 + mov r0, #0 + strb r7, [r3, #0x4c] + bl FUN_0207C2B8 +_022C5894: + ldr r0, _022C5990 @ =0x0231F580 + ldr r1, _022C5994 @ =0x0231F5CE + ldrb r2, [r0, #0x4c] + ldr r0, [r0, #0x20] + bl FUN_0207C2E0 + ldr r2, _022C5990 @ =0x0231F580 + ldr r0, _022C5998 @ =0x0231F5C8 + ldrb r7, [r2, #0x27] + mov r3, #0 + mov r1, #0x68 + strb r7, [r2, #0x4a] + ldrb r7, [r2, #0x28] + strb r7, [r2, #0x4b] + ldr r7, [r2, #0x1c] + ldrb lr, [r2, #0x44] + ldrb ip, [r7, #0x4b2] + bic lr, lr, #3 + and ip, ip, #3 + orr ip, lr, ip + strb ip, [r2, #0x44] + ldrb ip, [r7, #0x4b3] + strb ip, [r2, #0x45] + ldrb ip, [r2, #0x26] + strb ip, [r2, #0x46] + ldr ip, [r7, #0x4b8] + str ip, [r2, #0x40] + ldrb lr, [r2, #0x44] + ldrb ip, [r7, #0x4b5] + bic lr, lr, #0xfc + lsl ip, ip, #0x1a + orr ip, lr, ip, lsr #24 + strb ip, [r2, #0x44] + ldrb lr, [r2, #0x29] + add ip, lr, #1 + strb ip, [r2, #0x29] + strb lr, [r2, #0x47] + strh r3, [r2, #0x48] + bl ov00_022C53B4 + ldr r1, _022C5990 @ =0x0231F580 + strh r0, [r1, #0x48] + ldrb r0, [r1, #0x27] + add r2, r0, #1 + strb r2, [r1, #0x27] + ldrb r0, [r1, #0x28] + and r2, r2, #0xff + cmp r2, r0 + movhs r0, #4 + strbhs r0, [r1, #0x24] + bhs _022C5964 + ldr r0, [r1, #0x20] + add r0, r0, #0x62 + str r0, [r1, #0x20] +_022C5964: + orr r0, r4, #3 + ldr r1, _022C599C @ =0x0231F5C0 + mov r3, r6 + str r5, [sp] + and r4, r0, #0xff + mov r0, #0 + mov r2, #0x70 + str r4, [sp, #4] + bl ov00_022C14A8 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022C5990: .4byte 0x0231F580 +_022C5994: .4byte 0x0231F5CE +_022C5998: .4byte 0x0231F5C8 +_022C599C: .4byte 0x0231F5C0 + arm_func_end ov00_022C583C + + arm_func_start ov00_022C59A0 +ov00_022C59A0: @ 0x022C59A0 + ldr r1, _022C59CC @ =0x0231F580 + mov r3, #1 + ldr r0, [r1, #0x1c] + mov r2, #5 + add r0, r0, #0x400 + strh r3, [r0, #0xb0] + ldr r0, [r1, #0x1c] + ldrb r0, [r0, #0x4b4] + strb r0, [r1, #0x26] + strb r2, [r1, #0x24] + bx lr + .align 2, 0 +_022C59CC: .4byte 0x0231F580 + arm_func_end ov00_022C59A0 + + arm_func_start ov00_022C59D0 +ov00_022C59D0: @ 0x022C59D0 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x14 + ldr r3, _022C5C28 @ =0x0231F580 + str r0, [sp, #8] + ldr r0, [r3, #0x1c] + ldrb r3, [r3, #0x26] + ldrb r0, [r0, #0x4b4] + str r1, [sp, #0xc] + str r2, [sp, #0x10] + cmp r3, r0 + beq _022C5A00 + bl ov00_022C59A0 +_022C5A00: + ldr r2, _022C5C28 @ =0x0231F580 + ldrb r0, [r2, #0x44] + bic r0, r0, #3 + orr r0, r0, #2 + strb r0, [r2, #0x44] + ldr r0, [r2, #0x1c] + ldrb r3, [r0, #0x4b3] + add r1, r0, #0x300 + strb r3, [r2, #0x45] + ldrb r3, [r2, #0x26] + strb r3, [r2, #0x46] + ldr r3, [r0, #0x4b8] + str r3, [r2, #0x40] + ldrb r4, [r2, #0x44] + ldrb r3, [r0, #0x4b5] + bic r4, r4, #0xfc + lsl r3, r3, #0x1a + orr r3, r4, r3, lsr #24 + strb r3, [r2, #0x44] + ldrb r4, [r2, #0x29] + add r3, r4, #1 + strb r3, [r2, #0x29] + strb r4, [r2, #0x47] + ldrb r3, [r0, #0x358] + strb r3, [r2, #0x4a] + ldrh r3, [r1, #0x5a] + strh r3, [r2, #0x4c] + ldrh r1, [r1, #0x5c] + strh r1, [r2, #0x4e] + ldr r1, [r2, #0x10] + cmp r1, #0 + bne _022C5A94 + ldr r1, [r2, #0x14] + cmp r1, #0 + beq _022C5A94 + ldr r0, [r0, #0x4b8] + blx r1 +_022C5A94: + ldr r0, _022C5C28 @ =0x0231F580 + mov sb, #0 + ldr r1, _022C5C2C @ =0x0231F628 + ldr r2, [r0, #0x1c] + b _022C5AB8 +_022C5AA8: + add r0, r2, sb + ldrb r0, [r0, #0x4a8] + strb r0, [r1, sb] + add sb, sb, #1 +_022C5AB8: + cmp sb, #8 + blt _022C5AA8 + ldr r1, _022C5C30 @ =0x0231F5D0 + mov r0, #0 + mov r2, #0x58 + bl FUN_0207C2B8 + ldr r5, _022C5C28 @ =0x0231F580 + mov sl, #0 + ldr r1, [r5, #0x1c] + mov r6, #2 + add r0, r1, #0x400 + add r1, r1, #0x300 + ldrh r2, [r0, #0xb0] + ldrh r0, [r1, #0x5a] + mov sb, sl + ldr r7, _022C5C30 @ =0x0231F5D0 + eor r0, r2, r0 + lsl r4, r0, #0x10 + mov r8, r6 + mov fp, #0x16 + b _022C5B5C +_022C5B0C: + lsl r0, r8, sb + tst r0, r4, lsr #16 + beq _022C5B58 + ldr r0, [r5, #0x1c] + mla r1, sl, fp, r7 + add r0, r0, #0x5e + add r2, r0, #0x300 + mov r0, #0x16 + mla r0, sb, r0, r2 + mov r2, #0x16 + bl FUN_0207C2E0 + ldr r0, [r5, #0x1c] + add sl, sl, #1 + add r0, r0, #0x400 + ldrh r1, [r0, #0xb0] + cmp sl, #4 + orr r1, r1, r6, lsl sb + strh r1, [r0, #0xb0] + beq _022C5B64 +_022C5B58: + add sb, sb, #1 +_022C5B5C: + cmp sb, #0xf + blt _022C5B0C +_022C5B64: + cmp sl, #4 + bhs _022C5B84 + mov r0, #0x16 + mul r1, sl, r0 + ldr r2, _022C5C30 @ =0x0231F5D0 + ldrb r0, [r2, r1] + bic r0, r0, #0xf0 + strb r0, [r2, r1] +_022C5B84: + ldr r2, _022C5C28 @ =0x0231F580 + mov r3, #0 + ldr r0, _022C5C34 @ =0x0231F5C8 + mov r1, #0x68 + strh r3, [r2, #0x48] + bl ov00_022C53B4 + ldr r2, _022C5C28 @ =0x0231F580 + strh r0, [r2, #0x48] + ldr r1, [r2, #0x1c] + add r0, r1, #0x400 + add r1, r1, #0x300 + ldrh r3, [r0, #0xb0] + ldrh r0, [r1, #0x5a] + ldr r1, _022C5C38 @ =0x0231F5C0 + cmp r3, r0 + moveq r0, #1 + strbeq r0, [r2, #0x24] + ldr r0, [sp, #0x10] + ldr r3, [sp, #8] + orr r2, r0, #3 + ldr r0, [sp, #0xc] + and r4, r2, #0xff + str r0, [sp] + mov r0, #0 + mov r2, #0x70 + str r4, [sp, #4] + bl ov00_022C14A8 + ldr r0, _022C5C28 @ =0x0231F580 + ldr r1, [r0, #0x10] + cmp r1, #1 + addne sp, sp, #0x14 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r0, #0x14] + cmp r1, #0 + addeq sp, sp, #0x14 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r0, #0x1c] + ldr r0, [r0, #0x4b8] + blx r1 + add sp, sp, #0x14 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022C5C28: .4byte 0x0231F580 +_022C5C2C: .4byte 0x0231F628 +_022C5C30: .4byte 0x0231F5D0 +_022C5C34: .4byte 0x0231F5C8 +_022C5C38: .4byte 0x0231F5C0 + arm_func_end ov00_022C59D0 + + arm_func_start ov00_022C5C3C +ov00_022C5C3C: @ 0x022C5C3C + push {r3, r4, r5, lr} + mov r4, r0 + bl ov00_022BF640 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldrh lr, [r4, #4] + mov r2, #1 + mov ip, #0 + mov r5, lr + mov r3, r2 +_022C5C68: + sub r1, r5, #1 + tst r0, r3, lsl r1 + cmpne lr, r5 + strhne r5, [r4, #4] + bne _022C5CA4 + add r1, ip, #1 + lsl r1, r1, #0x10 + cmp r5, #0x10 + lsr ip, r1, #0x10 + moveq r1, r2 + addne r1, r5, #1 + lsl r1, r1, #0x10 + cmp ip, #0x10 + lsr r5, r1, #0x10 + blo _022C5C68 +_022C5CA4: + mov r0, #1 + pop {r3, r4, r5, pc} + arm_func_end ov00_022C5C3C + + arm_func_start ov00_022C5CAC +ov00_022C5CAC: @ 0x022C5CAC + ldr r1, _022C5D08 @ =0x02325020 + mov r0, #0 + ldr ip, [r1, #8] + mov r3, r0 + add r1, ip, #0x500 + ldrh r1, [r1, #0x28] + mov r2, r0 + cmp r1, #1 + ldrbeq r1, [ip, #0x50c] + cmpeq r1, #0 + moveq r3, #1 + cmp r3, #0 + beq _022C5CF0 + add r1, ip, #0x500 + ldrh r1, [r1, #0x26] + cmp r1, #0 + moveq r2, #1 +_022C5CF0: + cmp r2, #0 + addne r1, ip, #0x500 + ldrhne r1, [r1, #0x2a] + cmpne r1, #0 + movne r0, #1 + bx lr + .align 2, 0 +_022C5D08: .4byte 0x02325020 + arm_func_end ov00_022C5CAC + + arm_func_start ov00_022C5D0C +ov00_022C5D0C: @ 0x022C5D0C + push {r3, lr} + ldr r0, _022C5D54 @ =ov00_022C5DA0 + bl ov00_022BF2C4 + mov r1, r0 + mov r0, #0x80 + bl ov00_022C7948 + ldr r3, _022C5D58 @ =0x02318820 + ldr r0, _022C5D54 @ =ov00_022C5DA0 + ldrh r1, [r3, #4] + str r1, [sp] + ldrh r1, [r3, #6] + ldrh r2, [r3, #2] + ldrh r3, [r3] + bl ov00_022C15B0 + mov r1, r0 + mov r0, #0x1d + bl ov00_022C7948 + pop {r3, pc} + .align 2, 0 +_022C5D54: .4byte ov00_022C5DA0 +_022C5D58: .4byte 0x02318820 + arm_func_end ov00_022C5D0C + + arm_func_start ov00_022C5D5C +ov00_022C5D5C: @ 0x022C5D5C + push {r3, lr} + ldr r2, _022C5D9C @ =0x02325020 + mov ip, #0 + ldr r3, [r2, #8] + mov r1, r0 + strb ip, [r3, #0x50d] + ldr r0, [r2, #0xc] + add r0, r0, #0x1300 + strh ip, [r0, #0x16] + ldr r0, [r2, #8] + ldr r2, [r0, #0x51c] + cmp r2, #0 + popeq {r3, pc} + mov r0, #0x11 + blx r2 + pop {r3, pc} + .align 2, 0 +_022C5D9C: .4byte 0x02325020 + arm_func_end ov00_022C5D5C + + arm_func_start ov00_022C5DA0 +ov00_022C5DA0: @ 0x022C5DA0 + push {r3, r4, lr} + sub sp, sp, #0x1c + mov r4, r0 + ldrh r1, [r4] + cmp r1, #0x19 + bgt _022C5E08 + bge _022C5EE4 + cmp r1, #0xf + addls pc, pc, r1, lsl #2 + b _022C65C8 +_022C5DC8: @ jump table + b _022C5E24 @ case 0 + b _022C6398 @ case 1 + b _022C6488 @ case 2 + b _022C65C8 @ case 3 + b _022C65C8 @ case 4 + b _022C65C8 @ case 5 + b _022C65C8 @ case 6 + b _022C5EAC @ case 7 + b _022C5F80 @ case 8 + b _022C65C8 @ case 9 + b _022C65C8 @ case 10 + b _022C65C8 @ case 11 + b _022C65C8 @ case 12 + b _022C64D0 @ case 13 + b _022C61D4 @ case 14 + b _022C6274 @ case 15 +_022C5E08: + cmp r1, #0x1d + bgt _022C5E18 + beq _022C5E5C + b _022C65C8 +_022C5E18: + cmp r1, #0x80 + beq _022C6508 + b _022C65C8 +_022C5E24: + ldrh r0, [r4, #2] + cmp r0, #0 + beq _022C5E50 + ldr r0, _022C65E8 @ =0x02325020 + mov r1, r4 + ldr r2, [r0, #8] + mov r0, #0x100 + ldr r2, [r2, #0x51c] + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C5E50: + bl ov00_022C5D0C + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C5E5C: + ldrh r0, [r4, #2] + cmp r0, #0 + beq _022C5E88 + ldr r0, _022C65E8 @ =0x02325020 + mov r1, r4 + ldr r2, [r0, #8] + mov r0, #0x100 + ldr r2, [r2, #0x51c] + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C5E88: + ldr r1, _022C65E8 @ =0x02325020 + ldr r0, _022C65EC @ =ov00_022C5DA0 + ldr r1, [r1, #8] + bl ov00_022BFC14 + mov r1, r0 + mov r0, #7 + bl ov00_022C7948 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C5EAC: + ldr r0, _022C65E8 @ =0x02325020 + mov r1, r4 + ldr r2, [r0, #8] + mov r0, #0x15 + ldr r2, [r2, #0x51c] + blx r2 + ldr r0, _022C65EC @ =ov00_022C5DA0 + mov r1, #1 + bl ov00_022C1560 + mov r1, r0 + mov r0, #0x19 + bl ov00_022C7948 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C5EE4: + ldr r2, _022C65E8 @ =0x02325020 + ldr ip, [r2, #8] + add r1, ip, #0x500 + ldrh r3, [r1, #0x26] + cmp r3, #0 + bne _022C5F44 + ldrh r0, [r4, #2] + cmp r0, #0 + beq _022C5F20 + ldr r2, [ip, #0x51c] + mov r1, r4 + mov r0, #0x100 + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C5F20: + ldr r1, _022C65F0 @ =0x02318820 + ldr r0, _022C65EC @ =ov00_022C5DA0 + ldr r1, [r1, #0xc] + bl ov00_022BFD40 + mov r1, r0 + mov r0, #8 + bl ov00_022C7948 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C5F44: + ldrh r3, [r4, #2] + cmp r3, #0 + beq _022C5F74 + mov r0, #0 + strh r0, [r1, #0x26] + ldr r0, [r2, #8] + mov r1, r4 + ldr r2, [r0, #0x51c] + mov r0, #0x100 + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C5F74: + bl ov00_022C5D5C + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C5F80: + ldrh r0, [r4, #2] + cmp r0, #0 + beq _022C5FAC + ldr r0, _022C65E8 @ =0x02325020 + mov r1, r4 + ldr r2, [r0, #8] + mov r0, #0x100 + ldr r2, [r2, #0x51c] + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C5FAC: + ldrh r0, [r4, #8] + cmp r0, #7 + bgt _022C5FDC + bge _022C6024 + cmp r0, #2 + bgt _022C61B4 + cmp r0, #0 + blt _022C61B4 + beq _022C5FFC + cmp r0, #2 + beq _022C6180 + b _022C61B4 +_022C5FDC: + cmp r0, #9 + bgt _022C5FEC + beq _022C6144 + b _022C61B4 +_022C5FEC: + cmp r0, #0x1a + addeq sp, sp, #0x1c + popeq {r3, r4, pc} + b _022C61B4 +_022C5FFC: + ldr r1, _022C65E8 @ =0x02325020 + mov r2, #0 + ldr r0, [r1, #8] + add sp, sp, #0x1c + add r0, r0, #0x500 + strh r2, [r0, #0x2a] + ldr r0, [r1, #8] + add r0, r0, #0x500 + strh r2, [r0, #0x28] + pop {r3, r4, pc} +_022C6024: + ldr r2, _022C65E8 @ =0x02325020 + ldr r0, [r2, #8] + add r0, r0, #0x500 + ldrh r1, [r0, #0x26] + cmp r1, #1 + addeq sp, sp, #0x1c + popeq {r3, r4, pc} + ldrh lr, [r0, #0x2a] + ldrh r3, [r4, #0x10] + mov ip, #1 + mov r1, r4 + orr r3, lr, ip, lsl r3 + strh r3, [r0, #0x2a] + ldr r2, [r2, #8] + mov r0, #0 + ldr r2, [r2, #0x51c] + blx r2 + ldr r1, _022C65E8 @ =0x02325020 + ldr r0, [r1, #8] + add r0, r0, #0x500 + ldrh r0, [r0, #0x28] + cmp r0, #0 + bne _022C6114 + ldr r0, [r1, #0xc] + add r0, r0, #0x1000 + ldr r2, [r0, #0x31c] + cmp r2, #0 + bne _022C6114 + mov r2, #1 + str r2, [r0, #0x31c] + ldr r0, [r1, #8] + ldr r1, _022C65E8 @ =0x02325020 + add r0, r0, #0x500 + ldrh r0, [r0, #0x2c] + ldr ip, [r1, #8] + mov r1, #1 + cmp r0, #0 + movne r2, #0 + lsl r0, r2, #0x10 + lsr r3, r0, #0x10 + add r0, ip, #0x500 + ldrh r4, [r0, #0x18] + mov r2, #0 + str r4, [sp] + str r3, [sp, #4] + str r2, [sp, #8] + str r2, [sp, #0xc] + str r2, [sp, #0x10] + str r1, [sp, #0x14] + str r1, [sp, #0x18] + ldrh r2, [r0, #0x1a] + ldr r1, [ip, #0x504] + ldr r0, _022C65EC @ =ov00_022C5DA0 + add r3, ip, #0x40 + bl ov00_022C038C + mov r1, r0 + mov r0, #0xe + bl ov00_022C7948 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C6114: + bl ov00_022C5CAC + cmp r0, #0 + addeq sp, sp, #0x1c + popeq {r3, r4, pc} + ldr r1, _022C65E8 @ =0x02325020 + mov r0, #0x19 + ldr r2, [r1, #8] + mov r1, #0 + ldr r2, [r2, #0x51c] + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C6144: + ldr r2, _022C65E8 @ =0x02325020 + ldrh r3, [r4, #0x10] + ldr r1, [r2, #8] + mov r0, #1 + add r1, r1, #0x500 + ldrh ip, [r1, #0x2a] + mvn r3, r0, lsl r3 + and r3, ip, r3 + strh r3, [r1, #0x2a] + ldr r2, [r2, #8] + mov r1, r4 + ldr r2, [r2, #0x51c] + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C6180: + ldr r0, _022C65E8 @ =0x02325020 + ldr r1, [r0, #8] + add r0, r1, #0x500 + ldrh r0, [r0, #0x26] + cmp r0, #1 + addeq sp, sp, #0x1c + popeq {r3, r4, pc} + ldr r2, [r1, #0x51c] + mov r1, r4 + mov r0, #0x1c + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C61B4: + ldr r0, _022C65E8 @ =0x02325020 + mov r1, r4 + ldr r2, [r0, #8] + mov r0, #0x100 + ldr r2, [r2, #0x51c] + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C61D4: + ldr r2, _022C65E8 @ =0x02325020 + mov r1, #0 + ldr r0, [r2, #0xc] + add r0, r0, #0x1000 + str r1, [r0, #0x31c] + ldrh r0, [r4, #4] + cmp r0, #0xa + beq _022C6200 + cmp r0, #0xb + beq _022C623C + b _022C6258 +_022C6200: + ldr r0, [r2, #8] + mov r3, #1 + add r0, r0, #0x500 + strh r3, [r0, #0x28] + ldr r2, [r2, #8] + add r0, r2, #0x500 + ldrh r0, [r0, #0x26] + cmp r0, #0 + addne sp, sp, #0x1c + popne {r3, r4, pc} + ldr r2, [r2, #0x51c] + mov r0, #0x19 + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C623C: + ldr r0, [r2, #8] + ldr r1, [r4, #8] + ldr r2, [r0, #0x51c] + mov r0, #3 + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C6258: + ldr r0, [r2, #8] + mov r1, r4 + ldr r2, [r0, #0x51c] + mov r0, #0x100 + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C6274: + ldr r0, _022C65E8 @ =0x02325020 + ldr r3, [r0, #0xc] + add r0, r3, #0x7000 + ldr r0, [r0, #0x4c8] + cmp r0, #0 + beq _022C62D0 + mov r2, #0 + mov r1, r2 +_022C6294: + add r0, r3, r1, lsl #2 + add r0, r0, #0x1000 + ldr r0, [r0, #0x4e8] + cmp r0, #0 + beq _022C62B4 + add r2, r2, #1 + cmp r2, #2 + bhs _022C62C0 +_022C62B4: + add r1, r1, #1 + cmp r1, #0xf + blo _022C6294 +_022C62C0: + cmp r2, #1 + bne _022C62D0 + ldr r0, _022C65F4 @ =0x000032C8 + bl FUN_0207B854 +_022C62D0: + ldr r0, _022C65E8 @ =0x02325020 + mov r2, #0 + ldr r1, [r0, #8] + strb r2, [r1, #0x50c] + ldrh r1, [r4, #2] + cmp r1, #0 + bne _022C6334 + ldr r0, [r0, #8] + mov r1, r4 + ldr r2, [r0, #0x51c] + mov r0, #2 + blx r2 + ldr r0, _022C65E8 @ =0x02325020 + ldr r1, [r0, #8] + add r0, r1, #0x500 + ldrh r0, [r0, #0x26] + cmp r0, #0 + addne sp, sp, #0x1c + popne {r3, r4, pc} + ldr r2, [r1, #0x51c] + mov r0, #0x19 + mov r1, #0 + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C6334: + cmp r1, #0xa + ldr r0, [r0, #8] + mov r1, r4 + bne _022C6358 + ldr r2, [r0, #0x51c] + mov r0, #0x2a + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C6358: + ldr r2, [r0, #0x51c] + mov r0, #0x13 + blx r2 + ldr r0, _022C65E8 @ =0x02325020 + ldr r1, [r0, #8] + add r0, r1, #0x500 + ldrh r0, [r0, #0x26] + cmp r0, #0 + addne sp, sp, #0x1c + popne {r3, r4, pc} + ldr r2, [r1, #0x51c] + mov r0, #0x19 + mov r1, #0 + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C6398: + ldr r1, _022C65E8 @ =0x02325020 + ldr r0, [r1, #0xc] + add r0, r0, #0x1000 + ldr r0, [r0, #0x320] + cmp r0, #0 + bne _022C6414 + ldrh r0, [r4, #2] + mov r2, #0 + cmp r0, #0 + ldr r0, [r1, #8] + add r0, r0, #0x500 + beq _022C63E8 + strh r2, [r0, #0x26] + ldr r0, [r1, #8] + mov r1, r4 + ldr r2, [r0, #0x51c] + mov r0, #0x100 + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C63E8: + strh r2, [r0, #0x2a] + ldr r1, [r1, #8] + ldr r0, _022C65EC @ =ov00_022C5DA0 + add r1, r1, #0x500 + strh r2, [r1, #0x28] + bl ov00_022BFBD4 + mov r1, r0 + mov r0, #2 + bl ov00_022C7948 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C6414: + mov r1, #0 + mov r2, r1 + mov r0, #1 + bl ov00_022BF308 + mov r0, #0 + bl ov00_022BF2C4 + ldrh r0, [r4, #2] + cmp r0, #0 + beq _022C6468 + ldr r2, _022C65E8 @ =0x02325020 + mov r3, #0 + ldr r0, [r2, #8] + mov r1, r4 + add r0, r0, #0x500 + strh r3, [r0, #0x26] + ldr r2, [r2, #8] + mov r0, #0x100 + ldr r2, [r2, #0x51c] + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C6468: + ldr r0, _022C65EC @ =ov00_022C5DA0 + mov r1, #0 + bl ov00_022C1560 + mov r1, r0 + mov r0, #0x19 + bl ov00_022C7948 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C6488: + ldrh r1, [r4, #2] + cmp r1, #0 + beq _022C64C4 + ldr r2, _022C65E8 @ =0x02325020 + mov r3, #0 + ldr r0, [r2, #8] + mov r1, r4 + add r0, r0, #0x500 + strh r3, [r0, #0x26] + ldr r2, [r2, #8] + mov r0, #0x100 + ldr r2, [r2, #0x51c] + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C64C4: + bl ov00_022C5D5C + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C64D0: + ldrh r0, [r4, #2] + cmp r0, #0 + addne sp, sp, #0x1c + popne {r3, r4, pc} + ldr r0, _022C65E8 @ =0x02325020 + ldrh r1, [r4, #0xa] + ldr r0, [r0, #8] + add sp, sp, #0x1c + add r0, r0, #0x500 + ldrh r2, [r0, #0x2a] + mvn r1, r1 + and r1, r2, r1 + strh r1, [r0, #0x2a] + pop {r3, r4, pc} +_022C6508: + ldrh r0, [r4, #4] + sub r0, r0, #0x10 + cmp r0, #7 + addls pc, pc, r0, lsl #2 + b _022C65E0 +_022C651C: @ jump table + b _022C653C @ case 0 + b _022C655C @ case 1 + b _022C657C @ case 2 + b _022C659C @ case 3 + b _022C65E0 @ case 4 + b _022C65E0 @ case 5 + b _022C65BC @ case 6 + b _022C65E0 @ case 7 +_022C653C: + ldr r0, _022C65E8 @ =0x02325020 + mov r1, r4 + ldr r2, [r0, #8] + mov r0, #0x1d + ldr r2, [r2, #0x51c] + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C655C: + ldr r0, _022C65E8 @ =0x02325020 + mov r1, r4 + ldr r2, [r0, #8] + mov r0, #0x1f + ldr r2, [r2, #0x51c] + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C657C: + ldr r0, _022C65E8 @ =0x02325020 + mov r1, r4 + ldr r2, [r0, #8] + mov r0, #0x20 + ldr r2, [r2, #0x51c] + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C659C: + ldr r0, _022C65E8 @ =0x02325020 + mov r1, r4 + ldr r2, [r0, #8] + mov r0, #0x21 + ldr r2, [r2, #0x51c] + blx r2 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C65BC: + bl FUN_0207BC20 + add sp, sp, #0x1c + pop {r3, r4, pc} +_022C65C8: + ldr r0, _022C65E8 @ =0x02325020 + mov r1, r4 + ldr r2, [r0, #8] + mov r0, #0x100 + ldr r2, [r2, #0x51c] + blx r2 +_022C65E0: + add sp, sp, #0x1c + pop {r3, r4, pc} + .align 2, 0 +_022C65E8: .4byte 0x02325020 +_022C65EC: .4byte ov00_022C5DA0 +_022C65F0: .4byte 0x02318820 +_022C65F4: .4byte 0x000032C8 + arm_func_end ov00_022C5DA0 + + arm_func_start ov00_022C65F8 +ov00_022C65F8: @ 0x022C65F8 + push {r3, lr} + mov r1, r0 + ldrh r0, [r1, #2] + cmp r0, #0 + popne {r3, pc} + ldrh r0, [r1, #4] + cmp r0, #0x15 + bgt _022C6634 + bge _022C664C + cmp r0, #9 + popgt {r3, pc} + cmp r0, #7 + poplt {r3, pc} + cmpne r0, #9 + pop {r3, pc} +_022C6634: + cmp r0, #0x1a + popgt {r3, pc} + cmp r0, #0x19 + poplt {r3, pc} + cmpne r0, #0x1a + pop {r3, pc} +_022C664C: + ldr r2, _022C6664 @ =0x02325020 + mov r0, #9 + ldr r2, [r2, #8] + ldr r2, [r2, #0x51c] + blx r2 + pop {r3, pc} + .align 2, 0 +_022C6664: .4byte 0x02325020 + arm_func_end ov00_022C65F8 + + arm_func_start ov00_022C6668 +ov00_022C6668: @ 0x022C6668 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x1c + mov r6, r0 + ldrh r2, [r6] + ldr r1, _022C6E80 @ =0x02325020 + cmp r2, #0x1d + ldr r4, [r1, #8] + bgt _022C66F4 + cmp r2, #0x1d + bge _022C6760 + cmp r2, #0x15 + addls pc, pc, r2, lsl #2 + b _022C6E68 +_022C669C: @ jump table + b _022C6700 @ case 0 + b _022C6D80 @ case 1 + b _022C6DE0 @ case 2 + b _022C6E68 @ case 3 + b _022C6E68 @ case 4 + b _022C6E68 @ case 5 + b _022C6E68 @ case 6 + b _022C6E68 @ case 7 + b _022C6E68 @ case 8 + b _022C6E68 @ case 9 + b _022C67FC @ case 10 + b _022C6AC4 @ case 11 + b _022C6B14 @ case 12 + b _022C6E68 @ case 13 + b _022C6C8C @ case 14 + b _022C6D00 @ case 15 + b _022C6E68 @ case 16 + b _022C6E68 @ case 17 + b _022C6E68 @ case 18 + b _022C6E68 @ case 19 + b _022C6E68 @ case 20 + b _022C6E1C @ case 21 +_022C66F4: + cmp r2, #0x80 + beq _022C6E44 + b _022C6E68 +_022C6700: + ldrh r0, [r6, #2] + ldr r2, [r4, #0x51c] + mov r1, r6 + cmp r0, #0 + beq _022C6724 + mov r0, #0x100 + blx r2 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6724: + mov r0, #0x15 + blx r2 + ldr r3, _022C6E84 @ =0x02318820 + ldr r0, _022C6E88 @ =ov00_022C6668 + ldrh r1, [r3, #4] + str r1, [sp] + ldrh r1, [r3, #6] + ldrh r2, [r3, #2] + ldrh r3, [r3] + bl ov00_022C15B0 + mov r1, r0 + mov r0, #0x1d + bl ov00_022C7948 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6760: + ldrh r0, [r6, #2] + cmp r0, #0 + beq _022C6784 + ldr r2, [r4, #0x51c] + mov r1, r6 + mov r0, #0x100 + blx r2 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6784: + add r0, r4, #0x440 + str r0, [r1, #0x20] + ldrh r0, [r1, #0x24] + mov r2, #1 + cmp r0, #0 + moveq r0, #1 + strheq r0, [r1, #0x24] + ldr r0, _022C6E80 @ =0x02325020 + ldrh r1, [r0, #0x26] + cmp r1, #0 + moveq r1, #0xc8 + strheq r1, [r0, #0x26] + ldr r0, _022C6E80 @ =0x02325020 + mov r1, #0xff + strb r1, [r0, #0x28] + strb r1, [r0, #0x29] + strb r1, [r0, #0x2a] + strb r1, [r0, #0x2b] + strb r1, [r0, #0x2c] + strb r1, [r0, #0x2d] + str r2, [r4, #0x5e4] + ldr r0, _022C6E88 @ =ov00_022C6668 + ldr r1, _022C6E8C @ =0x02325040 + str r2, [r4, #0x5e8] + bl ov00_022BFDEC + mov r1, r0 + mov r0, #0xa + bl ov00_022C7948 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C67FC: + ldrh r0, [r6, #2] + cmp r0, #0 + beq _022C6820 + ldr r2, [r4, #0x51c] + mov r1, r6 + mov r0, #0x100 + blx r2 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6820: + ldrh r0, [r6, #8] + cmp r0, #3 + addeq sp, sp, #0x1c + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r0, #4 + beq _022C6A4C + cmp r0, #5 + bne _022C6AAC + add ip, r4, #0x600 + mov r5, #0 + add r0, r4, #0x500 + mov fp, #0x180 + b _022C697C +_022C6854: + mla r2, r5, fp, ip + ldrb r3, [r6, #0xa] + ldrb r1, [r2, #0xca] + mov lr, #0 + mov sl, lr + cmp r3, r1 + ldrbeq r1, [r2, #0xcb] + ldrbeq r2, [r6, #0xb] + mov r7, lr + mov r8, lr + cmpeq r2, r1 + moveq sl, #1 + mov sb, lr + cmp sl, #0 + beq _022C68A8 + mov r2, #0x180 + mla r2, r5, r2, ip + ldrb r1, [r6, #0xc] + ldrb r2, [r2, #0xcc] + cmp r1, r2 + moveq sb, #1 +_022C68A8: + cmp sb, #0 + beq _022C68C8 + mov r1, #0x180 + mla r1, r5, r1, ip + ldrb r2, [r6, #0xd] + ldrb r1, [r1, #0xcd] + cmp r2, r1 + moveq r8, #1 +_022C68C8: + cmp r8, #0 + beq _022C68E8 + mov r1, #0x180 + mla r1, r5, r1, ip + ldrb r2, [r6, #0xe] + ldrb r1, [r1, #0xce] + cmp r2, r1 + moveq r7, #1 +_022C68E8: + cmp r7, #0 + beq _022C6908 + mov r1, #0x180 + mla r1, r5, r1, ip + ldrb r2, [r6, #0xf] + ldrb r1, [r1, #0xcf] + cmp r2, r1 + moveq lr, #1 +_022C6908: + cmp lr, #0 + beq _022C6978 + mov r0, #0x180 + mla r0, r5, r0, ip + ldrh r1, [r6, #0x36] + add sb, r6, #0x38 + add r8, r0, #0xf8 + strh r1, [r0, #0xf6] + mov r7, #8 +_022C692C: + ldm sb!, {r0, r1, r2, r3} + stm r8!, {r0, r1, r2, r3} + subs r7, r7, #1 + bne _022C692C + add r1, r4, #0x600 + mov r0, #0x180 + mla r0, r5, r0, r1 + mov r1, #0xc0 + bl FUN_0207A2A4 + ldr r1, _022C6E80 @ =0x02325020 + add r2, r4, #0x600 + mov r0, #0x180 + mla r2, r5, r0, r2 + ldrh r0, [r1] + add r1, r4, #0x440 + mov r3, #0xc0 + bl FUN_0207BD3C + str r5, [r4, #0x5ec] + b _022C69EC +_022C6978: + add r5, r5, #1 +_022C697C: + ldrh r1, [r0, #0xe0] + cmp r5, r1 + blt _022C6854 + cmp r5, #0x10 + bge _022C69EC + mov r0, #0x180 + mla r1, r5, r0, ip + mov r0, r6 + add r7, r5, #1 + add r3, r4, #0x500 + add r1, r1, #0xc0 + mov r2, #0xb8 + strh r7, [r3, #0xe0] + bl FUN_0207C2E0 + add r1, r4, #0x600 + mov r0, #0x180 + mla r0, r5, r0, r1 + mov r1, #0xc0 + bl FUN_0207A2A4 + ldr r1, _022C6E80 @ =0x02325020 + add r2, r4, #0x600 + mov r0, #0x180 + mla r2, r5, r0, r2 + ldrh r0, [r1] + add r1, r4, #0x440 + mov r3, #0xc0 + bl FUN_0207BD3C + str r5, [r4, #0x5ec] +_022C69EC: + ldr r2, [r4, #0x51c] + mov r1, r6 + mov r0, #4 + blx r2 + ldr r0, [r4, #0x5e4] + cmp r0, #0 + addeq sp, sp, #0x1c + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r4, #0x5e8] + cmp r0, #0 + beq _022C6A2C + ldr r0, _022C6E8C @ =0x02325040 + bl ov00_022C5C3C + cmp r0, #0 + bne _022C6A2C + bl ov00_022C7508 +_022C6A2C: + ldr r0, _022C6E88 @ =ov00_022C6668 + ldr r1, _022C6E8C @ =0x02325040 + bl ov00_022BFDEC + mov r1, r0 + mov r0, #0xa + bl ov00_022C7948 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6A4C: + ldr r2, [r4, #0x51c] + mov r1, r6 + mov r0, #5 + blx r2 + ldr r0, [r4, #0x5e4] + cmp r0, #0 + addeq sp, sp, #0x1c + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r4, #0x5e8] + cmp r0, #0 + beq _022C6A8C + ldr r0, _022C6E8C @ =0x02325040 + bl ov00_022C5C3C + cmp r0, #0 + bne _022C6A8C + bl ov00_022C7508 +_022C6A8C: + ldr r0, _022C6E88 @ =ov00_022C6668 + ldr r1, _022C6E8C @ =0x02325040 + bl ov00_022BFDEC + mov r1, r0 + mov r0, #0xa + bl ov00_022C7948 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6AAC: + ldr r2, [r4, #0x51c] + mov r1, r6 + mov r0, #0x100 + blx r2 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6AC4: + ldrh r0, [r6, #2] + cmp r0, #0 + beq _022C6AE8 + ldr r2, [r4, #0x51c] + mov r1, r6 + mov r0, #0x100 + blx r2 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6AE8: + ldr r1, [r4, #0x520] + mov r2, #0 + ldr r0, _022C6E88 @ =ov00_022C6668 + mov r3, #1 + str r2, [sp] + bl ov00_022C0068 + mov r1, r0 + mov r0, #0xc + bl ov00_022C7948 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6B14: + ldrh r0, [r6, #2] + cmp r0, #0 + beq _022C6B44 + add r0, r4, #0x500 + mov r1, #0 + strh r1, [r0, #0xe0] + ldr r2, [r4, #0x51c] + mov r1, r6 + mov r0, #0xb + blx r2 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6B44: + ldrh r0, [r6, #8] + cmp r0, #9 + bgt _022C6B70 + cmp r0, #6 + blt _022C6C74 + beq _022C6B80 + cmp r0, #7 + beq _022C6B9C + cmp r0, #9 + beq _022C6C4C + b _022C6C74 +_022C6B70: + cmp r0, #0x1a + addeq sp, sp, #0x1c + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + b _022C6C74 +_022C6B80: + add r0, r4, #0x500 + mov r1, #0 + strh r1, [r0, #0x2a] + mov r1, #1 + strh r1, [r0, #0x28] + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6B9C: + ldrh r2, [r6, #0xa] + add r0, r4, #0x500 + mov r1, r6 + strh r2, [r0, #0xe2] + ldr r2, [r4, #0x51c] + mov r0, #6 + blx r2 + ldr r1, _022C6E90 @ =ov00_022C65F8 + add r3, r4, #0x500 + mov r0, #1 + mov r2, #0 + strh r0, [r3, #0x2a] + bl ov00_022BF308 + cmp r0, #0 + addne sp, sp, #0x1c + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, r4, #0x500 + ldrh r0, [r0, #0x2c] + add r1, r4, #0x500 + ldrh r2, [r1, #0x18] + cmp r0, #0 + movne r0, #0 + moveq r0, #1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r2, [sp] + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + mov r0, #1 + str r0, [sp, #0x14] + str r0, [sp, #0x18] + ldrh r2, [r1, #0x1a] + ldr r1, [r4, #0x504] + ldr r0, _022C6E88 @ =ov00_022C6668 + add r3, r4, #0x40 + bl ov00_022C038C + mov r1, r0 + mov r0, #0xe + bl ov00_022C7948 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6C4C: + ldr r2, [r4, #0x51c] + mov r1, r6 + mov r0, #0xa + blx r2 + add r0, r4, #0x500 + mov r1, #0 + strh r1, [r0, #0x2a] + strh r1, [r0, #0x28] + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6C74: + ldr r2, [r4, #0x51c] + mov r1, r6 + mov r0, #0x100 + blx r2 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6C8C: + ldrh r0, [r6, #4] + cmp r0, #0xa + beq _022C6CB4 + cmp r0, #0xc + addeq sp, sp, #0x1c + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r0, #0xd + addeq sp, sp, #0x1c + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + b _022C6CE8 +_022C6CB4: + add r0, r4, #0x500 + mov r1, #1 + strh r1, [r0, #0x28] + bl ov00_022C5CAC + cmp r0, #0 + addeq sp, sp, #0x1c + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r2, [r4, #0x51c] + mov r0, #0x19 + mov r1, #0 + blx r2 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6CE8: + ldr r2, [r4, #0x51c] + mov r1, r6 + mov r0, #0x100 + blx r2 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6D00: + mov r0, #0 + strb r0, [r4, #0x50c] + ldrh r0, [r6, #2] + cmp r0, #0 + bne _022C6D28 + ldr r2, [r4, #0x51c] + mov r1, r6 + mov r0, #8 + blx r2 + b _022C6D4C +_022C6D28: + cmp r0, #9 + ldr r2, [r4, #0x51c] + mov r1, r6 + bne _022C6D44 + mov r0, #0x29 + blx r2 + b _022C6D4C +_022C6D44: + mov r0, #0x12 + blx r2 +_022C6D4C: + ldr r0, _022C6E80 @ =0x02325020 + ldr r0, [r0, #8] + add r0, r0, #0x500 + ldrh r0, [r0, #0x26] + cmp r0, #0 + addne sp, sp, #0x1c + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r2, [r4, #0x51c] + mov r0, #0x19 + mov r1, #0 + blx r2 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6D80: + ldrh r0, [r6, #2] + cmp r0, #0 + add r0, r4, #0x500 + beq _022C6DB0 + mov r1, #0 + strh r1, [r0, #0x26] + ldr r2, [r4, #0x51c] + mov r1, r6 + mov r0, #0x100 + blx r2 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6DB0: + mov r2, #0 + strh r2, [r0, #0x2a] + ldr r1, [r1, #8] + ldr r0, _022C6E88 @ =ov00_022C6668 + add r1, r1, #0x500 + strh r2, [r1, #0x28] + bl ov00_022BFBD4 + mov r1, r0 + mov r0, #2 + bl ov00_022C7948 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6DE0: + ldrh r1, [r6, #2] + cmp r1, #0 + beq _022C6E10 + add r0, r4, #0x500 + mov r1, #0 + strh r1, [r0, #0x26] + ldr r2, [r4, #0x51c] + mov r1, r6 + mov r0, #0x100 + blx r2 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6E10: + bl ov00_022C5D5C + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6E1C: + bl ov00_022C5CAC + cmp r0, #0 + addeq sp, sp, #0x1c + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r2, [r4, #0x51c] + mov r0, #0x19 + mov r1, #0 + blx r2 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6E44: + ldrh r0, [r6, #4] + cmp r0, #0x16 + beq _022C6E5C + add sp, sp, #0x1c + cmp r0, #0x17 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6E5C: + bl FUN_0207BC20 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022C6E68: + ldr r2, [r4, #0x51c] + mov r1, r6 + mov r0, #0x100 + blx r2 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022C6E80: .4byte 0x02325020 +_022C6E84: .4byte 0x02318820 +_022C6E88: .4byte ov00_022C6668 +_022C6E8C: .4byte 0x02325040 +_022C6E90: .4byte ov00_022C65F8 + arm_func_end ov00_022C6668 + + arm_func_start ov00_022C6E94 +ov00_022C6E94: @ 0x022C6E94 + push {r3, lr} + sub sp, sp, #8 + add r0, sp, #0 + bl FUN_0207B9EC + mov r1, #0 + add r2, sp, #0 + mov r3, r1 +_022C6EB0: + ldrb r0, [r2], #1 + add r1, r1, #1 + cmp r1, #6 + add r3, r3, r0 + blt _022C6EB0 + ldr r1, _022C6EF4 @ =0x027FFC3C + ldr r0, _022C6EF8 @ =0xCCCCCCCD + ldr r1, [r1] + mov r2, #0x14 + add r1, r3, r1 + rsb r3, r1, r1, lsl #3 + umull r1, r0, r3, r0 + lsr r0, r0, #4 + umull r0, r1, r2, r0 + sub r0, r3, r0 + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_022C6EF4: .4byte 0x027FFC3C +_022C6EF8: .4byte 0xCCCCCCCD + arm_func_end ov00_022C6E94 + + arm_func_start ov00_022C6EFC +ov00_022C6EFC: @ 0x022C6EFC + push {r3, r4, r5, r6, r7, r8, sb, lr} + ldr r4, _022C70D4 @ =0x02325020 + mov sb, r1 + ldr r1, [r4, #0xc] + mov r8, r2 + cmp r1, #0 + addne r1, r1, #0x1300 + ldrhne r1, [r1, #0x16] + mov r7, r3 + cmpne r1, #0 + movne r0, #2 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + add r0, r0, #0x1f + bic r4, r0, #0x1f + add r0, r4, #0x1f + add r0, r0, #0x1e00 + cmp r7, #0x10000 + bic r5, r0, #0x1f + bne _022C6F50 + bl ov00_022BF96C + mov r7, r0 +_022C6F50: + bl FUN_0207B7E4 + ldr r3, _022C70D8 @ =0x0000FFFF + ldr r1, _022C70DC @ =0x02318820 + mov r2, #5 + strh r3, [r1, #6] + strh r2, [r1] + mov r2, #0x28 + strh r2, [r1, #2] + mov r6, r0 + strh r2, [r1, #4] + mov r2, #1 + ldr r0, [sp, #0x20] + ldr r3, _022C70D4 @ =0x02325020 + str r2, [r1, #0xc] + strh r0, [r3] + str r4, [r3, #8] + mov r1, r4 + mov r0, #0 + mov r2, #0x1e00 + str r5, [r3, #0xc] + bl FUN_0207C314 + mov r1, r5 + mov r0, #0 + mov r2, #0x1340 + bl FUN_0207C2B8 + ldrb r0, [sb, #1] + add r2, r4, #0x530 + mov r1, #0 + cmp r0, #0 + ble _022C6FE4 +_022C6FC8: + add r0, sb, r1, lsl #1 + ldrh r0, [r0, #2] + add r1, r1, #1 + strh r0, [r2], #2 + ldrb r0, [sb, #1] + cmp r1, r0 + blt _022C6FC8 +_022C6FE4: + add r0, r4, #0x138 + add r3, r0, #0x400 + ldr r0, _022C70DC @ =0x02318820 + mov ip, #0 + ldr r1, [r0, #8] +_022C6FF8: + ldrh r2, [r1] + cmp r2, #0 + beq _022C701C + add r1, r1, #2 + add ip, ip, #1 + str r1, [r0, #8] + cmp ip, #0x10 + strh r2, [r3], #2 + blt _022C6FF8 +_022C701C: + mov r0, sb + add r1, r5, #0x1300 + mov r2, #0x16 + bl FUN_0207C4C8 + ldrb r0, [sb, #1] + cmp r0, #0xa + bhs _022C7048 + add r0, r5, r0, lsl #1 + add r0, r0, #0x1300 + mov r1, #0 + strh r1, [r0, #2] +_022C7048: + add r0, r4, #0x500 + mov r1, #0x100 + strh r1, [r0] + mov r1, #8 + strh r1, [r0, #2] + mov r2, #0 + strh r2, [r0, #0x18] + strh r2, [r0, #0x1a] + mov r1, #1 + strh r1, [r0, #0x2c] + add r0, r5, #0x400 + str r0, [r4, #0x504] + strh r2, [r4, #0xe] + strh r2, [r4, #0x12] + strh r1, [r4, #0x16] + strh r2, [r4, #0x14] + str r8, [r4, #8] + strh r7, [r4, #0xc] + bl ov00_022C6E94 + add r0, r0, #0xc8 + strh r0, [r4, #0x18] + mov r0, #0xf + strh r0, [r4, #0x10] + mov r3, #0 + strb r3, [r4, #0x50c] + strb r3, [r4, #0x50d] + add r1, r5, #0x1300 + mov r2, #1 + mov r0, r6 + strh r2, [r1, #0x16] + add r1, r5, #0x1000 + str r3, [r1, #0x31c] + bl FUN_0207B7F8 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022C70D4: .4byte 0x02325020 +_022C70D8: .4byte 0x0000FFFF +_022C70DC: .4byte 0x02318820 + arm_func_end ov00_022C6EFC +_022C70E0: + .byte 0x60, 0x30, 0x9F, 0xE5, 0x03, 0x00, 0x50, 0xE1, 0x01, 0x00, 0x00, 0x8A, 0xE4, 0x00, 0x50, 0xE3 + .byte 0x01, 0x00, 0x00, 0x2A, 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x00, 0x51, 0xE3 + .byte 0x01, 0x00, 0x00, 0x8A, 0x08, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x00, 0x2A, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x26, 0x00, 0x80, 0xE2, 0x00, 0x01, 0xA0, 0xE1, 0x20, 0x10, 0x81, 0xE2 + .byte 0x4A, 0x00, 0x80, 0xE2, 0x01, 0x11, 0xA0, 0xE1, 0x01, 0x3C, 0x80, 0xE2, 0x70, 0x00, 0x81, 0xE2 + .byte 0x92, 0x30, 0x21, 0xE0, 0x10, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x51, 0xE1, 0x01, 0x00, 0xA0, 0xB3 + .byte 0x00, 0x00, 0xA0, 0xA3, 0x1E, 0xFF, 0x2F, 0xE1, 0xFE, 0x01, 0x00, 0x00, 0xE0, 0x15, 0x00, 0x00 + .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x50, 0xA0, 0xE1, 0x01, 0x40, 0xA0, 0xE1, 0xA0, 0xD1, 0xF6, 0xEB + .byte 0x7C, 0x10, 0x9F, 0xE5, 0x00, 0x60, 0xA0, 0xE1, 0x08, 0x10, 0x91, 0xE5, 0x0D, 0x15, 0xD1, 0xE5 + .byte 0x00, 0x00, 0x51, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x9E, 0xD1, 0xF6, 0xEB, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x70, 0x80, 0xBD, 0xE8, 0x05, 0x00, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1, 0x08, 0x10, 0xA0, 0xE3 + .byte 0xD2, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x06, 0x00, 0xA0, 0xE1 + .byte 0x94, 0xD1, 0xF6, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x70, 0x80, 0xBD, 0xE8, 0x30, 0x20, 0x9F, 0xE5 + .byte 0x06, 0x00, 0xA0, 0xE1, 0x08, 0x10, 0x92, 0xE5, 0x08, 0x30, 0xA0, 0xE3, 0xB0, 0x41, 0xC1, 0xE1 + .byte 0x08, 0x10, 0x92, 0xE5, 0x05, 0x1C, 0x81, 0xE2, 0xB0, 0x50, 0xC1, 0xE1, 0x08, 0x10, 0x92, 0xE5 + .byte 0x05, 0x1C, 0x81, 0xE2, 0xB2, 0x30, 0xC1, 0xE1, 0x86, 0xD1, 0xF6, 0xEB, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x70, 0x80, 0xBD, 0xE8, 0x20, 0x50, 0x32, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0xC4, 0x20, 0x9F, 0xE5 + .byte 0x00, 0x30, 0xA0, 0xE3, 0x08, 0x10, 0x92, 0xE5, 0x0A, 0x00, 0xA0, 0xE3, 0x05, 0x1C, 0x81, 0xE2 + .byte 0xB8, 0x32, 0xC1, 0xE1, 0x08, 0x10, 0x92, 0xE5, 0x05, 0x1C, 0x81, 0xE2, 0xBA, 0x32, 0xC1, 0xE1 + .byte 0x08, 0x10, 0x92, 0xE5, 0x05, 0x1C, 0x81, 0xE2, 0xB6, 0x32, 0xC1, 0xE1, 0x08, 0x10, 0x92, 0xE5 + .byte 0x05, 0x1C, 0x81, 0xE2, 0xB8, 0x34, 0xC1, 0xE1, 0x4D, 0x01, 0x00, 0xEB, 0x84, 0x40, 0x9F, 0xE5 + .byte 0x0C, 0x00, 0x94, 0xE5, 0x01, 0x0A, 0x80, 0xE2, 0x20, 0x03, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x12, 0x00, 0x00, 0x1A, 0xB0, 0x20, 0xD4, 0xE1, 0x03, 0x00, 0x94, 0xE9, 0x08, 0x15, 0x91, 0xE5 + .byte 0x2F, 0xE2, 0xFF, 0xEB, 0x04, 0x00, 0x50, 0xE3, 0xF9, 0xFF, 0xFF, 0x0A, 0x02, 0x00, 0x50, 0xE3 + .byte 0x08, 0x00, 0xA0, 0x13, 0x10, 0x80, 0xBD, 0x18, 0x48, 0x00, 0x9F, 0xE5, 0x08, 0x00, 0x90, 0xE5 + .byte 0x08, 0x05, 0x90, 0xE5, 0x12, 0xE0, 0xFF, 0xEB, 0x38, 0x00, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE3 + .byte 0x08, 0x10, 0x90, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x0D, 0x25, 0xC1, 0xE5, 0x10, 0x80, 0xBD, 0xE8 + .byte 0x08, 0x00, 0x94, 0xE5, 0x08, 0x05, 0x90, 0xE5, 0x09, 0xE0, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x08, 0x00, 0x90, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x0D, 0x15, 0xC0, 0xE5, 0x96, 0xFA, 0xFF, 0xEB + .byte 0x00, 0x00, 0xA0, 0xE3, 0x10, 0x80, 0xBD, 0xE8, 0x20, 0x50, 0x32, 0x02, 0x70, 0x40, 0x2D, 0xE9 + .byte 0x00, 0x50, 0xA0, 0xE1, 0x46, 0xD1, 0xF6, 0xEB, 0xBC, 0x31, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1 + .byte 0x08, 0x00, 0x93, 0xE5, 0xB4, 0x21, 0x9F, 0xE5, 0xB2, 0x53, 0xC0, 0xE1, 0x0C, 0x50, 0x93, 0xE5 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x1F, 0x10, 0x85, 0xE2, 0x7D, 0x1C, 0x81, 0xE2, 0x1F, 0x10, 0xC1, 0xE3 + .byte 0x04, 0x10, 0x83, 0xE5, 0x01, 0x1A, 0x85, 0xE2, 0xE4, 0x64, 0x91, 0xE5, 0x4D, 0x1D, 0x85, 0xE2 + .byte 0xEC, 0xD3, 0xF6, 0xEB, 0x06, 0x00, 0xA0, 0xE1, 0xD8, 0xEF, 0xFF, 0xEB, 0x78, 0x11, 0x9F, 0xE5 + .byte 0x08, 0x00, 0x91, 0xE5, 0x0C, 0x20, 0x91, 0xE5, 0x05, 0x0C, 0x80, 0xE2, 0xB0, 0x30, 0xD0, 0xE1 + .byte 0x01, 0x0A, 0x82, 0xE2, 0x06, 0x20, 0x43, 0xE2, 0x18, 0x23, 0x80, 0xE5, 0x08, 0x00, 0x91, 0xE5 + .byte 0x05, 0x0C, 0x80, 0xE2, 0xB2, 0x00, 0xD0, 0xE1, 0xB8, 0x02, 0x00, 0xEB, 0x48, 0x01, 0x9F, 0xE5 + .byte 0x0C, 0x00, 0x90, 0xE5, 0x4E, 0x0F, 0x80, 0xE2, 0x05, 0x0B, 0x80, 0xE2, 0xBF, 0x02, 0x00, 0xEB + .byte 0x00, 0x50, 0xA0, 0xE3, 0x30, 0x21, 0x9F, 0xE5, 0x05, 0x00, 0xA0, 0xE1, 0x00, 0x30, 0xE0, 0xE3 + .byte 0x0C, 0x10, 0x92, 0xE5, 0x05, 0x11, 0x81, 0xE0, 0x01, 0x1A, 0x81, 0xE2, 0xE8, 0x04, 0x81, 0xE5 + .byte 0x0C, 0x10, 0x92, 0xE5, 0x05, 0x10, 0x81, 0xE0, 0x01, 0x1A, 0x81, 0xE2, 0x01, 0x50, 0x85, 0xE2 + .byte 0x26, 0x35, 0xC1, 0xE5, 0x0F, 0x00, 0x55, 0xE3, 0xF4, 0xFF, 0xFF, 0xBA, 0xF8, 0x30, 0x9F, 0xE5 + .byte 0xFC, 0x20, 0x9F, 0xE5, 0x0C, 0x10, 0x93, 0xE5, 0x01, 0x1A, 0x81, 0xE2, 0x24, 0x05, 0xC1, 0xE5 + .byte 0x0C, 0x10, 0x93, 0xE5, 0xE2, 0x1F, 0x81, 0xE2, 0x05, 0x1B, 0x81, 0xE2, 0xC1, 0xD3, 0xF6, 0xEB + .byte 0xD4, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x0C, 0x00, 0x90, 0xE5, 0x1E, 0x20, 0xA0, 0xE3 + .byte 0xD5, 0x0F, 0x80, 0xE2, 0x05, 0x0B, 0x80, 0xE2, 0x0F, 0xD4, 0xF6, 0xEB, 0xB8, 0x10, 0x9F, 0xE5 + .byte 0x01, 0x20, 0xA0, 0xE3, 0x08, 0x00, 0x91, 0xE5, 0xB8, 0x30, 0x9F, 0xE5, 0x05, 0x0C, 0x80, 0xE2 + .byte 0xB4, 0x22, 0xC0, 0xE1, 0x08, 0x00, 0x91, 0xE5, 0xAC, 0x20, 0x9F, 0xE5, 0x1C, 0x35, 0x80, 0xE5 + .byte 0x08, 0x00, 0x91, 0xE5, 0x08, 0x25, 0x80, 0xE5, 0x08, 0x20, 0x91, 0xE5, 0x05, 0x0C, 0x82, 0xE2 + .byte 0xB0, 0x00, 0xD0, 0xE1, 0xB4, 0x03, 0xC2, 0xE1, 0x08, 0x00, 0x91, 0xE5, 0xB4, 0x23, 0xD0, 0xE1 + .byte 0x05, 0x0C, 0x80, 0xE2, 0x23, 0x20, 0x82, 0xE2, 0x1F, 0x20, 0xC2, 0xE3, 0xB8, 0x21, 0xC0, 0xE1 + .byte 0x08, 0x20, 0x91, 0xE5, 0x05, 0x0C, 0x82, 0xE2, 0xB2, 0x00, 0xD0, 0xE1, 0xB6, 0x03, 0xC2, 0xE1 + .byte 0x08, 0x00, 0x91, 0xE5, 0xB6, 0x13, 0xD0, 0xE1, 0x05, 0x0C, 0x80, 0xE2, 0x0E, 0x10, 0x81, 0xE2 + .byte 0x01, 0x12, 0x61, 0xE0, 0x29, 0x10, 0x81, 0xE2, 0x1F, 0x10, 0xC1, 0xE3, 0x81, 0x10, 0xA0, 0xE1 + .byte 0xBA, 0x11, 0xC0, 0xE1, 0x84, 0xF8, 0xFF, 0xEB, 0x62, 0xFF, 0xFF, 0xEB, 0x00, 0x50, 0xA0, 0xE1 + .byte 0x04, 0x00, 0xA0, 0xE1, 0xE3, 0xD0, 0xF6, 0xEB, 0x0F, 0x00, 0xA0, 0xE3, 0x01, 0x10, 0xA0, 0xE3 + .byte 0xA1, 0xD9, 0xF6, 0xEB, 0x10, 0x10, 0x9F, 0xE5, 0x0C, 0x10, 0x91, 0xE5, 0x07, 0x1A, 0x81, 0xE2 + .byte 0xC8, 0x04, 0x81, 0xE5, 0x05, 0x00, 0xA0, 0xE1, 0x70, 0x80, 0xBD, 0xE8, 0x20, 0x50, 0x32, 0x02 + .byte 0xC0, 0x69, 0x00, 0x00, 0x40, 0x5D, 0x00, 0x00, 0x10, 0x35, 0x2C, 0x02, 0xA0, 0x5D, 0x2C, 0x02 + .byte 0x14, 0x10, 0x9F, 0xE5, 0x14, 0xC0, 0x9F, 0xE5, 0x0C, 0x10, 0x91, 0xE5, 0x01, 0x20, 0xA0, 0xE3 + .byte 0x01, 0x1A, 0x81, 0xE2, 0x20, 0x23, 0x81, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x20, 0x50, 0x32, 0x02 + .byte 0xBC, 0x72, 0x2C, 0x02 + + arm_func_start ov00_022C74C4 +ov00_022C74C4: @ 0x022C74C4 + push {r4, lr} + ldr r0, _022C74F8 @ =0x02325020 + ldr r0, [r0, #8] + ldr r0, [r0, #0x508] + bl ov00_022BFB9C + mov r4, r0 + mov r1, r4 + mov r0, #1 + bl ov00_022C7948 + cmp r4, #2 + moveq r4, #0 + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_022C74F8: .4byte 0x02325020 + arm_func_end ov00_022C74C4 +_022C74FC: + .byte 0x00, 0xC0, 0x9F, 0xE5 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xC4, 0x74, 0x2C, 0x02 + + arm_func_start ov00_022C7508 +ov00_022C7508: @ 0x022C7508 + push {r3, r4, r5, lr} + mov r5, #1 + bl FUN_0207B7E4 + ldr r1, _022C7594 @ =0x02325020 + mov r4, r0 + ldr r2, [r1, #8] + ldrb r0, [r2, #0x50d] + cmp r0, #0 + bne _022C7538 + mov r0, #0 + bl ov00_022C5D5C + b _022C7584 +_022C7538: + add r0, r2, #0x500 + ldrh r0, [r0, #0x26] + cmp r0, #0 + bne _022C7584 + mov r0, #0 + str r0, [r2, #0x5e4] + ldr r0, [r1, #8] + mov r1, r5 + add r0, r0, #0x500 + strh r1, [r0, #0x26] + bl ov00_022C7C2C + cmp r0, #0 + beq _022C757C + ldr r0, _022C7598 @ =0x022C74FC + bl ov00_022C7DD8 + mov r5, #0 + b _022C7584 +_022C757C: + bl ov00_022C74C4 + mov r5, r0 +_022C7584: + mov r0, r4 + bl FUN_0207B7F8 + mov r0, r5 + pop {r3, r4, r5, pc} + .align 2, 0 +_022C7594: .4byte 0x02325020 +_022C7598: .4byte 0x022C74FC + arm_func_end ov00_022C7508 + + arm_func_start ov00_022C759C +ov00_022C759C: @ 0x022C759C + push {r4, lr} + bl FUN_0207B7E4 + ldr r1, _022C75D4 @ =0x02325020 + mov r4, r0 + ldr r0, [r1, #0xc] + add r0, r0, #0x1000 + ldr r0, [r0, #0x320] + cmp r0, #0 + bne _022C75C4 + bl FUN_0207BC20 +_022C75C4: + bl ov00_022C7508 + mov r0, r4 + bl FUN_0207B7F8 + pop {r4, pc} + .align 2, 0 +_022C75D4: .4byte 0x02325020 + arm_func_end ov00_022C759C + + arm_func_start ov00_022C75D8 +ov00_022C75D8: @ 0x022C75D8 + push {r3, r4, r5, r6, r7, lr} + mov r5, r0 + ldr r0, _022C7758 @ =ov00_022C5DA0 + mov r1, r5 + bl ov00_022C0134 + cmp r5, #0 + popeq {r3, r4, r5, r6, r7, pc} + cmp r5, #0x10 + pophs {r3, r4, r5, r6, r7, pc} + ldr r2, _022C775C @ =0x02325020 + sub r4, r5, #1 + ldr r0, [r2, #0xc] + mov r1, #0 + add r0, r0, r4, lsl #1 + add r0, r0, #0x1400 + strh r1, [r0, #0x8a] + ldr r0, [r2, #0xc] + mov r2, #4 + add r0, r0, #0xa8 + add r0, r0, #0x1400 + add r0, r0, r4, lsl #2 + bl FUN_0207C40C + ldr r0, _022C775C @ =0x02325020 + mov r2, #0x16 + ldr r0, [r0, #0xc] + mov r1, #0 + add r0, r0, #0x1340 + mla r0, r4, r2, r0 + bl FUN_0207C40C + mov r0, r5 + bl ov00_022C7E70 + ldr ip, _022C775C @ =0x02325020 + mov r2, #0 + ldr r0, [ip, #0xc] + sub r1, r2, #1 + add r0, r0, r4, lsl #1 + add r0, r0, #0x1700 + strh r2, [r0, #0x54] + ldr r3, [ip, #0xc] + add r0, r3, r4 + add r0, r0, #0x1500 + ldrsb r2, [r0, #0x26] + cmp r2, r1 + beq _022C76F8 + ldr r0, _022C7760 @ =0x000005D4 + and r1, r2, #0xff + mul r0, r1, r0 + add r1, r3, r0 + add r3, r1, #0x1d00 + mov r2, #1 + ldrh r6, [r3, #0x4e] + mvn r1, r2, lsl r5 + and r6, r6, r1 + strh r6, [r3, #0x4e] + ldr r3, [ip, #0xc] + sub r6, r2, #2 + add r3, r3, r0 + add r3, r3, #0x1d00 + ldrh r7, [r3, #0x50] + mov lr, r4 + orr r2, r7, r2, lsl r5 + strh r2, [r3, #0x50] + ldr r2, [ip, #0xc] + add r2, r2, lr + add r2, r2, #0x1000 + strb r6, [r2, #0x526] + ldr r2, [ip, #0xc] + add r0, r2, r0 + add r0, r0, #0x1d00 + ldrh r2, [r0, #0x4c] + and r1, r2, r1 + strh r1, [r0, #0x4c] +_022C76F8: + ldr r1, _022C775C @ =0x02325020 + mov ip, #1 + ldr r2, [r1, #0xc] + add r0, r2, #0x1500 + ldrh r0, [r0, #0x36] + tst r0, ip, lsl r5 + beq _022C773C + add r0, r2, #0x1000 + ldrb r3, [r0, #0x535] + mvn r2, ip, lsl r5 + sub r3, r3, #1 + strb r3, [r0, #0x535] + ldr r0, [r1, #0xc] + add r0, r0, #0x1500 + ldrh r1, [r0, #0x36] + and r1, r1, r2 + strh r1, [r0, #0x36] +_022C773C: + ldr r0, _022C775C @ =0x02325020 + mov r1, #0 + ldr r0, [r0, #0xc] + add r0, r0, r4, lsl #2 + add r0, r0, #0x1000 + str r1, [r0, #0x4e8] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022C7758: .4byte ov00_022C5DA0 +_022C775C: .4byte 0x02325020 +_022C7760: .4byte 0x000005D4 + arm_func_end ov00_022C75D8 +_022C7764: + .byte 0x04, 0x10, 0x9F, 0xE5, 0xB6, 0x02, 0xC1, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x20, 0x50, 0x32, 0x02 + + arm_func_start ov00_022C7774 +ov00_022C7774: @ 0x022C7774 + push {r3, r4, lr} + sub sp, sp, #0xc + ldrh r4, [sp, #0x18] + mov r3, r2 + mov r2, r1 + str r4, [sp] + mov r4, #1 + str r4, [sp, #4] + mov r4, #3 + mov r1, #0 + str r4, [sp, #8] + bl ov00_022C0498 + mov r4, r0 + mov r1, r4 + mov r0, #0xf + bl ov00_022C7948 + mov r0, r4 + add sp, sp, #0xc + pop {r3, r4, pc} + arm_func_end ov00_022C7774 + + arm_func_start ov00_022C77C0 +ov00_022C77C0: @ 0x022C77C0 + push {r3, r4, r5, lr} + ldr ip, _022C7898 @ =0x02325020 + lsl r3, r1, #0x10 + ldr r5, [ip, #8] + lsl ip, r2, #0x10 + add lr, r5, #0x500 + ldrh r4, [lr, #0x28] + mov r1, r0 + lsr r2, r3, #0x10 + cmp r4, #0 + ldrhne r0, [lr, #0x26] + lsr r4, ip, #0x10 + cmpne r0, #1 + moveq r0, #1 + popeq {r3, r4, r5, pc} + ldrh r0, [lr, #0x24] + cmp r0, #1 + beq _022C7814 + cmp r0, #2 + beq _022C785C + b _022C7890 +_022C7814: + ldrh r0, [lr, #0x2c] + cmp r0, #0 + moveq r0, #0x3e8 + movne r0, #0 + lsl r3, r0, #0x10 + str r4, [sp] + ldr r0, [r5, #0x508] + lsr r3, r3, #0x10 + bl ov00_022C7774 + cmp r0, #2 + bne _022C7850 + ldr r1, _022C7898 @ =0x02325020 + mov r2, #1 + ldr r1, [r1, #8] + strb r2, [r1, #0x50c] +_022C7850: + cmp r0, #2 + moveq r0, #0 + pop {r3, r4, r5, pc} +_022C785C: + ldr r0, _022C789C @ =ov00_022C6668 + mov r3, #0 + str r4, [sp] + bl ov00_022C7774 + cmp r0, #2 + bne _022C7884 + ldr r1, _022C7898 @ =0x02325020 + mov r2, #1 + ldr r1, [r1, #8] + strb r2, [r1, #0x50c] +_022C7884: + cmp r0, #2 + moveq r0, #0 + pop {r3, r4, r5, pc} +_022C7890: + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_022C7898: .4byte 0x02325020 +_022C789C: .4byte ov00_022C6668 + arm_func_end ov00_022C77C0 + + arm_func_start ov00_022C78A0 +ov00_022C78A0: @ 0x022C78A0 + ldr r0, _022C78B0 @ =0x02325020 + ldr r0, [r0, #8] + ldr r0, [r0, #8] + bx lr + .align 2, 0 +_022C78B0: .4byte 0x02325020 + arm_func_end ov00_022C78A0 + + arm_func_start ov00_022C78B4 +ov00_022C78B4: @ 0x022C78B4 + ldr r0, _022C78C4 @ =0x02325020 + ldr r0, [r0, #8] + ldrh r0, [r0, #0xc] + bx lr + .align 2, 0 +_022C78C4: .4byte 0x02325020 + arm_func_end ov00_022C78B4 + + arm_func_start ov00_022C78C8 +ov00_022C78C8: @ 0x022C78C8 + ldr r0, _022C7924 @ =0x02325020 + ldr r1, [r0, #8] + ldrh r0, [r1, #0x12] + cmp r0, #0 + ldrh r0, [r1, #0xe] + movne r2, #2 + moveq r2, #0 + cmp r0, #0 + movne r3, #1 + ldrh r0, [r1, #0x14] + moveq r3, #0 + cmp r0, #0 + movne ip, #4 + ldrh r0, [r1, #0x16] + moveq ip, #0 + cmp r0, #0 + movne r1, #8 + orr r0, r3, r2 + moveq r1, #0 + orr r0, ip, r0 + orr r0, r1, r0 + and r0, r0, #0xff + bx lr + .align 2, 0 +_022C7924: .4byte 0x02325020 + arm_func_end ov00_022C78C8 + + arm_func_start ov00_022C7928 +ov00_022C7928: @ 0x022C7928 + ldr r0, _022C7944 @ =0x02325020 + ldr r0, [r0, #8] + ldrb r0, [r0, #0x50d] + cmp r0, #1 + moveq r0, #1 + movne r0, #0 + bx lr + .align 2, 0 +_022C7944: .4byte 0x02325020 + arm_func_end ov00_022C7928 + + arm_func_start ov00_022C7948 +ov00_022C7948: @ 0x022C7948 + push {r3, lr} + cmp r1, #2 + cmpne r1, #0 + popeq {r3, pc} + ldr r2, _022C797C @ =0x02325020 + strh r0, [sp] + ldr r0, [r2, #8] + strh r1, [sp, #2] + ldr r2, [r0, #0x51c] + add r1, sp, #0 + mov r0, #0xff + blx r2 + pop {r3, pc} + .align 2, 0 +_022C797C: .4byte 0x02325020 + arm_func_end ov00_022C7948 + + arm_func_start ov00_022C7980 +ov00_022C7980: @ 0x022C7980 + ldr ip, _022C7990 @ =FUN_0207C40C + mov r1, #0 + mov r2, #0x70 + bx ip + .align 2, 0 +_022C7990: .4byte FUN_0207C40C + arm_func_end ov00_022C7980 + + arm_func_start ov00_022C7994 +ov00_022C7994: @ 0x022C7994 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r4, r0 + mov sb, r1 + mov r8, r2 + mov r7, r3 + bl FUN_0207B7E4 + add r6, r4, #0x30 + mov r5, r0 + add r4, r4, #0x70 +_022C79B8: + cmp r6, r4 + blo _022C79C4 + bl FUN_0207BC20 +_022C79C4: + ldr r0, [r6, #0xc] + cmp r0, #0 + bne _022C79E8 + str sb, [r6] + str r8, [r6, #4] + ldr r0, [sp, #0x20] + str r7, [r6, #8] + str r0, [r6, #0xc] + b _022C79F0 +_022C79E8: + add r6, r6, #0x10 + b _022C79B8 +_022C79F0: + mov r0, r5 + bl FUN_0207B7F8 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_022C7994 + + arm_func_start ov00_022C79FC +ov00_022C79FC: @ 0x022C79FC push {r3, r4, r5, r6, r7, r8, sb, lr} mov sb, r0 mov r8, r1 mov r7, r2 - bl DungeonSwapIdToIdx + mov r6, r3 + mov r4, #0 + bl FUN_0207B7E4 + add r2, sb, #0x30 + add r1, sb, #0x70 mov r5, r0 - mov r0, sb - bl GetMaxReachedFloor - mov r6, r0 - mov r0, r5 - bl GetDungeonMode - mov r4, r0 - cmp r4, #1 - moveq r0, #0x11 - popeq {r3, r4, r5, r6, r7, r8, sb, pc} - cmp r6, #1 - bge _0204F4EC - mov r0, r5 - bl FUN_0204cee0 - cmp r0, #0 - bne _0204F4EC - cmp r4, #3 - movne r0, #5 - moveq r0, #9 - pop {r3, r4, r5, r6, r7, r8, sb, pc} -_0204F4EC: - cmp r8, r6 - movgt r0, #9 - popgt {r3, r4, r5, r6, r7, r8, sb, pc} - cmp sb, #0x26 - cmpne sb, #0x29 - cmpne sb, #0x3f - cmpne sb, #0x63 - cmpne sb, #0x64 - cmpne sb, #0x65 - cmpne sb, #0x66 - cmpne sb, #0x67 - cmpne sb, #0x68 - cmpne sb, #0x6b - cmpne sb, #0x6c - cmpne sb, #0x6d - cmpne sb, #0x6e - cmpne sb, #0xae - ldreq r0, _0204F558 @ =0x00004001 - popeq {r3, r4, r5, r6, r7, r8, sb, pc} - mov r0, sb + cmp r2, r1 + bhs _022C7A84 +_022C7A2C: + ldr r0, [r2, #0xc] + cmp r0, #2 + blo _022C7A78 + ldr r0, [r2] + subs r0, r8, r0 + bmi _022C7A78 + ldr r3, [r2, #4] + add ip, r0, r6 + cmp ip, r3 + bhi _022C7A78 + ldr r3, [r2, #8] mov r1, r7 - bl FUN_0204f284 - mov r4, r0 - mov r0, sb - bl FUN_0204f364 - orr r0, r4, r0 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0204F558: .4byte 0x00004001 - arm_func_end FUN_0204f488 -_0204F55C: - .byte 0x14, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x00, 0xD1, 0xE7, 0x02, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13 - .byte 0xFF, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0xE8, 0x1A, 0x0A, 0x02 - - arm_func_start GetNbFloors -GetNbFloors: @ 0x0204F57C - cmp r0, #0xb4 - blo _0204F590 - cmp r0, #0xbd - movls r0, #5 - bxls lr -_0204F590: - cmp r0, #0xbe - moveq r0, #1 - bxeq lr - cmp r0, #0xbf - ldrlo r1, _0204F5B0 @ =0x0209E3A0 - movhs r0, #0x30 - ldrblo r0, [r1, r0, lsl #2] - bx lr - .align 2, 0 -_0204F5B0: .4byte 0x0209E3A0 - arm_func_end GetNbFloors - - arm_func_start GetNbFloorsPlusOne -GetNbFloorsPlusOne: @ 0x0204F5B4 - push {r3, lr} - bl GetNbFloors - add r0, r0, #1 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end GetNbFloorsPlusOne - - arm_func_start GetDungeonGroup -GetDungeonGroup: @ 0x0204F5C8 - cmp r0, #0xb4 - ldrlo r1, _0204F5DC @ =0x0209E3A1 - movhs r0, #0x35 - ldrblo r0, [r1, r0, lsl #2] - bx lr - .align 2, 0 -_0204F5DC: .4byte 0x0209E3A1 - arm_func_end GetDungeonGroup - - arm_func_start GetNbPrecedingFloors -GetNbPrecedingFloors: @ 0x0204F5E0 - cmp r0, #0xb4 - ldrlo r1, _0204F5F4 @ =0x0209E3A2 - movhs r0, #0 - ldrblo r0, [r1, r0, lsl #2] - bx lr - .align 2, 0 -_0204F5F4: .4byte 0x0209E3A2 - arm_func_end GetNbPrecedingFloors - - arm_func_start GetNbFloorsDungeonGroup -GetNbFloorsDungeonGroup: @ 0x0204F5F8 - cmp r0, #0xb4 - ldrlo r1, _0204F60C @ =0x0209E3A3 - movhs r0, #0 - ldrblo r0, [r1, r0, lsl #2] - bx lr - .align 2, 0 -_0204F60C: .4byte 0x0209E3A3 - arm_func_end GetNbFloorsDungeonGroup - - arm_func_start FUN_0204f610 -FUN_0204f610: @ 0x0204F610 - push {r4, lr} - mov r4, r0 - cmp r4, #0xb4 - movhs r0, #0 - pophs {r4, pc} - bl GetMaxMembersAllowed - cmp r0, #1 - bne _0204F644 - mov r0, r4 - bl IsRecruitingAllowed - cmp r0, #0 - moveq r0, #1 - popeq {r4, pc} -_0204F644: + mov r2, r6 + add r0, r3, r0 + bl FUN_0207C4C8 mov r0, #0 - pop {r4, pc} - arm_func_end FUN_0204f610 - - arm_func_start DungeonFloorToGroupFloor -DungeonFloorToGroupFloor: @ 0x0204F64C - push {r3, r4, r5, lr} - mov r5, r1 - mov r4, r0 - ldrb r0, [r5] - cmp r0, #0xb4 - blo _0204F690 - cmp r0, #0xbd - bhi _0204F690 - mov r0, #0x35 - strb r0, [r4] - ldrb r0, [r5] - ldrb r1, [r5, #1] - sub r0, r0, #0xb4 - add r0, r0, r0, lsl #2 - add r0, r1, r0 - strb r0, [r4, #1] - pop {r3, r4, r5, pc} -_0204F690: - cmp r0, #0xbe - bne _0204F6B0 - mov r0, #0x35 - strb r0, [r4] - ldrb r0, [r5, #1] - add r0, r0, #0x32 - strb r0, [r4, #1] - pop {r3, r4, r5, pc} -_0204F6B0: - cmp r0, #0xbf - blo _0204F6D8 - cmp r0, #0xd3 - bhi _0204F6D8 - mov r0, #0x35 - strb r0, [r4] - ldrb r0, [r5, #1] - add r0, r0, #0x33 - strb r0, [r4, #1] - pop {r3, r4, r5, pc} -_0204F6D8: - bl GetDungeonGroup - strb r0, [r4] - ldrb r0, [r5] - bl GetNbPrecedingFloors - ldrb r1, [r5, #1] - add r0, r1, r0 - strb r0, [r4, #1] - pop {r3, r4, r5, pc} - arm_func_end DungeonFloorToGroupFloor - - arm_func_start FUN_0204f6f8 -FUN_0204f6f8: @ 0x0204F6F8 - push {r3, r4, r5, lr} - mov r5, r0 - mov r0, r1 - mov r1, r2 - bl FUN_0204f77c - cmp r5, #3 - addls pc, pc, r5, lsl #2 - b _0204F770 -_0204F718: @ jump table - b _0204F728 @ case 0 - b _0204F734 @ case 1 - b _0204F74C @ case 2 - b _0204F760 @ case 3 -_0204F728: - bl GetGroundNameId - mov r4, r0 - b _0204F770 -_0204F734: - bl GetGroundNameId - ldr r1, _0204F778 @ =0xFFFFFEFD - add r0, r0, r1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - b _0204F770 -_0204F74C: - add r0, r0, #0x3bc - add r0, r0, #0x4000 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - b _0204F770 -_0204F760: - add r0, r0, #0xbb - add r0, r0, #0x4200 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 -_0204F770: - mov r0, r4 - pop {r3, r4, r5, pc} - .align 2, 0 -_0204F778: .4byte 0xFFFFFEFD - arm_func_end FUN_0204f6f8 - - arm_func_start FUN_0204f77c -FUN_0204f77c: @ 0x0204F77C - push {r3, r4, r5, lr} - movs r4, r1 - mov r5, r0 - beq _0204F7A0 - cmp r5, #0xae - bne _0204F7A0 - bl GetNbFloorsDungeonGroup - cmp r4, r0 - moveq r5, #0x7f -_0204F7A0: + str r0, [sb] + mov r4, #1 + b _022C7A84 +_022C7A78: + add r2, r2, #0x10 + cmp r2, r1 + blo _022C7A2C +_022C7A84: mov r0, r5 - pop {r3, r4, r5, pc} - arm_func_end FUN_0204f77c + bl FUN_0207B7F8 + mov r0, r4 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_022C79FC - arm_func_start FUN_0204f7a8 -FUN_0204f7a8: @ 0x0204F7A8 - push {r3, r4, lr} - sub sp, sp, #4 - mov r4, r0 - ldrb r0, [r4] - cmp r0, #0xb4 - movhs r0, #1 - bhs _0204F808 - bl GetNbFloors - add r1, r0, #1 - ldrb r0, [r4, #1] - and r1, r1, #0xff - cmp r0, r1 - movhs r0, #1 - bhs _0204F808 - add r0, sp, #0 - mov r1, r4 - bl DungeonFloorToGroupFloor - ldrb r2, [sp] - cmp r2, #0x64 - movhs r0, #1 - ldrlo r1, _0204F810 @ =0x020A0AD4 - ldrblo r0, [sp, #1] - ldrlo r1, [r1, r2, lsl #2] - ldrblo r0, [r1, r0] -_0204F808: - add sp, sp, #4 - pop {r3, r4, pc} - .align 2, 0 -_0204F810: .4byte 0x020A0AD4 - arm_func_end FUN_0204f7a8 - - arm_func_start GetMissionRank -GetMissionRank: @ 0x0204F814 - push {r3, r4, lr} - sub sp, sp, #4 - mov r4, r0 - ldrb r0, [r4] - cmp r0, #0xb4 - movhs r0, #1 - bhs _0204F880 - bl GetNbFloors - add r1, r0, #1 - ldrb r0, [r4, #1] - and r1, r1, #0xff - cmp r0, r1 - movhs r0, #1 - bhs _0204F880 - add r0, sp, #0 - mov r1, r4 - bl DungeonFloorToGroupFloor - ldrb r2, [sp] - cmp r2, #0x64 - movhs r0, #1 - bhs _0204F880 - ldrb r1, [sp, #1] - ldr r0, _0204F888 @ =0x020A0AD4 - cmp r1, #1 - ldr r0, [r0, r2, lsl #2] - movle r1, #2 - ldrb r0, [r0, r1] -_0204F880: - add sp, sp, #4 - pop {r3, r4, pc} - .align 2, 0 -_0204F888: .4byte 0x020A0AD4 - arm_func_end GetMissionRank - - arm_func_start GetOutlawLevel -GetOutlawLevel: @ 0x0204F88C - push {r3, lr} - bl GetMissionRank - ldr r1, _0204F8A4 @ =0x020A1998 - lsl r0, r0, #1 - ldrsh r0, [r1, r0] - pop {r3, pc} - .align 2, 0 -_0204F8A4: .4byte 0x020A1998 - arm_func_end GetOutlawLevel - - arm_func_start GetOutlawLeaderLevel -GetOutlawLeaderLevel: @ 0x0204F8A8 - push {r3, lr} - bl GetMissionRank - ldr r1, _0204F8C0 @ =0x020A1998 - lsl r0, r0, #1 - ldrsh r0, [r1, r0] - pop {r3, pc} - .align 2, 0 -_0204F8C0: .4byte 0x020A1998 - arm_func_end GetOutlawLeaderLevel - - arm_func_start GetOutlawMinionLevel -GetOutlawMinionLevel: @ 0x0204F8C4 - push {r3, lr} - bl GetMissionRank - ldr r1, _0204F8DC @ =0x020A19B8 - lsl r0, r0, #1 - ldrsh r0, [r1, r0] - pop {r3, pc} - .align 2, 0 -_0204F8DC: .4byte 0x020A19B8 - arm_func_end GetOutlawMinionLevel - - arm_func_start AddGuestMonster -AddGuestMonster: @ 0x0204F8E0 - push {r3, r4, r5, r6, lr} - sub sp, sp, #0x3c - add lr, sp, #0x18 + arm_func_start ov00_022C7A94 +ov00_022C7A94: @ 0x022C7A94 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 +_022C7A9C: + bl FUN_0207B7E4 + ldr r1, [r7, #0xc0] mov r5, r0 - mov r4, r1 - mov r6, r2 - mov ip, #2 -_0204F8FC: - ldm r6!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _0204F8FC - ldr r1, [r6] - mov r0, #1 - str r1, [lr] - strb r0, [r5, #0xf] - ldrsh r0, [sp, #0x1c] - bl GetNameString - mov r1, r0 - add r0, sp, #0 - mov r2, #0xa - bl FUN_02025314 - add r2, sp, #0 - add r1, r5, #0x1c - mov r0, #0x44 - mla r0, r4, r0, r1 - add r1, sp, #0x18 - str r2, [sp, #0x18] - bl GuestMonsterToGroundMonster - add sp, sp, #0x3c - pop {r3, r4, r5, r6, pc} - arm_func_end AddGuestMonster - - arm_func_start GetGroundNameId -GetGroundNameId: @ 0x0204F958 - push {r4, lr} - mov r4, r0 - cmp r4, #6 - bne _0204F980 - mov r0, #0x1b - bl GetPerformanceFlagWithChecks + cmp r1, #0 + bne _022C7AD8 + mov r6, #0 + mov r4, r6 +_022C7AB8: + mov r0, r7 + mov r1, r6 + bl FUN_02079A64 + mov r0, r4 + bl FUN_02079888 + ldr r0, [r7, #0xc0] cmp r0, #0 - bne _0204F99C - ldr r0, _0204F9B0 @ =0x000042B9 - pop {r4, pc} -_0204F980: - cmp r4, #0x15 - bne _0204F99C - mov r0, #0x1c - bl GetPerformanceFlagWithChecks - cmp r0, #0 - ldreq r0, _0204F9B4 @ =0x000042BA - popeq {r4, pc} -_0204F99C: - add r0, r4, #0x1b8 - add r0, r0, #0x4000 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - pop {r4, pc} - .align 2, 0 -_0204F9B0: .4byte 0x000042B9 -_0204F9B4: .4byte 0x000042BA - arm_func_end GetGroundNameId - - arm_func_start FUN_0204f9b8 -FUN_0204f9b8: @ 0x0204F9B8 - ldr ip, _0204F9C4 @ =FUN_02050E08 - ldr r0, _0204F9C8 @ =0x022AB694 - bx ip - .align 2, 0 -_0204F9C4: .4byte FUN_02050E08 -_0204F9C8: .4byte 0x022AB694 - arm_func_end FUN_0204f9b8 - - arm_func_start FUN_0204f9cc -FUN_0204f9cc: @ 0x0204F9CC - ldr ip, _0204F9D8 @ =FUN_02050E18 - ldr r0, _0204F9DC @ =0x022AB694 - bx ip - .align 2, 0 -_0204F9D8: .4byte FUN_02050E18 -_0204F9DC: .4byte 0x022AB694 - arm_func_end FUN_0204f9cc -_0204F9E0: - .byte 0x04, 0xC0, 0x9F, 0xE5, 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x54, 0x0E, 0x05, 0x02 - .byte 0x94, 0xB6, 0x2A, 0x02 - - arm_func_start FUN_0204f9f4 -FUN_0204f9f4: @ 0x0204F9F4 - ldr ip, _0204FA04 @ =FUN_02050E5C - mov r1, r0 - ldr r0, _0204FA08 @ =0x022AB694 - bx ip - .align 2, 0 -_0204FA04: .4byte FUN_02050E5C -_0204FA08: .4byte 0x022AB694 - arm_func_end FUN_0204f9f4 - - arm_func_start FUN_0204fa0c -FUN_0204fa0c: @ 0x0204FA0C - ldr ip, _0204FA1C @ =FUN_02050E8C - mov r1, r0 - ldr r0, _0204FA20 @ =0x022AB694 - bx ip - .align 2, 0 -_0204FA1C: .4byte FUN_02050E8C -_0204FA20: .4byte 0x022AB694 - arm_func_end FUN_0204fa0c - - arm_func_start SetAdventureLogStructLocation -SetAdventureLogStructLocation: @ 0x0204FA24 - ldr r1, _0204FA34 @ =0x022AB69C - ldr r0, _0204FA38 @ =0x020AFF78 - str r1, [r0] - bx lr - .align 2, 0 -_0204FA34: .4byte 0x022AB69C -_0204FA38: .4byte 0x020AFF78 - arm_func_end SetAdventureLogStructLocation - - arm_func_start SetAdventureLogDungeonFloor -SetAdventureLogDungeonFloor: @ 0x0204FA3C - ldr r1, _0204FA58 @ =0x020AFF78 - ldrb r2, [r0] + beq _022C7AB8 +_022C7AD8: + ldr r4, [r7, #0xc0] + ldr r1, [r7, #0xc0] + mov r0, r7 ldr r1, [r1] - strb r2, [r1, #0x278] - ldrb r0, [r0, #1] - strb r0, [r1, #0x279] - bx lr - .align 2, 0 -_0204FA58: .4byte 0x020AFF78 - arm_func_end SetAdventureLogDungeonFloor + str r1, [r7, #0xc0] + ldr r1, [r4, #4] + lsr r1, r1, #1 + bl FUN_02079A64 + mov r0, r5 + bl FUN_0207B7F8 + ldr r1, [r4, #8] + cmp r1, #0 + beq _022C7B14 + mov r0, r4 + blx r1 +_022C7B14: + bl FUN_0207B7E4 + mov r5, r0 + mov r0, r7 + ldr r6, [r4, #0xc] + bl FUN_02079B0C + ldr r1, [r7, #0xc0] + cmp r1, #0 + moveq r1, #0 + beq _022C7B58 + ldr r1, [r7, #0xc0] + ldr r1, [r1, #4] + cmp r0, r1, lsr #1 + movhs r1, r0 + bhs _022C7B58 + ldr r1, [r7, #0xc0] + ldr r1, [r1, #4] + lsr r1, r1, #1 +_022C7B58: + cmp r1, r0 + beq _022C7B68 + mov r0, r7 + bl FUN_02079A64 +_022C7B68: + mov r0, #0 + str r0, [r4] + ldr r0, [r4, #4] + cmp r6, #0 + bic r0, r0, #1 + str r0, [r4, #4] + beq _022C7B8C + mov r0, r4 + blx r6 +_022C7B8C: + add r0, r7, #0xc4 + cmp r4, r0 + beq _022C7BA4 + mov r0, r5 + bl FUN_0207B7F8 + b _022C7A9C +_022C7BA4: + bl FUN_0207965C + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022C7A94 - arm_func_start GetAdventureLogDungeonFloor -GetAdventureLogDungeonFloor: @ 0x0204FA5C - ldr r0, _0204FA6C @ =0x020AFF78 - ldr r0, [r0] - add r0, r0, #0x278 - bx lr - .align 2, 0 -_0204FA6C: .4byte 0x020AFF78 - arm_func_end GetAdventureLogDungeonFloor - - arm_func_start ClearAdventureLogStruct -ClearAdventureLogStruct: @ 0x0204FA70 - mov r3, #0 - ldr r1, _0204FB98 @ =0x020AFF78 - mov r0, r3 -_0204FA7C: - ldr r2, [r1] - str r0, [r2, r3, lsl #2] - add r3, r3, #1 - cmp r3, #4 - blt _0204FA7C - ldr r1, _0204FB98 @ =0x020AFF78 - mov r3, #0 - ldr r2, [r1] - str r0, [r2, #0x2c] - ldr r2, [r1] - str r0, [r2, #0x30] - ldr r2, [r1] - str r0, [r2, #0x34] - ldr r2, [r1] - str r0, [r2, #0x28] - ldr r2, [r1] - str r0, [r2, #0x10] - ldr r2, [r1] - str r0, [r2, #0x14] - ldr r2, [r1] - str r0, [r2, #0x18] - ldr r2, [r1] - str r0, [r2, #0x1c] - ldr r2, [r1] - str r0, [r2, #0x20] - ldr r2, [r1] - str r0, [r2, #0x24] - ldr r2, [r1] - str r0, [r2, #0x38] - ldr r2, [r1] - str r0, [r2, #0x3c] - ldr r2, [r1] - str r0, [r2, #0x40] -_0204FB00: - ldr r2, [r1] - add r2, r2, r0, lsl #2 - str r3, [r2, #0x44] - ldr r2, [r1] - add r2, r2, r0, lsl #2 - add r0, r0, #1 - str r3, [r2, #0xd8] - cmp r0, #0x25 - blt _0204FB00 - ldr r0, _0204FB98 @ =0x020AFF78 - mov r2, #0 -_0204FB2C: - ldr r1, [r0] - add r1, r1, r3, lsl #2 - add r3, r3, #1 - str r2, [r1, #0x16c] - cmp r3, #0x11 - blt _0204FB2C - ldr r0, _0204FB98 @ =0x020AFF78 - mov ip, #0 -_0204FB4C: - ldr r1, [r0] - add r1, r1, r2, lsl #2 - add r2, r2, #1 - str ip, [r1, #0x1b0] - cmp r2, #0x2c - blt _0204FB4C - ldr r1, _0204FB98 @ =0x020AFF78 + arm_func_start ov00_022C7BAC +ov00_022C7BAC: @ 0x022C7BAC + push {r4, r5, r6, lr} + sub sp, sp, #8 + mov r5, r0 + mov r6, r1 + bl FUN_0207B7E4 + ldr r1, _022C7C24 @ =0x02325060 + mov r4, r0 ldr r0, [r1] - str ip, [r0, #0x260] - mov r0, #0x3e8 -_0204FB74: - rsb r2, ip, #5 - mul r3, r2, r0 - ldr r2, [r1] - add r2, r2, ip, lsl #2 - add ip, ip, #1 - str r3, [r2, #0x264] - cmp ip, #5 - blt _0204FB74 - bx lr + cmp r0, #0 + bne _022C7C14 + add r0, r5, #0xc4 + str r5, [r1] + bl ov00_022C7C48 + sub r0, r6, #0xe4 + mov lr, #0 + bic ip, r0, #3 + add r3, r5, #0xe4 + str lr, [r5, #0xc0] + ldr r1, _022C7C28 @ =ov00_022C7A94 + mov r0, r5 + mov r2, r5 + add r3, r3, ip + stm sp, {ip, lr} + bl FUN_02079560 + mov r0, r5 + bl FUN_02079940 +_022C7C14: + mov r0, r4 + bl FUN_0207B7F8 + add sp, sp, #8 + pop {r4, r5, r6, pc} .align 2, 0 -_0204FB98: .4byte 0x020AFF78 - arm_func_end ClearAdventureLogStruct +_022C7C24: .4byte 0x02325060 +_022C7C28: .4byte ov00_022C7A94 + arm_func_end ov00_022C7BAC - arm_func_start SetAdventureLogCompleted -SetAdventureLogCompleted: @ 0x0204FB9C - ldr r1, _0204FBC0 @ =0x020AFF78 - asr r3, r0, #5 - ldr ip, [r1] - and r0, r0, #0x1f - ldr r2, [ip, r3, lsl #2] - mov r1, #1 - orr r0, r2, r1, lsl r0 - str r0, [ip, r3, lsl #2] - bx lr - .align 2, 0 -_0204FBC0: .4byte 0x020AFF78 - arm_func_end SetAdventureLogCompleted - - arm_func_start IsAdventureLogNotEmpty -IsAdventureLogNotEmpty: @ 0x0204FBC4 - ldr r0, _0204FBF8 @ =0x020AFF78 - mov r1, #0 - ldr r2, [r0] - b _0204FBE8 -_0204FBD4: - ldr r0, [r2, r1, lsl #2] + arm_func_start ov00_022C7C2C +ov00_022C7C2C: @ 0x022C7C2C + ldr r0, _022C7C44 @ =0x02325060 + ldr r0, [r0] cmp r0, #0 movne r0, #1 - bxne lr - add r1, r1, #1 -_0204FBE8: - cmp r1, #4 - blt _0204FBD4 - mov r0, #0 + moveq r0, #0 bx lr .align 2, 0 -_0204FBF8: .4byte 0x020AFF78 - arm_func_end IsAdventureLogNotEmpty +_022C7C44: .4byte 0x02325060 + arm_func_end ov00_022C7C2C - arm_func_start GetAdventureLogCompleted -GetAdventureLogCompleted: @ 0x0204FBFC - ldr r1, _0204FC24 @ =0x020AFF78 - asr r2, r0, #5 - ldr r1, [r1] - and r3, r0, #0x1f - ldr r0, [r1, r2, lsl #2] - mov r1, #1 - tst r0, r1, lsl r3 - moveq r1, #0 - and r0, r1, #0xff - bx lr - .align 2, 0 -_0204FC24: .4byte 0x020AFF78 - arm_func_end GetAdventureLogCompleted - - arm_func_start IncrementNbDungeonsCleared -IncrementNbDungeonsCleared: @ 0x0204FC28 - ldr r0, _0204FC64 @ =0x020AFF78 - ldr r1, _0204FC68 @ =0x000F423F - ldr r3, [r0] - ldr r2, [r3, #0x10] - add r2, r2, #1 - str r2, [r3, #0x10] - ldr r3, [r0] - ldr r2, [r3] - orr r2, r2, #0x10 - str r2, [r3] - ldr r2, [r0] - ldr r0, [r2, #0x10] - cmp r0, r1 - strgt r1, [r2, #0x10] - bx lr - .align 2, 0 -_0204FC64: .4byte 0x020AFF78 -_0204FC68: .4byte 0x000F423F - arm_func_end IncrementNbDungeonsCleared - - arm_func_start GetNbDungeonsCleared -GetNbDungeonsCleared: @ 0x0204FC6C - ldr r0, _0204FC7C @ =0x020AFF78 - ldr r0, [r0] - ldr r0, [r0, #0x10] - bx lr - .align 2, 0 -_0204FC7C: .4byte 0x020AFF78 - arm_func_end GetNbDungeonsCleared - - arm_func_start IncrementNbFriendRescues -IncrementNbFriendRescues: @ 0x0204FC80 - ldr r0, _0204FCC0 @ =0x020AFF78 - ldr r1, _0204FCC4 @ =0x000F423F - ldr r3, [r0] - ldr r2, [r3, #0x14] - add r2, r2, #1 - str r2, [r3, #0x14] - ldr r2, [r0] - ldr r0, [r2, #0x14] - cmp r0, r1 - ldr r0, _0204FCC0 @ =0x020AFF78 - strgt r1, [r2, #0x14] - ldr r1, [r0] - ldr r0, [r1] - orr r0, r0, #0x40 - str r0, [r1] - bx lr - .align 2, 0 -_0204FCC0: .4byte 0x020AFF78 -_0204FCC4: .4byte 0x000F423F - arm_func_end IncrementNbFriendRescues - - arm_func_start GetNbFriendRescues -GetNbFriendRescues: @ 0x0204FCC8 - ldr r0, _0204FCD8 @ =0x020AFF78 - ldr r0, [r0] - ldr r0, [r0, #0x14] - bx lr - .align 2, 0 -_0204FCD8: .4byte 0x020AFF78 - arm_func_end GetNbFriendRescues - - arm_func_start IncrementNbEvolutions -IncrementNbEvolutions: @ 0x0204FCDC - ldr r0, _0204FD1C @ =0x020AFF78 - ldr r1, _0204FD20 @ =0x000F423F - ldr r3, [r0] - ldr r2, [r3, #0x18] - add r2, r2, #1 - str r2, [r3, #0x18] - ldr r2, [r0] - ldr r0, [r2, #0x18] - cmp r0, r1 - ldr r0, _0204FD1C @ =0x020AFF78 - strgt r1, [r2, #0x18] - ldr r1, [r0] - ldr r0, [r1] - orr r0, r0, #0x80 - str r0, [r1] - bx lr - .align 2, 0 -_0204FD1C: .4byte 0x020AFF78 -_0204FD20: .4byte 0x000F423F - arm_func_end IncrementNbEvolutions - - arm_func_start GetNbEvolutions -GetNbEvolutions: @ 0x0204FD24 - ldr r0, _0204FD34 @ =0x020AFF78 - ldr r0, [r0] - ldr r0, [r0, #0x18] - bx lr - .align 2, 0 -_0204FD34: .4byte 0x020AFF78 - arm_func_end GetNbEvolutions - - arm_func_start IncrementNbSteals -IncrementNbSteals: @ 0x0204FD38 - bx lr - arm_func_end IncrementNbSteals - - arm_func_start IncrementNbEggsHatched -IncrementNbEggsHatched: @ 0x0204FD3C - ldr r1, _0204FD70 @ =0x020AFF78 - ldr r0, _0204FD74 @ =0x000F423F - ldr r2, [r1] - ldr r1, [r2, #0x1c] - cmp r1, r0 - addlt r0, r1, #1 - strlt r0, [r2, #0x1c] - ldr r0, _0204FD70 @ =0x020AFF78 - ldr r1, [r0] - ldr r0, [r1] - orr r0, r0, #0x100 - str r0, [r1] - bx lr - .align 2, 0 -_0204FD70: .4byte 0x020AFF78 -_0204FD74: .4byte 0x000F423F - arm_func_end IncrementNbEggsHatched - - arm_func_start GetNbEggsHatched -GetNbEggsHatched: @ 0x0204FD78 - ldr r0, _0204FD88 @ =0x020AFF78 - ldr r0, [r0] - ldr r0, [r0, #0x1c] - bx lr - .align 2, 0 -_0204FD88: .4byte 0x020AFF78 - arm_func_end GetNbEggsHatched - - arm_func_start GetNbPokemonJoined -GetNbPokemonJoined: @ 0x0204FD8C - ldr r0, _0204FD9C @ =0x020AFF78 - ldr r0, [r0] - ldr r0, [r0, #0x2c] - bx lr - .align 2, 0 -_0204FD9C: .4byte 0x020AFF78 - arm_func_end GetNbPokemonJoined - - arm_func_start GetNbMovesLearned -GetNbMovesLearned: @ 0x0204FDA0 - ldr r0, _0204FDB0 @ =0x020AFF78 - ldr r0, [r0] - ldr r0, [r0, #0x34] - bx lr - .align 2, 0 -_0204FDB0: .4byte 0x020AFF78 - arm_func_end GetNbMovesLearned - - arm_func_start SetVictoriesOnOneFloor -SetVictoriesOnOneFloor: @ 0x0204FDB4 - ldr r1, _0204FDE0 @ =0x000F423F - cmp r0, r1 - movgt r0, r1 - ldr r1, _0204FDE4 @ =0x020AFF78 - ldr r2, [r1] - str r0, [r2, #0x28] - ldr r1, [r1] - ldr r0, [r1] - orr r0, r0, #0x200 - str r0, [r1] - bx lr - .align 2, 0 -_0204FDE0: .4byte 0x000F423F -_0204FDE4: .4byte 0x020AFF78 - arm_func_end SetVictoriesOnOneFloor - - arm_func_start GetVictoriesOnOneFloor -GetVictoriesOnOneFloor: @ 0x0204FDE8 - ldr r0, _0204FDF8 @ =0x020AFF78 - ldr r0, [r0] - ldr r0, [r0, #0x28] - bx lr - .align 2, 0 -_0204FDF8: .4byte 0x020AFF78 - arm_func_end GetVictoriesOnOneFloor - - arm_func_start SetPokemonJoined -SetPokemonJoined: @ 0x0204FDFC - push {r3, lr} - bl GetDexNumberVeneer - cmp r0, #0 - popeq {r3, pc} - ldr r3, _0204FE54 @ =0x020AFF78 - asr r1, r0, #4 - ldr lr, [r3] - add r1, r0, r1, lsr #27 - ldr ip, [lr] - lsr r2, r0, #0x1f - orr ip, ip, #1 - str ip, [lr] - ldr r3, [r3] - rsb r0, r2, r0, lsl #27 - add lr, r3, #0x44 - asr ip, r1, #5 - ldr r3, [lr, ip, lsl #2] - add r0, r2, r0, ror #27 - mov r1, #1 - orr r0, r3, r1, lsl r0 - str r0, [lr, ip, lsl #2] - pop {r3, pc} - .align 2, 0 -_0204FE54: .4byte 0x020AFF78 - arm_func_end SetPokemonJoined - - arm_func_start SetPokemonBattled -SetPokemonBattled: @ 0x0204FE58 - push {r3, lr} - bl GetDexNumberVeneer - cmp r0, #0 - popeq {r3, pc} - ldr r3, _0204FEB0 @ =0x020AFF78 - asr r1, r0, #4 - ldr lr, [r3] - add r1, r0, r1, lsr #27 - ldr ip, [lr] - lsr r2, r0, #0x1f - orr ip, ip, #2 - str ip, [lr] - ldr r3, [r3] - rsb r0, r2, r0, lsl #27 - add lr, r3, #0xd8 - asr ip, r1, #5 - ldr r3, [lr, ip, lsl #2] - add r0, r2, r0, ror #27 - mov r1, #1 - orr r0, r3, r1, lsl r0 - str r0, [lr, ip, lsl #2] - pop {r3, pc} - .align 2, 0 -_0204FEB0: .4byte 0x020AFF78 - arm_func_end SetPokemonBattled - - arm_func_start GetNbPokemonBattled -GetNbPokemonBattled: @ 0x0204FEB4 - ldr r0, _0204FEC4 @ =0x020AFF78 - ldr r0, [r0] - ldr r0, [r0, #0x30] - bx lr - .align 2, 0 -_0204FEC4: .4byte 0x020AFF78 - arm_func_end GetNbPokemonBattled - - arm_func_start IncrementNbBigTreasureWins -IncrementNbBigTreasureWins: @ 0x0204FEC8 - ldr r0, _0204FEE0 @ =0x020AFF78 - ldr ip, _0204FEE4 @ =SetNbBigTreasureWins - ldr r0, [r0] - ldr r0, [r0, #0x38] - add r0, r0, #1 + arm_func_start ov00_022C7C48 +ov00_022C7C48: @ 0x022C7C48 + ldr ip, _022C7C58 @ =FUN_0207C40C + mov r1, #0 + mov r2, #0x20 bx ip .align 2, 0 -_0204FEE0: .4byte 0x020AFF78 -_0204FEE4: .4byte SetNbBigTreasureWins - arm_func_end IncrementNbBigTreasureWins +_022C7C58: .4byte FUN_0207C40C + arm_func_end ov00_022C7C48 - arm_func_start SetNbBigTreasureWins -SetNbBigTreasureWins: @ 0x0204FEE8 - ldr r2, _0204FF18 @ =0x020AFF78 - ldr r1, _0204FF1C @ =0x000F423F - ldr r3, [r2] - cmp r0, r1 - ldr r2, [r3] - movgt r0, r1 - orr r2, r2, #0x400 - ldr r1, _0204FF18 @ =0x020AFF78 - str r2, [r3] - ldr r1, [r1] - str r0, [r1, #0x38] + arm_func_start ov00_022C7C5C +ov00_022C7C5C: @ 0x022C7C5C + ldr r0, [r0, #4] + lsl r0, r0, #0x1f + lsrs r0, r0, #0x1f + movne r0, #1 + moveq r0, #0 bx lr - .align 2, 0 -_0204FF18: .4byte 0x020AFF78 -_0204FF1C: .4byte 0x000F423F - arm_func_end SetNbBigTreasureWins + arm_func_end ov00_022C7C5C - arm_func_start GetNbBigTreasureWins -GetNbBigTreasureWins: @ 0x0204FF20 - ldr r0, _0204FF30 @ =0x020AFF78 + arm_func_start ov00_022C7C74 +ov00_022C7C74: @ 0x022C7C74 + push {r3, r4, r5, r6, r7, r8, sb, lr} + ldr r4, _022C7DD4 @ =0x02325060 + mov sb, r0 + ldr r4, [r4] + mov r8, r1 + mov r7, r2 + mov r6, r3 + bl ov00_022C7C2C + cmp r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + ldr r0, [sb, #4] + lsl r0, r0, #0x1f + lsrs r0, r0, #0x1f + popne {r3, r4, r5, r6, r7, r8, sb, pc} + cmp r6, #0x1f + bls _022C7CF8 + mov r0, r4 + bl FUN_02079B0C + cmp r6, #0x20 + bne _022C7CD4 + cmp r0, #0 + subne r6, r0, #1 + moveq r6, #0 + b _022C7CF8 +_022C7CD4: + cmp r6, #0x21 + bne _022C7CEC + cmp r0, #0x1f + addlo r6, r0, #1 + movhs r6, #0x1f + b _022C7CF8 +_022C7CEC: + cmp r6, #0x22 + moveq r6, r0 + movne r6, #0x1f +_022C7CF8: + bl FUN_0207B7E4 + ldr r1, [sb, #4] + mov r5, r0 + bic r0, r1, #1 + orr r1, r0, #1 + and r0, r1, #1 + str r1, [sb, #4] + orr r0, r0, r6, lsl #1 + stmib sb, {r0, r8} + str r7, [sb, #0xc] + ldr r0, [r4, #0xc0] + cmp r0, #0 + add r0, r4, #0xc4 + bne _022C7D50 + cmp sb, r0 + ldreq r0, _022C7DD4 @ =0x02325060 + moveq r1, #0 + streq r1, [r0] + mov r0, r4 + str sb, [r4, #0xc0] + bl FUN_02079940 + b _022C7DC8 +_022C7D50: + cmp sb, r0 + ldr r1, [r4, #0xc0] + bne _022C7D8C + ldr r0, [r1] + cmp r0, #0 + beq _022C7D78 +_022C7D68: + mov r1, r0 ldr r0, [r0] - ldr r0, [r0, #0x38] + cmp r0, #0 + bne _022C7D68 +_022C7D78: + ldr r0, _022C7DD4 @ =0x02325060 + str sb, [r1] + mov r1, #0 + str r1, [r0] + b _022C7DC8 +_022C7D8C: + ldr r0, [r1, #4] + cmp r6, r0, lsr #1 + strlo sb, [r4, #0xc0] + strlo r1, [sb] + blo _022C7DC8 + b _022C7DA8 +_022C7DA4: + mov r1, r2 +_022C7DA8: + ldr r2, [r1] + cmp r2, #0 + beq _022C7DC0 + ldr r0, [r2, #4] + cmp r6, r0, lsr #1 + bhs _022C7DA4 +_022C7DC0: + str r2, [sb] + str sb, [r1] +_022C7DC8: + mov r0, r5 + bl FUN_0207B7F8 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022C7DD4: .4byte 0x02325060 + arm_func_end ov00_022C7C74 + + arm_func_start ov00_022C7DD8 +ov00_022C7DD8: @ 0x022C7DD8 + push {r3, r4, r5, lr} + mov r5, r0 + bl FUN_0207B7E4 + mov r4, r0 + bl ov00_022C7C2C + cmp r0, #0 + beq _022C7E10 + ldr r0, _022C7E1C @ =0x02325060 + mov r1, #0 + ldr r0, [r0] + mov r2, r5 + mov r3, r1 + add r0, r0, #0xc4 + bl ov00_022C7C74 +_022C7E10: + mov r0, r4 + bl FUN_0207B7F8 + pop {r3, r4, r5, pc} + .align 2, 0 +_022C7E1C: .4byte 0x02325060 + arm_func_end ov00_022C7DD8 + + arm_func_start ov00_022C7E20 +ov00_022C7E20: @ 0x022C7E20 + push {r3, lr} + ldr r2, _022C7E4C @ =0x02325064 + sub r1, r0, #2 + mov r0, #0x1e + str r1, [r2, #8] + bl FUN_0208FEA4 + ldr r1, _022C7E4C @ =0x02325064 + mov r2, #0x1e + str r0, [r1, #0xc] + str r2, [r1, #0x10] + pop {r3, pc} + .align 2, 0 +_022C7E4C: .4byte 0x02325064 + arm_func_end ov00_022C7E20 +_022C7E50: + .byte 0x10, 0x30, 0x9F, 0xE5, 0x10, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x87, 0x2F, 0xA0, 0xE3 + .byte 0x04, 0x00, 0x83, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x64, 0x50, 0x32, 0x02, 0x0C, 0xC4, 0x07, 0x02 + + arm_func_start ov00_022C7E70 +ov00_022C7E70: @ 0x022C7E70 + push {r4, lr} + ldr r1, _022C7EB0 @ =0x02325064 + ldr r1, [r1, #4] + cmp r1, #0 + popeq {r4, pc} + sub r4, r0, #1 + add r0, r1, r4, lsl #5 + mov r1, #0 + mov r2, #0x1e + bl FUN_0207C40C + ldr r0, _022C7EB0 @ =0x02325064 + mov r1, #0 + ldr r0, [r0, #4] + add r0, r0, r4, lsl #2 + str r1, [r0, #0x1e0] + pop {r4, pc} + .align 2, 0 +_022C7EB0: .4byte 0x02325064 + arm_func_end ov00_022C7E70 + + arm_func_start ov00_022C7EB4 +ov00_022C7EB4: @ 0x022C7EB4 + ldrb r2, [r0] + mov r3, r1 + add r3, r3, #1 + strb r2, [r1] + ldrb r1, [r0] + cmp r1, #6 + addls pc, pc, r1, lsl #2 + b _022C7F28 +_022C7ED4: @ jump table + b _022C7F28 @ case 0 + b _022C7F30 @ case 1 + b _022C7F30 @ case 2 + b _022C7F30 @ case 3 + b _022C7EF0 @ case 4 + b _022C7F30 @ case 5 + b _022C7F30 @ case 6 +_022C7EF0: + ldrh r1, [r0, #2] + strb r1, [r3] + ldrh r1, [r0, #2] + and r1, r1, #0xff00 + asr r1, r1, #8 + strb r1, [r3, #1] + ldrh r1, [r0, #4] + strb r1, [r3, #2] + ldrh r0, [r0, #4] + and r0, r0, #0xff00 + asr r0, r0, #8 + strb r0, [r3, #3] + add r3, r3, #4 + b _022C7F30 +_022C7F28: + mov r0, #0 + bx lr +_022C7F30: + mov r0, r3 + bx lr + arm_func_end ov00_022C7EB4 + + arm_func_start ov00_022C7F38 +ov00_022C7F38: @ 0x022C7F38 + push {r4, r5, r6, lr} + mov r6, r0 + ldrb r0, [r6] + mov r5, r1 + mov r4, r2 + strb r0, [r5] + cmp r0, #7 + beq _022C7F6C + cmp r0, #8 + beq _022C7FD0 + cmp r0, #9 + beq _022C7FF8 + b _022C8040 +_022C7F6C: + mov r0, r4 + bl ov00_022C80E0 + cmp r0, #0 + beq _022C7F90 + ldr r0, _022C8050 @ =0x02325064 + sub r1, r4, #1 + ldr r0, [r0, #4] + add r0, r0, r1, lsl #5 + pop {r4, r5, r6, pc} +_022C7F90: + ldrb r2, [r6, #1] + ldr r0, _022C8050 @ =0x02325064 + strb r2, [r5, #2] + ldr r1, [r0, #0xc] + cmp r2, r1 + movgt r0, #0 + popgt {r4, r5, r6, pc} + ldr r2, [r0, #8] + add r0, r6, #2 + add r1, r5, #3 + bl FUN_0207C4C8 + mov r0, r5 + mov r1, r4 + bl ov00_022C8054 + mov r4, r0 + b _022C8048 +_022C7FD0: + ldrb r0, [r6, #1] + add r4, r6, #3 + strh r0, [r5, #2] + ldrb r0, [r6, #2] + ldrh r1, [r5, #2] + lsl r0, r0, #8 + and r0, r0, #0xff00 + orr r0, r1, r0 + strh r0, [r5, #2] + b _022C8048 +_022C7FF8: + ldrb r0, [r6, #1] + add r4, r6, #3 + ldr r1, _022C8050 @ =0x02325064 + strh r0, [r5, #2] + ldrb r2, [r6, #2] + ldrh r3, [r5, #2] + mov r0, r4 + lsl r2, r2, #8 + and r2, r2, #0xff00 + orr r2, r3, r2 + strh r2, [r5, #2] + ldr r2, [r1, #8] + add r1, r5, #4 + bl FUN_0207C4C8 + ldr r0, _022C8050 @ =0x02325064 + ldr r0, [r0, #8] + add r4, r4, r0 + b _022C8048 +_022C8040: + mov r0, #0 + pop {r4, r5, r6, pc} +_022C8048: + mov r0, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_022C8050: .4byte 0x02325064 + arm_func_end ov00_022C7F38 + + arm_func_start ov00_022C8054 +ov00_022C8054: @ 0x022C8054 + push {r4, r5, r6, lr} + ldr r2, _022C80DC @ =0x02325064 + mov r6, r1 + ldr r3, [r2, #4] + cmp r3, #0 + moveq r0, #0 + popeq {r4, r5, r6, pc} + ldrb r5, [r0, #2] + ldr r1, [r2, #0xc] + cmp r5, r1 + movgt r0, #0 + popgt {r4, r5, r6, pc} + sub r4, r6, #1 + ldr r2, [r2, #8] + add r1, r3, r4, lsl #5 + mla r1, r5, r2, r1 + add r0, r0, #3 + bl FUN_0207C4C8 + ldr r0, _022C80DC @ =0x02325064 + mov r1, #1 + ldr r2, [r0, #4] + mov r0, r6 + add r3, r2, #0x1e0 + ldr r2, [r3, r4, lsl #2] + orr r1, r2, r1, lsl r5 + str r1, [r3, r4, lsl #2] + bl ov00_022C80E0 + cmp r0, #0 + moveq r0, #0 + popeq {r4, r5, r6, pc} + ldr r0, _022C80DC @ =0x02325064 + ldr r0, [r0, #4] + add r0, r0, r4, lsl #5 + pop {r4, r5, r6, pc} + .align 2, 0 +_022C80DC: .4byte 0x02325064 + arm_func_end ov00_022C8054 + + arm_func_start ov00_022C80E0 +ov00_022C80E0: @ 0x022C80E0 + ldr r1, _022C8130 @ =0x02325064 + mov r2, #0 + ldr ip, [r1, #0xc] + cmp ip, #0 + ble _022C8128 + ldr r1, [r1, #4] + sub r0, r0, #1 + add r0, r1, r0, lsl #2 + ldr r3, [r0, #0x1e0] + mov r1, #1 +_022C8108: + tst r3, r1, lsl r2 + moveq r0, #0 + bxeq lr + add r0, r2, #1 + lsl r0, r0, #0x10 + cmp ip, r0, lsr #16 + lsr r2, r0, #0x10 + bgt _022C8108 +_022C8128: + mov r0, #1 bx lr .align 2, 0 -_0204FF30: .4byte 0x020AFF78 - arm_func_end GetNbBigTreasureWins +_022C8130: .4byte 0x02325064 + arm_func_end ov00_022C80E0 - arm_func_start SetNbRecycled -SetNbRecycled: @ 0x0204FF34 - ldr r2, _0204FF64 @ =0x020AFF78 - ldr r1, _0204FF68 @ =0x000F423F - ldr r3, [r2] - cmp r0, r1 - ldr r2, [r3] - movgt r0, r1 - orr r2, r2, #0x800 - ldr r1, _0204FF64 @ =0x020AFF78 - str r2, [r3] - ldr r1, [r1] + arm_func_start ov00_022C8134 +ov00_022C8134: @ 0x022C8134 + push {r3, r4, r5, r6, r7, lr} + ldr r1, _022C8228 @ =0x02325078 + ldr r2, _022C8228 @ =0x02325078 + ldr r1, [r1, #0x50] + str r0, [r2, #0xc] + cmp r1, #0 + mov r1, #0 + str r1, [r2, #0x50] + str r1, [r2, #0x1c] + str r1, [r2, #0x2c] + str r1, [r2, #0x60] + movne r3, #1 + str r1, [r2, #0x64] + moveq r3, #0 + str r1, [r2, #0x20] + cmp r3, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldr r0, _022C822C @ =0x023250F8 + mov r2, #0x60 + bl FUN_0207C40C + ldr r0, _022C8230 @ =0x022B966C + ldr r6, [r0, #8] + cmp r6, #0 + beq _022C81E4 + mov r5, #0 + mov r4, r5 +_022C819C: + ldr r1, [r6, #0xa4] + cmp r1, #0 + ldrne r0, [r1] + cmpne r0, #0 + beq _022C81D8 + ldrb r0, [r1, #8] + cmp r0, #0xa + cmpne r0, #0xb + strbne r5, [r1, #8] + ldr r0, [r1, #4] + cmp r0, #0 + beq _022C81D8 + str r4, [r1, #4] + ldr r0, [r1] + bl FUN_02079940 +_022C81D8: + ldr r6, [r6, #0x68] + cmp r6, #0 + bne _022C819C +_022C81E4: + mov r6, #0 + ldr r7, _022C8234 @ =0x023253A0 + ldr r4, _022C8228 @ =0x02325078 + mov r5, r6 +_022C81F4: + ldrh r0, [r7, #4] + cmp r0, #0 + beq _022C8210 + ldr r0, [r7, #0x34] + ldr r1, [r4, #0x40] + blx r1 + strh r5, [r7, #4] +_022C8210: + add r6, r6, #1 + cmp r6, #8 + add r7, r7, #0x38 + blt _022C81F4 + bl ov00_022D2C54 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022C8228: .4byte 0x02325078 +_022C822C: .4byte 0x023250F8 +_022C8230: .4byte 0x022B966C +_022C8234: .4byte 0x023253A0 + arm_func_end ov00_022C8134 + + arm_func_start ov00_022C8238 +ov00_022C8238: @ 0x022C8238 + push {r3, lr} + ldr r0, _022C825C @ =0x02325078 + ldr r0, [r0, #0x24] + cmp r0, #0 + bne _022C8254 + bl FUN_020799AC + pop {r3, pc} +_022C8254: + bl FUN_02079B14 + pop {r3, pc} + .align 2, 0 +_022C825C: .4byte 0x02325078 + arm_func_end ov00_022C8238 +_022C8260: + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov00_022C826C +ov00_022C826C: @ 0x022C826C + push {r3, r4, r5, lr} + sub sp, sp, #8 + mov r4, r0 + ldr r0, _022C8464 @ =0x02000BDC + bl FUN_02000B9C + ldr r3, [r4, #0x18] + ldr r5, [r4, #0x14] + cmp r3, #0 + cmpeq r5, #0 + mov r1, #0 + beq _022C82C4 + ldr r0, _022C8468 @ =0x02325078 + ldr r2, _022C846C @ =0x6C078965 + str r5, [r0, #0x68] + str r3, [r0, #0x6c] + ldr r3, _022C8470 @ =0x5D588B65 + str r2, [r0, #0x70] + ldr r2, _022C8474 @ =0x00269EC3 + str r3, [r0, #0x74] + str r2, [r0, #0x78] + str r1, [r0, #0x7c] + b _022C82F4 +_022C82C4: + bl FUN_0207AE44 + ldr r2, _022C8468 @ =0x02325078 + ldr r3, _022C846C @ =0x6C078965 + str r0, [r2, #0x68] + str r1, [r2, #0x6c] + ldr r1, _022C8470 @ =0x5D588B65 + str r3, [r2, #0x70] + ldr r0, _022C8474 @ =0x00269EC3 + str r1, [r2, #0x74] + str r0, [r2, #0x78] + mov r0, #0 + str r0, [r2, #0x7c] +_022C82F4: + ldr r1, [r4, #4] + cmp r1, #0 + ldrne r0, [r4, #8] + cmpne r0, #0 + beq _022C8318 + ldr r0, _022C8468 @ =0x02325078 + str r1, [r0, #0x14] + ldr r1, [r4, #8] + b _022C8324 +_022C8318: + ldr r1, _022C8478 @ =0x022C8260 + ldr r0, _022C8468 @ =0x02325078 + str r1, [r0, #0x14] +_022C8324: + str r1, [r0, #0x40] + ldr r1, [r4] + ldr r0, _022C8468 @ =0x02325078 + ldr r2, _022C8468 @ =0x02325078 + str r1, [r0, #0x10] + ldr r1, [r4, #0x24] + cmp r1, #0 + ldreq r1, _022C847C @ =0x000005B4 + strh r1, [r0, #2] + ldr r1, [r4, #0x28] + ldr r0, _022C8468 @ =0x02325078 + str r1, [r0, #0x34] + ldr r1, [r4, #0x2c] + str r1, [r0, #0x24] + ldr r1, [r4, #0xc] + cmp r1, #0 + ldreq r1, _022C8478 @ =0x022C8260 + str r1, [r0, #0x18] + ldr r1, [r4, #0x10] + cmp r1, #0 + ldrne r0, _022C8468 @ =0x02325078 + ldreq r1, _022C8480 @ =0x022C8264 + ldreq r0, _022C8468 @ =0x02325078 + str r1, [r0, #0x48] + ldr r1, [r4, #0x1c] + mov r0, #0 + str r1, [r2, #0x58] + ldr r3, [r4, #0x20] + ldr r1, _022C8484 @ =0x00000F88 + str r3, [r2, #0x5c] + str r0, [r2, #0x30] + str r0, [r2, #0x28] + ldr ip, [r2, #0x70] + ldr r4, [r2, #0x68] + ldr r3, [r2, #0x6c] + umull r5, lr, ip, r4 + mla lr, ip, r3, lr + ldr r3, [r2, #0x74] + ldr ip, [r2, #0x78] + mla lr, r3, r4, lr + ldr r3, [r2, #0x7c] + adds ip, ip, r5 + adc r5, r3, lr + umull r3, r4, r5, r1 + mla r4, r5, r0, r4 + mla r4, r0, r1, r4 + str ip, [r2, #0x68] + ldr r0, _022C8488 @ =0x02325560 + str r5, [r2, #0x6c] + add r1, r4, #0x400 + strh r1, [r2, #8] + bl FUN_0207B9EC + ldr r0, _022C8468 @ =0x02325078 + mov r2, #0 + strb r2, [r0, #1] + mov r1, #0x800 + str r1, [sp] + ldr r0, _022C848C @ =0x02318844 + ldr r1, _022C8490 @ =ov00_022CAFDC + ldr r4, [r0] + ldr r0, _022C8494 @ =0x023252E0 + ldr r3, _022C8498 @ =0x023268C0 + str r4, [sp, #4] + bl FUN_02079560 + mov r1, #0x800 + ldr r0, _022C848C @ =0x02318844 + str r1, [sp] + ldr r1, [r0] + ldr r0, _022C849C @ =0x02325220 + str r1, [sp, #4] + ldr r1, _022C84A0 @ =ov00_022CBC40 + ldr r3, _022C84A4 @ =0x023260C0 + mov r2, #0 + bl FUN_02079560 + ldr r0, _022C8494 @ =0x023252E0 + bl FUN_02079940 + ldr r0, _022C849C @ =0x02325220 + bl FUN_02079940 + add sp, sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_022C8464: .4byte 0x02000BDC +_022C8468: .4byte 0x02325078 +_022C846C: .4byte 0x6C078965 +_022C8470: .4byte 0x5D588B65 +_022C8474: .4byte 0x00269EC3 +_022C8478: .4byte 0x022C8260 +_022C847C: .4byte 0x000005B4 +_022C8480: .4byte 0x022C8264 +_022C8484: .4byte 0x00000F88 +_022C8488: .4byte 0x02325560 +_022C848C: .4byte 0x02318844 +_022C8490: .4byte ov00_022CAFDC +_022C8494: .4byte 0x023252E0 +_022C8498: .4byte 0x023268C0 +_022C849C: .4byte 0x02325220 +_022C84A0: .4byte ov00_022CBC40 +_022C84A4: .4byte 0x023260C0 + arm_func_end ov00_022C826C + + arm_func_start ov00_022C84A8 +ov00_022C84A8: @ 0x022C84A8 + push {r3, r4, r5, lr} + bl FUN_0207B7E4 + mov r4, r0 + ldr r0, _022C84F0 @ =0x02325220 + bl FUN_02079830 + movs r5, r0 + ldreq r1, _022C84F4 @ =0x02325078 + ldreq r0, [r1, #0x44] + cmpeq r0, #0 + bne _022C84E0 + ldr r0, _022C84F0 @ =0x02325220 + mov r2, #1 + str r2, [r1, #0x44] + bl FUN_02079940 +_022C84E0: + mov r0, r4 + bl FUN_0207B7F8 + mov r0, r5 + pop {r3, r4, r5, pc} + .align 2, 0 +_022C84F0: .4byte 0x02325220 +_022C84F4: .4byte 0x02325078 + arm_func_end ov00_022C84A8 + + arm_func_start ov00_022C84F8 +ov00_022C84F8: @ 0x022C84F8 + ldr r1, _022C8504 @ =0x02325078 str r0, [r1, #0x3c] bx lr .align 2, 0 -_0204FF64: .4byte 0x020AFF78 -_0204FF68: .4byte 0x000F423F - arm_func_end SetNbRecycled +_022C8504: .4byte 0x02325078 + arm_func_end ov00_022C84F8 - arm_func_start GetNbRecycled -GetNbRecycled: @ 0x0204FF6C - ldr r0, _0204FF7C @ =0x020AFF78 - ldr r0, [r0] - ldr r0, [r0, #0x3c] - bx lr - .align 2, 0 -_0204FF7C: .4byte 0x020AFF78 - arm_func_end GetNbRecycled - - arm_func_start IncrementNbSkyGiftsSent -IncrementNbSkyGiftsSent: @ 0x0204FF80 - ldr r0, _0204FF98 @ =0x020AFF78 - ldr ip, _0204FF9C @ =SetNbSkyGiftsSent - ldr r0, [r0] - ldr r0, [r0, #0x40] - add r0, r0, #1 - bx ip - .align 2, 0 -_0204FF98: .4byte 0x020AFF78 -_0204FF9C: .4byte SetNbSkyGiftsSent - arm_func_end IncrementNbSkyGiftsSent - - arm_func_start SetNbSkyGiftsSent -SetNbSkyGiftsSent: @ 0x0204FFA0 - ldr r2, _0204FFD0 @ =0x020AFF78 - ldr r1, _0204FFD4 @ =0x000F423F - ldr r3, [r2] - cmp r0, r1 - ldr r2, [r3] - movgt r0, r1 - orr r2, r2, #0x1000 - ldr r1, _0204FFD0 @ =0x020AFF78 - str r2, [r3] - ldr r1, [r1] - str r0, [r1, #0x40] - bx lr - .align 2, 0 -_0204FFD0: .4byte 0x020AFF78 -_0204FFD4: .4byte 0x000F423F - arm_func_end SetNbSkyGiftsSent - - arm_func_start GetNbSkyGiftsSent -GetNbSkyGiftsSent: @ 0x0204FFD8 - ldr r0, _0204FFE8 @ =0x020AFF78 - ldr r0, [r0] - ldr r0, [r0, #0x40] - bx lr - .align 2, 0 -_0204FFE8: .4byte 0x020AFF78 - arm_func_end GetNbSkyGiftsSent - - arm_func_start ComputeSpecialCounters -ComputeSpecialCounters: @ 0x0204FFEC - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov r4, #0 - mov r8, r4 -_0204FFF8: - mov r0, #0x44 - mul sl, r8, r0 - ldr r0, _0205022C @ =0x020B0A48 - ldr r0, [r0] - ldrb r0, [r0, sl] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _0205009C - mov sb, #0 - mov r7, #1 - ldr r3, _02050230 @ =0x020AFF78 - ldr ip, _0205022C @ =0x020B0A48 - mov fp, sb - mov lr, r7 - mov r2, #6 -_0205003C: - mul r1, sb, r2 - ldr r0, [ip] - add r0, r0, sl - add r5, r0, #0x22 - ldrb r0, [r5, r1] - add r1, r5, r1 - tst r0, #1 - movne r0, r7 - moveq r0, fp - tst r0, #0xff - beq _02050090 - ldrh r0, [r1, #2] - ldr r5, [r3] - lsr r1, r0, #5 - add r6, r5, r1, lsl #2 - lsr r1, r0, #0x1f - rsb r0, r1, r0, lsl #27 - ldr r5, [r6, #0x16c] - add r0, r1, r0, ror #27 - orr r0, r5, lr, lsl r0 - str r0, [r6, #0x16c] -_02050090: - add sb, sb, #1 - cmp sb, #4 - blt _0205003C -_0205009C: - ldr r0, _02050234 @ =0x0000022B - add r8, r8, #1 - cmp r8, r0 - blt _0204FFF8 - mov r6, #0 - add r5, r0, #0x258 -_020500B4: - lsl r0, r6, #0x10 - asr r0, r0, #0x10 - bl GetDexNumberVeneer - add r6, r6, #1 - cmp r6, r5 - blt _020500B4 - mov r7, #0 - ldr r5, _02050230 @ =0x020AFF78 - ldr sb, _02050238 @ =0x0000021F - mov r8, r7 - mov r6, #1 -_020500E0: - lsl r0, r8, #0x10 - lsr r0, r0, #0x10 - bl IsRealMove - cmp r0, #0 - beq _02050120 - asr r0, r8, #4 - add r0, r8, r0, lsr #27 - ldr r2, [r5] - asr r0, r0, #5 - add r2, r2, r0, lsl #2 - lsr r1, r8, #0x1f - rsb r0, r1, r8, lsl #27 - ldr r2, [r2, #0x16c] - add r0, r1, r0, ror #27 - tst r2, r6, lsl r0 - addne r7, r7, #1 -_02050120: - add r8, r8, #1 - cmp r8, sb - blt _020500E0 - cmp r7, #0 - ble _02050150 - ldr r0, _02050230 @ =0x020AFF78 - ldr r1, [r0] - str r7, [r1, #0x34] - ldr r1, [r0] - ldr r0, [r1] - orr r0, r0, #4 - str r0, [r1] -_02050150: - mov sb, #1 - ldr r5, _02050230 @ =0x020AFF78 - ldr sl, _0205023C @ =0x00000483 - mov r8, #0 - mov r6, sb -_02050164: - lsl r0, sb, #0x10 - asr r0, r0, #0x10 - bl GetBaseFormCastformCherrimDeoxys - mov r7, r0 - bl GetDexNumberVeneer - cmp r0, #0 - beq _020501B4 - asr r1, r0, #4 - add r1, r0, r1, lsr #27 - ldr r3, [r5] - asr r2, r1, #5 - lsr r1, r0, #0x1f - add r2, r3, r2, lsl #2 - rsb r0, r1, r0, lsl #27 - ldr r2, [r2, #0x44] - add r0, r1, r0, ror #27 - tst r2, r6, lsl r0 - beq _020501B4 - mov r0, r7 - bl RecruitSpecialPokemonLog -_020501B4: - add sb, sb, #1 - cmp sb, sl - blt _02050164 - ldr r0, _02050230 @ =0x020AFF78 - mov r2, #1 - ldr r1, [r0] - ldr r3, _02050240 @ =0x000001ED - mov r0, r2 -_020501D4: - asr r5, r2, #4 - add r5, r2, r5, lsr #27 - asr sb, r5, #5 - lsr r6, r2, #0x1f - rsb r5, r6, r2, lsl #27 - add r7, r1, sb, lsl #2 - add r6, r6, r5, ror #27 - add r5, r1, sb, lsl #2 - ldr r7, [r7, #0x44] - ldr r5, [r5, #0xd8] - tst r7, r0, lsl r6 - addne r8, r8, #1 - tst r5, r0, lsl r6 - add r2, r2, #1 - addne r4, r4, #1 - cmp r2, r3 - blt _020501D4 - ldr r0, _02050230 @ =0x020AFF78 - str r8, [r1, #0x2c] - ldr r0, [r0] - str r4, [r0, #0x30] - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0205022C: .4byte 0x020B0A48 -_02050230: .4byte 0x020AFF78 -_02050234: .4byte 0x0000022B -_02050238: .4byte 0x0000021F -_0205023C: .4byte 0x00000483 -_02050240: .4byte 0x000001ED - arm_func_end ComputeSpecialCounters - - arm_func_start RecruitSpecialPokemonLog -RecruitSpecialPokemonLog: @ 0x02050244 + arm_func_start ov00_022C8508 +ov00_022C8508: @ 0x022C8508 push {r3, lr} - cmp r0, #0x258 - subge r0, r0, #0x258 - lslge r0, r0, #0x10 - ldr r2, _020502AC @ =0x0209E670 - mov r3, #0 - asrge r0, r0, #0x10 -_02050260: - lsl r1, r3, #1 - ldrsh r1, [r2, r1] - cmp r1, #0 - popeq {r3, pc} - cmp r1, #0xc9 - bne _0205028C - cmp r0, #0xc9 - blt _02050294 - cmp r0, #0xe4 - ble _0205029C - b _02050294 -_0205028C: - cmp r1, r0 - beq _0205029C -_02050294: - add r3, r3, #1 - b _02050260 -_0205029C: - add r0, r3, #0x24 - and r0, r0, #0xff - bl SetAdventureLogCompleted - pop {r3, pc} - .align 2, 0 -_020502AC: .4byte 0x0209E670 - arm_func_end RecruitSpecialPokemonLog - - arm_func_start IncrementNbFainted -IncrementNbFainted: @ 0x020502B0 - ldr r1, _020502E4 @ =0x020AFF78 - ldr r0, _020502E8 @ =0x000F423F - ldr r2, [r1] - ldr r1, [r2, #0x24] - cmp r1, r0 - addlt r0, r1, #1 - strlt r0, [r2, #0x24] - ldr r0, _020502E4 @ =0x020AFF78 - ldr r1, [r0] - ldr r0, [r1] - orr r0, r0, #0x20 - str r0, [r1] - bx lr - .align 2, 0 -_020502E4: .4byte 0x020AFF78 -_020502E8: .4byte 0x000F423F - arm_func_end IncrementNbFainted - - arm_func_start GetNbFainted -GetNbFainted: @ 0x020502EC - ldr r0, _020502FC @ =0x020AFF78 - ldr r0, [r0] - ldr r0, [r0, #0x24] - bx lr - .align 2, 0 -_020502FC: .4byte 0x020AFF78 - arm_func_end GetNbFainted - - arm_func_start SetItemAcquired -SetItemAcquired: @ 0x02050300 - push {r4, r5, r6, lr} - ldrsh r0, [r0, #4] - bl NormalizeTreasureBox - mov r4, r0 - lsl r0, r4, #0x10 - asr r0, r0, #0x10 - bl IsItemValidVeneer - cmp r0, #0 - popeq {r4, r5, r6, pc} - cmp r4, #0x3b - blt _02050380 - cmp r4, #0x41 - bgt _02050380 - sub r0, r4, #0x21 - and r0, r0, #0xff - mov r5, #1 - bl SetAdventureLogCompleted - mov r6, #0x1a - b _02050364 -_0205034C: - and r0, r6, #0xff - bl GetAdventureLogCompleted - cmp r0, #0 - moveq r5, #0 - beq _0205036C - add r6, r6, #1 -_02050364: - cmp r6, #0x20 - ble _0205034C -_0205036C: - cmp r5, #0 - beq _02050380 - mov r0, #0x15 - mov r1, #1 - bl FUN_0204cb2c -_02050380: - ldr r3, _020503C8 @ =0x020AFF78 - asr r0, r4, #4 - ldr ip, [r3] - add r0, r4, r0, lsr #27 - lsr r2, r4, #0x1f - rsb r1, r2, r4, lsl #27 - add lr, ip, #0x1b0 - asr ip, r0, #5 - ldr r4, [lr, ip, lsl #2] - add r0, r2, r1, ror #27 - mov r1, #1 - orr r0, r4, r1, lsl r0 - str r0, [lr, ip, lsl #2] - ldr r1, [r3] - ldr r0, [r1] - orr r0, r0, #8 - str r0, [r1] - pop {r4, r5, r6, pc} - .align 2, 0 -_020503C8: .4byte 0x020AFF78 - arm_func_end SetItemAcquired - - arm_func_start GetNbItemAcquired -GetNbItemAcquired: @ 0x020503CC - push {r4, lr} - ldr r1, _0205041C @ =0x020AFF78 + bl ov00_022C84A8 + ldr r0, _022C8544 @ =0x02325220 + bl FUN_02079800 + ldr r0, _022C8548 @ =0x023252E0 + bl FUN_0207976C + ldr r1, _022C854C @ =0x02325078 mov r0, #0 - ldr r4, [r1] - mov lr, r0 - mov ip, #1 -_020503E4: - asr r1, lr, #4 - add r1, lr, r1, lsr #27 - asr r1, r1, #5 - add r3, r4, r1, lsl #2 - lsr r2, lr, #0x1f - rsb r1, r2, lr, lsl #27 - ldr r3, [r3, #0x1b0] - add r1, r2, r1, ror #27 - tst r3, ip, lsl r1 - add lr, lr, #1 - addne r0, r0, #1 - cmp lr, #0x580 - blt _020503E4 - pop {r4, pc} - .align 2, 0 -_0205041C: .4byte 0x020AFF78 - arm_func_end GetNbItemAcquired - - arm_func_start SetChallengeLetterCleared -SetChallengeLetterCleared: @ 0x02050420 - push {r4, lr} - ldr r3, _020504A0 @ =0x020AFF78 - lsr r2, r0, #0x1f - ldr ip, [r3] - rsb r1, r2, r0, lsl #27 - lsr lr, r0, #5 - add r4, ip, #0x260 - ldr ip, [r4, lr, lsl #2] - add r1, r2, r1, ror #27 - mov r0, #1 - orr r1, ip, r0, lsl r1 - str r1, [r4, lr, lsl #2] - ldr r4, [r3] - mov ip, r0 - b _02050488 -_0205045C: - asr r1, r0, #4 - add r1, r0, r1, lsr #27 - asr r1, r1, #5 - add r3, r4, r1, lsl #2 - lsr r2, r0, #0x1f - rsb r1, r2, r0, lsl #27 - ldr r3, [r3, #0x260] - add r1, r2, r1, ror #27 - tst r3, ip, lsl r1 - popeq {r4, pc} - add r0, r0, #1 -_02050488: - cmp r0, #6 - blt _0205045C - ldr r0, [r4, #4] - orr r0, r0, #4 - str r0, [r4, #4] - pop {r4, pc} - .align 2, 0 -_020504A0: .4byte 0x020AFF78 - arm_func_end SetChallengeLetterCleared - - arm_func_start GetSentryDutyGamePoints -GetSentryDutyGamePoints: @ 0x020504A4 - ldr r1, _020504B8 @ =0x020AFF78 - ldr r1, [r1] - add r0, r1, r0, lsl #2 - ldr r0, [r0, #0x264] - bx lr - .align 2, 0 -_020504B8: .4byte 0x020AFF78 - arm_func_end GetSentryDutyGamePoints - - arm_func_start SetSentryDutyGamePoints -SetSentryDutyGamePoints: @ 0x020504BC - push {r3, lr} - ldr r1, _02050548 @ =0x020AFF78 - mov lr, #0 - ldr r2, [r1] - b _020504EC -_020504D0: - add r1, r2, lr, lsl #2 - ldr r1, [r1, #0x264] - cmp r0, r1 - bhi _020504F4 - add r1, lr, #1 - lsl r1, r1, #0x10 - asr lr, r1, #0x10 -_020504EC: - cmp lr, #5 - blt _020504D0 -_020504F4: - cmp lr, #5 - mvnge r0, #0 - popge {r3, pc} - mov ip, #4 - ldr r2, _02050548 @ =0x020AFF78 - b _02050528 -_0205050C: - ldr r3, [r2] - sub r1, ip, #1 - add ip, r3, ip, lsl #2 - ldr r3, [ip, #0x260] - lsl r1, r1, #0x10 - str r3, [ip, #0x264] - asr ip, r1, #0x10 -_02050528: - cmp ip, lr - bgt _0205050C - ldr r1, _02050548 @ =0x020AFF78 - ldr r1, [r1] - add r1, r1, lr, lsl #2 - str r0, [r1, #0x264] - mov r0, lr - pop {r3, pc} - .align 2, 0 -_02050548: .4byte 0x020AFF78 - arm_func_end SetSentryDutyGamePoints - - arm_func_start CopyLogTo -CopyLogTo: @ 0x0205054C - push {r4, lr} - mov r4, r0 - bl ComputeSpecialCounters - ldr r1, _02050734 @ =0x020AFF78 - mov r0, r4 - ldr r1, [r1] - mov r2, #0x14 - add r1, r1, #0x10 - bl CopyBitsTo - ldr r1, _02050734 @ =0x020AFF78 - mov r0, r4 - ldr r1, [r1] - mov r2, #0x14 - add r1, r1, #0x14 - bl CopyBitsTo - ldr r1, _02050734 @ =0x020AFF78 - mov r0, r4 - ldr r1, [r1] - mov r2, #0x14 - add r1, r1, #0x18 - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 @ =0x020AFF78 - mov r2, #0x80 - ldr r1, [r1] - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 @ =0x020AFF78 - mov r2, #0xe - ldr r1, [r1] - add r1, r1, #0x2c - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 @ =0x020AFF78 - mov r2, #0xe - ldr r1, [r1] - add r1, r1, #0x30 - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 @ =0x020AFF78 - mov r2, #9 - ldr r1, [r1] - add r1, r1, #0x34 - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 @ =0x020AFF78 - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x28 - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 @ =0x020AFF78 - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x24 - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 @ =0x020AFF78 - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x1c - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 @ =0x020AFF78 - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x38 - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 @ =0x020AFF78 - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x3c - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 @ =0x020AFF78 - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x40 - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 @ =0x020AFF78 - mov r2, #0x4a0 - ldr r1, [r1] - add r1, r1, #0x44 - bl CopyBitsTo - mov r0, r4 - ldr r1, _02050734 @ =0x020AFF78 - mov r2, #0x4a0 - ldr r1, [r1] - add r1, r1, #0xd8 - bl CopyBitsTo - ldr r1, _02050734 @ =0x020AFF78 - mov r0, r4 - ldr r1, [r1] - mov r2, #0x220 - add r1, r1, #0x16c - bl CopyBitsTo - ldr r1, _02050734 @ =0x020AFF78 - mov r0, r4 - ldr r1, [r1] - mov r2, #0x580 - add r1, r1, #0x1b0 - bl CopyBitsTo - ldr r1, _02050734 @ =0x020AFF78 - mov r0, r4 - ldr r1, [r1] - mov r2, #0x20 - add r1, r1, #0x260 - bl CopyBitsTo - ldr r1, _02050734 @ =0x020AFF78 - mov r0, r4 - ldr r1, [r1] - mov r2, #0xa0 - add r1, r1, #0x264 - bl CopyBitsTo - ldr r1, _02050734 @ =0x020AFF78 - mov r0, r4 - ldr r1, [r1] - add r1, r1, #0x278 - bl FUN_020515c4 - pop {r4, pc} - .align 2, 0 -_02050734: .4byte 0x020AFF78 - arm_func_end CopyLogTo - - arm_func_start CopyLogFrom -CopyLogFrom: @ 0x02050738 - push {r4, lr} - ldr r1, _02050918 @ =0x020AFF78 - mov r2, #0x14 - ldr r1, [r1] - mov r4, r0 - add r1, r1, #0x10 - bl CopyBitsFrom - ldr r1, _02050918 @ =0x020AFF78 - mov r0, r4 - ldr r1, [r1] - mov r2, #0x14 - add r1, r1, #0x14 - bl CopyBitsFrom - ldr r1, _02050918 @ =0x020AFF78 - mov r0, r4 - ldr r1, [r1] - mov r2, #0x14 - add r1, r1, #0x18 - bl CopyBitsFrom - ldr r1, _02050918 @ =0x020AFF78 - mov r0, r4 - ldr r1, [r1] - mov r2, #0x80 - bl CopyBitsFrom - ldr r1, _02050918 @ =0x020AFF78 - mov r0, r4 - ldr r1, [r1] - mov r2, #0xe - add r1, r1, #0x2c - bl CopyBitsFrom - mov r0, r4 - ldr r1, _02050918 @ =0x020AFF78 - mov r2, #0xe - ldr r1, [r1] - add r1, r1, #0x30 - bl CopyBitsFrom - mov r0, r4 - ldr r1, _02050918 @ =0x020AFF78 - mov r2, #9 - ldr r1, [r1] - add r1, r1, #0x34 - bl CopyBitsFrom - mov r0, r4 - ldr r1, _02050918 @ =0x020AFF78 - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x28 - bl CopyBitsFrom - mov r0, r4 - ldr r1, _02050918 @ =0x020AFF78 - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x24 - bl CopyBitsFrom - mov r0, r4 - ldr r1, _02050918 @ =0x020AFF78 - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x1c - bl CopyBitsFrom - mov r0, r4 - ldr r1, _02050918 @ =0x020AFF78 - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x38 - bl CopyBitsFrom - mov r0, r4 - ldr r1, _02050918 @ =0x020AFF78 - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x3c - bl CopyBitsFrom - mov r0, r4 - ldr r1, _02050918 @ =0x020AFF78 - mov r2, #0x14 - ldr r1, [r1] - add r1, r1, #0x40 - bl CopyBitsFrom - mov r0, r4 - ldr r1, _02050918 @ =0x020AFF78 - mov r2, #0x4a0 - ldr r1, [r1] - add r1, r1, #0x44 - bl CopyBitsFrom - mov r0, r4 - ldr r1, _02050918 @ =0x020AFF78 - mov r2, #0x4a0 - ldr r1, [r1] - add r1, r1, #0xd8 - bl CopyBitsFrom - ldr r1, _02050918 @ =0x020AFF78 - mov r0, r4 - ldr r1, [r1] - mov r2, #0x220 - add r1, r1, #0x16c - bl CopyBitsFrom - ldr r1, _02050918 @ =0x020AFF78 - mov r0, r4 - ldr r1, [r1] - mov r2, #0x580 - add r1, r1, #0x1b0 - bl CopyBitsFrom - ldr r1, _02050918 @ =0x020AFF78 - mov r0, r4 - ldr r1, [r1] - mov r2, #0x20 - add r1, r1, #0x260 - bl CopyBitsFrom - ldr r1, _02050918 @ =0x020AFF78 - mov r0, r4 - ldr r1, [r1] - mov r2, #0xa0 - add r1, r1, #0x264 - bl CopyBitsFrom - ldr r1, _02050918 @ =0x020AFF78 - mov r0, r4 - ldr r1, [r1] - add r1, r1, #0x278 - bl Copy16BitsFrom - pop {r4, pc} - .align 2, 0 -_02050918: .4byte 0x020AFF78 - arm_func_end CopyLogFrom - - arm_func_start GetAbilityString -GetAbilityString: @ 0x0205091C - add r1, r1, #0xde - add r1, r1, #0x3500 - lsl r1, r1, #0x10 - ldr ip, _02050938 @ =CopyStringFromMessageId - lsr r1, r1, #0x10 - mov r2, #0x50 - bx ip - .align 2, 0 -_02050938: .4byte CopyStringFromMessageId - arm_func_end GetAbilityString - - arm_func_start GetAbilityDescStringId -GetAbilityDescStringId: @ 0x0205093C - add r0, r0, #0x5a - add r0, r0, #0x3600 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bx lr - arm_func_end GetAbilityDescStringId - - arm_func_start GetTypeStringId -GetTypeStringId: @ 0x02050950 - add r0, r0, #0xcb - add r0, r0, #0x3500 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bx lr - arm_func_end GetTypeStringId -_02050964: - .byte 0x04, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0xD1, 0xE7, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x2C, 0x19, 0x0A, 0x02 - - arm_func_start FUN_02050974 -FUN_02050974: @ 0x02050974 - str r1, [r0] - mov r3, #0 - str r3, [r0, #8] - str r3, [r0, #0xc] - add r1, r1, r2 - str r1, [r0, #4] - bx lr - arm_func_end FUN_02050974 - - arm_func_start FUN_02050990 -FUN_02050990: @ 0x02050990 - str r1, [r0] - mov r3, #0 - str r3, [r0, #8] - str r3, [r0, #0xc] - add r3, r1, r2 - str r3, [r0, #4] - mov r0, r1 - ldr ip, _020509B8 @ =MemZero - mov r1, r2 - bx ip - .align 2, 0 -_020509B8: .4byte MemZero - arm_func_end FUN_02050990 - - arm_func_start FUN_020509bc -FUN_020509bc: @ 0x020509BC - bx lr - arm_func_end FUN_020509bc - - arm_func_start CopyBitsTo -CopyBitsTo: @ 0x020509C0 - push {r3, r4, r5, r6, r7, lr} - mov ip, #0 - mov r3, #1 - mov r5, ip - mov r4, ip - b _02050A34 -_020509D8: - ldrb r6, [r1] - sub r2, r2, #1 - tst r6, r3, lsl ip - ldrne r7, [r0] - ldrne lr, [r0, #8] - ldrbne r6, [r7] - add ip, ip, #1 - orrne r6, r6, r3, lsl lr - strbne r6, [r7] - ldr lr, [r0, #8] - cmp ip, #8 - add lr, lr, #1 - moveq ip, r5 - addeq r1, r1, #1 - str lr, [r0, #8] - cmp lr, #8 - ldreq lr, [r0] - addeq lr, lr, #1 - streq lr, [r0] - streq r4, [r0, #8] - ldr lr, [r0, #0xc] - add lr, lr, #1 - str lr, [r0, #0xc] -_02050A34: - cmp r2, #0 - bne _020509D8 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end CopyBitsTo - - arm_func_start CopyBitsFrom -CopyBitsFrom: @ 0x02050A40 - push {r3, r4, r5, r6, r7, lr} - mov lr, #0 - mov ip, lr - mov r3, #1 - mov r6, lr - mov r5, lr - b _02050AC0 -_02050A5C: - cmp lr, #0 - strbeq ip, [r1] - ldr r7, [r0] - ldr r4, [r0, #8] - ldrb r7, [r7] - sub r2, r2, #1 - tst r7, r3, lsl r4 - ldrbne r4, [r1] - orrne r4, r4, r3, lsl lr - strbne r4, [r1] - ldr r4, [r0, #8] - add lr, lr, #1 - cmp lr, #8 - add r4, r4, #1 - moveq lr, r6 - addeq r1, r1, #1 - str r4, [r0, #8] - cmp r4, #8 - ldreq r4, [r0] - addeq r4, r4, #1 - streq r4, [r0] - streq r5, [r0, #8] - ldr r4, [r0, #0xc] - add r4, r4, #1 - str r4, [r0, #0xc] -_02050AC0: - cmp r2, #0 - bne _02050A5C - pop {r3, r4, r5, r6, r7, pc} - arm_func_end CopyBitsFrom - - arm_func_start StoreDefaultTeamName -StoreDefaultTeamName: @ 0x02050ACC - stmdb sp!, {lr} - sub sp, sp, #0x14 - add r0, sp, #0 - mov r1, #0x234 - bl GetStringFromFileVeneer - ldr r0, _02050B08 @ =0x022AB918 - add r1, sp, #0 - mov r2, #0xa - bl FUN_02025314 - ldr r0, _02050B0C @ =0x022AB918 + str r0, [r1, #0x54] + bl ov00_022C8134 + ldr r0, _022C854C @ =0x02325078 mov r1, #0 - str r1, [r0, #0xc] - strb r1, [r0, #0x10] - add sp, sp, #0x14 - ldm sp!, {pc} + str r1, [r0, #0x58] + str r1, [r0, #0x5c] + pop {r3, pc} .align 2, 0 -_02050B08: .4byte 0x022AB918 -_02050B0C: .4byte 0x022AB918 - arm_func_end StoreDefaultTeamName +_022C8544: .4byte 0x02325220 +_022C8548: .4byte 0x023252E0 +_022C854C: .4byte 0x02325078 + arm_func_end ov00_022C8508 - arm_func_start GetTeamNameCheck -GetTeamNameCheck: @ 0x02050B10 + arm_func_start ov00_022C8550 +ov00_022C8550: @ 0x022C8550 push {r4, lr} - sub sp, sp, #0x40 mov r4, r0 - mov r0, #1 - bl GetPerformanceFlagWithChecks - cmp r0, #0 - ldrne r0, _02050B70 @ =0x022AB918 - ldrbne r0, [r0] - cmpne r0, #0 - beq _02050B4C - ldr r1, _02050B74 @ =0x022AB918 - mov r0, r4 - mov r2, #0xa - bl StrncpySimpleNoPad - b _02050B68 -_02050B4C: - ldr r1, _02050B78 @ =0x00000237 - add r0, sp, #0 - bl GetStringFromFileVeneer - add r1, sp, #0 - mov r0, r4 - mov r2, #0xa - bl FUN_02025314 -_02050B68: - add sp, sp, #0x40 - pop {r4, pc} - .align 2, 0 -_02050B70: .4byte 0x022AB918 -_02050B74: .4byte 0x022AB918 -_02050B78: .4byte 0x00000237 - arm_func_end GetTeamNameCheck - - arm_func_start GetTeamName -GetTeamName: @ 0x02050B7C - ldr ip, _02050B8C @ =StrncpySimpleNoPadSafe - ldr r1, _02050B90 @ =0x022AB918 - mov r2, #0xa - bx ip - .align 2, 0 -_02050B8C: .4byte StrncpySimpleNoPadSafe -_02050B90: .4byte 0x022AB918 - arm_func_end GetTeamName - - arm_func_start SetTeamName -SetTeamName: @ 0x02050B94 - ldr r1, _02050BB4 @ =0x022AB918 - mov r3, #0 -_02050B9C: - ldrb r2, [r0], #1 - strb r2, [r1, r3] - add r3, r3, #1 - cmp r3, #0xa - blt _02050B9C - bx lr - .align 2, 0 -_02050BB4: .4byte 0x022AB918 - arm_func_end SetTeamName - - arm_func_start FUN_02050bb8 -FUN_02050bb8: @ 0x02050BB8 - push {r4, lr} - bl FUN_02050c74 - mov r4, r0 - mov r0, #0x16 - bl GetPerformanceFlagWithChecks - cmp r0, #0 - beq _02050BE4 - cmp r4, #0xc - bne _02050BF0 - mov r0, #0 - pop {r4, pc} -_02050BE4: - cmp r4, #8 - movhs r0, #0 - pophs {r4, pc} -_02050BF0: - mov r0, r4 - bl GetRankUpEntry - ldr r1, _02050C0C @ =0x022AB918 - ldr r2, [r0, #4] - ldr r0, [r1, #0xc] - sub r0, r2, r0 - pop {r4, pc} - .align 2, 0 -_02050C0C: .4byte 0x022AB918 - arm_func_end FUN_02050bb8 - - arm_func_start FUN_02050c10 -FUN_02050c10: @ 0x02050C10 - push {r3, lr} - ldr r1, _02050C6C @ =0x022AB918 - ldr r2, [r1, #0xc] - add r2, r2, r0 - mov r0, #0x16 - str r2, [r1, #0xc] - bl GetPerformanceFlagWithChecks - cmp r0, #0 - beq _02050C4C - ldr r0, _02050C6C @ =0x022AB918 - ldr r1, _02050C70 @ =0x05F5E0FF - ldr r2, [r0, #0xc] - cmp r2, r1 - strgt r1, [r0, #0xc] - pop {r3, pc} -_02050C4C: - mov r0, #7 - bl GetRankUpEntry - ldr r1, _02050C6C @ =0x022AB918 - ldr r2, [r0, #4] - ldr r0, [r1, #0xc] - cmp r0, r2 - strgt r2, [r1, #0xc] - pop {r3, pc} - .align 2, 0 -_02050C6C: .4byte 0x022AB918 -_02050C70: .4byte 0x05F5E0FF - arm_func_end FUN_02050c10 - - arm_func_start FUN_02050c74 -FUN_02050c74: @ 0x02050C74 - push {r3, r4, r5, lr} - mov r5, #0 - ldr r4, _02050CCC @ =0x022AB918 - b _02050CA4 -_02050C84: - mov r0, r5 - bl GetRankUpEntry - ldr r1, [r4, #0xc] - ldr r0, [r0, #4] - cmp r1, r0 - blt _02050CAC - add r0, r5, #1 - and r5, r0, #0xff -_02050CA4: - cmp r5, #0xc - blo _02050C84 -_02050CAC: - mov r0, #0x16 - bl GetPerformanceFlagWithChecks - cmp r0, #0 - bne _02050CC4 - cmp r5, #8 - movhi r5, #8 -_02050CC4: - mov r0, r5 - pop {r3, r4, r5, pc} - .align 2, 0 -_02050CCC: .4byte 0x022AB918 - arm_func_end FUN_02050c74 - - arm_func_start FUN_02050cd0 -FUN_02050cd0: @ 0x02050CD0 - push {r3, lr} - bl FUN_02050c74 - cmp r0, #8 - movhi r0, #8 - pop {r3, pc} - arm_func_end FUN_02050cd0 - - arm_func_start FUN_02050ce4 -FUN_02050ce4: @ 0x02050CE4 - push {r3, lr} - bl FUN_02050c74 - bl GetRankUpEntry - ldr r0, [r0, #8] - pop {r3, pc} - arm_func_end FUN_02050ce4 - - arm_func_start FUN_02050cf8 -FUN_02050cf8: @ 0x02050CF8 - push {r3, lr} - sub sp, sp, #0x10 - mov r3, r0 - mov r2, r1 - add r0, sp, #0 - mov r1, r3 - bl FUN_02050990 - ldr r1, _02050D70 @ =0x022AB918 - add r0, sp, #0 - mov r2, #0x50 - bl CopyBitsTo - ldr r1, _02050D74 @ =0x022AB924 - add r0, sp, #0 - mov r2, #0x20 - bl CopyBitsTo - mov r0, #1 - bl GetPerformanceFlagWithChecks - ldr r1, _02050D78 @ =0x022AB918 - tst r0, #0xff - strb r0, [r1, #0x10] - ldrne r1, _02050D7C @ =0x0209E6BC - add r0, sp, #0 - ldreq r1, _02050D80 @ =0x0209E6BD - mov r2, #1 - bl CopyBitsTo - add r0, sp, #0 - bl FUN_020509bc - ldr r0, [sp, #8] - add sp, sp, #0x10 - pop {r3, pc} - .align 2, 0 -_02050D70: .4byte 0x022AB918 -_02050D74: .4byte 0x022AB924 -_02050D78: .4byte 0x022AB918 -_02050D7C: .4byte 0x0209E6BC -_02050D80: .4byte 0x0209E6BD - arm_func_end FUN_02050cf8 - - arm_func_start FUN_02050d84 -FUN_02050d84: @ 0x02050D84 - stmdb sp!, {lr} - sub sp, sp, #0x14 - mov r3, r0 - mov r2, r1 - add r0, sp, #4 - mov r1, r3 - bl FUN_02050974 - ldr r1, _02050DFC @ =0x022AB918 - add r0, sp, #4 - mov r2, #0x50 - bl CopyBitsFrom - ldr r1, _02050E00 @ =0x022AB924 - add r0, sp, #4 - mov r2, #0x20 - bl CopyBitsFrom - add r0, sp, #4 - add r1, sp, #0 - mov r2, #1 - bl CopyBitsFrom - ldrb r0, [sp] - ldr r1, _02050E04 @ =0x022AB918 - tst r0, #1 - movne r2, #1 - moveq r2, #0 - add r0, sp, #4 - strb r2, [r1, #0x10] - bl FUN_020509bc - ldr r0, [sp, #0xc] - add sp, sp, #0x14 - ldm sp!, {pc} - .align 2, 0 -_02050DFC: .4byte 0x022AB918 -_02050E00: .4byte 0x022AB924 -_02050E04: .4byte 0x022AB918 - arm_func_end FUN_02050d84 - - arm_func_start FUN_02050E08 -FUN_02050E08: @ 0x02050E08 - mov r1, #0 - strb r1, [r0, #4] - str r1, [r0] - bx lr - arm_func_end FUN_02050E08 - - arm_func_start FUN_02050E18 -FUN_02050E18: @ 0x02050E18 - ldrb r1, [r0, #4] - add r2, r1, #1 - and r1, r2, #0xff - strb r2, [r0, #4] - cmp r1, #0x3c - bxlo lr - mov r1, #0 - strb r1, [r0, #4] - ldr r2, [r0] - ldr r1, _02050E50 @ =0x022550FF - cmp r2, r1 - addlo r1, r2, #1 - strlo r1, [r0] - bx lr - .align 2, 0 -_02050E50: .4byte 0x022550FF - arm_func_end FUN_02050E18 -_02050E54: - .byte 0x00, 0x00, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02050E5C -FUN_02050E5C: @ 0x02050E5C - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r0, r4 - add r1, r5, #4 - mov r2, #6 - bl CopyBitsTo - mov r0, r4 - mov r1, r5 - mov r2, #0x20 - bl CopyBitsTo - pop {r3, r4, r5, pc} - arm_func_end FUN_02050E5C - - arm_func_start FUN_02050E8C -FUN_02050E8C: @ 0x02050E8C - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r0, r4 - add r1, r5, #4 - mov r2, #6 - bl CopyBitsFrom - mov r0, r4 - mov r1, r5 - mov r2, #0x20 - bl CopyBitsFrom - pop {r3, r4, r5, pc} - arm_func_end FUN_02050E8C -_02050EBC: - .byte 0x0F, 0x00, 0x2D, 0xE9 - .byte 0xF2, 0x30, 0xDD, 0xE1, 0xF6, 0x00, 0xDD, 0xE1, 0xF0, 0x20, 0xDD, 0xE1, 0xF4, 0x10, 0xDD, 0xE1 - .byte 0x00, 0x00, 0x83, 0xE0, 0xB2, 0x00, 0xCD, 0xE1, 0xF2, 0x00, 0xDD, 0xE1, 0x01, 0x10, 0x82, 0xE0 - .byte 0xB0, 0x10, 0xCD, 0xE1, 0xFA, 0x0F, 0x50, 0xE3, 0xFA, 0x0F, 0x40, 0xA2, 0xF0, 0x10, 0xDD, 0xA1 - .byte 0xB2, 0x00, 0xCD, 0xA1, 0x01, 0x00, 0x81, 0xA2, 0xB0, 0x00, 0xCD, 0xA1, 0xB2, 0x10, 0xDD, 0xE1 - .byte 0xB0, 0x00, 0xDD, 0xE1, 0x01, 0x08, 0x80, 0xE1, 0x10, 0xD0, 0x8D, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start SubFixedPoint -SubFixedPoint: @ 0x02050F10 - push {r0, r1, r2, r3} - ldrsh r3, [sp, #2] - ldrsh r0, [sp, #6] - ldrsh r2, [sp] - ldrsh r1, [sp, #4] - sub r0, r3, r0 - strh r0, [sp, #2] - ldrsh r0, [sp, #2] - sub r1, r2, r1 - strh r1, [sp] - cmp r0, #0 - addlt r0, r0, #0x3e8 - ldrshlt r1, [sp] - strhlt r0, [sp, #2] - sublt r0, r1, #1 - strhlt r0, [sp] - ldrsh r0, [sp] - cmp r0, #0 - movlt r0, #0 - strhlt r0, [sp, #2] - strhlt r0, [sp] - ldrh r1, [sp, #2] - ldrh r0, [sp] - orr r0, r0, r1, lsl #16 - add sp, sp, #0x10 - bx lr - arm_func_end SubFixedPoint -_02050F78: - .byte 0x0F, 0x00, 0x2D, 0xE9, 0x08, 0x00, 0x2D, 0xE9 - .byte 0x04, 0xD0, 0x4D, 0xE2, 0xF8, 0x10, 0xDD, 0xE1, 0xFC, 0x00, 0xDD, 0xE1, 0x00, 0x00, 0x51, 0xE1 - .byte 0xBE, 0x10, 0xDD, 0xC1, 0xBC, 0x00, 0xDD, 0xC1, 0x01, 0x08, 0x80, 0xC1, 0x11, 0x00, 0x00, 0xCA - .byte 0xBA, 0x10, 0xDD, 0xB1, 0xB8, 0x00, 0xDD, 0xB1, 0x01, 0x08, 0x80, 0xB1, 0x0D, 0x00, 0x00, 0xBA - .byte 0xFA, 0x10, 0xDD, 0xE1, 0xFE, 0x00, 0xDD, 0xE1, 0x00, 0x00, 0x51, 0xE1, 0xBC, 0x10, 0xDD, 0xC1 - .byte 0xBE, 0x00, 0xDD, 0xC1, 0xB0, 0x10, 0xCD, 0xC1, 0xB2, 0x00, 0xCD, 0xC1, 0xB8, 0x10, 0xDD, 0xD1 - .byte 0xBA, 0x00, 0xDD, 0xD1, 0xB0, 0x10, 0xCD, 0xD1, 0xB2, 0x00, 0xCD, 0xD1, 0xB2, 0x10, 0xDD, 0xE1 - .byte 0xB0, 0x00, 0xDD, 0xE1, 0x01, 0x08, 0x80, 0xE1, 0x04, 0xD0, 0x8D, 0xE2, 0x08, 0x00, 0xBD, 0xE8 - .byte 0x10, 0xD0, 0x8D, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02050ff8 -FUN_02050ff8: @ 0x02050FF8 - stmdb sp!, {r3} - sub sp, sp, #4 - strh r0, [sp] - ldrh r0, [sp] - mov r1, #0 - strh r1, [sp, #2] - orr r0, r0, r1, lsl #16 - add sp, sp, #4 - ldm sp!, {r3} - bx lr - arm_func_end FUN_02050ff8 - - arm_func_start BinToDecFixedPoint -BinToDecFixedPoint: @ 0x02051020 - stmdb sp!, {r3} - sub sp, sp, #4 - ldr r2, [r0, #4] - mov r1, #0x3e8 - lsl r0, r2, #0x10 - lsr r0, r0, #0x10 - mul r1, r0, r1 - lsr r2, r2, #0x10 - lsr r0, r1, #0x10 - strh r2, [sp] - strh r0, [sp, #2] - ldrh r1, [sp, #2] - ldrh r0, [sp] - orr r0, r0, r1, lsl #16 - add sp, sp, #4 - ldm sp!, {r3} - bx lr - arm_func_end BinToDecFixedPoint - - arm_func_start CeilFixedPoint -CeilFixedPoint: @ 0x02051064 - push {r0, r1, r2, r3} - ldrsh r0, [sp] - ldrsh r1, [sp, #2] - cmp r0, #0 - bne _02051088 - cmp r1, #0 - movne r0, #1 - moveq r0, #0 - b _02051090 -_02051088: - cmp r1, #0 - addne r0, r0, #1 -_02051090: - add sp, sp, #0x10 - bx lr - arm_func_end CeilFixedPoint - - arm_func_start FUN_02051098 -FUN_02051098: @ 0x02051098 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r2, #0x10 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #2 - mov r2, #0x10 - bl CopyBitsFrom - pop {r3, r4, r5, pc} - arm_func_end FUN_02051098 - - arm_func_start FUN_020510c0 -FUN_020510c0: @ 0x020510C0 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r2, #0x10 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #2 - mov r2, #0x10 - bl CopyBitsTo - pop {r3, r4, r5, pc} - arm_func_end FUN_020510c0 - - arm_func_start FUN_020510e8 -FUN_020510e8: @ 0x020510E8 - ldr r3, _02051128 @ =0x020AFF88 - mov ip, #1 - str r0, [r3] - ldr r0, _0205112C @ =0x6C078965 - b _02051114 -_020510FC: - add r1, r3, ip, lsl #2 - ldr r1, [r1, #-4] - eor r1, r1, r1, lsr #30 - mla r2, r1, r0, ip - str r2, [r3, ip, lsl #2] - add ip, ip, #1 -_02051114: - cmp ip, #0x270 - blt _020510FC - ldr r0, _02051130 @ =0x020AFF7C - str ip, [r0] - bx lr - .align 2, 0 -_02051128: .4byte 0x020AFF88 -_0205112C: .4byte 0x6C078965 -_02051130: .4byte 0x020AFF7C - arm_func_end FUN_020510e8 - - arm_func_start FUN_02051134 -FUN_02051134: @ 0x02051134 - push {r4, lr} - ldr r0, _0205126C @ =0x020AFF7C - ldr r1, [r0] - cmp r1, #0x270 - blt _02051230 - ldr r0, _02051270 @ =0x00000271 - cmp r1, r0 - bne _0205115C - add r0, r0, #0x1300 - bl FUN_020510e8 -_0205115C: - ldr ip, _02051274 @ =0x020AFF88 - ldr r2, _02051278 @ =0x020AFF80 - mov r0, #0 -_02051168: - add r3, ip, r0, lsl #2 - ldr r4, [ip, r0, lsl #2] - ldr r1, [r3, #4] - and r4, r4, #0x80000000 - bic r1, r1, #0x80000000 - orr r4, r4, r1 - and r1, r4, #1 - ldr r3, [r3, #0x634] - ldr r1, [r2, r1, lsl #2] - eor r3, r3, r4, lsr #1 - eor r1, r3, r1 - str r1, [ip, r0, lsl #2] - add r0, r0, #1 - cmp r0, #0xe3 - blt _02051168 - ldr r4, _02051274 @ =0x020AFF88 - ldr r3, _02051278 @ =0x020AFF80 - ldr r1, _0205127C @ =0x0000026F - b _020511E8 -_020511B4: - add ip, r4, r0, lsl #2 - ldr lr, [r4, r0, lsl #2] - ldr r2, [ip, #4] - and lr, lr, #0x80000000 - bic r2, r2, #0x80000000 - orr lr, lr, r2 - and r2, lr, #1 - ldr ip, [ip, #-0x38c] - ldr r2, [r3, r2, lsl #2] - eor ip, ip, lr, lsr #1 - eor r2, ip, r2 - str r2, [r4, r0, lsl #2] - add r0, r0, #1 -_020511E8: - cmp r0, r1 - blt _020511B4 - ldr r1, _02051274 @ =0x020AFF88 - ldr r0, _02051278 @ =0x020AFF80 - ldr r3, [r1, #0x9bc] - ldr r2, [r1] - and r3, r3, #0x80000000 - bic r2, r2, #0x80000000 - orr ip, r3, r2 - and r2, ip, #1 - ldr r3, [r1, #0x630] - ldr r0, [r0, r2, lsl #2] - eor r2, r3, ip, lsr #1 - eor r2, r2, r0 - ldr r0, _0205126C @ =0x020AFF7C - str r2, [r1, #0x9bc] - mov r1, #0 - str r1, [r0] -_02051230: - ldr r1, _0205126C @ =0x020AFF7C - ldr r2, _02051274 @ =0x020AFF88 - ldr r3, [r1] - ldr r0, _02051280 @ =0x9D2C5680 - ldr r2, [r2, r3, lsl #2] - add ip, r3, #1 - eor r3, r2, r2, lsr #11 - and r2, r0, r3, lsl #7 - ldr r0, _02051284 @ =0xEFC60000 - eor r2, r3, r2 - and r0, r0, r2, lsl #15 - eor r0, r2, r0 - str ip, [r1] - eor r0, r0, r0, lsr #18 - pop {r4, pc} - .align 2, 0 -_0205126C: .4byte 0x020AFF7C -_02051270: .4byte 0x00000271 -_02051274: .4byte 0x020AFF88 -_02051278: .4byte 0x020AFF80 -_0205127C: .4byte 0x0000026F -_02051280: .4byte 0x9D2C5680 -_02051284: .4byte 0xEFC60000 - arm_func_end FUN_02051134 - - arm_func_start DungeonGoesUp -DungeonGoesUp: @ 0x02051288 - mov r1, #0xc - mul r1, r0, r1 - ldr r0, _020512AC @ =0x020A0C64 - ldr r0, [r0, r1] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_020512AC: .4byte 0x020A0C64 - arm_func_end DungeonGoesUp - - arm_func_start GetTurnLimit -GetTurnLimit: @ 0x020512B0 - mov r1, #0xc - mul r1, r0, r1 - ldr r0, _020512C4 @ =0x020A0C6C - ldrsh r0, [r0, r1] - bx lr - .align 2, 0 -_020512C4: .4byte 0x020A0C6C - arm_func_end GetTurnLimit - - arm_func_start DoesNotSaveWhenEntering -DoesNotSaveWhenEntering: @ 0x020512C8 - mov r1, #0xc - mul r1, r0, r1 - ldr r0, _020512EC @ =0x020A0C64 - ldr r0, [r0, r1] - tst r0, #0x80 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_020512EC: .4byte 0x020A0C64 - arm_func_end DoesNotSaveWhenEntering - - arm_func_start TreasureBoxDropsEnabled -TreasureBoxDropsEnabled: @ 0x020512F0 - mov r1, #0xc - mul r1, r0, r1 - ldr r0, _02051314 @ =0x020A0C64 - ldr r0, [r0, r1] - tst r0, #0x400 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_02051314: .4byte 0x020A0C64 - arm_func_end TreasureBoxDropsEnabled - - arm_func_start IsLevelResetDungeon -IsLevelResetDungeon: @ 0x02051318 - mov r1, #0xc - mul r1, r0, r1 - ldr r0, _0205133C @ =0x020A0C64 - ldr r0, [r0, r1] - tst r0, #0x10 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0205133C: .4byte 0x020A0C64 - arm_func_end IsLevelResetDungeon - - arm_func_start GetMaxItemsAllowed -GetMaxItemsAllowed: @ 0x02051340 - mov r1, #0xc - mul r1, r0, r1 - ldr r0, _02051354 @ =0x020A0C69 - ldrb r0, [r0, r1] - bx lr - .align 2, 0 -_02051354: .4byte 0x020A0C69 - arm_func_end GetMaxItemsAllowed - - arm_func_start IsMoneyAllowed -IsMoneyAllowed: @ 0x02051358 - mov r1, #0xc - mul r1, r0, r1 - ldr r0, _0205137C @ =0x020A0C64 - ldr r0, [r0, r1] - tst r0, #0x20 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0205137C: .4byte 0x020A0C64 - arm_func_end IsMoneyAllowed - - arm_func_start GetMaxRescueAttempts -GetMaxRescueAttempts: @ 0x02051380 - mov r1, #0xc - mul r1, r0, r1 - ldr r0, _02051394 @ =0x020A0C68 - ldrsb r0, [r0, r1] - bx lr - .align 2, 0 -_02051394: .4byte 0x020A0C68 - arm_func_end GetMaxRescueAttempts - - arm_func_start IsRecruitingAllowed -IsRecruitingAllowed: @ 0x02051398 - mov r1, #0xc - mul r1, r0, r1 - ldr r0, _020513BC @ =0x020A0C64 - ldr r0, [r0, r1] - tst r0, #8 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_020513BC: .4byte 0x020A0C64 - arm_func_end IsRecruitingAllowed - - arm_func_start GetLeaderChangeFlag -GetLeaderChangeFlag: @ 0x020513C0 - mov r1, #0xc - mul r1, r0, r1 - ldr r0, _020513E4 @ =0x020A0C64 - ldr r0, [r0, r1] - tst r0, #0x40 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_020513E4: .4byte 0x020A0C64 - arm_func_end GetLeaderChangeFlag - - arm_func_start GetRandomMovementChance -GetRandomMovementChance: @ 0x020513E8 - mov r1, #0xc - mul r1, r0, r1 - ldr r0, _020513FC @ =0x020A0C6E - ldrsh r0, [r0, r1] - bx lr - .align 2, 0 -_020513FC: .4byte 0x020A0C6E - arm_func_end GetRandomMovementChance - - arm_func_start CanEnemyEvolve -CanEnemyEvolve: @ 0x02051400 - mov r1, #0xc - mul r1, r0, r1 - ldr r0, _02051424 @ =0x020A0C64 - ldr r0, [r0, r1] - tst r0, #2 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_02051424: .4byte 0x020A0C64 - arm_func_end CanEnemyEvolve - - arm_func_start GetMaxMembersAllowed -GetMaxMembersAllowed: @ 0x02051428 - mov r1, #0xc - mul r1, r0, r1 - ldr r0, _0205143C @ =0x020A0C6A - ldrb r0, [r0, r1] - bx lr - .align 2, 0 -_0205143C: .4byte 0x020A0C6A - arm_func_end GetMaxMembersAllowed - - arm_func_start IsIqEnabled -IsIqEnabled: @ 0x02051440 - mov r1, #0xc - mul r1, r0, r1 - ldr r0, _02051464 @ =0x020A0C64 - ldr r0, [r0, r1] - tst r0, #0x100 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_02051464: .4byte 0x020A0C64 - arm_func_end IsIqEnabled - - arm_func_start IsTrapInvisibleWhenAttacking -IsTrapInvisibleWhenAttacking: @ 0x02051468 - mov r1, #0xc - mul r1, r0, r1 - ldr r0, _0205148C @ =0x020A0C64 - ldr r0, [r0, r1] - tst r0, #0x200 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0205148C: .4byte 0x020A0C64 - arm_func_end IsTrapInvisibleWhenAttacking - - arm_func_start JoinedAtRangeCheck -JoinedAtRangeCheck: @ 0x02051490 - cmp r0, #0xd9 - blo _020514A4 - cmp r0, #0xe4 - movlo r0, #1 - blo _020514A8 -_020514A4: - mov r0, #0 -_020514A8: - and r0, r0, #0xff - bx lr - arm_func_end JoinedAtRangeCheck - - arm_func_start IsDojoDungeon -IsDojoDungeon: @ 0x020514B0 - cmp r0, #0xb4 - blo _020514C4 - cmp r0, #0xd3 - movls r0, #1 - bxls lr -_020514C4: - mov r0, #0 - bx lr - arm_func_end IsDojoDungeon - - arm_func_start IsFutureDungeon -IsFutureDungeon: @ 0x020514CC - cmp r0, #0x1b - blo _020514E0 - cmp r0, #0x21 - movls r0, #1 - bxls lr -_020514E0: - mov r0, #0 - bx lr - arm_func_end IsFutureDungeon - - arm_func_start IsSpecialEpisodeDungeon -IsSpecialEpisodeDungeon: @ 0x020514E8 - cmp r0, #0x7b - blo _020514FC - cmp r0, #0xa4 - movls r0, #1 - bxls lr -_020514FC: - mov r0, #0 - bx lr - arm_func_end IsSpecialEpisodeDungeon - - arm_func_start RetrieveFromItemList1 -RetrieveFromItemList1: @ 0x02051504 - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - ldr r0, _02051564 @ =0x0000270F - mov r6, r1 - bl RandIntSafe - mov r4, r0 - ldr r0, _02051564 @ =0x0000270F - bl RandIntSafe - mov r5, r0 - ldrb r0, [r7] - cmp r0, #0xb4 - cmphs r0, #0xd3 - movhs r0, #0x55 - pophs {r3, r4, r5, r6, r7, pc} - bl GetNbFloorsPlusOne - ldrb r1, [r7, #1] - cmp r1, r0 - movhs r0, #0x55 - pophs {r3, r4, r5, r6, r7, pc} - mov r0, r6 + ldr r2, _022C857C @ =0x02318844 + ldr r0, _022C8580 @ =0x023252E0 mov r1, r4 - mov r2, r5 - bl GetItemIdFromList - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02051564: .4byte 0x0000270F - arm_func_end RetrieveFromItemList1 - - arm_func_start IsForbiddenFloor -IsForbiddenFloor: @ 0x02051568 - push {r3, lr} - mov r1, r0 - add r0, sp, #0 - bl DungeonFloorToGroupFloor - ldrb ip, [sp] - ldrb lr, [sp, #1] - ldr r1, _020515C0 @ =0x0209F714 - mov r3, #0 -_02051588: - ldrb r0, [r1, r3, lsl #1] - lsl r2, r3, #1 - cmp r0, #0x64 - beq _020515B8 - cmp ip, r0 - addeq r0, r1, r2 - ldrbeq r0, [r0, #1] - cmpeq lr, r0 - moveq r0, #1 - popeq {r3, pc} - add r3, r3, #1 - b _02051588 -_020515B8: - mov r0, #0 - pop {r3, pc} - .align 2, 0 -_020515C0: .4byte 0x0209F714 - arm_func_end IsForbiddenFloor - - arm_func_start FUN_020515c4 -FUN_020515c4: @ 0x020515C4 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r2, #8 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #1 - mov r2, #8 - bl CopyBitsTo - pop {r3, r4, r5, pc} - arm_func_end FUN_020515c4 - - arm_func_start Copy16BitsFrom -Copy16BitsFrom: @ 0x020515EC - push {r3, r4, r5, lr} - mov r4, r1 - mov r3, #0 - strb r3, [r4] - mov r5, r0 - mov r2, #8 - strb r3, [r4, #1] - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #1 - mov r2, #8 - bl CopyBitsFrom - pop {r3, r4, r5, pc} - arm_func_end Copy16BitsFrom - - arm_func_start FUN_02051620 -FUN_02051620: @ 0x02051620 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r2, #7 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #1 - mov r2, #7 - bl CopyBitsTo - pop {r3, r4, r5, pc} - arm_func_end FUN_02051620 - - arm_func_start FUN_02051648 -FUN_02051648: @ 0x02051648 - push {r3, r4, r5, lr} - mov r4, r1 - mov r3, #0 - strb r3, [r4] - mov r5, r0 - mov r2, #7 - strb r3, [r4, #1] - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #1 - mov r2, #7 - bl CopyBitsFrom - pop {r3, r4, r5, pc} - arm_func_end FUN_02051648 - - arm_func_start RetrieveFromItemList2 -RetrieveFromItemList2: @ 0x0205167C - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - ldr r0, _020516D8 @ =0x0000270F - mov r6, r1 - bl RandIntSafe - mov r5, r0 - ldr r0, _020516D8 @ =0x0000270F - bl RandIntSafe - mov r4, r0 - ldrb r0, [r7] - cmp r0, #0xb4 - movhs r0, #0x55 - pophs {r3, r4, r5, r6, r7, pc} - bl GetNbFloorsPlusOne - ldrb r1, [r7, #1] - cmp r1, r0 - movhs r0, #0x55 - pophs {r3, r4, r5, r6, r7, pc} - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl GetItemIdFromList - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_020516D8: .4byte 0x0000270F - arm_func_end RetrieveFromItemList2 - - arm_func_start IsInvalidForMission -IsInvalidForMission: @ 0x020516DC - cmp r0, #0xb4 - movhs r0, #1 - bxhs lr - mov r2, #0 - ldr r1, _02051718 @ =0x020A1864 - b _02051704 -_020516F4: - cmp r3, r0 - moveq r0, #1 - bxeq lr - add r2, r2, #1 -_02051704: - ldrb r3, [r1, r2] - cmp r3, #0xb4 - bne _020516F4 - mov r0, #0 - bx lr - .align 2, 0 -_02051718: .4byte 0x020A1864 - arm_func_end IsInvalidForMission - - arm_func_start IsExpEnabledInDungeon -IsExpEnabledInDungeon: @ 0x0205171C - mov r1, #0xc - mul r1, r0, r1 - ldr r0, _02051740 @ =0x020A0C64 - ldr r0, [r0, r1] - tst r0, #4 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_02051740: .4byte 0x020A0C64 - arm_func_end IsExpEnabledInDungeon - - arm_func_start IsSkyExclusiveDungeon -IsSkyExclusiveDungeon: @ 0x02051744 - cmp r0, #0x67 - blo _02051758 - cmp r0, #0xb0 - movls r0, #1 - bxls lr -_02051758: - mov r0, #0 - bx lr - arm_func_end IsSkyExclusiveDungeon - - arm_func_start JoinedAtRangeCheck2 -JoinedAtRangeCheck2: @ 0x02051760 - cmp r0, #0xd7 - beq _02051778 - cmp r0, #0xec - blo _02051780 - cmp r0, #0xf0 - bhi _02051780 -_02051778: - mov r0, #1 - bx lr -_02051780: - mov r0, #0 - bx lr - arm_func_end JoinedAtRangeCheck2 -_02051788: - .byte 0x04, 0x10, 0x9F, 0xE5, 0x80, 0x00, 0xD1, 0xE7 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xB1, 0x20, 0x0A, 0x02, 0x00, 0xC0, 0xA0, 0xE3, 0x2C, 0x20, 0x9F, 0xE5 - .byte 0x06, 0x00, 0x00, 0xEA, 0x8C, 0x10, 0x82, 0xE0, 0x01, 0x10, 0xD1, 0xE5, 0x8C, 0x30, 0xA0, 0xE1 - .byte 0x01, 0x00, 0x50, 0xE1, 0x03, 0x00, 0xD2, 0x07, 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0xC0, 0x8C, 0xE2 - .byte 0x01, 0x0C, 0x5C, 0xE3, 0xF6, 0xFF, 0xFF, 0xBA, 0xFF, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xB0, 0x20, 0x0A, 0x02 - - arm_func_start GetBagCapacity -GetBagCapacity: @ 0x020517D4 - ldr r1, _020517E0 @ =0x020A27D4 - ldr r0, [r1, r0, lsl #2] - bx lr - .align 2, 0 -_020517E0: .4byte 0x020A27D4 - arm_func_end GetBagCapacity - - arm_func_start GetBagCapacitySpecialEpisode -GetBagCapacitySpecialEpisode: @ 0x020517E4 - ldr r1, _020517F0 @ =0x020A27C0 - ldr r0, [r1, r0, lsl #2] - bx lr - .align 2, 0 -_020517F0: .4byte 0x020A27C0 - arm_func_end GetBagCapacitySpecialEpisode - - arm_func_start GetRankUpEntry -GetRankUpEntry: @ 0x020517F4 - ldr r1, _02051800 @ =0x020A2B44 - add r0, r1, r0, lsl #4 - bx lr - .align 2, 0 -_02051800: .4byte 0x020A2B44 - arm_func_end GetRankUpEntry - - arm_func_start FUN_02051804 -FUN_02051804: @ 0x02051804 - push {r4, lr} - add ip, r0, #0x100 - ldrsh r4, [ip, #0x40] - mov ip, #0x14 - ldr lr, [sp, #8] - smlabb r4, r4, ip, r0 - cmp lr, #1 - moveq r1, #0 - stmeq r4, {r1, r2} - streq r1, [r4, #8] - strne r3, [r4] - strne r2, [r4, #4] - strne r1, [r4, #8] - ldrhne r1, [sp, #0xc] - str lr, [r4, #0xc] - add r0, r0, #0x100 - str r1, [r4, #0x10] - ldrsh r1, [r0, #0x40] - add r1, r1, #1 - strh r1, [r0, #0x40] + str r4, [r2] + bl FUN_02079A64 + ldr r0, _022C8584 @ =0x02325220 + mov r1, r4 + bl FUN_02079A64 pop {r4, pc} - arm_func_end FUN_02051804 + .align 2, 0 +_022C857C: .4byte 0x02318844 +_022C8580: .4byte 0x023252E0 +_022C8584: .4byte 0x02325220 + arm_func_end ov00_022C8550 - arm_func_start FUN_02051858 -FUN_02051858: @ 0x02051858 - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r1 - mov r0, #0x1c - mov r1, #0 - mov r5, r2 - mov r4, r3 - bl MemAlloc - str r0, [r7, #8] - str r6, [r7, #0xc] - mov r0, #1 - strb r0, [r7, #0x16] - str r5, [r7] - str r4, [r7, #4] - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_02051858 - - arm_func_start FUN_02051894 -FUN_02051894: @ 0x02051894 - push {r4, lr} - mov r4, r0 - ldrb r0, [r4, #0x16] - cmp r0, #0 - popeq {r4, pc} - ldr r0, [r4, #8] - bl MemFree - mov r0, #0 - strb r0, [r4, #0x16] - pop {r4, pc} - arm_func_end FUN_02051894 - - arm_func_start FUN_020518bc -FUN_020518bc: @ 0x020518BC - push {r3, r4, lr} - sub sp, sp, #4 - mov r4, r0 - cmp r2, #0 - mov r0, #0 - bne _02051934 + arm_func_start ov00_022C8588 +ov00_022C8588: @ 0x022C8588 + tst r0, #1 + beq _022C85C0 cmp r1, #1 - bne _02051904 - ldr r1, _020519B0 @ =0x06018000 - ldr r2, _020519B4 @ =0x0400001C - str r1, [r4, #0x10] - str r0, [sp] - ldr r0, [r4, #8] - sub r3, r1, #0x9000 - mov r1, #1 - bl FUN_0200b2c4 - mov r0, #1 - b _02051990 -_02051904: - cmp r1, #0 - bne _02051990 - ldr r1, _020519B8 @ =0x06010000 - ldr r2, _020519BC @ =0x04000018 - str r1, [r4, #0x10] - str r0, [sp] - ldr r0, [r4, #8] - sub r3, r1, #0x2000 - mov r1, #1 - bl FUN_0200b2c4 - mov r0, #1 - b _02051990 -_02051934: - cmp r1, #1 - bne _02051964 - ldr r1, _020519C0 @ =0x06218000 - ldr r2, _020519C4 @ =0x0400101C - str r1, [r4, #0x10] - str r0, [sp] - ldr r0, [r4, #8] - sub r3, r1, #0x9000 - mov r1, #1 - bl FUN_0200b2c4 - mov r0, #1 - b _02051990 -_02051964: - cmp r1, #0 - bne _02051990 - ldr r1, _020519C8 @ =0x06210000 - ldr r2, _020519CC @ =0x04001018 - str r1, [r4, #0x10] - str r0, [sp] - ldr r0, [r4, #8] - sub r3, r1, #0x2000 - mov r1, #1 - bl FUN_0200b2c4 - mov r0, #1 -_02051990: - cmp r0, #0 - beq _020519A8 - ldr r0, [r4, #8] - bl FUN_0200b3d4 - ldr r0, [r4, #8] - bl FUN_0200b330 -_020519A8: - add sp, sp, #4 - pop {r3, r4, pc} - .align 2, 0 -_020519B0: .4byte 0x06018000 -_020519B4: .4byte 0x0400001C -_020519B8: .4byte 0x06010000 -_020519BC: .4byte 0x04000018 -_020519C0: .4byte 0x06218000 -_020519C4: .4byte 0x0400101C -_020519C8: .4byte 0x06210000 -_020519CC: .4byte 0x04001018 - arm_func_end FUN_020518bc - - arm_func_start FUN_020519d0 -FUN_020519d0: @ 0x020519D0 - push {r3, lr} - mov r0, #0x21c - mov r1, #0 - bl MemAlloc - ldr r2, _02051B3C @ =0x020B09B0 - mov r1, #0x21c - str r0, [r2] - bl MemZero - mov r1, #0 - ldr r0, _02051B3C @ =0x020B09B0 - str r1, [sp] - ldr r0, [r0] - mov r2, #0x100 - add r0, r0, #0x1a4 - mov r3, #0x5000000 - bl FUN_0200a124 - ldr r0, _02051B3C @ =0x020B09B0 - mov r2, #0 - ldr r1, [r0] - mov r3, #0x100 - str r2, [sp] - add r0, r1, #0x1cc - add r1, r1, #0x1a4 - bl FUN_0200a478 - mov r1, #0 - str r1, [sp] - ldr r0, _02051B3C @ =0x020B09B0 - mov r2, #0x100 - ldr r0, [r0] - ldr r3, _02051B40 @ =0x05000400 - add r0, r0, #0x1b8 - bl FUN_0200a124 - ldr r0, _02051B3C @ =0x020B09B0 - mov r2, #0 - ldr r1, [r0] - mov r3, #0x100 - str r2, [sp] - add r0, r1, #0x1f4 - add r1, r1, #0x1b8 - bl FUN_0200a478 - ldr r0, _02051B3C @ =0x020B09B0 - mov r2, #0 - ldr r0, [r0] - mov r3, r2 - add r1, r0, #0x1cc - bl FUN_02051858 - ldr r0, _02051B3C @ =0x020B09B0 - mov r2, #1 - ldr r1, [r0] - mov r3, #0 - add r0, r1, #0x18 - add r1, r1, #0x1cc - bl FUN_02051858 - ldr r0, _02051B3C @ =0x020B09B0 - mov r1, #0 - ldr r0, [r0] - mov r2, r1 - bl FUN_020518bc - ldr r0, _02051B3C @ =0x020B09B0 - mov r1, #1 - ldr r0, [r0] - mov r2, #0 - add r0, r0, #0x18 - bl FUN_020518bc - ldr r0, _02051B3C @ =0x020B09B0 - ldr r1, [r0] - add r0, r1, #0x30 - add r1, r1, #0x1f4 - mov r2, #0 - mov r3, #1 - bl FUN_02051858 - ldr r0, _02051B3C @ =0x020B09B0 - mov r2, #1 - ldr r1, [r0] - mov r3, r2 - add r0, r1, #0x48 - add r1, r1, #0x1f4 - bl FUN_02051858 - ldr r0, _02051B3C @ =0x020B09B0 - mov r1, #0 - ldr r0, [r0] - mov r2, #1 - add r0, r0, #0x30 - bl FUN_020518bc - ldr r0, _02051B3C @ =0x020B09B0 - mov r1, #1 - ldr r0, [r0] - mov r2, r1 - add r0, r0, #0x48 - bl FUN_020518bc - pop {r3, pc} - .align 2, 0 -_02051B3C: .4byte 0x020B09B0 -_02051B40: .4byte 0x05000400 - arm_func_end FUN_020519d0 -_02051B44: - .byte 0x08, 0x40, 0x2D, 0xE9, 0xD0, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x4F, 0xFF, 0xFF, 0xEB, 0xC4, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x18, 0x00, 0x80, 0xE2 - .byte 0x4B, 0xFF, 0xFF, 0xEB, 0xB4, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x90, 0xE5 - .byte 0xE7, 0xE5, 0xFE, 0xEB, 0xA4, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x20, 0x00, 0x90, 0xE5 - .byte 0xE3, 0xE5, 0xFE, 0xEB, 0x94, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x30, 0x00, 0x80, 0xE2 - .byte 0x3F, 0xFF, 0xFF, 0xEB, 0x84, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x48, 0x00, 0x80, 0xE2 - .byte 0x3B, 0xFF, 0xFF, 0xEB, 0x74, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x38, 0x00, 0x90, 0xE5 - .byte 0xD7, 0xE5, 0xFE, 0xEB, 0x64, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x50, 0x00, 0x90, 0xE5 - .byte 0xD3, 0xE5, 0xFE, 0xEB, 0x54, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x73, 0x0F, 0x80, 0xE2 - .byte 0x3B, 0xE2, 0xFE, 0xEB, 0x44, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x7D, 0x0F, 0x80, 0xE2 - .byte 0x37, 0xE2, 0xFE, 0xEB, 0x34, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x69, 0x0F, 0x80, 0xE2 - .byte 0x58, 0xE1, 0xFE, 0xEB, 0x24, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x6E, 0x0F, 0x80, 0xE2 - .byte 0x54, 0xE1, 0xFE, 0xEB, 0x14, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x5D, 0xBD, 0xFE, 0xEB - .byte 0x08, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8 - .byte 0xB0, 0x09, 0x0B, 0x02, 0xF0, 0x41, 0x2D, 0xE9, 0x34, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0xF0, 0x81, 0xBD, 0x08, 0x08, 0x00, 0xA0, 0xE3, 0xFA, 0xC4, 0xFE, 0xEB - .byte 0x1C, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x90, 0xE5, 0xBB, 0xE5, 0xFE, 0xEB - .byte 0x0C, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x38, 0x00, 0x90, 0xE5, 0xB7, 0xE5, 0xFE, 0xEB - .byte 0xFC, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x20, 0x00, 0x90, 0xE5, 0xB3, 0xE5, 0xFE, 0xEB - .byte 0xEC, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x50, 0x00, 0x90, 0xE5, 0xAF, 0xE5, 0xFE, 0xEB - .byte 0xDC, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x73, 0x0F, 0x80, 0xE2, 0x1F, 0xE2, 0xFE, 0xEB - .byte 0xCC, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x7D, 0x0F, 0x80, 0xE2, 0x1B, 0xE2, 0xFE, 0xEB - .byte 0xBC, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x69, 0x0F, 0x80, 0xE2, 0x34, 0xE1, 0xFE, 0xEB - .byte 0xAC, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x6E, 0x0F, 0x80, 0xE2, 0x30, 0xE1, 0xFE, 0xEB - .byte 0x9C, 0x00, 0x9F, 0xE5, 0x00, 0x60, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x06, 0x80, 0xA0, 0xE1 - .byte 0x60, 0x40, 0x80, 0xE2, 0x01, 0x0C, 0x84, 0xE2, 0xF0, 0x54, 0xD0, 0xE1, 0x14, 0x70, 0xA0, 0xE3 - .byte 0x15, 0x00, 0x00, 0xEA, 0x86, 0x47, 0x02, 0xE1, 0x04, 0x00, 0x92, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x0A, 0x00, 0x00, 0x0A, 0x0C, 0x10, 0x92, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x03, 0x00, 0x00, 0x1A - .byte 0x08, 0x10, 0x92, 0xE5, 0x00, 0x20, 0x92, 0xE5, 0x88, 0xA9, 0x00, 0xEB, 0x07, 0x00, 0x00, 0xEA - .byte 0x01, 0x00, 0x51, 0xE3, 0x05, 0x00, 0x00, 0x1A, 0x1A, 0xBD, 0xFE, 0xEB, 0x03, 0x00, 0x00, 0xEA - .byte 0x08, 0x10, 0x92, 0xE5, 0x00, 0x20, 0x92, 0xE5, 0x08, 0x00, 0xA0, 0xE1, 0x78, 0xA9, 0x00, 0xEB - .byte 0x01, 0x00, 0x86, 0xE2, 0x00, 0x08, 0xA0, 0xE1, 0x40, 0x68, 0xA0, 0xE1, 0x05, 0x00, 0x56, 0xE1 - .byte 0xE7, 0xFF, 0xFF, 0xBA, 0x18, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5 - .byte 0x08, 0x00, 0xA0, 0xE3, 0x01, 0x1C, 0x81, 0xE2, 0xB0, 0x2A, 0xC1, 0xE1, 0xE6, 0xC4, 0xFE, 0xEB - .byte 0xF0, 0x81, 0xBD, 0xE8, 0xB0, 0x09, 0x0B, 0x02, 0x14, 0x20, 0x9F, 0xE5, 0x28, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x20, 0x92, 0xE5, 0x0C, 0xC0, 0x9F, 0xE5, 0x73, 0x2F, 0x82, 0xE2, 0x91, 0x20, 0x20, 0xE0 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xB0, 0x09, 0x0B, 0x02, 0x04, 0xA5, 0x00, 0x02 - - arm_func_start FUN_02051d8c -FUN_02051d8c: @ 0x02051D8C - push {r3, lr} - sub sp, sp, #8 - ldr ip, _02051DCC @ =0x020B09B0 - str r1, [sp, #4] - ldr ip, [ip] - ldr lr, [sp, #0x10] - mov r1, #0x30 - mla ip, lr, r1, ip - mov r1, #0x18 - mla r1, r3, r1, ip - str r0, [sp] - ldr r0, [r1, #8] - add r1, sp, #0 - bl FUN_0200b3fc - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_02051DCC: .4byte 0x020B09B0 - arm_func_end FUN_02051d8c - - arm_func_start FUN_02051dd0 -FUN_02051dd0: @ 0x02051DD0 - push {r3, lr} - ldr r3, _02051DF8 @ =0x020B09B0 - mov r2, #0x30 - ldr ip, [r3] - mov r3, #0x18 - mla r2, r1, r2, ip - mla r1, r0, r3, r2 - ldr r0, [r1, #8] - bl FUN_0200b3d4 - pop {r3, pc} - .align 2, 0 -_02051DF8: .4byte 0x020B09B0 - arm_func_end FUN_02051dd0 - - arm_func_start FUN_02051dfc -FUN_02051dfc: @ 0x02051DFC - ldr r3, _02051E1C @ =0x020B09B0 - mov r2, #0x30 - ldr ip, [r3] - mov r3, #0x18 - mla r2, r1, r2, ip - mla r1, r0, r3, r2 - ldr r0, [r1, #8] - bx lr - .align 2, 0 -_02051E1C: .4byte 0x020B09B0 - arm_func_end FUN_02051dfc - - arm_func_start FUN_02051e20 -FUN_02051e20: @ 0x02051E20 - push {r3, lr} - sub sp, sp, #8 - ldr ip, _02051E5C @ =0x020B09B0 - str r1, [sp, #4] - ldr ip, [ip] - mov r1, #0x30 - mla ip, r3, r1, ip - mov r1, #0x18 - mla r1, r2, r1, ip - str r0, [sp] - ldr r0, [r1, #8] - add r1, sp, #0 - bl FUN_0200b3c0 - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_02051E5C: .4byte 0x020B09B0 - arm_func_end FUN_02051e20 - - arm_func_start FUN_02051e60 -FUN_02051e60: @ 0x02051E60 - push {r3, lr} - ldr r3, _02051E88 @ =0x020B09B0 - mov r2, #0x30 - ldr ip, [r3] - mov r3, #0x18 - mla r2, r1, r2, ip - mla r1, r0, r3, r2 - ldr r0, [r1, #8] - bl FUN_0200b330 - pop {r3, pc} - .align 2, 0 -_02051E88: .4byte 0x020B09B0 - arm_func_end FUN_02051e60 - - arm_func_start GetBgRegionArea -GetBgRegionArea: @ 0x02051E8C - push {r3, lr} - ldr ip, _02051EB4 @ =0x020B09B0 - mov r3, #0x30 - ldr lr, [ip] - mov ip, #0x18 - mla r3, r2, r3, lr - mla r2, r1, ip, r3 - ldr r1, [r2, #0x10] - add r0, r1, r0 - pop {r3, pc} - .align 2, 0 -_02051EB4: .4byte 0x020B09B0 - arm_func_end GetBgRegionArea -_02051EB8: - .byte 0x10, 0x20, 0x9F, 0xE5, 0x14, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x20, 0x92, 0xE5, 0x69, 0x2F, 0x82, 0xE2, 0x91, 0x20, 0x20, 0xE0, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xB0, 0x09, 0x0B, 0x02 - - arm_func_start FUN_02051ed4 -FUN_02051ed4: @ 0x02051ED4 - ldr r2, _02051EEC @ =0x020B09B0 - mov r1, #0x28 - ldr r2, [r2] - add r2, r2, #0x1cc - mla r0, r1, r0, r2 - bx lr - .align 2, 0 -_02051EEC: .4byte 0x020B09B0 - arm_func_end FUN_02051ed4 - - arm_func_start FUN_02051ef0 -FUN_02051ef0: @ 0x02051EF0 - push {r3, lr} - cmp r3, #0 - beq _02051F4C - ldrb lr, [r0] - mov ip, #0xff - ldrb lr, [r3, lr, lsl #2] - mul lr, r2, lr - lsr lr, lr, #8 - strb lr, [sp] - ldrb lr, [r0, #1] - add lr, r3, lr, lsl #2 - ldrb lr, [lr, #1] - mul lr, r2, lr - lsr lr, lr, #8 - strb lr, [sp, #1] - ldrb r0, [r0, #2] - add r0, r3, r0, lsl #2 - ldrb r0, [r0, #2] - mul r0, r2, r0 - lsr r0, r0, #8 - strb r0, [sp, #2] - strb ip, [sp, #3] - b _02051F84 -_02051F4C: + bls _022C8610 +_022C8598: ldrb ip, [r0] - mov r3, #0xff - mul lr, ip, r2 - lsr ip, lr, #8 - strb ip, [sp] - ldrb ip, [r0, #1] - mul lr, ip, r2 - lsr ip, lr, #8 - strb ip, [sp, #1] - ldrb r0, [r0, #2] - mul r2, r0, r2 - lsr r0, r2, #8 - strb r0, [sp, #2] - strb r3, [sp, #3] -_02051F84: - ldr r0, _02051FB0 @ =0x020B09B0 - lsl r1, r1, #0x10 - ldr r0, [r0] - ldr r2, [sp, #8] - add r3, r0, #0x1cc - mov r0, #0x28 - mla r0, r2, r0, r3 - add r2, sp, #0 - lsr r1, r1, #0x10 - bl FUN_0200a590 - pop {r3, pc} - .align 2, 0 -_02051FB0: .4byte 0x020B09B0 - arm_func_end FUN_02051ef0 - - arm_func_start FUN_02051fb4 -FUN_02051fb4: @ 0x02051FB4 - push {r3, lr} - sub sp, sp, #8 - str r3, [sp] - mov r3, #0 - str r3, [sp, #4] - ldr ip, _02051FEC @ =0x020B09B0 - mov r3, r2 - mov r2, r1 - ldr ip, [ip] - mov r1, r0 - add r0, ip, #0x60 - bl FUN_02051804 - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_02051FEC: .4byte 0x020B09B0 - arm_func_end FUN_02051fb4 - - arm_func_start FUN_02051ff0 -FUN_02051ff0: @ 0x02051FF0 - push {r3, r4, r5, lr} - sub sp, sp, #8 - mov r3, r0 - mov r5, r1 - add r0, sp, #0 - mov r1, r3 - bl LoadFileFromRom - ldr r0, [sp] - bl GetAtSize - mov r4, r0 - cmp r4, #0 - ldrle r0, [sp] - strle r0, [r5] - ldrle r4, [sp, #4] - ble _02052054 - mov r1, #0 - bl MemAlloc - mov r1, r4 - ldr r2, [sp] - mov r4, r0 - bl DecompressAtNormalVeneer - str r4, [r5] - add r0, sp, #0 - ldr r4, [r4, #0xc] - bl UnloadFile -_02052054: - mov r0, r4 - add sp, sp, #8 - pop {r3, r4, r5, pc} - arm_func_end FUN_02051ff0 - - arm_func_start FUN_02052060 -FUN_02052060: @ 0x02052060 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x2c - ldr r4, _020522E4 @ =0x020B09B0 - mov sl, r1 - ldr r7, [sp, #0x54] - ldr r4, [r4] - mov r1, #0x30 - mla r4, r7, r1, r4 - ldr fp, [sp, #0x50] - mov r1, #0x18 - mla r4, fp, r1, r4 - mov sb, r2 - add r1, sp, #0x28 - mov r2, #0xf - mov r8, r3 - ldr r5, [r4, #0x10] - bl FUN_02051ff0 - mov r3, r0 - ldr r4, [sp, #0x28] - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - ldr r0, _020522E4 @ =0x020B09B0 - ldr r2, [r4, #8] - ldr r0, [r0] - add r1, r5, sl - add r2, r4, r2 - add r0, r0, #0x60 - bl FUN_02051804 - mov r0, #1 - str r0, [sp] - mov r1, #0 - ldr r0, _020522E4 @ =0x020B09B0 - str r1, [sp, #4] - ldr r0, [r0] - mov r2, r4 - mov r3, r1 - add r0, r0, #0x60 - bl FUN_02051804 - ldr r1, [sp, #0x28] - rsb r0, sb, #0x20 - lsl r0, r0, #0x10 - ldr r1, [r1, #0x10] - str r0, [sp, #0x18] - add r0, r4, r1 - str r0, [sp, #0xc] - mov r5, #0 - b _020521CC -_02052120: - mov r6, #0 - mov r0, r6 - str r0, [sp, #8] - ldr r0, [sp, #0xc] - lsl r1, sb, #0x10 - add r0, r0, sb, lsl #6 - str r0, [sp, #0x10] - asr r0, r1, #0x10 - str r0, [sp, #0x14] -_02052144: - ldr r0, [sp, #0x10] - lsl r1, r6, #1 - ldrh r1, [r1, r0] - ldr r2, _020522E8 @ =0x00000FFF - lsl r0, r6, #0x10 - and r2, r1, r2 - lsl r2, r2, #0x10 - lsl r1, r1, #4 - lsr r2, r2, #0x10 - add r1, r8, r1, lsr #16 - add r2, r2, sl, lsr #5 - lsl r1, r1, #0x1c - lsl r2, r2, #0x10 - lsr r1, r1, #0x10 - orr r1, r1, r2, lsr #16 - lsl r1, r1, #0x10 - lsr r2, r1, #0x10 - ldr r1, [sp, #0x14] - asr r0, r0, #0x10 - str r7, [sp] - mov r3, fp - bl FUN_02051d8c - ldr r0, [sp, #8] - add r6, r6, #1 - add r0, r0, #1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #8] - cmp r0, #0x20 - blo _02052144 - add r0, r5, #1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - add sb, sb, #1 -_020521CC: - ldr r0, [sp, #0x18] - cmp r5, r0, lsr #16 - blo _02052120 - mov r0, fp - mov r1, r7 - bl FUN_02051e60 - ldr r0, [sp, #0x28] - ldr r3, _020522EC @ =0x020A2C84 - ldr r0, [r0] - add r2, sp, #0x1c - add r5, r4, r0 - mov r4, #0 - mov r1, #4 -_02052200: - ldrb r0, [r3], #1 - subs r1, r1, #1 - strb r0, [r2], #1 - bne _02052200 - mov r0, #0x28 - mul r6, r7, r0 - b _020522B0 -_0205221C: - add r3, sp, #0x1c - add r2, sp, #0x20 - mov r1, #4 -_02052228: - ldrb r0, [r3], #1 - subs r1, r1, #1 - strb r0, [r2], #1 - bne _02052228 - ldrb r0, [r5] - add r3, sp, #0x20 - add r2, sp, #0x24 - strb r0, [sp, #0x20] - ldrb r0, [r5, #1] - mov r1, #4 - strb r0, [sp, #0x21] - ldrb r0, [r5, #2] - strb r0, [sp, #0x22] - ldrb r0, [r5, #3] - strb r0, [sp, #0x23] -_02052264: - ldrb r0, [r3], #1 - subs r1, r1, #1 - strb r0, [r2], #1 - bne _02052264 - add r0, r4, r8, lsl #4 - cmp r0, #0x100 - bge _020522C8 - ldr r1, _020522E4 @ =0x020B09B0 - lsl r0, r0, #0x10 - ldr r1, [r1] - asr r0, r0, #0x10 - add r3, r1, #0x1cc - lsl r1, r0, #0x10 - add r2, sp, #0x24 - add r0, r3, r6 - lsr r1, r1, #0x10 - bl FUN_0200a590 - add r4, r4, #1 - add r5, r5, #4 -_020522B0: - ldr r0, [sp, #0x28] - ldr r1, [r0, #4] - asr r0, r1, #1 - add r0, r1, r0, lsr #30 - cmp r4, r0, asr #2 - blt _0205221C -_020522C8: - ldr r0, _020522E4 @ =0x020B09B0 - ldr r0, [r0] - add r0, r0, #0x1cc - add r0, r0, r6 - bl FUN_0200a504 - add sp, sp, #0x2c - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_020522E4: .4byte 0x020B09B0 -_020522E8: .4byte 0x00000FFF -_020522EC: .4byte 0x020A2C84 - arm_func_end FUN_02052060 - - arm_func_start FUN_020522f0 -FUN_020522f0: @ 0x020522F0 - push {r4, lr} - mov r4, r1 - bl FUN_02051ff0 - str r0, [r4, #8] - ldr r1, [r4] - ldr r0, [r1, #8] - add r0, r1, r0 - str r0, [r4, #4] - ldr r0, [r4] - ldr r0, [r0, #0x10] - add r0, r1, r0 - str r0, [r4, #0xc] - ldr r0, [r4] - ldr r0, [r0] - add r0, r1, r0 - str r0, [r4, #0x10] - pop {r4, pc} - arm_func_end FUN_020522f0 - - arm_func_start FUN_02052334 -FUN_02052334: @ 0x02052334 - push {r4, lr} - mov r4, r0 - ldr r0, [r4] - cmp r0, #0 - popeq {r4, pc} - bl MemFree - mov r0, #0 - str r0, [r4] - pop {r4, pc} - arm_func_end FUN_02052334 - - arm_func_start LoadMonsterMd -LoadMonsterMd: @ 0x02052358 - push {r3, lr} - ldr r0, _02052388 @ =0x020B09C0 - ldr r1, _0205238C @ =0x020A31B8 - mov r2, #0 - bl LoadFileFromRom - bl LoadM2nAndN2m - ldr r0, _02052390 @ =0x020B09B4 - ldr r1, [r0, #0xc] - str r1, [r0, #4] - add r1, r1, #8 - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_02052388: .4byte 0x020B09C0 -_0205238C: .4byte 0x020A31B8 -_02052390: .4byte 0x020B09B4 - arm_func_end LoadMonsterMd - - arm_func_start GetNameRaw -GetNameRaw: @ 0x02052394 - push {r4, lr} - mov r4, r0 - mov r0, r1 - mov r1, #0x258 - bl DivideInt - add r0, r1, #0x1f - add r0, r0, #0x2200 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl StringFromMessageId - mov r1, r0 - mov r0, r4 - mov r2, #0x14 - bl Strncpy - pop {r4, pc} - arm_func_end GetNameRaw - - arm_func_start GetName -GetName: @ 0x020523D0 - push {r3, r4, r5, lr} - mov r5, r0 - mov r0, r1 - mov r1, #0x258 - mov r4, r2 - bl DivideInt - add r0, r1, #0x1f - add r0, r0, #0x2200 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl StringFromMessageId - mov r3, r0 - mov r0, r5 - mov r2, r4 - ldr r1, _02052414 @ =0x020A31D4 - bl SprintfStatic - pop {r3, r4, r5, pc} - .align 2, 0 -_02052414: .4byte 0x020A31D4 - arm_func_end GetName - - arm_func_start SprintfStatic -SprintfStatic: @ 0x02052418 - push {r0, r1, r2, r3} - push {r3, lr} - add r2, sp, #0xc - bic r2, r2, #3 - ldr r1, [sp, #0xc] - add r2, r2, #4 - bl Vsprintf - pop {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end SprintfStatic - - arm_func_start GetNameWithGender -GetNameWithGender: @ 0x02052440 - push {r3, r4, r5, r6, lr} - sub sp, sp, #4 - mov r5, r1 - mov r6, r0 - mov r0, r5 - mov r1, #0x258 - mov r4, r2 - bl DivideInt - add r0, r1, #0x1f - add r0, r0, #0x2200 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl StringFromMessageId - ldr r2, _020524F4 @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - mov r3, r0 - smlabb r0, r5, r1, r2 - ldrb r0, [r0, #0x12] - cmp r0, #3 - cmpne r5, #0x1d - cmpne r5, #0x20 - bne _020524B0 - ldr r1, _020524F8 @ =0x020A31D4 - mov r0, r6 - mov r2, r4 - bl SprintfStatic - b _020524EC -_020524B0: - cmp r0, #2 - bne _020524D4 - ldr r1, _020524FC @ =0x020A31E4 - mov r5, #0xbe - mov r0, r6 - mov r2, r4 - str r5, [sp] - bl SprintfStatic - b _020524EC -_020524D4: - ldr r1, _020524FC @ =0x020A31E4 - mov r5, #0xbd - mov r0, r6 - mov r2, r4 - str r5, [sp] - bl SprintfStatic -_020524EC: - add sp, sp, #4 - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_020524F4: .4byte 0x020B09B4 -_020524F8: .4byte 0x020A31D4 -_020524FC: .4byte 0x020A31E4 - arm_func_end GetNameWithGender - - arm_func_start GetSpeciesString -GetSpeciesString: @ 0x02052500 - push {r3, r4, r5, lr} - mov r4, r1 - mov r5, r0 - mov r0, r4 - bl GetBaseForm - cmp r0, #0xc9 - bne _02052684 - cmp r4, #0xca - moveq r4, #1 - beq _02052660 - cmp r4, #0xcb - moveq r4, #2 - beq _02052660 - cmp r4, #0xcc - moveq r4, #3 - beq _02052660 - cmp r4, #0xcd - moveq r4, #4 - beq _02052660 - cmp r4, #0xce - moveq r4, #5 - beq _02052660 - cmp r4, #0xcf - moveq r4, #6 - beq _02052660 - cmp r4, #0xd0 - moveq r4, #7 - beq _02052660 - cmp r4, #0xd1 - moveq r4, #8 - beq _02052660 - cmp r4, #0xd2 - moveq r4, #9 - beq _02052660 - cmp r4, #0xd3 - moveq r4, #0xa - beq _02052660 - cmp r4, #0xd4 - moveq r4, #0xb - beq _02052660 - cmp r4, #0xd5 - moveq r4, #0xc - beq _02052660 - cmp r4, #0xd6 - moveq r4, #0xd - beq _02052660 - cmp r4, #0xd7 - moveq r4, #0xe - beq _02052660 - cmp r4, #0xd8 - moveq r4, #0xf - beq _02052660 - cmp r4, #0xd9 - moveq r4, #0x10 - beq _02052660 - cmp r4, #0xda - moveq r4, #0x11 - beq _02052660 - cmp r4, #0xdb - moveq r4, #0x12 - beq _02052660 - cmp r4, #0xdc - moveq r4, #0x13 - beq _02052660 - cmp r4, #0xdd - moveq r4, #0x14 - beq _02052660 - cmp r4, #0xde - moveq r4, #0x15 - beq _02052660 - cmp r4, #0xdf - moveq r4, #0x16 - beq _02052660 - cmp r4, #0xe0 - moveq r4, #0x17 - beq _02052660 - cmp r4, #0xe1 - moveq r4, #0x18 - beq _02052660 - cmp r4, #0xe2 - moveq r4, #0x19 - beq _02052660 - cmp r4, #0xe3 - moveq r4, #0x1a - beq _02052660 - cmp r4, #0xe4 - moveq r4, #0x1b - movne r4, #0 -_02052660: - ldr r0, _020526B8 @ =0x000022E8 - bl StringFromMessageId - ldr r1, _020526BC @ =0x020B09D8 - mov r2, r0 - ldr r3, [r1, r4, lsl #2] - ldr r1, _020526C0 @ =0x020A31F4 - mov r0, r5 - bl SprintfStatic - pop {r3, r4, r5, pc} -_02052684: - mov r0, r4 - mov r1, #0x258 - bl DivideInt - add r0, r1, #0x1f - add r0, r0, #0x2200 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl StringFromMessageId - mov r2, r0 - ldr r1, _020526C4 @ =0x020A31FC - mov r0, r5 - bl SprintfStatic - pop {r3, r4, r5, pc} - .align 2, 0 -_020526B8: .4byte 0x000022E8 -_020526BC: .4byte 0x020B09D8 -_020526C0: .4byte 0x020A31F4 -_020526C4: .4byte 0x020A31FC - arm_func_end GetSpeciesString - - arm_func_start GetNameString -GetNameString: @ 0x020526C8 - push {r3, lr} - mov r1, #0x258 - bl DivideInt - add r0, r1, #0x1f - add r0, r0, #0x2200 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl StringFromMessageId - pop {r3, pc} - arm_func_end GetNameString - - arm_func_start GetSpriteIndex -GetSpriteIndex: @ 0x020526EC - ldr r2, _02052704 @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrh r0, [r0, #0x10] - bx lr - .align 2, 0 -_02052704: .4byte 0x020B09B4 - arm_func_end GetSpriteIndex - - arm_func_start GetSpriteIndex -GetSpriteIndex: @ 0x02052708 - ldr r2, _02052720 @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrh r0, [r0, #0x10] - bx lr - .align 2, 0 -_02052720: .4byte 0x020B09B4 - arm_func_end GetSpriteIndex - - arm_func_start GetSpriteIndex -GetSpriteIndex: @ 0x02052724 - ldr r2, _0205273C @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrh r0, [r0, #0x10] - bx lr - .align 2, 0 -_0205273C: .4byte 0x020B09B4 - arm_func_end GetSpriteIndex - - arm_func_start GetDexNumber -GetDexNumber: @ 0x02052740 - ldr r2, _02052758 @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrsh r0, [r0, #4] - bx lr - .align 2, 0 -_02052758: .4byte 0x020B09B4 - arm_func_end GetDexNumber - - arm_func_start GetCategoryString -GetCategoryString: @ 0x0205275C - push {r3, r4, r5, lr} - mov r5, r0 - bl FUN_02025888 - mov r4, r0 - mov r0, r5 - mov r1, #0x258 - bl DivideInt - add r0, r1, #0x77 - add r0, r0, #0x2400 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl StringFromMessageId - mov r2, r0 - ldr r1, _020527A4 @ =0x020A3200 - mov r0, r4 - bl SprintfStatic - mov r0, r4 - pop {r3, r4, r5, pc} - .align 2, 0 -_020527A4: .4byte 0x020A3200 - arm_func_end GetCategoryString - - arm_func_start GetMonsterGender -GetMonsterGender: @ 0x020527A8 - ldr r2, _020527C0 @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrb r0, [r0, #0x12] - bx lr - .align 2, 0 -_020527C0: .4byte 0x020B09B4 - arm_func_end GetMonsterGender - - arm_func_start GetBodySize -GetBodySize: @ 0x020527C4 - ldr r2, _020527DC @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrb r0, [r0, #0x13] - bx lr - .align 2, 0 -_020527DC: .4byte 0x020B09B4 - arm_func_end GetBodySize - - arm_func_start GetSpriteSize -GetSpriteSize: @ 0x020527E0 - push {r3, lr} - mov r1, #0x258 - bl DivideInt - lsl r0, r1, #0x10 - ldr r2, _02052818 @ =0x020A2D08 - asr r0, r0, #0x10 - ldrb r0, [r2, r0, lsl #1] - cmp r0, #0 - moveq r0, #0 - popeq {r3, pc} - cmp r0, #6 - movls r0, #6 - ldrbhi r0, [r2, r1, lsl #1] - pop {r3, pc} - .align 2, 0 -_02052818: .4byte 0x020A2D08 - arm_func_end GetSpriteSize - - arm_func_start GetSpriteFileSize -GetSpriteFileSize: @ 0x0205281C - push {r3, lr} - mov r1, #0x258 - bl DivideInt - ldr r0, _02052838 @ =0x020A2D09 - ldrb r0, [r0, r1, lsl #1] - lsl r0, r0, #9 - pop {r3, pc} - .align 2, 0 -_02052838: .4byte 0x020A2D09 - arm_func_end GetSpriteFileSize - - arm_func_start GetShadowSize -GetShadowSize: @ 0x0205283C - ldr r2, _02052854 @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrb r0, [r0, #0x2e] - bx lr - .align 2, 0 -_02052854: .4byte 0x020B09B4 - arm_func_end GetShadowSize - - arm_func_start GetSpeedStatus -GetSpeedStatus: @ 0x02052858 - ldr r2, _02052870 @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrsh r0, [r0, #6] - bx lr - .align 2, 0 -_02052870: .4byte 0x020B09B4 - arm_func_end GetSpeedStatus - - arm_func_start GetMobilityType -GetMobilityType: @ 0x02052874 - ldr r2, _0205288C @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrb r0, [r0, #0x16] - bx lr - .align 2, 0 -_0205288C: .4byte 0x020B09B4 - arm_func_end GetMobilityType - - arm_func_start GetRegenSpeed -GetRegenSpeed: @ 0x02052890 - ldr r2, _020528B0 @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrb r0, [r0, #0x30] - lsl r0, r0, #1 - and r0, r0, #0xff - bx lr - .align 2, 0 -_020528B0: .4byte 0x020B09B4 - arm_func_end GetRegenSpeed - - arm_func_start GetCanMoveFlag -GetCanMoveFlag: @ 0x020528B4 - ldr r2, _020528DC @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrb r0, [r0, #0x1a] - tst r0, #0x10 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_020528DC: .4byte 0x020B09B4 - arm_func_end GetCanMoveFlag - - arm_func_start GetChanceAsleep -GetChanceAsleep: @ 0x020528E0 - ldr r2, _020528F8 @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrb r0, [r0, #0x2f] - bx lr - .align 2, 0 -_020528F8: .4byte 0x020B09B4 - arm_func_end GetChanceAsleep - - arm_func_start GetLowKickMultiplier -GetLowKickMultiplier: @ 0x020528FC - ldr r2, _02052914 @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrh r0, [r0, #0x28] - bx lr - .align 2, 0 -_02052914: .4byte 0x020B09B4 - arm_func_end GetLowKickMultiplier - - arm_func_start GetSize -GetSize: @ 0x02052918 - ldr r2, _02052930 @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrh r0, [r0, #0x2a] - bx lr - .align 2, 0 -_02052930: .4byte 0x020B09B4 - arm_func_end GetSize - - arm_func_start GetBaseHp -GetBaseHp: @ 0x02052934 - ldr r2, _0205294C @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrh r0, [r0, #0x20] - bx lr - .align 2, 0 -_0205294C: .4byte 0x020B09B4 - arm_func_end GetBaseHp - - arm_func_start CanThrowItems -CanThrowItems: @ 0x02052950 - ldr r2, _02052978 @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrb r0, [r0, #0x1a] - tst r0, #0x20 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_02052978: .4byte 0x020B09B4 - arm_func_end CanThrowItems - - arm_func_start CanEvolve -CanEvolve: @ 0x0205297C - ldr r2, _020529A4 @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrb r0, [r0, #0x1a] - tst r0, #0x40 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_020529A4: .4byte 0x020B09B4 - arm_func_end CanEvolve - - arm_func_start GetMonsterPreEvolution -GetMonsterPreEvolution: @ 0x020529A8 - ldr r2, _020529C0 @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrsh r0, [r0, #8] - bx lr - .align 2, 0 -_020529C0: .4byte 0x020B09B4 - arm_func_end GetMonsterPreEvolution - - arm_func_start GetBaseOffensiveStat -GetBaseOffensiveStat: @ 0x020529C4 - ldr r3, _020529E0 @ =0x020B09B4 - mov r2, #0x44 - ldr r3, [r3] - smlabb r0, r0, r2, r3 - add r0, r0, r1 - ldrb r0, [r0, #0x24] - bx lr - .align 2, 0 -_020529E0: .4byte 0x020B09B4 - arm_func_end GetBaseOffensiveStat - - arm_func_start GetBaseDefensiveStat -GetBaseDefensiveStat: @ 0x020529E4 - ldr r3, _02052A00 @ =0x020B09B4 - mov r2, #0x44 - ldr r3, [r3] - smlabb r0, r0, r2, r3 - add r0, r0, r1 - ldrb r0, [r0, #0x26] - bx lr - .align 2, 0 -_02052A00: .4byte 0x020B09B4 - arm_func_end GetBaseDefensiveStat - - arm_func_start GetType -GetType: @ 0x02052A04 - ldr r3, _02052A20 @ =0x020B09B4 - mov r2, #0x44 - ldr r3, [r3] - smlabb r0, r0, r2, r3 - add r0, r0, r1 - ldrb r0, [r0, #0x14] - bx lr - .align 2, 0 -_02052A20: .4byte 0x020B09B4 - arm_func_end GetType - - arm_func_start GetAbility -GetAbility: @ 0x02052A24 - ldr r3, _02052A40 @ =0x020B09B4 - mov r2, #0x44 - ldr r3, [r3] - smlabb r0, r0, r2, r3 - add r0, r0, r1 - ldrb r0, [r0, #0x18] - bx lr - .align 2, 0 -_02052A40: .4byte 0x020B09B4 - arm_func_end GetAbility - - arm_func_start GetRecruitRate2 -GetRecruitRate2: @ 0x02052A44 - ldr r2, _02052A5C @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrsh r0, [r0, #0x22] - bx lr - .align 2, 0 -_02052A5C: .4byte 0x020B09B4 - arm_func_end GetRecruitRate2 - - arm_func_start GetRecruitRate1 -GetRecruitRate1: @ 0x02052A60 - ldr r2, _02052A78 @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrsh r0, [r0, #0x1e] - bx lr - .align 2, 0 -_02052A78: .4byte 0x020B09B4 - arm_func_end GetRecruitRate1 - - arm_func_start GetExp -GetExp: @ 0x02052A7C - push {r4, lr} - ldr r2, _02052AAC @ =0x020B09B4 - sub r3, r1, #1 - ldr r2, [r2] - mov r1, #0x44 - smlabb r0, r0, r1, r2 - ldrsh r4, [r0, #0x1c] - mov r1, #0xa - mul r0, r4, r3 - bl DivideInt - add r0, r4, r0 - pop {r4, pc} - .align 2, 0 -_02052AAC: .4byte 0x020B09B4 - arm_func_end GetExp - - arm_func_start GetEvoParameters -GetEvoParameters: @ 0x02052AB0 - ldr r3, _02052ADC @ =0x020B09B4 - mov r2, #0x44 - ldr ip, [r3] - mov r3, #4 - smlabb r1, r1, r2, ip - add r2, r1, #8 -_02052AC8: - ldrh r1, [r2], #2 - subs r3, r3, #1 - strh r1, [r0], #2 - bne _02052AC8 - bx lr - .align 2, 0 -_02052ADC: .4byte 0x020B09B4 - arm_func_end GetEvoParameters - - arm_func_start GetTreasureBoxChances -GetTreasureBoxChances: @ 0x02052AE0 - push {r4, lr} - mov r2, #0x44 - smulbb r4, r0, r2 - ldr r2, _02052B24 @ =0x020B09B4 - mov lr, #0 -_02052AF4: - ldr r3, [r2] - add r0, lr, #1 - add r3, r4, r3 - add r3, r3, lr, lsl #1 - ldrsh r3, [r3, #0x3c] - lsl r0, r0, #0x10 - lsl ip, lr, #1 - asr lr, r0, #0x10 - strh r3, [r1, ip] - cmp lr, #4 - blt _02052AF4 - pop {r4, pc} - .align 2, 0 -_02052B24: .4byte 0x020B09B4 - arm_func_end GetTreasureBoxChances - - arm_func_start GetIqGroup -GetIqGroup: @ 0x02052B28 - ldr r2, _02052B40 @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrb r0, [r0, #0x17] - bx lr - .align 2, 0 -_02052B40: .4byte 0x020B09B4 - arm_func_end GetIqGroup - - arm_func_start GetSpawnThreshold -GetSpawnThreshold: @ 0x02052B44 - ldr r2, _02052B5C @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrb r0, [r0, #0x31] - bx lr - .align 2, 0 -_02052B5C: .4byte 0x020B09B4 - arm_func_end GetSpawnThreshold - - arm_func_start NeedsItemToSpawn -NeedsItemToSpawn: @ 0x02052B60 - ldr r2, _02052B88 @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrb r0, [r0, #0x1a] - tst r0, #0x80 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_02052B88: .4byte 0x020B09B4 - arm_func_end NeedsItemToSpawn - - arm_func_start GetExclusiveItem -GetExclusiveItem: @ 0x02052B8C - ldr r2, _02052BB4 @ =0x020B09B4 - lsr r3, r1, #0x1f - ldr ip, [r2] - mov r2, #0x44 - rsb r1, r3, r1, lsl #30 - smlabb r2, r0, r2, ip - add r0, r3, r1, ror #30 - add r0, r2, r0, lsl #1 - ldrsh r0, [r0, #0x34] - bx lr - .align 2, 0 -_02052BB4: .4byte 0x020B09B4 - arm_func_end GetExclusiveItem - - arm_func_start GetFamilyIndex -GetFamilyIndex: @ 0x02052BB8 - ldr r2, _02052BD0 @ =0x020B09B4 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - ldrsh r0, [r0, #0x32] - bx lr - .align 2, 0 -_02052BD0: .4byte 0x020B09B4 - arm_func_end GetFamilyIndex - - arm_func_start LoadM2nAndN2m -LoadM2nAndN2m: @ 0x02052BD4 - push {r3, lr} - ldr r0, _02052C2C @ =0x020B09C8 - bl PointsToZero - cmp r0, #0 - beq _02052C00 - ldr r0, _02052C2C @ =0x020B09C8 - bl ZInit8 - ldr r0, _02052C2C @ =0x020B09C8 - ldr r1, _02052C30 @ =0x020A3210 - mov r2, #0 - bl LoadFileFromRom -_02052C00: - ldr r0, _02052C34 @ =0x020B09D0 - bl PointsToZero - cmp r0, #0 - popeq {r3, pc} - ldr r0, _02052C34 @ =0x020B09D0 - bl ZInit8 - ldr r0, _02052C34 @ =0x020B09D0 - ldr r1, _02052C38 @ =0x020A322C - mov r2, #0 - bl LoadFileFromRom - pop {r3, pc} - .align 2, 0 -_02052C2C: .4byte 0x020B09C8 -_02052C30: .4byte 0x020A3210 -_02052C34: .4byte 0x020B09D0 -_02052C38: .4byte 0x020A322C - arm_func_end LoadM2nAndN2m - - arm_func_start FUN_02052c3c -FUN_02052c3c: @ 0x02052C3C - push {r3, lr} - ldr r1, _02052C68 @ =0x022ABDE0 - ldr r0, _02052C6C @ =0x020B0A48 - str r1, [r0] - bl LoadMonsterMd - ldr r0, _02052C70 @ =0x022AB92C - mov r1, #0 - strh r1, [r0] - bl FUN_020550dc - bl FUN_020560b8 - pop {r3, pc} - .align 2, 0 -_02052C68: .4byte 0x022ABDE0 -_02052C6C: .4byte 0x020B0A48 -_02052C70: .4byte 0x022AB92C - arm_func_end FUN_02052c3c - - arm_func_start FUN_02052c74 -FUN_02052c74: @ 0x02052C74 - push {r3, lr} - bl FUN_020550e0 - bl FUN_020560c8 - ldr r2, _02052CD4 @ =0x020B0A48 - mov lr, #0 - ldr r0, [r2] - mov r3, lr - add r0, r0, #0x9000 - str lr, [r0, #0x878] - str lr, [r0, #0x87c] - mov r0, #0x44 -_02052CA0: - mul ip, lr, r0 - ldr r1, [r2] - add lr, lr, #1 - add r1, r1, ip - add r1, r1, #0x9800 - strh r3, [r1, #0x9c] - ldr r1, [r2] - cmp lr, #4 - add r1, r1, ip - add r1, r1, #0x9000 - strb r3, [r1, #0x898] - blt _02052CA0 - pop {r3, pc} - .align 2, 0 -_02052CD4: .4byte 0x020B0A48 - arm_func_end FUN_02052c74 - - arm_func_start FUN_02052cd8 -FUN_02052cd8: @ 0x02052CD8 - push {r3, lr} - bl FUN_02055118 - bl FUN_02056158 - pop {r3, pc} - arm_func_end FUN_02052cd8 - - arm_func_start thunk_FUN_020561c0 -thunk_FUN_020561c0: @ 0x02052CE8 - ldr ip, _02052CF0 @ =FUN_020561c0 - bx ip - .align 2, 0 -_02052CF0: .4byte FUN_020561c0 - arm_func_end thunk_FUN_020561c0 - - arm_func_start FUN_02052cf4 -FUN_02052cf4: @ 0x02052CF4 - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x1c - mov r8, r0 - mov r4, #1 - mov r7, r1 - strb r4, [r8] - mov r0, r7 - strb r4, [r8, #1] - mov r6, r2 - mov r5, r3 - ldr r4, [sp, #0x38] - bl GetBaseHp - strh r0, [r8, #0xa] - mov r0, r7 - mov r1, #0 - bl GetBaseOffensiveStat - strb r0, [r8, #0xc] - mov r0, r7 - mov r1, #1 - bl GetBaseOffensiveStat - strb r0, [r8, #0xd] - mov r0, r7 - mov r1, #0 - bl GetBaseDefensiveStat - strb r0, [r8, #0xe] - mov r0, r7 - mov r1, #1 - bl GetBaseDefensiveStat - strb r0, [r8, #0xf] - strh r7, [r8, #4] - mov r3, #0 - str r3, [r8, #0x10] - strb r3, [r8, #0x20] - mov r0, #1 - strh r0, [r8, #8] - ldrb r2, [r5] - add r0, r8, #0x14 - mov r1, r7 - strb r2, [r8, #2] - ldrb r2, [r5, #1] - strb r2, [r8, #3] - strb r3, [r8, #6] - strb r3, [r8, #7] - ldrsh r2, [r8, #8] - bl FUN_02058eb0 - cmp r4, #0 - beq _02052DDC - mov r3, #0 - add r1, sp, #0 -_02052DB8: - lsl r2, r3, #1 - ldrh r0, [r4, r2] - add r3, r3, #1 - cmp r3, #4 - strh r0, [r1, r2] - blt _02052DB8 - add r0, r8, #0x22 - bl GetInfoGroundMoveset - b _02052DEC -_02052DDC: - ldrb r2, [sp, #0x3c] - mov r1, r7 - add r0, r8, #0x22 - bl FUN_02053f10 -_02052DEC: - cmp r6, #0 - bne _02052E14 - add r0, sp, #8 - mov r1, r7 - bl GetNameRaw - add r1, sp, #8 - add r0, r8, #0x3a - mov r2, #0xa - bl FUN_02025314 - b _02052E24 -_02052E14: - mov r1, r6 - add r0, r8, #0x3a - mov r2, #0xa - bl StrncpySimple -_02052E24: - add sp, sp, #0x1c - pop {r3, r4, r5, r6, r7, r8, pc} - arm_func_end FUN_02052cf4 - - arm_func_start FUN_02052e2c -FUN_02052e2c: @ 0x02052E2C - push {r3, lr} - sub sp, sp, #8 - ldr lr, [sp, #0x10] - mov ip, #0 - str lr, [sp] - str ip, [sp, #4] - bl FUN_02052cf4 - add sp, sp, #8 - pop {r3, pc} - arm_func_end FUN_02052e2c - - arm_func_start GuestMonsterToGroundMonster -GuestMonsterToGroundMonster: @ 0x02052E50 - push {r3, r4, r5, lr} - mov r5, r0 - mov r0, #1 - mov r4, r1 - strb r0, [r5] - ldrsh r1, [r4, #0x12] - mov r2, #0 - add r0, r5, #0x14 - strb r1, [r5, #1] - ldrsh r1, [r4, #0x10] - strh r1, [r5, #0xa] - ldrsh r1, [r4, #0x16] - strb r1, [r5, #0xc] - ldrsh r1, [r4, #0x18] - strb r1, [r5, #0xd] - ldrsh r1, [r4, #0x1a] - strb r1, [r5, #0xe] - ldrsh r1, [r4, #0x1c] - strb r1, [r5, #0xf] - ldrsh r1, [r4, #4] - strh r1, [r5, #4] - ldr r1, [r4, #0x20] - str r1, [r5, #0x10] - strb r2, [r5, #0x20] - ldrsh r1, [r4, #0x14] - strh r1, [r5, #8] - ldrb r1, [r4, #6] - strb r1, [r5, #2] - ldrb r1, [r4, #7] - strb r1, [r5, #3] - strb r2, [r5, #6] - strb r2, [r5, #7] - ldrsh r1, [r5, #4] - ldrsh r2, [r5, #8] - bl FUN_02058eb0 - add r0, r5, #0x22 - add r1, r4, #8 - bl GetInfoGroundMoveset - ldr r1, [r4] - add r0, r5, #0x3a - mov r2, #0xa - bl StrncpySimple - pop {r3, r4, r5, pc} - arm_func_end GuestMonsterToGroundMonster - - arm_func_start FUN_02052efc -FUN_02052efc: @ 0x02052EFC - push {r4, lr} - mov r4, r0 - mov r0, #1 - strb r0, [r4, #1] - ldrsh r0, [r4, #4] - bl GetBaseHp - strh r0, [r4, #0xa] - ldrsh r0, [r4, #4] - mov r1, #0 - bl GetBaseOffensiveStat - strb r0, [r4, #0xc] - ldrsh r0, [r4, #4] - mov r1, #1 - bl GetBaseOffensiveStat - strb r0, [r4, #0xd] - ldrsh r0, [r4, #4] - mov r1, #0 - bl GetBaseDefensiveStat - strb r0, [r4, #0xe] - ldrsh r0, [r4, #4] - mov r1, #1 - bl GetBaseDefensiveStat - strb r0, [r4, #0xf] - mov r0, #0 - str r0, [r4, #0x10] - strb r0, [r4, #0x20] - mov r2, #1 - strh r2, [r4, #8] - ldrsh r1, [r4, #4] - add r0, r4, #0x14 - bl FUN_02058eb0 - ldrsh r1, [r4, #4] - add r0, r4, #0x22 - mov r2, #0 - bl FUN_02053f10 - pop {r4, pc} - arm_func_end FUN_02052efc - - arm_func_start FUN_02052f8c -FUN_02052f8c: @ 0x02052F8C - push {r3, lr} - sub sp, sp, #8 - ldr lr, [sp, #0x10] - mov ip, #1 - str lr, [sp] - str ip, [sp, #4] - bl FUN_02052cf4 - add sp, sp, #8 - pop {r3, pc} - arm_func_end FUN_02052f8c - - arm_func_start StrcmpMonsterName -StrcmpMonsterName: @ 0x02052FB0 - push {r3, r4, lr} - sub sp, sp, #0x14 - mov r4, r0 - mov r0, r1 - bl GetNameString - mov r1, r0 - add r0, sp, #0 - bl SpecialStrcpy - add r1, sp, #0 - mov r0, r4 - mov r2, #0xa - bl StrncmpSimple - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - add sp, sp, #0x14 - pop {r3, r4, pc} - arm_func_end StrcmpMonsterName - - arm_func_start FUN_02052ff8 -FUN_02052ff8: @ 0x02052FF8 - push {r3, lr} - ldr r2, _02053034 @ =0x020B0A48 - mov r3, #0x44 - ldr ip, [r2] - mov r2, #0xa - smlabb r0, r0, r3, ip - smlabb r1, r1, r3, ip - add r0, r0, #0x3a - add r1, r1, #0x3a - bl FUN_01FF8F28 - cmp r0, #0 - movlt r0, #1 - movge r0, #0 - and r0, r0, #0xff - pop {r3, pc} - .align 2, 0 -_02053034: .4byte 0x020B0A48 - arm_func_end FUN_02052ff8 - - arm_func_start FUN_02053038 -FUN_02053038: @ 0x02053038 - push {r4, r5, r6, lr} - sub sp, sp, #0x48 - mov ip, r1 - mov lr, r0 - cmp ip, #0xd - blo _020530BC - ldr r6, _020530CC @ =0x020A328C - add r5, sp, #0 - mov r4, #4 -_0205305C: - ldm r6!, {r0, r1, r2, r3} - stm r5!, {r0, r1, r2, r3} - subs r4, r4, #1 - bne _0205305C - ldm r6, {r0, r1} - stm r5, {r0, r1} - mov r3, #0 - add r1, sp, #0 - b _020530AC -_02053080: - lsl r2, r3, #3 - ldrsh r0, [r1, r2] - cmp r0, #0 - beq _020530B4 - cmp lr, r0 - addeq r0, r1, r2 - ldreq r0, [r0, #4] - cmpeq ip, r0 - moveq r0, #1 - beq _020530C4 - add r3, r3, #1 -_020530AC: - cmp r3, #0xa - blt _02053080 -_020530B4: - mov r0, #0 - b _020530C4 -_020530BC: - ldr r0, _020530D0 @ =0x020A327C - ldrb r0, [r0, ip] -_020530C4: - add sp, sp, #0x48 - pop {r4, r5, r6, pc} - .align 2, 0 -_020530CC: .4byte 0x020A328C -_020530D0: .4byte 0x020A327C - arm_func_end FUN_02053038 - - arm_func_start FUN_020530d4 -FUN_020530d4: @ 0x020530D4 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #8 - mov r4, r0 - ldrb r5, [r4] - mov r0, #0x44 - ldr ip, _02053170 @ =0x020B0A48 - tst r5, #1 - smulbb r6, r1, r0 - movne r0, #1 - moveq r0, #0 - mov r3, r2 - ldr r7, [ip] - tst r0, #0xff - beq _02053158 - ldrh r5, [r4, #0x3e] - ldrh lr, [r4, #0x40] - ldrh ip, [r4, #0x42] - mov r0, r4 - mov r2, r1 - strh r5, [sp] - add r1, r7, r6 - strh lr, [sp, #2] - strh ip, [sp, #4] - ldrb r5, [r4] - bl FUN_02053250 - ldrh r2, [sp] - ldrh r1, [sp, #2] - ldrh r0, [sp, #4] - strh r2, [r4, #0x3e] - strh r1, [r4, #0x40] - strh r0, [r4, #0x42] - strb r5, [r4] - b _02053168 -_02053158: - mov r0, r4 - mov r2, r1 - add r1, r7, r6 - bl FUN_02053250 -_02053168: - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02053170: .4byte 0x020B0A48 - arm_func_end FUN_020530d4 - - arm_func_start FUN_02053174 -FUN_02053174: @ 0x02053174 - push {r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0xc - mov r5, r0 - ldrb r6, [r5] - mov r0, #0x44 - ldr r4, _02053220 @ =0x020B0A48 - tst r6, #1 - smulbb r8, r1, r0 - movne r0, #1 - moveq r0, #0 - mov ip, r2 - ldr sb, [r4] - tst r0, #0xff - beq _02053200 - ldrh r7, [r5, #0x3e] - ldrh r6, [r5, #0x40] - ldrh lr, [r5, #0x42] - ldrb r4, [r5] - mov r0, r5 - mov r2, r1 - str r3, [sp] - mov r3, ip - strh r7, [sp, #4] - add r1, sb, r8 - strh r6, [sp, #6] - strh lr, [sp, #8] - bl FUN_02053374 - ldrh r2, [sp, #4] - ldrh r1, [sp, #6] - ldrh r0, [sp, #8] - strh r2, [r5, #0x3e] - strh r1, [r5, #0x40] - strh r0, [r5, #0x42] - strb r4, [r5] - b _02053218 -_02053200: - str r3, [sp] - mov r0, r5 - mov r2, r1 - mov r3, ip - add r1, sb, r8 - bl FUN_02053374 -_02053218: - add sp, sp, #0xc - pop {r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_02053220: .4byte 0x020B0A48 - arm_func_end FUN_02053174 - - arm_func_start FUN_02053224 -FUN_02053224: @ 0x02053224 - push {r3, lr} - ldr r3, _0205324C @ =0x020B0A48 - mov ip, r1 - ldr r3, [r3] - mov r1, #0x44 - smlabb r1, ip, r1, r3 - mov r3, r2 - mov r2, ip - bl FUN_02053250 - pop {r3, pc} - .align 2, 0 -_0205324C: .4byte 0x020B0A48 - arm_func_end FUN_02053224 - - arm_func_start FUN_02053250 -FUN_02053250: @ 0x02053250 - push {r4, r5, r6, lr} - sub sp, sp, #8 - mov r5, r1 - ldrb r1, [r5] - mov r6, r0 - add r0, r5, #0x14 - strb r1, [r6] - ldrb r1, [r5, #1] - add r3, r6, #0x4c - mov r4, r2 - strb r1, [r6, #2] - ldrsh r1, [r5, #8] - strh r1, [r6, #6] - ldm r0, {r0, r1, r2} - stm r3, {r0, r1, r2} - add r0, r6, #0x5a - bl ShuffleHiddenPower - ldrb r1, [r5, #2] - mov r0, r4 - strb r1, [r6, #3] - ldrb r1, [r5, #3] - strb r1, [r6, #4] - bl FUN_020564b0 - strb r0, [r6, #1] - strh r4, [r6, #8] - ldrsh r0, [r5, #4] - mov r3, #0 - strh r0, [r6, #0xc] - ldrb r0, [r5, #0x20] - strb r0, [r6, #0x58] - ldrsh r0, [r5, #0xa] - strh r0, [r6, #0x10] - strh r0, [r6, #0xe] -_020532D4: - add r2, r5, r3 - ldrb r0, [r2, #0xc] - add r1, r6, r3 - add r3, r3, #1 - strb r0, [r1, #0x12] - ldrb r0, [r2, #0xe] - cmp r3, #2 - strb r0, [r1, #0x14] - blt _020532D4 - ldr r2, [r5, #0x10] - add r0, r6, #0x1c - add r1, r5, #0x22 - str r2, [r6, #0x18] - bl GroundToDungeonMoveset - add r0, r6, #0x5e - add r1, r5, #0x3a - mov r2, #0xa - bl StrncpySimple - add r0, r6, #0x3e - bl ItemZInit - mov r0, #0x64 - bl FUN_02050ff8 - strh r0, [sp, #4] - lsr r0, r0, #0x10 - strh r0, [sp, #6] - ldrh r2, [sp, #4] - ldrh r1, [sp, #6] - mov r0, #0x64 - strh r2, [r6, #0x44] - strh r1, [r6, #0x46] - bl FUN_02050ff8 - strh r0, [sp] - lsr r0, r0, #0x10 - strh r0, [sp, #2] - ldrh r1, [sp] - ldrh r0, [sp, #2] - strh r1, [r6, #0x48] - strh r0, [r6, #0x4a] - add sp, sp, #8 - pop {r4, r5, r6, pc} - arm_func_end FUN_02053250 - - arm_func_start FUN_02053374 -FUN_02053374: @ 0x02053374 - push {r4, r5, r6, lr} - sub sp, sp, #8 - mov r5, r1 - ldrb r1, [r5] - mov r6, r0 - add r0, r5, #0x14 - strb r1, [r6] - ldrb r1, [r5, #1] - add r3, r6, #0x4c - mov r4, r2 - strb r1, [r6, #2] - ldrsh r1, [r5, #8] - strh r1, [r6, #6] - ldm r0, {r0, r1, r2} - stm r3, {r0, r1, r2} - add r0, r6, #0x5a - bl ShuffleHiddenPower - ldrb r2, [r5, #2] - ldrb r1, [sp, #0x18] - mov r0, r4 - strb r2, [r6, #3] - ldrb r2, [r5, #3] - strb r2, [r6, #4] - bl FUN_02056504 - strb r0, [r6, #1] - strh r4, [r6, #8] - ldrsh r0, [r5, #4] - mov r3, #0 - strh r0, [r6, #0xc] - ldrb r0, [r5, #0x20] - strb r0, [r6, #0x58] - ldrsh r0, [r5, #0xa] - strh r0, [r6, #0x10] - strh r0, [r6, #0xe] -_020533FC: - add r2, r5, r3 - ldrb r0, [r2, #0xc] - add r1, r6, r3 - add r3, r3, #1 - strb r0, [r1, #0x12] - ldrb r0, [r2, #0xe] - cmp r3, #2 - strb r0, [r1, #0x14] - blt _020533FC - ldr r2, [r5, #0x10] - add r0, r6, #0x1c - add r1, r5, #0x22 - str r2, [r6, #0x18] - bl GroundToDungeonMoveset - add r0, r6, #0x5e - add r1, r5, #0x3a - mov r2, #0xa - bl StrncpySimple - add r0, r6, #0x3e - bl ItemZInit - mov r0, #0x64 - bl FUN_02050ff8 - strh r0, [sp, #4] - lsr r0, r0, #0x10 - strh r0, [sp, #6] - ldrh r2, [sp, #4] - ldrh r1, [sp, #6] - mov r0, #0x64 - strh r2, [r6, #0x44] - strh r1, [r6, #0x46] - bl FUN_02050ff8 - strh r0, [sp] - lsr r0, r0, #0x10 - strh r0, [sp, #2] - ldrh r1, [sp] - ldrh r0, [sp, #2] - strh r1, [r6, #0x48] - strh r0, [r6, #0x4a] - add sp, sp, #8 - pop {r4, r5, r6, pc} - arm_func_end FUN_02053374 - - arm_func_start FUN_0205349c -FUN_0205349c: @ 0x0205349C - ldr r3, _020534B4 @ =0x020B0A48 - ldr ip, _020534B8 @ =FUN_020534bc - ldr r3, [r3] - mov r2, #0x44 - smlabb r0, r0, r2, r3 - bx ip - .align 2, 0 -_020534B4: .4byte 0x020B0A48 -_020534B8: .4byte FUN_020534bc - arm_func_end FUN_0205349c - - arm_func_start FUN_020534bc -FUN_020534bc: @ 0x020534BC - push {r3, r4, r5, lr} - mov r4, r1 - ldrb r1, [r4] - mov r5, r0 - add r0, r4, #0x4c - strb r1, [r5] - ldrb r1, [r4, #2] - add ip, r5, #0x14 - mov r3, #0 - strb r1, [r5, #1] - ldrsh r1, [r4, #6] - strh r1, [r5, #8] - ldm r0, {r0, r1, r2} - stm ip, {r0, r1, r2} - ldrb r0, [r4, #3] - strb r0, [r5, #2] - ldrb r0, [r4, #4] - strb r0, [r5, #3] - ldrsh r0, [r4, #0xc] - strh r0, [r5, #4] - ldrb r0, [r4, #0x58] - strb r0, [r5, #0x20] - ldrsh r0, [r4, #0x10] - strh r0, [r5, #0xa] -_0205351C: - add r2, r4, r3 - ldrb r0, [r2, #0x12] - add r1, r5, r3 - add r3, r3, #1 - strb r0, [r1, #0xc] - ldrb r0, [r2, #0x14] - cmp r3, #2 - strb r0, [r1, #0xe] - blt _0205351C - ldr r2, [r4, #0x18] - add r0, r5, #0x22 - add r1, r4, #0x1c - str r2, [r5, #0x10] - bl DungeonToGroundMoveset - add r0, r5, #0x3a - add r1, r4, #0x5e - mov r2, #0xa - bl StrncpySimple - pop {r3, r4, r5, pc} - arm_func_end FUN_020534bc - - arm_func_start FUN_02053568 -FUN_02053568: @ 0x02053568 - push {r3, r4, r5, lr} - mov r5, r0 - ldr r4, _0205361C @ =0x020A3258 - b _0205358C -_02053578: - ldrsh r1, [r5, #4] - bl DexNumbersEqual - cmp r0, #0 - bne _02053598 - add r4, r4, #4 -_0205358C: - ldrsh r0, [r4] - cmp r0, #0 - bne _02053578 -_02053598: - ldrsh r0, [r4] - cmp r0, #0 - popeq {r3, r4, r5, pc} - add r0, r5, #0x22 - bl GetNbMoves - cmp r0, #4 - bne _02053604 - ldrsh r0, [r4] - cmp r0, #0x148 - popne {r3, r4, r5, pc} - ldr r1, _02053620 @ =0x0000013B - add r0, r5, #0x22 - bl GetMovesetIdx - mvn r1, #0 - cmp r0, r1 - popeq {r3, r4, r5, pc} - mov r1, #6 - mul r2, r0, r1 - add r3, r5, #0x22 - mov r0, #0 - strb r0, [r3, r2] - ldrh r1, [r4, #2] - add r0, r3, r2 - bl GetInfoMoveGround - ldr r0, _02053624 @ =0x020A32D4 - bl DebugPrint0 - pop {r3, r4, r5, pc} -_02053604: - add r2, r5, #0x22 - mov r1, #6 - mla r0, r1, r0, r2 - ldrh r1, [r4, #2] - bl GetInfoMoveGround - pop {r3, r4, r5, pc} - .align 2, 0 -_0205361C: .4byte 0x020A3258 -_02053620: .4byte 0x0000013B -_02053624: .4byte 0x020A32D4 - arm_func_end FUN_02053568 - - arm_func_start thunk_FUN_0205364c -thunk_FUN_0205364c: @ 0x02053628 - b _0205364C -_0205362C: - ldrsh r2, [r0, #4] - cmp r3, r2 - ldrbeq r3, [r1, #2] - ldrbeq r2, [r0, #2] - cmpeq r3, r2 - addeq r0, r1, #4 - bxeq lr - add r1, r1, #6 - arm_func_end thunk_FUN_0205364c -_0205364C: - ldrsh r3, [r1] - cmp r3, #0 - bne _0205362C - mov r0, #0 - bx lr - - arm_func_start FUN_02053660 -FUN_02053660: @ 0x02053660 - push {r3, r4, r5, r6, r7, r8, sb, lr} - movs r4, r2 - mov r5, r1 - mov r6, r0 - cmpne r5, #0 - mvneq r0, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, pc} - mov r1, #0 - mov sb, r1 - add r0, sp, #0 -_02053688: - strb sb, [r0, r1] - add r1, r1, #1 - cmp r1, #4 - blt _02053688 - b _0205375C -_0205369C: - mov r1, r8 - add r0, r6, #0x22 - bl GetMovesetIdx - mvn r1, #0 - cmp r0, r1 - bne _02053758 - add r0, r6, #0x22 - bl GetNbMoves - mov r7, r0 - cmp r7, #4 - bne _02053738 - mov r7, #0 - mov sb, r7 - add r1, sp, #0 -_020536D4: - ldrb r0, [r1, sb] - add sb, sb, #1 - cmp r0, #0 - addeq r7, r7, #1 - cmp sb, #4 - blt _020536D4 - cmp r7, #0 - beq _02053774 - bl Rand16Bit - mov r1, r7 - bl DivideInt - mov r7, r1 - mov r0, #6 - mul ip, r7, r0 - add r0, r6, #0x22 - mov r1, r8 - add r2, r6, ip - mov r3, #0 - add r0, r0, ip - strb r3, [r2, #0x22] - bl GetInfoMoveGround - add r0, sp, #0 - mov r1, #1 - strb r1, [r0, r7] - b _02053758 -_02053738: - add r1, r6, #0x22 - mov r0, #6 - mla r0, r7, r0, r1 - mov r1, r8 - bl GetInfoMoveGround - add r0, sp, #0 - mov r1, #1 - strb r1, [r0, r7] -_02053758: - add sb, sb, #1 -_0205375C: - cmp sb, r4 - bge _02053774 - lsl r0, sb, #1 - ldrh r8, [r5, r0] - cmp r8, #0 - bne _0205369C -_02053774: - mov r0, #0 - mov r3, r0 - add r2, sp, #0 -_02053780: - ldrb r1, [r2, r3] - add r3, r3, #1 - cmp r1, #0 - addne r0, r0, #1 - cmp r3, #4 - blt _02053780 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_02053660 - - arm_func_start GetLvlStats -GetLvlStats: @ 0x0205379C - push {r3, r4, r5, r6, lr} - sub sp, sp, #0xc - mov r6, r1 - mov r5, r0 - mov r0, r6 - mov r1, #0x258 - mov r4, r2 - bl DivideInt - ldr r0, _02053844 @ =0x022AB92C - ldrsh r0, [r0] - cmp r0, r1 - beq _02053820 - mov r0, r6 - mov r1, #0x258 - bl DivideInt - sub r0, r1, #1 - ldr r2, _02053844 @ =0x022AB92C - lsl r0, r0, #0x10 - strh r1, [r2] - lsr r1, r0, #0x10 - add r2, sp, #4 - mov r0, #5 - mov r3, #0 - bl AllocAndLoadFileInPack - ldr r1, [sp, #4] - add r0, sp, #0 - bl HandleSir0Translation - ldr r2, [sp] - ldr r0, _02053848 @ =0x022AB930 - mov r1, #0 - bl DecompressAtNormalVeneer - add r0, sp, #4 - bl UnloadFile -_02053820: - subs r4, r4, #1 - ldr r1, _02053848 @ =0x022AB930 - movmi r4, #0 - mov r0, #0xc - mla r0, r4, r0, r1 - ldm r0, {r0, r1, r2} - stm r5, {r0, r1, r2} - add sp, sp, #0xc - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_02053844: .4byte 0x022AB92C -_02053848: .4byte 0x022AB930 - arm_func_end GetLvlStats - - arm_func_start FUN_0205384c -FUN_0205384c: @ 0x0205384C - ldrb ip, [r0] - add r2, r0, #1 - mov r0, r2 - tst ip, #0x80 - addne r0, r2, #1 - ldrbne r2, [r2] - moveq r2, ip - moveq ip, #0 - and r3, r2, #0x7f - lsl r2, ip, #0x19 - orr r2, r3, r2, lsr #18 - strh r2, [r1] - bx lr - arm_func_end FUN_0205384c - - arm_func_start FUN_02053880 -FUN_02053880: @ 0x02053880 - cmp r0, #0xee - mov r3, #1 - bne _0205389C - ldr r2, _020538F0 @ =0x020A18C0 - ldrsh r2, [r2] - cmp r1, r2 - movlt r3, #0 -_0205389C: - cmp r0, #0xef - bne _020538B4 - ldr r2, _020538F4 @ =0x020A189C - ldrsh r2, [r2] - cmp r1, r2 - movlt r3, #0 -_020538B4: - cmp r0, #0x110 - bne _020538CC - ldr r2, _020538F8 @ =0x020A1884 - ldrsh r2, [r2] - cmp r1, r2 - movlt r3, #0 -_020538CC: - ldr r2, _020538FC @ =0x0000021A - cmp r0, r2 - bne _020538E8 - ldr r0, _02053900 @ =0x020A1880 - ldrsh r0, [r0] - cmp r1, r0 - movlt r3, #0 -_020538E8: - mov r0, r3 - bx lr - .align 2, 0 -_020538F0: .4byte 0x020A18C0 -_020538F4: .4byte 0x020A189C -_020538F8: .4byte 0x020A1884 -_020538FC: .4byte 0x0000021A -_02053900: .4byte 0x020A1880 - arm_func_end FUN_02053880 - - arm_func_start FUN_02053904 -FUN_02053904: @ 0x02053904 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr r4, _02053A08 @ =0x00000229 - ldr r8, [sp, #0x28] - mov sl, r0 - mov sb, r2 - mov fp, r3 - mov r6, #0 - cmp r1, r4 - moveq r0, r6 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - cmp r1, #0 - moveq r0, r6 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - cmp r8, #0 - beq _0205394C - ldrsh r5, [sp, #0x2c] - cmp r5, #0 - bgt _02053950 -_0205394C: - mov r5, #0 -_02053950: - mov r0, r1 - bl GetMovesetLevelUpPtr - mov r4, r0 - b _020539F4 -_02053960: - mov r0, r4 - add r1, sp, #0 - bl FUN_0205384c - ldrb r1, [r0] - add r4, r0, #1 - cmp r1, sb - bgt _02053A00 - bne _020539F4 - ldrh r0, [sp] - mov r1, fp - mov r7, #1 - bl FUN_02053880 - cmp r0, #0 - moveq r7, #0 - cmp r5, #0 - ble _020539D8 - mov r2, #0 - ldrh r0, [sp] - b _020539C8 -_020539AC: - lsl r1, r2, #1 - ldrh r1, [r8, r1] - cmp r0, r1 - beq _020539D0 - add r1, r2, #1 - lsl r1, r1, #0x10 - asr r2, r1, #0x10 -_020539C8: - cmp r2, r5 - blt _020539AC -_020539D0: - cmp r2, r5 - bne _020539F4 -_020539D8: - cmp r7, #0 - beq _020539F4 - cmp r6, #0x10 - ldrhlt r1, [sp] - lsllt r0, r6, #1 - addlt r6, r6, #1 - strhlt r1, [sl, r0] -_020539F4: - ldrb r0, [r4] - cmp r0, #0 - bne _02053960 -_02053A00: - mov r0, r6 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02053A08: .4byte 0x00000229 - arm_func_end FUN_02053904 - - arm_func_start FUN_02053a0c -FUN_02053a0c: @ 0x02053A0C - push {r4, r5, r6, lr} - sub sp, sp, #8 - mov r6, r0 - mov r0, r1 - mov r5, r2 - mov r4, r3 - bl FemaleToMaleForm - mov ip, #0 - mov r1, r0 - str ip, [sp] - mov r0, r6 - mov r2, r5 - mov r3, r4 - str ip, [sp, #4] - bl FUN_02053904 - add sp, sp, #8 - pop {r4, r5, r6, pc} - arm_func_end FUN_02053a0c - - arm_func_start FUN_02053a50 -FUN_02053a50: @ 0x02053A50 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sl, r0 - mov r0, r3 - ldr r7, [sp, #0x2c] - mov sb, r1 - mov r8, r2 - mov r5, #0 - bl FemaleToMaleForm - mov r4, r0 - bl FUN_02053b38 - cmp r0, #0 - movne r0, r5 - popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldr r0, [sp, #0x28] - cmp r0, #1 - bne _02053B30 - mov r0, r4 - bl GetMovesetEggPtr - mov r4, r0 - mov fp, #1 - b _02053B24 -_02053AA4: - mov r0, r4 - add r1, sp, #0 - mov r6, fp - bl FUN_0205384c - mov r4, r0 - ldrh r0, [sp] - mov r1, r7 - bl FUN_02053880 - cmp r0, #0 - moveq r6, #0 - cmp r6, #0 - beq _02053B24 - mov r2, #0 - mov r3, r2 - ldrh r0, [sp] - b _02053B04 -_02053AE4: - lsl r1, r3, #1 - ldrh r1, [sb, r1] - cmp r0, r1 - moveq r2, #1 - beq _02053B0C - add r1, r3, #1 - lsl r1, r1, #0x10 - asr r3, r1, #0x10 -_02053B04: - cmp r3, r8 - blt _02053AE4 -_02053B0C: - cmp r2, #0 - bne _02053B24 - cmp r5, #0x10 - lsllt r1, r5, #1 - strhlt r0, [sl, r1] - addlt r5, r5, #1 -_02053B24: - ldrb r0, [r4] - cmp r0, #0 - bne _02053AA4 -_02053B30: - mov r0, r5 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_02053a50 - - arm_func_start FUN_02053b38 -FUN_02053b38: @ 0x02053B38 - cmp r0, #0 - ble _02053B4C - ldr r1, _02053B5C @ =0x00000229 - cmp r0, r1 - blt _02053B54 -_02053B4C: - mov r0, #1 - bx lr -_02053B54: - mov r0, #0 - bx lr - .align 2, 0 -_02053B5C: .4byte 0x00000229 - arm_func_end FUN_02053b38 - - arm_func_start FUN_02053b60 -FUN_02053b60: @ 0x02053B60 - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x48 - mov r8, r0 - mov r0, r1 - mov r7, r2 - mov r6, r3 - bl FemaleToMaleForm - mov r4, r0 - bl FUN_02053b38 - cmp r0, #0 - movne r0, #0 - bne _02053C98 - mov r0, r4 - bl FemaleToMaleForm - mov r5, #0 - mov r1, r0 - str r5, [sp] - mov r0, r8 - mov r2, r7 - mov r3, r6 - str r5, [sp, #4] - bl FUN_02053904 - mov r5, r0 - cmp r5, #4 - bge _02053C68 - mov r3, #0 - add r0, sp, #0x28 - b _02053BE0 -_02053BD0: - lsl r2, r3, #1 - ldrh r1, [r8, r2] - add r3, r3, #1 - strh r1, [r0, r2] -_02053BE0: - cmp r3, r5 - blt _02053BD0 - lsl r2, r5, #0x10 - str r7, [sp] - add r0, sp, #8 - add r1, sp, #0x28 - mov r3, r4 - asr r2, r2, #0x10 - str r6, [sp, #4] - bl FUN_02053a50 - mov r6, r0 - cmp r6, #0 - ble _02053C68 - add r4, sp, #8 - b _02053C60 -_02053C1C: - mov r0, r6 - bl RandIntSafe - lsl r1, r0, #1 - ldrh r2, [r4, r1] - lsl r1, r5, #1 - add r3, r0, #1 - strh r2, [r8, r1] - b _02053C50 -_02053C3C: - lsl r0, r3, #1 - ldrh r1, [r4, r0] - add r0, r4, r3, lsl #1 - add r3, r3, #1 - strh r1, [r0, #-2] -_02053C50: - cmp r3, r6 - blt _02053C3C - sub r6, r6, #1 - add r5, r5, #1 -_02053C60: - cmp r5, #4 - blt _02053C1C -_02053C68: - lsl r0, r5, #0x10 - asr r1, r0, #0x10 - mov r2, #0 - b _02053C8C -_02053C78: - add r0, r1, #1 - lsl r1, r1, #1 - lsl r0, r0, #0x10 - strh r2, [r8, r1] - asr r1, r0, #0x10 -_02053C8C: - cmp r1, #4 - blt _02053C78 - mov r0, r5 -_02053C98: - add sp, sp, #0x48 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_02053b60 - - arm_func_start FUN_02053ca0 -FUN_02053ca0: @ 0x02053CA0 - push {r4, lr} - mov r4, #0 - ldr lr, _02053D18 @ =0x020A1918 - b _02053CFC -_02053CB0: - cmp ip, r2 - ldrbeq ip, [lr, #2] - cmpeq r3, ip - bne _02053CF8 - mov r2, #1 + ldrb r3, [r0, #1] + sub r1, r1, #2 cmp r1, #1 - suble r2, r1, #1 - mov r4, #0 - b _02053CDC -_02053CD4: - strh r1, [r0], #2 - add r4, r4, #1 -_02053CDC: - cmp r4, r2 - bge _02053D08 - add r1, lr, r4, lsl #1 - ldrh r1, [r1, #4] - cmp r1, #0 - bne _02053CD4 - b _02053D08 -_02053CF8: - add lr, lr, #6 -_02053CFC: - ldrsh ip, [lr] - cmp ip, #0 - bne _02053CB0 -_02053D08: - mov r1, #0 - strh r1, [r0] - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_02053D18: .4byte 0x020A1918 - arm_func_end FUN_02053ca0 - - arm_func_start FUN_02053d1c -FUN_02053d1c: @ 0x02053D1C - push {r3, r4, r5, r6, lr} - sub sp, sp, #4 - ldr r2, _02053DCC @ =0x00000229 - mov r6, r1 - mov r4, r0 - cmp r6, r2 - moveq r0, #0 - beq _02053DC4 - cmp r6, #0 - moveq r0, #0 - beq _02053DC4 - cmp r4, #0x160 - moveq r0, #0 - beq _02053DC4 - mov r0, r6 - bl GetMovesetLevelUpPtr - add r5, sp, #2 - b _02053D80 -_02053D64: - mov r1, r5 - bl FUN_0205384c - ldrh r1, [sp, #2] - add r0, r0, #1 - cmp r4, r1 - moveq r0, #1 - beq _02053DC4 -_02053D80: - ldrb r1, [r0] - cmp r1, #0 - bne _02053D64 - mov r0, r6 - bl GetMovesetHmTmPtr - add r5, sp, #0 - b _02053DB4 -_02053D9C: - mov r1, r5 - bl FUN_0205384c - ldrh r1, [sp] - cmp r1, r4 - moveq r0, #1 - beq _02053DC4 -_02053DB4: - ldrb r1, [r0] - cmp r1, #0 - bne _02053D9C - mov r0, #0 -_02053DC4: - add sp, sp, #4 - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_02053DCC: .4byte 0x00000229 - arm_func_end FUN_02053d1c - - arm_func_start GetEvoFamily -GetEvoFamily: @ 0x02053DD0 - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #8 - ldr r2, _02053E84 @ =0x020A3248 - ldrsh r3, [r0, #4] - ldr r4, [r2, #8] - ldr r2, [r2, #0xc] - mov r7, r1 - strh r3, [r7] - ldrb r1, [r0, #1] - str r2, [sp, #4] - str r4, [sp] - strb r1, [r7, #2] - ldrb r5, [r0, #6] - mov r3, #0 - ldrsh r2, [r0, #4] - cmp r5, #0 - ldrbne r1, [r0, #7] - add r4, r3, #1 - add r8, sp, #0 - cmpne r1, #0 - strne r1, [sp] - ldrbeq r0, [r0, #7] - strne r5, [sp, #4] - streq r5, [sp] - streq r0, [sp, #4] - mov r5, #0 - b _02053E70 -_02053E3C: - ldr r6, [r8, r5, lsl #2] - cmp r6, #0 - beq _02053E78 - mov r0, r2 - bl GetMonsterPreEvolution - movs r2, r0 - beq _02053E78 - lsl r1, r4, #2 - add r0, r7, r4, lsl #2 - strh r2, [r7, r1] - strb r6, [r0, #2] - add r4, r4, #1 - add r5, r5, #1 -_02053E70: - cmp r5, #2 - blt _02053E3C -_02053E78: - mov r0, r4 - add sp, sp, #8 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02053E84: .4byte 0x020A3248 - arm_func_end GetEvoFamily - - arm_func_start GetEvolutions -GetEvolutions: @ 0x02053E88 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sl, r0 - mov sb, r1 - mov r8, r2 - mov fp, r3 - mov r5, #0 - mov r6, #1 -_02053EA4: - lsl r0, r6, #0x10 - asr r7, r0, #0x10 - mov r0, r7 - bl GetMonsterPreEvolution - cmp sl, r0 - bne _02053EF4 - cmp r8, #0 - bne _02053EE0 - mov r0, sl - bl GetSpriteSize - mov r4, r0 - mov r0, r7 - bl GetSpriteSize - cmp r4, r0 - bne _02053EF4 -_02053EE0: - cmp fp, #0 - cmpeq r7, #0x140 - lslne r0, r5, #1 - strhne r7, [sb, r0] - addne r5, r5, #1 -_02053EF4: - ldr r0, _02053F0C @ =0x00000483 - add r6, r6, #1 - cmp r6, r0 - blt _02053EA4 - mov r0, r5 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02053F0C: .4byte 0x00000483 - arm_func_end GetEvolutions - - arm_func_start FUN_02053f10 -FUN_02053f10: @ 0x02053F10 - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x28 - mov r5, r0 - cmp r2, #0 - beq _02053F38 - mov r2, #1 - add r0, sp, #8 - rsb r3, r2, #0x3e8 - bl FUN_02053b60 - b _02053F60 -_02053F38: - mov r0, r1 - bl FemaleToMaleForm - mov r4, #0 - mov r2, #1 - mov r1, r0 - str r4, [sp] - add r0, sp, #8 - rsb r3, r2, #0x3e8 - str r4, [sp, #4] - bl FUN_02053904 -_02053F60: - mov r8, r0 - cmp r8, #0 - moveq r0, #0x198 - strheq r0, [sp, #8] - moveq r8, #1 - mov r4, #0 - add r7, sp, #8 - mov r6, #6 - b _02053F98 -_02053F84: - mla r0, r4, r6, r5 - lsl r1, r4, #1 - ldrh r1, [r7, r1] - bl GetInfoMoveGround - add r4, r4, #1 -_02053F98: - cmp r4, r8 - blt _02053F84 - mov r2, #0 - mov r0, #6 - b _02053FB8 -_02053FAC: - mul r1, r4, r0 - strb r2, [r5, r1] - add r4, r4, #1 -_02053FB8: - cmp r4, #4 - blt _02053FAC - add sp, sp, #0x28 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_02053f10 - - arm_func_start ShuffleHiddenPower -ShuffleHiddenPower: @ 0x02053FC8 - push {r4, r5, r6, lr} - mov r6, r0 - mov r0, #0xa - bl RandIntSafe - ldr r1, _02054020 @ =0x020A19D8 - mov r5, #0 - ldr r0, [r1, r0, lsl #2] - mov r4, #0x12 - strh r0, [r6] - b _02054008 -_02053FF0: - mov r0, r4 - bl RandIntSafe - strb r0, [r6, #2] - tst r0, #0xff - bne _02054010 - add r5, r5, #1 -_02054008: - cmp r5, #0x64 - blt _02053FF0 -_02054010: - cmp r5, #0x64 - moveq r0, #2 - strbeq r0, [r6, #2] - pop {r4, r5, r6, pc} - .align 2, 0 -_02054020: .4byte 0x020A19D8 - arm_func_end ShuffleHiddenPower - - arm_func_start GetBaseForm -GetBaseForm: @ 0x02054024 - cmp r0, #0x17c - ldreq r0, _02054244 @ =0x0000017B - bxeq lr - ldr r3, _02054248 @ =0x0000017D - cmp r0, r3 - subeq r0, r3, #2 - bxeq lr - add r1, r3, #1 - cmp r0, r1 - subeq r0, r3, #2 - bxeq lr - cmp r0, #0x3d4 - rsbeq r0, r3, #0x550 - bxeq lr - add r1, r3, #0x258 - cmp r0, r1 - rsbeq r0, r3, #0x550 - bxeq lr - ldr r2, _0205424C @ =0x000003D6 - cmp r0, r2 - subeq r0, r2, #3 - bxeq lr - cmp r0, #0xca - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xcb - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xcc - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xcd - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xce - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xcf - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xd0 - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xd1 - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xd2 - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xd3 - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xd4 - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xd5 - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xd6 - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xd7 - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xd8 - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xd9 - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xda - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xdb - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xdc - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xdd - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xde - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xdf - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xe0 - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xe1 - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xe2 - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xe3 - moveq r0, #0xc9 - bxeq lr - cmp r0, #0xe4 - moveq r0, #0xc9 - bxeq lr - add r1, r3, #0x26 - cmp r0, r1 - subeq r0, r2, #0x234 - bxeq lr - cmp r0, #0x1a4 - subeq r0, r2, #0x234 - bxeq lr - add r1, r3, #0x28 - cmp r0, r1 - subeq r0, r2, #0x234 - bxeq lr - cmp r0, #0x1cc - moveq r0, #0x1cc - bxeq lr - add r1, r3, #0x50 - cmp r0, r1 - moveq r0, #0x1cc - bxeq lr - add r1, r2, #0x4e - cmp r0, r1 - moveq r0, r1 - bxeq lr - add r1, r2, #0x4f - cmp r0, r1 - addeq r0, r2, #0x4e - bxeq lr - add r1, r3, #0x9a - cmp r0, r1 - subeq r0, r2, #0x1c0 - bxeq lr - cmp r0, #0x218 - addeq r0, r3, #0x94 - bx lr - .align 2, 0 -_02054244: .4byte 0x0000017B -_02054248: .4byte 0x0000017D -_0205424C: .4byte 0x000003D6 - arm_func_end GetBaseForm - - arm_func_start GetBaseFormBurmyWormadamShellosGastrodonCherrim -GetBaseFormBurmyWormadamShellosGastrodonCherrim: @ 0x02054250 - ldr r2, _02054390 @ =0x000001BF - cmp r0, r2 - moveq r0, r2 - bxeq lr - cmp r0, #0x1c0 - moveq r0, r2 - bxeq lr - add r1, r2, #2 - cmp r0, r1 - moveq r0, r2 - bxeq lr - add r1, r2, #0x258 - cmp r0, r1 - moveq r0, r2 - bxeq lr - ldr r1, _02054394 @ =0x00000418 - cmp r0, r1 - moveq r0, r2 - bxeq lr - add r3, r1, #1 - cmp r0, r3 - moveq r0, r2 - bxeq lr - add r3, r2, #3 - cmp r0, r3 - moveq r0, r3 - bxeq lr - add r3, r2, #4 - cmp r0, r3 - addeq r0, r2, #3 - bxeq lr - cmp r0, #0x1c4 - addeq r0, r2, #3 - bxeq lr - add r3, r2, #0xf - cmp r0, r3 - moveq r0, r3 - bxeq lr - add r3, r2, #0x10 - cmp r0, r3 - addeq r0, r2, #0xf - bxeq lr - add r3, r1, #0xe - cmp r0, r3 - addeq r0, r2, #0xf - bxeq lr - add r3, r1, #0xf - cmp r0, r3 - addeq r0, r2, #0xf - bxeq lr - cmp r0, #0x1d0 - moveq r0, #0x1d0 - bxeq lr - add r3, r2, #0x12 - cmp r0, r3 - moveq r0, #0x1d0 - bxeq lr - add r3, r1, #0x10 - cmp r0, r3 - moveq r0, #0x1d0 - bxeq lr - add r3, r1, #0x11 - cmp r0, r3 - moveq r0, #0x1d0 - bxeq lr - cmp r0, #0x1cc - moveq r0, #0x1cc - bxeq lr - add r2, r2, #0xe - cmp r0, r2 - moveq r0, #0x1cc - bxeq lr - add r2, r1, #0xc - cmp r0, r2 - moveq r0, r2 - bxeq lr - add r2, r1, #0xd - cmp r0, r2 - addeq r0, r1, #0xc - bx lr - .align 2, 0 -_02054390: .4byte 0x000001BF -_02054394: .4byte 0x00000418 - arm_func_end GetBaseFormBurmyWormadamShellosGastrodonCherrim - - arm_func_start GetBaseFormCastformCherrimDeoxys -GetBaseFormCastformCherrimDeoxys: @ 0x02054398 - cmp r0, #0x17c - ldreq r0, _02054458 @ =0x0000017B - bxeq lr - ldr r3, _0205445C @ =0x0000017D - cmp r0, r3 - subeq r0, r3, #2 - bxeq lr - add r1, r3, #1 - cmp r0, r1 - subeq r0, r3, #2 - bxeq lr - cmp r0, #0x3d4 - rsbeq r0, r3, #0x550 - bxeq lr - add r1, r3, #0x258 - cmp r0, r1 - rsbeq r0, r3, #0x550 - bxeq lr - ldr r2, _02054460 @ =0x000003D6 - cmp r0, r2 - subeq r0, r2, #3 - bxeq lr - cmp r0, #0x1cc - moveq r0, #0x1cc - bxeq lr - add r1, r3, #0x50 - cmp r0, r1 - moveq r0, #0x1cc - bxeq lr - add r1, r2, #0x4e - cmp r0, r1 - moveq r0, r1 - bxeq lr - add r1, r2, #0x4f - cmp r0, r1 - addeq r0, r2, #0x4e - bxeq lr - add r1, r3, #0x26 - cmp r0, r1 - subeq r0, r2, #0x234 - bxeq lr - cmp r0, #0x1a4 - subeq r0, r2, #0x234 - bxeq lr - add r1, r3, #0x28 - cmp r0, r1 - subeq r0, r2, #0x234 - bx lr - .align 2, 0 -_02054458: .4byte 0x0000017B -_0205445C: .4byte 0x0000017D -_02054460: .4byte 0x000003D6 - arm_func_end GetBaseFormCastformCherrimDeoxys - - arm_func_start GetAllBaseForms -GetAllBaseForms: @ 0x02054464 - push {r3, lr} - bl GetBaseForm - bl GetBaseFormBurmyWormadamShellosGastrodonCherrim - pop {r3, pc} - arm_func_end GetAllBaseForms - - arm_func_start GetDexNumberVeneer -GetDexNumberVeneer: @ 0x02054474 - ldr ip, _0205447C @ =GetDexNumber - bx ip - .align 2, 0 -_0205447C: .4byte GetDexNumber - arm_func_end GetDexNumberVeneer - - arm_func_start GetMonsterIdFromSpawnEntry -GetMonsterIdFromSpawnEntry: @ 0x02054480 - push {r3, lr} - ldrsh r0, [r0, #6] - ldr r1, _0205449C @ =0x00000483 - bl DivideInt - lsl r0, r1, #0x10 - asr r0, r0, #0x10 - pop {r3, pc} - .align 2, 0 -_0205449C: .4byte 0x00000483 - arm_func_end GetMonsterIdFromSpawnEntry - - arm_func_start SetMonsterId -SetMonsterId: @ 0x020544A0 - strh r1, [r0, #6] - bx lr - arm_func_end SetMonsterId - - arm_func_start SetMonsterLevelAndId -SetMonsterLevelAndId: @ 0x020544A8 - lsl r1, r1, #9 - strh r1, [r0] - strh r2, [r0, #6] - bx lr - arm_func_end SetMonsterLevelAndId - - arm_func_start GetMonsterLevelFromSpawnEntry -GetMonsterLevelFromSpawnEntry: @ 0x020544B8 - ldrh r0, [r0] - asr r0, r0, #9 - and r0, r0, #0x7f - bx lr - arm_func_end GetMonsterLevelFromSpawnEntry - - arm_func_start FUN_020544c8 -FUN_020544c8: @ 0x020544C8 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x4c - mov sl, r0 - ldrb r0, [sl] - mov sb, r1 - mov fp, r2 - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _020546DC - ldrb r0, [sl, #1] - add r6, r0, #1 - b _020546D4 -_02054500: - mov r0, sl - bl FUN_020546e8 - ldrsh r0, [sl, #4] - bl FemaleToMaleForm - mov r1, #0 - str r1, [sp] - str r1, [sp, #4] - mov r1, r0 - ldrb r2, [sl, #1] - ldr r3, _020546E4 @ =0x000003E7 - add r0, sp, #0x2a - bl FUN_02053904 - str r0, [sp, #8] - cmp r0, #0 - beq _020546D0 - mov r8, #0 - add r5, sl, #0x22 - add r4, sp, #0xc - b _020546C4 -_0205454C: - mov r1, #0 - lsl r3, r8, #1 - add r2, sp, #0x2a - mov r0, r1 - ldrh r3, [r2, r3] - b _02054598 -_02054564: - mov r2, #6 - mla r7, r0, r2, sl - ldrb r2, [r7, #0x22] - tst r2, #1 - movne r2, #1 - moveq r2, #0 - tst r2, #0xff - beq _02054594 - ldrh r2, [r7, #0x24] - cmp r2, r3 - moveq r1, #1 - beq _020545A0 -_02054594: - add r0, r0, #1 -_02054598: - cmp r0, #4 - blt _02054564 -_020545A0: - cmp r1, #0 - bne _020546C0 - mov r7, #0 - b _020545F0 -_020545B0: - mov r0, #6 - mul r1, r7, r0 - add r0, sl, r1 - ldrb r0, [r0, #0x22] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - bne _020545EC - add r0, r5, r1 - lsl r2, r8, #1 - add r1, sp, #0x2a - ldrh r1, [r1, r2] - bl GetInfoMoveGround - b _020545F8 -_020545EC: - add r7, r7, #1 -_020545F0: - cmp r7, #4 - blt _020545B0 -_020545F8: - cmp fp, #0 - beq _020546C0 - cmp r7, #4 - bne _020546C0 - lsl r1, r8, #1 - add r0, sp, #0x2a - mov r7, #0 - ldrh r1, [r0, r1] - mov r3, r7 -_0205461C: - mov r0, #6 - mul lr, r3, r0 - add ip, sl, lr - ldrb r0, [ip, #0x22] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _02054660 - add r2, r4, lr - ldrh r0, [ip, #0x22] - add r7, r7, #1 - strh r0, [r4, lr] - ldrh r0, [ip, #0x24] - strh r0, [r2, #2] - ldrh r0, [ip, #0x26] - strh r0, [r2, #4] -_02054660: - add r3, r3, #1 - cmp r3, #4 - blt _0205461C - mov r0, #6 - mla r0, r3, r0, r4 - bl GetInfoMoveGround - mov r0, r4 - add r1, r7, #1 - bl FUN_02015090 - mov r1, #0 - b _020546B8 -_0205468C: - mov r0, #6 - mul r2, r1, r0 - add r0, sl, r2 - add r3, r4, r2 - ldrh r2, [r4, r2] - add r1, r1, #1 - strh r2, [r0, #0x22] - ldrh r2, [r3, #2] - strh r2, [r0, #0x24] - ldrh r2, [r3, #4] - strh r2, [r0, #0x26] -_020546B8: - cmp r1, r7 - blt _0205468C -_020546C0: - add r8, r8, #1 -_020546C4: - ldr r0, [sp, #8] - cmp r8, r0 - blt _0205454C -_020546D0: - add r6, r6, #1 -_020546D4: - cmp r6, sb - ble _02054500 -_020546DC: - add sp, sp, #0x4c - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_020546E4: .4byte 0x000003E7 - arm_func_end FUN_020544c8 - - arm_func_start FUN_020546e8 -FUN_020546e8: @ 0x020546E8 - push {r3, r4, lr} - sub sp, sp, #0xc - mov r4, r0 - ldrb r2, [r4, #1] - ldrsh r1, [r4, #4] - add r0, sp, #0 - add r2, r2, #1 - bl GetLvlStats - ldrb r1, [r4, #1] - add r0, r4, #0xa - add r1, r1, #1 - strb r1, [r4, #1] - ldr r1, [sp] - str r1, [r4, #0x10] - ldrh r1, [sp, #4] - bl FUN_02054fb8 - ldrb r1, [sp, #6] - add r0, r4, #0xc - bl FUN_02054fec - ldrb r1, [sp, #7] - add r0, r4, #0xd - bl FUN_02054fec - ldrb r1, [sp, #8] - add r0, r4, #0xe - bl FUN_02055020 - ldrb r1, [sp, #9] - add r0, r4, #0xf - bl FUN_02055020 - add sp, sp, #0xc - pop {r3, r4, pc} - arm_func_end FUN_020546e8 - - arm_func_start GetMonsterGenderVeneer -GetMonsterGenderVeneer: @ 0x02054760 - ldr ip, _02054768 @ =GetMonsterGender - bx ip - .align 2, 0 -_02054768: .4byte GetMonsterGender - arm_func_end GetMonsterGenderVeneer - - arm_func_start IsMonsterValid -IsMonsterValid: @ 0x0205476C - push {r3, lr} - cmp r0, #0 - ble _02054798 - ldr r1, _020547C0 @ =0x00000229 - cmp r0, r1 - blt _0205478C - cmp r0, #0x258 - ble _02054798 -_0205478C: - ldr r1, _020547C4 @ =0x00000481 - cmp r0, r1 - blt _020547A0 -_02054798: - mov r0, #0 - pop {r3, pc} -_020547A0: - cmp r0, #0x258 - blt _020547B8 - bl GetMonsterGender - cmp r0, #2 - movne r0, #0 - popne {r3, pc} -_020547B8: - mov r0, #1 - pop {r3, pc} - .align 2, 0 -_020547C0: .4byte 0x00000229 -_020547C4: .4byte 0x00000481 - arm_func_end IsMonsterValid - - arm_func_start FUN_020547c8 -FUN_020547c8: @ 0x020547C8 - mov r1, #0 - strh r1, [r0] - str r1, [r0, #4] - bx lr - arm_func_end FUN_020547c8 - - arm_func_start FUN_020547d8 -FUN_020547d8: @ 0x020547D8 - push {r4, lr} - mov r4, r0 - mov r0, #0 - strh r0, [r4] - ldr r0, [r4, #4] - cmp r0, #0 - popeq {r4, pc} - bl MemFree - mov r0, #0 - str r0, [r4, #4] - pop {r4, pc} - arm_func_end FUN_020547d8 - - arm_func_start FUN_02054804 -FUN_02054804: @ 0x02054804 - push {r3, lr} - ldr r2, _02054820 @ =0x020A3248 - mov r1, #0 - ldr r2, [r2, #4] - str r2, [sp] - blx r2 - pop {r3, pc} - .align 2, 0 -_02054820: .4byte 0x020A3248 - arm_func_end FUN_02054804 -_02054824: - .byte 0x08, 0x40, 0x2D, 0xE9, 0x10, 0x20, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x20, 0x92, 0xE5, 0x00, 0x20, 0x8D, 0xE5, 0x32, 0xFF, 0x2F, 0xE1, 0x08, 0x80, 0xBD, 0xE8 - .byte 0x48, 0x32, 0x0A, 0x02 - - arm_func_start FUN_02054844 -FUN_02054844: @ 0x02054844 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0xd0 - mov r3, #0 - mov sb, r0 - mov r8, r1 - mov r6, r3 - add r2, sp, #0x80 -_02054860: - add r0, r3, #1 - lsl r0, r0, #0x10 - str r6, [r2, r3, lsl #3] - add r1, r2, r3, lsl #3 - asr r3, r0, #0x10 - str r6, [r1, #4] - cmp r3, #0xa - blt _02054860 - ldr fp, _02054A50 @ =0x020B0A48 - mov r7, r6 - add r5, sp, #0x80 - mov r4, #1 -_02054890: - mov r0, r7 - bl IsValidTeamMember - cmp r0, #0 - beq _0205493C - cmp r8, #0 - beq _020548C4 - ldr r1, [fp] - mov r0, #0x44 - smlabb r0, r7, r0, r1 - ldrsh r0, [r0, #4] - bl IsShaymin - cmp r0, #0 - bne _0205493C -_020548C4: - ldr r2, [fp] - mov r0, #0x44 - smlabb r0, r7, r0, r2 - ldrsh r0, [r0, #4] - mov r1, #1 - bl FUN_01FF950C - asr r1, r0, #5 - add r1, r0, r1, lsr #26 - asr lr, r1, #6 - lsr r2, r0, #0x1f - rsb r0, r2, r0, lsl #26 - add r0, r2, r0, ror #26 - mov r1, #0 - add r2, r5, lr, lsl #3 - lsl r1, r1, r0 - rsb sl, r0, #0x20 - orr r1, r1, r4, lsr sl - sub sl, r0, #0x20 - ldr ip, [r5, lr, lsl #3] - ldr r3, [r2, #4] - orr r1, r1, r4, lsl sl - orr r1, r3, r1 - orr r0, ip, r4, lsl r0 - stm r2, {r0, r1} - ldr r0, [r5, lr, lsl #3] - cmp r3, r1 - cmpeq ip, r0 - addne r0, r6, #1 - lslne r0, r0, #0x10 - asrne r6, r0, #0x10 -_0205493C: - add r0, r7, #1 - lsl r1, r0, #0x10 - ldr r0, _02054A54 @ =0x0000022B - asr r7, r1, #0x10 - cmp r0, r1, asr #16 - bgt _02054890 - strh r6, [sb] - lsl r0, r6, #1 - mov r1, #0 - bl MemAlloc - str r0, [sb, #4] - ldr r0, _02054A58 @ =0x020A32F8 - bl DebugPrint0 - mov r8, #0 - mov sl, r8 - mov r7, #1 - mov r5, r8 - add fp, sp, #0x80 - mov r4, r8 - b _02054A40 -_0205498C: - lsr r1, sl, #0x1f - rsb r0, r1, sl, lsl #26 - add r2, r1, r0, ror #26 - asr r0, sl, #5 - add r0, sl, r0, lsr #26 - asr r1, r0, #6 - add r0, fp, r1, lsl #3 - ldr r1, [fp, r1, lsl #3] - lsl r3, r5, r2 - rsb ip, r2, #0x20 - and r1, r1, r7, lsl r2 - orr r3, r3, r7, lsr ip - sub r2, r2, #0x20 - ldr r0, [r0, #4] - orr r3, r3, r7, lsl r2 - and r2, r3, r0 - mov r0, #0 - cmp r2, r0 - cmpeq r1, r4 - beq _02054A34 - mov r0, sl - mov r1, r7 - bl FUN_01FF9434 - ldr r1, [sb, #4] - lsl r2, r8, #1 - strh r0, [r1, r2] - ldr r1, [sb, #4] - add r0, sp, #0 - ldrsh r1, [r1, r2] - bl GetNameRaw - ldr r3, [sb, #4] - lsl r2, r8, #1 - ldrsh r2, [r3, r2] - ldr r0, _02054A5C @ =0x020A3330 - mov r1, r8 - add r3, sp, #0 - bl DebugPrint0 - add r0, r8, #1 - lsl r0, r0, #0x10 - cmp r6, r0, asr #16 - asr r8, r0, #0x10 - ble _02054A48 -_02054A34: - add r0, sl, #1 - lsl r0, r0, #0x10 - asr sl, r0, #0x10 -_02054A40: - cmp sl, #0x280 - blt _0205498C -_02054A48: - add sp, sp, #0xd0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02054A50: .4byte 0x020B0A48 -_02054A54: .4byte 0x0000022B -_02054A58: .4byte 0x020A32F8 -_02054A5C: .4byte 0x020A3330 - arm_func_end FUN_02054844 - - arm_func_start SprintfStatic -SprintfStatic: @ 0x02054A60 - push {r0, r1, r2, r3} - push {r3, lr} - add r2, sp, #0xc - bic r2, r2, #3 - ldr r1, [sp, #0xc] - add r2, r2, #4 - bl Vsprintf - pop {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end SprintfStatic - - arm_func_start IsUnown -IsUnown: @ 0x02054A88 - cmp r0, #0xc9 - blt _02054A9C - cmp r0, #0xe4 - movle r0, #1 - bxle lr -_02054A9C: - mov r0, #0 - bx lr - arm_func_end IsUnown - - arm_func_start IsShaymin -IsShaymin: @ 0x02054AA4 - ldr r1, _02054AD0 @ =0xFFFFFDEA - add r0, r0, r1 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, #1 - movls r0, #1 - movhi r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_02054AD0: .4byte 0xFFFFFDEA - arm_func_end IsShaymin - - arm_func_start IsCastform -IsCastform: @ 0x02054AD4 - ldr r2, _02054B24 @ =0x0000017B - cmp r0, r2 - cmpne r0, #0x17c - addne r1, r2, #2 - cmpne r0, r1 - addne r1, r2, #3 - cmpne r0, r1 - beq _02054B14 - ldr r1, _02054B28 @ =0xFFFFFC2D - add r0, r0, r1 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, #3 - bhi _02054B1C -_02054B14: - mov r0, #1 - bx lr -_02054B1C: - mov r0, #0 - bx lr - .align 2, 0 -_02054B24: .4byte 0x0000017B -_02054B28: .4byte 0xFFFFFC2D - arm_func_end IsCastform - - arm_func_start IsCherrim -IsCherrim: @ 0x02054B2C - cmp r0, #0x1cc - ldrne r1, _02054B6C @ =0x000001CD - cmpne r0, r1 - beq _02054B5C - ldr r1, _02054B70 @ =0xFFFFFBDC - add r0, r0, r1 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, #1 - bhi _02054B64 -_02054B5C: - mov r0, #1 - bx lr -_02054B64: - mov r0, #0 - bx lr - .align 2, 0 -_02054B6C: .4byte 0x000001CD -_02054B70: .4byte 0xFFFFFBDC - arm_func_end IsCherrim - - arm_func_start IsDeoxys -IsDeoxys: @ 0x02054B74 - ldr r1, _02054BA0 @ =0xFFFFFE5E - add r0, r0, r1 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, #3 - movls r0, #1 - movhi r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_02054BA0: .4byte 0xFFFFFE5E - arm_func_end IsDeoxys - - arm_func_start GetSecondFormIfValid -GetSecondFormIfValid: @ 0x02054BA4 - push {r3, r4, r5, lr} - mov r5, r0 - bl GetMonsterGender - cmp r0, #1 - bne _02054BD8 - add r4, r5, #0x258 - lsl r0, r4, #0x10 - asr r0, r0, #0x10 - bl GetMonsterGender - cmp r0, #2 - lsleq r0, r4, #0x10 - asreq r0, r0, #0x10 - popeq {r3, r4, r5, pc} -_02054BD8: - mov r0, r5 - pop {r3, r4, r5, pc} - arm_func_end GetSecondFormIfValid - - arm_func_start FemaleToMaleForm -FemaleToMaleForm: @ 0x02054BE0 - push {r3, r4, r5, lr} - mov r5, r0 - bl GetMonsterGender - cmp r0, #2 - bne _02054C1C - cmp r5, #0x258 - blt _02054C1C - sub r4, r5, #0x258 - lsl r0, r4, #0x10 - asr r0, r0, #0x10 - bl GetMonsterGender - cmp r0, #1 - lsleq r0, r4, #0x10 - asreq r0, r0, #0x10 - popeq {r3, r4, r5, pc} -_02054C1C: - mov r0, r5 - pop {r3, r4, r5, pc} - arm_func_end FemaleToMaleForm - - arm_func_start GetBaseFormCastformDeoxysCherrim -GetBaseFormCastformDeoxysCherrim: @ 0x02054C24 - push {r4, lr} - mov r4, r0 - bl IsDeoxys - cmp r0, #0 - ldrne r0, _02054CCC @ =0x000001A2 - popne {r4, pc} - ldr r1, _02054CD0 @ =0xFFFFFE85 - add r0, r4, r1 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, #3 - rsbls r0, r1, #0 - popls {r4, pc} - sub r0, r1, #0x258 - add r0, r4, r0 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, #3 - rsbls r0, r1, #0x258 - popls {r4, pc} - sub r0, r4, #0x1cc - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, #1 - movls r0, #0x1cc - popls {r4, pc} - ldr r0, _02054CD4 @ =0xFFFFFBDC - add r1, r4, r0 - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - cmp r1, #1 - rsbls r4, r0, #0 - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_02054CCC: .4byte 0x000001A2 -_02054CD0: .4byte 0xFFFFFE85 -_02054CD4: .4byte 0xFFFFFBDC - arm_func_end GetBaseFormCastformDeoxysCherrim - - arm_func_start BaseFormsEqual -BaseFormsEqual: @ 0x02054CD8 - push {r4, r5, r6, lr} - mov r4, r1 - bl FemaleToMaleForm - mov r5, r0 - mov r0, r4 - bl FemaleToMaleForm - mov r4, r0 - mov r0, r5 - bl GetBaseFormCastformDeoxysCherrim - mov r5, r0 - mov r0, r4 - bl GetBaseFormCastformDeoxysCherrim - mov r6, r0 - cmp r5, r6 - moveq r0, #1 - popeq {r4, r5, r6, pc} - mov r0, r5 - bl IsUnown - cmp r0, #0 - beq _02054D3C - mov r0, r6 - bl IsUnown - cmp r0, #0 - movne r0, #0 - popne {r4, r5, r6, pc} -_02054D3C: - mov r0, r5 - bl GetBaseFormBurmyWormadamShellosGastrodonCherrim - mov r4, r0 - mov r0, r6 - bl GetBaseFormBurmyWormadamShellosGastrodonCherrim - ldr r1, _02054DB8 @ =0x000001BF - cmp r4, r1 - cmpeq r0, r1 - beq _02054D8C - ldr r1, _02054DBC @ =0x000001C2 - cmp r4, r1 - cmpeq r0, r1 - beq _02054D8C - ldr r1, _02054DC0 @ =0x000001CE - cmp r4, r1 - cmpeq r0, r1 - beq _02054D8C - cmp r4, #0x1d0 - cmpeq r0, #0x1d0 - bne _02054D94 -_02054D8C: - mov r0, #0 - pop {r4, r5, r6, pc} -_02054D94: - mov r0, r5 - bl GetDexNumber - mov r4, r0 - mov r0, r6 - bl GetDexNumber - cmp r4, r0 - moveq r0, #1 - movne r0, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_02054DB8: .4byte 0x000001BF -_02054DBC: .4byte 0x000001C2 -_02054DC0: .4byte 0x000001CE - arm_func_end BaseFormsEqual - - arm_func_start DexNumbersEqual -DexNumbersEqual: @ 0x02054DC4 - push {r4, r5, r6, lr} - mov r4, r1 - bl FemaleToMaleForm - mov r5, r0 - mov r0, r4 - bl FemaleToMaleForm - mov r4, r0 - mov r0, r5 - bl GetBaseFormCastformDeoxysCherrim - mov r5, r0 - mov r0, r4 - bl GetBaseFormCastformDeoxysCherrim - mov r6, r0 - cmp r5, r6 - moveq r0, #1 - popeq {r4, r5, r6, pc} - mov r0, r5 - bl IsUnown - cmp r0, #0 - beq _02054E28 - mov r0, r6 - bl IsUnown - cmp r0, #0 - movne r0, #0 - popne {r4, r5, r6, pc} -_02054E28: - mov r0, r5 - bl GetDexNumber - mov r4, r0 - mov r0, r6 - bl GetDexNumber - cmp r4, r0 - moveq r0, #1 - movne r0, #0 - pop {r4, r5, r6, pc} - arm_func_end DexNumbersEqual - - arm_func_start GendersEqual -GendersEqual: @ 0x02054E4C - push {r3, r4, r5, lr} - mov r5, r1 - bl GetMonsterGender - mov r4, r0 - mov r0, r5 - bl GetMonsterGender - cmp r4, r0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r3, r4, r5, pc} - arm_func_end GendersEqual - - arm_func_start GendersEqualNotGenderless -GendersEqualNotGenderless: @ 0x02054E78 - push {r3, r4, r5, lr} - mov r4, r0 - mov r5, r1 - bl GetMonsterGender - cmp r0, #3 - beq _02054EC0 - mov r0, r5 - bl GetMonsterGender - cmp r0, #3 - beq _02054EC0 - mov r0, r4 - bl GetMonsterGender - mov r4, r0 - mov r0, r5 - bl GetMonsterGender - cmp r4, r0 - moveq r0, #1 - popeq {r3, r4, r5, pc} -_02054EC0: - mov r0, #0 - pop {r3, r4, r5, pc} - arm_func_end GendersEqualNotGenderless - - arm_func_start FUN_02054ec8 -FUN_02054ec8: @ 0x02054EC8 - push {r3, r4, r5, lr} - mov r4, r0 - mov r5, r1 - bl GetMonsterGender - cmp r0, #3 - beq _02054F10 - mov r0, r5 - bl GetMonsterGender - cmp r0, #3 - beq _02054F10 - mov r0, r4 - bl GetMonsterGender - mov r4, r0 - mov r0, r5 - bl GetMonsterGender - cmp r4, r0 - movne r0, #1 - popne {r3, r4, r5, pc} -_02054F10: - mov r0, #0 - pop {r3, r4, r5, pc} - arm_func_end FUN_02054ec8 - - arm_func_start FUN_02054f18 -FUN_02054f18: @ 0x02054F18 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - add r0, r0, #0xea - add r0, r0, #0xfd00 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, #2 - movls r0, #1 - movhi r0, #0 - and r0, r0, #0xff - bx lr - arm_func_end FUN_02054f18 - - arm_func_start FUN_02054f44 -FUN_02054f44: @ 0x02054F44 - push {r4, r5, lr} - sub sp, sp, #0x14 - mov r5, r0 - mov r4, r2 - add r0, sp, #0 - mov r2, #0xa - bl StrncpySimpleNoPadSafe - cmp r4, #0 - bne _02054F7C - ldr r1, _02054F98 @ =0x020A333C - add r2, sp, #0 - mov r0, r5 - bl SprintfStatic - b _02054F90 -_02054F7C: - ldr r1, _02054F9C @ =0x020A3340 - add r3, sp, #0 - mov r0, r5 - mov r2, r4 - bl SprintfStatic -_02054F90: - add sp, sp, #0x14 - pop {r4, r5, pc} - .align 2, 0 -_02054F98: .4byte 0x020A333C -_02054F9C: .4byte 0x020A3340 - arm_func_end FUN_02054f44 - - arm_func_start FUN_02054fa0 -FUN_02054fa0: @ 0x02054FA0 - ldr ip, _02054FB4 @ =FUN_02054f44 - cmp r2, #0 - movne r2, #0x59 - moveq r2, #0x46 - bx ip - .align 2, 0 -_02054FB4: .4byte FUN_02054f44 - arm_func_end FUN_02054fa0 - - arm_func_start FUN_02054fb8 -FUN_02054fb8: @ 0x02054FB8 - push {r3, r4, lr} - sub sp, sp, #4 - mov r4, r0 - ldrsh r3, [r4] - mov r2, #1 - add r0, sp, #0 - str r3, [sp] - rsb r3, r2, #0x3e8 - bl FUN_02055088 - ldr r1, [sp] - strh r1, [r4] - add sp, sp, #4 - pop {r3, r4, pc} - arm_func_end FUN_02054fb8 - - arm_func_start FUN_02054fec -FUN_02054fec: @ 0x02054FEC - push {r3, r4, lr} - sub sp, sp, #4 - mov r4, r0 - ldrb r3, [r4] - add r0, sp, #0 - mov r2, #1 - str r3, [sp] - mov r3, #0xff - bl FUN_02055088 - ldr r1, [sp] - strb r1, [r4] - add sp, sp, #4 - pop {r3, r4, pc} - arm_func_end FUN_02054fec - - arm_func_start FUN_02055020 -FUN_02055020: @ 0x02055020 - push {r3, r4, lr} - sub sp, sp, #4 - mov r4, r0 - ldrb r3, [r4] - add r0, sp, #0 - mov r2, #1 - str r3, [sp] - mov r3, #0xff - bl FUN_02055088 - ldr r1, [sp] - strb r1, [r4] - add sp, sp, #4 - pop {r3, r4, pc} - arm_func_end FUN_02055020 - - arm_func_start FUN_02055054 -FUN_02055054: @ 0x02055054 - push {r3, r4, lr} - sub sp, sp, #4 - mov r4, r0 - ldrsh r3, [r4] - mov r2, #1 - add r0, sp, #0 - str r3, [sp] - rsb r3, r2, #0x3e8 - bl FUN_02055088 - ldr r1, [sp] - strh r1, [r4] - add sp, sp, #4 - pop {r3, r4, pc} - arm_func_end FUN_02055054 - - arm_func_start FUN_02055088 -FUN_02055088: @ 0x02055088 - cmp r1, #0 - ble _020550B4 - ldr r2, [r0] - cmp r2, r3 - moveq r0, #0 - bxeq lr - add r1, r2, r1 - str r1, [r0] - cmp r1, r3 - strgt r3, [r0] - b _020550D4 -_020550B4: - ldr r3, [r0] - cmp r3, r2 - moveq r0, #0 - bxeq lr - add r1, r3, r1 - str r1, [r0] - cmp r1, r2 - strlt r2, [r0] -_020550D4: - mov r0, #1 - bx lr - arm_func_end FUN_02055088 - - arm_func_start FUN_020550dc -FUN_020550dc: @ 0x020550DC - bx lr - arm_func_end FUN_020550dc - - arm_func_start FUN_020550e0 -FUN_020550e0: @ 0x020550E0 - ldr r0, _0205510C @ =0x020B0A48 - mov r3, #0 - ldr r2, [r0] - ldr r0, _02055110 @ =0x0000022B - mov r1, r3 -_020550F4: - add r3, r3, #1 - cmp r3, r0 - strb r1, [r2], #0x44 - blt _020550F4 - ldr ip, _02055114 @ =FUN_0205523c - bx ip - .align 2, 0 -_0205510C: .4byte 0x020B0A48 -_02055110: .4byte 0x0000022B -_02055114: .4byte FUN_0205523c - arm_func_end FUN_020550e0 - - arm_func_start FUN_02055118 -FUN_02055118: @ 0x02055118 - ldr r0, _02055140 @ =0x020B0A48 - mov r2, #0 - ldr r1, [r0] - ldr ip, _02055144 @ =FUN_0205523c - strb r2, [r1, #0x88] - ldr r1, [r0] - strb r2, [r1, #0xcc] - ldr r0, [r0] - strb r2, [r0, #0x110] - bx ip - .align 2, 0 -_02055140: .4byte 0x020B0A48 -_02055144: .4byte FUN_0205523c - arm_func_end FUN_02055118 - - arm_func_start IsMonsterOnTeam -IsMonsterOnTeam: @ 0x02055148 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sl, r0 - mov sb, r1 - bl GetGameMode - cmp r0, #3 - bne _020551C0 - ldr r0, _02055230 @ =0x020B0A48 - mov r8, #0 - ldr r7, [r0] - mov r5, r8 - mov r6, #1 - ldr r4, _02055234 @ =0x020B0A4C - b _020551B8 -_0205517C: - ldrb r0, [r7] - tst r0, #1 - movne r0, r6 - moveq r0, r5 - tst r0, #0xff - beq _020551B0 - ldrsh r0, [r7, #4] - ldr r2, [r4, sb, lsl #2] - mov r1, sl - blx r2 - cmp r0, #0 - movne r0, #1 - popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_020551B0: - add r8, r8, #1 - add r7, r7, #0x44 -_020551B8: - cmp r8, #2 - blt _0205517C -_020551C0: - ldr r0, _02055230 @ =0x020B0A48 - mov r8, #5 - ldr r0, [r0] - mov fp, #0 - add r7, r0, #0x154 - mov r6, #1 - ldr r5, _02055234 @ =0x020B0A4C - ldr r4, _02055238 @ =0x0000022B - b _02055220 -_020551E4: - ldrb r0, [r7] - tst r0, #1 - movne r0, r6 - moveq r0, fp - tst r0, #0xff - beq _02055218 - ldrsh r0, [r7, #4] - ldr r2, [r5, sb, lsl #2] - mov r1, sl - blx r2 - cmp r0, #0 - movne r0, #1 - popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_02055218: - add r8, r8, #1 - add r7, r7, #0x44 -_02055220: - cmp r8, r4 - blt _020551E4 - mov r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02055230: .4byte 0x020B0A48 -_02055234: .4byte 0x020B0A4C -_02055238: .4byte 0x0000022B - arm_func_end IsMonsterOnTeam - - arm_func_start FUN_0205523c -FUN_0205523c: @ 0x0205523C - push {r3, lr} - mov r0, #0x214 - mov r1, #0 - bl IsMonsterOnTeam - cmp r0, #0 - ldrne r1, _02055268 @ =0x0000022B - ldrne r0, _0205526C @ =0x022B5788 - ldreq r1, _02055270 @ =0x0000022A - ldreq r0, _0205526C @ =0x022B5788 - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_02055268: .4byte 0x0000022B -_0205526C: .4byte 0x022B5788 -_02055270: .4byte 0x0000022A - arm_func_end FUN_0205523c - - arm_func_start GetNbRecruited -GetNbRecruited: @ 0x02055274 - push {r3, r4, r5, lr} - ldr r1, _02055384 @ =0x00000906 - mov r4, r0 - bl MemZero - bl GetGameMode - cmp r0, #3 - mov r3, #1 - bne _020552E0 - ldr r0, _02055388 @ =0x020B0A48 - mov lr, #0 - ldr ip, [r0] - mov r2, lr -_020552A4: - ldrb r0, [ip] - add lr, lr, #1 - tst r0, #1 - movne r0, r3 - moveq r0, r2 - tst r0, #0xff - ldrshne r0, [ip, #4] - add ip, ip, #0x44 - lslne r1, r0, #1 - ldrshne r0, [r4, r1] - addne r0, r0, #1 - strhne r0, [r4, r1] - cmp lr, #2 - blt _020552A4 - b _0205532C -_020552E0: - ldr r0, _02055388 @ =0x020B0A48 - mov r5, #2 - ldr r0, [r0] - mov r2, #0 - add ip, r0, #0x88 -_020552F4: - ldrb r0, [ip] - add r5, r5, #1 - tst r0, #1 - movne r0, r3 - moveq r0, r2 - tst r0, #0xff - ldrshne r0, [ip, #4] - add ip, ip, #0x44 - lslne r1, r0, #1 - ldrshne r0, [r4, r1] - addne r0, r0, #1 - strhne r0, [r4, r1] - cmp r5, #5 - blt _020552F4 -_0205532C: - ldr r0, _02055388 @ =0x020B0A48 - mov r5, #5 - ldr r0, [r0] - mov r3, #0 - add lr, r0, #0x154 - ldr r0, _0205538C @ =0x0000022B - mov ip, #1 -_02055348: - ldrb r1, [lr] - add r5, r5, #1 - tst r1, #1 - movne r1, ip - moveq r1, r3 - tst r1, #0xff - ldrshne r1, [lr, #4] - add lr, lr, #0x44 - lslne r2, r1, #1 - ldrshne r1, [r4, r2] - addne r1, r1, #1 - strhne r1, [r4, r2] - cmp r5, r0 - blt _02055348 - pop {r3, r4, r5, pc} - .align 2, 0 -_02055384: .4byte 0x00000906 -_02055388: .4byte 0x020B0A48 -_0205538C: .4byte 0x0000022B - arm_func_end GetNbRecruited - - arm_func_start IsValidTeamMember -IsValidTeamMember: @ 0x02055390 - push {r4, lr} - ldr r1, _0205540C @ =0x020B0A48 - mov r4, r0 - mov r0, #0x44 - smulbb r0, r4, r0 - ldr r1, [r1] - ldrb r0, [r1, r0] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _02055404 - cmp r4, #5 - bge _020553FC - bl GetGameMode - cmp r0, #3 - bne _020553EC - cmp r4, #2 - cmpne r4, #3 - cmpne r4, #4 - beq _020553FC - mov r0, #0 - pop {r4, pc} -_020553EC: - cmp r4, #0 - cmpne r4, #1 - movne r0, #0 - popne {r4, pc} -_020553FC: - mov r0, #1 - pop {r4, pc} -_02055404: - mov r0, #0 - pop {r4, pc} - .align 2, 0 -_0205540C: .4byte 0x020B0A48 - arm_func_end IsValidTeamMember - - arm_func_start FUN_02055410 -FUN_02055410: @ 0x02055410 - push {r4, lr} - ldr r1, _02055470 @ =0x020B0A48 - mov r4, r0 - mov r0, #0x44 - smulbb r0, r4, r0 - ldr r1, [r1] - ldrb r0, [r1, r0] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _02055468 - bl GetGameMode - cmp r0, #3 - bne _0205545C - cmp r4, #2 - bne _02055468 - mov r0, #1 - pop {r4, pc} -_0205545C: - cmp r4, #0 - moveq r0, #1 - popeq {r4, pc} -_02055468: - mov r0, #0 - pop {r4, pc} - .align 2, 0 -_02055470: .4byte 0x020B0A48 - arm_func_end FUN_02055410 - - arm_func_start FUN_02055474 -FUN_02055474: @ 0x02055474 - push {r4, lr} - ldr r1, _020554D4 @ =0x020B0A48 - mov r4, r0 - mov r0, #0x44 - smulbb r0, r4, r0 - ldr r1, [r1] - ldrb r0, [r1, r0] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _020554CC - bl GetGameMode - cmp r0, #3 - bne _020554C0 - cmp r4, #3 - bne _020554CC - mov r0, #1 - pop {r4, pc} -_020554C0: - cmp r4, #1 - moveq r0, #1 - popeq {r4, pc} -_020554CC: - mov r0, #0 - pop {r4, pc} - .align 2, 0 -_020554D4: .4byte 0x020B0A48 - arm_func_end FUN_02055474 - - arm_func_start FUN_020554d8 -FUN_020554d8: @ 0x020554D8 - push {r4, lr} - ldr r1, _02055524 @ =0x020B0A48 - mov r4, r0 - mov r0, #0x44 - smulbb r0, r4, r0 - ldr r1, [r1] - ldrb r0, [r1, r0] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _0205551C - bl GetGameMode - cmp r0, #3 - cmpeq r4, #4 - moveq r0, #1 - popeq {r4, pc} -_0205551C: - mov r0, #0 - pop {r4, pc} - .align 2, 0 -_02055524: .4byte 0x020B0A48 - arm_func_end FUN_020554d8 - - arm_func_start IsMainCharacter -IsMainCharacter: @ 0x02055528 - push {r4, lr} - ldr r1, _020555A4 @ =0x020B0A48 - mov r4, r0 - mov r0, #0x44 - smulbb r0, r4, r0 - ldr r1, [r1] - ldrb r0, [r1, r0] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _0205559C - cmp r4, #5 - bge _0205559C - bl GetGameMode - cmp r0, #3 - bne _02055584 - cmp r4, #2 - cmpne r4, #3 - cmpne r4, #4 - beq _02055594 - mov r0, #0 - pop {r4, pc} -_02055584: - cmp r4, #0 - cmpne r4, #1 - movne r0, #0 - popne {r4, pc} -_02055594: - mov r0, #1 - pop {r4, pc} -_0205559C: - mov r0, #0 - pop {r4, pc} - .align 2, 0 -_020555A4: .4byte 0x020B0A48 - arm_func_end IsMainCharacter - - arm_func_start GetTeamMember -GetTeamMember: @ 0x020555A8 - mvn r1, #0 - cmp r0, r1 - moveq r0, #0 - bxeq lr - ldr r2, _020555CC @ =0x020B0A48 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - bx lr - .align 2, 0 -_020555CC: .4byte 0x020B0A48 - arm_func_end GetTeamMember - - arm_func_start FUN_020555d0 -FUN_020555d0: @ 0x020555D0 - push {r4, r5, r6, lr} - ldr r2, _02055648 @ =0x020B0A48 - mov r5, #0 - ldr r2, [r2] - mov r6, #5 - add r4, r2, #0x154 - mov ip, r5 - mov lr, #1 - ldr r2, _0205564C @ =0x0000022B - b _02055638 -_020555F8: - ldrb r3, [r4] - tst r3, #1 - movne r3, lr - moveq r3, ip - tst r3, #0xff - beq _02055630 - ldrsh r3, [r4, #4] - cmp r3, r0 - bne _02055630 - cmp r5, r1 - lsleq r0, r6, #0x10 - asreq r0, r0, #0x10 - popeq {r4, r5, r6, pc} - add r5, r5, #1 -_02055630: - add r6, r6, #1 - add r4, r4, #0x44 -_02055638: - cmp r6, r2 - blt _020555F8 - mvn r0, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_02055648: .4byte 0x020B0A48 -_0205564C: .4byte 0x0000022B - arm_func_end FUN_020555d0 - - arm_func_start GetHeroMemberIdx -GetHeroMemberIdx: @ 0x02055650 - ldr r0, _02055678 @ =0x020B0A48 - ldr r0, [r0] - ldrb r0, [r0] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - movne r0, #0 - mvneq r0, #0 - bx lr - .align 2, 0 -_02055678: .4byte 0x020B0A48 - arm_func_end GetHeroMemberIdx - - arm_func_start GetPartnerMemberIdx -GetPartnerMemberIdx: @ 0x0205567C - ldr r0, _020556A4 @ =0x020B0A48 - ldr r0, [r0] - ldrb r0, [r0, #0x44] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - movne r0, #1 - mvneq r0, #0 - bx lr - .align 2, 0 -_020556A4: .4byte 0x020B0A48 - arm_func_end GetPartnerMemberIdx - - arm_func_start GetMainCharacter1MemberIdx -GetMainCharacter1MemberIdx: @ 0x020556A8 - push {r3, lr} - bl GetGameMode - cmp r0, #3 - moveq r0, #2 - ldr r2, _020556E8 @ =0x020B0A48 - movne r0, #0 - mov r1, #0x44 - smulbb r1, r0, r1 - ldr r2, [r2] - ldrb r1, [r2, r1] - tst r1, #1 - movne r1, #1 - moveq r1, #0 - tst r1, #0xff - mvneq r0, #0 - pop {r3, pc} - .align 2, 0 -_020556E8: .4byte 0x020B0A48 - arm_func_end GetMainCharacter1MemberIdx - - arm_func_start GetMainCharacter2MemberIdx -GetMainCharacter2MemberIdx: @ 0x020556EC - push {r3, lr} - bl GetGameMode - cmp r0, #3 - moveq r0, #3 - ldr r2, _0205572C @ =0x020B0A48 - movne r0, #1 - mov r1, #0x44 - smulbb r1, r0, r1 - ldr r2, [r2] - ldrb r1, [r2, r1] - tst r1, #1 - movne r1, #1 - moveq r1, #0 - tst r1, #0xff - mvneq r0, #0 - pop {r3, pc} - .align 2, 0 -_0205572C: .4byte 0x020B0A48 - arm_func_end GetMainCharacter2MemberIdx - - arm_func_start GetMainCharacter3MemberIdx -GetMainCharacter3MemberIdx: @ 0x02055730 - push {r3, lr} - bl GetGameMode - cmp r0, #3 - mvnne r0, #0 - popne {r3, pc} - ldr r0, _0205576C @ =0x020B0A48 - ldr r0, [r0] - ldrb r0, [r0, #0x110] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - movne r0, #4 - mvneq r0, #0 - pop {r3, pc} - .align 2, 0 -_0205576C: .4byte 0x020B0A48 - arm_func_end GetMainCharacter3MemberIdx - - arm_func_start GetHero -GetHero: @ 0x02055770 - ldr r0, _02055794 @ =0x020B0A48 - ldr r0, [r0] - ldrb r1, [r0] - tst r1, #1 - movne r1, #1 - moveq r1, #0 - tst r1, #0xff - moveq r0, #0 - bx lr - .align 2, 0 -_02055794: .4byte 0x020B0A48 - arm_func_end GetHero - - arm_func_start GetPartner -GetPartner: @ 0x02055798 - ldr r0, _020557C0 @ =0x020B0A48 - ldr r1, [r0] - ldrb r0, [r1, #0x44] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - addne r0, r1, #0x44 - moveq r0, #0 - bx lr - .align 2, 0 -_020557C0: .4byte 0x020B0A48 - arm_func_end GetPartner - - arm_func_start GetMainCharacter1 -GetMainCharacter1: @ 0x020557C4 - push {r3, lr} - bl GetGameMode - cmp r0, #3 - moveq r2, #2 - ldr r1, _02055808 @ =0x020B0A48 - movne r2, #0 - mov r0, #0x44 - smulbb r2, r2, r0 - ldr r1, [r1] - ldrb r0, [r1, r2] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - addne r0, r1, r2 - moveq r0, #0 - pop {r3, pc} - .align 2, 0 -_02055808: .4byte 0x020B0A48 - arm_func_end GetMainCharacter1 - - arm_func_start GetMainCharacter2 -GetMainCharacter2: @ 0x0205580C - push {r3, lr} - bl GetGameMode - cmp r0, #3 - moveq r2, #3 - ldr r1, _02055850 @ =0x020B0A48 - movne r2, #1 - mov r0, #0x44 - smulbb r2, r2, r0 - ldr r1, [r1] - ldrb r0, [r1, r2] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - addne r0, r1, r2 - moveq r0, #0 - pop {r3, pc} - .align 2, 0 -_02055850: .4byte 0x020B0A48 - arm_func_end GetMainCharacter2 - - arm_func_start GetMainCharacter3 -GetMainCharacter3: @ 0x02055854 - push {r3, lr} - bl GetGameMode - cmp r0, #3 - movne r0, #0 - popne {r3, pc} - ldr r0, _02055890 @ =0x020B0A48 - ldr r1, [r0] - ldrb r0, [r1, #0x110] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - addne r0, r1, #0x110 - moveq r0, #0 - pop {r3, pc} - .align 2, 0 -_02055890: .4byte 0x020B0A48 - arm_func_end GetMainCharacter3 - - arm_func_start FUN_02055894 -FUN_02055894: @ 0x02055894 - ldr r1, _020558EC @ =0x020B0A48 - mov r3, #0 - ldr r2, [r1] - ldr r1, _020558F0 @ =0x0000022B - b _020558DC -_020558A8: - cmp r2, r0 - bne _020558D4 - ldrb r0, [r2] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _020558E4 - lsl r0, r3, #0x10 - asr r0, r0, #0x10 - bx lr -_020558D4: - add r3, r3, #1 - add r2, r2, #0x44 -_020558DC: - cmp r3, r1 - blt _020558A8 -_020558E4: - mvn r0, #0 - bx lr - .align 2, 0 -_020558EC: .4byte 0x020B0A48 -_020558F0: .4byte 0x0000022B - arm_func_end FUN_02055894 - - arm_func_start FUN_020558f4 -FUN_020558f4: @ 0x020558F4 - push {r4, lr} - ldr r1, _0205595C @ =0x020B0A48 - mov r4, #5 - ldr r1, [r1] - mov r3, #0 - add lr, r1, #0x154 - mov ip, #1 - ldr r1, _02055960 @ =0x0000022B - b _0205594C -_02055918: - ldrb r2, [lr] - tst r2, #1 - movne r2, ip - moveq r2, r3 - tst r2, #0xff - beq _02055944 - ldrsh r2, [lr, #4] - cmp r2, r0 - lsleq r0, r4, #0x10 - asreq r0, r0, #0x10 - popeq {r4, pc} -_02055944: - add r4, r4, #1 - add lr, lr, #0x44 -_0205594C: - cmp r4, r1 - blt _02055918 - mvn r0, #0 - pop {r4, pc} - .align 2, 0 -_0205595C: .4byte 0x020B0A48 -_02055960: .4byte 0x0000022B - arm_func_end FUN_020558f4 - - arm_func_start GetFirstEmptyMemberIdx -GetFirstEmptyMemberIdx: @ 0x02055964 - push {r3, lr} - ldr r1, _020559CC @ =0x020B0A48 - cmp r0, #0x214 - ldr r0, [r1] - ldreq lr, _020559D0 @ =0x0000022B - add r3, r0, #0x154 - ldrne r0, _020559D4 @ =0x022B5788 - mov ip, #5 - ldrne lr, [r0] - mov r0, #0 - mov r1, #1 - b _020559BC -_02055994: - ldrb r2, [r3] - tst r2, #1 - movne r2, r1 - moveq r2, r0 - tst r2, #0xff - lsleq r0, ip, #0x10 - asreq r0, r0, #0x10 - popeq {r3, pc} - add ip, ip, #1 - add r3, r3, #0x44 -_020559BC: - cmp ip, lr - blt _02055994 - mvn r0, #0 - pop {r3, pc} - .align 2, 0 -_020559CC: .4byte 0x020B0A48 -_020559D0: .4byte 0x0000022B -_020559D4: .4byte 0x022B5788 - arm_func_end GetFirstEmptyMemberIdx - - arm_func_start FUN_020559d8 -FUN_020559d8: @ 0x020559D8 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr r1, _02055B18 @ =0x020B0A48 - mov r4, #0 - ldr lr, [r1] - mov r8, r0 - mov r2, r4 - mov r3, #1 - mvn r1, #0 -_020559F8: - ldrb r0, [lr] - add lr, lr, #0x44 - tst r0, #1 - movne r0, r3 - moveq r0, r2 - tst r0, #0xff - lsl r0, r4, #1 - strhne r4, [r8, r0] - add r4, r4, #1 - strheq r1, [r8, r0] - cmp r4, #5 - blt _020559F8 - mov r2, #0 - mov r3, #1 - ldr r0, _02055B1C @ =0x0000022B - b _02055B0C -_02055A38: - ldrb r1, [lr] - tst r1, #1 - movne r1, r3 - moveq r1, r2 - tst r1, #0xff - bne _02055AFC - mvn ip, #0 - lsl r0, r4, #1 - mov r7, lr - mov r6, r4 - strh ip, [r8, r0] - add lr, lr, #0x44 - add r4, r4, #1 - add sb, ip, #0x22c - b _02055AD4 -_02055A74: - ldrb r0, [lr] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _02055AC4 - mov r5, r7 - mov fp, lr - add r7, r7, #0x44 - mov sl, #4 -_02055A9C: - ldm fp!, {r0, r1, r2, r3} - stm r5!, {r0, r1, r2, r3} - subs sl, sl, #1 - bne _02055A9C - ldr r0, [fp] - str r0, [r5] - lsl r0, r4, #1 - strh r6, [r8, r0] - add r6, r6, #1 - b _02055ACC -_02055AC4: - lsl r0, r4, #1 - strh ip, [r8, r0] -_02055ACC: - add r4, r4, #1 - add lr, lr, #0x44 -_02055AD4: - cmp r4, sb - blt _02055A74 - mov r1, #0 - ldr r0, _02055B1C @ =0x0000022B - b _02055AF0 -_02055AE8: - strb r1, [r7], #0x44 - add r6, r6, #1 -_02055AF0: - cmp r6, r0 - blt _02055AE8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_02055AFC: - lsl r1, r4, #1 - strh r4, [r8, r1] - add r4, r4, #1 - add lr, lr, #0x44 -_02055B0C: - cmp r4, r0 - blt _02055A38 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02055B18: .4byte 0x020B0A48 -_02055B1C: .4byte 0x0000022B - arm_func_end FUN_020559d8 - - arm_func_start FUN_02055b20 -FUN_02055b20: @ 0x02055B20 - push {r3, r4, r5, lr} - ldr r2, _02055B74 @ =0x020B0A48 - mov r1, #0x44 - smulbb r4, r0, r1 - cmp r0, #5 - ldr r5, [r2] - movlt r0, #0 - poplt {r3, r4, r5, pc} - ldrb r1, [r5, r4] - tst r1, #1 - movne r1, #1 - moveq r1, #0 - tst r1, #0xff - moveq r0, #0 - popeq {r3, r4, r5, pc} - bl FUN_020564b0 - cmp r0, #0 - mov r0, #0 - strbeq r0, [r5, r4] - moveq r0, #1 - pop {r3, r4, r5, pc} - .align 2, 0 -_02055B74: .4byte 0x020B0A48 - arm_func_end FUN_02055b20 - - arm_func_start FUN_02055b78 -FUN_02055b78: @ 0x02055B78 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0x58 - ldr r4, _02055CC4 @ =0x020B0A48 - mov lr, #1 - mov r6, r1 - mov r7, r0 - mov ip, #0 - ldr r4, [r4] - mov r1, #0x44 - mov r0, r6 - mov r5, r3 - strb lr, [sp, #0x14] - strb r2, [sp, #0x16] - strb ip, [sp, #0x17] - strb lr, [sp, #0x15] - smlabb r4, r7, r1, r4 - bl GetBaseHp - strh r0, [sp, #0x1e] - mov r0, r6 - mov r1, #0 - bl GetBaseOffensiveStat - strb r0, [sp, #0x20] - mov r0, r6 - mov r1, #1 - bl GetBaseOffensiveStat - strb r0, [sp, #0x21] - mov r0, r6 - mov r1, #0 - bl GetBaseDefensiveStat - strb r0, [sp, #0x22] - mov r0, r6 - mov r1, #1 - bl GetBaseDefensiveStat - strb r0, [sp, #0x23] - mov r0, #0 - mov r2, #1 - strb r0, [sp, #0x1a] - strb r0, [sp, #0x1b] - add r0, sp, #0x28 - mov r1, r6 - strh r2, [sp, #0x1c] - bl FUN_02058eb0 - mov r2, #0 - add r0, sp, #0x36 - mov r1, r6 - strh r6, [sp, #0x18] - str r2, [sp, #0x24] - strb r2, [sp, #0x34] - bl FUN_02053f10 - cmp r5, #0 - beq _02055C58 - add r0, sp, #0x4e - mov r1, r5 - mov r2, #0xa - bl StrncpySimple - b _02055C74 -_02055C58: - add r0, sp, #0 - mov r1, r6 - bl GetNameRaw - add r0, sp, #0x4e - add r1, sp, #0 - mov r2, #0xa - bl FUN_02025314 -_02055C74: - add r6, sp, #0x14 - mov r5, #4 -_02055C7C: - ldm r6!, {r0, r1, r2, r3} - stm r4!, {r0, r1, r2, r3} - subs r5, r5, #1 - bne _02055C7C - ldr r0, [r6] - cmp r7, #0 - str r0, [r4] - cmpne r7, #2 - mov r0, r7 - bne _02055CAC - bl FUN_02056754 - b _02055CB0 -_02055CAC: - bl FUN_02056554 -_02055CB0: - ldr r0, _02055CC8 @ =0x020A3350 - mov r1, r7 - bl DebugPrint0 - add sp, sp, #0x58 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02055CC4: .4byte 0x020B0A48 -_02055CC8: .4byte 0x020A3350 - arm_func_end FUN_02055b78 - - arm_func_start FUN_02055ccc -FUN_02055ccc: @ 0x02055CCC - push {r4, r5, r6, lr} - mov r5, r0 - ldrsh r0, [r5, #4] - bl GetFirstEmptyMemberIdx - mov r4, r0 - mvn r0, #0 - cmp r4, r0 - beq _02055D38 - ldr r1, _02055D40 @ =0x020B0A48 - mov r0, #0x44 - ldr r1, [r1] - mov r6, r5 - smlabb lr, r4, r0, r1 - mov ip, #4 -_02055D04: - ldm r6!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _02055D04 - ldr r0, [r6] - str r0, [lr] - ldrsh r0, [r5, #4] - bl SetPokemonJoined - ldrsh r0, [r5, #4] - cmp r0, #0x214 - ldreq r1, _02055D44 @ =0x0000022B - ldreq r0, _02055D48 @ =0x022B5788 - streq r1, [r0] -_02055D38: - mov r0, r4 - pop {r4, r5, r6, pc} - .align 2, 0 -_02055D40: .4byte 0x020B0A48 -_02055D44: .4byte 0x0000022B -_02055D48: .4byte 0x022B5788 - arm_func_end FUN_02055ccc - - arm_func_start FUN_02055d4c -FUN_02055d4c: @ 0x02055D4C - push {r3, lr} - bl FUN_02055ccc - mvn r1, #0 - cmp r0, r1 - moveq r0, #0 - popeq {r3, pc} - ldr r2, _02055D78 @ =0x020B0A48 - mov r1, #0x44 - ldr r2, [r2] - smlabb r0, r0, r1, r2 - pop {r3, pc} - .align 2, 0 -_02055D78: .4byte 0x020B0A48 - arm_func_end FUN_02055d4c - - arm_func_start FUN_02055d7c -FUN_02055d7c: @ 0x02055D7C - push {r3, r4, r5, lr} - mvn r2, #0 - mov r5, r1 - cmp r0, r2 - popeq {r3, r4, r5, pc} - ldr r2, _02055DCC @ =0x020B0A48 - mov r1, #0x44 - ldr r2, [r2] - mov r4, r5 - smlabb lr, r0, r1, r2 - mov ip, #4 -_02055DA8: - ldm r4!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _02055DA8 - ldr r0, [r4] - str r0, [lr] - ldrsh r0, [r5, #4] - bl SetPokemonJoined - pop {r3, r4, r5, pc} - .align 2, 0 -_02055DCC: .4byte 0x020B0A48 - arm_func_end FUN_02055d7c - - arm_func_start FUN_02055dd0 -FUN_02055dd0: @ 0x02055DD0 - push {r4, r5, lr} - sub sp, sp, #0x4c - ldrb ip, [sp, #0x58] - mov r5, r0 - mov r4, r1 - mov lr, r2 - str r3, [sp] - add r0, sp, #8 - mov r1, r5 - mov r2, r4 - mov r3, lr - str ip, [sp, #4] - bl FUN_02052cf4 - add r0, sp, #8 - bl FUN_02055d4c - add sp, sp, #0x4c - pop {r4, r5, pc} - arm_func_end FUN_02055dd0 - - arm_func_start FUN_02055e14 -FUN_02055e14: @ 0x02055E14 - push {r4, r5, r6, lr} - mov r3, r1 - ldrb r1, [r3] - mov r4, r0 - add r0, r3, #0x14 - and r1, r1, #1 - strh r1, [r4] - ldrb r1, [r3, #1] - add r6, r4, #0x18 - add r5, r3, #0x22 - strb r1, [r4, #4] - ldrb r1, [r3, #2] - add lr, r4, #0x2a - mov ip, #0xc - strb r1, [r4, #5] - ldrb r1, [r3, #3] - strb r1, [r4, #6] - ldrsh r1, [r3, #4] - strh r1, [r4, #8] - ldrb r1, [r3, #6] - strb r1, [r4, #0xa] - ldrb r1, [r3, #7] - strb r1, [r4, #0xb] - ldrsh r1, [r3, #8] - strh r1, [r4, #0xc] - ldrsh r1, [r3, #0xa] - strh r1, [r4, #0xe] - ldrb r1, [r3, #0xc] - strb r1, [r4, #0x10] - ldrb r1, [r3, #0xd] - strb r1, [r4, #0x11] - ldrb r1, [r3, #0xe] - strb r1, [r4, #0x12] - ldrb r1, [r3, #0xf] - strb r1, [r4, #0x13] - ldm r0, {r0, r1, r2} - stm r6, {r0, r1, r2} - ldr r0, [r3, #0x10] - str r0, [r4, #0x14] - ldrb r0, [r3, #0x20] - strb r0, [r4, #0x24] -_02055EB8: - ldrh r0, [r5], #2 - subs ip, ip, #1 - strh r0, [lr], #2 - bne _02055EB8 - add r0, r4, #0x42 - add r1, r3, #0x3a - mov r2, #0xa - bl StrncpySimple - mov r2, #0 - mov r1, r2 -_02055EE0: - add r0, r4, r2 - add r2, r2, #1 - strb r1, [r0, #2] - cmp r2, #2 - blt _02055EE0 - strb r1, [r4, #0x25] - strh r1, [r4, #0x26] - strh r1, [r4, #0x28] - pop {r4, r5, r6, pc} - arm_func_end FUN_02055e14 - - arm_func_start FUN_02055f04 -FUN_02055f04: @ 0x02055F04 - push {r4, r5, r6, lr} - mov r3, r1 - ldrh r1, [r3] - mov ip, r0 - add r0, r3, #0x18 - and r1, r1, #1 - strb r1, [ip] - ldrb r1, [r3, #4] - add r6, ip, #0x14 - add r5, r3, #0x2a - strb r1, [ip, #1] - ldrb r1, [r3, #5] - add r4, ip, #0x22 - mov lr, #0xc - strb r1, [ip, #2] - ldrb r1, [r3, #6] - strb r1, [ip, #3] - ldrsh r1, [r3, #8] - strh r1, [ip, #4] - ldrb r1, [r3, #0xa] - strb r1, [ip, #6] - ldrb r1, [r3, #0xb] - strb r1, [ip, #7] - ldrsh r1, [r3, #0xc] - strh r1, [ip, #8] - ldrsh r1, [r3, #0xe] - strh r1, [ip, #0xa] - ldrb r1, [r3, #0x10] - strb r1, [ip, #0xc] - ldrb r1, [r3, #0x11] - strb r1, [ip, #0xd] - ldrb r1, [r3, #0x12] - strb r1, [ip, #0xe] - ldrb r1, [r3, #0x13] - strb r1, [ip, #0xf] - ldm r0, {r0, r1, r2} - stm r6, {r0, r1, r2} - ldr r0, [r3, #0x14] - str r0, [ip, #0x10] - ldrb r0, [r3, #0x24] - strb r0, [ip, #0x20] -_02055FA8: - ldrh r0, [r5], #2 - subs lr, lr, #1 - strh r0, [r4], #2 - bne _02055FA8 - add r0, ip, #0x3a - add r1, r3, #0x42 - mov r2, #0xa - bl StrncpySimple - pop {r4, r5, r6, pc} - arm_func_end FUN_02055f04 - - arm_func_start FUN_02055fcc -FUN_02055fcc: @ 0x02055FCC - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - bl IsValidTeamMember - cmp r0, #0 - beq _02056068 - mov r0, r4 - bl GetItemMoveId16 - mov r4, r0 - mov r0, r5 - bl GetTeamMember - mov lr, #0 - mov r3, lr - mov ip, #1 - mov r2, #6 - b _02056040 -_0205600C: - smlabb r5, lr, r2, r0 - ldrb r1, [r5, #0x22] - tst r1, #1 - movne r1, ip - moveq r1, r3 - tst r1, #0xff - beq _02056034 - ldrh r1, [r5, #0x24] - cmp r4, r1 - beq _02056048 -_02056034: - add r1, lr, #1 - lsl r1, r1, #0x10 - asr lr, r1, #0x10 -_02056040: - cmp lr, #4 - blt _0205600C -_02056048: - cmp lr, #4 - blt _02056068 - ldrsh r1, [r0, #4] - mov r0, r4 - bl FUN_02053d1c - cmp r0, #0 - movne r0, #1 - popne {r3, r4, r5, pc} -_02056068: - mov r0, #0 - pop {r3, r4, r5, pc} - arm_func_end FUN_02055fcc - - arm_func_start IsMonsterNotNicknamed -IsMonsterNotNicknamed: @ 0x02056070 - ldr ip, _02056080 @ =StrcmpMonsterName - ldrsh r1, [r0, #4] - add r0, r0, #0x3a - bx ip - .align 2, 0 -_02056080: .4byte StrcmpMonsterName - arm_func_end IsMonsterNotNicknamed - - arm_func_start FUN_02056084 -FUN_02056084: @ 0x02056084 - ldr ip, _02056090 @ =FUN_02054f44 - add r1, r1, #0x3a - bx ip - .align 2, 0 -_02056090: .4byte FUN_02054f44 - arm_func_end FUN_02056084 - - arm_func_start FUN_02056094 -FUN_02056094: @ 0x02056094 - ldr ip, _020560A0 @ =FUN_02054fa0 - add r1, r1, #0x3a - bx ip - .align 2, 0 -_020560A0: .4byte FUN_02054fa0 - arm_func_end FUN_02056094 -_020560A4: - .byte 0x01, 0x00, 0x50, 0xE1, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13 - .byte 0xFF, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_020560b8 -FUN_020560b8: @ 0x020560B8 - ldr ip, _020560C4 @ =SetActiveTeam - mov r0, #0 - bx ip - .align 2, 0 -_020560C4: .4byte SetActiveTeam - arm_func_end FUN_020560b8 - - arm_func_start FUN_020560c8 -FUN_020560c8: @ 0x020560C8 - push {r3, r4, r5, r6, r7, lr} - mov lr, #0 - ldr r7, _02056154 @ =0x020B0A48 - mov r1, lr - mvn r0, #0 - mov r2, lr - mov r4, #0x68 - mov r6, #0x1a0 -_020560E8: - mul ip, lr, r6 - mov r3, r2 -_020560F0: - ldr r5, [r7] - add r5, ip, r5 - mla r5, r3, r4, r5 - add r5, r5, #0x9000 - strb r1, [r5, #0x36c] - ldr r5, [r7] - add r5, r5, lr, lsl #3 - add r5, r5, r3, lsl #1 - add r5, r5, #0x9800 - add r3, r3, #1 - strh r0, [r5, #0x56] - cmp r3, #4 - blt _020560F0 - ldr r3, [r7] - add r3, r3, lr, lsl #1 - add r3, r3, #0x9800 - strh r0, [r3, #0x50] - ldr r3, [r7] - add r3, r3, lr - add r3, r3, #0x9000 - add lr, lr, #1 - strb r1, [r3, #0x874] - cmp lr, #3 - blt _020560E8 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02056154: .4byte 0x020B0A48 - arm_func_end FUN_020560c8 - - arm_func_start FUN_02056158 -FUN_02056158: @ 0x02056158 - push {r3, lr} - mov lr, #0 - ldr r3, _020561BC @ =0x020B0A48 - mov r0, lr - mvn ip, #0 - mov r1, #0x68 -_02056170: - ldr r2, [r3] - mla r2, lr, r1, r2 - add r2, r2, #0x9000 - strb r0, [r2, #0x50c] - ldr r2, [r3] - add r2, r2, lr, lsl #1 - add r2, r2, #0x9800 - add lr, lr, #1 - strh ip, [r2, #0x5e] - cmp lr, #4 - blt _02056170 - ldr r2, _020561BC @ =0x020B0A48 - ldr r1, [r2] - add r1, r1, #0x9800 - strh ip, [r1, #0x52] - ldr r1, [r2] - add r1, r1, #0x9000 - strb r0, [r1, #0x875] - pop {r3, pc} - .align 2, 0 -_020561BC: .4byte 0x020B0A48 - arm_func_end FUN_02056158 - - arm_func_start FUN_020561c0 -FUN_020561c0: @ 0x020561C0 - push {r3, lr} - mov lr, #0 - ldr r3, _02056224 @ =0x020B0A48 - mov r0, lr - mvn ip, #0 - mov r1, #0x68 -_020561D8: - ldr r2, [r3] - mla r2, lr, r1, r2 - add r2, r2, #0x9000 - strb r0, [r2, #0x6ac] - ldr r2, [r3] - add r2, r2, lr, lsl #1 - add r2, r2, #0x9800 - add lr, lr, #1 - strh ip, [r2, #0x66] - cmp lr, #4 - blt _020561D8 - ldr r2, _02056224 @ =0x020B0A48 - ldr r1, [r2] - add r1, r1, #0x9800 - strh ip, [r1, #0x54] - ldr r1, [r2] - add r1, r1, #0x9000 - strb r0, [r1, #0x876] - pop {r3, pc} - .align 2, 0 -_02056224: .4byte 0x020B0A48 - arm_func_end FUN_020561c0 - - arm_func_start CheckTeamMemberIdx -CheckTeamMemberIdx: @ 0x02056228 - ldr r1, _0205625C @ =0x000055AA - cmp r0, r1 - moveq r0, #1 - bxeq lr - ldr r1, _02056260 @ =0x00005AA5 - cmp r0, r1 - moveq r0, #1 - bxeq lr - cmp r0, #0 - movlt r0, #1 - movge r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0205625C: .4byte 0x000055AA -_02056260: .4byte 0x00005AA5 - arm_func_end CheckTeamMemberIdx - - arm_func_start FUN_02056264 -FUN_02056264: @ 0x02056264 - ldr r1, _0205628C @ =0x000055AA - cmp r0, r1 - moveq r0, #1 - bxeq lr - ldr r1, _02056290 @ =0x00005AA5 - cmp r0, r1 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0205628C: .4byte 0x000055AA -_02056290: .4byte 0x00005AA5 - arm_func_end FUN_02056264 - - arm_func_start IsMonsterIdInNormalRange -IsMonsterIdInNormalRange: @ 0x02056294 - cmp r0, #0 - blt _020562AC - ldr r1, _020562B4 @ =0x0000022B - cmp r0, r1 - movlt r0, #1 - bxlt lr -_020562AC: - mov r0, #0 - bx lr - .align 2, 0 -_020562B4: .4byte 0x0000022B - arm_func_end IsMonsterIdInNormalRange -_020562B8: - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0xB3 - .byte 0x00, 0x00, 0xA0, 0xA3, 0xFF, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start SetActiveTeam -SetActiveTeam: @ 0x020562CC - ldr r3, _02056314 @ =0x020B0A48 - mov r2, #0x1a0 - ldr r1, [r3] - add r1, r1, #0x9000 - strb r0, [r1, #0x877] - ldr ip, [r3] - add r1, ip, #0x36c - add r1, r1, #0x9000 - mla r2, r0, r2, r1 - add r1, ip, #0x9000 - str r2, [r1, #0x84c] - ldr r2, [r3] - add r1, r2, #0x56 - add r1, r1, #0x9800 - add r1, r1, r0, lsl #3 - add r0, r2, #0x9000 - str r1, [r0, #0x870] - bx lr - .align 2, 0 -_02056314: .4byte 0x020B0A48 - arm_func_end SetActiveTeam - - arm_func_start FUN_02056318 -FUN_02056318: @ 0x02056318 - ldr r1, _02056338 @ =0x020B0A48 - ldr r2, [r1] - add r1, r2, #0x9000 - ldrb r1, [r1, #0x877] - add r1, r2, r1 - add r1, r1, #0x9000 - strb r0, [r1, #0x874] - bx lr - .align 2, 0 -_02056338: .4byte 0x020B0A48 - arm_func_end FUN_02056318 - - arm_func_start FUN_0205633c -FUN_0205633c: @ 0x0205633C - ldr r0, _0205635C @ =0x020B0A48 - ldr r1, [r0] - add r0, r1, #0x9000 - ldrb r0, [r0, #0x877] - add r0, r1, r0 - add r0, r0, #0x9000 - ldrb r0, [r0, #0x874] - bx lr - .align 2, 0 -_0205635C: .4byte 0x020B0A48 - arm_func_end FUN_0205633c - - arm_func_start FUN_02056360 -FUN_02056360: @ 0x02056360 - ldr r0, _02056388 @ =0x020B0A48 - ldr r0, [r0] - add r0, r0, #0x9000 - ldrb r1, [r0, #0x874] - cmp r1, #0 - ldrbeq r0, [r0, #0x875] - cmpeq r0, #0 - movne r0, #1 - moveq r0, #0 - bx lr - .align 2, 0 -_02056388: .4byte 0x020B0A48 - arm_func_end FUN_02056360 - - arm_func_start GetActiveTeamMember -GetActiveTeamMember: @ 0x0205638C - mvn r1, #0 - cmp r0, r1 - moveq r0, #0 - bxeq lr - ldr r1, _020563B8 @ =0x020B0A48 - mov r2, #0x68 - ldr r1, [r1] - add r1, r1, #0x9000 - ldr r1, [r1, #0x84c] - smlabb r0, r0, r2, r1 - bx lr - .align 2, 0 -_020563B8: .4byte 0x020B0A48 - arm_func_end GetActiveTeamMember - - arm_func_start GetActiveRosterIndex -GetActiveRosterIndex: @ 0x020563BC - mvn r1, #0 - cmp r0, r1 - beq _02056404 - ldr r1, _0205640C @ =0x020B0A48 - mov ip, #0 - ldr r1, [r1] - add r1, r1, #0x9000 - b _020563FC -_020563DC: - ldr r3, [r1, #0x870] - lsl r2, ip, #1 - ldrsh r2, [r3, r2] - cmp r0, r2 - lsleq r0, ip, #0x10 - asreq r0, r0, #0x10 - bxeq lr - add ip, ip, #1 -_020563FC: - cmp ip, #4 - blt _020563DC -_02056404: - mvn r0, #0 - bx lr - .align 2, 0 -_0205640C: .4byte 0x020B0A48 - arm_func_end GetActiveRosterIndex - - arm_func_start FUN_02056410 -FUN_02056410: @ 0x02056410 - mvn r1, #0 - cmp r0, r1 - beq _02056454 - ldr r1, _0205645C @ =0x020B0A48 - mov ip, #0 - ldr r1, [r1] - add r1, r1, #0x9000 - b _0205644C -_02056430: - ldr r3, [r1, #0x870] - lsl r2, ip, #1 - ldrsh r2, [r3, r2] - cmp r0, r2 - moveq r0, #1 - bxeq lr - add ip, ip, #1 -_0205644C: - cmp ip, #4 - blt _02056430 -_02056454: - mov r0, #0 - bx lr - .align 2, 0 -_0205645C: .4byte 0x020B0A48 - arm_func_end FUN_02056410 - - arm_func_start FUN_02056460 -FUN_02056460: @ 0x02056460 - mvn r2, #0 - cmp r0, r2 - beq _020564A4 - ldr r2, _020564AC @ =0x020B0A48 - mov r3, #0 - ldr r2, [r2] - add r2, r2, r1, lsl #3 - b _0205649C -_02056480: - add r1, r2, r3, lsl #1 - add r1, r1, #0x9800 - ldrsh r1, [r1, #0x56] - cmp r0, r1 - moveq r0, #1 - bxeq lr - add r3, r3, #1 -_0205649C: - cmp r3, #4 - blt _02056480 -_020564A4: - mov r0, #0 - bx lr - .align 2, 0 -_020564AC: .4byte 0x020B0A48 - arm_func_end FUN_02056460 - - arm_func_start FUN_020564b0 -FUN_020564b0: @ 0x020564B0 - mvn r3, #0 - cmp r0, r3 - beq _020564F8 - ldr r1, _02056500 @ =0x020B0A48 - ldr ip, [r1] - add r1, ip, #0x9000 - ldrb r2, [r1, #0x877] - add r2, ip, r2, lsl #1 - add r2, r2, #0x9800 - ldrsh ip, [r2, #0x50] - cmp ip, r3 - beq _020564F8 - ldr r2, [r1, #0x870] - lsl r1, ip, #1 - ldrsh r1, [r2, r1] - cmp r0, r1 - moveq r0, #1 - bxeq lr -_020564F8: - mov r0, #0 - bx lr - .align 2, 0 -_02056500: .4byte 0x020B0A48 - arm_func_end FUN_020564b0 - - arm_func_start FUN_02056504 -FUN_02056504: @ 0x02056504 - mvn r3, #0 - cmp r0, r3 - beq _02056548 - ldr r2, _02056550 @ =0x020B0A48 - ldr ip, [r2] - add r2, ip, r1, lsl #1 - add r2, r2, #0x9800 - ldrsh r2, [r2, #0x50] - cmp r2, r3 - beq _02056548 - add r1, ip, r1, lsl #3 - add r1, r1, r2, lsl #1 - add r1, r1, #0x9800 - ldrsh r1, [r1, #0x56] - cmp r0, r1 - moveq r0, #1 - bxeq lr -_02056548: - mov r0, #0 - bx lr - .align 2, 0 -_02056550: .4byte 0x020B0A48 - arm_func_end FUN_02056504 - - arm_func_start FUN_02056554 -FUN_02056554: @ 0x02056554 - push {r4, lr} - mvn r1, #0 - cmp r0, r1 - beq _020565E8 - ldr r1, _020565F0 @ =0x020B0A48 - mov ip, #0 - ldr lr, [r1] - add r1, lr, #0x9000 - b _02056598 -_02056578: - ldr r3, [r1, #0x870] - lsl r2, ip, #1 - ldrsh r2, [r3, r2] - cmp r0, r2 - lsleq r0, ip, #0x10 - asreq r0, r0, #0x10 - popeq {r4, pc} - add ip, ip, #1 -_02056598: - cmp ip, #4 - blt _02056578 - mov r4, #0 - add r1, lr, #0x9000 - mvn r2, #0 - b _020565E0 -_020565B0: - ldr r3, [r1, #0x870] - lsl ip, r4, #1 - ldrsh r3, [r3, ip] - cmp r3, r2 - bne _020565DC - add r1, lr, #0x9000 - ldr r2, [r1, #0x870] - lsl r1, r4, #0x10 - strh r0, [r2, ip] - asr r0, r1, #0x10 - pop {r4, pc} -_020565DC: - add r4, r4, #1 -_020565E0: - cmp r4, #4 - blt _020565B0 -_020565E8: - mvn r0, #0 - pop {r4, pc} - .align 2, 0 -_020565F0: .4byte 0x020B0A48 - arm_func_end FUN_02056554 -_020565F4: - .byte 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x20, 0xE0, 0xE3, 0x02, 0x00, 0x50, 0xE1 - .byte 0x21, 0x00, 0x00, 0x0A, 0x88, 0x20, 0x9F, 0xE5, 0x00, 0xC0, 0xA0, 0xE3, 0x00, 0xE0, 0x92, 0xE5 - .byte 0x81, 0x31, 0x8E, 0xE0, 0x07, 0x00, 0x00, 0xEA, 0x8C, 0x20, 0x83, 0xE0, 0x26, 0x2B, 0x82, 0xE2 - .byte 0xF6, 0x25, 0xD2, 0xE1, 0x02, 0x00, 0x50, 0xE1, 0x0C, 0x08, 0xA0, 0x01, 0x40, 0x08, 0xA0, 0x01 - .byte 0x10, 0x80, 0xBD, 0x08, 0x01, 0xC0, 0x8C, 0xE2, 0x04, 0x00, 0x5C, 0xE3, 0xF5, 0xFF, 0xFF, 0xBA - .byte 0x00, 0x40, 0xA0, 0xE3, 0x81, 0xC1, 0x8E, 0xE0, 0x00, 0x30, 0xE0, 0xE3, 0x0C, 0x00, 0x00, 0xEA - .byte 0x84, 0x20, 0x8C, 0xE0, 0x26, 0x2B, 0x82, 0xE2, 0xF6, 0x25, 0xD2, 0xE1, 0x03, 0x00, 0x52, 0xE1 - .byte 0x06, 0x00, 0x00, 0x1A, 0x81, 0x11, 0x8E, 0xE0, 0x84, 0x10, 0x81, 0xE0, 0x26, 0x1B, 0x81, 0xE2 - .byte 0x04, 0x28, 0xA0, 0xE1, 0xB6, 0x05, 0xC1, 0xE1, 0x42, 0x08, 0xA0, 0xE1, 0x10, 0x80, 0xBD, 0xE8 - .byte 0x01, 0x40, 0x84, 0xE2, 0x04, 0x00, 0x54, 0xE3, 0xF0, 0xFF, 0xFF, 0xBA, 0x00, 0x00, 0xE0, 0xE3 - .byte 0x10, 0x80, 0xBD, 0xE8, 0x48, 0x0A, 0x0B, 0x02, 0x00, 0x20, 0xE0, 0xE3, 0x02, 0x00, 0x51, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x14, 0x20, 0x9F, 0xE5, 0x80, 0x30, 0xA0, 0xE1, 0x00, 0x00, 0x92, 0xE5 - .byte 0x09, 0x0A, 0x80, 0xE2, 0x70, 0x08, 0x90, 0xE5, 0xB3, 0x10, 0x80, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x48, 0x0A, 0x0B, 0x02 - - arm_func_start FUN_020566c4 -FUN_020566c4: @ 0x020566C4 - push {r3, lr} - mvn r1, #0 - cmp r0, r1 - beq _02056748 - ldr r2, _02056750 @ =0x020B0A48 - mov r1, #0 - ldr lr, [r2] - add r2, lr, #0x9000 - b _02056740 -_020566E8: - ldr r3, [r2, #0x870] - lsl ip, r1, #1 - ldrsh r3, [r3, ip] - cmp r0, r3 - bne _0205673C - add r0, lr, #0x9000 - ldr r2, [r0, #0x870] - mvn r3, #0 - ldr r0, _02056750 @ =0x020B0A48 - strh r3, [r2, ip] - ldr r2, [r0] - add r0, r2, #0x9000 - ldrb r0, [r0, #0x877] - add r0, r2, r0, lsl #1 - add r0, r0, #0x9800 - ldrsh r2, [r0, #0x50] - cmp r1, r2 - strheq r3, [r0, #0x50] - lsl r0, r1, #0x10 - asr r0, r0, #0x10 - pop {r3, pc} -_0205673C: - add r1, r1, #1 -_02056740: - cmp r1, #4 - blt _020566E8 -_02056748: - mvn r0, #0 - pop {r3, pc} - .align 2, 0 -_02056750: .4byte 0x020B0A48 - arm_func_end FUN_020566c4 - - arm_func_start FUN_02056754 -FUN_02056754: @ 0x02056754 - push {r4, lr} - mvn r1, #0 - cmp r0, r1 - beq _02056824 - ldr r1, _0205682C @ =0x020B0A48 - mov ip, #0 - ldr lr, [r1] - add r1, lr, #0x9000 - b _020567B8 -_02056778: - ldr r3, [r1, #0x870] - lsl r2, ip, #1 - ldrsh r2, [r3, r2] - cmp r0, r2 - bne _020567B4 - ldr r1, _0205682C @ =0x020B0A48 - lsl r0, ip, #0x10 - ldr r2, [r1] - asr r0, r0, #0x10 - add r1, r2, #0x9000 - ldrb r1, [r1, #0x877] - add r1, r2, r1, lsl #1 - add r1, r1, #0x9800 - strh r0, [r1, #0x50] - pop {r4, pc} -_020567B4: - add ip, ip, #1 -_020567B8: - cmp ip, #4 - blt _02056778 - mov r4, #0 - add r1, lr, #0x9000 - mvn r2, #0 - b _0205681C -_020567D0: - ldr r3, [r1, #0x870] - lsl ip, r4, #1 - ldrsh r3, [r3, ip] - cmp r3, r2 - bne _02056818 - add r1, lr, #0x9000 - ldr r2, [r1, #0x870] - ldr r1, _0205682C @ =0x020B0A48 - strh r0, [r2, ip] - ldr r2, [r1] - lsl r0, r4, #0x10 - add r1, r2, #0x9000 - ldrb r1, [r1, #0x877] - asr r0, r0, #0x10 - add r1, r2, r1, lsl #1 - add r1, r1, #0x9800 - strh r0, [r1, #0x50] - pop {r4, pc} -_02056818: - add r4, r4, #1 -_0205681C: - cmp r4, #4 - blt _020567D0 -_02056824: - mvn r0, #0 - pop {r4, pc} - .align 2, 0 -_0205682C: .4byte 0x020B0A48 - arm_func_end FUN_02056754 - - arm_func_start FUN_02056830 -FUN_02056830: @ 0x02056830 - push {r3, r4, r5, r6, r7, lr} - mov r7, #0 - mov r6, r7 - mov r4, r7 - mov r5, #1 -_02056844: - mov r0, r6 - bl GetActiveTeamMember - ldrb r0, [r0] - tst r0, #1 - movne r0, r5 - moveq r0, r4 - tst r0, #0xff - add r0, r6, #1 - lsl r0, r0, #0x10 - asr r6, r0, #0x10 - addeq r7, r7, #1 - cmp r6, #4 - blt _02056844 - mov r0, r7 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_02056830 -_02056880: - .byte 0x18, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x09, 0x0A, 0x81, 0xE2, 0x77, 0x08, 0xD0, 0xE5 - .byte 0x80, 0x00, 0x81, 0xE0, 0x26, 0x0B, 0x80, 0xE2, 0xF0, 0x05, 0xD0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x48, 0x0A, 0x0B, 0x02 - - arm_func_start FUN_020568a4 -FUN_020568a4: @ 0x020568A4 - ldr r1, _020568D8 @ =0x020B0A48 - mvn r0, #0 - ldr r3, [r1] - add r1, r3, #0x9000 - ldrb r2, [r1, #0x877] - add r2, r3, r2, lsl #1 - add r2, r2, #0x9800 - ldrsh r2, [r2, #0x50] - cmp r2, r0 - ldrne r1, [r1, #0x870] - lslne r0, r2, #1 - ldrshne r0, [r1, r0] - bx lr - .align 2, 0 -_020568D8: .4byte 0x020B0A48 - arm_func_end FUN_020568a4 - - arm_func_start FUN_020568dc -FUN_020568dc: @ 0x020568DC - ldr r1, _02056910 @ =0x020B0A48 - mvn r3, #0 - ldr r2, [r1] - add r1, r2, r0, lsl #1 - add r1, r1, #0x9800 - ldrsh r1, [r1, #0x50] - cmp r1, r3 - addne r0, r2, r0, lsl #3 - addne r0, r0, r1, lsl #1 - addne r0, r0, #0x9800 - ldrshne r3, [r0, #0x56] - mov r0, r3 - bx lr - .align 2, 0 -_02056910: .4byte 0x020B0A48 - arm_func_end FUN_020568dc - - arm_func_start FUN_02056914 -FUN_02056914: @ 0x02056914 - ldr r0, _0205695C @ =0x020B0A48 - mvn r2, #0 - ldr ip, [r0] - add r0, ip, #0x9000 - ldrb r1, [r0, #0x877] - add r1, ip, r1, lsl #1 - add r1, r1, #0x9800 - ldrsh r3, [r1, #0x50] - cmp r3, r2 - ldrne r1, [r0, #0x870] - lslne r0, r3, #1 - ldrshne r1, [r1, r0] - cmpne r1, r2 - moveq r0, #0 - bxeq lr - mov r0, #0x44 - smlabb r0, r1, r0, ip - bx lr - .align 2, 0 -_0205695C: .4byte 0x020B0A48 - arm_func_end FUN_02056914 - - arm_func_start FUN_02056960 -FUN_02056960: @ 0x02056960 - push {r3, r4, r5, lr} - mov r0, #0 - ldr r2, _020569C8 @ =0x020B0A48 - mov r5, r0 - mvn ip, #0 - mov r3, #1 -_02056978: - ldr r1, [r2] - lsl lr, r5, #1 - add r1, r1, #0x9000 - ldr r4, [r1, #0x870] - add r5, r5, #1 - ldrsh r1, [r4, lr] - cmp r1, ip - movne r0, r3 - strhne ip, [r4, lr] - cmp r5, #4 - blt _02056978 - ldr r1, _020569C8 @ =0x020B0A48 - mvn r2, #0 - ldr r3, [r1] - add r1, r3, #0x9000 - ldrb r1, [r1, #0x877] - add r1, r3, r1, lsl #1 - add r1, r1, #0x9800 - strh r2, [r1, #0x50] - pop {r3, r4, r5, pc} - .align 2, 0 -_020569C8: .4byte 0x020B0A48 - arm_func_end FUN_02056960 - - arm_func_start SetTeamSetupHeroAndPartnerOnly -SetTeamSetupHeroAndPartnerOnly: @ 0x020569CC - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - bl GetMainCharacter1MemberIdx - mov r5, r0 - bl GetMainCharacter2MemberIdx - mov r6, r0 - bl GetMainCharacter3MemberIdx - mov r8, #0 - ldr r1, _02056AAC @ =0x020B0A48 - mov r7, r0 - ldr r1, [r1] - mov sl, r8 - add r0, r1, #0x9000 - ldr sb, [r0, #0x84c] - mov fp, r8 - mov r4, #1 -_02056A08: - ldrb r0, [sb] - tst r0, #1 - movne r0, r4 - moveq r0, fp - tst r0, #0xff - ldrshne r0, [sb, #8] - cmpne r0, r5 - cmpne r0, r6 - cmpne r0, r7 - beq _02056A40 - lsl r0, sl, #0x10 - asr r0, r0, #0x10 - mov r8, #1 - bl FUN_02058138 -_02056A40: - add sl, sl, #1 - cmp sl, #4 - add sb, sb, #0x68 - blt _02056A08 - bl FUN_02056960 - mvn r0, #0 - cmp r5, r0 - beq _02056A68 - mov r0, r5 - bl FUN_02056754 -_02056A68: - mvn r0, #0 - cmp r6, r0 - beq _02056A7C - mov r0, r6 - bl FUN_02056554 -_02056A7C: - mvn r0, #0 - cmp r7, r0 - beq _02056A90 - mov r0, r7 - bl FUN_02056554 -_02056A90: - ldr r0, _02056AAC @ =0x020B0A48 - ldr r0, [r0] - add r0, r0, #0x9000 - ldrb r0, [r0, #0x877] - bl FUN_02057464 - mov r0, r8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02056AAC: .4byte 0x020B0A48 - arm_func_end SetTeamSetupHeroAndPartnerOnly - - arm_func_start SetTeamSetupHeroOnly -SetTeamSetupHeroOnly: @ 0x02056AB0 - push {r4, r5, r6, r7, r8, sb, sl, lr} - bl FUN_020568a4 - ldr r1, _02056B54 @ =0x020B0A48 - mov r7, r0 - mov r8, #0 - ldr r1, [r1] - mov r6, #1 - add r0, r1, #0x9000 - ldr sb, [r0, #0x84c] - mov sl, r8 - mov r5, r8 - mov r4, r6 -_02056AE0: - ldrb r0, [sb] - tst r0, #1 - movne r0, r6 - moveq r0, r5 - tst r0, #0xff - ldrshne r0, [sb, #8] - cmpne r0, r7 - beq _02056B10 - lsl r0, sl, #0x10 - asr r0, r0, #0x10 - mov r8, r4 - bl FUN_02058138 -_02056B10: - add sl, sl, #1 - cmp sl, #4 - add sb, sb, #0x68 - blt _02056AE0 - bl FUN_02056960 - mvn r0, #0 - cmp r7, r0 - beq _02056B38 - mov r0, r7 - bl FUN_02056754 -_02056B38: - ldr r0, _02056B54 @ =0x020B0A48 - ldr r0, [r0] - add r0, r0, #0x9000 - ldrb r0, [r0, #0x877] - bl FUN_02057464 - mov r0, r8 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_02056B54: .4byte 0x020B0A48 - arm_func_end SetTeamSetupHeroOnly - - arm_func_start FUN_02056b58 -FUN_02056b58: @ 0x02056B58 - push {r3, lr} - ldr r2, _02056BD0 @ =0x020B0A48 - ldr ip, [r2] - add r0, ip, #0x9000 - ldrb r3, [r0, #0x877] - cmp r3, #2 - popne {r3, pc} - add r0, ip, #0x9800 - ldrsh r1, [r0, #0x50] - add r0, ip, r3, lsl #1 - add r0, r0, #0x9800 - strh r1, [r0, #0x50] - mov lr, #0 -_02056B8C: - ldr r1, [r2] - lsl ip, lr, #1 - add r0, r1, lr, lsl #1 - add r0, r0, #0x9800 - add r1, r1, #0x9000 - ldrsh r3, [r0, #0x56] - ldr r0, [r1, #0x870] - add lr, lr, #1 - strh r3, [r0, ip] - cmp lr, #4 - blt _02056B8C - ldr r0, _02056BD0 @ =0x020B0A48 - ldr r0, [r0] - add r0, r0, #0x9000 - ldrb r0, [r0, #0x877] - bl FUN_02057464 - pop {r3, pc} - .align 2, 0 -_02056BD0: .4byte 0x020B0A48 - arm_func_end FUN_02056b58 - - arm_func_start FUN_02056bd4 -FUN_02056bd4: @ 0x02056BD4 - push {r3, lr} - ldr r0, _02056C1C @ =0x020B0A48 - ldr r0, [r0] - add r0, r0, #0x9000 - ldrb r0, [r0, #0x877] - cmp r0, #2 - popne {r3, pc} - bl FUN_02056960 - bl GetHeroMemberIdx - bl FUN_02056754 - bl GetPartnerMemberIdx - bl FUN_02056554 - ldr r0, _02056C1C @ =0x020B0A48 - ldr r0, [r0] - add r0, r0, #0x9000 - ldrb r0, [r0, #0x877] - bl FUN_02057464 - pop {r3, pc} - .align 2, 0 -_02056C1C: .4byte 0x020B0A48 - arm_func_end FUN_02056bd4 - - arm_func_start GetPartyMembers -GetPartyMembers: @ 0x02056C20 - push {r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #8 - mov r5, r0 - bl FUN_020568a4 - mov r6, r0 - bl GetMainCharacter1MemberIdx - mov r7, r0 - bl GetMainCharacter2MemberIdx - mov r8, r0 - bl GetMainCharacter3MemberIdx - mov sb, r0 - cmp r5, #0 - mvn r0, #0 - addeq r5, sp, #0 - cmp r6, r0 - mov r4, #0 - mvn r0, #0 - strhne r6, [r5] - addne r4, r4, #1 - cmp r7, r0 - beq _02056C90 - mov r0, r7 - bl FUN_02056410 - cmp r0, #0 - cmpne r7, r6 - lslne r0, r4, #1 - strhne r7, [r5, r0] - addne r4, r4, #1 -_02056C90: - mvn r0, #0 - cmp r8, r0 - beq _02056CB8 - mov r0, r8 - bl FUN_02056410 - cmp r0, #0 - cmpne r8, r6 - lslne r0, r4, #1 - strhne r8, [r5, r0] - addne r4, r4, #1 -_02056CB8: - mvn r0, #0 - cmp sb, r0 - beq _02056CE0 - mov r0, sb - bl FUN_02056410 - cmp r0, #0 - cmpne sb, r6 - lslne r0, r4, #1 - strhne sb, [r5, r0] - addne r4, r4, #1 -_02056CE0: - ldr r0, _02056D6C @ =0x020B0A48 - mov r8, #0 - ldr r0, [r0] - mov r6, r8 - add r0, r0, #0x9000 - ldr sb, [r0, #0x84c] - mov r7, #1 - b _02056D58 -_02056D00: - ldrb r0, [sb] - tst r0, #2 - movne r0, r7 - moveq r0, r6 - tst r0, #0xff - beq _02056D50 - ldrsh sl, [sb, #8] - mov r0, sl - bl FUN_020564b0 - cmp r0, #0 - bne _02056D50 - mov r0, sl - bl IsMainCharacter - cmp r0, #0 - bne _02056D50 - lsl r0, r4, #1 - add r4, r4, #1 - strh sl, [r5, r0] - cmp r4, #4 - bge _02056D60 -_02056D50: - add r8, r8, #1 - add sb, sb, #0x68 -_02056D58: - cmp r8, #4 - blt _02056D00 -_02056D60: - mov r0, r4 - add sp, sp, #8 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_02056D6C: .4byte 0x020B0A48 - arm_func_end GetPartyMembers - - arm_func_start FUN_02056d70 -FUN_02056d70: @ 0x02056D70 - push {r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #8 - movs sl, r0 - ldr r0, _02056E00 @ =0x020B0A48 - mov r6, #0 - ldr r0, [r0] - mov sb, #0 - add r0, r0, #0x9000 - ldr r7, [r0, #0x84c] - addeq sl, sp, #0 - mov r4, r6 - mov r5, #1 -_02056DA0: - ldrb r0, [r7] - tst r0, #2 - movne r0, r5 - moveq r0, r4 - tst r0, #0xff - beq _02056DE4 - ldrsh r8, [r7, #8] - mov r0, r8 - bl IsMonsterIdInNormalRange - cmp r0, #0 - beq _02056DE4 - mov r0, r8 - bl FUN_020564b0 - cmp r0, #0 - lsleq r0, sb, #1 - strheq r8, [sl, r0] - addeq sb, sb, #1 -_02056DE4: - add r6, r6, #1 - cmp r6, #4 - add r7, r7, #0x68 - blt _02056DA0 - mov r0, sb - add sp, sp, #8 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_02056E00: .4byte 0x020B0A48 - arm_func_end FUN_02056d70 - - arm_func_start FUN_02056e04 -FUN_02056e04: @ 0x02056E04 - push {r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #8 - movs sl, r0 - ldr r0, _02056EB4 @ =0x020B0A48 - mov r6, #0 - ldr r0, [r0] - mov sb, #0 - add r0, r0, #0x9000 - ldr r7, [r0, #0x84c] - addeq sl, sp, #0 - mov r4, r6 - mov r5, #1 -_02056E34: - ldrb r0, [r7] - tst r0, #2 - movne r0, r5 - moveq r0, r4 - tst r0, #0xff - beq _02056E98 - ldrsh r8, [r7, #8] - mov r0, r8 - bl IsMonsterIdInNormalRange - cmp r0, #0 - beq _02056E98 - mov r0, r8 - bl FUN_02055410 - cmp r0, #0 - bne _02056E98 - mov r0, r8 - bl FUN_02055474 - cmp r0, #0 - bne _02056E98 - mov r0, r8 - bl FUN_020554d8 - cmp r0, #0 - lsleq r0, sb, #1 - strheq r8, [sl, r0] - addeq sb, sb, #1 -_02056E98: - add r6, r6, #1 - cmp r6, #4 - add r7, r7, #0x68 - blt _02056E34 - mov r0, sb - add sp, sp, #8 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_02056EB4: .4byte 0x020B0A48 - arm_func_end FUN_02056e04 - - arm_func_start FUN_02056eb8 -FUN_02056eb8: @ 0x02056EB8 - push {r4, r5, r6, r7, r8, sb, sl, lr} - ldr r1, _02056F5C @ =0x020B0A48 - mov r5, #0 - ldr r1, [r1] - mov r8, r0 - add r0, r1, #0x9000 - ldr r4, [r0, #0x84c] - mov r6, r5 - mov r7, r5 - mov sb, r5 - mov sl, #1 -_02056EE4: - ldrb r0, [r4] - tst r0, #1 - movne r0, sl - moveq r0, sb - tst r0, #0xff - beq _02056F1C - ldrsh r0, [r4, #8] - bl FUN_02056410 - cmp r0, #0 - beq _02056F1C - ldrsh r0, [r4, #0xc] - bl GetBodySize - add r6, r6, r0 - add r5, r5, #1 -_02056F1C: - add r7, r7, #1 - cmp r7, #4 - add r4, r4, #0x68 - blt _02056EE4 - cmp r5, #4 - movge r0, #0 - popge {r4, r5, r6, r7, r8, sb, sl, pc} - cmp r8, #0 - beq _02056F4C - mov r0, r8 - bl GetBodySize - add r6, r6, r0 -_02056F4C: - cmp r6, #6 - movgt r0, #0 - movle r0, #1 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_02056F5C: .4byte 0x020B0A48 - arm_func_end FUN_02056eb8 - - arm_func_start FUN_02056f60 -FUN_02056f60: @ 0x02056F60 - push {r3, lr} - mvn r1, #0 - cmp r0, r1 - beq _02057000 - ldr r1, _0205700C @ =0x020B0A48 - ldr r3, [r1] - add r1, r3, #0x9000 - ldrb r1, [r1, #0x877] - cmp r1, #0 - bne _02056FB8 - mov r2, #0 - b _02056FAC -_02056F90: - add r1, r3, r2, lsl #1 - add r1, r1, #0x9800 - ldrsh r1, [r1, #0x5e] - cmp r0, r1 - moveq r0, #0 - popeq {r3, pc} - add r2, r2, #1 -_02056FAC: - cmp r2, #4 - blt _02056F90 - b _02056FEC -_02056FB8: - cmp r1, #1 - bne _02056FEC - mov r2, #0 - b _02056FE4 -_02056FC8: - add r1, r3, r2, lsl #1 - add r1, r1, #0x9800 - ldrsh r1, [r1, #0x56] - cmp r0, r1 - moveq r0, #0 - popeq {r3, pc} - add r2, r2, #1 -_02056FE4: - cmp r2, #4 - blt _02056FC8 -_02056FEC: - mov r1, #0x44 - smlabb r0, r0, r1, r3 - ldrsh r0, [r0, #4] - bl FUN_02056eb8 - pop {r3, pc} -_02057000: - mov r0, #0 - bl FUN_02056eb8 - pop {r3, pc} - .align 2, 0 -_0205700C: .4byte 0x020B0A48 - arm_func_end FUN_02056f60 -_02057010: - .byte 0x10, 0x10, 0x9F, 0xE5, 0x10, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x09, 0x1A, 0x81, 0xE2 - .byte 0x77, 0x18, 0xD1, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x48, 0x0A, 0x0B, 0x02, 0x30, 0x70, 0x05, 0x02 - - arm_func_start FUN_02057030 -FUN_02057030: @ 0x02057030 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #8 - mov sb, r1 - mov sl, r0 - mov r0, sb - bl FUN_020568dc - mov r4, r0 - cmp sl, #0 - mvn r0, #0 - addeq sl, sp, #0 - mov r8, #0 - cmp r4, r0 - beq _0205707C - mov r0, r4 - bl IsValidTeamMember - cmp r0, #0 - strhne r4, [sl] - addne r8, r8, #1 - mvneq r4, #0 -_0205707C: - mov r7, #0 - mvn fp, #0 -_02057084: - ldr r0, _0205717C @ =0x020B0A48 - ldr r2, [r0] - add r0, r2, sb, lsl #3 - add r0, r0, r7, lsl #1 - add r0, r0, #0x9800 - ldrsh r5, [r0, #0x56] - cmp r5, fp - cmpne r4, r5 - beq _020570F8 - mov r1, #0x44 - mov r0, r5 - smlabb r6, r5, r1, r2 - bl FUN_02055410 - cmp r0, #0 - bne _020570EC - mov r0, r5 - bl FUN_02055474 - cmp r0, #0 - bne _020570EC - mov r0, r5 - bl FUN_020554d8 - cmp r0, #0 - bne _020570EC - ldrsh r0, [r6, #4] - cmp r0, #0x214 - bne _020570F8 -_020570EC: - lsl r0, r8, #1 - strh r5, [sl, r0] - add r8, r8, #1 -_020570F8: - add r7, r7, #1 - cmp r7, #4 - blt _02057084 - mov r0, #0 - ldr r3, _0205717C @ =0x020B0A48 - mov r4, r0 - mvn r2, #0 -_02057114: - ldr r1, [r3] - add r1, r1, sb, lsl #3 - add r1, r1, r0, lsl #1 - add r1, r1, #0x9800 - ldrsh r6, [r1, #0x56] - cmp r6, r2 - beq _02057164 - mov r5, r4 - b _0205714C -_02057138: - lsl r1, r5, #1 - ldrsh r1, [sl, r1] - cmp r6, r1 - beq _02057154 - add r5, r5, #1 -_0205714C: - cmp r5, r8 - blt _02057138 -_02057154: - cmp r5, r8 - lslge r1, r8, #1 - strhge r6, [sl, r1] - addge r8, r8, #1 -_02057164: - add r0, r0, #1 - cmp r0, #4 - blt _02057114 - mov r0, r8 - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0205717C: .4byte 0x020B0A48 - arm_func_end FUN_02057030 - - arm_func_start FUN_02057180 -FUN_02057180: @ 0x02057180 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x58 - sub sp, sp, #0x400 - add r0, sp, #0 - bl FUN_020559d8 - mov r8, #0 - ldr fp, _020572E0 @ =0x020A3398 - ldr r5, _020572E4 @ =0x020B0A48 - add r6, sp, #0 - mov r7, r8 - mvn r4, #0 -_020571AC: - mov sb, r7 -_020571B0: - ldr r0, [r5] - add r0, r0, r8, lsl #3 - add r0, r0, sb, lsl #1 - add r0, r0, #0x9800 - ldrsh sl, [r0, #0x56] - cmp sl, r4 - beq _02057200 - lsl r0, sl, #1 - ldrsh r3, [r6, r0] - mov r0, fp - mov r1, r8 - mov r2, sl - bl DebugPrint0 - ldr r0, [r5] - lsl r1, sl, #1 - add r0, r0, r8, lsl #3 - add r0, r0, sb, lsl #1 - ldrsh r1, [r6, r1] - add r0, r0, #0x9800 - strh r1, [r0, #0x56] -_02057200: - add sb, sb, #1 - cmp sb, #4 - blt _020571B0 - add r8, r8, #1 - cmp r8, #3 - blt _020571AC - mov sb, #0 -_0205721C: - ldr r0, _020572E4 @ =0x020B0A48 - mov sl, #0 - ldr r0, [r0] - mov r1, #0x1a0 - add r0, r0, #0x36c - add r0, r0, #0x9000 - mla r8, sb, r1, r0 - mov fp, #1 - add r7, sp, #0 - mov r5, sl - mov r6, sl - mvn r4, #0 -_0205724C: - ldrb r0, [r8] - tst r0, #1 - movne r0, fp - moveq r0, #0 - tst r0, #0xff - beq _020572B0 - ldrsh r2, [r8, #8] - ldr r0, _020572E8 @ =0x020A33B8 - mov r1, sb - lsl r3, r2, #1 - ldrsh r3, [r7, r3] - bl DebugPrint0 - ldrsh r0, [r8, #8] - lsl r1, r0, #1 - ldrsh r1, [r7, r1] - cmp r1, r4 - strbeq r6, [r8] - beq _020572B0 - bl IsMonsterIdInNormalRange - cmp r0, #0 - ldrshne r0, [r8, #8] - lslne r0, r0, #1 - ldrshne r0, [r7, r0] - strhne r0, [r8, #8] - strbeq r5, [r8] -_020572B0: - add sl, sl, #1 - cmp sl, #4 - add r8, r8, #0x68 - blt _0205724C - and r0, sb, #0xff - bl FUN_02057464 - add sb, sb, #1 - cmp sb, #3 - blt _0205721C - add sp, sp, #0x58 - add sp, sp, #0x400 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_020572E0: .4byte 0x020A3398 -_020572E4: .4byte 0x020B0A48 -_020572E8: .4byte 0x020A33B8 - arm_func_end FUN_02057180 - - arm_func_start FUN_020572ec -FUN_020572ec: @ 0x020572EC - ldr r0, _02057304 @ =0x020B0A48 - ldr ip, _02057308 @ =FUN_0205730c - ldr r0, [r0] - add r0, r0, #0x9000 - ldrb r0, [r0, #0x877] - bx ip - .align 2, 0 -_02057304: .4byte 0x020B0A48 -_02057308: .4byte FUN_0205730c - arm_func_end FUN_020572ec - - arm_func_start FUN_0205730c -FUN_0205730c: @ 0x0205730C - push {r4, r5, r6, r7, r8, lr} - ldr r1, _0205739C @ =0x020B0A48 - mov r4, r0 - ldr r0, [r1] - mov r8, #0 - add r0, r0, #0x36c - mov r1, #0x1a0 - add r0, r0, #0x9000 - mla r7, r4, r1, r0 - mov r5, r8 - mov r6, #1 -_02057338: - ldrb r0, [r7] - tst r0, #1 - movne r0, r6 - moveq r0, r5 - tst r0, #0xff - beq _02057388 - ldrsh r0, [r7, #8] - bl IsMonsterIdInNormalRange - cmp r0, #0 - beq _02057388 - ldrsh r0, [r7, #8] - bl IsValidTeamMember - cmp r0, #0 - beq _02057388 - ldrsh r1, [r7, #8] - lsl r2, r8, #0x10 - mov r0, r7 - mov r3, r4 - asr r2, r2, #0x10 - bl FUN_02053174 -_02057388: - add r8, r8, #1 - cmp r8, #4 - add r7, r7, #0x68 - blt _02057338 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0205739C: .4byte 0x020B0A48 - arm_func_end FUN_0205730c - - arm_func_start FUN_020573a0 -FUN_020573a0: @ 0x020573A0 - ldr r0, _020573B8 @ =0x020B0A48 - ldr ip, _020573BC @ =FUN_020573C0 - ldr r0, [r0] - add r0, r0, #0x9000 - ldrb r0, [r0, #0x877] - bx ip - .align 2, 0 -_020573B8: .4byte 0x020B0A48 -_020573BC: .4byte FUN_020573C0 - arm_func_end FUN_020573a0 - - arm_func_start FUN_020573C0 -FUN_020573C0: @ 0x020573C0 - push {r3, r4, r5, r6, r7, lr} - ldr r1, _02057440 @ =0x020B0A48 - mov r4, #0 - ldr r1, [r1] - mov r2, #0x1a0 - add r1, r1, #0x36c - add r1, r1, #0x9000 - mla r7, r0, r2, r1 - mov r5, r4 - mov r6, #1 -_020573E8: - ldrb r0, [r7] - tst r0, #1 - movne r0, r6 - moveq r0, r5 - tst r0, #0xff - beq _0205742C - ldrsh r0, [r7, #8] - bl IsMonsterIdInNormalRange - cmp r0, #0 - beq _0205742C - ldrsh r0, [r7, #8] - bl IsValidTeamMember - cmp r0, #0 - beq _0205742C - ldrsh r0, [r7, #8] - mov r1, r7 - bl FUN_0205349c -_0205742C: - add r4, r4, #1 - cmp r4, #4 - add r7, r7, #0x68 - blt _020573E8 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02057440: .4byte 0x020B0A48 - arm_func_end FUN_020573C0 -_02057444: - .byte 0x10, 0x00, 0x9F, 0xE5, 0x10, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x09, 0x0A, 0x80, 0xE2, 0x77, 0x08, 0xD0, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x48, 0x0A, 0x0B, 0x02 - .byte 0x64, 0x74, 0x05, 0x02 - - arm_func_start FUN_02057464 -FUN_02057464: @ 0x02057464 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x8c - ldr r1, _020577B4 @ =0x020B0A48 - mov sl, #0 - ldr r2, [r1] - mov r5, r0 - add r0, r2, r5, lsl #1 - add r0, r0, #0x9800 - ldrsh r1, [r0, #0x50] - mvn r4, #0 - mov fp, sl - cmp r1, r4 - addne r0, r2, r5, lsl #3 - addne r0, r0, r1, lsl #1 - addne r0, r0, #0x9800 - ldrshne r4, [r0, #0x56] - add r0, r2, #0x36c - add r1, r0, #0x9000 - mov r0, #0x1a0 - mla sb, r5, r0, r1 - mov r6, #1 - add r7, sp, #0x1c - mvn r8, #0 -_020574C0: - ldrb r0, [sb] - lsl r1, sl, #1 - strh r8, [r7, r1] - tst r0, #1 - movne r0, r6 - moveq r0, fp - tst r0, #0xff - beq _02057514 - ldrsh r0, [sb, #8] - bl IsMonsterIdInNormalRange - cmp r0, #0 - beq _02057514 - ldrsh r0, [sb, #8] - bl IsValidTeamMember - cmp r0, #0 - ldrshne r1, [sb, #8] - lslne r0, sl, #1 - strhne r1, [r7, r0] - bne _02057514 - ldrsh r0, [sb, #8] - bl FUN_020566c4 -_02057514: - add sl, sl, #1 - cmp sl, #4 - add sb, sb, #0x68 - blt _020574C0 - add r0, sp, #0x14 - mov r1, r5 - bl FUN_02057030 - str r0, [sp, #0xc] - ldr r0, _020577B8 @ =0x020A33D4 - ldr r2, [sp, #0xc] - mov r1, r5 - bl DebugPrint0 - mov r0, #0x1a0 - ldr r1, _020577B4 @ =0x020B0A48 - mov r7, #0 - mul r2, r5, r0 - ldr r1, [r1] - mov sl, r7 - add r0, r1, #0x36c - add r0, r0, #0x9000 - add r8, r0, r2 - add r0, r1, r2 - str r0, [sp, #8] - b _0205767C -_02057574: - add r0, sp, #0x14 - lsl r1, sl, #1 - ldrsh r0, [r0, r1] - mov sb, r8 - mov r6, #0 - str r0, [sp] - mov r0, r0 - cmp r4, r0 - lsleq r0, sl, #0x10 - asreq r7, r0, #0x10 - add r2, sp, #0x1c - b _020575C0 -_020575A4: - lsl r0, r6, #1 - ldrsh r1, [r2, r0] - ldr r0, [sp] - cmp r1, r0 - beq _020575C8 - add r6, r6, #1 - add sb, sb, #0x68 -_020575C0: - cmp r6, #4 - blt _020575A4 -_020575C8: - cmp r6, #4 - bge _02057678 - cmp sl, r6 - beq _02057678 - ldr r0, [sp, #8] - mov r1, #0x68 - mla r0, sl, r1, r0 - str r0, [sp, #4] - add r0, r0, #0x36c - add ip, sp, #0x24 - add lr, r0, #0x9000 - mov fp, #6 -_020575F8: - subs fp, fp, #1 - ldm lr!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - bne _020575F8 - ldr r0, [sp, #4] - add r2, r0, #0x36c - ldm lr, {r0, r1} - stm ip, {r0, r1} - mov ip, sb - add fp, r2, #0x9000 - mov lr, #6 -_02057624: - ldm ip!, {r0, r1, r2, r3} - stm fp!, {r0, r1, r2, r3} - subs lr, lr, #1 - bne _02057624 - ldm ip, {r0, r1} - stm fp, {r0, r1} - add fp, sp, #0x24 - mov ip, #6 -_02057644: - ldm fp!, {r0, r1, r2, r3} - stm sb!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _02057644 - add r3, sp, #0x1c - lsl ip, sl, #1 - ldrsh r2, [r3, ip] - lsl r6, r6, #1 - ldm fp, {r0, r1} - stm sb, {r0, r1} - ldr r0, [sp] - strh r2, [r3, r6] - strh r0, [r3, ip] -_02057678: - add sl, sl, #1 -_0205767C: - ldr r0, [sp, #0xc] - cmp sl, r0 - blt _02057574 - mov r1, #0 - mov sl, r1 - add r0, sp, #0x10 -_02057694: - strb sl, [r0, r1] - add r1, r1, #1 - cmp r1, #4 - blt _02057694 - add sb, sp, #0x14 - add r6, sp, #0x1c - add r4, sp, #0x10 - mov fp, #1 - b _0205774C -_020576B8: - ldr r0, _020577B4 @ =0x020B0A48 - ldr r1, [r0] - lsl r0, sl, #1 - add r1, r1, r5, lsl #3 - add r1, r1, sl, lsl #1 - ldrsh r3, [sb, r0] - add r1, r1, #0x9800 - ldrsh r2, [r6, r0] - strh r3, [r1, #0x56] - ldrsh r1, [sb, r0] - cmp r2, r1 - beq _020576FC - mov r0, r8 - lsl r2, sl, #0x10 - asr r2, r2, #0x10 - bl FUN_020530d4 - b _02057724 -_020576FC: - ldrb r0, [r8, #0x3e] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - addne r1, sl, #1 - ldrbne r0, [r8, #0x3f] - andne r1, r1, #0xff - strbne r1, [r4, r0] - strbne r1, [r8, #0x3f] -_02057724: - strh sl, [r8, #0xa] - ldrb r0, [r8] - cmp r7, sl - add sl, sl, #1 - orr r0, r0, #2 - strb r0, [r8] - strbeq fp, [r8, #1] - movne r0, #0 - strbne r0, [r8, #1] - add r8, r8, #0x68 -_0205774C: - ldr r0, [sp, #0xc] - cmp sl, r0 - blt _020576B8 - mvn r3, #0 - mov r2, #0 - ldr r1, _020577B4 @ =0x020B0A48 - b _02057784 -_02057768: - ldr r0, [r1] - add r0, r0, r5, lsl #3 - add r0, r0, sl, lsl #1 - add r0, r0, #0x9800 - strh r3, [r0, #0x56] - strb r2, [r8], #0x68 - add sl, sl, #1 -_02057784: - cmp sl, #4 - blt _02057768 - ldr r1, _020577B4 @ =0x020B0A48 - add r0, sp, #0x10 - ldr r2, [r1] - mov r1, r5 - add r2, r2, r5, lsl #1 - add r2, r2, #0x9800 - strh r7, [r2, #0x50] - bl FUN_0200fa0c - add sp, sp, #0x8c - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_020577B4: .4byte 0x020B0A48 -_020577B8: .4byte 0x020A33D4 - arm_func_end FUN_02057464 -_020577BC: - .byte 0xF0, 0x4F, 0x2D, 0xE9 - .byte 0x4C, 0xD0, 0x4D, 0xE2, 0x00, 0xA0, 0xA0, 0xE1, 0x54, 0x02, 0x9F, 0xE5, 0x8A, 0xD2, 0xFE, 0xEB - .byte 0xFF, 0x00, 0x5A, 0xE3, 0x4A, 0x00, 0x00, 0x0A, 0x0A, 0x00, 0xA0, 0xE1, 0xCD, 0xE6, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x3D, 0x00, 0x00, 0x0A, 0x38, 0x42, 0x9F, 0xE5, 0x38, 0x02, 0x9F, 0xE5 - .byte 0x00, 0x30, 0x94, 0xE5, 0x00, 0x20, 0xD0, 0xE5, 0x01, 0x10, 0xD0, 0xE5, 0x09, 0x0A, 0x83, 0xE2 - .byte 0x4C, 0x88, 0x90, 0xE5, 0x04, 0x20, 0xCD, 0xE5, 0x05, 0x10, 0xCD, 0xE5, 0x00, 0x90, 0xA0, 0xE3 - .byte 0xFF, 0x70, 0x02, 0xE2, 0xFF, 0x60, 0x01, 0xE2, 0x1C, 0x50, 0x8D, 0xE2, 0x44, 0xB0, 0xA0, 0xE3 - .byte 0x00, 0x00, 0xD8, 0xE5, 0x01, 0x00, 0x10, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03 - .byte 0xFF, 0x00, 0x10, 0xE3, 0x25, 0x00, 0x00, 0x0A, 0x06, 0x70, 0xCD, 0xE5, 0x07, 0x60, 0xCD, 0xE5 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0xF8, 0x10, 0xD8, 0xE1, 0x00, 0xC0, 0x94, 0xE5 - .byte 0x08, 0x00, 0x8D, 0xE2, 0x81, 0xCB, 0x01, 0xE1, 0xF4, 0x10, 0xD1, 0xE1, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x06, 0x30, 0x8D, 0xE2, 0x70, 0xED, 0xFF, 0xEB, 0x09, 0x00, 0xDD, 0xE5, 0x4C, 0x30, 0x88, 0xE2 - .byte 0x02, 0x00, 0xC8, 0xE5, 0xF0, 0x01, 0xDD, 0xE1, 0xB6, 0x00, 0xC8, 0xE1, 0xF2, 0x01, 0xDD, 0xE1 - .byte 0xBE, 0x00, 0xC8, 0xE1, 0xF2, 0x01, 0xDD, 0xE1, 0xB0, 0x01, 0xC8, 0xE1, 0x14, 0x00, 0xDD, 0xE5 - .byte 0x12, 0x00, 0xC8, 0xE5, 0x15, 0x00, 0xDD, 0xE5, 0x13, 0x00, 0xC8, 0xE5, 0x16, 0x00, 0xDD, 0xE5 - .byte 0x14, 0x00, 0xC8, 0xE5, 0x17, 0x00, 0xDD, 0xE5, 0x15, 0x00, 0xC8, 0xE5, 0x18, 0x00, 0x9D, 0xE5 - .byte 0x18, 0x00, 0x88, 0xE5, 0x07, 0x00, 0x95, 0xE8, 0x07, 0x00, 0x83, 0xE8, 0x28, 0x20, 0xDD, 0xE5 - .byte 0x1C, 0x00, 0x88, 0xE2, 0x2A, 0x10, 0x8D, 0xE2, 0x58, 0x20, 0xC8, 0xE5, 0x84, 0xF3, 0xFE, 0xEB - .byte 0x01, 0x90, 0x89, 0xE2, 0x04, 0x00, 0x59, 0xE3, 0x68, 0x80, 0x88, 0xE2, 0xCF, 0xFF, 0xFF, 0xBA - .byte 0x40, 0x01, 0x9F, 0xE5, 0x89, 0x20, 0xA0, 0xE1, 0x00, 0x10, 0x90, 0xE5, 0x3C, 0x01, 0x9F, 0xE5 - .byte 0x09, 0x1A, 0x81, 0xE2, 0x70, 0x38, 0x91, 0xE5, 0x09, 0x10, 0xA0, 0xE1, 0xF2, 0x20, 0x93, 0xE1 - .byte 0x3D, 0xD2, 0xFE, 0xEB, 0x28, 0x01, 0x9F, 0xE5, 0x3B, 0xD2, 0xFE, 0xEB, 0x0A, 0x00, 0xA0, 0xE1 - .byte 0xC4, 0xE6, 0xFF, 0xEB, 0x00, 0x80, 0xA0, 0xE3, 0x08, 0x11, 0x9F, 0xE5, 0x01, 0x60, 0xA0, 0xE3 - .byte 0x00, 0x10, 0x91, 0xE5, 0x00, 0x70, 0xA0, 0xE1, 0x09, 0x0A, 0x81, 0xE2, 0x4C, 0xA8, 0x90, 0xE5 - .byte 0x08, 0x90, 0xA0, 0xE1, 0x0A, 0xB0, 0xA0, 0xE1, 0x08, 0x50, 0xA0, 0xE1, 0x08, 0x30, 0xA0, 0xE1 - .byte 0x06, 0x40, 0xA0, 0xE1, 0x08, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1, 0x14, 0x00, 0x00, 0xEA - .byte 0x00, 0x20, 0xDB, 0xE5, 0x01, 0x00, 0x12, 0xE3, 0x06, 0xC0, 0xA0, 0x11, 0x05, 0xC0, 0xA0, 0x01 - .byte 0xFF, 0x00, 0x1C, 0xE3, 0x0C, 0x00, 0x00, 0x0A, 0x02, 0x00, 0x12, 0xE3, 0x04, 0x20, 0xA0, 0x11 - .byte 0x03, 0x20, 0xA0, 0x01, 0xFF, 0x00, 0x12, 0xE3, 0x07, 0x00, 0x00, 0x0A, 0x01, 0x20, 0xDB, 0xE5 - .byte 0x00, 0x00, 0x52, 0xE3, 0x01, 0x20, 0xA0, 0x11, 0x00, 0x20, 0xA0, 0x01, 0xFF, 0x00, 0x12, 0xE3 - .byte 0x09, 0x08, 0xA0, 0x11, 0x40, 0x88, 0xA0, 0x11, 0x03, 0x00, 0x00, 0x1A, 0x01, 0x90, 0x89, 0xE2 - .byte 0x68, 0xB0, 0x8B, 0xE2, 0x04, 0x00, 0x59, 0xE3, 0xE8, 0xFF, 0xFF, 0xBA, 0x00, 0x90, 0xA0, 0xE3 - .byte 0x01, 0x60, 0xA0, 0xE3, 0x09, 0xB0, 0xA0, 0xE1, 0x06, 0x50, 0xA0, 0xE1, 0x09, 0x40, 0xA0, 0xE1 - .byte 0x00, 0x00, 0xDA, 0xE5, 0x01, 0x00, 0x10, 0xE3, 0x05, 0x10, 0xA0, 0x11, 0x0B, 0x10, 0xA0, 0x01 - .byte 0xFF, 0x00, 0x11, 0xE3, 0x0B, 0x00, 0x00, 0x0A, 0x02, 0x00, 0x10, 0xE3, 0x01, 0x00, 0xA0, 0x13 - .byte 0x00, 0x00, 0xA0, 0x03, 0xFF, 0x00, 0x10, 0xE3, 0x09, 0x00, 0x58, 0x11, 0x05, 0x00, 0x00, 0x0A - .byte 0x07, 0x00, 0x56, 0xE1, 0x01, 0x60, 0x86, 0xB2, 0x02, 0x00, 0x00, 0xBA, 0x00, 0x40, 0xCA, 0xE5 - .byte 0xF8, 0x00, 0xDA, 0xE1, 0x2E, 0xFB, 0xFF, 0xEB, 0x01, 0x90, 0x89, 0xE2, 0x04, 0x00, 0x59, 0xE3 - .byte 0x68, 0xA0, 0x8A, 0xE2, 0xE9, 0xFF, 0xFF, 0xBA, 0x91, 0x01, 0x00, 0xEB, 0x4C, 0xD0, 0x8D, 0xE2 - .byte 0xF0, 0x8F, 0xBD, 0xE8, 0x0C, 0x34, 0x0A, 0x02, 0x48, 0x0A, 0x0B, 0x02, 0x6C, 0x33, 0x0A, 0x02 - .byte 0x3C, 0x34, 0x0A, 0x02, 0x4C, 0x34, 0x0A, 0x02 - - arm_func_start FUN_02057a38 -FUN_02057a38: @ 0x02057A38 - push {r3, r4, r5, r6, r7, lr} - mov r6, r0 - mvn r0, #0 - cmp r6, r0 - popeq {r3, r4, r5, r6, r7, pc} - bl FUN_020568a4 - ldr r1, _02057AC0 @ =0x020B0A48 - mov r2, #0x68 - ldr r1, [r1] - lsl r4, r6, #1 - add r1, r1, #0x9000 - ldr r5, [r1, #0x870] - ldr r3, [r1, #0x84c] - ldrsh r4, [r5, r4] - sub r1, r2, #0x69 - mla r5, r6, r2, r3 - mov r7, r0 - cmp r4, r1 - beq _02057AB4 - mov r0, r5 - mov r1, r4 - mov r2, r6 - bl FUN_020530d4 - strh r6, [r5, #0xa] - ldrb r0, [r5] - cmp r4, r7 - orr r0, r0, #2 - strb r0, [r5] - moveq r0, #1 - strbeq r0, [r5, #1] - pop {r3, r4, r5, r6, r7, pc} -_02057AB4: - mov r0, #0 - strb r0, [r5] - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02057AC0: .4byte 0x020B0A48 - arm_func_end FUN_02057a38 -_02057AC4: - .byte 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE1 - .byte 0xD8, 0xFF, 0xFF, 0xEB, 0x01, 0x00, 0x84, 0xE2, 0x00, 0x08, 0xA0, 0xE1, 0x40, 0x48, 0xA0, 0xE1 - .byte 0x04, 0x00, 0x54, 0xE3, 0xF8, 0xFF, 0xFF, 0xBA, 0x10, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_02057aec -FUN_02057aec: @ 0x02057AEC - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov r4, r0 - bl IsLevelResetDungeon - cmp r4, #0xff - moveq sl, #0 - beq _02057B10 - mov r0, r4 - bl IsLevelResetDungeon - mov sl, r0 -_02057B10: - bl GetGameMode - cmp r0, #5 - movne r0, #1 - moveq r0, #0 - and r7, r0, #0xff - bl FUN_02057c40 - bl FUN_02056960 - mov sb, #0 - ldr r0, _02057C3C @ =0x020B0A48 - mov r6, #1 - ldr r0, [r0] - mov r5, sb - add r0, r0, #0x9000 - ldr r8, [r0, #0x84c] - mov fp, sb - mov r4, r6 -_02057B50: - ldrb r0, [r8] - tst r0, #1 - movne r0, r6 - moveq r0, r5 - tst r0, #0xff - beq _02057C14 - ldrsh r0, [r8, #8] - bl FUN_02056264 - cmp r0, #0 - bne _02057C14 - ldrsh r0, [r8, #0xc] - bl GetBaseFormCastformCherrimDeoxys - strh r0, [r8, #0xc] - ldrsh r0, [r8, #8] - bl IsMonsterIdInNormalRange - cmp r0, #0 - beq _02057C14 - ldrb r0, [r8, #1] - cmp r0, #0 - movne r0, r4 - moveq r0, fp - tst r0, #0xff - ldrsh r0, [r8, #8] - beq _02057BB8 - bl FUN_02056754 - b _02057BBC -_02057BB8: - bl FUN_02056554 -_02057BBC: - cmp sl, #0 - beq _02057BE8 - lsl r0, sb, #0x10 - asr r0, r0, #0x10 - bl FUN_02058138 - lsl r2, sb, #0x10 - ldrsh r1, [r8, #8] - mov r0, r8 - asr r2, r2, #0x10 - bl FUN_020530d4 - b _02057C14 -_02057BE8: - cmp r7, #0 - beq _02057C00 - ldrsh r0, [r8, #8] - mov r1, r8 - bl FUN_0205349c - b _02057C14 -_02057C00: - ldrsh r1, [r8, #8] - lsl r2, sb, #0x10 - mov r0, r8 - asr r2, r2, #0x10 - bl FUN_020530d4 -_02057C14: - add sb, sb, #1 - cmp sb, #4 - add r8, r8, #0x68 - blt _02057B50 - ldr r0, _02057C3C @ =0x020B0A48 - ldr r0, [r0] - add r0, r0, #0x9000 - ldrb r0, [r0, #0x877] - bl FUN_02057464 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02057C3C: .4byte 0x020B0A48 - arm_func_end FUN_02057aec - - arm_func_start FUN_02057c40 -FUN_02057c40: @ 0x02057C40 - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r0, _02057CE4 @ =0x020B0A48 - mov sb, #0 - ldr r0, [r0] - mov r7, #1 - add r0, r0, #0x9000 - ldr r8, [r0, #0x84c] - mov r6, sb - mov r4, sb - mov r5, r7 -_02057C68: - ldrb r0, [r8] - tst r0, #1 - movne r0, r7 - moveq r0, r6 - tst r0, #0xff - beq _02057CC8 - ldrb r0, [r8, #0x3e] - tst r0, #1 - movne r0, r5 - moveq r0, r4 - tst r0, #0xff - beq _02057CC8 - ldrb r0, [r8, #0x3e] - bic r0, r0, #8 - strb r0, [r8, #0x3e] - ldrsh r0, [r8, #0x42] - cmp r0, #0xb7 - bne _02057CC8 - add r0, r8, #0x3e - bl FUN_0200d8ac - bl AddMoneyCarried - lsl r0, sb, #0x10 - asr r0, r0, #0x10 - bl FUN_02058138 -_02057CC8: - add sb, sb, #1 - cmp sb, #4 - add r8, r8, #0x68 - blt _02057C68 - bl FUN_0200f910 - bl FUN_0200fcac - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_02057CE4: .4byte 0x020B0A48 - arm_func_end FUN_02057c40 - - arm_func_start FUN_02057ce8 -FUN_02057ce8: @ 0x02057CE8 - push {r4, r5, r6, r7, r8, lr} - mov r8, #0 - mov r7, #1 - mov r6, r8 - mov r4, r8 - mov r5, r7 -_02057D00: - mov r0, r8 - bl GetActiveTeamMember - ldrb r1, [r0] - tst r1, #1 - movne r1, r7 - moveq r1, r6 - tst r1, #0xff - beq _02057D40 - ldrb r1, [r0, #0x3e] - tst r1, #1 - movne r1, r5 - moveq r1, r4 - tst r1, #0xff - ldrbne r1, [r0, #0x3e] - bicne r1, r1, #8 - strbne r1, [r0, #0x3e] -_02057D40: - add r0, r8, #1 - lsl r0, r0, #0x10 - asr r8, r0, #0x10 - cmp r8, #4 - blt _02057D00 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_02057ce8 - - arm_func_start RefillTeam -RefillTeam: @ 0x02057D58 - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r0, _02057DF8 @ =0x020B0A48 - mov r5, #0 - ldr r0, [r0] - add r0, r0, #0x9000 - ldr r4, [r0, #0x84c] -_02057D70: - ldrb r0, [r4] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _02057DE4 - ldrsh r1, [r4, #0x10] - mov r0, r4 - strh r1, [r4, #0xe] - bl FUN_02058810 - mov r6, #0 - add r7, r4, #0x1c - mov r8, r6 - mov sb, #1 -_02057DA8: - add r0, r4, r6, lsl #3 - ldrb r0, [r0, #0x1c] - tst r0, #1 - movne r0, sb - moveq r0, r8 - tst r0, #0xff - beq _02057DD4 - add r0, r7, r6, lsl #3 - bl GetMaxPp - add r1, r4, r6, lsl #3 - strb r0, [r1, #0x22] -_02057DD4: - add r6, r6, #1 - cmp r6, #4 - blt _02057DA8 - strh r5, [r4, #0xa] -_02057DE4: - add r5, r5, #1 - cmp r5, #4 - add r4, r4, #0x68 - blt _02057D70 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_02057DF8: .4byte 0x020B0A48 - arm_func_end RefillTeam - - arm_func_start FUN_02057dfc -FUN_02057dfc: @ 0x02057DFC - push {r3, r4, r5, r6, r7, lr} - ldr r1, _02057E8C @ =0x020B0A48 - mov r0, #0 - ldr r1, [r1] - mov ip, #1 - add r1, r1, #0x9000 - ldr r6, [r1, #0x84c] - mov r3, r0 - mov r4, r0 - mov r5, ip - mov lr, r0 -_02057E28: - ldrb r1, [r6] - tst r1, #1 - movne r1, r5 - moveq r1, r4 - tst r1, #0xff - beq _02057E78 - mov r7, lr -_02057E44: - add r1, r6, r7, lsl #3 - ldrb r1, [r1, #0x1c] - tst r1, #1 - movne r1, ip - moveq r1, r3 - tst r1, #0xff - addne r2, r6, r7, lsl #3 - ldrbne r1, [r2, #0x1c] - add r7, r7, #1 - andne r1, r1, #0xf - strbne r1, [r2, #0x1c] - cmp r7, #4 - blt _02057E44 -_02057E78: - add r0, r0, #1 - cmp r0, #4 - add r6, r6, #0x68 - blt _02057E28 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02057E8C: .4byte 0x020B0A48 - arm_func_end FUN_02057dfc - - arm_func_start FUN_02057e90 -FUN_02057e90: @ 0x02057E90 - push {r4, r5, r6, r7, r8, lr} - ldr r0, _02057EF0 @ =0x020B0A48 - mov r4, #0 - ldr r0, [r0] - mov r6, r4 - add r0, r0, #0x9000 - ldr r8, [r0, #0x84c] - mov r7, #1 - mov r5, r4 -_02057EB4: - ldrb r0, [r8] - tst r0, #1 - movne r0, r7 - moveq r0, r6 - tst r0, #0xff - beq _02057EDC - ldrsh r0, [r8, #8] - bl FUN_02056264 - cmp r0, #0 - strbne r5, [r8] -_02057EDC: - add r4, r4, #1 - cmp r4, #4 - add r8, r8, #0x68 - blt _02057EB4 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02057EF0: .4byte 0x020B0A48 - arm_func_end FUN_02057e90 -_02057EF4: - .byte 0xF8, 0x4F, 0x2D, 0xE9, 0x60, 0x01, 0x9F, 0xE5, 0x00, 0x80, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0x09, 0x0A, 0x80, 0xE2, 0x4C, 0x78, 0x90, 0xE5, 0x00, 0x00, 0xD7, 0xE5 - .byte 0x01, 0x00, 0x10, 0xE3, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x10, 0xA0, 0x03, 0xFF, 0x00, 0x11, 0xE3 - .byte 0x04, 0x00, 0x00, 0x1A, 0x08, 0x00, 0x10, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03 - .byte 0xFF, 0x00, 0x10, 0xE3, 0x44, 0x00, 0x00, 0x0A, 0xF8, 0x90, 0xD7, 0xE1, 0xF0, 0x11, 0xD7, 0xE1 - .byte 0x07, 0x00, 0xA0, 0xE1, 0xBE, 0x10, 0xC7, 0xE1, 0x30, 0x02, 0x00, 0xEB, 0x00, 0xA0, 0xA0, 0xE3 - .byte 0x1C, 0x50, 0x87, 0xE2, 0x0A, 0xB0, 0xA0, 0xE1, 0x01, 0x60, 0xA0, 0xE3, 0x0A, 0x40, 0xA0, 0xE1 - .byte 0x8A, 0x01, 0x87, 0xE0, 0x1C, 0x00, 0xD0, 0xE5, 0x01, 0x00, 0x10, 0xE3, 0x06, 0x00, 0xA0, 0x11 - .byte 0x0B, 0x00, 0xA0, 0x01, 0xFF, 0x00, 0x10, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x8A, 0x01, 0x85, 0xE0 - .byte 0xB2, 0xEE, 0xFE, 0xEB, 0x8A, 0x11, 0x87, 0xE0, 0x22, 0x00, 0xC1, 0xE5, 0xBE, 0x41, 0xC1, 0xE1 - .byte 0x01, 0xA0, 0x8A, 0xE2, 0x04, 0x00, 0x5A, 0xE3, 0xF0, 0xFF, 0xFF, 0xBA, 0xBA, 0x80, 0xC7, 0xE1 - .byte 0x00, 0x10, 0xD7, 0xE5, 0x09, 0x00, 0xA0, 0xE1, 0x08, 0x20, 0xC1, 0xE3, 0xFF, 0x10, 0x02, 0xE2 - .byte 0x01, 0x10, 0x81, 0xE3, 0x00, 0x10, 0xC7, 0xE5, 0xA9, 0xF8, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x09, 0x00, 0xA0, 0xE1, 0x00, 0x10, 0xA0, 0xE3, 0x1E, 0x00, 0x00, 0x1A, 0x23, 0xF9, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x09, 0x00, 0xA0, 0xE1, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x83, 0xF9, 0xFF, 0xEB, 0x09, 0x00, 0xA0, 0xE1, 0x02, 0x10, 0xA0, 0xE3, 0x1B, 0xF9, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x09, 0x00, 0xA0, 0xE1, 0x02, 0x10, 0xA0, 0xE3 - .byte 0x7B, 0xF9, 0xFF, 0xEB, 0x09, 0x00, 0xA0, 0xE1, 0x00, 0x10, 0xA0, 0xE3, 0x3C, 0xF9, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x09, 0x00, 0xA0, 0xE1, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x73, 0xF9, 0xFF, 0xEB, 0x09, 0x00, 0xA0, 0xE1, 0x02, 0x10, 0xA0, 0xE3, 0x34, 0xF9, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x09, 0x00, 0xA0, 0xE1, 0x02, 0x10, 0xA0, 0xE3 - .byte 0x6B, 0xF9, 0xFF, 0xEB, 0x00, 0x00, 0x00, 0xEA, 0x69, 0xF9, 0xFF, 0xEB, 0x01, 0x80, 0x88, 0xE2 - .byte 0x04, 0x00, 0x58, 0xE3, 0x68, 0x70, 0x87, 0xE2, 0xAB, 0xFF, 0xFF, 0xBA, 0xF8, 0x8F, 0xBD, 0xE8 - .byte 0x48, 0x0A, 0x0B, 0x02, 0xF8, 0x40, 0x2D, 0xE9, 0x50, 0x00, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x50, 0xA0, 0xE1, 0x09, 0x0A, 0x80, 0xE2, 0x4C, 0x78, 0x90, 0xE5 - .byte 0x01, 0x60, 0xA0, 0xE3, 0x00, 0x00, 0xD7, 0xE5, 0x01, 0x00, 0x10, 0xE3, 0x06, 0x00, 0xA0, 0x11 - .byte 0x05, 0x00, 0xA0, 0x01, 0xFF, 0x00, 0x10, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x5A, 0x00, 0x87, 0xE2 - .byte 0xC8, 0xEF, 0xFF, 0xEB, 0x01, 0x00, 0x84, 0xE2, 0x00, 0x08, 0xA0, 0xE1, 0x40, 0x48, 0xA0, 0xE1 - .byte 0x04, 0x00, 0x54, 0xE3, 0x68, 0x70, 0x87, 0xE2, 0xF1, 0xFF, 0xFF, 0xBA, 0xF8, 0x80, 0xBD, 0xE8 - .byte 0x48, 0x0A, 0x0B, 0x02 - - arm_func_start FUN_020580c4 -FUN_020580c4: @ 0x020580C4 - push {r4, r5, r6, lr} - ldr r1, _02058134 @ =0x020B0A48 - mov r5, #0 - ldr r1, [r1] - add r2, r5, #1 - add r1, r1, #0x9000 - ldr r4, [r1, #0x84c] - and r6, r2, #0xff - strb r5, [r0] - mov ip, r5 - mov lr, #1 - mov r3, r5 -_020580F4: - ldrb r1, [r4] - add r4, r4, #0x68 - tst r1, #1 - movne r1, lr - moveq r1, ip - tst r1, #0xff - addeq r1, r0, r5 - strbeq r3, [r1, #1] - addne r1, r0, r5 - addne r2, r6, #1 - strbne r6, [r1, #1] - add r5, r5, #1 - andne r6, r2, #0xff - cmp r5, #4 - blt _020580F4 - pop {r4, r5, r6, pc} - .align 2, 0 -_02058134: .4byte 0x020B0A48 - arm_func_end FUN_020580c4 - - arm_func_start FUN_02058138 -FUN_02058138: @ 0x02058138 - push {r3, lr} - sub sp, sp, #8 - ldr r2, _020581EC @ =0x020B0A48 - mov r1, #0x68 - ldr r2, [r2] - smulbb r1, r0, r1 - add r0, r2, #0x9000 - ldr r2, [r0, #0x84c] - ldrb r0, [r2, r1] - add r3, r2, r1 - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _020581E0 - ldrb r1, [r3, #0x3e] - tst r1, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - ldrbne r0, [r3, #0x3f] - cmpne r0, #0 - beq _020581E0 - tst r1, #8 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - bne _020581E0 - ldrh r1, [r3, #0x3e] - add r0, r3, #0x3e - strh r1, [sp] - ldrh r2, [r3, #0x40] - ldrb r1, [sp] - strh r2, [sp, #2] - ldrh r2, [r3, #0x42] - bic r1, r1, #0x10 - strh r2, [sp, #4] - strb r1, [sp] - bl ItemZInit - add r0, sp, #0 - bl FUN_0200fb54 - b _020581E4 -_020581E0: - mov r0, #0 -_020581E4: - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_020581EC: .4byte 0x020B0A48 - arm_func_end FUN_02058138 - - arm_func_start ClearItem -ClearItem: @ 0x020581F0 - push {r3, r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #8 - ldr r2, _020582DC @ =0x020B0A48 - cmp r0, #0 - ldr r2, [r2] - add r2, r2, #0x9000 - ldr r2, [r2, #0x84c] - beq _020582D0 - mov r8, #0 - mov r7, #1 - mov r6, r8 - mov r4, r8 - mov r5, r7 - mov r3, r8 - mov ip, r7 - b _020582C8 -_02058230: - ldrb lr, [r2] - tst lr, #1 - movne sb, r7 - moveq sb, r6 - tst sb, #0xff - beq _020582C0 - ldrb sb, [r2, #0x3e] - tst sb, #1 - movne lr, r5 - moveq lr, r4 - tst lr, #0xff - beq _020582C0 - ldrb lr, [r2, #0x3f] - cmp lr, r0 - bne _020582C0 - cmp r1, #0 - beq _02058288 - tst sb, #8 - movne sb, ip - moveq sb, r3 - tst sb, #0xff - bne _020582C0 -_02058288: - ldrh r1, [r2, #0x3e] - add r0, r2, #0x3e - strh r1, [sp] - ldrh r3, [r2, #0x40] - ldrb r1, [sp] - strh r3, [sp, #2] - ldrh r2, [r2, #0x42] - bic r1, r1, #0x10 - strh r2, [sp, #4] - strb r1, [sp] - bl ItemZInit - add r0, sp, #0 - bl FUN_0200fb54 - b _020582D4 -_020582C0: - add r8, r8, #1 - add r2, r2, #0x68 -_020582C8: - cmp r8, #4 - blt _02058230 -_020582D0: - mov r0, #0 -_020582D4: - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_020582DC: .4byte 0x020B0A48 - arm_func_end ClearItem - - arm_func_start FUN_020582e0 -FUN_020582e0: @ 0x020582E0 - ldr ip, _020582EC @ =ClearItem - mov r1, #1 - bx ip - .align 2, 0 -_020582EC: .4byte ClearItem - arm_func_end FUN_020582e0 - - arm_func_start FUN_020582f0 -FUN_020582f0: @ 0x020582F0 - push {r4, r5, lr} - sub sp, sp, #0xc - ldr r3, _0205845C @ =0x020B0A48 - mov r2, #0x68 - ldr r3, [r3] - smulbb r2, r0, r2 - add r0, r3, #0x9000 - ldr r3, [r0, #0x84c] - mov r5, r1 - ldrb r0, [r3, r2] - add r4, r3, r2 - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _02058450 - mov r0, r5 - bl GetItemAtIdx - ldrb r2, [r4, #0x3e] - mov r1, r0 - tst r2, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _02058404 - ldrb r0, [r4, #0x3f] - cmp r0, #0 - bne _02058374 - tst r2, #8 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - bne _02058448 -_02058374: - ldrh r2, [r4, #0x3e] - add r0, sp, #6 - strh r2, [sp, #6] - ldrh r3, [r4, #0x40] - ldrb r2, [sp, #6] - strh r3, [sp, #8] - ldrh ip, [r4, #0x42] - bic r3, r2, #0x10 - strh ip, [sp, #0xa] - ldrh r2, [r1] - strh r2, [sp] - ldrh ip, [r1, #2] - ldrb r2, [sp] - strh ip, [sp, #2] - ldrh ip, [r1, #4] - bic r1, r2, #0x10 - strh ip, [sp, #4] - ldrsh r2, [r4, #0xa] - add r2, r2, #1 - strb r2, [sp, #1] - strb r1, [sp] - strb r3, [sp, #6] - bl FUN_0200fb54 - ldrh r2, [sp] - add r1, sp, #0 - mov r0, r5 - strh r2, [r4, #0x3e] - ldrh r2, [sp, #2] - strh r2, [r4, #0x40] - ldrh r2, [sp, #4] - strh r2, [r4, #0x42] - ldrsh r2, [r4, #0xa] - add r2, r2, #1 - and r2, r2, #0xff - bl FUN_0200fbe0 - b _02058448 -_02058404: - ldrh r2, [r1] - mov r0, r5 - strh r2, [r4, #0x3e] - ldrh r2, [r1, #2] - strh r2, [r4, #0x40] - ldrh r2, [r1, #4] - strh r2, [r4, #0x42] - ldrsh r2, [r4, #0xa] - add r2, r2, #1 - strb r2, [r4, #0x3f] - ldrb r2, [r4, #0x3e] - bic r2, r2, #0x10 - strb r2, [r4, #0x3e] - ldrsh r2, [r4, #0xa] - add r2, r2, #1 - and r2, r2, #0xff - bl FUN_0200fbe0 -_02058448: - mov r0, #1 - b _02058454 -_02058450: - mov r0, #0 -_02058454: - add sp, sp, #0xc - pop {r4, r5, pc} - .align 2, 0 -_0205845C: .4byte 0x020B0A48 - arm_func_end FUN_020582f0 - - arm_func_start FUN_02058460 -FUN_02058460: @ 0x02058460 - push {r3, r4, r5, r6, r7, lr} - mov r2, r0 - cmp r1, #0 - moveq r0, #0 - popeq {r3, r4, r5, r6, r7, pc} - ldr r0, _020584F4 @ =0x020B0A48 - sub r1, r1, #1 - lsl ip, r1, #0x10 - ldr r1, [r0] - mov r0, #0 - add r1, r1, #0x9000 - mov r4, r0 - mov r5, #1 - mov r3, #0x68 - b _020584E4 -_0205849C: - smulbb r6, r0, r3 - ldr r7, [r1, #0x84c] - ldrb lr, [r7, r6] - add r6, r7, r6 - tst lr, #1 - movne r7, r5 - moveq r7, r4 - tst r7, #0xff - beq _020584D8 - ldrsh lr, [r6, #0xa] - cmp lr, ip, asr #16 - bne _020584D8 - mov r1, r2 - bl FUN_020582f0 - pop {r3, r4, r5, r6, r7, pc} -_020584D8: - add r0, r0, #1 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 -_020584E4: - cmp r0, #4 - blt _0205849C - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_020584F4: .4byte 0x020B0A48 - arm_func_end FUN_02058460 - - arm_func_start FUN_020584f8 -FUN_020584f8: @ 0x020584F8 - bx lr - arm_func_end FUN_020584f8 - - arm_func_start FUN_020584fc -FUN_020584fc: @ 0x020584FC - push {r4, lr} - mov r4, r0 - mov r0, r1 - bl GetActiveTeamMember - mov r1, r0 - ldrb r0, [r1, #1] - add r1, r1, #0x5e - cmp r0, #0 - movne r2, #1 - moveq r2, #0 - mov r0, r4 - and r2, r2, #0xff - bl FUN_02054fa0 - pop {r4, pc} - arm_func_end FUN_020584fc - - arm_func_start FUN_02058534 -FUN_02058534: @ 0x02058534 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r2 - mov r0, r1 - bl GetActiveTeamMember - mov r1, r0 - cmp r4, #0x44 - bne _02058578 - ldrb r0, [r1, #1] - add r1, r1, #0x5e - cmp r0, #0 - movne r2, #1 - moveq r2, #0 - mov r0, r5 - and r2, r2, #0xff - bl FUN_02054fa0 - pop {r3, r4, r5, pc} -_02058578: - mov r0, r5 - mov r2, r4 - add r1, r1, #0x5e - bl FUN_02054f44 - pop {r3, r4, r5, pc} - arm_func_end FUN_02058534 - - arm_func_start FUN_0205858c -FUN_0205858c: @ 0x0205858C - push {r4, lr} - mov r4, r0 - mov r0, r1 - bl GetActiveTeamMember - mov r1, r0 - mov r0, r4 - add r1, r1, #0x5e - mov r2, #0xa - bl StrncpySimpleNoPadSafe - pop {r4, pc} - arm_func_end FUN_0205858c - - arm_func_start FUN_020585b4 -FUN_020585b4: @ 0x020585B4 - ldrb r2, [r1, #1] - ldr ip, _020585D4 @ =FUN_02054fa0 - add r1, r1, #0x5e - cmp r2, #0 - movne r2, #1 - moveq r2, #0 - and r2, r2, #0xff - bx ip - .align 2, 0 -_020585D4: .4byte FUN_02054fa0 - arm_func_end FUN_020585b4 - - arm_func_start ChangeGiratinaFormIfSkyDungeon -ChangeGiratinaFormIfSkyDungeon: @ 0x020585D8 - push {r4, r5, r6, r7, r8, lr} - bl IsSkyExclusiveDungeon - cmp r0, #0 - popeq {r4, r5, r6, r7, r8, pc} - mov r8, #0 - ldr r4, _02058640 @ =0x00000211 - mov r6, r8 - mov r7, #1 - mov r5, #0x218 -_020585FC: - mov r0, r8 - bl GetActiveTeamMember - ldrb r1, [r0] - tst r1, #1 - movne r1, r7 - moveq r1, r6 - tst r1, #0xff - beq _02058628 - ldrsh r1, [r0, #0xc] - cmp r1, r4 - strheq r5, [r0, #0xc] -_02058628: - add r0, r8, #1 - lsl r0, r0, #0x10 - asr r8, r0, #0x10 - cmp r8, #4 - blt _020585FC - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02058640: .4byte 0x00000211 - arm_func_end ChangeGiratinaFormIfSkyDungeon - - arm_func_start FUN_02058644 -FUN_02058644: @ 0x02058644 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, #0 -_02058650: - mov r0, r4 - mov r1, r5 - bl FUN_02058674 - add r0, r4, #1 - lsl r0, r0, #0x10 - asr r4, r0, #0x10 - cmp r4, #4 - blt _02058650 - pop {r3, r4, r5, pc} - arm_func_end FUN_02058644 - - arm_func_start FUN_02058674 -FUN_02058674: @ 0x02058674 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - bl CheckTeamMemberIdx - cmp r0, #0 - popne {r3, r4, r5, pc} - mov r0, r5 - bl GetActiveTeamMember - ldrb r1, [r0] - tst r1, #1 - movne r1, #1 - moveq r1, #0 - tst r1, #0xff - popeq {r3, r4, r5, pc} - tst r4, #2 - beq _020586C8 - ldrsh r1, [r0, #0xc] - cmp r1, #0x218 - ldreq r1, _020586E8 @ =0x00000211 - strheq r1, [r0, #0xc] - popeq {r3, r4, r5, pc} -_020586C8: - tst r4, #1 - popeq {r3, r4, r5, pc} - ldrsh r2, [r0, #0xc] - ldr r1, _020586EC @ =0x00000217 - cmp r2, r1 - subeq r1, r1, #1 - strheq r1, [r0, #0xc] - pop {r3, r4, r5, pc} - .align 2, 0 -_020586E8: .4byte 0x00000211 -_020586EC: .4byte 0x00000217 - arm_func_end FUN_02058674 - - arm_func_start FUN_020586f0 -FUN_020586f0: @ 0x020586F0 - push {r3, r4, r5, lr} - mov r5, r1 - bl GetActiveTeamMember - mov r4, r0 - ldrb r0, [r4] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _0205878C - mov r0, r5 - bl GetItemMoveId16 - mov ip, #0 - mov r2, ip - mov r3, #1 - b _02058768 -_02058730: - add r1, r4, ip, lsl #3 - ldrb r1, [r1, #0x1c] - tst r1, #1 - movne r1, r3 - moveq r1, r2 - tst r1, #0xff - beq _0205875C - add r1, r4, ip, lsl #3 - ldrh r1, [r1, #0x20] - cmp r0, r1 - beq _02058770 -_0205875C: - add r1, ip, #1 - lsl r1, r1, #0x10 - asr ip, r1, #0x10 -_02058768: - cmp ip, #4 - blt _02058730 -_02058770: - cmp ip, #4 - blt _0205878C - ldrsh r1, [r4, #0xc] - bl FUN_02053d1c - cmp r0, #0 - movne r0, #1 - popne {r3, r4, r5, pc} -_0205878C: - mov r0, #0 - pop {r3, r4, r5, pc} - arm_func_end FUN_020586f0 - - arm_func_start FUN_02058794 -FUN_02058794: @ 0x02058794 - push {r4, lr} - mov r4, r0 - bl FUN_0204e584 - cmp r0, #0 - popeq {r4, pc} - mov r0, r4 - bl GetActiveTeamMember - mov r4, r0 - ldrsh r0, [r4, #8] - bl GetTeamMember - mov r1, r4 - bl FUN_020534bc - pop {r4, pc} - arm_func_end FUN_02058794 - - arm_func_start FUN_020587c8 -FUN_020587c8: @ 0x020587C8 - push {r3, lr} - bl FUN_02057e90 - mvn r0, #0 - bl FUN_02058644 - bl RefillTeam - pop {r3, pc} - arm_func_end FUN_020587c8 - - arm_func_start FUN_020587e0 -FUN_020587e0: @ 0x020587E0 - push {r4, lr} - mov r4, r0 - bl FUN_02057dfc - bl FUN_02057e90 - mvn r0, #0 - bl FUN_02058644 - bl RefillTeam - mov r0, r4 - bl FUN_02057aec - mov r0, #0 - bl FUN_02056318 - pop {r4, pc} - arm_func_end FUN_020587e0 - - arm_func_start FUN_02058810 -FUN_02058810: @ 0x02058810 - mov r2, #0x64 - strh r2, [r0, #0x48] - mov r1, #0 - strh r2, [r0, #0x44] - strh r1, [r0, #0x4a] - strh r1, [r0, #0x46] - bx lr - arm_func_end FUN_02058810 - - arm_func_start FUN_0205882c -FUN_0205882c: @ 0x0205882C - push {r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #0x30 - ldr r1, _02058AA4 @ =0x000003E3 - mov r4, r0 - mov r3, #0 - add r2, sp, #0x14 - mov r0, #4 - str r3, [sp, #0x1c] - bl AllocAndLoadFileInPack - ldr r1, [sp, #0x14] - add r0, sp, #0x1c - bl HandleSir0Translation - lsl r0, r4, #0x10 - asr r0, r0, #0x10 - mov r1, #0 - bl FUN_02058abc - lsl r0, r4, #0x10 - ldr r5, [sp, #0x1c] - asr r0, r0, #0x10 - mov r1, #0 - bl FUN_02058abc - add r1, r5, #4 - mov r2, #0x40 - mov r3, #9 - bl FUN_0201bff0 - add r0, r4, #1 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - mov r1, #0 - bl FUN_02058abc - add r1, r5, #0x24 - mov r2, #0x80 - mov r3, #9 - bl FUN_0201bff0 - add r0, r4, #2 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - mov r1, #0 - bl FUN_02058abc - add r1, r5, #0x64 - mov r2, #0x100 - mov r3, #9 - bl FUN_0201bff0 - add r0, sp, #0x14 - bl UnloadFile - mov lr, #0 -_020588E4: - ldr r3, _02058AA8 @ =0x020A3468 - ldr r5, _02058AAC @ =0x022B578C - add r2, r3, lr, lsl #4 - ldr r1, [r2, #8] - ldr r0, _02058AB0 @ =0x000003FF - add r1, r4, r1 - add r7, r5, lr, lsl #4 - mov sb, #0x400 - ldr r3, [r3, lr, lsl #4] - and r8, r1, r0 - ldr r2, [r2, #4] - lsl r1, r3, #0x1e - mov r5, #0 - lsl r0, r2, #0x1e - rsb sb, sb, #0 - mov r2, r5 - mov r3, #1 -_02058928: - lsl ip, r5, #3 - ldrh sl, [r7, ip] - add r6, r7, r5, lsl #3 - cmp r5, #1 - bic sl, sl, #0x100 - strh sl, [r7, ip] - ldrh sl, [r7, ip] - add r5, r5, #1 - bic sl, sl, #0x200 - strh sl, [r7, ip] - ldrh sl, [r6] - moveq ip, r3 - movne ip, r2 - bic sl, sl, #0xc00 - strh sl, [r6] - ldrh sl, [r6] - lsl ip, ip, #0x1e - cmp r5, #2 - orr sl, sl, ip, lsr #20 - strh sl, [r6] - ldrh ip, [r6] - bic ip, ip, #0x1000 - strh ip, [r6] - ldrh ip, [r6] - bic ip, ip, #0x2000 - strh ip, [r6] - ldrh ip, [r6] - orr ip, ip, #0x2000 - strh ip, [r6] - ldrh ip, [r6] - bic ip, ip, #0xc000 - strh ip, [r6] - ldrh ip, [r6] - orr ip, ip, r1, lsr #16 - strh ip, [r6] - ldrh ip, [r6, #2] - bic ip, ip, #0x3e00 - strh ip, [r6, #2] - ldrh ip, [r6, #2] - bic ip, ip, #0xc000 - strh ip, [r6, #2] - ldrh ip, [r6, #2] - orr ip, ip, r0, lsr #16 - strh ip, [r6, #2] - ldrh ip, [r6, #4] - and ip, ip, sb - strh ip, [r6, #4] - ldrh ip, [r6, #4] - orr ip, ip, r8 - strh ip, [r6, #4] - ldrh ip, [r6, #4] - bic ip, ip, #0xc00 - strh ip, [r6, #4] - ldrh ip, [r6, #4] - orr ip, ip, #0xc00 - strh ip, [r6, #4] - ldrh ip, [r6, #4] - bic ip, ip, #0xf000 - strh ip, [r6, #4] - ldrh ip, [r6, #6] - bic ip, ip, #1 - strh ip, [r6, #6] - ldrh ip, [r6, #6] - bic ip, ip, #2 - strh ip, [r6, #6] - blt _02058928 - add lr, lr, #1 - cmp lr, #3 - blt _020588E4 - ldr r1, _02058AB4 @ =0x000003E5 - add r2, sp, #0xc - mov r0, #4 - mov r3, #0 - bl AllocAndLoadFileInPack - ldr r1, [sp, #0xc] - add r0, sp, #8 - bl HandleSir0Translation - mov r0, #0x90 - str r0, [sp] - mov r0, #0xff - str r0, [sp, #4] - ldr r1, [sp, #8] - add r0, sp, #0x20 - mov r2, #1 - mov r3, #0x20 - bl FUN_0201f598 - ldr r0, _02058AB8 @ =0x020AFC4C - add r1, sp, #0x20 - ldr r0, [r0] - mov r2, #0 - bl FUN_0201b43c - add r0, sp, #0xc - bl UnloadFile - add sp, sp, #0x30 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_02058AA4: .4byte 0x000003E3 -_02058AA8: .4byte 0x020A3468 -_02058AAC: .4byte 0x022B578C -_02058AB0: .4byte 0x000003FF -_02058AB4: .4byte 0x000003E5 -_02058AB8: .4byte 0x020AFC4C - arm_func_end FUN_0205882c - - arm_func_start FUN_02058abc -FUN_02058abc: @ 0x02058ABC - ldr r3, _02058AF4 @ =0x020AFC4C - mov r2, #0x70 - ldr ip, [r3] - ldr r3, _02058AF8 @ =0x020AFC28 - mla r2, r1, r2, ip - ldrh r1, [r2, #0xc] - ldr ip, [r2, #0x64] - lsr r2, r1, #0x1f - rsb r1, r2, r1, lsl #30 - add r1, r2, r1, ror #30 - lsl r1, r1, #1 - ldrsh r1, [r3, r1] - smlabb r0, r0, r1, ip - bx lr - .align 2, 0 -_02058AF4: .4byte 0x020AFC4C -_02058AF8: .4byte 0x020AFC28 - arm_func_end FUN_02058abc - - arm_func_start FUN_02058afc -FUN_02058afc: @ 0x02058AFC - push {r3, r4, r5, r6, r7, r8, sb, lr} - cmp r0, #0x32 - mov r6, r1 - mov r5, r2 - mov r4, r3 - cmpne r0, #0x33 - beq _02058B38 - ldr r1, _02058C08 @ =0xFFFFFD76 - add r1, r0, r1 - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - cmp r1, #1 - bhi _02058B40 -_02058B38: - mov r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, pc} -_02058B40: - bl GetShadowSize - ldrb r1, [sp, #0x24] - mov r7, #0x200 - ldrsh lr, [r6] - cmp r1, #0 - ldr r1, _02058C0C @ =0x022B578C - movne r2, #1 - moveq r2, #0 - add r1, r1, r0, lsl #4 - add r1, r1, r2, lsl #3 - ldr sb, _02058C10 @ =0x020A3450 - ldrh r8, [r1, #2] - ldrsh ip, [r5, #0x24] - ldrsh r3, [r6, #2] - ldrsh r2, [r5, #0x26] - rsb r7, r7, #0 - and r5, r8, r7 - strh r5, [r1, #2] - ldr r0, [sb, r0, lsl #2] - add r5, lr, ip - add r0, r5, r0 - ldrh r5, [r1, #2] - and r0, r0, r7, lsr #23 - add r2, r3, r2 - orr r0, r5, r0 - strh r0, [r1, #2] - sub r0, r2, #2 - sub r2, r0, #2 - lsl r3, r2, #0x14 - ldrh r5, [r1, #6] - ldr r0, _02058C14 @ =0xFFFF000F - ldr r2, [sp, #0x20] - and r0, r5, r0 - strh r0, [r1, #6] - ldrh r5, [r1, #6] - ldr r0, _02058C18 @ =0x020AFC4C - orr r3, r5, r3, lsr #16 - strh r3, [r1, #6] - ldrh r5, [r1, #4] - lsl r3, r2, #0x1e - ldr r0, [r0] - bic r2, r5, #0xc00 - strh r2, [r1, #4] - ldrh r5, [r1, #4] - mov r2, r4 - orr r3, r5, r3, lsr #20 - strh r3, [r1, #4] - bl FUN_0201b9f8 - mov r0, #1 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_02058C08: .4byte 0xFFFFFD76 -_02058C0C: .4byte 0x022B578C -_02058C10: .4byte 0x020A3450 -_02058C14: .4byte 0xFFFF000F -_02058C18: .4byte 0x020AFC4C - arm_func_end FUN_02058afc - - arm_func_start FUN_02058c1c -FUN_02058c1c: @ 0x02058C1C - add r0, r0, #0xe5 - add r0, r0, #0x2600 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bx lr - arm_func_end FUN_02058c1c - - arm_func_start thunk_FUN_0205a430 -thunk_FUN_0205a430: @ 0x02058C30 - ldr ip, _02058C38 @ =FUN_0205a430 - bx ip - .align 2, 0 -_02058C38: .4byte FUN_0205a430 - arm_func_end thunk_FUN_0205a430 -_02058C3C: - .byte 0x04, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x00, 0xD1, 0xE7, 0x1E, 0xFF, 0x2F, 0xE1, 0x0C, 0x19, 0x0A, 0x02, 0x08, 0x40, 0x2D, 0xE9 - .byte 0x00, 0xE0, 0xA0, 0xE3, 0x3C, 0x30, 0x9F, 0xE5, 0x0E, 0xC0, 0xA0, 0xE1, 0x8C, 0x20, 0xA0, 0xE1 - .byte 0xF2, 0x20, 0x93, 0xE1, 0x01, 0x00, 0x52, 0xE1, 0x0E, 0xC0, 0xC0, 0xD7, 0x01, 0xC0, 0x8C, 0xE2 - .byte 0x01, 0xE0, 0x8E, 0xD2, 0x0C, 0x00, 0x5C, 0xE3, 0xF7, 0xFF, 0xFF, 0xBA, 0x0B, 0x10, 0xA0, 0xE3 - .byte 0x01, 0x00, 0x00, 0xEA, 0x0E, 0x10, 0xC0, 0xE7, 0x01, 0xE0, 0x8E, 0xE2, 0x0C, 0x00, 0x5E, 0xE3 - .byte 0xFB, 0xFF, 0xFF, 0xBA, 0x08, 0x80, 0xBD, 0xE8, 0x40, 0x19, 0x0A, 0x02, 0x10, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x40, 0xA0, 0xE3, 0x28, 0xE0, 0x9F, 0xE5, 0x04, 0x20, 0xA0, 0xE1, 0x01, 0x30, 0xA0, 0xE3 - .byte 0x84, 0xC0, 0xA0, 0xE1, 0xFC, 0xC0, 0x9E, 0xE1, 0x01, 0x00, 0x5C, 0xE1, 0x04, 0x30, 0xC0, 0xD7 - .byte 0x04, 0x20, 0xC0, 0xC7, 0x01, 0x40, 0x84, 0xE2, 0x0C, 0x00, 0x54, 0xE3, 0xF7, 0xFF, 0xFF, 0xBA - .byte 0x10, 0x80, 0xBD, 0xE8, 0x40, 0x19, 0x0A, 0x02 - - arm_func_start CanLearnIqSkill -CanLearnIqSkill: @ 0x02058CD8 - cmp r1, #0 - moveq r0, #0 - bxeq lr - ldr r2, _02058D00 @ =0x020A1C7C - ldr r1, [r2, r1, lsl #2] - cmp r1, r0 - movle r0, #1 - movgt r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_02058D00: .4byte 0x020A1C7C - arm_func_end CanLearnIqSkill - - arm_func_start GetLearnableIqSkills -GetLearnableIqSkills: @ 0x02058D04 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov r6, #0 - mov sl, r0 - mov sb, r1 - mov r8, r2 - mov r5, r6 - ldr r4, _02058DA0 @ =0x020A1D90 - mov fp, #0x19 - b _02058D74 -_02058D28: - mov r0, sb - bl GetIqGroup - mla r1, r0, fp, r4 - and r0, r5, #0xff - ldrb r7, [r0, r1] - cmp r7, #0xff - beq _02058D7C - cmp r7, #0x18 - bne _02058D58 - mov r0, #3 - bl GetPerformanceFlagWithChecks - b _02058D64 -_02058D58: - mov r0, r8 - mov r1, r7 - bl CanLearnIqSkill -_02058D64: - cmp r0, #0 - strbne r7, [sl, r6] - addne r6, r6, #1 - add r5, r5, #1 -_02058D74: - cmp r5, #0x19 - blt _02058D28 -_02058D7C: - mov r1, r6 - mov r0, #0 - b _02058D90 -_02058D88: - strb r0, [sl, r1] - add r1, r1, #1 -_02058D90: - cmp r1, #0x45 - blt _02058D88 - mov r0, r6 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02058DA0: .4byte 0x020A1D90 - arm_func_end GetLearnableIqSkills - - arm_func_start DisableIqSkill -DisableIqSkill: @ 0x02058DA4 - push {r3, r4, r5, lr} - mov r4, r0 - mov r5, r1 - bl IqSkillFlagTest - cmp r0, #0 - beq _02058DE4 - asr r0, r5, #4 - add r0, r5, r0, lsr #27 - asr r2, r0, #5 - sub r0, r5, r2, lsl #5 - mov r1, #1 - mvn r0, r1, lsl r0 - ldr r1, [r4, r2, lsl #2] - and r0, r1, r0 - str r0, [r4, r2, lsl #2] - pop {r3, r4, r5, pc} -_02058DE4: - mov r0, r4 - mov r1, r5 - bl EnableIqSkill - pop {r3, r4, r5, pc} - arm_func_end DisableIqSkill - - arm_func_start EnableIqSkill -EnableIqSkill: @ 0x02058DF4 - push {r4, r5, r6, lr} - ldr r2, _02058E64 @ =0x020A1A5C - lsl r3, r1, #1 - ldrsh ip, [r2, r3] - mov r3, #0 - mov r4, #1 -_02058E0C: - lsl r5, r3, #1 - ldrsh r5, [r2, r5] - cmp ip, r5 - bne _02058E3C - asr lr, r3, #4 - add lr, r3, lr, lsr #27 - asr r6, lr, #5 - sub lr, r3, r6, lsl #5 - mvn lr, r4, lsl lr - ldr r5, [r0, r6, lsl #2] - and r5, r5, lr - str r5, [r0, r6, lsl #2] -_02058E3C: - add r3, r3, #1 - cmp r3, #0x45 - blt _02058E0C - lsr ip, r1, #5 - ldr r3, [r0, ip, lsl #2] - sub r1, r1, ip, lsl #5 - mov r2, #1 - orr r1, r3, r2, lsl r1 - str r1, [r0, ip, lsl #2] - pop {r4, r5, r6, pc} - .align 2, 0 -_02058E64: .4byte 0x020A1A5C - arm_func_end EnableIqSkill - - arm_func_start GetSpeciesIqSkill -GetSpeciesIqSkill: @ 0x02058E68 - push {r4, lr} - mov r4, r1 - bl GetIqGroup - ldr r2, _02058E88 @ =0x020A1D90 - mov r1, #0x19 - mla r1, r0, r1, r2 - ldrb r0, [r4, r1] - pop {r4, pc} - .align 2, 0 -_02058E88: .4byte 0x020A1D90 - arm_func_end GetSpeciesIqSkill - - arm_func_start FUN_02058e8c -FUN_02058e8c: @ 0x02058E8C - mov r3, #0 - mov r2, r3 -_02058E94: - add r1, r3, #1 - lsl r1, r1, #0x10 - str r2, [r0, r3, lsl #2] - asr r3, r1, #0x10 - cmp r3, #3 - blt _02058E94 - bx lr - arm_func_end FUN_02058e8c - - arm_func_start FUN_02058eb0 -FUN_02058eb0: @ 0x02058EB0 - push {r4, r5, r6, lr} - sub sp, sp, #0x48 - mov r6, r0 - add r0, sp, #0 - bl GetLearnableIqSkills - mov r0, r6 - bl FUN_02058e8c - mov r5, #0 - add r4, sp, #0 - b _02058EF4 -_02058ED8: - ldrb r0, [r4, r5] - cmp r0, #0 - beq _02058EFC - ldrb r1, [r4, r5] - mov r0, r6 - bl EnableIqSkill - add r5, r5, #1 -_02058EF4: - cmp r5, #0x45 - blt _02058ED8 -_02058EFC: - add sp, sp, #0x48 - pop {r4, r5, r6, pc} - arm_func_end FUN_02058eb0 - - arm_func_start IqSkillFlagTest -IqSkillFlagTest: @ 0x02058F04 - lsr r3, r1, #5 - ldr r2, [r0, r3, lsl #2] - sub r0, r1, r3, lsl #5 - mov r1, #1 - tst r2, r1, lsl r0 - moveq r1, #0 - and r0, r1, #0xff - bx lr - arm_func_end IqSkillFlagTest - - arm_func_start GetNextIqSkill -GetNextIqSkill: @ 0x02058F24 - push {r3, r4, r5, lr} - mov r4, r1 - bl GetIqGroup - ldr r2, _02058F9C @ =0x020A1D90 - mov r1, #0x19 - mla lr, r0, r1, r2 - mov r0, #0 - mov r1, r0 - mov r3, r0 - ldr r2, _02058FA0 @ =0x020A1C7C - b _02058F90 -_02058F50: - ldrb ip, [lr], #1 - cmp ip, #0xff - popeq {r3, r4, r5, pc} - cmp ip, #0 - beq _02058F8C - ldr r5, [r2, ip, lsl #2] - cmp r5, r4 - ble _02058F8C - cmp r1, #0 - beq _02058F80 - cmp r5, r1 - bge _02058F8C -_02058F80: - lsl r1, r5, #0x10 - mov r0, ip - asr r1, r1, #0x10 -_02058F8C: - add r3, r3, #1 -_02058F90: - cmp r3, #0x19 - blt _02058F50 - pop {r3, r4, r5, pc} - .align 2, 0 -_02058F9C: .4byte 0x020A1D90 -_02058FA0: .4byte 0x020A1C7C - arm_func_end GetNextIqSkill -_02058FA4: - .byte 0x1C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x26, 0x0B, 0x80, 0xE2 - .byte 0xFC, 0x09, 0xD0, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03 - .byte 0xFF, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x48, 0x0A, 0x0B, 0x02, 0xF0, 0x41, 0x2D, 0xE9 - .byte 0x00, 0x50, 0xB0, 0xE1, 0xF0, 0x81, 0xBD, 0x08, 0x7C, 0x30, 0x9F, 0xE5, 0xD0, 0x20, 0xD5, 0xE1 - .byte 0x00, 0x00, 0x93, 0xE5, 0x02, 0x10, 0x85, 0xE2, 0x09, 0x0A, 0x80, 0xE2, 0x80, 0x28, 0xC0, 0xE5 - .byte 0x00, 0x00, 0x93, 0xE5, 0x01, 0x40, 0xD5, 0xE5, 0x09, 0x0A, 0x80, 0xE2, 0x14, 0x20, 0xA0, 0xE3 - .byte 0x81, 0x48, 0xC0, 0xE5, 0x00, 0x00, 0x93, 0xE5, 0x82, 0x00, 0x80, 0xE2, 0x26, 0x0B, 0x80, 0xE2 - .byte 0x41, 0x30, 0xFF, 0xEB, 0x18, 0x80, 0x85, 0xE2, 0x3C, 0x70, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE3 - .byte 0x44, 0x50, 0xA0, 0xE3, 0x4C, 0x60, 0xA0, 0xE3, 0x00, 0x00, 0x97, 0xE5, 0x94, 0x86, 0x21, 0xE0 - .byte 0x98, 0x00, 0x80, 0xE2, 0x26, 0x0B, 0x80, 0xE2, 0x94, 0x05, 0x20, 0xE0, 0xB0, 0xF3, 0xFF, 0xEB - .byte 0x01, 0x40, 0x84, 0xE2, 0x04, 0x00, 0x54, 0xE3, 0xF6, 0xFF, 0xFF, 0xBA, 0xBE, 0x00, 0xA0, 0xE3 - .byte 0x01, 0x10, 0xA0, 0xE3, 0xEF, 0xCF, 0xFF, 0xEB, 0xF0, 0x81, 0xBD, 0xE8, 0x48, 0x0A, 0x0B, 0x02 - .byte 0x38, 0x40, 0x2D, 0xE9, 0x4C, 0x10, 0x9F, 0xE5, 0x00, 0x50, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5 - .byte 0x62, 0x0D, 0x80, 0xE2, 0x02, 0x49, 0x80, 0xE2, 0xC9, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x08, 0x00, 0x00, 0x0A, 0x45, 0x1D, 0xFF, 0xEB, 0xD0, 0x10, 0xD4, 0xE1, 0x00, 0x00, 0x51, 0xE1 - .byte 0x04, 0x00, 0x00, 0x1A, 0x05, 0x00, 0xA0, 0xE1, 0x02, 0x10, 0x84, 0xE2, 0x0A, 0x20, 0xA0, 0xE3 - .byte 0x53, 0x30, 0xFF, 0xEB, 0x38, 0x80, 0xBD, 0xE8, 0x0C, 0x10, 0x9F, 0xE5, 0x05, 0x00, 0xA0, 0xE1 - .byte 0x00, 0x32, 0xFF, 0xEB, 0x38, 0x80, 0xBD, 0xE8, 0x48, 0x0A, 0x0B, 0x02, 0x35, 0x02, 0x00, 0x00 - .byte 0x10, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x09, 0x1A, 0x80, 0xE2, 0x78, 0x08, 0x91, 0xE5 - .byte 0x7C, 0x18, 0x91, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x48, 0x0A, 0x0B, 0x02, 0x10, 0x20, 0x9F, 0xE5 - .byte 0x00, 0x20, 0x92, 0xE5, 0x09, 0x2A, 0x82, 0xE2, 0x78, 0x08, 0x82, 0xE5, 0x7C, 0x18, 0x82, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x48, 0x0A, 0x0B, 0x02 - - arm_func_start GetExplorerMazeMonster -GetExplorerMazeMonster: @ 0x020590F8 - ldr r1, _02059114 @ =0x020B0A48 - mov r2, #0x44 - ldr r1, [r1] - add r1, r1, #0x98 - add r1, r1, #0x9800 - smlabb r0, r0, r2, r1 - bx lr - .align 2, 0 -_02059114: .4byte 0x020B0A48 - arm_func_end GetExplorerMazeMonster - - arm_func_start WriteMonsterInfoToSave -WriteMonsterInfoToSave: @ 0x02059118 - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x10 - mov r3, r0 - mov r2, r1 - add r0, sp, #0 - mov r1, r3 - bl FUN_02050990 - ldr r6, _0205921C @ =0x020B0A48 - ldr r5, _02059220 @ =0x0000022B - mov r8, #0 - add r7, sp, #0 - mov r4, #0x44 -_02059148: - ldr r1, [r6] - mov r0, r7 - mla r1, r8, r4, r1 - bl WriteMonsterToSave - add r8, r8, #1 - cmp r8, r5 - blt _02059148 - ldr r1, _0205921C @ =0x020B0A48 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #0x40 - add r1, r1, #0x78 - add r1, r1, #0x9800 - bl CopyBitsTo - ldr r1, _0205921C @ =0x020B0A48 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #4 - add r1, r1, #0x1880 - add r1, r1, #0x8000 - bl CopyBitsTo - ldr r1, _0205921C @ =0x020B0A48 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #4 - add r1, r1, #0x81 - add r1, r1, #0x9800 - bl CopyBitsTo - ldr r1, _0205921C @ =0x020B0A48 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #0x50 - add r1, r1, #0x82 - add r1, r1, #0x9800 - bl CopyBitsTo - ldr r5, _0205921C @ =0x020B0A48 - mov r7, #0 - add r6, sp, #0 - mov r4, #0x44 -_020591E4: - ldr r1, [r5] - mov r0, r6 - add r1, r1, #0x98 - add r1, r1, #0x9800 - mla r1, r7, r4, r1 - bl WriteMonsterToSave - add r7, r7, #1 - cmp r7, #4 - blt _020591E4 - add r0, sp, #0 - bl FUN_020509bc - ldr r0, [sp, #8] - add sp, sp, #0x10 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0205921C: .4byte 0x020B0A48 -_02059220: .4byte 0x0000022B - arm_func_end WriteMonsterInfoToSave - - arm_func_start ReadMonsterInfoFromSave -ReadMonsterInfoFromSave: @ 0x02059224 - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x10 - mov r3, r0 - mov r2, r1 - add r0, sp, #0 - mov r1, r3 - bl FUN_02050974 - ldr r6, _0205932C @ =0x020B0A48 - ldr r5, _02059330 @ =0x0000022B - mov r8, #0 - add r7, sp, #0 - mov r4, #0x44 -_02059254: - ldr r1, [r6] - mov r0, r7 - mla r1, r8, r4, r1 - bl ReadMonsterFromSave - add r8, r8, #1 - cmp r8, r5 - blt _02059254 - ldr r1, _0205932C @ =0x020B0A48 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #0x40 - add r1, r1, #0x78 - add r1, r1, #0x9800 - bl CopyBitsFrom - ldr r1, _0205932C @ =0x020B0A48 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #4 - add r1, r1, #0x1880 - add r1, r1, #0x8000 - bl CopyBitsFrom - ldr r1, _0205932C @ =0x020B0A48 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #4 - add r1, r1, #0x81 - add r1, r1, #0x9800 - bl CopyBitsFrom - ldr r1, _0205932C @ =0x020B0A48 - add r0, sp, #0 - ldr r1, [r1] - mov r2, #0x50 - add r1, r1, #0x82 - add r1, r1, #0x9800 - bl CopyBitsFrom - ldr r5, _0205932C @ =0x020B0A48 - mov r7, #0 - add r6, sp, #0 - mov r4, #0x44 -_020592F0: - ldr r1, [r5] - mov r0, r6 - add r1, r1, #0x98 - add r1, r1, #0x9800 - mla r1, r7, r4, r1 - bl ReadMonsterFromSave - add r7, r7, #1 - cmp r7, #4 - blt _020592F0 - add r0, sp, #0 - bl FUN_020509bc - bl FUN_0205523c - ldr r0, [sp, #8] - add sp, sp, #0x10 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0205932C: .4byte 0x020B0A48 -_02059330: .4byte 0x0000022B - arm_func_end ReadMonsterInfoFromSave - - arm_func_start WriteMonsterToSave -WriteMonsterToSave: @ 0x02059334 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r2, #1 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #1 - mov r2, #7 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #4 - mov r2, #0xb - bl CopyBitsTo - mov r0, r5 - add r1, r4, #2 - bl FUN_020515c4 - mov r0, r5 - add r1, r4, #6 - mov r2, #7 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #7 - mov r2, #7 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #8 - mov r2, #0xa - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0xa - mov r2, #0xa - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0xc - mov r2, #8 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0xd - mov r2, #8 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0xe - mov r2, #8 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0xf - mov r2, #8 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0x10 - mov r2, #0x18 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0x14 - mov r2, #0x45 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0x20 - mov r2, #4 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0x22 - bl CopyMovesetTo - mov r0, r5 - add r1, r4, #0x3a - mov r2, #0x50 - bl CopyBitsTo - pop {r3, r4, r5, pc} - arm_func_end WriteMonsterToSave - - arm_func_start ReadMonsterFromSave -ReadMonsterFromSave: @ 0x02059444 - push {r3, r4, r5, lr} - mov r4, r1 - mov r5, r0 - mov r0, r4 - mov r1, #0 - mov r2, #0x44 - bl Memset - mov r0, r5 - mov r1, r4 - mov r2, #1 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #1 - mov r2, #7 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #4 - mov r2, #0xb - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #2 - bl Copy16BitsFrom - mov r0, r5 - add r1, r4, #6 - mov r2, #7 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #7 - mov r2, #7 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #8 - mov r2, #0xa - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0xa - mov r2, #0xa - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0xc - mov r2, #8 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0xd - mov r2, #8 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0xe - mov r2, #8 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0xf - mov r2, #8 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0x10 - mov r2, #0x18 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0x14 - mov r2, #0x45 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0x20 - mov r2, #4 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0x22 - bl CopyMovesetFrom - mov r0, r5 - add r1, r4, #0x3a - mov r2, #0x50 - bl CopyBitsFrom - pop {r3, r4, r5, pc} - arm_func_end ReadMonsterFromSave - - arm_func_start FUN_0205956c -FUN_0205956c: @ 0x0205956C - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr r2, _020597A4 @ =0x020B0A48 - mov r5, r1 - ldr r1, [r2] - mov r2, #1 - add r1, r1, #0x74 - add r1, r1, #0x9800 - add r1, r1, r5 - mov sl, r0 - bl CopyBitsTo - ldr r1, _020597A4 @ =0x020B0A48 - mov r0, sl - ldr r1, [r1] - mov r2, #0x10 - add r1, r1, #0x850 - add r1, r1, #0x9000 - add r1, r1, r5, lsl #1 - bl CopyBitsTo - ldr r6, _020597A4 @ =0x020B0A48 - mov r4, #0 - mov r7, #0x10 -_020595C0: - ldr r1, [r6] - mov r0, sl - add r1, r1, #0x56 - add r1, r1, #0x9800 - add r1, r1, r5, lsl #3 - mov r2, r7 - add r1, r1, r4, lsl #1 - bl CopyBitsTo - add r4, r4, #1 - cmp r4, #4 - blt _020595C0 - mov r0, #0x1a0 - mul r8, r5, r0 - ldr fp, _020597A8 @ =0x020A3498 - ldr r5, _020597A4 @ =0x020B0A48 - mov sb, #0 - mov r6, #4 - mov r4, #0x68 -_02059608: - ldr r1, [r5] - mov r0, sl - add r1, r1, #0x36c - add r1, r1, #0x9000 - add r1, r1, r8 - mla r7, sb, r4, r1 - mov r1, r7 - mov r2, r6 - bl CopyBitsTo - ldrb r0, [r7, #1] - mov r2, #1 - cmp r0, #0 - movne r1, fp - ldreq r1, _020597AC @ =0x020A3499 - mov r0, sl - bl CopyBitsTo - mov r0, sl - add r1, r7, #2 - mov r2, #7 - bl CopyBitsTo - mov r0, sl - add r1, r7, #3 - bl FUN_020515c4 - mov r0, sl - add r1, r7, #6 - mov r2, #0xa - bl CopyBitsTo - mov r0, sl - add r1, r7, #8 - mov r2, #0x10 - bl CopyBitsTo - mov r0, sl - add r1, r7, #0xa - mov r2, #0x10 - bl CopyBitsTo - mov r0, sl - add r1, r7, #0xc - mov r2, #0xb - bl CopyBitsTo - mov r0, sl - add r1, r7, #0xe - mov r2, #0xa - bl CopyBitsTo - mov r0, sl - add r1, r7, #0x10 - mov r2, #0xa - bl CopyBitsTo - mov r0, sl - add r1, r7, #0x12 - mov r2, #8 - bl CopyBitsTo - mov r0, sl - add r1, r7, #0x13 - mov r2, #8 - bl CopyBitsTo - mov r0, sl - add r1, r7, #0x14 - mov r2, #8 - bl CopyBitsTo - mov r0, sl - add r1, r7, #0x15 - mov r2, #8 - bl CopyBitsTo - mov r0, sl - add r1, r7, #0x18 - mov r2, #0x18 - bl CopyBitsTo - mov r0, sl - add r1, r7, #0x1c - bl FUN_02014b74 - mov r0, sl - add r1, r7, #0x3e - bl FUN_0200df74 - mov r0, sl - add r1, r7, #0x44 - bl FUN_020510c0 - mov r0, sl - add r1, r7, #0x48 - bl FUN_020510c0 - mov r0, sl - add r1, r7, #0x4c - mov r2, #0x45 - bl CopyBitsTo - mov r0, sl - add r1, r7, #0x58 - mov r2, #4 - bl CopyBitsTo - mov r0, sl - add r1, r7, #0x5a - mov r2, #0xa - bl CopyBitsTo - mov r0, sl - add r1, r7, #0x5c - mov r2, #5 - bl CopyBitsTo - add r1, r7, #0x5e - mov r0, sl - mov r2, #0x50 - bl CopyBitsTo - add sb, sb, #1 - cmp sb, #4 - blt _02059608 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_020597A4: .4byte 0x020B0A48 -_020597A8: .4byte 0x020A3498 -_020597AC: .4byte 0x020A3499 - arm_func_end FUN_0205956c - - arm_func_start FUN_020597b0 -FUN_020597b0: @ 0x020597B0 - push {r3, lr} - sub sp, sp, #0x18 - mov r3, r0 - mov r2, r1 - add r0, sp, #8 - mov r1, r3 - bl FUN_02050990 - add r0, sp, #8 - mov r1, #0 - bl FUN_0205956c - add r0, sp, #8 - mov r1, #1 - bl FUN_0205956c - add r0, sp, #8 - mov r1, #2 - bl FUN_0205956c - add r0, sp, #8 - bl FUN_020509bc - ldr r1, _02059820 @ =0x020A3498 - add r0, sp, #0 - ldr r2, [r1, #0x10] - ldr r1, [r1, #0xc] - str r2, [sp, #4] - str r1, [sp] - bl FUN_020584f8 - ldr r0, [sp, #0x10] - add sp, sp, #0x18 - pop {r3, pc} - .align 2, 0 -_02059820: .4byte 0x020A3498 - arm_func_end FUN_020597b0 - - arm_func_start FUN_02059824 -FUN_02059824: @ 0x02059824 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr r2, _02059A70 @ =0x020B0A48 - mov r5, r1 - ldr r1, [r2] - mov r2, #1 - add r1, r1, #0x74 - add r1, r1, #0x9800 - add r1, r1, r5 - mov sl, r0 - bl CopyBitsFrom - ldr r1, _02059A70 @ =0x020B0A48 - mov r0, sl - ldr r1, [r1] - mov r2, #0x10 - add r1, r1, #0x850 - add r1, r1, #0x9000 - add r1, r1, r5, lsl #1 - bl CopyBitsFrom - ldr r6, _02059A70 @ =0x020B0A48 - mov r4, #0 - mov r7, #0x10 -_02059878: - ldr r1, [r6] - mov r0, sl - add r1, r1, #0x56 - add r1, r1, #0x9800 - add r1, r1, r5, lsl #3 - mov r2, r7 - add r1, r1, r4, lsl #1 - bl CopyBitsFrom - add r4, r4, #1 - cmp r4, #4 - blt _02059878 - mov r0, #0x1a0 - mul r8, r5, r0 - mov sb, #0 - ldr r4, _02059A70 @ =0x020B0A48 - mov r5, sb - mov r6, #1 - mov fp, #0x68 -_020598C0: - ldr r0, [r4] - mov r1, #0 - add r0, r0, #0x36c - add r0, r0, #0x9000 - add r0, r0, r8 - mla r7, sb, fp, r0 - mov r0, r7 - mov r2, #0x68 - bl Memset - mov r0, sl - mov r1, r7 - mov r2, #4 - bl CopyBitsFrom - mov r0, sl - add r1, sp, #0 - mov r2, #1 - bl CopyBitsFrom - ldrb r0, [sp] - add r1, r7, #2 - mov r2, #7 - tst r0, #1 - strbne r6, [r7, #1] - mov r0, sl - strbeq r5, [r7, #1] - bl CopyBitsFrom - mov r0, sl - add r1, r7, #3 - bl Copy16BitsFrom - mov r0, sl - add r1, r7, #6 - mov r2, #0xa - bl CopyBitsFrom - mov r0, sl - add r1, r7, #8 - mov r2, #0x10 - bl CopyBitsFrom - mov r0, sl - add r1, r7, #0xa - mov r2, #0x10 - bl CopyBitsFrom - mov r0, sl - add r1, r7, #0xc - mov r2, #0xb - bl CopyBitsFrom - mov r0, sl - add r1, r7, #0xe - mov r2, #0xa - bl CopyBitsFrom - mov r0, sl - add r1, r7, #0x10 - mov r2, #0xa - bl CopyBitsFrom - mov r0, sl - add r1, r7, #0x12 - mov r2, #8 - bl CopyBitsFrom - mov r0, sl - add r1, r7, #0x13 - mov r2, #8 - bl CopyBitsFrom - mov r0, sl - add r1, r7, #0x14 - mov r2, #8 - bl CopyBitsFrom - mov r0, sl - add r1, r7, #0x15 - mov r2, #8 - bl CopyBitsFrom - mov r0, sl - add r1, r7, #0x18 - mov r2, #0x18 - bl CopyBitsFrom - mov r0, sl - add r1, r7, #0x1c - bl FUN_02014c20 - mov r0, sl - add r1, r7, #0x3e - bl FUN_0200df2c - mov r0, sl - add r1, r7, #0x44 - bl FUN_02051098 - mov r0, sl - add r1, r7, #0x48 - bl FUN_02051098 - mov r0, sl - add r1, r7, #0x4c - mov r2, #0x45 - bl CopyBitsFrom - mov r0, sl - add r1, r7, #0x58 - mov r2, #4 - bl CopyBitsFrom - mov r0, sl - add r1, r7, #0x5a - mov r2, #0xa - bl CopyBitsFrom - mov r0, sl - add r1, r7, #0x5c - mov r2, #5 - bl CopyBitsFrom - add r1, r7, #0x5e - mov r0, sl - mov r2, #0x50 - bl CopyBitsFrom - add sb, sb, #1 - cmp sb, #4 - blt _020598C0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02059A70: .4byte 0x020B0A48 - arm_func_end FUN_02059824 - - arm_func_start FUN_02059a74 -FUN_02059a74: @ 0x02059A74 - push {r3, lr} - sub sp, sp, #0x18 - mov r3, r0 - mov r2, r1 - add r0, sp, #8 - mov r1, r3 - bl FUN_02050974 - add r0, sp, #8 - mov r1, #0 - bl FUN_02059824 - add r0, sp, #8 - mov r1, #1 - bl FUN_02059824 - add r0, sp, #8 - mov r1, #2 - bl FUN_02059824 - add r0, sp, #8 - bl FUN_020509bc - ldr r1, _02059AE4 @ =0x020A3498 - add r0, sp, #0 - ldr r2, [r1, #8] - ldr r1, [r1, #4] - str r2, [sp, #4] - str r1, [sp] - bl FUN_020584f8 - ldr r0, [sp, #0x10] - add sp, sp, #0x18 - pop {r3, pc} - .align 2, 0 -_02059AE4: .4byte 0x020A3498 - arm_func_end FUN_02059a74 - - arm_func_start FUN_02059ae8 -FUN_02059ae8: @ 0x02059AE8 - ldr ip, _02059AF4 @ =CopyBitsFrom - mov r2, #7 - bx ip - .align 2, 0 -_02059AF4: .4byte CopyBitsFrom - arm_func_end FUN_02059ae8 - - arm_func_start FUN_02059af8 -FUN_02059af8: @ 0x02059AF8 - ldr ip, _02059B04 @ =CopyBitsTo - mov r2, #7 - bx ip - .align 2, 0 -_02059B04: .4byte CopyBitsTo - arm_func_end FUN_02059af8 - - arm_func_start FUN_02059B08 -FUN_02059B08: @ 0x02059B08 - ldr ip, _02059B14 @ =GetPerformanceFlagWithChecks - mov r0, #0xa - bx ip - .align 2, 0 -_02059B14: .4byte GetPerformanceFlagWithChecks - arm_func_end FUN_02059B08 - - arm_func_start GetEvolutionPossibilities -GetEvolutionPossibilities: @ 0x02059B18 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x30 - mov sb, r0 - ldrsh r6, [sb, #4] - mov r8, r1 - mov r5, #0 - strh r5, [r8, #6] - ldrsh r0, [sb, #4] - cmp r6, #0x258 - ldrlt r4, _0205A1DC @ =0x0000022A - movlt r7, #1 - ldr r2, _0205A1E0 @ =0x000001BF - ldrge r7, _0205A1E4 @ =0x00000259 - ldrge r4, _0205A1E8 @ =0x00000483 - cmp r0, r2 - blt _02059B64 - add r1, r2, #2 - cmp r0, r1 - movle r6, r2 -_02059B64: - ldr r2, _0205A1EC @ =0x00000417 - cmp r0, r2 - blt _02059B84 - add r1, r2, #2 - cmp r0, r1 - ldrle r4, _0205A1DC @ =0x0000022A - suble r6, r2, #0x258 - movle r7, #1 -_02059B84: - ldr r1, _0205A1F0 @ =0x000003E1 - ldr r2, _0205A1F4 @ =0x000001CE - cmp r0, r1 - subeq r6, r1, #0x258 - ldreq r4, _0205A1DC @ =0x0000022A - ldr r1, _0205A1F8 @ =0x0000041E - moveq r7, #1 - cmp r0, r1 - subeq r6, r1, #0x258 - subeq r4, r1, #0x1f4 - moveq r7, #1 - cmp r0, r2 - blt _02059BC4 - add r1, r2, #1 - cmp r0, r1 - movle r6, r2 -_02059BC4: - ldr r2, _0205A1FC @ =0x00000426 - cmp r0, r2 - blt _02059BDC - add r1, r2, #1 - cmp r0, r1 - movle r6, r2 -_02059BDC: - mov r2, #0 - mov r1, r2 -_02059BE4: - add r0, r8, r2, lsl #1 - strh r1, [r0, #0x1a] - strh r1, [r0, #0x2a] - add r2, r2, #1 - strh r1, [r0, #0xa] - cmp r2, #8 - blt _02059BE4 - strh r1, [r8, #8] - ldrsh r0, [sb, #4] - ldr r1, _0205A1F8 @ =0x0000041E - cmp r0, r1 - bne _02059C2C - bl CanEvolve - cmp r0, #0 - bne _02059C44 - mov r0, #4 - strh r0, [r8, #6] - b _0205A1D4 -_02059C2C: - mov r0, r6 - bl CanEvolve - cmp r0, #0 - moveq r0, #4 - strheq r0, [r8, #6] - beq _0205A1D4 -_02059C44: - ldr r0, _0205A200 @ =0xFFFFFE3E - add r0, r0, #0x34c - str r0, [sp, #0x24] - ldr r0, _0205A1F0 @ =0x000003E1 - rsb fp, r0, #0x5a0 - sub r0, r0, #0x258 - str r0, [sp] - ldr r0, _0205A200 @ =0xFFFFFE3E - add r0, r0, #0x390 - str r0, [sp, #8] - ldr r0, _0205A1F0 @ =0x000003E1 - rsb sl, r0, #0x5a0 - ldr r0, _0205A200 @ =0xFFFFFE3E - add r0, r0, #0x390 - str r0, [sp, #4] - ldr r0, _0205A1F0 @ =0x000003E1 - add r0, r0, #0x45 - str r0, [sp, #0xc] - ldr r0, _0205A1F0 @ =0x000003E1 - sub r0, r0, #0x220 - str r0, [sp, #0x20] - ldr r0, _0205A1F0 @ =0x000003E1 - rsb r0, r0, #0x5a0 - str r0, [sp, #0x1c] - ldr r0, _0205A200 @ =0xFFFFFE3E - sub r0, r0, #0x264 - str r0, [sp, #0x18] - ldr r0, _0205A204 @ =0xFFFFFBE9 - sub r0, r0, #0x11 - str r0, [sp, #0x14] - ldr r0, _0205A200 @ =0xFFFFFE3E - sub r0, r0, #0xc - str r0, [sp, #0x10] - b _02059E1C -_02059CCC: - lsl r1, r7, #0x10 - add r0, sp, #0x28 - asr r1, r1, #0x10 - bl GetEvoParameters - ldrh r0, [sp, #0x2a] - cmp r0, #0 - beq _02059E18 - ldrsh r0, [sp, #0x28] - cmp r6, r0 - bne _02059E18 - cmp r6, sl - bgt _02059D14 - cmp r6, fp - bge _02059D8C - ldr r0, [sp] - cmp r6, r0 - beq _02059DD8 - b _02059E0C -_02059D14: - ldr r0, [sp, #4] - cmp r6, r0 - bgt _02059D30 - ldr r0, [sp, #8] - cmp r6, r0 - beq _02059D40 - b _02059E0C -_02059D30: - ldr r0, [sp, #0xc] - cmp r6, r0 - beq _02059D64 - b _02059E0C -_02059D40: - ldrsh r2, [sb, #4] - ldr r0, [sp, #0x10] - sub r1, r7, #0x1d0 - add r0, r2, r0 - cmp r0, r1 - addeq r0, r8, r5, lsl #1 - strheq r7, [r0, #0xa] - addeq r5, r5, #1 - b _02059E18 -_02059D64: - ldr r0, [sp, #0x14] - ldrsh r2, [sb, #4] - add r1, r7, r0 - ldr r0, [sp, #0x18] - add r0, r2, r0 - cmp r0, r1 - addeq r0, r8, r5, lsl #1 - strheq r7, [r0, #0xa] - addeq r5, r5, #1 - b _02059E18 -_02059D8C: - ldr r0, _0205A200 @ =0xFFFFFE3E - ldrsh r2, [sb, #4] - add r1, r7, r0 - ldr r0, _0205A204 @ =0xFFFFFBE9 - add r0, r2, r0 - cmp r0, r1 - addeq r0, r8, r5, lsl #1 - strheq r7, [r0, #0xa] - ldrsh r1, [sb, #4] - ldr r0, [sp, #0x1c] - addeq r5, r5, #1 - cmp r1, r0 - blt _02059E18 - ldr r0, [sp, #0x20] - cmp r1, r0 - addle r0, r8, r5, lsl #1 - strhle r7, [r0, #0xa] - addle r5, r5, #1 - b _02059E18 -_02059DD8: - ldrsh r1, [sb, #4] - ldr r0, _0205A1F0 @ =0x000003E1 - cmp r1, r0 - ldreq r0, [sp, #0x24] - cmpeq r7, r0 - addeq r0, r8, r5, lsl #1 - addeq r1, r7, #0x258 - addeq r5, r5, #1 - strheq r1, [r0, #0xa] - addne r0, r8, r5, lsl #1 - strhne r7, [r0, #0xa] - addne r5, r5, #1 - b _02059E18 -_02059E0C: - add r0, r8, r5, lsl #1 - strh r7, [r0, #0xa] - add r5, r5, #1 -_02059E18: - add r7, r7, #1 -_02059E1C: - cmp r7, r4 - blt _02059CCC - cmp r5, #0 - moveq r0, #4 - strheq r0, [r8, #6] - beq _0205A1D4 - mov r7, #0 - b _0205A1CC -_02059E3C: - add r0, r8, r7, lsl #1 - ldrsh sl, [r0, #0xa] - add r0, sp, #0x28 - mov r1, sl - bl GetEvoParameters - ldrh r0, [sp, #0x2a] - mov r4, #0 - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _02059F44 -_02059E64: @ jump table - b _02059F44 @ case 0 - b _02059E78 @ case 1 - b _02059E98 @ case 2 - b _02059EB8 @ case 3 - b _02059EE4 @ case 4 -_02059E78: - ldrb r1, [sb, #1] - ldrsh r0, [sp, #0x2c] - cmp r1, r0 - ldrhlt r0, [r8, #6] - movlt r4, #1 - orrlt r0, r0, #2 - strhlt r0, [r8, #6] - b _02059F44 -_02059E98: - ldrsh r1, [sb, #8] - ldrsh r0, [sp, #0x2c] - cmp r1, r0 - ldrhlt r0, [r8, #6] - movlt r4, #1 - orrlt r0, r0, #0x10 - strhlt r0, [r8, #6] - b _02059F44 -_02059EB8: - ldrsh r0, [sp, #0x2c] - bl FindItemInInventory - cmp r0, #0 - ldrhlt r0, [r8, #6] - movlt r4, #1 - orrlt r0, r0, #8 - strhlt r0, [r8, #6] - ldrshge r1, [sp, #0x2c] - addge r0, r8, r7, lsl #1 - strhge r1, [r0, #0x1a] - b _02059F44 -_02059EE4: - ldrsh r0, [sp, #0x2c] - mov r1, #0x258 - mov r6, r4 - bl DivideInt - lsl r0, r1, #0x10 - asr r0, r0, #0x10 - mov r1, r4 - bl IsMonsterOnTeam - cmp r0, #0 - ldrsh r0, [sp, #0x2c] - mov r1, #0x258 - addne r6, r6, #1 - bl DivideInt - lsl r0, r1, #0x10 - asr r0, r0, #0x10 - add r0, r0, #0x258 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - mov r1, #0 - bl IsMonsterOnTeam - cmp r0, #0 - addne r6, r6, #1 - cmp r6, #0 - moveq r4, #1 -_02059F44: - ldrh r0, [sp, #0x2e] - cmp r0, #0xf - addls pc, pc, r0, lsl #2 - b _0205A1A8 -_02059F54: @ jump table - b _0205A1A8 @ case 0 - b _0205A08C @ case 1 - b _0205A0B8 @ case 2 - b _0205A0CC @ case 3 - b _0205A0E0 @ case 4 - b _0205A0F4 @ case 5 - b _0205A120 @ case 6 - b _0205A16C @ case 7 - b _0205A14C @ case 8 - b _0205A15C @ case 9 - b _0205A18C @ case 10 - b _0205A19C @ case 11 - b _02059F94 @ case 12 - b _02059FD0 @ case 13 - b _0205A00C @ case 14 - b _0205A04C @ case 15 -_02059F94: - mov r6, #0 - mov r4, #1 - mov r1, r6 - mov r0, #6 -_02059FA4: - mla r3, r6, r0, sb - ldrb r2, [r3, #0x22] - tst r2, #1 - beq _02059FC0 - ldrh r2, [r3, #0x24] - cmp r2, #0x5d - moveq r4, r1 -_02059FC0: - add r6, r6, #1 - cmp r6, #4 - blt _02059FA4 - b _0205A1A8 -_02059FD0: - mov r6, #0 - mov r4, #1 - mov r1, r6 - mov r0, #6 -_02059FE0: - mla r3, r6, r0, sb - ldrb r2, [r3, #0x22] - tst r2, #1 - beq _02059FFC - ldrh r2, [r3, #0x24] - cmp r2, #0x69 - moveq r4, r1 -_02059FFC: - add r6, r6, #1 - cmp r6, #4 - blt _02059FE0 - b _0205A1A8 -_0205A00C: - mov r0, #0 - ldr r1, _0205A208 @ =0x000001E7 - mov r4, #1 - mov r3, r0 - mov r2, #6 -_0205A020: - mla fp, r0, r2, sb - ldrb r6, [fp, #0x22] - tst r6, #1 - beq _0205A03C - ldrh r6, [fp, #0x24] - cmp r6, r1 - moveq r4, r3 -_0205A03C: - add r0, r0, #1 - cmp r0, #4 - blt _0205A020 - b _0205A1A8 -_0205A04C: - mov r0, #0 - ldr r1, _0205A20C @ =0x00000147 - mov r4, #1 - mov r3, r0 - mov r2, #6 -_0205A060: - mla fp, r0, r2, sb - ldrb r6, [fp, #0x22] - tst r6, #1 - beq _0205A07C - ldrh r6, [fp, #0x24] - cmp r6, r1 - moveq r4, r3 -_0205A07C: - add r0, r0, #1 - cmp r0, #4 - blt _0205A060 - b _0205A1A8 -_0205A08C: - mov r0, #0x97 - bl FindItemInInventory - cmp r0, #0 - ldrhlt r0, [r8, #6] - movge r1, #0x97 - movlt r4, #1 - orrlt r0, r0, #8 - strhlt r0, [r8, #6] - addge r0, r8, r7, lsl #1 - strhge r1, [r0, #0x2a] - b _0205A1A8 -_0205A0B8: - ldrb r1, [sb, #0xc] - ldrb r0, [sb, #0xe] - cmp r1, r0 - movls r4, #1 - b _0205A1A8 -_0205A0CC: - ldrb r1, [sb, #0xc] - ldrb r0, [sb, #0xe] - cmp r1, r0 - movhs r4, #1 - b _0205A1A8 -_0205A0E0: - ldrb r1, [sb, #0xc] - ldrb r0, [sb, #0xe] - cmp r1, r0 - movne r4, #1 - b _0205A1A8 -_0205A0F4: - mov r0, #0x37 - bl FindItemInInventory - cmp r0, #0 - ldrhlt r0, [r8, #6] - movge r1, #0x37 - movlt r4, #1 - orrlt r0, r0, #8 - strhlt r0, [r8, #6] - addge r0, r8, r7, lsl #1 - strhge r1, [r0, #0x2a] - b _0205A1A8 -_0205A120: - mov r0, #0x38 - bl FindItemInInventory - cmp r0, #0 - ldrhlt r0, [r8, #6] - movge r1, #0x38 - movlt r4, #1 - orrlt r0, r0, #8 - strhlt r0, [r8, #6] - addge r0, r8, r7, lsl #1 - strhge r1, [r0, #0x2a] - b _0205A1A8 -_0205A14C: - ldrb r0, [r8, #4] - tst r0, #1 - movne r4, #1 - b _0205A1A8 -_0205A15C: - ldrb r0, [r8, #4] - tst r0, #1 - moveq r4, #1 - b _0205A1A8 -_0205A16C: - mov r0, #0x36 - bl FindItemInInventory - cmp r0, #0 - addge r0, r8, r7, lsl #1 - movge r1, #0x36 - movlt r4, #1 - strhge r1, [r0, #0x2a] - b _0205A1A8 -_0205A18C: - ldrsh r0, [sb, #4] - cmp r0, #0x258 - movge r4, #1 - b _0205A1A8 -_0205A19C: - ldrsh r0, [sb, #4] - cmp r0, #0x258 - movlt r4, #1 -_0205A1A8: - cmp r4, #0 - ldrheq r0, [r8, #6] - movne r1, #0 - orreq r0, r0, #1 - strheq r0, [r8, #6] - addne r0, r8, r7, lsl #1 - strheq sl, [r8, #8] - strhne r1, [r0, #0xa] - add r7, r7, #1 -_0205A1CC: - cmp r7, r5 - blt _02059E3C -_0205A1D4: - add sp, sp, #0x30 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0205A1DC: .4byte 0x0000022A -_0205A1E0: .4byte 0x000001BF -_0205A1E4: .4byte 0x00000259 -_0205A1E8: .4byte 0x00000483 -_0205A1EC: .4byte 0x00000417 -_0205A1F0: .4byte 0x000003E1 -_0205A1F4: .4byte 0x000001CE -_0205A1F8: .4byte 0x0000041E -_0205A1FC: .4byte 0x00000426 -_0205A200: .4byte 0xFFFFFE3E -_0205A204: .4byte 0xFFFFFBE9 -_0205A208: .4byte 0x000001E7 -_0205A20C: .4byte 0x00000147 - arm_func_end GetEvolutionPossibilities - - arm_func_start GetMonsterEvoStatus -GetMonsterEvoStatus: @ 0x0205A210 - push {r3, r4, lr} - sub sp, sp, #0x3c - add r1, sp, #0 - mov r4, r0 - bl GetEvolutionPossibilities - ldrh r0, [sp, #6] - tst r0, #1 - beq _0205A274 - ldrb r0, [r4, #2] - cmp r0, #0xd6 - moveq r1, #1 - movne r1, #0 - tst r1, #0xff - bne _0205A254 - bl JoinedAtRangeCheck2 - cmp r0, #0 - beq _0205A26C -_0205A254: - mov r0, #0xa - bl GetPerformanceFlagWithChecks - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - b _0205A280 -_0205A26C: - mov r0, #1 - b _0205A280 -_0205A274: - tst r0, #4 - movne r0, #2 - moveq r0, #0 -_0205A280: - add sp, sp, #0x3c - pop {r3, r4, pc} - arm_func_end GetMonsterEvoStatus - - arm_func_start FUN_0205a288 -FUN_0205a288: @ 0x0205A288 - push {r4, r5, r6, lr} - sub sp, sp, #0x48 - mvn r2, #0 - mov r6, r0 - strh r2, [sp] - ldrsh r0, [r6] - mov r5, r1 - bl GetTeamMember - add lr, sp, #4 - mov r4, r0 - mov ip, #4 -_0205A2B4: - ldm r4!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _0205A2B4 - ldr r3, [r4] - add r1, sp, #4 - mov r0, r6 - mov r2, r5 - str r3, [lr] - bl FUN_0205a340 - ldr r0, _0205A33C @ =0x0000013F - cmp r5, r0 - addne r0, r0, #0x258 - cmpne r5, r0 - bne _0205A330 - mov r0, #0x140 - bl GetNameString - mov r1, r0 - add r0, sp, #0x3e - mov r2, #0xa - bl FUN_02025314 - add r0, sp, #0 - add r1, sp, #4 - mov r2, #0x140 - bl FUN_0205a340 - ldrsh r1, [sp] - mvn r0, #0 - cmp r1, r0 - beq _0205A330 - mov r0, #0x140 - bl SetPokemonJoined -_0205A330: - mov r0, #1 - add sp, sp, #0x48 - pop {r4, r5, r6, pc} - .align 2, 0 -_0205A33C: .4byte 0x0000013F - arm_func_end FUN_0205a288 - - arm_func_start FUN_0205a340 -FUN_0205a340: @ 0x0205A340 - push {r4, r5, r6, lr} - sub sp, sp, #0x90 - add ip, sp, #0x4c - mov r6, r0 - mov lr, r1 - mov r5, r2 - mov r4, #4 -_0205A35C: - ldm lr!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - subs r4, r4, #1 - bne _0205A35C - ldr r1, [lr] - add r0, sp, #0x40 - str r1, [ip] - ldrb r2, [sp, #0x4d] - mov r1, r5 - ldrsh r4, [sp, #0x50] - bl GetLvlStats - ldrb r0, [sp, #0x52] - ldr r1, [sp, #0x40] - strh r5, [sp, #0x50] - cmp r0, #0 - ldrbeq r0, [sp, #0x4d] - str r1, [sp, #0x5c] - strbeq r0, [sp, #0x52] - beq _0205A3B8 - ldrb r0, [sp, #0x53] - cmp r0, #0 - ldrbeq r0, [sp, #0x4d] - strbeq r0, [sp, #0x53] -_0205A3B8: - mov r0, r4 - bl GetNameString - mov r1, r0 - add r0, sp, #0 - bl SpecialStrcpy - add r0, sp, #0 - add r1, sp, #0x86 - mov r2, #0xa - bl StrncmpSimple - cmp r0, #0 - bne _0205A3FC - mov r0, r5 - bl GetNameString - mov r1, r0 - add r0, sp, #0x86 - mov r2, #0xa - bl FUN_02025314 -_0205A3FC: - ldrsh r0, [r6] - mvn r1, #0 - cmp r0, r1 - beq _0205A418 - add r1, sp, #0x4c - bl FUN_02055d7c - b _0205A424 -_0205A418: - add r0, sp, #0x4c - bl FUN_02055ccc - strh r0, [r6] -_0205A424: - ldrsh r0, [r6] - add sp, sp, #0x90 - pop {r4, r5, r6, pc} - arm_func_end FUN_0205a340 - - arm_func_start FUN_0205a430 -FUN_0205a430: @ 0x0205A430 - ldr r2, _0205A448 @ =0x0209E6C0 - lsl r1, r1, #1 - ldrh r1, [r2, r1] - ldr ip, _0205A44C @ =CopyStringFromMessageId - mov r2, #0x40 - bx ip - .align 2, 0 -_0205A448: .4byte 0x0209E6C0 -_0205A44C: .4byte CopyStringFromMessageId - arm_func_end FUN_0205a430 - - arm_func_start FUN_0205a450 -FUN_0205a450: @ 0x0205A450 - push {r4, lr} - sub sp, sp, #0x10 - ldrb ip, [sp, #0x18] - mov r4, r0 - add r0, sp, #4 - str ip, [sp] - bl FUN_0205b120 - ldrb r1, [r4, #0x39] - ldrsh r0, [sp, #6] - add r0, r1, r0 - strb r0, [r4, #0x39] - ldrb r1, [r4, #0x3a] - ldrsh r0, [sp, #8] - add r0, r1, r0 - strb r0, [r4, #0x3a] - ldrb r1, [r4, #0x3b] - ldrsh r0, [sp, #0xa] - add r0, r1, r0 - strb r0, [r4, #0x3b] - ldrb r1, [r4, #0x3c] - ldrsh r0, [sp, #0xc] - add r0, r1, r0 - strb r0, [r4, #0x3c] - add sp, sp, #0x10 - pop {r4, pc} - arm_func_end FUN_0205a450 - - arm_func_start FUN_0205a4b4 -FUN_0205a4b4: @ 0x0205A4B4 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x184 - mov r6, r1 - mov r5, r2 - mov r4, r3 - cmp r0, #5 - mov r7, #0x10 - addls pc, pc, r0, lsl #2 - b _0205AD98 -_0205A4D8: @ jump table - b _0205AD98 @ case 0 - b _0205A9D4 @ case 1 - b _0205A4F0 @ case 2 - b _0205A900 @ case 3 - b _0205AAC8 @ case 4 - b _0205AC0C @ case 5 -_0205A4F0: - ldr r0, [r6, #0x2c] - ldr r2, _0205ADA0 @ =0x00000951 - str r0, [sp, #0x90] - ldr r1, [r6, #0x30] - add r5, sp, #0x6c - str r1, [sp, #0x94] - add r0, sp, #0xbc - mov r1, #0xc8 - mov r3, #0 - str r5, [sp] - bl PreprocessStringFromMessageId - add r3, sp, #0xbc - mov r0, r4 - mov r1, #4 - mov r2, r7 - bl FUN_02026214 - mov r3, r5 - str r3, [sp] - ldr r2, _0205ADA4 @ =0x00000952 - add r0, sp, #0xbc - mov r1, #0xc8 - mov r3, #0 - bl PreprocessStringFromMessageId - mov r0, r4 - mov r1, #4 - mov r2, #0x1c - add r3, sp, #0xbc - bl FUN_02026214 - ldr r2, [r6, #0x2c] - cmp r2, #0x64 - bge _0205A5B8 - ldrsh r1, [r6] - add r0, sp, #0x18 - add r2, r2, #1 - bl GetLvlStats - ldr r1, [sp, #0x18] - ldr r0, [r6, #0x30] - ldr r2, _0205ADA8 @ =0x00000953 - sub r0, r1, r0 - str r0, [sp, #0x90] - add r0, sp, #0xbc - mov r1, #0xc8 - mov r3, #0 - str r5, [sp] - bl PreprocessStringFromMessageId - add r3, sp, #0xbc - mov r0, r4 - mov r1, #4 - mov r2, #0x28 - bl FUN_02026214 -_0205A5B8: - ldr r0, [r6, #0x24] - ldr r2, _0205ADAC @ =0x00000954 - str r0, [sp, #0x90] - ldr r1, [r6, #0x28] - add r5, sp, #0x6c - str r1, [sp, #0x94] - add r0, sp, #0xbc - mov r1, #0xc8 - mov r3, #0 - str r5, [sp] - bl PreprocessStringFromMessageId - add r3, sp, #0xbc - mov r0, r4 - mov r1, #4 - mov r2, #0x36 - bl FUN_02026214 - mov r3, r5 - str r3, [sp] - ldr r2, _0205ADB0 @ =0x00000955 - add r0, sp, #0xbc - mov r1, #0xc8 - mov r3, #0 - bl PreprocessStringFromMessageId - mov r0, r4 - mov r1, #4 - mov r2, #0x42 - add r3, sp, #0xbc - bl FUN_02026214 - ldrb r1, [r6, #0x34] - ldr r2, _0205ADB4 @ =0x00000957 - add r5, sp, #0x6c - str r1, [sp, #0x90] - ldrb r0, [r6, #0x39] - mov r3, #0 - cmp r0, #0 - addne r0, r1, r0 - strne r0, [sp, #0x90] - addne r2, r2, #1 - add r0, sp, #0xbc - mov r1, #0xc8 - str r5, [sp] - bl PreprocessStringFromMessageId - add r3, sp, #0xbc - mov r0, r4 - mov r1, #4 - mov r2, #0x42 - bl FUN_02026214 - ldrb r2, [r6, #0x3b] - ldrb r1, [r6, #0x36] - add r0, sp, #0xbc - cmp r2, #0 - mov r3, #0 - beq _0205A6BC - add r1, r1, r2 - str r1, [sp, #0x90] - ldr r2, _0205ADB8 @ =0x0000095C - mov r1, #0xc8 - str r5, [sp] - bl PreprocessStringFromMessageId - add r3, sp, #0xbc - mov r0, r4 - mov r1, #4 - mov r2, #0x42 - bl FUN_02026214 - b _0205A6E4 -_0205A6BC: - ldr r2, _0205ADBC @ =0x0000095B - str r1, [sp, #0x90] - mov r1, #0xc8 - str r5, [sp] - bl PreprocessStringFromMessageId - add r3, sp, #0xbc - mov r0, r4 - mov r1, #4 - mov r2, #0x42 - bl FUN_02026214 -_0205A6E4: - ldr r2, _0205ADC0 @ =0x00000956 - add r5, sp, #0x6c - add r0, sp, #0xbc - mov r1, #0xc8 - mov r3, #0 - str r5, [sp] - bl PreprocessStringFromMessageId - add r3, sp, #0xbc - mov r0, r4 - mov r1, #4 - mov r2, #0x4e - bl FUN_02026214 - ldrb r1, [r6, #0x35] - ldr r2, _0205ADC4 @ =0x00000959 - add r5, sp, #0x6c - str r1, [sp, #0x90] - ldrb r0, [r6, #0x3a] - mov r3, #0 - cmp r0, #0 - addne r0, r1, r0 - strne r0, [sp, #0x90] - addne r2, r2, #1 - add r0, sp, #0xbc - mov r1, #0xc8 - str r5, [sp] - bl PreprocessStringFromMessageId - add r3, sp, #0xbc - mov r0, r4 - mov r1, #4 - mov r2, #0x4e - bl FUN_02026214 - ldrb r2, [r6, #0x3c] - ldrb r1, [r6, #0x37] - add r0, sp, #0xbc - cmp r2, #0 - mov r3, #0 - beq _0205A7A8 - add r1, r1, r2 - str r1, [sp, #0x90] - ldr r2, _0205ADC8 @ =0x0000095E - mov r1, #0xc8 - str r5, [sp] - bl PreprocessStringFromMessageId - add r3, sp, #0xbc - mov r0, r4 - mov r1, #4 - mov r2, #0x4e - bl FUN_02026214 - b _0205A7D0 -_0205A7A8: - ldr r2, _0205ADCC @ =0x0000095D - str r1, [sp, #0x90] - mov r1, #0xc8 - str r5, [sp] - bl PreprocessStringFromMessageId - add r3, sp, #0xbc - mov r0, r4 - mov r1, #4 - mov r2, #0x4e - bl FUN_02026214 -_0205A7D0: - ldrb r0, [r6, #0x1c] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _0205A820 - bl FUN_02025888 - ldr r2, _0205ADD0 @ =0x020A34B8 - add r1, r6, #0x1c - mov r7, r0 - bl FUN_0200d670 - add r5, sp, #0x6c - str r7, [sp, #0xa4] - add r0, sp, #0xbc - mov r1, #0xc8 - mov r2, #0x960 - mov r3, #0 - str r5, [sp] - bl PreprocessStringFromMessageId - b _0205A83C -_0205A820: - ldr r2, _0205ADD4 @ =0x0000095F - add r5, sp, #0x6c - add r0, sp, #0xbc - mov r1, #0xc8 - mov r3, #0 - str r5, [sp] - bl PreprocessStringFromMessageId -_0205A83C: - add r3, sp, #0xbc - mov r0, r4 - mov r1, #4 - mov r2, #0x5a - bl FUN_02026214 - ldrsh r0, [r6, #0x3e] - mov r1, #0xa - str r0, [sp, #0x90] - ldrsh r0, [r6, #0x3e] - bl DivideInt - movs r1, r0 - movmi r1, #0 - cmp r1, #0x63 - ldr r0, _0205ADD8 @ =0x020A34D2 - movge r1, #0x63 - bl FUN_0205b39c - str r0, [sp, #0xa4] - add r5, sp, #0x6c - ldr r2, _0205ADDC @ =0x00000961 - add r0, sp, #0xbc - mov r1, #0xc8 - mov r3, #0 - str r5, [sp] - bl PreprocessStringFromMessageId - add r3, sp, #0xbc - mov r0, r4 - mov r1, #4 - mov r2, #0x68 - bl FUN_02026214 - ldrb r0, [r6, #0x38] - cmp r0, #0 - bne _0205AD98 - bl FUN_02025888 - ldrb r1, [r6, #0x54] - mov r6, r0 - bl thunk_FUN_0205a430 - str r6, [sp, #0xa4] - ldr r2, _0205ADE0 @ =0x00000962 - add r0, sp, #0xbc - mov r1, #0xc8 - mov r3, #0 - str r5, [sp] - bl PreprocessStringFromMessageId - add r3, sp, #0xbc - mov r0, r4 - mov r1, #4 - mov r2, #0x74 - bl FUN_02026214 - b _0205AD98 -_0205A900: - ldr r3, _0205ADE4 @ =0x00000972 - mov r0, r4 - mov r2, r7 - mov r1, #4 - bl FUN_02026268 - ldrb r0, [r6, #0x16] - bl GetTypeStringId - mov r3, r0 - mov r0, r4 - mov r1, #0x38 - mov r2, r7 - bl FUN_02026268 - ldrb r0, [r6, #0x17] - cmp r0, #0 - beq _0205A954 - bl GetTypeStringId - mov r3, r0 - mov r0, r4 - mov r1, #0x68 - mov r2, r7 - bl FUN_02026268 -_0205A954: - ldr r3, _0205ADE8 @ =0x00000973 - mov r0, r4 - mov r1, #4 - mov r2, #0x1c - bl FUN_02026268 - ldrb r0, [r6, #0x18] - bl GetAbilityDescStringId - bl StringFromMessageId - mov r1, #0 - str r1, [sp] - mov r1, #0xb - str r1, [sp, #4] - mov r3, r0 - mov r0, r4 - mov r1, #4 - mov r2, #0x28 - bl FUN_02026358 - ldrb r0, [r6, #0x19] - cmp r0, #0 - beq _0205AD98 - bl GetAbilityDescStringId - bl StringFromMessageId - mov r1, #0 - mov r3, r0 - mov r0, r4 - str r1, [sp] - mov r4, #0xb - mov r1, #4 - mov r2, #0x49 - str r4, [sp, #4] - bl FUN_02026358 - b _0205AD98 -_0205A9D4: - ldrsh r0, [r6, #0x56] - mov fp, #0 - mov r1, fp - sub r8, r0, #1 - sub r7, r7, #0xc - mov sl, fp -_0205A9EC: - add r0, r5, r1, lsl #2 - add r1, r1, #1 - str sl, [r0, #0xc] - cmp r1, #0xa - blt _0205A9EC - b _0205AAA0 -_0205AA04: - cmp r8, #0 - cmpge r7, #0x10 - blt _0205AA94 - cmp r8, #0x1e - bge _0205AAA8 - add sb, r6, r8 - ldrb r0, [sb, #0x58] - cmp r0, #0 - beq _0205AA94 - mov fp, #1 - bl FUN_02025888 - ldrb r1, [sb, #0x58] - str r0, [sp, #8] - mov r2, #0x50 - lsl r3, r1, #1 - ldr r1, _0205ADEC @ =0x0209E6D8 - ldrh r1, [r1, r3] - bl CopyStringFromMessageId - ldr r0, [sp, #8] - ldr r2, _0205ADF0 @ =0x020A34FC - str r0, [sp, #0xa8] - add r0, sp, #0x6c - str r0, [sp] - add r0, sp, #0xbc - mov r1, #0xc8 - mov r3, #0 - bl PreprocessString - mov r0, r4 - mov r1, #0xc - mov r2, r7 - add r3, sp, #0xbc - bl FUN_02026214 - cmp sl, #1 - ldrbge r1, [sb, #0x58] - addge r0, r5, sl, lsl #2 - strge r1, [r0, #8] -_0205AA94: - add sl, sl, #1 - add r8, r8, #1 - add r7, r7, #0xc -_0205AAA0: - cmp sl, #0xa - blt _0205AA04 -_0205AAA8: - cmp fp, #0 - bne _0205AD98 - ldr r3, _0205ADF4 @ =0x00000968 - mov r0, r4 - mov r1, #0xc - mov r2, #0x10 - bl FUN_02026268 - b _0205AD98 -_0205AAC8: - ldrsh r1, [r6] - ldrsh r2, [r6, #0x3e] - add r0, sp, #0x24 - bl GetLearnableIqSkills - ldrsh r0, [r6, #0x40] - mov r1, #0 - mov sb, r1 - sub r8, r0, #1 -_0205AAE8: - strb sb, [r5, r1] - add r1, r1, #1 - cmp r1, #9 - blt _0205AAE8 - mov sl, sb - sub r7, r7, #0xc - add fp, sp, #0x24 - b _0205ABE4 -_0205AB08: - cmp r8, #0 - blt _0205ABD8 - cmp r8, #0x45 - bge _0205ABEC - ldrb r0, [fp, r8] - cmp r0, #0 - beq _0205ABD8 - mov sb, #1 - bl FUN_02025888 - str r0, [sp, #0xc] - ldrb r0, [fp, r8] - bl FUN_02058c1c - mov r1, r0 - ldr r0, [sp, #0xc] - mov r2, #0x50 - bl CopyStringFromMessageId - ldr r0, [sp, #0xc] - ldrb r1, [fp, r8] - str r0, [sp, #0xa8] - add r0, r6, #0x48 - bl IqSkillFlagTest - cmp r0, #0 - beq _0205AB80 - bl FUN_02025888 - ldr r1, _0205ADF8 @ =0x020A3514 - str r0, [sp, #0x10] - bl Strcpy - ldr r0, [sp, #0x10] - str r0, [sp, #0xa4] - b _0205AB98 -_0205AB80: - bl FUN_02025888 - ldr r1, _0205ADFC @ =0x020A351C - str r0, [sp, #0x14] - bl Strcpy - ldr r0, [sp, #0x14] - str r0, [sp, #0xa4] -_0205AB98: - cmp sl, #1 - ldrbge r1, [fp, r8] - addge r0, r5, sl - ldr r2, _0205AE00 @ =0x020A3524 - strbge r1, [r0, #-1] - add r0, sp, #0x6c - str r0, [sp] - add r0, sp, #0xbc - mov r1, #0xc8 - mov r3, #0 - bl PreprocessString - mov r0, r4 - mov r1, #0xc - mov r2, r7 - add r3, sp, #0xbc - bl FUN_02026214 -_0205ABD8: - add sl, sl, #1 - add r8, r8, #1 - add r7, r7, #0xc -_0205ABE4: - cmp sl, #0xa - blt _0205AB08 -_0205ABEC: - cmp sb, #0 - bne _0205AD98 - ldr r3, _0205AE04 @ =0x00000969 - mov r0, r4 - mov r1, #0xc - mov r2, #0x20 - bl FUN_02026268 - b _0205AD98 -_0205AC0C: - bl FUN_02025888 - ldrsh r1, [r6] - mov r5, r0 - bl GetNameRaw - str r5, [sp, #0xa4] - ldrsh r0, [r6] - str r0, [sp, #0x90] - ldrsh r0, [r6] - bl GetMonsterGenderVeneer - cmp r0, #1 - beq _0205AC48 - cmp r0, #2 - beq _0205AC50 - cmp r0, #3 - b _0205AC58 -_0205AC48: - ldr r2, _0205AE08 @ =0x00000963 - b _0205AC5C -_0205AC50: - ldr r2, _0205AE0C @ =0x00000964 - b _0205AC5C -_0205AC58: - ldr r2, _0205AE10 @ =0x00000965 -_0205AC5C: - add r5, sp, #0x6c - add r0, sp, #0xbc - mov r1, #0xc8 - mov r3, #0 - str r5, [sp] - bl PreprocessStringFromMessageId - add r3, sp, #0xbc - mov r0, r4 - mov r1, #4 - mov r2, #0x10 - bl FUN_02026214 - ldr r3, _0205AE14 @ =0x00000967 - mov r0, r4 - mov r1, #4 - mov r2, #0x1f - bl FUN_02026268 - ldrb r2, [r6, #0x1a] - mov r1, r5 - add r0, sp, #0xbc - str r2, [sp, #0x7c] - str r1, [sp] - ldr r2, _0205AE18 @ =0x0000096B - mov r1, #0xc8 - mov r3, #0 - bl PreprocessStringFromMessageId - mov r0, r4 - mov r1, #4 - mov r2, #0x2b - add r3, sp, #0xbc - bl FUN_02026214 - bl FUN_02025888 - mov r5, r0 - ldrsh r0, [r6] - bl GetCategoryString - mov r1, r0 - mov r0, r5 - bl Strcpy - mov r0, #0x44 - strb r0, [r5, #4] - str r5, [sp, #0xa4] - add r1, sp, #0x6c - str r1, [sp] - ldr r2, _0205AE1C @ =0x00000966 - add r0, sp, #0xbc - mov r1, #0xc8 - mov r3, #0 - bl PreprocessStringFromMessageId - mov r0, r4 - mov r1, #4 - mov r2, #0x3a - add r3, sp, #0xbc - bl FUN_02026214 - ldrsh r0, [r6] - bl GetBodySize - mov r1, r0 - ldr r0, _0205AE20 @ =0x020A34C4 - bl FUN_0205b39c - str r0, [sp, #0xa4] - add r1, sp, #0x6c - str r1, [sp] - ldr r2, _0205AE24 @ =0x0000096A - add r0, sp, #0xbc - mov r1, #0xc8 - mov r3, #0 - bl PreprocessStringFromMessageId - add r3, sp, #0xbc - mov r0, r4 - mov r1, #4 - mov r2, #0x58 - bl FUN_02026214 - ldrb r2, [r6, #0x44] - mov r0, r4 - mov r1, #4 - add r2, r2, #0x16c - add r2, r2, #0x800 + orr r3, r3, ip, lsl #8 + lsl r3, r3, #0x10 + add r2, r2, r3, lsr #16 + add r0, r0, #2 + bhi _022C8598 + b _022C8610 +_022C85C0: lsl r2, r2, #0x10 lsr r3, r2, #0x10 - mov r2, #0x67 - bl FUN_02026268 -_0205AD98: - add sp, sp, #0x184 - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0205ADA0: .4byte 0x00000951 -_0205ADA4: .4byte 0x00000952 -_0205ADA8: .4byte 0x00000953 -_0205ADAC: .4byte 0x00000954 -_0205ADB0: .4byte 0x00000955 -_0205ADB4: .4byte 0x00000957 -_0205ADB8: .4byte 0x0000095C -_0205ADBC: .4byte 0x0000095B -_0205ADC0: .4byte 0x00000956 -_0205ADC4: .4byte 0x00000959 -_0205ADC8: .4byte 0x0000095E -_0205ADCC: .4byte 0x0000095D -_0205ADD0: .4byte 0x020A34B8 -_0205ADD4: .4byte 0x0000095F -_0205ADD8: .4byte 0x020A34D2 -_0205ADDC: .4byte 0x00000961 -_0205ADE0: .4byte 0x00000962 -_0205ADE4: .4byte 0x00000972 -_0205ADE8: .4byte 0x00000973 -_0205ADEC: .4byte 0x0209E6D8 -_0205ADF0: .4byte 0x020A34FC -_0205ADF4: .4byte 0x00000968 -_0205ADF8: .4byte 0x020A3514 -_0205ADFC: .4byte 0x020A351C -_0205AE00: .4byte 0x020A3524 -_0205AE04: .4byte 0x00000969 -_0205AE08: .4byte 0x00000963 -_0205AE0C: .4byte 0x00000964 -_0205AE10: .4byte 0x00000965 -_0205AE14: .4byte 0x00000967 -_0205AE18: .4byte 0x0000096B -_0205AE1C: .4byte 0x00000966 -_0205AE20: .4byte 0x020A34C4 -_0205AE24: .4byte 0x0000096A - arm_func_end FUN_0205a4b4 - - arm_func_start FUN_0205ae28 -FUN_0205ae28: @ 0x0205AE28 - push {r3, r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x10 - mov r8, r1 - mov sb, r0 - ldrsh r0, [r8, #8] - mov r7, r2 - bl GetTeamMember - mov r4, r0 - mov r1, r4 - add r0, sb, #2 - mov r2, #0x4e - bl FUN_02056084 - ldrsh r0, [r8, #0xc] - mov r5, #0 - strh r0, [sb] - ldrsh r0, [r8, #0xe] - str r0, [sb, #0x24] - ldrsh r0, [r8, #0xe] - str r0, [sb, #0x28] - ldrb r0, [r8, #2] - str r0, [sb, #0x2c] - ldr r0, [r8, #0x18] - str r0, [sb, #0x30] -_0205AE84: - add r2, r8, r5 - ldrb r0, [r2, #0x12] - add r6, sb, r5 - mov r1, r5 - strb r0, [r6, #0x34] - ldrb r0, [r2, #0x14] - strb r0, [r6, #0x36] - ldrsh r0, [r8, #0xc] - bl GetType - strb r0, [r6, #0x16] - ldrsh r0, [r8, #0xc] - mov r1, r5 - bl GetAbility - add r5, r5, #1 - strb r0, [r6, #0x18] - cmp r5, #2 - blt _0205AE84 - strb r7, [sb, #0x38] - mov r0, #0 - strb r0, [sb, #0x39] - strb r0, [sb, #0x3a] - strb r0, [sb, #0x3b] - strb r0, [sb, #0x3c] - strb r0, [sb, #0x45] - ldrb r1, [r8, #0x58] - add r0, r8, #0x4c - add r3, sb, #0x48 - strb r1, [sb, #0x54] - ldrh r1, [r8, #0x3e] - strh r1, [sb, #0x1c] - ldrh r1, [r8, #0x40] - strh r1, [sb, #0x1e] - ldrh r1, [r8, #0x42] - strh r1, [sb, #0x20] - ldrsh r1, [r8, #6] - strh r1, [sb, #0x3e] - ldrb r1, [r8, #3] - strb r1, [sb, #0x1a] - ldrb r1, [r8, #4] - strb r1, [sb, #0x1b] - ldm r0, {r0, r1, r2} - stm r3, {r0, r1, r2} - mov r0, sb - bl FUN_0205b354 - str r0, [sp] - ldrsh r1, [sb] - ldrsh r3, [sb, #0x3e] - add r0, sp, #4 - add r2, r8, #0x3e - bl FUN_0205b120 - ldrb r2, [sb, #0x39] - ldrsh r1, [sp, #6] - ldr r0, _0205B004 @ =0x000003E7 - add r1, r2, r1 - strb r1, [sb, #0x39] - ldrb r2, [sb, #0x3a] - ldrsh r1, [sp, #8] - add r1, r2, r1 - strb r1, [sb, #0x3a] - ldrb r2, [sb, #0x3b] - ldrsh r1, [sp, #0xa] - add r1, r2, r1 - strb r1, [sb, #0x3b] - ldrb r2, [sb, #0x3c] - ldrsh r1, [sp, #0xc] - add r1, r2, r1 - strb r1, [sb, #0x3c] - ldrsh r1, [sp, #4] - ldr r2, [sb, #0x24] - add r1, r2, r1 - str r1, [sb, #0x24] - cmp r1, r0 - strgt r0, [sb, #0x24] - ldr r1, [sb, #0x24] - mov r0, #6 - str r1, [sb, #0x28] - ldrb r1, [r4, #6] - strb r1, [sb, #0x42] - ldrb r1, [r4, #7] - strb r1, [sb, #0x43] - bl GetPerformanceFlagWithChecks - cmp r0, #0 - moveq r0, #3 - beq _0205AFDC - mov r0, r4 - bl GetMonsterEvoStatus -_0205AFDC: - mov r2, #0 - strb r0, [sb, #0x44] - mov r1, r2 -_0205AFE8: - add r0, sb, r2 - add r2, r2, #1 - strb r1, [r0, #0x58] - cmp r2, #0x1f - blt _0205AFE8 - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0205B004: .4byte 0x000003E7 - arm_func_end FUN_0205ae28 - - arm_func_start FUN_0205b008 -FUN_0205b008: @ 0x0205B008 - push {r4, lr} - mov r4, r0 - mov r0, r1 - bl FUN_02055894 - mov r1, r0 - mov r0, r4 - bl FUN_0205b028 - pop {r4, pc} - arm_func_end FUN_0205b008 - - arm_func_start FUN_0205b028 -FUN_0205b028: @ 0x0205B028 - push {r4, r5, r6, lr} - sub sp, sp, #0x68 - mov r5, r1 - mov r6, r0 - mov r0, r5 - bl GetActiveRosterIndex - mvn r1, #0 - cmp r0, r1 - bne _0205B078 - add r0, sp, #0 - mov r1, r5 - mov r2, #0 - bl FUN_02053224 - mov r0, r5 - bl FUN_020564b0 - mov r2, r0 - add r1, sp, #0 - mov r0, r6 - bl FUN_0205ae28 - b _0205B098 -_0205B078: - bl GetActiveTeamMember - mov r4, r0 - mov r0, r5 - bl FUN_020564b0 - mov r2, r0 - mov r0, r6 - mov r1, r4 - bl FUN_0205ae28 -_0205B098: - add sp, sp, #0x68 - pop {r4, r5, r6, pc} - arm_func_end FUN_0205b028 - - arm_func_start FUN_0205b0a0 -FUN_0205b0a0: @ 0x0205B0A0 - ldr ip, _0205B0B0 @ =FUN_0205b39c - mov r1, r0 - ldr r0, _0205B0B4 @ =0x020A34D2 - bx ip - .align 2, 0 -_0205B0B0: .4byte FUN_0205b39c -_0205B0B4: .4byte 0x020A34D2 - arm_func_end FUN_0205b0a0 - - arm_func_start FUN_0205b0b8 -FUN_0205b0b8: @ 0x0205B0B8 - push {r3, lr} - ldrsh r1, [r0, #0x56] - mov r2, #0x10 - mov lr, #0 - mov r3, lr - sub ip, r1, #1 - sub r2, r2, #0xc - b _0205B110 -_0205B0D8: - cmp ip, #0 - cmpge r2, #0x10 - blt _0205B104 - cmp ip, #0x1e - bge _0205B118 - add r1, r0, ip - ldrb r1, [r1, #0x58] + lsl r2, r3, #8 + orr r2, r2, r3, asr #8 + lsl r2, r2, #0x10 + cmp r1, #1 + lsr r2, r2, #0x10 + bls _022C85F4 +_022C85E0: + ldrh r3, [r0], #2 + sub r1, r1, #2 + cmp r1, #1 + add r2, r2, r3 + bhi _022C85E0 +_022C85F4: + ldr r3, _022C8638 @ =0x00FF00FF + lsl ip, r3, #8 + and r3, r3, r2, lsr #8 + and r2, ip, r2, lsl #8 + orr r3, r3, r2 + lsl r2, r3, #0x10 + orr r2, r2, r3, lsr #16 +_022C8610: cmp r1, #0 - beq _0205B104 - cmp r3, #1 - addge lr, lr, #1 -_0205B104: - add r3, r3, #1 - add ip, ip, #1 - add r2, r2, #0xc -_0205B110: - cmp r3, #0xa - blt _0205B0D8 -_0205B118: - mov r0, lr - pop {r3, pc} - arm_func_end FUN_0205b0b8 + ldrbne r0, [r0] + addne r2, r2, r0, lsl #8 + lsl r0, r2, #0x10 + lsr r1, r2, #0x10 + add r0, r1, r0, lsr #16 + add r0, r0, r0, lsr #16 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr + .align 2, 0 +_022C8638: .4byte 0x00FF00FF + arm_func_end ov00_022C8588 - arm_func_start FUN_0205b120 -FUN_0205b120: @ 0x0205B120 - push {r4, r5, r6, r7, lr} - sub sp, sp, #0x24 - mov r5, r0 - mov r6, #0 - strh r6, [r5] - strh r6, [r5, #2] - strh r6, [r5, #4] + arm_func_start ov00_022C863C +ov00_022C863C: @ 0x022C863C + ldr r1, _022C8654 @ =0x0000FFFF + eor r0, r0, r1 + lsl r0, r0, #0x10 + lsrs r0, r0, #0x10 + moveq r0, r1 + bx lr + .align 2, 0 +_022C8654: .4byte 0x0000FFFF + arm_func_end ov00_022C863C + + arm_func_start ov00_022C8658 +ov00_022C8658: @ 0x022C8658 + push {r3, lr} + mov r2, #0 + bl ov00_022C8588 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl ov00_022C863C + pop {r3, pc} + arm_func_end ov00_022C8658 + + arm_func_start ov00_022C8674 +ov00_022C8674: @ 0x022C8674 + push {r3, r4, r5, lr} mov r4, r2 - strh r6, [r5, #6] - add r0, sp, #0 - mov r7, r1 mov r2, r3 - strh r6, [r5, #8] - bl FUN_02058eb0 - mov r0, r7 - mov r1, r6 - bl GetType - mov r6, r0 - mov r0, r7 - mov r1, #1 - bl GetType - mov r3, r0 - mov r1, r7 - mov r2, r6 - add r0, sp, #0xc - bl FUN_02011220 - add r0, sp, #0xc - bl FUN_02011394 - ldrsh r2, [r5] - ldrb r1, [sp, #0x38] - add r0, r2, r0 - strh r0, [r5] - cmp r1, #0 - ldrsh r1, [r5, #2] - ldrb r0, [sp, #0xc] - add r0, r1, r0 - strh r0, [r5, #2] - ldrsh r1, [r5, #4] - ldrb r0, [sp, #0xd] - add r0, r1, r0 - strh r0, [r5, #4] - ldrsh r1, [r5, #6] - ldrb r0, [sp, #0xe] - add r0, r1, r0 - strh r0, [r5, #6] - ldrsh r1, [r5, #8] - ldrb r0, [sp, #0xf] - add r0, r1, r0 - strh r0, [r5, #8] - bne _0205B30C - cmp r4, #0 - beq _0205B30C - ldrb r0, [r4] - tst r0, #1 - movne r1, #1 - moveq r1, #0 - tst r1, #0xff - beq _0205B30C - tst r0, #8 + mov r5, r1 + bl ov00_022C8588 + mov r2, r0 + add r0, r4, #0xc + mov r1, #8 + bl ov00_022C8588 + add r1, r0, r5 + tst r1, #0x10000 + addne r0, r1, #1 + lslne r0, r0, #0x10 + lsrne r1, r0, #0x10 + ldr r0, _022C86C0 @ =0x0000FFFF + cmp r1, r0 movne r0, #1 moveq r0, #0 - tst r0, #0xff - bne _0205B30C - ldrsh r0, [r4, #4] - cmp r0, #0x1a - ldreq r0, _0205B338 @ =0x020A18AC - ldrsheq r1, [r5, #2] - ldrsheq r0, [r0] - addeq r0, r1, r0 - strheq r0, [r5, #2] - ldrsh r0, [r4, #4] - cmp r0, #0x32 - ldreq r0, _0205B33C @ =0x020A187C - ldrsheq r1, [r5, #2] - ldrsheq r0, [r0] - addeq r0, r1, r0 - strheq r0, [r5, #2] - ldrsh r0, [r4, #4] - cmp r0, #0x28 - ldreq r0, _0205B340 @ =0x020A186C - ldrsheq r1, [r5, #4] - ldrsheq r0, [r0] - addeq r0, r1, r0 - strheq r0, [r5, #4] - ldrsh r0, [r4, #4] - cmp r0, #0x32 - ldreq r0, _0205B33C @ =0x020A187C - ldrsheq r1, [r5, #4] - ldrsheq r0, [r0] - addeq r0, r1, r0 - strheq r0, [r5, #4] - ldrsh r0, [r4, #4] - cmp r0, #0x25 - ldreq r0, _0205B344 @ =0x020A18A8 - ldrsheq r1, [r5, #6] - ldrsheq r0, [r0] - addeq r0, r1, r0 - strheq r0, [r5, #6] - ldrsh r0, [r4, #4] - cmp r0, #0x29 - ldreq r0, _0205B348 @ =0x020A18B4 - ldrsheq r1, [r5, #8] - ldrsheq r0, [r0] - addeq r0, r1, r0 - strheq r0, [r5, #8] - ldrsh r0, [r4, #4] - bl IsAuraBow - cmp r0, #0 - beq _0205B30C - ldr r0, _0205B34C @ =0x020A1898 - ldrsh r1, [r5, #2] - ldrsh r2, [r0] - add r0, r1, r2 - strh r0, [r5, #2] - ldrsh r0, [r5, #4] - add r0, r0, r2 - strh r0, [r5, #4] - ldrsh r0, [r5, #6] - add r0, r0, r2 - strh r0, [r5, #6] - ldrsh r0, [r5, #8] - add r0, r0, r2 - strh r0, [r5, #8] -_0205B30C: - add r0, sp, #0 - mov r1, #0x38 - bl IqSkillFlagTest - cmp r0, #0 - ldrne r0, _0205B350 @ =0x020A1870 - ldrshne r1, [r5] - ldrshne r0, [r0] - addne r0, r1, r0 - strhne r0, [r5] - add sp, sp, #0x24 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0205B338: .4byte 0x020A18AC -_0205B33C: .4byte 0x020A187C -_0205B340: .4byte 0x020A186C -_0205B344: .4byte 0x020A18A8 -_0205B348: .4byte 0x020A18B4 -_0205B34C: .4byte 0x020A1898 -_0205B350: .4byte 0x020A1870 - arm_func_end FUN_0205b120 - - arm_func_start FUN_0205b354 -FUN_0205b354: @ 0x0205B354 - ldrb r1, [r0, #0x45] - cmp r1, #0 - movne r0, #0 - bxne lr - mov r2, #0 - b _0205B38C -_0205B36C: - add r1, r0, r2 - ldrb r1, [r1, #0x18] - cmp r1, #0x6f - moveq r0, #1 - bxeq lr - add r1, r2, #1 - lsl r1, r1, #0x10 - asr r2, r1, #0x10 -_0205B38C: - cmp r2, #2 - blt _0205B36C - mov r0, #0 - bx lr - arm_func_end FUN_0205b354 - - arm_func_start FUN_0205b39c -FUN_0205b39c: @ 0x0205B39C - push {r3, r4, r5, r6, r7, lr} - mov r4, r0 - mov r5, r1 - bl FUN_02025888 - mov r7, r0 - b _0205B3C0 -_0205B3B4: - cmp r5, r0 - bge _0205B3CC - add r4, r4, #2 -_0205B3C0: - ldrsb r0, [r4] - cmp r0, #0 - bge _0205B3B4 -_0205B3CC: - mov r6, #0 - strb r6, [r7] - ldrsb r0, [r4, #1] - cmp r0, #0 - beq _0205B420 - ldr r5, _0205B434 @ =0x020A353C - b _0205B3F8 -_0205B3E8: - mov r0, r7 - mov r1, r5 - bl Strcat - add r6, r6, #1 -_0205B3F8: - ldrsb r1, [r4, #1] - add r0, r1, r1, lsr #31 - cmp r6, r0, asr #1 - blt _0205B3E8 - tst r1, #1 - beq _0205B42C - ldr r1, _0205B438 @ =0x020A3544 - mov r0, r7 - bl Strcat - b _0205B42C -_0205B420: - ldr r1, _0205B43C @ =0x020A354C - mov r0, r7 - bl Strcat -_0205B42C: - mov r0, r7 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0205B434: .4byte 0x020A353C -_0205B438: .4byte 0x020A3544 -_0205B43C: .4byte 0x020A354C - arm_func_end FUN_0205b39c -_0205B440: - .byte 0x00, 0x00, 0x9F, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x50, 0x35, 0x0A, 0x02 - - arm_func_start FUN_0205b44c -FUN_0205b44c: @ 0x0205B44C - ldr r1, _0205B468 @ =0x022B5910 - ldr r0, _0205B46C @ =0x020B0A54 - ldr r2, _0205B470 @ =0x022B57C0 - str r1, [r0] - ldr r1, _0205B474 @ =0x022B580C - stmib r0, {r1, r2} - bx lr - .align 2, 0 -_0205B468: .4byte 0x022B5910 -_0205B46C: .4byte 0x020B0A54 -_0205B470: .4byte 0x022B57C0 -_0205B474: .4byte 0x022B580C - arm_func_end FUN_0205b44c - - arm_func_start FUN_0205b478 -FUN_0205b478: @ 0x0205B478 - push {r3, lr} - sub sp, sp, #8 - add r0, sp, #0 - bl thunk_FUN_0207b9ec - ldrb r1, [sp, #3] - ldr r0, _0205B54C @ =0x020B0A54 - ldrb r2, [sp, #2] - lsl r1, r1, #0x10 - ldrb r3, [sp, #4] - orr r1, r1, r2, lsl #24 - ldrb r2, [sp, #5] - orr r1, r1, r3, lsl #8 - ldr r0, [r0] - orr ip, r2, r1 - ldr r3, _0205B550 @ =0x022B57BC - mov r1, #0 - mov r2, #0x1600 - str ip, [r3] - bl MemsetSimple - ldr r0, _0205B54C @ =0x020B0A54 - mov r1, #0 - ldr r0, [r0, #8] - mov r2, #0x4c - bl MemsetSimple - mov lr, #0 - ldr r2, _0205B54C @ =0x020B0A54 - mov r0, lr - mov r1, #0xb0 -_0205B4E8: - mul ip, lr, r1 - ldr r3, [r2] - add lr, lr, #1 - strb r0, [r3, ip] - ldr r3, [r2] - cmp lr, #0x20 - add r3, r3, ip - strh r0, [r3, #0xa2] - blt _0205B4E8 - ldr r1, _0205B54C @ =0x020B0A54 - mov ip, #0 - ldr r2, [r1, #4] - mvn r3, #0 - str r0, [r2] -_0205B520: - ldr r2, [r1, #4] - add r2, r2, r0, lsl #3 - str ip, [r2, #4] - ldr r2, [r1, #4] - add r2, r2, r0, lsl #3 - add r0, r0, #1 - str r3, [r2, #8] - cmp r0, #0x20 - blt _0205B520 - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_0205B54C: .4byte 0x020B0A54 -_0205B550: .4byte 0x022B57BC - arm_func_end FUN_0205b478 -_0205B554: - .byte 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x60, 0xB5, 0x05, 0x02 - .byte 0x00, 0x30, 0x90, 0xE5, 0x00, 0x20, 0x91, 0xE5, 0x02, 0x00, 0x53, 0xE1, 0x04, 0x20, 0x90, 0x05 - .byte 0x04, 0x00, 0x91, 0x05, 0x00, 0x00, 0x52, 0x01, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13 - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0205b584 -FUN_0205b584: @ 0x0205B584 - push {r4, lr} - ldr r1, _0205B5A4 @ =0x022B57BC - mov r4, r0 - ldr r0, [r1] - str r0, [r4] - bl FUN_02048c3c - str r0, [r4, #4] - pop {r4, pc} - .align 2, 0 -_0205B5A4: .4byte 0x022B57BC - arm_func_end FUN_0205b584 - - arm_func_start FUN_0205b5a8 -FUN_0205b5a8: @ 0x0205B5A8 - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #0xc4 - ldr lr, _0205B688 @ =0x020A3678 - add ip, sp, #0x14 - mov r4, r0 - mov r8, r1 - mov r7, r2 - mov r6, r3 - mov r5, #0xb -_0205B5CC: - ldm lr!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - subs r5, r5, #1 - bne _0205B5CC - strb r8, [sp, #0x18] - strb r7, [sp, #0x19] - bl GetLanguageType - strb r0, [sp, #0x30] - mov r0, #2 - strb r6, [sp, #0xc0] - bl RandInt - orr r0, r0, #2 - strb r0, [sp, #0xc2] - bl FUN_02063504 - mov r5, r0 - bl Rand16Bit - orr r0, r0, r5, lsl #16 - bl FUN_020510e8 - strb r4, [sp, #0x14] - bl FUN_02051134 - str r0, [sp, #0x2c] - bl FUN_02051134 - str r0, [sp, #0xbc] - bl FUN_02051134 - bic r0, r0, #0xff000000 - str r0, [sp, #0x1c] - ldr r0, [sp, #0xbc] - bl FUN_020634f4 - ldr r1, _0205B68C @ =0x000038C9 - add r0, sp, #0 - bl GetStringFromFileVeneer - add r0, sp, #0x31 - add r1, sp, #0 - bl SpecialStrcpy - cmp r4, #1 - bne _0205B668 - add r0, sp, #0x18 - bl FUN_0205bab0 - b _0205B680 -_0205B668: - cmp r4, #5 - add r0, sp, #0x14 - bne _0205B67C - bl FUN_0205b738 - b _0205B680 -_0205B67C: - bl FUN_0205b6ec -_0205B680: - add sp, sp, #0xc4 - pop {r3, r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0205B688: .4byte 0x020A3678 -_0205B68C: .4byte 0x000038C9 - arm_func_end FUN_0205b5a8 - - arm_func_start FUN_0205b690 -FUN_0205b690: @ 0x0205B690 - ldr r1, _0205B6C8 @ =0x020B0A54 - mov r0, #2 - ldr r3, [r1] - mov r1, #0xb0 - b _0205B6B8 -_0205B6A4: - mul r2, r0, r1 - ldrb r2, [r3, r2] - cmp r2, #0 - bxeq lr - add r0, r0, #1 -_0205B6B8: - cmp r0, #0x20 - blt _0205B6A4 - mvn r0, #0 - bx lr - .align 2, 0 -_0205B6C8: .4byte 0x020B0A54 - arm_func_end FUN_0205b690 -_0205B6CC: - .byte 0x10, 0x10, 0x90, 0xE5 - .byte 0x0C, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x02, 0x00, 0x50, 0x03, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x01, 0x00, 0xA0, 0x23, 0xFF, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0205b6ec -FUN_0205b6ec: @ 0x0205B6EC - push {r4, lr} - mov r4, r0 - bl FUN_0205b690 - mvn r1, #0 - cmp r0, r1 - moveq r0, #0 - popeq {r4, pc} - ldr r2, _0205B734 @ =0x020B0A54 - mov r1, #0xb0 - ldr r2, [r2] - mov ip, #0xb - mla lr, r0, r1, r2 -_0205B71C: - ldm r4!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _0205B71C - mov r0, #1 - pop {r4, pc} - .align 2, 0 -_0205B734: .4byte 0x020B0A54 - arm_func_end FUN_0205b6ec - - arm_func_start FUN_0205b738 -FUN_0205b738: @ 0x0205B738 - push {r3, r4, r5, lr} - ldr r1, _0205B778 @ =0x020B0A54 - mov r5, r0 - ldr r1, [r1] - mov r4, #0 - ldrb r0, [r1, #0xb0] - add lr, r1, #0xb0 - mov ip, #0xb - cmp r0, #0 - movne r4, #1 -_0205B760: - ldm r5!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _0205B760 - mov r0, r4 pop {r3, r4, r5, pc} .align 2, 0 -_0205B778: .4byte 0x020B0A54 - arm_func_end FUN_0205b738 +_022C86C0: .4byte 0x0000FFFF + arm_func_end ov00_022C8674 - arm_func_start FUN_0205b77c -FUN_0205b77c: @ 0x0205B77C - ldr r2, _0205B790 @ =0x020B0A54 - mov r1, #0xb0 - ldr r2, [r2] - mla r0, r1, r0, r2 - bx lr - .align 2, 0 -_0205B790: .4byte 0x020B0A54 - arm_func_end FUN_0205b77c -_0205B794: - .byte 0x10, 0x40, 0x2D, 0xE9, 0x24, 0x30, 0x9F, 0xE5, 0xB0, 0x20, 0xA0, 0xE3 - .byte 0x00, 0x30, 0x93, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x91, 0x32, 0x2E, 0xE0, 0x0B, 0xC0, 0xA0, 0xE3 - .byte 0x0F, 0x00, 0xBE, 0xE8, 0x0F, 0x00, 0xA4, 0xE8, 0x01, 0xC0, 0x5C, 0xE2, 0xFB, 0xFF, 0xFF, 0x1A - .byte 0x10, 0x80, 0xBD, 0xE8, 0x54, 0x0A, 0x0B, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0xB0, 0x20, 0xA0, 0xE3 - .byte 0x90, 0x02, 0x04, 0xE0, 0x2C, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 - .byte 0x04, 0x00, 0x80, 0xE0, 0xAE, 0x9E, 0xFE, 0xEB, 0x18, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x00, 0x10, 0x90, 0xE5, 0x04, 0x20, 0xC1, 0xE7, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x00, 0x80, 0xE0 - .byte 0xB2, 0x2A, 0xC0, 0xE1, 0x10, 0x80, 0xBD, 0xE8, 0x54, 0x0A, 0x0B, 0x02, 0xF0, 0x47, 0x2D, 0xE9 - .byte 0x00, 0xA0, 0xA0, 0xE3, 0x70, 0x70, 0x9F, 0xE5, 0x0A, 0x80, 0xA0, 0xE1, 0x01, 0x90, 0xA0, 0xE3 - .byte 0xB0, 0x40, 0xA0, 0xE3, 0x0A, 0x60, 0xA0, 0xE1, 0x02, 0x50, 0xA0, 0xE3, 0x0A, 0x0C, 0xA0, 0xE1 - .byte 0x00, 0x10, 0x97, 0xE5, 0x40, 0x0C, 0xA0, 0xE1, 0x90, 0x14, 0x22, 0xE0, 0x10, 0x00, 0x92, 0xE5 - .byte 0x0C, 0x10, 0x92, 0xE5, 0x06, 0x00, 0x50, 0xE1, 0x05, 0x00, 0x51, 0x01, 0x09, 0x00, 0xA0, 0x21 - .byte 0x08, 0x00, 0xA0, 0x31, 0xFF, 0x00, 0x10, 0xE3, 0xAD, 0x00, 0xD2, 0x15, 0x00, 0x00, 0x50, 0x13 - .byte 0x00, 0x00, 0xD2, 0x15, 0x01, 0x00, 0x50, 0x13, 0x07, 0x00, 0x50, 0x13, 0x02, 0x00, 0x00, 0x0A - .byte 0x0A, 0x0C, 0xA0, 0xE1, 0x40, 0x0C, 0xA0, 0xE1, 0xD2, 0xFF, 0xFF, 0xEB, 0x01, 0xA0, 0x8A, 0xE2 - .byte 0x20, 0x00, 0x5A, 0xE3, 0xE8, 0xFF, 0xFF, 0xBA, 0xF0, 0x87, 0xBD, 0xE8, 0x54, 0x0A, 0x0B, 0x02 - .byte 0x30, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x04, 0x30, 0x91, 0xE5, 0x04, 0x00, 0x90, 0xE5 - .byte 0x00, 0x10, 0x93, 0xE5, 0x81, 0x11, 0x83, 0xE0, 0x04, 0x20, 0x81, 0xE5, 0x08, 0x00, 0x81, 0xE5 - .byte 0x00, 0x00, 0x93, 0xE5, 0x1F, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x80, 0xB2, 0x00, 0x00, 0xA0, 0xA3 - .byte 0x00, 0x00, 0x83, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x54, 0x0A, 0x0B, 0x02, 0x70, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x60, 0xA0, 0xE1, 0x00, 0x50, 0xA0, 0xE3, 0x34, 0x40, 0x9F, 0xE5, 0x08, 0x00, 0x00, 0xEA - .byte 0x04, 0x00, 0x94, 0xE5, 0x06, 0x10, 0xA0, 0xE1, 0x04, 0x00, 0x80, 0xE2, 0x85, 0x01, 0x80, 0xE0 - .byte 0x1A, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x70, 0x80, 0xBD, 0x18 - .byte 0x01, 0x50, 0x85, 0xE2, 0x20, 0x00, 0x55, 0xE3, 0xF4, 0xFF, 0xFF, 0xBA, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x70, 0x80, 0xBD, 0xE8, 0x54, 0x0A, 0x0B, 0x02, 0xF0, 0x41, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1 - .byte 0x01, 0x50, 0xA0, 0xE1, 0x00, 0x40, 0xA0, 0xE3, 0x48, 0x80, 0x9F, 0xE5, 0xB0, 0x70, 0xA0, 0xE3 - .byte 0x0C, 0x00, 0x00, 0xEA, 0x94, 0x07, 0x01, 0xE0, 0x00, 0x20, 0x98, 0xE5, 0x01, 0x00, 0xD2, 0xE7 - .byte 0x01, 0x20, 0x82, 0xE0, 0x00, 0x00, 0x56, 0xE1, 0x05, 0x00, 0x00, 0x1A, 0x05, 0x10, 0xA0, 0xE1 - .byte 0x14, 0x00, 0x82, 0xE2, 0x01, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13 - .byte 0xF0, 0x81, 0xBD, 0x18, 0x01, 0x40, 0x84, 0xE2, 0x20, 0x00, 0x54, 0xE3, 0xF0, 0xFF, 0xFF, 0xBA - .byte 0x00, 0x00, 0xA0, 0xE3, 0xF0, 0x81, 0xBD, 0xE8, 0x54, 0x0A, 0x0B, 0x02 - - arm_func_start GetSosMailCount -GetSosMailCount: @ 0x0205B97C - push {r3, lr} - cmp r1, #0 - ldr r1, _0205B9C4 @ =0x020B0A54 - mov r3, #0 - movne lr, #2 - ldr ip, [r1] - moveq lr, r3 - mov r1, #0xb0 - b _0205B9B4 -_0205B9A0: - mul r2, lr, r1 - ldrb r2, [ip, r2] - add lr, lr, #1 - cmp r0, r2 - addeq r3, r3, #1 -_0205B9B4: - cmp lr, #0x20 - blt _0205B9A0 - mov r0, r3 - pop {r3, pc} - .align 2, 0 -_0205B9C4: .4byte 0x020B0A54 - arm_func_end GetSosMailCount -_0205B9C8: - .byte 0x38, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x00, 0x30, 0x91, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x02, 0xC0, 0xA0, 0x13, 0x00, 0xC0, 0xA0, 0x01 - .byte 0xB0, 0x10, 0xA0, 0xE3, 0x04, 0x00, 0x00, 0xEA, 0x9C, 0x01, 0x02, 0xE0, 0x02, 0x20, 0xD3, 0xE7 - .byte 0x01, 0xC0, 0x8C, 0xE2, 0x00, 0x00, 0x52, 0xE3, 0x01, 0x00, 0x80, 0x12, 0x20, 0x00, 0x5C, 0xE3 - .byte 0xF8, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1, 0x54, 0x0A, 0x0B, 0x02, 0xF0, 0x41, 0x2D, 0xE9 - .byte 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x00, 0x40, 0xA0, 0xE3, 0x48, 0x80, 0x9F, 0xE5 - .byte 0xB0, 0x70, 0xA0, 0xE3, 0x0C, 0x00, 0x00, 0xEA, 0x94, 0x07, 0x01, 0xE0, 0x00, 0x20, 0x98, 0xE5 - .byte 0x01, 0x00, 0xD2, 0xE7, 0x01, 0x20, 0x82, 0xE0, 0x00, 0x00, 0x56, 0xE1, 0x05, 0x00, 0x00, 0x1A - .byte 0x05, 0x10, 0xA0, 0xE1, 0x14, 0x00, 0x82, 0xE2, 0xC4, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x04, 0x00, 0xA0, 0x11, 0xF0, 0x81, 0xBD, 0x18, 0x01, 0x40, 0x84, 0xE2, 0x20, 0x00, 0x54, 0xE3 - .byte 0xF0, 0xFF, 0xFF, 0xBA, 0x00, 0x00, 0xE0, 0xE3, 0xF0, 0x81, 0xBD, 0xE8, 0x54, 0x0A, 0x0B, 0x02 - .byte 0x34, 0x10, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0xC0, 0x91, 0xE5, 0xB0, 0x10, 0xA0, 0xE3 - .byte 0x05, 0x00, 0x00, 0xEA, 0x93, 0x01, 0x02, 0xE0, 0x02, 0x20, 0xDC, 0xE7, 0x02, 0x00, 0x50, 0xE1 - .byte 0x03, 0x00, 0xA0, 0x01, 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0x30, 0x83, 0xE2, 0x20, 0x00, 0x53, 0xE3 - .byte 0xF7, 0xFF, 0xFF, 0xBA, 0x00, 0x00, 0xE0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x54, 0x0A, 0x0B, 0x02 - - arm_func_start FUN_0205bab0 -FUN_0205bab0: @ 0x0205BAB0 - push {r4, lr} - ldr r1, _0205BB74 @ =0x020B0A54 - mov r4, #1 - ldr r3, [r1] - mov r2, #0 - strb r4, [r3] - ldr r3, [r1] - ldr r1, [r0] - ldr r0, [r0, #4] - str r1, [r3, #4] - str r0, [r3, #8] - str r2, [r3, #0xc] - str r2, [r3, #0x10] - bl FUN_02063504 - mov r4, r0 - bl Rand16Bit - orr r0, r0, r4, lsl #16 - bl FUN_020510e8 - bl FUN_02051134 - ldr r1, _0205BB74 @ =0x020B0A54 - ldr r1, [r1] - str r0, [r1, #0x18] - bl FUN_020634f4 - ldr r1, _0205BB78 @ =0x022B57BC - ldr r0, _0205BB74 @ =0x020B0A54 - ldr r1, [r1] - ldr r0, [r0] - str r1, [r0, #0x14] - bl GetLanguageType - ldr r1, _0205BB74 @ =0x020B0A54 - ldr r2, [r1] - strb r0, [r2, #0x1c] - ldr r0, [r1] - add r0, r0, #0x1d - bl GetTeamNameCheck - ldr r0, _0205BB74 @ =0x020B0A54 - ldr r0, [r0] - ldrb r0, [r0, #4] - bl GetMaxRescueAttempts - ldr r1, _0205BB74 @ =0x020B0A54 - ldr r1, [r1] - strb r0, [r1, #0xac] - mov r0, #2 - bl RandInt - ldr r1, _0205BB74 @ =0x020B0A54 - orr r2, r0, #2 - ldr r0, [r1] - strb r2, [r0, #0xae] - pop {r4, pc} - .align 2, 0 -_0205BB74: .4byte 0x020B0A54 -_0205BB78: .4byte 0x022B57BC - arm_func_end FUN_0205bab0 - - arm_func_start FUN_0205bb7c -FUN_0205bb7c: @ 0x0205BB7C - ldr r3, _0205BBA0 @ =0x020B0A54 - mov r2, #0xb0 - ldr r3, [r3] - mla r3, r1, r2, r3 - ldr r2, [r3, #4] - ldr r1, [r3, #8] - str r2, [r0] - str r1, [r0, #4] - bx lr - .align 2, 0 -_0205BBA0: .4byte 0x020B0A54 - arm_func_end FUN_0205bb7c -_0205BBA4: - .byte 0x4C, 0x10, 0x9F, 0xE5, 0x00, 0x30, 0x91, 0xE5, 0x00, 0x10, 0xD3, 0xE5 - .byte 0x01, 0x00, 0x51, 0xE3, 0x0D, 0x00, 0x00, 0x1A, 0x10, 0x10, 0x93, 0xE5, 0x0C, 0x20, 0x93, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x00, 0x10, 0xA0, 0xE3, 0x02, 0x00, 0x52, 0x03, 0x01, 0x10, 0xA0, 0x23 - .byte 0xFF, 0x00, 0x11, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x50, 0xE3, 0x0C, 0x10, 0x83, 0x12 - .byte 0x0C, 0x00, 0x91, 0x18, 0x0C, 0x00, 0x80, 0x18, 0x01, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x54, 0x0A, 0x0B, 0x02, 0x10, 0x40, 0x2D, 0xE9 - .byte 0x24, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x08, 0xE0, 0x91, 0xE5, 0x04, 0xC0, 0xA0, 0xE3 - .byte 0x0F, 0x00, 0xBE, 0xE8, 0x0F, 0x00, 0xA4, 0xE8, 0x01, 0xC0, 0x5C, 0xE2, 0xFB, 0xFF, 0xFF, 0x1A - .byte 0x00, 0x00, 0x9E, 0xE5, 0x00, 0x00, 0x84, 0xE5, 0x10, 0x80, 0xBD, 0xE8, 0x54, 0x0A, 0x0B, 0x02 - .byte 0x10, 0x40, 0x2D, 0xE9, 0x01, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x1A - .byte 0x48, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x08, 0x00, 0x90, 0xE5, 0x44, 0x20, 0xA0, 0xE3 - .byte 0x93, 0x9D, 0xFE, 0xEB, 0x10, 0x80, 0xBD, 0xE8, 0x30, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1 - .byte 0x08, 0x00, 0x92, 0xE5, 0xA6, 0xE8, 0xFF, 0xEB, 0x00, 0x00, 0x54, 0xE3, 0x10, 0x80, 0xBD, 0x18 - .byte 0x18, 0x00, 0x9F, 0xE5, 0x08, 0x00, 0x90, 0xE5, 0x02, 0x00, 0xD0, 0xE5, 0xC1, 0xD6, 0xFF, 0xEB - .byte 0x08, 0x10, 0x9F, 0xE5, 0x08, 0x10, 0x91, 0xE5, 0x02, 0x00, 0xC1, 0xE5, 0x10, 0x80, 0xBD, 0xE8 - .byte 0x54, 0x0A, 0x0B, 0x02, 0x24, 0x10, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE3, 0x08, 0x30, 0x91, 0xE5 - .byte 0xB4, 0x14, 0xD3, 0xE1, 0xB0, 0x10, 0xC0, 0xE1, 0xB6, 0x14, 0xD3, 0xE1, 0xB2, 0x10, 0xC0, 0xE1 - .byte 0xB8, 0x14, 0xD3, 0xE1, 0xB4, 0x10, 0xC0, 0xE1, 0x00, 0x20, 0xC0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x54, 0x0A, 0x0B, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x1A - .byte 0x38, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x08, 0x00, 0x90, 0xE5, 0x06, 0x20, 0xA0, 0xE3 - .byte 0x44, 0x00, 0x80, 0xE2, 0x6E, 0x9D, 0xFE, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x1C, 0x10, 0x9F, 0xE5 - .byte 0xB0, 0x20, 0xD0, 0xE1, 0x08, 0x30, 0x91, 0xE5, 0xB4, 0x24, 0xC3, 0xE1, 0xB2, 0x10, 0xD0, 0xE1 - .byte 0xB6, 0x14, 0xC3, 0xE1, 0xB4, 0x00, 0xD0, 0xE1, 0xB8, 0x04, 0xC3, 0xE1, 0x08, 0x80, 0xBD, 0xE8 - .byte 0x54, 0x0A, 0x0B, 0x02 - - arm_func_start FUN_0205bd14 -FUN_0205bd14: @ 0x0205BD14 - push {r4, lr} - ldr r3, _0205BD3C @ =0x020B0A54 - mov r2, #0xb0 - ldr r3, [r3] - mov r4, r0 - mla r0, r1, r2, r3 - ldrb r0, [r0, #0xae] - bl FUN_0205bd40 - str r0, [r4] - pop {r4, pc} - .align 2, 0 -_0205BD3C: .4byte 0x020B0A54 - arm_func_end FUN_0205bd14 - - arm_func_start FUN_0205bd40 -FUN_0205bd40: @ 0x0205BD40 - tst r0, #2 - movne r0, #0 - bxne lr - tst r0, #1 - movne r0, #2 - moveq r0, #1 - bx lr - arm_func_end FUN_0205bd40 - - arm_func_start FUN_0205bd5c -FUN_0205bd5c: @ 0x0205BD5C - push {r3, lr} - bl FUN_0205bd40 - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FUN_0205bd5c - - arm_func_start FUN_0205bd78 -FUN_0205bd78: @ 0x0205BD78 - push {r3, lr} - mov r0, #2 - bl RandInt - orr r0, r0, #2 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FUN_0205bd78 -_0205BD90: - .byte 0x01, 0x00, 0x00, 0xE2, 0x02, 0x00, 0x80, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0205bd9c -FUN_0205bd9c: @ 0x0205BD9C - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0x10 - mov r3, r0 - mov r2, r1 - add r0, sp, #0 - mov r1, r3 - bl FUN_02050974 - ldr r1, _0205BFA8 @ =0x022B57BC - add r0, sp, #0 - mov r2, #0x20 - bl CopyBitsFrom - ldr r5, _0205BFAC @ =0x020B0A54 - mov r7, #0 - add r6, sp, #0 - mov r4, #0xb0 -_0205BDD8: - ldr r1, [r5] - mov r0, r6 - mla r1, r7, r4, r1 - bl FUN_0205c19c - add r7, r7, #1 - cmp r7, #0x20 - blt _0205BDD8 - ldr r0, _0205BFAC @ =0x020B0A54 - mov r1, #0 - ldr r4, [r0, #8] - mov r2, #0x44 - mov r0, r4 - bl Memset - add r0, sp, #0 - mov r1, r4 - mov r2, #4 - bl CopyBitsFrom - add r0, sp, #0 - add r1, r4, #1 - mov r2, #7 - bl CopyBitsFrom - add r0, sp, #0 - add r1, r4, #2 - bl Copy16BitsFrom - add r0, sp, #0 - add r1, r4, #4 - mov r2, #0xb - bl CopyBitsFrom - add r0, sp, #0 - add r1, r4, #6 - bl FUN_02059ae8 - add r0, sp, #0 - add r1, r4, #7 - bl FUN_02059ae8 - add r0, sp, #0 - add r1, r4, #8 - mov r2, #0xa - bl CopyBitsFrom - add r0, sp, #0 - add r1, r4, #0xa - mov r2, #0xa - bl CopyBitsFrom - add r0, sp, #0 - add r1, r4, #0xc - mov r2, #8 - bl CopyBitsFrom - add r0, sp, #0 - add r1, r4, #0xd - mov r2, #8 - bl CopyBitsFrom - add r0, sp, #0 - add r1, r4, #0xe - mov r2, #8 - bl CopyBitsFrom - add r0, sp, #0 - add r1, r4, #0xf - mov r2, #8 - bl CopyBitsFrom - add r0, sp, #0 - add r1, r4, #0x10 - mov r2, #0x18 - bl CopyBitsFrom - add r0, sp, #0 - add r1, r4, #0x14 - mov r2, #0x45 - bl CopyBitsFrom - add r0, sp, #0 - add r1, r4, #0x20 - mov r2, #4 - bl CopyBitsFrom - add r0, sp, #0 - add r1, r4, #0x22 - bl CopyMovesetFrom - add r0, sp, #0 - add r1, r4, #0x3a - mov r2, #0x50 - bl CopyBitsFrom - ldr r0, _0205BFAC @ =0x020B0A54 - mov r1, #0 - ldr r4, [r0, #8] - mov r2, #6 - add r0, r4, #0x44 - bl Memset - add r0, sp, #0 - add r1, r4, #0x46 - mov r2, #0xb - bl CopyBitsFrom - add r0, sp, #0 - add r1, r4, #0x48 - mov r2, #0xb - bl CopyBitsFrom - ldr r1, _0205BFAC @ =0x020B0A54 - add r0, sp, #0 - ldr r1, [r1, #4] - mov r2, #0x20 - bl CopyBitsFrom - ldr r4, _0205BFAC @ =0x020B0A54 - mov r7, #0 - add r6, sp, #0 - mov r5, #0x40 -_0205BF68: - ldr r1, [r4, #4] - mov r0, r6 - add r1, r1, #4 - mov r2, r5 - add r1, r1, r7, lsl #3 - bl CopyBitsFrom - add r7, r7, #1 - cmp r7, #0x20 - blt _0205BF68 - add r0, sp, #0 - bl FUN_020509bc - bl Rand16Bit - bl FUN_020634f4 - ldr r0, [sp, #8] - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0205BFA8: .4byte 0x022B57BC -_0205BFAC: .4byte 0x020B0A54 - arm_func_end FUN_0205bd9c - - arm_func_start FUN_0205bfb0 -FUN_0205bfb0: @ 0x0205BFB0 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0x10 - mov r3, r0 - mov r2, r1 - add r0, sp, #0 - mov r1, r3 - bl FUN_02050990 - ldr r1, _0205C194 @ =0x022B57BC - add r0, sp, #0 - mov r2, #0x20 - bl CopyBitsTo - ldr r5, _0205C198 @ =0x020B0A54 - mov r7, #0 - add r6, sp, #0 - mov r4, #0xb0 -_0205BFEC: - ldr r1, [r5] - mov r0, r6 - mla r1, r7, r4, r1 - bl FUN_0205c440 - add r7, r7, #1 - cmp r7, #0x20 - blt _0205BFEC - ldr r1, _0205C198 @ =0x020B0A54 - add r0, sp, #0 - ldr r4, [r1, #8] - mov r2, #4 - mov r1, r4 - bl CopyBitsTo - add r0, sp, #0 - add r1, r4, #1 - mov r2, #7 - bl CopyBitsTo - add r0, sp, #0 - add r1, r4, #2 - bl FUN_020515c4 - add r0, sp, #0 - add r1, r4, #4 - mov r2, #0xb - bl CopyBitsTo - add r0, sp, #0 - add r1, r4, #6 - bl FUN_02059af8 - add r0, sp, #0 - add r1, r4, #7 - bl FUN_02059af8 - add r0, sp, #0 - add r1, r4, #8 - mov r2, #0xa - bl CopyBitsTo - add r0, sp, #0 - add r1, r4, #0xa - mov r2, #0xa - bl CopyBitsTo - add r0, sp, #0 - add r1, r4, #0xc - mov r2, #8 - bl CopyBitsTo - add r0, sp, #0 - add r1, r4, #0xd - mov r2, #8 - bl CopyBitsTo - add r0, sp, #0 - add r1, r4, #0xe - mov r2, #8 - bl CopyBitsTo - add r0, sp, #0 - add r1, r4, #0xf - mov r2, #8 - bl CopyBitsTo - add r0, sp, #0 - add r1, r4, #0x10 - mov r2, #0x18 - bl CopyBitsTo - add r0, sp, #0 - add r1, r4, #0x14 - mov r2, #0x45 - bl CopyBitsTo - add r0, sp, #0 - add r1, r4, #0x20 - mov r2, #4 - bl CopyBitsTo - add r0, sp, #0 - add r1, r4, #0x22 - bl CopyMovesetTo - add r0, sp, #0 - add r1, r4, #0x3a - mov r2, #0x50 - bl CopyBitsTo - ldr r1, _0205C198 @ =0x020B0A54 - add r0, sp, #0 - ldr r4, [r1, #8] - mov r2, #0xb - add r1, r4, #0x46 - bl CopyBitsTo - add r0, sp, #0 - add r1, r4, #0x48 - mov r2, #0xb - bl CopyBitsTo - ldr r1, _0205C198 @ =0x020B0A54 - add r0, sp, #0 - ldr r1, [r1, #4] - mov r2, #0x20 - bl CopyBitsTo - ldr r4, _0205C198 @ =0x020B0A54 - mov r7, #0 - add r6, sp, #0 - mov r5, #0x40 -_0205C15C: - ldr r1, [r4, #4] - mov r0, r6 - add r1, r1, #4 - mov r2, r5 - add r1, r1, r7, lsl #3 - bl CopyBitsTo - add r7, r7, #1 - cmp r7, #0x20 - blt _0205C15C - add r0, sp, #0 - bl FUN_020509bc - ldr r0, [sp, #8] - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0205C194: .4byte 0x022B57BC -_0205C198: .4byte 0x020B0A54 - arm_func_end FUN_0205bfb0 - - arm_func_start FUN_0205c19c -FUN_0205c19c: @ 0x0205C19C - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r2, #4 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #4 - bl Copy16BitsFrom - mov r0, r5 - add r1, r4, #8 - mov r2, #0x18 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0xc - mov r2, #0x40 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0x14 - mov r2, #0x40 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0x1c - mov r2, #4 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0x1d - mov r2, #0x50 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0x32 - mov r2, #0x120 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0x56 - mov r2, #0x240 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0xa0 - mov r2, #0xb - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0xa2 - mov r2, #0xb - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0xa4 - mov r2, #0x40 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0xac - mov r2, #8 - bl CopyBitsFrom - mov r0, r5 - add r1, sp, #0 - mov r2, #1 - bl CopyBitsFrom - ldrb r0, [sp] - add r1, r4, #0xae - mov r2, #2 - cmp r0, #0 - movne r3, #1 - moveq r3, #0 - mov r0, r5 - strb r3, [r4, #0xad] - bl CopyBitsFrom - pop {r3, r4, r5, pc} - arm_func_end FUN_0205c19c - - arm_func_start FUN_0205c2a4 -FUN_0205c2a4: @ 0x0205C2A4 - push {r3, r4, r5, lr} - sub sp, sp, #8 - mov r5, r0 - mov r4, r1 - mov r2, #4 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #4 - bl FUN_02051648 - ldrb r0, [r4] - cmp r0, #1 - movne r0, #0 - strne r0, [r4, #8] - bne _0205C2EC - mov r0, r5 - add r1, r4, #8 - mov r2, #0x18 - bl CopyBitsFrom -_0205C2EC: - mov r3, #0 - str r3, [r4, #0xc] - mov r0, r5 - add r1, r4, #0x14 - mov r2, #0x40 - str r3, [r4, #0x10] - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0x1c - mov r2, #4 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0x1d - mov r2, #0x50 - bl CopyBitsFrom - ldrb r0, [r4] - cmp r0, #1 - moveq r0, #0 - strheq r0, [r4, #0xa0] - strheq r0, [r4, #0xa2] - beq _0205C360 - mov r0, r5 - add r1, r4, #0xa0 - mov r2, #0xa - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0xa2 - mov r2, #0xa - bl CopyBitsFrom -_0205C360: - mov r0, r5 - add r1, r4, #0xa4 - mov r2, #0x40 - bl CopyBitsFrom - ldrb r0, [r4, #4] - bl GetMaxRescueAttempts - strb r0, [r4, #0xac] - mov r2, #1 - add r1, sp, #0 - mov r0, r5 - strb r2, [r4, #0xad] - bl CopyBitsFrom - ldrb r0, [sp] - add r1, sp, #0 - cmp r0, #0 - moveq r2, #0 - movne r2, #1 - strb r2, [r4, #0xae] - mov r0, r5 - mov r2, #1 - bl CopyBitsFrom - ldrb r0, [sp] - cmp r0, #1 - moveq r1, #2 - ldrb r0, [r4, #0xae] - movne r1, #0 - orr r0, r0, r1 - strb r0, [r4, #0xae] - ldrb r0, [r4] - cmp r0, #1 - beq _0205C438 - ldrb r0, [r4, #0xae] - bl FUN_0205bd40 - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - tst r0, #0xff - beq _0205C438 - add r1, sp, #4 - mov r0, r5 - mov r2, #1 - bl CopyBitsFrom - add r1, sp, #2 - mov r0, r5 - mov r2, #1 - bl CopyBitsFrom - ldrh r1, [r4, #0xa0] - ldrh r0, [sp, #4] - orr r0, r1, r0, lsl #10 - strh r0, [r4, #0xa0] - ldrsh r1, [r4, #0xa2] - ldrsh r0, [sp, #2] - orr r0, r1, r0, lsl #10 - strh r0, [r4, #0xa2] -_0205C438: - add sp, sp, #8 - pop {r3, r4, r5, pc} - arm_func_end FUN_0205c2a4 - - arm_func_start FUN_0205c440 -FUN_0205c440: @ 0x0205C440 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r2, #4 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #4 - bl FUN_020515c4 - mov r0, r5 - add r1, r4, #8 - mov r2, #0x18 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0xc - mov r2, #0x40 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0x14 - mov r2, #0x40 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0x1c - mov r2, #4 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0x1d - mov r2, #0x50 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0x32 - mov r2, #0x120 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0x56 - mov r2, #0x240 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0xa0 - mov r2, #0xb - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0xa2 - mov r2, #0xb - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0xa4 - mov r2, #0x40 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0xac - mov r2, #8 - bl CopyBitsTo - ldrb r0, [r4, #0xad] - mov r2, #1 - cmp r0, #1 - ldreq r1, _0205C540 @ =0x020A3673 - mov r0, r5 - ldrne r1, _0205C544 @ =0x020A3670 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0xae - mov r2, #2 - bl CopyBitsTo - pop {r3, r4, r5, pc} - .align 2, 0 -_0205C540: .4byte 0x020A3673 -_0205C544: .4byte 0x020A3670 - arm_func_end FUN_0205c440 - - arm_func_start FUN_0205c548 -FUN_0205c548: @ 0x0205C548 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r2, #4 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #4 - bl FUN_02051620 - ldrb r0, [r4] - cmp r0, #1 - bne _0205C584 - mov r0, r5 - add r1, r4, #8 - mov r2, #0x18 - bl CopyBitsTo -_0205C584: - mov r0, r5 - add r1, r4, #0x14 - mov r2, #0x40 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0x1c - mov r2, #4 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0x1d - mov r2, #0x50 - bl CopyBitsTo - ldrb r0, [r4] - cmp r0, #1 - beq _0205C5E0 - mov r0, r5 - add r1, r4, #0xa0 - mov r2, #0xa - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0xa2 - mov r2, #0xa - bl CopyBitsTo -_0205C5E0: - mov r0, r5 - add r1, r4, #0xa4 - mov r2, #0x40 - bl CopyBitsTo - ldrb r0, [r4, #0xae] - mov r2, #1 - tst r0, #1 - ldreq r1, _0205C680 @ =0x020A3671 - mov r0, r5 - ldrne r1, _0205C684 @ =0x020A3672 - bl CopyBitsTo - ldr r1, _0205C684 @ =0x020A3672 - mov r0, r5 - mov r2, #1 - bl CopyBitsTo - ldrb r0, [r4] - cmp r0, #1 - popeq {r3, r4, r5, pc} - ldrb r0, [r4, #0xae] - bl FUN_0205bd40 - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - tst r0, #0xff - popeq {r3, r4, r5, pc} - ldrh r2, [r4, #0xa0] - add r1, sp, #2 - mov r0, r5 - asr r2, r2, #0xa - strh r2, [sp, #2] - ldrsh r3, [r4, #0xa2] - mov r2, #1 - asr r3, r3, #0xa - strh r3, [sp] - bl CopyBitsTo - add r1, sp, #0 - mov r0, r5 - mov r2, #1 - bl CopyBitsTo - pop {r3, r4, r5, pc} - .align 2, 0 -_0205C680: .4byte 0x020A3671 -_0205C684: .4byte 0x020A3672 - arm_func_end FUN_0205c548 - - arm_func_start FUN_0205c688 -FUN_0205c688: @ 0x0205C688 - push {r4, lr} - mov r4, r1 - bl FUN_0205bd40 - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - tst r0, #0xff - bne _0205C6C4 - mov r0, r4 - bl FUN_02054f18 - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r4, pc} -_0205C6C4: - mov r0, #1 - pop {r4, pc} - arm_func_end FUN_0205c688 - - arm_func_start FUN_0205c6cc -FUN_0205c6cc: @ 0x0205C6CC - push {r4, lr} - mov r4, r1 - bl FUN_0205bd40 - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - tst r0, #0xff - mov r0, r4 - bne _0205C6F8 - bl IsMovesetValidInTimeDarkness - pop {r4, pc} -_0205C6F8: - bl IsMovesetValid - pop {r4, pc} - arm_func_end FUN_0205c6cc - - arm_func_start FUN_0205c700 -FUN_0205c700: @ 0x0205C700 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r2 - bl FUN_0205c688 - cmp r0, #0 - beq _0205C72C - mov r0, r5 - mov r1, r4 - bl FUN_0205c6cc - cmp r0, #0 - bne _0205C734 -_0205C72C: - mov r0, #0 - pop {r3, r4, r5, pc} -_0205C734: - mov r0, #1 - pop {r3, r4, r5, pc} - arm_func_end FUN_0205c700 - - arm_func_start FUN_0205c73c -FUN_0205c73c: @ 0x0205C73C - ldr r1, _0205C750 @ =0x022B6F10 - ldr r0, _0205C754 @ =0x020B0A60 - ldr ip, _0205C758 @ =FUN_020600cc - str r1, [r0, #0x18] - bx ip - .align 2, 0 -_0205C750: .4byte 0x022B6F10 -_0205C754: .4byte 0x020B0A60 -_0205C758: .4byte FUN_020600cc - arm_func_end FUN_0205c73c - - arm_func_start FUN_0205c75c -FUN_0205c75c: @ 0x0205C75C - push {r3, r4, r5, lr} - ldr r4, _0205C850 @ =0x020B0A60 - mov r5, #0 -_0205C768: - ldr r1, [r4, #0x18] - lsl r0, r5, #0x18 - add r0, r1, r0, asr #19 - bl ClearMissionData - add r5, r5, #1 - cmp r5, #8 - blt _0205C768 - ldr r4, _0205C850 @ =0x020B0A60 - mov r5, #0 -_0205C78C: - ldr r1, [r4, #0x18] - lsl r0, r5, #0x18 - add r1, r1, #0x100 - add r0, r1, r0, asr #19 - bl ClearMissionData - add r5, r5, #1 - cmp r5, #8 - blt _0205C78C - ldr r4, _0205C850 @ =0x020B0A60 - mov r5, #0 -_0205C7B4: - ldr r1, [r4, #0x18] - lsl r0, r5, #0x18 - add r1, r1, #0x200 - add r0, r1, r0, asr #19 - bl ClearMissionData - add r5, r5, #1 - cmp r5, #8 - blt _0205C7B4 - ldr r0, _0205C850 @ =0x020B0A60 - ldr r0, [r0, #0x18] - add r0, r0, #0x300 - bl ClearMissionData - ldr r0, _0205C850 @ =0x020B0A60 - ldr r0, [r0, #0x18] - add r0, r0, #0x320 - bl ClearMissionData - mov r0, #0 - ldr r2, _0205C850 @ =0x020B0A60 - mov lr, #0xff + arm_func_start ov00_022C86C4 +ov00_022C86C4: @ 0x022C86C4 mov ip, #1 - mov r4, r0 - mov r1, #0xc -_0205C80C: - mul r5, r0, r1 - ldr r3, [r2, #0x18] - add r0, r0, #1 - add r3, r3, r5 - strb lr, [r3, #0x340] - ldr r3, [r2, #0x18] - cmp r0, #0x10 - add r3, r3, r5 - strb ip, [r3, #0x341] - ldr r3, [r2, #0x18] - add r3, r3, r5 - str r4, [r3, #0x344] - ldr r3, [r2, #0x18] - add r3, r3, r5 - str r4, [r3, #0x348] - blt _0205C80C - pop {r3, r4, r5, pc} - .align 2, 0 -_0205C850: .4byte 0x020B0A60 - arm_func_end FUN_0205c75c - - arm_func_start FUN_0205c854 -FUN_0205c854: @ 0x0205C854 - push {r3, lr} - ldrb r1, [r0] - cmp r1, #4 - movne r0, #0 - popne {r3, pc} - bl IsMissionValid - pop {r3, pc} - arm_func_end FUN_0205c854 - - arm_func_start FUN_0205c870 -FUN_0205c870: @ 0x0205C870 - cmp r0, #6 - addls pc, pc, r0, lsl #2 - b _0205C8D8 -_0205C87C: @ jump table - b _0205C898 @ case 0 - b _0205C898 @ case 1 - b _0205C898 @ case 2 - b _0205C898 @ case 3 - b _0205C898 @ case 4 - b _0205C8B4 @ case 5 - b _0205C8BC @ case 6 -_0205C898: - ldrsh r1, [r1] - ldrsh r0, [r2] - cmp r1, r0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr -_0205C8B4: - mov r0, #1 - bx lr -_0205C8BC: - ldrsh r1, [r1] - ldrsh r0, [r2] - cmp r1, r0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr -_0205C8D8: - mov r0, #0 - bx lr - arm_func_end FUN_0205c870 - - arm_func_start FUN_0205c8e0 -FUN_0205c8e0: @ 0x0205C8E0 - ldrb ip, [r0] - ldrb r2, [r1] - cmp ip, r2 - movne r0, #0 - bxne lr - cmp ip, #0 - bne _0205C910 - ldrh r3, [r0, #2] - ldrh r2, [r1, #2] - cmp r3, r2 - movne r0, #0 - bxne lr -_0205C910: - cmp ip, #1 - bne _0205C92C - ldrsh r2, [r0, #2] - ldrsh r0, [r1, #2] - cmp r2, r0 - movne r0, #0 - bxne lr -_0205C92C: - mov r0, #1 - bx lr - arm_func_end FUN_0205c8e0 - - arm_func_start FUN_0205c934 -FUN_0205c934: @ 0x0205C934 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - ldrb r1, [r5, #1] - ldrb r0, [r4, #1] - cmp r1, r0 - movne r0, #0 - popne {r3, r4, r5, pc} - ldrb r1, [r5, #2] - ldrb r0, [r4, #2] - cmp r1, r0 - movne r0, #0 - popne {r3, r4, r5, pc} - ldrb r1, [r5, #4] - ldrb r0, [r4, #4] - cmp r1, r0 - movne r0, #0 - popne {r3, r4, r5, pc} - ldrb r1, [r5, #5] - ldrb r0, [r4, #5] - cmp r1, r0 - movne r0, #0 - popne {r3, r4, r5, pc} - ldr r1, [r5, #8] - ldr r0, [r4, #8] - cmp r1, r0 - movne r0, #0 - popne {r3, r4, r5, pc} - ldrsh r1, [r5, #0xe] - ldrsh r0, [r4, #0xe] - cmp r1, r0 - movne r0, #0 - popne {r3, r4, r5, pc} - ldrsh r1, [r5, #0x10] - ldrsh r0, [r4, #0x10] - cmp r1, r0 - movne r0, #0 - popne {r3, r4, r5, pc} - ldrsh r1, [r5, #0x12] - ldrsh r0, [r4, #0x12] - cmp r1, r0 - movne r0, #0 - popne {r3, r4, r5, pc} - ldrsh r1, [r5, #0x14] - ldrsh r0, [r4, #0x14] - cmp r1, r0 - movne r0, #0 - popne {r3, r4, r5, pc} - ldrb r0, [r5, #0x16] - ldrb r1, [r4, #0x16] + sub r1, ip, #2 cmp r0, r1 - movne r0, #0 - popne {r3, r4, r5, pc} - add r1, r5, #0x18 - add r2, r4, #0x18 - bl FUN_0205c870 - cmp r0, #0 - moveq r0, #0 - popeq {r3, r4, r5, pc} - add r0, r5, #0x1a - add r1, r4, #0x1a - bl FUN_0205c8e0 - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - pop {r3, r4, r5, pc} - arm_func_end FUN_0205c934 - - arm_func_start IsMissionValid -IsMissionValid: @ 0x0205CA40 - push {r3, r4, r5, lr} - mov r4, r0 - ldrb r1, [r4, #1] - cmp r1, #0xd - blo _0205CA6C - cmp r1, #0xe - beq _0205CA6C - ldr r0, _0205CF10 @ =0x020A3728 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CA6C: - cmp r1, #7 - bne _0205CA94 - ldrb r0, [r4, #4] - bl GetMaxItemsAllowed - cmp r0, #0 - bne _0205CA94 - ldr r0, _0205CF14 @ =0x020A373C - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CA94: - ldrb r2, [r4, #2] - ldrb r1, [r4, #1] - cmp r2, #0 - moveq r0, #1 - beq _0205CBC0 - cmp r1, #0xe - addls pc, pc, r1, lsl #2 - b _0205CBB0 -_0205CAB4: @ jump table - b _0205CBB0 @ case 0 - b _0205CAF0 @ case 1 - b _0205CB04 @ case 2 - b _0205CB18 @ case 3 - b _0205CB2C @ case 4 - b _0205CBB0 @ case 5 - b _0205CB40 @ case 6 - b _0205CBB0 @ case 7 - b _0205CBB0 @ case 8 - b _0205CB7C @ case 9 - b _0205CB54 @ case 10 - b _0205CB68 @ case 11 - b _0205CBB0 @ case 12 - b _0205CBB0 @ case 13 - b _0205CB90 @ case 14 -_0205CAF0: - cmp r2, #4 - movlo r0, #1 - movhs r0, #0 - and r0, r0, #0xff - b _0205CBC0 -_0205CB04: - cmp r2, #2 - movlo r0, #1 - movhs r0, #0 - and r0, r0, #0xff - b _0205CBC0 -_0205CB18: - cmp r2, #4 - movlo r0, #1 - movhs r0, #0 - and r0, r0, #0xff - b _0205CBC0 -_0205CB2C: - cmp r2, #1 - movlo r0, #1 - movhs r0, #0 - and r0, r0, #0xff - b _0205CBC0 -_0205CB40: - cmp r2, #5 - movlo r0, #1 - movhs r0, #0 - and r0, r0, #0xff - b _0205CBC0 -_0205CB54: - cmp r2, #8 - movlo r0, #1 - movhs r0, #0 - and r0, r0, #0xff - b _0205CBC0 -_0205CB68: - cmp r2, #6 - movlo r0, #1 - movhs r0, #0 - and r0, r0, #0xff - b _0205CBC0 -_0205CB7C: - cmp r2, #3 - movlo r0, #1 - movhs r0, #0 - and r0, r0, #0xff - b _0205CBC0 -_0205CB90: - cmp r2, #2 - moveq r0, #0 - beq _0205CBC0 - cmp r2, #3 - movlo r0, #1 - movhs r0, #0 - and r0, r0, #0xff - b _0205CBC0 -_0205CBB0: - cmp r2, #1 - movlo r0, #1 - movhs r0, #0 - and r0, r0, #0xff -_0205CBC0: - cmp r0, #0 - bne _0205CBD8 - ldr r0, _0205CF18 @ =0x020A3764 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CBD8: - mov r0, r1 - add r1, r4, #2 - add r2, r4, #4 - bl FUN_0205cf58 - cmp r0, #0 - moveq r0, #0 - popeq {r3, r4, r5, pc} - ldrb r0, [r4, #1] - ldrsh r2, [r4, #0xe] - add r1, r4, #2 - mov r3, #1 - bl FUN_0205d008 - cmp r0, #0 - moveq r0, #0 - popeq {r3, r4, r5, pc} - ldrb r0, [r4, #1] - ldrsh r2, [r4, #0x10] - add r1, r4, #2 - mov r3, #0 - bl FUN_0205d008 - cmp r0, #0 - moveq r0, #0 - popeq {r3, r4, r5, pc} - mov r0, r4 - bl FUN_0205e1e8 - cmp r0, #0 - ldrshne r2, [r4, #0xe] - ldrshne r1, [r4, #0x10] - cmpne r1, r2 - beq _0205CC60 - ldr r0, _0205CF1C @ =0x020A377C - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CC60: - ldrb r0, [r4, #1] - cmp r0, #0xb - ldrbeq r1, [r4, #2] - cmpeq r1, #0 - beq _0205CC84 - cmp r0, #0xa - ldrbeq r1, [r4, #2] - cmpeq r1, #6 - bne _0205CCA4 -_0205CC84: - ldrsh r2, [r4, #0x12] - add r1, r4, #2 - mov r3, #0 - bl FUN_0205d008 - cmp r0, #0 - bne _0205CCC0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CCA4: - ldrsh r1, [r4, #0x12] - cmp r1, #0 - beq _0205CCC0 - ldr r0, _0205CF20 @ =0x020A37A0 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CCC0: - ldrb r0, [r4, #1] - ldrsh r2, [r4, #0x14] - add r1, r4, #2 - bl FUN_0205d11c - cmp r0, #0 - moveq r0, #0 - popeq {r3, r4, r5, pc} - ldrb r1, [r4, #0x16] - cmp r1, #7 - bne _0205CCF8 - ldr r0, _0205CF24 @ =0x020A37D0 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CCF8: - cmp r1, #8 - blo _0205CD10 - ldr r0, _0205CF24 @ =0x020A37D0 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CD10: - cmp r1, #6 - addls pc, pc, r1, lsl #2 - b _0205CE1C -_0205CD1C: @ jump table - b _0205CE24 @ case 0 - b _0205CD38 @ case 1 - b _0205CD38 @ case 2 - b _0205CD38 @ case 3 - b _0205CD38 @ case 4 - b _0205CE24 @ case 5 - b _0205CD9C @ case 6 -_0205CD38: - ldrsh r1, [r4, #0x18] - cmp r1, #0 - bne _0205CD54 - ldr r0, _0205CF28 @ =0x020A37E8 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CD54: - mov r0, r1 - bl IsItemValidVeneer - cmp r0, #0 - bne _0205CD78 - ldrsh r1, [r4, #0x18] - ldr r0, _0205CF28 @ =0x020A37E8 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CD78: - ldrsh r0, [r4, #0x18] - bl FUN_0200cca8 - cmp r0, #0 - bne _0205CE24 - ldrsh r1, [r4, #0x18] - ldr r0, _0205CF2C @ =0x020A3808 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CD9C: - ldrsh r1, [r4, #0xe] - cmp r1, #0 - bne _0205CDB8 - ldr r0, _0205CF30 @ =0x020A3830 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CDB8: - ldr r0, _0205CF34 @ =0x00000483 - cmp r1, r0 - blt _0205CDD4 - ldr r0, _0205CF38 @ =0x020A3854 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CDD4: - ldrsh r0, [r4, #0x18] - bl FUN_02062b64 - cmp r0, #0 - beq _0205CDF8 - ldrsh r1, [r4, #0x18] - ldr r0, _0205CF3C @ =0x020A387C - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CDF8: - ldrb r0, [r4, #1] - cmp r0, #0xb - beq _0205CE24 - ldrsh r0, [r4, #0x18] - bl IsMonsterMissionAllowed - cmp r0, #0 - bne _0205CE24 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CE1C: - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CE24: - ldrb r1, [r4, #0x1a] - cmp r1, #2 - blo _0205CE40 - ldr r0, _0205CF40 @ =0x020A38B4 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CE40: - cmp r1, #0 - bne _0205CE68 - ldrh r2, [r4, #0x1c] - cmp r2, #0x12 - blo _0205CE68 - ldr r0, _0205CF44 @ =0x020A38D0 - mov r1, r2 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CE68: - cmp r1, #1 - bne _0205CF08 - ldrsh r0, [r4, #0x1c] - ldr r1, _0205CF34 @ =0x00000483 - cmp r0, r1 - blt _0205CE90 - ldr r0, _0205CF48 @ =0x020A38F0 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CE90: - bl FUN_02062b64 - cmp r0, #0 - beq _0205CEB0 - ldrsh r1, [r4, #0x1c] - ldr r0, _0205CF4C @ =0x020A3918 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CEB0: - ldrsh r5, [r4, #0x1c] - mov r0, r5 - bl GetBaseForm - cmp r5, r0 - beq _0205CED8 - ldr r0, _0205CF50 @ =0x020A3954 - mov r1, r5 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CED8: - ldrb r0, [r4, #1] - cmp r0, #0xe - beq _0205CF08 - mov r0, r5 - bl IsMonsterMissionAllowed - cmp r0, #0 - bne _0205CF08 - ldrsh r1, [r4, #0x1c] - ldr r0, _0205CF54 @ =0x020A3984 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205CF08: - mov r0, #1 - pop {r3, r4, r5, pc} - .align 2, 0 -_0205CF10: .4byte 0x020A3728 -_0205CF14: .4byte 0x020A373C -_0205CF18: .4byte 0x020A3764 -_0205CF1C: .4byte 0x020A377C -_0205CF20: .4byte 0x020A37A0 -_0205CF24: .4byte 0x020A37D0 -_0205CF28: .4byte 0x020A37E8 -_0205CF2C: .4byte 0x020A3808 -_0205CF30: .4byte 0x020A3830 -_0205CF34: .4byte 0x00000483 -_0205CF38: .4byte 0x020A3854 -_0205CF3C: .4byte 0x020A387C -_0205CF40: .4byte 0x020A38B4 -_0205CF44: .4byte 0x020A38D0 -_0205CF48: .4byte 0x020A38F0 -_0205CF4C: .4byte 0x020A3918 -_0205CF50: .4byte 0x020A3954 -_0205CF54: .4byte 0x020A3984 - arm_func_end IsMissionValid - - arm_func_start FUN_0205cf58 -FUN_0205cf58: @ 0x0205CF58 - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r1 - cmp r7, #6 - ldrbeq r0, [r6] - mov r5, r2 - cmpeq r0, #4 - beq _0205CFF4 - cmp r7, #0xe - beq _0205CFF4 - ldrb r0, [r5] - bl IsInvalidForMission - cmp r0, #0 - beq _0205CFA4 - ldrb r1, [r5] - ldr r0, _0205CFFC @ =0x020A39C0 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_0205CFA4: - ldrb r4, [r5, #1] - ldrb r2, [r5] - mov r0, r7 - mov r1, r6 - bl FUN_02063424 - cmp r4, r0 - ble _0205CFD4 - ldr r0, _0205D000 @ =0x020A39D4 - mov r1, r4 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_0205CFD4: - mov r0, r5 - bl IsForbiddenFloor - cmp r0, #0 - beq _0205CFF4 - ldr r0, _0205D004 @ =0x020A39F0 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_0205CFF4: - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0205CFFC: .4byte 0x020A39C0 -_0205D000: .4byte 0x020A39D4 -_0205D004: .4byte 0x020A39F0 - arm_func_end FUN_0205cf58 - - arm_func_start FUN_0205d008 -FUN_0205d008: @ 0x0205D008 - push {r4, r5, r6, lr} - movs r4, r3 - mov r6, r0 - mov r5, r2 - beq _0205D034 - cmp r5, #0 - bne _0205D034 - ldr r0, _0205D104 @ =0x020A3A08 - bl DebugPrint0 - mov r0, #0 - pop {r4, r5, r6, pc} -_0205D034: - ldr r0, _0205D108 @ =0x00000483 - cmp r5, r0 - blt _0205D050 - ldr r0, _0205D10C @ =0x020A3A24 - bl DebugPrint0 - mov r0, #0 - pop {r4, r5, r6, pc} -_0205D050: - mov r0, r5 - bl GetBaseForm - cmp r5, r0 - beq _0205D074 - ldr r0, _0205D110 @ =0x020A3A44 - mov r1, r5 - bl DebugPrint0 - mov r0, #0 - pop {r4, r5, r6, pc} -_0205D074: - mov r0, r5 - bl FUN_02062b64 - cmp r0, #0 - beq _0205D098 - ldr r0, _0205D114 @ =0x020A3A6C - mov r1, r5 - bl DebugPrint0 - mov r0, #0 - pop {r4, r5, r6, pc} -_0205D098: - cmp r4, #0 - beq _0205D0C4 - add r0, r6, #0xfe - and r0, r0, #0xff - cmp r0, #3 - bhi _0205D0C4 - mov r0, r5 - bl GetBodySize - cmp r0, #1 - movne r0, #0 - popne {r4, r5, r6, pc} -_0205D0C4: - cmp r4, #0 - cmpne r6, #0xa - cmpne r6, #0xe - cmpne r6, #0xb - beq _0205D0FC - mov r0, r5 - bl IsMonsterMissionAllowed - cmp r0, #0 - bne _0205D0FC - ldr r0, _0205D118 @ =0x020A3AA0 - mov r1, r5 - bl DebugPrint0 - mov r0, #0 - pop {r4, r5, r6, pc} -_0205D0FC: - mov r0, #1 - pop {r4, r5, r6, pc} - .align 2, 0 -_0205D104: .4byte 0x020A3A08 -_0205D108: .4byte 0x00000483 -_0205D10C: .4byte 0x020A3A24 -_0205D110: .4byte 0x020A3A44 -_0205D114: .4byte 0x020A3A6C -_0205D118: .4byte 0x020A3AA0 - arm_func_end FUN_0205d008 - - arm_func_start FUN_0205d11c -FUN_0205d11c: @ 0x0205D11C - push {r3, r4, r5, lr} - movs r4, r2 - mov r5, r0 - bne _0205D140 - ldr r0, _0205D1E8 @ =0x020A3AD4 - mov r1, r4 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205D140: - mov r0, r4 - bl FUN_0200cdac - cmp r0, #0 - beq _0205D164 - ldr r0, _0205D1E8 @ =0x020A3AD4 - mov r1, r4 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205D164: - mov r0, r4 - bl IsItemValidVeneer - cmp r0, #0 - bne _0205D188 - ldr r0, _0205D1E8 @ =0x020A3AD4 - mov r1, r4 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205D188: - mov r0, r4 - bl IsThrownItem - cmp r0, #0 - beq _0205D1C0 - cmp r5, #4 - bne _0205D1C0 - cmp r4, #0xa - cmpne r4, #9 - beq _0205D1C0 - ldr r0, _0205D1EC @ =0x020A3AF4 - mov r1, r4 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} -_0205D1C0: - mov r0, r4 - bl FUN_0200cca8 - cmp r0, #0 - movne r0, #1 - popne {r3, r4, r5, pc} - ldr r0, _0205D1F0 @ =0x020A3B18 - mov r1, r4 - bl DebugPrint0 - mov r0, #0 - pop {r3, r4, r5, pc} - .align 2, 0 -_0205D1E8: .4byte 0x020A3AD4 -_0205D1EC: .4byte 0x020A3AF4 -_0205D1F0: .4byte 0x020A3B18 - arm_func_end FUN_0205d11c -_0205D1F4: - .byte 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1, 0x0F, 0xFE, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x00, 0x00, 0xD4, 0xE5, 0x09, 0x00, 0x50, 0xE3 - .byte 0x01, 0x00, 0x00, 0x3A, 0x00, 0x00, 0xA0, 0xE3, 0x10, 0x80, 0xBD, 0xE8, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x10, 0x80, 0xBD, 0xE8 - - arm_func_start GenerateMission -GenerateMission: @ 0x0205D224 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x14 - mov sb, r0 - add r0, sp, #0x10 - mov r8, r1 - bl FUN_0205f738 - str r0, [sp] - cmp r0, #0 - bne _0205D258 - mov r0, r8 - bl ClearMissionData - mov r0, #2 - b _0205DF9C -_0205D258: - mov r0, #4 - strb r0, [r8] - ldrb r0, [sb, #0x20] - strb r0, [r8, #1] - ldrb r0, [sb, #0x21] - strb r0, [r8, #2] - ldrh r0, [sb, #8] - cmp r0, #5 - addls pc, pc, r0, lsl #2 - b _0205D414 -_0205D280: @ jump table - b _0205D298 @ case 0 - b _0205D298 @ case 1 - b _0205D414 @ case 2 - b _0205D414 @ case 3 - b _0205D414 @ case 4 - b _0205D338 @ case 5 -_0205D298: - ldrh r0, [sb, #0xc] - and r1, r0, #0xff - strb r0, [sp, #4] - strb r1, [sp, #5] - ldrh r0, [sb, #8] - cmp r0, #0 - bne _0205D2C8 - and r0, r1, #0xff - bl FUN_02062bb8 - cmp r0, #0 - moveq r5, #1 - beq _0205D51C -_0205D2C8: - mov r0, r8 - bl FUN_0205e258 - mov r3, r0 - add r1, sp, #4 - add r2, sp, #5 - mov r0, #1 - bl FUN_02062c4c - cmp r0, #0 - bne _0205D304 - mov r0, r8 - bl FUN_0205e258 - cmp r0, #0 - movne r5, #1 - moveq r5, #2 - b _0205D51C -_0205D304: - ldrb r0, [sb, #0x20] - add r2, sp, #5 - add r1, sb, #0x21 - bl FUN_0205cf58 - cmp r0, #0 - moveq r5, #1 - beq _0205D51C - ldrb r0, [sp, #5] - mov r5, #0 - strb r0, [r8, #4] - ldrb r0, [sp, #6] - strb r0, [r8, #5] - b _0205D51C -_0205D338: - add r0, sp, #0xc - bl FUN_02062814 - ldrb r1, [sb, #0x20] - cmp r1, #3 - ldrbeq r1, [sb, #0x21] - cmpeq r1, #3 - movne r5, #1 - bne _0205D51C - mov r1, #0xf - bl MemAlloc - mov r7, r0 - bl FUN_0206282c - movs r5, r0 - bne _0205D380 - mov r0, r7 - bl MemFree - mov r5, #1 - b _0205D51C -_0205D380: - mov r0, r8 - bl FUN_0205e258 - mov r3, r0 - add r2, sp, #5 - mov r0, r5 - mov r1, r7 - bl FUN_02062c4c - mov r6, r0 - ldrb r0, [r8, #1] - ldrb r2, [sp, #5] - add r1, r8, #2 - bl FUN_02063424 - strb r0, [sp, #6] - add r5, sp, #5 - b _0205D3D8 -_0205D3BC: - mov r0, r5 - bl IsForbiddenFloor - cmp r0, #0 - beq _0205D3E4 - ldrb r0, [sp, #6] - sub r0, r0, #1 - strb r0, [sp, #6] -_0205D3D8: - ldrb r0, [sp, #6] - cmp r0, #0 - bne _0205D3BC -_0205D3E4: - mov r0, r7 - bl MemFree - cmp r6, #0 - ldrbne r0, [sp, #6] - cmpne r0, #0 - beq _0205D518 - ldrb r0, [sp, #5] - mov r5, #0 - strb r0, [r8, #4] - ldrb r0, [sp, #6] - strb r0, [r8, #5] - b _0205D51C -_0205D414: - ldr r0, _0205DFA4 @ =0x020B0A60 - mov r5, #1 - ldr r6, [r0, #0xc] - ldr r7, [r0, #8] - cmp r6, #0 - moveq r5, #2 - beq _0205D51C - mov r0, r8 - bl FUN_0205e258 - mov r3, r0 - add r2, sp, #5 - mov r0, r6 - mov r1, r7 - bl FUN_02062c4c - cmp r0, #0 - bne _0205D468 - mov r0, r8 - bl FUN_0205e258 - cmp r0, #0 - moveq r5, #2 - b _0205D51C -_0205D468: - ldrb r0, [r8, #1] - cmp r0, #0xa - addls pc, pc, r0, lsl #2 - b _0205D4F8 -_0205D478: @ jump table - b _0205D4F8 @ case 0 - b _0205D4F8 @ case 1 - b _0205D4A4 @ case 2 - b _0205D4A4 @ case 3 - b _0205D4A4 @ case 4 - b _0205D4A4 @ case 5 - b _0205D4C8 @ case 6 - b _0205D4B8 @ case 7 - b _0205D4F8 @ case 8 - b _0205D4F8 @ case 9 - b _0205D4DC @ case 10 -_0205D4A4: - ldrb r0, [sp, #5] - bl GetMaxMembersAllowed - cmp r0, #4 - movlt r5, #0 - b _0205D4F8 -_0205D4B8: - ldrb r0, [sp, #5] - bl GetMaxItemsAllowed - cmp r0, #0 - moveq r5, #0 -_0205D4C8: - add r0, sp, #5 - bl FUN_02062d40 - cmp r0, #0 - moveq r5, #0 - b _0205D4F8 -_0205D4DC: - ldrb r0, [r8, #2] - cmp r0, #4 - bne _0205D4F8 - ldrb r0, [sp, #5] - bl GetMaxMembersAllowed - cmp r0, #4 - movlt r5, #0 -_0205D4F8: - cmp r5, #0 - beq _0205D518 - ldrb r0, [sp, #5] - mov r5, #0 - strb r0, [r8, #4] - ldrb r0, [sp, #6] - strb r0, [r8, #5] - b _0205D51C -_0205D518: - mov r5, #1 -_0205D51C: - cmp r5, #0 - beq _0205D534 - mov r0, r8 - bl ClearMissionData - mov r0, r5 - b _0205DF9C -_0205D534: - bl FUN_02051134 - bic r0, r0, #0xff000000 - str r0, [r8, #8] - mov r0, #0 - str r0, [sp, #8] - ldrh r0, [sb, #0xe] - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _0205D7E4 -_0205D558: @ jump table - b _0205D56C @ case 0 - b _0205D56C @ case 1 - b _0205D62C @ case 2 - b _0205D6F8 @ case 3 - b _0205D77C @ case 4 -_0205D56C: - ldrsh r5, [sb, #0x12] - ldrb r0, [sb, #0x20] - add r1, sb, #0x21 - mov r2, r5 - mov r3, #1 - bl FUN_0205d008 - cmp r0, #0 - moveq r4, #1 - beq _0205DB40 - ldrb r0, [sb, #0x20] - cmp r0, #0xb - ldrbeq r0, [sb, #0x21] - cmpeq r0, #0 - bne _0205D5F0 - ldr r0, _0205DFA8 @ =0x000001EA - cmp r5, r0 - addne r0, r0, #0x258 - cmpne r5, r0 - movne r1, #1 - moveq r1, #0 - mov r0, r5 - and r1, r1, #0xff - bl CanMonsterBeUsedForMission - cmp r0, #0 - moveq r4, #1 - beq _0205DB40 - strh r5, [r8, #0xe] - ldrh r0, [sb, #0x18] - mov r4, #0 - strh r0, [r8, #0x10] - ldrh r0, [sb, #0x1e] - strh r0, [r8, #0x12] - b _0205DB40 -_0205D5F0: - ldrh r0, [sb, #0xe] - cmp r0, #0 - mov r0, r5 - bne _0205D614 - bl CanMonsterBeUsedForMissionWrapper - cmp r0, #0 - bne _0205D624 - mov r4, #1 - b _0205DB40 -_0205D614: - bl FUN_02062ad0 - cmp r0, #0 - moveq r4, #1 - beq _0205DB40 -_0205D624: - strh r5, [r8, #0xe] - b _0205D7E4 -_0205D62C: - add r0, sp, #8 - add r1, sb, #0xe - bl FUN_0205dfac - movs r4, r0 - bne _0205D658 - ldr r0, [sp, #8] - bl MemFree - mov r0, #0 - str r0, [sp, #8] - mov r4, #1 - b _0205DB40 -_0205D658: - bl RandInt - lsl r1, r0, #1 - ldr r2, [sp, #8] - ldrb r0, [sb, #0x20] - ldrsh r5, [r2, r1] - add r1, sb, #0x21 - mov r3, #1 - mov r2, r5 - bl FUN_0205d008 - cmp r0, #0 - bne _0205D69C - ldr r0, [sp, #8] - bl MemFree - mov r0, #0 - str r0, [sp, #8] - mov r4, #1 - b _0205DB40 -_0205D69C: - ldrh r1, [sb, #0xe] - ldrh r0, [sb, #0x14] - cmp r1, r0 - ldrheq r1, [sb, #0x10] - ldrheq r0, [sb, #0x16] - cmpeq r1, r0 - ldrheq r1, [sb, #0x12] - ldrheq r0, [sb, #0x18] - cmpeq r1, r0 - beq _0205D6D8 - ldr r0, [sp, #8] - mov r4, #0 - bl MemFree - mov r0, r4 - str r0, [sp, #8] -_0205D6D8: - strh r5, [r8, #0xe] - ldrb r0, [r8, #5] - tst r0, #1 - bne _0205D7E4 - ldrsh r0, [r8, #0xe] - bl GetSecondFormIfValid - strh r0, [r8, #0xe] - b _0205D7E4 -_0205D6F8: - ldrh r4, [sb, #0x10] - bl FUN_020627f4 - ldrh r1, [sb, #0x12] - add r1, r0, r1, lsl #1 - mov r0, r4 - str r1, [sp, #8] - bl RandInt - lsl r1, r0, #1 - ldr r2, [sp, #8] - ldrb r0, [sb, #0x20] - ldrsh r4, [r2, r1] - add r1, sb, #0x21 - mov r3, #1 - mov r2, r4 - bl FUN_0205d008 - cmp r0, #0 - moveq r4, #1 - beq _0205DB40 - mov r0, r4 - bl FUN_02062ad0 - cmp r0, #0 - moveq r4, #1 - beq _0205DB40 - strh r4, [r8, #0xe] - ldrb r0, [r8, #5] - tst r0, #1 - bne _0205D770 - ldrsh r0, [r8, #0xe] - bl GetSecondFormIfValid - strh r0, [r8, #0xe] -_0205D770: - mov r4, #0 - str r4, [sp, #8] - b _0205D7E4 -_0205D77C: - add r0, sp, #8 - bl FUN_0205f738 - cmp r0, #0 - moveq r4, #2 - beq _0205DB40 - bl RandIntSafe - lsl r1, r0, #1 - ldr r2, [sp, #8] - ldrb r0, [sb, #0x20] - ldrsh r4, [r2, r1] - add r1, sb, #0x21 - mov r3, #1 - mov r2, r4 - bl FUN_0205d008 - cmp r0, #0 - moveq r4, #1 - beq _0205DB40 - strh r4, [r8, #0xe] - ldrb r0, [r8, #5] - tst r0, #1 - bne _0205D7DC - ldrsh r0, [r8, #0xe] - bl GetSecondFormIfValid - strh r0, [r8, #0xe] -_0205D7DC: - mov r4, #0 - str r4, [sp, #8] -_0205D7E4: - mov r0, r8 - bl FUN_0205e1e8 - cmp r0, #0 - beq _0205D820 - ldr r0, [sp, #8] - cmp r0, #0 - beq _0205D80C - bl MemFree - mov r0, #0 - str r0, [sp, #8] -_0205D80C: - ldrsh r0, [r8, #0xe] - mov r4, #0 - strh r0, [r8, #0x10] - strh r4, [r8, #0x12] - b _0205DB40 -_0205D820: - ldrb r1, [r8, #1] - cmp r1, #0xa - ldrbeq r0, [r8, #2] - cmpeq r0, #6 - beq _0205D844 - cmp r1, #0xb - ldrbeq r0, [r8, #2] - cmpeq r0, #0 - bne _0205D84C -_0205D844: - mov sl, #2 - b _0205D858 -_0205D84C: - mov r0, #0 - strh r0, [r8, #0x12] - mov sl, #1 -_0205D858: - mov r6, #0 - add fp, sb, #0x14 - b _0205DB34 -_0205D864: - mov r0, #6 - mul r1, r6, r0 - add r5, sb, r1 - ldrh r0, [r5, #0x14] - cmp r0, #6 - addls pc, pc, r0, lsl #2 - b _0205DB30 -_0205D880: @ jump table - b _0205D89C @ case 0 - b _0205D89C @ case 1 - b _0205D938 @ case 2 - b _0205DA30 @ case 3 - b _0205DAC0 @ case 4 - b _0205DB30 @ case 5 - b _0205DAC0 @ case 6 -_0205D89C: - ldrsh r7, [r5, #0x18] - ldrb r0, [sb, #0x20] - add r1, sb, #0x21 - mov r2, r7 - mov r3, #0 - bl FUN_0205d008 - cmp r0, #0 - moveq r4, #1 - beq _0205DB40 - ldrb r0, [sb, #0x20] - cmp r0, #0xa - ldrbeq r0, [sb, #0x21] - cmpeq r0, #6 - bne _0205D8F8 - mov r0, r7 - bl CanMonsterBeUsedForMissionWrapper - cmp r0, #0 - strhne r7, [r8, #0x10] - ldrhne r0, [sb, #0x1e] - moveq r4, #1 - movne r4, #0 - strhne r0, [r8, #0x12] - b _0205DB40 -_0205D8F8: - ldrh r0, [r5, #0x14] - cmp r0, #0 - mov r0, r7 - bne _0205D91C - bl CanMonsterBeUsedForMissionWrapper - cmp r0, #0 - bne _0205D92C - mov r4, #1 - b _0205DB40 -_0205D91C: - bl FUN_02062ad0 - cmp r0, #0 - moveq r4, #1 - beq _0205DB40 -_0205D92C: - add r0, r8, r6, lsl #1 - strh r7, [r0, #0x10] - b _0205DB30 -_0205D938: - ldr r0, [sp, #8] - cmp r0, #0 - bne _0205D970 - add r1, fp, r1 - add r0, sp, #8 - bl FUN_0205dfac - movs r4, r0 - bne _0205D970 - ldr r0, [sp, #8] - bl MemFree - mov r0, #0 - str r0, [sp, #8] - mov r4, #1 - b _0205DB40 -_0205D970: - mov r0, r4 - bl RandInt - ldr r1, [sp, #8] - lsl r0, r0, #1 - ldrsh r5, [r1, r0] - ldrb r0, [sb, #0x20] - add r1, sb, #0x21 - mov r2, r5 - mov r3, #0 - bl FUN_0205d008 - cmp r0, #0 - bne _0205D9B8 - ldr r0, [sp, #8] - bl MemFree - mov r0, #0 - str r0, [sp, #8] - mov r4, #1 - b _0205DB40 -_0205D9B8: - add r0, r6, #1 - cmp r0, sl - bge _0205D9F4 - mov r0, #6 - mla r0, r6, r0, sb - ldrh r2, [r0, #0x14] - ldrh r1, [r0, #0x1a] - cmp r2, r1 - ldrheq r2, [r0, #0x16] - ldrheq r1, [r0, #0x1c] - cmpeq r2, r1 - ldrheq r1, [r0, #0x18] - ldrheq r0, [r0, #0x1e] - cmpeq r1, r0 - beq _0205DA08 -_0205D9F4: - ldr r0, [sp, #8] - mov r4, #0 - bl MemFree - mov r0, r4 - str r0, [sp, #8] -_0205DA08: - add r1, r8, r6, lsl #1 - strh r5, [r1, #0x10] - ldrb r0, [r8, #5] - tst r0, #1 - bne _0205DB30 - ldrsh r0, [r1, #0x10] - bl GetSecondFormIfValid - add r1, r8, r6, lsl #1 - strh r0, [r1, #0x10] - b _0205DB30 -_0205DA30: - ldrh r4, [r5, #0x16] - bl FUN_020627f4 - ldrh r1, [r5, #0x18] - add r0, r0, r1, lsl #1 - str r0, [sp, #8] - mov r0, r4 - bl RandInt - ldr r1, [sp, #8] - lsl r0, r0, #1 - ldrsh r4, [r1, r0] - ldrb r0, [sb, #0x20] - add r1, sb, #0x21 - mov r2, r4 - mov r3, #0 - bl FUN_0205d008 - cmp r0, #0 - moveq r4, #1 - beq _0205DB40 - mov r0, r4 - bl FUN_02062ad0 - cmp r0, #0 - moveq r4, #1 - beq _0205DB40 - add r1, r8, r6, lsl #1 - strh r4, [r1, #0x10] - ldrb r0, [r8, #5] - tst r0, #1 - bne _0205DAB0 - ldrsh r0, [r1, #0x10] - bl GetSecondFormIfValid - add r1, r8, r6, lsl #1 - strh r0, [r1, #0x10] -_0205DAB0: - mov r0, #0 - str r0, [sp, #8] - mov r4, r0 - b _0205DB30 -_0205DAC0: - add r0, sp, #8 - bl FUN_0205f738 - cmp r0, #0 - moveq r4, #2 - beq _0205DB40 - bl RandIntSafe - ldr r1, [sp, #8] - lsl r0, r0, #1 - ldrsh r5, [r1, r0] - ldrb r0, [sb, #0x20] - add r1, sb, #0x21 - mov r2, r5 - mov r3, #0 - bl FUN_0205d008 - cmp r0, #0 - moveq r4, #1 - beq _0205DB40 - add r1, r8, r6, lsl #1 - strh r5, [r1, #0x10] - ldrb r0, [r8, #5] - tst r0, #1 - bne _0205DB28 - ldrsh r0, [r1, #0x10] - bl GetSecondFormIfValid - add r1, r8, r6, lsl #1 - strh r0, [r1, #0x10] -_0205DB28: - mov r0, #0 - str r0, [sp, #8] -_0205DB30: - add r6, r6, #1 -_0205DB34: - cmp r6, sl - blt _0205D864 - mov r4, #0 -_0205DB40: - cmp r4, #0 - beq _0205DB58 - mov r0, r8 - bl ClearMissionData - mov r0, r4 - b _0205DF9C -_0205DB58: - ldrh r0, [sb, #2] - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _0205DD34 -_0205DB68: @ jump table - b _0205DB7C @ case 0 - b _0205DB7C @ case 1 - b _0205DBC4 @ case 2 - b _0205DC74 @ case 3 - b _0205DCB8 @ case 4 -_0205DB7C: - ldrsh r4, [sb, #6] - ldrb r0, [sb, #0x20] - add r1, sb, #0x21 - mov r2, r4 - bl FUN_0205d11c - cmp r0, #0 - moveq r4, #1 - beq _0205DD38 - ldrh r0, [sb, #2] - cmp r0, #0 - bne _0205DBBC - mov r0, r4 - bl IsAvailableItem - cmp r0, #0 - moveq r4, #1 - beq _0205DD38 -_0205DBBC: - strh r4, [r8, #0x14] - b _0205DD34 -_0205DBC4: - ldrh r7, [sb, #4] - ldrh sl, [sb, #6] - mov r5, #0 - bl FUN_02062804 - mov fp, r0 - lsl r0, r7, #1 - mov r1, #0xf - bl MemAlloc - mov r4, r0 - mov r6, r5 - add sl, fp, sl, lsl #1 - b _0205DC18 -_0205DBF4: - lsl r0, r6, #1 - ldrsh fp, [r0, sl] - mov r0, fp - bl IsAvailableItem - cmp r0, #0 - lslne r0, r5, #1 - strhne fp, [r4, r0] - addne r5, r5, #1 - add r6, r6, #1 -_0205DC18: - cmp r6, r7 - blt _0205DBF4 - cmp r5, #0 - bne _0205DC38 - mov r0, r4 - bl MemFree - mov r4, #1 - b _0205DD38 -_0205DC38: - mov r0, r5 - bl RandIntSafe - lsl r1, r0, #1 - mov r0, r4 - ldrsh r4, [r4, r1] - bl MemFree - ldrb r0, [sb, #0x20] - mov r2, r4 - add r1, sb, #0x21 - bl FUN_0205d11c - cmp r0, #0 - moveq r4, #1 - beq _0205DD38 - strh r4, [r8, #0x14] - b _0205DD34 -_0205DC74: - ldrh r5, [sb, #4] - ldrh r4, [sb, #6] - bl FUN_02062804 - add r4, r0, r4, lsl #1 - mov r0, r5 - bl RandIntSafe - lsl r0, r0, #1 - ldrsh r4, [r4, r0] - ldrb r0, [sb, #0x20] - add r1, sb, #0x21 - mov r2, r4 - bl FUN_0205d11c - cmp r0, #0 - moveq r4, #1 - beq _0205DD38 - strh r4, [r8, #0x14] - b _0205DD34 -_0205DCB8: - ldr r1, _0205DFA4 @ =0x020B0A60 - ldr r0, [r1, #4] - ldr r4, [r1] - cmp r0, #0 - moveq r0, #0x46 - beq _0205DCDC - bl RandIntSafe - lsl r0, r0, #1 - ldrsh r0, [r4, r0] -_0205DCDC: - strh r0, [r8, #0x14] - ldrsh r0, [r8, #0x14] - cmp r0, #0 - bne _0205DD34 - ldrb r0, [r8, #1] - add r0, r0, #0xfa - and r0, r0, #0xff - cmp r0, #1 - movls r4, #1 - bls _0205DD38 -_0205DD04: - ldrb r1, [r8, #1] - add r0, r8, #4 - add r2, r8, #0x14 - bl FUN_020630a4 - ldrsh r0, [r8, #0x14] - bl IsThrownItem - cmp r0, #0 - bne _0205DD04 - ldrsh r0, [r8, #0x14] - bl FUN_0200cca8 - cmp r0, #0 - beq _0205DD04 -_0205DD34: - mov r4, #0 -_0205DD38: - cmp r4, #0 - beq _0205DD50 - mov r0, r8 - bl ClearMissionData - mov r0, r4 - b _0205DF9C -_0205DD50: - ldrb r0, [r8, #4] - cmp r0, #0x26 - cmpne r0, #0x29 - beq _0205DD70 - ldrb r0, [r8, #4] - bl GetMaxMembersAllowed - cmp r0, #4 - bge _0205DD80 -_0205DD70: - mov r0, #0 - strb r0, [r8, #0x1a] - strh r0, [r8, #0x1c] - b _0205DD98 -_0205DD80: - ldr r0, [sp] - ldr r1, [sp, #0x10] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - add r2, r8, #0x1a - bl FUN_02062900 -_0205DD98: - mov r4, #0 - strb r4, [r8, #0xc] - ldrb r0, [r8, #1] - cmp r0, #0xe - addls pc, pc, r0, lsl #2 - b _0205DF84 -_0205DDB0: @ jump table - b _0205DF84 @ case 0 - b _0205DF84 @ case 1 - b _0205DF84 @ case 2 - b _0205DDEC @ case 3 - b _0205DF84 @ case 4 - b _0205DF84 @ case 5 - b _0205DE20 @ case 6 - b _0205DF84 @ case 7 - b _0205DF84 @ case 8 - b _0205DE7C @ case 9 - b _0205DE98 @ case 10 - b _0205DED4 @ case 11 - b _0205DF48 @ case 12 - b _0205DF84 @ case 13 - b _0205DF64 @ case 14 -_0205DDEC: - ldrb r1, [r8, #2] - cmp r1, #1 - beq _0205DE08 - cmp r1, #2 - beq _0205DE14 - cmp r1, #3 - b _0205DF84 -_0205DE08: - bl FUN_0205ff80 - strb r0, [r8, #0xc] - b _0205DF84 -_0205DE14: - bl FUN_0205ff80 - strb r0, [r8, #0xc] - b _0205DF84 -_0205DE20: - ldrb r0, [r8, #2] - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _0205DF84 -_0205DE30: @ jump table - b _0205DF84 @ case 0 - b _0205DF84 @ case 1 - b _0205DF84 @ case 2 - b _0205DF84 @ case 3 - b _0205DE44 @ case 4 -_0205DE44: - ldrb r6, [r8, #4] - ldrb r0, [r8, #1] - add r1, r8, #2 - mov r2, r6 - bl FUN_02063424 - mov r5, r0 - mov r0, r6 - mov r1, r5 - mov r2, #1 - bl FUN_0205e090 - cmp r0, #0 - movne r4, #1 - strbeq r5, [r8, #5] - b _0205DF84 -_0205DE7C: - ldrsh r0, [r8, #0x14] - cmp r0, #0x49 - ldrshne r1, [r8, #0xe] - ldrshne r0, [r8, #0x10] - cmpne r1, r0 - moveq r4, #1 - b _0205DF84 -_0205DE98: - ldrb r1, [r8, #2] - cmp r1, #7 - addls pc, pc, r1, lsl #2 - b _0205DF84 -_0205DEA8: @ jump table - b _0205DF84 @ case 0 - b _0205DF84 @ case 1 - b _0205DF84 @ case 2 - b _0205DF84 @ case 3 - b _0205DF84 @ case 4 - b _0205DF84 @ case 5 - b _0205DEC8 @ case 6 - b _0205DF84 @ case 7 -_0205DEC8: - bl FUN_0205ff80 - strb r0, [r8, #0xc] - b _0205DF84 -_0205DED4: - ldrb r0, [r8, #2] - cmp r0, #5 - addls pc, pc, r0, lsl #2 - b _0205DF34 -_0205DEE4: @ jump table - b _0205DF34 @ case 0 - b _0205DF34 @ case 1 - b _0205DF34 @ case 2 - b _0205DF34 @ case 3 - b _0205DF34 @ case 4 - b _0205DEFC @ case 5 -_0205DEFC: - ldrb r6, [r8, #4] - ldrb r0, [r8, #1] - add r1, r8, #2 - mov r2, r6 - bl FUN_02063424 - mov r5, r0 - mov r0, r6 - mov r1, r5 - mov r2, #1 - bl FUN_0205e090 - cmp r0, #0 - movne r4, #1 - bne _0205DF84 - strb r5, [r8, #5] -_0205DF34: - ldrb r0, [r8, #1] - ldrb r1, [r8, #2] - bl FUN_0205ff80 - strb r0, [r8, #0xc] - b _0205DF84 -_0205DF48: - ldrb r1, [r8, #2] - bl FUN_0205ff80 - strb r0, [r8, #0xc] - mov r0, r4 - strb r0, [r8, #0x1a] - strh r0, [r8, #0x1c] - b _0205DF84 -_0205DF64: - ldrb r0, [r8, #2] - cmp r0, #1 - beq _0205DF7C - cmp r0, #2 - moveq r4, #1 - b _0205DF84 -_0205DF7C: - strb r4, [r8, #0x1a] - strh r4, [r8, #0x1c] -_0205DF84: - cmp r4, #0 - moveq r0, #0 - beq _0205DF9C - mov r0, r8 - bl ClearMissionData - mov r0, r4 -_0205DF9C: - add sp, sp, #0x14 - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0205DFA4: .4byte 0x020B0A60 -_0205DFA8: .4byte 0x000001EA - arm_func_end GenerateMission - - arm_func_start FUN_0205dfac -FUN_0205dfac: @ 0x0205DFAC - push {r4, r5, r6, r7, r8, sb, sl, lr} - ldrh r6, [r1, #2] - ldrh r8, [r1, #4] - mov sl, r0 - mov r7, #0 - bl FUN_020627f4 - mov r4, r0 - lsl r0, r6, #1 - mov r1, #0xf - bl MemAlloc - mov sb, r0 - mov r5, r7 - add r4, r4, r8, lsl #1 - b _0205E008 -_0205DFE4: - lsl r0, r5, #1 - ldrsh r8, [r0, r4] - mov r0, r8 - bl CanMonsterBeUsedForMissionWrapper - cmp r0, #0 - lslne r0, r7, #1 - strhne r8, [sb, r0] - addne r7, r7, #1 - add r5, r5, #1 -_0205E008: - cmp r5, r6 - blt _0205DFE4 - mov r0, r7 - str sb, [sl] - pop {r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_end FUN_0205dfac - - arm_func_start FUN_0205e01c -FUN_0205e01c: @ 0x0205E01C - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - ldrb ip, [r7] - mov r6, r1 - mov r5, r2 - cmp ip, #0 - mov r4, r3 - moveq r0, #0 - popeq {r3, r4, r5, r6, r7, pc} - cmp r5, #0 - blt _0205E05C - bl FUN_0205e258 - cmp r0, #0 - beq _0205E070 - cmp r4, #1 - bne _0205E070 -_0205E05C: - ldrb r0, [r7, #4] - cmp r0, r6 - bne _0205E088 - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_0205E070: - ldrb r0, [r7, #4] - cmp r0, r6 - ldrbeq r0, [r7, #5] - cmpeq r0, r5 - moveq r0, #1 - popeq {r3, r4, r5, r6, r7, pc} -_0205E088: - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0205e01c - - arm_func_start FUN_0205e090 -FUN_0205e090: @ 0x0205E090 - push {r4, r5, r6, r7, r8, lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - mov r8, #0 - ldr r7, _0205E1E4 @ =0x020B0A60 - b _0205E0D4 -_0205E0AC: - ldr r0, [r7, #0x18] - mov r1, r6 - mov r2, r5 - mov r3, r4 - add r0, r0, r8, lsl #5 - bl FUN_0205e01c - cmp r0, #0 - movne r0, #1 - popne {r4, r5, r6, r7, r8, pc} - add r8, r8, #1 -_0205E0D4: - cmp r8, #8 - blt _0205E0AC - mov r8, #0 - ldr r7, _0205E1E4 @ =0x020B0A60 - b _0205E114 -_0205E0E8: - ldr r0, [r7, #0x18] - mov r1, r6 - add r0, r0, #0x100 - mov r2, r5 - mov r3, r4 - add r0, r0, r8, lsl #5 - bl FUN_0205e01c - cmp r0, #0 - movne r0, #1 - popne {r4, r5, r6, r7, r8, pc} - add r8, r8, #1 -_0205E114: - cmp r8, #8 - blt _0205E0E8 - mov r8, #0 - ldr r7, _0205E1E4 @ =0x020B0A60 - b _0205E154 -_0205E128: - ldr r0, [r7, #0x18] - mov r1, r6 - add r0, r0, #0x200 - mov r2, r5 - mov r3, r4 - add r0, r0, r8, lsl #5 - bl FUN_0205e01c - cmp r0, #0 - movne r0, #1 - popne {r4, r5, r6, r7, r8, pc} - add r8, r8, #1 -_0205E154: - cmp r8, #8 - blt _0205E128 - mov r8, #0 - ldr r7, _0205E1E4 @ =0x020B0A60 - b _0205E194 -_0205E168: - ldr r0, [r7, #0x18] - mov r1, r6 - add r0, r0, #0x300 - mov r2, r5 - mov r3, r4 - add r0, r0, r8, lsl #5 - bl FUN_0205e01c - cmp r0, #0 - movne r0, #1 - popne {r4, r5, r6, r7, r8, pc} - add r8, r8, #1 -_0205E194: - cmp r8, #1 - blt _0205E168 - mov r8, #0 - ldr r7, _0205E1E4 @ =0x020B0A60 - b _0205E1D4 -_0205E1A8: - ldr r0, [r7, #0x18] - mov r1, r6 - add r0, r0, #0x320 - mov r2, r5 - mov r3, r4 - add r0, r0, r8, lsl #5 - bl FUN_0205e01c - cmp r0, #0 - movne r0, #1 - popne {r4, r5, r6, r7, r8, pc} - add r8, r8, #1 -_0205E1D4: - cmp r8, #1 - blt _0205E1A8 - mov r0, #0 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0205E1E4: .4byte 0x020B0A60 - arm_func_end FUN_0205e090 - - arm_func_start FUN_0205e1e8 -FUN_0205e1e8: @ 0x0205E1E8 - push {r3, lr} - ldrb lr, [r0, #1] - mov r3, #0 - mov ip, #1 - add r1, lr, #0xff - and r2, r1, #0xff - cmp r2, #0xd - bhi _0205E214 - ldr r1, _0205E234 @ =0x00002383 - tst r1, ip, lsl r2 - movne ip, r3 -_0205E214: - cmp ip, #0 - beq _0205E22C - cmp lr, #0xb - ldrbeq r0, [r0, #2] - cmpeq r0, #0 - movne r3, #1 -_0205E22C: - and r0, r3, #0xff - pop {r3, pc} - .align 2, 0 -_0205E234: .4byte 0x00002383 - arm_func_end FUN_0205e1e8 - - arm_func_start FUN_0205e238 -FUN_0205e238: @ 0x0205E238 - ldrb r1, [r0, #1] - cmp r1, #0xe - ldrbeq r0, [r0, #2] - cmpeq r0, #2 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr - arm_func_end FUN_0205e238 - - arm_func_start FUN_0205e258 -FUN_0205e258: @ 0x0205E258 - ldrb r2, [r0, #1] - mov r3, #1 - add r1, r2, #0xfe - and r1, r1, #0xff - cmp r1, #3 - bls _0205E280 - cmp r2, #0xa - ldrbeq r0, [r0, #2] - cmpeq r0, #4 - movne r3, #0 -_0205E280: - and r0, r3, #0xff - bx lr - arm_func_end FUN_0205e258 - - arm_func_start FUN_0205e288 -FUN_0205e288: @ 0x0205E288 - ldrb r3, [r0] - cmp r3, #0 - moveq r0, #0 - bxeq lr - ldrb r3, [r0, #1] - cmp r3, r1 - ldrbeq r1, [r0, #2] - ldrbeq r0, [r2] - cmpeq r1, r0 - moveq r0, #1 - movne r0, #0 - bx lr - arm_func_end FUN_0205e288 - - arm_func_start FUN_0205e2b8 -FUN_0205e2b8: @ 0x0205E2B8 - push {r3, r4, r5, r6, r7, lr} - mov r5, r0 - mov r4, r1 - mov r7, #0 - ldr r6, _0205E3F4 @ =0x020B0A60 - b _0205E2F4 -_0205E2D0: - ldr r0, [r6, #0x18] - mov r1, r5 - mov r2, r4 - add r0, r0, r7, lsl #5 - bl FUN_0205e288 - cmp r0, #0 - movne r0, #1 - popne {r3, r4, r5, r6, r7, pc} - add r7, r7, #1 -_0205E2F4: - cmp r7, #8 - blt _0205E2D0 - mov r7, #0 - ldr r6, _0205E3F4 @ =0x020B0A60 - b _0205E330 -_0205E308: - ldr r0, [r6, #0x18] - mov r1, r5 - add r0, r0, #0x100 - mov r2, r4 - add r0, r0, r7, lsl #5 - bl FUN_0205e288 - cmp r0, #0 - movne r0, #1 - popne {r3, r4, r5, r6, r7, pc} - add r7, r7, #1 -_0205E330: - cmp r7, #8 - blt _0205E308 - mov r7, #0 - ldr r6, _0205E3F4 @ =0x020B0A60 - b _0205E36C -_0205E344: - ldr r0, [r6, #0x18] - mov r1, r5 - add r0, r0, #0x200 - mov r2, r4 - add r0, r0, r7, lsl #5 - bl FUN_0205e288 - cmp r0, #0 - movne r0, #1 - popne {r3, r4, r5, r6, r7, pc} - add r7, r7, #1 -_0205E36C: - cmp r7, #8 - blt _0205E344 - mov r7, #0 - ldr r6, _0205E3F4 @ =0x020B0A60 - b _0205E3A8 -_0205E380: - ldr r0, [r6, #0x18] - mov r1, r5 - add r0, r0, #0x300 - mov r2, r4 - add r0, r0, r7, lsl #5 - bl FUN_0205e288 - cmp r0, #0 - movne r0, #1 - popne {r3, r4, r5, r6, r7, pc} - add r7, r7, #1 -_0205E3A8: - cmp r7, #1 - blt _0205E380 - mov r7, #0 - ldr r6, _0205E3F4 @ =0x020B0A60 - b _0205E3E4 -_0205E3BC: - ldr r0, [r6, #0x18] - mov r1, r5 - add r0, r0, #0x320 - mov r2, r4 - add r0, r0, r7, lsl #5 - bl FUN_0205e288 - cmp r0, #0 - movne r0, #1 - popne {r3, r4, r5, r6, r7, pc} - add r7, r7, #1 -_0205E3E4: - cmp r7, #1 - blt _0205E3BC - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0205E3F4: .4byte 0x020B0A60 - arm_func_end FUN_0205e2b8 - - arm_func_start FUN_0205E3F8 -FUN_0205E3F8: @ 0x0205E3F8 - push {r3, lr} - mov lr, r0 - mov ip, #0 - b _0205E438 -_0205E408: - ldrb r0, [r2, ip, lsl #5] - lsl r3, ip, #5 - cmp r0, #0 - bne _0205E434 - add ip, r2, r3 - ldm lr!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - ldm lr, {r0, r1, r2, r3} - stm ip, {r0, r1, r2, r3} - mov r0, #0 - pop {r3, pc} -_0205E434: - add ip, ip, #1 -_0205E438: - cmp ip, r1 - blt _0205E408 - mov r0, #1 - pop {r3, pc} - arm_func_end FUN_0205E3F8 - - arm_func_start FUN_0205E448 -FUN_0205E448: @ 0x0205E448 - push {r4, lr} - mov lr, #0 - mov r4, lr - mov r2, lr - mov r3, #1 - b _0205E47C -_0205E460: - ldrb ip, [r1, r4, lsl #5] - add r4, r4, #1 - cmp ip, #0 - moveq ip, r3 - movne ip, r2 - tst ip, #0xff - addeq lr, lr, #1 -_0205E47C: - cmp r4, r0 - blt _0205E460 - mov r0, lr - pop {r4, pc} - arm_func_end FUN_0205E448 - - arm_func_start FUN_0205e48c -FUN_0205e48c: @ 0x0205E48C - push {r3, r4, r5, r6, r7, lr} - mov r4, #0 - mov r7, r0 - mov r6, r1 - mov r5, r4 - b _0205E4B4 -_0205E4A4: - ldrb r0, [r6, r4, lsl #5] - cmp r0, #0 - bne _0205E4BC - add r4, r4, #1 -_0205E4B4: - cmp r4, r7 - blt _0205E4A4 -_0205E4BC: - cmp r4, r7 - beq _0205E4F0 - cmp r4, r5 - ble _0205E4E4 - add lr, r6, r4, lsl #5 - add ip, r6, r5, lsl #5 - ldm lr!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - ldm lr, {r0, r1, r2, r3} - stm ip, {r0, r1, r2, r3} -_0205E4E4: - add r4, r4, #1 - add r5, r5, #1 - b _0205E4B4 -_0205E4F0: - mov r0, #0 - b _0205E500 -_0205E4F8: - strb r0, [r6, r5, lsl #5] - add r5, r5, #1 -_0205E500: - cmp r5, r7 - blt _0205E4F8 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0205e48c - - arm_func_start FUN_0205e50c -FUN_0205e50c: @ 0x0205E50C - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x20 - mov r8, r0 - mov r7, r1 - mov fp, r2 - mov r5, #0 - b _0205E5BC -_0205E528: - add r6, r5, #1 - lsl r4, r5, #5 - b _0205E5B0 -_0205E534: - ldrb r0, [r7, r6, lsl #5] - lsl r1, r6, #5 - cmp r0, #0 - beq _0205E5AC - ldrb r0, [r7, r4] - cmp r0, #0 - beq _0205E564 - add r0, r7, r4 - add r1, r7, r1 - blx fp - cmp r0, #0 - beq _0205E5AC -_0205E564: - add sb, sp, #0 - add ip, r7, r4 - mov sl, sb - ldm ip!, {r0, r1, r2, r3} - stm sb!, {r0, r1, r2, r3} - ldm ip, {r0, r1, r2, r3} - stm sb, {r0, r1, r2, r3} - add sb, r7, r6, lsl #5 - mov ip, sb - add lr, r7, r4 - ldm sb!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - ldm sb, {r0, r1, r2, r3} - stm lr, {r0, r1, r2, r3} - ldm sl!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - ldm sl, {r0, r1, r2, r3} - stm ip, {r0, r1, r2, r3} -_0205E5AC: - add r6, r6, #1 -_0205E5B0: - cmp r6, r8 - blt _0205E534 - add r5, r5, #1 -_0205E5BC: - sub r0, r8, #1 - cmp r5, r0 - blt _0205E528 - add sp, sp, #0x20 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0205e50c - - arm_func_start GenerateDailyMissions -GenerateDailyMissions: @ 0x0205E5D0 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov r0, #4 - mov r1, #8 - bl RandRangeSafe - mov r7, r0 - mov r0, #4 - mov r1, #8 - bl RandRangeSafe - mov r8, r0 - mov r0, #3 - bl GetPerformanceFlagWithChecks - cmp r0, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - mov r2, #0 - ldr r0, _0205E948 @ =0x020B0A60 - mov r3, r2 -_0205E610: - ldr r1, [r0, #0x18] - strb r3, [r1, r2, lsl #5] - add r2, r2, #1 - cmp r2, #8 - blt _0205E610 - ldr r0, _0205E948 @ =0x020B0A60 - mov r2, #0 -_0205E62C: - ldr r1, [r0, #0x18] - add r1, r1, r3, lsl #5 - add r3, r3, #1 - strb r2, [r1, #0x200] - cmp r3, #8 - blt _0205E62C - ldr r0, _0205E948 @ =0x020B0A60 - ldr r1, [r0, #0x18] - strb r2, [r1, #0x300] - ldr r0, [r0, #0x18] - strb r2, [r0, #0x320] - bl FUN_02063504 - mov r4, r0 - bl Rand16Bit - orr r0, r0, r4, lsl #16 - bl FUN_020510e8 - bl GenerateAllPossibleMonstersList - bl GenerateAllPossibleDungeonsList - bl GenerateAllPossibleDeliverList - mov r0, #3 - bl FUN_02062290 - cmp r0, #0 - beq _0205E70C - mov sl, #0 - mov r6, #0x1e - mov fp, sl - mov r5, #1 - ldr r4, _0205E948 @ =0x020B0A60 - b _0205E704 -_0205E6A0: - ldr r0, [r4, #0x18] - add r0, r0, #0x320 - add sb, r0, sl, lsl #5 - bl FUN_02062578 - cmp r0, #0 - moveq r0, r5 - beq _0205E6DC - mov r1, sb - bl GenerateMission - cmp r0, #0 - bne _0205E6DC - mov r0, sb - mov r1, fp - bl FUN_0206315c - mov r0, #0 -_0205E6DC: - cmp r0, #2 - beq _0205E70C - cmp r0, #1 - bne _0205E6FC - sub r6, r6, #1 - cmp r6, #0 - ble _0205E70C - b _0205E704 -_0205E6FC: - mov r6, #0x1e - add sl, sl, #1 -_0205E704: - cmp sl, #0 - ble _0205E6A0 -_0205E70C: - bl FUN_02062548 - mov r0, #2 - bl FUN_02062290 - cmp r0, #0 - beq _0205E7AC - mov fp, #1 - mov sb, #0 - mov sl, #0x1e - mov r5, fp - ldr r4, _0205E948 @ =0x020B0A60 - b _0205E7A4 -_0205E738: - ldr r0, [r4, #0x18] - add r0, r0, #0x300 - add r6, r0, sb, lsl #5 - bl FUN_02062578 - cmp r0, #0 - moveq r0, r5 - beq _0205E77C - mov r1, r6 - bl GenerateMission - cmp r0, #0 - bne _0205E77C - mov r0, r6 - mov r1, fp - bl FUN_0206315c - mov r0, r6 - bl FUN_0205eb5c - mov r0, #0 -_0205E77C: - cmp r0, #2 - beq _0205E7AC - cmp r0, #1 - bne _0205E79C - sub sl, sl, #1 - cmp sl, #0 - ble _0205E7AC - b _0205E7A4 -_0205E79C: - mov sl, #0x1e - add sb, sb, #1 -_0205E7A4: - cmp sb, #0 - ble _0205E738 -_0205E7AC: - bl FUN_02062548 - mov r0, #0 - bl FUN_02062290 - cmp r0, #0 - beq _0205E840 - mov sb, #0 - mov sl, #0x1e - mov fp, sb - mov r5, #1 - ldr r4, _0205E948 @ =0x020B0A60 - b _0205E838 -_0205E7D8: - ldr r0, [r4, #0x18] - add r6, r0, sb, lsl #5 - bl FUN_02062578 - cmp r0, #0 - moveq r0, r5 - beq _0205E810 - mov r1, r6 - bl GenerateMission - cmp r0, #0 - bne _0205E810 - mov r0, r6 - mov r1, fp - bl FUN_0206315c - mov r0, #0 -_0205E810: - cmp r0, #2 - beq _0205E840 - cmp r0, #1 - bne _0205E830 - sub sl, sl, #1 - cmp sl, #0 - ble _0205E840 - b _0205E838 -_0205E830: - mov sl, #0x1e - add sb, sb, #1 -_0205E838: - cmp sb, r7 - ble _0205E7D8 -_0205E840: - bl FUN_02062548 - mov r0, #1 - bl FUN_02062290 - cmp r0, #0 - beq _0205E8DC - mov sb, #0 - mov sl, #0x1e - mov r5, sb - mov fp, sb - mov r6, #1 - ldr r4, _0205E948 @ =0x020B0A60 - b _0205E8D4 -_0205E870: - ldr r0, [r4, #0x18] - add r0, r0, #0x200 - add r7, r0, sb, lsl #5 - bl FUN_02062578 - cmp r0, #0 - moveq r0, r6 - beq _0205E8AC - mov r1, r7 - bl GenerateMission - cmp r0, #0 - bne _0205E8AC - mov r0, r7 - mov r1, r5 - bl FUN_0206315c - mov r0, fp -_0205E8AC: - cmp r0, #2 - beq _0205E8DC - cmp r0, #1 - bne _0205E8CC - sub sl, sl, #1 - cmp sl, #0 - ble _0205E8DC - b _0205E8D4 -_0205E8CC: - mov sl, #0x1e - add sb, sb, #1 -_0205E8D4: - cmp sb, r8 - ble _0205E870 -_0205E8DC: - bl FUN_02062548 - bl DeleteAllPossibleMonstersList - bl DeleteAllPossibleDungeonsList - bl DeleteAllPossibleDeliverList - ldr r1, _0205E948 @ =0x020B0A60 - mov r0, #8 - ldr r1, [r1, #0x18] - bl FUN_0205e48c - mov r0, #8 - ldr r1, _0205E948 @ =0x020B0A60 - ldr r2, _0205E94C @ =FUN_0205e9a8 - ldr r1, [r1, #0x18] - bl FUN_0205e50c - mov r0, #8 - ldr r1, _0205E948 @ =0x020B0A60 - ldr r1, [r1, #0x18] - add r1, r1, #0x200 - bl FUN_0205e48c - mov r0, #8 - ldr r1, _0205E948 @ =0x020B0A60 - ldr r2, _0205E950 @ =0x0205EB28 - ldr r1, [r1, #0x18] - add r1, r1, #0x200 - bl FUN_0205e50c - bl FUN_02051134 - bl FUN_020634f4 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0205E948: .4byte 0x020B0A60 -_0205E94C: .4byte FUN_0205e9a8 -_0205E950: .4byte 0x0205EB28 - arm_func_end GenerateDailyMissions - - arm_func_start FUN_0205e954 -FUN_0205e954: @ 0x0205E954 - ldr r1, _0205E968 @ =0x020B0A60 - ldr ip, _0205E96C @ =FUN_0205E448 - mov r0, #8 - ldr r1, [r1, #0x18] - bx ip - .align 2, 0 -_0205E968: .4byte 0x020B0A60 -_0205E96C: .4byte FUN_0205E448 - arm_func_end FUN_0205e954 - - arm_func_start FUN_0205e970 -FUN_0205e970: @ 0x0205E970 - ldr r1, _0205E980 @ =0x020B0A60 - ldr r1, [r1, #0x18] - add r0, r1, r0, lsl #5 - bx lr - .align 2, 0 -_0205E980: .4byte 0x020B0A60 - arm_func_end FUN_0205e970 - - arm_func_start FUN_0205e984 -FUN_0205e984: @ 0x0205E984 - ldr r1, _0205E9A4 @ =0x020B0A60 - ldr r1, [r1, #0x18] - ldrb r0, [r1, r0, lsl #5] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0205E9A4: .4byte 0x020B0A60 - arm_func_end FUN_0205e984 - - arm_func_start FUN_0205e9a8 -FUN_0205e9a8: @ 0x0205E9A8 - push {r3, r4, r5, lr} - mov r5, r0 - ldrb r2, [r5, #1] - mov r4, r1 - cmp r2, #3 - ldrbeq r0, [r5, #2] - cmpeq r0, #3 - bne _0205E9FC - ldrb r0, [r5, #4] - bl DungeonSwapIdToIdx - bl GetDungeonMode - cmp r0, #0 - moveq r0, #1 - popeq {r3, r4, r5, pc} - ldrb r1, [r5, #4] - ldrb r0, [r4, #4] - cmp r1, r0 - movhs r0, #1 - movlo r0, #0 - and r0, r0, #0xff - pop {r3, r4, r5, pc} -_0205E9FC: - ldrb r1, [r4, #1] - cmp r1, #3 - ldrbeq r0, [r4, #2] - cmpeq r0, #3 - bne _0205EA44 - ldrb r0, [r4, #4] - bl DungeonSwapIdToIdx - bl GetDungeonMode - cmp r0, #0 - moveq r0, #0 - popeq {r3, r4, r5, pc} - ldrb r1, [r5, #4] - ldrb r0, [r4, #4] - cmp r1, r0 - movhi r0, #1 - movls r0, #0 - and r0, r0, #0xff - pop {r3, r4, r5, pc} -_0205EA44: - cmp r2, #8 - cmpne r2, #5 - bne _0205EA6C - ldrb r1, [r5, #4] - ldrb r0, [r4, #4] - cmp r1, r0 - movhs r0, #1 - movlo r0, #0 - and r0, r0, #0xff - pop {r3, r4, r5, pc} -_0205EA6C: - cmp r1, #8 - cmpne r1, #5 - bne _0205EA94 - ldrb r1, [r5, #4] - ldrb r0, [r4, #4] - cmp r1, r0 - movhi r0, #1 - movls r0, #0 - and r0, r0, #0xff - pop {r3, r4, r5, pc} -_0205EA94: - ldrb r1, [r4, #4] - ldrb r0, [r5, #4] - mov r2, #1 - cmp r0, r1 - bhi _0205EAC0 - bne _0205EABC - ldrb r1, [r5, #5] - ldrb r0, [r4, #5] - cmp r1, r0 - bhi _0205EAC0 -_0205EABC: - mov r2, #0 -_0205EAC0: - and r0, r2, #0xff - pop {r3, r4, r5, pc} - arm_func_end FUN_0205e9a8 - - arm_func_start FUN_0205eac8 -FUN_0205eac8: @ 0x0205EAC8 - ldr r1, _0205EAE0 @ =0x020B0A60 - ldr ip, _0205EAE4 @ =FUN_0205E448 - ldr r1, [r1, #0x18] - mov r0, #8 - add r1, r1, #0x200 - bx ip - .align 2, 0 -_0205EAE0: .4byte 0x020B0A60 -_0205EAE4: .4byte FUN_0205E448 - arm_func_end FUN_0205eac8 - - arm_func_start FUN_0205eae8 -FUN_0205eae8: @ 0x0205EAE8 - ldr r1, _0205EAFC @ =0x020B0A60 - ldr r1, [r1, #0x18] - add r1, r1, #0x200 - add r0, r1, r0, lsl #5 - bx lr - .align 2, 0 -_0205EAFC: .4byte 0x020B0A60 - arm_func_end FUN_0205eae8 - - arm_func_start FUN_0205eb00 -FUN_0205eb00: @ 0x0205EB00 - ldr r1, _0205EB24 @ =0x020B0A60 - ldr r1, [r1, #0x18] - add r0, r1, r0, lsl #5 - ldrb r0, [r0, #0x200] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0205EB24: .4byte 0x020B0A60 - arm_func_end FUN_0205eb00 -_0205EB28: - .byte 0x04, 0x30, 0xD1, 0xE5, 0x04, 0x20, 0xD0, 0xE5 - .byte 0x01, 0xC0, 0xA0, 0xE3, 0x03, 0x00, 0x52, 0xE1, 0x05, 0x00, 0x00, 0x8A, 0x03, 0x00, 0x00, 0x1A - .byte 0x05, 0x20, 0xD0, 0xE5, 0x05, 0x00, 0xD1, 0xE5, 0x00, 0x00, 0x52, 0xE1, 0x00, 0x00, 0x00, 0x8A - .byte 0x00, 0xC0, 0xA0, 0xE3, 0xFF, 0x00, 0x0C, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0205eb5c -FUN_0205eb5c: @ 0x0205EB5C - push {r3, r4, r5, lr} - mov r4, r0 - ldrb r0, [r4, #1] - cmp r0, #0xb - cmpne r0, #0xe - bne _0205EBCC - mov r1, #0 - add r0, sp, #0 - str r1, [sp] - bl FUN_0205f738 - mov r5, r0 - cmp r5, #0 - pople {r3, r4, r5, pc} -_0205EB90: - mov r0, r5 - bl RandInt - ldrb r1, [r4, #1] - ldr r2, [sp] - lsl r0, r0, #1 - cmp r1, #0xb - ldrsh r0, [r2, r0] - ldrsheq r1, [r4, #0xe] - cmpeq r1, r0 - bne _0205EBC4 - cmp r5, #1 - pople {r3, r4, r5, pc} - b _0205EB90 -_0205EBC4: - bl FUN_02065b94 - pop {r3, r4, r5, pc} -_0205EBCC: - ldrsh r0, [r4, #0xe] - bl FUN_02065b94 - pop {r3, r4, r5, pc} - arm_func_end FUN_0205eb5c - - arm_func_start FUN_0205ebd8 -FUN_0205ebd8: @ 0x0205EBD8 - ldr r1, _0205EBEC @ =0x020B0A60 - ldr r1, [r1, #0x18] - add r1, r1, #0x300 - add r0, r1, r0, lsl #5 - bx lr - .align 2, 0 -_0205EBEC: .4byte 0x020B0A60 - arm_func_end FUN_0205ebd8 - - arm_func_start FUN_0205ebf0 -FUN_0205ebf0: @ 0x0205EBF0 - ldr r1, _0205EC14 @ =0x020B0A60 - ldr r1, [r1, #0x18] - add r0, r1, r0, lsl #5 - ldrb r0, [r0, #0x300] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0205EC14: .4byte 0x020B0A60 - arm_func_end FUN_0205ebf0 - - arm_func_start FUN_0205ec18 -FUN_0205ec18: @ 0x0205EC18 - ldr r1, _0205EC30 @ =0x020B0A60 - ldr ip, _0205EC34 @ =ClearMissionData - ldr r1, [r1, #0x18] - add r1, r1, #0x300 - add r0, r1, r0, lsl #5 - bx ip - .align 2, 0 -_0205EC30: .4byte 0x020B0A60 -_0205EC34: .4byte ClearMissionData - arm_func_end FUN_0205ec18 - - arm_func_start FUN_0205ec38 -FUN_0205ec38: @ 0x0205EC38 - ldr r1, _0205EC4C @ =0x020B0A60 - ldr r1, [r1, #0x18] - add r1, r1, #0x320 - add r0, r1, r0, lsl #5 - bx lr - .align 2, 0 -_0205EC4C: .4byte 0x020B0A60 - arm_func_end FUN_0205ec38 - - arm_func_start FUN_0205ec50 -FUN_0205ec50: @ 0x0205EC50 - ldr r1, _0205EC74 @ =0x020B0A60 - ldr r1, [r1, #0x18] - add r0, r1, r0, lsl #5 - ldrb r0, [r0, #0x320] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0205EC74: .4byte 0x020B0A60 - arm_func_end FUN_0205ec50 - - arm_func_start FUN_0205ec78 -FUN_0205ec78: @ 0x0205EC78 - ldr r1, _0205EC90 @ =0x020B0A60 - ldr ip, _0205EC94 @ =ClearMissionData - ldr r1, [r1, #0x18] - add r1, r1, #0x320 - add r0, r1, r0, lsl #5 - bx ip - .align 2, 0 -_0205EC90: .4byte 0x020B0A60 -_0205EC94: .4byte ClearMissionData - arm_func_end FUN_0205ec78 - - arm_func_start FUN_0205ec98 -FUN_0205ec98: @ 0x0205EC98 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, #0 - ldr r4, _0205ECF0 @ =0x020B0A60 - b _0205ECE0 -_0205ECAC: - ldr r0, [r4, #0x18] - lsl r1, r5, #5 - add r2, r0, #0x100 - ldrb r0, [r2, r5, lsl #5] - cmp r0, #0 - beq _0205ECDC - mov r0, r6 - add r1, r2, r1 - bl FUN_0205c934 - cmp r0, #0 - movne r0, #1 - popne {r4, r5, r6, pc} -_0205ECDC: - add r5, r5, #1 -_0205ECE0: - cmp r5, #8 - blt _0205ECAC - mov r0, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0205ECF0: .4byte 0x020B0A60 - arm_func_end FUN_0205ec98 - - arm_func_start FUN_0205ecf4 -FUN_0205ecf4: @ 0x0205ECF4 - push {r4, r5, r6, r7, r8, lr} - mov r4, r0 - ldrb r5, [r4, #4] - ldrb r6, [r4, #5] - mov r7, #0 - bl FUN_0205c854 - cmp r0, #0 - moveq r0, r7 - popeq {r4, r5, r6, r7, r8, pc} - mov r0, r4 - bl FUN_0205e258 - cmp r0, #0 - movne r7, #1 - mov r4, #0 - ldr r8, _0205ED80 @ =0x020B0A60 - b _0205ED70 -_0205ED34: - ldr r1, [r8, #0x18] - add r0, r1, r4, lsl #5 - ldrb r0, [r0, #0x100] - cmp r0, #5 - bne _0205ED6C - add r0, r1, #0x100 - mov r1, r5 - mov r2, r6 - mov r3, r7 - add r0, r0, r4, lsl #5 - bl FUN_0205e01c - cmp r0, #0 - movne r0, #1 - popne {r4, r5, r6, r7, r8, pc} -_0205ED6C: - add r4, r4, #1 -_0205ED70: - cmp r4, #8 - blt _0205ED34 - mov r0, #0 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0205ED80: .4byte 0x020B0A60 - arm_func_end FUN_0205ecf4 - - arm_func_start FUN_0205ed84 -FUN_0205ed84: @ 0x0205ED84 - ldr r1, _0205ED9C @ =0x020B0A60 - ldr ip, _0205EDA0 @ =FUN_0205E448 - ldr r1, [r1, #0x18] - mov r0, #8 - add r1, r1, #0x100 - bx ip - .align 2, 0 -_0205ED9C: .4byte 0x020B0A60 -_0205EDA0: .4byte FUN_0205E448 - arm_func_end FUN_0205ed84 - - arm_func_start DungeonRequestsDone -DungeonRequestsDone: @ 0x0205EDA4 - push {r4, lr} - ldr r2, _0205EE0C @ =0x020B0A60 - mov ip, #0 - ldr r2, [r2, #0x18] - mov lr, ip - add r3, r2, #0x100 -_0205EDBC: - lsl r2, lr, #0x18 - add r4, r3, r2, asr #19 - ldrb r2, [r4, #4] - cmp r2, r0 - bne _0205EDF8 - cmp r1, #0 - beq _0205EDE4 - ldrb r2, [r4, #1] - cmp r2, #0xc - beq _0205EDF8 -_0205EDE4: - ldrb r2, [r4] - add r2, r2, #0xfb - and r2, r2, #0xff - cmp r2, #3 - addls ip, ip, #1 -_0205EDF8: - add lr, lr, #1 - cmp lr, #8 - blt _0205EDBC - mov r0, ip - pop {r4, pc} - .align 2, 0 -_0205EE0C: .4byte 0x020B0A60 - arm_func_end DungeonRequestsDone - - arm_func_start DungeonRequestsDoneWrapper -DungeonRequestsDoneWrapper: @ 0x0205EE10 - ldr ip, _0205EE1C @ =DungeonRequestsDone - mov r1, #0 - bx ip - .align 2, 0 -_0205EE1C: .4byte DungeonRequestsDone - arm_func_end DungeonRequestsDoneWrapper - - arm_func_start AnyDungeonRequestsDone -AnyDungeonRequestsDone: @ 0x0205EE20 - push {r3, lr} - mov r1, #1 - bl DungeonRequestsDone - cmp r0, #0 - movgt r0, #1 - movle r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end AnyDungeonRequestsDone - - arm_func_start FUN_0205ee40 -FUN_0205ee40: @ 0x0205EE40 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0xc - str r0, [sp] - mov sl, r1 - mov sb, r2 - bl GetMaxMembersAllowed - cmp r0, #1 - bne _0205EE80 - bl FUN_020568a4 - strh r0, [sp, #4] - ldrsh r0, [sp, #4] - cmp r0, #0 - movlt r0, #1 - blt _0205EFFC - mov r4, #1 - b _0205EE98 -_0205EE80: - add r0, sp, #4 - bl GetPartyMembers - mov r4, r0 - cmp r4, #1 - movlt r0, #1 - blt _0205EFFC -_0205EE98: - mov r5, #0 - strh r5, [sl] - strh r5, [sb] -_0205EEA4: - ldr r1, _0205F004 @ =0x020B0A60 - lsl r0, r5, #0x18 - ldr r1, [r1, #0x18] - add r1, r1, #0x100 - add r2, r1, r0, asr #19 - ldrb r1, [r2, #4] - ldr r0, [sp] - cmp r1, r0 - ldrbeq r0, [r2] - cmpeq r0, #5 - bne _0205EFD8 - ldrb r0, [r2, #0x1a] - cmp r0, #0 - bne _0205EF54 - ldrh r8, [r2, #0x1c] - cmp r8, #0 - beq _0205EFD8 - mov r6, #0 - add fp, sp, #4 - b _0205EF40 -_0205EEF4: - lsl r0, r6, #1 - ldrsh r2, [fp, r0] - ldr r0, _0205F008 @ =0x020B0A48 - mov r1, #0 - ldr r3, [r0] - mov r0, #0x44 - smlabb r7, r2, r0, r3 - ldrsh r0, [r7, #4] - bl GetType - cmp r8, r0 - beq _0205EF34 - ldrsh r0, [r7, #4] - mov r1, #1 - bl GetType - cmp r8, r0 - bne _0205EF3C -_0205EF34: - mov r8, #0 - b _0205EF48 -_0205EF3C: - add r6, r6, #1 -_0205EF40: - cmp r6, r4 - blt _0205EEF4 -_0205EF48: - cmp r8, #0 - strhne r8, [sl] - b _0205EFD8 -_0205EF54: - cmp r0, #1 - bne _0205EFD8 - ldrsh r6, [r2, #0x1c] - mov r0, r6 - bl GetBaseFormBurmyWormadamShellosGastrodonCherrim - mov r7, r0 - bl FemaleToMaleForm - mov fp, r0 - mov r0, r7 - bl GetSecondFormIfValid - mov r7, r0 - cmp r6, #0 - beq _0205EFD8 - mov r8, #0 - b _0205EFC8 -_0205EF90: - lsl r1, r8, #1 - add r0, sp, #4 - ldrsh r1, [r0, r1] - ldr r0, _0205F008 @ =0x020B0A48 - ldr r2, [r0] - mov r0, #0x44 - smlabb r0, r1, r0, r2 - ldrsh r0, [r0, #4] - bl GetBaseFormBurmyWormadamShellosGastrodonCherrim - cmp r0, fp - cmpne r0, r7 - moveq r6, #0 - beq _0205EFD0 - add r8, r8, #1 -_0205EFC8: - cmp r8, r4 - blt _0205EF90 -_0205EFD0: - cmp r6, #0 - strhne r6, [sb] -_0205EFD8: - add r5, r5, #1 - cmp r5, #8 - blt _0205EEA4 - ldrh r0, [sl] - cmp r0, #0 - ldrsheq r0, [sb] - cmpeq r0, #0 - movne r0, #1 - moveq r0, #0 -_0205EFFC: - add sp, sp, #0xc - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0205F004: .4byte 0x020B0A60 -_0205F008: .4byte 0x020B0A48 - arm_func_end FUN_0205ee40 - - arm_func_start FUN_0205f00c -FUN_0205f00c: @ 0x0205F00C - push {r4, lr} - sub sp, sp, #8 - ldr r2, _0205F0B4 @ =0x020B0A60 - mov ip, #0 - ldr r2, [r2, #0x18] - add r3, r2, #0x100 - b _0205F0A0 -_0205F028: - lsl r2, ip, #0x18 - add r4, r3, r2, asr #19 - ldrb r2, [r4, #4] - cmp r2, r0 - ldrbeq r2, [r4] - cmpeq r2, #5 - bne _0205F09C - ldrb r2, [r4, #1] - cmp r2, #2 - cmpne r2, #3 - cmpne r2, #4 - cmpne r2, #5 - beq _0205F06C - cmp r2, #0xa - ldrbeq r2, [r4, #2] - cmpeq r2, #4 - bne _0205F09C -_0205F06C: - mov r2, #0xfa - mov r0, #1 - strb r2, [sp, #4] - strb r0, [sp, #5] - mov r2, #0 - str r2, [sp] - mov r0, r1 - ldrsh r1, [r4, #0xe] - add r3, sp, #4 - bl FUN_02052e2c - mov r0, r4 - b _0205F0AC -_0205F09C: - add ip, ip, #1 -_0205F0A0: - cmp ip, #8 - blt _0205F028 - mov r0, #0 -_0205F0AC: - add sp, sp, #8 - pop {r4, pc} - .align 2, 0 -_0205F0B4: .4byte 0x020B0A60 - arm_func_end FUN_0205f00c - - arm_func_start FUN_0205f0b8 -FUN_0205f0b8: @ 0x0205F0B8 - ldr r2, _0205F0D0 @ =0x020B0A60 - ldr ip, _0205F0D4 @ =FUN_0205E3F8 - ldr r2, [r2, #0x18] - mov r1, #8 - add r2, r2, #0x100 - bx ip - .align 2, 0 -_0205F0D0: .4byte 0x020B0A60 -_0205F0D4: .4byte FUN_0205E3F8 - arm_func_end FUN_0205f0b8 - - arm_func_start GetAcceptedMission -GetAcceptedMission: @ 0x0205F0D8 - ldr r1, _0205F0EC @ =0x020B0A60 - ldr r1, [r1, #0x18] - add r1, r1, #0x100 - add r0, r1, r0, lsl #5 - bx lr - .align 2, 0 -_0205F0EC: .4byte 0x020B0A60 - arm_func_end GetAcceptedMission - - arm_func_start FUN_0205f0f0 -FUN_0205f0f0: @ 0x0205F0F0 - ldr r1, _0205F114 @ =0x020B0A60 - ldr r1, [r1, #0x18] - add r0, r1, r0, lsl #5 - ldrb r0, [r0, #0x100] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0205F114: .4byte 0x020B0A60 - arm_func_end FUN_0205f0f0 - - arm_func_start FUN_0205f118 -FUN_0205f118: @ 0x0205F118 - push {r4, r5, r6, lr} - mov r6, r0 - mov r3, #0 - mov r5, r1 - strb r3, [r6] - ldrsh r0, [r5, #0xe] - mov r4, r2 - strh r0, [r6, #2] - strh r3, [r6, #4] - ldrb r0, [r5, #1] - cmp r0, #0xc - addls pc, pc, r0, lsl #2 - b _0205F29C -_0205F14C: @ jump table - b _0205F204 @ case 0 - b _0205F218 @ case 1 - b _0205F218 @ case 2 - b _0205F204 @ case 3 - b _0205F1DC @ case 4 - b _0205F204 @ case 5 - b _0205F180 @ case 6 - b _0205F204 @ case 7 - b _0205F218 @ case 8 - b _0205F234 @ case 9 - b _0205F218 @ case 10 - b _0205F260 @ case 11 - b _0205F27C @ case 12 -_0205F180: - ldrb r0, [r5, #2] - cmp r0, #4 - ldrb r0, [r5] - bne _0205F1B8 - add r0, r0, #0xfb - and r0, r0, #0xff - cmp r0, #1 - bhi _0205F29C - ldrsh r0, [r5, #0x14] - bl IsItemInBag - cmp r0, #0 - movne r0, #1 - strbne r0, [r6] - b _0205F29C -_0205F1B8: - cmp r0, #5 - cmpne r0, #8 - bne _0205F29C - ldrsh r0, [r5, #0x14] - bl IsItemInBag - cmp r0, #0 - movne r0, #1 - strbne r0, [r6] - b _0205F29C -_0205F1DC: - ldrb r0, [r5] - cmp r0, #5 - cmpne r0, #8 - bne _0205F29C - ldrsh r0, [r5, #0x14] - bl IsItemInBag - cmp r0, #0 - movne r0, #1 - strbne r0, [r6] - b _0205F29C -_0205F204: - ldrb r0, [r5] - cmp r0, #8 - moveq r0, #1 - strbeq r0, [r6] - b _0205F29C -_0205F218: - ldrsh r0, [r5, #0x10] - strh r0, [r6, #4] - ldrb r0, [r5] - cmp r0, #8 - moveq r0, #1 - strbeq r0, [r6] - b _0205F29C -_0205F234: - ldrsh r0, [r5, #0x10] - strh r0, [r6, #4] - ldrb r0, [r5] - cmp r0, #8 - bne _0205F29C - ldrsh r0, [r5, #0x14] - bl IsItemInBag - cmp r0, #0 - movne r0, #1 - strbne r0, [r6] - b _0205F29C -_0205F260: - ldrsh r0, [r5, #0xe] - strh r0, [r6, #4] - ldrb r0, [r5] - cmp r0, #8 - moveq r0, #1 - strbeq r0, [r6] - b _0205F29C -_0205F27C: - ldrb r0, [r5] - cmp r0, #8 - bne _0205F29C - ldrsh r0, [r5, #0x14] - bl IsItemInTreasureBoxes - cmp r0, #0 - movne r0, #1 - strbne r0, [r6] -_0205F29C: - cmp r4, #0xff - ldrbne r0, [r5, #4] - cmpne r0, r4 - movne r0, #0 - strbne r0, [r6] - ldrb r0, [r6] - pop {r4, r5, r6, pc} - arm_func_end FUN_0205f118 - - arm_func_start FUN_0205f2b8 -FUN_0205f2b8: @ 0x0205F2B8 - push {r4, lr} - mov r4, r0 - ldrb r0, [r4, #1] - cmp r0, #0xc - addls pc, pc, r0, lsl #2 - pop {r4, pc} -_0205F2D0: @ jump table - pop {r4, pc} @ case 0 - pop {r4, pc} @ case 1 - pop {r4, pc} @ case 2 - pop {r4, pc} @ case 3 - b _0205F360 @ case 4 - pop {r4, pc} @ case 5 - b _0205F304 @ case 6 - pop {r4, pc} @ case 7 - pop {r4, pc} @ case 8 - b _0205F388 @ case 9 - pop {r4, pc} @ case 10 - pop {r4, pc} @ case 11 - pop {r4, pc} @ case 12 -_0205F304: - ldrb r0, [r4, #2] - cmp r0, #4 - ldrb r0, [r4] - bne _0205F33C - add r0, r0, #0xfb - and r0, r0, #0xff - cmp r0, #1 - pophi {r4, pc} - ldrsh r0, [r4, #0x14] - bl RemoveFirstUnequippedItemOfType - cmp r0, #0 - movne r0, #8 - strbne r0, [r4] - pop {r4, pc} -_0205F33C: - cmp r0, #5 - cmpne r0, #8 - popne {r4, pc} - ldrsh r0, [r4, #0x14] - bl RemoveFirstUnequippedItemOfType - cmp r0, #0 - movne r0, #8 - strbne r0, [r4] - pop {r4, pc} -_0205F360: - ldrb r0, [r4] - cmp r0, #5 - cmpne r0, #8 - popne {r4, pc} - ldrsh r0, [r4, #0x14] - bl IsItemInBag - cmp r0, #0 - movne r0, #8 - strbne r0, [r4] - pop {r4, pc} -_0205F388: - ldrb r0, [r4] - cmp r0, #8 - popne {r4, pc} - ldrsh r0, [r4, #0x14] - bl RemoveFirstUnequippedItemOfType - cmp r0, #0 - movne r0, #8 - strbne r0, [r4] - pop {r4, pc} - arm_func_end FUN_0205f2b8 - - arm_func_start GetMissionByTypeAndDungeon -GetMissionByTypeAndDungeon: @ 0x0205F3AC - push {r4, lr} - ldr ip, _0205F460 @ =0x020B0A60 - ldr r4, [ip, #0x18] - add r4, r4, #0x100 - b _0205F450 -_0205F3C0: - lsl ip, r0, #0x18 - add lr, r4, ip, asr #19 - cmp r3, #0xff - ldrbne ip, [lr, #4] - cmpne ip, r3 - bne _0205F44C - ldrb ip, [lr, #1] - cmp ip, r1 - bne _0205F44C - cmp ip, #0xc - addls pc, pc, ip, lsl #2 - b _0205F44C -_0205F3F0: @ jump table - b _0205F440 @ case 0 - b _0205F440 @ case 1 - b _0205F440 @ case 2 - b _0205F440 @ case 3 - b _0205F440 @ case 4 - b _0205F440 @ case 5 - b _0205F424 @ case 6 - b _0205F440 @ case 7 - b _0205F440 @ case 8 - b _0205F424 @ case 9 - b _0205F424 @ case 10 - b _0205F424 @ case 11 - b _0205F424 @ case 12 -_0205F424: - ldrb lr, [lr, #2] - ldrb ip, [r2] - cmp lr, ip - bne _0205F44C - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - pop {r4, pc} -_0205F440: - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - pop {r4, pc} -_0205F44C: - add r0, r0, #1 -_0205F450: - cmp r0, #8 - blt _0205F3C0 - mvn r0, #0 - pop {r4, pc} - .align 2, 0 -_0205F460: .4byte 0x020B0A60 - arm_func_end GetMissionByTypeAndDungeon - - arm_func_start FUN_0205f464 -FUN_0205f464: @ 0x0205F464 - push {r3, lr} - mov ip, r1 - mov r3, r2 - mov r1, r0 - mov r2, ip - mov r0, #0 - bl GetMissionByTypeAndDungeon - cmp r0, #0 - ldrge r1, _0205F4A0 @ =0x020B0A60 - movlt r0, #0 - ldrge r1, [r1, #0x18] - lslge r0, r0, #0x18 - addge r1, r1, #0x100 - addge r0, r1, r0, asr #19 - pop {r3, pc} - .align 2, 0 -_0205F4A0: .4byte 0x020B0A60 - arm_func_end FUN_0205f464 - - arm_func_start CheckAcceptedMissionByTypeAndDungeon -CheckAcceptedMissionByTypeAndDungeon: @ 0x0205F4A4 - push {r3, r4, r5, r6, r7, lr} - ldr r7, _0205F500 @ =0x020B0A60 - mov r6, r0 - mov r5, r1 - mov r4, r2 - mov r0, #0 -_0205F4BC: - mov r1, r6 - mov r2, r5 - mov r3, r4 - bl GetMissionByTypeAndDungeon - cmp r0, #0 - movlt r0, #0 - poplt {r3, r4, r5, r6, r7, pc} - ldr r2, [r7, #0x18] - lsl r1, r0, #0x18 - add r2, r2, #0x100 - asr r1, r1, #0x18 - ldrb r1, [r2, r1, lsl #5] - add r0, r0, #1 - cmp r1, #5 - bne _0205F4BC - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0205F500: .4byte 0x020B0A60 - arm_func_end CheckAcceptedMissionByTypeAndDungeon -_0205F504: - .byte 0x70, 0x40, 0x2D, 0xE9, 0x70, 0x50, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE3 - .byte 0x18, 0x00, 0x95, 0xE5, 0x01, 0x6C, 0x80, 0xE2, 0x00, 0x00, 0xD6, 0xE5, 0x06, 0x00, 0x50, 0xE3 - .byte 0x07, 0x00, 0x50, 0x13, 0x08, 0x00, 0x50, 0x13, 0x04, 0x00, 0x00, 0x1A, 0x18, 0x10, 0x95, 0xE5 - .byte 0x04, 0x0C, 0xA0, 0xE1, 0x01, 0x1C, 0x81, 0xE2, 0xC0, 0x09, 0x81, 0xE0, 0x1D, 0x01, 0x00, 0xEB - .byte 0x01, 0x40, 0x84, 0xE2, 0x08, 0x00, 0x54, 0xE3, 0x20, 0x60, 0x86, 0xE2, 0xF1, 0xFF, 0xFF, 0xBA - .byte 0x28, 0x10, 0x9F, 0xE5, 0x08, 0x00, 0xA0, 0xE3, 0x18, 0x10, 0x91, 0xE5, 0x01, 0x1C, 0x81, 0xE2 - .byte 0xC9, 0xFB, 0xFF, 0xEB, 0x14, 0x00, 0x9F, 0xE5, 0x14, 0x20, 0x9F, 0xE5, 0x18, 0x10, 0x90, 0xE5 - .byte 0x08, 0x00, 0xA0, 0xE3, 0x01, 0x1C, 0x81, 0xE2, 0xE3, 0xFB, 0xFF, 0xEB, 0x70, 0x80, 0xBD, 0xE8 - .byte 0x60, 0x0A, 0x0B, 0x02, 0xC8, 0xF5, 0x05, 0x02 - - arm_func_start FUN_0205f588 -FUN_0205f588: @ 0x0205F588 - ldr r1, _0205F5A0 @ =0x020B0A60 - ldr ip, _0205F5A4 @ =ClearMissionData - ldr r1, [r1, #0x18] - add r1, r1, #0x100 - add r0, r1, r0, lsl #5 - bx ip - .align 2, 0 -_0205F5A0: .4byte 0x020B0A60 -_0205F5A4: .4byte ClearMissionData - arm_func_end FUN_0205f588 - - arm_func_start FUN_0205f5a8 -FUN_0205f5a8: @ 0x0205F5A8 - ldr r1, _0205F5C0 @ =0x020B0A60 - ldr ip, _0205F5C4 @ =FUN_0205e48c - ldr r1, [r1, #0x18] - mov r0, #8 - add r1, r1, #0x100 - bx ip - .align 2, 0 -_0205F5C0: .4byte 0x020B0A60 -_0205F5C4: .4byte FUN_0205e48c - arm_func_end FUN_0205f5a8 - - arm_func_start FUN_0205f5c8 -FUN_0205f5c8: @ 0x0205F5C8 - push {r3, r4, r5, lr} - mov r5, r0 - ldrb r2, [r5, #1] - mov r4, r1 - cmp r2, #3 - ldrbeq r0, [r5, #2] - cmpeq r0, #3 - beq _0205F5F8 - cmp r2, #6 - ldrbeq r0, [r5, #2] - cmpeq r0, #4 - bne _0205F62C -_0205F5F8: - ldrb r0, [r5, #4] - bl DungeonSwapIdToIdx - bl GetDungeonMode - cmp r0, #0 - moveq r0, #1 - popeq {r3, r4, r5, pc} - ldrb r1, [r5, #4] - ldrb r0, [r4, #4] - cmp r1, r0 - movhs r0, #1 - movlo r0, #0 - and r0, r0, #0xff - pop {r3, r4, r5, pc} -_0205F62C: - ldrb r1, [r4, #1] - cmp r1, #3 - ldrbeq r0, [r4, #2] - cmpeq r0, #3 - beq _0205F650 - cmp r1, #6 - ldrbeq r0, [r4, #2] - cmpeq r0, #4 - bne _0205F684 -_0205F650: - ldrb r0, [r4, #4] - bl DungeonSwapIdToIdx - bl GetDungeonMode - cmp r0, #0 - moveq r0, #0 - popeq {r3, r4, r5, pc} - ldrb r1, [r5, #4] - ldrb r0, [r4, #4] - cmp r1, r0 - movhi r0, #1 - movls r0, #0 - and r0, r0, #0xff - pop {r3, r4, r5, pc} -_0205F684: - cmp r2, #8 - cmpne r2, #5 - cmpne r2, #0xe - bne _0205F6B0 - ldrb r1, [r5, #4] - ldrb r0, [r4, #4] - cmp r1, r0 - movhs r0, #1 - movlo r0, #0 - and r0, r0, #0xff - pop {r3, r4, r5, pc} -_0205F6B0: - cmp r1, #8 - cmpne r1, #5 - cmpne r1, #0xe - bne _0205F6DC - ldrb r1, [r5, #4] - ldrb r0, [r4, #4] - cmp r1, r0 - movhi r0, #1 - movls r0, #0 - and r0, r0, #0xff - pop {r3, r4, r5, pc} -_0205F6DC: - ldrb r1, [r4, #4] - ldrb r0, [r5, #4] - mov r2, #1 - cmp r0, r1 - bhi _0205F708 - bne _0205F704 - ldrb r1, [r5, #5] - ldrb r0, [r4, #5] - cmp r1, r0 - bhi _0205F708 -_0205F704: - mov r2, #0 -_0205F708: - and r0, r2, #0xff - pop {r3, r4, r5, pc} - arm_func_end FUN_0205f5c8 - - arm_func_start FUN_0205f710 -FUN_0205f710: @ 0x0205F710 - ldr r0, _0205F72C @ =0x020B0A60 - ldr ip, _0205F730 @ =FUN_0205e50c - ldr r1, [r0, #0x18] - ldr r2, _0205F734 @ =FUN_0205f5c8 - mov r0, #8 - add r1, r1, #0x100 - bx ip - .align 2, 0 -_0205F72C: .4byte 0x020B0A60 -_0205F730: .4byte FUN_0205e50c -_0205F734: .4byte FUN_0205f5c8 - arm_func_end FUN_0205f710 - - arm_func_start FUN_0205f738 -FUN_0205f738: @ 0x0205F738 - cmp r0, #0 - ldrne r1, _0205F754 @ =0x020B0A60 - ldrne r1, [r1, #0x10] - strne r1, [r0] - ldr r0, _0205F754 @ =0x020B0A60 - ldr r0, [r0, #0x14] - bx lr - .align 2, 0 -_0205F754: .4byte 0x020B0A60 - arm_func_end FUN_0205f738 - - arm_func_start GenerateAllPossibleMonstersList -GenerateAllPossibleMonstersList: @ 0x0205F758 - push {r4, r5, r6, lr} - mov r0, #0x430 - mov r1, #0xf - bl MemAlloc - mov r5, r0 - mov r4, #0 - mov r6, #1 -_0205F774: - lsl r0, r6, #0x10 - asr r0, r0, #0x10 - bl CanMonsterBeUsedForMissionWrapper - cmp r0, #0 - lslne r0, r4, #1 - strhne r6, [r5, r0] - add r6, r6, #1 - addne r4, r4, #1 - cmp r6, #0x218 - blt _0205F774 - cmp r4, #0 - ldrne r0, _0205F7C0 @ =0x020B0A60 - strne r5, [r0, #0x10] - strne r4, [r0, #0x14] - bne _0205F7B8 - mov r0, r5 - bl MemFree -_0205F7B8: - mov r0, r4 - pop {r4, r5, r6, pc} - .align 2, 0 -_0205F7C0: .4byte 0x020B0A60 - arm_func_end GenerateAllPossibleMonstersList - - arm_func_start DeleteAllPossibleMonstersList -DeleteAllPossibleMonstersList: @ 0x0205F7C4 - push {r3, lr} - ldr r0, _0205F7F0 @ =0x020B0A60 - ldr r0, [r0, #0x10] - cmp r0, #0 - popeq {r3, pc} - bl MemFree - ldr r0, _0205F7F0 @ =0x020B0A60 - mov r1, #0 - str r1, [r0, #0x14] - str r1, [r0, #0x10] - pop {r3, pc} - .align 2, 0 -_0205F7F0: .4byte 0x020B0A60 - arm_func_end DeleteAllPossibleMonstersList - - arm_func_start GenerateAllPossibleDungeonsList -GenerateAllPossibleDungeonsList: @ 0x0205F7F4 - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #0xb4 - mov r0, #0xb4 - mov r1, #0xf - bl MemAlloc - mov r5, #0 - mov r4, r0 - mov r1, r5 - mov r8, r5 - add r0, sp, #0 -_0205F81C: - strb r8, [r0, r1] - add r1, r1, #1 - cmp r1, #0xb4 - blt _0205F81C - mov r7, #1 - add r6, sp, #0 -_0205F834: - and r0, r8, #0xff - bl FUN_02062bb8 - cmp r0, #0 - strbne r7, [r6, r8] - add r8, r8, #1 - cmp r8, #0xb4 - blt _0205F834 - mov r2, #0 - add r1, sp, #0 -_0205F858: - ldrb r0, [r1, r2] - cmp r0, #0 - strbne r2, [r4, r5] - add r2, r2, #1 - addne r5, r5, #1 - cmp r2, #0xb4 - blt _0205F858 - cmp r5, #0 - ldrne r0, _0205F89C @ =0x020B0A60 - strne r4, [r0, #8] - strne r5, [r0, #0xc] - bne _0205F890 - mov r0, r4 - bl MemFree -_0205F890: - mov r0, r5 - add sp, sp, #0xb4 - pop {r3, r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0205F89C: .4byte 0x020B0A60 - arm_func_end GenerateAllPossibleDungeonsList - - arm_func_start DeleteAllPossibleDungeonsList -DeleteAllPossibleDungeonsList: @ 0x0205F8A0 - push {r3, lr} - ldr r0, _0205F8CC @ =0x020B0A60 - ldr r0, [r0, #8] - cmp r0, #0 - popeq {r3, pc} - bl MemFree - ldr r0, _0205F8CC @ =0x020B0A60 - mov r1, #0 - str r1, [r0, #0xc] - str r1, [r0, #8] - pop {r3, pc} - .align 2, 0 -_0205F8CC: .4byte 0x020B0A60 - arm_func_end DeleteAllPossibleDungeonsList - - arm_func_start GenerateAllPossibleDeliverList -GenerateAllPossibleDeliverList: @ 0x0205F8D0 - push {r3, r4, r5, lr} - mov r0, #0x2d8 - mov r1, #0xf - bl MemAlloc - mov r4, r0 - bl GetAvailableItemDeliveryList - movs r5, r0 - ldrne r0, _0205F908 @ =0x020B0A60 - stmne r0, {r4, r5} - bne _0205F900 - mov r0, r4 - bl MemFree -_0205F900: - mov r0, r5 - pop {r3, r4, r5, pc} - .align 2, 0 -_0205F908: .4byte 0x020B0A60 - arm_func_end GenerateAllPossibleDeliverList - - arm_func_start DeleteAllPossibleDeliverList -DeleteAllPossibleDeliverList: @ 0x0205F90C - push {r3, lr} - ldr r0, _0205F938 @ =0x020B0A60 - ldr r0, [r0] - cmp r0, #0 - popeq {r3, pc} - bl MemFree - ldr r0, _0205F938 @ =0x020B0A60 - mov r1, #0 - str r1, [r0, #4] - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_0205F938: .4byte 0x020B0A60 - arm_func_end DeleteAllPossibleDeliverList - - arm_func_start FUN_0205f93c -FUN_0205f93c: @ 0x0205F93C - ldrb r2, [r0, #2] - ldrb r1, [r0, #1] - mov r3, #0 - add r3, r3, r2, lsl #11 - add r3, r3, r1 - ldrb r2, [r0, #4] - ldrb r1, [r0, #5] - add r2, r3, r2 - add ip, r2, r1 - ldr r3, [r0, #8] - ldrb r2, [r0, #0xc] - add ip, ip, r3, lsl #8 - ldrsh r3, [r0, #0xe] - add ip, ip, r2, lsl #13 - ldrb r1, [r0, #0x16] - add ip, ip, r3, lsl #12 - ldrsh r2, [r0, #0x10] - ldrsh r3, [r0, #0x12] - cmp r1, #5 - add ip, ip, r2, lsl #16 - ldrsh r2, [r0, #0x14] - add r3, ip, r3, lsl #4 - add r2, r3, r2, lsl #24 - add r2, r2, r1, lsl #2 - ldrhne r1, [r0, #0x18] - addne r2, r2, r1, lsl #1 - ldrb r1, [r0, #0x1a] - ldrh r0, [r0, #0x1c] - add r1, r2, r1, lsl #21 - add r0, r1, r0, lsl #22 - bx lr - arm_func_end FUN_0205f93c - - arm_func_start ClearMissionData -ClearMissionData: @ 0x0205F9B8 - mov r2, #0 - strb r2, [r0] - mov r1, #0xff - strb r1, [r0, #4] - strb r2, [r0, #5] - strb r2, [r0, #0x16] - bx lr - arm_func_end ClearMissionData - - arm_func_start FUN_0205f9d4 -FUN_0205f9d4: @ 0x0205F9D4 - push {r3, r4, r5, lr} - ldr r1, _0205FA34 @ =0x020B0A60 - mov r5, r0 - ldr r4, [r1, #0x18] - mov lr, #0xf - mov r3, #0xc -_0205F9EC: - mla r1, lr, r3, r4 - add r0, r1, #0x334 - sub lr, lr, #1 - add ip, r1, #0x340 - ldm r0, {r0, r1, r2} - stm ip, {r0, r1, r2} - cmp lr, #0 - bgt _0205F9EC - ldr r2, [r5, #4] - ldr r1, [r5, #8] - mov r0, r5 - str r2, [r4, #0x340] - str r1, [r4, #0x344] - bl FUN_0205f93c - ldr r1, _0205FA34 @ =0x020B0A60 - ldr r1, [r1, #0x18] - str r0, [r1, #0x348] - pop {r3, r4, r5, pc} - .align 2, 0 -_0205FA34: .4byte 0x020B0A60 - arm_func_end FUN_0205f9d4 - - arm_func_start FUN_0205fa38 -FUN_0205fa38: @ 0x0205FA38 - push {r3, r4, r5, lr} - mov r4, r0 - bl FUN_0205f93c - ldr r2, _0205FAAC @ =0x020B0A60 - mov r1, #0 - ldr r2, [r2, #0x18] - add r5, r2, #0x340 - mov r2, #0xc - b _0205FA9C -_0205FA5C: - mul lr, r1, r2 - ldrb ip, [r5, lr] - ldrb r3, [r4, #4] - add lr, r5, lr - cmp ip, r3 - ldrbeq ip, [lr, #1] - ldrbeq r3, [r4, #5] - cmpeq ip, r3 - ldreq ip, [lr, #4] - ldreq r3, [r4, #8] - cmpeq ip, r3 - ldreq r3, [lr, #8] - cmpeq r3, r0 - moveq r0, #1 - popeq {r3, r4, r5, pc} - add r1, r1, #1 -_0205FA9C: - cmp r1, #0x10 - blt _0205FA5C - mov r0, #0 - pop {r3, r4, r5, pc} - .align 2, 0 -_0205FAAC: .4byte 0x020B0A60 - arm_func_end FUN_0205fa38 - - arm_func_start FUN_0205fab0 -FUN_0205fab0: @ 0x0205FAB0 - push {r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #0x10 - mov r3, r0 - mov r2, r1 - add r0, sp, #0 - mov r1, r3 - bl FUN_02050974 - mov r7, #0 - ldr r4, _0205FC1C @ =0x020B0A60 - add r6, sp, #0 - mov r5, r7 -_0205FADC: - ldr r1, [r4, #0x18] - mov r0, r6 - mov r2, r5 - add r1, r1, r7, lsl #5 - bl FUN_0205fd88 - add r7, r7, #1 - cmp r7, #8 - blt _0205FADC - mov r7, #0 - ldr r4, _0205FC1C @ =0x020B0A60 - add r6, sp, #0 - mov r5, r7 -_0205FB0C: - ldr r1, [r4, #0x18] - mov r0, r6 - add r1, r1, #0x100 - mov r2, r5 - add r1, r1, r7, lsl #5 - bl FUN_0205fd88 - add r7, r7, #1 - cmp r7, #8 - blt _0205FB0C - mov r7, #0 - ldr r4, _0205FC1C @ =0x020B0A60 - add r6, sp, #0 - mov r5, r7 -_0205FB40: - ldr r1, [r4, #0x18] - mov r0, r6 - add r1, r1, #0x200 - mov r2, r5 - add r1, r1, r7, lsl #5 - bl FUN_0205fd88 - add r7, r7, #1 - cmp r7, #8 - blt _0205FB40 - ldr r1, _0205FC1C @ =0x020B0A60 - add r0, sp, #0 - ldr r1, [r1, #0x18] - mov r2, #0 - add r1, r1, #0x300 - bl FUN_0205fd88 - ldr r1, _0205FC1C @ =0x020B0A60 - add r0, sp, #0 - ldr r1, [r1, #0x18] - mov r2, #0 - add r1, r1, #0x320 - bl FUN_0205fd88 - ldr sl, _0205FC1C @ =0x020B0A60 - mov r8, #0 - add r6, sp, #0 - mov r5, #0x20 - mov r4, #0x18 - mov sb, #0xc -_0205FBAC: - mul r7, r8, sb - ldr r1, [sl, #0x18] - mov r0, r6 - add r1, r1, #0x348 - mov r2, r5 - add r1, r1, r7 - bl CopyBitsFrom - ldr r1, [sl, #0x18] - mov r0, r6 - add r1, r1, #0x344 - mov r2, r4 - add r1, r1, r7 - bl CopyBitsFrom - ldr r1, [sl, #0x18] - mov r0, r6 - add r1, r1, #0x340 - add r1, r1, r7 - bl Copy16BitsFrom - add r8, r8, #1 - cmp r8, #0x10 - blt _0205FBAC - add r0, sp, #0 - bl FUN_020509bc - bl Rand16Bit - bl FUN_020634f4 - ldr r0, [sp, #8] - add sp, sp, #0x10 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_0205FC1C: .4byte 0x020B0A60 - arm_func_end FUN_0205fab0 - - arm_func_start FUN_0205fc20 -FUN_0205fc20: @ 0x0205FC20 - push {r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #0x10 - mov r3, r0 - mov r2, r1 - add r0, sp, #0 - mov r1, r3 - bl FUN_02050990 - mov r7, #0 - ldr r4, _0205FD84 @ =0x020B0A60 - add r6, sp, #0 - mov r5, r7 -_0205FC4C: - ldr r1, [r4, #0x18] - mov r0, r6 - mov r2, r5 - add r1, r1, r7, lsl #5 - bl FUN_0205fe80 - add r7, r7, #1 - cmp r7, #8 - blt _0205FC4C - mov r7, #0 - ldr r4, _0205FD84 @ =0x020B0A60 - add r6, sp, #0 - mov r5, r7 -_0205FC7C: - ldr r1, [r4, #0x18] - mov r0, r6 - add r1, r1, #0x100 - mov r2, r5 - add r1, r1, r7, lsl #5 - bl FUN_0205fe80 - add r7, r7, #1 - cmp r7, #8 - blt _0205FC7C - mov r7, #0 - ldr r4, _0205FD84 @ =0x020B0A60 - add r6, sp, #0 - mov r5, r7 -_0205FCB0: - ldr r1, [r4, #0x18] - mov r0, r6 - add r1, r1, #0x200 - mov r2, r5 - add r1, r1, r7, lsl #5 - bl FUN_0205fe80 - add r7, r7, #1 - cmp r7, #8 - blt _0205FCB0 - ldr r1, _0205FD84 @ =0x020B0A60 - add r0, sp, #0 - ldr r1, [r1, #0x18] - mov r2, #0 - add r1, r1, #0x300 - bl FUN_0205fe80 - ldr r1, _0205FD84 @ =0x020B0A60 - add r0, sp, #0 - ldr r1, [r1, #0x18] - mov r2, #0 - add r1, r1, #0x320 - bl FUN_0205fe80 - ldr sl, _0205FD84 @ =0x020B0A60 - mov r8, #0 - add r6, sp, #0 - mov r5, #0x20 - mov r4, #0x18 - mov sb, #0xc -_0205FD1C: - mul r7, r8, sb - ldr r1, [sl, #0x18] - mov r0, r6 - add r1, r1, #0x348 - mov r2, r5 - add r1, r1, r7 - bl CopyBitsTo - ldr r1, [sl, #0x18] - mov r0, r6 - add r1, r1, #0x344 - mov r2, r4 - add r1, r1, r7 - bl CopyBitsTo - ldr r1, [sl, #0x18] - mov r0, r6 - add r1, r1, #0x340 - add r1, r1, r7 - bl FUN_020515c4 - add r8, r8, #1 - cmp r8, #0x10 - blt _0205FD1C - add r0, sp, #0 - bl FUN_020509bc - ldr r0, [sp, #8] - add sp, sp, #0x10 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_0205FD84: .4byte 0x020B0A60 - arm_func_end FUN_0205fc20 - - arm_func_start FUN_0205fd88 -FUN_0205fd88: @ 0x0205FD88 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r2, #4 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #1 - mov r2, #4 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #2 - mov r2, #4 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0xe - mov r2, #0xb - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0x10 - mov r2, #0xb - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0x12 - mov r2, #0xb - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0x14 - mov r2, #0xa - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0x16 - mov r2, #4 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #0x18 - mov r2, #0xb - bl CopyBitsFrom - mov r0, r5 - add r1, sp, #0 - mov r2, #1 - bl CopyBitsFrom - ldrb r0, [sp] - add r1, r4, #0x1c - mov r2, #0xb - cmp r0, #0 - movne r3, #1 - moveq r3, #0 - mov r0, r5 - strb r3, [r4, #0x1a] - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #8 - mov r2, #0x18 - bl CopyBitsFrom - mov r0, r5 - add r1, r4, #4 - bl Copy16BitsFrom - mov r0, r5 - add r1, r4, #0xc - mov r2, #8 - bl CopyBitsFrom - pop {r3, r4, r5, pc} - arm_func_end FUN_0205fd88 - - arm_func_start FUN_0205fe80 -FUN_0205fe80: @ 0x0205FE80 - push {r3, r4, r5, lr} - mov ip, #0xff - mov r3, #0 - mov r5, r0 - mov r4, r1 - mov r2, #4 - strb ip, [sp, #1] - strb r3, [sp] - bl CopyBitsTo - mov r0, r5 - add r1, r4, #1 - mov r2, #4 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #2 - mov r2, #4 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0xe - mov r2, #0xb - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0x10 - mov r2, #0xb - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0x12 - mov r2, #0xb - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0x14 - mov r2, #0xa - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0x16 - mov r2, #4 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0x18 - mov r2, #0xb - bl CopyBitsTo - ldrb r0, [r4, #0x1a] - mov r2, #1 - cmp r0, #1 - addeq r1, sp, #1 - addne r1, sp, #0 - mov r0, r5 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #0x1c - mov r2, #0xb - bl CopyBitsTo - mov r0, r5 - add r1, r4, #8 - mov r2, #0x18 - bl CopyBitsTo - mov r0, r5 - add r1, r4, #4 - bl FUN_020515c4 - mov r0, r5 - add r1, r4, #0xc - mov r2, #8 - bl CopyBitsTo - pop {r3, r4, r5, pc} - arm_func_end FUN_0205fe80 - - arm_func_start FUN_0205ff80 -FUN_0205ff80: @ 0x0205FF80 - push {r3, lr} - cmp r0, #3 - mov r2, #0 - bne _0205FFA8 - cmp r1, #1 - moveq r2, #0xa5 - beq _02060070 - cmp r1, #2 - moveq r2, #0x6f - b _02060070 -_0205FFA8: - cmp r0, #0xa - bne _0205FFCC - cmp r1, #6 - bne _02060070 - ldr r0, _02060078 @ =0x020A18FC - sub r1, r2, #1 - bl FUN_02060084 - mov r2, r0 - b _02060070 -_0205FFCC: - cmp r0, #0xb - bne _02060034 - cmp r1, #5 - addls pc, pc, r1, lsl #2 - b _02060070 -_0205FFE0: @ jump table - b _0205FFF8 @ case 0 - b _0206000C @ case 1 - b _02060014 @ case 2 - b _0206001C @ case 3 - b _02060024 @ case 4 - b _0206002C @ case 5 -_0205FFF8: - ldr r0, _0206007C @ =0x020A1904 - sub r1, r2, #1 - bl FUN_02060084 - mov r2, r0 - b _02060070 -_0206000C: - mov r2, #0x91 - b _02060070 -_02060014: - mov r2, #0x92 - b _02060070 -_0206001C: - mov r2, #0x93 - b _02060070 -_02060024: - mov r2, #0x94 - b _02060070 -_0206002C: - mov r2, #0x95 - b _02060070 -_02060034: - cmp r0, #0xc - bne _02060070 - mov r0, #9 - bl GetPerformanceFlagWithChecks - cmp r0, #0 - bne _02060060 - ldr r0, _02060080 @ =0x020A1958 - mov r1, #0xf - bl FUN_02060084 - mov r2, r0 - b _02060070 -_02060060: - ldr r0, _02060080 @ =0x020A1958 - mvn r1, #0 - bl FUN_02060084 - mov r2, r0 -_02060070: - mov r0, r2 - pop {r3, pc} - .align 2, 0 -_02060078: .4byte 0x020A18FC -_0206007C: .4byte 0x020A1904 -_02060080: .4byte 0x020A1958 - arm_func_end FUN_0205ff80 - - arm_func_start FUN_02060084 -FUN_02060084: @ 0x02060084 - push {r3, r4, r5, lr} - mov r5, r0 - mov r2, r5 - mov r4, #0 - b _0206009C -_02060098: - add r4, r4, #1 -_0206009C: - ldrb r0, [r2], #1 - cmp r0, #0 - bne _02060098 - cmp r1, #0 - blt _020600B8 - cmp r4, r1 - movgt r4, r1 -_020600B8: - bl Rand16Bit - mov r1, r4 - bl DivideInt - ldrb r0, [r5, r1] - pop {r3, r4, r5, pc} - arm_func_end FUN_02060084 - - arm_func_start FUN_020600cc -FUN_020600cc: @ 0x020600CC - push {r3, lr} - ldr r0, _02060144 @ =0x020B0AD8 - ldr r0, [r0, #0x24] - cmp r0, #0 - popne {r3, pc} - ldr r0, _02060148 @ =0x020B0AFC - ldr r1, _0206014C @ =0x020A462C - mov r2, #1 - bl LoadFileFromRom - ldr r0, _02060144 @ =0x020B0AD8 - ldr r2, [r0, #0x24] - ldr r1, [r2] - add r1, r2, r1 - str r1, [r0, #4] - ldr r1, [r2, #4] - add r1, r2, r1 - str r1, [r0, #0x14] - ldr r1, [r2, #8] - add r1, r2, r1 - str r1, [r0, #0x10] - ldr r1, [r2, #0xc] - add r1, r2, r1 - str r1, [r0, #8] - ldr r1, [r2, #0x10] - add r1, r2, r1 - str r1, [r0, #0x18] - ldr r1, [r2, #0x14] - add r1, r2, r1 - str r1, [r0, #0xc] - pop {r3, pc} - .align 2, 0 -_02060144: .4byte 0x020B0AD8 -_02060148: .4byte 0x020B0AFC -_0206014C: .4byte 0x020A462C - arm_func_end FUN_020600cc - - arm_func_start FUN_02060150 -FUN_02060150: @ 0x02060150 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - bl FUN_0205e238 - cmp r0, #0 - strne r5, [r4, #0x5c] - popne {r3, r4, r5, pc} - mov r0, r5 - add r1, r4, #0x18 - bl FUN_02062e5c - mov r0, r5 - mov r1, r4 - bl FUN_02060274 - mov r1, r5 - bl FUN_0206096c - str r0, [r4, #0x60] - add r0, r5, #4 - str r0, [r4, #8] - mov r1, #0 - str r1, [r4, #0xc] - ldrsh r0, [r5, #0xe] - strh r0, [r4, #0x10] - ldrsh r0, [r5, #0x10] - strh r0, [r4, #0x12] - ldrsh r0, [r5, #0x12] - strh r0, [r4, #0x14] - ldrsh r0, [r5, #0x14] - strh r0, [r4, #0x16] - ldrb r0, [r5, #0x1a] - cmp r0, #0 - strbeq r1, [r4, #0x49] - ldrheq r0, [r5, #0x1c] - strbeq r0, [r4, #0x4c] - beq _020601EC - cmp r0, #1 - moveq r0, #1 - strbeq r0, [r4, #0x49] - ldrsheq r0, [r5, #0x1c] - strheq r0, [r4, #0x4a] -_020601EC: - ldrb r0, [r5] - cmp r0, #8 - addls pc, pc, r0, lsl #2 - b _02060258 -_020601FC: @ jump table - b _02060258 @ case 0 - b _02060220 @ case 1 - b _02060220 @ case 2 - b _02060220 @ case 3 - b _02060220 @ case 4 - b _02060244 @ case 5 - b _02060230 @ case 6 - b _02060244 @ case 7 - b _02060244 @ case 8 -_02060220: - mov r0, #1 - strb r0, [r4, #0x47] - strb r0, [r4, #0x48] - b _02060264 -_02060230: - mov r0, #0 - strb r0, [r4, #0x47] - mov r0, #3 - strb r0, [r4, #0x48] - b _02060264 -_02060244: - mov r0, #3 - strb r0, [r4, #0x47] - mov r0, #2 - strb r0, [r4, #0x48] - b _02060264 -_02060258: - mov r0, #0 - strb r0, [r4, #0x47] - strb r0, [r4, #0x48] -_02060264: - str r5, [r4, #0x5c] - mov r0, #0 - str r0, [r4, #0x64] - pop {r3, r4, r5, pc} - arm_func_end FUN_02060150 - - arm_func_start FUN_02060274 -FUN_02060274: @ 0x02060274 - ldrb r3, [r0, #1] - mov r2, #0 - cmp r3, #0xe - addls pc, pc, r3, lsl #2 - b _02060634 -_02060288: @ jump table - b _020602C4 @ case 0 - b _020602DC @ case 1 - b _02060344 @ case 2 - b _02060388 @ case 3 - b _020603DC @ case 4 - b _02060404 @ case 5 - b _02060420 @ case 6 - b _02060480 @ case 7 - b _0206050C @ case 8 - b _02060494 @ case 9 - b _02060528 @ case 10 - b _0206058C @ case 11 - b _020605EC @ case 12 - b _02060634 @ case 13 - b _02060608 @ case 14 -_020602C4: - mov r0, #1 - strb r0, [r1, #0x44] - strb r0, [r1, #0x45] - mov r0, #3 - strb r0, [r1, #0x46] - b _02060634 -_020602DC: - ldrb r0, [r0, #2] - cmp r0, #3 - addls pc, pc, r0, lsl #2 - b _02060338 -_020602EC: @ jump table - b _020602FC @ case 0 - b _02060310 @ case 1 - b _02060324 @ case 2 - b _02060324 @ case 3 -_020602FC: - mov r0, #4 - strb r0, [r1, #0x44] - strb r0, [r1, #0x45] - mov r2, #1 - b _02060338 -_02060310: - mov r0, #1 - strb r0, [r1, #0x44] - strb r0, [r1, #0x45] - mov r2, #5 - b _02060338 -_02060324: - mov r0, #1 - strb r0, [r1, #0x44] - mov r0, #4 - strb r0, [r1, #0x45] - mov r2, #5 -_02060338: - mov r0, #4 - strb r0, [r1, #0x46] - b _02060634 -_02060344: - ldrb r0, [r0, #2] - cmp r0, #0 - beq _0206036C - cmp r0, #1 - moveq r0, #1 - strbeq r0, [r1, #0x44] - moveq r0, #4 - strbeq r0, [r1, #0x45] - moveq r2, #5 - b _0206037C -_0206036C: - mov r0, #4 - strb r0, [r1, #0x44] - strb r0, [r1, #0x45] - mov r2, #1 -_0206037C: - mov r0, #5 - strb r0, [r1, #0x46] - b _02060634 -_02060388: - ldrb r0, [r0, #2] - cmp r0, #3 - addls pc, pc, r0, lsl #2 - b _020603CC -_02060398: @ jump table - b _020603A8 @ case 0 - b _020603BC @ case 1 - b _020603BC @ case 2 - b _020603BC @ case 3 -_020603A8: - mov r0, #1 - strb r0, [r1, #0x44] - mov r0, #8 - strb r0, [r1, #0x45] - b _020603CC -_020603BC: - mov r0, #1 - strb r0, [r1, #0x44] - mov r0, #7 - strb r0, [r1, #0x45] -_020603CC: - mov r0, #6 - strb r0, [r1, #0x46] - mov r2, #1 - b _02060634 -_020603DC: - ldrb r0, [r0, #2] - cmp r0, #0 - moveq r0, #1 - strbeq r0, [r1, #0x44] - moveq r0, #5 - strbeq r0, [r1, #0x45] - mov r0, #7 - moveq r2, #3 - strb r0, [r1, #0x46] - b _02060634 -_02060404: - mov r0, #5 - strb r0, [r1, #0x44] - mov r0, #7 - strb r0, [r1, #0x45] - mov r0, #8 - strb r0, [r1, #0x46] - b _02060634 -_02060420: - ldrb r0, [r0, #2] - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _02060474 -_02060430: @ jump table - b _02060444 @ case 0 - b _02060454 @ case 1 - b _02060444 @ case 2 - b _02060444 @ case 3 - b _02060468 @ case 4 -_02060444: - mov r0, #2 - strb r0, [r1, #0x44] - strb r0, [r1, #0x45] - b _02060474 -_02060454: - mov r0, #1 - strb r0, [r1, #0x44] - mov r0, #2 - strb r0, [r1, #0x45] - b _02060474 -_02060468: - mov r0, #1 - strb r0, [r1, #0x44] - strb r0, [r1, #0x45] -_02060474: - mov r2, #1 - strb r2, [r1, #0x46] - b _02060634 -_02060480: - mov r0, #2 - strb r0, [r1, #0x44] - strb r0, [r1, #0x45] - strb r0, [r1, #0x46] - b _02060634 -_02060494: - ldrb r0, [r0, #2] - cmp r0, #0 - beq _020604B4 - cmp r0, #1 - beq _020604D0 - cmp r0, #2 - beq _020604EC - b _02060504 -_020604B4: - mov r0, #1 - strb r0, [r1, #0x44] - mov r0, #5 - strb r0, [r1, #0x45] - mov r0, #0xa - strb r0, [r1, #0x46] - b _02060504 -_020604D0: - mov r0, #1 - strb r0, [r1, #0x44] - mov r0, #6 - strb r0, [r1, #0x45] - mov r0, #0xb - strb r0, [r1, #0x46] - b _02060504 -_020604EC: - mov r0, #1 - strb r0, [r1, #0x44] - mov r0, #5 - strb r0, [r1, #0x45] - mov r0, #0xb - strb r0, [r1, #0x46] -_02060504: - mov r2, #1 - b _02060634 -_0206050C: - mov r0, #1 - strb r0, [r1, #0x44] - mov r0, #4 - strb r0, [r1, #0x45] - mov r0, #0xc - strb r0, [r1, #0x46] - b _02060634 -_02060528: - ldrb r0, [r0, #2] - cmp r0, #7 - addls pc, pc, r0, lsl #2 - b _02060580 -_02060538: @ jump table - b _02060558 @ case 0 - b _02060558 @ case 1 - b _02060558 @ case 2 - b _02060558 @ case 3 - b _02060558 @ case 4 - b _02060558 @ case 5 - b _0206056C @ case 6 - b _02060558 @ case 7 -_02060558: - mov r2, #4 - strb r2, [r1, #0x44] - mov r0, #1 - strb r0, [r1, #0x45] - b _02060580 -_0206056C: - mov r0, #4 - strb r0, [r1, #0x44] - mov r0, #1 - strb r0, [r1, #0x45] - mov r2, #6 -_02060580: - mov r0, #0xd - strb r0, [r1, #0x46] - b _02060634 -_0206058C: - ldrb r0, [r0, #2] - cmp r0, #5 - addls pc, pc, r0, lsl #2 - b _020605E0 -_0206059C: @ jump table - b _020605B4 @ case 0 - b _020605CC @ case 1 - b _020605CC @ case 2 - b _020605CC @ case 3 - b _020605CC @ case 4 - b _020605CC @ case 5 -_020605B4: - mov r0, #3 - strb r0, [r1, #0x44] - mov r0, #7 - strb r0, [r1, #0x45] - mov r2, #6 - b _020605E0 -_020605CC: - mov r0, #3 - strb r0, [r1, #0x44] - mov r0, #7 - strb r0, [r1, #0x45] - mov r2, #4 -_020605E0: - mov r0, #0xe - strb r0, [r1, #0x46] - b _02060634 -_020605EC: - mov r0, #1 - strb r0, [r1, #0x44] - strb r0, [r1, #0x45] - mov r0, #0xf - strb r0, [r1, #0x46] - mov r2, #7 - b _02060634 -_02060608: - ldrb r0, [r0, #2] - cmp r0, #1 - bne _02060630 - mov r0, #1 - strb r0, [r1, #0x44] - strb r0, [r1, #0x45] - mov r0, #9 - strb r0, [r1, #0x46] - mov r0, #7 - strb r0, [r1, #0x1a] -_02060630: - mov r2, #7 -_02060634: - mov r0, r2 - bx lr - arm_func_end FUN_02060274 -_0206063C: - .byte 0x20, 0x20, 0xD0, 0xE5 - .byte 0x01, 0x00, 0xD1, 0xE5, 0x00, 0x00, 0x52, 0xE1, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13 - .byte 0xFF, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0x30, 0xD0, 0xE5, 0x01, 0x20, 0xD1, 0xE5 - .byte 0x02, 0x00, 0x53, 0xE1, 0x21, 0x20, 0xD0, 0x05, 0x02, 0x00, 0xD1, 0x05, 0x00, 0x00, 0x52, 0x01 - .byte 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13, 0xFF, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02060680 -FUN_02060680: @ 0x02060680 - push {r3, lr} - ldrb r3, [r0, #0x20] - ldrb r2, [r1, #1] - mov ip, #0 - mov lr, ip - cmp r3, r2 - ldrbeq r3, [r0, #0x21] - ldrbeq r2, [r1, #2] - cmpeq r3, r2 - bne _020606C4 - ldrh r2, [r0, #2] - cmp r2, #0 - cmpne r2, #1 - moveq r2, #1 - movne r2, ip - tst r2, #0xff - movne lr, #1 -_020606C4: - cmp lr, #0 - beq _020606DC - ldrsh r2, [r0, #6] - ldrsh r0, [r1, #0x14] - cmp r2, r0 - moveq ip, #1 -_020606DC: - and r0, ip, #0xff - pop {r3, pc} - arm_func_end FUN_02060680 - - arm_func_start FUN_020606e4 -FUN_020606e4: @ 0x020606E4 - push {r4, lr} - ldrb r3, [r0, #0x20] - ldrb r2, [r1, #1] - mov r4, #0 - mov ip, r4 - cmp r3, r2 - ldrbeq r3, [r0, #0x21] - ldrbeq r2, [r1, #2] - cmpeq r3, r2 - bne _02060728 - ldrh r2, [r0, #0xe] - cmp r2, #0 - cmpne r2, #1 - moveq r2, #1 - movne r2, r4 - tst r2, #0xff - movne ip, #1 -_02060728: - cmp ip, #0 - beq _02060744 - ldrsh r0, [r0, #0x12] - ldrsh r1, [r1, #0xe] - bl DexNumbersEqual - cmp r0, #0 - movne r4, #1 -_02060744: - and r0, r4, #0xff - pop {r4, pc} - arm_func_end FUN_020606e4 - - arm_func_start FUN_0206074c -FUN_0206074c: @ 0x0206074C - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r1 - ldrb r1, [r7, #0x20] - ldrb r0, [r6, #1] - mov r4, #0 - mov r5, r4 - cmp r1, r0 - ldrbeq r1, [r7, #0x21] - ldrbeq r0, [r6, #2] - mov r2, r4 - mov r3, r4 - cmpeq r1, r0 - bne _020607A0 - ldrh r0, [r7, #0xe] - cmp r0, #0 - cmpne r0, #1 - moveq r0, #1 - movne r0, r4 - tst r0, #0xff - movne r3, #1 -_020607A0: - cmp r3, #0 - beq _020607C4 - ldrh r0, [r7, #0x14] - cmp r0, #0 - cmpne r0, #1 - moveq r0, #1 - movne r0, #0 - tst r0, #0xff - movne r2, #1 -_020607C4: - cmp r2, #0 - beq _020607E0 - ldrsh r0, [r7, #0x12] - ldrsh r1, [r6, #0xe] - bl DexNumbersEqual - cmp r0, #0 - movne r5, #1 -_020607E0: - cmp r5, #0 - beq _020607FC - ldrsh r0, [r7, #0x18] - ldrsh r1, [r6, #0x10] - bl DexNumbersEqual - cmp r0, #0 - movne r4, #1 -_020607FC: - and r0, r4, #0xff - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0206074c - - arm_func_start FUN_02060804 -FUN_02060804: @ 0x02060804 - push {r4, r5, r6, r7, r8, lr} - mov r8, r0 - mov r7, r1 - ldrb r1, [r8, #0x20] - ldrb r0, [r7, #1] - mov r4, #0 - mov r5, r4 - cmp r1, r0 - ldrbeq r1, [r8, #0x21] - ldrbeq r0, [r7, #2] - mov r6, r4 - mov r2, r4 - mov r3, r4 - mov ip, r4 - cmpeq r1, r0 - bne _02060860 - ldrh r0, [r8, #0xe] - cmp r0, #0 - cmpne r0, #1 - moveq r0, #1 - movne r0, r4 - tst r0, #0xff - movne ip, #1 -_02060860: - cmp ip, #0 - beq _02060884 - ldrh r0, [r8, #0x14] - cmp r0, #0 - cmpne r0, #1 - moveq r0, #1 - movne r0, #0 - tst r0, #0xff - movne r3, #1 -_02060884: - cmp r3, #0 - beq _020608A8 - ldrh r0, [r8, #0x1a] - cmp r0, #0 - cmpne r0, #1 - moveq r0, #1 - movne r0, #0 - tst r0, #0xff - movne r2, #1 -_020608A8: - cmp r2, #0 - beq _020608C4 - ldrsh r0, [r8, #0x12] - ldrsh r1, [r7, #0xe] - bl DexNumbersEqual - cmp r0, #0 - movne r6, #1 -_020608C4: - cmp r6, #0 - beq _020608E0 - ldrsh r0, [r8, #0x18] - ldrsh r1, [r7, #0x10] - bl DexNumbersEqual - cmp r0, #0 - movne r5, #1 -_020608E0: - cmp r5, #0 - beq _020608FC - ldrsh r0, [r8, #0x1e] - ldrsh r1, [r7, #0x12] - bl DexNumbersEqual - cmp r0, #0 - movne r4, #1 -_020608FC: - and r0, r4, #0xff - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_02060804 - - arm_func_start FUN_02060904 -FUN_02060904: @ 0x02060904 - push {r3, lr} - ldrb r3, [r0, #0x20] - ldrb r2, [r1, #1] - mov ip, #0 - mov lr, ip - cmp r3, r2 - ldrbeq r3, [r0, #0x21] - ldrbeq r2, [r1, #2] - cmpeq r3, r2 - bne _02060948 - ldrh r2, [r0, #8] - cmp r2, #0 - cmpne r2, #1 - moveq r2, #1 - movne r2, ip - tst r2, #0xff - movne lr, #1 -_02060948: - cmp lr, #0 - beq _02060964 - ldrh r2, [r0, #0xc] - ldrb r0, [r1, #4] - and r1, r2, #0xff - cmp r1, r0 - moveq ip, #1 -_02060964: - and r0, ip, #0xff - pop {r3, pc} - arm_func_end FUN_02060904 - - arm_func_start FUN_0206096c -FUN_0206096c: @ 0x0206096C - push {r4, r5, r6, r7, r8, sb, sl, lr} - ldr r2, _020609E0 @ =0x020A3CF4 - mov r8, r0 - mov r7, r1 - ldr r5, [r2, r8, lsl #2] - mov r4, #0 - mov sb, #0x22 - ldr sl, _020609E4 @ =0x020B0AD8 - b _020609BC -_02060990: - mul r6, r4, sb - ldr r0, [sl, #0x18] - mov r1, r7 - add r0, r0, r6 - blx r5 - cmp r0, #0 - ldrne r0, _020609E4 @ =0x020B0AD8 - ldrne r0, [r0, #0x18] - addne r0, r0, r6 - popne {r4, r5, r6, r7, r8, sb, sl, pc} - add r4, r4, #1 -_020609BC: - cmp r4, #0x258 - blt _02060990 - cmp r8, #3 - movne r0, #0 - popne {r4, r5, r6, r7, r8, sb, sl, pc} - mov r1, r7 - mov r0, #1 - bl FUN_0206096c - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_020609E0: .4byte 0x020A3CF4 -_020609E4: .4byte 0x020B0AD8 - arm_func_end FUN_0206096c - - arm_func_start SprintfStatic -SprintfStatic: @ 0x020609E8 - push {r0, r1, r2, r3} - push {r3, lr} - add r2, sp, #0xc - bic r2, r2, #3 - ldr r1, [sp, #0xc] - add r2, r2, #4 - bl Vsprintf - pop {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end SprintfStatic - - arm_func_start FUN_02060a10 -FUN_02060a10: @ 0x02060A10 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #8 - mov r6, r0 - add r0, sp, #4 - mov r7, r3 - mov r5, r1 - mov r4, r2 - bl FUN_020022c4 - ldr r3, [r7, #8] - ldr r1, _02060AEC @ =0x020A4644 - ldrb r0, [r3] - ldr r2, [r3, #4] - ldrb r3, [r3, #1] - add r2, r2, r0 - mov r0, r6 - add r2, r3, r2 - str r2, [sp, #4] - ldr r2, [r7, #0x60] - ldrh sl, [r2] - bl Strcat - ldr fp, _02060AF0 @ =0x00000FFF - ldr sb, _02060AF4 @ =0x020A3EA4 - add r7, fp, #0xf000 - ldr r8, _02060AF8 @ =0x020B0AD8 - b _02060AD4 -_02060A74: - and r0, sl, fp - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - ldr r2, [r8, #4] - lsl r1, r0, #2 - ldrh r1, [r2, r1] - add sl, r2, r0, lsl #2 - add r0, sp, #4 - bl FUN_020022d0 - ldrh r2, [sl, #2] - mov r1, #0x100 - mov r3, #0 - add sl, r2, r0 - lsl r2, sl, #1 - ldrh r2, [sb, r2] - mov r0, r5 - str r4, [sp] - bl PreprocessStringFromMessageId - mov r0, r6 - mov r1, r5 - bl Strcat - ldr r1, [r8, #0x14] - lsl r0, sl, #1 - ldrh sl, [r1, r0] -_02060AD4: - cmp sl, r7 - beq _02060AE4 - tst sl, #0x1000 - beq _02060A74 -_02060AE4: - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02060AEC: .4byte 0x020A4644 -_02060AF0: .4byte 0x00000FFF -_02060AF4: .4byte 0x020A3EA4 -_02060AF8: .4byte 0x020B0AD8 - arm_func_end FUN_02060a10 - - arm_func_start FUN_02060afc -FUN_02060afc: @ 0x02060AFC - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0x80 - mov r6, r0 - mov r5, r1 - mov r0, #0x400 - mov r1, #0xf - bl MemAlloc - mov r4, r0 - ldr r1, _02060DF4 @ =0x020A4654 - mov r0, r6 - bl Strcpy - ldr r1, _02060DF8 @ =0x020A4664 - mov r0, r6 - ldrb r7, [r5, #0x47] - bl Strcat - ldr r1, _02060DFC @ =0x020B0A7C - mov r0, r4 - ldr r1, [r1, r7, lsl #2] - bl SprintfStatic - mov r0, r6 - mov r1, r4 - bl Strcat - add r0, sp, #0x30 - bl InitPreprocessorArgs - ldrb r0, [r5, #0x44] - cmp r0, #6 - addls pc, pc, r0, lsl #2 - b _02060D18 -_02060B6C: @ jump table - b _02060B88 @ case 0 - b _02060C48 @ case 1 - b _02060C60 @ case 2 - b _02060C80 @ case 3 - b _02060CA0 @ case 4 - b _02060CC0 @ case 5 - b _02060CE4 @ case 6 -_02060B88: - ldr r0, [r5, #0xc] - cmp r0, #0 - ldrbne r0, [r0] - cmpne r0, #0 - add r0, sp, #4 - bne _02060BAC - ldr r1, _02060E00 @ =0x000038C9 - bl GetStringFromFileVeneer - b _02060BC4 -_02060BAC: - mov r1, #0x2a - bl MemZero - ldr r1, [r5, #0xc] - add r0, sp, #4 - mov r2, #0xa - bl StrncpySimpleNoPadSafe -_02060BC4: - add r0, sp, #4 - str r0, [sp, #0x68] - ldr r0, [r5, #0x64] - ldrb r0, [r0] - cmp r0, #7 - addls pc, pc, r0, lsl #2 - b _02060C10 -_02060BE0: @ jump table - b _02060C10 @ case 0 - b _02060C10 @ case 1 - b _02060C10 @ case 2 - b _02060C10 @ case 3 - b _02060C10 @ case 4 - b _02060C00 @ case 5 - b _02060C08 @ case 6 - b _02060C00 @ case 7 -_02060C00: - ldr r2, _02060E04 @ =0x000038CB - b _02060C14 -_02060C08: - ldr r2, _02060E08 @ =0x000038CC - b _02060C14 -_02060C10: - ldr r2, _02060E0C @ =0x000038CA -_02060C14: - add ip, sp, #0x30 - mov r0, r4 - mov r1, #0x100 - mov r3, #0 - str ip, [sp] - bl PreprocessStringFromMessageId - ldr r1, _02060E10 @ =0x020A4644 - mov r0, r6 - bl Strcat - mov r0, r6 - mov r1, r4 - bl Strcat - b _02060D18 -_02060C48: - add r2, sp, #0x30 - mov r0, r6 - mov r1, r4 - mov r3, r5 - bl FUN_02060a10 - b _02060D18 -_02060C60: - ldrsh ip, [r5, #0x16] - add r2, sp, #0x30 - mov r0, r6 - mov r1, r4 - mov r3, r5 - str ip, [sp, #0x40] - bl FUN_02060a10 - b _02060D18 -_02060C80: - ldrsh ip, [r5, #0x10] - add r2, sp, #0x30 - mov r0, r6 - mov r1, r4 - mov r3, r5 - str ip, [sp, #0x30] - bl FUN_02060a10 - b _02060D18 -_02060CA0: - ldrsh ip, [r5, #0x12] - add r2, sp, #0x30 - mov r0, r6 - mov r1, r4 - mov r3, r5 - str ip, [sp, #0x30] - bl FUN_02060a10 - b _02060D18 -_02060CC0: - ldr r0, [r5, #8] - add r2, sp, #0x30 - ldrb ip, [r0] - mov r0, r6 - mov r1, r4 - mov r3, r5 - str ip, [sp, #0x40] - bl FUN_02060a10 - b _02060D18 -_02060CE4: - ldr r1, [r5, #0x54] - mov r0, r4 - mov r2, #0x12 - mov r3, #0 - bl FUN_0202568c - mov r1, #0 - strb r1, [r0] - ldr r1, _02060E10 @ =0x020A4644 - mov r0, r6 - bl Strcat - mov r0, r6 - mov r1, r4 - bl Strcat -_02060D18: - ldr r1, _02060E14 @ =0x020A4674 - mov r0, r6 - bl Strcat - mov r0, r5 - mov r1, r4 - mov r2, #0x100 - bl FUN_02061fdc - ldr r1, _02060E10 @ =0x020A4644 - mov r0, r6 - bl Strcat - mov r0, r6 - mov r1, r4 - bl Strcat - ldr r1, [r5, #0x5c] - cmp r1, #0 - beq _02060D9C - ldrb r0, [r1, #1] - cmp r0, #0xe - bne _02060D9C - ldr r2, _02060E18 @ =0x00003C2A - add r5, sp, #0x30 - mov r0, r4 - mov r1, #0x100 - mov r3, #0 - str r5, [sp] - bl PreprocessStringFromMessageId - ldr r1, _02060E1C @ =0x020A4678 - mov r0, r6 - bl Strcat - mov r0, r6 - mov r1, r4 - bl Strcat - b _02060DE4 -_02060D9C: - ldrb r0, [r5, #0x46] - cmp r0, #0 - bne _02060DB8 - ldr r0, [r5, #8] - mov r1, #0 - bl FUN_02062d9c - b _02060DC4 -_02060DB8: - ldrb r1, [r1, #1] - ldr r0, [r5, #8] - bl FUN_02062d9c -_02060DC4: - ldr r2, _02060E20 @ =0x020B0A98 - ldr r1, _02060E1C @ =0x020A4678 - ldr r5, [r2, r0, lsl #2] - mov r0, r6 - bl Strcat - mov r0, r6 - mov r1, r5 - bl Strcat -_02060DE4: - mov r0, r4 - bl MemFree - add sp, sp, #0x80 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02060DF4: .4byte 0x020A4654 -_02060DF8: .4byte 0x020A4664 -_02060DFC: .4byte 0x020B0A7C -_02060E00: .4byte 0x000038C9 -_02060E04: .4byte 0x000038CB -_02060E08: .4byte 0x000038CC -_02060E0C: .4byte 0x000038CA -_02060E10: .4byte 0x020A4644 -_02060E14: .4byte 0x020A4674 -_02060E18: .4byte 0x00003C2A -_02060E1C: .4byte 0x020A4678 -_02060E20: .4byte 0x020B0A98 - arm_func_end FUN_02060afc - - arm_func_start FUN_02060e24 -FUN_02060e24: @ 0x02060E24 - push {r3, r4, r5, lr} - mov r5, r0 - mov r0, #0x400 - mov r1, #0xf - bl MemAlloc - mov r4, r0 - ldr r1, _02060EA0 @ =0x020A4654 - mov r0, r5 - bl Strcpy - ldr r1, _02060EA4 @ =0x020A4664 - mov r0, r5 - bl Strcat - ldr r1, _02060EA8 @ =0x020B0A7C - mov r0, r4 - ldr r1, [r1, #8] - bl SprintfStatic - mov r0, r5 - mov r1, r4 - bl Strcat - ldr r1, _02060EAC @ =0x020A4644 - mov r0, r5 - bl Strcat - mov r0, r4 - ldr r1, _02060EB0 @ =0x00003C4D - bl GetStringFromFileVeneer - mov r0, r5 - mov r1, r4 - bl Strcat - mov r0, r4 - bl MemFree - pop {r3, r4, r5, pc} - .align 2, 0 -_02060EA0: .4byte 0x020A4654 -_02060EA4: .4byte 0x020A4664 -_02060EA8: .4byte 0x020B0A7C -_02060EAC: .4byte 0x020A4644 -_02060EB0: .4byte 0x00003C4D - arm_func_end FUN_02060e24 - - arm_func_start FUN_02060eb4 -FUN_02060eb4: @ 0x02060EB4 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #8 - ldr r8, [sp, #0x34] - mov r7, r0 - add r0, sp, #4 - mov r6, r1 - mov r5, r2 - mov fp, r3 - ldr r4, [sp, #0x30] - bl FUN_020022c4 - ldr r3, [r8, #8] - mov r0, #0 - ldrb r1, [r3] - ldr r2, [r3, #4] - ldrb r3, [r3, #1] - add r1, r2, r1 - ldr sb, _02060FCC @ =0x020B0AD8 - add r1, r3, r1 - str r1, [sp, #4] - ldr r1, [r8, #0x60] - ldrh r1, [r1] - strb r0, [r7] - ldr r0, _02060FD0 @ =0x00000FFF - add r8, r0, #0xf000 - b _02060FA8 -_02060F18: - ldr r0, _02060FD0 @ =0x00000FFF - ldr r2, [sb, #4] - and r0, r1, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - tst r1, #0x1000 - lsl r1, r0, #2 - add sl, r2, r0, lsl #2 - ldrh r1, [r2, r1] - add r0, sp, #4 - bne _02060F60 - bl FUN_020022d0 - ldrh r2, [sl, #2] - ldr r1, [sb, #0x14] - add r0, r2, r0 - lsl r0, r0, #1 - ldrh r1, [r1, r0] - b _02060FA8 -_02060F60: - bl FUN_020022d0 - ldrh r2, [sl, #2] - mov r1, #0x12c - mov r3, #0 - add sl, r2, r0 - ldr r2, _02060FD4 @ =0x020A3EA4 - lsl ip, sl, #1 - ldrh r2, [r2, ip] - mov r0, r6 - str r4, [sp] - bl PreprocessStringFromMessageId - mov r0, r7 - mov r1, r6 - mov r2, #0x400 - bl Strncat - ldr r1, [sb, #0x14] - lsl r0, sl, #1 - ldrh r1, [r1, r0] -_02060FA8: - cmp r1, r8 - bne _02060F18 - mov r0, fp - mov r2, r5 - mov r3, r7 - mov r1, #4 - bl FUN_02026214 - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02060FCC: .4byte 0x020B0AD8 -_02060FD0: .4byte 0x00000FFF -_02060FD4: .4byte 0x020A3EA4 - arm_func_end FUN_02060eb4 - - arm_func_start FUN_02060fd8 -FUN_02060fd8: @ 0x02060FD8 - push {r3, r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #0x14c - mov sb, r0 - mov r8, r1 - mov r0, #0x12c - mov r1, #0xf - bl MemAlloc - mov r4, r0 - mov r0, #0x400 - mov r1, #0xf - bl MemAlloc - ldr r1, [sb, #0x64] - mov r5, r0 - cmp r1, #0 - mov r7, #0 - beq _02061110 - ldr r1, [sb, #0x54] - cmp r1, #0 - ldrhne r2, [r1] - cmpne r2, #0 - bne _020610E8 - ldr r0, [sb, #0xc] - cmp r0, #0 - ldrbne r0, [r0] - cmpne r0, #0 - add r0, sp, #0x32 - bne _02061050 - ldr r1, _02061BD0 @ =0x000038C9 - bl GetStringFromFileVeneer - b _02061068 -_02061050: - mov r1, #0x2a - bl MemZero - ldr r1, [sb, #0xc] - add r0, sp, #0x32 - mov r2, #0xa - bl StrncpySimpleNoPadSafe -_02061068: - add r0, sp, #0x32 - str r0, [sp, #0x134] - ldr r0, [sb, #0x64] - ldrb r0, [r0] - cmp r0, #7 - addls pc, pc, r0, lsl #2 - b _020610B4 -_02061084: @ jump table - b _020610B4 @ case 0 - b _020610B4 @ case 1 - b _020610B4 @ case 2 - b _020610B4 @ case 3 - b _020610B4 @ case 4 - b _020610A4 @ case 5 - b _020610AC @ case 6 - b _020610A4 @ case 7 -_020610A4: - ldr r2, _02061BD4 @ =0x000038CB - b _020610B8 -_020610AC: - ldr r2, _02061BD8 @ =0x000038CC - b _020610B8 -_020610B4: - ldr r2, _02061BDC @ =0x000038CA -_020610B8: - add r6, sp, #0xfc - mov r0, r5 - mov r1, #0x100 - mov r3, #0 - str r6, [sp] - bl PreprocessStringFromMessageId - mov r0, r8 - mov r3, r5 - mov r1, #4 - mov r2, #0 - bl FUN_02026214 - b _02061124 -_020610E8: - mov r3, r7 - mov r2, #0x12 - bl FUN_0202568c - mov r2, r7 - strb r2, [r0] - mov r0, r8 - mov r3, r5 - mov r1, #4 - bl FUN_02026214 - b _02061124 -_02061110: - ldr r3, _02061BE0 @ =0x00003C1E - mov r0, r8 - mov r2, r7 - mov r1, #4 - bl FUN_02026268 -_02061124: - add r0, sp, #0xfc - bl InitPreprocessorArgs - ldrb r0, [sb, #0x45] - cmp r0, #9 - addls pc, pc, r0, lsl #2 - b _020613D4 -_0206113C: @ jump table - b _02061164 @ case 0 - b _020611C0 @ case 1 - b _020611E4 @ case 2 - b _02061210 @ case 3 - b _0206123C @ case 4 - b _02061268 @ case 5 - b _0206129C @ case 6 - b _020612EC @ case 7 - b _0206131C @ case 8 - b _02061370 @ case 9 -_02061164: - ldr r0, [sb, #0x64] - ldrb r0, [r0] - cmp r0, #7 - addls pc, pc, r0, lsl #2 - b _020611A8 -_02061178: @ jump table - b _020611A8 @ case 0 - b _020611A8 @ case 1 - b _020611A8 @ case 2 - b _020611A8 @ case 3 - b _020611A8 @ case 4 - b _02061198 @ case 5 - b _020611A0 @ case 6 - b _02061198 @ case 7 -_02061198: - ldr r3, _02061BE4 @ =0x000038CE - b _020611AC -_020611A0: - ldr r3, _02061BE8 @ =0x000038CF - b _020611AC -_020611A8: - ldr r3, _02061BEC @ =0x000038CD -_020611AC: - mov r0, r8 - mov r1, #4 - mov r2, #0x11 - bl FUN_02026268 - b _020613D4 -_020611C0: - add r1, sp, #0xfc - str r1, [sp] - mov r0, r5 - mov r1, r4 - mov r3, r8 - mov r2, #0x11 - str sb, [sp, #4] - bl FUN_02060eb4 - b _020613D4 -_020611E4: - ldrsh r2, [sb, #0x16] - add r1, sp, #0xfc - mov r0, r5 - str r2, [sp, #0x10c] - str r1, [sp] - mov r1, r4 - mov r3, r8 - mov r2, #0x11 - str sb, [sp, #4] - bl FUN_02060eb4 - b _020613D4 -_02061210: - ldrsh r2, [sb, #0x10] - add r1, sp, #0xfc - mov r0, r5 - str r2, [sp, #0xfc] - str r1, [sp] - mov r1, r4 - mov r3, r8 - mov r2, #0x11 - str sb, [sp, #4] - bl FUN_02060eb4 - b _020613D4 -_0206123C: - ldrsh r2, [sb, #0x12] - add r1, sp, #0xfc - mov r0, r5 - str r2, [sp, #0xfc] - str r1, [sp] - mov r1, r4 - mov r3, r8 - mov r2, #0x11 - str sb, [sp, #4] - bl FUN_02060eb4 - b _020613D4 -_02061268: - ldrsh r1, [sb, #0x12] - add r2, sp, #0xfc - mov r0, r5 - str r1, [sp, #0xfc] - ldrsh r6, [sb, #0x16] - mov r1, r4 - mov r3, r8 - str r6, [sp, #0x10c] - str r2, [sp] - mov r2, #0x11 - str sb, [sp, #4] - bl FUN_02060eb4 - b _020613D4 -_0206129C: - ldrsh r0, [sb, #0x16] - str r0, [sp, #0x10c] - ldr r0, [sb, #8] - ldrb r0, [r0] - bl DungeonGoesUp - cmp r0, #0 - ldr r0, [sb, #8] - mov r3, r8 - ldrbne r1, [r0, #1] - ldrbeq r0, [r0, #1] - mov r2, #0x11 - rsbeq r1, r0, #0 - str r1, [sp, #0x120] - add r0, sp, #0xfc - str r0, [sp] - mov r0, r5 - mov r1, r4 - str sb, [sp, #4] - bl FUN_02060eb4 - b _020613D4 -_020612EC: - ldr r0, [sb, #8] - add r2, sp, #0xfc - ldrb r3, [r0] - mov r0, r5 - mov r1, r4 - str r3, [sp, #0x10c] - str r2, [sp] - mov r3, r8 - mov r2, #0x11 - str sb, [sp, #4] - bl FUN_02060eb4 - b _020613D4 -_0206131C: - ldr r0, [sb, #8] - ldrb r0, [r0] - str r0, [sp, #0x10c] - ldr r0, [sb, #8] - ldrb r0, [r0] - bl DungeonGoesUp - cmp r0, #0 - ldr r0, [sb, #8] - mov r3, r8 - ldrbne r1, [r0, #1] - ldrbeq r0, [r0, #1] - mov r2, #0x11 - rsbeq r1, r0, #0 - str r1, [sp, #0x120] - add r0, sp, #0xfc - str r0, [sp] - mov r0, r5 - mov r1, r4 - str sb, [sp, #4] - bl FUN_02060eb4 - b _020613D4 -_02061370: - ldr r1, [sb, #0x58] - mov r0, r5 - mov r2, #0x12 - mov r3, #0 - bl FUN_0202568c - mov r1, #0 - strb r1, [r0] - mov r0, r8 - mov r3, r5 - mov r1, #4 - mov r2, #0x11 - bl FUN_02026214 - ldr r1, [sb, #0x58] - mov r0, r5 - add r1, r1, #0x24 - mov r2, #0x12 - mov r3, #0 - bl FUN_0202568c - mov r1, #0 - strb r1, [r0] - mov r0, r8 - mov r1, #4 - mov r2, #0x1e - mov r3, r5 - bl FUN_02026214 -_020613D4: - ldrb r1, [sb, #0x46] - cmp r1, #0xf - beq _02061518 - ldr r0, [sb, #0x64] - cmp r0, #0 - beq _02061418 - ldrb r0, [r0] - cmp r0, #7 - cmpne r0, #5 - bne _02061418 - mov r6, #0x2d - ldr r3, _02061BF0 @ =0x00003C21 - mov r0, r8 - mov r2, r6 - mov r1, #4 - bl FUN_02026268 - b _0206144C -_02061418: - cmp r1, #0xe - mov r6, #0x2d - mov r1, #4 - bne _0206143C - ldr r3, _02061BF4 @ =0x00003C20 - mov r0, r8 - mov r2, r6 - bl FUN_02026268 - b _0206144C -_0206143C: - ldr r3, _02061BF8 @ =0x00003C1F - mov r0, r8 - mov r2, r6 - bl FUN_02026268 -_0206144C: - ldrb r0, [sb, #0x46] - cmp r0, #0 - bne _020614BC - ldr r0, [sb, #0xc] - cmp r0, #0 - ldrbne r0, [r0] - cmpne r0, #0 - add r0, sp, #8 - bne _0206147C - ldr r1, _02061BD0 @ =0x000038C9 - bl GetStringFromFileVeneer - b _02061494 -_0206147C: - mov r1, #0x2a - bl MemZero - ldr r1, [sb, #0xc] - add r0, sp, #8 - mov r2, #0xa - bl StrncpySimpleNoPadSafe -_02061494: - ldr r1, _02061BFC @ =0x020A4688 - add r2, sp, #8 - mov r0, r4 - bl SprintfStatic - mov r0, r8 - mov r2, r6 - mov r3, r4 - mov r1, #0x42 - bl FUN_02026214 - b _02061518 -_020614BC: - ldr r0, [sb, #0x5c] - cmp r0, #0 - beq _020614EC - ldrb r0, [r0, #1] - cmp r0, #0xe - bne _020614EC - ldr r3, _02061C00 @ =0x00003C37 - mov r0, r8 - mov r2, r6 - mov r1, #0x42 - bl FUN_02026268 - b _02061518 -_020614EC: - ldrsh r0, [sb, #0x10] - bl GetNameString - mov r2, r0 - ldr r1, _02061C04 @ =0x020A4698 - mov r0, r4 - bl SprintfStatic - mov r2, r6 - mov r0, r8 - mov r1, #0x42 - mov r3, r4 - bl FUN_02026214 -_02061518: - ldrb r2, [sb, #0x48] - ldr r1, _02061C08 @ =0x020A3B9C - mov r0, r5 - lsl r2, r2, #1 - ldrh r1, [r1, r2] - bl GetStringFromFileVeneer - ldrb r0, [sb, #0x48] - mov r3, r5 - mov r2, #0x2d - add r0, r0, #0xfc - and r0, r0, #0xff - cmp r0, #2 - movls r1, #0x43 - movhi r1, #0x40 - mov r0, r8 - add r1, r1, #0x6c - bl FUN_02026214 - ldr r3, _02061C0C @ =0x020A46A8 - mov r0, r8 - mov r1, #0x6c - mov r2, #1 - bl FUN_02026214 - ldr r3, _02061C10 @ =0x00003C22 - mov r0, r8 - mov r1, #4 - mov r2, #0x3a - bl FUN_02026268 - ldrb r2, [sb, #0x46] - ldrsh r6, [sb, #0x16] - mov r0, r4 - cmp r2, #0xe - ldrsheq r3, [sb, #0x10] - mov r1, #0x12c - ldrshne r3, [sb, #0x12] - str r6, [sp] - bl FUN_02061dc8 - mov r0, r8 - mov r3, r4 - mov r1, #0x42 - mov r2, #0x3a - bl FUN_02026214 - add r7, r7, #0x47 - ldr r3, _02061C14 @ =0x00003C23 - mov r0, r8 - mov r1, #4 - mov r2, r7 - bl FUN_02026268 - mov r0, sb - mov r1, r4 - mov r2, #0x100 - bl FUN_02061fdc - mov r0, r8 - mov r1, #0x42 - mov r2, r7 - mov r3, r4 - bl FUN_02026214 - ldrb r0, [sb, #0x46] - cmp r0, #0 - beq _020616C8 - add r7, r7, #0xd - ldr r3, _02061C18 @ =0x00003C24 - mov r0, r8 - mov r2, r7 - mov r1, #4 - bl FUN_02026268 - add r0, sp, #0xfc - bl InitPreprocessorArgs - ldrb r0, [sb, #0x49] - cmp r0, #0 - bne _02061670 - ldrb r0, [sb, #0x4c] - cmp r0, #0 - beq _02061660 - ldr r2, _02061C1C @ =0x00003C26 - str r0, [sp, #0x10c] - add r6, sp, #0xfc - mov r0, r4 - mov r1, #0x100 - mov r3, #0 - str r6, [sp] - bl PreprocessStringFromMessageId - b _020616B4 -_02061660: - ldr r1, _02061C20 @ =0x00003C25 - mov r0, r4 - bl GetStringFromFileVeneer - b _020616B4 -_02061670: - cmp r0, #1 - bne _020616B4 - ldrsh r0, [sb, #0x4a] - cmp r0, #0 - beq _020616A8 - ldr r2, _02061C24 @ =0x00003C27 - str r0, [sp, #0xfc] - add r6, sp, #0xfc - mov r0, r4 - mov r1, #0x100 - mov r3, #0 - str r6, [sp] - bl PreprocessStringFromMessageId - b _020616B4 -_020616A8: - ldr r1, _02061C20 @ =0x00003C25 - mov r0, r4 - bl GetStringFromFileVeneer -_020616B4: - mov r0, r8 - mov r2, r7 - mov r3, r4 - mov r1, #0x42 - bl FUN_02026214 -_020616C8: - ldr r1, [sb, #0x5c] - cmp r1, #0 - beq _02061710 - ldrb r0, [r1, #1] - cmp r0, #0xe - bne _02061710 - add r7, r7, #0xd - ldr r3, _02061C28 @ =0x00003C28 - mov r0, r8 - mov r2, r7 - mov r1, #4 - bl FUN_02026268 - ldr r3, _02061C2C @ =0x00003C2A - mov r0, r8 - mov r2, r7 - mov r1, #0x42 - bl FUN_02026268 - b _020617D4 -_02061710: - ldrb r0, [sb, #0x46] - cmp r0, #0 - bne _02061740 - ldr r0, [sb, #8] - mov r1, #0 - bl FUN_02062d9c - mov sl, r0 - ldr r0, [sb, #8] - mov r1, #0 - bl FUN_02062d5c - ldr r1, _02061C30 @ =0x020A3D6C - b _02061764 -_02061740: - ldrb r1, [r1, #1] - ldr r0, [sb, #8] - bl FUN_02062d9c - ldr r1, [sb, #0x5c] - mov sl, r0 - ldrb r1, [r1, #1] - ldr r0, [sb, #8] - bl FUN_02062d5c - ldr r1, _02061C30 @ =0x020A3D6C -_02061764: - add r7, r7, #0xd - ldr r6, [r1, r0, lsl #2] - ldr r3, _02061C28 @ =0x00003C28 - mov r0, r8 - mov r2, r7 - mov r1, #4 - bl FUN_02026268 - ldr r1, _02061C34 @ =0x020B0A98 - mov r0, r8 - ldr r3, [r1, sl, lsl #2] - mov r2, r7 - mov r1, #0x42 - bl FUN_02026214 - add r0, sp, #0xfc - bl InitPreprocessorArgs - str r6, [sp, #0x120] - add r1, sp, #0xfc - str r1, [sp] - ldr r2, _02061C38 @ =0x00003C29 - mov r0, r4 - mov r1, #0x100 - mov r3, #0 - bl PreprocessStringFromMessageId - mov r0, r8 - mov r1, #0x56 - mov r2, r7 - mov r3, r4 - bl FUN_02026214 -_020617D4: - ldr r1, [sb, #0x64] - cmp r1, #0 - bne _02061AAC - ldrb r0, [sb, #0x46] - cmp r0, #0xf - beq _02061AAC - cmp r0, #0xe - add r6, r7, #0xd - mov r1, #4 - bne _02061810 - ldr r3, _02061C3C @ =0x00003C2C - mov r0, r8 - mov r2, r6 - bl FUN_02026268 - b _02061820 -_02061810: - ldr r3, _02061C40 @ =0x00003C2B - mov r0, r8 - mov r2, r6 - bl FUN_02026268 -_02061820: - ldrb r1, [sb, #0x1a] - cmp r1, #7 - addls pc, pc, r1, lsl #2 - b _02061A88 -_02061830: @ jump table - b _02061850 @ case 0 - b _020618A0 @ case 1 - b _020618F0 @ case 2 - b _02061940 @ case 3 - b _02061990 @ case 4 - b _020619E0 @ case 5 - b _02061A0C @ case 6 - b _02061A5C @ case 7 -_02061850: - ldr r1, [sb, #0x20] - ldr r0, _02061C44 @ =0x020A3BDC - str r1, [sp, #0xd0] - ldrb r1, [sb, #0x1a] - lsl r1, r1, #1 - ldrh r0, [r0, r1] - bl StringFromMessageId - add r3, sp, #0xac - mov r2, r0 - str r3, [sp] - mov r0, r4 - mov r1, #0x12c - mov r3, #4 - bl PreprocessString - mov r2, r6 - mov r0, r8 - mov r1, #0x42 - mov r3, r4 - bl FUN_02026214 - b _02061BA4 -_020618A0: - ldr r1, [sb, #0x20] - ldr r0, _02061C44 @ =0x020A3BDC - str r1, [sp, #0xd0] - ldrb r1, [sb, #0x1a] - lsl r1, r1, #1 - ldrh r0, [r0, r1] - bl StringFromMessageId - add r3, sp, #0xac - mov r2, r0 - str r3, [sp] - mov r0, r4 - mov r1, #0x12c - mov r3, #4 - bl PreprocessString - mov r2, r6 - mov r0, r8 - mov r1, #0x42 - mov r3, r4 - bl FUN_02026214 - b _02061BA4 -_020618F0: - ldrsh r1, [sb, #0x2c] - ldr r0, _02061C44 @ =0x020A3BDC - str r1, [sp, #0xbc] - ldrb r1, [sb, #0x1a] - lsl r1, r1, #1 - ldrh r0, [r0, r1] - bl StringFromMessageId - add r3, sp, #0xac - mov r2, r0 - str r3, [sp] - mov r0, r4 - mov r1, #0x12c - mov r3, #4 - bl PreprocessString - mov r2, r6 - mov r0, r8 - mov r1, #0x42 - mov r3, r4 - bl FUN_02026214 - b _02061BA4 -_02061940: - ldrsh r1, [sb, #0x2c] - ldr r0, _02061C44 @ =0x020A3BDC - str r1, [sp, #0xbc] - ldrb r1, [sb, #0x1a] - lsl r1, r1, #1 - ldrh r0, [r0, r1] - bl StringFromMessageId - add r3, sp, #0xac - mov r2, r0 - str r3, [sp] - mov r0, r4 - mov r1, #0x12c - mov r3, #4 - bl PreprocessString - mov r2, r6 - mov r0, r8 - mov r1, #0x42 - mov r3, r4 - bl FUN_02026214 - b _02061BA4 -_02061990: - ldrsh r1, [sb, #0x2c] - ldr r0, _02061C44 @ =0x020A3BDC - str r1, [sp, #0xbc] - ldrb r1, [sb, #0x1a] - lsl r1, r1, #1 - ldrh r0, [r0, r1] - bl StringFromMessageId - add r3, sp, #0xac - mov r2, r0 - str r3, [sp] - mov r0, r4 - mov r1, #0x12c - mov r3, #4 - bl PreprocessString - mov r2, r6 - mov r0, r8 - mov r1, #0x42 - mov r3, r4 - bl FUN_02026214 - b _02061BA4 -_020619E0: - ldr r0, _02061C44 @ =0x020A3BDC - lsl r1, r1, #1 - ldrh r1, [r0, r1] - mov r0, r5 - bl GetStringFromFileVeneer - mov r0, r8 - mov r2, r6 - mov r3, r5 - mov r1, #0x42 - bl FUN_02026214 - b _02061BA4 -_02061A0C: - ldrsh r1, [sb, #0x3c] - ldr r0, _02061C44 @ =0x020A3BDC - str r1, [sp, #0xac] - ldrb r1, [sb, #0x1a] - lsl r1, r1, #1 - ldrh r0, [r0, r1] - bl StringFromMessageId - add r3, sp, #0xac - mov r2, r0 - str r3, [sp] - mov r0, r4 - mov r1, #0x12c - mov r3, #4 - bl PreprocessString - mov r2, r6 - mov r0, r8 - mov r1, #0x42 - mov r3, r4 - bl FUN_02026214 - b _02061BA4 -_02061A5C: - ldr r0, _02061C44 @ =0x020A3BDC - lsl r1, r1, #1 - ldrh r1, [r0, r1] - mov r0, r5 - bl GetStringFromFileVeneer - mov r0, r8 - mov r2, r6 - mov r3, r5 - mov r1, #0x42 - bl FUN_02026214 - b _02061BA4 -_02061A88: - ldr r1, _02061C48 @ =0x000038DF - mov r0, r5 - bl GetStringFromFileVeneer - mov r0, r8 - mov r2, r6 - mov r3, r5 - mov r1, #0x42 - bl FUN_02026214 - b _02061BA4 -_02061AAC: - cmp r1, #0 - beq _02061BA4 - ldrb r0, [r1] - cmp r0, #7 - cmpne r0, #5 - bne _02061BA4 - add r0, sp, #0x5c - bl InitPreprocessorArgs - ldrb r0, [sb, #0x1a] - cmp r0, #2 - bne _02061B48 - ldr r3, _02061C4C @ =0x00003C2D - mov r0, r8 - add r2, r7, #0xd - mov r1, #4 - bl FUN_02026268 - mov r6, #0 - ldr r2, _02061C50 @ =0x020A3CBC - mov r0, r5 - add r1, sb, #0x28 - mov r3, #1 - str r6, [sp] - bl FUN_0200d310 - ldr r0, _02061C54 @ =0x00003C2E - str r5, [sp, #0x94] - bl StringFromMessageId - add r1, sp, #0x5c - mov r2, r0 - str r1, [sp] - mov r0, r4 - mov r1, #0x12c - mov r3, #4 - bl PreprocessString - mov r0, r8 - mov r1, #0x42 - add r2, r7, #0xd - mov r3, r4 - bl FUN_02026214 - b _02061BA4 -_02061B48: - cmp r0, #6 - bne _02061BA4 - ldr r3, _02061C58 @ =0x00003C2F - mov r0, r8 - add r2, r7, #0xd - mov r1, #4 - bl FUN_02026268 - ldrsh r1, [sb, #0x3c] - ldr r0, _02061C5C @ =0x00003C30 - str r1, [sp, #0x5c] - bl StringFromMessageId - add r1, sp, #0x5c - mov r2, r0 - str r1, [sp] - mov r0, r4 - mov r1, #0x12c - mov r3, #4 - bl PreprocessString - mov r0, r8 - mov r1, #0x42 - add r2, r7, #0xd - mov r3, r4 - bl FUN_02026214 -_02061BA4: - ldrb r1, [sb, #0x45] - ldr r2, [sb, #0x5c] - mov r0, r8 - add r3, r7, #0x1a - bl FUN_02061cc8 - mov r0, r4 - bl MemFree - mov r0, r5 - bl MemFree - add sp, sp, #0x14c - pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_02061BD0: .4byte 0x000038C9 -_02061BD4: .4byte 0x000038CB -_02061BD8: .4byte 0x000038CC -_02061BDC: .4byte 0x000038CA -_02061BE0: .4byte 0x00003C1E -_02061BE4: .4byte 0x000038CE -_02061BE8: .4byte 0x000038CF -_02061BEC: .4byte 0x000038CD -_02061BF0: .4byte 0x00003C21 -_02061BF4: .4byte 0x00003C20 -_02061BF8: .4byte 0x00003C1F -_02061BFC: .4byte 0x020A4688 -_02061C00: .4byte 0x00003C37 -_02061C04: .4byte 0x020A4698 -_02061C08: .4byte 0x020A3B9C -_02061C0C: .4byte 0x020A46A8 -_02061C10: .4byte 0x00003C22 -_02061C14: .4byte 0x00003C23 -_02061C18: .4byte 0x00003C24 -_02061C1C: .4byte 0x00003C26 -_02061C20: .4byte 0x00003C25 -_02061C24: .4byte 0x00003C27 -_02061C28: .4byte 0x00003C28 -_02061C2C: .4byte 0x00003C2A -_02061C30: .4byte 0x020A3D6C -_02061C34: .4byte 0x020B0A98 -_02061C38: .4byte 0x00003C29 -_02061C3C: .4byte 0x00003C2C -_02061C40: .4byte 0x00003C2B -_02061C44: .4byte 0x020A3BDC -_02061C48: .4byte 0x000038DF -_02061C4C: .4byte 0x00003C2D -_02061C50: .4byte 0x020A3CBC -_02061C54: .4byte 0x00003C2E -_02061C58: .4byte 0x00003C2F -_02061C5C: .4byte 0x00003C30 - arm_func_end FUN_02060fd8 - - arm_func_start FUN_02061c60 -FUN_02061c60: @ 0x02061C60 - push {r3, r4, r5, lr} - ldr r3, _02061CBC @ =0x00003C1E - mov r4, r1 - mov r1, #4 - mov r2, #0 - mov r5, r0 - bl FUN_02026268 - ldr r3, _02061CC0 @ =0x020A46A8 - mov r0, r5 - mov r1, #0x6c - mov r2, #1 - bl FUN_02026214 - ldr r3, _02061CC4 @ =0x00003C4E - mov r0, r5 - mov r1, #4 - mov r2, #0x11 - bl FUN_02026268 - mov r0, r5 - mov r2, r4 - mov r1, #1 - mov r3, #0x7b - bl FUN_02061cc8 - pop {r3, r4, r5, pc} - .align 2, 0 -_02061CBC: .4byte 0x00003C1E -_02061CC0: .4byte 0x020A46A8 -_02061CC4: .4byte 0x00003C4E - arm_func_end FUN_02061c60 - - arm_func_start FUN_02061cc8 -FUN_02061cc8: @ 0x02061CC8 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x28 - mov r4, r2 - cmp r1, #9 - cmpne r1, #0 - mov sl, r0 - mov sb, r3 - cmpne r4, #0 - beq _02061DB8 - ldrb r1, [r4] - cmp r1, #4 - bne _02061DB8 - ldr r3, _02061DC4 @ =0x00003C31 - mov r2, sb - mov r1, #4 - bl FUN_02026268 - add r0, sp, #4 - mov r1, r4 - add sb, sb, #0xd - bl FUN_0204de7c - mov r7, #0 - mov fp, #0x44 - add r6, sp, #4 - mov r4, #0xb - b _02061DB0 -_02061D2C: - beq _02061DB8 - cmp r7, #5 - movlt r8, fp - blt _02061D60 - cmp r7, #0xc - movlt r8, #0x43 - blt _02061D60 - cmp r7, #0x16 - movlt r8, #0x44 - blt _02061D60 - cmp r7, #0x1d - movlt r8, #0x43 - movge r8, #0x44 -_02061D60: - ldrb r0, [r6, r7] - bl FUN_020251f0 - mov r5, r0 - mov r0, r7 - mov r1, #0x11 - bl DivideInt - mul r2, r1, r4 - and r0, r8, #0xff - str r0, [sp] - add r1, r2, #0x13 - mov r3, r5 - mov r0, sl - mov r2, sb - bl FUN_020264f8 - add r0, r7, #1 - mov r1, #0x11 - bl DivideInt - cmp r1, #0 - addeq sb, sb, #0xd - add r7, r7, #1 -_02061DB0: - cmp r7, #0x22 - blt _02061D2C -_02061DB8: - mov r0, sb - add sp, sp, #0x28 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02061DC4: .4byte 0x00003C31 - arm_func_end FUN_02061cc8 - - arm_func_start FUN_02061dc8 -FUN_02061dc8: @ 0x02061DC8 - push {r4, r5, r6, r7, lr} - sub sp, sp, #0x54 - mov r5, r0 - add r0, sp, #4 - mov r7, r2 - mov r4, r1 - mov r6, r3 - bl InitPreprocessorArgs - cmp r7, #0xf - addls pc, pc, r7, lsl #2 - b _02061EE4 -_02061DF4: @ jump table - b _02061E34 @ case 0 - b _02061E4C @ case 1 - b _02061E3C @ case 2 - b _02061E5C @ case 3 - b _02061EAC @ case 4 - b _02061E8C @ case 5 - b _02061E68 @ case 6 - b _02061E74 @ case 7 - b _02061E80 @ case 8 - b _02061EE4 @ case 9 - b _02061E98 @ case 10 - b _02061EA4 @ case 11 - b _02061EB8 @ case 12 - b _02061EC4 @ case 13 - b _02061ED0 @ case 14 - b _02061EDC @ case 15 -_02061E34: - ldr r2, _02061F08 @ =0x00003C38 - b _02061EE8 -_02061E3C: - ldrsh r0, [sp, #0x68] - ldr r2, _02061F0C @ =0x00003C3A - str r0, [sp, #0x14] - b _02061EE8 -_02061E4C: - ldrsh r0, [sp, #0x68] - ldr r2, _02061F10 @ =0x00003C39 - str r0, [sp, #0x14] - b _02061EE8 -_02061E5C: - str r6, [sp, #4] - ldr r2, _02061F14 @ =0x00003C3B - b _02061EE8 -_02061E68: - str r6, [sp, #4] - ldr r2, _02061F18 @ =0x00003C3E - b _02061EE8 -_02061E74: - str r6, [sp, #4] - ldr r2, _02061F1C @ =0x00003C3F - b _02061EE8 -_02061E80: - str r6, [sp, #4] - mov r2, #0x3c40 - b _02061EE8 -_02061E8C: - str r6, [sp, #4] - ldr r2, _02061F20 @ =0x00003C3D - b _02061EE8 -_02061E98: - str r6, [sp, #4] - ldr r2, _02061F24 @ =0x00003C42 - b _02061EE8 -_02061EA4: - ldr r2, _02061F28 @ =0x00003C43 - b _02061EE8 -_02061EAC: - str r6, [sp, #4] - ldr r2, _02061F2C @ =0x00003C3C - b _02061EE8 -_02061EB8: - str r6, [sp, #4] - ldr r2, _02061F30 @ =0x00003C41 - b _02061EE8 -_02061EC4: - str r6, [sp, #4] - ldr r2, _02061F34 @ =0x00003C44 - b _02061EE8 -_02061ED0: - str r6, [sp, #4] - ldr r2, _02061F38 @ =0x00003C45 - b _02061EE8 -_02061EDC: - ldr r2, _02061F3C @ =0x00003C47 - b _02061EE8 -_02061EE4: - ldr r2, _02061F40 @ =0x00003C46 -_02061EE8: - add ip, sp, #4 - mov r0, r5 - mov r1, r4 - mov r3, #0 - str ip, [sp] - bl PreprocessStringFromMessageId - add sp, sp, #0x54 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_02061F08: .4byte 0x00003C38 -_02061F0C: .4byte 0x00003C3A -_02061F10: .4byte 0x00003C39 -_02061F14: .4byte 0x00003C3B -_02061F18: .4byte 0x00003C3E -_02061F1C: .4byte 0x00003C3F -_02061F20: .4byte 0x00003C3D -_02061F24: .4byte 0x00003C42 -_02061F28: .4byte 0x00003C43 -_02061F2C: .4byte 0x00003C3C -_02061F30: .4byte 0x00003C41 -_02061F34: .4byte 0x00003C44 -_02061F38: .4byte 0x00003C45 -_02061F3C: .4byte 0x00003C47 -_02061F40: .4byte 0x00003C46 - arm_func_end FUN_02061dc8 - - arm_func_start FUN_02061f44 -FUN_02061f44: @ 0x02061F44 - push {r3, r4, r5, r6, lr} - sub sp, sp, #0x6c - mov r4, r2 - mov r5, r1 - mov r6, r0 - add r1, sp, #4 - mov r0, r4 - bl FUN_02060274 - ldrb r2, [sp, #0x4a] - ldrsh ip, [r4, #0x14] - mov r0, r6 - cmp r2, #0xe - ldrsheq r3, [r4, #0xe] - mov r1, r5 - ldrshne r3, [r4, #0x10] - str ip, [sp] - bl FUN_02061dc8 - add sp, sp, #0x6c - pop {r3, r4, r5, r6, pc} - arm_func_end FUN_02061f44 - - arm_func_start FUN_02061f90 -FUN_02061f90: @ 0x02061F90 - push {r4, r5, r6, lr} - sub sp, sp, #0x68 - mov r4, r2 - mov r5, r1 - mov r6, r0 - add r1, sp, #0 - mov r0, r4 - bl FUN_02060274 - add ip, r4, #4 - mov r3, #0 - add r0, sp, #0 - mov r1, r6 - mov r2, r5 - str ip, [sp, #8] - str r3, [sp, #0x64] - str r4, [sp, #0x5c] - bl FUN_02061fdc - add sp, sp, #0x68 - pop {r4, r5, r6, pc} - arm_func_end FUN_02061f90 - - arm_func_start FUN_02061fdc -FUN_02061fdc: @ 0x02061FDC - push {r4, r5, r6, r7, lr} - sub sp, sp, #0x54 - mov r7, r0 - ldr r0, [r7, #8] - mov r6, r1 - ldrb r0, [r0] - mov r5, r2 - bl DungeonSwapIdToIdx - mov r4, r0 - add r0, sp, #4 - bl InitPreprocessorArgs - ldr r0, [r7, #0x64] - cmp r0, #0 - ldrbne r0, [r0] - cmpne r0, #7 - cmpne r0, #5 - beq _0206205C - mov r0, r4 - bl GetDungeonMode - cmp r0, #0 - bne _0206205C - ldr r0, [r7, #8] - ldr r2, _020621FC @ =0x00003C35 - ldrb r1, [r0] - add r4, sp, #4 - mov r0, r6 - str r1, [sp, #0x14] - mov r1, r5 - mov r3, #0 - str r4, [sp] - bl PreprocessStringFromMessageId - b _020621F4 -_0206205C: - ldrb r0, [r7, #0x46] - cmp r0, #0xf - bne _020620AC - ldr r0, [r7, #8] - ldrb r0, [r0] - bl DungeonGoesUp - cmp r0, #0 - ldr r0, [r7, #8] - ldr r2, _02062200 @ =0x00003C34 - ldrbne r0, [r0, #1] - add r4, sp, #4 - mov r1, r5 - ldrbeq r0, [r0, #1] - mov r3, #0 - rsbeq r0, r0, #0 - str r0, [sp, #0x28] - mov r0, r6 - str r4, [sp] - bl PreprocessStringFromMessageId - b _020621F4 -_020620AC: - ldr r1, [r7, #0x5c] - cmp r1, #0 - beq _020620F8 - ldrb r0, [r1, #1] - cmp r0, #0xb - ldrbeq r0, [r1, #2] - cmpeq r0, #5 - bne _020620F8 - ldr r0, [r7, #8] - ldr r2, _02062204 @ =0x00003C36 - ldrb r1, [r0] - add r4, sp, #4 - mov r0, r6 - str r1, [sp, #0x14] - mov r1, r5 - mov r3, #0 - str r4, [sp] - bl PreprocessStringFromMessageId - b _020621F4 -_020620F8: - cmp r1, #0 - beq _02062150 - ldrb r0, [r1, #1] - cmp r0, #6 - ldrbeq r0, [r1, #2] - cmpeq r0, #4 - beq _02062150 - mov r0, r4 - bl GetDungeonMode - cmp r0, #0 - bne _02062150 - ldr r0, [r7, #8] - ldr r2, _020621FC @ =0x00003C35 - ldrb r1, [r0] - add r4, sp, #4 - mov r0, r6 - str r1, [sp, #0x14] - mov r1, r5 - mov r3, #0 - str r4, [sp] - bl PreprocessStringFromMessageId - b _020621F4 -_02062150: - ldrb r0, [r7, #0x46] - mov r1, #0x20000 - cmp r0, #0xc - beq _020621A0 - ldr r2, [r7, #0x5c] - cmp r2, #0 - beq _020621A4 - ldrb r3, [r2, #1] - cmp r3, #0xe - beq _020621A0 - cmp r3, #6 - ldrbeq r0, [r2, #2] - cmpeq r0, #4 - beq _020621A0 - cmp r3, #3 - ldrbeq r0, [r2, #2] - cmpeq r0, #3 - beq _020621A0 - cmp r3, #5 - bne _020621A4 -_020621A0: - mov r1, #0 -_020621A4: - ldr r0, [r7, #8] - ldrb r0, [r0] - orr r0, r0, r1 - str r0, [sp, #0x14] - ldr r0, [r7, #8] - ldrb r0, [r0] - bl DungeonGoesUp - cmp r0, #0 - ldr r0, [r7, #8] - ldr r2, _02062208 @ =0x00003C32 - ldrbne r0, [r0, #1] - add r4, sp, #4 - mov r1, r5 - ldrbeq r0, [r0, #1] - mov r3, #0 - rsbeq r0, r0, #0 - str r0, [sp, #0x28] - mov r0, r6 - str r4, [sp] - bl PreprocessStringFromMessageId -_020621F4: - add sp, sp, #0x54 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_020621FC: .4byte 0x00003C35 -_02062200: .4byte 0x00003C34 -_02062204: .4byte 0x00003C36 -_02062208: .4byte 0x00003C32 - arm_func_end FUN_02061fdc - - arm_func_start FUN_0206220c -FUN_0206220c: @ 0x0206220C - push {r3, lr} - mov ip, r0 - mov r0, #0 - mov r2, r1 - mov r3, r0 - b _02062234 -_02062224: - lsl r1, r3, #1 - ldrh r1, [r2, r1] - add r3, r3, #1 - add r0, r0, r1 -_02062234: - cmp r3, ip - blo _02062224 - mov r1, ip - bl FUN_02062248 - pop {r3, pc} - arm_func_end FUN_0206220c - - arm_func_start FUN_02062248 -FUN_02062248: @ 0x02062248 - push {r4, r5, r6, lr} - mov r4, #0 - mov r6, r1 - mov r5, r2 - bl RandIntSafe - mov r2, r4 - b _02062280 -_02062264: - lsl r1, r2, #1 - ldrh r1, [r5, r1] - add r4, r4, r1 - cmp r0, r4 - movlo r0, r2 - poplo {r4, r5, r6, pc} - add r2, r2, #1 -_02062280: - cmp r2, r6 - blo _02062264 - mvn r0, #0 - pop {r4, r5, r6, pc} - arm_func_end FUN_02062248 - - arm_func_start FUN_02062290 -FUN_02062290: @ 0x02062290 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov r4, r0 - mov r0, #0x4e - mov r1, #0xf - mov r6, #0 - bl MemAlloc - mov r7, r0 - cmp r4, #3 - addls pc, pc, r4, lsl #2 - b _02062524 -_020622B8: @ jump table - b _020622C8 @ case 0 - b _02062360 @ case 1 - b _020623F8 @ case 2 - b _02062490 @ case 3 -_020622C8: - bl FUN_02050c74 - mov r8, r0 - bl GetScenarioBalance - ldr r4, _02062544 @ =0x020B0AD8 - mov sb, r0 - mov sl, r6 - mov fp, #0x16 - mov r5, r6 -_020622E8: - ldr r0, [r4, #0xc] - add r1, r0, sl, lsl #4 - ldrb r0, [r1, #8] - cmp r8, r0 - blo _0206233C - ldrb r0, [r1, #9] - cmp sb, r0 - blt _0206233C - ldrh r0, [r1, #0xa] - cmp r0, #0 - beq _02062324 - mov r0, fp - bl GetPerformanceFlagWithChecks - cmp r0, #0 - beq _0206233C -_02062324: - ldr r1, [r4, #0xc] - lsl r0, sl, #4 - ldrh r1, [r1, r0] - lsl r0, sl, #1 - strh r1, [r7, r0] - b _02062344 -_0206233C: - lsl r0, sl, #1 - strh r5, [r7, r0] -_02062344: - lsl r0, sl, #1 - ldrh r0, [r7, r0] - add sl, sl, #1 - cmp sl, #0x27 - add r6, r6, r0 - blt _020622E8 - b _02062524 -_02062360: - bl FUN_02050c74 - mov r8, r0 - bl GetScenarioBalance - ldr r4, _02062544 @ =0x020B0AD8 - mov sb, r0 - mov sl, r6 - mov fp, #0x16 - mov r5, r6 -_02062380: - ldr r0, [r4, #0xc] - add r1, r0, sl, lsl #4 - ldrb r0, [r1, #8] - cmp r8, r0 - blo _020623D4 - ldrb r0, [r1, #9] - cmp sb, r0 - blt _020623D4 - ldrh r0, [r1, #0xa] - cmp r0, #0 - beq _020623BC - mov r0, fp - bl GetPerformanceFlagWithChecks - cmp r0, #0 - beq _020623D4 -_020623BC: - ldr r1, [r4, #0xc] - lsl r0, sl, #1 - add r1, r1, sl, lsl #4 - ldrh r1, [r1, #2] - strh r1, [r7, r0] - b _020623DC -_020623D4: - lsl r0, sl, #1 - strh r5, [r7, r0] -_020623DC: - lsl r0, sl, #1 - ldrh r0, [r7, r0] - add sl, sl, #1 - cmp sl, #0x27 - add r6, r6, r0 - blt _02062380 - b _02062524 -_020623F8: - bl FUN_02050c74 - mov r8, r0 - bl GetScenarioBalance - ldr r4, _02062544 @ =0x020B0AD8 - mov sb, r0 - mov sl, r6 - mov fp, #0x16 - mov r5, r6 -_02062418: - ldr r0, [r4, #0xc] - add r1, r0, sl, lsl #4 - ldrb r0, [r1, #8] - cmp r8, r0 - blo _0206246C - ldrb r0, [r1, #9] - cmp sb, r0 - blt _0206246C - ldrh r0, [r1, #0xa] - cmp r0, #0 - beq _02062454 - mov r0, fp - bl GetPerformanceFlagWithChecks - cmp r0, #0 - beq _0206246C -_02062454: - ldr r1, [r4, #0xc] - lsl r0, sl, #1 - add r1, r1, sl, lsl #4 - ldrh r1, [r1, #4] - strh r1, [r7, r0] - b _02062474 -_0206246C: - lsl r0, sl, #1 - strh r5, [r7, r0] -_02062474: - lsl r0, sl, #1 - ldrh r0, [r7, r0] - add sl, sl, #1 - cmp sl, #0x27 - add r6, r6, r0 - blt _02062418 - b _02062524 -_02062490: - bl FUN_02050c74 - mov r8, r0 - bl GetScenarioBalance - ldr r4, _02062544 @ =0x020B0AD8 - mov sb, r0 - mov sl, r6 - mov fp, #0x16 - mov r5, r6 -_020624B0: - ldr r0, [r4, #0xc] - add r1, r0, sl, lsl #4 - ldrb r0, [r1, #8] - cmp r8, r0 - blo _02062504 - ldrb r0, [r1, #9] - cmp sb, r0 - blt _02062504 - ldrh r0, [r1, #0xa] - cmp r0, #0 - beq _020624EC - mov r0, fp - bl GetPerformanceFlagWithChecks - cmp r0, #0 - beq _02062504 -_020624EC: - ldr r1, [r4, #0xc] - lsl r0, sl, #1 - add r1, r1, sl, lsl #4 - ldrh r1, [r1, #6] - strh r1, [r7, r0] - b _0206250C -_02062504: - lsl r0, sl, #1 - strh r5, [r7, r0] -_0206250C: - lsl r0, sl, #1 - ldrh r0, [r7, r0] - add sl, sl, #1 - cmp sl, #0x27 - add r6, r6, r0 - blt _020624B0 -_02062524: - ldr r0, _02062544 @ =0x020B0AD8 - cmp r6, #0 - str r6, [r0, #0x20] - str r7, [r0, #0x1c] - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02062544: .4byte 0x020B0AD8 - arm_func_end FUN_02062290 - - arm_func_start FUN_02062548 -FUN_02062548: @ 0x02062548 - push {r3, lr} - ldr r0, _02062574 @ =0x020B0AD8 - ldr r0, [r0, #0x1c] - cmp r0, #0 - popeq {r3, pc} - bl MemFree - ldr r0, _02062574 @ =0x020B0AD8 - mov r1, #0 - str r1, [r0, #0x1c] - str r1, [r0, #0x20] - pop {r3, pc} - .align 2, 0 -_02062574: .4byte 0x020B0AD8 - arm_func_end FUN_02062548 - - arm_func_start FUN_02062578 -FUN_02062578: @ 0x02062578 - push {r4, lr} - ldr r2, _02062768 @ =0x020B0AD8 - mov r1, #0x258 - ldr r0, [r2, #0x20] - ldr r2, [r2, #0x1c] - bl FUN_02062248 - movs r4, r0 - bmi _02062760 - ldr r0, _02062768 @ =0x020B0AD8 - ldr r0, [r0, #0xc] - add r0, r0, r4, lsl #4 - ldrh r0, [r0, #0xc] - bl RandInt - ldr r2, _02062768 @ =0x020B0AD8 - mov r1, #0x22 - ldr r3, [r2, #0xc] - ldr r2, [r2, #0x18] - add r3, r3, r4, lsl #4 - ldrh r3, [r3, #0xe] - add r0, r3, r0 - mla r4, r0, r1, r2 - ldrb r0, [r4, #0x20] - cmp r0, #0xe - addls pc, pc, r0, lsl #2 - b _02062750 -_020625DC: @ jump table - b _02062750 @ case 0 - b _02062750 @ case 1 - b _02062750 @ case 2 - b _02062660 @ case 3 - b _02062750 @ case 4 - b _02062750 @ case 5 - b _02062618 @ case 6 - b _02062750 @ case 7 - b _02062750 @ case 8 - b _02062750 @ case 9 - b _02062750 @ case 10 - b _02062684 @ case 11 - b _02062750 @ case 12 - b _02062750 @ case 13 - b _020626F4 @ case 14 -_02062618: - ldrb r0, [r4, #0x21] - cmp r0, #2 - bne _02062638 - mov r0, #6 - bl GetPerformanceFlagWithChecks - cmp r0, #0 - moveq r0, #0 - beq _02062754 -_02062638: - ldrb r0, [r4, #0x21] - cmp r0, #4 - bne _02062750 - ldrh r0, [r4, #0xc] - and r0, r0, #0xff - bl FUN_02063394 - cmp r0, #0 - beq _02062750 - mov r0, #0 - b _02062754 -_02062660: - ldrb r0, [r4, #0x21] - cmp r0, #2 - bne _02062750 - mov r0, #9 - bl GetPerformanceFlagWithChecks - cmp r0, #0 - bne _02062750 - mov r0, #0 - b _02062754 -_02062684: - ldrb r0, [r4, #0x21] - cmp r0, #5 - addls pc, pc, r0, lsl #2 - b _02062750 -_02062694: @ jump table - b _02062750 @ case 0 - b _020626C0 @ case 1 - b _020626C0 @ case 2 - b _020626C0 @ case 3 - b _020626C0 @ case 4 - b _020626AC @ case 5 -_020626AC: - mov r0, #0 - bl FUN_0204ca1c - cmp r0, #0 - moveq r0, #0 - beq _02062754 -_020626C0: - ldrsh r0, [r4, #0x12] - bl FUN_020558f4 - mvn r1, #0 - cmp r0, r1 - movne r0, #0 - bne _02062754 - ldrb r0, [r4, #0x20] - add r1, r4, #0x21 - bl FUN_0205e2b8 - cmp r0, #0 - beq _02062750 - mov r0, #0 - b _02062754 -_020626F4: - ldrb r0, [r4, #0x21] - cmp r0, #1 - bne _02062750 - ldrh r0, [r4, #0xc] - and r0, r0, #0xff - bl DungeonSwapIdToIdx - bl GetDungeonMode - cmp r0, #3 - moveq r0, #0 - beq _02062754 - ldrb r0, [r4, #0x20] - add r1, r4, #0x21 - bl FUN_0205e2b8 - cmp r0, #0 - beq _02062750 - ldrh r0, [r4, #0xc] - mvn r1, #0 - mov r2, #0 - and r0, r0, #0xff - bl FUN_0205e090 - cmp r0, #0 - movne r0, #0 - bne _02062754 -_02062750: - mov r0, #1 -_02062754: - cmp r0, #0 - movne r0, r4 - popne {r4, pc} -_02062760: - mov r0, #0 - pop {r4, pc} - .align 2, 0 -_02062768: .4byte 0x020B0AD8 - arm_func_end FUN_02062578 - - arm_func_start FUN_0206276c -FUN_0206276c: @ 0x0206276C - push {r4, r5, r6, r7, r8, lr} - ldr r5, _020627F0 @ =0x020B0AD8 - mov ip, #0 - ldr r4, [r5, #0xc] - ldr r5, [r5, #0x18] - mov r6, #0x22 - b _020627E0 -_02062788: - add lr, r4, ip, lsl #4 - ldrh r7, [lr, #0xe] - mla r8, r7, r6, r5 - ldrb r7, [r8, #0x20] - cmp r7, r0 - ldrbeq r8, [r8, #0x21] - ldrbeq r7, [r1] - cmpeq r8, r7 - bne _020627DC - cmp r2, #0 - ldrbne r0, [lr, #8] - ldr r1, [sp, #0x18] - strbne r0, [r2] - cmp r3, #0 - ldrbne r0, [lr, #9] - strne r0, [r3] - cmp r1, #0 - ldrhne r0, [lr, #0xa] - strne r0, [r1] - mov r0, #1 - pop {r4, r5, r6, r7, r8, pc} -_020627DC: - add ip, ip, #1 -_020627E0: - cmp ip, #0x27 - blt _02062788 - mov r0, #0 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_020627F0: .4byte 0x020B0AD8 - arm_func_end FUN_0206276c - - arm_func_start FUN_020627f4 -FUN_020627f4: @ 0x020627F4 - ldr r0, _02062800 @ =0x020B0AD8 - ldr r0, [r0, #8] - bx lr - .align 2, 0 -_02062800: .4byte 0x020B0AD8 - arm_func_end FUN_020627f4 - - arm_func_start FUN_02062804 -FUN_02062804: @ 0x02062804 - ldr r0, _02062810 @ =0x020B0AD8 - ldr r0, [r0, #0x10] - bx lr - .align 2, 0 -_02062810: .4byte 0x020B0AD8 - arm_func_end FUN_02062804 - - arm_func_start FUN_02062814 -FUN_02062814: @ 0x02062814 - cmp r0, #0 - ldrne r1, _02062828 @ =0x020A3CAC - strne r1, [r0] - mov r0, #3 - bx lr - .align 2, 0 -_02062828: .4byte 0x020A3CAC - arm_func_end FUN_02062814 - - arm_func_start FUN_0206282c -FUN_0206282c: @ 0x0206282C - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov r5, #0 - ldr r4, _020628FC @ =0x020A3CAC - mov sb, r0 - mov r8, r5 -_02062840: - ldrb r0, [r4, r8, lsl #1] - bl DungeonSwapIdToIdx - bl GetDungeonMode - cmp r0, #0 - bne _020628E8 - bl GetScenarioBalance - add r1, r4, r8, lsl #1 - ldrb r1, [r1, #1] - lsl r2, r8, #1 - cmp r1, r0 - bhi _020628E8 - ldrb r0, [r4, r2] - bl GetMaxReachedFloor - cmp r0, #0 - bne _020628E8 - ldrb r0, [r4, r8, lsl #1] - cmp r0, #0x5b - beq _020628E8 - mov r7, #1 - mov r6, #0 - b _020628C8 -_02062894: - lsl r0, r6, #0x18 - asr r0, r0, #0x18 - bl GetAcceptedMission - ldrb r1, [r0, #1] - cmp r1, #3 - ldrbeq r1, [r0, #2] - cmpeq r1, #3 - ldrbeq r1, [r0, #4] - ldrbeq r0, [r4, r8, lsl #1] - cmpeq r1, r0 - moveq r7, #0 - beq _020628D0 - add r6, r6, #1 -_020628C8: - cmp r6, #8 - blt _02062894 -_020628D0: - cmp r7, #0 - beq _020628E8 - cmp sb, #0 - ldrbne r0, [r4, r8, lsl #1] - strbne r0, [sb, r5] - add r5, r5, #1 -_020628E8: - add r8, r8, #1 - cmp r8, #3 - blt _02062840 - mov r0, r5 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_020628FC: .4byte 0x020A3CAC - arm_func_end FUN_0206282c - - arm_func_start FUN_02062900 -FUN_02062900: @ 0x02062900 - push {r4, r5, r6, lr} - sub sp, sp, #8 - mov r5, r1 - mov r6, r0 - mov r4, r2 - ldr r1, _02062940 @ =0x020A3CA0 - add r0, sp, #0 - mov r2, #6 - bl MemcpySimple - add r3, sp, #0 - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_02062944 - add sp, sp, #8 - pop {r4, r5, r6, pc} - .align 2, 0 -_02062940: .4byte 0x020A3CA0 - arm_func_end FUN_02062900 - - arm_func_start FUN_02062944 -FUN_02062944: @ 0x02062944 - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov sb, r0 - mov r0, #0x12 - mov r8, r1 - mov r5, r2 - mov r4, r3 - bl RandIntSafe - lsl r0, r0, #0x10 - cmp sb, #0 - lsr r6, r0, #0x10 - mov r7, #0 - beq _02062984 - mov r0, sb - bl RandIntSafe - lsl r0, r0, #1 - ldrsh r7, [r8, r0] -_02062984: - bl FUN_02050c74 - cmp r0, #3 - movhs r0, #1 - movlo r0, #0 - tst r0, #0xff - cmpne r6, #0 - moveq r0, #0 - strheq r0, [r4, #2] - bl FUN_02050c74 - cmp r0, #4 - movhs r0, #1 - movlo r0, #0 - tst r0, #0xff - cmpne r7, #0 - moveq r0, #0 - strheq r0, [r4, #4] - mov r1, r4 - mov r0, #3 - bl FUN_0206220c - cmp r0, #0 - beq _020629F4 - cmp r0, #1 - beq _02062A04 - cmp r0, #2 - moveq r0, #1 - strbeq r0, [r5] - strheq r7, [r5, #2] - pop {r3, r4, r5, r6, r7, r8, sb, pc} -_020629F4: - mov r0, #0 - strb r0, [r5] - strh r0, [r5, #2] - pop {r3, r4, r5, r6, r7, r8, sb, pc} -_02062A04: - mov r0, #0 - strb r0, [r5] - strh r6, [r5, #2] - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_02062944 - - arm_func_start IsMonsterMissionAllowed -IsMonsterMissionAllowed: @ 0x02062A14 - push {r4, lr} - mov r4, #0 - bl GetBaseForm - bl FemaleToMaleForm - ldr r1, _02062A54 @ =0x020A3DAC - b _02062A3C -_02062A2C: - cmp r0, r2 - moveq r0, #0 - popeq {r4, pc} - add r4, r4, #1 -_02062A3C: - lsl r2, r4, #1 - ldrsh r2, [r1, r2] - cmp r2, #0 - bne _02062A2C - mov r0, #1 - pop {r4, pc} - .align 2, 0 -_02062A54: .4byte 0x020A3DAC - arm_func_end IsMonsterMissionAllowed - - arm_func_start CanMonsterBeUsedForMissionWrapper -CanMonsterBeUsedForMissionWrapper: @ 0x02062A58 - ldr ip, _02062A64 @ =CanMonsterBeUsedForMission - mov r1, #1 - bx ip - .align 2, 0 -_02062A64: .4byte CanMonsterBeUsedForMission - arm_func_end CanMonsterBeUsedForMissionWrapper - - arm_func_start CanMonsterBeUsedForMission -CanMonsterBeUsedForMission: @ 0x02062A68 - push {r3, r4, r5, lr} - mov r5, r1 - bl FemaleToMaleForm - mov r4, r0 - bl HasMonsterBeenAttackedInDungeons - cmp r0, #0 - moveq r0, #0 - popeq {r3, r4, r5, pc} - mov r0, r4 - bl GetBaseForm - cmp r4, r0 - movne r0, #0 - popne {r3, r4, r5, pc} - cmp r5, #0 - beq _02062AB8 - mov r0, r4 - bl IsMonsterMissionAllowed - cmp r0, #0 - moveq r0, #0 - popeq {r3, r4, r5, pc} -_02062AB8: - mov r0, r4 - bl IsMonsterMissionAllowedStory - cmp r0, #0 - moveq r0, #0 - movne r0, #1 - pop {r3, r4, r5, pc} - arm_func_end CanMonsterBeUsedForMission - - arm_func_start FUN_02062ad0 -FUN_02062ad0: @ 0x02062AD0 - push {r3, lr} - bl GetBaseForm - bl FemaleToMaleForm - bl IsMonsterMissionAllowedStory - pop {r3, pc} - arm_func_end FUN_02062ad0 - - arm_func_start IsMonsterMissionAllowedStory -IsMonsterMissionAllowedStory: @ 0x02062AE4 - push {r4, lr} - mov r4, r0 - mov r0, #9 - bl GetPerformanceFlagWithChecks - cmp r0, #0 - bne _02062B58 - mov r2, #0 - ldr r0, _02062B60 @ =0x020A3D14 - b _02062B18 -_02062B08: - cmp r4, r1 - moveq r0, #0 - popeq {r4, pc} - add r2, r2, #1 -_02062B18: - lsl r1, r2, #1 - ldrsh r1, [r0, r1] - cmp r1, #0 - bne _02062B08 - bl GetHero - ldrsh r0, [r0, #4] - bl FemaleToMaleForm - cmp r4, r0 - moveq r0, #0 - popeq {r4, pc} - bl GetPartner - ldrsh r0, [r0, #4] - bl FemaleToMaleForm - cmp r4, r0 - moveq r0, #0 - popeq {r4, pc} -_02062B58: - mov r0, #1 - pop {r4, pc} - .align 2, 0 -_02062B60: .4byte 0x020A3D14 - arm_func_end IsMonsterMissionAllowedStory - - arm_func_start FUN_02062b64 -FUN_02062b64: @ 0x02062B64 - push {r4, lr} - mov r4, r0 - bl IsMonsterValid - cmp r0, #0 - moveq r0, #1 - popeq {r4, pc} - ldr r0, _02062BB0 @ =0x00000217 - cmp r4, r0 - blt _02062B90 - cmp r4, #0x228 - ble _02062BA0 -_02062B90: - cmp r4, #0x180 - ldrne r0, _02062BB4 @ =0x00000117 - cmpne r4, r0 - bne _02062BA8 -_02062BA0: - mov r0, #1 - pop {r4, pc} -_02062BA8: - mov r0, #0 - pop {r4, pc} - .align 2, 0 -_02062BB0: .4byte 0x00000217 -_02062BB4: .4byte 0x00000117 - arm_func_end FUN_02062b64 - - arm_func_start FUN_02062bb8 -FUN_02062bb8: @ 0x02062BB8 - push {r3, r4, r5, lr} - mov r5, r0 - bl DungeonSwapIdToIdx - cmp r5, #0x36 - mov r4, r0 - cmpne r5, #0x68 - moveq r0, #0 - popeq {r3, r4, r5, pc} - cmp r5, #0x7b - blo _02062BEC - cmp r5, #0xa3 - movls r0, #0 - popls {r3, r4, r5, pc} -_02062BEC: - cmp r5, #0xaf - movhs r0, #0 - pophs {r3, r4, r5, pc} - add r0, r5, #0xe8 - and r0, r0, #0xff - cmp r0, #1 - bhi _02062C1C - mov r0, #9 - bl GetPerformanceFlagWithChecks - cmp r0, #0 - moveq r0, #0 - popeq {r3, r4, r5, pc} -_02062C1C: - mvn r0, #0 - cmp r4, r0 - beq _02062C44 - cmp r4, #0xb4 - bge _02062C44 - mov r0, r4 - bl GetDungeonMode - cmp r0, #3 - moveq r0, #1 - popeq {r3, r4, r5, pc} -_02062C44: - mov r0, #0 - pop {r3, r4, r5, pc} - arm_func_end FUN_02062bb8 - - arm_func_start FUN_02062c4c -FUN_02062c4c: @ 0x02062C4C - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x14 - mov sl, r0 - cmp sl, #0 - mov sb, r1 - mov r8, r2 - str r3, [sp] - movle r0, #0 - ble _02062D38 - bl RandIntSafe - mov r6, r0 - mov fp, r6 -_02062C7C: - ldrb r4, [sb, r6] - mov r0, r4 - bl GetNbFloors - mov r7, r0 - cmp r4, #0xae - addne r7, r7, #1 - add r0, r7, r7, lsr #31 - asr r0, r0, #1 - mov r1, r7 - str r0, [sp, #8] - bl RandRangeSafe - mov r5, r0 - str r5, [sp, #4] -_02062CB0: - strb r4, [sp, #0x10] - strb r5, [sp, #0x11] - mov r0, #1 - str r0, [sp, #0xc] - add r0, sp, #0x10 - bl IsForbiddenFloor - cmp r0, #0 - movne r0, #0 - strne r0, [sp, #0xc] - ldr r2, [sp] - mov r0, r4 - mov r1, r5 - bl FUN_0205e090 - cmp r0, #0 - movne r0, #0 - strne r0, [sp, #0xc] - ldr r0, [sp, #0xc] - cmp r0, #0 - strbne r4, [r8] - strbne r5, [r8, #1] - movne r0, #1 - bne _02062D38 - add r5, r5, #1 - cmp r5, r7 - ldrge r5, [sp, #8] - ldr r0, [sp, #4] - cmp r5, r0 - bne _02062CB0 - add r6, r6, #1 - cmp r6, sl - moveq r6, #0 - cmp r6, fp - bne _02062C7C - mov r0, #0 -_02062D38: - add sp, sp, #0x14 - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_02062c4c - - arm_func_start FUN_02062d40 -FUN_02062d40: @ 0x02062D40 - push {r3, lr} - bl FUN_0204f7a8 - cmp r0, #7 - movle r0, #1 - movgt r0, #0 - and r0, r0, #0xff - pop {r3, pc} - arm_func_end FUN_02062d40 - - arm_func_start FUN_02062d5c -FUN_02062d5c: @ 0x02062D5C - push {r4, lr} - mov r4, r1 - bl FUN_0204f7a8 - cmp r4, #2 - cmpne r4, #3 - cmpne r4, #4 - cmpne r4, #5 - beq _02062D8C - add r1, r4, #0xf7 - and r1, r1, #0xff - cmp r1, #1 - bhi _02062D90 -_02062D8C: - add r0, r0, #1 -_02062D90: - cmp r0, #0xf - movgt r0, #0xf - pop {r4, pc} - arm_func_end FUN_02062d5c - - arm_func_start FUN_02062d9c -FUN_02062d9c: @ 0x02062D9C - push {r3, lr} - bl FUN_02062d5c - and r0, r0, #0xff - cmp r0, #0x10 - movhs r0, #0xf - pop {r3, pc} - arm_func_end FUN_02062d9c - - arm_func_start FUN_02062db4 -FUN_02062db4: @ 0x02062DB4 - ldr r1, _02062DC0 @ =0x020B0A98 - ldr r0, [r1, r0, lsl #2] - bx lr - .align 2, 0 -_02062DC0: .4byte 0x020B0A98 - arm_func_end FUN_02062db4 - - arm_func_start FUN_02062dc4 -FUN_02062dc4: @ 0x02062DC4 - push {r3, lr} - bl FUN_02062d5c - ldr r1, _02062DD8 @ =0x020A3D6C - ldr r0, [r1, r0, lsl #2] - pop {r3, pc} - .align 2, 0 -_02062DD8: .4byte 0x020A3D6C - arm_func_end FUN_02062dc4 - - arm_func_start CanSendItem -CanSendItem: @ 0x02062DDC - push {r4, lr} - mov r4, r0 - cmp r1, #0 - bne _02062DFC - bl IsItemInTimeDarkness - cmp r0, #0 - moveq r0, #0 - popeq {r4, pc} -_02062DFC: - mov r2, #0 - ldr r0, _02062E30 @ =0x020A3CB2 - b _02062E18 -_02062E08: - cmp r4, r1 - moveq r0, #0 - popeq {r4, pc} - add r2, r2, #1 -_02062E18: - lsl r1, r2, #1 - ldrsh r1, [r0, r1] - cmp r1, #0 - bne _02062E08 - mov r0, #1 - pop {r4, pc} - .align 2, 0 -_02062E30: .4byte 0x020A3CB2 - arm_func_end CanSendItem -_02062E34: - .byte 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x00, 0x51, 0xE3, 0xF0, 0x4A, 0xD0, 0x11 - .byte 0xF2, 0x4A, 0xD0, 0x01, 0xAE, 0x00, 0xD0, 0xE5, 0xC3, 0xE3, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE1 - .byte 0x04, 0x00, 0xA0, 0xE1, 0xE0, 0xFF, 0xFF, 0xEB, 0x10, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_02062e5c -FUN_02062e5c: @ 0x02062E5C - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - ldrb r1, [r5, #1] - add r0, r5, #4 - bl FUN_02062d9c - mov ip, #0 - str ip, [r4, #8] - mov r3, ip - mov r1, #6 -_02062E84: - mla r2, ip, r1, r4 - add ip, ip, #1 - strh r3, [r2, #0x14] - cmp ip, #3 - blt _02062E84 - add r1, r0, #1 - mov r0, #0x32 - mul r0, r1, r0 - str r0, [r4, #8] - ldrb r0, [r5, #0x16] - cmp r0, #6 - addls pc, pc, r0, lsl #2 - b _0206305C -_02062EB8: @ jump table - b _02062ED4 @ case 0 - b _02062EE4 @ case 1 - b _02062F04 @ case 2 - b _02062F38 @ case 3 - b _02062FD8 @ case 4 - b _0206300C @ case 5 - b _02063038 @ case 6 -_02062ED4: - strb r3, [r4, #2] - mov r0, #1 - str r0, [r4, #0xc] - b _02063074 -_02062EE4: - mov r2, #1 - strb r2, [r4, #2] - ldrsh r1, [r5, #0x18] - mov r0, #0xa - strh r1, [r4, #0x14] - strh r0, [r4, #0x12] - str r2, [r4, #0xc] - b _02063074 -_02062F04: - mov r0, #2 - strb r0, [r4, #2] - ldrsh r2, [r5, #0x18] - mov r0, #1 - mov r1, #0xa - strh r2, [r4, #0x14] - strh r1, [r4, #0x12] - str r0, [r4, #0xc] - ldr r1, [r4, #8] - sub r0, r0, #2 - mul r0, r1, r0 - str r0, [r4, #8] - b _02063074 -_02062F38: - mov r0, #3 - strb r0, [r4, #2] - ldrsh r1, [r5, #0x18] - mov r0, #0xa - strh r1, [r4, #0x14] - strh r0, [r4, #0x12] -_02062F50: - ldrb r1, [r5, #1] - add r0, r5, #4 - add r2, r4, #0x1a - bl FUN_020630a4 - ldrsh r1, [r4, #0x14] - ldrsh r0, [r4, #0x1a] - cmp r1, r0 - beq _02062F50 - mov r0, #0xa - strh r0, [r4, #0x18] - mov r0, #2 - str r0, [r4, #0xc] - bl RandInt - cmp r0, #0 - beq _02062FC4 -_02062F8C: - ldrb r1, [r5, #1] - add r0, r5, #4 - add r2, r4, #0x20 - bl FUN_020630a4 - ldrsh r1, [r4, #0x20] - ldrsh r0, [r4, #0x14] - cmp r0, r1 - ldrshne r0, [r4, #0x1a] + subne r1, ip, #0x81000000 cmpne r0, r1 - beq _02062F8C - mov r0, #0xa - strh r0, [r4, #0x1e] - mov r0, #3 - str r0, [r4, #0xc] -_02062FC4: - ldr r1, [r4, #8] - mvn r0, #0 - mul r0, r1, r0 - str r0, [r4, #8] - b _02063074 -_02062FD8: - mov r0, #4 - strb r0, [r4, #2] - ldrsh r2, [r5, #0x18] - mov r0, #1 - mov r1, #0xa - strh r2, [r4, #0x14] - strh r1, [r4, #0x12] - str r0, [r4, #0xc] - ldr r1, [r4, #8] - sub r0, r0, #2 - mul r0, r1, r0 - str r0, [r4, #8] - b _02063074 -_0206300C: - mov r1, #5 - mov r0, #1 - strb r1, [r4, #2] - strb r0, [r4, #0x22] - ldrsh r1, [r5, #0x18] - sub r0, r0, #2 - strh r1, [r4, #0x24] - ldr r1, [r4, #8] - mul r0, r1, r0 - str r0, [r4, #8] - b _02063074 -_02063038: - mov r0, #6 - strb r0, [r4, #2] - ldrsh r1, [r5, #0x18] - sub r0, r0, #7 - strh r1, [r4, #0x24] - ldr r1, [r4, #8] - mul r0, r1, r0 - str r0, [r4, #8] - b _02063074 -_0206305C: - mov r0, #7 - strb r0, [r4, #2] - ldr r1, [r4, #8] - sub r0, r0, #8 - mul r0, r1, r0 - str r0, [r4, #8] -_02063074: - ldrsh r1, [r5, #0xe] - add r0, r5, #4 - strh r1, [r4] - ldrb r1, [r5, #1] - bl FUN_02062d5c - ldr r1, _02063098 @ =0x020A3D6C - ldr r0, [r1, r0, lsl #2] - str r0, [r4, #0x28] - pop {r3, r4, r5, pc} - .align 2, 0 -_02063098: .4byte 0x020A3D6C - arm_func_end FUN_02062e5c - - arm_func_start FUN_0206309c -FUN_0206309c: @ 0x0206309C - mov r0, #0xa + beq _022C86F8 + ldr r1, _022C8700 @ =0x02325078 + ldr r3, [r1, #0x1c] + ldr r1, [r1, #0x50] + and r2, r0, r3 + and r0, r1, r3 + cmp r2, r0 + movne ip, #0 +_022C86F8: + mov r0, ip bx lr - arm_func_end FUN_0206309c + .align 2, 0 +_022C8700: .4byte 0x02325078 + arm_func_end ov00_022C86C4 - arm_func_start FUN_020630a4 -FUN_020630a4: @ 0x020630A4 - push {r4, r5, r6, r7, r8, lr} - mov r8, r0 - mov r7, r2 - mov r5, #1 - bl FUN_02062d5c - mov r6, r0 - mov r0, r8 - mov r1, r6 - bl RetrieveFromItemList2 - mov r4, #0 - b _020630E0 -_020630D0: - mov r0, r8 - mov r1, r6 - mov r5, r4 - bl RetrieveFromItemList2 -_020630E0: - cmp r5, #0 - bne _020630D0 - strh r0, [r7] - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_020630a4 - - arm_func_start FUN_020630f0 -FUN_020630f0: @ 0x020630F0 - push {r4, r5, r6, lr} - mov r6, r1 - mov r4, r0 - mov r1, #0 - bl GetExclusiveItem - mov r5, r0 - mov r0, r4 - mov r1, #1 - bl GetExclusiveItem - mov r4, r0 - cmp r5, #0 - cmpeq r4, #0 - moveq r0, #0 - popeq {r4, r5, r6, pc} - cmp r5, #0 - strheq r4, [r6] - beq _02063154 - cmp r4, #0 - strheq r5, [r6] - beq _02063154 - mov r0, #2 - bl RandInt - cmp r0, #0 - moveq r5, r4 - strh r5, [r6] -_02063154: - mov r0, #1 - pop {r4, r5, r6, pc} - arm_func_end FUN_020630f0 - - arm_func_start FUN_0206315c -FUN_0206315c: @ 0x0206315C + arm_func_start ov00_022C8704 +ov00_022C8704: @ 0x022C8704 push {r4, lr} - sub sp, sp, #0x10 mov r4, r0 - ldrb r0, [r4, #1] - cmp r0, #6 - beq _020631D8 - cmp r0, #0xa - beq _02063188 - cmp r0, #0xb - beq _020631B4 - b _020631F4 -_02063188: - ldr r1, _02063230 @ =0x020A3CD6 - add r0, sp, #0 - mov r2, #0xe - bl MemcpySimple - mov r0, #0 - strh r0, [sp, #0xc] - ldrsh r2, [r4, #0x10] - add r1, sp, #0 + bl ov00_022C86C4 + cmp r0, #0 + ldreq r0, _022C8724 @ =0x02325078 + ldreq r4, [r0, #0x2c] mov r0, r4 - bl FUN_02063240 - b _02063228 -_020631B4: - ldrb r0, [r4, #2] - cmp r0, #1 - blo _020631D8 - cmp r0, #5 - movls r0, #6 - strbls r0, [r4, #0x16] - ldrshls r0, [r4, #0xe] - strhls r0, [r4, #0x18] - bls _02063228 -_020631D8: - ldrb r0, [r4, #2] - cmp r0, #4 - moveq r1, #4 - ldreq r0, _02063234 @ =0x0000031E - strbeq r1, [r4, #0x16] - strheq r0, [r4, #0x18] - beq _02063228 -_020631F4: - cmp r1, #0 - add r0, sp, #0 - mov r2, #0xe - beq _02063210 - ldr r1, _02063238 @ =0x020A3CE4 - bl MemcpySimple - b _02063218 -_02063210: - ldr r1, _0206323C @ =0x020A3CC8 - bl MemcpySimple -_02063218: - ldrsh r2, [r4, #0xe] - add r1, sp, #0 - mov r0, r4 - bl FUN_02063240 -_02063228: - add sp, sp, #0x10 pop {r4, pc} .align 2, 0 -_02063230: .4byte 0x020A3CD6 -_02063234: .4byte 0x0000031E -_02063238: .4byte 0x020A3CE4 -_0206323C: .4byte 0x020A3CC8 - arm_func_end FUN_0206315c +_022C8724: .4byte 0x02325078 + arm_func_end ov00_022C8704 - arm_func_start FUN_02063240 -FUN_02063240: @ 0x02063240 - push {r3, r4, r5, r6, lr} - sub sp, sp, #4 - mov r4, r0 - mov r6, r1 - mov r5, r2 - mov r0, #3 - mov r1, #0xc - mov r2, #0 - bl FUN_0204c6c8 - cmp r0, #0 - movne r0, #0 - strhne r0, [r6, #0xa] - mov r0, #3 - mov r1, #6 - mov r2, #0 - bl FUN_0204c6c8 - cmp r0, #0 - movne r0, #0 - strhne r0, [r6, #0xc] - mov r0, #3 - mov r1, #8 - mov r2, #0 - bl FUN_0204c6c8 - cmp r0, #0 - bne _020632B8 - ldrb r1, [r4, #1] - add r0, r4, #4 - bl FUN_02062d9c - cmp r0, #0xb - bge _020632C0 -_020632B8: - mov r0, #0 - strh r0, [r6, #8] -_020632C0: - mov r1, r6 - mov r0, #7 - bl FUN_0206220c - and r1, r0, #0xff - strb r0, [r4, #0x16] - cmp r1, #6 - ldrsheq r0, [r4, #0xe] - strheq r0, [r4, #0x18] - beq _0206338C - cmp r1, #4 - bne _0206336C - add r1, sp, #0 - mov r0, r5 - bl FUN_020630f0 - cmp r0, #0 - bne _02063360 - mov r0, r5 - mov r1, #0 - bl GetType - mov r6, r0 - mov r0, r5 - mov r1, #1 - bl GetType - movs r5, r0 - beq _02063334 - mov r0, #2 - bl RandInt - cmp r0, #0 - beq _0206334C -_02063334: - sub r0, r6, #1 - lsl r0, r0, #2 - add r0, r0, #0xfb - add r0, r0, #0x100 - strh r0, [sp] - b _02063360 -_0206334C: - sub r0, r5, #1 - lsl r0, r0, #2 - add r0, r0, #0xfb - add r0, r0, #0x100 - strh r0, [sp] -_02063360: - ldrsh r0, [sp] - strh r0, [r4, #0x18] - b _0206338C -_0206336C: - ldrb r1, [r4, #1] - add r0, r4, #4 - add r2, r4, #0x18 - bl FUN_020630a4 - ldrsh r1, [r4, #0x14] - ldrsh r0, [r4, #0x18] - cmp r1, r0 - beq _0206336C -_0206338C: - add sp, sp, #4 - pop {r3, r4, r5, r6, pc} - arm_func_end FUN_02063240 - - arm_func_start FUN_02063394 -FUN_02063394: @ 0x02063394 - push {r4, r5, r6, lr} - mov r6, r0 - bl DungeonSwapIdToIdx - mov r5, r0 - mov r4, #0 - ldr r1, _0206341C @ =0x020A3CAC - b _0206340C -_020633B0: - ldrb r0, [r1, r4, lsl #1] - cmp r6, r0 - bne _02063408 - bl GetScenarioBalance - ldr r1, _02063420 @ =0x020A3CAD - ldrb r1, [r1, r4, lsl #1] - cmp r1, r0 - movhi r0, #1 - pophi {r4, r5, r6, pc} - mov r0, r5 - bl GetDungeonMode - cmp r0, #0 - bne _020633F8 - ldr r0, _0206341C @ =0x020A3CAC - ldrb r0, [r0, r4, lsl #1] - bl GetMaxReachedFloor - cmp r0, #0 - beq _02063400 -_020633F8: - mov r0, #2 - pop {r4, r5, r6, pc} -_02063400: - mov r0, #0 - pop {r4, r5, r6, pc} -_02063408: - add r4, r4, #1 -_0206340C: - cmp r4, #3 - blt _020633B0 - mov r0, #3 - pop {r4, r5, r6, pc} - .align 2, 0 -_0206341C: .4byte 0x020A3CAC -_02063420: .4byte 0x020A3CAD - arm_func_end FUN_02063394 - - arm_func_start FUN_02063424 -FUN_02063424: @ 0x02063424 - push {r4, lr} - cmp r0, #0xb - ldrbeq r0, [r1] - mov r4, r2 - cmpeq r0, #5 - mov r0, r4 - bne _02063448 - bl GetNbFloors - pop {r4, pc} -_02063448: - bl GetNbFloors - cmp r4, #0xae - addne r0, r0, #1 - sub r0, r0, #1 - pop {r4, pc} - arm_func_end FUN_02063424 - - arm_func_start IsAvailableItem -IsAvailableItem: @ 0x0206345C + arm_func_start ov00_022C8728 +ov00_022C8728: @ 0x022C8728 push {r3, r4, r5, lr} mov r5, r0 mov r4, #0 - b _02063498 -_0206346C: - and r0, r4, #0xff - bl GetMaxReachedFloor + bl ov00_022C86C4 cmp r0, #0 - beq _02063494 - mov r1, r5 - and r0, r4, #0xff - bl IsItemAvailableInDungeonGroup - cmp r0, #0 - movne r0, #1 - popne {r3, r4, r5, pc} -_02063494: - add r4, r4, #1 -_02063498: - cmp r4, #0xb4 - blt _0206346C - mov r0, #0 - pop {r3, r4, r5, pc} - arm_func_end IsAvailableItem - - arm_func_start GetAvailableItemDeliveryList -GetAvailableItemDeliveryList: @ 0x020634A8 - push {r4, r5, r6, r7, r8, lr} - mov r6, #0 - ldr r4, _020634F0 @ =0x020A3D3E - mov r8, r0 - mov r5, r6 -_020634BC: - lsl r0, r5, #1 - ldrsh r7, [r4, r0] - mov r0, r7 - bl IsAvailableItem - cmp r0, #0 - lslne r0, r6, #1 - add r5, r5, #1 - strhne r7, [r8, r0] - addne r6, r6, #1 - cmp r5, #0x16 - blt _020634BC - mov r0, r6 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_020634F0: .4byte 0x020A3D3E - arm_func_end GetAvailableItemDeliveryList - - arm_func_start FUN_020634f4 -FUN_020634f4: @ 0x020634F4 - ldr r1, _02063500 @ =0x020B0AD8 - str r0, [r1] - bx lr - .align 2, 0 -_02063500: .4byte 0x020B0AD8 - arm_func_end FUN_020634f4 - - arm_func_start FUN_02063504 -FUN_02063504: @ 0x02063504 - ldr r0, _02063518 @ =0x020B0AD8 - ldr r0, [r0] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bx lr - .align 2, 0 -_02063518: .4byte 0x020B0AD8 - arm_func_end FUN_02063504 -_0206351C: - .byte 0x00, 0xC0, 0xA0, 0xE3 - .byte 0xB0, 0xC0, 0xC0, 0xE1, 0x08, 0xC0, 0x80, 0xE5, 0x0C, 0xC0, 0x80, 0xE5, 0x0C, 0x30, 0xA0, 0xE1 - .byte 0x06, 0x10, 0xA0, 0xE3, 0x9C, 0x01, 0x22, 0xE0, 0x01, 0xC0, 0x8C, 0xE2, 0xB4, 0x31, 0xC2, 0xE1 - .byte 0x03, 0x00, 0x5C, 0xE3, 0xFA, 0xFF, 0xFF, 0xBA, 0x22, 0x30, 0xC0, 0xE5, 0xB4, 0x32, 0xC0, 0xE1 - .byte 0x28, 0x30, 0x80, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02063560 -FUN_02063560: @ 0x02063560 - push {r3, lr} - ldrsh r2, [r1] - cmp r2, #0 - beq _020635BC - mov r2, #0x8000 - strh r2, [r0] - ldrsh r2, [r1, #2] - add ip, r1, #4 - add r3, r0, #0x14 - strh r2, [r0, #4] - ldrsh lr, [r1, #2] - mov r2, #4 - strh lr, [r0, #2] - str ip, [r0, #8] - str ip, [r0, #0xc] - ldrsh r1, [r1] - add r1, ip, r1, lsl #2 - str r1, [r0, #0x10] -_020635A8: - ldrb r0, [ip], #1 - subs r2, r2, #1 - strb r0, [r3], #1 - bne _020635A8 - pop {r3, pc} -_020635BC: - mov r1, #0 - strh r1, [r0] - pop {r3, pc} - arm_func_end FUN_02063560 - - arm_func_start FUN_020635c8 -FUN_020635c8: @ 0x020635C8 - ldr ip, _020635D4 @ =MemZero - mov r1, #0xc - bx ip - .align 2, 0 -_020635D4: .4byte MemZero - arm_func_end FUN_020635c8 - - arm_func_start FUN_020635d8 -FUN_020635d8: @ 0x020635D8 - push {r4, lr} - mov r4, r0 - ldr r1, [r4] - cmp r1, #0 - popeq {r4, pc} - bl UnloadFile - mov r0, r4 - mov r1, #0xc - bl MemZero - pop {r4, pc} - arm_func_end FUN_020635d8 - - arm_func_start FUN_02063600 -FUN_02063600: @ 0x02063600 - ldr ip, _0206360C @ =MemZero - mov r1, #0x18 - bx ip - .align 2, 0 -_0206360C: .4byte MemZero - arm_func_end FUN_02063600 - - arm_func_start FUN_02063610 -FUN_02063610: @ 0x02063610 - ldr r0, [r0, #8] - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - arm_func_end FUN_02063610 - - arm_func_start FUN_02063628 -FUN_02063628: @ 0x02063628 - push {r3, r4, r5, r6, r7, lr} - mov r6, r1 - mov r1, #0x18 - mov r7, r0 - mov r5, r2 - bl MemZero - mov r0, #0x18 - mul r4, r5, r0 - mov r0, r4 - mov r1, #0 - str r5, [r7, #0xc] - bl MemAlloc - mov r1, r4 - str r0, [r7, #8] - bl MemZero - mov r0, r7 - str r6, [r7, #4] - bl FUN_020636a8 - mov r0, #0x1f - str r0, [r7, #0x10] - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_02063628 - - arm_func_start FUN_0206367c -FUN_0206367c: @ 0x0206367C - push {r4, lr} - mov r4, r0 - bl FUN_02063610 - cmp r0, #0 - popeq {r4, pc} - ldr r0, [r4, #8] - bl MemFree - mov r0, r4 - mov r1, #0x18 - bl MemZero - pop {r4, pc} - arm_func_end FUN_0206367c - - arm_func_start FUN_020636a8 -FUN_020636a8: @ 0x020636A8 - ldr r1, [r0] - cmp r1, #0 - beq _020636F0 - ldr r1, [r1] - cmp r1, #4 - addls pc, pc, r1, lsl #2 - bx lr -_020636C4: @ jump table - b _020636D8 @ case 0 - b _020636E4 @ case 1 - b _020636E4 @ case 2 - b _020636E4 @ case 3 - b _020636E4 @ case 4 -_020636D8: - mov r1, #0 - strb r1, [r0, #0x14] - bx lr -_020636E4: - mov r1, #1 - strb r1, [r0, #0x14] - bx lr -_020636F0: - ldr r1, [r0, #4] - ldr r1, [r1] - ldr r1, [r1] - cmp r1, #4 - addls pc, pc, r1, lsl #2 - bx lr -_02063708: @ jump table - b _0206371C @ case 0 - b _02063728 @ case 1 - b _02063728 @ case 2 - b _02063728 @ case 3 - b _02063728 @ case 4 -_0206371C: - mov r1, #0 - strb r1, [r0, #0x14] - bx lr -_02063728: - mov r1, #1 - strb r1, [r0, #0x14] - bx lr - arm_func_end FUN_020636a8 - - arm_func_start FUN_02063734 -FUN_02063734: @ 0x02063734 - push {r4, r5, r6, r7, r8, lr} - mov r8, r0 - mov r7, r1 - mov r6, r2 - mov r5, #0 - mov r4, #0x18 - b _02063764 -_02063750: - ldr r0, [r8, #8] - ldr r1, [r7, r5, lsl #2] - mla r0, r5, r4, r0 - bl FUN_02063560 - add r5, r5, #1 -_02063764: - cmp r5, r6 - blt _02063750 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_02063734 -_02063770: - .byte 0x15, 0x00, 0xD0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02063778 -FUN_02063778: @ 0x02063778 - mov r2, #0x18 - mul r2, r1, r2 - ldr r0, [r0, #8] - ldrh r0, [r0, r2] - tst r0, #0x8000 - movne r0, #1 - moveq r0, #0 - and r0, r0, #0xff - bx lr - arm_func_end FUN_02063778 - - arm_func_start FUN_0206379c -FUN_0206379c: @ 0x0206379C - mov r2, #0x18 - mul r2, r1, r2 - ldr r0, [r0, #8] - ldrh r0, [r0, r2] - tst r0, #0x8000 - beq _020637C0 - tst r0, #0x2000 - movne r0, #1 - bxne lr -_020637C0: - mov r0, #0 - bx lr - arm_func_end FUN_0206379c - - arm_func_start FUN_020637c8 -FUN_020637c8: @ 0x020637C8 - push {r4, lr} - ldrb ip, [sp, #8] - mov r4, r0 - mov r0, r4 - cmp ip, #0 - addne r3, r3, r2, lsl #8 - lsl r3, r3, #0x10 - mov r2, r1 - lsr r1, r3, #0x10 - bl FUN_0200a29c - mov r0, r4 - bl FUN_0200a174 - pop {r4, pc} - arm_func_end FUN_020637c8 - - arm_func_start FUN_020637fc -FUN_020637fc: @ 0x020637FC - push {r4, lr} - ldrb ip, [sp, #8] - mov r4, r0 - mov r0, r4 - cmp ip, #0 - addne r3, r3, r2, lsl #8 - lsl r3, r3, #0x10 - mov r2, r1 - lsr r1, r3, #0x10 - bl FUN_0200a590 - mov r0, r4 - bl FUN_0200a504 - pop {r4, pc} - arm_func_end FUN_020637fc - - arm_func_start FUN_02063830 -FUN_02063830: @ 0x02063830 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov r6, #0 - mov sl, r0 - mov sb, r1 - mov r8, r2 - mov fp, r3 - mov r5, r6 - ldr r7, [sp, #0x28] - b _0206394C -_02063854: - mov r0, sl - mov r1, r5 - bl FUN_02063778 - cmp r0, #0 - beq _02063948 - mov r0, sl - mov r1, r5 - bl FUN_0206379c - cmp r0, #0 - bne _02063948 - ldr r1, [sl, #8] - mov r0, #0x18 - mla r4, r5, r0, r1 - mov r0, #0 - strb r0, [sl, #0x15] - ldrsh r0, [r4, #4] - sub r0, r0, #1 - strh r0, [r4, #4] - ldrsh r0, [r4, #4] - cmp r0, #0 - bgt _020638F4 - ldrsh r0, [r4, #2] - add r2, r4, #0x14 - strh r0, [r4, #4] - ldr r1, [r4, #0xc] - ldr r0, [r4, #0x10] + beq _022C8758 + ldr r0, _022C8760 @ =0x02325078 + ldr r0, [r0, #0x1c] + mvn r1, r0 + and r0, r1, r5 cmp r1, r0 - ldrhs r1, [r4, #8] - movhs r0, #1 - strhs r1, [r4, #0xc] - strbhs r0, [sl, #0x15] - ldr r3, [r4, #0xc] - mov r1, #4 - add r0, r3, #4 - str r0, [r4, #0xc] -_020638E0: - ldrb r0, [r3], #1 - subs r1, r1, #1 - strb r0, [r2], #1 - bne _020638E0 - mov r6, #1 -_020638F4: - cmp r7, #0 - cmpeq r6, #0 - beq _02063948 - ldr r0, [sl] - cmp r0, #0 - beq _02063924 - ldrb ip, [sl, #0x14] - mov r2, sb - add r1, r4, #0x14 - add r3, r8, r5 - str ip, [sp] - bl FUN_020637c8 -_02063924: - ldr r0, [sl, #4] - cmp r0, #0 - beq _02063948 - ldrb ip, [sl, #0x14] - mov r2, sb - add r1, r4, #0x14 - add r3, r8, r5 - str ip, [sp] - bl FUN_020637fc -_02063948: - add r5, r5, #1 -_0206394C: - cmp r5, fp - blt _02063854 - mov r0, r6 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_02063830 - - arm_func_start FUN_0206395c -FUN_0206395c: @ 0x0206395C - push {r3, lr} - ldr r0, _020639AC @ =0x00000668 - mov r1, #0 - bl MemAlloc - ldr r2, _020639B0 @ =0x020B0B04 - ldr r1, _020639AC @ =0x00000668 - str r0, [r2] - bl MemZero - ldr r0, _020639B0 @ =0x020B0B04 - mov r2, #0 - ldr r1, [r0] - strb r2, [r1, #0x664] - ldr r0, [r0] - add r0, r0, #0x58 - bl FUN_02064ab0 - ldr r0, _020639B0 @ =0x020B0B04 - ldr r0, [r0] - add r0, r0, #0x58 - bl FUN_02064adc - pop {r3, pc} - .align 2, 0 -_020639AC: .4byte 0x00000668 -_020639B0: .4byte 0x020B0B04 - arm_func_end FUN_0206395c -_020639B4: - .byte 0x10, 0x40, 0x2D, 0xE9, 0x24, 0xC0, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x9C, 0xE5, 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE1, 0x83, 0x02, 0x80, 0xE0 - .byte 0x04, 0x10, 0xA0, 0xE1, 0x0E, 0x20, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE1, 0x3A, 0x03, 0x00, 0xEB - .byte 0x10, 0x80, 0xBD, 0xE8, 0x04, 0x0B, 0x0B, 0x02, 0x14, 0x20, 0x9F, 0xE5, 0x14, 0xC0, 0x9F, 0xE5 - .byte 0x00, 0x30, 0x92, 0xE5, 0x01, 0x20, 0xA0, 0xE1, 0x00, 0x10, 0xA0, 0xE1, 0x40, 0x00, 0x83, 0xE2 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x04, 0x0B, 0x0B, 0x02, 0x18, 0x4C, 0x06, 0x02, 0x08, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x10, 0x91, 0xE5, 0x64, 0x06, 0xC1, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x0B, 0x0B, 0x02 - - arm_func_start FUN_02063a20 -FUN_02063a20: @ 0x02063A20 - ldr r0, _02063A30 @ =0x020B0B04 - ldr r0, [r0] - ldrb r0, [r0, #0x664] - bx lr - .align 2, 0 -_02063A30: .4byte 0x020B0B04 - arm_func_end FUN_02063a20 - - arm_func_start FUN_02063a34 -FUN_02063a34: @ 0x02063A34 - push {r3, r4, r5, lr} - mov r5, r0 - mov r0, r1 - bl FUN_02063bb8 - movs r4, r0 - mov r0, #0 - bne _02063B20 - cmp r5, #1 - bne _02063A98 - mov r2, r4 - mov r1, #2 - bl FUN_020090a0 - mov r2, r4 - mov r0, #1 - mov r1, #0 - bl FUN_020090a0 - mov r2, r4 - mov r0, #2 - mov r1, #1 - bl FUN_020090a0 - mov r0, #3 - mov r1, r0 - mov r2, r4 - bl FUN_020090a0 - b _02063BA0 -_02063A98: - cmp r5, #2 - bne _02063AE0 - mov r1, r0 - mov r2, r4 - bl FUN_020090a0 - mov r0, #1 - mov r1, r0 - mov r2, r4 - bl FUN_020090a0 - mov r0, #2 - mov r1, r0 - mov r2, r4 - bl FUN_020090a0 - mov r0, #3 - mov r1, r0 - mov r2, r4 - bl FUN_020090a0 - b _02063BA0 -_02063AE0: - mov r2, r4 - mov r1, #1 - bl FUN_020090a0 - mov r2, r4 - mov r0, #1 - mov r1, #0 - bl FUN_020090a0 - mov r0, #2 - mov r1, r0 - mov r2, r4 - bl FUN_020090a0 - mov r0, #3 - mov r1, r0 - mov r2, r4 - bl FUN_020090a0 - b _02063BA0 -_02063B20: - cmp r5, #1 - mov r2, r4 - bne _02063B68 - mov r1, #2 - bl FUN_020090a0 - mov r2, r4 - mov r0, #1 - mov r1, #0 - bl FUN_020090a0 - mov r2, r4 - mov r0, #2 - mov r1, #1 - bl FUN_020090a0 - mov r0, #3 - mov r1, r0 - mov r2, r4 - bl FUN_020090a0 - b _02063BA0 -_02063B68: - mov r1, #1 - bl FUN_020090a0 - mov r2, r4 - mov r0, #1 - mov r1, #0 - bl FUN_020090a0 - mov r0, #2 - mov r1, r0 - mov r2, r4 - bl FUN_020090a0 - mov r0, #3 - mov r1, r0 - mov r2, r4 - bl FUN_020090a0 -_02063BA0: - ldr r0, _02063BB4 @ =0x020B0B04 - ldr r0, [r0] - add r0, r0, r4 - strb r5, [r0, #0x660] + moveq r4, #1 +_022C8758: + mov r0, r4 pop {r3, r4, r5, pc} .align 2, 0 -_02063BB4: .4byte 0x020B0B04 - arm_func_end FUN_02063a34 +_022C8760: .4byte 0x02325078 + arm_func_end ov00_022C8728 - arm_func_start FUN_02063bb8 -FUN_02063bb8: @ 0x02063BB8 - cmp r0, #0 - cmpne r0, #2 - moveq r0, #0 - movne r0, #1 - bx lr - arm_func_end FUN_02063bb8 - - arm_func_start FUN_02063bcc -FUN_02063bcc: @ 0x02063BCC - push {r3, r4, r5, lr} - mov r5, r0 - mov r0, r1 - bl FUN_02063bb8 - mov r4, r0 - cmp r5, #1 - beq _02063BFC - cmp r5, #2 - beq _02063C60 - cmp r5, #3 - beq _02063CB4 - b _02063D18 -_02063BFC: - mov r2, r4 - mov r0, #0 - mov r1, #1 - bl FUN_02009454 - mov r2, r4 - mov r0, #1 - mov r1, #2 - bl FUN_02009454 - mov r0, #2 - mov r1, r0 - mov r2, r4 - bl FUN_02009454 - mov r2, r4 - mov r0, #3 - mov r1, #2 - bl FUN_02009454 - mov r0, #4 - mov r1, #2 - mov r2, r4 - bl FUN_02009454 - mov r0, #0xff - mov r1, #0 - mov r2, r4 - bl FUN_020094c4 - b _02063DCC -_02063C60: - mov r2, r4 - mov r0, #0 - mov r1, #2 - bl FUN_02009454 - mov r2, r4 - mov r0, #1 - mov r1, #2 - bl FUN_02009454 - mov r2, r4 - mov r0, #2 - mov r1, #1 - bl FUN_02009454 - mov r2, r4 - mov r0, #3 - mov r1, #2 - bl FUN_02009454 - mov r0, #4 - mov r1, #2 - mov r2, r4 - bl FUN_02009454 - b _02063DCC -_02063CB4: - mov r2, r4 - mov r0, #0 - mov r1, #2 - bl FUN_02009454 - mov r0, #1 - mov r1, r0 - mov r2, r4 - bl FUN_02009454 - mov r2, r4 - mov r0, #2 - mov r1, #1 - bl FUN_02009454 - mov r2, r4 - mov r0, #3 - mov r1, #2 - bl FUN_02009454 - mov r0, #4 - mov r1, #2 - mov r2, r4 - bl FUN_02009454 - mov r0, #0xff - mov r1, #0 - mov r2, r4 - bl FUN_020094c4 - b _02063DCC -_02063D18: - cmp r4, #0 - mov r2, r4 - mov r0, #0 - bne _02063D74 - mov r1, #1 - bl FUN_02009454 - mov r2, r4 - mov r0, #1 - mov r1, #2 - bl FUN_02009454 - mov r0, #2 - mov r1, r0 - mov r2, r4 - bl FUN_02009454 - mov r2, r4 - mov r0, #3 - mov r1, #2 - bl FUN_02009454 - mov r0, #4 - mov r1, #2 - mov r2, r4 - bl FUN_02009454 - b _02063DBC -_02063D74: - mov r1, #2 - bl FUN_02009454 - mov r2, r4 - mov r0, #1 - mov r1, #2 - bl FUN_02009454 - mov r0, #2 - mov r1, r0 - mov r2, r4 - bl FUN_02009454 - mov r2, r4 - mov r0, #3 - mov r1, #2 - bl FUN_02009454 - mov r0, #4 - mov r1, #2 - mov r2, r4 - bl FUN_02009454 -_02063DBC: - mov r0, #0x40 - mov r1, r0 - mov r2, r4 - bl FUN_020094c4 -_02063DCC: - ldr r0, _02063DE0 @ =0x020B0B04 - ldr r0, [r0] - add r0, r0, r4 - strb r5, [r0, #0x662] - pop {r3, r4, r5, pc} - .align 2, 0 -_02063DE0: .4byte 0x020B0B04 - arm_func_end FUN_02063bcc -_02063DE4: - .byte 0x08, 0x40, 0x2D, 0xE9, 0x2C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x08, 0x58, 0x00, 0x80, 0xE2, 0x3E, 0x03, 0x00, 0xEB - .byte 0x14, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xDE, 0x74, 0xFE, 0xEB, 0x08, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x04, 0x0B, 0x0B, 0x02 - - arm_func_start FUN_02063e20 -FUN_02063e20: @ 0x02063E20 - ldr r2, _02063E3C @ =0x020B0B04 - mov r3, r0 - ldr r0, [r2] - ldr ip, _02063E40 @ =FUN_02064664 - add r0, r0, r1, lsl #5 - mov r1, r3 - bx ip - .align 2, 0 -_02063E3C: .4byte 0x020B0B04 -_02063E40: .4byte FUN_02064664 - arm_func_end FUN_02063e20 - - arm_func_start FUN_02063e44 -FUN_02063e44: @ 0x02063E44 - push {r3, lr} - cmp r0, #2 - popeq {r3, pc} - ldr r1, _02063E64 @ =0x020B0B04 - ldr r1, [r1] - add r0, r1, r0, lsl #5 - bl FUN_0206466c - pop {r3, pc} - .align 2, 0 -_02063E64: .4byte 0x020B0B04 - arm_func_end FUN_02063e44 - - arm_func_start FUN_02063e68 -FUN_02063e68: @ 0x02063E68 - cmp r0, #1 + arm_func_start ov00_022C8764 +ov00_022C8764: @ 0x022C8764 + and r0, r0, #0xf0000000 + cmp r0, #0xe0000000 moveq r0, #1 movne r0, #0 - and r0, r0, #0xff bx lr - arm_func_end FUN_02063e68 + arm_func_end ov00_022C8764 - arm_func_start FUN_02063e7c -FUN_02063e7c: @ 0x02063E7C - ldr r1, _02063E90 @ =0x020B0B04 - ldr ip, _02063E94 @ =FUN_020646E0 - ldr r1, [r1] - add r0, r1, r0, lsl #5 - bx ip - .align 2, 0 -_02063E90: .4byte 0x020B0B04 -_02063E94: .4byte FUN_020646E0 - arm_func_end FUN_02063e7c - - arm_func_start FUN_02063e98 -FUN_02063e98: @ 0x02063E98 - ldr r1, _02063EAC @ =0x020B0B04 - ldr ip, _02063EB0 @ =FUN_020646E8 - ldr r1, [r1] - add r0, r1, r0, lsl #5 - bx ip - .align 2, 0 -_02063EAC: .4byte 0x020B0B04 -_02063EB0: .4byte FUN_020646E8 - arm_func_end FUN_02063e98 - - arm_func_start FUN_02063eb4 -FUN_02063eb4: @ 0x02063EB4 - push {r3, lr} - ldr r3, _02063EDC @ =0x020B0B04 - mov ip, r0 - ldr r0, [r3] - mov r3, r1 - add r0, r0, r2, lsl #5 - mov r1, ip - mov r2, r3 - bl FUN_02064758 - pop {r3, pc} - .align 2, 0 -_02063EDC: .4byte 0x020B0B04 - arm_func_end FUN_02063eb4 - - arm_func_start FUN_02063ee0 -FUN_02063ee0: @ 0x02063EE0 - push {r4, r5, lr} - sub sp, sp, #0xc - ldr ip, _02063F2C @ =0x020B0B04 - ldrb r4, [sp, #0x18] - ldr r5, [ip] - mov ip, #0x60 - str r3, [sp] - mov r3, r2 - mov r2, r1 - ldr r1, [sp, #0x1c] - str r4, [sp, #4] - smlabb r0, r0, ip, r5 - str r1, [sp, #8] - ldr lr, [sp, #0x20] - ldr r1, [r0, #0xb0] - add r0, r5, lr, lsl #5 - bl FUN_0206478c - add sp, sp, #0xc - pop {r4, r5, pc} - .align 2, 0 -_02063F2C: .4byte 0x020B0B04 - arm_func_end FUN_02063ee0 - - arm_func_start FUN_02063f30 -FUN_02063f30: @ 0x02063F30 + arm_func_start ov00_022C8778 +ov00_022C8778: @ 0x022C8778 push {r4, r5, r6, lr} - ldr ip, _02063F74 @ =0x020B0B04 - mov r5, r1 - ldr ip, [ip] + ldr r1, _022C87F0 @ =0x02325078 + mov r4, #1 + ldr r1, [r1, #0x50] mov r6, r0 - mov r1, r3 - add r0, ip, #0x40 - mov r4, r2 - bl FUN_02064c58 - ldr r0, _02063F74 @ =0x020B0B04 - mov r1, r6 - ldr r0, [r0] - mov r2, r5 - mov r3, r4 - add r0, r0, #0x40 - bl FUN_02064cc8 - pop {r4, r5, r6, pc} - .align 2, 0 -_02063F74: .4byte 0x020B0B04 - arm_func_end FUN_02063f30 - - arm_func_start FUN_02063f78 -FUN_02063f78: @ 0x02063F78 - push {r3, lr} - ldr r3, _02063FA0 @ =0x020B0B04 - mov lr, r1 - ldr ip, [r3] - mov r3, r2 - mov r1, r0 - mov r2, lr - add r0, ip, #0x40 - bl FUN_02064c60 - pop {r3, pc} - .align 2, 0 -_02063FA0: .4byte 0x020B0B04 - arm_func_end FUN_02063f78 - - arm_func_start FUN_02063fa4 -FUN_02063fa4: @ 0x02063FA4 - ldr r2, _02063FC0 @ =0x020B0B04 - ldr ip, _02063FC4 @ =FUN_02064C90 - ldr r3, [r2] - mov r2, r1 - mov r1, r0 - add r0, r3, #0x40 - bx ip - .align 2, 0 -_02063FC0: .4byte 0x020B0B04 -_02063FC4: .4byte FUN_02064C90 - arm_func_end FUN_02063fa4 - - arm_func_start FUN_02063fc8 -FUN_02063fc8: @ 0x02063FC8 - push {r3, lr} - ldr r3, _02063FF0 @ =0x020B0B04 - mov lr, r1 - ldr ip, [r3] - mov r3, r2 - mov r1, r0 - mov r2, lr - add r0, ip, #0x58 - bl FUN_02064b0c - pop {r3, pc} - .align 2, 0 -_02063FF0: .4byte 0x020B0B04 - arm_func_end FUN_02063fc8 - - arm_func_start FUN_02063ff4 -FUN_02063ff4: @ 0x02063FF4 - ldr r2, _0206400C @ =0x020B0B04 - mov r1, r0 - ldr r0, [r2] - ldr ip, _02064010 @ =FUN_02064C0C - add r0, r0, #0x58 - bx ip - .align 2, 0 -_0206400C: .4byte 0x020B0B04 -_02064010: .4byte FUN_02064C0C - arm_func_end FUN_02063ff4 - - arm_func_start FUN_02064014 -FUN_02064014: @ 0x02064014 - push {r3, lr} - ldr ip, _02064048 @ =0x020B0B04 - mov r3, #0x60 - ldr ip, [ip] - mov lr, r1 - smlabb r0, r0, r3, ip - ldr r3, [r0, #0xb0] - add r0, ip, r2, lsl #5 - ldr r1, [r3, #0xc] - ldr r3, [r3, #8] - mov r2, lr - bl FUN_020646f0 - pop {r3, pc} - .align 2, 0 -_02064048: .4byte 0x020B0B04 - arm_func_end FUN_02064014 - - arm_func_start FUN_0206404c -FUN_0206404c: @ 0x0206404C - ldr r2, _02064074 @ =0x020B0B04 - ldr ip, _02064078 @ =FUN_020648FC - ldr r3, [r2] - mov r2, #0x60 - smlabb r0, r0, r2, r3 - ldr r2, [r0, #0xb0] - add r0, r3, r1, lsl #5 - ldr r1, [r2, #0x10] - mov r2, #0x10 - bx ip - .align 2, 0 -_02064074: .4byte 0x020B0B04 -_02064078: .4byte FUN_020648FC - arm_func_end FUN_0206404c - - arm_func_start FUN_0206407c -FUN_0206407c: @ 0x0206407C - ldr r2, _02064094 @ =0x020B0B04 - mov r1, r0 - ldr r0, [r2] - ldr ip, _02064098 @ =FUN_02064FE4 - add r0, r0, #0x40 - bx ip - .align 2, 0 -_02064094: .4byte 0x020B0B04 -_02064098: .4byte FUN_02064FE4 - arm_func_end FUN_0206407c - - arm_func_start FUN_0206409c -FUN_0206409c: @ 0x0206409C - ldr r2, _020640B8 @ =0x020B0B04 - mov r1, #0x60 - ldr r2, [r2] - add r2, r2, #0x58 - smlabb r0, r0, r1, r2 - add r0, r0, #0x50 - bx lr - .align 2, 0 -_020640B8: .4byte 0x020B0B04 - arm_func_end FUN_0206409c - - arm_func_start FUN_020640bc -FUN_020640bc: @ 0x020640BC - ldr ip, _020640C8 @ =MemZero - mov r1, #0x40 - bx ip - .align 2, 0 -_020640C8: .4byte MemZero - arm_func_end FUN_020640bc - - arm_func_start FUN_020640cc -FUN_020640cc: @ 0x020640CC - strh r1, [r0] - bx lr - arm_func_end FUN_020640cc - - arm_func_start FUN_020640d4 -FUN_020640d4: @ 0x020640D4 - strb r1, [r0, #0x3c] - bx lr - arm_func_end FUN_020640d4 - - arm_func_start FUN_020640dc -FUN_020640dc: @ 0x020640DC - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - str r5, [r6, #0xc] - mov r0, #1 - strb r0, [r6, #0x3d] - mov r0, #0 - strb r0, [r6, #0x3e] - str r0, [r6, #0x10] - ldrsh r0, [r6] - bl FUN_0206409c - mov r4, r0 - mov r0, r5 - bl FUN_02064228 - mov r1, r0 - add r0, r6, #0x2c - bl FUN_02009498 - mov r0, r5 - bl FUN_02064228 - mov r2, r0 - add r0, r6, #0x32 - add r1, r6, #0x34 - bl FUN_020094e8 - mov r0, r5 - bl FUN_02064228 - mov r1, r0 - add r0, r6, #0x28 - bl FUN_020090f4 - ldr r0, [r4, #8] - cmp r0, #0 - beq _020641E4 - mov r0, r5 - bl FUN_02063e98 - ldr r2, [r0, #4] - mov r1, #0 - strh r2, [r6, #0x38] - ldr r2, [r0, #8] - strh r2, [r6, #0x3a] - str r1, [r0, #4] - str r1, [r0, #8] - ldr r0, [r4, #8] - stmib r6, {r0, r1} - bl FUN_02063a20 - cmp r0, #0 - mov r0, #0 - beq _020641A0 - mov r1, r5 - bl FUN_02063a34 - b _020641C8 -_020641A0: - mov r2, r0 - mov r1, #1 - bl FUN_02009454 - mov r0, #2 - mov r1, #1 - mov r2, #0 - bl FUN_02009454 - mov r1, r5 - mov r0, #1 - bl FUN_02063a34 -_020641C8: - ldrsh r0, [r6] - mov r1, r5 - bl FUN_0206404c - mov r1, r5 - mov r0, #0 - bl FUN_02063e20 - b _02064220 -_020641E4: - mov r0, #0 - str r0, [r6, #4] - ldr r0, [r4, #0xc] - str r0, [r6, #8] - ldr r1, [r6, #0x10] - bl FUN_02063fa4 - ldr r0, [r6, #8] - bl FUN_0206407c - mov r0, #0 - mov r1, #2 - bl FUN_02063e20 - ldr r0, [r6, #8] - ldr r1, [r6, #0x10] - add r2, r6, #0x14 - bl FUN_02063f78 -_02064220: - mov r0, #1 - pop {r4, r5, r6, pc} - arm_func_end FUN_020640dc - - arm_func_start FUN_02064228 -FUN_02064228: @ 0x02064228 - cmp r0, #0 - cmpne r0, #2 - moveq r0, #0 - movne r0, #1 - bx lr - arm_func_end FUN_02064228 - - arm_func_start FUN_0206423c -FUN_0206423c: @ 0x0206423C - push {r4, lr} - mov r4, r0 - ldr r0, [r4, #0xc] - cmp r0, #2 - beq _02064264 - bl FUN_02063e98 - ldrsh r1, [r4, #0x38] - str r1, [r0, #4] - ldrsh r1, [r4, #0x3a] - str r1, [r0, #8] -_02064264: - ldr r0, [r4, #0xc] - bl FUN_02064228 - mov r1, r0 - add r0, r4, #0x2c - bl FUN_0200946c - ldr r0, [r4, #0xc] - bl FUN_02064228 - mov r2, r0 - ldrsh r0, [r4, #0x32] - ldrsh r1, [r4, #0x34] - bl FUN_020094c4 - ldr r0, [r4, #0xc] - bl FUN_02064228 - mov r1, r0 - add r0, r4, #0x28 - bl FUN_020090c0 - pop {r4, pc} - arm_func_end FUN_0206423c - - arm_func_start FUN_020642a8 -FUN_020642a8: @ 0x020642A8 - push {r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x14 - mov r5, r0 - ldr r1, [r5, #4] cmp r1, #0 - beq _020645C0 - ldrb r1, [r5, #0x3e] - ldr r4, [r5, #0xc] - cmp r1, #0 - beq _020642DC - bl FUN_0206423c - mov r0, #0 - b _02064658 -_020642DC: - ldrb r0, [r5, #0x3c] - cmp r0, #0 - movne r0, #1 - bne _02064658 - ldr r0, [r5, #0x14] - cmp r0, #0 - bne _02064484 - mov r0, #1 - str r0, [sp] - add r0, r5, #0x14 - stmib sp, {r0, r4} - mov r2, #0 - ldrsh r0, [r5] - mov r3, r2 - add r1, r5, #0x10 - bl FUN_02063ee0 - mov r6, r0 - ldr r2, [r5, #0xc] - add r0, sp, #0xc - mov r1, #4 - bl FUN_02063eb4 - cmp r6, #0 - beq _02064464 - ldrsh r0, [sp, #0xc] - cmp r0, #0 - movne r0, #1 - strbne r0, [r5, #0x1c] + mov r0, r4 + cmpne r6, r1 movne r0, #0 - strne r0, [r5, #0x20] - strne r0, [r5, #0x24] - ldrsh r1, [sp, #0xe] - cmp r1, #0 - beq _020643A4 - cmp r1, #0x63 - ldreq r1, _02064660 @ =0x00000C1C - moveq r0, #0 - streq r1, [r5, #0x20] - streq r0, [r5, #0x24] - beq _020643A4 - cmp r1, #0 - ldr r0, _02064660 @ =0x00000C1C - ble _02064394 - bl DivideInt - str r0, [r5, #0x24] - str r0, [r5, #0x20] - b _020643A4 -_02064394: - str r0, [r5, #0x20] - ldrsh r1, [sp, #0xe] - bl DivideInt - str r0, [r5, #0x24] -_020643A4: - ldrb r0, [r5, #0x1c] - cmp r0, #0 - beq _02064478 - ldr r1, [r5, #4] - ldr r0, [r5, #0x20] - ldr r2, [r1, #0x10] - mov r1, #0x64 - add sb, r2, #0x380 - bl DivideInt - mov r8, #0 - mov r7, r0 - mov r6, r8 -_020643D4: - mov r0, r4 - bl FUN_02063e7c - add r1, r8, #0xe0 - lsl r2, r1, #0x10 - mov r1, sb - mov r3, r7 - asr r2, r2, #0x10 - str r6, [sp] - bl FUN_0200c020 - add r8, r8, #1 - cmp r8, #0x10 - add sb, sb, #4 - blt _020643D4 - mov r0, r4 - bl FUN_02063e7c - bl FUN_0200a504 - mov r1, r4 - mov r0, #3 - bl FUN_02063bcc - mov r0, r4 - bl FUN_02063e68 - mov r2, r0 - mov r0, #0x50 - mov r1, r0 - bl FUN_020094c4 - ldr r1, [r5, #0x20] - ldr r0, [r5, #0x24] - adds r1, r1, r0 - str r1, [r5, #0x20] - movmi r0, #0 - strmi r0, [r5, #0x20] - bmi _02064478 - ldr r0, _02064660 @ =0x00000C1C - cmp r1, r0 - strgt r0, [r5, #0x20] - b _02064478 -_02064464: - mov r0, r4 - bl FUN_02063e44 - mov r0, #1 - strb r0, [r5, #0x3e] - b _02064658 -_02064478: - ldr r0, [r5, #0x10] - add r0, r0, #1 - str r0, [r5, #0x10] -_02064484: - ldrb r0, [r5, #0x1c] - cmp r0, #0 - bne _020645AC - ldrsh r0, [r5] - bl FUN_0206409c - ldr r1, [r5, #0x10] - mov r8, #0xff - subs r2, r1, #1 - ldr r1, [r0, #8] - movmi r2, #0 - cmp r1, #0 - beq _020645AC - ldm r1, {r0, r1} - sub r0, r0, #1 - cmp r2, r0 - ldr r7, [r1, r2, lsl #2] - bne _02064504 - ldr r1, [r7, #0x1c] - mov r0, r4 - asr r1, r1, #8 - lsr r2, r1, #0x1f - rsb r1, r2, r1, lsl #24 - add r8, r2, r1, ror #24 - bl FUN_02063e68 - rsb r1, r8, #0xff - lsl r3, r1, #0x10 - lsl r1, r8, #0x10 - mov r2, r0 - asr r0, r1, #0x10 - asr r1, r3, #0x10 - bl FUN_020094c4 - b _0206458C -_02064504: - ldrsh r0, [r7, #0xc] - add r1, r1, r2, lsl #2 - ldr r6, [r1, #4] - cmp r0, #0 - bne _0206458C - ldr r0, [r7, #0x1c] - cmp r0, #0xff00 - beq _0206458C - ldrsh r1, [r7, #8] - ldr r0, [r5, #0x14] - sub r0, r1, r0 - lsl r0, r0, #8 - lsl r1, r1, #8 - bl FUN_02001ab0 - ldr r7, [r7, #0x1c] - ldr r1, [r6, #0x1c] - sub r1, r1, r7 - bl MultiplyByFixedPoint - add r0, r0, r7 - asr r0, r0, #8 - lsr r1, r0, #0x1f - rsb r0, r1, r0, lsl #24 - add r8, r1, r0, ror #24 - add r1, r8, r8, lsr #31 - mov r0, r4 - asr r6, r1, #1 - bl FUN_02063e68 - rsb r1, r6, #0x80 - lsl r3, r1, #0x10 - lsl r1, r6, #0x10 - mov r2, r0 - asr r0, r1, #0x10 - asr r1, r3, #0x10 - bl FUN_020094c4 -_0206458C: - cmp r8, #0xff - mov r1, r4 - bne _020645A4 - mov r0, #0 - bl FUN_02063bcc - b _020645AC -_020645A4: - mov r0, #2 - bl FUN_02063bcc -_020645AC: - ldr r1, [r5, #0x14] - mov r0, #1 - sub r1, r1, #1 - str r1, [r5, #0x14] - b _02064658 -_020645C0: - ldr r0, [r5, #8] - cmp r0, #0 - beq _02064654 - ldr r0, [r5, #0x14] - cmp r0, #0 - bne _0206460C - ldr r0, [r5, #0x10] - add r2, r5, #0x14 - add r1, r0, #1 - str r1, [r5, #0x10] - ldr r0, [r5, #8] - bl FUN_02063f78 - cmp r0, #0 - bne _0206460C - mov r1, #0 - str r1, [r5, #0x10] - ldr r0, [r5, #8] - add r2, r5, #0x14 - bl FUN_02063f78 -_0206460C: - ldrb r0, [r5, #0x3c] - ldr r1, [r5, #0x10] - cmp r0, #0 - ldr r0, [r5, #8] - beq _02064634 - ldr r2, [r5, #0x14] - mov r3, #1 - bl FUN_02063f30 - mov r0, #1 - b _02064658 -_02064634: - ldr r2, [r5, #0x14] - mov r3, #0 - bl FUN_02063f30 - ldr r1, [r5, #0x14] - mov r0, #1 - sub r1, r1, #1 - str r1, [r5, #0x14] - b _02064658 -_02064654: - mov r0, #0 -_02064658: - add sp, sp, #0x14 - pop {r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_02064660: .4byte 0x00000C1C - arm_func_end FUN_020642a8 - - arm_func_start FUN_02064664 -FUN_02064664: @ 0x02064664 - strh r1, [r0, #0x14] - bx lr - arm_func_end FUN_02064664 - - arm_func_start FUN_0206466c -FUN_0206466c: @ 0x0206466C - push {r3, r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #8 - mov r8, #0 - mov sb, r0 - add r5, sp, #0 - mov r4, r8 - mov r6, r8 -_02064688: - mov r7, r6 -_0206468C: - str r8, [sp, #4] - str r7, [sp] - ldr r0, [sb, #8] - mov r1, r5 + mov r5, r4 mov r2, r4 - bl FUN_0200b3fc - add r7, r7, #1 - cmp r7, #0x40 - blt _0206468C - add r8, r8, #1 - cmp r8, #0x20 - blt _02064688 - ldr r0, [sb, #8] - bl FUN_0200b330 - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_0206466c -_020646CC: - .byte 0x06, 0x00, 0x80, 0xE9 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x0C, 0x10, 0x80, 0xE5, 0x10, 0x30, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_020646E0 -FUN_020646E0: @ 0x020646E0 - ldr r0, [r0, #0x10] - bx lr - arm_func_end FUN_020646E0 - - arm_func_start FUN_020646E8 -FUN_020646E8: @ 0x020646E8 - ldr r0, [r0, #8] - bx lr - arm_func_end FUN_020646E8 - - arm_func_start FUN_020646f0 -FUN_020646f0: @ 0x020646F0 - ldr r0, [r0, #4] - mov ip, #0 - add r2, r0, r2 - b _0206474C -_02064700: - ldr r0, [r1] - add ip, ip, #1 - str r0, [r2] - ldr r0, [r1, #4] - str r0, [r2, #4] - ldr r0, [r1, #8] - str r0, [r2, #8] - ldr r0, [r1, #0xc] - str r0, [r2, #0xc] - ldr r0, [r1, #0x10] - str r0, [r2, #0x10] - ldr r0, [r1, #0x14] - str r0, [r2, #0x14] - ldr r0, [r1, #0x18] - str r0, [r2, #0x18] - ldr r0, [r1, #0x1c] - add r1, r1, #0x20 - str r0, [r2, #0x1c] - add r2, r2, #0x20 -_0206474C: - cmp ip, r3 - bls _02064700 - bx lr - arm_func_end FUN_020646f0 - - arm_func_start FUN_02064758 -FUN_02064758: @ 0x02064758 - push {r3, lr} - mov lr, #0 - b _02064780 -_02064764: - add r3, r0, lr, lsl #1 - ldrsh ip, [r3, #0x16] - add r3, lr, #1 - lsl lr, lr, #1 - lsl r3, r3, #0x10 - strh ip, [r1, lr] - lsr lr, r3, #0x10 -_02064780: - cmp lr, r2 - blo _02064764 - pop {r3, pc} - arm_func_end FUN_02064758 - - arm_func_start FUN_0206478c -FUN_0206478c: @ 0x0206478C - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x10 - ldrb r6, [sp, #0x3c] - mov sl, r0 - mov r5, r1 - mov r4, r2 - str r3, [sp] - cmp r6, #0 - beq _020647B4 - bl FUN_0206466c -_020647B4: - ldr r2, [r5, #0x14] - ldrb r0, [r2, #8] cmp r0, #0 - beq _020647DC - ldrb r0, [r2, #0xa] - ldr r1, [r4] - cmp r1, r0 - ldrbge r0, [r2, #9] - strge r0, [r4] - b _020647F0 -_020647DC: - ldr r1, [r4] - ldr r0, [r5] - cmp r1, r0 - movge r0, #0 - bge _020648F0 -_020647F0: - ldr r2, [r5, #4] - ldr r0, [r4] - ldr r1, [sp, #0x40] - ldr r2, [r2, r0, lsl #2] - mov sb, #0 - ldrsh r0, [r2, #6] - cmp r1, #0 - ldrsh r8, [r2, #4] - str r0, [sp, #4] - ldrshne r0, [r2, #8] - mov r5, sb - add fp, r2, #0x24 - strne r0, [r1] - ldrsh r0, [r2, #0xc] - ldrsh r7, [sp, #0x38] - strh r0, [sl, #0x16] - ldrsh r0, [r2, #0xe] - strh r0, [sl, #0x18] - ldrsh r0, [r2, #0x10] - strh r0, [sl, #0x1a] - ldrsh r0, [r2, #0x12] - strh r0, [sl, #0x1c] - b _020648D8 -_0206484C: - cmp r7, #0x18 - bge _020648E4 - ldr r6, [sp] - mov r4, #0 - cmp r8, #0 - ble _020648D0 - b _020648C8 -_02064868: - cmp sb, #0 - bne _02064888 - ldrh r2, [fp], #2 - tst r2, #0xf000 - ldreq r0, _020648F8 @ =0x000003FF - andeq sb, r2, r0 - moveq r2, #0 - b _0206488C -_02064888: - mov r2, #0 -_0206488C: - cmp sb, #0 - subne sb, sb, #1 - cmp r6, #0 - blt _020648C0 - cmp r6, #0x20 - bge _020648C0 - cmp r7, #0 - blt _020648C0 - str r6, [sp, #8] - str r7, [sp, #0xc] - ldr r0, [sl, #8] - add r1, sp, #8 - bl FUN_0200b3fc -_020648C0: - add r4, r4, #1 - add r6, r6, #1 -_020648C8: - cmp r4, r8 - blt _02064868 -_020648D0: - add r5, r5, #1 - add r7, r7, #1 -_020648D8: - ldr r0, [sp, #4] - cmp r5, r0 - blt _0206484C -_020648E4: - ldr r0, [sl, #8] - bl FUN_0200b330 - mov r0, #1 -_020648F0: - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + bne _022C87B8 + ldr r0, _022C87F4 @ =0x7F000001 + cmp r6, r0 + movne r2, #0 +_022C87B8: + cmp r2, #0 + bne _022C87D0 + mov r0, r6 + bl ov00_022C8728 + cmp r0, #0 + moveq r5, #0 +_022C87D0: + cmp r5, #0 + bne _022C87E8 + mov r0, r6 + bl ov00_022C8764 + cmp r0, #0 + moveq r4, #0 +_022C87E8: + mov r0, r4 + pop {r4, r5, r6, pc} .align 2, 0 -_020648F8: .4byte 0x000003FF - arm_func_end FUN_0206478c +_022C87F0: .4byte 0x02325078 +_022C87F4: .4byte 0x7F000001 + arm_func_end ov00_022C8778 - arm_func_start FUN_020648FC -FUN_020648FC: @ 0x020648FC + arm_func_start ov00_022C87F8 +ov00_022C87F8: @ 0x022C87F8 + mov ip, #0 +_022C87FC: + ldrh r3, [r0], #2 + ldrh r2, [r1], #2 + cmp r3, r2 + movne r0, #1 + bxne lr + add ip, ip, #1 + cmp ip, #3 + blt _022C87FC + mov r0, #0 + bx lr + arm_func_end ov00_022C87F8 + + arm_func_start ov00_022C8824 +ov00_022C8824: @ 0x022C8824 push {r3, r4, r5, r6, r7, lr} mov r7, r0 - ldr r0, [r7, #0x10] mov r6, r1 mov r5, r2 - cmp r0, #0 - beq _02064930 - mov r2, r6 + ldr r0, _022C8878 @ =0x02318850 + add r1, r7, #6 + mov r2, #6 + mov r4, r3 + bl FUN_0207C4C8 + mov r0, r7 mov r3, r5 - mov r1, #0xe0 - bl FUN_0200a5b0 - ldr r0, [r7, #0x10] - bl FUN_0200a504 -_02064930: - ldr r0, [r7, #0xc] + add r1, r7, #6 + sub r2, r6, #6 + str r4, [sp] + bl ov00_022D7204 cmp r0, #0 - popeq {r3, r4, r5, r6, r7, pc} - mov r4, #0 - b _02064960 -_02064944: - add r0, r4, #0xe0 - lsl r1, r0, #0x10 - ldr r0, [r7, #0xc] - lsr r1, r1, #0x10 - add r2, r6, r4, lsl #2 - bl FUN_0200a29c - add r4, r4, #1 -_02064960: - cmp r4, r5 - blt _02064944 - ldr r0, [r7, #0xc] - bl FUN_0200a174 + movlt r1, #1 + ldr r0, _022C887C @ =0x02325078 + movge r1, #0 + strb r1, [r0] pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_020648FC + .align 2, 0 +_022C8878: .4byte 0x02318850 +_022C887C: .4byte 0x02325078 + arm_func_end ov00_022C8824 - arm_func_start FUN_02064974 -FUN_02064974: @ 0x02064974 - push {r4, lr} - mov r2, #0x60 - smlabb r4, r1, r2, r0 - ldrb r0, [r4, #0x40] + arm_func_start ov00_022C8880 +ov00_022C8880: @ 0x022C8880 + push {r4, r5, r6, r7, r8, lr} + ldr r4, _022C8A68 @ =0x02325078 + mov r7, r0 + ldr ip, [r4, #0x58] + mov r6, r2 + cmp ip, #0 + ldrne r0, [r4, #0x5c] + mov r5, r3 + cmpne r0, #0 + popeq {r4, r5, r6, r7, r8, pc} + ldr r0, [sp, #0x1c] + add r0, r5, r0 + cmp r0, #8 + poplo {r4, r5, r6, r7, r8, pc} + ldr r2, _022C8A6C @ =0x000005E4 + cmp r0, r2 + pophi {r4, r5, r6, r7, r8, pc} + ldr r2, _022C8A70 @ =0x02318850 + ldrb r4, [r6] + ldrb r3, [r2] + cmp r4, r3 + ldrbeq r4, [r6, #1] + ldrbeq r3, [r2, #1] + cmpeq r4, r3 + ldrbeq r3, [r6, #2] + ldrbeq r2, [r2, #2] + cmpeq r3, r2 + ldrbeq r2, [r6, #6] + cmpeq r2, #8 + popne {r4, r5, r6, r7, r8, pc} + ldrb r2, [r6, #7] + cmp r2, #0 + cmpne r2, #6 + popne {r4, r5, r6, r7, r8, pc} + ldr r2, _022C8A68 @ =0x02325078 + add r0, r0, #9 + bic r0, r0, #1 + ldr r8, [r2, #0x28] + lsl r0, r0, #0x10 + ldr lr, [r2, #0x28] + ldr r4, [r2, #0x30] + lsr r3, r0, #0x10 + cmp lr, r4 + add r4, r8, r0, lsr #16 + bhs _022C8940 + ldr r0, [r2, #0x30] + cmp r0, r4 + popls {r4, r5, r6, r7, r8, pc} +_022C8940: + ldr r0, _022C8A68 @ =0x02325078 + ldr r2, [r0, #0x5c] + cmp r4, r2 + bne _022C8964 + ldr r0, [r0, #0x30] + mov r4, #0 cmp r0, #0 - beq _0206499C + bne _022C8980 + pop {r4, r5, r6, r7, r8, pc} +_022C8964: + ldr r2, [r0, #0x5c] + cmp r4, r2 + bls _022C8980 + ldr r0, [r0, #0x30] + mov r4, r3 + cmp r0, r3 + popls {r4, r5, r6, r7, r8, pc} +_022C8980: + ldr r0, _022C8A68 @ =0x02325078 + ldr lr, [r0, #0x28] + ldr r2, [r0, #0x5c] + add lr, lr, r3 + cmp lr, r2 + bls _022C89C0 + ldr lr, [r0, #0x5c] + ldr r2, [r0, #0x28] + sub r2, lr, r2 + cmp r2, #2 + ldrhs r0, [r0, #0x28] + movhs r2, #0 + strhhs r2, [ip, r0] + ldr r0, _022C8A68 @ =0x02325078 + mov r2, #0 + str r2, [r0, #0x28] +_022C89C0: + ldr ip, _022C8A68 @ =0x02325078 + mov r0, r1 + ldr lr, [ip, #0x58] + ldr r1, [ip, #0x28] + mov r2, #6 + strh r3, [lr, r1] + ldr r3, [ip, #0x58] + ldr r1, [ip, #0x28] + add r1, r3, r1 + add r1, r1, #2 + bl FUN_0207C4C8 + ldr r1, _022C8A68 @ =0x02325078 + mov r0, r7 + ldr r3, [r1, #0x58] + ldr r1, [r1, #0x28] + mov r2, #6 + add r1, r3, r1 + add r1, r1, #8 + bl FUN_0207C4C8 + ldr r1, _022C8A68 @ =0x02325078 + add r0, r6, #6 + ldr r3, [r1, #0x58] + ldr r1, [r1, #0x28] + sub r2, r5, #6 + add r1, r3, r1 + add r1, r1, #0xe + bl FUN_0207C4C8 + ldr r0, [sp, #0x18] + cmp r0, #0 + ldrne r2, [sp, #0x1c] + cmpne r2, #0 + beq _022C8A5C + ldr r1, _022C8A68 @ =0x02325078 + ldr r3, [r1, #0x58] + ldr r1, [r1, #0x28] + add r1, r3, r1 + add r1, r1, #8 + add r1, r1, r5 + bl FUN_0207C4C8 +_022C8A5C: + ldr r0, _022C8A68 @ =0x02325078 + str r4, [r0, #0x28] + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022C8A68: .4byte 0x02325078 +_022C8A6C: .4byte 0x000005E4 +_022C8A70: .4byte 0x02318850 + arm_func_end ov00_022C8880 + + arm_func_start ov00_022C8A74 +ov00_022C8A74: @ 0x022C8A74 + push {r3, lr} + sub sp, sp, #8 + mov ip, #0 + str ip, [sp] + str ip, [sp, #4] + bl ov00_022C8880 + ldr r0, _022C8AC8 @ =0x02325078 + ldr r1, [r0, #0x54] + cmp r1, #0 + addeq sp, sp, #8 + popeq {r3, pc} + ldr r0, [r0, #0x54] + bl FUN_02079830 + cmp r0, #0 + addne sp, sp, #8 + popne {r3, pc} + ldr r0, _022C8AC8 @ =0x02325078 + ldr r0, [r0, #0x54] + bl FUN_02079940 + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_022C8AC8: .4byte 0x02325078 + arm_func_end ov00_022C8A74 + + arm_func_start ov00_022C8ACC +ov00_022C8ACC: @ 0x022C8ACC + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r7, r0 + bl FUN_0207B7E4 + ldr sb, _022C8B84 @ =0x02325078 + mov r6, r0 + ldr r1, [sb, #0x30] + ldr r0, [sb, #0x28] + cmp r1, r0 + bne _022C8B20 + mov r5, #0 + ldr r8, _022C8B88 @ =0x022B966C + mov r4, r5 +_022C8AFC: + ldr r1, [r8, #4] + mov r0, r5 + str r1, [sb, #0x54] + bl FUN_02079888 + str r4, [sb, #0x54] + ldr r1, [sb, #0x30] + ldr r0, [sb, #0x28] + cmp r1, r0 + beq _022C8AFC +_022C8B20: + mov r0, r6 + bl FUN_0207B7F8 + ldr r0, _022C8B84 @ =0x02325078 + mov r3, #0 + ldr r5, [r0, #0x58] + mov r1, r3 +_022C8B38: + ldr r4, [r0, #0x5c] + ldr r2, [r0, #0x30] + sub r2, r4, r2 + cmp r2, #2 + strlo r3, [r0, #0x30] + ldr r2, [r0, #0x30] + ldrh r2, [r5, r2] + cmp r2, #0 + streq r1, [r0, #0x30] + cmp r2, #0 + beq _022C8B38 + sub r1, r2, #2 + ldr r0, _022C8B84 @ =0x02325078 + str r1, [r7] + ldr r1, [r0, #0x58] + ldr r0, [r0, #0x30] + add r0, r1, r0 + add r0, r0, #2 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022C8B84: .4byte 0x02325078 +_022C8B88: .4byte 0x022B966C + arm_func_end ov00_022C8ACC + + arm_func_start ov00_022C8B8C +ov00_022C8B8C: @ 0x022C8B8C + push {r3, lr} + bl FUN_0207B7E4 + ldr r1, _022C8BCC @ =0x02325078 + ldr ip, [r1, #0x30] + ldr r3, [r1, #0x58] + ldr r2, [r1, #0x30] + ldrh r2, [r3, r2] + add r2, ip, r2 + str r2, [r1, #0x30] + ldr r3, [r1, #0x30] + ldr r2, [r1, #0x5c] + cmp r3, r2 + movhs r2, #0 + strhs r2, [r1, #0x30] + bl FUN_0207B7F8 + pop {r3, pc} + .align 2, 0 +_022C8BCC: .4byte 0x02325078 + arm_func_end ov00_022C8B8C + + arm_func_start ov00_022C8BD0 +ov00_022C8BD0: @ 0x022C8BD0 + push {r3, r4, r5, r6, r7, lr} + mov r5, r0 + bl FUN_0207B7E4 + ldr r1, _022C8C88 @ =0x7F000001 + mov r4, r0 + cmp r5, r1 + ldrne r0, _022C8C8C @ =0x02325078 + mov r7, #0 + ldrne r0, [r0, #0x50] + cmpne r5, r0 + ldreq r7, _022C8C90 @ =0x02325560 + beq _022C8C78 + mov r0, r5 + bl ov00_022C8728 + cmp r0, #0 + bne _022C8C20 + mov r0, r5 + bl ov00_022C8764 + cmp r0, #0 + beq _022C8C28 +_022C8C20: + ldr r7, _022C8C94 @ =0x02318848 + b _022C8C78 +_022C8C28: + ldr r1, _022C8C98 @ =0x023250F8 + mov r6, r7 +_022C8C30: + ldr r0, [r1] + cmp r5, r0 + bne _022C8C68 + bl FUN_0207AE44 + mov r2, #0xc + mul r3, r6, r2 + ldr r2, _022C8C98 @ =0x023250F8 + lsr r5, r0, #0x10 + add r0, r2, r3 + ldr r2, _022C8C9C @ =0x02325102 + orr r5, r5, r1, lsl #16 + strh r5, [r2, r3] + add r7, r0, #4 + b _022C8C78 +_022C8C68: + add r6, r6, #1 + cmp r6, #8 + add r1, r1, #0xc + blo _022C8C30 +_022C8C78: mov r0, r4 - mov r1, r2 - bl MemZero - pop {r4, pc} -_0206499C: + bl FUN_0207B7F8 + mov r0, r7 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022C8C88: .4byte 0x7F000001 +_022C8C8C: .4byte 0x02325078 +_022C8C90: .4byte 0x02325560 +_022C8C94: .4byte 0x02318848 +_022C8C98: .4byte 0x023250F8 +_022C8C9C: .4byte 0x02325102 + arm_func_end ov00_022C8BD0 + + arm_func_start ov00_022C8CA0 +ov00_022C8CA0: @ 0x022C8CA0 + push {r3, r4, lr} + sub sp, sp, #0x2c + mov r4, r0 + add r0, sp, #0 + mov r1, #0 + mov r2, #0x2a + bl FUN_0207C40C + add r0, sp, #0 + mov r1, #0xff + mov r2, #6 + bl FUN_0207C40C + ldr r0, _022C8D8C @ =0x02325560 + add r1, sp, #6 + mov r2, #6 + bl FUN_0207C4C8 + mov r0, #1 + ldr r1, _022C8D90 @ =0x00000608 + strb r0, [sp, #0xf] + strh r1, [sp, #0xc] + strb r0, [sp, #0x15] + mov r0, #8 + ldr r1, _022C8D94 @ =0x00000406 + strb r0, [sp, #0x10] + strh r1, [sp, #0x12] + ldr r0, _022C8D8C @ =0x02325560 + add r1, sp, #0x16 + mov r2, #6 + bl FUN_0207C4C8 + ldr r0, _022C8D98 @ =0x02325078 + lsr r1, r4, #0x10 + ldr r3, [r0, #0x50] + lsl r0, r1, #0x10 + lsr r2, r0, #0x10 + lsl r0, r4, #0x10 + lsr r1, r0, #0x10 + lsr r0, r3, #0x10 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + lsl r0, r3, #0x10 + lsr r3, r0, #0x10 + lsl r0, r4, #8 + orr r0, r0, r4, asr #8 + strh r0, [sp, #0x1c] + lsl r0, r3, #8 + orr r0, r0, r3, asr #8 + strh r0, [sp, #0x1e] + lsl r0, r2, #8 + orr r0, r0, r2, asr #8 + strh r0, [sp, #0x26] + lsl r0, r1, #8 + orr r0, r0, r1, asr #8 + mov r2, #0 + strh r0, [sp, #0x28] + add r0, sp, #0 + mov r1, #0x2a + mov r3, r2 + bl ov00_022C8824 + add sp, sp, #0x2c + pop {r3, r4, pc} + .align 2, 0 +_022C8D8C: .4byte 0x02325560 +_022C8D90: .4byte 0x00000608 +_022C8D94: .4byte 0x00000406 +_022C8D98: .4byte 0x02325078 + arm_func_end ov00_022C8CA0 + + arm_func_start ov00_022C8D9C +ov00_022C8D9C: @ 0x022C8D9C + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r7, #0 + ldr r4, _022C8E08 @ =0x02325078 + mov sb, r0 + mov r5, #0x64 + mov r6, r7 +_022C8DB4: + mov r0, sb + bl ov00_022C8CA0 + mov r8, r6 +_022C8DC0: ldr r0, [r4, #0x50] cmp r0, #0 - popeq {r4, pc} - ldrb r1, [r4, #0x41] - cmp r1, #2 - bne _020649CC - bl MemFree - ldr r1, [r4, #0x44] - ldr r2, [r4, #0x48] - ldr r0, _020649EC @ =0x020A46B0 - bl DebugPrint0 - b _020649DC -_020649CC: - bl MemFree - ldr r0, _020649F0 @ =0x020A46D0 - mov r1, r4 - bl DebugPrint0 -_020649DC: - mov r0, r4 - mov r1, #0x60 - bl MemZero - pop {r4, pc} - .align 2, 0 -_020649EC: .4byte 0x020A46B0 -_020649F0: .4byte 0x020A46D0 - arm_func_end FUN_02064974 - - arm_func_start FUN_020649f4 -FUN_020649f4: @ 0x020649F4 - push {r3, r4, r5, lr} - add r1, r0, #0x600 - mov lr, #1 - ldrsh r4, [r1, #2] - ldrsh r5, [r1] - mov ip, lr - mov r3, #0x60 - b _02064A6C -_02064A14: - cmp r4, r5 - movge r4, ip - smlabb r1, r4, r3, r0 - ldr r1, [r1, #0x50] - cmp r1, #0 - bne _02064A54 - add r1, r4, #1 - add r0, r0, #0x600 - strh r1, [r0, #2] - ldrsh r2, [r0, #2] - ldrsh r1, [r0] - cmp r2, r1 - movge r1, #1 - strhge r1, [r0, #2] - mov r0, r4 - pop {r3, r4, r5, pc} -_02064A54: - add r1, lr, #1 - add r2, r4, #1 - lsl r1, r1, #0x10 - lsl r2, r2, #0x10 - asr lr, r1, #0x10 - asr r4, r2, #0x10 -_02064A6C: - cmp lr, r5 - blt _02064A14 - mvn r0, #0 - pop {r3, r4, r5, pc} - arm_func_end FUN_020649f4 - - arm_func_start FUN_02064a7c -FUN_02064a7c: @ 0x02064A7C - push {r3, r4, lr} - sub sp, sp, #4 - mov r4, r1 - ldr r1, [r0, #0x50] - add r0, sp, #0 - bl HandleSir0TranslationVeneer - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - strb r0, [r4] - ldr r0, [sp] - add sp, sp, #4 - pop {r3, r4, pc} - arm_func_end FUN_02064a7c - - arm_func_start FUN_02064ab0 -FUN_02064ab0: @ 0x02064AB0 - push {r4, lr} - ldr r1, _02064AD8 @ =0x00000608 - mov r4, r0 - bl MemZero - add r0, r4, #0x600 - mov r1, #1 - strh r1, [r0, #2] - strb r1, [r4, #0x604] - strh r1, [r0, #2] - pop {r4, pc} - .align 2, 0 -_02064AD8: .4byte 0x00000608 - arm_func_end FUN_02064ab0 - - arm_func_start FUN_02064adc -FUN_02064adc: @ 0x02064ADC - push {r4, lr} - mov r1, #0x600 - mov r4, r0 - bl MemZero - add r0, r4, #0x600 - mov r1, #0x10 - strh r1, [r0] - pop {r4, pc} - arm_func_end FUN_02064adc -_02064AFC: - .byte 0x06, 0x0C, 0x80, 0xE2 - .byte 0x00, 0x10, 0xA0, 0xE3, 0xB0, 0x10, 0xC0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02064b0c -FUN_02064b0c: @ 0x02064B0C - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #4 - mov r5, r0 - add r0, r5, #0x600 - mov r8, r1 - ldrsh r4, [r0] - mov r7, r2 - mov r6, r3 - mov r0, #1 - mov r1, #0x60 - b _02064B64 -_02064B38: - smlabb r3, r0, r1, r5 - ldrb r2, [r3, #0x41] - cmp r2, #2 - ldreq r2, [r3, #0x44] - cmpeq r8, r2 - ldreq r2, [r3, #0x48] - cmpeq r7, r2 - beq _02064B70 - add r0, r0, #1 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 -_02064B64: - cmp r0, r4 - blt _02064B38 - mvn r0, #0 -_02064B70: - mvn r1, #0 - cmp r0, r1 - beq _02064B94 - mov r1, #0x60 - smlabb r2, r0, r1, r5 - ldrsh r1, [r2, #0x4c] - add r1, r1, #1 - strh r1, [r2, #0x4c] - b _02064C04 -_02064B94: + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} mov r0, r5 - bl FUN_020649f4 - mov r4, r0 - mov r0, #0x60 - smlabb r5, r4, r0, r5 - mov r0, #2 - strb r0, [r5, #0x41] - str r8, [r5, #0x44] - mov r0, r8 - mov r1, r7 - mov r3, r6 - str r7, [r5, #0x48] - add r2, r5, #0x50 - bl AllocAndLoadFileInPack - ldrsh r2, [r5, #0x4c] - add r1, sp, #0 - mov r0, r5 - add r2, r2, #1 - strh r2, [r5, #0x4c] - bl FUN_02064a7c - ldrb r1, [sp] - cmp r1, #0 - movne r1, #0 - strne r1, [r5, #0x58] - streq r0, [r5, #0x58] - moveq r0, #0 - str r0, [r5, #0x5c] - mov r0, r4 -_02064C04: - add sp, sp, #4 - pop {r3, r4, r5, r6, r7, r8, pc} - arm_func_end FUN_02064b0c - - arm_func_start FUN_02064C0C -FUN_02064C0C: @ 0x02064C0C - ldr ip, _02064C14 @ =FUN_02064974 - bx ip - .align 2, 0 -_02064C14: .4byte FUN_02064974 - arm_func_end FUN_02064C0C -_02064C18: - .byte 0x04, 0x10, 0x80, 0xE5, 0xB8, 0x20, 0xC0, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02064c24 -FUN_02064c24: @ 0x02064C24 - push {r4, lr} - mov lr, r1 - ldr ip, [lr, #0x10] - ldr r1, [lr, #0x18] - add ip, lr, ip - mov r4, r0 - mla r0, r1, r3, ip - ldr r1, [r4, #4] - mov r3, #0 - add r1, r1, r2 - ldr r2, [lr, #0x14] - bl FUN_0201e050 - pop {r4, pc} - arm_func_end FUN_02064c24 - - arm_func_start FUN_02064c58 -FUN_02064c58: @ 0x02064C58 - strb r1, [r0, #0x16] - bx lr - arm_func_end FUN_02064c58 - - arm_func_start FUN_02064c60 -FUN_02064c60: @ 0x02064C60 - ldr r0, [r1, #0xc] - cmp r2, r0 - movhs r0, #0 - bxhs lr - ldr ip, [r1, #8] - mov r0, #0x2c - add r1, r1, ip - mla r0, r2, r0, r1 - ldrsh r1, [r0, #8] - mov r0, #1 - str r1, [r3] - bx lr - arm_func_end FUN_02064c60 - - arm_func_start FUN_02064C90 -FUN_02064C90: @ 0x02064C90 - push {r3, lr} - ldr r3, [r1, #0xc] - cmp r2, r3 - movhs r0, #0 - pophs {r3, pc} - ldr ip, [r1, #8] - mov r3, #0x2c - add ip, r1, ip - mla r3, r2, r3, ip - ldrsh r3, [r3, #0x18] - mov r2, #0 - bl FUN_02064c24 - mov r0, #1 - pop {r3, pc} - arm_func_end FUN_02064C90 - - arm_func_start FUN_02064cc8 -FUN_02064cc8: @ 0x02064CC8 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x44 - ldr r4, [r1, #0xc] - mov sl, r0 - cmp r2, r4 - movhs r0, #0 - bhs _02064F84 - ldr r0, [r1, #0x28] - ldr r4, _02064F8C @ =0x020AFC70 - ldr r6, [r1, #8] - ldr r5, [sl, #4] - ldr r7, [r4] - str r5, [sp, #0x14] - add r5, r1, r6 - mov r4, #0x2c - mla r4, r2, r4, r5 - ldrsh r6, [sl, #8] - ldr r7, [r7, #0xe0] - add r0, r1, r0 - add r6, r7, r6, lsl #9 - str r6, [sp, #0x18] - ldrsh r8, [r4, #0x18] - add r7, sp, #0x1c - mov r6, #4 - add r8, r0, r8, lsl #3 -_02064D2C: - ldrh r0, [r8], #2 - subs r6, r6, #1 - strh r0, [r7], #2 - bne _02064D2C - ldrh r0, [r1, #4] - ldr r8, _02064F90 @ =0x00007FFF - mov r7, #0 - bic sb, r0, #0x1800 - mov r6, #0x39 - mov r0, #0x21 - strh sb, [sp, #0x24] - strh r8, [sp, #0x36] - strh r8, [sp, #0x38] - strh r8, [sp, #0x3a] - strh r8, [sp, #0x3c] - strh r7, [sp, #0x3e] - strh r6, [sp, #0x12] - strb r7, [sp, #0x42] - strb r0, [sp, #0x40] - ldr r0, [r1, #0xc] - sub r0, r0, #1 - cmp r2, r0 - bne _02064DA0 - ldrh r0, [r4, #0xa] - asr r0, r0, #8 - lsr r1, r0, #0x1f - rsb r0, r1, r0, lsl #24 - add r1, r1, r0, ror #24 - b _02064DEC -_02064DA0: - add r2, r2, #1 - mov r0, #0x2c - mla r5, r2, r0, r5 - ldrh r0, [r5, #0xa] + bl FUN_02079B14 + mov r0, sb + bl ov00_022C8BD0 cmp r0, #0 - beq _02064DEC - ldrsh r1, [r5, #8] - sub r0, r1, r3 - lsl r0, r0, #8 - lsl r1, r1, #8 - bl FUN_02001ab0 - ldrh r5, [r5, #0xa] - mov r1, r7 - bl MultiplyByFixedPoint - add r0, r0, r5 - asr r0, r0, #8 - lsr r1, r0, #0x1f - rsb r0, r1, r0, lsl #24 - add r1, r1, r0, ror #24 -_02064DEC: - ldrsh r6, [sp, #0x20] - and r0, r1, #0xf8 - asr r2, r0, #3 - mov r1, r6 - mov r0, #0x100 - strb r2, [sp, #0x41] - ldrsh r7, [sp, #0x22] - bl DivideInt - cmp r1, #0 - movne r5, #1 - moveq r5, #0 - mov r1, r6 - mov r0, #0x100 - bl DivideInt - add r0, r0, r5 - lsl r2, r0, #0x10 - mov r1, r7 - mov r0, #0xc0 - asr r5, r2, #0x10 - bl DivideInt - add r2, r5, #1 - cmp r1, #0 - str r2, [sp] - ldrsh r2, [sl, #0x14] - movne sb, #1 - moveq sb, #0 - mov r1, r7 - mov r0, #0xc0 - ldrsh r5, [sl, #0x12] - str r2, [sp, #4] - mvn r8, #0 - bl DivideInt - add r0, r0, sb - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add fp, r0, #1 - b _02064F2C -_02064E80: - ldr r0, [sp, #4] - add r1, r8, #1 - mla r2, r8, r7, r0 - mla r1, r7, r1, r0 - lsl r0, r2, #0x10 - asr r0, r0, #0x10 - lsl r1, r1, #0x10 - str r0, [sp, #8] - asr r0, r1, #0x10 - mvn sb, #0 - str r0, [sp, #0xc] - b _02064F14 -_02064EB0: - add r0, sb, #1 - mla r0, r6, r0, r5 - strh r0, [sp, #0x2a] - mla r0, sb, r6, r5 - strh r0, [sp, #0x26] - ldr r0, [sp, #8] - ldrsh r1, [sp, #0x26] - strh r0, [sp, #0x28] - ldr r0, [sp, #0xc] - ldrsh r2, [sp, #0x28] - strh r0, [sp, #0x30] - ldrb r0, [sp, #0x40] - strh r2, [sp, #0x2c] - strh r1, [sp, #0x2e] - ldrsh r2, [sp, #0x2a] - ldrsh r1, [sp, #0x30] - add r0, r0, #1 - strb r0, [sp, #0x40] - add r0, sp, #0x10 - strh r2, [sp, #0x32] - strh r1, [sp, #0x34] - bl FUN_01FF8CDC - add r0, sb, #1 - lsl r0, r0, #0x10 - asr sb, r0, #0x10 -_02064F14: - ldr r0, [sp] - cmp sb, r0 - blt _02064EB0 - add r0, r8, #1 - lsl r0, r0, #0x10 - asr r8, r0, #0x10 -_02064F2C: - cmp r8, fp - blt _02064E80 - ldrb r0, [sl, #0x16] - cmp r0, #0 - bne _02064F80 - ldrsh r2, [sl, #0x12] - ldrsh r0, [r4, #0x14] - mov r1, r6 - add r0, r2, r0 - strh r0, [sl, #0x12] - ldrsh r2, [sl, #0x14] - ldrsh r0, [r4, #0x16] - add r0, r2, r0 - strh r0, [sl, #0x14] - ldrsh r0, [sl, #0x12] - bl DivideInt - strh r1, [sl, #0x12] - ldrsh r0, [sl, #0x14] - mov r1, r7 - bl DivideInt - strh r1, [sl, #0x14] -_02064F80: - mov r0, #1 -_02064F84: - add sp, sp, #0x44 - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02064F8C: .4byte 0x020AFC70 -_02064F90: .4byte 0x00007FFF - arm_func_end FUN_02064cc8 - - arm_func_start FUN_02064F94 -FUN_02064F94: @ 0x02064F94 - push {r4, r5, r6, r7, r8, lr} - mov r8, r0 - mov r7, r1 - mov r6, r2 - mov r5, #0 - ldr r4, _02064FE0 @ =0x020AFC70 - b _02064FD4 -_02064FB0: - ldr r0, [r4] - lsl r3, r5, #0x10 - ldrsh r2, [r8, #8] - mov r1, r7 - add r0, r0, #0xcc - asr r3, r3, #0x10 - bl FUN_0201e380 - add r5, r5, #1 - add r7, r7, #4 -_02064FD4: - cmp r5, r6 - blt _02064FB0 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02064FE0: .4byte 0x020AFC70 - arm_func_end FUN_02064F94 - - arm_func_start FUN_02064FE4 -FUN_02064FE4: @ 0x02064FE4 - ldr r3, [r1, #0x20] - ldr ip, _02064FF8 @ =FUN_02064F94 - ldr r2, [r1, #0x24] - add r1, r1, r3 - bx ip - .align 2, 0 -_02064FF8: .4byte FUN_02064F94 - arm_func_end FUN_02064FE4 - - arm_func_start FUN_02064ffc -FUN_02064ffc: @ 0x02064FFC - mov r1, #0xc - smulbb r1, r0, r1 - ldr r0, _02065010 @ =0x020A5490 - ldr r0, [r0, r1] - bx lr - .align 2, 0 -_02065010: .4byte 0x020A5490 - arm_func_end FUN_02064ffc - - arm_func_start FUN_02065014 -FUN_02065014: @ 0x02065014 - mvn r1, #0 - cmp r0, r1 - beq _02065044 - mov r1, #0xc - smulbb r1, r0, r1 - ldr r0, _0206504C @ =0x020A5488 - ldrsh r0, [r0, r1] - cmp r0, #5 - cmpne r0, #6 - cmpne r0, #8 - moveq r0, #0 - bxeq lr -_02065044: - mov r0, #1 - bx lr - .align 2, 0 -_0206504C: .4byte 0x020A5488 - arm_func_end FUN_02065014 - - arm_func_start FUN_02065050 -FUN_02065050: @ 0x02065050 - push {r4, r5, r6, lr} - sub sp, sp, #0x10 - mov r5, r0 - ldrsh r0, [r5] - mvn r4, #0 - cmp r0, #0x2e - ldreq r0, _02065494 @ =0x020B0B08 - ldrsheq r0, [r0, #0x18] - strheq r0, [r5] - beq _020650B0 - cmp r0, #0x2f - ldreq r0, _02065494 @ =0x020B0B08 - ldrsheq r0, [r0, #0x16] - strheq r0, [r5] - beq _020650B0 - cmp r0, #0x30 - ldreq r0, _02065494 @ =0x020B0B08 - ldrsheq r0, [r0, #0x14] - strheq r0, [r5] - beq _020650B0 - cmp r0, #0x31 - ldreq r0, _02065494 @ =0x020B0B08 - ldrsheq r0, [r0, #0x12] - strheq r0, [r5] -_020650B0: - ldrsh r2, [r5] - mvn r0, #0 - cmp r2, r0 - beq _0206548C - mov r0, #0xc - smulbb r1, r2, r0 - ldr r0, _02065498 @ =0x020A7FF0 - ldrsh r0, [r0, r1] - cmp r0, #1 - bne _020651AC - cmp r2, #0 - bne _020651A4 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + add r8, r8, #1 + cmp r8, #0x14 + blo _022C8DC0 + add r7, r7, #1 + cmp r7, #8 + blo _022C8DB4 mov r0, #0 - mov r1, #0x34 - bl LoadScriptVariableValue - cmp r0, #8 - addls pc, pc, r0, lsl #2 - b _02065198 -_020650F8: @ jump table - b _0206511C @ case 0 - b _02065128 @ case 1 - b _02065198 @ case 2 - b _02065134 @ case 3 - b _02065180 @ case 4 - b _02065180 @ case 5 - b _02065180 @ case 6 - b _02065180 @ case 7 - b _02065180 @ case 8 -_0206511C: - mov r0, #1 - strh r0, [r5] - b _020651A4 -_02065128: - mov r0, #2 - strh r0, [r5] - b _020651A4 -_02065134: - bl FUN_020568a4 - mov r4, r0 - mvn r0, #0 - cmp r4, r0 - moveq r0, #1 - strheq r0, [r5] - beq _020651A4 - bl GetMainCharacter1MemberIdx - cmp r4, r0 - moveq r0, #1 - strheq r0, [r5] - beq _020651A4 - bl GetMainCharacter2MemberIdx - cmp r4, r0 - moveq r0, #2 - strheq r0, [r5] - movne r0, #4 - strhne r0, [r5] - b _020651A4 -_02065180: - mov r0, #0 - mov r1, #0x34 - bl LoadScriptVariableValue - add r0, r0, #1 - strh r0, [r5] - b _020651A4 -_02065198: - mvn r0, #0 - strh r0, [r5] - b _0206548C -_020651A4: - mov r4, #0 - b _02065488 -_020651AC: - cmp r0, #2 - bne _02065330 - mov r0, #0 - mov r1, #0x35 - bl LoadScriptVariableValue - mov r4, r0 - mov r0, #0 - mov r1, #0x36 - bl LoadScriptVariableValue - ldrsh r2, [r5] - sub r1, r2, #0xa - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - cmp r1, #1 - bhi _020652D0 - cmp r2, #0xa - bne _02065204 - cmp r4, #0 - moveq r4, r0 - b _02065210 -_02065204: - cmp r4, #0 - moveq r0, #0 - mov r4, r0 -_02065210: - cmp r4, #0xa - addls pc, pc, r4, lsl #2 - b _020652C4 -_0206521C: @ jump table - b _020652C4 @ case 0 - b _02065248 @ case 1 - b _02065254 @ case 2 - b _020652C4 @ case 3 - b _02065260 @ case 4 - b _020652AC @ case 5 - b _020652AC @ case 6 - b _020652AC @ case 7 - b _020652AC @ case 8 - b _020652AC @ case 9 - b _020652B8 @ case 10 -_02065248: - mov r0, #0xc - strh r0, [r5] - b _020652D0 -_02065254: - mov r0, #0xd - strh r0, [r5] - b _020652D0 -_02065260: - bl FUN_020568a4 - mov r4, r0 - mvn r0, #0 - cmp r4, r0 - moveq r0, #0xc - strheq r0, [r5] - beq _020652D0 - bl GetMainCharacter1MemberIdx - cmp r4, r0 - moveq r0, #0xc - strheq r0, [r5] - beq _020652D0 - bl GetMainCharacter2MemberIdx - cmp r4, r0 - moveq r0, #0xd - strheq r0, [r5] - movne r0, #0xf - strhne r0, [r5] - b _020652D0 -_020652AC: - add r0, r4, #0xb - strh r0, [r5] - b _020652D0 -_020652B8: - mov r0, #0x15 - strh r0, [r5] - b _020652D0 -_020652C4: - mvn r0, #0 - strh r0, [r5] - b _0206548C -_020652D0: - ldrsh r0, [r5] - sub r0, r0, #0xc - cmp r0, #9 - addls pc, pc, r0, lsl #2 - b _02065324 -_020652E4: @ jump table - b _0206530C @ case 0 - b _02065314 @ case 1 - b _02065324 @ case 2 - b _0206531C @ case 3 - b _02065324 @ case 4 - b _02065324 @ case 5 - b _02065324 @ case 6 - b _02065324 @ case 7 - b _02065324 @ case 8 - b _0206531C @ case 9 -_0206530C: - mov r4, #2 - b _02065488 -_02065314: - mov r4, #1 - b _02065488 -_0206531C: - mov r4, #2 - b _02065488 -_02065324: - mvn r0, #0 - strh r0, [r5] - b _0206548C -_02065330: - cmp r0, #3 - bne _02065420 - cmp r2, #0x16 - blt _020653A8 - cmp r2, #0x19 - bgt _020653A8 - mov r0, #0xd - sub r4, r2, #0x16 - bl OverlayIsLoaded - cmp r0, #0 - beq _0206536C - bl FUN_022E96E4 - cmp r0, #0 - mvnne r0, #0 - bne _0206548C -_0206536C: - mov r0, #5 - bl GetDebugFlag1 - cmp r0, #0 - beq _02065390 - ldrsh r0, [r5] - cmp r0, #0x17 - bgt _02065414 - mvn r0, #0 - b _0206548C -_02065390: - add r0, sp, #8 - bl FUN_02056e04 - cmp r4, r0 - bge _02065414 - mvn r0, #0 - b _0206548C -_020653A8: - cmp r2, #0x1a - blt _02065414 - cmp r2, #0x1d - bgt _02065414 - mov r0, #0xd - sub r4, r2, #0x1a - bl OverlayIsLoaded - cmp r0, #0 - beq _020653DC - bl FUN_022E96E4 - cmp r0, #0 - mvnne r0, #0 - bne _0206548C -_020653DC: - mov r0, #5 - bl GetDebugFlag1 - cmp r0, #0 - beq _02065400 - ldrsh r0, [r5] - cmp r0, #0x1c - bgt _02065414 - mvn r0, #0 - b _0206548C -_02065400: - add r0, sp, #0 - bl FUN_02056d70 - cmp r4, r0 - mvnlt r0, #0 - blt _0206548C -_02065414: - mvn r0, #0 - strh r0, [r5] - b _0206548C -_02065420: - bl FUN_020568a4 - ldrsh r1, [r5] - mov r6, r0 - cmp r1, #0x3f - bne _02065488 - mvn r1, #0 - cmp r6, r1 - moveq r0, #0x3c - strheq r0, [r5] - beq _02065488 - bl FUN_02055410 - cmp r0, #0 - movne r0, #0x3c - strhne r0, [r5] - bne _02065488 - mov r0, r6 - bl FUN_02055474 - cmp r0, #0 - movne r0, #0x3d - strhne r0, [r5] - bne _02065488 - mov r0, r6 - bl FUN_020554d8 - cmp r0, #0 - movne r0, #0x3e - strhne r0, [r5] -_02065488: - mov r0, r4 -_0206548C: - add sp, sp, #0x10 - pop {r4, r5, r6, pc} + pop {r3, r4, r5, r6, r7, r8, sb, pc} .align 2, 0 -_02065494: .4byte 0x020B0B08 -_02065498: .4byte 0x020A7FF0 - arm_func_end FUN_02065050 +_022C8E08: .4byte 0x02325078 + arm_func_end ov00_022C8D9C - arm_func_start FUN_0206549c -FUN_0206549c: @ 0x0206549C - push {r4, r5, r6, lr} - sub sp, sp, #0x10 - mov r6, r0 - mov r5, r1 - bl FUN_02065050 - mov r4, r0 - mov r0, #0 - strh r0, [r5] - ldrsh lr, [r6] - sub r1, r0, #1 - cmp lr, r1 - subeq r0, r0, #1 - beq _0206595C - mov r1, #0xc - smulbb r3, lr, r1 - ldr ip, _02065964 @ =0x020A7FF0 - ldrsh r2, [ip, r3] - add r3, ip, r3 - cmp r2, #3 - bne _020656B4 - cmp lr, #0x16 - blt _020655BC - cmp lr, #0x19 - bgt _020655BC - mov r0, #0xd - sub r4, lr, #0x16 - bl OverlayIsLoaded - cmp r0, #0 - beq _02065540 - bl FUN_022E96E4 - cmp r0, #0 - beq _02065540 - ldr r0, _02065968 @ =0x020A68BC - lsl r1, r4, #1 - ldrsh r0, [r0, r1] - strh r0, [r5] - cmp r0, #0 - mvneq r0, #0 - strheq r0, [r6] - mvn r0, #0 - b _0206595C -_02065540: - mov r0, #5 - bl GetDebugFlag1 - cmp r0, #0 - beq _02065580 - ldrsh r0, [r6] - cmp r0, #0x16 - moveq r0, #0x5f - strheq r0, [r5] - subeq r0, r0, #0x60 - beq _0206595C - cmp r0, #0x17 - bne _020656A8 - mov r0, #0x22 - strh r0, [r5] - sub r0, r0, #0x23 - b _0206595C -_02065580: - add r0, sp, #8 - bl FUN_02056e04 - cmp r4, r0 - bge _020656A8 - ldr r0, _0206596C @ =0x020B0A48 - add r1, sp, #8 - lsl r2, r4, #1 - ldrsh r2, [r1, r2] - ldr r3, [r0] - mov r1, #0x44 - sub r0, r1, #0x45 - smlabb r1, r2, r1, r3 - ldrsh r1, [r1, #4] - strh r1, [r5] - b _0206595C -_020655BC: - cmp lr, #0x1a - blt _020656A8 - cmp lr, #0x1d - bgt _020656A8 - mov r0, #0xd - sub r4, lr, #0x1a - bl OverlayIsLoaded - cmp r0, #0 - beq _02065610 - bl FUN_022E96E4 - cmp r0, #0 - beq _02065610 - ldr r0, _02065968 @ =0x020A68BC - lsl r1, r4, #1 - ldrsh r0, [r0, r1] - strh r0, [r5] - cmp r0, #0 - mvneq r0, #0 - strheq r0, [r6] - mvn r0, #0 - b _0206595C -_02065610: - mov r0, #5 - bl GetDebugFlag1 - cmp r0, #0 - beq _0206566C - ldrsh r0, [r6] - cmp r0, #0x1a - bne _02065640 - bl GetPartner - ldrsh r1, [r0, #4] - mvn r0, #0 - strh r1, [r5] - b _0206595C -_02065640: - cmp r0, #0x1b - moveq r0, #0x5f - strheq r0, [r5] - subeq r0, r0, #0x60 - beq _0206595C - cmp r0, #0x1c - bne _020656A8 - mov r0, #0x22 - strh r0, [r5] - sub r0, r0, #0x23 - b _0206595C -_0206566C: - add r0, sp, #0 - bl FUN_02056d70 - cmp r4, r0 - bge _020656A8 - ldr r0, _0206596C @ =0x020B0A48 - add r1, sp, #0 - lsl r2, r4, #1 - ldrsh r2, [r1, r2] - ldr r3, [r0] - mov r1, #0x44 - sub r0, r1, #0x45 - smlabb r1, r2, r1, r3 - ldrsh r1, [r1, #4] - strh r1, [r5] - b _0206595C -_020656A8: - mvn r0, #0 - strh r0, [r6] - b _0206595C -_020656B4: - cmp lr, #0x35 - bgt _02065734 - bge _020658A0 - cmp lr, #0x32 - bgt _02065718 - bge _02065860 - cmp lr, #0xf - addls pc, pc, lr, lsl #2 - b _02065948 -_020656D8: @ jump table - b _02065948 @ case 0 - b _02065798 @ case 1 - b _020657A8 @ case 2 - b _020657B8 @ case 3 - b _020657C8 @ case 4 - b _02065948 @ case 5 - b _02065948 @ case 6 - b _02065948 @ case 7 - b _02065948 @ case 8 - b _02065948 @ case 9 - b _02065948 @ case 10 - b _02065948 @ case 11 - b _02065798 @ case 12 - b _020657A8 @ case 13 - b _020657B8 @ case 14 - b _020657C8 @ case 15 -_02065718: - cmp lr, #0x33 - bgt _02065728 - beq _02065880 - b _02065948 -_02065728: - cmp lr, #0x34 - beq _02065920 - b _02065948 -_02065734: - cmp lr, #0x37 - bgt _0206574C - bge _020658E0 - cmp lr, #0x36 - beq _020658C0 - b _02065948 -_0206574C: - cmp lr, #0x38 - bgt _0206575C - beq _02065900 - b _02065948 -_0206575C: - sub r2, lr, #0x39 - cmp r2, #0xa - addls pc, pc, r2, lsl #2 - b _02065948 -_0206576C: @ jump table - b _02065840 @ case 0 - b _02065818 @ case 1 - b _0206582C @ case 2 - b _02065798 @ case 3 - b _020657A8 @ case 4 - b _020657B8 @ case 5 - b _020657C8 @ case 6 - b _020657D8 @ case 7 - b _020657E8 @ case 8 - b _020657F8 @ case 9 - b _02065808 @ case 10 -_02065798: - bl GetMainCharacter1 - ldrsh r0, [r0, #4] - strh r0, [r5] - b _02065958 -_020657A8: - bl GetMainCharacter2 - ldrsh r0, [r0, #4] - strh r0, [r5] - b _02065958 -_020657B8: - bl GetMainCharacter3 - ldrsh r0, [r0, #4] - strh r0, [r5] - b _02065958 -_020657C8: - bl FUN_02056914 - ldrsh r0, [r0, #4] - strh r0, [r5] - b _02065958 -_020657D8: - bl GetHero - ldrsh r0, [r0, #4] - strh r0, [r5] - b _02065958 -_020657E8: - bl GetPartner - ldrsh r0, [r0, #4] - strh r0, [r5] - b _02065958 -_020657F8: - mov r1, #0x3e - bl LoadScriptVariableValue - strh r0, [r5] - b _02065958 -_02065808: - mov r1, #0x40 - bl LoadScriptVariableValue - strh r0, [r5] - b _02065958 -_02065818: - ldr r2, _02065970 @ =0x020B0B08 - sub r0, r1, #0xd - ldrsh r1, [r2, #0xa] - strh r1, [r5] - b _0206595C -_0206582C: - ldr r2, _02065970 @ =0x020B0B08 - sub r0, r1, #0xd - ldrsh r1, [r2, #4] - strh r1, [r5] - b _0206595C -_02065840: - ldr r0, _02065970 @ =0x020B0B08 - ldrsh r0, [r0, #0xc] - cmp r0, #0 - strhne r0, [r5] - subeq r0, r1, #0xd - strheq r0, [r6] - mvn r0, #0 - b _0206595C -_02065860: - ldr r0, _02065970 @ =0x020B0B08 - ldrsh r0, [r0, #0x10] - strh r0, [r5] - cmp r0, #0 - subeq r0, r1, #0xd - strheq r0, [r6] - mvn r0, #0 - b _0206595C -_02065880: - ldr r0, _02065970 @ =0x020B0B08 - ldrsh r0, [r0, #0xe] - strh r0, [r5] - cmp r0, #0 - mvneq r0, #0 - strheq r0, [r6] - mvn r0, #0 - b _0206595C -_020658A0: - ldr r0, _02065970 @ =0x020B0B08 - ldrsh r0, [r0, #2] - strh r0, [r5] - cmp r0, #0 - subeq r0, r1, #0xd - strheq r0, [r6] - mvn r0, #0 - b _0206595C -_020658C0: - ldr r0, _02065970 @ =0x020B0B08 - ldrsh r0, [r0] - strh r0, [r5] - cmp r0, #0 - subeq r0, r1, #0xd - strheq r0, [r6] - mvn r0, #0 - b _0206595C -_020658E0: - ldr r0, _02065970 @ =0x020B0B08 - ldrsh r0, [r0, #8] - strh r0, [r5] - cmp r0, #0 - subeq r0, r1, #0xd - strheq r0, [r6] - mvn r0, #0 - b _0206595C -_02065900: - ldr r0, _02065970 @ =0x020B0B08 - ldrsh r0, [r0, #6] - strh r0, [r5] - cmp r0, #0 - subeq r0, r1, #0xd - strheq r0, [r6] - mvn r0, #0 - b _0206595C -_02065920: - mov r0, #0 - mov r1, #0x44 - bl LoadScriptVariableValue - strh r0, [r5] - ldrsh r0, [r5] - cmp r0, #0 - mvneq r0, #0 - strheq r0, [r6] - mvn r0, #0 - b _0206595C -_02065948: - ldrsh r0, [r5] - cmp r0, #0 - ldrsheq r0, [r3, #2] - strheq r0, [r5] -_02065958: - mov r0, r4 -_0206595C: - add sp, sp, #0x10 - pop {r4, r5, r6, pc} - .align 2, 0 -_02065964: .4byte 0x020A7FF0 -_02065968: .4byte 0x020A68BC -_0206596C: .4byte 0x020B0A48 -_02065970: .4byte 0x020B0B08 - arm_func_end FUN_0206549c -_02065974: - .byte 0x0F, 0x00, 0x2D, 0xE9, 0x08, 0x40, 0x2D, 0xE9, 0x08, 0x00, 0x8D, 0xE2 - .byte 0x00, 0x10, 0x8D, 0xE2, 0xC4, 0xFE, 0xFF, 0xEB, 0xF0, 0x00, 0xDD, 0xE1, 0x08, 0x40, 0xBD, 0xE8 - .byte 0x10, 0xD0, 0x8D, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start GetActorMatchingStorageId -GetActorMatchingStorageId: @ 0x02065998 - push {r0, r1, r2, r3} - push {r4, lr} - sub sp, sp, #0x10 - add r0, sp, #0x18 - bl FUN_02065050 - ldrsh r1, [sp, #0x18] - cmp r1, #1 - cmpne r1, #0xc - cmpne r1, #0x3c - bne _020659C8 - bl GetMainCharacter1MemberIdx - b _02065B04 -_020659C8: - cmp r1, #2 - cmpne r1, #0xd - cmpne r1, #0x3d - bne _020659E0 - bl GetMainCharacter2MemberIdx - b _02065B04 -_020659E0: - cmp r1, #3 - cmpne r1, #0xe - cmpne r1, #0x3e - bne _020659F8 - bl GetMainCharacter3MemberIdx - b _02065B04 -_020659F8: - cmp r1, #4 - cmpne r1, #0xf - cmpne r1, #0x3f - bne _02065A10 - bl FUN_020568a4 - b _02065B04 -_02065A10: - cmp r1, #0x40 - bne _02065A20 - bl GetHeroMemberIdx - b _02065B04 -_02065A20: - cmp r1, #0x41 - bne _02065A30 - bl GetPartnerMemberIdx - b _02065B04 -_02065A30: - cmp r1, #0x16 - blt _02065A84 - cmp r1, #0x19 - bgt _02065A84 - mov r0, #0xd - sub r4, r1, #0x16 - bl OverlayIsLoaded - cmp r0, #0 - beq _02065A64 - bl FUN_022E96E4 - cmp r0, #0 - mvnne r0, #0 - bne _02065B04 -_02065A64: - add r0, sp, #8 - bl FUN_02056e04 - cmp r4, r0 - bge _02065B00 - add r0, sp, #8 - lsl r1, r4, #1 - ldrsh r0, [r0, r1] - b _02065B04 -_02065A84: - cmp r1, #0x1a - blt _02065AD8 - cmp r1, #0x1d - bgt _02065AD8 - mov r0, #0xd - sub r4, r1, #0x1a - bl OverlayIsLoaded - cmp r0, #0 - beq _02065AB8 - bl FUN_022E96E4 - cmp r0, #0 - mvnne r0, #0 - bne _02065B04 -_02065AB8: - add r0, sp, #0 - bl FUN_02056d70 - cmp r4, r0 - bge _02065B00 - add r0, sp, #0 - lsl r1, r4, #1 - ldrsh r0, [r0, r1] - b _02065B04 -_02065AD8: - cmp r1, #0x1e - blt _02065AE8 - cmp r1, #0x2d - ble _02065B00 -_02065AE8: - cmp r1, #0x99 - bne _02065B00 - mov r0, #0x214 - mov r1, #0 - bl FUN_020555d0 - b _02065B04 -_02065B00: - mvn r0, #0 -_02065B04: - add sp, sp, #0x10 - pop {r4, lr} - add sp, sp, #0x10 - bx lr - arm_func_end GetActorMatchingStorageId - - arm_func_start FUN_02065b14 -FUN_02065b14: @ 0x02065B14 - mvn r1, #0 - cmp r0, r1 - moveq r0, #0 - bxeq lr - ldr r2, _02065B38 @ =0x020A7FF0 - mov r1, #0xc - smlabb r0, r0, r1, r2 - ldrh r0, [r0, #8] - bx lr - .align 2, 0 -_02065B38: .4byte 0x020A7FF0 - arm_func_end FUN_02065b14 - - arm_func_start FUN_02065b3c -FUN_02065b3c: @ 0x02065B3C - ldr r2, _02065B4C @ =0x020B0B08 - strh r0, [r2, #0x18] - strh r1, [r2, #0x16] - bx lr - .align 2, 0 -_02065B4C: .4byte 0x020B0B08 - arm_func_end FUN_02065b3c - - arm_func_start ScriptSpecialProcess0x3D -ScriptSpecialProcess0x3D: @ 0x02065B50 - ldr r1, _02065B5C @ =0x020B0B08 - strh r0, [r1, #0x18] - bx lr - .align 2, 0 -_02065B5C: .4byte 0x020B0B08 - arm_func_end ScriptSpecialProcess0x3D - - arm_func_start ScriptSpecialProcess0x3E -ScriptSpecialProcess0x3E: @ 0x02065B60 - ldr r1, _02065B6C @ =0x020B0B08 - strh r0, [r1, #0x16] - bx lr - .align 2, 0 -_02065B6C: .4byte 0x020B0B08 - arm_func_end ScriptSpecialProcess0x3E -_02065B70: - .byte 0x04, 0x10, 0x9F, 0xE5, 0xB4, 0x01, 0xC1, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x0B, 0x0B, 0x02 - - arm_func_start FUN_02065b80 -FUN_02065b80: @ 0x02065B80 - ldr r2, _02065B90 @ =0x020B0B08 - strh r0, [r2, #0x10] - strh r1, [r2, #0xe] - bx lr - .align 2, 0 -_02065B90: .4byte 0x020B0B08 - arm_func_end FUN_02065b80 - - arm_func_start FUN_02065b94 -FUN_02065b94: @ 0x02065B94 - ldr ip, _02065BA8 @ =SaveScriptVariableValue - mov r2, r0 - mov r0, #0 - mov r1, #0x44 - bx ip - .align 2, 0 -_02065BA8: .4byte SaveScriptVariableValue - arm_func_end FUN_02065b94 -_02065BAC: - .byte 0x10, 0xC0, 0x9F, 0xE5 - .byte 0xB2, 0x00, 0xCC, 0xE1, 0xB0, 0x10, 0xCC, 0xE1, 0xB8, 0x20, 0xCC, 0xE1, 0xB6, 0x30, 0xCC, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x0B, 0x0B, 0x02 - - arm_func_start FUN_02065bc8 -FUN_02065bc8: @ 0x02065BC8 - ldr r1, _02065BD4 @ =0x020B0B08 - strh r0, [r1, #0xc] - bx lr - .align 2, 0 -_02065BD4: .4byte 0x020B0B08 - arm_func_end FUN_02065bc8 -_02065BD8: - .byte 0x08, 0xC0, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE1 - .byte 0x04, 0x10, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x1C, 0x51, 0x02, 0x02, 0x10, 0x73, 0x2B, 0x02 - - arm_func_start FUN_02065bf0 -FUN_02065bf0: @ 0x02065BF0 - ldr ip, _02065C00 @ =StrncpySimpleNoPadSafe - ldr r1, _02065C04 @ =0x022B7310 - mov r2, #0xa - bx ip - .align 2, 0 -_02065C00: .4byte StrncpySimpleNoPadSafe -_02065C04: .4byte 0x022B7310 - arm_func_end FUN_02065bf0 - - arm_func_start FUN_02065c08 -FUN_02065c08: @ 0x02065C08 - ldr ip, _02065C44 @ =0x022B7310 - mov r3, #0 - b _02065C20 -_02065C14: - ldrb r2, [r0], #1 - add r3, r3, #1 - strb r2, [ip], #1 -_02065C20: - cmp r3, r1 - blt _02065C14 - mov r0, #0 - b _02065C38 -_02065C30: - strb r0, [ip], #1 - add r3, r3, #1 -_02065C38: - cmp r3, #0x10 - blt _02065C30 - bx lr - .align 2, 0 -_02065C44: .4byte 0x022B7310 - arm_func_end FUN_02065c08 - - arm_func_start ScriptSpecialProcess0x17 -ScriptSpecialProcess0x17: @ 0x02065C48 - push {r3, lr} - mov r0, #0x12 - bl RandInt - ldr r2, _02065C78 @ =0x020A68C8 - lsl r3, r0, #2 - ldr r1, _02065C7C @ =0x020A68CA - ldrsh r2, [r2, r3] - ldr r0, _02065C80 @ =0x020B0B08 - ldrsh r1, [r1, r3] - strh r2, [r0, #0xa] - strh r1, [r0, #4] - pop {r3, pc} - .align 2, 0 -_02065C78: .4byte 0x020A68C8 -_02065C7C: .4byte 0x020A68CA -_02065C80: .4byte 0x020B0B08 - arm_func_end ScriptSpecialProcess0x17 - - arm_func_start FUN_02065c84 -FUN_02065c84: @ 0x02065C84 - mov r2, #0 - ldr r1, _02065CAC @ =0x022B7320 - mov r0, r2 -_02065C90: - strh r0, [r1] - add r2, r2, #1 - strh r0, [r1, #2] - cmp r2, #4 - add r1, r1, #4 - blt _02065C90 - bx lr - .align 2, 0 -_02065CAC: .4byte 0x022B7320 - arm_func_end FUN_02065c84 - - arm_func_start FUN_02065cb0 -FUN_02065cb0: @ 0x02065CB0 - bx lr - arm_func_end FUN_02065cb0 - - arm_func_start FUN_02065cb4 -FUN_02065cb4: @ 0x02065CB4 - ldrh r2, [r1] - ldr r3, _02065CD4 @ =0x022B7320 - lsl ip, r0, #2 - strh r2, [r3, ip] - ldrh r1, [r1, #2] - add r0, r3, r0, lsl #2 - strh r1, [r0, #2] - bx lr - .align 2, 0 -_02065CD4: .4byte 0x022B7320 - arm_func_end FUN_02065cb4 - - arm_func_start FUN_02065cd8 -FUN_02065cd8: @ 0x02065CD8 - ldr r2, _02065CF0 @ =0x022B7320 - mov r3, r0 - mov r0, r1 - ldr ip, _02065CF4 @ =FUN_0200cff0 - add r1, r2, r3, lsl #2 - bx ip - .align 2, 0 -_02065CF0: .4byte 0x022B7320 -_02065CF4: .4byte FUN_0200cff0 - arm_func_end FUN_02065cd8 - - arm_func_start ItemAtTableIdx -ItemAtTableIdx: @ 0x02065CF8 - ldr r3, _02065D18 @ =0x022B7320 - lsl r2, r0, #2 - ldrh r2, [r3, r2] - add r0, r3, r0, lsl #2 - strh r2, [r1] - ldrh r0, [r0, #2] - strh r0, [r1, #2] - bx lr - .align 2, 0 -_02065D18: .4byte 0x022B7320 - arm_func_end ItemAtTableIdx - - arm_func_start FUN_02065d1c -FUN_02065d1c: @ 0x02065D1C - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #8 - bl FUN_020024a0 + arm_func_start ov00_022C8E0C +ov00_022C8E0C: @ 0x022C8E0C + push {r3, r4, r5, r6, r7, lr} + ldr r3, _022C8F38 @ =0x7F000001 + mov r6, r1 mov r7, r0 - mov r8, #1 - bl FUN_02065c84 - bl FUN_020205e4 - bl LoadTblTalk - bl FUN_0201dd90 - bl FUN_0201bb3c - bl FUN_0201d7a8 - ldr r0, _02066374 @ =0x020AFC68 - mov r1, #0x80 - ldr r0, [r0] - bl FUN_0201d3bc - bl FUN_0201f208 - bl OpenAllPackFiles - bl thunk_FUN_0204ab24 - bl FUN_0204d780 - bl FUN_02025ad8 - bl FUN_02026e78 - bl FUN_020346c0 - mov r0, #0 - bl FUN_0204b018 - mov r0, #2 - bl SetBothScreensWindowsColor - bl FUN_0204a1a4 - bl FUN_02048420 - bl KeyWaitInit - add r0, sp, #4 - bl ReadSaveHeader - cmp r0, #1 - bne _02065DF0 - mov r0, #2 - bl LoadOverlay - mov r0, #0xf - bl LoadOverlay - mov r0, r8 - bl FUN_022DC240 - mov r0, #0xf - bl UnloadOverlay - mov r0, #2 - bl UnloadOverlay - mov r0, #2 - bl LoadOverlay - mov r0, #0xf - bl LoadOverlay - mov r0, #4 - bl FUN_022DC240 - mov r0, #0xf - bl UnloadOverlay - mov r0, #2 - bl UnloadOverlay -_02065DF0: - cmp r7, #0 - cmpne r7, #5 - mov r0, #2 - bne _02065E2C - mov r4, #1 - bl LoadOverlay - mov r0, #0xf - bl LoadOverlay - mov r0, #2 - bl FUN_022DC240 - mov r0, #0xf - bl UnloadOverlay - mov r0, #2 - bl UnloadOverlay - b _02065E54 -_02065E2C: - mov r4, #0 - bl LoadOverlay - mov r0, #0xf - bl LoadOverlay - mov r0, #1 - bl FUN_022DC240 - mov r0, #0xf - bl UnloadOverlay - mov r0, #2 - bl UnloadOverlay -_02065E54: - bl SetAdventureLogStructLocation - bl FUN_0204f9b8 - bl GlobalProgressAlloc - bl FUN_02052c3c - bl LoadWazaP - bl FUN_0200ca8c - bl FUN_0205c73c - bl FUN_0205b44c - bl KeyWaitInit - bl InitScriptVariableValues - cmp r4, #0 - beq _02065EE0 - mov r0, #2 - bl LoadOverlay - mov r0, #0xf - bl LoadOverlay - mov r0, #3 - bl FUN_022DC240 - mov r0, #0xf - bl UnloadOverlay - mov r0, #2 - bl UnloadOverlay - mov r0, #0 - mov r1, #0x5c - bl ZinitScriptVariable - mov r0, #2 - bl LoadOverlay - mov r0, #0xd - bl LoadOverlay - mov r0, #0 - bl FUN_022E82CC - mov r0, #0xd - bl UnloadOverlay - mov r0, #2 - bl UnloadOverlay -_02065EE0: - mov r0, #1 - bl LoadOverlay - mov r0, #4 - bl LoadOverlay - mov r0, #4 - bl FUN_022BE0C8 - mov r0, #4 - bl UnloadOverlay - mov r0, #1 - bl UnloadOverlay - bl FUN_02048430 - mov r4, #0xf - mov r5, #2 - mov sl, #4 - mov fp, r4 - mov r6, #0 -_02065F20: + cmp r6, r3 + ldrne r0, _022C8F3C @ =0x02325078 + mov r5, r2 + ldrne r0, [r0, #0x50] + cmpne r6, r0 + popeq {r3, r4, r5, r6, r7, pc} mov r0, r6 - bl FUN_0204b018 - bl FUN_02048624 - cmp r8, #0 - beq _02065FE0 - bl NoteLoadBase - movs sb, r0 - beq _02065FCC - cmp sb, #1 - bne _02065F70 - mov r0, r5 - bl LoadOverlay - mov r0, r4 - bl LoadOverlay - mov r0, sl - bl FUN_022DC240 - mov r0, fp - bl UnloadOverlay - mov r0, #2 - bl UnloadOverlay -_02065F70: - mov r0, #1 - bl LoadOverlay - mov r0, #4 - bl LoadOverlay - mov r0, #3 - bl FUN_022BE0C8 - mov r0, #4 - bl UnloadOverlay - mov r0, #1 - bl UnloadOverlay - bl FUN_02048454 - cmp sb, #5 - beq _02065FCC - mov r0, #2 - bl LoadOverlay - mov r0, #0xf - bl LoadOverlay - mov r0, #6 - bl FUN_022DC240 - mov r0, #0xf - bl UnloadOverlay - mov r0, #2 - bl UnloadOverlay -_02065FCC: - add r0, sp, #0 - bl FUN_0204af98 - ldrb r0, [sp] - bl FUN_02027180 - bl FUN_020205f8 -_02065FE0: - sub r0, r7, #6 - cmp r0, #0xf - addls pc, pc, r0, lsl #2 - b _020660B0 -_02065FF0: @ jump table - b _02066030 @ case 0 - b _02066040 @ case 1 - b _02066038 @ case 2 - b _02066048 @ case 3 - b _02066050 @ case 4 - b _02066058 @ case 5 - b _02066060 @ case 6 - b _02066068 @ case 7 - b _02066070 @ case 8 - b _02066078 @ case 9 - b _02066080 @ case 10 - b _02066088 @ case 11 - b _02066090 @ case 12 - b _02066098 @ case 13 - b _020660A0 @ case 14 - b _020660A8 @ case 15 -_02066030: - mov sb, #4 - b _020660FC -_02066038: - mov sb, #6 - b _020660FC -_02066040: - mov sb, #5 - b _020660FC -_02066048: - mov sb, #7 - b _020660FC -_02066050: - mov sb, #9 - b _020660FC -_02066058: - mov sb, #0xa - b _020660FC -_02066060: - mov sb, #0xb - b _020660FC -_02066068: - mov sb, #0xc - b _020660FC -_02066070: - mov sb, #0xd - b _020660FC -_02066078: - mov sb, #0xe - b _020660FC -_02066080: - mov sb, #0xf - b _020660FC -_02066088: - mov sb, #0x10 - b _020660FC -_02066090: - mov sb, #0x10 - b _020660FC -_02066098: - mov sb, #0x12 - b _020660FC -_020660A0: - mov sb, #0x13 - b _020660FC -_020660A8: - mov sb, #0x14 - b _020660FC -_020660B0: - cmp r7, #2 - moveq r7, #1 - beq _020660C8 - cmp r7, #3 - moveq r7, #2 - movne r7, #0 -_020660C8: - mov r0, #0 - bl FUN_0204b018 - mov r0, #1 - bl LoadOverlay - mov r0, #4 - bl LoadOverlay - mov r0, r7 - bl FUN_022BE0C8 - mov sb, r0 - mov r0, #4 - bl UnloadOverlay - mov r0, #1 - bl UnloadOverlay -_020660FC: - cmp sb, #6 - mov r7, #1 - bne _02066134 - mov r0, r7 + bl ov00_022C86C4 + cmp r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + mov r0, r6 + bl ov00_022C8764 + cmp r0, #0 + popne {r3, r4, r5, r6, r7, pc} + bl FUN_0207AE44 + lsr r0, r0, #0x10 + orr r0, r0, r1, lsl #16 + lsl r0, r0, #0x10 + ldr r2, _022C8F40 @ =0x023250F8 + lsr r4, r0, #0x10 mov r1, #0 - bl GetSosMailCount - cmp r0, #0 - movne sb, #0xa - bne _02066134 - mov r0, #7 - mov r1, #0 - bl GetSosMailCount - cmp r0, #0 - movne sb, #9 -_02066134: - bl GetSpecialEpisodeType - mov r1, r0 - ldr r0, _02066378 @ =0x020A9208 - bl DebugPrint0 - sub r0, sb, #4 - cmp r0, #9 - addls pc, pc, r0, lsl #2 - b _02065F20 -_02066154: @ jump table - b _0206617C @ case 0 - b _020661B0 @ case 1 - b _020661FC @ case 2 - b _0206622C @ case 3 - b _02065F20 @ case 4 - b _0206625C @ case 5 - b _0206628C @ case 6 - b _020662BC @ case 7 - b _02066300 @ case 8 - b _02066330 @ case 9 -_0206617C: - mov r0, #2 - bl FUN_0204b018 - bl FUN_020484c0 - bl FUN_02048644 - mov r0, #2 - bl LoadOverlay - mov r0, #0 - bl FUN_022C288C - mov r8, r0 - mov r0, #2 - bl UnloadOverlay - bl FUN_0204872c - b _02065F20 -_020661B0: - bl FUN_0204c918 - bl FUN_0204c900 - mov r0, #3 - bl FUN_0204b018 - bl FUN_02048644 - bl FUN_020484e8 - mov r0, #2 - mov r1, #0x36 - mov r2, #0 - bl SetScenarioScriptVar - mov r0, #2 - bl LoadOverlay - mov r0, #0 - bl FUN_022C288C - mov r8, r0 - mov r0, #2 - bl UnloadOverlay - bl FUN_0204872c - b _02065F20 -_020661FC: - mov r0, #2 - bl FUN_0204b018 - bl FUN_02048644 - mov r0, #2 - bl LoadOverlay - mov r0, #1 - bl FUN_022C288C - mov r8, r0 - mov r0, #2 - bl UnloadOverlay - bl FUN_0204872c - b _02065F20 -_0206622C: - mov r0, #3 - bl FUN_0204b018 - bl FUN_02048644 - mov r0, #2 - bl LoadOverlay - mov r0, #1 - bl FUN_022C288C - mov r8, r0 - mov r0, #2 - bl UnloadOverlay - bl FUN_0204872c - b _02065F20 -_0206625C: - mov r0, #2 - bl FUN_0204b018 - bl FUN_02048644 - mov r0, #2 - bl LoadOverlay - mov r0, #2 - bl FUN_022C288C - mov r8, r0 - mov r0, #2 - bl UnloadOverlay - bl FUN_0204872c - b _02065F20 -_0206628C: - mov r0, #2 - bl FUN_0204b018 - bl FUN_02048644 - mov r0, #2 - bl LoadOverlay - mov r0, #3 - bl FUN_022C288C - mov r8, r0 - mov r0, #2 - bl UnloadOverlay - bl FUN_0204872c - b _02065F20 -_020662BC: - mov r0, #4 - bl FUN_0204b018 - bl FUN_02048644 - bl FUN_020485c4 - mov r0, #2 - mov r1, #0x33 - mov r2, #0 - bl SetScenarioScriptVar - mov r0, #2 - bl LoadOverlay - mov r0, #1 - bl FUN_022C288C - mov r8, r0 - mov r0, #2 - bl UnloadOverlay - bl FUN_0204872c - b _02065F20 -_02066300: - mov r0, #4 - bl FUN_0204b018 - bl FUN_02048644 - mov r0, #2 - bl LoadOverlay - mov r0, #1 - bl FUN_022C288C - mov r8, r0 - mov r0, #2 - bl UnloadOverlay - bl FUN_0204872c - b _02065F20 -_02066330: - mov r0, #5 - bl FUN_0204b018 - bl FUN_02048644 - bl FUN_020485d8 - mov r0, #2 - mov r1, #0x34 - mov r2, #0 - bl SetScenarioScriptVar - mov r0, #2 - bl LoadOverlay - mov r0, #1 - bl FUN_022C288C - mov r8, r0 - mov r0, #2 - bl UnloadOverlay - bl FUN_0204872c - b _02065F20 - .align 2, 0 -_02066374: .4byte 0x020AFC68 -_02066378: .4byte 0x020A9208 - arm_func_end FUN_02065d1c - - arm_func_start FUN_0206637c -FUN_0206637c: @ 0x0206637C - push {r3, lr} - mov r0, #1 - bl OverlayIsLoaded - cmp r0, #0 - beq _0206639C - mov r0, #3 - bl FUN_022BE0C8 - pop {r3, pc} -_0206639C: - mov r0, #1 - bl LoadOverlay - mov r0, #4 - bl LoadOverlay - mov r0, #3 - bl FUN_022BE0C8 - mov r0, #4 - bl UnloadOverlay - mov r0, #1 - bl UnloadOverlay - pop {r3, pc} - arm_func_end FUN_0206637c - - arm_func_start FUN_020663c8 -FUN_020663c8: @ 0x020663C8 - push {r3, lr} - ldrsb ip, [sp, #8] - str ip, [sp] - bl FUN_02046a9c - pop {r3, pc} - arm_func_end FUN_020663c8 - - arm_func_start FUN_020663dc -FUN_020663dc: @ 0x020663DC - stmdb sp!, {lr} - sub sp, sp, #0xc - ldr ip, [sp, #0x10] - ldrh lr, [sp, #0x14] - str ip, [sp] - mov ip, #0 - str lr, [sp, #4] - str ip, [sp, #8] - bl FUN_02046a20 - add sp, sp, #0xc - ldm sp!, {pc} - arm_func_end FUN_020663dc - - arm_func_start FUN_02066408 -FUN_02066408: @ 0x02066408 - stmdb sp!, {lr} - sub sp, sp, #0xc - ldr ip, [sp, #0x10] - ldrh lr, [sp, #0x14] - str ip, [sp] - ldr ip, [sp, #0x18] - str lr, [sp, #4] - str ip, [sp, #8] - bl FUN_02046a20 - add sp, sp, #0xc - ldm sp!, {pc} - arm_func_end FUN_02066408 - - arm_func_start FUN_02066434 -FUN_02066434: @ 0x02066434 - push {r3, lr} - bl FUN_02046b04 - mvn r1, #1 - cmp r0, r1 - moveq r0, #0x1f - popeq {r3, pc} - add r1, r1, #1 - cmp r0, r1 - moveq r0, #0 - pop {r3, pc} - arm_func_end FUN_02066434 -_0206645C: - .byte 0x00, 0xC0, 0x9F, 0xE5 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xA0, 0x6B, 0x04, 0x02, 0x04, 0xC0, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xE8, 0x6B, 0x04, 0x02, 0x04, 0xC0, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x30, 0x6C, 0x04, 0x02, 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 - .byte 0xE8, 0x6B, 0x04, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0xF6, 0x81, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x1F, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0x08, 0x80, 0xBD, 0xE8, 0x00, 0xC0, 0x9F, 0xE5 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x20, 0x6D, 0x04, 0x02 - - arm_func_start FUN_020664b8 -FUN_020664b8: @ 0x020664B8 - push {r4, lr} - mov r4, r0 - bl FUN_020676ac - ldr r2, _0206650C @ =0x020B0B24 - mov r3, #0 - mov r0, #0xa8 - mov r1, #8 - strb r3, [r2] - bl MemAlloc - ldr r2, _0206650C @ =0x020B0B24 - mov r1, #0xa8 - str r0, [r2, #4] - bl MemZero - ldr r1, _0206650C @ =0x020B0B24 - mov r2, #0 - ldr r3, [r1, #4] - mov r0, #1 - str r4, [r3, #8] - ldr r1, [r1, #4] - str r2, [r1] - pop {r4, pc} - .align 2, 0 -_0206650C: .4byte 0x020B0B24 - arm_func_end FUN_020664b8 - - arm_func_start FUN_02066510 -FUN_02066510: @ 0x02066510 - push {r3, r4, lr} - sub sp, sp, #0xc - ldr r0, _02066874 @ =0x020B0B24 - ldr r1, [r0, #4] - ldr r0, [r1] - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _02066868 -_02066530: @ jump table - b _02066544 @ case 0 - b _02066640 @ case 1 - b _02066700 @ case 2 - b _02066708 @ case 3 - b _02066724 @ case 4 -_02066544: - mov r2, #0 - add r1, r1, #0xa4 - mov r0, r2 -_02066550: - strb r0, [r1, r2] - add r2, r2, #1 - cmp r2, #4 - blt _02066550 - ldr r0, _02066874 @ =0x020B0B24 - mov r1, #0x98 - ldr r0, [r0, #4] - add r0, r0, #0xc - bl MemZero - ldr r0, _02066874 @ =0x020B0B24 - ldr r2, [r0, #4] - add r1, r2, #0xa4 - str r1, [r2, #0x6c] - ldr r0, [r0, #4] - ldr r0, [r0, #8] - cmp r0, #0 - bne _020665B4 - ldr r4, _02066878 @ =0x020A9228 - bl FUN_0205e954 - cmp r0, #0 - ldreq r0, _02066874 @ =0x020B0B24 - moveq r1, #3 - ldreq r0, [r0, #4] - strbeq r1, [r0, #0xa4] - b _020665D8 -_020665B4: - cmp r0, #1 - bne _020665D8 - ldr r4, _0206687C @ =0x020A9248 - bl FUN_0205eac8 - cmp r0, #0 - ldreq r0, _02066874 @ =0x020B0B24 - moveq r1, #3 - ldreq r0, [r0, #4] - strbeq r1, [r0, #0xa4] -_020665D8: - bl FUN_0205ed84 - cmp r0, #0 - ldreq r0, _02066874 @ =0x020B0B24 - moveq r1, #3 - ldreq r0, [r0, #4] - ldr r3, _02066874 @ =0x020B0B24 - strbeq r1, [r0, #0xa5] - ldrsb r2, [r3] - ldr ip, [r3, #4] - mov r1, #0 - add r2, r4, r2, lsl #3 - ldr lr, [r2, #4] - ldr r0, _02066880 @ =0x020A9218 - str lr, [ip, #0xc] - str r4, [sp] - str r1, [sp, #4] - str r1, [sp, #8] - ldr r3, [r3, #4] - ldr r2, _02066884 @ =0x00000233 - add r3, r3, #0xc - bl FUN_02046a20 - ldr r0, _02066874 @ =0x020B0B24 - mov r1, #1 - ldr r0, [r0, #4] - str r1, [r0] - b _02066868 -_02066640: - bl FUN_02046b04 - mov r4, r0 - mvn r1, #1 - cmp r4, r1 - moveq r4, #4 - beq _02066674 - sub r0, r1, #1 - cmp r4, r0 - moveq r4, #4 - beq _02066674 - add r0, r1, #1 - cmp r4, r0 - moveq r4, #0 -_02066674: - bl FUN_02046ba0 - ldr r1, _02066874 @ =0x020B0B24 - cmp r4, #1 - strb r0, [r1] - bne _020666A4 - ldr r0, [r1, #4] - mov r2, #0xa - str r2, [r0, #4] - ldr r0, [r1, #4] - mov r1, #3 - str r1, [r0] - b _02066868 -_020666A4: - cmp r4, #2 - bne _020666C8 - ldr r0, [r1, #4] - mov r2, #0xb - str r2, [r0, #4] - ldr r0, [r1, #4] - mov r1, #3 - str r1, [r0] - b _02066868 -_020666C8: - cmp r4, #3 - bne _020666EC - ldr r0, [r1, #4] - mov r2, #0xe - str r2, [r0, #4] - ldr r0, [r1, #4] - mov r1, #3 - str r1, [r0] - b _02066868 -_020666EC: - cmp r4, #4 - ldreq r0, [r1, #4] - moveq r1, #2 - streq r1, [r0] - b _02066868 -_02066700: - mov r0, #1 - b _0206686C -_02066708: - ldr r0, [r1, #4] - bl FUN_020668b4 - ldr r0, _02066874 @ =0x020B0B24 - mov r1, #4 - ldr r0, [r0, #4] - str r1, [r0] - b _02066868 -_02066724: - bl FUN_02066a44 - movs r4, r0 - beq _02066868 - bl FUN_02067664 - add r0, r4, #1 - cmp r0, #0x17 - addls pc, pc, r0, lsl #2 - b _02066868 -_02066744: @ jump table - b _02066858 @ case 0 - b _02066868 @ case 1 - b _020667A4 @ case 2 - b _02066868 @ case 3 - b _020667B8 @ case 4 - b _020667C0 @ case 5 - b _020667C8 @ case 6 - b _020667D0 @ case 7 - b _020667D8 @ case 8 - b _020667E0 @ case 9 - b _020667E8 @ case 10 - b _020667F0 @ case 11 - b _020667F8 @ case 12 - b _02066800 @ case 13 - b _02066808 @ case 14 - b _02066810 @ case 15 - b _02066818 @ case 16 - b _02066820 @ case 17 - b _02066828 @ case 18 - b _02066830 @ case 19 - b _02066838 @ case 20 - b _02066840 @ case 21 - b _02066848 @ case 22 - b _02066850 @ case 23 -_020667A4: - ldr r0, _02066874 @ =0x020B0B24 - mov r1, #0 - ldr r0, [r0, #4] - str r1, [r0] - b _02066868 -_020667B8: - mov r0, #2 - b _0206686C -_020667C0: - mov r0, #3 - b _0206686C -_020667C8: - mov r0, #4 - b _0206686C -_020667D0: - mov r0, #5 - b _0206686C -_020667D8: - mov r0, #6 - b _0206686C -_020667E0: - mov r0, #7 - b _0206686C -_020667E8: - mov r0, #8 - b _0206686C -_020667F0: - mov r0, #9 - b _0206686C -_020667F8: - mov r0, #0xa - b _0206686C -_02066800: - mov r0, #0xb - b _0206686C -_02066808: +_022C8E70: + ldr r0, [r2] + cmp r6, r0 + bne _022C8EA8 mov r0, #0xc - b _0206686C -_02066810: - mov r0, #0xd - b _0206686C -_02066818: - mov r0, #0xe - b _0206686C -_02066820: - mov r0, #0xf - b _0206686C -_02066828: - mov r0, #0x10 - b _0206686C -_02066830: - mov r0, #0x11 - b _0206686C -_02066838: - mov r0, #0x12 - b _0206686C -_02066840: - mov r0, #0x13 - b _0206686C -_02066848: - mov r0, #0x14 - b _0206686C -_02066850: - mov r0, #0x15 - b _0206686C -_02066858: - ldr r0, _02066874 @ =0x020B0B24 - mov r1, #0 - ldr r0, [r0, #4] - str r1, [r0] -_02066868: - mov r0, #0 -_0206686C: - add sp, sp, #0xc - pop {r3, r4, pc} - .align 2, 0 -_02066874: .4byte 0x020B0B24 -_02066878: .4byte 0x020A9228 -_0206687C: .4byte 0x020A9248 -_02066880: .4byte 0x020A9218 -_02066884: .4byte 0x00000233 - arm_func_end FUN_02066510 - - arm_func_start FUN_02066888 -FUN_02066888: @ 0x02066888 - push {r3, lr} - ldr r0, _020668B0 @ =0x020B0B24 - ldr r0, [r0, #4] - cmp r0, #0 - popeq {r3, pc} - bl MemFree - ldr r0, _020668B0 @ =0x020B0B24 - mov r1, #0 - str r1, [r0, #4] - pop {r3, pc} - .align 2, 0 -_020668B0: .4byte 0x020B0B24 - arm_func_end FUN_02066888 - - arm_func_start FUN_020668b4 -FUN_020668b4: @ 0x020668B4 - push {r3, r4, r5, lr} - mov r5, r0 - sub r0, r5, #0x13 - cmp r0, #2 - movls r0, #0 - popls {r3, r4, r5, pc} - ldr r0, _02066988 @ =0x00000EF8 - mov r1, #8 - bl MemAlloc - ldr r2, _0206698C @ =0x020B0B2C - ldr r1, _02066988 @ =0x00000EF8 - str r0, [r2, #0x14] - bl MemZero - ldr r0, _0206698C @ =0x020B0B2C + mul r5, r1, r0 + ldr r0, _022C8F40 @ =0x023250F8 + ldr r3, _022C8F44 @ =0x02325102 + add r1, r0, r5 + mov r0, r7 + add r1, r1, #4 + mov r2, #6 + strh r4, [r3, r5] + bl FUN_0207C4C8 + pop {r3, r4, r5, r6, r7, pc} +_022C8EA8: + add r1, r1, #1 + cmp r1, #8 + add r2, r2, #0xc + blo _022C8E70 + cmp r5, #0 + popeq {r3, r4, r5, r6, r7, pc} mov r2, #0 - ldr r4, [r0, #0x14] + ldr r3, _022C8F40 @ =0x023250F8 mov r1, r2 -_020668F8: - add r0, r4, r2 - add r2, r2, #1 - strb r1, [r0, #0x4c] - cmp r2, #0x20 - blt _020668F8 - ldr r0, _0206698C @ =0x020B0B2C - ldr r0, [r0, #0x14] - str r5, [r0, #4] - str r1, [r4, #8] - str r1, [r4, #0xef0] - bl FUN_020686f4 - mov r2, #0 - str r2, [r4, #0x74] - sub r1, r2, #1 - str r1, [r4, #0x78] + mov r5, r2 +_022C8ED0: + ldr r0, [r3] cmp r0, #0 - bne _0206695C - bl FUN_020692b4 - ldr r0, _0206698C @ =0x020B0B2C - ldr r0, [r0, #0x14] - bl MemFree - ldr r1, _0206698C @ =0x020B0B2C - mov r0, #0 - str r0, [r1, #0x14] - pop {r3, r4, r5, pc} -_0206695C: - sub r0, r2, #2 - strb r0, [r4, #0x7d] - bl FUN_020692fc - mvn r1, #1 - ldr r0, _0206698C @ =0x020B0B2C - strb r1, [r4, #0xd85] - ldr r0, [r0, #0x14] - mov r1, #0 - str r1, [r0] - mov r0, #1 - pop {r3, r4, r5, pc} + moveq r1, r5 + beq _022C8F08 + ldrh r0, [r3, #0xa] + add r3, r3, #0xc + sub r0, r4, r0 + lsl r0, r0, #0x10 + cmp r2, r0, asr #16 + movlt r1, r5 + add r5, r5, #1 + lsrlt r2, r0, #0x10 + cmp r5, #8 + blo _022C8ED0 +_022C8F08: + mov r0, #0xc + mul r5, r1, r0 + ldr r3, _022C8F40 @ =0x023250F8 + mov r0, r7 + add r1, r3, r5 + add r1, r1, #4 + mov r2, #6 + str r6, [r3, r5] + bl FUN_0207C4C8 + ldr r0, _022C8F44 @ =0x02325102 + strh r4, [r0, r5] + pop {r3, r4, r5, r6, r7, pc} .align 2, 0 -_02066988: .4byte 0x00000EF8 -_0206698C: .4byte 0x020B0B2C - arm_func_end FUN_020668b4 +_022C8F38: .4byte 0x7F000001 +_022C8F3C: .4byte 0x02325078 +_022C8F40: .4byte 0x023250F8 +_022C8F44: .4byte 0x02325102 + arm_func_end ov00_022C8E0C - arm_func_start FUN_02066990 -FUN_02066990: @ 0x02066990 + arm_func_start ov00_022C8F48 +ov00_022C8F48: @ 0x022C8F48 push {r4, r5, r6, r7, r8, lr} + ldrh r5, [sp, #0x1c] + ldr r4, [sp, #0x18] mov r8, r0 + lsl r0, r5, #8 + orr ip, r0, r5, asr #8 + mov r0, r4 mov r7, r1 - ldr r0, _02066A3C @ =0x00000EF8 - mov r1, #8 mov r6, r2 mov r5, r3 - bl MemAlloc - ldr r2, _02066A40 @ =0x020B0B2C - ldr r1, _02066A3C @ =0x00000EF8 - str r0, [r2, #0x14] - bl MemZero - ldr r0, _02066A40 @ =0x020B0B2C - mov r1, #0 - ldr r4, [r0, #0x14] - str r8, [r4, #4] - str r7, [r4, #0x74] - str r6, [r4, #0x6c] - str r5, [r4, #0x78] - str r1, [r4, #8] - str r1, [r4, #0xef0] - bl FUN_020686f4 + strh ip, [r8, #-2] + bl ov00_022C8764 cmp r0, #0 - bne _02066A10 - bl FUN_020692b4 - ldr r0, _02066A40 @ =0x020B0B2C - ldr r0, [r0, #0x14] - bl MemFree - ldr r1, _02066A40 @ =0x020B0B2C - mov r0, #0 - str r0, [r1, #0x14] - pop {r4, r5, r6, r7, r8, pc} -_02066A10: - mvn r0, #1 - strb r0, [r4, #0x7d] - bl FUN_020692fc - mvn r1, #1 - ldr r0, _02066A40 @ =0x020B0B2C - strb r1, [r4, #0xd85] - ldr r0, [r0, #0x14] - mov r1, #0 - str r1, [r0] + bne _022C8FBC + mov r0, r4 + bl ov00_022C8704 + movs r4, r0 + popeq {r4, r5, r6, r7, r8, pc} + bl ov00_022C8BD0 + cmp r0, #0 + bne _022C8FA4 + mov r0, r4 + bl ov00_022C8D9C +_022C8FA4: + cmp r0, #0 + popeq {r4, r5, r6, r7, r8, pc} + sub r1, r8, #0xe + mov r2, #6 + bl FUN_0207C4C8 + b _022C8FEC +_022C8FBC: mov r0, #1 + strb r0, [r8, #-0xe] + mov r1, #0 + lsr r0, r4, #0x10 + strb r1, [r8, #-0xd] + mov r1, #0x5e + strb r1, [r8, #-0xc] + and r0, r0, #0x7f + strb r0, [r8, #-0xb] + lsr r0, r4, #8 + strb r0, [r8, #-0xa] + strb r4, [r8, #-9] +_022C8FEC: + ldr r0, _022C9014 @ =0x02325560 + sub r1, r8, #8 + mov r2, #6 + bl FUN_0207C4C8 + mov r2, r6 + mov r3, r5 + sub r0, r8, #0xe + add r1, r7, #0xe + bl ov00_022C8824 pop {r4, r5, r6, r7, r8, pc} .align 2, 0 -_02066A3C: .4byte 0x00000EF8 -_02066A40: .4byte 0x020B0B2C - arm_func_end FUN_02066990 +_022C9014: .4byte 0x02325560 + arm_func_end ov00_022C8F48 - arm_func_start FUN_02066a44 -FUN_02066a44: @ 0x02066A44 - push {r3, r4, r5, r6, lr} - sub sp, sp, #0xc - ldr r0, _020674A0 @ =0x020B0B2C - ldr r6, [r0, #0x14] - ldr r0, [r6] - cmp r0, #6 - addls pc, pc, r0, lsl #2 - b _02067494 -_02066A64: @ jump table - b _02066A80 @ case 0 - b _02066B08 @ case 1 - b _02066DA4 @ case 2 - b _02066DAC @ case 3 - b _020672F4 @ case 4 - b _02067374 @ case 5 - b _02067474 @ case 6 -_02066A80: - bl FUN_020691b8 - ldr r0, _020674A0 @ =0x020B0B2C - mov r2, #1 - ldr r1, [r0, #0x14] - str r2, [r1] - ldr r1, [r6, #0xee4] - cmp r1, #0 - bne _02066AF4 - ldr r1, [r0, #0x14] - ldr r0, [r1, #4] - sub r0, r0, #0xa - cmp r0, #3 - bhi _02066AC8 - add r0, r1, #0x2e4 - ldr r1, _020674A4 @ =0x020A92A8 - ldr r2, _020674A8 @ =FUN_020696e8 - add r0, r0, #0xc00 - bl FUN_0204707c -_02066AC8: - ldr r0, _020674A0 @ =0x020B0B2C - ldr r1, [r0, #0x14] - ldr r0, [r1, #4] - cmp r0, #0xe - bne _02067494 - add r0, r1, #0x2e4 - ldr r1, _020674A4 @ =0x020A92A8 - ldr r2, _020674AC @ =FUN_02069750 - add r0, r0, #0xc00 - bl FUN_0204707c - b _02067494 -_02066AF4: - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl FUN_02047188 - b _02067494 -_02066B08: - ldrsb r0, [r6, #0x7d] - bl FUN_0202c748 - ldr r1, [r6, #0xef0] - mov r4, r0 - cmp r1, #0 - strbne r4, [r1] - ldrsb r0, [r6, #0x7d] - bl FUN_0202c728 - cmp r0, #0 - bne _02066D68 - ldrsb r0, [r6, #0x7d] - bl FUN_0202c75c - movs r5, r0 - bpl _02066BAC - mov r2, #0 - mov r1, r2 - b _02066B58 -_02066B4C: - add r0, r6, r2 - strb r1, [r0, #0x4c] - add r2, r2, #1 -_02066B58: - ldr r0, [r6, #0x6c] - cmp r2, r0 - blt _02066B4C - mvn r0, #0 - str r0, [r6, #8] - bl FUN_020692b4 - ldr r0, _020674A0 @ =0x020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl FUN_02047150 - ldr r0, _020674A0 @ =0x020B0B2C - ldr r0, [r0, #0x14] - ldr r0, [r0, #4] - sub r0, r0, #0xa - cmp r0, #3 - bhi _02066BA4 - bl FUN_0205f5a8 - bl FUN_0205f710 -_02066BA4: - mvn r0, #0 - b _02067498 -_02066BAC: - bl FUN_020674e8 - cmp r0, #0 - beq _02066BE8 - ldr r0, _020674A0 @ =0x020B0B2C - ldr r0, [r0, #0x14] - ldr r0, [r0, #4] - sub r0, r0, #0x12 - cmp r0, #1 - bhi _02066D68 - bl FUN_020692b4 - ldr r0, _020674A0 @ =0x020B0B2C - mov r1, #2 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02066D68 -_02066BE8: - ldr r3, [r6, #8] - cmp r3, r5 - bne _02066D64 - ldr r0, _020674A0 @ =0x020B0B2C - ldr r1, [r0, #0x14] - ldr r2, [r1, #4] - cmp r2, #0xe - cmpne r2, #0xf - cmpne r2, #0x11 - moveq r0, #2 - streq r0, [r1] - beq _02066D68 - sub r1, r2, #0xa - cmp r1, #3 - bhi _02066CF4 - bl FUN_0205ed84 - cmp r0, #8 - bge _02066CEC - ldr r1, _020674A0 @ =0x020B0B2C - mov r0, #0 - ldr r1, [r1, #0x14] - ldr r1, [r1, #4] - sub r1, r1, #0xa - cmp r1, #3 - addls pc, pc, r1, lsl #2 - b _02066CCC -_02066C50: @ jump table - b _02066C60 @ case 0 - b _02066C7C @ case 1 - b _02066C98 @ case 2 - b _02066CB4 @ case 3 -_02066C60: - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl FUN_0205e970 - b _02066CCC -_02066C7C: - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl FUN_0205eae8 - b _02066CCC -_02066C98: - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl FUN_0205ebd8 - b _02066CCC -_02066CB4: - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl FUN_0205ec38 -_02066CCC: - bl FUN_0205f0b8 - bl FUN_020686f4 - bl FUN_0206937c - ldr r0, _020674A0 @ =0x020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl FUN_02047188 -_02066CEC: - bl FUN_020691b8 - b _02066D68 -_02066CF4: - cmp r2, #0x10 - bne _02066D04 - bl FUN_020691b8 - b _02066D68 -_02066D04: - sub r1, r2, #0x12 - cmp r1, #1 - bhi _02066D30 - add r1, r6, r3 - mov r2, #1 - strb r2, [r1, #0x4c] - ldr r0, [r0, #0x14] - mov r1, #2 - str r1, [r0] - bl FUN_020692b4 - b _02066D68 -_02066D30: - cmp r2, #9 - cmpne r2, #0x14 - cmpne r2, #4 - bne _02066D58 - bl FUN_020692b4 - ldr r0, _020674A0 @ =0x020B0B2C - mov r1, #2 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02066D68 -_02066D58: - bl FUN_020692b4 - mov r0, #1 - b _02067498 -_02066D64: - bl FUN_020691b8 -_02066D68: - bl FUN_020698b8 - cmp r0, #0 - beq _02066D90 - cmp r4, #0 - blt _02066D90 - ldr r0, [r6, #8] - cmp r0, r4 - beq _02066D90 - str r4, [r6, #8] - bl FUN_0206937c -_02066D90: - ldr r0, [r6, #0xee4] - cmp r0, #0 - beq _02067494 - bl FUN_020470d0 - b _02067494 -_02066DA4: - bl FUN_02067708 - b _02067494 -_02066DAC: - bl FUN_02046b04 - bl FUN_02068308 - ldr r1, [r6, #0xef4] - mov r4, r0 - cmp r1, #0 - beq _02066DD0 - bl FUN_02046ba0 - ldr r1, [r6, #0xef4] - strb r0, [r1] -_02066DD0: - cmp r4, #1 - bne _02066E00 - ldr r0, _020674A0 @ =0x020B0B2C - ldr r0, [r0, #0x14] - ldr r0, [r0, #4] - cmp r0, #9 - bne _02066DF4 - bl FUN_0206955c - bl thunk_FUN_020473a4 -_02066DF4: - bl FUN_020692b4 - mov r0, #1 - b _02067498 -_02066E00: - cmp r4, #2 - bne _02066EDC - ldr r0, _020674A0 @ =0x020B0B2C - ldr r0, [r0, #0x14] - ldr r0, [r0, #4] - cmp r0, #0xa - bne _02066E3C - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl FUN_0205e970 - bl FUN_0205f0b8 - b _02066EC0 -_02066E3C: - cmp r0, #0xb - bne _02066E64 - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl FUN_0205eae8 - bl FUN_0205f0b8 - b _02066EC0 -_02066E64: - cmp r0, #0xc - bne _02066E8C - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl FUN_0205ebd8 - bl FUN_0205f0b8 - b _02066EC0 -_02066E8C: - cmp r0, #0xd - bne _02066EB4 - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl FUN_0205ec38 - bl FUN_0205f0b8 - b _02066EC0 -_02066EB4: - cmp r0, #0x14 - moveq r0, #1 - beq _02067498 -_02066EC0: - bl FUN_020686f4 - bl FUN_0206937c - ldr r0, _020674A0 @ =0x020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_02066EDC: - cmp r4, #3 - bne _02066EF4 - bl FUN_02067c8c - cmp r0, #0 - beq _02067494 - b _02067498 -_02066EF4: - cmp r4, #4 - bne _02066F44 - bl FUN_02046bb4 - mov r0, #6 - bl FUN_02017ccc - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl GetAcceptedMission - mov r1, #4 - strb r1, [r0] - bl FUN_020686f4 - bl FUN_0206937c - ldr r0, _020674A0 @ =0x020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_02066F44: - cmp r4, #5 - bne _02067020 - ldr r0, _020674A0 @ =0x020B0B2C - ldr r0, [r0, #0x14] - ldr r0, [r0, #4] - cmp r0, #0x11 - bne _02066F84 - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl FUN_0205f588 - bl FUN_0205f5a8 - mov r0, #1 - b _02067498 -_02066F84: - cmp r0, #0x12 - moveq r0, #1 - beq _02067498 - cmp r0, #0xe - bne _02066FB4 - mov r0, #0 - bl FUN_02017ccc - ldr r0, _020674A0 @ =0x020B0B2C - mov r1, #4 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_02066FB4: - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl FUN_0205f588 - bl FUN_0205f5a8 - bl FUN_0205ed84 - cmp r0, #0 - bne _02066FFC - bl FUN_020692b4 - ldr r0, _020674A0 @ =0x020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl FUN_02047150 - mvn r0, #0 - b _02067498 -_02066FFC: - bl FUN_020686f4 - bl FUN_0206937c - ldr r0, _020674A0 @ =0x020B0B2C - mov r2, #0 - ldr r1, [r0, #0x14] - mov r0, #1 - str r2, [r1] - strb r0, [r6, #0xd84] - b _02067494 -_02067020: - cmp r4, #6 - bne _020670F4 - ldr r3, [r6, #0x70] - mov r1, #1 - add r0, r6, r3 - strb r1, [r0, #0x4c] - add r2, r3, #1 - ldr r1, [r6, #0x6c] - b _0206705C -_02067044: - add r0, r6, r2 - ldrb r0, [r0, #0x4c] - cmp r0, #0 - strne r2, [r6, #0x70] - bne _02067064 - add r2, r2, #1 -_0206705C: - cmp r2, r1 - blt _02067044 -_02067064: - ldr r0, [r6, #0x70] - cmp r0, r3 - bne _020670A0 - bl FUN_020674e8 - cmp r0, #0 - bne _02067098 - bl thunk_FUN_020473a4 - mov r1, #0 - ldr r0, _020674A0 @ =0x020B0B2C - str r1, [r6, #8] - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_02067098: - mov r0, #2 - b _02067498 -_020670A0: - str r0, [r6, #8] - bl FUN_0206937c - ldr r0, _020674A0 @ =0x020B0B2C - ldr r1, _020674B0 @ =0x020A937C - ldrsb r3, [r0, #0xd] - ldr r0, _020674B4 @ =0x020B0B39 - ldr r2, _020674B8 @ =0x020A9378 - ldr r1, [r1, r3, lsl #3] - add r3, r6, #0x248 - str r1, [r6, #0xe48] - str r0, [r6, #0xef4] - mov r0, #0 - ldr r1, _020674BC @ =0x00003878 - str r2, [sp] - str r1, [sp, #4] - ldr r2, _020674C0 @ =0x00000233 - mov r1, r0 - add r3, r3, #0xc00 - str r0, [sp, #8] - bl FUN_02046a20 - b _02067494 -_020670F4: - sub r0, r4, #7 - cmp r0, #1 - bhi _02067494 - ldr r0, _020674A0 @ =0x020B0B2C - ldr r1, [r0, #0x14] - ldr r0, [r1, #4] - cmp r0, #0x11 - bne _02067134 - bl thunk_FUN_020473a4 - ldr r1, [r6, #8] - ldr r0, _020674A0 @ =0x020B0B2C - str r1, [r6, #0xd88] - ldr r0, [r0, #0x14] - mov r1, #0 - str r1, [r0] - b _02067494 -_02067134: - cmp r0, #0x13 - bne _02067210 - ldr r3, [r6, #0x70] - mov r1, #0 - add r0, r6, r3 - strb r1, [r0, #0x4c] - mov r2, r3 - ldr r1, [r6, #0x6c] - b _02067170 -_02067158: - add r0, r6, r2 - ldrb r0, [r0, #0x4c] - cmp r0, #0 - strne r2, [r6, #0x70] - bne _02067178 - add r2, r2, #1 -_02067170: - cmp r2, r1 - blt _02067158 -_02067178: - ldr r0, [r6, #0x70] - cmp r0, r3 - bne _020671BC - bl FUN_020674e8 - cmp r0, #0 - bne _020671B4 - bl thunk_FUN_020473a4 - mov r0, #0 - str r0, [r6, #8] - bl FUN_0206937c - ldr r0, _020674A0 @ =0x020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_020671B4: - mov r0, #2 - b _02067498 -_020671BC: - str r0, [r6, #8] - bl FUN_0206937c - ldr r0, _020674A0 @ =0x020B0B2C - ldr r1, _020674B0 @ =0x020A937C - ldrsb r3, [r0, #0xd] - ldr r0, _020674B4 @ =0x020B0B39 - ldr r2, _020674B8 @ =0x020A9378 - ldr r1, [r1, r3, lsl #3] - add r3, r6, #0x248 - str r1, [r6, #0xe48] - str r0, [r6, #0xef4] - mov r0, #0 - ldr r1, _020674BC @ =0x00003878 - str r2, [sp] - str r1, [sp, #4] - ldr r2, _020674C0 @ =0x00000233 - mov r1, r0 - add r3, r3, #0xc00 - str r0, [sp, #8] - bl FUN_02046a20 - b _02067494 -_02067210: - cmp r0, #9 - bne _02067234 - bl FUN_0206955c - bl thunk_FUN_020473a4 - ldr r0, _020674A0 @ =0x020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_02067234: - cmp r0, #4 - bne _02067254 - bl thunk_FUN_020473a4 - ldr r0, _020674A0 @ =0x020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_02067254: - cmp r0, #0x12 - bne _02067298 - mov r2, #0 - mov r1, r2 - b _02067274 -_02067268: - add r0, r6, r2 - strb r1, [r0, #0x4c] - add r2, r2, #1 -_02067274: - ldr r0, [r6, #0x6c] - cmp r2, r0 - blt _02067268 - bl thunk_FUN_020473a4 - ldr r0, _020674A0 @ =0x020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_02067298: - cmp r0, #0x14 - bne _020672B8 - bl thunk_FUN_020473a4 - ldr r0, _020674A0 @ =0x020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_020672B8: - cmp r0, #0xe - bne _020672E8 - bl FUN_02046bb4 - cmp r4, #7 - bne _020672D4 - mov r0, #0 - bl FUN_02017ccc -_020672D4: - ldr r0, _020674A0 @ =0x020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_020672E8: - mov r0, #0 - str r0, [r1] - b _02067494 -_020672F4: - mov r0, #0 - ldr r5, _020674C4 @ =0x020A9268 - bl FUN_02046d2c - str r0, [r6, #0xee8] - mov r0, #0 - bl FUN_020474a0 - str r0, [r6, #0xeec] - bl FUN_020469bc - bl FUN_02068338 - ldr r0, _020674A0 @ =0x020B0B2C - add r3, r6, #0x248 - ldr r0, [r0, #0x14] - mov r1, #0 - ldr r0, [r0, #4] - ldr r2, _020674C0 @ =0x00000233 - cmp r0, #0xe - moveq r0, #7 - streq r0, [r6, #0xe48] - moveq r0, #0 - streq r0, [r6, #0xef4] - ldreq r4, _020674C8 @ =0x020A92D0 - mov r0, r5 + arm_func_start ov00_022C9018 +ov00_022C9018: @ 0x022C9018 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + mov r7, r1 + mov r5, r3 + add r1, r7, #0x14 + add r1, r1, r5 + lsl r1, r1, #0x10 + ldr r3, [sp, #0x24] + lsr r4, r1, #0x10 + lsl r1, r3, #0x10 + lsl r3, r4, #8 + orr r3, r3, r4, asr #8 + mov r8, r0 + lsr r1, r1, #0x10 + lsl r0, r1, #8 + strh r3, [r8, #-0x12] + orr r0, r0, r1, asr #8 + strh r0, [r8, #-0xe] + mov r3, #0 + sub r0, r8, #0x14 + mov r1, #0x14 + mov r6, r2 + strh r3, [r8, #-0xa] + ldr r4, [sp, #0x20] + bl ov00_022C8658 + lsl r2, r0, #8 + ldr r1, _022C9130 @ =0x7F000001 + orr r0, r2, r0, asr #8 + strh r0, [r8, #-0xa] + cmp r4, r1 + ldrne r0, _022C9134 @ =0x02325078 + ldrne r0, [r0, #0x50] + cmpne r4, r0 + beq _022C90C0 + mov r2, r6 + mov r3, r5 str r4, [sp] - str r1, [sp, #4] - add r3, r3, #0xc00 - str r1, [sp, #8] - bl FUN_02046a20 - ldr r0, _020674A0 @ =0x020B0B2C - mov r1, #5 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_02067374: - bl FUN_02046b04 - bl FUN_02068308 - ldr r1, [r6, #0xef4] + mov ip, #0x800 + sub r0, r8, #0x14 + add r1, r7, #0x14 + str ip, [sp, #4] + bl ov00_022C8F48 +_022C90C0: + ldr r0, _022C9130 @ =0x7F000001 + cmp r4, r0 + ldrne r0, _022C9134 @ =0x02325078 + ldrne r0, [r0, #0x50] + cmpne r4, r0 + beq _022C90EC + mov r0, r4 + bl ov00_022C8764 + cmp r0, #0 + addeq sp, sp, #8 + popeq {r4, r5, r6, r7, r8, pc} +_022C90EC: + ldr r0, _022C9138 @ =0x02318850 + sub r1, r8, #0x1c + mov r2, #8 + bl FUN_0207C4C8 + bl FUN_0207B7E4 mov r4, r0 - cmp r1, #0 - beq _02067398 - bl FUN_02046ba0 - ldr r1, [r6, #0xef4] - strb r0, [r1] -_02067398: - cmp r4, #5 - bne _02067430 - bl FUN_020469e8 - ldr r0, [r6, #0xee8] - bl FUN_02046d2c - ldr r0, [r6, #0xeec] - bl FUN_020474a0 - mov r0, #0 - str r0, [r6, #0xee8] - str r0, [r6, #0xeec] - bl FUN_02046bb4 - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl FUN_0205f588 - bl FUN_0205f5a8 - bl FUN_0205ed84 - cmp r0, #0 - bne _0206740C - bl FUN_020692b4 - ldr r0, _020674A0 @ =0x020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl FUN_02047150 - mvn r0, #0 - b _02067498 -_0206740C: - bl FUN_020686f4 - bl FUN_0206937c - ldr r0, _020674A0 @ =0x020B0B2C - mov r2, #0 - ldr r1, [r0, #0x14] - mov r0, #1 - str r2, [r1] - strb r0, [r6, #0xd84] - b _02067494 -_02067430: - sub r0, r4, #7 - cmp r0, #1 - bhi _02067494 - bl FUN_020469e8 - ldr r0, [r6, #0xee8] - bl FUN_02046d2c - ldr r0, [r6, #0xeec] - bl FUN_020474a0 - mov r0, #0 - str r0, [r6, #0xee8] - str r0, [r6, #0xeec] - bl FUN_02046bb4 - ldr r0, _020674A0 @ =0x020B0B2C + ldr r0, _022C913C @ =0x02325560 + str r6, [sp] + mov r1, r0 + str r5, [sp, #4] + sub r2, r8, #0x1c + add r3, r7, #0x1c + bl ov00_022C8880 + mov r0, r4 + bl FUN_0207B7F8 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022C9130: .4byte 0x7F000001 +_022C9134: .4byte 0x02325078 +_022C9138: .4byte 0x02318850 +_022C913C: .4byte 0x02325560 + arm_func_end ov00_022C9018 + + arm_func_start ov00_022C9140 +ov00_022C9140: @ 0x022C9140 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #8 + mov sl, r0 + mov r0, #0x45 + strb r0, [sl, #-0x14] + mov r4, #0 + ldr r7, _022C9330 @ =0x02325078 + strb r4, [sl, #-0x13] + ldrh r0, [r7, #6] + ldr r6, [sp, #0x30] + ldrb r5, [sp, #0x34] + add r0, r0, #1 + strh r0, [r7, #6] + ldrh fp, [r7, #6] + lsr r0, r6, #0x10 + mov r8, #0x80 + lsl sb, fp, #8 + orr sb, sb, fp, asr #8 + strh sb, [sl, #-0x10] + strb r8, [sl, #-0xc] + strb r5, [sl, #-0xb] + ldr r8, [r7, #0x50] + lsl r5, r0, #0x10 + lsr r0, r8, #0x10 + lsl r0, r0, #0x10 + lsr r8, r0, #0x10 + lsl r0, r8, #8 + orr r0, r0, r8, asr #8 + strh r0, [sl, #-8] + ldr r0, [r7, #0x50] + lsr r8, r5, #0x10 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + lsl r5, r7, #8 + lsl r0, r6, #0x10 + orr sb, r5, r7, asr #8 + lsl r7, r8, #8 + lsr r5, r0, #0x10 + lsl r0, r5, #8 + strh sb, [sl, #-6] + orr r7, r7, r8, asr #8 + ldr fp, _022C9334 @ =0x000005C8 + mov sb, r1 + strh r7, [sl, #-4] + orr r0, r0, r5, asr #8 + mov r8, r2 + mov r7, r3 + strh r0, [sl, #-2] + cmp sb, fp + bls _022C92AC + mov r5, sl + bls _022C9250 +_022C9210: + mov r0, sl mov r1, #0 - ldr r0, [r0, #0x14] - str r1, [r0] - b _02067494 -_02067474: - bl FUN_02046c78 - cmp r0, #0 - beq _02067494 - bl thunk_FUN_020473a4 - ldr r0, _020674A0 @ =0x020B0B2C + mov r2, r5 + mov r3, fp + str r6, [sp] + orr ip, r4, #0x2000 + str ip, [sp, #4] + bl ov00_022C9018 + add r1, r4, #0xb9 + add r0, r5, #0x1c8 + sub sb, sb, fp + lsl r1, r1, #0x10 + cmp sb, fp + add r5, r0, #0x400 + lsr r4, r1, #0x10 + bhi _022C9210 +_022C9250: + cmp sb, #0 + beq _022C92AC + cmp r7, #0 mov r1, #0 - ldr r0, [r0, #0x14] - str r1, [r0] -_02067494: - mov r0, #0 -_02067498: - add sp, sp, #0xc - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_020674A0: .4byte 0x020B0B2C -_020674A4: .4byte 0x020A92A8 -_020674A8: .4byte FUN_020696e8 -_020674AC: .4byte FUN_02069750 -_020674B0: .4byte 0x020A937C -_020674B4: .4byte 0x020B0B39 -_020674B8: .4byte 0x020A9378 -_020674BC: .4byte 0x00003878 -_020674C0: .4byte 0x00000233 -_020674C4: .4byte 0x020A9268 -_020674C8: .4byte 0x020A92D0 - arm_func_end FUN_02066a44 - - arm_func_start FUN_020674cc -FUN_020674cc: @ 0x020674CC - ldr r0, _020674E4 @ =0x020B0B2C - ldr r1, [r0, #0x14] - ldr r0, [r1, #8] - add r0, r1, r0, lsl #1 - ldrsh r0, [r0, #0xc] - bx lr - .align 2, 0 -_020674E4: .4byte 0x020B0B2C - arm_func_end FUN_020674cc - - arm_func_start FUN_020674e8 -FUN_020674e8: @ 0x020674E8 - ldr r0, _02067520 @ =0x020B0B2C - mov ip, #0 - ldr r2, [r0, #0x14] - mov r0, ip - ldr r3, [r2, #0x6c] - b _02067514 -_02067500: - add r1, r2, ip - ldrb r1, [r1, #0x4c] - add ip, ip, #1 - cmp r1, #0 - addne r0, r0, #1 -_02067514: - cmp ip, r3 - blt _02067500 - bx lr - .align 2, 0 -_02067520: .4byte 0x020B0B2C - arm_func_end FUN_020674e8 -_02067524: - .byte 0x10, 0x40, 0x2D, 0xE9, 0x00, 0xE0, 0xA0, 0xE3, 0x0E, 0x40, 0xA0, 0xE1 - .byte 0x48, 0x20, 0x9F, 0xE5, 0x0B, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x5E, 0xE1, 0x00, 0x00, 0xA0, 0xA3 - .byte 0x10, 0x80, 0xBD, 0xA8, 0x04, 0x30, 0x8C, 0xE0, 0x4C, 0x30, 0xD3, 0xE5, 0x00, 0x00, 0x53, 0xE3 - .byte 0x84, 0x30, 0x8C, 0x10, 0xFC, 0xC0, 0xD3, 0x11, 0x8E, 0x30, 0xA0, 0x11, 0x01, 0xE0, 0x8E, 0x12 - .byte 0xB3, 0xC0, 0x80, 0x11, 0x01, 0x40, 0x84, 0xE2, 0x14, 0xC0, 0x92, 0xE5, 0x6C, 0x30, 0x9C, 0xE5 - .byte 0x03, 0x00, 0x54, 0xE1, 0xEF, 0xFF, 0xFF, 0xBA, 0x01, 0x00, 0xA0, 0xE3, 0x10, 0x80, 0xBD, 0xE8 - .byte 0x2C, 0x0B, 0x0B, 0x02 - - arm_func_start FUN_02067584 -FUN_02067584: @ 0x02067584 - push {r4, lr} - sub sp, sp, #0x40 - cmp r0, #0x13 - addls pc, pc, r0, lsl #2 - b _02067658 -_02067598: @ jump table - b _020675E8 @ case 0 - b _020675E8 @ case 1 - b _020675E8 @ case 2 - b _020675E8 @ case 3 - b _020675E8 @ case 4 - b _020675E8 @ case 5 - b _020675E8 @ case 6 - b _020675E8 @ case 7 - b _02067658 @ case 8 - b _020675E8 @ case 9 - b _020675E8 @ case 10 - b _020675E8 @ case 11 - b _020675E8 @ case 12 - b _020675E8 @ case 13 - b _02067638 @ case 14 - b _02067638 @ case 15 - b _02067638 @ case 16 - b _02067604 @ case 17 - b _020675E8 @ case 18 - b _02067650 @ case 19 -_020675E8: - add r1, sp, #0 - bl FUN_02068390 - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - b _0206765C -_02067604: - bl FUN_0204e210 - cmp r0, #1 - bne _02067638 - bl FUN_0205ed84 - mov r4, r0 - bl GetAdventureLogDungeonFloor - ldrb r0, [r0] - bl DungeonRequestsDoneWrapper - subs r0, r4, r0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - b _0206765C -_02067638: - bl FUN_0205ed84 - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - b _0206765C -_02067650: - mov r0, #0 - b _0206765C -_02067658: - mov r0, #1 -_0206765C: - add sp, sp, #0x40 - pop {r4, pc} - arm_func_end FUN_02067584 - - arm_func_start FUN_02067664 -FUN_02067664: @ 0x02067664 - push {r3, lr} - ldr r0, _020676A8 @ =0x020B0B2C - ldr r0, [r0, #0x14] - cmp r0, #0 - popeq {r3, pc} - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl FUN_02047150 - bl FUN_02069904 - bl FUN_020692b4 - ldr r0, _020676A8 @ =0x020B0B2C - ldr r0, [r0, #0x14] - bl MemFree - ldr r0, _020676A8 @ =0x020B0B2C - mov r1, #0 - str r1, [r0, #0x14] - pop {r3, pc} - .align 2, 0 -_020676A8: .4byte 0x020B0B2C - arm_func_end FUN_02067664 - - arm_func_start FUN_020676ac -FUN_020676ac: @ 0x020676AC - ldr r0, _02067704 @ =0x020B0B2C - mov r1, #0 - strb r1, [r0, #0x10] - strb r1, [r0, #0xe] - strb r1, [r0, #9] - strb r1, [r0, #8] - strb r1, [r0, #6] - strb r1, [r0, #0xb] - strb r1, [r0, #4] - strb r1, [r0, #0xd] - strb r1, [r0, #7] - strb r1, [r0, #3] - strb r1, [r0, #2] - strb r1, [r0, #5] - strb r1, [r0, #1] - strb r1, [r0] - strb r1, [r0, #0x13] - strb r1, [r0, #0x12] - strb r1, [r0, #0x11] - strb r1, [r0, #0xa] - strb r1, [r0, #0xf] - bx lr - .align 2, 0 -_02067704: .4byte 0x020B0B2C - arm_func_end FUN_020676ac - - arm_func_start FUN_02067708 -FUN_02067708: @ 0x02067708 - push {r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x5c - ldr r1, _02067C00 @ =0x020B0B2C - mov r6, #0 - add r0, sp, #0xc - mov sb, r6 - ldr r4, [r1, #0x14] - ldr r7, _02067C04 @ =0x020A9298 - ldr r8, _02067C08 @ =0x00000233 - bl InitPreprocessorArgs - bl FUN_02068338 - ldr r1, _02067C00 @ =0x020B0B2C - ldr r0, [r1, #0x14] - ldr r2, [r0, #4] - sub r2, r2, #4 - cmp r2, #0x10 - addls pc, pc, r2, lsl #2 - b _02067BC4 -_02067750: @ jump table - b _02067AF8 @ case 0 - b _02067BC4 @ case 1 - b _02067BC4 @ case 2 - b _02067BC4 @ case 3 - b _02067BC4 @ case 4 - b _02067A80 @ case 5 - b _02067794 @ case 6 - b _020677F0 @ case 7 - b _0206784C @ case 8 - b _020678A8 @ case 9 - b _02067904 @ case 10 - b _020679E0 @ case 11 - b _02067BC4 @ case 12 - b _02067A50 @ case 13 - b _02067B20 @ case 14 - b _02067B3C @ case 15 - b _02067BA0 @ case 16 -_02067794: - ldr r0, [r4, #8] - add r0, r4, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl FUN_0205e970 - bl FUN_0205ec98 - cmp r0, #0 - bne _020677C4 - bl FUN_0205ed84 - cmp r0, #8 - blt _020677CC -_020677C4: - mov r0, #3 - strb r0, [r4, #0xee0] -_020677CC: - ldr r0, _02067C00 @ =0x020B0B2C - ldr r1, _02067C0C @ =0x020A9364 - ldrsb r2, [r0, #0x10] - ldr r0, _02067C10 @ =0x020B0B3C - ldr r5, _02067C14 @ =0x020A9360 - ldr r1, [r1, r2, lsl #3] - str r1, [r4, #0xe48] - str r0, [r4, #0xef4] - b _02067BC4 -_020677F0: - ldr r0, [r4, #8] - add r0, r4, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl FUN_0205eae8 - bl FUN_0205ec98 - cmp r0, #0 - bne _02067820 - bl FUN_0205ed84 - cmp r0, #8 - blt _02067828 -_02067820: - mov r0, #3 - strb r0, [r4, #0xee0] -_02067828: - ldr r0, _02067C00 @ =0x020B0B2C - ldr r1, _02067C0C @ =0x020A9364 - ldrsb r2, [r0, #0xe] - ldr r0, _02067C18 @ =0x020B0B3A - ldr r5, _02067C14 @ =0x020A9360 - ldr r1, [r1, r2, lsl #3] - str r1, [r4, #0xe48] - str r0, [r4, #0xef4] - b _02067BC4 -_0206784C: - ldr r0, [r4, #8] - add r0, r4, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl FUN_0205ebd8 - bl FUN_0205ec98 - cmp r0, #0 - bne _0206787C - bl FUN_0205ed84 - cmp r0, #8 - blt _02067884 -_0206787C: - mov r0, #3 - strb r0, [r4, #0xee0] -_02067884: - ldr r0, _02067C00 @ =0x020B0B2C - ldr r1, _02067C0C @ =0x020A9364 - ldrsb r2, [r0, #9] - ldr r0, _02067C1C @ =0x020B0B35 - ldr r5, _02067C14 @ =0x020A9360 - ldr r1, [r1, r2, lsl #3] - str r1, [r4, #0xe48] - str r0, [r4, #0xef4] - b _02067BC4 -_020678A8: - ldr r0, [r4, #8] - add r0, r4, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl FUN_0205ec38 - bl FUN_0205ec98 - cmp r0, #0 - bne _020678D8 - bl FUN_0205ed84 - cmp r0, #8 - blt _020678E0 -_020678D8: - mov r0, #3 - strb r0, [r4, #0xee0] -_020678E0: - ldr r0, _02067C00 @ =0x020B0B2C - ldr r1, _02067C0C @ =0x020A9364 - ldrsb r2, [r0, #8] - ldr r0, _02067C20 @ =0x020B0B34 - ldr r5, _02067C14 @ =0x020A9360 - ldr r1, [r1, r2, lsl #3] - str r1, [r4, #0xe48] - str r0, [r4, #0xef4] - b _02067BC4 -_02067904: - ldr r0, [r4, #8] - add r0, r4, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl GetAcceptedMission - mov r5, r0 - ldrb r0, [r5, #4] - bl DungeonSwapIdToIdx - ldrb r0, [r5] - orr r8, r8, #0x400000 - orr r8, r8, #0x80000000 - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _0206798C -_02067940: @ jump table - b _0206798C @ case 0 - b _02067954 @ case 1 - b _02067954 @ case 2 - b _02067954 @ case 3 - b _02067954 @ case 4 -_02067954: - mov r0, r5 - bl FUN_0205ecf4 - cmp r0, #0 - movne r0, #3 - strbne r0, [r4, #0xee0] - ldr r0, _02067C00 @ =0x020B0B2C - ldr r1, _02067C24 @ =0x020A9394 - ldrsb r2, [r0, #6] - ldr r0, _02067C28 @ =0x020B0B32 - ldr r5, _02067C2C @ =0x020A9390 - ldr r1, [r1, r2, lsl #3] - str r1, [r4, #0xe48] - str r0, [r4, #0xef4] - b _02067BC4 -_0206798C: - ldrb r1, [r5, #1] - cmp r1, #3 - ldrbeq r0, [r5, #2] - cmpeq r0, #3 - moveq r0, #3 - strbeq r0, [r4, #0xee0] - beq _020679BC - cmp r1, #6 - ldrbeq r0, [r5, #2] - cmpeq r0, #4 - moveq r0, #3 - strbeq r0, [r4, #0xee0] -_020679BC: - ldr r0, _02067C00 @ =0x020B0B2C - ldr r1, _02067C30 @ =0x020A93B4 - ldrsb r2, [r0, #6] - ldr r0, _02067C28 @ =0x020B0B32 - ldr r5, _02067C34 @ =0x020A93B0 - ldr r1, [r1, r2, lsl #3] - str r1, [r4, #0xe48] - str r0, [r4, #0xef4] - b _02067BC4 -_020679E0: - ldr r0, [r4, #8] - add r0, r4, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl GetAcceptedMission - ldrb r0, [r0] - cmp r0, #4 - beq _02067A2C - ldr r0, [r4, #8] - add r0, r4, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl GetAcceptedMission - ldrb r0, [r0] - cmp r0, #1 - movne r0, #3 - strbne r0, [r4, #0xee0] -_02067A2C: - ldr r0, _02067C00 @ =0x020B0B2C - ldr r1, _02067C38 @ =0x020A92EC - ldrsb r2, [r0, #0xb] - ldr r0, _02067C3C @ =0x020B0B37 - ldr r5, _02067C40 @ =0x020A92E8 - ldr r1, [r1, r2, lsl #3] - str r1, [r4, #0xe48] - str r0, [r4, #0xef4] - b _02067BC4 -_02067A50: - ldr r5, _02067C44 @ =0x020A9318 - ldr r6, _02067C48 @ =0x000037B0 - mov r7, sb - bl FUN_020692b4 - ldr r0, _02067C00 @ =0x020B0B2C - ldr r1, _02067C4C @ =0x020A931C - ldrsb r2, [r0, #4] - ldr r0, _02067C50 @ =0x020B0B30 - ldr r1, [r1, r2, lsl #3] - str r1, [r4, #0xe48] - str r0, [r4, #0xef4] - b _02067BC4 -_02067A80: - sub r1, r8, #0x100 - str r1, [sp, #0xc] - add r1, r0, #0xd00 - mov r7, r6 - ldrsb r2, [r1, #0x85] - sub r1, r7, #2 - ldr r5, _02067C54 @ =0x020A92B8 - cmp r2, r1 - ldreq r0, [r0, #4] - ldr r6, _02067C58 @ =0x0000380C - mov sb, #0x1000 - cmpeq r0, #9 - bne _02067AE4 - mov r0, r7 - mov r1, #3 - mov r2, #1 - bl CreatePortraitBox - ldr r2, _02067C00 @ =0x020B0B2C - ldr r1, _02067C5C @ =0x020A9278 - ldr r3, [r2, #0x14] - strb r0, [r3, #0xd85] - ldr r0, [r2, #0x14] - add r0, r0, #0xd00 - ldrsb r0, [r0, #0x85] - bl ShowPortraitBox -_02067AE4: - ldr r1, [r5, #0xc] - mov r0, #0 - str r1, [r4, #0xe48] - str r0, [r4, #0xef4] - b _02067BC4 -_02067AF8: - ldrsb r2, [r1, #0xc] - ldr r1, _02067C60 @ =0x020A9304 - ldr r0, _02067C64 @ =0x020B0B38 - ldr r1, [r1, r2, lsl #3] - ldr r5, _02067C68 @ =0x020A9300 - str r1, [r4, #0xe48] - str r0, [r4, #0xef4] - rsb r6, r8, #0x3a40 - mov r7, sb - b _02067BC4 -_02067B20: - mov r0, #7 - mov r7, r6 - str r0, [r4, #0xe48] - str r7, [r4, #0xef4] - ldr r5, _02067C6C @ =0x020A9348 - ldr r6, _02067C70 @ =0x000038BF - b _02067BC4 -_02067B3C: - ldr r1, [r4, #0x6c] - ldr r5, _02067C74 @ =0x020A9378 - ldr r6, _02067C78 @ =0x00003878 - mov r2, sb - b _02067B68 -_02067B50: - add r0, r4, r2 - ldrb r0, [r0, #0x4c] - cmp r0, #0 - strne r2, [r4, #0x70] - bne _02067B70 - add r2, r2, #1 -_02067B68: - cmp r2, r1 - blt _02067B50 -_02067B70: - ldr r0, [r4, #0x70] - mov r7, #0 - str r0, [r4, #8] - bl FUN_0206937c - ldr r0, _02067C00 @ =0x020B0B2C - ldr r1, _02067C7C @ =0x020B0B39 - ldrsb r0, [r0, #0xd] - add r0, r5, r0, lsl #3 - ldr r0, [r0, #4] - str r0, [r4, #0xe48] - str r1, [r4, #0xef4] - b _02067BC4 -_02067BA0: - ldrsb r2, [r1, #7] - ldr r1, _02067C80 @ =0x020A9334 - ldr r0, _02067C84 @ =0x020B0B33 - ldr r1, [r1, r2, lsl #3] - ldr r5, _02067C88 @ =0x020A9330 - str r1, [r4, #0xe48] - add r6, r8, #0x3580 - str r0, [r4, #0xef4] - mov r7, sb -_02067BC4: - add r3, r4, #0x248 - stm sp, {r5, r6} - add r4, sp, #0xc - mov r0, r7 + beq _022C9284 + mov r2, r5 + mov r0, sl + mov r3, sb + str r6, [sp] + orr r5, r4, #0x2000 + str r5, [sp, #4] + bl ov00_022C9018 + b _022C929C +_022C9284: + str r6, [sp] + mov r0, sl + mov r2, r5 + mov r3, sb + str r4, [sp, #4] + bl ov00_022C9018 +_022C929C: + add r0, r4, sb, lsr #3 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + mov sb, #0 +_022C92AC: + ldr fp, _022C9334 @ =0x000005C8 + add r0, sb, r7 + cmp r0, fp + bls _022C9300 +_022C92BC: + sub r5, fp, sb + mov r1, sb + mov r0, sl + mov r2, r8 + mov r3, r5 + str r6, [sp] + orr sb, r4, #0x2000 + str sb, [sp, #4] + bl ov00_022C9018 + add r0, r4, #0xb9 + sub r7, r7, r5 + lsl r0, r0, #0x10 + mov sb, #0 + cmp r7, fp + add r8, r8, r5 + lsr r4, r0, #0x10 + bhi _022C92BC +_022C9300: + adds r0, sb, r7 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + str r6, [sp] + mov r0, sl mov r1, sb mov r2, r8 - add r3, r3, #0xc00 - str r4, [sp, #8] - bl FUN_02046a20 - ldr r0, _02067C00 @ =0x020B0B2C - mov r1, #3 - ldr r0, [r0, #0x14] - str r1, [r0] - add sp, sp, #0x5c - pop {r4, r5, r6, r7, r8, sb, pc} + mov r3, r7 + str r4, [sp, #4] + bl ov00_022C9018 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 -_02067C00: .4byte 0x020B0B2C -_02067C04: .4byte 0x020A9298 -_02067C08: .4byte 0x00000233 -_02067C0C: .4byte 0x020A9364 -_02067C10: .4byte 0x020B0B3C -_02067C14: .4byte 0x020A9360 -_02067C18: .4byte 0x020B0B3A -_02067C1C: .4byte 0x020B0B35 -_02067C20: .4byte 0x020B0B34 -_02067C24: .4byte 0x020A9394 -_02067C28: .4byte 0x020B0B32 -_02067C2C: .4byte 0x020A9390 -_02067C30: .4byte 0x020A93B4 -_02067C34: .4byte 0x020A93B0 -_02067C38: .4byte 0x020A92EC -_02067C3C: .4byte 0x020B0B37 -_02067C40: .4byte 0x020A92E8 -_02067C44: .4byte 0x020A9318 -_02067C48: .4byte 0x000037B0 -_02067C4C: .4byte 0x020A931C -_02067C50: .4byte 0x020B0B30 -_02067C54: .4byte 0x020A92B8 -_02067C58: .4byte 0x0000380C -_02067C5C: .4byte 0x020A9278 -_02067C60: .4byte 0x020A9304 -_02067C64: .4byte 0x020B0B38 -_02067C68: .4byte 0x020A9300 -_02067C6C: .4byte 0x020A9348 -_02067C70: .4byte 0x000038BF -_02067C74: .4byte 0x020A9378 -_02067C78: .4byte 0x00003878 -_02067C7C: .4byte 0x020B0B39 -_02067C80: .4byte 0x020A9334 -_02067C84: .4byte 0x020B0B33 -_02067C88: .4byte 0x020A9330 - arm_func_end FUN_02067708 +_022C9330: .4byte 0x02325078 +_022C9334: .4byte 0x000005C8 + arm_func_end ov00_022C9140 - arm_func_start FUN_02067c8c -FUN_02067c8c: @ 0x02067C8C - push {r4, r5, r6, lr} - sub sp, sp, #0x60 - ldr r0, _020682E0 @ =0x020B0B2C - ldr r6, [r0, #0x14] - bl FUN_02046bb4 - mov r0, #6 - bl FUN_02017ccc - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl GetAcceptedMission - mov r4, r0 - ldrb r0, [r4, #4] - bl DungeonSwapIdToIdx - mov r5, r0 - add r0, sp, #8 - str r0, [sp] - ldrb r0, [r4, #1] - add r1, r4, #2 - add r2, sp, #4 - add r3, sp, #0xc - bl FUN_0206276c - ldrb r1, [r4, #1] - cmp r1, #0xe - ldrbeq r0, [r4, #2] - cmpeq r0, #1 - bne _02067E70 - bl FUN_02050c74 - ldrb r1, [sp, #4] - cmp r1, r0 - bhi _02067D3C - bl GetScenarioBalance - ldr r1, [sp, #0xc] - cmp r1, r0 - bgt _02067D3C - ldr r0, [sp, #8] - cmp r0, #0 - beq _02067D7C - mov r0, #0x16 - bl GetPerformanceFlagWithChecks - cmp r0, #0 - bne _02067D7C -_02067D3C: - bl FUN_020692b4 - ldr r0, _020682E0 @ =0x020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl FUN_02047150 - ldr r1, _020682E4 @ =0x0000381F - mov r0, #0x1c + arm_func_start ov00_022C9338 +ov00_022C9338: @ 0x022C9338 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + mov r5, r2 + ldr r4, [r5, #0x4c] + mov r6, r1 + mov r1, #8 + ldr r3, _022C93E0 @ =0x02325078 + ldr r2, _022C93E4 @ =0x022B966C + strh r1, [r4, #0x22] + ldr r2, [r2, #4] + ldrh lr, [r3, #4] + mov r7, r0 + strh r2, [r4, #0x26] mov r2, #0 - bl FUN_02046be8 - ldr r0, _020682E0 @ =0x020B0B2C - mov r2, #6 - ldr r1, [r0, #0x14] - mov r0, #0 - str r2, [r1] - b _020682D8 -_02067D7C: - mov r0, r5 - bl GetDungeonMode - cmp r0, #3 - bne _02067DCC - bl FUN_020692b4 - ldr r0, _020682E0 @ =0x020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl FUN_02047150 - ldr r1, _020682E8 @ =0x00003820 - mov r0, #0x1c + strh r2, [r4, #0x24] + strh lr, [r5, #0xa] + add ip, lr, #1 + add r0, r4, #0x22 + strh ip, [r3, #4] + strh lr, [r4, #0x28] + bl ov00_022C8588 + mov r2, r0 + mov r0, r7 + mov r1, r6 + bl ov00_022C8588 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl ov00_022C863C + mov r2, r7 + mov r3, r6 + lsl r1, r0, #8 + orr r0, r1, r0, asr #8 + strh r0, [r4, #0x24] + ldr r1, [r5, #0x1c] + add r0, r4, #0x22 + str r1, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r1, #8 + bl ov00_022C9140 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022C93E0: .4byte 0x02325078 +_022C93E4: .4byte 0x022B966C + arm_func_end ov00_022C9338 + + arm_func_start ov00_022C93E8 +ov00_022C93E8: @ 0x022C93E8 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + ldr r7, _022C9520 @ =0x02325078 + mov r5, r2 + ldr r2, [r7, #0x50] + mov r6, r1 + lsr r1, r2, #0x10 + lsl r1, r1, #0x10 + lsr r2, r1, #0x10 + ldr r3, [r5, #0x4c] + lsl r1, r2, #8 + add r4, r3, #0x22 + orr r1, r1, r2, asr #8 + strh r1, [r4, #-0xc] + ldr r1, [r7, #0x50] + add r2, r6, #8 + lsl r1, r1, #0x10 + lsr r7, r1, #0x10 + lsl r1, r7, #8 + orr r1, r1, r7, asr #8 + strh r1, [r4, #-0xa] + ldr r1, [r5, #0x1c] + lsl r2, r2, #0x10 + lsr r1, r1, #0x10 + lsl r1, r1, #0x10 + lsr r7, r1, #0x10 + lsl r1, r7, #8 + orr r1, r1, r7, asr #8 + strh r1, [r4, #-8] + ldr r1, [r5, #0x1c] + lsr r2, r2, #0x10 + lsl r1, r1, #0x10 + lsr r7, r1, #0x10 + lsl r1, r7, #8 + orr r7, r1, r7, asr #8 + lsl r1, r2, #8 + strh r7, [r4, #-6] + mov r7, #0x1100 + strh r7, [r4, #-4] + orr r1, r1, r2, asr #8 + strh r1, [r4, #4] + ldrh r1, [r4, #4] + mov r7, r0 + sub r0, r4, #0xc + strh r1, [r4, #-2] + ldrh lr, [r5, #0x18] mov r2, #0 - bl FUN_02046be8 - ldr r0, _020682E0 @ =0x020B0B2C - mov r2, #6 - ldr r1, [r0, #0x14] - mov r0, #0 - str r2, [r1] - b _020682D8 -_02067DCC: - ldrb r0, [r4, #4] - mov r4, #0 - sub r0, r0, #0x49 - cmp r0, #0xc - addls pc, pc, r0, lsl #2 - b _02067E4C -_02067DE4: @ jump table - b _02067E30 @ case 0 - b _02067E4C @ case 1 - b _02067E28 @ case 2 - b _02067E4C @ case 3 - b _02067E18 @ case 4 - b _02067E4C @ case 5 - b _02067E20 @ case 6 - b _02067E4C @ case 7 - b _02067E38 @ case 8 - b _02067E4C @ case 9 - b _02067E48 @ case 10 - b _02067E4C @ case 11 - b _02067E40 @ case 12 -_02067E18: - mov r4, #3 - b _02067E4C -_02067E20: - mov r4, #4 - b _02067E4C -_02067E28: - mov r4, #5 - b _02067E4C -_02067E30: - mov r4, #6 - b _02067E4C -_02067E38: - mov r4, #7 - b _02067E4C -_02067E40: - mov r4, #8 - b _02067E4C -_02067E48: - mov r4, #9 -_02067E4C: - ldr r0, [r6, #8] - add r0, r6, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl FUN_0205f588 - bl FUN_0205f5a8 + mov r1, #0x14 + lsl ip, lr, #8 + orr ip, ip, lr, asr #8 + strh ip, [r4, #2] + ldrh lr, [r5, #0xa] + lsl ip, lr, #8 + orr ip, ip, lr, asr #8 + strh ip, [r3, #0x22] + strh r2, [r4, #6] + bl ov00_022C8588 + mov r2, r0 + mov r0, r7 + mov r1, r6 + bl ov00_022C8588 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl ov00_022C863C + mov r2, r7 + mov r3, r6 + lsl r1, r0, #8 + orr r0, r1, r0, asr #8 + strh r0, [r4, #6] + ldr r1, [r5, #0x1c] mov r0, r4 - b _020682D8 -_02067E70: - cmp r1, #3 - ldrbeq r0, [r4, #2] - cmpeq r0, #3 - bne _02067FE0 - ldrb r0, [r4, #4] - bl FUN_02063394 - cmp r0, #1 - bne _02067ED0 - bl FUN_020692b4 - ldr r0, _020682E0 @ =0x020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl FUN_02047150 - mov r0, #0x1c - rsb r1, r0, #0x3840 - mov r2, #0 - bl FUN_02046be8 - ldr r0, _020682E0 @ =0x020B0B2C - mov r2, #6 - ldr r1, [r0, #0x14] - mov r0, #0 - str r2, [r1] - b _020682D8 -_02067ED0: - cmp r0, #0 - beq _02067F28 - add r0, sp, #0x10 - bl InitPreprocessorArgs - ldrb r0, [r4, #4] - str r0, [sp, #0x20] - bl FUN_020692b4 - ldr r0, _020682E0 @ =0x020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl FUN_02047150 - ldr r1, _020682EC @ =0x00003825 - add r2, sp, #0x10 - mov r0, #0x1c - bl FUN_02046be8 - ldr r0, _020682E0 @ =0x020B0B2C - mov r2, #6 - ldr r1, [r0, #0x14] - mov r0, #0 - str r2, [r1] - b _020682D8 -_02067F28: - mov r0, r5 - mov r1, #3 - bl FUN_0204d018 - mov r0, #5 - strb r0, [r4] - ldrb r0, [r4, #4] - sub r0, r0, #0x57 - cmp r0, #0xb - addls pc, pc, r0, lsl #2 - b _02067FE0 -_02067F50: @ jump table - b _02067F80 @ case 0 - b _02067F88 @ case 1 - b _02067F90 @ case 2 - b _02067F98 @ case 3 - b _02067FA0 @ case 4 - b _02067FA8 @ case 5 - b _02067FB0 @ case 6 - b _02067FB8 @ case 7 - b _02067FC0 @ case 8 - b _02067FC8 @ case 9 - b _02067FD0 @ case 10 - b _02067FD8 @ case 11 -_02067F80: - mov r0, #0xa - b _020682D8 -_02067F88: - mov r0, #0xb - b _020682D8 -_02067F90: - mov r0, #0xc - b _020682D8 -_02067F98: - mov r0, #0xd - b _020682D8 -_02067FA0: - mov r0, #0xe - b _020682D8 -_02067FA8: - mov r0, #0xf - b _020682D8 -_02067FB0: - mov r0, #0x10 - b _020682D8 -_02067FB8: - mov r0, #0x11 - b _020682D8 -_02067FC0: - mov r0, #0x12 - b _020682D8 -_02067FC8: - mov r0, #0x13 - b _020682D8 -_02067FD0: - mov r0, #0x14 - b _020682D8 -_02067FD8: - mov r0, #0x15 - b _020682D8 -_02067FE0: - ldrb r0, [r4, #1] - cmp r0, #0xb - bne _02068158 - ldrb r1, [r4, #2] - cmp r1, #1 - blo _02068158 - cmp r1, #5 - bhi _02068158 - add r1, r4, #2 - mov r2, #0xff - bl CheckAcceptedMissionByTypeAndDungeon - cmp r0, #0 - beq _02068054 - bl FUN_020692b4 - ldr r0, _020682E0 @ =0x020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl FUN_02047150 - ldr r1, _020682F0 @ =0x00003821 - mov r0, #0x1c - mov r2, #0 - bl FUN_02046be8 - ldr r0, _020682E0 @ =0x020B0B2C - mov r2, #6 - ldr r1, [r0, #0x14] - mov r0, #0 - str r2, [r1] - b _020682D8 -_02068054: - bl FUN_02050c74 - ldrb r1, [sp, #4] - cmp r1, r0 - bhi _02068090 - bl GetScenarioBalance - ldr r1, [sp, #0xc] - cmp r1, r0 - bgt _02068090 - ldr r0, [sp, #8] - cmp r0, #0 - beq _020680D0 - mov r0, #0x16 - bl GetPerformanceFlagWithChecks - cmp r0, #0 - bne _020680D0 -_02068090: - bl FUN_020692b4 - ldr r0, _020682E0 @ =0x020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl FUN_02047150 - ldr r1, _020682F4 @ =0x00003822 - mov r0, #0x1c - mov r2, #0 - bl FUN_02046be8 - ldr r0, _020682E0 @ =0x020B0B2C - mov r2, #6 - ldr r1, [r0, #0x14] - mov r0, #0 - str r2, [r1] - b _020682D8 -_020680D0: - ldrb r0, [r4, #2] - cmp r0, #5 - bne _02068158 - mov r0, #0 - bl FUN_0204ca1c - cmp r0, #0 - bne _0206812C - bl FUN_020692b4 - ldr r0, _020682E0 @ =0x020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl FUN_02047150 - ldr r1, _020682F8 @ =0x00003823 - mov r0, #0x1c - mov r2, #0 - bl FUN_02046be8 - ldr r0, _020682E0 @ =0x020B0B2C - mov r2, #6 - ldr r1, [r0, #0x14] - mov r0, #0 - str r2, [r1] - b _020682D8 -_0206812C: - mov r0, r5 - bl GetDungeonMode - cmp r0, #3 - beq _02068158 - mov r0, r5 - mov r1, #3 - bl FUN_0204d018 - mov r0, #5 - strb r0, [r4] - mov r0, #0x16 - b _020682D8 -_02068158: - ldrb r1, [r4, #1] - cmp r1, #6 - ldrbeq r0, [r4, #2] - cmpeq r0, #4 - bne _02068260 - ldrb r0, [r4, #4] - bl FUN_02063394 - mov r6, r0 - bl FUN_02050c74 - ldrb r1, [sp, #4] - cmp r1, r0 - bhi _020681BC - bl GetScenarioBalance - ldr r1, [sp, #0xc] - cmp r1, r0 - bgt _020681BC - ldr r0, [sp, #8] - cmp r0, #0 - beq _020681B4 - mov r0, #0x16 - bl GetPerformanceFlagWithChecks - cmp r0, #0 - beq _020681BC -_020681B4: - cmp r6, #1 - bne _020681FC -_020681BC: - bl FUN_020692b4 - ldr r0, _020682E0 @ =0x020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl FUN_02047150 - ldr r1, _020682FC @ =0x00003826 - mov r0, #0x1c - mov r2, #0 - bl FUN_02046be8 - ldr r0, _020682E0 @ =0x020B0B2C - mov r2, #6 - ldr r1, [r0, #0x14] - mov r0, #0 - str r2, [r1] - b _020682D8 -_020681FC: - cmp r6, #0 - beq _02068244 - bl FUN_020692b4 - ldr r0, _020682E0 @ =0x020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl FUN_02047150 - ldr r1, _02068300 @ =0x00003827 - mov r0, #0x1c - mov r2, #0 - bl FUN_02046be8 - ldr r0, _020682E0 @ =0x020B0B2C - mov r2, #6 - ldr r1, [r0, #0x14] - mov r0, #0 - str r2, [r1] - b _020682D8 -_02068244: - mov r2, #5 - mov r0, r5 - mov r1, #3 - strb r2, [r4] - bl FUN_0204d018 - mov r0, #0xe - b _020682D8 -_02068260: - cmp r1, #0xc - beq _020682B8 - ldrb r0, [r4, #4] - bl FUN_02062bb8 - cmp r0, #0 - bne _020682B8 - bl FUN_020692b4 - ldr r0, _020682E0 @ =0x020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, #0x2e4 - add r0, r0, #0xc00 - bl FUN_02047150 - ldr r1, _02068304 @ =0x00003828 - mov r0, #0x1c - mov r2, #0 - bl FUN_02046be8 - ldr r0, _020682E0 @ =0x020B0B2C - mov r2, #6 - ldr r1, [r0, #0x14] - mov r0, #0 - str r2, [r1] - b _020682D8 -_020682B8: - mov r0, #5 - strb r0, [r4] - bl FUN_020686f4 - bl FUN_0206937c - ldr r1, _020682E0 @ =0x020B0B2C - mov r0, #0 - ldr r1, [r1, #0x14] - str r0, [r1] -_020682D8: - add sp, sp, #0x60 - pop {r4, r5, r6, pc} + str r1, [sp] + mov r1, #0x11 + str r1, [sp, #4] + mov r1, #8 + bl ov00_022C9140 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} .align 2, 0 -_020682E0: .4byte 0x020B0B2C -_020682E4: .4byte 0x0000381F -_020682E8: .4byte 0x00003820 -_020682EC: .4byte 0x00003825 -_020682F0: .4byte 0x00003821 -_020682F4: .4byte 0x00003822 -_020682F8: .4byte 0x00003823 -_020682FC: .4byte 0x00003826 -_02068300: .4byte 0x00003827 -_02068304: .4byte 0x00003828 - arm_func_end FUN_02067c8c +_022C9520: .4byte 0x02325078 + arm_func_end ov00_022C93E8 - arm_func_start FUN_02068308 -FUN_02068308: @ 0x02068308 - mvn r2, #1 + arm_func_start ov00_022C9524 +ov00_022C9524: @ 0x022C9524 + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #8 + mov r7, r2 + ldrb r2, [r7, #8] + mov sb, r0 + mov r8, r1 + cmp r2, #0 + mov r6, r3 + addeq sp, sp, #8 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + ldr r0, _022C9788 @ =0x022B966C + ldr r1, _022C978C @ =0x023252E0 + ldr r0, [r0, #4] + cmp r0, r1 + ldreq r4, _022C9790 @ =0x0232558A + ldrne r0, [r7, #0x4c] + addne r4, r0, #0x22 + ldr r0, _022C9794 @ =0x02325078 + ands r2, r6, #2 + movne r5, #0x18 + moveq r5, #0x14 + add r1, r5, r8 + ldr sl, [r0, #0x50] + lsl r3, r1, #0x10 + lsr r1, sl, #0x10 + lsl r1, r1, #0x10 + lsr sl, r1, #0x10 + lsl r1, sl, #8 + orr r1, r1, sl, asr #8 + strh r1, [r4, #-0xc] + lsr r1, r3, #0x10 + ldr sl, [r0, #0x50] + lsl lr, r1, #8 + lsl r3, sl, #0x10 + lsr sl, r3, #0x10 + lsl r3, sl, #8 + orr r3, r3, sl, asr #8 + strh r3, [r4, #-0xa] + ldr r3, [r7, #0x1c] + orr r1, lr, r1, asr #8 + lsr r3, r3, #0x10 + lsl r3, r3, #0x10 + lsr sl, r3, #0x10 + lsl r3, sl, #8 + orr r3, r3, sl, asr #8 + strh r3, [r4, #-8] + ldr r3, [r7, #0x1c] + lsr ip, r5, #2 + lsl r3, r3, #0x10 + lsr sl, r3, #0x10 + lsl r3, sl, #8 + orr r3, r3, sl, asr #8 + strh r3, [r4, #-6] + mov r3, #0x600 + strh r3, [r4, #-4] + strh r1, [r4, #-2] + ldrh lr, [r7, #0xa] + lsl r3, ip, #4 + cmp r2, #0 + lsl r1, lr, #8 + orr r1, r1, lr, asr #8 + strh r1, [r4] + ldrh ip, [r7, #0x18] + lsl r1, ip, #8 + orr r1, r1, ip, asr #8 + strh r1, [r4, #2] + ldr r1, [r7, #0x28] + lsr r1, r1, #0x10 + lsl r1, r1, #0x10 + lsr ip, r1, #0x10 + lsl r1, ip, #8 + orr r1, r1, ip, asr #8 + strh r1, [r4, #4] + ldr r1, [r7, #0x28] + lsl r1, r1, #0x10 + lsr ip, r1, #0x10 + lsl r1, ip, #8 + orr r1, r1, ip, asr #8 + strh r1, [r4, #6] + ldr r1, [r7, #0x24] + lsr r1, r1, #0x10 + lsl r1, r1, #0x10 + lsr ip, r1, #0x10 + lsl r1, ip, #8 + orr r1, r1, ip, asr #8 + strh r1, [r4, #8] + ldr r1, [r7, #0x24] + lsl r1, r1, #0x10 + lsr ip, r1, #0x10 + lsl r1, ip, #8 + orr r1, r1, ip, asr #8 + strh r1, [r4, #0xa] + strb r3, [r4, #0xc] + strb r6, [r4, #0xd] + ldr r3, [r7, #0x3c] + ldr r1, [r7, #0x44] + sub r1, r3, r1 + lsl r1, r1, #0x10 + lsr r3, r1, #0x10 + lsl r1, r3, #8 + orr r1, r1, r3, asr #8 + strh r1, [r4, #0xe] + mov r1, #0 + strh r1, [r4, #0x10] + strh r1, [r4, #0x12] + beq _022C9708 + ldrh r1, [r0, #2] + add r1, r1, #0x2040000 + lsr r1, r1, #0x10 + lsl r1, r1, #0x10 + lsr r2, r1, #0x10 + lsl r1, r2, #8 + orr r1, r1, r2, asr #8 + strh r1, [r4, #0x14] + ldrh r0, [r0, #2] + add r0, r0, #0x2040000 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + lsl r0, r1, #8 + orr r0, r0, r1, asr #8 + strh r0, [r4, #0x16] +_022C9708: + sub r0, r4, #0xc + add r1, r5, #0xc + mov r2, #0 + bl ov00_022C8588 + mov r2, r0 + mov r0, sb + mov r1, r8 + bl ov00_022C8588 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl ov00_022C863C + lsl r3, r0, #8 + orr r0, r3, r0, asr #8 + strh r0, [r4, #0x10] + mov r0, r4 + ldr r4, [r7, #0x1c] + mov r3, #6 + str r4, [sp] + str r3, [sp, #4] + mov r1, r5 + mov r2, sb + mov r3, r8 + bl ov00_022C9140 + ldr r0, [r7, #0x28] + tst r6, #3 + add r0, r0, r8 + str r0, [r7, #0x28] + ldrne r0, [r7, #0x28] + addne r0, r0, #1 + strne r0, [r7, #0x28] + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022C9788: .4byte 0x022B966C +_022C978C: .4byte 0x023252E0 +_022C9790: .4byte 0x0232558A +_022C9794: .4byte 0x02325078 + arm_func_end ov00_022C9524 + + arm_func_start ov00_022C9798 +ov00_022C9798: @ 0x022C9798 + push {r4, lr} + mov r4, r0 + mov r3, #0x200 + add r0, r4, #8 + add r1, r4, #0x12 + mov r2, #0xa + strh r3, [r4, #6] + bl FUN_0207C4C8 + ldr r0, _022C9838 @ =0x02325560 + add r1, r4, #8 + mov r2, #6 + bl FUN_0207C4C8 + ldr r3, _022C983C @ =0x02325078 + add r0, r4, #0x12 + ldr r2, [r3, #0x50] + sub r1, r4, #0xe + lsr r2, r2, #0x10 + lsl r2, r2, #0x10 + lsr ip, r2, #0x10 + lsl r2, ip, #8 + orr r2, r2, ip, asr #8 + strh r2, [r4, #0xe] + ldr r3, [r3, #0x50] + mov r2, #6 + lsl r3, r3, #0x10 + lsr ip, r3, #0x10 + lsl r3, ip, #8 + orr r3, r3, ip, asr #8 + strh r3, [r4, #0x10] + bl FUN_0207C4C8 + ldr r0, _022C9838 @ =0x02325560 + sub r1, r4, #8 + mov r2, #6 + bl FUN_0207C4C8 + sub r0, r4, #0xe + mov r1, #0x2a + mov r2, #0 + mov r3, r2 + bl ov00_022C8824 + pop {r4, pc} + .align 2, 0 +_022C9838: .4byte 0x02325560 +_022C983C: .4byte 0x02325078 + arm_func_end ov00_022C9798 + + arm_func_start ov00_022C9840 +ov00_022C9840: @ 0x022C9840 + push {r3, r4, r5, r6, r7, lr} + mov r6, r0 + cmp r1, #0x1c + poplo {r3, r4, r5, r6, r7, pc} + ldr r1, _022C9978 @ =0x02325560 + add r0, r6, #8 + bl ov00_022C87F8 + cmp r0, #0 + ldrne r0, _022C997C @ =0x02325078 + ldrne r0, [r0, #0x50] + cmpne r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldrh r0, [r6] + cmp r0, #0x100 + ldrheq r0, [r6, #2] + cmpeq r0, #8 + ldrheq r1, [r6, #4] + ldreq r0, _022C9980 @ =0x00000406 + cmpeq r1, r0 + popne {r3, r4, r5, r6, r7, pc} + ldrh r1, [r6, #6] + lsl r0, r1, #8 + orr r0, r0, r1, asr #8 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #1 + cmpne r4, #2 + popne {r3, r4, r5, r6, r7, pc} + ldrh r5, [r6, #0x10] + ldrh r3, [r6, #0xe] + ldrh lr, [r6, #0x1a] + lsl r0, r5, #8 + lsl r1, r3, #8 + orr r3, r1, r3, asr #8 + orr r1, r0, r5, asr #8 + lsl r0, r3, #0x10 + lsl r1, r1, #0x10 + ldrh ip, [r6, #0x18] + ldr r2, _022C997C @ =0x02325078 + lsr r3, r0, #0x10 + lsr r1, r1, #0x10 + ldr r0, [r2, #0x50] + orr r1, r1, r3, lsl #16 + lsl r3, ip, #8 + cmp r1, r0 + moveq r5, #1 + lsl r2, lr, #8 + orr ip, r3, ip, asr #8 + orr r3, r2, lr, asr #8 + lsl r2, ip, #0x10 + lsl r3, r3, #0x10 + lsr ip, r2, #0x10 + lsr r2, r3, #0x10 + orr r2, r2, ip, lsl #16 + movne r5, #0 cmp r0, r2 - moveq r0, #8 - bxeq lr - sub r1, r2, #1 - cmp r0, r1 - moveq r0, #8 - bxeq lr - add r1, r2, #1 + moveq r7, #1 + movne r7, #0 + cmp r5, #0 + bne _022C993C + mov r2, r7 + add r0, r6, #8 + bl ov00_022C8E0C +_022C993C: + cmp r4, #1 + bne _022C9958 + cmp r7, #0 + beq _022C9958 + mov r0, r6 + bl ov00_022C9798 + pop {r3, r4, r5, r6, r7, pc} +_022C9958: + cmp r4, #2 + popne {r3, r4, r5, r6, r7, pc} + cmp r7, #0 + cmpne r5, #0 + ldrne r0, _022C997C @ =0x02325078 + movne r1, #1 + strbne r1, [r0, #1] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022C9978: .4byte 0x02325560 +_022C997C: .4byte 0x02325078 +_022C9980: .4byte 0x00000406 + arm_func_end ov00_022C9840 + + arm_func_start ov00_022C9984 +ov00_022C9984: @ 0x022C9984 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + mov r6, r0 + ldrh r4, [r6, #0xe] + ldrh r3, [r6, #0xc] + mov r5, r1 + lsl r0, r4, #8 + lsl r1, r3, #8 + orr r3, r1, r3, asr #8 + orr r1, r0, r4, asr #8 + lsl r0, r3, #0x10 + lsl r1, r1, #0x10 + lsr r3, r0, #0x10 + lsr r0, r1, #0x10 + orr r0, r0, r3, lsl #16 + mov r4, r2 + bl ov00_022C8704 + movs r7, r0 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, pc} + bl ov00_022C8BD0 + cmp r0, #0 + bne _022C99F0 + mov r0, r7 + bl ov00_022C8CA0 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_022C99F0: + mov r2, #0 + strb r2, [r5] + mov r0, r5 + mov r1, r4 + strh r2, [r5, #2] + bl ov00_022C8658 + lsl r1, r0, #8 + orr r0, r1, r0, asr #8 + strh r0, [r5, #2] + ldrh ip, [r6, #0xe] + ldrh r3, [r6, #0xc] + mov r2, #0 + lsl r0, ip, #8 + lsl r1, r3, #8 + orr r3, r1, r3, asr #8 + orr r1, r0, ip, asr #8 + lsl r0, r3, #0x10 + lsl r1, r1, #0x10 + lsr r3, r0, #0x10 + lsr r0, r1, #0x10 + orr r6, r0, r3, lsl #16 + mov r0, r5 + mov r1, r4 + mov r3, r2 + str r6, [sp] + mov r4, #1 + str r4, [sp, #4] + bl ov00_022C9140 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022C9984 + + arm_func_start ov00_022C9A68 +ov00_022C9A68: @ 0x022C9A68 + push {r4, r5, r6, r7, r8, lr} + mov r8, r0 + mov r7, r1 + mov r6, r2 + bl FUN_0207B7E4 + ldr r1, _022C9B64 @ =0x022B966C + mov r5, r0 + ldr r1, [r1, #8] + cmp r1, #0 + beq _022C9B58 +_022C9A90: + ldr r4, [r1, #0xa4] + cmp r4, #0 + ldrne r3, [r4] + cmpne r3, #0 + beq _022C9B4C + ldrb r0, [r4, #8] + cmp r0, #0xb + ldrheq r2, [r7, #4] + lsleq r0, r3, #0x10 + cmpeq r2, r0, lsr #16 + ldrheq r2, [r4, #0xa] + ldrheq r0, [r7, #6] + cmpeq r2, r0 + ldreq r0, [r4, #0x44] + cmpeq r0, #0 + bne _022C9B4C + ldrh lr, [r8, #0xe] + ldrh ip, [r8, #0xc] + ldr r0, [r4, #0x1c] + lsl r2, lr, #8 + lsl r3, ip, #8 + orr ip, r3, ip, asr #8 + orr r3, r2, lr, asr #8 + lsl r2, ip, #0x10 + lsl r3, r3, #0x10 + lsr ip, r2, #0x10 + lsr r2, r3, #0x10 + orr r2, r2, ip, lsl #16 + cmp r0, r2 + bne _022C9B4C + ldr r1, [r4, #0x3c] + sub r0, r6, #8 cmp r0, r1 + strhi r1, [r4, #0x44] + strls r0, [r4, #0x44] + ldr r1, [r4, #0x40] + ldr r2, [r4, #0x44] + add r0, r7, #8 + bl FUN_0207C4C8 + ldr r0, [r4, #4] + cmp r0, #3 + bne _022C9B58 + mov r0, #0 + str r0, [r4, #4] + ldr r0, [r4] + bl FUN_02079940 + b _022C9B58 +_022C9B4C: + ldr r1, [r1, #0x68] + cmp r1, #0 + bne _022C9A90 +_022C9B58: + mov r0, r5 + bl FUN_0207B7F8 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022C9B64: .4byte 0x022B966C + arm_func_end ov00_022C9A68 + + arm_func_start ov00_022C9B68 +ov00_022C9B68: @ 0x022C9B68 + cmp r0, #0 + mvnne r2, #0 + cmpne r0, r2 + cmpne r1, #0 + cmpne r1, r2 + movne r0, #1 moveq r0, #0 bx lr - arm_func_end FUN_02068308 + arm_func_end ov00_022C9B68 - arm_func_start FUN_02068338 -FUN_02068338: @ 0x02068338 - push {r3, lr} - ldr r0, _0206838C @ =0x020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - add r2, r0, #0xee0 - mov r0, r1 -_02068350: - strb r0, [r2, r1] - add r1, r1, #1 - cmp r1, #4 - blt _02068350 - ldr r0, _0206838C @ =0x020B0B2C - mov r1, #0x98 - ldr r0, [r0, #0x14] - add r0, r0, #0x248 - add r0, r0, #0xc00 - bl MemZero - ldr r0, _0206838C @ =0x020B0B2C - ldr r1, [r0, #0x14] - add r0, r1, #0xee0 - str r0, [r1, #0xea8] - pop {r3, pc} + arm_func_start ov00_022C9B88 +ov00_022C9B88: @ 0x022C9B88 + push {r4, r5, r6, r7, r8, lr} + mov r5, r1 + mov r4, r2 + mov r6, r0 + mov r0, r5 + mov r1, r4 + bl ov00_022C8658 + ldr r1, _022C9C54 @ =0x0000FFFF + cmp r0, r1 + popne {r4, r5, r6, r7, r8, pc} + ldrh r0, [r6, #0x12] + ldrh r8, [r6, #0x10] + ldrh r7, [r6, #0xe] + ldrh lr, [r6, #0xc] + lsl r2, r8, #8 + orr r2, r2, r8, asr #8 + lsl ip, lr, #8 + lsl r2, r2, #0x10 + lsl r3, r7, #8 + orr lr, ip, lr, asr #8 + lsl r1, r0, #8 + orr ip, r3, r7, asr #8 + orr r3, r1, r0, asr #8 + lsl r0, lr, #0x10 + lsl r1, ip, #0x10 + lsr ip, r0, #0x10 + lsr r0, r1, #0x10 + lsl r3, r3, #0x10 + lsr r2, r2, #0x10 + lsr r1, r3, #0x10 + orr r0, r0, ip, lsl #16 + orr r1, r1, r2, lsl #16 + bl ov00_022C9B68 + cmp r0, #0 + popeq {r4, r5, r6, r7, r8, pc} + ldrb r0, [r5] + cmp r0, #0 + beq _022C9C2C + cmp r0, #8 + beq _022C9C40 + pop {r4, r5, r6, r7, r8, pc} +_022C9C2C: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov00_022C9A68 + pop {r4, r5, r6, r7, r8, pc} +_022C9C40: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov00_022C9984 + pop {r4, r5, r6, r7, r8, pc} .align 2, 0 -_0206838C: .4byte 0x020B0B2C - arm_func_end FUN_02068338 +_022C9C54: .4byte 0x0000FFFF + arm_func_end ov00_022C9B88 - arm_func_start FUN_02068390 -FUN_02068390: @ 0x02068390 + arm_func_start ov00_022C9C58 +ov00_022C9C58: @ 0x022C9C58 + push {r4, r5, r6, lr} + ldr r2, _022C9D28 @ =0x022B966C + ldr ip, [r2, #8] + cmp ip, #0 + beq _022C9D20 +_022C9C6C: + ldr r3, [ip, #0xa4] + cmp r3, #0 + ldrne r2, [r3] + cmpne r2, #0 + beq _022C9D14 + ldrb r2, [r3, #8] + cmp r2, #1 + bne _022C9D14 + ldrh r5, [r1, #2] + ldrh r4, [r3, #0xa] + lsl r2, r5, #8 + orr r2, r2, r5, asr #8 + lsl r2, r2, #0x10 + cmp r4, r2, lsr #16 + bne _022C9D14 + ldrh r5, [r3, #0x18] + cmp r5, #0 + beq _022C9CCC + ldrh r4, [r1] + lsl r2, r4, #8 + orr r2, r2, r4, asr #8 + lsl r2, r2, #0x10 + cmp r5, r2, lsr #16 + bne _022C9D14 +_022C9CCC: + ldr r2, [r3, #0x1c] + cmp r2, #0 + beq _022C9D0C + ldrh r6, [r0, #0xe] + ldrh r5, [r0, #0xc] + lsl r4, r6, #8 + lsl lr, r5, #8 + orr lr, lr, r5, asr #8 + orr r4, r4, r6, asr #8 + lsl lr, lr, #0x10 + lsl r4, r4, #0x10 + lsr lr, lr, #0x10 + lsr r4, r4, #0x10 + orr r4, r4, lr, lsl #16 + cmp r2, r4 + bne _022C9D14 +_022C9D0C: + mov r0, r3 + pop {r4, r5, r6, pc} +_022C9D14: + ldr ip, [ip, #0x68] + cmp ip, #0 + bne _022C9C6C +_022C9D20: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_022C9D28: .4byte 0x022B966C + arm_func_end ov00_022C9C58 + + arm_func_start ov00_022C9D2C +ov00_022C9D2C: @ 0x022C9D2C + push {r4, r5, r6, lr} + ldrb r4, [r2, #8] + mov r3, #0 + mov r5, r3 + cmp r4, #0xa + cmpne r4, #0xb + movne r5, #1 + mov ip, r3 + mov r6, r3 + cmp r5, #0 + beq _022C9D74 + ldrh lr, [r1, #2] + ldrh r5, [r2, #0xa] + lsl r4, lr, #8 + orr r4, r4, lr, asr #8 + lsl lr, r4, #0x10 + cmp r5, lr, lsr #16 + moveq r6, #1 +_022C9D74: + cmp r6, #0 + beq _022C9D98 + ldrh lr, [r1] + ldrh r4, [r2, #0x18] + lsl r1, lr, #8 + orr r1, r1, lr, asr #8 + lsl r1, r1, #0x10 + cmp r4, r1, lsr #16 + moveq ip, #1 +_022C9D98: + cmp ip, #0 + beq _022C9DD8 + ldrh lr, [r0, #0xc] + ldrh r4, [r0, #0xe] + ldr ip, [r2, #0x1c] + lsl r1, lr, #8 + lsl r0, r4, #8 + orr r2, r1, lr, asr #8 + orr r1, r0, r4, asr #8 + lsl r0, r2, #0x10 + lsl r1, r1, #0x10 + lsr r2, r0, #0x10 + lsr r0, r1, #0x10 + orr r0, r0, r2, lsl #16 + cmp ip, r0 + moveq r3, #1 +_022C9DD8: + mov r0, r3 + pop {r4, r5, r6, pc} + arm_func_end ov00_022C9D2C + + arm_func_start ov00_022C9DE0 +ov00_022C9DE0: @ 0x022C9DE0 + push {r3, r4, r5, r6, r7, lr} + ldr r2, _022C9E40 @ =0x022B966C + mov r7, r0 + ldr r5, [r2, #8] + mov r6, r1 + cmp r5, #0 + beq _022C9E38 +_022C9DFC: + ldr r4, [r5, #0xa4] + cmp r4, #0 + ldrne r0, [r4] + cmpne r0, #0 + beq _022C9E2C + mov r0, r7 + mov r1, r6 + mov r2, r4 + bl ov00_022C9D2C + cmp r0, #0 + movne r0, r4 + popne {r3, r4, r5, r6, r7, pc} +_022C9E2C: + ldr r5, [r5, #0x68] + cmp r5, #0 + bne _022C9DFC +_022C9E38: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022C9E40: .4byte 0x022B966C + arm_func_end ov00_022C9DE0 + + arm_func_start ov00_022C9E44 +ov00_022C9E44: @ 0x022C9E44 + mov r2, #0x218 + strh r2, [r1, #0x2e] + ldrb r2, [r0, #0xc] + add r3, r0, #0x14 + and r2, r2, #0xf0 + asr r0, r2, #1 + add r0, r2, r0, lsr #30 + asr r0, r0, #2 + subs r0, r0, #0x14 + sub ip, r0, #1 + bxeq lr +_022C9E70: + ldrb r0, [r3], #1 + cmp r0, #0 + bxeq lr + cmp r0, #1 + beq _022C9EB8 + cmp r0, #2 + bne _022C9EA8 + ldrb r2, [r3, #1] + ldrb r0, [r3, #2] + add r3, r3, #3 + sub ip, ip, #3 + orr r0, r0, r2, lsl #8 + strh r0, [r1, #0x2e] + b _022C9EB8 +_022C9EA8: + ldrb r0, [r3] + sub r0, r0, #1 + sub ip, ip, r0 + add r3, r3, r0 +_022C9EB8: + cmp ip, #0 + sub ip, ip, #1 + bne _022C9E70 + bx lr + arm_func_end ov00_022C9E44 + + arm_func_start ov00_022C9EC8 +ov00_022C9EC8: @ 0x022C9EC8 + push {r3, lr} + bl ov00_022C8704 + cmp r0, #0 + moveq r0, #1 + popeq {r3, pc} + bl ov00_022C8BD0 + pop {r3, pc} + arm_func_end ov00_022C9EC8 + + arm_func_start ov00_022C9EE4 +ov00_022C9EE4: @ 0x022C9EE4 push {r3, r4, r5, r6, lr} sub sp, sp, #4 + mov r6, r0 + ldr r0, [r6, #0x1c] mov r5, r1 - cmp r0, #0x12 - mov r4, #0 - addls pc, pc, r0, lsl #2 - b _020686E4 -_020683AC: @ jump table - b _020683F8 @ case 0 - b _02068468 @ case 1 - b _020684A0 @ case 2 - b _02068510 @ case 3 - b _020684D8 @ case 4 - b _02068548 @ case 5 - b _02068430 @ case 6 - b _02068580 @ case 7 - b _020686E4 @ case 8 - b _020684A0 @ case 9 - b _020685B8 @ case 10 - b _020685E8 @ case 11 - b _02068618 @ case 12 - b _02068634 @ case 13 - b _02068650 @ case 14 - b _020686E4 @ case 15 - b _020686E4 @ case 16 - b _020686E4 @ case 17 - b _02068680 @ case 18 -_020683F8: - ldr r1, _020686F0 @ =0x020B0A54 - mov ip, r4 - mov r0, #0xb0 -_02068404: - mul r2, ip, r0 - ldr r3, [r1] - ldrb r2, [r3, r2] - cmp r2, #0 - lslne r2, r4, #1 - strhne ip, [r5, r2] - add ip, ip, #1 - addne r4, r4, #1 - cmp ip, #0x20 - blt _02068404 - b _020686E4 -_02068430: - ldr r1, _020686F0 @ =0x020B0A54 - mov r6, r4 - mov r0, #0xb0 -_0206843C: - mul r2, r6, r0 - ldr r3, [r1] - ldrb r2, [r3, r2] - cmp r2, #6 - lsleq r2, r4, #1 - strheq r6, [r5, r2] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #0x20 - blt _0206843C - b _020686E4 -_02068468: - ldr r1, _020686F0 @ =0x020B0A54 - mov r6, r4 - mov r0, #0xb0 -_02068474: - mul r2, r6, r0 - ldr r3, [r1] - ldrb r2, [r3, r2] - cmp r2, #1 - lsleq r2, r4, #1 - strheq r6, [r5, r2] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #0x20 - blt _02068474 - b _020686E4 -_020684A0: - ldr r1, _020686F0 @ =0x020B0A54 - mov r6, r4 - mov r0, #0xb0 -_020684AC: - mul r2, r6, r0 - ldr r3, [r1] - ldrb r2, [r3, r2] - cmp r2, #2 - lsleq r2, r4, #1 - strheq r6, [r5, r2] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #0x20 - blt _020684AC - b _020686E4 -_020684D8: - ldr r1, _020686F0 @ =0x020B0A54 - mov r6, r4 - mov r0, #0xb0 -_020684E4: - mul r2, r6, r0 - ldr r3, [r1] - ldrb r2, [r3, r2] - cmp r2, #4 - lsleq r2, r4, #1 - strheq r6, [r5, r2] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #0x20 - blt _020684E4 - b _020686E4 -_02068510: - ldr r1, _020686F0 @ =0x020B0A54 - mov r6, r4 - mov r0, #0xb0 -_0206851C: - mul r2, r6, r0 - ldr r3, [r1] - ldrb r2, [r3, r2] - cmp r2, #3 - lsleq r2, r4, #1 - strheq r6, [r5, r2] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #0x20 - blt _0206851C - b _020686E4 -_02068548: - ldr r1, _020686F0 @ =0x020B0A54 - mov r6, r4 - mov r0, #0xb0 -_02068554: - mul r2, r6, r0 - ldr r3, [r1] - ldrb r2, [r3, r2] - cmp r2, #5 - lsleq r2, r4, #1 - strheq r6, [r5, r2] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #0x20 - blt _02068554 - b _020686E4 -_02068580: - ldr r1, _020686F0 @ =0x020B0A54 - mov r6, r4 - mov r0, #0xb0 -_0206858C: - mul r2, r6, r0 - ldr r3, [r1] - ldrb r2, [r3, r2] - cmp r2, #7 - lsleq r2, r4, #1 - strheq r6, [r5, r2] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #0x20 - blt _0206858C - b _020686E4 -_020685B8: - mov r6, r4 -_020685BC: - lsl r0, r6, #0x18 - asr r0, r0, #0x18 - bl FUN_0205e984 + mov r4, r2 + bl ov00_022C9EC8 cmp r0, #0 - lsleq r0, r4, #1 - strheq r6, [r5, r0] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #8 - blt _020685BC - b _020686E4 -_020685E8: - mov r6, r4 -_020685EC: - lsl r0, r6, #0x18 - asr r0, r0, #0x18 - bl FUN_0205eb00 - cmp r0, #0 - lsleq r0, r4, #1 - strheq r6, [r5, r0] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #8 - blt _020685EC - b _020686E4 -_02068618: - mov r0, r4 - bl FUN_0205ebf0 - cmp r0, #0 - moveq r0, r4 - strheq r0, [r5] - addeq r4, r4, #1 - b _020686E4 -_02068634: - mov r0, r4 - bl FUN_0205ec50 - cmp r0, #0 - moveq r0, r4 - strheq r0, [r5] - addeq r4, r4, #1 - b _020686E4 -_02068650: - mov r6, r4 -_02068654: - lsl r0, r6, #0x18 - asr r0, r0, #0x18 - bl FUN_0205f0f0 - cmp r0, #0 - lsleq r0, r4, #1 - strheq r6, [r5, r0] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #8 - blt _02068654 - b _020686E4 -_02068680: - sub r0, r4, #1 - strb r0, [sp] - bl FUN_0204e210 - cmp r0, #2 - bne _020686A8 - add r0, sp, #0 - bl FUN_0204f1b4 - cmp r0, #0 - mvneq r0, #0 - strbeq r0, [sp] -_020686A8: - ldrsb ip, [sp] - ldr r1, _020686F0 @ =0x020B0A54 - mov lr, #2 - mov r0, #0xb0 -_020686B8: - cmp ip, lr - mulne r2, lr, r0 - ldrne r3, [r1] - ldrbne r2, [r3, r2] - cmpne r2, #0 - lslne r2, r4, #1 - strhne lr, [r5, r2] - add lr, lr, #1 - addne r4, r4, #1 - cmp lr, #0x20 - blt _020686B8 -_020686E4: - mov r0, r4 + bne _022C9F1C + ldr r0, _022C9F50 @ =0x022B966C + ldr r1, _022C9F54 @ =0x023252E0 + ldr r0, [r0, #4] + cmp r0, r1 + beq _022C9F3C +_022C9F1C: + mov r0, #0 + mov r1, r0 + mov r2, r6 + mov r3, r5 + str r4, [sp] + bl ov00_022C9524 + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} +_022C9F3C: + ldr r0, [r6, #0x1c] + bl ov00_022C8704 + bl ov00_022C8CA0 add sp, sp, #4 pop {r3, r4, r5, r6, pc} .align 2, 0 -_020686F0: .4byte 0x020B0A54 - arm_func_end FUN_02068390 +_022C9F50: .4byte 0x022B966C +_022C9F54: .4byte 0x023252E0 + arm_func_end ov00_022C9EE4 - arm_func_start FUN_020686f4 -FUN_020686f4: @ 0x020686F4 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x68 - ldr r0, _02068E14 @ =0x020B0B2C - mov r4, #0 - ldr r7, [r0, #0x14] - ldr r5, [r7, #4] - cmp r5, #0x15 - addls pc, pc, r5, lsl #2 - b _02068E08 -_02068718: @ jump table - b _02068770 @ case 0 - b _02068770 @ case 1 - b _02068770 @ case 2 - b _02068770 @ case 3 - b _02068770 @ case 4 - b _02068770 @ case 5 - b _02068770 @ case 6 - b _02068770 @ case 7 - b _02068770 @ case 8 - b _02068770 @ case 9 - b _020688D0 @ case 10 - b _02068960 @ case 11 - b _020689F0 @ case 12 - b _02068A6C @ case 13 - b _02068AE8 @ case 14 - b _02068AE8 @ case 15 - b _02068AE8 @ case 16 - b _02068AE8 @ case 17 - b _02068770 @ case 18 - b _02068C48 @ case 19 - b _02068CA4 @ case 20 - b _02068D00 @ case 21 -_02068770: - add r1, r7, #0x188 - mov r0, r5 - add r4, r1, #0xc00 - bl FUN_02067584 - cmp r0, #0 - movne r4, #0 - bne _02068E08 - ldr r0, _02068E14 @ =0x020B0B2C - add r1, r7, #0xc - ldr r0, [r0, #0x14] - ldr r0, [r0, #4] - bl FUN_02068390 - str r0, [r7, #0x6c] - mov r0, #0 - bl FUN_0205b77c - bl FUN_02068e7c - mov r1, #0 - ldr r0, _02068E18 @ =FUN_02069660 - str r1, [r7, #0xe40] - str r0, [r7, #0xe44] - strb r1, [r7, #0x7c] - cmp r5, #9 - bgt _02068800 - cmp r5, #0 - addge pc, pc, r5, lsl #2 - b _020688C0 -_020687D8: @ jump table - b _020688C0 @ case 0 - b _020688C0 @ case 1 - b _02068838 @ case 2 - b _0206880C @ case 3 - b _0206880C @ case 4 - b _0206882C @ case 5 - b _020688C0 @ case 6 - b _020688C0 @ case 7 - b _020688C0 @ case 8 - b _02068838 @ case 9 -_02068800: - cmp r5, #0x12 - beq _02068858 - b _020688C0 -_0206880C: - ldr r0, _02068E14 @ =0x020B0B2C - ldr r1, _02068E1C @ =0x020B0B2E - ldrsb r2, [r0, #2] - ldr r0, _02068E20 @ =0x00003815 - str r2, [r7, #8] - str r1, [r7, #0xef0] - strh r0, [r4, #8] - b _020688C8 -_0206882C: - ldr r0, _02068E24 @ =0x00003817 - strh r0, [r4, #8] - b _020688C8 -_02068838: - ldr r1, _02068E28 @ =0x00003816 - ldr r0, _02068E14 @ =0x020B0B2C - strh r1, [r4, #8] - ldrsb r1, [r0, #5] - ldr r0, _02068E2C @ =0x020B0B31 - str r1, [r7, #8] - str r0, [r7, #0xef0] - b _020688C8 -_02068858: - ldr r1, _02068E30 @ =0x00003818 - ldr r0, _02068E34 @ =FUN_02069598 - strh r1, [r4, #8] - str r0, [r7, #0xe40] - mov r1, #1 - ldr r0, _02068E14 @ =0x020B0B2C - strb r1, [r7, #0x7c] - ldrsb r1, [r0, #1] - ldr r0, _02068E38 @ =0x020B0B2D - str r1, [r7, #8] - str r0, [r7, #0xef0] - b _020688A4 -_02068888: - bl FUN_020693ec - ldrb r0, [r0] - cmp r0, #0 - bne _020688B0 - ldr r0, [r7, #8] - sub r0, r0, #1 - str r0, [r7, #8] -_020688A4: - ldr r0, [r7, #8] - cmp r0, #0 - bgt _02068888 -_020688B0: - ldr r1, [r7, #8] - ldr r0, _02068E14 @ =0x020B0B2C - strb r1, [r0, #1] - b _020688C8 -_020688C0: - ldr r0, _02068E3C @ =0x00003F1E - strh r0, [r4, #8] -_020688C8: - mov r4, #1 - b _02068E08 -_020688D0: - add r0, r7, #0x188 - mov r6, r4 - add r5, r0, #0xc00 -_020688DC: - lsl r0, r6, #0x18 - asr r0, r0, #0x18 - bl FUN_0205e984 - cmp r0, #0 - addeq r0, r7, r4, lsl #1 - strheq r6, [r0, #0xc] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #8 - blt _020688DC - str r4, [r7, #0x6c] - cmp r4, #0 - moveq r4, #0 - beq _02068E08 - mov r0, #0 - bl FUN_0205e970 - ldr r1, _02068E40 @ =0x02069074 - mov r2, #0 - bl FUN_020690d8 - ldr r1, _02068E44 @ =0x00003819 - ldr r0, _02068E14 @ =0x020B0B2C - strh r1, [r5, #8] - ldrsb r2, [r0, #0x12] - ldr r0, _02068E48 @ =0x020B0B3E - mov r1, #0 - str r2, [r7, #8] - str r0, [r7, #0xef0] - ldr r0, _02068E18 @ =FUN_02069660 - str r1, [r7, #0xe40] - str r0, [r7, #0xe44] - strb r1, [r7, #0x7c] - mov r4, #1 - b _02068E08 -_02068960: - add r0, r7, #0x188 - mov r6, r4 - add r5, r0, #0xc00 -_0206896C: - lsl r0, r6, #0x18 - asr r0, r0, #0x18 - bl FUN_0205eb00 - cmp r0, #0 - addeq r0, r7, r4, lsl #1 - strheq r6, [r0, #0xc] - add r6, r6, #1 - addeq r4, r4, #1 - cmp r6, #8 - blt _0206896C - str r4, [r7, #0x6c] - cmp r4, #0 - moveq r4, #0 - beq _02068E08 - mov r0, #0 - bl FUN_0205eae8 - ldr r1, _02068E40 @ =0x02069074 - mov r2, #0 - bl FUN_020690d8 - ldr r1, _02068E4C @ =0x0000381A - ldr r0, _02068E14 @ =0x020B0B2C - strh r1, [r5, #8] - ldrsb r2, [r0, #0x11] - ldr r0, _02068E50 @ =0x020B0B3D - mov r1, #0 - str r2, [r7, #8] - str r0, [r7, #0xef0] - ldr r0, _02068E18 @ =FUN_02069660 - str r1, [r7, #0xe40] - str r0, [r7, #0xe44] - strb r1, [r7, #0x7c] - mov r4, #1 - b _02068E08 -_020689F0: - add r1, r7, #0x188 - mov r0, r4 - add r5, r1, #0xc00 - bl FUN_0205ebf0 - cmp r0, #0 - moveq r0, r4 - strheq r0, [r7, #0xc] - addeq r4, r4, #1 - str r4, [r7, #0x6c] - cmp r4, #0 - moveq r4, #0 - beq _02068E08 - mov r0, #0 - bl FUN_0205ebd8 - ldr r1, _02068E40 @ =0x02069074 - mov r2, #0 - bl FUN_020690d8 - ldr r1, _02068E54 @ =0x0000381B - ldr r0, _02068E14 @ =0x020B0B2C - strh r1, [r5, #8] - ldrsb r2, [r0, #0xa] - ldr r0, _02068E58 @ =0x020B0B36 - mov r1, #0 - str r2, [r7, #8] - str r0, [r7, #0xef0] - ldr r0, _02068E18 @ =FUN_02069660 - str r1, [r7, #0xe40] - str r0, [r7, #0xe44] - strb r1, [r7, #0x7c] - mov r4, #1 - b _02068E08 -_02068A6C: - add r1, r7, #0x188 - mov r0, r4 - add r5, r1, #0xc00 - bl FUN_0205ec50 - cmp r0, #0 - moveq r0, r4 - strheq r0, [r7, #0xc] - addeq r4, r4, #1 - str r4, [r7, #0x6c] - cmp r4, #0 - moveq r4, #0 - beq _02068E08 - mov r0, #0 - bl FUN_0205ec38 - ldr r1, _02068E40 @ =0x02069074 - mov r2, #0 - bl FUN_020690d8 - ldr r1, _02068E5C @ =0x0000381C - ldr r0, _02068E14 @ =0x020B0B2C - strh r1, [r5, #8] - ldrsb r2, [r0, #0xf] - ldr r0, _02068E60 @ =0x020B0B3B - mov r1, #0 - str r2, [r7, #8] - str r0, [r7, #0xef0] - ldr r0, _02068E18 @ =FUN_02069660 - str r1, [r7, #0xe40] - str r0, [r7, #0xe44] - strb r1, [r7, #0x7c] - mov r4, #1 - b _02068E08 -_02068AE8: - add r0, r7, #0x188 - cmp r5, #0x11 - add r8, r0, #0xc00 - bne _02068B74 - bl FUN_0204e210 - cmp r0, #1 - bne _02068B74 - mov r6, r4 -_02068B08: - lsl r0, r6, #0x18 - asr r0, r0, #0x18 - bl GetAcceptedMission - lsl r1, r6, #0x18 - mov r5, r0 - asr r0, r1, #0x18 - bl FUN_0205f0f0 - cmp r0, #0 - bne _02068B64 - bl GetAdventureLogDungeonFloor - ldrb r1, [r5, #4] - ldrb r0, [r0] - cmp r1, r0 - bne _02068B58 - ldrb r0, [r5] - cmp r0, #5 - cmpne r0, #6 - cmpne r0, #7 - cmpne r0, #8 - beq _02068B64 -_02068B58: - add r0, r7, r4, lsl #1 - strh r6, [r0, #0xc] - add r4, r4, #1 -_02068B64: - add r6, r6, #1 - cmp r6, #8 - blt _02068B08 - b _02068BA0 -_02068B74: - mov r5, #0 -_02068B78: - lsl r0, r5, #0x18 - asr r0, r0, #0x18 - bl FUN_0205f0f0 - cmp r0, #0 - addeq r0, r7, r4, lsl #1 - strheq r5, [r0, #0xc] - add r5, r5, #1 - addeq r4, r4, #1 - cmp r5, #8 - blt _02068B78 -_02068BA0: - str r4, [r7, #0x6c] - cmp r4, #0 - moveq r4, #0 - beq _02068E08 - mov r0, #0 - bl GetAcceptedMission - mov r1, #0 - mov r2, #1 - bl FUN_020690d8 - ldr r0, _02068E14 @ =0x020B0B2C - ldr r1, [r0, #0x14] - ldr r1, [r1, #4] - cmp r1, #0xe - bne _02068BF4 - ldr r2, _02068E64 @ =0x0000381D - ldr r1, _02068E68 @ =0x020B0B2C - strh r2, [r8, #8] - ldrsb r0, [r0] - str r0, [r7, #8] - str r1, [r7, #0xef0] - b _02068C18 -_02068BF4: - sub r1, r1, #0xf - cmp r1, #2 - bhi _02068C18 - ldr r2, _02068E6C @ =0x0000381E - ldr r1, _02068E70 @ =0x020B0B3F - strh r2, [r8, #8] - ldrsb r0, [r0, #0x13] - str r0, [r7, #8] - str r1, [r7, #0xef0] -_02068C18: - ldr r1, [r7, #0x6c] - ldr r0, [r7, #8] - mov r4, #1 - cmp r0, r1 - subge r0, r1, #1 - strge r0, [r7, #8] - mov r1, #0 - ldr r0, _02068E18 @ =FUN_02069660 - str r1, [r7, #0xe40] - str r0, [r7, #0xe44] - strb r1, [r7, #0x7c] - b _02068E08 -_02068C48: - add r0, r7, #0x188 - add r5, r0, #0xc00 - ldr r0, [r7, #0x74] - mov r2, r4 - b _02068C70 -_02068C5C: - add r1, r7, r4, lsl #1 - strh r4, [r1, #0xc] - add r1, r7, r4 - strb r2, [r1, #0x4c] - add r4, r4, #1 -_02068C70: - ldr r1, [r7, #0x6c] - cmp r4, r1 - blt _02068C5C - bl FUN_02068e7c - ldr r0, _02068E28 @ =0x00003816 - ldr r1, _02068E34 @ =FUN_02069598 - strh r0, [r5, #8] - ldr r0, _02068E18 @ =FUN_02069660 - str r1, [r7, #0xe40] - str r0, [r7, #0xe44] - mov r4, #1 - strb r4, [r7, #0x7c] - b _02068E08 -_02068CA4: - add r0, r7, #0x188 - add r5, r0, #0xc00 - b _02068CBC -_02068CB0: - add r0, r7, r4, lsl #1 - strh r4, [r0, #0xc] - add r4, r4, #1 -_02068CBC: - ldr r0, [r7, #0x6c] - cmp r4, r0 - blt _02068CB0 - bl FUN_0206901c - ldr r0, [r7, #0x74] - ldr r1, _02068E74 @ =FUN_020690a4 - mov r2, #0 - bl FUN_020690d8 - ldr r0, _02068E6C @ =0x0000381E - mov r1, #0 - strh r0, [r5, #8] - ldr r0, _02068E18 @ =FUN_02069660 - str r1, [r7, #0xe40] - str r0, [r7, #0xe44] - strb r1, [r7, #0x7c] - mov r4, #1 - b _02068E08 -_02068D00: - add r0, r7, #0x188 - add r6, r0, #0xc00 - b _02068D18 -_02068D0C: - add r0, r7, r4, lsl #1 - strh r4, [r0, #0xc] - add r4, r4, #1 -_02068D18: - ldr r0, [r7, #0x6c] - cmp r4, r0 - blt _02068D0C - mov r8, #0 - str r8, [r7, #0x80] - add r5, sp, #0 - add r4, sp, #0x47 - add fp, sp, #0x48 - mov sb, #0x68 - b _02068DB0 -_02068D40: - add r0, r7, r8, lsl #1 - ldrsh r0, [r0, #0xc] - ldr r2, [r7, #0x74] - mov r1, r5 - add sl, r2, r0, lsl #5 - mov r0, sl - bl FUN_02060150 - mov r0, sl - mov r1, r4 - mov r2, fp - mov r3, #0 - bl FUN_02069958 - str sl, [sp, #0x5c] - ldr r1, [r7, #0x80] - add sl, sp, #0 - mla r0, r1, sb, r7 - add lr, r0, #0x84 - mov ip, #6 -_02068D88: - ldm sl!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _02068D88 - ldm sl, {r0, r1} - stm lr, {r0, r1} - ldr r0, [r7, #0x80] - add r8, r8, #1 - add r0, r0, #1 - str r0, [r7, #0x80] -_02068DB0: - ldr r0, [r7, #0x6c] - cmp r8, r0 - blt _02068D40 - bl FUN_0206901c - mov r1, #0 - ldr r0, _02068E6C @ =0x0000381E - str r1, [r6] - strh r0, [r6, #8] - mov r0, #0x10 - str r0, [r6, #0xc] - mov r0, #0x1a - str r0, [r6, #4] - ldr r0, _02068E18 @ =FUN_02069660 - str r1, [r7, #0xe40] - str r0, [r7, #0xe44] - ldr r0, _02068E14 @ =0x020B0B2C - strb r1, [r7, #0x7c] - ldrsb r1, [r0, #3] - ldr r0, _02068E78 @ =0x020B0B2F - mov r4, #1 - str r1, [r7, #8] - str r0, [r7, #0xef0] -_02068E08: - mov r0, r4 - add sp, sp, #0x68 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_start ov00_022C9F58 +ov00_022C9F58: @ 0x022C9F58 + ldr ip, _022C9F68 @ =ov00_022C9EE4 + mov r2, r1 + mov r1, #0x10 + bx ip .align 2, 0 -_02068E14: .4byte 0x020B0B2C -_02068E18: .4byte FUN_02069660 -_02068E1C: .4byte 0x020B0B2E -_02068E20: .4byte 0x00003815 -_02068E24: .4byte 0x00003817 -_02068E28: .4byte 0x00003816 -_02068E2C: .4byte 0x020B0B31 -_02068E30: .4byte 0x00003818 -_02068E34: .4byte FUN_02069598 -_02068E38: .4byte 0x020B0B2D -_02068E3C: .4byte 0x00003F1E -_02068E40: .4byte 0x02069074 -_02068E44: .4byte 0x00003819 -_02068E48: .4byte 0x020B0B3E -_02068E4C: .4byte 0x0000381A -_02068E50: .4byte 0x020B0B3D -_02068E54: .4byte 0x0000381B -_02068E58: .4byte 0x020B0B36 -_02068E5C: .4byte 0x0000381C -_02068E60: .4byte 0x020B0B3B -_02068E64: .4byte 0x0000381D -_02068E68: .4byte 0x020B0B2C -_02068E6C: .4byte 0x0000381E -_02068E70: .4byte 0x020B0B3F -_02068E74: .4byte FUN_020690a4 -_02068E78: .4byte 0x020B0B2F - arm_func_end FUN_020686f4 +_022C9F68: .4byte ov00_022C9EE4 + arm_func_end ov00_022C9F58 - arm_func_start FUN_02068e7c -FUN_02068e7c: @ 0x02068E7C + arm_func_start ov00_022C9F6C +ov00_022C9F6C: @ 0x022C9F6C + ldr ip, _022C9F7C @ =ov00_022C9EE4 + mov r2, r1 + mov r1, #0x11 + bx ip + .align 2, 0 +_022C9F7C: .4byte ov00_022C9EE4 + arm_func_end ov00_022C9F6C + + arm_func_start ov00_022C9F80 +ov00_022C9F80: @ 0x022C9F80 push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x68 - ldr r1, _02069018 @ =0x020B0B2C + ldr r4, _022CA0B0 @ =0x023251BC mov r8, r0 - ldr r7, [r1, #0x14] - add r4, r7, #0x188 - bl FUN_0206901c - mov r5, #0 - str r5, [r7, #0xd88] - mov r0, #0x10 - str r0, [r4, #0xc0c] - str r5, [r7, #0x80] - b _02068FF4 -_02068EB0: - add r0, r7, r5, lsl #1 - ldrsh r0, [r0, #0xc] - mov r2, #0 - mov r1, #7 - lsl r0, r0, #0x18 - asr r3, r0, #0x18 - mov r0, #0xb0 - mla r6, r3, r0, r8 - add r0, r6, #4 - strb r2, [sp, #0x46] - strb r2, [sp, #0x48] - str r0, [sp, #8] - strh r2, [sp, #0x10] - strh r2, [sp, #0x12] - strh r2, [sp, #0x14] - strh r2, [sp, #0x16] - strb r1, [sp, #0x1a] - str r2, [sp, #0x5c] - str r6, [sp, #0x64] - bl GetLanguageType - ldrsb r1, [r6, #0x1c] - cmp r1, r0 - movne r0, #0 - strne r0, [sp, #0xc] - strne r0, [sp, #0x54] - strne r0, [sp, #0x58] - bne _02068F34 - add r2, r6, #0x1d - add r1, r6, #0x32 - add r0, r6, #0x56 - str r2, [sp, #0xc] - str r1, [sp, #0x54] - str r0, [sp, #0x58] -_02068F34: - ldr r0, [sp, #0x54] - mov r1, #1 - cmp r0, #0 - ldrhne r0, [r0] - cmpne r0, #0 - movne r1, #0 - cmp r1, #0 - movne r1, #0 - moveq r1, #6 - ldrb r0, [r6] - strb r1, [sp, #0x44] - cmp r0, #6 - addls pc, pc, r0, lsl #2 - b _02068FAC -_02068F6C: @ jump table - b _02068FAC @ case 0 - b _02068FA0 @ case 1 - b _02068FA0 @ case 2 - b _02068FAC @ case 3 - b _02068F88 @ case 4 - b _02068F94 @ case 5 - b _02068F94 @ case 6 -_02068F88: - mov r0, #3 - strb r0, [sp, #0x47] - b _02068FB4 -_02068F94: - mov r0, #4 - strb r0, [sp, #0x47] - b _02068FB4 -_02068FA0: - mov r0, #1 - strb r0, [sp, #0x47] - b _02068FB4 -_02068FAC: - mov r0, #2 - strb r0, [sp, #0x47] -_02068FB4: - ldr r1, [r7, #0x80] - mov r0, #0x68 - mla r0, r1, r0, r7 - add lr, sp, #0 - add ip, r0, #0x84 - mov r6, #6 -_02068FCC: - ldm lr!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - subs r6, r6, #1 - bne _02068FCC - ldm lr, {r0, r1} - stm ip, {r0, r1} - ldr r0, [r7, #0x80] - add r5, r5, #1 - add r0, r0, #1 - str r0, [r7, #0x80] -_02068FF4: - ldr r0, [r7, #0x6c] - cmp r5, r0 - blt _02068EB0 - mov r0, #0x10 - str r0, [r4, #0xc0c] - mov r0, #0x1a - str r0, [r4, #0xc04] - add sp, sp, #0x68 + mov r7, r1 + mov r6, r2 + mov r0, r4 + mov r1, #0 + mov r2, #0x64 + mov r5, r3 + bl FUN_0207C40C + ldrh r3, [r7, #2] + ldr r0, _022CA0B4 @ =0x02325178 + ldr r2, _022CA0B8 @ =0x02325078 + lsl r1, r3, #8 + orr r1, r1, r3, asr #8 + strh r1, [r0, #0x4e] + ldrh r3, [r7] + lsl r1, r3, #8 + orr r1, r1, r3, asr #8 + strh r1, [r0, #0x5c] + ldrh ip, [r8, #0xe] + ldrh r3, [r8, #0xc] + lsl r0, ip, #8 + lsl r1, r3, #8 + orr r3, r1, r3, asr #8 + orr r1, r0, ip, asr #8 + lsl r0, r3, #0x10 + lsl r1, r1, #0x10 + lsr r3, r0, #0x10 + lsr r0, r1, #0x10 + orr r0, r0, r3, lsl #16 + str r0, [r2, #0x160] + ldrb r0, [r7, #0xd] + tst r0, #0x10 + beq _022CA050 + ldrh r6, [r7, #0xa] + ldrh r3, [r7, #8] + mov r0, r4 + lsl r1, r6, #8 + lsl r2, r3, #8 + orr r3, r2, r3, asr #8 + orr r2, r1, r6, asr #8 + lsl r1, r3, #0x10 + lsl r2, r2, #0x10 + lsr r3, r1, #0x10 + lsr r1, r2, #0x10 + orr r3, r1, r3, lsl #16 + mov r2, r5 + mov r1, #4 + str r3, [r4, #0x28] + bl ov00_022C9EE4 + pop {r4, r5, r6, r7, r8, pc} +_022CA050: + mov r0, #0 + str r0, [r4, #0x28] + ldrh r3, [r7, #6] + ldrh r2, [r7, #4] + lsl r0, r3, #8 + lsl r1, r2, #8 + orr r2, r1, r2, asr #8 + orr r1, r0, r3, asr #8 + lsl r0, r2, #0x10 + lsl r1, r1, #0x10 + lsr r2, r0, #0x10 + lsr r0, r1, #0x10 + orr r0, r0, r2, lsl #16 + add r1, r6, r0 + str r1, [r4, #0x24] + ldrb r0, [r7, #0xd] + mov r2, r5 + tst r0, #3 + addne r0, r1, #1 + strne r0, [r4, #0x24] + mov r0, r4 + mov r1, #0x14 + bl ov00_022C9EE4 pop {r4, r5, r6, r7, r8, pc} .align 2, 0 -_02069018: .4byte 0x020B0B2C - arm_func_end FUN_02068e7c +_022CA0B0: .4byte 0x023251BC +_022CA0B4: .4byte 0x02325178 +_022CA0B8: .4byte 0x02325078 + arm_func_end ov00_022C9F80 - arm_func_start FUN_0206901c -FUN_0206901c: @ 0x0206901C - push {r3, lr} - ldr r0, _02069070 @ =0x020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - add r2, r0, #0xe20 - mov r0, r1 -_02069034: - strb r0, [r2, r1] - add r1, r1, #1 - cmp r1, #0x20 - blt _02069034 - ldr r0, _02069070 @ =0x020B0B2C - mov r1, #0x98 - ldr r0, [r0, #0x14] - add r0, r0, #0x188 - add r0, r0, #0xc00 - bl MemZero - ldr r0, _02069070 @ =0x020B0B2C - ldr r1, [r0, #0x14] - add r0, r1, #0xe20 - str r0, [r1, #0xde8] - pop {r3, pc} - .align 2, 0 -_02069070: .4byte 0x020B0B2C - arm_func_end FUN_0206901c -_02069074: - .byte 0x10, 0x40, 0x2D, 0xE9, 0x01, 0x40, 0xA0, 0xE1, 0x05, 0xD7, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xC4, 0x15, 0x3C, 0xD7, 0xFF, 0xEB - .byte 0x08, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xD4, 0xA5, 0x01, 0x00, 0x80, 0xA3, 0x00, 0x00, 0xC4, 0xA5 - .byte 0x10, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_020690a4 -FUN_020690a4: @ 0x020690A4 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - bl FUN_0205ec98 - cmp r0, #0 - bne _020690CC - mov r0, r5 - bl FUN_0205fa38 - cmp r0, #0 - popeq {r3, r4, r5, pc} -_020690CC: - mov r0, #3 - strb r0, [r4] - pop {r3, r4, r5, pc} - arm_func_end FUN_020690a4 - - arm_func_start FUN_020690d8 -FUN_020690d8: @ 0x020690D8 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x68 - ldr r3, _020691B4 @ =0x020B0B2C - mov sb, r0 - ldr r6, [r3, #0x14] - mov r8, r1 - mov r7, r2 - bl FUN_0206901c - mov r5, #0 - str r5, [r6, #0x80] - add r4, r6, #0xe20 - mov fp, #0x68 - b _02069188 -_0206910C: - add r0, r6, r5, lsl #1 - ldrsh r0, [r0, #0xc] - add r1, sp, #0 - add sl, sb, r0, lsl #5 - mov r0, sl - bl FUN_02060150 - mov r0, sl - add r1, sp, #0x47 - add r2, sp, #0x48 - mov r3, r7 - bl FUN_02069958 - cmp r8, #0 - beq _0206914C - mov r0, sl - add r1, r4, r5 - blx r8 -_0206914C: - ldr r1, [r6, #0x80] - add sl, sp, #0 - mla r0, r1, fp, r6 - add lr, r0, #0x84 - mov ip, #6 -_02069160: - ldm sl!, {r0, r1, r2, r3} - stm lr!, {r0, r1, r2, r3} - subs ip, ip, #1 - bne _02069160 - ldm sl, {r0, r1} - stm lr, {r0, r1} - ldr r0, [r6, #0x80] - add r5, r5, #1 - add r0, r0, #1 - str r0, [r6, #0x80] -_02069188: - ldr r0, [r6, #0x6c] - cmp r5, r0 - blt _0206910C - mov r0, #0 - str r0, [r6, #0xd88] - mov r0, #0x10 - str r0, [r6, #0xd94] - mov r0, #0x1a - str r0, [r6, #0xd8c] - add sp, sp, #0x68 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_020691B4: .4byte 0x020B0B2C - arm_func_end FUN_020690d8 - - arm_func_start FUN_020691b8 -FUN_020691b8: @ 0x020691B8 - stmdb sp!, {lr} - sub sp, sp, #0xc - ldr r2, _020692A8 @ =0x020B0B2C - mvn r1, #1 - ldr ip, [r2, #0x14] - ldrsb r0, [ip, #0x7d] - cmp r0, r1 - bne _0206926C - ldr r0, [ip, #8] - mov r3, #4 - str r0, [ip, #0xd88] - ldr lr, [r2, #0x14] - ldr r0, _020692AC @ =0x020A9288 - ldr r1, [lr, #0xe40] - add r2, lr, #0x188 - str r1, [sp] - ldr ip, [lr, #0x80] - ldr r1, _020692B0 @ =0x00441E33 - str ip, [sp, #4] - str r3, [sp, #8] - ldr r3, [lr, #0xe44] - add r2, r2, #0xc00 - bl FUN_0202c3a8 - ldr r3, _020692A8 @ =0x020B0B2C - mov r1, #0 - ldr ip, [r3, #0x14] - mov r2, #0xc - strb r0, [ip, #0x7d] - ldr r0, [r3, #0x14] - ldrsb r0, [r0, #0x7d] - bl FUN_0202c6f0 - ldr r0, _020692A8 @ =0x020B0B2C - mov r1, #1 - ldr r0, [r0, #0x14] - ldrsb r0, [r0, #0x7d] - bl FUN_0202d0d8 - ldr r0, _020692A8 @ =0x020B0B2C - ldr r1, [r0, #0x14] - ldrb r0, [r1, #0x7c] - cmp r0, #0 - bne _02069290 - ldrsb r0, [r1, #0x7d] - mov r1, #1 - bl FUN_0202d07c - b _02069290 -_0206926C: - ldrb r1, [ip, #0xd84] - cmp r1, #0 - beq _0206928C - ldr r1, [ip, #0x80] - mov r2, #4 - mov r3, #0 - bl FUN_0202c654 - b _02069290 -_0206928C: - bl FUN_0202c620 -_02069290: - ldr r0, _020692A8 @ =0x020B0B2C - mov r1, #0 - ldr r0, [r0, #0x14] - strb r1, [r0, #0xd84] - add sp, sp, #0xc - ldm sp!, {pc} - .align 2, 0 -_020692A8: .4byte 0x020B0B2C -_020692AC: .4byte 0x020A9288 -_020692B0: .4byte 0x00441E33 - arm_func_end FUN_020691b8 - - arm_func_start FUN_020692b4 -FUN_020692b4: @ 0x020692B4 - push {r3, lr} - ldr r0, _020692F8 @ =0x020B0B2C - mvn r1, #1 - ldr r0, [r0, #0x14] - ldrsb r0, [r0, #0x7d] - cmp r0, r1 - popeq {r3, pc} - bl FUN_0202836c - ldr r0, _020692F8 @ =0x020B0B2C - ldr r0, [r0, #0x14] - ldrsb r0, [r0, #0x7d] - bl FUN_0202c70c - ldr r0, _020692F8 @ =0x020B0B2C - mvn r1, #1 - ldr r0, [r0, #0x14] - strb r1, [r0, #0x7d] - pop {r3, pc} - .align 2, 0 -_020692F8: .4byte 0x020B0B2C - arm_func_end FUN_020692b4 - - arm_func_start FUN_020692fc -FUN_020692fc: @ 0x020692FC - push {r3, lr} - ldr r0, _02069378 @ =0x020B0B2C - ldr r0, [r0, #0x14] - ldr r1, [r0, #4] - sub r0, r1, #0xe - cmp r0, #3 - bhi _02069328 - bl FUN_02069444 - mov r1, #1 - bl FUN_02069800 - pop {r3, pc} -_02069328: - cmp r1, #0xa - cmpne r1, #0xb - cmpne r1, #0xc - cmpne r1, #0xd - beq _02069348 - sub r0, r1, #0x14 - cmp r0, #1 - bhi _02069358 -_02069348: - bl FUN_02069444 - mov r1, #0 - bl FUN_02069800 - pop {r3, pc} -_02069358: - cmp r1, #0x13 - bne _0206936C - bl FUN_0206941c - bl FUN_02069790 - pop {r3, pc} -_0206936C: - bl FUN_020693ec - bl FUN_02069790 - pop {r3, pc} - .align 2, 0 -_02069378: .4byte 0x020B0B2C - arm_func_end FUN_020692fc - - arm_func_start FUN_0206937c -FUN_0206937c: @ 0x0206937C - push {r3, lr} - ldr r0, _020693E8 @ =0x020B0B2C - ldr r0, [r0, #0x14] - ldr r1, [r0, #4] - cmp r1, #0xa - cmpne r1, #0xb - cmpne r1, #0xc - cmpne r1, #0xd - cmpne r1, #0xe - cmpne r1, #0xf - cmpne r1, #0x10 - cmpne r1, #0x11 - beq _020693BC - sub r0, r1, #0x14 - cmp r0, #1 - bhi _020693C8 -_020693BC: - bl FUN_02069444 - bl FUN_02069894 - pop {r3, pc} -_020693C8: - cmp r1, #0x13 - bne _020693DC - bl FUN_0206941c - bl FUN_02069870 - pop {r3, pc} -_020693DC: - bl FUN_020693ec - bl FUN_02069870 - pop {r3, pc} - .align 2, 0 -_020693E8: .4byte 0x020B0B2C - arm_func_end FUN_0206937c - - arm_func_start FUN_020693ec -FUN_020693ec: @ 0x020693EC - ldr r1, _02069414 @ =0x020B0B2C - ldr r0, _02069418 @ =0x020B0A54 - ldr r3, [r1, #0x14] - ldr r2, [r0] - ldr r1, [r3, #8] - mov r0, #0xb0 - add r1, r3, r1, lsl #1 - ldrsh r1, [r1, #0xc] - smlabb r0, r1, r0, r2 - bx lr - .align 2, 0 -_02069414: .4byte 0x020B0B2C -_02069418: .4byte 0x020B0A54 - arm_func_end FUN_020693ec - - arm_func_start FUN_0206941c -FUN_0206941c: @ 0x0206941C - ldr r1, _02069440 @ =0x020B0B2C - mov r0, #0xb0 - ldr r3, [r1, #0x14] - ldr r1, [r3, #8] - ldr r2, [r3, #0x74] - add r1, r3, r1, lsl #1 - ldrsh r1, [r1, #0xc] - smlabb r0, r1, r0, r2 - bx lr - .align 2, 0 -_02069440: .4byte 0x020B0B2C - arm_func_end FUN_0206941c - - arm_func_start FUN_02069444 -FUN_02069444: @ 0x02069444 - push {r3, lr} - ldr r0, _02069558 @ =0x020B0B2C - ldr r2, [r0, #0x14] - ldr r0, [r2, #4] - sub r0, r0, #0xa - cmp r0, #0xb - addls pc, pc, r0, lsl #2 - b _02069550 -_02069464: @ jump table - b _02069494 @ case 0 - b _020694B0 @ case 1 - b _020694CC @ case 2 - b _020694E8 @ case 3 - b _02069504 @ case 4 - b _02069504 @ case 5 - b _02069504 @ case 6 - b _02069504 @ case 7 - b _02069550 @ case 8 - b _02069550 @ case 9 - b _02069520 @ case 10 - b _02069538 @ case 11 -_02069494: - ldr r0, [r2, #8] - add r0, r2, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl FUN_0205e970 - pop {r3, pc} -_020694B0: - ldr r0, [r2, #8] - add r0, r2, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl FUN_0205eae8 - pop {r3, pc} -_020694CC: - ldr r0, [r2, #8] - add r0, r2, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl FUN_0205ebd8 - pop {r3, pc} -_020694E8: - ldr r0, [r2, #8] - add r0, r2, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl FUN_0205ec38 - pop {r3, pc} -_02069504: - ldr r0, [r2, #8] - add r0, r2, r0, lsl #1 - ldrsh r0, [r0, #0xc] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - bl GetAcceptedMission - pop {r3, pc} -_02069520: - ldr r0, [r2, #8] - ldr r1, [r2, #0x74] - add r0, r2, r0, lsl #1 - ldrsh r0, [r0, #0xc] - add r0, r1, r0, lsl #5 - pop {r3, pc} -_02069538: - ldr r0, [r2, #8] - ldr r1, [r2, #0x74] - add r0, r2, r0, lsl #1 - ldrsh r0, [r0, #0xc] - add r0, r1, r0, lsl #5 - pop {r3, pc} -_02069550: - mov r0, #0 - pop {r3, pc} - .align 2, 0 -_02069558: .4byte 0x020B0B2C - arm_func_end FUN_02069444 - - arm_func_start FUN_0206955c -FUN_0206955c: @ 0x0206955C - push {r3, lr} - ldr r0, _02069594 @ =0x020B0B2C - mvn r1, #1 - ldr r0, [r0, #0x14] - add r0, r0, #0xd00 - ldrsb r0, [r0, #0x85] - cmp r0, r1 - popeq {r3, pc} - bl FreePortraitBox - ldr r0, _02069594 @ =0x020B0B2C - mvn r1, #1 - ldr r0, [r0, #0x14] - strb r1, [r0, #0xd85] - pop {r3, pc} - .align 2, 0 -_02069594: .4byte 0x020B0B2C - arm_func_end FUN_0206955c - - arm_func_start FUN_02069598 -FUN_02069598: @ 0x02069598 + arm_func_start ov00_022CA0BC +ov00_022CA0BC: @ 0x022CA0BC push {r4, r5, r6, lr} - ldr r1, _0206965C @ =0x020B0B2C - tst r0, #0x400 - ldr r5, [r1, #0x14] - beq _02069654 - ldrsb r0, [r5, #0x7d] - ldr r6, [r5, #8] - bl FUN_0202c748 - ldr r1, [r5, #8] - cmp r1, r0 - bne _0206964C - add r4, r5, #0x4c - ldrb r0, [r4, r6] - cmp r0, #0 - beq _02069600 - mov r0, #6 - bl FUN_02017ccc - mov r0, #0 - strb r0, [r4, r6] - bl FUN_020674e8 - cmp r0, #0 - bne _02069644 - ldrsb r0, [r5, #0x7d] - mov r1, #0 - bl FUN_0202d07c - b _02069644 -_02069600: - ldr r0, [r5, #0x78] - cmp r0, #0 - blt _0206961C - bl FUN_020674e8 - ldr r1, [r5, #0x78] - cmp r0, r1 - bhs _0206963C -_0206961C: - mov r0, #6 - bl FUN_02017ccc - ldrsb r0, [r5, #0x7d] - mov r1, #1 - bl FUN_0202d07c - mov r0, #1 - strb r0, [r4, r6] - b _02069644 -_0206963C: - mov r0, #2 - bl FUN_02017ccc -_02069644: - mov r0, #1 - pop {r4, r5, r6, pc} -_0206964C: - mov r0, #3 - bl FUN_02017ccc -_02069654: - mov r0, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0206965C: .4byte 0x020B0B2C - arm_func_end FUN_02069598 - - arm_func_start FUN_02069660 -FUN_02069660: @ 0x02069660 - push {r3, r4, r5, lr} - ldr r3, _020696E4 @ =0x020B0B2C - mov r5, r0 - ldr r0, [r3, #0x14] - add r0, r0, r1 - ldrb r0, [r0, #0x4c] - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - str r0, [r2] - mov r0, #0x68 - mul r4, r1, r0 - ldr r0, _020696E4 @ =0x020B0B2C - ldr r0, [r0, #0x14] - add r0, r0, r4 - ldr r0, [r0, #0xe0] - cmp r0, #0 - beq _020696C4 - bl FUN_0205e238 - cmp r0, #0 - beq _020696C4 - mov r0, r5 - bl FUN_02060e24 - mov r0, r5 - pop {r3, r4, r5, pc} -_020696C4: - ldr r1, _020696E4 @ =0x020B0B2C - mov r0, r5 - ldr r1, [r1, #0x14] - add r1, r1, #0x84 - add r1, r1, r4 - bl FUN_02060afc - mov r0, r5 - pop {r3, r4, r5, pc} - .align 2, 0 -_020696E4: .4byte 0x020B0B2C - arm_func_end FUN_02069660 - - arm_func_start FUN_020696e8 -FUN_020696e8: @ 0x020696E8 - push {r3, r4, lr} - sub sp, sp, #0x154 - mov r4, r0 - add r0, sp, #0x104 - bl InitPreprocessorArgs - bl FUN_0205ed84 - str r0, [sp, #0x128] - mov r0, #8 - str r0, [sp, #0x12c] - add r3, sp, #0x104 - str r3, [sp] - ldr r2, _0206974C @ =0x00003813 - add r0, sp, #4 - mov r1, #0x100 - mov r3, #0 - bl PreprocessStringFromMessageId - mov r0, r4 - mov r1, #0 + mov r4, r2 mov r2, #3 - add r3, sp, #4 - bl FUN_02026214 - mov r0, r4 - bl FUN_02027af0 - add sp, sp, #0x154 - pop {r3, r4, pc} - .align 2, 0 -_0206974C: .4byte 0x00003813 - arm_func_end FUN_020696e8 - - arm_func_start FUN_02069750 -FUN_02069750: @ 0x02069750 - push {r4, lr} - sub sp, sp, #0x100 - ldr r1, _0206978C @ =0x00003814 - mov r4, r0 - add r0, sp, #0 - bl GetStringFromFileVeneer - add r3, sp, #0 - mov r0, r4 - mov r1, #0 - mov r2, #3 - bl FUN_02026214 - mov r0, r4 - bl FUN_02027af0 - add sp, sp, #0x100 - pop {r4, pc} - .align 2, 0 -_0206978C: .4byte 0x00003814 - arm_func_end FUN_02069750 - - arm_func_start FUN_02069790 -FUN_02069790: @ 0x02069790 - push {r4, lr} - mov r4, r0 - mov r0, #0x14 - mov r1, #8 - bl MemAlloc - ldr r2, _020697F4 @ =0x020B0B44 - mov r1, #0x14 - str r0, [r2] - bl MemZero - ldr r0, _020697F4 @ =0x020B0B44 - mov ip, #0 - ldr r2, [r0] - ldr r1, _020697F8 @ =0x020A93D0 - str r4, [r2] - ldr r3, [r0] - ldr r2, _020697FC @ =FUN_02069aec - strh ip, [r3, #8] - ldr r0, [r0] - add r0, r0, #0xc - bl FUN_0204707c - ldr r0, _020697F4 @ =0x020B0B44 - mov r1, #0 - ldr r0, [r0] - strb r1, [r0, #0x10] - pop {r4, pc} - .align 2, 0 -_020697F4: .4byte 0x020B0B44 -_020697F8: .4byte 0x020A93D0 -_020697FC: .4byte FUN_02069aec - arm_func_end FUN_02069790 - - arm_func_start FUN_02069800 -FUN_02069800: @ 0x02069800 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - mov r0, #0x14 - mov r1, #8 - bl MemAlloc - ldr r2, _02069864 @ =0x020B0B44 - mov r1, #0x14 - str r0, [r2] - bl MemZero - ldr r0, _02069864 @ =0x020B0B44 - mov ip, #0 - ldr r2, [r0] - ldr r1, _02069868 @ =0x020A93D0 - str r5, [r2, #4] - ldr r3, [r0] - ldr r2, _0206986C @ =FUN_02069cc0 - strh ip, [r3, #8] - ldr r0, [r0] - add r0, r0, #0xc - bl FUN_0204707c - ldr r0, _02069864 @ =0x020B0B44 - ldr r0, [r0] - strb r4, [r0, #0x10] - pop {r3, r4, r5, pc} - .align 2, 0 -_02069864: .4byte 0x020B0B44 -_02069868: .4byte 0x020A93D0 -_0206986C: .4byte FUN_02069cc0 - arm_func_end FUN_02069800 - - arm_func_start FUN_02069870 -FUN_02069870: @ 0x02069870 - ldr r1, _0206988C @ =0x020B0B44 - ldr ip, _02069890 @ =FUN_02047188 - ldr r2, [r1] - str r0, [r2] - ldr r0, [r1] - add r0, r0, #0xc - bx ip - .align 2, 0 -_0206988C: .4byte 0x020B0B44 -_02069890: .4byte FUN_02047188 - arm_func_end FUN_02069870 - - arm_func_start FUN_02069894 -FUN_02069894: @ 0x02069894 - ldr r1, _020698B0 @ =0x020B0B44 - ldr ip, _020698B4 @ =FUN_02047188 - ldr r2, [r1] - str r0, [r2, #4] - ldr r0, [r1] - add r0, r0, #0xc - bx ip - .align 2, 0 -_020698B0: .4byte 0x020B0B44 -_020698B4: .4byte FUN_02047188 - arm_func_end FUN_02069894 - - arm_func_start FUN_020698b8 -FUN_020698b8: @ 0x020698B8 - push {r3, lr} - ldr r0, _02069900 @ =0x020B0B44 - ldr r0, [r0] - cmp r0, #0 - ldrne r0, [r0, #0xc] - cmpne r0, #0 - beq _020698F8 - bl FUN_020470d0 - ldr r0, _02069900 @ =0x020B0B44 - ldr r0, [r0] - ldr r0, [r0, #0xc] - bl FUN_02047148 - mvn r1, #0 - cmp r0, r1 - moveq r0, #1 - popeq {r3, pc} -_020698F8: - mov r0, #0 - pop {r3, pc} - .align 2, 0 -_02069900: .4byte 0x020B0B44 - arm_func_end FUN_020698b8 - - arm_func_start FUN_02069904 -FUN_02069904: @ 0x02069904 - push {r3, lr} - ldr r0, _0206993C @ =0x020B0B44 - ldr r0, [r0] - cmp r0, #0 - popeq {r3, pc} - add r0, r0, #0xc - bl FUN_02047150 - ldr r0, _0206993C @ =0x020B0B44 - ldr r0, [r0] - bl MemFree - ldr r0, _0206993C @ =0x020B0B44 - mov r1, #0 - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_0206993C: .4byte 0x020B0B44 - arm_func_end FUN_02069904 -_02069940: - .byte 0x0C, 0x10, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0xB8, 0x00, 0xC1, 0x11 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x44, 0x0B, 0x0B, 0x02 - - arm_func_start FUN_02069958 -FUN_02069958: @ 0x02069958 - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov sb, r0 - mov r8, r1 - mov r7, r2 - mov r6, r3 - mov r5, #0 - b _02069AD0 -_02069974: - lsl r0, r5, #0x18 - asr r0, r0, #0x18 - bl GetAcceptedMission - mov r4, r0 - ldrb r0, [r4] - cmp r0, #0 - beq _02069ACC - ldrb r1, [sb, #1] - ldrb r0, [r4, #1] - cmp r1, r0 - ldrbeq r1, [sb, #2] - ldrbeq r0, [r4, #2] - cmpeq r1, r0 - ldrbeq r1, [sb, #4] - ldrbeq r0, [r4, #4] - cmpeq r1, r0 - ldrbeq r1, [sb, #5] - ldrbeq r0, [r4, #5] - cmpeq r1, r0 - ldreq r1, [sb, #8] - ldreq r0, [r4, #8] - cmpeq r1, r0 - ldrsheq r1, [sb, #0xe] - ldrsheq r0, [r4, #0xe] - cmpeq r1, r0 - ldrsheq r1, [sb, #0x10] - ldrsheq r0, [r4, #0x10] - cmpeq r1, r0 - ldrsheq r1, [sb, #0x12] - ldrsheq r0, [r4, #0x12] - cmpeq r1, r0 - ldrsheq r1, [sb, #0x14] - ldrsheq r0, [r4, #0x14] - cmpeq r1, r0 - ldrbeq r0, [sb, #0x16] - ldrbeq r1, [r4, #0x16] - cmpeq r0, r1 - bne _02069ACC - add r1, sb, #0x18 - add r2, r4, #0x18 - bl FUN_0205c870 - cmp r0, #0 - beq _02069ACC - add r0, sb, #0x1a - add r1, r4, #0x1a - bl FUN_0205c8e0 - cmp r0, #0 - beq _02069ACC - ldrb r0, [r4] - sub r0, r0, #4 - cmp r0, #4 - addls pc, pc, r0, lsl #2 - b _02069AA4 -_02069A48: @ jump table - b _02069A5C @ case 0 - b _02069A6C @ case 1 - b _02069A88 @ case 2 - b _02069A6C @ case 3 - b _02069A6C @ case 4 -_02069A5C: - mov r0, #1 - strb r0, [r8] - strb r0, [r7] - b _02069ABC -_02069A6C: - cmp r6, #0 - movne r0, #3 - moveq r0, #1 - strb r0, [r8] - mov r0, #2 - strb r0, [r7] - b _02069ABC -_02069A88: - cmp r6, #0 - movne r0, #0 - moveq r0, #1 - strb r0, [r8] - mov r0, #3 - strb r0, [r7] - b _02069ABC -_02069AA4: - cmp r6, #0 - movne r0, #0 - moveq r0, #1 - strb r0, [r8] - mov r0, #0 - strb r0, [r7] -_02069ABC: - cmp r6, #0 - moveq r0, #0 - strbeq r0, [r7] - pop {r3, r4, r5, r6, r7, r8, sb, pc} -_02069ACC: - add r5, r5, #1 -_02069AD0: - cmp r5, #8 - blt _02069974 - mov r0, #2 - strb r0, [r8] - mov r0, #0 - strb r0, [r7] - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_02069958 - - arm_func_start FUN_02069aec -FUN_02069aec: @ 0x02069AEC - push {r3, r4, r5, lr} - sub sp, sp, #0x68 - ldr r1, _02069CBC @ =0x020B0B44 - mov r2, #0 - ldr r1, [r1] - mov r5, r0 - ldr r4, [r1] - add r0, r4, #4 - strb r2, [sp, #0x46] - strh r2, [sp, #0x10] - strh r2, [sp, #0x12] - strh r2, [sp, #0x14] - strh r2, [sp, #0x16] - str r2, [sp, #0x5c] - str r4, [sp, #0x64] - str r0, [sp, #8] - ldrsh r0, [r4, #0xa2] - cmp r0, #0 - moveq r0, #7 - strbeq r0, [sp, #0x1a] - beq _02069B60 - mov r0, #2 - strb r0, [sp, #0x1a] - ldrh r0, [r4, #0x9e] - strh r0, [sp, #0x28] - ldrh r0, [r4, #0xa0] - strh r0, [sp, #0x2a] - ldrh r0, [r4, #0xa2] - strh r0, [sp, #0x2c] -_02069B60: - bl GetLanguageType - ldrsb r1, [r4, #0x1c] - cmp r1, r0 - movne r0, #0 - strne r0, [sp, #0xc] - strne r0, [sp, #0x54] - strne r0, [sp, #0x58] - bne _02069B98 - add r2, r4, #0x1d - add r1, r4, #0x32 - add r0, r4, #0x56 - str r2, [sp, #0xc] - str r1, [sp, #0x54] - str r0, [sp, #0x58] -_02069B98: - ldrb r0, [r4] - cmp r0, #7 - addls pc, pc, r0, lsl #2 - b _02069C00 -_02069BA8: @ jump table - b _02069C00 @ case 0 - b _02069C00 @ case 1 - b _02069C00 @ case 2 - b _02069C00 @ case 3 - b _02069C00 @ case 4 - b _02069BC8 @ case 5 - b _02069BF4 @ case 6 - b _02069BC8 @ case 7 -_02069BC8: - ldr r0, _02069CBC @ =0x020B0B44 - ldr r1, [r0] - ldrsh r0, [r1, #8] - cmp r0, #0 - movne r0, #6 - strbne r0, [sp, #0x1a] - ldrshne r0, [r1, #8] - strhne r0, [sp, #0x3c] - mov r0, #0 - strb r0, [sp, #0x48] - b _02069C50 -_02069BF4: - mov r0, #0 - strb r0, [sp, #0x48] - b _02069C50 -_02069C00: - ldrb r0, [r4, #0xae] - bl FUN_0205bd40 - cmp r0, #0 - beq _02069C24 - cmp r0, #1 - beq _02069C30 - cmp r0, #2 - beq _02069C3C - b _02069C48 -_02069C24: - mov r0, #6 - strb r0, [sp, #0x48] - b _02069C50 -_02069C30: - mov r0, #4 - strb r0, [sp, #0x48] - b _02069C50 -_02069C3C: - mov r0, #5 - strb r0, [sp, #0x48] - b _02069C50 -_02069C48: - mov r0, #0 - strb r0, [sp, #0x48] -_02069C50: - ldr r0, [sp, #0x54] - mov r1, #1 - cmp r0, #0 - ldrhne r0, [r0] - cmpne r0, #0 - movne r1, #0 - cmp r1, #0 - movne r1, #0 - moveq r1, #6 - ldr r0, [sp, #0x58] - strb r1, [sp, #0x44] - cmp r0, #0 - ldrhne r0, [r0] - mov r1, #1 - cmpne r0, #0 - movne r1, #0 - cmp r1, #0 - movne r2, #0 - moveq r2, #9 - add r0, sp, #0 - mov r1, r5 - strb r2, [sp, #0x45] - bl FUN_02060fd8 - mov r0, r5 - bl FUN_02027af0 - add sp, sp, #0x68 - pop {r3, r4, r5, pc} - .align 2, 0 -_02069CBC: .4byte 0x020B0B44 - arm_func_end FUN_02069aec - - arm_func_start FUN_02069cc0 -FUN_02069cc0: @ 0x02069CC0 - push {r4, r5, r6, lr} - sub sp, sp, #0x68 - ldr r1, _02069D3C @ =0x020B0B44 mov r6, r0 - ldr r0, [r1] - ldr r4, [r0, #4] - ldrb r5, [r0, #0x10] - mov r0, r4 - bl FUN_0205e238 - cmp r0, #0 - beq _02069CFC - mov r0, r6 - mov r1, r4 - bl FUN_02061c60 - b _02069D2C -_02069CFC: - add r1, sp, #0 - mov r0, r4 - bl FUN_02060150 - add r1, sp, #0x47 - add r2, sp, #0x48 - mov r0, r4 - mov r3, r5 - bl FUN_02069958 - add r0, sp, #0 - mov r1, r6 - str r4, [sp, #0x5c] - bl FUN_02060fd8 -_02069D2C: - mov r0, r6 - bl FUN_02027af0 - add sp, sp, #0x68 - pop {r4, r5, r6, pc} - .align 2, 0 -_02069D3C: .4byte 0x020B0B44 - arm_func_end FUN_02069cc0 - - arm_func_start FUN_02069d40 -FUN_02069d40: @ 0x02069D40 - push {r4, lr} - mov r4, r0 - mov r0, #0xc4 - mov r1, #8 - bl MemAlloc - ldr r2, _02069D90 @ =0x020B0B48 - mov r1, #0xc4 - str r0, [r2] - bl MemZero - ldr r0, _02069D90 @ =0x020B0B48 - mov r2, #0 - ldr r1, [r0] - str r2, [r1] - ldr r1, [r0] - strh r4, [r1, #0xc0] - ldr r1, [r0] - add r0, r1, #0x37 - bic r0, r0, #0x1f - str r0, [r1, #0x14] - pop {r4, pc} - .align 2, 0 -_02069D90: .4byte 0x020B0B48 - arm_func_end FUN_02069d40 -_02069D94: - .byte 0x08, 0x40, 0x2D, 0xE9, 0x1C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x08, 0xF6, 0x5C, 0xFE, 0xEB, 0x08, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x48, 0x0B, 0x0B, 0x02 - .byte 0xF0, 0x4F, 0x2D, 0xE9, 0x83, 0xDF, 0x4D, 0xE2, 0x10, 0x08, 0x9F, 0xE5, 0x00, 0x50, 0x90, 0xE5 - .byte 0x00, 0x10, 0x95, 0xE5, 0x03, 0x0A, 0x51, 0xE3, 0x14, 0x00, 0x00, 0xCA, 0x69, 0x01, 0x00, 0xAA - .byte 0xFC, 0x07, 0x9F, 0xE5, 0x00, 0x00, 0x51, 0xE1, 0x08, 0x00, 0x00, 0xCA, 0x01, 0x0A, 0x51, 0xE3 - .byte 0x03, 0x00, 0x00, 0xBA, 0xAC, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x51, 0xE1, 0xC0, 0x00, 0x00, 0x0A - .byte 0xF3, 0x01, 0x00, 0xEA, 0x00, 0x00, 0x51, 0xE3, 0x1D, 0x00, 0x00, 0x0A, 0xF0, 0x01, 0x00, 0xEA - .byte 0x02, 0x0A, 0x51, 0xE3, 0x01, 0x00, 0x00, 0xCA, 0x91, 0x01, 0x00, 0x0A, 0xEC, 0x01, 0x00, 0xEA - .byte 0x01, 0x0A, 0x80, 0xE2, 0x00, 0x00, 0x51, 0xE1, 0x98, 0x01, 0x00, 0x0A, 0xE8, 0x01, 0x00, 0xEA - .byte 0x01, 0x09, 0x51, 0xE3, 0x04, 0x00, 0x00, 0xCA, 0x99, 0x01, 0x00, 0xAA, 0xA4, 0x07, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE1, 0x55, 0x01, 0x00, 0x0A, 0xE1, 0x01, 0x00, 0xEA, 0x98, 0x07, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE1, 0x07, 0x00, 0x00, 0xCA, 0x03, 0x00, 0x40, 0xE2, 0x00, 0x00, 0x51, 0xE0 - .byte 0x00, 0xF1, 0x8F, 0x50, 0xDA, 0x01, 0x00, 0xEA, 0xA2, 0x01, 0x00, 0xEA, 0x94, 0x01, 0x00, 0xEA - .byte 0xC3, 0x01, 0x00, 0xEA, 0xCD, 0x01, 0x00, 0xEA, 0x02, 0x09, 0x51, 0xE3, 0xD0, 0x01, 0x00, 0x0A - .byte 0xD3, 0x01, 0x00, 0xEA, 0x58, 0x40, 0x85, 0xE2, 0x90, 0x50, 0x85, 0xE2, 0x05, 0x4B, 0x0B, 0xEB - .byte 0x01, 0x00, 0x50, 0xE3, 0x3D, 0x00, 0x00, 0x1A, 0x40, 0x07, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x0C, 0x00, 0x81, 0x15, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x38, 0x10, 0xA0, 0xE3, 0xE5, 0x64, 0xFE, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0x18, 0x10, 0xA0, 0xE3 - .byte 0xE2, 0x64, 0xFE, 0xEB, 0x14, 0x17, 0x9F, 0xE5, 0x18, 0x20, 0xA0, 0xE3, 0x00, 0x00, 0x91, 0xE5 - .byte 0x38, 0x60, 0xA0, 0xE3, 0xA8, 0x20, 0x80, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x0C, 0x37, 0x9F, 0xE5 - .byte 0xAC, 0x50, 0x80, 0xE5, 0x00, 0x20, 0x91, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0xB0, 0x60, 0x82, 0xE5 - .byte 0x00, 0x20, 0x91, 0xE5, 0x01, 0x80, 0xA0, 0xE3, 0xB4, 0x40, 0x82, 0xE5, 0x00, 0x20, 0x91, 0xE5 - .byte 0x09, 0x70, 0xA0, 0xE3, 0xB8, 0x30, 0x82, 0xE5, 0x00, 0x20, 0x91, 0xE5, 0x12, 0x30, 0xA0, 0xE3 - .byte 0xBC, 0x00, 0xC2, 0xE5, 0x00, 0x60, 0x91, 0xE5, 0x11, 0x20, 0xA0, 0xE3, 0x10, 0x80, 0xC6, 0xE5 - .byte 0x00, 0x60, 0x91, 0xE5, 0x14, 0x60, 0x96, 0xE5, 0x00, 0x70, 0xC6, 0xE5, 0x00, 0x10, 0x91, 0xE5 - .byte 0x14, 0x10, 0x91, 0xE5, 0x01, 0x00, 0xC1, 0xE5, 0x00, 0x30, 0xC4, 0xE5, 0x00, 0x20, 0xC5, 0xE5 - .byte 0x96, 0xD9, 0xFE, 0xEB, 0x02, 0x00, 0xC5, 0xE5, 0xD2, 0x10, 0xD5, 0xE1, 0x04, 0x00, 0x85, 0xE2 - .byte 0x02, 0x10, 0xC4, 0xE5, 0xED, 0x9A, 0xFF, 0xEB, 0x04, 0x00, 0xD5, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x01, 0x00, 0x00, 0x1A, 0x04, 0x00, 0x85, 0xE2, 0x5D, 0xEC, 0xFE, 0xEB, 0x04, 0x00, 0x85, 0xE2 - .byte 0x14, 0x10, 0xA0, 0xE3, 0xF0, 0x36, 0x0B, 0xEB, 0x60, 0x16, 0x9F, 0xE5, 0x03, 0x00, 0xC5, 0xE5 - .byte 0x00, 0x00, 0x91, 0xE5, 0x01, 0x1A, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x90, 0x01, 0x00, 0xEA - .byte 0xC4, 0x4A, 0x0B, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x8D, 0x01, 0x00, 0x1A, 0x3C, 0x06, 0x9F, 0xE5 - .byte 0x00, 0x10, 0x90, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x0C, 0x00, 0x81, 0x15 - .byte 0x04, 0x00, 0xA0, 0xE1, 0x38, 0x10, 0xA0, 0xE3, 0xA4, 0x64, 0xFE, 0xEB, 0x05, 0x00, 0xA0, 0xE1 - .byte 0x18, 0x10, 0xA0, 0xE3, 0xA1, 0x64, 0xFE, 0xEB, 0x10, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0xF0, 0x0C, 0xD0, 0xE1, 0x00, 0x0C, 0xA0, 0xE1, 0x40, 0x0C, 0xA0, 0xE1, 0x3D, 0xD4, 0xFF, 0xEB - .byte 0x00, 0xA0, 0xA0, 0xE1, 0x18, 0x90, 0x84, 0xE2, 0x0F, 0x00, 0xBA, 0xE8, 0x0F, 0x00, 0xA9, 0xE8 - .byte 0x0F, 0x00, 0x9A, 0xE8, 0xE4, 0xC5, 0x9F, 0xE5, 0x0F, 0x00, 0x89, 0xE8, 0x00, 0x00, 0x9C, 0xE5 - .byte 0x38, 0x80, 0xA0, 0xE3, 0xA8, 0x80, 0x80, 0xE5, 0x00, 0x00, 0x9C, 0xE5, 0x18, 0x70, 0xA0, 0xE3 - .byte 0xAC, 0x40, 0x80, 0xE5, 0x00, 0x00, 0x9C, 0xE5, 0xD4, 0x65, 0x9F, 0xE5, 0xB0, 0x70, 0x80, 0xE5 - .byte 0x00, 0x00, 0x9C, 0xE5, 0x00, 0xE0, 0xA0, 0xE3, 0xB4, 0x50, 0x80, 0xE5, 0x00, 0x00, 0x9C, 0xE5 - .byte 0x09, 0xB0, 0xA0, 0xE3, 0xB8, 0x60, 0x80, 0xE5, 0x00, 0x00, 0x9C, 0xE5, 0xBC, 0xE0, 0xC0, 0xE5 - .byte 0x00, 0x00, 0x9C, 0xE5, 0x10, 0xE0, 0xC0, 0xE5, 0x00, 0x00, 0x9C, 0xE5, 0x14, 0x00, 0x90, 0xE5 - .byte 0x00, 0xB0, 0xC0, 0xE5, 0x00, 0x00, 0x9C, 0xE5, 0x14, 0x00, 0x90, 0xE5, 0x01, 0xE0, 0xC0, 0xE5 - .byte 0x12, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0xC4, 0xE5, 0x11, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0xC5, 0xE5 - .byte 0x4A, 0xD9, 0xFE, 0xEB, 0x02, 0x00, 0xC5, 0xE5, 0xD2, 0x10, 0xD5, 0xE1, 0x04, 0x00, 0x84, 0xE2 - .byte 0x02, 0x10, 0xC4, 0xE5, 0xA1, 0x9A, 0xFF, 0xEB, 0x04, 0x00, 0x84, 0xE2, 0x34, 0x10, 0xA0, 0xE3 - .byte 0xA9, 0x36, 0x0B, 0xEB, 0x03, 0x00, 0xC4, 0xE5, 0x40, 0x05, 0x9F, 0xE5, 0x01, 0x1A, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x49, 0x01, 0x00, 0xEA, 0xA8, 0x00, 0x85, 0xE2 - .byte 0x01, 0x40, 0xA0, 0xE3, 0xAC, 0x00, 0x8D, 0xE5, 0xA8, 0x40, 0x8D, 0xE5, 0x0C, 0x10, 0x95, 0xE5 - .byte 0xA8, 0x00, 0x8D, 0xE2, 0xB8, 0x10, 0x8D, 0xE5, 0x10, 0x30, 0xD5, 0xE5, 0x20, 0x20, 0xA0, 0xE3 - .byte 0x00, 0x10, 0xA0, 0xE3, 0xBC, 0x30, 0xCD, 0xE5, 0x14, 0x30, 0x95, 0xE5, 0xC0, 0x30, 0x8D, 0xE5 - .byte 0xB4, 0x2C, 0xCD, 0xE1, 0xC6, 0x10, 0xCD, 0xE5, 0xC8, 0x40, 0x8D, 0xE5, 0xAB, 0x36, 0x0B, 0xEB - .byte 0xE8, 0x04, 0x9F, 0xE5, 0xE8, 0x14, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5 - .byte 0x33, 0x01, 0x00, 0xEA, 0x40, 0x37, 0x0B, 0xEB, 0x00, 0x40, 0xB0, 0xE1, 0x30, 0x01, 0x00, 0x0A - .byte 0xCF, 0x36, 0x0B, 0xEB, 0x0E, 0x00, 0x54, 0xE3, 0x04, 0xF1, 0x8F, 0x90, 0x2C, 0x01, 0x00, 0xEA - .byte 0x2B, 0x01, 0x00, 0xEA, 0x95, 0x00, 0x00, 0xEA, 0x29, 0x01, 0x00, 0xEA, 0x28, 0x01, 0x00, 0xEA - .byte 0x09, 0x00, 0x00, 0xEA, 0x91, 0x00, 0x00, 0xEA, 0x90, 0x00, 0x00, 0xEA, 0x8F, 0x00, 0x00, 0xEA - .byte 0x8E, 0x00, 0x00, 0xEA, 0x8D, 0x00, 0x00, 0xEA, 0x8C, 0x00, 0x00, 0xEA, 0x8B, 0x00, 0x00, 0xEA - .byte 0x8A, 0x00, 0x00, 0xEA, 0x89, 0x00, 0x00, 0xEA, 0x88, 0x00, 0x00, 0xEA, 0x51, 0x4A, 0x0B, 0xEB - .byte 0x01, 0x00, 0x50, 0xE3, 0x65, 0x00, 0x00, 0x1A, 0x70, 0x04, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x70, 0x00, 0x80, 0xE2, 0x2F, 0xD0, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x30, 0x00, 0x00, 0x0A - .byte 0x02, 0x00, 0xA0, 0xE3, 0xF0, 0x89, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x0A - .byte 0x60, 0x14, 0x9F, 0xE5, 0x1C, 0x00, 0xA0, 0xE3, 0x0A, 0x4B, 0x0B, 0xEB, 0x3C, 0x04, 0x9F, 0xE5 - .byte 0x54, 0x14, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x08, 0x01, 0x00, 0xEA - .byte 0x6F, 0x0F, 0x8D, 0xE2, 0x35, 0xE5, 0xFE, 0xEB, 0x02, 0x00, 0xA0, 0xE3, 0x01, 0x10, 0xA0, 0xE3 - .byte 0xEC, 0x89, 0xFF, 0xEB, 0x7E, 0x00, 0x8D, 0xE2, 0x2A, 0x10, 0xA0, 0xE3, 0x1F, 0x64, 0xFE, 0xEB - .byte 0x08, 0x04, 0x9F, 0xE5, 0x00, 0x40, 0x90, 0xE5, 0xF0, 0xD8, 0xFE, 0xEB, 0xDA, 0x15, 0xD4, 0xE1 - .byte 0x00, 0x00, 0x51, 0xE1, 0x7E, 0x00, 0x8D, 0xE2, 0x03, 0x00, 0x00, 0x1A, 0x5C, 0x10, 0x84, 0xE2 - .byte 0x14, 0x20, 0xA0, 0xE3, 0xFE, 0xEB, 0xFE, 0xEB, 0x01, 0x00, 0x00, 0xEA, 0xFC, 0x13, 0x9F, 0xE5 - .byte 0xAC, 0xED, 0xFE, 0xEB, 0xF8, 0x13, 0x9F, 0xE5, 0x7E, 0x30, 0x8D, 0xE2, 0x6F, 0x2F, 0x8D, 0xE2 - .byte 0x1C, 0x00, 0xA0, 0xE3, 0xF4, 0x31, 0x8D, 0xE5, 0xEE, 0x4A, 0x0B, 0xEB, 0xBC, 0x03, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x70, 0x00, 0x80, 0xE2, 0x73, 0xFD, 0xFF, 0xEB - .byte 0xA8, 0x03, 0x9F, 0xE5, 0x02, 0x1A, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5 - .byte 0xE3, 0x00, 0x00, 0xEA, 0x94, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x70, 0x00, 0x80, 0xE2 - .byte 0x98, 0xD3, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x23, 0x00, 0x00, 0x1A, 0xD1, 0xD4, 0xFF, 0xEB - .byte 0x2A, 0xD5, 0xFF, 0xEB, 0x5B, 0x0F, 0x8D, 0xE2, 0x08, 0xE5, 0xFE, 0xEB, 0x54, 0x00, 0x8D, 0xE2 - .byte 0x2A, 0x10, 0xA0, 0xE3, 0xF5, 0x63, 0xFE, 0xEB, 0x60, 0x03, 0x9F, 0xE5, 0x00, 0x40, 0x90, 0xE5 - .byte 0xC6, 0xD8, 0xFE, 0xEB, 0xDA, 0x15, 0xD4, 0xE1, 0x00, 0x00, 0x51, 0xE1, 0x54, 0x00, 0x8D, 0xE2 - .byte 0x03, 0x00, 0x00, 0x1A, 0x5C, 0x10, 0x84, 0xE2, 0x14, 0x20, 0xA0, 0xE3, 0xD4, 0xEB, 0xFE, 0xEB - .byte 0x01, 0x00, 0x00, 0xEA, 0x54, 0x13, 0x9F, 0xE5, 0x82, 0xED, 0xFE, 0xEB, 0x50, 0x13, 0x9F, 0xE5 - .byte 0x54, 0x30, 0x8D, 0xE2, 0x5B, 0x2F, 0x8D, 0xE2, 0x1C, 0x00, 0xA0, 0xE3, 0xA4, 0x31, 0x8D, 0xE5 - .byte 0xC4, 0x4A, 0x0B, 0xEB, 0x14, 0x03, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 - .byte 0x70, 0x00, 0x80, 0xE2, 0x49, 0xFD, 0xFF, 0xEB, 0x00, 0x03, 0x9F, 0xE5, 0x02, 0x1A, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0xB9, 0x00, 0x00, 0xEA, 0xEC, 0x02, 0x9F, 0xE5 - .byte 0x03, 0x1A, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0xB4, 0x00, 0x00, 0xEA - .byte 0xE8, 0x49, 0x0B, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xB1, 0x00, 0x00, 0x1A, 0x47, 0x0F, 0x8D, 0xE2 - .byte 0xDE, 0xE4, 0xFE, 0xEB, 0x2A, 0x00, 0x8D, 0xE2, 0x2A, 0x10, 0xA0, 0xE3, 0xCB, 0x63, 0xFE, 0xEB - .byte 0xB8, 0x02, 0x9F, 0xE5, 0x00, 0x40, 0x90, 0xE5, 0x9C, 0xD8, 0xFE, 0xEB, 0xD2, 0x19, 0xD4, 0xE1 - .byte 0x00, 0x00, 0x51, 0xE1, 0x2A, 0x00, 0x8D, 0xE2, 0x03, 0x00, 0x00, 0x1A, 0x94, 0x10, 0x84, 0xE2 - .byte 0x14, 0x20, 0xA0, 0xE3, 0xAA, 0xEB, 0xFE, 0xEB, 0x01, 0x00, 0x00, 0xEA, 0xAC, 0x12, 0x9F, 0xE5 - .byte 0x58, 0xED, 0xFE, 0xEB, 0xAC, 0x12, 0x9F, 0xE5, 0x2A, 0x30, 0x8D, 0xE2, 0x47, 0x2F, 0x8D, 0xE2 - .byte 0x1C, 0x00, 0xA0, 0xE3, 0x54, 0x31, 0x8D, 0xE5, 0x9A, 0x4A, 0x0B, 0xEB, 0x6C, 0x02, 0x9F, 0xE5 - .byte 0x02, 0x19, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x94, 0x00, 0x00, 0xEA - .byte 0x01, 0x00, 0xA0, 0xE3, 0x93, 0x00, 0x00, 0xEA, 0xD2, 0x49, 0x0B, 0xEB, 0x4C, 0x02, 0x9F, 0xE5 - .byte 0x50, 0x12, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x8C, 0x00, 0x00, 0xEA - .byte 0xE5, 0x49, 0x0B, 0xEB, 0x02, 0x00, 0x50, 0xE3, 0x28, 0x00, 0x00, 0x1A, 0xD7, 0x49, 0x0B, 0xEB - .byte 0xCC, 0x00, 0x8D, 0xE2, 0xB5, 0xE4, 0xFE, 0xEB, 0x20, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x70, 0x00, 0x80, 0xE2, 0x3B, 0xD3, 0xFF, 0xEB, 0x76, 0xD4, 0xFF, 0xEB, 0xCF, 0xD4, 0xFF, 0xEB - .byte 0x00, 0x00, 0x8D, 0xE2, 0x2A, 0x10, 0xA0, 0xE3, 0x9C, 0x63, 0xFE, 0xEB, 0xFC, 0x01, 0x9F, 0xE5 - .byte 0x00, 0x40, 0x90, 0xE5, 0x6D, 0xD8, 0xFE, 0xEB, 0xDA, 0x15, 0xD4, 0xE1, 0x00, 0x00, 0x51, 0xE1 - .byte 0x00, 0x00, 0x8D, 0xE2, 0x03, 0x00, 0x00, 0x1A, 0x5C, 0x10, 0x84, 0xE2, 0x14, 0x20, 0xA0, 0xE3 - .byte 0x7B, 0xEB, 0xFE, 0xEB, 0x01, 0x00, 0x00, 0xEA, 0xF0, 0x11, 0x9F, 0xE5, 0x29, 0xED, 0xFE, 0xEB - .byte 0xEC, 0x11, 0x9F, 0xE5, 0x00, 0x30, 0x8D, 0xE2, 0xCC, 0x20, 0x8D, 0xE2, 0x1C, 0x00, 0xA0, 0xE3 - .byte 0x04, 0x31, 0x8D, 0xE5, 0x6B, 0x4A, 0x0B, 0xEB, 0xB0, 0x01, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0x70, 0x00, 0x80, 0xE2, 0xF0, 0xFC, 0xFF, 0xEB, 0x9C, 0x01, 0x9F, 0xE5 - .byte 0x02, 0x1A, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x60, 0x00, 0x00, 0xEA - .byte 0x01, 0x00, 0x50, 0xE3, 0x5E, 0x00, 0x00, 0x1A, 0xAC, 0x49, 0x0B, 0xEB, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x5C, 0x00, 0x00, 0xEA, 0x5E, 0x4A, 0x0B, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0x11, 0xFD, 0xFF, 0xEB - .byte 0x12, 0x00, 0x54, 0xE3, 0x56, 0x00, 0x00, 0x1A, 0x21, 0xFD, 0xFF, 0xEB, 0x5C, 0x01, 0x9F, 0xE5 - .byte 0x01, 0x19, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x50, 0x00, 0x00, 0xEA - .byte 0x53, 0x4A, 0x0B, 0xEB, 0x12, 0x00, 0x50, 0xE3, 0x4D, 0x00, 0x00, 0x1A, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x4C, 0x00, 0x00, 0xEA, 0x60, 0x11, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x45, 0x4A, 0x0B, 0xEB - .byte 0x28, 0x01, 0x9F, 0xE5, 0x54, 0x11, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5 - .byte 0x43, 0x00, 0x00, 0xEA, 0x46, 0x4A, 0x0B, 0xEB, 0x12, 0x00, 0x50, 0xE3, 0x40, 0x00, 0x00, 0x1A - .byte 0xE0, 0x00, 0xA0, 0xE3, 0x88, 0x10, 0xA0, 0xE3, 0x01, 0x20, 0xA0, 0xE3, 0xA9, 0xFE, 0xFE, 0xEB - .byte 0xAB, 0x65, 0xFE, 0xEB, 0xF4, 0x00, 0x9F, 0xE5, 0x24, 0x11, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x00, 0x10, 0x80, 0xE5, 0x36, 0x00, 0x00, 0xEA, 0x03, 0x00, 0xA0, 0xE3, 0xA0, 0x7A, 0xFF, 0xEB - .byte 0x00, 0x40, 0xA0, 0xE1, 0xAF, 0x65, 0xFE, 0xEB, 0xAB, 0xFE, 0xFE, 0xEB, 0x00, 0x00, 0x54, 0xE3 - .byte 0x10, 0x00, 0x00, 0x1A, 0xC4, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x70, 0x00, 0x80, 0xE2 - .byte 0x44, 0xCF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x1C, 0x00, 0xA0, 0xE3, 0x02, 0x00, 0x00, 0x0A - .byte 0xE0, 0x10, 0x9F, 0xE5, 0x23, 0x4A, 0x0B, 0xEB, 0x01, 0x00, 0x00, 0xEA, 0x8F, 0x1F, 0xA0, 0xE3 - .byte 0x20, 0x4A, 0x0B, 0xEB, 0x94, 0x00, 0x9F, 0xE5, 0xCC, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x00, 0x10, 0x80, 0xE5, 0x1E, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x54, 0xE3, 0x03, 0x00, 0xA0, 0x03 - .byte 0x1C, 0x00, 0x00, 0x0A, 0xB4, 0x10, 0x9F, 0xE5, 0x1C, 0x00, 0xA0, 0xE3, 0x15, 0x4A, 0x0B, 0xEB - .byte 0x68, 0x00, 0x9F, 0xE5, 0x70, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5 - .byte 0x13, 0x00, 0x00, 0xEA, 0x16, 0x4A, 0x0B, 0xEB, 0x12, 0x00, 0x50, 0xE3, 0x10, 0x00, 0x00, 0x1A - .byte 0x8C, 0x10, 0x9F, 0xE5, 0x1C, 0x00, 0xA0, 0xE3, 0x0A, 0x4A, 0x0B, 0xEB, 0x3C, 0x00, 0x9F, 0xE5 - .byte 0x02, 0x19, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x08, 0x00, 0x00, 0xEA - .byte 0x0B, 0x4A, 0x0B, 0xEB, 0x12, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x1A, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x04, 0x00, 0x00, 0xEA, 0x06, 0x4A, 0x0B, 0xEB, 0x12, 0x00, 0x50, 0xE3, 0x02, 0x00, 0xA0, 0x03 - .byte 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0xA0, 0xE3, 0x83, 0xDF, 0x8D, 0xE2, 0xF0, 0x8F, 0xBD, 0xE8 - .byte 0x48, 0x0B, 0x0B, 0x02, 0x01, 0x10, 0x00, 0x00, 0x01, 0x30, 0x00, 0x00, 0x04, 0x40, 0x00, 0x00 - .byte 0x28, 0xA6, 0x06, 0x02, 0x68, 0x7B, 0x33, 0x02, 0xA8, 0x37, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00 - .byte 0xC9, 0x38, 0x00, 0x00, 0x9F, 0x37, 0x00, 0x00, 0x93, 0x37, 0x00, 0x00, 0x3B, 0x02, 0x00, 0x00 - .byte 0x02, 0x40, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x9E, 0x37, 0x00, 0x00, 0x03, 0x40, 0x00, 0x00 - .byte 0x39, 0x02, 0x00, 0x00, 0xA0, 0x37, 0x00, 0x00, 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x1C, 0x49, 0x0B, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x33, 0x00, 0x00, 0x1A, 0x04, 0x00, 0x84, 0xE2 - .byte 0x34, 0x10, 0xA0, 0xE3, 0x3C, 0x35, 0x0B, 0xEB, 0x03, 0x10, 0xD4, 0xE5, 0x01, 0x00, 0x50, 0xE1 - .byte 0x03, 0x00, 0xA0, 0x13, 0x10, 0x80, 0xBD, 0x18, 0x00, 0x00, 0xD4, 0xE5, 0x12, 0x00, 0x50, 0xE3 - .byte 0x02, 0x00, 0xA0, 0x13, 0x10, 0x80, 0xBD, 0x18, 0x18, 0x00, 0x84, 0xE2, 0xF1, 0xCE, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x10, 0x80, 0xBD, 0x18, 0x18, 0x00, 0x84, 0xE2 - .byte 0xDB, 0xCA, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0xA0, 0x03, 0x10, 0x80, 0xBD, 0x08 - .byte 0xFC, 0x02, 0xD4, 0xE1, 0x01, 0x10, 0xA0, 0xE3, 0xCF, 0xE1, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x06, 0x00, 0xA0, 0x03, 0x10, 0x80, 0xBD, 0x08, 0x2E, 0x00, 0xD4, 0xE5, 0x04, 0x00, 0x50, 0xE3 - .byte 0x00, 0xF1, 0x8F, 0x90, 0x0A, 0x00, 0x00, 0xEA, 0x09, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA - .byte 0x01, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x00, 0xEA, 0xFF, 0xFF, 0xFF, 0xEA, 0xF0, 0x03, 0xD4, 0xE1 - .byte 0x01, 0x10, 0xA0, 0xE3, 0xC0, 0xE1, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0xA0, 0x03 - .byte 0x10, 0x80, 0xBD, 0x08, 0x18, 0x00, 0x84, 0xE2, 0x6A, 0xD1, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x04, 0x00, 0xA0, 0x13, 0x10, 0x80, 0xBD, 0x18, 0x18, 0x00, 0x84, 0xE2, 0xCD, 0xD4, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0x00, 0xA0, 0x13, 0x10, 0x80, 0xBD, 0x18, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x10, 0x80, 0xBD, 0xE8 - - arm_func_start DungeonSwapIdToIdx -DungeonSwapIdToIdx: @ 0x0206A714 - mov ip, #0 - ldr r3, _0206A74C @ =0x020A93E0 - b _0206A73C -_0206A720: - lsl r1, ip, #0x10 - ldrb r2, [r3, r1, asr #16] - asr r1, r1, #0x10 - cmp r2, r0 - moveq r0, r1 - bxeq lr - add ip, ip, #1 -_0206A73C: - cmp ip, #0xd5 - blt _0206A720 - mvn r0, #0 - bx lr - .align 2, 0 -_0206A74C: .4byte 0x020A93E0 - arm_func_end DungeonSwapIdToIdx - - arm_func_start DungeonSwapIdxToId -DungeonSwapIdxToId: @ 0x0206A750 - mvn r1, #0 - cmp r0, r1 - ldrne r1, _0206A768 @ =0x020A93E0 - moveq r0, #0xff - ldrbne r0, [r1, r0] - bx lr - .align 2, 0 -_0206A768: .4byte 0x020A93E0 - arm_func_end DungeonSwapIdxToId - - arm_func_start GetDungeonModeSpecial -GetDungeonModeSpecial: @ 0x0206A76C - push {r3, lr} - cmp r0, #0xd6 - moveq r0, #4 - popeq {r3, pc} - cmp r0, #0xb4 - blt _0206A790 - cmp r0, #0xd3 - movle r0, #3 - pople {r3, pc} -_0206A790: - cmp r0, #0xd7 - moveq r0, #2 - popeq {r3, pc} - cmp r0, #0xd8 - moveq r0, #3 - popeq {r3, pc} - bl GetDungeonMode - cmp r0, #1 - moveq r0, #1 - popeq {r3, pc} - sub r0, r0, #2 - cmp r0, #1 - movls r0, #2 - movhi r0, #1 - pop {r3, pc} - arm_func_end GetDungeonModeSpecial - - arm_func_start FUN_0206a7cc -FUN_0206a7cc: @ 0x0206A7CC - push {r4, lr} - mov r4, r0 - cmp r4, #0x3e8 - bne _0206A7F4 - mov r0, #0 - mov r1, #0x20 - bl LoadScriptVariableValue - lsl r0, r0, #0x10 - asr r4, r0, #0x10 - b _0206A82C -_0206A7F4: - ldr r0, _0206A848 @ =0x000003E9 - cmp r4, r0 - bne _0206A82C - bl FUN_0204e6fc - cmp r0, #2 - bne _0206A814 - bl FUN_0204e780 - b _0206A818 -_0206A814: - bl FUN_0204e770 -_0206A818: - cmp r0, #0xff - addne r0, r0, #1 - mvneq r4, #0 - lslne r0, r0, #0x10 - asrne r4, r0, #0x10 -_0206A82C: - cmp r4, #0xd1 - bne _0206A840 - bl GetExecuteSpecialEpisodeType - cmp r0, #4 - moveq r4, #0xd2 -_0206A840: - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_0206A848: .4byte 0x000003E9 - arm_func_end FUN_0206a7cc - - arm_func_start FUN_0206a84c -FUN_0206a84c: @ 0x0206A84C - cmp r0, #0xb4 - addlo r0, r0, #1 - lsllo r0, r0, #0x10 - asrlo r0, r0, #0x10 - bxlo lr - blo _0206A870 - cmp r0, #0xd3 - movls r0, #0xb8 - bxls lr -_0206A870: - mvn r0, #0 - bx lr - arm_func_end FUN_0206a84c - - arm_func_start FUN_0206a878 -FUN_0206a878: @ 0x0206A878 - push {r3, lr} - bl FUN_0206a7cc - mvn r1, #0 - cmp r0, r1 - ldrne r1, _0206A89C @ =0x020A94D0 - lslne r0, r0, #3 - ldrshne r1, [r1, r0] - mov r0, r1 - pop {r3, pc} - .align 2, 0 -_0206A89C: .4byte 0x020A94D0 - arm_func_end FUN_0206a878 - - arm_func_start FUN_0206a8a0 -FUN_0206a8a0: @ 0x0206A8A0 - push {r3, r4, r5, lr} - mov r4, r1 - bl FUN_0206a7cc - mov r5, r0 - mov r0, r4 - bl FUN_0206a7cc - mvn r1, #0 - cmp r5, r1 - mov r4, r0 - ldrne r0, _0206A908 @ =0x020A94D2 - lslne r2, r5, #3 - ldrshne r0, [r0, r2] - cmpne r0, r1 - movne r5, r0 - mvn r0, #0 - cmp r4, r0 - ldrne r1, _0206A908 @ =0x020A94D2 - lslne r2, r4, #3 - ldrshne r1, [r1, r2] - cmpne r1, r0 - movne r4, r1 - cmp r5, r4 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - pop {r3, r4, r5, pc} - .align 2, 0 -_0206A908: .4byte 0x020A94D2 - arm_func_end FUN_0206a8a0 - - arm_func_start FUN_0206a90c -FUN_0206a90c: @ 0x0206A90C - push {r3, lr} - bl FUN_0206a7cc - mvn r1, #0 - cmp r0, r1 - ldreq r0, _0206A964 @ =0x0000403A - popeq {r3, pc} - cmp r0, #0 - ldreq r0, _0206A968 @ =0x00004033 - popeq {r3, pc} - cmp r0, #1 - blt _0206A950 - cmp r0, #0xb4 - bgt _0206A950 - sub r0, r0, #1 - and r0, r0, #0xff - bl FUN_02024934 - pop {r3, pc} -_0206A950: - add r0, r0, #0x7f - add r0, r0, #0x3f00 - lsl r0, r0, #0x10 + mov r5, r1 + strb r2, [r4, #8] + bl FUN_0207AE44 lsr r0, r0, #0x10 - pop {r3, pc} - .align 2, 0 -_0206A964: .4byte 0x0000403A -_0206A968: .4byte 0x00004033 - arm_func_end FUN_0206a90c + orr r0, r0, r1, lsl #16 + str r0, [r4, #0x10] + ldrh r2, [r6, #0x12] + ldrh r3, [r6, #0x10] + mov r0, r5 + lsl r1, r2, #8 + orr r2, r1, r2, asr #8 + lsl r1, r3, #8 + orr r1, r1, r3, asr #8 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + lsr r3, r1, #0x10 + lsr r1, r2, #0x10 + orr r1, r1, r3, lsl #16 + str r1, [r4, #0x14] + ldrh r3, [r5] + mov r1, r4 + lsl r2, r3, #8 + orr r2, r2, r3, asr #8 + strh r2, [r4, #0x18] + ldrh r3, [r6, #0xe] + ldrh r6, [r6, #0xc] + lsl r2, r3, #8 + orr r3, r2, r3, asr #8 + lsl r2, r6, #8 + orr r2, r2, r6, asr #8 + lsl r2, r2, #0x10 + lsl r3, r3, #0x10 + lsr r6, r2, #0x10 + lsr r2, r3, #0x10 + orr r2, r2, r6, lsl #16 + str r2, [r4, #0x1c] + ldrh r6, [r5, #6] + ldrh r5, [r5, #4] + lsl r2, r6, #8 + lsl r3, r5, #8 + orr r5, r3, r5, asr #8 + orr r3, r2, r6, asr #8 + lsl r2, r5, #0x10 + lsl r3, r3, #0x10 + lsr r5, r2, #0x10 + lsr r2, r3, #0x10 + orr r2, r2, r5, lsl #16 + add r2, r2, #1 + str r2, [r4, #0x24] + bl ov00_022C9E44 + mov r0, r4 + mov r1, #0x12 + mov r2, #0 + bl ov00_022C9EE4 + pop {r4, r5, r6, pc} + arm_func_end ov00_022CA0BC - arm_func_start FUN_0206a96c -FUN_0206a96c: @ 0x0206A96C - push {r3, r4, r5, lr} + arm_func_start ov00_022CA1A8 +ov00_022CA1A8: @ 0x022CA1A8 + push {r4, r5, r6, lr} + mov r6, r0 mov r5, r1 mov r4, r2 - bl FUN_0206a7cc - mvn r2, #0 - cmp r0, r2 - moveq r0, r2 - popeq {r3, r4, r5, pc} - ldr r1, _0206A9D8 @ =0x020A94D0 - cmp r5, r2 - add r3, r1, r0, lsl #3 - ldrshne r1, [r3] - cmpne r1, r5 - movne r0, r2 - popne {r3, r4, r5, pc} - ldrsh r2, [r3, #2] - cmp r2, r0 - mvnne r1, #0 - cmpne r2, r1 - ldrne r1, _0206A9D8 @ =0x020A94D0 - movne r0, r2 - addne r3, r1, r2, lsl #3 - ldrsh r1, [r3, #4] - str r1, [r4] - ldrsh r1, [r3, #6] - str r1, [r4, #4] - pop {r3, r4, r5, pc} - .align 2, 0 -_0206A9D8: .4byte 0x020A94D0 - arm_func_end FUN_0206a96c + bl ov00_022C9DE0 + movs r2, r0 + beq _022CA228 + ldrb r0, [r2, #8] + cmp r0, #1 + bne _022CA1E0 + mov r0, r6 + mov r1, r5 + bl ov00_022CA0BC + b _022CA220 +_022CA1E0: + add r0, r0, #0xfd + and r0, r0, #0xff + cmp r0, #1 + bhi _022CA20C + ldr r1, [r2, #0x28] + mov r0, r6 + sub r3, r1, #1 + mov r1, r5 + str r3, [r2, #0x28] + bl ov00_022CA0BC + b _022CA220 +_022CA20C: + mov r0, r6 + mov r1, r5 + mov r2, r4 + mov r3, #0 + bl ov00_022C9F80 +_022CA220: + mov r0, #1 + pop {r4, r5, r6, pc} +_022CA228: + mov r0, #0 + pop {r4, r5, r6, pc} + arm_func_end ov00_022CA1A8 - arm_func_start FUN_0206a9dc -FUN_0206a9dc: @ 0x0206A9DC - push {r4, lr} - bl GetExecuteSpecialEpisodeType + arm_func_start ov00_022CA230 +ov00_022CA230: @ 0x022CA230 + push {r4, r5, r6, r7, r8, lr} mov r4, r0 - cmp r4, #4 - bne _0206AA24 - mov r0, #0x3e8 - bl FUN_0206a7cc - ldr r1, _0206AA34 @ =0x020A94D0 - lsl r0, r0, #3 - ldrsh r0, [r1, r0] - ldr r1, _0206AA38 @ =0xFFFFFED2 - add r1, r0, r1 + ldrh r0, [r4, #0x12] + ldrh r8, [r4, #0x10] + ldrh r7, [r4, #0xe] + ldrh r6, [r4, #0xc] + lsl ip, r8, #8 + orr ip, ip, r8, asr #8 + lsl r5, r6, #8 + lsl ip, ip, #0x10 + lsl lr, r7, #8 + orr r6, r5, r6, asr #8 + lsl r3, r0, #8 + orr r5, lr, r7, asr #8 + orr lr, r3, r0, asr #8 + lsl r0, r6, #0x10 + lsl r3, r5, #0x10 + lsr r5, r0, #0x10 + lsr r0, r3, #0x10 + lsl lr, lr, #0x10 + orr r0, r0, r5, lsl #16 + lsr ip, ip, #0x10 + lsr r3, lr, #0x10 + mov r6, r1 + orr r1, r3, ip, lsl #16 + mov r5, r2 + bl ov00_022C9B68 + cmp r0, #0 + popeq {r4, r5, r6, r7, r8, pc} + mov r0, r4 + mov r1, r6 + mov r2, r5 + bl ov00_022CA1A8 + cmp r0, #0 + popne {r4, r5, r6, r7, r8, pc} + mov r0, r4 + mov r1, r6 + bl ov00_022C9C58 + movs r2, r0 + beq _022CA2E0 + mov r0, r4 + mov r1, r6 + bl ov00_022CA0BC + pop {r4, r5, r6, r7, r8, pc} +_022CA2E0: + bl FUN_020799AC + mov r0, r4 + mov r1, r6 + bl ov00_022C9C58 + movs r2, r0 + popeq {r4, r5, r6, r7, r8, pc} + mov r0, r4 + mov r1, r6 + bl ov00_022CA0BC + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022CA230 + + arm_func_start ov00_022CA308 +ov00_022CA308: @ 0x022CA308 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + mov r5, r1 + mov r6, r2 + bl ov00_022C9DE0 + movs r4, r0 + beq _022CA330 + ldrb r0, [r4, #8] + cmp r0, #2 + beq _022CA348 +_022CA330: + mov r0, r7 + mov r1, r5 + mov r2, r6 + mov r3, #0 + bl ov00_022C9F80 + pop {r3, r4, r5, r6, r7, pc} +_022CA348: + bl FUN_020799AC + ldrh ip, [r5, #6] + ldrh r3, [r5, #4] + mov r0, r5 + lsl r1, ip, #8 + lsl r2, r3, #8 + orr r3, r2, r3, asr #8 + orr r2, r1, ip, asr #8 + lsl r1, r3, #0x10 + lsl r2, r2, #0x10 + lsr r3, r1, #0x10 + lsr r1, r2, #0x10 + orr r1, r1, r3, lsl #16 + add r1, r1, #1 + str r1, [r4, #0x24] + ldrh lr, [r5, #0xa] + ldrh ip, [r5, #8] + mov r1, r4 + lsl r2, lr, #8 + lsl r3, ip, #8 + orr ip, r3, ip, asr #8 + orr r3, r2, lr, asr #8 + lsl r2, ip, #0x10 + lsl r3, r3, #0x10 + lsr ip, r2, #0x10 + lsr r2, r3, #0x10 + orr r2, r2, ip, lsl #16 + str r2, [r4, #0x30] + ldrh r3, [r5, #0xe] + lsl r2, r3, #8 + orr r2, r2, r3, asr #8 + strh r2, [r4, #0x2c] + bl ov00_022C9E44 + mov r0, r4 + mov r1, #0 + bl ov00_022C9F58 + mov r0, #4 + strb r0, [r4, #8] + ldr r0, [r4, #4] + cmp r0, #1 + popne {r3, r4, r5, r6, r7, pc} + mov r0, #0 + str r0, [r4, #4] + ldr r0, [r4] + bl FUN_02079940 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022CA308 + + arm_func_start ov00_022CA400 +ov00_022CA400: @ 0x022CA400 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r4, r0 + mov sb, r1 + mov r8, r2 + bl ov00_022C9DE0 + movs r5, r0 + bne _022CA434 + mov r0, r4 + mov r1, sb + mov r2, r8 + mov r3, #0 + bl ov00_022C9F80 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022CA434: + ldrh r6, [sb, #0xa] + ldrh r3, [sb, #8] + ldr r2, [r5, #0x30] + lsl r0, r6, #8 + lsl r1, r3, #8 + orr r3, r1, r3, asr #8 + orr r1, r0, r6, asr #8 + lsl r0, r3, #0x10 lsl r1, r1, #0x10 - asr r1, r1, #0x10 + lsr r3, r0, #0x10 + lsr r0, r1, #0x10 + orr r1, r0, r3, lsl #16 + sub r0, r1, r2 + ldrb r6, [sb, #0xd] + cmp r0, #0 + strgt r1, [r5, #0x30] + ldrh r7, [sb, #6] + ldrh r3, [sb, #4] + ldrb r2, [r5, #8] + lsl r0, r7, #8 + lsl r1, r3, #8 + orr r3, r1, r3, asr #8 + orr r1, r0, r7, asr #8 + lsl r0, r3, #0x10 + lsl r1, r1, #0x10 + lsr r3, r0, #0x10 + lsr r0, r1, #0x10 + cmp r2, #4 + orr r1, r0, r3, lsl #16 + bne _022CA4C8 + ldr r0, [r5, #0x24] + cmp r0, r1 + beq _022CA4C8 + mov r0, r5 + mov r1, #0 + bl ov00_022C9F58 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022CA4C8: + ldrh r1, [sb, #0xe] + lsl r0, r1, #8 + orr r0, r0, r1, asr #8 + strh r0, [r5, #0x2c] + ldrb r0, [r5, #8] + cmp r0, #9 + addls pc, pc, r0, lsl #2 + b _022CA6F4 +_022CA4E8: @ jump table + b _022CA510 @ case 0 + b _022CA6F4 @ case 1 + b _022CA510 @ case 2 + b _022CA528 @ case 3 + b _022CA554 @ case 4 + b _022CA6F4 @ case 5 + b _022CA6D0 @ case 6 + b _022CA65C @ case 7 + b _022CA65C @ case 8 + b _022CA6D0 @ case 9 +_022CA510: + mov r0, r4 + mov r1, sb + mov r2, r8 + mov r3, #0 + bl ov00_022C9F80 + b _022CA710 +_022CA528: + mov r0, #4 + strb r0, [r5, #8] + ldr r0, [r5, #4] + cmp r0, #1 + bne _022CA54C + mov r0, #0 + str r0, [r5, #4] + ldr r0, [r5] + bl FUN_02079940 +_022CA54C: + cmp r8, #0 + beq _022CA710 +_022CA554: + ldr r0, [r5, #0x34] + add r0, r0, #1 + str r0, [r5, #0x34] + ldr r1, [r5, #0x3c] + ldr r0, [r5, #0x44] + sub r0, r1, r0 + cmp r8, r0 + movhi r7, #0 + movhi r8, r0 + movls r7, #1 + cmp r8, #0 + beq _022CA5F0 + bl FUN_0207B7E4 + ldrb r1, [sb, #0xc] + ldr ip, [r5, #0x40] + ldr r3, [r5, #0x44] + and r2, r1, #0xf0 + asr r1, r2, #1 + add r1, r2, r1, lsr #30 + mov r4, r0 + mov r2, r8 + add r0, sb, r1, asr #2 + add r1, ip, r3 + bl FUN_0207C4C8 + ldr r1, [r5, #0x44] + mov r0, r4 + add r1, r1, r8 + str r1, [r5, #0x44] + ldr r1, [r5, #0x24] + add r1, r1, r8 + str r1, [r5, #0x24] + bl FUN_0207B7F8 + ldr r0, [r5, #4] + cmp r0, #2 + bne _022CA5F0 + mov r0, #0 + str r0, [r5, #4] + ldr r0, [r5] + bl FUN_02079940 +_022CA5F0: + cmp r7, #0 + beq _022CA644 + tst r6, #1 + beq _022CA644 + mov r0, #6 + strb r0, [r5, #8] + ldr r1, [r5, #0x24] + mov r0, r5 + add r2, r1, #1 + mov r1, #0 + str r2, [r5, #0x24] + bl ov00_022C9F6C + cmp r8, #0 + ldreq r0, [r5, #4] + cmpeq r0, #2 + bne _022CA710 + mov r0, #0 + str r0, [r5, #4] + ldr r0, [r5] + bl FUN_02079940 + b _022CA710 +_022CA644: + cmp r8, #0 + beq _022CA710 + mov r0, r5 + mov r1, #0 + bl ov00_022C9F58 + b _022CA710 +_022CA65C: + tst r6, #1 + beq _022CA6A4 + ldr r1, [r5, #0x24] + add r0, r8, #1 + add r2, r1, r0 + mov r0, r5 + mov r1, #0 + str r2, [r5, #0x24] + bl ov00_022C9F58 + mov r1, #0 + strb r1, [r5, #8] + ldr r0, [r5, #4] + cmp r0, #2 + bne _022CA710 + str r1, [r5, #4] + ldr r0, [r5] + bl FUN_02079940 + b _022CA710 +_022CA6A4: + cmp r8, #0 + beq _022CA6C4 + ldr r1, [r5, #0x24] + mov r0, r5 + add r2, r1, r8 + mov r1, #0 + str r2, [r5, #0x24] + bl ov00_022C9F58 +_022CA6C4: + mov r0, #8 + strb r0, [r5, #8] + b _022CA710 +_022CA6D0: + mov r1, #0 + strb r1, [r5, #8] + ldr r0, [r5, #4] + cmp r0, #2 + bne _022CA710 + str r1, [r5, #4] + ldr r0, [r5] + bl FUN_02079940 + b _022CA710 +_022CA6F4: + tst r6, #1 + ldrne r0, [r5, #0x24] + mov r1, #0 + addne r0, r0, #1 + strne r0, [r5, #0x24] + mov r0, r5 + bl ov00_022C9F58 +_022CA710: + bl FUN_020799AC + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_022CA400 + + arm_func_start ov00_022CA718 +ov00_022CA718: @ 0x022CA718 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + mov r6, r1 + mov r5, r2 + bl ov00_022C9DE0 + movs r4, r0 + popeq {r3, r4, r5, r6, r7, pc} + ldrb r1, [r4, #8] + cmp r1, #4 + beq _022CA7AC + cmp r1, #7 + beq _022CA754 + cmp r1, #8 + beq _022CA774 + b _022CA7CC +_022CA754: + ldr r2, [r4, #0x24] + mov r1, #0 + add r2, r2, #1 + str r2, [r4, #0x24] + bl ov00_022C9F58 + mov r0, #9 + strb r0, [r4, #8] + pop {r3, r4, r5, r6, r7, pc} +_022CA774: + ldr r2, [r4, #0x24] + mov r1, #0 + add r2, r2, #1 + str r2, [r4, #0x24] + bl ov00_022C9F58 + mov r1, #0 + strb r1, [r4, #8] + ldr r0, [r4, #4] + cmp r0, #2 + popne {r3, r4, r5, r6, r7, pc} + str r1, [r4, #4] + ldr r0, [r4] + bl FUN_02079940 + pop {r3, r4, r5, r6, r7, pc} +_022CA7AC: + ldr r2, [r4, #0x24] + mov r1, #0 + add r2, r2, #1 + str r2, [r4, #0x24] + bl ov00_022C9F6C + mov r0, #6 + strb r0, [r4, #8] + pop {r3, r4, r5, r6, r7, pc} +_022CA7CC: + mov r0, r7 + mov r1, r6 + mov r2, r5 + mov r3, #0 + bl ov00_022C9F80 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022CA718 + + arm_func_start ov00_022CA7E4 +ov00_022CA7E4: @ 0x022CA7E4 + push {r4, lr} + bl ov00_022C9DE0 + movs r4, r0 + popeq {r4, pc} + bl FUN_020799AC + mov r1, #0 + strb r1, [r4, #8] + ldr r0, [r4, #4] + sub r0, r0, #1 + cmp r0, #1 + pophi {r4, pc} + str r1, [r4, #4] + ldr r0, [r4] + bl FUN_02079940 + pop {r4, pc} + arm_func_end ov00_022CA7E4 + + arm_func_start ov00_022CA820 +ov00_022CA820: @ 0x022CA820 + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + mov r0, r5 + mov r1, r4 + mov r2, r6 + mov r3, #6 + bl ov00_022C8674 + cmp r0, #0 + popne {r4, r5, r6, pc} + ldrb r0, [r5, #0xc] + ldrb r2, [r5, #0xd] + and r1, r0, #0xf0 + asr r0, r1, #1 + add r0, r1, r0, lsr #30 + and r1, r2, #0x17 + cmp r1, #0x10 + sub r4, r4, r0, asr #2 + bgt _022CA898 + cmp r1, #0x10 + bge _022CA8F0 + cmp r1, #2 + bgt _022CA918 + cmp r1, #1 + blt _022CA918 + beq _022CA904 + cmp r1, #2 + beq _022CA8B8 + b _022CA918 +_022CA898: + cmp r1, #0x12 + bgt _022CA918 + cmp r1, #0x11 + blt _022CA918 + beq _022CA8F0 + cmp r1, #0x12 + beq _022CA8D4 + b _022CA918 +_022CA8B8: + tst r2, #0x28 + popne {r4, r5, r6, pc} + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov00_022CA230 + pop {r4, r5, r6, pc} +_022CA8D4: + tst r2, #0x28 + popne {r4, r5, r6, pc} + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov00_022CA308 + pop {r4, r5, r6, pc} +_022CA8F0: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov00_022CA400 + pop {r4, r5, r6, pc} +_022CA904: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov00_022CA718 + pop {r4, r5, r6, pc} +_022CA918: + tst r2, #4 + mov r0, r6 + mov r1, r5 + beq _022CA930 + bl ov00_022CA7E4 + pop {r4, r5, r6, pc} +_022CA930: + mov r2, r4 + mov r3, #0 + bl ov00_022C9F80 + pop {r4, r5, r6, pc} + arm_func_end ov00_022CA820 + + arm_func_start ov00_022CA940 +ov00_022CA940: @ 0x022CA940 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r7, r1 + ldrh r1, [r7, #6] + mov r8, r0 + mov r6, r2 + cmp r1, #0 + beq _022CA978 + mov r0, r7 + mov r1, r6 + mov r2, r8 + mov r3, #0x11 + bl ov00_022C8674 + cmp r0, #0 + popne {r3, r4, r5, r6, r7, r8, sb, pc} +_022CA978: + bl FUN_0207B7E4 + ldr r1, _022CAB48 @ =0x022B966C + mov r5, r0 + ldr r1, [r1, #8] + cmp r1, #0 + beq _022CAB3C + mvn ip, #0 +_022CA994: + ldr r4, [r1, #0xa4] + cmp r4, #0 + ldrne r0, [r4] + cmpne r0, #0 + beq _022CAB30 + ldrb r0, [r4, #8] + cmp r0, #0xa + bne _022CAB30 + ldrh r3, [r7, #2] + ldrh r2, [r4, #0xa] + lsl r0, r3, #8 + orr r0, r0, r3, asr #8 + lsl r0, r0, #0x10 + cmp r2, r0, lsr #16 + bne _022CAB30 + ldrh r3, [r4, #0x18] + cmp r3, #0 + beq _022CA9F4 + ldrh r2, [r7] + lsl r0, r2, #8 + orr r0, r0, r2, asr #8 + lsl r0, r0, #0x10 + cmp r3, r0, lsr #16 + bne _022CAB30 +_022CA9F4: + ldr r0, [r4, #0x1c] + cmp r0, #0 + cmpne r0, ip + beq _022CAA38 + ldrh sb, [r8, #0xe] + ldrh lr, [r8, #0xc] + lsl r2, sb, #8 + lsl r3, lr, #8 + orr lr, r3, lr, asr #8 + orr r3, r2, sb, asr #8 + lsl r2, lr, #0x10 + lsl r3, r3, #0x10 + lsr lr, r2, #0x10 + lsr r2, r3, #0x10 + orr r2, r2, lr, lsl #16 + cmp r0, r2 + bne _022CAB30 +_022CAA38: + ldrh r3, [r8, #0x12] + ldrh r2, [r8, #0x10] + lsl r0, r3, #8 + lsl r1, r2, #8 + orr r2, r1, r2, asr #8 + orr r1, r0, r3, asr #8 + lsl r0, r2, #0x10 + lsl r1, r1, #0x10 + lsr r2, r0, #0x10 + lsr r0, r1, #0x10 + orr r0, r0, r2, lsl #16 + str r0, [r4, #0x14] + ldr r0, [r4, #0x1c] + cmp r0, #0 + bne _022CAAB4 + ldrh r3, [r8, #0xe] + ldrh r2, [r8, #0xc] + lsl r0, r3, #8 + lsl r1, r2, #8 + orr r2, r1, r2, asr #8 + orr r1, r0, r3, asr #8 + lsl r0, r2, #0x10 + lsl r1, r1, #0x10 + lsr r2, r0, #0x10 + lsr r0, r1, #0x10 + orr r0, r0, r2, lsl #16 + str r0, [r4, #0x1c] + ldrh r1, [r7] + lsl r0, r1, #8 + orr r0, r0, r1, asr #8 + strh r0, [r4, #0x18] +_022CAAB4: + ldr r0, [r4, #0x44] + cmp r0, #0 + bne _022CAB3C + ldr r1, [r4, #0x3c] + sub r0, r6, #8 + cmp r0, r1 + strhi r1, [r4, #0x44] + strls r0, [r4, #0x44] + ldr r1, [r4, #0x40] + ldr r2, [r4, #0x44] + add r0, r7, #8 + bl FUN_0207C4C8 + ldr r0, [r4, #4] + cmp r0, #3 + bne _022CAB04 + mov r0, #0 + str r0, [r4, #4] + ldr r0, [r4] + bl FUN_02079940 + b _022CAB3C +_022CAB04: + ldr r3, [r4, #0x38] + cmp r3, #0 + beq _022CAB3C + ldr r0, [r4, #0x40] + ldr r1, [r4, #0x44] + mov r2, r4 + blx r3 + cmp r0, #0 + movne r0, #0 + strne r0, [r4, #0x44] + b _022CAB3C +_022CAB30: + ldr r1, [r1, #0x68] + cmp r1, #0 + bne _022CA994 +_022CAB3C: + mov r0, r5 + bl FUN_0207B7F8 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022CAB48: .4byte 0x022B966C + arm_func_end ov00_022CA940 + + arm_func_start ov00_022CAB4C +ov00_022CAB4C: @ 0x022CAB4C + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0xc + mov r6, #0 + mov sl, r0 + str r6, [r1] + ldrh r3, [sl, #6] + str r1, [sp] + ldr r2, _022CAE08 @ =0x00003FFF + lsl r1, r3, #8 + orr r1, r1, r3, asr #8 lsl r1, r1, #0x10 lsr r1, r1, #0x10 - cmp r1, #1 - popls {r4, pc} -_0206AA24: - ldr r0, _0206AA3C @ =0x020A94C6 - lsl r1, r4, #1 - ldrsh r0, [r0, r1] - pop {r4, pc} + str r1, [sp, #8] + tst r1, r2 + addeq sp, sp, #0xc + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrh r3, [sl, #0xe] + ldrh r2, [sl, #0xc] + ldrb r4, [sl] + lsl r0, r3, #8 + lsl r1, r2, #8 + orr r2, r1, r2, asr #8 + orr r1, r0, r3, asr #8 + lsl r3, r4, #0x1c + lsl r0, r2, #0x10 + lsl r1, r1, #0x10 + lsr r2, r0, #0x10 + lsr r1, r1, #0x10 + ldrh r4, [sl, #4] + ldr r7, _022CAE0C @ =0x023253A0 + mov r0, r6 + lsr r5, r3, #0x1a + orr sb, r1, r2, lsl #16 +_022CABD0: + ldrh r2, [r7, #4] + cmp r2, #0 + beq _022CABF0 + ldr r1, [r7] + cmp r1, sb + ldrheq r1, [r7, #6] + cmpeq r1, r4 + beq _022CAC0C +_022CABF0: + add r0, r0, #1 + cmp r2, #0 + cmpeq r6, #0 + moveq r6, r7 + cmp r0, #8 + add r7, r7, #0x38 + blo _022CABD0 +_022CAC0C: + ldrh r2, [sl, #2] + cmp r0, #8 + ldr r1, _022CAE10 @ =0x00001FFF + lsl r0, r2, #8 + orr r0, r0, r2, asr #8 + lsl r0, r0, #0x10 + rsb r0, r5, r0, lsr #16 + str r0, [sp, #4] + ldr r0, [sp, #8] + and fp, r0, r1 + ldr r0, [sp, #4] + add r8, r0, fp, lsl #3 + bne _022CACC8 + cmp r6, #0 + beq _022CAC50 + cmp r8, #0x1000 + bls _022CAC5C +_022CAC50: + add sp, sp, #0xc + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022CAC5C: + ldr r1, _022CAE14 @ =0x02325078 + add r0, r5, #0xe + ldr r1, [r1, #0x14] + add r0, r0, #0x1000 + mov r7, r6 + blx r1 + cmp r0, #0 + str r0, [r6, #0x34] + addeq sp, sp, #0xc + mov r0, #0 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + str sb, [r6] + strh r4, [r6, #6] + strh r0, [r6, #8] + bl FUN_0207AE44 + lsr r0, r0, #0x10 + orr r0, r0, r1, lsl #16 + str r0, [r6, #0x2c] + ldr r1, [r6, #0x34] + mov r0, sl + add r1, r1, #0xe + add r1, r1, r5 + str r1, [r6, #0x30] + ldr r1, [r6, #0x34] + mov r2, r5 + add r1, r1, #0xe + bl FUN_0207C4C8 +_022CACC8: + ldrh r0, [r7, #4] + cmp r0, #8 + beq _022CACDC + cmp r8, #0x1000 + bls _022CAD00 +_022CACDC: + ldr r1, _022CAE14 @ =0x02325078 + mov r0, #0 + strh r0, [r7, #4] + ldr r0, [r7, #0x34] + ldr r1, [r1, #0x40] + blx r1 + add sp, sp, #0xc + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022CAD00: + ldr r0, [sp, #4] + ldr r2, [sp, #4] + add r1, r0, #7 + ldr r0, [sp, #8] + add r3, fp, r1, lsr #3 + tst r0, #0x2000 + strheq r8, [r7, #0xa] + strheq r3, [r7, #8] + ldrh r1, [r7, #4] + add r0, sl, r5 + add r1, r7, r1, lsl #1 + strh fp, [r1, #0xc] + ldrh r1, [r7, #4] + add r1, r7, r1, lsl #1 + strh r3, [r1, #0x1c] + ldrh r1, [r7, #4] + add r1, r1, #1 + strh r1, [r7, #4] + ldr r1, [r7, #0x30] + add r1, r1, fp, lsl #3 + bl FUN_0207C4C8 + ldrh r4, [r7, #8] + cmp r4, #0 + addeq sp, sp, #0xc + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrh r3, [r7, #4] + mov r6, #0 + mov r5, r6 + cmp r3, #0 + bls _022CADB0 + mov r0, r6 +_022CAD80: + add r2, r7, r5, lsl #1 + ldrh r1, [r2, #0xc] + cmp r1, r6 + bhi _022CADA4 + ldrh r1, [r2, #0x1c] + cmp r6, r1 + movlo r6, r1 + movlo r5, r0 + blo _022CADA8 +_022CADA4: + add r5, r5, #1 +_022CADA8: + cmp r5, r3 + blo _022CAD80 +_022CADB0: + cmp r6, r4 + addlo sp, sp, #0xc + movlo r0, #0 + poplo {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r4, [r7, #0x34] + ldrh r3, [r7, #0xa] + ldrb r0, [r4, #0xe] + mov r2, #0 + mov r1, #1 + lsl r0, r0, #0x1c + add r0, r3, r0, lsr #26 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + lsl r0, r3, #8 + orr r0, r0, r3, asr #8 + strh r0, [r4, #0x10] + ldr r0, [sp] + strh r2, [r7, #4] + str r1, [r0] + add r0, r4, #0xe + add sp, sp, #0xc + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 -_0206AA34: .4byte 0x020A94D0 -_0206AA38: .4byte 0xFFFFFED2 -_0206AA3C: .4byte 0x020A94C6 - arm_func_end FUN_0206a9dc +_022CAE08: .4byte 0x00003FFF +_022CAE0C: .4byte 0x023253A0 +_022CAE10: .4byte 0x00001FFF +_022CAE14: .4byte 0x02325078 + arm_func_end ov00_022CAB4C - arm_func_start FUN_0206aa40 -FUN_0206aa40: @ 0x0206AA40 + arm_func_start ov00_022CAE18 +ov00_022CAE18: @ 0x022CAE18 + push {r3, r4, r5, r6, r7, lr} + mov r4, r0 + ldrh r7, [r4, #0xe] + ldrh r6, [r4, #0xc] + ldrh lr, [r4, #0x12] + ldrh r5, [r4, #0x10] + lsl r2, r6, #8 + lsl r3, lr, #8 + lsl ip, r5, #8 + lsl r0, r7, #8 + orr r5, ip, r5, asr #8 + orr lr, r3, lr, asr #8 + orr r3, r2, r6, asr #8 + orr ip, r0, r7, asr #8 + lsl r0, r5, #0x10 + lsl r2, lr, #0x10 + lsl r3, r3, #0x10 + lsl ip, ip, #0x10 + lsr lr, r0, #0x10 + lsr r0, r2, #0x10 + lsr r3, r3, #0x10 + lsr r2, ip, #0x10 + orr r0, r0, lr, lsl #16 + orr r2, r2, r3, lsl #16 + mov r5, r1 + cmp r0, r2 + beq _022CAF3C + bl ov00_022C8778 + cmp r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldrh r1, [r4, #2] + lsl r0, r1, #8 + orr r0, r0, r1, asr #8 + lsl r0, r0, #0x10 + cmp r5, r0, lsr #16 + poplo {r3, r4, r5, r6, r7, pc} + ldrb r1, [r4] + mov r0, r4 + lsl r1, r1, #0x1c + lsr r1, r1, #0x1a + bl ov00_022C8658 + ldr r1, _022CAFD4 @ =0x0000FFFF + cmp r0, r1 + popne {r3, r4, r5, r6, r7, pc} + ldrh ip, [r4, #0x12] + ldrh r3, [r4, #0x10] + ldr r2, _022CAFD8 @ =0x02325078 + lsl r0, ip, #8 + lsl r1, r3, #8 + orr r3, r1, r3, asr #8 + orr r1, r0, ip, asr #8 + lsl r0, r3, #0x10 + lsl r1, r1, #0x10 + lsr r3, r0, #0x10 + lsr r0, r1, #0x10 + ldr r1, [r2, #0x50] + orr r0, r0, r3, lsl #16 + cmp r1, r0 + bne _022CAF3C + ldrh ip, [r4, #0xe] + ldrh r3, [r4, #0xc] + sub r0, r4, #8 + lsl r1, ip, #8 + lsl r2, r3, #8 + orr r3, r2, r3, asr #8 + orr r2, r1, ip, asr #8 + lsl r1, r3, #0x10 + lsl r2, r2, #0x10 + lsr r3, r1, #0x10 + lsr r1, r2, #0x10 + orr r1, r1, r3, lsl #16 + mov r2, #1 + bl ov00_022C8E0C +_022CAF3C: + add r1, sp, #0 + mov r0, r4 + bl ov00_022CAB4C + movs r4, r0 + popeq {r3, r4, r5, r6, r7, pc} + ldrh r2, [r4, #2] + ldrb r3, [r4] + ldrb ip, [r4, #9] + lsl r1, r2, #8 + orr r1, r1, r2, asr #8 + lsl r1, r1, #0x10 + lsl r3, r3, #0x1c + lsr r2, r1, #0x10 + cmp ip, #0x11 + add r1, r4, r3, lsr #26 + sub r2, r2, r3, lsr #26 + bne _022CAF88 + bl ov00_022CA940 + b _022CAFB4 +_022CAF88: + ldr r3, _022CAFD8 @ =0x02325078 + ldr r3, [r3, #0x50] + cmp r3, #0 + beq _022CAFB4 + cmp ip, #1 + bne _022CAFA8 + bl ov00_022C9B88 + b _022CAFB4 +_022CAFA8: + cmp ip, #6 + bne _022CAFB4 + bl ov00_022CA820 +_022CAFB4: + ldr r0, [sp] + cmp r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldr r1, _022CAFD8 @ =0x02325078 + sub r0, r4, #0xe + ldr r1, [r1, #0x40] + blx r1 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022CAFD4: .4byte 0x0000FFFF +_022CAFD8: .4byte 0x02325078 + arm_func_end ov00_022CAE18 + + arm_func_start ov00_022CAFDC +ov00_022CAFDC: @ 0x022CAFDC + push {r3, r4, r5, lr} + ldr r5, _022CB048 @ =0x00000806 + add r4, sp, #0 +_022CAFE8: + mov r0, r4 + bl ov00_022C8ACC + ldr r3, [sp] + cmp r3, #0x22 + bls _022CB040 + ldrh r2, [r0, #0xc] + lsl r1, r2, #8 + orr r1, r1, r2, asr #8 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + cmp r1, #0x800 + beq _022CB024 + cmp r1, r5 + beq _022CB034 + b _022CB040 +_022CB024: + add r0, r0, #0xe + sub r1, r3, #0xe + bl ov00_022CAE18 + b _022CB040 +_022CB034: + add r0, r0, #0xe + sub r1, r3, #0xe + bl ov00_022C9840 +_022CB040: + bl ov00_022C8B8C + b _022CAFE8 + .align 2, 0 +_022CB048: .4byte 0x00000806 + arm_func_end ov00_022CAFDC + + arm_func_start ov00_022CB04C +ov00_022CB04C: @ 0x022CB04C + push {r4, r5, r6, r7, r8, lr} + ldr r0, _022CB0E8 @ =0x022B966C + ldr r2, _022CB0EC @ =0x02325078 + ldr r0, [r0, #8] + ldr r1, _022CB0F0 @ =0x00001388 + mov r4, #0x400 + mov r3, #1 + mov r5, #0 +_022CB06C: + ldrh ip, [r2, #8] + mov r6, r5 + add ip, ip, #1 + strh ip, [r2, #8] + ldrh ip, [r2, #8] + cmp ip, #0x400 + blo _022CB090 + cmp ip, r1 + blo _022CB094 +_022CB090: + strh r4, [r2, #8] +_022CB094: + mov r7, r0 + cmp r0, #0 + beq _022CB0D4 + ldrh r8, [r2, #8] +_022CB0A4: + ldr lr, [r7, #0xa4] + cmp lr, #0 + ldrne ip, [lr] + cmpne ip, #0 + beq _022CB0C8 + ldrh ip, [lr, #0xa] + cmp ip, r8 + moveq r6, r3 + beq _022CB0D4 +_022CB0C8: + ldr r7, [r7, #0x68] + cmp r7, #0 + bne _022CB0A4 +_022CB0D4: + cmp r6, #0 + bne _022CB06C + ldr r0, _022CB0EC @ =0x02325078 + ldrh r0, [r0, #8] + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022CB0E8: .4byte 0x022B966C +_022CB0EC: .4byte 0x02325078 +_022CB0F0: .4byte 0x00001388 + arm_func_end ov00_022CB04C + + arm_func_start ov00_022CB0F4 +ov00_022CB0F4: @ 0x022CB0F4 push {r3, lr} - bl GetExecuteSpecialEpisodeType - ldr r1, _0206AA58 @ =0x020A94BC - lsl r0, r0, #1 - ldrsh r0, [r1, r0] + ldr r1, _022CB134 @ =0x02325078 + ldr r3, [r1, #0x70] + ldr r2, [r1, #0x68] + ldr r0, [r1, #0x6c] + umull lr, ip, r3, r2 + mla ip, r3, r0, ip + ldr r0, [r1, #0x74] + ldr r3, [r1, #0x78] + mla ip, r0, r2, ip + ldr r0, [r1, #0x7c] + adds r2, r3, lr + str r2, [r1, #0x68] + adc r0, r0, ip + str r0, [r1, #0x6c] pop {r3, pc} .align 2, 0 -_0206AA58: .4byte 0x020A94BC - arm_func_end FUN_0206aa40 +_022CB134: .4byte 0x02325078 + arm_func_end ov00_022CB0F4 - arm_func_start FUN_0206aa5c -FUN_0206aa5c: @ 0x0206AA5C - push {r4, r5, r6, r7, r8, sb, sl, lr} - mov r5, r0 - mov r0, #0x40 - mov r1, #1 - bl MemAlloc - ldr r2, _0206AB90 @ =0x020B0B4C - mov r1, #0x40 - str r0, [r2, #8] - bl MemZero - ldr r0, _0206AB90 @ =0x020B0B4C - mov r1, #0x20 - ldr r4, [r0, #8] - add r0, r4, #4 - bl MemZero - mov r1, #0 - str r1, [r4, #0x20] - ldr r0, _0206AB90 @ =0x020B0B4C - strh r1, [r4, #0x1c] - ldr r1, [r0, #8] - str r5, [r1] - ldr r2, [r0, #8] - ldr r0, [r2] - cmp r0, #1 - bne _0206AB3C - ldr r0, _0206AB94 @ =0x00001F64 - mov r1, #6 - add r4, r2, #4 - bl MemAlloc - ldr r1, _0206AB94 @ =0x00001F64 - mov r5, r0 - bl MemZero - mov r8, #0x58 - mov sl, #0 - mvn r7, #0 - mov r6, r8 -_0206AAE8: - mul sb, sl, r6 - mov r1, r8 - add r0, r5, sb - bl MemZero - add sl, sl, #1 - strh r7, [r5, sb] - cmp sl, #0x50 - blt _0206AAE8 - add r0, r5, #0x1000 - ldr r2, _0206AB90 @ =0x020B0B4C - str r4, [r0, #0xf5c] - ldr r0, [r2, #8] - mov r1, #5 - str r5, [r0, #0x28] - ldr r0, [r2, #8] - add r0, r0, #4 - bl FUN_0206bbe0 - ldr r1, _0206AB90 @ =0x020B0B4C - ldr r1, [r1, #8] - str r0, [r1, #0x24] - b _0206AB5C -_0206AB3C: - cmp r0, #2 - bne _0206AB5C - add r0, r2, #4 - mov r1, #4 - bl FUN_0206bbe0 - ldr r1, _0206AB90 @ =0x020B0B4C - ldr r1, [r1, #8] - str r0, [r1, #0x24] -_0206AB5C: - ldr r1, _0206AB90 @ =0x020B0B4C - mov r3, #0 - ldr r2, [r1, #8] - mov r0, #0x80 - str r3, [r2, #0x2c] - ldr r2, [r1, #8] - strb r3, [r2, #0x30] - ldr r2, [r1, #8] - str r3, [r2, #0x34] - ldr r1, [r1, #8] - strb r3, [r1, #0x31] - bl FUN_022C2340 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_0206AB90: .4byte 0x020B0B4C -_0206AB94: .4byte 0x00001F64 - arm_func_end FUN_0206aa5c - - arm_func_start FUN_0206ab98 -FUN_0206ab98: @ 0x0206AB98 - ldr r0, _0206ABAC @ =0x020B0B4C - mov r1, #1 - ldr r0, [r0, #8] - strb r1, [r0, #0x30] + arm_func_start ov00_022CB138 +ov00_022CB138: @ 0x022CB138 + ldr r1, _022CB148 @ =0x022B966C + ldr r1, [r1, #4] + str r0, [r1, #0xa4] bx lr .align 2, 0 -_0206ABAC: .4byte 0x020B0B4C - arm_func_end FUN_0206ab98 +_022CB148: .4byte 0x022B966C + arm_func_end ov00_022CB138 - arm_func_start FUN_0206abb0 -FUN_0206abb0: @ 0x0206ABB0 - push {r3, r4, r5, lr} - sub sp, sp, #0x18 - ldr r0, _0206AD28 @ =0x020B0B4C - ldr r4, [r0, #8] - cmp r4, #0 - ldrbne r0, [r4, #0x30] - cmpne r0, #0 - beq _0206AD1C - ldr r0, [r4] - ldr r1, _0206AD2C @ =0x020B0B5C - cmp r0, #1 - movne r5, #1 - moveq r5, #0 - ldr r1, [r1, r5, lsl #3] - add r0, sp, #8 - mov r2, #6 - bl LoadWteFromRom - ldr r0, _0206AD30 @ =0x020B0B60 + arm_func_start ov00_022CB14C +ov00_022CB14C: @ 0x022CB14C + ldr r0, _022CB160 @ =0x022B966C mov r1, #0 - ldr r0, [r0, r5, lsl #3] - bl FUN_0201df38 - str r0, [r4, #0x14] - mov r2, #0 - ldr r1, [r4, #0x20] - add r0, sp, #8 - mov r3, r2 - bl FUN_0201e12c - add r0, sp, #8 - bl FUN_0201e13c - ldr r1, [r4, #0x20] - add r0, sp, #0x10 - str r1, [r4, #0x18] - ldr r2, [r4, #0x20] - ldr r1, _0206AD34 @ =0x020A9F34 - add r2, r2, #0x8000 - str r2, [r4, #0x20] - mov r2, #6 - bl LoadWteFromRom - ldr r0, _0206AD38 @ =0x020A9F48 - mov r1, #0 - bl FUN_0201df38 - str r0, [r4, #4] - ldr r1, [r4, #0x20] - add r0, sp, #0x10 - mov r2, #1 - mov r3, #0 - bl FUN_0201e12c - add r0, sp, #0x10 - bl FUN_0201e13c - ldr r1, [r4, #0x20] - add r0, sp, #0x10 - str r1, [r4, #8] - ldr r2, [r4, #0x20] - ldr r1, _0206AD3C @ =0x020A9F5C - add r2, r2, #0x2000 - str r2, [r4, #0x20] - mov r2, #6 - bl LoadWteFromRom - ldr r0, _0206AD40 @ =0x020A9F70 - mov r1, #0 - bl FUN_0201df38 - str r0, [r4, #0xc] - ldr r1, [r4, #0x20] - add r0, sp, #0x10 - mov r2, #2 - mov r3, #0 - bl FUN_0201e12c - add r0, sp, #0x10 - bl FUN_0201e13c - ldr r0, [r4, #0x20] - mov r2, #0 - str r0, [r4, #0x10] - ldr r1, [r4, #0x20] - ldr r0, _0206AD44 @ =0x020AFC68 - add r1, r1, #0x4000 - str r1, [r4, #0x20] - ldr r0, [r0] - ldr r1, _0206AD48 @ =0x020A9F84 - bl LoadWanTableEntry - strh r0, [r4, #0x1c] - mov r3, #1 - str r3, [sp] - mov r2, #0 - str r2, [sp, #4] - ldrsh r0, [r4, #0x1c] - mov r1, #0x2c0 - bl FUN_0201d9c8 - ldr r0, _0206AD28 @ =0x020B0B4C - mov r1, #0 - ldr r0, [r0, #8] - strb r1, [r0, #0x30] -_0206AD1C: - mov r0, #1 - add sp, sp, #0x18 - pop {r3, r4, r5, pc} - .align 2, 0 -_0206AD28: .4byte 0x020B0B4C -_0206AD2C: .4byte 0x020B0B5C -_0206AD30: .4byte 0x020B0B60 -_0206AD34: .4byte 0x020A9F34 -_0206AD38: .4byte 0x020A9F48 -_0206AD3C: .4byte 0x020A9F5C -_0206AD40: .4byte 0x020A9F70 -_0206AD44: .4byte 0x020AFC68 -_0206AD48: .4byte 0x020A9F84 - arm_func_end FUN_0206abb0 - - arm_func_start FUN_0206ad4c -FUN_0206ad4c: @ 0x0206AD4C - ldr r0, _0206AD7C @ =0x020B0B4C - ldr r0, [r0, #8] - cmp r0, #0 - beq _0206AD74 - ldrb r0, [r0, #0x31] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr -_0206AD74: - mov r0, #0 + ldr r0, [r0, #4] + str r1, [r0, #0xa4] bx lr .align 2, 0 -_0206AD7C: .4byte 0x020B0B4C - arm_func_end FUN_0206ad4c +_022CB160: .4byte 0x022B966C + arm_func_end ov00_022CB14C - arm_func_start FUN_0206ad80 -FUN_0206ad80: @ 0x0206AD80 - ldr r0, _0206AD9C @ =0x020B0B4C - ldr r1, [r0, #8] + arm_func_start ov00_022CB164 +ov00_022CB164: @ 0x022CB164 + ldr r0, _022CB18C @ =0x022B966C + ldr r0, [r0, #4] + ldr r1, [r0, #0xa4] cmp r1, #0 - ldrne r0, [r1, #0x34] - addne r0, r0, #1 - strne r0, [r1, #0x34] + bxeq lr + mov r0, #0xa + strb r0, [r1, #8] + mov r0, #0 + str r0, [r1, #0x44] bx lr .align 2, 0 -_0206AD9C: .4byte 0x020B0B4C - arm_func_end FUN_0206ad80 +_022CB18C: .4byte 0x022B966C + arm_func_end ov00_022CB164 - arm_func_start FUN_0206ada0 -FUN_0206ada0: @ 0x0206ADA0 - ldr r1, _0206ADB4 @ =0x020B0B4C - ldr r1, [r1, #8] + arm_func_start ov00_022CB190 +ov00_022CB190: @ 0x022CB190 + push {r4, lr} + ldr r3, _022CB1E4 @ =0x022B966C + ldr r3, [r3, #4] + ldr r4, [r3, #0xa4] + cmp r4, #0 + popeq {r4, pc} + ldr r3, _022CB1E8 @ =0x7F000001 + cmp r2, r3 + ldreq r2, _022CB1EC @ =0x02325078 + ldreq r2, [r2, #0x50] + cmp r0, #0 + strh r1, [r4, #0x1a] + ldrh r1, [r4, #0x1a] + strh r1, [r4, #0x18] + str r2, [r4, #0x20] + str r2, [r4, #0x1c] + strhne r0, [r4, #0xa] + popne {r4, pc} + bl ov00_022CB04C + strh r0, [r4, #0xa] + pop {r4, pc} + .align 2, 0 +_022CB1E4: .4byte 0x022B966C +_022CB1E8: .4byte 0x7F000001 +_022CB1EC: .4byte 0x02325078 + arm_func_end ov00_022CB190 + + arm_func_start ov00_022CB1F0 +ov00_022CB1F0: @ 0x022CB1F0 + ldr r0, _022CB220 @ =0x022B966C + ldr r0, [r0, #4] + ldr r1, [r0, #0xa4] + cmp r1, #0 + bxeq lr + str r0, [r1] + mov r0, #0 + strb r0, [r1, #8] + str r0, [r1, #0x44] + str r0, [r1, #0x60] + str r0, [r1, #0x38] + bx lr + .align 2, 0 +_022CB220: .4byte 0x022B966C + arm_func_end ov00_022CB1F0 + + arm_func_start ov00_022CB224 +ov00_022CB224: @ 0x022CB224 + ldr r0, _022CB240 @ =0x022B966C + ldr r0, [r0, #4] + ldr r1, [r0, #0xa4] + cmp r1, #0 + movne r0, #0 + strne r0, [r1] + bx lr + .align 2, 0 +_022CB240: .4byte 0x022B966C + arm_func_end ov00_022CB224 + + arm_func_start ov00_022CB244 +ov00_022CB244: @ 0x022CB244 + ldr r1, _022CB258 @ =0x022B966C + ldr r1, [r1, #4] + ldr r1, [r1, #0xa4] + str r1, [r0, #0xa4] + bx lr + .align 2, 0 +_022CB258: .4byte 0x022B966C + arm_func_end ov00_022CB244 + + arm_func_start ov00_022CB25C +ov00_022CB25C: @ 0x022CB25C + ldr r1, _022CB274 @ =0x022B966C + ldr r1, [r1, #4] + ldr r1, [r1, #0xa4] cmp r1, #0 strne r0, [r1, #0x38] bx lr .align 2, 0 -_0206ADB4: .4byte 0x020B0B4C - arm_func_end FUN_0206ada0 +_022CB274: .4byte 0x022B966C + arm_func_end ov00_022CB25C - arm_func_start FUN_0206adb8 -FUN_0206adb8: @ 0x0206ADB8 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x4c - ldr r0, _0206B9BC @ =0x020B0B4C - ldr r0, [r0, #8] - cmp r0, #0 - moveq r0, #0 - beq _0206B9B4 - bl FUN_022C23EC - ldr r0, _0206B9BC @ =0x020B0B4C - ldr r8, [r0, #8] - ldrb r0, [r8, #0x30] - cmp r0, #0 - bne _0206B9B0 - ldr r0, [r8, #0x2c] - cmp r0, #0 - beq _0206AE00 - cmp r0, #1 - b _0206B99C -_0206AE00: - ldr r0, [r8, #0x38] - cmp r0, #0 - subgt r0, r0, #1 - strgt r0, [r8, #0x38] - bgt _0206B99C - ldr r0, [r8] - cmp r0, #1 - bne _0206B678 - ldr r7, [r8, #0x24] - ldr sb, [r8, #0x28] - ldr r0, [r7, #0xc] - cmp r0, #0 - beq _0206AE48 - cmp r0, #1 - beq _0206AF78 - cmp r0, #2 - beq _0206B1D4 - b _0206B670 -_0206AE48: - ldr r1, [r7, #0x2d4] - mov r0, #0xc0 - ldr fp, [r7, #0x2d8] - mov r6, #0 - bl DivideInt - lsl sb, r0, #8 - mov r0, #0x14000 - rsb r0, r0, #0 - str r0, [sp, #0x2c] - b _0206AF50 -_0206AE70: - mul r0, r6, sb - ands r5, r6, #1 - movne r4, #0x14000 - ldr r1, _0206B9BC @ =0x020B0B4C - ldreq r4, [sp, #0x2c] - str r0, [sp, #0x18] - ldr r1, [r1, #4] - rsb r0, r4, #0 - bl DivideInt - str r0, [sp, #0x1c] - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - mov r0, #0xe0 - str r0, [sp, #8] - mov r0, #0x58 - mul sl, r6, r0 - lsl r0, r6, #0x10 - asr r0, r0, #0x10 - str r0, [sp, #0xc] - mov r0, #0 - str r0, [sp, #0x10] - ldr r0, [r7] - ldr r3, [sp, #0x18] - mov r1, fp - add r0, r0, sl - mov r2, r4 - bl FUN_0206bc3c - cmp r5, #0 - movne r0, #0 - moveq r0, #0x10000 - add r2, r4, r0 - ldr r5, [r7, #4] - ldr r0, [sp, #0x1c] - ldr r3, [sp, #0x18] - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - mov r0, #0x70 - str r0, [sp, #8] - mov r0, #3 - str r0, [sp, #0xc] - mov r0, #0 - str r0, [sp, #0x10] - add r0, r5, sl - mov r1, fp - bl FUN_0206bd04 - ldrsh r0, [r5, sl] - bl FUN_0201f324 - ldrsh r1, [r0, #0x1a] - add r6, r6, #1 - add r1, r1, r1, lsr #31 - asr r1, r1, #1 - strh r1, [r0, #8] - mov r1, #0 - strh r1, [r0, #0xa] -_0206AF50: - ldr r0, [r7, #0x2d4] - cmp r6, r0 - blt _0206AE70 - ldr r0, _0206B9BC @ =0x020B0B4C - ldr r0, [r0, #4] - str r0, [r7, #8] - ldr r0, [r7, #0xc] - add r0, r0, #1 - str r0, [r7, #0xc] - b _0206B670 -_0206AF78: - mov r4, #0 - mov fp, #0x58 - b _0206B04C -_0206AF84: - mul r5, r4, fp - ldr r6, [r7] - add sl, r6, r5 - ldr r1, [sl, #8] - ldr r0, [sl, #0x18] - add r0, r1, r0 - str r0, [sl, #8] - ldr r1, [sl, #0xc] - ldr r0, [sl, #0x1c] - add r0, r1, r0 - str r0, [sl, #0xc] - ldrsh r0, [r6, r5] - bl FUN_0201f324 - ldr r2, [sl, #8] - asr r1, r2, #7 - add r1, r2, r1, lsr #24 - asr r1, r1, #8 - strh r1, [r0] - ldrsh r0, [r6, r5] - bl FUN_0201f324 - ldr r2, [sl, #0xc] - asr r1, r2, #7 - add r1, r2, r1, lsr #24 - asr r1, r1, #8 - strh r1, [r0, #2] - ldr r6, [r7, #4] - add sl, r6, r5 - ldr r1, [sl, #8] - ldr r0, [sl, #0x18] - add r0, r1, r0 - str r0, [sl, #8] - ldr r1, [sl, #0xc] - ldr r0, [sl, #0x1c] - add r0, r1, r0 - str r0, [sl, #0xc] - ldrsh r0, [r6, r5] - bl FUN_0201f324 - ldr r2, [sl, #8] - asr r1, r2, #7 - add r1, r2, r1, lsr #24 - asr r1, r1, #8 - strh r1, [r0] - ldrsh r0, [r6, r5] - bl FUN_0201f324 - ldr r2, [sl, #0xc] - add r4, r4, #1 - asr r1, r2, #7 - add r1, r2, r1, lsr #24 - asr r1, r1, #8 - strh r1, [r0, #2] -_0206B04C: - ldr r0, [r7, #0x2d4] - cmp r4, r0 - blt _0206AF84 - ldr r0, [r7, #8] - cmp r0, #0 - bne _0206B0E0 - mov r6, #0 - mov fp, r6 - b _0206B0D0 -_0206B070: - mov r0, #0x58 - mul r4, r6, r0 - ldr r5, [r7] - ldrsh r0, [r5, r4] - add sl, r5, r4 - bl FUN_0201f324 - str fp, [sl, #8] - str fp, [sl, #0x18] - str fp, [sl, #0x1c] - ldrsh r0, [r5, r4] - bl FUN_0201f324 - ldr r2, [sl, #8] - asr r1, r2, #7 - add r1, r2, r1, lsr #24 - asr r1, r1, #8 - strh r1, [r0] - ldrsh r0, [r5, r4] - bl FUN_0201f324 - ldr r2, [sl, #0xc] - add r6, r6, #1 - asr r1, r2, #7 - add r1, r2, r1, lsr #24 - asr r1, r1, #8 - strh r1, [r0, #2] -_0206B0D0: - ldr r0, [r7, #0x2d4] - cmp r6, r0 - blt _0206B070 - b _0206B0E8 -_0206B0E0: - sub r0, r0, #1 - str r0, [r7, #8] -_0206B0E8: - ldr r0, [r7, #4] - ldr r0, [r0, #8] - cmp r0, #0x11000 - ble _0206B670 - add r0, sb, #0x1000 - ldr r5, [r0, #0xf5c] - mov r1, #0x8000 - str r1, [r0, #0xb8c] - mov r1, #0x6000 - str r1, [r0, #0xb90] - bl FUN_0201f36c - add r1, sb, #0x1b00 - strh r0, [r1, #0x84] - ldrsh r0, [r1, #0x84] - bl FUN_0201f324 - mov r4, r0 - mov r2, #0 - strb r2, [r4, #0x3c] - mov r1, #0x80 - strh r1, [r4, #0x2a] - add r3, sb, #0x1000 - ldr sl, [r3, #0xb8c] + arm_func_start ov00_022CB278 +ov00_022CB278: @ 0x022CB278 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sl, r0 + bl ov00_022CB0F4 mov r6, #2 - asr r1, sl, #7 - add r1, sl, r1, lsr #24 - asr r1, r1, #8 - strh r1, [r4] - ldr r3, [r3, #0xb90] - asr r1, r3, #7 - add r1, r3, r1, lsr #24 - asr r1, r1, #8 - strh r1, [r4, #2] - str r6, [sp] - str r2, [sp, #4] - ldr r1, [r5, #8] - ldr r3, [r5, #0xc] - bl FUN_0201e7d8 - ldrsh r0, [r4, #0x1a] - mov r5, #0 - mov r1, #0x28 - add r0, r0, r0, lsr #31 - asr r0, r0, #1 - strh r0, [r4, #8] - ldrsh r2, [r4, #0x1c] - add r3, sb, #0x1000 - mov r0, #0x1000 - add r2, r2, r2, lsr #31 - asr r2, r2, #1 - strh r2, [r4, #0xa] - strh r5, [r4, #0x10] - strh r5, [r4, #0x12] - str r1, [r3, #0xbd4] - bl DivideInt - add r1, sb, #0x1b00 - strh r0, [r1, #0xcc] - ldr r0, [r7, #0xc] - add r0, r0, #1 - str r0, [r7, #0xc] - b _0206B670 -_0206B1D4: - add r0, sb, #0x1b00 - ldrsh r3, [r0, #0x84] - add r0, sb, #0x1000 - add r1, sb, #0x384 - mvn r2, #0 - cmp r3, r2 - add r6, r1, #0x1800 - ldr r7, [r0, #0xf5c] - beq _0206B2D4 - ldrsh r0, [r6] - bl FUN_0201f324 - ldr r1, [r6, #4] - mov r5, r0 - cmp r1, #2 - ldrh r4, [r5, #0x10] - bge _0206B298 - ldr r0, [r6, #0x4c] - add r1, r0, #1 - str r1, [r6, #0x4c] - ldr r0, [r6, #0x50] - cmp r1, r0 - ble _0206B298 - ldr r0, [r6, #4] - add r0, r0, #1 - str r0, [r6, #4] - cmp r0, #2 - bne _0206B278 - ldr r1, [r6, #0x50] - mov r0, #0xc00 - bl DivideInt - strh r0, [r6, #0x48] - add r0, sb, #0x1000 - mov r1, #1 - str r1, [r0, #0xbf0] - mov r1, #8 - str r1, [r0, #0xbe8] - ldr r1, [r0, #0xbec] - str r1, [r0, #0xbe0] - ldr r1, [r0, #0xbf0] - str r1, [r0, #0xbe4] - b _0206B290 -_0206B278: - cmp r0, #1 - bne _0206B290 - ldr r1, [r6, #0x50] - mov r0, #0xc00 - bl DivideInt - strh r0, [r6, #0x48] -_0206B290: - mov r0, #0 - str r0, [r6, #0x4c] -_0206B298: - ldrsh r0, [r6, #0x48] - ldr r1, [r6, #4] - cmp r1, #1 - subeq r4, r4, r0 - beq _0206B2C8 - cmp r1, #2 - add r4, r4, r0 - bne _0206B2C8 - add r0, r0, #0x20 - cmp r4, #0x4000 - strh r0, [r6, #0x48] - movge r4, #0x4000 -_0206B2C8: - strh r4, [r5, #0x10] - ldrh r0, [r5, #0x10] - strh r0, [r5, #0x12] -_0206B2D4: - add r0, sb, #0x1000 - ldr r1, [r0, #0xbf4] - cmp r1, #0 - beq _0206B2F0 - cmp r1, #1 - beq _0206B3C4 - b _0206B670 -_0206B2F0: - mov r5, #0 - mov r2, #1 - str r5, [r0, #0xbdc] - mov r1, #0x10 - str r2, [r0, #0xbe0] - str r1, [r0, #0xbec] - str r1, [r0, #0xbe8] - mov r1, #8 - str r1, [r0, #0xbf0] - rsb r1, r2, #0x3e8 - str r1, [r0, #0xbe4] - ldr r4, [r0, #0xf5c] - add r0, sb, #0x3f8 - add fp, r0, #0x1800 -_0206B328: - mov r0, #0x7c - mla r6, r5, r0, fp - mov r0, r6 - bl FUN_0201c0b0 - ldrsh r1, [r4, #0x18] - mov r0, r6 - bl FUN_0201c0e8 - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0 - str r0, [sp, #0xc] - mov r0, #0xc - mul r1, r5, r0 - ldr r0, _0206B9C0 @ =0x020A9EE0 - mov r2, #0 - add sl, r0, r1 - ldr r1, [r0, r1] - mov r0, r6 - mov r3, #0x2c0 - bl FUN_0201c2cc - ldr r1, [sl, #4] - mov r0, r6 - strh r1, [r6, #0x1c] - ldr r2, [sl, #8] - mov r1, #0 - strh r2, [r6, #0x1e] - bl FUN_0201d12c - add r5, r5, #1 - cmp r5, #7 - blt _0206B328 - add r0, sb, #0x1000 - mov r1, #1 - strb r1, [r0, #0xf60] - ldr r1, [r0, #0xbf4] - add r1, r1, #1 - str r1, [r0, #0xbf4] -_0206B3C4: - add r0, sb, #0x1000 - ldr r2, [r0, #0xbe0] - add r1, r2, #1 - str r1, [r0, #0xbe0] - ldr r0, [r0, #0xbec] - cmp r2, r0 - ble _0206B54C - bl Rand16Bit - lsr r1, r0, #0x1f - rsb r0, r1, r0, lsl #31 - add r0, r1, r0, ror #31 - add r4, r0, #3 - ldr r0, _0206B9C4 @ =0x000001FF - mov r5, #0 - add r0, r0, #0xe00 - str r0, [sp, #0x34] - b _0206B51C -_0206B408: - bl Rand16Bit - bl Rand16Bit - ldr r1, _0206B9BC @ =0x020B0B4C - ldr r2, [r1, #0xc] - ldr r1, _0206B9C4 @ =0x000001FF - and r0, r0, r1 - add r0, r2, r0 - str r0, [sp, #0x14] - bl Rand16Bit - ldr r1, _0206B9BC @ =0x020B0B4C - and r0, r0, #0xf - ldr r1, [r1] - add fp, r1, r0 - bl Rand16Bit - ldr r1, [r7] - ldr r1, [r1] - ldr r1, [r1, #4] - sub r1, r1, #1 - bl DivideInt - add r0, r1, #1 - lsl r0, r0, #0x10 - asr r6, r0, #0x10 - bl Rand16Bit - mov r1, #0xd0 - bl DivideInt - add sl, r1, #0x10 - bl Rand16Bit - str sl, [sp] - str r6, [sp, #4] - mov r1, #0 - str r1, [sp, #8] - ldr r1, [sp, #0x34] - mov r2, #0x8000 - and sl, r0, r1 - mov r0, sb - mov r1, r7 - mov r3, #0x6000 - bl FUN_0206bdf4 - movs r6, r0 - beq _0206B510 - ldrsh r0, [r6] - bl FUN_0201f324 - ldrsh r2, [r0, #0x1a] - mov r1, r6 - add r2, r2, r2, lsr #31 - asr r2, r2, #1 - strh r2, [r0, #8] - ldrsh r2, [r0, #0x1c] - add r2, r2, r2, lsr #31 - asr r2, r2, #1 - strh r2, [r0, #0xa] - mov r2, #0x800 - strh r2, [r0, #0x10] - strh r2, [r0, #0x12] - ldr r0, _0206B9C8 @ =FUN_0206bfa8 - bl FUN_022C2450 - mov r0, #0x8000 - str r0, [r6, #0x30] - mov r0, #0x6000 - str r0, [r6, #0x34] - mov r0, #0 - str r0, [r6, #0x24] - str sl, [r6, #0x20] - ldr r0, [sp, #0x14] - str fp, [r6, #0x38] - str r0, [r6, #0x3c] -_0206B510: - cmp r6, #0 - beq _0206B524 - add r5, r5, #1 -_0206B51C: - cmp r5, r4 - blt _0206B408 -_0206B524: - bl Rand16Bit - add r2, sb, #0x1000 - lsr r1, r0, #0x1f - rsb r0, r1, r0, lsl #29 - ldr r3, [r2, #0xbe8] - add r0, r1, r0, ror #29 - add r0, r3, r0 - str r0, [r2, #0xbec] - mov r0, #0 - str r0, [r2, #0xbe0] -_0206B54C: - add r0, sb, #0x1000 - ldr r1, [r0, #0xbe4] - add r1, r1, #1 - str r1, [r0, #0xbe4] - ldr r0, [r0, #0xbf0] - cmp r1, r0 - ble _0206B670 - bl Rand16Bit - ldr r1, _0206B9CC @ =0x00000FFF - mov r4, #0 - and r0, r0, r1 - lsl r5, r0, #0x10 - sub fp, r1, #0xe00 -_0206B580: - bl Rand16Bit - ldr r1, [r7] - ldr r1, [r1] - ldr r1, [r1, #4] - sub r1, r1, #1 - bl DivideInt - add r0, r1, #1 - lsl r0, r0, #0x10 - asr r6, r0, #0x10 - bl Rand16Bit - mov r1, #0xd0 - bl DivideInt - add sl, r1, #0x10 - bl Rand16Bit - str sl, [sp] - and sl, r0, fp - str r6, [sp, #4] - mov r1, #0 - str r1, [sp, #8] - mov r0, sb - mov r1, r7 - mov r2, #0x8000 - mov r3, #0x6000 - bl FUN_0206bdf4 - movs r6, r0 - beq _0206B658 - ldrsh r0, [r6] - bl FUN_0201f324 - mov r1, #0 - strh r1, [r0, #0x12] - mov r2, r1 - ldr r1, _0206B9D0 @ =0x00005555 - strh r2, [r0, #0x10] - mul r1, r4, r1 - add r0, r1, r5, lsr #16 - lsl r0, r0, #0x10 + ldr r4, _022CB328 @ =0x02325078 + mov r8, r0 + mov r7, #0 + mov r5, #1 + mov fp, r6 +_022CB29C: + str r8, [sl, #0x28] + strb r6, [sl, #8] + bl FUN_0207AE44 lsr r0, r0, #0x10 - str r0, [r6, #0x20] - lsl r0, r4, #1 - str r0, [r6, #0x40] - ldr r0, [r6, #0x20] - bl FUN_02001980 - add r1, sl, #0x300 - bl MultiplyByFixedPoint - str r0, [r6, #0x18] - ldr r0, [r6, #0x20] - bl FUN_020018d0 - add r1, sl, #0x300 - rsb r0, r0, #0 - bl MultiplyByFixedPoint - str r0, [r6, #0x1c] - ldr r0, _0206B9D4 @ =FUN_0206beac - mov r1, r6 - bl FUN_022C2450 -_0206B658: - add r4, r4, #1 - cmp r4, #3 - blt _0206B580 - add r0, sb, #0x1000 - mov r1, #0 - str r1, [r0, #0xbe4] -_0206B670: - mov r4, #0 - b _0206B990 -_0206B678: + orr r0, r0, r1, lsl #16 + str r0, [sl, #0x10] + mov r0, sl + mov r1, fp + mov r2, #0x18 + bl ov00_022C9EE4 + bl FUN_0207B7E4 + mov sb, r0 + ldrb r0, [sl, #8] cmp r0, #2 - bne _0206B990 - ldr r5, [r8, #0x24] - ldr r0, [r5, #0xc] + bne _022CB2F0 + ldr r0, [r4, #0x50] cmp r0, #0 - beq _0206B6A4 - cmp r0, #1 - beq _0206B838 - cmp r0, #2 - beq _0206B984 - b _0206B98C -_0206B6A4: - ldr r0, _0206B9D8 @ =0x020A9E80 - add r4, sp, #0x3c - ldm r0, {r0, r1, r2, r3} - stm r4, {r0, r1, r2, r3} - ldr r0, [r5, #0x2d8] - mov r6, #0 - str r0, [sp, #0x20] - mov r0, #0x14000 - rsb r0, r0, #0 - str r0, [sp, #0x30] - asr r0, r0, #0x11 - str r0, [sp, #0x38] - b _0206B810 -_0206B6D8: - add r0, sp, #0x3c - ldr r0, [r0, r6, lsl #2] - tst r6, #1 - lsl r0, r0, #8 - add r0, r0, #0x800 - movne sb, #0x2000 - moveq sb, #0 - str r0, [sp, #0x24] - cmp r6, #2 - movlt r0, #1 - movge r0, #0 - ands r4, r0, #0xff - ldreq r0, [sp, #0x38] - ldr r1, _0206B9BC @ =0x020B0B4C - muleq r0, sb, r0 - moveq sb, r0 - cmp r4, #0 - ldrne sl, [sp, #0x30] - ldr r1, [r1, #4] - moveq sl, #0x14000 - rsb r0, sl, #0 - bl DivideInt - str r0, [sp, #0x28] - mov r0, #0x58 - mul r7, r6, r0 - lsl r0, r6, #0x10 - asr r1, r0, #0x10 - ldr fp, [r5] - ldr r0, [sp, #0x28] - ldr r3, [sp, #0x24] - str r0, [sp] + beq _022CB2F0 mov r0, #0 - str r0, [sp, #4] - mov r0, #0xe0 - str r0, [sp, #8] - str r1, [sp, #0xc] - mov r0, #1 - str r0, [sp, #0x10] - ldr r1, [sp, #0x20] - add r0, fp, r7 - add r2, sl, sb - bl FUN_0206bc3c - ldrsh r0, [fp, r7] - bl FUN_0201f324 - ldrsh r1, [r0, #0x1c] - cmp r1, #0x28 - moveq r3, #3 - beq _0206B7A4 - cmp r1, #0x20 - moveq r3, #2 - movne r3, #1 -_0206B7A4: - cmp r4, #0 - movne r0, #0x10000 + str r5, [sl, #4] + bl FUN_02079888 +_022CB2F0: + mov r0, sb + bl FUN_0207B7F8 + ldrb r0, [sl, #8] + cmp r0, #4 moveq r0, #0 - add r0, sl, r0 - add r2, r0, sb - ldr r4, [r5, #4] - ldr r0, [sp, #0x28] - add r1, r1, r1, lsr #31 - str r0, [sp] - lsl r0, r3, #0x10 - asr sb, r0, #0x10 - ldr r0, [sp, #0x24] - asr r1, r1, #1 - add r3, r0, r1, lsl #8 - mov r0, #0 - str r0, [sp, #4] - mov r0, #0x70 - str r0, [sp, #8] - str sb, [sp, #0xc] - mov r0, #0 - str r0, [sp, #0x10] - ldr r1, [sp, #0x20] - add r0, r4, r7 - bl FUN_0206bd04 - ldrsh r0, [r4, r7] - bl FUN_0201f324 - add r6, r6, #1 -_0206B810: - ldr r0, [r5, #0x2d4] - cmp r6, r0 - blt _0206B6D8 - ldr r0, _0206B9BC @ =0x020B0B4C + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _022CB320 + add r7, r7, #1 + cmp r7, #3 + blo _022CB29C +_022CB320: + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022CB328: .4byte 0x02325078 + arm_func_end ov00_022CB278 + + arm_func_start ov00_022CB32C +ov00_022CB32C: @ 0x022CB32C + push {r3, lr} + ldr r0, _022CB368 @ =0x022B966C ldr r0, [r0, #4] - str r0, [r5, #8] - ldr r0, [r5, #0xc] - add r0, r0, #1 - str r0, [r5, #0xc] - b _0206B98C -_0206B838: - mov sb, #0 - mov r6, #1 - mov fp, sb - b _0206B95C -_0206B848: - mov r0, #0x58 - mul sl, sb, r0 - ldr r0, [r5] - add r4, r0, sl - ldr r0, [r4, #4] + ldr r0, [r0, #0xa4] cmp r0, #0 - bne _0206B8F8 - ldr r1, [r4, #8] - ldr r0, [r4, #0x18] - add r0, r1, r0 - str r0, [r4, #8] - ldr r1, [r4, #0xc] - ldr r0, [r4, #0x1c] - add r0, r1, r0 - str r0, [r4, #0xc] - ldr r1, [r4, #0x18] + beq _022CB360 + ldrb r1, [r0, #9] cmp r1, #0 - ble _0206B8A0 - ldr r0, [r4, #8] - cmp r0, #0 - stmibge r4, {r6, fp} - bge _0206B8C0 -_0206B8A0: - cmp r1, #0 - bge _0206B8C0 - ldr r0, [r4, #8] - cmp r0, #0 - movle r0, #0 - strle r0, [r4, #8] - movle r0, #1 - strle r0, [r4, #4] -_0206B8C0: - ldrsh r0, [r4] - bl FUN_0201f324 - ldr r2, [r4, #8] - asr r1, r2, #7 - add r1, r2, r1, lsr #24 - asr r1, r1, #8 - strh r1, [r0] - ldrsh r0, [r4] - bl FUN_0201f324 - ldr r2, [r4, #0xc] - asr r1, r2, #7 - add r1, r2, r1, lsr #24 - asr r1, r1, #8 - strh r1, [r0, #2] -_0206B8F8: - ldr r4, [r5, #4] - add r7, r4, sl - ldr r1, [r7, #8] - ldr r0, [r7, #0x18] - add r0, r1, r0 - str r0, [r7, #8] - ldr r1, [r7, #0xc] - ldr r0, [r7, #0x1c] - add r0, r1, r0 - str r0, [r7, #0xc] - ldrsh r0, [r4, sl] - bl FUN_0201f324 - ldr r2, [r7, #8] - asr r1, r2, #7 - add r1, r2, r1, lsr #24 - asr r1, r1, #8 - strh r1, [r0] - ldrsh r0, [r4, sl] - bl FUN_0201f324 - ldr r2, [r7, #0xc] - add sb, sb, #1 - asr r1, r2, #7 - add r1, r2, r1, lsr #24 - asr r1, r1, #8 - strh r1, [r0, #2] -_0206B95C: - ldr r0, [r5, #0x2d4] - cmp sb, r0 - blt _0206B848 - ldr r0, [r5, #4] - ldr r0, [r0, #8] - cmp r0, #0x11000 - ldrgt r0, [r5, #0xc] - addgt r0, r0, #1 - strgt r0, [r5, #0xc] - b _0206B98C -_0206B984: - mov r4, #1 - b _0206B990 -_0206B98C: - mov r4, #0 -_0206B990: - cmp r4, #0 - movne r0, #1 - strbne r0, [r8, #0x31] -_0206B99C: - ldr r0, _0206B9BC @ =0x020B0B4C - ldr r1, [r0, #8] - ldr r0, [r1, #0x3c] - add r0, r0, #1 - str r0, [r1, #0x3c] -_0206B9B0: + beq _022CB358 + bl ov00_022D261C + pop {r3, pc} +_022CB358: + bl ov00_022CB278 + pop {r3, pc} +_022CB360: mov r0, #1 -_0206B9B4: - add sp, sp, #0x4c - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + pop {r3, pc} .align 2, 0 -_0206B9BC: .4byte 0x020B0B4C -_0206B9C0: .4byte 0x020A9EE0 -_0206B9C4: .4byte 0x000001FF -_0206B9C8: .4byte FUN_0206bfa8 -_0206B9CC: .4byte 0x00000FFF -_0206B9D0: .4byte 0x00005555 -_0206B9D4: .4byte FUN_0206beac -_0206B9D8: .4byte 0x020A9E80 - arm_func_end FUN_0206adb8 +_022CB368: .4byte 0x022B966C + arm_func_end ov00_022CB32C - arm_func_start FUN_0206b9dc -FUN_0206b9dc: @ 0x0206B9DC - push {r4, r5, r6, lr} - ldr r0, _0206BA58 @ =0x020B0B4C - ldr r1, [r0, #8] - cmp r1, #0 - moveq r0, #0 - popeq {r4, r5, r6, pc} - ldrb r0, [r1, #0x30] - cmp r0, #0 - bne _0206BA50 - ldr r0, [r1, #0x2c] - cmp r0, #0 - beq _0206BA14 - cmp r0, #1 - b _0206BA50 -_0206BA14: - ldr r1, [r1, #0x28] - cmp r1, #0 - addne r0, r1, #0x1000 - ldrbne r0, [r0, #0xf60] - cmpne r0, #0 - beq _0206BA50 - add r0, r1, #0x3f8 - mov r6, #0 - add r5, r0, #0x1800 - mov r4, #0x7c -_0206BA3C: - mla r0, r6, r4, r5 - bl FUN_0201cf5c - add r6, r6, #1 - cmp r6, #7 - blt _0206BA3C -_0206BA50: - mov r0, #1 - pop {r4, r5, r6, pc} - .align 2, 0 -_0206BA58: .4byte 0x020B0B4C - arm_func_end FUN_0206b9dc - - arm_func_start FUN_0206ba5c -FUN_0206ba5c: @ 0x0206BA5C - push {r4, r5, r6, r7, r8, lr} - ldr r0, _0206BB8C @ =0x020B0B4C - ldr r0, [r0, #8] - cmp r0, #0 - popeq {r4, r5, r6, r7, r8, pc} - bl FUN_022C23B0 - ldr r0, _0206BB8C @ =0x020B0B4C - ldr r5, [r0, #8] - cmp r5, #0 - popeq {r4, r5, r6, r7, r8, pc} - ldr r7, [r5, #0x24] - cmp r7, #0 - beq _0206BAE8 - mov r6, #0 - mov r4, #0x58 - b _0206BABC -_0206BA9C: - mul r8, r6, r4 - ldr r0, [r7] - add r0, r0, r8 - bl FUN_0206bb94 - ldr r0, [r7, #4] - add r0, r0, r8 - bl FUN_0206bb94 - add r6, r6, #1 -_0206BABC: - ldr r0, [r7, #0x2d4] - cmp r6, r0 - blt _0206BA9C - ldr r0, [r7] - bl MemFree - ldr r0, [r7, #4] - bl MemFree - ldr r0, [r5, #0x24] - bl MemFree - mov r0, #0 - str r0, [r5, #0x24] -_0206BAE8: - ldr r0, _0206BB8C @ =0x020B0B4C - ldr r5, [r0, #8] - ldr r0, [r5, #0x28] - cmp r0, #0 - beq _0206BB3C - mov r6, #0 - mov r4, #0x58 -_0206BB04: - ldr r0, [r5, #0x28] - mla r0, r6, r4, r0 - bl FUN_0206bb94 - add r6, r6, #1 - cmp r6, #0x50 - blt _0206BB04 - ldr r0, [r5, #0x28] - add r0, r0, #0x384 - add r0, r0, #0x1800 - bl FUN_0206bb94 - ldr r0, [r5, #0x28] - bl MemFree - mov r0, #0 - str r0, [r5, #0x28] -_0206BB3C: - ldr r0, _0206BB8C @ =0x020B0B4C - ldr r4, [r0, #8] - add r0, r4, #0x14 - bl FUN_0201e020 - add r0, r4, #4 - bl FUN_0201e020 - add r0, r4, #0xc - bl FUN_0201e020 - ldr r0, _0206BB90 @ =0x020AFC68 - ldrsh r1, [r4, #0x1c] - ldr r0, [r0] - bl DeleteWanTableEntryVeneer - ldr r0, _0206BB8C @ =0x020B0B4C - ldr r0, [r0, #8] - bl MemFree - ldr r0, _0206BB8C @ =0x020B0B4C - mov r1, #0 - str r1, [r0, #8] - bl FUN_0201f248 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0206BB8C: .4byte 0x020B0B4C -_0206BB90: .4byte 0x020AFC68 - arm_func_end FUN_0206ba5c - - arm_func_start FUN_0206bb94 -FUN_0206bb94: @ 0x0206BB94 + arm_func_start ov00_022CB36C +ov00_022CB36C: @ 0x022CB36C push {r4, lr} mov r4, r0 - ldrsh r1, [r4] - mvn r0, #0 - cmp r1, r0 - popeq {r4, pc} - cmp r1, #0 - bne _0206BBBC - ldr r0, _0206BBDC @ =0x020A9F98 - bl DebugPrint0 -_0206BBBC: - ldrsh r0, [r4] - bl FUN_0201f2ac + bl FUN_020799AC + ldrb r1, [r4, #8] + add r0, r1, #0xfd + and r0, r0, #0xff + cmp r0, #1 + bhi _022CB3A4 mov r0, r4 - mov r1, #0x58 - bl MemZero - mvn r0, #0 - strh r0, [r4] + mov r1, #0x19 + bl ov00_022C9F6C + mov r0, #7 + strb r0, [r4, #8] + pop {r4, pc} +_022CB3A4: + cmp r1, #0 + popeq {r4, pc} + mov r0, r4 + mov r1, #0x1a + bl ov00_022C9F58 + pop {r4, pc} + arm_func_end ov00_022CB36C + + arm_func_start ov00_022CB3BC +ov00_022CB3BC: @ 0x022CB3BC + push {r4, lr} + ldr r0, _022CB3F4 @ =0x022B966C + ldr r0, [r0, #4] + ldr r4, [r0, #0xa4] + cmp r4, #0 + popeq {r4, pc} + ldrb r0, [r4, #9] + cmp r0, #0 + beq _022CB3E8 + mov r0, r4 + bl ov00_022D2A8C +_022CB3E8: + mov r0, r4 + bl ov00_022CB36C pop {r4, pc} .align 2, 0 -_0206BBDC: .4byte 0x020A9F98 - arm_func_end FUN_0206bb94 +_022CB3F4: .4byte 0x022B966C + arm_func_end ov00_022CB3BC - arm_func_start FUN_0206bbe0 -FUN_0206bbe0: @ 0x0206BBE0 + arm_func_start ov00_022CB3F8 +ov00_022CB3F8: @ 0x022CB3F8 + push {r4, r5, r6, lr} + ldr r0, _022CB478 @ =0x022B966C + ldr r0, [r0, #4] + ldr r4, [r0, #0xa4] + cmp r4, #0 + popeq {r4, r5, r6, pc} + ldrb r0, [r4, #9] + cmp r0, #0 + beq _022CB424 + mov r0, r4 + bl ov00_022D2B0C +_022CB424: + bl FUN_0207AE44 + lsr r6, r0, #0x10 + orr r6, r6, r1, lsl #16 + ldr r5, _022CB47C @ =0x02325078 + b _022CB43C +_022CB438: + bl ov00_022C8238 +_022CB43C: + ldr r0, [r5, #0x48] + blx r0 + cmp r0, #0 + ldrbne r0, [r4, #8] + cmpne r0, #0 + beq _022CB46C + bl FUN_0207AE44 + lsr r0, r0, #0x10 + orr r0, r0, r1, lsl #16 + sub r0, r0, r6 + cmp r0, #0x27 + blt _022CB438 +_022CB46C: + mov r0, #0 + strb r0, [r4, #8] + pop {r4, r5, r6, pc} + .align 2, 0 +_022CB478: .4byte 0x022B966C +_022CB47C: .4byte 0x02325078 + arm_func_end ov00_022CB3F8 + + arm_func_start ov00_022CB480 +ov00_022CB480: @ 0x022CB480 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r8, r1 + mov sb, r0 + bl FUN_0207B7E4 + ldr r6, [r8, #0x44] + mov r7, r0 + cmp r6, #0 + bne _022CB4C0 + mov r5, #3 + mov r4, #0 +_022CB4A8: + mov r0, r4 + str r5, [r8, #4] + bl FUN_02079888 + ldr r6, [r8, #0x44] + cmp r6, #0 + beq _022CB4A8 +_022CB4C0: + mov r0, r7 + bl FUN_0207B7F8 + str r6, [sb] + ldr r0, [r8, #0x40] + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_022CB480 + + arm_func_start ov00_022CB4D4 +ov00_022CB4D4: @ 0x022CB4D4 + push {r4, r5, r6, r7, r8, lr} + mov r4, r1 + ldr r1, [r4, #0x44] + mov r5, r0 + cmp r1, #0 + ldrbeq r0, [r4, #8] + cmpeq r0, #4 + bne _022CB534 + bl FUN_0207B7E4 + mov r8, r0 + mov r7, #2 + mov r6, #0 + b _022CB514 +_022CB508: + mov r0, r6 + str r7, [r4, #4] + bl FUN_02079888 +_022CB514: + ldr r0, [r4, #0x44] + cmp r0, #0 + ldrbeq r0, [r4, #8] + cmpeq r0, #4 + beq _022CB508 + mov r0, r8 + bl FUN_0207B7F8 + b _022CB538 +_022CB534: + bl FUN_020799AC +_022CB538: + ldr r0, [r4, #0x44] + str r0, [r5] + cmp r0, #0 + ldrne r0, [r4, #0x40] + moveq r0, #0 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022CB4D4 + + arm_func_start ov00_022CB550 +ov00_022CB550: @ 0x022CB550 + push {r3, lr} + ldr r1, _022CB5B0 @ =0x022B966C + ldr r1, [r1, #4] + ldr r1, [r1, #0xa4] + cmp r1, #0 + beq _022CB5A0 + ldrb r2, [r1, #8] + add r2, r2, #0xf6 + and r2, r2, #0xff + cmp r2, #1 + bhi _022CB584 + bl ov00_022CB480 + pop {r3, pc} +_022CB584: + ldrb r2, [r1, #9] + cmp r2, #0 + beq _022CB598 + bl ov00_022D2670 + pop {r3, pc} +_022CB598: + bl ov00_022CB4D4 + pop {r3, pc} +_022CB5A0: + mov r1, #0 + str r1, [r0] + mov r0, r1 + pop {r3, pc} + .align 2, 0 +_022CB5B0: .4byte 0x022B966C + arm_func_end ov00_022CB550 + + arm_func_start ov00_022CB5B4 +ov00_022CB5B4: @ 0x022CB5B4 + push {r3, r4, r5, r6, r7, lr} + mov r4, r1 + mov r7, r0 + bl FUN_0207B7E4 + ldr r2, [r4, #0x44] + ldr r1, [r4, #0x3c] + mov r5, r0 + cmp r2, r1 + mov r6, #0 + bne _022CB5E4 + cmp r7, #0 + movne r6, #1 +_022CB5E4: + cmp r7, r2 + movhs r0, #0 + strhs r0, [r4, #0x44] + bhs _022CB608 + ldr r0, [r4, #0x40] + sub r2, r2, r7 + add r1, r0, r7 + str r2, [r4, #0x44] + bl FUN_020872BC +_022CB608: + mov r0, r5 + bl FUN_0207B7F8 + ldrb r0, [r4, #8] + cmp r0, #0xa + cmpne r0, #0xb + popeq {r3, r4, r5, r6, r7, pc} + ldr r0, [r4, #0x44] + cmp r0, #0 + beq _022CB634 + cmp r6, #0 + popeq {r3, r4, r5, r6, r7, pc} +_022CB634: + mov r0, r4 + mov r1, #0x1b + bl ov00_022C9F58 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022CB5B4 + + arm_func_start ov00_022CB644 +ov00_022CB644: @ 0x022CB644 + push {r3, lr} + ldr r1, _022CB678 @ =0x022B966C + ldr r1, [r1, #4] + ldr r1, [r1, #0xa4] + cmp r1, #0 + popeq {r3, pc} + ldrb r2, [r1, #9] + cmp r2, #0 + beq _022CB670 + bl ov00_022D2748 + pop {r3, pc} +_022CB670: + bl ov00_022CB5B4 + pop {r3, pc} + .align 2, 0 +_022CB678: .4byte 0x022B966C + arm_func_end ov00_022CB644 + + arm_func_start ov00_022CB67C +ov00_022CB67C: @ 0x022CB67C + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov r8, r2 + ldr r6, [r8, #0x34] + movs fp, r3 + mov sl, r0 + movne r5, #1 + lsl r0, r6, #1 + mov sb, r1 + ldrheq r5, [r8, #0x2c] + add r7, r0, #4 + b _022CB720 +_022CB6A8: + ldr r0, _022CB73C @ =0x02325078 + ldrh r4, [r8, #0x2e] + ldrh r0, [r0, #2] + ldr r1, [r8, #0x34] + cmp r4, r5 + movhs r4, r5 + cmp r0, r4 + movlo r4, r0 + cmp fp, #0 + biceq r4, r4, #1 + cmp sb, r4 + sub r0, r1, r6 + movlo r4, sb + adds r0, r7, r0 + moveq r4, #0 + mov r6, r1 + sub r7, r0, #1 + cmp r4, #0 + beq _022CB734 + mov r2, #0 + str r2, [sp] + mov r0, sl + mov r1, r4 + mov r2, r8 + mov r3, #0x18 + sub r5, r5, r4 + bl ov00_022C9524 + bl FUN_020799AC + add sl, sl, r4 + sub sb, sb, r4 +_022CB720: + cmp sb, #0 + beq _022CB734 + ldrb r0, [r8, #8] + cmp r0, #4 + beq _022CB6A8 +_022CB734: + mov r0, r4 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022CB73C: .4byte 0x02325078 + arm_func_end ov00_022CB67C + + arm_func_start ov00_022CB740 +ov00_022CB740: @ 0x022CB740 + push {r3, r4, r5, lr} + mov r5, r2 + mov r4, r3 + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x14] + bl ov00_022CB67C + cmp r0, #0 + cmpne r4, #0 + popeq {r3, r4, r5, pc} + ldr r2, [sp, #0x10] + mov r0, r5 + mov r1, r4 + mov r3, #0 + bl ov00_022CB67C + pop {r3, r4, r5, pc} + arm_func_end ov00_022CB740 + + arm_func_start ov00_022CB77C +ov00_022CB77C: @ 0x022CB77C + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x14 + mov r4, #0 + mov fp, r0 + ldr r8, [sp, #0x38] + mov r0, r4 + str r4, [sp, #0x10] + mov sl, r1 + mov sb, r2 + str r3, [sp, #8] + mov r6, r4 + str r0, [r8, #0x34] + bl FUN_0207AE44 + lsr r0, r0, #0x10 + orr r0, r0, r1, lsl #16 + str r0, [sp, #0xc] + b _022CB934 +_022CB7C0: + ldr r7, [r8, #0x28] + ldr r3, [sp, #8] + str r8, [sp] + mov r0, fp + mov r1, sl + mov r2, sb + str r6, [sp, #4] + bl ov00_022CB740 + bl FUN_0207AE44 + lsr r5, r0, #0x10 + ldr r4, _022CB980 @ =0x02325078 + orr r5, r5, r1, lsl #16 +_022CB7F0: + bl ov00_022C8238 + ldr r0, [r4, #0x48] + blx r0 + cmp r0, #0 + beq _022CB848 + ldrb r0, [r8, #8] + cmp r0, #4 + bne _022CB848 + ldr r1, [r8, #0x28] + ldr r0, [r8, #0x30] + cmp r1, r0 + beq _022CB848 + bl FUN_0207AE44 + lsr r0, r0, #0x10 + orr r0, r0, r1, lsl #16 + sub r0, r0, r5 + cmp r0, #0xf + bge _022CB848 + cmp r6, #0 + ldrhne r0, [r8, #0x2c] + cmpne r0, #0 + beq _022CB7F0 +_022CB848: + ldr r1, [r8, #0x30] + ldr r0, [r8, #0x28] + sub r5, r1, r7 + sub r0, r0, r7 + cmp r5, r0 + movhi r5, #0 + ldr r0, [sp, #0x10] + cmp r5, #0 + add r0, r0, r5 + str r0, [sp, #0x10] + beq _022CB884 + bl FUN_0207AE44 + lsr r0, r0, #0x10 + orr r0, r0, r1, lsl #16 + str r0, [sp, #0xc] +_022CB884: + ldr r0, [r8, #0x30] + str r0, [r8, #0x28] + ldrb r0, [r8, #8] + cmp r0, #4 + ldrheq r0, [r8, #0x2c] + cmpeq r0, #0 + cmpeq r5, #0 + bne _022CB908 + cmp r6, #0 + bne _022CB90C + bl FUN_0207AE44 + lsr r7, r0, #0x10 + orr r7, r7, r1, lsl #16 + ldr r4, _022CB980 @ =0x02325078 + b _022CB8D0 +_022CB8C0: + bl ov00_022C8238 + ldrh r0, [r8, #0x2c] + cmp r0, #0 + bne _022CB8F8 +_022CB8D0: + ldr r0, [r4, #0x48] + blx r0 + cmp r0, #0 + beq _022CB8F8 + bl FUN_0207AE44 + lsr r0, r0, #0x10 + orr r0, r0, r1, lsl #16 + sub r0, r0, r7 + cmp r0, #0xf + blt _022CB8C0 +_022CB8F8: + ldrh r0, [r8, #0x2c] + cmp r0, #0 + moveq r6, #1 + b _022CB90C +_022CB908: + mov r6, #0 +_022CB90C: + cmp r5, sl + addlo fp, fp, r5 + sublo sl, sl, r5 + blo _022CB934 + sub r1, r5, sl + ldr r0, [sp, #8] + add fp, sb, r1 + mov sb, #0 + sub sl, r0, r1 + str sb, [sp, #8] +_022CB934: + ldr r0, _022CB980 @ =0x02325078 + ldr r0, [r0, #0x48] + blx r0 + cmp r0, #0 + cmpne sl, #0 + beq _022CB974 + ldrb r0, [r8, #8] + cmp r0, #4 + bne _022CB974 + bl FUN_0207AE44 + lsr r2, r0, #0x10 + ldr r0, [sp, #0xc] + orr r2, r2, r1, lsl #16 + sub r0, r2, r0 + cmp r0, #0x9f + blt _022CB7C0 +_022CB974: + ldr r0, [sp, #0x10] + add sp, sp, #0x14 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022CB980: .4byte 0x02325078 + arm_func_end ov00_022CB77C + + arm_func_start ov00_022CB984 +ov00_022CB984: @ 0x022CB984 + push {r3, r4, r5, r6, r7, lr} + ldr ip, _022CBA50 @ =0x022B966C + mov r7, r1 + ldr ip, [ip, #4] + mov r6, r2 + ldr r4, [ip, #0xa4] + mov r5, r3 + cmp r4, #0 + beq _022CBA48 + ldrb ip, [r4, #8] + cmp ip, #0xa + bne _022CB9E4 + cmp r7, #0 + beq _022CB9C4 + mov r2, r4 + bl ov00_022C93E8 +_022CB9C4: + cmp r5, #0 + beq _022CB9DC + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov00_022C93E8 +_022CB9DC: + add r0, r7, r5 + b _022CBA38 +_022CB9E4: + cmp ip, #0xb + bne _022CBA1C + cmp r7, #0 + beq _022CB9FC + mov r2, r4 + bl ov00_022C9338 +_022CB9FC: + cmp r5, #0 + beq _022CBA14 + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov00_022C9338 +_022CBA14: + add r0, r7, r5 + b _022CBA38 +_022CBA1C: + ldrb ip, [r4, #9] + cmp ip, #0 + str r4, [sp] + beq _022CBA34 + bl ov00_022D2958 + b _022CBA38 +_022CBA34: + bl ov00_022CB77C +_022CBA38: + ldr r1, _022CBA54 @ =0x02325078 + ldrb r1, [r1] + cmp r1, #0 + popeq {r3, r4, r5, r6, r7, pc} +_022CBA48: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022CBA50: .4byte 0x022B966C +_022CBA54: .4byte 0x02325078 + arm_func_end ov00_022CB984 + + arm_func_start ov00_022CBA58 +ov00_022CBA58: @ 0x022CBA58 + push {r3, r4, r5, lr} + ldr r3, _022CBAEC @ =0x022B966C + mov r2, r0 + ldr r4, [r3, #4] + mov r3, r1 + ldr r5, [r4, #0xa4] + cmp r5, #0 + beq _022CBAE4 + ldr r4, [r5, #0x60] + cmp r4, #0 + beq _022CBAD4 + ldr r0, [r5, #0x5c] + mov r1, r4 + bl ov00_022CB984 + ldr r1, [r5, #0x60] + mov r4, r0 + cmp r4, r1 + bhs _022CBAC4 + ldr r0, [r5, #0x5c] + sub r2, r1, r4 + add r1, r0, r4 + bl FUN_020872BC + ldr r1, [r5, #0x60] + mov r0, #0 + sub r1, r1, r4 + str r1, [r5, #0x60] + pop {r3, r4, r5, pc} +_022CBAC4: + mov r0, #0 + str r0, [r5, #0x60] + sub r0, r4, r1 + pop {r3, r4, r5, pc} +_022CBAD4: + mov r2, #0 + mov r3, r2 + bl ov00_022CB984 + pop {r3, r4, r5, pc} +_022CBAE4: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022CBAEC: .4byte 0x022B966C + arm_func_end ov00_022CBA58 + + arm_func_start ov00_022CBAF0 +ov00_022CBAF0: @ 0x022CBAF0 + push {r3, lr} + ldr r0, _022CBB5C @ =0x022B966C + ldr r0, [r0, #4] + ldr r0, [r0, #0xa4] + cmp r0, #0 + beq _022CBB54 + ldrb r1, [r0, #9] + cmp r1, #0 + beq _022CBB1C + bl ov00_022D28DC + pop {r3, pc} +_022CBB1C: + ldr r1, [r0, #0x44] + cmp r1, #0 + bne _022CBB44 + ldrb r0, [r0, #8] + cmp r0, #4 + beq _022CBB44 + add r0, r0, #0xf6 + and r0, r0, #0xff + cmp r0, #1 + bhi _022CBB4C +_022CBB44: + mov r0, r1 + pop {r3, pc} +_022CBB4C: + mvn r0, #0 + pop {r3, pc} +_022CBB54: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_022CBB5C: .4byte 0x022B966C + arm_func_end ov00_022CBAF0 + + arm_func_start ov00_022CBB60 +ov00_022CBB60: @ 0x022CBB60 + push {r4, lr} + ldr r0, _022CBB9C @ =0x022B966C + ldr r0, [r0, #4] + ldr r4, [r0, #0xa4] + cmp r4, #0 + ldrne r1, [r4, #0x60] + cmpne r1, #0 + popeq {r4, pc} + mov r2, #0 + ldr r0, [r4, #0x5c] + mov r3, r2 + bl ov00_022CB984 + mov r0, #0 + str r0, [r4, #0x60] + pop {r4, pc} + .align 2, 0 +_022CBB9C: .4byte 0x022B966C + arm_func_end ov00_022CBB60 + + arm_func_start ov00_022CBBA0 +ov00_022CBBA0: @ 0x022CBBA0 + push {r4, r5, r6, lr} + ldr r0, _022CBC3C @ =0x02325078 + ldr r0, [r0, #0x18] + blx r0 + ldr r0, _022CBC3C @ =0x02325078 + ldr r0, [r0, #0x50] + cmp r0, #0 + popeq {r4, r5, r6, pc} + bl ov00_022C8CA0 + mov r0, #0x64 + bl FUN_02079B14 + ldr r0, _022CBC3C @ =0x02325078 + ldr r0, [r0, #0x50] + bl ov00_022C8CA0 + bl FUN_0207AE44 + lsr r6, r0, #0x10 + orr r6, r6, r1, lsl #16 + mov r5, #0x64 + ldr r4, _022CBC3C @ =0x02325078 + b _022CBC10 +_022CBBF0: + ldrb r0, [r4, #1] + cmp r0, #0 + beq _022CBC08 + mov r0, #4 + bl ov00_022C8134 + pop {r4, r5, r6, pc} +_022CBC08: + mov r0, r5 + bl FUN_02079B14 +_022CBC10: + ldr r0, [r4, #0x48] + blx r0 + cmp r0, #0 + popeq {r4, r5, r6, pc} + bl FUN_0207AE44 + lsr r0, r0, #0x10 + orr r0, r0, r1, lsl #16 + sub r0, r0, r6 + cmp r0, #0x17 + blt _022CBBF0 + pop {r4, r5, r6, pc} + .align 2, 0 +_022CBC3C: .4byte 0x02325078 + arm_func_end ov00_022CBBA0 + + arm_func_start ov00_022CBC40 +ov00_022CBC40: @ 0x022CBC40 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + ldr r3, _022CBF90 @ =0x02325078 + mov r1, #0 + ldr r0, _022CBF94 @ =0x02325158 + mov r2, #0x64 + str r1, [r3, #0x44] + bl FUN_0207C40C + ldr r1, _022CBF90 @ =0x02325078 + mov r3, #0x180 + ldr r0, _022CBF98 @ =0x02325724 + str r3, [r1, #0x11c] + str r0, [r1, #0x120] + ldr r2, _022CBF9C @ =0x023255A4 + str r3, [r1, #0x128] + ldr r0, _022CBF94 @ =0x02325158 + str r2, [r1, #0x12c] + bl ov00_022CB138 + mov sl, #1 + ldr r0, _022CBF90 @ =0x02325078 + mov fp, sl + str sl, [sp] + str sl, [r0, #0xc] + mov r4, #0 +_022CBC9C: + mov r0, #0x3e8 + bl FUN_02079B14 + ldr r0, _022CBF90 @ =0x02325078 + ldr r1, [r0, #0x44] + cmp r1, #0 + bne _022CBF70 + bl FUN_0207AE44 + ldr r2, _022CBF90 @ =0x02325078 + lsr r5, r0, #0x10 + ldr r0, [r2, #0x48] + orr r5, r5, r1, lsl #16 + blx r0 + cmp r0, #0 + beq _022CBDC8 + ldr r0, [sp] + subs r0, r0, #1 + str r0, [sp] + bne _022CBDDC + ldr r0, _022CBF90 @ =0x02325078 + ldr r1, [r0, #0x10] + tst r1, #1 + beq _022CBD08 + cmp r4, #0 + bne _022CBDDC + bl ov00_022CBBA0 + mov r4, #1 + b _022CBDDC +_022CBD08: + cmp r4, #3 + addls pc, pc, r4, lsl #2 + b _022CBDDC +_022CBD14: @ jump table + b _022CBD24 @ case 0 + b _022CBD68 @ case 1 + b _022CBD8C @ case 2 + b _022CBDDC @ case 3 +_022CBD24: + cmp fp, #0 + movne r1, #2 + strne r1, [r0, #0xc] + movne fp, #0 + bl ov00_022CC68C + cmp r0, #0 + beq _022CBD54 + add r0, sp, #0 + mov r1, #0 + bl ov00_022CC6E4 + cmp r0, #0 + bne _022CBD60 +_022CBD54: + bl ov00_022CBBA0 + mov r4, #3 + b _022CBDDC +_022CBD60: + mov r4, #1 + b _022CBDDC +_022CBD68: + add r0, sp, #0 + mov r1, #1 + bl ov00_022CC6E4 + cmp r0, #0 + bne _022CBDDC + ldr r0, [sp] + cmp r0, #0x3c + movlo r4, #2 + b _022CBDDC +_022CBD8C: + add r0, sp, #0 + mov r1, #2 + bl ov00_022CC6E4 + cmp r0, #0 + movne r4, #1 + bne _022CBDDC + ldr r0, [sp] + cmp r0, #0x3c + bhs _022CBDDC + mov r0, #3 + bl ov00_022C8134 + mov sl, #1 + str sl, [sp] + mov r4, #0 + b _022CBDDC +_022CBDC8: + mov r0, #1 + bl ov00_022C8134 + mov sl, #1 + str sl, [sp] + mov r4, #0 +_022CBDDC: + mov r3, #0 + ldr r6, _022CBFA0 @ =0x023250F8 + ldr r1, _022CBFA4 @ =0x000003BD + mov r2, r3 +_022CBDEC: + ldr r0, [r6] + cmp r0, #0 + beq _022CBE0C + ldrh r0, [r6, #0xa] + sub r0, r5, r0 + lsl r0, r0, #0x10 + cmp r1, r0, asr #16 + strlt r2, [r6] +_022CBE0C: + add r3, r3, #1 + cmp r3, #8 + add r6, r6, #0xc + blt _022CBDEC + ldr r0, _022CBF90 @ =0x02325078 + ldr r0, [r0, #0x2c] + cmp r0, #0 + beq _022CBE3C + subs sl, sl, #1 + bne _022CBE3C + bl ov00_022C8CA0 + mov sl, #0x69 +_022CBE3C: + ldr r0, _022CBFA8 @ =0x022B966C + ldr sb, [r0, #8] + cmp sb, #0 + beq _022CBF04 + mov r6, #0 + mov r7, r6 + mov r8, #1 +_022CBE58: + ldr r0, [sb, #0xa4] + cmp r0, #0 + ldrne r1, [r0] + cmpne r1, #0 + beq _022CBEF8 + ldrb r1, [r0, #8] + cmp r1, #3 + bne _022CBEA0 + ldr r2, [r0, #0x10] + sub r2, r5, r2 + cmp r2, #0x27 + ble _022CBEA0 + strb r8, [r0, #8] + ldrh r1, [r0, #0x1a] + strh r1, [r0, #0x18] + ldr r1, [r0, #0x20] + str r1, [r0, #0x1c] + b _022CBEF8 +_022CBEA0: + cmp r1, #2 + bne _022CBED8 + ldr r2, [r0, #0x10] + sub r2, r5, r2 + cmp r2, #0x27 + ble _022CBED8 + ldr r1, [r0, #4] + cmp r1, #1 + bne _022CBEF8 + strb r7, [r0, #8] + str r7, [r0, #4] + ldr r0, [r0] + bl FUN_02079940 + b _022CBEF8 +_022CBED8: + cmp r1, #4 + beq _022CBEF8 + ldr r1, [r0, #4] + cmp r1, #2 + bne _022CBEF8 + str r6, [r0, #4] + ldr r0, [r0] + bl FUN_02079940 +_022CBEF8: + ldr sb, [sb, #0x68] + cmp sb, #0 + bne _022CBE58 +_022CBF04: + mov sb, #0 + ldr r8, _022CBFAC @ =0x023253A0 + ldr r6, _022CBF90 @ =0x02325078 + mov r7, sb +_022CBF14: + ldrh r0, [r8, #4] + cmp r0, #0 + beq _022CBF40 + ldr r0, [r8, #0x2c] + sub r0, r5, r0 + cmp r0, #0xef + ble _022CBF40 + ldr r0, [r8, #0x34] + ldr r1, [r6, #0x40] + blx r1 + strh r7, [r8, #4] +_022CBF40: + add sb, sb, #1 + cmp sb, #8 + add r8, r8, #0x38 + blt _022CBF14 + mov r0, r5 + bl ov00_022D2B74 + ldr r0, _022CBF90 @ =0x02325078 + ldr r0, [r0, #0x3c] + cmp r0, #0 + beq _022CBC9C + blx r0 + b _022CBC9C +_022CBF70: + ldr r0, [r0, #0x10] + tst r0, #1 + bne _022CBF88 + cmp r4, #3 + beq _022CBF88 + bl ov00_022CC7E0 +_022CBF88: + bl ov00_022CB14C + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022CBF90: .4byte 0x02325078 +_022CBF94: .4byte 0x02325158 +_022CBF98: .4byte 0x02325724 +_022CBF9C: .4byte 0x023255A4 +_022CBFA0: .4byte 0x023250F8 +_022CBFA4: .4byte 0x000003BD +_022CBFA8: .4byte 0x022B966C +_022CBFAC: .4byte 0x023253A0 + arm_func_end ov00_022CBC40 + + arm_func_start ov00_022CBFB0 +ov00_022CBFB0: @ 0x022CBFB0 + push {r3, r4, r5, r6, r7, lr} + mov r5, r1 + mov r4, r2 + mov r1, #0 + mov r2, #0xec + mov r6, r0 + bl FUN_0207C40C + ldr r0, _022CC120 @ =0x00000101 + mov r1, #6 + strh r0, [r6] + ldr r0, _022CC124 @ =0x02325078 + strb r1, [r6, #2] + ldr r3, [r0, #0x70] + ldr r2, [r0, #0x68] + ldr r1, [r0, #0x6c] + umull lr, ip, r3, r2 + mla ip, r3, r1, ip + ldr r1, [r0, #0x74] + ldr r7, [r0, #0x78] + mla ip, r1, r2, ip + ldr r3, [r0, #0x7c] + adds r7, r7, lr + adc r1, r3, ip + str r7, [r0, #0x68] + str r1, [r0, #0x6c] + lsr r0, r1, #0x10 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + cmp r4, #0 + lsl r2, r3, #8 + lsl r0, r1, #0x10 + strne r1, [r4] + lsr r1, r0, #0x10 + orr r2, r2, r3, asr #8 + lsl r0, r1, #8 + strh r2, [r6, #4] + orr r0, r0, r1, asr #8 + strh r0, [r6, #6] + ldr r2, _022CC124 @ =0x02325078 + ldr r0, _022CC128 @ =0x02325560 + ldr r1, [r2, #0x50] + lsr r1, r1, #0x10 + lsl r1, r1, #0x10 + lsr r3, r1, #0x10 + lsl r1, r3, #8 + orr r1, r1, r3, asr #8 + strh r1, [r6, #0xc] + ldr r2, [r2, #0x50] + add r1, r6, #0x1c + lsl r2, r2, #0x10 + lsr r3, r2, #0x10 + lsl r2, r3, #8 + orr r3, r2, r3, asr #8 + mov r2, #6 + strh r3, [r6, #0xe] + bl FUN_0207C4C8 + ldr r0, _022CC12C @ =0x00008263 + ldr r1, _022CC130 @ =0x00006353 + strh r0, [r6, #0xec] + strh r1, [r6, #0xee] + ldr r0, _022CC134 @ =0x00000135 + mov r1, #7 + strh r0, [r6, #0xf0] + strb r5, [r6, #0xf2] + mov r0, #0x3d + strb r0, [r6, #0xf3] + strb r1, [r6, #0xf4] + mov r3, #1 + ldr r0, _022CC128 @ =0x02325560 + add r1, r6, #0xf6 + mov r2, #6 + strb r3, [r6, #0xf5] + bl FUN_0207C4C8 + mov r1, #0xc + strb r1, [r6, #0xfc] + mov r2, #0xa + ldr r0, _022CC138 @ =0x0231885C + add r1, r6, #0xfe + strb r2, [r6, #0xfd] + bl FUN_0207C4C8 + mov r1, #0x37 + strb r1, [r6, #0x108] + mov r2, #3 + add r0, r6, #0xd + strb r2, [r6, #0x109] + mov r1, #1 + strb r1, [r6, #0x10a] + strb r2, [r6, #0x10b] + mov r1, #6 + strb r1, [r6, #0x10c] + add r0, r0, #0x100 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022CC120: .4byte 0x00000101 +_022CC124: .4byte 0x02325078 +_022CC128: .4byte 0x02325560 +_022CC12C: .4byte 0x00008263 +_022CC130: .4byte 0x00006353 +_022CC134: .4byte 0x00000135 +_022CC138: .4byte 0x0231885C + arm_func_end ov00_022CBFB0 + + arm_func_start ov00_022CC13C +ov00_022CC13C: @ 0x022CC13C + push {r3, r4, r5, lr} + mov ip, r0 + mov r5, r2 + cmp r3, r1 + bhs _022CC168 + sub r4, r1, r3 + mov r0, r5 + mov r1, ip + mov r2, r4 + bl FUN_0207C40C + add r5, r5, r4 +_022CC168: + mov r0, r5 + pop {r3, r4, r5, pc} + arm_func_end ov00_022CC13C + + arm_func_start ov00_022CC170 +ov00_022CC170: @ 0x022CC170 + push {r3, r4, lr} + sub sp, sp, #4 + ldr r4, _022CC22C @ =0x023255CE + add r2, sp, #0 + mov r0, r4 + mov r1, #1 + bl ov00_022CBFB0 + ldr r1, _022CC230 @ =0x02325078 + mov ip, r0 + ldr r0, [r1, #0x34] + cmp r0, #0 + beq _022CC1F4 + mov r0, #0x32 + strb r0, [ip] + mov r0, #4 + strb r0, [ip, #1] + ldr r0, [r1, #0x34] + lsr r0, r0, #0x10 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #8 + strb r0, [ip, #2] + ldr r0, [r1, #0x34] + lsr r0, r0, #0x10 + strb r0, [ip, #3] + ldr r0, [r1, #0x34] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #8 + strb r0, [ip, #4] + ldr r0, [r1, #0x34] + strb r0, [ip, #5] + add ip, ip, #6 +_022CC1F4: + add r2, ip, #1 + mov lr, #0xff + sub r3, r2, r4 + mov r0, #0 + mov r1, #0x12c + strb lr, [ip] + bl ov00_022CC13C + mov r1, r0 + mov r0, r4 + sub r1, r1, r4 + bl ov00_022CBA58 + ldr r0, [sp] + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_022CC22C: .4byte 0x023255CE +_022CC230: .4byte 0x02325078 + arm_func_end ov00_022CC170 + + arm_func_start ov00_022CC234 +ov00_022CC234: @ 0x022CC234 + push {r3, r4, r5, lr} + ldr r4, _022CC334 @ =0x023255CE + mov r5, r0 + add r2, sp, #0 + mov r0, r4 + mov r1, #3 + bl ov00_022CBFB0 + mov ip, r0 + cmp r5, #0 + bne _022CC300 + mov r0, #0x32 + strb r0, [ip] + mov r0, #4 + ldr r2, _022CC338 @ =0x02325078 + strb r0, [ip, #1] + ldr r1, [r2, #0x34] + mov r3, #0x36 + lsr r1, r1, #0x10 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + asr r1, r1, #8 + strb r1, [ip, #2] + ldr r1, [r2, #0x34] + lsr r1, r1, #0x10 + strb r1, [ip, #3] + ldr r1, [r2, #0x34] + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + asr r1, r1, #8 + strb r1, [ip, #4] + ldr r1, [r2, #0x34] + strb r1, [ip, #5] + strb r3, [ip, #6] + strb r0, [ip, #7] + ldr r0, [r2, #0x20] + lsr r0, r0, #0x10 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #8 + strb r0, [ip, #8] + ldr r0, [r2, #0x20] + lsr r0, r0, #0x10 + strb r0, [ip, #9] + ldr r0, [r2, #0x20] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #8 + strb r0, [ip, #0xa] + ldr r0, [r2, #0x20] + strb r0, [ip, #0xb] + add ip, ip, #0xc +_022CC300: + add r2, ip, #1 + mov lr, #0xff + sub r3, r2, r4 + mov r0, #0 + mov r1, #0x12c + strb lr, [ip] + bl ov00_022CC13C + mov r1, r0 + mov r0, r4 + sub r1, r1, r4 + bl ov00_022CBA58 + ldr r0, [sp] + pop {r3, r4, r5, pc} + .align 2, 0 +_022CC334: .4byte 0x023255CE +_022CC338: .4byte 0x02325078 + arm_func_end ov00_022CC234 + + arm_func_start ov00_022CC33C +ov00_022CC33C: @ 0x022CC33C + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #8 + add r1, r1, #1 + str r0, [sp] + rsb fp, r1, r1, lsl #4 + bl FUN_0207AE44 + lsr r4, r0, #0x10 + orr r4, r4, r1, lsl #16 + mov r5, #0 + b _022CC644 +_022CC364: + bl ov00_022CBAF0 + cmp r0, #0 + bne _022CC378 + bl ov00_022C8238 + b _022CC644 +_022CC378: + add r0, sp, #4 + bl ov00_022CB550 + ldr r1, [sp, #4] + mov r6, r0 + cmp r1, #0xf0 + bls _022CC63C + ldrb r0, [r6] + cmp r0, #2 + bne _022CC63C + ldrh r3, [r6, #6] + ldrh r2, [r6, #4] + lsl r0, r3, #8 + lsl r1, r2, #8 + orr r2, r1, r2, asr #8 + orr r1, r0, r3, asr #8 + lsl r0, r2, #0x10 + lsl r1, r1, #0x10 + lsr r2, r0, #0x10 + lsr r0, r1, #0x10 + orr r1, r0, r2, lsl #16 + ldr r0, [sp] + cmp r0, r1 + bne _022CC63C + ldr r1, _022CC684 @ =0x02325560 + add r0, r6, #0x1c + bl ov00_022C87F8 + cmp r0, #0 + bne _022CC63C + ldrb r3, [r6, #0x10] + ldrb r2, [r6, #0x11] + ldrb r1, [r6, #0x12] + ldrb r0, [r6, #0x13] + orr r3, r2, r3, lsl #8 + ldrb r2, [r6, #0xec] + orr r1, r0, r1, lsl #8 + lsl r0, r3, #0x10 + lsl r1, r1, #0x10 + lsr r5, r0, #0x10 + lsr r0, r1, #0x10 + cmp r2, #0x63 + orr r2, r0, r5, lsl #16 + ldrbeq r0, [r6, #0xed] + ldr r3, [sp, #4] + mov r5, #3 + cmpeq r0, #0x82 + ldrbeq r0, [r6, #0xee] + add r1, r6, r3 + cmpeq r0, #0x53 + ldrbeq r0, [r6, #0xef] + addeq r3, r6, #0xf0 + cmpeq r0, #0x63 + bne _022CC63C + mov r0, #0 + mov sb, #2 + mov sl, #1 + ldr ip, _022CC688 @ =0x02325078 + b _022CC628 +_022CC45C: + cmp r6, #0 + beq _022CC628 + cmp r6, #0x33 + bgt _022CC498 + bge _022CC590 + cmp r6, #6 + bgt _022CC61C + cmp r6, #1 + blt _022CC61C + beq _022CC4B4 + cmp r6, #3 + beq _022CC4E8 + cmp r6, #6 + beq _022CC51C + b _022CC61C +_022CC498: + cmp r6, #0x35 + bgt _022CC4A8 + beq _022CC5C4 + b _022CC61C +_022CC4A8: + cmp r6, #0x36 + beq _022CC5EC + b _022CC61C +_022CC4B4: + ldrb lr, [r3, #1] + ldrb r8, [r3, #2] + ldrb r7, [r3, #3] + ldrb r6, [r3, #4] + orr r8, r8, lr, lsl #8 + lsl r8, r8, #0x10 + orr r6, r6, r7, lsl #8 + lsl r6, r6, #0x10 + lsr r7, r8, #0x10 + lsr r6, r6, #0x10 + orr r6, r6, r7, lsl #16 + str r6, [ip, #0x1c] + b _022CC61C +_022CC4E8: + ldrb lr, [r3, #1] + ldrb r8, [r3, #2] + ldrb r7, [r3, #3] + ldrb r6, [r3, #4] + orr r8, r8, lr, lsl #8 + lsl r8, r8, #0x10 + orr r6, r6, r7, lsl #8 + lsl r6, r6, #0x10 + lsr r7, r8, #0x10 + lsr r6, r6, #0x10 + orr r6, r6, r7, lsl #16 + str r6, [ip, #0x2c] + b _022CC61C +_022CC51C: + ldrb r6, [r3] + cmp r6, #8 + strlo r0, [ip, #0x64] + blo _022CC55C + ldrb lr, [r3, #5] + ldrb r8, [r3, #6] + ldrb r7, [r3, #7] + ldrb r6, [r3, #8] + orr r8, r8, lr, lsl #8 + lsl r8, r8, #0x10 + orr r6, r6, r7, lsl #8 + lsl r6, r6, #0x10 + lsr r7, r8, #0x10 + lsr r6, r6, #0x10 + orr r6, r6, r7, lsl #16 + str r6, [ip, #0x64] +_022CC55C: + ldrb lr, [r3, #1] + ldrb r8, [r3, #2] + ldrb r7, [r3, #3] + ldrb r6, [r3, #4] + orr r8, r8, lr, lsl #8 + lsl r8, r8, #0x10 + orr r6, r6, r7, lsl #8 + lsl r6, r6, #0x10 + lsr r7, r8, #0x10 + lsr r6, r6, #0x10 + orr r6, r6, r7, lsl #16 + str r6, [ip, #0x60] + b _022CC61C +_022CC590: + ldrb lr, [r3, #1] + ldrb r8, [r3, #2] + ldrb r7, [r3, #3] + ldrb r6, [r3, #4] + orr r8, r8, lr, lsl #8 + lsl r8, r8, #0x10 + orr r6, r6, r7, lsl #8 + lsl r6, r6, #0x10 + lsr r7, r8, #0x10 + lsr r6, r6, #0x10 + orr r6, r6, r7, lsl #16 + str r6, [ip, #0x4c] + b _022CC61C +_022CC5C4: + ldrb r6, [r3, #1] + cmp r6, #2 + beq _022CC5E0 + cmp r6, #5 + moveq r5, sb + streq r2, [ip, #0x50] + b _022CC61C +_022CC5E0: + mov r5, sl + str r2, [ip, #0x34] + b _022CC61C +_022CC5EC: + ldrb r8, [r3, #1] + ldrb r7, [r3, #2] + ldrb r6, [r3, #3] + ldrb lr, [r3, #4] + orr r7, r7, r8, lsl #8 + lsl r7, r7, #0x10 + orr r6, lr, r6, lsl #8 + lsl r6, r6, #0x10 + lsr r7, r7, #0x10 + lsr r6, r6, #0x10 + orr r6, r6, r7, lsl #16 + str r6, [ip, #0x20] +_022CC61C: + ldrb r6, [r3] + add r6, r6, #1 + add r3, r3, r6 +_022CC628: + cmp r3, r1 + bhs _022CC63C + ldrb r6, [r3], #1 + cmp r6, #0xff + bne _022CC45C +_022CC63C: + ldr r0, [sp, #4] + bl ov00_022CB644 +_022CC644: + ldr r0, _022CC688 @ =0x02325078 + ldr r0, [r0, #0x48] + blx r0 + cmp r0, #0 + beq _022CC678 + cmp r5, #0 + bne _022CC678 + bl FUN_0207AE44 + lsr r0, r0, #0x10 + orr r0, r0, r1, lsl #16 + sub r0, r0, r4 + cmp r0, fp + blt _022CC364 +_022CC678: + mov r0, r5 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022CC684: .4byte 0x02325560 +_022CC688: .4byte 0x02325078 + arm_func_end ov00_022CC33C + + arm_func_start ov00_022CC68C +ov00_022CC68C: @ 0x022CC68C + push {r3, r4, r5, lr} + bl ov00_022CB1F0 + bl ov00_022CB164 + mov r1, #0x43 + sub r2, r1, #0x44 + mov r0, #0x44 + bl ov00_022CB190 + mov r5, #0 +_022CC6AC: + bl ov00_022CC170 + mov r1, r5 + bl ov00_022CC33C + mov r4, r0 + cmp r4, #1 + beq _022CC6D0 + add r5, r5, #1 + cmp r5, #4 + blt _022CC6AC +_022CC6D0: + bl ov00_022CB224 + cmp r4, #1 + moveq r0, #1 + movne r0, #0 + pop {r3, r4, r5, pc} + arm_func_end ov00_022CC68C + + arm_func_start ov00_022CC6E4 +ov00_022CC6E4: @ 0x022CC6E4 + push {r3, r4, r5, r6, r7, lr} + mov r4, r1 + mov r5, r0 + bl ov00_022CB1F0 + bl ov00_022CB164 + cmp r4, #1 + mov r0, #0x44 + bne _022CC718 + ldr r1, _022CC7DC @ =0x02325078 + ldr r2, [r1, #0x20] + mov r1, #0x43 + bl ov00_022CB190 + b _022CC724 +_022CC718: + mov r1, #0x43 + sub r2, r1, #0x44 + bl ov00_022CB190 +_022CC724: + mov r7, #0 +_022CC728: + mov r0, r4 + bl ov00_022CC234 + mov r1, r7 + bl ov00_022CC33C + movs r6, r0 + bne _022CC74C + add r7, r7, #1 + cmp r7, #4 + blt _022CC728 +_022CC74C: + bl ov00_022CB224 + cmp r6, #2 + bne _022CC780 + ldr r1, _022CC7DC @ =0x02325078 + mov r0, #1 + ldr r2, [r1, #0x4c] + lsr r2, r2, #1 + str r2, [r5] + ldr r2, [r1, #0x4c] + add r2, r2, r2, lsl #1 + lsr r2, r2, #3 + str r2, [r1, #0x38] + pop {r3, r4, r5, r6, r7, pc} +_022CC780: + ldr r0, _022CC7DC @ =0x02325078 + cmp r4, #1 + ldr r1, [r0, #0x38] + lsr r1, r1, #1 + str r1, [r0, #0x38] + str r1, [r5] + beq _022CC7A8 + cmp r4, #2 + beq _022CC7C8 + b _022CC7D4 +_022CC7A8: + cmp r1, #0x3c + bhs _022CC7D4 + mov r1, #1 + str r1, [r5] + ldr r1, [r0, #0x4c] + lsr r1, r1, #3 + str r1, [r0, #0x38] + b _022CC7D4 +_022CC7C8: + cmp r1, #0x3c + movlo r0, #1 + strlo r0, [r5] +_022CC7D4: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022CC7DC: .4byte 0x02325078 + arm_func_end ov00_022CC6E4 + + arm_func_start ov00_022CC7E0 +ov00_022CC7E0: @ 0x022CC7E0 + push {r4, lr} + bl ov00_022CB1F0 + bl ov00_022CB164 + ldr r1, _022CC844 @ =0x02325078 + mov r0, #0x44 + ldr r2, [r1, #0x20] + mov r1, #0x43 + bl ov00_022CB190 + ldr r4, _022CC848 @ =0x023255CE + mov r1, #7 + mov r0, r4 + mov r2, #0 + bl ov00_022CBFB0 + mov r1, #0xff + add r2, r0, #1 + strb r1, [r0] + mov r0, #0 + mov r1, #0x12c + sub r3, r2, r4 + bl ov00_022CC13C + sub r1, r0, r4 + mov r0, r4 + bl ov00_022CBA58 + bl ov00_022CB224 + pop {r4, pc} + .align 2, 0 +_022CC844: .4byte 0x02325078 +_022CC848: .4byte 0x023255CE + arm_func_end ov00_022CC7E0 + + arm_func_start ov00_022CC84C +ov00_022CC84C: @ 0x022CC84C + ldrb r2, [r0], #1 + cmp r2, #0 + bxeq lr +_022CC858: + and r1, r2, #0xc0 + cmp r1, #0xc0 + addeq r0, r0, #1 + bxeq lr + add r0, r0, r2 + ldrb r2, [r0], #1 + cmp r2, #0 + bne _022CC858 + bx lr + arm_func_end ov00_022CC84C + + arm_func_start ov00_022CC87C +ov00_022CC87C: @ 0x022CC87C + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x40 + mov sb, r2 + lsl r2, sb, #8 + mov sl, r1 + orr r1, r2, sb, asr #8 + strh r1, [sp, #4] + cmp sl, #0x20 + mov r6, #0 + movne r1, #1 + strhne r1, [sp, #6] + ldreq r1, _022CCB1C @ =0x00001001 + strh r6, [sp, #0xa] + strheq r1, [sp, #6] + mov r1, #0x100 + strh r1, [sp, #8] + add r1, sp, #0x10 + strh r6, [sp, #0xc] + strh r6, [sp, #0xe] + str r6, [sp] + ldrb r7, [r0], #1 + mov fp, r3 + ldr r8, [sp, #0x68] + add r2, r1, #1 + cmp r7, #0 + beq _022CC944 + mov r4, r6 + add r5, sp, #4 + mov r3, r6 +_022CC8F0: + cmp r7, #0x2e + beq _022CC920 + sub r6, r2, r5 + cmp r6, #0x3c + addge sp, sp, #0x40 + mvnge r0, #0 + popge {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r6, r4, #1 + mov r4, r6 + str r6, [sp] + strb r7, [r2], #1 + b _022CC938 +_022CC920: + strb r6, [r1] + mov r1, r2 + mov r4, r3 + mov r6, r3 + str r3, [sp] + add r2, r2, #1 +_022CC938: + ldrb r7, [r0], #1 + cmp r7, #0 + bne _022CC8F0 +_022CC944: + ldr r0, [sp] + mov r3, #0 + strb r0, [r1] + strb r3, [r2] + lsr r0, sl, #8 + strb r0, [r2, #1] + strb sl, [r2, #2] + strb r3, [r2, #3] + mov r3, #1 + add r0, sp, #4 + add r1, r2, #5 + sub r1, r1, r0 + strb r3, [r2, #4] + bl ov00_022CBA58 + mov r4, #0 + bl FUN_0207AE44 + lsr r5, r0, #0x10 + orr r5, r5, r1, lsl #16 + b _022CCADC +_022CC990: + bl ov00_022CBAF0 + cmp r0, #0 + bne _022CC9A4 + bl ov00_022C8238 + b _022CCADC +_022CC9A4: + add r0, sp, #0 + bl ov00_022CB550 + ldr r1, [sp] + cmp r1, #0xc + bls _022CCAD4 + ldrh r3, [r0] + lsl r2, r3, #8 + orr r2, r2, r3, asr #8 + lsl r2, r2, #0x10 + cmp sb, r2, lsr #16 + bne _022CCAD4 + ldrb r2, [r0, #3] + and r2, r2, #0xf + cmp r2, #3 + mvneq r4, #0 + beq _022CCAD4 + cmp r2, #0 + bne _022CCAD4 + ldrb r3, [r0, #4] + ldrb r2, [r0, #5] + add r6, r0, r1 + add r0, r0, #0xc + orr r1, r2, r3, lsl #8 + lsl r1, r1, #0x10 + lsrs r1, r1, #0x10 + sub r7, r1, #1 + beq _022CCA24 +_022CCA10: + bl ov00_022CC84C + cmp r7, #0 + add r0, r0, #4 + sub r7, r7, #1 + bne _022CCA10 +_022CCA24: + cmp r0, r6 + bhs _022CCAD4 +_022CCA2C: + bl ov00_022CC84C + ldrb r7, [r0, #8] + ldrb r1, [r0, #9] + ldrb r3, [r0] + ldrb r2, [r0, #1] + orr r1, r1, r7, lsl #8 + lsl r1, r1, #0x10 + orr r2, r2, r3, lsl #8 + lsl r2, r2, #0x10 + cmp sl, r2, lsr #16 + lsr r2, r1, #0x10 + bne _022CCAC4 + cmp sl, #0xc + beq _022CCAA4 + add r4, r0, #8 + add r0, r0, #6 + add r6, r4, r2 + add r1, r0, r2 + ldrb r3, [r0, r2] + ldrb r0, [r1, #1] + ldrb r2, [r4, r2] + ldrb r1, [r6, #1] + orr r0, r0, r3, lsl #8 + lsl r0, r0, #0x10 + orr r1, r1, r2, lsl #8 + lsl r1, r1, #0x10 + lsr r2, r0, #0x10 + lsr r0, r1, #0x10 + orr r4, r0, r2, lsl #16 + b _022CCAD4 +_022CCAA4: + cmp r2, r8 + movhi r4, #2 + bhi _022CCAD4 + mov r1, fp + add r0, r0, #0xa + bl FUN_0207C4C8 + mov r4, #1 + b _022CCAD4 +_022CCAC4: + add r1, r2, #0xa + add r0, r0, r1 + cmp r0, r6 + blo _022CCA2C +_022CCAD4: + ldr r0, [sp] + bl ov00_022CB644 +_022CCADC: + ldr r0, _022CCB20 @ =0x02325078 + ldr r0, [r0, #0x48] + blx r0 + cmp r0, #0 + beq _022CCB10 + cmp r4, #0 + bne _022CCB10 + bl FUN_0207AE44 + lsr r0, r0, #0x10 + orr r0, r0, r1, lsl #16 + sub r0, r0, r5 + cmp r0, #0xf + blt _022CC990 +_022CCB10: + mov r0, r4 + add sp, sp, #0x40 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022CCB1C: .4byte 0x00001001 +_022CCB20: .4byte 0x02325078 + arm_func_end ov00_022CC87C + + arm_func_start ov00_022CCB24 +ov00_022CCB24: @ 0x022CCB24 + str r0, [r1] + mov ip, #0 + mov r2, #0xa +_022CCB30: + ldrb r3, [r0] + sub r3, r3, #0x30 + and r3, r3, #0xff + cmp r3, #9 + mlals ip, r2, ip, r3 + addls r0, r0, #1 + strls r0, [r1] + bls _022CCB30 + mov r0, ip + bx lr + arm_func_end ov00_022CCB24 + + arm_func_start ov00_022CCB58 +ov00_022CCB58: @ 0x022CCB58 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #4 + mov r5, #0 + mov r8, r0 + mov r7, r1 + mov r6, r5 + add r4, sp, #0 +_022CCB74: + mov r0, r8 + mov r1, r4 + bl ov00_022CCB24 + ldr r2, [sp] + cmp r8, r2 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, pc} + mov r8, r2 + cmp r0, #0xff + bhi _022CCBC8 + cmp r6, #3 + ldrbne r1, [r2] + addne r8, r2, #1 + cmpne r1, #0x2e + bne _022CCBC8 + cmp r6, #3 + bne _022CCBD4 + ldrb r1, [r8] + cmp r1, #0 + beq _022CCBD4 +_022CCBC8: + add sp, sp, #4 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, pc} +_022CCBD4: + add r6, r6, #1 + cmp r6, #4 + orr r5, r0, r5, lsl #8 + blt _022CCB74 + str r5, [r7] + mov r0, #1 + add sp, sp, #4 + pop {r3, r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022CCB58 + + arm_func_start ov00_022CCBF4 +ov00_022CCBF4: @ 0x022CCBF4 + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + movs r5, r1 + mov r6, r0 + mov r4, r2 + addeq sp, sp, #4 + mvneq r0, #0 + popeq {r3, r4, r5, r6, pc} + bl ov00_022CB1F0 + bl ov00_022CB164 + mov r2, r5 + mov r0, #0 + mov r1, #0x35 + bl ov00_022CB190 + mov r0, r6 + mov r2, r4 + mov r3, #0 + str r3, [sp] + mov r1, #1 + bl ov00_022CC87C + mov r4, r0 + bl ov00_022CB224 + mov r0, r4 + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_022CCBF4 + + arm_func_start ov00_022CCC58 +ov00_022CCC58: @ 0x022CCC58 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0xc + ldr r2, _022CCD88 @ =0x02325078 + mov r6, #0 + ldr r5, [r2, #0x70] + ldr r3, [r2, #0x68] + ldr r1, [r2, #0x6c] + umull r8, r7, r5, r3 + ldr sb, [r2, #0x78] + mla r7, r5, r1, r7 + ldr r4, [r2, #0x74] + adds fp, sb, r8 + mla r7, r4, r3, r7 + ldr r8, [r2, #0x7c] + umull r3, r1, r5, fp + adc sl, r8, r7 + mla r1, r5, sl, r1 + str fp, [r2, #0x68] + lsl r7, r6, #0x10 + adds r5, sb, r3 + mla r1, r4, fp, r1 + str sl, [r2, #0x6c] + orr r7, r7, sl, lsr #16 + adc r4, r8, r1 + lsl r3, r6, #0x10 + str r5, [r2, #0x68] + orr r3, r3, r4, lsr #16 + add r1, sp, #8 + mov sl, r0 + strh r7, [sp, #2] + str r4, [r2, #0x6c] + strh r3, [sp, #4] + bl ov00_022CCB58 + cmp r0, #0 + ldrne r0, [sp, #8] + addne sp, sp, #0xc + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, #1 + mov fp, r6 + ldr r7, _022CCD8C @ =0x023250D8 + strb r0, [sp] + strb r0, [sp, #1] + add r6, sp, #2 + mov r5, fp + mvn r4, #0 +_022CCD0C: + mov r8, #0 + add sb, sp, #0 +_022CCD14: + ldrb r0, [sb] + cmp r0, #0 + beq _022CCD4C + lsl r0, r8, #1 + ldrh r2, [r6, r0] + ldr r1, [r7, r8, lsl #2] + mov r0, sl + bl ov00_022CCBF4 + cmp r0, #0 + str r0, [sp, #8] + cmpne r0, r4 + bne _022CCD68 + cmp r0, r4 + strbeq r5, [sb] +_022CCD4C: + add r8, r8, #1 + cmp r8, #2 + add sb, sb, #1 + blt _022CCD14 + add fp, fp, #1 + cmp fp, #3 + blt _022CCD0C +_022CCD68: + ldr r1, [sp, #8] + mvn r0, #0 + cmp r1, r0 + moveq r0, #0 + streq r0, [sp, #8] + ldr r0, [sp, #8] + add sp, sp, #0xc + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022CCD88: .4byte 0x02325078 +_022CCD8C: .4byte 0x023250D8 + arm_func_end ov00_022CCC58 + + arm_func_start ov00_022CCD90 +ov00_022CCD90: @ 0x022CCD90 + push {r4, lr} + mov r4, r0 + ldr r0, _022CCDC4 @ =0x02000BF4 + bl FUN_02000B9C + ldr r0, _022CCDC8 @ =0x02318868 + ldr r1, [r0] + cmp r1, #0 + movne r0, #0 + popne {r4, pc} + str r4, [r0] + bl ov00_022CCE0C + bl ov00_022CCDCC + pop {r4, pc} + .align 2, 0 +_022CCDC4: .4byte 0x02000BF4 +_022CCDC8: .4byte 0x02318868 + arm_func_end ov00_022CCD90 + + arm_func_start ov00_022CCDCC +ov00_022CCDCC: @ 0x022CCDCC + push {r4, lr} + ldr r0, _022CCE00 @ =0x02318868 + ldr r0, [r0] + ldr r0, [r0, #0x20] + bl ov00_022CD004 + movs r4, r0 + bmi _022CCDF8 + ldr r0, _022CCE04 @ =0x023188A0 + bl ov00_022CD338 + ldr r1, _022CCE08 @ =0x023268C0 + str r0, [r1, #0xc] +_022CCDF8: + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_022CCE00: .4byte 0x02318868 +_022CCE04: .4byte 0x023188A0 +_022CCE08: .4byte 0x023268C0 + arm_func_end ov00_022CCDCC + + arm_func_start ov00_022CCE0C +ov00_022CCE0C: @ 0x022CCE0C + push {r3, r4, r5, lr} + ldr r0, _022CCF40 @ =0x02318868 + ldr r4, _022CCF44 @ =0x023268D0 + ldr r5, [r0] + mov r0, r4 + mov r1, #0 + mov r2, #0x30 + bl FUN_0207C40C + ldr r1, [r5, #0x18] + ldr r0, _022CCF48 @ =0x023268C0 + ldr r2, _022CCF4C @ =0x022CCFEC + str r1, [r0, #0x14] + ldr r3, [r5, #0x1c] + mov r1, #0 + str r3, [r0, #0x18] + str r2, [r0, #0x20] + str r1, [r0, #0x24] + str r1, [r0, #0x28] + ldr r1, [r0] + str r1, [r0, #0x3c] + ldr r0, [r5, #0x24] + cmp r0, #0 + moveq r0, #0x4000 + str r0, [r4, #0x20] + ldr r0, [r5, #0x28] + cmp r0, #0 + bne _022CCE8C + ldr r1, _022CCF40 @ =0x02318868 + ldr r0, [r4, #0x20] + ldr r1, [r1] + ldr r1, [r1, #0x18] + blx r1 +_022CCE8C: + str r0, [r4, #0x1c] + ldr r1, [r5, #0x30] + ldr lr, [r5, #0x34] + cmp r1, #0 + moveq r1, #0x240 + sub ip, r1, #0x28 + cmp lr, #0 + moveq lr, #0x10c0 + ldr r2, _022CCF50 @ =0x02318888 + add r0, lr, lr, lsr #31 + ldr r1, _022CCF54 @ =0x023250C8 + mov r3, #0 + strh lr, [r2, #2] + asr r0, r0, #1 + strh r0, [r2, #4] + str ip, [r4, #0x24] + str r3, [r1] + ldr r0, [r5] + mov r2, #1 + cmp r0, #0 + beq _022CCF00 + ldr r1, _022CCF58 @ =0x022CCFD4 + ldr r0, _022CCF48 @ =0x023268C0 + str r3, [r4] + str r1, [r4, #0xc] + str r2, [r0, #8] + ldr r0, [r0, #4] + str r0, [r4, #0x28] + b _022CCF14 +_022CCF00: + ldr r0, _022CCF48 @ =0x023268C0 + ldr r1, _022CCF5C @ =0x022CCF68 + str r3, [r0, #8] + str r2, [r4] + str r1, [r4, #0xc] +_022CCF14: + ldr r0, [r5, #0x2c] + cmp r0, #0 + moveq r0, #0xb + bl ov00_022C8550 + ldr r0, _022CCF60 @ =ov00_022C8A74 + bl ov00_022D71E4 + ldr r0, _022CCF64 @ =ov00_022CEBDC + bl ov00_022C84F8 + mov r0, r4 + bl ov00_022C826C + pop {r3, r4, r5, pc} + .align 2, 0 +_022CCF40: .4byte 0x02318868 +_022CCF44: .4byte 0x023268D0 +_022CCF48: .4byte 0x023268C0 +_022CCF4C: .4byte 0x022CCFEC +_022CCF50: .4byte 0x02318888 +_022CCF54: .4byte 0x023250C8 +_022CCF58: .4byte 0x022CCFD4 +_022CCF5C: .4byte 0x022CCF68 +_022CCF60: .4byte ov00_022C8A74 +_022CCF64: .4byte ov00_022CEBDC + arm_func_end ov00_022CCE0C +_022CCF68: + .byte 0x4C, 0x00, 0x9F, 0xE5, 0x4C, 0x10, 0x9F, 0xE5 + .byte 0x00, 0xC0, 0x90, 0xE5, 0x48, 0x00, 0x9F, 0xE5, 0x04, 0x30, 0x9C, 0xE5, 0x44, 0x20, 0x9F, 0xE5 + .byte 0x00, 0x30, 0x81, 0xE5, 0x08, 0x30, 0x9C, 0xE5, 0x3C, 0x10, 0x9F, 0xE5, 0x00, 0x30, 0x80, 0xE5 + .byte 0x0C, 0x30, 0x9C, 0xE5, 0x34, 0x00, 0x9F, 0xE5, 0x00, 0x30, 0x82, 0xE5, 0x10, 0x20, 0x9C, 0xE5 + .byte 0x00, 0x20, 0x81, 0xE5, 0x14, 0x20, 0x9C, 0xE5, 0x04, 0x20, 0x81, 0xE5, 0x08, 0x10, 0x90, 0xE5 + .byte 0x02, 0x10, 0x81, 0xE3, 0x08, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x68, 0x88, 0x31, 0x02 + .byte 0xC8, 0x50, 0x32, 0x02, 0x94, 0x50, 0x32, 0x02, 0xA4, 0x50, 0x32, 0x02, 0xD8, 0x50, 0x32, 0x02 + .byte 0xC0, 0x68, 0x32, 0x02, 0x0C, 0x00, 0x9F, 0xE5, 0x08, 0x10, 0x90, 0xE5, 0x02, 0x10, 0x81, 0xE3 + .byte 0x08, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xC0, 0x68, 0x32, 0x02, 0x08, 0x40, 0x2D, 0xE9 + .byte 0x52, 0x28, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03 + .byte 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov00_022CD004 +ov00_022CD004: @ 0x022CD004 + push {r4, r5, r6, lr} + mov r4, r0 + mov r0, #0x2c + mul r1, r4, r0 + ldr r0, _022CD08C @ =0x02318868 + lsl r2, r4, #2 + add r2, r2, #3 + ldr r0, [r0] + add r1, r1, #3 + bic r5, r2, #3 + bic r2, r1, #3 + ldr r1, [r0, #0x18] + add r0, r2, r5 + blx r1 + movs r6, r0 + mvneq r0, #0 + popeq {r4, r5, r6, pc} + ldr r0, _022CD090 @ =0x02326904 + mov r1, r6 + mov r2, r4 + bl FUN_02079DB8 + cmp r4, #0 + add r5, r6, r5 + ble _022CD07C +_022CD064: + mov r0, r5 + bl ov00_022CD148 + sub r4, r4, #1 + cmp r4, #0 + add r5, r5, #0x2c + bgt _022CD064 +_022CD07C: + ldr r1, _022CD094 @ =0x02326900 + mov r0, #0 + str r6, [r1] + pop {r4, r5, r6, pc} + .align 2, 0 +_022CD08C: .4byte 0x02318868 +_022CD090: .4byte 0x02326904 +_022CD094: .4byte 0x02326900 + arm_func_end ov00_022CD004 + + arm_func_start ov00_022CD098 +ov00_022CD098: @ 0x022CD098 + push {r3, lr} + ldr r0, _022CD0D8 @ =0x02326900 + ldr r2, [r0, #0x20] + ldr r1, [r0, #0x18] + cmp r2, r1 + mvnlt r0, #0 + poplt {r3, pc} + ldr r1, _022CD0DC @ =0x02318868 + ldr r0, [r0] + ldr r1, [r1] + ldr r1, [r1, #0x1c] + blx r1 + ldr r1, _022CD0D8 @ =0x02326900 + mov r0, #0 + str r0, [r1] + pop {r3, pc} + .align 2, 0 +_022CD0D8: .4byte 0x02326900 +_022CD0DC: .4byte 0x02318868 + arm_func_end ov00_022CD098 + + arm_func_start ov00_022CD0E0 +ov00_022CD0E0: @ 0x022CD0E0 + push {r3, lr} + mov r2, r0 + ldr r0, _022CD104 @ =0x02326904 + add r1, sp, #0 + bl FUN_02079E74 + cmp r0, #0 + ldrne r0, [sp] + moveq r0, #0 + pop {r3, pc} + .align 2, 0 +_022CD104: .4byte 0x02326904 + arm_func_end ov00_022CD0E0 + + arm_func_start ov00_022CD108 +ov00_022CD108: @ 0x022CD108 + push {r4, r5, r6, lr} + mov r4, r2 + mov r6, r0 + mov r0, r4 + mov r5, r1 + bl ov00_022CD0E0 + cmp r0, #0 + popeq {r4, r5, r6, pc} + str r6, [r0] + str r5, [r0, #4] + mov r1, #0 + str r1, [r0, #8] + ldrsb r1, [r5, #0x73] + strb r1, [r0, #0xc] + strb r4, [r0, #0xd] + pop {r4, r5, r6, pc} + arm_func_end ov00_022CD108 + + arm_func_start ov00_022CD148 +ov00_022CD148: @ 0x022CD148 + push {r3, lr} + movs r1, r0 + popeq {r3, pc} + ldr r0, _022CD164 @ =0x02326904 + mov r2, #0 + bl FUN_02079DE0 + pop {r3, pc} + .align 2, 0 +_022CD164: .4byte 0x02326904 + arm_func_end ov00_022CD148 + + arm_func_start ov00_022CD168 +ov00_022CD168: @ 0x022CD168 + ldr r1, [r0, #0x64] + cmp r1, #0 + ldreq r1, [r0, #0x68] + mov r0, r1 + bx lr + arm_func_end ov00_022CD168 + + arm_func_start ov00_022CD17C +ov00_022CD17C: @ 0x022CD17C + push {r3, r4, r5, lr} + movs r5, r1 + beq _022CD194 + ldrsb r1, [r5, #0xd] + tst r1, #1 + beq _022CD19C +_022CD194: + mov r2, #1 + b _022CD1A0 +_022CD19C: + mov r2, #0 +_022CD1A0: + mov r1, r5 + bl FUN_02079DE0 + movs r4, r0 + bne _022CD1B8 + mov r0, r5 + bl ov00_022CD148 +_022CD1B8: + cmp r4, #0 + movne r0, #0 + mvneq r0, #0x29 + pop {r3, r4, r5, pc} + arm_func_end ov00_022CD17C + + arm_func_start ov00_022CD1C8 +ov00_022CD1C8: @ 0x022CD1C8 + push {r4, lr} + mov r4, r1 + bl ov00_022CD168 + mov r1, r4 + bl ov00_022CD17C + pop {r4, pc} + arm_func_end ov00_022CD1C8 + + arm_func_start ov00_022CD1E0 +ov00_022CD1E0: @ 0x022CD1E0 + push {r3, r4, r5, lr} + sub sp, sp, #0x28 + mov r4, r1 + ldrsb r2, [r4, #0xd] + mov r5, r0 + cmp r2, #1 + bne _022CD234 + add r0, sp, #8 + add r1, sp, #0 + mov r2, #1 + bl FUN_02079DB8 + add r2, sp, #8 + mov r0, r5 + mov r1, r4 + str r2, [r4, #8] + bl ov00_022CD17C + add r0, sp, #8 + add r1, sp, #4 + mov r2, #1 + bl FUN_02079E74 + b _022CD244 +_022CD234: + mov r2, #0 + str r2, [r4, #8] + bl ov00_022CD17C + str r0, [sp, #4] +_022CD244: + ldr r0, [sp, #4] + add sp, sp, #0x28 + pop {r3, r4, r5, pc} + arm_func_end ov00_022CD1E0 + + arm_func_start ov00_022CD250 +ov00_022CD250: @ 0x022CD250 + ldr ip, _022CD25C @ =ov00_022CD1E0 + ldr r0, [r0, #0x64] + bx ip + .align 2, 0 +_022CD25C: .4byte ov00_022CD1E0 + arm_func_end ov00_022CD250 + + arm_func_start ov00_022CD260 +ov00_022CD260: @ 0x022CD260 + ldr ip, _022CD26C @ =ov00_022CD1E0 + ldr r0, [r0, #0x68] + bx ip + .align 2, 0 +_022CD26C: .4byte ov00_022CD1E0 + arm_func_end ov00_022CD260 + + arm_func_start ov00_022CD270 +ov00_022CD270: @ 0x022CD270 + push {r4, lr} + mov r4, r1 + bl ov00_022CD168 + mov r1, r4 + bl ov00_022CD1E0 + pop {r4, pc} + arm_func_end ov00_022CD270 + + arm_func_start ov00_022CD288 +ov00_022CD288: @ 0x022CD288 + push {r3, r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #4 + mov r4, #0 + mov sb, r0 + mov sl, r4 + add r6, sp, #0 + mov r5, #1 +_022CD2A4: + mov r0, sb + mov r1, r6 + mov r2, r5 + bl FUN_02079FB4 + ldr r0, [sp] + cmp r0, #0 + addeq sp, sp, #4 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, pc} + ldr r1, [r0] + blx r1 + mov r8, r0 + bl FUN_0207B7E4 + mov r7, r0 + bl FUN_02079C14 + mov r0, sb + mov r1, r4 + mov r2, r4 + bl FUN_02079E74 + ldr r0, [sp] + ldr r0, [r0, #4] + cmp r0, #0 + strne r8, [r0, #0x6c] + ldr r0, [sp] + ldr r0, [r0, #8] + cmp r0, #0 + beq _022CD318 + mov r1, r8 + mov r2, sl + bl FUN_02079DE0 +_022CD318: + ldr r0, [sp] + bl ov00_022CD148 + bl FUN_02079C48 + mov r0, r7 + bl FUN_0207B7F8 + b _022CD2A4 + arm_func_end ov00_022CD288 +_022CD330: + .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF8, 0x87, 0xBD, 0xE8 + + arm_func_start ov00_022CD338 +ov00_022CD338: @ 0x022CD338 + push {r4, lr} + bl ov00_022CD3E8 + movs r4, r0 + mvneq r0, #0x30 + popeq {r4, pc} + ldr r0, _022CD370 @ =0x022CD374 + mov r1, r4 + mov r2, #1 + bl ov00_022CD108 + mov r1, r0 + mov r0, r4 + bl ov00_022CD270 + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_022CD370: .4byte 0x022CD374 + arm_func_end ov00_022CD338 +_022CD374: + .byte 0x10, 0x40, 0x2D, 0xE9, 0x04, 0x40, 0x90, 0xE5, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x6C, 0xF7, 0xFF, 0xEB, 0xD3, 0x07, 0xD4, 0xE1, 0x68, 0x10, 0x94, 0xE5, 0x04, 0x00, 0x50, 0xE3 + .byte 0x00, 0xF1, 0x8F, 0x90, 0x0E, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA + .byte 0x0A, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00, 0xEA, 0xFF, 0xFF, 0xFF, 0xEA, 0x20, 0x00, 0x81, 0xE2 + .byte 0xA3, 0xF7, 0xFF, 0xEB, 0x8D, 0xF7, 0xFF, 0xEB, 0x05, 0x00, 0x00, 0xEA, 0x8B, 0xF7, 0xFF, 0xEB + .byte 0x67, 0xF7, 0xFF, 0xEB, 0x18, 0x00, 0x9F, 0xE5, 0xA3, 0xF7, 0xFF, 0xEB, 0x00, 0x00, 0x00, 0xEA + .byte 0x63, 0xF7, 0xFF, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0xB0, 0x07, 0xC4, 0xE1, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x10, 0x80, 0xBD, 0xE8, 0x10, 0xE0, 0x2C, 0x02 + + arm_func_start ov00_022CD3E8 +ov00_022CD3E8: @ 0x022CD3E8 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + bl ov00_022CD450 + mov r4, r0 + bl FUN_0207B7E4 + ldr r1, _022CD44C @ =0x02318868 + mov r6, r0 + ldr r1, [r1] + mov r0, r4 + ldr r1, [r1, #0x18] + blx r1 + movs r5, r0 + beq _022CD43C + mov r2, r4 + mov r1, #0 + bl FUN_0207C40C + mov r0, r5 + mov r1, r7 + bl ov00_022CD4F8 + mov r0, r5 + bl ov00_022CF09C +_022CD43C: + mov r0, r6 + bl FUN_0207B7F8 + mov r0, r5 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022CD44C: .4byte 0x02318868 + arm_func_end ov00_022CD3E8 + + arm_func_start ov00_022CD450 +ov00_022CD450: @ 0x022CD450 + push {r3, r4, r5, lr} + mov r5, r0 + ldrh r0, [r5, #2] + mov r4, #0x80 + cmp r0, #0 + beq _022CD48C + add r4, r4, #0x114 + bl ov00_022CF090 + add r4, r4, r0 + ldrh r0, [r5, #8] + bl ov00_022CF090 + add r4, r4, r0 + add r0, r5, #0x10 + bl ov00_022CD4D0 + add r4, r4, r0 +_022CD48C: + ldrh r0, [r5, #6] + cmp r0, #0 + beq _022CD4C8 + add r4, r4, #0x110 + bl ov00_022CF090 + add r4, r4, r0 + ldrh r0, [r5, #0xa] + bl ov00_022CF090 + add r4, r4, r0 + ldrh r0, [r5, #0xc] + bl ov00_022CF090 + add r4, r4, r0 + add r0, r5, #0x14 + bl ov00_022CD4D0 + add r4, r4, r0 +_022CD4C8: + mov r0, r4 + pop {r3, r4, r5, pc} + arm_func_end ov00_022CD450 + + arm_func_start ov00_022CD4D0 +ov00_022CD4D0: @ 0x022CD4D0 + push {r3, r4, r5, lr} + mov r5, r0 + ldrb r0, [r5, #3] + lsl r0, r0, #2 + bl ov00_022CF090 + mov r4, r0 + ldrh r0, [r5] + bl ov00_022CF090 + add r0, r4, r0 + pop {r3, r4, r5, pc} + arm_func_end ov00_022CD4D0 + + arm_func_start ov00_022CD4F8 +ov00_022CD4F8: @ 0x022CD4F8 + push {r3, r4, r5, r6, r7, lr} + mov r5, r1 + ldrsb r1, [r5] + mov r6, r0 + add r4, r6, #0x80 + strb r1, [r6, #0x73] + ldrsb r0, [r5, #1] + strb r0, [r6, #0x72] + ldrh r0, [r5, #2] + cmp r0, #0 + beq _022CD578 + str r4, [r6, #0x64] + ldrh r2, [r5, #4] + mov r1, r4 + add r0, r4, #0x114 + strh r2, [r4, #0xfc] + add r2, r5, #0x10 + mov r7, r4 + bl ov00_022CD61C + ldrh r2, [r5, #2] + add r1, r6, #0x3c + bl ov00_022CD5F4 + ldrh r2, [r5, #8] + add r1, r6, #0x50 + bl ov00_022CD5F4 + ldrh r3, [r5, #0xe] + add r1, r7, #0x100 + mov r2, #0 + strh r3, [r1, #0xa] + str r2, [r7, #0x110] + mov r4, r0 + str r2, [r7, #0x10c] +_022CD578: + ldrh r0, [r5, #6] + cmp r0, #0 + beq _022CD5D8 + str r4, [r6, #0x68] + mov r1, r4 + str r6, [r4, #0x10c] + add r0, r4, #0x110 + add r2, r5, #0x14 + mov r7, r4 + bl ov00_022CD61C + ldrh r2, [r5, #6] + add r1, r6, #0x48 + bl ov00_022CD5F4 + ldrh r2, [r5, #0xa] + add r1, r6, #0x58 + bl ov00_022CD5F4 + ldrh r2, [r5, #0xc] + add r1, r4, #0xf8 + bl ov00_022CD5F4 + mov r1, #0 + str r1, [r7, #0x108] + mov r4, r0 + str r1, [r7, #0x104] + b _022CD5E8 +_022CD5D8: + ldr r0, _022CD5F0 @ =0x023268CC + ldr r0, [r0] + ldr r0, [r0, #0x68] + str r0, [r6, #0x68] +_022CD5E8: + mov r0, r4 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022CD5F0: .4byte 0x023268CC + arm_func_end ov00_022CD4F8 + + arm_func_start ov00_022CD5F4 +ov00_022CD5F4: @ 0x022CD5F4 + push {r4, lr} + mov r4, r0 + cmp r2, #0 + moveq r0, #0 + str r0, [r1, #4] + mov r0, r2 + str r2, [r1] + bl ov00_022CF090 + add r0, r4, r0 + pop {r4, pc} + arm_func_end ov00_022CD5F4 + + arm_func_start ov00_022CD61C +ov00_022CD61C: @ 0x022CD61C + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + mov r5, r2 + mov r7, r0 + mov r0, r5 + mov r6, r1 + bl ov00_022CD4D0 + mov r4, r0 + ldrb r2, [r5, #3] + mov r0, r6 + mov r1, r7 + bl FUN_02079DB8 + add r0, r6, #0xe0 + bl FUN_0207A030 + ldrh r2, [r5] + add r0, r6, #0x20 + ldr r1, _022CD68C @ =ov00_022CD288 + str r2, [sp] + ldrb ip, [r5, #2] + mov r2, r6 + add r3, r7, r4 + str ip, [sp, #4] + bl FUN_02079560 + add r0, r6, #0x20 + bl FUN_02079940 + add r0, r7, r4 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022CD68C: .4byte ov00_022CD288 + arm_func_end ov00_022CD61C + + arm_func_start FUN_022CD690 +FUN_022CD690: @ 0x022CD690 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + bl ov00_022CF154 + cmp r0, #0 + mvnne r0, #0x1b + popne {r3, r4, r5, pc} + cmp r5, #0 + mov r1, #0 + beq _022CD6C4 + ldrsh r0, [r5, #0x70] + tst r0, #1 + movne r1, #1 +_022CD6C4: + cmp r1, #0 + mvneq r0, #0x26 + popeq {r3, r4, r5, pc} + ldrsh r0, [r5, #0x70] + tst r0, #2 + mvnne r0, #6 + popne {r3, r4, r5, pc} + strh r4, [r5, #0x74] + ldrsb r0, [r5, #0x73] + cmp r0, #1 + movne r0, #0 + popne {r3, r4, r5, pc} + mov r0, r5 + bl ov00_022CD7E8 + pop {r3, r4, r5, pc} + arm_func_end FUN_022CD690 + + arm_func_start ov00_022CD700 +ov00_022CD700: @ 0x022CD700 + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl ov00_022CF154 + cmp r0, #0 + bne _022CD728 + ldrsh r0, [r6, #0x70] + tst r0, #8 + beq _022CD730 +_022CD728: + mvn r0, #0x1b + pop {r4, r5, r6, pc} +_022CD730: + cmp r6, #0 + mov r1, #0 + beq _022CD748 + ldrsh r0, [r6, #0x70] + tst r0, #1 + movne r1, #1 +_022CD748: + cmp r1, #0 + mvneq r0, #0x26 + popeq {r4, r5, r6, pc} + ldrsb r0, [r6, #0x73] + mov r1, #1 + cmp r0, #0 + cmpne r0, #4 + movne r1, #0 + cmp r1, #0 + beq _022CD7D4 + ldrsh r0, [r6, #0x70] + tst r0, #4 + beq _022CD790 + ldrsb r0, [r6, #0x72] + cmp r0, #1 + mvneq r0, #0x1d + movne r0, #0 + pop {r4, r5, r6, pc} +_022CD790: + ldrsh r0, [r6, #0x70] + tst r0, #2 + beq _022CD7B4 + ldrsh r0, [r6, #0x70] + tst r0, #0x40 + ldrne r0, [r6, #0x6c] + ldreq r0, _022CD7E4 @ =0x0231886C + ldreq r0, [r0] + pop {r4, r5, r6, pc} +_022CD7B4: + strh r5, [r6, #0x76] + mov r0, r6 + str r4, [r6, #0x78] + bl ov00_022CD7E8 + ldrsb r1, [r6, #0x72] + cmp r1, #1 + mvnne r0, #0x19 + pop {r4, r5, r6, pc} +_022CD7D4: + strh r5, [r6, #0x76] + str r4, [r6, #0x78] + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_022CD7E4: .4byte 0x0231886C + arm_func_end ov00_022CD700 + + arm_func_start ov00_022CD7E8 +ov00_022CD7E8: @ 0x022CD7E8 + push {r4, lr} + mov r4, r0 + ldrsb r2, [r4, #0x72] + ldr r0, _022CD83C @ =ov00_022CD840 + mov r1, r4 + bl ov00_022CD108 + movs r1, r0 + mvneq r0, #0x20 + popeq {r4, pc} + ldrh r2, [r4, #0x74] + mov r0, r4 + strh r2, [r1, #0x10] + ldrh r2, [r4, #0x76] + strh r2, [r1, #0x12] + ldr r2, [r4, #0x78] + str r2, [r1, #0x14] + ldrsh r2, [r4, #0x70] + orr r2, r2, #2 + strh r2, [r4, #0x70] + bl ov00_022CD250 + pop {r4, pc} + .align 2, 0 +_022CD83C: .4byte ov00_022CD840 + arm_func_end ov00_022CD7E8 + + arm_func_start ov00_022CD840 +ov00_022CD840: @ 0x022CD840 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + ldr r4, [r7, #4] + mov r6, #0 + ldr r5, [r4, #0x64] + add r0, r5, #0xe0 + bl FUN_0207A048 + ldrh r0, [r7, #0x10] + ldrh r1, [r7, #0x12] + ldr r2, [r7, #0x14] + bl ov00_022CB190 + mov r0, r6 + str r0, [r5, #0xf8] + ldrsb r0, [r7, #0xc] + cmp r0, #0 + cmpne r0, #4 + bne _022CD88C + bl ov00_022CB32C + mov r6, r0 +_022CD88C: + add r0, r5, #0xe0 + bl FUN_0207A0CC + cmp r6, #0 + beq _022CD8B0 + ldrsh r1, [r4, #0x70] + mvn r0, #0x4b + orr r1, r1, #0x40 + strh r1, [r4, #0x70] + pop {r3, r4, r5, r6, r7, pc} +_022CD8B0: + ldrsh r1, [r4, #0x70] + mov r0, #0 + orr r1, r1, #4 + strh r1, [r4, #0x70] + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022CD840 + + arm_func_start ov00_022CD8C4 +ov00_022CD8C4: @ 0x022CD8C4 + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0xc + mov sb, r0 + mov r8, r1 + mov r7, r2 + mov r6, r3 + bl ov00_022CF154 + cmp r0, #0 + addne sp, sp, #0xc + mvnne r0, #0x1b + popne {r4, r5, r6, r7, r8, sb, pc} + ldr r0, [sp, #0x2c] + tst r0, #4 + bne _022CD908 + ldrsb r0, [sb, #0x72] + cmp r0, #0 + bne _022CD924 +_022CD908: + ldrsb r0, [sb, #0x73] + cmp r0, #4 + addeq sp, sp, #0xc + mvneq r0, #0x1b + popeq {r4, r5, r6, r7, r8, sb, pc} + mov r5, #0 + b _022CD93C +_022CD924: + bl FUN_0207B848 + cmp r0, #0x12 + addeq sp, sp, #0xc + mvneq r0, #0x1b + popeq {r4, r5, r6, r7, r8, sb, pc} + mov r5, #1 +_022CD93C: + cmp sb, #0 + mov r1, #0 + beq _022CD954 + ldrsh r0, [sb, #0x70] + tst r0, #1 + movne r1, #1 +_022CD954: + cmp r1, #0 + addeq sp, sp, #0xc + mvneq r0, #0x26 + popeq {r4, r5, r6, r7, r8, sb, pc} + ldrsb r0, [sb, #0x73] + mov r1, #1 + cmp r0, #0 + cmpne r0, #4 + movne r1, #0 + cmp r1, #0 + beq _022CD9A4 + ldrsh r0, [sb, #0x70] + tst r0, #4 + beq _022CD998 + ldrsh r0, [sb, #0x70] + tst r0, #8 + beq _022CD9A4 +_022CD998: + add sp, sp, #0xc + mvn r0, #0x37 + pop {r4, r5, r6, r7, r8, sb, pc} +_022CD9A4: + ldr r4, [sb, #0x64] + tst r5, #1 + add r0, r4, #0xe0 + bne _022CD9CC + bl FUN_0207A164 + cmp r0, #0 + bne _022CD9D0 + add sp, sp, #0xc + mvn r0, #5 + pop {r4, r5, r6, r7, r8, sb, pc} +_022CD9CC: + bl FUN_0207A048 +_022CD9D0: + ldr r0, [sp, #0x28] + ldr ip, [sp, #0x2c] + str r0, [sp] + mov r0, sb + mov r1, r8 + mov r2, r7 + mov r3, r6 + stmib sp, {r5, ip} + bl ov00_022CDA0C + mov r5, r0 + add r0, r4, #0xe0 + bl FUN_0207A0CC + mov r0, r5 + add sp, sp, #0xc + pop {r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_022CD8C4 + + arm_func_start ov00_022CDA0C +ov00_022CDA0C: @ 0x022CDA0C + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + ldr r4, [sp, #0x28] + mov r7, r0 + tst r4, #2 + ldr r4, [r7, #0x64] + cmpne r4, #0 + movne r6, #1 + moveq r6, #0 + cmp r6, #0 + ldrsbne r5, [r4, #0xfe] + movne r0, #1 + strbne r0, [r4, #0xfe] + ldrsb r0, [r7, #0x73] + cmp r0, #1 + bne _022CDA6C + ldr r0, [sp, #0x20] + ldr ip, [sp, #0x24] + str r0, [sp] + mov r0, r7 + str ip, [sp, #4] + bl ov00_022CDECC + mov r8, r0 + b _022CDA94 +_022CDA6C: + ldr r0, [sp, #0x20] + ldr ip, [sp, #0x24] + str r0, [sp] + mov r0, r7 + str ip, [sp, #4] + bl ov00_022CDAA8 + movs r8, r0 + bmi _022CDA94 + mov r0, r7 + bl ov00_022CDE34 +_022CDA94: + cmp r6, #0 + strbne r5, [r4, #0xfe] + mov r0, r8 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022CDA0C + + arm_func_start ov00_022CDAA8 +ov00_022CDAA8: @ 0x022CDAA8 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + ldrsb ip, [r7, #0x73] + mov r6, r1 + mov r5, r2 + mov r4, r3 + cmp ip, #4 + bne _022CDAD8 + ldr r4, [sp, #0x18] + str r4, [sp] + bl ov00_022CDC98 + pop {r3, r4, r5, r6, r7, pc} +_022CDAD8: + ldr ip, [sp, #0x18] + str ip, [sp] + bl ov00_022CDB1C + mvn r1, #5 + cmp r0, r1 + popne {r3, r4, r5, r6, r7, pc} + ldr r1, [sp, #0x1c] + tst r1, #1 + popeq {r3, r4, r5, r6, r7, pc} + ldr ip, [sp, #0x18] + mov r0, r7 + mov r1, r6 + mov r2, r5 + mov r3, r4 + str ip, [sp] + bl ov00_022CDC98 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022CDAA8 + + arm_func_start ov00_022CDB1C +ov00_022CDB1C: @ 0x022CDB1C + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x10 + mov sb, r0 + mov r8, r1 + mov r7, r2 + mov r6, r3 + bl FUN_0207B7E4 + add r1, sp, #8 + mov r4, r0 + str r1, [sp] + add r1, sp, #0xc + mov r0, sb + add r2, sp, #6 + add r3, sp, #4 + bl ov00_022CDC24 + cmp r0, #0 + beq _022CDBBC + ldr r5, [sp, #0xc] + cmp r5, #0 + mvneq r5, #5 + beq _022CDBD8 + ldrsb r1, [sb, #0x73] + cmp r7, r5 + mov r2, #1 + movgt r7, r5 + cmp r1, #0 + cmpne r1, #4 + movne r2, #0 + cmp r2, #0 + mov r1, r8 + mov r2, r7 + movne r5, r7 + bl FUN_0207C4C8 + ldr r1, [sb, #0x64] + ldrsb r0, [r1, #0xfe] + cmp r0, #0 + ldreq r0, [r1, #0xf8] + addeq r0, r0, r5 + streq r0, [r1, #0xf8] + b _022CDBD8 +_022CDBBC: + ldr r0, [sp, #0xc] + cmp r0, #0 + ldrsh r0, [sb, #0x70] + moveq r5, #0 + mvnne r5, #0x1b + bic r0, r0, #6 + strh r0, [sb, #0x70] +_022CDBD8: + cmp r5, #0 + blt _022CDC10 + cmp r6, #0 + ldrne r1, [sp, #0x30] + cmpne r1, #0 + beq _022CDC00 + ldrh r0, [sp, #4] + strh r0, [r6] + ldr r0, [sp, #8] + str r0, [r1] +_022CDC00: + ldrh r0, [sb, #0x74] + cmp r0, #0 + ldrheq r0, [sp, #6] + strheq r0, [sb, #0x74] +_022CDC10: + mov r0, r4 + bl FUN_0207B7F8 + mov r0, r5 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_022CDB1C + + arm_func_start ov00_022CDC24 +ov00_022CDC24: @ 0x022CDC24 + push {r3, r4, r5, lr} + ldr r0, [r0, #0x64] + ldr r4, [r0, #0xc4] + ldr r5, [r0, #0xf8] + ldr r0, [r4, #0x44] + subs lr, r0, r5 + bmi _022CDC7C + ldrh ip, [r4, #0xa] + ldr r0, [sp, #0x10] + cmp lr, #0 + strh ip, [r2] + ldrh r2, [r4, #0x18] + strh r2, [r3] + ldr r2, [r4, #0x1c] + str r2, [r0] + str lr, [r1] + bne _022CDC8C + ldrb r0, [r4, #8] + cmp r0, #4 + beq _022CDC8C + mov r0, #0 + pop {r3, r4, r5, pc} +_022CDC7C: + mvn r0, #0 + str r0, [r1] + mov r0, #0 + pop {r3, r4, r5, pc} +_022CDC8C: + ldr r0, [r4, #0x40] + add r0, r0, r5 + pop {r3, r4, r5, pc} + arm_func_end ov00_022CDC24 + + arm_func_start ov00_022CDC98 +ov00_022CDC98: @ 0x022CDC98 push {r3, r4, r5, r6, r7, lr} mov r7, r0 mov r6, r1 - mov r0, #0x2dc - mov r1, #6 - bl MemAlloc - mov r1, #0x2dc - mov r4, r0 - bl MemZero - mov r0, #0x58 - mul r5, r6, r0 - mov r0, r5 - str r7, [r4, #0x2d8] - mov r1, #6 - bl MemAlloc - str r0, [r4] - mov r0, r5 - mov r1, #6 - bl MemAlloc - str r0, [r4, #4] - mov r0, r4 - str r6, [r4, #0x2d4] - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0206bbe0 - - arm_func_start FUN_0206bc3c -FUN_0206bc3c: @ 0x0206BC3C - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #8 - mov r4, r1 - mov r1, #0x58 - mov r5, r0 - mov r7, r2 - mov r6, r3 - bl MemZero - mvn r0, #0 - strh r0, [r5] - bl FUN_0201f36c - strh r0, [r5] - ldrsh r1, [r5] - mvn r0, #0 - cmp r1, r0 - beq _0206BCF8 - str r7, [r5, #8] - ldr r1, [sp, #0x20] - str r6, [r5, #0xc] - ldr r0, [sp, #0x24] - str r1, [r5, #0x18] - str r0, [r5, #0x1c] - ldrsh r0, [r5] - bl FUN_0201f324 - mov r1, #0 - ldr r2, [sp, #0x28] - strb r1, [r0, #0x3c] - strh r2, [r0, #0x2a] - ldr ip, [r5, #8] - ldrsh r3, [sp, #0x30] - asr r2, ip, #7 - add r2, ip, r2, lsr #24 - asr r2, r2, #8 - strh r2, [r0] - ldr r5, [r5, #0xc] - lsl r3, r3, #0x14 - asr r2, r5, #7 - add r2, r5, r2, lsr #24 - asr r2, r2, #8 - strh r2, [r0, #2] - str r1, [sp] - asr r1, r3, #0x10 - str r1, [sp, #4] - ldrsh r2, [sp, #0x2c] - ldr r1, [r4, #0x10] - ldr r3, [r4, #0x14] - bl FUN_0201e7d8 -_0206BCF8: - mov r0, #0 - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0206bc3c - - arm_func_start FUN_0206bd04 -FUN_0206bd04: @ 0x0206BD04 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #8 - mov r5, r1 - mov r1, #0x58 - mov r6, r0 - mov r7, r2 + mov r5, r2 + ldr r0, _022CDCE0 @ =ov00_022CDCE4 + mov r1, r7 + mov r2, #1 mov r4, r3 - bl MemZero - mvn r0, #0 - strh r0, [r6] - bl FUN_0201f36c - strh r0, [r6] - ldrsh r1, [r6] - mvn r0, #0 - cmp r1, r0 - moveq r0, #0 - beq _0206BDEC - str r7, [r6, #8] - ldr r1, [sp, #0x20] - str r4, [r6, #0xc] - ldr r0, [sp, #0x24] - str r1, [r6, #0x18] - str r0, [r6, #0x1c] - ldrsh r0, [r6] - bl FUN_0201f324 - mov r4, r0 - mov r2, #0 - strb r2, [r4, #0x3c] - ldr r1, [sp, #0x28] - ldrsh r2, [sp, #0x30] - strh r1, [r4, #0x2a] - ldr r3, [r6, #8] - lsl r2, r2, #0x14 - asr r1, r3, #7 - add r1, r3, r1, lsr #24 - asr r1, r1, #8 - strh r1, [r4] - ldr r3, [r6, #0xc] - asr r1, r3, #7 - add r1, r3, r1, lsr #24 - asr r1, r1, #8 - strh r1, [r4, #2] - mov r1, #1 - str r1, [sp] - asr r1, r2, #0x10 - str r1, [sp, #4] - ldrsh r2, [sp, #0x2c] - ldm r5, {r1, r3} - bl FUN_0201e7d8 - ldrsh r1, [r4, #0x1a] - mov r0, #1 - add r1, r1, r1, lsr #31 - asr r1, r1, #1 - strh r1, [r4, #8] - ldrsh r1, [r4, #0x1c] - add r1, r1, r1, lsr #31 - asr r1, r1, #1 - strh r1, [r4, #0xa] -_0206BDEC: - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0206bd04 - - arm_func_start FUN_0206bdf4 -FUN_0206bdf4: @ 0x0206BDF4 - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x14 - mov ip, #0 - mov r4, r0 - mov r8, ip - mov r0, ip - mov r5, #0x58 - mvn r6, #0 - b _0206BE48 -_0206BE18: - cmp ip, #0x50 - movge ip, r0 - mul r7, ip, r5 - ldrsh r7, [r4, r7] - cmp r7, r6 - beq _0206BE54 - add r7, r8, #1 - add lr, ip, #1 - lsl ip, r7, #0x10 - lsl lr, lr, #0x10 - asr r8, ip, #0x10 - asr ip, lr, #0x10 -_0206BE48: - cmp r8, #0x50 - blt _0206BE18 - mvn ip, #0 -_0206BE54: - cmp ip, #0 - movlt r0, #0 - blt _0206BEA4 - mov r0, #0x58 - mla r6, ip, r0, r4 - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - ldr r5, [sp, #0x30] - ldrsh r0, [sp, #0x34] - str r5, [sp, #8] - ldrsh r5, [sp, #0x38] - str r0, [sp, #0xc] - mov r0, r6 - str r5, [sp, #0x10] - bl FUN_0206bd04 - cmp r0, #0 - moveq r0, #0 - movne r0, r6 - strne r4, [r6, #0x54] -_0206BEA4: - add sp, sp, #0x14 - pop {r3, r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0206bdf4 - - arm_func_start FUN_0206beac -FUN_0206beac: @ 0x0206BEAC - push {r4, r5, r6, lr} - mov r6, r0 - ldr r4, [r6, #4] - ldrsh r0, [r4] - bl FUN_0201f324 - ldr r1, [r4, #0x40] - mov r5, r0 - cmp r1, #0 - ble _0206BEEC - ldrsh r0, [r4] - mov r1, #0 - bl FUN_0201f348 - ldr r0, [r4, #0x40] - sub r0, r0, #1 - str r0, [r4, #0x40] - pop {r4, r5, r6, pc} -_0206BEEC: - ldrh r0, [r5, #0x10] - cmp r0, #0x1000 - beq _0206BF10 - add r0, r0, #0x100 - cmp r0, #0x1000 - movge r0, #0x1000 - strh r0, [r5, #0x12] - ldrh r0, [r5, #0x12] - strh r0, [r5, #0x10] -_0206BF10: - ldrsh r0, [r4] - mov r1, #1 - bl FUN_0201f348 - ldr r2, [r4, #8] - ldr r1, [r4, #0x18] - mvn r0, #0x3f - add r1, r2, r1 - str r1, [r4, #8] - ldr r2, [r4, #0xc] - ldr r1, [r4, #0x1c] - add r1, r2, r1 - str r1, [r4, #0xc] - ldrsh r1, [r5] - cmp r1, r0 - blt _0206BF68 - cmp r1, #0x140 - bgt _0206BF68 - ldrsh r1, [r5, #2] - cmp r1, r0 - blt _0206BF68 - cmp r1, #0x100 - ble _0206BF7C -_0206BF68: - mov r0, r4 - bl FUN_0206bb94 - mov r0, r6 - bl FUN_022C24DC - pop {r4, r5, r6, pc} -_0206BF7C: - ldr r1, [r4, #8] - asr r0, r1, #7 - add r0, r1, r0, lsr #24 - asr r0, r0, #8 - strh r0, [r5] - ldr r1, [r4, #0xc] - asr r0, r1, #7 - add r0, r1, r0, lsr #24 - asr r0, r0, #8 - strh r0, [r5, #2] - pop {r4, r5, r6, pc} - arm_func_end FUN_0206beac - - arm_func_start FUN_0206bfa8 -FUN_0206bfa8: @ 0x0206BFA8 - push {r3, r4, r5, r6, r7, lr} - mov r6, r0 - ldr r4, [r6, #4] - ldrsh r0, [r4] - bl FUN_0201f324 - mov r5, r0 - ldr r0, [r4, #0x20] - bl FUN_02001980 - ldr r1, [r4, #0x24] - bl MultiplyByFixedPoint - ldr r1, [r4, #0x30] - add r7, r1, r0 - ldr r0, [r4, #0x20] - bl FUN_020018d0 - ldr r1, [r4, #0x24] - rsb r0, r0, #0 - bl MultiplyByFixedPoint - ldr r2, [r4, #0x34] - ldr r1, _0206C0D4 @ =0x00000FFF - add r0, r2, r0 - str r7, [r4, #8] - str r0, [r4, #0xc] - ldr r2, [r4, #0x20] - ldr r0, [r4, #0x38] - add r2, r2, r0 - and r0, r2, r1 - str r0, [r4, #0x20] - ldr r1, [r4, #0x24] - ldr r0, [r4, #0x3c] - add r0, r1, r0 - str r0, [r4, #0x24] - ldrh r0, [r5, #0x10] - cmp r0, #0x1000 - addlo r0, r0, #0x80 - strhlo r0, [r5, #0x10] - ldrhlo r0, [r5, #0x12] - addlo r0, r0, #0x80 - strhlo r0, [r5, #0x12] - ldr r1, [r4, #0x3c] - mvn r0, #0x3f - add r1, r1, #8 - str r1, [r4, #0x3c] - ldrsh r1, [r5] - cmp r1, r0 - blt _0206C078 - cmp r1, #0x140 - bgt _0206C078 - ldrsh r1, [r5, #2] - cmp r1, r0 - blt _0206C078 - cmp r1, #0x140 - ble _0206C08C -_0206C078: - mov r0, r4 - bl FUN_0206bb94 - mov r0, r6 - bl FUN_022C24DC - pop {r3, r4, r5, r6, r7, pc} -_0206C08C: - ldr r0, [r4, #0x38] - cmp r0, #0 - ldr r0, [r4, #0x20] - lsllt r0, r0, #4 - lslge r0, r0, #4 - rsbge r0, r0, #0x10000 - strh r0, [r5, #0x28] - ldr r1, [r4, #8] - asr r0, r1, #7 - add r0, r1, r0, lsr #24 - asr r0, r0, #8 - strh r0, [r5] - ldr r1, [r4, #0xc] - asr r0, r1, #7 - add r0, r1, r0, lsr #24 - asr r0, r0, #8 - strh r0, [r5, #2] - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0206C0D4: .4byte 0x00000FFF - arm_func_end FUN_0206bfa8 - - arm_func_start FUN_0206c0d8 -FUN_0206c0d8: @ 0x0206C0D8 - ldr r1, _0206C0E8 @ =0x020B0B6C - ldrsh r1, [r1] - strh r1, [r0] - bx lr - .align 2, 0 -_0206C0E8: .4byte 0x020B0B6C - arm_func_end FUN_0206c0d8 - - arm_func_start FUN_0206c0ec -FUN_0206c0ec: @ 0x0206C0EC - ldr r1, _0206C0F8 @ =0x020B0B6C - strh r0, [r1] - bx lr - .align 2, 0 -_0206C0F8: .4byte 0x020B0B6C - arm_func_end FUN_0206c0ec - - arm_func_start FUN_0206c0fc -FUN_0206c0fc: @ 0x0206C0FC - ldr r1, _0206C10C @ =0x020B0B70 - ldrsh r1, [r1, #2] - strh r1, [r0] - bx lr - .align 2, 0 -_0206C10C: .4byte 0x020B0B70 - arm_func_end FUN_0206c0fc - - arm_func_start FUN_0206c110 -FUN_0206c110: @ 0x0206C110 - ldr r1, _0206C11C @ =0x020B0B70 - strh r0, [r1, #2] - bx lr - .align 2, 0 -_0206C11C: .4byte 0x020B0B70 - arm_func_end FUN_0206c110 -_0206C120: - .byte 0x08, 0x10, 0x9F, 0xE5, 0xF0, 0x10, 0xD1, 0xE1, 0xB0, 0x10, 0xC0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x70, 0x0B, 0x0B, 0x02 - - arm_func_start FUN_0206c134 -FUN_0206c134: @ 0x0206C134 - ldr r1, _0206C140 @ =0x020B0B70 - strh r0, [r1] - bx lr - .align 2, 0 -_0206C140: .4byte 0x020B0B70 - arm_func_end FUN_0206c134 -_0206C144: - .byte 0x14, 0x30, 0x9F, 0xE5, 0x08, 0x20, 0xA0, 0xE3, 0x01, 0x10, 0xD3, 0xE4 - .byte 0x01, 0x20, 0x52, 0xE2, 0x01, 0x10, 0xC0, 0xE4, 0xFB, 0xFF, 0xFF, 0x1A, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x74, 0x0B, 0x0B, 0x02 - - arm_func_start FUN_0206c164 -FUN_0206c164: @ 0x0206C164 - ldr r3, _0206C180 @ =0x020B0B74 - mov r2, #8 -_0206C16C: - ldrb r1, [r0], #1 - subs r2, r2, #1 - strb r1, [r3], #1 - bne _0206C16C - bx lr - .align 2, 0 -_0206C180: .4byte 0x020B0B74 - arm_func_end FUN_0206c164 -_0206C184: - .byte 0x0C, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x01, 0x20, 0xA0, 0xE1 - .byte 0x01, 0x10, 0x40, 0xE2, 0x1C, 0xFF, 0x2F, 0xE1, 0xEC, 0xA7, 0x07, 0x02, 0x10, 0x40, 0x2D, 0xE9 - .byte 0x01, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x04, 0x20, 0xA0, 0xE1, 0x01, 0x10, 0x40, 0xE2 - .byte 0xCF, 0x39, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x10, 0x80, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0206c1c0 -FUN_0206c1c0: @ 0x0206C1C0 - push {r4, lr} - ldr r1, _0206C248 @ =0x022B7330 - mov r2, #1 - movs r4, r0 - strb r2, [r1, #0x3d] - subeq r0, r2, #0x100 - popeq {r4, pc} - mov r1, #0x40 - bl FUN_0206ccbc - mov r0, #0 - str r0, [r4, #4] - str r0, [r4, #8] - str r0, [r4, #0xc] - mov r1, #8 - strb r1, [r4, #0x10] - strb r0, [r4, #0x11] - strh r0, [r4, #0x14] - mov r1, #0xf - strh r1, [r4, #0x16] - mov r1, #0x14 - strb r1, [r4, #0x12] - mov r1, #4 - strh r1, [r4, #0x18] - ldr r2, _0206C24C @ =0x0206C184 - strh r1, [r4, #0x1a] - ldr r1, _0206C250 @ =0x0206C19C - str r2, [r4, #0x1c] - str r1, [r4, #0x20] - ldr r1, _0206C254 @ =0x0206C1BC - str r0, [r4, #0x24] - str r1, [r4, #0x28] - str r1, [r4, #0x2c] - str r0, [r4, #0x30] - pop {r4, pc} - .align 2, 0 -_0206C248: .4byte 0x022B7330 -_0206C24C: .4byte 0x0206C184 -_0206C250: .4byte 0x0206C19C -_0206C254: .4byte 0x0206C1BC - arm_func_end FUN_0206c1c0 - - arm_func_start FUN_0206c258 -FUN_0206c258: @ 0x0206C258 - push {r3, r4, r5, lr} - movs r4, r0 - bne _0206C27C - mov r1, #0 - mov r2, r1 - mvn r0, #0x17 - bl FUN_0206c854 - mov r0, #2 - pop {r3, r4, r5, pc} -_0206C27C: - tst r4, #3 - beq _0206C29C - mov r1, #0 - mov r2, r1 - mvn r0, #0x17 - bl FUN_0206c854 - mov r0, #2 - pop {r3, r4, r5, pc} -_0206C29C: - ldr r0, [r4, #8] - mov r5, #0 - cmp r0, #0 - beq _0206C2B4 - tst r0, #0xf - beq _0206C2B8 -_0206C2B4: - orr r5, r5, #4 -_0206C2B8: - ldr r0, [r4, #0xc] - cmp r0, #0 - beq _0206C2CC - tst r0, #0xf - beq _0206C2D0 -_0206C2CC: - orr r5, r5, #8 -_0206C2D0: - ldrb r0, [r4, #0x11] - ldrb r1, [r4, #0x10] - cmp r0, #0 - cmpne r0, #1 - orrne r5, r5, #0x100 - cmp r1, #4 - ldrb r0, [r4, #0x12] - orrlo r5, r5, #0x200 - cmp r0, r1 - ldrsh r1, [r4, #0x14] - orrls r5, r5, #0x400 - ldrsh r0, [r4, #0x16] - cmp r1, #0 - orrne r5, r5, #0x4000 - cmp r0, #0x10 - orrge r5, r5, #0x8000 - cmp r1, r0 - orrgt r5, r5, #0xc000 - cmp r5, #0 - beq _0206C330 - mov r1, r5 - mvn r0, #0x17 - mov r2, #0 - bl FUN_0206c854 -_0206C330: - mov r0, r5 - str r5, [r4] - pop {r3, r4, r5, pc} - arm_func_end FUN_0206c258 - - arm_func_start FUN_0206c33c -FUN_0206c33c: @ 0x0206C33C - push {r3, lr} - cmp r0, #0 - strne r1, [r0, #8] - strne r2, [r0, #0xc] - movne r0, #0 - popne {r3, pc} - mov r1, #0 - mov r2, r1 - mvn r0, #0x17 - bl FUN_0206c854 - mvn r0, #0x17 - pop {r3, pc} - arm_func_end FUN_0206c33c - - arm_func_start FUN_0206c36c -FUN_0206c36c: @ 0x0206C36C - push {r3, lr} - cmp r0, #0 - strbne r1, [r0, #0x11] - strbne r2, [r0, #0x10] - movne r0, #0 - popne {r3, pc} - mov r1, #0 - mov r2, r1 - mvn r0, #0x17 - bl FUN_0206c854 - mvn r0, #0x17 - pop {r3, pc} - arm_func_end FUN_0206c36c - - arm_func_start FUN_0206c39c -FUN_0206c39c: @ 0x0206C39C - push {r3, lr} - cmp r0, #0 - bne _0206C3C0 - mov r1, #0 - mov r2, r1 - mvn r0, #0x17 - bl FUN_0206c854 - mvn r0, #0x17 - pop {r3, pc} -_0206C3C0: - cmp r1, #0 - movlt r1, #0 - cmp r2, #0 - strh r1, [r0, #0x14] - movlt r2, #0xf - strh r2, [r0, #0x16] - mov r0, #0 - pop {r3, pc} - arm_func_end FUN_0206c39c - - arm_func_start FUN_0206c3e0 -FUN_0206c3e0: @ 0x0206C3E0 - push {r4, lr} - ldr r1, _0206C5F8 @ =0x022B7330 - mov r4, r0 - ldrsb r1, [r1] - cmp r1, #1 - bne _0206C410 - mov r1, #0 - mov r2, r1 - mvn r0, #0xbf - bl FUN_0206c854 - mvn r0, #0xbf - pop {r4, pc} -_0206C410: - bl FUN_0206c258 - movs r1, r0 - beq _0206C430 - mvn r0, #0x1d - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0x1d - pop {r4, pc} -_0206C430: - bl FUN_0207ad54 - mov r0, #0 + bl ov00_022CD108 mov r1, r0 - bl FUN_0207aef4 - bl FUN_0207aff0 - ldr r0, _0206C5F8 @ =0x022B7330 - mov r3, #0 - strh r3, [r0, #2] - str r3, [r0, #4] - str r3, [r0, #0x10] - mov r2, #0xff - mov r1, #1 - strb r2, [r0, #0x3c] - strb r1, [r0, #0x3d] - rsb r1, r1, #0x1000 - strh r1, [r0, #0x3e] - str r3, [r0, #0x2c] - ldrb r1, [r4, #0x11] - cmp r1, #0 - ldreq r2, _0206C5FC @ =0x00002710 - moveq r1, #0x64 - ldrne r2, _0206C600 @ =0x0000414B - movne r1, #0x3c - strh r2, [r0, #0x28] - str r1, [r0, #0x30] - ldr r2, _0206C604 @ =0x00BC614E - ldr r1, _0206C5F8 @ =0x022B7330 - ldr r0, _0206C608 @ =0x022B8330 - str r2, [r1, #0x34] - ldrb r1, [r4, #0x11] - strb r1, [r0, #0xdd8] - bl FUN_0206c814 - ldr r1, _0206C5F8 @ =0x022B7330 - mov r0, #1 - strb r0, [r1, #0x38] - mov r3, #2 - ldr r2, _0206C60C @ =0x020B1290 - ldr r0, _0206C608 @ =0x022B8330 - strb r3, [r1, #0x39] - str r2, [r0, #0xed4] - mov r2, #0 - str r2, [r1, #0x71c] - str r2, [r1, #0x720] - str r2, [r1, #0x724] - str r2, [r1, #0x728] - ldrb r1, [r4, #0x10] - ldr ip, _0206C610 @ =0x022B7330 - mov r3, r2 - strb r1, [r0, #0xd10] -_0206C4F4: - add r2, r2, #1 - strb r3, [ip, #0x674] - cmp r2, #0x80 - add ip, ip, #1 - blt _0206C4F4 - ldr ip, _0206C5F8 @ =0x022B7330 - mov r0, #0x64 - strb r0, [ip, #0x67b] - mov r0, #0x7f - strb r0, [ip, #0x67f] - mov r0, #0x40 - strb r0, [ip, #0x67e] - add r0, r4, #0x28 - ldr lr, _0206C614 @ =0x022B734C - ldm r0, {r0, r1, r2} - stm lr, {r0, r1, r2} - ldrsh ip, [ip, #0x28] - ldr r1, _0206C608 @ =0x022B8330 - mov r2, #1 - str r3, [r1, #0xec8] - str r2, [r1, #0xecc] - str r3, [r1, #0xebc] - ldr r0, _0206C618 @ =0x022B9130 - str r3, [r1, #0xec0] - sub r2, r2, #2 - strh r2, [r0, #0xc4] - strh ip, [r0, #0xc6] - strb r3, [r1, #0xed0] - ldr r0, [r4, #8] - ldr r1, [r4, #0xc] - add r2, r4, #0x1c - bl FUN_0206c91c - ldrsh r0, [r4, #0x16] - add r0, r0, #1 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl FUN_020743dc - bl FUN_02074338 - bl FUN_02070124 - bl FUN_02075600 - bl FUN_020729a4 - ldr r1, _0206C61C @ =0x022B7331 - mov r2, #1 - mov r0, #0x7f -_0206C5A4: - add r2, r2, #1 - strb r0, [r1, #0x40] - cmp r2, #0x10 - add r1, r1, #1 - blt _0206C5A4 - ldr r0, _0206C5F8 @ =0x022B7330 - mov r1, #0 - strb r1, [r0, #0x40] - bl FUN_02070e0c - ldrb r0, [r4, #0x12] - bl FUN_0206cd9c - ldr r0, _0206C5F8 @ =0x022B7330 - mov r1, #1 - strb r1, [r0] - mov r1, #0 - strb r1, [r0, #1] - ldrh r0, [r4, #0x18] - ldrh r1, [r4, #0x1a] - bl FUN_0206e920 - mov r0, #0 - pop {r4, pc} + str r6, [r1, #0x10] + str r5, [r1, #0x14] + ldr r2, [sp, #0x18] + str r4, [r1, #0x18] + mov r0, r7 + str r2, [r1, #0x1c] + bl ov00_022CD250 + pop {r3, r4, r5, r6, r7, pc} .align 2, 0 -_0206C5F8: .4byte 0x022B7330 -_0206C5FC: .4byte 0x00002710 -_0206C600: .4byte 0x0000414B -_0206C604: .4byte 0x00BC614E -_0206C608: .4byte 0x022B8330 -_0206C60C: .4byte 0x020B1290 -_0206C610: .4byte 0x022B7330 -_0206C614: .4byte 0x022B734C -_0206C618: .4byte 0x022B9130 -_0206C61C: .4byte 0x022B7331 - arm_func_end FUN_0206c3e0 +_022CDCE0: .4byte ov00_022CDCE4 + arm_func_end ov00_022CDC98 - arm_func_start FUN_0206c620 -FUN_0206c620: @ 0x0206C620 - push {r3, lr} - ldr r0, _0206C684 @ =0x022B7330 - ldrsb r0, [r0] + arm_func_start ov00_022CDCE4 +ov00_022CDCE4: @ 0x022CDCE4 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x14 + ldr r7, [r0, #4] + ldr r1, [r0, #0x10] + ldr r8, [r7, #0x64] + str r1, [sp, #0xc] + ldr r1, [r0, #0x18] + ldr sl, [r0, #0x14] + ldr r0, [r0, #0x1c] + ldr sb, [r8, #0xf8] + str r1, [sp, #8] + str r0, [sp, #4] + mov r4, #0 + mov r5, #1 + mov fp, #0xa + add r6, sp, #0x10 +_022CDD24: + mov r0, r6 + bl ov00_022CB550 cmp r0, #0 - mvneq r0, #0xc0 - popeq {r3, pc} - bl FUN_0206ce28 - mov r0, #0 - bl FUN_0206c7f4 - bl FUN_020756e8 - bl FUN_02070158 - bl FUN_02070148 - bl FUN_02070ea0 - bl FUN_02074338 - bl FUN_0206c98c - bl FUN_0206c814 - ldr r1, _0206C684 @ =0x022B7330 - mov r0, #0 - strb r0, [r1] - strb r0, [r1, #1] - str r0, [r1, #0x2c] - str r0, [r1, #4] - str r0, [r1, #0x10] - strh r0, [r1, #2] - pop {r3, pc} - .align 2, 0 -_0206C684: .4byte 0x022B7330 - arm_func_end FUN_0206c620 - - arm_func_start FUN_0206c688 -FUN_0206c688: @ 0x0206C688 - push {r3, lr} - ldr r0, _0206C6B8 @ =0x022B7330 - ldrsb r1, [r0] + beq _022CDD78 + ldr r1, [sp, #0x10] + sub r1, r1, sb cmp r1, #0 - ldrsbne r0, [r0, #1] - popne {r3, pc} - mov r1, #0 - mov r2, r1 - mvn r0, #0xc0 - bl FUN_0206c854 - mvn r0, #0xc0 - pop {r3, pc} - .align 2, 0 -_0206C6B8: .4byte 0x022B7330 - arm_func_end FUN_0206c688 -_0206C6BC: - .byte 0x08, 0x40, 0x2D, 0xE9 - .byte 0x88, 0x00, 0x9F, 0xE5, 0xD0, 0x10, 0xD0, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0x05, 0x00, 0x00, 0x1A - .byte 0x00, 0x10, 0xA0, 0xE3, 0x01, 0x20, 0xA0, 0xE1, 0xC0, 0x00, 0xE0, 0xE3, 0x5C, 0x00, 0x00, 0xEB - .byte 0xC0, 0x00, 0xE0, 0xE3, 0x08, 0x80, 0xBD, 0xE8, 0xD1, 0x10, 0xD0, 0xE1, 0x01, 0x00, 0x51, 0xE3 - .byte 0x00, 0x00, 0xA0, 0x03, 0x08, 0x80, 0xBD, 0x08, 0x01, 0x10, 0xA0, 0xE3, 0x01, 0x10, 0xC0, 0xE5 - .byte 0x11, 0x12, 0x00, 0xEB, 0x44, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x64, 0x06, 0x90, 0xE5 - .byte 0x3D, 0x05, 0x00, 0xEB, 0x34, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x68, 0x06, 0x90, 0xE5 - .byte 0x39, 0x05, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0xF3, 0x0B, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x94, 0x0E, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x27, 0x1F, 0x00, 0xEB, 0x0C, 0x00, 0x9F, 0xE5 - .byte 0x02, 0x10, 0xA0, 0xE3, 0x38, 0x10, 0xC0, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8 - .byte 0x30, 0x73, 0x2B, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x90, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1 - .byte 0xD1, 0x00, 0xD1, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x10, 0x80, 0xBD, 0x08 - .byte 0x01, 0x20, 0xA0, 0xE3, 0x38, 0x20, 0xC1, 0xE5, 0xBE, 0x03, 0xD1, 0xE1, 0x04, 0x10, 0xA0, 0xE1 - .byte 0x0F, 0x00, 0x10, 0xE3, 0x64, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0x03, 0x02, 0x2C, 0xA0, 0xE1 - .byte 0x64, 0x06, 0x90, 0xE5, 0x42, 0x2C, 0xA0, 0xE1, 0x36, 0x05, 0x00, 0xEB, 0x4C, 0x00, 0x9F, 0xE5 - .byte 0xBE, 0x03, 0xD0, 0xE1, 0xF0, 0x00, 0x10, 0xE3, 0x01, 0x10, 0xA0, 0x13, 0x3C, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0x03, 0x01, 0x2C, 0xA0, 0xE1, 0x68, 0x06, 0x90, 0xE5, 0x04, 0x10, 0xA0, 0xE1 - .byte 0x42, 0x2C, 0xA0, 0xE1, 0x2B, 0x05, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0xE8, 0x0B, 0x00, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0x75, 0x0E, 0x00, 0xEB, 0x10, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x01, 0x10, 0xC0, 0xE5, 0xBC, 0x11, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x10, 0x80, 0xBD, 0xE8 - .byte 0x30, 0x73, 0x2B, 0x02 + bgt _022CDD78 + ldrsb r0, [r7, #0x73] + mov r1, r5 + cmp r0, #0 + cmpne r0, #4 + movne r1, r4 + cmp r1, #0 + ldrbne r0, [r7, #8] + cmpne r0, #4 + movne r0, #0 + bne _022CDD78 + mov r0, fp + bl FUN_02079B14 + b _022CDD24 +_022CDD78: + ldrsh r1, [r7, #0x70] + tst r1, #0x80 + addne sp, sp, #0x14 + mvnne r0, #0xe + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrsb r1, [r7, #0x73] + cmp r1, #4 + bne _022CDDD4 + cmp r0, #0 + addeq sp, sp, #0x14 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [sp, #0x10] + cmp sl, r1 + movhi sl, r1 + ldr r1, [sp, #0xc] + mov r2, sl + bl FUN_0207C4C8 + mov r0, sl + bl ov00_022CB644 + add sp, sp, #0x14 + mov r0, sl + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022CDDD4: + cmp r0, #0 + moveq r4, #0 + beq _022CDE00 + ldr r4, [sp, #4] + ldr r1, [sp, #0xc] + ldr r3, [sp, #8] + mov r0, r7 + mov r2, sl + str r4, [sp] + bl ov00_022CDB1C + mov r4, r0 +_022CDE00: + cmp r4, #0 + addle sp, sp, #0x14 + movle r0, r4 + pople {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrh r0, [r8, #0xfc] + ldr r1, [r8, #0xf8] + cmp r1, r0 + blt _022CDE28 + mov r0, r7 + bl ov00_022CDE90 +_022CDE28: + mov r0, r4 + add sp, sp, #0x14 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022CDCE4 - arm_func_start FUN_0206c7f4 -FUN_0206c7f4: @ 0x0206C7F4 + arm_func_start ov00_022CDE34 +ov00_022CDE34: @ 0x022CDE34 push {r4, lr} mov r4, r0 - bl FUN_0206dadc - mov r0, r4 - bl FUN_0206f4e0 - mov r0, r4 - bl FUN_0206f9a4 - pop {r4, pc} - arm_func_end FUN_0206c7f4 - - arm_func_start FUN_0206c814 -FUN_0206c814: @ 0x0206C814 - ldr r1, _0206C848 @ =0x022B7330 + ldr r1, [r4, #0x64] + ldrh r0, [r1, #0xfc] + ldr r1, [r1, #0xf8] + cmp r1, r0 + movlt r0, #0 + poplt {r4, pc} + ldr r0, _022CDE7C @ =0x022CDE80 + mov r1, r4 mov r2, #0 - str r2, [r1, #0x654] - str r2, [r1, #0x658] - ldr r0, _0206C84C @ =0x022B8330 - str r2, [r1, #0x65c] - str r2, [r0, #0xddc] - str r2, [r1, #0x660] - str r2, [r1, #0x664] - str r2, [r1, #0x668] - ldr ip, _0206C850 @ =FUN_0206e8ac - str r2, [r1, #0x66c] + bl ov00_022CD108 + movs r1, r0 + mvneq r0, #0x20 + popeq {r4, pc} + mov r0, r4 + bl ov00_022CD250 + pop {r4, pc} + .align 2, 0 +_022CDE7C: .4byte 0x022CDE80 + arm_func_end ov00_022CDE34 +_022CDE80: + .byte 0x04, 0xC0, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x90, 0xDE, 0x2C, 0x02 + + arm_func_start ov00_022CDE90 +ov00_022CDE90: @ 0x022CDE90 + push {r4, r5, r6, lr} + ldr r4, [r0, #0x64] + bl FUN_0207B7E4 + ldr r6, [r4, #0xf8] + mov r5, r0 + cmp r6, #0 + beq _022CDEBC + mov r1, #0 + mov r0, r6 + str r1, [r4, #0xf8] + bl ov00_022CB644 +_022CDEBC: + mov r0, r5 + bl FUN_0207B7F8 + mov r0, r6 + pop {r4, r5, r6, pc} + arm_func_end ov00_022CDE90 + + arm_func_start ov00_022CDECC +ov00_022CDECC: @ 0x022CDECC + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0xc + mov sl, r0 + ldr r6, [sl, #0x64] + str r1, [sp] + ldr r0, [r6, #0x104] + str r2, [sp, #4] + mov fp, r3 + bl FUN_0207B7E4 + ldr r7, [r6, #0x104] + str r0, [sp, #8] + cmp r7, #0 + bne _022CDF68 + ldr r0, [sp, #0x34] + mov r4, #1 + and sb, r0, #1 + mov r5, #0 +_022CDF10: + cmp sb, #0 + mvneq r8, #5 + beq _022CDF68 + add r0, r6, #0x10c + bl FUN_02079888 + mov r0, sl + bl ov00_022CF154 + cmp r0, #0 + bne _022CDF54 + mov r1, r5 + cmp sl, #0 + beq _022CDF4C + ldrsh r0, [sl, #0x70] + tst r0, #1 + movne r1, r4 +_022CDF4C: + cmp r1, #0 + bne _022CDF5C +_022CDF54: + mvn r8, #0x37 + b _022CDF68 +_022CDF5C: + ldr r7, [r6, #0x104] + cmp r7, #0 + beq _022CDF10 +_022CDF68: + cmp r7, #0 + beq _022CDFF8 + ldrh r1, [r7, #4] + ldr r0, [sp, #4] + cmp r0, r1 + strgt r1, [sp, #4] + ldr r1, [sp] + ldr r2, [sp, #4] + add r0, r7, #0xc + bl FUN_0207C4C8 + cmp fp, #0 + ldrhne r0, [r7, #6] + ldr r1, [sp, #0x30] + strhne r0, [fp] + cmp r1, #0 + ldrne r0, [r7, #8] + strne r0, [r1] + ldrsb r0, [r6, #0xfe] + ldrh r8, [r7, #4] + cmp r0, #0 + bne _022CDFF8 + ldr r0, [r7] + ldr r1, _022CE00C @ =0x02318868 + str r0, [r6, #0x104] + ldr r0, [r7] + cmp r0, #0 + moveq r0, #0 + streq r0, [r6, #0x100] + ldr r1, [r1] + mov r0, r7 + ldr r1, [r1, #0x1c] + blx r1 + add r0, r6, #0x100 + ldrh r1, [r0, #8] + sub r1, r1, r8 + strh r1, [r0, #8] +_022CDFF8: + ldr r0, [sp, #8] + bl FUN_0207B7F8 + mov r0, r8 + add sp, sp, #0xc + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022CE00C: .4byte 0x02318868 + arm_func_end ov00_022CDECC + + arm_func_start ov00_022CE010 +ov00_022CE010: @ 0x022CE010 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r7, r2 + ldr r4, [r7, #0x64] + mov sb, r0 + mov r8, r1 + bl FUN_0207B7E4 + add r1, r4, #0x100 + ldrh r2, [r1, #8] + ldrh r1, [r1, #0xa] + mov r6, r0 + add r0, r2, r8 + cmp r1, r0 + blo _022CE0D4 + ldr r1, _022CE11C @ =0x02318868 + add r0, r8, #0xc + ldr r1, [r1] + ldr r1, [r1, #0x18] + blx r1 + movs r5, r0 + beq _022CE0C0 + add r1, r4, #0x100 + ldrh r3, [r1, #8] + mov r2, #0 + mov r0, sb + add r3, r3, r8 + strh r3, [r1, #8] + str r2, [r5] + strh r8, [r5, #4] + ldrh r3, [r7, #0x18] + mov r2, r8 + add r1, r5, #0xc + strh r3, [r5, #6] + ldr r3, [r7, #0x1c] + str r3, [r5, #8] + bl FUN_0207C4C8 + ldr r0, [r4, #0x100] + cmp r0, #0 + ldrne r0, [r4, #0x100] + strne r5, [r0] + str r5, [r4, #0x100] + ldr r0, [r4, #0x104] + cmp r0, #0 + streq r5, [r4, #0x104] + b _022CE0E4 +_022CE0C0: + ldr r0, _022CE120 @ =0x02326924 + ldr r1, [r0] + add r1, r1, #1 + str r1, [r0] + b _022CE0E4 +_022CE0D4: + ldr r0, _022CE120 @ =0x02326924 + ldr r1, [r0, #4] + add r1, r1, #1 + str r1, [r0, #4] +_022CE0E4: + ldrh r0, [r7, #0x74] + cmp r0, #0 + ldrheq r0, [r7, #0xa] + strheq r0, [r7, #0x74] + ldrh r1, [r7, #0x1a] + add r0, r4, #0x10c + strh r1, [r7, #0x18] + ldr r1, [r7, #0x20] + str r1, [r7, #0x1c] + bl FUN_020798D8 + mov r0, r6 + bl FUN_0207B7F8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022CE11C: .4byte 0x02318868 +_022CE120: .4byte 0x02326924 + arm_func_end ov00_022CE010 + + arm_func_start ov00_022CE124 +ov00_022CE124: @ 0x022CE124 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, r3 + bl ov00_022CF154 + cmp r0, #0 + addne sp, sp, #8 + mvnne r0, #0x1b + popne {r4, r5, r6, r7, r8, pc} + cmp r8, #0 + mov r1, #0 + beq _022CE168 + ldrsh r0, [r8, #0x70] + tst r0, #1 + movne r1, #1 +_022CE168: + cmp r1, #0 + addeq sp, sp, #8 + mvneq r0, #0x26 + popeq {r4, r5, r6, r7, r8, pc} + ldrsb r0, [r8, #0x73] + mov r1, #1 + cmp r0, #0 + cmpne r0, #4 + movne r1, #0 + cmp r1, #0 + beq _022CE1B8 + ldrsh r0, [r8, #0x70] + tst r0, #4 + beq _022CE1AC + ldrsh r0, [r8, #0x70] + tst r0, #8 + beq _022CE1B8 +_022CE1AC: + add sp, sp, #8 + mvn r0, #0x37 + pop {r4, r5, r6, r7, r8, pc} +_022CE1B8: + ldr r0, [sp, #0x24] + ldr r4, [r8, #0x68] + tst r0, #4 + bne _022CE1D4 + ldrsb r0, [r8, #0x72] + cmp r0, #0 + bne _022CE1F4 +_022CE1D4: + add r0, r4, #0xe0 + bl FUN_0207A164 + cmp r0, #0 + addeq sp, sp, #8 + mvneq r0, #5 + popeq {r4, r5, r6, r7, r8, pc} + mov ip, #0 + b _022CE200 +_022CE1F4: + add r0, r4, #0xe0 + bl FUN_0207A048 + mov ip, #1 +_022CE200: + ldr r1, [sp, #0x20] + mov r0, r8 + str r1, [sp] + mov r1, r7 + mov r2, r6 + mov r3, r5 + str ip, [sp, #4] + bl ov00_022CE238 + mov r5, r0 + add r0, r4, #0xe0 + bl FUN_0207A0CC + mov r0, r5 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022CE124 + + arm_func_start ov00_022CE238 +ov00_022CE238: @ 0x022CE238 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x18 + mov sl, r0 + ldr r4, [sl, #0x68] + ldrsb r0, [sl, #0x73] + ldr r4, [r4, #0x10c] + mov sb, r1 + str r3, [sp, #0xc] + cmp r0, #1 + mov r8, r2 + ldr r7, [sp, #0x40] + ldr r6, [sp, #0x44] + ldr r0, [r4, #0x48] + mov r5, #0 + bne _022CE290 + sub r0, r0, #0x2a + cmp r8, r0 + addgt sp, sp, #0x18 + subgt r0, r5, #0x23 + popgt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + str r8, [sp, #0x10] + b _022CE2A0 +_022CE290: + sub r0, r0, #0x36 + str r0, [sp, #0x10] + cmp r8, r0 + strle r8, [sp, #0x10] +_022CE2A0: + cmp r8, #0 + ble _022CE330 + and fp, r6, #1 +_022CE2AC: + ldr r2, [sp, #0x10] + mov r0, sl + mov r1, r8 + add r3, sp, #0x14 + str r6, [sp] + bl ov00_022CE33C + mov r4, r0 + cmp r4, #0 + ble _022CE30C + ldr r0, [sp, #0xc] + mov r1, sb + stm sp, {r0, r7} + str r6, [sp, #8] + ldr r3, [sp, #0x14] + mov r0, sl + mov r2, r4 + bl ov00_022CE3E4 + cmp r0, #0 + addle sp, sp, #0x18 + mvnle r0, #5 + pople {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + add sb, sb, r4 + sub r8, r8, r4 + add r5, r5, r4 +_022CE30C: + cmp fp, #0 + bne _022CE328 + cmp r4, #0 + bgt _022CE330 + add sp, sp, #0x18 + mvn r0, #5 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022CE328: + cmp r8, #0 + bgt _022CE2AC +_022CE330: + mov r0, r5 + add sp, sp, #0x18 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022CE238 + + arm_func_start ov00_022CE33C +ov00_022CE33C: @ 0x022CE33C + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sl, r0 + mov sb, r1 + mov r8, r2 + cmp r8, sb + mov r7, r3 + ldr r4, [sl, #0x68] + movgt r8, sb + bl FUN_0207B7E4 + ldr r1, [sp, #0x28] + mov fp, r0 + and r6, r1, #1 +_022CE36C: + mov r0, sl + bl ov00_022CE3C0 + mov r5, r0 + cmp r5, r8 + blt _022CE398 + add r0, r4, #0x100 + ldrh r0, [r0] + cmp r5, sb + movge r5, sb + str r0, [r7] + b _022CE3B0 +_022CE398: + cmp r6, #0 + moveq r5, #0 + beq _022CE3B0 + add r0, r4, #0x104 + bl FUN_02079888 + b _022CE36C +_022CE3B0: + mov r0, fp + bl FUN_0207B7F8 + mov r0, r5 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022CE33C + + arm_func_start ov00_022CE3C0 +ov00_022CE3C0: @ 0x022CE3C0 + ldr r2, [r0, #0x68] + add r0, r2, #0x100 + ldrh r1, [r0] + ldrh r0, [r0, #2] + ldr r2, [r2, #0xf8] + sub r0, r0, r1 + subs r0, r0, #1 + addmi r0, r0, r2 + bx lr + arm_func_end ov00_022CE3C0 + + arm_func_start ov00_022CE3E4 +ov00_022CE3E4: @ 0x022CE3E4 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov sb, r0 + ldr r4, [sb, #0x68] + mov r6, r1 + mov r8, r2 + ldr r1, [r4, #0x10c] + ldr r2, [sp, #0x28] + ldr r0, _022CE554 @ =ov00_022CE558 + mov r7, r3 + bl ov00_022CD108 + movs r5, r0 + mvneq r0, #0x20 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + ldr r0, [sp, #0x28] + add r1, r7, r8 + tst r0, #1 + ldrsbne r0, [sb, #0x73] + cmpne r0, #1 + movne r0, #3 + strbne r0, [r5, #0xd] + moveq r0, #0 + strbeq r0, [r5, #0xd] + ldr r3, [r4, #0xfc] + ldr r2, [r4, #0xf8] + add r0, r3, r7 + cmp r1, r2 + str r0, [r5, #0x10] + bge _022CE46C + str r8, [r5, #0x14] + mov r0, #0 + str r0, [r5, #0x18] + mov r7, r1 + str r0, [r5, #0x1c] + b _022CE498 +_022CE46C: + sub r0, r2, r7 + str r0, [r5, #0x14] + str r3, [r5, #0x18] + ldr r0, [r5, #0x14] + sub r7, r8, r0 + str r7, [r5, #0x1c] + ldr r0, [r5, #0x14] + ldr r1, [r5, #0x18] + mov r2, r7 + add r0, r6, r0 + bl FUN_0207C4C8 +_022CE498: + ldr r1, [r5, #0x10] + ldr r2, [r5, #0x14] + mov r0, r6 + bl FUN_0207C4C8 + add r0, r4, #0x100 + ldrh r6, [r0] + strh r7, [r5, #0x20] + ldrh r1, [r5, #0x20] + strh r1, [r0] + ldrsb r0, [sb, #0x73] + cmp r0, #1 + bne _022CE528 + ldrh r0, [sb, #0x74] + cmp r0, #0 + bne _022CE4E4 + bl ov00_022CB04C + strh r0, [sb, #0x74] + ldrh r0, [sb, #0x74] + strh r0, [sb, #0xa] +_022CE4E4: + ldrh r0, [sb, #0x74] + strh r0, [r5, #0x24] + ldr r1, [sb, #0x78] + cmp r1, #0 + beq _022CE504 + ldr r0, [sp, #0x24] + cmp r0, #0 + beq _022CE518 +_022CE504: + ldr r1, [sp, #0x24] + ldrh r0, [sp, #0x20] + str r1, [r5, #0x28] + strh r0, [r5, #0x26] + b _022CE530 +_022CE518: + str r1, [r5, #0x28] + ldrh r0, [sb, #0x76] + strh r0, [r5, #0x26] + b _022CE530 +_022CE528: + mov r0, #0 + str r0, [r5, #0x28] +_022CE530: + ldr r0, [r4, #0x10c] + mov r1, r5 + bl ov00_022CD260 + cmp r0, #0 + addne r0, r4, #0x100 + movne r8, #0 + strhne r6, [r0] + mov r0, r8 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022CE554: .4byte ov00_022CE558 + arm_func_end ov00_022CE3E4 + + arm_func_start ov00_022CE558 +ov00_022CE558: @ 0x022CE558 + push {r4, r5, r6, r7, r8, sb, sl, lr} + mov sb, r0 + ldr r5, [sb, #4] + mov r7, #0 + ldrsb r0, [r5, #0x73] + mov r1, #1 + ldr r6, [r5, #0x68] + cmp r0, #0 + cmpne r0, #4 + movne r1, r7 + cmp r1, #0 + beq _022CE594 + ldrsh r0, [r5, #0x70] + tst r0, #4 + beq _022CE668 +_022CE594: + ldr r2, [sb, #0x28] + cmp r2, #0 + beq _022CE5AC + ldrh r0, [sb, #0x24] + ldrh r1, [sb, #0x26] + bl ov00_022CB190 +_022CE5AC: + ldrsb r1, [r5, #0x73] + mov r0, #1 + ldr r4, [r5, #0x4c] + cmp r1, #0 + cmpne r1, #4 + movne r0, #0 + cmp r0, #0 + movne r8, #0x36 + moveq r8, #0x2a + cmp r1, #0 + cmpne r1, #4 + ldrne r0, [r5, #0x48] + subne sl, r0, r8 + bne _022CE5F4 + ldr r0, [r5, #0x48] + sub r0, r0, r8 + bl ov00_022CE688 + mov sl, r0 +_022CE5F4: + mov r1, sl + mov r2, sb + add r0, r4, r8 + bl ov00_022CE72C + mov r1, r0 + cmp r1, #0 + ble _022CE66C + add r0, r4, r8 + bl ov00_022CBA58 + cmp r0, #0 + bgt _022CE660 + ldrsb r0, [r5, #0x73] + mov r1, #1 + cmp r0, #0 + cmpne r0, #4 + movne r1, #0 + cmp r1, #0 + beq _022CE658 + ldrsh r0, [r5, #0x70] + bic r0, r0, #0xe + strh r0, [r5, #0x70] + ldrsh r0, [r5, #0x70] + orr r0, r0, #0x80 + strh r0, [r5, #0x70] + bl ov00_022CB3F8 +_022CE658: + mvn r7, #0x4b + b _022CE66C +_022CE660: + add r7, r7, r0 + b _022CE5F4 +_022CE668: + mvn r7, #0x4b +_022CE66C: + ldrh r2, [sb, #0x20] + add r1, r6, #0x100 + add r0, r6, #0x104 + strh r2, [r1, #2] + bl FUN_020798D8 + mov r0, r7 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end ov00_022CE558 + + arm_func_start ov00_022CE688 +ov00_022CE688: @ 0x022CE688 + push {r3, r4, r5, lr} + ldr r1, _022CE724 @ =0x022B966C + mov r4, r0 + ldr r0, [r1, #4] + ldr r5, [r0, #0xa4] + bl FUN_0207B7E4 + cmp r5, #0 + beq _022CE6EC + ldrh r3, [r5, #0x2e] + cmp r3, #0 + ldrhne r2, [r5, #0x2c] + cmpne r2, #0 + beq _022CE6DC + ldr r1, _022CE728 @ =0x023268D0 + cmp r3, r2 + ldr r1, [r1, #0x24] + movgt r3, r2 + cmp r3, r1 + movgt r3, r1 + lsl r5, r3, #1 + b _022CE6F8 +_022CE6DC: + ldr r1, _022CE728 @ =0x023268D0 + ldr r1, [r1, #0x24] + lsl r5, r1, #1 + b _022CE6F8 +_022CE6EC: + ldr r1, _022CE728 @ =0x023268D0 + ldr r1, [r1, #0x24] + lsl r5, r1, #1 +_022CE6F8: + bl FUN_0207B7F8 + cmp r5, #0 + ble _022CE71C + mov r0, r4 + mov r1, r5 + bl FUN_0208FEA4 + cmp r0, #0 + mulgt r0, r5, r0 + popgt {r3, r4, r5, pc} +_022CE71C: + mov r0, r4 + pop {r3, r4, r5, pc} + .align 2, 0 +_022CE724: .4byte 0x022B966C +_022CE728: .4byte 0x023268D0 + arm_func_end ov00_022CE688 + + arm_func_start ov00_022CE72C +ov00_022CE72C: @ 0x022CE72C + push {r3, r4, r5, r6, r7, lr} + mov r6, r2 + ldr r4, [r6, #0x14] + ldr r5, [r6, #0x1c] + cmp r4, r1 + mov r7, r0 + movgt r4, r1 + movgt r5, #0 + bgt _022CE75C + sub r0, r1, r4 + cmp r5, r0 + movgt r5, r0 +_022CE75C: + cmp r4, #0 + ble _022CE78C + ldr r0, [r6, #0x10] + mov r1, r7 + mov r2, r4 + bl FUN_0207C4C8 + ldr r0, [r6, #0x10] + add r0, r0, r4 + str r0, [r6, #0x10] + ldr r0, [r6, #0x14] + sub r0, r0, r4 + str r0, [r6, #0x14] +_022CE78C: + cmp r5, #0 + ble _022CE7BC + ldr r0, [r6, #0x18] + mov r2, r5 + add r1, r7, r4 + bl FUN_0207C4C8 + ldr r0, [r6, #0x18] + add r0, r0, r5 + str r0, [r6, #0x18] + ldr r0, [r6, #0x1c] + sub r0, r0, r5 + str r0, [r6, #0x1c] +_022CE7BC: + add r0, r4, r5 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022CE72C + + arm_func_start ov00_022CE7C4 +ov00_022CE7C4: @ 0x022CE7C4 + push {r3, r4, r5, lr} + mov r4, r0 + bl ov00_022CF154 + cmp r0, #0 + mvnne r0, #0x1b + popne {r3, r4, r5, pc} + cmp r4, #0 + mov r1, #0 + beq _022CE7F4 + ldrsh r0, [r4, #0x70] + tst r0, #1 + movne r1, #1 +_022CE7F4: + cmp r1, #0 + mvneq r0, #0x26 + popeq {r3, r4, r5, pc} + ldrsh r0, [r4, #0x70] + tst r0, #4 + beq _022CE818 + ldrsh r0, [r4, #0x70] + tst r0, #8 + beq _022CE820 +_022CE818: + mvn r0, #0x37 + pop {r3, r4, r5, pc} +_022CE820: + ldrsh r0, [r4, #0x70] + orr r0, r0, #8 + strh r0, [r4, #0x70] + ldr r5, [r4, #0x68] + cmp r5, #0 + ldrne r1, [r5, #0x10c] + cmpne r1, #0 + beq _022CE864 + ldrsb r2, [r4, #0x72] + ldr r0, _022CE86C @ =ov00_022CE870 + bl ov00_022CD108 + movs r1, r0 + mvneq r0, #0x20 + popeq {r3, r4, r5, pc} + ldr r0, [r5, #0x10c] + bl ov00_022CD260 + pop {r3, r4, r5, pc} +_022CE864: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022CE86C: .4byte ov00_022CE870 + arm_func_end ov00_022CE7C4 + + arm_func_start ov00_022CE870 +ov00_022CE870: @ 0x022CE870 + push {r3, lr} + ldr r0, [r0, #4] + mov r1, #1 + ldrsb r0, [r0, #0x73] + cmp r0, #0 + cmpne r0, #4 + movne r1, #0 + cmp r1, #0 + beq _022CE898 + bl ov00_022CB3BC +_022CE898: + mov r0, #0 + pop {r3, pc} + arm_func_end ov00_022CE870 + + arm_func_start ov00_022CE8A0 +ov00_022CE8A0: @ 0x022CE8A0 + push {r4, lr} + movs r4, r0 + bmi _022CE8CC + bl ov00_022CF154 + cmp r0, #0 + beq _022CE8CC + mov r0, r4 + bl ov00_022CF188 + cmp r0, #0 + moveq r0, #1 + popeq {r4, pc} +_022CE8CC: + mov r0, #0 + pop {r4, pc} + arm_func_end ov00_022CE8A0 + + arm_func_start ov00_022CE8D4 +ov00_022CE8D4: @ 0x022CE8D4 + push {r4, lr} + mov r4, r0 + cmp r4, #0 + mvnle r0, #0x1b + pople {r4, pc} + bl ov00_022CF188 + cmp r0, #0 + mvnne r0, #0x19 + popne {r4, pc} + mov r0, r4 + bl ov00_022CF154 + cmp r0, #0 + movne r0, #0 + popne {r4, pc} + cmp r4, #0 + mov r1, #0 + beq _022CE924 + ldrsh r0, [r4, #0x70] + tst r0, #1 + movne r1, #1 +_022CE924: + cmp r1, #0 + mvneq r0, #0x26 + popeq {r4, pc} + ldrsh r0, [r4, #0x70] + tst r0, #0x10 + mvnne r0, #0x19 + popne {r4, pc} + ldrsh r0, [r4, #0x70] + mov r1, #1 + orr r0, r0, #0x18 + strh r0, [r4, #0x70] + ldrsb r0, [r4, #0x73] + cmp r0, #0 + cmpne r0, #4 + movne r1, #0 + cmp r1, #0 + beq _022CE974 + ldr r0, [r4, #0x68] + mov r1, #0 + bl ov00_022CD17C +_022CE974: + ldr r0, _022CE9A0 @ =ov00_022CE9A4 + mov r1, r4 + mov r2, #1 + bl ov00_022CD108 + mov r1, r0 + mov r2, #0 + mov r0, r4 + str r2, [r1, #8] + bl ov00_022CD1C8 + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_022CE9A0: .4byte ov00_022CE9A4 + arm_func_end ov00_022CE8D4 + + arm_func_start ov00_022CE9A4 +ov00_022CE9A4: @ 0x022CE9A4 + push {r3, r4, r5, lr} + ldr r4, [r0, #4] + mov r1, #1 + ldrsb r0, [r4, #0x73] + cmp r0, #0 + cmpne r0, #4 + movne r1, #0 + cmp r1, #0 + beq _022CE9E0 + ldr r0, [r4, #0x68] + add r0, r0, #0x20 + bl FUN_02079800 + bl ov00_022CB3BC + bl ov00_022CB3F8 + bl ov00_022CB224 +_022CE9E0: + bl ov00_022CB14C + ldrsh r0, [r4, #0x70] + mov r1, #0 + bic r0, r0, #6 + strh r0, [r4, #0x70] + ldrsb r0, [r4, #0x73] + cmp r0, #2 + ldreq r0, [r4, #0x68] + ldrne r0, [r4, #0x64] + bl ov00_022CD17C + bl FUN_0207B7E4 + mov r5, r0 + mov r0, r4 + bl ov00_022CF0DC + mov r0, r4 + bl ov00_022CF0C4 + mov r0, r5 + bl FUN_0207B7F8 + ldrsh r1, [r4, #0x70] + mov r0, #0 + orr r1, r1, #0x20 + strh r1, [r4, #0x70] + pop {r3, r4, r5, pc} + arm_func_end ov00_022CE9A4 + + arm_func_start ov00_022CEA3C +ov00_022CEA3C: @ 0x022CEA3C + push {r4, r5, r6, lr} + movs r4, r0 + popeq {r4, r5, r6, pc} + mov r0, #0 + strh r0, [r4, #0x70] + ldrsb r2, [r4, #0x73] + mov r1, #1 + cmp r2, #0 + cmpne r2, #4 + movne r1, r0 + cmp r1, #0 + beq _022CEA80 + ldr r0, [r4, #0x68] + bl ov00_022CEB3C + ldr r0, [r4, #0x64] + bl ov00_022CEB3C + b _022CEB00 +_022CEA80: + cmp r2, #1 + bne _022CEAF0 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x104] + cmp r0, #0 + beq _022CEAB8 + ldr r5, _022CEB38 @ =0x02318868 +_022CEA9C: + ldr r1, [r5] + ldr r6, [r0] + ldr r1, [r1, #0x1c] + blx r1 + mov r0, r6 + cmp r6, #0 + bne _022CEA9C +_022CEAB8: + ldr r0, [r4, #0x64] + mov r1, #0 + add r0, r0, #0x100 + strh r1, [r0, #8] + ldr r0, [r4, #0x64] + str r1, [r0, #0x100] + ldr r0, [r4, #0x64] + str r1, [r0, #0x104] + ldr r0, [r4, #0x64] + add r0, r0, #0x10c + bl FUN_020798D8 + ldr r0, [r4, #0x64] + bl ov00_022CEB3C + b _022CEB00 +_022CEAF0: + cmp r2, #2 + bne _022CEB00 + ldr r0, [r4, #0x68] + bl ov00_022CEB3C +_022CEB00: + bl FUN_0207B7E4 + mov r5, r0 + mov r0, r4 + bl ov00_022CF0DC + mov r0, r4 + bl ov00_022CF13C + ldr r1, _022CEB38 @ =0x02318868 + mov r0, r4 + ldr r1, [r1] + ldr r1, [r1, #0x1c] + blx r1 + mov r0, r5 + bl FUN_0207B7F8 + pop {r4, r5, r6, pc} + .align 2, 0 +_022CEB38: .4byte 0x02318868 + arm_func_end ov00_022CEA3C + + arm_func_start ov00_022CEB3C +ov00_022CEB3C: @ 0x022CEB3C + push {r3, r4, r5, r6, r7, r8, sb, lr} + movs sb, r0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + add r0, sb, #0x20 + bl FUN_02079800 + bl FUN_0207B7E4 + mov r8, r0 + bl FUN_02079C14 + add r1, sp, #0 + mov r0, sb + mov r2, #0 + bl FUN_02079E74 + cmp r0, #0 + beq _022CEBC8 + mov r6, #0 + mvn r7, #0xa + add r5, sp, #0 + mov r4, r6 +_022CEB84: + ldr r0, [sp] + cmp r0, #0 + beq _022CEBB0 + ldr r0, [r0, #8] + cmp r0, #0 + beq _022CEBA8 + mov r1, r7 + mov r2, r6 + bl FUN_02079DE0 +_022CEBA8: + ldr r0, [sp] + bl ov00_022CD148 +_022CEBB0: + mov r0, sb + mov r1, r5 + mov r2, r4 + bl FUN_02079E74 + cmp r0, #0 + bne _022CEB84 +_022CEBC8: + bl FUN_02079C48 + bl FUN_02079990 + mov r0, r8 + bl FUN_0207B7F8 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_022CEB3C + + arm_func_start ov00_022CEBDC +ov00_022CEBDC: @ 0x022CEBDC + push {r3, r4, r5, lr} + bl FUN_0207B7E4 + ldr r4, _022CEC14 @ =0x02326930 + mov r5, r0 + ldr r0, [r4] + cmp r0, #0 + beq _022CEC08 +_022CEBF8: + bl ov00_022CEA3C + ldr r0, [r4] + cmp r0, #0 + bne _022CEBF8 +_022CEC08: + mov r0, r5 + bl FUN_0207B7F8 + pop {r3, r4, r5, pc} + .align 2, 0 +_022CEC14: .4byte 0x02326930 + arm_func_end ov00_022CEBDC + + arm_func_start ov00_022CEC18 +ov00_022CEC18: @ 0x022CEC18 + push {r3, r4, r5, lr} + ldr r1, _022CECAC @ =0x023268C4 + ldr r0, [r1] + cmp r0, #0 + ldreq r0, _022CECB0 @ =0x023250C8 + ldreq r0, [r0] + streq r0, [r1] + bl ov00_022CED64 + mvn r4, #0x19 + cmp r0, r4 + bne _022CEC5C + mov r5, #0x64 +_022CEC48: + mov r0, r5 + bl FUN_02079B14 + bl ov00_022CED64 + cmp r0, r4 + beq _022CEC48 +_022CEC5C: + bl ov00_022CD098 + movs r4, r0 + bmi _022CECA4 + bl ov00_022C8508 + mov r0, #0 + bl ov00_022C84F8 + ldr r0, _022CECB4 @ =0x02318868 + ldr r1, [r0] + ldr r0, [r1, #0x28] + cmp r0, #0 + bne _022CEC98 + ldr r0, _022CECB8 @ =0x023268D0 + ldr r1, [r1, #0x1c] + ldr r0, [r0, #0x1c] + blx r1 +_022CEC98: + ldr r0, _022CECB4 @ =0x02318868 + mov r1, #0 + str r1, [r0] +_022CECA4: + mov r0, r4 + pop {r3, r4, r5, pc} + .align 2, 0 +_022CECAC: .4byte 0x023268C4 +_022CECB0: .4byte 0x023250C8 +_022CECB4: .4byte 0x02318868 +_022CECB8: .4byte 0x023268D0 + arm_func_end ov00_022CEC18 + + arm_func_start ov00_022CECBC +ov00_022CECBC: @ 0x022CECBC + push {r4, r5, r6, lr} + ldr r4, _022CED58 @ =0x023268CC + ldr r5, _022CED5C @ =0x0232692C +_022CECC8: + bl FUN_0207B7E4 + ldr r6, [r5] + cmp r6, #0 + beq _022CECFC + ldr r2, [r4] +_022CECDC: + cmp r6, r2 + beq _022CECF0 + ldrsh r1, [r6, #0x70] + tst r1, #0x10 + beq _022CECFC +_022CECF0: + ldr r6, [r6, #0x7c] + cmp r6, #0 + bne _022CECDC +_022CECFC: + bl FUN_0207B7F8 + cmp r6, #0 + beq _022CED14 + mov r0, r6 + bl ov00_022CE8D4 + b _022CECC8 +_022CED14: + ldr r0, _022CED5C @ =0x0232692C + ldr r1, [r0] + cmp r1, #0 + beq _022CED3C + ldr r0, _022CED58 @ =0x023268CC + ldr r0, [r0] + cmp r1, r0 + ldreq r0, [r1, #0x7c] + cmpeq r0, #0 + bne _022CED50 +_022CED3C: + ldr r0, _022CED60 @ =0x02326930 + ldr r0, [r0] + cmp r0, #0 + moveq r0, #0 + popeq {r4, r5, r6, pc} +_022CED50: + mvn r0, #0x19 + pop {r4, r5, r6, pc} + .align 2, 0 +_022CED58: .4byte 0x023268CC +_022CED5C: .4byte 0x0232692C +_022CED60: .4byte 0x02326930 + arm_func_end ov00_022CECBC + + arm_func_start ov00_022CED64 +ov00_022CED64: @ 0x022CED64 + push {r4, lr} + ldr r0, _022CEDDC @ =0x023268CC + ldr r0, [r0] + cmp r0, #0 + beq _022CEDB8 + bl ov00_022CECBC + movs r4, r0 + bne _022CEDB0 + ldr r0, _022CEDDC @ =0x023268CC + ldr r0, [r0] + bl ov00_022CE8D4 + ldr r0, _022CEDDC @ =0x023268CC + ldr r0, [r0] + bl ov00_022CE8A0 + cmp r0, #0 + ldrne r0, _022CEDDC @ =0x023268CC + movne r1, #0 + strne r1, [r0] + mvn r4, #0x19 +_022CEDB0: + bl ov00_022CEBDC + b _022CEDD4 +_022CEDB8: + bl ov00_022C84A8 + cmp r0, #0 + mvneq r4, #0x19 + beq _022CEDD4 + mov r0, #0 + bl ov00_022D71E4 + mov r4, #0 +_022CEDD4: + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_022CEDDC: .4byte 0x023268CC + arm_func_end ov00_022CED64 + + arm_func_start ov00_022CEDE0 +ov00_022CEDE0: @ 0x022CEDE0 + push {r4, r5, lr} + sub sp, sp, #0x64 + movs r5, r0 + addeq sp, sp, #0x64 + moveq r0, #0 + popeq {r4, r5, pc} + ldr r1, _022CEE84 @ =0x02318868 + mov r0, #0xfd0 + ldr r1, [r1] + ldr r1, [r1, #0x18] + blx r1 + movs r4, r0 + addeq sp, sp, #0x64 + moveq r0, #0 + popeq {r4, r5, pc} + add r0, sp, #0 + mov r1, #0 + mov r2, #0x64 + bl FUN_0207C40C + add r0, r4, #0x368 + add r2, r0, #0x800 + ldr r3, _022CEE88 @ =0x00000B68 + ldr r1, _022CEE8C @ =0x00000466 + add r0, sp, #0 + str r4, [sp, #0x40] + str r3, [sp, #0x3c] + str r2, [sp, #0x4c] + str r1, [sp, #0x48] + bl ov00_022CB138 + mov r0, r5 + bl ov00_022CCC58 + mov r5, r0 + bl ov00_022CB14C + ldr r1, _022CEE84 @ =0x02318868 + mov r0, r4 + ldr r1, [r1] + ldr r1, [r1, #0x1c] + blx r1 + mov r0, r5 + add sp, sp, #0x64 + pop {r4, r5, pc} + .align 2, 0 +_022CEE84: .4byte 0x02318868 +_022CEE88: .4byte 0x00000B68 +_022CEE8C: .4byte 0x00000466 + arm_func_end ov00_022CEDE0 + + arm_func_start ov00_022CEE90 +ov00_022CEE90: @ 0x022CEE90 + push {r3, r4, r5, r6, r7, lr} + mov r4, r0 + bl FUN_0207B7E4 + ldr r1, _022CEED8 @ =0x023250D8 + mov r5, r0 + ldm r1, {r6, r7} + mov r2, #0 + str r2, [r1] + mov r0, r4 + str r2, [r1, #4] + bl ov00_022CCC58 + ldr r1, _022CEED8 @ =0x023250D8 + mov r4, r0 + mov r0, r5 + stm r1, {r6, r7} + bl FUN_0207B7F8 + mov r0, r4 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022CEED8: .4byte 0x023250D8 + arm_func_end ov00_022CEE90 + + arm_func_start ov00_022CEEDC +ov00_022CEEDC: @ 0x022CEEDC + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + bl ov00_022CEF10 + cmp r0, #0 + mvneq r0, #0x26 + popeq {r3, r4, r5, pc} + ldr r1, _022CEF0C @ =0x023250D8 + mov r0, #0 + str r5, [r1] + str r4, [r1, #4] + pop {r3, r4, r5, pc} + .align 2, 0 +_022CEF0C: .4byte 0x023250D8 + arm_func_end ov00_022CEEDC + + arm_func_start ov00_022CEF10 +ov00_022CEF10: @ 0x022CEF10 + push {r3, lr} + ldr r0, _022CEF6C @ =0x023250C8 + ldr r2, [r0] + cmp r2, #0 + bne _022CEF50 + ldr r0, _022CEF70 @ =0x023268C8 + ldr r0, [r0] + and r0, r0, #3 + cmp r0, #1 + bne _022CEF60 + bl FUN_0207B848 + cmp r0, #0x12 + beq _022CEF60 + mov r0, #0xa + bl FUN_02079B14 + b _022CEF60 +_022CEF50: + ldr r0, _022CEF74 @ =0x023268C4 + ldr r1, [r0] + cmp r1, #0 + streq r2, [r0] +_022CEF60: + ldr r0, _022CEF6C @ =0x023250C8 + ldr r0, [r0] + pop {r3, pc} + .align 2, 0 +_022CEF6C: .4byte 0x023250C8 +_022CEF70: .4byte 0x023268C8 +_022CEF74: .4byte 0x023268C4 + arm_func_end ov00_022CEF10 + + arm_func_start ov00_022CEF78 +ov00_022CEF78: @ 0x022CEF78 + push {r4, r5, r6, lr} + mov r4, #0 + mov r5, r0 + bl ov00_022CF154 + cmp r0, #0 + orrne r4, r4, #0x80 + bne _022CF040 + ldrsh r0, [r5, #0x70] + tst r0, #0x40 + ldrsb r0, [r5, #0x73] + orrne r4, r4, #0x20 + cmp r0, #1 + beq _022CEFB8 + ldrsh r0, [r5, #0x70] + tst r0, #4 + beq _022CEFE8 +_022CEFB8: + bl FUN_0207B7E4 + mov r6, r0 + mov r0, r5 + bl ov00_022CF048 + cmp r0, #0 + mov r0, r5 + orrgt r4, r4, #1 + bl ov00_022CE3C0 + cmp r0, #0 + mov r0, r6 + orrgt r4, r4, #8 + bl FUN_0207B7F8 +_022CEFE8: + ldrsb r0, [r5, #0x73] + mov r1, #1 + cmp r0, #0 + cmpne r0, #4 + movne r1, #0 + cmp r1, #0 + beq _022CF040 + ldrsh r0, [r5, #0x70] + tst r0, #4 + ldrbne r0, [r5, #8] + cmpne r0, #4 + beq _022CF028 + tst r4, #1 + ldrsheq r0, [r5, #0x70] + biceq r0, r0, #6 + strheq r0, [r5, #0x70] +_022CF028: + ldrsh r0, [r5, #0x70] + tst r0, #2 + bne _022CF040 + ldrsh r0, [r5, #0x70] + tst r0, #4 + orreq r4, r4, #0x40 +_022CF040: + mov r0, r4 + pop {r4, r5, r6, pc} + arm_func_end ov00_022CEF78 + + arm_func_start ov00_022CF048 +ov00_022CF048: @ 0x022CF048 + ldr r2, [r0, #0x64] + mov r3, #0 + cmp r2, #0 + beq _022CF088 + ldrsb r1, [r0, #0x73] + cmp r1, #1 + bne _022CF074 + ldr r0, [r2, #0x104] + cmp r0, #0 + ldrhne r3, [r0, #4] + b _022CF088 +_022CF074: + cmp r1, #0 + cmpne r1, #4 + ldreq r1, [r0, #0x44] + ldreq r0, [r2, #0xf8] + subeq r3, r1, r0 +_022CF088: + mov r0, r3 + bx lr + arm_func_end ov00_022CF048 + + arm_func_start ov00_022CF090 +ov00_022CF090: @ 0x022CF090 + add r0, r0, #3 + bic r0, r0, #3 + bx lr + arm_func_end ov00_022CF090 + + arm_func_start ov00_022CF09C +ov00_022CF09C: @ 0x022CF09C + ldr ip, _022CF0AC @ =FUN_022CF0B4 + mov r1, r0 + ldr r0, _022CF0B0 @ =0x0232692C bx ip .align 2, 0 -_0206C848: .4byte 0x022B7330 -_0206C84C: .4byte 0x022B8330 -_0206C850: .4byte FUN_0206e8ac - arm_func_end FUN_0206c814 +_022CF0AC: .4byte FUN_022CF0B4 +_022CF0B0: .4byte 0x0232692C + arm_func_end ov00_022CF09C - arm_func_start FUN_0206c854 -FUN_0206c854: @ 0x0206C854 + arm_func_start FUN_022CF0B4 +FUN_022CF0B4: @ 0x022CF0B4 + ldr r2, [r0] + str r2, [r1, #0x7c] + str r1, [r0] + bx lr + arm_func_end FUN_022CF0B4 + + arm_func_start ov00_022CF0C4 +ov00_022CF0C4: @ 0x022CF0C4 + ldr ip, _022CF0D4 @ =FUN_022CF0B4 + mov r1, r0 + ldr r0, _022CF0D8 @ =0x02326930 + bx ip + .align 2, 0 +_022CF0D4: .4byte FUN_022CF0B4 +_022CF0D8: .4byte 0x02326930 + arm_func_end ov00_022CF0C4 + + arm_func_start ov00_022CF0DC +ov00_022CF0DC: @ 0x022CF0DC + ldr ip, _022CF0EC @ =FUN_022CF0F4 + mov r1, r0 + ldr r0, _022CF0F0 @ =0x0232692C + bx ip + .align 2, 0 +_022CF0EC: .4byte FUN_022CF0F4 +_022CF0F0: .4byte 0x0232692C + arm_func_end ov00_022CF0DC + + arm_func_start FUN_022CF0F4 +FUN_022CF0F4: @ 0x022CF0F4 + push {r4, lr} + mov r4, r1 + bl ov00_022CF110 + cmp r0, #0 + ldrne r1, [r4, #0x7c] + strne r1, [r0] + pop {r4, pc} + arm_func_end FUN_022CF0F4 + + arm_func_start ov00_022CF110 +ov00_022CF110: @ 0x022CF110 + ldr r2, [r0] + cmp r2, #0 + beq _022CF134 +_022CF11C: + cmp r2, r1 + bxeq lr + add r0, r2, #0x7c + ldr r2, [r2, #0x7c] + cmp r2, #0 + bne _022CF11C +_022CF134: + mov r0, #0 + bx lr + arm_func_end ov00_022CF110 + + arm_func_start ov00_022CF13C +ov00_022CF13C: @ 0x022CF13C + ldr ip, _022CF14C @ =FUN_022CF0F4 + mov r1, r0 + ldr r0, _022CF150 @ =0x02326930 + bx ip + .align 2, 0 +_022CF14C: .4byte FUN_022CF0F4 +_022CF150: .4byte 0x02326930 + arm_func_end ov00_022CF13C + + arm_func_start ov00_022CF154 +ov00_022CF154: @ 0x022CF154 push {r3, lr} - ldr r3, _0206C880 @ =0x022B7330 - stmib r3, {r0, r1, r2} - ldr ip, [r3, #0x1c] - cmp ip, #0 - popeq {r3, pc} - mov r1, #0 - ldr r2, _0206C884 @ =0x022B7334 - mov r3, r1 - blx ip + mov r1, r0 + cmp r1, #0 + ble _022CF174 + ldr r0, _022CF184 @ =0x0232692C + bl ov00_022CF110 + cmp r0, #0 + bne _022CF17C +_022CF174: + mov r0, #1 + pop {r3, pc} +_022CF17C: + mov r0, #0 pop {r3, pc} .align 2, 0 -_0206C880: .4byte 0x022B7330 -_0206C884: .4byte 0x022B7334 - arm_func_end FUN_0206c854 +_022CF184: .4byte 0x0232692C + arm_func_end ov00_022CF154 - arm_func_start FUN_0206c888 -FUN_0206c888: @ 0x0206C888 + arm_func_start ov00_022CF188 +ov00_022CF188: @ 0x022CF188 push {r3, lr} - ldr r3, _0206C8BC @ =0x022B7330 - str r0, [r3, #0x10] - str r1, [r3, #0x14] - str r2, [r3, #0x18] - ldr ip, [r3, #0x20] - cmp ip, #0 - popeq {r3, pc} - mov r1, #0 - ldr r2, _0206C8C0 @ =0x022B7340 - mov r3, r1 - blx ip + mov r1, r0 + ldr r0, _022CF1A8 @ =0x02326930 + bl ov00_022CF110 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 pop {r3, pc} .align 2, 0 -_0206C8BC: .4byte 0x022B7330 -_0206C8C0: .4byte 0x022B7340 - arm_func_end FUN_0206c888 +_022CF1A8: .4byte 0x02326930 + arm_func_end ov00_022CF188 - arm_func_start FUN_0206c8c4 -FUN_0206c8c4: @ 0x0206C8C4 - lsr r3, r0, #0x18 - lsr r2, r0, #8 - lsl r1, r0, #8 - lsl r0, r0, #0x18 + arm_func_start ov00_022CF1AC +ov00_022CF1AC: @ 0x022CF1AC + push {r3, lr} + cmp r1, #1 + bne _022CF1C4 + ldr r0, _022CF1D0 @ =0x02318888 + bl ov00_022CD338 + pop {r3, pc} +_022CF1C4: + ldr r0, _022CF1D4 @ =0x02318870 + bl ov00_022CD338 + pop {r3, pc} + .align 2, 0 +_022CF1D0: .4byte 0x02318888 +_022CF1D4: .4byte 0x02318870 + arm_func_end ov00_022CF1AC + + arm_func_start ov00_022CF1D8 +ov00_022CF1D8: @ 0x022CF1D8 + ldrh r1, [r1, #2] + ldr ip, _022CF200 @ =FUN_022CD690 + asr r2, r1, #8 + lsl r1, r1, #8 + and r2, r2, #0xff + and r1, r1, #0xff00 + orr r1, r2, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bx ip + .align 2, 0 +_022CF200: .4byte FUN_022CD690 + arm_func_end ov00_022CF1D8 + + arm_func_start ov00_022CF204 +ov00_022CF204: @ 0x022CF204 + push {r4, lr} + ldrh r2, [r1, #2] + ldr lr, [r1, #4] + asr r4, r2, #8 + lsl r1, r2, #8 + lsr r3, lr, #0x18 + lsr r2, lr, #8 + lsl ip, lr, #8 + lsl lr, lr, #0x18 + and r4, r4, #0xff + and r1, r1, #0xff00 + orr r1, r4, r1 + lsl r1, r1, #0x10 + and r3, r3, #0xff + and r2, r2, #0xff00 + and ip, ip, #0xff0000 + orr r2, r3, r2 + and r3, lr, #0xff000000 + orr r2, ip, r2 + lsr r1, r1, #0x10 + orr r2, r3, r2 + bl ov00_022CD700 + pop {r4, pc} + arm_func_end ov00_022CF204 + + arm_func_start ov00_022CF260 +ov00_022CF260: @ 0x022CF260 + push {r3, lr} + sub sp, sp, #8 + mov ip, #0 + str ip, [sp] + str r3, [sp, #4] + mov r3, ip + bl ov00_022CD8C4 + add sp, sp, #8 + pop {r3, pc} + arm_func_end ov00_022CF260 + + arm_func_start ov00_022CF284 +ov00_022CF284: @ 0x022CF284 + push {r3, lr} + sub sp, sp, #0x10 + add ip, sp, #0xc + str ip, [sp] + str r3, [sp, #4] + add r3, sp, #8 + bl ov00_022CD8C4 + cmp r0, #0 + addlt sp, sp, #0x10 + poplt {r3, pc} + ldr r1, [sp, #0x18] + cmp r1, #0 + addeq sp, sp, #0x10 + popeq {r3, pc} + ldrh r2, [sp, #8] + asr r3, r2, #8 + lsl r2, r2, #8 and r3, r3, #0xff and r2, r2, #0xff00 orr r2, r3, r2 - and r1, r1, #0xff0000 - orr r1, r2, r1 - and r0, r0, #0xff000000 - orr r0, r1, r0 - bx lr - arm_func_end FUN_0206c8c4 + strh r2, [r1, #2] + ldr lr, [sp, #0xc] + lsr r3, lr, #0x18 + lsr r2, lr, #8 + lsl ip, lr, #8 + lsl lr, lr, #0x18 + and r3, r3, #0xff + and r2, r2, #0xff00 + and ip, ip, #0xff0000 + orr r2, r3, r2 + and r3, lr, #0xff000000 + orr r2, ip, r2 + orr r2, r3, r2 + str r2, [r1, #4] + add sp, sp, #0x10 + pop {r3, pc} + arm_func_end ov00_022CF284 - arm_func_start FUN_0206c8f4 -FUN_0206c8f4: @ 0x0206C8F4 - ldr r1, _0206C914 @ =0x022B7330 - ldr r0, _0206C918 @ =0x00007FFF - ldr r2, [r1, #0x34] - eor r2, r2, r2, lsl #17 - eor r2, r2, r2, asr #15 - str r2, [r1, #0x34] - and r0, r2, r0 - bx lr - .align 2, 0 -_0206C914: .4byte 0x022B7330 -_0206C918: .4byte 0x00007FFF - arm_func_end FUN_0206c8f4 + arm_func_start ov00_022CF314 +ov00_022CF314: @ 0x022CF314 + push {r3, lr} + sub sp, sp, #8 + mov ip, #0 + str ip, [sp] + str r3, [sp, #4] + mov r3, ip + bl ov00_022CE124 + add sp, sp, #8 + pop {r3, pc} + arm_func_end ov00_022CF314 - arm_func_start FUN_0206c91c -FUN_0206c91c: @ 0x0206C91C - mov ip, r1 - tst r0, #0xf - bicne r0, r0, #0xf - ldr r1, _0206C980 @ =0x022B7330 - addne r0, r0, #0x10 - subne ip, ip, #0x10 - add r3, r0, ip - str r0, [r1, #0x6f4] - str r3, [r1, #0x6f8] - str ip, [r1, #0x6fc] - ldr r3, _0206C984 @ =0x74647373 - mov r1, #0x82 - str r3, [r0] - strb r1, [r0, #4] - mov r3, #0 - strb r3, [r0, #5] - add r1, r0, #0x10 - str r1, [r0, #8] - str r3, [r0, #0xc] - strb r3, [r0, #6] - ldr r3, _0206C988 @ =0x022B7A30 - ldm r2, {r0, r1, r2} - stm r3, {r0, r1, r2} - mov r0, ip - bx lr - .align 2, 0 -_0206C980: .4byte 0x022B7330 -_0206C984: .4byte 0x74647373 -_0206C988: .4byte 0x022B7A30 - arm_func_end FUN_0206c91c + arm_func_start ov00_022CF338 +ov00_022CF338: @ 0x022CF338 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + ldr r5, [sp, #0x20] + cmp r5, #0 + moveq r5, #0 + moveq r4, r5 + beq _022CF3A4 + ldrh r4, [r5, #2] + ldr r6, [r5, #4] + asr r7, r4, #8 + lsl ip, r4, #8 + lsr r4, r6, #0x18 + lsr lr, r6, #8 + lsl r5, r6, #8 + lsl r6, r6, #0x18 + and r7, r7, #0xff + and ip, ip, #0xff00 + orr r7, r7, ip + and r4, r4, #0xff + and lr, lr, #0xff00 + and r5, r5, #0xff0000 + orr r4, r4, lr + lsl ip, r7, #0x10 + orr r4, r5, r4 + and r6, r6, #0xff000000 + lsr r5, ip, #0x10 + orr r4, r6, r4 +_022CF3A4: + str r4, [sp] + str r3, [sp, #4] + mov r3, r5 + bl ov00_022CE124 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022CF338 - arm_func_start FUN_0206c98c -FUN_0206c98c: @ 0x0206C98C - ldr r0, _0206C9A4 @ =0x022B7330 - mov r1, #0 - str r1, [r0, #0x6f4] - str r1, [r0, #0x6f8] - str r1, [r0, #0x6fc] - bx lr - .align 2, 0 -_0206C9A4: .4byte 0x022B7330 - arm_func_end FUN_0206c98c - - arm_func_start FUN_0206c9a8 -FUN_0206c9a8: @ 0x0206C9A8 - ldr ip, _0206C9B4 @ =FUN_0206c9bc - ldr r2, _0206C9B8 @ =0x72657375 + arm_func_start ov00_022CE7C4 +ov00_022CE7C4: @ 0x022CF3BC + ldr ip, _022CF3C4 @ =ov00_022CE7C4 bx ip .align 2, 0 -_0206C9B4: .4byte FUN_0206c9bc -_0206C9B8: .4byte 0x72657375 - arm_func_end FUN_0206c9a8 +_022CF3C4: .4byte ov00_022CE7C4 + arm_func_end ov00_022CE7C4 - arm_func_start FUN_0206c9bc -FUN_0206c9bc: @ 0x0206C9BC - push {r3, r4, r5, r6, r7, lr} - ldr r3, _0206CAC4 @ =0x022B7330 - mov lr, r0 - ldr r0, [r3, #0x6f4] - cmp r0, #0 - moveq r0, #0 - popeq {r3, r4, r5, r6, r7, pc} - ldr r4, _0206CAC8 @ =0x04000208 - cmp r1, #0 - ldrh ip, [r4] - moveq r1, #0x10 - mov r0, #0 - sub r5, r1, #1 - strh r0, [r4] - ldr r3, _0206CAC4 @ =0x022B7330 - mvn r0, r5 - add r4, lr, r5 - and r4, r0, r4 - ldr r3, [r3, #0x6f4] - add r6, r4, #0x10 -_0206CA0C: - ldr r4, [r3, #0xc] - cmp r4, #0 - bne _0206CA2C - ldr r4, _0206CAC4 @ =0x022B7330 - ldr r7, [r3, #8] - ldr r4, [r4, #0x6f8] - sub r5, r4, r7 - b _0206CA40 -_0206CA2C: - ldr r7, [r3, #8] - sub r5, r4, r7 - cmp r5, r6 - movlt r3, r4 - blt _0206CA0C -_0206CA40: - cmp r5, r6 - bge _0206CA5C - ldr r2, _0206CAC8 @ =0x04000208 - mov r0, #0 - ldrh r1, [r2] - strh ip, [r2] - pop {r3, r4, r5, r6, r7, pc} -_0206CA5C: - add r4, r7, #0x10 - sub r1, r1, #1 - add r1, r4, r1 - and r1, r0, r1 - sub r6, r1, #0x10 - add r4, r6, #0x10 - add r0, r4, lr - str r0, [r6, #8] - str r2, [r1, #-0x10] - mov r0, #2 - strb r0, [r6, #4] - mov r0, #0 - strb r0, [r6, #5] - ldr r1, [r3, #0xc] - ldr r5, _0206CAC8 @ =0x04000208 - str r1, [r6, #0xc] - str r6, [r3, #0xc] - strb r0, [r6, #6] - strb r0, [r3, #6] - ldrh r1, [r5] - mov r1, r4 - mov r2, lr - strh ip, [r5] - bl FUN_0207c358 - mov r0, r4 - pop {r3, r4, r5, r6, r7, pc} + arm_func_start ov00_022CE8D4 +ov00_022CE8D4: @ 0x022CF3C8 + ldr ip, _022CF3D0 @ =ov00_022CE8D4 + bx ip .align 2, 0 -_0206CAC4: .4byte 0x022B7330 -_0206CAC8: .4byte 0x04000208 - arm_func_end FUN_0206c9bc +_022CF3D0: .4byte ov00_022CE8D4 + arm_func_end ov00_022CE8D4 - arm_func_start FUN_0206cacc -FUN_0206cacc: @ 0x0206CACC - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r3, _0206CC0C @ =0x022B7330 - mov r6, r0 - ldr r0, [r3, #0x6f4] - mov r5, r1 - cmp r0, #0 - bne _0206CB00 - mov r1, r6 - mov r2, r5 - mvn r0, #0xc1 - bl FUN_0206c854 - mov r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, pc} -_0206CB00: - ldr r3, _0206CC10 @ =0x04000208 - cmp r5, #0 - ldrh ip, [r3] - moveq r5, #0x10 - sub r4, r5, #1 - mov r1, #0 - strh r1, [r3] - ldr r0, _0206CC0C @ =0x022B7330 - mvn lr, r4 - add r3, r6, r4 - and r3, lr, r3 - ldr r0, [r0, #0x6f4] - mov r4, r1 - add r3, r3, #0x10 -_0206CB38: - ldr r8, [r0, #0xc] - cmp r8, #0 - bne _0206CB64 - ldr r7, _0206CC0C @ =0x022B7330 - ldr r8, [r0, #8] - ldr sb, [r7, #0x6f8] - sub r7, sb, r8 - cmp r7, r3 - movge r1, r0 - movge r4, sb - b _0206CB80 -_0206CB64: - ldr r7, [r0, #8] - sub r7, r8, r7 - cmp r7, r3 - movge r1, r0 - movge r4, r8 - mov r0, r8 - b _0206CB38 -_0206CB80: - cmp r1, #0 - bne _0206CB9C - ldr r2, _0206CC10 @ =0x04000208 - mov r0, #0 - ldrh r1, [r2] - strh ip, [r2] - pop {r3, r4, r5, r6, r7, r8, sb, pc} -_0206CB9C: - sub r0, r4, r3 - add r3, r0, #0x10 - sub r0, r5, #1 - add r0, r3, r0 - and r0, lr, r0 - str r2, [r0, #-0x10] - sub r7, r0, #0x10 - add r4, r7, #0x10 - mov r0, #0x22 - strb r0, [r7, #4] - mov r0, #0 - strb r0, [r7, #5] - strb r5, [r7, #7] - add r2, r4, r6 - str r2, [r7, #8] - ldr r2, [r1, #0xc] - ldr r3, _0206CC10 @ =0x04000208 - str r2, [r7, #0xc] - str r7, [r1, #0xc] - strb r0, [r7, #6] - strb r0, [r1, #6] - ldrh r1, [r3] - mov r1, r4 - mov r2, r6 - strh ip, [r3] - bl FUN_0207c358 - mov r0, r4 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0206CC0C: .4byte 0x022B7330 -_0206CC10: .4byte 0x04000208 - arm_func_end FUN_0206cacc - - arm_func_start FUN_0206cc14 -FUN_0206cc14: @ 0x0206CC14 - push {r3, lr} - ldr r2, _0206CCB4 @ =0x022B7330 - mov r1, r0 - ldr r0, [r2, #0x6f4] - cmp r0, #0 - bne _0206CC40 - mvn r0, #0xc1 - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0xc1 - pop {r3, pc} -_0206CC40: - ldr r0, _0206CCB8 @ =0x04000208 - mov ip, #0 - ldrh r3, [r0] - sub lr, r1, #0x10 - strh ip, [r0] - ldr r0, [r2, #0x6f4] - cmp r0, lr - beq _0206CC70 -_0206CC60: - mov ip, r0 - ldr r0, [r0, #0xc] - cmp r0, lr - bne _0206CC60 -_0206CC70: - cmp ip, #0 - beq _0206CC94 - ldr r0, [lr, #0xc] - ldr r1, _0206CCB8 @ =0x04000208 - str r0, [ip, #0xc] - ldrh r0, [r1] - mov r0, #0 - strh r3, [r1] - pop {r3, pc} -_0206CC94: - ldr ip, _0206CCB8 @ =0x04000208 - mvn r0, #0x8b - ldrh r2, [ip] - mov r2, #0 - strh r3, [ip] - bl FUN_0206c854 - mvn r0, #0x8b - pop {r3, pc} - .align 2, 0 -_0206CCB4: .4byte 0x022B7330 -_0206CCB8: .4byte 0x04000208 - arm_func_end FUN_0206cc14 - - arm_func_start FUN_0206ccbc -FUN_0206ccbc: @ 0x0206CCBC - cmp r1, #0x10 - blt _0206CCE4 - mov r2, #0 -_0206CCC8: - str r2, [r0, #0xc] - str r2, [r0, #8] - sub r1, r1, #0x10 - str r2, [r0, #4] - cmp r1, #0x10 - str r2, [r0], #0x10 - bge _0206CCC8 -_0206CCE4: - cmp r1, #4 - blt _0206CD00 - mov r2, #0 -_0206CCF0: - sub r1, r1, #4 - cmp r1, #4 - str r2, [r0], #4 - bge _0206CCF0 -_0206CD00: - cmp r1, #0 - bxle lr - mov r2, #0 -_0206CD0C: - strb r2, [r0], #1 - subs r1, r1, #1 - bne _0206CD0C - bx lr - arm_func_end FUN_0206ccbc - - arm_func_start FUN_0206cd1c -FUN_0206cd1c: @ 0x0206CD1C - push {r4, r5, r6, lr} - ldr r3, _0206CD98 @ =0x022B7330 - mov r6, r0 - ldrsb r0, [r3] - mov r4, r2 - mov r5, r1 - cmp r0, #0 - mvneq r4, #0xc0 - beq _0206CD80 - cmp r6, #0 - mvneq r4, #0x17 - beq _0206CD80 - beq _0206CD80 - ldr r0, [r6] - bl FUN_0206c8c4 - cmp r5, r0 - mvnne r4, #0x10 - bne _0206CD80 - cmp r4, #0 - ldrhne r0, [r6, #0xc] - cmpne r0, r4 - mvnne r4, #0x12 - bne _0206CD80 - ldrh r0, [r6, #0xe] - pop {r4, r5, r6, pc} -_0206CD80: - mov r0, r4 - mov r1, r6 - mov r2, #0 - bl FUN_0206c854 - mov r0, r4 - pop {r4, r5, r6, pc} - .align 2, 0 -_0206CD98: .4byte 0x022B7330 - arm_func_end FUN_0206cd1c - - arm_func_start FUN_0206cd9c -FUN_0206cd9c: @ 0x0206CD9C - push {r4, lr} - sub sp, sp, #8 - ldr r3, _0206CE18 @ =0x022B8330 - mov r1, #0x4000 - str r1, [r3, #0xde0] - mov ip, #0 - str ip, [r3, #0xde4] - mov r4, r0 - str ip, [r3, #0xde8] - strb r4, [r3, #0xdec] - strb ip, [r3, #0xded] - strb ip, [r3, #0xdee] - ldr r2, _0206CE1C @ =0x72727473 - mov r0, #0x800 - mov r1, #0x10 - strb ip, [r3, #0xdef] - bl FUN_0206cacc - ldr r1, _0206CE18 @ =0x022B8330 - mov r2, #0x800 - str r0, [r1, #0xeb0] - stm sp, {r2, r4} - ldr r2, [r1, #0xeb0] - ldr r0, _0206CE20 @ =0x022B9120 - add r3, r2, #0x800 - ldr r1, _0206CE24 @ =FUN_0206ce68 - mov r2, #0 - bl FUN_02079560 - ldr r0, _0206CE20 @ =0x022B9120 - bl FUN_02079940 - add sp, sp, #8 - pop {r4, pc} - .align 2, 0 -_0206CE18: .4byte 0x022B8330 -_0206CE1C: .4byte 0x72727473 -_0206CE20: .4byte 0x022B9120 -_0206CE24: .4byte FUN_0206ce68 - arm_func_end FUN_0206cd9c - - arm_func_start FUN_0206ce28 -FUN_0206ce28: @ 0x0206CE28 - push {r3, lr} - ldr r1, _0206CE60 @ =0x022B8330 - mov r2, #0 - ldr r0, _0206CE64 @ =0x022B9120 - strb r2, [r1, #0xded] - mov r2, #1 - strb r2, [r1, #0xdee] - bl FUN_02079940 - ldr r0, _0206CE64 @ =0x022B9120 - bl FUN_02079800 - ldr r0, _0206CE60 @ =0x022B8330 - ldr r0, [r0, #0xeb0] - bl FUN_0206cc14 - pop {r3, pc} - .align 2, 0 -_0206CE60: .4byte 0x022B8330 -_0206CE64: .4byte 0x022B9120 - arm_func_end FUN_0206ce28 - - arm_func_start FUN_0206ce68 -FUN_0206ce68: @ 0x0206CE68 - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r5, _0206CEC4 @ =0x022B8330 - mov r6, #0 - add r4, r5, #0xd00 - mov sb, #1 - mov r8, r6 - mov r7, r6 -_0206CE84: - mov r0, r8 - strb sb, [r5, #0xdef] - bl FUN_02079888 - strb r7, [r5, #0xdef] - ldrsb r0, [r4, #0xee] - cmp r0, #1 - popeq {r3, r4, r5, r6, r7, r8, sb, pc} - ldr r0, [r5, #0xeb4] - cmp r0, #0 - beq _0206CE84 - ldr r1, [r5, #0xeb8] - bl FUN_0206d3d8 - str r6, [r5, #0xeb4] - str r6, [r5, #0xeb8] - b _0206CE84 -_0206CEC0: - .byte 0xF8, 0x83, 0xBD, 0xE8 -_0206CEC4: .4byte 0x022B8330 - arm_func_end FUN_0206ce68 -_0206CEC8: - .byte 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0206ced0 -FUN_0206ced0: @ 0x0206CED0 - push {r3, r4, r5, r6, lr} - sub sp, sp, #0xb4 - movs r5, r0 - bne _0206CEFC - mov r1, #0 - mov r2, r1 - mvn r0, #0x17 - bl FUN_0206c854 - add sp, sp, #0xb4 - mvn r0, #0x17 - pop {r3, r4, r5, r6, pc} -_0206CEFC: - ldr r4, _0206D0E8 @ =0x022B8330 - cmp r1, #0 - moveq r1, #0x4000 - cmp r2, #0 - ldreq r2, _0206D0EC @ =0x0206CEC8 - str r1, [r4, #0xde0] - str r2, [r4, #0xde4] - add r0, sp, #0x1c - str r3, [r4, #0xde8] - bl FUN_0206d6f0 - add r0, sp, #0x1c - mov r1, r5 - bl FUN_0206d700 - cmp r0, #0 - addlt sp, sp, #0xb4 - poplt {r3, r4, r5, r6, pc} - mov r2, #0x50 - mov r3, #0 - mov r6, #1 - add r4, sp, #4 - add r0, sp, #0x1c - add r1, sp, #0x64 - str r2, [sp, #4] - str r2, [sp, #8] - str r3, [sp, #0xc] - str r3, [sp, #0x10] - str r6, [sp, #0x14] - str r6, [sp, #0x18] - str r4, [sp] - bl FUN_0206d73c - ldr r1, _0206D0F0 @ =0x7377646C - ldr r2, _0206D0F4 @ =0x00000415 - add r0, sp, #0x64 - mov r3, #4 - bl FUN_0206cd1c - movs r4, r0 - bpl _0206CFA4 - add r0, sp, #0x1c - bl FUN_0206d72c - add sp, sp, #0xb4 - mov r0, r4 - pop {r3, r4, r5, r6, pc} -_0206CFA4: - ldrh r0, [sp, #0x72] - bl FUN_0206d650 - cmp r0, #0 - beq _0206CFD8 - add r0, sp, #0x1c - bl FUN_0206d72c - mov r1, r4 - mvn r0, #0x47 - mov r2, #0 - bl FUN_0206c854 - add sp, sp, #0xb4 - mvn r0, #0x47 - pop {r3, r4, r5, r6, pc} -_0206CFD8: - ldr r6, [sp, #0xb0] - ldr r2, _0206D0F8 @ =0x66767772 - add r0, r6, #0x60 - mov r1, #0x10 - bl FUN_0206c9bc - movs r4, r0 - bne _0206D018 - add r0, sp, #0x1c - bl FUN_0206d72c - mov r1, #0 - mov r2, r1 - mvn r0, #0x7f - bl FUN_0206c854 - add sp, sp, #0xb4 - mvn r0, #0x7f - pop {r3, r4, r5, r6, pc} -_0206D018: - ldrh r0, [sp, #0x72] - add r3, r6, #0x70 - add r2, sp, #4 - strh r0, [r4] - ldrsh ip, [sp, #0xaa] - add r0, sp, #0x1c - add r1, r4, #0x60 - strh ip, [r4, #2] - str r3, [r4, #4] - ldr ip, [sp, #0xb0] - mov r3, #0x50 - str ip, [sp, #4] - str ip, [sp, #8] - str r2, [sp] - add r2, ip, #0x10 - bl FUN_0206d73c - ldr r0, [r4, #0x60] - bl FUN_0206c8c4 - ldr r1, _0206D0FC @ =0x77617669 - cmp r0, r1 - addne sp, sp, #0xb4 - mvnne r0, #0 - popne {r3, r4, r5, r6, pc} - add r1, r4, #0x70 - add r0, sp, #0x1c - str r1, [r4, #8] - bl FUN_0206d72c - mov r1, #0 - ldr r0, _0206D100 @ =0x04000208 - str r1, [r4, #0x5c] - ldrh r3, [r0] - ldr r2, _0206D104 @ =0x022B910C - strh r1, [r0] - ldr r0, [r2] - cmp r0, #0 - beq _0206D0B8 -_0206D0A8: - add r2, r0, #0x5c - ldr r0, [r0, #0x5c] - cmp r0, #0 - bne _0206D0A8 -_0206D0B8: - ldr r1, _0206D100 @ =0x04000208 - str r4, [r2] - ldrh r0, [r1] - add r0, r4, #0x14 - strh r3, [r1] - bl FUN_0206d6f0 - mov r1, r5 - add r0, r4, #0x14 - bl FUN_0206d700 - ldrh r0, [r4] - add sp, sp, #0xb4 - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_0206D0E8: .4byte 0x022B8330 -_0206D0EC: .4byte 0x0206CEC8 -_0206D0F0: .4byte 0x7377646C -_0206D0F4: .4byte 0x00000415 -_0206D0F8: .4byte 0x66767772 -_0206D0FC: .4byte 0x77617669 -_0206D100: .4byte 0x04000208 -_0206D104: .4byte 0x022B910C - arm_func_end FUN_0206ced0 - - arm_func_start FUN_0206d108 -FUN_0206d108: @ 0x0206D108 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - str r2, [sp] - ldr r1, _0206D2E4 @ =0x7377646C - ldr r2, _0206D2E8 @ =0x00000415 - mov r3, #4 - mov sl, r0 - bl FUN_0206cd1c - movs r4, r0 - popmi {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl FUN_0206d6a0 - cmp r0, #0 - beq _0206D158 - mov r1, r4 - mvn r0, #0x47 - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0x47 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0206D158: - ldr r2, _0206D2EC @ =0x69766177 - mov r0, #0x28 - mov r1, #0x10 - bl FUN_0206c9bc - movs sb, r0 - mov r1, #0 - bne _0206D188 - mov r2, r1 - mvn r0, #0x7f - bl FUN_0206c854 - mvn r0, #0x7f - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0206D188: - str sl, [sb] - strh r4, [sb, #4] - strh r1, [sb, #6] - ldrsh r0, [sl, #0x46] - add r8, sl, #0x50 - strh r0, [sb, #8] - ldrsh r0, [sl, #0x48] - strh r0, [sb, #0xa] - ldrb r0, [sl, #0x4a] - strb r0, [sb, #0xc] - ldrb r0, [sl, #0x4b] - strb r0, [sb, #0xd] - str r1, [sb, #0x10] - str r1, [sb, #0x14] - str r1, [sb, #0x18] - str r1, [sb, #0x1c] - str r1, [sb, #0x20] - str r1, [sb, #0x24] - ldr r0, [sl, #0x50] - bl FUN_0206c8c4 - ldr r7, _0206D2F0 @ =0x656F6420 - cmp r0, r7 - beq _0206D270 - ldr fp, _0206D2F4 @ =0x77617669 - ldr r4, _0206D2F8 @ =0x70726769 - ldr r6, _0206D2FC @ =0x70636D64 - ldr r5, _0206D300 @ =0x6B677270 -_0206D1F4: - ldr r0, [r8] - bl FUN_0206c8c4 - cmp r0, r6 - bhi _0206D218 - bhs _0206D23C - cmp r0, r5 - addeq r0, r8, #0x10 - streq r0, [sb, #0x18] - b _0206D244 -_0206D218: - cmp r0, r4 - bhi _0206D22C - addeq r0, r8, #0x10 - streq r0, [sb, #0x14] - b _0206D244 -_0206D22C: - cmp r0, fp - addeq r0, r8, #0x10 - streq r0, [sb, #0x10] - b _0206D244 -_0206D23C: - add r0, r8, #0x10 - str r0, [sb, #0x1c] -_0206D244: - ldrb r1, [r8, #8] - ldr r0, [r8, #0xc] - sub r2, r1, #1 - add r0, r0, #0x10 - mvn r1, r2 - add r0, r0, r2 - and r0, r1, r0 - ldr r0, [r8, r0]! - bl FUN_0206c8c4 - cmp r0, r7 - bne _0206D1F4 -_0206D270: - ldr r1, _0206D304 @ =0x04000208 - mov r0, #0 - ldrh r3, [r1] - ldr r2, _0206D308 @ =0x022B7990 - strh r0, [r1] - ldr r0, [r2] - cmp r0, #0 - beq _0206D2A0 -_0206D290: - add r2, r0, #0x24 - ldr r0, [r0, #0x24] - cmp r0, #0 - bne _0206D290 -_0206D2A0: - ldr r1, _0206D304 @ =0x04000208 - str sb, [r2] - ldrh r0, [r1] - strh r3, [r1] - ldrb r0, [sl, #0x4b] - cmp r0, #2 - bne _0206D2DC - ldrh r1, [sl, #0x40] - ldr r0, [sp] - cmp r0, #0 - strh r1, [sb, #6] - beq _0206D2DC - ldrh r0, [sb, #4] - ldr r1, [sp] - bl FUN_0206d328 -_0206D2DC: - ldrh r0, [sb, #4] - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0206D2E4: .4byte 0x7377646C -_0206D2E8: .4byte 0x00000415 -_0206D2EC: .4byte 0x69766177 -_0206D2F0: .4byte 0x656F6420 -_0206D2F4: .4byte 0x77617669 -_0206D2F8: .4byte 0x70726769 -_0206D2FC: .4byte 0x70636D64 -_0206D300: .4byte 0x6B677270 -_0206D304: .4byte 0x04000208 -_0206D308: .4byte 0x022B7990 - arm_func_end FUN_0206d108 - - arm_func_start FUN_0206d30c -FUN_0206d30c: @ 0x0206D30C - ldr r0, _0206D324 @ =0x022B8330 - ldr r0, [r0, #0xeb4] - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - bx lr - .align 2, 0 -_0206D324: .4byte 0x022B8330 - arm_func_end FUN_0206d30c - - arm_func_start FUN_0206d328 -FUN_0206d328: @ 0x0206D328 - push {r4, r5, r6, lr} + arm_func_start ov00_022CF3D4 +ov00_022CF3D4: @ 0x022CF3D4 + push {r3, r4, r5, lr} mov r5, r0 - mov r6, r1 - bl FUN_0206d6a0 + bl ov00_022CEDE0 movs r4, r0 - bne _0206D358 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldr r0, _022CF47C @ =0x023269BC + ldr r2, _022CF480 @ =0x00000101 + mov r1, #0 + bl FUN_0207C40C + ldr r0, _022CF47C @ =0x023269BC + ldr r2, _022CF480 @ =0x00000101 mov r1, r5 - mvn r0, #0x40 - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0x40 - pop {r4, r5, r6, pc} -_0206D358: - ldrb r0, [r4, #0xd] - cmp r0, #2 - mvnne r0, #0x4c - popne {r4, r5, r6, pc} - ldrh r0, [r4, #6] - bl FUN_0206d650 - cmp r0, #0 - bne _0206D390 - mov r1, #0 - mov r2, r1 - mvn r0, #0x4b - bl FUN_0206c854 - mvn r0, #0x4b - pop {r4, r5, r6, pc} -_0206D390: - ldr r5, [r4, #0x20] - cmp r5, #0 - bne _0206D3AC - mov r0, r4 - mov r1, #0 - bl FUN_0206d3d8 - mov r5, r0 -_0206D3AC: - cmp r6, #0 - beq _0206D3C8 - ldr r1, _0206D3D0 @ =0x022B8330 - ldr r0, _0206D3D4 @ =0x022B9120 - str r4, [r1, #0xeb4] - str r6, [r1, #0xeb8] - bl FUN_02079940 -_0206D3C8: - mov r0, r5 - pop {r4, r5, r6, pc} - .align 2, 0 -_0206D3D0: .4byte 0x022B8330 -_0206D3D4: .4byte 0x022B9120 - arm_func_end FUN_0206d328 - - arm_func_start FUN_0206d3d8 -FUN_0206d3d8: @ 0x0206D3D8 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x1c - mov sl, r0 - ldrh r0, [sl, #6] - mov sb, r1 - bl FUN_0206d650 - movs r4, r0 - bne _0206D414 - mov r1, #0 - mov r2, r1 - mvn r0, #0x4b - bl FUN_0206c854 - add sp, sp, #0x1c - mvn r0, #0x4b - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0206D414: - mov r6, #0 - str r6, [sp, #8] - ldr r0, [sl, #0x20] - mov r5, sb - str r0, [sp, #4] - ldrsh r0, [sl, #8] - mov r7, r6 - str r0, [sp, #0x14] - ldrsh r0, [sl, #8] - cmp r0, #0 - ble _0206D4D4 - add fp, sp, #4 -_0206D444: - lsl r1, r7, #0x10 - mov r0, sl - asr r1, r1, #0x10 - bl FUN_0206d558 - cmp r0, #0 - beq _0206D4C4 - str r5, [r0, #0x24] - ldr r2, [r4, #8] - lsl r1, r7, #1 - ldrh r1, [r2, r1] - cmp r1, #0 - beq _0206D4C4 - add r2, r7, #1 - str r2, [sp, #0x18] - ldr r2, [r0, #0x2c] - ldr r0, [r0, #0x28] - cmp sb, #0 - add r0, r2, r0 - lsl r8, r0, #2 - beq _0206D4BC - str fp, [sp] - ldr r0, [r4, #8] - ldr r3, [r4, #4] - add r0, r0, r1 - ldr ip, [r0, #0x24] - mov r1, r5 - mov r2, r8 - add r0, r4, #0x14 - add r3, ip, r3 - bl FUN_0206d73c -_0206D4BC: - add r6, r6, r8 - add r5, r5, r8 -_0206D4C4: - ldrsh r0, [sl, #8] - add r7, r7, #1 - cmp r7, r0 - blt _0206D444 -_0206D4D4: - mov r0, r6 - str r6, [sl, #0x20] - add sp, sp, #0x1c - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0206d3d8 - - arm_func_start FUN_0206d4e4 -FUN_0206d4e4: @ 0x0206D4E4 - push {r4, lr} - ldr r2, _0206D550 @ =0x04000208 - mov r1, #0 - ldrh ip, [r2] - mov r4, r0 - ldr r3, _0206D554 @ =0x022B7990 - strh r1, [r2] - b _0206D508 -_0206D504: - add r3, r0, #0x24 -_0206D508: - ldr r0, [r3] - cmp r0, #0 - ldrhne r1, [r0, #4] - cmpne r1, r4 - bne _0206D504 - ldr r2, _0206D550 @ =0x04000208 - cmp r0, #0 - ldrheq r1, [r2] - mvneq r0, #0x40 - strheq ip, [r2] - popeq {r4, pc} - ldr r1, [r0, #0x24] - str r1, [r3] - ldrh r1, [r2] - strh ip, [r2] - bl FUN_0206cc14 - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_0206D550: .4byte 0x04000208 -_0206D554: .4byte 0x022B7990 - arm_func_end FUN_0206d4e4 - - arm_func_start FUN_0206d558 -FUN_0206d558: @ 0x0206D558 - ldr r2, [r0, #0x10] - cmp r2, #0 - moveq r0, #0 - bxeq lr - ldrsh r0, [r0, #8] - cmp r0, r1 - movle r0, #0 - bxle lr - lsl r0, r1, #1 - ldrh r0, [r2, r0] - cmp r0, #0 - moveq r0, #0 - addne r0, r2, r0 - bx lr - arm_func_end FUN_0206d558 - - arm_func_start FUN_0206d590 -FUN_0206d590: @ 0x0206D590 - ldr r2, [r0, #0x14] - cmp r2, #0 - moveq r0, #0 - bxeq lr - ldrsh r0, [r0, #0xa] - cmp r0, r1 - movle r0, #0 - bxle lr - lsl r0, r1, #1 - ldrh r0, [r2, r0] - cmp r0, #0 - moveq r0, #0 - addne r0, r2, r0 - bx lr - arm_func_end FUN_0206d590 - - arm_func_start FUN_0206d5c8 -FUN_0206d5c8: @ 0x0206D5C8 - push {r3, lr} - ldrb lr, [r0, #2] - cmp lr, #0 - moveq r0, #0 - popeq {r3, pc} - cmp r1, #0 - addeq r1, r0, #0x60 - beq _0206D600 - ldrb ip, [r1, #1] - sub r0, lr, #1 - cmp ip, r0 - movge r0, #0 - popge {r3, pc} - add r1, r1, #0x30 -_0206D600: - sub r0, lr, #1 -_0206D604: - ldrb ip, [r1, #4] - cmp r2, ip - blo _0206D638 - ldrb ip, [r1, #5] - cmp r2, ip - bhi _0206D638 - ldrb ip, [r1, #8] - cmp r3, ip - blt _0206D638 - ldrb ip, [r1, #9] - cmp r3, ip - movle r0, r1 - pople {r3, pc} -_0206D638: - ldrb ip, [r1, #1] - cmp ip, r0 - addlt r1, r1, #0x30 - blt _0206D604 + bl FUN_02085244 + lsr r3, r4, #0x18 + lsr r2, r4, #8 + lsl ip, r4, #8 + lsl lr, r4, #0x18 + ldr r4, _022CF47C @ =0x023269BC + ldr r1, _022CF484 @ =0x02326934 mov r0, #0 - pop {r3, pc} - arm_func_end FUN_0206d5c8 - - arm_func_start FUN_0206d650 -FUN_0206d650: @ 0x0206D650 - ldr r3, _0206D698 @ =0x04000208 - mov r2, #0 - ldrh ip, [r3] - ldr r1, _0206D69C @ =0x022B8330 - strh r2, [r3] - ldr r3, [r1, #0xddc] - cmp r3, #0 - beq _0206D684 -_0206D670: - ldrh r1, [r3] - cmp r1, r0 - ldrne r3, [r3, #0x5c] - cmpne r3, #0 - bne _0206D670 -_0206D684: - ldr r2, _0206D698 @ =0x04000208 - mov r0, r3 - ldrh r1, [r2] - strh ip, [r2] - bx lr - .align 2, 0 -_0206D698: .4byte 0x04000208 -_0206D69C: .4byte 0x022B8330 - arm_func_end FUN_0206d650 - - arm_func_start FUN_0206d6a0 -FUN_0206d6a0: @ 0x0206D6A0 - ldr r3, _0206D6E8 @ =0x04000208 - mov r2, #0 - ldrh ip, [r3] - ldr r1, _0206D6EC @ =0x022B7330 - strh r2, [r3] - ldr r3, [r1, #0x660] - cmp r3, #0 - beq _0206D6D4 -_0206D6C0: - ldrh r1, [r3, #4] - cmp r1, r0 - ldrne r3, [r3, #0x24] - cmpne r3, #0 - bne _0206D6C0 -_0206D6D4: - ldr r2, _0206D6E8 @ =0x04000208 - mov r0, r3 - ldrh r1, [r2] - strh ip, [r2] - bx lr - .align 2, 0 -_0206D6E8: .4byte 0x04000208 -_0206D6EC: .4byte 0x022B7330 - arm_func_end FUN_0206d6a0 - - arm_func_start FUN_0206d6f0 -FUN_0206d6f0: @ 0x0206D6F0 - push {r3, lr} - bl FileInit - mov r0, #0 - pop {r3, pc} - arm_func_end FUN_0206d6f0 - - arm_func_start FUN_0206d700 -FUN_0206d700: @ 0x0206D700 - push {r3, lr} - bl FUN_0207f6c4 - cmp r0, #0 - movne r0, #0 - popne {r3, pc} - mov r1, #0 - mov r2, r1 - mvn r0, #0x27 - bl FUN_0206c854 - mvn r0, #0x27 - pop {r3, pc} - arm_func_end FUN_0206d700 - - arm_func_start FUN_0206d72c -FUN_0206d72c: @ 0x0206D72C - push {r3, lr} - bl FUN_0207f70c - mov r0, #0 - pop {r3, pc} - arm_func_end FUN_0206d72c - - arm_func_start FUN_0206d73c -FUN_0206d73c: @ 0x0206D73C - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr r7, [sp, #0x28] - mov sb, r1 - mov r8, r2 - mov r1, r3 - mov r2, #0 - mov sl, r0 - bl FUN_0207f828 - str r8, [r7, #8] - mov r0, #0 - str r0, [r7, #0xc] - cmp r8, #0 - ble _0206D7F0 - ldr r5, _0206D7F8 @ =0x04000006 - ldr fp, _0206D7FC @ =0x022B8330 + str r4, [r1, #0x20] + str r0, [r1, #0x24] mov r4, #2 -_0206D77C: - ldr r6, [fp, #0xde0] - cmp r8, r6 - movlt r6, r8 -_0206D788: - ldrh r0, [r5] - cmp r0, #0xb4 - blt _0206D7A0 - mov r0, r4 - bl FUN_02079b14 - b _0206D788 -_0206D7A0: - mov r0, sl - mov r1, sb - mov r2, r6 - bl FUN_0207f808 - mov r0, sl - bl FUN_0207f748 - ldr r1, [r7, #0xc] - mov r0, r7 - add r1, r1, r6 - str r1, [r7, #0xc] - ldr r1, [r7, #4] - sub r8, r8, r6 - add r1, r1, r6 - str r1, [r7, #4] - add sb, sb, r6 - ldr r1, [fp, #0xde8] - ldr r2, [fp, #0xde4] - blx r2 - cmp r8, #0 - bgt _0206D77C -_0206D7F0: - mov r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0206D7F8: .4byte 0x04000006 -_0206D7FC: .4byte 0x022B8330 - arm_func_end FUN_0206d73c -_0206D800: - .byte 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0206d808 -FUN_0206d808: @ 0x0206D808 - push {r3, r4, r5, r6, r7, lr} - ldr r1, _0206D8F8 @ =0x736D646C - ldr r2, _0206D8FC @ =0x00000415 - mov r3, #4 - mov r7, r0 - bl FUN_0206cd1c - cmp r0, #0 - poplt {r3, r4, r5, r6, r7, pc} - add r6, r0, #0x10000 - mov r0, r6 - bl FUN_0206e654 - cmp r0, #0 - beq _0206D854 - mov r1, r6 - mvn r0, #0x48 - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0x48 - pop {r3, r4, r5, r6, r7, pc} -_0206D854: - mov r0, r7 - mov r1, #1 - bl FUN_0206e4e8 - movs r5, r0 - bne _0206D880 - mov r1, r7 - mvn r0, #0x42 - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0x42 - pop {r3, r4, r5, r6, r7, pc} -_0206D880: - ldrb r0, [r5, #6] - ldrb r1, [r5, #7] - ldr r2, _0206D900 @ =0x7165736D - bl FUN_0206e6a0 - movs r4, r0 - mvneq r0, #0x7f - popeq {r3, r4, r5, r6, r7, pc} - str r6, [r4, #0x28] - mov r1, r5 - str r7, [r4, #0x1c] - bl FUN_0206e554 - mov r1, #0 - ldr r0, _0206D904 @ =0x04000208 - strb r1, [r4, #0xa] - ldrh r3, [r0] - ldr r2, _0206D908 @ =0x022B7994 - strh r1, [r0] - ldr r0, [r2] - cmp r0, #0 - beq _0206D8E0 -_0206D8D0: - add r2, r0, #0xa4 - ldr r0, [r0, #0xa4] - cmp r0, #0 - bne _0206D8D0 -_0206D8E0: - ldr r1, _0206D904 @ =0x04000208 - str r4, [r2] - ldrh r0, [r1] - strh r3, [r1] - ldr r0, [r4, #0x28] - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0206D8F8: .4byte 0x736D646C -_0206D8FC: .4byte 0x00000415 -_0206D900: .4byte 0x7165736D -_0206D904: .4byte 0x04000208 -_0206D908: .4byte 0x022B7994 - arm_func_end FUN_0206d808 - - arm_func_start FUN_0206d90c -FUN_0206d90c: @ 0x0206D90C - push {r4, lr} - mov r4, r0 - bl FUN_0206e654 - cmp r0, #0 - bne _0206D938 - mov r1, r4 - mvn r0, #0x41 - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0x41 - pop {r4, pc} -_0206D938: - bl FUN_0206e7d8 - mov r0, r4 - pop {r4, pc} - arm_func_end FUN_0206d90c - - arm_func_start FUN_0206d944 -FUN_0206d944: @ 0x0206D944 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl FUN_0206e654 - cmp r0, #0 - bne _0206D978 - mov r1, r6 - mvn r0, #0x41 - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0x41 - pop {r4, r5, r6, pc} -_0206D978: - cmp r5, #0 - strne r5, [r0, #0x9c] - strne r4, [r0, #0xa0] - bne _0206D998 - ldr r2, _0206D9A0 @ =0x0206D800 - mov r1, #0 - str r2, [r0, #0x9c] - str r1, [r0, #0xa0] -_0206D998: - mov r0, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0206D9A0: .4byte 0x0206D800 - arm_func_end FUN_0206d944 - - arm_func_start FUN_0206d9a4 -FUN_0206d9a4: @ 0x0206D9A4 - push {r3, lr} - bl FUN_0206e654 - cmp r0, #0 - mvneq r0, #0x41 - ldrsbne r0, [r0, #4] - pop {r3, pc} - arm_func_end FUN_0206d9a4 - - arm_func_start ResumeBgm -ResumeBgm: @ 0x0206D9BC - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r4, r1 - mov r6, r2 - bl FUN_0206e654 - movs r5, r0 - bne _0206D9F0 - mov r1, r7 - mvn r0, #0x41 - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0x41 - pop {r3, r4, r5, r6, r7, pc} -_0206D9F0: - ldrsb r0, [r5, #1] - cmp r0, #1 - bne _0206DA14 - mov r1, r7 - mvn r0, #0x3d - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0x3d - pop {r3, r4, r5, r6, r7, pc} -_0206DA14: - ldrsb r0, [r5] - cmp r0, #0 - moveq r6, #1 - cmp r6, #1 - bne _0206DA50 - ldrsb r0, [r5, #4] - cmp r0, #1 - bne _0206DA40 - mov r0, r7 - mov r1, #0 - bl FUN_0206da9c -_0206DA40: - mov r0, r5 - bl FUN_0206e26c - cmp r0, #0 - poplt {r3, r4, r5, r6, r7, pc} -_0206DA50: - mov r0, #0 - str r0, [r5, #0x68] - strh r0, [r5, #0x74] - strb r6, [r5, #2] - bl FUN_0206c688 - cmp r0, #0 - ldrsbne r0, [r5, #9] - mov r1, #0 - mov r2, r1 - cmpne r0, #0 - movne ip, #1 - moveq ip, #0 - mov r0, r5 - mov r3, r4 - strb ip, [r5, #8] - bl FUN_0206db7c - cmp r0, #0 - movge r0, #0 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end ResumeBgm - - arm_func_start FUN_0206da9c -FUN_0206da9c: @ 0x0206DA9C - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - bl FUN_0206e654 - cmp r0, #0 - mov r2, #0 - bne _0206DACC - mov r1, r5 - mvn r0, #0x41 - bl FUN_0206c854 - mvn r0, #0x41 - pop {r3, r4, r5, pc} -_0206DACC: - mov r1, r4 - bl FUN_0206e3c4 - mov r0, #0 - pop {r3, r4, r5, pc} - arm_func_end FUN_0206da9c - - arm_func_start FUN_0206dadc -FUN_0206dadc: @ 0x0206DADC - push {r3, r4, r5, r6, r7, lr} - ldr r3, _0206DB34 @ =0x04000208 - mov r2, #0 - ldrh r4, [r3] - ldr r1, _0206DB38 @ =0x022B7330 - mov r7, r0 - strh r2, [r3] - ldr r6, [r1, #0x664] - cmp r6, #0 - beq _0206DB24 - mov r5, r2 -_0206DB08: - mov r0, r6 - mov r1, r7 - mov r2, r5 - bl FUN_0206e3c4 - ldr r6, [r6, #0xa4] - cmp r6, #0 - bne _0206DB08 -_0206DB24: - ldr r1, _0206DB34 @ =0x04000208 - ldrh r0, [r1] - strh r4, [r1] - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0206DB34: .4byte 0x04000208 -_0206DB38: .4byte 0x022B7330 - arm_func_end FUN_0206dadc - - arm_func_start FUN_0206db3c -FUN_0206db3c: @ 0x0206DB3C - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - bl FUN_0206e654 - cmp r0, #0 - bne _0206DB6C - mov r1, r5 - mvn r0, #0x41 - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0x41 - pop {r3, r4, r5, pc} -_0206DB6C: - mov r1, r4 - bl FUN_0206dd70 - mov r0, #0 - pop {r3, r4, r5, pc} - arm_func_end FUN_0206db3c - - arm_func_start FUN_0206db7c -FUN_0206db7c: @ 0x0206DB7C - push {r3, r4, r5, lr} - mov r4, r0 - strh r1, [r4, #0x2c] - mov r5, r3 - strb r2, [r4, #0x14] - ldrsh r2, [r5, #2] - cmp r2, #0 - mvnlt r0, #0 - blt _0206DBB4 - ldr r1, _0206DC08 @ =0x022B7330 - mov r0, #0x3e8 - ldrsh r1, [r1, #0x28] - smulbb r0, r2, r0 - bl DivideInt -_0206DBB4: - strh r0, [r4, #0x1a] - mov r2, #0 - strb r2, [r4, #2] - mov r0, r4 - mov r1, r5 - strb r2, [r4, #7] - bl FUN_0206dd70 - ldrsb r0, [r4, #8] - cmp r0, #0 - bne _0206DBF8 - ldrsb r0, [r4, #2] - cmp r0, #0 - bne _0206DBF0 - ldr r0, [r4, #0x24] - bl FUN_02073504 -_0206DBF0: - mov r0, #1 - strb r0, [r4, #5] -_0206DBF8: - mov r0, #1 - strb r0, [r4, #4] - mov r0, #0 - pop {r3, r4, r5, pc} - .align 2, 0 -_0206DC08: .4byte 0x022B7330 - arm_func_end FUN_0206db7c -_0206DC0C: - .byte 0xF0, 0x41, 0x2D, 0xE9 - .byte 0x00, 0x40, 0xB0, 0xE1, 0x14, 0x00, 0x00, 0x0A, 0x54, 0x70, 0x9F, 0xE5, 0x00, 0x80, 0xA0, 0xE3 - .byte 0x01, 0x50, 0xA0, 0xE3, 0xD4, 0x00, 0xD4, 0xE1, 0x01, 0x00, 0x50, 0xE3, 0xD6, 0x00, 0xD4, 0x01 - .byte 0x00, 0x00, 0x50, 0x03, 0xD9, 0x00, 0xD4, 0x01, 0x01, 0x00, 0x50, 0x03, 0x07, 0x00, 0x00, 0x1A - .byte 0x05, 0x80, 0xC4, 0xE5, 0xB0, 0x60, 0xD7, 0xE1, 0xB0, 0x80, 0xC7, 0xE1, 0x24, 0x00, 0x94, 0xE5 - .byte 0x0A, 0x16, 0x00, 0xEB, 0xB0, 0x00, 0xD7, 0xE1, 0xB0, 0x60, 0xC7, 0xE1, 0x08, 0x50, 0xC4, 0xE5 - .byte 0xA4, 0x40, 0x94, 0xE5, 0x00, 0x00, 0x54, 0xE3, 0xED, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0xA0, 0xE3 - .byte 0xF0, 0x81, 0xBD, 0xE8, 0x08, 0x02, 0x00, 0x04, 0xF8, 0x4F, 0x2D, 0xE9, 0x00, 0xA0, 0xB0, 0xE1 - .byte 0x01, 0x90, 0xA0, 0xE1, 0x02, 0x80, 0xA0, 0xE1, 0x35, 0x00, 0x00, 0x0A, 0xFA, 0x0F, 0xA0, 0xE3 - .byte 0x99, 0x00, 0x07, 0xE0, 0x01, 0xB0, 0xA0, 0xE3, 0xD8, 0x00, 0xDA, 0xE1, 0x01, 0x00, 0x50, 0xE3 - .byte 0x2C, 0x00, 0x00, 0x1A, 0x01, 0x00, 0x58, 0xE3, 0x06, 0x00, 0x00, 0x1A, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x68, 0x00, 0x8A, 0xE5, 0xB4, 0x07, 0xCA, 0xE1, 0x06, 0x00, 0xCA, 0xE5, 0x24, 0x00, 0x9A, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0xF8, 0x15, 0x00, 0xEB, 0x00, 0x00, 0x59, 0xE3, 0xD8, 0x49, 0xDA, 0xE1 - .byte 0x00, 0x60, 0xA0, 0x03, 0x06, 0x00, 0x00, 0x0A, 0x8C, 0x00, 0x9F, 0xE5, 0xF8, 0x12, 0xD0, 0xE1 - .byte 0x07, 0x00, 0xA0, 0xE1, 0xF1, 0x88, 0x00, 0xEB, 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x68, 0xB0, 0xE1 - .byte 0x01, 0x60, 0xA0, 0x03, 0x04, 0x18, 0xA0, 0xE1, 0x70, 0x10, 0x8A, 0xE5, 0x00, 0x00, 0x56, 0xE3 - .byte 0x06, 0x50, 0xA0, 0xE1, 0x68, 0x10, 0x8A, 0x05, 0x06, 0x00, 0x00, 0x0A, 0x68, 0x00, 0x9A, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE0, 0x00, 0x50, 0xA0, 0x03, 0x02, 0x00, 0x00, 0x0A, 0x06, 0x10, 0xA0, 0xE1 - .byte 0x5F, 0x88, 0x00, 0xEB, 0x6C, 0x00, 0x8A, 0xE5, 0xB4, 0x57, 0xCA, 0xE1, 0x00, 0x00, 0x56, 0xE3 - .byte 0x0C, 0x00, 0xDA, 0x15, 0x04, 0x00, 0x80, 0x13, 0x0C, 0x00, 0xCA, 0x15, 0x02, 0x00, 0x00, 0x1A - .byte 0x24, 0x00, 0x9A, 0xE5, 0x04, 0x10, 0xA0, 0xE1, 0x66, 0x16, 0x00, 0xEB, 0x05, 0xB0, 0xCA, 0xE5 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x08, 0x00, 0xCA, 0xE5, 0xA4, 0xA0, 0x9A, 0xE5, 0x00, 0x00, 0x5A, 0xE3 - .byte 0xCC, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0xA0, 0xE3, 0xF8, 0x8F, 0xBD, 0xE8, 0x30, 0x73, 0x2B, 0x02 - - arm_func_start FUN_0206dd70 -FUN_0206dd70: @ 0x0206DD70 - push {r4, r5, r6, r7, r8, lr} - mov r6, r1 - ldrb r1, [r6] - mov r7, r0 - tst r1, #1 - beq _0206DE38 - ldrsh r4, [r6, #4] - ldrh r1, [r6, #6] - cmp r4, #0 - moveq r4, #0x100 - cmp r1, #0 - moveq r5, #0 - beq _0206DDC4 - mov r0, #0x3e8 - mul r0, r1, r0 - ldr r1, _0206E05C @ =0x022B7330 - ldrsh r1, [r1, #0x28] - bl DivideUInt - lsl r0, r0, #0x10 - lsrs r5, r0, #0x10 - moveq r5, #1 -_0206DDC4: - lsl r1, r4, #0x10 - str r1, [r7, #0x50] - cmp r5, #0 - mov r4, r5 - streq r1, [r7, #0x48] - beq _0206DDF8 - ldr r0, [r7, #0x48] - subs r0, r1, r0 - moveq r4, #0 - beq _0206DDF8 - mov r1, r5 - bl DivideInt - str r0, [r7, #0x4c] -_0206DDF8: - strh r4, [r7, #0x54] - cmp r5, #0 - bne _0206DE2C - ldr r1, [r7, #0x48] - ldrb r0, [r7, #0x17] - asr r1, r1, #0x10 - smulbb r0, r1, r0 - lsrs r1, r0, #8 - ldr r0, _0206E060 @ =0x03938700 - moveq r1, #1 - bl DivideUInt - str r0, [r7, #0x44] - b _0206DE38 -_0206DE2C: - ldrb r0, [r7, #0xc] - orr r0, r0, #1 - strb r0, [r7, #0xc] -_0206DE38: - ldrb r0, [r6] - tst r0, #2 - beq _0206DEDC - ldrh r1, [r6, #0xa] - ldrsh r4, [r6, #8] - cmp r1, #0 - moveq r5, #0 - beq _0206DE78 - mov r0, #0x3e8 - mul r0, r1, r0 - ldr r1, _0206E05C @ =0x022B7330 - ldrsh r1, [r1, #0x28] - bl DivideUInt - lsl r0, r0, #0x10 - lsrs r5, r0, #0x10 - moveq r5, #1 -_0206DE78: - lsl r1, r4, #0x10 - str r1, [r7, #0x60] - cmp r5, #0 - mov r4, r5 - streq r1, [r7, #0x58] - beq _0206DEAC - ldr r0, [r7, #0x58] - subs r0, r1, r0 - moveq r4, #0 - beq _0206DEAC - mov r1, r5 - bl DivideInt - str r0, [r7, #0x5c] -_0206DEAC: - strh r4, [r7, #0x64] - cmp r5, #0 - ldrbne r0, [r7, #0xc] - orrne r0, r0, #2 - strbne r0, [r7, #0xc] - bne _0206DEDC - ldr r1, [r7, #0x58] - ldr r0, [r7, #0x24] - asr r1, r1, #0x10 - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - bl FUN_02073654 -_0206DEDC: - ldrb r0, [r6] - tst r0, #4 - beq _0206DF98 - ldrsh r4, [r6, #0xc] - ldrsh r1, [r6, #0xe] - strb r4, [r7, #0x98] - ldrsb r0, [r7, #8] - cmp r0, #1 - moveq r4, #0 - moveq r1, r4 - lsl r0, r1, #0x10 - lsrs r1, r0, #0x10 - moveq r5, #0 - beq _0206DF34 - mov r0, #0x3e8 - mul r0, r1, r0 - ldr r1, _0206E05C @ =0x022B7330 - ldrsh r1, [r1, #0x28] - bl DivideUInt - lsl r0, r0, #0x10 - lsrs r5, r0, #0x10 - moveq r5, #1 -_0206DF34: - lsl r0, r4, #0x18 - asr r0, r0, #0x18 - lsl r1, r0, #0x10 - str r1, [r7, #0x70] - cmp r5, #0 - mov r8, r5 - streq r1, [r7, #0x68] - beq _0206DF70 - ldr r0, [r7, #0x68] - subs r0, r1, r0 - moveq r8, #0 - beq _0206DF70 - mov r1, r5 - bl DivideInt - str r0, [r7, #0x6c] -_0206DF70: - strh r8, [r7, #0x74] - cmp r5, #0 - ldrbne r0, [r7, #0xc] - orrne r0, r0, #4 - strbne r0, [r7, #0xc] - bne _0206DF98 - lsl r1, r4, #0x18 - ldr r0, [r7, #0x24] - asr r1, r1, #0x18 - bl FUN_020736e8 -_0206DF98: - ldrb r0, [r6] - tst r0, #8 - beq _0206E048 - ldrh r0, [r6, #0x10] - ldrh r1, [r6, #0x12] - lsl r0, r0, #0x18 - cmp r1, #0 - asr r4, r0, #0x18 - moveq r5, #0 - beq _0206DFE0 - mov r0, #0x3e8 - mul r0, r1, r0 - ldr r1, _0206E05C @ =0x022B7330 - ldrsh r1, [r1, #0x28] - bl DivideUInt - lsl r0, r0, #0x10 - lsrs r5, r0, #0x10 - moveq r5, #1 -_0206DFE0: - lsl r1, r4, #0x10 - str r1, [r7, #0x80] - cmp r5, #0 - mov r4, r5 - streq r1, [r7, #0x78] - beq _0206E014 - ldr r0, [r7, #0x78] - subs r0, r1, r0 - moveq r4, #0 - beq _0206E014 - mov r1, r5 - bl DivideInt - str r0, [r7, #0x7c] -_0206E014: - strh r4, [r7, #0x84] - cmp r5, #0 - ldrbne r0, [r7, #0xc] - orrne r0, r0, #0x10 - strbne r0, [r7, #0xc] - bne _0206E048 - ldr r1, [r7, #0x78] - ldr r0, [r7, #0x24] - asr r1, r1, #0x10 - lsl r1, r1, #0x18 - asr r1, r1, #0x18 - and r1, r1, #0xff - bl FUN_020737b8 -_0206E048: - ldrsh r0, [r7, #0x1a] - cmp r0, #0 - movlt r0, #0 - strhlt r0, [r7, #0x1a] - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0206E05C: .4byte 0x022B7330 -_0206E060: .4byte 0x03938700 - arm_func_end FUN_0206dd70 - - arm_func_start FUN_0206e064 -FUN_0206e064: @ 0x0206E064 - push {r4, r5, r6, r7, r8, lr} - mov r8, r0 - mov r7, r1 - mov r6, r2 - bl FUN_0206e654 - movs r4, r0 - bne _0206E098 - mov r1, r8 - mvn r0, #0x41 - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0x41 - pop {r4, r5, r6, r7, r8, pc} -_0206E098: - cmp r6, #0 - bne _0206E0B8 - mov r1, r8 - mvn r0, #0x17 - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0x17 - pop {r4, r5, r6, r7, r8, pc} -_0206E0B8: - cmp r7, #0x12 - mov r5, #0 - addls pc, pc, r7, lsl #2 - b _0206E1F8 -_0206E0C8: @ jump table - b _0206E1F8 @ case 0 - b _0206E114 @ case 1 - b _0206E174 @ case 2 - b _0206E180 @ case 3 - b _0206E18C @ case 4 - b _0206E1F8 @ case 5 - b _0206E1F8 @ case 6 - b _0206E1F8 @ case 7 - b _0206E1C4 @ case 8 - b _0206E1A4 @ case 9 - b _0206E198 @ case 10 - b _0206E1D0 @ case 11 - b _0206E1EC @ case 12 - b _0206E1F8 @ case 13 - b _0206E1F8 @ case 14 - b _0206E1F8 @ case 15 - b _0206E1F8 @ case 16 - b _0206E1F8 @ case 17 - b _0206E1DC @ case 18 -_0206E114: - ldrsb r2, [r4, #4] - mov r0, #0x3e8 - ldr r1, _0206E214 @ =0x022B7330 - strb r2, [r6] - ldrsb r2, [r4, #6] - strb r2, [r6, #1] - ldrsb r2, [r4, #1] - strb r2, [r6, #2] - strb r5, [r6, #3] - ldr r2, [r4, #0x34] - ldr r1, [r1, #0x30] - mul r0, r2, r0 - bl DivideUInt - str r0, [r6, #4] - ldr r1, [r4, #0x38] - mov r0, r4 - str r1, [r6, #8] - bl FUN_0206e218 - strh r0, [r6, #0xc] - ldrb r0, [r4, #0x17] - strb r0, [r6, #0xf] - ldrb r0, [r4, #0x16] - strb r0, [r6, #0xe] - b _0206E20C -_0206E174: - ldrsb r0, [r4, #4] - str r0, [r6] - b _0206E20C -_0206E180: - ldrb r0, [r4, #0x17] - str r0, [r6] - b _0206E20C -_0206E18C: - ldrsb r0, [r4, #1] - str r0, [r6] - b _0206E20C -_0206E198: - bl FUN_0206e218 - str r0, [r6] - b _0206E20C -_0206E1A4: - ldr r1, [r4, #0x34] - mov r0, #0x3e8 - mul r0, r1, r0 - ldr r1, _0206E214 @ =0x022B7330 - ldr r1, [r1, #0x30] - bl DivideUInt - str r0, [r6] - b _0206E20C -_0206E1C4: - ldr r0, [r4, #0x38] - str r0, [r6] - b _0206E20C -_0206E1D0: - ldrb r0, [r4, #0x16] - str r0, [r6] - b _0206E20C -_0206E1DC: - ldr r0, [r4, #0x68] - asr r0, r0, #0x10 - str r0, [r6] - b _0206E20C -_0206E1EC: - ldrb r0, [r4, #0x17] - str r0, [r6] - b _0206E20C -_0206E1F8: - mov r1, r8 - mvn r0, #0x17 - mov r2, #0 - bl FUN_0206c854 - mvn r5, #0x17 -_0206E20C: - mov r0, r5 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0206E214: .4byte 0x022B7330 - arm_func_end FUN_0206e064 - - arm_func_start FUN_0206e218 -FUN_0206e218: @ 0x0206E218 - ldrb ip, [r0, #0xf] - add r2, r0, #0xa8 - ldr r0, _0206E268 @ =0x0000FFFF - cmp ip, #0 - mov r3, #0 - ble _0206E258 -_0206E230: - ldrsb r1, [r2, #2] - cmp r1, #1 - bne _0206E248 - ldrh r1, [r2, #0xa] - cmp r0, r1 - movhi r0, r1 -_0206E248: - add r3, r3, #1 - cmp r3, ip - add r2, r2, #0x5c - blt _0206E230 -_0206E258: - ldr r1, _0206E268 @ =0x0000FFFF - cmp r0, r1 - moveq r0, #0 - bx lr - .align 2, 0 -_0206E268: .4byte 0x0000FFFF - arm_func_end FUN_0206e218 - - arm_func_start FUN_0206e26c -FUN_0206e26c: @ 0x0206E26C - push {r3, r4, r5, r6, r7, lr} - mov r4, r0 - ldr r0, [r4, #0x24] - ldr r2, [r4, #0x28] - mov r1, #0 - bl FUN_02073458 - ldrb r1, [r4, #0x13] - ldr r0, [r4, #0x24] - mov r2, #0 - bl FUN_0207356c - mov lr, #0 - str lr, [r4, #4] - strb lr, [r4, #3] - mov r0, #1 - strb r0, [r4, #9] - ldr r0, _0206E3BC @ =0x022B7330 - strb lr, [r4, #0xd] - ldr r2, [r0, #0x2c] - mov r1, #0x78 - str r2, [r4, #0x30] - str lr, [r4, #0x34] - str lr, [r4, #0x38] - strb r1, [r4, #0x17] - str lr, [r4, #0x3c] - ldrb r2, [r4, #0x15] - ldrsh r1, [r0, #0x28] - ldr r0, _0206E3C0 @ =0x0007A120 - lsl r2, r2, #3 - mul r1, r2, r1 - str r1, [r4, #0x40] - str r0, [r4, #0x44] - strb lr, [r4, #0xc] - mov r0, #0x1000000 - str r0, [r4, #0x48] - strh lr, [r4, #0x54] - str lr, [r4, #0x58] - strh lr, [r4, #0x64] - mov r0, #0x7f0000 - str r0, [r4, #0x68] - strh lr, [r4, #0x74] - mov r0, #0x400000 - str r0, [r4, #0x78] - strh lr, [r4, #0x84] - mov r0, #0x7f - strb r0, [r4, #0x98] - ldrb r0, [r4, #0xf] - add ip, r4, #0xa8 - cmp r0, #0 - ble _0206E3AC - mov r3, #1 - mov r2, lr - mov r1, #0x7f - mov r0, #4 - mov r5, #0xc8 -_0206E344: - ldr r6, [ip, #0x18] - cmp r6, #0 - beq _0206E38C - strb r3, [ip, #2] - strh r2, [ip, #0xa] - ldr r6, [ip, #0x18] - str r6, [ip, #0x1c] - str r2, [ip, #0xc] - str r2, [ip, #0x14] - strb r1, [ip, #5] - strb r0, [ip, #4] - strb r2, [ip, #6] - str r2, [ip, #0x20] - ldr r7, [r4, #0x24] - ldrb r6, [ip, #3] - add r7, r7, #0x10 - mla r7, r6, r5, r7 - str r7, [ip, #0x54] -_0206E38C: - ldrb r6, [r4, #0xd] - add lr, lr, #1 - add ip, ip, #0x5c - add r6, r6, #1 - strb r6, [r4, #0xd] - ldrb r6, [r4, #0xf] - cmp lr, r6 - blt _0206E344 -_0206E3AC: - mov r0, #1 - strb r0, [r4] - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0206E3BC: .4byte 0x022B7330 -_0206E3C0: .4byte 0x0007A120 - arm_func_end FUN_0206e26c - - arm_func_start FUN_0206e3c4 -FUN_0206e3c4: @ 0x0206E3C4 - push {r4, r5, r6, lr} - mov r5, r0 - ldrsb r0, [r5, #1] - mov r4, r2 - cmp r0, #1 - moveq r0, #0 - popeq {r4, r5, r6, pc} - ldrsb r0, [r5, #4] - cmp r0, #0 - moveq r0, #0 - popeq {r4, r5, r6, pc} - cmp r1, #0 - beq _0206E49C - ldr r0, [r5, #0x68] - asrs r0, r0, #0x10 - beq _0206E49C - mov r0, #1 - strb r0, [r5, #7] - mov r6, #0 - strb r6, [r5, #0x98] - cmp r1, #0 - beq _0206E43C - mov r0, #0x3e8 - mul r0, r1, r0 - ldr r1, _0206E4E0 @ =0x022B7330 - ldrsh r1, [r1, #0x28] - bl DivideUInt - lsl r0, r0, #0x10 - lsrs r6, r0, #0x10 - moveq r6, #1 -_0206E43C: - mov r1, #0 - str r1, [r5, #0x70] - cmp r6, #0 - mov r4, r6 - streq r1, [r5, #0x68] - beq _0206E470 - ldr r0, [r5, #0x68] - rsbs r0, r0, #0 - moveq r4, r1 - beq _0206E470 - mov r1, r6 - bl DivideInt - str r0, [r5, #0x6c] -_0206E470: - strh r4, [r5, #0x74] - cmp r6, #0 - bne _0206E48C - ldr r0, [r5, #0x24] - mov r1, #0 - bl FUN_020736e8 - b _0206E4D8 -_0206E48C: - ldrb r0, [r5, #0xc] - orr r0, r0, #4 - strb r0, [r5, #0xc] - b _0206E4D8 -_0206E49C: - mov r1, #0 - str r1, [r5, #4] - ldr r0, _0206E4E4 @ =0x04000208 - strb r1, [r5, #8] - ldrh r6, [r0] - strh r1, [r0] - ldr r0, [r5, #0x24] - bl FUN_02073480 - cmp r4, #1 - bne _0206E4CC - ldr r0, [r5, #0x24] - bl FUN_020733bc -_0206E4CC: - ldr r1, _0206E4E4 @ =0x04000208 - ldrh r0, [r1] - strh r6, [r1] -_0206E4D8: - mov r0, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0206E4E0: .4byte 0x022B7330 -_0206E4E4: .4byte 0x04000208 - arm_func_end FUN_0206e3c4 - - arm_func_start FUN_0206e4e8 -FUN_0206e4e8: @ 0x0206E4E8 - push {r3, r4, r5, r6, r7, lr} - ldr r6, _0206E54C @ =0x736F6E67 - ldr r7, _0206E550 @ =0x656F6420 - mov r5, r1 - add r4, r0, #0x40 -_0206E4FC: - ldr r0, [r4] - bl FUN_0206c8c4 - cmp r0, r7 - moveq r0, #0 - popeq {r3, r4, r5, r6, r7, pc} - cmp r0, r6 - ldrsheq r1, [r4, #0x10] - addeq r0, r4, #0x10 - cmpeq r1, r5 - popeq {r3, r4, r5, r6, r7, pc} - ldrb r1, [r4, #8] - ldr r0, [r4, #0xc] - sub r2, r1, #1 - add r0, r0, #0x10 - mvn r1, r2 - add r0, r0, r2 - and r0, r1, r0 - add r4, r4, r0 - b _0206E4FC -_0206E548: - .byte 0xF8, 0x80, 0xBD, 0xE8 -_0206E54C: .4byte 0x736F6E67 -_0206E550: .4byte 0x656F6420 - arm_func_end FUN_0206e4e8 - - arm_func_start FUN_0206e554 -FUN_0206e554: @ 0x0206E554 - push {r4, r5, r6, r7, r8, sb, sl, lr} - mov r7, r0 - mov r6, r1 - ldrb r1, [r6, #6] - ldrb r0, [r7, #0xe] - cmp r1, r0 - mvnhi r0, #0 - pophi {r4, r5, r6, r7, r8, sb, sl, pc} - ldrh r0, [r6, #2] - add r4, r6, #0x30 - add r5, r7, #0xa8 - asr r0, r0, #3 - strb r0, [r7, #0x15] - ldrb r0, [r6, #4] - strb r0, [r7, #0x11] - ldrb r0, [r6, #6] - strb r0, [r7, #0xf] - ldrb r0, [r6, #7] - strb r0, [r7, #0x10] - ldrb r0, [r6, #0x1b] - strb r0, [r7, #0x12] - ldrb r0, [r6, #0x19] - strb r0, [r7, #0x13] - ldrb r0, [r6, #0x1a] - strb r0, [r7, #0x14] - ldrb r0, [r6, #0x18] - tst r0, #0x80 - movne r0, #1 - moveq r0, #0 - strb r0, [r7, #0xb] - ldr r0, [r6, #0x30] - bl FUN_0206c8c4 - ldr sb, _0206E648 @ =0x74726B20 - ldr sl, _0206E64C @ =0x626E6B6C - ldr r8, _0206E650 @ =0x656F6320 - b _0206E634 -_0206E5E4: - cmp r0, sl - beq _0206E610 - cmp r0, sb - bne _0206E610 - add r0, r4, #0x14 - str r0, [r5, #0x18] - ldrb r0, [r4, #0x10] - strh r0, [r5] - ldrb r0, [r4, #0x11] - strb r0, [r5, #3] - add r5, r5, #0x5c -_0206E610: - ldrb r1, [r4, #8] - ldr r0, [r4, #0xc] - sub r2, r1, #1 - add r0, r0, #0x10 - mvn r1, r2 - add r0, r0, r2 - and r0, r1, r0 - ldr r0, [r4, r0]! - bl FUN_0206c8c4 -_0206E634: - cmp r0, r8 - bne _0206E5E4 - str r6, [r7, #0x20] - mov r0, #0 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_0206E648: .4byte 0x74726B20 -_0206E64C: .4byte 0x626E6B6C -_0206E650: .4byte 0x656F6320 - arm_func_end FUN_0206e554 - - arm_func_start FUN_0206e654 -FUN_0206e654: @ 0x0206E654 - ldr r3, _0206E698 @ =0x04000208 - ldr r1, _0206E69C @ =0x022B7330 - ldrh ip, [r3] - mov r2, #0 - strh r2, [r3] - ldr r3, [r1, #0x664] - b _0206E674 -_0206E670: - ldr r3, [r3, #0xa4] -_0206E674: - cmp r3, #0 - ldrne r1, [r3, #0x28] - cmpne r1, r0 - bne _0206E670 - ldr r2, _0206E698 @ =0x04000208 - mov r0, r3 - ldrh r1, [r2] - strh ip, [r2] - bx lr - .align 2, 0 -_0206E698: .4byte 0x04000208 -_0206E69C: .4byte 0x022B7330 - arm_func_end FUN_0206e654 - - arm_func_start FUN_0206e6a0 -FUN_0206e6a0: @ 0x0206E6A0 - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r0, #0x5c - mul r0, r7, r0 - mov r6, r1 - add r0, r0, #0xa8 - mov r1, #0x10 - mov r5, r2 - bl FUN_0206c9bc - movs r4, r0 - bne _0206E6E4 - mov r1, #0 - mov r2, r1 - mvn r0, #0x83 - bl FUN_0206c854 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_0206E6E4: - mov r3, #0 - str r3, [r4] - str r3, [r4, #4] - str r3, [r4, #8] - strb r3, [r4, #0x16] - strb r3, [r4, #0xd] - str r3, [r4, #0x30] - str r3, [r4, #0x28] - strh r3, [r4, #0x2c] - mov r0, #6 - strb r0, [r4, #0x15] - strb r3, [r4, #0xd] - and r0, r7, #0xff - strb r0, [r4, #0xe] - strb r0, [r4, #0xf] - strb r6, [r4, #0x10] - strb r3, [r4, #0x11] - strb r3, [r4, #0x12] - strb r3, [r4, #0x13] - str r3, [r4, #0x1c] - ldr r1, _0206E7C8 @ =0x76656400 - and r2, r5, #0xff - mov r0, r6 - orr r1, r2, r1 - str r3, [r4, #0x20] - bl FUN_02073280 - str r0, [r4, #0x24] - cmp r0, #0 - bne _0206E778 - mov r0, r4 - bl FUN_0206cc14 - mov r1, #0 - mov r2, r1 - mvn r0, #0x85 - bl FUN_0206c854 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_0206E778: - mov r0, #0x78 - strb r0, [r4, #0x17] - mov r3, #0 - str r3, [r4, #0x3c] - ldr r0, _0206E7CC @ =0x022B7330 - ldrb r2, [r4, #0x15] - ldrsh r0, [r0, #0x28] - ldr r1, _0206E7D0 @ =0x0007A120 - lsl r2, r2, #3 - mul r0, r2, r0 - str r0, [r4, #0x40] - ldr r0, _0206E7D4 @ =0x0206D800 - str r1, [r4, #0x44] - str r0, [r4, #0x9c] - str r3, [r4, #0xa0] - mov r0, r4 - str r3, [r4, #0xa4] - bl FUN_0206e85c - mov r0, r4 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0206E7C8: .4byte 0x76656400 -_0206E7CC: .4byte 0x022B7330 -_0206E7D0: .4byte 0x0007A120 -_0206E7D4: .4byte 0x0206D800 - arm_func_end FUN_0206e6a0 - - arm_func_start FUN_0206e7d8 -FUN_0206e7d8: @ 0x0206E7D8 - push {r4, lr} - mov r4, r0 - ldrsb r1, [r4, #4] - cmp r1, #1 - bne _0206E7F8 - mov r1, #0 - mov r2, r1 - bl FUN_0206e3c4 -_0206E7F8: - ldr r1, _0206E854 @ =0x04000208 - mov r0, #0 - ldrh r3, [r1] - ldr r2, _0206E858 @ =0x022B7994 - strh r0, [r1] - b _0206E814 -_0206E810: - add r2, r0, #0xa4 -_0206E814: - ldr r0, [r2] - cmp r0, #0 - cmpne r0, r4 - bne _0206E810 - cmp r0, #0 - ldrne r0, [r4, #0xa4] - ldr r1, _0206E854 @ =0x04000208 - strne r0, [r2] - ldrh r0, [r1] - strh r3, [r1] - ldr r0, [r4, #0x24] - bl FUN_02073350 - mov r0, r4 - bl FUN_0206cc14 - mov r0, #0 - pop {r4, pc} - .align 2, 0 -_0206E854: .4byte 0x04000208 -_0206E858: .4byte 0x022B7994 - arm_func_end FUN_0206e7d8 - - arm_func_start FUN_0206e85c -FUN_0206e85c: @ 0x0206E85C - ldrb r1, [r0, #0xf] - add r3, r0, #0xa8 - mov ip, #0 - cmp r1, #0 - bxle lr - mov r2, ip -_0206E874: - strb r2, [r3, #2] - strh ip, [r3] - strb ip, [r3, #3] - strh r2, [r3, #0xa] - str r2, [r3, #0x18] - str r2, [r3, #0x1c] - str r2, [r3, #0x20] - str r2, [r3, #0x54] - ldrb r1, [r0, #0xf] - add ip, ip, #1 - add r3, r3, #0x5c - cmp ip, r1 - blt _0206E874 - bx lr - arm_func_end FUN_0206e85c - - arm_func_start FUN_0206e8ac -FUN_0206e8ac: @ 0x0206E8AC - push {r3, lr} - ldr r2, _0206E914 @ =0x022B7330 - mov r1, #0 - mvn r0, #0 -_0206E8BC: - add r1, r1, #1 - str r0, [r2, #0x54] - cmp r1, #0x80 - add r2, r2, #0xc - blt _0206E8BC - ldr r2, _0206E914 @ =0x022B7330 - ldr ip, _0206E918 @ =0x022B7380 - mov lr, #0 - mov r0, #0xc -_0206E8E0: - add lr, lr, #1 - mul r3, lr, r0 - add r1, ip, r3 - str r1, [r2, #0x58] - cmp lr, #0x7f - add r2, r2, #0xc - blt _0206E8E0 - ldr r1, _0206E91C @ =0x022B7388 - mov r2, #0 - ldr r0, _0206E914 @ =0x022B7330 - str r2, [r1, r3] - str ip, [r0, #0x650] - pop {r3, pc} - .align 2, 0 -_0206E914: .4byte 0x022B7330 -_0206E918: .4byte 0x022B7380 -_0206E91C: .4byte 0x022B7388 - arm_func_end FUN_0206e8ac - - arm_func_start FUN_0206e920 -FUN_0206e920: @ 0x0206E920 - push {r4, r5, r6, r7, r8, sb, sl, lr} - ldr r2, _0206EA08 @ =0x022B7330 - mov sb, r0 - ldrsb r0, [r2] - mov r8, r1 - mov r1, #0 - cmp r0, #0 - bne _0206E954 - mov r2, r1 - mvn r0, #0xc0 - bl FUN_0206c854 - mvn r0, #0xc0 - pop {r4, r5, r6, r7, r8, sb, sl, pc} -_0206E954: - ldr r4, [r2, #0x668] - ldr r0, _0206EA0C @ =0x04000208 - str r1, [r2, #0x668] - ldrh r5, [r0] - cmp r4, #0 - strh r1, [r0] - beq _0206E984 -_0206E970: - mov r0, r4 - ldr r4, [r4, #0xa4] - bl FUN_0206e7d8 - cmp r4, #0 - bne _0206E970 -_0206E984: - ldr r1, _0206EA0C @ =0x04000208 - mov r6, #0 - ldrh r0, [r1] - ldr r0, _0206EA08 @ =0x022B7330 - mov r4, r6 - strh r5, [r1] - strb sb, [r0, #0x3a] - strb r8, [r0, #0x3b] - ldrh r7, [r1] - cmp sb, #0 - ldr r5, _0206EA10 @ =0x022B7998 - strh r6, [r1] - ble _0206E9F4 - lsl r0, r8, #0x10 - ldr r8, _0206EA14 @ =0x71657365 - lsr sl, r0, #0x10 -_0206E9C4: - mov r0, sl - mov r1, sl - mov r2, r8 - bl FUN_0206e6a0 - cmp r0, #0 - mvneq r6, #0x83 - beq _0206E9F4 - add r4, r4, #1 - str r0, [r5] - cmp r4, sb - add r5, r0, #0xa4 - blt _0206E9C4 -_0206E9F4: - ldr r2, _0206EA0C @ =0x04000208 - mov r0, r6 - ldrh r1, [r2] - strh r7, [r2] - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_0206EA08: .4byte 0x022B7330 -_0206EA0C: .4byte 0x04000208 -_0206EA10: .4byte 0x022B7998 -_0206EA14: .4byte 0x71657365 - arm_func_end FUN_0206e920 - - arm_func_start FUN_0206ea18 -FUN_0206ea18: @ 0x0206EA18 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr r1, _0206EBA8 @ =0x7365646C - ldr r2, _0206EBAC @ =0x00000415 - mov r3, #4 - mov r4, r0 - bl FUN_0206cd1c - movs r5, r0 - popmi {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_0206f340 - cmp r0, #0 - beq _0206EA64 - mov r1, r5 - mvn r0, #0x49 - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0x49 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0206EA64: - ldr r2, _0206EBB0 @ =0x66646573 - mov r0, #0x1c - mov r1, #0x10 - bl FUN_0206c9bc - movs sl, r0 - bne _0206EA94 - mov r1, r5 - mvn r0, #0x7f - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0x7f - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0206EA94: - str r4, [sl] - ldrsh r2, [r4, #0x30] - mov r1, #0 - mov r0, #1 - strh r2, [sl, #4] - strh r5, [sl, #6] - str r1, [sl, #8] - str r1, [sl, #0xc] - str r1, [sl, #0x10] - str r1, [sl, #0x14] - strb r0, [sl, #0x18] - ldrb r0, [r4, #0x35] - cmp r0, #0 - beq _0206EB60 - add r8, r4, #0x40 - ldr r4, _0206EBB4 @ =0x73657120 - ldr r7, _0206EBB8 @ =0x656F6420 - ldr r6, _0206EBBC @ =0x626E6B6C - ldr r5, _0206EBC0 @ =0x6D63726C - mov fp, r1 -_0206EAE4: - ldr r0, [r8] - mov sb, fp - bl FUN_0206c8c4 - cmp r0, r7 - bhi _0206EB0C - bhs _0206EB30 - cmp r0, r6 - addeq r0, r8, #0x10 - streq r0, [sl, #0x14] - b _0206EB34 -_0206EB0C: - cmp r0, r5 - bhi _0206EB20 - addeq r0, r8, #0x10 - streq r0, [sl, #0x10] - b _0206EB34 -_0206EB20: - cmp r0, r4 - addeq r0, r8, #0x10 - streq r0, [sl, #0xc] - b _0206EB34 -_0206EB30: - mov sb, #1 -_0206EB34: - cmp sb, #1 - beq _0206EB60 - ldrb r1, [r8, #8] - ldr r0, [r8, #0xc] - sub r2, r1, #1 - add r0, r0, #0x10 - mvn r1, r2 - add r0, r0, r2 - and r0, r1, r0 - add r8, r8, r0 - b _0206EAE4 -_0206EB60: - ldr r1, _0206EBC4 @ =0x04000208 - mov r0, #0 - ldrh r3, [r1] - ldr r2, _0206EBC8 @ =0x022B799C - strh r0, [r1] - ldr r0, [r2] - cmp r0, #0 - beq _0206EB90 -_0206EB80: - add r2, r0, #8 - ldr r0, [r0, #8] - cmp r0, #0 - bne _0206EB80 -_0206EB90: - ldr r1, _0206EBC4 @ =0x04000208 - str sl, [r2] - ldrh r0, [r1] - strh r3, [r1] - ldrh r0, [sl, #6] - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0206EBA8: .4byte 0x7365646C -_0206EBAC: .4byte 0x00000415 -_0206EBB0: .4byte 0x66646573 -_0206EBB4: .4byte 0x73657120 -_0206EBB8: .4byte 0x656F6420 -_0206EBBC: .4byte 0x626E6B6C -_0206EBC0: .4byte 0x6D63726C -_0206EBC4: .4byte 0x04000208 -_0206EBC8: .4byte 0x022B799C - arm_func_end FUN_0206ea18 - - arm_func_start FUN_0206ebcc -FUN_0206ebcc: @ 0x0206EBCC - push {r4, lr} - mov r4, r0 - bl FUN_0206f54c - ldr r1, _0206EC54 @ =0x04000208 - mov r0, #0 - ldrh ip, [r1] - ldr r3, _0206EC58 @ =0x022B799C - strh r0, [r1] - b _0206EBF4 -_0206EBF0: - add r3, r0, #8 -_0206EBF4: - ldr r0, [r3] - cmp r0, #0 - ldrhne r1, [r0, #6] - cmpne r1, r4 - bne _0206EBF0 - cmp r0, #0 - bne _0206EC34 - ldr r3, _0206EC54 @ =0x04000208 - mov r1, r4 - ldrh r0, [r3] - mov r2, #0 - mvn r0, #0x43 - strh ip, [r3] - bl FUN_0206c854 - mvn r0, #0x43 - pop {r4, pc} -_0206EC34: - ldr r1, [r0, #8] - ldr r2, _0206EC54 @ =0x04000208 - str r1, [r3] - ldrh r1, [r2] - strh ip, [r2] - bl FUN_0206cc14 - mov r0, #0 - pop {r4, pc} - .align 2, 0 -_0206EC54: .4byte 0x04000208 -_0206EC58: .4byte 0x022B799C - arm_func_end FUN_0206ebcc - - arm_func_start FUN_0206ec5c -FUN_0206ec5c: @ 0x0206EC5C - push {r4, r5, r6, lr} - movs r4, r1 - mov r6, r0 - beq _0206EC74 - cmp r2, #0 - bgt _0206EC8C -_0206EC74: - mov r1, r6 - mvn r0, #0x17 - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0x17 - pop {r4, r5, r6, pc} -_0206EC8C: - lsl r0, r6, #0x10 - lsr r5, r0, #0x10 - mov r0, r5 - bl FUN_0206f340 - cmp r0, #0 - bne _0206ECBC - mov r1, r5 - mvn r0, #0x43 - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0x43 - pop {r4, r5, r6, pc} -_0206ECBC: - ldr r2, [r0, #0x14] - cmp r2, #0 - bne _0206ECE0 - mov r1, r5 - mvn r0, #0x4d - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0x4d - pop {r4, r5, r6, pc} -_0206ECE0: - asr r0, r6, #0x10 - lsl r0, r0, #0x10 - asr r0, r0, #0xf - ldrh r1, [r2, r0] - cmp r1, #0 - mvneq r0, #0x44 - popeq {r4, r5, r6, pc} - ldrb r0, [r2, r1] - add r1, r2, r1 - add r3, r1, #4 - cmp r0, #0 - mov r2, #0 - pople {r4, r5, r6, pc} -_0206ED14: - ldrh r0, [r3], #2 - add r2, r2, #1 - strh r0, [r4], #2 - ldrb r0, [r1] - cmp r2, r0 - blt _0206ED14 - pop {r4, r5, r6, pc} - arm_func_end FUN_0206ec5c - - arm_func_start FUN_0206ed30 -FUN_0206ed30: @ 0x0206ED30 - mvn r2, #0 - cmp r0, r2 - beq _0206EDAC - ldr r2, _0206EDF8 @ =0x022B7330 - ldr r3, [r2, #0x668] - cmp r3, #0 - beq _0206EDF0 -_0206ED4C: - ldrsb r2, [r3, #4] - cmp r2, #1 - ldreq r2, [r3, #0x28] - cmpeq r2, r0 - bne _0206ED9C - cmp r1, #0 - bne _0206ED7C - ldrsb r0, [r3, #6] - cmp r0, #0 - moveq r0, #1 - movne r0, #2 - bx lr -_0206ED7C: - ldrh r2, [r3, #0x2c] - cmp r2, r1 - bne _0206ED9C - ldrsb r0, [r3, #6] - cmp r0, #0 - moveq r0, #1 - movne r0, #2 - bx lr -_0206ED9C: - ldr r3, [r3, #0xa4] - cmp r3, #0 - bne _0206ED4C - b _0206EDF0 -_0206EDAC: - ldr r0, _0206EDF8 @ =0x022B7330 - ldr r2, [r0, #0x668] - cmp r2, #0 - beq _0206EDF0 -_0206EDBC: - ldrsb r0, [r2, #4] - cmp r0, #1 - ldrheq r0, [r2, #0x2c] - cmpeq r0, r1 - bne _0206EDE4 - ldrsb r0, [r2, #6] - cmp r0, #0 - moveq r0, #1 - movne r0, #2 - bx lr -_0206EDE4: - ldr r2, [r2, #0xa4] - cmp r2, #0 - bne _0206EDBC -_0206EDF0: - mov r0, #0 - bx lr - .align 2, 0 -_0206EDF8: .4byte 0x022B7330 - arm_func_end FUN_0206ed30 - - arm_func_start FUN_0206edfc -FUN_0206edfc: @ 0x0206EDFC - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sl, r0 - lsl r0, sl, #0x10 - lsr r5, r0, #0x10 - mov r0, r5 - mov fp, r1 - mov sb, r2 - bl FUN_0206f340 - movs r4, r0 - bne _0206EE3C - mov r1, r5 - mvn r0, #0x43 - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0x43 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0206EE3C: - asr r0, sl, #0x10 - lsl r1, r0, #0x10 - ldr r5, [r4] - ldr r2, [r4, #0xc] - mov r0, r5 - asr r1, r1, #0x10 - bl FUN_0206efb0 - movs r6, r0 - bne _0206EE78 - mov r1, sl - mvn r0, #0x44 - mov r2, #0 - bl FUN_0206c888 - mvn r0, #0x44 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0206EE78: - ldrb r0, [r6, #0x18] - ldrb r1, [sb] - ldrb r8, [r6, #0x1a] - tst r0, #1 - moveq r0, #1 - movne r0, #0 - lsl r0, r0, #0x18 - asr r2, r0, #0x18 - tst r1, #0x40 - bne _0206EECC - cmp r8, #0 - ldrb r1, [r6, #0x1c] - bne _0206EEBC - mov r0, sl - bl FUN_0206eff8 - and r0, r0, #0xff - b _0206EEDC -_0206EEBC: - mov r0, r8 - bl FUN_0206f100 - and r0, r0, #0xff - b _0206EEDC -_0206EECC: - mov r0, fp - mov r1, r2 - bl FUN_0206f208 - and r0, r0, #0xff -_0206EEDC: - cmp r0, #0 - movne r0, #0 - popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldrb r0, [r6, #0x1b] - ldrb r1, [r6, #0x19] - ldrb r2, [r6, #0x1c] - bl FUN_0206f2c4 - movs r7, r0 - moveq r0, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldrsb r1, [r7, #4] - cmp r1, #1 - bne _0206EF1C - mov r1, #0 - mov r2, #1 - bl FUN_0206e3c4 -_0206EF1C: - str sl, [r7, #0x28] - mov r0, r7 - str r5, [r7, #0x1c] - bl FUN_0206e85c - mov r0, r7 - mov r1, r6 - bl FUN_0206e554 - movs r1, r0 - bpl _0206EF54 - mov r2, sl - mvn r0, #0x4e - bl FUN_0206c854 - mvn r0, #0x4e - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0206EF54: - mov r0, r7 - bl FUN_0206e26c - mov r0, #0 - str r0, [r7, #0x68] - strh r0, [r7, #0x74] - mov r0, #1 - strb r0, [r7, #2] - ldrsb r0, [r4, #0x18] - strb r0, [r7, #9] - bl FUN_0206c688 - ldrsb r3, [r4, #0x18] - mov r1, fp - mov r2, r8 - and r3, r3, r0 - strb r3, [r7, #8] - mov r3, #1 - strb r3, [r7, #0xa] - mov r0, r7 - mov r3, sb - bl FUN_0206db7c - cmp r0, #0 - movge r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0206edfc - - arm_func_start FUN_0206efb0 -FUN_0206efb0: @ 0x0206EFB0 - cmp r1, #0 - movlt r0, #0 - bxlt lr - ldrsh r3, [r0, #0x30] - cmp r3, r1 - movle r0, #0 - bxle lr - ldrb r3, [r0, #0x35] - cmp r3, #0 - moveq r2, r0 - addeq r3, r0, #0x40 - movne r3, r2 - lsl r0, r1, #1 - ldrh r0, [r3, r0] - cmp r0, #0 - moveq r0, #0 - addne r0, r2, r0 - bx lr - arm_func_end FUN_0206efb0 - - arm_func_start FUN_0206eff8 -FUN_0206eff8: @ 0x0206EFF8 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sl, r0 - movs sb, r1 - mov r0, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldr r3, _0206F0F8 @ =0x04000208 - cmp r2, #1 - ldrh r1, [r3] - str r1, [sp] - strh r0, [r3] - bne _0206F0AC - ldr r4, _0206F0FC @ =0x022B7330 - mov fp, r0 - mov r6, r0 - mvn r5, #0x80000000 -_0206F034: - ldr r1, [r4, #0x668] - mov r7, r6 - mov r2, r5 - cmp r1, #0 - beq _0206F07C -_0206F048: - ldrsb r0, [r1, #4] - cmp r0, #1 - ldreq r0, [r1, #0x28] - cmpeq r0, sl - bne _0206F070 - ldr r0, [r1, #0x30] - add r7, r7, #1 - cmp r2, r0 - movhi r2, r0 - movhi r8, r1 -_0206F070: - ldr r1, [r1, #0xa4] - cmp r1, #0 - bne _0206F048 -_0206F07C: - cmp r7, sb - blt _0206F09C - cmp r8, #0 - beq _0206F09C - mov r0, r8 - mov r1, fp - mov r2, #1 - bl FUN_0206e3c4 -_0206F09C: - cmp r7, sb - bgt _0206F034 - mov r0, #0 - b _0206F0E4 -_0206F0AC: - ldr r1, _0206F0FC @ =0x022B7330 - ldr r2, [r1, #0x668] - cmp r2, #0 - beq _0206F0DC -_0206F0BC: - ldrsb r1, [r2, #4] - cmp r1, #1 - ldreq r1, [r2, #0x28] - ldr r2, [r2, #0xa4] - cmpeq r1, sl - addeq r0, r0, #1 - cmp r2, #0 - bne _0206F0BC -_0206F0DC: - cmp r0, sb - movlt r0, #0 -_0206F0E4: - ldr r2, _0206F0F8 @ =0x04000208 - ldrh r1, [r2] - ldr r1, [sp] - strh r1, [r2] - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0206F0F8: .4byte 0x04000208 -_0206F0FC: .4byte 0x022B7330 - arm_func_end FUN_0206eff8 - - arm_func_start FUN_0206f100 -FUN_0206f100: @ 0x0206F100 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sl, r0 - movs sb, r1 - mov r0, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldr r3, _0206F200 @ =0x04000208 - cmp r2, #1 - ldrh r1, [r3] - str r1, [sp] - strh r0, [r3] - bne _0206F1B4 - ldr r4, _0206F204 @ =0x022B7330 - mov fp, r0 - mov r6, r0 - mvn r5, #0x80000000 -_0206F13C: - ldr r1, [r4, #0x668] - mov r7, r6 - mov r2, r5 - cmp r1, #0 - beq _0206F184 -_0206F150: - ldrsb r0, [r1, #4] - cmp r0, #1 - ldrbeq r0, [r1, #0x14] - cmpeq r0, sl - bne _0206F178 - ldr r0, [r1, #0x30] - add r7, r7, #1 - cmp r2, r0 - movhi r2, r0 - movhi r8, r1 -_0206F178: - ldr r1, [r1, #0xa4] - cmp r1, #0 - bne _0206F150 -_0206F184: - cmp r7, sb - blt _0206F1A4 - cmp r8, #0 - beq _0206F1A4 - mov r0, r8 - mov r1, fp - mov r2, #1 - bl FUN_0206e3c4 -_0206F1A4: - cmp r7, sb - bgt _0206F13C - mov r0, #0 - b _0206F1EC -_0206F1B4: - ldr r1, _0206F204 @ =0x022B7330 - ldr r2, [r1, #0x668] - cmp r2, #0 - beq _0206F1E4 -_0206F1C4: - ldrsb r1, [r2, #4] - cmp r1, #1 - ldrbeq r1, [r2, #0x14] - ldr r2, [r2, #0xa4] - cmpeq r1, sl - addeq r0, r0, #1 - cmp r2, #0 - bne _0206F1C4 -_0206F1E4: - cmp r0, sb - movlt r0, #0 -_0206F1EC: - ldr r2, _0206F200 @ =0x04000208 - ldrh r1, [r2] - ldr r1, [sp] - strh r1, [r2] - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0206F200: .4byte 0x04000208 -_0206F204: .4byte 0x022B7330 - arm_func_end FUN_0206f100 - - arm_func_start FUN_0206f208 -FUN_0206f208: @ 0x0206F208 - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r2, _0206F2BC @ =0x04000208 - mov r4, #0 - ldrh r6, [r2] - mov r7, r0 - cmp r1, #1 - strh r4, [r2] - bne _0206F274 - ldr r0, _0206F2C0 @ =0x022B7330 - ldr r5, [r0, #0x668] - cmp r5, #0 - beq _0206F2A8 - mov sb, r4 - mov r8, #1 -_0206F240: - ldrsb r0, [r5, #4] - cmp r0, #1 - ldrheq r0, [r5, #0x2c] - cmpeq r0, r7 - bne _0206F264 - mov r0, r5 - mov r1, sb - mov r2, r8 - bl FUN_0206e3c4 -_0206F264: - ldr r5, [r5, #0xa4] - cmp r5, #0 - bne _0206F240 - b _0206F2A8 -_0206F274: - ldr r0, _0206F2C0 @ =0x022B7330 - ldr r1, [r0, #0x668] - cmp r1, #0 - beq _0206F2A8 -_0206F284: - ldrsb r0, [r1, #4] - cmp r0, #1 - ldrheq r0, [r1, #0x2c] - cmpeq r0, r7 - moveq r4, #1 - beq _0206F2A8 - ldr r1, [r1, #0xa4] - cmp r1, #0 - bne _0206F284 -_0206F2A8: - ldr r2, _0206F2BC @ =0x04000208 - mov r0, r4 - ldrh r1, [r2] - strh r6, [r2] - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0206F2BC: .4byte 0x04000208 -_0206F2C0: .4byte 0x022B7330 - arm_func_end FUN_0206f208 - - arm_func_start FUN_0206f2c4 -FUN_0206f2c4: @ 0x0206F2C4 - push {r3, lr} - ldr r2, _0206F338 @ =0x04000208 - mov r3, #0 - ldrh lr, [r2] - ldr r1, _0206F33C @ =0x022B7330 - sub ip, r3, #1 - strh r3, [r2] - ldr r2, [r1, #0x668] - cmp r2, #0 - beq _0206F324 -_0206F2EC: - ldrsb r1, [r2, #4] - cmp r1, #0 - moveq r3, r2 - beq _0206F324 - ldrb r1, [r2, #0x12] - cmp r1, r0 - blo _0206F318 - ldr r1, [r2, #0x30] - cmp ip, r1 - movhi ip, r1 - movhi r3, r2 -_0206F318: - ldr r2, [r2, #0xa4] - cmp r2, #0 - bne _0206F2EC -_0206F324: - ldr r2, _0206F338 @ =0x04000208 - mov r0, r3 - ldrh r1, [r2] - strh lr, [r2] - pop {r3, pc} - .align 2, 0 -_0206F338: .4byte 0x04000208 -_0206F33C: .4byte 0x022B7330 - arm_func_end FUN_0206f2c4 - - arm_func_start FUN_0206f340 -FUN_0206f340: @ 0x0206F340 - ldr r3, _0206F384 @ =0x04000208 - ldr r1, _0206F388 @ =0x022B7330 - ldrh ip, [r3] - mov r2, #0 - strh r2, [r3] - ldr r3, [r1, #0x66c] - b _0206F360 -_0206F35C: - ldr r3, [r3, #8] -_0206F360: - cmp r3, #0 - ldrhne r1, [r3, #6] - cmpne r1, r0 - bne _0206F35C - ldr r2, _0206F384 @ =0x04000208 - mov r0, r3 - ldrh r1, [r2] - strh ip, [r2] - bx lr - .align 2, 0 -_0206F384: .4byte 0x04000208 -_0206F388: .4byte 0x022B7330 - arm_func_end FUN_0206f340 - - arm_func_start FUN_0206f38c -FUN_0206f38c: @ 0x0206F38C - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov r8, r0 - mvn r0, #0 - mov r7, r1 - mov r6, r2 - cmp r8, r0 - ldr r2, _0206F4D8 @ =0x04000208 - mov r1, #0 - beq _0206F478 - cmp r7, #0 - bne _0206F414 - ldrh r4, [r2] - ldr r0, _0206F4DC @ =0x022B7330 - strh r1, [r2] - ldr r7, [r0, #0x668] - cmp r7, #0 - beq _0206F404 - mov r5, #1 -_0206F3D4: - ldrsb r0, [r7, #4] - cmp r0, #1 - ldreq r0, [r7, #0x28] - cmpeq r0, r8 - bne _0206F3F8 - mov r0, r7 - mov r1, r6 - mov r2, r5 - bl FUN_0206e3c4 -_0206F3F8: - ldr r7, [r7, #0xa4] - cmp r7, #0 - bne _0206F3D4 -_0206F404: - ldr r1, _0206F4D8 @ =0x04000208 - ldrh r0, [r1] - strh r4, [r1] - b _0206F4D0 -_0206F414: - ldrh r4, [r2] - ldr r0, _0206F4DC @ =0x022B7330 - strh r1, [r2] - ldr r5, [r0, #0x668] - cmp r5, #0 - beq _0206F468 - mov sb, #1 -_0206F430: - ldrsb r0, [r5, #4] - cmp r0, #1 - ldreq r0, [r5, #0x28] - cmpeq r0, r8 - ldrheq r0, [r5, #0x2c] - cmpeq r0, r7 - bne _0206F45C - mov r0, r5 - mov r1, r6 - mov r2, sb - bl FUN_0206e3c4 -_0206F45C: - ldr r5, [r5, #0xa4] - cmp r5, #0 - bne _0206F430 -_0206F468: - ldr r1, _0206F4D8 @ =0x04000208 - ldrh r0, [r1] - strh r4, [r1] - b _0206F4D0 -_0206F478: - ldrh r4, [r2] - ldr r0, _0206F4DC @ =0x022B7330 - strh r1, [r2] - ldr r8, [r0, #0x668] - cmp r8, #0 - beq _0206F4C4 - mov r5, #1 -_0206F494: - ldrsb r0, [r8, #4] - cmp r0, #1 - ldrheq r0, [r8, #0x2c] - cmpeq r0, r7 - bne _0206F4B8 - mov r0, r8 - mov r1, r6 - mov r2, r5 - bl FUN_0206e3c4 -_0206F4B8: - ldr r8, [r8, #0xa4] - cmp r8, #0 - bne _0206F494 -_0206F4C4: - ldr r1, _0206F4D8 @ =0x04000208 - ldrh r0, [r1] - strh r4, [r1] -_0206F4D0: - mov r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0206F4D8: .4byte 0x04000208 -_0206F4DC: .4byte 0x022B7330 - arm_func_end FUN_0206f38c - - arm_func_start FUN_0206f4e0 -FUN_0206f4e0: @ 0x0206F4E0 - push {r3, r4, r5, r6, r7, lr} - ldr r3, _0206F544 @ =0x04000208 - mov r2, #0 - ldrh r4, [r3] - ldr r1, _0206F548 @ =0x022B7330 - mov r5, r0 - strh r2, [r3] - ldr r7, [r1, #0x668] - cmp r7, #0 - beq _0206F534 - mov r6, #1 -_0206F50C: - ldrsb r0, [r7, #4] - cmp r0, #1 - bne _0206F528 - mov r0, r7 - mov r1, r5 - mov r2, r6 - bl FUN_0206e3c4 -_0206F528: - ldr r7, [r7, #0xa4] - cmp r7, #0 - bne _0206F50C -_0206F534: - ldr r1, _0206F544 @ =0x04000208 - ldrh r0, [r1] - strh r4, [r1] - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0206F544: .4byte 0x04000208 -_0206F548: .4byte 0x022B7330 - arm_func_end FUN_0206f4e0 - - arm_func_start FUN_0206f54c -FUN_0206f54c: @ 0x0206F54C - push {r4, r5, r6, r7, r8, lr} - ldr r3, _0206F5C0 @ =0x04000208 - mov r2, #0 - ldrh r5, [r3] - ldr r1, _0206F5C4 @ =0x022B7330 - mov r6, r0 - strh r2, [r3] - ldr r4, [r1, #0x668] - cmp r4, #0 - beq _0206F5B0 - mov r8, r2 - mov r7, #1 -_0206F57C: - ldrsb r0, [r4, #4] - cmp r0, #1 - ldreq r0, [r4, #0x28] - lsleq r0, r0, #0x10 - cmpeq r6, r0, lsr #16 - bne _0206F5A4 - mov r0, r4 - mov r1, r8 - mov r2, r7 - bl FUN_0206e3c4 -_0206F5A4: - ldr r4, [r4, #0xa4] - cmp r4, #0 - bne _0206F57C -_0206F5B0: - ldr r1, _0206F5C0 @ =0x04000208 - ldrh r0, [r1] - strh r5, [r1] - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0206F5C0: .4byte 0x04000208 -_0206F5C4: .4byte 0x022B7330 - arm_func_end FUN_0206f54c - - arm_func_start FUN_0206f5c8 -FUN_0206f5c8: @ 0x0206F5C8 - push {r4, r5, r6, r7, r8, lr} - mov r7, r0 - mvn r0, #0 - mov r6, r1 - mov r5, r2 - cmp r7, r0 - ldr r2, _0206F6F4 @ =0x04000208 - mov r1, #0 - beq _0206F69C - cmp r6, #0 - bne _0206F648 - ldrh r4, [r2] - ldr r0, _0206F6F8 @ =0x022B7330 - strh r1, [r2] - ldr r6, [r0, #0x668] - cmp r6, #0 - beq _0206F638 -_0206F60C: - ldrsb r0, [r6, #4] - cmp r0, #1 - ldreq r0, [r6, #0x28] - cmpeq r0, r7 - bne _0206F62C - mov r0, r6 - mov r1, r5 - bl FUN_0206dd70 -_0206F62C: - ldr r6, [r6, #0xa4] - cmp r6, #0 - bne _0206F60C -_0206F638: - ldr r1, _0206F6F4 @ =0x04000208 - ldrh r0, [r1] - strh r4, [r1] - b _0206F6EC -_0206F648: - ldrh r4, [r2] - ldr r0, _0206F6F8 @ =0x022B7330 - strh r1, [r2] - ldr r8, [r0, #0x668] - cmp r8, #0 - beq _0206F68C -_0206F660: - ldr r0, [r8, #0x28] - cmp r0, r7 - ldrheq r0, [r8, #0x2c] - cmpeq r0, r6 - bne _0206F680 - mov r0, r8 - mov r1, r5 - bl FUN_0206dd70 -_0206F680: - ldr r8, [r8, #0xa4] - cmp r8, #0 - bne _0206F660 -_0206F68C: - ldr r1, _0206F6F4 @ =0x04000208 - ldrh r0, [r1] - strh r4, [r1] - b _0206F6EC -_0206F69C: - ldrh r4, [r2] - ldr r0, _0206F6F8 @ =0x022B7330 - strh r1, [r2] - ldr r7, [r0, #0x668] - cmp r7, #0 - beq _0206F6E0 -_0206F6B4: - ldrsb r0, [r7, #4] - cmp r0, #1 - ldrheq r0, [r7, #0x2c] - cmpeq r0, r6 - bne _0206F6D4 - mov r0, r7 - mov r1, r5 - bl FUN_0206dd70 -_0206F6D4: - ldr r7, [r7, #0xa4] - cmp r7, #0 - bne _0206F6B4 -_0206F6E0: - ldr r1, _0206F6F4 @ =0x04000208 - ldrh r0, [r1] - strh r4, [r1] -_0206F6EC: - mov r0, #0 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0206F6F4: .4byte 0x04000208 -_0206F6F8: .4byte 0x022B7330 - arm_func_end FUN_0206f5c8 -_0206F6FC: - .byte 0xF0, 0x41, 0x2D, 0xE9 - .byte 0x64, 0x20, 0x9F, 0xE5, 0x64, 0x10, 0x9F, 0xE5, 0xB0, 0x50, 0xD2, 0xE1, 0xCC, 0x41, 0x91, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x60, 0xA0, 0xE1, 0xB0, 0x10, 0xC2, 0xE1, 0x00, 0x00, 0x54, 0xE3 - .byte 0x0C, 0x00, 0x00, 0x0A, 0x01, 0x80, 0xA0, 0xE3, 0x08, 0x70, 0xA0, 0xE1, 0xDA, 0x00, 0xD4, 0xE1 - .byte 0x01, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1, 0x08, 0x10, 0xA0, 0xE1 - .byte 0x06, 0x20, 0xA0, 0xE1, 0xE7, 0x00, 0x00, 0xEB, 0x13, 0x70, 0xC4, 0xE5, 0x00, 0x45, 0x94, 0xE5 - .byte 0x00, 0x00, 0x54, 0xE3, 0xF4, 0xFF, 0xFF, 0x1A, 0x0C, 0x20, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3 - .byte 0xB0, 0x10, 0xD2, 0xE1, 0xB0, 0x50, 0xC2, 0xE1, 0xF0, 0x81, 0xBD, 0xE8, 0x08, 0x02, 0x00, 0x04 - .byte 0x08, 0x92, 0x2B, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x44, 0x10, 0x9F, 0xE5, 0x00, 0x60, 0xA0, 0xE1 - .byte 0xCC, 0x51, 0x91, 0xE5, 0x00, 0x00, 0x55, 0xE3, 0x0B, 0x00, 0x00, 0x0A, 0x00, 0x40, 0xA0, 0xE3 - .byte 0xD3, 0x01, 0xD5, 0xE1, 0x01, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0x05, 0x00, 0xA0, 0xE1 - .byte 0x04, 0x10, 0xA0, 0xE1, 0x06, 0x20, 0xA0, 0xE1, 0x13, 0x40, 0xC5, 0xE5, 0xCD, 0x00, 0x00, 0xEB - .byte 0x00, 0x55, 0x95, 0xE5, 0x00, 0x00, 0x55, 0xE3, 0xF4, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x70, 0x80, 0xBD, 0xE8, 0x08, 0x92, 0x2B, 0x02 - - arm_func_start FUN_0206f7c8 -FUN_0206f7c8: @ 0x0206F7C8 - push {r3, lr} - ldr r1, _0206F804 @ =0x022B9208 - ldrsb r1, [r1, #4] - cmp r1, #0 - mvneq r0, #0x59 - popeq {r3, pc} - bl FUN_0206fd2c - cmp r0, #0 - mvneq r0, #0xb0 - popeq {r3, pc} - ldrsb r1, [r0, #4] - cmp r1, #0 - moveq r0, #0 - ldrne r0, [r0] - pop {r3, pc} - .align 2, 0 -_0206F804: .4byte 0x022B9208 - arm_func_end FUN_0206f7c8 - - arm_func_start FUN_0206f808 -FUN_0206f808: @ 0x0206F808 - push {r4, lr} - ldr r0, _0206F83C @ =0x022B9208 - ldr r4, [r0, #0x1cc] - cmp r4, #0 - popeq {r4, pc} -_0206F81C: - ldr r0, [r4] - cmp r0, #0 - ble _0206F82C - bl FUN_0206f840 -_0206F82C: - ldr r4, [r4, #0x500] - cmp r4, #0 - bne _0206F81C - pop {r4, pc} - .align 2, 0 -_0206F83C: .4byte 0x022B9208 - arm_func_end FUN_0206f808 - - arm_func_start FUN_0206f840 -FUN_0206f840: @ 0x0206F840 - push {r4, r5, r6, lr} - ldr r1, _0206F96C @ =0x022B9208 - mov r5, r0 - ldrsb r1, [r1, #4] - cmp r1, #0 - mvneq r0, #0x59 - popeq {r4, r5, r6, pc} - bl FUN_0206fd2c - movs r4, r0 - bne _0206F880 - mov r1, r5 - mvn r0, #0x3f - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0x3f - pop {r4, r5, r6, pc} -_0206F880: - mov r1, #0 - strb r1, [r4, #0x2b] - ldr r0, _0206F970 @ =0x04000208 - strb r1, [r4, #9] - ldrh r3, [r0] - strh r1, [r0] - ldrsb r2, [r4, #6] - ldr r1, _0206F970 @ =0x04000208 - cmp r2, #0 - moveq r0, #1 - strbeq r0, [r4, #6] - ldrh r0, [r1] - cmp r2, #0 - strh r3, [r1] - bne _0206F964 - mov r1, #0 - strb r1, [r4, #0x14] - ldrsb r0, [r4, #0xa] - cmp r0, #1 - bne _0206F904 - mov r0, r5 - bl FUN_0206f9ec - mov r0, r5 - bl FUN_0206f974 - cmp r0, #0 - ble _0206F904 - mov r6, #4 -_0206F8EC: - mov r0, r6 - bl FUN_02079b14 - mov r0, r5 - bl FUN_0206f974 - cmp r0, #0 - bgt _0206F8EC -_0206F904: - ldrsb r0, [r4, #0x12] - cmp r0, #1 - bne _0206F918 - mov r0, r4 - bl FUN_0207009c -_0206F918: - mov r1, #1 - strb r1, [r4, #5] - strb r1, [r4, #0x10] - mov r0, #0 - strb r0, [r4, #0x13] - ldrb r0, [r4, #0x1a] - cmp r0, #2 - mov r0, r5 - strbeq r1, [r4, #7] - bl FUN_0206f7c8 - cmp r0, #0 - blt _0206F964 + strh r4, [r1, #0x28] mov r4, #4 -_0206F94C: - mov r0, r4 - bl FUN_02079b14 - mov r0, r5 - bl FUN_0206f7c8 - cmp r0, #0 - bge _0206F94C -_0206F964: - mov r0, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0206F96C: .4byte 0x022B9208 -_0206F970: .4byte 0x04000208 - arm_func_end FUN_0206f840 - - arm_func_start FUN_0206f974 -FUN_0206f974: @ 0x0206F974 - push {r3, lr} - ldr r1, _0206F9A0 @ =0x022B9208 - ldrsb r1, [r1, #4] - cmp r1, #0 - mvneq r0, #0x59 - popeq {r3, pc} - bl FUN_0206fd2c - cmp r0, #0 - mvneq r0, #0x3f - ldrsbne r0, [r0, #0xa] - pop {r3, pc} - .align 2, 0 -_0206F9A0: .4byte 0x022B9208 - arm_func_end FUN_0206f974 - - arm_func_start FUN_0206f9a4 -FUN_0206f9a4: @ 0x0206F9A4 - push {r3, r4, r5, lr} - ldr r1, _0206F9E8 @ =0x022B9208 - mov r5, r0 - ldr r4, [r1, #0x1cc] - cmp r4, #0 - beq _0206F9E0 -_0206F9BC: - ldrsb r0, [r4, #0xa] - cmp r0, #1 - bne _0206F9D4 - ldr r0, [r4] - mov r1, r5 - bl FUN_0206f9ec -_0206F9D4: - ldr r4, [r4, #0x500] - cmp r4, #0 - bne _0206F9BC -_0206F9E0: - mov r0, #0 + ldr r5, _022CF488 @ =0x0232694C + strh r4, [r1, #0x2a] + and r3, r3, #0xff + and r2, r2, #0xff00 + ldr r4, _022CF48C @ =0x02326934 + str r5, [r1, #0x2c] + str r4, [r1, #0x18] + and ip, ip, #0xff0000 + orr r2, r3, r2 + and r3, lr, #0xff000000 + orr r2, ip, r2 + str r0, [r1, #0x1c] + orr r2, r3, r2 + ldr r0, _022CF490 @ =0x02326954 + str r2, [r1] pop {r3, r4, r5, pc} .align 2, 0 -_0206F9E8: .4byte 0x022B9208 - arm_func_end FUN_0206f9a4 +_022CF47C: .4byte 0x023269BC +_022CF480: .4byte 0x00000101 +_022CF484: .4byte 0x02326934 +_022CF488: .4byte 0x0232694C +_022CF48C: .4byte 0x02326934 +_022CF490: .4byte 0x02326954 + arm_func_end ov00_022CF3D4 - arm_func_start FUN_0206f9ec -FUN_0206f9ec: @ 0x0206F9EC + arm_func_start ov00_022CF494 +ov00_022CF494: @ 0x022CF494 push {r4, r5, r6, lr} - ldr r2, _0206FAE0 @ =0x022B9208 - mov r5, r0 - ldrsb r2, [r2, #4] - mov r6, r1 - cmp r2, #0 - mvneq r0, #0x59 - popeq {r4, r5, r6, pc} - bl FUN_0206fd2c - movs r4, r0 - bne _0206FA30 - mov r1, r5 - mvn r0, #0x3f - mov r2, #0 - bl FUN_0206c854 - mvn r0, #0x3f - pop {r4, r5, r6, pc} -_0206FA30: - mov r5, #0 - strb r5, [r4, #0x2a] - cmp r6, #0 - beq _0206FA60 - mov r0, #0x3e8 - mul r0, r6, r0 - ldr r1, _0206FAE4 @ =0x022B7330 - ldrsh r1, [r1, #0x28] - bl DivideUInt - lsl r0, r0, #0x10 - lsrs r5, r0, #0x10 - moveq r5, #1 -_0206FA60: - cmp r5, #0 - mov r1, #0 - bne _0206FAA4 - strb r1, [r4, #0x14] - strb r1, [r4, #0xa] - mov r0, r4 - strb r1, [r4, #0xd] - bl FUN_0207009c - mov r2, #0 - str r2, [r4, #0x2c] - strh r2, [r4, #0x38] - ldr r0, [r4] - ldr r3, [r4, #0x1fc] - ldr r4, [r4, #0x1f8] - mov r1, #9 - blx r4 - b _0206FAD8 -_0206FAA4: - mov r0, #1 - strb r0, [r4, #0x14] - str r1, [r4, #0x34] - streq r1, [r4, #0x2c] - beq _0206FAD4 - ldr r0, [r4, #0x2c] - rsbs r0, r0, #0 - moveq r5, r1 - beq _0206FAD4 - mov r1, r5 - bl DivideInt - str r0, [r4, #0x30] -_0206FAD4: - strh r5, [r4, #0x38] -_0206FAD8: - mov r0, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0206FAE0: .4byte 0x022B9208 -_0206FAE4: .4byte 0x022B7330 - arm_func_end FUN_0206f9ec - - arm_func_start FUN_0206fae8 -FUN_0206fae8: @ 0x0206FAE8 - push {r3, r4, r5, lr} - mov r3, #0x3e8 - mov r4, r0 - mul r0, r2, r3 - ldr r2, _0206FBC4 @ =0x022B7330 - mov r5, r1 - ldrsh r1, [r2, #0x28] - bl DivideInt - ldrsb r1, [r4, #0x13] - cmp r1, #1 - moveq r0, #0 - popeq {r3, r4, r5, pc} - cmp r5, #1 - bne _0206FB9C - cmp r0, #0 - bne _0206FB58 - ldrsb r0, [r4, #8] - cmp r0, #1 - bne _0206FBBC - mov r0, r4 - bl FUN_0207009c - ldr r0, [r4] - ldr r3, [r4, #0x1fc] - ldr r4, [r4, #0x1f8] - mov r1, #9 - mov r2, #0 - blx r4 - b _0206FBBC -_0206FB58: - mov r1, #1 - strb r1, [r4, #0x14] - mov r1, #0 - lsl r0, r0, #0x10 - str r1, [r4, #0x34] - lsrs r5, r0, #0x10 - streq r1, [r4, #0x2c] - beq _0206FB94 - ldr r0, [r4, #0x2c] - rsbs r0, r0, #0 - moveq r5, r1 - beq _0206FB94 - mov r1, r5 - bl DivideInt - str r0, [r4, #0x30] -_0206FB94: - strh r5, [r4, #0x38] - b _0206FBBC -_0206FB9C: - mov r1, #1 - strb r1, [r4, #0xa] - ldrsb r0, [r4, #8] - cmp r0, #1 - bne _0206FBBC - mov r0, r4 - strb r1, [r4, #0x15] - bl FUN_0206fe5c -_0206FBBC: - mov r0, #0 - pop {r3, r4, r5, pc} - .align 2, 0 -_0206FBC4: .4byte 0x022B7330 - arm_func_end FUN_0206fae8 - - arm_func_start FUN_0206fbc8 -FUN_0206fbc8: @ 0x0206FBC8 - push {r4, r5, r6, r7, r8, lr} - ldr r0, _0206FC80 @ =0x022B9208 - ldr r4, [r0, #0x1cc] - cmp r4, #0 - popeq {r4, r5, r6, r7, r8, pc} - mov r7, #0 - mov r6, #9 - mov r5, r7 -_0206FBE8: - ldrsb r0, [r4, #0xa] - cmp r0, #0 - ldrsbne r0, [r4, #8] - cmpne r0, #0 - ldrhne r0, [r4, #0x38] - cmpne r0, #0 - beq _0206FC70 - sub r0, r0, #1 - strh r0, [r4, #0x38] - ldrh r0, [r4, #0x38] - cmp r0, #0 - ldreq r0, [r4, #0x34] - beq _0206FC28 - ldr r1, [r4, #0x2c] - ldr r0, [r4, #0x30] - add r0, r1, r0 -_0206FC28: - str r0, [r4, #0x2c] - ldrh r8, [r4, #0x38] - mov r0, r4 - bl FUN_0206fc84 - cmp r8, #0 - ldrsbeq r0, [r4, #0x14] - cmpeq r0, #1 - bne _0206FC70 - strb r7, [r4, #0xa] - mov r0, r4 - strb r7, [r4, #0x14] - bl FUN_0207009c - ldr r0, [r4] - ldr r3, [r4, #0x1fc] - ldr ip, [r4, #0x1f8] - mov r1, r6 - mov r2, r5 - blx ip -_0206FC70: - ldr r4, [r4, #0x500] - cmp r4, #0 - bne _0206FBE8 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0206FC80: .4byte 0x022B9208 - arm_func_end FUN_0206fbc8 - - arm_func_start FUN_0206fc84 -FUN_0206fc84: @ 0x0206FC84 - push {r4, r5, r6, lr} - ldr r1, [r0, #0x2c] - ldrb r2, [r0, #0xbc] - asr r1, r1, #0x10 - ldr r4, _0206FD20 @ =0x04000208 - mul r1, r2, r1 - ldrb r5, [r0, #0x22] - ldr r3, _0206FD24 @ =0x82061029 - ldrh r2, [r4] - mul ip, r5, r1 - smull r1, lr, r3, ip - mov r1, #0 - strh r1, [r4] - ldrb r4, [r0, #0x1f] - add lr, ip, lr - lsr r3, ip, #0x1f - add lr, r3, lr, asr #13 - mul r5, lr, lr - ldr lr, _0206FD28 @ =0x81020409 - lsr r3, r5, #0x1f - smull ip, r6, lr, r5 - add r6, r5, r6 - cmp r4, #0 - add r6, r3, r6, asr #6 - ble _0206FD10 -_0206FCE8: - add r3, r0, r1, lsl #2 - ldr ip, [r3, #0x1d8] - add r1, r1, #1 - str r6, [ip, #0x140] - ldrh r3, [ip, #6] - orr r3, r3, #0x20 - strh r3, [ip, #6] - ldrb r3, [r0, #0x1f] - cmp r1, r3 - blt _0206FCE8 -_0206FD10: - ldr r1, _0206FD20 @ =0x04000208 - ldrh r0, [r1] - strh r2, [r1] - pop {r4, r5, r6, pc} - .align 2, 0 -_0206FD20: .4byte 0x04000208 -_0206FD24: .4byte 0x82061029 -_0206FD28: .4byte 0x81020409 - arm_func_end FUN_0206fc84 - - arm_func_start FUN_0206fd2c -FUN_0206fd2c: @ 0x0206FD2C - cmp r0, #0 - moveq r0, #0 - bxeq lr - ldr r3, _0206FD80 @ =0x04000208 - mov r2, #0 - ldrh ip, [r3] - ldr r1, _0206FD84 @ =0x022B9208 - strh r2, [r3] - ldr r3, [r1, #0x1cc] - cmp r3, #0 - beq _0206FD6C -_0206FD58: - ldr r1, [r3] - cmp r1, r0 - ldrne r3, [r3, #0x500] - cmpne r3, #0 - bne _0206FD58 -_0206FD6C: - ldr r2, _0206FD80 @ =0x04000208 - mov r0, r3 - ldrh r1, [r2] - strh ip, [r2] - bx lr - .align 2, 0 -_0206FD80: .4byte 0x04000208 -_0206FD84: .4byte 0x022B9208 - arm_func_end FUN_0206fd2c - - arm_func_start FUN_0206fd88 -FUN_0206fd88: @ 0x0206FD88 - push {r4, lr} - ldr r1, _0206FDAC @ =0x022B9208 - mov r4, r0 - ldr r0, [r1, #0x1c8] - ldr r2, [r1, #0x1c4] - sub r1, r4, #0x10 - blx r2 - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_0206FDAC: .4byte 0x022B9208 - arm_func_end FUN_0206fd88 - - arm_func_start FUN_0206fdb0 -FUN_0206fdb0: @ 0x0206FDB0 - push {r3, lr} - ldr r0, _0206FDD8 @ =0x022B9208 - ldrsb r1, [r0, #0x2a] - cmp r1, #1 - ldrsbne r0, [r0, #0xf5] - cmpne r0, #0 - popeq {r3, pc} - ldr r0, _0206FDDC @ =0x022B9234 - bl FUN_02079940 - pop {r3, pc} - .align 2, 0 -_0206FDD8: .4byte 0x022B9208 -_0206FDDC: .4byte 0x022B9234 - arm_func_end FUN_0206fdb0 - - arm_func_start FUN_0206fde0 -FUN_0206fde0: @ 0x0206FDE0 - push {r3, lr} - ldr r2, _0206FE4C @ =0x022B7330 - ldr r1, _0206FE50 @ =0x022B9208 - ldrb ip, [r2, #0x738] - mov r3, #0 - ldr r0, _0206FE54 @ =0x022B9234 - bic ip, ip, #6 - strb ip, [r2, #0x738] - ldrb ip, [r2, #0x739] - strb r3, [r1, #0x29] - mov r3, #1 - orr ip, ip, #6 - strb ip, [r2, #0x739] - strb r3, [r1, #0x2a] - bl FUN_02079940 - ldr r0, _0206FE54 @ =0x022B9234 - bl FUN_02079800 - ldr r1, _0206FE50 @ =0x022B9208 - mov r2, #0 - ldr r0, _0206FE58 @ =0x022B9300 - strb r2, [r1, #0xf5] - mov r2, #1 - strb r2, [r1, #0xf6] - bl FUN_02079940 - ldr r0, _0206FE58 @ =0x022B9300 - bl FUN_02079800 - pop {r3, pc} - .align 2, 0 -_0206FE4C: .4byte 0x022B7330 -_0206FE50: .4byte 0x022B9208 -_0206FE54: .4byte 0x022B9234 -_0206FE58: .4byte 0x022B9300 - arm_func_end FUN_0206fde0 - - arm_func_start FUN_0206fe5c -FUN_0206fe5c: @ 0x0206FE5C - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #8 - mov sl, r0 - ldrsb r0, [sl, #0x12] - cmp r0, #1 - addeq sp, sp, #8 - moveq r0, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldrsb r0, [sl, #0x15] - add r5, sl, #0x1b8 - cmp r0, #1 - bne _0206FEB0 - ldr r1, [r5, #0xc] - ldr r2, [r5] - mov r0, #0 - bl FUN_0207c358 - ldr r0, [r5, #0xc] - ldr r1, [r5] - bl FUN_0207a2dc - mov r0, #0 - strb r0, [sl, #0x15] -_0206FEB0: - mov r0, #0 - strb r0, [r5, #0x2c] - ldr r1, [sl, #0x3c] - ldr r0, _02070080 @ =0x00FFB0FF - bl DivideUInt - mov r4, r0 - ldr r1, [r5, #8] - ldr r0, _02070084 @ =0x022B9208 - mul r1, r4, r1 - lsr r1, r1, #6 - str r0, [sp] - ldr r3, _02070088 @ =FUN_0206fdb0 - mov r2, r1 - mov r0, #2 - bl FUN_0207c984 - ldr r0, [sl, #0x2c] - ldrb r1, [sl, #0xbc] - asr r0, r0, #0x10 - ldrb r2, [sl, #0x22] - mul r0, r1, r0 - mul r6, r2, r0 - ldr r2, _0207008C @ =0x82061029 - ldr r0, _02070090 @ =0x04000208 - smull r1, r7, r2, r6 - ldr r3, [r5, #4] - add r7, r6, r7 - lsr r1, r6, #0x1f - add r7, r1, r7, asr #13 - ldrh r1, [r0] - mul r6, r7, r7 - ldr r2, _02070094 @ =0x81020409 - str r1, [sp, #4] - smull r1, sb, r2, r6 - add sb, r6, sb - lsr r1, r6, #0x1f - mov r6, #0 - strh r6, [r0] - ldrb r0, [sl, #0x1f] - lsr r8, r3, #2 - add sb, r1, sb, asr #6 - cmp r0, #0 - ble _0207000C - mvn fp, #0xc0000000 -_0206FF5C: - add r0, r5, r6, lsl #2 - ldr r7, [r0, #0x20] - mov r0, #0x1000 - strh r0, [r7, #4] - mov r0, #1 - strb r0, [r7, #0xc] - strb r0, [r7, #0x1f] - ldrb r0, [sl, #0x1e] - cmp r0, #1 - moveq r0, #0 - movne r0, r6 - add r0, r5, r0, lsl #2 - ldr r0, [r0, #0x10] - str r0, [r7, #0x30] - mov r0, #0 - str r0, [r7, #0x34] - str r8, [r7, #0x38] - mov r0, #1 - strb r0, [r7, #0x21] - str r4, [r7, #0x13c] - str sb, [r7, #0x140] - ldrb r0, [sl, #0x1e] - cmp r0, #1 - ldrne r0, _02070098 @ =0x022B7330 - ldrbne r0, [r0, #0x39] - cmpne r0, #1 - moveq r0, #0x40 - streq r0, [r7, #0x144] - beq _0206FFE0 - tst r6, #1 - moveq r0, #0 - movne r0, #0x7f - str r0, [r7, #0x144] -_0206FFE0: - add r0, r7, #0x3c - mov r1, fp - bl FUN_02074f1c - add r0, r7, #0x5c - bl FUN_0207509c - mov r0, #1 - strh r0, [r7, #6] - ldrb r0, [sl, #0x1f] - add r6, r6, #1 - cmp r6, r0 - blt _0206FF5C -_0207000C: - ldr r1, _02070098 @ =0x022B7330 - ldr r3, _02070090 @ =0x04000208 - ldrb r4, [r1, #0x739] - mov r2, #1 - mov r0, #0 - bic r4, r4, #4 - strb r4, [r1, #0x739] - ldrb r4, [r1, #0x738] - orr r4, r4, #4 - strb r4, [r1, #0x738] - ldrh r1, [r3] - ldr r1, [sp, #4] - strh r1, [r3] - strb r2, [sl, #0x12] - ldrb r1, [sl, #0x1e] - cmp r1, #0 - ble _02070074 - mov r2, r0 -_02070054: - add r1, sl, r0, lsl #2 - add r1, r1, #0x200 - strh r2, [r1, #0x10] - strh r2, [r1, #0x12] - ldrb r1, [sl, #0x1e] - add r0, r0, #1 - cmp r0, r1 - blt _02070054 -_02070074: - mov r0, #0 - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02070080: .4byte 0x00FFB0FF -_02070084: .4byte 0x022B9208 -_02070088: .4byte FUN_0206fdb0 -_0207008C: .4byte 0x82061029 -_02070090: .4byte 0x04000208 -_02070094: .4byte 0x81020409 -_02070098: .4byte 0x022B7330 - arm_func_end FUN_0206fe5c - - arm_func_start FUN_0207009c -FUN_0207009c: @ 0x0207009C - ldr r3, _0207011C @ =0x04000208 - mov ip, #0 - ldrh r1, [r3] - strh ip, [r3] - ldrsb r2, [r0, #0x12] - cmp r2, #0 - bne _020700C8 - ldrh r0, [r3] - mov r0, ip - strh r1, [r3] - bx lr -_020700C8: - strb ip, [r0, #0x12] - ldrb r2, [r0, #0x1f] - cmp r2, #0 - ble _020700F8 - mov r3, #2 -_020700DC: - add r2, r0, ip, lsl #2 - ldr r2, [r2, #0x1d8] - add ip, ip, #1 - strh r3, [r2, #6] - ldrb r2, [r0, #0x1f] - cmp ip, r2 - blt _020700DC -_020700F8: - ldr r2, _02070120 @ =0x022B7330 - ldr r3, _0207011C @ =0x04000208 - ldrb ip, [r2, #0x739] - mov r0, #0 - orr ip, ip, #4 - strb ip, [r2, #0x739] - ldrh r2, [r3] - strh r1, [r3] - bx lr - .align 2, 0 -_0207011C: .4byte 0x04000208 -_02070120: .4byte 0x022B7330 - arm_func_end FUN_0207009c - - arm_func_start FUN_02070124 -FUN_02070124: @ 0x02070124 - push {r3, lr} - ldr r0, _02070144 @ =0x022B7A30 - mov r1, #0 - strh r1, [r0, #0xe] - strh r1, [r0, #0x10] - bl FUN_020701f8 - mov r0, #0 - pop {r3, pc} - .align 2, 0 -_02070144: .4byte 0x022B7A30 - arm_func_end FUN_02070124 - - arm_func_start FUN_02070148 -FUN_02070148: @ 0x02070148 - push {r3, lr} - bl FUN_0207028c - mov r0, #0 - pop {r3, pc} - arm_func_end FUN_02070148 - - arm_func_start FUN_02070158 -FUN_02070158: @ 0x02070158 - push {r3, lr} - ldr r0, _02070184 @ =0x022B7A30 - ldrh r0, [r0, #0xe] - cmp r0, #0 - beq _0207017C - mov r0, #0 - mov r1, r0 - mov r2, r0 - bl FUN_020702f8 -_0207017C: - mov r0, #0 - pop {r3, pc} - .align 2, 0 -_02070184: .4byte 0x022B7A30 - arm_func_end FUN_02070158 - - arm_func_start FUN_02070188 -FUN_02070188: @ 0x02070188 - push {r3, lr} - ldr r0, _020701A8 @ =0x022B9484 - ldrsb r0, [r0, #0x24] - cmp r0, #0 - popeq {r3, pc} - ldr r0, _020701AC @ =0x022B9484 - bl FUN_020708f4 - pop {r3, pc} - .align 2, 0 -_020701A8: .4byte 0x022B9484 -_020701AC: .4byte 0x022B9484 - arm_func_end FUN_02070188 - - arm_func_start FUN_020701b0 -FUN_020701b0: @ 0x020701B0 - push {r3, lr} - ldr r0, _020701F0 @ =0x022B9484 - ldrsb r0, [r0, #0x24] - cmp r0, #0 - popeq {r3, pc} - ldr r0, _020701F4 @ =0x022B9484 - mov r1, #0 - mov r2, #1 - bl FlushChannels - ldr r0, _020701F4 @ =0x022B9484 - mov r1, #1 - mov r2, #3 - bl FlushChannels - ldr r0, _020701F4 @ =0x022B9484 - bl FUN_020706e8 - pop {r3, pc} - .align 2, 0 -_020701F0: .4byte 0x022B9484 -_020701F4: .4byte 0x022B9484 - arm_func_end FUN_020701b0 - - arm_func_start FUN_020701f8 -FUN_020701f8: @ 0x020701F8 - push {r3, lr} - sub sp, sp, #8 - ldr r3, _02070278 @ =0x022B9484 - mov ip, #0 - str ip, [r3] - str ip, [r3, #8] - strb ip, [r3, #0x24] - strb ip, [r3, #0x25] - ldr r2, _0207027C @ =0x78667473 - mov r0, #0x400 - mov r1, #0x10 - strb ip, [r3, #0x26] - bl FUN_0206cacc - ldr r2, _02070278 @ =0x022B9484 - mov r1, #0x400 - str r0, [r2, #0x34] - ldr r0, _02070280 @ =0x022B8330 - str r1, [sp] - ldrb r3, [r0, #0xd10] - ldr r0, _02070284 @ =0x022B94BC - ldr r1, _02070288 @ =FUN_020709a0 - add r3, r3, #1 - str r3, [sp, #4] - ldr r3, [r2, #0x34] - mov r2, #0 - add r3, r3, #0x400 - bl FUN_02079560 - ldr r0, _02070284 @ =0x022B94BC - bl FUN_02079940 - mov r0, #0 - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_02070278: .4byte 0x022B9484 -_0207027C: .4byte 0x78667473 -_02070280: .4byte 0x022B8330 -_02070284: .4byte 0x022B94BC -_02070288: .4byte FUN_020709a0 - arm_func_end FUN_020701f8 - - arm_func_start FUN_0207028c -FUN_0207028c: @ 0x0207028C - push {r4, lr} - mov r0, #0 - mov r1, r0 - mov r2, r0 - bl FUN_020702f8 - ldr r0, _020702EC @ =0x022B9484 - mov r1, #1 - ldr r2, _020702F0 @ =0x04000208 - strb r1, [r0, #0x26] - ldrh r4, [r2] - mov r1, #0 - ldr r0, _020702F4 @ =0x022B94BC - strh r1, [r2] - bl FUN_02079940 - ldr r2, _020702F0 @ =0x04000208 - ldr r0, _020702F4 @ =0x022B94BC - ldrh r1, [r2] - strh r4, [r2] - bl FUN_02079800 - ldr r0, _020702EC @ =0x022B9484 - ldr r0, [r0, #0x34] - bl FUN_0206cc14 - mov r0, #0 - pop {r4, pc} - .align 2, 0 -_020702EC: .4byte 0x022B9484 -_020702F0: .4byte 0x04000208 -_020702F4: .4byte 0x022B94BC - arm_func_end FUN_0207028c - - arm_func_start FUN_020702f8 -FUN_020702f8: @ 0x020702F8 - push {r4, r5, r6, r7, r8, lr} - ldr r3, _02070648 @ =0x0000FFFF - mov r8, r1 - cmp r8, r3 - moveq r0, #0 - popeq {r4, r5, r6, r7, r8, pc} - cmp r8, #0 - ldreq r1, _0207064C @ =0x022B9484 - ldrheq r1, [r1, #0x1c] - cmpeq r1, #0 - moveq r0, #0 - popeq {r4, r5, r6, r7, r8, pc} - cmp r8, #0 - beq _02070370 - cmp r0, #1 - blo _02070350 - mov r1, #0 - mov r2, r1 - mvn r0, #0x17 - bl FUN_0206c854 - mvn r0, #0x17 - pop {r4, r5, r6, r7, r8, pc} -_02070350: - tst r8, #0xff00 - bne _02070370 - mov r1, #0 - mov r2, r1 - mvn r0, #0x17 - bl FUN_0206c854 - mvn r0, #0x17 - pop {r4, r5, r6, r7, r8, pc} -_02070370: - cmp r2, #0 - moveq r7, #0 - moveq r6, r7 - moveq r5, r7 - beq _02070390 - ldrb r5, [r2] - ldrb r6, [r2, #1] - ldrb r7, [r2, #2] -_02070390: - mov r1, #0xc - mul r1, r0, r1 - ldr r2, _02070650 @ =0x022B7A3E - ldr r0, _02070654 @ =0x022B9484 - strh r8, [r2, r1] - add r1, r2, r1 - strh r5, [r1, #2] - strh r6, [r1, #8] - strh r7, [r1, #0xa] - bl FUN_020708f4 - ldr r0, _0207064C @ =0x022B9484 - mov r1, #0 - strb r1, [r0, #0x24] - ldr r0, [r0] - cmp r0, #0 - beq _020703E0 - bl FUN_0206cc14 - ldr r0, _0207064C @ =0x022B9484 - mov r1, #0 - str r1, [r0] -_020703E0: - ldr r0, _0207064C @ =0x022B9484 - ldr r0, [r0, #8] - cmp r0, #0 - beq _02070400 - bl FUN_0206cc14 - ldr r0, _0207064C @ =0x022B9484 - mov r1, #0 - str r1, [r0, #8] -_02070400: - cmp r8, #0 - bgt _02070410 - beq _0207051C - b _02070514 -_02070410: - sub r0, r8, #0x300 - cmp r0, #5 - addls pc, pc, r0, lsl #2 - b _02070514 -_02070420: @ jump table - b _02070438 @ case 0 - b _02070458 @ case 1 - b _02070480 @ case 2 - b _020704A8 @ case 3 - b _020704C4 @ case 4 - b _020704EC @ case 5 -_02070438: - ldr r0, _0207064C @ =0x022B9484 - ldr r1, _02070658 @ =0x02070A44 - strb r5, [r0, #0x1e] - cmp r6, #0 - moveq r8, #0 - str r1, [r0, #0x30] - mov r4, #0 - b _0207051C -_02070458: - ldr r0, _0207064C @ =0x022B9484 - mov r1, #0x7f - strb r1, [r0, #0x1e] - ldr r1, _0207065C @ =FUN_02070a9c - strb r5, [r0, #0x21] - cmp r6, #0 - moveq r8, #0 - str r1, [r0, #0x30] - mov r4, #1 - b _0207051C -_02070480: - ldr r0, _0207064C @ =0x022B9484 - mov r1, #0x7f - strb r1, [r0, #0x1e] - ldr r1, _02070660 @ =FUN_02070b74 - strb r5, [r0, #0x21] - cmp r6, #0 - moveq r8, #0 - str r1, [r0, #0x30] - mov r4, #1 - b _0207051C -_020704A8: - ldr r0, _0207064C @ =0x022B9484 - mov r2, #0x7f - ldr r1, _02070664 @ =0x02070C30 - strb r2, [r0, #0x1e] - str r1, [r0, #0x30] - mov r4, #0 - b _0207051C -_020704C4: - ldr r0, _0207064C @ =0x022B9484 - mov r1, #0x7f - strb r1, [r0, #0x1e] - ldr r1, _02070668 @ =FUN_02070c58 - strb r5, [r0, #0x21] - cmp r6, #0 - moveq r8, #0 - str r1, [r0, #0x30] - mov r4, #1 - b _0207051C -_020704EC: - ldr r0, _0207064C @ =0x022B9484 - mov r1, #0x7f - strb r1, [r0, #0x1e] - ldr r1, _0207066C @ =FUN_02070d44 - strb r5, [r0, #0x21] - cmp r6, #0 - moveq r8, #0 - str r1, [r0, #0x30] - mov r4, #1 - b _0207051C -_02070514: - mvn r0, #0x5f - pop {r4, r5, r6, r7, r8, pc} -_0207051C: - cmp r8, #0 - beq _02070640 - mov r0, #0xc0 - mul r5, r7, r0 - lsl r0, r6, #8 - add r1, r0, r0, lsr #31 - ldr r3, _0207064C @ =0x022B9484 - asr r6, r1, #1 - str r0, [r3, #0x10] - add r1, r6, r6, lsr #31 - ldr r2, _02070670 @ =0x81020409 - str r6, [r3, #0x14] - asr r1, r1, #1 - str r1, [r3, #0x18] - smull r1, r6, r2, r5 - strh r8, [r3, #0x1c] - add r6, r5, r6 - lsr r1, r5, #0x1f - add r6, r1, r6, asr #6 - strb r7, [r3, #0x1f] - add r1, r6, #0x40 - strh r1, [r3, #0x22] - ldr r2, [r3] - cmp r2, #0 - bne _0207059C - mov r1, #0x20 - bl FUN_0206c9a8 - movs r2, r0 - ldr r0, _0207064C @ =0x022B9484 - str r2, [r0] - mvneq r0, #0x7f - popeq {r4, r5, r6, r7, r8, pc} -_0207059C: - ldr r0, _0207064C @ =0x022B9484 - cmp r4, #1 - ldr r1, [r0, #0x14] - add r1, r2, r1 - str r1, [r0, #4] - bne _02070604 - ldr r0, [r0, #0x10] - mov r1, #0x20 - bl FUN_0206c9a8 - ldr r1, _0207064C @ =0x022B9484 - cmp r0, #0 - str r0, [r1, #8] - bne _020705F8 - ldr r0, [r1] - bl FUN_0206cc14 - mov r1, #0 - ldr r3, _0207064C @ =0x022B9484 - mov r2, r1 - sub r0, r1, #0x80 - str r1, [r3] - bl FUN_0206c854 - mvn r0, #0x7f - pop {r4, r5, r6, r7, r8, pc} -_020705F8: - ldr r2, [r1, #0x14] - add r0, r0, r2 - str r0, [r1, #0xc] -_02070604: - ldr r3, _0207064C @ =0x022B9484 - mov r1, #0 - ldr r0, _02070654 @ =0x022B9484 - mov r2, #1 - strb r1, [r3, #0x20] - bl FlushChannels - ldr r0, _02070654 @ =0x022B9484 - mov r1, #1 - mov r2, #3 - bl FlushChannels - ldr r0, _02070654 @ =0x022B9484 - bl FUN_020706e8 - ldr r0, _0207064C @ =0x022B9484 - mov r1, #1 - strb r1, [r0, #0x24] -_02070640: - mov r0, #0 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02070648: .4byte 0x0000FFFF -_0207064C: .4byte 0x022B9484 -_02070650: .4byte 0x022B7A3E -_02070654: .4byte 0x022B9484 -_02070658: .4byte 0x02070A44 -_0207065C: .4byte FUN_02070a9c -_02070660: .4byte FUN_02070b74 -_02070664: .4byte 0x02070C30 -_02070668: .4byte FUN_02070c58 -_0207066C: .4byte FUN_02070d44 -_02070670: .4byte 0x81020409 - arm_func_end FUN_020702f8 - - arm_func_start FlushChannels -FlushChannels: @ 0x02070674 - push {r3, r4, r5, r6, r7, lr} - ldr r4, _020706E0 @ =0x022B7A6C - mov r3, #0x15c - mla r5, r2, r3, r4 - ldr r3, _020706E4 @ =0x04000208 - mov r7, r0 - ldrh r4, [r3] - mov r2, #0 - mov r0, r5 - mov r6, r1 - strh r2, [r3] - bl FUN_020748a0 - add r0, r5, #0x3c - mvn r1, #0xc0000000 - bl FUN_02074f1c - add r0, r5, #0x5c - bl FUN_0207509c - mov r0, #0 - strh r0, [r5, #6] - mov r0, #0x10 - strb r0, [r5, #0x14e] - add r0, r7, r6, lsl #2 - ldr r1, _020706E4 @ =0x04000208 - str r5, [r0, #0x28] - ldrh r0, [r1] - strh r4, [r1] - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_020706E0: .4byte 0x022B7A6C -_020706E4: .4byte 0x04000208 - arm_func_end FlushChannels - - arm_func_start FUN_020706e8 -FUN_020706e8: @ 0x020706E8 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x10 - mov r4, r0 - ldr r6, [r4, #0x18] - mov r7, #0 - strb r7, [r4, #0x20] - ldrh r3, [r4, #0x1c] - add r5, r6, #0x20 - lsr r6, r6, #1 - sub r3, r3, #0x300 - lsr r5, r5, #1 - lsl r8, r6, #9 - lsl r6, r5, #9 - cmp r3, #7 - lsr r5, r8, #5 - lsr r6, r6, #5 - addls pc, pc, r3, lsl #2 - b _0207077C -_02070730: @ jump table - b _02070750 @ case 0 - b _02070760 @ case 1 - b _02070760 @ case 2 - b _02070770 @ case 3 - b _02070770 @ case 4 - b _02070770 @ case 5 - b _02070770 @ case 6 - b _02070770 @ case 7 -_02070750: - mov r0, r7 - mov r1, r7 - mov r2, r7 - b _0207077C -_02070760: - mov r0, #1 - mov r2, r0 - mov r1, #2 - b _0207077C -_02070770: - mov r0, #1 - mov r2, r0 - mov r1, #2 -_0207077C: - mov r3, r2 - bl FUN_0207cb54 - mov r1, #1 - mov r0, #0 - str r1, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - ldr r3, [r4, #0x14] - ldr r2, [r4] - mov r1, r0 - lsr r3, r3, #2 - bl FUN_0207c944 - mov r0, #1 - str r0, [sp] - mov r1, #0 - str r1, [sp, #4] - str r1, [sp, #8] - ldr r3, [r4, #0x14] - ldr r2, [r4, #4] - lsr r3, r3, #2 - bl FUN_0207c944 - ldr r3, _020708E4 @ =0x0207098C - mov r1, r6 - mov r2, r5 - mov r0, #4 - str r4, [sp] - bl FUN_0207c984 - ldr r1, _020708E8 @ =0x04000208 - mov sb, #0 - ldrh r0, [r1] - str r0, [sp, #0xc] - strh sb, [r1] - mov r5, #1 - mov r7, sb - mvn r6, #0xc0000000 - mov r8, #0x1000 - mov fp, r5 -_02070810: - add r0, r4, sb, lsl #2 - ldr sl, [r0, #0x28] - cmp sb, #0 - strh r8, [sl, #4] - strb fp, [sl, #0xc] - strb fp, [sl, #0x1f] - ldreq r0, [r4] - mov r1, r6 - ldrne r0, [r4, #4] - tst sb, #1 - str r0, [sl, #0x30] - str r7, [sl, #0x34] - ldr r0, [r4, #0x14] - lsr r0, r0, #2 - str r0, [sl, #0x38] - mov r0, #1 - strb r0, [sl, #0x21] - mov r0, #0x200 - str r0, [sl, #0x13c] - ldrb r0, [r4, #0x1e] - str r0, [sl, #0x140] - moveq r0, r7 - movne r0, #0x7f - str r0, [sl, #0x144] - add r0, sl, #0x3c - bl FUN_02074f1c - add r0, sl, #0x5c - bl FUN_0207509c - add sb, sb, #1 - strh r5, [sl, #6] - cmp sb, #2 - blt _02070810 - ldr r1, _020708EC @ =0x022B7330 - ldr r0, _020708F0 @ =0x022B9484 - ldrb r3, [r1, #0x739] - strb r5, [r0, #0x25] - ldr r2, _020708E8 @ =0x04000208 - bic r0, r3, #0x10 - strb r0, [r1, #0x739] - ldrb r0, [r1, #0x73b] - bic r0, r0, #3 - strb r0, [r1, #0x73b] - ldrb r0, [r1, #0x738] - orr r0, r0, #0x10 - strb r0, [r1, #0x738] - ldrb r0, [r1, #0x73a] - orr r0, r0, #3 - strb r0, [r1, #0x73a] - ldrh r0, [r2] - ldr r0, [sp, #0xc] - strh r0, [r2] - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_020708E4: .4byte 0x0207098C -_020708E8: .4byte 0x04000208 -_020708EC: .4byte 0x022B7330 -_020708F0: .4byte 0x022B9484 - arm_func_end FUN_020706e8 - - arm_func_start FUN_020708f4 -FUN_020708f4: @ 0x020708F4 - push {r4, r5, r6, lr} - ldr r1, _02070980 @ =0x022B9484 - mov r6, r0 - ldrsb r0, [r1, #0x25] - cmp r0, #0 - popeq {r4, r5, r6, pc} - mov r5, #0 - ldr r0, _02070984 @ =0x04000208 - strb r5, [r1, #0x25] - ldrh r4, [r0] - strh r5, [r0] -_02070920: - add r0, r6, r5, lsl #2 - ldr r0, [r0, #0x28] - cmp r0, #0 - beq _02070934 - bl FUN_020748a0 -_02070934: - add r5, r5, #1 - cmp r5, #2 - blt _02070920 - ldr ip, _02070988 @ =0x022B7330 - mov r0, #0 - ldrb r2, [ip, #0x739] - ldr lr, _02070984 @ =0x04000208 - mov r1, r0 - orr r2, r2, #0x10 - strb r2, [ip, #0x739] - ldrb r5, [ip, #0x73b] - mov r2, r0 - mov r3, r0 - orr r5, r5, #3 - strb r5, [ip, #0x73b] - ldrh ip, [lr] - strh r4, [lr] - bl FUN_0207cb54 - pop {r4, r5, r6, pc} - .align 2, 0 -_02070980: .4byte 0x022B9484 -_02070984: .4byte 0x04000208 -_02070988: .4byte 0x022B7330 - arm_func_end FUN_020708f4 -_0207098C: - .byte 0x04, 0xC0, 0x9F, 0xE5 - .byte 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x40, 0x99, 0x07, 0x02, 0xBC, 0x94, 0x2B, 0x02 - - arm_func_start FUN_020709a0 -FUN_020709a0: @ 0x020709A0 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr r5, _02070A3C @ =0x022B9484 - ldr r4, _02070A40 @ =0x022B9484 - mov fp, #1 - mov r6, #0 -_020709B4: - mov r0, r6 - bl FUN_02079888 - ldrsb r0, [r4, #0x26] - cmp r0, #1 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldrsb r0, [r4, #0x25] - cmp r0, #1 - bne _020709B4 - ldrb r7, [r4, #0x20] - ldr sl, [r4, #0x18] - ldr sb, [r4] - cmp r7, #1 - ldr r8, [r4, #4] - addeq sb, sb, sl - addeq r8, r8, sl - ldr ip, [r4, #0x30] - mov r0, r5 - mov r1, sb - mov r2, r8 - mov r3, sl - blx ip - mov r0, sb - mov r1, sl - bl FUN_0207a2dc - mov r0, r8 - mov r1, sl - bl FUN_0207a2dc - bl FUN_0207a300 - cmp r7, #0 - moveq r0, fp - movne r0, #0 - strb r0, [r4, #0x20] - b _020709B4 -_02070A38: - .byte 0xF8, 0x8F, 0xBD, 0xE8 -_02070A3C: .4byte 0x022B9484 -_02070A40: .4byte 0x022B9484 - arm_func_end FUN_020709a0 -_02070A44: - .byte 0x08, 0x40, 0x2D, 0xE9, 0x1F, 0x00, 0xD0, 0xE5, 0xC3, 0xC0, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x5C, 0xE3, 0x80, 0xE0, 0x80, 0xE2, 0x08, 0x80, 0xBD, 0xD8, 0xF0, 0x00, 0xD1, 0xE1 - .byte 0x01, 0xC0, 0x4C, 0xE2, 0x00, 0x00, 0x5C, 0xE3, 0x90, 0x0E, 0x03, 0xE0, 0xC3, 0x03, 0xA0, 0xE1 - .byte 0x20, 0x0C, 0x83, 0xE0, 0x40, 0x04, 0xA0, 0xE1, 0xB2, 0x00, 0xC1, 0xE0, 0xF0, 0x00, 0xD2, 0xE1 - .byte 0x90, 0x0E, 0x03, 0xE0, 0xC3, 0x03, 0xA0, 0xE1, 0x20, 0x0C, 0x83, 0xE0, 0x40, 0x04, 0xA0, 0xE1 - .byte 0xB2, 0x00, 0xC2, 0xE0, 0xF0, 0xFF, 0xFF, 0xCA, 0x08, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_02070a9c -FUN_02070a9c: @ 0x02070A9C - push {r4, r5, r6, r7, r8, sb, sl, lr} - ldrb r5, [r0, #0x20] - ldr lr, [r0, #8] - ldr r4, [r0, #0xc] - cmp r5, #1 - biceq r5, r3, #1 - ldrh r6, [r0, #0x22] - ldrb r7, [r0, #0x21] - addeq lr, lr, r5 - addeq r4, r4, r5 - asr r5, r3, #1 - cmp r5, #0 - pople {r4, r5, r6, r7, r8, sb, sl, pc} - mov r3, #0x8000 - rsb r3, r3, #0 - lsr ip, r3, #0x11 -_02070ADC: - ldrsh r8, [lr] - ldrsh r0, [r1] - sub r5, r5, #1 - mul sl, r8, r6 - mul sb, sl, r7 - asr r8, sl, #7 - add r8, sl, r8, lsr #24 - asr r8, r8, #8 - add r8, r8, r0, asr #8 - add r0, r0, sb, asr #7 - cmp r0, r3, lsr #17 - strh r8, [lr] - movgt r0, ip - bgt _02070B1C - cmp r0, r3 - movlt r0, r3 -_02070B1C: - strh r0, [r1], #2 - ldrsh r8, [r4] - ldrsh r0, [r2] - add lr, lr, #2 - mul sl, r8, r6 - mul sb, sl, r7 - asr r8, sl, #7 - add r8, sl, r8, lsr #24 - asr r8, r8, #8 - add r8, r8, r0, asr #8 - add r0, r0, sb, asr #7 - cmp r0, r3, lsr #17 - strh r8, [r4] - movgt r0, ip - bgt _02070B60 - cmp r0, r3 - movlt r0, r3 -_02070B60: - cmp r5, #0 - strh r0, [r2], #2 - add r4, r4, #2 - bgt _02070ADC - pop {r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_end FUN_02070a9c - - arm_func_start FUN_02070b74 -FUN_02070b74: @ 0x02070B74 - push {r4, r5, r6, r7, r8, sb, sl, lr} - ldrb r4, [r0, #0x20] - ldr lr, [r0, #8] - ldrh r5, [r0, #0x22] - cmp r4, #1 - biceq r4, r3, #1 - addeq lr, lr, r4 - asr r4, r3, #1 - ldrb r6, [r0, #0x21] - cmp r4, #0 - pople {r4, r5, r6, r7, r8, sb, sl, pc} - mov r0, #0x8000 - rsb r0, r0, #0 - lsr r3, r0, #0x11 -_02070BAC: - ldrsh r8, [lr] - ldrsh ip, [r1] - ldrsh r7, [r2] - mul sb, r8, r5 - mul sl, sb, r6 - asr r8, sb, #7 - add sb, sb, r8, lsr #24 - asr r8, sl, #6 - add sl, sl, r8, lsr #25 - add r8, ip, sl, asr #7 - cmp r8, r0, lsr #17 - add ip, ip, r7 - asr sb, sb, #8 - add sb, sb, ip, asr #9 - strh sb, [lr] - sub r4, r4, #1 - movgt r8, r3 - bgt _02070BFC - cmp r8, r0 - movlt r8, r0 -_02070BFC: - add r7, r7, sl, asr #7 - cmp r7, r0, lsr #17 - strh r8, [r1] - movgt r7, r3 - bgt _02070C18 - cmp r7, r0 - movlt r7, r0 -_02070C18: - cmp r4, #0 - strh r7, [r2], #2 - add r1, r1, #2 - add lr, lr, #2 - bgt _02070BAC - pop {r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_end FUN_02070b74 -_02070C30: - .byte 0xC3, 0x20, 0xA0, 0xE1, 0x00, 0x00, 0x52, 0xE3, 0x1E, 0xFF, 0x2F, 0xD1, 0xF0, 0x00, 0xD1, 0xE1 - .byte 0x01, 0x20, 0x42, 0xE2, 0x00, 0x00, 0x52, 0xE3, 0x00, 0x00, 0x60, 0xE2, 0xB2, 0x00, 0xC1, 0xE0 - .byte 0xF9, 0xFF, 0xFF, 0xCA, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02070c58 -FUN_02070c58: @ 0x02070C58 - push {r4, r5, r6, r7, r8, sb, sl, lr} - ldrb r5, [r0, #0x20] - ldr lr, [r0, #8] - ldr r4, [r0, #0xc] - cmp r5, #1 - biceq r5, r3, #1 - ldrh r6, [r0, #0x22] - ldrb r7, [r0, #0x21] - addeq lr, lr, r5 - addeq r4, r4, r5 - asr r5, r3, #1 - cmp r5, #0 - pople {r4, r5, r6, r7, r8, sb, sl, pc} - mov r3, #0x8000 - rsb r3, r3, #0 - lsr ip, r3, #0x11 -_02070C98: - ldrsh r8, [lr] - ldrsh r0, [r1] - sub r5, r5, #1 - mul sl, r8, r6 - mul sb, sl, r7 - asr r8, sl, #7 - add r8, sl, r8, lsr #24 - asr r8, r8, #8 - add r8, r8, r0, asr #8 - add r0, r0, sb, asr #7 - cmp r0, r3, lsr #17 - strh r8, [lr] - movgt r0, ip - bgt _02070CD8 - cmp r0, r3 - movlt r0, r3 -_02070CD8: - strh r0, [r1], #2 - ldrsh r8, [r4] - ldrsh r0, [r2] - add lr, lr, #2 - mul sl, r8, r6 - mul sb, sl, r7 - asr r8, sl, #7 - add r8, sl, r8, lsr #24 - asr r8, r8, #8 - add r8, r8, r0, asr #8 - add r0, r0, sb, asr #7 - cmp r0, r3, lsr #17 - strh r8, [r4] - movgt r0, ip - bgt _02070D1C - cmp r0, r3 - movlt r0, r3 -_02070D1C: - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - rsb r0, r0, #0 - cmp r5, #0 - strh r0, [r2], #2 - add r4, r4, #2 - bgt _02070C98 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_end FUN_02070c58 - - arm_func_start FUN_02070d44 -FUN_02070d44: @ 0x02070D44 - push {r4, r5, r6, r7, r8, sb, sl, lr} - ldrb r4, [r0, #0x20] - ldr lr, [r0, #8] - ldrh r5, [r0, #0x22] - cmp r4, #1 - biceq r4, r3, #1 - addeq lr, lr, r4 - asr r4, r3, #1 - ldrb r6, [r0, #0x21] - cmp r4, #0 - pople {r4, r5, r6, r7, r8, sb, sl, pc} - mov r0, #0x8000 - rsb r0, r0, #0 - lsr r3, r0, #0x11 -_02070D7C: - ldrsh r8, [lr] - ldrsh ip, [r1] - ldrsh r7, [r2] - mul sb, r8, r5 - mul sl, sb, r6 - asr r8, sb, #7 - add sb, sb, r8, lsr #24 - add r8, ip, sl, asr #7 - cmp r8, r0, lsr #17 - add ip, ip, r7 - asr sb, sb, #8 - add sb, sb, ip, asr #9 - strh sb, [lr] - sub r4, r4, #1 - movgt r8, r3 - bgt _02070DC4 - cmp r8, r0 - movlt r8, r0 -_02070DC4: - add r7, r7, sl, asr #7 - cmp r7, r0, lsr #17 - strh r8, [r1] - movgt r7, r3 - bgt _02070DE0 - cmp r7, r0 - movlt r7, r0 -_02070DE0: - lsl r7, r7, #0x10 - lsr r7, r7, #0x10 - lsl r7, r7, #0x10 - asr r7, r7, #0x10 - rsb r7, r7, #0 - cmp r4, #0 - strh r7, [r2], #2 - add lr, lr, #2 - add r1, r1, #2 - bgt _02070D7C - pop {r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_end FUN_02070d44 - - arm_func_start FUN_02070e0c -FUN_02070e0c: @ 0x02070E0C - push {r3, lr} - sub sp, sp, #8 - ldr r3, _02070E90 @ =0x022B8330 - ldrb r0, [r3, #0xd10] - cmp r0, #0 - beq _02070E84 - mov ip, #0 - strb ip, [r3, #0xd12] - mov r0, #1 - strb r0, [r3, #0xd11] - ldr r2, _02070E94 @ =0x72637473 - mov r0, #0x800 - mov r1, #0x10 - strb ip, [r3, #0xd13] - bl FUN_0206cacc - ldr r2, _02070E90 @ =0x022B8330 - mov r1, #0x800 - str r0, [r2, #0xdd4] - str r1, [sp] - ldrb r3, [r2, #0xd10] - ldr r0, _02070E98 @ =0x022B9044 - ldr r1, _02070E9C @ =0x02071014 - str r3, [sp, #4] - ldr r3, [r2, #0xdd4] - mov r2, #0 - add r3, r3, #0x800 - bl FUN_02079560 - ldr r0, _02070E98 @ =0x022B9044 - bl FUN_02079940 - bl FUN_02070edc -_02070E84: - mov r0, #0 - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_02070E90: .4byte 0x022B8330 -_02070E94: .4byte 0x72637473 -_02070E98: .4byte 0x022B9044 -_02070E9C: .4byte 0x02071014 - arm_func_end FUN_02070e0c - - arm_func_start FUN_02070ea0 -FUN_02070ea0: @ 0x02070EA0 - push {r3, lr} - bl FUN_02070f4c - ldr r1, _02070ED4 @ =0x022B8330 - mov r2, #0 - ldr r0, _02070ED8 @ =0x022B9044 - strb r2, [r1, #0xd11] - bl FUN_02079940 - ldr r0, _02070ED8 @ =0x022B9044 - bl FUN_02079800 - ldr r0, _02070ED4 @ =0x022B8330 - ldr r0, [r0, #0xdd4] - bl FUN_0206cc14 - pop {r3, pc} - .align 2, 0 -_02070ED4: .4byte 0x022B8330 -_02070ED8: .4byte 0x022B9044 - arm_func_end FUN_02070ea0 - - arm_func_start FUN_02070edc -FUN_02070edc: @ 0x02070EDC - push {r3, lr} - ldr r0, _02070F3C @ =0x022B8330 - add r0, r0, #0xd00 - ldrsb r0, [r0, #0xd8] - cmp r0, #0 - bne _02070F34 - ldr r1, _02070F40 @ =0x00001474 - ldr ip, _02070F44 @ =0x022B7330 - ldr r3, _02070F48 @ =0x02070FD4 - mov r2, r1 - mov r0, #0 - str ip, [sp] - bl FUN_0207c984 - mov r0, #0 - mov r1, r0 - mov r3, r0 - mov r2, #1 - bl FUN_0207c8b8 - mov r0, #1 - bl FUN_0207cf14 - mov r0, #1 - bl FUN_0207cd44 -_02070F34: - mov r0, #0 - pop {r3, pc} - .align 2, 0 -_02070F3C: .4byte 0x022B8330 -_02070F40: .4byte 0x00001474 -_02070F44: .4byte 0x022B7330 -_02070F48: .4byte 0x02070FD4 - arm_func_end FUN_02070edc - - arm_func_start FUN_02070f4c -FUN_02070f4c: @ 0x02070F4C - push {r3, lr} - mov r1, #0 - ldr r0, _02070FC4 @ =0x0000FFFF - mov r3, r1 - mov r2, #1 - bl FUN_0207c8e0 - ldr r0, _02070FC8 @ =0x022B8330 - add r0, r0, #0xd00 - ldrsb r0, [r0, #0xd8] - cmp r0, #0 - bne _02070F90 - mov r0, #0 - mov r1, r0 - mov r2, r0 - mov r3, r0 - str r0, [sp] - bl FUN_0207c984 -_02070F90: - mov r0, #1 - bl FUN_0207cf14 - mov r0, #1 - bl FUN_0207cd44 - ldr r2, _02070FCC @ =0x022B7A30 - mov r0, #0 - strh r0, [r2, #0x30] - strh r0, [r2, #0x34] - ldr r1, _02070FD0 @ =0x022B7330 - strh r0, [r2, #0x32] - strb r0, [r1, #0x739] - strb r0, [r1, #0x738] - pop {r3, pc} - .align 2, 0 -_02070FC4: .4byte 0x0000FFFF -_02070FC8: .4byte 0x022B8330 -_02070FCC: .4byte 0x022B7A30 -_02070FD0: .4byte 0x022B7330 - arm_func_end FUN_02070f4c -_02070FD4: - .byte 0x08, 0x40, 0x2D, 0xE9, 0x2C, 0x10, 0x9F, 0xE5, 0x0D, 0x0C, 0x81, 0xE2 - .byte 0xD1, 0x21, 0xD0, 0xE1, 0x00, 0x00, 0x52, 0xE3, 0x08, 0x80, 0xBD, 0x08, 0xD3, 0x01, 0xD0, 0xE1 - .byte 0x01, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18, 0x10, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x13, 0x2D, 0xC1, 0xE5, 0x4D, 0x22, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x30, 0x83, 0x2B, 0x02 - .byte 0x44, 0x90, 0x2B, 0x02, 0xF8, 0x4F, 0x2D, 0xE9, 0x2C, 0x81, 0x9F, 0xE5, 0x2C, 0x71, 0x9F, 0xE5 - .byte 0x2C, 0x61, 0x9F, 0xE5, 0x0D, 0x4C, 0x88, 0xE2, 0x0E, 0x5C, 0x88, 0xE2, 0x01, 0xB0, 0xA0, 0xE3 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x13, 0xBD, 0xC8, 0xE5, 0x12, 0x22, 0x00, 0xEB, 0xD0, 0x0D, 0xD5, 0xE1 - .byte 0x01, 0x00, 0x50, 0xE3, 0x21, 0x00, 0x00, 0x1A, 0xA5, 0x27, 0x00, 0xEB, 0xC8, 0x2E, 0x98, 0xE5 - .byte 0xCC, 0x1E, 0x98, 0xE5, 0x02, 0xA0, 0x40, 0xE0, 0x02, 0x00, 0x51, 0xE1, 0x02, 0x10, 0x41, 0xE0 - .byte 0x01, 0x18, 0x81, 0x32, 0xC8, 0x0E, 0x88, 0xE5, 0x01, 0x00, 0xA0, 0xE1, 0x9E, 0x79, 0x00, 0xEB - .byte 0x00, 0x90, 0xA0, 0xE1, 0x0A, 0x00, 0xA0, 0xE1, 0x9B, 0x79, 0x00, 0xEB, 0x00, 0x10, 0xA0, 0xE1 - .byte 0x09, 0x00, 0xA0, 0xE1, 0x6A, 0x78, 0x00, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0xC4, 0x00, 0x9F, 0xE5 - .byte 0xA7, 0x79, 0x00, 0xEB, 0x00, 0x90, 0xA0, 0xE1, 0xF4, 0x0C, 0xD7, 0xE1, 0x09, 0x10, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xB3, 0xC0, 0x0E, 0x88, 0xB5, 0xBC, 0x9E, 0x88, 0xE5 - .byte 0xC0, 0x0E, 0x98, 0xE5, 0x44, 0x78, 0x00, 0xEB, 0xC0, 0x9E, 0x88, 0x35, 0x64, 0x00, 0xA0, 0x33 - .byte 0xB4, 0x0C, 0xC7, 0x31, 0xF4, 0x0C, 0xD7, 0xE1, 0x01, 0x00, 0x40, 0xE2, 0xB4, 0x0C, 0xC7, 0xE1 - .byte 0xD1, 0x01, 0xD4, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0xF8, 0x8F, 0xBD, 0x08, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x17, 0x2F, 0x00, 0xEB, 0x2C, 0x00, 0x96, 0xE5, 0x01, 0x00, 0x80, 0xE2, 0x2C, 0x00, 0x86, 0xE5 - .byte 0x64, 0x06, 0x96, 0xE5, 0xBB, 0x00, 0x00, 0xEB, 0x68, 0x06, 0x96, 0xE5, 0xB9, 0x00, 0x00, 0xEB - .byte 0xB0, 0xFA, 0xFF, 0xEB, 0x50, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x00, 0x00, 0x00, 0x0A, 0xA7, 0x06, 0x00, 0xEB, 0xDB, 0x0C, 0x00, 0xEB, 0x1C, 0x0C, 0x00, 0xEB - .byte 0x4C, 0x0E, 0x00, 0xEB, 0x14, 0x0D, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x78, 0x2F, 0x00, 0xEB - .byte 0xD0, 0x0D, 0xD5, 0xE1, 0x01, 0x00, 0x50, 0xE3, 0xBC, 0xFF, 0xFF, 0x1A, 0x68, 0x27, 0x00, 0xEB - .byte 0xCC, 0x0E, 0x88, 0xE5, 0xB9, 0xFF, 0xFF, 0xEA, 0xF8, 0x8F, 0xBD, 0xE8, 0x30, 0x83, 0x2B, 0x02 - .byte 0x30, 0x91, 0x2B, 0x02, 0x30, 0x73, 0x2B, 0x02, 0x00, 0x00, 0xC8, 0x42, 0x84, 0x95, 0x2B, 0x02 - - arm_func_start FUN_02071160 -FUN_02071160: @ 0x02071160 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr r1, [r0, #0x24] - ldrb r0, [r1, #1] - add r7, r1, #0x10 - str r0, [sp] - cmp r0, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - mov fp, #0 - mvn r6, #0 - mov r5, fp -_02071188: - ldr r8, [r7, #0xb8] - add sl, r7, #0xb8 - cmp r8, #0 - beq _02071200 - ldr r4, _02071220 @ =0x022B7330 -_0207119C: - ldmib r8, {r0, sb} - sub r1, r0, #1 - cmp r1, #0 - bgt _020711E0 - ldrb r0, [r7, #4] - tst r0, #3 - movne r1, fp - bne _020711E0 - mov r0, r7 - mov r1, r8 - bl FUN_02074150 - ldr r0, [r4, #0x650] - mov r1, r6 - str r0, [r8, #8] - str r8, [r4, #0x650] - str r6, [r8, #4] - strb r5, [r8, #1] -_020711E0: - str r1, [r8, #4] - cmp r1, #0 - strge r1, [r8, #4] - strge r8, [sl] - addge sl, r8, #8 - mov r8, sb - cmp sb, #0 - bne _0207119C -_02071200: - mov r0, #0 - str r0, [sl] - ldr r0, [sp] - add r7, r7, #0xc8 - subs r0, r0, #1 - str r0, [sp] - bne _02071188 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02071220: .4byte 0x022B7330 - arm_func_end FUN_02071160 - - arm_func_start FUN_02071224 -FUN_02071224: @ 0x02071224 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #8 - mov r6, r1 - ldr r1, [r6, #0xc] - mov r7, r0 - cmp r1, #0 - ldr r5, [r6, #0x1c] - ldr r4, [r6, #0x54] - bne _020713C4 -_02071248: - ldrb r3, [r5] - add r0, r5, #1 - mov r5, r0 - cmp r3, #0x80 - blo _020712A0 - cmp r3, #0x90 - blo _02071288 - ldr r2, _020713DC @ =0x020B0B90 - mov r1, r7 - add r2, r2, r3, lsl #2 - ldr r5, [r2, #-0x240] - mov r2, r6 - mov r3, r4 - blx r5 - mov r5, r0 - b _020713AC -_02071288: - ldr r0, _020713E0 @ =0x020B0B7C - add r0, r0, r3 - ldrb r0, [r0, #-0x80] - str r0, [r6, #0x10] - str r0, [r6, #0xc] - b _020713AC -_020712A0: - strb r3, [sp, #3] - ldrb r1, [r0] - ldrb r5, [r6, #4] - mov r3, #0xc - lsl r2, r1, #0x14 - asr r2, r2, #0x18 - and r2, r2, #3 - sub r2, r2, #2 - lsl r2, r2, #0x18 - add r2, r5, r2, asr #24 - lsl r2, r2, #0x18 - asr r5, r2, #0x18 - and r2, r1, #0xf - smlabb r2, r5, r3, r2 - strb r2, [sp, #2] - asr r1, r1, #6 - strb r5, [r6, #4] - ands r1, r1, #0xff - add r5, r0, #1 - ldreq r3, [r6, #0x14] - beq _02071318 - cmp r1, #0 - mov r3, #0 - beq _02071314 -_02071300: - ldrb r0, [r5], #1 - sub r1, r1, #1 - ands r1, r1, #0xff - add r3, r0, r3, lsl #8 - bne _02071300 -_02071314: - str r3, [r6, #0x14] -_02071318: - ldrb r2, [r6, #5] - mov r1, #0 - ldr r0, _020713E4 @ =0x02040811 - mul r2, r3, r2 - umull r0, r3, r2, r0 - sub r0, r2, r3 - add r3, r3, r0, lsr #1 - lsr r3, r3, #6 - str r3, [sp, #4] - strb r1, [sp] - ldrsb r0, [r6, #8] - cmp r0, #0 - bne _02071398 - ldrb r0, [r4, #4] - add r1, sp, #0 - tst r0, #2 - beq _0207136C - ldrb r2, [r6, #7] - mov r0, r4 - bl FUN_02073e10 - b _02071398 -_0207136C: - mov r0, r4 - bl FUN_02073ea0 - mov r2, #0 - add r1, sp, #0 - mov r0, r4 - str r2, [r4, #0x1c] - bl FUN_02073cd8 - movs r1, r0 - beq _02071398 - mov r0, r4 - bl FUN_02073edc -_02071398: - ldrb r0, [sp, #2] - strb r0, [r6, #7] - ldrb r0, [r4, #4] - bic r0, r0, #2 - strb r0, [r4, #4] -_020713AC: - ldrsb r0, [r6, #2] - cmp r0, #0 - beq _020713C4 - ldr r0, [r6, #0xc] - cmp r0, #0 - beq _02071248 -_020713C4: - ldr r0, [r6, #0xc] - sub r0, r0, #1 - str r0, [r6, #0xc] - str r5, [r6, #0x1c] - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_020713DC: .4byte 0x020B0B90 -_020713E0: .4byte 0x020B0B7C -_020713E4: .4byte 0x02040811 - arm_func_end FUN_02071224 - - arm_func_start FUN_020713e8 -FUN_020713e8: @ 0x020713E8 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - movs sl, r0 - cmpne sl, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_020713F8: - ldrsb r0, [sl, #5] - cmp r0, #1 - bne _0207176C - ldrsh r0, [sl, #0x1a] - cmp r0, #0 - beq _0207141C - subgt r0, r0, #1 - strhgt r0, [sl, #0x1a] - b _0207176C -_0207141C: - ldr r0, [sl, #0x34] - add r0, r0, #1 - str r0, [sl, #0x34] - ldrb r0, [sl, #0xc] - cmp r0, #0 - beq _0207143C - mov r0, sl - bl FUN_02071784 -_0207143C: - ldr r1, [sl, #0x3c] - ldr r0, [sl, #0x40] - add r1, r1, r0 - str r1, [sl, #0x3c] - ldr r0, [sl, #0x44] - cmp r1, r0 - ble _020716B0 - mov r6, #0 - ldr r7, _0207177C @ =0x04000208 - ldr fp, _02071780 @ =0x82061029 - mov r5, r6 - mov r4, r6 -_0207146C: - mov r0, sl - bl FUN_02071160 - ldr r2, [sl, #0x24] - ldrb r0, [r2, #1] - add r1, r2, #0x10 - cmp r0, #0 - beq _0207162C -_02071488: - ldrh r3, [r1, #0x28] - sub r0, r0, #1 - cmp r3, #0 - beq _0207150C - sub r3, r3, #1 - strh r3, [r1, #0x28] - ldrh r3, [r1, #0x28] - cmp r3, #0 - ldreq r3, [r1, #0x24] - beq _020714BC - ldr r8, [r1, #0x1c] - ldr r3, [r1, #0x20] - add r3, r8, r3 -_020714BC: - str r3, [r1, #0x1c] - ldrsh r3, [r1, #0x54] - ldr r8, [r1, #0x1c] - ldrsh sb, [r2, #4] - add r3, r3, r8, asr #16 - add r3, sb, r3 - strh r3, [r1, #0x16] - ldrh r3, [r7] - strh r6, [r7] - ldr sb, [r1, #0xb4] - cmp sb, #0 - beq _02071504 -_020714EC: - ldrh r8, [sb, #6] - orr r8, r8, #0x10 - strh r8, [sb, #6] - ldr sb, [sb, #0x154] - cmp sb, #0 - bne _020714EC -_02071504: - ldrh r8, [r7] - strh r3, [r7] -_0207150C: - ldrh r3, [r1, #0x38] - cmp r3, #0 - beq _020715A0 - sub r3, r3, #1 - strh r3, [r1, #0x38] - ldrh r3, [r1, #0x38] - cmp r3, #0 - ldreq r3, [r1, #0x34] - beq _0207153C - ldr r8, [r1, #0x2c] - ldr r3, [r1, #0x30] - add r3, r8, r3 -_0207153C: - str r3, [r1, #0x2c] - ldr r8, [r1, #0x2c] - ldrb r3, [r1, #0x50] - asr r8, r8, #0x10 - ldrsb sb, [r2, #8] - mul r3, r8, r3 - mul r8, sb, r3 - smull r3, sb, fp, r8 - add sb, r8, sb - lsr r3, r8, #0x1f - add sb, r3, sb, asr #13 - strh sb, [r1, #0x18] - ldrh r3, [r7] - strh r5, [r7] - ldr sb, [r1, #0xb4] - cmp sb, #0 - beq _02071598 -_02071580: - ldrh r8, [sb, #6] - orr r8, r8, #0x20 - strh r8, [sb, #6] - ldr sb, [sb, #0x154] - cmp sb, #0 - bne _02071580 -_02071598: - ldrh r8, [r7] - strh r3, [r7] -_020715A0: - ldrh r3, [r1, #0x48] - cmp r3, #0 - beq _02071620 - sub r3, r3, #1 - strh r3, [r1, #0x48] - ldrh r3, [r1, #0x48] - cmp r3, #0 - ldreq r3, [r1, #0x44] - beq _020715D0 - ldr r8, [r1, #0x3c] - ldr r3, [r1, #0x40] - add r3, r8, r3 -_020715D0: - str r3, [r1, #0x3c] - ldr r3, [r1, #0xc4] - ldr r8, [r1, #0x3c] - ldrsb r3, [r3, #7] - sub r3, r3, #0x40 - add r3, r3, r8, asr #16 - strh r3, [r1, #0x1a] - ldrh r3, [r7] - strh r4, [r7] - ldr sb, [r1, #0xb4] - cmp sb, #0 - beq _02071618 -_02071600: - ldrh r8, [sb, #6] - orr r8, r8, #0x40 - strh r8, [sb, #6] - ldr sb, [sb, #0x154] - cmp sb, #0 - bne _02071600 -_02071618: - ldrh r8, [r7] - strh r3, [r7] -_02071620: - cmp r0, #0 - add r1, r1, #0xc8 - bne _02071488 -_0207162C: - mov r0, #0 - strb r0, [sl, #0xd] - ldrb r0, [sl, #0xf] - mov sb, #0 - add r8, sl, #0xa8 - cmp r0, #0 - ble _02071688 -_02071648: - ldrsb r0, [r8, #2] - cmp r0, #1 - bne _02071674 - mov r0, sl - mov r1, r8 - bl FUN_02071224 - ldrsb r0, [r8, #2] - cmp r0, #1 - ldrbeq r0, [sl, #0xd] - addeq r0, r0, #1 - strbeq r0, [sl, #0xd] -_02071674: - ldrb r0, [sl, #0xf] - add sb, sb, #1 - add r8, r8, #0x5c - cmp sb, r0 - blt _02071648 -_02071688: - ldr r0, [sl, #0x38] - add r0, r0, #1 - str r0, [sl, #0x38] - ldr r1, [sl, #0x3c] - ldr r0, [sl, #0x44] - sub r1, r1, r0 - str r1, [sl, #0x3c] - ldr r0, [sl, #0x44] - cmp r1, r0 - bgt _0207146C -_020716B0: - ldrb r0, [sl, #0xd] - cmp r0, #0 - bne _020716E8 - mov r0, #0 - str r0, [sl, #4] - ldr r0, [sl, #0x24] - bl FUN_020733bc - ldr r0, [sl, #0x28] - ldr r3, [sl, #0xa0] - ldr r4, [sl, #0x9c] - mov r1, #1 - mov r2, #0 - blx r4 - b _0207176C -_020716E8: - ldrsb r1, [sl, #7] - cmp r1, #0 - beq _0207176C - ldr r0, [sl, #0x68] - cmp r0, #0 - bne _0207176C - cmp r1, #1 - bne _02071744 - mov r0, #0 - str r0, [sl, #4] - ldr r0, [sl, #0x24] - bl FUN_02073480 - ldr r0, [sl, #0x28] - ldr r3, [sl, #0xa0] - ldr r4, [sl, #0x9c] - mov r1, #2 - mov r2, #0 - blx r4 - ldrsb r0, [sl, #0xa] - cmp r0, #1 - moveq r0, #0 - strbeq r0, [sl, #0xd] - b _0207176C -_02071744: - mov r1, #1 - strb r1, [sl, #6] - ldr r0, [sl, #0x24] - bl FUN_020734ac - ldr r0, [sl, #0x28] - ldr r3, [sl, #0xa0] - ldr r4, [sl, #0x9c] - mov r1, #3 - mov r2, #0 - blx r4 -_0207176C: - ldr sl, [sl, #0xa4] - cmp sl, #0 - bne _020713F8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0207177C: .4byte 0x04000208 -_02071780: .4byte 0x82061029 - arm_func_end FUN_020713e8 - - arm_func_start FUN_02071784 -FUN_02071784: @ 0x02071784 - push {r4, lr} - mov r4, r0 - ldrh r0, [r4, #0x54] - cmp r0, #0 - beq _020717F8 - sub r0, r0, #1 - strh r0, [r4, #0x54] - ldrh r0, [r4, #0x54] - cmp r0, #0 - ldreq r0, [r4, #0x50] - beq _020717BC - ldr r1, [r4, #0x48] - ldr r0, [r4, #0x4c] - add r0, r1, r0 -_020717BC: - str r0, [r4, #0x48] - ldr r1, [r4, #0x48] - ldrb r0, [r4, #0x17] - asr r1, r1, #0x10 - mul r0, r1, r0 - lsrs r1, r0, #8 - ldr r0, _02071918 @ =0x03938700 - moveq r1, #1 - bl DivideUInt - str r0, [r4, #0x44] - ldrh r0, [r4, #0x54] - cmp r0, #0 - ldrbeq r0, [r4, #0xc] - biceq r0, r0, #1 - strbeq r0, [r4, #0xc] -_020717F8: - ldrh r0, [r4, #0x64] - cmp r0, #0 - beq _02071858 - sub r0, r0, #1 - strh r0, [r4, #0x64] - ldrh r0, [r4, #0x64] - cmp r0, #0 - ldreq r0, [r4, #0x60] - beq _02071828 - ldr r1, [r4, #0x58] - ldr r0, [r4, #0x5c] - add r0, r1, r0 -_02071828: - str r0, [r4, #0x58] - ldr r1, [r4, #0x58] - ldr r0, [r4, #0x24] - asr r1, r1, #0x10 - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - bl FUN_02073654 - ldrh r0, [r4, #0x64] - cmp r0, #0 - ldrbeq r0, [r4, #0xc] - biceq r0, r0, #2 - strbeq r0, [r4, #0xc] -_02071858: - ldrh r0, [r4, #0x74] - cmp r0, #0 - beq _020718B8 - sub r0, r0, #1 - strh r0, [r4, #0x74] - ldrh r0, [r4, #0x74] - cmp r0, #0 - ldreq r0, [r4, #0x70] - beq _02071888 - ldr r1, [r4, #0x68] - ldr r0, [r4, #0x6c] - add r0, r1, r0 -_02071888: - str r0, [r4, #0x68] - ldr r1, [r4, #0x68] - ldr r0, [r4, #0x24] - asr r1, r1, #0x10 - lsl r1, r1, #0x18 - asr r1, r1, #0x18 - bl FUN_020736e8 - ldrh r0, [r4, #0x74] - cmp r0, #0 - ldrbeq r0, [r4, #0xc] - biceq r0, r0, #4 - strbeq r0, [r4, #0xc] -_020718B8: - ldrh r0, [r4, #0x84] - cmp r0, #0 - popeq {r4, pc} - sub r0, r0, #1 - strh r0, [r4, #0x84] - ldrh r0, [r4, #0x84] - cmp r0, #0 - ldreq r0, [r4, #0x80] - beq _020718E8 - ldr r1, [r4, #0x78] - ldr r0, [r4, #0x7c] - add r0, r1, r0 -_020718E8: - str r0, [r4, #0x78] - ldr r1, [r4, #0x78] - ldr r0, [r4, #0x24] - asr r1, r1, #0x10 - and r1, r1, #0xff - bl FUN_020737b8 - ldrh r0, [r4, #0x84] - cmp r0, #0 - ldrbeq r0, [r4, #0xc] - biceq r0, r0, #0x10 - strbeq r0, [r4, #0xc] - pop {r4, pc} - .align 2, 0 -_02071918: .4byte 0x03938700 - arm_func_end FUN_02071784 -_0207191C: - .byte 0x00, 0x10, 0xA0, 0xE3 - .byte 0x02, 0x10, 0xC2, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0x10, 0x92, 0xE5, 0x0C, 0x10, 0x82, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xD1, 0x10, 0xD0, 0xE0, 0x10, 0x30, 0x92, 0xE5, 0x01, 0x10, 0x83, 0xE0 - .byte 0x10, 0x10, 0x82, 0xE5, 0x0C, 0x10, 0x82, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x10, 0xD0, 0xE4 - .byte 0x10, 0x10, 0x82, 0xE5, 0x0C, 0x10, 0x82, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x30, 0xD0, 0xE5 - .byte 0x01, 0x10, 0xD0, 0xE5, 0x02, 0x00, 0x80, 0xE2, 0x01, 0x14, 0x83, 0xE0, 0x10, 0x10, 0x82, 0xE5 - .byte 0x0C, 0x10, 0x82, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x30, 0xD0, 0xE5, 0x01, 0x10, 0xD0, 0xE5 - .byte 0x02, 0xC0, 0xD0, 0xE5, 0x03, 0x00, 0x80, 0xE2, 0x01, 0x14, 0x83, 0xE0, 0x0C, 0x18, 0x81, 0xE0 - .byte 0x10, 0x10, 0x82, 0xE5, 0x0C, 0x10, 0x82, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0207199c -FUN_0207199c: @ 0x0207199C - push {r3, r4, r5, lr} - mov r5, r0 - mov r0, r3 - mov r4, r2 - bl FUN_02074a2c - cmp r0, #0 - ldrbgt r0, [r5], #-1 - addle r5, r5, #1 - strgt r0, [r4, #0xc] - mov r0, r5 - pop {r3, r4, r5, pc} - arm_func_end FUN_0207199c - - arm_func_start FUN_020719c8 -FUN_020719c8: @ 0x020719C8 - push {r4, lr} - ldr ip, [r2, #0x20] - mov r4, r0 - cmp ip, #0 - bne _020719F4 - mov r1, #0 - mov r0, r3 - strb r1, [r2, #2] - sub r4, r4, #1 - bl FUN_02073a90 - b _02071A0C -_020719F4: - ldrh r3, [r2, #0xa] - mov r0, #1 - add r3, r3, #1 - strh r3, [r2, #0xa] - strb r0, [r1, #3] - ldr r4, [r2, #0x20] -_02071A0C: - mov r0, r4 - pop {r4, pc} - arm_func_end FUN_020719c8 -_02071A14: - .byte 0x20, 0x00, 0x82, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02071a1c -FUN_02071a1c: @ 0x02071A1C - push {r4, lr} - ldrb r4, [r2, #6] - mov r1, #0xc - ldrb lr, [r0], #1 - smulbb r1, r4, r1 - add r3, r2, #0x24 - str r0, [r3, r1] - add ip, r3, r1 - mov r1, #0 - str r1, [ip, #4] - strb lr, [ip, #8] - ldrb r3, [r2, #4] - add r1, r4, #1 - strb r3, [ip, #9] - strb r1, [r2, #6] - pop {r4, pc} - arm_func_end FUN_02071a1c -_02071A5C: - .byte 0x06, 0xC0, 0xD2, 0xE5 - .byte 0x24, 0x30, 0x82, 0xE2, 0x0C, 0x10, 0xA0, 0xE3, 0x01, 0xC0, 0x4C, 0xE2, 0x9C, 0x31, 0x23, 0xE0 - .byte 0x08, 0x10, 0xD3, 0xE5, 0x01, 0x10, 0x51, 0xE2, 0x06, 0xC0, 0xC2, 0x05, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x04, 0x00, 0x83, 0xE5, 0x08, 0x10, 0xC3, 0xE5, 0x09, 0x00, 0xD3, 0xE5, 0x04, 0x00, 0xC2, 0xE5 - .byte 0x00, 0x00, 0x93, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x06, 0xC0, 0xD2, 0xE5, 0x24, 0x30, 0x82, 0xE2 - .byte 0x0C, 0x10, 0xA0, 0xE3, 0x01, 0xC0, 0x4C, 0xE2, 0x9C, 0x31, 0x23, 0xE0, 0x08, 0x10, 0xD3, 0xE5 - .byte 0x01, 0x10, 0x51, 0xE2, 0x04, 0x00, 0x93, 0x05, 0x06, 0xC0, 0xC2, 0x05, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x01, 0x10, 0xD0, 0xE4, 0x04, 0x10, 0xC2, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x30, 0xD2, 0xE5 - .byte 0xD1, 0x10, 0xD0, 0xE0, 0x01, 0x10, 0x83, 0xE0, 0x04, 0x10, 0xC2, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02071ae0 -FUN_02071ae0: @ 0x02071AE0 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - ldr r0, [r5, #0x48] - ldrb r4, [r6] - asr r0, r0, #0x10 - mul r1, r0, r4 - lsrs r1, r1, #8 - ldr r0, _02071B1C @ =0x03938700 - moveq r1, #1 - bl DivideUInt - str r0, [r5, #0x44] - strb r4, [r5, #0x17] - add r0, r6, #1 - pop {r4, r5, r6, pc} - .align 2, 0 -_02071B1C: .4byte 0x03938700 - arm_func_end FUN_02071ae0 - - arm_func_start FUN_02071b20 -FUN_02071b20: @ 0x02071B20 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - ldr r0, [r5, #0x48] - ldrb r4, [r6] - asr r0, r0, #0x10 - mul r1, r0, r4 - lsrs r1, r1, #8 - ldr r0, _02071B5C @ =0x03938700 - moveq r1, #1 - bl DivideUInt - str r0, [r5, #0x44] - strb r4, [r5, #0x17] - add r0, r6, #1 - pop {r4, r5, r6, pc} - .align 2, 0 -_02071B5C: .4byte 0x03938700 - arm_func_end FUN_02071b20 - - arm_func_start FUN_02071b60 -FUN_02071b60: @ 0x02071B60 - push {r4, lr} - mov r4, r0 - ldrb r2, [r4] - ldrb r1, [r4, #1] - mov r0, r3 - add r1, r1, r2, lsl #8 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl FUN_02073b90 - add r0, r4, #2 - pop {r4, pc} - arm_func_end FUN_02071b60 - - arm_func_start FUN_02071b8c -FUN_02071b8c: @ 0x02071B8C - push {r4, lr} - mov r4, r0 - ldrh r1, [r3, #0xe] - ldrb r2, [r4] - mov r0, r3 - and r1, r1, #0xff - add r1, r1, r2, lsl #8 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl FUN_02073b90 - add r0, r4, #1 - pop {r4, pc} - arm_func_end FUN_02071b8c - - arm_func_start FUN_02071bbc -FUN_02071bbc: @ 0x02071BBC - push {r4, lr} - mov r4, r0 - ldrh r2, [r3, #0xe] - ldrb r1, [r4] - mov r0, r3 - bic r2, r2, #0xff - add r1, r2, r1 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl FUN_02073b90 - add r0, r4, #1 - pop {r4, pc} - arm_func_end FUN_02071bbc -_02071BEC: - .byte 0x01, 0x00, 0x80, 0xE2 - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02071bf4 -FUN_02071bf4: @ 0x02071BF4 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - mov r4, r3 - ldrb r1, [r6] - mov r0, r4 - bl FUN_02073bc8 - movs r2, r0 - bpl _02071C34 - ldrh r1, [r4, #0xe] - ldr r0, [r5, #0x28] - ldr r3, [r5, #0xa0] - ldr ip, [r5, #0x9c] - rsb r2, r2, r1, lsl #16 - mvn r1, #0xcb - blx ip -_02071C34: - add r0, r6, #1 - pop {r4, r5, r6, pc} - arm_func_end FUN_02071bf4 - - arm_func_start FUN_02071c3c -FUN_02071c3c: @ 0x02071C3C - push {r4, r5, r6, lr} - mov r5, r0 - ldrb r2, [r5] - ldrb r0, [r5, #1] - mov r4, r1 - add r0, r2, r0, lsl #8 - lsl r0, r0, #0x10 - lsrs r1, r0, #0x10 - moveq r6, #0 - beq _02071C84 - mov r0, #0x3e8 - mul r0, r1, r0 - ldr r1, _02071CC4 @ =0x022B7330 - ldrsh r1, [r1, #0x28] - bl DivideUInt - lsl r0, r0, #0x10 - lsrs r6, r0, #0x10 - moveq r6, #1 -_02071C84: - ldrb r0, [r5, #2] - cmp r6, #0 - lsl r1, r0, #0x10 - str r1, [r4, #0x70] - streq r1, [r4, #0x68] - beq _02071CB8 - ldr r0, [r4, #0x68] - subs r0, r1, r0 - moveq r6, #0 - beq _02071CB8 - mov r1, r6 - bl DivideInt - str r0, [r4, #0x6c] -_02071CB8: - strh r6, [r4, #0x74] - add r0, r5, #3 - pop {r4, r5, r6, pc} - .align 2, 0 -_02071CC4: .4byte 0x022B7330 - arm_func_end FUN_02071c3c - - arm_func_start FUN_02071cc8 -FUN_02071cc8: @ 0x02071CC8 - push {r4, lr} - mov r4, r0 - add r0, r3, #0x64 - bl FUN_02074c84 - mov r0, r4 - pop {r4, pc} - arm_func_end FUN_02071cc8 - - arm_func_start FUN_02071ce0 -FUN_02071ce0: @ 0x02071CE0 - push {r4, lr} - mov r4, r0 - ldrb r1, [r4] - add r0, r3, #0x64 - strb r1, [r3, #0x6c] - bl FUN_02074ca0 - add r0, r4, #1 - pop {r4, pc} - arm_func_end FUN_02071ce0 - - arm_func_start FUN_02071d00 -FUN_02071d00: @ 0x02071D00 - push {r4, lr} - mov r4, r0 - ldrb r1, [r4] - add r0, r3, #0x64 - strb r1, [r3, #0x6d] - bl FUN_02074ca0 - add r0, r4, #1 - pop {r4, pc} - arm_func_end FUN_02071d00 - - arm_func_start FUN_02071d20 -FUN_02071d20: @ 0x02071D20 - push {r4, lr} - mov r4, r0 - ldrb r1, [r4] - add r0, r3, #0x64 - strb r1, [r3, #0x70] - bl FUN_02074ca0 - add r0, r4, #1 - pop {r4, pc} - arm_func_end FUN_02071d20 - - arm_func_start FUN_02071d40 -FUN_02071d40: @ 0x02071D40 - push {r4, lr} - mov r4, r0 - ldrb r0, [r4] - cmp r0, #0xff - strbne r0, [r3, #0x6e] - ldrb r0, [r4, #1] - cmp r0, #0xff - strbne r0, [r3, #0x6f] - add r0, r3, #0x64 - bl FUN_02074ca0 - add r0, r4, #2 - pop {r4, pc} - arm_func_end FUN_02071d40 - - arm_func_start FUN_02071d70 -FUN_02071d70: @ 0x02071D70 - push {r4, lr} - mov r4, r0 - ldrb r1, [r4] - add r0, r3, #0x64 - strb r1, [r3, #0x71] - bl FUN_02074ca0 - add r0, r4, #1 - pop {r4, pc} - arm_func_end FUN_02071d70 - - arm_func_start FUN_02071d90 -FUN_02071d90: @ 0x02071D90 - push {r4, lr} - mov r4, r0 - ldrb r1, [r4] - add r0, r3, #0x64 - strb r1, [r3, #0x72] - bl FUN_02074ca0 - add r0, r4, #1 - pop {r4, pc} - arm_func_end FUN_02071d90 -_02071DB0: - .byte 0x01, 0x10, 0xD0, 0xE4, 0x05, 0x10, 0xC2, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02071dbc -FUN_02071dbc: @ 0x02071DBC - push {r4, lr} - mov r4, r0 - ldrsb r1, [r4] - mov r0, r3 - bl FUN_02073c5c - add r0, r4, #1 - pop {r4, pc} - arm_func_end FUN_02071dbc - - arm_func_start FUN_02071dd8 -FUN_02071dd8: @ 0x02071DD8 - push {r4, lr} - mov r4, r0 - ldrb r1, [r4] - ldr r0, [r2, #0x54] - cmp r1, #0x40 - ldrb r1, [r0, #4] - orrhs r1, r1, #1 - strbhs r1, [r0, #4] - bhs _02071E08 - bic r1, r1, #1 - strb r1, [r0, #4] - bl FUN_020747dc -_02071E08: - add r0, r4, #1 - pop {r4, pc} - arm_func_end FUN_02071dd8 -_02071E10: - .byte 0x04, 0x10, 0xD3, 0xE5, 0x02, 0x10, 0x81, 0xE3, 0x04, 0x10, 0xC3, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x01, 0x10, 0xD0, 0xE4, 0x58, 0x10, 0xC3, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x02, 0x00, 0x80, 0xE2 - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02071e34 -FUN_02071e34: @ 0x02071E34 - push {r4, lr} - ldrsb r1, [r0] - ldr ip, _02071EB0 @ =0x04000208 - mov r2, #0 - lsl r1, r1, #0x18 - asr r4, r1, #0x10 - strh r4, [r3, #0x54] - ldr lr, [r3, #0xc4] - ldr r1, [r3, #0x1c] - ldrsh lr, [lr, #4] - asr r1, r1, #0x10 - lsl r1, r1, #0x10 - add r1, r4, r1, asr #16 - add r1, lr, r1 - strh r1, [r3, #0x16] - ldrh r4, [ip] - strh r2, [ip] - ldr r2, [r3, #0xb4] - cmp r2, #0 - beq _02071E9C -_02071E84: - ldrh r1, [r2, #6] - orr r1, r1, #0x10 - strh r1, [r2, #6] - ldr r2, [r2, #0x154] - cmp r2, #0 - bne _02071E84 -_02071E9C: - ldr r2, _02071EB0 @ =0x04000208 - add r0, r0, #1 - ldrh r1, [r2] - strh r4, [r2] - pop {r4, pc} - .align 2, 0 -_02071EB0: .4byte 0x04000208 - arm_func_end FUN_02071e34 -_02071EB4: - .byte 0x10, 0x40, 0x2D, 0xE9, 0xD0, 0x40, 0xD0, 0xE1, 0xF4, 0x15, 0xD3, 0xE1 - .byte 0x70, 0xC0, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x04, 0x14, 0x81, 0xE0, 0x01, 0x18, 0xA0, 0xE1 - .byte 0x41, 0x48, 0xA0, 0xE1, 0xB4, 0x45, 0xC3, 0xE1, 0xC4, 0xE0, 0x93, 0xE5, 0x1C, 0x10, 0x93, 0xE5 - .byte 0xF4, 0xE0, 0xDE, 0xE1, 0x41, 0x18, 0xA0, 0xE1, 0x01, 0x18, 0xA0, 0xE1, 0x41, 0x18, 0x84, 0xE0 - .byte 0x01, 0x10, 0x8E, 0xE0, 0xB6, 0x11, 0xC3, 0xE1, 0xB0, 0x40, 0xDC, 0xE1, 0xB0, 0x20, 0xCC, 0xE1 - .byte 0xB4, 0x20, 0x93, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0xB6, 0x10, 0xD2, 0xE1 - .byte 0x10, 0x10, 0x81, 0xE3, 0xB6, 0x10, 0xC2, 0xE1, 0x54, 0x21, 0x92, 0xE5, 0x00, 0x00, 0x52, 0xE3 - .byte 0xF9, 0xFF, 0xFF, 0x1A, 0x0C, 0x20, 0x9F, 0xE5, 0x01, 0x00, 0x80, 0xE2, 0xB0, 0x10, 0xD2, 0xE1 - .byte 0xB0, 0x40, 0xC2, 0xE1, 0x10, 0x80, 0xBD, 0xE8, 0x08, 0x02, 0x00, 0x04, 0x10, 0x40, 0x2D, 0xE9 - .byte 0xD0, 0x40, 0xD0, 0xE1, 0xF4, 0x15, 0xD3, 0xE1, 0x70, 0xC0, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x04, 0x11, 0x81, 0xE0, 0x01, 0x18, 0xA0, 0xE1, 0x41, 0x48, 0xA0, 0xE1, 0xB4, 0x45, 0xC3, 0xE1 - .byte 0xC4, 0xE0, 0x93, 0xE5, 0x1C, 0x10, 0x93, 0xE5, 0xF4, 0xE0, 0xDE, 0xE1, 0x41, 0x18, 0xA0, 0xE1 - .byte 0x01, 0x18, 0xA0, 0xE1, 0x41, 0x18, 0x84, 0xE0, 0x01, 0x10, 0x8E, 0xE0, 0xB6, 0x11, 0xC3, 0xE1 - .byte 0xB0, 0x40, 0xDC, 0xE1, 0xB0, 0x20, 0xCC, 0xE1, 0xB4, 0x20, 0x93, 0xE5, 0x00, 0x00, 0x52, 0xE3 - .byte 0x05, 0x00, 0x00, 0x0A, 0xB6, 0x10, 0xD2, 0xE1, 0x10, 0x10, 0x81, 0xE3, 0xB6, 0x10, 0xC2, 0xE1 - .byte 0x54, 0x21, 0x92, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A, 0x0C, 0x20, 0x9F, 0xE5 - .byte 0x01, 0x00, 0x80, 0xE2, 0xB0, 0x10, 0xD2, 0xE1, 0xB0, 0x40, 0xC2, 0xE1, 0x10, 0x80, 0xBD, 0xE8 - .byte 0x08, 0x02, 0x00, 0x04, 0x08, 0x40, 0x2D, 0xE9, 0x00, 0xC0, 0xD0, 0xE5, 0x01, 0x10, 0xD0, 0xE5 - .byte 0xF4, 0xE5, 0xD3, 0xE1, 0x74, 0x20, 0x9F, 0xE5, 0x01, 0x14, 0x8C, 0xE0, 0x01, 0x10, 0x8E, 0xE0 - .byte 0x01, 0x18, 0xA0, 0xE1, 0x41, 0xE8, 0xA0, 0xE1, 0xB4, 0xE5, 0xC3, 0xE1, 0xC4, 0xC0, 0x93, 0xE5 - .byte 0x1C, 0x10, 0x93, 0xE5, 0xF4, 0xC0, 0xDC, 0xE1, 0x41, 0x18, 0xA0, 0xE1, 0x01, 0x18, 0xA0, 0xE1 - .byte 0x41, 0x18, 0x8E, 0xE0, 0x01, 0x10, 0x8C, 0xE0, 0xB6, 0x11, 0xC3, 0xE1, 0xB0, 0xC0, 0xD2, 0xE1 - .byte 0x00, 0x10, 0xA0, 0xE3, 0xB0, 0x10, 0xC2, 0xE1, 0xB4, 0x20, 0x93, 0xE5, 0x00, 0x00, 0x52, 0xE3 - .byte 0x05, 0x00, 0x00, 0x0A, 0xB6, 0x10, 0xD2, 0xE1, 0x10, 0x10, 0x81, 0xE3, 0xB6, 0x10, 0xC2, 0xE1 - .byte 0x54, 0x21, 0x92, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A, 0x0C, 0x20, 0x9F, 0xE5 - .byte 0x02, 0x00, 0x80, 0xE2, 0xB0, 0x10, 0xD2, 0xE1, 0xB0, 0xC0, 0xC2, 0xE1, 0x08, 0x80, 0xBD, 0xE8 - .byte 0x08, 0x02, 0x00, 0x04, 0xF8, 0x40, 0x2D, 0xE9, 0x00, 0x70, 0xA0, 0xE1, 0x03, 0x60, 0xA0, 0xE1 - .byte 0x04, 0x10, 0xD6, 0xE5, 0x00, 0x40, 0xD7, 0xE5, 0x01, 0x00, 0xD7, 0xE5, 0x02, 0x00, 0x11, 0xE3 - .byte 0x02, 0x20, 0xD7, 0xE5, 0x00, 0x04, 0x84, 0xE0, 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x58, 0xA0, 0xE1 - .byte 0xC4, 0x40, 0x96, 0xE5, 0x00, 0x10, 0xA0, 0x03, 0x1C, 0x10, 0x86, 0x05, 0x1C, 0x10, 0x96, 0xE5 - .byte 0x02, 0x0C, 0xA0, 0xE1, 0x41, 0x18, 0xA0, 0xE1, 0x20, 0x08, 0x81, 0xE0, 0x00, 0x08, 0xA0, 0xE1 - .byte 0x20, 0x08, 0xA0, 0xE1, 0x00, 0x18, 0xA0, 0xE1, 0x24, 0x10, 0x86, 0xE5, 0x00, 0x00, 0x55, 0xE3 - .byte 0x1C, 0x10, 0x86, 0x05, 0x06, 0x00, 0x00, 0x0A, 0x1C, 0x00, 0x96, 0xE5, 0x00, 0x00, 0x51, 0xE0 - .byte 0x00, 0x50, 0xA0, 0x03, 0x02, 0x00, 0x00, 0x0A, 0x05, 0x10, 0xA0, 0xE1, 0x74, 0x77, 0x00, 0xEB - .byte 0x20, 0x00, 0x86, 0xE5, 0xB8, 0x52, 0xC6, 0xE1, 0x1C, 0x00, 0x96, 0xE5, 0xF4, 0x15, 0xD6, 0xE1 - .byte 0x40, 0x08, 0xA0, 0xE1, 0x00, 0x08, 0xA0, 0xE1, 0xF4, 0x20, 0xD4, 0xE1, 0x20, 0x08, 0x81, 0xE0 - .byte 0x48, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x82, 0xE0, 0xB6, 0x01, 0xC6, 0xE1, 0xB0, 0x30, 0xD1, 0xE1 - .byte 0x00, 0x00, 0xA0, 0xE3, 0xB0, 0x00, 0xC1, 0xE1, 0xB4, 0x10, 0x96, 0xE5, 0x00, 0x00, 0x51, 0xE3 - .byte 0x05, 0x00, 0x00, 0x0A, 0xB6, 0x00, 0xD1, 0xE1, 0x10, 0x00, 0x80, 0xE3, 0xB6, 0x00, 0xC1, 0xE1 - .byte 0x54, 0x11, 0x91, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A, 0x0C, 0x20, 0x9F, 0xE5 - .byte 0x03, 0x00, 0x87, 0xE2, 0xB0, 0x10, 0xD2, 0xE1, 0xB0, 0x30, 0xC2, 0xE1, 0xF8, 0x80, 0xBD, 0xE8 - .byte 0x08, 0x02, 0x00, 0x04, 0x00, 0x10, 0xD0, 0xE5, 0x01, 0xC0, 0xD0, 0xE5, 0x02, 0x00, 0x80, 0xE2 - .byte 0x01, 0x20, 0xA0, 0xE1, 0x0C, 0x00, 0x51, 0xE1, 0x0C, 0x20, 0xA0, 0x81, 0x01, 0xC0, 0xA0, 0x81 - .byte 0x0C, 0x20, 0xC3, 0xE5, 0x0D, 0xC0, 0xC3, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x20, 0xD0, 0xE5 - .byte 0x01, 0x10, 0xD0, 0xE5, 0x02, 0x00, 0x80, 0xE2, 0x01, 0x14, 0x82, 0xE0, 0xBA, 0x10, 0xC3, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02072184 -FUN_02072184: @ 0x02072184 - push {r4, lr} - mov r4, r0 - ldrb r2, [r4] - ldrb r1, [r4, #1] - mov r0, r3 - add r1, r1, r2, lsl #8 - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - bl FUN_02073c90 - add r0, r4, #2 - pop {r4, pc} - arm_func_end FUN_02072184 -_020721B0: - .byte 0x00, 0x20, 0xD0, 0xE5, 0x01, 0x10, 0xD0, 0xE5, 0x02, 0x00, 0x80, 0xE2, 0x02, 0x14, 0x81, 0xE0 - .byte 0xB6, 0x15, 0xC3, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x10, 0xD0, 0xE4, 0x59, 0x10, 0xC3, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_020721d4 -FUN_020721d4: @ 0x020721D4 - push {r3, r4, r5, lr} - ldrb r5, [r0] - ldrb r4, [r0, #1] - ldrb lr, [r0, #2] - ldrb ip, [r0, #3] - ldrb r2, [r0, #4] - mov r1, #1 - add r4, r5, r4, lsl #8 - strb r1, [r3, #0x75] - strb r1, [r3, #0x76] - lsl r1, r4, #0x10 - strb r2, [r3, #0x77] - asr r1, r1, #0x10 - str r1, [r3, #0x78] - add r1, lr, ip, lsl #8 - strh r1, [r3, #0x7c] - mov r1, #0 - strh r1, [r3, #0x7e] - strh r1, [r3, #0x80] - strb r1, [r3, #0x82] - add r0, r0, #5 - pop {r3, r4, r5, pc} - arm_func_end FUN_020721d4 -_0207222C: - .byte 0x00, 0x20, 0xD0, 0xE5 - .byte 0x01, 0x10, 0xD0, 0xE5, 0x01, 0x14, 0x82, 0xE0, 0xBE, 0x17, 0xC3, 0xE1, 0x02, 0x20, 0xD0, 0xE5 - .byte 0x03, 0x10, 0xD0, 0xE5, 0x04, 0x00, 0x80, 0xE2, 0x01, 0x14, 0x82, 0xE0, 0xB0, 0x18, 0xC3, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x10, 0xD0, 0xE5, 0x01, 0x00, 0x80, 0xE2, 0x02, 0x00, 0x51, 0xE3 - .byte 0x01, 0x10, 0xA0, 0x03, 0x75, 0x10, 0xC3, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x00, 0x10, 0xA0, 0x03 - .byte 0x01, 0x10, 0xA0, 0x13, 0x76, 0x10, 0xC3, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0207227c -FUN_0207227c: @ 0x0207227C - push {r3, r4, r5, lr} - ldrsb r4, [r0] - mov r5, #0 - ldr r2, _02072308 @ =0x82061029 - lsl r1, r4, #0x10 - str r1, [r3, #0x34] - str r1, [r3, #0x2c] - strh r5, [r3, #0x38] - ldr ip, [r3, #0xc4] - ldrb r1, [r3, #0x50] - ldrsb lr, [ip, #8] - ldr ip, _0207230C @ =0x04000208 - smulbb r1, r4, r1 - mul r4, lr, r1 - smull r1, lr, r2, r4 - add lr, r4, lr - lsr r1, r4, #0x1f - add lr, r1, lr, asr #13 - strh lr, [r3, #0x18] - ldrh r4, [ip] - strh r5, [ip] - ldr r2, [r3, #0xb4] - cmp r2, #0 - beq _020722F4 -_020722DC: - ldrh r1, [r2, #6] - orr r1, r1, #0x20 - strh r1, [r2, #6] - ldr r2, [r2, #0x154] - cmp r2, #0 - bne _020722DC -_020722F4: - ldr r2, _0207230C @ =0x04000208 - add r0, r0, #1 - ldrh r1, [r2] - strh r4, [r2] - pop {r3, r4, r5, pc} - .align 2, 0 -_02072308: .4byte 0x82061029 -_0207230C: .4byte 0x04000208 - arm_func_end FUN_0207227c - - arm_func_start FUN_02072310 -FUN_02072310: @ 0x02072310 - push {r3, r4, r5, lr} - ldrsb r2, [r0] - ldr r1, [r3, #0x2c] - add r4, r2, r1, asr #16 - cmp r4, #0x7f - movgt r4, #0x7f - bgt _02072334 - cmp r4, #0 - movlt r4, #0 -_02072334: - lsl r1, r4, #0x10 - str r1, [r3, #0x34] - str r1, [r3, #0x2c] - mov r5, #0 - strh r5, [r3, #0x38] - ldrb r1, [r3, #0x50] - ldr ip, [r3, #0xc4] - ldr r2, _020723B8 @ =0x82061029 - mul r1, r4, r1 - ldrsb lr, [ip, #8] - ldr ip, _020723BC @ =0x04000208 - mul r4, lr, r1 - smull r1, lr, r2, r4 - add lr, r4, lr - lsr r1, r4, #0x1f - add lr, r1, lr, asr #13 - strh lr, [r3, #0x18] - ldrh r4, [ip] - strh r5, [ip] - ldr r2, [r3, #0xb4] - cmp r2, #0 - beq _020723A4 -_0207238C: - ldrh r1, [r2, #6] - orr r1, r1, #0x20 - strh r1, [r2, #6] - ldr r2, [r2, #0x154] - cmp r2, #0 - bne _0207238C -_020723A4: - ldr r2, _020723BC @ =0x04000208 - add r0, r0, #1 - ldrh r1, [r2] - strh r4, [r2] - pop {r3, r4, r5, pc} - .align 2, 0 -_020723B8: .4byte 0x82061029 -_020723BC: .4byte 0x04000208 - arm_func_end FUN_02072310 - - arm_func_start FUN_020723c0 -FUN_020723c0: @ 0x020723C0 - push {r4, r5, r6, lr} - mov r5, r0 - ldrsb r1, [r5, #2] - ldrb r2, [r5] - ldrb r0, [r5, #1] - mov r4, r3 - lsl r1, r1, #0x10 - add r0, r2, r0, lsl #8 - lsl r0, r0, #0x10 - str r1, [r4, #0x34] - lsrs r6, r0, #0x10 - streq r1, [r4, #0x2c] - beq _02072410 - ldr r0, [r4, #0x2c] - subs r0, r1, r0 - moveq r6, #0 - beq _02072410 - mov r1, r6 - bl DivideInt - str r0, [r4, #0x30] -_02072410: - strh r6, [r4, #0x38] - add r0, r5, #3 - pop {r4, r5, r6, pc} - arm_func_end FUN_020723c0 - - arm_func_start FUN_0207241c -FUN_0207241c: @ 0x0207241C - push {r3, r4, r5, lr} - ldrb r4, [r0] - ldr r2, _020724A0 @ =0x82061029 - ldr lr, _020724A4 @ =0x04000208 - strb r4, [r3, #0x50] - ldr r1, [r3, #0x2c] - ldr ip, [r3, #0xc4] - asr r1, r1, #0x10 - mul r4, r1, r4 - ldrsb r1, [ip, #8] - mov ip, #0 - mul r4, r1, r4 - smull r1, r5, r2, r4 - add r5, r4, r5 - lsr r1, r4, #0x1f - add r5, r1, r5, asr #13 - strh r5, [r3, #0x18] - ldrh r4, [lr] - strh ip, [lr] - ldr r2, [r3, #0xb4] - cmp r2, #0 - beq _0207248C -_02072474: - ldrh r1, [r2, #6] - orr r1, r1, #0x20 - strh r1, [r2, #6] - ldr r2, [r2, #0x154] - cmp r2, #0 - bne _02072474 -_0207248C: - ldr r2, _020724A4 @ =0x04000208 - add r0, r0, #1 - ldrh r1, [r2] - strh r4, [r2] - pop {r3, r4, r5, pc} - .align 2, 0 -_020724A0: .4byte 0x82061029 -_020724A4: .4byte 0x04000208 - arm_func_end FUN_0207241c - - arm_func_start FUN_020724a8 -FUN_020724a8: @ 0x020724A8 - push {r3, r4, r5, lr} - ldrb r5, [r0] - ldrb r1, [r0, #1] - ldrb r4, [r0, #2] - ldrb lr, [r0, #3] - ldrb ip, [r0, #4] - mov r2, #1 - add r1, r5, r1, lsl #8 - lsl r1, r1, #0x10 - strb r2, [r3, #0x85] - mov r2, #2 - strb r2, [r3, #0x86] - strb ip, [r3, #0x87] - asr r1, r1, #0x10 - str r1, [r3, #0x88] - add r1, r4, lr, lsl #8 - strh r1, [r3, #0x8c] - mov r1, #0 - strh r1, [r3, #0x8e] - strh r1, [r3, #0x90] - strb r1, [r3, #0x92] - add r0, r0, #5 - pop {r3, r4, r5, pc} - arm_func_end FUN_020724a8 -_02072504: - .byte 0x00, 0x20, 0xD0, 0xE5, 0x01, 0x10, 0xD0, 0xE5, 0x01, 0x14, 0x82, 0xE0 - .byte 0xBE, 0x18, 0xC3, 0xE1, 0x02, 0x20, 0xD0, 0xE5, 0x03, 0x10, 0xD0, 0xE5, 0x04, 0x00, 0x80, 0xE2 - .byte 0x01, 0x14, 0x82, 0xE0, 0xB0, 0x19, 0xC3, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x10, 0xD0, 0xE5 - .byte 0x01, 0x00, 0x80, 0xE2, 0x02, 0x00, 0x51, 0xE3, 0x01, 0x10, 0xA0, 0x03, 0x85, 0x10, 0xC3, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x00, 0x10, 0xA0, 0x03, 0x02, 0x10, 0xA0, 0x13, 0x86, 0x10, 0xC3, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02072554 -FUN_02072554: @ 0x02072554 - push {r3, lr} - ldrb lr, [r0] - mov ip, #0 - cmp lr, #0x7f - movgt lr, #0x7f - lsl r1, lr, #0x10 - str r1, [r3, #0x44] - str r1, [r3, #0x3c] - strh ip, [r3, #0x48] - ldr r2, [r3, #0xc4] - ldr r1, _020725D0 @ =0x04000208 - ldrsb r2, [r2, #7] - sub r2, r2, #0x40 - add r2, lr, r2 - strh r2, [r3, #0x1a] - ldrh lr, [r1] - strh ip, [r1] - ldr r2, [r3, #0xb4] - cmp r2, #0 - beq _020725BC -_020725A4: - ldrh r1, [r2, #6] - orr r1, r1, #0x40 - strh r1, [r2, #6] - ldr r2, [r2, #0x154] - cmp r2, #0 - bne _020725A4 -_020725BC: - ldr r2, _020725D0 @ =0x04000208 - add r0, r0, #1 - ldrh r1, [r2] - strh lr, [r2] - pop {r3, pc} - .align 2, 0 -_020725D0: .4byte 0x04000208 - arm_func_end FUN_02072554 -_020725D4: - .byte 0x08, 0x40, 0x2D, 0xE9, 0xD0, 0x20, 0xD0, 0xE1, 0x3C, 0x10, 0x93, 0xE5 - .byte 0x41, 0xE8, 0x82, 0xE0, 0x7F, 0x00, 0x5E, 0xE3, 0x7F, 0xE0, 0xA0, 0xC3, 0x01, 0x00, 0x00, 0xCA - .byte 0x00, 0x00, 0x5E, 0xE3, 0x00, 0xE0, 0xA0, 0xB3, 0x0E, 0x18, 0xA0, 0xE1, 0x44, 0x10, 0x83, 0xE5 - .byte 0x3C, 0x10, 0x83, 0xE5, 0x00, 0xC0, 0xA0, 0xE3, 0xB8, 0xC4, 0xC3, 0xE1, 0xC4, 0x20, 0x93, 0xE5 - .byte 0x4C, 0x10, 0x9F, 0xE5, 0xD7, 0x20, 0xD2, 0xE1, 0x40, 0x20, 0x42, 0xE2, 0x02, 0x20, 0x8E, 0xE0 - .byte 0xBA, 0x21, 0xC3, 0xE1, 0xB0, 0xE0, 0xD1, 0xE1, 0xB0, 0xC0, 0xC1, 0xE1, 0xB4, 0x20, 0x93, 0xE5 - .byte 0x00, 0x00, 0x52, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0xB6, 0x10, 0xD2, 0xE1, 0x40, 0x10, 0x81, 0xE3 - .byte 0xB6, 0x10, 0xC2, 0xE1, 0x54, 0x21, 0x92, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A - .byte 0x0C, 0x20, 0x9F, 0xE5, 0x01, 0x00, 0x80, 0xE2, 0xB0, 0x10, 0xD2, 0xE1, 0xB0, 0xE0, 0xC2, 0xE1 - .byte 0x08, 0x80, 0xBD, 0xE8, 0x08, 0x02, 0x00, 0x04 - - arm_func_start FUN_02072668 -FUN_02072668: @ 0x02072668 - push {r4, r5, r6, lr} - mov r5, r0 - ldrsb r1, [r5, #2] - ldrb r2, [r5] - ldrb r0, [r5, #1] - mov r4, r3 - lsl r1, r1, #0x10 - add r0, r2, r0, lsl #8 - lsl r0, r0, #0x10 - str r1, [r4, #0x44] - lsrs r6, r0, #0x10 - streq r1, [r4, #0x3c] - beq _020726B8 - ldr r0, [r4, #0x3c] - subs r0, r1, r0 - moveq r6, #0 - beq _020726B8 - mov r1, r6 - bl DivideInt - str r0, [r4, #0x40] -_020726B8: - strh r6, [r4, #0x48] - add r0, r5, #3 - pop {r4, r5, r6, pc} - arm_func_end FUN_02072668 - - arm_func_start FUN_020726c4 -FUN_020726c4: @ 0x020726C4 - push {r3, r4, r5, lr} - ldrb r5, [r0] - ldrb r1, [r0, #1] - ldrb r4, [r0, #2] - ldrb lr, [r0, #3] - ldrb ip, [r0, #4] - mov r2, #1 - add r1, r5, r1, lsl #8 - lsl r1, r1, #0x10 - strb r2, [r3, #0x95] - mov r2, #3 - strb r2, [r3, #0x96] - strb ip, [r3, #0x97] - asr r1, r1, #0x10 - str r1, [r3, #0x98] - add r1, r4, lr, lsl #8 - strh r1, [r3, #0x9c] - mov r1, #0 - strh r1, [r3, #0x9e] - strh r1, [r3, #0xa0] - strb r1, [r3, #0xa2] - add r0, r0, #5 - pop {r3, r4, r5, pc} - arm_func_end FUN_020726c4 -_02072720: - .byte 0x00, 0x20, 0xD0, 0xE5, 0x01, 0x10, 0xD0, 0xE5, 0x01, 0x14, 0x82, 0xE0, 0xBE, 0x19, 0xC3, 0xE1 - .byte 0x02, 0x20, 0xD0, 0xE5, 0x03, 0x10, 0xD0, 0xE5, 0x04, 0x00, 0x80, 0xE2, 0x01, 0x14, 0x82, 0xE0 - .byte 0xB0, 0x1A, 0xC3, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x10, 0xD0, 0xE5, 0x01, 0x00, 0x80, 0xE2 - .byte 0x02, 0x00, 0x51, 0xE3, 0x01, 0x10, 0xA0, 0x03, 0x95, 0x10, 0xC3, 0xE5, 0x00, 0x00, 0x51, 0xE3 - .byte 0x00, 0x10, 0xA0, 0x03, 0x03, 0x10, 0xA0, 0x13, 0x96, 0x10, 0xC3, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02072770 -FUN_02072770: @ 0x02072770 - push {r4, lr} - ldrb r2, [r0] - ldrb r1, [r0, #1] - ldrb ip, [r3, #0x61] - add r3, r3, #0x74 - add r1, r2, r1, lsl #8 - lsl r1, r1, #0x10 - ldrb r4, [r0, #2] - ldrb lr, [r0, #3] - ldrb r2, [r0, #4] - add r3, r3, ip, lsl #4 - asr r1, r1, #0x10 - strb r2, [r3, #3] - str r1, [r3, #4] - add r1, r4, lr, lsl #8 - strh r1, [r3, #8] - mov r1, #0 - strh r1, [r3, #0xa] - strh r1, [r3, #0xc] - strb r1, [r3, #0xe] - add r0, r0, #5 - pop {r4, pc} - arm_func_end FUN_02072770 -_020727C8: - .byte 0x61, 0xC0, 0xD3, 0xE5, 0x00, 0x20, 0xD0, 0xE5 - .byte 0x01, 0x10, 0xD0, 0xE5, 0x74, 0x30, 0x83, 0xE2, 0x0C, 0x32, 0x83, 0xE0, 0x01, 0x14, 0x82, 0xE0 - .byte 0xBA, 0x10, 0xC3, 0xE1, 0x02, 0x20, 0xD0, 0xE5, 0x03, 0x10, 0xD0, 0xE5, 0x04, 0x00, 0x80, 0xE2 - .byte 0x01, 0x14, 0x82, 0xE0, 0xBC, 0x10, 0xC3, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x61, 0x10, 0xD3, 0xE5 - .byte 0x00, 0xC0, 0xD0, 0xE5, 0x74, 0x20, 0x83, 0xE2, 0x01, 0x12, 0x82, 0xE0, 0x01, 0x20, 0xD0, 0xE5 - .byte 0x0A, 0x00, 0x5C, 0xE3, 0x0C, 0xF1, 0x8F, 0x90, 0x44, 0x00, 0x00, 0xEA, 0x43, 0x00, 0x00, 0xEA - .byte 0x08, 0x00, 0x00, 0xEA, 0x09, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x00, 0xEA - .byte 0x0C, 0x00, 0x00, 0xEA, 0x29, 0x00, 0x00, 0xEA, 0x2B, 0x00, 0x00, 0xEA, 0x2E, 0x00, 0x00, 0xEA - .byte 0x32, 0x00, 0x00, 0xEA, 0x36, 0x00, 0x00, 0xEA, 0x61, 0x20, 0xC3, 0xE5, 0x37, 0x00, 0x00, 0xEA - .byte 0x01, 0x20, 0xC1, 0xE5, 0x35, 0x00, 0x00, 0xEA, 0x02, 0x20, 0xC1, 0xE5, 0x33, 0x00, 0x00, 0xEA - .byte 0x03, 0x20, 0xC1, 0xE5, 0x31, 0x00, 0x00, 0xEA, 0x02, 0x30, 0xD1, 0xE5, 0x04, 0x00, 0x53, 0xE3 - .byte 0x03, 0xF1, 0x8F, 0x90, 0x14, 0x00, 0x00, 0xEA, 0x13, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA - .byte 0x05, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x00, 0xEA, 0x0A, 0x30, 0xA0, 0xE3 - .byte 0x92, 0x03, 0x03, 0xE0, 0x03, 0x20, 0xA0, 0xE1, 0x0E, 0x00, 0x00, 0xEA, 0x13, 0x30, 0xE0, 0xE3 - .byte 0x92, 0x03, 0x03, 0xE0, 0x03, 0x20, 0xA0, 0xE1, 0x0A, 0x00, 0x00, 0xEA, 0x14, 0x30, 0xA0, 0xE3 - .byte 0x92, 0x03, 0x03, 0xE0, 0x03, 0x20, 0xA0, 0xE1, 0x06, 0x00, 0x00, 0xEA, 0x0A, 0x30, 0xA0, 0xE3 - .byte 0x92, 0x03, 0x03, 0xE0, 0x03, 0x20, 0xA0, 0xE1, 0x02, 0x00, 0x00, 0xEA, 0x14, 0x30, 0xA0, 0xE3 - .byte 0x92, 0x03, 0x03, 0xE0, 0x03, 0x20, 0xA0, 0xE1, 0x04, 0x20, 0x81, 0xE5, 0x13, 0x00, 0x00, 0xEA - .byte 0x02, 0x21, 0x82, 0xE0, 0xB8, 0x20, 0xC1, 0xE1, 0x10, 0x00, 0x00, 0xEA, 0x14, 0x30, 0xA0, 0xE3 - .byte 0x92, 0x03, 0x03, 0xE0, 0xBA, 0x30, 0xC1, 0xE1, 0x0C, 0x00, 0x00, 0xEA, 0xBA, 0x30, 0xD1, 0xE1 - .byte 0xFF, 0x3C, 0x03, 0xE2, 0x02, 0x20, 0x83, 0xE1, 0xBA, 0x20, 0xC1, 0xE1, 0x07, 0x00, 0x00, 0xEA - .byte 0xBA, 0x30, 0xD1, 0xE1, 0xFF, 0x30, 0x03, 0xE2, 0x02, 0x24, 0x83, 0xE1, 0xBA, 0x20, 0xC1, 0xE1 - .byte 0x02, 0x00, 0x00, 0xEA, 0x14, 0x30, 0xA0, 0xE3, 0x92, 0x03, 0x03, 0xE0, 0xBC, 0x30, 0xC1, 0xE1 - .byte 0x02, 0x00, 0x80, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02072938 -FUN_02072938: @ 0x02072938 - push {r3, lr} - ldrb ip, [r0, #1] - ldrb r2, [r0] - ldrb lr, [r0, #2] - add r1, r3, #0x74 - cmp ip, #2 - strb r2, [r3, #0x61] - add r1, r1, r2, lsl #4 - moveq ip, #1 - strb ip, [r1, #1] - strb lr, [r1, #2] - add r0, r0, #3 - pop {r3, pc} - arm_func_end FUN_02072938 - - arm_func_start FUN_0207296c -FUN_0207296c: @ 0x0207296C - push {r4, lr} - mov r4, r0 - ldrb r2, [r4] - mov ip, r1 - mov r1, #8 - strb r2, [ip, #0x16] - ldr r0, [ip, #0x28] - ldr r3, [ip, #0xa0] - ldr ip, [ip, #0x9c] - blx ip - add r0, r4, #1 - pop {r4, pc} - arm_func_end FUN_0207296c -_0207299C: - .byte 0x02, 0x00, 0x80, 0xE2 - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_020729a4 -FUN_020729a4: @ 0x020729A4 - ldr r0, _020729B4 @ =0x022B9584 - mov r1, #0 - str r1, [r0] - bx lr - .align 2, 0 -_020729B4: .4byte 0x022B9584 - arm_func_end FUN_020729a4 - - arm_func_start FUN_020729b8 -FUN_020729b8: @ 0x020729B8 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr sb, _02072BB4 @ =0x022B9584 - ldr r8, [sb] - ldrb r6, [r8, #0x86] - cmp r6, #0 - moveq r0, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldrb r5, [r8, #0x85] - mov r1, #0 - cmp r6, #0 - str r1, [sp] - beq _02072B98 - mov fp, #3 - mov r1, #2 - mov r2, r1 - mov r3, fp - mov ip, r1 - mov lr, fp - mov r4, fp -_02072A04: - ldrb sl, [r8, #0x88] - add r7, r8, r5 - add r5, r5, #1 - sub r6, r6, #1 - and r5, r5, #0xff - cmp r5, #0x80 - moveq r5, #0 - ldrb r7, [r7, #4] - and r6, r6, #0xff - cmp sl, #0 - bne _02072B28 - tst r7, #0x80 - bne _02072A4C - add sl, sl, #1 - strb sl, [r8, #0x88] - ldr r8, [sb] - strb r7, [r8, #0x8c] - b _02072B30 -_02072A4C: - and sl, r7, #0xf0 - strb sl, [r8, #0x8a] - and r8, r7, #0xf - ldr r7, [sb] - strb r8, [r7, #0x8b] - ldr r7, [sb] - ldrb r8, [r7, #0x8a] - cmp r8, #0xc0 - bgt _02072AA8 - bge _02072AF8 - cmp r8, #0x90 - bgt _02072A8C - bge _02072AE0 - cmp r8, #0x80 - beq _02072AD8 - b _02072B1C -_02072A8C: - cmp r8, #0xa0 - bgt _02072A9C - beq _02072AE8 - b _02072B1C -_02072A9C: - cmp r8, #0xb0 - beq _02072AF0 - b _02072B1C -_02072AA8: - cmp r8, #0xe0 - bgt _02072AC0 - bge _02072B08 - cmp r8, #0xd0 - beq _02072B00 - b _02072B1C -_02072AC0: - cmp r8, #0xf0 - bgt _02072AD0 - beq _02072B10 - b _02072B1C -_02072AD0: - cmp r8, #0xff - b _02072B1C -_02072AD8: - strb r4, [r7, #0x87] - b _02072B30 -_02072AE0: - strb lr, [r7, #0x87] - b _02072B30 -_02072AE8: - strb ip, [r7, #0x87] - b _02072B30 -_02072AF0: - strb r3, [r7, #0x87] - b _02072B30 -_02072AF8: - strb r2, [r7, #0x87] - b _02072B30 -_02072B00: - strb r1, [r7, #0x87] - b _02072B30 -_02072B08: - strb fp, [r7, #0x87] - b _02072B30 -_02072B10: - mov r8, #3 - strb r8, [r7, #0x87] - b _02072B30 -_02072B1C: - mov r8, #0 - strb r8, [r7, #0x87] - b _02072B30 -_02072B28: - add r8, r8, sl - strb r7, [r8, #0x8b] -_02072B30: - ldr r7, [sb] - ldrb r8, [r7, #0x88] - add r8, r8, #1 - strb r8, [r7, #0x88] - ldr r8, [sb] - ldrb sl, [r8, #0x88] - ldrb r7, [r8, #0x87] - cmp sl, r7 - bne _02072B90 - mov r2, #0 - ldr r1, _02072BB4 @ =0x022B9584 - strb r2, [r8, #0x88] - ldr r3, [r1] - mov r1, #1 - str r1, [sp] - ldrb r2, [r3, #0x8a] - ldrb r1, [r3, #0x8b] - strb r2, [r0] - strb r1, [r0, #1] - ldrb r2, [r3, #0x8c] - ldrb r1, [r3, #0x8d] - strb r2, [r0, #2] - strb r1, [r0, #3] - b _02072B98 -_02072B90: - cmp r6, #0 - bne _02072A04 -_02072B98: - ldr r1, _02072BB4 @ =0x022B9584 - ldr r0, [sp] - ldr r2, [r1] - strb r6, [r2, #0x86] - ldr r1, [r1] - strb r5, [r1, #0x85] - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02072BB4: .4byte 0x022B9584 - arm_func_end FUN_020729b8 - - arm_func_start FUN_02072bb8 -FUN_02072bb8: @ 0x02072BB8 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0xc - ldr r0, _02072D94 @ =0x022B9584 - ldr r0, [r0] - ldr r4, [r0] - cmp r4, #0 - addeq sp, sp, #0xc - popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} - add r0, sp, #8 - bl FUN_020729b8 - cmp r0, #0 - addeq sp, sp, #0xc - popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} - add sb, r4, #0x10 - mov r6, #0 - ldr r4, _02072D98 @ =0x020B0D50 - add r7, sp, #0 - mov r5, #1 - mov r8, r6 - mov fp, #0xc8 -_02072C08: - ldrb r1, [sp, #9] - ldrb r0, [sp, #8] - mla sl, r1, fp, sb - cmp r0, #0xc0 - bgt _02072C4C - bge _02072D4C - cmp r0, #0x90 - bgt _02072C38 - bge _02072CC0 - cmp r0, #0x80 - beq _02072C8C - b _02072D7C -_02072C38: - cmp r0, #0xa0 - ble _02072D7C - cmp r0, #0xb0 - beq _02072D2C - b _02072D7C -_02072C4C: - cmp r0, #0xf0 - bgt _02072C6C - bge _02072D7C - cmp r0, #0xd0 - ble _02072D7C - cmp r0, #0xe0 - beq _02072D5C - b _02072D7C -_02072C6C: - cmp r0, #0xf7 - ble _02072D7C - cmp r0, #0xff - bgt _02072D7C - cmp r0, #0xfe - blt _02072D7C - cmpne r0, #0xff - b _02072D7C -_02072C8C: - ldrb r1, [sp, #0xa] - ldrb r0, [sp, #0xb] - str r8, [sp, #4] - strb r1, [sp, #2] - strb r0, [sp, #3] - strb r8, [sp] - ldrb r0, [sl, #4] - tst r0, #1 - bne _02072D7C - mov r0, sl - mov r1, r7 - bl FUN_02073d68 - b _02072D7C -_02072CC0: - ldrb r0, [sp, #0xb] - ldrb r1, [sp, #0xa] - str r6, [sp, #4] - strb r0, [sp, #3] - strb r1, [sp, #2] - tst r0, #0xff - beq _02072D0C - mov r0, sl - mov r1, r7 - strb r5, [sp] - bl FUN_02073ea0 - mov r0, sl - mov r1, r7 - bl FUN_02073cd8 - movs r1, r0 - beq _02072D7C - mov r0, sl - bl FUN_02073edc - b _02072D7C -_02072D0C: - strb r6, [sp] - ldrb r0, [sl, #4] - tst r0, #1 - bne _02072D7C - mov r0, sl - mov r1, r7 - bl FUN_02073d68 - b _02072D7C -_02072D2C: - ldrb r0, [sp, #0xa] - ldr r2, [r4, r0, lsl #2] - cmp r2, #0 - beq _02072D7C - ldrb r1, [sp, #0xb] - mov r0, sl - blx r2 - b _02072D7C -_02072D4C: - ldrb r1, [sp, #0xa] - mov r0, sl - bl FUN_02073bc8 - b _02072D7C -_02072D5C: - ldrb r2, [sp, #0xa] - ldrb r1, [sp, #0xb] - mov r0, sl - add r1, r2, r1, lsl #7 - sub r1, r1, #0x2000 - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - bl FUN_02073c90 -_02072D7C: - add r0, sp, #8 - bl FUN_020729b8 - cmp r0, #0 - bne _02072C08 - add sp, sp, #0xc - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02072D94: .4byte 0x022B9584 -_02072D98: .4byte 0x020B0D50 - arm_func_end FUN_02072bb8 -_02072D9C: - .byte 0xBE, 0x20, 0xD0, 0xE1 - .byte 0x10, 0xC0, 0x9F, 0xE5, 0xFF, 0x20, 0x02, 0xE2, 0x01, 0x14, 0x82, 0xE0, 0xBE, 0x10, 0xC0, 0xE1 - .byte 0xBE, 0x10, 0xD0, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1, 0x90, 0x3B, 0x07, 0x02, 0xBE, 0x20, 0xD0, 0xE1 - .byte 0x10, 0xC0, 0x9F, 0xE5, 0xFF, 0x20, 0xC2, 0xE3, 0x01, 0x10, 0x82, 0xE0, 0x01, 0x18, 0xA0, 0xE1 - .byte 0x21, 0x18, 0xA0, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1, 0x90, 0x3B, 0x07, 0x02, 0x01, 0x1C, 0xA0, 0xE1 - .byte 0x41, 0x1C, 0xA0, 0xE1, 0x04, 0xC0, 0x9F, 0xE5, 0x51, 0x10, 0xC0, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 - .byte 0x5C, 0x3C, 0x07, 0x02, 0x0A, 0x20, 0xA0, 0xE3, 0x91, 0x02, 0x02, 0xE0, 0xB6, 0x25, 0xC0, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02072e04 -FUN_02072e04: @ 0x02072E04 - push {r4, lr} - lsl r2, r1, #0x10 - str r2, [r0, #0x34] - str r2, [r0, #0x2c] - mov r4, #0 - strh r4, [r0, #0x38] - ldrb r3, [r0, #0x50] - ldr lr, [r0, #0xc4] - ldr r2, _02072E88 @ =0x82061029 - mul ip, r1, r3 - ldrsb r1, [lr, #8] - ldr r3, _02072E8C @ =0x04000208 - mul ip, r1, ip - smull r1, lr, r2, ip - add lr, ip, lr - lsr r1, ip, #0x1f - add lr, r1, lr, asr #13 - strh lr, [r0, #0x18] - ldrh r2, [r3] - strh r4, [r3] - ldr r1, [r0, #0xb4] - cmp r1, #0 - beq _02072E78 -_02072E60: - ldrh r0, [r1, #6] - orr r0, r0, #0x20 - strh r0, [r1, #6] - ldr r1, [r1, #0x154] - cmp r1, #0 - bne _02072E60 -_02072E78: - ldr r1, _02072E8C @ =0x04000208 - ldrh r0, [r1] - strh r2, [r1] - pop {r4, pc} - .align 2, 0 -_02072E88: .4byte 0x82061029 -_02072E8C: .4byte 0x04000208 - arm_func_end FUN_02072e04 -_02072E90: - .byte 0x01, 0x18, 0xA0, 0xE1, 0x44, 0x10, 0x80, 0xE5, 0x3C, 0x10, 0x80, 0xE5, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x3C, 0x10, 0x9F, 0xE5, 0xB8, 0x24, 0xC0, 0xE1, 0xB0, 0x30, 0xD1, 0xE1, 0xB0, 0x20, 0xC1, 0xE1 - .byte 0xB4, 0x10, 0x90, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0xB6, 0x00, 0xD1, 0xE1 - .byte 0x40, 0x00, 0x80, 0xE3, 0xB6, 0x00, 0xC1, 0xE1, 0x54, 0x11, 0x91, 0xE5, 0x00, 0x00, 0x51, 0xE3 - .byte 0xF9, 0xFF, 0xFF, 0x1A, 0x08, 0x10, 0x9F, 0xE5, 0xB0, 0x00, 0xD1, 0xE1, 0xB0, 0x30, 0xC1, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x02, 0x00, 0x04, 0x40, 0x20, 0x9F, 0xE5, 0x50, 0x10, 0xC0, 0xE5 - .byte 0xB0, 0x30, 0xD2, 0xE1, 0x00, 0x10, 0xA0, 0xE3, 0xB0, 0x10, 0xC2, 0xE1, 0xB4, 0x10, 0x90, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0xB6, 0x00, 0xD1, 0xE1, 0x20, 0x00, 0x80, 0xE3 - .byte 0xB6, 0x00, 0xC1, 0xE1, 0x54, 0x11, 0x91, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A - .byte 0x08, 0x10, 0x9F, 0xE5, 0xB0, 0x00, 0xD1, 0xE1, 0xB0, 0x30, 0xC1, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x08, 0x02, 0x00, 0x04, 0x58, 0x10, 0xC0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02072f3c -FUN_02072f3c: @ 0x02072F3C - push {r3, lr} - cmp r1, #0x40 - ldrb r1, [r0, #4] - orrhs r1, r1, #1 - strbhs r1, [r0, #4] - pophs {r3, pc} - bic r1, r1, #1 - strb r1, [r0, #4] - bl FUN_020747dc - pop {r3, pc} - arm_func_end FUN_02072f3c -_02072F64: - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x5C, 0x10, 0xC0, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x60, 0x10, 0xC0, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x5A, 0x10, 0xC0, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x60, 0x10, 0xC0, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x5B, 0x10, 0xC0, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x60, 0x10, 0xC0, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02072fac -FUN_02072fac: @ 0x02072FAC - push {r3, lr} - ldr r0, _02072FD4 @ =0x022B9584 - ldr r0, [r0] - ldr r0, [r0] - bl FUN_02073480 - ldr r0, _02072FD4 @ =0x022B9584 - ldr r0, [r0] - ldr r0, [r0] - bl FUN_020733bc - pop {r3, pc} - .align 2, 0 -_02072FD4: .4byte 0x022B9584 - arm_func_end FUN_02072fac -_02072FD8: - .byte 0x14, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0x0C, 0xC0, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE1, 0x00, 0x00, 0x90, 0xE5 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x84, 0x95, 0x2B, 0x02, 0x4C, 0x38, 0x07, 0x02, 0x38, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x40, 0xA0, 0xE1, 0xA1, 0x02, 0x00, 0xEB, 0x64, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3 - .byte 0xB0, 0x50, 0xD1, 0xE1, 0xB0, 0x00, 0xC1, 0xE1, 0xB8, 0xE0, 0x94, 0xE5, 0x00, 0x00, 0x5E, 0xE3 - .byte 0xB0, 0x00, 0xD1, 0x01, 0xB0, 0x50, 0xC1, 0x01, 0x38, 0x80, 0xBD, 0x08, 0x0E, 0xC0, 0xA0, 0xE1 - .byte 0x00, 0x10, 0xE0, 0xE3, 0x00, 0x30, 0xA0, 0xE1, 0x04, 0x10, 0x8E, 0xE5, 0x01, 0x30, 0xCC, 0xE5 - .byte 0x08, 0x00, 0x9C, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x00, 0xC0, 0xA0, 0x11, 0xF9, 0xFF, 0xFF, 0x1A - .byte 0x20, 0x00, 0x9F, 0xE5, 0x18, 0x10, 0x9F, 0xE5, 0x50, 0x26, 0x90, 0xE5, 0x08, 0x20, 0x8C, 0xE5 - .byte 0x50, 0xE6, 0x80, 0xE5, 0xB8, 0x30, 0x84, 0xE5, 0xB0, 0x00, 0xD1, 0xE1, 0xB0, 0x50, 0xC1, 0xE1 - .byte 0x38, 0x80, 0xBD, 0xE8, 0x08, 0x02, 0x00, 0x04, 0x30, 0x73, 0x2B, 0x02, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x07, 0x10, 0xC0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x10, 0xA0, 0xE3, 0x07, 0x10, 0xC0, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0xC0, 0x9F, 0xE5, 0x72, 0x10, 0xC0, 0xE5, 0x64, 0x00, 0x80, 0xE2 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xA0, 0x4C, 0x07, 0x02, 0x08, 0xC0, 0x9F, 0xE5, 0x6D, 0x10, 0xC0, 0xE5 - .byte 0x64, 0x00, 0x80, 0xE2, 0x1C, 0xFF, 0x2F, 0xE1, 0xA0, 0x4C, 0x07, 0x02, 0x08, 0xC0, 0x9F, 0xE5 - .byte 0x6E, 0x10, 0xC0, 0xE5, 0x64, 0x00, 0x80, 0xE2, 0x1C, 0xFF, 0x2F, 0xE1, 0xA0, 0x4C, 0x07, 0x02 - .byte 0x08, 0xC0, 0x9F, 0xE5, 0x71, 0x10, 0xC0, 0xE5, 0x64, 0x00, 0x80, 0xE2, 0x1C, 0xFF, 0x2F, 0xE1 - .byte 0xA0, 0x4C, 0x07, 0x02, 0x61, 0x20, 0xD0, 0xE5, 0x01, 0x11, 0x81, 0xE0, 0x02, 0x02, 0x80, 0xE0 - .byte 0xBC, 0x17, 0xC0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x02, 0x30, 0x01, 0xE2, 0x74, 0x20, 0x80, 0xE2 - .byte 0x61, 0x30, 0xC0, 0xE5, 0x03, 0x22, 0x82, 0xE0, 0x41, 0x01, 0xA0, 0xE1, 0x01, 0x00, 0xC2, 0xE5 - .byte 0x01, 0x00, 0x83, 0xE2, 0x02, 0x00, 0xC2, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x61, 0x20, 0xD0, 0xE5 - .byte 0x02, 0x02, 0x80, 0xE0, 0x77, 0x10, 0xC0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x61, 0x20, 0xD0, 0xE5 - .byte 0x74, 0x00, 0x80, 0xE2, 0x02, 0x02, 0x80, 0xE0, 0x02, 0x20, 0xD0, 0xE5, 0x04, 0x00, 0x52, 0xE3 - .byte 0x02, 0xF1, 0x8F, 0x90, 0x18, 0x00, 0x00, 0xEA, 0x17, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA - .byte 0x06, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00, 0xEA, 0x0E, 0x00, 0x00, 0xEA, 0x0A, 0x20, 0xA0, 0xE3 - .byte 0x91, 0x02, 0x02, 0xE0, 0x02, 0x18, 0xA0, 0xE1, 0x41, 0x18, 0xA0, 0xE1, 0x12, 0x00, 0x00, 0xEA - .byte 0x13, 0x20, 0xE0, 0xE3, 0x91, 0x02, 0x02, 0xE0, 0x02, 0x18, 0xA0, 0xE1, 0x41, 0x18, 0xA0, 0xE1 - .byte 0x0D, 0x00, 0x00, 0xEA, 0x14, 0x20, 0xA0, 0xE3, 0x91, 0x02, 0x02, 0xE0, 0x02, 0x18, 0xA0, 0xE1 - .byte 0x41, 0x18, 0xA0, 0xE1, 0x08, 0x00, 0x00, 0xEA, 0x0A, 0x20, 0xA0, 0xE3, 0x91, 0x02, 0x02, 0xE0 - .byte 0x02, 0x18, 0xA0, 0xE1, 0x41, 0x18, 0xA0, 0xE1, 0x03, 0x00, 0x00, 0xEA, 0x14, 0x20, 0xA0, 0xE3 - .byte 0x91, 0x02, 0x02, 0xE0, 0x02, 0x18, 0xA0, 0xE1, 0x41, 0x18, 0xA0, 0xE1, 0x04, 0x10, 0x80, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x14, 0x20, 0xA0, 0xE3, 0x91, 0x02, 0x02, 0xE0, 0x61, 0x10, 0xD0, 0xE5 - .byte 0x01, 0x02, 0x80, 0xE0, 0xBE, 0x27, 0xC0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x14, 0x20, 0xA0, 0xE3 - .byte 0x91, 0x02, 0x02, 0xE0, 0x61, 0x10, 0xD0, 0xE5, 0x01, 0x02, 0x80, 0xE0, 0xB0, 0x28, 0xC0, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x59, 0x10, 0xC0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02073208 -FUN_02073208: @ 0x02073208 - push {r4, lr} - ldr r1, _02073274 @ =0x022B7330 - mov r2, #1 - ldrsb r3, [r1, #0x41] - mov r4, #0 - mov r1, #0x7f - strb r3, [r0, #2] - strb r2, [r0, #3] - strh r4, [r0, #4] - strb r1, [r0, #6] - mov r1, #0x40 - strb r1, [r0, #7] - ldrb ip, [r0, #2] - ldrsb r1, [r0, #6] - ldr r2, _02073278 @ =0x81020409 - ldr r3, _0207327C @ =0x022B7A30 - smulbb ip, ip, r1 - smull r1, lr, r2, ip - add lr, ip, lr - lsr r1, ip, #0x1f - add lr, r1, lr, asr #6 - strb lr, [r0, #8] - strb r4, [r0, #9] - strb r4, [r0, #0xa] - ldrh r1, [r3, #0x2e] - strb r1, [r0, #0xb] - pop {r4, pc} - .align 2, 0 -_02073274: .4byte 0x022B7330 -_02073278: .4byte 0x81020409 -_0207327C: .4byte 0x022B7A30 - arm_func_end FUN_02073208 - - arm_func_start FUN_02073280 -FUN_02073280: @ 0x02073280 - push {r3, r4, r5, lr} - mov r5, r0 - mov r0, #0xc8 - mul r0, r5, r0 - mov r2, r1 - add r0, r0, #0x10 - mov r1, #0x10 - bl FUN_0206c9bc - movs r4, r0 - moveq r0, #0 - popeq {r3, r4, r5, pc} - mov r1, #0 - strb r1, [r4] - strb r5, [r4, #1] - str r1, [r4, #0xc] - bl FUN_02073208 - cmp r5, #0 - add r1, r4, #0x10 - mov r2, #0 - ble _02073300 - mov r0, r2 -_020732D4: - str r0, [r1] - strb r2, [r1, #5] - str r0, [r1, #0xb4] - str r0, [r1, #0xb8] - str r0, [r1, #0xbc] - str r0, [r1, #0xc0] - add r2, r2, #1 - str r4, [r1, #0xc4] - cmp r2, r5 - add r1, r1, #0xc8 - blt _020732D4 -_02073300: - ldr r1, _02073348 @ =0x04000208 - mov r0, #0 - ldrh r3, [r1] - ldr r2, _0207334C @ =0x022B7988 - strh r0, [r1] - ldr r0, [r2] - cmp r0, #0 - beq _02073330 -_02073320: - add r2, r0, #0xc - ldr r0, [r0, #0xc] - cmp r0, #0 - bne _02073320 -_02073330: - ldr r1, _02073348 @ =0x04000208 - str r4, [r2] - ldrh r0, [r1] - mov r0, r4 - strh r3, [r1] - pop {r3, r4, r5, pc} - .align 2, 0 -_02073348: .4byte 0x04000208 -_0207334C: .4byte 0x022B7988 - arm_func_end FUN_02073280 - - arm_func_start FUN_02073350 -FUN_02073350: @ 0x02073350 - push {r3, r4, r5, lr} - mov r5, r0 - bl FUN_02073480 - ldr r2, _020733B4 @ =0x04000208 - mov r0, r5 - ldrh r4, [r2] - mov r1, #0 - strh r1, [r2] - bl FUN_020733bc - ldr r1, _020733B8 @ =0x022B7988 - b _02073380 -_0207337C: - add r1, r0, #0xc -_02073380: - ldr r0, [r1] - cmp r0, #0 - cmpne r0, r5 - bne _0207337C - cmp r0, r5 - ldreq r0, [r5, #0xc] - ldr r2, _020733B4 @ =0x04000208 - streq r0, [r1] - ldrh r1, [r2] - mov r0, r5 - strh r4, [r2] - bl FUN_0206cc14 - pop {r3, r4, r5, pc} - .align 2, 0 -_020733B4: .4byte 0x04000208 -_020733B8: .4byte 0x022B7988 - arm_func_end FUN_02073350 - - arm_func_start FUN_020733bc -FUN_020733bc: @ 0x020733BC - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldrb r3, [r0, #1] - add r1, r0, #0x10 - mov r2, #0 - cmp r3, #0 - pople {r3, r4, r5, r6, r7, r8, sb, pc} - ldr r7, _02073450 @ =0x04000208 - ldr ip, _02073454 @ =0x022B7330 - mvn r5, #0 - mov r4, r2 - mov r6, r2 -_020733E8: - ldrh r3, [r7] - strh r6, [r7] - ldr sb, [r1, #0xb8] - cmp sb, #0 - ldrheq lr, [r7] - strheq r3, [r7] - beq _02073438 - mov r8, sb -_02073408: - str r5, [sb, #4] - strb r4, [r8, #1] - ldr lr, [r8, #8] - cmp lr, #0 - movne r8, lr - bne _02073408 - ldr lr, [ip, #0x650] - str lr, [r8, #8] - str sb, [ip, #0x650] - str r4, [r1, #0xb8] - ldrh lr, [r7] - strh r3, [r7] -_02073438: - ldrb r3, [r0, #1] - add r2, r2, #1 - add r1, r1, #0xc8 - cmp r2, r3 - blt _020733E8 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_02073450: .4byte 0x04000208 -_02073454: .4byte 0x022B7330 - arm_func_end FUN_020733bc - - arm_func_start FUN_02073458 -FUN_02073458: @ 0x02073458 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl FUN_02073208 - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_0207384c - pop {r4, r5, r6, pc} - arm_func_end FUN_02073458 - - arm_func_start FUN_02073480 -FUN_02073480: @ 0x02073480 - push {r3, r4, r5, lr} - ldrb r5, [r0, #1] - add r4, r0, #0x10 - cmp r5, #0 - popeq {r3, r4, r5, pc} -_02073494: - mov r0, r4 - bl FUN_02073a90 - subs r5, r5, #1 - add r4, r4, #0xc8 - bne _02073494 - pop {r3, r4, r5, pc} - arm_func_end FUN_02073480 - - arm_func_start FUN_020734ac -FUN_020734ac: @ 0x020734AC - push {r3, r4, r5, r6, r7, lr} - ldr r3, _02073500 @ =0x04000208 - mov r2, #0 - ldrh r6, [r3] - mov r7, r1 - add r4, r0, #0x10 - strh r2, [r3] - strb r7, [r0, #9] - ldrb r5, [r0, #1] - cmp r5, #0 - beq _020734F0 -_020734D8: - mov r0, r4 - mov r1, r7 - bl FUN_02073b14 - subs r5, r5, #1 - add r4, r4, #0xc8 - bne _020734D8 -_020734F0: - ldr r1, _02073500 @ =0x04000208 - ldrh r0, [r1] - strh r6, [r1] - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02073500: .4byte 0x04000208 - arm_func_end FUN_020734ac - - arm_func_start FUN_02073504 -FUN_02073504: @ 0x02073504 - push {r3, r4, r5, r6, r7, lr} - ldr r2, _02073568 @ =0x04000208 - ldrb r6, [r0, #1] - ldrh r4, [r2] - mov r1, #0 - cmp r6, #0 - strh r1, [r2] - add r5, r0, #0x10 - beq _02073558 -_02073528: - ldr r7, [r5, #0xb8] - cmp r7, #0 - beq _0207354C -_02073534: - mov r0, r5 - mov r1, r7 - bl FUN_02073edc - ldr r7, [r7, #8] - cmp r7, #0 - bne _02073534 -_0207354C: - subs r6, r6, #1 - add r5, r5, #0xc8 - bne _02073528 -_02073558: - ldr r1, _02073568 @ =0x04000208 - ldrh r0, [r1] - strh r4, [r1] - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02073568: .4byte 0x04000208 - arm_func_end FUN_02073504 - - arm_func_start FUN_0207356c -FUN_0207356c: @ 0x0207356C - push {r4, r5, r6, r7, r8, lr} - ldr r3, _02073644 @ =0x022B7370 - ldr r4, _02073648 @ =0x81020409 - ldrsb r5, [r3, r1] - add r3, r0, #0x10 - mov ip, #0 - strb r5, [r0, #2] - strb r1, [r0, #3] - ldrb r5, [r0, #2] - ldrsb r1, [r0, #6] - smulbb r5, r5, r1 - smull r1, r6, r4, r5 - add r6, r5, r6 - lsr r1, r5, #0x1f - add r6, r1, r6, asr #6 - strb r6, [r0, #8] - ldrb r1, [r0, #1] - cmp r1, #0 - pople {r4, r5, r6, r7, r8, pc} - ldr r6, _0207364C @ =0x04000208 - mov r5, ip -_020735C0: - ldr r4, [r3, #0x2c] - ldrb r1, [r3, #0x50] - asr r4, r4, #0x10 - ldrsb lr, [r0, #8] - mul r1, r4, r1 - mul r7, lr, r1 - ldr r4, _02073650 @ =0x82061029 - lsr r1, r7, #0x1f - smull lr, r8, r4, r7 - add r8, r7, r8 - add r8, r1, r8, asr #13 - strh r8, [r3, #0x18] - cmp r2, #1 - bne _0207362C - ldrh r7, [r6] - strh r5, [r6] - ldr r4, [r3, #0xb4] - cmp r4, #0 - beq _02073624 -_0207360C: - ldrh r1, [r4, #6] - orr r1, r1, #0x20 - strh r1, [r4, #6] - ldr r4, [r4, #0x154] - cmp r4, #0 - bne _0207360C -_02073624: - ldrh r1, [r6] - strh r7, [r6] -_0207362C: - ldrb r1, [r0, #1] - add ip, ip, #1 - add r3, r3, #0xc8 - cmp ip, r1 - blt _020735C0 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02073644: .4byte 0x022B7370 -_02073648: .4byte 0x81020409 -_0207364C: .4byte 0x04000208 -_02073650: .4byte 0x82061029 - arm_func_end FUN_0207356c - - arm_func_start FUN_02073654 -FUN_02073654: @ 0x02073654 - push {r3, r4, r5, lr} - strh r1, [r0, #4] - ldrb r3, [r0, #1] - add r1, r0, #0x10 - mov r2, #0 - cmp r3, #0 - pople {r3, r4, r5, pc} - ldr lr, _020736E4 @ =0x04000208 - mov ip, r2 -_02073678: - ldr r3, [r1, #0x1c] - ldrsh r4, [r1, #0x54] - asr r3, r3, #0x10 - lsl r3, r3, #0x10 - ldrsh r5, [r0, #4] - add r3, r4, r3, asr #16 - add r3, r5, r3 - strh r3, [r1, #0x16] - ldrh r5, [lr] - strh ip, [lr] - ldr r4, [r1, #0xb4] - cmp r4, #0 - beq _020736C4 -_020736AC: - ldrh r3, [r4, #6] - orr r3, r3, #0x10 - strh r3, [r4, #6] - ldr r4, [r4, #0x154] - cmp r4, #0 - bne _020736AC -_020736C4: - ldrh r3, [lr] - add r2, r2, #1 - add r1, r1, #0xc8 - strh r5, [lr] - ldrb r3, [r0, #1] - cmp r2, r3 - blt _02073678 - pop {r3, r4, r5, pc} - .align 2, 0 -_020736E4: .4byte 0x04000208 - arm_func_end FUN_02073654 - - arm_func_start FUN_020736e8 -FUN_020736e8: @ 0x020736E8 - push {r4, r5, r6, lr} - strb r1, [r0, #6] - ldrb r4, [r0, #2] - ldrsb r2, [r0, #6] - ldr r3, _020737AC @ =0x81020409 - add r1, r0, #0x10 - smulbb r4, r4, r2 - smull r2, r5, r3, r4 - add r5, r4, r5 - lsr r2, r4, #0x1f - add r5, r2, r5, asr #6 - strb r5, [r0, #8] - ldrb r3, [r0, #1] - mov r2, #0 - cmp r3, #0 - pople {r4, r5, r6, pc} - ldr r4, _020737B0 @ =0x04000208 - ldr ip, _020737B4 @ =0x82061029 - mov lr, r2 -_02073734: - ldr r5, [r1, #0x2c] - ldrb r3, [r1, #0x50] - asr r5, r5, #0x10 - ldrsb r6, [r0, #8] - mul r3, r5, r3 - mul r5, r6, r3 - smull r3, r6, ip, r5 - add r6, r5, r6 - lsr r3, r5, #0x1f - add r6, r3, r6, asr #13 - strh r6, [r1, #0x18] - ldrh r6, [r4] - strh lr, [r4] - ldr r5, [r1, #0xb4] - cmp r5, #0 - beq _0207378C -_02073774: - ldrh r3, [r5, #6] - orr r3, r3, #0x20 - strh r3, [r5, #6] - ldr r5, [r5, #0x154] - cmp r5, #0 - bne _02073774 -_0207378C: - ldrh r3, [r4] - add r2, r2, #1 - add r1, r1, #0xc8 - strh r6, [r4] - ldrb r3, [r0, #1] - cmp r2, r3 - blt _02073734 - pop {r4, r5, r6, pc} - .align 2, 0 -_020737AC: .4byte 0x81020409 -_020737B0: .4byte 0x04000208 -_020737B4: .4byte 0x82061029 - arm_func_end FUN_020736e8 - - arm_func_start FUN_020737b8 -FUN_020737b8: @ 0x020737B8 - push {r3, r4, r5, lr} - strb r1, [r0, #7] - ldrb r3, [r0, #1] - add r1, r0, #0x10 - mov r2, #0 - cmp r3, #0 - pople {r3, r4, r5, pc} - ldr lr, _02073848 @ =0x04000208 - mov ip, r2 -_020737DC: - ldr r3, [r1, #0xc4] - ldr r4, [r1, #0x3c] - ldrsb r3, [r3, #7] - asr r4, r4, #0x10 - and r4, r4, #0xff - sub r3, r3, #0x40 - add r3, r4, r3 - strh r3, [r1, #0x1a] - ldrh r5, [lr] - strh ip, [lr] - ldr r4, [r1, #0xb4] - cmp r4, #0 - beq _02073828 -_02073810: - ldrh r3, [r4, #6] - orr r3, r3, #0x40 - strh r3, [r4, #6] - ldr r4, [r4, #0x154] - cmp r4, #0 - bne _02073810 -_02073828: - ldrh r3, [lr] - add r2, r2, #1 - add r1, r1, #0xc8 - strh r5, [lr] - ldrb r3, [r0, #1] - cmp r2, r3 - blt _020737DC - pop {r3, r4, r5, pc} - .align 2, 0 -_02073848: .4byte 0x04000208 - arm_func_end FUN_020737b8 - - arm_func_start FUN_0207384c -FUN_0207384c: @ 0x0207384C - push {r4, r5, r6, r7, r8, sb, sl, lr} - ldr r3, _020738D8 @ =0x022B7330 - mov sl, r0 - ldrsb r6, [r3, #0x3d] - mov r7, #0 - mov sb, r1 - strb r7, [r3, #0x3d] - ldrb r0, [sl, #1] - mov r8, r2 - add r5, sl, #0x10 - cmp r0, #0 - ble _020738CC - lsl r0, sb, #0x10 - lsr r4, r0, #0x10 -_02073884: - mov r0, r5 - bl FUN_02073a90 - mov r0, r5 - mov r1, r8 - bl FUN_020738dc - cmp sb, #0 - blt _020738B8 - mov r0, r5 - mov r1, r4 - bl FUN_02073b90 - mov r0, r5 - mov r1, r4 - bl FUN_02073bc8 -_020738B8: - ldrb r0, [sl, #1] - add r7, r7, #1 - add r5, r5, #0xc8 - cmp r7, r0 - blt _02073884 -_020738CC: - ldr r0, _020738D8 @ =0x022B7330 - strb r6, [r0, #0x3d] - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_020738D8: .4byte 0x022B7330 - arm_func_end FUN_0207384c - - arm_func_start FUN_020738dc -FUN_020738dc: @ 0x020738DC - push {r3, r4, r5, lr} - mov r4, r0 - str r1, [r4] - mov r0, #0 - strb r0, [r4, #4] - strb r0, [r4, #6] - mov r1, #1 - strb r1, [r4, #7] - ldr r1, _02073A80 @ =0x022B7A30 - strb r0, [r4, #8] - ldrh r3, [r1, #0x2e] - ldr r1, _02073A84 @ =0x022B7330 - mov r2, #0x7f - strb r3, [r4, #9] - strh r0, [r4, #0xa] - strb r0, [r4, #0xc] - strb r0, [r4, #0xd] - add r1, r1, #0x600 - ldrsb ip, [r1, #0x74] - ldrsb r3, [r1, #0x94] - add r3, r3, ip, lsl #8 - strh r3, [r4, #0xe] - strh r0, [r4, #0x10] - strh r0, [r4, #0x14] - str r0, [r4, #0x1c] - strh r0, [r4, #0x28] - ldrsb r3, [r1, #0x7b] - lsl r3, r3, #0x10 - str r3, [r4, #0x2c] - strh r0, [r4, #0x38] - ldrsb r3, [r1, #0x7e] - lsl r3, r3, #0x10 - str r3, [r4, #0x3c] - strh r0, [r4, #0x48] - strh r0, [r4, #0x54] - ldrsb r3, [r1, #0x7f] - strb r3, [r4, #0x50] - ldrsb r1, [r1, #0x75] - strb r1, [r4, #0x51] - strh r0, [r4, #0x52] - strh r0, [r4, #0x56] - strb r2, [r4, #0x58] - strb r0, [r4, #0x59] - strb r0, [r4, #0x5a] - strb r0, [r4, #0x5b] - strb r0, [r4, #0x5c] - strb r0, [r4, #0x5d] - strb r0, [r4, #0x5e] - strb r0, [r4, #0x5f] - strb r0, [r4, #0x60] - mov r2, r0 -_020739A8: - add r1, r4, r0, lsl #4 - strb r2, [r1, #0x75] - add r0, r0, #1 - strb r2, [r1, #0x76] - cmp r0, #4 - blt _020739A8 - add r0, r4, #0x64 - bl FUN_02074c84 - mov r0, #0 - ldr r1, _02073A88 @ =0x04000208 - str r0, [r4, #0xb4] - ldrh r5, [r1] - strh r0, [r1] - ldr lr, [r4, #0xb8] - cmp lr, #0 - ldrheq r0, [r1] - strheq r5, [r1] - beq _02073A34 - mov ip, lr - mvn r1, #0 - mov r3, r0 -_020739FC: - str r1, [lr, #4] - strb r3, [ip, #1] - ldr r0, [ip, #8] - cmp r0, #0 - movne ip, r0 - bne _020739FC - ldr r0, _02073A84 @ =0x022B7330 - ldr r1, _02073A88 @ =0x04000208 - ldr r2, [r0, #0x650] - str r2, [ip, #8] - str lr, [r0, #0x650] - str r3, [r4, #0xb8] - ldrh r0, [r1] - strh r5, [r1] -_02073A34: - mov r1, #0 - str r1, [r4, #0xbc] - ldr r0, _02073A84 @ =0x022B7330 - str r1, [r4, #0xc0] - strh r1, [r4, #0x16] - add r0, r0, #0x600 - ldrsb r3, [r0, #0x7b] - ldrsb r0, [r0, #0x7f] - ldr r1, _02073A8C @ =0x82061029 - mov r2, #0x40 - smulbb r0, r3, r0 - rsb r3, r0, r0, lsl #7 - smull r0, ip, r1, r3 - add ip, r3, ip - lsr r0, r3, #0x1f - add ip, r0, ip, asr #13 - strh ip, [r4, #0x18] - strh r2, [r4, #0x1a] - pop {r3, r4, r5, pc} - .align 2, 0 -_02073A80: .4byte 0x022B7A30 -_02073A84: .4byte 0x022B7330 -_02073A88: .4byte 0x04000208 -_02073A8C: .4byte 0x82061029 - arm_func_end FUN_020738dc - - arm_func_start FUN_02073a90 -FUN_02073a90: @ 0x02073A90 - push {r4, r5, r6, r7, r8, lr} - ldr r6, [r0, #0xb4] - mov r1, #0 - str r1, [r0, #0xb4] - cmp r6, #0 - popeq {r4, r5, r6, r7, r8, pc} - ldr r8, _02073B10 @ =0x022B7A30 - mov r5, r1 - mov r4, r1 -_02073AB4: - ldr r7, [r6, #0x154] - add r0, r6, #0x3c - strh r5, [r6, #4] - str r5, [r6, #0x158] - str r5, [r6, #0x154] - bl FUN_02074f04 - ldr r0, [r6, #0x14c] - cmp r7, #0 - and r0, r0, #0xff - str r0, [r6, #0x14c] - str r4, [r6] - strh r4, [r6, #0x18] - ldrh r2, [r6, #0xa] - ldrh r1, [r8, #0x32] - mov r6, r7 - mvn r0, r2 - and r0, r1, r0 - strh r0, [r8, #0x32] - ldrh r0, [r8, #0x36] - orr r0, r0, r2 - strh r0, [r8, #0x36] - bne _02073AB4 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02073B10: .4byte 0x022B7A30 - arm_func_end FUN_02073a90 - - arm_func_start FUN_02073b14 -FUN_02073b14: @ 0x02073B14 - cmp r1, #1 - bne _02073B5C - ldrb r1, [r0, #4] - orr r1, r1, #0x40 - strb r1, [r0, #4] - ldr r2, [r0, #0xb4] - cmp r2, #0 - bxeq lr - mov r1, #0 -_02073B38: - str r1, [r2, #0x13c] - str r1, [r2, #0x140] - ldrh r0, [r2, #6] - orr r0, r0, #0x30 - strh r0, [r2, #6] - ldr r2, [r2, #0x154] - cmp r2, #0 - bne _02073B38 - bx lr -_02073B5C: - ldr r2, [r0, #0xb4] - cmp r2, #0 - beq _02073B80 -_02073B68: - ldrh r1, [r2, #6] - orr r1, r1, #0x30 - strh r1, [r2, #6] - ldr r2, [r2, #0x154] - cmp r2, #0 - bne _02073B68 -_02073B80: - ldrb r1, [r0, #4] - bic r1, r1, #0x40 - strb r1, [r0, #4] - bx lr - arm_func_end FUN_02073b14 - - arm_func_start FUN_02073b90 -FUN_02073b90: @ 0x02073B90 - push {r4, lr} - mov r4, r0 - mov r0, r1 - strh r1, [r4, #0xe] - bl FUN_0206d6a0 - str r0, [r4, #0xbc] - cmp r0, #0 - moveq r0, #0 - streq r0, [r4, #0xc0] - popeq {r4, pc} - ldrh r1, [r4, #0x10] - mov r0, r4 - bl FUN_02073bc8 - pop {r4, pc} - arm_func_end FUN_02073b90 - - arm_func_start FUN_02073bc8 -FUN_02073bc8: @ 0x02073BC8 - push {r4, r5, r6, r7, r8, lr} - mov r5, r0 - ldr r0, [r5, #0xbc] - mov r4, r1 - cmp r0, #0 - bne _02073BF0 - mov r0, #0 - str r0, [r5, #0xc0] - strh r0, [r5, #0x10] - b _02073C4C -_02073BF0: - lsl r0, r4, #0x10 - asr r1, r0, #0x10 - strh r1, [r5, #0x10] - ldr r0, [r5, #0xbc] - bl FUN_0206d590 - movs lr, r0 - beq _02073C48 - mov r6, #0 - strb r6, [r5, #0x59] - add r7, lr, #0x10 - add r8, r5, #0x74 - mov ip, r6 -_02073C20: - ldrb r0, [r7, #1] - add r6, r6, #1 - cmp r0, #0 - ldmne r7, {r0, r1, r2, r3} - stmne r8, {r0, r1, r2, r3} - strbeq ip, [r8, #1] - cmp r6, #4 - add r7, r7, #0x10 - add r8, r8, #0x10 - blt _02073C20 -_02073C48: - str lr, [r5, #0xc0] -_02073C4C: - add r0, r5, #0x64 - bl FUN_02074c84 - mov r0, r4 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_02073bc8 - - arm_func_start FUN_02073c5c -FUN_02073c5c: @ 0x02073C5C - push {r3, r4, r5, lr} - mov r5, r1 - strb r5, [r0, #0x51] - ldr r4, [r0, #0xb4] - cmp r4, #0 - popeq {r3, r4, r5, pc} -_02073C74: - mov r1, r5 - add r0, r4, #0x5c - bl FUN_020752ac - ldr r4, [r4, #0x154] - cmp r4, #0 - bne _02073C74 - pop {r3, r4, r5, pc} - arm_func_end FUN_02073c5c - - arm_func_start FUN_02073c90 -FUN_02073c90: @ 0x02073C90 - strh r1, [r0, #0x52] - ldr r2, [r0, #0xb4] - cmp r2, #0 - bxeq lr - lsl r3, r1, #8 -_02073CA4: - ldrb r0, [r2, #0xf] - mul r1, r0, r3 - asr r0, r1, #0xc - add r0, r1, r0, lsr #19 - asr r0, r0, #0xd - strh r0, [r2, #0x10] - ldrh r0, [r2, #6] - orr r0, r0, #0x10 - strh r0, [r2, #6] - ldr r2, [r2, #0x154] - cmp r2, #0 - bne _02073CA4 - bx lr - arm_func_end FUN_02073c90 - - arm_func_start FUN_02073cd8 -FUN_02073cd8: @ 0x02073CD8 - push {r4, r5, r6, lr} - mov r5, r0 - ldrb r2, [r5, #0xd] - mov r4, r1 - cmp r2, #0 - beq _02073D18 - ldrb r0, [r5, #0xc] - sub r0, r2, r0 - add r6, r0, #1 - bl FUN_0206c8f4 - mul r1, r6, r0 - asr r0, r1, #0xe - ldrb r2, [r5, #0xc] - add r0, r1, r0, lsr #17 - add r0, r2, r0, asr #15 - strb r0, [r4, #2] -_02073D18: - ldr r1, _02073D64 @ =0x022B7330 - ldr r0, [r1, #0x650] - cmp r0, #0 - moveq r0, #0 - ldrne r2, [r0, #8] - strne r2, [r1, #0x650] - cmp r0, #0 - moveq r0, #0 - popeq {r4, r5, r6, pc} - ldr r3, [r4] - ldr r2, [r4, #4] - mov r1, #1 - str r3, [r0] - str r2, [r0, #4] - strb r1, [r0, #1] - ldr r1, [r5, #0xb8] - str r1, [r0, #8] - str r0, [r5, #0xb8] - pop {r4, r5, r6, pc} - .align 2, 0 -_02073D64: .4byte 0x022B7330 - arm_func_end FUN_02073cd8 - - arm_func_start FUN_02073d68 -FUN_02073d68: @ 0x02073D68 - push {r4, r5, r6, r7, r8, lr} - mov r7, r0 - ldr r4, [r7, #0xb8] - mov r6, r1 - cmp r4, #0 - add r5, r7, #0xb8 - beq _02073DE4 - ldrb r1, [r6, #2] -_02073D88: - ldrb r0, [r4, #2] - cmp r0, r1 - bne _02073DD4 - ldr r8, [r7, #0xb4] - cmp r8, #0 - beq _02073DC8 -_02073DA0: - ldrb r1, [r8, #0xd] - ldrb r0, [r6, #2] - cmp r1, r0 - bne _02073DBC - mov r0, r7 - mov r1, r8 - bl FUN_0207485c -_02073DBC: - ldr r8, [r8, #0x154] - cmp r8, #0 - bne _02073DA0 -_02073DC8: - ldr r0, [r4, #8] - str r0, [r5] - b _02073DE4 -_02073DD4: - add r5, r4, #8 - ldr r4, [r4, #8] - cmp r4, #0 - bne _02073D88 -_02073DE4: - ldr r0, _02073E0C @ =0x022B7330 - mvn r2, #0 - ldr r3, [r0, #0x650] - mov r1, #0 - str r3, [r4, #8] - str r4, [r0, #0x650] - str r2, [r4, #4] - mov r0, r4 - strb r1, [r4, #1] - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02073E0C: .4byte 0x022B7330 - arm_func_end FUN_02073d68 - - arm_func_start FUN_02073e10 -FUN_02073e10: @ 0x02073E10 - push {r4, lr} - ldr r4, [r0, #0xb8] - cmp r4, #0 - beq _02073E54 -_02073E20: - ldrb r3, [r4, #2] - cmp r3, r2 - bne _02073E48 - ldr lr, [r1] - ldr ip, [r1, #4] - mov r3, #1 - str lr, [r4] - str ip, [r4, #4] - strb r3, [r4, #1] - b _02073E54 -_02073E48: - ldr r4, [r4, #8] - cmp r4, #0 - bne _02073E20 -_02073E54: - ldr ip, [r0, #0xb4] - cmp ip, #0 - popeq {r4, pc} -_02073E60: - ldrb r0, [ip, #0xd] - cmp r0, r2 - bne _02073E90 - ldrb r0, [r1, #2] - strb r0, [ip, #0xd] - ldrb r3, [r1, #2] - ldrsh r0, [ip, #0x14] - add r0, r0, r3, lsl #8 - strh r0, [ip, #0x12] - ldrh r0, [ip, #6] - orr r0, r0, #0x10 - strh r0, [ip, #6] -_02073E90: - ldr ip, [ip, #0x154] - cmp ip, #0 - bne _02073E60 - pop {r4, pc} - arm_func_end FUN_02073e10 - - arm_func_start FUN_02073ea0 -FUN_02073ea0: @ 0x02073EA0 - push {r3, lr} - ldr r2, [r0, #0xb8] - cmp r2, #0 - popeq {r3, pc} - ldrb r3, [r1, #2] -_02073EB4: - ldrb r1, [r2, #2] - cmp r1, r3 - bne _02073ECC - mov r1, r2 - bl FUN_02073d68 - pop {r3, pc} -_02073ECC: - ldr r2, [r2, #8] - cmp r2, #0 - bne _02073EB4 - pop {r3, pc} - arm_func_end FUN_02073ea0 - - arm_func_start FUN_02073edc -FUN_02073edc: @ 0x02073EDC - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0xc - mov sl, r0 - ldrsh r4, [sl, #0xa] - mov sb, r1 - cmp r4, #0 - moveq r0, #0 - streq r0, [sp] - beq _02073F28 - bl FUN_0206c8f4 - lsl r1, r4, #1 - mul r2, r1, r0 - asr r0, r2, #0xe - ldrsh r1, [sl, #0xa] - add r0, r2, r0, lsr #17 - rsb r0, r1, r0, asr #15 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - str r0, [sp] -_02073F28: - ldr r6, [sl, #0xc0] - cmp r6, #0 - addeq sp, sp, #0xc - popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldr r7, [sl, #0xbc] - mov r5, #0 -_02073F40: - ldrb r2, [sb, #2] - ldrsb r3, [sb, #3] - mov r0, r6 - mov r1, r5 - bl FUN_0206d5c8 movs r5, r0 - addeq sp, sp, #0xc - popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldrb r3, [r5, #0x1a] - ldrb r0, [r7, #0xc] - ldr r2, [r7, #0x18] - cmp r3, r0 - movge r3, #0 - add r1, r2, r3, lsl #3 - ldr r2, [r2, r3, lsl #3] - ldr r1, [r1, #4] - mov r0, r7 - str r2, [sp, #4] - str r1, [sp, #8] - ldrsh r1, [r5, #0x12] - bl FUN_0206d558 - movs fp, r0 - beq _02073F40 - ldrb r3, [sl, #5] - ldrb r2, [r5, #0x1a] - mov r0, sl - add r1, sp, #4 - add r8, r2, r3, lsl #8 - ldrb r3, [sp, #7] - mov r2, r8 - bl FUN_02074618 - movs r4, r0 - beq _02073F40 - mov r0, #0 - strh r0, [r4, #4] - ldr r0, [sl] - add fp, fp, #0x10 - str r0, [r4] - strh r8, [r4, #0x18] - ldrsh r0, [r5, #0x12] - add ip, r4, #0x1c - strb r0, [r4, #0xe] - ldm fp!, {r0, r1, r2, r3} - stm ip!, {r0, r1, r2, r3} - ldm fp, {r0, r1, r2, r3} - stm ip, {r0, r1, r2, r3} - ldr r1, [r4, #0x30] - ldr r0, [r7, #0x1c] - add r0, r1, r0 - str r0, [r4, #0x30] - ldrb r0, [sb, #2] - strb r0, [r4, #0xd] - ldrsb r1, [r5, #0x17] - ldrsh r0, [r5, #0x14] - add r1, r0, r1, lsl #8 - ldr r0, [sp] - add r0, r0, r1 - strh r0, [r4, #0x14] - ldrb r1, [sb, #2] - ldrsh r0, [r4, #0x14] - add r0, r0, r1, lsl #8 - strh r0, [r4, #0x12] - ldrb r0, [r5, #0x19] - strb r0, [r4, #0x17] - ldr r0, _02074144 @ =0x022B7330 - ldrb r0, [r0, #0x39] - cmp r0, #7 - bne _02074084 - ldrb r1, [sl, #0x58] - ldrb r0, [sb, #3] - ldrb r2, [r6, #4] - ldrb r3, [r5, #0x18] - smulbb r0, r1, r0 - mul r0, r2, r0 - mul r2, r3, r0 - ldr r0, _02074148 @ =0x4186143D - smull r1, r3, r0, r2 - lsr r0, r2, #0x1f - add r3, r0, r3, asr #19 - strb r3, [r4, #0x16] - b _020740B0 -_02074084: - ldrb r1, [sb, #3] - ldrb r0, [r6, #4] - ldrb r2, [r5, #0x18] - smulbb r0, r1, r0 - mul r3, r2, r0 - ldr r0, _0207414C @ =0x82061029 - smull r1, r2, r0, r3 - add r2, r3, r2 - lsr r0, r3, #0x1f - add r2, r0, r2, asr #13 - strb r2, [r4, #0x16] -_020740B0: - ldrb r2, [sl, #0x59] - ldrsh r3, [sl, #0x52] - add r0, r4, #0x5c - cmp r2, #0 - ldrbeq r2, [r5, #2] - lsl r3, r3, #8 - add r1, sl, #0x74 - mul r8, r2, r3 - asr r3, r8, #0xc - add r3, r8, r3, lsr #19 - asr r3, r3, #0xd - strh r3, [r4, #0x10] - strb r2, [r4, #0xf] - ldrh r2, [r4, #6] - orr r2, r2, #0xff0 - strh r2, [r4, #6] - ldrsb r2, [sl, #0x51] - bl FUN_020750b4 - add r0, r5, #0x20 - add r8, r4, #0x3c - ldm r0, {r0, r1, r2, r3} - stm r8, {r0, r1, r2, r3} - mov r0, #1 - strb r0, [r4, #0x3c] - ldrb r0, [sl, #0x64] - cmp r0, #0 - beq _02074128 - mov r0, r8 - add r1, sl, #0x64 - bl FUN_02074cf4 -_02074128: - mov r1, r4 - mov r0, sl - ldrb r2, [sp, #7] - bl FUN_02074780 - b _02073F40 -_0207413C: - .byte 0x0C, 0xD0, 0x8D, 0xE2 - .byte 0xF0, 0x8F, 0xBD, 0xE8 -_02074144: .4byte 0x022B7330 -_02074148: .4byte 0x4186143D -_0207414C: .4byte 0x82061029 - arm_func_end FUN_02073edc - - arm_func_start FUN_02074150 -FUN_02074150: @ 0x02074150 - push {r4, r5, r6, lr} - mov r6, r0 - ldr r4, [r6, #0xb4] - mov r5, r1 - cmp r4, #0 + mov r4, r1 + mvneq r0, #0x26 popeq {r4, r5, r6, pc} -_02074168: - ldrb r1, [r4, #0xd] - ldrb r0, [r5, #2] - cmp r1, r0 - bne _02074184 - mov r0, r6 - mov r1, r4 - bl FUN_0207485c -_02074184: - ldr r4, [r4, #0x154] - cmp r4, #0 - bne _02074168 + bl ov00_022CEF10 + cmp r5, #0 + ldrhne r1, [r5, #0x74] + lsr r2, r0, #0x18 + mov r6, #8 + moveq r1, #0 + cmp r0, #0 + moveq r1, #0 + lsl r1, r1, #0x10 + lsr r3, r1, #0x10 + asr r5, r3, #8 + lsl lr, r3, #8 + strb r6, [r4] + mov r6, #2 + lsr r1, r0, #8 + lsl r3, r0, #8 + lsl ip, r0, #0x18 + and r0, r1, #0xff00 + and r2, r2, #0xff + orr r0, r2, r0 + and r1, r3, #0xff0000 + and r5, r5, #0xff + and lr, lr, #0xff00 + strb r6, [r4, #1] + orr r3, r5, lr + and r2, ip, #0xff000000 + orr r0, r1, r0 + strh r3, [r4, #2] + orr r0, r2, r0 + str r0, [r4, #4] + mov r0, #0 pop {r4, r5, r6, pc} - arm_func_end FUN_02074150 + arm_func_end ov00_022CF494 - arm_func_start FUN_02074194 -FUN_02074194: @ 0x02074194 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr fp, _0207431C @ =0x022B7A30 - ldr r7, _02074320 @ =0x022B7A6C - ldrh r0, [fp, #0x2e] - mov sb, #0 + arm_func_start ov00_022CF528 +ov00_022CF528: @ 0x022CF528 + push {r3, lr} + bl ov00_022CEF10 + lsr r2, r0, #0x18 + lsr r1, r0, #8 + lsl r3, r0, #8 + lsl ip, r0, #0x18 + and r2, r2, #0xff + and r0, r1, #0xff00 + and r1, r3, #0xff0000 + orr r0, r2, r0 + and r2, ip, #0xff000000 + orr r0, r1, r0 + orr r0, r2, r0 + pop {r3, pc} + arm_func_end ov00_022CF528 + + arm_func_start ov00_022CF560 +ov00_022CF560: @ 0x022CF560 + push {r3, r4, r5, lr} + ldr ip, [r1] + ldr r0, [r0] + lsr r2, ip, #0x18 + lsr r4, r0, #0x18 + lsr lr, r0, #8 + lsr r1, ip, #8 + lsl r5, r0, #8 + lsl r3, ip, #8 + lsl r0, r0, #0x18 + lsl ip, ip, #0x18 + and r4, r4, #0xff + and lr, lr, #0xff00 + and r2, r2, #0xff + and r1, r1, #0xff00 + and r5, r5, #0xff0000 + orr r4, r4, lr + and r3, r3, #0xff0000 + orr r1, r2, r1 + and lr, r0, #0xff000000 + orr r0, r5, r4 + and r2, ip, #0xff000000 + orr r1, r3, r1 + orr r0, lr, r0 + orr r1, r2, r1 + bl ov00_022CEEDC + pop {r3, r4, r5, pc} + arm_func_end ov00_022CF560 + + arm_func_start ov00_022CF5CC +ov00_022CF5CC: @ 0x022CF5CC cmp r0, #0 - pople {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldr r6, _02074324 @ =0x020B1310 - ldr r5, _02074328 @ =0x020B1394 - ldr r4, _0207432C @ =0x00FFB0FF -_020741BC: - ldr r8, [r7, #0x158] - cmp r8, #0 - beq _02074304 - ldrh sl, [r7, #6] - cmp sl, #0 - beq _02074300 - tst sl, #0x10 - beq _02074264 - ldrh r2, [r8, #0x16] - ldrsh r1, [r7, #0x12] - ldrsh r3, [r7, #0x10] - ldrsh r0, [r7, #0x5e] - add r1, r2, r1 - add r1, r3, r1 - add r0, r0, r1 - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - asr r0, r1, #8 - and r0, r0, #0x7f - ldrb r0, [r6, r0] - and r2, r1, #0xff - lsl r1, r0, #0x1c - add r1, r2, r1, lsr #20 - lsl r1, r1, #1 - asr r0, r0, #4 - ldrh r1, [r5, r1] - rsbs r0, r0, #4 - lsrpl r1, r1, r0 - rsbmi r0, r0, #0 - lslmi r1, r1, r0 - ldrb r0, [r7, #0x1f] - cmp r0, #3 - mov r0, r4 - blo _0207425C - asr r2, r1, #3 - add r1, r1, r2, lsr #28 - asr r1, r1, #4 - bl DivideInt - str r0, [r7, #0x13c] - b _02074264 -_0207425C: - bl DivideInt - str r0, [r7, #0x13c] -_02074264: - tst sl, #0x20 - beq _020742C4 - ldrb r1, [r7, #0x16] - ldrsh r0, [r7, #0x60] - add r1, r1, r0, asr #6 - cmp r1, #0x7f - movgt r1, #0x7f - bgt _0207428C - cmp r1, #0 - movlt r1, #0 -_0207428C: - ldrh r0, [r8, #0x18] - ldrb r2, [r7, #0x14c] - mul r1, r0, r1 - mul r3, r2, r1 - ldr r0, _02074330 @ =0x828CBFBF - smull r1, r2, r0, r3 - add r2, r3, r2 - lsr r0, r3, #0x1f - add r2, r0, r2, asr #12 - mul r1, r2, r2 - asr r0, r1, #8 - add r0, r1, r0, lsr #23 - asr r0, r0, #9 - str r0, [r7, #0x140] -_020742C4: - tst sl, #0x40 - beq _02074300 - ldrsb r1, [r7, #0x17] - ldrsh r2, [r8, #0x1a] - ldrsh r0, [r7, #0x62] - sub r1, r1, #0x40 - add r1, r2, r1 - adds r1, r1, r0, asr #6 - ldr r0, _02074334 @ =0x022B8330 - movmi r1, #0 - cmp r1, #0x7f - ldr r0, [r0, #0xed4] - movgt r1, #0x7f - ldrb r0, [r0, r1] - str r0, [r7, #0x144] -_02074300: - strh sl, [r7, #6] -_02074304: - ldrh r0, [fp, #0x2e] - add sb, sb, #1 - add r7, r7, #0x15c - cmp sb, r0 - blt _020741BC - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0207431C: .4byte 0x022B7A30 -_02074320: .4byte 0x022B7A6C -_02074324: .4byte 0x020B1310 -_02074328: .4byte 0x020B1394 -_0207432C: .4byte 0x00FFB0FF -_02074330: .4byte 0x828CBFBF -_02074334: .4byte 0x022B8330 - arm_func_end FUN_02074194 + mvneq r0, #0 + bxeq lr + cmp r1, #3 + beq _022CF5EC + cmp r1, #4 + beq _022CF600 + b _022CF614 +_022CF5EC: + ldrsb r0, [r0, #0x72] + cmp r0, #1 + moveq r0, #0 + movne r0, #4 + bx lr +_022CF600: + tst r2, #4 + movne r1, #0 + strbne r1, [r0, #0x72] + moveq r1, #1 + strbeq r1, [r0, #0x72] +_022CF614: + mov r0, #0 + bx lr + arm_func_end ov00_022CF5CC - arm_func_start FUN_02074338 -FUN_02074338: @ 0x02074338 - push {r4, r5, r6, r7, r8, sb, sl, lr} - ldr sl, _020743D0 @ =0x022B7A30 - mov r8, #0 - ldrh r0, [sl, #0x2e] + arm_func_start ov00_022CF61C +ov00_022CF61C: @ 0x022CF61C + push {r4, lr} + ldr r1, _022CF644 @ =0x02326934 + add r4, r0, #4 + ldr r2, [r1, #0xc] + mov r1, r4 + mov r0, #0 + blx r2 cmp r0, #0 - ble _020743C0 - ldr sb, _020743D4 @ =0x022B7A6C - mov r7, r8 - mov r6, #1 - mov r5, #0x40 - mov r4, r8 -_02074364: - strh r7, [sb, #4] - strh r7, [sb, #6] - lsl r0, r6, r8 - strh r8, [sb, #8] - strh r0, [sb, #0xa] - str r7, [sb] - str r7, [sb, #0x14c] - strb r7, [sb, #0xd] - strb r7, [sb, #0xe] - strh r7, [sb, #0x12] - strb r7, [sb, #0x16] - add r0, sb, #0x3c - strb r5, [sb, #0x17] - bl FUN_02074c70 - add r0, sb, #0x5c - bl FUN_0207509c - str r4, [sb, #0x154] - str r4, [sb, #0x158] - ldrh r0, [sl, #0x2e] - add r8, r8, #1 - add sb, sb, #0x15c - cmp r8, r0 - blt _02074364 -_020743C0: - ldr r0, _020743D8 @ =0x022B7330 - mov r1, #0 - str r1, [r0, #0x654] - pop {r4, r5, r6, r7, r8, sb, sl, pc} + strne r4, [r0], #4 + pop {r4, pc} .align 2, 0 -_020743D0: .4byte 0x022B7A30 -_020743D4: .4byte 0x022B7A6C -_020743D8: .4byte 0x022B7330 - arm_func_end FUN_02074338 +_022CF644: .4byte 0x02326934 + arm_func_end ov00_022CF61C - arm_func_start FUN_020743dc -FUN_020743dc: @ 0x020743DC + arm_func_start ov00_022CF648 +ov00_022CF648: @ 0x022CF648 push {r3, lr} cmp r0, #0 - ble _02074414 - ldr r1, _0207447C @ =0x022B7A30 - mov r2, #0x10 - strh r2, [r1, #0x2c] - cmp r0, #0x10 - lslgt r0, r2, #0x10 - ldr r2, _0207447C @ =0x022B7A30 - asrgt r0, r0, #0x10 - strh r0, [r2, #0x2e] - ldr r1, _02074480 @ =0x022B8330 + popeq {r3, pc} + ldr r1, _022CF670 @ =0x02326934 + ldr r2, [r0, #-4] + ldr r3, [r1, #4] + sub r1, r0, #4 mov r0, #0 - strb r0, [r1, #0xd0c] -_02074414: - ldr r2, _0207447C @ =0x022B7A30 - mov r0, #0 - strh r0, [r2, #0x32] - strh r0, [r2, #0x34] - ldr r1, _02074484 @ =0x022B7330 - strh r0, [r2, #0x36] - strb r0, [r1, #0x738] - strb r0, [r1, #0x739] - ldr ip, _02074480 @ =0x022B8330 - strh r0, [r2, #0x30] - str r0, [ip, #0xcfc] - str r0, [ip, #0xd00] - sub r2, r0, #1 - str r2, [ip, #0xd04] - ldrsh lr, [r1, #0x28] - mov r1, r0 - mov r2, r0 - mov r3, r0 - str lr, [ip, #0xd08] - bl FUN_0207c8b8 - ldr r0, _02074488 @ =0x0000FFFF - mov r3, #0 - mov r1, r0 - mov r2, r0 - bl FUN_0207c8e0 + blx r3 pop {r3, pc} .align 2, 0 -_0207447C: .4byte 0x022B7A30 -_02074480: .4byte 0x022B8330 -_02074484: .4byte 0x022B7330 -_02074488: .4byte 0x0000FFFF - arm_func_end FUN_020743dc +_022CF670: .4byte 0x02326934 + arm_func_end ov00_022CF648 - arm_func_start UpdateChannels -UpdateChannels: @ 0x0207448C - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr sb, _02074570 @ =0x022B7A30 - mov r7, #0 - ldrh r0, [sb, #0x2e] - mov r6, r7 - ldr r5, _02074574 @ =0x022B7A6C - cmp r0, #0 - ble _0207452C - mov r4, #2 -_020744B0: - add r0, r5, #0x3c - bl FUN_02074f54 - ldrsb r1, [r5, #0x5a] - mov r8, r0 + arm_func_start ov00_022CF674 +ov00_022CF674: @ 0x022CF674 + push {r4, r5, r6, lr} + ldr r1, [r0, #0xc] + ldr ip, _022CF7D8 @ =ov00_022CF61C cmp r1, #1 - bne _02074514 - add r0, r5, #0x5c - bl FUN_020752f8 - ldrh r1, [r5, #6] - orr r0, r1, r0 - strh r0, [r5, #6] - ldrb r0, [r5, #0x58] - cmp r0, #8 - bne _020744F8 - strb r4, [r5, #0x58] - ldrh r0, [r5, #6] - orr r0, r0, #2 - strh r0, [r5, #6] -_020744F8: - ldrb r0, [r5, #0x14c] - cmp r0, r8 - ldrhne r0, [r5, #6] - orrne r0, r0, #0x20 - strhne r0, [r5, #6] - cmp r8, #0 - addgt r7, r7, #1 -_02074514: - strb r8, [r5, #0x14c] - ldrh r0, [sb, #0x2e] - add r6, r6, #1 - add r5, r5, #0x15c - cmp r6, r0 - blt _020744B0 -_0207452C: - ldr r0, _02074578 @ =0x022B8330 - ldr r1, [r0, #0xd04] - cmp r1, #0 - movlt r1, #0 - strlt r1, [r0, #0xd00] - ldr r0, _02074578 @ =0x022B8330 - str r7, [r0, #0xcfc] - ldr r1, [r0, #0xd00] - cmp r1, r7 - strlt r7, [r0, #0xd00] - movlt r1, #0x64 - strlt r1, [r0, #0xd04] - ldr r0, _02074578 @ =0x022B8330 - ldr r1, [r0, #0xd04] - sub r1, r1, #1 - str r1, [r0, #0xd04] - pop {r3, r4, r5, r6, r7, r8, sb, pc} + moveq r2, #1 + ldr r1, _022CF7DC @ =0x02326934 + movne r2, #0 + str r2, [r1, #0x40] + ldr r6, [r0, #0x10] + ldr r3, _022CF7E0 @ =ov00_022CF648 + lsr r4, r6, #0x18 + lsr r2, r6, #8 + lsl r5, r6, #8 + and r4, r4, #0xff + and r2, r2, #0xff00 + lsl r6, r6, #0x18 + orr r2, r4, r2 + and r5, r5, #0xff0000 + and r4, r6, #0xff000000 + orr r2, r5, r2 + orr r2, r4, r2 + str r2, [r1, #0x44] + ldr lr, [r0, #0x14] + mov r2, #0x40 + lsr r5, lr, #0x18 + lsr r4, lr, #8 + lsl r6, lr, #8 + and r5, r5, #0xff + and r4, r4, #0xff00 + lsl lr, lr, #0x18 + orr r4, r5, r4 + and r6, r6, #0xff0000 + and r5, lr, #0xff000000 + orr r4, r6, r4 + orr r4, r5, r4 + str r4, [r1, #0x48] + ldr lr, [r0, #0x18] + lsr r5, lr, #0x18 + lsr r4, lr, #8 + lsl r6, lr, #8 + and r5, r5, #0xff + and r4, r4, #0xff00 + lsl lr, lr, #0x18 + orr r4, r5, r4 + and r6, r6, #0xff0000 + and r5, lr, #0xff000000 + orr r4, r6, r4 + orr r4, r5, r4 + str r4, [r1, #0x4c] + ldr lr, [r0, #0x1c] + lsr r5, lr, #0x18 + lsr r4, lr, #8 + lsl r6, lr, #8 + and r5, r5, #0xff + and r4, r4, #0xff00 + lsl lr, lr, #0x18 + orr r4, r5, r4 + and r6, r6, #0xff0000 + and r5, lr, #0xff000000 + orr r4, r6, r4 + orr r4, r5, r4 + str r4, [r1, #0x50] + ldr r6, [r0, #0x20] + lsr r4, r6, #0x18 + lsr lr, r6, #8 + lsl r5, r6, #8 + lsl r6, r6, #0x18 + and r4, r4, #0xff + and lr, lr, #0xff00 + and r5, r5, #0xff0000 + orr r4, r4, lr + and r6, r6, #0xff000000 + orr r4, r5, r4 + orr r4, r6, r4 + str r4, [r1, #0x54] + str ip, [r1, #0x58] + str r3, [r1, #0x5c] + ldr r3, [r0, #4] + str r3, [r1, #0xc] + ldr r3, [r0, #8] + str r3, [r1, #4] + str r2, [r1, #0x60] + ldr r2, [r0, #0x2c] + str r2, [r1, #0x70] + ldr r2, [r0, #0x30] + ldr r0, _022CF7E4 @ =0x02326974 + str r2, [r1, #0x74] + bl ov00_022CCD90 + pop {r4, r5, r6, pc} .align 2, 0 -_02074570: .4byte 0x022B7A30 -_02074574: .4byte 0x022B7A6C -_02074578: .4byte 0x022B8330 - arm_func_end UpdateChannels +_022CF7D8: .4byte ov00_022CF61C +_022CF7DC: .4byte 0x02326934 +_022CF7E0: .4byte ov00_022CF648 +_022CF7E4: .4byte 0x02326974 + arm_func_end ov00_022CF674 - arm_func_start FUN_0207457c -FUN_0207457c: @ 0x0207457C - push {r4, r5, r6, r7, r8, lr} - ldr r6, _02074610 @ =0x022B7A6C - bl FUN_0207d470 - ldr r4, _02074614 @ =0x022B7A30 - lsl r0, r0, #0x10 - ldrh r2, [r4, #0x30] - ldrh r1, [r4, #0x2e] - mov r7, #0 - orr r0, r2, r0, lsr #16 - lsl r0, r0, #0x10 - lsr r8, r0, #0x10 - cmp r1, #0 - pople {r4, r5, r6, r7, r8, pc} - mov r5, r7 -_020745B4: - ldrsb r0, [r6, #0x5a] - cmp r0, #1 - bne _020745DC - tst r8, #1 - bne _020745F0 - add r0, r6, #0x3c - bl FUN_02074f3c - add r0, r6, #0x100 - strh r5, [r0, #0x4c] - b _020745F0 -_020745DC: - and r0, r8, #1 - cmp r0, #1 - bne _020745F0 + arm_func_start ov00_022CEC18 +ov00_022CEC18: @ 0x022CF7E8 + ldr ip, _022CF7F0 @ =ov00_022CEC18 + bx ip + .align 2, 0 +_022CF7F0: .4byte ov00_022CEC18 + arm_func_end ov00_022CEC18 + + arm_func_start ov00_022CF7F4 +ov00_022CF7F4: @ 0x022CF7F4 + push {r0, r1, r2, r3} + push {r3, lr} + ldr r2, _022CF820 @ =0x023269AC + add r1, sp, #8 + mov r0, #2 + mov r3, #0x10 + bl ov00_022CF874 + ldr r0, _022CF820 @ =0x023269AC + pop {r3, lr} + add sp, sp, #0x10 + bx lr + .align 2, 0 +_022CF820: .4byte 0x023269AC + arm_func_end ov00_022CF7F4 + + arm_func_start ov00_022CF824 +ov00_022CF824: @ 0x022CF824 + push {r4, lr} + mov r4, r1 + bl ov00_022CEE90 + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} + lsr r2, r0, #0x18 + lsr r1, r0, #8 + lsl r3, r0, #8 + lsl ip, r0, #0x18 + and r2, r2, #0xff + and r0, r1, #0xff00 + and r1, r3, #0xff0000 + orr r0, r2, r0 + and r2, ip, #0xff000000 + orr r0, r1, r0 + orr r0, r2, r0 + str r0, [r4] + mov r0, #1 + pop {r4, pc} + arm_func_end ov00_022CF824 + + arm_func_start ov00_022CF874 +ov00_022CF874: @ 0x022CF874 + push {r3, r4, lr} + sub sp, sp, #0x14 + cmp r0, #2 + mov r4, r2 + addne sp, sp, #0x14 + movne r0, #0 + popne {r3, r4, pc} + cmp r3, #0x10 + addlo sp, sp, #0x14 + movlo r0, #0 + poplo {r3, r4, pc} + mov r0, r1 + add r1, sp, #0x10 + mov r2, #4 + bl FUN_0207C4C8 + ldr r0, [sp, #0x10] + add r1, sp, #0xc + bl ov00_022CF8F8 + ldrb r1, [sp, #0xe] + ldr r2, _022CF8F4 @ =0x023188B8 + mov r0, r4 + str r1, [sp] + ldrb r3, [sp, #0xd] + mov r1, #0x10 + str r3, [sp, #4] + ldrb r3, [sp, #0xc] + str r3, [sp, #8] + ldrb r3, [sp, #0xf] + bl FUN_0207911C + mov r0, r4 + add sp, sp, #0x14 + pop {r3, r4, pc} + .align 2, 0 +_022CF8F4: .4byte 0x023188B8 + arm_func_end ov00_022CF874 + + arm_func_start ov00_022CF8F8 +ov00_022CF8F8: @ 0x022CF8F8 + lsr r2, r0, #0x18 + strb r2, [r1] + lsr r2, r0, #0x10 + strb r2, [r1, #1] + lsr r2, r0, #8 + strb r2, [r1, #2] + strb r0, [r1, #3] + bx lr + arm_func_end ov00_022CF8F8 + + arm_func_start ov00_022CF918 +ov00_022CF918: @ 0x022CF918 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sb, r2 + mov r8, r3 + mvn r2, #0 + cmp r8, r2 + cmpeq sb, r2 + movne fp, #1 + str r0, [sp] + mov sl, r1 + moveq fp, #0 +_022CF940: + mov r6, #0 + ldr r4, [sp] + mov r5, r6 + cmp sl, #0 + bls _022CF980 +_022CF954: + ldrsh r1, [r4, #4] + ldr r0, [r4] + orr r7, r1, #0xe0 + bl ov00_022CEF78 + ands r0, r7, r0 + strh r0, [r4, #6] + add r5, r5, #1 + addne r6, r6, #1 + add r4, r4, #8 + cmp r5, sl + blo _022CF954 +_022CF980: + cmp r6, #0 + bgt _022CF9C0 + cmp fp, #0 + beq _022CF9A4 + mov r0, #0 + subs r0, r0, sb + mov r0, #0 + sbcs r0, r0, r8 + bge _022CF9C0 +_022CF9A4: + mov r0, #1 + bl FUN_02079B14 + ldr r0, _022CF9C8 @ =0x0000020B + subs sb, sb, r0 + mov r0, #0 + sbc r8, r8, r0 + b _022CF940 +_022CF9C0: mov r0, r6 - bl FUN_020749f4 -_020745F0: - ldrh r1, [r4, #0x2e] - lsl r0, r8, #0xf - add r7, r7, #1 - cmp r7, r1 - lsr r8, r0, #0x10 - add r6, r6, #0x15c - blt _020745B4 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022CF9C8: .4byte 0x0000020B + arm_func_end ov00_022CF918 + + arm_func_start ov00_022CF9CC +ov00_022CF9CC: @ 0x022CF9CC + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + bl ov00_022CF154 + cmp r0, #0 + mvnne r0, #0x1b + popne {r3, r4, r5, pc} + ldrsb r0, [r5, #0x73] + mov r1, #1 + cmp r0, #0 + cmpne r0, #4 + movne r1, #0 + cmp r1, #0 + mvneq r0, #0x1b + popeq {r3, r4, r5, pc} + cmp r5, #0 + mov r1, #0 + beq _022CFA20 + ldrsh r0, [r5, #0x70] + tst r0, #1 + movne r1, #1 +_022CFA20: + cmp r1, #0 + mvneq r0, #0x26 + popeq {r3, r4, r5, pc} + ldrsh r0, [r5, #0x70] + tst r0, #2 + mvnne r0, #0x1b + popne {r3, r4, r5, pc} + mov r0, r5 + mov r1, r4 + bl ov00_022CFA4C + pop {r3, r4, r5, pc} + arm_func_end ov00_022CF9CC + + arm_func_start ov00_022CFA4C +ov00_022CFA4C: @ 0x022CFA4C + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + ldr r0, _022CFA84 @ =ov00_022CFA88 + mov r1, r5 + mov r2, #1 + bl ov00_022CD108 + movs r1, r0 + mvneq r0, #0x20 + popeq {r3, r4, r5, pc} + mov r0, r5 + str r4, [r1, #0x10] + bl ov00_022CD250 + pop {r3, r4, r5, pc} + .align 2, 0 +_022CFA84: .4byte ov00_022CFA88 + arm_func_end ov00_022CFA4C + + arm_func_start ov00_022CFA88 +ov00_022CFA88: @ 0x022CFA88 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + ldr r4, [r7, #4] + ldr r5, [r4, #0x64] + add r0, r5, #0xe0 + ldr r6, [r5, #0xc4] + bl FUN_0207A048 + ldr r1, [r7, #0x10] + cmp r1, #0 + beq _022CFAC8 + mov r0, #1 + str r1, [r6, #0xc] + bl ov00_022D2B44 + mov r0, #4 + strb r0, [r4, #0x73] + b _022CFADC +_022CFAC8: + mov r0, #0 + strb r0, [r4, #0x73] + bl ov00_022D2B44 + mov r0, #0 + str r0, [r6, #0xc] +_022CFADC: + add r0, r5, #0xe0 + bl FUN_0207A0CC + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022CFA88 + + arm_func_start ov00_022CFAEC +ov00_022CFAEC: @ 0x022CFAEC + push {r4, r5, r6, r7, r8, lr} + mov r7, r0 + bl FUN_0207B7E4 + mov r4, #0 + ldr r6, _022CFB7C @ =0x02326AC8 + mov r5, r0 + strb r4, [r7, #0x30] + mov r8, #0x20 +_022CFB0C: + ldrb r0, [r6, #0x5a] + cmp r0, #0 + beq _022CFB60 + ldr r0, [r6, #0x54] + cmp r0, #0 + ldrheq r0, [r6, #0x58] + cmpeq r0, #0 + bne _022CFB60 + mov r0, r6 + mov r2, r8 + add r1, r7, #0x74 + bl FUN_02087348 + cmp r0, #0 + bne _022CFB60 + mov r1, r7 + add r0, r6, #0x20 + mov r2, #0x30 + bl FUN_0207C4C8 + mov r0, #1 + strb r0, [r7, #0x30] + b _022CFB70 +_022CFB60: + add r4, r4, #1 + cmp r4, #4 + add r6, r6, #0x5c + blt _022CFB0C +_022CFB70: + mov r0, r5 + bl FUN_0207B7F8 pop {r4, r5, r6, r7, r8, pc} .align 2, 0 -_02074610: .4byte 0x022B7A6C -_02074614: .4byte 0x022B7A30 - arm_func_end FUN_0207457c +_022CFB7C: .4byte 0x02326AC8 + arm_func_end ov00_022CFAEC - arm_func_start FUN_02074618 -FUN_02074618: @ 0x02074618 - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r4, _02074774 @ =0x022B7A30 - lsl r3, r3, #0x10 - ldrh r5, [r4, #0x2e] - add r3, r3, #0xff - add r8, r3, #0x100 - ldrb r4, [r1, #5] - sub r5, r5, #1 - ldrb r3, [r0, #7] - cmp r4, r5 - movgt r4, r5 - ldrb r7, [r1, #4] - mov r6, #0 - cmp r3, #0 - beq _02074660 - cmp r3, #1 - beq _0207466C - b _0207476C -_02074660: - ldr r6, [r0, #0xb4] - cmp r6, #0 - bne _0207476C -_0207466C: - ldrb r3, [r1] - cmp r3, #0 - beq _02074708 - ldr r5, _02074778 @ =0x022B7A6C - mov r3, #0x15c - mla r3, r7, r3, r5 - mov ip, r7 - mov lr, r4 - mov r5, r8 - cmp r7, r4 - mov r6, #0 - bgt _020746E4 - ldr r0, [r0] -_020746A0: - ldr sb, [r3] - cmp sb, r0 - ldrheq sb, [r3, #0x18] - cmpeq sb, r2 - bne _020746D4 - ldr sb, [r3, #0x14c] - add r6, r6, #1 - cmp r5, sb - movhi r5, sb - ldrb sb, [r1, #2] - movhi lr, ip - cmp r6, sb - bge _020746E4 -_020746D4: - add ip, ip, #1 - cmp ip, r4 - add r3, r3, #0x15c - ble _020746A0 -_020746E4: - ldrb r0, [r1, #2] - cmp r6, r0 - blt _02074708 - ldr r1, _02074778 @ =0x022B7A6C - mov r0, #0x15c - mla r6, lr, r0, r1 - mov r0, r6 - bl FUN_020748a0 - b _0207476C -_02074708: - cmp r7, r4 - add r2, r4, #1 - bgt _0207474C - ldr r1, _0207477C @ =0x022B7330 - mov r0, #0x15c - mla r1, r7, r0, r1 -_02074720: - ldr r0, [r1, #0x888] - cmp r8, r0 - bls _0207473C - mov r2, r7 - cmp r0, #0 - beq _0207474C + arm_func_start ov00_022CFB80 +ov00_022CFB80: @ 0x022CFB80 + push {r4, r5, r6, r7, r8, lr} mov r8, r0 -_0207473C: - add r7, r7, #1 - cmp r7, r4 - add r1, r1, #0x15c - ble _02074720 -_0207474C: - cmp r2, r4 - movgt r6, #0 - bgt _0207476C - ldr r1, _02074778 @ =0x022B7A6C - mov r0, #0x15c - mla r6, r2, r0, r1 - mov r0, r6 - bl FUN_020748a0 -_0207476C: - mov r0, r6 + mov r7, r1 + mov r6, r2 + bl FUN_0207B7E4 + mov r1, #0 + ldr r5, _022CFC1C @ =0x02326AC8 + mov r4, r0 + strb r1, [r8, #0x30] +_022CFBA4: + ldrb r0, [r5, #0x5a] + cmp r0, #0 + beq _022CFC00 + ldr r0, [r5, #0x54] + cmp r0, r7 + ldrheq r0, [r5, #0x58] + cmpeq r0, r6 + bne _022CFC00 + mov r0, r5 + add r1, r8, #0x74 + mov r2, #0x20 + bl FUN_0207C4C8 + mov r1, r8 + add r0, r5, #0x20 + mov r2, #0x30 + bl FUN_0207C4C8 + bl FUN_0207AE44 + lsr r0, r0, #0x10 + orr r0, r0, r1, lsl #16 + str r0, [r5, #0x50] + mov r0, #1 + strb r0, [r8, #0x30] + b _022CFC10 +_022CFC00: + add r1, r1, #1 + cmp r1, #4 + add r5, r5, #0x5c + blt _022CFBA4 +_022CFC10: + mov r0, r4 + bl FUN_0207B7F8 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022CFC1C: .4byte 0x02326AC8 + arm_func_end ov00_022CFB80 + + arm_func_start ov00_022CFC20 +ov00_022CFC20: @ 0x022CFC20 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r8, r0 + mov r7, r1 + mov r6, r2 + bl FUN_0207B7E4 + mov r4, r0 + bl FUN_0207AE44 + ldr sb, _022CFD08 @ =0x02326AC8 + lsr r5, r0, #0x10 + mov r2, #0 + mov r0, r2 + mov r3, sb + orr r5, r5, r1, lsl #16 + mvn ip, #0 +_022CFC58: + ldrb lr, [r3, #0x5a] + cmp lr, #0 + cmpne r7, #0 + beq _022CFC8C + ldr r1, [r3, #0x54] + cmp r7, r1 + bne _022CFC8C + cmp r6, #0 + beq _022CFC8C + ldrh r1, [r3, #0x58] + cmp r6, r1 + moveq sb, r3 + beq _022CFCC8 +_022CFC8C: + cmp r2, ip + beq _022CFCB8 + cmp lr, #0 + moveq r2, ip + moveq sb, r3 + beq _022CFCB8 + ldr r1, [r3, #0x50] + sub r1, r5, r1 + cmp r1, r2 + movhi r2, r1 + movhi sb, r3 +_022CFCB8: + add r0, r0, #1 + cmp r0, #4 + add r3, r3, #0x5c + blt _022CFC58 +_022CFCC8: + mov r1, sb + add r0, r8, #0x74 + mov r2, #0x20 + bl FUN_0207C4C8 + mov r0, r8 + add r1, sb, #0x20 + mov r2, #0x30 + bl FUN_0207C4C8 + str r5, [sb, #0x50] + mov r0, #1 + strb r0, [sb, #0x5a] + str r7, [sb, #0x54] + mov r0, r4 + strh r6, [sb, #0x58] + bl FUN_0207B7F8 pop {r3, r4, r5, r6, r7, r8, sb, pc} .align 2, 0 -_02074774: .4byte 0x022B7A30 -_02074778: .4byte 0x022B7A6C -_0207477C: .4byte 0x022B7330 - arm_func_end FUN_02074618 +_022CFD08: .4byte 0x02326AC8 + arm_func_end ov00_022CFC20 - arm_func_start FUN_02074780 -FUN_02074780: @ 0x02074780 - push {r3, r4, r5, lr} - mov r4, r1 - ldrh r3, [r4, #6] - lsl r1, r2, #0x10 - add r1, r1, #0xff - orr r2, r3, #1 - bic r2, r2, #2 - strh r2, [r4, #6] - ldr r2, [r4, #0x14c] - add r1, r1, #0x100 - orr r1, r2, r1 - mov r5, r0 - str r1, [r4, #0x14c] - add r0, r4, #0x3c - bl FUN_02074e0c - ldr r0, [r4, #0x158] - cmp r0, r5 - popeq {r3, r4, r5, pc} - ldr r0, [r5, #0xb4] - str r0, [r4, #0x154] - str r4, [r5, #0xb4] - str r5, [r4, #0x158] - pop {r3, r4, r5, pc} - arm_func_end FUN_02074780 - - arm_func_start FUN_020747dc -FUN_020747dc: @ 0x020747DC - push {r4, r5, r6, r7, r8, sb, sl, lr} - mov r7, r0 - ldrb r0, [r7, #4] - tst r0, #3 - popne {r4, r5, r6, r7, r8, sb, sl, pc} - ldr r4, [r7, #0xb8] - add r6, r7, #0xb8 - cmp r4, #0 - beq _0207484C - ldr r8, _02074858 @ =0x022B7330 - mvn sl, #0 - mov sb, #0 -_0207480C: - ldmib r4, {r0, r5} + arm_func_start ov00_022CFD0C +ov00_022CFD0C: @ 0x022CFD0C + push {r4, r5, r6, r7, r8, lr} + mov r8, r0 + bl FUN_0207B7E4 + ldr r7, _022CFD70 @ =0x02326AC8 + mov r6, r0 + mov r5, #0 + mov r4, #0x20 +_022CFD28: + ldrb r0, [r7, #0x5a] cmp r0, #0 - strgt r4, [r6] - addgt r6, r4, #8 - bgt _02074840 + beq _022CFD54 mov r0, r7 - mov r1, r4 - bl FUN_02073d68 - ldr r0, [r8, #0x650] - str r0, [r4, #8] - str r4, [r8, #0x650] - str sl, [r4, #4] - strb sb, [r4, #1] -_02074840: - mov r4, r5 - cmp r5, #0 - bne _0207480C -_0207484C: - mov r0, #0 - str r0, [r6] - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_02074858: .4byte 0x022B7330 - arm_func_end FUN_020747dc - - arm_func_start FUN_0207485c -FUN_0207485c: @ 0x0207485C - push {r4, lr} - mov r4, r1 - ldrh r1, [r4, #4] - orr r1, r1, #2 - strh r1, [r4, #4] - ldrb r0, [r0, #4] - tst r0, #1 - popne {r4, pc} - ldr r1, [r4, #0x14c] - add r0, r4, #0x3c - and r1, r1, #0xff - str r1, [r4, #0x14c] - bl FUN_02074ed8 - ldrh r0, [r4, #6] - bic r0, r0, #1 - strh r0, [r4, #6] - pop {r4, pc} - arm_func_end FUN_0207485c - - arm_func_start FUN_020748a0 -FUN_020748a0: @ 0x020748A0 - push {r4, lr} - mov r4, r0 - ldr r1, [r4, #0x158] - cmp r1, #0 - beq _02074948 - ldr r2, [r1, #0xb4] - cmp r2, r4 - ldreq r0, [r4, #0x154] - streq r0, [r1, #0xb4] - beq _020748F0 - cmp r2, #0 - beq _020748F0 -_020748D0: - ldr r0, [r2, #0x154] - cmp r0, r4 - ldreq r0, [r4, #0x154] - streq r0, [r2, #0x154] - beq _020748F0 - mov r2, r0 + mov r2, r4 + add r1, r8, #0x74 + bl FUN_02087348 cmp r0, #0 - bne _020748D0 -_020748F0: - mov r0, #0 - strh r0, [r4, #4] - str r0, [r4, #0x158] - str r0, [r4, #0x154] - add r0, r4, #0x3c - bl FUN_02074f04 - ldr r1, [r4, #0x14c] - mov r0, #0 - and r1, r1, #0xff - str r1, [r4, #0x14c] - str r0, [r4] - strh r0, [r4, #0x18] - ldr r1, _020749A0 @ =0x022B7A30 - ldrh r0, [r4, #0xa] - ldrh r3, [r1, #0x32] - mvn r2, r0 - and r2, r3, r2 - strh r2, [r1, #0x32] - ldrh r2, [r1, #0x36] - orr r2, r2, r0 - strh r2, [r1, #0x36] - pop {r4, pc} -_02074948: - mov r0, #0 - strh r0, [r4, #4] - str r0, [r4, #0x158] - str r0, [r4, #0x154] - add r0, r4, #0x3c - bl FUN_02074f04 - ldr r1, [r4, #0x14c] - mov r0, #0 - and r1, r1, #0xff - str r1, [r4, #0x14c] - str r0, [r4] - strh r0, [r4, #0x18] - ldr r1, _020749A0 @ =0x022B7A30 - ldrh r0, [r4, #0xa] - ldrh r3, [r1, #0x32] - mvn r2, r0 - and r2, r3, r2 - strh r2, [r1, #0x32] - ldrh r2, [r1, #0x36] - orr r2, r2, r0 - strh r2, [r1, #0x36] - pop {r4, pc} + moveq r0, #0 + strbeq r0, [r7, #0x5a] + beq _022CFD64 +_022CFD54: + add r5, r5, #1 + cmp r5, #4 + add r7, r7, #0x5c + blt _022CFD28 +_022CFD64: + mov r0, r6 + bl FUN_0207B7F8 + pop {r4, r5, r6, r7, r8, pc} .align 2, 0 -_020749A0: .4byte 0x022B7A30 - arm_func_end FUN_020748a0 +_022CFD70: .4byte 0x02326AC8 + arm_func_end ov00_022CFD0C - arm_func_start FUN_020749a4 -FUN_020749a4: @ 0x020749A4 - mov r1, #0xff0 - strh r1, [r0, #6] - ldr r2, [r0, #0x14c] - ldr r1, _020749F0 @ =0x022B7A30 - orr r2, r2, #0xff - orr r2, r2, #0x100 - str r2, [r0, #0x14c] - ldrh r3, [r0, #0xa] - ldrh r0, [r1, #0x34] - mvn r2, r3 - and r0, r0, r2 - strh r0, [r1, #0x34] - ldrh r0, [r1, #0x36] - and r0, r0, r2 - strh r0, [r1, #0x36] - ldrh r0, [r1, #0x32] - orr r0, r0, r3 - strh r0, [r1, #0x32] + arm_func_start ov00_022CFD74 +ov00_022CFD74: @ 0x022CFD74 + stmdb sp!, {lr} + sub sp, sp, #0x1c + add r0, sp, #0xc + bl FUN_02082748 + add r0, sp, #0 + bl FUN_020827F4 + add r0, sp, #0xc + add r1, sp, #0 + bl FUN_02082FDC + ldr r1, _022CFDA8 @ =0x386D4380 + add r0, r0, r1 + add sp, sp, #0x1c + ldm sp!, {pc} + .align 2, 0 +_022CFDA8: .4byte 0x386D4380 + arm_func_end ov00_022CFD74 + + arm_func_start ov00_022CFDAC +ov00_022CFDAC: @ 0x022CFDAC + ldr r0, _022CFDB8 @ =0x023188CC + ldr r0, [r0, #4] bx lr .align 2, 0 -_020749F0: .4byte 0x022B7A30 - arm_func_end FUN_020749a4 +_022CFDB8: .4byte 0x023188CC + arm_func_end ov00_022CFDAC - arm_func_start FUN_020749f4 -FUN_020749f4: @ 0x020749F4 - ldr r2, [r0, #0x14c] - ldr r1, _02074A28 @ =0x022B7A30 - bic r2, r2, #0xff00 - str r2, [r0, #0x14c] - ldrh r3, [r0, #0xa] - ldrh r2, [r1, #0x32] - mvn r0, r3 - and r0, r2, r0 - strh r0, [r1, #0x32] - ldrh r0, [r1, #0x34] - orr r0, r0, r3 - strh r0, [r1, #0x34] + arm_func_start ov00_022CFDBC +ov00_022CFDBC: @ 0x022CFDBC + ldr r1, _022CFDC8 @ =0x023188CC + str r0, [r1, #4] bx lr .align 2, 0 -_02074A28: .4byte 0x022B7A30 - arm_func_end FUN_020749f4 +_022CFDC8: .4byte 0x023188CC + arm_func_end ov00_022CFDBC - arm_func_start FUN_02074a2c -FUN_02074a2c: @ 0x02074A2C - ldr r2, [r0, #0xb4] - mov r0, #0 + arm_func_start ov00_022CFDCC +ov00_022CFDCC: @ 0x022CFDCC + push {r3, r4, r5, lr} + ldr r0, _022CFE10 @ =0x023188CC + ldr r0, [r0, #4] + cmp r0, #0x20 + mvnhs r0, #0 + pophs {r3, r4, r5, pc} + ldr r0, _022CFE14 @ =0x022B966C + ldr r5, [r0, #4] + mov r0, r5 + bl FUN_02079B0C + ldr r1, _022CFE10 @ =0x023188CC + mov r4, r0 + ldr r1, [r1, #4] + mov r0, r5 + bl FUN_02079A64 + mov r0, r4 + pop {r3, r4, r5, pc} + .align 2, 0 +_022CFE10: .4byte 0x023188CC +_022CFE14: .4byte 0x022B966C + arm_func_end ov00_022CFDCC + + arm_func_start ov00_022CFE18 +ov00_022CFE18: @ 0x022CFE18 + push {r3, lr} + mov r1, r0 + cmp r1, #0x20 + pophs {r3, pc} + ldr r0, _022CFE38 @ =0x022B966C + ldr r0, [r0, #4] + bl FUN_02079A64 + pop {r3, pc} + .align 2, 0 +_022CFE38: .4byte 0x022B966C + arm_func_end ov00_022CFE18 + + arm_func_start ov00_022CFE3C +ov00_022CFE3C: @ 0x022CFE3C + ldr r2, _022CFE60 @ =0x022B966C + ldr r2, [r2, #4] + ldr r2, [r2, #0xa4] cmp r2, #0 - bxeq lr -_02074A3C: - ldrb r1, [r2, #0x14c] - ldr r2, [r2, #0x154] + ldrne r2, [r2, #0xc] + cmpne r2, #0 + strne r0, [r2, #0x814] + strne r1, [r2, #0x818] + bx lr + .align 2, 0 +_022CFE60: .4byte 0x022B966C + arm_func_end ov00_022CFE3C + + arm_func_start ov00_022CFE64 +ov00_022CFE64: @ 0x022CFE64 + push {r4, r5, r6, r7, r8, lr} + ldr r6, [r0, #0x818] + mov r8, r1 + cmp r6, #0 + mov r4, #0 + ble _022CFEA8 + ldr r5, [r0, #0x814] +_022CFE80: + ldr r7, [r5, r4, lsl #2] + mov r1, r8 + ldr r0, [r7] + bl FUN_0208982C + cmp r0, #0 + moveq r0, r7 + popeq {r4, r5, r6, r7, r8, pc} + add r4, r4, #1 + cmp r4, r6 + blt _022CFE80 +_022CFEA8: + mov r0, #0 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022CFE64 + + arm_func_start ov00_022CFEB0 +ov00_022CFEB0: @ 0x022CFEB0 + ldr r1, [r0] + ldrb r2, [r1] + add r3, r1, #1 + tst r2, #0x80 + beq _022CFEF4 + ands r1, r2, #0x7f + sub ip, r1, #1 + mov r2, #0 + beq _022CFEF4 +_022CFED4: + tst r2, #0xff000000 + mvnne r0, #0 + bxne lr + ldrb r1, [r3], #1 + cmp ip, #0 + sub ip, ip, #1 + add r2, r1, r2, lsl #8 + bne _022CFED4 +_022CFEF4: + str r3, [r0] + mov r0, r2 + bx lr + arm_func_end ov00_022CFEB0 + + arm_func_start ov00_022CFF00 +ov00_022CFF00: @ 0x022CFF00 + ldrsb r3, [r0] + mov ip, r0 + cmp r3, #0 + beq _022CFF48 +_022CFF10: + ldrsb r3, [r0, #1]! + cmp r3, #0 + bne _022CFF10 + sub r3, r0, ip + cmp r3, #0xff + bxge lr + mov r3, #0x2c + strb r3, [r0] + mov r3, #0x20 + strb r3, [r0, #1] + add r0, r0, #2 + b _022CFF48 +_022CFF40: + ldrsb r3, [r1], #1 + strb r3, [r0], #1 +_022CFF48: + cmp r2, #0 + sub r2, r2, #1 + beq _022CFF60 + sub r3, r0, ip + cmp r3, #0xff + blt _022CFF40 +_022CFF60: + mov r1, #0 + strb r1, [r0] + bx lr + arm_func_end ov00_022CFF00 + + arm_func_start ov00_022CFF6C +ov00_022CFF6C: @ 0x022CFF6C + push {r4, lr} + ldrb ip, [r0, #1] + ldrb r3, [r0], #2 + mov r2, #0xa + cmp r1, #0x17 + mla r1, r3, r2, ip + sub lr, r1, #0x210 + bne _022CFFA0 + cmp lr, #0x32 + addlo r4, lr, #0x7d0 + addhs r1, lr, #0x36c + addhs r4, r1, #0x400 + b _022CFFB8 +_022CFFA0: + ldrb ip, [r0, #1] + ldrb r3, [r0], #2 + mov r1, #0x64 + mla r2, r3, r2, ip + sub r2, r2, #0x210 + mla r4, lr, r1, r2 +_022CFFB8: + ldrb ip, [r0, #1] + ldrb r3, [r0] + mov r1, #0xa + ldrb r2, [r0, #3] + ldrb r0, [r0, #2] + mla ip, r3, r1, ip + mla r1, r0, r1, r2 + sub r0, ip, #0x210 + lsl r0, r0, #8 + add r2, r0, r4, lsl #16 + sub r0, r1, #0x210 + add r0, r2, r0 + pop {r4, pc} + arm_func_end ov00_022CFF6C + + arm_func_start ov00_022CFFEC +ov00_022CFFEC: @ 0x022CFFEC + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #8 + mov fp, r1 + ldr r1, [fp] + mov sb, r0 + add r0, r1, #1 + str r0, [sp, #4] + add r0, sp, #4 + mov r7, r2 + mov r6, r3 + ldr r8, [sp, #0x30] + ldrb r5, [r1] + bl ov00_022CFEB0 + movs r4, r0 + bmi _022D0030 + cmp r4, #0x7d0 + ble _022D003C +_022D0030: + add sp, sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022D003C: + and r1, r5, #0x1f + cmp r1, #0x18 + addls pc, pc, r1, lsl #2 + b _022D0460 +_022D004C: @ jump table + b _022D0460 @ case 0 + b _022D0460 @ case 1 + b _022D00B0 @ case 2 + b _022D01A8 @ case 3 + b _022D0460 @ case 4 + b _022D0460 @ case 5 + b _022D0228 @ case 6 + b _022D0460 @ case 7 + b _022D0460 @ case 8 + b _022D0460 @ case 9 + b _022D0460 @ case 10 + b _022D0460 @ case 11 + b _022D02C0 @ case 12 + b _022D0460 @ case 13 + b _022D0460 @ case 14 + b _022D0460 @ case 15 + b _022D0390 @ case 16 + b _022D0410 @ case 17 + b _022D0460 @ case 18 + b _022D02C0 @ case 19 + b _022D02C0 @ case 20 + b _022D0460 @ case 21 + b _022D02C0 @ case 22 + b _022D0340 @ case 23 + b _022D0340 @ case 24 +_022D00B0: + ldrb r0, [sb, #0x5ad] + cmp r0, #0 + beq _022D0198 + cmp r6, #0 + bne _022D0130 + ldr r0, [sp, #4] + ldrb r1, [r0] cmp r1, #0 - addne r0, r0, #1 - cmp r2, #0 - bne _02074A3C - bx lr - arm_func_end FUN_02074a2c + bne _022D00EC +_022D00D4: + add r0, r0, #1 + str r0, [sp, #4] + ldrb r1, [r0] + sub r4, r4, #1 + cmp r1, #0 + beq _022D00D4 +_022D00EC: + cmp r8, #0 + beq _022D0100 + cmp r8, #2 + beq _022D0120 + b _022D0198 +_022D0100: + cmp r4, #0x100 + bgt _022D0198 + add r1, sb, #0x94 + mov r2, r4 + add r1, r1, #0x400 + bl FUN_0207C4C8 + str r4, [sb, #0x594] + b _022D0198 +_022D0120: + str r4, [sb, #0x484] + ldr r0, [sp, #4] + str r0, [sb, #0x488] + b _022D0198 +_022D0130: + cmp r6, #1 + bne _022D0198 + ldr r0, [sp, #4] + ldrb r1, [r0] + cmp r1, #0 + bne _022D0160 +_022D0148: + add r0, r0, #1 + str r0, [sp, #4] + ldrb r1, [r0] + sub r4, r4, #1 + cmp r1, #0 + beq _022D0148 +_022D0160: + cmp r8, #0 + beq _022D017C + cmp r8, #2 + streq r4, [sb, #0x48c] + ldreq r0, [sp, #4] + streq r0, [sb, #0x490] + b _022D0198 +_022D017C: + cmp r4, #8 + bgt _022D0198 + add r1, sb, #0x198 + mov r2, r4 + add r1, r1, #0x400 + bl FUN_0207C4C8 + str r4, [sb, #0x5a0] +_022D0198: + ldr r0, [sp, #4] + add r0, r0, r4 + str r0, [sp, #4] + b _022D04C4 +_022D01A8: + cmp r7, #1 + bne _022D01CC + cmp r8, #2 + beq _022D01CC + ldr r1, [sp, #4] + sub r0, r4, #1 + add r1, r1, #1 + str r1, [sb, #0x5a4] + str r0, [sb, #0x5a8] +_022D01CC: + ldrb r0, [sb, #0x5ad] + cmp r0, #0 + beq _022D0218 + ldr r0, [sp, #4] + add r1, sp, #4 + add r0, r0, #1 + str r0, [sp, #4] + mov r0, sb + mov r2, r7 + mov r3, #0 + str r8, [sp] + bl ov00_022CFFEC + cmp r0, #0 + addne sp, sp, #8 + movne r0, #1 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, #0 + strb r0, [sb, #0x5ad] + b _022D04C4 +_022D0218: + ldr r0, [sp, #4] + add r0, r0, r4 + str r0, [sp, #4] + b _022D04C4 +_022D0228: + ldr r6, [sp, #4] + ldr sl, _022D04D8 @ =0x023188D4 + mov r5, #0 +_022D0234: + ldr r7, [sl, r5, lsl #2] + mov r0, r7 + bl FUN_02089678 + mov r2, r0 + mov r0, r6 + mov r1, r7 + bl FUN_02087348 + cmp r0, #0 + bne _022D02A4 + cmp r5, #5 + addls pc, pc, r5, lsl #2 + b _022D02B0 +_022D0264: @ jump table + b _022D02B0 @ case 0 + b _022D027C @ case 1 + b _022D027C @ case 2 + b _022D028C @ case 3 + b _022D028C @ case 4 + b _022D0298 @ case 5 +_022D027C: + cmp r8, #0 + streq r5, [sb, #0x45c] + strb r5, [sb, #0x5ad] + b _022D02B0 +_022D028C: + cmp r8, #2 + strne r5, [sb, #0x458] + b _022D02B0 +_022D0298: + cmp r8, #2 + strbne r5, [sb, #0x5ae] + b _022D02B0 +_022D02A4: + add r5, r5, #1 + cmp r5, #6 + blt _022D0234 +_022D02B0: + ldr r0, [sp, #4] + add r0, r0, r4 + str r0, [sp, #4] + b _022D04C4 +_022D02C0: + cmp r8, #2 + beq _022D0328 + ldrb r0, [sb, #0x5ac] + cmp r0, #0 + beq _022D0318 + ldr r1, [sp, #4] + mov r2, r4 + add r0, sb, #0x6b0 + bl ov00_022CFF00 + ldrb r0, [sb, #0x5ae] + cmp r0, #5 + bne _022D0328 + cmp r4, #0x4f + bgt _022D0328 + ldr r0, [sp, #4] + mov r2, r4 + add r1, sb, #0x7b0 + bl FUN_0207C4C8 + add r0, sb, r4 + mov r1, #0 + strb r1, [r0, #0x7b0] + b _022D0328 +_022D0318: + ldr r1, [sp, #4] + mov r2, r4 + add r0, sb, #0x5b0 + bl ov00_022CFF00 +_022D0328: + mov r0, #0 + strb r0, [sb, #0x5ae] + ldr r0, [sp, #4] + add r0, r0, r4 + str r0, [sp, #4] + b _022D04C4 +_022D0340: + cmp r8, #2 + beq _022D0378 + ldr r0, [sp, #4] + bl ov00_022CFF6C + cmp r6, #0 + ldr r1, [sb, #0x80c] + bne _022D036C + cmp r1, r0 + movhs r0, #1 + strbhs r0, [sb, #0x5af] + b _022D0378 +_022D036C: + cmp r1, r0 + movhi r0, #0 + strbhi r0, [sb, #0x5af] +_022D0378: + ldr r1, [sp, #4] + mov r0, #1 + add r1, r1, r4 + str r1, [sp, #4] + strb r0, [sb, #0x5ac] + b _022D04C4 +_022D0390: + cmp r7, #0 + cmpeq r6, #0 + bne _022D03A8 + cmp r8, #2 + ldrne r0, [sp, #4] + strne r0, [sb, #0x460] +_022D03A8: + ldr r0, [sp, #4] + mov r5, #0 + add sl, r0, r4 + cmp r0, sl + bhs _022D03F8 + add r4, sp, #4 +_022D03C0: + mov r0, sb + mov r1, r4 + mov r3, r5 + add r2, r7, #1 + str r8, [sp] + bl ov00_022CFFEC + cmp r0, #0 + add r5, r5, #1 + addne sp, sp, #8 + movne r0, #1 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [sp, #4] + cmp r0, sl + blo _022D03C0 +_022D03F8: + cmp r7, #1 + cmpeq r6, #0 + bne _022D04C4 + cmp r8, #2 + strne r0, [sb, #0x464] + b _022D04C4 +_022D0410: + ldr r0, [sp, #4] + add r6, r0, r4 + cmp r0, r6 + bhs _022D04C4 + add r5, sp, #4 + mov r4, #0 +_022D0428: + mov r0, sb + mov r1, r5 + mov r3, r4 + add r2, r7, #1 + str r8, [sp] + bl ov00_022CFFEC + cmp r0, #0 + addne sp, sp, #8 + movne r0, #1 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [sp, #4] + cmp r0, r6 + blo _022D0428 + b _022D04C4 +_022D0460: + cmp r5, #0xa0 + bne _022D04B8 + ldr r0, [sp, #4] + add r6, r0, r4 + cmp r0, r6 + bhs _022D04C4 + add r5, sp, #4 + mov r4, #0 +_022D0480: + mov r0, sb + mov r1, r5 + mov r3, r4 + add r2, r7, #1 + str r8, [sp] + bl ov00_022CFFEC + cmp r0, #0 + addne sp, sp, #8 + movne r0, #1 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [sp, #4] + cmp r0, r6 + blo _022D0480 + b _022D04C4 +_022D04B8: + ldr r0, [sp, #4] + add r0, r0, r4 + str r0, [sp, #4] +_022D04C4: + ldr r1, [sp, #4] + mov r0, #0 + str r1, [fp] + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022D04D8: .4byte 0x023188D4 + arm_func_end ov00_022CFFEC - arm_func_start FUN_02074a58 -FUN_02074a58: @ 0x02074A58 + arm_func_start ov00_022D04DC +ov00_022D04DC: @ 0x022D04DC + push {r3, r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #4 + mov r8, r0 + ldr r0, [r8, #0x5a4] + mov r7, r1 + cmp r0, #0 + ldrne r0, [r8, #0x5a8] + cmpne r0, #0 + ldrne r0, [r7, #0x10] + cmpne r0, #0 + ldrne r0, [r7, #0xc] + cmpne r0, #0 + ldrne r0, [r7, #8] + cmpne r0, #0 + ldrne r0, [r7, #4] + cmpne r0, #0 + addeq sp, sp, #4 + moveq r0, #2 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, pc} + lsl r0, r0, #1 + ldr r1, _022D067C @ =0x0232508C + add r0, r0, r0, lsr #31 + asr r5, r0, #1 + ldr r1, [r1] + lsl r0, r5, #3 + blx r1 + movs r4, r0 + addeq sp, sp, #4 + moveq r0, #2 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, pc} + add r6, r4, r5, lsl #1 + add sb, r6, r5, lsl #1 + ldr r1, [r8, #0x5a4] + ldr r2, [r8, #0x5a8] + mov r0, r6 + mov r3, r5 + add sl, sb, r5, lsl #1 + bl ov00_022D49AC + ldr r1, [r7, #0x10] + ldr r2, [r7, #0xc] + mov r0, sb + mov r3, r5 + bl ov00_022D49AC + ldr r1, [r7, #8] + ldr r2, [r7, #4] + mov r0, sl + mov r3, r5 + bl ov00_022D49AC + bl ov00_022CFDCC + mov r2, sb + mov sb, r0 + mov r0, r4 + mov r1, r6 + mov r3, r5 + str sl, [sp] + bl ov00_022D4398 + mov r0, sb + bl ov00_022CFE18 + ldr r2, [r7, #4] + mov r0, r6 + mov r1, r4 + mov r3, r5 + bl ov00_022D4A08 + ldrb r0, [r4, r5, lsl #1] + mov r5, #0 + cmp r0, #0 + ldrbeq r0, [r6, #1] + cmpeq r0, #1 + movne r5, #2 + bne _022D0660 + ldr r3, [r7, #4] + mov r2, #2 + cmp r3, #2 + ble _022D061C +_022D0604: + ldrb r0, [r6, r2] + cmp r0, #0xff + bne _022D061C + add r2, r2, #1 + cmp r2, r3 + blt _022D0604 +_022D061C: + add r1, r2, #1 + cmp r1, r3 + bge _022D065C + ldrb r0, [r6, r2] + cmp r0, #0 + ldrbeq r0, [r6, r1] + cmpeq r0, #0x30 + bne _022D065C + ldr r2, [r8, #0x47c] + add r0, r8, #0x68 + add r1, r6, r3 + add r0, r0, #0x400 + sub r1, r1, r2 + bl FUN_02087348 + cmp r0, #0 + beq _022D0660 +_022D065C: + mov r5, #2 +_022D0660: + ldr r1, _022D0680 @ =0x023250B8 + mov r0, r4 + ldr r1, [r1] + blx r1 + mov r0, r5 + add sp, sp, #4 + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022D067C: .4byte 0x0232508C +_022D0680: .4byte 0x023250B8 + arm_func_end ov00_022D04DC + + arm_func_start ov00_022D0684 +ov00_022D0684: @ 0x022D0684 + push {r3, r4, r5, lr} + mov r5, r0 + ldrb r0, [r5, #0x5af] + ldr r1, [r5, #0x45c] + cmp r0, #0 + movne r4, #0 + moveq r4, #0x8000 + mvn r0, #0 + cmp r1, r0 + orreq r0, r4, #4 + popeq {r3, r4, r5, pc} + ldr r0, [r5, #0x458] + cmp r0, #3 + beq _022D06C8 + cmp r0, #4 + beq _022D0700 + b _022D0738 +_022D06C8: + add r0, r5, #0x3fc + bl ov00_022D30BC + ldr r1, [r5, #0x460] + ldr r2, [r5, #0x464] + add r0, r5, #0x3fc + sub r2, r2, r1 + bl ov00_022D3104 + add r1, r5, #0x68 + add r0, r5, #0x3fc + add r1, r1, #0x400 + bl ov00_022D31BC + mov r0, #0x10 + str r0, [r5, #0x47c] + b _022D0740 +_022D0700: + add r0, r5, #0x348 + bl ov00_022D397C + ldr r1, [r5, #0x460] + ldr r2, [r5, #0x464] + add r0, r5, #0x348 + sub r2, r2, r1 + bl ov00_022D39D0 + add r1, r5, #0x68 + add r0, r5, #0x348 + add r1, r1, #0x400 + bl ov00_022D3A88 + mov r0, #0x14 + str r0, [r5, #0x47c] + b _022D0740 +_022D0738: + orr r0, r4, #3 + pop {r3, r4, r5, pc} +_022D0740: + mov r0, r5 + add r1, r5, #0x5b0 + bl ov00_022CFE64 + movs r1, r0 + orreq r0, r4, #1 + popeq {r3, r4, r5, pc} + mov r0, r5 + bl ov00_022D04DC + orr r0, r4, r0 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D0684 + + arm_func_start ov00_022D0768 +ov00_022D0768: @ 0x022D0768 + mov r2, r0 + b _022D0774 +_022D0770: + add r0, r0, #1 +_022D0774: + ldrsb r1, [r0] + cmp r1, #0x2e + cmpne r1, #0 + bne _022D0770 + sub r0, r0, r2 + bx lr + arm_func_end ov00_022D0768 + + arm_func_start ov00_022D078C +ov00_022D078C: @ 0x022D078C + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + b _022D07A8 +_022D079C: + cmp r1, #0 + moveq r0, #0 + popeq {r4, r5, r6, pc} +_022D07A8: + ldrsb r0, [r5], #1 + ldrsb r1, [r6], #1 + cmp r1, r0 + beq _022D079C + cmp r0, #0x2a + movne r0, #1 + popne {r4, r5, r6, pc} + sub r6, r6, #1 + mov r0, r6 + bl ov00_022D0768 + mov r4, r0 + mov r0, r5 + bl ov00_022D0768 + cmp r0, r4 + movgt r0, #1 + popgt {r4, r5, r6, pc} + sub r0, r4, r0 + add r6, r6, r0 + b _022D07A8 + arm_func_end ov00_022D078C +_022D07F4: + .byte 0x70, 0x80, 0xBD, 0xE8 + + arm_func_start ov00_022D07F8 +ov00_022D07F8: @ 0x022D07F8 + push {r0, r1, r2, r3} push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x18 - ldr r4, _02074C64 @ =0x022B7A30 - ldr r7, _02074C68 @ =0x022B7A6C - ldrh r0, [r4, #0x2e] - mov r8, #0 - cmp r0, #0 - ble _02074BC8 + ldr r1, [sp, #0x44] + mov sl, r0 + ldrb r4, [r1, #2] + ldrb r3, [r1] + ldrb r2, [r1, #1] + add r0, r1, #3 + mvn r1, #0 + str r0, [sp, #0x44] + add r2, r2, r3, lsl #8 + add r0, sp, #8 + str r1, [sl, #0x45c] + add r8, r4, r2, lsl #8 + bl FUN_02082748 + mov r6, #0 + ldr r1, [sp, #8] + ldr r0, [sp, #0xc] + add r1, r1, #0x7d0 + lsl r0, r0, #8 + ldr r2, [sp, #0x10] + add r0, r0, r1, lsl #16 + add r0, r2, r0 + str r0, [sl, #0x80c] + strb r6, [sl, #0x6b0] + str r6, [sl, #0x5a0] + mov sb, r6 + str r6, [sl, #0x594] mov fp, #2 - mov sl, #1 - mov r6, r8 - mov r5, r8 -_02074A88: - ldrh sb, [r7, #6] - cmp sb, #0 - beq _02074BB4 - tst sb, #1 - beq _02074B5C - ldrsb r0, [r7, #0x21] - ldrb r1, [r7, #0x1f] + mvn r5, #0 + mov r4, r6 +_022D0878: + ldr r1, [sp, #0x44] + mov r0, sl + ldrb r2, [r1, #2] + ldrb ip, [r1] + ldrb r3, [r1, #1] + add r7, r1, #3 + add r1, sp, #0x44 + str r7, [sp, #0x44] + str r5, [sl, #0x458] + strb r4, [sl, #0x5ad] + strb r4, [sl, #0x5ac] + strb r4, [sl, #0x5af] + strb r4, [sl, #0x6b0] + strb r4, [sl, #0x5b0] + strb r4, [sl, #0x7b0] + add r3, r3, ip, lsl #8 + ldr r7, [sp, #0x44] + add r3, r2, r3, lsl #8 + add r2, r3, #3 + str r7, [sl, #0x804] + str r3, [sl, #0x808] + sub r8, r8, r2 + mov r2, r4 + mov r3, r4 + str r6, [sp] + bl ov00_022CFFEC cmp r0, #0 - movne r3, sl - moveq r3, fp - cmp r1, #4 - addls pc, pc, r1, lsl #2 - b _02074B50 -_02074ABC: @ jump table - b _02074AD0 @ case 0 - b _02074AD0 @ case 1 - b _02074AD0 @ case 2 - b _02074B0C @ case 3 - b _02074B34 @ case 4 -_02074AD0: - ldr r0, [r7, #0x34] - str r0, [sp] - ldr r0, [r7, #0x38] - str r0, [sp, #4] - ldr r0, [r7, #0x140] + bne _022D0900 + ldr r0, [sl, #0x594] + cmp r0, #0x33 + blo _022D0900 + ldr r0, [sl, #0x5a0] + cmp r0, #0 + bne _022D0918 +_022D0900: + mov r0, #9 + add sp, sp, #0x18 + strb r0, [sl, #0x455] + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + add sp, sp, #0x10 + bx lr +_022D0918: + mov r0, sl + bl ov00_022D0684 + mov r7, r0 + cmp sb, #0 + bne _022D0948 + ldr r0, [sl, #0x800] + cmp r0, #0 + beq _022D0948 + add r1, sl, #0x7b0 + bl ov00_022D078C + cmp r0, #0 + orrne r7, r7, #0x4000 +_022D0948: + and r6, r7, #0xff + cmp r6, #1 + bne _022D09B8 + cmp r8, #0 + beq _022D09B8 + ldr r1, [sp, #0x44] + mov r2, #0 + add r1, r1, #3 + str r1, [sp, #4] + mov r1, #0 + strb r1, [sl, #0x5ad] + mov r0, sl + add r1, sp, #4 + mov r3, r2 + str fp, [sp] + bl ov00_022CFFEC + cmp r0, #0 + movne r0, #9 + addne sp, sp, #0x18 + strbne r0, [sl, #0x455] + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + addne sp, sp, #0x10 + bxne lr + mov r0, sl + add r1, sl, #0x480 + bl ov00_022D04DC + bic r1, r7, #0xff + orr r7, r1, r0 +_022D09B8: + ldr r3, [sl, #0x810] + cmp r3, #0 + beq _022D09D8 + mov r0, r7 + mov r1, sl + mov r2, sb + blx r3 + mov r7, r0 +_022D09D8: + cmp r6, #0 + add sb, sb, #1 + beq _022D09F8 + cmp r7, #0 + bne _022D09F8 + cmp r8, #0 + movne r6, #1 + bne _022D0878 +_022D09F8: + cmp r7, #0 + moveq r0, #3 + strbeq r0, [sl, #0x455] + movne r0, #9 + strbne r0, [sl, #0x455] + add sp, sp, #0x18 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + add sp, sp, #0x10 + bx lr + arm_func_end ov00_022D07F8 + + arm_func_start ov00_022D0A1C +ov00_022D0A1C: @ 0x022D0A1C + push {r3, r4, r5, r6, r7, lr} + mov r6, r0 + mov r5, r1 + add r0, r5, #2 + add r1, r6, #0x54 + mov r2, #0x20 + bl FUN_0207C4C8 + ldrb r7, [r6, #0x30] + ldrb r4, [r5, #0x22] + add r5, r5, #0x23 + cmp r7, #0 + beq _022D0A74 + cmp r4, #0x20 + bne _022D0A74 + mov r1, r5 + add r0, r6, #0x74 + mov r2, #0x20 + bl FUN_02087348 + cmp r0, #0 + moveq r0, #1 + strbeq r0, [r6, #0x31] + beq _022D0AB0 +_022D0A74: + cmp r7, #0 + beq _022D0A84 + mov r0, r6 + bl ov00_022CFD0C +_022D0A84: + cmp r4, #0 + moveq r0, #0 + beq _022D0AA4 + mov r0, r5 + add r1, r6, #0x74 + mov r2, #0x20 + bl FUN_0207C4C8 + mov r0, #1 +_022D0AA4: + strb r0, [r6, #0x30] + mov r0, #0 + strb r0, [r6, #0x31] +_022D0AB0: + add r0, r5, r4 + ldrb r2, [r5, r4] + ldrb r1, [r0, #1] + mov r0, #2 + add r1, r1, r2, lsl #8 + strh r1, [r6, #0x32] + strb r0, [r6, #0x455] + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022D0A1C + + arm_func_start ov00_022D0AD0 +ov00_022D0AD0: @ 0x022D0AD0 + push {r4, lr} + cmp r1, #0 + mov r4, #0 + ble _022D0B14 +_022D0AE0: + ldrb lr, [r0] + ldrb ip, [r0, #1] + cmp r2, #3 + add lr, ip, lr, lsl #8 + ldrbeq ip, [r0, #2] + addeq lr, ip, lr, lsl #8 + cmp lr, r3 + moveq r0, #1 + popeq {r4, pc} + add r4, r4, #1 + cmp r4, r1 + add r0, r0, r2 + blt _022D0AE0 +_022D0B14: + mov r0, #0 + pop {r4, pc} + arm_func_end ov00_022D0AD0 + + arm_func_start ov00_022D0B1C +ov00_022D0B1C: @ 0x022D0B1C + push {r4, r5, r6, r7, r8, lr} + ldr r4, _022D0B78 @ =0x023188CC + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, #0 +_022D0B34: + lsl r0, r5, #1 + ldrh r3, [r4, r0] + mov r0, r8 + mov r1, r7 + mov r2, r6 + bl ov00_022D0AD0 + cmp r0, #0 + beq _022D0B64 + ldr r0, _022D0B78 @ =0x023188CC + lsl r1, r5, #1 + ldrh r0, [r0, r1] + pop {r4, r5, r6, r7, r8, pc} +_022D0B64: + add r5, r5, #1 + cmp r5, #2 + blo _022D0B34 + mov r0, #0 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022D0B78: .4byte 0x023188CC + arm_func_end ov00_022D0B1C + + arm_func_start ov00_022D0B7C +ov00_022D0B7C: @ 0x022D0B7C + cmp r0, #3 + moveq r0, #1 + movne r0, #0 + bx lr + arm_func_end ov00_022D0B7C + + arm_func_start ov00_022D0B8C +ov00_022D0B8C: @ 0x022D0B8C + push {r3, r4, r5, r6, r7, lr} + mov r6, r1 + mov r7, r0 + ldrb r0, [r6] + ldrb r1, [r6, #1] + bl ov00_022D0B7C + cmp r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldrb r2, [r6, #2] + ldrb r1, [r6, #3] + ldr r3, _022D0C50 @ =0x55555556 + add r0, r6, #8 + add r4, r1, r2, lsl #8 + smull r2, r1, r3, r4 + add r1, r1, r4, lsr #31 + mov r2, #3 + bl ov00_022D0B1C + lsl r0, r0, #0x10 + lsrs r0, r0, #0x10 + popeq {r3, r4, r5, r6, r7, pc} + strh r0, [r7, #0x32] + ldrb r5, [r6, #4] + ldrb r3, [r6, #5] + ldrb r2, [r6, #6] + ldrb r0, [r6, #7] + mov r1, #0 + add r3, r3, r5, lsl #8 + add r5, r0, r2, lsl #8 + add r0, r4, #8 + strb r1, [r7, #0x30] + cmp r5, #0x20 + add r4, r0, r3 + blt _022D0C24 + add r0, r6, r4 + add r1, r7, #0x34 + mov r2, #0x20 + bl FUN_0207C4C8 + b _022D0C44 +_022D0C24: + add r0, r7, #0x34 + rsb r2, r5, #0x20 + bl FUN_0207C40C + add r1, r7, #0x54 + mov r2, r5 + add r0, r6, r4 + sub r1, r1, r5 + bl FUN_0207C4C8 +_022D0C44: + mov r0, #1 + strb r0, [r7, #0x455] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022D0C50: .4byte 0x55555556 + arm_func_end ov00_022D0B8C + + arm_func_start ov00_022D0C54 +ov00_022D0C54: @ 0x022D0C54 + push {r4, r5, r6, lr} + mov r6, r1 + mov r4, r0 + ldrb r0, [r6] + ldrb r1, [r6, #1] + bl ov00_022D0B7C + cmp r0, #0 + popeq {r4, r5, r6, pc} + add r0, r6, #2 + add r1, r4, #0x34 + mov r2, #0x20 + bl FUN_0207C4C8 + ldrb r5, [r6, #0x22] + add r6, r6, #0x23 + cmp r5, #0x20 + movne r0, #0 + strbne r0, [r4, #0x30] + bne _022D0CB4 + mov r0, r6 + add r1, r4, #0x74 + mov r2, #0x20 + bl FUN_0207C4C8 + mov r0, r4 + bl ov00_022CFAEC +_022D0CB4: + add r0, r6, r5 + ldrb r1, [r0, #1] + ldrb r3, [r6, r5] + add r0, r0, #2 + mov r2, #2 + add r1, r1, r3, lsl #8 + add r1, r1, r1, lsr #31 + asr r1, r1, #1 + bl ov00_022D0B1C + lsl r0, r0, #0x10 + lsrs r0, r0, #0x10 + strh r0, [r4, #0x32] + movne r0, #1 + strbne r0, [r4, #0x455] + pop {r4, r5, r6, pc} + arm_func_end ov00_022D0C54 + + arm_func_start ov00_022D0CF0 +ov00_022D0CF0: @ 0x022D0CF0 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x18 + movs sl, r2 str r0, [sp, #8] - str r6, [sp, #0xc] - ldr r0, [r7, #0x13c] - str r0, [sp, #0x10] - ldr r0, [r7, #0x144] - str r0, [sp, #0x14] - ldrh r0, [r7, #8] - ldr r2, [r7, #0x30] - bl FUN_0207ca6c - b _02074B50 -_02074B0C: - ldr r0, [r7, #0x13c] - mov r3, #0 - str r0, [sp] - ldr r0, [r7, #0x144] - str r0, [sp, #4] - ldrh r0, [r7, #8] - ldrb r1, [r7, #0x25] - ldr r2, [r7, #0x140] - bl FUN_0207cab8 - b _02074B50 -_02074B34: - ldr r0, [r7, #0x144] - mov r2, #0 - str r0, [sp] - ldrh r0, [r7, #8] - ldr r1, [r7, #0x140] - ldr r3, [r7, #0x13c] - bl FUN_0207cae0 -_02074B50: - mov r0, r7 - bl FUN_020749a4 - b _02074BB0 -_02074B5C: - tst sb, #2 - beq _02074B70 - mov r0, r7 - bl FUN_020749f4 - mov sb, #0 -_02074B70: - tst sb, #0x10 - beq _02074B84 - ldrh r0, [r7, #0xa] - ldr r1, [r7, #0x13c] - bl FUN_0207ca04 -_02074B84: - tst sb, #0x20 - beq _02074B9C - ldrh r0, [r7, #0xa] - ldr r1, [r7, #0x140] - mov r2, #0 - bl FUN_0207ca24 -_02074B9C: - tst sb, #0x40 - beq _02074BB0 - ldrh r0, [r7, #0xa] - ldr r1, [r7, #0x144] - bl FUN_0207ca4c -_02074BB0: - strh r5, [r7, #6] -_02074BB4: - ldrh r0, [r4, #0x2e] - add r8, r8, #1 - add r7, r7, #0x15c - cmp r8, r0 - blt _02074A88 -_02074BC8: - ldr r1, _02074C64 @ =0x022B7A30 - ldr r2, _02074C6C @ =0x022B7330 - ldrh r0, [r1, #0x32] - strh r0, [r1, #0x30] - ldrb r1, [r2, #0x73a] - ldrb r2, [r2, #0x738] - orr r3, r0, r1 - orrs r3, r2, r3 - beq _02074C0C - mov r3, #0 - bl FUN_0207c8b8 - ldr r1, _02074C6C @ =0x022B7330 - mov r2, #0 - strb r2, [r1, #0x738] - ldr r0, _02074C64 @ =0x022B7A30 - strb r2, [r1, #0x73a] - strh r2, [r0, #0x32] -_02074C0C: - ldr r1, _02074C64 @ =0x022B7A30 - ldr r0, _02074C6C @ =0x022B7330 - ldrh r4, [r1, #0x34] - ldrh r3, [r1, #0x36] - ldrb r1, [r0, #0x73b] - ldrb r2, [r0, #0x739] - orr r0, r4, r3 - orr r3, r1, r0 - orrs r3, r2, r3 + ldrne r0, [sl] + mov fp, r1 + cmpne r0, #0 addeq sp, sp, #0x18 popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - mov r3, #0 - bl FUN_0207c8e0 - ldr r1, _02074C6C @ =0x022B7330 - mov r2, #0 - strb r2, [r1, #0x739] - ldr r0, _02074C64 @ =0x022B7A30 - strb r2, [r1, #0x73b] - strh r2, [r0, #0x36] - strh r2, [r0, #0x34] + lsl r0, r0, #1 + add r0, r0, r0, lsr #31 + asr r0, r0, #1 + add r4, r0, #1 + mov r0, #0x14 + mul r0, r4, r0 + ldr r1, _022D0F28 @ =0x0232508C + ldr r1, [r1] + blx r1 + movs r5, r0 + addeq sp, sp, #0x18 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r6, r5, r4, lsl #1 + add r7, r6, r4, lsl #1 + add r1, r7, r4, lsl #1 + str r1, [sp, #0x10] + add r1, r1, r4, lsl #1 + add r8, r1, r4, lsl #1 + str r1, [sp, #0xc] + ldr r2, [sl] + add sb, r8, r4, lsl #1 + mov r1, fp + mov r3, r4 + add fp, sb, r4, lsl #1 + bl ov00_022D49AC + ldr r1, [sl, #0x1c] + ldr r2, [sl, #0x18] + mov r0, r6 + mov r3, r4 + bl ov00_022D49AC + ldr r1, [sl, #0xc] + ldr r2, [sl, #8] + mov r0, r8 + mov r3, r4 + bl ov00_022D49AC + bl ov00_022CFDCC + str r0, [sp, #0x14] + ldr r0, [sp, #0x10] + str r8, [sp] + mov r1, r5 + mov r2, r6 + mov r3, r4 + bl ov00_022D47A0 + ldr r1, [sl, #0x24] + ldr r2, [sl, #0x20] + mov r0, r6 + mov r3, r4 + bl ov00_022D49AC + ldr r1, [sl, #0x14] + ldr r2, [sl, #0x10] + mov r0, r8 + mov r3, r4 + bl ov00_022D49AC + ldr r0, [sp, #0xc] + mov r1, r5 + mov r2, r6 + mov r3, r4 + str r8, [sp] + bl ov00_022D47A0 + ldr r0, [sp, #0x14] + bl ov00_022CFE18 + ldr r1, [sp, #0x10] + ldr r2, [sp, #0xc] + mov r0, r5 + mov r3, r4 + bl ov00_022D3D98 + ldr r1, [sl, #0x2c] + ldr r2, [sl, #0x28] + mov r0, r6 + mov r3, r4 + bl ov00_022D49AC + mov r0, r7 + mov r1, r5 + mov r2, r6 + mov r3, r4 + bl ov00_022D3F14 + ldr r1, [sl, #0x14] + ldr r2, [sl, #0x10] + mov r0, r6 + mov r3, r4 + bl ov00_022D49AC + mov r0, r5 + mov r1, r7 + mov r2, r6 + mov r3, r4 + bl ov00_022D3F14 + ldr r2, [sp, #0xc] + mov r0, r7 + mov r1, r5 + mov r3, r4 + bl ov00_022D3C58 + ldr r1, [sl, #4] + ldr r2, [sl] + mov r0, r6 + mov r3, r4 + bl ov00_022D49AC + mov r0, r7 + mov r1, r4 + bl ov00_022D3C28 + cmp r0, #0 + bge _022D0EE4 + mov r0, r7 + mov r1, r4 + bl ov00_022D3D58 + mov r1, r7 + mov r2, r6 + mov r3, sb + mov r0, #0 + stm sp, {r4, fp} + bl ov00_022D41B8 + mov r0, sb + mov r1, r6 + mov r2, sb + mov r3, r4 + bl ov00_022D3D98 + b _022D0EFC +_022D0EE4: + mov r1, r7 + mov r2, r6 + mov r3, sb + mov r0, #0 + stm sp, {r4, fp} + bl ov00_022D41B8 +_022D0EFC: + ldr r0, [sp, #8] + mov r1, sb + mov r3, r4 + mov r2, #0x30 + bl ov00_022D4A08 + ldr r1, _022D0F2C @ =0x023250B8 + mov r0, r5 + ldr r1, [r1] + blx r1 add sp, sp, #0x18 pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 -_02074C64: .4byte 0x022B7A30 -_02074C68: .4byte 0x022B7A6C -_02074C6C: .4byte 0x022B7330 - arm_func_end FUN_02074a58 +_022D0F28: .4byte 0x0232508C +_022D0F2C: .4byte 0x023250B8 + arm_func_end ov00_022D0CF0 - arm_func_start FUN_02074c70 -FUN_02074c70: @ 0x02074C70 - mov r1, #0 - strb r1, [r0] - strb r1, [r0, #0x1c] - str r1, [r0, #0x10] - bx lr - arm_func_end FUN_02074c70 - - arm_func_start FUN_02074c84 -FUN_02074c84: @ 0x02074C84 - mvn r1, #0xff - str r1, [r0] - add r1, r1, #0xff - str r1, [r0, #4] - str r1, [r0, #8] - str r1, [r0, #0xc] - bx lr - arm_func_end FUN_02074c84 - - arm_func_start FUN_02074ca0 -FUN_02074ca0: @ 0x02074CA0 - mov r1, #1 - strb r1, [r0] - ldrb r1, [r0, #1] - cmp r1, #0x7f - ldrbhi r1, [r0, #8] - cmphi r1, #0x7f - ldrbhi r1, [r0, #9] - cmphi r1, #0x7f - ldrbhi r1, [r0, #0xa] - cmphi r1, #0x7f - ldrbhi r1, [r0, #0xb] - cmphi r1, #0x7f - ldrbhi r1, [r0, #0xc] - cmphi r1, #0x7f - ldrbhi r1, [r0, #0xd] - cmphi r1, #0x7f - ldrbhi r1, [r0, #0xe] - cmphi r1, #0x7f - movhi r1, #0 - strbhi r1, [r0] - bx lr - arm_func_end FUN_02074ca0 - - arm_func_start FUN_02074cf4 -FUN_02074cf4: @ 0x02074CF4 - ldrb r2, [r1, #1] - cmp r2, #0x7f - strbls r2, [r0, #1] - ldrb r2, [r1, #8] - cmp r2, #0x7f - strbls r2, [r0, #8] - ldrb r2, [r1, #9] - cmp r2, #0x7f - strbls r2, [r0, #9] - ldrb r2, [r1, #0xa] - cmp r2, #0x7f - strbls r2, [r0, #0xa] - ldrb r2, [r1, #0xb] - cmp r2, #0x7f - strbls r2, [r0, #0xb] - ldrb r2, [r1, #0xc] - cmp r2, #0x7f - strbls r2, [r0, #0xc] - ldrb r2, [r1, #0xd] - cmp r2, #0x7f - strbls r2, [r0, #0xd] - ldrb r1, [r1, #0xe] - cmp r1, #0x7f - strbls r1, [r0, #0xe] - bx lr - arm_func_end FUN_02074cf4 - - arm_func_start FUN_02074d58 -FUN_02074d58: @ 0x02074D58 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - cmp r2, #0x7f - bne _02074D80 - mov r0, #0 - str r0, [r5, #0x14] - sub r0, r0, #0x80000001 - str r0, [r5, #0x18] - pop {r3, r4, r5, pc} -_02074D80: - strb r4, [r5, #0x1d] - ldrb r3, [r5, #1] - cmp r3, #0 - bne _02074DB0 - ldr r0, _02074E00 @ =0x020B1050 - ldr r1, _02074E04 @ =0x022B7330 - ldr r2, [r0, r2, lsl #2] - mov r0, #0x3e8 - mul r0, r2, r0 - ldrsh r1, [r1, #0x28] - bl DivideUInt - b _02074DD4 -_02074DB0: - ldr r0, _02074E08 @ =0x020B0F50 - lsl r1, r2, #1 - ldrh r2, [r0, r1] - ldr r1, _02074E04 @ =0x022B7330 - mov r0, #0x3e8 - mul r2, r3, r2 - mul r0, r2, r0 - ldrsh r1, [r1, #0x28] - bl DivideInt -_02074DD4: - str r0, [r5, #0x18] - ldr r1, [r5, #0x18] - cmp r1, #0 - moveq r0, #0 - streq r0, [r5, #0x14] - popeq {r3, r4, r5, pc} - ldr r0, [r5, #0x10] - rsb r0, r0, r4, lsl #23 - bl DivideInt - str r0, [r5, #0x14] - pop {r3, r4, r5, pc} - .align 2, 0 -_02074E00: .4byte 0x020B1050 -_02074E04: .4byte 0x022B7330 -_02074E08: .4byte 0x020B0F50 - arm_func_end FUN_02074d58 - - arm_func_start FUN_02074e0c -FUN_02074e0c: @ 0x02074E0C - push {r4, lr} - mov r4, r0 - ldrb r1, [r4] - cmp r1, #0 - beq _02074EB8 - ldrb r1, [r4, #9] - cmp r1, #0 - beq _02074E50 - ldrb r3, [r4, #8] - mov r2, #3 - mov r1, #0x7f - lsl r3, r3, #0x17 - str r3, [r4, #0x10] - strb r2, [r4, #0x1c] - ldrb r2, [r4, #9] - bl FUN_02074d58 - b _02074EAC -_02074E50: - mov r1, #0x3f800000 - str r1, [r4, #0x10] - ldrb r2, [r4, #0xc] - cmp r2, #0 - beq _02074E78 - mov r1, #0x7f - bl FUN_02074d58 - mov r0, #4 - strb r0, [r4, #0x1c] - b _02074EAC -_02074E78: - ldrb r2, [r4, #0xa] - cmp r2, #0 - beq _02074E98 - ldrsb r1, [r4, #0xb] - bl FUN_02074d58 - mov r0, #5 - strb r0, [r4, #0x1c] - b _02074EAC -_02074E98: - ldrb r2, [r4, #0xd] - mov r1, #0 - bl FUN_02074d58 - mov r0, #6 - strb r0, [r4, #0x1c] -_02074EAC: - mov r0, #1 - strb r0, [r4, #0x1e] - pop {r4, pc} -_02074EB8: - ldrb r0, [r4, #0x1c] - cmp r0, #1 - popeq {r4, pc} - mov r0, #0 - strb r0, [r4, #0x1c] - mov r0, #0x3f800000 - str r0, [r4, #0x10] - pop {r4, pc} - arm_func_end FUN_02074e0c - - arm_func_start FUN_02074ed8 -FUN_02074ed8: @ 0x02074ED8 - push {r4, lr} - mov r4, r0 - ldrb r1, [r4, #0x1c] - cmp r1, #0 - popeq {r4, pc} - ldrb r2, [r4, #0xe] - mov r1, #0 - bl FUN_02074d58 - mov r0, #7 - strb r0, [r4, #0x1c] - pop {r4, pc} - arm_func_end FUN_02074ed8 - - arm_func_start FUN_02074f04 -FUN_02074f04: @ 0x02074F04 - mov r1, #0 - strb r1, [r0, #0x1c] - str r1, [r0, #0x10] - str r1, [r0, #0x18] - strb r1, [r0, #0x1e] - bx lr - arm_func_end FUN_02074f04 - - arm_func_start FUN_02074f1c -FUN_02074f1c: @ 0x02074F1C - mov r3, #0 - strb r3, [r0] - mov r2, #1 - strb r2, [r0, #0x1c] - str r1, [r0, #0x10] - str r3, [r0, #0x18] - strb r2, [r0, #0x1e] - bx lr - arm_func_end FUN_02074f1c - - arm_func_start FUN_02074f3c -FUN_02074f3c: @ 0x02074F3C - mov r1, #0 - strb r1, [r0, #0x1c] - str r1, [r0, #0x10] - str r1, [r0, #0x18] - strb r1, [r0, #0x1e] - bx lr - arm_func_end FUN_02074f3c - - arm_func_start FUN_02074f54 -FUN_02074f54: @ 0x02074F54 - push {r4, lr} - mov r4, r0 - ldrb r1, [r4, #0x1c] - cmp r1, #2 - bls _02075088 - ldr r1, [r4, #0x18] - cmp r1, #0 - bne _02075058 - ldrb r1, [r4, #0x1d] - lsl r1, r1, #0x17 - str r1, [r4, #0x10] - ldrb r1, [r4, #0x1c] - cmp r1, #7 - addls pc, pc, r1, lsl #2 - b _02075088 -_02074F90: @ jump table - b _02075088 @ case 0 - b _02075088 @ case 1 - b _02075088 @ case 2 - b _02074FB0 @ case 3 - b _02074FD0 @ case 4 - b _02075000 @ case 5 - b _02075024 @ case 6 - b _02075040 @ case 7 -_02074FB0: - ldrb r2, [r4, #0xc] - cmp r2, #0 - beq _02074FD0 - mov r1, #0x7f - bl FUN_02074d58 - mov r0, #4 - strb r0, [r4, #0x1c] - b _02075088 -_02074FD0: - ldrb r2, [r4, #0xa] - cmp r2, #0 - beq _02074FF4 - ldrsb r1, [r4, #0xb] - mov r0, r4 - bl FUN_02074d58 - mov r0, #5 - strb r0, [r4, #0x1c] - b _02075088 -_02074FF4: - ldrb r0, [r4, #0xb] - lsl r0, r0, #0x17 - str r0, [r4, #0x10] -_02075000: - ldrb r2, [r4, #0xd] - cmp r2, #0 - beq _02075024 - mov r0, r4 - mov r1, #0 - bl FUN_02074d58 - mov r0, #6 - strb r0, [r4, #0x1c] - b _02075088 -_02075024: - mov r1, #0 - mov r0, r4 - mov r2, r1 - bl FUN_02074d58 - mov r0, #2 - strb r0, [r4, #0x1c] - b _02075088 -_02075040: - mov r0, #8 - strb r0, [r4, #0x1c] - mov r0, #0 - str r0, [r4, #0x10] - str r0, [r4, #0x18] - b _02075088 -_02075058: - ldr r2, [r4, #0x10] - ldr r1, [r4, #0x14] - mvn r0, #0xc0000000 - add r1, r2, r1 - cmp r1, r0 - movgt r1, r0 - ldr r0, [r4, #0x18] - cmp r1, #0 - sub r0, r0, #1 - movlt r1, #0 - str r0, [r4, #0x18] - str r1, [r4, #0x10] -_02075088: - ldr r0, [r4, #0x10] - asr r0, r0, #0x17 - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - pop {r4, pc} - arm_func_end FUN_02074f54 - - arm_func_start FUN_0207509c -FUN_0207509c: @ 0x0207509C - mov r1, #0 - str r1, [r0] - str r1, [r0, #4] - str r1, [r0, #8] - str r1, [r0, #0xc] - bx lr - arm_func_end FUN_0207509c - - arm_func_start FUN_020750b4 -FUN_020750b4: @ 0x020750B4 - push {r3, r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x20 - mov sb, r0 - ldr ip, _0207529C @ =0x020A9FA0 - add r7, sp, #0 - mov r8, r1 - add r4, sb, #0xc - add r5, sb, #0x10 - mov r6, #0 - mov r3, #4 -_020750DC: - ldrh r1, [ip] - ldrh r0, [ip, #2] - add ip, ip, #4 - strh r1, [r7] - strh r0, [r7, #2] - add r7, r7, #4 - subs r3, r3, #1 - bne _020750DC - ldr r1, _020752A0 @ =0x81020409 - lsl r3, r2, #8 - smull r0, r7, r1, r3 - add r7, r7, r2, lsl #8 - lsr r0, r3, #0x1f - add r7, r0, r7, asr #6 - lsl r7, r7, #0x10 -_02075118: - ldrb lr, [r8, #1] - cmp lr, #0 - beq _02075278 - add ip, sp, #0 - add r3, sp, #0x10 - mov r2, #4 -_02075130: - ldrh r1, [ip] - ldrh r0, [ip, #2] - add ip, ip, #4 - strh r1, [r3] - strh r0, [r3, #2] - add r3, r3, #4 - subs r2, r2, #1 - bne _02075130 - strb lr, [r5, #1] - mov r1, #0 - strb r1, [r5] - str r1, [r5, #8] - ldrb r0, [r8, #1] - cmp r0, #1 - bne _020751D8 - ldrh r2, [r8, #0xa] - mov r0, #0x3e8 - ldr r1, _020752A4 @ =0x022B7330 - mul r0, r2, r0 - ldrsh r1, [r1, #0x28] - bl DivideInt - strh r0, [r5, #0x1a] - ldr r1, _020752A4 @ =0x022B7330 - ldrh r2, [r8, #0xc] - mov r0, #0x3e8 - ldrsh r1, [r1, #0x28] - mul r0, r2, r0 - bl DivideInt - movs r1, r0 - strh r1, [r5, #0x1e] - beq _020751C4 - mov r0, #0 - str r0, [r5, #0x20] - mov r0, #0x1000000 - bl DivideInt - str r0, [r5, #0x24] - b _020751E4 -_020751C4: - mov r0, #0x1000000 - str r0, [r5, #0x20] - mov r0, #0 - str r0, [r5, #0x24] - b _020751E4 -_020751D8: - strh r1, [r5, #0x1a] - strh r1, [r5, #0x1e] - str r7, [r5, #0x20] -_020751E4: - mov r0, #0 - strh r0, [r5, #6] - str r0, [r5, #0x14] - ldrh r1, [r8, #8] - cmp r1, #0 - strheq r0, [r5, #6] - strheq r0, [r5, #4] - beq _02075240 - mov r0, #0x3e8 - mul r0, r1, r0 - ldr r1, _020752A4 @ =0x022B7330 - ldrsh r1, [r1, #0x28] - bl DivideInt - movs r1, r0 - addeq r1, r1, #1 - strh r1, [r5, #4] - mov r0, #0 - strh r0, [r5, #6] - ldr r0, [r8, #4] - lsl r0, r0, #0xa - str r0, [r5, #0xc] - bl DivideInt - str r0, [r5, #0x14] -_02075240: - ldrb r2, [r8, #3] - ldr r1, _020752A8 @ =0x020B1250 - add r0, sp, #0x10 - ldr r1, [r1, r2, lsl #2] - str r1, [r5, #0x2c] - ldrb r1, [r8, #2] - add r1, sb, r1, lsl #1 - str r1, [r5, #0x28] - ldrb r1, [r8, #2] - lsl r1, r1, #1 - ldrh r0, [r0, r1] - strh r0, [r5, #2] - str r5, [r4] - add r4, r5, #0x30 -_02075278: - add r6, r6, #1 - cmp r6, #4 - add r8, r8, #0x10 - add r5, r5, #0x34 - blt _02075118 - mov r0, #0 - str r0, [r4] - add sp, sp, #0x20 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0207529C: .4byte 0x020A9FA0 -_020752A0: .4byte 0x81020409 -_020752A4: .4byte 0x022B7330 -_020752A8: .4byte 0x020B1250 - arm_func_end FUN_020750b4 - - arm_func_start FUN_020752ac -FUN_020752ac: @ 0x020752AC - push {r3, lr} - ldr lr, [r0, #0xc] - cmp lr, #0 - popeq {r3, pc} - ldr r2, _020752F4 @ =0x81020409 - lsl r3, r1, #8 - smull r0, ip, r2, r3 - add ip, ip, r1, lsl #8 - lsr r0, r3, #0x1f - add ip, r0, ip, asr #6 - lsl r1, ip, #0x10 -_020752D8: - ldrb r0, [lr, #1] - cmp r0, #3 - streq r1, [lr, #0x20] - ldr lr, [lr, #0x30] - cmp lr, #0 - bne _020752D8 - pop {r3, pc} - .align 2, 0 -_020752F4: .4byte 0x81020409 - arm_func_end FUN_020752ac - - arm_func_start FUN_020752f8 -FUN_020752f8: @ 0x020752F8 - push {r4, r5, r6, lr} - mov r6, #0 - str r6, [r0] - str r6, [r0, #4] - str r6, [r0, #8] - ldr r5, [r0, #0xc] - cmp r5, #0 - beq _020753A4 - mov r4, #0x1000000 -_0207531C: - ldrh r0, [r5, #0x1a] - cmp r0, #0 - subne r0, r0, #1 - strhne r0, [r5, #0x1a] - bne _02075398 - ldr r1, [r5, #0x2c] - mov r0, r5 - blx r1 - ldrh r1, [r5, #0x1e] - asr r0, r0, #8 - cmp r1, #0 - beq _02075374 - sub r1, r1, #1 - strh r1, [r5, #0x1e] - ldrh r1, [r5, #0x1e] - cmp r1, #0 - streq r4, [r5, #0x20] - beq _02075374 - ldr r2, [r5, #0x20] - ldr r1, [r5, #0x24] - add r1, r2, r1 - str r1, [r5, #0x20] -_02075374: - ldr r2, [r5, #0x20] - ldr r1, [r5, #0x28] - lsr r2, r2, #8 - mul r2, r0, r2 - ldrsh r0, [r1] - add r0, r0, r2, asr #16 - strh r0, [r1] - ldrh r0, [r5, #2] - orr r6, r6, r0 -_02075398: - ldr r5, [r5, #0x30] - cmp r5, #0 - bne _0207531C -_020753A4: - mov r0, r6 - pop {r4, r5, r6, pc} - arm_func_end FUN_020752f8 -_020753AC: - .byte 0x00, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x10, 0xC0, 0xE5, 0x01, 0x10, 0xC0, 0xE5, 0x01, 0x00, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xB6, 0x10, 0xD0, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0x06, 0x00, 0x00, 0x1A, 0xB4, 0x10, 0xD0, 0xE1 - .byte 0xB6, 0x10, 0xC0, 0xE1, 0x08, 0x10, 0x90, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x00, 0x10, 0xA0, 0x13 - .byte 0x0C, 0x10, 0x90, 0x05, 0x08, 0x10, 0x80, 0xE5, 0xB6, 0x10, 0xD0, 0xE1, 0x01, 0x10, 0x41, 0xE2 - .byte 0xB6, 0x10, 0xC0, 0xE1, 0x08, 0x00, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xB6, 0x10, 0xD0, 0xE1 - .byte 0x00, 0x00, 0x51, 0xE3, 0x09, 0x00, 0x00, 0x1A, 0xB4, 0x10, 0xD0, 0xE1, 0xB6, 0x10, 0xC0, 0xE1 - .byte 0x00, 0x10, 0xD0, 0xE5, 0x02, 0x00, 0x11, 0xE3, 0x0C, 0x10, 0x90, 0xE5, 0x00, 0x10, 0x61, 0x12 - .byte 0x08, 0x10, 0x80, 0xE5, 0x00, 0x10, 0xD0, 0xE5, 0x02, 0x10, 0x21, 0xE2, 0x00, 0x10, 0xC0, 0xE5 - .byte 0xB6, 0x10, 0xD0, 0xE1, 0x01, 0x10, 0x41, 0xE2, 0xB6, 0x10, 0xC0, 0xE1, 0x08, 0x00, 0x90, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xB6, 0x10, 0xD0, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0x08, 0x00, 0x00, 0x1A - .byte 0x00, 0x20, 0xD0, 0xE5, 0xB4, 0x10, 0xD0, 0xE1, 0x01, 0x00, 0x12, 0xE3, 0xB6, 0x10, 0xC0, 0xE1 - .byte 0x14, 0x10, 0x90, 0x15, 0x00, 0x10, 0x61, 0x12, 0x14, 0x10, 0x80, 0x15, 0x01, 0x10, 0x82, 0xE3 - .byte 0x00, 0x10, 0xC0, 0xE5, 0xB6, 0x10, 0xD0, 0xE1, 0x01, 0x10, 0x41, 0xE2, 0xB6, 0x10, 0xC0, 0xE1 - .byte 0x08, 0x20, 0x90, 0xE5, 0x14, 0x10, 0x90, 0xE5, 0x01, 0x10, 0x82, 0xE0, 0x08, 0x10, 0x80, 0xE5 - .byte 0x01, 0x00, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xB6, 0x20, 0xD0, 0xE1, 0x00, 0x00, 0x52, 0xE3 - .byte 0x0D, 0x00, 0x00, 0x1A, 0x00, 0x30, 0xD0, 0xE5, 0xB4, 0x20, 0xD0, 0xE1, 0x01, 0x00, 0x13, 0xE3 - .byte 0x03, 0x00, 0x00, 0x0A, 0x14, 0x10, 0x90, 0xE5, 0x00, 0x10, 0x61, 0xE2, 0x14, 0x10, 0x80, 0xE5 - .byte 0x03, 0x00, 0x00, 0xEA, 0x82, 0x17, 0xA0, 0xE1, 0x21, 0x28, 0xA0, 0xE1, 0x01, 0x00, 0x52, 0xE3 - .byte 0x01, 0x20, 0xA0, 0x33, 0x01, 0x10, 0x83, 0xE3, 0x00, 0x10, 0xC0, 0xE5, 0x01, 0x10, 0x42, 0xE2 - .byte 0xB6, 0x10, 0xC0, 0xE1, 0x08, 0x20, 0x90, 0xE5, 0x14, 0x10, 0x90, 0xE5, 0x01, 0x10, 0x82, 0xE0 - .byte 0x08, 0x10, 0x80, 0xE5, 0x01, 0x00, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xB6, 0x10, 0xD0, 0xE1 - .byte 0x00, 0x00, 0x51, 0xE3, 0x08, 0x20, 0x90, 0x15, 0x14, 0x10, 0x90, 0x15, 0x01, 0x10, 0x82, 0x10 - .byte 0x02, 0x00, 0x00, 0x1A, 0xB4, 0x20, 0xD0, 0xE1, 0x00, 0x10, 0xA0, 0xE3, 0xB6, 0x20, 0xC0, 0xE1 - .byte 0x08, 0x10, 0x80, 0xE5, 0xB6, 0x10, 0xD0, 0xE1, 0x01, 0x10, 0x41, 0xE2, 0xB6, 0x10, 0xC0, 0xE1 - .byte 0x08, 0x00, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xB6, 0x10, 0xD0, 0xE1, 0x00, 0x00, 0x51, 0xE3 - .byte 0x08, 0x20, 0x90, 0x15, 0x14, 0x10, 0x90, 0x15, 0x01, 0x10, 0x42, 0x10, 0x02, 0x00, 0x00, 0x1A - .byte 0xB4, 0x10, 0xD0, 0xE1, 0xB6, 0x10, 0xC0, 0xE1, 0x0C, 0x10, 0x90, 0xE5, 0x08, 0x10, 0x80, 0xE5 - .byte 0xB6, 0x10, 0xD0, 0xE1, 0x01, 0x10, 0x41, 0xE2, 0xB6, 0x10, 0xC0, 0xE1, 0x08, 0x00, 0x90, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02075574 -FUN_02075574: @ 0x02075574 - push {r4, lr} - mov r4, r0 - ldrh r0, [r4, #6] - cmp r0, #0 - bne _020755A4 - ldrh r0, [r4, #4] - strh r0, [r4, #6] - bl FUN_0206c8f4 - ldr r1, [r4, #0xc] - asr r1, r1, #0x10 - mul r0, r1, r0 - str r0, [r4, #8] -_020755A4: - ldrh r0, [r4, #6] - sub r0, r0, #1 - strh r0, [r4, #6] - ldr r0, [r4, #8] - pop {r4, pc} - arm_func_end FUN_02075574 - - arm_func_start FUN_020755b8 -FUN_020755b8: @ 0x020755B8 - push {r3, r4, r5, lr} - mov r4, r0 - ldrh r0, [r4, #6] - cmp r0, #0 - bne _020755EC - ldrh r0, [r4, #4] - strh r0, [r4, #6] - ldr r5, [r4, #0xc] - bl FUN_0206c8f4 - asr r1, r5, #0xf - mul r0, r1, r0 - sub r0, r0, r5, asr #1 - str r0, [r4, #8] -_020755EC: - ldrh r0, [r4, #6] - sub r0, r0, #1 - strh r0, [r4, #6] - ldr r0, [r4, #8] - pop {r3, r4, r5, pc} - arm_func_end FUN_020755b8 - - arm_func_start FUN_02075600 -FUN_02075600: @ 0x02075600 - ldr r0, _0207561C @ =0x022B9208 - mov r2, #0 - strb r2, [r0, #4] - mov r1, #1 - str r1, [r0] - strb r2, [r0, #8] - bx lr - .align 2, 0 -_0207561C: .4byte 0x022B9208 - arm_func_end FUN_02075600 - - arm_func_start FUN_02075620 -FUN_02075620: @ 0x02075620 - push {r4, lr} - ldr r0, _020756E4 @ =0x022B9208 - ldr r0, [r0, #0x1cc] - cmp r0, #0 - beq _02075648 -_02075634: - ldr r4, [r0, #0x500] - bl FUN_0206cc14 - mov r0, r4 - cmp r4, #0 - bne _02075634 -_02075648: - ldr r0, _020756E4 @ =0x022B9208 - mov r1, #0 - str r1, [r0, #0x1cc] - ldr r0, [r0, #0xec] - cmp r0, #0 - beq _02075664 - bl FUN_0206cc14 -_02075664: - ldr r0, _020756E4 @ =0x022B9208 - mov r1, #0 - str r1, [r0, #0xec] - ldr r0, [r0, #0x1b8] - cmp r0, #0 - beq _02075680 - bl FUN_0206cc14 -_02075680: - ldr r0, _020756E4 @ =0x022B9208 - mov r1, #0 - str r1, [r0, #0x1b8] - ldr r0, [r0, #0x24] - cmp r0, #0 - beq _0207569C - bl FUN_0206fd88 -_0207569C: - ldr r0, _020756E4 @ =0x022B9208 - mov r1, #0 - str r1, [r0, #0x24] - ldr r0, [r0, #0x18] - cmp r0, #0 - beq _020756B8 - bl FUN_0206fd88 -_020756B8: - ldr r0, _020756E4 @ =0x022B9208 - mov r1, #0 - str r1, [r0, #0x18] - ldr r0, [r0, #0x1c] - cmp r0, #0 - beq _020756D4 - bl FUN_0206fd88 -_020756D4: - ldr r0, _020756E4 @ =0x022B9208 - mov r1, #0 - str r1, [r0, #0x1c] - pop {r4, pc} - .align 2, 0 -_020756E4: .4byte 0x022B9208 - arm_func_end FUN_02075620 - - arm_func_start FUN_020756e8 -FUN_020756e8: @ 0x020756E8 - push {r3, lr} - ldr r0, _0207571C @ =0x022B9208 - ldrsb r0, [r0, #4] - cmp r0, #0 - mvneq r0, #0x59 - popeq {r3, pc} - bl FUN_0206f808 - bl FUN_0206fde0 - bl FUN_02075620 - ldr r1, _0207571C @ =0x022B9208 - mov r0, #0 - strb r0, [r1, #4] - pop {r3, pc} - .align 2, 0 -_0207571C: .4byte 0x022B9208 - arm_func_end FUN_020756e8 - - arm_func_start FUN_02075720 -FUN_02075720: @ 0x02075720 - push {r4, r5, r6, r7, lr} - sub sp, sp, #4 - mov r3, #0 - strb r3, [r0] - cmp r2, #0x10 - strb r3, [r0, #1] - movhi r2, #0x10 - add r0, r0, #4 -_02075740: - strb r3, [r0, r3] - add r3, r3, #1 - cmp r3, #0x100 - blt _02075740 - mov r6, #0 - mov r7, r6 - mov r4, r6 - mov r3, r6 - and ip, r2, #0xff -_02075764: - ldrb r5, [r0, r4] - ldrb lr, [r1, r7] - add r2, r7, #1 - and r7, r2, #0xff - add r2, r5, lr - add r2, r6, r2 - and r6, r2, #0xff - ldrb r2, [r0, r6] - add lr, r0, r4 - add r4, r4, #1 - strb r2, [lr] - cmp r7, ip - moveq r7, r3 - cmp r4, #0x100 - strb r5, [r0, r6] - blt _02075764 - add sp, sp, #4 - pop {r4, r5, r6, r7, lr} - bx lr - arm_func_end FUN_02075720 - - arm_func_start FUN_020757b0 -FUN_020757b0: @ 0x020757B0 - push {r4, r5, r6, r7, r8, sb, lr} - ldrb r7, [r0] - ldrb r6, [r0, #1] - add r0, r0, #4 - mov lr, #0x1000000 - add r7, lr, r7, lsl #24 - lsl r6, r6, #0x18 - ldrb sb, [r0, r7, lsr #24] - subs r2, r2, #1 - bmi _02075810 -_020757D8: - add r6, r6, sb, lsl #24 - subs r2, r2, #1 - ldrb r8, [r0, r6, lsr #24] - ldrb r5, [r1], #1 - strb r8, [r0, r7, lsr #24] - strb sb, [r0, r6, lsr #24] - add r4, sb, r8 - and r4, r4, #0xff - add r7, r7, lr - ldrb r4, [r0, r4] - ldrb sb, [r0, r7, lsr #24] - eor r5, r5, r4 - strb r5, [r3], #1 - bge _020757D8 -_02075810: - sub r7, r7, lr - lsr r7, r7, #0x18 - lsr r6, r6, #0x18 - strb r7, [r0, #-4] - strb r6, [r0, #-3] - pop {r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_020757b0 - - arm_func_start FUN_02075828 -FUN_02075828: @ 0x02075828 + arm_func_start ov00_022D0F30 +ov00_022D0F30: @ 0x022D0F30 push {r3, r4, r5, r6, lr} - sub sp, sp, #0x24 + sub sp, sp, #0x14 + mov r4, r2 mov r6, r0 - ldr r5, [r6] - ldr r4, [r2] - add r0, sp, #0x18 - sub r4, r5, r4 - str r4, [sp, #0x18] - ldr ip, [r6, #4] - ldr r4, [r2, #4] mov r5, r1 - sub r1, ip, r4 - str r1, [sp, #0x1c] - ldr r4, [r6, #8] - ldr r2, [r2, #8] - mov r1, r0 - sub r2, r4, r2 - mov r4, r3 - str r2, [sp, #0x20] - bl FUN_02075d34 - add r1, sp, #0x18 - add r2, sp, #0xc + add r0, r4, #0x348 + bl ov00_022D397C mov r0, r5 - bl FUN_02075cb0 - add r0, sp, #0xc - mov r1, r0 - bl FUN_02075d34 - add r0, sp, #0x18 - add r1, sp, #0xc - add r2, sp, #0 - bl FUN_02075cb0 - ldr r1, [sp, #0xc] - mov r0, r6 - str r1, [r4] - ldr r2, [sp] - add r1, sp, #0xc - str r2, [r4, #4] - ldr r2, [sp, #0x18] - str r2, [r4, #8] - ldr r2, [sp, #0x10] - str r2, [r4, #0xc] - ldr r2, [sp, #4] - str r2, [r4, #0x10] - ldr r2, [sp, #0x1c] - str r2, [r4, #0x14] - ldr r2, [sp, #0x14] - str r2, [r4, #0x18] - ldr r2, [sp, #8] - str r2, [r4, #0x1c] - ldr r2, [sp, #0x20] - str r2, [r4, #0x20] - bl FUN_02075c74 - rsb r0, r0, #0 - str r0, [r4, #0x24] - mov r0, r6 + bl FUN_02089678 + mov r2, r0 + mov r1, r5 + add r0, r4, #0x348 + bl ov00_022D39D0 + add r0, r4, #0x348 + mov r1, r4 + mov r2, #0x30 + bl ov00_022D39D0 + add r0, r4, #0x348 + add r1, r4, #0x34 + mov r2, #0x40 + bl ov00_022D39D0 + add r0, r4, #0x348 add r1, sp, #0 - bl FUN_02075c74 - rsb r0, r0, #0 - str r0, [r4, #0x28] - mov r0, r6 - add r1, sp, #0x18 - bl FUN_02075c74 - rsb r0, r0, #0 - str r0, [r4, #0x2c] - add sp, sp, #0x24 + bl ov00_022D3A88 + add r0, r4, #0x3fc + bl ov00_022D30BC + add r0, r4, #0x3fc + mov r1, r4 + mov r2, #0x30 + bl ov00_022D3104 + add r0, r4, #0x3fc + add r1, sp, #0 + mov r2, #0x14 + bl ov00_022D3104 + add r0, r4, #0x3fc + mov r1, r6 + bl ov00_022D31BC + add sp, sp, #0x14 pop {r3, r4, r5, r6, pc} - arm_func_end FUN_02075828 + arm_func_end ov00_022D0F30 - arm_func_start FUN_02075930 -FUN_02075930: @ 0x02075930 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #8 - str r2, [sp] + arm_func_start ov00_022D0FCC +ov00_022D0FCC: @ 0x022D0FCC + push {r4, lr} + sub sp, sp, #0x30 + mov r4, r0 + ldr r1, _022D1020 @ =0x02318918 + add r0, sp, #0 + mov r2, r4 + bl ov00_022D0F30 + ldr r1, _022D1024 @ =0x0231891C + add r0, sp, #0x10 + mov r2, r4 + bl ov00_022D0F30 + ldr r1, _022D1028 @ =0x02318920 + add r0, sp, #0x20 + mov r2, r4 + bl ov00_022D0F30 + add r0, sp, #0 + mov r1, r4 + mov r2, #0x30 + bl FUN_0207C4C8 + add sp, sp, #0x30 + pop {r4, pc} + .align 2, 0 +_022D1020: .4byte 0x02318918 +_022D1024: .4byte 0x0231891C +_022D1028: .4byte 0x02318920 + arm_func_end ov00_022D0FCC + + arm_func_start ov00_022D102C +ov00_022D102C: @ 0x022D102C + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x24 mov sl, r0 - ldr r0, [sp] - mov r2, r3 - sub r0, r2, r0 - ldr r8, [sp, #0x3c] - str r3, [sp, #4] - mov fp, r1 - ldr sb, [sp, #0x38] - bl FUN_02075ba4 - mov r0, #0 - str r0, [r8, #4] - str r0, [r8, #8] - str r0, [r8, #0xc] - str r0, [r8, #0x10] - str r0, [r8, #0x18] - str r0, [r8, #0x1c] - str r0, [r8, #0x20] - str r0, [r8, #0x24] - str r0, [r8, #0x2c] - str sb, [r8, #0x3c] - bl FUN_02075b48 - mov r6, r1 - mov r4, r0 - ldr r1, _02075B34 @ =0x04000290 - mov r3, #0 - mov r2, #0x1000 - str r3, [r1] - sub r0, sl, fp - str r2, [r1, #4] - str r0, [r1, #8] - mov r0, r3 - cmp sb, #0x1000 - str r0, [r1, #0xc] - beq _020759E0 - asr r5, sb, #0x1f - umull r0, r1, r4, sb - mla r1, r4, r5, r1 - mla r1, r6, sb, r1 - bl FUN_0208fc8c - mov r4, r0 - mov r6, r1 -_020759E0: - lsl r1, r6, #0xd - mov r0, #0x80000000 - orr r1, r1, r4, lsr #19 - adds r0, r0, r4, lsl #13 - adc r0, r1, #0 - str r0, [r8] - bl FUN_02075b48 - mov r5, r0 - mov r7, r1 - mov r3, #0 - ldr ip, _02075B34 @ =0x04000290 - ldr r1, [sp, #0x30] - ldr r0, [sp, #0x34] - str r3, [ip] - mov r2, #0x1000 - str r2, [ip, #4] - sub r0, r1, r0 - mov lr, r3 - str r0, [ip, #8] - cmp sb, #0x1000 - str lr, [ip, #0xc] - beq _02075A54 - asr ip, sb, #0x1f - umull r0, r1, r5, sb - mla r1, r5, ip, r1 - mla r1, r7, sb, r1 - bl FUN_0208fc8c - mov r5, r0 - mov r7, r1 -_02075A54: - lsl r1, r7, #0xd - mov r0, #0x80000000 - orr r1, r1, r5, lsr #19 - adds r0, r0, r5, lsl #13 - adc r0, r1, #0 - str r0, [r8, #0x14] - bl FUN_02075b48 - cmp sb, #0x1000 - beq _02075A9C - asr r2, sb, #0x1f - umull ip, r3, r0, sb - mla r3, r0, r2, r3 - mla r3, r1, sb, r3 - mov r0, ip - mov r1, r3 - mov r2, #0x1000 - mov r3, #0 - bl FUN_0208fc8c -_02075A9C: - ldr r3, [sp, #4] - ldr r2, [sp] - add r2, r3, r2 - rsb ip, r2, #0 - add r2, sl, fp - rsb r3, r2, #0 - ldr sl, [sp, #0x34] - ldr r2, [sp, #0x30] - asr sb, ip, #0x1f - add r2, sl, r2 - umull fp, sl, r4, ip - mla sl, r4, sb, sl - mov r4, #0x80000000 - mla sl, r6, ip, sl - adds r4, r4, r0, lsl #13 - lsl sb, r1, #0xd - asr r6, r3, #0x1f - umull ip, r4, r5, r3 - mla r4, r5, r6, r4 - orr sb, sb, r0, lsr #19 - mla r4, r7, r3, r4 - adc r3, sb, #0 - str r3, [r8, #0x28] - adds r3, fp, #0x80000000 - adc r7, sl, #0 - adds r3, ip, #0x80000000 - asr r3, r2, #0x1f - umull r6, r5, r0, r2 - mla r5, r0, r3, r5 - adc r3, r4, #0 - str r7, [r8, #0x30] - mla r5, r1, r2, r5 - adds r0, r6, #0x80000000 - str r3, [r8, #0x34] - adc r0, r5, #0 - str r0, [r8, #0x38] - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02075B34: .4byte 0x04000290 - arm_func_end FUN_02075930 - - arm_func_start FUN_02075b38 -FUN_02075b38: @ 0x02075B38 - push {r3, lr} - bl FUN_02075bd4 - bl FUN_02075b6c - pop {r3, pc} - arm_func_end FUN_02075b38 - - arm_func_start FUN_02075b48 -FUN_02075b48: @ 0x02075B48 - ldr r1, _02075B64 @ =0x04000280 -_02075B4C: - ldrh r0, [r1] - tst r0, #0x8000 - bne _02075B4C - ldr r1, _02075B68 @ =0x040002A0 - ldm r1, {r0, r1} - bx lr - .align 2, 0 -_02075B64: .4byte 0x04000280 -_02075B68: .4byte 0x040002A0 - arm_func_end FUN_02075b48 - - arm_func_start FUN_02075b6c -FUN_02075b6c: @ 0x02075B6C - ldr r1, _02075B9C @ =0x04000280 -_02075B70: - ldrh r0, [r1] - tst r0, #0x8000 - bne _02075B70 - ldr r0, _02075BA0 @ =0x040002A0 - ldr r1, [r0] - ldr r0, [r0, #4] - adds r2, r1, #0x80000 - adc r1, r0, #0 - lsr r0, r2, #0x14 - orr r0, r0, r1, lsl #12 - bx lr - .align 2, 0 -_02075B9C: .4byte 0x04000280 -_02075BA0: .4byte 0x040002A0 - arm_func_end FUN_02075b6c - - arm_func_start FUN_02075ba4 -FUN_02075ba4: @ 0x02075BA4 - ldr r2, _02075BD0 @ =0x04000280 - mov r1, #1 - strh r1, [r2] - mov r1, #0 - str r1, [r2, #0x10] - mov r1, #0x1000 - str r1, [r2, #0x14] - str r0, [r2, #0x18] - mov r0, #0 - str r0, [r2, #0x1c] - bx lr - .align 2, 0 -_02075BD0: .4byte 0x04000280 - arm_func_end FUN_02075ba4 - - arm_func_start FUN_02075bd4 -FUN_02075bd4: @ 0x02075BD4 - ldr r3, _02075BF8 @ =0x04000280 - mov r2, #1 - strh r2, [r3] - mov r2, #0 - str r2, [r3, #0x10] - str r0, [r3, #0x14] - str r1, [r3, #0x18] - str r2, [r3, #0x1c] - bx lr - .align 2, 0 -_02075BF8: .4byte 0x04000280 - arm_func_end FUN_02075bd4 -_02075BFC: - .byte 0x2C, 0x20, 0x9F, 0xE5 - .byte 0x00, 0x30, 0xA0, 0xE3, 0xB0, 0x30, 0xC2, 0xE1, 0x10, 0x00, 0x82, 0xE5, 0x18, 0x10, 0x82, 0xE5 - .byte 0x03, 0x00, 0xA0, 0xE1, 0x1C, 0x00, 0x82, 0xE5, 0xB0, 0x00, 0xD2, 0xE1, 0x02, 0x09, 0x10, 0xE3 - .byte 0xFC, 0xFF, 0xFF, 0x1A, 0x08, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x80, 0x02, 0x00, 0x04, 0xA0, 0x02, 0x00, 0x04, 0x2C, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3 - .byte 0xB0, 0x30, 0xC2, 0xE1, 0x10, 0x00, 0x82, 0xE5, 0x18, 0x10, 0x82, 0xE5, 0x03, 0x00, 0xA0, 0xE1 - .byte 0x1C, 0x00, 0x82, 0xE5, 0xB0, 0x00, 0xD2, 0xE1, 0x02, 0x09, 0x10, 0xE3, 0xFC, 0xFF, 0xFF, 0x1A - .byte 0x08, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x80, 0x02, 0x00, 0x04 - .byte 0xA8, 0x02, 0x00, 0x04 - - arm_func_start FUN_02075c74 -FUN_02075c74: @ 0x02075C74 - push {r4, lr} - ldr r3, [r0, #4] - ldr r2, [r1, #4] - ldr ip, [r0] - smull r4, lr, r3, r2 - ldr r2, [r1] - ldr r3, [r0, #8] - smlal r4, lr, ip, r2 - ldr r0, [r1, #8] - smlal r4, lr, r3, r0 - adds r0, r4, #0x800 - adc r1, lr, #0 - lsr r0, r0, #0xc - orr r0, r0, r1, lsl #20 - pop {r4, pc} - arm_func_end FUN_02075c74 - - arm_func_start FUN_02075cb0 -FUN_02075cb0: @ 0x02075CB0 - push {r4, r5, r6, r7, r8, lr} - ldm r0, {r5, lr} - ldr r6, [r1, #8] - ldr r0, [r0, #8] - ldm r1, {r4, ip} - smull r8, r7, lr, r6 - smull r3, r1, r0, ip - subs r3, r8, r3 - sbc r1, r7, r1 - adds r3, r3, #0x800 - smull r8, r7, r0, r4 - smull r6, r0, r5, r6 - adc r1, r1, #0 - subs r6, r8, r6 - lsr r3, r3, #0xc - orr r3, r3, r1, lsl #20 - sbc r7, r7, r0 - adds r0, r6, #0x800 - smull ip, r6, r5, ip - adc r5, r7, #0 - smull r4, r1, lr, r4 - lsr r7, r0, #0xc - subs r4, ip, r4 - sbc r0, r6, r1 - adds r1, r4, #0x800 - str r3, [r2] - orr r7, r7, r5, lsl #20 - adc r0, r0, #0 - lsr r1, r1, #0xc - str r7, [r2, #4] - orr r1, r1, r0, lsl #20 - str r1, [r2, #8] - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_02075cb0 - - arm_func_start FUN_02075d34 -FUN_02075d34: @ 0x02075D34 - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r2, [r0, #4] - ldr r3, [r0] - smull r6, r5, r2, r2 - smlal r6, r5, r3, r3 - ldr r2, [r0, #8] - ldr r4, _02075E40 @ =0x04000280 - smlal r6, r5, r2, r2 - mov r3, #2 - strh r3, [r4] - mov r3, #0 - str r3, [r4, #0x10] - mov r3, #0x1000000 - str r3, [r4, #0x14] - str r6, [r4, #0x18] - lsl r2, r5, #2 - str r5, [r4, #0x1c] - mov r3, #1 - strh r3, [r4, #0x30] - lsl r3, r6, #2 - str r3, [r4, #0x38] - orr r2, r2, r6, lsr #30 - str r2, [r4, #0x3c] -_02075D90: - ldrh r2, [r4, #0x30] - tst r2, #0x8000 - bne _02075D90 - ldr r2, _02075E44 @ =0x040002B4 - ldr ip, [r2] - sub r3, r2, #0x34 -_02075DA8: - ldrh r2, [r3] - tst r2, #0x8000 - bne _02075DA8 - ldr sb, _02075E48 @ =0x040002A0 - ldr r5, [r0] - ldr r8, [sb] - asr r7, ip, #0x1f - umull r3, r2, r8, ip - umull r6, lr, r3, r5 - asr r4, r5, #0x1f - mla r2, r8, r7, r2 - ldr r7, [sb, #4] - mla lr, r3, r4, lr - mla r2, r7, ip, r2 - mla lr, r2, r5, lr - adds r4, r6, #0 - adc r4, lr, #0x1000 - asr r4, r4, #0xd - str r4, [r1] - ldr ip, [r0, #4] - umull r5, lr, r3, ip - asr r4, ip, #0x1f - mla lr, r3, r4, lr - mla lr, r2, ip, lr - adds r4, r5, #0 - adc r4, lr, #0x1000 - asr r4, r4, #0xd - str r4, [r1, #4] - ldr ip, [r0, #8] - umull r4, lr, r3, ip - asr r0, ip, #0x1f - mla lr, r3, r0, lr - mla lr, r2, ip, lr - adds r0, r4, #0 - adc r0, lr, #0x1000 - asr r0, r0, #0xd - str r0, [r1, #8] - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_02075E40: .4byte 0x04000280 -_02075E44: .4byte 0x040002B4 -_02075E48: .4byte 0x040002A0 - arm_func_end FUN_02075d34 - - arm_func_start FUN_02075e4c -FUN_02075e4c: @ 0x02075E4C - push {r4, lr} - ldr r3, [r0, #4] - ldr r2, [r1, #4] - ldr r4, [r0] - sub r2, r3, r2 - smull ip, r3, r2, r2 - ldr lr, [r1] - ldr r2, [r0, #8] - sub r4, r4, lr - ldr r0, [r1, #8] - smlal ip, r3, r4, r4 - sub r0, r2, r0 - smlal ip, r3, r0, r0 - lsl r0, r3, #2 - ldr r2, _02075EC0 @ =0x040002B0 - mov r1, #1 - strh r1, [r2] - lsl r1, ip, #2 - str r1, [r2, #8] - orr r0, r0, ip, lsr #30 - str r0, [r2, #0xc] -_02075EA0: - ldrh r0, [r2] - tst r0, #0x8000 - bne _02075EA0 - ldr r0, _02075EC4 @ =0x040002B4 - ldr r0, [r0] - add r0, r0, #1 - asr r0, r0, #1 - pop {r4, pc} - .align 2, 0 -_02075EC0: .4byte 0x040002B0 -_02075EC4: .4byte 0x040002B4 - arm_func_end FUN_02075e4c - - arm_func_start FUN_02075ec8 -FUN_02075ec8: @ 0x02075EC8 - push {r4, lr} - cmp r0, #0 - ble _02075F5C - cmp r1, #0 - ble _02075F14 - cmp r1, r0 - ble _02075EF4 - mov r2, r0 - mov r4, #0 - mov r0, #1 - b _0207600C -_02075EF4: - bge _02075F0C - mov r2, r1 - mov r1, r0 - mov r4, #0x4000 - mov r0, #0 - b _0207600C -_02075F0C: - mov r0, #0x2000 - pop {r4, pc} -_02075F14: - bge _02075F54 - rsb r1, r1, #0 - cmp r1, r0 - bge _02075F38 - mov r2, r1 - mov r1, r0 - mov r4, #0x4000 - mov r0, #1 - b _0207600C -_02075F38: - ble _02075F4C - mov r2, r0 - mov r4, #0x8000 - mov r0, #0 - b _0207600C -_02075F4C: - mov r0, #0x6000 - pop {r4, pc} -_02075F54: - mov r0, #0x4000 - pop {r4, pc} -_02075F5C: - bge _02075FFC - cmp r1, #0 - rsb r0, r0, #0 - bge _02075FB0 - rsb r1, r1, #0 - cmp r1, r0 - ble _02075F8C - mov r4, #0x8000 - mov r2, r0 - rsb r4, r4, #0 - mov r0, #1 - b _0207600C -_02075F8C: - bge _02075FA8 - mov r4, #0x4000 - mov r2, r1 - mov r1, r0 - rsb r4, r4, #0 - mov r0, #0 - b _0207600C -_02075FA8: - mov r0, #0xa000 - pop {r4, pc} -_02075FB0: - cmp r1, #0 - ble _02075FF4 - cmp r1, r0 - bge _02075FD8 - mov r4, #0x4000 - mov r2, r1 - mov r1, r0 - rsb r4, r4, #0 - mov r0, #1 - b _0207600C -_02075FD8: - ble _02075FEC - mov r4, #0 - mov r2, r0 - mov r0, r4 - b _0207600C -_02075FEC: - mov r0, #0xe000 - pop {r4, pc} -_02075FF4: - mov r0, #0xc000 - pop {r4, pc} -_02075FFC: - cmp r1, #0 - movge r0, #0 - movlt r0, #0x8000 - pop {r4, pc} -_0207600C: - cmp r1, #0 - moveq r0, #0 - popeq {r4, pc} - cmp r0, #0 - mov r0, r2 - beq _02076048 - bl FUN_02075b38 - asr r1, r0, #5 - ldr r0, _0207606C @ =0x020ADFB0 - lsl r1, r1, #1 - ldrsh r0, [r0, r1] - add r0, r4, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - pop {r4, pc} -_02076048: - bl FUN_02075b38 - asr r1, r0, #5 - ldr r0, _0207606C @ =0x020ADFB0 - lsl r1, r1, #1 - ldrsh r0, [r0, r1] - sub r0, r4, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - pop {r4, pc} - .align 2, 0 -_0207606C: .4byte 0x020ADFB0 - arm_func_end FUN_02075ec8 -_02076070: - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02076074 -FUN_02076074: @ 0x02076074 - push {r4, r5, r6, lr} - ldr r2, _0207619C @ =0x04000304 - ldr r0, _020761A0 @ =0xFFFFFDF1 - ldrh r1, [r2] - orr r1, r1, #0x8000 - strh r1, [r2] - ldrh r1, [r2] - and r0, r1, r0 - orr r0, r0, #0xe - orr r0, r0, #0x200 - strh r0, [r2] - ldrh r0, [r2] - orr r0, r0, #1 - strh r0, [r2] - bl FUN_0207634c - ldr r5, _020761A4 @ =0x022B9588 - ldrh r0, [r5, #2] - cmp r0, #0 - bne _020760E8 - mvn r4, #2 -_020760C4: - bl FUN_0207902c - mov r6, r0 - cmp r6, r4 - bne _020760D8 - bl WaitForever2 -_020760D8: - strh r6, [r5, #2] - ldrh r0, [r5, #2] - cmp r0, #0 - beq _020760C4 -_020760E8: - ldr r0, _020761A8 @ =0x04000004 - mov r2, #0 - mov r3, #0x4000000 - strh r2, [r0] - ldr r0, _020761AC @ =0x020B2B94 - str r2, [r3] - ldr r0, [r0, #4] - sub r1, r3, #0x4000001 - cmp r0, r1 - beq _02076140 - add r1, r3, #8 - mov r3, #0x60 - bl FUN_0207bc4c - ldr r1, _020761B0 @ =0x0400006C - mov r2, #0 - ldr r0, _020761AC @ =0x020B2B94 - strh r2, [r1] - ldr r0, [r0, #4] - ldr r1, _020761B4 @ =0x04001000 - mov r3, #0x70 - bl FUN_0207bc4c - b _02076168 -_02076140: - mov r0, r2 - add r1, r3, #8 - mov r2, #0x60 - bl FUN_0207c314 - ldr r3, _020761B0 @ =0x0400006C - mov r0, #0 - ldr r1, _020761B4 @ =0x04001000 - mov r2, #0x70 - strh r0, [r3] - bl FUN_0207c314 -_02076168: - ldr r0, _020761B8 @ =0x04000020 - mov r2, #0x100 - strh r2, [r0] - strh r2, [r0, #6] - strh r2, [r0, #0x10] - strh r2, [r0, #0x16] - add r1, r0, #0x1000 - ldr r0, _020761BC @ =0x04001026 - strh r2, [r1] - strh r2, [r0] - strh r2, [r0, #0xa] - strh r2, [r0, #0x10] - pop {r4, r5, r6, pc} - .align 2, 0 -_0207619C: .4byte 0x04000304 -_020761A0: .4byte 0xFFFFFDF1 -_020761A4: .4byte 0x022B9588 -_020761A8: .4byte 0x04000004 -_020761AC: .4byte 0x020B2B94 -_020761B0: .4byte 0x0400006C -_020761B4: .4byte 0x04001000 -_020761B8: .4byte 0x04000020 -_020761BC: .4byte 0x04001026 - arm_func_end FUN_02076074 - - arm_func_start FUN_020761c0 -FUN_020761c0: @ 0x020761C0 - ldr r3, _020761E4 @ =0x04000004 - lsl r1, r0, #0x18 - ldrh r2, [r3] - and ip, r0, #0x100 - and r0, r2, #0x3f - orr r0, r0, r1, lsr #16 - orr r0, r0, ip, asr #1 - strh r0, [r3] - bx lr - .align 2, 0 -_020761E4: .4byte 0x04000004 - arm_func_end FUN_020761c0 - - arm_func_start FUN_020761e8 -FUN_020761e8: @ 0x020761E8 - ldr r2, _02076218 @ =0x04000004 - cmp r0, #0 - ldrh r0, [r2] - ldrheq r1, [r2] - and r0, r0, #8 - biceq r1, r1, #8 - strheq r1, [r2] - bxeq lr - ldrh r1, [r2] - orr r1, r1, #8 - strh r1, [r2] - bx lr - .align 2, 0 -_02076218: .4byte 0x04000004 - arm_func_end FUN_020761e8 - - arm_func_start FUN_0207621c -FUN_0207621c: @ 0x0207621C - push {r3, lr} - mov lr, #0x4000000 - ldr ip, [lr] - ldr r1, _02076250 @ =0x020B2B94 - and r2, ip, #0x30000 - mov r3, #0 - ldr r0, _02076254 @ =0x022B9588 - lsr r2, r2, #0x10 - strh r3, [r1] - strh r2, [r0] - bic r0, ip, #0x30000 - str r0, [lr] - pop {r3, pc} - .align 2, 0 -_02076250: .4byte 0x020B2B94 -_02076254: .4byte 0x022B9588 - arm_func_end FUN_0207621c - - arm_func_start FUN_02076258 -FUN_02076258: @ 0x02076258 - ldr r0, _02076298 @ =0x022B9588 - ldr r1, _0207629C @ =0x020B2B94 - ldrh r2, [r0] - mov r0, #1 - strh r0, [r1] - mov r1, #0x4000000 - cmp r2, #0 - ldreq r0, [r1] - orreq r0, r0, #0x10000 - streq r0, [r1] - bxeq lr - ldr r0, [r1] - bic r0, r0, #0x30000 - orr r0, r0, r2, lsl #16 - str r0, [r1] - bx lr - .align 2, 0 -_02076298: .4byte 0x022B9588 -_0207629C: .4byte 0x020B2B94 - arm_func_end FUN_02076258 - - arm_func_start FUN_020762a0 -FUN_020762a0: @ 0x020762A0 - push {r3, lr} - ldr r3, _020762FC @ =0x020B2B94 - mov lr, #0x4000000 - ldrh ip, [r3] - ldr lr, [lr] - ldr r3, _02076300 @ =0x022B9588 - cmp ip, #0 - strh r0, [r3] - ldr r3, _02076304 @ =0xFFF0FFF0 - moveq r0, #0 - and r3, lr, r3 - orr r0, r3, r0, lsl #16 - orr r0, r1, r0 - orr r1, r0, r2, lsl #3 - mov ip, #0x4000000 - ldr r0, _02076300 @ =0x022B9588 - str r1, [ip] - ldrh r0, [r0] - cmp r0, #0 - ldreq r0, _020762FC @ =0x020B2B94 - moveq r1, #0 - strheq r1, [r0] - pop {r3, pc} - .align 2, 0 -_020762FC: .4byte 0x020B2B94 -_02076300: .4byte 0x022B9588 -_02076304: .4byte 0xFFF0FFF0 - arm_func_end FUN_020762a0 - - arm_func_start FUN_02076308 -FUN_02076308: @ 0x02076308 - ldr r2, _02076320 @ =0x04001000 - ldr r1, [r2] - bic r1, r1, #7 - orr r0, r1, r0 - str r0, [r2] - bx lr - .align 2, 0 -_02076320: .4byte 0x04001000 - arm_func_end FUN_02076308 - - arm_func_start FUN_02076324 -FUN_02076324: @ 0x02076324 - cmp r1, #0 - moveq r1, #0 - strheq r1, [r0] - bxeq lr - orrgt r1, r1, #0x4000 - strhgt r1, [r0] - rsble r1, r1, #0 - orrle r1, r1, #0x8000 - strhle r1, [r0] - bx lr - arm_func_end FUN_02076324 - - arm_func_start FUN_0207634c -FUN_0207634c: @ 0x0207634C - ldr r0, _020763A4 @ =0x022B958C - 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] - strh r2, [r0, #0xe] - strh r2, [r0, #0x10] - strh r2, [r0, #0x12] - strh r2, [r0, #0x14] - strh r2, [r0, #0x16] - ldr r1, _020763A8 @ =0x04000240 - strh r2, [r0, #0x18] - str r2, [r1] - strb r2, [r1, #4] - strb r2, [r1, #5] - strb r2, [r1, #6] - strh r2, [r1, #8] - bx lr - .align 2, 0 -_020763A4: .4byte 0x022B958C -_020763A8: .4byte 0x04000240 - arm_func_end FUN_0207634c - - arm_func_start FUN_020763ac -FUN_020763ac: @ 0x020763AC - tst r0, #1 - ldrne r1, _02076440 @ =0x04000240 - movne r2, #0x80 - strbne r2, [r1] - tst r0, #2 - ldrne r1, _02076444 @ =0x04000241 - movne r2, #0x80 - strbne r2, [r1] - tst r0, #4 - ldrne r1, _02076448 @ =0x04000242 - movne r2, #0x80 - strbne r2, [r1] - tst r0, #8 - ldrne r1, _0207644C @ =0x04000243 - movne r2, #0x80 - strbne r2, [r1] - tst r0, #0x10 - ldrne r1, _02076450 @ =0x04000244 - movne r2, #0x80 - strbne r2, [r1] - tst r0, #0x20 - ldrne r1, _02076454 @ =0x04000245 - movne r2, #0x80 - strbne r2, [r1] - tst r0, #0x40 - ldrne r1, _02076458 @ =0x04000246 - movne r2, #0x80 - strbne r2, [r1] - tst r0, #0x80 - ldrne r1, _0207645C @ =0x04000248 - movne r2, #0x80 - strbne r2, [r1] - tst r0, #0x100 - ldrne r0, _02076460 @ =0x04000249 - movne r1, #0x80 - strbne r1, [r0] - bx lr - .align 2, 0 -_02076440: .4byte 0x04000240 -_02076444: .4byte 0x04000241 -_02076448: .4byte 0x04000242 -_0207644C: .4byte 0x04000243 -_02076450: .4byte 0x04000244 -_02076454: .4byte 0x04000245 -_02076458: .4byte 0x04000246 -_0207645C: .4byte 0x04000248 -_02076460: .4byte 0x04000249 - arm_func_end FUN_020763ac - - arm_func_start FUN_02076464 -FUN_02076464: @ 0x02076464 - push {r3, lr} - ldr r1, _020766D4 @ =0x022B958C - mvn ip, r0 - ldrh r3, [r1] - ldrh r2, [r1, #2] - cmp r0, #0x40 - orr r2, r3, r2 - and r2, ip, r2 - strh r2, [r1] - strh r0, [r1, #2] - bgt _0207653C - cmp r0, #0x40 - bge _020766B8 - cmp r0, #0x20 - bgt _02076530 - cmp r0, #0 - addge pc, pc, r0, lsl #2 - b _020766C4 -_020764AC: @ jump table - b _020766C4 @ case 0 - b _020765D8 @ case 1 - b _020765A4 @ case 2 - b _020765CC @ case 3 - b _0207657C @ case 4 - b _02076614 @ case 5 - b _02076598 @ case 6 - b _020765C0 @ case 7 - b _02076560 @ case 8 - b _0207662C @ case 9 - b _02076644 @ case 10 - b _020765E8 @ case 11 - b _02076570 @ case 12 - b _02076608 @ case 13 - b _0207658C @ case 14 - b _020765B4 @ case 15 - b _02076674 @ case 16 - b _020766C4 @ case 17 - b _020766C4 @ case 18 - b _020766C4 @ case 19 - b _020766C4 @ case 20 - b _020766C4 @ case 21 - b _020766C4 @ case 22 - b _020766C4 @ case 23 - b _020766C4 @ case 24 - b _020766C4 @ case 25 - b _020766C4 @ case 26 - b _020766C4 @ case 27 - b _020766C4 @ case 28 - b _020766C4 @ case 29 - b _020766C4 @ case 30 - b _020766C4 @ case 31 - b _020766A8 @ case 32 -_02076530: - cmp r0, #0x30 - beq _02076668 - b _020766C4 -_0207653C: - cmp r0, #0x60 - bgt _02076554 - bge _0207669C - cmp r0, #0x50 - beq _02076684 - b _020766C4 -_02076554: - cmp r0, #0x70 - beq _0207665C - b _020766C4 -_02076560: - ldr r0, _020766D8 @ =0x04000243 - mov r1, #0x81 - strb r1, [r0] - b _020766C4 -_02076570: - ldr r0, _020766D8 @ =0x04000243 - mov r1, #0x89 - strb r1, [r0] -_0207657C: - ldr r0, _020766DC @ =0x04000242 - mov r1, #0x81 - strb r1, [r0] - b _020766C4 -_0207658C: - ldr r0, _020766D8 @ =0x04000243 - mov r1, #0x91 - strb r1, [r0] -_02076598: - ldr r0, _020766DC @ =0x04000242 - mov r1, #0x89 - strb r1, [r0] -_020765A4: - ldr r0, _020766E0 @ =0x04000241 - mov r1, #0x81 - strb r1, [r0] - b _020766C4 -_020765B4: - ldr r0, _020766D8 @ =0x04000243 - mov r1, #0x99 - strb r1, [r0] -_020765C0: - ldr r0, _020766DC @ =0x04000242 - mov r1, #0x91 - strb r1, [r0] -_020765CC: - ldr r0, _020766E0 @ =0x04000241 - mov r1, #0x89 - strb r1, [r0] -_020765D8: - ldr r0, _020766E4 @ =0x04000240 - mov r1, #0x81 - strb r1, [r0] - b _020766C4 -_020765E8: - ldr r1, _020766E4 @ =0x04000240 - mov r0, #0x81 - strb r0, [r1] - mov r0, #0x89 - strb r0, [r1, #1] - mov r0, #0x91 - strb r0, [r1, #3] - b _020766C4 -_02076608: - ldr r0, _020766D8 @ =0x04000243 - mov r1, #0x91 - strb r1, [r0] -_02076614: - ldr r1, _020766E4 @ =0x04000240 - mov r0, #0x81 - strb r0, [r1] - mov r0, #0x89 - strb r0, [r1, #2] - b _020766C4 -_0207662C: - ldr r1, _020766E4 @ =0x04000240 - mov r0, #0x81 - strb r0, [r1] - mov r0, #0x89 - strb r0, [r1, #3] - b _020766C4 -_02076644: - ldr r1, _020766E0 @ =0x04000241 - mov r0, #0x81 - strb r0, [r1] - mov r0, #0x89 - strb r0, [r1, #2] - b _020766C4 -_0207665C: - ldr r0, _020766E8 @ =0x04000246 - mov r1, #0x99 - strb r1, [r0] -_02076668: - ldr r0, _020766EC @ =0x04000245 - mov r1, #0x91 - strb r1, [r0] -_02076674: - ldr r0, _020766F0 @ =0x04000244 - mov r1, #0x81 - strb r1, [r0] - b _020766C4 -_02076684: - ldr r1, _020766E8 @ =0x04000246 - mov r0, #0x91 - strb r0, [r1] - mov r0, #0x81 - strb r0, [r1, #-2] - b _020766C4 -_0207669C: - ldr r0, _020766E8 @ =0x04000246 - mov r1, #0x89 - strb r1, [r0] -_020766A8: - ldr r0, _020766EC @ =0x04000245 - mov r1, #0x81 - strb r1, [r0] - b _020766C4 -_020766B8: - ldr r0, _020766E8 @ =0x04000246 - mov r1, #0x81 - strb r1, [r0] -_020766C4: - ldr r0, _020766D4 @ =0x022B958C - ldrh r0, [r0] - bl FUN_020763ac - pop {r3, pc} - .align 2, 0 -_020766D4: .4byte 0x022B958C -_020766D8: .4byte 0x04000243 -_020766DC: .4byte 0x04000242 -_020766E0: .4byte 0x04000241 -_020766E4: .4byte 0x04000240 -_020766E8: .4byte 0x04000246 -_020766EC: .4byte 0x04000245 -_020766F0: .4byte 0x04000244 - arm_func_end FUN_02076464 - - arm_func_start FUN_020766f4 -FUN_020766f4: @ 0x020766F4 - push {r3, lr} - ldr r1, _0207682C @ =0x022B958C - mvn ip, r0 - ldrh r3, [r1] - ldrh r2, [r1, #4] - cmp r0, #0x30 - orr r2, r3, r2 - and r2, ip, r2 - strh r2, [r1] - strh r0, [r1, #4] - bgt _0207675C - cmp r0, #0x30 - bge _020767D0 - cmp r0, #0x10 - bgt _02076750 - bge _020767DC - cmp r0, #3 - addls pc, pc, r0, lsl #2 - b _0207681C -_02076740: @ jump table - b _0207681C @ case 0 - b _020767A4 @ case 1 - b _020767B4 @ case 2 - b _02076798 @ case 3 -_02076750: - cmp r0, #0x20 - beq _02076810 - b _0207681C -_0207675C: - cmp r0, #0x50 - bgt _0207677C - bge _020767EC - cmp r0, #0x40 - ldreq r0, _02076830 @ =0x04000246 - moveq r1, #0x82 - strbeq r1, [r0] - b _0207681C -_0207677C: - cmp r0, #0x60 - bgt _0207678C - beq _02076804 - b _0207681C -_0207678C: - cmp r0, #0x70 - beq _020767C4 - b _0207681C -_02076798: - ldr r0, _02076834 @ =0x04000241 - mov r1, #0x8a - strb r1, [r0] -_020767A4: - ldr r0, _02076838 @ =0x04000240 - mov r1, #0x82 - strb r1, [r0] - b _0207681C -_020767B4: - ldr r0, _02076834 @ =0x04000241 - mov r1, #0x82 - strb r1, [r0] - b _0207681C -_020767C4: - ldr r0, _02076830 @ =0x04000246 - mov r1, #0x9a - strb r1, [r0] -_020767D0: - ldr r0, _0207683C @ =0x04000245 - mov r1, #0x92 - strb r1, [r0] -_020767DC: - ldr r0, _02076840 @ =0x04000244 - mov r1, #0x82 - strb r1, [r0] - b _0207681C -_020767EC: - ldr r1, _02076830 @ =0x04000246 - mov r0, #0x92 - strb r0, [r1] - mov r0, #0x82 - strb r0, [r1, #-2] - b _0207681C -_02076804: - ldr r0, _02076830 @ =0x04000246 - mov r1, #0x8a - strb r1, [r0] -_02076810: - ldr r0, _0207683C @ =0x04000245 - mov r1, #0x82 - strb r1, [r0] -_0207681C: - ldr r0, _0207682C @ =0x022B958C - ldrh r0, [r0] - bl FUN_020763ac - pop {r3, pc} - .align 2, 0 -_0207682C: .4byte 0x022B958C -_02076830: .4byte 0x04000246 -_02076834: .4byte 0x04000241 -_02076838: .4byte 0x04000240 -_0207683C: .4byte 0x04000245 -_02076840: .4byte 0x04000244 - arm_func_end FUN_020766f4 - - arm_func_start FUN_02076844 -FUN_02076844: @ 0x02076844 - push {r3, lr} - ldr r1, _02076938 @ =0x022B958C - mvn ip, r0 - ldrh r3, [r1] - ldrh r2, [r1, #0xe] - cmp r0, #0x20 - orr r2, r3, r2 - and r2, ip, r2 - strh r2, [r1] - strh r0, [r1, #0xe] - bgt _02076894 - cmp r0, #0x20 - bge _020768F8 - cmp r0, #0 - bgt _02076888 - beq _02076918 - b _02076928 -_02076888: - cmp r0, #0x10 - beq _020768B0 - b _02076928 -_02076894: - cmp r0, #0x40 - bgt _020768A4 - beq _020768CC - b _02076928 -_020768A4: - cmp r0, #0x60 - beq _020768EC - b _02076928 -_020768B0: - mov r2, #0x4000000 - ldr r1, [r2] - mov r0, #0x84 - orr r1, r1, #0x40000000 - str r1, [r2] - strb r0, [r2, #0x244] - b _02076928 -_020768CC: - mov r2, #0x4000000 - ldr r1, [r2] - ldr r0, _0207693C @ =0x04000246 - orr r1, r1, #0x40000000 - str r1, [r2] - mov r1, #0x8c - strb r1, [r0] - b _02076928 -_020768EC: - ldr r0, _0207693C @ =0x04000246 - mov r1, #0x8c - strb r1, [r0] -_020768F8: - ldr r0, _02076940 @ =0x04000245 - mov r1, #0x84 - strb r1, [r0] - mov r1, #0x4000000 - ldr r0, [r1] - orr r0, r0, #0x40000000 - str r0, [r1] - b _02076928 -_02076918: - mov r1, #0x4000000 - ldr r0, [r1] - bic r0, r0, #0x40000000 - str r0, [r1] -_02076928: - ldr r0, _02076938 @ =0x022B958C - ldrh r0, [r0] - bl FUN_020763ac - pop {r3, pc} - .align 2, 0 -_02076938: .4byte 0x022B958C -_0207693C: .4byte 0x04000246 -_02076940: .4byte 0x04000245 - arm_func_end FUN_02076844 - - arm_func_start FUN_02076944 -FUN_02076944: @ 0x02076944 - push {r3, lr} - ldr r1, _020769E4 @ =0x022B958C - mvn ip, r0 - ldrh r3, [r1] - ldrh r2, [r1, #0x10] - cmp r0, #0 - orr r2, r3, r2 - and r2, ip, r2 - strh r2, [r1] - strh r0, [r1, #0x10] - beq _020769C4 - cmp r0, #0x20 - beq _02076984 - cmp r0, #0x40 - beq _020769A4 - b _020769D4 -_02076984: - mov r2, #0x4000000 - ldr r1, [r2] - ldr r0, _020769E8 @ =0x04000245 - orr r1, r1, #0x80000000 - str r1, [r2] - mov r1, #0x85 - strb r1, [r0] - b _020769D4 -_020769A4: - mov r2, #0x4000000 - ldr r1, [r2] - ldr r0, _020769EC @ =0x04000246 - orr r1, r1, #0x80000000 - str r1, [r2] - mov r1, #0x85 - strb r1, [r0] - b _020769D4 -_020769C4: - mov r1, #0x4000000 - ldr r0, [r1] - bic r0, r0, #0x80000000 - str r0, [r1] -_020769D4: - ldr r0, _020769E4 @ =0x022B958C - ldrh r0, [r0] - bl FUN_020763ac - pop {r3, pc} - .align 2, 0 -_020769E4: .4byte 0x022B958C -_020769E8: .4byte 0x04000245 -_020769EC: .4byte 0x04000246 - arm_func_end FUN_02076944 - - arm_func_start FUN_020769f0 -FUN_020769f0: @ 0x020769F0 - push {r3, lr} - ldr r1, _02076BAC @ =0x022B958C - mvn ip, r0 - ldrh r3, [r1] - ldrh r2, [r1, #8] - cmp r0, #0 - orr r2, r3, r2 - and r2, ip, r2 - strh r2, [r1] - strh r0, [r1, #8] - ldr r2, _02076BB0 @ =0x04000060 - bne _02076A34 - ldrh r1, [r2] - ldr r0, _02076BB4 @ =0x0000CFFE - and r0, r1, r0 - strh r0, [r2] - b _02076B9C -_02076A34: - ldrh r1, [r2] - cmp r0, #0xf - bic r1, r1, #0x3000 - orr r1, r1, #1 - strh r1, [r2] - addls pc, pc, r0, lsl #2 - b _02076B9C -_02076A50: @ jump table - b _02076B9C @ case 0 - b _02076B90 @ case 1 - b _02076B5C @ case 2 - b _02076B84 @ case 3 - b _02076B34 @ case 4 - b _02076A90 @ case 5 - b _02076B50 @ case 6 - b _02076B78 @ case 7 - b _02076B18 @ case 8 - b _02076AA8 @ case 9 - b _02076AC0 @ case 10 - b _02076AD8 @ case 11 - b _02076B28 @ case 12 - b _02076AF8 @ case 13 - b _02076B44 @ case 14 - b _02076B6C @ case 15 -_02076A90: - mov r1, #0x83 - ldr r0, _02076BB8 @ =0x04000242 - strb r1, [r2, #0x1e0] - mov r1, #0x8b - strb r1, [r0] - b _02076B9C -_02076AA8: - mov r1, #0x83 - ldr r0, _02076BBC @ =0x04000243 - strb r1, [r2, #0x1e0] - mov r1, #0x8b - strb r1, [r0] - b _02076B9C -_02076AC0: - ldr r1, _02076BC0 @ =0x04000241 - mov r0, #0x83 - strb r0, [r1] - mov r0, #0x8b - strb r0, [r1, #2] - b _02076B9C -_02076AD8: - mov r0, #0x83 - ldr r1, _02076BC0 @ =0x04000241 - strb r0, [r2, #0x1e0] - mov r0, #0x8b - strb r0, [r1] - mov r0, #0x93 - strb r0, [r1, #2] - b _02076B9C -_02076AF8: - mov r0, #0x83 - ldr r1, _02076BB8 @ =0x04000242 - strb r0, [r2, #0x1e0] - mov r0, #0x8b - strb r0, [r1] - mov r0, #0x93 - strb r0, [r1, #1] - b _02076B9C -_02076B18: - ldr r0, _02076BBC @ =0x04000243 - mov r1, #0x83 - strb r1, [r0] - b _02076B9C -_02076B28: - ldr r0, _02076BBC @ =0x04000243 - mov r1, #0x8b - strb r1, [r0] -_02076B34: - ldr r0, _02076BB8 @ =0x04000242 - mov r1, #0x83 - strb r1, [r0] - b _02076B9C -_02076B44: - ldr r0, _02076BBC @ =0x04000243 - mov r1, #0x93 - strb r1, [r0] -_02076B50: - ldr r0, _02076BB8 @ =0x04000242 - mov r1, #0x8b - strb r1, [r0] -_02076B5C: - ldr r0, _02076BC0 @ =0x04000241 - mov r1, #0x83 - strb r1, [r0] - b _02076B9C -_02076B6C: - ldr r0, _02076BBC @ =0x04000243 - mov r1, #0x9b - strb r1, [r0] -_02076B78: - ldr r0, _02076BB8 @ =0x04000242 - mov r1, #0x93 - strb r1, [r0] -_02076B84: - ldr r0, _02076BC0 @ =0x04000241 - mov r1, #0x8b - strb r1, [r0] -_02076B90: - ldr r0, _02076BC4 @ =0x04000240 - mov r1, #0x83 - strb r1, [r0] -_02076B9C: - ldr r0, _02076BAC @ =0x022B958C - ldrh r0, [r0] - bl FUN_020763ac - pop {r3, pc} - .align 2, 0 -_02076BAC: .4byte 0x022B958C -_02076BB0: .4byte 0x04000060 -_02076BB4: .4byte 0x0000CFFE -_02076BB8: .4byte 0x04000242 -_02076BBC: .4byte 0x04000243 -_02076BC0: .4byte 0x04000241 -_02076BC4: .4byte 0x04000240 - arm_func_end FUN_020769f0 - - arm_func_start FUN_02076bc8 -FUN_02076bc8: @ 0x02076BC8 - push {r3, lr} - ldr r1, _02076CA0 @ =0x022B958C - mvn ip, r0 - ldrh r3, [r1] - ldrh r2, [r1, #0xa] - cmp r0, #0x30 - orr r2, r3, r2 - and r2, ip, r2 - strh r2, [r1] - strh r0, [r1, #0xa] - bgt _02076C1C - cmp r0, #0x30 - bge _02076C78 - cmp r0, #0x10 - bgt _02076C10 - bge _02076C84 - cmp r0, #0 - b _02076C90 -_02076C10: - cmp r0, #0x20 - beq _02076C4C - b _02076C90 -_02076C1C: - cmp r0, #0x60 - bgt _02076C34 - bge _02076C40 - cmp r0, #0x40 - beq _02076C5C - b _02076C90 -_02076C34: - cmp r0, #0x70 - beq _02076C6C - b _02076C90 -_02076C40: - ldr r0, _02076CA4 @ =0x04000246 - mov r1, #0x8b - strb r1, [r0] -_02076C4C: - ldr r0, _02076CA8 @ =0x04000245 - mov r1, #0x83 - strb r1, [r0] - b _02076C90 -_02076C5C: - ldr r0, _02076CA4 @ =0x04000246 - mov r1, #0x83 - strb r1, [r0] - b _02076C90 -_02076C6C: - ldr r0, _02076CA4 @ =0x04000246 - mov r1, #0x9b - strb r1, [r0] -_02076C78: - ldr r0, _02076CA8 @ =0x04000245 - mov r1, #0x93 - strb r1, [r0] -_02076C84: - ldr r0, _02076CAC @ =0x04000244 - mov r1, #0x83 - strb r1, [r0] -_02076C90: - ldr r0, _02076CA0 @ =0x022B958C - ldrh r0, [r0] - bl FUN_020763ac - pop {r3, pc} - .align 2, 0 -_02076CA0: .4byte 0x022B958C -_02076CA4: .4byte 0x04000246 -_02076CA8: .4byte 0x04000245 -_02076CAC: .4byte 0x04000244 - arm_func_end FUN_02076bc8 - - arm_func_start FUN_02076cb0 -FUN_02076cb0: @ 0x02076CB0 - push {r3, lr} - ldr r1, _02076DCC @ =0x022B958C - mvn ip, r0 - ldrh r3, [r1] - ldrh r2, [r1, #0xc] - cmp r0, #0xc - orr r2, r3, r2 - and r2, ip, r2 - strh r2, [r1] - strh r0, [r1, #0xc] - addls pc, pc, r0, lsl #2 - b _02076DBC -_02076CE0: @ jump table - b _02076D6C @ case 0 - b _02076D80 @ case 1 - b _02076D20 @ case 2 - b _02076D14 @ case 3 - b _02076DA0 @ case 4 - b _02076DBC @ case 5 - b _02076DBC @ case 6 - b _02076DBC @ case 7 - b _02076D4C @ case 8 - b _02076DBC @ case 9 - b _02076DBC @ case 10 - b _02076DBC @ case 11 - b _02076D40 @ case 12 -_02076D14: - ldr r0, _02076DD0 @ =0x04000240 - mov r1, #0x93 - strb r1, [r0] -_02076D20: - ldr r0, _02076DD4 @ =0x04000241 - mov r2, #0x9b - ldr r1, _02076DD8 @ =0x04000060 - strb r2, [r0] - ldrh r0, [r1] - orr r0, r0, #0x4000 - strh r0, [r1] - b _02076DBC -_02076D40: - ldr r0, _02076DDC @ =0x04000242 - mov r1, #0x93 - strb r1, [r0] -_02076D4C: - ldr r0, _02076DE0 @ =0x04000243 - mov r2, #0x9b - ldr r1, _02076DD8 @ =0x04000060 - strb r2, [r0] - ldrh r0, [r1] - orr r0, r0, #0x4000 - strh r0, [r1] - b _02076DBC -_02076D6C: - ldr r1, _02076DD8 @ =0x04000060 - ldrh r0, [r1] - bic r0, r0, #0x4000 - strh r0, [r1] - b _02076DBC -_02076D80: - ldr r0, _02076DD0 @ =0x04000240 - mov r1, #0x9b - strb r1, [r0] - sub r1, r0, #0x1e0 - ldrh r0, [r1] - orr r0, r0, #0x4000 - strh r0, [r1] - b _02076DBC -_02076DA0: - ldr r0, _02076DDC @ =0x04000242 - mov r2, #0x9b - ldr r1, _02076DD8 @ =0x04000060 - strb r2, [r0] - ldrh r0, [r1] - orr r0, r0, #0x4000 - strh r0, [r1] -_02076DBC: - ldr r0, _02076DCC @ =0x022B958C - ldrh r0, [r0] - bl FUN_020763ac - pop {r3, pc} - .align 2, 0 -_02076DCC: .4byte 0x022B958C -_02076DD0: .4byte 0x04000240 -_02076DD4: .4byte 0x04000241 -_02076DD8: .4byte 0x04000060 -_02076DDC: .4byte 0x04000242 -_02076DE0: .4byte 0x04000243 - arm_func_end FUN_02076cb0 -_02076DE4: - .byte 0x08, 0x40, 0x2D, 0xE9, 0x94, 0x10, 0x9F, 0xE5, 0x00, 0xC0, 0xE0, 0xE1 - .byte 0xB0, 0x30, 0xD1, 0xE1, 0xB6, 0x20, 0xD1, 0xE1, 0x08, 0x00, 0x50, 0xE3, 0x02, 0x20, 0x83, 0xE1 - .byte 0x02, 0x20, 0x0C, 0xE0, 0xB0, 0x20, 0xC1, 0xE1, 0xB6, 0x00, 0xC1, 0xE1, 0x09, 0x00, 0x00, 0xCA - .byte 0x08, 0x00, 0x50, 0xE3, 0x13, 0x00, 0x00, 0xAA, 0x04, 0x00, 0x50, 0xE3, 0x14, 0x00, 0x00, 0xCA - .byte 0x00, 0x00, 0x50, 0xE3, 0x12, 0x00, 0x00, 0xBA, 0x11, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x50, 0xE3 - .byte 0x08, 0x00, 0x00, 0x0A, 0x0E, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x00, 0x1A - .byte 0x40, 0x10, 0x9F, 0xE5, 0x8A, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0xC1, 0xE5, 0x82, 0x00, 0xA0, 0xE3 - .byte 0x01, 0x00, 0x41, 0xE5, 0x06, 0x00, 0x00, 0xEA, 0x2C, 0x00, 0x9F, 0xE5, 0x82, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x10, 0xC0, 0xE5, 0x02, 0x00, 0x00, 0xEA, 0x18, 0x00, 0x9F, 0xE5, 0x82, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x10, 0xC0, 0xE5, 0x08, 0x00, 0x9F, 0xE5, 0xB0, 0x00, 0xD0, 0xE1, 0x4A, 0xFD, 0xFF, 0xEB - .byte 0x08, 0x80, 0xBD, 0xE8, 0x8C, 0x95, 0x2B, 0x02, 0x43, 0x02, 0x00, 0x04, 0x42, 0x02, 0x00, 0x04 - - arm_func_start FUN_02076e90 -FUN_02076e90: @ 0x02076E90 - ldr r1, _02076EA8 @ =0x022B958C - ldr ip, _02076EAC @ =FUN_020763ac - ldrh r2, [r1] - orr r2, r2, r0 - strh r2, [r1] - bx ip - .align 2, 0 -_02076EA8: .4byte 0x022B958C -_02076EAC: .4byte FUN_020763ac - arm_func_end FUN_02076e90 - - arm_func_start FUN_02076eb0 -FUN_02076eb0: @ 0x02076EB0 - push {r3, lr} - ldr r1, _02076F48 @ =0x022B958C - mvn ip, r0 - ldrh r3, [r1] - ldrh r2, [r1, #0x12] - cmp r0, #0x80 - orr r2, r3, r2 - and r2, ip, r2 - strh r2, [r1] - strh r0, [r1, #0x12] - bgt _02076F04 - cmp r0, #0x80 - bge _02076F2C + ldrh r0, [sl, #0x32] cmp r0, #4 - bgt _02076F38 - cmp r0, #0 - blt _02076F38 - beq _02076F38 - cmp r0, #4 - beq _02076F10 - b _02076F38 -_02076F04: - cmp r0, #0x180 - beq _02076F20 - b _02076F38 -_02076F10: - ldr r0, _02076F4C @ =0x04000242 - mov r1, #0x84 - strb r1, [r0] - b _02076F38 -_02076F20: - ldr r0, _02076F50 @ =0x04000249 - mov r1, #0x81 - strb r1, [r0] -_02076F2C: - ldr r0, _02076F54 @ =0x04000248 - mov r1, #0x81 - strb r1, [r0] -_02076F38: - ldr r0, _02076F48 @ =0x022B958C - ldrh r0, [r0] - bl FUN_020763ac - pop {r3, pc} - .align 2, 0 -_02076F48: .4byte 0x022B958C -_02076F4C: .4byte 0x04000242 -_02076F50: .4byte 0x04000249 -_02076F54: .4byte 0x04000248 - arm_func_end FUN_02076eb0 - - arm_func_start FUN_02076f58 -FUN_02076f58: @ 0x02076F58 - push {r3, lr} - ldr r1, _02076FBC @ =0x022B958C - mvn ip, r0 - ldrh r3, [r1] - ldrh r2, [r1, #0x14] - cmp r0, #0 - orr r2, r3, r2 - and r2, ip, r2 - strh r2, [r1] - strh r0, [r1, #0x14] - beq _02076FAC - cmp r0, #8 - beq _02076FA0 - cmp r0, #0x100 - ldreq r0, _02076FC0 @ =0x04000249 - moveq r1, #0x82 - strbeq r1, [r0] - b _02076FAC -_02076FA0: - ldr r0, _02076FC4 @ =0x04000243 - mov r1, #0x84 - strb r1, [r0] -_02076FAC: - ldr r0, _02076FBC @ =0x022B958C - ldrh r0, [r0] - bl FUN_020763ac - pop {r3, pc} - .align 2, 0 -_02076FBC: .4byte 0x022B958C -_02076FC0: .4byte 0x04000249 -_02076FC4: .4byte 0x04000243 - arm_func_end FUN_02076f58 - - arm_func_start FUN_02076fc8 -FUN_02076fc8: @ 0x02076FC8 - push {r3, lr} - ldr r1, _0207703C @ =0x022B958C - mvn ip, r0 - ldrh r3, [r1] - ldrh r2, [r1, #0x16] - cmp r0, #0 - orr r2, r3, r2 - and r2, ip, r2 - strh r2, [r1] - strh r0, [r1, #0x16] - beq _0207701C - cmp r0, #0x80 - bne _0207702C - ldr r3, _02077040 @ =0x04001000 - ldr r0, _02077044 @ =0x04000248 - ldr r2, [r3] - mov r1, #0x82 - orr r2, r2, #0x40000000 - str r2, [r3] - strb r1, [r0] - b _0207702C -_0207701C: - ldr r1, _02077040 @ =0x04001000 - ldr r0, [r1] - bic r0, r0, #0x40000000 - str r0, [r1] -_0207702C: - ldr r0, _0207703C @ =0x022B958C - ldrh r0, [r0] - bl FUN_020763ac - pop {r3, pc} - .align 2, 0 -_0207703C: .4byte 0x022B958C -_02077040: .4byte 0x04001000 -_02077044: .4byte 0x04000248 - arm_func_end FUN_02076fc8 - - arm_func_start FUN_02077048 -FUN_02077048: @ 0x02077048 - push {r3, lr} - ldr r1, _020770BC @ =0x022B958C - mvn ip, r0 - ldrh r3, [r1] - ldrh r2, [r1, #0x18] - cmp r0, #0 - orr r2, r3, r2 - and r2, ip, r2 - strh r2, [r1] - strh r0, [r1, #0x18] - beq _0207709C - cmp r0, #0x100 - bne _020770AC - ldr r3, _020770C0 @ =0x04001000 - ldr r0, _020770C4 @ =0x04000249 - ldr r2, [r3] - mov r1, #0x83 - orr r2, r2, #0x80000000 - str r2, [r3] - strb r1, [r0] - b _020770AC -_0207709C: - ldr r1, _020770C0 @ =0x04001000 - ldr r0, [r1] - bic r0, r0, #0x80000000 - str r0, [r1] -_020770AC: - ldr r0, _020770BC @ =0x022B958C - ldrh r0, [r0] - bl FUN_020763ac - pop {r3, pc} - .align 2, 0 -_020770BC: .4byte 0x022B958C -_020770C0: .4byte 0x04001000 -_020770C4: .4byte 0x04000249 - arm_func_end FUN_02077048 - - arm_func_start FUN_020770C8 -FUN_020770C8: @ 0x020770C8 - push {r4, lr} - ldrh r4, [r0] + beq _022D1050 + cmp r0, #5 + beq _022D1064 + b _022D1078 +_022D1050: + mov r0, #0x10 + str r0, [sp, #4] + str r0, [sp] mov r2, #0 - ldr r1, _020770F8 @ =0x022B958C - strh r2, [r0] - ldrh r2, [r1] - mov r0, r4 - orr r2, r2, r4 - strh r2, [r1] - bl FUN_020763ac - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_020770F8: .4byte 0x022B958C - arm_func_end FUN_020770C8 - - arm_func_start FUN_020770fc -FUN_020770fc: @ 0x020770FC - mov r2, #0x4000000 - ldr r1, [r2] - ldr ip, _02077118 @ =FUN_020770C8 - bic r1, r1, #0x40000000 - ldr r0, _0207711C @ =0x022B959A - str r1, [r2] - bx ip - .align 2, 0 -_02077118: .4byte FUN_020770C8 -_0207711C: .4byte 0x022B959A - arm_func_end FUN_020770fc - - arm_func_start FUN_02077120 -FUN_02077120: @ 0x02077120 - mov r2, #0x4000000 - ldr r1, [r2] - ldr ip, _0207713C @ =FUN_020770C8 - bic r1, r1, #0x80000000 - ldr r0, _02077140 @ =0x022B959C - str r1, [r2] - bx ip - .align 2, 0 -_0207713C: .4byte FUN_020770C8 -_02077140: .4byte 0x022B959C - arm_func_end FUN_02077120 - - arm_func_start FUN_02077144 -FUN_02077144: @ 0x02077144 - ldr ip, _02077150 @ =FUN_020770C8 - ldr r0, _02077154 @ =0x022B9594 - bx ip - .align 2, 0 -_02077150: .4byte FUN_020770C8 -_02077154: .4byte 0x022B9594 - arm_func_end FUN_02077144 - - arm_func_start FUN_02077158 -FUN_02077158: @ 0x02077158 - ldr ip, _02077164 @ =FUN_020770C8 - ldr r0, _02077168 @ =0x022B9596 - bx ip - .align 2, 0 -_02077164: .4byte FUN_020770C8 -_02077168: .4byte 0x022B9596 - arm_func_end FUN_02077158 - - arm_func_start FUN_0207716c -FUN_0207716c: @ 0x0207716C - ldr r2, _02077188 @ =0x04001000 - ldr ip, _0207718C @ =FUN_020770C8 - ldr r1, [r2] - ldr r0, _02077190 @ =0x022B95A2 - bic r1, r1, #0x40000000 - str r1, [r2] - bx ip - .align 2, 0 -_02077188: .4byte 0x04001000 -_0207718C: .4byte FUN_020770C8 -_02077190: .4byte 0x022B95A2 - arm_func_end FUN_0207716c - - arm_func_start FUN_02077194 -FUN_02077194: @ 0x02077194 - ldr r2, _020771B0 @ =0x04001000 - ldr ip, _020771B4 @ =FUN_020770C8 - ldr r1, [r2] - ldr r0, _020771B8 @ =0x022B95A4 - bic r1, r1, #0x80000000 - str r1, [r2] - bx ip - .align 2, 0 -_020771B0: .4byte 0x04001000 -_020771B4: .4byte FUN_020770C8 -_020771B8: .4byte 0x022B95A4 - arm_func_end FUN_02077194 - - arm_func_start FUN_020771BC -FUN_020771BC: @ 0x020771BC - push {r4, lr} - ldrh r4, [r0] - mov r1, #0 - strh r1, [r0] - tst r4, #1 - ldrne r0, _02077274 @ =0x04000240 - strbne r1, [r0] - tst r4, #2 - ldrne r0, _02077278 @ =0x04000241 - movne r1, #0 - strbne r1, [r0] - tst r4, #4 - ldrne r0, _0207727C @ =0x04000242 - movne r1, #0 - strbne r1, [r0] - tst r4, #8 - ldrne r0, _02077280 @ =0x04000243 - movne r1, #0 - strbne r1, [r0] - tst r4, #0x10 - ldrne r0, _02077284 @ =0x04000244 - movne r1, #0 - strbne r1, [r0] - tst r4, #0x20 - ldrne r0, _02077288 @ =0x04000245 - movne r1, #0 - strbne r1, [r0] - tst r4, #0x40 - ldrne r0, _0207728C @ =0x04000246 - movne r1, #0 - strbne r1, [r0] - tst r4, #0x80 - ldrne r0, _02077290 @ =0x04000248 - movne r1, #0 - strbne r1, [r0] - tst r4, #0x100 - ldrne r0, _02077294 @ =0x04000249 - movne r1, #0 - strbne r1, [r0] - ldr r1, _02077298 @ =0x022B958A - lsl r0, r4, #0x10 - ldrh r1, [r1] - lsr r0, r0, #0x10 - bl FUN_0207bac8 - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_02077274: .4byte 0x04000240 -_02077278: .4byte 0x04000241 -_0207727C: .4byte 0x04000242 -_02077280: .4byte 0x04000243 -_02077284: .4byte 0x04000244 -_02077288: .4byte 0x04000245 -_0207728C: .4byte 0x04000246 -_02077290: .4byte 0x04000248 -_02077294: .4byte 0x04000249 -_02077298: .4byte 0x022B958A - arm_func_end FUN_020771BC - - arm_func_start FUN_0207729c -FUN_0207729c: @ 0x0207729C - ldr ip, _020772A8 @ =FUN_020771BC - ldr r0, _020772AC @ =0x022B958E - bx ip - .align 2, 0 -_020772A8: .4byte FUN_020771BC -_020772AC: .4byte 0x022B958E - arm_func_end FUN_0207729c - - arm_func_start FUN_020772b0 -FUN_020772b0: @ 0x020772B0 - ldr ip, _020772BC @ =FUN_020771BC - ldr r0, _020772C0 @ =0x022B9590 - bx ip - .align 2, 0 -_020772BC: .4byte FUN_020771BC -_020772C0: .4byte 0x022B9590 - arm_func_end FUN_020772b0 - - arm_func_start FUN_020772c4 -FUN_020772c4: @ 0x020772C4 - mov r2, #0x4000000 - ldr r1, [r2] - ldr ip, _020772E0 @ =FUN_020771BC - bic r1, r1, #0x40000000 - ldr r0, _020772E4 @ =0x022B959A - str r1, [r2] - bx ip - .align 2, 0 -_020772E0: .4byte FUN_020771BC -_020772E4: .4byte 0x022B959A - arm_func_end FUN_020772c4 - - arm_func_start FUN_020772e8 -FUN_020772e8: @ 0x020772E8 - mov r2, #0x4000000 - ldr r1, [r2] - ldr ip, _02077304 @ =FUN_020771BC - bic r1, r1, #0x80000000 - ldr r0, _02077308 @ =0x022B959C - str r1, [r2] - bx ip - .align 2, 0 -_02077304: .4byte FUN_020771BC -_02077308: .4byte 0x022B959C - arm_func_end FUN_020772e8 - - arm_func_start FUN_0207730c -FUN_0207730c: @ 0x0207730C - ldr ip, _02077318 @ =FUN_020771BC - ldr r0, _0207731C @ =0x022B9594 - bx ip - .align 2, 0 -_02077318: .4byte FUN_020771BC -_0207731C: .4byte 0x022B9594 - arm_func_end FUN_0207730c - - arm_func_start FUN_02077320 -FUN_02077320: @ 0x02077320 - ldr ip, _0207732C @ =FUN_020771BC - ldr r0, _02077330 @ =0x022B9596 - bx ip - .align 2, 0 -_0207732C: .4byte FUN_020771BC -_02077330: .4byte 0x022B9596 - arm_func_end FUN_02077320 -_02077334: - .byte 0x04, 0xC0, 0x9F, 0xE5, 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 - .byte 0xBC, 0x71, 0x07, 0x02, 0x98, 0x95, 0x2B, 0x02, 0x04, 0xC0, 0x9F, 0xE5, 0x04, 0x00, 0x9F, 0xE5 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xBC, 0x71, 0x07, 0x02, 0x92, 0x95, 0x2B, 0x02 - - arm_func_start FUN_0207735c -FUN_0207735c: @ 0x0207735C - ldr ip, _02077368 @ =FUN_020771BC - ldr r0, _0207736C @ =0x022B958C - bx ip - .align 2, 0 -_02077368: .4byte FUN_020771BC -_0207736C: .4byte 0x022B958C - arm_func_end FUN_0207735c - - arm_func_start FUN_02077370 -FUN_02077370: @ 0x02077370 - ldr ip, _0207737C @ =FUN_020771BC - ldr r0, _02077380 @ =0x022B959E - bx ip - .align 2, 0 -_0207737C: .4byte FUN_020771BC -_02077380: .4byte 0x022B959E - arm_func_end FUN_02077370 - - arm_func_start FUN_02077384 -FUN_02077384: @ 0x02077384 - ldr ip, _02077390 @ =FUN_020771BC - ldr r0, _02077394 @ =0x022B95A0 - bx ip - .align 2, 0 -_02077390: .4byte FUN_020771BC -_02077394: .4byte 0x022B95A0 - arm_func_end FUN_02077384 - - arm_func_start FUN_02077398 -FUN_02077398: @ 0x02077398 - ldr r2, _020773B4 @ =0x04001000 - ldr ip, _020773B8 @ =FUN_020771BC - ldr r1, [r2] - ldr r0, _020773BC @ =0x022B95A2 - bic r1, r1, #0x40000000 - str r1, [r2] - bx ip - .align 2, 0 -_020773B4: .4byte 0x04001000 -_020773B8: .4byte FUN_020771BC -_020773BC: .4byte 0x022B95A2 - arm_func_end FUN_02077398 -_020773C0: - .byte 0x14, 0x20, 0x9F, 0xE5, 0x14, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0x92, 0xE5, 0x10, 0x00, 0x9F, 0xE5 - .byte 0x02, 0x11, 0xC1, 0xE3, 0x00, 0x10, 0x82, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x00, 0x10, 0x00, 0x04 - .byte 0xBC, 0x71, 0x07, 0x02, 0xA4, 0x95, 0x2B, 0x02, 0x28, 0x10, 0x9F, 0xE5, 0x01, 0x03, 0xA0, 0xE3 - .byte 0xB0, 0x10, 0xD1, 0xE1, 0x00, 0x00, 0x90, 0xE5, 0x0E, 0x03, 0x00, 0xE2, 0xA0, 0x0D, 0xA0, 0xE1 - .byte 0x1F, 0x1C, 0x01, 0xE2, 0x00, 0x08, 0xA0, 0xE1, 0x41, 0x14, 0xA0, 0xE1, 0x06, 0x04, 0x80, 0xE2 - .byte 0x81, 0x05, 0x80, 0xE0, 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0x00, 0x04, 0x14, 0x00, 0x9F, 0xE5 - .byte 0xB0, 0x00, 0xD0, 0xE1, 0x1F, 0x0C, 0x00, 0xE2, 0x40, 0x04, 0xA0, 0xE1, 0x80, 0x05, 0xA0, 0xE1 - .byte 0x62, 0x06, 0x80, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x10, 0x00, 0x04, 0x28, 0x10, 0x9F, 0xE5 - .byte 0x01, 0x03, 0xA0, 0xE3, 0xB0, 0x10, 0xD1, 0xE1, 0x00, 0x00, 0x90, 0xE5, 0x0E, 0x03, 0x00, 0xE2 - .byte 0xA0, 0x0D, 0xA0, 0xE1, 0x1F, 0x1C, 0x01, 0xE2, 0x00, 0x08, 0xA0, 0xE1, 0x41, 0x14, 0xA0, 0xE1 - .byte 0x06, 0x04, 0x80, 0xE2, 0x81, 0x05, 0x80, 0xE0, 0x1E, 0xFF, 0x2F, 0xE1, 0x0A, 0x00, 0x00, 0x04 - .byte 0x14, 0x00, 0x9F, 0xE5, 0xB0, 0x00, 0xD0, 0xE1, 0x1F, 0x0C, 0x00, 0xE2, 0x40, 0x04, 0xA0, 0xE1 - .byte 0x80, 0x05, 0xA0, 0xE1, 0x62, 0x06, 0x80, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x0A, 0x10, 0x00, 0x04 - .byte 0x01, 0x03, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0xBC, 0x30, 0xD0, 0xE1, 0x00, 0x00, 0x90, 0xE5 - .byte 0x07, 0xC0, 0x01, 0xE2, 0x0E, 0x03, 0x00, 0xE2, 0xA0, 0x1D, 0xA0, 0xE1, 0x1F, 0x0C, 0x03, 0xE2 - .byte 0x01, 0x28, 0xA0, 0xE1, 0x06, 0x00, 0x5C, 0xE3, 0x20, 0x14, 0xA0, 0xE1, 0x0C, 0xF1, 0x8F, 0x90 - .byte 0x11, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA - .byte 0x02, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x00, 0xEA - .byte 0x06, 0x04, 0x82, 0xE2, 0x81, 0x05, 0x80, 0xE0, 0x1E, 0xFF, 0x2F, 0xE1, 0x80, 0x00, 0x13, 0xE3 - .byte 0x01, 0x07, 0xA0, 0x11, 0x06, 0x04, 0x80, 0x12, 0x06, 0x04, 0x82, 0x02, 0x81, 0x05, 0x80, 0x00 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x06, 0x04, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x03, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0xBE, 0x30, 0xD0, 0xE1 - .byte 0x00, 0x00, 0x90, 0xE5, 0x07, 0xC0, 0x01, 0xE2, 0x0E, 0x03, 0x00, 0xE2, 0xA0, 0x1D, 0xA0, 0xE1 - .byte 0x1F, 0x0C, 0x03, 0xE2, 0x01, 0x28, 0xA0, 0xE1, 0x06, 0x00, 0x5C, 0xE3, 0x20, 0x14, 0xA0, 0xE1 - .byte 0x0C, 0xF1, 0x8F, 0x90, 0x11, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA - .byte 0x03, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA - .byte 0x08, 0x00, 0x00, 0xEA, 0x06, 0x04, 0x82, 0xE2, 0x81, 0x05, 0x80, 0xE0, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x80, 0x00, 0x13, 0xE3, 0x01, 0x07, 0xA0, 0x11, 0x06, 0x04, 0x80, 0x12, 0x06, 0x04, 0x82, 0x02 - .byte 0x81, 0x05, 0x80, 0x00, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x28, 0x10, 0x9F, 0xE5, 0x01, 0x03, 0xA0, 0xE3 - .byte 0xB0, 0x10, 0xD1, 0xE1, 0x00, 0x00, 0x90, 0xE5, 0x07, 0x04, 0x00, 0xE2, 0x20, 0x0C, 0xA0, 0xE1 - .byte 0x3C, 0x10, 0x01, 0xE2, 0x00, 0x08, 0xA0, 0xE1, 0x41, 0x11, 0xA0, 0xE1, 0x06, 0x04, 0x80, 0xE2 - .byte 0x01, 0x07, 0x80, 0xE0, 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0x00, 0x04, 0x14, 0x00, 0x9F, 0xE5 - .byte 0xB0, 0x00, 0xD0, 0xE1, 0x3C, 0x00, 0x00, 0xE2, 0x40, 0x01, 0xA0, 0xE1, 0x00, 0x07, 0xA0, 0xE1 - .byte 0x62, 0x06, 0x80, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x10, 0x00, 0x04, 0x28, 0x10, 0x9F, 0xE5 - .byte 0x01, 0x03, 0xA0, 0xE3, 0xB0, 0x10, 0xD1, 0xE1, 0x00, 0x00, 0x90, 0xE5, 0x07, 0x04, 0x00, 0xE2 - .byte 0x20, 0x0C, 0xA0, 0xE1, 0x3C, 0x10, 0x01, 0xE2, 0x00, 0x08, 0xA0, 0xE1, 0x41, 0x11, 0xA0, 0xE1 - .byte 0x06, 0x04, 0x80, 0xE2, 0x01, 0x07, 0x80, 0xE0, 0x1E, 0xFF, 0x2F, 0xE1, 0x0A, 0x00, 0x00, 0x04 - .byte 0x14, 0x00, 0x9F, 0xE5, 0xB0, 0x00, 0xD0, 0xE1, 0x3C, 0x00, 0x00, 0xE2, 0x40, 0x01, 0xA0, 0xE1 - .byte 0x00, 0x07, 0xA0, 0xE1, 0x62, 0x06, 0x80, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x0A, 0x10, 0x00, 0x04 - .byte 0x01, 0x13, 0xA0, 0xE3, 0x00, 0x00, 0x91, 0xE5, 0xBC, 0x20, 0xD1, 0xE1, 0x07, 0x00, 0x00, 0xE2 - .byte 0x05, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0xBA, 0x80, 0x00, 0x12, 0xE3, 0x09, 0x00, 0x00, 0x1A - .byte 0x01, 0x03, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x3C, 0x00, 0x02, 0xE2, 0x07, 0x14, 0x01, 0xE2 - .byte 0x21, 0x1C, 0xA0, 0xE1, 0x01, 0x18, 0xA0, 0xE1, 0x06, 0x14, 0x81, 0xE2, 0x20, 0x01, 0xA0, 0xE1 - .byte 0x00, 0x07, 0x81, 0xE0, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x01, 0x13, 0xA0, 0xE3, 0x00, 0x00, 0x91, 0xE5, 0xBE, 0x20, 0xD1, 0xE1, 0x07, 0x00, 0x00, 0xE2 - .byte 0x03, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0xBA, 0x06, 0x00, 0x50, 0xE3, 0x0B, 0x00, 0x00, 0xAA - .byte 0x80, 0x00, 0x12, 0xE3, 0x09, 0x00, 0x00, 0x1A, 0x01, 0x03, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5 - .byte 0x3C, 0x00, 0x02, 0xE2, 0x07, 0x14, 0x01, 0xE2, 0x21, 0x1C, 0xA0, 0xE1, 0x01, 0x18, 0xA0, 0xE1 - .byte 0x06, 0x14, 0x81, 0xE2, 0x20, 0x01, 0xA0, 0xE1, 0x00, 0x07, 0x81, 0xE0, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_020776e8 -FUN_020776e8: @ 0x020776E8 - ldr ip, [sp] - orr r1, r1, #0x40 - orr r2, r1, r2, lsl #8 - orr r1, r3, ip, lsl #8 - orr r1, r2, r1, lsl #16 - str r1, [r0] - bx lr - arm_func_end FUN_020776e8 -_02077704: - .byte 0x00, 0x00, 0x52, 0xE3, 0x80, 0x10, 0x81, 0xA3, 0xB0, 0x10, 0xC0, 0xA1 - .byte 0xB4, 0x20, 0xC0, 0xA1, 0x1E, 0xFF, 0x2F, 0xA1, 0xC0, 0x10, 0x81, 0xE3, 0xB0, 0x10, 0xC0, 0xE1 - .byte 0x00, 0x10, 0x62, 0xE2, 0xB4, 0x10, 0xC0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x30, 0xD0, 0xE1 - .byte 0x00, 0x00, 0x51, 0xE3, 0xC0, 0x20, 0x03, 0xE2, 0x06, 0x00, 0x00, 0xAA, 0x80, 0x00, 0x52, 0xE3 - .byte 0xC0, 0x20, 0xC3, 0x03, 0xC0, 0x20, 0x82, 0x03, 0xB0, 0x20, 0xC0, 0x01, 0x00, 0x10, 0x61, 0xE2 - .byte 0xB4, 0x10, 0xC0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xC0, 0x00, 0x52, 0xE3, 0xC0, 0x20, 0xC3, 0x03 - .byte 0x80, 0x20, 0x82, 0x03, 0xB0, 0x20, 0xC0, 0x01, 0xB4, 0x10, 0xC0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02077770 -FUN_02077770: @ 0x02077770 - ldr r1, _02077784 @ =0x04000400 - mov r2, #0x16 - ldr ip, _02077788 @ =FUN_020788E4 - str r2, [r1] - bx ip - .align 2, 0 -_02077784: .4byte 0x04000400 -_02077788: .4byte FUN_020788E4 - arm_func_end FUN_02077770 - - arm_func_start FUN_0207778c -FUN_0207778c: @ 0x0207778C - ldr r1, _020777A0 @ =0x04000400 - mov r2, #0x17 - ldr ip, _020777A4 @ =FUN_020788C0 - str r2, [r1] - bx ip - .align 2, 0 -_020777A0: .4byte 0x04000400 -_020777A4: .4byte FUN_020788C0 - arm_func_end FUN_0207778c -_020777A8: - .byte 0x0C, 0x10, 0x9F, 0xE5, 0x19, 0x20, 0xA0, 0xE3 - .byte 0x08, 0xC0, 0x9F, 0xE5, 0x00, 0x20, 0x81, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x00, 0x04, 0x00, 0x04 - .byte 0xC0, 0x88, 0x07, 0x02 - - arm_func_start FUN_020777c4 -FUN_020777c4: @ 0x020777C4 - push {r3, lr} - bl FUN_0207793c - ldr r1, _020778B0 @ =0x04000504 - mov r0, #0 - str r0, [r1] -_020777D8: - ldr r0, [r1, #0xfc] - tst r0, #0x8000000 - bne _020777D8 - ldr r0, _020778B4 @ =0x04000060 + b _022D1078 +_022D1064: + mov r0, #0x14 + str r0, [sp, #4] + mov r0, #0x10 + str r0, [sp] mov r2, #0 - strh r2, [r0] - str r2, [r1, #0xfc] - str r2, [r0, #-0x50] - ldrh ip, [r0] - ldr r2, _020778B8 @ =0xFFFFCFFD - ldr r3, _020778BC @ =0x0000CFFB - orr ip, ip, #0x2000 - strh ip, [r0] - ldrh ip, [r0] - orr ip, ip, #0x1000 - strh ip, [r0] - ldrh ip, [r0] - and r2, ip, r2 - strh r2, [r0] - ldrh r2, [r0] - bic r2, r2, #0x3000 - orr r2, r2, #0x10 - strh r2, [r0] - ldrh r2, [r0] - and r2, r2, r3 - strh r2, [r0] - ldr r0, [r1, #0xfc] - orr r0, r0, #0x8000 - str r0, [r1, #0xfc] - ldr r0, [r1, #0xfc] - bic r0, r0, #0xc0000000 - orr r0, r0, #0x80000000 - str r0, [r1, #0xfc] - bl FUN_02077964 - ldr r1, _020778C0 @ =0x04000350 - mov r2, #0 - ldr r0, _020778C4 @ =0x00007FFF - str r2, [r1] - strh r0, [r1, #4] - strh r2, [r1, #6] - str r2, [r1, #8] - strh r2, [r1, #0xc] - sub r1, r1, #0x348 - ldrh r0, [r1] - bic r0, r0, #3 - strh r0, [r1] - bl FUN_02077ab4 - ldr r2, _020778C8 @ =0x001F0080 - ldr r1, _020778CC @ =0x040004A4 - mov r0, #0 - str r2, [r1] - str r0, [r1, #4] - str r0, [r1, #8] - pop {r3, pc} - .align 2, 0 -_020778B0: .4byte 0x04000504 -_020778B4: .4byte 0x04000060 -_020778B8: .4byte 0xFFFFCFFD -_020778BC: .4byte 0x0000CFFB -_020778C0: .4byte 0x04000350 -_020778C4: .4byte 0x00007FFF -_020778C8: .4byte 0x001F0080 -_020778CC: .4byte 0x040004A4 - arm_func_end FUN_020777c4 - - arm_func_start FUN_020778d0 -FUN_020778d0: @ 0x020778D0 - push {r3, lr} - ldr r2, _0207792C @ =0x04000600 -_020778D8: - ldr r0, [r2] - tst r0, #0x8000000 - bne _020778D8 - ldr r0, [r2] - ldr r1, _02077930 @ =0x04000060 - orr r0, r0, #0x8000 - str r0, [r2] - ldrh r0, [r1] - orr r0, r0, #0x2000 - strh r0, [r1] - ldrh r0, [r1] - orr r0, r0, #0x1000 - strh r0, [r1] - bl FUN_020779fc - ldr r2, _02077934 @ =0x001F0080 - ldr r1, _02077938 @ =0x040004A4 - mov r0, #0 - str r2, [r1] - str r0, [r1, #4] - str r0, [r1, #8] - pop {r3, pc} - .align 2, 0 -_0207792C: .4byte 0x04000600 -_02077930: .4byte 0x04000060 -_02077934: .4byte 0x001F0080 -_02077938: .4byte 0x040004A4 - arm_func_end FUN_020778d0 - - arm_func_start FUN_0207793c -FUN_0207793c: @ 0x0207793C - push {r3, lr} - ldr r0, _0207795C @ =0x04000400 - bl FUN_02077bb4 - ldr r1, _02077960 @ =0x04000600 -_0207794C: - ldr r0, [r1] - tst r0, #0x8000000 - bne _0207794C - pop {r3, pc} - .align 2, 0 -_0207795C: .4byte 0x04000400 -_02077960: .4byte 0x04000600 - arm_func_end FUN_0207793c - - arm_func_start FUN_02077964 -FUN_02077964: @ 0x02077964 - push {r4, lr} - sub sp, sp, #8 - ldr r1, _020779F0 @ =0x04000600 - ldr r0, [r1] - orr r0, r0, #0x8000 - str r0, [r1] - add r4, sp, #4 -_02077980: - mov r0, r4 - bl FUN_02077b54 - cmp r0, #0 - bne _02077980 - add r4, sp, #0 -_02077994: - mov r0, r4 - bl FUN_02077b84 - cmp r0, #0 - bne _02077994 - ldr r1, _020779F4 @ =0x04000440 - mov r0, #3 - str r0, [r1] - mov r0, #0 - str r0, [r1, #0x14] - str r0, [r1] - ldr r0, [sp] - mov r2, #0 - cmp r0, #0 - strne r0, [r1, #8] - ldr r1, _020779F8 @ =0x04000454 - mov r0, #2 - str r2, [r1] - str r0, [r1, #-0x14] - ldr r0, [sp, #4] - str r0, [r1, #-0xc] - str r2, [r1] - add sp, sp, #8 - pop {r4, pc} - .align 2, 0 -_020779F0: .4byte 0x04000600 -_020779F4: .4byte 0x04000440 -_020779F8: .4byte 0x04000454 - arm_func_end FUN_02077964 - - arm_func_start FUN_020779fc -FUN_020779fc: @ 0x020779FC - push {r4, lr} - sub sp, sp, #8 - ldr r1, _02077A84 @ =0x04000600 - ldr r0, [r1] - orr r0, r0, #0x8000 - str r0, [r1] - add r4, sp, #4 -_02077A18: - mov r0, r4 - bl FUN_02077b54 - cmp r0, #0 - bne _02077A18 - add r4, sp, #0 -_02077A2C: - mov r0, r4 - bl FUN_02077b84 - cmp r0, #0 - bne _02077A2C - ldr r1, _02077A88 @ =0x04000440 - mov r0, #3 - str r0, [r1] - mov r0, #0 - str r0, [r1, #0x14] - str r0, [r1] - ldr r0, [sp] - ldr r2, _02077A88 @ =0x04000440 - cmp r0, #0 - strne r0, [r1, #8] - mov r0, #2 - str r0, [r2] +_022D1078: ldr r1, [sp, #4] - mov r0, #0 - str r1, [r2, #8] - str r0, [r2, #0x14] - add sp, sp, #8 - pop {r4, pc} - .align 2, 0 -_02077A84: .4byte 0x04000600 -_02077A88: .4byte 0x04000440 - arm_func_end FUN_020779fc - - arm_func_start FUN_02077a8c -FUN_02077a8c: @ 0x02077A8C - ldr ip, [sp] - orr r0, r0, r1, lsl #16 - orr r1, r0, r3, lsl #24 - cmp ip, #0 - ldr r0, _02077AB0 @ =0x04000350 - orrne r1, r1, #0x8000 - str r1, [r0] - strh r2, [r0, #4] - bx lr - .align 2, 0 -_02077AB0: .4byte 0x04000350 - arm_func_end FUN_02077a8c - - arm_func_start FUN_02077ab4 -FUN_02077ab4: @ 0x02077AB4 - push {r3, lr} - sub sp, sp, #8 - ldr r0, _02077B44 @ =0x020B2B98 - mvn r1, #0 - ldr r0, [r0] - cmp r0, r1 - ldr r1, _02077B48 @ =0x04000330 - beq _02077B04 - mov r2, #0 - str r2, [sp] - mov r3, #0x10 - str r2, [sp, #4] - bl FUN_0207bda8 - ldr r0, _02077B44 @ =0x020B2B98 - ldr r1, _02077B4C @ =0x04000360 - ldr r0, [r0] - mov r2, #0 - mov r3, #0x60 - bl FUN_0207bc4c - b _02077B20 -_02077B04: - mov r0, #0 - mov r2, #0x10 - bl FUN_0207c314 - ldr r1, _02077B4C @ =0x04000360 - mov r0, #0 - mov r2, #0x60 - bl FUN_0207c314 -_02077B20: - mov r2, #0 - ldr r0, _02077B50 @ =0x040004D0 - mov r1, r2 -_02077B2C: - add r2, r2, #1 - str r1, [r0] - cmp r2, #0x20 - blt _02077B2C - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_02077B44: .4byte 0x020B2B98 -_02077B48: .4byte 0x04000330 -_02077B4C: .4byte 0x04000360 -_02077B50: .4byte 0x040004D0 - arm_func_end FUN_02077ab4 - - arm_func_start FUN_02077b54 -FUN_02077b54: @ 0x02077B54 - ldr r2, _02077B80 @ =0x04000600 - ldr r1, [r2] - tst r1, #0x4000 - mvnne r0, #0 - bxne lr - ldr r1, [r2] - and r1, r1, #0x1f00 - lsr r1, r1, #8 - str r1, [r0] - mov r0, #0 - bx lr - .align 2, 0 -_02077B80: .4byte 0x04000600 - arm_func_end FUN_02077b54 - - arm_func_start FUN_02077b84 -FUN_02077b84: @ 0x02077B84 - ldr r2, _02077BB0 @ =0x04000600 - ldr r1, [r2] - tst r1, #0x4000 - mvnne r0, #0 - bxne lr - ldr r1, [r2] - and r1, r1, #0x2000 - lsr r1, r1, #0xd - str r1, [r0] - mov r0, #0 - bx lr - .align 2, 0 -_02077BB0: .4byte 0x04000600 - arm_func_end FUN_02077b84 - - arm_func_start FUN_02077bb4 -FUN_02077bb4: @ 0x02077BB4 - mov r1, #0 - mov r2, #0 - mov r3, #0 - mov ip, #0 - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - stm r0, {r1, r2, r3, ip} - bx lr - arm_func_end FUN_02077bb4 - - arm_func_start FUN_02077c48 -FUN_02077c48: @ 0x02077C48 - push {r4, lr} - sub sp, sp, #0x50 - ldr ip, [sp, #0x58] - ldr lr, [sp, #0x5c] - str ip, [sp] - ldr r4, [sp, #0x68] - ldr ip, [sp, #0x60] - str lr, [sp, #4] - cmp r4, #0 - addeq r4, sp, #0x10 - str ip, [sp, #8] - str r4, [sp, #0xc] - bl FUN_02075930 - ldr r0, [sp, #0x64] + ldr r0, [sp] + mov r7, #0 + add r0, r1, r0 + add r0, r2, r0 + lsl fp, r0, #1 + cmp fp, #0 + ble _022D116C + add r0, sl, #0x74 + mov sb, r7 + str r0, [sp, #8] + add r5, sp, #0xc + mov r4, #1 +_022D10AC: + add r0, sl, #0x348 + bl ov00_022D397C + add r0, r7, #0x41 + add r6, r7, #1 + strb r0, [sp, #0xc] + mov r8, #0 + cmp r6, #0 + ble _022D10E8 +_022D10CC: + add r0, sl, #0x348 + mov r1, r5 + mov r2, r4 + bl ov00_022D39D0 + add r8, r8, #1 + cmp r8, r6 + blt _022D10CC +_022D10E8: + add r0, sl, #0x348 + mov r1, sl + mov r2, #0x30 + bl ov00_022D39D0 + add r0, sl, #0x348 + add r1, sl, #0x54 + mov r2, #0x20 + bl ov00_022D39D0 + add r0, sl, #0x348 + add r1, sl, #0x34 + mov r2, #0x20 + bl ov00_022D39D0 + add r0, sl, #0x348 + add r1, sp, #0xd + bl ov00_022D3A88 + add r0, sl, #0x3fc + bl ov00_022D30BC + add r0, sl, #0x3fc + mov r1, sl + mov r2, #0x30 + bl ov00_022D3104 + add r0, sl, #0x3fc + add r1, sp, #0xd + mov r2, #0x14 + bl ov00_022D3104 + ldr r1, [sp, #8] + add r0, sl, #0x3fc + add r1, r1, sb + bl ov00_022D31BC + add sb, sb, #0x10 + cmp sb, fp + add r7, r7, #1 + blt _022D10AC +_022D116C: + ldrb r0, [sl, #0x454] + add r3, sl, #0x74 cmp r0, #0 - addeq sp, sp, #0x50 - popeq {r4, pc} - ldr r1, _02077CA8 @ =0x04000440 - mov r2, #0 - mov r0, r4 - str r2, [r1] - bl FUN_02077770 - add sp, sp, #0x50 - pop {r4, pc} - .align 2, 0 -_02077CA8: .4byte 0x04000440 - arm_func_end FUN_02077c48 + beq _022D11A8 + ldr r0, [sp, #4] + str r3, [sl, #0x1d4] + add r2, r3, r0 + add r1, r2, r0 + add r0, r3, r0, lsl #1 + str r0, [sl, #0x1d8] + ldr r0, [sp] + str r2, [sl, #0xbc] + add r0, r1, r0 + str r0, [sl, #0xc0] + b _022D11D0 +_022D11A8: + ldr r0, [sp, #4] + str r3, [sl, #0xbc] + add r2, r3, r0 + add r1, r2, r0 + add r0, r3, r0, lsl #1 + str r0, [sl, #0xc0] + ldr r0, [sp] + str r2, [sl, #0x1d4] + add r0, r1, r0 + str r0, [sl, #0x1d8] +_022D11D0: + ldr r1, [sl, #0x1d8] + add r0, sl, #0x1e0 + mov r2, #0x10 + bl ov00_022D3B20 + ldr r1, [sl, #0xc0] + add r0, sl, #0xc8 + mov r2, #0x10 + bl ov00_022D3B20 + add sp, sp, #0x24 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022D102C - arm_func_start FUN_02077cac -FUN_02077cac: @ 0x02077CAC + arm_func_start ov00_022D11F8 +ov00_022D11F8: @ 0x022D11F8 + push {r4, lr} + mov r4, r0 + ldr r2, [r4, #0x81c] + bl ov00_022D0CF0 + mov r0, r4 + bl ov00_022D0FCC + mov r1, #0 + mov r0, r4 + mov r2, r1 + bl ov00_022CFC20 + mov r0, r4 + bl ov00_022D102C + mov r0, #5 + strb r0, [r4, #0x455] + pop {r4, pc} + arm_func_end ov00_022D11F8 + + arm_func_start ov00_022D1234 +ov00_022D1234: @ 0x022D1234 push {r3, r4, r5, lr} sub sp, sp, #0x30 - ldr r4, [sp, #0x40] - mov r5, r3 - cmp r4, #0 - addeq r4, sp, #0 - mov r3, r4 - bl FUN_02075828 - cmp r5, #0 - addeq sp, sp, #0x30 - popeq {r3, r4, r5, pc} - ldr r1, _02077CF4 @ =0x04000440 - mov r2, #2 - mov r0, r4 - str r2, [r1] - bl FUN_0207778c + mov r5, r0 + ldrb r0, [r5, #0x454] + mov r4, r1 + teq r0, r2 + mov r2, #4 + beq _022D1264 + ldr r1, _022D1308 @ =0x02318924 + add r0, r5, #0x3a4 + bl ov00_022D3104 + b _022D1270 +_022D1264: + ldr r1, _022D130C @ =0x0231892C + add r0, r5, #0x3a4 + bl ov00_022D3104 +_022D1270: + mov r1, r5 + add r0, r5, #0x3a4 + mov r2, #0x30 + bl ov00_022D3104 + add r0, sp, #0 + mov r1, #0x36 + mov r2, #0x30 + bl FUN_0207C40C + add r1, sp, #0 + add r0, r5, #0x3a4 + mov r2, #0x30 + bl ov00_022D3104 + mov r1, r4 + add r0, r5, #0x3a4 + bl ov00_022D31BC + add r0, r5, #0x3a4 + bl ov00_022D30BC + add r0, r5, #0x3a4 + mov r1, r5 + mov r2, #0x30 + bl ov00_022D3104 + add r0, sp, #0 + mov r1, #0x5c + mov r2, #0x30 + bl FUN_0207C40C + add r0, r5, #0x3a4 + add r1, sp, #0 + mov r2, #0x30 + bl ov00_022D3104 + add r0, r5, #0x3a4 + mov r1, r4 + mov r2, #0x10 + bl ov00_022D3104 + add r0, r5, #0x3a4 + mov r1, r4 + bl ov00_022D31BC add sp, sp, #0x30 pop {r3, r4, r5, pc} .align 2, 0 -_02077CF4: .4byte 0x04000440 - arm_func_end FUN_02077cac +_022D1308: .4byte 0x02318924 +_022D130C: .4byte 0x0231892C + arm_func_end ov00_022D1234 - arm_func_start FUN_02077cf8 -FUN_02077cf8: @ 0x02077CF8 - push {r4, lr} - ldr r3, _02077D48 @ =0x020B2B98 - mov r4, r0 - ldr r0, [r3] - mvn ip, #0 - mov lr, r1 - mov r3, r2 - cmp r0, ip - beq _02077D34 - cmp r3, #0x1c - bls _02077D34 - mov r1, r4 - add r2, lr, #0x5000000 - bl FUN_0207bd3c - pop {r4, pc} -_02077D34: - mov r0, r4 - mov r2, r3 - add r1, lr, #0x5000000 - bl FUN_0207c2e0 - pop {r4, pc} - .align 2, 0 -_02077D48: .4byte 0x020B2B98 - arm_func_end FUN_02077cf8 -_02077D4C: - .byte 0x08, 0x40, 0x2D, 0xE9 - .byte 0x48, 0x30, 0x9F, 0xE5, 0x00, 0xE0, 0xA0, 0xE1, 0x00, 0x00, 0x93, 0xE5, 0x00, 0xC0, 0xE0, 0xE3 - .byte 0x02, 0x30, 0xA0, 0xE1, 0x0C, 0x00, 0x50, 0xE1, 0x06, 0x00, 0x00, 0x0A, 0x1C, 0x00, 0x53, 0xE3 - .byte 0x04, 0x00, 0x00, 0x9A, 0x01, 0x2B, 0x81, 0xE2, 0x0E, 0x10, 0xA0, 0xE1, 0x05, 0x24, 0x82, 0xE2 - .byte 0xED, 0x0F, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x01, 0x1B, 0x81, 0xE2, 0x0E, 0x00, 0xA0, 0xE1 - .byte 0x03, 0x20, 0xA0, 0xE1, 0x05, 0x14, 0x81, 0xE2, 0x50, 0x11, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 - .byte 0x98, 0x2B, 0x0B, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x48, 0x30, 0x9F, 0xE5, 0x00, 0xE0, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x93, 0xE5, 0x00, 0xC0, 0xE0, 0xE3, 0x02, 0x30, 0xA0, 0xE1, 0x0C, 0x00, 0x50, 0xE1 - .byte 0x06, 0x00, 0x00, 0x0A, 0x1C, 0x00, 0x53, 0xE3, 0x04, 0x00, 0x00, 0x9A, 0x02, 0x2C, 0x81, 0xE2 - .byte 0x0E, 0x10, 0xA0, 0xE1, 0x05, 0x24, 0x82, 0xE2, 0xD7, 0x0F, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 - .byte 0x02, 0x1C, 0x81, 0xE2, 0x0E, 0x00, 0xA0, 0xE1, 0x03, 0x20, 0xA0, 0xE1, 0x05, 0x14, 0x81, 0xE2 - .byte 0x3A, 0x11, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x98, 0x2B, 0x0B, 0x02, 0x08, 0x40, 0x2D, 0xE9 - .byte 0x48, 0x30, 0x9F, 0xE5, 0x00, 0xE0, 0xA0, 0xE1, 0x00, 0x00, 0x93, 0xE5, 0x00, 0xC0, 0xE0, 0xE3 - .byte 0x02, 0x30, 0xA0, 0xE1, 0x0C, 0x00, 0x50, 0xE1, 0x06, 0x00, 0x00, 0x0A, 0x1C, 0x00, 0x53, 0xE3 - .byte 0x04, 0x00, 0x00, 0x9A, 0x06, 0x2C, 0x81, 0xE2, 0x0E, 0x10, 0xA0, 0xE1, 0x05, 0x24, 0x82, 0xE2 - .byte 0xC1, 0x0F, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x06, 0x1C, 0x81, 0xE2, 0x0E, 0x00, 0xA0, 0xE1 - .byte 0x03, 0x20, 0xA0, 0xE1, 0x05, 0x14, 0x81, 0xE2, 0x24, 0x11, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 - .byte 0x98, 0x2B, 0x0B, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x44, 0x30, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x93, 0xE5, 0x00, 0xC0, 0xE0, 0xE3, 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1 - .byte 0x0C, 0x00, 0x50, 0xE1, 0x05, 0x00, 0x00, 0x0A, 0x30, 0x00, 0x53, 0xE3, 0x03, 0x00, 0x00, 0x9A - .byte 0x04, 0x10, 0xA0, 0xE1, 0x07, 0x24, 0x8E, 0xE2, 0x8F, 0x0F, 0x00, 0xEB, 0x10, 0x80, 0xBD, 0xE8 - .byte 0x04, 0x00, 0xA0, 0xE1, 0x03, 0x20, 0xA0, 0xE1, 0x07, 0x14, 0x8E, 0xE2, 0x23, 0x11, 0x00, 0xEB - .byte 0x10, 0x80, 0xBD, 0xE8, 0x98, 0x2B, 0x0B, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x48, 0x30, 0x9F, 0xE5 - .byte 0x00, 0xE0, 0xA0, 0xE1, 0x00, 0x00, 0x93, 0xE5, 0x00, 0xC0, 0xE0, 0xE3, 0x02, 0x30, 0xA0, 0xE1 - .byte 0x0C, 0x00, 0x50, 0xE1, 0x06, 0x00, 0x00, 0x0A, 0x30, 0x00, 0x53, 0xE3, 0x04, 0x00, 0x00, 0x9A - .byte 0x01, 0x2B, 0x81, 0xE2, 0x0E, 0x10, 0xA0, 0xE1, 0x07, 0x24, 0x82, 0xE2, 0x7A, 0x0F, 0x00, 0xEB - .byte 0x08, 0x80, 0xBD, 0xE8, 0x01, 0x1B, 0x81, 0xE2, 0x0E, 0x00, 0xA0, 0xE1, 0x03, 0x20, 0xA0, 0xE1 - .byte 0x07, 0x14, 0x81, 0xE2, 0x0D, 0x11, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x98, 0x2B, 0x0B, 0x02 - .byte 0x10, 0x40, 0x2D, 0xE9, 0x48, 0x30, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x93, 0xE5 - .byte 0x00, 0xC0, 0xE0, 0xE3, 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1, 0x0C, 0x00, 0x50, 0xE1 - .byte 0x19, 0xC5, 0xA0, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x30, 0x00, 0x53, 0xE3, 0x03, 0x00, 0x00, 0x9A - .byte 0x04, 0x10, 0xA0, 0xE1, 0x0E, 0x20, 0x8C, 0xE0, 0x63, 0x0F, 0x00, 0xEB, 0x10, 0x80, 0xBD, 0xE8 - .byte 0x04, 0x00, 0xA0, 0xE1, 0x03, 0x20, 0xA0, 0xE1, 0x0E, 0x10, 0x8C, 0xE0, 0xF7, 0x10, 0x00, 0xEB - .byte 0x10, 0x80, 0xBD, 0xE8, 0x98, 0x2B, 0x0B, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x48, 0x30, 0x9F, 0xE5 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x93, 0xE5, 0x00, 0xC0, 0xE0, 0xE3, 0x01, 0xE0, 0xA0, 0xE1 - .byte 0x02, 0x30, 0xA0, 0xE1, 0x0C, 0x00, 0x50, 0xE1, 0x66, 0xC6, 0xA0, 0xE3, 0x05, 0x00, 0x00, 0x0A - .byte 0x30, 0x00, 0x53, 0xE3, 0x03, 0x00, 0x00, 0x9A, 0x04, 0x10, 0xA0, 0xE1, 0x0E, 0x20, 0x8C, 0xE0 - .byte 0x4D, 0x0F, 0x00, 0xEB, 0x10, 0x80, 0xBD, 0xE8, 0x04, 0x00, 0xA0, 0xE1, 0x03, 0x20, 0xA0, 0xE1 - .byte 0x0E, 0x10, 0x8C, 0xE0, 0xE1, 0x10, 0x00, 0xEB, 0x10, 0x80, 0xBD, 0xE8, 0x98, 0x2B, 0x0B, 0x02 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1 - .byte 0x15, 0xFD, 0xFF, 0xEB, 0x40, 0x10, 0x9F, 0xE5, 0x00, 0xC0, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5 - .byte 0x00, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x06, 0x00, 0x00, 0x0A, 0x1C, 0x00, 0x54, 0xE3 - .byte 0x04, 0x00, 0x00, 0x9A, 0x06, 0x10, 0xA0, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0x05, 0x20, 0x8C, 0xE0 - .byte 0x51, 0x0F, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x06, 0x00, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1 - .byte 0x05, 0x10, 0x8C, 0xE0, 0xB5, 0x10, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x98, 0x2B, 0x0B, 0x02 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1 - .byte 0x05, 0xFD, 0xFF, 0xEB, 0x40, 0x10, 0x9F, 0xE5, 0x00, 0xC0, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5 - .byte 0x00, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x06, 0x00, 0x00, 0x0A, 0x1C, 0x00, 0x54, 0xE3 - .byte 0x04, 0x00, 0x00, 0x9A, 0x06, 0x10, 0xA0, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0x05, 0x20, 0x8C, 0xE0 - .byte 0x39, 0x0F, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x06, 0x00, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1 - .byte 0x05, 0x10, 0x8C, 0xE0, 0x9D, 0x10, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x98, 0x2B, 0x0B, 0x02 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1 - .byte 0xFA, 0xFC, 0xFF, 0xEB, 0x40, 0x10, 0x9F, 0xE5, 0x00, 0xC0, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5 - .byte 0x00, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x06, 0x00, 0x00, 0x0A, 0x1C, 0x00, 0x54, 0xE3 - .byte 0x04, 0x00, 0x00, 0x9A, 0x06, 0x10, 0xA0, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0x05, 0x20, 0x8C, 0xE0 - .byte 0x21, 0x0F, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x06, 0x00, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1 - .byte 0x05, 0x10, 0x8C, 0xE0, 0x85, 0x10, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x98, 0x2B, 0x0B, 0x02 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1 - .byte 0xEA, 0xFC, 0xFF, 0xEB, 0x40, 0x10, 0x9F, 0xE5, 0x00, 0xC0, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5 - .byte 0x00, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x06, 0x00, 0x00, 0x0A, 0x1C, 0x00, 0x54, 0xE3 - .byte 0x04, 0x00, 0x00, 0x9A, 0x06, 0x10, 0xA0, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0x05, 0x20, 0x8C, 0xE0 - .byte 0x09, 0x0F, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x06, 0x00, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1 - .byte 0x05, 0x10, 0x8C, 0xE0, 0x6D, 0x10, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x98, 0x2B, 0x0B, 0x02 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1 - .byte 0xF3, 0xFC, 0xFF, 0xEB, 0x40, 0x10, 0x9F, 0xE5, 0x00, 0xC0, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5 - .byte 0x00, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x06, 0x00, 0x00, 0x0A, 0x1C, 0x00, 0x54, 0xE3 - .byte 0x04, 0x00, 0x00, 0x9A, 0x06, 0x10, 0xA0, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0x05, 0x20, 0x8C, 0xE0 - .byte 0xF1, 0x0E, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x06, 0x00, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1 - .byte 0x05, 0x10, 0x8C, 0xE0, 0x55, 0x10, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x98, 0x2B, 0x0B, 0x02 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1 - .byte 0xFC, 0xFC, 0xFF, 0xEB, 0x40, 0x10, 0x9F, 0xE5, 0x00, 0xC0, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5 - .byte 0x00, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x06, 0x00, 0x00, 0x0A, 0x30, 0x00, 0x54, 0xE3 - .byte 0x04, 0x00, 0x00, 0x9A, 0x06, 0x10, 0xA0, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0x05, 0x20, 0x8C, 0xE0 - .byte 0xBD, 0x0E, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x06, 0x00, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1 - .byte 0x05, 0x10, 0x8C, 0xE0, 0x51, 0x10, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x98, 0x2B, 0x0B, 0x02 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1 - .byte 0xF1, 0xFC, 0xFF, 0xEB, 0x40, 0x10, 0x9F, 0xE5, 0x00, 0xC0, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5 - .byte 0x00, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x06, 0x00, 0x00, 0x0A, 0x30, 0x00, 0x54, 0xE3 - .byte 0x04, 0x00, 0x00, 0x9A, 0x06, 0x10, 0xA0, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0x05, 0x20, 0x8C, 0xE0 - .byte 0xA5, 0x0E, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x06, 0x00, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1 - .byte 0x05, 0x10, 0x8C, 0xE0, 0x39, 0x10, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x98, 0x2B, 0x0B, 0x02 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1 - .byte 0xE1, 0xFC, 0xFF, 0xEB, 0x40, 0x10, 0x9F, 0xE5, 0x00, 0xC0, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5 - .byte 0x00, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x06, 0x00, 0x00, 0x0A, 0x30, 0x00, 0x54, 0xE3 - .byte 0x04, 0x00, 0x00, 0x9A, 0x06, 0x10, 0xA0, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0x05, 0x20, 0x8C, 0xE0 - .byte 0x8D, 0x0E, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x06, 0x00, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1 - .byte 0x05, 0x10, 0x8C, 0xE0, 0x21, 0x10, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x98, 0x2B, 0x0B, 0x02 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1 - .byte 0xD6, 0xFC, 0xFF, 0xEB, 0x40, 0x10, 0x9F, 0xE5, 0x00, 0xC0, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5 - .byte 0x00, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x06, 0x00, 0x00, 0x0A, 0x30, 0x00, 0x54, 0xE3 - .byte 0x04, 0x00, 0x00, 0x9A, 0x06, 0x10, 0xA0, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0x05, 0x20, 0x8C, 0xE0 - .byte 0x75, 0x0E, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x06, 0x00, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1 - .byte 0x05, 0x10, 0x8C, 0xE0, 0x09, 0x10, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x98, 0x2B, 0x0B, 0x02 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1 - .byte 0xC6, 0xFC, 0xFF, 0xEB, 0x40, 0x10, 0x9F, 0xE5, 0x00, 0xC0, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5 - .byte 0x00, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x06, 0x00, 0x00, 0x0A, 0x30, 0x00, 0x54, 0xE3 - .byte 0x04, 0x00, 0x00, 0x9A, 0x06, 0x10, 0xA0, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0x05, 0x20, 0x8C, 0xE0 - .byte 0x5D, 0x0E, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x06, 0x00, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1 - .byte 0x05, 0x10, 0x8C, 0xE0, 0xF1, 0x0F, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x98, 0x2B, 0x0B, 0x02 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1 - .byte 0xC2, 0xFC, 0xFF, 0xEB, 0x40, 0x10, 0x9F, 0xE5, 0x00, 0xC0, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5 - .byte 0x00, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x06, 0x00, 0x00, 0x0A, 0x30, 0x00, 0x54, 0xE3 - .byte 0x04, 0x00, 0x00, 0x9A, 0x06, 0x10, 0xA0, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0x05, 0x20, 0x8C, 0xE0 - .byte 0x45, 0x0E, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x06, 0x00, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1 - .byte 0x05, 0x10, 0x8C, 0xE0, 0xD9, 0x0F, 0x00, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x98, 0x2B, 0x0B, 0x02 - - arm_func_start FUN_020783d0 -FUN_020783d0: @ 0x020783D0 - push {r3, lr} - bl FUN_020770fc - ldr r1, _02078460 @ =0x022B95A8 - cmp r0, #0x20 - str r0, [r1, #0x14] - bgt _02078404 - cmp r0, #0x20 - bge _02078448 - cmp r0, #0 - pople {r3, pc} - cmp r0, #0x10 - beq _02078420 - pop {r3, pc} -_02078404: - cmp r0, #0x40 - bgt _02078414 - beq _02078434 - pop {r3, pc} -_02078414: - cmp r0, #0x60 - beq _02078448 - pop {r3, pc} -_02078420: - ldr r2, _02078464 @ =0x06880000 - mov r0, #0 - str r2, [r1, #0x10] - str r0, [r1, #0xc] - pop {r3, pc} -_02078434: - ldr r2, _02078468 @ =0x06894000 - mov r0, #0x4000 - str r2, [r1, #0x10] - str r0, [r1, #0xc] - pop {r3, pc} -_02078448: - ldr r2, _0207846C @ =0x06890000 - ldr r0, _02078460 @ =0x022B95A8 - mov r1, #0 - str r2, [r0, #0x10] - str r1, [r0, #0xc] - pop {r3, pc} - .align 2, 0 -_02078460: .4byte 0x022B95A8 -_02078464: .4byte 0x06880000 -_02078468: .4byte 0x06894000 -_0207846C: .4byte 0x06890000 - arm_func_end FUN_020783d0 - - arm_func_start FUN_02078470 -FUN_02078470: @ 0x02078470 - push {r3, lr} - ldr r0, _020784B0 @ =0x020B2B98 - mvn r1, #0 - ldr r0, [r0] - cmp r0, r1 - beq _0207848C - bl FUN_0207c0fc -_0207848C: - ldr r0, _020784B4 @ =0x022B95A8 - ldr r0, [r0, #0x14] - bl FUN_02076844 - ldr r0, _020784B4 @ =0x022B95A8 - mov r1, #0 - str r1, [r0, #0x14] - str r1, [r0, #0x10] - str r1, [r0, #0xc] - pop {r3, pc} - .align 2, 0 -_020784B0: .4byte 0x020B2B98 -_020784B4: .4byte 0x022B95A8 - arm_func_end FUN_02078470 - - arm_func_start FUN_020784b8 -FUN_020784b8: @ 0x020784B8 - push {r3, lr} - bl FUN_02077120 - ldr r1, _020784F4 @ =0x022B95A8 - cmp r0, #0 - str r0, [r1, #8] - popeq {r3, pc} - cmp r0, #0x20 - beq _020784E8 - cmp r0, #0x40 - ldreq r0, _020784F8 @ =0x06894000 - streq r0, [r1, #4] - pop {r3, pc} -_020784E8: - ldr r0, _020784FC @ =0x06890000 - str r0, [r1, #4] - pop {r3, pc} - .align 2, 0 -_020784F4: .4byte 0x022B95A8 -_020784F8: .4byte 0x06894000 -_020784FC: .4byte 0x06890000 - arm_func_end FUN_020784b8 - - arm_func_start FUN_02078500 -FUN_02078500: @ 0x02078500 - push {r3, lr} - ldr r0, _0207853C @ =0x020B2B98 - mvn r1, #0 - ldr r0, [r0] - cmp r0, r1 - beq _0207851C - bl FUN_0207c0fc -_0207851C: - ldr r0, _02078540 @ =0x022B95A8 - ldr r0, [r0, #8] - bl FUN_02076944 - ldr r0, _02078540 @ =0x022B95A8 - mov r1, #0 - str r1, [r0, #8] - str r1, [r0, #4] - pop {r3, pc} - .align 2, 0 -_0207853C: .4byte 0x020B2B98 -_02078540: .4byte 0x022B95A8 - arm_func_end FUN_02078500 - - arm_func_start FUN_02078544 -FUN_02078544: @ 0x02078544 - push {r3, lr} - bl FUN_0207716c - ldr r1, _02078558 @ =0x022B95A8 - str r0, [r1] - pop {r3, pc} - .align 2, 0 -_02078558: .4byte 0x022B95A8 - arm_func_end FUN_02078544 - - arm_func_start FUN_0207855c -FUN_0207855c: @ 0x0207855C - push {r3, lr} - ldr r0, _02078594 @ =0x020B2B98 - mvn r1, #0 - ldr r0, [r0] - cmp r0, r1 - beq _02078578 - bl FUN_0207c0fc -_02078578: - ldr r0, _02078598 @ =0x022B95A8 - ldr r0, [r0] - bl FUN_02076fc8 - ldr r0, _02078598 @ =0x022B95A8 - mov r1, #0 - str r1, [r0] - pop {r3, pc} - .align 2, 0 -_02078594: .4byte 0x020B2B98 -_02078598: .4byte 0x022B95A8 - arm_func_end FUN_0207855c - - arm_func_start FUN_0207859c -FUN_0207859c: @ 0x0207859C - push {r3, lr} - bl FUN_02077194 - ldr r1, _020785B0 @ =0x022B95A8 - str r0, [r1, #0x18] - pop {r3, pc} - .align 2, 0 -_020785B0: .4byte 0x022B95A8 - arm_func_end FUN_0207859c - - arm_func_start FUN_020785b4 -FUN_020785b4: @ 0x020785B4 - push {r3, lr} - ldr r0, _020785EC @ =0x020B2B98 - mvn r1, #0 - ldr r0, [r0] - cmp r0, r1 - beq _020785D0 - bl FUN_0207c0fc -_020785D0: - ldr r0, _020785F0 @ =0x022B95A8 - ldr r0, [r0, #0x18] - bl FUN_02077048 - ldr r0, _020785F0 @ =0x022B95A8 - mov r1, #0 - str r1, [r0, #0x18] - pop {r3, pc} - .align 2, 0 -_020785EC: .4byte 0x020B2B98 -_020785F0: .4byte 0x022B95A8 - arm_func_end FUN_020785b4 - - arm_func_start FUN_020785f4 -FUN_020785f4: @ 0x020785F4 - push {r3, lr} - bl FUN_02077144 - mov r1, #6 - mul lr, r0, r1 - ldr r2, _02078640 @ =0x020AE0C4 - ldr r1, _02078644 @ =0x020AE0C6 - ldrh ip, [r2, lr] - ldr r2, _02078648 @ =0x020AE0C8 - ldrh r3, [r1, lr] - ldr r1, _0207864C @ =0x022B95C4 - ldrh r2, [r2, lr] - str r0, [r1, #0x14] - lsl r0, ip, #0xc - str r0, [r1, #4] - lsl r0, r3, #0xc - str r0, [r1, #0x18] - lsl r0, r2, #0xc - str r0, [r1, #0x1c] - pop {r3, pc} - .align 2, 0 -_02078640: .4byte 0x020AE0C4 -_02078644: .4byte 0x020AE0C6 -_02078648: .4byte 0x020AE0C8 -_0207864C: .4byte 0x022B95C4 - arm_func_end FUN_020785f4 - - arm_func_start FUN_02078650 -FUN_02078650: @ 0x02078650 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #8 - ldr r3, _02078788 @ =0x022B95C4 - mov r7, r0 - ldr r4, [r3, #0x18] - mov ip, r1 - cmp r4, #0 - ldreq r0, [r3, #4] - mov r6, r2 - addeq r2, r0, ip - beq _0207873C - ldr r2, [r3, #0x1c] - add r0, ip, r6 - cmp r0, r2 - ldrlo r0, [r3, #4] - addlo r2, r0, ip - blo _0207873C - cmp ip, r2 - addhs r0, r4, ip - subhs r2, r0, r2 - bhs _0207873C - ldr r0, _0207878C @ =0x020B2B98 - mvn r1, #0 - ldr r0, [r0] - sub r5, r2, ip - cmp r0, r1 - ldr lr, [r3, #4] - beq _020786DC - cmp r5, #0x30 - bls _020786DC - mov r1, r7 - mov r3, r5 - add r2, lr, ip - bl FUN_0207bccc - b _020786EC -_020786DC: - mov r0, r7 - mov r2, r5 - add r1, lr, ip - bl FUN_0207c330 -_020786EC: - ldr r0, _0207878C @ =0x020B2B98 - mvn r1, #0 - ldr r0, [r0] - cmp r0, r1 - beq _02078724 - mov ip, #0 - str ip, [sp] - mov r2, r4 - add r1, r7, r5 - sub r3, r6, r5 - str ip, [sp, #4] - bl FUN_0207be6c - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, pc} -_02078724: - mov r1, r4 - add r0, r7, r5 - sub r2, r6, r5 - bl FUN_0207c330 - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, pc} -_0207873C: - ldr r0, _0207878C @ =0x020B2B98 - mvn r1, #0 - ldr r0, [r0] - cmp r0, r1 - beq _02078770 - mov r4, #0 - str r4, [sp] - mov r1, r7 - mov r3, r6 - str r4, [sp, #4] - bl FUN_0207be6c - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, pc} -_02078770: - mov r1, r2 - mov r0, r7 - mov r2, r6 - bl FUN_0207c330 - add sp, sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02078788: .4byte 0x022B95C4 -_0207878C: .4byte 0x020B2B98 - arm_func_end FUN_02078650 - - arm_func_start FUN_02078790 -FUN_02078790: @ 0x02078790 - push {r3, lr} - ldr r0, _020787D4 @ =0x020B2B98 - mvn r1, #0 - ldr r0, [r0] - cmp r0, r1 - beq _020787AC - bl FUN_0207c0fc -_020787AC: - ldr r0, _020787D8 @ =0x022B95C4 - ldr r0, [r0, #0x14] - bl FUN_020769f0 - ldr r0, _020787D8 @ =0x022B95C4 - mov r1, #0 - str r1, [r0, #0x1c] - str r1, [r0, #0x18] - str r1, [r0, #4] - str r1, [r0, #0x14] - pop {r3, pc} - .align 2, 0 -_020787D4: .4byte 0x020B2B98 -_020787D8: .4byte 0x022B95C4 - arm_func_end FUN_02078790 - - arm_func_start FUN_020787dc -FUN_020787dc: @ 0x020787DC - push {r3, lr} - bl FUN_02077158 - asr r3, r0, #4 - ldr r1, _02078808 @ =0x022B95C4 - ldr r2, _0207880C @ =0x020AE0B4 - lsl r3, r3, #1 - ldrh r2, [r2, r3] - str r0, [r1, #0xc] - lsl r0, r2, #0xc - str r0, [r1, #8] - pop {r3, pc} - .align 2, 0 -_02078808: .4byte 0x022B95C4 -_0207880C: .4byte 0x020AE0B4 - arm_func_end FUN_020787dc - - arm_func_start FUN_02078810 -FUN_02078810: @ 0x02078810 - push {r4, r5, r6, lr} - sub sp, sp, #8 - ldr r3, _02078874 @ =0x020B2B98 - ldr lr, _02078878 @ =0x022B95C4 - ldr r4, [r3] - mvn ip, #0 - mov r6, r0 - mov r5, r1 - mov r3, r2 - cmp r4, ip - ldr lr, [lr, #8] - beq _02078864 - mov ip, #0 - str ip, [sp] - mov r0, r4 - mov r1, r6 - add r2, lr, r5 - str ip, [sp, #4] - bl FUN_0207be6c - add sp, sp, #8 - pop {r4, r5, r6, pc} -_02078864: - add r1, lr, r5 - bl FUN_0207c330 - add sp, sp, #8 - pop {r4, r5, r6, pc} - .align 2, 0 -_02078874: .4byte 0x020B2B98 -_02078878: .4byte 0x022B95C4 - arm_func_end FUN_02078810 - - arm_func_start FUN_0207887c -FUN_0207887c: @ 0x0207887C - push {r3, lr} - ldr r0, _020788B8 @ =0x020B2B98 - mvn r1, #0 - ldr r0, [r0] - cmp r0, r1 - beq _02078898 - bl FUN_0207c0fc -_02078898: - ldr r0, _020788BC @ =0x022B95C4 - ldr r0, [r0, #0xc] - bl FUN_02076bc8 - ldr r0, _020788BC @ =0x022B95C4 - mov r1, #0 - str r1, [r0, #0xc] - str r1, [r0, #8] - pop {r3, pc} - .align 2, 0 -_020788B8: .4byte 0x020B2B98 -_020788BC: .4byte 0x022B95C4 - arm_func_end FUN_0207887c - - arm_func_start FUN_020788C0 -FUN_020788C0: @ 0x020788C0 - ldm r0!, {r2, r3, ip} - stm r1, {r2, r3, ip} - ldm r0!, {r2, r3, ip} - stm r1, {r2, r3, ip} - ldm r0!, {r2, r3, ip} - stm r1, {r2, r3, ip} - ldm r0!, {r2, r3, ip} - stm r1, {r2, r3, ip} - bx lr - arm_func_end FUN_020788C0 - - arm_func_start FUN_020788E4 -FUN_020788E4: @ 0x020788E4 - push {r4, r5, r6, r7, r8} - ldm r0!, {r2, r3, r4, r5, r6, r7, r8, ip} - stm r1, {r2, r3, r4, r5, r6, r7, r8, ip} - ldm r0!, {r2, r3, r4, r5, r6, r7, r8, ip} - stm r1, {r2, r3, r4, r5, r6, r7, r8, ip} - pop {r4, r5, r6, r7, r8} - bx lr - arm_func_end FUN_020788E4 - - arm_func_start FUN_02078900 -FUN_02078900: @ 0x02078900 - push {r4, r5, r6, lr} - mov r5, r0 - mov r4, r1 - bl EnableIrqFlag - cmp r5, #0 - beq _02078930 - ldr r1, _0207896C @ =0x027E0000 - mvn r2, r4 - add r1, r1, #0x3000 - ldr r3, [r1, #0xff8] - and r2, r3, r2 - str r2, [r1, #0xff8] -_02078930: - bl SetIrqFlag - ldr r1, _0207896C @ =0x027E0000 - add r0, r1, #0x3000 - ldr r0, [r0, #0xff8] - tst r4, r0 - popne {r4, r5, r6, pc} - add r0, r1, #0x3f8 - ldr r5, _02078970 @ =0x027E0060 - add r6, r0, #0x3c00 -_02078954: - mov r0, r5 - bl FUN_02079888 - ldr r0, [r6] - tst r4, r0 - beq _02078954 - pop {r4, r5, r6, pc} - .align 2, 0 -_0207896C: .4byte 0x027E0000 -_02078970: .4byte 0x027E0060 - arm_func_end FUN_02078900 -_02078974: - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x38, 0x40, 0x2D, 0xE9, 0x0C, 0x10, 0xA0, 0xE3 - .byte 0x90, 0x01, 0x05, 0xE0, 0x60, 0x20, 0x9F, 0xE5, 0x60, 0x30, 0x9F, 0xE5, 0x80, 0x40, 0xA0, 0xE1 - .byte 0x05, 0x10, 0x92, 0xE7, 0x00, 0x00, 0xA0, 0xE3, 0xB4, 0x30, 0x93, 0xE1, 0x01, 0x40, 0xA0, 0xE3 - .byte 0x05, 0x00, 0x82, 0xE7, 0x00, 0x00, 0x51, 0xE3, 0x14, 0x43, 0xA0, 0xE1, 0x02, 0x00, 0x00, 0x0A - .byte 0x3C, 0x00, 0x9F, 0xE5, 0x05, 0x00, 0x90, 0xE7, 0x31, 0xFF, 0x2F, 0xE1, 0x34, 0x00, 0x9F, 0xE5 - .byte 0x34, 0x10, 0x9F, 0xE5, 0x03, 0x0A, 0x80, 0xE2, 0xF8, 0x2F, 0x90, 0xE5, 0x05, 0x10, 0x91, 0xE7 - .byte 0x04, 0x20, 0x82, 0xE1, 0xF8, 0x2F, 0x80, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x38, 0x80, 0xBD, 0x18 - .byte 0x04, 0x00, 0xA0, 0xE1, 0xAB, 0x00, 0x00, 0xEB, 0x38, 0x80, 0xBD, 0xE8, 0xE4, 0x95, 0x2B, 0x02 - .byte 0x9C, 0x2B, 0x0B, 0x02, 0xEC, 0x95, 0x2B, 0x02, 0x00, 0x00, 0x7E, 0x02, 0xE8, 0x95, 0x2B, 0x02 - .byte 0x04, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x78, 0x89, 0x07, 0x02 - .byte 0x04, 0xC0, 0x9F, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x78, 0x89, 0x07, 0x02 - .byte 0x04, 0xC0, 0x9F, 0xE5, 0x02, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x78, 0x89, 0x07, 0x02 - .byte 0x04, 0xC0, 0x9F, 0xE5, 0x03, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x78, 0x89, 0x07, 0x02 - .byte 0x04, 0xC0, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x78, 0x89, 0x07, 0x02 - .byte 0x04, 0xC0, 0x9F, 0xE5, 0x05, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x78, 0x89, 0x07, 0x02 - .byte 0x04, 0xC0, 0x9F, 0xE5, 0x06, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x78, 0x89, 0x07, 0x02 - .byte 0x04, 0xC0, 0x9F, 0xE5, 0x07, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x78, 0x89, 0x07, 0x02 - - arm_func_start FUN_02078a80 -FUN_02078a80: @ 0x02078A80 - ldr r0, _02078A94 @ =0x027E0060 - mov r1, #0 - str r1, [r0, #4] - str r1, [r0] - bx lr - .align 2, 0 -_02078A94: .4byte 0x027E0060 - arm_func_end FUN_02078a80 - - arm_func_start FUN_02078a98 -FUN_02078a98: @ 0x02078A98 - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov r8, #0 - mov r2, #0xc - ldr r4, _02078B18 @ =0x027E0000 - ldr r6, _02078B1C @ =0x022B95E4 - mov r7, r8 - mov lr, r8 - mov ip, #1 - mov r3, r2 -_02078ABC: - tst r0, #1 - beq _02078B04 - mov sb, r7 - cmp r8, #8 - blt _02078AE0 - cmp r8, #0xb - suble r5, r8, #8 - mlale sb, r5, r3, r6 - ble _02078AFC -_02078AE0: - cmp r8, #3 - blt _02078AF8 - cmp r8, #6 - addle r5, r8, #1 - mlale sb, r5, r2, r6 - ble _02078AFC -_02078AF8: - str r1, [r4, r8, lsl #2] -_02078AFC: - cmp sb, #0 - stmne sb, {r1, ip, lr} -_02078B04: - add r8, r8, #1 - cmp r8, #0x16 - lsr r0, r0, #1 - blt _02078ABC - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_02078B18: .4byte 0x027E0000 -_02078B1C: .4byte 0x022B95E4 - arm_func_end FUN_02078a98 -_02078B20: - .byte 0x7C, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x01, 0x00, 0x10, 0xE3, 0x15, 0x00, 0x00, 0x0A - .byte 0x08, 0x00, 0x51, 0xE3, 0x07, 0x00, 0x00, 0xBA, 0x0B, 0x00, 0x51, 0xE3, 0x05, 0x00, 0x00, 0xCA - .byte 0x08, 0x10, 0x41, 0xE2, 0x0C, 0x00, 0xA0, 0xE3, 0x91, 0x00, 0x02, 0xE0, 0x54, 0x00, 0x9F, 0xE5 - .byte 0x02, 0x00, 0x90, 0xE7, 0x1E, 0xFF, 0x2F, 0xE1, 0x03, 0x00, 0x51, 0xE3, 0x07, 0x00, 0x00, 0xBA - .byte 0x06, 0x00, 0x51, 0xE3, 0x05, 0x00, 0x00, 0xCA, 0x01, 0x10, 0x81, 0xE2, 0x0C, 0x00, 0xA0, 0xE3 - .byte 0x91, 0x00, 0x02, 0xE0, 0x2C, 0x00, 0x9F, 0xE5, 0x02, 0x00, 0x90, 0xE7, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x00, 0x92, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x10, 0x81, 0xE2, 0x16, 0x00, 0x51, 0xE3 - .byte 0xA0, 0x00, 0xA0, 0xE1, 0x04, 0x20, 0x82, 0xE2, 0xE2, 0xFF, 0xFF, 0xBA, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x7E, 0x02, 0xE4, 0x95, 0x2B, 0x02 - - arm_func_start FUN_02078bac -FUN_02078bac: @ 0x02078BAC - push {r4, r5, r6, lr} - mov r3, #0xc - mul r6, r0, r3 - ldr ip, _02078BE8 @ =0x022B95E4 - add r4, r0, #8 - mov r5, #1 - lsl r0, r5, r4 - ldr r3, _02078BEC @ =0x022B95EC - str r1, [ip, r6] - str r2, [r3, r6] - bl FUN_02078c68 - and r1, r0, r5, lsl r4 - ldr r0, _02078BF0 @ =0x022B95E8 - str r1, [r0, r6] - pop {r4, r5, r6, pc} - .align 2, 0 -_02078BE8: .4byte 0x022B95E4 -_02078BEC: .4byte 0x022B95EC -_02078BF0: .4byte 0x022B95E8 - arm_func_end FUN_02078bac - - arm_func_start FUN_02078bf4 -FUN_02078bf4: @ 0x02078BF4 - push {r4, lr} - mov r3, #0xc - mul r4, r0, r3 - ldr ip, _02078C30 @ =0x022B9614 - add r0, r0, #3 - mov r3, #1 - lsl r0, r3, r0 - ldr r3, _02078C34 @ =0x022B961C - str r1, [ip, r4] - str r2, [r3, r4] - bl FUN_02078c68 - ldr r0, _02078C38 @ =0x022B9618 - mov r1, #1 - str r1, [r0, r4] - pop {r4, pc} - .align 2, 0 -_02078C30: .4byte 0x022B9614 -_02078C34: .4byte 0x022B961C -_02078C38: .4byte 0x022B9618 - arm_func_end FUN_02078bf4 - - arm_func_start FUN_02078c3c -FUN_02078c3c: @ 0x02078C3C - ldr r3, _02078C64 @ =0x04000208 - mov r1, #0 - ldrh r2, [r3] - strh r1, [r3] - ldr r1, [r3, #8] - str r0, [r3, #8] - ldrh r0, [r3] - mov r0, r1 - strh r2, [r3] - bx lr - .align 2, 0 -_02078C64: .4byte 0x04000208 - arm_func_end FUN_02078c3c - - arm_func_start FUN_02078c68 -FUN_02078c68: @ 0x02078C68 - ldr r3, _02078C94 @ =0x04000208 - mov r1, #0 - ldrh r2, [r3] - strh r1, [r3] - ldr r1, [r3, #8] - orr r0, r1, r0 - str r0, [r3, #8] - ldrh r0, [r3] - mov r0, r1 - strh r2, [r3] - bx lr - .align 2, 0 -_02078C94: .4byte 0x04000208 - arm_func_end FUN_02078c68 - - arm_func_start FUN_02078c98 -FUN_02078c98: @ 0x02078C98 - ldr ip, _02078CC4 @ =0x04000208 - mov r2, #0 - ldrh r3, [ip] - mvn r1, r0 - strh r2, [ip] - ldr r0, [ip, #8] - and r1, r0, r1 - str r1, [ip, #8] - ldrh r1, [ip] - strh r3, [ip] - bx lr - .align 2, 0 -_02078CC4: .4byte 0x04000208 - arm_func_end FUN_02078c98 - - arm_func_start FUN_02078cc8 -FUN_02078cc8: @ 0x02078CC8 - ldr r3, _02078CF0 @ =0x04000208 - mov r1, #0 - ldrh r2, [r3] - strh r1, [r3] - ldr r1, [r3, #0xc] - str r0, [r3, #0xc] - ldrh r0, [r3] - mov r0, r1 - strh r2, [r3] - bx lr - .align 2, 0 -_02078CF0: .4byte 0x04000208 - arm_func_end FUN_02078cc8 - - arm_func_start FUN_02078cf4 -FUN_02078cf4: @ 0x02078CF4 - ldr ip, _02078D18 @ =0x027E0000 - ldr r3, _02078D1C @ =0xFDDB597D - add r0, ip, #0x3000 - ldr r2, _02078D20 @ =0x7BF9DD5B - ldr r1, _02078D24 @ =0x00000800 - str r3, [r0, #0xf7c] - add r0, ip, #0x3f80 - str r2, [r0, -r1] - bx lr - .align 2, 0 -_02078D18: .4byte 0x027E0000 -_02078D1C: .4byte 0xFDDB597D -_02078D20: .4byte 0x7BF9DD5B -_02078D24: .4byte 0x00000800 - arm_func_end FUN_02078cf4 - - arm_func_start FUN_02078d28 -FUN_02078d28: @ 0x02078D28 + arm_func_start ov00_022D1310 +ov00_022D1310: @ 0x022D1310 push {r3, r4, r5, lr} - ldr r3, _02078DE4 @ =0x022B9644 - ldr r0, [r3] - cmp r0, #0 - popne {r3, r4, r5, pc} - ldr r1, _02078DE8 @ =0x027FFFF0 - mov r4, #1 - mov r2, #0 - mov r0, #0x7e - str r4, [r3] - str r2, [r1] - bl FUN_02078e40 - ldr r5, _02078DE8 @ =0x027FFFF0 - ldrh r0, [r5, #6] - cmp r0, #0 - beq _02078D80 - mov r4, #0x400 -_02078D6C: - mov r0, r4 - blx FUN_02000088 - ldrh r0, [r5, #6] - cmp r0, #0 - bne _02078D6C -_02078D80: - ldr ip, _02078DEC @ =0x027FFFB0 - mvn r0, #0 - str r0, [ip] - lsl r3, r0, #0x10 - add r1, ip, #0x10 - mov r0, #0 + sub sp, sp, #0x28 + mov r5, r0 + ldrb r0, [r5, #0x454] + mov r4, r1 + teq r0, r2 + mov r2, #4 + beq _022D1340 + ldr r1, _022D13E4 @ =0x02318924 + add r0, r5, #0x2ec + bl ov00_022D39D0 + b _022D134C +_022D1340: + ldr r1, _022D13E8 @ =0x0231892C + add r0, r5, #0x2ec + bl ov00_022D39D0 +_022D134C: + mov r1, r5 + add r0, r5, #0x2ec + mov r2, #0x30 + bl ov00_022D39D0 + add r0, sp, #0 + mov r1, #0x36 mov r2, #0x28 - str r3, [ip, #4] - bl FUN_0207c314 - ldr ip, _02078DF0 @ =0x04000204 - ldr r1, _02078DE8 @ =0x027FFFF0 - ldrh r3, [ip] - mov r0, #0x7e - mov r2, #0 - orr r3, r3, #0x800 - strh r3, [ip] - ldrh r3, [ip] - orr r3, r3, #0x80 - strh r3, [ip] - bl FUN_02078ec4 - ldr r1, _02078DE8 @ =0x027FFFF0 - mov r0, #0x7f - mov r2, #0 - bl FUN_02078e40 - pop {r3, r4, r5, pc} - .align 2, 0 -_02078DE4: .4byte 0x022B9644 -_02078DE8: .4byte 0x027FFFF0 -_02078DEC: .4byte 0x027FFFB0 -_02078DF0: .4byte 0x04000204 - arm_func_end FUN_02078d28 - - arm_func_start FUN_02078DF4 -FUN_02078DF4: @ 0x02078DF4 - push {r4, r5, r6, r7, r8, lr} - mov r8, r0 - mov r7, r1 - mov r6, r2 - mov r5, r3 - bl FUN_02078ed4 - cmp r0, #0 - pople {r4, r5, r6, r7, r8, pc} - mov r4, #0x400 -_02078E18: - mov r0, r4 - blx FUN_02000088 - mov r0, r8 - mov r1, r7 - mov r2, r6 - mov r3, r5 - bl FUN_02078ed4 - cmp r0, #0 - bgt _02078E18 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_02078DF4 - - arm_func_start FUN_02078e40 -FUN_02078e40: @ 0x02078E40 - ldr ip, _02078E4C @ =FUN_02078DF4 - mov r3, #0 - bx ip - .align 2, 0 -_02078E4C: .4byte FUN_02078DF4 - arm_func_end FUN_02078e40 - - arm_func_start FUN_02078E50 -FUN_02078E50: @ 0x02078E50 - push {r3, r4, r5, r6, r7, lr} - mov r7, r1 - ldrh r1, [r7, #4] - mov r6, r2 - mov r5, r3 - cmp r0, r1 - mvnne r0, #1 - popne {r3, r4, r5, r6, r7, pc} - cmp r5, #0 - beq _02078E80 - bl EnableIrqFiqFlags - b _02078E84 -_02078E80: - bl EnableIrqFlag -_02078E84: - mov r4, r0 - mov r0, #0 - strh r0, [r7, #4] - cmp r6, #0 - beq _02078E9C - blx r6 -_02078E9C: - mov r0, #0 - str r0, [r7] - cmp r5, #0 - mov r0, r4 - beq _02078EB8 - bl SetIrqFiqFlags - b _02078EBC -_02078EB8: - bl SetIrqFlag -_02078EBC: - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_02078E50 - - arm_func_start FUN_02078ec4 -FUN_02078ec4: @ 0x02078EC4 - ldr ip, _02078ED0 @ =FUN_02078E50 - mov r3, #0 - bx ip - .align 2, 0 -_02078ED0: .4byte FUN_02078E50 - arm_func_end FUN_02078ec4 - - arm_func_start FUN_02078ed4 -FUN_02078ed4: @ 0x02078ED4 - push {r3, r4, r5, r6, r7, r8, sb, lr} - movs r6, r3 - mov sb, r0 - mov r8, r1 - mov r7, r2 - beq _02078EF4 - bl EnableIrqFiqFlags - b _02078EF8 -_02078EF4: - bl EnableIrqFlag -_02078EF8: - mov r5, r0 - mov r0, sb - mov r1, r8 - bl FUN_0207c648 - movs r4, r0 - bne _02078F20 - cmp r7, #0 - beq _02078F1C - blx r7 -_02078F1C: - strh sb, [r8, #4] -_02078F20: - cmp r6, #0 - mov r0, r5 - beq _02078F34 - bl SetIrqFiqFlags - b _02078F38 -_02078F34: - bl SetIrqFlag -_02078F38: - mov r0, r4 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_02078ed4 - - arm_func_start FUN_02078f40 -FUN_02078f40: @ 0x02078F40 - ldr ip, _02078F54 @ =FUN_02078E50 - ldr r1, _02078F58 @ =0x027FFFE8 - ldr r2, _02078F5C @ =FUN_02078fa4 - mov r3, #1 - bx ip - .align 2, 0 -_02078F54: .4byte FUN_02078E50 -_02078F58: .4byte 0x027FFFE8 -_02078F5C: .4byte FUN_02078fa4 - arm_func_end FUN_02078f40 - - arm_func_start thunk_FUN_02078f40 -thunk_FUN_02078f40: @ 0x02078F60 - ldr r1, _02078F68 @ =FUN_02078f40 - bx r1 - .align 2, 0 -_02078F68: .4byte FUN_02078f40 - arm_func_end thunk_FUN_02078f40 - - arm_func_start FUN_02078f6c -FUN_02078f6c: @ 0x02078F6C - ldr ip, _02078F80 @ =FUN_02078ed4 - ldr r1, _02078F84 @ =0x027FFFE8 - ldr r2, _02078F88 @ =FUN_02078f8c - mov r3, #1 - bx ip - .align 2, 0 -_02078F80: .4byte FUN_02078ed4 -_02078F84: .4byte 0x027FFFE8 -_02078F88: .4byte FUN_02078f8c - arm_func_end FUN_02078f6c - - arm_func_start FUN_02078f8c -FUN_02078f8c: @ 0x02078F8C - ldr r1, _02078FA0 @ =0x04000204 - ldrh r0, [r1] - bic r0, r0, #0x80 - strh r0, [r1] - bx lr - .align 2, 0 -_02078FA0: .4byte 0x04000204 - arm_func_end FUN_02078f8c - - arm_func_start FUN_02078fa4 -FUN_02078fa4: @ 0x02078FA4 - ldr r1, _02078FB8 @ =0x04000204 - ldrh r0, [r1] - orr r0, r0, #0x80 - strh r0, [r1] - bx lr - .align 2, 0 -_02078FB8: .4byte 0x04000204 - arm_func_end FUN_02078fa4 - - arm_func_start FUN_02078fbc -FUN_02078fbc: @ 0x02078FBC - ldr ip, _02078FCC @ =FUN_02078e40 - ldr r1, _02078FD0 @ =0x027FFFE0 - ldr r2, _02078FD4 @ =0x02078FF4 - bx ip - .align 2, 0 -_02078FCC: .4byte FUN_02078e40 -_02078FD0: .4byte 0x027FFFE0 -_02078FD4: .4byte 0x02078FF4 - arm_func_end FUN_02078fbc - - arm_func_start FUN_02078fd8 -FUN_02078fd8: @ 0x02078FD8 - ldr ip, _02078FE8 @ =FUN_02078ec4 - ldr r1, _02078FEC @ =0x027FFFE0 - ldr r2, _02078FF0 @ =FUN_0207900c - bx ip - .align 2, 0 -_02078FE8: .4byte FUN_02078ec4 -_02078FEC: .4byte 0x027FFFE0 -_02078FF0: .4byte FUN_0207900c - arm_func_end FUN_02078fd8 -_02078FF4: - .byte 0x0C, 0x10, 0x9F, 0xE5, 0xB0, 0x00, 0xD1, 0xE1, 0x02, 0x0B, 0xC0, 0xE3 - .byte 0xB0, 0x00, 0xC1, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x02, 0x00, 0x04 - - arm_func_start FUN_0207900c -FUN_0207900c: @ 0x0207900C - ldr r1, _02079020 @ =0x04000204 - ldrh r0, [r1] - orr r0, r0, #0x800 - strh r0, [r1] - bx lr - .align 2, 0 -_02079020: .4byte 0x04000204 - arm_func_end FUN_0207900c - - arm_func_start FUN_02079024 -FUN_02079024: @ 0x02079024 - ldrh r0, [r0, #4] - bx lr - arm_func_end FUN_02079024 - - arm_func_start FUN_0207902c -FUN_0207902c: @ 0x0207902C - ldr r3, _0207908C @ =0x027FFFB0 - ldr r1, [r3] - clz r2, r1 - cmp r2, #0x20 - bne _02079044 - b _02079048 -_02079044: - mov r0, #0x40 -_02079048: - bne _02079070 - add r3, r3, #4 - ldr r1, [r3] - clz r2, r1 - cmp r2, #0x20 - ldr r0, _02079090 @ =0xFFFFFFFD - beq _02079068 - b _0207906C -_02079068: - bx lr -_0207906C: - mov r0, #0x60 -_02079070: - add r0, r0, r2 - mov r1, #0x80000000 - lsr r1, r1, r2 - ldr r2, [r3] - bic r2, r2, r1 - str r2, [r3] - bx lr - .align 2, 0 -_0207908C: .4byte 0x027FFFB0 -_02079090: .4byte 0xFFFFFFFD - arm_func_end FUN_0207902c - - arm_func_start FUN_02079094 -FUN_02079094: @ 0x02079094 - ldr r3, _020790D8 @ =0x027FFFB0 - cmp r0, #0x60 - bpl _020790A4 - b _020790A8 -_020790A4: - add r3, r3, #4 -_020790A8: - bpl _020790B0 - b _020790B4 -_020790B0: - sub r0, r0, #0x60 -_020790B4: - bmi _020790BC - b _020790C0 -_020790BC: - sub r0, r0, #0x40 -_020790C0: - mov r1, #0x80000000 - lsr r1, r1, r0 - ldr r2, [r3] - orr r2, r2, r1 - str r2, [r3] - bx lr - .align 2, 0 -_020790D8: .4byte 0x027FFFB0 - arm_func_end FUN_02079094 -_020790DC: - .byte 0x0F, 0x00, 0x2D, 0xE9 - .byte 0x08, 0x40, 0x2D, 0xE9, 0x0C, 0x20, 0x8D, 0xE2, 0x03, 0x20, 0xC2, 0xE3, 0x0C, 0x10, 0x9D, 0xE5 - .byte 0x04, 0x20, 0x82, 0xE2, 0x02, 0x00, 0x00, 0xEB, 0x08, 0x40, 0xBD, 0xE8, 0x10, 0xD0, 0x8D, 0xE2 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x0C, 0xC0, 0x9F, 0xE5, 0x02, 0x30, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE1 - .byte 0x02, 0x11, 0xE0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x44, 0x91, 0x07, 0x02, 0x0F, 0x00, 0x2D, 0xE9 - .byte 0x08, 0x40, 0x2D, 0xE9, 0x10, 0x30, 0x8D, 0xE2, 0x03, 0x30, 0xC3, 0xE3, 0x10, 0x20, 0x9D, 0xE5 - .byte 0x04, 0x30, 0x83, 0xE2, 0x02, 0x00, 0x00, 0xEB, 0x08, 0x40, 0xBD, 0xE8, 0x10, 0xD0, 0x8D, 0xE2 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0xD4, 0x5B, 0x08, 0x02 - - arm_func_start FUN_02079150 -FUN_02079150: @ 0x02079150 - ldr r1, _02079164 @ =0x022B9648 - ldr r0, [r1, #0x20] - add r0, r0, #1 - str r0, [r1, #0x20] - bx lr - .align 2, 0 -_02079164: .4byte 0x022B9648 - arm_func_end FUN_02079150 - - arm_func_start FUN_02079168 -FUN_02079168: @ 0x02079168 - ldr ip, [r0] - b _0207917C -_02079170: - cmp ip, r1 - bxeq lr - ldr ip, [ip, #0x80] -_0207917C: - cmp ip, #0 - beq _02079194 - ldr r3, [ip, #0x70] - ldr r2, [r1, #0x70] - cmp r3, r2 - bls _02079170 -_02079194: - cmp ip, #0 - bne _020791C0 - ldr r2, [r0, #4] - cmp r2, #0 - streq r1, [r0] - strne r1, [r2, #0x80] - str r2, [r1, #0x7c] - mov r2, #0 - str r2, [r1, #0x80] - str r1, [r0, #4] - bx lr -_020791C0: - ldr r2, [ip, #0x7c] - cmp r2, #0 - streq r1, [r0] - strne r1, [r2, #0x80] - str r2, [r1, #0x7c] - str ip, [r1, #0x80] - str r1, [ip, #0x7c] - bx lr - arm_func_end FUN_02079168 - - arm_func_start FUN_020791e0 -FUN_020791e0: @ 0x020791E0 - ldr r2, [r0] - cmp r2, #0 - beq _0207920C - ldr r1, [r2, #0x80] - str r1, [r0] - cmp r1, #0 - movne r0, #0 - strne r0, [r1, #0x7c] - moveq r1, #0 - streq r1, [r0, #4] - streq r1, [r2, #0x78] -_0207920C: - mov r0, r2 - bx lr - arm_func_end FUN_020791e0 - - arm_func_start FUN_02079214 -FUN_02079214: @ 0x02079214 - ldr ip, [r0] - mov r2, ip - cmp ip, #0 - beq _02079260 -_02079224: - cmp r2, r1 - ldr r3, [r2, #0x80] - bne _02079254 - cmp ip, r2 - ldr ip, [r2, #0x7c] - streq r3, [r0] - strne r3, [ip, #0x80] - ldr r1, [r0, #4] - cmp r1, r2 - streq ip, [r0, #4] - strne ip, [r3, #0x7c] - b _02079260 -_02079254: - mov r2, r3 - cmp r3, #0 - bne _02079224 -_02079260: - mov r0, r2 - bx lr - arm_func_end FUN_02079214 - - arm_func_start FUN_02079268 -FUN_02079268: @ 0x02079268 - ldr r2, [r0] - cmp r2, #0 - beq _02079290 - ldr r1, [r2, #0x10] - str r1, [r0] - cmp r1, #0 - movne r0, #0 - strne r0, [r1, #0x14] - moveq r1, #0 - streq r1, [r0, #4] -_02079290: - mov r0, r2 - bx lr - arm_func_end FUN_02079268 - - arm_func_start FUN_02079298 -FUN_02079298: @ 0x02079298 - push {r3, lr} - ldr r1, _020792F4 @ =0x022B9648 - mov ip, #0 - ldr lr, [r1, #0x2c] - mov r3, lr - b _020792B8 -_020792B0: - mov ip, r3 - ldr r3, [r3, #0x68] -_020792B8: - cmp r3, #0 - beq _020792D0 - ldr r2, [r3, #0x70] - ldr r1, [r0, #0x70] - cmp r2, r1 - blo _020792B0 -_020792D0: - cmp ip, #0 - ldrne r1, [ip, #0x68] - strne r1, [r0, #0x68] - strne r0, [ip, #0x68] - popne {r3, pc} - ldr r1, _020792F4 @ =0x022B9648 - str lr, [r0, #0x68] - str r0, [r1, #0x2c] - pop {r3, pc} - .align 2, 0 -_020792F4: .4byte 0x022B9648 - arm_func_end FUN_02079298 - - arm_func_start FUN_020792f8 -FUN_020792f8: @ 0x020792F8 - ldr r1, _0207933C @ =0x022B9648 - mov r2, #0 - ldr r1, [r1, #0x2c] - b _02079310 -_02079308: - mov r2, r1 - ldr r1, [r1, #0x68] -_02079310: - cmp r1, #0 - cmpne r1, r0 - bne _02079308 - cmp r2, #0 - ldrne r0, [r0, #0x68] - strne r0, [r2, #0x68] - bxne lr - ldr r1, [r0, #0x68] - ldr r0, _0207933C @ =0x022B9648 - str r1, [r0, #0x2c] - bx lr - .align 2, 0 -_0207933C: .4byte 0x022B9648 - arm_func_end FUN_020792f8 - - arm_func_start FUN_02079340 -FUN_02079340: @ 0x02079340 - push {r4, r5, r6, lr} - ldr r0, _02079400 @ =0x022B9648 - ldr r1, [r0, #4] - cmp r1, #0 - popne {r4, r5, r6, pc} - ldrh r0, [r0, #0x26] - ldr r4, _02079404 @ =0x022B966C - cmp r0, #0 - bne _02079370 - bl FUN_0207b848 - cmp r0, #0x12 - bne _0207937C -_02079370: - mov r0, #1 - strh r0, [r4] - pop {r4, r5, r6, pc} -_0207937C: - ldr r0, _02079400 @ =0x022B9648 - ldr r0, [r0, #8] - ldr r6, [r0] - bl FUN_02079968 - mov r5, r0 - cmp r6, r5 - cmpne r5, #0 - popeq {r4, r5, r6, pc} - ldr r0, [r6, #0x64] - cmp r0, #2 - beq _020793B8 - mov r0, r6 - bl FUN_02079d08 - cmp r0, #0 - popne {r4, r5, r6, pc} -_020793B8: - ldr r0, _02079400 @ =0x022B9648 - ldr r2, [r0] - cmp r2, #0 - beq _020793D4 - mov r0, r6 - mov r1, r5 - blx r2 -_020793D4: - ldr r2, [r4, #0xc] - cmp r2, #0 - beq _020793EC - mov r0, r6 - mov r1, r5 - blx r2 -_020793EC: - ldr r1, _02079400 @ =0x022B9648 - mov r0, r5 - str r5, [r1, #0x28] - bl FUN_02079d54 - pop {r4, r5, r6, pc} - .align 2, 0 -_02079400: .4byte 0x022B9648 -_02079404: .4byte 0x022B966C - arm_func_end FUN_02079340 - - arm_func_start FUN_02079408 -FUN_02079408: @ 0x02079408 - push {r3, lr} - sub sp, sp, #8 - ldr r0, _02079518 @ =0x022B9648 - ldr r1, [r0, #0xc] - cmp r1, #0 - addne sp, sp, #8 - popne {r3, pc} - mov r2, #1 - ldr r1, _0207951C @ =0x022B9670 - str r2, [r0, #0xc] - str r1, [r0, #8] - mov r1, #0x10 - str r1, [r0, #0x164] - mov r3, #0 - str r3, [r0, #0x160] - str r2, [r0, #0x158] - str r3, [r0, #0x15c] - ldr r2, _02079520 @ =0x00000000 - ldr r1, _02079524 @ =0x022B973C - str r3, [r0, #0x168] - str r1, [r0, #0x2c] - str r1, [r0, #0x28] - cmp r2, #0 - ldrle r0, _02079528 @ =0x027E2080 - ble _0207947C - ldr r1, _0207952C @ =0x027E0000 - ldr r0, _02079530 @ =0x00000800 - add r1, r1, #0x3f80 - sub r0, r1, r0 -_0207947C: - ldr r1, _0207952C @ =0x027E0000 - sub ip, r0, r2 - add r2, r1, #0x3f80 - ldr r0, _02079530 @ =0x00000800 - ldr r1, _02079518 @ =0x022B9648 - sub r3, r2, r0 - str r3, [r1, #0x188] - str ip, [r1, #0x184] - mov r0, #0 - ldr r2, _02079534 @ =0xFDDB597D - str r0, [r1, #0x18c] - str r2, [r3, #-4] - ldr r2, [r1, #0x184] - ldr ip, _02079538 @ =0x7BF9DD5B - ldr r3, _0207953C @ =0x022B966C - str ip, [r2] - str r0, [r1, #0x194] - str r0, [r1, #0x190] - strh r0, [r1, #0x24] - ldr r2, _02079540 @ =0x027FFFA0 - strh r0, [r1, #0x26] - str r3, [r2] - bl FUN_02079bdc - mov r2, #0xc8 - str r2, [sp] - mov ip, #0x1f - ldr r0, _02079544 @ =0x022B967C - ldr r1, _02079548 @ =0x02079C04 - ldr r3, _0207954C @ =0x022B98C4 - mov r2, #0 - str ip, [sp, #4] - bl FUN_02079560 - ldr r0, _02079518 @ =0x022B9648 - mov r1, #0x20 - str r1, [r0, #0xa4] - mov r1, #1 - str r1, [r0, #0x98] - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_02079518: .4byte 0x022B9648 -_0207951C: .4byte 0x022B9670 -_02079520: .4byte 0x00000000 -_02079524: .4byte 0x022B973C -_02079528: .4byte 0x027E2080 -_0207952C: .4byte 0x027E0000 -_02079530: .4byte 0x00000800 -_02079534: .4byte 0xFDDB597D -_02079538: .4byte 0x7BF9DD5B -_0207953C: .4byte 0x022B966C -_02079540: .4byte 0x027FFFA0 -_02079544: .4byte 0x022B967C -_02079548: .4byte 0x02079C04 -_0207954C: .4byte 0x022B98C4 - arm_func_end FUN_02079408 -_02079550: - .byte 0x04, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x54, 0x96, 0x2B, 0x02 - - arm_func_start FUN_02079560 -FUN_02079560: @ 0x02079560 - push {r4, r5, r6, r7, r8, lr} - mov r8, r0 - mov r5, r1 - mov r7, r2 - mov r6, r3 - bl EnableIrqFlag - mov r4, r0 - bl FUN_02079150 - ldr r2, [sp, #0x1c] - mov r1, #0 - str r2, [r8, #0x70] - str r0, [r8, #0x6c] - str r1, [r8, #0x64] - mov r0, r8 - str r1, [r8, #0x74] - bl FUN_02079298 - ldr r0, [sp, #0x18] - mov r1, r5 - str r6, [r8, #0x94] - sub r5, r6, r0 - sub r2, r6, #4 - mov ip, #0 - str r5, [r8, #0x90] - str ip, [r8, #0x98] - ldr r6, _02079650 @ =0xFDDB597D - ldr r0, [r8, #0x94] - ldr r3, _02079654 @ =0x7BF9DD5B - str r6, [r0, #-4] - ldr r0, [r8, #0x90] - str r3, [r0] - str ip, [r8, #0xa0] - mov r0, r8 - str ip, [r8, #0x9c] - bl FUN_02079c84 - ldr r2, _02079658 @ =FUN_0207965c - str r7, [r8, #4] - str r2, [r8, #0x3c] - ldr r2, [sp, #0x18] - add r1, r5, #4 - mov r0, #0 - sub r2, r2, #8 - bl FUN_0207c314 - mov r1, #0 - str r1, [r8, #0x84] - str r1, [r8, #0x88] - mov r0, r8 - str r1, [r8, #0x8c] - bl FUN_02079c7c - mov r0, #0 - str r0, [r8, #0x78] - str r0, [r8, #0x80] - add r1, r8, #0xa4 - mov r2, #0xc - str r0, [r8, #0x7c] - bl FUN_0207c314 - mov r1, #0 - mov r0, r4 - str r1, [r8, #0xb0] - bl SetIrqFlag - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02079650: .4byte 0xFDDB597D -_02079654: .4byte 0x7BF9DD5B -_02079658: .4byte FUN_0207965c - arm_func_end FUN_02079560 - - arm_func_start FUN_0207965c -FUN_0207965c: @ 0x0207965C - push {r3, lr} - bl EnableIrqFlag - ldr r0, _02079678 @ =0x022B9648 - mov r1, #0 - ldr r0, [r0, #0x28] - bl FUN_0207967c - pop {r3, pc} - .align 2, 0 -_02079678: .4byte 0x022B9648 - arm_func_end FUN_0207965c - - arm_func_start FUN_0207967c -FUN_0207967c: @ 0x0207967C - push {r3, r4, r5, lr} - ldr r2, _020796D0 @ =0x022B9648 - mov r5, r0 - ldr r2, [r2, #0x1c] - mov r4, r1 - cmp r2, #0 - beq _020796C4 - ldr r1, _020796D4 @ =FUN_020796d8 - bl FUN_02079c84 - str r4, [r5, #4] - ldr r1, [r5] - mov r0, r5 - orr r1, r1, #0x80 - str r1, [r5] - mov r1, #1 - str r1, [r5, #0x64] - bl FUN_02079d54 - pop {r3, r4, r5, pc} -_020796C4: - mov r0, r4 - bl FUN_020796d8 - pop {r3, r4, r5, pc} - .align 2, 0 -_020796D0: .4byte 0x022B9648 -_020796D4: .4byte FUN_020796d8 - arm_func_end FUN_0207967c - - arm_func_start FUN_020796d8 -FUN_020796d8: @ 0x020796D8 - push {r3, lr} - ldr r1, _0207970C @ =0x022B9648 - ldr r1, [r1, #8] - ldr r3, [r1] - ldr r2, [r3, #0xb4] - cmp r2, #0 - beq _02079704 - mov r1, #0 - str r1, [r3, #0xb4] - blx r2 - bl EnableIrqFlag -_02079704: - bl FUN_02079710 - pop {r3, pc} - .align 2, 0 -_0207970C: .4byte 0x022B9648 - arm_func_end FUN_020796d8 - - arm_func_start FUN_02079710 -FUN_02079710: @ 0x02079710 - push {r4, lr} - ldr r0, _02079768 @ =0x022B9648 - ldr r0, [r0, #8] - ldr r4, [r0] - bl FUN_02079c14 - mov r0, r4 - bl FUN_0207a128 - ldr r0, [r4, #0x78] - cmp r0, #0 - beq _02079740 + bl FUN_0207C40C + add r1, sp, #0 + add r0, r5, #0x2ec + mov r2, #0x28 + bl ov00_022D39D0 mov r1, r4 - bl FUN_02079214 -_02079740: - mov r0, r4 - bl FUN_020792f8 - mov r1, #2 - add r0, r4, #0x9c - str r1, [r4, #0x64] - bl FUN_020798d8 - bl FUN_02079c48 - bl FUN_02079990 - bl WaitForever2 - pop {r4, pc} - .align 2, 0 -_02079768: .4byte 0x022B9648 - arm_func_end FUN_02079710 -_0207976C: - .byte 0x38, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x50, 0xA0, 0xE1, 0x1A, 0x08, 0x00, 0xEB, 0x64, 0x10, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x28, 0x00, 0x91, 0xE5, 0x05, 0x00, 0x50, 0xE1, 0x00, 0x00, 0x00, 0x1A, 0xDF, 0xFF, 0xFF, 0xEB - .byte 0x1F, 0x01, 0x00, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0x62, 0x02, 0x00, 0xEB, 0x05, 0x00, 0xA0, 0xE1 - .byte 0x10, 0x00, 0x00, 0xEB, 0x78, 0x00, 0x95, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x0A - .byte 0x05, 0x10, 0xA0, 0xE1, 0x96, 0xFE, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0xCD, 0xFE, 0xFF, 0xEB - .byte 0x02, 0x10, 0xA0, 0xE3, 0x9C, 0x00, 0x85, 0xE2, 0x64, 0x10, 0x85, 0xE5, 0x41, 0x00, 0x00, 0xEB - .byte 0x1C, 0x01, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x06, 0x08, 0x00, 0xEB, 0x6B, 0x00, 0x00, 0xEB - .byte 0x38, 0x80, 0xBD, 0xE8, 0x48, 0x96, 0x2B, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0xB0, 0x00, 0x90, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x08, 0x7A, 0x06, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_02079800 -FUN_02079800: @ 0x02079800 - push {r3, r4, r5, lr} - mov r5, r0 - bl EnableIrqFlag - ldr r1, [r5, #0x64] - mov r4, r0 - cmp r1, #2 - beq _02079824 - add r0, r5, #0x9c - bl FUN_02079888 -_02079824: - mov r0, r4 - bl SetIrqFlag - pop {r3, r4, r5, pc} - arm_func_end FUN_02079800 -_02079830: - .byte 0x64, 0x00, 0x90, 0xE5, 0x02, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13 - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02079844 -FUN_02079844: @ 0x02079844 - push {r4, r5, r6, lr} - mov r5, r1 - mov r6, r0 - bl EnableIrqFlag - mov r4, r0 - cmp r5, #0 - beq _02079870 - mov r0, r5 - mov r1, r6 - str r5, [r6, #0x78] - bl FUN_02079168 -_02079870: - mov r0, #0 - str r0, [r6, #0x64] - bl FUN_02079340 - mov r0, r4 - bl SetIrqFlag - pop {r4, r5, r6, pc} - arm_func_end FUN_02079844 - - arm_func_start FUN_02079888 -FUN_02079888: @ 0x02079888 - push {r4, r5, r6, lr} - mov r6, r0 - bl EnableIrqFlag - ldr r1, _020798D4 @ =0x022B9648 - mov r4, r0 - ldr r0, [r1, #8] - cmp r6, #0 - ldr r5, [r0] - beq _020798BC - mov r0, r6 + add r0, r5, #0x2ec + bl ov00_022D3A88 + add r0, r5, #0x2ec + bl ov00_022D397C + add r0, r5, #0x2ec mov r1, r5 - str r6, [r5, #0x78] - bl FUN_02079168 -_020798BC: - mov r0, #0 - str r0, [r5, #0x64] - bl FUN_02079340 - mov r0, r4 - bl SetIrqFlag - pop {r4, r5, r6, pc} - .align 2, 0 -_020798D4: .4byte 0x022B9648 - arm_func_end FUN_02079888 - - arm_func_start FUN_020798d8 -FUN_020798d8: @ 0x020798D8 - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - bl EnableIrqFlag - ldr r1, [r7] - mov r6, r0 - cmp r1, #0 - beq _02079934 - beq _02079924 - mov r5, #1 - mov r4, #0 -_02079900: - mov r0, r7 - bl FUN_020791e0 - str r5, [r0, #0x64] - str r4, [r0, #0x78] - str r4, [r0, #0x80] - str r4, [r0, #0x7c] - ldr r0, [r7] - cmp r0, #0 - bne _02079900 -_02079924: - mov r0, #0 - str r0, [r7, #4] - str r0, [r7] - bl FUN_02079340 -_02079934: - mov r0, r6 - bl SetIrqFlag - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_020798d8 - - arm_func_start FUN_02079940 -FUN_02079940: @ 0x02079940 - push {r3, r4, r5, lr} - mov r5, r0 - bl EnableIrqFlag - mov r1, #1 - mov r4, r0 - str r1, [r5, #0x64] - bl FUN_02079340 - mov r0, r4 - bl SetIrqFlag + mov r2, #0x30 + bl ov00_022D39D0 + add r0, sp, #0 + mov r1, #0x5c + mov r2, #0x28 + bl FUN_0207C40C + add r0, r5, #0x2ec + add r1, sp, #0 + mov r2, #0x28 + bl ov00_022D39D0 + add r0, r5, #0x2ec + mov r1, r4 + mov r2, #0x14 + bl ov00_022D39D0 + add r0, r5, #0x2ec + mov r1, r4 + bl ov00_022D3A88 + add sp, sp, #0x28 pop {r3, r4, r5, pc} - arm_func_end FUN_02079940 - - arm_func_start FUN_02079968 -FUN_02079968: @ 0x02079968 - ldr r0, _0207998C @ =0x022B9648 - ldr r0, [r0, #0x2c] - b _02079978 -_02079974: - ldr r0, [r0, #0x68] -_02079978: - cmp r0, #0 - ldrne r1, [r0, #0x64] - cmpne r1, #1 - bne _02079974 - bx lr .align 2, 0 -_0207998C: .4byte 0x022B9648 - arm_func_end FUN_02079968 +_022D13E4: .4byte 0x02318924 +_022D13E8: .4byte 0x0231892C + arm_func_end ov00_022D1310 - arm_func_start FUN_02079990 -FUN_02079990: @ 0x02079990 - push {r4, lr} - bl EnableIrqFlag - mov r4, r0 - bl FUN_02079340 - mov r0, r4 - bl SetIrqFlag - pop {r4, pc} - arm_func_end FUN_02079990 - - arm_func_start FUN_020799ac -FUN_020799ac: @ 0x020799AC - push {r4, r5, r6, r7, r8, lr} - ldr r0, _02079A60 @ =0x022B9648 - mov r4, #0 - mov r5, r4 - mov r6, r4 - ldr r8, [r0, #0x28] - bl EnableIrqFlag - ldr r1, _02079A60 @ =0x022B9648 - mov r7, r0 - ldr r1, [r1, #0x2c] - mov r0, r4 - cmp r1, #0 - beq _02079A0C - ldr r2, [r8, #0x70] -_020799E4: - cmp r1, r8 - moveq r4, r0 - ldr r0, [r1, #0x70] - cmp r2, r0 - moveq r5, r1 - mov r0, r1 - ldr r1, [r1, #0x68] - addeq r6, r6, #1 - cmp r1, #0 - bne _020799E4 -_02079A0C: - cmp r6, #1 - ble _02079A1C - cmp r5, r8 - bne _02079A28 -_02079A1C: - mov r0, r7 - bl SetIrqFlag - pop {r4, r5, r6, r7, r8, pc} -_02079A28: - cmp r4, #0 - ldrne r0, [r8, #0x68] - strne r0, [r4, #0x68] - bne _02079A44 - ldr r1, [r8, #0x68] - ldr r0, _02079A60 @ =0x022B9648 - str r1, [r0, #0x2c] -_02079A44: - ldr r0, [r5, #0x68] - str r0, [r8, #0x68] - str r8, [r5, #0x68] - bl FUN_02079340 - mov r0, r7 - bl SetIrqFlag - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02079A60: .4byte 0x022B9648 - arm_func_end FUN_020799ac - - arm_func_start FUN_02079a64 -FUN_02079a64: @ 0x02079A64 - push {r4, r5, r6, r7, r8, lr} - ldr r2, _02079B04 @ =0x022B9648 - mov r7, r0 - mov r6, r1 - ldr r8, [r2, #0x2c] - mov r4, #0 - bl EnableIrqFlag - mov r5, r0 - b _02079A90 -_02079A88: - mov r4, r8 - ldr r8, [r8, #0x68] -_02079A90: - cmp r8, #0 - cmpne r8, r7 - bne _02079A88 - cmp r8, #0 - ldrne r0, _02079B08 @ =0x022B967C - cmpne r8, r0 - bne _02079ABC - mov r0, r5 - bl SetIrqFlag - mov r0, #0 - pop {r4, r5, r6, r7, r8, pc} -_02079ABC: - ldr r0, [r8, #0x70] - cmp r0, r6 - beq _02079AF4 - cmp r4, #0 - ldrne r0, [r7, #0x68] - strne r0, [r4, #0x68] - bne _02079AE4 - ldr r1, [r7, #0x68] - ldr r0, _02079B04 @ =0x022B9648 - str r1, [r0, #0x2c] -_02079AE4: - mov r0, r7 - str r6, [r7, #0x70] - bl FUN_02079298 - bl FUN_02079340 -_02079AF4: - mov r0, r5 - bl SetIrqFlag - mov r0, #1 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_02079B04: .4byte 0x022B9648 -_02079B08: .4byte 0x022B967C - arm_func_end FUN_02079a64 - - arm_func_start FUN_02079b0c -FUN_02079b0c: @ 0x02079B0C - ldr r0, [r0, #0x70] - bx lr - arm_func_end FUN_02079b0c - - arm_func_start FUN_02079b14 -FUN_02079b14: @ 0x02079B14 + arm_func_start ov00_022D13EC +ov00_022D13EC: @ 0x022D13EC push {r4, r5, lr} - sub sp, sp, #0x34 - mov r4, r0 - add r0, sp, #8 - bl FUN_0207b040 - ldr r0, _02079BB0 @ =0x022B9648 - ldr r0, [r0, #8] - ldr r0, [r0] - str r0, [sp, #4] - bl EnableIrqFlag - ldr r1, _02079BB4 @ =0x000082EA - mov r2, #0 - umull r5, r3, r4, r1 - mla r3, r4, r2, r3 - mla r3, r2, r1, r3 - lsr r1, r5, #6 - mov r4, r0 - ldr r5, [sp, #4] - add r0, sp, #8 - add r2, sp, #4 - str r0, [r5, #0xb0] - str r2, [sp] - lsr r2, r3, #6 - orr r1, r1, r3, lsl #26 - ldr r3, _02079BB8 @ =0x02079BBC - bl FUN_0207b17c - ldr r0, [sp, #4] - cmp r0, #0 - beq _02079BA0 - mov r5, #0 -_02079B8C: - mov r0, r5 - bl FUN_02079888 - ldr r0, [sp, #4] - cmp r0, #0 - bne _02079B8C -_02079BA0: - mov r0, r4 - bl SetIrqFlag - add sp, sp, #0x34 - pop {r4, r5, pc} - .align 2, 0 -_02079BB0: .4byte 0x022B9648 -_02079BB4: .4byte 0x000082EA -_02079BB8: .4byte 0x02079BBC - arm_func_end FUN_02079b14 -_02079BBC: - .byte 0x00, 0x20, 0x90, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x08, 0xC0, 0x9F, 0xE5, 0x02, 0x00, 0xA0, 0xE1 - .byte 0xB0, 0x10, 0x82, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x40, 0x99, 0x07, 0x02 - - arm_func_start FUN_02079bdc -FUN_02079bdc: @ 0x02079BDC - push {r3, r4, r5, lr} - mov r5, r0 - bl EnableIrqFlag - ldr r1, _02079C00 @ =0x022B9648 - ldr r4, [r1, #0x30] - str r5, [r1, #0x30] - bl SetIrqFlag - mov r0, r4 - pop {r3, r4, r5, pc} - .align 2, 0 -_02079C00: .4byte 0x022B9648 - arm_func_end FUN_02079bdc -_02079C04: - .byte 0x08, 0x40, 0x2D, 0xE9, 0xF0, 0x06, 0x00, 0xEB, 0x07, 0x08, 0x00, 0xEB - .byte 0xFD, 0xFF, 0xFF, 0xEA - - arm_func_start FUN_02079c14 -FUN_02079c14: @ 0x02079C14 - push {r4, lr} - bl EnableIrqFlag - ldr r2, _02079C44 @ =0x022B9648 - mvn r1, #0 - ldr r3, [r2, #4] - cmp r3, r1 - addlo r1, r3, #1 - movlo r4, r3 - strlo r1, [r2, #4] - bl SetIrqFlag - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_02079C44: .4byte 0x022B9648 - arm_func_end FUN_02079c14 - - arm_func_start FUN_02079c48 -FUN_02079c48: @ 0x02079C48 - push {r4, lr} - bl EnableIrqFlag - ldr r1, _02079C78 @ =0x022B9648 - mov r4, #0 - ldr r3, [r1, #4] - cmp r3, #0 - subne r2, r3, #1 - movne r4, r3 - strne r2, [r1, #4] - bl SetIrqFlag - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_02079C78: .4byte 0x022B9648 - arm_func_end FUN_02079c48 - - arm_func_start FUN_02079c7c -FUN_02079c7c: @ 0x02079C7C - str r1, [r0, #0xb4] - bx lr - arm_func_end FUN_02079c7c - - arm_func_start FUN_02079c84 -FUN_02079c84: @ 0x02079C84 - add r1, r1, #4 - str r1, [r0, #0x40] - str r2, [r0, #0x44] - sub r2, r2, #0x40 - tst r2, #4 - bne _02079CA0 - b _02079CA4 -_02079CA0: - sub r2, r2, #4 -_02079CA4: - str r2, [r0, #0x38] - ands r1, r1, #1 - bne _02079CB4 - b _02079CB8 -_02079CB4: - mov r1, #0x3f -_02079CB8: - beq _02079CC0 - b _02079CC4 -_02079CC0: - mov r1, #0x1f -_02079CC4: - str r1, [r0] - mov r1, #0 - str r1, [r0, #4] - str r1, [r0, #8] - str r1, [r0, #0xc] - str r1, [r0, #0x10] - str r1, [r0, #0x14] - str r1, [r0, #0x18] - str r1, [r0, #0x1c] - str r1, [r0, #0x20] - str r1, [r0, #0x24] - str r1, [r0, #0x28] - str r1, [r0, #0x2c] - str r1, [r0, #0x30] - str r1, [r0, #0x34] - str r1, [r0, #0x3c] - bx lr - arm_func_end FUN_02079c84 - - arm_func_start FUN_02079d08 -FUN_02079d08: @ 0x02079D08 - push {r0, lr} - add r0, r0, #0x48 - ldr r1, _02079D50 @ =FUN_02080ef0 - blx r1 - pop {r0, lr} - add r1, r0, #0 - mrs r2, apsr - str r2, [r1], #4 - mov r0, #0xd3 - msr cpsr_c, r0 - str sp, [r1, #0x40] - msr cpsr_c, r2 - mov r0, #1 - stm r1, {r0, r1, r2, r3, r4, r5, r6, r7, r8, sb, sl, fp, ip, sp, lr} - add r0, pc, #0x8 @ =_02079D50 - str r0, [r1, #0x3c] - mov r0, #0 - bx lr - .align 2, 0 -_02079D50: .4byte FUN_02080ef0 - arm_func_end FUN_02079d08 - - arm_func_start FUN_02079d54 -FUN_02079d54: @ 0x02079D54 - push {r0, lr} - add r0, r0, #0x48 - ldr r1, _02079D94 @ =FUN_02080f30 - blx r1 - pop {r0, lr} - mrs r1, apsr - bic r1, r1, #0x1f - orr r1, r1, #0xd3 - msr cpsr_c, r1 - ldr r1, [r0], #4 - msr spsr_fsxc, r1 - ldr sp, [r0, #0x40] - ldr lr, [r0, #0x3c] - ldm r0, {r0, r1, r2, r3, r4, r5, r6, r7, r8, sb, sl, fp, ip, sp, lr} ^ - mov r0, r0 - subs pc, lr, #4 - .align 2, 0 -_02079D94: .4byte FUN_02080f30 - arm_func_end FUN_02079d54 - - arm_func_start FUN_02079d98 -FUN_02079d98: @ 0x02079D98 - mov r0, #0 - bx lr - arm_func_end FUN_02079d98 - - arm_func_start FUN_02079da0 -FUN_02079da0: @ 0x02079DA0 - ldr r0, _02079DB0 @ =0x82000001 - ldr r1, _02079DB4 @ =0x020B2BAC - str r0, [r1] - bx lr - .align 2, 0 -_02079DB0: .4byte 0x82000001 -_02079DB4: .4byte 0x020B2BAC - arm_func_end FUN_02079da0 - - arm_func_start FUN_02079db8 -FUN_02079db8: @ 0x02079DB8 - mov r3, #0 - str r3, [r0, #4] - str r3, [r0] - str r3, [r0, #0xc] - str r3, [r0, #8] - str r1, [r0, #0x10] - str r2, [r0, #0x14] - str r3, [r0, #0x18] - str r3, [r0, #0x1c] - bx lr - arm_func_end FUN_02079db8 - - arm_func_start FUN_02079de0 -FUN_02079de0: @ 0x02079DE0 - push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x14 mov r5, r0 mov r4, r1 - mov r7, r2 - bl EnableIrqFlag - ldr r2, [r5, #0x1c] - ldr r1, [r5, #0x14] - mov r6, r0 - cmp r1, r2 - bgt _02079E3C - and r7, r7, #1 -_02079E0C: - cmp r7, #0 - bne _02079E24 - mov r0, r6 - bl SetIrqFlag - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_02079E24: + add r0, r5, #0x3a4 + add r1, r5, #0x3fc + mov r2, #0x58 + bl FUN_0207C4C8 + add r1, sp, #0 mov r0, r5 - bl FUN_02079888 - ldr r2, [r5, #0x1c] - ldr r1, [r5, #0x14] - cmp r1, r2 - ble _02079E0C -_02079E3C: - ldr r0, [r5, #0x18] - add r0, r0, r2 - bl DivideInt - ldr r2, [r5, #0x10] - add r0, r5, #8 - str r4, [r2, r1, lsl #2] - ldr r1, [r5, #0x1c] - add r1, r1, #1 - str r1, [r5, #0x1c] - bl FUN_020798d8 - mov r0, r6 - bl SetIrqFlag - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_02079de0 - - arm_func_start FUN_02079e74 -FUN_02079e74: @ 0x02079E74 - push {r3, r4, r5, r6, r7, lr} - mov r6, r0 - mov r5, r1 - mov r7, r2 - bl EnableIrqFlag - ldr r1, [r6, #0x1c] - mov r4, r0 - cmp r1, #0 - bne _02079EC8 - and r7, r7, #1 -_02079E9C: - cmp r7, #0 - bne _02079EB4 - mov r0, r4 - bl SetIrqFlag - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_02079EB4: - add r0, r6, #8 - bl FUN_02079888 - ldr r0, [r6, #0x1c] - cmp r0, #0 - beq _02079E9C -_02079EC8: - cmp r5, #0 - beq _02079EE0 - ldr r1, [r6, #0x10] - ldr r0, [r6, #0x18] - ldr r0, [r1, r0, lsl #2] - str r0, [r5] -_02079EE0: - ldr r0, [r6, #0x18] - ldr r1, [r6, #0x14] - add r0, r0, #1 - bl DivideInt - str r1, [r6, #0x18] - ldr r1, [r6, #0x1c] - mov r0, r6 - sub r1, r1, #1 - str r1, [r6, #0x1c] - bl FUN_020798d8 - mov r0, r4 - bl SetIrqFlag - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_02079e74 - - arm_func_start FUN_02079f18 -FUN_02079f18: @ 0x02079F18 - push {r3, r4, r5, r6, r7, lr} - mov r6, r0 - mov r5, r1 - mov r7, r2 - bl EnableIrqFlag - ldr r1, [r6, #0x14] - ldr r2, [r6, #0x1c] - mov r4, r0 - cmp r1, r2 - bgt _02079F74 - and r7, r7, #1 -_02079F44: - cmp r7, #0 - bne _02079F5C - mov r0, r4 - bl SetIrqFlag - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_02079F5C: - mov r0, r6 - bl FUN_02079888 - ldr r1, [r6, #0x14] - ldr r0, [r6, #0x1c] - cmp r1, r0 - ble _02079F44 -_02079F74: - ldr r0, [r6, #0x18] - add r0, r0, r1 - sub r0, r0, #1 - bl DivideInt - str r1, [r6, #0x18] - ldr r0, [r6, #0x10] - str r5, [r0, r1, lsl #2] - ldr r1, [r6, #0x1c] - add r0, r6, #8 - add r1, r1, #1 - str r1, [r6, #0x1c] - bl FUN_020798d8 - mov r0, r4 - bl SetIrqFlag - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_02079f18 - - arm_func_start FUN_02079fb4 -FUN_02079fb4: @ 0x02079FB4 - push {r3, r4, r5, r6, r7, lr} - mov r6, r0 - mov r5, r1 - mov r7, r2 - bl EnableIrqFlag - ldr r1, [r6, #0x1c] - mov r4, r0 - cmp r1, #0 - bne _0207A008 - and r7, r7, #1 -_02079FDC: - cmp r7, #0 - bne _02079FF4 - mov r0, r4 - bl SetIrqFlag - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_02079FF4: - add r0, r6, #8 - bl FUN_02079888 - ldr r0, [r6, #0x1c] - cmp r0, #0 - beq _02079FDC -_0207A008: - cmp r5, #0 - beq _0207A020 - ldr r1, [r6, #0x10] - ldr r0, [r6, #0x18] - ldr r0, [r1, r0, lsl #2] - str r0, [r5] -_0207A020: - mov r0, r4 - bl SetIrqFlag - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_02079fb4 - - arm_func_start FUN_0207a030 -FUN_0207a030: @ 0x0207A030 - mov r1, #0 - str r1, [r0, #4] - str r1, [r0] - str r1, [r0, #8] - str r1, [r0, #0xc] - bx lr - arm_func_end FUN_0207a030 - - arm_func_start FUN_0207a048 -FUN_0207a048: @ 0x0207A048 - push {r3, r4, r5, r6, r7, lr} - mov r5, r0 - bl EnableIrqFlag - ldr r1, _0207A0C8 @ =0x022B966C - mov r4, r0 - ldr r7, [r1, #4] - mov r6, #0 -_0207A064: - ldr r0, [r5, #8] - cmp r0, #0 - bne _0207A090 - str r7, [r5, #8] - ldr r1, [r5, #0xc] - mov r0, r7 - add r2, r1, #1 - mov r1, r5 - str r2, [r5, #0xc] - bl FUN_0207a1d8 - b _0207A0BC -_0207A090: - cmp r0, r7 - bne _0207A0A8 - ldr r0, [r5, #0xc] - add r0, r0, #1 - str r0, [r5, #0xc] - b _0207A0BC -_0207A0A8: - mov r0, r5 - str r5, [r7, #0x84] - bl FUN_02079888 - str r6, [r7, #0x84] - b _0207A064 -_0207A0BC: - mov r0, r4 - bl SetIrqFlag - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0207A0C8: .4byte 0x022B966C - arm_func_end FUN_0207a048 - - arm_func_start FUN_0207a0cc -FUN_0207a0cc: @ 0x0207A0CC - push {r3, r4, r5, lr} - mov r5, r0 - bl EnableIrqFlag - ldr r1, _0207A124 @ =0x022B966C - mov r4, r0 - ldr r0, [r1, #4] - ldr r1, [r5, #8] - cmp r1, r0 - bne _0207A118 - ldr r1, [r5, #0xc] - subs r1, r1, #1 - str r1, [r5, #0xc] - bne _0207A118 - mov r1, r5 - bl FUN_0207a1fc - mov r1, #0 - mov r0, r5 - str r1, [r5, #8] - bl FUN_020798d8 -_0207A118: - mov r0, r4 - bl SetIrqFlag - pop {r3, r4, r5, pc} - .align 2, 0 -_0207A124: .4byte 0x022B966C - arm_func_end FUN_0207a0cc - - arm_func_start FUN_0207a128 -FUN_0207a128: @ 0x0207A128 - push {r3, r4, r5, lr} - mov r5, r0 - ldr r0, [r5, #0x88] - cmp r0, #0 - popeq {r3, r4, r5, pc} - mov r4, #0 -_0207A140: - add r0, r5, #0x88 - bl FUN_02079268 - str r4, [r0, #0xc] - str r4, [r0, #8] - bl FUN_020798d8 - ldr r0, [r5, #0x88] - cmp r0, #0 - bne _0207A140 - pop {r3, r4, r5, pc} - arm_func_end FUN_0207a128 - - arm_func_start FUN_0207a164 -FUN_0207a164: @ 0x0207A164 - push {r4, r5, r6, lr} - mov r5, r0 - bl EnableIrqFlag - ldr r2, [r5, #8] - ldr r1, _0207A1D4 @ =0x022B966C - mov r4, r0 - cmp r2, #0 - ldr r0, [r1, #4] - bne _0207A1A8 - str r0, [r5, #8] - ldr r2, [r5, #0xc] - mov r1, r5 - add r2, r2, #1 - str r2, [r5, #0xc] - bl FUN_0207a1d8 - mov r6, #1 - b _0207A1C4 -_0207A1A8: - cmp r2, r0 - movne r6, #0 - bne _0207A1C4 - ldr r0, [r5, #0xc] - mov r6, #1 - add r0, r0, #1 - str r0, [r5, #0xc] -_0207A1C4: - mov r0, r4 - bl SetIrqFlag - mov r0, r6 - pop {r4, r5, r6, pc} - .align 2, 0 -_0207A1D4: .4byte 0x022B966C - arm_func_end FUN_0207a164 - - arm_func_start FUN_0207a1d8 -FUN_0207a1d8: @ 0x0207A1D8 - ldr r2, [r0, #0x8c] - cmp r2, #0 - streq r1, [r0, #0x88] - strne r1, [r2, #0x10] - str r2, [r1, #0x14] - mov r2, #0 - str r2, [r1, #0x10] - str r1, [r0, #0x8c] - bx lr - arm_func_end FUN_0207a1d8 - - arm_func_start FUN_0207a1fc -FUN_0207a1fc: @ 0x0207A1FC - ldr r2, [r1, #0x10] - ldr r1, [r1, #0x14] - cmp r2, #0 - streq r1, [r0, #0x8c] - strne r1, [r2, #0x14] - cmp r1, #0 - streq r2, [r0, #0x88] - strne r2, [r1, #0x10] - bx lr - arm_func_end FUN_0207a1fc -_0207A220: - .byte 0x10, 0x1F, 0x11, 0xEE, 0x04, 0x00, 0x01, 0xE2, 0x20, 0x01, 0xA0, 0xE1, 0x04, 0x10, 0x81, 0xE3 - .byte 0x10, 0x1F, 0x01, 0xEE, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x16, 0x0F, 0x07, 0xEE - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0x81, 0xE1 - .byte 0x5A, 0x2F, 0x07, 0xEE, 0x20, 0x00, 0x80, 0xE2, 0x01, 0x0B, 0x50, 0xE3, 0xFA, 0xFF, 0xFF, 0xBA - .byte 0x01, 0x11, 0x81, 0xE2, 0x00, 0x00, 0x51, 0xE3, 0xF6, 0xFF, 0xFF, 0x1A, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0207a270 -FUN_0207a270: @ 0x0207A270 - mov ip, #0 - mov r1, #0 -_0207A278: - mov r0, #0 -_0207A27C: - orr r2, r1, r0 - mcr p15, #0, ip, c7, c10, #4 - mcr p15, #0, r2, c7, c14, #2 - add r0, r0, #0x20 - cmp r0, #0x400 - blt _0207A27C - add r1, r1, #0x40000000 - cmp r1, #0 - bne _0207A278 - bx lr - arm_func_end FUN_0207a270 - - arm_func_start FUN_0207a2a4 -FUN_0207a2a4: @ 0x0207A2A4 - add r1, r1, r0 - bic r0, r0, #0x1f -_0207A2AC: - mcr p15, #0, r0, c7, c6, #1 - add r0, r0, #0x20 - cmp r0, r1 - blt _0207A2AC - bx lr - arm_func_end FUN_0207a2a4 - - arm_func_start FUN_0207a2c0 -FUN_0207a2c0: @ 0x0207A2C0 - add r1, r1, r0 - bic r0, r0, #0x1f -_0207A2C8: - mcr p15, #0, r0, c7, c10, #1 - add r0, r0, #0x20 - cmp r0, r1 - blt _0207A2C8 - bx lr - arm_func_end FUN_0207a2c0 - - arm_func_start FUN_0207a2dc -FUN_0207a2dc: @ 0x0207A2DC - mov ip, #0 - add r1, r1, r0 - bic r0, r0, #0x1f -_0207A2E8: - mcr p15, #0, ip, c7, c10, #4 - mcr p15, #0, r0, c7, c14, #1 - add r0, r0, #0x20 - cmp r0, r1 - blt _0207A2E8 - bx lr - arm_func_end FUN_0207a2dc - - arm_func_start FUN_0207a300 -FUN_0207a300: @ 0x0207A300 - mov r0, #0 - mcr p15, #0, r0, c7, c10, #4 - bx lr - arm_func_end FUN_0207a300 -_0207A30C: - .byte 0x10, 0x1F, 0x11, 0xEE - .byte 0x01, 0x0A, 0x01, 0xE2, 0x20, 0x06, 0xA0, 0xE1, 0x01, 0x1A, 0x81, 0xE3, 0x10, 0x1F, 0x01, 0xEE - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0207a324 -FUN_0207a324: @ 0x0207A324 - mov r0, #0 - mcr p15, #0, r0, c7, c5, #0 - bx lr - arm_func_end FUN_0207a324 - - arm_func_start FUN_0207a330 -FUN_0207a330: @ 0x0207A330 - add r1, r1, r0 - bic r0, r0, #0x1f -_0207A338: - mcr p15, #0, r0, c7, c5, #1 - add r0, r0, #0x20 - cmp r0, r1 - blt _0207A338 - bx lr - arm_func_end FUN_0207a330 - - arm_func_start FUN_0207a34c -FUN_0207a34c: @ 0x0207A34C - mov ip, #0x4000000 - ldr r1, [ip, #0x208] - str ip, [ip, #0x208] -_0207A358: - ldrh r0, [ip, #6] - cmp r0, #0 - bne _0207A358 - str r1, [ip, #0x208] - bx lr - arm_func_end FUN_0207a34c - - arm_func_start FUN_0207a36c -FUN_0207a36c: @ 0x0207A36C - push {r3, lr} - bl FUN_0207a3b4 - bl thunk_FUN_0207d9b0 - bl FUN_02078d28 - bl FUN_0207a4b8 - bl FUN_02078a80 - bl FUN_02078cf4 - bl FUN_0207ab24 - bl FUN_0207c7c4 - bl FUN_0207b370 - bl FUN_0207ba94 - bl FUN_02079408 - bl FUN_0207b87c - bl FUN_02084a4c - bl FUN_02084304 - bl FUN_02081ac4 - bl FUN_0207a34c - pop {r3, pc} - arm_func_end FUN_0207a36c - - arm_func_start FUN_0207a3b4 -FUN_0207a3b4: @ 0x0207A3B4 - push {r3, lr} - ldr r1, _0207A4B4 @ =0x022B98C4 - ldr r0, [r1] - cmp r0, #0 - popne {r3, pc} mov r2, #1 - mov r0, #0 - str r2, [r1] - bl FUN_0207a54c - mov r1, r0 - mov r0, #0 - bl FUN_0207a6d8 - mov r0, #0 - bl FUN_0207a630 - mov r1, r0 - mov r0, #0 - bl FUN_0207a6ec - mov r0, #2 - mov r1, #0 - bl FUN_0207a6ec - mov r0, #2 - mov r1, #0 - bl FUN_0207a6d8 - mov r0, #3 - bl FUN_0207a54c - mov r1, r0 - mov r0, #3 - bl FUN_0207a6d8 - mov r0, #3 - bl FUN_0207a630 - mov r1, r0 - mov r0, #3 - bl FUN_0207a6ec - mov r0, #4 - bl FUN_0207a54c - mov r1, r0 - mov r0, #4 - bl FUN_0207a6d8 - mov r0, #4 - bl FUN_0207a630 - mov r1, r0 - mov r0, #4 - bl FUN_0207a6ec - mov r0, #5 - bl FUN_0207a54c - mov r1, r0 - mov r0, #5 - bl FUN_0207a6d8 - mov r0, #5 - bl FUN_0207a630 - mov r1, r0 - mov r0, #5 - bl FUN_0207a6ec - mov r0, #6 - bl FUN_0207a54c - mov r1, r0 - mov r0, #6 - bl FUN_0207a6d8 - mov r0, #6 - bl FUN_0207a630 - mov r1, r0 - mov r0, #6 - bl FUN_0207a6ec - pop {r3, pc} - .align 2, 0 -_0207A4B4: .4byte 0x022B98C4 - arm_func_end FUN_0207a3b4 - - arm_func_start FUN_0207a4b8 -FUN_0207a4b8: @ 0x0207A4B8 - push {r3, lr} - mov r0, #2 - bl FUN_0207a54c - mov r1, r0 - mov r0, #2 - bl FUN_0207a6d8 - mov r0, #2 - bl FUN_0207a630 - mov r1, r0 - mov r0, #2 - bl FUN_0207a6ec - ldr r0, _0207A518 @ =0x022B98C4 - ldr r0, [r0, #4] + bl ov00_022D1234 + add r0, r5, #0x3fc + add r1, r5, #0x3a4 + mov r2, #0x58 + bl FUN_0207C4C8 + add r1, sp, #0 + mov r0, r4 + mov r2, #0x10 + bl FUN_02087348 cmp r0, #0 - beq _0207A504 - bl FUN_02079da0 - and r0, r0, #3 - cmp r0, #1 - popne {r3, pc} -_0207A504: - ldr r0, _0207A51C @ =0x0200002B - bl FUN_0207ab14 - ldr r0, _0207A520 @ =0x023E0021 - bl FUN_0207ab1c - pop {r3, pc} - .align 2, 0 -_0207A518: .4byte 0x022B98C4 -_0207A51C: .4byte 0x0200002B -_0207A520: .4byte 0x023E0021 - arm_func_end FUN_0207a4b8 -_0207A524: - .byte 0x00, 0x01, 0xA0, 0xE1, 0x27, 0x06, 0x80, 0xE2, 0xFF, 0x0A, 0x80, 0xE2 - .byte 0xC4, 0x0D, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x01, 0xA0, 0xE1, 0x27, 0x06, 0x80, 0xE2 - .byte 0xFF, 0x0A, 0x80, 0xE2, 0xA0, 0x0D, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0207a54c -FUN_0207a54c: @ 0x0207A54C - push {r3, lr} - cmp r0, #6 - addls pc, pc, r0, lsl #2 - b _0207A608 -_0207A55C: @ jump table - b _0207A578 @ case 0 - b _0207A608 @ case 1 - b _0207A580 @ case 2 - b _0207A5B0 @ case 3 - b _0207A5B8 @ case 4 - b _0207A5F8 @ case 5 - b _0207A600 @ case 6 -_0207A578: - ldr r0, _0207A610 @ =0x023E0000 - pop {r3, pc} -_0207A580: - ldr r0, _0207A614 @ =0x022B98C4 - ldr r0, [r0, #4] + movne r0, #9 + addne sp, sp, #0x14 + strbne r0, [r5, #0x455] + popne {r4, r5, pc} + add r0, r5, #0x2ec + add r1, r5, #0x348 + mov r2, #0x5c + bl FUN_0207C4C8 + add r1, sp, #0 + mov r0, r5 + mov r2, #1 + bl ov00_022D1310 + add r0, r5, #0x348 + add r1, r5, #0x2ec + mov r2, #0x5c + bl FUN_0207C4C8 + add r1, sp, #0 + add r0, r4, #0x10 + mov r2, #0x14 + bl FUN_02087348 cmp r0, #0 - beq _0207A5A0 - bl FUN_02079da0 - and r0, r0, #3 - cmp r0, #1 - bne _0207A5A8 -_0207A5A0: - mov r0, #0 - pop {r3, pc} -_0207A5A8: - mov r0, #0x2700000 - pop {r3, pc} -_0207A5B0: - mov r0, #0x2000000 - pop {r3, pc} -_0207A5B8: - ldr r0, _0207A618 @ =0x027E0000 - ldr r1, _0207A61C @ =0x00000000 - ldr r2, _0207A620 @ =0x00000800 - add r3, r0, #0x3f80 - cmp r1, #0 - sub r2, r3, r2 - bne _0207A5E4 - ldr r1, _0207A624 @ =0x027E2080 - cmp r0, r1 - movlo r0, r1 - pop {r3, pc} -_0207A5E4: - cmp r1, #0 - ldrlt r0, _0207A624 @ =0x027E2080 - sublt r0, r0, r1 - subge r0, r2, r1 - pop {r3, pc} -_0207A5F8: - ldr r0, _0207A628 @ =0x027FF680 - pop {r3, pc} -_0207A600: - ldr r0, _0207A62C @ =0x037F8000 - pop {r3, pc} -_0207A608: - mov r0, #0 - pop {r3, pc} - .align 2, 0 -_0207A610: .4byte 0x023E0000 -_0207A614: .4byte 0x022B98C4 -_0207A618: .4byte 0x027E0000 -_0207A61C: .4byte 0x00000000 -_0207A620: .4byte 0x00000800 -_0207A624: .4byte 0x027E2080 -_0207A628: .4byte 0x027FF680 -_0207A62C: .4byte 0x037F8000 - arm_func_end FUN_0207a54c + movne r0, #9 + strbne r0, [r5, #0x455] + moveq r0, #6 + strbeq r0, [r5, #0x455] + add sp, sp, #0x14 + pop {r4, r5, pc} + arm_func_end ov00_022D13EC - arm_func_start FUN_0207a630 -FUN_0207a630: @ 0x0207A630 - push {r3, lr} - cmp r0, #6 - addls pc, pc, r0, lsl #2 - b _0207A6B4 -_0207A640: @ jump table - b _0207A65C @ case 0 - b _0207A6B4 @ case 1 - b _0207A664 @ case 2 - b _0207A694 @ case 3 - b _0207A69C @ case 4 - b _0207A6A4 @ case 5 - b _0207A6AC @ case 6 -_0207A65C: - ldr r0, _0207A6BC @ =0x0238EC80 - pop {r3, pc} -_0207A664: - ldr r0, _0207A6C0 @ =0x022B98C4 - ldr r0, [r0, #4] - cmp r0, #0 - beq _0207A684 - bl FUN_02079da0 - and r0, r0, #3 - cmp r0, #1 - bne _0207A68C -_0207A684: - mov r0, #0 - pop {r3, pc} -_0207A68C: - ldr r0, _0207A6C4 @ =0x023E0000 - pop {r3, pc} -_0207A694: - ldr r0, _0207A6C8 @ =0x01FFC000 - pop {r3, pc} -_0207A69C: - ldr r0, _0207A6CC @ =0x027E2080 - pop {r3, pc} -_0207A6A4: - ldr r0, _0207A6D0 @ =0x027FF000 - pop {r3, pc} -_0207A6AC: - ldr r0, _0207A6D4 @ =0x037F8000 - pop {r3, pc} -_0207A6B4: - mov r0, #0 - pop {r3, pc} - .align 2, 0 -_0207A6BC: .4byte 0x0238EC80 -_0207A6C0: .4byte 0x022B98C4 -_0207A6C4: .4byte 0x023E0000 -_0207A6C8: .4byte 0x01FFC000 -_0207A6CC: .4byte 0x027E2080 -_0207A6D0: .4byte 0x027FF000 -_0207A6D4: .4byte 0x037F8000 - arm_func_end FUN_0207a630 - - arm_func_start FUN_0207a6d8 -FUN_0207a6d8: @ 0x0207A6D8 - lsl r0, r0, #2 - add r0, r0, #0x2700000 - add r0, r0, #0xff000 - str r1, [r0, #0xdc4] + arm_func_start ov00_022D14AC +ov00_022D14AC: @ 0x022D14AC + mov r2, #8 +_022D14B0: + ldrb r1, [r0, #-1]! + add r1, r1, #1 + ands r1, r1, #0xff + strb r1, [r0] + bxne lr + subs r2, r2, #1 + bne _022D14B0 bx lr - arm_func_end FUN_0207a6d8 + arm_func_end ov00_022D14AC - arm_func_start FUN_0207a6ec -FUN_0207a6ec: @ 0x0207A6EC - lsl r0, r0, #2 - add r0, r0, #0x2700000 - add r0, r0, #0xff000 - str r1, [r0, #0xda0] - bx lr - arm_func_end FUN_0207a6ec + arm_func_start ov00_022D14D0 +ov00_022D14D0: @ 0x022D14D0 + push {r4, lr} + add r0, r0, #0x1e0 + mov r4, r2 + bl ov00_022D3B94 + mov r0, r4 + pop {r4, pc} + arm_func_end ov00_022D14D0 - arm_func_start FUN_0207a700 -FUN_0207a700: @ 0x0207A700 - str r0, [r1, #4] - mov r2, #0 - str r2, [r1] - cmp r0, #0 - strne r1, [r0] - mov r0, r1 - bx lr - arm_func_end FUN_0207a700 - - arm_func_start FUN_0207a71c -FUN_0207a71c: @ 0x0207A71C - ldr r3, [r1, #4] - cmp r3, #0 - ldrne r2, [r1] - strne r2, [r3] - ldr r2, [r1] - cmp r2, #0 - ldreq r0, [r1, #4] - ldrne r1, [r1, #4] - strne r1, [r2, #4] - bx lr - arm_func_end FUN_0207a71c - - arm_func_start FUN_0207a744 -FUN_0207a744: @ 0x0207A744 - push {r3, lr} - mov lr, r0 - cmp r0, #0 - mov ip, #0 - beq _0207A770 -_0207A758: - cmp r1, lr - bls _0207A770 - mov ip, lr - ldr lr, [lr, #4] - cmp lr, #0 - bne _0207A758 -_0207A770: - stm r1, {ip, lr} - cmp lr, #0 - beq _0207A7AC - str r1, [lr] - ldr r3, [r1, #8] - add r2, r1, r3 - cmp r2, lr - bne _0207A7AC - ldr r2, [lr, #8] - add r2, r3, r2 - str r2, [r1, #8] - ldr lr, [lr, #4] - str lr, [r1, #4] - cmp lr, #0 - strne r1, [lr] -_0207A7AC: - cmp ip, #0 - beq _0207A7E4 - str r1, [ip, #4] - ldr r2, [ip, #8] - add r3, ip, r2 - cmp r3, r1 - popne {r3, pc} - ldr r1, [r1, #8] - cmp lr, #0 - add r1, r2, r1 - str r1, [ip, #8] - str lr, [ip, #4] - strne ip, [lr] - pop {r3, pc} -_0207A7E4: - mov r0, r1 - pop {r3, pc} - arm_func_end FUN_0207a744 - - arm_func_start FUN_0207a7ec -FUN_0207a7ec: @ 0x0207A7EC - push {r3, r4, r5, r6, r7, lr} + arm_func_start ov00_022D14E8 +ov00_022D14E8: @ 0x022D14E8 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x44 + mov r6, r1 + ldrb r3, [r6, #3] + ldrb r2, [r6, #4] + mov r7, r0 + add r1, r6, #5 + add r2, r2, r3, lsl #8 + bl ov00_022D14D0 + ldrh r1, [r7, #0x32] mov r4, r0 - mov r5, r1 - mov r7, r2 - bl EnableIrqFlag - ldr r1, _0207A8F0 @ =0x022B98CC - mov r6, r0 - ldr r1, [r1, r4, lsl #2] - cmp r1, #0 - bne _0207A820 - bl SetIrqFlag - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_0207A820: - cmp r5, #0 - ldrlt r5, [r1] - ldr r1, [r1, #0x10] - mov r0, #0xc - mla r4, r5, r0, r1 - ldr r0, [r4, #4] - add r1, r7, #0x3f - mov r5, r0 + cmp r1, #4 + beq _022D1528 + cmp r1, #5 + beq _022D1608 + b _022D16E4 +_022D1528: + sub r4, r4, #0x10 + asr r0, r4, #8 + strb r0, [r6, #3] + strb r4, [r6, #4] + add r0, r7, #0x3fc + bl ov00_022D30BC + ldr r1, [r7, #0x1d4] + add r0, r7, #0x3fc + mov r2, #0x10 + bl ov00_022D3104 + add r0, sp, #0 + mov r1, #0x36 + mov r2, #0x30 + bl FUN_0207C40C + add r1, sp, #0 + add r0, r7, #0x3fc + mov r2, #0x30 + bl ov00_022D3104 + add r0, r7, #0x3fc + add r1, r7, #0x2e4 + mov r2, #8 + bl ov00_022D3104 + add r0, r7, #0x3fc + mov r1, r6 + mov r2, #1 + bl ov00_022D3104 + add r0, r7, #0x3fc + add r1, r6, #3 + add r2, r4, #2 + bl ov00_022D3104 + add r0, r7, #0x3fc + add r1, sp, #0x30 + bl ov00_022D31BC + add r0, r7, #0x3fc + bl ov00_022D30BC + ldr r1, [r7, #0x1d4] + add r0, r7, #0x3fc + mov r2, #0x10 + bl ov00_022D3104 + add r0, sp, #0 + mov r1, #0x5c + mov r2, #0x30 + bl FUN_0207C40C + add r0, r7, #0x3fc + add r1, sp, #0 + mov r2, #0x30 + bl ov00_022D3104 + add r0, r7, #0x3fc + add r1, sp, #0x30 + mov r2, #0x10 + bl ov00_022D3104 + add r0, r7, #0x3fc + add r1, sp, #0x30 + bl ov00_022D31BC + mov r5, #0x10 + b _022D16E4 +_022D1608: + sub r4, r4, #0x14 + asr r0, r4, #8 + strb r0, [r6, #3] + strb r4, [r6, #4] + add r0, r7, #0x348 + bl ov00_022D397C + ldr r1, [r7, #0x1d4] + add r0, r7, #0x348 + mov r2, #0x14 + bl ov00_022D39D0 + add r0, sp, #0 + mov r1, #0x36 + mov r2, #0x28 + bl FUN_0207C40C + add r1, sp, #0 + add r0, r7, #0x348 + mov r2, #0x28 + bl ov00_022D39D0 + add r0, r7, #0x348 + add r1, r7, #0x2e4 + mov r2, #8 + bl ov00_022D39D0 + add r0, r7, #0x348 + mov r1, r6 + mov r2, #1 + bl ov00_022D39D0 + add r0, r7, #0x348 + add r1, r6, #3 + add r2, r4, #2 + bl ov00_022D39D0 + add r0, r7, #0x348 + add r1, sp, #0x30 + bl ov00_022D3A88 + add r0, r7, #0x348 + bl ov00_022D397C + ldr r1, [r7, #0x1d4] + add r0, r7, #0x348 + mov r2, #0x14 + bl ov00_022D39D0 + add r0, sp, #0 + mov r1, #0x5c + mov r2, #0x28 + bl FUN_0207C40C + add r0, r7, #0x348 + add r1, sp, #0 + mov r2, #0x28 + bl ov00_022D39D0 + add r0, r7, #0x348 + add r1, sp, #0x30 + mov r2, #0x14 + bl ov00_022D39D0 + add r0, r7, #0x348 + add r1, sp, #0x30 + bl ov00_022D3A88 + mov r5, #0x14 +_022D16E4: + add r0, r6, #5 + add r1, sp, #0x30 + mov r2, r5 + add r0, r0, r4 + bl FUN_02087348 cmp r0, #0 - bic r7, r1, #0x1f - beq _0207A864 -_0207A84C: - ldr r1, [r5, #8] - cmp r7, r1 - ble _0207A864 - ldr r5, [r5, #4] - cmp r5, #0 - bne _0207A84C -_0207A864: - cmp r5, #0 - bne _0207A87C - mov r0, r6 - bl SetIrqFlag - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_0207A87C: - ldr r1, [r5, #8] - sub r1, r1, r7 - cmp r1, #0x40 - bhs _0207A89C - mov r1, r5 - bl FUN_0207a71c - str r0, [r4, #4] - b _0207A8D0 -_0207A89C: - str r7, [r5, #8] - add r2, r5, r7 - str r1, [r2, #8] - ldr r0, [r5] - str r0, [r5, r7] - ldr r0, [r5, #4] - str r0, [r2, #4] - cmp r0, #0 - strne r2, [r0] - ldr r0, [r2] - cmp r0, #0 - strne r2, [r0, #4] - streq r2, [r4, #4] -_0207A8D0: - ldr r0, [r4, #8] - mov r1, r5 - bl FUN_0207a700 - str r0, [r4, #8] - mov r0, r6 - bl SetIrqFlag - add r0, r5, #0x20 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0207A8F0: .4byte 0x022B98CC - arm_func_end FUN_0207a7ec + movne r0, #9 + strbne r0, [r7, #0x455] + add r0, r7, #0x2ec + bl ov00_022D14AC + add r0, r4, #5 + add sp, sp, #0x44 + pop {r4, r5, r6, r7, pc} + arm_func_end ov00_022D14E8 - arm_func_start FUN_0207a8f4 -FUN_0207a8f4: @ 0x0207A8F4 + arm_func_start ov00_022D1718 +ov00_022D1718: @ 0x022D1718 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x30 + mov r4, r1 + mov r5, r0 + ldrh r0, [r5, #0x32] + ldrb r2, [r4, #3] + ldrb r1, [r4, #4] + cmp r0, #4 + add r6, r4, #5 + add r7, r1, r2, lsl #8 + beq _022D1750 + cmp r0, #5 + beq _022D1820 + b _022D18EC +_022D1750: + add r0, r5, #0x3fc + bl ov00_022D30BC + ldr r1, [r5, #0xbc] + add r0, r5, #0x3fc + mov r2, #0x10 + bl ov00_022D3104 + add r0, sp, #0 + mov r1, #0x36 + mov r2, #0x30 + bl FUN_0207C40C + add r1, sp, #0 + add r0, r5, #0x3fc + mov r2, #0x30 + bl ov00_022D3104 + add r0, r5, #0x3fc + add r1, r5, #0x1cc + mov r2, #8 + bl ov00_022D3104 + add r0, r5, #0x3fc + mov r1, r4 + mov r2, #1 + bl ov00_022D3104 + add r0, r5, #0x3fc + add r1, r4, #3 + add r2, r7, #2 + bl ov00_022D3104 + add r0, r5, #0x3fc + add r1, r6, r7 + bl ov00_022D31BC + add r0, r5, #0x3fc + bl ov00_022D30BC + ldr r1, [r5, #0xbc] + add r0, r5, #0x3fc + mov r2, #0x10 + bl ov00_022D3104 + add r0, sp, #0 + mov r1, #0x5c + mov r2, #0x30 + bl FUN_0207C40C + add r0, r5, #0x3fc + add r1, sp, #0 + mov r2, #0x30 + bl ov00_022D3104 + add r0, r5, #0x3fc + add r1, r6, r7 + mov r2, #0x10 + bl ov00_022D3104 + add r1, r6, r7 + add r0, r5, #0x3fc + bl ov00_022D31BC + add r7, r7, #0x10 + b _022D18EC +_022D1820: + add r0, r5, #0x348 + bl ov00_022D397C + ldr r1, [r5, #0xbc] + add r0, r5, #0x348 + mov r2, #0x14 + bl ov00_022D39D0 + add r0, sp, #0 + mov r1, #0x36 + mov r2, #0x28 + bl FUN_0207C40C + add r1, sp, #0 + add r0, r5, #0x348 + mov r2, #0x28 + bl ov00_022D39D0 + add r0, r5, #0x348 + add r1, r5, #0x1cc + mov r2, #8 + bl ov00_022D39D0 + add r0, r5, #0x348 + mov r1, r4 + mov r2, #1 + bl ov00_022D39D0 + add r0, r5, #0x348 + add r1, r4, #3 + add r2, r7, #2 + bl ov00_022D39D0 + add r0, r5, #0x348 + add r1, r6, r7 + bl ov00_022D3A88 + add r0, r5, #0x348 + bl ov00_022D397C + ldr r1, [r5, #0xbc] + add r0, r5, #0x348 + mov r2, #0x14 + bl ov00_022D39D0 + add r0, sp, #0 + mov r1, #0x5c + mov r2, #0x28 + bl FUN_0207C40C + add r0, r5, #0x348 + add r1, sp, #0 + mov r2, #0x28 + bl ov00_022D39D0 + add r0, r5, #0x348 + add r1, r6, r7 + mov r2, #0x14 + bl ov00_022D39D0 + add r1, r6, r7 + add r0, r5, #0x348 + bl ov00_022D3A88 + add r7, r7, #0x14 +_022D18EC: + asr r0, r7, #8 + strb r0, [r4, #3] + mov r2, r7 + add r0, r5, #0xc8 + add r1, r4, #5 + strb r7, [r4, #4] + bl ov00_022D3B94 + add r0, r5, #0x1d4 + bl ov00_022D14AC + add r0, r7, #5 + add sp, sp, #0x30 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022D1718 + + arm_func_start ov00_022D191C +ov00_022D191C: @ 0x022D191C push {r3, r4, r5, r6, r7, lr} mov r7, r0 mov r6, r1 mov r5, r2 - bl EnableIrqFlag - ldr r1, _0207A958 @ =0x022B98CC - mov r4, r0 - ldr r0, [r1, r7, lsl #2] - cmp r6, #0 - ldrlt r6, [r0] - ldr r1, [r0, #0x10] - mov r0, #0xc - mla r7, r6, r0, r1 - sub r5, r5, #0x20 - ldr r0, [r7, #8] - mov r1, r5 - bl FUN_0207a71c - str r0, [r7, #8] - ldr r0, [r7, #4] - mov r1, r5 - bl FUN_0207a744 - str r0, [r7, #4] + add r4, sp, #0 +_022D1930: mov r0, r4 - bl SetIrqFlag + mov r1, r5 + bl ov00_022CB4D4 + ldr r1, [sp] + cmp r1, #0 + mvneq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + cmp r1, r6 + strhi r6, [sp] + ldr r2, [sp] + mov r1, r7 + bl FUN_0207C4C8 + ldr r0, [sp] + mov r1, r5 + bl ov00_022CB5B4 + ldr r0, [sp] + sub r6, r6, r0 + cmp r6, #0 + add r7, r7, r0 + bgt _022D1930 + mov r0, #0 pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0207A958: .4byte 0x022B98CC - arm_func_end FUN_0207a8f4 -_0207A95C: - .byte 0x38, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x9D, 0x03, 0x00, 0xEB, 0x14, 0x10, 0x9F, 0xE5 - .byte 0x04, 0x11, 0x91, 0xE7, 0x00, 0x40, 0x91, 0xE5, 0x00, 0x50, 0x81, 0xE5, 0x9D, 0x03, 0x00, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE1, 0x38, 0x80, 0xBD, 0xE8, 0xCC, 0x98, 0x2B, 0x02, 0xF8, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x70, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1, 0x03, 0x60, 0xA0, 0xE1 - .byte 0x8F, 0x03, 0x00, 0xEB, 0x84, 0x20, 0x9F, 0xE5, 0x0C, 0x10, 0xA0, 0xE3, 0x07, 0x51, 0x82, 0xE7 - .byte 0x14, 0x20, 0x85, 0xE2, 0x10, 0x20, 0x85, 0xE5, 0x96, 0x01, 0x01, 0xE0, 0x04, 0x60, 0x85, 0xE5 - .byte 0x00, 0x00, 0x56, 0xE3, 0x00, 0xE0, 0xA0, 0xE3, 0x0C, 0x00, 0x00, 0xDA, 0x0E, 0x60, 0xA0, 0xE1 - .byte 0x00, 0xC0, 0xE0, 0xE3, 0x0E, 0x30, 0xA0, 0xE1, 0x10, 0x20, 0x95, 0xE5, 0x01, 0xE0, 0x8E, 0xE2 - .byte 0x06, 0xC0, 0x82, 0xE7, 0x06, 0x20, 0x82, 0xE0, 0x08, 0x30, 0x82, 0xE5, 0x04, 0x30, 0x82, 0xE5 - .byte 0x04, 0x20, 0x95, 0xE5, 0x0C, 0x60, 0x86, 0xE2, 0x02, 0x00, 0x5E, 0xE1, 0xF5, 0xFF, 0xFF, 0xBA - .byte 0x00, 0x20, 0xE0, 0xE3, 0x00, 0x20, 0x85, 0xE5, 0x10, 0x30, 0x95, 0xE5, 0x1F, 0x20, 0xC4, 0xE3 - .byte 0x01, 0x10, 0x83, 0xE0, 0x1F, 0x10, 0x81, 0xE2, 0x1F, 0x10, 0xC1, 0xE3, 0x08, 0x10, 0x85, 0xE5 - .byte 0x0C, 0x20, 0x85, 0xE5, 0x73, 0x03, 0x00, 0xEB, 0x08, 0x00, 0x95, 0xE5, 0xF8, 0x80, 0xBD, 0xE8 - .byte 0xCC, 0x98, 0x2B, 0x02, 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x60, 0xA0, 0xE1 - .byte 0x02, 0x50, 0xA0, 0xE1, 0x66, 0x03, 0x00, 0xEB, 0x78, 0x20, 0x9F, 0xE5, 0x1F, 0x10, 0x86, 0xE2 - .byte 0x04, 0x21, 0x92, 0xE7, 0x1F, 0x60, 0xC1, 0xE3, 0x04, 0xC0, 0x92, 0xE5, 0x1F, 0x50, 0xC5, 0xE3 - .byte 0x00, 0x00, 0x5C, 0xE3, 0x00, 0x40, 0xA0, 0xE3, 0x13, 0x00, 0x00, 0xDA, 0x10, 0x30, 0x92, 0xE5 - .byte 0x00, 0x10, 0x93, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x0B, 0x00, 0x00, 0xAA, 0x06, 0x10, 0x45, 0xE0 - .byte 0x00, 0x10, 0x83, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x20, 0x86, 0xE5, 0x04, 0x20, 0x86, 0xE5 - .byte 0x00, 0x10, 0x93, 0xE5, 0x08, 0x10, 0x86, 0xE5, 0x04, 0x60, 0x83, 0xE5, 0x08, 0x20, 0x83, 0xE5 - .byte 0x54, 0x03, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x70, 0x80, 0xBD, 0xE8, 0x01, 0x40, 0x84, 0xE2 - .byte 0x0C, 0x00, 0x54, 0xE1, 0x0C, 0x30, 0x83, 0xE2, 0xEC, 0xFF, 0xFF, 0xBA, 0x4D, 0x03, 0x00, 0xEB - .byte 0x00, 0x00, 0xE0, 0xE3, 0x70, 0x80, 0xBD, 0xE8, 0xCC, 0x98, 0x2B, 0x02 + arm_func_end ov00_022D191C - arm_func_start FUN_0207aacc -FUN_0207aacc: @ 0x0207AACC - mrc p15, #0, r0, c9, c1, #0 - ldr r1, _0207AADC @ =0xFFFFF000 - and r0, r0, r1 - bx lr - .align 2, 0 -_0207AADC: .4byte 0xFFFFF000 - arm_func_end FUN_0207aacc - - arm_func_start FUN_0207aae0 -FUN_0207aae0: @ 0x0207AAE0 - mrc p15, #0, r0, c1, c0, #0 - orr r0, r0, #1 - mcr p15, #0, r0, c1, c0, #0 - bx lr - arm_func_end FUN_0207aae0 - - arm_func_start FUN_0207aaf0 -FUN_0207aaf0: @ 0x0207AAF0 - mrc p15, #0, r0, c1, c0, #0 - bic r0, r0, #1 - mcr p15, #0, r0, c1, c0, #0 - bx lr - arm_func_end FUN_0207aaf0 - - arm_func_start FUN_0207ab00 -FUN_0207ab00: @ 0x0207AB00 - mrc p15, #0, r2, c5, c0, #2 - bic r2, r2, r0 - orr r2, r2, r1 - mcr p15, #0, r2, c5, c0, #2 - bx lr - arm_func_end FUN_0207ab00 - - arm_func_start FUN_0207ab14 -FUN_0207ab14: @ 0x0207AB14 - mcr p15, #0, r0, c6, c1, #0 - bx lr - arm_func_end FUN_0207ab14 - - arm_func_start FUN_0207ab1c -FUN_0207ab1c: @ 0x0207AB1C - mcr p15, #0, r0, c6, c2, #0 - bx lr - arm_func_end FUN_0207ab1c - - arm_func_start FUN_0207ab24 -FUN_0207ab24: @ 0x0207AB24 - ldr r0, _0207AB84 @ =0x027FFD9C - ldr r1, [r0] - cmp r1, #0x2600000 - blo _0207AB44 - cmp r1, #0x2800000 - ldrlo r0, _0207AB88 @ =0x022B98F0 - strlo r1, [r0] - blo _0207AB50 -_0207AB44: - ldr r0, _0207AB88 @ =0x022B98F0 - mov r1, #0 - str r1, [r0] -_0207AB50: - ldr r0, _0207AB88 @ =0x022B98F0 - ldr r0, [r0] - cmp r0, #0 - bne _0207AB74 - ldr r2, _0207AB8C @ =0x0207AB94 - ldr r1, _0207AB84 @ =0x027FFD9C - ldr r0, _0207AB90 @ =0x027E3000 - str r2, [r1] - str r2, [r0, #0xfdc] -_0207AB74: - ldr r0, _0207AB88 @ =0x022B98F0 - mov r1, #0 - str r1, [r0, #8] - bx lr - .align 2, 0 -_0207AB84: .4byte 0x027FFD9C -_0207AB88: .4byte 0x022B98F0 -_0207AB8C: .4byte 0x0207AB94 -_0207AB90: .4byte 0x027E3000 - arm_func_end FUN_0207ab24 -_0207AB94: - .byte 0x74, 0xC0, 0x9F, 0xE5, 0x00, 0xC0, 0x9C, 0xE5, 0x00, 0x00, 0x5C, 0xE3 - .byte 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0xEA, 0x0F, 0xE0, 0xA0, 0xE1, 0x00, 0x00, 0x00, 0x1A - .byte 0x00, 0x00, 0x00, 0xEA, 0x1C, 0xFF, 0x2F, 0xE1, 0x54, 0xC0, 0x9F, 0xE5, 0x0F, 0x60, 0x2C, 0xE9 - .byte 0x01, 0x00, 0x0D, 0xE2, 0x0C, 0xD0, 0xA0, 0xE1, 0x00, 0x10, 0x0F, 0xE1, 0x1F, 0x10, 0x01, 0xE2 - .byte 0x17, 0x00, 0x31, 0xE3, 0x01, 0x00, 0x00, 0x1A, 0x0E, 0x00, 0x00, 0xEB, 0x02, 0x00, 0x00, 0xEA - .byte 0x1B, 0x00, 0x31, 0xE3, 0x00, 0x00, 0x00, 0x1A, 0x0A, 0x00, 0x00, 0xEB, 0x1C, 0xC0, 0x9F, 0xE5 - .byte 0x00, 0xC0, 0x9C, 0xE5, 0x00, 0x00, 0x5C, 0xE3, 0xFE, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0xA0, 0xE1 - .byte 0xFD, 0xFF, 0xFF, 0xEA, 0x0F, 0x50, 0xBD, 0xE8, 0x0C, 0xD0, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xF0, 0x98, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x02 - - arm_func_start FUN_0207ac18 -FUN_0207ac18: @ 0x0207AC18 - push {r0, lr} - bl FUN_0207ac2c - bl FUN_0207acbc - pop {r0, lr} - bx lr - arm_func_end FUN_0207ac18 - - arm_func_start FUN_0207ac2c -FUN_0207ac2c: @ 0x0207AC2C - ldr r1, _0207ACB8 @ =0x022B991C - mrs r2, apsr - str r2, [r1, #0x74] - str r0, [r1, #0x6c] - ldr r0, [ip] - str r0, [r1, #4] - ldr r0, [ip, #4] - str r0, [r1, #8] - ldr r0, [ip, #8] - str r0, [r1, #0xc] - ldr r0, [ip, #0xc] - str r0, [r1, #0x10] - ldr r2, [ip, #0x10] - bic r2, r2, #1 - add r0, r1, #0x14 - stm r0, {r4, r5, r6, r7, r8, sb, sl, fp} - str ip, [r1, #0x70] - ldr r0, [r2] - str r0, [r1, #0x64] - ldr r3, [r2, #4] - str r3, [r1] - ldr r0, [r2, #8] - str r0, [r1, #0x34] - ldr r0, [r2, #0xc] - str r0, [r1, #0x40] - mrs r0, apsr - orr r3, r3, #0x80 - bic r3, r3, #0x20 - msr cpsr_fsxc, r3 - str sp, [r1, #0x38] - str lr, [r1, #0x3c] - mrs r2, spsr - str r2, [r1, #0x7c] - msr cpsr_fsxc, r0 - bx lr - .align 2, 0 -_0207ACB8: .4byte 0x022B991C - arm_func_end FUN_0207ac2c - - arm_func_start FUN_0207acbc -FUN_0207acbc: @ 0x0207ACBC - push {r3, lr} - ldr r0, _0207AD20 @ =0x022B98F0 - ldr r0, [r0, #8] - cmp r0, #0 - popeq {r3, pc} - mrs r2, apsr - mov r0, sp - ldr r1, _0207AD24 @ =0x0000009F - msr cpsr_fsxc, r1 - mov r1, sp - mov sp, r0 - push {r1, r2} - bl FUN_0207aae0 - ldr r0, _0207AD28 @ =0x022B991C - ldr r1, _0207AD2C @ =0x022B98F4 - ldr r1, [r1] - ldr ip, _0207AD30 @ =0x022B98F8 - ldr ip, [ip] - ldr lr, _0207AD34 @ =0x0207AD0C - bx ip -_0207AD0C: - .byte 0x77, 0xFF, 0xFF, 0xEB - .byte 0x06, 0x00, 0xBD, 0xE8, 0x01, 0xD0, 0xA0, 0xE1, 0x02, 0xF0, 0x2F, 0xE1, 0x08, 0x80, 0xBD, 0xE8 -_0207AD20: .4byte 0x022B98F0 -_0207AD24: .4byte 0x0000009F -_0207AD28: .4byte 0x022B991C -_0207AD2C: .4byte 0x022B98F4 -_0207AD30: .4byte 0x022B98F8 -_0207AD34: .4byte 0x0207AD0C - arm_func_end FUN_0207acbc - - arm_func_start FUN_0207ad38 -FUN_0207ad38: @ 0x0207AD38 - ldr r1, _0207AD50 @ =0x022B999C - mov r2, #1 - ldrh r3, [r1] - orr r0, r3, r2, lsl r0 - strh r0, [r1] - bx lr - .align 2, 0 -_0207AD50: .4byte 0x022B999C - arm_func_end FUN_0207ad38 - - arm_func_start FUN_0207ad54 -FUN_0207ad54: @ 0x0207AD54 - push {r3, lr} - ldr r1, _0207ADC0 @ =0x022B99A0 - ldrh r0, [r1] - cmp r0, #0 - popne {r3, pc} - mov r2, #1 - mov r0, #0 - strh r2, [r1] - bl FUN_0207ad38 - ldr r0, _0207ADC0 @ =0x022B99A0 - mov r2, #0 - str r2, [r0, #8] - ldr r3, _0207ADC4 @ =0x04000102 - str r2, [r0, #0xc] - strh r2, [r3] - ldr r1, _0207ADC8 @ =0x0207ADDC - strh r2, [r3, #-2] - mov r2, #0xc1 - mov r0, #8 - strh r2, [r3] - bl FUN_02078a98 - mov r0, #8 - bl FUN_02078c68 - ldr r0, _0207ADC0 @ =0x022B99A0 - mov r1, #0 - str r1, [r0, #4] - pop {r3, pc} - .align 2, 0 -_0207ADC0: .4byte 0x022B99A0 -_0207ADC4: .4byte 0x04000102 -_0207ADC8: .4byte 0x0207ADDC - arm_func_end FUN_0207ad54 - - arm_func_start FUN_0207adcc -FUN_0207adcc: @ 0x0207ADCC - ldr r0, _0207ADD8 @ =0x022B99A0 - ldrh r0, [r0] - bx lr - .align 2, 0 -_0207ADD8: .4byte 0x022B99A0 - arm_func_end FUN_0207adcc -_0207ADDC: - .byte 0x50, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x30, 0xA0, 0xE3, 0x08, 0x20, 0x90, 0xE5, 0x0C, 0x10, 0x90, 0xE5, 0x01, 0x20, 0x92, 0xE2 - .byte 0x08, 0x20, 0x80, 0xE5, 0x00, 0x10, 0xA1, 0xE2, 0x0C, 0x10, 0x80, 0xE5, 0x04, 0x10, 0x90, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x28, 0x20, 0x9F, 0xE5, 0xC1, 0x10, 0xA0, 0xE3 - .byte 0xB0, 0x30, 0xC2, 0xE1, 0xB2, 0x30, 0x42, 0xE1, 0xB0, 0x10, 0xC2, 0xE1, 0x04, 0x30, 0x80, 0xE5 - .byte 0x14, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x10, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE1 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xA0, 0x99, 0x2B, 0x02, 0x02, 0x01, 0x00, 0x04, 0xF4, 0x8B, 0x07, 0x02 - .byte 0xDC, 0xAD, 0x07, 0x02 - - arm_func_start FUN_0207ae44 -FUN_0207ae44: @ 0x0207AE44 - stmdb sp!, {lr} - sub sp, sp, #0xc - bl EnableIrqFlag - ldr lr, _0207AED8 @ =0x04000100 - ldr r2, _0207AEDC @ =0x0000FFFF - ldrh ip, [lr] - ldr r3, _0207AEE0 @ =0x022B99A0 - sub r1, r2, #0x10000 - strh ip, [sp] - ldr ip, [r3, #8] - ldr r3, [r3, #0xc] - and ip, ip, r1 - and r1, r3, r2 - str ip, [sp, #4] - str r1, [sp, #8] - ldr r1, [lr, #0x114] - tst r1, #8 - beq _0207AEB0 - ldrh r1, [sp] - tst r1, #0x8000 - bne _0207AEB0 - ldr r2, [sp, #4] - ldr r1, [sp, #8] - adds r2, r2, #1 - adc r1, r1, #0 - str r2, [sp, #4] - str r1, [sp, #8] -_0207AEB0: - bl SetIrqFlag - ldr r2, [sp, #4] - ldr r1, [sp, #8] - ldrh r0, [sp] - lsl r1, r1, #0x10 - orr r1, r1, r2, lsr #16 - orr r1, r1, r0, asr #31 - orr r0, r0, r2, lsl #16 - add sp, sp, #0xc - ldm sp!, {pc} - .align 2, 0 -_0207AED8: .4byte 0x04000100 -_0207AEDC: .4byte 0x0000FFFF -_0207AEE0: .4byte 0x022B99A0 - arm_func_end FUN_0207ae44 - - arm_func_start FUN_0207aee4 -FUN_0207aee4: @ 0x0207AEE4 - ldr r0, _0207AEF0 @ =0x04000100 - ldrh r0, [r0] - bx lr - .align 2, 0 -_0207AEF0: .4byte 0x04000100 - arm_func_end FUN_0207aee4 - - arm_func_start FUN_0207aef4 -FUN_0207aef4: @ 0x0207AEF4 + arm_func_start ov00_022D1988 +ov00_022D1988: @ 0x022D1988 push {r4, r5, r6, lr} - mov r5, r0 - mov r4, r1 - bl EnableIrqFlag - lsr r3, r5, #0x10 - mov ip, #1 - rsb r1, ip, #0x10000 - ldr lr, _0207AF58 @ =0x04000214 - mov r6, #8 - ldr r2, _0207AF5C @ =0x022B99A0 - str r6, [lr] - str ip, [r2, #4] - orr r3, r3, r4, lsl #16 - str r3, [r2, #8] - lsr r4, r4, #0x10 - ldr r3, _0207AF60 @ =0x04000102 - str r4, [r2, #0xc] - mov r2, #0 - strh r2, [r3] - and r1, r5, r1 - strh r1, [r3, #-2] - mov r1, #0xc1 - strh r1, [r3] - bl SetIrqFlag - pop {r4, r5, r6, pc} - .align 2, 0 -_0207AF58: .4byte 0x04000214 -_0207AF5C: .4byte 0x022B99A0 -_0207AF60: .4byte 0x04000102 - arm_func_end FUN_0207aef4 - - arm_func_start FUN_0207af64 -FUN_0207af64: @ 0x0207AF64 - push {r3, r4, r5, lr} - mov r4, r0 - bl FUN_0207ae44 - ldr r3, _0207AFE0 @ =0x04000106 - mov r2, #0 - strh r2, [r3] - ldr ip, [r4, #0xc] - ldr r3, [r4, #0x10] - subs r5, ip, r0 - sbc r4, r3, r1 - ldr r1, _0207AFE4 @ =FUN_0207b270 - mov r0, #1 - bl FUN_02078bf4 - subs r0, r5, #0 - mov r3, #0 - sbcs r0, r4, #0 - ldrlt r3, _0207AFE8 @ =0x0000FFFE - blt _0207AFC4 - subs r0, r5, #0x10000 - sbcs r0, r4, r3 - bge _0207AFC4 - mvn r0, r5 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 -_0207AFC4: - ldr r2, _0207AFEC @ =0x04000104 - mov r1, #0xc1 - strh r3, [r2] - mov r0, #0x10 - strh r1, [r2, #2] - bl FUN_02078c68 - pop {r3, r4, r5, pc} - .align 2, 0 -_0207AFE0: .4byte 0x04000106 -_0207AFE4: .4byte FUN_0207b270 -_0207AFE8: .4byte 0x0000FFFE -_0207AFEC: .4byte 0x04000104 - arm_func_end FUN_0207af64 - - arm_func_start FUN_0207aff0 -FUN_0207aff0: @ 0x0207AFF0 - push {r3, lr} - ldr r1, _0207B02C @ =0x022B99B0 - ldrh r0, [r1] - cmp r0, #0 - popne {r3, pc} - mov r0, #1 - strh r0, [r1] - bl FUN_0207ad38 - ldr r1, _0207B02C @ =0x022B99B0 - mov r2, #0 - str r2, [r1, #4] - mov r0, #0x10 - str r2, [r1, #8] - bl FUN_02078c98 - pop {r3, pc} - .align 2, 0 -_0207B02C: .4byte 0x022B99B0 - arm_func_end FUN_0207aff0 -_0207B030: - .byte 0x04, 0x00, 0x9F, 0xE5, 0xB0, 0x00, 0xD0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0x99, 0x2B, 0x02 - - arm_func_start FUN_0207b040 -FUN_0207b040: @ 0x0207B040 - mov r1, #0 - str r1, [r0] - str r1, [r0, #8] - bx lr - arm_func_end FUN_0207b040 - - arm_func_start FUN_0207b050 -FUN_0207b050: @ 0x0207B050 - push {r4, r5, r6, r7, r8, lr} - mov r8, r0 - ldr r0, [r8, #0x20] - ldr r3, [r8, #0x1c] - cmp r0, #0 - mov r7, r1 - mov r6, r2 - cmpeq r3, #0 - beq _0207B0C4 - bl FUN_0207ae44 - ldr r6, [r8, #0x28] - ldr r7, [r8, #0x24] - cmp r6, r1 - cmpeq r7, r0 - bhs _0207B0C4 - ldr r5, [r8, #0x1c] - ldr r4, [r8, #0x20] - subs r0, r0, r7 - mov r2, r5 - mov r3, r4 - sbc r1, r1, r6 - bl FUN_0208fe3c - adds r2, r0, #1 - adc r0, r1, #0 - umull r3, r1, r5, r2 - mla r1, r5, r0, r1 - mla r1, r4, r2, r1 - adds r7, r7, r3 - adc r6, r6, r1 -_0207B0C4: - str r7, [r8, #0xc] - ldr r0, _0207B178 @ =0x022B99B0 - str r6, [r8, #0x10] - ldr r5, [r0, #4] - cmp r5, #0 - beq _0207B140 - mov r2, #0 - mov r1, r2 -_0207B0E4: - ldr r3, [r5, #0xc] - ldr r0, [r5, #0x10] - subs r4, r7, r3 - sbc r3, r6, r0 - subs r0, r4, r1 - sbcs r0, r3, r2 - bge _0207B134 - ldr r0, [r5, #0x14] - str r0, [r8, #0x14] - str r8, [r5, #0x14] - str r5, [r8, #0x18] - ldr r0, [r8, #0x14] - cmp r0, #0 - strne r8, [r0, #0x18] - popne {r4, r5, r6, r7, r8, pc} - ldr r1, _0207B178 @ =0x022B99B0 - mov r0, r8 - str r8, [r1, #4] - bl FUN_0207af64 - pop {r4, r5, r6, r7, r8, pc} -_0207B134: - ldr r5, [r5, #0x18] - cmp r5, #0 - bne _0207B0E4 -_0207B140: - ldr r1, _0207B178 @ =0x022B99B0 - mov r0, #0 - str r0, [r8, #0x18] - ldr r0, [r1, #8] - str r8, [r1, #8] - str r0, [r8, #0x14] - cmp r0, #0 - strne r8, [r0, #0x18] - popne {r4, r5, r6, r7, r8, pc} - str r8, [r1, #8] - mov r0, r8 - str r8, [r1, #4] - bl FUN_0207af64 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0207B178: .4byte 0x022B99B0 - arm_func_end FUN_0207b050 - - arm_func_start FUN_0207b17c -FUN_0207b17c: @ 0x0207B17C - push {r3, r4, r5, r6, r7, lr} - movs r6, r0 + mov r6, r0 mov r5, r1 mov r4, r2 - mov r7, r3 - beq _0207B1A0 - ldr r0, [r6] - cmp r0, #0 - beq _0207B1A4 -_0207B1A0: - bl WaitForever2 -_0207B1A4: - bl EnableIrqFlag - mov r1, #0 - str r1, [r6, #0x1c] - str r1, [r6, #0x20] - str r7, [r6] - ldr r1, [sp, #0x18] - mov r7, r0 - str r1, [r6, #4] - bl FUN_0207ae44 - adds r3, r5, r0 - adc r2, r4, r1 - mov r0, r6 - mov r1, r3 - bl FUN_0207b050 - mov r0, r7 - bl SetIrqFlag - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0207b17c + add r0, r6, #0x2ec + bl ov00_022D39D0 + mov r1, r5 + mov r2, r4 + add r0, r6, #0x3a4 + bl ov00_022D3104 + pop {r4, r5, r6, pc} + arm_func_end ov00_022D1988 - arm_func_start FUN_0207b1e8 -FUN_0207b1e8: @ 0x0207B1E8 - push {r3, r4, r5, lr} - mov r5, r0 - bl EnableIrqFlag - ldr r1, [r5] - mov r4, r0 - cmp r1, #0 - bne _0207B20C - bl SetIrqFlag - pop {r3, r4, r5, pc} -_0207B20C: - ldr r0, [r5, #0x18] - cmp r0, #0 - ldrne r1, [r5, #0x14] - strne r1, [r0, #0x14] - bne _0207B22C - ldr r2, [r5, #0x14] - ldr r1, _0207B26C @ =0x022B99B0 - str r2, [r1, #8] -_0207B22C: - ldr r1, [r5, #0x14] - cmp r1, #0 - strne r0, [r1, #0x18] - bne _0207B250 - ldr r1, _0207B26C @ =0x022B99B0 - cmp r0, #0 - str r0, [r1, #4] - beq _0207B250 - bl FUN_0207af64 -_0207B250: - mov r1, #0 - str r1, [r5] - str r1, [r5, #0x1c] - mov r0, r4 - str r1, [r5, #0x20] - bl SetIrqFlag - pop {r3, r4, r5, pc} - .align 2, 0 -_0207B26C: .4byte 0x022B99B0 - arm_func_end FUN_0207b1e8 - - arm_func_start FUN_0207b270 -FUN_0207b270: @ 0x0207B270 - push {r0, lr} - bl FUN_0207b280 - pop {r0, lr} - bx lr - arm_func_end FUN_0207b270 - - arm_func_start FUN_0207b280 -FUN_0207b280: @ 0x0207B280 - push {r3, r4, r5, lr} - ldr r1, _0207B364 @ =0x04000106 - mov r2, #0 - mov r0, #0x10 - strh r2, [r1] - bl FUN_02078c98 - ldr r0, _0207B368 @ =0x027E0000 - add r0, r0, #0x3000 - ldr r1, [r0, #0xff8] - orr r1, r1, #0x10 - str r1, [r0, #0xff8] - bl FUN_0207ae44 - ldr r2, _0207B36C @ =0x022B99B0 - ldr r4, [r2, #4] - cmp r4, #0 - popeq {r3, r4, r5, pc} - ldr r3, [r4, #0x10] - ldr ip, [r4, #0xc] - cmp r1, r3 - cmpeq r0, ip - bhs _0207B2E0 - mov r0, r4 - bl FUN_0207af64 - pop {r3, r4, r5, pc} -_0207B2E0: - ldr r1, [r4, #0x18] - mov r0, #0 - str r1, [r2, #4] - cmp r1, #0 - streq r0, [r2, #8] - strne r0, [r1, #0x14] - ldr r0, [r4, #0x20] - ldr r1, [r4, #0x1c] - cmp r0, #0 - ldr r5, [r4] - mov r0, #0 - cmpeq r1, #0 - streq r0, [r4] - cmp r5, #0 - beq _0207B324 - ldr r0, [r4, #4] - blx r5 -_0207B324: - ldr r0, [r4, #0x20] - ldr r1, [r4, #0x1c] - cmp r0, #0 - cmpeq r1, #0 - mov r1, #0 - beq _0207B34C - mov r0, r4 - mov r2, r1 - str r5, [r4] - bl FUN_0207b050 -_0207B34C: - ldr r0, _0207B36C @ =0x022B99B0 - ldr r0, [r0, #4] - cmp r0, #0 - popeq {r3, r4, r5, pc} - bl FUN_0207af64 - pop {r3, r4, r5, pc} - .align 2, 0 -_0207B364: .4byte 0x04000106 -_0207B368: .4byte 0x027E0000 -_0207B36C: .4byte 0x022B99B0 - arm_func_end FUN_0207b280 - - arm_func_start FUN_0207b370 -FUN_0207b370: @ 0x0207B370 - push {r3, lr} - ldr r1, _0207B3B4 @ =0x022B99BC - ldrh r0, [r1] - cmp r0, #0 - popne {r3, pc} - mov r0, #1 - strh r0, [r1] - mov r2, #0 - str r2, [r1, #0xc] - mov r0, #4 - str r2, [r1, #0x10] - bl FUN_02078c98 - ldr r0, _0207B3B4 @ =0x022B99BC - mov r1, #0 - str r1, [r0, #8] - str r1, [r0, #4] - pop {r3, pc} - .align 2, 0 -_0207B3B4: .4byte 0x022B99BC - arm_func_end FUN_0207b370 - - arm_func_start FUN_0207b3b8 -FUN_0207b3b8: @ 0x0207B3B8 - push {r3, lr} - ldr r1, _0207B430 @ =0x022B99BC - ldr r3, [r1, #0xc] - cmp r3, #0 - beq _0207B428 - ldr ip, [r0, #0xc] -_0207B3D0: - ldr r1, [r3, #0xc] - cmp r1, ip - blo _0207B41C - bne _0207B3F0 - ldrsh r2, [r3, #0x10] - ldrsh r1, [r0, #0x10] - cmp r2, r1 - ble _0207B41C -_0207B3F0: - ldr r1, [r3, #0x14] - str r1, [r0, #0x14] - str r3, [r0, #0x18] - str r0, [r3, #0x14] - cmp r1, #0 - strne r0, [r1, #0x18] - popne {r3, pc} - ldr r1, _0207B430 @ =0x022B99BC - str r0, [r1, #0xc] - bl FUN_0207b544 - pop {r3, pc} -_0207B41C: - ldr r3, [r3, #0x18] - cmp r3, #0 - bne _0207B3D0 -_0207B428: - bl FUN_0207b434 - pop {r3, pc} - .align 2, 0 -_0207B430: .4byte 0x022B99BC - arm_func_end FUN_0207b3b8 - - arm_func_start FUN_0207b434 -FUN_0207b434: @ 0x0207B434 - push {r3, lr} - ldr r1, _0207B468 @ =0x022B99BC - mov r2, #0 - ldr r3, [r1, #0x10] - str r3, [r0, #0x14] - str r2, [r0, #0x18] - str r0, [r1, #0x10] - cmp r3, #0 - strne r0, [r3, #0x18] - popne {r3, pc} - str r0, [r1, #0xc] - bl FUN_0207b544 - pop {r3, pc} - .align 2, 0 -_0207B468: .4byte 0x022B99BC - arm_func_end FUN_0207b434 - - arm_func_start FUN_0207b46c -FUN_0207b46c: @ 0x0207B46C - cmp r0, #0 - bxeq lr - ldr r2, [r0, #0x18] - ldr r1, [r0, #0x14] - cmp r2, #0 - ldreq r0, _0207B4A0 @ =0x022B99BC - strne r1, [r2, #0x14] - streq r1, [r0, #0x10] - cmp r1, #0 - ldreq r0, _0207B4A0 @ =0x022B99BC - strne r2, [r1, #0x18] - streq r2, [r0, #0xc] - bx lr - .align 2, 0 -_0207B4A0: .4byte 0x022B99BC - arm_func_end FUN_0207b46c - - arm_func_start FUN_0207b4a4 -FUN_0207b4a4: @ 0x0207B4A4 - mov r1, #0 - str r1, [r0] - str r1, [r0, #8] - str r1, [r0, #0x20] - bx lr - arm_func_end FUN_0207b4a4 - - arm_func_start FUN_0207b4b8 -FUN_0207b4b8: @ 0x0207B4B8 - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov r8, r0 - mov r7, r1 - mov r6, r2 - mov r5, r3 - bl EnableIrqFlag - mov r4, r0 - cmp r8, #0 - beq _0207B4E8 - ldr r0, [r8] - cmp r0, #0 - beq _0207B4EC -_0207B4E8: - bl WaitForever2 -_0207B4EC: - ldr r0, _0207B540 @ =0x04000006 - ldrh sb, [r0] - mov r0, sb - bl FUN_0207b790 - mov r1, #1 - str r1, [r8, #0x1c] - cmp r7, sb - strh r7, [r8, #0x10] - addle r0, r0, #1 - str r0, [r8, #0xc] - strh r6, [r8, #0x12] - ldr r1, [sp, #0x20] - str r5, [r8] - str r1, [r8, #4] - mov r1, #0 - mov r0, r8 - str r1, [r8, #0x24] - bl FUN_0207b3b8 - mov r0, r4 - bl SetIrqFlag - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_0207B540: .4byte 0x04000006 - arm_func_end FUN_0207b4b8 - - arm_func_start FUN_0207b544 -FUN_0207b544: @ 0x0207B544 - push {r4, lr} - ldr r1, _0207B57C @ =FUN_0207b5cc - mov r4, r0 - mov r0, #4 - bl FUN_02078a98 - ldrsh r0, [r4, #0x10] - bl FUN_020761c0 - ldr r2, _0207B580 @ =0x04000004 - mov r0, #4 - ldrh r1, [r2] - orr r1, r1, #0x20 - strh r1, [r2] - bl FUN_02078c68 - pop {r4, pc} - .align 2, 0 -_0207B57C: .4byte FUN_0207b5cc -_0207B580: .4byte 0x04000004 - arm_func_end FUN_0207b544 - - arm_func_start FUN_0207b584 -FUN_0207b584: @ 0x0207B584 - push {r3, r4, r5, lr} - mov r5, r0 - bl EnableIrqFlag - mov r1, #1 - str r1, [r5, #0x24] - ldr r1, [r5] - mov r4, r0 - cmp r1, #0 - bne _0207B5B0 - bl SetIrqFlag - pop {r3, r4, r5, pc} -_0207B5B0: - mov r0, r5 - bl FUN_0207b46c - mov r1, #0 - mov r0, r4 - str r1, [r5] - bl SetIrqFlag - pop {r3, r4, r5, pc} - arm_func_end FUN_0207b584 - - arm_func_start FUN_0207b5cc -FUN_0207b5cc: @ 0x0207B5CC + arm_func_start ov00_022D19B4 +ov00_022D19B4: @ 0x022D19B4 push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov r0, #4 - bl FUN_02078c98 - ldr r2, _0207B734 @ =0x04000004 - ldr r0, _0207B738 @ =0x027E0000 - ldrh r1, [r2] - add r0, r0, #0x3000 - bic r1, r1, #0x20 - strh r1, [r2] - ldr r1, [r0, #0xff8] - orr r1, r1, #4 - str r1, [r0, #0xff8] - ldrh r0, [r2] - asr r1, r0, #8 - lsl r0, r0, #1 - and r1, r1, #0xff - and r0, r0, #0x100 - orr r0, r1, r0 - sub r0, r0, #1 - bl FUN_0207b790 - ldr r4, _0207B73C @ =0x022B99BC - ldr sl, [r4, #0xc] - cmp sl, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldr sb, _0207B740 @ =0x04000006 - mov fp, #4 - sub r6, sb, #2 - mov r5, #0 -_0207B63C: - ldrh r8, [sb] + mov sb, r0 + ldrb r2, [sb, #0x455] + mov r8, r1 + cmp r2, #9 + bne _022D19E0 + ldr r1, _022D1C30 @ =0x023250B8 mov r0, r8 - bl FUN_0207b790 - mov r7, r0 - mov r0, sl - mov r1, r7 - mov r2, r8 - bl FUN_0207b744 - cmp r0, #0 - beq _0207B678 + ldr r1, [r1] + blx r1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022D19E0: + ldrb r3, [r8, #3] + ldrb r1, [r8, #4] + add r0, r2, #0xf9 + and r0, r0, #0xff + add r1, r1, r3, lsl #8 cmp r0, #1 - beq _0207B6B4 + add r6, r1, #5 + ldrb r4, [r8] + bhi _022D1A0C + cmp r4, #0x15 + bne _022D1A1C +_022D1A0C: + cmp r4, #0x15 + bne _022D1A4C + cmp r6, #7 + bls _022D1A4C +_022D1A1C: + mov r0, sb + mov r1, r8 + bl ov00_022D14E8 + ldrb r2, [sb, #0x455] + mov r6, r0 + cmp r2, #9 + bne _022D1A4C + ldr r1, _022D1C30 @ =0x023250B8 + mov r0, r8 + ldr r1, [r1] + blx r1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022D1A4C: + sub r0, r4, #0x14 + cmp r0, #3 + add r5, r8, #5 + sub r6, r6, #5 + addls pc, pc, r0, lsl #2 + b _022D1C14 +_022D1A64: @ jump table + b _022D1A74 @ case 0 + b _022D1AA4 @ case 1 + b _022D1AB8 @ case 2 + b _022D1BF4 @ case 3 +_022D1A74: + ldr r0, [sb, #0x1d4] + cmp r0, #0 + moveq r0, #9 + strbeq r0, [sb, #0x455] + beq _022D1C1C + add r0, sb, #0x2e4 + mov r1, #0 + mov r2, #8 + bl FUN_0207C40C + mov r0, #7 + strb r0, [sb, #0x455] + b _022D1C1C +_022D1AA4: + ldrb r0, [r5] cmp r0, #2 - beq _0207B708 - b _0207B724 -_0207B678: - mov r0, sl - bl FUN_0207b544 - ldrh r1, [sb] - ldrsh r0, [sl, #0x10] - cmp r0, r1 - ldreq r0, [sl, #0xc] - cmpeq r0, r7 - popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - mov r0, fp - bl FUN_02078c98 - ldrh r1, [r6] - mov r0, #4 - bic r1, r1, #0x20 - strh r1, [r6] - bl FUN_02078cc8 -_0207B6B4: - ldr r7, [sl] - mov r0, sl - bl FUN_0207b46c - str r5, [sl] - cmp r7, #0 - beq _0207B6D4 - ldr r0, [sl, #4] - blx r7 -_0207B6D4: - ldr r0, [sl, #0x1c] + moveq r0, #9 + strbeq r0, [sb, #0x455] + b _022D1C1C +_022D1AB8: + mov fp, #4 + mov sl, #1 + mov r4, #0 +_022D1AC4: + ldrb r7, [r5, #2] + ldrb r0, [r5, #1] + ldrb r3, [r5] + ldrb r1, [r5, #3] + lsl r7, r7, #8 + add r0, r7, r0, lsl #16 + cmp r3, #0xb + add r7, r1, r0 + add r5, r5, #4 + bgt _022D1B14 + cmp r3, #0xb + bge _022D1B88 + cmp r3, #2 + bgt _022D1BBC + cmp r3, #1 + blt _022D1BBC + beq _022D1B44 + cmp r3, #2 + beq _022D1B78 + b _022D1BBC +_022D1B14: + sub r0, r3, #0xd + cmp r0, #7 + addls pc, pc, r0, lsl #2 + b _022D1BBC +_022D1B24: @ jump table + b _022D1B9C @ case 0 + b _022D1BA4 @ case 1 + b _022D1BBC @ case 2 + b _022D1B68 @ case 3 + b _022D1BBC @ case 4 + b _022D1BBC @ case 5 + b _022D1BBC @ case 6 + b _022D1BAC @ case 7 +_022D1B44: + ldrb r0, [sb, #0x454] cmp r0, #0 - beq _0207B724 - ldr r0, [sl, #0x24] - cmp r0, #0 - bne _0207B724 - str r7, [sl] - ldr r1, [r4, #8] - mov r0, sl - add r1, r1, #1 - str r1, [sl, #0xc] - bl FUN_0207b3b8 - b _0207B724 -_0207B708: - mov r0, sl - bl FUN_0207b46c - ldr r1, [r4, #8] - mov r0, sl - add r1, r1, #1 - str r1, [sl, #0xc] - bl FUN_0207b3b8 -_0207B724: - ldr sl, [r4, #0xc] - cmp sl, #0 - bne _0207B63C + beq _022D1BC4 + cmp r2, #0 + bne _022D1BC4 + mov r0, sb + mov r1, r5 + bl ov00_022D0C54 + b _022D1BC4 +_022D1B68: + mov r0, sb + mov r1, r5 + bl ov00_022D11F8 + b _022D1BC4 +_022D1B78: + mov r0, sb + mov r1, r5 + bl ov00_022D0A1C + b _022D1BC4 +_022D1B88: + mov r0, sb + mov r1, r5 + bl ov00_022D07F8 + strb r4, [sb, #0x5ac] + b _022D1BC4 +_022D1B9C: + strb sl, [sb, #0x5ac] + b _022D1BC4 +_022D1BA4: + strb fp, [sb, #0x455] + b _022D1BC4 +_022D1BAC: + mov r0, sb + mov r1, r5 + bl ov00_022D13EC + b _022D1BC4 +_022D1BBC: + mov r0, #9 + strb r0, [sb, #0x455] +_022D1BC4: + mov r0, sb + sub r1, r5, #4 + add r2, r7, #4 + bl ov00_022D1988 + add r0, r7, #4 + add r5, r5, r7 + subs r6, r6, r0 + beq _022D1C1C + ldrb r2, [sb, #0x455] + cmp r2, #9 + bne _022D1AC4 + b _022D1C1C +_022D1BF4: + str r8, [sb, #0x824] + mov r0, #5 + str r0, [sb, #0x82c] + add r0, r6, #5 + str r0, [sb, #0x828] + mov r0, #1 + strb r0, [sb, #0x456] + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022D1C14: + mov r0, #9 + strb r0, [sb, #0x455] +_022D1C1C: + ldr r1, _022D1C30 @ =0x023250B8 + mov r0, r8 + ldr r1, [r1] + blx r1 pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 -_0207B734: .4byte 0x04000004 -_0207B738: .4byte 0x027E0000 -_0207B73C: .4byte 0x022B99BC -_0207B740: .4byte 0x04000006 - arm_func_end FUN_0207b5cc +_022D1C30: .4byte 0x023250B8 + arm_func_end ov00_022D19B4 - arm_func_start FUN_0207b744 -FUN_0207b744: @ 0x0207B744 - ldrsh r3, [r0, #0x10] - ldr ip, [r0, #0xc] - subs r1, r1, ip - sub r2, r2, r3 - bmi _0207B768 - cmp r1, #0 - bne _0207B770 - cmp r2, #0 - bge _0207B770 -_0207B768: - mov r0, #0 - bx lr -_0207B770: - ldrsh r0, [r0, #0x12] - cmp r2, #0 - addlt r1, r2, #7 - addlt r2, r1, #0x100 - cmp r2, r0 - movle r0, #1 - movgt r0, #2 - bx lr - arm_func_end FUN_0207b744 - - arm_func_start FUN_0207b790 -FUN_0207b790: @ 0x0207B790 - push {r4, lr} - mov r4, r0 - bl EnableIrqFlag - ldr r1, _0207B7CC @ =0x022B99BC - ldr r2, [r1, #4] - cmp r4, r2 - ldrlt r2, [r1, #8] - addlt r2, r2, #1 - strlt r2, [r1, #8] - ldr r1, _0207B7CC @ =0x022B99BC - str r4, [r1, #4] - bl SetIrqFlag - ldr r0, _0207B7CC @ =0x022B99BC - ldr r0, [r0, #8] - pop {r4, pc} - .align 2, 0 -_0207B7CC: .4byte 0x022B99BC - arm_func_end FUN_0207b790 - - arm_func_start ClearIrqFlag -ClearIrqFlag: @ 0x0207B7D0 - mrs r0, apsr - bic r1, r0, #0x80 - msr cpsr_c, r1 - and r0, r0, #0x80 - bx lr - arm_func_end ClearIrqFlag - - arm_func_start EnableIrqFlag -EnableIrqFlag: @ 0x0207B7E4 - mrs r0, apsr - orr r1, r0, #0x80 - msr cpsr_c, r1 - and r0, r0, #0x80 - bx lr - arm_func_end EnableIrqFlag - - arm_func_start SetIrqFlag -SetIrqFlag: @ 0x0207B7F8 - mrs r1, apsr - bic r2, r1, #0x80 - orr r2, r2, r0 - msr cpsr_c, r2 - and r0, r1, #0x80 - bx lr - arm_func_end SetIrqFlag - - arm_func_start EnableIrqFiqFlags -EnableIrqFiqFlags: @ 0x0207B810 - mrs r0, apsr - orr r1, r0, #0xc0 - msr cpsr_c, r1 - and r0, r0, #0xc0 - bx lr - arm_func_end EnableIrqFiqFlags - - arm_func_start SetIrqFiqFlags -SetIrqFiqFlags: @ 0x0207B824 - mrs r1, apsr - bic r2, r1, #0xc0 - orr r2, r2, r0 - msr cpsr_c, r2 - and r0, r1, #0xc0 - bx lr - arm_func_end SetIrqFiqFlags - - arm_func_start GetIrqFlag -GetIrqFlag: @ 0x0207B83C - mrs r0, apsr - and r0, r0, #0x80 - bx lr - arm_func_end GetIrqFlag - - arm_func_start FUN_0207b848 -FUN_0207b848: @ 0x0207B848 - mrs r0, apsr - and r0, r0, #0x1f - bx lr - arm_func_end FUN_0207b848 -_0207B854: - subs r0, r0, #4 - bhs _0207B854 - bx lr - - arm_func_start FUN_0207b860 -FUN_0207b860: @ 0x0207B860 - push {r3, lr} - mov r0, #1 - blx FUN_02000088 - mov r0, #1 - mov r1, r0 - bl FUN_02078900 - pop {r3, pc} - arm_func_end FUN_0207b860 - - arm_func_start FUN_0207b87c -FUN_0207b87c: @ 0x0207B87C - push {r3, r4, r5, lr} - ldr r0, _0207B8C8 @ =0x022B99D0 - ldrh r1, [r0, #2] - cmp r1, #0 - popne {r3, r4, r5, pc} - mov r1, #1 - strh r1, [r0, #2] - bl thunk_FUN_0207d9b0 - mov r5, #0xc - mov r4, #1 -_0207B8A4: - mov r0, r5 - mov r1, r4 - bl FUN_0207dafc - cmp r0, #0 - beq _0207B8A4 - ldr r1, _0207B8CC @ =FUN_0207b8d0 - mov r0, #0xc - bl FUN_0207dab0 - pop {r3, r4, r5, pc} - .align 2, 0 -_0207B8C8: .4byte 0x022B99D0 -_0207B8CC: .4byte FUN_0207b8d0 - arm_func_end FUN_0207b87c - - arm_func_start FUN_0207b8d0 -FUN_0207b8d0: @ 0x0207B8D0 - push {r3, lr} - and r0, r1, #0x7f00 - lsl r0, r0, #8 - lsr r0, r0, #0x10 - cmp r0, #0x10 - bne _0207B8F8 - ldr r0, _0207B900 @ =0x022B99D0 - mov r1, #1 - strh r1, [r0] - pop {r3, pc} -_0207B8F8: - bl WaitForever2 - pop {r3, pc} - .align 2, 0 -_0207B900: .4byte 0x022B99D0 - arm_func_end FUN_0207b8d0 - - arm_func_start FUN_0207b904 -FUN_0207b904: @ 0x0207B904 - push {r4, r5, r6, lr} - lsl r6, r0, #8 - mov r5, #0xc - mov r4, #0 -_0207B914: - mov r0, r5 - mov r1, r6 - mov r2, r4 - bl FUN_0207db20 - cmp r0, #0 - bne _0207B914 - pop {r4, r5, r6, pc} - arm_func_end FUN_0207b904 - - arm_func_start FUN_0207b930 -FUN_0207b930: @ 0x0207B930 - push {r4, lr} - ldr r1, _0207B9C0 @ =0x027FFC40 - mov r4, r0 - ldrh r0, [r1] - cmp r0, #2 - moveq r0, #1 - movne r0, #0 - cmp r0, #0 - beq _0207B958 - bl WaitForever2 -_0207B958: - bl FUN_0207902c - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02083434 - ldr r0, _0207B9C4 @ =0x00000000 - bl FUN_0207c164 - ldr r0, _0207B9C8 @ =0x00000001 - bl FUN_0207c164 - ldr r0, _0207B9CC @ =0x00000002 - bl FUN_0207c164 - ldr r0, _0207B9D0 @ =0x00000003 - bl FUN_0207c164 - ldr r0, _0207B9D4 @ =0x00040000 - bl FUN_02078c3c - ldr r0, _0207B9D8 @ =0xFFFBFFFF - bl FUN_02078cc8 - ldr r1, _0207B9DC @ =0x027FFC20 - ldr r0, _0207B9E0 @ =0x00000010 - str r4, [r1] - bl FUN_0207b904 - ldr r0, _0207B9E4 @ =0x027E3F80 - ldr r1, _0207B9E8 @ =0x00000800 - sub r0, r0, r1 - mov sp, r0 - bl FUN_01FF97CC - pop {r4, pc} - .align 2, 0 -_0207B9C0: .4byte 0x027FFC40 -_0207B9C4: .4byte 0x00000000 -_0207B9C8: .4byte 0x00000001 -_0207B9CC: .4byte 0x00000002 -_0207B9D0: .4byte 0x00000003 -_0207B9D4: .4byte 0x00040000 -_0207B9D8: .4byte 0xFFFBFFFF -_0207B9DC: .4byte 0x027FFC20 -_0207B9E0: .4byte 0x00000010 -_0207B9E4: .4byte 0x027E3F80 -_0207B9E8: .4byte 0x00000800 - arm_func_end FUN_0207b930 - - arm_func_start FUN_0207b9ec -FUN_0207b9ec: @ 0x0207B9EC - ldr ip, _0207BA00 @ =FUN_0207c4c8 - mov r1, r0 - ldr r0, _0207BA04 @ =0x027FFCF4 - mov r2, #6 - bx ip - .align 2, 0 -_0207BA00: .4byte FUN_0207c4c8 -_0207BA04: .4byte 0x027FFCF4 - arm_func_end FUN_0207b9ec - - arm_func_start FUN_0207ba08 -FUN_0207ba08: @ 0x0207BA08 - push {r4, lr} - ldr ip, _0207BA88 @ =0x027FFC80 - mov r4, r0 - ldrh r2, [ip, #0x64] - add r0, ip, #6 - add r1, r4, #4 - lsl r2, r2, #0x1d - lsr r2, r2, #0x1d - strb r2, [r4] - ldrb r3, [ip, #2] - mov r2, #0x14 - lsl r3, r3, #0x1c - lsr r3, r3, #0x1c - strb r3, [r4, #1] - ldrb r3, [ip, #3] - strb r3, [r4, #2] - ldrb r3, [ip, #4] - strb r3, [r4, #3] - ldrb r3, [ip, #0x1a] - strh r3, [r4, #0x1a] - ldrb r3, [ip, #0x50] - strh r3, [r4, #0x52] - bl FUN_0207c2e0 - ldr r0, _0207BA88 @ =0x027FFC80 - add r1, r4, #0x1c - add r0, r0, #0x1c - mov r2, #0x34 - bl FUN_0207c2e0 - mov r0, #0 - strh r0, [r4, #0x18] - strh r0, [r4, #0x50] - pop {r4, pc} - .align 2, 0 -_0207BA88: .4byte 0x027FFC80 - arm_func_end FUN_0207ba08 - - arm_func_start FUN_0207ba8c -FUN_0207ba8c: @ 0x0207BA8C - clz r0, r0 - bx lr - arm_func_end FUN_0207ba8c - - arm_func_start FUN_0207ba94 -FUN_0207ba94: @ 0x0207BA94 - ldr r0, _0207BAC0 @ =0x022B99D4 - mov r3, #0 - str r3, [r0] - ldr r0, _0207BAC4 @ =0x022B99D8 - mov r2, r3 -_0207BAA8: - lsl r1, r3, #1 - add r3, r3, #1 - strh r2, [r0, r1] - cmp r3, #9 - blt _0207BAA8 - bx lr - .align 2, 0 -_0207BAC0: .4byte 0x022B99D4 -_0207BAC4: .4byte 0x022B99D8 - arm_func_end FUN_0207ba94 - - arm_func_start FUN_0207bac8 -FUN_0207bac8: @ 0x0207BAC8 - push {r4, r5, r6, r7, r8, sb, sl, lr} - mov r5, r0 - mov sl, r1 - bl EnableIrqFlag - ldr r4, _0207BB44 @ =0x022B99D4 - ldr r1, _0207BB48 @ =0x000001FF - ldr r2, [r4] - mov sb, r0 - and r0, r5, r2 - ldr r6, _0207BB4C @ =0x022B99D8 - and r8, r0, r1 - mov r7, #1 - mov r5, #0 -_0207BAFC: - mov r0, r8 - bl FUN_0207ba8c - rsbs r2, r0, #0x1f - bmi _0207BB38 - lsl r1, r2, #1 - ldrh r0, [r6, r1] - mvn r2, r7, lsl r2 - cmp sl, r0 - and r8, r8, r2 - bne _0207BAFC - ldr r0, [r4] - strh r5, [r6, r1] - and r0, r0, r2 - str r0, [r4] - b _0207BAFC -_0207BB38: - mov r0, sb - bl SetIrqFlag - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_0207BB44: .4byte 0x022B99D4 -_0207BB48: .4byte 0x000001FF -_0207BB4C: .4byte 0x022B99D8 - arm_func_end FUN_0207bac8 - - arm_func_start FUN_0207bb50 -FUN_0207bb50: @ 0x0207BB50 - push {r4, r5, r6, lr} - ldr r1, _0207BC10 @ =0x04000006 - mov r5, r0 - ldrh r6, [r1] - ldr r4, _0207BC14 @ =0x027FFC00 - bl FUN_0207aee4 - orr r0, r0, r6, lsl #16 - str r0, [r5] - ldr r1, _0207BC18 @ =0x022B99A8 - ldrh ip, [r4, #0xf8] - ldr r3, [r1] - ldr r2, [r1, #4] - mov r0, r4 - eor r2, r3, ip, lsl #16 - str r2, [r5, #4] - ldr r2, [r1] - ldr r3, [r0, #0x3c] - ldr r2, [r1, #4] - ldr r1, [r4, #0xf4] - ldr ip, _0207BC1C @ =0x04000600 - eor r1, r2, r1 - eor r2, r3, r1 - str r2, [r5, #8] - ldr r1, [ip] - eor r1, r2, r1 - str r1, [r5, #8] - ldr r2, [r0, #0x1e8] - add r1, r0, #0x300 - str r2, [r5, #0xc] - ldr r3, [r0, #0x1ec] - sub r2, ip, #0x4d0 - str r3, [r5, #0x10] - ldr r3, [r0, #0x390] - ldrh r4, [r1, #0x94] - add r0, r0, #0x3a8 - eor r3, r3, r4, lsl #16 - str r3, [r5, #0x14] - ldrh r4, [r1, #0xaa] - ldrh r3, [r1, #0xac] - orr r3, r3, r4, lsl #16 - str r3, [r5, #0x18] - ldrh r2, [r2] - ldrh r0, [r0] - ldrh r1, [r1, #0x98] - orr r0, r2, r0 - orr r0, r0, r1, lsl #16 - str r0, [r5, #0x1c] - pop {r4, r5, r6, pc} - .align 2, 0 -_0207BC10: .4byte 0x04000006 -_0207BC14: .4byte 0x027FFC00 -_0207BC18: .4byte 0x022B99A8 -_0207BC1C: .4byte 0x04000600 - arm_func_end FUN_0207bb50 - - arm_func_start WaitForever2 -WaitForever2: @ 0x0207BC20 - push {r3, lr} -_0207BC24: - bl EnableIrqFlag - bl WaitForInterrupt - b _0207BC24 - arm_func_end WaitForever2 - - arm_func_start WaitForInterrupt -WaitForInterrupt: @ 0x0207BC30 - mov r0, #0 - mcr p15, #0, r0, c7, c0, #4 - bx lr - arm_func_end WaitForInterrupt - - arm_func_start FUN_0207bc3c -FUN_0207bc3c: @ 0x0207BC3C - ldr r1, _0207BC48 @ =0x04000247 - strb r0, [r1] - bx lr - .align 2, 0 -_0207BC48: .4byte 0x04000247 - arm_func_end FUN_0207bc3c - - arm_func_start FUN_0207bc4c -FUN_0207bc4c: @ 0x0207BC4C - push {r4, r5, r6, r7, r8, lr} - movs r4, r3 - mov r8, r0 - mov r7, r1 - mov r6, r2 - popeq {r4, r5, r6, r7, r8, pc} - add r0, r8, r8, lsl #1 - add r0, r0, #2 - lsl r0, r0, #2 - add r0, r0, #0xb0 - add r5, r0, #0x4000000 -_0207BC78: - ldr r0, [r5] - tst r0, #0x80000000 - bne _0207BC78 - bl EnableIrqFlag - lsl r2, r8, #2 - add r1, r2, #0xe0 - lsr r3, r4, #2 - mov r4, r0 - add ip, r2, #0x4000000 - mov r0, r8 - mov r2, r7 - add r1, r1, #0x4000000 - orr r3, r3, #0x85000000 - str r6, [ip, #0xe0] - bl FUN_01FF9B3C - mov r0, r4 - bl SetIrqFlag -_0207BCBC: - ldr r0, [r5] - tst r0, #0x80000000 - bne _0207BCBC - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0207bc4c - - arm_func_start FUN_0207bccc -FUN_0207bccc: @ 0x0207BCCC - push {r4, r5, r6, r7, r8, lr} - mov r5, r3 - mov r6, r2 - mov r2, r5 - mov r3, #0 - mov r8, r0 - mov r7, r1 - bl FUN_0207c264 - cmp r5, #0 - popeq {r4, r5, r6, r7, r8, pc} - add r0, r8, r8, lsl #1 - add r0, r0, #2 - lsl r0, r0, #2 - add r0, r0, #0xb0 - add r4, r0, #0x4000000 -_0207BD08: - ldr r0, [r4] - tst r0, #0x80000000 - bne _0207BD08 - lsr r3, r5, #2 - mov r0, r8 - mov r1, r7 - mov r2, r6 - orr r3, r3, #0x84000000 - bl FUN_01FF9AA8 -_0207BD2C: - ldr r0, [r4] - tst r0, #0x80000000 - bne _0207BD2C - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0207bccc - - arm_func_start FUN_0207bd3c -FUN_0207bd3c: @ 0x0207BD3C - push {r4, r5, r6, r7, r8, lr} - movs r5, r3 - mov r8, r0 - mov r7, r1 - mov r6, r2 - popeq {r4, r5, r6, r7, r8, pc} - mov r2, r5 - mov r3, #0 - bl FUN_0207c264 - add r0, r8, r8, lsl #1 - add r0, r0, #2 - lsl r0, r0, #2 - add r0, r0, #0xb0 - add r4, r0, #0x4000000 -_0207BD74: - ldr r0, [r4] - tst r0, #0x80000000 - bne _0207BD74 - lsr r3, r5, #1 - mov r0, r8 - mov r1, r7 - mov r2, r6 - orr r3, r3, #0x80000000 - bl FUN_01FF9AA8 -_0207BD98: - ldr r0, [r4] - tst r0, #0x80000000 - bne _0207BD98 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0207bd3c - - arm_func_start FUN_0207bda8 -FUN_0207bda8: @ 0x0207BDA8 - push {r4, r5, r6, r7, r8, lr} - movs r4, r3 - mov r7, r0 - mov r6, r1 - mov r5, r2 - ldr r8, [sp, #0x18] - bne _0207BDD8 - cmp r8, #0 - popeq {r4, r5, r6, r7, r8, pc} - ldr r0, [sp, #0x1c] - blx r8 - pop {r4, r5, r6, r7, r8, pc} -_0207BDD8: - bl FUN_0207c0fc - cmp r8, #0 - beq _0207BE30 - ldr r2, [sp, #0x1c] - mov r0, r7 - mov r1, r8 - bl FUN_02078bac - bl EnableIrqFlag - lsr r3, r4, #2 - lsl r2, r7, #2 - add r1, r2, #0xe0 - add r2, r2, #0x4000000 - str r5, [r2, #0xe0] - mov r4, r0 - mov r0, r7 - mov r2, r6 - add r1, r1, #0x4000000 - orr r3, r3, #0xc5000000 - bl FUN_01FF9B18 - mov r0, r4 - bl SetIrqFlag - pop {r4, r5, r6, r7, r8, pc} -_0207BE30: - bl EnableIrqFlag - lsl r2, r7, #2 - add r1, r2, #0xe0 - lsr r3, r4, #2 - mov r4, r0 - add ip, r2, #0x4000000 - mov r0, r7 - mov r2, r6 - add r1, r1, #0x4000000 - orr r3, r3, #0x85000000 - str r5, [ip, #0xe0] - bl FUN_01FF9B18 - mov r0, r4 - bl SetIrqFlag - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0207bda8 - - arm_func_start FUN_0207be6c -FUN_0207be6c: @ 0x0207BE6C - push {r4, r5, r6, r7, r8, lr} - mov r5, r3 - mov r6, r2 - mov r2, r5 - mov r3, #0 - mov r8, r0 - mov r7, r1 - ldr r4, [sp, #0x18] - bl FUN_0207c264 - cmp r5, #0 - bne _0207BEAC - cmp r4, #0 - popeq {r4, r5, r6, r7, r8, pc} - ldr r0, [sp, #0x1c] - blx r4 - pop {r4, r5, r6, r7, r8, pc} -_0207BEAC: - mov r0, r8 - bl FUN_0207c0fc - cmp r4, #0 - beq _0207BEE8 - ldr r2, [sp, #0x1c] - mov r0, r8 - mov r1, r4 - bl FUN_02078bac - lsr r3, r5, #2 - mov r0, r8 - mov r1, r7 - mov r2, r6 - orr r3, r3, #0xc4000000 - bl FUN_01FF9A68 - pop {r4, r5, r6, r7, r8, pc} -_0207BEE8: - lsr r3, r5, #2 - mov r0, r8 - mov r1, r7 - mov r2, r6 - orr r3, r3, #0x84000000 - bl FUN_01FF9A68 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0207be6c - - arm_func_start FUN_0207bf04 -FUN_0207bf04: @ 0x0207BF04 - push {r4, r5, r6, r7, r8, lr} - mov r5, r3 - mov r6, r2 - mov r2, r5 - mov r3, #0 - mov r8, r0 - mov r7, r1 - ldr r4, [sp, #0x18] - bl FUN_0207c264 - cmp r5, #0 - bne _0207BF44 - cmp r4, #0 - popeq {r4, r5, r6, r7, r8, pc} - ldr r0, [sp, #0x1c] - blx r4 - pop {r4, r5, r6, r7, r8, pc} -_0207BF44: - mov r0, r8 - bl FUN_0207c0fc - cmp r4, #0 - beq _0207BF84 - ldr r2, [sp, #0x1c] - mov r0, r8 - mov r1, r4 - bl FUN_02078bac - mov r3, #0x3bc00000 - rsb r3, r3, #0 - mov r0, r8 - mov r1, r7 - mov r2, r6 - orr r3, r3, r5, lsr #2 - bl FUN_01FF9A68 - pop {r4, r5, r6, r7, r8, pc} -_0207BF84: - ldr r3, _0207BFA0 @ =0x84400000 - mov r0, r8 - mov r1, r7 - mov r2, r6 - orr r3, r3, r5, lsr #2 - bl FUN_01FF9A68 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0207BFA0: .4byte 0x84400000 - arm_func_end FUN_0207bf04 - - arm_func_start FUN_0207bfa4 -FUN_0207bfa4: @ 0x0207BFA4 - push {r4, r5, r6, r7, r8, lr} - mov r5, r3 - mov r6, r2 - mov r2, r5 - mov r3, #0 - mov r8, r0 - mov r7, r1 - ldr r4, [sp, #0x18] - bl FUN_0207c264 - cmp r5, #0 - bne _0207BFE4 - cmp r4, #0 - popeq {r4, r5, r6, r7, r8, pc} - ldr r0, [sp, #0x1c] - blx r4 - pop {r4, r5, r6, r7, r8, pc} -_0207BFE4: - mov r0, r8 - bl FUN_0207c0fc - cmp r4, #0 - beq _0207C020 - ldr r2, [sp, #0x1c] - mov r0, r8 - mov r1, r4 - bl FUN_02078bac - lsr r3, r5, #1 - mov r0, r8 - mov r1, r7 - mov r2, r6 - orr r3, r3, #0xc0000000 - bl FUN_01FF9A68 - pop {r4, r5, r6, r7, r8, pc} -_0207C020: - lsr r3, r5, #1 - mov r0, r8 - mov r1, r7 - mov r2, r6 - orr r3, r3, #0x80000000 - bl FUN_01FF9A68 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0207bfa4 - - arm_func_start FUN_0207c03c -FUN_0207c03c: @ 0x0207C03C - push {r4, r5, r6, r7, r8, lr} - mov r5, r3 - mov r6, r2 - mov r2, r5 - mov r3, #0 - mov r8, r0 - mov r7, r1 - ldr r4, [sp, #0x18] - bl FUN_0207c264 - cmp r5, #0 - bne _0207C07C - cmp r4, #0 - popeq {r4, r5, r6, r7, r8, pc} - ldr r0, [sp, #0x1c] - blx r4 - pop {r4, r5, r6, r7, r8, pc} -_0207C07C: - mov r0, r8 - bl FUN_0207c0fc - cmp r4, #0 - beq _0207C0BC - ldr r2, [sp, #0x1c] - mov r0, r8 - mov r1, r4 - bl FUN_02078bac - mov r3, #0x3fc00000 - rsb r3, r3, #0 - mov r0, r8 - mov r1, r7 - mov r2, r6 - orr r3, r3, r5, lsr #1 - bl FUN_01FF9A68 - pop {r4, r5, r6, r7, r8, pc} -_0207C0BC: - ldr r3, _0207C0D8 @ =0x80400000 - mov r0, r8 - mov r1, r7 - mov r2, r6 - orr r3, r3, r5, lsr #1 - bl FUN_01FF9A68 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0207C0D8: .4byte 0x80400000 - arm_func_end FUN_0207c03c - - arm_func_start FUN_0207c0dc -FUN_0207c0dc: @ 0x0207C0DC - add r0, r0, r0, lsl #1 - add r0, r0, #2 - lsl r0, r0, #2 - add r0, r0, #0x4000000 - ldr r0, [r0, #0xb0] - and r0, r0, #0x80000000 - lsr r0, r0, #0x1f - bx lr - arm_func_end FUN_0207c0dc - - arm_func_start FUN_0207c0fc -FUN_0207c0fc: @ 0x0207C0FC - push {r4, lr} - mov r4, r0 - bl EnableIrqFlag - add r1, r4, r4, lsl #1 - add r1, r1, #2 - lsl r1, r1, #2 - add r1, r1, #0xb0 - add r2, r1, #0x4000000 -_0207C11C: - ldr r1, [r2] - tst r1, #0x80000000 - bne _0207C11C - cmp r4, #0 - bne _0207C158 - mov r1, #0xc - mul r2, r4, r1 - add r1, r2, #0xb0 - add r2, r2, #0x4000000 - mov r3, #0 - str r3, [r2, #0xb0] - add r2, r1, #0x4000000 - ldr r1, _0207C160 @ =0x81400001 - str r3, [r2, #4] - str r1, [r2, #8] -_0207C158: - bl SetIrqFlag - pop {r4, pc} - .align 2, 0 -_0207C160: .4byte 0x81400001 - arm_func_end FUN_0207c0fc - - arm_func_start FUN_0207c164 -FUN_0207c164: @ 0x0207C164 - push {r4, lr} - mov r4, r0 - bl EnableIrqFlag - mov r1, #6 - mul r1, r4, r1 - add r1, r1, #5 - lsl r1, r1, #1 - add r1, r1, #0x4000000 - ldrh r2, [r1, #0xb0] - cmp r4, #0 - bic r2, r2, #0x3a00 - strh r2, [r1, #0xb0] - ldrh r2, [r1, #0xb0] - bic r2, r2, #0x8000 - strh r2, [r1, #0xb0] - ldrh r2, [r1, #0xb0] - ldrh r1, [r1, #0xb0] - bne _0207C1D4 - mov r1, #0xc - mul r2, r4, r1 - add r1, r2, #0xb0 - add r2, r2, #0x4000000 - mov r3, #0 - str r3, [r2, #0xb0] - add r2, r1, #0x4000000 - ldr r1, _0207C1DC @ =0x81400001 - str r3, [r2, #4] - str r1, [r2, #8] -_0207C1D4: - bl SetIrqFlag - pop {r4, pc} - .align 2, 0 -_0207C1DC: .4byte 0x81400001 - arm_func_end FUN_0207c164 - - arm_func_start FUN_0207c1e0 -FUN_0207c1e0: @ 0x0207C1E0 - push {r3, r4, r5, r6, r7, lr} - ldr r5, _0207C260 @ =0x040000B8 - mov r7, r0 - mov r6, r1 - mov r4, #0 -_0207C1F4: - cmp r4, r7 - beq _0207C24C - ldr r0, [r5] - tst r0, #0x80000000 - andne r0, r0, #0x38000000 - cmpne r0, r6 - beq _0207C24C - cmp r0, #0x8000000 - cmpeq r6, #0x10000000 - beq _0207C24C - cmp r0, #0x10000000 - cmpeq r6, #0x8000000 - beq _0207C24C - cmp r0, #0x18000000 - cmpne r0, #0x20000000 - cmpne r0, #0x28000000 - cmpne r0, #0x30000000 - cmpne r0, #0x38000000 - cmpne r0, #0x8000000 - cmpne r0, #0x10000000 - bne _0207C24C - bl WaitForever2 -_0207C24C: - add r4, r4, #1 - cmp r4, #3 - add r5, r5, #0xc - blt _0207C1F4 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0207C260: .4byte 0x040000B8 - arm_func_end FUN_0207c1e0 - - arm_func_start FUN_0207c264 -FUN_0207c264: @ 0x0207C264 - push {r3, lr} - cmp r0, #0 - popne {r3, pc} - cmp r3, #0 - and ip, r1, #0xff000000 - beq _0207C288 - cmp r3, #0x800000 - subeq r1, r1, r2 - b _0207C28C -_0207C288: - add r1, r1, r2 -_0207C28C: - cmp ip, #0x4000000 - and r0, r1, #0xff000000 - beq _0207C2B0 - cmp ip, #0x8000000 - bhs _0207C2B0 - cmp r0, #0x4000000 - beq _0207C2B0 - cmp r0, #0x8000000 - poplo {r3, pc} -_0207C2B0: - bl WaitForever2 - pop {r3, pc} - arm_func_end FUN_0207c264 -_0207C2B8: - .byte 0x00, 0x30, 0xA0, 0xE3, 0x02, 0x00, 0x53, 0xE1 - .byte 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0xEA, 0xB3, 0x00, 0x81, 0xE1, 0x00, 0x00, 0x00, 0xBA - .byte 0x00, 0x00, 0x00, 0xEA, 0x02, 0x30, 0x83, 0xE2, 0xF7, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0207c2e0 -FUN_0207c2e0: @ 0x0207C2E0 - mov ip, #0 -_0207C2E4: - cmp ip, r2 - blt _0207C2F0 - b _0207C2F4 -_0207C2F0: - ldrh r3, [r0, ip] -_0207C2F4: - blt _0207C2FC - b _0207C300 -_0207C2FC: - strh r3, [r1, ip] -_0207C300: - blt _0207C308 - b _0207C30C -_0207C308: - add ip, ip, #2 -_0207C30C: - blt _0207C2E4 - bx lr - arm_func_end FUN_0207c2e0 - - arm_func_start FUN_0207c314 -FUN_0207c314: @ 0x0207C314 - add ip, r1, r2 -_0207C318: - cmp r1, ip - blt _0207C324 - b _0207C328 -_0207C324: - stm r1!, {r0} -_0207C328: - blt _0207C318 - bx lr - arm_func_end FUN_0207c314 - - arm_func_start FUN_0207c330 -FUN_0207c330: @ 0x0207C330 - add ip, r1, r2 -_0207C334: - cmp r1, ip - blt _0207C340 - b _0207C344 -_0207C340: - ldm r0!, {r2} -_0207C344: - blt _0207C34C - b _0207C350 -_0207C34C: - stm r1!, {r2} -_0207C350: - blt _0207C334 - bx lr - arm_func_end FUN_0207c330 - - arm_func_start FUN_0207c358 -FUN_0207c358: @ 0x0207C358 - push {r4, r5, r6, r7, r8, sb} - add sb, r1, r2 - lsr ip, r2, #5 - add ip, r1, ip, lsl #5 - mov r2, r0 - mov r3, r2 - mov r4, r2 - mov r5, r2 - mov r6, r2 - mov r7, r2 - mov r8, r2 -_0207C384: - cmp r1, ip - blt _0207C390 - b _0207C394 -_0207C390: - stm r1!, {r0, r2, r3, r4, r5, r6, r7, r8} -_0207C394: - blt _0207C384 -_0207C398: - cmp r1, sb - blt _0207C3A4 - b _0207C3A8 -_0207C3A4: - stm r1!, {r0} -_0207C3A8: - blt _0207C398 - pop {r4, r5, r6, r7, r8, sb} - bx lr - arm_func_end FUN_0207c358 -_0207C3B4: - .byte 0xF0, 0x07, 0x2D, 0xE9, 0x02, 0xA0, 0x81, 0xE0, 0xA2, 0xC2, 0xA0, 0xE1 - .byte 0x8C, 0xC2, 0x81, 0xE0, 0x0C, 0x00, 0x51, 0xE1, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0xEA - .byte 0xFC, 0x03, 0xB0, 0xE8, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0xEA, 0xFC, 0x03, 0xA1, 0xE8 - .byte 0xF7, 0xFF, 0xFF, 0xBA, 0x0A, 0x00, 0x51, 0xE1, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0xEA - .byte 0x04, 0x00, 0xB0, 0xE8, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0xEA, 0x04, 0x00, 0xA1, 0xE8 - .byte 0xF7, 0xFF, 0xFF, 0xBA, 0xF0, 0x07, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0207c40c -FUN_0207c40c: @ 0x0207C40C - cmp r2, #0 - beq _0207C418 - b _0207C41C -_0207C418: - bx lr -_0207C41C: - tst r0, #1 - beq _0207C448 - ldrh ip, [r0, #-1] - and ip, ip, #0xff - orr r3, ip, r1, lsl #8 - strh r3, [r0, #-1] - add r0, r0, #1 - subs r2, r2, #1 - beq _0207C444 - b _0207C448 -_0207C444: - bx lr -_0207C448: - cmp r2, #2 - blo _0207C4A0 - orr r1, r1, r1, lsl #8 - tst r0, #2 - beq _0207C470 - strh r1, [r0], #2 - subs r2, r2, #2 - beq _0207C46C - b _0207C470 -_0207C46C: - bx lr -_0207C470: - orr r1, r1, r1, lsl #16 - bics r3, r2, #3 - beq _0207C490 - sub r2, r2, r3 - add ip, r3, r0 -_0207C484: - str r1, [r0], #4 - cmp r0, ip - blo _0207C484 -_0207C490: - tst r2, #2 - bne _0207C49C - b _0207C4A0 -_0207C49C: - strh r1, [r0], #2 -_0207C4A0: - tst r2, #1 - beq _0207C4AC - b _0207C4B0 -_0207C4AC: - bx lr -_0207C4B0: - ldrh r3, [r0] - and r3, r3, #0xff00 - and r1, r1, #0xff - orr r1, r1, r3 - strh r1, [r0] - bx lr - arm_func_end FUN_0207c40c - - arm_func_start FUN_0207c4c8 -FUN_0207c4c8: @ 0x0207C4C8 - cmp r2, #0 - beq _0207C4D4 - b _0207C4D8 -_0207C4D4: - bx lr -_0207C4D8: - tst r1, #1 - beq _0207C530 - ldrh ip, [r1, #-1] - and ip, ip, #0xff - tst r0, #1 - bne _0207C4F4 - b _0207C4F8 -_0207C4F4: - ldrh r3, [r0, #-1] -_0207C4F8: - bne _0207C500 - b _0207C504 -_0207C500: - lsr r3, r3, #8 -_0207C504: - beq _0207C50C - b _0207C510 -_0207C50C: - ldrh r3, [r0] -_0207C510: - orr r3, ip, r3, lsl #8 - strh r3, [r1, #-1] - add r0, r0, #1 - add r1, r1, #1 - subs r2, r2, #1 - beq _0207C52C - b _0207C530 -_0207C52C: - bx lr -_0207C530: - eor ip, r1, r0 - tst ip, #1 - beq _0207C58C - bic r0, r0, #1 - ldrh ip, [r0], #2 - lsr r3, ip, #8 - subs r2, r2, #2 - blo _0207C568 -_0207C550: - ldrh ip, [r0], #2 - orr ip, r3, ip, lsl #8 - strh ip, [r1], #2 - lsr r3, ip, #0x10 - subs r2, r2, #2 - bhs _0207C550 -_0207C568: - tst r2, #1 - beq _0207C574 - b _0207C578 -_0207C574: - bx lr -_0207C578: - ldrh ip, [r1] - and ip, ip, #0xff00 - orr ip, ip, r3 - strh ip, [r1] - bx lr -_0207C58C: - tst ip, #2 - beq _0207C5B8 - bics r3, r2, #1 - beq _0207C61C - sub r2, r2, r3 - add ip, r3, r1 -_0207C5A4: - ldrh r3, [r0], #2 - strh r3, [r1], #2 - cmp r1, ip - blo _0207C5A4 - b _0207C61C -_0207C5B8: - cmp r2, #2 - blo _0207C61C - tst r1, #2 - beq _0207C5E0 - ldrh r3, [r0], #2 - strh r3, [r1], #2 - subs r2, r2, #2 - beq _0207C5DC - b _0207C5E0 -_0207C5DC: - bx lr -_0207C5E0: - bics r3, r2, #3 - beq _0207C600 - sub r2, r2, r3 - add ip, r3, r1 -_0207C5F0: - ldr r3, [r0], #4 - str r3, [r1], #4 - cmp r1, ip - blo _0207C5F0 -_0207C600: - tst r2, #2 - bne _0207C60C - b _0207C610 -_0207C60C: - ldrh r3, [r0], #2 -_0207C610: - bne _0207C618 - b _0207C61C -_0207C618: - strh r3, [r1], #2 -_0207C61C: - tst r2, #1 - beq _0207C628 - b _0207C62C -_0207C628: - bx lr -_0207C62C: - ldrh r2, [r1] - ldrh r0, [r0] - and r2, r2, #0xff00 - and r0, r0, #0xff - orr r0, r2, r0 - strh r0, [r1] - bx lr - arm_func_end FUN_0207c4c8 - - arm_func_start FUN_0207c648 -FUN_0207c648: @ 0x0207C648 - .word 0xE1010090 - bx lr - arm_func_end FUN_0207c648 - - arm_func_start FUN_0207c650 -FUN_0207c650: @ 0x0207C650 - push {r4, r5, r6, r7, lr} - ldr r5, [r0], #4 - lsr r2, r5, #8 - mov r7, #0 - tst r5, #0xf - bne _0207C66C - b _0207C670 -_0207C66C: - mov r7, #1 -_0207C670: - cmp r2, #0 - ble _0207C748 - ldrb lr, [r0], #1 - mov r4, #8 -_0207C680: - subs r4, r4, #1 - blt _0207C670 - tst lr, #0x80 - bne _0207C6A4 - ldrb r6, [r0], #1 - .word 0xE1416096 - add r1, r1, #1 - sub r2, r2, #1 - b _0207C730 -_0207C6A4: - ldrb r5, [r0] - cmp r7, #0 - beq _0207C6B4 - b _0207C6B8 -_0207C6B4: - mov r6, #3 -_0207C6B8: - beq _0207C6FC - tst r5, #0xe0 - bne _0207C6C8 - b _0207C6CC -_0207C6C8: - mov r6, #1 -_0207C6CC: - bne _0207C6FC - add r0, r0, #1 - and r6, r5, #0xf - lsl r6, r6, #4 - tst r5, #0x10 - beq _0207C6F4 - lsl r6, r6, #8 - ldrb r5, [r0], #1 - add r6, r6, r5, lsl #4 - add r6, r6, #0x100 -_0207C6F4: - add r6, r6, #0x11 - ldrb r5, [r0] -_0207C6FC: - add r3, r6, r5, asr #4 - add r0, r0, #1 - and r5, r5, #0xf - lsl ip, r5, #8 - ldrb r6, [r0], #1 - orr r5, r6, ip - add ip, r5, #1 - sub r2, r2, r3 -_0207C71C: - ldrb r5, [r1, -ip] - .word 0xE1415095 - add r1, r1, #1 - subs r3, r3, #1 - bgt _0207C71C -_0207C730: - cmp r2, #0 - bgt _0207C73C - b _0207C740 -_0207C73C: - lsl lr, lr, #1 -_0207C740: - bgt _0207C680 - b _0207C670 -_0207C748: - pop {r4, r5, r6, r7, lr} - bx lr - arm_func_end FUN_0207c650 - - arm_func_start FUN_0207c750 -FUN_0207c750: @ 0x0207C750 - push {r3, r4, r5, r6, r7, lr} - mov r5, r1 - mov r6, r0 - mov r7, r3 - mvn r1, #0 - mov r4, r2 - bl FUN_0207c1e0 - mov r0, r6 - mov r1, r5 - mov r2, r7 - mov r3, #0x1000000 - bl FUN_0207c264 - cmp r7, #0 - popeq {r3, r4, r5, r6, r7, pc} - add r0, r6, r6, lsl #1 - add r0, r0, #2 - lsl r0, r0, #2 - add r0, r0, #0xb0 - add r1, r0, #0x4000000 -_0207C79C: - ldr r0, [r1] - tst r0, #0x80000000 - bne _0207C79C - ldr r3, _0207C7C0 @ =0xAF000001 - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_01FF9A68 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0207C7C0: .4byte 0xAF000001 - arm_func_end FUN_0207c750 - - arm_func_start FUN_0207c7c4 -FUN_0207c7c4: @ 0x0207C7C4 - push {r3, lr} - mov r0, #3 - bl FUN_0207bc3c - mov r0, #0 - bl FUN_0207c164 - pop {r3, pc} - arm_func_end FUN_0207c7c4 - - arm_func_start FUN_0207c7dc -FUN_0207c7dc: @ 0x0207C7DC - push {r3, lr} - mov r2, #0 - mov r1, r0 - mov r3, r2 - mov r0, #1 - str r2, [sp] - bl FUN_0207cbcc - pop {r3, pc} - arm_func_end FUN_0207c7dc - - arm_func_start FUN_0207c7fc -FUN_0207c7fc: @ 0x0207C7FC - push {r3, lr} - mov lr, r1 - mov ip, r2 - str r3, [sp] - mov r1, r0 - mov r2, lr - mov r3, ip - mov r0, #2 - bl FUN_0207cbcc - pop {r3, pc} - arm_func_end FUN_0207c7fc - - arm_func_start FUN_0207c824 -FUN_0207c824: @ 0x0207C824 - push {r3, lr} - mov r2, #0 - mov r1, r0 - mov r3, r2 - mov r0, #3 - str r2, [sp] - bl FUN_0207cbcc - pop {r3, pc} - arm_func_end FUN_0207c824 -_0207C844: - .byte 0x0C, 0xC0, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE3 - .byte 0x02, 0x30, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x7C, 0xCB, 0x07, 0x02, 0x0C, 0xC0, 0x9F, 0xE5 - .byte 0x01, 0x20, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE3, 0x01, 0x30, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1 - .byte 0x7C, 0xCB, 0x07, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x02, 0x30, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE3 - .byte 0x0C, 0x20, 0xA0, 0xE3, 0x00, 0xC0, 0x8D, 0xE5, 0xC5, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 - .byte 0x08, 0x40, 0x2D, 0xE9, 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0x30, 0xA0, 0xE1, 0x00, 0xC0, 0xA0, 0xE3 - .byte 0x00, 0x10, 0xA0, 0xE1, 0x0E, 0x20, 0xA0, 0xE1, 0x09, 0x00, 0xA0, 0xE3, 0x00, 0xC0, 0x8D, 0xE5 - .byte 0xC5, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_0207c8b8 -FUN_0207c8b8: @ 0x0207C8B8 - push {r3, lr} - mov lr, r1 - mov ip, r2 - str r3, [sp] - mov r1, r0 - mov r2, lr - mov r3, ip - mov r0, #0xc - bl FUN_0207cbcc - pop {r3, pc} - arm_func_end FUN_0207c8b8 - - arm_func_start FUN_0207c8e0 -FUN_0207c8e0: @ 0x0207C8E0 - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov r7, r2 - mov sb, r0 - mov r8, r1 - mov r6, r3 - mov r5, r7 - mov r4, #0 - b _0207C918 -_0207C900: - tst r5, #1 - beq _0207C910 - mov r0, r4 - bl FUN_0207d3b0 -_0207C910: - add r4, r4, #1 - lsr r5, r5, #1 -_0207C918: - cmp r4, #8 - bge _0207C928 - cmp r5, #0 - bne _0207C900 -_0207C928: - mov r1, sb - mov r2, r8 - mov r3, r7 - mov r0, #0xd - str r6, [sp] - bl FUN_0207cbcc - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_0207c8e0 - - arm_func_start FUN_0207c944 -FUN_0207c944: @ 0x0207C944 - push {r3, lr} - lsl r1, r1, #0x1e - orr r0, r1, r0, lsl #31 - ldr ip, [sp, #8] - mov r1, r2 - orr r0, r0, ip, lsl #29 - ldr r2, [sp, #0xc] - mov lr, #0 - orr r0, r0, r2, lsl #28 - ldr ip, [sp, #0x10] - mov r2, r3 - orr r3, r0, ip, lsl #27 - mov r0, #0x11 - str lr, [sp] - bl FUN_0207cbcc - pop {r3, pc} - arm_func_end FUN_0207c944 - - arm_func_start FUN_0207c984 -FUN_0207c984: @ 0x0207C984 + arm_func_start ov00_022D1C34 +ov00_022D1C34: @ 0x022D1C34 push {r3, r4, r5, r6, lr} sub sp, sp, #4 - mov r4, r2 - mov r5, r1 - ldr r2, [sp, #0x18] - mov r6, r0 - mov r1, r3 - bl FUN_0207d3d0 - str r0, [sp] - mov r1, r6 + mov r5, r0 + ldr r4, [r5, #0xc] + add r6, sp, #0 +_022D1C48: + mov r0, r6 + mov r1, r5 + bl ov00_022CB4D4 + ldr r1, [sp] + cmp r1, #0 + moveq r0, #9 + addeq sp, sp, #4 + strbeq r0, [r4, #0x455] + popeq {r3, r4, r5, r6, pc} + cmp r1, #5 + blo _022D1C48 + ldrb r1, [r0] + cmp r1, #0x80 + bne _022D1D30 + ldrb r1, [r4, #0x454] + cmp r1, #0 + beq _022D1D24 + ldrb r1, [r4, #0x455] + cmp r1, #0 + bne _022D1D24 + ldrb r2, [r0, #1] + mov r1, r5 + mov r0, #2 + str r2, [sp] + bl ov00_022CB5B4 + ldr r1, _022D1DC8 @ =0x0232508C + ldr r0, [sp] + ldr r1, [r1] + blx r1 + movs r6, r0 + moveq r0, #9 + addeq sp, sp, #4 + strbeq r0, [r4, #0x455] + popeq {r3, r4, r5, r6, pc} + ldr r1, [sp] mov r2, r5 - mov r3, r4 - mov r0, #0x12 - bl FUN_0207cbcc + bl ov00_022D191C + cmp r0, #0 + ldrbeq r0, [r6] + cmpeq r0, #1 + movne r0, #9 + strbne r0, [r4, #0x455] + bne _022D1D00 + mov r0, r4 + add r1, r6, #1 + bl ov00_022D0B8C +_022D1D00: + ldr r2, [sp] + mov r0, r4 + mov r1, r6 + bl ov00_022D1988 + ldr r1, _022D1DCC @ =0x023250B8 + mov r0, r6 + ldr r1, [r1] + blx r1 + b _022D1DBC +_022D1D24: + mov r0, #9 + strb r0, [r4, #0x455] + b _022D1DBC +_022D1D30: + ldrb r2, [r0, #3] + ldrb r0, [r0, #4] + ldr r1, _022D1DD0 @ =0x00004805 + add r0, r0, r2, lsl #8 + add r0, r0, #5 + str r0, [sp] + cmp r0, r1 + movhi r0, #9 + addhi sp, sp, #4 + strbhi r0, [r4, #0x455] + pophi {r3, r4, r5, r6, pc} + ldr r1, _022D1DC8 @ =0x0232508C + ldr r1, [r1] + blx r1 + movs r6, r0 + moveq r0, #9 + addeq sp, sp, #4 + strbeq r0, [r4, #0x455] + popeq {r3, r4, r5, r6, pc} + ldr r1, [sp] + mov r2, r5 + bl ov00_022D191C + cmp r0, #0 + beq _022D1DB0 + ldr r1, _022D1DCC @ =0x023250B8 + mov r0, r6 + ldr r1, [r1] + blx r1 + mov r0, #9 + add sp, sp, #4 + strb r0, [r4, #0x455] + pop {r3, r4, r5, r6, pc} +_022D1DB0: + mov r0, r4 + mov r1, r6 + bl ov00_022D19B4 +_022D1DBC: + ldrb r0, [r4, #0x455] add sp, sp, #4 pop {r3, r4, r5, r6, pc} - arm_func_end FUN_0207c984 - - arm_func_start FUN_0207c9c4 -FUN_0207c9c4: @ 0x0207C9C4 - push {r3, lr} - mov r2, r1 - mov r3, #0 - mov r1, r0 - mov r0, #0x1a - str r3, [sp] - bl FUN_0207cbcc - pop {r3, pc} - arm_func_end FUN_0207c9c4 - - arm_func_start FUN_0207c9e4 -FUN_0207c9e4: @ 0x0207C9E4 - push {r3, lr} - mov r2, r1 - mov r3, #0 - mov r1, r0 - mov r0, #0x1b - str r3, [sp] - bl FUN_0207cbcc - pop {r3, pc} - arm_func_end FUN_0207c9e4 - - arm_func_start FUN_0207ca04 -FUN_0207ca04: @ 0x0207CA04 - push {r3, lr} - mov r2, r1 - mov r3, #0 - mov r1, r0 - mov r0, #0x13 - str r3, [sp] - bl FUN_0207cbcc - pop {r3, pc} - arm_func_end FUN_0207ca04 - - arm_func_start FUN_0207ca24 -FUN_0207ca24: @ 0x0207CA24 - push {r3, lr} - mov lr, r1 - mov r3, r2 - mov ip, #0 - mov r1, r0 - mov r2, lr - mov r0, #0x14 - str ip, [sp] - bl FUN_0207cbcc - pop {r3, pc} - arm_func_end FUN_0207ca24 - - arm_func_start FUN_0207ca4c -FUN_0207ca4c: @ 0x0207CA4C - push {r3, lr} - mov r2, r1 - mov r3, #0 - mov r1, r0 - mov r0, #0x15 - str r3, [sp] - bl FUN_0207cbcc - pop {r3, pc} - arm_func_end FUN_0207ca4c - - arm_func_start FUN_0207ca6c -FUN_0207ca6c: @ 0x0207CA6C - push {r3, r4, r5, lr} - ldr ip, [sp, #0x1c] - lsl r1, r1, #0x18 - orr r4, r1, r3, lsl #26 - ldr r5, [sp, #0x24] - lsl r1, ip, #0x16 - ldr r3, [sp, #0x18] - ldr ip, [sp, #0x10] - orr r4, r4, r5, lsl #16 - orr r4, ip, r4 - ldr lr, [sp, #0x20] - orr r3, r1, r3, lsl #24 - ldr ip, [sp, #0x14] - orr r1, r0, lr, lsl #16 - orr r3, ip, r3 - mov r0, #0xe - str r4, [sp] - bl FUN_0207cbcc - pop {r3, r4, r5, pc} - arm_func_end FUN_0207ca6c - - arm_func_start FUN_0207cab8 -FUN_0207cab8: @ 0x0207CAB8 - push {r3, lr} - ldr lr, [sp, #8] - ldr ip, [sp, #0xc] - str r1, [sp] - orr r2, r2, r3, lsl #8 - mov r1, r0 - orr r3, ip, lr, lsl #8 - mov r0, #0xf - bl FUN_0207cbcc - pop {r3, pc} - arm_func_end FUN_0207cab8 - - arm_func_start FUN_0207cae0 -FUN_0207cae0: @ 0x0207CAE0 - push {r3, r4, lr} - sub sp, sp, #4 - ldr ip, [sp, #0x10] - mov r4, r1 - mov lr, #0 - mov r1, r0 - orr r2, r4, r2, lsl #8 - orr r3, ip, r3, lsl #8 - mov r0, #0x10 - str lr, [sp] - bl FUN_0207cbcc - add sp, sp, #4 - pop {r3, r4, pc} - arm_func_end FUN_0207cae0 - - arm_func_start FUN_0207cb14 -FUN_0207cb14: @ 0x0207CB14 - push {r3, lr} - mov r2, r1 - mov r3, #0 - mov r1, r0 - mov r0, #0x1f - str r3, [sp] - bl FUN_0207cbcc - pop {r3, pc} - arm_func_end FUN_0207cb14 - - arm_func_start FUN_0207cb34 -FUN_0207cb34: @ 0x0207CB34 - push {r3, lr} - mov r2, r1 - mov r3, #0 - mov r1, r0 - mov r0, #0x20 - str r3, [sp] - bl FUN_0207cbcc - pop {r3, pc} - arm_func_end FUN_0207cb34 - - arm_func_start FUN_0207cb54 -FUN_0207cb54: @ 0x0207CB54 - push {r3, lr} - mov lr, r1 - mov ip, r2 - str r3, [sp] - mov r1, r0 - mov r2, lr - mov r3, ip - mov r0, #0x19 - bl FUN_0207cbcc - pop {r3, pc} - arm_func_end FUN_0207cb54 - - arm_func_start FUN_0207cb7c -FUN_0207cb7c: @ 0x0207CB7C - push {r3, lr} - mov lr, r1 - mov ip, r2 - str r3, [sp] - mov r1, r0 - mov r2, lr - mov r3, ip - mov r0, #6 - bl FUN_0207cbcc - pop {r3, pc} - arm_func_end FUN_0207cb7c - - arm_func_start FUN_0207cba4 -FUN_0207cba4: @ 0x0207CBA4 - push {r3, lr} - ldr ip, [sp, #8] - mov lr, r2 - str r3, [sp] - mov r2, r1 - orr r1, r0, ip, lsl #24 - mov r3, lr - mov r0, #7 - bl FUN_0207cbcc - pop {r3, pc} - arm_func_end FUN_0207cba4 - - arm_func_start FUN_0207cbcc -FUN_0207cbcc: @ 0x0207CBCC - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r0, #1 - mov r6, r1 - mov r5, r2 - mov r4, r3 - bl FUN_0207ce54 - cmp r0, #0 - popeq {r3, r4, r5, r6, r7, pc} - str r7, [r0, #4] - str r6, [r0, #8] - str r5, [r0, #0xc] - ldr r1, [sp, #0x18] - str r4, [r0, #0x10] - str r1, [r0, #0x14] - bl FUN_0207cedc - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0207cbcc - - arm_func_start FUN_0207cc10 -FUN_0207cc10: @ 0x0207CC10 - push {r3, lr} - ldr r1, _0207CC40 @ =0x022B99EC - ldr r0, [r1] - cmp r0, #0 - popne {r3, pc} - ldr r0, _0207CC44 @ =0x022B99F0 - mov r2, #1 - str r2, [r1] - bl FUN_0207a030 - bl FUN_0207cc70 - bl FUN_0207d380 - pop {r3, pc} .align 2, 0 -_0207CC40: .4byte 0x022B99EC -_0207CC44: .4byte 0x022B99F0 - arm_func_end FUN_0207cc10 +_022D1DC8: .4byte 0x0232508C +_022D1DCC: .4byte 0x023250B8 +_022D1DD0: .4byte 0x00004805 + arm_func_end ov00_022D1C34 - arm_func_start FUN_0207cc48 -FUN_0207cc48: @ 0x0207CC48 - ldr ip, _0207CC54 @ =FUN_0207a048 - ldr r0, _0207CC58 @ =0x022B99F0 - bx ip - .align 2, 0 -_0207CC54: .4byte FUN_0207a048 -_0207CC58: .4byte 0x022B99F0 - arm_func_end FUN_0207cc48 - - arm_func_start FUN_0207cc5c -FUN_0207cc5c: @ 0x0207CC5C - ldr ip, _0207CC68 @ =FUN_0207a0cc - ldr r0, _0207CC6C @ =0x022B99F0 - bx ip - .align 2, 0 -_0207CC68: .4byte FUN_0207a0cc -_0207CC6C: .4byte 0x022B99F0 - arm_func_end FUN_0207cc5c - - arm_func_start FUN_0207cc70 -FUN_0207cc70: @ 0x0207CC70 - push {r4, lr} - bl FUN_0207d270 - ldr lr, _0207CD2C @ =0x022B9D00 - ldr r0, _0207CD30 @ =0x022B9A20 - mov r4, #0 - str lr, [r0] - mov r0, #0x18 - mov r1, r0 - b _0207CCA8 -_0207CC94: - add r3, r4, #1 - mul r2, r4, r1 - mla ip, r3, r0, lr - mov r4, r3 - str ip, [lr, r2] -_0207CCA8: - cmp r4, #0xff - blt _0207CC94 - ldr r0, _0207CD34 @ =0x022BAA20 - mov r3, #0 - str r3, [r0, #0xac8] - ldr r1, _0207CD38 @ =0x022BB4E8 - ldr r2, _0207CD30 @ =0x022B9A20 - mov r0, #1 - str r1, [r2, #0x10] - str r3, [r2, #8] - str r3, [r2, #0xc] - str r3, [r2, #0x1c] - str r3, [r2, #0x14] - str r3, [r2, #0x18] - str r0, [r2, #0x20] - ldr r0, _0207CD3C @ =0x022B9A80 - ldr r1, _0207CD40 @ =0x022BB560 - str r3, [r2, #4] - str r0, [r1] - bl FUN_0207d4c4 - mov r0, #1 - bl FUN_0207ce54 - cmp r0, #0 - popeq {r4, pc} - mov r2, #0x1d - ldr r1, _0207CD40 @ =0x022BB560 - str r2, [r0, #4] - ldr r1, [r1] - str r1, [r0, #8] - bl FUN_0207cedc - mov r0, #1 - bl FUN_0207cf14 - pop {r4, pc} - .align 2, 0 -_0207CD2C: .4byte 0x022B9D00 -_0207CD30: .4byte 0x022B9A20 -_0207CD34: .4byte 0x022BAA20 -_0207CD38: .4byte 0x022BB4E8 -_0207CD3C: .4byte 0x022B9A80 -_0207CD40: .4byte 0x022BB560 - arm_func_end FUN_0207cc70 - - arm_func_start FUN_0207cd44 -FUN_0207cd44: @ 0x0207CD44 - push {r4, r5, r6, lr} - mov r5, r0 - bl EnableIrqFlag - mov r4, r0 - tst r5, #1 - beq _0207CDA0 - bl FUN_0207d49c - ldr r5, _0207CE4C @ =0x022B9A20 - ldr r1, [r5, #4] - cmp r1, r0 - bne _0207CDC4 - mov r6, #0x64 -_0207CD74: - mov r0, r4 - bl SetIrqFlag - mov r0, r6 - bl _0207B854 - bl EnableIrqFlag - mov r4, r0 - bl FUN_0207d49c - ldr r1, [r5, #4] - cmp r1, r0 - beq _0207CD74 - b _0207CDC4 -_0207CDA0: - bl FUN_0207d49c - ldr r1, _0207CE4C @ =0x022B9A20 - ldr r1, [r1, #4] - cmp r1, r0 - bne _0207CDC4 - mov r0, r4 - bl SetIrqFlag - mov r0, #0 - pop {r4, r5, r6, pc} -_0207CDC4: - ldr r0, _0207CE4C @ =0x022B9A20 - ldr r2, _0207CE50 @ =0x022B9A44 - ldr r3, [r0, #0x14] - add r1, r3, #1 - ldr r5, [r2, r3, lsl #2] - str r1, [r0, #0x14] - cmp r1, #8 - movgt r1, #0 - strgt r1, [r0, #0x14] - ldr r0, [r5] - mov r2, r5 - cmp r0, #0 - beq _0207CE08 -_0207CDF8: - ldr r2, [r2] - ldr r0, [r2] - cmp r0, #0 - bne _0207CDF8 -_0207CE08: - ldr r0, _0207CE4C @ =0x022B9A20 - ldr r1, [r0, #0x10] - cmp r1, #0 - strne r5, [r1] - streq r5, [r0] - ldr r1, _0207CE4C @ =0x022B9A20 - mov r0, r4 - str r2, [r1, #0x10] - ldr r2, [r1, #0x1c] - sub r2, r2, #1 - str r2, [r1, #0x1c] - ldr r2, [r1, #4] - add r2, r2, #1 - str r2, [r1, #4] - bl SetIrqFlag - mov r0, r5 - pop {r4, r5, r6, pc} - .align 2, 0 -_0207CE4C: .4byte 0x022B9A20 -_0207CE50: .4byte 0x022B9A44 - arm_func_end FUN_0207cd44 - - arm_func_start FUN_0207ce54 -FUN_0207ce54: @ 0x0207CE54 - push {r4, lr} - mov r4, r0 - bl FUN_0207d340 - cmp r0, #0 - moveq r0, #0 - popeq {r4, pc} - bl FUN_0207d2f8 - cmp r0, #0 - popne {r4, pc} - tst r4, #1 - moveq r0, #0 - popeq {r4, pc} - bl FUN_0207d230 - cmp r0, #0 - ble _0207CEB4 - mov r4, #0 -_0207CE94: - mov r0, r4 - bl FUN_0207cd44 - cmp r0, #0 - bne _0207CE94 - bl FUN_0207d2f8 - cmp r0, #0 - beq _0207CEBC - pop {r4, pc} -_0207CEB4: - mov r0, #1 - bl FUN_0207cf14 -_0207CEBC: - bl FUN_0207d2d0 - mov r4, #1 -_0207CEC4: - mov r0, r4 - bl FUN_0207cd44 - bl FUN_0207d2f8 - cmp r0, #0 - beq _0207CEC4 - pop {r4, pc} - arm_func_end FUN_0207ce54 - - arm_func_start FUN_0207cedc -FUN_0207cedc: @ 0x0207CEDC - push {r4, lr} - mov r4, r0 - bl EnableIrqFlag - ldr r1, _0207CF10 @ =0x022B9A20 - ldr r2, [r1, #0xc] - cmp r2, #0 - streq r4, [r1, #8] - strne r4, [r2] - str r4, [r1, #0xc] - mov r1, #0 - str r1, [r4] - bl SetIrqFlag - pop {r4, pc} - .align 2, 0 -_0207CF10: .4byte 0x022B9A20 - arm_func_end FUN_0207cedc - - arm_func_start FUN_0207cf14 -FUN_0207cf14: @ 0x0207CF14 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + arm_func_start ov00_022D1DD4 +ov00_022D1DD4: @ 0x022D1DD4 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x74 + ldr r2, _022D1EF4 @ =0x02326AC0 mov sl, r0 - bl EnableIrqFlag - ldr r4, _0207D0C4 @ =0x022B9A20 - mov sb, r0 - ldr r1, [r4, #8] - cmp r1, #0 - bne _0207CF40 - bl SetIrqFlag - mov r0, #1 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0207CF40: - ldr r1, [r4, #0x1c] - cmp r1, #8 - blt _0207CF98 - tst sl, #1 - bne _0207CF60 - bl SetIrqFlag - mov r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0207CF60: - mov r5, #1 -_0207CF64: - mov r0, r5 - bl FUN_0207cd44 - ldr r0, [r4, #0x1c] - cmp r0, #8 - bge _0207CF64 - ldr r0, _0207D0C4 @ =0x022B9A20 - ldr r0, [r0, #8] + ldrb r0, [r2] + mov sb, r1 cmp r0, #0 - bne _0207CF98 - mov r0, sb - bl SetIrqFlag - mov r0, #1 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0207CF98: - ldr r0, _0207D0C8 @ =0x022B9D00 - mov r1, #0x1800 - bl FUN_0207a2dc - ldr r1, _0207D0C4 @ =0x022B9A20 - mov r0, #7 - ldr r1, [r1, #8] - mov r2, #0 - bl FUN_0207db20 - cmp r0, #0 - bge _0207D058 - tst sl, #1 - bne _0207CFD8 - mov r0, sb - bl SetIrqFlag - mov r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0207CFD8: - mov fp, #0 - mov r5, #7 - mov r8, fp - ldr r7, _0207D0C8 @ =0x022B9D00 - mov r6, #0x1800 - ldr r4, _0207D0C4 @ =0x022B9A20 - b _0207D034 -_0207CFF4: - mov r0, sb - bl SetIrqFlag - mov r0, r8 - bl FUN_0207cd44 - bl EnableIrqFlag - mov sb, r0 - mov r0, r7 - mov r1, r6 - bl FUN_0207a2dc - ldr r0, [r4, #8] - cmp r0, #0 - bne _0207D034 - mov r0, sb - bl SetIrqFlag - mov r0, #1 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0207D034: - ldr r0, [r4, #0x1c] - cmp r0, #8 - bge _0207CFF4 - ldr r1, [r4, #8] - mov r0, r5 - mov r2, fp - bl FUN_0207db20 - cmp r0, #0 - blt _0207CFF4 -_0207D058: - ldr r0, _0207D0C4 @ =0x022B9A20 - ldr r2, _0207D0CC @ =0x022B9A44 - ldr r3, [r0, #0x18] - ldr r4, [r0, #8] - add r1, r3, #1 - str r4, [r2, r3, lsl #2] - str r1, [r0, #0x18] - cmp r1, #8 - movgt r1, #0 - strgt r1, [r0, #0x18] - ldr r1, _0207D0C4 @ =0x022B9A20 - mov r0, #0 - str r0, [r1, #8] - str r0, [r1, #0xc] - ldr r2, [r1, #0x1c] - mov r0, sb - add r2, r2, #1 - str r2, [r1, #0x1c] - ldr r2, [r1, #0x20] - add r2, r2, #1 - str r2, [r1, #0x20] - bl SetIrqFlag - tst sl, #2 - beq _0207D0BC - bl FUN_0207d2d0 -_0207D0BC: - mov r0, #1 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0207D0C4: .4byte 0x022B9A20 -_0207D0C8: .4byte 0x022B9D00 -_0207D0CC: .4byte 0x022B9A44 - arm_func_end FUN_0207cf14 - - arm_func_start FUN_0207d0d0 -FUN_0207d0d0: @ 0x0207D0D0 - push {r3, r4, r5, lr} - mov r5, r0 - bl FUN_0207d168 - cmp r0, #0 - popne {r3, r4, r5, pc} - mov r4, #0 -_0207D0E8: - mov r0, r4 - bl FUN_0207cd44 - cmp r0, #0 - bne _0207D0E8 - mov r0, r5 - bl FUN_0207d168 - cmp r0, #0 - popne {r3, r4, r5, pc} - bl FUN_0207d2d0 - mov r0, r5 - bl FUN_0207d168 - cmp r0, #0 - popne {r3, r4, r5, pc} - mov r4, #1 -_0207D120: - mov r0, r4 - bl FUN_0207cd44 - mov r0, r5 - bl FUN_0207d168 - cmp r0, #0 - beq _0207D120 - pop {r3, r4, r5, pc} - arm_func_end FUN_0207d0d0 - - arm_func_start FUN_0207d13c -FUN_0207d13c: @ 0x0207D13C - push {r4, lr} - bl EnableIrqFlag - ldr r1, _0207D164 @ =0x022B9A20 - ldr r2, [r1, #8] - cmp r2, #0 - ldreq r4, [r1, #4] - ldrne r4, [r1, #0x20] - bl SetIrqFlag - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_0207D164: .4byte 0x022B9A20 - arm_func_end FUN_0207d13c - - arm_func_start FUN_0207d168 -FUN_0207d168: @ 0x0207D168 - push {r4, lr} - mov r4, r0 - bl EnableIrqFlag - ldr r1, _0207D1B4 @ =0x022B9A20 - ldr r1, [r1, #4] - cmp r4, r1 - bls _0207D198 - sub r1, r4, r1 - cmp r1, #0x80000000 - movlo r4, #0 - movhs r4, #1 - b _0207D1A8 -_0207D198: - sub r1, r1, r4 - cmp r1, #0x80000000 - movlo r4, #1 - movhs r4, #0 -_0207D1A8: - bl SetIrqFlag - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_0207D1B4: .4byte 0x022B9A20 - arm_func_end FUN_0207d168 - - arm_func_start FUN_0207d1b8 -FUN_0207d1b8: @ 0x0207D1B8 - push {r4, lr} - bl EnableIrqFlag - ldr r1, _0207D1F0 @ =0x022B9A20 - mov r4, #0 - ldr r1, [r1] - cmp r1, #0 - beq _0207D1E4 -_0207D1D4: - ldr r1, [r1] - add r4, r4, #1 - cmp r1, #0 - bne _0207D1D4 -_0207D1E4: - bl SetIrqFlag - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_0207D1F0: .4byte 0x022B9A20 - arm_func_end FUN_0207d1b8 - - arm_func_start FUN_0207d1f4 -FUN_0207d1f4: @ 0x0207D1F4 - push {r4, lr} - bl EnableIrqFlag - ldr r1, _0207D22C @ =0x022B9A20 - mov r4, #0 - ldr r1, [r1, #8] - cmp r1, #0 - beq _0207D220 -_0207D210: - ldr r1, [r1] - add r4, r4, #1 - cmp r1, #0 - bne _0207D210 -_0207D220: - bl SetIrqFlag - mov r0, r4 - pop {r4, pc} - .align 2, 0 -_0207D22C: .4byte 0x022B9A20 - arm_func_end FUN_0207d1f4 - - arm_func_start FUN_0207d230 -FUN_0207d230: @ 0x0207D230 - push {r4, lr} - bl FUN_0207d1b8 - mov r4, r0 - bl FUN_0207d1f4 - rsb r1, r4, #0x100 - sub r0, r1, r0 - pop {r4, pc} - arm_func_end FUN_0207d230 - - arm_func_start FUN_0207d24c -FUN_0207d24c: @ 0x0207D24C - push {r3, r4, r5, lr} - mov r5, r1 - bl EnableIrqFlag - mov r4, r0 - mov r0, r5 - bl FUN_0207d400 - mov r0, r4 - bl SetIrqFlag - pop {r3, r4, r5, pc} - arm_func_end FUN_0207d24c - - arm_func_start FUN_0207d270 -FUN_0207d270: @ 0x0207D270 - push {r4, r5, r6, lr} - ldr r1, _0207D2CC @ =FUN_0207d24c - mov r0, #7 - bl FUN_0207dab0 - bl FUN_0207d340 - cmp r0, #0 - popeq {r4, r5, r6, pc} - mov r0, #7 - mov r1, #1 - bl FUN_0207dafc - cmp r0, #0 - popne {r4, r5, r6, pc} - mov r6, #0x64 - mov r5, #7 - mov r4, #1 -_0207D2AC: + bne _022D1E38 + ldr r2, _022D1EF8 @ =0x023250E0 + add r0, sp, #0 + ldr r3, [r2] + ldmib r2, {r1, r4} + umull r6, r5, r4, r3 + mla r5, r4, r1, r5 + ldr r1, [r2, #0xc] + ldr r4, [r2, #0x10] + mla r5, r1, r3, r5 + ldr r1, [r2, #0x14] + adds r4, r4, r6 + adc r3, r1, r5 + str r4, [r2] + mov r1, #4 + str r3, [r2, #4] + str r3, [sp] + bl ov00_022D1F04 +_022D1E38: + cmp sb, #0 + mov r8, #0 + addle sp, sp, #0x74 + mov r1, #0x14 + pople {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r5, _022D1EFC @ =0x02326C38 + add r6, sp, #0x18 + mov fp, r1 + add r4, sp, #4 +_022D1E5C: + cmp r1, #0x14 + bne _022D1ED0 + mov r0, r6 + bl ov00_022D397C + bl FUN_0207B7E4 + mov r7, r0 + mov r0, r6 + mov r1, r5 + mov r2, fp + bl ov00_022D39D0 mov r0, r6 - bl _0207B854 - mov r0, r5 mov r1, r4 - bl FUN_0207dafc + bl ov00_022D3AF0 + ldr lr, _022D1F00 @ =0x02326C4B + mov r3, #1 + mov r2, #0x13 + add ip, sp, #0x17 +_022D1EA0: + ldrb r1, [lr] + ldrb r0, [ip], #-1 + subs r2, r2, #1 + add r0, r1, r0 + add r0, r3, r0 + strb r0, [lr], #-1 + lsr r3, r0, #8 + bpl _022D1EA0 + str r0, [sp] + mov r0, r7 + bl FUN_0207B7F8 + mov r1, #0 +_022D1ED0: + ldrb r0, [r4, r1] + add r1, r1, #1 cmp r0, #0 - beq _0207D2AC - pop {r4, r5, r6, pc} + strbne r0, [sl, r8] + addne r8, r8, #1 + cmp r8, sb + blt _022D1E5C + add sp, sp, #0x74 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 -_0207D2CC: .4byte FUN_0207d24c - arm_func_end FUN_0207d270 +_022D1EF4: .4byte 0x02326AC0 +_022D1EF8: .4byte 0x023250E0 +_022D1EFC: .4byte 0x02326C38 +_022D1F00: .4byte 0x02326C4B + arm_func_end ov00_022D1DD4 - arm_func_start FUN_0207d2d0 -FUN_0207d2d0: @ 0x0207D2D0 - push {r3, r4, r5, lr} - mov r5, #7 - mov r4, #0 -_0207D2DC: - mov r0, r5 - mov r1, r4 - mov r2, r4 - bl FUN_0207db20 - cmp r0, #0 - blt _0207D2DC - pop {r3, r4, r5, pc} - arm_func_end FUN_0207d2d0 - - arm_func_start FUN_0207d2f8 -FUN_0207d2f8: @ 0x0207D2F8 - push {r4, lr} - bl EnableIrqFlag - ldr r1, _0207D33C @ =0x022B9A20 - ldr r4, [r1] - cmp r4, #0 - bne _0207D31C - bl SetIrqFlag - mov r0, #0 - pop {r4, pc} -_0207D31C: - ldr r2, [r4] - str r2, [r1] - cmp r2, #0 - moveq r2, #0 - streq r2, [r1, #0x10] - bl SetIrqFlag + arm_func_start ov00_022D1F04 +ov00_022D1F04: @ 0x022D1F04 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x5c + mov r6, r0 + add r0, sp, #0 + mov r5, r1 + bl ov00_022D397C + bl FUN_0207B7E4 + mov r4, r0 + ldr r1, _022D1F6C @ =0x02326C38 + add r0, sp, #0 + mov r2, #0x14 + bl ov00_022D39D0 + mov r1, r6 + mov r2, r5 + add r0, sp, #0 + bl ov00_022D39D0 + ldr r1, _022D1F6C @ =0x02326C38 + add r0, sp, #0 + bl ov00_022D3A88 mov r0, r4 - pop {r4, pc} + bl FUN_0207B7F8 + ldr r0, _022D1F70 @ =0x02326AC0 + mov r1, #1 + strb r1, [r0] + add sp, sp, #0x5c + pop {r3, r4, r5, r6, pc} .align 2, 0 -_0207D33C: .4byte 0x022B9A20 - arm_func_end FUN_0207d2f8 +_022D1F6C: .4byte 0x02326C38 +_022D1F70: .4byte 0x02326AC0 + arm_func_end ov00_022D1F04 - arm_func_start FUN_0207d340 -FUN_0207d340: @ 0x0207D340 - push {r4, lr} - bl FUN_02079d98 + arm_func_start ov00_022D1F74 +ov00_022D1F74: @ 0x022D1F74 + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + ldr r1, _022D20C4 @ =0x0232508C + mov r6, r0 + ldr r1, [r1] + mov r0, #0x83 + ldr r5, [r6, #0xc] + blx r1 + movs r4, r0 + moveq r0, #9 + addeq sp, sp, #4 + strbeq r0, [r5, #0x455] + popeq {r3, r4, r5, r6, pc} + mov r0, #0x14 + strb r0, [r4] + mov r0, #3 + strb r0, [r4, #1] + mov r1, #0 + strb r1, [r4, #2] + strb r1, [r4, #3] + mov r3, #1 + strb r3, [r4, #4] + add r0, r5, #0x1cc + mov r2, #8 + strb r3, [r4, #5] + bl FUN_0207C40C + mov r0, #0x16 + strb r0, [r4, #6] + mov r0, #3 + strb r0, [r4, #7] + mov r1, #0 + strb r1, [r4, #8] + strb r1, [r4, #9] + mov r0, #0x28 + strb r0, [r4, #0xa] + mov r0, #0x14 + strb r0, [r4, #0xb] + strb r1, [r4, #0xc] + strb r1, [r4, #0xd] + mov r3, #0x24 + add r0, r5, #0x3a4 + add r1, r5, #0x3fc + mov r2, #0x58 + strb r3, [r4, #0xe] + bl FUN_0207C4C8 + mov r0, r5 + add r1, r4, #0xf + mov r2, #0 + bl ov00_022D1234 + add r0, r5, #0x3fc + add r1, r5, #0x3a4 + mov r2, #0x58 + bl FUN_0207C4C8 + add r0, r5, #0x2ec + add r1, r5, #0x348 + mov r2, #0x5c + bl FUN_0207C4C8 + mov r0, r5 + add r1, r4, #0x1f + mov r2, #0 + bl ov00_022D1310 + add r0, r5, #0x348 + add r1, r5, #0x2ec + mov r2, #0x5c + bl FUN_0207C4C8 + mov r0, r5 + add r1, r4, #0xb + mov r2, #0x28 + bl ov00_022D1988 + mov r0, r5 + add r1, r4, #6 + bl ov00_022D1718 + mov r2, #0 + add r1, r0, #6 + mov r0, r4 + mov r3, r2 + str r6, [sp] + bl ov00_022CB77C + ldr r1, _022D20C8 @ =0x023250B8 + mov r0, r4 + ldr r1, [r1] + blx r1 + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_022D20C4: .4byte 0x0232508C +_022D20C8: .4byte 0x023250B8 + arm_func_end ov00_022D1F74 + + arm_func_start ov00_022D20CC +ov00_022D20CC: @ 0x022D20CC + push {r3, r4, r5, r6, r7, lr} + ldr r1, _022D2254 @ =0x0232508C + mov r7, r0 + ldr r1, [r1] + mov r0, #0x98 + ldr r4, [r7, #0xc] + blx r1 + movs r5, r0 + moveq r0, #9 + strbeq r0, [r4, #0x455] + popeq {r3, r4, r5, r6, r7, pc} + mov r0, #3 + strb r0, [r5, #9] + mov r0, #0 + strb r0, [r5, #0xa] + bl ov00_022CFD74 + lsr r1, r0, #0x18 + strb r1, [r4, #0x34] + lsr r1, r0, #0x10 + strb r1, [r4, #0x35] + lsr r1, r0, #8 + strb r1, [r4, #0x36] + strb r0, [r4, #0x37] + add r0, r4, #0x38 + mov r1, #0x1c + bl ov00_022D1DD4 + add r0, r4, #0x34 + add r1, r5, #0xb + mov r2, #0x20 + bl FUN_0207C4C8 + ldrh r2, [r7, #0x18] + ldr r1, [r7, #0x1c] + mov r0, r4 + bl ov00_022CFB80 + ldrb r0, [r4, #0x30] cmp r0, #0 - moveq r0, #1 - popeq {r4, pc} - bl EnableIrqFlag - ldr r1, _0207D37C @ =0x04FFF200 - mov r2, #0x10 - str r2, [r1] - ldr r4, [r1] - bl SetIrqFlag - cmp r4, #0 + moveq r0, #0 + strbeq r0, [r5, #0x2b] + addeq r0, r5, #0x2c + beq _022D2184 + mov r2, #0x20 + add r0, r4, #0x74 + add r1, r5, #0x2c + strb r2, [r5, #0x2b] + bl FUN_0207C4C8 + add r0, r5, #0x4c +_022D2184: + mov r6, #0 + strb r6, [r0] + mov r1, #4 + strb r1, [r0, #1] + ldr r2, _022D2258 @ =0x023188CC + add r0, r0, #2 +_022D219C: + lsl r3, r6, #1 + ldrh r1, [r2, r3] + add r6, r6, #1 + cmp r6, #2 + asr r1, r1, #8 + strb r1, [r0] + ldrh r1, [r2, r3] + strb r1, [r0, #1] + add r0, r0, #2 + blo _022D219C + mov r3, #1 + mov r2, #0 + strb r3, [r0] + add r1, r0, #2 + sub r1, r1, r5 + sub r6, r1, #5 + strb r2, [r0, #1] + sub r1, r6, #4 + mov r0, #0x16 + strb r0, [r5] + mov r0, #3 + strb r0, [r5, #1] + strb r2, [r5, #2] + asr r0, r6, #8 + strb r0, [r5, #3] + strb r6, [r5, #4] + strb r3, [r5, #5] + asr r0, r1, #0x10 + strb r0, [r5, #6] + asr r0, r1, #8 + strb r0, [r5, #7] + strb r1, [r5, #8] + mov r0, r5 + mov r3, r2 + add r1, r6, #5 + str r7, [sp] + bl ov00_022CB77C + mov r0, r4 + mov r2, r6 + add r1, r5, #5 + bl ov00_022D1988 + ldr r1, _022D225C @ =0x023250B8 + mov r0, r5 + ldr r1, [r1] + blx r1 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022D2254: .4byte 0x0232508C +_022D2258: .4byte 0x023188CC +_022D225C: .4byte 0x023250B8 + arm_func_end ov00_022D20CC + + arm_func_start ov00_022D2260 +ov00_022D2260: @ 0x022D2260 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #8 + mov sl, r0 + ldr r4, [sl, #0xc] + ldrb r0, [r4, #0x5ac] + cmp r0, #0 + beq _022D2294 + mov r2, #0 + ldr r0, _022D2514 @ =0x02318150 + mov r3, r2 + mov r1, #7 + str sl, [sp] + bl ov00_022CB77C +_022D2294: + mov r0, #3 + strb r0, [r4] + mov r0, #0 + strb r0, [r4, #1] + add r0, r4, #2 + mov r1, #0x2e + bl ov00_022D1DD4 + ldr sb, [r4, #0x594] + ldr r0, _022D2518 @ =0x0232508C + lsl r1, sb, #1 + ldr r2, [r0] + add r1, r1, r1, lsr #31 + mov r0, sb + asr r7, r1, #1 + blx r2 + movs r8, r0 + moveq r0, #9 + addeq sp, sp, #8 + strbeq r0, [r4, #0x455] + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, #0 + strb r0, [r8] + mov r2, #2 + add r0, r8, #2 + sub r1, sb, #0x33 + strb r2, [r8, #1] + bl ov00_022D1DD4 + add r1, r8, sb + mov r0, r4 + sub r3, sb, #0x31 + mov r5, #0 + sub r1, r1, #0x30 + mov r2, #0x30 + strb r5, [r8, r3] + bl FUN_0207C4C8 + ldr r1, _022D2518 @ =0x0232508C + lsl r0, r7, #3 + ldr r1, [r1] + blx r1 + movs r5, r0 + bne _022D2358 + ldr r1, _022D251C @ =0x023250B8 + mov r0, r8 + ldr r1, [r1] + blx r1 + mov r0, #9 + add sp, sp, #8 + strb r0, [r4, #0x455] + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022D2358: + add r0, r5, r7, lsl #1 + add fp, r0, r7, lsl #1 + mov r1, r8 + mov r2, sb + mov r3, r7 + str r0, [sp, #4] + add r6, fp, r7, lsl #1 + bl ov00_022D49AC + add r0, r4, #0x198 + add r1, r0, #0x400 + ldr r2, [r4, #0x5a0] + mov r0, fp + mov r3, r7 + bl ov00_022D49AC + add r1, r4, #0x94 + mov r0, r6 + add r1, r1, #0x400 + mov r2, sb + mov r3, r7 + bl ov00_022D49AC + bl ov00_022CFDCC + str r6, [sp] + mov r6, r0 + ldr r1, [sp, #4] + mov r2, fp + mov r3, r7 + mov r0, r5 + bl ov00_022D4398 + mov r0, r6 + bl ov00_022CFE18 + ldr r1, _022D2518 @ =0x0232508C + add r0, sb, #0x49 + ldr r1, [r1] + blx r1 + movs r6, r0 + bne _022D2418 + ldr r1, _022D251C @ =0x023250B8 + mov r0, r8 + ldr r1, [r1] + blx r1 + ldr r1, _022D251C @ =0x023250B8 + mov r0, r5 + ldr r1, [r1] + blx r1 + mov r0, #9 + add sp, sp, #8 + strb r0, [r4, #0x455] + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022D2418: + mov r0, #0x16 + strb r0, [r6] + mov r1, #3 + add r0, sb, #4 + strb r1, [r6, #1] + mov r1, #0 + strb r1, [r6, #2] + asr r1, r0, #8 + strb r1, [r6, #3] + strb r0, [r6, #4] + mov r0, #0x10 + strb r0, [r6, #5] + asr r0, sb, #0x10 + strb r0, [r6, #6] + asr r0, sb, #8 + strb r0, [r6, #7] + strb sb, [r6, #8] + tst sb, #1 + add r0, r6, #9 + beq _022D2480 + add r0, sb, sb, lsr #31 + asr r0, r0, #1 + lsl r0, r0, #1 + ldrh r1, [r5, r0] + add r0, r6, #0xa + strb r1, [r6, #9] +_022D2480: + add r1, sb, sb, lsr #31 + asr r1, r1, #1 + subs r3, r1, #1 + bmi _022D24B4 +_022D2490: + lsl r2, r3, #1 + ldrh r1, [r5, r2] + subs r3, r3, #1 + asr r1, r1, #8 + strb r1, [r0] + ldrh r1, [r5, r2] + strb r1, [r0, #1] + add r0, r0, #2 + bpl _022D2490 +_022D24B4: + mov r2, #0 + mov r0, r6 + mov r3, r2 + add r1, sb, #9 + str sl, [sp] + bl ov00_022CB77C + mov r0, r4 + add r1, r6, #5 + add r2, sb, #4 + bl ov00_022D1988 + ldr r1, _022D251C @ =0x023250B8 + mov r0, r6 + ldr r1, [r1] + blx r1 + ldr r1, _022D251C @ =0x023250B8 + mov r0, r5 + ldr r1, [r1] + blx r1 + ldr r1, _022D251C @ =0x023250B8 + mov r0, r8 + ldr r1, [r1] + blx r1 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022D2514: .4byte 0x02318150 +_022D2518: .4byte 0x0232508C +_022D251C: .4byte 0x023250B8 + arm_func_end ov00_022D2260 + + arm_func_start ov00_022D2520 +ov00_022D2520: @ 0x022D2520 + push {r4, lr} + mov r4, r0 + bl ov00_022D1C34 + cmp r0, #7 + movne r0, #1 + popne {r4, pc} + mov r0, r4 + bl ov00_022D1C34 + cmp r0, #6 movne r0, #1 moveq r0, #0 pop {r4, pc} - .align 2, 0 -_0207D37C: .4byte 0x04FFF200 - arm_func_end FUN_0207d340 + arm_func_end ov00_022D2520 - arm_func_start FUN_0207d380 -FUN_0207d380: @ 0x0207D380 - mov r1, #0 - ldr r2, _0207D3AC @ =0x022BB500 - mov r0, r1 -_0207D38C: - str r0, [r2] - str r0, [r2, #4] - add r1, r1, #1 - strb r0, [r2, #8] - cmp r1, #8 - add r2, r2, #0xc - blt _0207D38C - bx lr - .align 2, 0 -_0207D3AC: .4byte 0x022BB500 - arm_func_end FUN_0207d380 - - arm_func_start FUN_0207d3b0 -FUN_0207d3b0: @ 0x0207D3B0 - ldr r2, _0207D3CC @ =0x022BB500 - mov r1, #0xc - mla r1, r0, r1, r2 - ldrb r0, [r1, #8] - add r0, r0, #1 - strb r0, [r1, #8] - bx lr - .align 2, 0 -_0207D3CC: .4byte 0x022BB500 - arm_func_end FUN_0207d3b0 - - arm_func_start FUN_0207d3d0 -FUN_0207d3d0: @ 0x0207D3D0 - mov r3, #0xc - mul r3, r0, r3 - ldr r0, _0207D3FC @ =0x022BB500 - str r1, [r0, r3] - add r1, r0, r3 - str r2, [r1, #4] - ldrb r0, [r1, #8] - add r0, r0, #1 - strb r0, [r1, #8] - and r0, r0, #0xff - bx lr - .align 2, 0 -_0207D3FC: .4byte 0x022BB500 - arm_func_end FUN_0207d3d0 - - arm_func_start FUN_0207d400 -FUN_0207d400: @ 0x0207D400 - push {r3, lr} - ldr r3, _0207D440 @ =0x022BB500 - and r2, r0, #0xff - mov r1, #0xc - mla r3, r2, r1, r3 - asr r1, r0, #8 - ldrb r0, [r3, #8] - and r1, r1, #0xff - cmp r1, r0 - popne {r3, pc} - ldr r1, [r3] - cmp r1, #0 - popeq {r3, pc} - ldr r0, [r3, #4] - blx r1 - pop {r3, pc} - .align 2, 0 -_0207D440: .4byte 0x022BB500 - arm_func_end FUN_0207d400 -_0207D444: - .byte 0x08, 0x40, 0x2D, 0xE9, 0x1C, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x00, 0x80, 0xE2, 0x91, 0xF3, 0xFF, 0xEB, 0x08, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x60, 0xB5, 0x2B, 0x02 - - arm_func_start FUN_0207d470 -FUN_0207d470: @ 0x0207D470 - push {r3, lr} - ldr r0, _0207D498 @ =0x022BB560 - mov r1, #2 - ldr r0, [r0] - add r0, r0, #8 - bl FUN_0207a2a4 - ldr r0, _0207D498 @ =0x022BB560 - ldr r0, [r0] - ldrh r0, [r0, #8] - pop {r3, pc} - .align 2, 0 -_0207D498: .4byte 0x022BB560 - arm_func_end FUN_0207d470 - - arm_func_start FUN_0207d49c -FUN_0207d49c: @ 0x0207D49C - push {r3, lr} - ldr r0, _0207D4C0 @ =0x022BB560 - mov r1, #4 - ldr r0, [r0] - bl FUN_0207a2a4 - ldr r0, _0207D4C0 @ =0x022BB560 - ldr r0, [r0] - ldr r0, [r0] - pop {r3, pc} - .align 2, 0 -_0207D4C0: .4byte 0x022BB560 - arm_func_end FUN_0207d49c - - arm_func_start FUN_0207d4c4 -FUN_0207d4c4: @ 0x0207D4C4 - push {r4, lr} - mov ip, #0 - str ip, [r0, #4] - strh ip, [r0, #8] - strh ip, [r0, #0xa] - mov r4, r0 - str ip, [r0] - mvn r2, #0 - mov r3, ip -_0207D4E8: - mov lr, r3 - str r3, [r4, #0x40] -_0207D4F0: - add r1, r4, lr, lsl #1 - add lr, lr, #1 - strh r2, [r1, #0x20] - cmp lr, #0x10 - blt _0207D4F0 - add ip, ip, #1 - cmp ip, #0x10 - add r4, r4, #0x24 - blt _0207D4E8 - mov r3, #0 - mvn r2, #0 -_0207D51C: - add r1, r0, r3, lsl #1 - add r1, r1, #0x200 - add r3, r3, #1 - strh r2, [r1, #0x60] - cmp r3, #0x10 - blt _0207D51C - mov r1, #0x280 - bl FUN_0207a2dc - pop {r4, pc} - arm_func_end FUN_0207d4c4 -_0207D540: - .byte 0x60, 0x10, 0x9F, 0xE5, 0x01, 0x00, 0x50, 0xE1, 0x01, 0x00, 0xA0, 0xB1, 0x01, 0x00, 0x00, 0xBA - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xC3, 0xD3, 0x10, 0x80, 0xE2, 0xEF, 0x20, 0xE0, 0xE3 - .byte 0x02, 0x00, 0x50, 0xE1, 0x40, 0x30, 0x9F, 0xE5, 0x02, 0x1C, 0x81, 0xE2, 0x01, 0x30, 0xD3, 0xE7 - .byte 0x03, 0x00, 0xA0, 0xB3, 0x07, 0x00, 0x00, 0xBA, 0x78, 0x10, 0x82, 0xE2, 0x01, 0x00, 0x50, 0xE1 - .byte 0x02, 0x00, 0xA0, 0xB3, 0x03, 0x00, 0x00, 0xBA, 0xB4, 0x10, 0x82, 0xE2, 0x01, 0x00, 0x50, 0xE1 - .byte 0x01, 0x00, 0xA0, 0xB3, 0x00, 0x00, 0xA0, 0xA3, 0x00, 0x04, 0x83, 0xE1, 0x00, 0x08, 0xA0, 0xE1 - .byte 0x20, 0x08, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x2D, 0xFD, 0xFF, 0xFF, 0x24, 0xE9, 0x0A, 0x02 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1 - .byte 0xA0, 0xFD, 0xFF, 0xEB, 0x85, 0x31, 0x86, 0xE0, 0x18, 0x20, 0x93, 0xE5, 0x00, 0x00, 0x52, 0xE3 - .byte 0x1A, 0x00, 0x00, 0x0A, 0x02, 0x00, 0x54, 0xE1, 0x01, 0x00, 0x00, 0x1A, 0x9E, 0xFD, 0xFF, 0xEB - .byte 0x70, 0x80, 0xBD, 0xE8, 0x18, 0x10, 0x86, 0xE2, 0x18, 0x00, 0x92, 0xE5, 0x85, 0xC1, 0x81, 0xE0 - .byte 0x00, 0x00, 0x5C, 0xE1, 0x05, 0x00, 0x00, 0x1A, 0x1C, 0x00, 0x93, 0xE5, 0x3C, 0x10, 0xA0, 0xE3 - .byte 0x18, 0x00, 0x82, 0xE5, 0x18, 0x00, 0x93, 0xE5, 0x2C, 0xF3, 0xFF, 0xEB, 0x0B, 0x00, 0x00, 0xEA - .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x04, 0x10, 0x90, 0xE5, 0x01, 0x00, 0x5C, 0xE1 - .byte 0x01, 0x00, 0xA0, 0x11, 0x00, 0x00, 0x51, 0x13, 0xFA, 0xFF, 0xFF, 0x1A, 0x85, 0x11, 0x86, 0xE0 - .byte 0x1C, 0x20, 0x91, 0xE5, 0x08, 0x10, 0xA0, 0xE3, 0x04, 0x20, 0x80, 0xE5, 0x1F, 0xF3, 0xFF, 0xEB - .byte 0x18, 0x00, 0x86, 0xE2, 0x18, 0x10, 0x94, 0xE5, 0x85, 0x01, 0x80, 0xE0, 0x18, 0x00, 0x84, 0xE5 - .byte 0x85, 0x01, 0x86, 0xE0, 0x1C, 0x10, 0x80, 0xE5, 0x18, 0x40, 0x80, 0xE5, 0x7E, 0xFD, 0xFF, 0xEB - .byte 0x06, 0x00, 0xA0, 0xE1, 0x3C, 0x10, 0xA0, 0xE3, 0x14, 0xF3, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x3C, 0x10, 0xA0, 0xE3, 0x11, 0xF3, 0xFF, 0xEB, 0x70, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_0207d67c -FUN_0207d67c: @ 0x0207D67C - push {r4, r5, r6, r7, r8, lr} - mov r7, r0 - bl FUN_0207cc48 - add r5, r7, #0x18 - mov r6, #0 - mov r8, #8 - mov r4, #0x3c -_0207D698: - add r1, r7, r6, lsl #3 - ldr r0, [r1, #0x18] - cmp r0, #0 - beq _0207D6FC - ldr r3, [r0, #0x18] - cmp r5, r3 - bne _0207D6C8 - ldr r2, [r1, #0x1c] - mov r1, r4 - str r2, [r0, #0x18] - bl FUN_0207a2c0 - b _0207D6FC -_0207D6C8: - cmp r3, #0 - beq _0207D6E4 -_0207D6D0: - ldr r0, [r3, #4] - cmp r5, r0 - movne r3, r0 - cmpne r0, #0 - bne _0207D6D0 -_0207D6E4: - add r0, r7, r6, lsl #3 - ldr r2, [r0, #0x1c] - mov r0, r3 - mov r1, r8 - str r2, [r3, #4] - bl FUN_0207a2c0 -_0207D6FC: - add r6, r6, #1 - cmp r6, #4 - add r5, r5, #8 - blt _0207D698 - bl FUN_0207cc5c - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0207d67c - - arm_func_start FUN_0207d714 -FUN_0207d714: @ 0x0207D714 - push {r4, r5, r6, lr} - mov r4, r0 - bl FUN_0207cc48 - ldr r0, [r4, #0x18] - cmp r0, #0 - beq _0207D754 - mov r5, #0 - mov r4, #8 -_0207D734: - ldr r6, [r0, #4] - mov r1, r4 - str r5, [r0] - str r5, [r0, #4] - bl FUN_0207a2c0 - mov r0, r6 - cmp r6, #0 - bne _0207D734 -_0207D754: - bl FUN_0207cc5c - pop {r4, r5, r6, pc} - arm_func_end FUN_0207d714 -_0207D75C: - .byte 0x08, 0xD0, 0x4D, 0xE2 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x00, 0x10, 0x8D, 0xE5, 0x04, 0x10, 0x8D, 0xE5 - .byte 0x04, 0x10, 0x80, 0xE5, 0x08, 0xD0, 0x8D, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0207d77c -FUN_0207d77c: @ 0x0207D77C - push {r3, r4, r5, lr} - ldr r4, [r2] - ldr r3, [r0, #0x38] - cmp r4, r3 - bhs _0207D924 - mov ip, #0 -_0207D794: - add r3, r0, r4, lsl #2 - ldr r4, [r3, #0x3c] - and r3, r4, #0xff - strb r4, [r1] - cmp r3, #0x10 - lsr r4, r4, #8 - bgt _0207D7DC - cmp r3, #0x10 - bge _0207D828 - cmp r3, #5 - addls pc, pc, r3, lsl #2 - b _0207D908 -_0207D7C4: @ jump table - b _0207D908 @ case 0 - b _0207D7E8 @ case 1 - b _0207D7E8 @ case 2 - b _0207D7E8 @ case 3 - b _0207D7E8 @ case 4 - b _0207D7E8 @ case 5 -_0207D7DC: - cmp r3, #0x11 - beq _0207D89C - b _0207D908 -_0207D7E8: - add r5, r0, r4 - ldrh r4, [r0, r4] - ldrh r3, [r5, #2] - mov r0, #1 - strh r4, [r1, #2] - strh r3, [r1, #4] - ldrh r4, [r5, #4] - ldrh r3, [r5, #6] - strh r4, [r1, #6] - strh r3, [r1, #8] - ldrh r3, [r5, #8] - strh r3, [r1, #0xa] - ldr r1, [r2] - add r1, r1, #1 - str r1, [r2] - pop {r3, r4, r5, pc} -_0207D828: - add r5, r0, r4 - b _0207D87C -_0207D830: - mov r0, #0xc - mla ip, lr, r0, r5 - ldrh r4, [ip, #2] - ldrh r3, [ip, #4] - mov r0, #1 - strh r4, [r1] - strh r3, [r1, #2] - ldrh r4, [ip, #6] - ldrh r3, [ip, #8] - strh r4, [r1, #4] - strh r3, [r1, #6] - ldrh r4, [ip, #0xa] - ldrh r3, [ip, #0xc] - strh r4, [r1, #8] - strh r3, [r1, #0xa] - ldr r1, [r2, #4] - add r1, r1, #1 - str r1, [r2, #4] - pop {r3, r4, r5, pc} -_0207D87C: - ldrb r4, [r5, #1] - ldrb r3, [r5] - ldr lr, [r2, #4] - sub r3, r4, r3 - add r3, r3, #1 - cmp lr, r3 - blo _0207D830 - b _0207D908 -_0207D89C: - add r4, r0, r4 - b _0207D8FC -_0207D8A4: - ldrb lr, [r4, r3] - cmp lr, #0 - beq _0207D908 - mov r0, #0xc - mla lr, r3, r0, r4 - ldrh ip, [lr, #8] - ldrh r3, [lr, #0xa] - mov r0, #1 - strh ip, [r1] - strh r3, [r1, #2] - ldrh ip, [lr, #0xc] - ldrh r3, [lr, #0xe] - strh ip, [r1, #4] - strh r3, [r1, #6] - ldrh ip, [lr, #0x10] - ldrh r3, [lr, #0x12] - strh ip, [r1, #8] - strh r3, [r1, #0xa] - ldr r1, [r2, #4] - add r1, r1, #1 - str r1, [r2, #4] - pop {r3, r4, r5, pc} -_0207D8FC: - ldr r3, [r2, #4] - cmp r3, #8 - blo _0207D8A4 -_0207D908: - ldr r3, [r2] - add r3, r3, #1 - stm r2, {r3, ip} - ldr r4, [r2] - ldr r3, [r0, #0x38] - cmp r4, r3 - blo _0207D794 -_0207D924: - mov r0, #0 - pop {r3, r4, r5, pc} - arm_func_end FUN_0207d77c -_0207D92C: - .byte 0x38, 0x00, 0x90, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0207d934 -FUN_0207d934: @ 0x0207D934 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl FUN_0207cc48 - add r0, r6, #0x3c - add r2, r6, r5, lsl #2 - add r0, r0, r5, lsl #2 - mov r1, #4 - str r4, [r2, #0x3c] - bl FUN_0207a2c0 - bl FUN_0207cc5c - pop {r4, r5, r6, pc} - arm_func_end FUN_0207d934 - - arm_func_start FUN_0207d968 -FUN_0207d968: @ 0x0207D968 + arm_func_start ov00_022D2550 +ov00_022D2550: @ 0x022D2550 push {r3, r4, r5, lr} mov r5, r0 - mov r4, r1 - bl FUN_0207cc48 - add r0, r5, r4, lsl #2 - ldr r4, [r0, #0x3c] - cmp r4, #0 - beq _0207D994 - cmp r4, #0x2000000 - addlo r4, r5, r4 - b _0207D998 -_0207D994: - mov r4, #0 -_0207D998: - bl FUN_0207cc5c + ldr r4, [r5, #0xc] + bl ov00_022D20CC +_022D2560: + mov r0, r5 + bl ov00_022D1C34 + cmp r0, #9 + moveq r0, #1 + popeq {r3, r4, r5, pc} + cmp r0, #4 + beq _022D2588 + ldrb r0, [r4, #0x31] + cmp r0, #0 + beq _022D2560 +_022D2588: + ldrb r0, [r4, #0x31] + cmp r0, #0 + beq _022D25BC mov r0, r4 + bl ov00_022D102C + mov r0, r5 + bl ov00_022D2520 + cmp r0, #0 + movne r0, #1 + popne {r3, r4, r5, pc} + mov r0, r5 + bl ov00_022D1F74 + b _022D260C +_022D25BC: + mov r0, r5 + bl ov00_022D2260 + mov r0, r4 + bl ov00_022D0FCC + ldrb r0, [r4, #0x30] + cmp r0, #0 + beq _022D25E8 + ldrh r2, [r5, #0x18] + ldr r1, [r5, #0x1c] + mov r0, r4 + bl ov00_022CFC20 +_022D25E8: + mov r0, r4 + bl ov00_022D102C + mov r0, r5 + bl ov00_022D1F74 + mov r0, r5 + bl ov00_022D2520 + cmp r0, #0 + movne r0, #1 + popne {r3, r4, r5, pc} +_022D260C: + mov r0, #8 + strb r0, [r4, #0x455] + mov r0, #0 pop {r3, r4, r5, pc} - arm_func_end FUN_0207d968 + arm_func_end ov00_022D2550 - arm_func_start thunk_FUN_0207d9b0 -thunk_FUN_0207d9b0: @ 0x0207D9A4 - ldr ip, _0207D9AC @ =FUN_0207d9b0 + arm_func_start ov00_022D261C +ov00_022D261C: @ 0x022D261C + push {r3, r4, r5, lr} + mov r5, r0 + ldrb r1, [r5, #8] + ldr r4, [r5, #0xc] + cmp r1, #4 + beq _022D2644 + bl ov00_022CB278 + cmp r0, #0 + movne r0, #1 + popne {r3, r4, r5, pc} +_022D2644: + mov r1, #0 + strb r1, [r4, #0x455] + str r1, [r4, #0x1d4] + add r0, r4, #0x2ec + strb r1, [r4, #0x454] + bl ov00_022D397C + add r0, r4, #0x3a4 + bl ov00_022D30BC + mov r0, r5 + bl ov00_022D2550 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D261C + + arm_func_start ov00_022D2670 +ov00_022D2670: @ 0x022D2670 + push {r4, r5, r6, lr} + mov r5, r1 + ldr r4, [r5, #0xc] + mov r6, r0 + ldr ip, [r4, #0x824] + cmp ip, #0 + beq _022D26F4 + ldrb r0, [r4, #0x456] + cmp r0, #0 + bne _022D26F4 + ldr r3, [r4, #0x82c] + ldr r1, [r4, #0x828] + mov r2, r5 + add r0, ip, r3 + sub r1, r1, r3 + bl ov00_022D191C + cmp r0, #0 + beq _022D26D8 + ldr r1, _022D2744 @ =0x023250B8 + ldr r0, [r4, #0x824] + ldr r1, [r1] + blx r1 + mov r0, #0 + str r0, [r4, #0x824] + str r0, [r6] + pop {r4, r5, r6, pc} +_022D26D8: + ldr r1, [r4, #0x824] + mov r0, r4 + bl ov00_022D19B4 + ldrb r0, [r4, #0x456] + cmp r0, #0 + moveq r0, #0 + streq r0, [r4, #0x824] +_022D26F4: + ldr r0, [r4, #0x824] + cmp r0, #0 + bne _022D2724 +_022D2700: + mov r0, r5 + bl ov00_022D1C34 + cmp r0, #9 + moveq r0, #0 + streq r0, [r6] + popeq {r4, r5, r6, pc} + ldr r0, [r4, #0x824] + cmp r0, #0 + beq _022D2700 +_022D2724: + ldr r1, [r4, #0x828] + ldr r0, [r4, #0x82c] + sub r0, r1, r0 + str r0, [r6] + ldr r1, [r4, #0x824] + ldr r0, [r4, #0x82c] + add r0, r1, r0 + pop {r4, r5, r6, pc} + .align 2, 0 +_022D2744: .4byte 0x023250B8 + arm_func_end ov00_022D2670 + + arm_func_start ov00_022D2748 +ov00_022D2748: @ 0x022D2748 + push {r4, lr} + ldr r4, [r1, #0xc] + ldr r2, [r4, #0x828] + ldr r1, [r4, #0x82c] + sub r2, r2, r1 + cmp r0, r2 + blo _022D2788 + ldr r0, [r4, #0x824] + cmp r0, #0 + beq _022D277C + ldr r1, _022D2794 @ =0x023250B8 + ldr r1, [r1] + blx r1 +_022D277C: + mov r0, #0 + str r0, [r4, #0x824] + pop {r4, pc} +_022D2788: + add r0, r1, r0 + str r0, [r4, #0x82c] + pop {r4, pc} + .align 2, 0 +_022D2794: .4byte 0x023250B8 + arm_func_end ov00_022D2748 + + arm_func_start ov00_022D2798 +ov00_022D2798: @ 0x022D2798 + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + mov r5, r0 + ldr r4, [r5, #0xc] + ldr r0, [r4, #0x824] + cmp r0, #0 + ldr r0, [r5, #0x44] + bne _022D2838 + cmp r0, #5 + addlo sp, sp, #4 + poplo {r3, r4, r5, r6, pc} + add r0, sp, #0 + mov r1, r5 + bl ov00_022CB4D4 + ldrb r2, [r0, #3] + ldrb r0, [r0, #4] + ldr r1, _022D28D4 @ =0x00004805 + add r0, r0, r2, lsl #8 + add r0, r0, #5 + str r0, [sp] + cmp r0, r1 + movhi r0, #9 + addhi sp, sp, #4 + strbhi r0, [r4, #0x455] + pophi {r3, r4, r5, r6, pc} + ldr r1, _022D28D8 @ =0x0232508C + ldr r1, [r1] + blx r1 + cmp r0, #0 + str r0, [r4, #0x824] + moveq r0, #9 + addeq sp, sp, #4 + strbeq r0, [r4, #0x455] + popeq {r3, r4, r5, r6, pc} + ldr r1, [sp] + mov r0, #0 + str r1, [r4, #0x828] + str r0, [r4, #0x82c] + strb r0, [r4, #0x456] + b _022D2844 +_022D2838: + cmp r0, #0 + addeq sp, sp, #4 + popeq {r3, r4, r5, r6, pc} +_022D2844: + add r0, sp, #0 + mov r1, r5 + bl ov00_022CB4D4 + ldr r3, [r4, #0x828] + ldr r2, [r4, #0x82c] + ldr r1, [sp] + sub r2, r3, r2 + cmp r1, r2 + strhs r2, [sp] + movhs r6, #1 + ldr r3, [r4, #0x824] + ldr r1, [r4, #0x82c] + ldr r2, [sp] + add r1, r3, r1 + movlo r6, #0 + bl FUN_0207C4C8 + ldr r0, [sp] + mov r1, r5 + bl ov00_022CB5B4 + cmp r6, #0 + beq _022D28BC + ldr r1, [r4, #0x824] + mov r0, r4 + bl ov00_022D19B4 + ldrb r0, [r4, #0x456] + add sp, sp, #4 + cmp r0, #0 + moveq r0, #0 + streq r0, [r4, #0x824] + pop {r3, r4, r5, r6, pc} +_022D28BC: + ldr r1, [r4, #0x82c] + ldr r0, [sp] + add r0, r1, r0 + str r0, [r4, #0x82c] + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_022D28D4: .4byte 0x00004805 +_022D28D8: .4byte 0x0232508C + arm_func_end ov00_022D2798 + + arm_func_start ov00_022D28DC +ov00_022D28DC: @ 0x022D28DC + push {r3, r4, r5, lr} + mov r5, r0 + ldr r4, [r5, #0xc] + ldr r0, [r4, #0x824] + cmp r0, #0 + ldrbne r0, [r4, #0x456] + cmpne r0, #0 + bne _022D2904 + mov r0, r5 + bl ov00_022D2798 +_022D2904: + ldr r1, [r4, #0x824] + cmp r1, #0 + ldrbne r0, [r4, #0x456] + cmpne r0, #0 + beq _022D2928 + ldr r1, [r4, #0x828] + ldr r0, [r4, #0x82c] + sub r0, r1, r0 + pop {r3, r4, r5, pc} +_022D2928: + cmp r1, #0 + bne _022D2950 + ldrb r0, [r5, #8] + cmp r0, #4 + bne _022D2948 + ldrb r0, [r4, #0x455] + cmp r0, #9 + bne _022D2950 +_022D2948: + mvn r0, #0 + pop {r3, r4, r5, pc} +_022D2950: + mov r0, #0 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D28DC + + arm_func_start ov00_022D2958 +ov00_022D2958: @ 0x022D2958 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0xc + ldr r4, [sp, #0x30] + mov sb, r1 + mov r1, r4 + ldr r1, [r1, #0xc] + mov sl, r0 + mov r0, #0 + str r4, [sp, #0x30] + str r1, [sp, #8] + mov r8, r2 + add r5, sb, r3 + str r0, [sp, #4] +_022D298C: + ldr r0, _022D2A80 @ =0x00000B4F + ldr r1, _022D2A84 @ =0x0232508C + cmp r5, r0 + movgt r6, r0 + movle r6, r5 + ldr r1, [r1] + add r0, r6, #0x19 + blx r1 + movs r4, r0 + beq _022D2A74 + cmp sb, r6 + movhs r7, r6 + movlo r7, sb + mov r0, sl + add r1, r4, #5 + mov r2, r7 + sub fp, r6, r7 + bl FUN_0207C4C8 + add r1, r4, #5 + mov r0, r8 + add r1, r1, r7 + mov r2, fp + add sl, sl, r7 + sub sb, sb, r7 + bl FUN_0207C4C8 + mov r0, #0x17 + strb r0, [r4] + mov r0, #3 + strb r0, [r4, #1] + mov r0, #0 + strb r0, [r4, #2] + asr r0, r6, #8 + strb r0, [r4, #3] + ldr r0, [sp, #8] + mov r1, r4 + add r8, r8, fp + strb r6, [r4, #4] + bl ov00_022D1718 + ldr r1, [sp, #0x30] + mov r7, r0 + mov r2, #0 + str r1, [sp] + mov r0, r4 + mov r1, r7 + mov r3, r2 + bl ov00_022CB77C + cmp r0, r7 + ldr r1, _022D2A88 @ =0x023250B8 + mov r0, r4 + ldr r1, [r1] + movlo r6, #0 + blx r1 + ldr r0, [sp, #4] + subs r5, r5, r6 + add r0, r0, r6 + str r0, [sp, #4] + cmpne r6, #0 + bne _022D298C +_022D2A74: + ldr r0, [sp, #4] + add sp, sp, #0xc + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022D2A80: .4byte 0x00000B4F +_022D2A84: .4byte 0x0232508C +_022D2A88: .4byte 0x023250B8 + arm_func_end ov00_022D2958 + + arm_func_start ov00_022D2A8C +ov00_022D2A8C: @ 0x022D2A8C + push {r4, r5, r6, lr} + sub sp, sp, #0x20 + mov r5, r0 + ldr r4, [r5, #0xc] + ldrb r0, [r4, #0x455] + cmp r0, #8 + bne _022D2AFC + mov ip, #0 + mov r6, #0x15 + mov lr, #3 + mov r3, #2 + mov r2, #1 + add r1, sp, #4 + mov r0, r4 + strb r6, [sp, #4] + strb lr, [sp, #5] + strb ip, [sp, #6] + strb ip, [sp, #7] + strb r3, [sp, #8] + strb r2, [sp, #9] + strb ip, [sp, #0xa] + bl ov00_022D1718 + mov r2, #0 + mov r1, r0 + add r0, sp, #4 + mov r3, r2 + str r5, [sp] + bl ov00_022CB77C +_022D2AFC: + mov r0, #0 + strb r0, [r4, #0x455] + add sp, sp, #0x20 + pop {r4, r5, r6, pc} + arm_func_end ov00_022D2A8C + + arm_func_start ov00_022D2B0C +ov00_022D2B0C: @ 0x022D2B0C + push {r4, lr} + ldr r4, [r0, #0xc] + mov r0, #0 + strb r0, [r4, #0x455] + ldr r0, [r4, #0x824] + cmp r0, #0 + beq _022D2B34 + ldr r1, _022D2B40 @ =0x023250B8 + ldr r1, [r1] + blx r1 +_022D2B34: + mov r0, #0 + str r0, [r4, #0x824] + pop {r4, pc} + .align 2, 0 +_022D2B40: .4byte 0x023250B8 + arm_func_end ov00_022D2B0C + + arm_func_start ov00_022D2B44 +ov00_022D2B44: @ 0x022D2B44 + push {r4, lr} + mov r4, r0 + ldr r0, _022D2B6C @ =0x02000C1C + bl FUN_02000B9C + ldr r0, _022D2B70 @ =0x022B966C + ldr r0, [r0, #4] + ldr r0, [r0, #0xa4] + cmp r0, #0 + strbne r4, [r0, #9] + pop {r4, pc} + .align 2, 0 +_022D2B6C: .4byte 0x02000C1C +_022D2B70: .4byte 0x022B966C + arm_func_end ov00_022D2B44 + + arm_func_start ov00_022D2B74 +ov00_022D2B74: @ 0x022D2B74 + push {r4, r5, r6, lr} + mov r5, r0 + bl FUN_0207B7E4 + mov r4, #0 + ldr r6, _022D2C48 @ =0x02326AC8 + ldr r1, _022D2C4C @ =0x000003BD + mov r2, r4 +_022D2B90: + ldrb r3, [r6, #0x5a] + cmp r3, #0 + beq _022D2BAC + ldr r3, [r6, #0x50] + sub r3, r5, r3 + cmp r3, r1 + strbgt r2, [r6, #0x5a] +_022D2BAC: + add r4, r4, #1 + cmp r4, #4 + add r6, r6, #0x5c + blt _022D2B90 + bl FUN_0207B7F8 + ldr r0, _022D2C50 @ =0x022B966C + ldr r4, [r0, #8] + cmp r4, #0 + popeq {r4, r5, r6, pc} + mov r6, #0 +_022D2BD4: + ldr r1, [r4, #0xa4] + cmp r1, #0 + ldrne r0, [r1] + cmpne r0, #0 + ldrbne r0, [r1, #9] + cmpne r0, #0 + beq _022D2C38 + ldrb r0, [r1, #8] + cmp r0, #4 + bne _022D2C38 + ldr r0, [r1, #0xc] + ldrb r0, [r0, #0x455] + cmp r0, #8 + bhs _022D2C38 + ldr r0, [r1, #0x10] + sub r0, r5, r0 + cmp r0, #0xef + ble _022D2C38 + ldr r0, [r1, #4] + cmp r0, #2 + bne _022D2C38 + strb r6, [r1, #8] + str r6, [r1, #4] + ldr r0, [r1] + bl FUN_02079940 +_022D2C38: + ldr r4, [r4, #0x68] + cmp r4, #0 + bne _022D2BD4 + pop {r4, r5, r6, pc} + .align 2, 0 +_022D2C48: .4byte 0x02326AC8 +_022D2C4C: .4byte 0x000003BD +_022D2C50: .4byte 0x022B966C + arm_func_end ov00_022D2B74 + + arm_func_start ov00_022D2C54 +ov00_022D2C54: @ 0x022D2C54 + ldr ip, _022D2C68 @ =FUN_0207C40C + ldr r0, _022D2C6C @ =0x02326AC8 + mov r1, #0 + mov r2, #0x170 bx ip .align 2, 0 -_0207D9AC: .4byte FUN_0207d9b0 - arm_func_end thunk_FUN_0207d9b0 +_022D2C68: .4byte FUN_0207C40C +_022D2C6C: .4byte 0x02326AC8 + arm_func_end ov00_022D2C54 - arm_func_start FUN_0207d9b0 -FUN_0207d9b0: @ 0x0207D9B0 - push {r3, r4, r5, lr} - bl EnableIrqFlag - ldr r1, _0207DA94 @ =0x022BB564 + arm_func_start ov00_022D2C70 +ov00_022D2C70: @ 0x022D2C70 + ldr ip, _022D2C84 @ =FUN_0207C4C8 + mov r3, r0 + mov r0, r1 + mov r1, r3 + bx ip + .align 2, 0 +_022D2C84: .4byte FUN_0207C4C8 + arm_func_end ov00_022D2C70 + + arm_func_start ov00_022D2C88 +ov00_022D2C88: @ 0x022D2C88 + ldr ip, _022D2C9C @ =FUN_0207C4C8 + mov r3, r0 + mov r0, r1 + mov r1, r3 + bx ip + .align 2, 0 +_022D2C9C: .4byte FUN_0207C4C8 + arm_func_end ov00_022D2C88 + + arm_func_start ov00_022D2CA0 +ov00_022D2CA0: @ 0x022D2CA0 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x44 + str r0, [sp] + ldr r3, [sp] + add r0, sp, #4 + mov r2, #0x40 + ldm r3, {r4, r5, r6, r7} + bl ov00_022D2C88 + mov r3, #0 + ldr lr, _022D30B4 @ =0x02318934 + mov ip, r3 + add r2, sp, #4 +_022D2CD0: + ldr r1, _022D30B8 @ =0x023189B4 + ldrb r0, [lr] + add sb, r1, r3, lsl #2 + eor r1, r6, r7 + and r8, r5, r1 + ldr r1, _022D30B8 @ =0x023189B4 + ldr r0, [r2, r0, lsl #2] + ldr sl, [r1, r3, lsl #2] + eor r1, r7, r8 + add r0, r1, r0 + add r0, sl, r0 + add r1, r4, r0 + lsr r0, r1, #0x19 + orr r0, r0, r1, lsl #7 + ldrb r1, [lr, #1] + add r4, r5, r0 + eor r0, r5, r6 + and r0, r4, r0 + ldr sl, [r2, r1, lsl #2] + eor r0, r6, r0 + add r0, r0, sl + ldr r8, [sb, #4] + ldrb sl, [lr, #2] + add r0, r8, r0 + add r7, r7, r0 + lsr r0, r7, #0x14 + orr r0, r0, r7, lsl #12 + add r7, r4, r0 + eor r0, r4, r5 + and r0, r7, r0 + ldr r1, [sb, #8] + ldrb fp, [lr, #3] + ldr sl, [r2, sl, lsl #2] + eor r0, r5, r0 + add r0, r0, sl + add r0, r1, r0 + add r6, r6, r0 + lsr r1, r6, #0xf + orr r1, r1, r6, lsl #17 + add ip, ip, #1 + eor r8, r7, r4 + add r6, r7, r1 + and r1, r6, r8 + ldr r0, [r2, fp, lsl #2] + eor r1, r4, r1 + ldr sb, [sb, #0xc] + add r0, r1, r0 + add r0, sb, r0 + add r1, r5, r0 + lsr r0, r1, #0xa + orr r0, r0, r1, lsl #22 + add lr, lr, #4 + add r5, r6, r0 + add r3, r3, #4 + cmp ip, #4 + blt _022D2CD0 + ldr r0, _022D30B4 @ =0x02318934 + ldr lr, _022D30B8 @ =0x023189B4 + mov fp, #0 + add sl, r0, r3 + add sb, sp, #4 +_022D2DC4: + ldrb r0, [sl] + add ip, lr, r3, lsl #2 + eor r1, r5, r6 + and r1, r7, r1 + ldr r8, [lr, r3, lsl #2] + eor r1, r6, r1 + ldr r0, [sb, r0, lsl #2] + ldr r2, [ip, #4] + add r0, r1, r0 + add r0, r8, r0 + add r1, r4, r0 + lsr r0, r1, #0x1b + orr r1, r0, r1, lsl #5 + ldrb r0, [sl, #1] + add r4, r5, r1 + eor r1, r4, r5 + and r1, r6, r1 + eor r1, r5, r1 + ldr r0, [sb, r0, lsl #2] + ldr r8, [ip, #8] + add r0, r1, r0 + add r0, r2, r0 + add r2, r7, r0 + ldr r0, [ip, #0xc] + lsr r1, r2, #0x17 + orr r1, r1, r2, lsl #9 + add r7, r4, r1 + eor r1, r7, r4 + and r1, r5, r1 + eor r2, r4, r1 + ldrb r1, [sl, #2] + ldrb ip, [sl, #3] + add sl, sl, #4 + ldr r1, [sb, r1, lsl #2] + ldr ip, [sb, ip, lsl #2] + add r1, r2, r1 + add r1, r8, r1 + add r2, r6, r1 + lsr r1, r2, #0x12 + orr r1, r1, r2, lsl #14 + add r6, r7, r1 + eor r1, r6, r7 + and r1, r4, r1 + eor r1, r7, r1 + add r1, r1, ip + add r0, r0, r1 + add r1, r5, r0 + lsr r0, r1, #0xc + orr r0, r0, r1, lsl #20 + add r5, r6, r0 + add r3, r3, #4 + add fp, fp, #1 + cmp fp, #4 + blt _022D2DC4 + ldr r0, _022D30B4 @ =0x02318934 + ldr r1, _022D30B8 @ =0x023189B4 + add r2, r0, r3 + mov r8, #0 + add r0, sp, #4 +_022D2EB0: + ldrb sb, [r2] + add fp, r1, r3, lsl #2 + eor ip, r5, r6 + ldr sl, [r0, sb, lsl #2] + eor ip, r7, ip + ldr sb, [r1, r3, lsl #2] + add sl, ip, sl + add sb, sb, sl + add sb, r4, sb + lsr r4, sb, #0x1c + ldrb sl, [r2, #1] + orr r4, r4, sb, lsl #4 + add r4, r5, r4 + eor sb, r4, r5 + eor sb, r6, sb + ldr ip, [r0, sl, lsl #2] + ldr sl, [fp, #4] + add sb, sb, ip + add sb, sl, sb + add sb, r7, sb + lsr r7, sb, #0x15 + orr r7, r7, sb, lsl #11 + ldrb sb, [r2, #2] + add r7, r4, r7 + ldr sl, [fp, #8] + ldr ip, [r0, sb, lsl #2] + ldr sb, [fp, #0xc] + eor fp, r7, r4 + eor fp, r5, fp + add fp, fp, ip + add sl, sl, fp + add sl, r6, sl + lsr r6, sl, #0x10 + orr r6, r6, sl, lsl #16 + add r6, r7, r6 + eor sl, r6, r7 + eor fp, r4, sl + ldrb sl, [r2, #3] + add r2, r2, #4 + add r3, r3, #4 + ldr sl, [r0, sl, lsl #2] + add r8, r8, #1 + add sl, fp, sl + add sb, sb, sl + add sb, r5, sb + cmp r8, #4 + lsr r5, sb, #9 + orr r5, r5, sb, lsl #23 + add r5, r6, r5 + blt _022D2EB0 + ldr r0, _022D30B4 @ =0x02318934 + mov sb, #0 + add r8, r0, r3 + add r2, sp, #4 +_022D2F88: + ldr r1, _022D30B8 @ =0x023189B4 + ldrb r0, [r8] + add fp, r1, r3, lsl #2 + mvn r1, r7 + orr sl, r5, r1 + ldr r1, _022D30B8 @ =0x023189B4 + ldr r0, [r2, r0, lsl #2] + ldr ip, [r1, r3, lsl #2] + eor r1, r6, sl + add r0, r1, r0 + add r0, ip, r0 + add r1, r4, r0 + lsr r0, r1, #0x1a + orr r0, r0, r1, lsl #6 + ldrb r1, [r8, #1] + add r4, r5, r0 + mvn r0, r6 + orr r0, r4, r0 + ldr ip, [r2, r1, lsl #2] + eor r0, r5, r0 + add r0, r0, ip + ldr sl, [fp, #4] + ldrb ip, [r8, #2] + add r0, sl, r0 + add r7, r7, r0 + lsr r0, r7, #0x16 + orr r0, r0, r7, lsl #10 + add r7, r4, r0 + mvn r0, r5 + orr r0, r7, r0 + ldr r1, [fp, #8] + ldrb lr, [r8, #3] + ldr ip, [r2, ip, lsl #2] + eor r0, r4, r0 + add r0, r0, ip + add r0, r1, r0 + add r6, r6, r0 + lsr r1, r6, #0x11 + orr r1, r1, r6, lsl #15 + add sb, sb, #1 + mvn sl, r4 + add r6, r7, r1 + orr r1, r6, sl + ldr r0, [r2, lr, lsl #2] + eor r1, r7, r1 + ldr fp, [fp, #0xc] + add r0, r1, r0 + add r0, fp, r0 + add r1, r5, r0 + lsr r0, r1, #0xb + orr r0, r0, r1, lsl #21 + add r8, r8, #4 + add r5, r6, r0 + add r3, r3, #4 + cmp sb, #4 + blt _022D2F88 + ldr r0, [sp] + ldr r0, [r0] + add r1, r0, r4 + ldr r0, [sp] + str r1, [r0] + ldr r0, [r0, #4] + add r1, r0, r5 + ldr r0, [sp] + str r1, [r0, #4] + ldr r0, [r0, #8] + add r1, r0, r6 + ldr r0, [sp] + str r1, [r0, #8] + ldr r0, [r0, #0xc] + add r1, r0, r7 + ldr r0, [sp] + str r1, [r0, #0xc] + add sp, sp, #0x44 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022D30B4: .4byte 0x02318934 +_022D30B8: .4byte 0x023189B4 + arm_func_end ov00_022D2CA0 + + arm_func_start ov00_022D30BC +ov00_022D30BC: @ 0x022D30BC + push {r4, lr} + mov r1, #0 + mov r2, #0x58 mov r4, r0 - ldrh r0, [r1] - cmp r0, #0 - bne _0207DA88 - mov r2, #1 - strh r2, [r1] - mov r2, #0 - ldr r0, _0207DA98 @ =0x027FFC00 - mov r1, r2 - str r2, [r0, #0x388] - ldr r0, _0207DA9C @ =0x022BB568 -_0207D9E8: - str r1, [r0, r2, lsl #2] - add r2, r2, #1 - cmp r2, #0x20 - blt _0207D9E8 - ldr r2, _0207DAA0 @ =0x0000C408 - ldr r1, _0207DAA4 @ =0x04000184 - mov r0, #0x40000 - strh r2, [r1] - bl FUN_02078cc8 - ldr r1, _0207DAA8 @ =FUN_0207dba8 - mov r0, #0x40000 - bl FUN_02078a98 - mov r0, #0x40000 - bl FUN_02078c68 - mov r5, #0 - ldr r3, _0207DAAC @ =0x04000180 - mov r1, r5 - mov r2, #0x3e8 -_0207DA30: - ldrh r0, [r3] - ands lr, r0, #0xf - lsl r0, lr, #8 - strh r0, [r3] - bne _0207DA4C - cmp r5, #4 - bgt _0207DA88 -_0207DA4C: - ldrh r0, [r3] - mov ip, r2 - and r0, r0, #0xf - cmp r0, lr - bne _0207DA80 -_0207DA60: - cmp ip, #0 - movle r5, r1 - ble _0207DA80 - ldrh r0, [r3] - sub ip, ip, #1 - and r0, r0, #0xf - cmp r0, lr - beq _0207DA60 -_0207DA80: - add r5, r5, #1 - b _0207DA30 -_0207DA88: - mov r0, r4 - bl SetIrqFlag - pop {r3, r4, r5, pc} + bl FUN_0207C40C + ldr r1, _022D30F4 @ =0x67452301 + ldr r0, _022D30F8 @ =0xEFCDAB89 + str r1, [r4] + ldr r1, _022D30FC @ =0x98BADCFE + str r0, [r4, #4] + ldr r0, _022D3100 @ =0x10325476 + str r1, [r4, #8] + str r0, [r4, #0xc] + pop {r4, pc} .align 2, 0 -_0207DA94: .4byte 0x022BB564 -_0207DA98: .4byte 0x027FFC00 -_0207DA9C: .4byte 0x022BB568 -_0207DAA0: .4byte 0x0000C408 -_0207DAA4: .4byte 0x04000184 -_0207DAA8: .4byte FUN_0207dba8 -_0207DAAC: .4byte 0x04000180 - arm_func_end FUN_0207d9b0 +_022D30F4: .4byte 0x67452301 +_022D30F8: .4byte 0xEFCDAB89 +_022D30FC: .4byte 0x98BADCFE +_022D3100: .4byte 0x10325476 + arm_func_end ov00_022D30BC - arm_func_start FUN_0207dab0 -FUN_0207dab0: @ 0x0207DAB0 - push {r3, r4, r5, lr} - mov r4, r0 - mov r5, r1 - bl EnableIrqFlag - ldr r1, _0207DAF4 @ =0x022BB568 - ldr r3, _0207DAF8 @ =0x027FFC00 - str r5, [r1, r4, lsl #2] - cmp r5, #0 - ldrne r2, [r3, #0x388] - mov r1, #1 - orrne r1, r2, r1, lsl r4 - mvneq r1, r1, lsl r4 - ldreq r2, [r3, #0x388] - andeq r1, r2, r1 - str r1, [r3, #0x388] - bl SetIrqFlag - pop {r3, r4, r5, pc} - .align 2, 0 -_0207DAF4: .4byte 0x022BB568 -_0207DAF8: .4byte 0x027FFC00 - arm_func_end FUN_0207dab0 - - arm_func_start FUN_0207dafc -FUN_0207dafc: @ 0x0207DAFC - ldr r2, _0207DB1C @ =0x027FFC00 - mov r3, #1 - add r1, r2, r1, lsl #2 - ldr r1, [r1, #0x388] - tst r1, r3, lsl r0 - moveq r3, #0 - mov r0, r3 - bx lr - .align 2, 0 -_0207DB1C: .4byte 0x027FFC00 - arm_func_end FUN_0207dafc - - arm_func_start FUN_0207db20 -FUN_0207db20: @ 0x0207DB20 - push {r3, lr} - ldr ip, [sp] - ldr r3, _0207DBA4 @ =0x04000184 - bic ip, ip, #0x1f - and r0, r0, #0x1f - orr ip, ip, r0 - ldrh r0, [r3] - bic ip, ip, #0x20 - lsl r2, r2, #0x1f - orr r2, ip, r2, lsr #26 - and r2, r2, #0x3f - orr r1, r2, r1, lsl #6 - str r1, [sp] - tst r0, #0x4000 - beq _0207DB70 - ldrh r1, [r3] - mvn r0, #0 - orr r1, r1, #0xc000 - strh r1, [r3] - pop {r3, pc} -_0207DB70: - bl EnableIrqFlag - ldr r2, _0207DBA4 @ =0x04000184 - ldrh r1, [r2] - tst r1, #2 - beq _0207DB90 - bl SetIrqFlag - mvn r0, #1 - pop {r3, pc} -_0207DB90: - ldr r1, [sp] - str r1, [r2, #4] - bl SetIrqFlag - mov r0, #0 - pop {r3, pc} - .align 2, 0 -_0207DBA4: .4byte 0x04000184 - arm_func_end FUN_0207db20 - - arm_func_start FUN_0207dba8 -FUN_0207dba8: @ 0x0207DBA8 - push {r3, r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #4 - mvn r8, #3 - ldr r6, [sp] - ldr sb, _0207DCB8 @ =0x04000184 - ldr r4, _0207DCBC @ =0x022BB568 - add sl, r8, #1 - mov r7, #0x4100000 - mov r5, #0 -_0207DBCC: - ldrh r0, [sb] - tst r0, #0x4000 - beq _0207DBEC - ldrh r0, [sb] - add r1, r8, #1 - orr r0, r0, #0xc000 - strh r0, [sb] - b _0207DC18 -_0207DBEC: - bl EnableIrqFlag - ldrh r1, [sb] - tst r1, #0x100 - beq _0207DC08 - bl SetIrqFlag - mov r1, r8 - b _0207DC18 -_0207DC08: - ldr r6, [r7] - str r6, [sp] - bl SetIrqFlag - mov r1, r5 -_0207DC18: - cmp r1, r8 - addeq sp, sp, #4 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, pc} - cmp r1, sl - beq _0207DBCC - lsl r0, r6, #0x1b - lsrs r0, r0, #0x1b - beq _0207DBCC - ldr r3, [r4, r0, lsl #2] - cmp r3, #0 - beq _0207DC58 - lsl r2, r6, #0x1a - lsr r1, r6, #6 - lsr r2, r2, #0x1f - blx r3 - b _0207DBCC -_0207DC58: - lsl r0, r6, #0x1a - lsrs r0, r0, #0x1f - bne _0207DBCC - ldrh r0, [sb] - orr r6, r6, #0x20 - str r6, [sp] - tst r0, #0x4000 - beq _0207DC88 - ldrh r0, [sb] - orr r0, r0, #0xc000 - strh r0, [sb] - b _0207DBCC -_0207DC88: - bl EnableIrqFlag - ldrh r1, [sb] - tst r1, #2 - beq _0207DCA0 - bl SetIrqFlag - b _0207DBCC -_0207DCA0: - mov r1, r6 - str r1, [sb, #4] - bl SetIrqFlag - b _0207DBCC -_0207DCB0: - .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF8, 0x87, 0xBD, 0xE8 -_0207DCB8: .4byte 0x04000184 -_0207DCBC: .4byte 0x022BB568 - arm_func_end FUN_0207dba8 - - arm_func_start FUN_0207dcc0 -FUN_0207dcc0: @ 0x0207DCC0 - push {r4, r5, r6, lr} - mov r5, r0 - mov r4, r1 - bl EnableIrqFlag - ldr r1, [r5] - mov r6, r0 - ldr r0, [r5, #4] - cmp r1, #0 - strne r0, [r1, #4] - cmp r0, #0 - strne r1, [r0] - mov r0, #0 - str r0, [r5] - str r0, [r5, #4] - ldr r1, [r5, #0xc] - add r0, r5, #0x18 - bic r1, r1, #0x4f - str r1, [r5, #0xc] - str r4, [r5, #0x14] - bl FUN_020798d8 - mov r0, r6 - bl SetIrqFlag - pop {r4, r5, r6, pc} - arm_func_end FUN_0207dcc0 - - arm_func_start FUN_0207dd1c -FUN_0207dd1c: @ 0x0207DD1C + arm_func_start ov00_022D3104 +ov00_022D3104: @ 0x022D3104 push {r4, r5, r6, r7, r8, lr} mov r8, r0 - ldr r0, [r8, #0xc] - ldr r5, [r8, #8] - mov r7, r1 - mov r1, #1 - tst r0, #4 - lsl r6, r1, r7 - moveq r1, #0 - ldr r0, [r5, #0x1c] - cmp r1, #0 - orrne r0, r0, #0x200 - orreq r0, r0, #0x100 - str r0, [r5, #0x1c] - ldr r0, [r5, #0x58] - tst r0, r6 - beq _0207DDC4 - ldr r2, [r5, #0x54] - mov r0, r8 - mov r1, r7 - blx r2 - mov r4, r0 - cmp r4, #8 - addls pc, pc, r4, lsl #2 - b _0207DDC8 -_0207DD80: @ jump table - b _0207DDA4 @ case 0 - b _0207DDA4 @ case 1 - b _0207DDC8 @ case 2 - b _0207DDC8 @ case 3 - b _0207DDA4 @ case 4 - b _0207DDC8 @ case 5 - b _0207DDC8 @ case 6 - b _0207DDC8 @ case 7 - b _0207DDAC @ case 8 -_0207DDA4: - str r4, [r8, #0x14] - b _0207DDC8 -_0207DDAC: - ldr r1, [r5, #0x58] - mvn r0, r6 - and r0, r1, r0 - str r0, [r5, #0x58] - mov r4, #7 - b _0207DDC8 -_0207DDC4: - mov r4, #7 -_0207DDC8: - cmp r4, #7 - bne _0207DDE4 - ldr r1, _0207DEA8 @ =0x020AEBF8 - mov r0, r8 - ldr r1, [r1, r7, lsl #2] - blx r1 - mov r4, r0 -_0207DDE4: - cmp r4, #6 - bne _0207DE5C - ldr r0, [r8, #0xc] - tst r0, #4 - movne r0, #1 - moveq r0, #0 - cmp r0, #0 - beq _0207DEA0 - bl EnableIrqFlag - ldr r1, [r5, #0x1c] - mov r7, r0 - tst r1, #0x200 - movne r0, #1 - moveq r0, #0 - cmp r0, #0 - beq _0207DE4C - mov r4, #0 - mov r6, #1 -_0207DE2C: - add r0, r5, #0xc - bl FUN_02079888 - ldr r0, [r5, #0x1c] - tst r0, #0x200 - movne r0, r6 - moveq r0, r4 - cmp r0, #0 - bne _0207DE2C -_0207DE4C: - mov r0, r7 - ldr r4, [r8, #0x14] - bl SetIrqFlag - b _0207DEA0 -_0207DE5C: - ldr r0, [r8, #0xc] - tst r0, #4 - movne r0, #1 - moveq r0, #0 - cmp r0, #0 - bne _0207DE90 - ldr r1, [r5, #0x1c] - mov r0, r8 - bic r2, r1, #0x100 - mov r1, r4 - str r2, [r5, #0x1c] - bl FUN_0207dcc0 - b _0207DEA0 -_0207DE90: - ldr r0, [r5, #0x1c] - bic r0, r0, #0x200 - str r0, [r5, #0x1c] - str r4, [r8, #0x14] -_0207DEA0: - mov r0, r4 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0207DEA8: .4byte 0x020AEBF8 - arm_func_end FUN_0207dd1c - - arm_func_start FUN_0207deac -FUN_0207deac: @ 0x0207DEAC - push {r3, lr} - cmp r2, #0 - mov lr, #0 - bls _0207DEF4 -_0207DEBC: - ldrb ip, [r0, lr] - ldrb r3, [r1, lr] - sub ip, ip, #0x41 - cmp ip, #0x19 - sub r3, r3, #0x41 - addls ip, ip, #0x20 - cmp r3, #0x19 - addls r3, r3, #0x20 - cmp ip, r3 - subne r0, ip, r3 - popne {r3, pc} - add lr, lr, #1 - cmp lr, r2 - blo _0207DEBC -_0207DEF4: - mov r0, #0 - pop {r3, pc} - arm_func_end FUN_0207deac - - arm_func_start FUN_0207defc -FUN_0207defc: @ 0x0207DEFC - push {r3, r4, r5, r6, r7, r8, sb, lr} - mov r7, r0 - ldr r4, [r7] + ldr r3, [r8, #0x10] mov r6, r2 - ldr r2, [r4, #0x1c] - mov r0, r4 - orr r2, r2, #0x200 - str r2, [r4, #0x1c] - ldr r2, [r7, #4] - ldr r5, [r4, #0x50] - mov r3, r6 - blx r5 - cmp r0, #0 - cmpne r0, #1 - beq _0207DF44 - cmp r0, #6 - beq _0207DF54 - b _0207DFAC -_0207DF44: - ldr r1, [r4, #0x1c] - bic r1, r1, #0x200 - str r1, [r4, #0x1c] - b _0207DFAC -_0207DF54: - bl EnableIrqFlag - ldr r1, [r4, #0x1c] - mov r5, r0 - tst r1, #0x200 - movne r0, #1 - moveq r0, #0 - cmp r0, #0 - beq _0207DF9C - mov r8, #0 - mov sb, #1 -_0207DF7C: - add r0, r4, #0xc - bl FUN_02079888 - ldr r0, [r4, #0x1c] - tst r0, #0x200 - movne r0, sb - moveq r0, r8 - cmp r0, #0 - bne _0207DF7C -_0207DF9C: - mov r0, r5 - bl SetIrqFlag - ldr r0, [r4, #0x24] - ldr r0, [r0, #0x14] -_0207DFAC: - ldr r1, [r7, #4] - add r1, r1, r6 - str r1, [r7, #4] - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_0207defc - - arm_func_start FUN_0207dfbc -FUN_0207dfbc: @ 0x0207DFBC - ldr r3, [r0, #0xc] - mov r2, #0 - orr r3, r3, #4 - str r3, [r0, #0xc] - ldr r3, [r0, #8] - ldr ip, _0207DFEC @ =FUN_0207dd1c - str r3, [r0, #0x30] - str r2, [r0, #0x38] - strh r2, [r0, #0x36] - strh r1, [r0, #0x34] - mov r1, #2 - bx ip - .align 2, 0 -_0207DFEC: .4byte FUN_0207dd1c - arm_func_end FUN_0207dfbc - - arm_func_start FUN_0207dff0 -FUN_0207dff0: @ 0x0207DFF0 - push {r3, lr} - ldr r2, [r0, #0x2c] - ldr r3, [r0, #0x38] - ldr lr, [r0, #8] - ldr r1, [r0, #0x30] - add ip, r2, r3 - str ip, [r0, #0x2c] - ldr ip, [lr, #0x48] - mov r0, lr - blx ip - pop {r3, pc} - arm_func_end FUN_0207dff0 - - arm_func_start FUN_0207e01c -FUN_0207e01c: @ 0x0207E01C - push {r3, lr} - ldr r2, [r0, #0x2c] - ldr r3, [r0, #0x38] - ldr lr, [r0, #8] - ldr r1, [r0, #0x30] - add ip, r2, r3 - str ip, [r0, #0x2c] - ldr ip, [lr, #0x4c] - mov r0, lr - blx ip - pop {r3, pc} - arm_func_end FUN_0207e01c - - arm_func_start FUN_0207e048 -FUN_0207e048: @ 0x0207E048 - push {r4, r5, r6, lr} - sub sp, sp, #0x10 - mov r6, r0 - ldr r4, [r6, #8] - add r5, r6, #0x30 - str r4, [sp] - ldrh r1, [r5, #4] - ldr r2, [r4, #0x34] - add r0, sp, #0 - add r3, r2, r1, lsl #3 - add r1, sp, #8 - mov r2, #8 - str r3, [sp, #4] - bl FUN_0207defc - movs r3, r0 - bne _0207E0D0 - add ip, r6, #0x20 - ldm r5, {r0, r1, r2} - stm ip, {r0, r1, r2} - ldrh r0, [r5, #6] - cmp r0, #0 - ldreq r0, [r5, #8] - cmpeq r0, #0 - bne _0207E0C0 - ldrh r0, [sp, #0xc] - strh r0, [r6, #0x26] - ldr r1, [r4, #0x34] - ldr r0, [sp, #8] - add r0, r1, r0 - str r0, [r6, #0x28] -_0207E0C0: - ldrh r1, [sp, #0xe] - ldr r0, _0207E0DC @ =0x00000FFF - and r0, r1, r0 - str r0, [r6, #0x2c] -_0207E0D0: - mov r0, r3 - add sp, sp, #0x10 - pop {r4, r5, r6, pc} - .align 2, 0 -_0207E0DC: .4byte 0x00000FFF - arm_func_end FUN_0207e048 - - arm_func_start FUN_0207e0e0 -FUN_0207e0e0: @ 0x0207E0E0 - push {r4, r5, lr} - sub sp, sp, #0xc - mov r5, r0 - ldr r4, [r5, #0x30] - ldr r1, [r5, #8] - add r0, sp, #4 - str r1, [sp, #4] - ldr r3, [r5, #0x28] - add r1, sp, #0 - mov r2, #1 - str r3, [sp, #8] - bl FUN_0207defc - cmp r0, #0 - addne sp, sp, #0xc - popne {r4, r5, pc} - ldrb r1, [sp] - and r2, r1, #0x7f - asr r1, r1, #7 - str r2, [r4, #0x10] - and r1, r1, #1 - str r1, [r4, #0xc] - ldr r2, [r4, #0x10] - cmp r2, #0 - addeq sp, sp, #0xc - moveq r0, #1 - popeq {r4, r5, pc} - ldr r1, [r5, #0x34] - cmp r1, #0 - bne _0207E180 - add r0, sp, #4 - add r1, r4, #0x14 - bl FUN_0207defc - cmp r0, #0 - addne sp, sp, #0xc - popne {r4, r5, pc} - ldr r1, [r4, #0x10] - mov r2, #0 - add r1, r4, r1 - strb r2, [r1, #0x14] - b _0207E18C -_0207E180: - ldr r1, [sp, #8] - add r1, r1, r2 - str r1, [sp, #8] -_0207E18C: - ldr r1, [r4, #0xc] - cmp r1, #0 - beq _0207E1DC - add r0, sp, #4 - add r1, sp, #2 - mov r2, #2 - bl FUN_0207defc - cmp r0, #0 - addne sp, sp, #0xc - popne {r4, r5, pc} - ldr r2, [r5, #8] - ldr r1, _0207E208 @ =0x00000FFF - str r2, [r4] - ldrh r3, [sp, #2] - mov r2, #0 - and r1, r3, r1 - strh r1, [r4, #4] - strh r2, [r4, #6] - str r2, [r4, #8] - b _0207E1F8 -_0207E1DC: - ldr r1, [r5, #8] - str r1, [r4] - ldrh r1, [r5, #0x26] - str r1, [r4, #4] - ldrh r1, [r5, #0x26] - add r1, r1, #1 - strh r1, [r5, #0x26] -_0207E1F8: - ldr r1, [sp, #8] - str r1, [r5, #0x28] - add sp, sp, #0xc - pop {r4, r5, pc} - .align 2, 0 -_0207E208: .4byte 0x00000FFF - arm_func_end FUN_0207e0e0 -_0207E20C: - .byte 0xF8, 0x47, 0x2D, 0xE9 - .byte 0x94, 0xD0, 0x4D, 0xE2, 0x00, 0x90, 0xA0, 0xE1, 0x3C, 0x50, 0x99, 0xE5, 0x02, 0x10, 0xA0, 0xE3 - .byte 0x40, 0x60, 0x99, 0xE5, 0xBC, 0xFE, 0xFF, 0xEB, 0x00, 0x30, 0xD5, 0xE5, 0x00, 0x00, 0x53, 0xE3 - .byte 0x63, 0x00, 0x00, 0x0A, 0x00, 0x80, 0xA0, 0xE3, 0x01, 0x00, 0xA0, 0xE3, 0x08, 0x10, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x00, 0xEA, 0x01, 0x80, 0x88, 0xE2, 0x08, 0x70, 0xD5, 0xE7, 0x01, 0x20, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x57, 0xE3, 0x2F, 0x00, 0x57, 0x13, 0x5C, 0x00, 0x57, 0x13, 0x00, 0x20, 0xA0, 0x11 - .byte 0x00, 0x00, 0x52, 0xE3, 0xF6, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x57, 0xE3, 0x00, 0x00, 0x56, 0x03 - .byte 0x01, 0x70, 0xA0, 0x13, 0x00, 0x00, 0x58, 0xE3, 0x94, 0xD0, 0x8D, 0x02, 0x01, 0x00, 0xA0, 0x03 - .byte 0xF8, 0x87, 0xBD, 0x08, 0x2E, 0x00, 0x53, 0xE3, 0x13, 0x00, 0x00, 0x1A, 0x01, 0x00, 0x58, 0xE3 - .byte 0x01, 0x50, 0x85, 0x02, 0x43, 0x00, 0x00, 0x0A, 0x01, 0x00, 0xD5, 0xE5, 0x02, 0x00, 0x58, 0xE3 - .byte 0x01, 0x10, 0xA0, 0x03, 0x00, 0x10, 0xA0, 0x13, 0x2E, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03 - .byte 0x00, 0x00, 0xA0, 0x13, 0x00, 0x00, 0x11, 0xE1, 0x07, 0x00, 0x00, 0x0A, 0xB4, 0x02, 0xD9, 0xE1 - .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x2C, 0x10, 0x99, 0xE5, 0x09, 0x00, 0xA0, 0xE1 - .byte 0x39, 0xFF, 0xFF, 0xEB, 0x02, 0x50, 0x85, 0xE2, 0x32, 0x00, 0x00, 0xEA, 0x7F, 0x00, 0x58, 0xE3 - .byte 0x94, 0xD0, 0x8D, 0xC2, 0x01, 0x00, 0xA0, 0xC3, 0xF8, 0x87, 0xBD, 0xC8, 0x00, 0x10, 0x8D, 0xE2 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x30, 0x10, 0x89, 0xE5, 0x34, 0x00, 0x89, 0xE5, 0x14, 0xA0, 0x8D, 0xE2 - .byte 0x03, 0x40, 0xA0, 0xE3, 0x09, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE1, 0x82, 0xFE, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x94, 0xD0, 0x8D, 0x12, 0x01, 0x00, 0xA0, 0x13, 0xF8, 0x87, 0xBD, 0x18 - .byte 0x0C, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x57, 0xE1, 0x10, 0x00, 0x9D, 0x05, 0x00, 0x00, 0x58, 0x01 - .byte 0xF3, 0xFF, 0xFF, 0x1A, 0x05, 0x00, 0xA0, 0xE1, 0x0A, 0x10, 0xA0, 0xE1, 0x08, 0x20, 0xA0, 0xE1 - .byte 0xD9, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xED, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x57, 0xE3 - .byte 0x08, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x8D, 0xE2, 0x30, 0x30, 0x89, 0xE2, 0x07, 0x00, 0x90, 0xE8 - .byte 0x07, 0x00, 0x83, 0xE8, 0x09, 0x00, 0xA0, 0xE1, 0x02, 0x10, 0xA0, 0xE3, 0x08, 0x50, 0x85, 0xE0 - .byte 0x69, 0xFE, 0xFF, 0xEB, 0x0B, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x56, 0xE3, 0x94, 0xD0, 0x8D, 0x12 - .byte 0x01, 0x00, 0xA0, 0x13, 0xF8, 0x87, 0xBD, 0x18, 0x44, 0x30, 0x99, 0xE5, 0x00, 0x20, 0x9D, 0xE5 - .byte 0x04, 0x10, 0x9D, 0xE5, 0x94, 0xD0, 0x8D, 0xE2, 0x00, 0x20, 0x83, 0xE5, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x04, 0x10, 0x83, 0xE5, 0xF8, 0x87, 0xBD, 0xE8, 0x00, 0x00, 0xD5, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x30, 0xF5, 0xE7, 0x00, 0x00, 0x53, 0xE3 - .byte 0x9B, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x56, 0xE3, 0x94, 0xD0, 0x8D, 0x02, 0x01, 0x00, 0xA0, 0x03 - .byte 0xF8, 0x87, 0xBD, 0x08, 0x44, 0x30, 0x99, 0xE5, 0x20, 0x00, 0x89, 0xE2, 0x07, 0x00, 0x90, 0xE8 - .byte 0x07, 0x00, 0x83, 0xE8, 0x00, 0x00, 0xA0, 0xE3, 0x94, 0xD0, 0x8D, 0xE2, 0xF8, 0x87, 0xBD, 0xE8 - - arm_func_start FUN_0207e3f0 -FUN_0207e3f0: @ 0x0207E3F0 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0xe0 - mov sl, r0 - ldr r1, [sl, #8] - add r0, sp, #4 - str r1, [sp] - bl FileInit - ldr r0, [sl, #8] - str r0, [sp, #0xc] - ldr r0, [sl, #0xc] - tst r0, #0x20 - movne r0, #1 - moveq r0, #0 - cmp r0, #0 - ldrhne sb, [sl, #0x24] - movne r6, #0x10000 - bne _0207E4D4 - ldrh r0, [sl, #0x38] - ldr r6, [sl, #0x20] - cmp r0, #0 - ldrhne sb, [sl, #0x3a] - bne _0207E4D4 - mov r7, #0 - mov r8, r7 - mov sb, #0x10000 - add r5, sp, #4 - mov r4, #3 - add fp, sp, #0x4c -_0207E460: - mov r0, r5 - mov r1, r7 - bl FUN_0207dfbc - mov r2, #1 - cmp r7, #0 - mov r0, r5 - mov r1, #3 - ldreq r8, [sp, #0x30] - str fp, [sp, #0x34] - str r2, [sp, #0x38] - bl FUN_0207dd1c - cmp r0, #0 - bne _0207E4C0 -_0207E494: - ldr r0, [sp, #0x58] - cmp r0, #0 - ldreq r0, [sp, #0x50] - cmpeq r0, r6 - ldrheq sb, [sp, #0x28] - beq _0207E4C0 - mov r0, r5 - mov r1, r4 - bl FUN_0207dd1c - cmp r0, #0 - beq _0207E494 -_0207E4C0: - cmp sb, #0x10000 - bne _0207E4D4 - add r7, r7, #1 - cmp r7, r8 - blo _0207E460 -_0207E4D4: - cmp sb, #0x10000 - bne _0207E4F0 - mov r0, #0 - strh r0, [sl, #0x38] - add sp, sp, #0xe0 - mov r0, #1 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0207E4F0: - ldrh r0, [sl, #0x38] - cmp r0, #0 - bne _0207E5D4 - ldr r0, [sp] - mov r1, #0 - ldr r0, [r0] - cmp r0, #0xff - addls r8, r1, #1 - bls _0207E520 - cmp r0, #0xff00 - addls r8, r1, #2 - addhi r8, r1, #3 -_0207E520: - cmp r6, #0x10000 - ldrne r0, [sp, #0x5c] - add r8, r8, #2 - addne r8, r8, r0 - mov r7, sb - cmp sb, #0 - beq _0207E5C8 - add r0, sp, #4 - mov r1, sb - bl FUN_0207dfbc - add r5, sp, #4 - mov r4, #3 - add fp, sp, #0x4c -_0207E554: - ldr r1, [sp, #0x30] - mov r0, r5 - bl FUN_0207dfbc - mov r1, #1 - str r1, [sp, #0x38] - mov r0, r5 - mov r1, #3 - str fp, [sp, #0x34] - bl FUN_0207dd1c - cmp r0, #0 - bne _0207E5BC -_0207E580: - ldr r0, [sp, #0x58] - cmp r0, #0 - beq _0207E5A8 - ldrh r0, [sp, #0x50] - cmp r0, r7 - bne _0207E5A8 - ldr r0, [sp, #0x5c] - add r0, r0, #1 - add r8, r8, r0 - b _0207E5BC -_0207E5A8: - mov r0, r5 - mov r1, r4 - bl FUN_0207dd1c - cmp r0, #0 - beq _0207E580 -_0207E5BC: - ldrh r7, [sp, #0x28] - cmp r7, #0 - bne _0207E554 -_0207E5C8: - add r0, r8, #1 - strh r0, [sl, #0x38] - strh sb, [sl, #0x3a] -_0207E5D4: - ldr r5, [sl, #0x30] - cmp r5, #0 - addeq sp, sp, #0xe0 - moveq r0, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldrh r4, [sl, #0x38] - ldr r0, [sl, #0x34] - cmp r0, r4 - addlo sp, sp, #0xe0 - movlo r0, #1 - poplo {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldr r0, [sp] - mov r7, #0 - ldr r0, [r0] - cmp r0, #0xff - movls r8, #1 - bls _0207E624 - cmp r0, #0xff00 - movls r8, #2 - movhi r8, #3 -_0207E624: - ldr r0, [sp] - mov r1, r5 - mov r2, r8 - bl FUN_0207c4c8 - add r1, r7, r8 - ldr r0, _0207E798 @ =0x020B2BB0 - add r1, r5, r1 - mov r2, #2 - bl FUN_0207c4c8 - add r0, sp, #4 - mov r1, sb - bl FUN_0207dfbc - cmp r6, #0x10000 - beq _0207E6D4 - add r3, sp, #0x4c - mov r2, #0 - add r0, sp, #4 - mov r1, #3 - str r3, [sp, #0x34] - str r2, [sp, #0x38] - bl FUN_0207dd1c - cmp r0, #0 - bne _0207E6B0 - add r8, sp, #4 - mov r7, #3 -_0207E688: - ldr r0, [sp, #0x58] - cmp r0, #0 - ldreq r0, [sp, #0x50] - cmpeq r0, r6 - beq _0207E6B0 + add r0, r3, r6, lsl #3 + str r0, [r8, #0x10] + cmp r0, r6, lsl #3 + ldrlo r0, [r8, #0x14] + lsr r2, r3, #3 + addlo r0, r0, #1 + strlo r0, [r8, #0x14] + ldr r0, [r8, #0x14] + and r4, r2, #0x3f + rsb r5, r4, #0x40 + add r0, r0, r6, lsr #29 + mov r7, r1 + str r0, [r8, #0x14] + cmp r6, r5 + blo _022D31A0 + add r1, r8, #0x18 + mov r0, r7 + mov r2, r5 + add r1, r1, r4 + bl FUN_0207C4C8 mov r0, r8 - mov r1, r7 - bl FUN_0207dd1c - cmp r0, #0 - beq _0207E688 -_0207E6B0: - ldr r0, [sp, #0x5c] - add r1, r5, r4 - add r6, r0, #1 - add r0, sp, #0x60 - mov r2, r6 - sub r1, r1, r6 - bl FUN_0207c4c8 - sub r4, r4, r6 - b _0207E6E4 -_0207E6D4: - add r0, r5, r4 - mov r1, #0 - strb r1, [r0, #-1] - sub r4, r4, #1 -_0207E6E4: - cmp sb, #0 - beq _0207E78C - add sl, sp, #4 - mov r6, #3 - add r8, sp, #0x4c - mov r7, #0 - mov fp, #0x2f -_0207E700: - ldr r1, [sp, #0x30] - mov r0, sl - bl FUN_0207dfbc - add r1, r5, r4 - str r8, [sp, #0x34] - str r7, [sp, #0x38] - strb fp, [r1, #-1] - mov r0, sl - mov r1, #3 - sub r4, r4, #1 - bl FUN_0207dd1c - cmp r0, #0 - bne _0207E780 -_0207E734: - ldr r0, [sp, #0x58] - cmp r0, #0 - beq _0207E76C - ldrh r0, [sp, #0x50] - cmp r0, sb - bne _0207E76C - ldr sb, [sp, #0x5c] - add r1, r5, r4 - add r0, sp, #0x60 - mov r2, sb - sub r1, r1, sb - bl FUN_0207c4c8 - sub r4, r4, sb - b _0207E780 -_0207E76C: - mov r0, sl - mov r1, r6 - bl FUN_0207dd1c - cmp r0, #0 - beq _0207E734 -_0207E780: - ldrh sb, [sp, #0x28] - cmp sb, #0 - bne _0207E700 -_0207E78C: + add r1, r8, #0x18 + mov r4, #0 + bl ov00_022D2CA0 + add r0, r5, #0x3f + cmp r0, r6 + bhs _022D31A4 +_022D3180: + mov r0, r8 + add r1, r7, r5 + bl ov00_022D2CA0 + add r5, r5, #0x40 + add r0, r5, #0x3f + cmp r0, r6 + blo _022D3180 + b _022D31A4 +_022D31A0: + mov r5, #0 +_022D31A4: + add r1, r8, #0x18 + add r0, r7, r5 + add r1, r1, r4 + sub r2, r6, r5 + bl FUN_0207C4C8 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022D3104 + + arm_func_start ov00_022D31BC +ov00_022D31BC: @ 0x022D31BC + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + mov r0, r4 + add r1, r5, #0x10 + mov r2, #8 + bl ov00_022D2C70 + ldr r0, [r5, #0x10] + ldr r1, _022D3220 @ =0x02318974 + lsr r0, r0, #3 + and r0, r0, #0x3f + cmp r0, #0x38 + rsblt r2, r0, #0x38 + rsbge r2, r0, #0x78 + mov r0, r5 + bl ov00_022D3104 + mov r0, r5 + mov r1, r4 + mov r2, #8 + bl ov00_022D3104 + mov r0, r4 + mov r1, r5 + mov r2, #0x10 + bl ov00_022D2C70 + pop {r3, r4, r5, pc} + .align 2, 0 +_022D3220: .4byte 0x02318974 + arm_func_end ov00_022D31BC + + arm_func_start ov00_022D3224 +ov00_022D3224: @ 0x022D3224 + add r2, r0, #0xd + add ip, r0, #2 + and r3, r2, #0xf + eor r2, r0, #8 + and ip, ip, #0xf + ldr r3, [r1, r3, lsl #2] + ldr r2, [r1, r2, lsl #2] + ldr ip, [r1, ip, lsl #2] + eor r2, r3, r2 + ldr r3, [r1, r0, lsl #2] + eor r2, ip, r2 + eor r3, r3, r2 + lsr r2, r3, #0x1f + orr r2, r2, r3, lsl #1 + str r2, [r1, r0, lsl #2] + mov r0, r2 + bx lr + arm_func_end ov00_022D3224 + + arm_func_start ov00_022D3268 +ov00_022D3268: @ 0x022D3268 + push {r3, lr} + lsrs r2, r2, #2 + mov lr, #0 + popeq {r3, pc} +_022D3278: + ldr ip, [r1], #4 + add lr, lr, #1 + lsr r3, ip, #0x18 + strb r3, [r0] + lsr r3, ip, #0x10 + strb r3, [r0, #1] + lsr r3, ip, #8 + strb r3, [r0, #2] + strb ip, [r0, #3] + cmp lr, r2 + add r0, r0, #4 + blo _022D3278 + pop {r3, pc} + arm_func_end ov00_022D3268 + + arm_func_start ov00_022D32AC +ov00_022D32AC: @ 0x022D32AC + push {r3, r4, r5, lr} + mov r5, #0 + cmp r2, #0 + popls {r3, r4, r5, pc} +_022D32BC: + add r4, r1, r5 + ldrb r3, [r4, #1] + ldrb ip, [r1, r5] + ldrb lr, [r4, #2] + lsl r3, r3, #0x10 + orr r3, r3, ip, lsl #24 + ldrb ip, [r4, #3] + orr r3, r3, lr, lsl #8 + add r5, r5, #4 + orr r3, ip, r3 + cmp r5, r2 + str r3, [r0], #4 + blo _022D32BC + pop {r3, r4, r5, pc} + arm_func_end ov00_022D32AC + + arm_func_start ov00_022D32F4 +ov00_022D32F4: @ 0x022D32F4 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x50 + str r0, [sp] + ldr r3, [sp] + add r0, sp, #0x10 + ldm r3, {r4, r5, r7, r8, sb} + mov r2, #0x40 + bl ov00_022D32AC mov r0, #0 - add sp, sp, #0xe0 + ldr r3, _022D396C @ =0x5A827999 + mov r2, r0 + add r1, sp, #0x10 +_022D3324: + eor r6, r7, r8 + lsr sl, r4, #0x1b + and r6, r5, r6 + orr fp, sl, r4, lsl #5 + eor r6, r8, r6 + lsr sl, r5, #2 + orr sl, sl, r5, lsl #30 + add r5, r1, r0, lsl #2 + add r6, fp, r6 + ldr ip, [r1, r0, lsl #2] + ldr fp, [r5, #4] + add r6, ip, r6 + add r6, r6, r3 + add sb, sb, r6 + lsr r6, sb, #0x1b + orr r6, r6, sb, lsl #5 + eor ip, sl, r7 + and ip, r4, ip + eor ip, r7, ip + add r6, r6, ip + add r6, fp, r6 + add r6, r6, r3 + add r8, r8, r6 + lsr r6, r4, #2 + orr r4, r6, r4, lsl #30 + ldr fp, [r5, #8] + lsr r6, r8, #0x1b + orr r6, r6, r8, lsl #5 + eor ip, r4, sl + and ip, sb, ip + eor ip, sl, ip + add r6, r6, ip + add r6, fp, r6 + add r6, r6, r3 + add r6, r7, r6 + lsr r7, sb, #2 + orr sb, r7, sb, lsl #30 + ldr r7, [r5, #0xc] + ldr fp, [r5, #0x10] + lsr r5, r6, #0x1b + orr r5, r5, r6, lsl #5 + eor ip, sb, r4 + and ip, r8, ip + eor ip, r4, ip + add r5, r5, ip + add r5, r7, r5 + add r5, r5, r3 + add r5, sl, r5 + lsr r7, r8, #2 + orr r8, r7, r8, lsl #30 + lsr r7, r5, #0x1b + orr r7, r7, r5, lsl #5 + eor sl, r8, sb + and sl, r6, sl + eor sl, sb, sl + add r7, r7, sl + add r7, fp, r7 + add r7, r7, r3 + add r4, r4, r7 + lsr r7, r6, #2 + orr r7, r7, r6, lsl #30 + add r0, r0, #5 + add r2, r2, #1 + cmp r2, #3 + blt _022D3324 + eor r0, r7, r8 + lsr r2, r4, #0x1b + and r0, r5, r0 + orr r3, r2, r4, lsl #5 + eor r0, r8, r0 + add r3, r3, r0 + ldr r6, [sp, #0x4c] + ldr r0, _022D396C @ =0x5A827999 + add r3, r6, r3 + add r3, r3, r0 + lsr r2, r5, #2 + orr r6, r2, r5, lsl #30 + mov r0, #0 + add sb, sb, r3 + bl ov00_022D3224 + eor r1, r6, r7 + lsr r3, sb, #0x1b + and r1, r4, r1 + lsr r2, r4, #2 + orr r3, r3, sb, lsl #5 + eor r1, r7, r1 + add r1, r3, r1 + add r3, r1, r0 + ldr r0, _022D396C @ =0x5A827999 + add r1, sp, #0x10 + add r3, r3, r0 + orr r5, r2, r4, lsl #30 + mov r0, #1 + add r8, r8, r3 + bl ov00_022D3224 + eor r1, r5, r6 + lsr r2, r8, #0x1b + and r1, sb, r1 + orr r2, r2, r8, lsl #5 + eor r1, r6, r1 + add r1, r2, r1 + add r2, r1, r0 + ldr r0, _022D396C @ =0x5A827999 + lsr r1, sb, #2 + add r0, r2, r0 + orr sb, r1, sb, lsl #30 + add r7, r7, r0 + add r1, sp, #0x10 + mov r0, #2 + bl ov00_022D3224 + lsr r1, r7, #0x1b + orr r2, r1, r7, lsl #5 + eor r1, sb, r5 + and r1, r8, r1 + eor r1, r5, r1 + add r1, r2, r1 + add r2, r1, r0 + ldr r0, _022D396C @ =0x5A827999 + lsr r1, r8, #2 + add r0, r2, r0 + orr r8, r1, r8, lsl #30 + add r6, r6, r0 + mov r0, #3 + add r1, sp, #0x10 + bl ov00_022D3224 + lsr r1, r6, #0x1b + orr r2, r1, r6, lsl #5 + eor r1, r8, sb + and r1, r7, r1 + eor r1, sb, r1 + add r1, r2, r1 + add r2, r1, r0 + ldr r0, _022D396C @ =0x5A827999 + lsr r1, r7, #2 + add r0, r2, r0 + add r5, r5, r0 + mov r0, #0 + ldr r4, _022D3970 @ =0x6ED9EBA1 + orr r7, r1, r7, lsl #30 + mov sl, #4 + str r0, [sp, #4] + add fp, sp, #0x10 +_022D355C: + mov r0, sl + mov r1, fp + bl ov00_022D3224 + lsr r2, r5, #0x1b + eor r1, r6, r7 + orr r2, r2, r5, lsl #5 + eor r1, r8, r1 + add r1, r2, r1 + add r0, r1, r0 + add r1, r0, r4 + lsr r0, r6, #2 + add sb, sb, r1 + orr r6, r0, r6, lsl #30 + add r0, sl, #1 + mov r1, fp + bl ov00_022D3224 + lsr r1, sb, #0x1b + orr r2, r1, sb, lsl #5 + eor r1, r5, r6 + eor r1, r7, r1 + add r1, r2, r1 + add r0, r1, r0 + add r0, r0, r4 + add r8, r8, r0 + lsr r0, r5, #2 + orr r5, r0, r5, lsl #30 + add r0, sl, #2 + and sl, r0, #0xf + mov r0, sl + mov r1, fp + bl ov00_022D3224 + lsr r1, r8, #0x1b + orr r2, r1, r8, lsl #5 + eor r1, sb, r5 + eor r1, r6, r1 + add r1, r2, r1 + add r0, r1, r0 + add r0, r0, r4 + add r7, r7, r0 + lsr r0, sb, #2 + orr sb, r0, sb, lsl #30 + add r0, sl, #1 + mov r1, fp + bl ov00_022D3224 + lsr r1, r7, #0x1b + orr r2, r1, r7, lsl #5 + eor r1, r8, sb + eor r1, r5, r1 + add r1, r2, r1 + add r0, r1, r0 + add r0, r0, r4 + add r6, r6, r0 + lsr r0, r8, #2 + orr r8, r0, r8, lsl #30 + add r0, sl, #2 + mov r1, fp + bl ov00_022D3224 + lsr r1, r6, #0x1b + orr r2, r1, r6, lsl #5 + eor r1, r7, r8 + eor r1, sb, r1 + add r1, r2, r1 + add r0, r1, r0 + add r0, r0, r4 + add r5, r5, r0 + lsr r1, r7, #2 + ldr r0, [sp, #4] + add r0, r0, #1 + str r0, [sp, #4] + cmp r0, #4 + orr r7, r1, r7, lsl #30 + add sl, sl, #3 + blt _022D355C + mov r0, #0 + ldr r4, _022D3974 @ =0x8F1BBCDC + str r0, [sp, #8] + add fp, sp, #0x10 +_022D3690: + mov r0, sl + mov r1, fp + bl ov00_022D3224 + orr r2, r7, r8 + lsr r1, r5, #0x1b + orr r1, r1, r5, lsl #5 + and r3, r6, r2 + and r2, r7, r8 + orr r2, r3, r2 + add r1, r1, r2 + add r1, r1, r0 + lsr r0, r6, #2 + add r1, r1, r4 + add sb, sb, r1 + orr r6, r0, r6, lsl #30 + add r0, sl, #1 + mov r1, fp + bl ov00_022D3224 + lsr r1, sb, #0x1b + orr r1, r1, sb, lsl #5 + orr r2, r6, r7 + and r3, r5, r2 + and r2, r6, r7 + orr r2, r3, r2 + add r1, r1, r2 + add r0, r1, r0 + add r0, r0, r4 + add r8, r8, r0 + lsr r0, r5, #2 + orr r5, r0, r5, lsl #30 + add r0, sl, #2 + mov r1, fp + bl ov00_022D3224 + lsr r1, r8, #0x1b + orr r1, r1, r8, lsl #5 + orr r2, r5, r6 + and r3, sb, r2 + and r2, r5, r6 + orr r2, r3, r2 + add r1, r1, r2 + add r0, r1, r0 + add r0, r0, r4 + add r7, r7, r0 + lsr r0, sb, #2 + orr sb, r0, sb, lsl #30 + add r0, sl, #3 + and sl, r0, #0xf + mov r0, sl + mov r1, fp + bl ov00_022D3224 + lsr r1, r7, #0x1b + orr r1, r1, r7, lsl #5 + orr r2, sb, r5 + and r3, r8, r2 + and r2, sb, r5 + orr r2, r3, r2 + add r1, r1, r2 + add r0, r1, r0 + add r0, r0, r4 + add r6, r6, r0 + lsr r0, r8, #2 + orr r8, r0, r8, lsl #30 + add r0, sl, #1 + mov r1, fp + bl ov00_022D3224 + lsr r1, r6, #0x1b + orr r1, r1, r6, lsl #5 + orr r2, r8, sb + and r3, r7, r2 + and r2, r8, sb + orr r2, r3, r2 + add r1, r1, r2 + add r0, r1, r0 + add r0, r0, r4 + add r5, r5, r0 + lsr r1, r7, #2 + ldr r0, [sp, #8] + add r0, r0, #1 + str r0, [sp, #8] + cmp r0, #4 + orr r7, r1, r7, lsl #30 + add sl, sl, #2 + blt _022D3690 + mov r0, #0 + ldr r4, _022D3978 @ =0xCA62C1D6 + str r0, [sp, #0xc] + add fp, sp, #0x10 +_022D37EC: + mov r0, sl + mov r1, fp + bl ov00_022D3224 + lsr r2, r5, #0x1b + eor r1, r6, r7 + orr r2, r2, r5, lsl #5 + eor r1, r8, r1 + add r1, r2, r1 + add r0, r1, r0 + add r1, r0, r4 + lsr r0, r6, #2 + add sb, sb, r1 + orr r6, r0, r6, lsl #30 + add r0, sl, #1 + mov r1, fp + bl ov00_022D3224 + lsr r1, sb, #0x1b + orr r2, r1, sb, lsl #5 + eor r1, r5, r6 + eor r1, r7, r1 + add r1, r2, r1 + add r0, r1, r0 + add r0, r0, r4 + add r8, r8, r0 + lsr r0, r5, #2 + orr r5, r0, r5, lsl #30 + add r0, sl, #2 + mov r1, fp + bl ov00_022D3224 + lsr r1, r8, #0x1b + orr r2, r1, r8, lsl #5 + eor r1, sb, r5 + eor r1, r6, r1 + add r1, r2, r1 + add r0, r1, r0 + add r0, r0, r4 + add r7, r7, r0 + lsr r0, sb, #2 + orr sb, r0, sb, lsl #30 + add r0, sl, #3 + mov r1, fp + bl ov00_022D3224 + lsr r1, r7, #0x1b + orr r2, r1, r7, lsl #5 + eor r1, r8, sb + eor r1, r5, r1 + add r1, r2, r1 + add r0, r1, r0 + add r0, r0, r4 + add r6, r6, r0 + lsr r0, r8, #2 + orr r8, r0, r8, lsl #30 + add r0, sl, #4 + and sl, r0, #0xf + mov r0, sl + mov r1, fp + bl ov00_022D3224 + lsr r1, r6, #0x1b + orr r2, r1, r6, lsl #5 + eor r1, r7, r8 + eor r1, sb, r1 + add r1, r2, r1 + add r0, r1, r0 + add r0, r0, r4 + add r5, r5, r0 + lsr r1, r7, #2 + ldr r0, [sp, #0xc] + add r0, r0, #1 + str r0, [sp, #0xc] + cmp r0, #4 + orr r7, r1, r7, lsl #30 + add sl, sl, #1 + blt _022D37EC + ldr r0, [sp] + ldr r0, [r0] + add r1, r0, r5 + ldr r0, [sp] + str r1, [r0] + ldr r0, [r0, #4] + add r1, r0, r6 + ldr r0, [sp] + str r1, [r0, #4] + ldr r0, [r0, #8] + add r1, r0, r7 + ldr r0, [sp] + str r1, [r0, #8] + ldr r0, [r0, #0xc] + add r1, r0, r8 + ldr r0, [sp] + str r1, [r0, #0xc] + ldr r0, [r0, #0x10] + add r1, r0, sb + ldr r0, [sp] + str r1, [r0, #0x10] + add sp, sp, #0x50 pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 -_0207E798: .4byte 0x020B2BB0 - arm_func_end FUN_0207e3f0 -_0207E79C: - .byte 0x38, 0x40, 0x2D, 0xE9 - .byte 0x10, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0x08, 0x10, 0x95, 0xE5, 0x34, 0x40, 0x95, 0xE5 - .byte 0x30, 0x00, 0x91, 0xE5, 0x84, 0x21, 0xA0, 0xE1, 0x84, 0x01, 0x50, 0xE1, 0x10, 0xD0, 0x8D, 0x92 - .byte 0x01, 0x00, 0xA0, 0x93, 0x38, 0x80, 0xBD, 0x98, 0x00, 0x10, 0x8D, 0xE5, 0x2C, 0x10, 0x91, 0xE5 - .byte 0x00, 0x00, 0x8D, 0xE2, 0x02, 0x30, 0x81, 0xE0, 0x08, 0x10, 0x8D, 0xE2, 0x08, 0x20, 0xA0, 0xE3 - .byte 0x04, 0x30, 0x8D, 0xE5, 0xC4, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x10, 0xD0, 0x8D, 0x12 - .byte 0x38, 0x80, 0xBD, 0x18, 0x08, 0x10, 0x9D, 0xE5, 0x05, 0x00, 0xA0, 0xE1, 0x30, 0x10, 0x85, 0xE5 - .byte 0x0C, 0x20, 0x9D, 0xE5, 0x07, 0x10, 0xA0, 0xE3, 0x34, 0x20, 0x85, 0xE5, 0x38, 0x40, 0x85, 0xE5 - .byte 0x41, 0xFD, 0xFF, 0xEB, 0x10, 0xD0, 0x8D, 0xE2, 0x38, 0x80, 0xBD, 0xE8, 0x30, 0x10, 0x90, 0xE5 - .byte 0x24, 0x10, 0x80, 0xE5, 0x30, 0x10, 0x90, 0xE5, 0x2C, 0x10, 0x80, 0xE5, 0x34, 0x10, 0x90, 0xE5 - .byte 0x28, 0x10, 0x80, 0xE5, 0x38, 0x10, 0x90, 0xE5, 0x20, 0x10, 0x80, 0xE5, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 +_022D396C: .4byte 0x5A827999 +_022D3970: .4byte 0x6ED9EBA1 +_022D3974: .4byte 0x8F1BBCDC +_022D3978: .4byte 0xCA62C1D6 + arm_func_end ov00_022D32F4 - arm_func_start FUN_0207e84c -FUN_0207e84c: @ 0x0207E84C - push {r3, lr} - cmp r1, #3 - mov r3, #0 - bgt _0207E89C - mov ip, r3 - cmp r1, #0 - ble _0207E89C - mov lr, r3 -_0207E86C: - ldrb r2, [r0, ip] - cmp r2, #0 - beq _0207E89C - sub r2, r2, #0x41 - cmp r2, #0x19 - addls r2, r2, #0x61 - addhi r2, r2, #0x41 - add ip, ip, #1 - orr r3, r3, r2, lsl lr - cmp ip, r1 - add lr, lr, #8 - blt _0207E86C -_0207E89C: - mov r0, r3 - pop {r3, pc} - arm_func_end FUN_0207e84c - - arm_func_start FUN_0207e8a4 -FUN_0207e8a4: @ 0x0207E8A4 - push {r3, lr} - ldr r0, [r0, #0x28] - add r0, r0, r2 - mov r2, r3 - bl FUN_0207c4c8 - mov r0, #0 - pop {r3, pc} - arm_func_end FUN_0207e8a4 - - arm_func_start FUN_0207e8c0 -FUN_0207e8c0: @ 0x0207E8C0 - push {r3, lr} - ldr ip, [r0, #0x28] - mov r0, r1 - add r1, ip, r2 - mov r2, r3 - bl FUN_0207c4c8 - mov r0, #0 - pop {r3, pc} - arm_func_end FUN_0207e8c0 - - arm_func_start FUN_0207e8e0 -FUN_0207e8e0: @ 0x0207E8E0 - push {r3, lr} - mov r0, r2 - mov r2, r3 - bl FUN_0207c4c8 - mov r0, #0 - pop {r3, pc} - arm_func_end FUN_0207e8e0 - - arm_func_start FUN_0207e8f8 -FUN_0207e8f8: @ 0x0207E8F8 - push {r3, r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x48 - mov r6, r0 - bl EnableIrqFlag - ldr r1, [r6, #0x1c] - mov r4, r0 - tst r1, #0x20 - movne r0, #1 - moveq r0, #0 - cmp r0, #0 - beq _0207E98C - ldr r0, [r6, #0x1c] - bic r0, r0, #0x20 - str r0, [r6, #0x1c] - ldr r0, [r6, #0x24] - cmp r0, #0 - beq _0207E98C - mov r8, #0 - mov sb, #1 - mov r7, #3 -_0207E948: - ldr r1, [r0, #0xc] - ldr r5, [r0, #4] - tst r1, #2 - movne r1, sb - moveq r1, r8 - cmp r1, #0 - beq _0207E980 - ldr r1, [r6, #0x24] - cmp r1, r0 - mov r1, r7 - streq r5, [r6, #0x24] - bl FUN_0207dcc0 - cmp r5, #0 - ldreq r5, [r6, #0x24] -_0207E980: - mov r0, r5 - cmp r5, #0 - bne _0207E948 -_0207E98C: - ldr r0, [r6, #0x1c] - tst r0, #0x40 - movne r0, #1 - moveq r0, #0 - cmp r0, #0 - bne _0207EA7C - ldr r0, [r6, #0x1c] - tst r0, #8 - movne r0, #1 - moveq r0, #0 - cmp r0, #0 - bne _0207EA7C - ldr r5, [r6, #0x24] - cmp r5, #0 - beq _0207EA7C - ldr r0, [r6, #0x1c] - tst r0, #0x10 - movne r0, #1 - moveq r0, #0 - cmp r0, #0 - moveq r7, #1 - movne r7, #0 - cmp r7, #0 - ldrne r0, [r6, #0x1c] - orrne r0, r0, #0x10 - strne r0, [r6, #0x1c] - mov r0, r4 - bl SetIrqFlag - cmp r7, #0 - beq _0207EA20 - ldr r0, [r6, #0x58] - tst r0, #0x200 - beq _0207EA20 - ldr r2, [r6, #0x54] - mov r0, r5 - mov r1, #9 - blx r2 -_0207EA20: - bl EnableIrqFlag - ldr r1, [r5, #0xc] - mov r4, r0 - orr r0, r1, #0x40 - str r0, [r5, #0xc] - ldr r0, [r5, #0xc] - tst r0, #4 - movne r0, #1 - moveq r0, #0 - cmp r0, #0 - beq _0207EA68 - add r0, r5, #0x18 - bl FUN_020798d8 - mov r0, r4 - bl SetIrqFlag - add sp, sp, #0x48 - mov r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, pc} -_0207EA68: - mov r0, r4 - bl SetIrqFlag - add sp, sp, #0x48 - mov r0, r5 - pop {r3, r4, r5, r6, r7, r8, sb, pc} -_0207EA7C: - ldr r0, [r6, #0x1c] - tst r0, #0x10 - movne r0, #1 - moveq r0, #0 - cmp r0, #0 - beq _0207EAC8 - ldr r0, [r6, #0x1c] - bic r0, r0, #0x10 - str r0, [r6, #0x1c] - ldr r0, [r6, #0x58] - tst r0, #0x400 - beq _0207EAC8 - add r0, sp, #0 - bl FileInit - str r6, [sp, #8] - ldr r2, [r6, #0x54] - add r0, sp, #0 - mov r1, #0xa - blx r2 -_0207EAC8: - ldr r0, [r6, #0x1c] - tst r0, #0x40 - movne r0, #1 - moveq r0, #0 - cmp r0, #0 - beq _0207EAF8 - ldr r1, [r6, #0x1c] - add r0, r6, #0x14 - bic r1, r1, #0x40 - orr r1, r1, #8 - str r1, [r6, #0x1c] - bl FUN_020798d8 -_0207EAF8: - mov r0, r4 - bl SetIrqFlag - mov r0, #0 - add sp, sp, #0x48 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_0207e8f8 - - arm_func_start FUN_0207eb0c -FUN_0207eb0c: @ 0x0207EB0C - push {r4, r5, r6, r7, r8, lr} - movs r6, r0 - ldr r4, [r6, #8] - popeq {r4, r5, r6, r7, r8, pc} - mov r7, #0 - mov r8, #1 -_0207EB24: - bl EnableIrqFlag - ldr r1, [r6, #0xc] - mov r5, r0 - orr r0, r1, #0x40 - str r0, [r6, #0xc] - ldr r0, [r6, #0xc] - tst r0, #4 - movne r0, r8 - moveq r0, r7 - cmp r0, #0 - beq _0207EB64 - add r0, r6, #0x18 - bl FUN_020798d8 - mov r0, r5 - bl SetIrqFlag - pop {r4, r5, r6, r7, r8, pc} -_0207EB64: - ldr r1, [r6, #0xc] - mov r0, r5 - orr r1, r1, #8 - str r1, [r6, #0xc] - bl SetIrqFlag - ldr r1, [r6, #0x10] - mov r0, r6 - bl FUN_0207dd1c - cmp r0, #6 - popeq {r4, r5, r6, r7, r8, pc} - mov r0, r4 - bl FUN_0207e8f8 - movs r6, r0 - bne _0207EB24 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0207eb0c - - arm_func_start FUN_0207eba0 -FUN_0207eba0: @ 0x0207EBA0 - push {r4, lr} - mov r4, r0 - ldr r1, [r4, #0x10] - bl FUN_0207dd1c - mov r1, r0 - mov r0, r4 - bl FUN_0207dcc0 - ldr r0, [r4, #8] - bl FUN_0207e8f8 - cmp r0, #0 - beq _0207EBD0 - bl FUN_0207eb0c -_0207EBD0: - ldr r0, [r4, #0x14] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - pop {r4, pc} - arm_func_end FUN_0207eba0 - - arm_func_start FUN_0207ebe4 -FUN_0207ebe4: @ 0x0207EBE4 - push {r3, r4, r5, r6, r7, lr} - mov r6, r0 - ldr r4, [r6, #8] - mov r2, #1 - str r1, [r6, #0x10] - mov r0, #2 - str r0, [r6, #0x14] - ldr r0, [r6, #0xc] - lsl r7, r2, r1 - orr r0, r0, #1 - str r0, [r6, #0xc] - bl EnableIrqFlag - ldr r1, [r4, #0x1c] - mov r5, r0 - tst r1, #0x80 - beq _0207EC40 - mov r0, r6 - mov r1, #3 - bl FUN_0207dcc0 - mov r0, r5 - bl SetIrqFlag - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_0207EC40: - tst r7, #0x1fc - ldrne r0, [r6, #0xc] - orrne r0, r0, #4 - strne r0, [r6, #0xc] - ldr r1, [r6] - ldr r2, [r6, #4] - cmp r1, #0 - strne r2, [r1, #4] - cmp r2, #0 - add r0, r4, #0x20 - strne r1, [r2] - ldr r1, [r0, #4] - cmp r1, #0 - beq _0207EC88 -_0207EC78: - mov r0, r1 - ldr r1, [r1, #4] - cmp r1, #0 - bne _0207EC78 -_0207EC88: - str r6, [r0, #4] - str r0, [r6] - mov r1, #0 - str r1, [r6, #4] - ldr r0, [r4, #0x1c] - tst r0, #8 - movne r1, #1 - cmp r1, #0 - bne _0207ED38 - ldr r0, [r4, #0x1c] - tst r0, #0x10 - movne r0, #1 - moveq r0, #0 - cmp r0, #0 - bne _0207ED38 - ldr r1, [r4, #0x1c] - mov r0, r5 - orr r1, r1, #0x10 - str r1, [r4, #0x1c] - bl SetIrqFlag - ldr r0, [r4, #0x58] - tst r0, #0x200 - beq _0207ECF4 - ldr r2, [r4, #0x54] - mov r0, r6 - mov r1, #9 - blx r2 -_0207ECF4: - bl EnableIrqFlag - ldr r1, [r6, #0xc] - orr r1, r1, #0x40 - str r1, [r6, #0xc] - ldr r1, [r6, #0xc] - tst r1, #4 - movne r1, #1 - moveq r1, #0 - cmp r1, #0 - bne _0207ED30 - bl SetIrqFlag - mov r0, r6 - bl FUN_0207eb0c - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_0207ED30: - bl SetIrqFlag - b _0207ED7C -_0207ED38: - ldr r0, [r6, #0xc] - tst r0, #4 - movne r0, #1 - moveq r0, #0 - cmp r0, #0 - bne _0207ED60 - mov r0, r5 - bl SetIrqFlag - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_0207ED60: - add r0, r6, #0x18 - bl FUN_02079888 - ldr r0, [r6, #0xc] - tst r0, #0x40 - beq _0207ED60 - mov r0, r5 - bl SetIrqFlag -_0207ED7C: - mov r0, r6 - bl FUN_0207eba0 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0207ebe4 - - arm_func_start FUN_0207ed88 -FUN_0207ed88: @ 0x0207ED88 + arm_func_start ov00_022D397C +ov00_022D397C: @ 0x022D397C push {r4, lr} mov r1, #0 mov r2, #0x5c mov r4, r0 - bl FUN_0207c40c - mov r0, #0 + bl FUN_0207C40C + ldr r0, _022D39BC @ =0x67452301 + ldr r1, _022D39C0 @ =0xEFCDAB89 + str r0, [r4] + ldr r0, _022D39C4 @ =0x98BADCFE + str r1, [r4, #4] + ldr r1, _022D39C8 @ =0x10325476 + str r0, [r4, #8] + ldr r0, _022D39CC @ =0xC3D2E1F0 + str r1, [r4, #0xc] str r0, [r4, #0x10] - str r0, [r4, #0xc] - str r0, [r4, #0x18] - str r0, [r4, #0x14] - pop {r4, pc} - arm_func_end FUN_0207ed88 - - arm_func_start FUN_0207edb4 -FUN_0207edb4: @ 0x0207EDB4 - push {r3, r4, r5, lr} - bl FUN_0207e84c - mov r4, r0 - bl EnableIrqFlag - ldr r1, _0207EDF0 @ =0x022BB5E8 - ldr r5, [r1] - b _0207EDD4 -_0207EDD0: - ldr r5, [r5, #4] -_0207EDD4: - cmp r5, #0 - ldrne r1, [r5] - cmpne r1, r4 - bne _0207EDD0 - bl SetIrqFlag - mov r0, r5 - pop {r3, r4, r5, pc} - .align 2, 0 -_0207EDF0: .4byte 0x022BB5E8 - arm_func_end FUN_0207edb4 - - arm_func_start FUN_0207edf4 -FUN_0207edf4: @ 0x0207EDF4 - push {r4, r5, r6, r7, r8, lr} - mov r6, r1 - mov r5, r2 - mov r7, r0 - mov r8, #0 - bl EnableIrqFlag - mov r4, r0 - mov r0, r6 - mov r1, r5 - bl FUN_0207edb4 - cmp r0, #0 - bne _0207EE94 - ldr r0, _0207EEA4 @ =0x022BB5E8 - ldr r1, [r0] - cmp r1, #0 - bne _0207EE50 - str r7, [r0] - str r7, [r0, #4] - mov r1, r8 - str r1, [r0, #0xc] - strh r1, [r0, #0xa] - strh r1, [r0, #8] - b _0207EE74 -_0207EE50: - ldr r0, [r1, #4] - cmp r0, #0 - beq _0207EE6C -_0207EE5C: - mov r1, r0 - ldr r0, [r0, #4] - cmp r0, #0 - bne _0207EE5C -_0207EE6C: - str r7, [r1, #4] - str r1, [r7, #8] -_0207EE74: - mov r0, r6 - mov r1, r5 - bl FUN_0207e84c - str r0, [r7] - ldr r0, [r7, #0x1c] - mov r8, #1 - orr r0, r0, #1 - str r0, [r7, #0x1c] -_0207EE94: - mov r0, r4 - bl SetIrqFlag - mov r0, r8 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0207EEA4: .4byte 0x022BB5E8 - arm_func_end FUN_0207edf4 - - arm_func_start FUN_0207eea8 -FUN_0207eea8: @ 0x0207EEA8 - push {r4, lr} - mov r4, r0 - ldr r0, [r4] - cmp r0, #0 - popeq {r4, pc} - bl EnableIrqFlag - ldr r2, [r4, #4] - mov r3, #0 - cmp r2, #0 - ldrne r1, [r4, #8] - strne r1, [r2, #8] - ldr r2, [r4, #8] - cmp r2, #0 - ldrne r1, [r4, #4] - strne r1, [r2, #4] - str r3, [r4] - str r3, [r4, #8] - str r3, [r4, #4] - ldr r2, [r4, #0x1c] - ldr r1, _0207EF28 @ =0x022BB5E8 - bic r2, r2, #1 - str r2, [r4, #0x1c] - ldr r2, [r1, #4] - cmp r2, r4 - bne _0207EF20 - ldr r2, [r1] - str r2, [r1, #4] - str r3, [r1, #0xc] - strh r3, [r1, #0xa] - strh r3, [r1, #8] -_0207EF20: - bl SetIrqFlag pop {r4, pc} .align 2, 0 -_0207EF28: .4byte 0x022BB5E8 - arm_func_end FUN_0207eea8 +_022D39BC: .4byte 0x67452301 +_022D39C0: .4byte 0xEFCDAB89 +_022D39C4: .4byte 0x98BADCFE +_022D39C8: .4byte 0x10325476 +_022D39CC: .4byte 0xC3D2E1F0 + arm_func_end ov00_022D397C - arm_func_start FUN_0207ef2c -FUN_0207ef2c: @ 0x0207EF2C - str r1, [r0, #0x28] - str r3, [r0, #0x30] - str r2, [r0, #0x3c] - ldr r3, [sp, #4] - str r2, [r0, #0x2c] - ldr ip, [sp, #8] - ldr r1, [sp] - str r3, [r0, #0x38] - str r1, [r0, #0x40] - str r1, [r0, #0x34] - cmp ip, #0 - ldreq ip, _0207EF94 @ =FUN_0207e8a4 - ldr r1, [sp, #0xc] - str ip, [r0, #0x48] - cmp r1, #0 - ldreq r1, _0207EF98 @ =FUN_0207e8c0 - str r1, [r0, #0x4c] - ldr r2, [r0, #0x48] - mov r1, #0 - str r2, [r0, #0x50] - str r1, [r0, #0x44] - ldr r1, [r0, #0x1c] - orr r1, r1, #2 - str r1, [r0, #0x1c] - mov r0, #1 - bx lr - .align 2, 0 -_0207EF94: .4byte FUN_0207e8a4 -_0207EF98: .4byte FUN_0207e8c0 - arm_func_end FUN_0207ef2c -_0207EF9C: - .byte 0xF0, 0x41, 0x2D, 0xE9 - .byte 0x00, 0x60, 0xA0, 0xE1, 0x0E, 0xF2, 0xFF, 0xEB, 0x1C, 0x10, 0x96, 0xE5, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x02, 0x00, 0x11, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x50, 0xE3 - .byte 0x21, 0x00, 0x00, 0x0A, 0x06, 0x00, 0xA0, 0xE1, 0x1C, 0x10, 0x96, 0xE5, 0x8E, 0x00, 0x00, 0xEB - .byte 0x1C, 0x10, 0x96, 0xE5, 0x00, 0x50, 0xA0, 0xE1, 0x80, 0x00, 0x81, 0xE3, 0x1C, 0x00, 0x86, 0xE5 - .byte 0x24, 0x00, 0x96, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x03, 0x70, 0xA0, 0xE3 - .byte 0x04, 0x80, 0x90, 0xE5, 0x07, 0x10, 0xA0, 0xE1, 0x30, 0xFB, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x58, 0xE3, 0xF9, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0xA0, 0xE3, 0x24, 0x00, 0x86, 0xE5 - .byte 0x00, 0x00, 0x55, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x06, 0x00, 0xA0, 0xE1, 0xA1, 0x00, 0x00, 0xEB - .byte 0x00, 0x00, 0xA0, 0xE3, 0x28, 0x00, 0x86, 0xE5, 0x2C, 0x00, 0x86, 0xE5, 0x30, 0x00, 0x86, 0xE5 - .byte 0x34, 0x00, 0x86, 0xE5, 0x38, 0x00, 0x86, 0xE5, 0x40, 0x00, 0x86, 0xE5, 0x3C, 0x00, 0x86, 0xE5 - .byte 0x1C, 0x00, 0x96, 0xE5, 0xA2, 0x00, 0xC0, 0xE3, 0x1C, 0x00, 0x86, 0xE5, 0x04, 0x00, 0xA0, 0xE1 - .byte 0xE8, 0xF1, 0xFF, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0xF0, 0x81, 0xBD, 0xE8 - - arm_func_start FUN_0207f05c -FUN_0207f05c: @ 0x0207F05C - push {r4, r5, r6, r7, lr} - sub sp, sp, #0x4c - mov r7, r0 - ldr r3, [r7, #0x30] - ldr r0, [r7, #0x38] - mov r6, r1 - add r0, r3, r0 - add r0, r0, #0x3f - bic r4, r0, #0x1f - cmp r4, r2 - bhi _0207F170 - add r1, r6, #0x1f - add r0, sp, #4 - bic r5, r1, #0x1f - bl FileInit - ldr r2, [r7, #0x2c] - mvn r0, #0 - str r0, [sp] - ldr r3, [r7, #0x30] - add r0, sp, #4 - mov r1, r7 - add r3, r2, r3 - bl FUN_0207f60c - cmp r0, #0 - beq _0207F0F0 - ldr r2, [r7, #0x30] - add r0, sp, #4 - mov r1, r5 - bl FUN_0207f818 - cmp r0, #0 - bge _0207F0E8 - ldr r2, [r7, #0x30] - mov r0, r5 - mov r1, #0 - bl FUN_0207c40c -_0207F0E8: - add r0, sp, #4 - bl FUN_0207f70c -_0207F0F0: - str r5, [r7, #0x2c] - ldr ip, [r7, #0x30] - ldr r2, [r7, #0x34] - mvn r0, #0 - str r0, [sp] - ldr r3, [r7, #0x38] - add r0, sp, #4 - mov r1, r7 - add r3, r2, r3 - add r5, r5, ip - bl FUN_0207f60c - cmp r0, #0 - beq _0207F154 - ldr r2, [r7, #0x38] - add r0, sp, #4 - mov r1, r5 - bl FUN_0207f818 - cmp r0, #0 - bge _0207F14C - ldr r2, [r7, #0x38] - mov r0, r5 - mov r1, #0 - bl FUN_0207c40c -_0207F14C: - add r0, sp, #4 - bl FUN_0207f70c -_0207F154: - str r5, [r7, #0x34] - ldr r0, _0207F17C @ =FUN_0207e8e0 - str r6, [r7, #0x44] - str r0, [r7, #0x50] - ldr r0, [r7, #0x1c] - orr r0, r0, #4 - str r0, [r7, #0x1c] -_0207F170: - mov r0, r4 - add sp, sp, #0x4c - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0207F17C: .4byte FUN_0207e8e0 - arm_func_end FUN_0207f05c - - arm_func_start FUN_0207f180 -FUN_0207f180: @ 0x0207F180 - push {r3, r4, r5, lr} - mov r5, r0 - ldr r0, [r5, #0x1c] - mov r4, #0 - tst r0, #2 - movne r0, #1 - moveq r0, r4 - cmp r0, #0 - beq _0207F204 - mov r0, r5 - bl FUN_0207f20c - ldr r1, [r5, #0x1c] - tst r1, #4 - movne r1, #1 - moveq r1, #0 - cmp r1, #0 - beq _0207F1F4 - ldr r2, [r5, #0x1c] - mov r1, #0 - bic r2, r2, #4 - str r2, [r5, #0x1c] - ldr r4, [r5, #0x44] - str r1, [r5, #0x44] - ldr r1, [r5, #0x3c] - str r1, [r5, #0x2c] - ldr r1, [r5, #0x40] - str r1, [r5, #0x34] - ldr r1, [r5, #0x48] - str r1, [r5, #0x50] -_0207F1F4: - cmp r0, #0 - beq _0207F204 - mov r0, r5 - bl FUN_0207f2a8 -_0207F204: - mov r0, r4 - pop {r3, r4, r5, pc} - arm_func_end FUN_0207f180 - - arm_func_start FUN_0207f20c -FUN_0207f20c: @ 0x0207F20C + arm_func_start ov00_022D39D0 +ov00_022D39D0: @ 0x022D39D0 push {r4, r5, r6, r7, r8, lr} - mov r6, r0 - bl EnableIrqFlag - ldr r1, [r6, #0x1c] - mov r4, r0 - tst r1, #8 - movne r0, #1 - moveq r0, #0 - cmp r0, #0 - moveq r5, #1 - movne r5, #0 - cmp r5, #0 - beq _0207F298 - ldr r0, [r6, #0x1c] - tst r0, #0x10 - movne r0, #1 - moveq r0, #0 - cmp r0, #0 - ldr r0, [r6, #0x1c] - beq _0207F290 - orr r0, r0, #0x40 - str r0, [r6, #0x1c] - mov r7, #0 - mov r8, #1 -_0207F26C: - add r0, r6, #0x14 - bl FUN_02079888 - ldr r0, [r6, #0x1c] - tst r0, #0x40 - movne r0, r8 - moveq r0, r7 - cmp r0, #0 - bne _0207F26C - b _0207F298 -_0207F290: - orr r0, r0, #8 - str r0, [r6, #0x1c] -_0207F298: - mov r0, r4 - bl SetIrqFlag - mov r0, r5 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0207f20c - - arm_func_start FUN_0207f2a8 -FUN_0207f2a8: @ 0x0207F2A8 - push {r3, r4, r5, r6, r7, lr} - mov r4, r0 - mov r5, #0 - bl EnableIrqFlag - ldr r1, [r4, #0x1c] - mov r6, r0 - tst r1, #8 - movne r0, #1 - moveq r0, r5 - cmp r0, #0 - moveq r7, #1 - movne r7, #0 - cmp r7, #0 - bne _0207F2F8 - ldr r1, [r4, #0x1c] - mov r0, r4 - bic r1, r1, #8 - str r1, [r4, #0x1c] - bl FUN_0207e8f8 - mov r5, r0 -_0207F2F8: - mov r0, r6 - bl SetIrqFlag - cmp r5, #0 - beq _0207F310 - mov r0, r5 - bl FUN_0207eb0c -_0207F310: - mov r0, r7 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0207f2a8 - - arm_func_start FUN_0207f318 -FUN_0207f318: @ 0x0207F318 - cmp r2, #0 - moveq r1, #0 - beq _0207F32C - cmp r1, #0 - moveq r2, #0 -_0207F32C: - str r1, [r0, #0x54] - str r2, [r0, #0x58] - bx lr - arm_func_end FUN_0207f318 - - arm_func_start FUN_0207f338 -FUN_0207f338: @ 0x0207F338 - push {r4, r5, r6, lr} - mov r4, r0 - ldr r0, [r4, #0x1c] - mov r6, r1 - tst r0, #0x100 - movne r0, #1 - moveq r0, #0 - cmp r0, #0 - beq _0207F38C - ldr r1, [r4, #0x1c] - ldr r0, [r4, #0x24] - bic r2, r1, #0x100 - mov r1, r6 - str r2, [r4, #0x1c] - bl FUN_0207dcc0 - mov r0, r4 - bl FUN_0207e8f8 - cmp r0, #0 - popeq {r4, r5, r6, pc} - bl FUN_0207eb0c - pop {r4, r5, r6, pc} -_0207F38C: - ldr r5, [r4, #0x24] - bl EnableIrqFlag - str r6, [r5, #0x14] - ldr r1, [r4, #0x1c] - mov r5, r0 - bic r1, r1, #0x200 - add r0, r4, #0xc - str r1, [r4, #0x1c] - bl FUN_020798d8 - mov r0, r5 - bl SetIrqFlag - pop {r4, r5, r6, pc} - arm_func_end FUN_0207f338 - - arm_func_start FUN_0207f3bc -FUN_0207f3bc: @ 0x0207F3BC - push {r3, lr} - ldr r1, _0207F3E0 @ =0x022BB5F8 - ldr r2, [r1] - cmp r2, #0 - popne {r3, pc} - mov r2, #1 - str r2, [r1] - bl FUN_0207f9dc - pop {r3, pc} - .align 2, 0 -_0207F3E0: .4byte 0x022BB5F8 - arm_func_end FUN_0207f3bc - - arm_func_start FileInit -FileInit: @ 0x0207F3E4 - mov r2, #0 - str r2, [r0] - str r2, [r0, #4] - str r2, [r0, #0x1c] - str r2, [r0, #0x18] - str r2, [r0, #8] - mov r1, #0xe - str r1, [r0, #0x10] - str r2, [r0, #0xc] - bx lr - arm_func_end FileInit - - arm_func_start FUN_0207f40c -FUN_0207f40c: @ 0x0207F40C - push {r3, r4, r5, r6, r7, r8, lr} - sub sp, sp, #0xc + mov r8, r0 + ldr r3, [r8, #0x18] + mov r6, r2 + add r0, r3, r6, lsl #3 + str r0, [r8, #0x18] + cmp r0, r6, lsl #3 + ldrlo r0, [r8, #0x14] + lsr r2, r3, #3 + addlo r0, r0, #1 + strlo r0, [r8, #0x14] + ldr r0, [r8, #0x14] + and r4, r2, #0x3f + rsb r5, r4, #0x40 + add r0, r0, r6, lsr #29 mov r7, r1 - ldrb r1, [r7] + str r0, [r8, #0x14] + cmp r6, r5 + blo _022D3A6C + add r1, r8, #0x1c + mov r0, r7 + mov r2, r5 + add r1, r1, r4 + bl FUN_0207C4C8 + mov r0, r8 + add r1, r8, #0x1c + mov r4, #0 + bl ov00_022D32F4 + add r0, r5, #0x3f + cmp r0, r6 + bhs _022D3A70 +_022D3A4C: + mov r0, r8 + add r1, r7, r5 + bl ov00_022D32F4 + add r5, r5, #0x40 + add r0, r5, #0x3f + cmp r0, r6 + blo _022D3A4C + b _022D3A70 +_022D3A6C: + mov r5, #0 +_022D3A70: + add r1, r8, #0x1c + add r0, r7, r5 + add r1, r1, r4 + sub r2, r6, r5 + bl FUN_0207C4C8 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022D39D0 + + arm_func_start ov00_022D3A88 +ov00_022D3A88: @ 0x022D3A88 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + mov r0, r4 + add r1, r5, #0x14 + mov r2, #8 + bl ov00_022D3268 + ldr r0, [r5, #0x18] + ldr r1, _022D3AEC @ =0x02318AB4 + lsr r0, r0, #3 + and r0, r0, #0x3f + cmp r0, #0x38 + rsblt r2, r0, #0x38 + rsbge r2, r0, #0x78 + mov r0, r5 + bl ov00_022D39D0 + mov r0, r5 + mov r1, r4 + mov r2, #8 + bl ov00_022D39D0 + mov r0, r4 + mov r1, r5 + mov r2, #0x14 + bl ov00_022D3268 + pop {r3, r4, r5, pc} + .align 2, 0 +_022D3AEC: .4byte 0x02318AB4 + arm_func_end ov00_022D3A88 + + arm_func_start ov00_022D3AF0 +ov00_022D3AF0: @ 0x022D3AF0 + push {r3, r4, r5, lr} + mov r4, r1 + ldr r1, _022D3B1C @ =0x02318AB5 + mov r5, r0 + mov r2, #0x2c + bl ov00_022D39D0 + mov r0, r4 + mov r1, r5 + mov r2, #0x14 + bl ov00_022D3268 + pop {r3, r4, r5, pc} + .align 2, 0 +_022D3B1C: .4byte 0x02318AB5 + arm_func_end ov00_022D3AF0 + + arm_func_start ov00_022D3B20 +ov00_022D3B20: @ 0x022D3B20 + push {r3, r4, r5, r6, r7, lr} + mov r3, #0 + strb r3, [r0] + strb r3, [r0, #1] + add r4, r0, #2 +_022D3B34: + strb r3, [r4, r3] + add r3, r3, #1 + cmp r3, #0x100 + blt _022D3B34 + mov r6, #0 + mov r5, r6 + mov r7, r6 + mov r0, r6 +_022D3B54: + ldrb lr, [r4, r7] + ldrb ip, [r1, r6] + add r3, r6, #1 + and r6, r3, #0xff + add r3, lr, ip + add r3, r5, r3 + and r5, r3, #0xff + ldrb r3, [r4, r5] + cmp r6, r2 + movge r6, r0 + strb r3, [r4, r7] + add r7, r7, #1 + strb lr, [r4, r5] + cmp r7, #0x100 + blt _022D3B54 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022D3B20 + + arm_func_start ov00_022D3B94 +ov00_022D3B94: @ 0x022D3B94 + push {r4, r5, r6, lr} + cmp r2, #0 + add r4, r0, #2 + ldrb ip, [r0] + ldrb lr, [r0, #1] + mov r3, #0 + ble _022D3BF4 +_022D3BB0: + add r5, ip, #1 + and ip, r5, #0xff + ldrb r6, [r4, ip] + add r5, lr, r6 + and lr, r5, #0xff + ldrb r5, [r4, lr] + strb r5, [r4, ip] + add r5, r6, r5 + strb r6, [r4, lr] + and r5, r5, #0xff + ldrb r6, [r1, r3] + ldrb r5, [r4, r5] + eor r5, r6, r5 + strb r5, [r1, r3] + add r3, r3, #1 + cmp r3, r2 + blt _022D3BB0 +_022D3BF4: + strb ip, [r0] + strb lr, [r0, #1] + pop {r4, r5, r6, pc} + arm_func_end ov00_022D3B94 + + arm_func_start ov00_022D3C08 +ov00_022D3C08: @ 0x022D3C00 + b _022D3C08 +_022D3C04: + sub r1, r1, #1 + arm_func_end ov00_022D3C08 +_022D3C08: + cmp r1, #0 + beq _022D3C20 + add r2, r0, r1, lsl #1 + ldrh r2, [r2, #-2] + cmp r2, #0 + beq _022D3C04 +_022D3C20: + mov r0, r1 + bx lr + + arm_func_start ov00_022D3C28 +ov00_022D3C28: @ 0x022D3C28 + push {r3, lr} + sub r2, r1, #1 + lsl r2, r2, #1 + ldrh r2, [r0, r2] + tst r2, #0x8000 + mvnne r0, #0 + popne {r3, pc} + bl ov00_022D3C08 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, pc} + arm_func_end ov00_022D3C28 + + arm_func_start ov00_022D3C58 +ov00_022D3C58: @ 0x022D3C58 + push {r4, r5, r6, r7, r8, lr} + mov r7, r1 + mov r5, r3 mov r8, r0 mov r6, r2 - cmp r1, #0x2f - mov r5, r3 - cmpne r1, #0x5c - bne _0207F458 - ldr r0, _0207F54C @ =0x022BB5EC - mov r1, #0 - ldr r0, [r0] - strh r1, [sp, #4] - str r0, [sp] - str r1, [sp, #8] - strh r1, [sp, #6] - add r7, r7, #1 - b _0207F4FC -_0207F458: - ldr r0, _0207F54C @ =0x022BB5EC - add r3, sp, #0 - ldm r0, {r0, r1, r2} - stm r3, {r0, r1, r2} - mov r4, #0 -_0207F46C: - ldrb r0, [r7, r4] - cmp r0, #0 - cmpne r0, #0x2f - cmpne r0, #0x5c - beq _0207F4FC - cmp r0, #0x3a - bne _0207F4F0 mov r0, r7 - mov r1, r4 - bl FUN_0207edb4 - cmp r0, #0 - addeq sp, sp, #0xc - moveq r0, #0 - popeq {r3, r4, r5, r6, r7, r8, pc} - ldr r1, [r0, #0x1c] - tst r1, #2 - movne r1, #1 - moveq r1, #0 + mov r1, r5 + bl ov00_022D3C08 + mov r4, r0 + mov r0, r6 + mov r1, r5 + bl ov00_022D3C08 + cmp r4, r0 + movlt r4, r0 + cmp r4, r5 + addne r4, r4, #1 + mov ip, #0 + mov r3, ip + cmp r4, #0 + ble _022D3CD0 +_022D3CA8: + lsl r2, r3, #1 + ldrh r1, [r7, r2] + ldrh r0, [r6, r2] + add r3, r3, #1 + cmp r3, r4 + add r0, r1, r0 + add r0, ip, r0 + strh r0, [r8, r2] + lsr ip, r0, #0x10 + blt _022D3CA8 +_022D3CD0: + cmp r8, r7 + cmpne r8, r6 + popeq {r4, r5, r6, r7, r8, pc} + sub r1, r5, r3 + add r0, r8, r3, lsl #1 + lsl r2, r1, #1 + mov r1, #0 + bl FUN_0207C40C + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022D3C58 + + arm_func_start ov00_022D3CF4 +ov00_022D3CF4: @ 0x022D3CF4 + push {r4, lr} + cmp r3, #0 + mov r4, #0 + ble _022D3D28 +_022D3D04: + lsl lr, r4, #1 + ldrh ip, [r1, lr] + add r2, r2, ip + strh r2, [r0, lr] + lsrs r2, r2, #0x10 + beq _022D3D28 + add r4, r4, #1 + cmp r4, r3 + blt _022D3D04 +_022D3D28: + cmp r0, r1 + popeq {r4, pc} + add r4, r4, #1 + cmp r4, r3 + popge {r4, pc} +_022D3D3C: + lsl ip, r4, #1 + ldrh r2, [r1, ip] + add r4, r4, #1 + cmp r4, r3 + strh r2, [r0, ip] + blt _022D3D3C + pop {r4, pc} + arm_func_end ov00_022D3CF4 + + arm_func_start ov00_022D3D58 +ov00_022D3D58: @ 0x022D3D58 + push {r3, lr} + mov r3, r1 + cmp r3, #0 + mov ip, #0 + ble _022D3D88 +_022D3D6C: + lsl r2, ip, #1 + ldrh r1, [r0, r2] + add ip, ip, #1 + cmp ip, r3 + mvn r1, r1 + strh r1, [r0, r2] + blt _022D3D6C +_022D3D88: + mov r1, r0 + mov r2, #1 + bl ov00_022D3CF4 + pop {r3, pc} + arm_func_end ov00_022D3D58 + + arm_func_start ov00_022D3D98 +ov00_022D3D98: @ 0x022D3D98 + push {r4, r5, r6, r7, r8, lr} + mov r7, r1 + mov r5, r3 + mov r8, r0 + mov r6, r2 + mov r0, r7 + mov r1, r5 + bl ov00_022D3C08 + mov r4, r0 + mov r0, r6 + mov r1, r5 + bl ov00_022D3C08 + cmp r4, r0 + movlt r4, r0 + mov ip, #0 + cmp r4, r5 + addne r4, r4, #1 + mov r3, ip + b _022D3E04 +_022D3DE4: + lsl r2, r3, #1 + ldrh r1, [r7, r2] + ldrh r0, [r6, r2] + add r3, r3, #1 + sub r0, r1, r0 + add r0, ip, r0 + strh r0, [r8, r2] + asr ip, r0, #0x10 +_022D3E04: + cmp r3, r4 + blt _022D3DE4 + cmp r3, r5 + bge _022D3E1C + cmp ip, #0 + bne _022D3DE4 +_022D3E1C: + cmp r8, r7 + cmpne r8, r6 + popeq {r4, r5, r6, r7, r8, pc} + sub r1, r5, r3 + add r0, r8, r3, lsl #1 + lsl r2, r1, #1 + mov r1, #0 + bl FUN_0207C40C + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022D3D98 + + arm_func_start ov00_022D3E40 +ov00_022D3E40: @ 0x022D3E40 + push {r4, lr} + cmp r3, #0 + mov r4, #0 + ble _022D3E78 +_022D3E50: + lsl lr, r4, #1 + ldrh ip, [r1, lr] + sub ip, ip, r2 + lsr r2, ip, #0x10 + strh ip, [r0, lr] + ands r2, r2, #1 + beq _022D3E78 + add r4, r4, #1 + cmp r4, r3 + blt _022D3E50 +_022D3E78: + cmp r0, r1 + popeq {r4, pc} + add r4, r4, #1 + cmp r4, r3 + popge {r4, pc} +_022D3E8C: + lsl ip, r4, #1 + ldrh r2, [r1, ip] + add r4, r4, #1 + cmp r4, r3 + strh r2, [r0, ip] + blt _022D3E8C + pop {r4, pc} + arm_func_end ov00_022D3E40 + + arm_func_start ov00_022D3EA8 +ov00_022D3EA8: @ 0x022D3EA8 + subs ip, r2, #1 + bmi _022D3ED8 +_022D3EB0: + lsl r2, ip, #1 + ldrh r3, [r1, r2] + ldrh r2, [r0, r2] + cmp r2, r3 + movhi r0, #1 + bxhi lr + mvnlo r0, #0 + bxlo lr + subs ip, ip, #1 + bpl _022D3EB0 +_022D3ED8: + mov r0, #0 + bx lr + arm_func_end ov00_022D3EA8 + + arm_func_start ov00_022D3EE0 +ov00_022D3EE0: @ 0x022D3EE0 + push {r3, lr} + b _022D3F00 +_022D3EE8: + lsl lr, r2, #1 + ldrh ip, [r0, lr] + add r2, r2, #1 + add r1, r1, ip + strh r1, [r0, lr] + lsr r1, r1, #0x10 +_022D3F00: cmp r1, #0 - addeq sp, sp, #0xc - moveq r0, #0 - popeq {r3, r4, r5, r6, r7, r8, pc} + popeq {r3, pc} + cmp r2, r3 + blt _022D3EE8 + pop {r3, pc} + arm_func_end ov00_022D3EE0 + + arm_func_start ov00_022D3F14 +ov00_022D3F14: @ 0x022D3F14 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #8 + mov r8, r3 + mov sl, r1 + mov sb, r2 + lsl r2, r8, #1 mov r1, #0 str r0, [sp] - str r1, [sp, #8] - strh r1, [sp, #6] - strh r1, [sp, #4] - add r0, r4, #1 - ldrb r0, [r7, r0]! - cmp r0, #0x2f - cmpne r0, #0x5c - addeq r7, r7, #1 - b _0207F4FC -_0207F4F0: - add r4, r4, #1 - cmp r4, #3 - ble _0207F46C -_0207F4FC: - ldr r1, [sp] - add r0, sp, #0 - str r1, [r8, #8] - str r7, [r8, #0x3c] - add r3, r8, #0x30 - ldm r0, {r0, r1, r2} - stm r3, {r0, r1, r2} - cmp r5, #0 - moveq r0, #0 - streq r0, [r8, #0x40] - streq r6, [r8, #0x44] - beq _0207F538 - mov r0, #1 - str r0, [r8, #0x40] - str r5, [r8, #0x44] -_0207F538: - mov r0, r8 - mov r1, #4 - bl FUN_0207ebe4 - add sp, sp, #0xc - pop {r3, r4, r5, r6, r7, r8, pc} - .align 2, 0 -_0207F54C: .4byte 0x022BB5EC - arm_func_end FUN_0207f40c + bl FUN_0207C40C + mov r0, sl + mov r1, r8 + bl ov00_022D3C08 + mov fp, r0 + mov r0, sb + mov r1, r8 + bl ov00_022D3C08 + str r0, [sp, #4] + cmp r0, #0 + mov r5, #0 + addle sp, sp, #8 + pople {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022D3F68: + mov r6, #0 + sub r7, r8, r5 + lsl r4, r5, #1 + b _022D3F9C +_022D3F78: + lsl r0, r6, #1 + ldrh r3, [sl, r0] + ldrh r1, [sb, r4] + ldr r0, [sp] + add r2, r5, r6 + mul r1, r3, r1 + mov r3, r8 + bl ov00_022D3EE0 + add r6, r6, #1 +_022D3F9C: + cmp r6, fp + cmplt r6, r7 + blt _022D3F78 + ldr r0, [sp, #4] + add r5, r5, #1 + cmp r5, r0 + blt _022D3F68 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022D3F14 - arm_func_start FUN_0207F550 -FUN_0207F550: @ 0x0207F550 + arm_func_start ov00_022D3FC0 +ov00_022D3FC0: @ 0x022D3FC0 + push {r3, r4, r5, r6, r7, lr} + mov r6, r1 + mov r4, r3 + mov r7, r0 + mov r0, r6 + mov r1, r4 + mov r5, r2 + bl ov00_022D3C08 + mov r3, #0 + mov ip, r3 + cmp r0, #0 + ble _022D4010 +_022D3FF0: + lsl r2, ip, #1 + ldrh r1, [r6, r2] + add ip, ip, #1 + cmp ip, r0 + mla r1, r5, r1, r3 + strh r1, [r7, r2] + lsr r3, r1, #0x10 + blt _022D3FF0 +_022D4010: + cmp ip, r4 + lsllt r0, ip, #1 + addlt ip, ip, #1 + sub r1, r4, ip + strhlt r3, [r7, r0] + lsl r2, r1, #1 + add r0, r7, ip, lsl #1 + mov r1, #0 + bl FUN_0207C40C + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022D3FC0 + + arm_func_start ov00_022D4038 +ov00_022D4038: @ 0x022D4038 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sb, r1 + mov r8, r2 + mov sl, r0 + mov r0, sb + mov r1, r8 + bl ov00_022D3C08 + mov fp, r0 + cmp r8, fp, lsl #1 + lsl r0, fp, #1 + ble _022D4078 + sub r1, r8, r0 + add r0, sl, r0, lsl #1 + lsl r2, r1, #1 + mov r1, #0 + bl FUN_0207C40C +_022D4078: + cmp fp, #0 + mov r4, #0 + ble _022D40CC + mov r5, r4 + sub r2, r8, #1 +_022D408C: + cmp r5, r8 + bge _022D40CC + lsl r0, r4, #1 + ldrh r3, [sb, r0] + lsl r0, r5, #1 + cmp r5, r2 + mul r1, r3, r3 + strh r1, [sl, r0] + beq _022D40CC + add r4, r4, #1 + lsr r1, r1, #0x10 + add r0, sl, r0 + strh r1, [r0, #2] + cmp r4, fp + add r5, r5, #2 + blt _022D408C +_022D40CC: + mov r6, #0 + cmp fp, #0 + pople {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022D40D8: + lsl r0, r6, #1 + add r4, r6, #1 + str r0, [sp] + b _022D4148 +_022D40E8: + lsl r0, r4, #1 + ldrh r1, [sb, r0] + ldr r0, [sp] + ldrh r0, [sb, r0] + mul r7, r1, r0 + ldr r0, _022D4168 @ =0x7FFF8000 + cmp r7, r0 + mov r0, sl + bhi _022D4120 + mov r2, r5 + mov r3, r8 + lsl r1, r7, #1 + bl ov00_022D3EE0 + b _022D4144 +_022D4120: + mov r1, r7 + mov r2, r5 + mov r3, r8 + bl ov00_022D3EE0 + mov r1, r7 + mov r2, r5 + mov r0, sl + mov r3, r8 + bl ov00_022D3EE0 +_022D4144: + add r4, r4, #1 +_022D4148: + cmp r4, fp + addlt r5, r6, r4 + cmplt r5, r8 + blt _022D40E8 + add r6, r6, #1 + cmp r6, fp + blt _022D40D8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022D4168: .4byte 0x7FFF8000 + arm_func_end ov00_022D4038 + + arm_func_start ov00_022D416C +ov00_022D416C: @ 0x022D416C + ldrh r1, [r0] + mov r0, #0 + bx lr + arm_func_end ov00_022D416C + + arm_func_start ov00_022D4178 +ov00_022D4178: @ 0x022D4178 + ldrh r1, [r0] + ldrh r0, [r0, #-2] + lsl r0, r0, #0x10 + bx lr + arm_func_end ov00_022D4178 + + arm_func_start ov00_022D4188 +ov00_022D4188: @ 0x022D4188 + ldrh r1, [r0] + ldrh r2, [r0, #-2] + ldrh r3, [r0, #-4] + orr r0, r3, r2, lsl #16 + bx lr + arm_func_end ov00_022D4188 + + arm_func_start ov00_022D419C +ov00_022D419C: @ 0x022D419C + ldrh r2, [r0] + ldrh r3, [r0, #-2] + orr r1, r3, r2, lsl #16 + ldrh r2, [r0, #-4] + ldrh r3, [r0, #-6] + orr r0, r3, r2, lsl #16 + bx lr + arm_func_end ov00_022D419C + + arm_func_start ov00_022D41B8 +ov00_022D41B8: @ 0x022D41B8 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x20 + ldr sb, [sp, #0x48] + ldr r8, [sp, #0x4c] + str r1, [sp, #4] + add r6, r8, sb, lsl #1 + str r0, [sp] + mov sl, r2 + mov r0, r6 + lsl r2, sb, #2 + mov r1, #0 + str r3, [sp, #8] + add r7, r6, sb, lsl #1 + bl FUN_0207C40C + ldr r0, [sp, #4] + mov r1, sb + bl ov00_022D3C08 + mov fp, r0 + mov r0, sl + mov r1, sb + bl ov00_022D3C08 + mov r5, r0 + cmp fp, #0 + cmpgt r5, #0 + ble _022D4350 + sub r0, sb, fp + add r0, r5, r0 + sub r4, r0, #1 + cmp r4, sb + blt _022D4244 + ldr r0, [sp, #4] + mov r1, r7 + lsl r2, sb, #1 + bl FUN_0207C4C8 + b _022D4350 +_022D4244: + ldr r0, [sp, #4] + add r1, r6, r4, lsl #1 + lsl r2, fp, #1 + bl FUN_0207C4C8 + cmp r5, #2 + ble _022D4278 + add r0, sl, r5, lsl #1 + sub r0, r0, #2 + lsl fp, r5, #1 + bl ov00_022D4188 + str r0, [sp, #0x18] + str r1, [sp, #0x10] + b _022D42AC +_022D4278: + add r0, sl, r5, lsl #1 + cmp r5, #1 + sub r0, r0, #2 + ble _022D429C + lsl fp, r5, #1 + bl ov00_022D4178 + str r0, [sp, #0x18] + str r1, [sp, #0x10] + b _022D42AC +_022D429C: + lsl fp, r5, #1 + bl ov00_022D416C + str r0, [sp, #0x18] + str r1, [sp, #0x10] +_022D42AC: + cmp r4, sb + bge _022D4350 + lsl r0, sb, #1 + sub r0, r0, #1 + lsl r0, r0, #1 + str r0, [sp, #0x14] +_022D42C4: + ldr r2, [sp, #0x14] + mov r1, r6 + add r0, r6, #2 + bl FUN_020872BC + add r0, r7, fp + bl ov00_022D419C + ldr r2, [sp, #0x18] + ldr r3, [sp, #0x10] + bl FUN_0208FE3C + mov r5, r0 + ldr r0, _022D4394 @ =0x0000FFFF + cmp r5, r0 + movhi r5, r0 +_022D42F8: + lsl r2, r5, #0x10 + mov r0, r8 + mov r1, sl + lsr r2, r2, #0x10 + mov r3, sb + bl ov00_022D3FC0 + mov r0, r7 + mov r1, r8 + mov r2, sb + bl ov00_022D3EA8 + cmp r0, #0 + sublt r5, r5, #1 + blt _022D42F8 + mov r0, r7 + mov r1, r7 + mov r2, r8 + mov r3, sb + bl ov00_022D3D98 + strh r5, [r6] + add r4, r4, #1 + cmp r4, sb + blt _022D42C4 +_022D4350: + ldr r0, [sp] + cmp r0, #0 + beq _022D436C + ldr r1, [sp] + mov r0, r6 + lsl r2, sb, #1 + bl FUN_0207C4C8 +_022D436C: + ldr r0, [sp, #8] + cmp r0, #0 + addeq sp, sp, #0x20 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [sp, #8] + mov r0, r7 + lsl r2, sb, #1 + bl FUN_0207C4C8 + add sp, sp, #0x20 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022D4394: .4byte 0x0000FFFF + arm_func_end ov00_022D41B8 + + arm_func_start ov00_022D4398 +ov00_022D4398: @ 0x022D4398 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0xc + ldr r4, _022D4524 @ =0x0232508C + mov r8, r3 + ldr r3, [r4] + mov sl, r0 + lsl r0, r8, #3 + ldr r7, [sp, #0x30] + str r1, [sp, #8] + mov sb, r2 + blx r3 + movs r4, r0 + addeq sp, sp, #0xc + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + sub r1, r8, #1 + add r0, sl, #2 + lsl r2, r1, #1 + mov r1, #0 + add r5, r4, r8, lsl #1 + bl FUN_0207C40C + mov r2, #1 + mov r0, sb + mov r1, r8 + strh r2, [sl] + bl ov00_022D3C08 + sub r0, r8, r0 + lsl r6, r0, #4 + cmp r6, r8, lsl #4 + bhs _022D444C + mov r2, #0x8000 +_022D4410: + sub r0, r8, r6, asr #4 + add r0, sb, r0, lsl #1 + ldrh r0, [r0, #-2] + and r1, r6, #0xf + tst r0, r2, lsr r1 + beq _022D4440 + ldr r0, [sp, #8] + mov r1, sl + lsl r2, r8, #1 + bl FUN_0207C4C8 + add r6, r6, #1 + b _022D444C +_022D4440: + add r6, r6, #1 + cmp r6, r8, lsl #4 + blo _022D4410 +_022D444C: + cmp r6, r8, lsl #4 + bhs _022D450C + lsl fp, r8, #1 +_022D4458: + mov r0, r4 + mov r1, sl + mov r2, r8 + bl ov00_022D4038 + mov r0, r4 + mov r1, sl + mov r2, fp + bl FUN_0207C4C8 + cmp r7, #0 + beq _022D449C + str r8, [sp] + mov r0, #0 + mov r1, sl + mov r2, r7 + mov r3, sl + str r5, [sp, #4] + bl ov00_022D41B8 +_022D449C: + sub r0, r8, r6, asr #4 + add r0, sb, r0, lsl #1 + ldrh r1, [r0, #-2] + and r2, r6, #0xf + mov r0, #0x8000 + tst r1, r0, lsr r2 + beq _022D4500 + ldr r2, [sp, #8] + mov r0, r4 + mov r1, sl + mov r3, r8 + bl ov00_022D3F14 + mov r0, r4 + mov r1, sl + mov r2, fp + bl FUN_0207C4C8 + cmp r7, #0 + beq _022D4500 + str r8, [sp] + mov r0, #0 + mov r1, sl + mov r2, r7 + mov r3, sl + str r5, [sp, #4] + bl ov00_022D41B8 +_022D4500: + add r6, r6, #1 + cmp r6, r8, lsl #4 + blo _022D4458 +_022D450C: + ldr r1, _022D4528 @ =0x023250B8 + mov r0, r4 + ldr r1, [r1] + blx r1 + add sp, sp, #0xc + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022D4524: .4byte 0x0232508C +_022D4528: .4byte 0x023250B8 + arm_func_end ov00_022D4398 + + arm_func_start ov00_022D452C +ov00_022D452C: @ 0x022D452C + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x14 + ldr sb, [sp, #0x38] + mov sl, r3 + add fp, sb, sl, lsl #1 + add r4, fp, sl, lsl #1 + add r5, r4, sl, lsl #1 + add r6, r5, sl, lsl #1 + add r7, r6, sl, lsl #1 + str r0, [sp, #8] + mov r0, r1 + add r1, r7, sl, lsl #1 + str r1, [sp, #0x10] + lsl r8, sl, #1 + str r2, [sp, #0xc] + mov r1, sb + mov r2, r8 + bl FUN_0207C4C8 + ldr r0, [sp, #0xc] + mov r1, r4 + mov r2, r8 + bl FUN_0207C4C8 + mov r0, #1 + strh r0, [r4, r8] + mov r0, sb + mov r1, sl + bl ov00_022D3C28 + cmp r0, #0 + ble _022D463C +_022D45A0: + ldr r3, [sp, #0x10] + str sl, [sp] + str r3, [sp, #4] + mov r0, fp + mov r1, r4 + mov r2, sb + mov r3, r7 + bl ov00_022D41B8 + mov r0, sb + mov r1, r4 + mov r2, r8 + bl FUN_0207C4C8 + mov r0, r7 + mov r1, sb + mov r2, r8 + bl FUN_0207C4C8 + mov r0, r7 + mov r1, fp + mov r2, r5 + mov r3, sl + bl ov00_022D3F14 + mov r0, r7 + mov r1, r6 + mov r2, r7 + mov r3, sl + bl ov00_022D3D98 + mov r0, r5 + mov r1, r6 + mov r2, r8 + bl FUN_0207C4C8 + mov r0, r7 + mov r1, r5 + mov r2, r8 + bl FUN_0207C4C8 + mov r0, sb + mov r1, sl + bl ov00_022D3C28 + cmp r0, #0 + bgt _022D45A0 +_022D463C: + ldr r2, [sp, #0xc] + mov r0, r6 + mov r1, r6 + mov r3, sl + bl ov00_022D3C58 + ldr r2, [sp, #0xc] + ldr r3, [sp, #8] + ldr r4, [sp, #0x10] + str sl, [sp] + mov r1, r6 + mov r0, #0 + str r4, [sp, #4] + bl ov00_022D41B8 + add sp, sp, #0x14 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022D452C + + arm_func_start ov00_022D4678 +ov00_022D4678: @ 0x022D4678 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r6, r3 + lsl r4, r6, #1 + mov r8, r2 + mov r2, r4 + mov r7, r0 + mov sb, r1 + ldr r5, [sp, #0x20] + bl FUN_0207C4C8 + cmp r8, #1 + bne _022D46B8 + mov r0, r7 + mov r1, sb + mov r2, r6 + bl ov00_022D4038 + b _022D46D4 +_022D46B8: + cmp r8, #0 + beq _022D46D4 + mov r0, r7 + mov r1, sb + mov r2, r8 + mov r3, r6 + bl ov00_022D3F14 +_022D46D4: + ldr r0, [sp, #0x2c] + ldr r2, [sp, #0x28] + mov r1, r7 + mov r3, r5 + bl ov00_022D3F14 + sub r1, r6, r5 + ldr r0, [sp, #0x2c] + lsl r8, r1, #1 + mov r2, r8 + add r0, r0, r5, lsl #1 + mov r1, #0 + bl FUN_0207C40C + ldr r0, [sp, #0x30] + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x24] + mov r3, r6 + bl ov00_022D3F14 + mov r0, r7 + mov r1, r7 + ldr r2, [sp, #0x30] + mov r3, r6 + bl ov00_022D3C58 + mov r2, r8 + mov r0, r7 + add r1, r7, r5, lsl #1 + bl FUN_020872BC + add r0, r7, r6, lsl #1 + sub r0, r0, r5, lsl #1 + lsl r2, r5, #1 + mov r1, #0 + bl FUN_0207C40C + mov r0, r7 + ldr r1, [sp, #0x24] + mov r2, r6 + bl ov00_022D3EA8 + cmp r0, #0 + beq _022D4774 + cmp r0, #1 + beq _022D4788 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022D4774: + mov r0, r7 + mov r2, r4 + mov r1, #0 + bl FUN_0207C40C + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022D4788: + ldr r2, [sp, #0x24] + mov r0, r7 + mov r1, r7 + mov r3, r6 + bl ov00_022D3D98 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_022D4678 + + arm_func_start ov00_022D47A0 +ov00_022D47A0: @ 0x022D47A0 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x2c + mov sl, r3 + mov r3, #0x16 + mul r4, sl, r3 + ldr r3, _022D49A4 @ =0x0232508C + mov fp, r0 + ldr r3, [r3] + mov r0, r4 + ldr sb, [sp, #0x50] + str r1, [sp, #0x14] + str r2, [sp, #0x18] + blx r3 + str r0, [sp, #0x28] + cmp r0, #0 + addeq sp, sp, #0x2c + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r2, r4 + mov r1, #0 + bl FUN_0207C40C + ldr r0, [sp, #0x28] + mov r1, sl + add r6, r0, sl, lsl #1 + add r0, r6, sl, lsl #1 + add r7, r0, sl, lsl #1 + add r8, r7, sl, lsl #1 + str r0, [sp, #0x24] + add r0, r8, sl, lsl #1 + str r0, [sp, #0x20] + add r5, r0, sl, lsl #1 + mov r0, sb + bl ov00_022D3C08 + mov r4, r0 + ldr r0, [sp, #0x28] + mov r2, #1 + lsl r1, r4, #1 + strh r2, [r0, r1] + ldr r0, [sp, #0x24] + ldr r1, [sp, #0x28] + str r0, [sp] + mov r0, r6 + mov r2, sb + mov r3, sl + bl ov00_022D452C + ldr r1, [sp, #0x28] + mov r0, r7 + mov r2, r6 + mov r3, sl + bl ov00_022D3F14 + mov r0, r6 + mov r1, r7 + mov r2, #1 + mov r3, sl + bl ov00_022D3E40 + str sl, [sp] + mov r0, r6 + mov r1, r6 + mov r2, sb + mov r3, #0 + str r5, [sp, #4] + bl ov00_022D41B8 + ldr r1, [sp, #0x14] + ldr r0, [sp, #0x24] + ldr r2, [sp, #0x28] + mov r3, sl + bl ov00_022D3F14 + ldr r1, [sp, #0x24] + str sl, [sp] + mov r0, #0 + mov r2, sb + mov r3, r1 + str r5, [sp, #4] + bl ov00_022D41B8 + str sl, [sp] + ldr r1, [sp, #0x28] + mov r0, #0 + mov r2, sb + mov r3, fp + str r5, [sp, #4] + bl ov00_022D41B8 + lsls r0, r4, #4 + mov r5, #0 + str r0, [sp, #0x1c] + beq _022D4968 +_022D48F0: + stm sp, {r4, sb} + str r6, [sp, #8] + str r7, [sp, #0xc] + ldr r1, [sp, #0x20] + mov r0, fp + mov r2, #1 + mov r3, sl + str r8, [sp, #0x10] + bl ov00_022D4678 + ldr r1, [sp, #0x18] + sub r2, r4, r5, asr #4 + add r1, r1, r2, lsl #1 + ldrh r2, [r1, #-2] + and r0, r5, #0xf + mov r1, #0x8000 + tst r2, r1, lsr r0 + beq _022D4958 + stm sp, {r4, sb} + str r6, [sp, #8] + str r7, [sp, #0xc] + ldr r1, [sp, #0x20] + ldr r2, [sp, #0x24] + mov r0, fp + mov r3, sl + str r8, [sp, #0x10] + bl ov00_022D4678 +_022D4958: + ldr r0, [sp, #0x1c] + add r5, r5, #1 + cmp r5, r0 + blo _022D48F0 +_022D4968: + stm sp, {r4, sb} + str r6, [sp, #8] + str r7, [sp, #0xc] + ldr r1, [sp, #0x20] + mov r0, fp + mov r3, sl + mov r2, #0 + str r8, [sp, #0x10] + bl ov00_022D4678 + ldr r1, _022D49A8 @ =0x023250B8 + ldr r0, [sp, #0x28] + ldr r1, [r1] + blx r1 + add sp, sp, #0x2c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022D49A4: .4byte 0x0232508C +_022D49A8: .4byte 0x023250B8 + arm_func_end ov00_022D47A0 + + arm_func_start ov00_022D49AC +ov00_022D49AC: @ 0x022D49AC + push {r4, r5, r6, lr} + mov r6, r1 + mov r5, r2 + lsl r2, r3, #1 + mov r1, #0 + mov r4, r0 + bl FUN_0207C40C + sub r0, r5, #1 + cmp r5, #1 + add r6, r6, r0 + ble _022D49F8 +_022D49D8: + ldrb r1, [r6] + ldrb r0, [r6, #-1] + sub r5, r5, #2 + cmp r5, #1 + add r0, r1, r0, lsl #8 + strh r0, [r4], #2 + sub r6, r6, #2 + bgt _022D49D8 +_022D49F8: + cmp r5, #0 + ldrbgt r0, [r6] + strhgt r0, [r4] + pop {r4, r5, r6, pc} + arm_func_end ov00_022D49AC + + arm_func_start ov00_022D4A08 +ov00_022D4A08: @ 0x022D4A08 + sub r3, r2, #1 + cmp r2, #1 + add r0, r0, r3 + ble _022D4A3C +_022D4A18: + ldrh r3, [r1] + sub ip, r0, #1 + sub r2, r2, #2 + strb r3, [r0], #-2 + ldrh r3, [r1], #2 + cmp r2, #1 + asr r3, r3, #8 + strb r3, [ip] + bgt _022D4A18 +_022D4A3C: + cmp r2, #0 + ldrhgt r1, [r1] + strbgt r1, [r0] + bx lr + arm_func_end ov00_022D4A08 + + arm_func_start ov00_020800FC +ov00_020800FC: @ 0x022D4A4C + ldr ip, _022D4A54 @ =FUN_020800FC + bx ip + .align 2, 0 +_022D4A54: .4byte FUN_020800FC + arm_func_end ov00_020800FC + + arm_func_start ov00_0208013C +ov00_0208013C: @ 0x022D4A58 + ldr ip, _022D4A60 @ =FUN_0208013C + bx ip + .align 2, 0 +_022D4A60: .4byte FUN_0208013C + arm_func_end ov00_0208013C + + arm_func_start ov00_02080204 +ov00_02080204: @ 0x022D4A64 + ldr ip, _022D4A6C @ =FUN_02080204 + bx ip + .align 2, 0 +_022D4A6C: .4byte FUN_02080204 + arm_func_end ov00_02080204 + + arm_func_start ov00_022D4A70 +ov00_022D4A70: @ 0x022D4A70 + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + bl FUN_0207B7E4 + ldr r2, _022D4B84 @ =0x02326C4C + mov r4, r0 + ldr r1, [r2] + cmp r1, #0 + beq _022D4AA0 + bl FUN_0207B7F8 + mov r0, #1 + pop {r4, r5, r6, pc} +_022D4AA0: + cmp r6, #0 + bne _022D4AB4 + bl FUN_0207B7F8 + mov r0, #1 + pop {r4, r5, r6, pc} +_022D4AB4: + tst r6, #0x1f + beq _022D4AC8 + bl FUN_0207B7F8 + mov r0, #1 + pop {r4, r5, r6, pc} +_022D4AC8: + cmp r5, #0x2300 + bhs _022D4ADC + bl FUN_0207B7F8 + mov r0, #6 + pop {r4, r5, r6, pc} +_022D4ADC: + str r6, [r2] + add r0, r6, #0x2000 + mov r1, #1 + str r1, [r0, #0x260] + ldr r1, [r2] + mov r0, #0 + add r1, r1, #0x2200 + strh r0, [r1, #0x80] + ldr r1, [r2] + add r1, r1, #0x2200 + strh r0, [r1, #0x68] + ldr r1, [r2] + add r1, r1, #0x2000 + strb r0, [r1, #0x26a] + ldr r1, [r2] + add r1, r1, #0x2000 + strb r0, [r1, #0x26b] + ldr r1, [r2] + add r1, r1, #0x2200 + strh r0, [r1, #0x82] + ldr r1, [r2] + add r1, r1, #0x2200 + strh r0, [r1, #0xf8] + bl ov00_022D59D4 + bl ov00_022D705C + bl FUN_0207ADCC + cmp r0, #0 + bne _022D4B50 + bl FUN_0207AD54 +_022D4B50: + bl FUN_0207B030 + cmp r0, #0 + bne _022D4B60 + bl FUN_0207AFF0 +_022D4B60: + ldr r0, _022D4B84 @ =0x02326C4C + ldr r0, [r0] + add r0, r0, #0x2cc + add r0, r0, #0x2000 + bl FUN_0207B040 + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_022D4B84: .4byte 0x02326C4C + arm_func_end ov00_022D4A70 + + arm_func_start ov00_022D4B88 +ov00_022D4B88: @ 0x022D4B88 + push {r3, lr} + bl FUN_0207B7E4 + ldr r2, _022D4BDC @ =0x02326C4C + ldr r1, [r2] + cmp r1, #0 + bne _022D4BAC + bl FUN_0207B7F8 + mov r0, #1 + pop {r3, pc} +_022D4BAC: + add r1, r1, #0x2000 + ldr r1, [r1, #0x260] + cmp r1, #1 + beq _022D4BC8 + bl FUN_0207B7F8 + mov r0, #1 + pop {r3, pc} +_022D4BC8: + mov r1, #0 + str r1, [r2] + bl FUN_0207B7F8 + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_022D4BDC: .4byte 0x02326C4C + arm_func_end ov00_022D4B88 + + arm_func_start ov00_022D4BE0 +ov00_022D4BE0: @ 0x022D4BE0 + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + bl FUN_0207B7E4 + ldr r1, _022D4DD8 @ =0x02326C4C + mov r4, r0 + ldr r1, [r1] + cmp r1, #0 + bne _022D4C10 + bl FUN_0207B7F8 + mov r0, #1 + pop {r4, r5, r6, pc} +_022D4C10: + add r1, r1, #0x2000 + ldr r1, [r1, #0x260] + cmp r1, #1 + beq _022D4C34 + cmp r1, #2 + beq _022D4C44 + cmp r1, #3 + beq _022D4C50 + b _022D4C5C +_022D4C34: + mov r0, r6 + mov r1, r5 + bl ov00_022D571C + b _022D4C68 +_022D4C44: + bl FUN_0207B7F8 + mov r0, #2 + pop {r4, r5, r6, pc} +_022D4C50: + bl FUN_0207B7F8 + mov r0, #0 + pop {r4, r5, r6, pc} +_022D4C5C: + bl FUN_0207B7F8 + mov r0, #1 + pop {r4, r5, r6, pc} +_022D4C68: + ldr r0, _022D4DD8 @ =0x02326C4C + ldr r0, [r0] + add r1, r0, #0x2000 + ldr r1, [r1, #0x26c] + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl ov00_022BE964 + cmp r0, #6 + addls pc, pc, r0, lsl #2 + b _022D4CD4 +_022D4C90: @ jump table + b _022D4CEC @ case 0 + b _022D4CD4 @ case 1 + b _022D4CD4 @ case 2 + b _022D4CAC @ case 3 + b _022D4CC4 @ case 4 + b _022D4CD4 @ case 5 + b _022D4CD4 @ case 6 +_022D4CAC: + mov r0, #0xb + bl ov00_022D5B1C + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #7 + pop {r4, r5, r6, pc} +_022D4CC4: + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #5 + pop {r4, r5, r6, pc} +_022D4CD4: + mov r0, #0xb + bl ov00_022D5B1C + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #7 + pop {r4, r5, r6, pc} +_022D4CEC: + bl ov00_022BF640 + cmp r0, #0 + bne _022D4D2C + bl ov00_022BEB74 + cmp r0, #0 + beq _022D4D1C + mov r0, #0xb + bl ov00_022D5B1C + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #7 + pop {r4, r5, r6, pc} +_022D4D1C: + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #5 + pop {r4, r5, r6, pc} +_022D4D2C: + ldr r0, _022D4DDC @ =ov00_022D5CC8 + bl ov00_022BF2C4 + cmp r0, #0 + beq _022D4D54 + mov r0, #0xb + bl ov00_022D5B1C + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #7 + pop {r4, r5, r6, pc} +_022D4D54: + ldr r0, _022D4DE0 @ =0x022D5D40 + bl ov00_022BF9E0 + cmp r0, #2 + beq _022D4D78 + cmp r0, #3 + beq _022D4DB0 + cmp r0, #8 + beq _022D4D98 + b _022D4DB0 +_022D4D78: + mov r0, #2 + bl ov00_022D5B1C + ldr r0, _022D4DD8 @ =0x02326C4C + mov r1, #1 + ldr r0, [r0] + add r0, r0, #0x2200 + strh r1, [r0, #0x80] + b _022D4DC8 +_022D4D98: + mov r0, #0xc + bl ov00_022D5B1C + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #1 + pop {r4, r5, r6, pc} +_022D4DB0: + mov r0, #0xb + bl ov00_022D5B1C + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #7 + pop {r4, r5, r6, pc} +_022D4DC8: + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #3 + pop {r4, r5, r6, pc} + .align 2, 0 +_022D4DD8: .4byte 0x02326C4C +_022D4DDC: .4byte ov00_022D5CC8 +_022D4DE0: .4byte 0x022D5D40 + arm_func_end ov00_022D4BE0 + + arm_func_start ov00_022D4DE4 +ov00_022D4DE4: @ 0x022D4DE4 + push {r4, lr} + bl FUN_0207B7E4 + ldr r1, _022D4ECC @ =0x02326C4C + mov r4, r0 + ldr r1, [r1] + cmp r1, #0 + bne _022D4E0C + bl FUN_0207B7F8 + mov r0, #1 + pop {r4, pc} +_022D4E0C: + add r1, r1, #0x2000 + ldr r1, [r1, #0x260] + cmp r1, #1 + beq _022D4E38 + cmp r1, #3 + beq _022D4E50 + cmp r1, #4 + bne _022D4E44 + bl FUN_0207B7F8 + mov r0, #2 + pop {r4, pc} +_022D4E38: + bl FUN_0207B7F8 + mov r0, #0 + pop {r4, pc} +_022D4E44: + bl FUN_0207B7F8 + mov r0, #1 + pop {r4, pc} +_022D4E50: + ldr r0, _022D4ED0 @ =0x022D5D40 + bl ov00_022BFAD4 + cmp r0, #2 + beq _022D4E74 + cmp r0, #3 + beq _022D4EA4 + cmp r0, #8 + beq _022D4E94 + b _022D4EA4 +_022D4E74: + mov r0, #4 + bl ov00_022D5B1C + ldr r0, _022D4ECC @ =0x02326C4C + mov r1, #2 + ldr r0, [r0] + add r0, r0, #0x2200 + strh r1, [r0, #0x80] + b _022D4EBC +_022D4E94: + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #4 + pop {r4, pc} +_022D4EA4: + mov r0, #0xb + bl ov00_022D5B1C + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #7 + pop {r4, pc} +_022D4EBC: + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_022D4ECC: .4byte 0x02326C4C +_022D4ED0: .4byte 0x022D5D40 + arm_func_end ov00_022D4DE4 + + arm_func_start ov00_022D4ED4 +ov00_022D4ED4: @ 0x022D4ED4 + push {r3, lr} + cmp r0, #0 + cmpne r1, #0 + bne _022D4EEC + bl ov00_022D506C + pop {r3, pc} +_022D4EEC: + bl ov00_022D4EF4 + pop {r3, pc} + arm_func_end ov00_022D4ED4 + + arm_func_start ov00_022D4EF4 +ov00_022D4EF4: @ 0x022D4EF4 push {r3, r4, r5, r6, r7, lr} mov r7, r0 - ldr r4, [r7, #0x2c] - ldr r0, [r7, #0x28] - mov r6, r2 - str r1, [r7, #0x30] - sub r0, r0, r4 - cmp r6, r0 - movgt r6, r0 - cmp r6, #0 - movlt r6, #0 - str r2, [r7, #0x34] - mov r5, r3 - str r6, [r7, #0x38] - cmp r5, #0 - ldreq r0, [r7, #0xc] - mov r1, #0 - orreq r0, r0, #4 - streq r0, [r7, #0xc] - mov r0, r7 - bl FUN_0207ebe4 - cmp r5, #0 - bne _0207F5C4 - mov r0, r7 - bl FUN_0207f748 - cmp r0, #0 - ldrne r0, [r7, #0x2c] - subne r6, r0, r4 - mvneq r6, #0 -_0207F5C4: - mov r0, r6 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0207F550 - - arm_func_start FUN_0207f5cc -FUN_0207f5cc: @ 0x0207F5CC - push {r3, r4, r5, lr} - sub sp, sp, #0x48 - mov r5, r0 - add r0, sp, #0 - mov r4, r1 - bl FileInit - add r0, sp, #0 - mov r1, r4 - mov r2, r5 - mov r3, #0 - bl FUN_0207f40c - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - add sp, sp, #0x48 - pop {r3, r4, r5, pc} - arm_func_end FUN_0207f5cc - - arm_func_start FUN_0207f60c -FUN_0207f60c: @ 0x0207F60C - push {r4, lr} - mov r4, r0 - str r1, [r4, #8] - ldr ip, [sp, #8] - mov r1, #7 - str ip, [r4, #0x38] - str r2, [r4, #0x30] - str r3, [r4, #0x34] - bl FUN_0207ebe4 - cmp r0, #0 - moveq r0, #0 - popeq {r4, pc} - ldr r1, [r4, #0xc] - mov r0, #1 - orr r1, r1, #0x10 - bic r1, r1, #0x20 - str r1, [r4, #0xc] - pop {r4, pc} - arm_func_end FUN_0207f60c - - arm_func_start FUN_0207f654 -FUN_0207f654: @ 0x0207F654 - push {r0, r1, r2, r3} - push {r4, lr} - ldr r1, [sp, #0xc] + mov r6, r1 + mov r5, r2 + bl FUN_0207B7E4 + ldr r1, _022D5064 @ =0x02326C4C mov r4, r0 + ldr r1, [r1] cmp r1, #0 - moveq r0, #0 - popeq {r4, lr} - addeq sp, sp, #0x10 - bxeq lr - str r1, [r4, #8] - str r1, [r4, #0x30] - ldr r2, [sp, #0x10] + bne _022D4F28 + bl FUN_0207B7F8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_022D4F28: + add r1, r1, #0x2000 + ldr r1, [r1, #0x260] + cmp r1, #3 + beq _022D4F98 + cmp r1, #5 + beq _022D4F4C + cmp r1, #6 + beq _022D4F6C + b _022D4F8C +_022D4F4C: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl ov00_022D583C + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #2 + pop {r3, r4, r5, r6, r7, pc} +_022D4F6C: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl ov00_022D583C + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_022D4F8C: + bl FUN_0207B7F8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_022D4F98: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl ov00_022D583C + ldr r0, _022D5064 @ =0x02326C4C + ldr r0, [r0] + add r1, r0, #0x2200 + add r0, r0, #0x2000 + ldrh r1, [r1, #0x8c] + ldr r0, [r0, #0x288] + bl FUN_0207A2A4 + ldr r2, _022D5064 @ =0x02326C4C + ldr r0, _022D5068 @ =0x022D5FFC + ldr r1, [r2] + add r1, r1, #0x2000 + ldr r3, [r1, #0x284] + add r3, r3, #1 + str r3, [r1, #0x284] + ldr r1, [r2] + add r1, r1, #0x288 + add r1, r1, #0x2000 + bl ov00_022BFED8 + cmp r0, #2 + beq _022D500C + cmp r0, #3 + beq _022D503C + cmp r0, #8 + beq _022D502C + b _022D503C +_022D500C: + mov r0, #5 + bl ov00_022D5B1C + ldr r0, _022D5064 @ =0x02326C4C + mov r1, #3 + ldr r0, [r0] + add r0, r0, #0x2200 + strh r1, [r0, #0x80] + b _022D5054 +_022D502C: + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #4 + pop {r3, r4, r5, r6, r7, pc} +_022D503C: + mov r0, #0xb + bl ov00_022D5B1C + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #7 + pop {r3, r4, r5, r6, r7, pc} +_022D5054: + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #3 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022D5064: .4byte 0x02326C4C +_022D5068: .4byte 0x022D5FFC + arm_func_end ov00_022D4EF4 + + arm_func_start ov00_022D506C +ov00_022D506C: @ 0x022D506C + push {r4, lr} + bl FUN_0207B7E4 + ldr r1, _022D510C @ =0x02326C4C + mov r4, r0 + ldr r1, [r1] + cmp r1, #0 + bne _022D5094 + bl FUN_0207B7F8 + mov r0, #1 + pop {r4, pc} +_022D5094: + add r1, r1, #0x2000 + ldr r1, [r1, #0x260] + cmp r1, #3 + beq _022D50E4 + cmp r1, #6 + beq _022D50B8 + cmp r1, #7 + beq _022D50D8 + b _022D50F0 +_022D50B8: + mov r0, #7 + bl ov00_022D5B1C + ldr r0, _022D510C @ =0x02326C4C + mov r1, #4 + ldr r0, [r0] + add r0, r0, #0x2200 + strh r1, [r0, #0x80] + b _022D50FC +_022D50D8: + bl FUN_0207B7F8 + mov r0, #2 + pop {r4, pc} +_022D50E4: + bl FUN_0207B7F8 + mov r0, #0 + pop {r4, pc} +_022D50F0: + bl FUN_0207B7F8 + mov r0, #1 + pop {r4, pc} +_022D50FC: + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_022D510C: .4byte 0x02326C4C + arm_func_end ov00_022D506C + + arm_func_start ov00_022D5110 +ov00_022D5110: @ 0x022D5110 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + mov r6, r1 + mov r5, r2 + bl FUN_0207B7E4 + ldr r2, _022D5308 @ =0x02326C4C + mov r4, r0 + ldr ip, [r2] + cmp ip, #0 + bne _022D5144 + bl FUN_0207B7F8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_022D5144: + add r1, ip, #0x2000 + ldr r3, [r1, #0x260] + cmp r3, #3 + beq _022D5168 + cmp r3, #8 + beq _022D5258 + cmp r3, #9 + beq _022D5264 + b _022D5270 +_022D5168: + cmp r7, #0 + bne _022D517C + bl FUN_0207B7F8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_022D517C: + ldrh r3, [r7, #0x3c] + cmp r3, #0 + beq _022D5194 + bl FUN_0207B7F8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_022D5194: + cmp r6, #0 + beq _022D520C + ldrb r3, [r6] + cmp r3, #4 + ldrblo r0, [r6, #1] + cmplo r0, #4 + blo _022D51C0 + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_022D51C0: + strb r3, [r1, #0x250] + ldr r0, [r2] + ldrb r1, [r6, #1] + add r0, r0, #0x2000 + strb r1, [r0, #0x251] + ldr r1, [r2] + mov r2, #0x50 + add r0, r1, #0x2000 + ldrb r0, [r0, #0x250] + cmp r0, #0 + bne _022D51FC + add r0, r1, #0x2200 + mov r1, #0 + bl FUN_0207C40C + b _022D521C +_022D51FC: + add r0, r6, #2 + add r1, r1, #0x2200 + bl FUN_0207C4C8 + b _022D521C +_022D520C: + add r0, ip, #0x2200 + mov r1, #0 + mov r2, #0x52 + bl FUN_0207C40C +_022D521C: + ldr r1, _022D5308 @ =0x02326C4C + mov r0, r7 + ldr r1, [r1] + mov r2, #0xc0 + add r1, r1, #0x2140 + bl FUN_0207C4C8 + ldr r1, _022D5308 @ =0x02326C4C + mov r0, r5 + ldr r1, [r1] + add r1, r1, #0x2100 + ldrh r2, [r1, #0x6e] + orr r2, r2, #3 + strh r2, [r1, #0x70] + bl ov00_022D5670 + b _022D527C +_022D5258: + bl FUN_0207B7F8 + mov r0, #2 + pop {r3, r4, r5, r6, r7, pc} +_022D5264: + bl FUN_0207B7F8 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_022D5270: + bl FUN_0207B7F8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_022D527C: + ldr r1, _022D530C @ =0x0000FFFF + ldr r0, _022D5310 @ =0x022D5D40 + mov r3, r1 + mov r2, #0x50 + str r1, [sp] + bl ov00_022C15B0 + cmp r0, #2 + beq _022D52B0 + cmp r0, #3 + beq _022D52E0 + cmp r0, #8 + beq _022D52D0 + b _022D52E0 +_022D52B0: + mov r0, #8 + bl ov00_022D5B1C + ldr r0, _022D5308 @ =0x02326C4C + mov r1, #5 + ldr r0, [r0] + add r0, r0, #0x2200 + strh r1, [r0, #0x80] + b _022D52F8 +_022D52D0: + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #4 + pop {r3, r4, r5, r6, r7, pc} +_022D52E0: + mov r0, #0xb + bl ov00_022D5B1C + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #7 + pop {r3, r4, r5, r6, r7, pc} +_022D52F8: + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #3 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022D5308: .4byte 0x02326C4C +_022D530C: .4byte 0x0000FFFF +_022D5310: .4byte 0x022D5D40 + arm_func_end ov00_022D5110 + + arm_func_start ov00_022D5314 +ov00_022D5314: @ 0x022D5314 + push {r4, lr} + bl FUN_0207B7E4 + ldr r1, _022D5428 @ =0x02326C4C + mov r4, r0 + ldr r1, [r1] + cmp r1, #0 + bne _022D533C + bl FUN_0207B7F8 + mov r0, #1 + pop {r4, pc} +_022D533C: + add r1, r1, #0x2000 + ldr r2, [r1, #0x260] + cmp r2, #3 + beq _022D5368 + cmp r2, #9 + beq _022D5380 + cmp r2, #0xa + bne _022D5374 + bl FUN_0207B7F8 + mov r0, #2 + pop {r4, pc} +_022D5368: + bl FUN_0207B7F8 + mov r0, #0 + pop {r4, pc} +_022D5374: + bl FUN_0207B7F8 + mov r0, #1 + pop {r4, pc} +_022D5380: + ldrb r0, [r1, #0x26b] + cmp r0, #1 + bne _022D53AC + mov r0, #0xa + bl ov00_022D5B1C + ldr r0, _022D5428 @ =0x02326C4C mov r1, #6 - str r2, [r4, #0x34] - bl FUN_0207ebe4 - cmp r0, #0 - moveq r0, #0 - popeq {r4, lr} - addeq sp, sp, #0x10 - bxeq lr - ldr r1, [r4, #0xc] - mov r0, #1 - orr r1, r1, #0x10 - bic r1, r1, #0x20 - str r1, [r4, #0xc] - pop {r4, lr} - add sp, sp, #0x10 - bx lr - arm_func_end FUN_0207f654 - - arm_func_start FUN_0207f6c4 -FUN_0207f6c4: @ 0x0207F6C4 - push {r4, lr} - sub sp, sp, #8 - mov r4, r0 - add r0, sp, #0 - bl FUN_0207f5cc - cmp r0, #0 - beq _0207F700 - add r1, sp, #0 + ldr r0, [r0] + add r0, r0, #0x2200 + strh r1, [r0, #0x80] + b _022D5418 +_022D53AC: + ldr r0, _022D542C @ =0x022D6794 + bl ov00_022C07A4 + cmp r0, #2 + beq _022D53D0 + cmp r0, #3 + beq _022D5400 + cmp r0, #8 + beq _022D53F0 + b _022D5400 +_022D53D0: + mov r0, #0xa + bl ov00_022D5B1C + ldr r0, _022D5428 @ =0x02326C4C + mov r1, #6 + ldr r0, [r0] + add r0, r0, #0x2200 + strh r1, [r0, #0x80] + b _022D5418 +_022D53F0: mov r0, r4 - ldm r1, {r1, r2} - bl FUN_0207f654 - cmp r0, #0 - addne sp, sp, #8 - movne r0, #1 - popne {r4, pc} -_0207F700: - mov r0, #0 - add sp, sp, #8 + bl FUN_0207B7F8 + mov r0, #4 pop {r4, pc} - arm_func_end FUN_0207f6c4 - - arm_func_start FUN_0207f70c -FUN_0207f70c: @ 0x0207F70C - push {r4, lr} - mov r1, #8 - mov r4, r0 - bl FUN_0207ebe4 - cmp r0, #0 - mov r0, #0 - popeq {r4, pc} - str r0, [r4, #8] - mov r0, #0xe - str r0, [r4, #0x10] - ldr r1, [r4, #0xc] - mov r0, #1 - bic r1, r1, #0x30 - str r1, [r4, #0xc] - pop {r4, pc} - arm_func_end FUN_0207f70c - - arm_func_start FUN_0207f748 -FUN_0207f748: @ 0x0207F748 - push {r4, r5, r6, r7, r8, lr} - mov r6, r0 - mov r5, #0 - bl EnableIrqFlag - ldr r1, [r6, #0xc] - mov r4, r0 - tst r1, #1 - movne r0, #1 - moveq r0, r5 - cmp r0, #0 - beq _0207F7D8 - ldr r0, [r6, #0xc] - tst r0, #0x44 - moveq r5, #1 - movne r5, #0 - cmp r5, #0 - beq _0207F7B0 - ldr r0, [r6, #0xc] - orr r0, r0, #4 - str r0, [r6, #0xc] -_0207F798: - add r0, r6, #0x18 - bl FUN_02079888 - ldr r0, [r6, #0xc] - tst r0, #0x40 - beq _0207F798 - b _0207F7D8 -_0207F7B0: - mov r7, #0 - mov r8, #1 -_0207F7B8: - add r0, r6, #0x18 - bl FUN_02079888 - ldr r0, [r6, #0xc] - tst r0, #1 - movne r0, r8 - moveq r0, r7 - cmp r0, #0 - bne _0207F7B8 -_0207F7D8: +_022D5400: + mov r0, #0xb + bl ov00_022D5B1C mov r0, r4 - bl SetIrqFlag - cmp r5, #0 - beq _0207F7F4 - mov r0, r6 - bl FUN_0207eba0 - pop {r4, r5, r6, r7, r8, pc} -_0207F7F4: - ldr r0, [r6, #0x14] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0207f748 - - arm_func_start FUN_0207f808 -FUN_0207f808: @ 0x0207F808 - ldr ip, _0207F814 @ =FUN_0207F550 - mov r3, #1 - bx ip + bl FUN_0207B7F8 + mov r0, #7 + pop {r4, pc} +_022D5418: + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #3 + pop {r4, pc} .align 2, 0 -_0207F814: .4byte FUN_0207F550 - arm_func_end FUN_0207f808 +_022D5428: .4byte 0x02326C4C +_022D542C: .4byte 0x022D6794 + arm_func_end ov00_022D5314 - arm_func_start FUN_0207f818 -FUN_0207f818: @ 0x0207F818 - ldr ip, _0207F824 @ =FUN_0207F550 - mov r3, #0 - bx ip - .align 2, 0 -_0207F824: .4byte FUN_0207F550 - arm_func_end FUN_0207f818 - - arm_func_start FUN_0207f828 -FUN_0207f828: @ 0x0207F828 - cmp r2, #0 - beq _0207F844 - cmp r2, #1 - beq _0207F850 - cmp r2, #2 - beq _0207F85C - b _0207F868 -_0207F844: - ldr r2, [r0, #0x24] - add r1, r1, r2 - b _0207F870 -_0207F850: - ldr r2, [r0, #0x2c] - add r1, r1, r2 - b _0207F870 -_0207F85C: - ldr r2, [r0, #0x28] - add r1, r1, r2 - b _0207F870 -_0207F868: - mov r0, #0 - bx lr -_0207F870: - ldr r2, [r0, #0x24] - cmp r1, r2 - movlt r1, r2 - ldr r2, [r0, #0x28] - cmp r1, r2 - movgt r1, r2 - str r1, [r0, #0x2c] - mov r0, #1 - bx lr - arm_func_end FUN_0207f828 - - arm_func_start FUN_0207f894 -FUN_0207f894: @ 0x0207F894 - push {r3, r4, lr} - sub sp, sp, #0x54 + arm_func_start ov00_022D5430 +ov00_022D5430: @ 0x022D5430 + push {r3, r4, r5, lr} + bl FUN_0207B7E4 + ldr r1, _022D5634 @ =0x02326C4C mov r4, r0 - add r0, sp, #0xc - bl FileInit - add r0, sp, #0xc - add r3, sp, #0 - mov r1, r4 + ldr r1, [r1] + cmp r1, #0 + bne _022D5458 + bl FUN_0207B7F8 + mov r0, #1 + pop {r3, r4, r5, pc} +_022D5458: + add r1, r1, #0x2000 + ldr r2, [r1, #0x260] + cmp r2, #0xd + addls pc, pc, r2, lsl #2 + b _022D54E8 +_022D546C: @ jump table + b _022D54E8 @ case 0 + b _022D54B0 @ case 1 + b _022D54E8 @ case 2 + b _022D54F8 @ case 3 + b _022D54E8 @ case 4 + b _022D54E8 @ case 5 + b _022D54BC @ case 6 + b _022D54E8 @ case 7 + b _022D54E8 @ case 8 + b _022D54F8 @ case 9 + b _022D54E8 @ case 10 + b _022D54E8 @ case 11 + b _022D54F8 @ case 12 + b _022D54A4 @ case 13 +_022D54A4: + bl FUN_0207B7F8 + mov r0, #2 + pop {r3, r4, r5, pc} +_022D54B0: + bl FUN_0207B7F8 + mov r0, #0 + pop {r3, r4, r5, pc} +_022D54BC: + mov r0, #0xd + bl ov00_022D5B1C + ldr r1, _022D5634 @ =0x02326C4C + mov r2, #9 + ldr r1, [r1] + mov r0, r4 + add r1, r1, #0x2200 + strh r2, [r1, #0x80] + bl FUN_0207B7F8 + mov r0, #3 + pop {r3, r4, r5, pc} +_022D54E8: + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #1 + pop {r3, r4, r5, pc} +_022D54F8: + ldrb r0, [r1, #0x26b] + cmp r0, #1 + bne _022D5524 + mov r0, #0xd + bl ov00_022D5B1C + ldr r0, _022D5634 @ =0x02326C4C + mov r1, #9 + ldr r0, [r0] + add r0, r0, #0x2200 + strh r1, [r0, #0x80] + b _022D5624 +_022D5524: + bl ov00_022BF240 + mov r5, r0 + mov r1, #2 + bl FUN_0207A2A4 + ldrh r0, [r5] + cmp r0, #0 + beq _022D5554 + cmp r0, #1 + beq _022D558C + cmp r0, #2 + beq _022D5598 + b _022D55A4 +_022D5554: + bl ov00_022BEB74 + cmp r0, #0 + bne _022D55C0 + mov r0, #1 + bl ov00_022D5B1C + ldr r1, _022D5634 @ =0x02326C4C mov r2, #0 - bl FUN_0207f40c + ldr r1, [r1] + mov r0, r4 + add r1, r1, #0x2200 + strh r2, [r1, #0x80] + bl FUN_0207B7F8 + mov r0, #0 + pop {r3, r4, r5, pc} +_022D558C: + ldr r0, _022D5638 @ =0x022D5D40 + bl ov00_022BFA54 + b _022D55C0 +_022D5598: + ldr r0, _022D5638 @ =0x022D5D40 + bl ov00_022BFAD4 + b _022D55C0 +_022D55A4: + ldr r1, _022D5634 @ =0x02326C4C + ldr r0, _022D563C @ =ov00_022D68B0 + ldr r1, [r1] + mov r2, #1 + add r1, r1, #0x2000 + strb r2, [r1, #0x26b] + bl ov00_022BFB9C +_022D55C0: + cmp r0, #2 + beq _022D55DC + cmp r0, #3 + beq _022D560C + cmp r0, #8 + beq _022D55FC + b _022D560C +_022D55DC: + mov r0, #0xd + bl ov00_022D5B1C + ldr r0, _022D5634 @ =0x02326C4C + mov r1, #9 + ldr r0, [r0] + add r0, r0, #0x2200 + strh r1, [r0, #0x80] + b _022D5624 +_022D55FC: + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #4 + pop {r3, r4, r5, pc} +_022D560C: + mov r0, #0xb + bl ov00_022D5B1C + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #7 + pop {r3, r4, r5, pc} +_022D5624: + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #3 + pop {r3, r4, r5, pc} + .align 2, 0 +_022D5634: .4byte 0x02326C4C +_022D5638: .4byte 0x022D5D40 +_022D563C: .4byte ov00_022D68B0 + arm_func_end ov00_022D5430 + + arm_func_start ov00_022D5640 +ov00_022D5640: @ 0x022D5640 + push {r4, lr} + bl FUN_0207B7E4 + ldr r1, _022D566C @ =0x02326C4C + mov r4, #0 + ldr r1, [r1] + cmp r1, #0 + addne r1, r1, #0x2000 + ldrne r4, [r1, #0x260] + bl FUN_0207B7F8 + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_022D566C: .4byte 0x02326C4C + arm_func_end ov00_022D5640 + + arm_func_start ov00_022D5670 +ov00_022D5670: @ 0x022D5670 + push {r3, r4, r5, lr} + mov r5, r0 + bl FUN_0207B7E4 + ldr r1, _022D5704 @ =0x02326C4C + mov r2, #0 + ldr r3, [r1] + add r1, r3, #0x2000 + cmp r3, #0 + ldr r4, [r1, #0x264] + bne _022D56A4 + bl FUN_0207B7F8 + mov r0, #0 + pop {r3, r4, r5, pc} +_022D56A4: + tst r5, #0x8000 + beq _022D56C4 + ldr r1, _022D5708 @ =0x00003FFE + orr r2, r2, #0xfe + tst r5, r1 + orreq r5, r5, #0x82 + orr r2, r2, #0x3f00 + orreq r5, r5, #0xa000 +_022D56C4: + tst r5, #0x20000 + orrne r2, r2, #0x10000 + tst r5, #0x80000 + orrne r2, r2, #0x40000 + tst r5, #0x200000 + orrne r2, r2, #0x100000 + tst r5, #0x800000 + orrne r2, r2, #0x400000 + mvn r1, r2 + and r1, r4, r1 + orr r2, r5, r1 + add r1, r3, #0x2000 + str r2, [r1, #0x264] + bl FUN_0207B7F8 + mov r0, r4 + pop {r3, r4, r5, pc} + .align 2, 0 +_022D5704: .4byte 0x02326C4C +_022D5708: .4byte 0x00003FFE + arm_func_end ov00_022D5670 + + arm_func_start ov00_022D570C +ov00_022D570C: @ 0x022D570C + ldr r0, _022D5718 @ =0x02326C4C + ldr r0, [r0] + bx lr + .align 2, 0 +_022D5718: .4byte 0x02326C4C + arm_func_end ov00_022D570C + + arm_func_start ov00_022D571C +ov00_022D571C: @ 0x022D571C + push {r3, r4, r5, lr} + movs r5, r0 + mov r4, r1 + bne _022D576C + ldr r1, _022D5838 @ =0x02326C4C + mov r3, #3 + ldr r0, [r1] + mov r2, #0 + add r0, r0, #0x2000 + str r3, [r0, #0x26c] + ldr r0, [r1] + add r0, r0, #0x2000 + str r2, [r0, #0x270] + ldr r0, [r1] + add r0, r0, #0x2000 + str r2, [r0, #0x274] + ldr r0, [r1] + add r0, r0, #0x2000 + str r2, [r0, #0x278] + b _022D5824 +_022D576C: + ldr r1, _022D5838 @ =0x02326C4C + ldr r2, [r5] + ldr r0, [r1] + and r2, r2, #3 + add r0, r0, #0x2000 + str r2, [r0, #0x26c] + ldr r3, [r5, #4] + ldr r0, [r5, #8] + and r2, r3, #3 + rsb r2, r2, #4 + and r2, r2, #3 + add r2, r2, #0xc + cmp r2, r0 + ldr r0, [r1] + bls _022D57C4 + mov r2, #0 + add r0, r0, #0x2000 + str r2, [r0, #0x270] + ldr r0, [r1] + add r0, r0, #0x2000 + str r2, [r0, #0x274] + b _022D5810 +_022D57C4: + add r2, r3, #3 + bic r2, r2, #3 + add r0, r0, #0x2000 + str r2, [r0, #0x270] + ldr r2, [r5, #4] + ldr r0, [r1] + and r2, r2, #3 + rsb r2, r2, #4 + ldr r3, [r5, #8] + and r2, r2, #3 + sub r2, r3, r2 + add r0, r0, #0x2000 + str r2, [r0, #0x274] + ldr r0, [r1] + mov r1, #0 + add r2, r0, #0x2000 + ldr r0, [r2, #0x270] + ldr r2, [r2, #0x274] + bl FUN_0207C40C +_022D5810: + ldr r0, _022D5838 @ =0x02326C4C + ldr r1, [r5, #0xc] + ldr r0, [r0] + add r0, r0, #0x2000 + str r1, [r0, #0x278] +_022D5824: + ldr r0, _022D5838 @ =0x02326C4C + ldr r0, [r0] + add r0, r0, #0x2000 + str r4, [r0, #0x27c] + pop {r3, r4, r5, pc} + .align 2, 0 +_022D5838: .4byte 0x02326C4C + arm_func_end ov00_022D571C + + arm_func_start ov00_022D583C +ov00_022D583C: @ 0x022D583C + push {r3, r4, r5, lr} + mov r5, r0 + mov r0, r2 + mov r4, r1 + bl ov00_022D5670 + ldr r2, _022D59C8 @ =0x02326C4C + mov r3, #0x400 + ldr r1, [r2] + mov r0, #0 + add ip, r1, #0x1500 + add r1, r1, #0x2000 + str ip, [r1, #0x288] + ldr r1, [r2] + add r1, r1, #0x2200 + strh r3, [r1, #0x8c] + bl ov00_022D59F4 + ldr r1, _022D59C8 @ =0x02326C4C + mov r2, #1 + lsl r2, r2, r0 + ldr r0, [r1] + asr r2, r2, #1 + add r0, r0, #0x2200 + strh r2, [r0, #0x8e] + ldr r0, [r1] + add r0, r0, #0x2200 + ldrh r0, [r0, #0x68] cmp r0, #0 - addeq sp, sp, #0x54 - moveq r0, #0 - popeq {r3, r4, pc} - ldr r3, _0207F8E8 @ =0x022BB5EC + bne _022D58B0 + bl ov00_022BF780 +_022D58B0: + ldr r2, _022D59C8 @ =0x02326C4C + ldr r1, [r2] + add r1, r1, #0x2200 + strh r0, [r1, #0x90] + ldr r1, [r2] + add r0, r1, #0x2000 + ldr r0, [r0, #0x264] + and r0, r0, #0x300000 + cmp r0, #0x300000 + movne r2, #1 + moveq r2, #0 + add r0, r1, #0x2200 + strh r2, [r0, #0x98] + cmp r5, #0 + mov r2, #6 + bne _022D590C + ldr r1, _022D59C8 @ =0x02326C4C + ldr r0, _022D59CC @ =0x02318158 + ldr r1, [r1] + add r1, r1, #0x92 + add r1, r1, #0x2200 + bl FUN_0207C4C8 + b _022D5924 +_022D590C: + ldr r1, _022D59C8 @ =0x02326C4C + mov r0, r5 + ldr r1, [r1] + add r1, r1, #0x92 + add r1, r1, #0x2200 + bl FUN_0207C4C8 +_022D5924: + cmp r4, #0 + ldrne r0, _022D59D0 @ =0x02318160 + mov r2, #0x20 + cmpne r4, r0 + bne _022D5968 + ldr r1, _022D59C8 @ =0x02326C4C + ldr r0, _022D59D0 @ =0x02318160 + ldr r1, [r1] + add r1, r1, #0x29c + add r1, r1, #0x2000 + bl FUN_0207C4C8 + ldr r0, _022D59C8 @ =0x02326C4C + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x2200 + strh r1, [r0, #0x9a] + b _022D59B0 +_022D5968: + ldr r1, _022D59C8 @ =0x02326C4C + mov r0, r4 + ldr r1, [r1] + add r1, r1, #0x29c + add r1, r1, #0x2000 + bl FUN_0207C4C8 + mov r1, #0 +_022D5984: + ldrb r0, [r4] + cmp r0, #0 + beq _022D59A0 + add r1, r1, #1 + cmp r1, #0x20 + add r4, r4, #1 + blt _022D5984 +_022D59A0: + ldr r0, _022D59C8 @ =0x02326C4C + ldr r0, [r0] + add r0, r0, #0x2200 + strh r1, [r0, #0x9a] +_022D59B0: + ldr r0, _022D59C8 @ =0x02326C4C + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x2000 + str r1, [r0, #0x284] + pop {r3, r4, r5, pc} + .align 2, 0 +_022D59C8: .4byte 0x02326C4C +_022D59CC: .4byte 0x02318158 +_022D59D0: .4byte 0x02318160 + arm_func_end ov00_022D583C + + arm_func_start ov00_022D59D4 +ov00_022D59D4: @ 0x022D59D4 + ldr r0, _022D59EC @ =0x02326C4C + ldr r1, _022D59F0 @ =0x00AAA082 + ldr r0, [r0] + add r0, r0, #0x2000 + str r1, [r0, #0x264] + bx lr + .align 2, 0 +_022D59EC: .4byte 0x02326C4C +_022D59F0: .4byte 0x00AAA082 + arm_func_end ov00_022D59D4 + + arm_func_start ov00_022D59F4 +ov00_022D59F4: @ 0x022D59F4 + push {r3, r4, r5, r6, r7, lr} + ldr r2, _022D5A7C @ =0x02326C4C + ldr lr, _022D5A80 @ =0x4EC4EC4F + ldr r2, [r2] + mov r1, r0 + add r2, r2, #0x2000 + ldr r7, [r2, #0x264] + mov r6, #0 + mov r5, #1 + mov ip, #0xd +_022D5A1C: + lsr r2, r1, #0x1f + smull r3, r4, lr, r1 + add r4, r2, r4, asr #2 + smull r2, r3, ip, r4 + sub r4, r1, r2 + add r2, r4, #1 + tst r7, r5, lsl r2 + bne _022D5A4C + add r6, r6, #1 + cmp r6, #0xd + add r1, r1, #1 + blt _022D5A1C +_022D5A4C: + add r3, r0, r6 + ldr r2, _022D5A80 @ =0x4EC4EC4F + lsr r0, r3, #0x1f + smull r1, ip, r2, r3 + add ip, r0, ip, asr #2 + mov r2, #0xd + smull r0, r1, r2, ip + sub ip, r3, r0 + add r0, ip, #1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022D5A7C: .4byte 0x02326C4C +_022D5A80: .4byte 0x4EC4EC4F + arm_func_end ov00_022D59F4 + + arm_func_start ov00_022D5A84 +ov00_022D5A84: @ 0x022D5A84 + push {r3, r4, r5, lr} + ldr ip, _022D5AC4 @ =0x02326C4C + mov r5, r0 + ldr r0, [ip] + mov r4, r1 + add r1, r0, #0x2200 + ldrsh r0, [r1, #0x80] + mov ip, #0 + mov lr, r2 + strh ip, [r1, #0x80] + str r3, [sp] + mov r1, r5 + mov r2, r4 + mov r3, lr + bl ov00_022D5AC8 + pop {r3, r4, r5, pc} + .align 2, 0 +_022D5AC4: .4byte 0x02326C4C + arm_func_end ov00_022D5A84 + + arm_func_start ov00_022D5AC8 +ov00_022D5AC8: @ 0x022D5AC8 + push {r3, lr} + sub sp, sp, #0x10 + ldr ip, _022D5B18 @ =0x02326C4C + ldr ip, [ip] + add ip, ip, #0x2000 + ldr lr, [ip, #0x27c] + cmp lr, #0 + addeq sp, sp, #0x10 + popeq {r3, pc} + ldr lr, [sp, #0x18] + strh r0, [sp] + str r2, [sp, #4] + str r3, [sp, #8] + str lr, [sp, #0xc] + strh r1, [sp, #2] + ldr r1, [ip, #0x27c] add r0, sp, #0 - ldm r0, {r0, r1, r2} - stm r3, {r0, r1, r2} - mov r0, #1 - add sp, sp, #0x54 + blx r1 + add sp, sp, #0x10 + pop {r3, pc} + .align 2, 0 +_022D5B18: .4byte 0x02326C4C + arm_func_end ov00_022D5AC8 + + arm_func_start ov00_022D5B1C +ov00_022D5B1C: @ 0x022D5B1C + push {r3, r4, r5, lr} + mov r5, r0 + bl FUN_0207B7E4 + ldr r1, _022D5BA8 @ =0x02326C4C + mov r4, r0 + ldr r1, [r1] + add r0, r1, #0x2000 + ldr r0, [r0, #0x260] + cmp r0, #9 + bne _022D5B58 + cmp r5, #9 + beq _022D5B58 + add r0, r1, #0x2cc + add r0, r0, #0x2000 + bl FUN_0207B1E8 +_022D5B58: + ldr r0, _022D5BA8 @ =0x02326C4C + ldr r0, [r0] + add r0, r0, #0x2000 + ldr r1, [r0, #0x260] + cmp r1, #0xb + strne r5, [r0, #0x260] + cmp r5, #9 + bne _022D5B9C + mov r2, #0 + ldr r0, _022D5BA8 @ =0x02326C4C + str r2, [sp] + ldr r0, [r0] + ldr r1, _022D5BAC @ =0x022F5341 + add r0, r0, #0x2cc + ldr r3, _022D5BB0 @ =0x022D5C28 + add r0, r0, #0x2000 + bl FUN_0207B17C +_022D5B9C: + mov r0, r4 + bl FUN_0207B7F8 + pop {r3, r4, r5, pc} + .align 2, 0 +_022D5BA8: .4byte 0x02326C4C +_022D5BAC: .4byte 0x022F5341 +_022D5BB0: .4byte 0x022D5C28 + arm_func_end ov00_022D5B1C + + arm_func_start ov00_022D5BB4 +ov00_022D5BB4: @ 0x022D5BB4 + push {r3, r4, lr} + sub sp, sp, #4 + bl FUN_0207B7E4 + ldr r1, _022D5C1C @ =0x02326C4C + mov r4, r0 + ldr r0, [r1] + add r0, r0, #0x2cc + add r0, r0, #0x2000 + bl FUN_0207B1E8 + ldr r0, _022D5C1C @ =0x02326C4C + ldr r1, [r0] + add r0, r1, #0x2000 + ldr r0, [r0, #0x260] + cmp r0, #9 + bne _022D5C0C + add r0, r1, #0x2cc + mov r2, #0 + ldr r1, _022D5C20 @ =0x022F5341 + ldr r3, _022D5C24 @ =0x022D5C28 + add r0, r0, #0x2000 + str r2, [sp] + bl FUN_0207B17C +_022D5C0C: + mov r0, r4 + bl FUN_0207B7F8 + add sp, sp, #4 pop {r3, r4, pc} .align 2, 0 -_0207F8E8: .4byte 0x022BB5EC - arm_func_end FUN_0207f894 -_0207F8EC: - .byte 0x10, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x3B, 0x13, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x10, 0xA0, 0x13 - .byte 0x00, 0x10, 0xA0, 0x03, 0x04, 0x00, 0xA0, 0xE1, 0x8A, 0xFE, 0xFF, 0xEB, 0x10, 0x80, 0xBD, 0xE8 +_022D5C1C: .4byte 0x02326C4C +_022D5C20: .4byte 0x022F5341 +_022D5C24: .4byte 0x022D5C28 + arm_func_end ov00_022D5BB4 +_022D5C28: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x27, 0x05, 0x00, 0xEB + .byte 0xDF, 0xFF, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 - arm_func_start FUN_0207f910 -FUN_0207f910: @ 0x0207F910 - stmdb sp!, {lr} - sub sp, sp, #0xc - ldr ip, _0207F950 @ =0x0207F8EC - mov lr, r1 - str ip, [sp] - str r0, [sp, #4] - mov r1, #1 - ldr r0, _0207F954 @ =0x022BB5FC - str r1, [sp, #8] - mov r1, r2 - ldr r0, [r0, #4] - mov r2, lr - bl FUN_0208420c - mov r0, #6 - add sp, sp, #0xc - ldm sp!, {pc} - .align 2, 0 -_0207F950: .4byte 0x0207F8EC -_0207F954: .4byte 0x022BB5FC - arm_func_end FUN_0207f910 -_0207F958: - .byte 0x01, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 + arm_func_start ov00_022D5C38 +ov00_022D5C38: @ 0x022D5C38 + mov r1, r0 + mov r0, #0 + mov r3, #1 +_022D5C44: + clz r2, r1 + rsbs r2, r2, #0x1f + blo _022D5C54 + b _022D5C58 +_022D5C54: + bx lr +_022D5C58: + bic r1, r1, r3, lsl r2 + add r0, r0, #1 + b _022D5C44 + arm_func_end ov00_022D5C38 - arm_func_start FUN_0207f960 -FUN_0207f960: @ 0x0207F960 + arm_func_start ov00_022D5C64 +ov00_022D5C64: @ 0x022D5C64 + clz r0, r0 + bx lr + arm_func_end ov00_022D5C64 + + arm_func_start ov00_022D5C6C +ov00_022D5C6C: @ 0x022D5C6C push {r3, lr} - cmp r1, #1 - beq _0207F9B8 - cmp r1, #9 - beq _0207F980 - cmp r1, #0xa - beq _0207F99C - b _0207F9C0 -_0207F980: - ldr r0, _0207F9C8 @ =0x022BB5FC + ldr r0, _022D5CC0 @ =0x02326C4C ldr r0, [r0] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02083434 - mov r0, #0 - pop {r3, pc} -_0207F99C: - ldr r0, _0207F9C8 @ =0x022BB5FC - ldr r0, [r0] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02083450 - mov r0, #0 - pop {r3, pc} -_0207F9B8: - mov r0, #4 - pop {r3, pc} -_0207F9C0: - mov r0, #8 - pop {r3, pc} - .align 2, 0 -_0207F9C8: .4byte 0x022BB5FC - arm_func_end FUN_0207f960 -_0207F9CC: - .byte 0x01, 0x00, 0xA0, 0xE3 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0207f9dc -FUN_0207f9dc: @ 0x0207F9DC - push {r4, lr} - sub sp, sp, #0x10 - ldr r1, _0207FAFC @ =0x022BB5FC - str r0, [r1, #4] - bl FUN_0207902c - ldr r1, _0207FAFC @ =0x022BB5FC - mov r2, #0 - str r0, [r1] - str r2, [r1, #8] - str r2, [r1, #0xc] - str r2, [r1, #0x10] - str r2, [r1, #0x14] - bl FUN_02084304 - ldr r0, _0207FB00 @ =0x022BB614 - bl FUN_0207ed88 - ldr r0, _0207FB00 @ =0x022BB614 - ldr r1, _0207FB04 @ =0x020B2BB4 - mov r2, #3 - bl FUN_0207edf4 - ldr r4, _0207FB08 @ =0x027FFC40 - ldrh r0, [r4] - cmp r0, #2 - bne _0207FA94 - ldr r3, _0207FAFC @ =0x022BB5FC - mvn r2, #0 - str r2, [r3, #8] - mov ip, #0 - str ip, [r3, #0xc] - str r2, [r3, #0x10] - ldr r0, _0207FB00 @ =0x022BB614 - ldr r1, _0207FB0C @ =0x0207F9D4 - str ip, [r3, #0x14] - bl FUN_0207f318 - mov r1, #0 - str r1, [sp] - ldr r0, _0207FB10 @ =0x0207F9CC - str r1, [sp, #4] - str r0, [sp, #8] - ldr ip, _0207FB14 @ =0x0207F958 - ldr r0, _0207FB00 @ =0x022BB614 - mov r2, r1 - mov r3, r1 - str ip, [sp, #0xc] - bl FUN_0207ef2c - add sp, sp, #0x10 - pop {r4, pc} -_0207FA94: - ldr r0, _0207FB00 @ =0x022BB614 - ldr r1, _0207FB18 @ =FUN_0207f960 - ldr r2, _0207FB1C @ =0x00000602 - bl FUN_0207f318 - ldr r1, [r4, #0x200] - mvn r0, #0 - cmp r1, r0 - cmpne r1, #0 - ldrne r2, [r4, #0x208] - cmpne r2, r0 - cmpne r2, #0 - addeq sp, sp, #0x10 - popeq {r4, pc} - str r1, [sp] - ldr r0, [r4, #0x204] - ldr r1, _0207FB20 @ =FUN_0207f910 - str r0, [sp, #4] - ldr r0, _0207FB14 @ =0x0207F958 - str r1, [sp, #8] - str r0, [sp, #0xc] - ldr r3, [r4, #0x20c] - ldr r0, _0207FB00 @ =0x022BB614 - mov r1, #0 - bl FUN_0207ef2c - add sp, sp, #0x10 - pop {r4, pc} - .align 2, 0 -_0207FAFC: .4byte 0x022BB5FC -_0207FB00: .4byte 0x022BB614 -_0207FB04: .4byte 0x020B2BB4 -_0207FB08: .4byte 0x027FFC40 -_0207FB0C: .4byte 0x0207F9D4 -_0207FB10: .4byte 0x0207F9CC -_0207FB14: .4byte 0x0207F958 -_0207FB18: .4byte FUN_0207f960 -_0207FB1C: .4byte 0x00000602 -_0207FB20: .4byte FUN_0207f910 - arm_func_end FUN_0207f9dc - - arm_func_start FUN_0207fb24 -FUN_0207fb24: @ 0x0207FB24 - ldr r1, [r0, #0x1c] - lsr r2, r1, #0x18 - tst r2, #1 - lslne r0, r1, #8 - lsrne r0, r0, #8 - ldreq r0, [r0, #8] - bx lr - arm_func_end FUN_0207fb24 - - arm_func_start FUN_0207fb40 -FUN_0207fb40: @ 0x0207FB40 - push {r4, r5, r6, lr} - ldr r1, [r0, #0xc] - ldmib r0, {r4, r5} - add r6, r5, r1 - mov r0, r4 - mov r1, r6 - bl FUN_0207a330 - mov r0, r4 - mov r1, r6 - bl FUN_0207a2a4 - add r0, r4, r5 - sub r2, r6, r5 - mov r1, #0 - bl FUN_0207c40c - pop {r4, r5, r6, pc} - arm_func_end FUN_0207fb40 - - arm_func_start FUN_0207fb7c -FUN_0207fb7c: @ 0x0207FB7C - sub sp, sp, #8 - ldr r1, [r1, #0x18] - ldr r2, _0207FBA0 @ =0x022BB614 - str r1, [sp, #4] - str r2, [r0] - str r2, [sp] - str r1, [r0, #4] - add sp, sp, #8 - bx lr - .align 2, 0 -_0207FBA0: .4byte 0x022BB614 - arm_func_end FUN_0207fb7c - - arm_func_start FUN_0207fba4 -FUN_0207fba4: @ 0x0207FBA4 - push {r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0x54 - movs sb, r1 - ldreq r7, [sp, #0x74] - ldreq r6, [sp, #0x70] - ldrne r7, [sp, #0x7c] - ldrne r6, [sp, #0x78] - cmp r7, r2, lsl #5 - mov r4, r0 - mov r8, r3 - lsl r5, r2, #5 - addls sp, sp, #0x54 - movls r0, #0 - popls {r4, r5, r6, r7, r8, sb, pc} - add r0, sp, #0xc - bl FileInit - mvn ip, #0 - add r0, sp, #0xc - mov r1, r8 - add r2, r6, r5 - add r3, r6, r7 - str ip, [sp] - bl FUN_0207f60c + add r1, r0, #0x2000 + ldrb r0, [r1, #0x26b] cmp r0, #0 - addeq sp, sp, #0x54 - moveq r0, #0 - popeq {r4, r5, r6, r7, r8, sb, pc} - add r0, sp, #0xc - mov r1, r4 - mov r2, #0x20 - bl FUN_0207f818 - cmp r0, #0x20 - add r0, sp, #0xc - beq _0207FC3C - bl FUN_0207f70c - add sp, sp, #0x54 - mov r0, #0 - pop {r4, r5, r6, r7, r8, sb, pc} -_0207FC3C: - bl FUN_0207f70c - add r0, sp, #4 - mov r1, r4 - str sb, [r4, #0x20] - bl FUN_0207fb7c - add r1, sp, #4 - add r0, sp, #0xc - ldm r1, {r1, r2} - bl FUN_0207f654 - cmp r0, #0 - addeq sp, sp, #0x54 - moveq r0, #0 - popeq {r4, r5, r6, r7, r8, sb, pc} - ldr r1, [sp, #0x30] - add r0, sp, #0xc - str r1, [r4, #0x24] - ldr r2, [sp, #0x34] - ldr r1, [sp, #0x30] - sub r1, r2, r1 - str r1, [r4, #0x28] - bl FUN_0207f70c - mov r0, #1 - add sp, sp, #0x54 - pop {r4, r5, r6, r7, r8, sb, pc} - arm_func_end FUN_0207fba4 - - arm_func_start FUN_0207fc9c -FUN_0207fc9c: @ 0x0207FC9C - push {r3, r4, r5, lr} - sub sp, sp, #0x60 - movs r4, r1 - mov r5, r0 - ldreq r0, _0207FD88 @ =0x022BB604 - ldrne r0, _0207FD8C @ =0x022BB60C - ldr ip, [r0] - cmp ip, #0 - beq _0207FD4C - ldr r0, [r0, #4] - lsl r3, r2, #5 - cmp r0, r2, lsl #5 - addls sp, sp, #0x60 - movls r0, #0 - popls {r3, r4, r5, pc} - mov r1, r5 - add r0, ip, r3 - mov r2, #0x20 - bl FUN_0207c4c8 - add r0, sp, #0x18 - str r4, [r5, #0x20] - bl FileInit - add r0, sp, #0x10 - mov r1, r5 - bl FUN_0207fb7c - add r1, sp, #0x10 - add r0, sp, #0x18 - ldm r1, {r1, r2} - bl FUN_0207f654 - cmp r0, #0 - addeq sp, sp, #0x60 - moveq r0, #0 - popeq {r3, r4, r5, pc} - ldr r1, [sp, #0x3c] - add r0, sp, #0x18 - str r1, [r5, #0x24] - ldr r2, [sp, #0x40] - ldr r1, [sp, #0x3c] - sub r1, r2, r1 - str r1, [r5, #0x28] - bl FUN_0207f70c - add sp, sp, #0x60 - mov r0, #1 - pop {r3, r4, r5, pc} -_0207FD4C: - ldr ip, _0207FD90 @ =0x027FFE50 - ldr r3, _0207FD94 @ =0x022BB614 - ldr r1, [ip] - mov r0, r5 - str r1, [sp] - ldr r5, [ip, #4] - mov r1, r4 - str r5, [sp, #4] - ldr r4, [ip, #8] - str r4, [sp, #8] - ldr r4, [ip, #0xc] - str r4, [sp, #0xc] - bl FUN_0207fba4 - add sp, sp, #0x60 - pop {r3, r4, r5, pc} - .align 2, 0 -_0207FD88: .4byte 0x022BB604 -_0207FD8C: .4byte 0x022BB60C -_0207FD90: .4byte 0x027FFE50 -_0207FD94: .4byte 0x022BB614 - arm_func_end FUN_0207fc9c - - arm_func_start FUN_0207fd98 -FUN_0207fd98: @ 0x0207FD98 - push {r3, r4, r5, lr} - sub sp, sp, #0x50 - mov r5, r0 - add r0, sp, #8 - bl FileInit - add r0, sp, #0 - mov r1, r5 - bl FUN_0207fb7c - add r1, sp, #0 - add r0, sp, #8 - ldm r1, {r1, r2} - bl FUN_0207f654 - cmp r0, #0 - addeq sp, sp, #0x50 - moveq r0, #0 - popeq {r3, r4, r5, pc} - mov r0, r5 - bl FUN_0207fb24 - mov r4, r0 - mov r0, r5 - bl FUN_0207fb40 - ldr r1, [r5, #4] - add r0, sp, #8 - mov r2, r4 - bl FUN_0207f818 - cmp r4, r0 - add r0, sp, #8 - beq _0207FE18 - bl FUN_0207f70c - add sp, sp, #0x50 - mov r0, #0 - pop {r3, r4, r5, pc} -_0207FE18: - bl FUN_0207f70c - mov r0, #1 - add sp, sp, #0x50 - pop {r3, r4, r5, pc} - arm_func_end FUN_0207fd98 - - arm_func_start FUN_0207fe28 -FUN_0207fe28: @ 0x0207FE28 - push {r4, r5, r6, lr} - sub sp, sp, #0x58 - mov r4, r0 - mov r6, r1 - mov r5, r2 - add r0, sp, #0x44 - mov r1, #0 - mov r2, #0x14 - bl FUN_0207c40c - ldr r2, _0207FEB8 @ =0x020B2BB8 - add r1, sp, #4 - ldm r2, {r0, r2} - bl FUN_0207c4c8 - ldr r3, _0207FEB8 @ =0x020B2BB8 - mov r1, r6 - ldr ip, [r3, #4] - mov r2, r5 - add r0, sp, #0x44 - add r3, sp, #4 - str ip, [sp] - bl FUN_02080a10 - add r3, sp, #0x44 - mov r2, #0 -_0207FE84: - ldr r1, [r3] - ldr r0, [r4, r2] - cmp r1, r0 - bne _0207FEA4 - add r2, r2, #4 - cmp r2, #0x14 - add r3, r3, #4 - blo _0207FE84 -_0207FEA4: - cmp r2, #0x14 - moveq r0, #1 - movne r0, #0 - add sp, sp, #0x58 - pop {r4, r5, r6, pc} - .align 2, 0 -_0207FEB8: .4byte 0x020B2BB8 - arm_func_end FUN_0207fe28 - - arm_func_start FUN_0207febc -FUN_0207febc: @ 0x0207FEBC - push {r3, r4, r5, lr} - mov r5, r0 - bl FUN_0207fb24 - ldr r1, _0207FFA0 @ =0x027FFC40 - mov r4, r0 - ldrh r0, [r1] - cmp r0, #2 - bne _0207FF4C - ldr r1, [r5, #0x1c] - mov r0, #0 - lsr r1, r1, #0x18 - tst r1, #2 - beq _0207FF2C - ldr r1, _0207FFA4 @ =0x020B3364 - ldr r3, _0207FFA8 @ =0x020B3364 - ldr r2, _0207FFAC @ =0x66666667 - sub ip, r1, r3 - smull r1, lr, r2, ip - lsr r1, ip, #0x1f - ldr r2, [r5] - add lr, r1, lr, asr #3 - cmp r2, lr - bhs _0207FF2C - mov r0, #0x14 - mla r0, r2, r0, r3 - ldr r1, [r5, #4] - mov r2, r4 - bl FUN_0207fe28 -_0207FF2C: - cmp r0, #0 - bne _0207FF4C - ldr r0, [r5, #4] - mov r2, r4 - mov r1, #0 - bl FUN_0207c40c - bl WaitForever2 - pop {r3, r4, r5, pc} -_0207FF4C: - ldr r0, [r5, #0x1c] - lsr r0, r0, #0x18 - tst r0, #1 - beq _0207FF68 - ldr r0, [r5, #4] - add r0, r0, r4 - bl FUN_02000970 -_0207FF68: - ldmib r5, {r0, r1} - bl FUN_0207a2dc - ldr r4, [r5, #0x10] - ldr r5, [r5, #0x14] - cmp r4, r5 - pophs {r3, r4, r5, pc} -_0207FF80: - ldr r0, [r4] - cmp r0, #0 - beq _0207FF90 - blx r0 -_0207FF90: - add r4, r4, #4 - cmp r4, r5 - blo _0207FF80 - pop {r3, r4, r5, pc} - .align 2, 0 -_0207FFA0: .4byte 0x027FFC40 -_0207FFA4: .4byte 0x020B3364 -_0207FFA8: .4byte 0x020B3364 -_0207FFAC: .4byte 0x66666667 - arm_func_end FUN_0207febc - - arm_func_start FUN_0207ffb0 -FUN_0207ffb0: @ 0x0207FFB0 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov fp, r0 -_0207FFB8: - ldr r1, [fp, #8] - ldr r0, [fp, #0xc] - mov r4, #0 - ldr r6, [fp, #4] - add r0, r1, r0 - mov r5, r4 - add r7, r6, r0 - bl EnableIrqFlag - ldr r1, _0208009C @ =0x022BCA74 - mov ip, r4 - ldr lr, [r1] - mov r8, lr - cmp lr, #0 - beq _02080064 - mov r2, r4 -_0207FFF4: - ldr sl, [r8, #8] - ldr sb, [r8] - cmp sl, #0 - ldr r3, [r8, #4] - bne _02080018 - cmp r3, r6 - blo _02080018 - cmp r3, r7 - blo _02080028 -_02080018: - cmp sl, r6 - blo _02080054 - cmp sl, r7 - bhs _02080054 -_02080028: - cmp r5, #0 - strne r8, [r5] - moveq r4, r8 - cmp lr, r8 - streq sb, [r1] - moveq lr, sb - str r2, [r8] - cmp ip, #0 - mov r5, r8 - strne sb, [ip] - b _02080058 -_02080054: - mov ip, r8 -_02080058: - mov r8, sb - cmp sb, #0 - bne _0207FFF4 -_02080064: - bl SetIrqFlag - cmp r4, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_02080070: - ldr r1, [r4, #4] - ldr r5, [r4] - cmp r1, #0 - beq _02080088 - ldr r0, [r4, #8] - blx r1 -_02080088: - mov r4, r5 - cmp r5, #0 - bne _02080070 - b _0207FFB8 -_02080098: - .byte 0xF8, 0x8F, 0xBD, 0xE8 -_0208009C: .4byte 0x022BCA74 - arm_func_end FUN_0207ffb0 - - arm_func_start FUN_020800a0 -FUN_020800a0: @ 0x020800A0 - push {r3, lr} - bl FUN_0207ffb0 - mov r0, #1 - pop {r3, pc} - arm_func_end FUN_020800a0 - - arm_func_start FUN_020800b0 -FUN_020800b0: @ 0x020800B0 - stmdb sp!, {lr} - sub sp, sp, #0x2c - mov r3, r0 - mov r2, r1 - add r0, sp, #0 - mov r1, r3 - bl FUN_0207fc9c - cmp r0, #0 - beq _020800E4 - add r0, sp, #0 - bl FUN_020800a0 - cmp r0, #0 - bne _020800F0 -_020800E4: - add sp, sp, #0x2c - mov r0, #0 - ldm sp!, {pc} -_020800F0: - mov r0, #1 - add sp, sp, #0x2c - ldm sp!, {pc} - ldr r2, _0208012C @ =0x67452301 - ldr r1, _02080130 @ =0xEFCDAB89 - str r2, [r0] - ldr r2, _02080134 @ =0x98BADCFE - str r1, [r0, #4] - ldr r1, _02080138 @ =0x10325476 - str r2, [r0, #8] - str r1, [r0, #0xc] - mov r1, #0 - str r1, [r0, #0x10] - str r1, [r0, #0x14] - bx lr - .align 2, 0 -_0208012C: .4byte 0x67452301 -_02080130: .4byte 0xEFCDAB89 -_02080134: .4byte 0x98BADCFE -_02080138: .4byte 0x10325476 - arm_func_end FUN_020800b0 - - arm_func_start FUN_0208013c -FUN_0208013c: @ 0x0208013C - push {r4, r5, r6, r7, r8, lr} - mov r6, r0 - ldr r3, [r6, #0x10] - mov r4, r2 - and ip, r3, #0x3f - ldr r0, [r6, #0x14] - adds r3, r3, r4 - str r3, [r6, #0x10] - adc r0, r0, #0 - rsb r7, ip, #0x40 - mov r5, r1 - str r0, [r6, #0x14] - cmp r7, r4 - bls _02080190 - cmp r4, #0 - popeq {r4, r5, r6, r7, r8, pc} - add r1, r6, #0x18 - mov r0, r5 - add r1, r1, ip - bl FUN_0207c4c8 - pop {r4, r5, r6, r7, r8, pc} -_02080190: - add r1, r6, #0x18 - mov r0, r5 - mov r2, r7 - add r1, r1, ip - bl FUN_0207c4c8 - mov r0, r6 - bl FUN_020802bc - sub r4, r4, r7 - lsr r8, r4, #6 - cmp r8, #0 - add r7, r5, r7 - ble _020801EC - mov r5, #0x40 -_020801C4: - mov r0, r7 - mov r2, r5 - add r1, r6, #0x18 - bl FUN_0207c4c8 - mov r0, r6 - add r7, r7, #0x40 - bl FUN_020802bc - sub r8, r8, #1 - cmp r8, #0 - bgt _020801C4 -_020801EC: - ands r2, r4, #0x3f - popeq {r4, r5, r6, r7, r8, pc} - mov r0, r7 - add r1, r6, #0x18 - bl FUN_0207c4c8 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0208013c - - arm_func_start FUN_02080204 -FUN_02080204: @ 0x02080204 - push {r3, r4, r5, r6, r7, lr} - mov r4, r1 - ldr r1, [r4, #0x14] - ldr r3, [r4, #0x10] - mov r5, r0 - lsl r6, r1, #3 - ldr r1, _020802B8 @ =0x020B2BC0 - mov r0, r4 + popne {r3, pc} mov r2, #1 - orr r6, r6, r3, lsr #29 - lsl r7, r3, #3 - bl FUN_0208013c - ldr r0, [r4, #0x10] + ldr r0, _022D5CC4 @ =ov00_022D68B0 + strb r2, [r1, #0x26b] + bl ov00_022BFB9C + cmp r0, #2 + popeq {r3, pc} + mov r0, #0xb + bl ov00_022D5B1C mov r1, #0 - and r3, r0, #0x3f - rsb r2, r3, #0x40 - cmp r2, #8 - bhs _02080268 - add r0, r4, #0x18 - add r0, r0, r3 - bl FUN_0207c40c - mov r0, r4 - bl FUN_020802bc - mov r3, #0 - mov r2, #0x40 -_02080268: - cmp r2, #8 - bls _02080284 - add r0, r4, #0x18 - add r0, r0, r3 - sub r2, r2, #8 - mov r1, #0 - bl FUN_0207c40c -_02080284: - str r7, [r4, #0x50] - mov r0, r4 - str r6, [r4, #0x54] - bl FUN_020802bc - mov r0, r4 - mov r1, r5 - mov r2, #0x10 - bl FUN_0207c4c8 - mov r0, r4 - mov r1, #0 - mov r2, #0x58 - bl FUN_0207c40c - pop {r3, r4, r5, r6, r7, pc} + mov r2, r1 + mov r0, #7 + mov r3, #0x610 + bl ov00_022D5A84 + pop {r3, pc} .align 2, 0 -_020802B8: .4byte 0x020B2BC0 - arm_func_end FUN_02080204 +_022D5CC0: .4byte 0x02326C4C +_022D5CC4: .4byte ov00_022D68B0 + arm_func_end ov00_022D5C6C - arm_func_start FUN_020802bc -FUN_020802bc: @ 0x020802BC - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldm r0, {r2, r3, ip, lr} - add r4, r0, #0x18 - ldr r5, _02080668 @ =0x020B2C84 - mov r7, r4 - mov r8, #0 -_020802D4: - mvn r1, r3 - and r6, r3, ip - and r1, r1, lr - orr r1, r6, r1 - ldr r6, [r7] - add r1, r2, r1 - ldr r2, [r5] - add r1, r6, r1 - add r2, r2, r1 - lsr r1, r2, #0x19 - orr r1, r1, r2, lsl #7 - add r2, r3, r1 - mvn r1, r2 - and r6, r2, r3 - and r1, r1, ip - orr r1, r6, r1 - ldr r6, [r7, #4] - add r1, lr, r1 - ldr sb, [r5, #4] - add r1, r6, r1 - add r6, sb, r1 - lsr r1, r6, #0x14 - orr r1, r1, r6, lsl #12 - add lr, r2, r1 - mvn r1, lr - and r6, lr, r2 - and r1, r1, r3 - orr r1, r6, r1 - ldr sb, [r7, #8] - add r6, ip, r1 - ldr r1, [r7, #0xc] - add sb, sb, r6 - ldr sl, [r5, #8] - ldr r6, [r5, #0xc] - add sl, sl, sb - lsr sb, sl, #0xf - orr sb, sb, sl, lsl #17 - add ip, lr, sb - add r5, r5, #0x10 - add r7, r7, #0x10 - and sl, ip, lr - mvn sb, ip - and sb, sb, r2 - orr sb, sl, sb - add r3, r3, sb - add r1, r1, r3 - add r3, r6, r1 - lsr r1, r3, #0xa - orr r1, r1, r3, lsl #22 - add r3, ip, r1 - add r8, r8, #1 - cmp r8, #4 - blt _020802D4 - ldr r1, _0208066C @ =0x020B2BC4 - mov r6, #0 -_020803B0: - mvn r7, lr - ldr sb, [r1] - and r8, r3, lr - and r7, ip, r7 - orr r7, r8, r7 - ldr r8, [r4, sb, lsl #2] - add r2, r2, r7 - ldr r7, [r5] - add r2, r8, r2 - add r7, r7, r2 - lsr r2, r7, #0x1b - orr r2, r2, r7, lsl #5 - add r2, r3, r2 - mvn r8, ip - ldr r7, [r1, #4] - and sb, r2, ip - and r8, r3, r8 - orr sl, sb, r8 - mvn r8, r3 - ldr sb, [r1, #8] - ldr fp, [r4, r7, lsl #2] - add r7, lr, sl - add r7, fp, r7 - ldr sl, [r5, #4] - ldr sb, [r4, sb, lsl #2] - add sl, sl, r7 - ldr r7, [r1, #0xc] - and r8, r2, r8 - ldr r7, [r4, r7, lsl #2] - lsr fp, sl, #0x17 - orr sl, fp, sl, lsl #9 - add lr, r2, sl - ldr sl, [r5, #8] - and fp, lr, r3 - orr r8, fp, r8 - add r8, ip, r8 - add r8, sb, r8 - add sb, sl, r8 - lsr r8, sb, #0x12 - orr r8, r8, sb, lsl #14 - add ip, lr, r8 - mvn r8, r2 - and sb, lr, r8 - ldr r8, [r5, #0xc] - add r5, r5, #0x10 - add r1, r1, #0x10 - and sl, ip, r2 - orr sb, sl, sb - add r3, r3, sb - add r3, r7, r3 - add r7, r8, r3 - lsr r3, r7, #0xc - orr r3, r3, r7, lsl #20 - add r3, ip, r3 - add r6, r6, #1 - cmp r6, #4 - blt _020803B0 - mov r6, #0 -_02080498: - ldr r8, [r1] - eor r7, r3, ip - eor r7, lr, r7 - ldr r8, [r4, r8, lsl #2] - add r2, r2, r7 - ldr r7, [r5] - add r2, r8, r2 - add r7, r7, r2 - lsr r2, r7, #0x1c - orr r2, r2, r7, lsl #4 - add r2, r3, r2 - ldr r8, [r1, #4] - eor r7, r2, r3 - eor r7, ip, r7 - ldr r8, [r4, r8, lsl #2] - add r7, lr, r7 - ldr sb, [r1, #8] - ldr sl, [r5, #4] - add r7, r8, r7 - add r8, sl, r7 - lsr r7, r8, #0x15 - orr r7, r7, r8, lsl #11 - add lr, r2, r7 - eor r8, lr, r2 - ldr r7, [r1, #0xc] - ldr sb, [r4, sb, lsl #2] - eor r8, r3, r8 - add r8, ip, r8 - add sb, sb, r8 - ldr sl, [r5, #8] - ldr r8, [r4, r7, lsl #2] - add sb, sl, sb - lsr r7, sb, #0x10 - orr r7, r7, sb, lsl #16 - add ip, lr, r7 - eor r7, ip, lr - eor r7, r2, r7 - add r3, r3, r7 - add r3, r8, r3 - ldr r7, [r5, #0xc] - add r5, r5, #0x10 - add r7, r7, r3 - add r1, r1, #0x10 - lsr r3, r7, #9 - orr r3, r3, r7, lsl #23 - add r3, ip, r3 - add r6, r6, #1 - cmp r6, #4 - blt _02080498 - mov r8, #0 -_02080560: - mvn r6, lr - ldr r7, [r1] - orr r6, r3, r6 - eor r6, ip, r6 - ldr r7, [r4, r7, lsl #2] - add r2, r2, r6 - ldr r6, [r5] - add r2, r7, r2 - add r6, r6, r2 - lsr r2, r6, #0x1a - orr r2, r2, r6, lsl #6 - add r2, r3, r2 - mvn r6, ip - ldr sb, [r1, #4] - orr r6, r2, r6 - eor r7, r3, r6 - ldr r6, [r1, #8] - ldr sb, [r4, sb, lsl #2] - add r7, lr, r7 - ldr sl, [r5, #4] - add r7, sb, r7 - add sb, sl, r7 - lsr r7, sb, #0x16 - orr sb, r7, sb, lsl #10 - ldr r7, [r1, #0xc] - add lr, r2, sb - mvn sb, r3 - ldr r6, [r4, r6, lsl #2] - orr sb, lr, sb - eor sb, r2, sb - add sb, ip, sb - add sb, r6, sb - ldr sl, [r5, #8] - ldr r6, [r4, r7, lsl #2] - add sb, sl, sb - lsr r7, sb, #0x11 - orr sb, r7, sb, lsl #15 - ldr r7, [r5, #0xc] - add ip, lr, sb - add r5, r5, #0x10 - add r1, r1, #0x10 - mvn sb, r2 - orr sb, ip, sb - eor sb, lr, sb - add r3, r3, sb - add r3, r6, r3 - add r6, r7, r3 - lsr r3, r6, #0xb - orr r3, r3, r6, lsl #21 - add r3, ip, r3 - add r8, r8, #1 - cmp r8, #4 - blt _02080560 + arm_func_start ov00_022D5CC8 +ov00_022D5CC8: @ 0x022D5CC8 + push {r3, lr} + ldrh r1, [r0, #2] + cmp r1, #8 + ldrheq r1, [r0, #4] + cmpeq r1, #0x16 + ldrheq r0, [r0, #6] + cmpeq r0, #0x25 + popne {r3, pc} + ldr r0, _022D5D3C @ =0x02326C4C + ldr r0, [r0] + add r0, r0, #0x2000 + ldr r0, [r0, #0x260] + sub r0, r0, #8 + cmp r0, #4 + addls pc, pc, r0, lsl #2 + pop {r3, pc} +_022D5D08: @ jump table + b _022D5D1C @ case 0 + b _022D5D28 @ case 1 + b _022D5D30 @ case 2 + pop {r3, pc} @ case 3 + b _022D5D28 @ case 4 +_022D5D1C: + mov r0, #0xc + bl ov00_022D5B1C + pop {r3, pc} +_022D5D28: + bl ov00_022D5C6C + pop {r3, pc} +_022D5D30: + mov r0, #0xc + bl ov00_022D5B1C + pop {r3, pc} + .align 2, 0 +_022D5D3C: .4byte 0x02326C4C + arm_func_end ov00_022D5CC8 +_022D5D40: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xB2, 0x10, 0xD0, 0xE1, 0x14, 0x20, 0xA0, 0xE3, 0x04, 0x00, 0x51, 0xE3 + .byte 0x01, 0xF1, 0x8F, 0x90, 0x91, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA, 0x81, 0x00, 0x00, 0xEA + .byte 0x8E, 0x00, 0x00, 0xEA, 0x8D, 0x00, 0x00, 0xEA, 0x8C, 0x00, 0x00, 0xEA, 0xB0, 0x00, 0xD0, 0xE1 + .byte 0x19, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0xCA, 0x3A, 0x00, 0x00, 0xAA, 0x06, 0x00, 0x50, 0xE3 + .byte 0x00, 0xF1, 0x8F, 0x90, 0x55, 0x00, 0x00, 0xEA, 0x54, 0x00, 0x00, 0xEA, 0x53, 0x00, 0x00, 0xEA + .byte 0x52, 0x00, 0x00, 0xEA, 0x09, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x00, 0xEA, 0x20, 0x00, 0x00, 0xEA + .byte 0x27, 0x00, 0x00, 0xEA, 0x1D, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0xCA, 0x28, 0x00, 0x00, 0x0A + .byte 0x4A, 0x00, 0x00, 0xEA, 0x27, 0x00, 0x50, 0xE3, 0x34, 0x00, 0x00, 0x0A, 0x47, 0x00, 0x00, 0xEA + .byte 0x10, 0x02, 0x9F, 0xE5, 0x32, 0xA7, 0xFF, 0xEB, 0x00, 0x20, 0xA0, 0xE1, 0x43, 0x00, 0x00, 0xEA + .byte 0x67, 0xA3, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x50, 0xE3 + .byte 0x07, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0x4B, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3 + .byte 0xE4, 0x31, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x20, 0xA0, 0xE1, 0x20, 0xFF, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0x0B, 0x00, 0xA0, 0xE3, 0x43, 0xFF, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE3 + .byte 0xC8, 0x31, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE1, 0x07, 0x00, 0xA0, 0xE3, 0x18, 0xFF, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0x03, 0x00, 0xA0, 0xE3, 0x3B, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3 + .byte 0xAC, 0x31, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x20, 0xA0, 0xE1, 0x10, 0xFF, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0x8C, 0x01, 0x9F, 0xE5, 0x01, 0xA7, 0xFF, 0xEB, 0x00, 0x20, 0xA0, 0xE1 + .byte 0x22, 0x00, 0x00, 0xEA, 0x7C, 0x01, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0xBF, 0xAD, 0xFF, 0xEB + .byte 0x00, 0x20, 0xA0, 0xE1, 0x1D, 0x00, 0x00, 0xEA, 0x78, 0x11, 0x9F, 0xE5, 0x64, 0x01, 0x9F, 0xE5 + .byte 0x00, 0x30, 0x91, 0xE5, 0x02, 0x2A, 0x83, 0xE2, 0x50, 0x12, 0xD2, 0xE5, 0x51, 0x22, 0xD2, 0xE5 + .byte 0x22, 0x3C, 0x83, 0xE2, 0x68, 0xAD, 0xFF, 0xEB, 0x00, 0x20, 0xA0, 0xE1, 0x13, 0x00, 0x00, 0xEA + .byte 0x50, 0x01, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x02, 0x0A, 0x82, 0xE2, 0x64, 0x12, 0x90, 0xE5 + .byte 0x03, 0x07, 0x01, 0xE2, 0x03, 0x07, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13 + .byte 0x00, 0x08, 0xA0, 0xE1, 0x20, 0xC8, 0xA0, 0xE1, 0x03, 0x18, 0x01, 0xE2, 0x03, 0x08, 0x51, 0xE3 + .byte 0x01, 0x30, 0xA0, 0x13, 0x85, 0x1D, 0x82, 0xE2, 0x1C, 0x01, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0x03 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x00, 0xC0, 0x8D, 0xE5, 0x62, 0xA8, 0xFF, 0xEB, 0x00, 0x20, 0xA0, 0xE1 + .byte 0x02, 0x00, 0x52, 0xE3, 0x08, 0x80, 0xBD, 0x08, 0x03, 0x00, 0x52, 0xE3, 0x0F, 0x00, 0x00, 0x0A + .byte 0x08, 0x00, 0x52, 0xE3, 0x0D, 0x00, 0x00, 0x1A, 0x0C, 0x00, 0xA0, 0xE3, 0x06, 0xFF, 0xFF, 0xEB + .byte 0xE0, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x22, 0x0C, 0x81, 0xE2 + .byte 0xF0, 0x08, 0xD0, 0xE1, 0x05, 0x00, 0x50, 0xE3, 0x85, 0x1D, 0x81, 0x02, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x10, 0xA0, 0x13, 0x6B, 0x3E, 0x60, 0xE2, 0xD5, 0xFE, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x0B, 0x00, 0xA0, 0xE3, 0xF8, 0xFE, 0xFF, 0xEB, 0xA8, 0x00, 0x9F, 0xE5, 0xAC, 0x30, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x22, 0x0C, 0x81, 0xE2, 0xF0, 0x08, 0xD0, 0xE1 + .byte 0x05, 0x00, 0x50, 0xE3, 0x85, 0x1D, 0x81, 0x02, 0x00, 0x10, 0xA0, 0x13, 0x07, 0x00, 0xA0, 0xE3 + .byte 0xC7, 0xFE, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x0C, 0x00, 0xA0, 0xE3, 0xEA, 0xFE, 0xFF, 0xEB + .byte 0x70, 0x00, 0x9F, 0xE5, 0x78, 0x30, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x00, 0x20, 0xA0, 0xE3 + .byte 0x22, 0x0C, 0x81, 0xE2, 0xF0, 0x08, 0xD0, 0xE1, 0x05, 0x00, 0x50, 0xE3, 0x85, 0x1D, 0x81, 0x02 + .byte 0x00, 0x10, 0xA0, 0x13, 0x01, 0x00, 0xA0, 0xE3, 0xB9, 0xFE, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x0B, 0x00, 0xA0, 0xE3, 0xDC, 0xFE, 0xFF, 0xEB, 0x38, 0x00, 0x9F, 0xE5, 0x44, 0x30, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x22, 0x0C, 0x81, 0xE2, 0xF0, 0x08, 0xD0, 0xE1 + .byte 0x05, 0x00, 0x50, 0xE3, 0x85, 0x1D, 0x81, 0x02, 0x00, 0x10, 0xA0, 0x13, 0x07, 0x00, 0xA0, 0xE3 + .byte 0xAB, 0xFE, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x40, 0x5D, 0x2D, 0x02, 0x63, 0x06, 0x00, 0x00 + .byte 0x6C, 0x06, 0x00, 0x00, 0x73, 0x06, 0x00, 0x00, 0x4C, 0x6C, 0x32, 0x02, 0x58, 0x63, 0x2D, 0x02 + .byte 0xB8, 0x06, 0x00, 0x00, 0xDE, 0x06, 0x00, 0x00, 0xE8, 0x06, 0x00, 0x00, 0xF8, 0x41, 0x2D, 0xE9 + .byte 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0xB2, 0x00, 0xD5, 0xE1, 0x14, 0x40, 0xA0, 0xE3 + .byte 0x04, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x9D, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA + .byte 0x98, 0x00, 0x00, 0xEA, 0x9A, 0x00, 0x00, 0xEA, 0x99, 0x00, 0x00, 0xEA, 0x98, 0x00, 0x00, 0xEA + .byte 0x80, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x02, 0x0A, 0x80, 0xE2, 0x60, 0x02, 0x90, 0xE5 + .byte 0x05, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x1A, 0x06, 0x00, 0xA0, 0xE3, 0xB2, 0xFE, 0xFF, 0xEB + .byte 0x00, 0x00, 0xA0, 0xE3, 0x60, 0x32, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x20, 0xA0, 0xE1 + .byte 0x87, 0xFE, 0xFF, 0xEB, 0x4C, 0x12, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5, 0x02, 0x0A, 0x82, 0xE2 + .byte 0x60, 0x02, 0x90, 0xE5, 0x06, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x07, 0x00, 0x50, 0xE3 + .byte 0x60, 0x00, 0x00, 0x0A, 0x0D, 0x00, 0x50, 0xE3, 0x62, 0x00, 0x00, 0x0A, 0x64, 0x00, 0x00, 0xEA + .byte 0x22, 0x0C, 0x82, 0xE2, 0x07, 0x20, 0xA0, 0xE3, 0xB0, 0x28, 0xC0, 0xE1, 0xB8, 0x00, 0xD5, 0xE1 + .byte 0x05, 0x00, 0x50, 0xE3, 0x1C, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x91, 0xE5, 0x22, 0x1C, 0x80, 0xE2 + .byte 0x02, 0x0A, 0x80, 0xE2, 0xBC, 0x18, 0xD1, 0xE1, 0x88, 0x02, 0x90, 0xE5, 0x78, 0x90, 0xF6, 0xEB + .byte 0xBE, 0x00, 0xD5, 0xE1, 0x00, 0x40, 0xA0, 0xE3, 0x00, 0x00, 0x50, 0xE3, 0x12, 0x00, 0x00, 0xDA + .byte 0xE8, 0x81, 0x9F, 0xE5, 0x07, 0x70, 0xA0, 0xE3, 0x04, 0x60, 0xA0, 0xE1, 0x84, 0x00, 0x85, 0xE0 + .byte 0x04, 0x21, 0x85, 0xE0, 0xB0, 0x15, 0xD0, 0xE1, 0x10, 0x00, 0x92, 0xE5, 0x1A, 0x03, 0x00, 0xEB + .byte 0x00, 0x80, 0x8D, 0xE5, 0x04, 0x01, 0x85, 0xE0, 0x10, 0x20, 0x90, 0xE5, 0x07, 0x00, 0xA0, 0xE1 + .byte 0x06, 0x10, 0xA0, 0xE1, 0x05, 0x30, 0xA0, 0xE1, 0x6E, 0xFE, 0xFF, 0xEB, 0xBE, 0x00, 0xD5, 0xE1 + .byte 0x01, 0x40, 0x84, 0xE2, 0x00, 0x00, 0x54, 0xE1, 0xEF, 0xFF, 0xFF, 0xBA, 0x94, 0x01, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x02, 0x0A, 0x80, 0xE2, 0x64, 0x12, 0x90, 0xE5, 0x03, 0x05, 0x01, 0xE2 + .byte 0x03, 0x05, 0x50, 0xE3, 0x13, 0x00, 0x00, 0x1A, 0x84, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x01, 0xE0 + .byte 0xBC, 0xFE, 0xFF, 0xEB, 0x00, 0x10, 0xB0, 0xE1, 0x0E, 0x00, 0x00, 0x0A, 0x64, 0x01, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x02, 0x0A, 0x80, 0xE2, 0x84, 0x62, 0x90, 0xE5, 0x06, 0x00, 0xA0, 0xE1 + .byte 0xD2, 0xE7, 0xF6, 0xEB, 0x00, 0x00, 0x51, 0xE3, 0x06, 0x00, 0x00, 0x1A, 0x54, 0x41, 0x9F, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x06, 0x20, 0xA0, 0xE1, 0x01, 0x30, 0xA0, 0xE1, 0x08, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x40, 0x8D, 0xE5, 0x4F, 0xFE, 0xFF, 0xEB, 0xBA, 0x00, 0xD5, 0xE1, 0xB4, 0xFE, 0xFF, 0xEB + .byte 0x20, 0x00, 0x60, 0xE2, 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x08, 0xA0, 0xE1, 0x14, 0xFE, 0xFF, 0xEB + .byte 0x10, 0x11, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE3, 0x12, 0x20, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5 + .byte 0xC2, 0x20, 0xA0, 0xE1, 0x22, 0x0C, 0x80, 0xE2, 0xBE, 0x28, 0xC0, 0xE1, 0x00, 0x00, 0x91, 0xE5 + .byte 0x22, 0x1C, 0x80, 0xE2, 0x02, 0x0A, 0x80, 0xE2, 0xBC, 0x18, 0xD1, 0xE1, 0x88, 0x02, 0x90, 0xE5 + .byte 0x33, 0x90, 0xF6, 0xEB, 0xDC, 0x20, 0x9F, 0xE5, 0xEC, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x92, 0xE5 + .byte 0x02, 0x1A, 0x81, 0xE2, 0x84, 0x32, 0x91, 0xE5, 0x01, 0x30, 0x83, 0xE2, 0x84, 0x32, 0x81, 0xE5 + .byte 0x00, 0x10, 0x92, 0xE5, 0xA2, 0x1F, 0x81, 0xE2, 0x02, 0x1A, 0x81, 0xE2, 0x35, 0xA7, 0xFF, 0xEB + .byte 0x00, 0x40, 0xA0, 0xE1, 0x06, 0x00, 0x00, 0xEA, 0xC0, 0x00, 0x9F, 0xE5, 0x85, 0xA7, 0xFF, 0xEB + .byte 0x00, 0x40, 0xA0, 0xE1, 0x02, 0x00, 0x00, 0xEA, 0x93, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0xF8, 0x81, 0xBD, 0xE8, 0x02, 0x00, 0x54, 0xE3, 0x04, 0xD0, 0x8D, 0x02, 0xF8, 0x81, 0xBD, 0x08 + .byte 0x03, 0x00, 0x54, 0xE3, 0x0A, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x54, 0xE3, 0x08, 0x00, 0x00, 0x1A + .byte 0x0C, 0x00, 0xA0, 0xE3, 0x34, 0xFE, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE3, 0x80, 0x30, 0x9F, 0xE5 + .byte 0x01, 0x20, 0xA0, 0xE1, 0x01, 0x00, 0xA0, 0xE3, 0x09, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0xF8, 0x81, 0xBD, 0xE8, 0x0B, 0x00, 0xA0, 0xE3, 0x2B, 0xFE, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE3 + .byte 0x60, 0x30, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE1, 0x07, 0x00, 0xA0, 0xE3, 0x00, 0xFE, 0xFF, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF8, 0x81, 0xBD, 0xE8, 0x77, 0xFE, 0xFF, 0xEB, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0xF8, 0x81, 0xBD, 0xE8, 0x0B, 0x00, 0xA0, 0xE3, 0x1F, 0xFE, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE3 + .byte 0x34, 0x30, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE1, 0x07, 0x00, 0xA0, 0xE3, 0xF4, 0xFD, 0xFF, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0xF8, 0x81, 0xBD, 0xE8, 0x4C, 0x6C, 0x32, 0x02, 0x04, 0x07, 0x00, 0x00 + .byte 0x1A, 0x07, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0x28, 0x07, 0x00, 0x00, 0xFC, 0x5F, 0x2D, 0x02 + .byte 0xE0, 0x62, 0x2D, 0x02, 0x53, 0x07, 0x00, 0x00, 0x5C, 0x07, 0x00, 0x00, 0x6D, 0x07, 0x00, 0x00 + .byte 0x08, 0x40, 0x2D, 0xE9, 0xB2, 0x00, 0xD0, 0xE1, 0x04, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90 + .byte 0x0E, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x00, 0xEA + .byte 0x0A, 0x00, 0x00, 0xEA, 0x09, 0x00, 0x00, 0xEA, 0x03, 0x00, 0xA0, 0xE3, 0x02, 0xFE, 0xFF, 0xEB + .byte 0x00, 0x00, 0xA0, 0xE3, 0x34, 0x30, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x20, 0xA0, 0xE1 + .byte 0xD7, 0xFD, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x4F, 0xFE, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x0B, 0x00, 0xA0, 0xE3, 0xF8, 0xFD, 0xFF, 0xEB, 0x00, 0x10, 0xA0, 0xE3, 0x10, 0x30, 0x9F, 0xE5 + .byte 0x01, 0x20, 0xA0, 0xE1, 0x07, 0x00, 0xA0, 0xE3, 0xCD, 0xFD, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x83, 0x07, 0x00, 0x00, 0x93, 0x07, 0x00, 0x00, 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1 + .byte 0xB2, 0x00, 0xD4, 0xE1, 0x0C, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x81, 0x00, 0x00, 0xEA + .byte 0x0B, 0x00, 0x00, 0xEA, 0x76, 0x00, 0x00, 0xEA, 0x7E, 0x00, 0x00, 0xEA, 0x7D, 0x00, 0x00, 0xEA + .byte 0x7C, 0x00, 0x00, 0xEA, 0x7B, 0x00, 0x00, 0xEA, 0x76, 0x00, 0x00, 0xEA, 0x79, 0x00, 0x00, 0xEA + .byte 0x78, 0x00, 0x00, 0xEA, 0x77, 0x00, 0x00, 0xEA, 0x76, 0x00, 0x00, 0xEA, 0x71, 0x00, 0x00, 0xEA + .byte 0x70, 0x00, 0x00, 0xEA, 0xB8, 0x00, 0xD4, 0xE1, 0x09, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x00, 0xCA + .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0xA0, 0x5B, 0x00, 0x00, 0xEA, 0x5A, 0x00, 0x00, 0xEA + .byte 0x59, 0x00, 0x00, 0xEA, 0x58, 0x00, 0x00, 0xEA, 0x57, 0x00, 0x00, 0xEA, 0x56, 0x00, 0x00, 0xEA + .byte 0x55, 0x00, 0x00, 0xEA, 0x10, 0x80, 0xBD, 0xE8, 0x20, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA + .byte 0x02, 0x00, 0x00, 0xEA, 0x1A, 0x00, 0x50, 0xE3, 0x10, 0x80, 0xBD, 0x08, 0x4E, 0x00, 0x00, 0xEA + .byte 0xA8, 0x11, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5, 0x02, 0x0A, 0x82, 0xE2, 0x60, 0x02, 0x90, 0xE5 + .byte 0x08, 0x00, 0x40, 0xE2, 0x04, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x10, 0x80, 0xBD, 0xE8 + .byte 0x06, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x00, 0xEA, 0x10, 0x80, 0xBD, 0xE8 + .byte 0x0C, 0x00, 0x00, 0xEA, 0x22, 0x0C, 0x82, 0xE2, 0x00, 0x10, 0xA0, 0xE3, 0xB2, 0x18, 0xC0, 0xE1 + .byte 0x0C, 0x00, 0xA0, 0xE3, 0xB8, 0xFD, 0xFF, 0xEB, 0x10, 0x80, 0xBD, 0xE8, 0x22, 0x0C, 0x82, 0xE2 + .byte 0x00, 0x20, 0xA0, 0xE3, 0xB2, 0x28, 0xC0, 0xE1, 0x00, 0x00, 0x91, 0xE5, 0x06, 0x10, 0xA0, 0xE3 + .byte 0x22, 0x0C, 0x80, 0xE2, 0xB0, 0x18, 0xC0, 0xE1, 0x03, 0xFE, 0xFF, 0xEB, 0x10, 0x80, 0xBD, 0xE8 + .byte 0x38, 0x11, 0x9F, 0xE5, 0x00, 0x30, 0x91, 0xE5, 0x02, 0x0A, 0x83, 0xE2, 0x60, 0x02, 0x90, 0xE5 + .byte 0x0C, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x08, 0x00, 0xA0, 0xE3, 0xA6, 0xFD, 0xFF, 0xEB + .byte 0xF9, 0xFD, 0xFF, 0xEB, 0x10, 0x80, 0xBD, 0xE8, 0xBA, 0x20, 0xD4, 0xE1, 0x01, 0x00, 0x52, 0xE3 + .byte 0x23, 0x00, 0x00, 0x3A, 0x08, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x52, 0xE1, 0x20, 0x00, 0x00, 0x8A + .byte 0x22, 0x0C, 0x83, 0xE2, 0xB2, 0x28, 0xC0, 0xE1, 0x00, 0x10, 0x91, 0xE5, 0xF4, 0x00, 0x9F, 0xE5 + .byte 0x15, 0x1C, 0x81, 0xE2, 0x62, 0x2E, 0xA0, 0xE3, 0x5E, 0xA8, 0xFF, 0xEB, 0x02, 0x00, 0x50, 0xE3 + .byte 0x10, 0x80, 0xBD, 0x08, 0x03, 0x00, 0x50, 0xE3, 0x0B, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x50, 0xE3 + .byte 0x09, 0x00, 0x00, 0x1A, 0x0C, 0x00, 0xA0, 0xE3, 0x8F, 0xFD, 0xFF, 0xEB, 0xBC, 0x00, 0x9F, 0xE5 + .byte 0xC4, 0x30, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x85, 0x1D, 0x81, 0xE2 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x62, 0xFD, 0xFF, 0xEB, 0x10, 0x80, 0xBD, 0xE8, 0x0B, 0x00, 0xA0, 0xE3 + .byte 0x85, 0xFD, 0xFF, 0xEB, 0x94, 0x00, 0x9F, 0xE5, 0xA0, 0x30, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5 + .byte 0x07, 0x00, 0xA0, 0xE3, 0x85, 0x1D, 0x81, 0xE2, 0x00, 0x20, 0xA0, 0xE3, 0x58, 0xFD, 0xFF, 0xEB + .byte 0x10, 0x80, 0xBD, 0xE8, 0xD0, 0xFD, 0xFF, 0xEB, 0x10, 0x80, 0xBD, 0xE8, 0x0B, 0x00, 0xA0, 0xE3 + .byte 0x79, 0xFD, 0xFF, 0xEB, 0x64, 0x00, 0x9F, 0xE5, 0xB8, 0x20, 0xD4, 0xE1, 0x00, 0x00, 0x90, 0xE5 + .byte 0x6C, 0x30, 0x9F, 0xE5, 0x85, 0x1D, 0x80, 0xE2, 0x07, 0x00, 0xA0, 0xE3, 0x4C, 0xFD, 0xFF, 0xEB + .byte 0x10, 0x80, 0xBD, 0xE8, 0x44, 0x00, 0x9F, 0xE5, 0xBE, 0x10, 0xD4, 0xE1, 0x00, 0x00, 0x90, 0xE5 + .byte 0x22, 0x0C, 0x80, 0xE2, 0xB8, 0x1F, 0xC0, 0xE1, 0x08, 0x00, 0xA0, 0xE3, 0x6A, 0xFD, 0xFF, 0xEB + .byte 0xBD, 0xFD, 0xFF, 0xEB, 0x10, 0x80, 0xBD, 0xE8, 0x0B, 0x00, 0xA0, 0xE3, 0x66, 0xFD, 0xFF, 0xEB + .byte 0x18, 0x00, 0x9F, 0xE5, 0x2C, 0x30, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x07, 0x00, 0xA0, 0xE3 + .byte 0x85, 0x1D, 0x81, 0xE2, 0x00, 0x20, 0xA0, 0xE3, 0x39, 0xFD, 0xFF, 0xEB, 0x10, 0x80, 0xBD, 0xE8 + .byte 0x4C, 0x6C, 0x32, 0x02, 0xD7, 0x07, 0x00, 0x00, 0x84, 0x66, 0x2D, 0x02, 0xED, 0x07, 0x00, 0x00 + .byte 0xF6, 0x07, 0x00, 0x00, 0x04, 0x08, 0x00, 0x00, 0x1B, 0x08, 0x00, 0x00, 0x08, 0x40, 0x2D, 0xE9 + .byte 0xB2, 0x00, 0xD0, 0xE1, 0x04, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x1F, 0x00, 0x00, 0xEA + .byte 0x03, 0x00, 0x00, 0xEA, 0x19, 0x00, 0x00, 0xEA, 0x1C, 0x00, 0x00, 0xEA, 0x17, 0x00, 0x00, 0xEA + .byte 0x1A, 0x00, 0x00, 0xEA, 0x8C, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x02, 0x0A, 0x81, 0xE2 + .byte 0x60, 0x02, 0x90, 0xE5, 0x0C, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x0A, 0x00, 0xA0, 0xE3 + .byte 0x45, 0xFD, 0xFF, 0xEB, 0x98, 0xFD, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x22, 0x1C, 0x81, 0xE2 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x03, 0x00, 0xA0, 0xE3, 0xB2, 0x28, 0xC1, 0xE1, 0x3E, 0xFD, 0xFF, 0xEB + .byte 0x50, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0x91, 0xE5, 0x48, 0x30, 0x9F, 0xE5 + .byte 0x00, 0x20, 0xA0, 0xE1, 0x85, 0x1D, 0x81, 0xE2, 0x11, 0xFD, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x0A, 0x00, 0xA0, 0xE3, 0x34, 0xFD, 0xFF, 0xEB, 0x87, 0xFD, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x0B, 0x00, 0xA0, 0xE3, 0x30, 0xFD, 0xFF, 0xEB, 0x18, 0x00, 0x9F, 0xE5, 0x1C, 0x30, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x07, 0x00, 0xA0, 0xE3, 0x85, 0x1D, 0x81, 0xE2, 0x00, 0x20, 0xA0, 0xE3 + .byte 0x03, 0xFD, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x4C, 0x6C, 0x32, 0x02, 0x3D, 0x08, 0x00, 0x00 + .byte 0x4F, 0x08, 0x00, 0x00 + + arm_func_start ov00_022D6684 +ov00_022D6684: @ 0x022D6684 + push {r4, lr} + mov r4, r0 + ldrh r0, [r4, #2] + cmp r0, #0 + beq _022D66A0 + cmp r0, #4 + b _022D675C +_022D66A0: + ldrh r0, [r4, #4] + cmp r0, #0xe + beq _022D66B8 + cmp r0, #0xf + beq _022D6708 + b _022D6734 +_022D66B8: + ldr r0, _022D6784 @ =0x02326C4C + ldr r0, [r0] + add r0, r0, #0x2000 + ldr r0, [r0, #0x260] + cmp r0, #0xc + bne _022D66E0 + mov r0, #8 + bl ov00_022D5B1C + bl ov00_022D5C6C + pop {r4, pc} +_022D66E0: + mov r0, #9 + bl ov00_022D5B1C + ldr r1, _022D6784 @ =0x02326C4C + mov r0, #0 + ldr r1, [r1] + ldr r3, _022D6788 @ =0x00000872 + mov r2, r0 + add r1, r1, #0x2140 + bl ov00_022D5A84 + pop {r4, pc} +_022D6708: + ldr r0, [r4, #8] + ldrh r0, [r0, #0xe] + asr r0, r0, #8 + and r0, r0, #0xff + bl ov00_022D758C + ldr r0, [r4, #8] + mov r1, #0x620 + bl FUN_0207A2A4 + ldr r0, [r4, #8] + bl ov00_022D709C + pop {r4, pc} +_022D6734: + mov r0, #0xb + bl ov00_022D5B1C + ldr r0, _022D6784 @ =0x02326C4C + ldrh r2, [r4, #4] + ldr r0, [r0] + ldr r3, _022D678C @ =0x00000881 + add r1, r0, #0x2140 + mov r0, #7 + bl ov00_022D5A84 + pop {r4, pc} +_022D675C: + mov r0, #0xb + bl ov00_022D5B1C + ldr r0, _022D6784 @ =0x02326C4C + ldr r3, _022D6790 @ =0x0000088C ldr r1, [r0] - add r1, r1, r2 - str r1, [r0] + mov r0, #7 + add r1, r1, #0x2140 + mov r2, #0 + bl ov00_022D5A84 + pop {r4, pc} + .align 2, 0 +_022D6784: .4byte 0x02326C4C +_022D6788: .4byte 0x00000872 +_022D678C: .4byte 0x00000881 +_022D6790: .4byte 0x0000088C + arm_func_end ov00_022D6684 +_022D6794: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xB2, 0x00, 0xD0, 0xE1, 0x04, 0x00, 0x50, 0xE3 + .byte 0x00, 0xF1, 0x8F, 0x90, 0x33, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA, 0x2D, 0x00, 0x00, 0xEA + .byte 0x30, 0x00, 0x00, 0xEA, 0x2B, 0x00, 0x00, 0xEA, 0x2E, 0x00, 0x00, 0xEA, 0xDC, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x02, 0x0A, 0x80, 0xE2, 0x60, 0x02, 0x90, 0xE5, 0x0C, 0x00, 0x50, 0xE3 + .byte 0x03, 0x00, 0x00, 0x1A, 0x0A, 0x00, 0xA0, 0xE3, 0xCF, 0xFC, 0xFF, 0xEB, 0x22, 0xFD, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0xB8, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x50, 0xA6, 0xFF, 0xEB + .byte 0x02, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x08, 0x03, 0x00, 0x50, 0xE3, 0x0B, 0x00, 0x00, 0x0A + .byte 0x08, 0x00, 0x50, 0xE3, 0x0D, 0x00, 0x00, 0x1A, 0x0C, 0x00, 0xA0, 0xE3, 0xC2, 0xFC, 0xFF, 0xEB + .byte 0x88, 0x00, 0x9F, 0xE5, 0x8C, 0x30, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x85, 0x1D, 0x81, 0xE2, 0x00, 0x20, 0xA0, 0xE3, 0x95, 0xFC, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x0A, 0x00, 0xA0, 0xE3, 0xB8, 0xFC, 0xFF, 0xEB, 0x0B, 0xFD, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x0B, 0x00, 0xA0, 0xE3, 0xB4, 0xFC, 0xFF, 0xEB, 0x50, 0x10, 0x9F, 0xE5, 0x07, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x10, 0x91, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x85, 0x1D, 0x81, 0xE2, 0x23, 0x3D, 0xA0, 0xE3 + .byte 0x87, 0xFC, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x0A, 0x00, 0xA0, 0xE3, 0xAA, 0xFC, 0xFF, 0xEB + .byte 0xFD, 0xFC, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x0B, 0x00, 0xA0, 0xE3, 0xA6, 0xFC, 0xFF, 0xEB + .byte 0x18, 0x00, 0x9F, 0xE5, 0x20, 0x30, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x07, 0x00, 0xA0, 0xE3 + .byte 0x85, 0x1D, 0x81, 0xE2, 0x00, 0x20, 0xA0, 0xE3, 0x79, 0xFC, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x4C, 0x6C, 0x32, 0x02, 0xBC, 0x65, 0x2D, 0x02, 0xB4, 0x08, 0x00, 0x00, 0xD3, 0x08, 0x00, 0x00 + + arm_func_start ov00_022D68B0 +ov00_022D68B0: @ 0x022D68B0 + push {r3, r4, lr} + sub sp, sp, #4 + ldrh r0, [r0, #2] + cmp r0, #0 + bne _022D6B88 + ldr r2, _022D6BAC @ =0x02326C4C + mov r0, #0 + ldr r1, [r2] + add r1, r1, #0x2000 + strb r0, [r1, #0x26b] + ldr r1, [r2] + add r1, r1, #0x2200 + strh r0, [r1, #0x82] + ldr r3, [r2] + add r1, r3, #0x2000 + ldr r1, [r1, #0x260] + cmp r1, #0xd + addls pc, pc, r1, lsl #2 + b _022D6B58 +_022D68FC: @ jump table + b _022D6B58 @ case 0 + b _022D6B58 @ case 1 + b _022D6B58 @ case 2 + b _022D6B58 @ case 3 + b _022D6B58 @ case 4 + b _022D6934 @ case 5 + b _022D6934 @ case 6 + b _022D6958 @ case 7 + b _022D697C @ case 8 + b _022D6A94 @ case 9 + b _022D6AC0 @ case 10 + b _022D6B58 @ case 11 + b _022D6A94 @ case 12 + b _022D6AEC @ case 13 +_022D6934: + mov r0, #3 + bl ov00_022D5B1C + mov r1, #0 + ldr r3, _022D6BB0 @ =0x000008F5 + mov r2, r1 + mov r0, #1 + bl ov00_022D5A84 + add sp, sp, #4 + pop {r3, r4, pc} +_022D6958: + mov r0, #3 + bl ov00_022D5B1C + mov r0, #0 + ldr r3, _022D6BB4 @ =0x000008FB + mov r1, r0 + mov r2, r0 + bl ov00_022D5A84 + add sp, sp, #4 + pop {r3, r4, pc} +_022D697C: + add r1, r3, #0x2200 + ldrh r4, [r1, #0xf8] + strh r0, [r1, #0xf8] + cmp r4, #0x12 + bne _022D6A68 + ldr r1, [r2] + add r1, r1, #0x2100 + ldrh r3, [r1, #0x70] + and ip, r3, #0x24 + cmp ip, #0x24 + beq _022D6A68 + orr r3, r3, #0x24 + strh r3, [r1, #0x70] + ldr lr, [r2] + add r1, lr, #0x2000 + ldr r2, [r1, #0x264] + and r1, r2, #0xc0000 + cmp r1, #0xc0000 + moveq r0, #1 + and r1, r2, #0x30000 + cmp r1, #0x30000 + lsl r0, r0, #0x10 + lsr ip, r0, #0x10 + movne r3, #1 + ldr r0, _022D6BB8 @ =0x022D6358 + moveq r3, #0 + add r1, lr, #0x2140 + mov r2, #0 + str ip, [sp] + bl ov00_022C0068 + cmp r0, #2 + addeq sp, sp, #4 + popeq {r3, r4, pc} + cmp r0, #3 + beq _022D6A3C + cmp r0, #8 + bne _022D6A3C + mov r0, #0xc + bl ov00_022D5B1C + ldr r0, _022D6BAC @ =0x02326C4C + ldr r3, _022D6BBC @ =0x0000091C + ldr r0, [r0] + mov r2, r4 + add r1, r0, #0x2140 + mov r0, #1 + bl ov00_022D5A84 + add sp, sp, #4 + pop {r3, r4, pc} +_022D6A3C: + mov r0, #0xb + bl ov00_022D5B1C + ldr r0, _022D6BAC @ =0x02326C4C + ldr r3, _022D6BC0 @ =0x00000925 + ldr r0, [r0] + mov r2, r4 + add r1, r0, #0x2140 + mov r0, #7 + bl ov00_022D5A84 + add sp, sp, #4 + pop {r3, r4, pc} +_022D6A68: + mov r0, #3 + bl ov00_022D5B1C + ldr r0, _022D6BAC @ =0x02326C4C + ldr r3, _022D6BC4 @ =0x0000092D + ldr r0, [r0] + mov r2, r4 + add r1, r0, #0x2140 + mov r0, #1 + bl ov00_022D5A84 + add sp, sp, #4 + pop {r3, r4, pc} +_022D6A94: + mov r0, #3 + bl ov00_022D5B1C + ldr r0, _022D6BAC @ =0x02326C4C + ldr r3, _022D6BC8 @ =0x00000935 + ldr r1, [r0] + mov r0, #0 + add r1, r1, #0x2140 + mov r2, #1 + bl ov00_022D5A84 + add sp, sp, #4 + pop {r3, r4, pc} +_022D6AC0: + mov r0, #3 + bl ov00_022D5B1C + ldr r1, _022D6BAC @ =0x02326C4C + mov r0, #0 + ldr r1, [r1] + ldr r3, _022D6BCC @ =0x0000093C + mov r2, r0 + add r1, r1, #0x2140 + bl ov00_022D5A84 + add sp, sp, #4 + pop {r3, r4, pc} +_022D6AEC: + ldr r0, _022D6BD0 @ =0x022D5D40 + bl ov00_022BFAD4 + cmp r0, #2 + addeq sp, sp, #4 + popeq {r3, r4, pc} + cmp r0, #3 + beq _022D6B34 + cmp r0, #8 + bne _022D6B34 + mov r0, #0xc + bl ov00_022D5B1C + mov r1, #0 + ldr r3, _022D6BD4 @ =0x0000094A + mov r2, r1 + mov r0, #1 + bl ov00_022D5A84 + add sp, sp, #4 + pop {r3, r4, pc} +_022D6B34: + mov r0, #0xb + bl ov00_022D5B1C + mov r1, #0 + ldr r3, _022D6BD8 @ =0x00000953 + mov r2, r1 + mov r0, #7 + bl ov00_022D5A84 + add sp, sp, #4 + pop {r3, r4, pc} +_022D6B58: + mov r0, #0xb + bl ov00_022D5B1C + ldr r1, _022D6BAC @ =0x02326C4C + mov r0, #7 + ldr r1, [r1] + rsb r3, r0, #0x960 + add r1, r1, #0x2000 + ldr r2, [r1, #0x260] + mov r1, #0 + bl ov00_022D5A84 + add sp, sp, #4 + pop {r3, r4, pc} +_022D6B88: + mov r0, #0xb + bl ov00_022D5B1C + mov r1, #0 + mov r2, r1 + mov r0, #7 + mov r3, #0x960 + bl ov00_022D5A84 + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_022D6BAC: .4byte 0x02326C4C +_022D6BB0: .4byte 0x000008F5 +_022D6BB4: .4byte 0x000008FB +_022D6BB8: .4byte 0x022D6358 +_022D6BBC: .4byte 0x0000091C +_022D6BC0: .4byte 0x00000925 +_022D6BC4: .4byte 0x0000092D +_022D6BC8: .4byte 0x00000935 +_022D6BCC: .4byte 0x0000093C +_022D6BD0: .4byte 0x022D5D40 +_022D6BD4: .4byte 0x0000094A +_022D6BD8: .4byte 0x00000953 + arm_func_end ov00_022D68B0 + + arm_func_start ov00_022D6BDC +ov00_022D6BDC: @ 0x022D6BDC + push {r4, lr} + bl FUN_0207B7E4 + mov r4, r0 + bl ov00_022D570C + cmp r0, #0 + bne _022D6C00 + mov r0, r4 + bl FUN_0207B7F8 + pop {r4, pc} +_022D6C00: + add r1, r0, #0x2000 + ldr r0, [r1, #0x270] + cmp r0, #0 + beq _022D6C24 + ldr r2, [r1, #0x274] + cmp r2, #0 + ble _022D6C24 + mov r1, #0 + bl FUN_0207C40C +_022D6C24: + mov r0, r4 + bl FUN_0207B7F8 + pop {r4, pc} + arm_func_end ov00_022D6BDC + + arm_func_start ov00_022D6C30 +ov00_022D6C30: @ 0x022D6C30 + push {r3, r4, r5, lr} + bl FUN_0207B7E4 + mov r4, r0 + bl ov00_022D570C + cmp r0, #0 + mov r5, #0 + bne _022D6C5C + mov r0, r4 + bl FUN_0207B7F8 + mov r0, r5 + pop {r3, r4, r5, pc} +_022D6C5C: + add r0, r0, #0x2000 + ldr r1, [r0, #0x270] + cmp r1, #0 + beq _022D6C78 + ldr r0, [r0, #0x274] + cmp r0, #0xc + ldrhi r5, [r1] +_022D6C78: + mov r0, r4 + bl FUN_0207B7F8 + mov r0, r5 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D6C30 + + arm_func_start ov00_022D6C88 +ov00_022D6C88: @ 0x022D6C88 + push {r3, r4, r5, lr} + mov r5, r0 + bl FUN_0207B7E4 + mov r4, r0 + bl ov00_022D570C + cmp r0, #0 + bne _022D6CB4 + mov r0, r4 + bl FUN_0207B7F8 + mov r0, #0 + pop {r3, r4, r5, pc} +_022D6CB4: + add r1, r0, #0x2000 + cmp r5, #0 + ldrb r1, [r1, #0x26a] + beq _022D6CDC + cmp r1, #0 + movne r5, #1 + moveq r5, #0 + add r0, r0, #0x2000 + mov r1, #1 + b _022D6CF0 +_022D6CDC: + cmp r1, #0 + movne r5, #1 + moveq r5, #0 + add r0, r0, #0x2000 + mov r1, #0 +_022D6CF0: + strb r1, [r0, #0x26a] + mov r0, r4 + bl FUN_0207B7F8 + mov r0, r5 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D6C88 + + arm_func_start ov00_022D6D04 +ov00_022D6D04: @ 0x022D6D04 + push {r3, r4, r5, lr} + mov r4, r0 + bl FUN_0207B7E4 + mov r5, r0 + bl ov00_022D570C + cmp r0, #0 + bne _022D6D30 + mov r0, r5 + bl FUN_0207B7F8 + mov r0, #0 + pop {r3, r4, r5, pc} +_022D6D30: + mov r0, r4 + bl ov00_022D6F50 + movs r4, r0 + mov r0, r5 + bne _022D6D50 + bl FUN_0207B7F8 + mov r0, #0 + pop {r3, r4, r5, pc} +_022D6D50: + bl FUN_0207B7F8 + add r0, r4, #0x10 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D6D04 + + arm_func_start ov00_022D6D5C +ov00_022D6D5C: @ 0x022D6D5C + push {r3, r4, r5, r6, r7, lr} + mov r5, r0 + mov r4, r1 + bl ov00_022D570C + movs r6, r0 + popeq {r3, r4, r5, r6, r7, pc} + add r0, r6, #0x2000 + ldrb r0, [r0, #0x26a] + cmp r0, #0 + ldrheq r0, [r5, #0x3c] + cmpeq r0, #0 + popne {r3, r4, r5, r6, r7, pc} + add r0, r5, #4 + bl ov00_022D6EE4 + movs r7, r0 + bne _022D6DA4 + bl ov00_022D6DE8 + mov r7, r0 +_022D6DA4: + cmp r7, #0 + addeq r0, r6, #0x2000 + ldreq r0, [r0, #0x278] + cmpeq r0, #1 + bne _022D6DC0 + bl ov00_022D6EB4 + mov r7, r0 +_022D6DC0: + cmp r7, #0 + popeq {r3, r4, r5, r6, r7, pc} + mov r0, r5 + add r1, r7, #0x10 + mov r2, #0xc0 + strh r4, [r7, #2] + bl FUN_0207C3B4 + mov r0, r7 + bl ov00_022D6FA0 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022D6D5C + + arm_func_start ov00_022D6DE8 +ov00_022D6DE8: @ 0x022D6DE8 + push {r4, lr} + bl ov00_022D570C + add r2, r0, #0x2000 + ldr r1, [r2, #0x270] + mov r0, #0 + cmp r1, #0 + popeq {r4, pc} + ldr r3, [r2, #0x274] + cmp r3, #0xc + popls {r4, pc} + ldr r2, _022D6EB0 @ =0x4EC4EC4F + sub r3, r3, #0xc + umull r2, ip, r3, r2 + lsrs ip, ip, #6 + popeq {r4, pc} + ldr r2, [r1] + cmp ip, r2 + popls {r4, pc} + mov lr, r0 + cmp ip, #0 + bls _022D6E64 + add r4, r1, #0xc + mov r2, #0xd0 +_022D6E44: + mul r0, lr, r2 + ldrb r3, [r4, r0] + add r0, r4, r0 + cmp r3, #0 + beq _022D6E64 + add lr, lr, #1 + cmp lr, ip + blo _022D6E44 +_022D6E64: + cmp lr, ip + pophs {r4, pc} + mov r2, #1 + strb r2, [r0] + ldr r3, [r1] + mov r2, #0 + str r3, [r0, #4] + str r2, [r0, #0xc] + ldr r2, [r1, #8] + str r2, [r0, #8] + str r0, [r1, #8] + ldr r2, [r0, #8] + cmp r2, #0 + strne r0, [r2, #0xc] + streq r0, [r1, #4] + ldr r2, [r1] + add r2, r2, #1 + str r2, [r1] + pop {r4, pc} + .align 2, 0 +_022D6EB0: .4byte 0x4EC4EC4F + arm_func_end ov00_022D6DE8 + + arm_func_start ov00_022D6EB4 +ov00_022D6EB4: @ 0x022D6EB4 + push {r3, lr} + bl ov00_022D570C + add r0, r0, #0x2000 + ldr r1, [r0, #0x270] + cmp r1, #0 + beq _022D6EDC + ldr r0, [r0, #0x274] + cmp r0, #0xc + ldrhi r0, [r1, #4] + pophi {r3, pc} +_022D6EDC: + mov r0, #0 + pop {r3, pc} + arm_func_end ov00_022D6EB4 + + arm_func_start ov00_022D6EE4 +ov00_022D6EE4: @ 0x022D6EE4 + push {r3, r4, r5, lr} + mov r5, r0 + bl ov00_022D570C + add r0, r0, #0x2000 + mov r4, #0 + cmp r5, #0 + ldr r1, [r0, #0x270] + moveq r0, r4 + popeq {r3, r4, r5, pc} + cmp r1, #0 + beq _022D6F48 + ldr r0, [r0, #0x274] + cmp r0, #0xc + bls _022D6F48 + ldr r4, [r1, #4] + cmp r4, #0 + beq _022D6F48 +_022D6F28: + mov r1, r5 + add r0, r4, #0x14 + bl ov00_022D7468 + cmp r0, #0 + bne _022D6F48 + ldr r4, [r4, #0xc] + cmp r4, #0 + bne _022D6F28 +_022D6F48: + mov r0, r4 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D6EE4 + + arm_func_start ov00_022D6F50 +ov00_022D6F50: @ 0x022D6F50 + push {r4, lr} + mov r4, r0 + bl ov00_022D570C + add r1, r0, #0x2000 + ldr r2, [r1, #0x270] + mov r0, #0 + cmp r2, #0 + popeq {r4, pc} + ldr r1, [r1, #0x274] + cmp r1, #0xc + popls {r4, pc} + ldr r0, [r2, #4] + cmp r0, #0 + popeq {r4, pc} +_022D6F88: ldr r1, [r0, #4] - add r1, r1, r3 - str r1, [r0, #4] + cmp r1, r4 + ldrne r0, [r0, #0xc] + cmpne r0, #0 + bne _022D6F88 + pop {r4, pc} + arm_func_end ov00_022D6F50 + + arm_func_start ov00_022D6FA0 +ov00_022D6FA0: @ 0x022D6FA0 + push {r4, lr} + mov r4, r0 + bl ov00_022D570C + add r1, r0, #0x2000 + ldr r0, [r1, #0x270] + cmp r4, #0 + cmpne r0, #0 + popeq {r4, pc} + ldr r1, [r1, #0x274] + cmp r1, #0xc + popls {r4, pc} + ldr r3, [r0, #4] + cmp r3, #0 + beq _022D7018 +_022D6FD8: + cmp r3, r4 + bne _022D700C + ldr r2, [r3, #8] + ldr r1, [r3, #0xc] + cmp r2, #0 + strne r1, [r2, #0xc] + streq r1, [r0, #4] + ldr r2, [r3, #0xc] + ldr r1, [r3, #8] + cmp r2, #0 + strne r1, [r2, #8] + streq r1, [r0, #8] + b _022D7018 +_022D700C: + ldr r3, [r3, #0xc] + cmp r3, #0 + bne _022D6FD8 +_022D7018: + mov r1, #0 + str r1, [r4, #0xc] ldr r1, [r0, #8] - add r1, r1, ip + str r1, [r4, #8] + str r4, [r0, #8] + ldr r1, [r4, #8] + cmp r1, #0 + strne r4, [r1, #0xc] + streq r4, [r0, #4] + cmp r3, #0 + popne {r4, pc} + ldr r1, [r0] + str r1, [r4, #4] + ldr r1, [r0] + add r1, r1, #1 + str r1, [r0] + pop {r4, pc} + arm_func_end ov00_022D6FA0 + + arm_func_start ov00_022D705C +ov00_022D705C: @ 0x022D705C + push {r3, lr} + ldr r1, _022D7094 @ =0x02326C50 + ldrb r0, [r1] + cmp r0, #0 + popne {r3, pc} + mov r0, #1 + strb r0, [r1] + mov r2, #0 + str r2, [r1, #0x24] + str r2, [r1, #8] + ldr r0, _022D7098 @ =0x02326C5C + str r2, [r1, #4] + bl FUN_0207A030 + pop {r3, pc} + .align 2, 0 +_022D7094: .4byte 0x02326C50 +_022D7098: .4byte 0x02326C5C + arm_func_end ov00_022D705C + + arm_func_start ov00_022D709C +ov00_022D709C: @ 0x022D709C + push {r3, lr} + ldr r1, _022D70CC @ =0x02326C50 + mov r2, r0 + ldr ip, [r1, #0x28] + cmp ip, #0 + popeq {r3, pc} + ldrh r3, [r2, #6] + add r0, r2, #0x1e + add r1, r2, #0x18 + add r2, r2, #0x2c + blx ip + pop {r3, pc} + .align 2, 0 +_022D70CC: .4byte 0x02326C50 + arm_func_end ov00_022D709C + + arm_func_start ov00_022D70D0 +ov00_022D70D0: @ 0x022D70D0 + push {r4, lr} + bl ov00_022D570C + movs r4, r0 + popeq {r4, pc} + add r0, r4, #0x2000 + ldr r1, [r0, #0x260] + cmp r1, #9 + popne {r4, pc} + ldrb r0, [r0, #0x26b] + cmp r0, #1 + popeq {r4, pc} + ldr r0, _022D7138 @ =0x02326C5C + bl ov00_022D73E0 + cmp r0, #0 + popeq {r4, pc} + add r1, r4, #0x144 + ldr r0, _022D713C @ =0x022D73CC + add r1, r1, #0x2000 + add r2, r4, #0xf00 + mov r3, #0 + bl ov00_022C06D8 + cmp r0, #2 + popeq {r4, pc} + ldr r0, _022D7138 @ =0x02326C5C + bl ov00_022D7430 + pop {r4, pc} + .align 2, 0 +_022D7138: .4byte 0x02326C5C +_022D713C: .4byte 0x022D73CC + arm_func_end ov00_022D70D0 + + arm_func_start ov00_022D7140 +ov00_022D7140: @ 0x022D7140 + push {r3, r4, r5, lr} + mov r5, #0 + bl ov00_022D570C + mov r4, r0 + bl FUN_0207B7E4 + cmp r4, #0 + beq _022D7178 + add r1, r4, #0x2000 + ldr r2, [r1, #0x260] + cmp r2, #9 + ldrbeq r1, [r1, #0x26b] + cmpeq r1, #0 + addeq r1, r4, #0x144 + addeq r5, r1, #0x2000 +_022D7178: + bl FUN_0207B7F8 + mov r0, r5 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D7140 + + arm_func_start ov00_022D7184 +ov00_022D7184: @ 0x022D7184 + push {r3, r4, r5, r6, r7, lr} + mov r7, #0 + mov r5, r0 + mov r4, r7 + bl ov00_022D570C + mov r6, r0 + bl FUN_0207B7E4 + cmp r6, #0 + beq _022D71D0 + add r1, r6, #0x2000 + ldr r2, [r1, #0x260] + cmp r2, #9 + ldrbeq r1, [r1, #0x26b] + cmpeq r1, #0 + bne _022D71D0 + add r1, r6, #0x2100 + ldrh r4, [r1, #0x4a] + add r1, r6, #0x14c + add r7, r1, #0x2000 +_022D71D0: + bl FUN_0207B7F8 + cmp r5, #0 + strhne r4, [r5] + mov r0, r7 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022D7184 + + arm_func_start ov00_022D71E4 +ov00_022D71E4: @ 0x022D71E4 + push {r4, lr} + mov r4, r0 + bl FUN_0207B7E4 + ldr r1, _022D7200 @ =0x02326C50 + str r4, [r1, #0x28] + bl FUN_0207B7F8 + pop {r4, pc} + .align 2, 0 +_022D7200: .4byte 0x02326C50 + arm_func_end ov00_022D71E4 + + arm_func_start ov00_022D7204 +ov00_022D7204: @ 0x022D7204 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r4, r0 + mov sb, r1 + mov r8, r2 + mov r6, r3 + bl FUN_0207B7E4 + mov r5, r0 + bl ov00_022D570C + cmp r0, #0 + bne _022D723C + mov r0, r5 + bl FUN_0207B7F8 + mvn r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022D723C: + ldr r0, _022D737C @ =0x02326C5C + bl FUN_0207A048 + bl ov00_022D570C + movs r7, r0 + bne _022D7268 + ldr r0, _022D737C @ =0x02326C5C + bl FUN_0207A0CC + mov r0, r5 + bl FUN_0207B7F8 + mvn r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022D7268: + add r0, r7, #0x2000 + ldr r1, [r0, #0x260] + cmp r1, #9 + bne _022D7284 + ldrb r0, [r0, #0x26b] + cmp r0, #1 + bne _022D729C +_022D7284: + ldr r0, _022D737C @ =0x02326C5C + bl FUN_0207A0CC + mov r0, r5 + bl FUN_0207B7F8 + mvn r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022D729C: + mov r0, sb + mov r2, r8 + add r1, r7, #0xf00 + bl FUN_0207C4C8 + ldr r2, [sp, #0x20] + cmp r2, #0 + ble _022D72C8 + add r1, r7, #0xf00 + mov r0, r6 + add r1, r1, r8 + bl FUN_0207C4C8 +_022D72C8: + ldr r1, [sp, #0x20] + ldr r0, _022D7380 @ =ov00_022D738C + add r6, r8, r1 + lsl r3, r6, #0x10 + mov r1, r4 + add r2, r7, #0xf00 + lsr r3, r3, #0x10 + bl ov00_022C06D8 + cmp r0, #8 + addls pc, pc, r0, lsl #2 + b _022D7318 +_022D72F4: @ jump table + b _022D7318 @ case 0 + b _022D7318 @ case 1 + b _022D7330 @ case 2 + b _022D7318 @ case 3 + b _022D7318 @ case 4 + b _022D7318 @ case 5 + b _022D7318 @ case 6 + b _022D7318 @ case 7 + b _022D7318 @ case 8 +_022D7318: + ldr r0, _022D737C @ =0x02326C5C + bl FUN_0207A0CC + mov r0, r5 + bl FUN_0207B7F8 + mvn r0, #4 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022D7330: + ldr r0, _022D7384 @ =0x02326C54 + bl FUN_02079888 + ldr r0, _022D7388 @ =0x02326C50 + ldr r0, [r0, #0x24] + cmp r0, #0 + beq _022D7364 + cmp r0, #1 + ldr r0, _022D737C @ =0x02326C5C + bl FUN_0207A0CC + mov r0, r5 + bl FUN_0207B7F8 + mvn r0, #4 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022D7364: + ldr r0, _022D737C @ =0x02326C5C + bl FUN_0207A0CC + mov r0, r5 + bl FUN_0207B7F8 + mov r0, r6 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022D737C: .4byte 0x02326C5C +_022D7380: .4byte ov00_022D738C +_022D7384: .4byte 0x02326C54 +_022D7388: .4byte 0x02326C50 + arm_func_end ov00_022D7204 + + arm_func_start ov00_022D738C +ov00_022D738C: @ 0x022D738C + push {r3, lr} + ldrh r1, [r0] + cmp r1, #0x12 + popne {r3, pc} + ldrh r2, [r0, #2] + ldr r1, _022D73C4 @ =0x02326C50 + str r2, [r1, #0x24] + ldrh r0, [r0, #2] + cmp r0, #0 + bne _022D73B8 + bl ov00_022D5BB4 +_022D73B8: + ldr r0, _022D73C8 @ =0x02326C54 + bl FUN_020798D8 + pop {r3, pc} + .align 2, 0 +_022D73C4: .4byte 0x02326C50 +_022D73C8: .4byte 0x02326C54 + arm_func_end ov00_022D738C +_022D73CC: + .byte 0x04, 0xC0, 0x9F, 0xE5 + .byte 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x30, 0x74, 0x2D, 0x02, 0x5C, 0x6C, 0x32, 0x02 + + arm_func_start ov00_022D73E0 +ov00_022D73E0: @ 0x022D73E0 + ldr r2, [r0, #8] + cmp r2, #0 + bne _022D7408 + ldr r1, _022D742C @ =0x01FF95E8 str r1, [r0, #8] ldr r1, [r0, #0xc] - add r1, r1, lr + add r1, r1, #1 str r1, [r0, #0xc] - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, #1 + bx lr +_022D7408: + ldr r1, _022D742C @ =0x01FF95E8 + cmp r2, r1 + movne r0, #0 + bxne lr + ldr r1, [r0, #0xc] + add r1, r1, #1 + str r1, [r0, #0xc] + mov r0, #1 + bx lr .align 2, 0 -_02080668: .4byte 0x020B2C84 -_0208066C: .4byte 0x020B2BC4 - arm_func_end FUN_020802bc -_02080670: - .byte 0x34, 0x10, 0x9F, 0xE5, 0x34, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x30, 0x10, 0x9F, 0xE5 - .byte 0x04, 0x20, 0x80, 0xE5, 0x2C, 0x20, 0x9F, 0xE5, 0x08, 0x10, 0x80, 0xE5, 0x28, 0x10, 0x9F, 0xE5 - .byte 0x0C, 0x20, 0x80, 0xE5, 0x10, 0x10, 0x80, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x14, 0x10, 0x80, 0xE5 - .byte 0x18, 0x10, 0x80, 0xE5, 0x1C, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x23, 0x45, 0x67 - .byte 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10, 0xF0, 0xE1, 0xD2, 0xC3 +_022D742C: .4byte 0x01FF95E8 + arm_func_end ov00_022D73E0 - arm_func_start FUN_020806c0 -FUN_020806c0: @ 0x020806C0 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sl, r0 - movs r8, r2 - mov sb, r1 - add r6, sl, #0x20 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldr r0, [sl, #0x14] - add r1, r0, r8, lsl #3 - cmp r1, r0 - ldrlo r0, [sl, #0x18] - addlo r0, r0, #1 - strlo r0, [sl, #0x18] - ldr r0, [sl, #0x18] - add r0, r0, r8, lsr #29 - str r0, [sl, #0x18] - str r1, [sl, #0x14] - ldr r1, [sl, #0x1c] - cmp r1, #0 - beq _02080778 - add r0, r1, r8 - cmp r0, #0x40 - blo _02080758 - rsb r4, r1, #0x40 - mov r0, sb - mov r2, r4 - add r1, r6, r1 - bl FUN_0207c4c8 - ldr r1, _02080810 @ =0x020B2D88 - mov r0, sl - ldr r3, [r1] - mov r1, r6 - mov r2, #0x40 - sub r8, r8, r4 - add sb, sb, r4 - blx r3 + arm_func_start ov00_022D7430 +ov00_022D7430: @ 0x022D7430 + push {r3, lr} + ldr r2, [r0, #8] + ldr r1, _022D7464 @ =0x01FF95E8 + cmp r2, r1 + popne {r3, pc} + ldr r1, [r0, #0xc] + subs r1, r1, #1 + str r1, [r0, #0xc] + popne {r3, pc} + mov r1, #0 + str r1, [r0, #8] + bl FUN_020798D8 + pop {r3, pc} + .align 2, 0 +_022D7464: .4byte 0x01FF95E8 + arm_func_end ov00_022D7430 + + arm_func_start ov00_022D7468 +ov00_022D7468: @ 0x022D7468 + mov ip, #0 +_022D746C: + ldrb r3, [r0, ip] + ldrb r2, [r1, ip] + cmp r3, r2 + movne r0, #0 + bxne lr + add ip, ip, #1 + cmp ip, #6 + blt _022D746C + mov r0, #1 + bx lr + arm_func_end ov00_022D7468 + + arm_func_start ov00_022D7494 +ov00_022D7494: @ 0x022D7494 + push {r3, r4, r5, lr} + bl FUN_0207B7E4 + mov r4, r0 + bl ov00_022D570C + cmp r0, #0 + mov r5, #0 + beq _022D74C8 + add r0, r0, #0x2000 + ldr r0, [r0, #0x260] + cmp r0, #9 + bne _022D74C8 + bl ov00_022D7558 + mov r5, r0 +_022D74C8: + mov r0, r4 + bl FUN_0207B7F8 + mov r0, r5 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D7494 + + arm_func_start ov00_022D74D8 +ov00_022D74D8: @ 0x022D74D8 + push {r3, lr} + ldr r1, _022D7550 @ =0x02326C7C mov r0, #0 - str r0, [sl, #0x1c] - b _02080778 -_02080758: - mov r0, sb - mov r2, r8 - add r1, r6, r1 - bl FUN_0207c4c8 - ldr r0, [sl, #0x1c] - add r0, r0, r8 - str r0, [sl, #0x1c] - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_02080778: - cmp r8, #0x40 - blo _020807F0 - bic r7, r8, #0x3f - tst sb, #3 - sub r8, r8, r7 - bne _020807B0 - ldr r1, _02080810 @ =0x020B2D88 - mov r0, sl - ldr r3, [r1] - mov r1, sb - mov r2, r7 - blx r3 - add sb, sb, r7 - b _020807F0 -_020807B0: - mov r5, #0x40 - ldr r4, _02080810 @ =0x020B2D88 - mov fp, r5 -_020807BC: - mov r0, sb - mov r1, r6 - mov r2, r5 - bl FUN_0207c4c8 - ldr r3, [r4] - mov r0, sl - mov r1, r6 - add sb, sb, #0x40 - mov r2, fp - blx r3 - sub r7, r7, #0x40 - cmp r7, #0 - bgt _020807BC -_020807F0: - str r8, [sl, #0x1c] - cmp r8, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - mov r0, sb - mov r1, r6 - mov r2, r8 - bl FUN_0207c4c8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrb r1, [r1] + cmp r1, #0x10 + bls _022D751C + ldr r3, _022D7554 @ =0x02326C80 + mov r2, r0 +_022D74F8: + ldrb r1, [r3], #1 + add r2, r2, #1 + cmp r2, #0x10 + add r0, r0, r1 + blt _022D74F8 + asr r1, r0, #3 + add r0, r0, r1, lsr #28 + asr r0, r0, #4 + b _022D7548 +_022D751C: + cmp r1, #0 + beq _022D7548 + mov ip, r0 + ble _022D7544 + ldr r3, _022D7554 @ =0x02326C80 +_022D7530: + ldrb r2, [r3], #1 + add ip, ip, #1 + cmp ip, r1 + add r0, r0, r2 + blt _022D7530 +_022D7544: + bl FUN_0208FEA4 +_022D7548: + and r0, r0, #0xff + pop {r3, pc} .align 2, 0 -_02080810: .4byte 0x020B2D88 - arm_func_end FUN_020806c0 -_02080814: - .byte 0x0F, 0x00, 0x2D, 0xE9, 0x70, 0x40, 0x2D, 0xE9, 0x10, 0x00, 0x9D, 0xE5 - .byte 0x01, 0x60, 0xA0, 0xE1, 0x1C, 0x30, 0x90, 0xE5, 0x20, 0x40, 0x80, 0xE2, 0x03, 0x00, 0x13, 0xE3 - .byte 0x43, 0x21, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0x03, 0x02, 0x01, 0x84, 0x07, 0x10, 0x10, 0x9D, 0xE5 - .byte 0x80, 0x00, 0xA0, 0xE3, 0x20, 0x50, 0x81, 0xE2, 0x03, 0x00, 0xC5, 0xE7, 0x01, 0x30, 0x83, 0xE2 - .byte 0x03, 0x00, 0x13, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x00, 0x00, 0xA0, 0xE3, 0x03, 0x00, 0xC5, 0xE7 - .byte 0x01, 0x30, 0x83, 0xE2, 0x03, 0x00, 0x13, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A, 0x10, 0x00, 0x9D, 0xE5 - .byte 0x01, 0x20, 0x82, 0xE2, 0x1C, 0x00, 0x90, 0xE5, 0x38, 0x00, 0x50, 0xE3, 0x0D, 0x00, 0x00, 0xBA - .byte 0x10, 0x00, 0x52, 0xE3, 0x04, 0x00, 0x00, 0xAA, 0x00, 0x00, 0xA0, 0xE3, 0x02, 0x01, 0x84, 0xE7 - .byte 0x01, 0x20, 0x82, 0xE2, 0x10, 0x00, 0x52, 0xE3, 0xFB, 0xFF, 0xFF, 0xBA, 0x68, 0x11, 0x9F, 0xE5 - .byte 0x10, 0x00, 0x9D, 0xE5, 0x00, 0x30, 0x91, 0xE5, 0x04, 0x10, 0xA0, 0xE1, 0x40, 0x20, 0xA0, 0xE3 - .byte 0x33, 0xFF, 0x2F, 0xE1, 0x00, 0x20, 0xA0, 0xE3, 0x0E, 0x00, 0x52, 0xE3, 0x04, 0x00, 0x00, 0xAA - .byte 0x00, 0x00, 0xA0, 0xE3, 0x02, 0x01, 0x84, 0xE7, 0x01, 0x20, 0x82, 0xE2, 0x0E, 0x00, 0x52, 0xE3 - .byte 0xFB, 0xFF, 0xFF, 0xBA, 0x10, 0x00, 0x9D, 0xE5, 0x2C, 0x31, 0x9F, 0xE5, 0x14, 0x20, 0x90, 0xE5 - .byte 0x04, 0x10, 0xA0, 0xE1, 0x3F, 0x20, 0xC5, 0xE5, 0x22, 0x04, 0xA0, 0xE1, 0x3E, 0x00, 0xC5, 0xE5 - .byte 0x22, 0x08, 0xA0, 0xE1, 0x3D, 0x00, 0xC5, 0xE5, 0x22, 0x0C, 0xA0, 0xE1, 0x3C, 0x00, 0xC5, 0xE5 - .byte 0x10, 0x00, 0x9D, 0xE5, 0x40, 0x20, 0xA0, 0xE3, 0x18, 0x40, 0x90, 0xE5, 0x3B, 0x40, 0xC5, 0xE5 - .byte 0x24, 0x04, 0xA0, 0xE1, 0x3A, 0x00, 0xC5, 0xE5, 0x24, 0x08, 0xA0, 0xE1, 0x39, 0x00, 0xC5, 0xE5 - .byte 0x24, 0x0C, 0xA0, 0xE1, 0x38, 0x00, 0xC5, 0xE5, 0x10, 0x00, 0x9D, 0xE5, 0x00, 0x30, 0x93, 0xE5 - .byte 0x33, 0xFF, 0x2F, 0xE1, 0x10, 0x00, 0x9D, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x21, 0x0C, 0xA0, 0xE1 - .byte 0x00, 0x00, 0xC6, 0xE5, 0x21, 0x08, 0xA0, 0xE1, 0x01, 0x00, 0xC6, 0xE5, 0x21, 0x04, 0xA0, 0xE1 - .byte 0x02, 0x00, 0xC6, 0xE5, 0x03, 0x10, 0xC6, 0xE5, 0x10, 0x00, 0x9D, 0xE5, 0x04, 0x10, 0x90, 0xE5 - .byte 0x21, 0x0C, 0xA0, 0xE1, 0x04, 0x00, 0xC6, 0xE5, 0x21, 0x08, 0xA0, 0xE1, 0x05, 0x00, 0xC6, 0xE5 - .byte 0x21, 0x04, 0xA0, 0xE1, 0x06, 0x00, 0xC6, 0xE5, 0x07, 0x10, 0xC6, 0xE5, 0x10, 0x00, 0x9D, 0xE5 - .byte 0x08, 0x10, 0x90, 0xE5, 0x21, 0x0C, 0xA0, 0xE1, 0x08, 0x00, 0xC6, 0xE5, 0x21, 0x08, 0xA0, 0xE1 - .byte 0x09, 0x00, 0xC6, 0xE5, 0x21, 0x04, 0xA0, 0xE1, 0x0A, 0x00, 0xC6, 0xE5, 0x0B, 0x10, 0xC6, 0xE5 - .byte 0x10, 0x00, 0x9D, 0xE5, 0x0C, 0x10, 0x90, 0xE5, 0x21, 0x0C, 0xA0, 0xE1, 0x0C, 0x00, 0xC6, 0xE5 - .byte 0x21, 0x08, 0xA0, 0xE1, 0x0D, 0x00, 0xC6, 0xE5, 0x21, 0x04, 0xA0, 0xE1, 0x0E, 0x00, 0xC6, 0xE5 - .byte 0x0F, 0x10, 0xC6, 0xE5, 0x10, 0x00, 0x9D, 0xE5, 0x10, 0x10, 0x90, 0xE5, 0x21, 0x0C, 0xA0, 0xE1 - .byte 0x10, 0x00, 0xC6, 0xE5, 0x21, 0x08, 0xA0, 0xE1, 0x11, 0x00, 0xC6, 0xE5, 0x21, 0x04, 0xA0, 0xE1 - .byte 0x12, 0x00, 0xC6, 0xE5, 0x13, 0x10, 0xC6, 0xE5, 0x10, 0x30, 0x9D, 0xE5, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x10, 0x10, 0x8D, 0xE2, 0x04, 0x20, 0xA0, 0xE3, 0x1C, 0x00, 0x83, 0xE5, 0x44, 0xEE, 0xFF, 0xEB - .byte 0x70, 0x40, 0xBD, 0xE8, 0x10, 0xD0, 0x8D, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x88, 0x2D, 0x0B, 0x02 +_022D7550: .4byte 0x02326C7C +_022D7554: .4byte 0x02326C80 + arm_func_end ov00_022D74D8 - arm_func_start FUN_02080a10 -FUN_02080a10: @ 0x02080A10 + arm_func_start ov00_022D7558 +ov00_022D7558: @ 0x022D7558 + push {r3, lr} + bl ov00_022D74D8 + mov r1, #0 + cmp r0, #0x1c + movhs r1, #3 + bhs _022D7584 + cmp r0, #0x16 + movhs r1, #2 + bhs _022D7584 + cmp r0, #0x10 + movhs r1, #1 +_022D7584: + mov r0, r1 + pop {r3, pc} + arm_func_end ov00_022D7558 + + arm_func_start ov00_022D758C +ov00_022D758C: @ 0x022D758C + push {r3, lr} + ldr r2, _022D75E4 @ =0x02326C7C + tst r0, #2 + ldrb ip, [r2] + asr r0, r0, #2 + addeq r0, r0, #0x19 + lsr r1, ip, #0x1f + and lr, r0, #0xff + rsb r0, r1, ip, lsl #28 + ldr r3, _022D75E8 @ =0x02326C80 + add r0, r1, r0, ror #28 + strb lr, [r3, r0] + add r0, ip, #1 + cmp ip, #0x10 + strblo r0, [r2] + poplo {r3, pc} + lsr r1, r0, #0x1f + rsb r0, r1, r0, lsl #28 + add r0, r1, r0, ror #28 + add r0, r0, #0x10 + strb r0, [r2] + pop {r3, pc} + .align 2, 0 +_022D75E4: .4byte 0x02326C7C +_022D75E8: .4byte 0x02326C80 + arm_func_end ov00_022D758C + + arm_func_start ov00_022D75EC +ov00_022D75EC: @ 0x022D75EC + push {r4, lr} + mov r4, r0 + ldr r2, [r4] + mov r0, #1 + mov r1, #0x24 + blx r2 + mov r1, r0 + ldr r3, _022D778C @ =0x02326C90 + mov r0, #0 + mov r2, #0x24 + str r1, [r3, #0xc] + bl FUN_0207C314 + ldr r0, _022D778C @ =0x02326C90 + ldr r1, [r4] + ldr r3, [r0, #0xc] + mov r2, #1 + str r1, [r3] + ldr r0, [r4, #4] + ldr r1, _022D7790 @ =0x00000D18 + str r0, [r3, #4] + strb r2, [r3, #9] + strb r2, [r3, #0x16] + mov r0, #0x10 + strb r2, [r3, #8] + bl ov00_022D7ADC + ldr r2, _022D778C @ =0x02326C90 + mov r1, #0x2300 + str r0, [r2, #0x10] + mov r0, #2 + bl ov00_022D7ADC + ldr r2, _022D778C @ =0x02326C90 + mov r1, #0x58 + str r0, [r2] + mov r0, #4 + bl ov00_022D7ADC + ldr r2, _022D778C @ =0x02326C90 + mov r1, #0xc + str r0, [r2, #4] + mov r0, #8 + bl ov00_022D7ADC + ldr r1, _022D778C @ =0x02326C90 + ldr r2, _022D7790 @ =0x00000D18 + str r0, [r1, #8] + ldr r1, [r1, #0x10] + mov r0, #0 + bl FUN_0207C314 + mov r0, #0 + ldr r1, _022D778C @ =0x02326C90 + mov r2, #0x2300 + ldr r1, [r1] + bl FUN_0207C314 + mov r0, #0 + ldr r1, _022D778C @ =0x02326C90 + mov r2, #0x58 + ldr r1, [r1, #4] + bl FUN_0207C314 + mov r0, #0 + ldr r1, _022D778C @ =0x02326C90 + mov r2, #0xc + ldr r1, [r1, #8] + bl FUN_0207C314 + ldr r1, _022D778C @ =0x02326C90 + ldrb r2, [r4, #8] + ldr r0, [r1, #0x10] + strb r2, [r0, #0xd0a] + ldrb r3, [r0, #0xd0b] + ldrb r2, [r4, #9] + bic r3, r3, #3 + and r2, r2, #3 + orr r2, r3, r2 + strb r2, [r0, #0xd0b] + ldr r3, [r1, #8] + ldr r2, [r4] + mov r1, #0 + str r2, [r3] + ldr r2, [r4, #4] + str r2, [r3, #4] + str r1, [r3, #8] + ldrb r2, [r0, #0xd0c] + ldrb r1, [r4, #0xa] + bic r2, r2, #0xf + and r1, r1, #0xf + orr r2, r2, r1 + strb r2, [r0, #0xd0c] + ldrb r1, [r4, #0xb] + and r2, r2, #0xff + bic r2, r2, #0x30 + lsl r1, r1, #0x1e + orr r1, r2, r1, lsr #26 + strb r1, [r0, #0xd0c] + bl ov00_022ED43C + ldr r0, _022D778C @ =0x02326C90 + mov r1, #0x2300 + ldr r0, [r0] + bl ov00_022D4A70 + cmp r0, #1 + beq _022D7778 + cmp r0, #4 + ble _022D7784 +_022D7778: + bl ov00_022D7B80 + mov r0, #0 + pop {r4, pc} +_022D7784: + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_022D778C: .4byte 0x02326C90 +_022D7790: .4byte 0x00000D18 + arm_func_end ov00_022D75EC + + arm_func_start ov00_022D7794 +ov00_022D7794: @ 0x022D7794 + push {r3, r4, r5, lr} + bl ov00_022D7D5C + mov r5, r0 + cmp r5, #1 + bne _022D77B4 + bl ov00_022D9A80 + mov r5, r0 + b _022D7828 +_022D77B4: + cmp r5, #7 + bhs _022D77DC + bl FUN_0207B7E4 + mov r4, r0 + bl ov00_022D92B0 + mov r5, r0 + bl ov00_022D7CFC + mov r0, r4 + bl FUN_0207B7F8 + b _022D7828 +_022D77DC: + cmp r5, #9 + bhs _022D77F0 + bl ov00_022D8548 + mov r5, r0 + b _022D7828 +_022D77F0: + cmp r5, #0xa + bhs _022D7804 + bl ov00_022D91D4 + mov r5, r0 + b _022D7828 +_022D7804: + cmp r5, #0x10 + bhs _022D7818 + bl ov00_022D9B08 + mov r5, r0 + b _022D7828 +_022D7818: + cmp r5, #0x11 + bne _022D7828 + bl ov00_022D8BE0 + mov r5, r0 +_022D7828: + mov r0, r5 + bl ov00_022D7CFC + cmp r5, #0x10 + bne _022D784C + bl ov00_022D7EA0 + mov r4, r0 + bl ov00_022D7E68 + mov r0, r4 + pop {r3, r4, r5, pc} +_022D784C: + cmp r5, #0x12 + movne r0, #0 + popne {r3, r4, r5, pc} + bl ov00_022D7E68 + mvn r0, #0 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D7794 + + arm_func_start ov00_022D7864 +ov00_022D7864: @ 0x022D7864 + push {r3, lr} + bl ov00_022D7D5C + cmp r0, #1 + movls r0, #0 + popls {r3, pc} + cmp r0, #7 + movlo r0, #1 + poplo {r3, pc} + cmp r0, #9 + moveq r0, #4 + popeq {r3, pc} + cmp r0, #0xa + movlo r0, #2 + poplo {r3, pc} + cmp r0, #0xb + moveq r0, #4 + popeq {r3, pc} + cmp r0, #0x10 + movlo r0, #3 + poplo {r3, pc} + moveq r0, #5 + popeq {r3, pc} + cmp r0, #0x11 + moveq r0, #4 + popeq {r3, pc} + bl ov00_022D8C04 + pop {r3, pc} + arm_func_end ov00_022D7864 + + arm_func_start ov00_022D78D0 +ov00_022D78D0: @ 0x022D78D0 + push {r4, lr} + mov r4, #0xff + bl ov00_022D7D5C + cmp r0, #0xa + blo _022D78F4 + cmp r0, #0x10 + ldrls r0, _022D78FC @ =0x02326C90 + ldrls r0, [r0, #0xc] + ldrbls r4, [r0, #0x17] +_022D78F4: + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_022D78FC: .4byte 0x02326C90 + arm_func_end ov00_022D78D0 + + arm_func_start ov00_022D7900 +ov00_022D7900: @ 0x022D7900 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, #0 + bl ov00_022D7D5C + cmp r0, #0xa + blo _022D794C + cmp r0, #0x10 + bhi _022D794C + ldr r0, _022D7954 @ =0x02326C90 + ldr r2, [r0, #0xc] + ldrb r0, [r2, #0x17] + cmp r0, #4 + cmpne r0, #8 + bne _022D794C + mov r1, r5 + add r0, r2, #0x18 + mov r2, #0xa + bl FUN_0207C4C8 + mov r4, #1 +_022D794C: + mov r0, r4 + pop {r3, r4, r5, pc} + .align 2, 0 +_022D7954: .4byte 0x02326C90 + arm_func_end ov00_022D7900 + + arm_func_start ov00_022D7958 +ov00_022D7958: @ 0x022D7958 + push {r3, lr} + bl ov00_022D7D5C + strb r0, [sp] + ands r0, r0, #0xff + cmpne r0, #0x12 + bne _022D797C + bl ov00_022D7B80 + mov r0, #1 + pop {r3, pc} +_022D797C: + add r0, sp, #0 + bl ov00_022D8A80 + ldrb r0, [sp] + bl ov00_022D7CFC + mov r0, #0 + pop {r3, pc} + arm_func_end ov00_022D7958 + + arm_func_start ov00_022D7994 +ov00_022D7994: @ 0x022D7994 push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #0xa0 - ldr lr, _02080A94 @ =0x020AEC5C - add ip, sp, #8 mov r8, r0 + mov r5, r3 + mov r0, #1 mov r7, r1 mov r6, r2 - mov r5, r3 - mov r4, ip + bl ov00_022D7CA4 + mov r4, r0 + cmp r5, #0 + mov r2, #0xa + beq _022D79D0 + mov r0, r5 + add r1, r4, #0x18 + bl FUN_0207C4C8 + b _022D79DC +_022D79D0: + add r0, r4, #0x18 + mov r1, #0 + bl FUN_0207C40C +_022D79DC: + ldr r3, [sp, #0x18] + mov r0, r8 + mov r1, r7 + mov r2, r6 + strb r3, [r4, #0x22] + bl ov00_022D79F8 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022D7994 + + arm_func_start ov00_022D79F8 +ov00_022D79F8: @ 0x022D79F8 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + mov r0, #0x10 + mov r6, r1 + mov r5, r2 + bl ov00_022D7CA4 + mov r4, r0 + ldrb r3, [r4, #0xd0c] + mov r1, #0 + mov r2, #0xf0 + bic r3, r3, #0xf + orr r3, r3, #1 + strb r3, [r4, #0xd0c] + bl FUN_0207C40C + mov r2, #0 +_022D7A34: + ldrb r1, [r7, r2] + cmp r1, #0 + beq _022D7A54 + add r0, r4, r2 + add r2, r2, #1 + strb r1, [r0, #0x40] + cmp r2, #0x20 + blt _022D7A34 +_022D7A54: + cmp r6, #0 + cmpne r5, #0 + bne _022D7A70 + ldrb r0, [r4, #0xe6] + bic r0, r0, #3 + strb r0, [r4, #0xe6] + pop {r3, r4, r5, r6, r7, pc} +_022D7A70: + cmp r5, #1 + moveq r2, #5 + beq _022D7A88 + cmp r5, #2 + moveq r2, #0xd + movne r2, #0x10 +_022D7A88: + mov r0, r6 + add r1, r4, #0x80 + bl FUN_0207C4C8 + ldrb r1, [r4, #0xe6] + and r0, r5, #0xff + and r0, r0, #3 + bic r1, r1, #3 + orr r0, r1, r0 + strb r0, [r4, #0xe6] + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022D79F8 + + arm_func_start ov00_022D7AB0 +ov00_022D7AB0: @ 0x022D7AB0 + push {r3, r4, r5, lr} + mov r5, r0 + mov r0, #0x10 + mov r4, r1 + bl ov00_022D7CA4 + mov r1, r0 + mov r0, r4 + add r1, r1, r5, lsl #8 + mov r2, #0xf0 + bl FUN_0207C330 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D7AB0 + + arm_func_start ov00_022D7ADC +ov00_022D7ADC: @ 0x022D7ADC + push {r3, r4, r5, lr} + mov r5, r0 + mov r0, #1 + mov r4, r1 + bl ov00_022D7CA4 + ldrb r1, [r0, #8] + tst r1, r5 + movne r0, #0 + popne {r3, r4, r5, pc} + orr r1, r1, r5 + strb r1, [r0, #8] + ldr r2, [r0] + mov r0, r5 + mov r1, r4 + blx r2 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D7ADC + + arm_func_start ov00_022D7B1C +ov00_022D7B1C: @ 0x022D7B1C + push {r4, r5, r6, lr} + mov r6, r0 + mov r0, #1 + mov r5, r1 + mov r4, r2 + bl ov00_022D7CA4 + cmp r0, #0 + popeq {r4, r5, r6, pc} + ldrb r2, [r0, #8] + tst r2, r6 + popeq {r4, r5, r6, pc} + mvn r1, r6 + and r1, r2, r1 + strb r1, [r0, #8] + ldr r3, [r0, #4] + mov r0, r6 + mov r1, r5 + mov r2, r4 + blx r3 + cmp r6, #1 + ldreq r0, _022D7B7C @ =0x02326C90 + moveq r1, #0 + streq r1, [r0, #0xc] + pop {r4, r5, r6, pc} + .align 2, 0 +_022D7B7C: .4byte 0x02326C90 + arm_func_end ov00_022D7B1C + + arm_func_start ov00_022D7B80 +ov00_022D7B80: @ 0x022D7B80 + push {r4, lr} + mov r0, #1 + bl ov00_022D7CA4 + movs r4, r0 + popeq {r4, pc} + ldrb r0, [r4, #8] + tst r0, #0x10 + beq _022D7BC8 + mov r0, #0x10 + bl ov00_022D7CA4 + ldrb r3, [r4, #8] + mov r1, r0 + ldr r2, _022D7C9C @ =0x00000D18 + bic r0, r3, #0x10 + strb r0, [r4, #8] + ldr r3, [r4, #4] + mov r0, #0x10 + blx r3 +_022D7BC8: + ldrb r0, [r4, #8] + tst r0, #8 + beq _022D7BFC + mov r0, #8 + bl ov00_022D7CA4 + ldrb r2, [r4, #8] + mov r1, r0 + mov r0, #8 + bic r2, r2, #8 + strb r2, [r4, #8] + ldr r3, [r4, #4] + mov r2, #0xc + blx r3 +_022D7BFC: + ldrb r0, [r4, #8] + tst r0, #4 + beq _022D7C30 + mov r0, #4 + bl ov00_022D7CA4 + ldrb r2, [r4, #8] + mov r1, r0 + mov r0, #4 + bic r2, r2, #4 + strb r2, [r4, #8] + ldr r3, [r4, #4] + mov r2, #0x58 + blx r3 +_022D7C30: + ldrb r0, [r4, #8] + tst r0, #2 + beq _022D7C64 + mov r0, #2 + bl ov00_022D7CA4 + ldrb r2, [r4, #8] + mov r1, r0 + mov r0, #2 + bic r2, r2, #2 + strb r2, [r4, #8] + ldr r3, [r4, #4] + mov r2, #0x2300 + blx r3 +_022D7C64: + ldrb r0, [r4, #8] + tst r0, #1 + popeq {r4, pc} + bic r0, r0, #1 + strb r0, [r4, #8] + ldr r3, [r4, #4] + mov r1, r4 + mov r0, #1 + mov r2, #0x24 + blx r3 + ldr r0, _022D7CA0 @ =0x02326C90 + mov r1, #0 + str r1, [r0, #0xc] + pop {r4, pc} + .align 2, 0 +_022D7C9C: .4byte 0x00000D18 +_022D7CA0: .4byte 0x02326C90 + arm_func_end ov00_022D7B80 + + arm_func_start ov00_022D7CA4 +ov00_022D7CA4: @ 0x022D7CA4 + tst r0, #1 + ldrne r0, _022D7CF8 @ =0x02326C90 + ldrne r0, [r0, #0xc] + bxne lr + tst r0, #2 + ldrne r0, _022D7CF8 @ =0x02326C90 + ldrne r0, [r0] + bxne lr + tst r0, #4 + ldrne r0, _022D7CF8 @ =0x02326C90 + ldrne r0, [r0, #4] + bxne lr + tst r0, #8 + ldrne r0, _022D7CF8 @ =0x02326C90 + ldrne r0, [r0, #8] + bxne lr + tst r0, #0x10 + ldrne r0, _022D7CF8 @ =0x02326C90 + ldrne r0, [r0, #0x10] + moveq r0, #0 + bx lr + .align 2, 0 +_022D7CF8: .4byte 0x02326C90 + arm_func_end ov00_022D7CA4 + + arm_func_start ov00_022D7CFC +ov00_022D7CFC: @ 0x022D7CFC + push {r4, r5, r6, lr} + mov r6, r0 + mov r0, #1 + bl ov00_022D7CA4 + mov r5, r0 + mov r0, #0x10 + bl ov00_022D7CA4 + mov r4, r0 + strb r6, [r5, #9] + cmp r6, #0x10 + pophs {r4, r5, r6, pc} + ldrb r0, [r5, #0x16] + cmp r6, r0 + strbhi r6, [r5, #0x16] + cmphi r6, #7 + popls {r4, r5, r6, pc} + ldrb r0, [r4, #0xd0d] + bl ov00_022D7E58 + strb r0, [r5, #0x15] + ldrb r0, [r4, #0xd13] + add r0, r4, r0, lsl #2 + ldrb r0, [r0, #0x444] + strb r0, [r5, #0x14] + pop {r4, r5, r6, pc} + arm_func_end ov00_022D7CFC + + arm_func_start ov00_022D7D5C +ov00_022D7D5C: @ 0x022D7D5C + ldr r0, _022D7D74 @ =0x02326C90 + ldr r0, [r0, #0xc] + cmp r0, #0 + ldrbne r0, [r0, #9] + moveq r0, #0 + bx lr + .align 2, 0 +_022D7D74: .4byte 0x02326C90 + arm_func_end ov00_022D7D5C + + arm_func_start ov00_022D7D78 +ov00_022D7D78: @ 0x022D7D78 + push {r3, r4, r5, lr} + mov r5, r0 + mov r0, #1 + bl ov00_022D7CA4 + mov r4, r0 + str r5, [r4, #0xc] + bl ov00_022D7D5C + strb r0, [r4, #0xa] + pop {r3, r4, r5, pc} + arm_func_end ov00_022D7D78 + + arm_func_start ov00_022D7D9C +ov00_022D7D9C: @ 0x022D7D9C + ldr r0, _022D7DAC @ =0x02326C90 + ldr r0, [r0, #0xc] + ldr r0, [r0, #0xc] + bx lr + .align 2, 0 +_022D7DAC: .4byte 0x02326C90 + arm_func_end ov00_022D7D9C + + arm_func_start ov00_022D7DB0 +ov00_022D7DB0: @ 0x022D7DB0 + push {r4, lr} + ldr r1, _022D7E54 @ =0x02326C90 + ldr r1, [r1, #0xc] + ldrb r2, [r1, #0x22] + cmp r2, #0 + bne _022D7DD0 + bl ov00_022D7E58 + mov r2, r0 +_022D7DD0: + ldr r1, _022D7E54 @ =0x02326C90 + mov r0, #0 + ldr r1, [r1, #0xc] + strb r2, [r1, #0x17] + bl ov00_022D7184 + movs r4, r0 + beq _022D7E08 + mov r1, #0x20 + bl FUN_0207A2A4 + ldr r1, _022D7E54 @ =0x02326C90 + mov r0, r4 + ldr r1, [r1, #0xc] + add r1, r1, #0x18 + bl ov00_022DA024 +_022D7E08: + ldr r0, _022D7E54 @ =0x02326C90 + mov r1, #0 + ldr r3, [r0, #0xc] + mov r2, r3 +_022D7E18: + ldrsb r0, [r2, #0x18] + cmp r0, #0x20 + blt _022D7E2C + cmp r0, #0x7e + ble _022D7E40 +_022D7E2C: + add r0, r3, #0x18 + mov r1, #0 + mov r2, #0xa + bl FUN_0207C40C + pop {r4, pc} +_022D7E40: + add r1, r1, #1 + cmp r1, #0xa + add r2, r2, #1 + blt _022D7E18 + pop {r4, pc} + .align 2, 0 +_022D7E54: .4byte 0x02326C90 + arm_func_end ov00_022D7DB0 + + arm_func_start ov00_022D7E58 +ov00_022D7E58: @ 0x022D7E58 + cmp r0, #2 + subhi r0, r0, #3 + andhi r0, r0, #0xff + bx lr + arm_func_end ov00_022D7E58 + + arm_func_start ov00_022D7E68 +ov00_022D7E68: @ 0x022D7E68 + push {r3, lr} + ldr r1, _022D7E98 @ =0x02326C90 + mov r0, #8 + ldr r1, [r1, #8] + mov r2, #0xc + bl ov00_022D7B1C + ldr r0, _022D7E98 @ =0x02326C90 + ldr r2, _022D7E9C @ =0x00000D18 + ldr r1, [r0, #0x10] + mov r0, #0x10 + bl ov00_022D7B1C + pop {r3, pc} + .align 2, 0 +_022D7E98: .4byte 0x02326C90 +_022D7E9C: .4byte 0x00000D18 + arm_func_end ov00_022D7E68 + + arm_func_start ov00_022D7EA0 +ov00_022D7EA0: @ 0x022D7EA0 + push {r4, r5, r6, r7, r8, sb, sl, lr} + ldr r0, _022D7F3C @ =0x02326C90 + mov r1, #0xc0 + ldr r8, [r0, #0x10] + ldrb r7, [r8, #0xd13] + ldrb r2, [r8, #0xd0d] + add r0, r8, #0x74 + smulbb r4, r7, r1 + add r5, r0, #0x400 + cmp r2, #6 + movhs r0, #1 + pophs {r4, r5, r6, r7, r8, sb, sl, pc} + ldrb sb, [r8, #0xd12] + mov r6, #0 + cmp sb, #0 + bls _022D7F34 + mov sl, r1 +_022D7EE4: + cmp r6, r7 + beq _022D7F24 + add r0, r8, r6, lsl #2 + ldrb r0, [r0, #0x445] + cmp r0, #6 + bhs _022D7F24 + mul r1, r6, sl + add r0, r8, r1 + add r0, r0, #0x400 + ldrh r2, [r0, #0x7a] + add r0, r5, r4 + add r1, r5, r1 + bl FUN_02089940 + cmp r0, #0 + moveq r0, #2 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} +_022D7F24: + add r0, r6, #1 + and r6, r0, #0xff + cmp r6, sb + blo _022D7EE4 +_022D7F34: + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022D7F3C: .4byte 0x02326C90 + arm_func_end ov00_022D7EA0 + + arm_func_start ov00_022D7F40 +ov00_022D7F40: @ 0x022D7F40 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + mov r0, #0x10 + mvn r4, #0 + bl ov00_022D7CA4 + mov r6, r0 + mov r0, #1 + bl ov00_022D7CA4 + mov r1, #1 + strb r1, [r0, #0xb] + bl ov00_022D7D5C + cmp r0, #3 + beq _022D7F88 + cmp r0, #4 + beq _022D7FF0 + cmp r0, #5 + beq _022D803C + pop {r3, r4, r5, r6, r7, pc} +_022D7F88: + ldrh r1, [r7, #0xa] + ldrb r5, [r6, #0xd11] + cmp r1, #0 + ldrbne r0, [r7, #0xc] + cmpne r0, #0 + bne _022D7FAC + ldrh r0, [r7, #0x36] + bl ov00_022D9374 + b _022D8084 +_022D7FAC: + cmp r1, #1 + cmpeq r0, #0x20 + bne _022D7FD8 + ldrh r0, [r7, #0x36] + bl ov00_022D9374 + ldrb r1, [r6, #0xd10] + mov r0, r7 + add r2, r6, #0x300 + bl ov00_022D8140 + mov r4, r0 + b _022D8084 +_022D7FD8: + ldrb r1, [r6, #0xd10] + mov r0, r7 + add r2, r6, #0x300 + bl ov00_022D8140 + mov r4, r0 + b _022D8084 +_022D7FF0: + ldrb r2, [r6, #0xd0f] + mov r1, #0xc0 + mov r0, r7 + mla r1, r2, r1, r6 + add r1, r1, #0x400 + ldrh r2, [r1, #0xa6] + mov r1, r6 + sub r2, r2, #1 + and r5, r2, #0xff + bl ov00_022D81BC + movs r4, r0 + bmi _022D8084 + ldrb r1, [r6, #0xd0f] + add r0, r6, #0x47 + add r2, r0, #0x400 + ldrb r0, [r2, r1, lsl #2] + orr r0, r0, #0x80 + strb r0, [r2, r1, lsl #2] + b _022D8084 +_022D803C: + ldrb r1, [r6, #0xd0f] + add r2, r6, #0x300 + mov r0, #0x24 + mla r2, r1, r0, r2 + mov r0, r7 + mov r1, #1 + ldrb r5, [r6, #0xd11] + bl ov00_022D8140 + movs r4, r0 + bmi _022D8084 + ldrb r1, [r6, #0xd0f] + mov r0, #0x24 + add r2, r6, #0x300 + smulbb r1, r1, r0 + ldrb r0, [r2, r1] + bic r0, r0, #0xf + orr r0, r0, #1 + strb r0, [r2, r1] +_022D8084: + cmp r4, #0 + poplt {r3, r4, r5, r6, r7, pc} + mov r0, r4 + mov r1, r7 + mov r2, r5 + mov r3, r6 + bl ov00_022D824C + mov r1, r6 + bl ov00_022D83CC + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022D7F40 + + arm_func_start ov00_022D80AC +ov00_022D80AC: @ 0x022D80AC + push {r3, r4, r5, lr} + mov r5, r0 + mov r0, #0x10 + bl ov00_022D7CA4 + mov r4, r0 + ldrb r0, [r4, #0xd0c] + lsl r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmpne r0, #4 + bne _022D80FC + ldrh r0, [r5, #0x2c] + asr r0, r0, #4 + and r0, r0, #1 + cmp r0, #1 + bne _022D80FC + add r0, r5, #0xc + bl ov00_022DA070 + cmp r0, #1 + moveq r0, #6 + popeq {r3, r4, r5, pc} +_022D80FC: + ldrb r0, [r4, #0xd0c] + lsl r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmpne r0, #5 + bne _022D8138 + ldrh r0, [r5, #0x2c] + asr r0, r0, #4 + and r0, r0, #1 + cmp r0, #1 + bne _022D8138 + add r0, r5, #0xc + bl ov00_022D9FC4 + cmp r0, #1 + moveq r0, #7 + popeq {r3, r4, r5, pc} +_022D8138: + mvn r0, #0 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D80AC + + arm_func_start ov00_022D8140 +ov00_022D8140: @ 0x022D8140 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r6, r0 + ldrh r3, [r6, #0xa] + mov r5, r1 + mov r4, r2 + cmp r3, #0x20 + bne _022D8168 + bl ov00_022D80AC + cmp r0, #0 + popgt {r3, r4, r5, r6, r7, r8, sb, pc} +_022D8168: + cmp r5, #0 + mov r8, #0 + ble _022D81B4 + ldrh sb, [r6, #0xa] + and r7, sb, #0xff +_022D817C: + ldrb r0, [r4, #3] + cmp r7, r0 + bne _022D81A4 + mov r2, sb + add r0, r6, #0xc + add r1, r4, #4 + bl FUN_02089940 + cmp r0, #0 + ldrbeq r0, [r4, #1] + popeq {r3, r4, r5, r6, r7, r8, sb, pc} +_022D81A4: + add r8, r8, #1 + cmp r8, r5 + add r4, r4, #0x24 + blt _022D817C +_022D81B4: + mvn r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_022D8140 + + arm_func_start ov00_022D81BC +ov00_022D81BC: @ 0x022D81BC + push {r4, r5, r6, r7, r8, sb, sl, lr} + mov sl, r0 + ldrh r2, [sl, #0xa] + mov sb, r1 + cmp r2, #0x20 + bne _022D81E0 + bl ov00_022D80AC + cmp r0, #0 + popgt {r4, r5, r6, r7, r8, sb, sl, pc} +_022D81E0: + ldrb r8, [sb, #0xd12] + mov r4, #0 + cmp r8, #0 + ble _022D8244 + ldrh r7, [sl, #0xa] + add r0, sb, #0x7c + mov r5, sb + add r6, r0, #0x400 +_022D8200: + add r0, r5, #0x400 + ldrh r0, [r0, #0x7a] + cmp r7, r0 + bne _022D8230 + mov r1, r6 + mov r2, r7 + add r0, sl, #0xc + bl FUN_02089940 + cmp r0, #0 + addeq r0, sb, r4, lsl #2 + ldrbeq r0, [r0, #0x445] + popeq {r4, r5, r6, r7, r8, sb, sl, pc} +_022D8230: + add r4, r4, #1 + cmp r4, r8 + add r5, r5, #0xc0 + add r6, r6, #0xc0 + blt _022D8200 +_022D8244: + mvn r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end ov00_022D81BC + + arm_func_start ov00_022D824C +ov00_022D824C: @ 0x022D824C + push {r4, r5, r6, r7, r8, lr} + mov r6, r3 + ldrb r5, [r6, #0xd12] + mvn r4, #0 + mov r3, #0 + cmp r5, #0 + ble _022D82D0 + ldrb lr, [r1, #4] + add ip, r6, #0x74 + add ip, ip, #0x400 +_022D8274: + ldrb r7, [ip] + cmp lr, r7 + ldrbeq r8, [r1, #5] + ldrbeq r7, [ip, #1] + cmpeq r8, r7 + ldrbeq r8, [r1, #6] + ldrbeq r7, [ip, #2] + cmpeq r8, r7 + ldrbeq r8, [r1, #7] + ldrbeq r7, [ip, #3] + cmpeq r8, r7 + ldrbeq r8, [r1, #8] + ldrbeq r7, [ip, #4] + cmpeq r8, r7 + ldrbeq r8, [r1, #9] + ldrbeq r7, [ip, #5] + cmpeq r8, r7 + moveq r4, r3 + beq _022D82D0 + add r3, r3, #1 + cmp r3, r5 + add ip, ip, #0xc0 + blt _022D8274 +_022D82D0: + mvn r3, #0 + cmp r4, r3 + bne _022D8300 + mov r3, r6 + and r0, r0, #0xff + bl ov00_022D8314 + ldrb r0, [r6, #0xd12] + mov r4, #0xa + cmp r0, #0xa + addlo r0, r0, #1 + strblo r0, [r6, #0xd12] + b _022D830C +_022D8300: + mov r0, r4 + mov r3, r6 + bl ov00_022D8360 +_022D830C: + mov r0, r4 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022D824C + + arm_func_start ov00_022D8314 +ov00_022D8314: @ 0x022D8314 + push {r3, lr} + add ip, r3, #0x6c + strb r0, [ip, #0x401] + ldrh r0, [r1, #2] + and r2, r2, #0x7f + tst r0, #2 + asr r0, r0, #2 + addeq r0, r0, #0x19 + and r0, r0, #0xff + strb r0, [ip, #0x402] + ldrb lr, [ip, #0x403] + mov r0, r1 + bic r1, lr, #0x7f + orr lr, r1, r2 + add r1, r3, #0xbf0 + mov r2, #0xc0 + strb lr, [ip, #0x403] + bl FUN_0207C330 + pop {r3, pc} + arm_func_end ov00_022D8314 + + arm_func_start ov00_022D8360 +ov00_022D8360: @ 0x022D8360 + push {r3, r4, r5, lr} + ldrh r4, [r1, #2] + add ip, r3, #0x44 + mov lr, #0xc0 + add r5, ip, #0x400 + mul ip, r0, lr + tst r4, #2 + add r0, r5, r0, lsl #2 + asr r4, r4, #2 + addeq r4, r4, #0x19 + and r4, r4, #0xff + ldrb lr, [r0, #2] + and r4, r4, #0xff + add r3, r3, #0x470 + cmp r4, lr + bls _022D83B8 + strb r4, [r0, #2] + ldrb lr, [r0, #3] + and r2, r2, #0x7f + bic lr, lr, #0x7f + orr r2, lr, r2 + strb r2, [r0, #3] +_022D83B8: + mov r0, r1 + add r1, r3, ip + mov r2, #0xc0 + bl FUN_0207C330 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D8360 + + arm_func_start ov00_022D83CC +ov00_022D83CC: @ 0x022D83CC + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0xc4 + mov r4, r0 + add r0, r1, #0x44 + add r7, r0, #0x400 + add r8, r1, #0x470 + subs r6, r4, #1 + bmi _022D8494 + mov r0, #0xc0 + mla sl, r6, r0, r8 + add sb, r7, r6, lsl #2 + add fp, sp, #0 +_022D83FC: + add r0, r7, r4, lsl #2 + ldrb r1, [r0, #2] + add r0, r7, r6, lsl #2 + ldrb r0, [r0, #2] + cmp r1, r0 + blo _022D8494 + mov r0, sb + mov r1, fp + mov r2, #4 + bl FUN_0207C330 + add r5, r7, r4, lsl #2 + mov r0, r5 + mov r1, sb + mov r2, #4 + bl FUN_0207C330 + mov r1, r5 + mov r0, fp + mov r2, #4 + bl FUN_0207C330 + mov r0, sl + add r1, sp, #4 + mov r2, #0xc0 + bl FUN_0207C330 + mov r0, #0xc0 + mul r5, r4, r0 + add r0, r8, r5 + mov r1, sl + mov r2, #0xc0 + bl FUN_0207C330 + add r1, r8, r5 + add r0, sp, #4 + mov r2, #0xc0 + bl FUN_0207C330 + mov r4, r6 + sub sb, sb, #4 + sub sl, sl, #0xc0 + subs r6, r6, #1 + bpl _022D83FC +_022D8494: + add r1, r7, #0x28 + mov r0, #0 + mov r2, #4 + bl FUN_0207C314 + add r1, r8, #0x780 + mov r0, #0 + mov r2, #0xc0 + bl FUN_0207C314 + add sp, sp, #0xc4 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022D83CC + + arm_func_start ov00_022D84BC +ov00_022D84BC: @ 0x022D84BC + push {r4, lr} + mov r4, r0 + mov r0, #0x10 + bl ov00_022D7CA4 + ldrsh r1, [r4] + cmp r1, #5 + bne _022D8534 + ldrsh r1, [r4, #2] + cmp r1, #0 + popeq {r4, pc} + ldr r1, [r4, #8] + cmp r1, #0xd + beq _022D8504 + cmp r1, #0xf + beq _022D8510 + cmp r1, #0x11 + beq _022D851C + b _022D8528 +_022D8504: + mov r1, #1 + strb r1, [r0, #0xd14] + pop {r4, pc} +_022D8510: + mov r1, #2 + strb r1, [r0, #0xd14] + pop {r4, pc} +_022D851C: + mov r1, #3 + strb r1, [r0, #0xd14] + pop {r4, pc} +_022D8528: + mov r1, #4 + strb r1, [r0, #0xd14] + pop {r4, pc} +_022D8534: + cmp r1, #7 + popne {r4, pc} + ldr r0, [r4, #4] + bl ov00_022D7F40 + pop {r4, pc} + arm_func_end ov00_022D84BC + + arm_func_start ov00_022D8548 +ov00_022D8548: @ 0x022D8548 + push {r4, lr} + bl ov00_022D7D5C + mov r4, r0 + mov r0, #0x10 + bl ov00_022D7CA4 + cmp r4, #7 + beq _022D8570 + cmp r4, #8 + beq _022D857C + b _022D8584 +_022D8570: + bl ov00_022D858C + mov r4, r0 + b _022D8584 +_022D857C: + bl ov00_022D8684 + mov r4, r0 +_022D8584: + mov r0, r4 + pop {r4, pc} + arm_func_end ov00_022D8548 + + arm_func_start ov00_022D858C +ov00_022D858C: @ 0x022D858C + push {r3, r4, r5, lr} + mov r5, r0 + ldrb r2, [r5, #0xd13] + add r3, r5, #0x470 + mov r1, #0xc0 + mla r4, r2, r1, r3 + bl ov00_022D87C0 + add r1, r5, #0xb8 + strb r0, [r5, #0xd0d] + add r0, r1, #0xc00 + mov r1, #0 + mov r2, #0x52 + bl FUN_0207C40C + add r2, r5, #0xb8 + ldrb r1, [r5, #0xd0d] + mov r0, r5 + add r2, r2, #0xc00 + bl ov00_022D8994 + cmp r0, #0 + ldrb r0, [r5, #0xd0b] + bic r0, r0, #0xc + beq _022D8640 + orr r0, r0, #4 + strb r0, [r5, #0xd0b] + ldrh r0, [r4, #0x2c] + asr r0, r0, #4 + tst r0, #1 + bne _022D8614 + ldrb r1, [r5, #0xd13] + mov r2, #3 + mov r0, #9 + add r1, r5, r1, lsl #2 + strb r2, [r1, #0x444] + pop {r3, r4, r5, pc} +_022D8614: + ldrb r0, [r5, #0xd0d] + cmp r0, #6 + ldrbeq r0, [r4, #0x15] + cmpeq r0, #0 + bne _022D8670 + ldrb r1, [r5, #0xd13] + mov r2, #3 + mov r0, #9 + add r1, r5, r1, lsl #2 + strb r2, [r1, #0x444] + pop {r3, r4, r5, pc} +_022D8640: + strb r0, [r5, #0xd0b] + ldrh r0, [r4, #0x2c] + asr r0, r0, #4 + and r0, r0, #1 + cmp r0, #1 + bne _022D8670 + ldrb r1, [r5, #0xd13] + mov r2, #3 + mov r0, #9 + add r1, r5, r1, lsl #2 + strb r2, [r1, #0x444] + pop {r3, r4, r5, pc} +_022D8670: + mov r0, #0 + strb r0, [r5, #0xd15] + strb r0, [r5, #0xd14] + mov r0, #8 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D858C + + arm_func_start ov00_022D8684 +ov00_022D8684: @ 0x022D8684 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + bl ov00_022D5640 + ldrb r2, [r7, #0xd13] + mov r1, #0xc0 + cmp r0, #3 + add r5, r7, #0x470 + smulbb r4, r2, r1 + bne _022D8794 + mov r0, r7 + bl ov00_022D895C + ldrb r1, [r7, #0xd15] + mov r6, r0 + add r0, r1, #1 + and r1, r0, #0xff + strb r0, [r7, #0xd15] + cmp r1, #3 + bls _022D86EC + mov r0, #0 + strb r0, [r7, #0xd15] + ldrb r1, [r7, #0xd13] + mov r2, #1 + mov r0, #9 + add r1, r7, r1, lsl #2 + strb r2, [r1, #0x444] + pop {r3, r4, r5, r6, r7, pc} +_022D86EC: + cmp r1, #1 + beq _022D8770 + ldrb r0, [r7, #0xd14] + cmp r0, #1 + bne _022D8710 + ldrb r0, [r7, #0xd0b] + bic r0, r0, #0xc + strb r0, [r7, #0xd0b] + b _022D8770 +_022D8710: + cmp r0, #2 + bne _022D8738 + mov r0, #0 + strb r0, [r7, #0xd15] + ldrb r1, [r7, #0xd13] + mov r2, #3 + mov r0, #9 + add r1, r7, r1, lsl #2 + strb r2, [r1, #0x444] + pop {r3, r4, r5, r6, r7, pc} +_022D8738: + cmp r0, #3 + bne _022D8760 + mov r0, #0 + strb r0, [r7, #0xd15] + ldrb r1, [r7, #0xd13] + mov r2, #4 + mov r0, #9 + add r1, r7, r1, lsl #2 + strb r2, [r1, #0x444] + pop {r3, r4, r5, r6, r7, pc} +_022D8760: + cmp r1, #3 + ldrbeq r0, [r7, #0xd0b] + biceq r0, r0, #0xc + strbeq r0, [r7, #0xd0b] +_022D8770: + mov r0, r7 + bl ov00_022D8978 + mov r2, r0 + add r1, r7, #0xb8 + add r0, r5, r4 + add r1, r1, #0xc00 + orr r2, r6, r2 + bl ov00_022D5110 + b _022D87B8 +_022D8794: + cmp r0, #9 + bne _022D87B8 + mov r0, #0 + strb r0, [r7, #0xd15] + bl FUN_0207AE44 + str r0, [r7, #0xcb0] + str r1, [r7, #0xcb4] + mov r0, #0xa + pop {r3, r4, r5, r6, r7, pc} +_022D87B8: + mov r0, #8 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022D8684 + + arm_func_start ov00_022D87C0 +ov00_022D87C0: @ 0x022D87C0 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sl, r0 + ldrb r2, [sl, #0xd13] + ldrb r1, [sl, #0xd0c] + add r3, sl, #0x470 + mov r0, #0xc0 + mla r4, r2, r0, r3 + lsl r0, r1, #0x18 + lsrs r0, r0, #0x1e + mov r0, #0 + str r0, [sp] + bne _022D88DC + ldrh r0, [r4, #0xa] + ldr r6, [sp] + cmp r0, #0x20 + bne _022D8820 + mov r0, r4 + bl ov00_022D80AC + cmp r0, #0 + str r0, [sp] + movle r0, #0 + addgt r6, r6, #1 + strle r0, [sp] + b _022D8844 +_022D8820: + cmp r0, #8 + bne _022D8844 + mov r0, r4 + bl ov00_022D8E60 + cmp r0, #0 + str r0, [sp] + moveq r0, #0 + addne r6, r6, #1 + streq r0, [sp] +_022D8844: + ldrb r0, [sl, #0xd10] + mov r5, #0 + cmp r0, #0 + ble _022D8950 + mov r7, sl + add r8, sl, #0x304 + add sb, sl, #0x300 + add fp, sl, #0x10c +_022D8864: + ldrh r2, [r4, #0xa] + ldrb r0, [r7, #0x303] + cmp r2, r0 + bne _022D88BC + mov r1, r8 + add r0, r4, #0xc + bl FUN_02089940 + cmp r0, #0 + bne _022D88BC + cmp r6, #0 + ldrbeq r0, [r7, #0x301] + streq r0, [sp] + beq _022D88B8 + ldrb r0, [sb] + bic r0, r0, #0xf0 + orr r0, r0, #0x10 + strb r0, [sb] + ldrb r0, [fp, #0xc00] + bic r0, r0, #0xc0 + orr r0, r0, #0x40 + strb r0, [fp, #0xc00] +_022D88B8: + add r6, r6, #1 +_022D88BC: + ldrb r0, [sl, #0xd10] + add r5, r5, #1 + add r7, r7, #0x24 + cmp r5, r0 + add r8, r8, #0x24 + add sb, sb, #0x24 + blt _022D8864 + b _022D8950 +_022D88DC: + ldrb r0, [sl, #0xd10] + ldr r5, [sp] + mov r4, r5 + cmp r0, #0 + ble _022D8940 + mov r3, sl + add r2, sl, #0x300 +_022D88F8: + ldrb r0, [r2] + lsl r1, r0, #0x18 + lsr r1, r1, #0x1c + cmp r1, #1 + bne _022D8928 + cmp r4, #0 + bne _022D8924 + bic r0, r0, #0xf0 + strb r0, [r2] + ldrb r0, [r3, #0x301] + str r0, [sp] +_022D8924: + add r4, r4, #1 +_022D8928: + ldrb r0, [sl, #0xd10] + add r5, r5, #1 + add r2, r2, #0x24 + cmp r5, r0 + add r3, r3, #0x24 + blt _022D88F8 +_022D8940: + cmp r4, #1 + ldrbeq r0, [sl, #0xd0c] + biceq r0, r0, #0xc0 + strbeq r0, [sl, #0xd0c] +_022D8950: + ldr r0, [sp] + and r0, r0, #0xff + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022D87C0 + + arm_func_start ov00_022D895C +ov00_022D895C: @ 0x022D895C + ldrb r0, [r0, #0xd0b] + lsl r0, r0, #0x1e + lsr r0, r0, #0x1e + cmp r0, #1 + moveq r0, #0x30000 + movne r0, #0x20000 + bx lr + arm_func_end ov00_022D895C + + arm_func_start ov00_022D8978 +ov00_022D8978: @ 0x022D8978 + ldrb r0, [r0, #0xd0b] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1e + cmp r0, #1 + moveq r0, #0xc0000 + movne r0, #0x80000 + bx lr + arm_func_end ov00_022D8978 + + arm_func_start ov00_022D8994 +ov00_022D8994: @ 0x022D8994 + push {r4, lr} + mov r4, r2 + cmp r1, #9 + addls pc, pc, r1, lsl #2 + b _022D8A6C +_022D89A8: @ jump table + b _022D89D8 @ case 0 + b _022D89D4 @ case 1 + b _022D89D0 @ case 2 + b _022D8A04 @ case 3 + b _022D8A00 @ case 4 + b _022D89FC @ case 5 + b _022D8A20 @ case 6 + b _022D8A48 @ case 7 + b _022D8A6C @ case 8 + b _022D8A6C @ case 9 +_022D89D0: + add r0, r0, #0x100 +_022D89D4: + add r0, r0, #0x100 +_022D89D8: + ldrb r2, [r0, #0xe6] + add r0, r0, #0x80 + add r1, r4, #2 + lsl r2, r2, #0x1e + lsr r3, r2, #0x1e + mov r2, #0x10 + strb r3, [r4] + bl FUN_0207C4C8 + b _022D8A6C +_022D89FC: + add r0, r0, #0x100 +_022D8A00: + add r0, r0, #0x100 +_022D8A04: + mov r3, #1 + add r0, r0, #0xd1 + add r1, r4, #2 + mov r2, #5 + strb r3, [r4] + bl FUN_0207C4C8 + b _022D8A6C +_022D8A20: + mov r1, #2 + strb r1, [r4] + ldrb r1, [r0, #0xd13] + add r0, r0, #0x7c + add r2, r0, #0x400 + mov r0, #0xc0 + mla r0, r1, r0, r2 + add r1, r4, #2 + bl ov00_022DA094 + b _022D8A6C +_022D8A48: + mov r1, #2 + strb r1, [r4] + ldrb r1, [r0, #0xd13] + add r0, r0, #0x7c + add r2, r0, #0x400 + mov r0, #0xc0 + mla r0, r1, r0, r2 + add r1, r4, #2 + bl ov00_022D9FFC +_022D8A6C: + ldrb r0, [r4] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r4, pc} + arm_func_end ov00_022D8994 + + arm_func_start ov00_022D8A80 +ov00_022D8A80: @ 0x022D8A80 + push {r4, lr} + mov r4, r0 + ldrb r0, [r4] + cmp r0, #0xa + bhi _022D8ACC + bl ov00_022D8B08 + cmp r0, #1 + bne _022D8AB0 + mov r0, #0 + strb r0, [r4] + mov r0, #1 + pop {r4, pc} +_022D8AB0: + mvn r1, #0 + cmp r0, r1 + bne _022D8B00 + mov r0, #0x12 + strb r0, [r4] + mov r0, #1 + pop {r4, pc} +_022D8ACC: + cmp r0, #0xe + bne _022D8AE8 + bl ov00_022DE654 + bl ov00_022DE55C + mov r0, #0xc + strb r0, [r4] + b _022D8B00 +_022D8AE8: + cmp r0, #0x12 + bhs _022D8B00 + bl ov00_022D8B98 + cmp r0, #1 + moveq r0, #0xa + strbeq r0, [r4] +_022D8B00: + mov r0, #0 + pop {r4, pc} + arm_func_end ov00_022D8A80 + + arm_func_start ov00_022D8B08 +ov00_022D8B08: @ 0x022D8B08 + push {r3, lr} + bl ov00_022D5640 + cmp r0, #0xc + addls pc, pc, r0, lsl #2 + b _022D8B90 +_022D8B1C: @ jump table + b _022D8B50 @ case 0 + b _022D8B58 @ case 1 + b _022D8B90 @ case 2 + b _022D8B60 @ case 3 + b _022D8B90 @ case 4 + b _022D8B90 @ case 5 + b _022D8B68 @ case 6 + b _022D8B90 @ case 7 + b _022D8B90 @ case 8 + b _022D8B70 @ case 9 + b _022D8B90 @ case 10 + b _022D8B80 @ case 11 + b _022D8B78 @ case 12 +_022D8B50: + mov r0, #1 + pop {r3, pc} +_022D8B58: + bl ov00_022D4B88 + b _022D8B90 +_022D8B60: + bl ov00_022D4DE4 + b _022D8B90 +_022D8B68: + bl ov00_022D506C + b _022D8B90 +_022D8B70: + bl ov00_022D5314 + b _022D8B90 +_022D8B78: + bl ov00_022D5430 + b _022D8B90 +_022D8B80: + mov r0, #0 + bl ov00_022D7D78 + mvn r0, #0 + pop {r3, pc} +_022D8B90: + mov r0, #0 + pop {r3, pc} + arm_func_end ov00_022D8B08 + + arm_func_start ov00_022D8B98 +ov00_022D8B98: @ 0x022D8B98 + push {r3, lr} + ldr r0, _022D8BDC @ =0x02318868 + ldr r0, [r0] + cmp r0, #0 + moveq r0, #1 + popeq {r3, pc} + bl ov00_022CED64 + cmp r0, #0 + movne r0, #0 + popne {r3, pc} + bl ov00_022CEC18 + cmp r0, #0 + mvnne r1, #0x26 + cmpne r0, r1 + moveq r0, #1 + movne r0, #0 + pop {r3, pc} + .align 2, 0 +_022D8BDC: .4byte 0x02318868 + arm_func_end ov00_022D8B98 + + arm_func_start ov00_022D8BE0 +ov00_022D8BE0: @ 0x022D8BE0 + push {r3, lr} + mov r0, #1 + bl ov00_022D7CA4 + add r0, r0, #0xa + bl ov00_022D8A80 + cmp r0, #1 + moveq r0, #0x12 + movne r0, #0x11 + pop {r3, pc} + arm_func_end ov00_022D8BE0 + + arm_func_start ov00_022D8C04 +ov00_022D8C04: @ 0x022D8C04 + push {r4, lr} + mov r0, #1 + bl ov00_022D7CA4 + mov r4, r0 + bl ov00_022D7D9C + cmp r0, #4 + bge _022D8C28 + bl ov00_022D8C54 + pop {r4, pc} +_022D8C28: + cmp r0, #5 + bge _022D8C38 + bl ov00_022D8C98 + pop {r4, pc} +_022D8C38: + cmp r0, #5 + mov r0, r4 + bne _022D8C4C + bl ov00_022D8CA0 + pop {r4, pc} +_022D8C4C: + bl ov00_022D8CBC + pop {r4, pc} + arm_func_end ov00_022D8C04 + + arm_func_start ov00_022D8C54 +ov00_022D8C54: @ 0x022D8C54 + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _022D8C90 +_022D8C60: @ jump table + b _022D8C78 @ case 0 + b _022D8C70 @ case 1 + b _022D8C80 @ case 2 + b _022D8C88 @ case 3 +_022D8C70: + mvn r0, #8 + bx lr +_022D8C78: + mvn r0, #9 + bx lr +_022D8C80: + mvn r0, #7 + bx lr +_022D8C88: + mvn r0, #6 + bx lr +_022D8C90: + mov r0, #0 + bx lr + arm_func_end ov00_022D8C54 + + arm_func_start ov00_022D8C98 +ov00_022D8C98: @ 0x022D8C98 + mvn r0, #5 + bx lr + arm_func_end ov00_022D8C98 + + arm_func_start ov00_022D8CA0 +ov00_022D8CA0: @ 0x022D8CA0 + ldrb r0, [r0, #0xb] + cmp r0, #0 + ldreq r0, _022D8CB4 @ =0xFFFF3C4D + ldrne r0, _022D8CB8 @ =0xFFFF3865 + bx lr + .align 2, 0 +_022D8CB4: .4byte 0xFFFF3C4D +_022D8CB8: .4byte 0xFFFF3865 + arm_func_end ov00_022D8CA0 + + arm_func_start ov00_022D8CBC +ov00_022D8CBC: @ 0x022D8CBC + ldrb r1, [r0, #0x22] + ldrb r2, [r0, #0x16] + cmp r1, #0 + ldrbeq r1, [r0, #0x15] + cmp r2, #0xa + bhs _022D8D08 + ldrb r0, [r0, #0x14] + cmp r0, #3 + ldreq r0, _022D8DA4 @ =0xFFFF3864 + subeq r0, r0, r1 + bxeq lr + cmp r0, #4 + ldrne r0, _022D8DA8 @ =0xFFFF379C + subne r0, r0, r1 + bxne lr + mov r0, #0xc800 + rsb r0, r0, #0 + sub r0, r0, r1 + bx lr +_022D8D08: + cmp r2, #0xd + ldrlo r0, _022D8DAC @ =0xFFFF34E0 + sublo r0, r0, r1 + bxlo lr + ldr r0, [r0, #0x10] + cmp r0, #0 + ldreq r0, _022D8DB0 @ =0xFFFF3CB0 + subeq r0, r0, r1 + bxeq lr + mvn r3, #0 + cmp r0, r3 + ldreq r0, _022D8DB4 @ =0xFFFF347C + subeq r0, r0, r1 + bxeq lr + sub r2, r3, #1 + cmp r0, r2 + ldreq r0, _022D8DB8 @ =0xFFFF3418 + subeq r0, r0, r1 + bxeq lr + sub r2, r3, #2 + cmp r0, r2 + ldreq r0, _022D8DBC @ =0xFFFF33B4 + subeq r0, r0, r1 + bxeq lr + sub r2, r3, #3 + cmp r0, r2 + ldreq r0, _022D8DC0 @ =0xFFFF30F8 + subeq r0, r0, r1 + bxeq lr + sub r2, r3, #4 + cmp r0, r2 + ldreq r0, _022D8DC4 @ =0xFFFF3094 + subeq r0, r0, r1 + bxeq lr + sub r2, r3, #5 + cmp r0, r2 + ldreq r0, _022D8DC8 @ =0xFFFF3030 + subeq r0, r0, r1 + bx lr + .align 2, 0 +_022D8DA4: .4byte 0xFFFF3864 +_022D8DA8: .4byte 0xFFFF379C +_022D8DAC: .4byte 0xFFFF34E0 +_022D8DB0: .4byte 0xFFFF3CB0 +_022D8DB4: .4byte 0xFFFF347C +_022D8DB8: .4byte 0xFFFF3418 +_022D8DBC: .4byte 0xFFFF33B4 +_022D8DC0: .4byte 0xFFFF30F8 +_022D8DC4: .4byte 0xFFFF3094 +_022D8DC8: .4byte 0xFFFF3030 + arm_func_end ov00_022D8CBC + + arm_func_start ov00_022D8DCC +ov00_022D8DCC: @ 0x022D8DCC + push {r3, r4, r5, lr} + mov r5, r0 + mov r0, #0x10 + bl ov00_022D7CA4 + mov r4, r0 + cmp r5, #0 + beq _022D8DFC + cmp r5, #1 + beq _022D8E1C + cmp r5, #2 + beq _022D8E34 + b _022D8E58 +_022D8DFC: + add r1, r4, #0x300 + mov r0, #0 + mov r2, #0x144 + bl FUN_0207C314 + mov r0, r4 + bl ov00_022D8EAC + strb r0, [r4, #0xd10] + b _022D8E58 +_022D8E1C: + bl ov00_022D9100 + strb r0, [r4, #0xd10] + mov r0, r4 + bl ov00_022D9190 + strb r0, [r4, #0xd0f] + b _022D8E58 +_022D8E34: + add r1, r4, #0x300 + mov r0, #0 + mov r2, #0x144 + bl FUN_0207C314 + mov r1, #0 + mov r0, r4 + strb r1, [r4, #0xd0f] + bl ov00_022D8F0C + strb r0, [r4, #0xd10] +_022D8E58: + ldrb r0, [r4, #0xd10] + pop {r3, r4, r5, pc} + arm_func_end ov00_022D8DCC + + arm_func_start ov00_022D8E60 +ov00_022D8E60: @ 0x022D8E60 + push {r4, lr} + mov r4, r0 + mov r0, #0x10 + bl ov00_022D7CA4 + ldrb r0, [r0, #0xd0c] + lsl r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmpne r0, #6 + bne _022D8EA0 + ldr r1, _022D8EA8 @ =0x02318188 + add r0, r4, #0xc + mov r2, #8 + bl FUN_02089940 + cmp r0, #0 + moveq r0, #8 + popeq {r4, pc} +_022D8EA0: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_022D8EA8: .4byte 0x02318188 + arm_func_end ov00_022D8E60 + + arm_func_start ov00_022D8EAC +ov00_022D8EAC: @ 0x022D8EAC + push {r3, r4, r5, lr} + mov r5, r0 + add r4, r5, #0x300 + bl ov00_022D8FF8 + ldrb r1, [r5, #0xd0c] + mov r5, r0 + mov r0, #0x24 + mla r4, r5, r0, r4 + lsl r1, r1, #0x1c + lsrs r0, r1, #0x1c + cmpne r0, #6 + bne _022D8F00 + ldr r0, _022D8F08 @ =0x02318188 + add r1, r4, #4 + mov r2, #8 + bl FUN_0207C4C8 + mov r1, #8 + strb r1, [r4, #3] + add r0, r5, #1 + strb r1, [r4, #1] + and r5, r0, #0xff +_022D8F00: + mov r0, r5 + pop {r3, r4, r5, pc} + .align 2, 0 +_022D8F08: .4byte 0x02318188 + arm_func_end ov00_022D8EAC + + arm_func_start ov00_022D8F0C +ov00_022D8F0C: @ 0x022D8F0C + push {r4, r5, r6, lr} + mov r6, r0 + add r5, r6, #0x300 + bl ov00_022D8FF8 + ldrb r1, [r6, #0xd0c] + mov r4, r0 + mov r0, #0x24 + mla r5, r4, r0, r5 + lsl r1, r1, #0x1c + lsrs r0, r1, #0x1c + cmpne r0, #4 + bne _022D8F68 + ldr r0, _022D8FEC @ =0x02318AF4 + add r1, r5, #4 + mov r2, #8 + bl FUN_0207C4C8 + mov r1, #8 + add r0, r4, #1 + strb r1, [r5, #3] + mov r1, #6 + strb r1, [r5, #1] + and r4, r0, #0xff + add r5, r5, #0x24 +_022D8F68: + ldrb r0, [r6, #0xd0c] + lsl r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmpne r0, #7 + bne _022D8FA8 + ldr r0, _022D8FF0 @ =0x02318180 + add r1, r5, #4 + mov r2, #8 + bl FUN_0207C4C8 + mov r1, #8 + add r0, r4, #1 + strb r1, [r5, #3] + mov r1, #9 + strb r1, [r5, #1] + and r4, r0, #0xff + add r5, r5, #0x24 +_022D8FA8: + ldrb r0, [r6, #0xd0c] + lsl r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmpne r0, #8 + bne _022D8FE4 + ldr r0, _022D8FF4 @ =0x02318190 + add r1, r5, #4 + mov r2, #0xb + bl FUN_0207C4C8 + mov r1, #0xb + add r0, r4, #1 + strb r1, [r5, #3] + mov r1, #0xa + strb r1, [r5, #1] + and r4, r0, #0xff +_022D8FE4: + mov r0, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_022D8FEC: .4byte 0x02318AF4 +_022D8FF0: .4byte 0x02318180 +_022D8FF4: .4byte 0x02318190 + arm_func_end ov00_022D8F0C + + arm_func_start ov00_022D8FF8 +ov00_022D8FF8: @ 0x022D8FF8 + push {r4, r5, r6, lr} + mov r2, #0 + mov r3, r0 + mov r1, r2 + add ip, r0, #0x300 +_022D900C: + ldrb r4, [r0, #0xd0c] + lsl r4, r4, #0x1c + lsrs r5, r4, #0x1c + addne r4, r1, #1 + cmpne r5, r4 + bne _022D90E8 + ldrb r4, [r3, #0xe7] + cmp r4, #0xff + beq _022D90E8 + mov r6, #0 +_022D9034: + add r4, r3, r6 + ldrb lr, [r4, #0x40] + cmp lr, #0 + beq _022D905C + add r4, r6, #1 + add r5, ip, r6 + and r6, r4, #0xff + strb lr, [r5, #4] + cmp r6, #0x20 + blo _022D9034 +_022D905C: + cmp r6, #0 + moveq r4, #0 + beq _022D9074 + strb r6, [ip, #3] + strb r1, [ip, #1] + mov r4, #1 +_022D9074: + cmp r4, #0 + ldrb r4, [r3, #0xe7] + addne r2, r2, #1 + andne r2, r2, #0xff + addne ip, ip, #0x24 + cmp r4, #1 + bne _022D90E8 + mov r6, #0 +_022D9094: + add r4, r3, r6 + ldrb r5, [r4, #0x60] + cmp r5, #0 + beq _022D90BC + add lr, r6, #1 + add r4, ip, r6 + and r6, lr, #0xff + strb r5, [r4, #4] + cmp r6, #0x20 + blo _022D9094 +_022D90BC: + cmp r6, #0 + moveq r4, #0 + beq _022D90D8 + strb r6, [ip, #3] + add lr, r1, #3 + strb lr, [ip, #1] + mov r4, #1 +_022D90D8: + cmp r4, #0 + addne r2, r2, #1 + andne r2, r2, #0xff + addne ip, ip, #0x24 +_022D90E8: + add r1, r1, #1 + cmp r1, #3 + add r3, r3, #0x100 + blt _022D900C + mov r0, r2 + pop {r4, r5, r6, pc} + arm_func_end ov00_022D8FF8 + + arm_func_start ov00_022D9100 +ov00_022D9100: @ 0x022D9100 + push {r3, r4, r5, lr} + ldrb r3, [r0, #0xd12] + mov r2, #0 + mov r1, r2 + cmp r3, #0 + ble _022D9188 + add r3, r0, #0x47 + mov ip, r0 + add r3, r3, #0x400 +_022D9124: + add r4, r0, r1, lsl #2 + ldrb r4, [r4, #0x444] + cmp r4, #0 + bne _022D9164 + add lr, ip, #0x400 + ldrh r4, [lr, #0xa6] + ldrb lr, [r3] + sub r5, r4, #1 + lsl r4, lr, #0x19 + cmp r5, r4, lsr #25 + beq _022D9164 + bic lr, lr, #0x80 + add r2, r2, #1 + strb lr, [r3] + and r2, r2, #0xff + b _022D9170 +_022D9164: + ldrb lr, [r3] + orr lr, lr, #0x80 + strb lr, [r3] +_022D9170: + ldrb lr, [r0, #0xd12] + add r1, r1, #1 + add r3, r3, #4 + cmp r1, lr + add ip, ip, #0xc0 + blt _022D9124 +_022D9188: + mov r0, r2 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D9100 + + arm_func_start ov00_022D9190 +ov00_022D9190: @ 0x022D9190 + ldrb ip, [r0, #0xd12] + mov r3, #0 + mov r2, r3 + cmp ip, #0 + bls _022D91CC +_022D91A4: + add r1, r0, r2, lsl #2 + ldrb r1, [r1, #0x447] + lsl r1, r1, #0x18 + lsrs r1, r1, #0x1f + moveq r3, r2 + beq _022D91CC + add r1, r2, #1 + and r2, r1, #0xff + cmp r2, ip + blo _022D91A4 +_022D91CC: + mov r0, r3 + bx lr + arm_func_end ov00_022D9190 + + arm_func_start ov00_022D91D4 +ov00_022D91D4: @ 0x022D91D4 + push {r3, r4, r5, lr} + mov r0, #0x10 + bl ov00_022D7CA4 + mov r4, r0 + mov r5, #9 + bl ov00_022D5640 + cmp r0, #0xc + addls pc, pc, r0, lsl #2 + b _022D92A8 +_022D91F8: @ jump table + b _022D92A8 @ case 0 + b _022D92A8 @ case 1 + b _022D92A8 @ case 2 + b _022D922C @ case 3 + b _022D92A8 @ case 4 + b _022D92A8 @ case 5 + b _022D9278 @ case 6 + b _022D92A8 @ case 7 + b _022D92A8 @ case 8 + b _022D9280 @ case 9 + b _022D92A8 @ case 10 + b _022D929C @ case 11 + b _022D9288 @ case 12 +_022D922C: + ldrb r0, [r4, #0xd0c] + ldrb r5, [r4, #0xd0e] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1e + cmp r0, #1 + bne _022D925C + ldrb r0, [r4, #0xd13] + mov r1, #0 + mov r5, #7 + add r0, r4, r0, lsl #2 + strb r1, [r0, #0x444] + b _022D92A8 +_022D925C: + cmp r5, #3 + blo _022D92A8 + cmp r5, #5 + bhi _022D92A8 + mov r0, r5 + bl ov00_022D9410 + b _022D92A8 +_022D9278: + bl ov00_022D506C + b _022D92A8 +_022D9280: + bl ov00_022D5314 + b _022D92A8 +_022D9288: + bl ov00_022D5430 + mov r0, #4 + bl ov00_022D7D78 + mov r5, #0x11 + b _022D92A8 +_022D929C: + mov r0, #0 + bl ov00_022D7D78 + mov r5, #0x11 +_022D92A8: + mov r0, r5 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D91D4 + + arm_func_start ov00_022D92B0 +ov00_022D92B0: @ 0x022D92B0 + push {r3, r4, r5, lr} + mov r0, #0x10 + bl ov00_022D7CA4 + mov r4, r0 + bl ov00_022D7D5C + mov r5, r0 + bl ov00_022D5640 + cmp r5, #2 + cmpeq r0, #3 + bne _022D92E8 + mov r0, r4 + bl ov00_022D94F0 + mov r5, r0 + b _022D936C +_022D92E8: + cmp r5, #6 + bne _022D9304 + mov r0, r4 + mov r1, r5 + bl ov00_022D9938 + mov r5, r0 + b _022D936C +_022D9304: + cmp r0, #3 + cmpne r0, #6 + bne _022D936C + mov r0, r4 + mov r1, r5 + bl ov00_022D9938 + mov r5, r0 + cmp r5, #7 + beq _022D936C + cmp r5, #3 + bne _022D9340 + mov r0, r4 + bl ov00_022D9540 + mov r5, r0 + b _022D936C +_022D9340: + cmp r5, #4 + bne _022D9358 + mov r0, r4 + bl ov00_022D962C + mov r5, r0 + b _022D936C +_022D9358: + cmp r5, #5 + bne _022D936C + mov r0, r4 + bl ov00_022D9754 + mov r5, r0 +_022D936C: + mov r0, r5 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D92B0 + + arm_func_start ov00_022D9374 +ov00_022D9374: @ 0x022D9374 + push {r4, lr} + mov r4, r0 + mov r0, #0x10 + bl ov00_022D7CA4 + add r0, r0, #0xd00 + cmp r4, #0xd + movhi r4, #0xd + ldrh r3, [r0, #0x16] + sub r1, r4, #1 + mov r2, #1 + orr r1, r3, r2, lsl r1 + strh r1, [r0, #0x16] + pop {r4, pc} + arm_func_end ov00_022D9374 + + arm_func_start ov00_022D93A8 +ov00_022D93A8: @ 0x022D93A8 + push {r4, lr} + mov r4, r0 + mov r0, #0x10 + bl ov00_022D7CA4 + add r0, r0, #0xd00 + ldrh ip, [r0, #0x16] + cmp ip, #0 + mvneq r0, #0 + popeq {r4, pc} + mov r2, #0 + mov r3, r2 + mov r1, #1 +_022D93D8: + tst ip, r1, lsl r2 + beq _022D93F8 + cmp r3, r4 + lsleq r0, r2, #0x18 + asreq r0, r0, #0x18 + popeq {r4, pc} + add r0, r3, #1 + and r3, r0, #0xff +_022D93F8: + add r0, r2, #1 + and r2, r0, #0xff + cmp r2, #0xd + blo _022D93D8 + mvn r0, #0 + pop {r4, pc} + arm_func_end ov00_022D93A8 + + arm_func_start ov00_022D9410 +ov00_022D9410: @ 0x022D9410 + push {r3, r4, r5, lr} + mov r5, r0 + mov r0, #0x10 + bl ov00_022D7CA4 + mov r4, r0 + cmp r5, #3 + beq _022D9440 + cmp r5, #4 + beq _022D9468 + cmp r5, #5 + beq _022D94B4 + pop {r3, r4, r5, pc} +_022D9440: + bl FUN_0207AE44 + str r0, [r4, #0xcb0] + str r1, [r4, #0xcb4] + add r0, r4, #0xd00 + ldrsb r2, [r0, #0x11] + ldr r0, _022D94E8 @ =0x02318158 + ldr r1, _022D94EC @ =0x02318160 + mov r3, #0x200000 + bl ov00_022D9A5C + pop {r3, r4, r5, pc} +_022D9468: + bl FUN_0207AE44 + str r0, [r4, #0xcb0] + str r1, [r4, #0xcb4] + ldrb r2, [r4, #0xd0f] + mov r0, #0xc0 + add r1, r4, #0x74 + smulbb ip, r2, r0 + add r0, r4, ip + add r0, r0, #0x400 + ldrh r2, [r0, #0xa6] + add r0, r4, #0x7c + add r3, r1, #0x400 + add r1, r0, #0x400 + add r0, r3, ip + add r1, r1, ip + sub r2, r2, #1 + mov r3, #0x300000 + bl ov00_022D9A5C + pop {r3, r4, r5, pc} +_022D94B4: + bl FUN_0207AE44 + str r0, [r4, #0xcb0] + str r1, [r4, #0xcb4] + ldrb r3, [r4, #0xd0f] + add r1, r4, #0x304 + mov r0, #0x24 + add r2, r4, #0xd00 + mla r1, r3, r0, r1 + ldrsb r2, [r2, #0x11] + ldr r0, _022D94E8 @ =0x02318158 + mov r3, #0x300000 + bl ov00_022D9A5C + pop {r3, r4, r5, pc} + .align 2, 0 +_022D94E8: .4byte 0x02318158 +_022D94EC: .4byte 0x02318160 + arm_func_end ov00_022D9410 + + arm_func_start ov00_022D94F0 +ov00_022D94F0: @ 0x022D94F0 + push {r4, lr} + mov r4, r0 + bl FUN_0207AE44 + str r0, [r4, #0xcb0] + str r1, [r4, #0xcb4] + mov r0, #0 + strb r0, [r4, #0xd11] + bl FUN_0207AE44 + str r0, [r4, #0xcb0] + str r1, [r4, #0xcb4] + add r0, r4, #0xd00 + ldrsb r2, [r0, #0x11] + ldr r0, _022D9538 @ =0x02318158 + ldr r1, _022D953C @ =0x02318160 + mov r3, #0x200000 + bl ov00_022D9A5C + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_022D9538: .4byte 0x02318158 +_022D953C: .4byte 0x02318160 + arm_func_end ov00_022D94F0 + + arm_func_start ov00_022D9540 +ov00_022D9540: @ 0x022D9540 + push {r4, lr} + mov r4, r0 + bl FUN_0207AE44 + ldr r3, [r4, #0xcb0] + ldr r2, [r4, #0xcb4] + subs r3, r0, r3 + sbc r0, r1, r2 + lsl r1, r0, #6 + ldr r2, _022D95D8 @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 + mov r3, #0 + bl FUN_0208FE3C + cmp r1, #0 + cmpeq r0, #0x12c + blo _022D95D0 + add r0, r4, #0xd00 + ldrsb r1, [r0, #0x11] + add r1, r1, #2 + strb r1, [r4, #0xd11] + ldrsb r0, [r0, #0x11] + cmp r0, #0xd + blt _022D95AC + mov r0, r4 + mov r1, #3 + bl ov00_022D9874 + pop {r4, pc} +_022D95AC: + bl FUN_0207AE44 + str r0, [r4, #0xcb0] + str r1, [r4, #0xcb4] + add r0, r4, #0xd00 + ldrsb r2, [r0, #0x11] + ldr r0, _022D95DC @ =0x02318158 + ldr r1, _022D95E0 @ =0x02318160 + mov r3, #0x200000 + bl ov00_022D9A5C +_022D95D0: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_022D95D8: .4byte 0x000082EA +_022D95DC: .4byte 0x02318158 +_022D95E0: .4byte 0x02318160 + arm_func_end ov00_022D9540 + + arm_func_start ov00_022D95E4 +ov00_022D95E4: @ 0x022D95E4 + push {r4, lr} + mov r4, r0 + mov r0, #0 + strb r0, [r4, #0xd15] + ldrb r2, [r4, #0xd0b] + lsl r1, r2, #0x18 + lsr r1, r1, #0x1c + add r1, r1, #1 + and r1, r1, #0xff + bic r2, r2, #0xf0 + lsl r1, r1, #0x1c + orr r1, r2, r1, lsr #24 + strb r1, [r4, #0xd0b] + bl ov00_022D8DCC + mov r0, #1 + strb r0, [r4, #0xd11] + mov r0, #3 + pop {r4, pc} + arm_func_end ov00_022D95E4 + + arm_func_start ov00_022D962C +ov00_022D962C: @ 0x022D962C + push {r4, lr} + mov r4, r0 + bl FUN_0207AE44 + ldr r3, [r4, #0xcb0] + ldr r2, [r4, #0xcb4] + subs r3, r0, r3 + sbc r0, r1, r2 + lsl r1, r0, #6 + ldr r2, _022D9750 @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 + mov r3, #0 + bl FUN_0208FE3C + cmp r1, #0 + cmpeq r0, #0x96 + bhs _022D9688 + ldrb r0, [r4, #0xd0f] + add r0, r4, r0, lsl #2 + ldrb r0, [r0, #0x447] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1f + cmp r0, #1 + bne _022D9748 +_022D9688: + ldrb r1, [r4, #0xd0f] + add r0, r4, #0x47 + add r2, r0, #0x400 + ldrb r0, [r2, r1, lsl #2] + orr r0, r0, #0x80 + strb r0, [r2, r1, lsl #2] + ldrb r2, [r4, #0xd12] + ldrb r1, [r4, #0xd0f] + cmp r1, r2 + bhs _022D96E0 +_022D96B0: + add r0, r4, r1, lsl #2 + ldrb r0, [r0, #0x447] + lsl r0, r0, #0x18 + lsrs r0, r0, #0x1f + beq _022D96E0 + ldrb r0, [r4, #0xd0f] + add r0, r0, #1 + strb r0, [r4, #0xd0f] + ldrb r2, [r4, #0xd12] + and r1, r0, #0xff + cmp r1, r2 + blo _022D96B0 +_022D96E0: + cmp r2, r1 + bhi _022D9700 + mov r2, #0 + mov r0, r4 + mov r1, #4 + strb r2, [r4, #0xd0f] + bl ov00_022D9874 + pop {r4, pc} +_022D9700: + bl FUN_0207AE44 + str r0, [r4, #0xcb0] + str r1, [r4, #0xcb4] + ldrb r2, [r4, #0xd0f] + mov r0, #0xc0 + add r1, r4, #0x74 + smulbb ip, r2, r0 + add r0, r4, ip + add r0, r0, #0x400 + ldrh r2, [r0, #0xa6] + add r0, r4, #0x7c + add r3, r1, #0x400 + add r1, r0, #0x400 + add r0, r3, ip + add r1, r1, ip + sub r2, r2, #1 + mov r3, #0x300000 + bl ov00_022D9A5C +_022D9748: + mov r0, #4 + pop {r4, pc} + .align 2, 0 +_022D9750: .4byte 0x000082EA + arm_func_end ov00_022D962C + + arm_func_start ov00_022D9754 +ov00_022D9754: @ 0x022D9754 + push {r4, lr} + mov r4, r0 + bl FUN_0207AE44 + ldr r3, [r4, #0xcb0] + ldr r2, [r4, #0xcb4] + subs r3, r0, r3 + sbc r0, r1, r2 + lsl r1, r0, #6 + ldr r2, _022D986C @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 + mov r3, #0 + bl FUN_0208FE3C + cmp r1, #0 + cmpeq r0, #0x96 + bhs _022D97B4 + ldrb r1, [r4, #0xd0f] + mov r0, #0x24 + mla r0, r1, r0, r4 + ldrb r0, [r0, #0x300] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + cmp r0, #1 + bne _022D9864 +_022D97B4: + ldrb r1, [r4, #0xd0f] + mov r0, #0x24 + add r2, r4, #0x300 + smulbb r1, r1, r0 + ldrb r0, [r2, r1] + bic r0, r0, #0xf + strb r0, [r2, r1] + ldrb r0, [r4, #0xd0f] + add r0, r0, #1 + strb r0, [r4, #0xd0f] + ldrb r1, [r4, #0xd10] + and r0, r0, #0xff + cmp r1, r0 + bhi _022D980C + ldrb r1, [r4, #0xd15] + mov r0, #0 + add r1, r1, #1 + strb r1, [r4, #0xd15] + strb r0, [r4, #0xd0f] + ldrb r0, [r4, #0xd15] + bl ov00_022D93A8 + strb r0, [r4, #0xd11] +_022D980C: + add r0, r4, #0xd00 + ldrsb r0, [r0, #0x11] + cmp r0, #0 + bge _022D9834 + mov r2, #0 + mov r0, r4 + mov r1, #5 + strb r2, [r4, #0xd15] + bl ov00_022D9874 + pop {r4, pc} +_022D9834: + bl FUN_0207AE44 + str r0, [r4, #0xcb0] + str r1, [r4, #0xcb4] + ldrb r3, [r4, #0xd0f] + add r1, r4, #0x304 + mov r0, #0x24 + add r2, r4, #0xd00 + mla r1, r3, r0, r1 + ldrsb r2, [r2, #0x11] + ldr r0, _022D9870 @ =0x02318158 + mov r3, #0x300000 + bl ov00_022D9A5C +_022D9864: + mov r0, #5 + pop {r4, pc} + .align 2, 0 +_022D986C: .4byte 0x000082EA +_022D9870: .4byte 0x02318158 + arm_func_end ov00_022D9754 + + arm_func_start ov00_022D9874 +ov00_022D9874: @ 0x022D9874 + push {r3, r4, r5, lr} + mov r4, r1 + mov r5, r0 + cmp r4, #3 + beq _022D989C + cmp r4, #4 + beq _022D98FC + cmp r4, #5 + beq _022D9908 + b _022D9928 +_022D989C: + ldrb r1, [r5, #0xd12] + cmp r1, #0 + addeq r1, r5, #0xd00 + ldrheq r1, [r1, #0x16] + cmpeq r1, #0 + beq _022D98D8 + mov r0, #1 + bl ov00_022D8DCC + cmp r0, #0 + movne r4, #4 + bne _022D9928 + mov r0, r5 + bl ov00_022D99FC + mov r4, r0 + b _022D9928 +_022D98D8: + ldrb r1, [r5, #0xd0b] + lsl r1, r1, #0x18 + lsr r1, r1, #0x1c + cmp r1, #1 + movhs r4, #6 + bhs _022D9928 + bl ov00_022D95E4 + mov r4, r0 + b _022D9928 +_022D98FC: + bl ov00_022D99FC + mov r4, r0 + b _022D9928 +_022D9908: + ldrb r1, [r5, #0xd0b] + lsl r1, r1, #0x18 + lsr r1, r1, #0x1c + cmp r1, #1 + movhs r4, #6 + bhs _022D9928 + bl ov00_022D95E4 + mov r4, r0 +_022D9928: + mov r0, r4 + bl ov00_022D9410 + mov r0, r4 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D9874 + + arm_func_start ov00_022D9938 +ov00_022D9938: @ 0x022D9938 + push {r3, r4, r5, lr} + mov r4, r1 + mov r5, r0 + cmp r4, #0x11 + moveq r0, r4 + popeq {r3, r4, r5, pc} + ldrb r2, [r5, #0xd12] + mov r1, #0 + cmp r2, #0 + bls _022D9980 +_022D9960: + add r0, r5, r1, lsl #2 + ldrb r0, [r0, #0x444] + cmp r0, #0 + beq _022D9980 + add r0, r1, #1 + and r1, r0, #0xff + cmp r1, r2 + blo _022D9960 +_022D9980: + cmp r4, #6 + bne _022D99B4 + cmp r2, r1 + bne _022D99E0 + cmp r1, #0 + bne _022D99A4 + mov r0, #5 + bl ov00_022D7D78 + b _022D99AC +_022D99A4: + mov r0, #6 + bl ov00_022D7D78 +_022D99AC: + mov r0, #0x11 + pop {r3, r4, r5, pc} +_022D99B4: + cmp r2, #0 + moveq r0, r4 + popeq {r3, r4, r5, pc} + cmp r2, r1 + moveq r0, r4 + popeq {r3, r4, r5, pc} + add r0, r5, r1, lsl #2 + ldrb r0, [r0, #0x446] + cmp r0, #0x14 + movlo r0, r4 + poplo {r3, r4, r5, pc} +_022D99E0: + strb r1, [r5, #0xd13] + bl ov00_022D506C + cmp r0, #1 + strbne r4, [r5, #0xd0e] + movne r4, #7 + mov r0, r4 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D9938 + + arm_func_start ov00_022D99FC +ov00_022D99FC: @ 0x022D99FC + push {r4, lr} + mov r4, r0 + add r0, r4, #0xd00 + ldrh r0, [r0, #0x16] + cmp r0, #0 + beq _022D9A38 + mov r0, #2 + bl ov00_022D8DCC + cmp r0, #0 + beq _022D9A38 + mov r0, #0 + bl ov00_022D93A8 + strb r0, [r4, #0xd11] + mov r0, #5 + pop {r4, pc} +_022D9A38: + ldrb r0, [r4, #0xd0b] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1c + cmp r0, #1 + movhs r0, #6 + pophs {r4, pc} + mov r0, r4 + bl ov00_022D95E4 + pop {r4, pc} + arm_func_end ov00_022D99FC + + arm_func_start ov00_022D9A5C +ov00_022D9A5C: @ 0x022D9A5C + push {r3, lr} + ldr ip, _022D9A7C @ =0x0231819C + cmp r2, #0xc + movgt r2, #0xc + ldr r2, [ip, r2, lsl #2] + orr r2, r3, r2 + bl ov00_022D4ED4 + pop {r3, pc} + .align 2, 0 +_022D9A7C: .4byte 0x0231819C + arm_func_end ov00_022D9A5C + + arm_func_start ov00_022D9A80 +ov00_022D9A80: @ 0x022D9A80 + push {r4, lr} + sub sp, sp, #0x10 + bl ov00_022D5640 + mov r4, r0 + mov r0, #0x10 + bl ov00_022D7CA4 + cmp r4, #1 + bne _022D9AEC + ldrb r1, [r0, #0xd0a] + mov r0, #0 + str r1, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + bl ov00_022D8DCC + ldr r1, _022D9B04 @ =ov00_022D84BC + add r0, sp, #0 + bl ov00_022D4BE0 + cmp r0, #1 + beq _022D9AD8 + cmp r0, #4 + blt _022D9AF8 +_022D9AD8: + mov r0, #1 + bl ov00_022D7D78 + add sp, sp, #0x10 + mov r0, #0x11 + pop {r4, pc} +_022D9AEC: + add sp, sp, #0x10 + mov r0, #1 + pop {r4, pc} +_022D9AF8: + mov r0, #2 + add sp, sp, #0x10 + pop {r4, pc} + .align 2, 0 +_022D9B04: .4byte ov00_022D84BC + arm_func_end ov00_022D9A80 + + arm_func_start ov00_022D9B08 +ov00_022D9B08: @ 0x022D9B08 + push {r3, r4, r5, lr} + bl ov00_022D7D5C + mov r4, r0 + mov r0, #0x10 + bl ov00_022D7CA4 + mov r5, r0 + bl ov00_022D5640 + cmp r0, #9 + bne _022D9BAC + sub r0, r4, #0xa + cmp r0, #5 + addls pc, pc, r0, lsl #2 + b _022D9BFC +_022D9B3C: @ jump table + b _022D9B54 @ case 0 + b _022D9BA0 @ case 1 + b _022D9B64 @ case 2 + b _022D9B74 @ case 3 + b _022D9B80 @ case 4 + b _022D9B90 @ case 5 +_022D9B54: + mov r0, r5 + bl ov00_022D9C04 + mov r4, r0 + b _022D9BFC +_022D9B64: + mov r0, r5 + bl ov00_022D9C68 + mov r4, r0 + b _022D9BFC +_022D9B74: + bl ov00_022D9CF8 + mov r4, r0 + b _022D9BFC +_022D9B80: + mov r0, r5 + bl ov00_022D9D24 + mov r4, r0 + b _022D9BFC +_022D9B90: + mov r0, r5 + bl ov00_022D9D90 + mov r4, r0 + b _022D9BFC +_022D9BA0: + bl ov00_022D9DA4 + mov r4, r0 + b _022D9BFC +_022D9BAC: + cmp r4, #0xb + beq _022D9BD4 + cmp r4, #0xe + beq _022D9BE0 + cmp r4, #0xf + bne _022D9BE8 + mov r0, r5 + bl ov00_022D9D90 + mov r4, r0 + b _022D9BFC +_022D9BD4: + bl ov00_022D9DA4 + mov r4, r0 + b _022D9BFC +_022D9BE0: + bl ov00_022DE654 + bl ov00_022DE55C +_022D9BE8: + ldrb r0, [r5, #0xd13] + mov r1, #2 + mov r4, #0xb + add r0, r5, r0, lsl #2 + strb r1, [r0, #0x444] +_022D9BFC: + mov r0, r4 + pop {r3, r4, r5, pc} + arm_func_end ov00_022D9B08 + + arm_func_start ov00_022D9C04 +ov00_022D9C04: @ 0x022D9C04 + push {r4, r5, r6, lr} + mov r6, r0 + mov r0, #1 + bl ov00_022D7CA4 + mov r5, r0 + mov r0, #4 + bl ov00_022D7CA4 + mov r4, r0 + mov r0, r5 + mov r1, r6 + mov r2, r4 + bl ov00_022D9DD4 + ldr r1, _022D9C64 @ =0x023268C0 + mov r2, #4 + mov r0, r4 + str r2, [r1] + bl ov00_022CF674 + cmp r0, #0 + moveq r0, #0xc + popeq {r4, r5, r6, pc} + mov r0, #2 + bl ov00_022D7D78 + mov r0, #0x11 + pop {r4, r5, r6, pc} + .align 2, 0 +_022D9C64: .4byte 0x023268C0 + arm_func_end ov00_022D9C04 + + arm_func_start ov00_022D9C68 +ov00_022D9C68: @ 0x022D9C68 + push {r4, lr} + mov r4, r0 + bl ov00_022CF528 + cmp r0, #0 + beq _022D9CA0 + mov r0, r4 + bl ov00_022D9F3C + ldrb r0, [r4, #0xd0c] + lsl r0, r0, #0x1a + lsr r0, r0, #0x1e + cmp r0, #1 + moveq r0, #0xf + movne r0, #0xd + pop {r4, pc} +_022D9CA0: + bl FUN_0207AE44 + ldr r3, [r4, #0xcb0] + ldr r2, [r4, #0xcb4] + subs r3, r0, r3 + sbc r0, r1, r2 + lsl r1, r0, #6 + ldr r2, _022D9CF4 @ =0x01FF6210 + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 + mov r3, #0 + bl FUN_0208FE3C + cmp r1, #0 + cmpeq r0, #0xa + movlo r0, #0xc + poplo {r4, pc} + ldrb r1, [r4, #0xd13] + mov r2, #1 + mov r0, #0xb + add r1, r4, r1, lsl #2 + strb r2, [r1, #0x444] + pop {r4, pc} + .align 2, 0 +_022D9CF4: .4byte 0x01FF6210 + arm_func_end ov00_022D9C68 + + arm_func_start ov00_022D9CF8 +ov00_022D9CF8: @ 0x022D9CF8 + push {r3, lr} + mov r0, #8 + bl ov00_022D7CA4 + bl ov00_022DE47C + cmp r0, #0 + moveq r0, #0xe + popeq {r3, pc} + mov r0, #3 + bl ov00_022D7D78 + mov r0, #0x11 + pop {r3, pc} + arm_func_end ov00_022D9CF8 + + arm_func_start ov00_022D9D24 +ov00_022D9D24: @ 0x022D9D24 + push {r4, r5, r6, lr} + mov r6, r0 + mov r0, #1 + bl ov00_022D7CA4 + mov r4, r0 + bl ov00_022DE6BC + movs r5, r0 + beq _022D9D88 + ldrb r0, [r6, #0xd0d] + bl ov00_022D7E58 + ldrb r1, [r4, #0x15] + cmp r1, r0 + bne _022D9D60 + bl ov00_022DE6FC + str r0, [r4, #0x10] +_022D9D60: + bl ov00_022DE55C + cmp r5, #0xb + moveq r0, #0xf + popeq {r4, r5, r6, pc} + ldrb r1, [r6, #0xd13] + mov r2, #1 + mov r0, #0xb + add r1, r6, r1, lsl #2 + strb r2, [r1, #0x444] + pop {r4, r5, r6, pc} +_022D9D88: + mov r0, #0xe + pop {r4, r5, r6, pc} + arm_func_end ov00_022D9D24 + + arm_func_start ov00_022D9D90 +ov00_022D9D90: @ 0x022D9D90 + push {r3, lr} + ldrb r0, [r0, #0xd0d] + bl ov00_022D7DB0 + mov r0, #0x10 + pop {r3, pc} + arm_func_end ov00_022D9D90 + + arm_func_start ov00_022D9DA4 +ov00_022D9DA4: @ 0x022D9DA4 + push {r3, lr} + bl ov00_022CED64 + cmp r0, #0 + movne r0, #0xb + popne {r3, pc} + bl ov00_022CEC18 + cmp r0, #0 + mvnne r1, #0x26 + cmpne r0, r1 + moveq r0, #9 + movne r0, #0xb + pop {r3, pc} + arm_func_end ov00_022D9DA4 + + arm_func_start ov00_022D9DD4 +ov00_022D9DD4: @ 0x022D9DD4 + push {r4, r5, r6, lr} + mov r6, r0 + mov r4, r2 + mov r5, r1 + ldr r0, _022D9E90 @ =0x023181D0 + mov r1, r4 + mov r2, #0x58 + bl FUN_0207C4C8 + ldr r0, [r6] + str r0, [r4, #4] + ldr r0, [r6, #4] + str r0, [r4, #8] + ldrb r0, [r5, #0xd0d] + cmp r0, #6 + pophs {r4, r5, r6, pc} + bl ov00_022D7E58 + add r5, r5, r0, lsl #8 + ldrb r0, [r5, #0xc0] + cmp r0, #0 + beq _022D9E6C + mov r0, #0 + str r0, [r4, #0xc] + add r0, r5, #0xc0 + bl ov00_022D9E94 + str r0, [r4, #0x10] + ldrb r0, [r5, #0xd0] + bl ov00_022D9EE8 + str r0, [r4, #0x14] + add r0, r5, #0xc4 + bl ov00_022D9E94 + str r0, [r4, #0x18] + add r0, r5, #0xc8 + bl ov00_022D9E94 + str r0, [r4, #0x1c] + add r0, r5, #0xcc + bl ov00_022D9E94 + str r0, [r4, #0x20] + pop {r4, r5, r6, pc} +_022D9E6C: + mov r0, #1 + str r0, [r4, #0xc] + mov r0, #0 + str r0, [r4, #0x10] + str r0, [r4, #0x14] + str r0, [r4, #0x18] + str r0, [r4, #0x1c] + str r0, [r4, #0x20] + pop {r4, r5, r6, pc} + .align 2, 0 +_022D9E90: .4byte 0x023181D0 + arm_func_end ov00_022D9DD4 + + arm_func_start ov00_022D9E94 +ov00_022D9E94: @ 0x022D9E94 + ldrb r1, [r0] + ldrb r2, [r0, #1] + mov r3, #0 + orr r3, r3, r1, lsl #24 + ldrb r1, [r0, #2] + orr r2, r3, r2, lsl #16 + ldrb r0, [r0, #3] + orr r1, r2, r1, lsl #8 + orr r3, r1, r0 + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + lsl r3, r3, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + bx lr + arm_func_end ov00_022D9E94 + + arm_func_start ov00_022D9EE8 +ov00_022D9EE8: @ 0x022D9EE8 + rsb r1, r0, #0x20 + cmp r1, #0 + mvn r3, #0 + mov r0, #0 + ble _022D9F0C +_022D9EFC: + add r0, r0, #1 + cmp r0, r1 + lsl r3, r3, #1 + blt _022D9EFC +_022D9F0C: + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + lsl r3, r3, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + bx lr + arm_func_end ov00_022D9EE8 + + arm_func_start ov00_022D9F3C +ov00_022D9F3C: @ 0x022D9F3C + push {r4, lr} + sub sp, sp, #8 + mov r4, r0 + ldrb r0, [r4, #0xd0d] + cmp r0, #6 + addhs sp, sp, #8 + pophs {r4, pc} + bl ov00_022D7E58 + add r4, r4, r0, lsl #8 + ldrb r0, [r4, #0xc0] + ldrb r2, [r4, #0xc8] + ldrb r1, [r4, #0xc9] + cmp r0, #0 + ldrb r3, [r4, #0xca] + add r1, r2, r1 + ldrb r2, [r4, #0xcb] + add r1, r3, r1 + addne sp, sp, #8 + add r0, r2, r1 + popne {r4, pc} + cmp r0, #0 + addeq sp, sp, #8 + popeq {r4, pc} + add r0, r4, #0xc8 + bl ov00_022D9E94 + str r0, [sp, #4] + add r0, r4, #0xcc + bl ov00_022D9E94 + str r0, [sp] + add r0, sp, #4 + add r1, sp, #0 + bl ov00_022CF560 + add sp, sp, #8 + pop {r4, pc} + arm_func_end ov00_022D9F3C + + arm_func_start ov00_022D9FC4 +ov00_022D9FC4: @ 0x022D9FC4 + push {r3, lr} + sub sp, sp, #0x18 + add r1, sp, #0 + bl ov00_022DA0A4 + ldr r1, _022D9FF8 @ =0x02318B74 + add r0, sp, #0 + mov r2, #8 + bl FUN_02087348 + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + add sp, sp, #0x18 + pop {r3, pc} + .align 2, 0 +_022D9FF8: .4byte 0x02318B74 + arm_func_end ov00_022D9FC4 + + arm_func_start ov00_022D9FFC +ov00_022D9FFC: @ 0x022D9FFC + push {r4, lr} + sub sp, sp, #0x18 + mov r4, r1 + add r1, sp, #0 + bl ov00_022DA0A4 + add r0, sp, #0 + mov r1, r4 + bl ov00_022DA1A8 + add sp, sp, #0x18 + pop {r4, pc} + arm_func_end ov00_022D9FFC + + arm_func_start ov00_022DA024 +ov00_022DA024: @ 0x022DA024 + push {r4, lr} + sub sp, sp, #0x18 + mov r4, r1 + add r1, sp, #0 + bl ov00_022DA0A4 + ldr r1, _022DA06C @ =0x02318B74 + add r0, sp, #0 + mov r2, #8 + bl FUN_02087348 + cmp r0, #0 + addne sp, sp, #0x18 + popne {r4, pc} + add r0, sp, #8 + mov r1, r4 + mov r2, #0xa + bl FUN_0207C4C8 + add sp, sp, #0x18 + pop {r4, pc} + .align 2, 0 +_022DA06C: .4byte 0x02318B74 + arm_func_end ov00_022DA024 + + arm_func_start ov00_022DA070 +ov00_022DA070: @ 0x022DA070 + push {r3, lr} + ldr r1, _022DA090 @ =0x02318B80 + mov r2, #8 + bl FUN_02087348 + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + pop {r3, pc} + .align 2, 0 +_022DA090: .4byte 0x02318B80 + arm_func_end ov00_022DA070 + + arm_func_start ov00_022DA094 +ov00_022DA094: @ 0x022DA094 + ldr ip, _022DA0A0 @ =ov00_022DA1F4 + add r0, r0, #0xc + bx ip + .align 2, 0 +_022DA0A0: .4byte ov00_022DA1F4 + arm_func_end ov00_022DA094 + + arm_func_start ov00_022DA0A4 +ov00_022DA0A4: @ 0x022DA0A4 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x18 + ldr lr, _022DA1A0 @ =0x0231822B + add ip, sp, #0 + mov r4, r1 + mov r3, #0xc +_022DA0BC: + ldrb r2, [lr] + ldrb r1, [lr, #1] + add lr, lr, #2 + strb r2, [ip] + strb r1, [ip, #1] + add ip, ip, #2 + subs r3, r3, #1 + bne _022DA0BC + mov r1, r4 + mov r2, #0x20 + mov r3, #0x18 + bl ov00_022DA410 + ldr r0, _022DA1A4 @ =0x02318B0C + mov r3, #0 +_022DA0F4: + ldr r1, [r0, #8] + ldrb r2, [r4, r3] + ldrsb r1, [r1, r3] + eor r1, r2, r1 + strb r1, [r4, r3] + add r3, r3, #1 + cmp r3, #0x18 + blt _022DA0F4 + mov r7, #0 + add ip, sp, #0 + mov r1, #0xff +_022DA120: + and lr, r7, #0xff + ldrb r0, [ip, lr] + mov r5, lr + ldrb r6, [r4, r7] + cmp r0, #0xff + beq _022DA164 +_022DA138: + add r3, ip, r5 + ldrb r5, [ip, r5] + ldrb r0, [ip, lr] + ldrb r2, [r4, r5] + mov lr, r5 + strb r6, [r4, r0] + strb r1, [r3] + ldrb r0, [ip, r5] + mov r6, r2 + cmp r0, #0xff + bne _022DA138 +_022DA164: + add r7, r7, #1 + cmp r7, #0x18 + blt _022DA120 + ldr r0, _022DA1A4 @ =0x02318B0C + mov r3, #0 +_022DA178: + ldr r1, [r0] + ldrb r2, [r4, r3] + ldrsb r1, [r1, r3] + eor r1, r2, r1 + strb r1, [r4, r3] + add r3, r3, #1 + cmp r3, #0x18 + blt _022DA178 + add sp, sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022DA1A0: .4byte 0x0231822B +_022DA1A4: .4byte 0x02318B0C + arm_func_end ov00_022DA0A4 + + arm_func_start ov00_022DA1A8 +ov00_022DA1A8: @ 0x022DA1A8 + push {r4, r5, lr} + sub sp, sp, #0x6c + mov r5, r0 + add r0, sp, #0x14 + mov r4, r1 + bl FUN_020800FC + add r0, sp, #0x14 + mov r1, r5 + mov r2, #0x18 + bl FUN_0208013C + add r0, sp, #0 + add r1, sp, #0x14 + bl FUN_02080204 + add r0, sp, #3 + mov r1, r4 + mov r2, #0xd + bl FUN_0207C4C8 + add sp, sp, #0x6c + pop {r4, r5, pc} + arm_func_end ov00_022DA1A8 + + arm_func_start ov00_022DA1F4 +ov00_022DA1F4: @ 0x022DA1F4 + push {r4, lr} + sub sp, sp, #0x10 + ldr lr, _022DA390 @ =0x92492493 + mov r4, r1 + mov r1, #0 + mov ip, #7 +_022DA20C: + smull r2, r3, lr, r1 + add r3, r1, r3 + lsr r2, r1, #0x1f + add r3, r2, r3, asr #2 + smull r2, r3, ip, r3 + sub r3, r1, r2 + add r2, r0, r3 + ldrb r3, [r0, r1] + ldrb r2, [r2, #0xd] + eor r2, r3, r2 + strb r2, [r4, r1] + add r1, r1, #1 + cmp r1, #0xd + blt _022DA20C + mov ip, #0 +_022DA248: + add r3, r4, ip + add r1, r0, ip + ldrb r2, [r3, #3] + ldrb r1, [r1, #0xd] + add ip, ip, #1 + cmp ip, #7 + eor r1, r2, r1 + strb r1, [r3, #3] + blt _022DA248 + ldr r0, _022DA394 @ =0x02318B0C + mov r3, #0 +_022DA274: + ldr r1, [r0, #4] + ldrb r2, [r4, r3] + ldrsb r1, [r1, r3] + eor r1, r2, r1 + strb r1, [r4, r3] + add r3, r3, #1 + cmp r3, #0xd + blt _022DA274 + add r1, sp, #0 + mov r0, r4 + mov r2, #0xd + bl FUN_0207C4C8 + ldr r3, _022DA398 @ =0x02318244 + add r2, sp, #0 + mov ip, #0 +_022DA2B0: + ldrb r1, [r2], #1 + ldrb r0, [r3], #1 + add ip, ip, #1 + cmp ip, #0xd + strb r1, [r4, r0] + blt _022DA2B0 + ldr r0, _022DA394 @ =0x02318B0C + mov r3, #0 +_022DA2D0: + ldr r1, [r0, #0xc] + ldrb r2, [r4, r3] + ldrsb r1, [r1, r3] + eor r1, r2, r1 + strb r1, [r4, r3] + add r3, r3, #1 + cmp r3, #0xd + blt _022DA2D0 + ldr r2, _022DA39C @ =0x02318254 + mov ip, #0 +_022DA2F8: + ldrb r3, [r4, ip] + asr r0, r3, #4 + and r1, r0, #0xf + and r0, r3, #0xf + ldrb r1, [r2, r1] + ldrb r0, [r2, r0] + orr r0, r0, r1, lsl #4 + strb r0, [r4, ip] + add ip, ip, #1 + cmp ip, #0xd + blt _022DA2F8 + mov r1, #0 +_022DA328: + add r0, r4, r1 + ldrb r3, [r4, r1] + ldrb r2, [r0, #6] + eor r2, r3, r2 + strb r2, [r4, r1] + ldrb r3, [r0, #3] + ldrb r2, [r0, #9] + eor r2, r3, r2 + strb r2, [r0, #3] + ldrb r3, [r0, #6] + and r2, r2, #0xff + eor r2, r3, r2 + strb r2, [r0, #6] + ldrb r3, [r0, #9] + ldrb r2, [r4, r1] + eor r2, r3, r2 + strb r2, [r0, #9] + ldrb r0, [r4, r1] + ldrb r2, [r4, #0xc] + add r1, r1, #1 + cmp r1, #3 + eor r0, r2, r0 + strb r0, [r4, #0xc] + blt _022DA328 + add sp, sp, #0x10 + pop {r4, pc} + .align 2, 0 +_022DA390: .4byte 0x92492493 +_022DA394: .4byte 0x02318B0C +_022DA398: .4byte 0x02318244 +_022DA39C: .4byte 0x02318254 + arm_func_end ov00_022DA1F4 + + arm_func_start ov00_022DA3A0 +ov00_022DA3A0: @ 0x022DA3A0 + cmp r0, #0x41 + blo _022DA3B4 + cmp r0, #0x5a + subls r0, r0, #0x41 + bxls lr +_022DA3B4: + cmp r0, #0x61 + blo _022DA3CC + cmp r0, #0x7a + subls r0, r0, #0x61 + addls r0, r0, #0x1a + bxls lr +_022DA3CC: + cmp r0, #0x30 + blo _022DA3E4 + cmp r0, #0x39 + subls r0, r0, #0x30 + addls r0, r0, #0x34 + bxls lr +_022DA3E4: + cmp r0, #0x2b + moveq r0, #0x3e + bxeq lr + cmp r0, #0x2f + moveq r0, #0x3f + bxeq lr + cmp r0, #0x3d + movne r0, #1 + moveq r0, #0 + rsb r0, r0, #0 + bx lr + arm_func_end ov00_022DA3A0 + + arm_func_start ov00_022DA410 +ov00_022DA410: @ 0x022DA410 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x18 + add r4, r2, r2, lsl #1 + str r0, [sp] + lsr r0, r4, #2 + str r1, [sp, #4] + cmp r3, r4, lsr #2 + str r0, [sp, #8] + blo _022DA444 + and fp, r2, #3 + sub r0, r2, fp + str r0, [sp, #0xc] + b _022DA450 +_022DA444: + add sp, sp, #0x18 + mvn r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022DA450: + cmp r0, #0 + mov r7, #0 + ble _022DA4D8 + mov sb, r7 + add r5, sp, #0x14 + mov r4, #6 +_022DA468: + ldr r0, [sp] + mov r6, #0 + mov r8, r6 + add sl, r0, r7 +_022DA478: + ldrb r0, [sl], #1 + bl ov00_022DA3A0 + rsb r1, r8, #3 + mul r2, r1, r4 + orr r6, r6, r0, lsl r2 + add r8, r8, #1 + cmp r8, #4 + blt _022DA478 + ldr r0, [sp, #4] + add r1, sb, sb, lsl #1 + mov r2, #0 + str r6, [sp, #0x14] + add r1, r0, r1 +_022DA4AC: + rsb r0, r2, #2 + ldrb r0, [r5, r0] + add r2, r2, #1 + cmp r2, #3 + strb r0, [r1], #1 + blt _022DA4AC + ldr r0, [sp, #0xc] + add r7, r7, #4 + cmp r7, r0 + add sb, sb, #1 + blt _022DA468 +_022DA4D8: + cmp fp, #0 + beq _022DA56C + mov r5, #0 + mov r6, r5 + str r5, [sp, #0x10] + ble _022DA52C + ldr r1, [sp] + ldr r0, [sp, #0xc] + mov r8, r5 + add r4, r1, r0 + mov r7, #6 +_022DA504: + ldrb r0, [r4], #1 + bl ov00_022DA3A0 + rsb r1, r6, #3 + mul r2, r1, r7 + orr r5, r5, r0, lsl r2 + add r6, r6, #1 + cmp r6, fp + orr r8, r8, r5 + blt _022DA504 + str r8, [sp, #0x10] +_022DA52C: + cmp fp, #0 + mov r3, #0 + ble _022DA56C + ldr r0, [sp, #0xc] + add r1, r0, r0, lsl #1 + asr r0, r1, #1 + add r1, r1, r0, lsr #30 + ldr r0, [sp, #4] + add r2, r0, r1, asr #2 + add r1, sp, #0x10 +_022DA554: + rsb r0, r3, #2 + ldrb r0, [r1, r0] + add r3, r3, #1 + cmp r3, fp + strb r0, [r2], #1 + blt _022DA554 +_022DA56C: + ldr r0, [sp, #8] + add sp, sp, #0x18 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022DA410 + + arm_func_start ov00_022DA578 +ov00_022DA578: @ 0x022DA578 + tst r0, #2 + asr r0, r0, #2 + addeq r0, r0, #0x19 + and r0, r0, #0xff + bx lr + arm_func_end ov00_022DA578 + + arm_func_start ov00_022DA58C +ov00_022DA58C: @ 0x022DA58C + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + ldr r1, _022DA86C @ =0x02326CA4 + mov r6, r0 + ldr r0, [r1] + mov r1, #0x400 + add r0, r0, #0xf00 + bl FUN_0207A2A4 + ldrh r0, [r6, #2] + cmp r0, #0 + ldrheq r0, [r6, #8] + cmpeq r0, #5 + bne _022DA830 + ldrh r0, [r6, #0xe] + mov r5, #0 + cmp r0, #0 + bls _022DA830 +_022DA5D0: + add r0, r6, r5, lsl #2 + ldr r0, [r0, #0x10] + ldrh r1, [r0, #0x40] + cmp r1, #1 + ldreq r2, [r0, #0x44] + ldreq r1, _022DA870 @ =0x00000857 + cmpeq r2, r1 + bne _022DA820 + ldr r1, _022DA86C @ =0x02326CA4 + mov r4, #0 + ldr ip, [r1] + mov r3, r4 + add r2, ip, #0x1000 + ldr r1, [r2, #0xa88] + cmp r1, #0 + bls _022DA63C + ldrh r7, [r0, #0x48] +_022DA614: + add r1, ip, r3, lsl #1 + add r1, r1, #0x1a00 + ldrh r1, [r1, #0x68] + cmp r1, r7 + moveq r4, #1 + beq _022DA63C + ldr r1, [r2, #0xa88] + add r3, r3, #1 + cmp r3, r1 + blo _022DA614 +_022DA63C: + cmp r4, #1 + beq _022DA820 + ldr r1, _022DA86C @ =0x02326CA4 + mov r2, #0x70 + ldr r1, [r1] + add r0, r0, #0x50 + add r3, r1, #0x1000 + add r1, r1, #0x348 + ldr r3, [r3, #0xa8c] + add r1, r1, #0x1000 + mla r1, r3, r2, r1 + bl FUN_0207C4C8 + ldr r0, _022DA874 @ =0x02318264 + add r1, sp, #0 + mov r2, #4 + bl FUN_0207C4C8 + add r0, r6, r5, lsl #2 + ldr r0, [r0, #0x10] + add r1, sp, #4 + add r0, r0, #6 + mov r2, #4 + bl FUN_0207C4C8 + ldr r0, _022DA86C @ =0x02326CA4 + add r1, sp, #0 + ldr r0, [r0] + mov r2, #8 + add r0, r0, #0x96 + add r0, r0, #0x1c00 + bl FUN_02075720 + ldr r0, _022DA86C @ =0x02326CA4 + mov r2, #0x70 + ldr r3, [r0] + add r0, r3, #0x348 + add r4, r0, #0x1000 + add r0, r3, #0x1000 + ldr r1, [r0, #0xa8c] + add r0, r3, #0x96 + mul r3, r1, r2 + add r1, r4, r3 + add r0, r0, #0x1c00 + add r3, r4, r3 + bl FUN_020757B0 + ldr r0, _022DA86C @ =0x02326CA4 + mov r1, #0x70 + ldr ip, [r0] + mov r3, #0x6e + add r0, ip, #0x348 + add r4, r0, #0x1000 + add r0, ip, #0x1000 + ldr r2, [r0, #0xa8c] + add r0, ip, #0x96 + mul r7, r2, r1 + add r1, ip, #0x294 + add r0, r0, #0x1a00 + add r1, r1, #0x1800 + add r2, r4, r7 + bl FUN_02085074 + ldr r0, _022DA86C @ =0x02326CA4 + add r1, r4, r7 + ldr r0, [r0] + mov r2, #0x6e + add r0, r0, #0x96 + add r0, r0, #0x1a00 + bl FUN_02085158 + ldr r1, _022DA86C @ =0x02326CA4 + mov r2, #0x70 + ldr r4, [r1] + add r1, r4, #0x1000 + ldr r1, [r1, #0xa8c] + mul r3, r1, r2 + add r1, r4, r3 + add r1, r1, #0x1300 + ldrh r1, [r1, #0xb6] + cmp r0, r1 + cmpne r1, #0 + beq _022DA784 + add r0, r4, #0x348 + add r0, r0, #0x1000 + add r0, r0, r3 + mov r1, #0 + bl FUN_0207C40C + b _022DA820 +_022DA784: + add r0, r6, r5, lsl #2 + ldr r0, [r0, #0x10] + ldrh r0, [r0, #2] + and r0, r0, #0xff + bl ov00_022DA578 + add r1, r4, #0x1000 + ldr r1, [r1, #0xa8c] + ldr r3, _022DA86C @ =0x02326CA4 + add r1, r4, r1, lsl #1 + add r1, r1, #0x1a00 + strh r0, [r1, #0x48] + ldr r2, [r3] + add r1, r6, r5, lsl #2 + add r0, r2, #0x1000 + ldr r1, [r1, #0x10] + ldr r0, [r0, #0xa8c] + ldrh r1, [r1, #0x48] + add r0, r2, r0, lsl #1 + add r0, r0, #0x1a00 + strh r1, [r0, #0x68] + ldr r0, [r3] + add r2, r0, #0x1000 + ldr r0, [r2, #0xa8c] + add r0, r0, #1 + lsr r1, r0, #0x1f + rsb r0, r1, r0, lsl #28 + add r0, r1, r0, ror #28 + str r0, [r2, #0xa8c] + ldr r0, [r3] + add r0, r0, #0x1000 + ldr r1, [r0, #0xa88] + add r1, r1, #1 + str r1, [r0, #0xa88] + ldr r0, [r3] + add r0, r0, #0x1000 + ldr r1, [r0, #0xa88] + cmp r1, #0x10 + movgt r1, #0x10 + strgt r1, [r0, #0xa88] +_022DA820: + ldrh r0, [r6, #0xe] + add r5, r5, #1 + cmp r5, r0 + blo _022DA5D0 +_022DA830: + ldr r1, _022DA86C @ =0x02326CA4 + mov r2, #2 + ldr r0, [r1] + add r0, r0, #0x1000 + str r2, [r0, #0xa90] + ldr r0, [r1] + add r0, r0, #0x1000 + ldr r1, [r0, #0x344] + cmp r1, #0 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, pc} + mov r0, r6 + blx r1 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022DA86C: .4byte 0x02326CA4 +_022DA870: .4byte 0x00000857 +_022DA874: .4byte 0x02318264 + arm_func_end ov00_022DA58C + + arm_func_start ov00_022DA878 +ov00_022DA878: @ 0x022DA878 + ldr r0, _022DA880 @ =0x00001DA0 + bx lr + .align 2, 0 +_022DA880: .4byte 0x00001DA0 + arm_func_end ov00_022DA878 + + arm_func_start ov00_022DA884 +ov00_022DA884: @ 0x022DA884 + push {r4, r5, r6, lr} + movs r6, r1 + mov r5, r2 + mov r4, r3 + mvneq r0, #0 + popeq {r4, r5, r6, pc} + ldr r1, _022DA914 @ =0x02326CA4 + str r0, [r1] + bl ov00_022DA878 + ldr r1, _022DA914 @ =0x02326CA4 + mov r2, r0 + ldr r0, [r1] + mov r1, #0 + bl FUN_0207C40C + ldr r2, _022DA914 @ =0x02326CA4 + mov r3, #0 + ldr r0, [r2] + ldr r1, _022DA918 @ =0x0000A001 + add r0, r0, #0x1000 + str r3, [r0, #0xa90] + ldr r0, [r2] + add r0, r0, #0x1a00 + strh r3, [r0, #0x94] + ldr r0, [r2] + add r0, r0, #0x96 + add r0, r0, #0x1a00 + bl FUN_02085030 + ldr r0, _022DA914 @ =0x02326CA4 + mov r1, r6 + ldr r0, [r0] + mov r2, r5 + mov r3, r4 + bl ov00_022BFB24 + cmp r0, #2 + moveq r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_022DA914: .4byte 0x02326CA4 +_022DA918: .4byte 0x0000A001 + arm_func_end ov00_022DA884 + + arm_func_start ov00_022DA91C +ov00_022DA91C: @ 0x022DA91C + push {r3, lr} + cmp r0, #0 + mvneq r0, #0 + popeq {r3, pc} + ldr r2, _022DA958 @ =0x02326CA4 + mov ip, #3 + ldr r1, [r2] + mov r3, #0 + add r1, r1, #0x1000 + str ip, [r1, #0xa90] + str r3, [r2] + bl ov00_022BFBD4 + cmp r0, #2 + moveq r0, #0 + pop {r3, pc} + .align 2, 0 +_022DA958: .4byte 0x02326CA4 + arm_func_end ov00_022DA91C + + arm_func_start ov00_022DA95C +ov00_022DA95C: @ 0x022DA95C + push {r4, lr} + movs r4, r0 + mvneq r0, #0 + popeq {r4, pc} + ldr r1, _022DAA1C @ =0x02326CA4 + mov r2, #0x400 + ldr r0, [r1] + add r3, r0, #0xf00 + add r0, r0, #0x1000 + str r3, [r0, #0x300] + ldr r0, [r1] + add r0, r0, #0x1300 + strh r2, [r0, #4] + bl ov00_022BF640 + ldr r1, _022DAA1C @ =0x02326CA4 + ldr r1, [r1] + add r1, r1, #0x1300 + strh r0, [r1, #6] + bl ov00_022BF780 + ldr r3, _022DAA1C @ =0x02326CA4 + mov ip, #1 + ldr r2, [r3] + mov r1, #0xff + add r2, r2, #0x1300 + strh r0, [r2, #8] + ldr r0, [r3] + mov r2, #6 + add r0, r0, #0x1300 + strh ip, [r0, #0x10] + ldr r0, [r3] + add r0, r0, #0xa + add r0, r0, #0x1300 + bl FUN_0207C40C + ldr r2, _022DAA1C @ =0x02326CA4 + mov r3, #1 + ldr r1, [r2] + ldr r0, _022DAA20 @ =ov00_022DA58C + add r1, r1, #0x1000 + str r4, [r1, #0x344] + ldr r1, [r2] + add r1, r1, #0x1000 + str r3, [r1, #0xa90] + ldr r1, [r2] + add r1, r1, #0x1300 + bl ov00_022BFED8 + cmp r0, #2 + moveq r0, #0 + pop {r4, pc} + .align 2, 0 +_022DAA1C: .4byte 0x02326CA4 +_022DAA20: .4byte ov00_022DA58C + arm_func_end ov00_022DA95C + + arm_func_start ov00_022DAA24 +ov00_022DAA24: @ 0x022DAA24 + push {r3, lr} + cmp r0, #0 + mvneq r0, #0 + popeq {r3, pc} + ldr r1, _022DAA58 @ =0x02326CA4 + mov r2, #2 + ldr r1, [r1] + add r1, r1, #0x1000 + str r2, [r1, #0xa90] + bl ov00_022C0028 + cmp r0, #2 + moveq r0, #0 + pop {r3, pc} + .align 2, 0 +_022DAA58: .4byte 0x02326CA4 + arm_func_end ov00_022DAA24 + + arm_func_start ov00_022DAA5C +ov00_022DAA5C: @ 0x022DAA5C + push {r3, r4, r5, lr} + ldr r2, _022DAAF4 @ =0x02326CA4 + mov r5, r0 + ldr r0, [r2] + mov r4, r1 + add r0, r0, #0x1000 + ldr r1, [r0, #0xa90] + cmp r1, #2 + mvnne r0, #0 + popne {r3, r4, r5, pc} + cmp r5, #0 + blt _022DAA98 + ldr r0, [r0, #0xa88] + cmp r5, r0 + blt _022DAAA0 +_022DAA98: + mvn r0, #0 + pop {r3, r4, r5, pc} +_022DAAA0: + mov r0, r4 + mov r1, #0 + mov r2, #0x78 + bl FUN_0207C40C + mov r0, #1 + ldr r3, _022DAAF4 @ =0x02326CA4 + str r0, [r4] + ldr r0, [r3] + mov r2, #0x70 + add r0, r0, r5, lsl #1 + add r0, r0, #0x1a00 + ldrh r0, [r0, #0x48] + add r1, r4, #6 + strh r0, [r4, #4] + ldr r0, [r3] + add r0, r0, #0x348 + add r0, r0, #0x1000 + mla r0, r5, r2, r0 + bl FUN_0207C4C8 + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022DAAF4: .4byte 0x02326CA4 + arm_func_end ov00_022DAA5C + + arm_func_start ov00_022DAAF8 +ov00_022DAAF8: @ 0x022DAAF8 + push {r3, r4, r5, r6, r7, lr} + ldr r1, _022DAB98 @ =0x02326CA4 + mov r5, r0 + ldr r1, [r1] + add r1, r1, #0x1000 + ldr r1, [r1, #0xa90] + cmp r1, #2 + mvnne r0, #0 + popne {r3, r4, r5, r6, r7, pc} + mov r1, #0 + mov r2, #0x780 + bl FUN_0207C40C + mov r0, #0 + mov r1, r5 + mov r4, r0 +_022DAB34: + add r0, r0, #1 + cmp r0, #0x10 + str r4, [r1], #0x78 + blt _022DAB34 + ldr r7, _022DAB98 @ =0x02326CA4 + ldr r0, [r7] + add r0, r0, #0x1000 + ldr r0, [r0, #0xa88] + cmp r0, #0 + ble _022DAB90 + mvn r6, #0 +_022DAB60: + mov r0, r4 + mov r1, r5 + bl ov00_022DAA5C + cmp r0, r6 + beq _022DAB90 + ldr r0, [r7] + add r4, r4, #1 + add r0, r0, #0x1000 + ldr r0, [r0, #0xa88] + add r5, r5, #0x78 + cmp r4, r0 + blt _022DAB60 +_022DAB90: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022DAB98: .4byte 0x02326CA4 + arm_func_end ov00_022DAAF8 + + arm_func_start ov00_022DAB9C +ov00_022DAB9C: @ 0x022DAB9C + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + bl ov00_022DA878 + mov r1, r0 + mov r0, #1 + bl ov00_022E03F0 + ldr r2, _022DAC04 @ =0x02326CA8 + ldr r1, _022DAC08 @ =0x00000794 + str r0, [r2, #4] + mov r0, #1 + bl ov00_022E03F0 + ldr r2, _022DAC04 @ =0x02326CA8 + mov r1, #0 + str r0, [r2] + ldr r2, _022DAC08 @ =0x00000794 + bl FUN_0207C40C + ldr r1, _022DAC04 @ =0x02326CA8 + mov r2, #0 + ldr r3, [r1] + mov r0, #1 + str r5, [r3] + ldr r3, [r1] + str r4, [r3, #0x790] + str r2, [r1, #8] + pop {r3, r4, r5, pc} + .align 2, 0 +_022DAC04: .4byte 0x02326CA8 +_022DAC08: .4byte 0x00000794 + arm_func_end ov00_022DAB9C + + arm_func_start ov00_022DAC0C +ov00_022DAC0C: @ 0x022DAC0C + push {r4, r5, r6, r7, r8, lr} + ldr r1, _022DAF24 @ =0x02326CA8 + ldr r0, [r1, #4] + cmp r0, #0 + ldrne r3, [r1] + cmpne r3, #0 + moveq r0, #3 + popeq {r4, r5, r6, r7, r8, pc} + ldr r2, [r1, #8] + mov r6, #1 + cmp r2, #0xb + addls pc, pc, r2, lsl #2 + b _022DAF1C +_022DAC40: @ jump table + b _022DAC70 @ case 0 + b _022DAF1C @ case 1 + b _022DAC9C @ case 2 + b _022DAF1C @ case 3 + b _022DACF4 @ case 4 + b _022DAD58 @ case 5 + b _022DAF1C @ case 6 + b _022DAD80 @ case 7 + b _022DAF1C @ case 8 + b _022DAE54 @ case 9 + b _022DAEF0 @ case 10 + b _022DAF18 @ case 11 +_022DAC70: + str r6, [r1, #8] + ldr r3, [r3, #0x790] + ldr r1, _022DAF28 @ =0x022DAFF0 + mov r2, #0 + bl ov00_022DA884 + cmp r0, #0 + beq _022DAF1C + ldr r0, _022DAF24 @ =0x02326CA8 + mov r1, #0xb + str r1, [r0, #8] + b _022DAF1C +_022DAC9C: + ldr r0, _022DAF2C @ =0x022DB004 + mov r2, #3 + str r2, [r1, #8] + bl ov00_022DA95C + cmp r0, #0 + bne _022DACE4 + ldr r0, _022DAF24 @ =0x02326CA8 + ldr r1, [r0] + ldr r0, [r1, #8] + ldr r1, [r1, #4] + cmp r0, #0 + cmpeq r1, #0 + bne _022DAF1C + bl FUN_0207AE44 + ldr r2, _022DAF24 @ =0x02326CA8 + ldr r2, [r2] + stmib r2, {r0, r1} + b _022DAF1C +_022DACE4: + ldr r0, _022DAF24 @ =0x02326CA8 + mov r1, #0xa + str r1, [r0, #8] + b _022DAF1C +_022DACF4: + bl FUN_0207AE44 + ldr r3, _022DAF24 @ =0x02326CA8 + ldr r2, _022DAF30 @ =0x000082EA + ldr r4, [r3] + mov r3, #0 + ldr r5, [r4, #4] + ldr r4, [r4, #8] + subs r5, r0, r5 + sbc r0, r1, r4 + lsl r1, r0, #6 + orr r1, r1, r5, lsr #26 + lsl r0, r5, #6 + bl FUN_0208FE3C + ldr r2, _022DAF34 @ =0x00000BB8 + cmp r1, #0 + cmpeq r0, r2 + bhs _022DAD48 + ldr r0, _022DAF24 @ =0x02326CA8 + mov r1, #2 + str r1, [r0, #8] + b _022DAF1C +_022DAD48: + ldr r0, _022DAF24 @ =0x02326CA8 + mov r1, #5 + str r1, [r0, #8] + b _022DAF1C +_022DAD58: + ldr r0, _022DAF38 @ =0x022DB018 + mov r2, #6 + str r2, [r1, #8] + bl ov00_022DAA24 + cmp r0, #0 + beq _022DAF1C + ldr r0, _022DAF24 @ =0x02326CA8 + mov r1, #0xa + str r1, [r0, #8] + b _022DAF1C +_022DAD80: + add r0, r3, #0xc + bl ov00_022DAAF8 + cmp r0, #0 + mov r4, #0 + ldrne r0, _022DAF24 @ =0x02326CA8 + movne r1, #0xa + strne r1, [r0, #8] + ldr r8, _022DAF24 @ =0x02326CA8 + sub r1, r4, #1 + ldr r0, [r8] + mov r5, r4 + mov r7, r4 + str r1, [r0, #0x78c] +_022DADB4: + ldr r2, [r8] + add r1, r2, r7 + ldr r0, [r1, #0xc] + cmp r0, #0 + beq _022DAE18 + ldrb r0, [r1, #0x78] + tst r0, #2 + beq _022DAE18 + ldrb r0, [r1, #0x77] + cmp r0, #3 + bhi _022DAE18 + add r0, r2, #0x32 + add r0, r0, r7 + bl ov00_022DAFBC + cmp r0, #0 + beq _022DAE18 + ldr r1, [r8] + add r0, r1, r7 + ldrh r0, [r0, #0x10] + cmp r0, r5 + blo _022DAE18 + str r4, [r1, #0x78c] + ldr r0, [r8] + add r0, r0, r7 + ldrh r5, [r0, #0x10] +_022DAE18: + add r4, r4, #1 + cmp r4, #0x10 + add r7, r7, #0x78 + blt _022DADB4 + ldr r1, _022DAF24 @ =0x02326CA8 + mov r2, #8 + ldr r0, _022DAF3C @ =0x022DB02C + str r2, [r1, #8] + bl ov00_022DA91C + cmp r0, #0 + beq _022DAF1C + ldr r0, _022DAF24 @ =0x02326CA8 + mov r1, #0xb + str r1, [r0, #8] + b _022DAF1C +_022DAE54: + ldr r2, [r3, #0x78c] + cmp r2, #0 + movlt r0, #0xb + strlt r0, [r1, #8] + blt _022DAF1C + add r1, r3, #0x12 + mov r0, #0x78 + mla r0, r2, r0, r1 + ldr r1, [r3] + mov r2, #0x20 + bl FUN_0207C4C8 + ldr r1, _022DAF24 @ =0x02326CA8 + mov r0, #0x78 + ldr r4, [r1] + mov r2, #0x20 + ldr r1, [r4] + ldr r3, [r4, #0x78c] + add r4, r4, #0x56 + mla r0, r3, r0, r4 + add r1, r1, #0x20 + bl FUN_0207C4C8 + ldr r1, _022DAF24 @ =0x02326CA8 + mov r0, #0x78 + ldr r4, [r1] + mov r2, #0xa + ldr r5, [r4, #0x78c] + ldr r3, [r4] + mla r4, r5, r0, r4 + ldrb r4, [r4, #0x77] + str r4, [r3, #0x40] + ldr r4, [r1] + ldr r1, [r4] + ldr r3, [r4, #0x78c] + add r4, r4, #0x32 + mla r0, r3, r0, r4 + add r1, r1, #0x44 + bl FUN_0207C4C8 + mov r6, #2 + b _022DAF1C +_022DAEF0: + ldr r0, _022DAF40 @ =0x022DB040 + mov r2, #8 + str r2, [r1, #8] + bl ov00_022DA91C + cmp r0, #0 + beq _022DAF1C + ldr r0, _022DAF24 @ =0x02326CA8 + mov r1, #0xb + str r1, [r0, #8] + b _022DAF1C +_022DAF18: + mov r6, #3 +_022DAF1C: + mov r0, r6 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022DAF24: .4byte 0x02326CA8 +_022DAF28: .4byte 0x022DAFF0 +_022DAF2C: .4byte 0x022DB004 +_022DAF30: .4byte 0x000082EA +_022DAF34: .4byte 0x00000BB8 +_022DAF38: .4byte 0x022DB018 +_022DAF3C: .4byte 0x022DB02C +_022DAF40: .4byte 0x022DB040 + arm_func_end ov00_022DAC0C + + arm_func_start ov00_022DAF44 +ov00_022DAF44: @ 0x022DAF44 + ldr r0, _022DAF5C @ =0x02326CA8 + ldr r1, [r0, #8] + cmp r1, #4 + moveq r1, #5 + streq r1, [r0, #8] + bx lr + .align 2, 0 +_022DAF5C: .4byte 0x02326CA8 + arm_func_end ov00_022DAF44 + + arm_func_start ov00_022DAF60 +ov00_022DAF60: @ 0x022DAF60 + push {r3, lr} + ldr r0, _022DAFB8 @ =0x02326CA8 + ldr r1, [r0, #4] + cmp r1, #0 + beq _022DAF8C + mov r0, #1 + mov r2, #0 + bl ov00_022E0434 + ldr r0, _022DAFB8 @ =0x02326CA8 + mov r1, #0 + str r1, [r0, #4] +_022DAF8C: + ldr r0, _022DAFB8 @ =0x02326CA8 + ldr r1, [r0] + cmp r1, #0 + popeq {r3, pc} + mov r0, #1 + mov r2, #0 + bl ov00_022E0434 + ldr r0, _022DAFB8 @ =0x02326CA8 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_022DAFB8: .4byte 0x02326CA8 + arm_func_end ov00_022DAF60 + + arm_func_start ov00_022DAFBC +ov00_022DAFBC: @ 0x022DAFBC + mov r2, #0 +_022DAFC0: + ldrb r1, [r0, r2] + cmp r1, #0x20 + blo _022DAFD4 + cmp r1, #0x7e + bls _022DAFDC +_022DAFD4: + mov r0, #0 + bx lr +_022DAFDC: + add r2, r2, #1 + cmp r2, #0xa + blt _022DAFC0 + mov r0, #1 + bx lr + arm_func_end ov00_022DAFBC +_022DAFF0: + .byte 0x08, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3, 0x08, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xA8, 0x6C, 0x32, 0x02, 0x08, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE3, 0x08, 0x10, 0x80, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xA8, 0x6C, 0x32, 0x02, 0x08, 0x00, 0x9F, 0xE5, 0x07, 0x10, 0xA0, 0xE3 + .byte 0x08, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xA8, 0x6C, 0x32, 0x02, 0x08, 0x00, 0x9F, 0xE5 + .byte 0x09, 0x10, 0xA0, 0xE3, 0x08, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xA8, 0x6C, 0x32, 0x02 + .byte 0x08, 0x00, 0x9F, 0xE5, 0x0B, 0x10, 0xA0, 0xE3, 0x08, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xA8, 0x6C, 0x32, 0x02 + + arm_func_start ov00_022DB054 +ov00_022DB054: @ 0x022DB054 + push {r4, r5, r6, lr} + mov r6, r0 + ldr r0, _022DB0CC @ =0x02000C34 + mov r5, #0 + bl FUN_02000B9C + mov r0, r6 + bl ov00_022EE018 + mov r4, r0 + bl ov00_022EEAB4 + cmp r0, #0 + beq _022DB08C + mov r0, r6 + bl ov00_022EE82C + mov r5, #1 +_022DB08C: + cmp r4, #0 + bge _022DB0A4 + cmp r5, #0 + movne r4, #2 + moveq r4, #3 + b _022DB0B0 +_022DB0A4: + cmp r5, #0 + movne r4, #1 + moveq r4, #0 +_022DB0B0: + ldr r0, _022DB0D0 @ =0x022E04F0 + ldr r1, _022DB0D4 @ =ov00_022E0520 + ldr r2, _022DB0D8 @ =0x022E0504 + ldr r3, _022DB0DC @ =0x022E0538 + bl ov00_022F5AC8 + mov r0, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_022DB0CC: .4byte 0x02000C34 +_022DB0D0: .4byte 0x022E04F0 +_022DB0D4: .4byte ov00_022E0520 +_022DB0D8: .4byte 0x022E0504 +_022DB0DC: .4byte 0x022E0538 + arm_func_end ov00_022DB054 + + arm_func_start ov00_022DB0E0 +ov00_022DB0E0: @ 0x022DB0E0 + mvn ip, r3 + tst r1, ip + movne r0, #0 + bxne lr + mvn r3, r3, lsl r2 + ldr ip, [r0] + and r3, ip, r3 + orr r1, r3, r1, lsl r2 + str r1, [r0] + mov r0, #1 + bx lr + arm_func_end ov00_022DB0E0 + + arm_func_start ov00_022DB10C +ov00_022DB10C: @ 0x022DB10C + ldr r2, [r0] + ldr r1, _022DB128 @ =0x000007FF + ldr r0, [r0, #4] + and r1, r2, r1 + orr r1, r1, #0 + orr r0, r0, #0 + bx lr + .align 2, 0 +_022DB128: .4byte 0x000007FF + arm_func_end ov00_022DB10C + + arm_func_start ov00_022DB12C +ov00_022DB12C: @ 0x022DB12C + ldr r0, [r0, #8] + bx lr + arm_func_end ov00_022DB12C + + arm_func_start ov00_022DB134 +ov00_022DB134: @ 0x022DB134 + ldr r1, [r0, #8] + ldr r0, [r0, #4] + orr r1, r1, #0 + orr r0, r0, #0 + bx lr + arm_func_end ov00_022DB134 + + arm_func_start ov00_022DB148 +ov00_022DB148: @ 0x022DB148 + ldr r0, [r0, #4] + bx lr + arm_func_end ov00_022DB148 + + arm_func_start ov00_022DB150 +ov00_022DB150: @ 0x022DB150 + push {r3, r4, r5, lr} + ldr r3, _022DB174 @ =0x000007FF + mov r4, r1 + mov r1, r2 + mov r2, #0 + mov r5, r0 + bl ov00_022DB0E0 + str r4, [r5, #4] + pop {r3, r4, r5, pc} + .align 2, 0 +_022DB174: .4byte 0x000007FF + arm_func_end ov00_022DB150 + + arm_func_start ov00_022DB178 +ov00_022DB178: @ 0x022DB178 + str r1, [r0, #8] + bx lr + arm_func_end ov00_022DB178 + + arm_func_start ov00_022DB180 +ov00_022DB180: @ 0x022DB180 + stmib r0, {r1, r2} + bx lr + arm_func_end ov00_022DB180 + + arm_func_start ov00_022DB188 +ov00_022DB188: @ 0x022DB188 + str r1, [r0, #4] + bx lr + arm_func_end ov00_022DB188 + + arm_func_start ov00_022DB190 +ov00_022DB190: @ 0x022DB190 + ldr r1, [r0] + ldr r0, _022DB1A0 @ =0x001FFFFF + and r0, r0, r1, lsr #11 + bx lr + .align 2, 0 +_022DB1A0: .4byte 0x001FFFFF + arm_func_end ov00_022DB190 + + arm_func_start ov00_022DB1A4 +ov00_022DB1A4: @ 0x022DB1A4 + push {r3, lr} + bl ov00_022DB190 + and r0, r0, #3 + pop {r3, pc} + arm_func_end ov00_022DB1A4 + + arm_func_start ov00_022DB1B4 +ov00_022DB1B4: @ 0x022DB1B4 + push {r4, lr} + mov r4, r0 + bl ov00_022DB1E4 + cmp r0, #0 + beq _022DB1DC + mov r0, r4 + bl ov00_022DB21C + cmp r0, #0 + movne r0, #1 + popne {r4, pc} +_022DB1DC: + mov r0, #0 + pop {r4, pc} + arm_func_end ov00_022DB1B4 + + arm_func_start ov00_022DB1E4 +ov00_022DB1E4: @ 0x022DB1E4 + push {r4, lr} + mov r4, r0 + bl ov00_022DB1A4 + cmp r0, #3 + bne _022DB214 + mov r0, r4 + bl ov00_022DB190 + and r0, r0, #4 + cmp r0, #4 + moveq r0, #1 + movne r0, #0 + pop {r4, pc} +_022DB214: + mov r0, #0 + pop {r4, pc} + arm_func_end ov00_022DB1E4 + + arm_func_start ov00_022DB21C +ov00_022DB21C: @ 0x022DB21C + push {r3, lr} + bl ov00_022DB190 + and r0, r0, #8 + cmp r0, #8 + moveq r0, #1 + movne r0, #0 + pop {r3, pc} + arm_func_end ov00_022DB21C + + arm_func_start ov00_022DB238 +ov00_022DB238: @ 0x022DB238 + push {r3, lr} + bl ov00_022DB190 + and r0, r0, #0x20 + cmp r0, #0x20 + moveq r0, #1 + movne r0, #0 + pop {r3, pc} + arm_func_end ov00_022DB238 + + arm_func_start ov00_022DB1A4 +ov00_022DB1A4: @ 0x022DB254 + ldr ip, _022DB25C @ =ov00_022DB1A4 + bx ip + .align 2, 0 +_022DB25C: .4byte ov00_022DB1A4 + arm_func_end ov00_022DB1A4 + + arm_func_start ov00_022DB260 +ov00_022DB260: @ 0x022DB260 + ldr ip, _022DB270 @ =ov00_022DB0E0 + ldr r3, _022DB274 @ =0x001FFFFF + mov r2, #0xb + bx ip + .align 2, 0 +_022DB270: .4byte ov00_022DB0E0 +_022DB274: .4byte 0x001FFFFF + arm_func_end ov00_022DB260 + + arm_func_start ov00_022DB278 +ov00_022DB278: @ 0x022DB278 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + bl ov00_022DB190 + bic r1, r0, #3 + mov r0, r5 + orr r1, r1, r4 + bl ov00_022DB260 + pop {r3, r4, r5, pc} + arm_func_end ov00_022DB278 + + arm_func_start ov00_022DB29C +ov00_022DB29C: @ 0x022DB29C + push {r4, lr} + mov r4, r0 + bl ov00_022DB1A4 + cmp r0, #3 + popne {r4, pc} + mov r0, r4 + bl ov00_022DB190 + orr r1, r0, #4 + mov r0, r4 + bl ov00_022DB260 + pop {r4, pc} + arm_func_end ov00_022DB29C + + arm_func_start ov00_022DB2C8 +ov00_022DB2C8: @ 0x022DB2C8 + push {r4, lr} + mov r4, r0 + cmp r1, #0 + beq _022DB2E4 + bl ov00_022DB190 + orr r1, r0, #8 + b _022DB2EC +_022DB2E4: + bl ov00_022DB190 + bic r1, r0, #8 +_022DB2EC: + mov r0, r4 + bl ov00_022DB260 + pop {r4, pc} + arm_func_end ov00_022DB2C8 + + arm_func_start ov00_022DB2F8 +ov00_022DB2F8: @ 0x022DB2F8 + push {r4, lr} + mov r4, r0 + cmp r1, #0 + beq _022DB314 + bl ov00_022DB190 + orr r1, r0, #0x10 + b _022DB31C +_022DB314: + bl ov00_022DB190 + bic r1, r0, #0x10 +_022DB31C: + mov r0, r4 + bl ov00_022DB260 + pop {r4, pc} + arm_func_end ov00_022DB2F8 + + arm_func_start ov00_022DB328 +ov00_022DB328: @ 0x022DB328 + push {r4, lr} + mov r4, r0 + cmp r1, #0 + beq _022DB344 + bl ov00_022DB190 + orr r1, r0, #0x20 + b _022DB34C +_022DB344: + bl ov00_022DB190 + bic r1, r0, #0x20 +_022DB34C: + mov r0, r4 + bl ov00_022DB260 + pop {r4, pc} + arm_func_end ov00_022DB328 + + arm_func_start ov00_022DB358 +ov00_022DB358: @ 0x022DB358 + push {r4, lr} + sub sp, sp, #0x170 + mov r4, r0 + str r4, [sp] + str r1, [sp, #4] + cmp r2, #0 + beq _022DB37C + cmp r2, #1 + b _022DB3A0 +_022DB37C: + add r0, sp, #0x70 + mov r1, #7 + bl FUN_02084FB8 + add r0, sp, #0x70 + add r1, sp, #0 + mov r2, #8 + bl FUN_02085130 + and r0, r0, #0x7f + b _022DB3D0 +_022DB3A0: + add r0, sp, #0x18 + bl FUN_020800FC + add r0, sp, #0x18 + add r1, sp, #0 + mov r2, #8 + bl FUN_0208013C + add r0, sp, #8 + add r1, sp, #0x18 + bl FUN_02080204 + ldrb r0, [sp, #8] + asr r0, r0, #1 + and r0, r0, #0x7f +_022DB3D0: + orr r1, r0, #0 + orr r0, r4, #0 + add sp, sp, #0x170 + pop {r4, pc} + arm_func_end ov00_022DB358 + + arm_func_start ov00_022DB3E0 +ov00_022DB3E0: @ 0x022DB3E0 + ldr ip, _022DB3FC @ =ov00_022DB400 + mov r3, r0 + mov r0, r1 + mov r1, r2 + ldr r2, [r3, #0x24] + mov r3, #0 + bx ip + .align 2, 0 +_022DB3FC: .4byte ov00_022DB400 + arm_func_end ov00_022DB3E0 + + arm_func_start ov00_022DB400 +ov00_022DB400: @ 0x022DB400 + push {r3, r4, r5, lr} + mov r5, r0 + mov r0, #0 + sub ip, r0, #1 + and ip, r5, ip + mov r4, r1 + cmp ip, #0 + pople {r3, r4, r5, pc} + mov r1, r2 + mov r0, ip + mov r2, r3 + bl ov00_022DB358 + cmp r4, r1 + cmpeq r5, r0 + moveq r0, #1 + movne r0, #0 + pop {r3, r4, r5, pc} + arm_func_end ov00_022DB400 + + arm_func_start ov00_022DB444 +ov00_022DB444: @ 0x022DB444 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + mov r6, r1 + mov r5, r2 + mov r4, #0 +_022DB458: + mov r0, r7 + mov r1, r6 + mov r2, r5 + mov r3, r4 + bl ov00_022DB400 + cmp r0, #0 + beq _022DB484 + mov r0, #0 + sub r0, r0, #1 + and r0, r7, r0 + pop {r3, r4, r5, r6, r7, pc} +_022DB484: + add r4, r4, #1 + cmp r4, #2 + blt _022DB458 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022DB444 + + arm_func_start ov00_022DB498 +ov00_022DB498: @ 0x022DB498 + push {r3, lr} + str r2, [sp] + mov r3, r1 + ldr r2, _022DB4B4 @ =0x02318B8C + mov r1, #0xd + bl FUN_0207911C + pop {r3, pc} + .align 2, 0 +_022DB4B4: .4byte 0x02318B8C + arm_func_end ov00_022DB498 + + arm_func_start ov00_022DB4B8 +ov00_022DB4B8: @ 0x022DB4B8 + push {r3, r4, r5, r6, r7, lr} + ldr lr, _022DB520 @ =0x66666667 + add r4, r2, #4 + smull ip, r2, lr, r4 + lsr ip, r4, #0x1f + add r2, ip, r2, asr #1 + cmp r2, #0 + ldr r7, _022DB524 @ =0x02318B94 + mov r6, #0 + ble _022DB514 + add r4, r3, r2 + sub r4, r4, #1 + mov ip, #0x1f +_022DB4EC: + and r5, r0, ip + ldrsb r5, [r7, r5] + lsr r0, r0, #5 + lsr lr, r1, #5 + strb r5, [r4, -r6] + add r6, r6, #1 + orr r0, r0, r1, lsl #27 + mov r1, lr + cmp r6, r2 + blt _022DB4EC +_022DB514: + mov r0, #0 + strb r0, [r3, r2] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022DB520: .4byte 0x66666667 +_022DB524: .4byte 0x02318B94 + arm_func_end ov00_022DB4B8 + + arm_func_start ov00_022DB528 +ov00_022DB528: @ 0x022DB528 + push {r4, r5, r6, lr} + sub sp, sp, #0x40 + mov r6, r0 + mov r4, r1 + mov r5, r2 + bl ov00_022DB10C + add r3, sp, #0x29 + mov r2, #0x2b + bl ov00_022DB4B8 + mov r0, r6 + bl ov00_022DB12C + mov r1, #0 + mov r2, #0x20 + add r3, sp, #0x14 + bl ov00_022DB4B8 + lsr r1, r4, #0x18 + and r1, r1, #0xff + str r1, [sp] + lsr r1, r4, #0x10 + and r1, r1, #0xff + str r1, [sp, #4] + lsr r1, r4, #8 + and r1, r1, #0xff + str r1, [sp, #8] + and r1, r4, #0xff + str r1, [sp, #0xc] + add r2, sp, #0x14 + str r2, [sp, #0x10] + ldr r2, _022DB5B4 @ =0x02318BB8 + mov r0, r5 + mov r1, #0x15 + add r3, sp, #0x29 + bl FUN_0207911C + add sp, sp, #0x40 + pop {r4, r5, r6, pc} + .align 2, 0 +_022DB5B4: .4byte 0x02318BB8 + arm_func_end ov00_022DB528 + + arm_func_start ov00_022DB5B8 +ov00_022DB5B8: @ 0x022DB5B8 + push {r3, r4, r5, lr} + sub sp, sp, #0x400 + mov r4, r1 + mov r1, #0 + mov r2, #0x40 + mov r5, r0 + bl FUN_0207C40C + mov r0, #0x40 + str r0, [r5] + mov r0, #0 + str r0, [r5, #0x1c] + add r0, r5, #4 + str r4, [r5, #0x24] + bl ov00_022DB634 + add r0, r5, #0x10 + mov r1, #0 + bl ov00_022DB278 + ldr r1, _022DB630 @ =0xEDB88320 + add r0, sp, #0 + bl FUN_020850B4 + add r0, sp, #0 + mov r1, r5 + mov r2, #0x3c + bl FUN_02085180 + str r0, [r5, #0x3c] + ldr r0, [r5, #0x20] + orr r0, r0, #1 + str r0, [r5, #0x20] + add sp, sp, #0x400 + pop {r3, r4, r5, pc} + .align 2, 0 +_022DB630: .4byte 0xEDB88320 + arm_func_end ov00_022DB5B8 + + arm_func_start ov00_022DB634 +ov00_022DB634: @ 0x022DB634 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x34 + mov r6, r0 + add r0, sp, #0 + bl FUN_0207BB50 + mov r3, #1 + add r2, sp, #0 +_022DB650: + add r0, r2, r3, lsl #2 + ldr r1, [r2, r3, lsl #2] + ldr r0, [r0, #-4] + eor r0, r1, r0 + str r0, [r2, r3, lsl #2] + add r3, r3, #1 + cmp r3, #8 + blo _022DB650 + add r0, sp, #0x20 + ldr r5, [sp, #0x1c] + mov r4, #0 + bl ov00_022EEA60 + ldr r0, [sp, #0x30] + cmp r0, #0 + beq _022DB6A0 + ldr r1, [sp, #0x20] + ldr r2, [sp, #0x24] + mov r0, r6 + bl ov00_022DB150 + b _022DB6B0 +_022DB6A0: + ldr r1, [sp, #0x28] + ldr r2, [sp, #0x2c] + mov r0, r6 + bl ov00_022DB150 +_022DB6B0: + ldr r0, _022DB6EC @ =0x6C078965 + ldr r1, _022DB6F0 @ =0x5D588B65 + umull r3, r2, r5, r0 + mla r2, r5, r1, r2 + ldr r1, _022DB6F4 @ =0x00269EC3 + mla r2, r4, r0, r2 + adds r0, r3, r1 + mov r0, r6 + adc r1, r2, #0 + bl ov00_022DB178 + mov r0, r6 + mov r1, #1 + bl ov00_022DB278 + add sp, sp, #0x34 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_022DB6EC: .4byte 0x6C078965 +_022DB6F0: .4byte 0x5D588B65 +_022DB6F4: .4byte 0x00269EC3 + arm_func_end ov00_022DB634 + + arm_func_start ov00_022DB6F8 +ov00_022DB6F8: @ 0x022DB6F8 + push {r3, r4, lr} + sub sp, sp, #0x14 + mov r4, r0 + add r0, sp, #0 + bl ov00_022EEA60 + ldr r0, [sp, #0x10] + cmp r0, #0 + mov r0, r4 + beq _022DB740 + bl ov00_022DB10C + ldr r2, [sp, #4] + ldr r3, [sp] + cmp r2, r1 + cmpeq r3, r0 + moveq r0, #1 + add sp, sp, #0x14 + movne r0, #0 + pop {r3, r4, pc} +_022DB740: + bl ov00_022DB10C + ldr r2, [sp, #0xc] + ldr r3, [sp, #8] + cmp r2, r1 + cmpeq r3, r0 + moveq r0, #1 + movne r0, #0 + add sp, sp, #0x14 + pop {r3, r4, pc} + arm_func_end ov00_022DB6F8 + + arm_func_start ov00_022DB764 +ov00_022DB764: @ 0x022DB764 + push {r3, lr} + bl ov00_022DB1A4 + cmp r0, #1 + moveq r0, #1 + movne r0, #0 + pop {r3, pc} + arm_func_end ov00_022DB764 + + arm_func_start ov00_022DB77C +ov00_022DB77C: @ 0x022DB77C + ldr ip, _022DB788 @ =ov00_022DB764 + add r0, r0, #0x10 + bx ip + .align 2, 0 +_022DB788: .4byte ov00_022DB764 + arm_func_end ov00_022DB77C + + arm_func_start ov00_022DB78C +ov00_022DB78C: @ 0x022DB78C + push {r3, lr} + bl ov00_022DB1A4 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, pc} + arm_func_end ov00_022DB78C + + arm_func_start ov00_022DB78C +ov00_022DB78C: @ 0x022DB7A4 + ldr ip, _022DB7AC @ =ov00_022DB78C + bx ip + .align 2, 0 +_022DB7AC: .4byte ov00_022DB78C + arm_func_end ov00_022DB78C + + arm_func_start ov00_022DB5B8 +ov00_022DB5B8: @ 0x022DB7B0 + ldr ip, _022DB7B8 @ =ov00_022DB5B8 + bx ip + .align 2, 0 +_022DB7B8: .4byte ov00_022DB5B8 + arm_func_end ov00_022DB5B8 + + arm_func_start ov00_022DB7BC +ov00_022DB7BC: @ 0x022DB7BC + push {r4, lr} + sub sp, sp, #0x400 + ldr r1, _022DB7FC @ =0xEDB88320 + mov r4, r0 + add r0, sp, #0 + bl FUN_020850B4 + add r0, sp, #0 + mov r1, r4 + mov r2, #0x3c + bl FUN_02085180 + ldr r1, [r4, #0x3c] + cmp r0, r1 + moveq r0, #1 + movne r0, #0 + add sp, sp, #0x400 + pop {r4, pc} + .align 2, 0 +_022DB7FC: .4byte 0xEDB88320 + arm_func_end ov00_022DB7BC + + arm_func_start ov00_022DB800 +ov00_022DB800: @ 0x022DB800 + push {r4, lr} + mov r4, r0 + add r0, r4, #0x10 + bl ov00_022DB764 + cmp r0, #0 + beq _022DB828 + ldr r0, [r4, #0x1c] + cmp r0, #0 + movgt r0, #1 + popgt {r4, pc} +_022DB828: + mov r0, #0 + pop {r4, pc} + arm_func_end ov00_022DB800 + + arm_func_start ov00_022DB830 +ov00_022DB830: @ 0x022DB830 + push {r3, r4, lr} + sub sp, sp, #0x14 + mov r4, r0 + add r0, r4, #0x10 + bl ov00_022DB1A4 + cmp r0, #0 + addeq sp, sp, #0x14 + moveq r0, #1 + popeq {r3, r4, pc} + add r0, sp, #0 + bl ov00_022EEA60 + ldr r0, [sp, #0x10] + cmp r0, #0 + addeq sp, sp, #0x14 + moveq r0, #0 + popeq {r3, r4, pc} + add r0, r4, #0x10 + bl ov00_022DB10C + ldr r2, [sp, #4] + ldr r3, [sp] + cmp r2, r1 + cmpeq r3, r0 + moveq r0, #1 + movne r0, #0 + add sp, sp, #0x14 + pop {r3, r4, pc} + arm_func_end ov00_022DB830 + + arm_func_start ov00_022DB898 +ov00_022DB898: @ 0x022DB898 + push {r4, lr} + sub sp, sp, #0x400 + mov r4, r0 + add r3, r4, #0x10 + mov ip, r2 + ldm r1, {r0, r1, r2} + stm r3, {r0, r1, r2} + ldr r1, _022DB8EC @ =0xEDB88320 + add r0, sp, #0 + str ip, [r4, #0x1c] + bl FUN_020850B4 + add r0, sp, #0 + mov r1, r4 + mov r2, #0x3c + bl FUN_02085180 + str r0, [r4, #0x3c] + ldr r0, [r4, #0x20] + orr r0, r0, #1 + str r0, [r4, #0x20] + add sp, sp, #0x400 + pop {r4, pc} + .align 2, 0 +_022DB8EC: .4byte 0xEDB88320 + arm_func_end ov00_022DB898 + + arm_func_start ov00_022DB8F0 +ov00_022DB8F0: @ 0x022DB8F0 + ldr ip, _022DB8F8 @ =FUN_022DB8FC + bx ip + .align 2, 0 +_022DB8F8: .4byte FUN_022DB8FC + arm_func_end ov00_022DB8F0 + + arm_func_start FUN_022DB8FC +FUN_022DB8FC: @ 0x022DB8FC + ldr r0, [r0, #0x20] + and r0, r0, #1 + cmp r0, #1 + moveq r0, #1 + movne r0, #0 + bx lr + arm_func_end FUN_022DB8FC + + arm_func_start FUN_022DB914 +FUN_022DB914: @ 0x022DB914 + ldr ip, _022DB91C @ =FUN_022DB920 + bx ip + .align 2, 0 +_022DB91C: .4byte FUN_022DB920 + arm_func_end FUN_022DB914 + + arm_func_start FUN_022DB920 +FUN_022DB920: @ 0x022DB920 + push {r4, lr} + sub sp, sp, #0x400 + mov r4, r0 + ldr r1, [r4, #0x20] + add r0, sp, #0 + bic r2, r1, #1 + ldr r1, _022DB960 @ =0xEDB88320 + str r2, [r4, #0x20] + bl FUN_020850B4 + add r0, sp, #0 + mov r1, r4 + mov r2, #0x3c + bl FUN_02085180 + str r0, [r4, #0x3c] + add sp, sp, #0x400 + pop {r4, pc} + .align 2, 0 +_022DB960: .4byte 0xEDB88320 + arm_func_end FUN_022DB920 + + arm_func_start ov00_022DB964 +ov00_022DB964: @ 0x022DB964 + push {r4, lr} + mov r4, r0 + bl ov00_022DB1A4 + cmp r0, #2 + movne r0, #0 + movne r1, r0 + popne {r4, pc} + mov r0, r4 + bl ov00_022DB134 + pop {r4, pc} + arm_func_end ov00_022DB964 + + arm_func_start ov00_022DB98C +ov00_022DB98C: @ 0x022DB98C + push {r3, r4, r5, lr} + mov r4, r1 + mov r5, r0 + mov r0, r4 + bl ov00_022DB1A4 + cmp r0, #1 + beq _022DB9DC + cmp r0, #2 + beq _022DB9BC + cmp r0, #3 + beq _022DB9D0 + b _022DB9E4 +_022DB9BC: + mov r0, r4 + bl ov00_022DB134 + ldr r2, [r5, #0x24] + bl ov00_022DB444 + pop {r3, r4, r5, pc} +_022DB9D0: + mov r0, r4 + bl ov00_022DB148 + pop {r3, r4, r5, pc} +_022DB9DC: + mvn r0, #0 + pop {r3, r4, r5, pc} +_022DB9E4: + mov r0, #0 + pop {r3, r4, r5, pc} + arm_func_end ov00_022DB98C + + arm_func_start ov00_022DB9EC +ov00_022DB9EC: @ 0x022DB9EC + push {r3, lr} + mov r3, r0 + ldr r0, [r3, #0x1c] + mov r2, #0 + mov r1, r2 + cmp r0, #0 + beq _022DBA14 + ldr r1, [r3, #0x24] + bl ov00_022DB358 + mov r2, r0 +_022DBA14: + mov r0, r2 + pop {r3, pc} + arm_func_end ov00_022DB9EC + + arm_func_start ov00_022DBA1C +ov00_022DBA1C: @ 0x022DBA1C + push {r4, r5, r6, lr} + mov r5, r1 + mov r4, r2 + mov r6, r0 + mov r1, #0 + mov r2, #0xc + bl FUN_0207C40C + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov00_022DB180 + mov r0, r6 + mov r1, #2 + bl ov00_022DB278 + pop {r4, r5, r6, pc} + arm_func_end ov00_022DBA1C + + arm_func_start ov00_022DBA58 +ov00_022DBA58: @ 0x022DBA58 + push {r3, r4, r5, lr} + mov r4, r1 + mov r5, r0 + mov r0, r4 + mov r1, #0 + mov r2, #0xc + bl FUN_0207C40C + mov r0, r5 + bl ov00_022DB77C + cmp r0, #0 + addeq r0, r5, #4 + ldmeq r0, {r0, r1, r2} + stmeq r4, {r0, r1, r2} + popeq {r3, r4, r5, pc} + ldr r1, [r5, #0x1c] + mov r0, r4 + bl ov00_022DB188 + mov r0, r4 + mov r1, #3 + bl ov00_022DB278 + pop {r3, r4, r5, pc} + arm_func_end ov00_022DBA58 + + arm_func_start ov00_022DBAAC +ov00_022DBAAC: @ 0x022DBAAC + push {r3, r4, r5, lr} + mov r4, r1 + mov r5, r0 + mov r1, #0 + mov r2, #0xc + bl FUN_0207C40C + mov r0, r5 + mov r1, r4 + bl ov00_022DB188 + mov r0, r5 + mov r1, #3 + bl ov00_022DB278 + pop {r3, r4, r5, pc} + arm_func_end ov00_022DBAAC + + arm_func_start ov00_022DBAE0 +ov00_022DBAE0: @ 0x022DBAE0 + ldr ip, _022DBAF4 @ =ov00_022DB528 + mov r3, r0 + mov r0, r1 + ldr r1, [r3, #0x24] + bx ip + .align 2, 0 +_022DBAF4: .4byte ov00_022DB528 + arm_func_end ov00_022DBAE0 + + arm_func_start ov00_022DBAF8 +ov00_022DBAF8: @ 0x022DBAF8 + push {r3, r4, r5, r6, r7, lr} + mov r4, r1 + mov r7, r0 + bl ov00_022DB1A4 + mov r5, r0 + mov r0, r4 + bl ov00_022DB1A4 + cmp r5, r0 + movne r0, #0 + popne {r3, r4, r5, r6, r7, pc} + cmp r5, #3 + bne _022DBB4C + mov r0, r7 + bl ov00_022DB148 + mov r5, r0 + mov r0, r4 + bl ov00_022DB148 + cmp r5, r0 + moveq r0, #1 + movne r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_022DBB4C: + cmp r5, #1 + bne _022DBBA0 + mov r0, r7 + bl ov00_022DB10C + mov r5, r0 + mov r6, r1 + mov r0, r4 + bl ov00_022DB10C + cmp r6, r1 + cmpeq r5, r0 + bne _022DBB98 + mov r0, r7 + bl ov00_022DB12C + mov r5, r0 + mov r0, r4 + bl ov00_022DB12C + cmp r5, r0 + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, pc} +_022DBB98: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_022DBBA0: + cmp r5, #2 + bne _022DBBD4 + mov r0, r7 + bl ov00_022DB134 + mov r5, r0 + mov r6, r1 + mov r0, r4 + bl ov00_022DB134 + cmp r6, r1 + cmpeq r5, r0 + moveq r0, #1 + movne r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_022DBBD4: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022DBAF8 + + arm_func_start ov00_022DBBDC +ov00_022DBBDC: @ 0x022DBBDC + push {r4, r5, lr} + sub sp, sp, #0x24 + mov r4, r1 + mov r5, r0 + mov r0, r4 + bl ov00_022DB1A4 + cmp r0, #3 + mov r0, r4 + bne _022DBC0C + bl ov00_022DB1B4 + add sp, sp, #0x24 + pop {r4, r5, pc} +_022DBC0C: + bl ov00_022DB1A4 + cmp r0, #2 + mov r0, r4 + bne _022DBC3C + bl ov00_022DB134 + mov r3, r0 + mov r2, r1 + add r0, sp, #0x15 + mov r1, r3 + bl ov00_022DB498 + add sp, sp, #0x24 + pop {r4, r5, pc} +_022DBC3C: + bl ov00_022DB1A4 + cmp r0, #1 + addne sp, sp, #0x24 + popne {r4, r5, pc} + ldr r1, [r5, #0x24] + add r2, sp, #0 + mov r0, r4 + bl ov00_022DB528 + add sp, sp, #0x24 + pop {r4, r5, pc} + arm_func_end ov00_022DBBDC + + arm_func_start ov00_022DBC64 +ov00_022DBC64: @ 0x022DBC64 + push {r4, lr} + mov r4, r0 + add r1, r4, #4 + bl ov00_022DBBDC + mov r0, r4 + add r1, r4, #0x10 + bl ov00_022DBBDC + pop {r4, pc} + arm_func_end ov00_022DBC64 + + arm_func_start ov00_022DBC84 +ov00_022DBC84: @ 0x022DBC84 + ldr r1, _022DBC90 @ =0x02318BC8 + str r0, [r1] + bx lr + .align 2, 0 +_022DBC90: .4byte 0x02318BC8 + arm_func_end ov00_022DBC84 +_022DBC94: + .byte 0x04, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xC8, 0x8B, 0x31, 0x02 + + arm_func_start ov00_022DBCA4 +ov00_022DBCA4: @ 0x022DBCA4 + push {r3, r4, r5, lr} + ldr r2, _022DBDB8 @ =0x02326CB4 + mov r5, r0 + ldr r0, [r2, #8] + mov r4, r1 + cmp r0, #0 + ldr r2, [r5, #0x40] + movne r0, #2 + popne {r3, r4, r5, pc} + ldr r0, _022DBDBC @ =0x02318C0C + ldr r1, _022DBDC0 @ =0x000013F4 + blx r2 + ldr r1, _022DBDB8 @ =0x02326CB4 + cmp r0, #0 + str r0, [r1, #8] + moveq r0, #2 + popeq {r3, r4, r5, pc} + ldr r2, _022DBDC0 @ =0x000013F4 + mov r1, #0 + bl FUN_0207C40C + ldr r3, _022DBDB8 @ =0x02326CB4 + mov r1, #0 + ldr r0, [r3, #8] + mov r2, #0x1c4 + add r0, r0, #0x1000 + str r4, [r0, #0x314] + str r1, [r3] + ldr r0, [r3, #8] + add r0, r0, #8 + add r0, r0, #0x1000 + bl FUN_0207C40C + ldr r1, _022DBDB8 @ =0x02326CB4 + ldr r2, _022DBDC4 @ =0x00004E84 + ldr r0, [r1, #8] + mov r4, #4 + add r0, r0, #0x1000 + str r2, [r0, #8] + ldr lr, [r1, #8] + add r0, lr, #0x1cc + add ip, r0, #0x1000 +_022DBD44: + ldm r5!, {r0, r1, r2, r3} + stm ip!, {r0, r1, r2, r3} + subs r4, r4, #1 + bne _022DBD44 + ldm r5, {r0, r1} + stm ip, {r0, r1} + add r0, lr, #0x1100 + mov r2, #0 + strh r2, [r0, #0xfe] + ldr r1, _022DBDB8 @ =0x02326CB4 + mov r0, #1 + ldr r1, [r1, #8] + add r1, r1, #0x1000 + strb r2, [r1, #0x20b] + bl ov00_022DC06C + ldr r2, _022DBDB8 @ =0x02326CB4 + ldr r1, [r2, #8] + add r1, r1, #0x1000 + str r0, [r1, #4] + ldr r0, [r2, #8] + add r0, r0, #0x1000 + ldr r0, [r0, #4] + cmp r0, #0 + popne {r3, r4, r5, pc} + mov r0, #0 + str r0, [r2, #4] + bl ov00_022DBDC8 + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022DBDB8: .4byte 0x02326CB4 +_022DBDBC: .4byte 0x02318C0C +_022DBDC0: .4byte 0x000013F4 +_022DBDC4: .4byte 0x00004E84 + arm_func_end ov00_022DBCA4 + + arm_func_start ov00_022DBDC8 +ov00_022DBDC8: @ 0x022DBDC8 + push {r3, lr} + sub sp, sp, #8 + ldr r0, _022DBE70 @ =0x02326CB4 + ldr r0, [r0, #8] + add r0, r0, #0x3d8 + add r0, r0, #0x1000 + bl FUN_0207A030 + ldr r1, _022DBE70 @ =0x02326CB4 + mov r2, #0 + ldr r0, [r1, #8] + add r0, r0, #0x1000 + str r2, [r0, #0x3f0] + ldr r1, [r1, #8] + add r0, r1, #0x1000 + ldr r0, [r0, #0x384] + cmp r0, #0 + beq _022DBE24 + add r0, r1, #0x318 + add r0, r0, #0x1000 + bl FUN_02079830 + cmp r0, #0 + addeq sp, sp, #8 + popeq {r3, pc} +_022DBE24: + ldr r0, _022DBE70 @ =0x02326CB4 + mov r3, #0x1000 + ldr lr, [r0, #8] + ldr r1, _022DBE74 @ =ov00_022DC17C + add r0, lr, #0x318 + ldr r2, _022DBE78 @ =0x02326CBC + str r3, [sp] + mov ip, #0x10 + add r0, r0, #0x1000 + add r3, lr, #0x1000 + str ip, [sp, #4] + bl FUN_02079560 + ldr r0, _022DBE70 @ =0x02326CB4 + ldr r0, [r0, #8] + add r0, r0, #0x318 + add r0, r0, #0x1000 + bl FUN_02079940 + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_022DBE70: .4byte 0x02326CB4 +_022DBE74: .4byte ov00_022DC17C +_022DBE78: .4byte 0x02326CBC + arm_func_end ov00_022DBDC8 + + arm_func_start ov00_022DBE7C +ov00_022DBE7C: @ 0x022DBE7C + push {r3, lr} + ldr r0, _022DBF04 @ =0x02326CB4 + ldr r0, [r0, #8] + cmp r0, #0 + popeq {r3, pc} + add r0, r0, #0x3d8 + add r0, r0, #0x1000 + bl FUN_0207A048 + ldr r1, _022DBF04 @ =0x02326CB4 + mov r2, #1 + ldr r0, [r1, #8] + add r0, r0, #0x1000 + str r2, [r0, #0x3f0] + ldr r0, [r1, #8] + add r0, r0, #0x3d8 + add r0, r0, #0x1000 + bl FUN_0207A0CC + ldr r0, _022DBF04 @ =0x02326CB4 + ldr r0, [r0, #8] + add r0, r0, #0x1000 + ldr r0, [r0, #0x314] + cmp r0, #0 + beq _022DBEDC + bl ov00_022DD34C +_022DBEDC: + ldr r0, _022DBF04 @ =0x02326CB4 + ldr r1, [r0, #8] + add r0, r1, #0x1000 + ldr r0, [r0, #0x384] + cmp r0, #0 + popeq {r3, pc} + add r0, r1, #0x318 + add r0, r0, #0x1000 + bl FUN_02079800 + pop {r3, pc} + .align 2, 0 +_022DBF04: .4byte 0x02326CB4 + arm_func_end ov00_022DBE7C + + arm_func_start ov00_022DBF08 +ov00_022DBF08: @ 0x022DBF08 + push {r4, lr} + ldr r0, _022DBF58 @ =0x02326CB4 + ldr r0, [r0, #8] + cmp r0, #0 + popeq {r4, pc} + add r1, r0, #0x1000 + ldr r0, [r1, #0x314] + ldr r4, [r1, #0x210] + cmp r0, #0 + beq _022DBF34 + bl ov00_022DD890 +_022DBF34: + ldr r1, _022DBF58 @ =0x02326CB4 + ldr r0, _022DBF5C @ =0x02318C1C + ldr r1, [r1, #8] + mov r2, #0 + blx r4 + ldr r0, _022DBF58 @ =0x02326CB4 + mov r1, #0 + str r1, [r0, #8] + pop {r4, pc} + .align 2, 0 +_022DBF58: .4byte 0x02326CB4 +_022DBF5C: .4byte 0x02318C1C + arm_func_end ov00_022DBF08 + + arm_func_start ov00_022DBF60 +ov00_022DBF60: @ 0x022DBF60 + push {r3, lr} + ldr r0, _022DBF8C @ =0x02326CB4 + ldr r1, [r0, #8] + add r0, r1, #0x1000 + ldr r0, [r0, #0x384] + cmp r0, #0 + popeq {r3, pc} + add r0, r1, #0x318 + add r0, r0, #0x1000 + bl FUN_02079800 + pop {r3, pc} + .align 2, 0 +_022DBF8C: .4byte 0x02326CB4 + arm_func_end ov00_022DBF60 + + arm_func_start ov00_022DBF90 +ov00_022DBF90: @ 0x022DBF90 + push {r4, lr} + ldr r0, _022DBFD8 @ =0x02326CB4 + ldr r0, [r0, #8] + cmp r0, #0 + moveq r0, #0x16 + popeq {r4, pc} + add r0, r0, #0x3d8 + add r0, r0, #0x1000 + bl FUN_0207A048 + ldr r0, _022DBFD8 @ =0x02326CB4 + ldr r1, [r0, #8] + add r0, r1, #0x3d8 + add r1, r1, #0x1000 + add r0, r0, #0x1000 + ldr r4, [r1, #4] + bl FUN_0207A0CC + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_022DBFD8: .4byte 0x02326CB4 + arm_func_end ov00_022DBF90 + + arm_func_start ov00_022DBFDC +ov00_022DBFDC: @ 0x022DBFDC + push {r4, lr} + ldr r1, _022DC058 @ =0x02326CB4 + mov r4, r0 + ldr r1, [r1, #8] + cmp r1, #0 + bne _022DC000 + mov r1, #0 + mov r2, #0x1c4 + bl FUN_0207C40C +_022DC000: + ldr r0, _022DC058 @ =0x02326CB4 + mov r1, r4 + ldr r0, [r0, #8] + mov r2, #0x1c4 + add r0, r0, #8 + add r0, r0, #0x1000 + bl FUN_0207C4C8 + ldr r1, [r4] + ldr r0, _022DC05C @ =0x00004E20 + cmp r1, r0 + blt _022DC038 + ldr r0, _022DC060 @ =0x00007530 + cmp r1, r0 + blt _022DC040 +_022DC038: + ldr r0, _022DC064 @ =0x00005206 + str r0, [r4] +_022DC040: + ldr r1, [r4] + ldr r0, _022DC068 @ =0x00004E84 + cmp r1, r0 + rsbge r0, r1, #0 + strge r0, [r4] + pop {r4, pc} + .align 2, 0 +_022DC058: .4byte 0x02326CB4 +_022DC05C: .4byte 0x00004E20 +_022DC060: .4byte 0x00007530 +_022DC064: .4byte 0x00005206 +_022DC068: .4byte 0x00004E84 + arm_func_end ov00_022DBFDC + + arm_func_start ov00_022DC06C +ov00_022DC06C: @ 0x022DC06C + push {r4, lr} + ldr r1, _022DC164 @ =0x02318BC8 + mov r4, r0 + ldr r0, [r1] + ldr r1, _022DC168 @ =0x02318C2C + bl FUN_0208982C + cmp r0, #0 + ldrne r0, _022DC164 @ =0x02318BC8 + movne r1, #1 + strne r1, [r0, #0x14] + ldr r0, _022DC16C @ =0x02326CB4 + ldr r2, _022DC164 @ =0x02318BC8 + ldr r0, [r0, #8] + ldr r1, _022DC170 @ =0x02318BC8 + add r0, r0, #0x1000 + ldr r3, [r0, #0x20c] + str r3, [r2, #0xc] + ldr r3, [r0, #0x210] + str r3, [r2, #0x10] + ldr r0, [r0, #0x314] + bl ov00_022DD0DC + cmp r0, #0 + movne r0, #4 + popne {r4, pc} + cmp r4, #1 + bne _022DC0DC + ldr r0, _022DC174 @ =0x02326CC0 + bl ov00_022ED468 +_022DC0DC: + ldr r0, _022DC16C @ =0x02326CB4 + ldr r1, [r0, #8] + add r0, r1, #0x1000 + add r2, r1, #0x1cc + ldr r0, [r0, #0x314] + add r1, r1, #0x1200 + add r2, r2, #0x1000 + bl ov00_022DC8D0 + ldr r2, _022DC16C @ =0x02326CB4 + ldr r1, [r2, #8] + add r1, r1, #0x1000 + str r0, [r1, #4] + ldr r0, [r2, #8] + add r0, r0, #0x1000 + ldr r1, [r0, #4] + cmp r1, #0 + movne r0, #4 + popne {r4, pc} + ldr r0, [r0, #0x314] + bl ov00_022DD1F8 + cmp r0, #0 + movne r0, #4 + popne {r4, pc} + ldr r0, _022DC178 @ =0x022B966C + ldr r0, [r0, #4] + bl FUN_02079B0C + ldr r1, _022DC16C @ =0x02326CB4 + ldr r2, [r1, #8] + sub r1, r0, #1 + add r0, r2, #0x1000 + ldr r0, [r0, #0x314] + bl ov00_022DD290 + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_022DC164: .4byte 0x02318BC8 +_022DC168: .4byte 0x02318C2C +_022DC16C: .4byte 0x02326CB4 +_022DC170: .4byte 0x02318BC8 +_022DC174: .4byte 0x02326CC0 +_022DC178: .4byte 0x022B966C + arm_func_end ov00_022DC06C + + arm_func_start ov00_022DC17C +ov00_022DC17C: @ 0x022DC17C + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov r8, #0 +_022DC184: + ldr r0, _022DC420 @ =0x02326CB4 + ldr r0, [r0, #8] + add r0, r0, #0x1000 + ldr r1, [r0, #0x314] + add r0, r1, #0x1000 + ldr r0, [r0, #0xba4] + cmp r0, #0 + beq _022DC1B0 + add r0, r1, #0x338 + add r0, r0, #0x1800 + bl FUN_02079800 +_022DC1B0: + ldr r2, _022DC420 @ =0x02326CB4 + ldr r0, [r2, #8] + add r0, r0, #0x1000 + ldr r1, [r0, #0x314] + add r1, r1, #0x1000 + ldr r1, [r1, #0x20] + cmp r1, #8 + beq _022DC24C + ldr r1, _022DC424 @ =0x00004E84 + str r1, [r0, #8] + ldr r0, [r2, #8] + add r0, r0, #0x1000 + ldr r0, [r0, #0x314] + add r0, r0, #0x1000 + ldr r0, [r0, #0x20] + cmp r0, #7 + bne _022DC200 + mov r0, #0x14 + bl ov00_022DCA74 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022DC200: + cmp r8, #2 + ble _022DC23C + cmp r0, #2 + bne _022DC21C + mov r0, #9 + bl ov00_022DCA74 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022DC21C: + cmp r0, #3 + bne _022DC230 + mov r0, #0xb + bl ov00_022DCA74 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022DC230: + mov r0, #0xd + bl ov00_022DCA74 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022DC23C: + mov r0, #1 + add r8, r8, #1 + str r0, [sp] + b _022DC2BC +_022DC24C: + bl ov00_022DC430 + cmp r0, #0x10 + beq _022DC274 + cmp r0, #0x11 + beq _022DC298 + cmp r0, #0x15 + bne _022DC2A0 + mov r0, #0x15 + bl ov00_022DCA74 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022DC274: + cmp r8, #2 + ble _022DC288 + mov r0, #0x10 + bl ov00_022DCA74 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022DC288: + mov r0, #0 + add r8, r8, #1 + str r0, [sp] + b _022DC2BC +_022DC298: + bl ov00_022DCA74 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022DC2A0: + cmp r8, #2 + blt _022DC2B0 + bl ov00_022DCA74 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022DC2B0: + mov r0, #1 + add r8, r8, #1 + str r0, [sp] +_022DC2BC: + bl FUN_0207AE44 + mov sb, r0 + mov sl, r1 + bl FUN_0207AE44 + subs r2, r0, sb + sbc r0, r1, sl + lsl r1, r0, #6 + orr r1, r1, r2, lsr #26 + lsl r0, r2, #6 + ldr r2, _022DC428 @ =0x000082EA + mov r3, #0 + bl FUN_0208FE3C + cmp r1, #0 + ldr r7, _022DC42C @ =0x00001388 + cmpeq r0, r7 + bhs _022DC39C + mov fp, #0 + ldr r6, _022DC428 @ =0x000082EA + ldr r5, _022DC420 @ =0x02326CB4 + mov r4, fp +_022DC30C: + ldr r0, [r5, #8] + add r0, r0, #0x3d8 + add r0, r0, #0x1000 + bl FUN_0207A048 + ldr r2, [r5, #8] + add r0, r2, #0x1000 + ldr r1, [r0, #0x3f0] + cmp r1, #1 + bne _022DC358 + ldr r2, _022DC424 @ =0x00004E84 + ldr r1, _022DC420 @ =0x02326CB4 + str r2, [r0, #8] + ldr r0, [r1, #8] + add r0, r0, #0x3d8 + add r0, r0, #0x1000 + bl FUN_0207A0CC + mov r0, #0x14 + bl ov00_022DCA74 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022DC358: + add r0, r2, #0x3d8 + add r0, r0, #0x1000 + bl FUN_0207A0CC + mov r0, r7 + bl FUN_02079B14 + bl FUN_0207AE44 + subs r2, r0, sb + sbc r0, r1, sl + lsl r1, r0, #6 + orr r1, r1, r2, lsr #26 + lsl r0, r2, #6 + mov r2, r6 + mov r3, fp + bl FUN_0208FE3C + cmp r1, r4 + cmpeq r0, r7 + blo _022DC30C +_022DC39C: + ldr r0, _022DC420 @ =0x02326CB4 + ldr r0, [r0, #8] + add r0, r0, #0x1000 + ldr r0, [r0, #0x314] + bl ov00_022DD890 + ldr r0, _022DC420 @ =0x02326CB4 + ldr r0, [r0, #8] + add r0, r0, #0x3d8 + add r0, r0, #0x1000 + bl FUN_0207A048 + ldr r0, [sp] + bl ov00_022DC06C + ldr r2, _022DC420 @ =0x02326CB4 + ldr r1, [r2, #8] + add r1, r1, #0x1000 + str r0, [r1, #4] + ldr r3, [r2, #8] + add r0, r3, #0x1000 + ldr r1, [r0, #4] + cmp r1, #0 + beq _022DC40C + ldr r1, _022DC424 @ =0x00004E84 + str r1, [r0, #8] + ldr r0, [r2, #8] + add r0, r0, #0x3d8 + add r0, r0, #0x1000 + bl FUN_0207A0CC + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022DC40C: + add r0, r3, #0x3d8 + add r0, r0, #0x1000 + bl FUN_0207A0CC + b _022DC184 +_022DC41C: + .byte 0xF8, 0x8F, 0xBD, 0xE8 +_022DC420: .4byte 0x02326CB4 +_022DC424: .4byte 0x00004E84 +_022DC428: .4byte 0x000082EA +_022DC42C: .4byte 0x00001388 + arm_func_end ov00_022DC17C + + arm_func_start ov00_022DC430 +ov00_022DC430: @ 0x022DC430 + push {r3, r4, r5, lr} + ldr r0, _022DC5E8 @ =0x02326CB4 + mov r1, #0 + ldr r0, [r0, #8] + add r2, r0, #0x1000 + ldr r0, [r2, #0x314] + ldr r4, [r2, #0x20c] + ldr r5, [r2, #0x210] + bl ov00_022DE068 + cmp r0, #1 + beq _022DC478 + ldr r0, _022DC5E8 @ =0x02326CB4 + ldr r2, _022DC5EC @ =0x00004E84 + ldr r1, [r0, #8] + mov r0, #0xe + add r1, r1, #0x1000 + str r2, [r1, #8] + pop {r3, r4, r5, pc} +_022DC478: + bl ov00_022DC608 + cmp r0, #0 + movne r0, #0xe + popne {r3, r4, r5, pc} + ldr r0, _022DC5E8 @ =0x02326CB4 + ldr r1, _022DC5EC @ =0x00004E84 + ldr r0, [r0, #8] + add r0, r0, #0x1000 + ldr r2, [r0, #8] + cmp r2, r1 + bge _022DC538 + sub r0, r1, #0x62 + cmp r2, r0 + bne _022DC530 + ldr r0, _022DC5F0 @ =0x02318C4C + ldr r1, _022DC5F4 @ =0x0000071F + blx r4 + movs r4, r0 + bne _022DC4E0 + ldr r0, _022DC5E8 @ =0x02326CB4 + ldr r2, _022DC5EC @ =0x00004E84 + ldr r1, [r0, #8] + mov r0, #2 + add r1, r1, #0x1000 + str r2, [r1, #8] + pop {r3, r4, r5, pc} +_022DC4E0: + add r1, r4, #0x1f + ldr r0, _022DC5F8 @ =0x02326CC0 + bic r1, r1, #0x1f + bl ov00_022EE870 + cmp r0, #1 + mov r2, #0 + beq _022DC524 + ldr r0, _022DC5FC @ =0x02318C5C + mov r1, r4 + blx r5 + ldr r0, _022DC5E8 @ =0x02326CB4 + ldr r2, _022DC5EC @ =0x00004E84 + ldr r1, [r0, #8] + mov r0, #0xf + add r1, r1, #0x1000 + str r2, [r1, #8] + pop {r3, r4, r5, pc} +_022DC524: + ldr r0, _022DC5FC @ =0x02318C5C + mov r1, r4 + blx r5 +_022DC530: + mov r0, #0x15 + pop {r3, r4, r5, pc} +_022DC538: + add r0, r1, #4 + cmp r2, r0 + beq _022DC554 + add r0, r1, #8 + cmp r2, r0 + beq _022DC578 + b _022DC5E0 +_022DC554: + ldr r0, _022DC5F8 @ =0x02326CC0 + bl ov00_022EE8C0 + ldr r0, _022DC5E8 @ =0x02326CB4 + ldr r2, _022DC600 @ =0x00004E88 + ldr r1, [r0, #8] + mov r0, #0x10 + add r1, r1, #0x1000 + str r2, [r1, #8] + pop {r3, r4, r5, pc} +_022DC578: + ldr r0, _022DC5F0 @ =0x02318C4C + mov r1, #0x700 + blx r4 + movs r4, r0 + bne _022DC5A8 + ldr r0, _022DC5E8 @ =0x02326CB4 + ldr r2, _022DC604 @ =0x00004E8C + ldr r1, [r0, #8] + mov r0, #0x11 + add r1, r1, #0x1000 + str r2, [r1, #8] + pop {r3, r4, r5, pc} +_022DC5A8: + add r0, r4, #0x1f + bic r0, r0, #0x1f + bl ov00_022EE82C + ldr r0, _022DC5FC @ =0x02318C5C + mov r1, r4 + mov r2, #0 + blx r5 + ldr r0, _022DC5E8 @ =0x02326CB4 + ldr r2, _022DC604 @ =0x00004E8C + ldr r1, [r0, #8] + mov r0, #0x11 + add r1, r1, #0x1000 + str r2, [r1, #8] + pop {r3, r4, r5, pc} +_022DC5E0: + mov r0, #0x12 + pop {r3, r4, r5, pc} + .align 2, 0 +_022DC5E8: .4byte 0x02326CB4 +_022DC5EC: .4byte 0x00004E84 +_022DC5F0: .4byte 0x02318C4C +_022DC5F4: .4byte 0x0000071F +_022DC5F8: .4byte 0x02326CC0 +_022DC5FC: .4byte 0x02318C5C +_022DC600: .4byte 0x00004E88 +_022DC604: .4byte 0x00004E8C + arm_func_end ov00_022DC430 + + arm_func_start ov00_022DC608 +ov00_022DC608: @ 0x022DC608 + push {r3, r4, r5, lr} + ldr r0, _022DC8A0 @ =0x02326CB4 + mov r1, #0 + ldr r0, [r0, #8] + str r1, [sp] + add r0, r0, #0x1000 + ldr r0, [r0, #0x314] + ldr r1, _022DC8A4 @ =0x02318C68 + bl ov00_022DE308 + str r0, [sp] + cmp r0, #0 + beq _022DC63C + bl ov00_022DF6F4 +_022DC63C: + ldr r0, _022DC8A0 @ =0x02326CB4 + mov r2, #0 + ldr r1, [r0, #8] + ldr r0, _022DC8A8 @ =0x022BCA70 + str r2, [sp] + str r2, [r0] + add r0, r1, #0x1000 + ldr r0, [r0, #0x314] + ldr r1, _022DC8AC @ =0x02318C70 + bl ov00_022DE308 + bl FUN_0208B360 + ldr r1, _022DC8A8 @ =0x022BCA70 + ldr r1, [r1] + cmp r1, #0x22 + bne _022DC694 + ldr r0, _022DC8A0 @ =0x02326CB4 + ldr r2, _022DC8B0 @ =0x00004E85 + ldr r1, [r0, #8] + mov r0, #0xc + add r1, r1, #0x1000 + str r2, [r1, #8] + pop {r3, r4, r5, pc} +_022DC694: + cmp r0, #0xc8 + beq _022DC6BC + ldr r1, _022DC8A0 @ =0x02326CB4 + add r0, r0, #0x1d8 + ldr r1, [r1, #8] + add r2, r0, #0x5800 + add r0, r1, #0x1000 + str r2, [r0, #8] + mov r0, #0x12 + pop {r3, r4, r5, pc} +_022DC6BC: + ldr r0, _022DC8A0 @ =0x02326CB4 + ldr r1, _022DC8B4 @ =0x02318C7C + ldr r2, [r0, #8] + mov r3, #4 + add r0, r2, #0x1000 + add r2, r2, #0xc + ldr r0, [r0, #0x314] + add r2, r2, #0x1000 + bl ov00_022DE360 + cmp r0, #0 + bgt _022DC704 + ldr r0, _022DC8A0 @ =0x02326CB4 + ldr r2, _022DC8B0 @ =0x00004E85 + ldr r1, [r0, #8] + mov r0, #0xe + add r1, r1, #0x1000 + str r2, [r1, #8] + pop {r3, r4, r5, pc} +_022DC704: + ldr r0, _022DC8A0 @ =0x02326CB4 + add r1, sp, #0 + ldr r0, [r0, #8] + mov r2, #0xa + add r0, r0, #0xc + add r0, r0, #0x1000 + bl FUN_0208B298 + ldr r1, _022DC8A0 @ =0x02326CB4 + mov r4, r0 + ldr r5, [r1, #8] + add r0, r5, #0xc + add r0, r0, #0x1000 + bl FUN_02089678 + add r1, r5, #0xc + add r1, r1, #0x1000 + ldr r2, [sp] + add r0, r1, r0 + cmp r2, r0 + beq _022DC764 + ldr r1, _022DC8B0 @ =0x00004E85 + add r0, r5, #0x1000 + str r1, [r0, #8] + mov r0, #0xc + pop {r3, r4, r5, pc} +_022DC764: + add r0, r4, #0xe20 + add r1, r0, #0x4000 + add r0, r5, #0x1000 + str r1, [r0, #8] + cmp r4, #0x64 + bge _022DC898 + ldr r5, _022DC8A0 @ =0x02326CB4 + mov r0, #0 + ldr r2, [r5, #8] + ldr r1, _022DC8B8 @ =0x02318C88 + add r2, r2, #0x1000 + strb r0, [r2, #0x52] + ldr r2, [r5, #8] + ldr r3, _022DC8BC @ =0x0000012D + add r2, r2, #0x1000 + strb r0, [r2, #0x1f] + ldr r2, [r5, #8] + add r2, r2, #0x1000 + strb r0, [r2, #0x17f] + ldr r2, [r5, #8] + add r2, r2, #0x1000 + strb r0, [r2, #0x10] + ldr r2, [r5, #8] + add r2, r2, #0x1000 + strb r0, [r2, #0x188] + ldr r2, [r5, #8] + add r0, r2, #0x1000 + add r2, r2, #0x52 + ldr r0, [r0, #0x314] + add r2, r2, #0x1000 + bl ov00_022DE360 + mov r0, r5 + ldr r2, [r0, #8] + ldr r1, _022DC8C0 @ =0x02318C90 + add r0, r2, #0x1000 + add r2, r2, #0x1f + ldr r0, [r0, #0x314] + mov r3, #0x33 + add r2, r2, #0x1000 + bl ov00_022DE360 + mov r0, r5 + ldr r2, [r0, #8] + ldr r1, _022DC8C4 @ =0x02318C98 + add r0, r2, #0x1000 + add r2, r2, #0x7f + ldr r0, [r0, #0x314] + mov r3, #9 + add r2, r2, #0x1100 + bl ov00_022DE360 + mov r0, r5 + ldr r2, [r0, #8] + ldr r1, _022DC8C8 @ =0x02318CA4 + add r0, r2, #0x1000 + add r2, r2, #0x10 + ldr r0, [r0, #0x314] + mov r3, #0xf + add r2, r2, #0x1000 + bl ov00_022DE360 + mov r0, r5 + ldr r2, [r0, #8] + ldr r1, _022DC8CC @ =0x02318CB0 + add r0, r2, #0x1000 + add r2, r2, #0x188 + ldr r0, [r0, #0x314] + mov r3, #0x41 + add r2, r2, #0x1000 + bl ov00_022DE3B4 + mov r1, r5 + ldr r0, [r1, #8] + mov r2, #0 + add r0, r0, #0x1000 + cmp r4, #0x28 + strb r2, [r0, #0x1b3] + movne r0, #1 + strne r0, [r1] + moveq r0, #2 + streq r0, [r1] +_022DC898: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022DC8A0: .4byte 0x02326CB4 +_022DC8A4: .4byte 0x02318C68 +_022DC8A8: .4byte 0x022BCA70 +_022DC8AC: .4byte 0x02318C70 +_022DC8B0: .4byte 0x00004E85 +_022DC8B4: .4byte 0x02318C7C +_022DC8B8: .4byte 0x02318C88 +_022DC8BC: .4byte 0x0000012D +_022DC8C0: .4byte 0x02318C90 +_022DC8C4: .4byte 0x02318C98 +_022DC8C8: .4byte 0x02318CA4 +_022DC8CC: .4byte 0x02318CB0 + arm_func_end ov00_022DC608 + + arm_func_start ov00_022DC8D0 +ov00_022DC8D0: @ 0x022DC8D0 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x94 + ldr r3, _022DCA4C @ =0x02326CB4 + mov r4, r0 + ldr r0, [r3, #0x10] + ldr r3, [r3, #0xc] + cmp r0, #0 + mov r6, r1 + mov r5, r2 + cmpeq r3, #0 + bne _022DC92C + ldr r0, _022DCA50 @ =0x02318CBC + bl FUN_02089678 + mov r3, r0 + ldr r1, _022DCA54 @ =0x02318CC8 + ldr r2, _022DCA50 @ =0x02318CBC + mov r0, r4 + bl ov00_022DDAE0 + cmp r0, #0 + beq _022DC984 + add sp, sp, #0x94 + mov r0, #8 + pop {r3, r4, r5, r6, pc} +_022DC92C: + ldr r0, _022DCA58 @ =0x02318CD0 + bl FUN_02089678 + mov r3, r0 + ldr r1, _022DCA54 @ =0x02318CC8 + ldr r2, _022DCA58 @ =0x02318CD0 + mov r0, r4 + bl ov00_022DDAE0 + cmp r0, #0 + addne sp, sp, #0x94 + movne r0, #8 + popne {r3, r4, r5, r6, pc} + mov r0, r6 + bl FUN_02089678 + mov r3, r0 + ldr r1, _022DCA5C @ =0x02318CD8 + mov r0, r4 + mov r2, r6 + bl ov00_022DDAE0 + cmp r0, #0 + addne sp, sp, #0x94 + movne r0, #8 + popne {r3, r4, r5, r6, pc} +_022DC984: + ldr r1, _022DCA60 @ =0x02326CC0 + add r0, sp, #0 + bl ov00_022DCAE0 + cmp r0, #0 + addeq sp, sp, #0x94 + moveq r0, #5 + popeq {r3, r4, r5, r6, pc} + ldr r0, _022DCA64 @ =0x02326CDC + add r1, sp, #0 + ldr r2, [r0] + mov r0, r4 + bl ov00_022DCD90 + cmp r0, #0 + addeq sp, sp, #0x94 + moveq r0, #8 + popeq {r3, r4, r5, r6, pc} + ldr r0, _022DCA4C @ =0x02326CB4 + ldr r0, [r0, #4] + cmp r0, #1 + bne _022DCA00 + ldr r0, _022DCA68 @ =0x02318CE0 + bl FUN_02089678 + mov r3, r0 + ldr r1, _022DCA6C @ =0x02318CE4 + ldr r2, _022DCA68 @ =0x02318CE0 + mov r0, r4 + bl ov00_022DDAE0 + cmp r0, #0 + addne sp, sp, #0x94 + movne r0, #8 + popne {r3, r4, r5, r6, pc} +_022DCA00: + mov r0, r5 + bl FUN_0208B3E8 + cmp r0, #0 + beq _022DCA40 + mov r0, r5 + bl FUN_0208B3E8 + mov r3, r0 + ldr r1, _022DCA70 @ =0x02318CEC + mov r0, r4 + mov r2, r5 + lsl r3, r3, #1 + bl ov00_022DDAE0 + cmp r0, #0 + addne sp, sp, #0x94 + movne r0, #8 + popne {r3, r4, r5, r6, pc} +_022DCA40: + mov r0, #0 + add sp, sp, #0x94 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_022DCA4C: .4byte 0x02326CB4 +_022DCA50: .4byte 0x02318CBC +_022DCA54: .4byte 0x02318CC8 +_022DCA58: .4byte 0x02318CD0 +_022DCA5C: .4byte 0x02318CD8 +_022DCA60: .4byte 0x02326CC0 +_022DCA64: .4byte 0x02326CDC +_022DCA68: .4byte 0x02318CE0 +_022DCA6C: .4byte 0x02318CE4 +_022DCA70: .4byte 0x02318CEC + arm_func_end ov00_022DC8D0 + + arm_func_start ov00_022DCA74 +ov00_022DCA74: @ 0x022DCA74 + push {r4, lr} + ldr r1, _022DCAB4 @ =0x02326CB4 + mov r4, r0 + ldr r0, [r1, #8] + add r0, r0, #0x3d8 + add r0, r0, #0x1000 + bl FUN_0207A048 + ldr r1, _022DCAB4 @ =0x02326CB4 + ldr r0, [r1, #8] + add r0, r0, #0x1000 + str r4, [r0, #4] + ldr r0, [r1, #8] + add r0, r0, #0x3d8 + add r0, r0, #0x1000 + bl FUN_0207A0CC + pop {r4, pc} + .align 2, 0 +_022DCAB4: .4byte 0x02326CB4 + arm_func_end ov00_022DCA74 + + arm_func_start ov00_022DCAB8 +ov00_022DCAB8: @ 0x022DCAB8 + push {r3, r4, lr} + sub sp, sp, #0x14 + mov r4, r0 + add r0, sp, #0 + bl ov00_022ED468 + add r1, sp, #0 + mov r0, r4 + bl ov00_022DCAE0 + add sp, sp, #0x14 + pop {r3, r4, pc} + arm_func_end ov00_022DCAB8 + + arm_func_start ov00_022DCAE0 +ov00_022DCAE0: @ 0x022DCAE0 + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x8c + mov r6, r1 + mov r1, #0 + mov r2, #0x94 + mov r4, r0 + bl FUN_0207C40C + ldm r6, {r3, r5} + cmp r5, #0 + cmpeq r3, #0 + mov r1, #0xe + beq _022DCB24 + ldr r2, _022DCD70 @ =0x02318CF8 + mov r0, r4 + str r5, [sp] + bl FUN_0207911C + b _022DCB3C +_022DCB24: + ldr r3, [r6, #8] + ldr r5, [r6, #0xc] + ldr r2, _022DCD70 @ =0x02318CF8 + mov r0, r4 + str r5, [sp] + bl FUN_0207911C +_022DCB3C: + ldrh r3, [r6, #0x10] + ldr r2, _022DCD74 @ =0x02318D00 + add r0, r4, #0xe + mov r1, #7 + bl FUN_0207911C + ldr r0, _022DCD78 @ =0x027FFE0C + ldrb r0, [r0] + cmp r0, #0 + bne _022DCB64 + bl FUN_0207BC20 +_022DCB64: + ldr r0, _022DCD78 @ =0x027FFE0C + add r1, r4, #0x15 + mov r2, #4 + bl FUN_0207C4C8 + ldr r0, _022DCD7C @ =0x027FFE10 + ldrb r0, [r0] + cmp r0, #0 + bne _022DCB88 + bl FUN_0207BC20 +_022DCB88: + ldr r0, _022DCD7C @ =0x027FFE10 + add r1, r4, #0x1a + mov r2, #2 + bl FUN_0207C4C8 + mov r1, #0x30 + add r0, sp, #0x16 + strb r1, [r4, #0x1d] + bl FUN_0207B9EC + ldr r5, _022DCD80 @ =0x02318D08 + add r7, sp, #0x16 + add r8, r4, #0x1f + mov r6, #0 +_022DCBB8: + ldrb r2, [r7], #1 + mov r0, r8 + mov r1, r5 + bl FUN_020790DC + add r6, r6, #1 + cmp r6, #6 + add r8, r8, #2 + blt _022DCBB8 + add r0, sp, #0x38 + bl FUN_0207BA08 + ldrb r0, [sp, #0x38] + ldr r2, _022DCD80 @ =0x02318D08 + mov r1, #3 + cmp r0, #8 + movhs r0, #1 + strbhs r0, [sp, #0x38] + ldrb r3, [sp, #0x38] + add r0, r4, #0x2c + bl FUN_0207911C + add r0, sp, #0x3c + add r1, r4, #0x7e + mov r2, #0x14 + bl FUN_0207C4C8 + ldrb r1, [sp, #0x3b] + ldr r2, _022DCD84 @ =0x02318D10 + add r0, r4, #0x2f + str r1, [sp] + ldrb r3, [sp, #0x3a] + mov r1, #5 + bl FUN_0207911C + add r0, sp, #0x28 + add r1, sp, #0x1c + bl FUN_020828A8 + cmp r0, #0 + addne sp, sp, #0x8c + movne r0, #0 + popne {r4, r5, r6, r7, r8, sb, pc} + ldr r0, [sp, #0x2c] + ldr r2, _022DCD88 @ =0x02318D1C + str r0, [sp] + ldr r1, [sp, #0x30] + add r0, r4, #0x34 + str r1, [sp, #4] + ldr r3, [sp, #0x1c] + mov r1, #0xd + str r3, [sp, #8] + ldr r3, [sp, #0x20] + str r3, [sp, #0xc] + ldr r3, [sp, #0x24] + str r3, [sp, #0x10] + ldr r3, [sp, #0x28] + bl FUN_0207911C + bl FUN_0207B7E4 + mov r6, r0 + bl ov00_022D7140 + mov r7, r0 + mov r1, #6 + bl FUN_0207A2A4 + cmp r7, #0 + bne _022DCCBC + mov r0, r6 + bl FUN_0207B7F8 + add sp, sp, #0x8c + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, pc} +_022DCCBC: + ldr r5, _022DCD80 @ =0x02318D08 + add r8, r4, #0x41 + mov sb, #0 +_022DCCC8: + ldrb r2, [r7, sb] + mov r0, r8 + mov r1, r5 + bl FUN_020790DC + add sb, sb, #1 + cmp sb, #6 + add r8, r8, #2 + blt _022DCCC8 + bl ov00_022D78D0 + mov r3, r0 + cmp r3, #0xff + beq _022DCD00 + cmp r3, #0x63 + bls _022DCD04 +_022DCD00: + mov r3, #0x63 +_022DCD04: + ldr r2, _022DCD8C @ =0x02318D38 + add r0, r4, #0x6f + mov r1, #0xe + bl FUN_0207911C + add r0, sp, #0x14 + bl ov00_022D7184 + mov r5, r0 + mov r1, #0x20 + bl FUN_0207A2A4 + cmp r5, #0 + bne _022DCD44 + mov r0, r6 + bl FUN_0207B7F8 + add sp, sp, #0x8c + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, pc} +_022DCD44: + mov r0, r5 + add r1, r4, #0x4e + mov r2, #0x20 + bl FUN_0207C4C8 + add r0, r4, #0x72 + bl ov00_022D7900 + mov r0, r6 + bl FUN_0207B7F8 + mov r0, #1 + add sp, sp, #0x8c + pop {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022DCD70: .4byte 0x02318CF8 +_022DCD74: .4byte 0x02318D00 +_022DCD78: .4byte 0x027FFE0C +_022DCD7C: .4byte 0x027FFE10 +_022DCD80: .4byte 0x02318D08 +_022DCD84: .4byte 0x02318D10 +_022DCD88: .4byte 0x02318D1C +_022DCD8C: .4byte 0x02318D38 + arm_func_end ov00_022DCAE0 + + arm_func_start ov00_022DCD90 +ov00_022DCD90: @ 0x022DCD90 + push {r4, r5, r6, lr} + sub sp, sp, #0x28 + mov r4, r2 + mov r6, r0 + mov r5, r1 + mov ip, #1 + ldr r2, _022DD094 @ =0x02318D48 + add r0, sp, #4 + mov r1, #0x21 + mov r3, #3 + str ip, [sp] + bl FUN_0207911C + add r0, sp, #4 + bl FUN_02089678 + mov r3, r0 + ldr r1, _022DD098 @ =0x02318D54 + mov r0, r6 + add r2, sp, #4 + bl ov00_022DDAE0 + cmp r0, #0 + addne sp, sp, #0x28 + movne r0, #0 + popne {r4, r5, r6, pc} + mov r0, r5 + bl FUN_02089678 + mov r3, r0 + ldr r1, _022DD09C @ =0x02318D5C + mov r0, r6 + mov r2, r5 + bl ov00_022DDAE0 + cmp r0, #0 + addne sp, sp, #0x28 + movne r0, #0 + popne {r4, r5, r6, pc} + add r0, r5, #0xe + bl FUN_02089678 + mov r3, r0 + ldr r1, _022DD0A0 @ =0x02318D64 + mov r0, r6 + add r2, r5, #0xe + bl ov00_022DDAE0 + cmp r0, #0 + addne sp, sp, #0x28 + movne r0, #0 + popne {r4, r5, r6, pc} + add r0, r5, #0x41 + bl FUN_02089678 + mov r3, r0 + ldr r1, _022DD0A4 @ =0x02318D6C + mov r0, r6 + add r2, r5, #0x41 + bl ov00_022DDAE0 + cmp r0, #0 + addne sp, sp, #0x28 + movne r0, #0 + popne {r4, r5, r6, pc} + add r0, r5, #0x6f + bl FUN_02089678 + mov r3, r0 + ldr r1, _022DD0A8 @ =0x02318D74 + mov r0, r6 + add r2, r5, #0x6f + bl ov00_022DDAE0 + cmp r0, #0 + addne sp, sp, #0x28 + movne r0, #0 + popne {r4, r5, r6, pc} + add r0, r5, #0x15 + bl FUN_02089678 + mov r3, r0 + ldr r1, _022DD0AC @ =0x02318D7C + mov r0, r6 + add r2, r5, #0x15 + bl ov00_022DDAE0 + cmp r0, #0 + addne sp, sp, #0x28 + movne r0, #0 + popne {r4, r5, r6, pc} + add r0, r5, #0x1a + bl FUN_02089678 + mov r3, r0 + ldr r1, _022DD0B0 @ =0x02318D84 + mov r0, r6 + add r2, r5, #0x1a + bl ov00_022DDAE0 + cmp r0, #0 + addne sp, sp, #0x28 + movne r0, #0 + popne {r4, r5, r6, pc} + add r0, r5, #0x1d + bl FUN_02089678 + mov r3, r0 + ldr r1, _022DD0B4 @ =0x02318D8C + mov r0, r6 + add r2, r5, #0x1d + bl ov00_022DDAE0 + cmp r0, #0 + addne sp, sp, #0x28 + movne r0, #0 + popne {r4, r5, r6, pc} + add r0, r5, #0x1f + bl FUN_02089678 + mov r3, r0 + ldr r1, _022DD0B8 @ =0x02318D94 + mov r0, r6 + add r2, r5, #0x1f + bl ov00_022DDAE0 + cmp r0, #0 + addne sp, sp, #0x28 + movne r0, #0 + popne {r4, r5, r6, pc} + add r0, r5, #0x2c + bl FUN_02089678 + mov r3, r0 + ldr r1, _022DD0BC @ =0x02318D9C + mov r0, r6 + add r2, r5, #0x2c + bl ov00_022DDAE0 + cmp r0, #0 + addne sp, sp, #0x28 + movne r0, #0 + popne {r4, r5, r6, pc} + add r0, r5, #0x2f + bl FUN_02089678 + mov r3, r0 + ldr r1, _022DD0C0 @ =0x02318DA4 + mov r0, r6 + add r2, r5, #0x2f + bl ov00_022DDAE0 + cmp r0, #0 + addne sp, sp, #0x28 + movne r0, #0 + popne {r4, r5, r6, pc} + add r0, r5, #0x34 + bl FUN_02089678 + mov r3, r0 + ldr r1, _022DD0C4 @ =0x02318DAC + mov r0, r6 + add r2, r5, #0x34 + bl ov00_022DDAE0 + cmp r0, #0 + addne sp, sp, #0x28 + movne r0, #0 + popne {r4, r5, r6, pc} + add r0, r5, #0x7e + bl FUN_0208B3E8 + mov r3, r0 + ldr r1, _022DD0C8 @ =0x02318DB4 + mov r0, r6 + add r2, r5, #0x7e + lsl r3, r3, #1 + bl ov00_022DDAE0 + cmp r0, #0 + addne sp, sp, #0x28 + movne r0, #0 + popne {r4, r5, r6, pc} + cmp r4, #1 + bne _022DD034 + add r0, r5, #0x4e + bl FUN_02089678 + mov r3, r0 + ldr r1, _022DD0CC @ =0x02318DBC + mov r0, r6 + add r2, r5, #0x4e + bl ov00_022DDAE0 + cmp r0, #0 + addne sp, sp, #0x28 + movne r0, #0 + popne {r4, r5, r6, pc} +_022DD034: + ldr r2, _022DD0D0 @ =0x02318DC4 + mov ip, #1 + add r0, sp, #4 + mov r1, #0x21 + mov r3, #3 + str ip, [sp] + bl FUN_0207911C + ldr r1, _022DD0D4 @ =0x02318DDC + add r2, sp, #4 + mov r0, r6 + bl ov00_022DDA04 + cmp r0, #0 + addne sp, sp, #0x28 + movne r0, #0 + popne {r4, r5, r6, pc} + ldr r1, _022DD0D8 @ =0x02318DE8 + mov r0, r6 + add r2, r5, #0x15 + bl ov00_022DDA04 + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + add sp, sp, #0x28 + pop {r4, r5, r6, pc} + .align 2, 0 +_022DD094: .4byte 0x02318D48 +_022DD098: .4byte 0x02318D54 +_022DD09C: .4byte 0x02318D5C +_022DD0A0: .4byte 0x02318D64 +_022DD0A4: .4byte 0x02318D6C +_022DD0A8: .4byte 0x02318D74 +_022DD0AC: .4byte 0x02318D7C +_022DD0B0: .4byte 0x02318D84 +_022DD0B4: .4byte 0x02318D8C +_022DD0B8: .4byte 0x02318D94 +_022DD0BC: .4byte 0x02318D9C +_022DD0C0: .4byte 0x02318DA4 +_022DD0C4: .4byte 0x02318DAC +_022DD0C8: .4byte 0x02318DB4 +_022DD0CC: .4byte 0x02318DBC +_022DD0D0: .4byte 0x02318DC4 +_022DD0D4: .4byte 0x02318DDC +_022DD0D8: .4byte 0x02318DE8 + arm_func_end ov00_022DCD90 + + arm_func_start ov00_022DD0DC +ov00_022DD0DC: @ 0x022DD0DC + push {r4, r5, r6, lr} + mov r5, r1 + ldr r2, _022DD1E4 @ =0x00001C14 + mov r6, r0 + ldr r4, [r5, #0xc] + mov r1, #0 + bl FUN_0207C40C + add r1, r6, #4 + add r0, r6, #0x1000 + mvn r2, #0 + str r2, [r0, #0xa30] + mov lr, r5 + str r2, [r0, #0xa34] + add ip, r1, #0x1000 ldm lr!, {r0, r1, r2, r3} stm ip!, {r0, r1, r2, r3} ldm lr, {r0, r1, r2} stm ip, {r0, r1, r2} - add lr, sp, #0x38 - add ip, sp, #0x24 - str lr, [sp, #0x10] - ldr lr, _02080A98 @ =0x02080670 - str ip, [sp, #0x14] - ldr ip, _02080A9C @ =FUN_020806c0 - str lr, [sp, #0x18] - ldr lr, _02080AA0 @ =0x02080814 - str ip, [sp, #0x1c] - ldr ip, [sp, #0xb8] - str lr, [sp, #0x20] - str ip, [sp] - mov r3, r5 - mov r0, r8 - mov r1, r7 - mov r2, r6 + ldr r0, _022DD1E8 @ =0x02318E28 + ldr r1, _022DD1EC @ =0x00000B68 + blx r4 + add r1, r6, #0x1000 + str r0, [r1, #0x9cc] + cmp r0, #0 + moveq r0, #1 + streq r0, [r1, #0x20] + popeq {r4, r5, r6, pc} + ldr r0, _022DD1F0 @ =0x02318E40 + ldr r1, _022DD1F4 @ =0x000005EA + blx r4 + add r2, r6, #0x1000 + str r0, [r2, #0x9d0] + cmp r0, #0 + moveq r0, #1 + streq r0, [r2, #0x20] + popeq {r4, r5, r6, pc} + add r1, r6, #0x208 + ldr r2, [r2, #0xc] + mov r0, r6 + add r1, r1, #0x1800 + bl ov00_022DDC80 + cmp r0, #0 + bne _022DD198 + add r1, r6, #0x1000 + mov r0, #1 + str r0, [r1, #0x20] + pop {r4, r5, r6, pc} +_022DD198: + ldr r1, [r5] + mov r0, r6 + bl ov00_022DDDC0 + cmp r0, #0 + bne _022DD1BC + add r1, r6, #0x1000 + mov r0, #1 + str r0, [r1, #0x20] + pop {r4, r5, r6, pc} +_022DD1BC: + mov r0, r6 + bl ov00_022DD944 + add r1, r6, #0x1000 + str r0, [r1, #0x20] + cmp r0, #0 + moveq r0, #0xff + strbeq r0, [r1] + add r0, r6, #0x1000 + ldr r0, [r0, #0x20] + pop {r4, r5, r6, pc} + .align 2, 0 +_022DD1E4: .4byte 0x00001C14 +_022DD1E8: .4byte 0x02318E28 +_022DD1EC: .4byte 0x00000B68 +_022DD1F0: .4byte 0x02318E40 +_022DD1F4: .4byte 0x000005EA + arm_func_end ov00_022DD0DC + + arm_func_start ov00_022DD1F8 +ov00_022DD1F8: @ 0x022DD1F8 + push {r4, lr} + sub sp, sp, #8 + ldr r1, _022DD27C @ =0x02318E58 + ldr r2, _022DD280 @ =0x02318E64 + mov r4, r0 + bl ov00_022DDA04 + cmp r0, #0 + addne sp, sp, #8 + movne r0, #1 + popne {r4, pc} + add r0, r4, #0x1000 + ldr r0, [r0, #0x9f8] + ldr r1, _022DD284 @ =0x02318E6C + bl FUN_02089A70 + add r0, r0, #4 + bl FUN_02089678 + movs r3, r0 + beq _022DD270 + ldr r2, _022DD288 @ =0x02318E74 + add r0, sp, #0 + mov r1, #7 + bl FUN_0207911C + ldr r1, _022DD28C @ =0x02318E78 + add r2, sp, #0 + mov r0, r4 + bl ov00_022DDA04 + cmp r0, #0 + addne sp, sp, #8 + movne r0, #1 + popne {r4, pc} +_022DD270: + mov r0, #0 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_022DD27C: .4byte 0x02318E58 +_022DD280: .4byte 0x02318E64 +_022DD284: .4byte 0x02318E6C +_022DD288: .4byte 0x02318E74 +_022DD28C: .4byte 0x02318E78 + arm_func_end ov00_022DD1F8 + + arm_func_start ov00_022DD290 +ov00_022DD290: @ 0x022DD290 + push {r3, r4, r5, lr} + sub sp, sp, #8 + mov r5, r0 + add r0, r5, #0x3f8 + add r2, r5, #0x1000 + mov r3, #0 + add r0, r0, #0x1800 + mov r4, r1 + str r3, [r2, #0xc10] + bl FUN_0207A030 + add r0, r5, #0x218 + add r0, r0, #0x1800 + bl FUN_0207A030 + add r0, r5, #0x1000 + ldr r0, [r0, #0x18] + cmp r0, #1 + ldreq r0, _022DD344 @ =0x02326CD4 + moveq r1, #1 + ldrne r0, _022DD344 @ =0x02326CD4 + movne r1, #0 + str r1, [r0] + add r0, r5, #0x1000 + ldr r0, [r0, #0xba4] + cmp r0, #0 + beq _022DD30C + add r0, r5, #0x338 + add r0, r0, #0x1800 + bl FUN_02079830 + cmp r0, #0 + addeq sp, sp, #8 + popeq {r3, r4, r5, pc} +_022DD30C: + add r0, r5, #0x338 + mov r1, #0x1000 + str r1, [sp] + ldr r1, _022DD348 @ =ov00_022DD574 + mov r2, r5 + add r0, r0, #0x1800 + add r3, r5, #0x1000 str r4, [sp, #4] - bl FUN_02080aa4 - add sp, sp, #0xa0 + bl FUN_02079560 + add r0, r5, #0x338 + add r0, r0, #0x1800 + bl FUN_02079940 + add sp, sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_022DD344: .4byte 0x02326CD4 +_022DD348: .4byte ov00_022DD574 + arm_func_end ov00_022DD290 + + arm_func_start ov00_022DD34C +ov00_022DD34C: @ 0x022DD34C + push {r4, lr} + mov r4, r0 + add r0, r4, #0x1000 + ldrb r0, [r0] + cmp r0, #0xff + popne {r4, pc} + add r0, r4, #0x3f8 + add r0, r0, #0x1800 + bl FUN_0207A048 + add r0, r4, #0x3f8 + add r1, r4, #0x1000 + mov r2, #1 + add r0, r0, #0x1800 + str r2, [r1, #0xc10] + bl FUN_0207A0CC + add r0, r4, #0x1000 + ldr r0, [r0, #0xba4] + cmp r0, #0 + popeq {r4, pc} + add r0, r4, #0x338 + add r0, r0, #0x1800 + bl FUN_02079800 + pop {r4, pc} + arm_func_end ov00_022DD34C + + arm_func_start ov00_022DD3A8 +ov00_022DD3A8: @ 0x022DD3A8 + push {r4, lr} + mov r4, r0 + add r0, r4, #0x1000 + ldr r0, [r0, #0x130] + cmp r0, #1 + bne _022DD3DC + add r0, r4, #0x1d4 + add r0, r0, #0x1800 + bl FUN_0207BB50 + add r0, r4, #0x1d4 + add r0, r0, #0x1800 + mov r1, #0x20 + bl ov00_022D1F04 +_022DD3DC: + add r0, r4, #0x3f8 + add r0, r0, #0x1800 + bl FUN_0207A048 + add r0, r4, #0x1000 + ldr r0, [r0, #0xc10] + cmp r0, #1 + add r0, r4, #0x3f8 + add r0, r0, #0x1800 + bne _022DD40C + bl FUN_0207A0CC + mov r0, #0 + pop {r4, pc} +_022DD40C: + bl FUN_0207A0CC + mov r0, #0xa + bl FUN_02079B14 + mov r0, #1 + pop {r4, pc} + arm_func_end ov00_022DD3A8 + + arm_func_start ov00_022DD420 +ov00_022DD420: @ 0x022DD420 + push {r4, lr} + mov r4, r0 + add r0, r4, #0x138 + add r0, r0, #0x1000 + mov r1, #0 + mov r2, #0x64 + bl FUN_0207C40C + ldr r0, _022DD470 @ =0x00000B68 + add r1, r4, #0x1000 + str r0, [r1, #0x174] + ldr r3, [r1, #0x9cc] + add r0, r4, #0x138 + ldr r2, _022DD474 @ =0x000005EA + str r3, [r1, #0x178] + str r2, [r1, #0x180] + ldr r2, [r1, #0x9d0] + add r0, r0, #0x1000 + str r2, [r1, #0x184] + bl ov00_022CB138 + pop {r4, pc} + .align 2, 0 +_022DD470: .4byte 0x00000B68 +_022DD474: .4byte 0x000005EA + arm_func_end ov00_022DD420 + + arm_func_start ov00_022DD478 +ov00_022DD478: @ 0x022DD478 + ldr ip, _022DD488 @ =ov00_022CCC58 + add r0, r0, #0x1000 + ldr r0, [r0, #0x124] + bx ip + .align 2, 0 +_022DD488: .4byte ov00_022CCC58 + arm_func_end ov00_022DD478 + + arm_func_start ov00_022DD48C +ov00_022DD48C: @ 0x022DD48C + push {r4, r5, r6, r7, r8, lr} + mov r5, r0 + add r0, r5, #0x1000 + ldr r6, [r0, #0xa08] + add r2, r5, #0x208 + ldr r1, _022DD568 @ =0x02318E6C + mov r0, r6 + add r4, r2, #0x1800 + bl FUN_02089A70 + cmp r0, #0 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, pc} + ldr r1, _022DD568 @ =0x02318E6C + mov r0, r6 + bl FUN_02089A70 + add r1, r5, #0x218 + add r6, r0, #4 + add r0, r1, #0x1800 + bl FUN_0207A048 + ldr r0, [r4, #4] + add r1, r5, #0x218 + sub r2, r0, r6 + add r0, r5, #0x1000 + str r2, [r0, #0xa34] + add r0, r1, #0x1800 + bl FUN_0207A0CC + ldr r0, [r4] + ldr r1, _022DD56C @ =0x02318E88 + bl FUN_02089A70 + movs r8, r0 + moveq r0, #1 + popeq {r4, r5, r6, r7, r8, pc} + ldr r0, _022DD56C @ =0x02318E88 + bl FUN_02089678 + mov r7, r0 + ldr r1, _022DD570 @ =0x02318E9C + add r0, r8, r7 + bl FUN_02089A70 + mov r6, r0 + add r0, r5, #0x218 + ldrsb r4, [r6] + mov r1, #0 + add r0, r0, #0x1800 + strb r1, [r6] + bl FUN_0207A048 + add r0, r8, r7 + bl FUN_0208B360 + add r1, r5, #0x1000 + add r2, r5, #0x218 + str r0, [r1, #0xa30] + add r0, r2, #0x1800 + bl FUN_0207A0CC + strb r4, [r6] + mov r0, #1 pop {r4, r5, r6, r7, r8, pc} .align 2, 0 -_02080A94: .4byte 0x020AEC5C -_02080A98: .4byte 0x02080670 -_02080A9C: .4byte FUN_020806c0 -_02080AA0: .4byte 0x02080814 - arm_func_end FUN_02080a10 +_022DD568: .4byte 0x02318E6C +_022DD56C: .4byte 0x02318E88 +_022DD570: .4byte 0x02318E9C + arm_func_end ov00_022DD48C - arm_func_start FUN_02080aa4 -FUN_02080aa4: @ 0x02080AA4 - push {r3, r4, r5, r6, r7, r8, sb, lr} - sub sp, sp, #0xc0 - ldr r5, [sp, #0xe0] - ldr r4, [sp, #0xe4] - mov r8, r1 - movs sb, r0 - mov r7, r2 - cmpne r8, #0 - mov r6, r3 - cmpne r7, #0 - cmpne r6, #0 - cmpne r5, #0 - cmpne r4, #0 - addeq sp, sp, #0xc0 - popeq {r3, r4, r5, r6, r7, r8, sb, pc} - ldr r0, [r4, #4] - cmp r5, r0 - ble _02080B24 - ldr r0, [r4, #8] - ldr r1, [r4, #0x10] - blx r1 - ldr r0, [r4, #8] - ldr r3, [r4, #0x14] - mov r1, r6 - mov r2, r5 - blx r3 - ldr r0, [r4, #8] - ldr r2, [r4, #0x18] - add r1, sp, #0x80 - blx r2 - ldr r5, [r4] - add r6, sp, #0x80 -_02080B24: - cmp r5, #0 - mov r2, #0 - ble _02080B4C - add r1, sp, #0x40 -_02080B34: - ldrb r0, [r6, r2] - add r2, r2, #1 - cmp r2, r5 - eor r0, r0, #0x36 - strb r0, [r1], #1 - blt _02080B34 -_02080B4C: - ldr r0, [r4, #4] - cmp r2, r0 - bge _02080B78 - add r0, sp, #0x40 - add r3, r0, r2 - mov r1, #0x36 -_02080B64: - strb r1, [r3], #1 - ldr r0, [r4, #4] - add r2, r2, #1 - cmp r2, r0 - blt _02080B64 -_02080B78: - ldr r0, [r4, #8] - ldr r1, [r4, #0x10] - blx r1 - ldr r0, [r4, #8] - ldr r2, [r4, #4] - ldr r3, [r4, #0x14] - add r1, sp, #0x40 - blx r3 - ldr r0, [r4, #8] - ldr r3, [r4, #0x14] - mov r1, r8 - mov r2, r7 - blx r3 - ldr r0, [r4, #8] - ldr r1, [r4, #0xc] - ldr r2, [r4, #0x18] - blx r2 - cmp r5, #0 + arm_func_start ov00_022DD574 +ov00_022DD574: @ 0x022DD574 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x14 + mov sl, r0 + add r0, sl, #0x1000 + ldr r8, [r0, #0x1c] + add r0, sl, #0x138 + add r1, sl, #0x19c + add r2, sl, #0x208 + add r4, r0, #0x1000 + cmp r8, #0 + mov r0, sl + add r5, r1, #0x1000 + add r7, r2, #0x1800 + mov fp, #0 + ldrle r8, _022DD87C @ =0x0000EA60 + bl ov00_022DD420 + mov r0, sl + bl ov00_022DD478 + movs r6, r0 + add r0, sl, #0x1000 + moveq r1, #2 + streq r1, [r0, #0x20] + addeq sp, sp, #0x14 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + str r6, [r0, #0x12c] + bl ov00_022CB1F0 + add r0, sl, #0x1000 + ldr r0, [r0, #0x130] + cmp r0, #1 + bne _022DD628 + mov r0, r5 + mov r1, #0 + mov r2, #0x830 + bl FUN_0207C40C + ldr r1, _022DD880 @ =0x022DDC74 + add r0, sl, #0x1000 + str r1, [r5, #0x810] + ldr r1, [r0, #0x124] + ldr r0, _022DD884 @ =0x02318DF8 + str r1, [r5, #0x800] + mov r1, #0xc + str r5, [r4, #0xc] + bl ov00_022CFE3C + mov r0, #1 + bl ov00_022D2B44 +_022DD628: + add r0, sl, #0x1100 + ldrh r1, [r0, #0x34] + mov r2, r6 + mov r0, #0 + bl ov00_022CB190 + bl ov00_022CB32C + cmp r0, #0 + add r0, sl, #0x1000 + beq _022DD664 + mov r1, #3 + str r1, [r0, #0x20] + bl ov00_022CB224 + bl ov00_022CB14C + add sp, sp, #0x14 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022DD664: + ldr r4, [r0, #0x9f8] + mov r0, r4 + bl FUN_02089678 + mov r1, r0 + mov r0, r4 + bl ov00_022CBA58 + str r0, [sp, #0x10] + cmp r0, #0 + bgt _022DD698 + add r0, sl, #0x1000 + mov r1, #5 + str r1, [r0, #0x20] + b _022DD864 +_022DD698: + bl ov00_022CBB60 + mov r0, sl + bl ov00_022DD3A8 + cmp r0, #0 + bne _022DD6BC + add r0, sl, #0x1000 + mov r1, #7 + str r1, [r0, #0x20] + b _022DD864 +_022DD6BC: + ldr r0, [r7] + str r0, [r7, #4] + ldr r1, [r7] + ldr r0, [r7, #0xc] + add r0, r1, r0 + str r0, [r7, #8] + bl FUN_0207AE44 + str r0, [sp, #8] + add r0, sl, #0x234 + str r1, [sp, #4] + add r5, sl, #0x218 + add r6, r0, #0x1800 + add r4, sl, #0x1000 +_022DD6F0: + ldr r0, _022DD888 @ =0x023250C8 + ldr r0, [r0] + cmp r0, #0 + bne _022DD710 + add r0, sl, #0x1000 + mov r1, #5 + str r1, [r0, #0x20] + b _022DD864 +_022DD710: + bl ov00_022CBAF0 + str r0, [sp, #0x10] + cmp r0, #0 + blt _022DD840 + ble _022DD7C4 + bl FUN_0207AE44 + str r0, [sp, #8] + add r0, sp, #0x10 + str r1, [sp, #4] + bl ov00_022CB550 + cmp r0, #0 + beq _022DD840 + ldmib r7, {r1, r2} + sub r2, r2, #1 + ldr sb, [sp, #0x10] + sub r2, r2, r1 + cmp sb, r2 + movge sb, r2 + mov r2, sb + bl FUN_0207C4C8 + ldr r0, [r7, #4] + cmp fp, #1 + add r1, r0, sb + str r1, [r7, #4] + mov r0, #0 + strb r0, [r1] + bne _022DD79C + add r0, r5, #0x1800 + bl FUN_0207A048 + ldr r1, [r6] + add r0, r5, #0x1800 + add r1, r1, sb + str r1, [r6] + bl FUN_0207A0CC + b _022DD7A8 +_022DD79C: + mov r0, sl + bl ov00_022DD48C + mov fp, r0 +_022DD7A8: + ldr r0, [sp, #0x10] + cmp r0, sb + bls _022DD7BC + bl ov00_022CB644 + b _022DD840 +_022DD7BC: + mov r0, sb + bl ov00_022CB644 +_022DD7C4: + ldr r1, [r4, #0xa30] + cmp r1, #0 + ldrge r0, [r4, #0xa34] + cmpge r0, r1 + bge _022DD840 + bl FUN_0207AE44 + ldr r2, [sp, #8] mov r3, #0 - ble _02080BE4 - add r1, sp, #0 -_02080BCC: - ldrb r0, [r6, r3] - add r3, r3, #1 - cmp r3, r5 - eor r0, r0, #0x5c - strb r0, [r1], #1 - blt _02080BCC -_02080BE4: - ldr r0, [r4, #4] - cmp r3, r0 - bge _02080C10 - add r0, sp, #0 - add r2, r0, r3 - mov r1, #0x5c -_02080BFC: - strb r1, [r2], #1 - ldr r0, [r4, #4] - add r3, r3, #1 - cmp r3, r0 - blt _02080BFC -_02080C10: - ldr r0, [r4, #8] - ldr r1, [r4, #0x10] - blx r1 - ldr r0, [r4, #8] - ldr r2, [r4, #4] - ldr r3, [r4, #0x14] - add r1, sp, #0 - blx r3 - ldr r0, [r4, #8] - ldr r1, [r4, #0xc] - ldr r2, [r4] - ldr r3, [r4, #0x14] - blx r3 - ldr r0, [r4, #8] - ldr r2, [r4, #0x18] + subs r2, r0, r2 + ldr r0, [sp, #4] + sbc r0, r1, r0 + lsl r1, r0, #6 + orr r1, r1, r2, lsr #26 + lsl r0, r2, #6 + ldr r2, _022DD88C @ =0x000082EA + bl FUN_0208FE3C + cmp r1, r8, asr #31 + cmpeq r0, r8 + bls _022DD820 + add r0, sl, #0x1000 + mov r1, #6 + str r1, [r0, #0x20] + b _022DD864 +_022DD820: + mov r0, sl + bl ov00_022DD3A8 + cmp r0, #0 + bne _022DD6F0 + add r0, sl, #0x1000 + mov r1, #7 + str r1, [r0, #0x20] + b _022DD864 +_022DD840: + bl ov00_022CB3BC + bl ov00_022CB3F8 + bl ov00_022CB224 + bl ov00_022CB14C + add r0, sl, #0x1000 + mov r1, #8 + str r1, [r0, #0x20] + add sp, sp, #0x14 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022DD864: + bl ov00_022CB3BC + bl ov00_022CB3F8 + bl ov00_022CB224 + bl ov00_022CB14C + add sp, sp, #0x14 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022DD87C: .4byte 0x0000EA60 +_022DD880: .4byte 0x022DDC74 +_022DD884: .4byte 0x02318DF8 +_022DD888: .4byte 0x023250C8 +_022DD88C: .4byte 0x000082EA + arm_func_end ov00_022DD574 + + arm_func_start ov00_022DD890 +ov00_022DD890: @ 0x022DD890 + push {r3, r4, r5, lr} + movs r5, r0 + add r1, r5, #0x1000 + ldr r4, [r1, #0x14] + popeq {r3, r4, r5, pc} + add r1, r5, #0x238 + add r1, r1, #0x1800 + mov r2, #0x20 + bl ov00_022DE3F4 + add r1, r5, #0x208 + mov r0, r5 + add r1, r1, #0x1800 + bl ov00_022DDCD8 + add r1, r5, #0x1f8 + mov r0, r5 + add r1, r1, #0x1800 + bl ov00_022DDCD8 + add r0, r5, #0x1000 + ldr r1, [r0, #0x9cc] + cmp r1, #0 + beq _022DD8FC + ldr r0, _022DD938 @ =0x02318EA0 + mov r2, #0 + blx r4 + add r0, r5, #0x1000 + mov r1, #0 + str r1, [r0, #0x9cc] +_022DD8FC: + add r0, r5, #0x1000 + ldr r1, [r0, #0x9d0] + cmp r1, #0 + beq _022DD924 + ldr r0, _022DD93C @ =0x02318EB8 + mov r2, #0 + blx r4 + add r0, r5, #0x1000 + mov r1, #0 + str r1, [r0, #0x9d0] +_022DD924: + ldr r2, _022DD940 @ =0x00001C14 + mov r0, r5 + mov r1, #0 + bl FUN_0207C40C + pop {r3, r4, r5, pc} + .align 2, 0 +_022DD938: .4byte 0x02318EA0 +_022DD93C: .4byte 0x02318EB8 +_022DD940: .4byte 0x00001C14 + arm_func_end ov00_022DD890 + + arm_func_start ov00_022DD944 +ov00_022DD944: @ 0x022DD944 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #4 + mov r7, r0 + add r0, r7, #0x1000 + ldr r1, [r0, #8] + add r0, r7, #0x1f8 + cmp r1, #0 + ldreq r6, _022DD9FC @ =0x02318ED0 + add r5, r0, #0x1800 + add r0, r7, #0x1000 + ldrne r6, _022DDA00 @ =0x02318F24 + ldr r0, [r0, #0x124] + bl FUN_02089678 + mov r4, r0 + mov r0, r6 + bl FUN_02089678 + add r1, r7, #0x1000 + mov r8, r0 + ldr r0, [r1, #0x128] + bl FUN_02089678 + sub r1, r8, #4 + add r0, r1, r0 + add r2, r4, r0 + add r0, r7, #0x1f8 + add r1, r0, #0x1800 + add r2, r2, #0x400 + mov r0, r7 + bl ov00_022DDC80 + cmp r0, #1 + addne sp, sp, #4 + movne r0, #1 + popne {r3, r4, r5, r6, r7, r8, pc} + add r3, r7, #0x1000 + ldr r0, [r3, #0x124] + mov r2, r6 + str r0, [sp] + ldr r0, [r5, #4] + ldr r1, [r5, #0xc] + ldr r3, [r3, #0x128] + bl FUN_0207911C + ldr r1, [r5, #4] + add r0, r1, r0 + str r0, [r5, #4] + mov r0, #0 + add sp, sp, #4 + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022DD9FC: .4byte 0x02318ED0 +_022DDA00: .4byte 0x02318F24 + arm_func_end ov00_022DD944 + + arm_func_start ov00_022DDA04 +ov00_022DDA04: @ 0x022DDA04 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r8, r0 + mov r6, r2 + add r2, r8, #0x1f8 + mov r0, r6 + mov r7, r1 + add r5, r2, #0x1800 + bl FUN_02089678 + mov r4, r0 + ldr r0, _022DDAD8 @ =0x02318F44 + bl FUN_02089678 + mov sb, r0 + mov r0, r7 + bl FUN_02089678 + sub r1, sb, #4 + add r0, r1, r0 + add r4, r4, r0 + ldmib r5, {r1, r2} + add r0, r4, #1 + sub r1, r2, r1 + cmp r0, r1 + ble _022DDA7C + sub r2, r4, r1 + mov r0, r8 + mov r1, r5 + add r2, r2, #1 + bl ov00_022DDD18 + cmp r0, #0 + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} +_022DDA7C: + ldr r0, [r5] + ldr r1, _022DDADC @ =0x02318E6C + bl FUN_02089A70 + add sb, r0, #2 + ldrsb r8, [r0, #2] + mov r0, sb + bl FUN_02089678 + add r2, r0, #1 + add r0, sb, r4 mov r1, sb - blx r2 - add sp, sp, #0xc0 + bl FUN_020872BC + ldr r2, _022DDAD8 @ =0x02318F44 + str r6, [sp] + mov r3, r7 + mov r0, sb + add r1, r4, #1 + bl FUN_0207911C + strb r8, [sb, r0] + ldr r1, [r5, #4] + mov r0, #0 + add r1, r1, r4 + str r1, [r5, #4] pop {r3, r4, r5, r6, r7, r8, sb, pc} .align 2, 0 -_02080C5C: .4byte 0x00FF00FF -_02080C60: .4byte 0x5A827999 -_02080C64: .4byte 0x6ED9EBA1 -_02080C68: .4byte 0x8F1BBCDC -_02080C6C: .4byte 0xCA62C1D6 - arm_func_end FUN_02080aa4 +_022DDAD8: .4byte 0x02318F44 +_022DDADC: .4byte 0x02318E6C + arm_func_end ov00_022DDA04 - arm_func_start FUN_02080c70 -FUN_02080c70: @ 0x02080C70 - push {r4, r5, r6, r7, r8, sb, sl, fp, ip, lr} - ldm r0, {r3, sb, sl, fp, ip} - sub sp, sp, #0x84 - str r2, [sp, #0x80] -_02080C80: - ldr r8, _02080C60 @ =0x5A827999 - ldr r7, _02080C5C @ =0x00FF00FF - mov r6, sp - mov r5, #0 -_02080C90: - ldr r4, [r1], #4 - add r2, r8, ip - add r2, r2, r3, ror #27 - and lr, r4, r7 - and r4, r7, r4, ror #24 - orr r4, r4, lr, ror #8 - str r4, [r6, #0x40] - str r4, [r6], #4 - add r2, r2, r4 - eor r4, sl, fp - and r4, r4, sb - eor r4, r4, fp - add r2, r2, r4 - ror sb, sb, #2 - mov ip, fp - mov fp, sl - mov sl, sb - mov sb, r3 - mov r3, r2 - add r5, r5, #4 - cmp r5, #0x40 - blt _02080C90 - mov r7, #0 - mov r6, sp -_02080CF0: - ldr r2, [r6] - ldr r5, [r6, #8] - ldr r4, [r6, #0x20] - ldr lr, [r6, #0x34] - eor r2, r2, r5 - eor r4, r4, lr - eor r2, r2, r4 - ror r2, r2, #0x1f - str r2, [r6, #0x40] - str r2, [r6], #4 - add r2, r2, ip - add r2, r2, r8 - add r2, r2, r3, ror #27 - eor r4, sl, fp - and r4, r4, sb - eor r4, r4, fp - add r2, r2, r4 - ror sb, sb, #2 - mov ip, fp - mov fp, sl - mov sl, sb - mov sb, r3 - mov r3, r2 - add r7, r7, #4 - cmp r7, #0x10 - blt _02080CF0 - ldr r8, _02080C64 @ =0x6ED9EBA1 - mov r7, #0 -_02080D60: - ldr r2, [r6] - ldr r4, [r6, #8] - ldr lr, [r6, #0x20] - ldr r5, [r6, #0x34] - eor r2, r2, r4 - eor lr, lr, r5 - eor r2, r2, lr - ror r2, r2, #0x1f - str r2, [r6, #0x40] - str r2, [r6], #4 - add r2, r2, ip - add r2, r2, r8 - add r2, r2, r3, ror #27 - eor lr, sb, sl - eor lr, lr, fp - add r2, r2, lr - ror sb, sb, #2 - mov ip, fp - mov fp, sl - mov sl, sb - mov sb, r3 - mov r3, r2 - add r7, r7, #1 - cmp r7, #0xc - moveq r6, sp - cmp r7, #0x14 - blt _02080D60 - ldr r8, _02080C68 @ =0x8F1BBCDC - mov r7, #0 -_02080DD4: - ldr r2, [r6] - ldr lr, [r6, #8] - ldr r5, [r6, #0x20] - ldr r4, [r6, #0x34] - eor r2, r2, lr - eor r5, r5, r4 - eor r2, r2, r5 - ror r2, r2, #0x1f - str r2, [r6, #0x40] - str r2, [r6], #4 - add r2, r2, ip - add r2, r2, r8 - add r2, r2, r3, ror #27 - orr r5, sb, sl - and r5, r5, fp - and r4, sb, sl - orr r5, r5, r4 - add r2, r2, r5 - ror sb, sb, #2 - mov ip, fp - mov fp, sl - mov sl, sb - mov sb, r3 - mov r3, r2 - add r7, r7, #1 - cmp r7, #8 - moveq r6, sp - cmp r7, #0x14 - blt _02080DD4 - ldr r8, _02080C6C @ =0xCA62C1D6 - mov r7, #0 -_02080E50: - ldr r2, [r6] - ldr r5, [r6, #8] - ldr r4, [r6, #0x20] - ldr lr, [r6, #0x34] - eor r2, r2, r5 - eor r4, r4, lr - eor r2, r2, r4 - ror r2, r2, #0x1f - str r2, [r6, #0x40] - str r2, [r6], #4 - add r2, r2, ip - add r2, r2, r8 - add r2, r2, r3, ror #27 - eor r4, sb, sl - eor r4, r4, fp - add r2, r2, r4 - ror sb, sb, #2 - mov ip, fp - mov fp, sl - mov sl, sb - mov sb, r3 - mov r3, r2 - add r7, r7, #1 - cmp r7, #4 - moveq r6, sp - cmp r7, #0x14 - blt _02080E50 - ldm r0, {r2, r4, r6, r7, lr} - add r3, r3, r2 - add sb, sb, r4 - add sl, sl, r6 - add fp, fp, r7 - add ip, ip, lr - stm r0, {r3, sb, sl, fp, ip} - ldr lr, [sp, #0x80] - subs lr, lr, #0x40 - str lr, [sp, #0x80] - bgt _02080C80 - add sp, sp, #0x84 - pop {r4, r5, r6, r7, r8, sb, sl, fp, ip, pc} - arm_func_end FUN_02080c70 - - arm_func_start FUN_02080ef0 -FUN_02080ef0: @ 0x02080EF0 - ldr r1, _02080F2C @ =0x04000290 - stmdb sp!, {r4} - ldm r1, {r2, r3, r4, ip} - stm r0!, {r2, r3, r4, ip} - ldrh ip, [r1, #-0x10] - add r1, r1, #0x28 - ldm r1, {r2, r3} - stm r0!, {r2, r3} - and ip, ip, #3 - ldrh r2, [r1, #-8] - strh ip, [r0] - and r2, r2, #1 - strh r2, [r0, #2] - ldm sp!, {r4} - bx lr - .align 2, 0 -_02080F2C: .4byte 0x04000290 - arm_func_end FUN_02080ef0 - - arm_func_start FUN_02080f30 -FUN_02080f30: @ 0x02080F30 - stmdb sp!, {r4} - ldr r1, _02080F68 @ =0x04000290 - ldm r0, {r2, r3, r4, ip} - stm r1, {r2, r3, r4, ip} - ldrh r2, [r0, #0x18] - ldrh r3, [r0, #0x1a] - strh r2, [r1, #-0x10] - strh r3, [r1, #0x20] - add r0, r0, #0x10 - add r1, r1, #0x28 - ldm r0, {r2, r3} - stm r1, {r2, r3} - ldm sp!, {r4} - bx lr - .align 2, 0 -_02080F68: .4byte 0x04000290 - arm_func_end FUN_02080f30 -_02080F6C: - .byte 0xF8, 0x40, 0x2D, 0xE9 - .byte 0x08, 0xD0, 0x4D, 0xE2, 0x01, 0x08, 0xA0, 0xE1, 0x20, 0x38, 0xA0, 0xE1, 0x7F, 0x0C, 0x03, 0xE2 - .byte 0x00, 0x04, 0xA0, 0xE1, 0x00, 0x00, 0x52, 0xE3, 0x20, 0x08, 0xA0, 0xE1, 0x0D, 0x00, 0x00, 0x0A - .byte 0x4C, 0x12, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE3, 0xB8, 0x33, 0xD1, 0xE1, 0x12, 0x20, 0x83, 0xE1 - .byte 0xB8, 0x23, 0xC1, 0xE1, 0x04, 0x30, 0x91, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0x08, 0xD0, 0x8D, 0x02 - .byte 0xF8, 0x80, 0xBD, 0x08, 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x33, 0xFF, 0x2F, 0xE1 - .byte 0x08, 0xD0, 0x8D, 0xE2, 0xF8, 0x80, 0xBD, 0xE8, 0x10, 0x00, 0x50, 0xE3, 0x2B, 0x00, 0x00, 0x1A - .byte 0x0C, 0x12, 0x9F, 0xE5, 0xB0, 0x21, 0xD1, 0xE1, 0x01, 0x20, 0x82, 0xE2, 0xB0, 0x21, 0xC1, 0xE1 - .byte 0xB0, 0x31, 0xD1, 0xE1, 0xB8, 0x21, 0xD1, 0xE1, 0x02, 0x00, 0x53, 0xE1, 0x00, 0x20, 0xA0, 0x23 - .byte 0xB0, 0x21, 0xC1, 0x21, 0xEC, 0x21, 0x9F, 0xE5, 0xE4, 0x11, 0x9F, 0xE5, 0xB0, 0x30, 0xD2, 0xE1 - .byte 0xB2, 0x20, 0xD2, 0xE1, 0xB0, 0xE1, 0xD1, 0xE1, 0xB4, 0x30, 0xCD, 0xE1, 0xB6, 0x20, 0xCD, 0xE1 - .byte 0x04, 0x50, 0x9D, 0xE5, 0x14, 0x70, 0x91, 0xE5, 0x85, 0x23, 0xA0, 0xE1, 0xA2, 0x3F, 0xA0, 0xE1 - .byte 0x05, 0x44, 0xA0, 0xE1, 0x85, 0x22, 0xA0, 0xE1, 0x05, 0xCA, 0xA0, 0xE1, 0x22, 0x2F, 0xA0, 0xE1 - .byte 0x8E, 0x61, 0xA0, 0xE1, 0x2C, 0x5A, 0xA0, 0xE1, 0xB6, 0x50, 0x87, 0xE1, 0x8E, 0x51, 0x87, 0xE0 - .byte 0x24, 0x4A, 0xA0, 0xE1, 0xB2, 0x40, 0xC5, 0xE1, 0xFF, 0x30, 0x03, 0xE2, 0xB4, 0x30, 0xC5, 0xE1 - .byte 0xFF, 0x20, 0x02, 0xE2, 0xB6, 0x20, 0xC5, 0xE1, 0x04, 0x30, 0x91, 0xE5, 0x00, 0x00, 0x53, 0xE3 - .byte 0x08, 0xD0, 0x8D, 0x02, 0xF8, 0x80, 0xBD, 0x08, 0xB0, 0x21, 0xD1, 0xE1, 0x00, 0x10, 0xA0, 0xE3 - .byte 0xFF, 0x20, 0x02, 0xE2, 0x33, 0xFF, 0x2F, 0xE1, 0x08, 0xD0, 0x8D, 0xE2, 0xF8, 0x80, 0xBD, 0xE8 - .byte 0x01, 0x04, 0x11, 0xE3, 0x08, 0xD0, 0x8D, 0x02, 0xF8, 0x80, 0xBD, 0x08, 0xFF, 0x10, 0x03, 0xE2 - .byte 0x04, 0x00, 0x51, 0xE3, 0x01, 0xF1, 0x8F, 0x90, 0x4E, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA - .byte 0x4C, 0x00, 0x00, 0xEA, 0x36, 0x00, 0x00, 0xEA, 0x37, 0x00, 0x00, 0xEA, 0x32, 0x00, 0x00, 0xEA - .byte 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x50, 0xE3, 0x1C, 0x00, 0x00, 0x0A - .byte 0x02, 0x00, 0x50, 0xE3, 0x18, 0x11, 0x9F, 0x05, 0x00, 0x20, 0xA0, 0x03, 0xB6, 0x23, 0xC1, 0x01 - .byte 0x1A, 0x00, 0x00, 0xEA, 0x0C, 0x21, 0x9F, 0xE5, 0x04, 0x11, 0x9F, 0xE5, 0xB0, 0x40, 0xD2, 0xE1 - .byte 0xB2, 0x30, 0xD2, 0xE1, 0x00, 0x20, 0xA0, 0xE3, 0xB0, 0x40, 0xCD, 0xE1, 0xB2, 0x30, 0xCD, 0xE1 - .byte 0x00, 0x40, 0x9D, 0xE5, 0x04, 0x3A, 0xA0, 0xE1, 0x23, 0x5A, 0xA0, 0xE1, 0x04, 0xE4, 0xA0, 0xE1 - .byte 0x84, 0x33, 0xA0, 0xE1, 0xA3, 0xCF, 0xA0, 0xE1, 0x84, 0x32, 0xA0, 0xE1, 0x23, 0x3F, 0xA0, 0xE1 - .byte 0xB8, 0x50, 0xC1, 0xE1, 0x2E, 0xEA, 0xA0, 0xE1, 0xBA, 0xE0, 0xC1, 0xE1, 0xFF, 0xC0, 0x0C, 0xE2 - .byte 0xBC, 0xC0, 0xC1, 0xE1, 0xFF, 0x30, 0x03, 0xE2, 0xBE, 0x30, 0xC1, 0xE1, 0xB6, 0x23, 0xC1, 0xE1 - .byte 0x02, 0x00, 0x00, 0xEA, 0xA8, 0x10, 0x9F, 0xE5, 0x02, 0x20, 0xA0, 0xE3, 0xB6, 0x23, 0xC1, 0xE1 - .byte 0x9C, 0x10, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE3, 0xBA, 0x33, 0xD1, 0xE1, 0x12, 0x20, 0xE0, 0xE1 - .byte 0x02, 0x20, 0x03, 0xE0, 0xBA, 0x23, 0xC1, 0xE1, 0x04, 0x30, 0x91, 0xE5, 0x00, 0x00, 0x53, 0xE3 - .byte 0x08, 0xD0, 0x8D, 0x02, 0xF8, 0x80, 0xBD, 0x08, 0x00, 0x10, 0xA0, 0xE3, 0x01, 0x20, 0xA0, 0xE1 - .byte 0x33, 0xFF, 0x2F, 0xE1, 0x08, 0xD0, 0x8D, 0xE2, 0xF8, 0x80, 0xBD, 0xE8, 0x03, 0x40, 0xA0, 0xE3 - .byte 0x02, 0x00, 0x00, 0xEA, 0x01, 0x40, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA, 0x02, 0x40, 0xA0, 0xE3 - .byte 0x4C, 0x10, 0x9F, 0xE5, 0x01, 0xC0, 0xA0, 0xE3, 0xB8, 0x33, 0xD1, 0xE1, 0x1C, 0x20, 0xE0, 0xE1 - .byte 0x1C, 0x30, 0x83, 0xE1, 0xB8, 0x33, 0xC1, 0xE1, 0xBA, 0x33, 0xD1, 0xE1, 0x02, 0x20, 0x03, 0xE0 - .byte 0xBA, 0x23, 0xC1, 0xE1, 0x04, 0x30, 0x91, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0x08, 0xD0, 0x8D, 0x02 - .byte 0xF8, 0x80, 0xBD, 0x08, 0xFF, 0x10, 0x04, 0xE2, 0x00, 0x20, 0xA0, 0xE3, 0x33, 0xFF, 0x2F, 0xE1 - .byte 0x08, 0xD0, 0x8D, 0xE2, 0xF8, 0x80, 0xBD, 0xE8, 0x90, 0xEA, 0xFF, 0xEB, 0x08, 0xD0, 0x8D, 0xE2 - .byte 0xF8, 0x80, 0xBD, 0xE8, 0x70, 0xB6, 0x2B, 0x02, 0xAA, 0xFF, 0x7F, 0x02 - - arm_func_start FUN_020811ec -FUN_020811ec: @ 0x020811EC - push {r3, r4, r5, lr} - ldr r0, _0208125C @ =0x022BB670 - ldrh r1, [r0] - cmp r1, #0 - popne {r3, r4, r5, pc} - mov r1, #1 - strh r1, [r0] - bl thunk_FUN_0207d9b0 - ldr r0, _0208125C @ =0x022BB670 - mov r1, #0 - strh r1, [r0, #0x10] - str r1, [r0, #4] - str r1, [r0, #0x14] - strh r1, [r0, #0x36] - strh r1, [r0, #0x34] - strh r1, [r0, #0x3a] - strh r1, [r0, #0x38] - mov r5, #6 - mov r4, #1 -_02081238: - mov r0, r5 - mov r1, r4 - bl FUN_0207dafc - cmp r0, #0 - beq _02081238 - ldr r1, _02081260 @ =0x02080F6C - mov r0, #6 - bl FUN_0207dab0 - pop {r3, r4, r5, pc} - .align 2, 0 -_0208125C: .4byte 0x022BB670 -_02081260: .4byte 0x02080F6C - arm_func_end FUN_020811ec - - arm_func_start FUN_02081264 -FUN_02081264: @ 0x02081264 - push {r3, r4, r5, r6, lr} - sub sp, sp, #0x14 - ldr ip, _020812F4 @ =0x027FFC80 - mov r4, r0 - ldrh r1, [ip, #0x58] - ldrh r2, [ip, #0x5a] - ldrh r0, [ip, #0x5e] - cmp r1, #0 - ldrh lr, [ip, #0x60] - cmpeq r0, #0 - cmpeq r2, #0 - ldrb r3, [ip, #0x5c] - ldrb r5, [ip, #0x5d] - ldrb r6, [ip, #0x62] - ldrb ip, [ip, #0x63] - cmpeq lr, #0 - beq _020812C8 - str r5, [sp] - stmib sp, {r0, lr} - str r6, [sp, #0xc] - mov r0, r4 - str ip, [sp, #0x10] - bl FUN_020816c4 - cmp r0, #0 - beq _020812E8 -_020812C8: - mov r0, #0 - strh r0, [r4] - strh r0, [r4, #2] - strh r0, [r4, #4] - strh r0, [r4, #6] - add sp, sp, #0x14 - mov r0, #1 - pop {r3, r4, r5, r6, pc} -_020812E8: - mov r0, #1 - add sp, sp, #0x14 - pop {r3, r4, r5, r6, pc} - .align 2, 0 -_020812F4: .4byte 0x027FFC80 - arm_func_end FUN_02081264 - - arm_func_start FUN_020812f8 -FUN_020812f8: @ 0x020812F8 - push {r4, lr} - movs r4, r0 - bne _02081314 - ldr r0, _02081414 @ =0x022BB670 - mov r1, #0 - strh r1, [r0, #0x34] - pop {r4, pc} -_02081314: - bl EnableIrqFlag - ldrsh r2, [r4, #4] - cmp r2, #0 - beq _02081378 - ldr r3, _02081418 @ =0x04000280 - mov r1, #0 - strh r1, [r3] - mov r1, #0x10000000 - str r1, [r3, #0x10] - str r2, [r3, #0x18] - mov r1, #0 - str r1, [r3, #0x1c] - ldrsh r2, [r4] - ldr r1, _02081414 @ =0x022BB670 - str r2, [r1, #0x1c] - ldrsh r2, [r4, #4] - str r2, [r1, #0x20] -_02081358: - ldrh r1, [r3] - tst r1, #0x8000 - bne _02081358 - ldr r2, _0208141C @ =0x040002A0 - ldr r1, _02081414 @ =0x022BB670 - ldr r2, [r2] - str r2, [r1, #0x24] - b _0208138C -_02081378: - ldr r1, _02081414 @ =0x022BB670 - mov r2, #0 - str r2, [r1, #0x1c] - str r2, [r1, #0x20] - str r2, [r1, #0x24] -_0208138C: - ldrsh r2, [r4, #6] - cmp r2, #0 - beq _020813EC - ldr r3, _02081418 @ =0x04000280 - mov r1, #0 - strh r1, [r3] - mov r1, #0x10000000 - str r1, [r3, #0x10] - str r2, [r3, #0x18] - mov r1, #0 - str r1, [r3, #0x1c] - ldrsh r2, [r4, #2] - ldr r1, _02081414 @ =0x022BB670 - str r2, [r1, #0x28] - ldrsh r2, [r4, #6] - str r2, [r1, #0x2c] -_020813CC: - ldrh r1, [r3] - tst r1, #0x8000 - bne _020813CC - ldr r2, _0208141C @ =0x040002A0 - ldr r1, _02081414 @ =0x022BB670 - ldr r2, [r2] - str r2, [r1, #0x30] - b _02081400 -_020813EC: - ldr r1, _02081414 @ =0x022BB670 - mov r2, #0 - str r2, [r1, #0x28] - str r2, [r1, #0x2c] - str r2, [r1, #0x30] -_02081400: - bl SetIrqFlag - ldr r0, _02081414 @ =0x022BB670 - mov r1, #1 - strh r1, [r0, #0x34] - pop {r4, pc} - .align 2, 0 -_02081414: .4byte 0x022BB670 -_02081418: .4byte 0x04000280 -_0208141C: .4byte 0x040002A0 - arm_func_end FUN_020812f8 - - arm_func_start FUN_02081420 -FUN_02081420: @ 0x02081420 - push {r4, lr} - bl EnableIrqFlag - mov r4, r0 - mov r0, #6 - mov r1, #0x3000000 - mov r2, #0 - bl FUN_0207db20 - cmp r0, #0 - movge r0, #1 - movlt r0, #0 - cmp r0, #0 - bne _02081488 - mov r0, r4 - bl SetIrqFlag - ldr r0, _020814B0 @ =0x022BB670 - ldrh r1, [r0, #0x38] - orr r1, r1, #1 - strh r1, [r0, #0x38] - ldr r3, [r0, #4] - cmp r3, #0 - popeq {r4, pc} - mov r0, #0 - mov r2, r0 - mov r1, #4 - blx r3 - pop {r4, pc} -_02081488: - ldr r1, _020814B0 @ =0x022BB670 - mov r0, r4 - ldrh r2, [r1, #0x3a] - orr r2, r2, #1 - strh r2, [r1, #0x3a] - ldrh r2, [r1, #0x38] - bic r2, r2, #1 - strh r2, [r1, #0x38] - bl SetIrqFlag - pop {r4, pc} - .align 2, 0 -_020814B0: .4byte 0x022BB670 - arm_func_end FUN_02081420 - - arm_func_start FUN_020814b4 -FUN_020814b4: @ 0x020814B4 - push {r3, lr} - ldr r2, _020814FC @ =0x022BB670 - ldrh r1, [r2, #0x38] - tst r1, #1 - movne r0, #1 - popne {r3, pc} - ldrh ip, [r2, #8] - ldrh r3, [r2, #0xa] - mov r1, r0 - strh ip, [r0] - strh r3, [r0, #2] - ldrh r3, [r2, #0xc] - ldrh r2, [r2, #0xe] - strh r3, [r0, #4] - strh r2, [r0, #6] - bl FUN_020818b0 - mov r0, #0 - pop {r3, pc} - .align 2, 0 -_020814FC: .4byte 0x022BB670 - arm_func_end FUN_020814b4 - - arm_func_start FUN_02081500 -FUN_02081500: @ 0x02081500 - push {r4, lr} - mov r4, r0 - mov r0, #1 - bl FUN_020819d4 - mov r0, r4 - bl FUN_020814b4 - pop {r4, pc} - arm_func_end FUN_02081500 - - arm_func_start FUN_0208151c -FUN_0208151c: @ 0x0208151C - push {r3, r4, r5, lr} - ldr ip, _02081618 @ =0x022BB670 - mov lr, #0 - str r2, [ip, #0x14] - mov r5, r1 - strh lr, [ip, #0x10] - strh r5, [ip, #0x12] - mov r4, r0 - strh r3, [ip, #0x18] - cmp r3, #0 - bls _02081564 - mov r1, lr -_0208154C: - ldr r0, [ip, #0x14] - add r0, r0, lr, lsl #3 - add lr, lr, #1 - strh r1, [r0, #4] - cmp lr, r3 - blo _0208154C -_02081564: - bl EnableIrqFlag - and r1, r5, #0xff - orr r1, r1, #0x100 - mov r5, r0 - orr r1, r1, #0x2000000 - mov r0, #6 - mov r2, #0 - bl FUN_0207db20 - cmp r0, #0 - movlt r0, #0 - blt _020815B0 - orr r1, r4, #0x10000 - orr r1, r1, #0x1000000 - mov r0, #6 - mov r2, #0 - bl FUN_0207db20 - cmp r0, #0 - movlt r0, #0 - movge r0, #1 -_020815B0: - tst r0, #0xff - bne _020815F0 - mov r0, r5 - bl SetIrqFlag - ldr r0, _02081618 @ =0x022BB670 - ldrh r1, [r0, #0x38] - orr r1, r1, #2 - strh r1, [r0, #0x38] - ldr r3, [r0, #4] - cmp r3, #0 - popeq {r3, r4, r5, pc} - mov r0, #1 - mov r1, #4 - mov r2, #0 - blx r3 - pop {r3, r4, r5, pc} -_020815F0: - ldr r1, _02081618 @ =0x022BB670 - mov r0, r5 - ldrh r2, [r1, #0x3a] - orr r2, r2, #2 - strh r2, [r1, #0x3a] - ldrh r2, [r1, #0x38] - bic r2, r2, #2 - strh r2, [r1, #0x38] - bl SetIrqFlag - pop {r3, r4, r5, pc} - .align 2, 0 -_02081618: .4byte 0x022BB670 - arm_func_end FUN_0208151c -_0208161C: - .byte 0x10, 0x40, 0x2D, 0xE9 - .byte 0x6F, 0xE8, 0xFF, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0x7C, 0x10, 0x9F, 0xE5, 0x06, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x39, 0xF1, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0xA3 - .byte 0x00, 0x00, 0xA0, 0xB3, 0x00, 0x00, 0x50, 0xE3, 0x0D, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x68, 0xE8, 0xFF, 0xEB, 0x54, 0x00, 0x9F, 0xE5, 0xB8, 0x13, 0xD0, 0xE1, 0x04, 0x10, 0x81, 0xE3 - .byte 0xB8, 0x13, 0xC0, 0xE1, 0x04, 0x30, 0x90, 0xE5, 0x00, 0x00, 0x53, 0xE3, 0x10, 0x80, 0xBD, 0x08 - .byte 0x02, 0x00, 0xA0, 0xE3, 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x33, 0xFF, 0x2F, 0xE1 - .byte 0x10, 0x80, 0xBD, 0xE8, 0x24, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0xBA, 0x23, 0xD1, 0xE1 - .byte 0x04, 0x20, 0x82, 0xE3, 0xBA, 0x23, 0xC1, 0xE1, 0xB8, 0x23, 0xD1, 0xE1, 0x04, 0x20, 0xC2, 0xE3 - .byte 0xB8, 0x23, 0xC1, 0xE1, 0x53, 0xE8, 0xFF, 0xEB, 0x10, 0x80, 0xBD, 0xE8, 0x00, 0x02, 0x00, 0x03 - .byte 0x70, 0xB6, 0x2B, 0x02, 0x04, 0x00, 0x9F, 0xE5, 0xB0, 0x01, 0xD0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x70, 0xB6, 0x2B, 0x02 - - arm_func_start FUN_020816c4 -FUN_020816c4: @ 0x020816C4 + arm_func_start ov00_022DDAE0 +ov00_022DDAE0: @ 0x022DDAE0 push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sb, r1 - mov r8, r2 - cmp sb, #0x1000 - cmplo r8, #0x1000 - ldrhlo r4, [sp, #0x2c] - mov r7, r3 mov sl, r0 - cmplo r4, #0x1000 - ldrhlo r3, [sp, #0x30] - cmplo r3, #0x1000 - movhs r0, #1 - pophs {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - cmp r7, #0x100 - ldrhlo r2, [sp, #0x34] - cmplo r2, #0x100 - ldrhlo r1, [sp, #0x28] - cmplo r1, #0xc0 - ldrhlo r0, [sp, #0x38] - cmplo r0, #0xc0 - movhs r0, #1 - pophs {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - cmp r7, r2 - cmpne r1, r0 - cmpne sb, r4 - cmpne r8, r3 + add r0, sl, #0x1000 + ldr r4, [r0, #0x9f4] + add r0, sl, #0x1f8 + cmp r4, #0 + ldreq r7, _022DDBE4 @ =0x02318F50 + mov r8, r2 + add r4, sl, #0x1000 + add r6, r0, #0x1800 + ldr r0, [r4, #0x9f4] + mov fp, r3 + add r5, r0, #1 + mov r2, #0 + mov sb, r1 + ldrne r7, _022DDBE8 @ =0x02318F54 + mov r0, r8 + mov r1, fp + mov r3, r2 + str r5, [r4, #0x9f4] + bl ov00_022DFF4C + mov r5, r0 + mov r0, r7 + bl FUN_02089678 + mov r4, r0 + mov r0, sb + bl FUN_02089678 + sub r1, r4, #2 + add r2, r1, r0 + ldmib r6, {r0, r1} + add r2, r5, r2 + sub r1, r1, r0 + cmp r2, r1 + ble _022DDB90 + sub r2, r2, r1 + mov r0, sl + mov r1, r6 + add r2, r2, #1 + bl ov00_022DDD18 + cmp r0, #0 moveq r0, #1 popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - bl EnableIrqFlag - ldrh lr, [sp, #0x2c] - ldrh ip, [sp, #0x34] - ldr r3, _020818A8 @ =0x04000280 - sub r1, sb, lr - mov r2, #0 - ldrh r4, [sp, #0x38] - ldrh r5, [sp, #0x28] - ldrh r6, [sp, #0x30] - strh r2, [r3] - lsl r1, r1, #8 - str r1, [r3, #0x10] - sub r1, r7, ip - str r1, [r3, #0x18] - mov r1, r2 - sub r2, r5, r4 - str r1, [r3, #0x1c] - sub r1, r8, r6 - str r2, [sp] -_02081780: - ldrh r2, [r3] - tst r2, #0x8000 - bne _02081780 - lsl fp, r1, #8 - ldr r1, _020818AC @ =0x040002A0 - ldr r2, [r1] - mov r1, #0 - strh r1, [r3] - ldr r1, _020818AC @ =0x040002A0 - cmp r2, #0x8000 - str fp, [r1, #-0x10] - sub r3, r1, #8 - ldr r1, [sp] - mov fp, #0 - stm r3, {r1, fp} - bge _020817D0 + ldmib r6, {r0, r1} + sub r1, r1, r0 +_022DDB90: + mov r2, r7 + mov r3, sb + bl FUN_0207911C + ldr r2, [r6, #4] mov r1, fp - sub r1, r1, #0x8000 - cmp r2, r1 - bge _020817DC -_020817D0: - bl SetIrqFlag - mov r0, #1 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_020817DC: - strh r2, [sl, #4] - ldrsh r2, [sl, #4] - add r1, r7, ip - add r3, sb, lr - mul r1, r2, r1 - rsb r1, r1, r3, lsl #8 - lsl r1, r1, #9 - asr r2, r1, #0x10 - cmp r2, #0x8000 - bge _02081814 - mov r1, fp - sub r1, r1, #0x8000 - cmp r2, r1 - bge _02081820 -_02081814: - bl SetIrqFlag - mov r0, #1 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_02081820: - ldr r1, _020818AC @ =0x040002A0 - strh r2, [sl] - sub r2, r1, #0x20 -_0208182C: - ldrh r1, [r2] - tst r1, #0x8000 - bne _0208182C - ldr r1, _020818AC @ =0x040002A0 - ldr r7, [r1] - bl SetIrqFlag - cmp r7, #0x8000 - bge _0208185C - mov r1, #0x8000 - rsb r1, r1, #0 - cmp r7, r1 - bge _02081864 -_0208185C: - mov r0, #1 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_02081864: - strh r7, [sl, #6] - ldrsh r2, [sl, #6] - add r0, r5, r4 - add r3, r8, r6 - mul r0, r2, r0 - rsb r0, r0, r3, lsl #8 - lsl r0, r0, #9 - asr r0, r0, #0x10 - cmp r0, #0x8000 - bge _02081894 - cmp r0, r1 - bge _0208189C -_02081894: - mov r0, #1 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0208189C: - strh r0, [sl, #2] + add r2, r2, r0 + str r2, [r6, #4] + ldr r0, [r6, #8] + sub r3, r0, r2 + mov r0, r8 + sub r3, r3, #1 + bl ov00_022DFF4C + cmp r0, #0 + movlt r0, #1 + poplt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r6, #4] mov r0, #0 + add r1, r1, r5 + str r1, [r6, #4] + strb r0, [r1] pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 -_020818A8: .4byte 0x04000280 -_020818AC: .4byte 0x040002A0 - arm_func_end FUN_020816c4 +_022DDBE4: .4byte 0x02318F50 +_022DDBE8: .4byte 0x02318F54 + arm_func_end ov00_022DDAE0 - arm_func_start FUN_020818b0 -FUN_020818b0: @ 0x020818B0 - push {r4, r5, r6, lr} - ldr r2, _020819CC @ =0x022BB670 - ldrh r2, [r2, #0x34] - cmp r2, #0 - bne _020818E8 - ldrh r3, [r1] - ldrh r2, [r1, #2] - strh r3, [r0] - strh r2, [r0, #2] - ldrh r2, [r1, #4] - ldrh r1, [r1, #6] - strh r2, [r0, #4] - strh r1, [r0, #6] - pop {r4, r5, r6, pc} -_020818E8: - ldrh r3, [r1, #4] - ldr r2, _020819D0 @ =0x022BB68C - strh r3, [r0, #4] - ldrh r3, [r1, #6] - strh r3, [r0, #6] - ldrh r3, [r1, #4] - cmp r3, #0 - bne _02081918 - mov r1, #0 - strh r1, [r0] - strh r1, [r0, #2] - pop {r4, r5, r6, pc} -_02081918: - ldrh r4, [r1] - ldr r3, [r2] - ldr lr, [r2, #8] - lsl r4, r4, #2 - subs ip, r4, r3 - asr r3, r3, #0x1f - rsc r3, r3, r4, asr #31 - umull r6, r5, lr, ip - mla r5, lr, r3, r5 - asr r3, lr, #0x1f - mla r5, r3, ip, r5 - lsr r3, r6, #0x16 - orr r3, r3, r5, lsl #10 - strh r3, [r0] - ldrsh r3, [r0] - cmp r3, #0 - movlt r3, #0 - strhlt r3, [r0] - blt _02081970 - cmp r3, #0xff - movgt r3, #0xff - strhgt r3, [r0] -_02081970: - ldrh r3, [r1, #2] - ldr r1, [r2, #0xc] - ldr ip, [r2, #0x14] - lsl r2, r3, #2 - subs r3, r2, r1 - asr r1, r1, #0x1f - rsc r1, r1, r2, asr #31 - umull r4, lr, ip, r3 - mla lr, ip, r1, lr - asr r1, ip, #0x1f - mla lr, r1, r3, lr - lsr r1, r4, #0x16 - orr r1, r1, lr, lsl #10 - strh r1, [r0, #2] - ldrsh r1, [r0, #2] - cmp r1, #0 - movlt r1, #0 - strhlt r1, [r0, #2] - poplt {r4, r5, r6, pc} - cmp r1, #0xbf - movgt r1, #0xbf - strhgt r1, [r0, #2] - pop {r4, r5, r6, pc} - .align 2, 0 -_020819CC: .4byte 0x022BB670 -_020819D0: .4byte 0x022BB68C - arm_func_end FUN_020818b0 - - arm_func_start FUN_020819d4 -FUN_020819d4: @ 0x020819D4 - ldr r1, _020819E8 @ =0x022BB670 -_020819D8: - ldrh r2, [r1, #0x3a] - tst r2, r0 - bne _020819D8 - bx lr - .align 2, 0 -_020819E8: .4byte 0x022BB670 - arm_func_end FUN_020819d4 -_020819EC: - .byte 0x08, 0x10, 0x9F, 0xE5 - .byte 0xB8, 0x13, 0xD1, 0xE1, 0x00, 0x00, 0x01, 0xE0, 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0xB6, 0x2B, 0x02 - - arm_func_start FUN_02081a00 -FUN_02081a00: @ 0x02081A00 - push {r3, lr} - bl EnableIrqFlag - ldr r1, _02081A38 @ =0x022BB6AC - ldr r2, [r1, #0x1c] - cmp r2, #0 - beq _02081A24 - bl SetIrqFlag - mov r0, #0 - pop {r3, pc} -_02081A24: - mov r2, #1 - str r2, [r1, #0x1c] - bl SetIrqFlag - mov r0, #1 - pop {r3, pc} - .align 2, 0 -_02081A38: .4byte 0x022BB6AC - arm_func_end FUN_02081a00 - - arm_func_start FUN_02081a3c -FUN_02081a3c: @ 0x02081A3C - push {r4, lr} - ldr r0, _02081A74 @ =0x022BB6AC - ldr r4, _02081A78 @ =0x022BB6C8 - ldr r0, [r0, #0x1c] - cmp r0, #0 - popeq {r4, pc} -_02081A54: - bl GetIrqFlag - cmp r0, #0x80 - bne _02081A64 - bl FUN_0207dba8 -_02081A64: - ldr r0, [r4] - cmp r0, #0 - bne _02081A54 - pop {r4, pc} - .align 2, 0 -_02081A74: .4byte 0x022BB6AC -_02081A78: .4byte 0x022BB6C8 - arm_func_end FUN_02081a3c -_02081A7C: - .byte 0x00, 0x00, 0x81, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02081a84 -FUN_02081a84: @ 0x02081A84 - push {r3, lr} - ldr r2, _02081AC0 @ =0x022BB6AC - ldr r1, [r2, #0x1c] - ldr ip, [r2, #0x20] - cmp r1, #0 - ldr r1, [r2, #0x24] - movne r3, #0 - strne r3, [r2, #0x1c] - cmp ip, #0 - popeq {r3, pc} - ldr r2, _02081AC0 @ =0x022BB6AC - mov r3, #0 - str r3, [r2, #0x20] - blx ip - pop {r3, pc} - .align 2, 0 -_02081AC0: .4byte 0x022BB6AC - arm_func_end FUN_02081a84 - - arm_func_start FUN_02081ac4 -FUN_02081ac4: @ 0x02081AC4 - push {r3, r4, r5, lr} - ldr r0, _02081B54 @ =0x022BB6AC - ldrh r1, [r0] - cmp r1, #0 - popne {r3, r4, r5, pc} - mov r1, #1 - strh r1, [r0] - mov r1, #0 - str r1, [r0, #0x1c] - str r1, [r0, #0x20] - bl thunk_FUN_0207d9b0 - mov r5, #8 - mov r4, #1 -_02081AF8: - mov r0, r5 - mov r1, r4 - bl FUN_0207dafc - cmp r0, #0 - beq _02081AF8 - ldr r1, _02081B58 @ =FUN_02081b68 - mov r0, #8 - bl FUN_0207dab0 - mov r3, #0 - ldr r0, _02081B5C @ =0x022BB6F0 - mov r2, r3 -_02081B24: - lsl r1, r3, #3 - add r3, r3, #1 - strh r2, [r0, r1] - cmp r3, #5 - blt _02081B24 - ldr r0, _02081B60 @ =0x022BB6D8 - bl FUN_0207a030 - ldr r1, _02081B64 @ =0x027FFC3C - ldr r0, _02081B54 @ =0x022BB6AC - ldr r1, [r1] - str r1, [r0, #0x10] - pop {r3, r4, r5, pc} - .align 2, 0 -_02081B54: .4byte 0x022BB6AC -_02081B58: .4byte FUN_02081b68 -_02081B5C: .4byte 0x022BB6F0 -_02081B60: .4byte 0x022BB6D8 -_02081B64: .4byte 0x027FFC3C - arm_func_end FUN_02081ac4 - - arm_func_start FUN_02081b68 -FUN_02081b68: @ 0x02081B68 - push {r3, lr} - cmp r2, #0 - beq _02081B80 - mov r0, #2 - bl FUN_02081a84 - pop {r3, pc} -_02081B80: - and r0, r1, #0x7f00 - lsl r0, r0, #8 - lsr r2, r0, #0x10 - and r0, r1, #0xff - cmp r2, #0x70 - blo _02081BD0 - cmp r2, #0x74 - bhi _02081BD0 - ldr r1, _02081C24 @ =0x022BB6F4 - sub r2, r2, #0x70 - ldr r1, [r1, r2, lsl #3] - and r0, r0, #0xff - cmp r1, #0 - strhne r0, [r1] - lsl r1, r2, #3 - ldr r0, _02081C28 @ =0x022BB6F0 - mov r2, #1 - strh r2, [r0, r1] - mov r0, #0 - b _02081C1C -_02081BD0: - cmp r2, #0x60 - bne _02081BE8 - ldr r1, _02081C2C @ =0x022BB6AC - mov r2, #1 - str r2, [r1, #4] - b _02081C1C -_02081BE8: - cmp r2, #0x62 - bne _02081C00 - ldr r1, _02081C2C @ =0x022BB6AC - mov r2, #1 - str r2, [r1, #8] - b _02081C1C -_02081C00: - cmp r2, #0x67 - bne _02081C1C - ldr r1, _02081C2C @ =0x022BB6AC - ldr r1, [r1, #0x28] - cmp r1, #0 - strne r0, [r1] - mov r0, #0 -_02081C1C: - bl FUN_02081a84 - pop {r3, pc} - .align 2, 0 -_02081C24: .4byte 0x022BB6F4 -_02081C28: .4byte 0x022BB6F0 -_02081C2C: .4byte 0x022BB6AC - arm_func_end FUN_02081b68 - - arm_func_start FUN_02081c30 -FUN_02081c30: @ 0x02081C30 - push {r3, r4, r5, lr} - mov r5, r0 - mov r4, r1 - bl FUN_02081a00 - cmp r0, #0 - moveq r0, #1 - popeq {r3, r4, r5, pc} - ldr r1, _02081CB8 @ =0x022BB6AC - mov r2, #0 - ldr r0, _02081CBC @ =0x03006000 - str r2, [r1, #4] - bl FUN_020820bc - ldr r0, _02081CB8 @ =0x022BB6AC -_02081C64: - ldr r1, [r0, #4] - cmp r1, #0 - beq _02081C64 - ldr ip, _02081CB8 @ =0x022BB6AC - mov r0, #0 - str r0, [ip, #4] - mov r2, r0 - mov r1, #2 - mov r3, #1 - str r0, [ip, #8] - bl FUN_02082328 - and r0, r5, #0xff - orr r0, r0, #0x6100 - orr r0, r0, #0x2000000 - bl FUN_020820bc - ldr r1, _02081CC0 @ =0x01010000 - lsl r0, r4, #0x10 - orr r0, r1, r0, lsr #16 - bl FUN_020820bc - mov r0, #0 - pop {r3, r4, r5, pc} - .align 2, 0 -_02081CB8: .4byte 0x022BB6AC -_02081CBC: .4byte 0x03006000 -_02081CC0: .4byte 0x01010000 - arm_func_end FUN_02081c30 - - arm_func_start FUN_02081cc4 -FUN_02081cc4: @ 0x02081CC4 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl FUN_02081a00 - cmp r0, #0 - moveq r0, #1 - popeq {r4, r5, r6, pc} - lsr r0, r6, #0x10 - and r0, r0, #0xff - ldr r1, _02081D1C @ =0x022BB6AC - orr r0, r0, #0x6300 - str r5, [r1, #0x20] - orr r0, r0, #0x2000000 - str r4, [r1, #0x24] - bl FUN_020820bc - ldr r1, _02081D20 @ =0x01010000 - lsl r0, r6, #0x10 - orr r0, r1, r0, lsr #16 - bl FUN_020820bc - mov r0, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_02081D1C: .4byte 0x022BB6AC -_02081D20: .4byte 0x01010000 - arm_func_end FUN_02081cc4 - - arm_func_start FUN_02081d24 -FUN_02081d24: @ 0x02081D24 + arm_func_start ov00_022DDBEC +ov00_022DDBEC: @ 0x022DDBEC push {r3, r4, r5, r6, r7, lr} - mov r5, r0 - mov r4, r1 - mov r7, r2 - mov r6, r3 - bl FUN_02081a00 + mov r7, r0 + mov r6, r1 + add r1, r7, #0x1f8 + mov r0, r6 + add r5, r1, #0x1800 + bl FUN_02089678 + mov r4, r0 + ldmib r5, {r0, r1} + sub r1, r1, r0 + cmp r4, r1 + ble _022DDC44 + sub r2, r4, r1 + mov r0, r7 + mov r1, r5 + add r2, r2, #1 + bl ov00_022DDD18 cmp r0, #0 moveq r0, #1 popeq {r3, r4, r5, r6, r7, pc} - ldr r1, _02081D84 @ =0x022BB6AC - and r0, r5, #0xff - str r7, [r1, #0x20] - orr r0, r0, #0x6500 - ldr r2, _02081D88 @ =0x022BB6F0 - str r6, [r1, #0x24] - lsl r3, r5, #3 - mov ip, #0 - ldr r1, _02081D8C @ =0x022BB6F4 - strh ip, [r2, r3] - orr r0, r0, #0x3000000 - str r4, [r1, r5, lsl #3] - bl FUN_020820bc + ldmib r5, {r0, r1} + sub r1, r1, r0 +_022DDC44: + ldr r2, _022DDC70 @ =0x02318F5C + mov r3, r6 + bl FUN_0207911C + cmp r0, r4 + movne r0, #1 + popne {r3, r4, r5, r6, r7, pc} + ldr r1, [r5, #4] + add r0, r1, r0 + str r0, [r5, #4] mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 -_02081D84: .4byte 0x022BB6AC -_02081D88: .4byte 0x022BB6F0 -_02081D8C: .4byte 0x022BB6F4 - arm_func_end FUN_02081d24 +_022DDC70: .4byte 0x02318F5C + arm_func_end ov00_022DDBEC +_022DDC74: + .byte 0x02, 0x09, 0x10, 0xE3, 0x02, 0x09, 0xC0, 0x13, 0x1E, 0xFF, 0x2F, 0xE1 - arm_func_start FUN_02081d90 -FUN_02081d90: @ 0x02081D90 - push {r3, lr} - ldr r2, _02081DB4 @ =0x02081A7C - add r3, sp, #0 - bl FUN_02081d24 + arm_func_start ov00_022DDC80 +ov00_022DDC80: @ 0x022DDC80 + push {r3, r4, r5, lr} + movs r4, r2 + add r0, r0, #0x1000 + ldr r2, [r0, #0x10] + mov r5, r1 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldr r0, _022DDCD4 @ =0x02318F60 + mov r1, r4 + blx r2 + str r0, [r5] cmp r0, #0 - popne {r3, pc} - bl FUN_02081a3c + moveq r0, #0 + popeq {r3, r4, r5, pc} + str r0, [r5, #4] + str r4, [r5, #0xc] + ldr r0, [r5] + add r0, r0, r4 + str r0, [r5, #8] + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_022DDCD4: .4byte 0x02318F60 + arm_func_end ov00_022DDC80 + + arm_func_start ov00_022DDCD8 +ov00_022DDCD8: @ 0x022DDCD8 + push {r4, lr} + mov r4, r1 + ldr r1, [r4] + add r0, r0, #0x1000 + cmp r1, #0 + ldr r3, [r0, #0x14] + beq _022DDD00 + ldr r0, _022DDD14 @ =0x02318F74 + mov r2, #0 + blx r3 +_022DDD00: + mov r0, r4 + mov r1, #0 + mov r2, #0x10 + bl FUN_0207C40C + pop {r4, pc} + .align 2, 0 +_022DDD14: .4byte 0x02318F74 + arm_func_end ov00_022DDCD8 + + arm_func_start ov00_022DDD18 +ov00_022DDD18: @ 0x022DDD18 + push {r3, r4, r5, r6, r7, lr} + add r0, r0, #0x1000 + ldr r7, [r0, #0x14] + mov r5, r2 + mov r6, r1 + cmp r5, #0 + ldr r2, [r0, #0x10] + movle r0, #0 + pople {r3, r4, r5, r6, r7, pc} + ldr r1, [r6, #0xc] + ldr r0, _022DDDB8 @ =0x02318F88 + add r1, r1, r5 + blx r2 + movs r4, r0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldr r0, [r6] + ldr r2, [r6, #0xc] + mov r1, r4 + bl FUN_0207C4C8 + ldr r1, [r6] + ldr r0, _022DDDBC @ =0x02318F74 + mov r2, #0 + blx r7 + cmp r4, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldm r6, {r0, r1} + sub r0, r4, r0 + add r0, r1, r0 + str r0, [r6, #4] + ldr r1, [r6, #0xc] + mov r0, #1 + add r1, r1, r5 + str r1, [r6, #0xc] + str r4, [r6] + ldr r1, [r6, #0xc] + add r1, r4, r1 + str r1, [r6, #8] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022DDDB8: .4byte 0x02318F88 +_022DDDBC: .4byte 0x02318F74 + arm_func_end ov00_022DDD18 + + arm_func_start ov00_022DDDC0 +ov00_022DDDC0: @ 0x022DDDC0 + push {r4, r5, r6, lr} + mov r6, r1 + mov r5, r0 + mov r0, r6 + mov r4, #0 + bl FUN_02089678 + cmp r0, #0x100 + movhs r0, r4 + pophs {r4, r5, r6, pc} + add r0, r5, #0x24 + mov r1, r6 + add r0, r0, #0x1000 + mov r2, #0x100 + bl FUN_0208975C + mov r0, r6 + bl FUN_02089678 + add r1, r5, #0x24 + mov r6, r0 + add r0, r1, #0x1000 + bl FUN_02089678 + cmp r6, r0 + movne r0, r4 + popne {r4, r5, r6, pc} + add r0, r5, #0x24 + ldr r1, _022DDF04 @ =0x02318F98 + add r0, r0, #0x1000 + bl FUN_02089A70 + cmp r0, #0 + beq _022DDE5C + add r0, r5, #0x2b + add r1, r0, #0x1000 + add r0, r5, #0x1000 + str r1, [r0, #0x124] + mov r1, r4 + str r1, [r0, #0x130] + add r0, r5, #0x1100 + mov r1, #0x50 + strh r1, [r0, #0x34] + b _022DDE98 +_022DDE5C: + add r0, r5, #0x24 + ldr r1, _022DDF08 @ =0x02318FA0 + add r0, r0, #0x1000 + bl FUN_02089A70 + cmp r0, #0 + moveq r0, r4 + popeq {r4, r5, r6, pc} + add r2, r0, #8 + add r0, r5, #0x1000 + mov r1, #1 + str r2, [r0, #0x124] + str r1, [r0, #0x130] + rsb r1, r1, #0x1bc + add r0, r5, #0x1100 + strh r1, [r0, #0x34] +_022DDE98: + add r0, r5, #0x1000 + ldr r0, [r0, #0x124] + ldr r1, _022DDF0C @ =0x02318FAC + bl FUN_02089A70 + cmp r0, #0 + movne r1, #0 + strbne r1, [r0] + addne r4, r0, #1 + add r0, r5, #0x1000 + ldr r0, [r0, #0x124] + ldr r1, _022DDF10 @ =0x02318FB0 + bl FUN_02089A70 + cmp r0, #0 + mov r1, #0 + addeq r0, r5, #0x1000 + strbne r1, [r0] + addne r1, r0, #1 + addne r0, r5, #0x1000 + str r1, [r0, #0x128] + cmp r4, #0 + beq _022DDEFC + mov r0, r4 + bl FUN_0208B360 + add r1, r5, #0x1100 + strh r0, [r1, #0x34] +_022DDEFC: + mov r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 +_022DDF04: .4byte 0x02318F98 +_022DDF08: .4byte 0x02318FA0 +_022DDF0C: .4byte 0x02318FAC +_022DDF10: .4byte 0x02318FB0 + arm_func_end ov00_022DDDC0 + + arm_func_start ov00_022DDF14 +ov00_022DDF14: @ 0x022DDF14 + push {r4, r5, r6, r7, r8, lr} + mov r8, r1 + add r0, r0, #0x1000 + ldmib r8, {r1, r4} + cmp r4, r1 + ldr r4, [r0, #0x10] + ldr r5, [r0, #0x14] + mov r7, r2 + mov r6, r3 + movgt r0, #0 + popgt {r4, r5, r6, r7, r8, pc} + mov r0, r7 + bl FUN_02089678 + mov r1, r0 + ldr r0, _022DE058 @ =0x02318FB4 + add r1, r1, #1 + blx r4 + ldr r2, [r8] + ldr r1, [r8, #8] + str r0, [r2, r1, lsl #3] + ldr r1, [r8, #8] + ldr r2, [r8] + ldr r0, [r2, r1, lsl #3] + cmp r0, #0 + beq _022DDFF0 + mov r0, r6 + bl FUN_02089678 + mov r1, r0 + ldr r0, _022DE05C @ =0x02318FD4 + add r1, r1, #1 + blx r4 + ldr r2, [r8] + ldr r1, [r8, #8] + add r1, r2, r1, lsl #3 + str r0, [r1, #4] + ldr r1, [r8, #8] + ldr r2, [r8] + add r0, r2, r1, lsl #3 + ldr r0, [r0, #4] + cmp r0, #0 + beq _022DDFF0 + ldr r0, [r2, r1, lsl #3] + mov r1, r7 + bl FUN_02089694 + ldr r2, [r8] + ldr r0, [r8, #8] + mov r1, r6 + add r0, r2, r0, lsl #3 + ldr r0, [r0, #4] + bl FUN_02089694 + ldr r1, [r8, #8] + mov r0, #1 + add r1, r1, #1 + str r1, [r8, #8] + pop {r4, r5, r6, r7, r8, pc} +_022DDFF0: + ldr r1, [r2, r1, lsl #3] + cmp r1, #0 + beq _022DE018 + ldr r0, _022DE060 @ =0x02318FF4 + mov r2, #0 + blx r5 + ldr r1, [r8] + ldr r0, [r8, #8] + mov r2, #0 + str r2, [r1, r0, lsl #3] +_022DE018: + ldr r1, [r8] + ldr r0, [r8, #8] + add r0, r1, r0, lsl #3 + ldr r1, [r0, #4] + cmp r1, #0 + beq _022DE050 + ldr r0, _022DE064 @ =0x02319010 + mov r2, #0 + blx r5 + ldr r1, [r8] + ldr r0, [r8, #8] + mov r2, #0 + add r0, r1, r0, lsl #3 + str r2, [r0, #4] +_022DE050: + mov r0, #0 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022DE058: .4byte 0x02318FB4 +_022DE05C: .4byte 0x02318FD4 +_022DE060: .4byte 0x02318FF4 +_022DE064: .4byte 0x02319010 + arm_func_end ov00_022DDF14 + + arm_func_start ov00_022DE068 +ov00_022DE068: @ 0x022DE068 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x10 + mov r4, r0 + add r0, r4, #0x238 + mov r6, r1 + add r0, r0, #0x1800 + mov r3, #0x20 + mov r1, #0 + mov r2, #0x100 + str r0, [sp, #4] + str r3, [sp, #8] + str r1, [sp, #0xc] + bl FUN_0207C40C + add r0, r4, #0x1000 + ldr r5, [r0, #0xa08] + ldr r1, _022DE2E8 @ =0x02318E6C + mov r0, r5 + bl FUN_02089A70 + str r0, [sp] + cmp r0, #0 + addeq sp, sp, #0x10 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, r0, #4 + bl FUN_02089678 + ldr r1, [sp] + add r1, r1, #4 + add fp, r1, r0 + ldr r1, _022DE2EC @ =0x0231902C + mov r0, r5 + bl FUN_02089A70 + movs r7, r0 + addeq sp, sp, #0x10 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrsb sb, [r7, #4] + ldr r2, _022DE2F0 @ =0x02319030 + mov r5, #0 + add r1, sp, #4 + mov r0, r4 + add r3, r7, #1 + strb r5, [r7, #4] + bl ov00_022DDF14 + cmp r0, #1 + addne sp, sp, #0x10 + strb sb, [r7, #4] + movne r0, r5 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r6, #1 + beq _022DE148 + ldr r1, _022DE2F4 @ =0x0231903C + add r0, r7, #1 + mov r2, #3 + bl FUN_02089940 + cmp r0, #0 + beq _022DE154 +_022DE148: + add sp, sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022DE154: + ldr r1, _022DE2F8 @ =0x02318E9C + add r0, r7, #5 + bl FUN_02089A70 + cmp r0, #0 + addeq sp, sp, #0x10 + moveq r0, r5 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + add sb, r0, #2 + b _022DE208 +_022DE178: + ldr r1, _022DE2FC @ =0x02319040 + mov r0, sb + bl FUN_02089A70 + movs r6, r0 + beq _022DE21C + ldrsb r7, [r6] + mov r1, #0 + add sl, r6, #2 + strb r1, [r6] + ldr r1, _022DE2F8 @ =0x02318E9C + mov r0, sl + bl FUN_02089A70 + movs r5, r0 + strbeq r7, [r6] + beq _022DE21C + ldrsb r8, [r5] + mov r1, #0 + mov r2, sb + strb r1, [r5] + mov r0, r4 + add r1, sp, #4 + mov r3, sl + bl ov00_022DDF14 + cmp r0, #1 + beq _022DE1F0 + strb r7, [r6] + add sp, sp, #0x10 + strb r8, [r5] + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022DE1F0: + mov r0, sl + bl FUN_02089678 + strb r7, [r6] + add r0, sl, r0 + strb r8, [r5] + add sb, r0, #2 +_022DE208: + ldrsb r0, [sb] + cmp r0, #0xd + ldrsbne r0, [sb, #1] + cmpne r0, #0xa + bne _022DE178 +_022DE21C: ldr r0, [sp] + add r7, r0, #4 + cmp r7, fp + bhs _022DE2DC +_022DE22C: + ldr r1, _022DE300 @ =0x02319044 + mov r0, r7 + bl FUN_02089A70 + movs r5, r0 + beq _022DE2DC + ldrsb sb, [r5] + mov r1, #0 + add r6, r5, #1 + strb r1, [r5] + ldr r1, _022DE304 @ =0x02319048 + mov r0, r6 + bl FUN_02089A70 + movs sl, r0 + bne _022DE274 + ldr r1, _022DE2F8 @ =0x02318E9C + mov r0, r6 + bl FUN_02089A70 + mov sl, r0 +_022DE274: + cmp sl, #0 + ldrsbne r8, [sl] + movne r0, #0 + mov r2, r7 + strbne r0, [sl] + mov r0, r4 + add r1, sp, #4 + mov r3, r6 + bl ov00_022DDF14 + cmp r0, #1 + beq _022DE2B8 + strb sb, [r5] + cmp sl, #0 + add sp, sp, #0x10 + strbne r8, [sl] + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022DE2B8: + mov r0, r6 + bl FUN_02089678 + add r0, r6, r0 + strb sb, [r5] + cmp sl, #0 + add r7, r0, #1 + strbne r8, [sl] + cmp r7, fp + blo _022DE22C +_022DE2DC: + mov r0, #1 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022DE2E8: .4byte 0x02318E6C +_022DE2EC: .4byte 0x0231902C +_022DE2F0: .4byte 0x02319030 +_022DE2F4: .4byte 0x0231903C +_022DE2F8: .4byte 0x02318E9C +_022DE2FC: .4byte 0x02319040 +_022DE300: .4byte 0x02319044 +_022DE304: .4byte 0x02319048 + arm_func_end ov00_022DE068 + + arm_func_start ov00_022DE308 +ov00_022DE308: @ 0x022DE308 + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r4, #0 +_022DE318: + add r0, r6, r4, lsl #3 + add r0, r0, #0x1000 + ldr r1, [r0, #0xa38] + cmp r1, #0 + beq _022DE358 + mov r0, r5 + bl FUN_0208982C + cmp r0, #0 + bne _022DE34C + add r0, r6, r4, lsl #3 + add r0, r0, #0x1000 + ldr r0, [r0, #0xa3c] + pop {r4, r5, r6, pc} +_022DE34C: + add r4, r4, #1 + cmp r4, #0x20 + blt _022DE318 +_022DE358: + mov r0, #0 + pop {r4, r5, r6, pc} + arm_func_end ov00_022DE308 + + arm_func_start ov00_022DE360 +ov00_022DE360: @ 0x022DE360 + push {r4, r5, r6, lr} + mov r6, r2 + mov r5, r3 + bl ov00_022DE308 + movs r4, r0 + moveq r0, #0 + popeq {r4, r5, r6, pc} + bl FUN_02089678 + mov r1, r0 + mov r0, r4 + mov r2, r6 + mov r3, r5 + bl ov00_022E00D4 + mvn r1, #0 + cmp r0, r1 + popeq {r4, r5, r6, pc} + cmp r0, r5 + pophs {r4, r5, r6, pc} + mov r1, #0 + strb r1, [r6, r0] + pop {r4, r5, r6, pc} + arm_func_end ov00_022DE360 + + arm_func_start ov00_022DE3B4 +ov00_022DE3B4: @ 0x022DE3B4 + push {r4, r5, r6, lr} + mov r6, r2 + mov r5, r3 + bl ov00_022DE308 + movs r4, r0 + moveq r0, #0 + popeq {r4, r5, r6, pc} + bl FUN_02089678 + cmp r0, r5 + movge r0, #0 + popge {r4, r5, r6, pc} + mov r0, r6 + mov r1, r4 + bl FUN_02089694 + mov r0, #1 + pop {r4, r5, r6, pc} + arm_func_end ov00_022DE3B4 + + arm_func_start ov00_022DE3F4 +ov00_022DE3F4: @ 0x022DE3F4 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + add r0, r0, #0x1000 + ldr r6, [r0, #0x14] + mov sb, r2 + mov sl, r1 + mov r8, #0 + cmp sb, #0 + pople {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr fp, _022DE474 @ =0x0231904C + ldr r7, _022DE478 @ =0x02319068 + mov r5, r8 + mov r4, r8 +_022DE424: + ldr r1, [sl, r8, lsl #3] + cmp r1, #0 + beq _022DE440 + mov r0, fp + mov r2, #0 + blx r6 + str r5, [sl, r8, lsl #3] +_022DE440: + add r0, sl, r8, lsl #3 + ldr r1, [r0, #4] + cmp r1, #0 + beq _022DE464 + mov r0, r7 + mov r2, #0 + blx r6 + add r0, sl, r8, lsl #3 + str r4, [r0, #4] +_022DE464: + add r8, r8, #1 + cmp r8, sb + blt _022DE424 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022DE474: .4byte 0x0231904C +_022DE478: .4byte 0x02319068 + arm_func_end ov00_022DE3F4 + + arm_func_start ov00_022DE47C +ov00_022DE47C: @ 0x022DE47C + push {r3, r4, r5, lr} + ldr r1, _022DE544 @ =0x02326CD8 + mov r5, r0 + ldr r0, [r1] + ldr r4, [r5] + cmp r0, #0 + movne r0, #4 + popne {r3, r4, r5, pc} + ldr r0, _022DE548 @ =0x023190AC + ldr r1, _022DE54C @ =0x000011F4 + blx r4 + ldr r1, _022DE544 @ =0x02326CD8 + cmp r0, #0 + str r0, [r1] + moveq r0, #4 + popeq {r3, r4, r5, pc} + ldr r2, _022DE54C @ =0x000011F4 + mov r1, #0 + bl FUN_0207C40C + ldr ip, _022DE544 @ =0x02326CD8 + ldr r1, _022DE550 @ =0xFFFE7961 + ldr r0, [ip] + add r0, r0, #0x1000 + str r1, [r0, #4] + ldr r3, [ip] + ldm r5, {r0, r1, r2} + add r3, r3, #0x108 + add r3, r3, #0x1000 + stm r3, {r0, r1, r2} + ldr r0, [ip, #0x14] + cmp r0, #0 + movne r0, #4 + popne {r3, r4, r5, pc} + ldr r0, _022DE554 @ =0x023190C0 + ldr r1, _022DE558 @ =0x00001C14 + blx r4 + ldr r1, _022DE544 @ =0x02326CD8 + cmp r0, #0 + str r0, [r1, #0x14] + moveq r0, #4 + popeq {r3, r4, r5, pc} + mov r0, #0 + str r0, [r1, #4] + ldr r0, [r1] + add r0, r0, #0x1dc + add r0, r0, #0x1000 + bl FUN_0207A030 + bl ov00_022DE714 + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022DE544: .4byte 0x02326CD8 +_022DE548: .4byte 0x023190AC +_022DE54C: .4byte 0x000011F4 +_022DE550: .4byte 0xFFFE7961 +_022DE554: .4byte 0x023190C0 +_022DE558: .4byte 0x00001C14 + arm_func_end ov00_022DE47C + + arm_func_start ov00_022DE55C +ov00_022DE55C: @ 0x022DE55C + push {r4, lr} + ldr r0, _022DE640 @ =0x02326CD8 + ldr r1, [r0] + ldr r0, [r0, #0x14] + add r1, r1, #0x1000 + cmp r0, #0 + ldr r4, [r1, #0x10c] + beq _022DE5A0 + bl ov00_022DD890 + ldr r1, _022DE640 @ =0x02326CD8 + ldr r0, _022DE644 @ =0x023190D0 + ldr r1, [r1, #0x14] + mov r2, #0 + blx r4 + ldr r0, _022DE640 @ =0x02326CD8 + mov r1, #0 + str r1, [r0, #0x14] +_022DE5A0: + bl ov00_022DBF08 + ldr r0, _022DE640 @ =0x02326CD8 + ldr r0, [r0] + cmp r0, #0 + popeq {r4, pc} + add r0, r0, #0x1000 + ldr r1, [r0, #0x114] + cmp r1, #0 + beq _022DE5E4 + ldr r0, _022DE648 @ =0x023190E0 + mov r2, #0 + blx r4 + ldr r0, _022DE640 @ =0x02326CD8 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #0x114] +_022DE5E4: + ldr r0, _022DE640 @ =0x02326CD8 + ldr r0, [r0] + add r0, r0, #0x1000 + ldr r1, [r0, #0x118] + cmp r1, #0 + beq _022DE61C + ldr r0, _022DE64C @ =0x023190FC + mov r2, #0 + blx r4 + ldr r0, _022DE640 @ =0x02326CD8 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #0x118] +_022DE61C: + ldr r1, _022DE640 @ =0x02326CD8 + ldr r0, _022DE650 @ =0x0231911C + ldr r1, [r1] + mov r2, #0 + blx r4 + ldr r0, _022DE640 @ =0x02326CD8 + mov r1, #0 + str r1, [r0] + pop {r4, pc} + .align 2, 0 +_022DE640: .4byte 0x02326CD8 +_022DE644: .4byte 0x023190D0 +_022DE648: .4byte 0x023190E0 +_022DE64C: .4byte 0x023190FC +_022DE650: .4byte 0x0231911C + arm_func_end ov00_022DE55C + + arm_func_start ov00_022DE654 +ov00_022DE654: @ 0x022DE654 + push {r3, lr} + ldr r0, _022DE6B8 @ =0x02326CD8 + ldr r1, [r0] + cmp r1, #0 + popeq {r3, pc} + ldr r0, [r0, #0x14] + cmp r0, #0 + beq _022DE678 + bl ov00_022DD34C +_022DE678: + bl ov00_022DBE7C + ldr r0, _022DE6B8 @ =0x02326CD8 + ldr r1, [r0] + add r0, r1, #0x1000 + ldr r0, [r0, #0x188] + cmp r0, #0 + beq _022DE6A0 + add r0, r1, #0x11c + add r0, r0, #0x1000 + bl FUN_02079800 +_022DE6A0: + ldr r0, _022DE6B8 @ =0x02326CD8 + mvn r1, #6 + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #4] pop {r3, pc} .align 2, 0 -_02081DB4: .4byte 0x02081A7C - arm_func_end FUN_02081d90 +_022DE6B8: .4byte 0x02326CD8 + arm_func_end ov00_022DE654 - arm_func_start FUN_02081db8 -FUN_02081db8: @ 0x02081DB8 + arm_func_start ov00_022DE6BC +ov00_022DE6BC: @ 0x022DE6BC + push {r4, lr} + ldr r0, _022DE6F8 @ =0x02326CD8 + ldr r0, [r0] + add r0, r0, #0x1dc + add r0, r0, #0x1000 + bl FUN_0207A048 + ldr r0, _022DE6F8 @ =0x02326CD8 + ldr r1, [r0] + add r0, r1, #0x1dc + add r1, r1, #0x1000 + add r0, r0, #0x1000 + ldr r4, [r1] + bl FUN_0207A0CC + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_022DE6F8: .4byte 0x02326CD8 + arm_func_end ov00_022DE6BC + + arm_func_start ov00_022DE6FC +ov00_022DE6FC: @ 0x022DE6FC + ldr r0, _022DE710 @ =0x02326CD8 + ldr r0, [r0] + add r0, r0, #0x1000 + ldr r0, [r0, #4] + bx lr + .align 2, 0 +_022DE710: .4byte 0x02326CD8 + arm_func_end ov00_022DE6FC + + arm_func_start ov00_022DE714 +ov00_022DE714: @ 0x022DE714 + push {r3, lr} + sub sp, sp, #8 + ldr r0, _022DE794 @ =0x02326CD8 + ldr r1, [r0] + add r0, r1, #0x1000 + ldr r0, [r0, #0x188] + cmp r0, #0 + beq _022DE74C + add r0, r1, #0x11c + add r0, r0, #0x1000 + bl FUN_02079830 + cmp r0, #0 + addeq sp, sp, #8 + popeq {r3, pc} +_022DE74C: + ldr r0, _022DE794 @ =0x02326CD8 + mov r3, #0x1000 + ldr r2, [r0] + ldr r1, _022DE798 @ =ov00_022DE79C + add r0, r2, #0x11c + str r3, [sp] + mov ip, #0x10 + add r0, r0, #0x1000 + add r3, r2, #0x1000 + str ip, [sp, #4] + bl FUN_02079560 + ldr r0, _022DE794 @ =0x02326CD8 + ldr r0, [r0] + add r0, r0, #0x11c + add r0, r0, #0x1000 + bl FUN_02079940 + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_022DE794: .4byte 0x02326CD8 +_022DE798: .4byte ov00_022DE79C + arm_func_end ov00_022DE714 + + arm_func_start ov00_022DE79C +ov00_022DE79C: @ 0x022DE79C + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x29c + ldr r5, _022DF628 @ =0x02326CD8 + mov sb, #0 + ldr r0, [r5] + mov fp, sb + add r0, r0, #0x1000 + ldr r7, [r0, #0x108] + ldr r8, [r0, #0x10c] + mvn r0, #2 + str r0, [sp, #0x20] + sub r0, r0, #1 + str r0, [sp, #0x24] + ldr r0, [sp, #0x20] + mov sl, sb + sub r0, r0, #2 + str r0, [sp, #0x28] + ldr r0, _022DF62C @ =0x00009C40 + mov r4, sb + lsr r0, r0, #1 + str r0, [sp, #0x18] + ldr r0, [sp, #0x20] + add r0, r0, #1 + str r0, [sp, #0x1c] +_022DE7FC: + ldr r0, _022DF630 @ =0x02319084 + ldr r1, _022DF634 @ =0x02326CF0 + ldr r0, [r0] + str r0, [r5, #0x18] + mov r0, #1 + str r0, [r5, #0x1c] + mov r0, #0x1000 + str r0, [r5, #0x20] + str r7, [r5, #0x24] + ldr r0, [sp, #0x18] + str r8, [r5, #0x28] + str r0, [r5, #0x30] + ldr r0, [r5] + add r2, r0, #0x1000 + ldr r0, [sp, #0x1c] + str r0, [r2, #4] + ldr r0, [r5, #0x14] + bl ov00_022DD0DC + cmp r0, #0 + beq _022DE864 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #1 + bl ov00_022DF6B0 + b _022DF5D4 +_022DE864: + ldr r0, [r5, #0x14] + bl ov00_022DD1F8 + cmp r0, #0 + beq _022DE88C + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #1 + bl ov00_022DF6B0 + b _022DF5D4 +_022DE88C: + ldr r0, _022DF638 @ =0x022B966C + ldr r0, [r0, #4] + bl FUN_02079B0C + sub r1, r0, #1 + ldr r0, [r5, #0x14] + bl ov00_022DD290 + ldr r1, [r5, #0x14] + add r0, r1, #0x1000 + ldr r0, [r0, #0xba4] + cmp r0, #0 + beq _022DE8C4 + add r0, r1, #0x338 + add r0, r0, #0x1800 + bl FUN_02079800 +_022DE8C4: + ldr r0, [r5, #0x14] + add r1, r0, #0x1000 + ldr r1, [r1, #0x20] + cmp r1, #2 + beq _022DE8E4 + cmp r1, #8 + beq _022DE910 + b _022DE8F8 +_022DE8E4: + ldr r0, _022DF628 @ =0x02326CD8 + mvn r1, #0 + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #4] +_022DE8F8: + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #3 + bl ov00_022DF6B0 + b _022DF5D4 +_022DE910: + mov r1, #0 + bl ov00_022DE068 + cmp r0, #1 + beq _022DE938 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #2 + bl ov00_022DF6B0 + b _022DF5D4 +_022DE938: + ldr r0, [r5, #0x14] + ldr r1, _022DF63C @ =0x02319198 + bl ov00_022DE308 + bl FUN_0208B360 + mov r6, r0 + ldr r0, _022DF640 @ =0x022BCA70 + ldr r0, [r0] + cmp r0, #0x22 + bne _022DE968 + mov r0, #2 + bl ov00_022DF6B0 + b _022DF5D4 +_022DE968: + cmp r6, #0xc8 + beq _022DE980 + ldr r0, _022DF644 @ =0x0000012E + cmp r6, r0 + beq _022DE994 + b _022DEC7C +_022DE980: + ldr r0, [r5, #0x14] + add r0, r0, #0x1000 + ldr r0, [r0, #0x12c] + str r0, [r5, #8] + b _022DEC94 +_022DE994: + mov r0, #1 + str r0, [r5, #4] + ldr r0, [r5] + add r0, r0, #0x1000 + ldr r1, [r0, #0x118] + cmp r1, #0 + beq _022DEBE4 + ldr r1, _022DF628 @ =0x02326CD8 + mvn r2, #5 + str r2, [r0, #4] + ldr r0, [r1, #0x14] + bl ov00_022DD890 + ldr r0, _022DF648 @ =0x02318BC8 + ldr r2, _022DF628 @ =0x02326CD8 + ldr r0, [r0] + mov r1, #0 + str r0, [r2, #0x18] + str r1, [r2, #0x1c] + mov r1, #0x200 + str r1, [r2, #0x20] + str r7, [r2, #0x24] + ldr r3, _022DF64C @ =0x00004E20 + str r8, [r2, #0x28] + ldr r1, _022DF650 @ =0x023191A4 + str r3, [r2, #0x30] + bl FUN_0208982C + cmp r0, #0 + ldrne r0, _022DF628 @ =0x02326CD8 + movne r1, #1 + strne r1, [r0, #0x2c] + ldr r0, _022DF628 @ =0x02326CD8 + ldr r1, _022DF634 @ =0x02326CF0 + ldr r0, [r0, #0x14] + bl ov00_022DD0DC + cmp r0, #0 + beq _022DEA3C + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #1 + bl ov00_022DF6B0 + b _022DF5D4 +_022DEA3C: + add r0, sp, #0x44 + bl ov00_022DCAB8 + cmp r0, #0 + beq _022DEA68 + ldr r0, _022DF628 @ =0x02326CD8 + add r1, sp, #0x44 + ldr r0, [r0, #0x14] + mov r2, #1 + bl ov00_022DCD90 + cmp r0, #0 + bne _022DEA80 +_022DEA68: + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #8 + bl ov00_022DF6B0 + b _022DF5D4 +_022DEA80: + ldr r0, _022DF628 @ =0x02326CD8 + ldr r1, _022DF654 @ =0x023191C4 + ldr r0, [r0, #0x14] + ldr r2, _022DF658 @ =0x023191CC + mov r3, #7 + bl ov00_022DDAE0 + cmp r0, #0 + bne _022DEAD8 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0] + add r0, r0, #0x1000 + ldr r4, [r0, #0x118] + mov r0, r4 + bl FUN_02089678 + ldr r1, _022DF628 @ =0x02326CD8 + mov r3, r0 + ldr r0, [r1, #0x14] + ldr r1, _022DF65C @ =0x023191D4 + mov r2, r4 + bl ov00_022DDAE0 + cmp r0, #0 + beq _022DEAF0 +_022DEAD8: + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #8 + bl ov00_022DF6B0 + b _022DF5D4 +_022DEAF0: + ldr r1, _022DF628 @ =0x02326CD8 + ldr r0, _022DF660 @ =0x023190FC + ldr r1, [r1] + mov r2, #0 + add r1, r1, #0x1000 + ldr r1, [r1, #0x118] + blx r8 + ldr r1, _022DF628 @ =0x02326CD8 + mov r2, #0 + ldr r0, [r1] + add r0, r0, #0x1000 + str r2, [r0, #0x118] + ldr r0, [r1, #0x14] + bl ov00_022DD1F8 + cmp r0, #0 + beq _022DEB48 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #1 + bl ov00_022DF6B0 + b _022DF5D4 +_022DEB48: + ldr r0, _022DF638 @ =0x022B966C + ldr r0, [r0, #4] + bl FUN_02079B0C + ldr r2, _022DF628 @ =0x02326CD8 + sub r1, r0, #1 + ldr r0, [r2, #0x14] + bl ov00_022DD290 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r1, [r0, #0x14] + add r0, r1, #0x1000 + ldr r0, [r0, #0xba4] + cmp r0, #0 + beq _022DEB88 + add r0, r1, #0x338 + add r0, r0, #0x1800 + bl FUN_02079800 +_022DEB88: + ldr r2, _022DF628 @ =0x02326CD8 + ldr r0, [r2, #0x14] + add r1, r0, #0x1000 + ldr r1, [r1, #0x20] + cmp r1, #2 + beq _022DEBAC + cmp r1, #8 + beq _022DEBD4 + b _022DEBBC +_022DEBAC: + ldr r0, [r2] + mvn r1, #0 + add r0, r0, #0x1000 + str r1, [r0, #4] +_022DEBBC: + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #3 + bl ov00_022DF6B0 + b _022DF5D4 +_022DEBD4: + bl ov00_022DD890 + mov r0, #7 + bl ov00_022DF6B0 + b _022DF5D4 +_022DEBE4: + ldr r0, [r5, #0x14] + add r1, r0, #0x1000 + ldr r1, [r1, #0xa08] + str r1, [sp, #0x14] + cmp r1, #0 + bne _022DEC0C + bl ov00_022DD890 + mov r0, #2 + bl ov00_022DF6B0 + b _022DF5D4 +_022DEC0C: + mov r0, r1 + bl FUN_02089678 + add r1, r0, #1 + ldr r0, _022DF664 @ =0x02319130 + blx r7 + ldr r1, [r5] + add r1, r1, #0x1000 + str r0, [r1, #0x114] + ldr r0, [r5] + add r0, r0, #0x1000 + ldr r0, [r0, #0x114] + str r0, [sp, #4] + cmp r0, #0 + bne _022DEC5C + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #4 + bl ov00_022DF6B0 + b _022DF5D4 +_022DEC5C: + ldr r0, [sp, #0x14] + bl FUN_02089678 + mov r2, r0 + ldr r1, [sp, #0x14] + ldr r0, [sp, #4] + add r2, r2, #1 + bl FUN_0208975C + b _022DEC94 +_022DEC7C: + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #0xa + bl ov00_022DF6B0 + b _022DF5D4 +_022DEC94: + ldr r0, [r5, #0x14] + bl ov00_022DD890 + add r0, sp, #0x30 + bl ov00_022ED468 + ldr r2, [sp, #0x30] + ldr r1, [sp, #0x34] + mov r0, #0 + cmp r1, r0 + cmpeq r2, r4 + bne _022DEDCC + ldr r1, [r5] + ldr r0, _022DF668 @ =0x02326D0C + add r2, r1, #0x1000 + ldr r1, [sp, #0x20] + str r1, [r2, #4] + mov r2, #0 + mov r1, r0 + strh r2, [r1] + strb r2, [r1, #0x34] + ldr r1, [r5] + add r2, r1, #0x1000 + ldr r3, [r2, #0x108] + mov r1, r0 + str r3, [r1, #0x40] + ldr r2, [r2, #0x10c] + str r2, [r1, #0x44] + ldr r1, [r5, #0x14] + bl ov00_022DBCA4 + cmp r0, #0 + beq _022DED18 + mov r0, #5 + bl ov00_022DF6B0 + b _022DF5D4 +_022DED18: + bl ov00_022DBF60 + bl ov00_022DBF90 + cmp r0, #0x15 + beq _022DEDC8 + bl ov00_022DBF90 + cmp r0, #9 + bne _022DED4C + ldr r0, _022DF628 @ =0x02326CD8 + mvn r1, #0 + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #4] + b _022DEDB8 +_022DED4C: + add r0, sp, #0xd8 + bl ov00_022DBFDC + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0xc] + cmp r0, #1 + bne _022DEDA4 + ldr r1, [sp, #0xd8] + ldr r0, _022DF66C @ =0xFFFFA4FA + cmp r1, r0 + beq _022DED80 + bl ov00_022DBF90 + cmp r0, #0xb + bne _022DEDA4 +_022DED80: + ldr r0, _022DF628 @ =0x02326CD8 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #4] + bl ov00_022DBF08 + mov r0, #0xb + bl ov00_022DF6B0 + b _022DF5D4 +_022DEDA4: + ldr r0, _022DF628 @ =0x02326CD8 + ldr r1, [sp, #0xd8] + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #4] +_022DEDB8: + bl ov00_022DBF08 + mov r0, #6 + bl ov00_022DF6B0 + b _022DF5D4 +_022DEDC8: + bl ov00_022DBF08 +_022DEDCC: + cmp r6, #0xc8 + bne _022DEDF4 + ldr r0, _022DF628 @ =0x02326CD8 + mov r2, #0 + ldr r1, [r0] + mov r0, #0xb + add r1, r1, #0x1000 + str r2, [r1, #4] + bl ov00_022DF6B0 + b _022DF5D4 +_022DEDF4: + ldr r0, [r5] + ldr r1, _022DF650 @ =0x023191A4 + add r2, r0, #0x1000 + ldr r0, [sp, #0x24] + str r0, [r2, #4] + ldr r0, _022DF648 @ =0x02318BC8 + mov r2, #0 + ldr r0, [r0] + str r0, [r5, #0x18] + str r2, [r5, #0x1c] + mov r2, #0x1000 + str r2, [r5, #0x20] + str r7, [r5, #0x24] + ldr r2, _022DF62C @ =0x00009C40 + str r8, [r5, #0x28] + str r2, [r5, #0x30] + bl FUN_0208982C + cmp r0, #0 + movne r0, #1 + strne r0, [r5, #0x2c] + ldr r0, [r5, #0x14] + ldr r1, _022DF634 @ =0x02326CF0 + bl ov00_022DD0DC + cmp r0, #0 + beq _022DEE70 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #1 + bl ov00_022DF6B0 + b _022DF5D4 +_022DEE70: + add r0, sp, #0x44 + bl ov00_022DCAB8 + cmp r0, #0 + beq _022DEE98 + ldr r0, [r5, #0x14] + add r1, sp, #0x44 + mov r2, #1 + bl ov00_022DCD90 + cmp r0, #0 + bne _022DEEB0 +_022DEE98: + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #8 + bl ov00_022DF6B0 + b _022DF5D4 +_022DEEB0: + ldr r0, [r5, #0x14] + ldr r1, _022DF654 @ =0x023191C4 + ldr r2, _022DF670 @ =0x023191E4 + mov r3, #5 + bl ov00_022DDAE0 + cmp r0, #0 + bne _022DEEFC + ldr r0, [r5] + add r0, r0, #0x1000 + ldr r6, [r0, #0x114] + mov r0, r6 + bl FUN_02089678 + mov r3, r0 + ldr r0, [r5, #0x14] + ldr r1, _022DF674 @ =0x023191EC + mov r2, r6 + bl ov00_022DDAE0 + cmp r0, #0 + beq _022DEF14 +_022DEEFC: + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #8 + bl ov00_022DF6B0 + b _022DF5D4 +_022DEF14: + ldr r1, [r5] + ldr r0, _022DF678 @ =0x023190E0 + add r1, r1, #0x1000 + ldr r1, [r1, #0x114] + mov r2, #0 + blx r8 + ldr r0, [r5] + add r1, r0, #0x1000 + mov r0, #0 + str r0, [r1, #0x114] + ldr r0, [r5, #0x14] + bl ov00_022DD1F8 + cmp r0, #0 + beq _022DEF64 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #1 + bl ov00_022DF6B0 + b _022DF5D4 +_022DEF64: + ldr r0, _022DF638 @ =0x022B966C + ldr r0, [r0, #4] + bl FUN_02079B0C + sub r1, r0, #1 + ldr r0, [r5, #0x14] + bl ov00_022DD290 + ldr r1, [r5, #0x14] + add r0, r1, #0x1000 + ldr r0, [r0, #0xba4] + cmp r0, #0 + beq _022DEF9C + add r0, r1, #0x338 + add r0, r0, #0x1800 + bl FUN_02079800 +_022DEF9C: + ldr r0, [r5, #0x14] + add r1, r0, #0x1000 + ldr r1, [r1, #0x20] + cmp r1, #2 + beq _022DF000 + cmp r1, #3 + beq _022DEFC4 + cmp r1, #8 + beq _022DF02C + b _022DF014 +_022DEFC4: + bl ov00_022DD890 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r1, [r0, #0xc] + cmp r1, #1 + bne _022DEFF4 + ldr r0, [r0] + mov r2, #0 + add r1, r0, #0x1000 + mov r0, #0xb + str r2, [r1, #4] + bl ov00_022DF6B0 + b _022DF5D4 +_022DEFF4: + mov r0, #3 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF000: + ldr r0, _022DF628 @ =0x02326CD8 + mvn r1, #0 + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #4] +_022DF014: + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #3 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF02C: + mov r1, #0 + bl ov00_022DE068 + cmp r0, #1 + beq _022DF054 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #2 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF054: + ldr r0, [r5, #0x14] + ldr r1, _022DF63C @ =0x02319198 + bl ov00_022DE308 + bl FUN_0208B360 + mov r6, r0 + ldr r0, _022DF640 @ =0x022BCA70 + ldr r0, [r0] + cmp r0, #0x22 + bne _022DF090 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #2 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF090: + cmp r6, #0xc8 + beq _022DF0E4 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + ldr r1, _022DF628 @ =0x02326CD8 + ldr r0, [r1, #0xc] + cmp r0, #1 + ldreq r0, _022DF644 @ =0x0000012E + cmpeq r6, r0 + bne _022DF0D8 + ldr r0, [r1] + mov r2, #0 + add r1, r0, #0x1000 + mov r0, #0xb + str r2, [r1, #4] + bl ov00_022DF6B0 + b _022DF5D4 +_022DF0D8: + mov r0, #2 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF0E4: + ldr r0, [r5, #0x14] + ldr r1, _022DF67C @ =0x023191F4 + add r2, sp, #0x2c + mov r3, #4 + bl ov00_022DE360 + cmp r0, #0 + bgt _022DF118 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #9 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF118: + add r0, sp, #0x2c + bl FUN_0208B360 + ldr r1, _022DF640 @ =0x022BCA70 + ldr r1, [r1] + cmp r1, #0x22 + bne _022DF148 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #9 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF148: + ldr r1, [r5, #0xc] + cmp r1, #1 + cmpeq r0, #0x72 + bne _022DF178 + ldr r0, _022DF628 @ =0x02326CD8 + mov r2, #0 + ldr r1, [r0] + mov r0, #0xb + add r1, r1, #0x1000 + str r2, [r1, #4] + bl ov00_022DF6B0 + b _022DF5D4 +_022DF178: + cmp r0, #0x64 + blt _022DF198 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #6 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF198: + mov r2, #0 + ldr r0, [r5, #0x14] + ldr r1, _022DF680 @ =0x02319200 + mov r3, r2 + bl ov00_022DE360 + str r0, [sp, #0x10] + cmp r0, #0 + bgt _022DF1D0 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #9 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF1D0: + mov r2, #0 + ldr r0, [r5, #0x14] + ldr r1, _022DF684 @ =0x02319204 + mov r3, r2 + bl ov00_022DE360 + str r0, [sp, #0xc] + cmp r0, #0 + bgt _022DF208 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #9 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF208: + mov r2, #0 + ldr r0, [r5, #0x14] + ldr r1, _022DF688 @ =0x0231920C + mov r3, r2 + bl ov00_022DE360 + ldr r1, [sp, #0x10] + mov r6, r0 + ldr r0, _022DF68C @ =0x0231914C + add r1, r1, #1 + blx r7 + movs sb, r0 + bne _022DF250 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #4 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF250: + ldr r1, [sp, #0xc] + ldr r0, _022DF690 @ =0x02319158 + add r1, r1, #1 + blx r7 + movs fp, r0 + bne _022DF280 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #4 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF280: + cmp r6, #0 + ble _022DF2B4 + ldr r0, _022DF694 @ =0x02319168 + add r1, r6, #1 + blx r7 + movs sl, r0 + bne _022DF2B4 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #4 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF2B4: + ldr r0, [sp, #0x10] + ldr r1, _022DF680 @ =0x02319200 + add r3, r0, #1 + ldr r0, [r5, #0x14] + mov r2, sb + bl ov00_022DE360 + cmp r0, #0 + bge _022DF2EC + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #9 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF2EC: + ldr r1, [sp, #0xc] + mov r2, fp + add r3, r1, #1 + mov r1, #0 + strb r1, [sb, r0] + ldr r0, [r5, #0x14] + ldr r1, _022DF684 @ =0x02319204 + bl ov00_022DE360 + cmp r0, #0 + bge _022DF32C + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #9 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF32C: + mov r1, #0 + strb r1, [fp, r0] + mov r0, r1 + cmp r6, #0 + str r0, [sp, #8] + ble _022DF3C8 + ldr r0, [r5, #0x14] + ldr r1, _022DF688 @ =0x0231920C + add r3, r6, #1 + mov r2, sl + bl ov00_022DE360 + cmp r0, #0 + bge _022DF378 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #9 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF378: + mov r1, #0 + strb r1, [sl, r0] + mov r0, sl + bl FUN_0208B360 + ldr r1, _022DF640 @ =0x022BCA70 + ldr r1, [r1] + cmp r1, #0x22 + bne _022DF3B0 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #9 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF3B0: + mov r1, #0x3e8 + mul r1, r0, r1 + ldr r0, _022DF698 @ =0x0002BF20 + str r1, [sp, #8] + cmp r1, r0 + strgt r0, [sp, #8] +_022DF3C8: + ldr r0, [r5, #0x14] + bl ov00_022DD890 + ldr r0, [r5] + ldr r1, _022DF634 @ =0x02326CF0 + add r2, r0, #0x1000 + ldr r0, [sp, #0x28] + str r0, [r2, #4] + str sb, [r5, #0x18] + mov r0, #0 + str r0, [r5, #0x1c] + mov r0, #0x1000 + str r0, [r5, #0x20] + str r7, [r5, #0x24] + ldr r0, _022DF69C @ =0x0001D4C0 + str r8, [r5, #0x28] + str r0, [r5, #0x30] + ldr r0, [r5, #0x14] + bl ov00_022DD0DC + cmp r0, #0 + beq _022DF430 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #1 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF430: + ldr r0, [r5, #0x14] + mov r1, fp + bl ov00_022DDBEC + cmp r0, #0 + beq _022DF45C + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #8 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF45C: + ldr r0, [r5, #0x14] + bl ov00_022DD1F8 + cmp r0, #0 + beq _022DF484 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #1 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF484: + ldr r0, _022DF638 @ =0x022B966C + ldr r0, [r0, #4] + bl FUN_02079B0C + sub r1, r0, #1 + ldr r0, [r5, #0x14] + bl ov00_022DD290 + ldr r1, [r5, #0x14] + add r0, r1, #0x1000 + ldr r0, [r0, #0xba4] + cmp r0, #0 + beq _022DF4BC + add r0, r1, #0x338 + add r0, r0, #0x1800 + bl FUN_02079800 +_022DF4BC: + ldr r0, [r5, #0x14] + add r1, r0, #0x1000 + ldr r1, [r1, #0x20] + cmp r1, #2 + beq _022DF4DC + cmp r1, #8 + beq _022DF508 + b _022DF4F0 +_022DF4DC: + ldr r0, _022DF628 @ =0x02326CD8 + mvn r1, #0 + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #4] +_022DF4F0: + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #3 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF508: + mov r1, #1 + bl ov00_022DE068 + cmp r0, #1 + beq _022DF530 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #2 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF530: + ldr r0, [r5, #0x14] + add r1, r0, #0x1000 + ldr r6, [r1, #0xa08] + cmp r6, #0 + bne _022DF554 + bl ov00_022DD890 + mov r0, #2 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF554: + mov r0, r6 + bl FUN_02089678 + add r1, r0, #1 + ldr r0, _022DF6A0 @ =0x02319178 + blx r7 + ldr r1, [r5] + add r1, r1, #0x1000 + str r0, [r1, #0x118] + ldr r0, [r5] + add r0, r0, #0x1000 + ldr r0, [r0, #0x118] + str r0, [sp] + cmp r0, #0 + bne _022DF5A4 + ldr r0, _022DF628 @ =0x02326CD8 + ldr r0, [r0, #0x14] + bl ov00_022DD890 + mov r0, #4 + bl ov00_022DF6B0 + b _022DF5D4 +_022DF5A4: + mov r0, r6 + bl FUN_02089678 + mov r2, r0 + ldr r0, [sp] + mov r1, r6 + add r2, r2, #1 + bl FUN_0208975C + ldr r0, [r5, #0x14] + bl ov00_022DD890 + ldr r0, [sp, #8] + bl FUN_02079B14 + b _022DE7FC +_022DF5D4: + cmp sb, #0 + beq _022DF5EC + ldr r0, _022DF6A4 @ =0x02319214 + mov r1, sb + mov r2, #0 + blx r8 +_022DF5EC: + cmp fp, #0 + beq _022DF604 + ldr r0, _022DF6A8 @ =0x02319220 + mov r1, fp + mov r2, #0 + blx r8 +_022DF604: + cmp sl, #0 + addeq sp, sp, #0x29c + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, _022DF6AC @ =0x0231922C + mov r1, sl + mov r2, #0 + blx r8 + add sp, sp, #0x29c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022DF628: .4byte 0x02326CD8 +_022DF62C: .4byte 0x00009C40 +_022DF630: .4byte 0x02319084 +_022DF634: .4byte 0x02326CF0 +_022DF638: .4byte 0x022B966C +_022DF63C: .4byte 0x02319198 +_022DF640: .4byte 0x022BCA70 +_022DF644: .4byte 0x0000012E +_022DF648: .4byte 0x02318BC8 +_022DF64C: .4byte 0x00004E20 +_022DF650: .4byte 0x023191A4 +_022DF654: .4byte 0x023191C4 +_022DF658: .4byte 0x023191CC +_022DF65C: .4byte 0x023191D4 +_022DF660: .4byte 0x023190FC +_022DF664: .4byte 0x02319130 +_022DF668: .4byte 0x02326D0C +_022DF66C: .4byte 0xFFFFA4FA +_022DF670: .4byte 0x023191E4 +_022DF674: .4byte 0x023191EC +_022DF678: .4byte 0x023190E0 +_022DF67C: .4byte 0x023191F4 +_022DF680: .4byte 0x02319200 +_022DF684: .4byte 0x02319204 +_022DF688: .4byte 0x0231920C +_022DF68C: .4byte 0x0231914C +_022DF690: .4byte 0x02319158 +_022DF694: .4byte 0x02319168 +_022DF698: .4byte 0x0002BF20 +_022DF69C: .4byte 0x0001D4C0 +_022DF6A0: .4byte 0x02319178 +_022DF6A4: .4byte 0x02319214 +_022DF6A8: .4byte 0x02319220 +_022DF6AC: .4byte 0x0231922C + arm_func_end ov00_022DE79C + + arm_func_start ov00_022DF6B0 +ov00_022DF6B0: @ 0x022DF6B0 + push {r4, lr} + ldr r1, _022DF6F0 @ =0x02326CD8 + mov r4, r0 + ldr r0, [r1] + add r0, r0, #0x1dc + add r0, r0, #0x1000 + bl FUN_0207A048 + ldr r1, _022DF6F0 @ =0x02326CD8 + ldr r0, [r1] + add r0, r0, #0x1000 + str r4, [r0] + ldr r0, [r1] + add r0, r0, #0x1dc + add r0, r0, #0x1000 + bl FUN_0207A0CC + pop {r4, pc} + .align 2, 0 +_022DF6F0: .4byte 0x02326CD8 + arm_func_end ov00_022DF6B0 + + arm_func_start ov00_022DF6F4 +ov00_022DF6F4: @ 0x022DF6F4 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x3c + mov r6, r0 + bl FUN_02089678 + mov r4, r0 + ldr r0, _022DF900 @ =0x02319298 + bl FUN_02089678 + cmp r4, r0 + ldrsbeq r0, [r6, #7] + cmpeq r0, #0x20 + ldrsbeq r0, [r6, #0xb] + cmpeq r0, #0x20 + ldrsbeq r0, [r6, #0x10] + cmpeq r0, #0x20 + ldrsbeq r0, [r6, #0x13] + cmpeq r0, #0x3a + ldrsbeq r0, [r6, #0x16] + cmpeq r0, #0x3a + ldrsbeq r0, [r6, #0x19] + cmpeq r0, #0x20 + bne _022DF8F4 + add r0, sp, #0x2c + add r1, sp, #0x20 + bl FUN_020828A8 + cmp r0, #0 + bne _022DF8F4 + add r0, sp, #0x2c + add r1, sp, #0x20 + bl FUN_02082FDC + mov r4, r0 + mov r5, r1 + mvn r0, #0 + cmp r5, r0 + cmpeq r4, r0 + beq _022DF8F4 + add r0, sp, #0 + mov r1, r6 + bl FUN_02089694 + mov r2, #0 + ldr r1, _022DF904 @ =0x022BCA70 + add r0, sp, #0xc + strb r2, [sp, #7] + strb r2, [sp, #0xb] + strb r2, [sp, #0x10] + strb r2, [sp, #0x13] + strb r2, [sp, #0x16] + strb r2, [sp, #0x19] + str r2, [r1] + bl FUN_0208B360 + ldr r1, _022DF904 @ =0x022BCA70 + str r0, [sp, #0x2c] + ldr r1, [r1] + cmp r1, #0x22 + beq _022DF8F4 + sub r1, r0, #0x7d0 + mov r0, #0xd + ldr r7, _022DF908 @ =0x02319268 + str r1, [sp, #0x2c] + str r0, [sp, #0x30] + mov r8, #0 + add r6, sp, #8 +_022DF7E8: + ldr r0, [r7, r8, lsl #2] + mov r1, r6 + bl FUN_0208982C + cmp r0, #0 + addeq r0, r8, #1 + streq r0, [sp, #0x30] + beq _022DF810 + add r8, r8, #1 + cmp r8, #0xc + blt _022DF7E8 +_022DF810: + ldr r0, [sp, #0x30] + cmp r0, #0xc + bhi _022DF8F4 + ldr r1, _022DF904 @ =0x022BCA70 + mov r2, #0 + add r0, sp, #5 + str r2, [r1] + bl FUN_0208B360 + ldr r1, _022DF904 @ =0x022BCA70 + str r0, [sp, #0x34] + ldr r0, [r1] + cmp r0, #0x22 + beq _022DF8F4 + mov r2, #0 + add r0, sp, #0x11 + str r2, [r1] + bl FUN_0208B360 + ldr r1, _022DF904 @ =0x022BCA70 + str r0, [sp, #0x20] + ldr r0, [r1] + cmp r0, #0x22 + beq _022DF8F4 + mov r2, #0 + add r0, sp, #0x14 + str r2, [r1] + bl FUN_0208B360 + ldr r1, _022DF904 @ =0x022BCA70 + str r0, [sp, #0x24] + ldr r0, [r1] + cmp r0, #0x22 + beq _022DF8F4 + mov r2, #0 + add r0, sp, #0x17 + str r2, [r1] + bl FUN_0208B360 + ldr r1, _022DF904 @ =0x022BCA70 + str r0, [sp, #0x28] + ldr r0, [r1] + cmp r0, #0x22 + beq _022DF8F4 + add r0, sp, #0x2c + add r1, sp, #0x20 + bl FUN_02082FDC + mvn r2, #0 + cmp r1, r2 + cmpeq r0, r2 + beq _022DF8F4 + ldr r2, _022DF90C @ =0x02326D54 + subs r0, r4, r0 + str r0, [r2, #0xc] + sbc r0, r5, r1 + str r0, [r2, #0x10] + stmib r2, {r4, r5} + mov r0, #1 + str r0, [r2] + add sp, sp, #0x3c + pop {r3, r4, r5, r6, r7, r8, pc} +_022DF8F4: + mov r0, #0 + add sp, sp, #0x3c + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022DF900: .4byte 0x02319298 +_022DF904: .4byte 0x022BCA70 +_022DF908: .4byte 0x02319268 +_022DF90C: .4byte 0x02326D54 + arm_func_end ov00_022DF6F4 + + arm_func_start ov00_022DF910 +ov00_022DF910: @ 0x022DF910 + push {r3, r4, r5, lr} + ldr r2, _022DF998 @ =0x02326D68 + mov r5, r0 + ldr r0, [r2] + mov r4, r1 + cmp r0, #0 + beq _022DF940 + ldr r1, _022DF99C @ =0xFFFFA1DC + mov r0, #9 + bl ov00_022E0394 + mov r0, #0 + pop {r3, r4, r5, pc} +_022DF940: + ldr r0, _022DF9A0 @ =0x023192B8 + ldr r1, _022DF9A4 @ =0x00001C20 + blx r5 + ldr r1, _022DF998 @ =0x02326D68 + cmp r0, #0 + str r0, [r1] + bne _022DF970 + ldr r1, _022DF99C @ =0xFFFFA1DC + mov r0, #9 + bl ov00_022E0394 + mov r0, #0 + pop {r3, r4, r5, pc} +_022DF970: + ldr r2, _022DF9A4 @ =0x00001C20 + mov r1, #0 + bl FUN_0207C40C + ldr r1, _022DF998 @ =0x02326D68 + mov r0, #1 + ldr r2, [r1] + str r5, [r2] + ldr r1, [r1] + str r4, [r1, #4] + pop {r3, r4, r5, pc} + .align 2, 0 +_022DF998: .4byte 0x02326D68 +_022DF99C: .4byte 0xFFFFA1DC +_022DF9A0: .4byte 0x023192B8 +_022DF9A4: .4byte 0x00001C20 + arm_func_end ov00_022DF910 + + arm_func_start ov00_022DF9A8 +ov00_022DF9A8: @ 0x022DF9A8 + push {r3, lr} + ldr r0, _022DF9EC @ =0x02326D68 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + add r0, r0, #8 + bl ov00_022DD890 + ldr r1, _022DF9EC @ =0x02326D68 + ldr r0, _022DF9F0 @ =0x023192C8 + ldr r1, [r1] + mov r2, #0 + ldr r3, [r1, #4] + blx r3 + ldr r0, _022DF9EC @ =0x02326D68 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_022DF9EC: .4byte 0x02326D68 +_022DF9F0: .4byte 0x023192C8 + arm_func_end ov00_022DF9A8 + + arm_func_start ov00_022DF9F4 +ov00_022DF9F4: @ 0x022DF9F4 + push {r3, r4, r5, lr} + sub sp, sp, #0xb0 + ldr r2, _022DFC38 @ =0x02326D68 + mov r5, r0 + ldr r2, [r2] + mov r0, r1 + add r2, r2, #0x1000 + str r1, [r2, #0xc1c] + mov r1, #0 + mov r2, #0x174 + bl FUN_0207C40C + ldr r0, _022DFC38 @ =0x02326D68 + ldr r1, [r0] + add r0, r1, #0x1000 + ldr r0, [r0, #0xbac] + cmp r0, #0 + beq _022DFA4C + add r0, r1, #0x1b40 + bl FUN_02079830 + cmp r0, #0 + bne _022DFA4C + bl FUN_0207BC20 +_022DFA4C: + ldr r0, _022DFC3C @ =0x02318BC8 + ldr r1, _022DFC38 @ =0x02326D68 + ldr r0, [r0] + mov r3, #0 + ldr r4, [r1] + mov r2, #0x1000 + str r0, [sp] + str r3, [sp, #4] + str r2, [sp, #8] + ldr r2, [r4] + ldr r1, _022DFC40 @ =0x023192D8 + str r2, [sp, #0xc] + ldr r2, [r4, #4] + str r2, [sp, #0x10] + bl FUN_0208982C + cmp r0, #0 + movne r0, #1 + strne r0, [sp, #0x14] + moveq r0, #0 + ldr r2, _022DFC44 @ =0x00004E20 + streq r0, [sp, #0x14] + add r1, sp, #0 + add r0, r4, #8 + str r2, [sp, #0x18] + bl ov00_022DD0DC + cmp r0, #0 + beq _022DFAD0 + ldr r1, _022DFC48 @ =0xFFFFA1DC + mov r0, #9 + bl ov00_022E0394 + add sp, sp, #0xb0 + mov r0, #0 + pop {r3, r4, r5, pc} +_022DFAD0: + add r0, sp, #0x1c + bl ov00_022DCAB8 + cmp r0, #0 + beq _022DFB00 + ldr r0, _022DFC38 @ =0x02326D68 + add r1, sp, #0x1c + ldr r0, [r0] + mov r2, #0 + add r0, r0, #8 + bl ov00_022DCD90 + cmp r0, #0 + bne _022DFB28 +_022DFB00: + ldr r0, _022DFC38 @ =0x02326D68 + ldr r0, [r0] + add r0, r0, #8 + bl ov00_022DD890 + ldr r1, _022DFC48 @ =0xFFFFA1DC + mov r0, #9 + bl ov00_022E0394 + add sp, sp, #0xb0 + mov r0, #0 + pop {r3, r4, r5, pc} +_022DFB28: + ldr r0, _022DFC38 @ =0x02326D68 + ldr r1, _022DFC4C @ =0x023192F8 + ldr r0, [r0] + ldr r2, _022DFC50 @ =0x02319300 + add r0, r0, #8 + mov r3, #6 + bl ov00_022DDAE0 + cmp r0, #0 + bne _022DFB70 + ldr r0, _022DFC38 @ =0x02326D68 + ldr r1, _022DFC54 @ =0x02319308 + ldr r0, [r0] + mov r2, r5 + add r0, r0, #8 + mov r3, #4 + bl ov00_022DDAE0 + cmp r0, #0 + beq _022DFB98 +_022DFB70: + ldr r0, _022DFC38 @ =0x02326D68 + ldr r0, [r0] + add r0, r0, #8 + bl ov00_022DD890 + ldr r1, _022DFC48 @ =0xFFFFA1DC + mov r0, #9 + bl ov00_022E0394 + add sp, sp, #0xb0 + mov r0, #0 + pop {r3, r4, r5, pc} +_022DFB98: + ldr r0, _022DFC38 @ =0x02326D68 + ldr r0, [r0] + add r0, r0, #8 + bl ov00_022DD1F8 + cmp r0, #0 + beq _022DFBD8 + ldr r0, _022DFC38 @ =0x02326D68 + ldr r0, [r0] + add r0, r0, #8 + bl ov00_022DD890 + ldr r1, _022DFC48 @ =0xFFFFA1DC + mov r0, #9 + bl ov00_022E0394 + add sp, sp, #0xb0 + mov r0, #0 + pop {r3, r4, r5, pc} +_022DFBD8: + ldr r0, _022DFC58 @ =0x022B966C + ldr r0, [r0, #4] + bl FUN_02079B0C + ldr r1, _022DFC38 @ =0x02326D68 + ldr r2, [r1] + sub r1, r0, #1 + add r0, r2, #8 + bl ov00_022DD290 + ldr r0, _022DFC38 @ =0x02326D68 + ldr r1, [r0] + add r0, r1, #0x1000 + ldr r0, [r0, #0xbac] + cmp r0, #0 + addne sp, sp, #0xb0 + movne r0, #1 + popne {r3, r4, r5, pc} + add r0, r1, #8 + bl ov00_022DD890 + ldr r1, _022DFC48 @ =0xFFFFA1DC + mov r0, #9 + bl ov00_022E0394 + mov r0, #0 + add sp, sp, #0xb0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022DFC38: .4byte 0x02326D68 +_022DFC3C: .4byte 0x02318BC8 +_022DFC40: .4byte 0x023192D8 +_022DFC44: .4byte 0x00004E20 +_022DFC48: .4byte 0xFFFFA1DC +_022DFC4C: .4byte 0x023192F8 +_022DFC50: .4byte 0x02319300 +_022DFC54: .4byte 0x02319308 +_022DFC58: .4byte 0x022B966C + arm_func_end ov00_022DF9F4 + + arm_func_start ov00_022DFC5C +ov00_022DFC5C: @ 0x022DFC5C + push {r3, lr} + ldr r0, _022DFD28 @ =0x02326D68 + ldr r1, [r0] + cmp r1, #0 + moveq r0, #0 + popeq {r3, pc} + add r0, r1, #0x1000 + ldr r0, [r0, #0xbac] + cmp r0, #0 + moveq r0, #1 + popeq {r3, pc} + add r0, r1, #0x1b40 + bl FUN_02079830 + cmp r0, #1 + bne _022DFD20 + ldr r0, _022DFD28 @ =0x02326D68 + ldr r1, [r0] + add r0, r1, #0x1000 + ldr r0, [r0, #0x28] + cmp r0, #7 + beq _022DFCF4 + cmp r0, #8 + bne _022DFD04 + bl ov00_022DFD30 + cmp r0, #0 + bne _022DFCDC + ldr r0, _022DFD28 @ =0x02326D68 + ldr r0, [r0] + add r0, r0, #8 + bl ov00_022DD890 + mov r0, #4 + pop {r3, pc} +_022DFCDC: + ldr r0, _022DFD28 @ =0x02326D68 + ldr r0, [r0] + add r0, r0, #8 + bl ov00_022DD890 + mov r0, #3 + pop {r3, pc} +_022DFCF4: + add r0, r1, #8 + bl ov00_022DD890 + mov r0, #5 + pop {r3, pc} +_022DFD04: + add r0, r1, #8 + bl ov00_022DD890 + ldr r1, _022DFD2C @ =0xFFFFA1DB + mov r0, #0x11 + bl ov00_022E0394 + mov r0, #4 + pop {r3, pc} +_022DFD20: + mov r0, #2 + pop {r3, pc} + .align 2, 0 +_022DFD28: .4byte 0x02326D68 +_022DFD2C: .4byte 0xFFFFA1DB + arm_func_end ov00_022DFC5C + + arm_func_start ov00_022DFD30 +ov00_022DFD30: @ 0x022DFD30 + push {r3, r4, lr} + sub sp, sp, #4 + ldr r0, _022DFF20 @ =0x02326D68 + mov r1, #0 + ldr r4, [r0] + add r0, r4, #8 + bl ov00_022DE068 + cmp r0, #0 + bne _022DFD6C + ldr r1, _022DFF24 @ =0xFFFF9DF3 + mov r0, #0x10 + bl ov00_022E0394 + add sp, sp, #4 + mov r0, #0 + pop {r3, r4, pc} +_022DFD6C: + ldr r1, _022DFF28 @ =0x0231930C + add r0, r4, #8 + bl ov00_022DE308 + cmp r0, #0 + beq _022DFD84 + bl ov00_022DF6F4 +_022DFD84: + ldr r1, _022DFF2C @ =0x02319314 + add r0, r4, #8 + bl ov00_022DE308 + cmp r0, #0 + bne _022DFDB0 + ldr r1, _022DFF24 @ =0xFFFF9DF3 + mov r0, #0x10 + bl ov00_022E0394 + add sp, sp, #4 + mov r0, #0 + pop {r3, r4, pc} +_022DFDB0: + bl FUN_0208B360 + ldr r1, _022DFF30 @ =0x022BCA70 + mov r2, r0 + ldr r0, [r1] + cmp r0, #0x22 + bne _022DFDE0 + ldr r1, _022DFF24 @ =0xFFFF9DF3 + mov r0, #0x10 + bl ov00_022E0394 + add sp, sp, #4 + mov r0, #0 + pop {r3, r4, pc} +_022DFDE0: + cmp r2, #0xc8 + beq _022DFE04 + ldr r1, _022DFF34 @ =0xFFFF9E58 + mov r0, #0x10 + sub r1, r1, r2 + bl ov00_022E0394 + add sp, sp, #4 + mov r0, #0 + pop {r3, r4, pc} +_022DFE04: + ldr r1, _022DFF38 @ =0x02319320 + add r2, sp, #0 + add r0, r4, #8 + mov r3, #4 + bl ov00_022DE360 + cmp r0, #0 + bgt _022DFE38 + ldr r1, _022DFF24 @ =0xFFFF9DF3 + mov r0, #0x10 + bl ov00_022E0394 + add sp, sp, #4 + mov r0, #0 + pop {r3, r4, pc} +_022DFE38: + add r0, sp, #0 + bl FUN_0208B360 + ldr r1, _022DFF30 @ =0x022BCA70 + mov r2, r0 + ldr r0, [r1] + cmp r0, #0x22 + bne _022DFE6C + ldr r1, _022DFF24 @ =0xFFFF9DF3 + mov r0, #0x10 + bl ov00_022E0394 + add sp, sp, #4 + mov r0, #0 + pop {r3, r4, pc} +_022DFE6C: + cmp r2, #0x64 + blt _022DFE90 + ldr r1, _022DFF3C @ =0xFFFFA240 + mov r0, #0x10 + sub r1, r1, r2 + bl ov00_022E0394 + add sp, sp, #4 + mov r0, #0 + pop {r3, r4, pc} +_022DFE90: + ldr r0, _022DFF20 @ =0x02326D68 + ldr r1, _022DFF40 @ =0x0231932C + ldr r2, [r0] + add r0, r4, #8 + add r2, r2, #0x1000 + ldr r2, [r2, #0xc1c] + mov r3, #0x40 + add r2, r2, #4 + bl ov00_022DE360 + ldr r0, _022DFF20 @ =0x02326D68 + ldr r1, _022DFF44 @ =0x02319334 + ldr r2, [r0] + add r0, r4, #8 + add r2, r2, #0x1000 + ldr r2, [r2, #0xc1c] + mov r3, #0x12c + add r2, r2, #0x45 + bl ov00_022DE360 + ldr r1, _022DFF48 @ =0x02319344 + add r2, sp, #0 + add r0, r4, #8 + mov r3, #1 + bl ov00_022DE360 + ldrsb r0, [sp] + cmp r0, #0x59 + ldreq r0, _022DFF20 @ =0x02326D68 + moveq r1, #1 + ldrne r0, _022DFF20 @ =0x02326D68 + movne r1, #0 + ldr r0, [r0] + add r0, r0, #0x1000 + ldr r0, [r0, #0xc1c] + str r1, [r0] + mov r0, #1 + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_022DFF20: .4byte 0x02326D68 +_022DFF24: .4byte 0xFFFF9DF3 +_022DFF28: .4byte 0x0231930C +_022DFF2C: .4byte 0x02319314 +_022DFF30: .4byte 0x022BCA70 +_022DFF34: .4byte 0xFFFF9E58 +_022DFF38: .4byte 0x02319320 +_022DFF3C: .4byte 0xFFFFA240 +_022DFF40: .4byte 0x0231932C +_022DFF44: .4byte 0x02319334 +_022DFF48: .4byte 0x02319344 + arm_func_end ov00_022DFD30 + + arm_func_start ov00_022DFF4C +ov00_022DFF4C: @ 0x022DFF4C + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #8 + ldr r4, _022E00CC @ =0xAAAAAAAB + str r2, [sp] + umull r4, r5, r1, r4 + mov r6, #3 + lsr r5, r5, #1 + umull r4, r5, r6, r5 + mov sl, r0 + subs r5, r1, r4 + movne r5, #4 + ldr r2, _022E00CC @ =0xAAAAAAAB + ldr r0, [sp] + moveq r5, #0 + cmp r0, #0 + umull r0, r4, r1, r2 + lsr r4, r4, #1 + addeq sp, sp, #8 + add r0, r5, r4, lsl #2 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r3, r0 + addlo sp, sp, #8 + mvnlo r0, #0 + poplo {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r7, sl, r1 + ldr r8, [sp] + cmp sl, r7 + beq _022E00BC + sub fp, r2, #0x80000000 + ldr r5, _022E00D0 @ =0x02319350 + mov r4, fp +_022DFFC8: + sub sb, r7, sl + lsl r0, sb, #3 + smull r1, r2, r4, r0 + add r2, r2, r0, lsr #31 + mov r1, #6 + smull r2, r3, r1, r2 + subs r2, r0, r2 + smull r1, r2, fp, r0 + movne r3, #1 + moveq r3, #0 + add r2, r2, r0, lsr #31 + cmp sb, #3 + add r6, r2, r3 + movge sb, #3 + add r0, sp, #4 + mov r1, #0 + mov r2, #3 + bl FUN_0207C40C + mov r0, sl + add r1, sp, #4 + mov r2, sb + bl FUN_0207C4C8 + ldrb r0, [sp, #4] + ldr r1, [r5] + cmp r6, #2 + asr r0, r0, #2 + ldrsb r0, [r1, r0] + strb r0, [r8] + movlt r0, #0x2a + blt _022E005C + ldrb r2, [sp, #4] + ldrb r1, [sp, #5] + ldr r0, [r5] + lsl r2, r2, #4 + and r2, r2, #0x3f + orr r1, r2, r1, asr #4 + ldrsb r0, [r0, r1] +_022E005C: + strb r0, [r8, #1] + cmp r6, #3 + movlt r0, #0x2a + blt _022E0088 + ldrb r2, [sp, #5] + ldrb r1, [sp, #6] + ldr r0, [r5] + lsl r2, r2, #2 + and r2, r2, #0x3f + orr r1, r2, r1, asr #6 + ldrsb r0, [r0, r1] +_022E0088: + strb r0, [r8, #2] + cmp r6, #4 + movlt r0, #0x2a + blt _022E00A8 + ldrb r0, [sp, #6] + ldr r1, [r5] + and r0, r0, #0x3f + ldrsb r0, [r1, r0] +_022E00A8: + add sl, sl, sb + strb r0, [r8, #3] + cmp sl, r7 + add r8, r8, #4 + bne _022DFFC8 +_022E00BC: + ldr r0, [sp] + sub r0, r8, r0 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022E00CC: .4byte 0xAAAAAAAB +_022E00D0: .4byte 0x02319350 + arm_func_end ov00_022DFF4C + + arm_func_start ov00_022E00D4 +ov00_022E00D4: @ 0x022E00D4 + push {r3, r4, r5, r6, r7, lr} + tst r1, #3 + mvnne r0, #0 + popne {r3, r4, r5, r6, r7, pc} + mov r5, #0 + mov ip, r5 + cmp r1, #0 + bls _022E010C +_022E00F4: + ldrsb r4, [r0, ip] + add ip, ip, #1 + cmp r4, #0x2a + addne r5, r5, #6 + cmp ip, r1 + blo _022E00F4 +_022E010C: + asr ip, r5, #2 + add ip, r5, ip, lsr #29 + asr ip, ip, #3 + cmp r2, #0 + moveq r0, ip + popeq {r3, r4, r5, r6, r7, pc} + cmp r3, ip + mvnlo r0, #0 + poplo {r3, r4, r5, r6, r7, pc} + cmp r1, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + mov r1, r2 +_022E0140: + mov r7, #0 + add r6, sp, #0 + mov r3, r7 + mov r4, #0x3f + mov lr, #0x3e +_022E0154: + ldrsb r5, [r0, r7] + cmp r5, #0x41 + blt _022E0170 + cmp r5, #0x5a + suble r5, r5, #0x41 + strble r5, [r6] + ble _022E01B8 +_022E0170: + cmp r5, #0x61 + blt _022E0188 + cmp r5, #0x7a + suble r5, r5, #0x47 + strble r5, [r6] + ble _022E01B8 +_022E0188: + cmp r5, #0x30 + blt _022E01A0 + cmp r5, #0x39 + addle r5, r5, #4 + strble r5, [r6] + ble _022E01B8 +_022E01A0: + cmp r5, #0x2e + strbeq lr, [r6] + beq _022E01B8 + cmp r5, #0x2d + strbeq r4, [r6] + strbne r3, [r6] +_022E01B8: + add r7, r7, #1 + cmp r7, #4 + add r6, r6, #1 + blt _022E0154 + ldrsb r4, [sp, #1] + ldrsb lr, [sp] + add r3, r1, #1 + asr r4, r4, #4 + orr r4, r4, lr, lsl #2 + sub r3, r3, r2 + strb r4, [r1] + cmp r3, ip + add r0, r0, #4 + bge _022E0234 + ldrsb lr, [sp, #2] + ldrsb r4, [sp, #1] + add r3, r1, #2 + asr lr, lr, #2 + orr r4, lr, r4, lsl #4 + sub r3, r3, r2 + strb r4, [r1, #1] + cmp r3, ip + bge _022E0234 + ldrsb lr, [sp, #2] + ldrsb r3, [sp, #3] + orr r3, r3, lr, lsl #6 + strb r3, [r1, #2] + add r1, r1, #3 + sub r3, r1, r2 + cmp r3, ip + blt _022E0140 +_022E0234: + mov r0, r3 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022E00D4 + + arm_func_start ov00_022E023C +ov00_022E023C: @ 0x022E023C + cmp r0, #0 + ldrne r1, _022E0258 @ =0x02326D6C + ldrne r1, [r1, #4] + strne r1, [r0] + ldr r0, _022E0258 @ =0x02326D6C + ldr r0, [r0] + bx lr + .align 2, 0 +_022E0258: .4byte 0x02326D6C + arm_func_end ov00_022E023C + + arm_func_start ov00_022E025C +ov00_022E025C: @ 0x022E025C + cmp r0, #0 + ldrne r2, _022E0354 @ =0x02326D6C + ldrne r2, [r2, #4] + strne r2, [r0] + cmp r1, #0 + beq _022E0348 + ldr r0, _022E0354 @ =0x02326D6C + ldr r0, [r0] + cmp r0, #0x15 + addls pc, pc, r0, lsl #2 + b _022E0340 +_022E0288: @ jump table + b _022E0340 @ case 0 + b _022E0310 @ case 1 + b _022E02E0 @ case 2 + b _022E02E0 @ case 3 + b _022E02E0 @ case 4 + b _022E02E0 @ case 5 + b _022E02EC @ case 6 + b _022E02F8 @ case 7 + b _022E02E0 @ case 8 + b _022E0310 @ case 9 + b _022E0304 @ case 10 + b _022E0304 @ case 11 + b _022E0304 @ case 12 + b _022E0304 @ case 13 + b _022E031C @ case 14 + b _022E0328 @ case 15 + b _022E0334 @ case 16 + b _022E0328 @ case 17 + b _022E0334 @ case 18 + b _022E0328 @ case 19 + b _022E0334 @ case 20 + b _022E0334 @ case 21 +_022E02E0: + mov r0, #6 + str r0, [r1] + b _022E0348 +_022E02EC: + mov r0, #3 + str r0, [r1] + b _022E0348 +_022E02F8: + mov r0, #4 + str r0, [r1] + b _022E0348 +_022E0304: + mov r0, #1 + str r0, [r1] + b _022E0348 +_022E0310: + mov r0, #7 + str r0, [r1] + b _022E0348 +_022E031C: + mov r0, #5 + str r0, [r1] + b _022E0348 +_022E0328: + mov r0, #6 + str r0, [r1] + b _022E0348 +_022E0334: + mov r0, #2 + str r0, [r1] + b _022E0348 +_022E0340: + mov r0, #0 + str r0, [r1] +_022E0348: + ldr r0, _022E0354 @ =0x02326D6C + ldr r0, [r0] + bx lr + .align 2, 0 +_022E0354: .4byte 0x02326D6C + arm_func_end ov00_022E025C + + arm_func_start ov00_022E0358 +ov00_022E0358: @ 0x022E0358 + ldr r0, _022E0374 @ =0x02326D6C + ldr r1, [r0] + cmp r1, #9 + movne r1, #0 + strne r1, [r0] + strne r1, [r0, #4] + bx lr + .align 2, 0 +_022E0374: .4byte 0x02326D6C + arm_func_end ov00_022E0358 + + arm_func_start ov00_022E0378 +ov00_022E0378: @ 0x022E0378 + ldr r0, _022E0390 @ =0x02326D6C + ldr r0, [r0] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + bx lr + .align 2, 0 +_022E0390: .4byte 0x02326D6C + arm_func_end ov00_022E0378 + + arm_func_start ov00_022E0394 +ov00_022E0394: @ 0x022E0394 + ldr r2, _022E03A8 @ =0x02326D6C + ldr r3, [r2] + cmp r3, #9 + stmne r2, {r0, r1} + bx lr + .align 2, 0 +_022E03A8: .4byte 0x02326D6C + arm_func_end ov00_022E0394 + + arm_func_start ov00_022E03AC +ov00_022E03AC: @ 0x022E03AC + sub r0, r0, #0x20 + bx lr + arm_func_end ov00_022E03AC + + arm_func_start ov00_022E03B4 +ov00_022E03B4: @ 0x022E03B4 + ldr r2, _022E03C8 @ =0x4457434D + str r2, [r0] + str r1, [r0, #4] + add r0, r0, #0x20 + bx lr + .align 2, 0 +_022E03C8: .4byte 0x4457434D + arm_func_end ov00_022E03B4 + + arm_func_start ov00_022E03CC +ov00_022E03CC: @ 0x022E03CC + push {r3, lr} + bl ov00_022E03AC + ldr r0, [r0, #4] + pop {r3, pc} + arm_func_end ov00_022E03CC + + arm_func_start ov00_022E03DC +ov00_022E03DC: @ 0x022E03DC + ldr r2, _022E03EC @ =0x02326D74 + str r0, [r2, #4] + str r1, [r2] + bx lr + .align 2, 0 +_022E03EC: .4byte 0x02326D74 + arm_func_end ov00_022E03DC + + arm_func_start ov00_022E03F0 +ov00_022E03F0: @ 0x022E03F0 + ldr ip, _022E03FC @ =ov00_022E0400 + mov r2, #0x20 + bx ip + .align 2, 0 +_022E03FC: .4byte ov00_022E0400 + arm_func_end ov00_022E03F0 + + arm_func_start ov00_022E0400 +ov00_022E0400: @ 0x022E0400 + push {r4, lr} + ldr r3, _022E0430 @ =0x02326D74 + mov r4, r1 + ldr r3, [r3, #4] + add r1, r4, #0x20 + blx r3 + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} + mov r1, r4 + bl ov00_022E03B4 + pop {r4, pc} + .align 2, 0 +_022E0430: .4byte 0x02326D74 + arm_func_end ov00_022E0400 + + arm_func_start ov00_022E0434 +ov00_022E0434: @ 0x022E0434 + push {r4, lr} + mov r4, r0 + cmp r1, #0 + popeq {r4, pc} + mov r0, r1 + bl ov00_022E03AC + mov r1, r0 + ldr r0, _022E046C @ =0x02326D74 + ldr r2, [r1, #4] + ldr r3, [r0] + mov r0, r4 + add r2, r2, #0x20 + blx r3 + pop {r4, pc} + .align 2, 0 +_022E046C: .4byte 0x02326D74 + arm_func_end ov00_022E0434 +_022E0470: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x20, 0xC0, 0xA0, 0xE3, 0x00, 0xC0, 0x8D, 0xE5, 0x00, 0x00, 0x00, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov00_022E0484 +ov00_022E0484: @ 0x022E0484 + push {r4, r5, r6, r7, r8, lr} + mov r5, r3 + mov r7, r1 + ldr r2, [sp, #0x18] + mov r1, r5 + mov r8, r0 + bl ov00_022E0400 + movs r4, r0 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, pc} + cmp r7, #0 + beq _022E04E8 + mov r0, r7 + bl ov00_022E03CC + mov r6, r0 + cmp r6, r5 + movls r5, r6 + mov r0, r7 + mov r1, r4 + mov r2, r5 + bl FUN_0207C4C8 + mov r0, r8 + mov r1, r7 + mov r2, r6 + bl ov00_022E0434 +_022E04E8: + mov r0, r4 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022E0484 +_022E04F0: + .byte 0x08, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0xF0, 0x03, 0x2E, 0x02, 0x10, 0xC0, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE1, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x02, 0x30, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x70, 0x04, 0x2E, 0x02 + + arm_func_start ov00_022E0520 +ov00_022E0520: @ 0x022E0520 + ldr ip, _022E0534 @ =ov00_022E0434 + mov r1, r0 + mov r0, #5 + mov r2, #0 + bx ip + .align 2, 0 +_022E0534: .4byte ov00_022E0434 + arm_func_end ov00_022E0520 +_022E0538: + .byte 0x08, 0xC0, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE1 + .byte 0x05, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x00, 0x04, 0x2E, 0x02 + + arm_func_start ov00_022E054C +ov00_022E054C: @ 0x022E054C + push {r4, r5, r6, lr} + ldr r2, _022E05AC @ =0x02326D7C + mov r4, r0 + ldr r2, [r2, #4] + mov r6, r1 + mov r5, r3 + cmp r2, #0 + popne {r4, r5, r6, pc} + mov r1, #0 + mov r2, #0x64 + bl FUN_0207C40C + strh r6, [r4, #8] + mov r0, #1 + strh r0, [r4, #0xa] + strh r0, [r4, #4] + mov r0, #0 + strh r0, [r4, #6] + strb r0, [r4, #0xc] + ldr r1, _022E05AC @ =0x02326D7C + str r0, [r4, #0x10] + mov r0, r5 + str r4, [r1, #4] + bl ov00_022CFDBC + pop {r4, r5, r6, pc} + .align 2, 0 +_022E05AC: .4byte 0x02326D7C + arm_func_end ov00_022E054C + + arm_func_start ov00_022E05B0 +ov00_022E05B0: @ 0x022E05B0 + ldr ip, _022E05C4 @ =ov00_022E054C + mov r1, #3 + mov r2, #1 + mov r3, #0x14 + bx ip + .align 2, 0 +_022E05C4: .4byte ov00_022E054C + arm_func_end ov00_022E05B0 + + arm_func_start ov00_022E05C8 +ov00_022E05C8: @ 0x022E05C8 + push {r3, lr} + cmp r0, #0 + beq _022E05E8 + cmp r0, #1 + beq _022E05F4 + cmp r0, #2 + beq _022E0600 + pop {r3, pc} +_022E05E8: + ldr r0, _022E060C @ =0x0231A0E0 + bl ov00_022DBC84 + pop {r3, pc} +_022E05F4: + ldr r0, _022E0610 @ =0x0231A108 + bl ov00_022DBC84 + pop {r3, pc} +_022E0600: + ldr r0, _022E0614 @ =0x0231A12C + bl ov00_022DBC84 + pop {r3, pc} + .align 2, 0 +_022E060C: .4byte 0x0231A0E0 +_022E0610: .4byte 0x0231A108 +_022E0614: .4byte 0x0231A12C + arm_func_end ov00_022E05C8 + + arm_func_start ov00_022E0618 +ov00_022E0618: @ 0x022E0618 + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr r0, _022E06BC @ =0x02326D7C + ldr r0, [r0, #4] + cmp r0, #0 + beq _022E06A8 + ldrh r0, [r0, #4] + cmp r0, #1 + addne sp, sp, #0xc + ldmne sp!, {pc} + add r0, sp, #0 + mov r1, #0 + mov r2, #0xc + bl FUN_0207C40C + ldr r0, _022E06BC @ =0x02326D7C + ldr r3, _022E06C0 @ =ov00_022E03F0 + ldr lr, [r0, #4] + ldr r2, _022E06C4 @ =ov00_022E0434 + ldrh ip, [lr, #8] + add r0, sp, #0 + mov r1, #2 + strb ip, [sp, #8] + ldrh ip, [lr, #0xa] + strb ip, [sp, #9] + str r3, [sp] + str r2, [sp, #4] + strh r1, [lr, #4] + bl ov00_022D75EC + cmp r0, #0 + addne sp, sp, #0xc + ldmne sp!, {pc} + ldr r1, _022E06C8 @ =0xFFFF3BE9 + mov r0, #9 + bl ov00_022E0394 + add sp, sp, #0xc + ldm sp!, {pc} +_022E06A8: + ldr r1, _022E06C8 @ =0xFFFF3BE9 + mov r0, #9 + bl ov00_022E0394 + add sp, sp, #0xc + ldm sp!, {pc} + .align 2, 0 +_022E06BC: .4byte 0x02326D7C +_022E06C0: .4byte ov00_022E03F0 +_022E06C4: .4byte ov00_022E0434 +_022E06C8: .4byte 0xFFFF3BE9 + arm_func_end ov00_022E0618 + + arm_func_start ov00_022E06CC +ov00_022E06CC: @ 0x022E06CC push {r3, r4, r5, r6, r7, lr} mov r7, r0 mov r6, r1 mov r5, r2 mov r4, r3 - bl FUN_02081a00 - cmp r0, #0 - moveq r0, #1 - popeq {r3, r4, r5, r6, r7, pc} - and r0, r7, #0xff - ldr r1, _02081E10 @ =0x022BB6AC - orr r0, r0, #0x6400 - str r5, [r1, #0x20] - orr r0, r0, #0x2000000 - str r4, [r1, #0x24] - bl FUN_020820bc - ldr r1, _02081E14 @ =0x01010000 - lsl r0, r6, #0x10 - orr r0, r1, r0, lsr #16 - bl FUN_020820bc - mov r0, #0 + bl ov00_022E0618 + ldr r0, _022E0724 @ =0x02326D7C + ldr r1, [r0, #4] + cmp r1, #0 + movne r0, #1 + strbne r0, [r1, #0xc] + bl ov00_022E089C + cmp r0, #2 + popne {r3, r4, r5, r6, r7, pc} + ldr ip, [sp, #0x18] + mov r0, r7 + mov r1, r6 + mov r2, r5 + mov r3, r4 + str ip, [sp] + bl ov00_022D7994 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 -_02081E10: .4byte 0x022BB6AC -_02081E14: .4byte 0x01010000 - arm_func_end FUN_02081db8 +_022E0724: .4byte 0x02326D7C + arm_func_end ov00_022E06CC - arm_func_start FUN_02081e18 -FUN_02081e18: @ 0x02081E18 + arm_func_start ov00_022E0728 +ov00_022E0728: @ 0x022E0728 push {r3, lr} - ldr r2, _02081E3C @ =0x02081A7C - add r3, sp, #0 - bl FUN_02081db8 + ldr r0, _022E077C @ =0x02326D7C + ldr r1, [r0, #4] + cmp r1, #0 + moveq r0, #0 + popeq {r3, pc} + ldr r0, [r1] cmp r0, #0 - popne {r3, pc} - bl FUN_02081a3c - ldr r0, [sp] - pop {r3, pc} - .align 2, 0 -_02081E3C: .4byte 0x02081A7C - arm_func_end FUN_02081e18 - - arm_func_start FUN_02081e40 -FUN_02081e40: @ 0x02081E40 - push {r3, lr} - cmp r0, #1 - beq _02081E60 - cmp r0, #2 - beq _02081E70 - cmp r0, #3 - beq _02081E68 - b _02081E78 -_02081E60: - mov r0, #1 - b _02081E7C -_02081E68: - mov r0, #2 - b _02081E7C -_02081E70: + beq _022E0774 mov r0, #3 - b _02081E7C -_02081E78: + strh r0, [r1, #4] + bl ov00_022E089C + ldr r0, _022E077C @ =0x02326D7C + ldr r0, [r0, #4] + ldrb r0, [r0, #0xc] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, pc} +_022E0774: mov r0, #0 -_02081E7C: - cmp r0, #0 - ldreq r0, _02081E90 @ =0x0000FFFF + pop {r3, pc} + .align 2, 0 +_022E077C: .4byte 0x02326D7C + arm_func_end ov00_022E0728 + + arm_func_start ov00_022E0780 +ov00_022E0780: @ 0x022E0780 + push {r3, lr} + ldr r0, _022E0898 @ =0x02326D7C + ldr r1, [r0, #4] + cmp r1, #0 popeq {r3, pc} - bl FUN_02081cc4 + ldr r0, [r1, #0x10] + cmp r0, #5 + addls pc, pc, r0, lsl #2 + b _022E0838 +_022E07A4: @ jump table + b _022E0838 @ case 0 + b _022E07BC @ case 1 + b _022E07D8 @ case 2 + b _022E0814 @ case 3 + b _022E0834 @ case 4 + b _022E0834 @ case 5 +_022E07BC: + mov r0, #0 + str r0, [r1] + bl ov00_022DAC0C + ldr r1, _022E0898 @ =0x02326D7C + ldr r1, [r1, #4] + str r0, [r1, #0x10] pop {r3, pc} - .align 2, 0 -_02081E90: .4byte 0x0000FFFF - arm_func_end FUN_02081e40 - - arm_func_start FUN_02081e94 -FUN_02081e94: @ 0x02081E94 - push {r3, lr} - ldr r1, _02081EB8 @ =0x02081A7C - add r2, sp, #0 - bl FUN_02081e40 - cmp r0, #0 - popne {r3, pc} - bl FUN_02081a3c - ldr r0, [sp] +_022E07D8: + bl ov00_022DAF60 + ldr r0, _022E0898 @ =0x02326D7C + mov r1, #8 + ldr r3, [r0, #4] + str r1, [sp] + ldr r2, [r3, #0x54] + add r0, r3, #0x14 + add r1, r3, #0x34 + add r3, r3, #0x58 + bl ov00_022E06CC + ldr r0, _022E0898 @ =0x02326D7C + mov r1, #0 + ldr r0, [r0, #4] + str r1, [r0, #0x10] pop {r3, pc} - .align 2, 0 -_02081EB8: .4byte 0x02081A7C - arm_func_end FUN_02081e94 - - arm_func_start FUN_02081ebc -FUN_02081ebc: @ 0x02081EBC - push {r3, lr} - cmp r0, #0 - mov ip, #0 - bne _02081EE0 - cmp r1, #1 - moveq ip, #6 - cmp r1, #0 - moveq ip, #7 - b _02081F14 -_02081EE0: - cmp r0, #1 - bne _02081EFC - cmp r1, #1 - moveq ip, #4 - cmp r1, #0 - moveq ip, #5 - b _02081F14 -_02081EFC: +_022E0814: + bl ov00_022DAF60 + ldr r0, _022E0898 @ =0x02326D7C + mvn r3, #0 + ldr r2, [r0, #4] + mov r1, #1 + str r3, [r2] + ldr r0, [r0, #4] + strb r1, [r0, #0xc] +_022E0834: + pop {r3, pc} +_022E0838: + ldrh r0, [r1, #4] cmp r0, #2 - bne _02081F14 - cmp r1, #1 - moveq ip, #8 - cmp r1, #0 - moveq ip, #9 -_02081F14: - cmp ip, #0 - ldreq r0, _02081F34 @ =0x0000FFFF + bne _022E0858 + bl ov00_022D7794 + ldr r1, _022E0898 @ =0x02326D7C + ldr r1, [r1, #4] + str r0, [r1] + pop {r3, pc} +_022E0858: + cmp r0, #4 + popne {r3, pc} + ldrh r0, [r1, #6] + cmp r0, #0 popeq {r3, pc} - mov r1, r2 - mov r0, ip - mov r2, r3 - bl FUN_02081cc4 + bl ov00_022D5640 + cmp r0, #9 + popeq {r3, pc} + ldr r0, _022E0898 @ =0x02326D7C + mov r3, #0 + ldr r2, [r0, #4] + mov r1, #6 + strh r3, [r2, #6] + ldr r0, [r0, #4] + strh r1, [r0, #4] pop {r3, pc} .align 2, 0 -_02081F34: .4byte 0x0000FFFF - arm_func_end FUN_02081ebc +_022E0898: .4byte 0x02326D7C + arm_func_end ov00_022E0780 - arm_func_start FUN_02081f38 -FUN_02081f38: @ 0x02081F38 + arm_func_start ov00_022E089C +ov00_022E089C: @ 0x022E089C + push {r3, r4, r5, r6, r7, lr} + ldr r0, _022E0A68 @ =0x02326D7C + ldr r1, [r0, #4] + cmp r1, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldr r0, [r1, #0x10] + cmp r0, #5 + addls pc, pc, r0, lsl #2 + b _022E0930 +_022E08C4: @ jump table + b _022E0930 @ case 0 + b _022E08DC @ case 1 + b _022E08E4 @ case 2 + b _022E08EC @ case 3 + b _022E0920 @ case 4 + b _022E0928 @ case 5 +_022E08DC: + mov r0, #2 + pop {r3, r4, r5, r6, r7, pc} +_022E08E4: + mov r0, #2 + pop {r3, r4, r5, r6, r7, pc} +_022E08EC: + bl ov00_022E0780 + ldr r1, _022E0A68 @ =0x02326D7C + mov r0, #5 + ldr r1, [r1] + bl ov00_022E0394 + ldr r1, _022E0A68 @ =0x02326D7C + mov r0, #7 + ldr r3, [r1, #4] + mov r2, #4 + strh r0, [r3, #4] + ldr r1, [r1, #4] + str r2, [r1, #0x10] + pop {r3, r4, r5, r6, r7, pc} +_022E0920: + mov r0, #7 + pop {r3, r4, r5, r6, r7, pc} +_022E0928: + mov r0, #5 + pop {r3, r4, r5, r6, r7, pc} +_022E0930: + ldrh r0, [r1, #4] + cmp r0, #1 + popeq {r3, r4, r5, r6, r7, pc} + bl ov00_022D7864 + mov r4, r0 + cmp r4, #5 + bne _022E0974 + ldr r1, _022E0A68 @ =0x02326D7C + mov r0, #4 + ldr r2, [r1, #4] + mov r3, #1 + strh r0, [r2, #4] + ldr r2, [r1, #4] + strh r3, [r2, #6] + ldr r1, [r1, #4] + strb r3, [r1, #0xc] + pop {r3, r4, r5, r6, r7, pc} +_022E0974: + cmp r4, #0 + bge _022E0A60 + mvn r0, #9 + cmp r4, r0 + blt _022E09B8 + ldr r0, _022E0A68 @ =0x02326D7C + ldr r1, _022E0A6C @ =0xFFFF3BE9 + ldr r2, [r0, #4] + mov r3, #1 + mov r0, #9 + strb r3, [r2, #0xc] + bl ov00_022E0394 + ldr r1, _022E0A68 @ =0x02326D7C + mov r0, #8 + ldr r1, [r1, #4] + strh r0, [r1, #4] + pop {r3, r4, r5, r6, r7, pc} +_022E09B8: + ldr r0, _022E0A68 @ =0x02326D7C + ldr r5, [r0, #4] + ldrb r1, [r5, #0xc] + cmp r1, #0 + bne _022E0A34 + ldrh r7, [r5, #8] + bl ov00_022CFDAC + ldr r1, _022E0A68 @ =0x02326D7C + mov r6, r0 + str r4, [r1] + bl ov00_022E0A70 + lsl r2, r6, #0x10 + lsr r3, r2, #0x10 + mov r0, r5 + mov r1, r7 + mov r2, #1 + bl ov00_022E054C + ldr r0, _022E0A68 @ =0x02326D7C + mov r1, #1 + ldr r0, [r0, #4] + add r0, r0, #0x14 + bl ov00_022DAB9C + ldr r1, _022E0A68 @ =0x02326D7C + mov r3, #1 + ldr r2, [r1, #4] + mov r0, #2 + str r3, [r2, #0x10] + ldr r1, [r1, #4] + mov r2, #0 + str r2, [r1] + pop {r3, r4, r5, r6, r7, pc} +_022E0A34: + ldr r0, [r0] + cmp r0, r4 + movlt r4, r0 + mov r1, r4 + mov r0, #5 + bl ov00_022E0394 + ldr r1, _022E0A68 @ =0x02326D7C + mov r0, #7 + ldr r1, [r1, #4] + strh r0, [r1, #4] + pop {r3, r4, r5, r6, r7, pc} +_022E0A60: + mov r0, #2 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022E0A68: .4byte 0x02326D7C +_022E0A6C: .4byte 0xFFFF3BE9 + arm_func_end ov00_022E089C + + arm_func_start ov00_022E0A70 +ov00_022E0A70: @ 0x022E0A70 + push {r4, lr} + ldr r0, _022E0AF8 @ =0x02326D7C + ldr r1, [r0, #4] + cmp r1, #0 + popeq {r4, pc} + ldrh r0, [r1, #4] + cmp r0, #1 + bne _022E0AC4 + ldr r0, [r1, #0x10] + cmp r0, #1 + bne _022E0AB4 + bl ov00_022DAF44 +_022E0AA0: + bl ov00_022DAC0C + sub r0, r0, #2 + cmp r0, #2 + bhi _022E0AA0 + bl ov00_022DAF60 +_022E0AB4: + ldr r0, _022E0AF8 @ =0x02326D7C + mov r1, #0 + str r1, [r0, #4] + pop {r4, pc} +_022E0AC4: + bl ov00_022D7958 + cmp r0, #0 + bne _022E0AE8 + mov r4, #0xa +_022E0AD4: + mov r0, r4 + bl FUN_02079B14 + bl ov00_022D7958 + cmp r0, #0 + beq _022E0AD4 +_022E0AE8: + ldr r0, _022E0AF8 @ =0x02326D7C + mov r1, #0 + str r1, [r0, #4] + pop {r4, pc} + .align 2, 0 +_022E0AF8: .4byte 0x02326D7C + arm_func_end ov00_022E0A70 + + arm_func_start ov00_022E0AFC +ov00_022E0AFC: @ 0x022E0AFC push {r3, lr} - ldr r2, _02081F5C @ =0x02081A7C - add r3, sp, #0 - bl FUN_02081ebc + ldr r0, _022E0BBC @ =0x02326D7C + ldr r1, [r0, #4] + cmp r1, #0 + moveq r0, #1 + popeq {r3, pc} + ldrh r0, [r1, #4] + cmp r0, #8 + moveq r0, #0 + popeq {r3, pc} + cmp r0, #1 + bne _022E0B90 + ldr r0, [r1, #0x10] + cmp r0, #1 + bne _022E0B54 + bl ov00_022DAF44 + ldr r0, _022E0BBC @ =0x02326D7C + mov r2, #5 + ldr r1, [r0, #4] + mov r0, #0 + str r2, [r1, #0x10] + pop {r3, pc} +_022E0B54: + cmp r0, #5 + bne _022E0B7C + bl ov00_022DAC0C + cmp r0, #1 + moveq r0, #0 + popeq {r3, pc} + sub r0, r0, #2 + cmp r0, #2 + bhi _022E0B7C + bl ov00_022DAF60 +_022E0B7C: + ldr r0, _022E0BBC @ =0x02326D7C + mov r1, #0 + str r1, [r0, #4] + mov r0, #1 + pop {r3, pc} +_022E0B90: + mov r0, #5 + strh r0, [r1, #4] + bl ov00_022D7958 + cmp r0, #0 + moveq r0, #0 + popeq {r3, pc} + ldr r0, _022E0BBC @ =0x02326D7C + mov r1, #0 + str r1, [r0, #4] + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_022E0BBC: .4byte 0x02326D7C + arm_func_end ov00_022E0AFC + + arm_func_start ov00_022E0BC0 +ov00_022E0BC0: @ 0x022E0BC0 + ldr r0, _022E0BE8 @ =0x02326D7C + ldr r0, [r0, #4] + cmp r0, #0 + beq _022E0BE0 + ldrh r0, [r0, #4] + cmp r0, #6 + moveq r0, #1 + bxeq lr +_022E0BE0: + mov r0, #0 + bx lr + .align 2, 0 +_022E0BE8: .4byte 0x02326D7C + arm_func_end ov00_022E0BC0 +_022E0BEC: + .byte 0x00, 0xC0, 0x9F, 0xE5 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x94, 0x74, 0x2D, 0x02 + + arm_func_start ov00_022E0BF8 +ov00_022E0BF8: @ 0x022E0BF8 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0xc + mov r1, #0 + mov r2, #0x3c + mov r4, r0 + bl FUN_0207C40C + mov r0, #0xff + str r0, [r4, #4] + bl ov00_022E089C + cmp r0, #4 + addne sp, sp, #0xc + movne r0, #0 + popne {r3, r4, r5, r6, pc} + bl ov00_022D78D0 + str r0, [r4] + cmp r0, #0xff + beq _022E0C44 + cmp r0, #0x63 + ble _022E0C58 +_022E0C44: + mov r0, #0x63 + str r0, [r4] + add sp, sp, #0xc + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_022E0C58: + bl FUN_0207B7E4 + mov r6, r0 + bl ov00_022D7140 + mov r5, r0 + mov r1, #6 + bl FUN_0207A2A4 + cmp r5, #0 + bne _022E0C8C + mov r0, r6 + bl FUN_0207B7F8 + add sp, sp, #0xc + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_022E0C8C: + mov r0, r5 + add r1, r4, #0x33 + mov r2, #6 + bl FUN_0207C4C8 + ldr r0, [r4] + cmp r0, #0 + blt _022E0CF0 + cmp r0, #3 + bge _022E0CF0 + add r0, sp, #0 + bl ov00_022D7184 + mov r5, r0 + mov r1, #0x20 + bl FUN_0207A2A4 + cmp r5, #0 + bne _022E0CE0 + mov r0, r6 + bl FUN_0207B7F8 + add sp, sp, #0xc + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_022E0CE0: + ldrh r2, [sp] + mov r0, r5 + add r1, r4, #0x12 + bl FUN_0207C4C8 +_022E0CF0: + mov r0, r6 + bl FUN_0207B7F8 + add r0, sp, #2 + bl ov00_022D7900 + cmp r0, #0 + beq _022E0D44 + ldrb r1, [sp, #2] + mov r0, #0 + cmp r1, #0x30 + blo _022E0D20 + cmp r1, #0x39 + movls r0, #1 +_022E0D20: + cmp r0, #0 + subne r3, r1, #0x30 + moveq r3, #0xff + add r0, sp, #3 + add r1, r4, #8 + mov r2, #9 + str r3, [r4, #4] + bl FUN_0207C4C8 + b _022E0D4C +_022E0D44: + mov r0, #0xff + str r0, [r4, #4] +_022E0D4C: + mov r0, #1 + add sp, sp, #0xc + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_022E0BF8 + + arm_func_start ov00_022E0D58 +ov00_022E0D58: @ 0x022E0D58 + push {r3, lr} + bl ov00_022E0780 + bl ov00_022E0BC0 + cmp r0, #0 + beq _022E0DA0 + bl ov00_022D78D0 + mov r2, r0 + cmp r2, #0xff + beq _022E0D84 + cmp r2, #0x63 + bls _022E0D88 +_022E0D84: + mov r2, #0x63 +_022E0D88: + ldr r1, _022E0DA8 @ =0xFFFF2D10 + mov r0, #8 + sub r1, r1, r2 + bl ov00_022E0394 + mov r0, #1 + pop {r3, pc} +_022E0DA0: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_022E0DA8: .4byte 0xFFFF2D10 + arm_func_end ov00_022E0D58 + + arm_func_start ov00_022E0DAC +ov00_022E0DAC: @ 0x022E0DAC + ldr r0, _022E0DB8 @ =0x02326CB4 + ldr r0, [r0] + bx lr + .align 2, 0 +_022E0DB8: .4byte 0x02326CB4 + arm_func_end ov00_022E0DAC + + arm_func_start ov00_022E0DBC +ov00_022E0DBC: @ 0x022E0DBC + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + ldr r0, _022E0E24 @ =ov00_022E03F0 + ldr r1, _022E0E28 @ =ov00_022E0434 + bl ov00_022DF910 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + mov r0, r5 + bl FUN_02089678 + cmp r0, #0 + bne _022E0E00 + ldr r0, _022E0E2C @ =0x0231A14C + mov r1, r4 + bl ov00_022DF9F4 + b _022E0E0C +_022E0E00: + mov r0, r5 + mov r1, r4 + bl ov00_022DF9F4 +_022E0E0C: + cmp r0, #0 + movne r0, #1 + popne {r3, r4, r5, pc} + bl ov00_022DF9A8 + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022E0E24: .4byte ov00_022E03F0 +_022E0E28: .4byte ov00_022E0434 +_022E0E2C: .4byte 0x0231A14C + arm_func_end ov00_022E0DBC + + arm_func_start ov00_022E0E30 +ov00_022E0E30: @ 0x022E0E30 + push {r4, lr} + bl ov00_022DFC5C + mov r4, r0 + sub r0, r4, #3 + cmp r0, #2 + bhi _022E0E4C + bl ov00_022DF9A8 +_022E0E4C: + mov r0, r4 + pop {r4, pc} + arm_func_end ov00_022E0E30 + + arm_func_start ov00_022E0E54 +ov00_022E0E54: @ 0x022E0E54 + ldr ip, _022E0E68 @ =ov00_022E0400 + mov r2, r1 + mov r1, r0 + mov r0, #6 + bx ip + .align 2, 0 +_022E0E68: .4byte ov00_022E0400 + arm_func_end ov00_022E0E54 + + arm_func_start ov00_022E0E6C +ov00_022E0E6C: @ 0x022E0E6C + ldr ip, _022E0E80 @ =ov00_022E0434 + mov r1, r0 + mov r0, #6 + mov r2, #0 + bx ip + .align 2, 0 +_022E0E80: .4byte ov00_022E0434 + arm_func_end ov00_022E0E6C + + arm_func_start ov00_022E0E84 +ov00_022E0E84: @ 0x022E0E84 + push {r4, r5, r6, lr} + movs r5, r1 + mov r6, r0 + mov r4, r2 + bne _022E0EAC + ldr r3, _022E0F64 @ =0x02326D84 + ldr r3, [r3] + ldr r3, [r3] + blx r3 + pop {r4, r5, r6, pc} +_022E0EAC: + cmp r5, #8 + addls pc, pc, r5, lsl #2 + b _022E0F40 +_022E0EB8: @ jump table + b _022E0F40 @ case 0 + b _022E0EDC @ case 1 + b _022E0EEC @ case 2 + b _022E0EF4 @ case 3 + b _022E0F04 @ case 4 + b _022E0F14 @ case 5 + b _022E0F44 @ case 6 + b _022E0F28 @ case 7 + b _022E0F30 @ case 8 +_022E0EDC: + ldr r1, _022E0F68 @ =0xFFFF86E7 + mov r0, #9 + bl ov00_022E0394 + b _022E0F44 +_022E0EEC: + bl FUN_0207BC20 + b _022E0F44 +_022E0EF4: + ldr r1, _022E0F6C @ =0xFFFF86D4 + mov r0, #0xf + bl ov00_022E0394 + b _022E0F44 +_022E0F04: + ldr r1, _022E0F70 @ =0xFFFF86CA + mov r0, #0xe + bl ov00_022E0394 + b _022E0F44 +_022E0F14: + ldr r1, _022E0F74 @ =0xFFFF86E8 + mov r0, #0xe + sub r1, r1, r4 + bl ov00_022E0394 + b _022E0F44 +_022E0F28: + bl FUN_0207BC20 + b _022E0F44 +_022E0F30: + ldr r1, _022E0F78 @ =0xFFFF86DF + mov r0, #9 + bl ov00_022E0394 + b _022E0F44 +_022E0F40: + bl FUN_0207BC20 +_022E0F44: + ldr r1, _022E0F64 @ =0x02326D84 + mov r0, r6 + ldr r2, [r1] + mov r1, r5 + ldr r3, [r2] + mov r2, r4 + blx r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_022E0F64: .4byte 0x02326D84 +_022E0F68: .4byte 0xFFFF86E7 +_022E0F6C: .4byte 0xFFFF86D4 +_022E0F70: .4byte 0xFFFF86CA +_022E0F74: .4byte 0xFFFF86E8 +_022E0F78: .4byte 0xFFFF86DF + arm_func_end ov00_022E0E84 + + arm_func_start ov00_022E0F7C +ov00_022E0F7C: @ 0x022E0F7C + push {r4, lr} + ldr r0, _022E0FBC @ =0x02326D84 + ldr r0, [r0] + add r0, r0, #0x9c0 + bl FUN_02079800 + ldr r0, _022E0FBC @ =0x02326D84 + ldr r0, [r0] + ldr r4, [r0, #4] + bl ov00_022E0E6C + ldr r0, _022E0FBC @ =0x02326D84 + mov r1, #0 + str r1, [r0] + cmp r4, #0 + popeq {r4, pc} + blx r4 + pop {r4, pc} + .align 2, 0 +_022E0FBC: .4byte 0x02326D84 + arm_func_end ov00_022E0F7C + + arm_func_start ov00_022E0FC0 +ov00_022E0FC0: @ 0x022E0FC0 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x2a0 + mov r7, #0 + mov r6, #6 + mvn r5, #0 + mov r4, #0x64 +_022E0FD8: + bl ov00_022E0E30 + cmp r0, #3 + bne _022E10F4 + ldr r0, _022E1160 @ =0x02326D84 + ldr r5, [r0] + add r0, r5, #0x50 + bl FUN_02089678 + mov r4, r0 + ldr r0, _022E1164 @ =0x0231A154 + bl FUN_02089678 + add r0, r4, r0 + cmp r0, #0xff + bls _022E1024 + mov r1, #8 + sub r2, r1, #9 + mov r0, #0 + bl ov00_022E0E84 + add sp, sp, #0x2a0 + pop {r3, r4, r5, r6, r7, pc} +_022E1024: + ldr r2, _022E1168 @ =0x0231A168 + add r0, sp, #0x1a0 + add r3, r5, #0x50 + mov r1, #0x100 + bl FUN_0207911C + ldr r0, _022E1160 @ =0x02326D84 + ldr r4, [r0] + add r0, r4, #0x91 + bl FUN_02089678 + mov r1, r0 + add r2, sp, #0x10 + add r0, r4, #0x91 + mov r3, #0x190 + bl ov00_022DFF4C + cmp r0, #0 + bge _022E107C + mov r1, #8 + sub r2, r1, #9 + mov r0, #0 + bl ov00_022E0E84 + add sp, sp, #0x2a0 + pop {r3, r4, r5, r6, r7, pc} +_022E107C: + ldr r0, _022E1160 @ =0x02326D84 + ldr r4, _022E116C @ =ov00_022E0E84 + ldr r2, [r0] + ldr r0, _022E1170 @ =ov00_022E0E54 + add r1, r2, #8 + str r1, [sp] + add r1, r2, #0x28 + str r1, [sp, #4] + ldr r1, _022E1174 @ =ov00_022E0E6C + add r2, sp, #0x1a0 + add r3, sp, #0x10 + str r4, [sp, #8] + bl ov00_022EFC88 + cmp r0, #0 + mov r0, #0 + bne _022E10D0 + mov r1, #8 + sub r2, r1, #9 + bl ov00_022E0E84 + add sp, sp, #0x2a0 + pop {r3, r4, r5, r6, r7, pc} +_022E10D0: + ldr r1, _022E1160 @ =0x02326D84 + mov r4, #1 + ldr r3, [r1] + mov r1, r0 + sub r2, r0, #1 + str r4, [r3, #0x48] + bl ov00_022E0E84 + add sp, sp, #0x2a0 + pop {r3, r4, r5, r6, r7, pc} +_022E10F4: + cmp r0, #4 + bne _022E1134 + add r0, sp, #0xc + bl ov00_022E023C + ldr r1, [sp, #0xc] + mov r0, #0xe + bl ov00_022E0394 + ldr r0, _022E1160 @ =0x02326D84 + mov r1, #3 + ldr r0, [r0] + sub r2, r1, #4 + ldr r3, [r0] + mov r0, #0 + blx r3 + add sp, sp, #0x2a0 + pop {r3, r4, r5, r6, r7, pc} +_022E1134: + cmp r0, #5 + bne _022E114C + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl ov00_022E0E84 +_022E114C: + mov r0, r4 + bl FUN_02079B14 + b _022E0FD8 +_022E1158: + .byte 0x2A, 0xDE, 0x8D, 0xE2, 0xF8, 0x80, 0xBD, 0xE8 +_022E1160: .4byte 0x02326D84 +_022E1164: .4byte 0x0231A154 +_022E1168: .4byte 0x0231A168 +_022E116C: .4byte ov00_022E0E84 +_022E1170: .4byte ov00_022E0E54 +_022E1174: .4byte ov00_022E0E6C + arm_func_end ov00_022E0FC0 + + arm_func_start ov00_022E1178 +ov00_022E1178: @ 0x022E1178 + push {r4, r5, r6, lr} + sub sp, sp, #8 + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl ov00_022E0378 + cmp r0, #0 + addne sp, sp, #8 + movne r0, #0 + popne {r4, r5, r6, pc} + mov r0, #0xa80 + mov r1, #0x20 + bl ov00_022E0E54 + ldr r2, _022E1284 @ =0x02326D84 + mov r1, #0 + str r0, [r2] + str r1, [r0, #0x48] + ldr r0, [r2] + mov r2, #0xa80 + bl FUN_0207C40C + ldr r0, _022E1284 @ =0x02326D84 + mov r1, r5 + ldr r3, [r0] + mov r2, #0x1f + str r6, [r3] + ldr r0, [r0] + add r0, r0, #8 + bl FUN_0208975C + ldr r0, _022E1284 @ =0x02326D84 + mov r1, r4 + ldr r0, [r0] + mov r2, #0x1f + add r0, r0, #0x28 + bl FUN_0208975C + ldr r1, _022E1284 @ =0x02326D84 + ldr r0, _022E1288 @ =0x0231A17C + ldr r1, [r1] + add r1, r1, #0x4c + bl ov00_022E0DBC + cmp r0, #0 + bne _022E123C + ldr r0, _022E1284 @ =0x02326D84 + ldr r0, [r0] + bl ov00_022E0E6C + ldr r1, _022E1284 @ =0x02326D84 + mov r0, #0 + str r0, [r1] + add sp, sp, #8 + pop {r4, r5, r6, pc} +_022E123C: + ldr r0, _022E1284 @ =0x02326D84 + mov r2, #0x800 + ldr r3, [r0] + ldr r1, _022E128C @ =ov00_022E0FC0 + str r2, [sp] + mov ip, #0x10 + add r0, r3, #0x9c0 + add r3, r3, #0x9c0 + mov r2, #0 + str ip, [sp, #4] + bl FUN_02079560 + ldr r0, _022E1284 @ =0x02326D84 + ldr r0, [r0] + add r0, r0, #0x9c0 + bl FUN_02079940 + mov r0, #1 + add sp, sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 +_022E1284: .4byte 0x02326D84 +_022E1288: .4byte 0x0231A17C +_022E128C: .4byte ov00_022E0FC0 + arm_func_end ov00_022E1178 + + arm_func_start ov00_022E1290 +ov00_022E1290: @ 0x022E1290 + push {r3, lr} + ldr r1, _022E12D4 @ =0x02326D84 + ldr r2, [r1] + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} + str r0, [r2, #4] + ldr r0, [r1] + ldr r0, [r0, #0x48] + cmp r0, #0 + bne _022E12C4 + bl ov00_022E0F7C + b _022E12CC +_022E12C4: + ldr r0, _022E12D8 @ =ov00_022E0F7C + bl ov00_022EFE74 +_022E12CC: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_022E12D4: .4byte 0x02326D84 +_022E12D8: .4byte ov00_022E0F7C + arm_func_end ov00_022E1290 + + arm_func_start ov00_022E12DC +ov00_022E12DC: @ 0x022E12DC + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl ov00_022E0378 + cmp r0, #0 + movne r0, #0 + popne {r4, r5, r6, pc} + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov00_022EF8E4 + pop {r4, r5, r6, pc} + arm_func_end ov00_022E12DC + + arm_func_start ov00_022E1310 +ov00_022E1310: @ 0x022E1310 + push {r4, lr} + mov r4, r0 + bl ov00_022E0378 + cmp r0, #0 + movne r0, #0 + popne {r4, pc} + mov r0, r4 + bl ov00_022F07EC + pop {r4, pc} + arm_func_end ov00_022E1310 + + arm_func_start ov00_022E1334 +ov00_022E1334: @ 0x022E1334 + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl ov00_022E0378 + cmp r0, #0 + movne r0, #0 + popne {r4, r5, r6, pc} + mov r0, #0xb0 + mul r2, r4, r0 + mov r0, r6 + mov r1, #0 + bl FUN_0207C40C + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov00_022F0868 + pop {r4, r5, r6, pc} + arm_func_end ov00_022E1334 + + arm_func_start ov00_022E137C +ov00_022E137C: @ 0x022E137C + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl ov00_022E0378 + cmp r0, #0 + movne r0, #0 + popne {r4, r5, r6, pc} + mov r0, r6 + mov r1, r5 + mov r2, r4 + mov r3, #0 + bl ov00_022F0B2C + pop {r4, r5, r6, pc} + arm_func_end ov00_022E137C + + arm_func_start ov00_022E13B4 +ov00_022E13B4: @ 0x022E13B4 + push {r3, lr} + bl ov00_022E0378 + cmp r0, #0 + movne r0, #0 + popne {r3, pc} + bl ov00_022EFE9C + pop {r3, pc} + arm_func_end ov00_022E13B4 + + arm_func_start ov00_022E13D0 +ov00_022E13D0: @ 0x022E13D0 + push {r3, r4, lr} + sub sp, sp, #0xc + stm sp, {r0, r3} + mov r4, r2 + str r1, [sp, #8] + ldr r2, _022E1404 @ =0x0231A184 + mov r0, r4 + mov r1, #0x1000 + bl FUN_0207911C + mov r0, r4 + bl FUN_02089678 + add sp, sp, #0xc + pop {r3, r4, pc} + .align 2, 0 +_022E1404: .4byte 0x0231A184 + arm_func_end ov00_022E13D0 + + arm_func_start ov00_022E1408 +ov00_022E1408: @ 0x022E1408 + push {r3, r4, r5, r6, r7, lr} + mov r5, r2 + mov r7, r0 + mov r6, r1 + mov r4, r3 + mov r0, r5 + mov r1, #0 + bl FUN_02089974 + mov r2, r0 + mov r0, r7 + mov r1, r6 + mov r3, r4 + bl ov00_022E13D0 + mov r0, r5 + bl FUN_02089678 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022E1408 + + arm_func_start ov00_022E1448 +ov00_022E1448: @ 0x022E1448 + push {r3, r4, r5, r6, r7, lr} + movs r4, r1 + mov r7, r0 + mov r6, r3 + mvneq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + mov r0, r2 + mov r1, r6 + bl FUN_02089974 + movs r5, r0 + mvneq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} +_022E1478: + mov r0, r7 + bl FUN_02089678 + mov r2, r0 + mov r1, r7 + add r0, r5, #1 + bl FUN_02089940 + cmp r0, #0 + bne _022E14B0 + mov r0, r7 + bl FUN_02089678 + add r0, r0, r5 + ldrsb r0, [r0, #1] + cmp r6, r0 + beq _022E14E4 +_022E14B0: + mov r1, r6 + add r0, r5, #1 + bl FUN_02089974 + cmp r0, #0 + mvneq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + mov r1, r6 + add r0, r0, #1 + bl FUN_02089974 + movs r5, r0 + bne _022E1478 + mvn r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_022E14E4: + mov r1, r6 + add r0, r5, #1 + bl FUN_02089974 + movs r5, r0 + mvneq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + mov r1, r6 + add r0, r5, #1 + bl FUN_02089974 + cmp r0, #0 + addne r1, r5, #1 + subne r6, r0, r1 + bne _022E1524 + add r0, r5, #1 + bl FUN_02089678 + mov r6, r0 +_022E1524: + mov r0, r4 + mov r2, r6 + add r1, r5, #1 + bl FUN_0208975C + mov r1, #0 + mov r0, r6 + strb r1, [r4, r6] + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022E1448 + + arm_func_start ov00_022E1544 +ov00_022E1544: @ 0x022E1544 + push {r4, lr} + sub sp, sp, #8 + ldr r1, _022E1650 @ =0x02326D88 + mov r4, r0 + ldr r0, [r1, #4] + ldr r2, [r1] + cmp r0, #0 + cmpeq r2, #0 + mov r0, #0 + bne _022E1608 + ldr r2, [r1, #0xc] + ldr r3, [r1, #8] + cmp r2, r0 + cmpeq r3, r0 + bne _022E1608 + ldr r2, [r1, #0x14] + ldr r1, [r1, #0x10] + cmp r2, r0 + cmpeq r1, r0 + bne _022E1608 + add r0, sp, #0 + bl FUN_0207B9EC + bl FUN_0207AE44 + lsl r2, r1, #0x18 + ldr ip, [sp] + ldr r3, [sp, #4] + lsr lr, ip, #0x18 + orr lr, lr, r3, lsl #8 + mvn r1, #0xff000000 + and r1, lr, r1 + orr lr, r1, r0, lsl #24 + mov ip, #0 + orr r2, r2, r0, lsr #8 + and r1, ip, r3, lsr #24 + orr r2, r1, r2 + ldr r0, _022E1654 @ =0x02326D88 + add r1, sp, #0 + str lr, [sp] + str r2, [sp, #4] + ldm r1, {r2, r3} + stm r0, {r2, r3} + ldr r1, _022E1658 @ =0x6C078965 + ldr r0, _022E1650 @ =0x02326D88 + ldr r2, _022E165C @ =0x5D588B65 + str r1, [r0, #8] + ldr r1, _022E1660 @ =0x00269EC3 + str r2, [r0, #0xc] + str r1, [r0, #0x10] + str ip, [r0, #0x14] +_022E1608: + ldr r1, _022E1650 @ =0x02326D88 + ldr r2, [r1] + ldmib r1, {r0, r3} + umull lr, ip, r3, r2 + mla ip, r3, r0, ip + ldr r0, [r1, #0xc] + ldr r3, [r1, #0x10] + mla ip, r0, r2, ip + ldr r0, [r1, #0x14] + adds r2, r3, lr + adc r0, r0, ip + str r2, [r1] + str r0, [r1, #4] + cmp r4, #0 + umullne r2, r1, r0, r4 + movne r0, r1 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_022E1650: .4byte 0x02326D88 +_022E1654: .4byte 0x02326D88 +_022E1658: .4byte 0x6C078965 +_022E165C: .4byte 0x5D588B65 +_022E1660: .4byte 0x00269EC3 + arm_func_end ov00_022E1544 + + arm_func_start ov00_022E1664 +ov00_022E1664: @ 0x022E1664 + ldrh r1, [r0] + mov r2, #0 + cmp r1, #0 + beq _022E1688 +_022E1674: + add r2, r2, #1 + lsl r1, r2, #1 + ldrh r1, [r0, r1] + cmp r1, #0 + bne _022E1674 +_022E1688: + mov r0, r2 + bx lr + arm_func_end ov00_022E1664 + + arm_func_start ov00_022E1690 +ov00_022E1690: @ 0x022E1690 + push {r4, r5, r6, lr} + sub sp, sp, #0x10 + ldr ip, _022E18F4 @ =0x02326DA0 + mov r6, r1 + mov r5, r2 + mov r4, r3 + str r0, [ip] + bl ov00_022E0358 + ldr r0, _022E18F4 @ =0x02326DA0 + mov r2, #0 + ldr r1, [r0] + ldr r3, _022E18F8 @ =ov00_022E6248 + str r2, [r1] + ldr r1, [r0] + ldr r2, _022E18FC @ =0x022E26E8 + str r3, [r1, #4] + ldr r1, [r0] + ldr ip, [sp, #0x24] + str r2, [r1, #8] + cmp ip, #0 + ldr r2, [r0] + ldr r3, _022E1900 @ =ov00_022E26F4 + ldr r1, _022E1904 @ =0x022E2A5C + str r3, [r2, #0xc] + ldr r0, [r0] + ldr r3, [sp, #0x28] + str r1, [r0, #0x10] + ldr r0, _022E18F4 @ =0x02326DA0 + moveq ip, #0x2000 + ldr r0, [r0] + cmp r3, #0 + str ip, [r0, #0x14] + moveq r3, #0x2000 + ldr r1, _022E18F4 @ =0x02326DA0 + mov r0, #0 + ldr r2, [r1] + ldr ip, _022E1908 @ =0x02328A18 + str r3, [r2, #0x18] + ldr r2, [r1] + ldr r3, _022E190C @ =0x02328B18 + str r0, [r2, #0x1c] + ldr r2, [r1] + str r6, [r2, #0x20] + ldr r2, [r1] + str r0, [r2, #0x24] + ldr r2, [r1] + str r0, [r2, #0x28] + ldr r2, [r1] + strb r0, [r2, #0x2c] + ldr r2, [r1] + strb r0, [r2, #0x2d] + ldr r2, [r1] + str r0, [r2, #0x64] + ldr r2, [r1] + str ip, [r2, #0x68] + ldr r2, [r1] + str r3, [r2, #0x6c] + ldr r2, [r1] + str r0, [r2, #0x70] + ldr r2, [r1] + str r0, [r2, #0x74] + ldr r2, [r1] + str r0, [r2, #0x78] + ldr r2, [r1] + str r0, [r2, #0x7c] + ldr r2, [r1] + str r0, [r2, #0x80] + ldr r2, [r1] + str r0, [r2, #0x84] + ldr r2, [r1] + str r0, [r2, #0x88] + ldr r2, [r1] + str r0, [r2, #0x8c] + ldr r2, [r1] + str r0, [r2, #0x90] + ldr r1, [r1] + str r0, [r1, #0x94] + bl ov00_022E2154 + ldr r0, _022E18F4 @ =0x02326DA0 + ldr r1, [r6, #0x24] + ldr r2, [r0] + ldr r0, _022E1910 @ =ov00_022E24B0 + str r1, [sp] + add r1, r2, #0x2e + str r1, [sp, #4] + mov r1, r6 + mov r3, r5 + str r0, [sp, #8] + mov r5, #0 + add r0, r2, #0x98 + add r2, r2, #0x1c + str r5, [sp, #0xc] + bl ov00_022E2AA4 + ldr r0, _022E18F4 @ =0x02326DA0 + ldr r2, [sp, #0x30] + ldr r5, [r0] + ldr r3, [sp, #0x2c] + add r0, r5, #0x318 + add r1, r5, #0x1c + str r2, [sp] + add r2, r5, #0x2e + bl ov00_022E3740 + ldr r0, _022E18F4 @ =0x02326DA0 + ldr r1, _022E1908 @ =0x02328A18 + ldr r2, [r0] + ldr r0, _022E190C @ =0x02328B18 + str r1, [sp] + str r0, [sp, #4] + ldr r1, [sp, #0x2c] + ldr r0, [sp, #0x30] + str r1, [sp, #8] + str r0, [sp, #0xc] + add r0, r2, #0x378 + add r1, r2, #0x1c + add r3, r2, #4 + bl ov00_022E50A8 + ldr r0, _022E18F4 @ =0x02326DA0 + ldr r0, [r0] + add r0, r0, #0x3fc + add r0, r0, #0x400 + bl ov00_022EC69C + mov r0, r4 + bl FUN_02089678 + cmp r0, #0x100 + movhs r5, #0xff + bhs _022E1894 + mov r0, r4 + bl FUN_02089678 + mov r5, r0 +_022E1894: + ldr r1, _022E1908 @ =0x02328A18 + mov r0, r4 + mov r2, r5 + bl FUN_0207C4C8 + ldr r0, [sp, #0x20] + ldr r1, _022E1908 @ =0x02328A18 + mov r2, #0 + strb r2, [r1, r5] + bl FUN_02089678 + cmp r0, #0x100 + movhs r4, #0xff + bhs _022E18D0 + ldr r0, [sp, #0x20] + bl FUN_02089678 + mov r4, r0 +_022E18D0: + ldr r0, [sp, #0x20] + ldr r1, _022E190C @ =0x02328B18 + mov r2, r4 + bl FUN_0207C4C8 + ldr r0, _022E190C @ =0x02328B18 + mov r1, #0 + strb r1, [r0, r4] + add sp, sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_022E18F4: .4byte 0x02326DA0 +_022E18F8: .4byte ov00_022E6248 +_022E18FC: .4byte 0x022E26E8 +_022E1900: .4byte ov00_022E26F4 +_022E1904: .4byte 0x022E2A5C +_022E1908: .4byte 0x02328A18 +_022E190C: .4byte 0x02328B18 +_022E1910: .4byte ov00_022E24B0 + arm_func_end ov00_022E1690 + + arm_func_start ov00_022E1914 +ov00_022E1914: @ 0x022E1914 + push {r3, lr} + ldr r0, _022E1A80 @ =0x02326DA0 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + ldr r0, [r0, #0x388] + cmp r0, #0 + beq _022E1948 + bl ov00_02312C50 + ldr r0, _022E1A80 @ =0x02326DA0 + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #0x388] +_022E1948: + ldr r0, _022E1A80 @ =0x02326DA0 + mov r2, #0 + ldr r1, [r0] + strb r2, [r1, #0x390] + ldr r0, [r0] + ldr r0, [r0, #0x45c] + cmp r0, #0 + beq _022E197C + bl ov00_02315AD8 + ldr r0, _022E1A80 @ =0x02326DA0 + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #0x45c] +_022E197C: + bl ov00_022E5080 + bl ov00_022E4E70 + bl ov00_0230C29C + bl ov00_022E4E84 + ldr r0, _022E1A80 @ =0x02326DA0 + ldr ip, [r0] + ldr r0, [ip, #0x1c] + cmp r0, #0 + beq _022E1A38 + mov r1, #0 + mov r2, r1 + mov r3, r1 + add r0, ip, #0x1c + bl ov00_022FEFA8 + ldr r0, _022E1A80 @ =0x02326DA0 + mov r2, #0 + ldr r0, [r0] + mov r3, r2 + add r0, r0, #0x1c + mov r1, #3 + bl ov00_022FEFA8 + ldr r0, _022E1A80 @ =0x02326DA0 + mov r2, #0 + ldr r0, [r0] + mov r3, r2 + add r0, r0, #0x1c + mov r1, #1 + bl ov00_022FEFA8 + ldr r0, _022E1A80 @ =0x02326DA0 + mov r2, #0 + ldr r0, [r0] + mov r1, #2 + add r0, r0, #0x1c + mov r3, r2 + bl ov00_022FEFA8 + ldr r0, _022E1A80 @ =0x02326DA0 + ldr r0, [r0] + add r0, r0, #0x1c + bl ov00_022FEF74 + ldr r0, _022E1A80 @ =0x02326DA0 + ldr r0, [r0] + add r0, r0, #0x1c + bl ov00_022FEF58 + mov r1, #0 + ldr r0, _022E1A80 @ =0x02326DA0 + ldr r0, [r0] + str r1, [r0, #0x1c] +_022E1A38: + bl ov00_022E2CC4 + bl ov00_022E3F90 + bl ov00_022E6DD8 + bl ov00_022EC97C + ldr r0, _022E1A80 @ =0x02326DA0 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, #0 + beq _022E1A70 + bl ov00_0230E098 + ldr r0, _022E1A80 @ =0x02326DA0 + mov r1, #0 + ldr r0, [r0] + str r1, [r0] +_022E1A70: + ldr r0, _022E1A80 @ =0x02326DA0 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_022E1A80: .4byte 0x02326DA0 + arm_func_end ov00_022E1914 + + arm_func_start ov00_022E1A84 +ov00_022E1A84: @ 0x022E1A84 + push {r3, lr} + bl ov00_022E0D58 + cmp r0, #0 + beq _022E1A98 + bl ov00_022E226C +_022E1A98: + ldr r0, _022E1CE4 @ =0x02326DA0 + ldr r0, [r0] + cmp r0, #0 + ldrne r0, [r0, #0x24] + cmpne r0, #0 + popeq {r3, pc} + bl ov00_022E0378 cmp r0, #0 popne {r3, pc} - bl FUN_02081a3c - ldr r0, [sp] + ldr r0, _022E1CE4 @ =0x02326DA0 + ldr r0, [r0] + ldr r0, [r0, #0x24] + cmp r0, #6 + addls pc, pc, r0, lsl #2 + b _022E1C9C +_022E1AD4: @ jump table + b _022E1C9C @ case 0 + b _022E1AF0 @ case 1 + b _022E1C30 @ case 2 + b _022E1C38 @ case 3 + b _022E1C38 @ case 4 + b _022E1C48 @ case 5 + b _022E1C58 @ case 6 +_022E1AF0: + bl ov00_022F5DA8 + cmp r0, #1 + beq _022E1B10 + cmp r0, #2 + beq _022E1C10 + cmp r0, #3 + beq _022E1C20 + b _022E1C9C +_022E1B10: + ldr r0, _022E1CE4 @ =0x02326DA0 + mov r2, #0x10 + ldr r0, [r0] + mov r3, #0xb + ldr r1, [r0, #0xa0] + add r0, r0, #0x1c + bl ov00_022FEF28 + bl ov00_022E22F0 + cmp r0, #0 + popne {r3, pc} + ldr r0, _022E1CE4 @ =0x02326DA0 + mov r1, #0 + ldr r0, [r0] + ldr r2, _022E1CE8 @ =ov00_022E2558 + mov r3, r1 + add r0, r0, #0x1c + bl ov00_022FEFA8 + bl ov00_022E22F0 + cmp r0, #0 + popne {r3, pc} + ldr r0, _022E1CE4 @ =0x02326DA0 + ldr r2, _022E1CEC @ =ov00_022E2590 + ldr r0, [r0] + mov r1, #3 + add r0, r0, #0x1c + mov r3, #0 + bl ov00_022FEFA8 + bl ov00_022E22F0 + cmp r0, #0 + popne {r3, pc} + ldr r0, _022E1CE4 @ =0x02326DA0 + ldr r2, _022E1CF0 @ =ov00_022E3CBC + ldr r0, [r0] + mov r1, #7 + add r0, r0, #0x1c + mov r3, #0 + bl ov00_022FEFA8 + bl ov00_022E22F0 + cmp r0, #0 + popne {r3, pc} + ldr r0, _022E1CE4 @ =0x02326DA0 + ldr r2, _022E1CF4 @ =ov00_022E3C70 + ldr r0, [r0] + mov r1, #1 + add r0, r0, #0x1c + mov r3, #0 + bl ov00_022FEFA8 + bl ov00_022E22F0 + cmp r0, #0 + popne {r3, pc} + ldr r0, _022E1CE4 @ =0x02326DA0 + ldr r2, _022E1CF8 @ =ov00_022E3CEC + ldr r0, [r0] + mov r1, #2 + add r0, r0, #0x1c + mov r3, #0 + bl ov00_022FEFA8 + bl ov00_022E22F0 + cmp r0, #0 + popne {r3, pc} + mov r0, #2 + bl ov00_022E2270 + bl ov00_022E2B28 + b _022E1C9C +_022E1C10: + ldr r1, _022E1CFC @ =0xFFFFB172 + mov r0, #3 + bl ov00_022E2C74 + pop {r3, pc} +_022E1C20: + ldr r1, _022E1D00 @ =0xFFFFB17B + mov r0, #4 + bl ov00_022E2C74 + pop {r3, pc} +_022E1C30: + bl ov00_022E2B60 + b _022E1C9C +_022E1C38: + bl ov00_022E385C + mov r0, #0 + bl ov00_022E5470 + b _022E1C9C +_022E1C48: + mov r0, #1 + bl ov00_022E5470 + bl ov00_022E385C + b _022E1C9C +_022E1C58: + bl ov00_022EC758 + bl ov00_022E385C + ldr r0, _022E1CE4 @ =0x02326DA0 + ldr r1, [r0] + ldrb r0, [r1, #0x38d] + cmp r0, #2 + ldrbne r0, [r1, #0x38d] + cmpne r0, #3 + bne _022E1C88 + mov r0, #1 + bl ov00_022E5470 + b _022E1C9C +_022E1C88: + ldr r0, [r1] + cmp r0, #0 + beq _022E1C9C + mov r0, #0 + bl ov00_022E5470 +_022E1C9C: + ldr r0, _022E1CE4 @ =0x02326DA0 + ldr r1, [r0] + ldrb r0, [r1, #0x390] + cmp r0, #1 + popne {r3, pc} + ldr r0, [r1, #0x388] + cmp r0, #0 + beq _022E1CD0 + bl ov00_02312C50 + ldr r0, _022E1CE4 @ =0x02326DA0 + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #0x388] +_022E1CD0: + ldr r0, _022E1CE4 @ =0x02326DA0 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x390] pop {r3, pc} .align 2, 0 -_02081F5C: .4byte 0x02081A7C - arm_func_end FUN_02081f38 +_022E1CE4: .4byte 0x02326DA0 +_022E1CE8: .4byte ov00_022E2558 +_022E1CEC: .4byte ov00_022E2590 +_022E1CF0: .4byte ov00_022E3CBC +_022E1CF4: .4byte ov00_022E3C70 +_022E1CF8: .4byte ov00_022E3CEC +_022E1CFC: .4byte 0xFFFFB172 +_022E1D00: .4byte 0xFFFFB17B + arm_func_end ov00_022E1A84 - arm_func_start FUN_02081f60 -FUN_02081f60: @ 0x02081F60 + arm_func_start ov00_022E1D04 +ov00_022E1D04: @ 0x022E1D04 + push {r4, r5, r6, lr} + movs r4, r0 + mov r6, r2 + mov r5, r3 + moveq r0, #0 + popeq {r4, r5, r6, pc} + bl ov00_022E0378 + cmp r0, #0 + bne _022E1D3C + ldr r0, _022E1E04 @ =0x02326DA0 + ldr r2, [r0] + ldr r1, [r2, #0x24] + cmp r1, #0 + beq _022E1D44 +_022E1D3C: + mov r0, #0 + pop {r4, r5, r6, pc} +_022E1D44: + str r6, [r2, #0x70] + ldr r1, [r0] + cmp r4, #0 + str r5, [r1, #0x74] + ldrhne r1, [r4] + cmpne r1, #0 + moveq r5, #0 + beq _022E1DB0 + ldr r1, [r0] + mov r0, #0 + add r1, r1, #0x2e + mov r2, #0x34 + bl FUN_0207C2B8 + mov r0, r4 + bl ov00_022E1664 + cmp r0, #0x19 + movhi r5, #0x19 + bhi _022E1D98 + mov r0, r4 + bl ov00_022E1664 + mov r5, r0 +_022E1D98: + ldr r1, _022E1E04 @ =0x02326DA0 + mov r0, r4 + ldr r1, [r1] + lsl r2, r5, #1 + add r1, r1, #0x2e + bl FUN_0207C2E0 +_022E1DB0: + ldr r0, _022E1E04 @ =0x02326DA0 + mov r1, #0 + ldr r0, [r0] + add r0, r0, r5, lsl #1 + strh r1, [r0, #0x2e] + bl ov00_022E089C + cmp r0, #4 + beq _022E1DE4 + ldr r1, _022E1E08 @ =0xFFFF1596 + mov r0, #2 + bl ov00_022E2C74 + mov r0, #1 + pop {r4, r5, r6, pc} +_022E1DE4: + mov r0, #1 + bl ov00_022E2270 + ldr r0, _022E1E04 @ =0x02326DA0 + ldr r0, [r0] + ldr r0, [r0, #0x68] + bl ov00_022F5BF8 + mov r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 +_022E1E04: .4byte 0x02326DA0 +_022E1E08: .4byte 0xFFFF1596 + arm_func_end ov00_022E1D04 + + arm_func_start ov00_022E1E0C +ov00_022E1E0C: @ 0x022E1E0C + push {r4, r5, r6, lr} + sub sp, sp, #0x10 + mov r6, r1 + mov r5, r2 + mov r4, r3 + bl ov00_022E0378 + cmp r0, #0 + bne _022E1E48 + ldr r0, _022E1EAC @ =0x02326DA0 + ldr r2, [r0] + ldr r1, [r2, #0x24] + cmp r1, #3 + blt _022E1E48 + cmp r1, #4 + bne _022E1E54 +_022E1E48: + add sp, sp, #0x10 + mov r0, #0 + pop {r4, r5, r6, pc} +_022E1E54: + str r6, [r2, #0x78] + ldr r1, [r0] + mov r0, #4 + str r5, [r1, #0x7c] + bl ov00_022E2270 + ldr r0, _022E1EAC @ =0x02326DA0 + ldr r1, [sp, #0x20] + ldr r3, [r0] + ldr r0, [sp, #0x24] + str r4, [sp] + str r1, [sp, #4] + ldr r4, [sp, #0x28] + str r0, [sp, #8] + ldr r2, _022E1EB0 @ =ov00_022E2510 + add r0, r3, #0xe0 + add r1, r3, #0x1e0 + mov r3, #0 + str r4, [sp, #0xc] + bl ov00_022E3B3C + mov r0, #1 + add sp, sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_022E1EAC: .4byte 0x02326DA0 +_022E1EB0: .4byte ov00_022E2510 + arm_func_end ov00_022E1E0C + + arm_func_start ov00_022E1EB4 +ov00_022E1EB4: @ 0x022E1EB4 + push {r4, lr} + ldr r1, _022E1F18 @ =0x02326DA0 + mov r4, r0 + ldr r0, [r1] + cmp r0, #0 + beq _022E1EF0 + bl ov00_022E0378 + cmp r0, #0 + bne _022E1EF0 + ldr r0, _022E1F18 @ =0x02326DA0 + ldr r0, [r0] + ldr r0, [r0, #0x24] + cmp r0, #5 + cmpne r0, #6 + beq _022E1EF8 +_022E1EF0: + mvn r0, #0 + pop {r4, pc} +_022E1EF8: + mov r0, r4 + bl ov00_022E20A4 + cmp r0, #0 + mvneq r0, #1 + popeq {r4, pc} + bl ov00_0230E384 + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_022E1F18: .4byte 0x02326DA0 + arm_func_end ov00_022E1EB4 + + arm_func_start ov00_022E1F1C +ov00_022E1F1C: @ 0x022E1F1C + ldr r0, _022E1F34 @ =0x02326DA0 + ldr r0, [r0] + cmp r0, #0 + ldrbne r0, [r0, #0x2c] + moveq r0, #0 + bx lr + .align 2, 0 +_022E1F34: .4byte 0x02326DA0 + arm_func_end ov00_022E1F1C + + arm_func_start ov00_022E1F38 +ov00_022E1F38: @ 0x022E1F38 + push {r3, lr} + ldr r2, _022E1F84 @ =0x02326DA0 + ldr r1, [r2] + cmp r1, #0 + moveq r0, #0 + popeq {r3, pc} + add r1, r1, #0x248 + add r1, r1, #0x400 + str r1, [r0] + ldr r2, [r2] + ldrb r1, [r2, #0x38d] + cmp r1, #2 + ldrbne r1, [r2, #0x38d] + cmpne r1, #3 + bne _022E1F7C + bl ov00_022E6C64 + pop {r3, pc} +_022E1F7C: + bl ov00_022E6C30 + pop {r3, pc} + .align 2, 0 +_022E1F84: .4byte 0x02326DA0 + arm_func_end ov00_022E1F38 + + arm_func_start ov00_022E1F88 +ov00_022E1F88: @ 0x022E1F88 + push {r3, lr} + ldr r1, _022E1FBC @ =0x02326DA0 + ldr r1, [r1] + cmp r1, #0 + moveq r0, #0 + popeq {r3, pc} + ldr r2, [r1, #0x668] + mov r1, #1 + tst r2, r1, lsl r0 + moveq r0, #0 + popeq {r3, pc} + bl ov00_022E220C + pop {r3, pc} + .align 2, 0 +_022E1FBC: .4byte 0x02326DA0 + arm_func_end ov00_022E1F88 + + arm_func_start ov00_022E1FC0 +ov00_022E1FC0: @ 0x022E1FC0 + ldr r0, _022E1FD8 @ =0x02326DA0 + ldr r0, [r0] + cmp r0, #0 + ldrne r0, [r0, #0x24] + moveq r0, #0 + bx lr + .align 2, 0 +_022E1FD8: .4byte 0x02326DA0 + arm_func_end ov00_022E1FC0 + + arm_func_start ov00_022E1FDC +ov00_022E1FDC: @ 0x022E1FDC + push {r3, r4, lr} + sub sp, sp, #4 + ldr r0, _022E2094 @ =0x02326DA0 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, #0 + addne sp, sp, #4 + movne r0, #0 + popne {r3, r4, pc} + mov r0, #0x4000 + bl ov00_022E1544 + add r0, r0, #0xc000 + lsl r1, r0, #0x10 + ldr r3, _022E2094 @ =0x02326DA0 + mov r0, #0 + mov r2, r0 + lsr r1, r1, #0x10 + ldr r4, [r3] + bl ov00_02310BF4 + ldr r1, _022E2098 @ =ov00_022E2A68 + ldr r2, _022E2094 @ =0x02326DA0 + str r1, [sp] + mov r1, r0 + ldr r0, [r2] + ldr r2, [r4, #0x14] + ldr r3, [r4, #0x18] + bl ov00_0230E074 + mov r4, r0 + bl ov00_022E240C + cmp r0, #0 + addne sp, sp, #4 + movne r0, r4 + popne {r3, r4, pc} + ldr r0, _022E2094 @ =0x02326DA0 + ldr r1, _022E209C @ =ov00_022E6000 + ldr r0, [r0] + ldr r0, [r0] + bl ov00_023105EC + ldr r0, _022E2094 @ =0x02326DA0 + ldr r1, _022E20A0 @ =ov00_022E5F0C + ldr r0, [r0] + ldr r0, [r0] + bl ov00_0230E450 + mov r0, r4 + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_022E2094: .4byte 0x02326DA0 +_022E2098: .4byte ov00_022E2A68 +_022E209C: .4byte ov00_022E6000 +_022E20A0: .4byte ov00_022E5F0C + arm_func_end ov00_022E1FDC + + arm_func_start ov00_022E20A4 +ov00_022E20A4: @ 0x022E20A4 + push {r4, r5, r6, lr} + ldr r1, _022E2100 @ =0x02326DA0 + mov r6, r0 + ldr r0, [r1] + cmp r0, #0 + moveq r0, #0 + popeq {r4, r5, r6, pc} + ldr r4, _022E2104 @ =0x02326DA8 + mov r5, #0 +_022E20C8: + ldr r0, [r4, r5, lsl #2] + cmp r0, #0 + beq _022E20EC + bl ov00_0230E460 + ldrb r0, [r0, #1] + cmp r6, r0 + ldreq r0, _022E2104 @ =0x02326DA8 + ldreq r0, [r0, r5, lsl #2] + popeq {r4, r5, r6, pc} +_022E20EC: + add r5, r5, #1 + cmp r5, #0x20 + blt _022E20C8 + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_022E2100: .4byte 0x02326DA0 +_022E2104: .4byte 0x02326DA8 + arm_func_end ov00_022E20A4 + + arm_func_start ov00_022E2108 +ov00_022E2108: @ 0x022E2108 + push {r3, lr} + bl ov00_0230E460 + ldrb r0, [r0, #1] + pop {r3, pc} + arm_func_end ov00_022E2108 + + arm_func_start ov00_022E2118 +ov00_022E2118: @ 0x022E2118 + push {r3, lr} + bl ov00_0230E460 + ldrb r0, [r0] + pop {r3, pc} + arm_func_end ov00_022E2118 + + arm_func_start ov00_022E2128 +ov00_022E2128: @ 0x022E2128 + ldr r2, _022E2150 @ =0x02326DA8 + mov r0, #0 +_022E2130: + ldr r1, [r2, r0, lsl #2] + cmp r1, #0 + bxeq lr + add r0, r0, #1 + cmp r0, #0x20 + blt _022E2130 + mvn r0, #0 + bx lr + .align 2, 0 +_022E2150: .4byte 0x02326DA8 + arm_func_end ov00_022E2128 + + arm_func_start ov00_022E2154 +ov00_022E2154: @ 0x022E2154 + push {r3, lr} + ldr r1, _022E217C @ =0x02326DA8 + mov r0, #0 + mov r2, #0x80 + bl FUN_0207C314 + ldr r1, _022E2180 @ =0x02326E28 + mov r0, #0 + mov r2, #0x100 + bl FUN_0207C314 + pop {r3, pc} + .align 2, 0 +_022E217C: .4byte 0x02326DA8 +_022E2180: .4byte 0x02326E28 + arm_func_end ov00_022E2154 + + arm_func_start ov00_022E2184 +ov00_022E2184: @ 0x022E2184 + ldr r1, _022E2190 @ =0x02326DA8 + add r0, r1, r0, lsl #2 + bx lr + .align 2, 0 +_022E2190: .4byte 0x02326DA8 + arm_func_end ov00_022E2184 + + arm_func_start ov00_022E2194 +ov00_022E2194: @ 0x022E2194 + push {r3, lr} + cmp r1, #0 + mov r3, #0 + ble _022E21CC + ldr r2, _022E21F8 @ =0x02326DA0 + ldr ip, [r2] +_022E21AC: + add r2, ip, r3, lsl #2 + ldr r2, [r2, #0x46c] + cmp r0, r2 + beq _022E21CC + add r2, r3, #1 + and r3, r2, #0xff + cmp r3, r1 + blt _022E21AC +_022E21CC: + cmp r3, r1 + movge r0, #0 + popge {r3, pc} + ldr r0, _022E21F8 @ =0x02326DA0 + ldr r0, [r0] + add r0, r0, r3 + ldrb r0, [r0, #0x648] + bl ov00_022E20A4 + bl ov00_022E2118 + bl ov00_022E2184 + pop {r3, pc} + .align 2, 0 +_022E21F8: .4byte 0x02326DA0 + arm_func_end ov00_022E2194 + + arm_func_start ov00_022E21FC +ov00_022E21FC: @ 0x022E21FC + ldr r1, _022E2208 @ =0x02326E28 + add r0, r1, r0, lsl #3 + bx lr + .align 2, 0 +_022E2208: .4byte 0x02326E28 + arm_func_end ov00_022E21FC + + arm_func_start ov00_022E220C +ov00_022E220C: @ 0x022E220C + push {r4, r5, r6, lr} + ldr r4, _022E2250 @ =0x02326DA8 + mov r6, r0 + mov r5, #0 +_022E221C: + ldr r0, [r4, r5, lsl #2] + cmp r0, #0 + beq _022E223C + bl ov00_0230E460 + ldrb r0, [r0, #1] + cmp r6, r0 + moveq r0, #1 + popeq {r4, r5, r6, pc} +_022E223C: + add r5, r5, #1 + cmp r5, #0x20 + blt _022E221C + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_022E2250: .4byte 0x02326DA8 + arm_func_end ov00_022E220C + + arm_func_start ov00_022E2254 +ov00_022E2254: @ 0x022E2254 + ldr r0, _022E2268 @ =0x02326DA0 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x2c] + bx lr + .align 2, 0 +_022E2268: .4byte 0x02326DA0 + arm_func_end ov00_022E2254 + + arm_func_start ov00_022E226C +ov00_022E226C: @ 0x022E226C + bx lr + arm_func_end ov00_022E226C + + arm_func_start ov00_022E2270 +ov00_022E2270: @ 0x022E2270 + ldr r1, _022E228C @ =0x02326DA0 + ldr r3, [r1] + ldr r2, [r3, #0x24] + str r2, [r3, #0x28] + ldr r1, [r1] + str r0, [r1, #0x24] + bx lr + .align 2, 0 +_022E228C: .4byte 0x02326DA0 + arm_func_end ov00_022E2270 + + arm_func_start ov00_022E2290 +ov00_022E2290: @ 0x022E2290 + push {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + add r0, sp, #0 + bl ov00_022E6C30 + mov r1, r0 + cmp r1, #0 + mov r0, #0 + ble _022E22D4 + ldr r3, [sp] +_022E22B8: + ldrb r2, [r3] + cmp r4, r2 + beq _022E22D4 + add r0, r0, #1 + cmp r0, r1 + add r3, r3, #1 + blt _022E22B8 +_022E22D4: + cmp r0, r1 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, pc} + bl ov00_022E6A24 + add sp, sp, #4 + pop {r3, r4, pc} + arm_func_end ov00_022E2290 + + arm_func_start ov00_022E22F0 +ov00_022E22F0: @ 0x022E22F0 + push {r4, r5, r6, lr} + movs r6, r0 + moveq r0, #0 + popeq {r4, r5, r6, pc} + cmp r6, #4 + addls pc, pc, r6, lsl #2 + b _022E234C +_022E230C: @ jump table + b _022E234C @ case 0 + b _022E2320 @ case 1 + b _022E232C @ case 2 + b _022E2338 @ case 3 + b _022E2344 @ case 4 +_022E2320: + mov r5, #9 + sub r4, r5, #0xa + b _022E234C +_022E232C: + mov r5, #9 + sub r4, r5, #0xb + b _022E234C +_022E2338: + mov r5, #6 + sub r4, r5, #0x10 + b _022E234C +_022E2344: + mov r5, #6 + sub r4, r5, #0x1a +_022E234C: + ldr r0, _022E23F8 @ =0x02326DA0 + ldr r1, [r0] + ldr r0, [r1, #0x24] + cmp r0, #5 + addls pc, pc, r0, lsl #2 + b _022E23DC +_022E2364: @ jump table + b _022E23DC @ case 0 + b _022E237C @ case 1 + b _022E2394 @ case 2 + b _022E23DC @ case 3 + b _022E23D0 @ case 4 + b _022E23B8 @ case 5 +_022E237C: + ldr r1, _022E23FC @ =0xFFFF11B8 + mov r0, r5 + add r4, r4, r1 + mov r1, r4 + bl ov00_022E2C74 + b _022E23E4 +_022E2394: + ldr r1, [r1, #0x9c] + ldr r0, _022E23FC @ =0xFFFF11B8 + cmp r1, #1 + add r4, r4, r0 + bge _022E23E4 + mov r0, r5 + mov r1, r4 + bl ov00_022E2C74 + b _022E23E4 +_022E23B8: + ldr r1, _022E2400 @ =0xFFFEC398 + mov r0, r5 + add r4, r4, r1 + mov r1, r4 + bl ov00_022E6570 + b _022E23E4 +_022E23D0: + ldr r0, _022E2404 @ =0xFFFEEAA8 + add r4, r4, r0 + b _022E23E4 +_022E23DC: + ldr r0, _022E2408 @ =0xFFFE9C88 + add r4, r4, r0 +_022E23E4: + mov r0, r5 + mov r1, r4 + bl ov00_022E3BE8 + mov r0, r6 + pop {r4, r5, r6, pc} + .align 2, 0 +_022E23F8: .4byte 0x02326DA0 +_022E23FC: .4byte 0xFFFF11B8 +_022E2400: .4byte 0xFFFEC398 +_022E2404: .4byte 0xFFFEEAA8 +_022E2408: .4byte 0xFFFE9C88 + arm_func_end ov00_022E22F0 + + arm_func_start ov00_022E240C +ov00_022E240C: @ 0x022E240C + push {r4, lr} + movs r4, r0 + moveq r0, #0 + popeq {r4, pc} + cmp r4, #7 + addls pc, pc, r4, lsl #2 + b _022E2490 +_022E2428: @ jump table + b _022E2490 @ case 0 + b _022E2448 @ case 1 + b _022E2454 @ case 2 + b _022E2464 @ case 3 + b _022E2470 @ case 4 + b _022E2454 @ case 5 + b _022E247C @ case 6 + b _022E2488 @ case 7 +_022E2448: + mov r0, #9 + sub r2, r0, #0xa + b _022E2490 +_022E2454: + mov r0, #0 + mov r2, r0 + mov r4, r0 + b _022E2490 +_022E2464: + mov r0, #6 + sub r2, r0, #0x10 + b _022E2490 +_022E2470: + mov r0, #6 + sub r2, r0, #0x24 + b _022E2490 +_022E247C: + mov r0, #6 + sub r2, r0, #0x4c + b _022E2490 +_022E2488: + mov r0, #6 + sub r2, r0, #0x56 +_022E2490: + cmp r0, #0 + beq _022E24A4 + ldr r1, _022E24AC @ =0xFFFEFA48 + add r1, r2, r1 + bl ov00_022E2C74 +_022E24A4: + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_022E24AC: .4byte 0xFFFEFA48 + arm_func_end ov00_022E240C + + arm_func_start ov00_022E24B0 +ov00_022E24B0: @ 0x022E24B0 + push {r3, r4, r5, lr} + movs r5, r0 + mov r4, r1 + bne _022E24DC + ldr r1, _022E250C @ =0x02326DA0 + mov r0, #3 + ldr r1, [r1] + str r4, [r1, #0x64] + bl ov00_022E2270 + bl ov00_022E3E1C + b _022E24E4 +_022E24DC: + mov r0, #0 + bl ov00_022E2270 +_022E24E4: + ldr r0, _022E250C @ =0x02326DA0 + ldr r0, [r0] + ldr r3, [r0, #0x70] + cmp r3, #0 + popeq {r3, r4, r5, pc} + ldr r2, [r0, #0x74] + mov r0, r5 + mov r1, r4 + blx r3 + pop {r3, r4, r5, pc} + .align 2, 0 +_022E250C: .4byte 0x02326DA0 + arm_func_end ov00_022E24B0 + + arm_func_start ov00_022E2510 +ov00_022E2510: @ 0x022E2510 + push {r3, r4, r5, lr} + ldr r2, _022E2554 @ =0x02326DA0 + mov r5, r0 + ldr r0, [r2] + mov r4, r1 + ldr r0, [r0, #0x28] + cmp r0, #4 + beq _022E2534 + bl ov00_022E2270 +_022E2534: + ldr r1, _022E2554 @ =0x02326DA0 + mov r0, r5 + ldr r3, [r1] + mov r1, r4 + ldr r2, [r3, #0x7c] + ldr r3, [r3, #0x78] + blx r3 + pop {r3, r4, r5, pc} + .align 2, 0 +_022E2554: .4byte 0x02326DA0 + arm_func_end ov00_022E2510 + + arm_func_start ov00_022E2558 +ov00_022E2558: @ 0x022E2558 + push {r3, lr} + ldr r1, [r1, #4] + ldr r0, _022E2588 @ =0x00000603 + cmp r1, r0 + ldrne r0, _022E258C @ =0x00000901 + cmpne r1, r0 + addne r0, r0, #0x200 + cmpne r1, r0 + popeq {r3, pc} + mov r0, #3 + bl ov00_022E22F0 + pop {r3, pc} + .align 2, 0 +_022E2588: .4byte 0x00000603 +_022E258C: .4byte 0x00000901 + arm_func_end ov00_022E2558 + + arm_func_start ov00_022E2590 +ov00_022E2590: @ 0x022E2590 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0xc + add r3, sp, #0 + mov r2, #0 + mov r6, r0 + mov r5, r1 + strb r2, [r3] + strb r2, [r3, #1] + strb r2, [r3, #2] + strb r2, [r3, #3] + strb r2, [r3, #4] + strb r2, [r3, #5] + strb r2, [r3, #6] + strb r2, [r3, #7] + strb r2, [r3, #8] + strb r2, [r3, #9] + strb r2, [r3, #0xa] + strb r2, [r3, #0xb] + ldr r0, _022E26DC @ =0x0231A194 + ldr r4, [r5, #8] + bl FUN_02089678 + mov r2, r0 + ldr r1, _022E26DC @ =0x0231A194 + mov r0, r4 + bl FUN_02087348 + cmp r0, #0 + addne sp, sp, #0xc + popne {r4, r5, r6, r7, pc} + ldr r0, _022E26DC @ =0x0231A194 + bl FUN_02089678 + add r4, r4, r0 + mov r0, r4 + mov r1, #0x76 + bl FUN_02089974 + sub r7, r0, r4 + add r0, sp, #0 + mov r1, r4 + mov r2, r7 + bl FUN_0208975C + cmp r7, #0xa + addhi sp, sp, #0xc + pophi {r4, r5, r6, r7, pc} + add r0, sp, #0 + mov r1, #0 + mov r2, #0xa + bl FUN_0208B200 + cmp r0, #3 + addne sp, sp, #0xc + popne {r4, r5, r6, r7, pc} + ldr r0, _022E26E0 @ =0x0231A19C + add r1, r7, #1 + add r4, r4, r1 + bl FUN_02089678 + mov r2, r0 + ldr r1, _022E26E0 @ =0x0231A19C + mov r0, r4 + bl FUN_02087348 + cmp r0, #0 + addne sp, sp, #0xc + popne {r4, r5, r6, r7, pc} + ldr r0, _022E26E4 @ =0x02326DA0 + ldr r1, [r0] + ldr r0, [r1, #0x24] + cmp r0, #5 + beq _022E26B8 + cmp r0, #6 + addne sp, sp, #0xc + popne {r4, r5, r6, r7, pc} + ldrb r0, [r1, #0x38d] + cmp r0, #2 + ldrbne r0, [r1, #0x38d] + cmpne r0, #3 + addne sp, sp, #0xc + popne {r4, r5, r6, r7, pc} +_022E26B8: + ldr r0, _022E26E0 @ =0x0231A19C + bl FUN_02089678 + mov r2, r0 + ldr r1, [r5] + mov r0, r6 + add r2, r4, r2 + bl ov00_022E64CC + add sp, sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_022E26DC: .4byte 0x0231A194 +_022E26E0: .4byte 0x0231A19C +_022E26E4: .4byte 0x02326DA0 + arm_func_end ov00_022E2590 +_022E26E8: + .byte 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0xDC, 0xC6, 0x2E, 0x02 + + arm_func_start ov00_022E26F4 +ov00_022E26F4: @ 0x022E26F4 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #8 + mov r5, #0 + mov fp, r0 + mov sb, r1 + mov sl, r5 + bl ov00_022E6E50 + cmp r0, #0 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp sb, #4 + addls pc, pc, sb, lsl #2 + b _022E2758 +_022E2728: @ jump table + b _022E273C @ case 0 + b _022E273C @ case 1 + b _022E2744 @ case 2 + b _022E2744 @ case 3 + b _022E2750 @ case 4 +_022E273C: + mov r8, r5 + b _022E2758 +_022E2744: + mov r8, #6 + ldr r6, _022E2A44 @ =0xFFFFE250 + b _022E2758 +_022E2750: + ldr r6, _022E2A48 @ =0xFFFFE24F + mov r8, #9 +_022E2758: + cmp r8, #0 + bne _022E2814 + mov r0, fp + bl ov00_0230E460 + movs r5, r0 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, _022E2A4C @ =0x02326DA0 + ldrb r4, [r5, #1] + ldr r0, [r0] + mov r7, #1 + ldr r0, [r0, #0x668] + tst r0, r7, lsl r4 + mov r0, r4 + moveq r7, #0 + bl ov00_022EC8F0 + ldr r0, _022E2A4C @ =0x02326DA0 + ldr r1, [r0] + ldrb r0, [r1, #0x38d] + cmp r0, #2 + cmpeq sb, #0 + beq _022E27C0 + ldrb r0, [r1, #0x38d] + cmp r0, #3 + cmpeq r4, #0 + bne _022E27C4 +_022E27C0: + mov sl, #1 +_022E27C4: + mov r0, r4 + bl ov00_022E2290 + ldr r1, _022E2A4C @ =0x02326DA0 + ldrb r5, [r5] + ldr r3, _022E2A50 @ =0x02326DA8 + mov fp, #0 + str fp, [r3, r5, lsl #2] + ldr r2, [r1] + mov r5, r0 + ldrb r1, [r2, #0x385] + cmp r1, #0 + subne r0, r1, #1 + strbne r0, [r2, #0x385] + ldr r0, _022E2A4C @ =0x02326DA0 + ldr r1, [r0] + ldrb r0, [r1, #0x38c] + cmp r0, #0 + ldrbne r0, [r1, #0x38c] + subne r0, r0, #1 + strbne r0, [r1, #0x38c] +_022E2814: + ldr r0, _022E2A4C @ =0x02326DA0 + ldr r1, [r0] + ldrb r0, [r1, #0x2d] + cmp r0, #0 + ldreq r0, [r1, #0x24] + cmpeq r0, #6 + cmpeq r7, #0 + bne _022E285C + ldrb r0, [r1, #0x38d] + cmp r0, #2 + cmpeq r8, #0 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + bl ov00_022E6D08 + mov r0, r5 + bl ov00_022E699C + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022E285C: + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022E6820 + cmp r0, #0 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r8, #0 + beq _022E2898 + ldr r1, _022E2A54 @ =0xFFFEC780 + mov r0, r8 + add r1, r6, r1 + bl ov00_022E0394 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022E2898: + ldr r0, _022E2A4C @ =0x02326DA0 + ldr r1, [r0] + ldrb r0, [r1, #0x2d] + cmp r0, #0 + bne _022E2908 + ldrb r0, [r1, #0x38d] + cmp r0, #2 + ldrbne r0, [r1, #0x38d] + cmpne r0, #3 + bne _022E2908 + ldr r2, _022E2A4C @ =0x02326DA0 + ldr r1, [r2] + ldrb r0, [r1, #0x385] + add r6, r0, #2 + add r3, r1, r6, lsl #2 + ldr r3, [r3, #0x46c] + cmp r3, #0 + beq _022E2908 + add r3, r1, r6 + ldrb r3, [r3, #0x648] + add r0, r0, #1 + add r0, r1, r0 + strb r3, [r0, #0x648] + ldr r0, [r2] + ldrb r1, [r0, #0x385] + add r0, r1, #1 + add r1, r1, #3 + bl ov00_022E6A24 +_022E2908: + ldr r0, _022E2A4C @ =0x02326DA0 + ldr r1, [r0] + ldrb r0, [r1, #0x38d] + cmp r0, #2 + bne _022E2950 + ldrb r0, [r1, #0x2d] + cmp r0, #0 + bne _022E2930 + bl ov00_022E6D08 + b _022E296C +_022E2930: + ldrb r0, [r1, #0x385] + cmp r0, #0 + bne _022E296C + ldr r1, _022E2A58 @ =0x0231A190 + mov r0, #1 + mov r2, #0 + bl ov00_022E3E54 + b _022E296C +_022E2950: + ldrb r0, [r1, #0x385] + cmp r0, #0 + bne _022E296C + ldr r1, _022E2A58 @ =0x0231A190 + mov r0, #1 + mov r2, #0 + bl ov00_022E3E54 +_022E296C: + ldr r0, _022E2A4C @ =0x02326DA0 + ldr r1, [r0] + ldrb r0, [r1, #0x38d] + cmp r0, #0 + ldrbne r0, [r1, #0x38d] + cmpne r0, #1 + bne _022E29A4 + ldr r0, _022E2A4C @ =0x02326DA0 + ldr r2, [r0] + ldrb r1, [r2, #0x38c] + strb r1, [r2, #0x38e] + ldr r0, [r0] + ldr r0, [r0, #0x388] + bl ov00_02312BF4 +_022E29A4: + ldr r0, _022E2A4C @ =0x02326DA0 + ldr r6, [r0] + ldr r0, [r6, #0x90] + cmp r0, #0 + cmpne r7, #0 + beq _022E29FC + cmp sb, #0 + moveq r7, #1 + mov r0, r5 + movne r7, #0 + bl ov00_022E3DB8 + str r0, [sp] + ldr r1, [r6, #0x94] + ldr r0, _022E2A4C @ =0x02326DA0 + str r1, [sp, #4] + ldr r1, [r0] + mov r0, r8 + ldr r5, [r1, #0x90] + mov r1, r7 + mov r2, sl + mov r3, r4 + blx r5 +_022E29FC: + ldr r0, _022E2A4C @ =0x02326DA0 + ldr r1, [r0] + ldrb r0, [r1, #0x2d] + cmp r0, #0 + ldrbeq r0, [r1, #0x38d] + cmpeq r0, #2 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrb r0, [r1, #0x385] + cmp r0, #0 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + bl ov00_022E5080 + bl ov00_022E662C + mov r0, #3 + bl ov00_022E2270 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022E2A44: .4byte 0xFFFFE250 +_022E2A48: .4byte 0xFFFFE24F +_022E2A4C: .4byte 0x02326DA0 +_022E2A50: .4byte 0x02326DA8 +_022E2A54: .4byte 0xFFFEC780 +_022E2A58: .4byte 0x0231A190 + arm_func_end ov00_022E26F4 +_022E2A5C: + .byte 0x00, 0xC0, 0x9F, 0xE5 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x18, 0xC7, 0x2E, 0x02 + + arm_func_start ov00_022E2A68 +ov00_022E2A68: @ 0x022E2A68 + push {r3, lr} + bl ov00_0230E448 + bl ov00_022F5194 + ldr r2, _022E2A9C @ =0x02326DA0 + arm_func_end ov00_022E2A68 + + arm_func_start ov00_022E2A78 +ov00_022E2A78: @ 0x022E2A78 + ldr r1, _022E2AA0 @ =0xFFFE8515 + str r0, [r2, #4] + mov r0, #9 + bl ov00_022E0394 + ldr r0, _022E2A9C @ =0x02326DA0 + mov r1, #0 + ldr r0, [r0] + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_022E2A9C: .4byte 0x02326DA0 +_022E2AA0: .4byte 0xFFFE8515 + arm_func_end ov00_022E2A78 + + arm_func_start ov00_022E2AA4 +ov00_022E2AA4: @ 0x022E2AA4 + push {r4, r5, r6, lr} + ldr ip, _022E2B24 @ =0x02326F28 + mov r6, r1 + mov r5, r2 + mov r1, #0 + mov r2, #0x280 + mov r4, r3 + str r0, [ip, #4] + bl FUN_0207C40C + ldr r0, _022E2B24 @ =0x02326F28 + mov r2, #0 + ldr r1, [r0, #4] + ldr ip, [sp, #0x10] + str r5, [r1] + ldr r1, [r0, #4] + ldr r5, [sp, #0x14] + str r2, [r1, #4] + ldr r1, [r0, #4] + ldr r3, [sp, #0x18] + str r4, [r1, #8] + ldr r1, [r0, #4] + ldr r2, [sp, #0x1c] + str ip, [r1, #0xc] + ldr r1, [r0, #4] + str r5, [r1, #0x10] + ldr r1, [r0, #4] + str r3, [r1, #0x14] + ldr r1, [r0, #4] + str r2, [r1, #0x18] + ldr r0, [r0, #4] + str r6, [r0, #0x1c] + pop {r4, r5, r6, pc} + .align 2, 0 +_022E2B24: .4byte 0x02326F28 + arm_func_end ov00_022E2AA4 + + arm_func_start ov00_022E2B28 +ov00_022E2B28: @ 0x022E2B28 + push {r3, lr} + ldr r0, _022E2B58 @ =0x022E2EF4 + mov r1, #0 + bl ov00_022E2FA8 + ldr r0, _022E2B5C @ =0x02326F28 + mov r3, #1 + ldr r2, [r0, #4] + mov r1, #0 + str r3, [r2, #4] + ldr r0, [r0, #4] + str r1, [r0, #0x30] + pop {r3, pc} + .align 2, 0 +_022E2B58: .4byte 0x022E2EF4 +_022E2B5C: .4byte 0x02326F28 + arm_func_end ov00_022E2B28 + + arm_func_start ov00_022E2B60 +ov00_022E2B60: @ 0x022E2B60 + push {r3, lr} + ldr r0, _022E2C48 @ =0x02326F28 + ldr r0, [r0, #4] + cmp r0, #0 + popeq {r3, pc} + bl ov00_022E0378 + cmp r0, #0 + popne {r3, pc} + ldr r0, _022E2C48 @ =0x02326F28 + ldr r1, [r0, #4] + ldr r0, [r1, #4] + cmp r0, #5 + addls pc, pc, r0, lsl #2 + pop {r3, pc} +_022E2B98: @ jump table + pop {r3, pc} @ case 0 + b _022E2BB0 @ case 1 + b _022E2BB8 @ case 2 + b _022E2BB8 @ case 3 + b _022E2BB8 @ case 4 + pop {r3, pc} @ case 5 +_022E2BB0: + bl ov00_022E3174 + pop {r3, pc} +_022E2BB8: + ldr r0, [r1] + cmp r0, #0 + ldrne r1, [r0] + cmpne r1, #0 + beq _022E2BD0 + bl ov00_022FEF74 +_022E2BD0: + ldr r0, _022E2C48 @ =0x02326F28 + ldr r0, [r0, #4] + ldr r0, [r0, #0x30] + cmp r0, #0 + popeq {r3, pc} + bl FUN_0207AE44 + ldr r3, _022E2C48 @ =0x02326F28 + ldr r2, _022E2C4C @ =0x000082EA + ldr ip, [r3, #4] + mov r3, #0 + ldr lr, [ip, #0x34] + ldr ip, [ip, #0x38] + subs lr, r0, lr + sbc r0, r1, ip + lsl r1, r0, #6 + orr r1, r1, lr, lsr #26 + lsl r0, lr, #6 + bl FUN_0208FE3C + ldr r2, _022E2C50 @ =0x0000EA60 + cmp r1, #0 + cmpeq r0, r2 + popls {r3, pc} + ldr r1, _022E2C54 @ =0xFFFF1172 + mov r0, #6 + bl ov00_022E2C74 + ldr r0, _022E2C48 @ =0x02326F28 + mov r1, #0 + ldr r0, [r0, #4] + str r1, [r0, #0x30] + pop {r3, pc} + .align 2, 0 +_022E2C48: .4byte 0x02326F28 +_022E2C4C: .4byte 0x000082EA +_022E2C50: .4byte 0x0000EA60 +_022E2C54: .4byte 0xFFFF1172 + arm_func_end ov00_022E2B60 + + arm_func_start ov00_022E2C58 +ov00_022E2C58: @ 0x022E2C58 + ldr r0, _022E2C70 @ =0x02326F28 + ldr r0, [r0, #4] + cmp r0, #0 + ldrne r0, [r0, #0x1c] + moveq r0, #0 + bx lr + .align 2, 0 +_022E2C70: .4byte 0x02326F28 + arm_func_end ov00_022E2C58 + + arm_func_start ov00_022E2C74 +ov00_022E2C74: @ 0x022E2C74 + push {r4, lr} + ldr r2, _022E2CC0 @ =0x02326F28 + mov r4, r0 + ldr r2, [r2, #4] + cmp r2, #0 + cmpne r4, #0 + popeq {r4, pc} + bl ov00_022E0394 + ldr r0, _022E2CC0 @ =0x02326F28 + ldr r0, [r0, #4] + ldr r3, [r0, #0x14] + cmp r3, #0 + beq _022E2CB8 + ldr r2, [r0, #0x18] + mov r0, r4 + mov r1, #0 + blx r3 +_022E2CB8: + bl ov00_022E2D20 + pop {r4, pc} + .align 2, 0 +_022E2CC0: .4byte 0x02326F28 + arm_func_end ov00_022E2C74 + + arm_func_start ov00_022E2CC4 +ov00_022E2CC4: @ 0x022E2CC4 + push {r3, lr} + ldr r0, _022E2D1C @ =0x02326F28 + ldr r0, [r0, #4] + ldr r0, [r0, #0x24] + cmp r0, #0 + beq _022E2D0C + bl ov00_022DBE7C + bl ov00_022DBF08 + ldr r1, _022E2D1C @ =0x02326F28 + mov r0, #0 + ldr r1, [r1, #4] + mov r2, r0 + ldr r1, [r1, #0x24] + bl ov00_022E0434 + ldr r0, _022E2D1C @ =0x02326F28 + mov r1, #0 + ldr r0, [r0, #4] + str r1, [r0, #0x24] +_022E2D0C: + ldr r0, _022E2D1C @ =0x02326F28 + mov r1, #0 + str r1, [r0, #4] + pop {r3, pc} + .align 2, 0 +_022E2D1C: .4byte 0x02326F28 + arm_func_end ov00_022E2CC4 + + arm_func_start ov00_022E2D20 +ov00_022E2D20: @ 0x022E2D20 + ldr r0, _022E2D44 @ =0x02326F28 + ldr r2, [r0, #4] + cmp r2, #0 + bxeq lr + mov r1, #0 + str r1, [r2, #4] + ldr r0, [r0, #4] + str r1, [r0, #0x30] + bx lr + .align 2, 0 +_022E2D44: .4byte 0x02326F28 + arm_func_end ov00_022E2D20 + + arm_func_start ov00_022E2D48 +ov00_022E2D48: @ 0x022E2D48 + push {r4, lr} + movs r4, r0 + moveq r0, #0 + popeq {r4, pc} + cmp r4, #4 + addls pc, pc, r4, lsl #2 + b _022E2DA4 +_022E2D64: @ jump table + b _022E2DA4 @ case 0 + b _022E2D78 @ case 1 + b _022E2D84 @ case 2 + b _022E2D90 @ case 3 + b _022E2D9C @ case 4 +_022E2D78: + mov r0, #9 + sub r2, r0, #0xa + b _022E2DA4 +_022E2D84: + mov r0, #9 + sub r2, r0, #0xb + b _022E2DA4 +_022E2D90: + mov r0, #6 + sub r2, r0, #0x10 + b _022E2DA4 +_022E2D9C: + mov r0, #6 + sub r2, r0, #0x1a +_022E2DA4: + ldr r1, _022E2DB8 @ =0xFFFF11B8 + add r1, r2, r1 + bl ov00_022E2C74 + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_022E2DB8: .4byte 0xFFFF11B8 + arm_func_end ov00_022E2D48 + + arm_func_start ov00_022E2DBC +ov00_022E2DBC: @ 0x022E2DBC push {r3, r4, r5, r6, r7, lr} sub sp, sp, #8 + ldr r2, _022E2EE4 @ =0x02326F28 + mov lr, #0 + ldr r3, [r2, #4] + mov r4, r1 + str lr, [r3, #0x30] mov r7, r0 - ldr r0, _02082008 @ =0x00996A00 - mov r6, r1 - bl _0207B854 - bl FUN_02082440 - cmp r0, #1 - beq _02081FF0 - add r0, sp, #4 - add r1, sp, #0 - bl FUN_02082060 - ldr r0, [sp, #4] + ldr r0, [r4] cmp r0, #0 - beq _02081FA8 + bne _022E2ED8 + ldr ip, [r2, #4] + mov r6, r4 + add r5, ip, #0x260 + ldm r6!, {r0, r1, r2, r3} + stm r5!, {r0, r1, r2, r3} + ldm r6, {r0, r1, r2, r3} + stm r5, {r0, r1, r2, r3} + ldr r0, [ip, #4] + cmp r0, #2 + bne _022E2EA0 + ldr r1, [ip, #0x1c] + ldr r0, [r4, #4] + ldr r1, [r1, #0x1c] + cmp r1, r0 + bne _022E2E8C + ldr r1, _022E2EE8 @ =0x0231A1A0 + mov r3, #5 + mov r2, lr + mov r0, #1 + str r3, [ip, #4] + bl ov00_022E3E54 + bl ov00_022E2D48 + cmp r0, #0 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} + ldr r0, _022E2EE4 @ =0x02326F28 + ldr r1, [r4, #4] + ldr r3, [r0, #4] mov r0, #0 - mov r1, r0 - bl FUN_02081f38 -_02081FA8: - ldr r0, [sp] + ldr r2, [r3, #0x18] + ldr r3, [r3, #0x14] + blx r3 + bl ov00_022E1FDC cmp r0, #0 - beq _02081FC0 - mov r0, #1 - mov r1, #0 - bl FUN_02081f38 -_02081FC0: - mov r0, #1 - bl FUN_02082420 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} + ldr r0, [r4, #4] + bl ov00_022E5224 + add sp, sp, #8 cmp r0, #0 - bne _02081FF0 - ldr r5, _02082008 @ =0x00996A00 - mov r4, #1 -_02081FD8: - mov r0, r5 - bl _0207B854 - mov r0, r4 - bl FUN_02082420 + pop {r3, r4, r5, r6, r7, pc} +_022E2E8C: + ldr r1, _022E2EEC @ =0xFFFF15A0 + mov r0, #6 + bl ov00_022E2C74 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_022E2EA0: + cmp r0, #3 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} + ldr r1, _022E2EF0 @ =ov00_022E337C + mov r0, r7 + stm sp, {r1, lr} + ldr r1, [r4, #4] + mov r2, lr + mov r3, lr + bl ov00_022FF1F8 + bl ov00_022E2D48 + add sp, sp, #8 cmp r0, #0 - beq _02081FD8 -_02081FF0: - mov r1, r7 - mov r2, r6 - mov r0, #0xe - bl FUN_02081cc4 + pop {r3, r4, r5, r6, r7, pc} +_022E2ED8: + bl ov00_022E2D48 add sp, sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 -_02082008: .4byte 0x00996A00 - arm_func_end FUN_02081f60 +_022E2EE4: .4byte 0x02326F28 +_022E2EE8: .4byte 0x0231A1A0 +_022E2EEC: .4byte 0xFFFF15A0 +_022E2EF0: .4byte ov00_022E337C + arm_func_end ov00_022E2DBC +_022E2EF4: + .byte 0x08, 0xC0, 0x9F, 0xE5, 0x08, 0x20, 0x9F, 0xE5, 0x02, 0x30, 0xA0, 0xE3 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x0C, 0x2F, 0x2E, 0x02, 0xBC, 0x2D, 0x2E, 0x02 - arm_func_start FUN_0208200c -FUN_0208200c: @ 0x0208200C - push {r3, lr} - ldr r0, _02082030 @ =0x02081A7C - add r1, sp, #0 - bl FUN_02081f60 + arm_func_start ov00_022E2F0C +ov00_022E2F0C: @ 0x022E2F0C + push {r3, r4, r5, r6, lr} + sub sp, sp, #0xc + ldr r4, _022E2FA4 @ =0x02326F28 + mov r6, r1 + ldr r4, [r4, #4] + mov r1, r0 + add r0, r4, #0x48 + mov r5, r2 + mov r4, r3 + bl FUN_02089694 + ldr r0, _022E2FA4 @ =0x02326F28 + mov r1, r6 + ldr r0, [r0, #4] + add r0, r0, #0x148 + bl FUN_02089694 + ldr r0, _022E2FA4 @ =0x02326F28 + ldr r6, [r0, #4] + bl FUN_0207AE44 + str r0, [r6, #0x34] + str r1, [r6, #0x38] + mov r3, #1 + ldr r0, _022E2FA4 @ =0x02326F28 + str r3, [r6, #0x30] + ldr r2, [r0, #4] + mov r1, #0 + stm sp, {r1, r5} + str r1, [sp, #8] + ldr r0, [r2] + add r1, r2, #0x48 + add r2, r2, #0x148 + bl ov00_022FEFF8 + bl ov00_022E2D48 cmp r0, #0 - popne {r3, pc} - bl FUN_02081a3c - ldr r0, [sp] + ldreq r0, _022E2FA4 @ =0x02326F28 + ldreq r0, [r0, #4] + streq r4, [r0, #4] + add sp, sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_022E2FA4: .4byte 0x02326F28 + arm_func_end ov00_022E2F0C + + arm_func_start ov00_022E2FA8 +ov00_022E2FA8: @ 0x022E2FA8 + push {r3, r4, r5, lr} + sub sp, sp, #0x48 + mov r5, r0 + mov r4, r1 + add r0, sp, #0 + mov r1, #0 + mov r2, #0x48 + bl FUN_0207C40C + ldr r0, _022E3158 @ =0x02326F28 + str r5, [r0, #8] + str r4, [r0] + ldr r0, [r0, #4] + ldr r0, [r0, #0x1c] + bl ov00_022DB77C + cmp r0, #0 + beq _022E3008 + ldr r0, _022E3158 @ =0x02326F28 + ldr r1, [r0, #4] + ldr r0, [r1, #0x1c] + add r2, r1, #0x248 + ldr r1, [r0, #0x24] + add r0, r0, #0x10 + bl ov00_022DB528 + b _022E30BC +_022E3008: + ldr r0, _022E3158 @ =0x02326F28 + ldr r0, [r0, #4] + add r0, r0, #0x3c + bl ov00_022DB764 + cmp r0, #0 + bne _022E3070 + ldr r0, _022E3158 @ =0x02326F28 + ldr r0, [r0, #4] + ldr r0, [r0, #0x1c] + add r0, r0, #4 + bl ov00_022DB6F8 + cmp r0, #0 + beq _022E305C + ldr r0, _022E3158 @ =0x02326F28 + ldr r1, [r0, #4] + ldr r0, [r1, #0x1c] + add r3, r1, #0x3c + add r0, r0, #4 + ldm r0, {r0, r1, r2} + stm r3, {r0, r1, r2} + b _022E30A4 +_022E305C: + ldr r0, _022E3158 @ =0x02326F28 + ldr r0, [r0, #4] + add r0, r0, #0x3c + bl ov00_022DB634 + b _022E30A4 +_022E3070: + bl FUN_0207AE44 + ldr r2, _022E315C @ =0x6C078965 + ldr r3, _022E3160 @ =0x5D588B65 + umull ip, r4, r0, r2 + mla r4, r0, r3, r4 + ldr r3, _022E3158 @ =0x02326F28 + ldr r0, _022E3164 @ =0x00269EC3 + mla r4, r1, r2, r4 + adds r0, ip, r0 + ldr r3, [r3, #4] + adc r1, r4, #0 + add r0, r3, #0x3c + bl ov00_022DB178 +_022E30A4: + ldr r0, _022E3158 @ =0x02326F28 + ldr r2, [r0, #4] + ldr r1, [r2, #0xc] + add r0, r2, #0x3c + add r2, r2, #0x248 + bl ov00_022DB528 +_022E30BC: + ldr r0, _022E3158 @ =0x02326F28 + ldr r0, [r0, #4] + ldr r0, [r0, #0x10] + bl ov00_022E1664 + ldr r1, _022E3158 @ =0x02326F28 + lsl r2, r0, #1 + ldr r1, [r1, #4] + add r2, r2, #2 + ldr r0, [r1, #0x10] + add r1, sp, #0 + bl FUN_0207C4C8 + ldr r1, _022E3158 @ =0x02326F28 + add r0, sp, #0x34 + ldr r1, [r1, #4] + add r1, r1, #0x51 + add r1, r1, #0x200 + bl FUN_02089694 + ldr r4, _022E3168 @ =ov00_022E03F0 + ldr r3, _022E316C @ =ov00_022E0434 + ldr r1, _022E3170 @ =0x00001C14 + mov r0, #0 + mov r2, #4 + str r4, [sp, #0x40] + str r3, [sp, #0x44] + bl ov00_022E0400 + ldr r1, _022E3158 @ =0x02326F28 + mov r4, r0 + ldr r0, [r1, #4] + str r4, [r0, #0x24] + bl FUN_0207AE44 + ldr r2, _022E3158 @ =0x02326F28 + ldr r2, [r2, #4] + str r0, [r2, #0x28] + str r1, [r2, #0x2c] + mov r1, r4 + add r0, sp, #0 + bl ov00_022DBCA4 + add sp, sp, #0x48 + pop {r3, r4, r5, pc} + .align 2, 0 +_022E3158: .4byte 0x02326F28 +_022E315C: .4byte 0x6C078965 +_022E3160: .4byte 0x5D588B65 +_022E3164: .4byte 0x00269EC3 +_022E3168: .4byte ov00_022E03F0 +_022E316C: .4byte ov00_022E0434 +_022E3170: .4byte 0x00001C14 + arm_func_end ov00_022E2FA8 + + arm_func_start ov00_022E3174 +ov00_022E3174: @ 0x022E3174 + push {r3, lr} + sub sp, sp, #0x3d0 + bl ov00_022DBF90 + cmp r0, #0x15 + bne _022E3244 + add r0, sp, #0x20c + bl ov00_022DBFDC + ldr r0, _022E3364 @ =0x02326F28 + add r1, sp, #0x200 + ldr r0, [r0, #4] + add r1, r1, #0x56 + add r0, r0, #0x48 + bl FUN_02089694 + ldr r0, _022E3364 @ =0x02326F28 + add r1, sp, #0x300 + ldr r0, [r0, #4] + add r1, r1, #0x83 + add r0, r0, #0x148 + bl FUN_02089694 + bl ov00_022DBF08 + ldr r1, _022E3364 @ =0x02326F28 + mov r0, #0 + ldr r1, [r1, #4] + mov r2, r0 + ldr r1, [r1, #0x24] + bl ov00_022E0434 + ldr r0, _022E3364 @ =0x02326F28 + mov r2, #0 + ldr r1, [r0, #4] + str r2, [r1, #0x24] + ldr r0, [r0, #4] + ldr r0, [r0, #0x1c] + bl ov00_022DB77C + cmp r0, #0 + beq _022E3220 + ldr r0, _022E3364 @ =0x02326F28 + ldr r2, [r0] + ldmib r0, {r1, r3} + add r0, r1, #0x48 + add r1, r1, #0x148 + blx r3 + add sp, sp, #0x3d0 + pop {r3, pc} +_022E3220: + ldr r0, _022E3364 @ =0x02326F28 + ldr r2, _022E3368 @ =ov00_022E2DBC + ldr r1, [r0, #4] + mov r3, #3 + add r0, r1, #0x48 + add r1, r1, #0x148 + bl ov00_022E2F0C + add sp, sp, #0x3d0 + pop {r3, pc} +_022E3244: + bl ov00_022DBF90 + cmp r0, #0 + addeq sp, sp, #0x3d0 + popeq {r3, pc} + bl FUN_0207AE44 + ldr r3, _022E3364 @ =0x02326F28 + ldr r2, _022E336C @ =0x000082EA + ldr ip, [r3, #4] + mov r3, #0 + ldr lr, [ip, #0x28] + ldr ip, [ip, #0x2c] + subs lr, r0, lr + sbc r0, r1, ip + lsl r1, r0, #6 + orr r1, r1, lr, lsr #26 + lsl r0, lr, #6 + bl FUN_0208FE3C + ldr r2, _022E3370 @ =0x00002710 + cmp r1, #0 + cmpeq r0, r2 + bls _022E32E0 + add r0, sp, #0x48 + bl ov00_022DBFDC + bl ov00_022DBF08 + ldr r1, _022E3364 @ =0x02326F28 + mov r0, #0 + ldr r1, [r1, #4] + mov r2, r0 + ldr r1, [r1, #0x24] + bl ov00_022E0434 + ldr r0, _022E3364 @ =0x02326F28 + mov r2, #0 + ldr r1, [r0, #4] + mov r0, #2 + str r2, [r1, #0x24] + ldr r1, [sp, #0x48] + bl ov00_022E2C74 + add sp, sp, #0x3d0 + pop {r3, pc} +_022E32E0: + bl ov00_022DBF08 + add r0, sp, #0 + mov r1, #0 + mov r2, #0x48 + bl FUN_0207C40C + ldr r0, _022E3364 @ =0x02326F28 + ldr r0, [r0, #4] + ldr r0, [r0, #0x10] + bl ov00_022E1664 + ldr r1, _022E3364 @ =0x02326F28 + lsl r2, r0, #1 + ldr r1, [r1, #4] + add r2, r2, #2 + ldr r0, [r1, #0x10] + add r1, sp, #0 + bl FUN_0207C4C8 + ldr r1, _022E3364 @ =0x02326F28 + add r0, sp, #0x34 + ldr r1, [r1, #4] + add r1, r1, #0x51 + add r1, r1, #0x200 + bl FUN_02089694 + ldr r2, _022E3374 @ =ov00_022E03F0 + ldr r0, _022E3364 @ =0x02326F28 + str r2, [sp, #0x40] + ldr r2, _022E3378 @ =ov00_022E0434 + ldr r1, [r0, #4] + str r2, [sp, #0x44] + ldr r1, [r1, #0x24] + add r0, sp, #0 + bl ov00_022DBCA4 + add sp, sp, #0x3d0 pop {r3, pc} .align 2, 0 -_02082030: .4byte 0x02081A7C - arm_func_end FUN_0208200c +_022E3364: .4byte 0x02326F28 +_022E3368: .4byte ov00_022E2DBC +_022E336C: .4byte 0x000082EA +_022E3370: .4byte 0x00002710 +_022E3374: .4byte ov00_022E03F0 +_022E3378: .4byte ov00_022E0434 + arm_func_end ov00_022E3174 - arm_func_start FUN_02082034 -FUN_02082034: @ 0x02082034 - push {r4, lr} - mov r4, r0 - bl FUN_02082440 + arm_func_start ov00_022E337C +ov00_022E337C: @ 0x022E337C + push {r3, r4, r5, lr} + sub sp, sp, #0x48 + mov r4, r1 + ldr r1, [r4] + mov r5, r0 + cmp r1, #0 + addne sp, sp, #0x48 + popne {r3, r4, r5, pc} + ldr r1, _022E3510 @ =0x02326F28 + ldr r2, [r1, #4] + ldr r1, [r2, #4] + cmp r1, #3 + bne _022E3454 + ldrsb r1, [r4, #0x8e] + cmp r1, #0 + bne _022E342C + ldr r0, [r2, #0x1c] + ldr r1, [r2, #0xc] + add r2, sp, #0x32 + add r0, r0, #4 + bl ov00_022DB528 + ldr r1, _022E3514 @ =0x00000705 + add r2, sp, #0x32 + mov r0, r5 + bl ov00_022FF2D4 + bl ov00_022E2D48 cmp r0, #0 + addne sp, sp, #0x48 + popne {r3, r4, r5, pc} + ldr r0, _022E3510 @ =0x02326F28 + mov r3, #4 + ldr r1, [r0, #4] + ldr r0, _022E3518 @ =ov00_022E337C + mov r2, #0 + str r3, [r1, #4] + stm sp, {r0, r2} + ldr r1, [r4, #4] + mov r0, r5 + mov r3, r2 + bl ov00_022FF1F8 + bl ov00_022E2D48 + add sp, sp, #0x48 + cmp r0, #0 + pop {r3, r4, r5, pc} +_022E342C: + bl ov00_022FF0FC + ldr r0, _022E351C @ =0x022E2EF4 + mov r1, #0 + bl ov00_022E2FA8 + ldr r0, _022E3510 @ =0x02326F28 + mov r1, #1 + ldr r0, [r0, #4] + add sp, sp, #0x48 + str r1, [r0, #4] + pop {r3, r4, r5, pc} +_022E3454: + cmp r1, #4 + addne sp, sp, #0x48 + popne {r3, r4, r5, pc} + ldr r0, [r2, #0x1c] + ldr r1, [r2, #0xc] + add r2, sp, #0x1d + add r0, r0, #4 + bl ov00_022DB528 + add r1, sp, #0x1d + add r0, r4, #0x8e + bl FUN_0208982C + cmp r0, #0 + bne _022E34E4 + ldr r0, _022E3510 @ =0x02326F28 + add r2, sp, #8 + ldr r0, [r0, #4] + ldr r1, [r0, #0xc] + add r0, r0, #0x3c + bl ov00_022DB528 + ldr r0, _022E3510 @ =0x02326F28 + ldr r2, [r4, #4] + ldr r1, [r0, #4] + ldr r0, [r1, #0x1c] + add r1, r1, #0x3c + bl ov00_022DB898 + ldr r1, _022E3510 @ =0x02326F28 + mov r3, #2 + ldr r2, [r1, #4] + mov r0, r5 + str r3, [r2, #4] + ldr r1, [r1, #4] + mov r2, #0 + add r1, r1, #0x260 + bl ov00_022E2DBC + add sp, sp, #0x48 + pop {r3, r4, r5, pc} +_022E34E4: + ldr r0, _022E3518 @ =ov00_022E337C + mov r2, #0 + stm sp, {r0, r2} + ldr r1, [r4, #4] + mov r0, r5 + mov r3, r2 + bl ov00_022FF1F8 + bl ov00_022E2D48 + cmp r0, #0 + add sp, sp, #0x48 + pop {r3, r4, r5, pc} + .align 2, 0 +_022E3510: .4byte 0x02326F28 +_022E3514: .4byte 0x00000705 +_022E3518: .4byte ov00_022E337C +_022E351C: .4byte 0x022E2EF4 + arm_func_end ov00_022E337C + + arm_func_start ov00_022E3520 +ov00_022E3520: @ 0x022E3520 + ldr r0, _022E3548 @ =0x02326F28 + ldr r0, [r0, #4] + cmp r0, #0 + beq _022E3540 + ldr r0, [r0, #4] + cmp r0, #5 + moveq r0, #1 + bxeq lr +_022E3540: + mov r0, #0 + bx lr + .align 2, 0 +_022E3548: .4byte 0x02326F28 + arm_func_end ov00_022E3520 + + arm_func_start ov00_022E354C +ov00_022E354C: @ 0x022E354C + ldr ip, _022E3560 @ =FUN_022E3564 + mov r3, r1 + mov r1, #0 + mov r2, r1 + bx ip + .align 2, 0 +_022E3560: .4byte FUN_022E3564 + arm_func_end ov00_022E354C + + arm_func_start FUN_022E3564 +FUN_022E3564: @ 0x022E3564 + push {r4, r5, r6, lr} + sub sp, sp, #0x218 + mov r6, r1 + add r1, sp, #4 + mov r4, r2 + mov r5, r3 + bl ov00_022E4604 + cmp r0, #0 + beq _022E3654 + ldr r0, [sp, #8] + cmp r0, #6 + bne _022E3618 + cmp r6, #0 + beq _022E35D4 + ldr r0, _022E3678 @ =0x0231A1A4 + add r1, sp, #0 + add r2, sp, #0xc + mov r3, #0x2f + bl ov00_022E1448 + cmp r0, #0 + movle r0, #0 + strble r0, [r6] + ble _022E35D4 + add r0, sp, #0 + mov r1, #0 + mov r2, #0xa + bl FUN_0208B200 + strb r0, [r6] +_022E35D4: + cmp r4, #0 + beq _022E3630 + ldr r0, _022E367C @ =0x0231A1A8 + add r1, sp, #0 + add r2, sp, #0xc + mov r3, #0x2f + bl ov00_022E1448 + cmp r0, #0 + movle r0, #0 + strble r0, [r4] + ble _022E3630 + add r0, sp, #0 + mov r1, #0 + mov r2, #0xa + bl FUN_0208B200 + strb r0, [r4] + b _022E3630 +_022E3618: + cmp r6, #0 + movne r0, #0 + strbne r0, [r6] + cmp r4, #0 + movne r0, #0 + strbne r0, [r4] +_022E3630: + cmp r5, #0 + beq _022E3644 + add r1, sp, #0x10c + mov r0, r5 + bl FUN_02089694 +_022E3644: + ldr r0, [sp, #8] + add sp, sp, #0x218 + and r0, r0, #0xff + pop {r4, r5, r6, pc} +_022E3654: + cmp r6, #0 + movne r0, #0 + strbne r0, [r6] + cmp r4, #0 + movne r0, #0 + strbne r0, [r4] + mov r0, #0 + add sp, sp, #0x218 + pop {r4, r5, r6, pc} + .align 2, 0 +_022E3678: .4byte 0x0231A1A4 +_022E367C: .4byte 0x0231A1A8 + arm_func_end FUN_022E3564 + + arm_func_start ov00_022E3680 +ov00_022E3680: @ 0x022E3680 + push {r3, r4, r5, lr} + ldr r1, _022E3710 @ =0x02326F34 + mov r4, r0 + ldr r0, [r1, #0xc] + cmp r0, #0 + beq _022E36FC + bl ov00_022E3520 + cmp r0, #0 + beq _022E36FC + bl ov00_022E2C58 + cmp r0, #0 + beq _022E36FC + bl ov00_022E2C58 + mov r1, r4 + bl ov00_022DB98C + movs r5, r0 + mvnne r0, #0 + cmpne r5, r0 + beq _022E36FC + ldr r0, _022E3710 @ =0x02326F34 + mov r1, r5 + ldr r0, [r0, #0xc] + ldr r0, [r0, #4] + bl ov00_022FF808 + cmp r0, #0 + beq _022E36FC + ldr r0, _022E3710 @ =0x02326F34 + mov r1, r5 + ldr r0, [r0, #0xc] + ldr r0, [r0, #4] + bl ov00_022FF880 +_022E36FC: + mov r0, r4 + mov r1, #0 + mov r2, #0xc + bl FUN_0207C40C + pop {r3, r4, r5, pc} + .align 2, 0 +_022E3710: .4byte 0x02326F34 + arm_func_end ov00_022E3680 + + arm_func_start ov00_022E3714 +ov00_022E3714: @ 0x022E3714 + ldr r2, _022E373C @ =0x02326F34 + ldr r3, [r2, #0xc] + cmp r3, #0 + moveq r0, #0 + bxeq lr + str r0, [r3, #0x44] + ldr r2, [r2, #0xc] + mov r0, #1 + str r1, [r2, #0x48] + bx lr + .align 2, 0 +_022E373C: .4byte 0x02326F34 + arm_func_end ov00_022E3714 + + arm_func_start ov00_022E3740 +ov00_022E3740: @ 0x022E3740 + push {r4, r5, r6, r7, r8, lr} + ldr r6, _022E3858 @ =0x02326F34 + ldr r5, [sp, #0x18] + str r0, [r6, #0xc] + mov r4, #0 + str r4, [r0] + ldr r0, [r6, #0xc] + cmp r5, #0 + str r1, [r0, #4] + ldr r0, [r6, #0xc] + str r4, [r0, #8] + ldr r0, [r6, #0xc] + str r4, [r0, #0xc] + str r4, [r0, #0x10] + str r5, [r0, #0x14] + ldr r0, [r6, #0xc] + str r3, [r0, #0x18] + ldr r0, [r6, #0xc] + strb r4, [r0, #0x1c] + ldr r0, [r6, #0xc] + strb r4, [r0, #0x1d] + ldr r0, [r6, #0xc] + strb r4, [r0, #0x1e] + ldr r0, [r6, #0xc] + strb r4, [r0, #0x1f] + ldr r0, [r6, #0xc] + str r4, [r0, #0x20] + ldr r0, [r6, #0xc] + str r4, [r0, #0x24] + ldr r0, [r6, #0xc] + str r2, [r0, #0x28] + ldr r0, [r6, #0xc] + str r4, [r0, #0x2c] + ldr r0, [r6, #0xc] + str r4, [r0, #0x30] + ldr r0, [r6, #0xc] + str r4, [r0, #0x34] + ldr r0, [r6, #0xc] + str r4, [r0, #0x38] + ldr r0, [r6, #0xc] + str r4, [r0, #0x3c] + ldr r0, [r6, #0xc] + str r4, [r0, #0x40] + ldr r0, [r6, #0xc] + str r4, [r0, #0x44] + ldr r0, [r6, #0xc] + str r4, [r0, #0x48] + ldr r0, [r6, #0xc] + str r4, [r0, #0x4c] + ldr r0, [r6, #0xc] + str r4, [r0, #0x50] + ldr r0, [r6, #0xc] + str r4, [r0, #0x54] + ldr r0, [r6, #0xc] + str r4, [r0, #0x58] + ldr r0, [r6, #0xc] + str r4, [r0, #0x5c] + pople {r4, r5, r6, r7, r8, pc} + mov r8, r4 + mov r7, r4 +_022E3830: + ldr r0, [r6, #0xc] + mov r1, r7 + ldr r0, [r0, #0x18] + add r0, r0, r8 + bl ov00_022DB328 + add r4, r4, #1 + cmp r4, r5 + add r8, r8, #0xc + blt _022E3830 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022E3858: .4byte 0x02326F34 + arm_func_end ov00_022E3740 + + arm_func_start ov00_022E385C +ov00_022E385C: @ 0x022E385C + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + ldr r0, _022E3B30 @ =0x02326F34 + ldr r0, [r0, #0xc] + cmp r0, #0 + addeq sp, sp, #8 + popeq {r4, r5, r6, r7, r8, pc} + bl ov00_022E0378 + cmp r0, #0 + addne sp, sp, #8 + popne {r4, r5, r6, r7, r8, pc} + ldr r0, _022E3B30 @ =0x02326F34 + ldr r1, [r0, #0xc] + ldr r0, [r1, #0x18] + cmp r0, #0 + bne _022E38C0 + ldr r0, [r1, #4] + cmp r0, #0 + ldrne r0, [r0] + cmpne r0, #0 + addeq sp, sp, #8 + popeq {r4, r5, r6, r7, r8, pc} + bl ov00_022E3FA4 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} +_022E38C0: + bl ov00_022E4E5C + cmp r0, #0 + bne _022E38D8 + bl ov00_0230C30C + cmp r0, #0 + beq _022E3910 +_022E38D8: + ldr r0, _022E3B30 @ =0x02326F34 + mov r1, #1 + str r1, [r0, #4] + mov r1, #0 + str r1, [r0] + bl ov00_0230C32C + ldr r0, _022E3B30 @ =0x02326F34 + mov r2, #0 + str r2, [r0, #4] + ldr r1, [r0] + cmp r1, #1 + bne _022E3910 + str r2, [r0] + bl ov00_0230C29C +_022E3910: + ldr r0, _022E3B30 @ =0x02326F34 + ldr r0, [r0, #0xc] + ldr r0, [r0, #4] + cmp r0, #0 + ldrne r0, [r0] + cmpne r0, #0 + beq _022E39B4 + bl ov00_022E3FA4 + cmp r0, #0 + addne sp, sp, #8 + popne {r4, r5, r6, r7, r8, pc} + ldr r0, _022E3B30 @ =0x02326F34 + ldr r3, [r0, #0xc] + ldr r0, [r3] + cmp r0, #0 + addeq sp, sp, #8 + popeq {r4, r5, r6, r7, r8, pc} + ldr r0, [r3, #0x18] + cmp r0, #0 + ldrbne r2, [r3, #0x1e] + cmpne r2, #3 + beq _022E39B4 + ldr r1, [r3, #8] + cmp r1, #7 + bls _022E39B4 + cmp r2, #1 + bhi _022E3984 + ldr r1, [r3, #0x14] + bl ov00_022E4060 +_022E3984: + ldr r0, _022E3B30 @ =0x02326F34 + ldr r3, [r0, #0xc] + ldrb r2, [r3, #0x1c] + ldr r1, [r3, #0x14] + cmp r2, r1 + blt _022E39B4 + mov r1, #3 + strb r1, [r3, #0x1e] + ldr r1, [r0, #0xc] + ldrb r0, [r1, #0x1f] + add r0, r0, #1 + strb r0, [r1, #0x1f] +_022E39B4: + ldr r6, _022E3B30 @ =0x02326F34 + ldr r1, [r6, #0xc] + ldrb r0, [r1, #0x1f] + cmp r0, #2 + addlo sp, sp, #8 + poplo {r4, r5, r6, r7, r8, pc} + ldr r0, [r1, #4] + cmp r0, #0 + ldrne r0, [r0] + cmpne r0, #0 + beq _022E3B18 + ldr r0, [r1, #0x14] + mov r4, #0 + mov r5, r4 + mov r7, r4 + cmp r0, #0 + ble _022E3A28 + mov r8, r4 +_022E39FC: + ldr r0, [r1, #0x18] + add r0, r0, r8 + bl ov00_022DB1A4 + cmp r0, #3 + ldr r1, [r6, #0xc] + add r7, r7, #1 + ldr r0, [r1, #0x14] + addeq r5, r5, #1 + add r8, r8, #0xc + cmp r7, r0 + blt _022E39FC +_022E3A28: + cmp r5, #0 + bne _022E3A44 + mov r0, #0 + strb r0, [r1, #0x1f] + bl ov00_022E4330 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} +_022E3A44: + lsl r1, r5, #2 + mov r0, #4 + bl ov00_022E03F0 + ldr r8, _022E3B30 @ =0x02326F34 + ldr r1, [r8, #0xc] + str r0, [r1, #0x5c] + ldr r1, [r8, #0xc] + ldr r0, [r1, #0x5c] + cmp r0, #0 + bne _022E3A80 + ldr r1, _022E3B34 @ =0xFFFEEE8F + mov r0, #9 + bl ov00_022E3BE8 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} +_022E3A80: + ldr r0, [r1, #0x14] + mov r7, #0 + cmp r0, #0 + ble _022E3AE4 + mov r6, r7 +_022E3A94: + ldr r0, [r1, #0x18] + add r0, r0, r6 + bl ov00_022DB1A4 + cmp r0, #3 + bne _022E3ACC + bl ov00_022E2C58 + ldr r1, [r8, #0xc] + ldr r1, [r1, #0x18] + add r1, r1, r6 + bl ov00_022DB98C + ldr r1, [r8, #0xc] + ldr r1, [r1, #0x5c] + str r0, [r1, r4, lsl #2] + add r4, r4, #1 +_022E3ACC: + ldr r1, [r8, #0xc] + add r7, r7, #1 + ldr r0, [r1, #0x14] + add r6, r6, #0xc + cmp r7, r0 + blt _022E3A94 +_022E3AE4: + ldr r0, _022E3B30 @ =0x02326F34 + ldr r1, _022E3B38 @ =ov00_022E4E98 + ldr r2, [r0, #0xc] + mov r3, #0 + stm sp, {r1, r3} + ldr r0, [r2, #4] + ldr r1, [r2, #0x5c] + mov r2, r5 + bl ov00_022FFBA8 + bl ov00_022E46C0 + cmp r0, #0 + addne sp, sp, #8 + popne {r4, r5, r6, r7, r8, pc} +_022E3B18: + ldr r0, _022E3B30 @ =0x02326F34 + mov r1, #0 + ldr r0, [r0, #0xc] + strb r1, [r0, #0x1f] + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022E3B30: .4byte 0x02326F34 +_022E3B34: .4byte 0xFFFEEE8F +_022E3B38: .4byte ov00_022E4E98 + arm_func_end ov00_022E385C + + arm_func_start ov00_022E3B3C +ov00_022E3B3C: @ 0x022E3B3C + push {r3, r4, r5, lr} + ldr r0, _022E3BE4 @ =0x02326F34 + ldr r5, [sp, #0x10] + ldr r1, [r0, #0xc] + ldr r4, [sp, #0x14] + str r2, [r1, #0x2c] + ldr r1, [r0, #0xc] + ldr lr, [sp, #0x18] + str r3, [r1, #0x30] + ldr r1, [r0, #0xc] + ldr ip, [sp, #0x1c] + str r5, [r1, #0x34] + ldr r1, [r0, #0xc] + mov r3, #0 + str r4, [r1, #0x38] + ldr r1, [r0, #0xc] + mov r2, #1 + str lr, [r1, #0x3c] + ldr r1, [r0, #0xc] + str ip, [r1, #0x40] + ldr r1, [r0, #0xc] + strb r3, [r1, #0x1d] + ldr r1, [r0, #0xc] + strb r3, [r1, #0x1e] + ldr r1, [r0, #0xc] + strb r3, [r1, #0x1f] + ldr r1, [r0, #0xc] + strb r3, [r1, #0x1c] + ldr r1, [r0, #0xc] + str r2, [r1] + ldr r1, [r0, #0xc] + ldr r0, [r1, #0x18] + cmp r0, #0 + ldrbeq r0, [r1, #0x1f] + addeq r0, r0, #1 + strbeq r0, [r1, #0x1f] + ldr r0, _022E3BE4 @ =0x02326F34 + ldr r1, [r0, #0xc] + ldrb r0, [r1, #0x1f] + add r0, r0, #1 + strb r0, [r1, #0x1f] + pop {r3, r4, r5, pc} + .align 2, 0 +_022E3BE4: .4byte 0x02326F34 + arm_func_end ov00_022E3B3C + + arm_func_start ov00_022E3BE8 +ov00_022E3BE8: @ 0x022E3BE8 + push {r4, lr} + ldr r2, _022E3C6C @ =0x02326F34 + mov r4, r0 + ldr r2, [r2, #0xc] + cmp r2, #0 + cmpne r4, #0 + popeq {r4, pc} + bl ov00_022E0394 + ldr r0, _022E3C6C @ =0x02326F34 + ldr r1, [r0, #0xc] + ldr r0, [r1] + cmp r0, #0 + cmpne r0, #2 + beq _022E3C64 + ldr r1, [r1, #0x5c] + cmp r1, #0 + beq _022E3C48 + mov r0, #4 + mov r2, #0 + bl ov00_022E0434 + ldr r0, _022E3C6C @ =0x02326F34 + mov r1, #0 + ldr r0, [r0, #0xc] + str r1, [r0, #0x5c] +_022E3C48: + ldr r1, _022E3C6C @ =0x02326F34 + mov r0, r4 + ldr r3, [r1, #0xc] + ldrb r1, [r3, #0x1d] + ldr r2, [r3, #0x30] + ldr r3, [r3, #0x2c] + blx r3 +_022E3C64: + bl ov00_022E4030 + pop {r4, pc} + .align 2, 0 +_022E3C6C: .4byte 0x02326F34 + arm_func_end ov00_022E3BE8 + + arm_func_start ov00_022E3C70 +ov00_022E3C70: @ 0x022E3C70 + push {r3, lr} + sub sp, sp, #8 + ldr r2, _022E3CB4 @ =0x02326F34 + ldr r2, [r2, #0xc] + ldr r2, [r2, #0x18] + cmp r2, #0 + addeq sp, sp, #8 + popeq {r3, pc} + ldr r3, _022E3CB8 @ =ov00_022E49D8 + mov r2, #0 + str r3, [sp] + str r2, [sp, #4] + ldr r1, [r1] + mov r3, r2 + bl ov00_022FF1F8 + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_022E3CB4: .4byte 0x02326F34 +_022E3CB8: .4byte ov00_022E49D8 + arm_func_end ov00_022E3C70 + + arm_func_start ov00_022E3CBC +ov00_022E3CBC: @ 0x022E3CBC + push {r3, lr} + sub sp, sp, #8 + ldr r3, _022E3CE8 @ =ov00_022E4C08 + mov r2, #0 + str r3, [sp] + str r2, [sp, #4] + ldr r1, [r1] + mov r3, r2 + bl ov00_022FF1F8 + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_022E3CE8: .4byte ov00_022E4C08 + arm_func_end ov00_022E3CBC + + arm_func_start ov00_022E3CEC +ov00_022E3CEC: @ 0x022E3CEC + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x214 + ldr r2, _022E3D6C @ =0x02326F34 + mov r6, r0 + ldr r0, [r2, #0xc] + mov r5, r1 + ldr r0, [r0, #0x34] + cmp r0, #0 + addeq sp, sp, #0x214 + popeq {r3, r4, r5, r6, pc} + ldr r0, [r5] + bl ov00_022E3DB8 + mov r4, r0 + mvn r0, #0 + cmp r4, r0 + addeq sp, sp, #0x214 + popeq {r3, r4, r5, r6, pc} + ldr r1, [r5, #8] + add r2, sp, #0 + mov r0, r6 + bl ov00_022FF5D8 + ldr r0, _022E3D6C @ =0x02326F34 + ldr r1, [sp, #4] + ldr r0, [r0, #0xc] + add r2, sp, #0x108 + ldr r3, [r0, #0x38] + ldr ip, [r0, #0x34] + mov r0, r4 + and r1, r1, #0xff + blx ip + add sp, sp, #0x214 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_022E3D6C: .4byte 0x02326F34 + arm_func_end ov00_022E3CEC + + arm_func_start ov00_022E3D70 +ov00_022E3D70: @ 0x022E3D70 + push {r3, r4, r5, lr} + ldr r1, _022E3DB4 @ =0x02326F34 + mov r5, r0 + ldr r0, [r1, #0xc] + ldr r4, [r0, #0x18] + cmp r4, #0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + bl ov00_022E2C58 + mov r1, #0xc + mla r1, r5, r1, r4 + bl ov00_022DB98C + cmp r0, #0 + mvnne r1, #0 + cmpne r0, r1 + moveq r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022E3DB4: .4byte 0x02326F34 + arm_func_end ov00_022E3D70 + + arm_func_start ov00_022E3DB8 +ov00_022E3DB8: @ 0x022E3DB8 + push {r4, r5, r6, lr} + ldr r4, _022E3E18 @ =0x02326F34 + mov r6, r0 + ldr r0, [r4, #0xc] + cmp r0, #0 + cmpne r6, #0 + mvneq r0, #0 + popeq {r4, r5, r6, pc} + ldr r0, [r0, #0x14] + mov r5, #0 + cmp r0, #0 + ble _022E3E10 +_022E3DE8: + mov r0, r5 + bl ov00_022E3D70 + cmp r6, r0 + moveq r0, r5 + popeq {r4, r5, r6, pc} + ldr r0, [r4, #0xc] + add r5, r5, #1 + ldr r0, [r0, #0x14] + cmp r5, r0 + blt _022E3DE8 +_022E3E10: + mvn r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_022E3E18: .4byte 0x02326F34 + arm_func_end ov00_022E3DB8 + + arm_func_start ov00_022E3E1C +ov00_022E3E1C: @ 0x022E3E1C + push {r3, lr} + ldr r0, _022E3E50 @ =0x02326F34 + ldr r1, [r0, #0xc] + cmp r1, #0 + popeq {r3, pc} + mov r0, #0 + str r0, [r1, #8] + bl FUN_0207AE44 + ldr r2, _022E3E50 @ =0x02326F34 + ldr r2, [r2, #0xc] + str r0, [r2, #0xc] + str r1, [r2, #0x10] + pop {r3, pc} + .align 2, 0 +_022E3E50: .4byte 0x02326F34 + arm_func_end ov00_022E3E1C + + arm_func_start ov00_022E3E54 +ov00_022E3E54: @ 0x022E3E54 + push {r4, r5, r6, lr} + ldr r3, _022E3F04 @ =0x02326F34 + mov r6, r0 + ldr r0, [r3, #0xc] + mov r5, r1 + mov r4, r2 + cmp r0, #0 + beq _022E3E80 + bl ov00_022E3520 + cmp r0, #0 + bne _022E3E88 +_022E3E80: + mov r0, #0 + pop {r4, r5, r6, pc} +_022E3E88: + mvn r0, #0 + cmp r6, r0 + bne _022E3EA8 + ldr r0, _022E3F04 @ =0x02326F34 + ldr r0, [r0, #0xc] + ldr r0, [r0, #4] + ldr r0, [r0] + ldr r6, [r0, #0x23c] +_022E3EA8: + cmp r5, #0 + bne _022E3EC4 + ldr r0, _022E3F04 @ =0x02326F34 + ldr r0, [r0, #0xc] + ldr r0, [r0, #4] + ldr r0, [r0] + add r5, r0, #0x3b8 +_022E3EC4: + cmp r4, #0 + bne _022E3EE4 + ldr r0, _022E3F04 @ =0x02326F34 + ldr r0, [r0, #0xc] + ldr r0, [r0, #4] + ldr r0, [r0] + add r0, r0, #0xb8 + add r4, r0, #0x400 +_022E3EE4: + ldr r0, _022E3F04 @ =0x02326F34 + mov r1, r6 + ldr r0, [r0, #0xc] + mov r2, r5 + ldr r0, [r0, #4] + mov r3, r4 + bl ov00_022FF8DC + pop {r4, r5, r6, pc} + .align 2, 0 +_022E3F04: .4byte 0x02326F34 + arm_func_end ov00_022E3E54 + + arm_func_start ov00_022E3F08 +ov00_022E3F08: @ 0x022E3F08 + push {r3, r4, lr} + sub sp, sp, #0x214 + ldr r1, _022E3F8C @ =0x02326F34 + mov r4, r0 + ldr r3, [r1, #0xc] + ldr r2, [r3, #0x44] + cmp r2, #0 + ldrne r1, [r3] + cmpne r1, #1 + beq _022E3F38 + ldr r1, [r3, #0x48] + blx r2 +_022E3F38: + ldr r0, _022E3F8C @ =0x02326F34 + ldr r1, [r0, #0xc] + ldr r0, [r1, #0x34] + cmp r0, #0 + addeq sp, sp, #0x214 + popeq {r3, r4, pc} + ldr r1, [r1, #0x18] + mov r0, #0xc + mla r0, r4, r0, r1 + add r1, sp, #0x108 + bl ov00_022E354C + ldr r2, _022E3F8C @ =0x02326F34 + mov r1, r0 + ldr r0, [r2, #0xc] + add r2, sp, #0x108 + ldr r3, [r0, #0x38] + ldr ip, [r0, #0x34] + mov r0, r4 + blx ip + add sp, sp, #0x214 + pop {r3, r4, pc} + .align 2, 0 +_022E3F8C: .4byte 0x02326F34 + arm_func_end ov00_022E3F08 + + arm_func_start ov00_022E3F90 +ov00_022E3F90: @ 0x022E3F90 + ldr r0, _022E3FA0 @ =0x02326F34 + mov r1, #0 + str r1, [r0, #0xc] + bx lr + .align 2, 0 +_022E3FA0: .4byte 0x02326F34 + arm_func_end ov00_022E3F90 + + arm_func_start ov00_022E3FA4 +ov00_022E3FA4: @ 0x022E3FA4 + push {r3, r4, r5, lr} + ldr r0, _022E4028 @ =0x02326F34 + mov r4, #0 + ldr r5, [r0, #0xc] + bl FUN_0207AE44 + ldr r3, [r5, #0xc] + ldr r2, [r5, #0x10] + subs r3, r0, r3 + sbc r0, r1, r2 + lsl r1, r0, #6 + ldr r2, _022E402C @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 + mov r3, r4 + bl FUN_0208FE3C + cmp r1, #0 + cmpeq r0, #0x12c + blo _022E4020 + ldr r1, [r5, #8] + ldr r0, _022E4028 @ =0x02326F34 + add r1, r1, #1 + str r1, [r5, #8] + ldr r0, [r0, #0xc] + ldr r0, [r0, #4] + bl ov00_022FEF74 + mov r4, r0 + bl FUN_0207AE44 + ldr r2, _022E4028 @ =0x02326F34 + ldr r2, [r2, #0xc] + str r0, [r2, #0xc] + str r1, [r2, #0x10] +_022E4020: + mov r0, r4 + pop {r3, r4, r5, pc} + .align 2, 0 +_022E4028: .4byte 0x02326F34 +_022E402C: .4byte 0x000082EA + arm_func_end ov00_022E3FA4 + + arm_func_start ov00_022E4030 +ov00_022E4030: @ 0x022E4030 + ldr r0, _022E405C @ =0x02326F34 + ldr r1, [r0, #0xc] + cmp r1, #0 + bxeq lr + mov r2, #0 + str r2, [r1] + ldr r1, [r0, #0xc] + strb r2, [r1, #0x1e] + ldr r0, [r0, #0xc] + strb r2, [r0, #0x1f] + bx lr + .align 2, 0 +_022E405C: .4byte 0x02326F34 + arm_func_end ov00_022E4030 + + arm_func_start ov00_022E4060 +ov00_022E4060: @ 0x022E4060 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x24c + ldr r2, _022E4328 @ =0x02326F34 + mov sl, r0 + ldr r2, [r2, #0xc] + mov sb, r1 + ldrb r0, [r2, #0x1e] + cmp r0, #0 + bne _022E41C4 + ldr r0, [r2, #4] + add r1, sp, #0x1c + bl ov00_022FF5A8 + bl ov00_022E46C0 + ldr r0, [sp, #0x1c] + mov r1, #0 + str r1, [sp, #0x18] + cmp r0, #0 + ble _022E41B4 +_022E40A8: + ldr r0, _022E4328 @ =0x02326F34 + ldr r1, [sp, #0x18] + ldr r0, [r0, #0xc] + add r2, sp, #0x38 + ldr r0, [r0, #4] + bl ov00_022FF5D8 + bl ov00_022E46C0 + cmp sb, #0 + mov r4, #0 + ble _022E4164 +_022E40D0: + mov r0, r4 + bl ov00_022E3D70 + ldr r1, [sp, #0x38] + cmp r1, r0 + bne _022E4158 + mov r0, #0xc + mul r5, r4, r0 + add r0, sl, r5 + bl ov00_022DB1E4 + cmp r0, #0 + bne _022E4164 + ldr r1, [sp, #0x38] + add r0, sl, r5 + bl ov00_022DBAAC + add r0, sl, r5 + bl ov00_022DB29C + ldr r0, _022E4328 @ =0x02326F34 + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r5 + bl ov00_022DB1B4 + cmp r0, #0 + beq _022E4144 + ldr r0, _022E4328 @ =0x02326F34 + mov r1, #1 + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r5 + bl ov00_022DB2F8 +_022E4144: + ldr r0, _022E4328 @ =0x02326F34 + mov r1, #1 + ldr r0, [r0, #0xc] + strb r1, [r0, #0x1d] + b _022E4164 +_022E4158: + add r4, r4, #1 + cmp r4, sb + blt _022E40D0 +_022E4164: + cmp r4, sb + bne _022E419C + ldr r0, _022E4328 @ =0x02326F34 + ldr r1, [sp, #0x38] + ldr r0, [r0, #0xc] + ldr r0, [r0, #4] + bl ov00_022FF880 + bl ov00_022E46C0 + ldr r1, [sp, #0x1c] + ldr r0, [sp, #0x18] + sub r1, r1, #1 + sub r0, r0, #1 + str r1, [sp, #0x1c] + str r0, [sp, #0x18] +_022E419C: + ldr r1, [sp, #0x18] + ldr r0, [sp, #0x1c] + add r1, r1, #1 + str r1, [sp, #0x18] + cmp r1, r0 + blt _022E40A8 +_022E41B4: + ldr r0, _022E4328 @ =0x02326F34 + mov r1, #1 + ldr r0, [r0, #0xc] + strb r1, [r0, #0x1e] +_022E41C4: + ldr r7, _022E4328 @ =0x02326F34 + ldr r0, [r7, #0xc] + ldrb r1, [r0, #0x1c] + cmp r1, sb + addge sp, sp, #0x24c + popge {r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov fp, #0xc + mvn r5, #0 + mov r4, fp + mov r6, fp +_022E41EC: + mla r0, r1, r6, sl + bl ov00_022DB238 + cmp r0, #0 + bne _022E4300 + ldr r0, [r7, #0xc] + ldrb r0, [r0, #0x1c] + bl ov00_022E3D70 + movs r8, r0 + beq _022E4270 + ldr r1, [r7, #0xc] + mov r0, sl + ldrb r1, [r1, #0x1c] + mov r2, r8 + bl ov00_022E43C0 + cmp r0, #0 + bne _022E4300 + ldr r0, [r7, #0xc] + mov r1, r8 + ldr r0, [r0, #4] + add r2, sp, #0x18 + bl ov00_022FF768 + bl ov00_022E46C0 + ldr r0, [sp, #0x18] + cmp r0, r5 + bne _022E4300 + mov r0, r8 + bl ov00_022E45D0 + ldr r0, [r7, #0xc] + mov r1, #1 + ldrb r2, [r0, #0x1c] + mla r0, r2, r4, sl + bl ov00_022DB328 + b _022E4300 +_022E4270: + bl ov00_022E2C58 + ldr r1, [r7, #0xc] + ldrb r2, [r1, #0x1c] + mla r1, r2, fp, sl + bl ov00_022DB98C + cmp r0, r5 + bne _022E4300 + bl ov00_022E2C58 + ldr r2, _022E4328 @ =0x02326F34 + mov r1, #0xc + ldr r3, [r2, #0xc] + add r2, sp, #0x20 + ldrb r3, [r3, #0x1c] + mla r1, r3, r1, sl + bl ov00_022DBAE0 + ldr r0, _022E4328 @ =0x02326F34 + mov r1, #0 + ldr r4, [r0, #0xc] + add r2, sp, #0x20 + stm sp, {r1, r2} + str r1, [sp, #8] + ldr r0, _022E432C @ =ov00_022E4734 + str r1, [sp, #0xc] + str r0, [sp, #0x10] + ldrb r0, [r4, #0x1c] + mov r2, r1 + mov r3, r1 + str r0, [sp, #0x14] + ldr r0, [r4, #4] + bl ov00_022FF130 + ldr r0, _022E4328 @ =0x02326F34 + mov r1, #2 + ldr r0, [r0, #0xc] + add sp, sp, #0x24c + strb r1, [r0, #0x1e] + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022E4300: + ldr r1, [r7, #0xc] + ldrb r0, [r1, #0x1c] + add r0, r0, #1 + strb r0, [r1, #0x1c] + ldr r0, [r7, #0xc] + ldrb r1, [r0, #0x1c] + cmp r1, sb + blt _022E41EC + add sp, sp, #0x24c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022E4328: .4byte 0x02326F34 +_022E432C: .4byte ov00_022E4734 + arm_func_end ov00_022E4060 + + arm_func_start ov00_022E4330 +ov00_022E4330: @ 0x022E4330 + push {r3, lr} + ldr r1, _022E4364 @ =0x02326F34 + mov r0, #0 + ldr r3, [r1, #0xc] + ldrb r1, [r3, #0x1d] + ldr r2, [r3, #0x30] + ldr r3, [r3, #0x2c] + blx r3 + ldr r0, _022E4364 @ =0x02326F34 + mov r1, #2 + ldr r0, [r0, #0xc] + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_022E4364: .4byte 0x02326F34 + arm_func_end ov00_022E4330 + + arm_func_start ov00_022E4368 +ov00_022E4368: @ 0x022E4368 + push {r3, r4, r5, lr} + ldr r3, _022E43BC @ =0x02326F34 + mov r5, r1 + ldr r1, [r3, #0xc] + mov r4, r2 + cmp r1, #0 + popeq {r3, r4, r5, pc} + mov r2, #0xc + mla r0, r5, r2, r0 + mov r1, #0 + bl FUN_0207C40C + ldr r0, _022E43BC @ =0x02326F34 + ldr r0, [r0, #0xc] + ldr r3, [r0, #0x3c] + cmp r3, #0 + popeq {r3, r4, r5, pc} + ldr r2, [r0, #0x40] + mov r0, r5 + mov r1, r4 + blx r3 + pop {r3, r4, r5, pc} + .align 2, 0 +_022E43BC: .4byte 0x02326F34 + arm_func_end ov00_022E4368 + + arm_func_start ov00_022E43C0 +ov00_022E43C0: @ 0x022E43C0 + push {r4, r5, r6, r7, r8, lr} + mov r7, r1 + mov r1, #0xc + mul r4, r7, r1 + mov r8, r0 + add r0, r8, r4 + mov r6, r2 + bl ov00_022DB1A4 + cmp r0, #1 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, pc} + cmp r7, #0 + mov r5, #0 + ble _022E4478 +_022E43F8: + mov r0, r5 + bl ov00_022E3D70 + cmp r0, #0 + beq _022E446C + cmp r0, r6 + bne _022E446C + add r0, r8, r4 + bl ov00_022DB1E4 + cmp r0, #0 + beq _022E4448 + mov r0, #0xc + mla r0, r5, r0, r8 + bl ov00_022DB1E4 + cmp r0, #0 + bne _022E4448 + mov r0, r8 + mov r1, r5 + mov r2, r7 + bl ov00_022E4368 + b _022E4458 +_022E4448: + mov r0, r8 + mov r1, r7 + mov r2, r5 + bl ov00_022E4368 +_022E4458: + ldr r1, _022E4480 @ =0x02326F34 + mov r0, #1 + ldr r1, [r1, #0xc] + strb r0, [r1, #0x1d] + pop {r4, r5, r6, r7, r8, pc} +_022E446C: + add r5, r5, #1 + cmp r5, r7 + blt _022E43F8 +_022E4478: + mov r0, #0 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022E4480: .4byte 0x02326F34 + arm_func_end ov00_022E43C0 + + arm_func_start ov00_022E4484 +ov00_022E4484: @ 0x022E4484 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x10 + mov fp, r1 + str r0, [sp] + mvn r0, #0 + str r2, [sp, #4] + cmp fp, #0 + str r0, [sp, #0xc] + mov r6, #0 + ble _022E45C0 + ldr r0, [sp] + mov sb, r6 + str r0, [sp, #8] + mov r8, r0 +_022E44BC: + mov r0, r6 + bl ov00_022E3D70 + movs r5, r0 + beq _022E45A0 + ldr r0, [sp, #4] + add r7, r6, #1 + cmp r5, r0 + streq r6, [sp, #0xc] + cmp r7, fp + bge _022E45A0 + ldr r0, [sp] + mov r1, #0xc + mla sl, r7, r1, r0 + ldr r4, _022E45CC @ =0x02326F34 +_022E44F4: + mov r0, r7 + bl ov00_022E3D70 + cmp r5, r0 + bne _022E4590 + ldr r0, [sp, #8] + bl ov00_022DB1A4 + cmp r0, #2 + bne _022E4530 + mov r0, sl + bl ov00_022DB1A4 + cmp r0, #3 + bne _022E4530 + mov r0, r8 + mov r1, r5 + bl ov00_022DBAAC +_022E4530: + mov r0, sl + bl ov00_022DB1E4 + cmp r0, #0 + beq _022E4574 + mov r0, r8 + bl ov00_022DB29C + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, sb + bl ov00_022DB1B4 + cmp r0, #0 + beq _022E4574 + ldr r0, [r4, #0xc] + mov r1, #1 + ldr r0, [r0, #0x18] + add r0, r0, sb + bl ov00_022DB2F8 +_022E4574: + ldr r0, [sp] + mov r1, r7 + mov r2, r6 + bl ov00_022E4368 + ldr r1, [r4, #0xc] + mov r0, #1 + strb r0, [r1, #0x1d] +_022E4590: + add sl, sl, #0xc + add r7, r7, #1 + cmp r7, fp + blt _022E44F4 +_022E45A0: + ldr r0, [sp, #8] + add r6, r6, #1 + add r0, r0, #0xc + cmp r6, fp + str r0, [sp, #8] + add r8, r8, #0xc + add sb, sb, #0xc + blt _022E44BC +_022E45C0: + ldr r0, [sp, #0xc] + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022E45CC: .4byte 0x02326F34 + arm_func_end ov00_022E4484 + + arm_func_start ov00_022E45D0 +ov00_022E45D0: @ 0x022E45D0 + push {r4, lr} + ldr r2, _022E45FC @ =0x02326F34 + mov r1, r0 + ldr r0, [r2, #0xc] + ldr r2, _022E4600 @ =0x0231A1AC + ldr r0, [r0, #4] + bl ov00_022FF324 + mov r4, r0 + bl ov00_022E46C0 + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_022E45FC: .4byte 0x02326F34 +_022E4600: .4byte 0x0231A1AC + arm_func_end ov00_022E45D0 + + arm_func_start ov00_022E4604 +ov00_022E4604: @ 0x022E4604 + push {r3, r4, r5, lr} + ldr r2, _022E46BC @ =0x02326F34 + mov r3, #0 + ldr r2, [r2, #0xc] + mov r5, r0 + mov r4, r1 + str r3, [sp] + cmp r2, #0 + beq _022E4634 + bl ov00_022E3520 + cmp r0, #0 + bne _022E463C +_022E4634: + mov r0, #0 + pop {r3, r4, r5, pc} +_022E463C: + bl ov00_022E2C58 + mov r1, r5 + bl ov00_022DB98C + mov r5, r0 + cmp r5, #0 + ble _022E4678 + ldr r0, _022E46BC @ =0x02326F34 + add r2, sp, #0 + ldr r0, [r0, #0xc] + mov r1, r5 + ldr r0, [r0, #4] + bl ov00_022FF768 + cmp r0, #0 + movne r0, #0 + popne {r3, r4, r5, pc} +_022E4678: + cmp r5, #0 + ble _022E4690 + ldr r1, [sp] + mvn r0, #0 + cmp r1, r0 + bne _022E4698 +_022E4690: + mov r0, #0 + pop {r3, r4, r5, pc} +_022E4698: + ldr r0, _022E46BC @ =0x02326F34 + mov r2, r4 + ldr r0, [r0, #0xc] + ldr r0, [r0, #4] + bl ov00_022FF5D8 + cmp r0, #0 + movne r0, #0 + moveq r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_022E46BC: .4byte 0x02326F34 + arm_func_end ov00_022E4604 + + arm_func_start ov00_022E46C0 +ov00_022E46C0: @ 0x022E46C0 + push {r4, lr} + movs r4, r0 moveq r0, #0 popeq {r4, pc} - lsl r0, r4, #0x10 - lsr r1, r0, #0x10 - mov r0, #2 - bl FUN_02081e18 + cmp r4, #4 + addls pc, pc, r4, lsl #2 + b _022E471C +_022E46DC: @ jump table + b _022E471C @ case 0 + b _022E46F0 @ case 1 + b _022E46FC @ case 2 + b _022E4708 @ case 3 + b _022E4714 @ case 4 +_022E46F0: + mov r0, #9 + sub r2, r0, #0xa + b _022E471C +_022E46FC: + mov r0, #9 + sub r2, r0, #0xb + b _022E471C +_022E4708: + mov r0, #6 + sub r2, r0, #0x10 + b _022E471C +_022E4714: + mov r0, #6 + sub r2, r0, #0x1a +_022E471C: + ldr r1, _022E4730 @ =0xFFFEEAA8 + add r1, r2, r1 + bl ov00_022E3BE8 + mov r0, r4 pop {r4, pc} - arm_func_end FUN_02082034 + .align 2, 0 +_022E4730: .4byte 0xFFFEEAA8 + arm_func_end ov00_022E46C0 - arm_func_start FUN_02082060 -FUN_02082060: @ 0x02082060 - push {r3, r4, r5, lr} - mov r4, r1 - mov r5, r0 - add r1, sp, #0 - mov r0, #0 - bl FUN_02081d90 + arm_func_start ov00_022E4734 +ov00_022E4734: @ 0x022E4734 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sb, r1 + ldr r1, [sb] + mov sl, r0 + mov r8, r2 + cmp r1, #0 + bne _022E496C + ldr r0, [sb, #4] cmp r0, #0 - popne {r3, r4, r5, pc} - cmp r5, #0 - beq _0208209C - ldrh r1, [sp] - tst r1, #8 - movne r1, #1 - moveq r1, #0 - str r1, [r5] -_0208209C: - cmp r4, #0 - popeq {r3, r4, r5, pc} - ldrh r1, [sp] - tst r1, #4 - movne r1, #1 - moveq r1, #0 - str r1, [r4] - pop {r3, r4, r5, pc} - arm_func_end FUN_02082060 - - arm_func_start FUN_020820bc -FUN_020820bc: @ 0x020820BC - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, #8 + beq _022E496C + mov r0, #0xc + ldr r1, _022E49D4 @ =0x02326F34 + mul r6, r8, r0 + ldr r0, [r1, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r6 + bl ov00_022DB1A4 + cmp r0, #0 + beq _022E496C + ldr r7, _022E49D4 @ =0x02326F34 + ldr r0, [r7, #0xc] + ldr r0, [r0] + cmp r0, #1 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [sb, #4] mov r4, #0 -_020820CC: - mov r0, r5 - mov r1, r6 - mov r2, r4 - bl FUN_0207db20 cmp r0, #0 - bne _020820CC - pop {r4, r5, r6, pc} - arm_func_end FUN_020820bc + ble _022E4808 + mov r5, r4 +_022E47A8: + ldr r0, [r7, #0xc] + ldr r1, [sb, #0xc] + ldr r0, [r0, #0x18] + ldr r2, [r1, r5] + mov r1, r8 + bl ov00_022E43C0 + cmp r0, #0 + beq _022E47F4 + ldr r0, _022E49D4 @ =0x02326F34 + mov r2, #1 + ldr r4, [r0, #0xc] + add r1, r2, #0x600 + ldrb r3, [r4, #0x1c] + add r3, r3, #1 + strb r3, [r4, #0x1c] + ldr r0, [r0, #0xc] + strb r2, [r0, #0x1e] + str r1, [sb, #8] + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022E47F4: + ldr r0, [sb, #4] + add r4, r4, #1 + cmp r4, r0 + add r5, r5, #0xac + blt _022E47A8 +_022E4808: + cmp r0, #0 + mov r7, #0 + ble _022E493C + ldr fp, _022E49D4 @ =0x02326F34 + mov r5, r7 + mvn r4, #0 +_022E4820: + ldr r1, [sb, #0xc] + mov r0, sl + ldr r1, [r1, r5] + add r2, sp, #0 + bl ov00_022FF768 + bl ov00_022E46C0 + ldr r0, [sp] + cmp r0, r4 + bne _022E4868 + ldr r0, [sb, #0xc] + ldr r0, [r0, r5] + bl ov00_022E45D0 + ldr r0, [fp, #0xc] + mov r1, #1 + ldr r0, [r0, #0x18] + add r0, r0, r6 + bl ov00_022DB328 + b _022E4928 +_022E4868: + mov r0, #0xc + ldr r1, _022E49D4 @ =0x02326F34 + mul r4, r8, r0 + ldr r1, [r1, #0xc] + ldr r0, [sb, #0xc] + ldr r2, [r1, #0x18] + ldr r1, [r0] + add r0, r2, r4 + bl ov00_022DBAAC + ldr r0, _022E49D4 @ =0x02326F34 + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r4 + bl ov00_022DB29C + ldr r0, _022E49D4 @ =0x02326F34 + mov r1, #1 + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r4 + bl ov00_022DB2C8 + ldr r0, _022E49D4 @ =0x02326F34 + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r4 + bl ov00_022DB1B4 + cmp r0, #0 + beq _022E48EC + ldr r0, _022E49D4 @ =0x02326F34 + mov r1, #1 + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r6 + bl ov00_022DB2F8 +_022E48EC: + mov r0, r8 + bl ov00_022E3F08 + ldr r0, _022E49D4 @ =0x02326F34 + mov r3, #1 + ldr r4, [r0, #0xc] + add r1, r3, #0x600 + ldrb r2, [r4, #0x1c] + add r2, r2, #1 + strb r2, [r4, #0x1c] + ldr r2, [r0, #0xc] + strb r3, [r2, #0x1e] + str r1, [sb, #8] + ldr r0, [r0, #0xc] + strb r3, [r0, #0x1d] + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022E4928: + ldr r0, [sb, #4] + add r7, r7, #1 + cmp r7, r0 + add r5, r5, #0xac + blt _022E4820 +_022E493C: + ldr r0, [sb, #8] + cmp r0, #0x600 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, _022E49D4 @ =0x02326F34 + mov r1, #1 + ldr r3, [r0, #0xc] + ldrb r2, [r3, #0x1c] + add r2, r2, #1 + strb r2, [r3, #0x1c] + ldr r0, [r0, #0xc] + strb r1, [r0, #0x1e] + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022E496C: + ldr r0, [sb] + cmp r0, #0 + beq _022E4984 + bl ov00_022E46C0 + cmp r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022E4984: + ldr r0, _022E49D4 @ =0x02326F34 + ldr r1, [r0, #0xc] + ldr r0, [r1] + cmp r0, #1 + beq _022E49B0 + ldr r1, [r1, #0x18] + mov r0, #0xc + mla r0, r8, r0, r1 + bl ov00_022DB1A4 + cmp r0, #0 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022E49B0: + ldr r0, _022E49D4 @ =0x02326F34 + mov r1, #1 + ldr r3, [r0, #0xc] + ldrb r2, [r3, #0x1c] + add r2, r2, #1 + strb r2, [r3, #0x1c] + ldr r0, [r0, #0xc] + strb r1, [r0, #0x1e] + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022E49D4: .4byte 0x02326F34 + arm_func_end ov00_022E4734 - arm_func_start FUN_020820e8 -FUN_020820e8: @ 0x020820E8 + arm_func_start ov00_022E49D8 +ov00_022E49D8: @ 0x022E49D8 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x28 + mov sb, r1 + ldr r1, [sb] + mov sl, r0 + cmp r1, #0 + mov r6, #0 + addne sp, sp, #0x28 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r4, _022E4C00 @ =0x02326F34 + mov r5, r6 + ldr r1, [r4, #0xc] + ldr r0, [r1, #0x14] + cmp r0, #0 + ble _022E4BD4 + mov r7, r6 + add fp, sp, #0x11 +_022E4A1C: + ldr r0, [r1, #0x18] + add r0, r0, r7 + bl ov00_022DB1A4 + cmp r0, #1 + bne _022E4AC4 + bl ov00_022E2C58 + ldr r1, [r4, #0xc] + mov r2, fp + ldr r1, [r1, #0x18] + add r1, r1, r7 + bl ov00_022DBAE0 + mov r0, fp + add r1, sb, #0x8e + bl FUN_0208982C + cmp r0, #0 + bne _022E4BBC + ldr r1, [sb, #4] + mov r0, sl + bl ov00_022FF498 + ldr r0, [r4, #0xc] + ldr r1, [sb, #4] + ldr r0, [r0, #0x18] + add r0, r0, r7 + bl ov00_022DBAAC + ldr r0, [r4, #0xc] + mov r1, #1 + ldr r0, [r0, #0x18] + add r0, r0, r7 + bl ov00_022DB2C8 + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r7 + bl ov00_022DB1B4 + cmp r0, #0 + beq _022E4ABC + ldr r0, [r4, #0xc] + mov r1, #1 + ldr r0, [r0, #0x18] + add r0, r0, r7 + bl ov00_022DB2F8 +_022E4ABC: + mov r6, #1 + b _022E4BBC +_022E4AC4: + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r7 + bl ov00_022DB1A4 + cmp r0, #3 + beq _022E4AF4 + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r7 + bl ov00_022DB1A4 + cmp r0, #2 + bne _022E4BBC +_022E4AF4: + bl ov00_022E2C58 + ldr r1, [r0, #0x24] + add r0, sp, #0xc + lsr r2, r1, #0x10 + and r2, r2, #0xff + str r2, [sp] + lsr r2, r1, #8 + and r2, r2, #0xff + str r2, [sp, #4] + and r2, r1, #0xff + str r2, [sp, #8] + lsr r1, r1, #0x18 + and r3, r1, #0xff + ldr r2, _022E4C04 @ =0x0231A1B0 + mov r1, #5 + bl FUN_0207911C + ldr r8, [sb, #4] + bl ov00_022E2C58 + ldr r1, [r4, #0xc] + ldr r1, [r1, #0x18] + add r1, r1, r7 + bl ov00_022DB98C + cmp r8, r0 + bne _022E4BBC + add r0, sp, #0xc + add r1, sb, #0x97 + mov r2, #4 + bl FUN_02087348 + cmp r0, #0 + bne _022E4BBC + mov r1, r8 + mov r0, sl + bl ov00_022FF498 + ldr r0, [r4, #0xc] + mov r1, #1 + ldr r0, [r0, #0x18] + add r0, r0, r7 + bl ov00_022DB2C8 + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r7 + bl ov00_022DB1B4 + cmp r0, #0 + beq _022E4BB8 + ldr r0, [r4, #0xc] + mov r1, #1 + ldr r0, [r0, #0x18] + add r0, r0, r7 + bl ov00_022DB2F8 +_022E4BB8: + mov r6, #1 +_022E4BBC: + add r7, r7, #0xc + add r5, r5, #1 + ldr r1, [r4, #0xc] + ldr r0, [r1, #0x14] + cmp r5, r0 + blt _022E4A1C +_022E4BD4: + cmp r6, #0 + beq _022E4BEC + ldr r0, [sb, #4] + bl ov00_022E45D0 + add sp, sp, #0x28 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022E4BEC: + ldr r1, [sb, #4] + mov r0, sl + bl ov00_022FF4E8 + add sp, sp, #0x28 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022E4C00: .4byte 0x02326F34 +_022E4C04: .4byte 0x0231A1B0 + arm_func_end ov00_022E49D8 + + arm_func_start ov00_022E4C08 +ov00_022E4C08: @ 0x022E4C08 push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x18 - ldr r3, _0208230C @ =0x022BB6AC - mov sl, r0 - ldr r0, [r3, #0xc] - mov sb, r1 - mov fp, r2 - mov r4, #0 - bl FUN_020825e4 - ldr r1, _02082310 @ =0x04000208 - mov r0, r4 - ldrh r8, [r1] - strh r0, [r1] - bl EnableIrqFlag - str r0, [sp, #8] - ldr r0, _02082314 @ =0x003FFFFF - bl FUN_02078c98 - str r0, [sp, #4] - bl FUN_0207adcc + mov sl, r1 + ldr r0, [sl] + mov r7, #0 cmp r0, #0 - movne r0, #8 - moveq r0, r4 - orr r0, r0, #0x40000 - bl FUN_02078c3c - ldr r0, [sp, #8] - bl SetIrqFlag - ldr r2, _02082310 @ =0x04000208 - mov r0, #1 - ldrh r1, [r2] - tst sl, #8 - strh r0, [r2] - beq _02082178 - ldr r0, _02082318 @ =0x027FFC40 - ldrh r0, [r0] - cmp r0, #2 - biceq sl, sl, #8 -_02082178: - tst sl, #0x10 - beq _0208218C - bl FUN_020847ac - cmp r0, #0 - biceq sl, sl, #0x10 -_0208218C: - mov r1, #0x4000000 - add r0, r1, #0x1000 - ldr r5, [r1] - ldr r6, [r0] - bl FUN_02082440 - str r0, [sp] - add r0, sp, #0x14 - add r1, sp, #0x10 - bl FUN_02082060 - mov r0, #2 - mov r1, #0 - bl FUN_02081f38 - ldr r2, _0208231C @ =0x027FFC3C - ldr r0, [r2] - str r0, [sp, #0xc] -_020821C8: - ldr r1, [r2] - ldr r0, [sp, #0xc] - cmp r0, r1 - beq _020821C8 - ldr r0, [r2] - mov r2, #0x4000000 - str r0, [sp, #0xc] - ldr r0, [r2] - add r1, r2, #0x1000 - bic r0, r0, #0x30000 - str r0, [r2] - ldr r0, [r1] - bic r0, r0, #0x10000 - str r0, [r1] - ldr r2, _0208231C @ =0x027FFC3C -_02082204: - ldr r1, [r2] - ldr r0, [sp, #0xc] - cmp r0, r1 - beq _02082204 - ldr r0, [r2] - str r0, [sp, #0xc] - ldr r2, _0208231C @ =0x027FFC3C -_02082220: - ldr r1, [r2] - ldr r0, [sp, #0xc] - cmp r0, r1 - beq _02082220 - ldr r0, [sp, #0x14] - ldr r1, [sp, #0x10] - orr r0, sl, r0, lsl #5 - orr r0, r0, r1, lsl #6 - lsl r0, r0, #0x10 - lsr r7, r0, #0x10 - orr r0, sb, fp - lsl r0, r0, #0x10 - lsr sb, r0, #0x10 -_02082254: - mov r0, r7 - mov r1, sb - bl FUN_02081c30 - cmp r0, #0 - bne _02082254 - bl WaitForInterrupt - tst sl, #8 - beq _02082284 - ldr r0, _02082320 @ =0x04000214 - ldr r0, [r0] - tst r0, #0x100000 - movne r4, #1 -_02082284: - cmp r4, #0 - bne _020822C4 - ldr r0, [sp] - cmp r0, #1 - mov r0, #1 - bne _020822B0 - mov r1, r0 - mov r2, r0 - mov r3, r0 - bl FUN_02082328 - b _020822B4 -_020822B0: - bl FUN_02081e94 -_020822B4: - mov r0, #0x4000000 - str r5, [r0] - add r0, r0, #0x1000 - str r6, [r0] -_020822C4: - ldr r0, _02082324 @ =0x00708100 - bl _0207B854 - bl EnableIrqFlag - ldr r0, [sp, #4] - bl FUN_02078c3c - ldr r0, [sp, #8] - bl SetIrqFlag - ldr r1, _02082310 @ =0x04000208 - cmp r4, #0 - ldrh r0, [r1] - strh r8, [r1] - beq _020822F8 - bl FUN_0208200c -_020822F8: - ldr r0, _0208230C @ =0x022BB6AC + mov r8, r7 + addne sp, sp, #0x18 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r4, _022E4E58 @ =0x02326F34 + mov r6, r7 + ldr r0, [r4, #0xc] + ldr r1, [r0, #0x14] + cmp r1, #0 + ble _022E4DC0 + mov sb, r7 + mov fp, #1 + add r5, sp, #0 +_022E4C50: ldr r0, [r0, #0x18] - bl FUN_020825e4 + add r0, r0, sb + bl ov00_022DB1A4 + cmp r0, #1 + bne _022E4CE8 + bl ov00_022E2C58 + ldr r1, [r4, #0xc] + mov r2, r5 + ldr r1, [r1, #0x18] + add r1, r1, sb + bl ov00_022DBAE0 + mov r0, r5 + add r1, sl, #0x8e + bl FUN_0208982C + cmp r0, #0 + bne _022E4DA8 + ldr r0, [r4, #0xc] + ldr r1, [sl, #4] + ldr r0, [r0, #0x18] + add r0, r0, sb + bl ov00_022DBAAC + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, sb + bl ov00_022DB29C + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, sb + bl ov00_022DB1B4 + cmp r0, #0 + beq _022E4CE0 + ldr r0, [r4, #0xc] + mov r1, fp + ldr r0, [r0, #0x18] + add r0, r0, sb + bl ov00_022DB2F8 +_022E4CE0: + mov r7, #1 + b _022E4DA8 +_022E4CE8: + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, sb + bl ov00_022DB1A4 + cmp r0, #3 + beq _022E4D18 + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, sb + bl ov00_022DB1A4 + cmp r0, #2 + bne _022E4DA8 +_022E4D18: + bl ov00_022E2C58 + ldr r1, [r4, #0xc] + ldr r1, [r1, #0x18] + add r1, r1, sb + bl ov00_022DB98C + ldr r1, [sl, #4] + cmp r1, r0 + bne _022E4DA8 + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, sb + bl ov00_022DB1E4 + cmp r0, #1 + moveq r8, #1 + beq _022E4DA8 + ldr r0, [r4, #0xc] + ldr r1, [sl, #4] + ldr r0, [r0, #0x18] + add r0, r0, sb + bl ov00_022DBAAC + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, sb + bl ov00_022DB29C + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, sb + bl ov00_022DB1B4 + cmp r0, #0 + beq _022E4DA4 + ldr r0, [r4, #0xc] + mov r1, #1 + ldr r0, [r0, #0x18] + add r0, r0, sb + bl ov00_022DB2F8 +_022E4DA4: + mov r7, #1 +_022E4DA8: + ldr r0, [r4, #0xc] + add r6, r6, #1 + add sb, sb, #0xc + ldr r1, [r0, #0x14] + cmp r6, r1 + blt _022E4C50 +_022E4DC0: + cmp r7, #0 + addeq sp, sp, #0x18 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r0, #0x18] + ldr r2, [sl, #4] + bl ov00_022E4484 + mov r4, r0 + cmp r8, #0 + bne _022E4E40 + mov r0, #0xc + ldr r1, _022E4E58 @ =0x02326F34 + mul r5, r4, r0 + ldr r0, [r1, #0xc] + mov r1, #1 + ldr r0, [r0, #0x18] + add r0, r0, r5 + bl ov00_022DB2C8 + ldr r0, _022E4E58 @ =0x02326F34 + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r5 + bl ov00_022DB1B4 + cmp r0, #0 + beq _022E4E38 + ldr r0, _022E4E58 @ =0x02326F34 + mov r1, #1 + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r5 + bl ov00_022DB2F8 +_022E4E38: + mov r0, r4 + bl ov00_022E3F08 +_022E4E40: + ldr r0, _022E4E58 @ =0x02326F34 + mov r1, #1 + ldr r0, [r0, #0xc] + strb r1, [r0, #0x1d] add sp, sp, #0x18 pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 -_0208230C: .4byte 0x022BB6AC -_02082310: .4byte 0x04000208 -_02082314: .4byte 0x003FFFFF -_02082318: .4byte 0x027FFC40 -_0208231C: .4byte 0x027FFC3C -_02082320: .4byte 0x04000214 -_02082324: .4byte 0x00708100 - arm_func_end FUN_020820e8 +_022E4E58: .4byte 0x02326F34 + arm_func_end ov00_022E4C08 - arm_func_start FUN_02082328 -FUN_02082328: @ 0x02082328 - push {r3, r4, r5, lr} - mov r5, r1 - mov r4, r3 - cmp r0, #0 - beq _020823B8 - cmp r0, #1 - bne _0208240C - cmp r2, #0 - bne _0208236C - ldr r1, _02082414 @ =0x027FFC3C - ldr r0, _02082418 @ =0x022BB6AC - ldr r1, [r1] - ldr r0, [r0, #0x10] - sub r0, r1, r0 - cmp r0, #7 - movls r0, #0 - popls {r3, r4, r5, pc} -_0208236C: - cmp r5, #0 - beq _02082398 - cmp r4, #0 - beq _02082388 - mov r0, r5 - bl FUN_02081e94 - b _02082398 -_02082388: - mov r1, #0 - mov r0, r5 - mov r2, r1 - bl FUN_02081e40 -_02082398: - ldr r2, _0208241C @ =0x04000304 - ldr r0, _02082418 @ =0x022BB6AC - ldrh r1, [r2] - orr r1, r1, #1 - strh r1, [r2] - ldr r0, [r0, #0x14] - bl FUN_02082034 - b _0208240C -_020823B8: - mov r0, #0 - bl FUN_02082034 - ldr r3, _0208241C @ =0x04000304 - ldr r1, _02082414 @ =0x027FFC3C - ldrh r2, [r3] - ldr r0, _02082418 @ =0x022BB6AC - cmp r5, #0 - bic r2, r2, #1 - strh r2, [r3] - ldr r1, [r1] - str r1, [r0, #0x10] - beq _0208240C - cmp r4, #0 - beq _020823FC - mov r0, r5 - bl FUN_02081e94 - b _0208240C -_020823FC: - mov r1, #0 - mov r0, r5 - mov r2, r1 - bl FUN_02081e40 -_0208240C: - mov r0, #1 - pop {r3, r4, r5, pc} - .align 2, 0 -_02082414: .4byte 0x027FFC3C -_02082418: .4byte 0x022BB6AC -_0208241C: .4byte 0x04000304 - arm_func_end FUN_02082328 - - arm_func_start FUN_02082420 -FUN_02082420: @ 0x02082420 - ldr ip, _0208243C @ =FUN_02082328 - mov r1, #0 - cmp r0, #1 - movne r0, #0 - mov r2, r1 - mov r3, #1 - bx ip - .align 2, 0 -_0208243C: .4byte FUN_02082328 - arm_func_end FUN_02082420 - - arm_func_start FUN_02082440 -FUN_02082440: @ 0x02082440 - ldr r0, _02082458 @ =0x04000304 - ldrh r0, [r0] - tst r0, #1 - movne r0, #1 - moveq r0, #0 + arm_func_start ov00_022E4E5C +ov00_022E4E5C: @ 0x022E4E5C + ldr r0, _022E4E6C @ =0x02326F34 + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x20] bx lr .align 2, 0 -_02082458: .4byte 0x04000304 - arm_func_end FUN_02082440 -_0208245C: - .byte 0x70, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1, 0x63, 0xFD, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x70, 0x80, 0xBD, 0x08, 0xFF, 0x00, 0x06, 0xE2 - .byte 0x18, 0x10, 0x9F, 0xE5, 0x66, 0x0C, 0x80, 0xE3, 0x20, 0x50, 0x81, 0xE5, 0x03, 0x04, 0x80, 0xE3 - .byte 0x24, 0x40, 0x81, 0xE5, 0x08, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x70, 0x80, 0xBD, 0xE8 - .byte 0xAC, 0xB6, 0x2B, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x18, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x8D, 0xE2 - .byte 0xE9, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18, 0x5E, 0xFD, 0xFF, 0xEB - .byte 0x00, 0x00, 0x9D, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x7C, 0x1A, 0x08, 0x02, 0x70, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x60, 0xA0, 0xE1, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1, 0x47, 0xFD, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x70, 0x80, 0xBD, 0x08, 0x18, 0x10, 0x9F, 0xE5 - .byte 0x18, 0x00, 0x9F, 0xE5, 0x20, 0x50, 0x81, 0xE5, 0x24, 0x40, 0x81, 0xE5, 0x28, 0x60, 0x81, 0xE5 - .byte 0xED, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x70, 0x80, 0xBD, 0xE8, 0xAC, 0xB6, 0x2B, 0x02 - .byte 0x00, 0x67, 0x00, 0x03, 0x08, 0x40, 0x2D, 0xE9, 0x18, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0x8D, 0xE2 - .byte 0xE9, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18, 0x42, 0xFD, 0xFF, 0xEB - .byte 0x00, 0x00, 0x9D, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x7C, 0x1A, 0x08, 0x02, 0x00, 0x00, 0x50, 0xE3 - .byte 0x00, 0x20, 0x90, 0x15, 0x08, 0x20, 0x81, 0x15, 0x00, 0x10, 0x80, 0x15, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x00, 0x50, 0xE3, 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x20, 0x90, 0xE5, 0x00, 0x00, 0x52, 0xE3 - .byte 0x03, 0x00, 0x00, 0x1A, 0x00, 0x20, 0xA0, 0xE3, 0x08, 0x20, 0x81, 0xE5, 0x00, 0x10, 0x80, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0x92, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A - .byte 0x00, 0x20, 0xA0, 0xE1, 0x08, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A - .byte 0x08, 0x00, 0x81, 0xE5, 0x08, 0x10, 0x82, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x50, 0xE3 - .byte 0x00, 0x20, 0x90, 0x15, 0x02, 0x30, 0xA0, 0x11, 0x00, 0x00, 0x52, 0x13, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x01, 0x00, 0x52, 0xE1, 0x05, 0x00, 0x00, 0x1A, 0x03, 0x00, 0x52, 0xE1, 0x08, 0x10, 0x92, 0x05 - .byte 0x00, 0x10, 0x80, 0x05, 0x08, 0x00, 0x92, 0x15, 0x08, 0x00, 0x83, 0x15, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x02, 0x30, 0xA0, 0xE1, 0x08, 0x20, 0x92, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0xF3, 0xFF, 0xFF, 0x1A - .byte 0x1E, 0xFF, 0x2F, 0xE1 +_022E4E6C: .4byte 0x02326F34 + arm_func_end ov00_022E4E5C - arm_func_start FUN_020825e4 -FUN_020825e4: @ 0x020825E4 - push {r4, lr} - movs r4, r0 - popeq {r4, pc} -_020825F0: - ldr r0, [r4, #4] - ldr r1, [r4] - blx r1 - ldr r4, [r4, #8] - cmp r4, #0 - bne _020825F0 - pop {r4, pc} - arm_func_end FUN_020825e4 -_0208260C: - .byte 0x08, 0xC0, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE1, 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x3C, 0x25, 0x08, 0x02 - .byte 0xB8, 0xB6, 0x2B, 0x02, 0x08, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x04, 0x00, 0x9F, 0xE5 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x50, 0x25, 0x08, 0x02, 0xC4, 0xB6, 0x2B, 0x02, 0x08, 0xC0, 0x9F, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE1, 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x9C, 0x25, 0x08, 0x02 - .byte 0xB8, 0xB6, 0x2B, 0x02, 0x08, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x04, 0x00, 0x9F, 0xE5 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x9C, 0x25, 0x08, 0x02, 0xC4, 0xB6, 0x2B, 0x02 - - arm_func_start FUN_0208266c -FUN_0208266c: @ 0x0208266C - push {r3, r4, r5, lr} - ldr r0, _020826D0 @ =0x022BB718 - ldrh r1, [r0] - cmp r1, #0 - popne {r3, r4, r5, pc} + arm_func_start ov00_022E4E70 +ov00_022E4E70: @ 0x022E4E70 + ldr r0, _022E4E80 @ =0x02326F34 mov r1, #1 - strh r1, [r0] - mov r1, #0 - str r1, [r0, #0xc] str r1, [r0, #0x10] - str r1, [r0, #0x28] - str r1, [r0, #0x14] - str r1, [r0, #0x18] - bl thunk_FUN_0207d9b0 - mov r5, #5 - mov r4, #1 -_020826AC: - mov r0, r5 - mov r1, r4 - bl FUN_0207dafc - cmp r0, #0 - beq _020826AC - ldr r1, _020826D4 @ =FUN_020828e0 - mov r0, #5 - bl FUN_0207dab0 - pop {r3, r4, r5, pc} + bx lr .align 2, 0 -_020826D0: .4byte 0x022BB718 -_020826D4: .4byte FUN_020828e0 - arm_func_end FUN_0208266c +_022E4E80: .4byte 0x02326F34 + arm_func_end ov00_022E4E70 - arm_func_start FUN_020826d8 -FUN_020826d8: @ 0x020826D8 - push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl EnableIrqFlag - ldr r1, _02082744 @ =0x022BB718 - ldr r2, [r1, #0xc] - cmp r2, #0 - beq _02082708 - bl SetIrqFlag - mov r0, #1 - pop {r4, r5, r6, pc} -_02082708: - mov r2, #1 - str r2, [r1, #0xc] - bl SetIrqFlag - ldr r0, _02082744 @ =0x022BB718 + arm_func_start ov00_022E4E84 +ov00_022E4E84: @ 0x022E4E84 + ldr r0, _022E4E94 @ =0x02326F34 mov r1, #0 - str r1, [r0, #0x20] - str r1, [r0, #0x24] - str r6, [r0, #0x14] - str r5, [r0, #0x10] - str r4, [r0, #0x1c] - bl FUN_02082ed8 - cmp r0, #0 - movne r0, #0 - moveq r0, #3 - pop {r4, r5, r6, pc} + str r1, [r0, #0x10] + bx lr .align 2, 0 -_02082744: .4byte 0x022BB718 - arm_func_end FUN_020826d8 +_022E4E94: .4byte 0x02326F34 + arm_func_end ov00_022E4E84 - arm_func_start FUN_02082748 -FUN_02082748: @ 0x02082748 - push {r3, lr} - ldr r1, _02082778 @ =0x02082EA0 + arm_func_start ov00_022E4E98 +ov00_022E4E98: @ 0x022E4E98 + push {r3, r4, r5, r6, r7, r8, sb, lr} + ldr r0, _022E507C @ =0x02326F34 + mov r8, r1 + ldr r0, [r0, #0xc] + ldr r1, [r0, #0x5c] + cmp r1, #0 + beq _022E4ED0 + mov r0, #4 mov r2, #0 - bl FUN_020826d8 - ldr r1, _0208277C @ =0x022BB718 + bl ov00_022E0434 + ldr r0, _022E507C @ =0x02326F34 + mov r1, #0 + ldr r0, [r0, #0xc] + str r1, [r0, #0x5c] +_022E4ED0: + ldr r0, [r8] cmp r0, #0 - str r0, [r1, #0x2c] - bne _0208276C - bl FUN_02082eb0 -_0208276C: - ldr r0, _0208277C @ =0x022BB718 - ldr r0, [r0, #0x2c] + beq _022E4EE4 + bl ov00_022E4330 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022E4EE4: + ldr r0, _022E507C @ =0x02326F34 + mov r4, #0 + ldr r1, [r0, #0xc] + ldr r0, [r1, #0x14] + cmp r0, #0 + ble _022E5074 + mov r6, r4 +_022E4F00: + ldr r0, [r1, #0x18] + add r0, r0, r6 + bl ov00_022DB1A4 + cmp r0, #3 + bne _022E5058 + ldr r0, [r8, #4] + mov r5, #0 + cmp r0, #0 + ble _022E4FD8 + ldr sb, _022E507C @ =0x02326F34 + mov r7, r5 +_022E4F2C: + bl ov00_022E2C58 + ldr r1, [sb, #0xc] + ldr r1, [r1, #0x18] + add r1, r1, r6 + bl ov00_022DB98C + ldr r1, [r8, #8] + ldr r1, [r1, r7] + cmp r1, r0 + bne _022E4FC4 + ldr r0, _022E507C @ =0x02326F34 + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r6 + bl ov00_022DB21C + cmp r0, #0 + bne _022E4FD8 + ldr r0, _022E507C @ =0x02326F34 + mov r1, #1 + ldr r2, [r0, #0xc] + strb r1, [r2, #0x1d] + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r6 + bl ov00_022DB2C8 + ldr r0, _022E507C @ =0x02326F34 + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r6 + bl ov00_022DB1B4 + cmp r0, #0 + beq _022E4FD8 + ldr r0, _022E507C @ =0x02326F34 + mov r1, #1 + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r6 + bl ov00_022DB2F8 + b _022E4FD8 +_022E4FC4: + ldr r0, [r8, #4] + add r5, r5, #1 + cmp r5, r0 + add r7, r7, #0x1c + blt _022E4F2C +_022E4FD8: + ldr r0, [r8, #4] + cmp r5, r0 + bne _022E5024 + ldr r0, _022E507C @ =0x02326F34 + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r6 + bl ov00_022DB21C + cmp r0, #1 + bne _022E5024 + ldr r0, _022E507C @ =0x02326F34 + mov r3, #1 + ldr r2, [r0, #0xc] + mov r1, #0 + strb r3, [r2, #0x1d] + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r6 + bl ov00_022DB2C8 +_022E5024: + ldr r0, _022E507C @ =0x02326F34 + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r6 + bl ov00_022DB1B4 + cmp r0, #0 + beq _022E5058 + ldr r0, _022E507C @ =0x02326F34 + mov r1, #1 + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x18] + add r0, r0, r6 + bl ov00_022DB2F8 +_022E5058: + ldr r0, _022E507C @ =0x02326F34 + add r4, r4, #1 + ldr r1, [r0, #0xc] + add r6, r6, #0xc + ldr r0, [r1, #0x14] + cmp r4, r0 + blt _022E4F00 +_022E5074: + bl ov00_022E4330 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022E507C: .4byte 0x02326F34 + arm_func_end ov00_022E4E98 + + arm_func_start ov00_022E5080 +ov00_022E5080: @ 0x022E5080 + push {r3, lr} + ldr r0, _022E50A4 @ =0x02326F48 + ldr r1, [r0, #0x10] + cmp r1, #0 + movne r1, #1 + strne r1, [r0, #0xc] + popne {r3, pc} + bl ov00_023115E0 pop {r3, pc} .align 2, 0 -_02082778: .4byte 0x02082EA0 -_0208277C: .4byte 0x022BB718 - arm_func_end FUN_02082748 +_022E50A4: .4byte 0x02326F48 + arm_func_end ov00_022E5080 - arm_func_start FUN_02082780 -FUN_02082780: @ 0x02082780 + arm_func_start ov00_022E50A8 +ov00_022E50A8: @ 0x022E50A8 push {r4, r5, r6, lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl EnableIrqFlag - ldr r1, _020827F0 @ =0x022BB718 - ldr r2, [r1, #0xc] - cmp r2, #0 - beq _020827B0 - bl SetIrqFlag - mov r0, #1 - pop {r4, r5, r6, pc} -_020827B0: - mov r2, #1 - str r2, [r1, #0xc] - bl SetIrqFlag - ldr r0, _020827F0 @ =0x022BB718 - mov r1, #1 - str r1, [r0, #0x20] - mov r1, #0 - str r1, [r0, #0x24] - str r6, [r0, #0x14] - str r5, [r0, #0x10] - str r4, [r0, #0x1c] - bl FUN_02082ee8 - cmp r0, #0 - movne r0, #0 - moveq r0, #3 - pop {r4, r5, r6, pc} - .align 2, 0 -_020827F0: .4byte 0x022BB718 - arm_func_end FUN_02082780 -_020827F4: - .byte 0x08, 0x40, 0x2D, 0xE9, 0x24, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 - .byte 0xDE, 0xFF, 0xFF, 0xEB, 0x1C, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x2C, 0x00, 0x81, 0xE5 - .byte 0x00, 0x00, 0x00, 0x1A, 0xA5, 0x01, 0x00, 0xEB, 0x08, 0x00, 0x9F, 0xE5, 0x2C, 0x00, 0x90, 0xE5 - .byte 0x08, 0x80, 0xBD, 0xE8, 0xA0, 0x2E, 0x08, 0x02, 0x18, 0xB7, 0x2B, 0x02 - - arm_func_start FUN_0208282c -FUN_0208282c: @ 0x0208282C - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 mov r6, r1 mov r5, r2 mov r4, r3 - bl EnableIrqFlag - ldr r1, _020828A4 @ =0x022BB718 - ldr r2, [r1, #0xc] - cmp r2, #0 - beq _02082860 - bl SetIrqFlag - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_02082860: - mov r2, #1 - str r2, [r1, #0xc] - bl SetIrqFlag - ldr r0, _020828A4 @ =0x022BB718 - mov r1, #2 - str r1, [r0, #0x20] - mov r1, #0 - str r1, [r0, #0x24] - str r7, [r0, #0x14] - str r6, [r0, #0x18] - str r5, [r0, #0x10] - str r4, [r0, #0x1c] - bl FUN_02082ec8 - cmp r0, #0 - movne r0, #0 - moveq r0, #3 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_020828A4: .4byte 0x022BB718 - arm_func_end FUN_0208282c - - arm_func_start FUN_020828a8 -FUN_020828a8: @ 0x020828A8 - push {r3, lr} - ldr r2, _020828D8 @ =0x02082EA0 - mov r3, #0 - bl FUN_0208282c - ldr r1, _020828DC @ =0x022BB718 - cmp r0, #0 - str r0, [r1, #0x2c] - bne _020828CC - bl FUN_02082eb0 -_020828CC: - ldr r0, _020828DC @ =0x022BB718 - ldr r0, [r0, #0x2c] - pop {r3, pc} - .align 2, 0 -_020828D8: .4byte 0x02082EA0 -_020828DC: .4byte 0x022BB718 - arm_func_end FUN_020828a8 - - arm_func_start FUN_020828e0 -FUN_020828e0: @ 0x020828E0 - push {r3, r4, r5, lr} - cmp r2, #0 - beq _0208293C - ldr r0, _02082E20 @ =0x022BB718 - ldr r1, [r0, #0x24] - cmp r1, #0 - movne r1, #0 - strne r1, [r0, #0x24] - ldr r0, _02082E20 @ =0x022BB718 - ldr r1, [r0, #0xc] - cmp r1, #0 - movne r1, #0 - strne r1, [r0, #0xc] - ldr r0, _02082E20 @ =0x022BB718 - ldr r2, [r0, #0x10] - cmp r2, #0 - popeq {r3, r4, r5, pc} + bl ov00_022EC1B0 + bl ov00_022EC1C0 + str r6, [r0] + bl ov00_022EC1C0 + str r5, [r0, #4] + bl ov00_022EC1C0 + str r4, [r0, #8] + bl ov00_022EC1C0 mov r1, #0 str r1, [r0, #0x10] - ldr r1, [r0, #0x1c] - mov r0, #6 - blx r2 - pop {r3, r4, r5, pc} -_0208293C: - and r0, r1, #0x7f00 - lsr r0, r0, #8 - and r0, r0, #0xff - cmp r0, #0x30 - and r2, r1, #0xff - bne _0208296C - ldr r0, _02082E20 @ =0x022BB718 - ldr r0, [r0, #0x28] - cmp r0, #0 - popeq {r3, r4, r5, pc} - blx r0 - pop {r3, r4, r5, pc} -_0208296C: - cmp r2, #0 - bne _02082D90 - ldr r0, _02082E20 @ =0x022BB718 - mov r4, #0 - ldr r1, [r0, #0x20] - cmp r1, #0xf - addls pc, pc, r1, lsl #2 - b _02082D7C -_0208298C: @ jump table - b _020829CC @ case 0 - b _02082A28 @ case 1 - b _02082A78 @ case 2 - b _02082DD8 @ case 3 - b _02082DD8 @ case 4 - b _02082DD8 @ case 5 - b _02082B20 @ case 6 - b _02082B50 @ case 7 - b _02082B74 @ case 8 - b _02082C1C @ case 9 - b _02082CD0 @ case 10 - b _02082DD8 @ case 11 - b _02082DD8 @ case 12 - b _02082DD8 @ case 13 - b _02082DD8 @ case 14 - b _02082DD8 @ case 15 -_020829CC: - ldr r1, _02082E24 @ =0x027FFDE8 - ldr r5, [r0, #0x14] - ldr r0, [r1] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl FUN_02082e30 - ldr r1, _02082E24 @ =0x027FFDE8 - str r0, [r5] - ldr r0, [r1] - lsl r0, r0, #0x13 - lsr r0, r0, #0x1b - bl FUN_02082e30 - ldr r1, _02082E24 @ =0x027FFDE8 - str r0, [r5, #4] - ldr r0, [r1] - lsl r0, r0, #0xa - lsr r0, r0, #0x1a - bl FUN_02082e30 - str r0, [r5, #8] - mov r0, r5 - bl FUN_02083040 - str r0, [r5, #0xc] - b _02082DD8 -_02082A28: - ldr r1, _02082E28 @ =0x027FFDEC - ldr r5, [r0, #0x14] - ldr r0, [r1] - lsl r0, r0, #0x1a - lsr r0, r0, #0x1a - bl FUN_02082e30 - ldr r1, _02082E28 @ =0x027FFDEC - str r0, [r5] - ldr r0, [r1] - lsl r0, r0, #0x11 - lsr r0, r0, #0x19 - bl FUN_02082e30 - ldr r1, _02082E28 @ =0x027FFDEC - str r0, [r5, #4] - ldr r0, [r1] - lsl r0, r0, #9 - lsr r0, r0, #0x19 - bl FUN_02082e30 - str r0, [r5, #8] - b _02082DD8 -_02082A78: - ldr r1, _02082E24 @ =0x027FFDE8 - ldr r5, [r0, #0x14] - ldr r0, [r1] - and r0, r0, #0xff - bl FUN_02082e30 - ldr r1, _02082E24 @ =0x027FFDE8 - str r0, [r5] - ldr r0, [r1] - lsl r0, r0, #0x13 - lsr r0, r0, #0x1b - bl FUN_02082e30 - ldr r1, _02082E24 @ =0x027FFDE8 - str r0, [r5, #4] - ldr r0, [r1] - lsl r0, r0, #0xa - lsr r0, r0, #0x1a - bl FUN_02082e30 - str r0, [r5, #8] - mov r0, r5 - bl FUN_02083040 - ldr r1, _02082E28 @ =0x027FFDEC - str r0, [r5, #0xc] - ldr r0, [r1] - ldr r1, _02082E20 @ =0x022BB718 - lsl r0, r0, #0x1a - lsr r0, r0, #0x1a - ldr r5, [r1, #0x18] - bl FUN_02082e30 - ldr r1, _02082E28 @ =0x027FFDEC - str r0, [r5] - ldr r0, [r1] - lsl r0, r0, #0x11 - lsr r0, r0, #0x19 - bl FUN_02082e30 - ldr r1, _02082E28 @ =0x027FFDEC - str r0, [r5, #4] - ldr r0, [r1] - lsl r0, r0, #9 - lsr r0, r0, #0x19 - bl FUN_02082e30 - str r0, [r5, #8] - b _02082DD8 -_02082B20: - ldr r1, _02082E2C @ =0x027FFDEA - ldr r2, [r0, #0x14] - ldrh r0, [r1] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1c - cmp r0, #4 - bne _02082B48 - mov r0, #1 - str r0, [r2] - b _02082DD8 -_02082B48: - str r4, [r2] - b _02082DD8 -_02082B50: - ldr r1, _02082E2C @ =0x027FFDEA - ldr r2, [r0, #0x14] - ldrh r0, [r1] - lsl r0, r0, #0x19 - lsrs r0, r0, #0x1f - movne r0, #1 - strne r0, [r2] - streq r4, [r2] - b _02082DD8 -_02082B74: - ldr r1, _02082E28 @ =0x027FFDEC - ldr r5, [r0, #0x14] - ldr r0, [r1] - lsl r0, r0, #0x1d - lsr r0, r0, #0x1d - str r0, [r5] - ldr r0, [r1] - lsl r0, r0, #0x12 - lsr r0, r0, #0x1a - bl FUN_02082e30 - ldr r1, _02082E28 @ =0x027FFDEC - str r0, [r5, #4] - ldr r0, [r1] - lsl r0, r0, #9 - lsr r0, r0, #0x19 - bl FUN_02082e30 - str r0, [r5, #8] - mov r1, r4 - ldr r0, _02082E28 @ =0x027FFDEC - str r1, [r5, #0xc] - ldr r0, [r0] - lsl r0, r0, #0x18 - lsrs r0, r0, #0x1f - ldrne r0, [r5, #0xc] - addne r0, r0, #1 - strne r0, [r5, #0xc] - ldr r0, _02082E28 @ =0x027FFDEC - ldr r0, [r0] - lsl r0, r0, #0x10 - lsrs r0, r0, #0x1f - ldrne r0, [r5, #0xc] - addne r0, r0, #2 - strne r0, [r5, #0xc] - ldr r0, _02082E28 @ =0x027FFDEC - ldr r0, [r0] - lsl r0, r0, #8 - lsrs r0, r0, #0x1f - beq _02082DD8 - ldr r0, [r5, #0xc] - add r0, r0, #4 - str r0, [r5, #0xc] - b _02082DD8 -_02082C1C: - ldr r3, [r0, #0x24] - cmp r3, #0 - bne _02082CC8 - ldr r1, [r0, #0x14] - ldr r2, _02082E2C @ =0x027FFDEA - ldr r1, [r1] - cmp r1, #1 - ldrh r1, [r2] - bne _02082C88 - lsl r1, r1, #0x1c - lsr r1, r1, #0x1c - cmp r1, #4 - beq _02082DD8 - add r1, r3, #1 - str r1, [r0, #0x24] - ldrh r0, [r2] - bic r0, r0, #0xf - orr r0, r0, #4 - strh r0, [r2] - bl FUN_02082ef8 - cmp r0, #0 - bne _02082DD8 - ldr r0, _02082E20 @ =0x022BB718 - mov r1, r4 - str r1, [r0, #0x24] - mov r4, #3 - b _02082DD8 -_02082C88: - lsl r1, r1, #0x1c - lsrs r1, r1, #0x1c - beq _02082DD8 - add r1, r3, #1 - str r1, [r0, #0x24] - ldrh r0, [r2] - bic r0, r0, #0xf - strh r0, [r2] - bl FUN_02082ef8 - cmp r0, #0 - bne _02082DD8 - ldr r0, _02082E20 @ =0x022BB718 - mov r1, r4 - str r1, [r0, #0x24] - mov r4, #3 - b _02082DD8 -_02082CC8: - str r4, [r0, #0x24] - b _02082DD8 -_02082CD0: - ldr r3, [r0, #0x24] - cmp r3, #0 - bne _02082D74 - ldr r1, [r0, #0x14] - ldr r2, _02082E2C @ =0x027FFDEA - ldr r1, [r1] - cmp r1, #1 - ldrh r1, [r2] - bne _02082D34 - lsl r1, r1, #0x19 - lsrs r1, r1, #0x1f - bne _02082DD8 - add r1, r3, #1 - str r1, [r0, #0x24] - ldrh r0, [r2] - orr r0, r0, #0x40 - strh r0, [r2] - bl FUN_02082ef8 - cmp r0, #0 - bne _02082DD8 - ldr r0, _02082E20 @ =0x022BB718 - mov r1, r4 - str r1, [r0, #0x24] - mov r4, #3 - b _02082DD8 -_02082D34: - lsl r1, r1, #0x19 - lsrs r1, r1, #0x1f - beq _02082DD8 - add r1, r3, #1 - str r1, [r0, #0x24] - ldrh r0, [r2] - bic r0, r0, #0x40 - strh r0, [r2] - bl FUN_02082ef8 - cmp r0, #0 - bne _02082DD8 - ldr r0, _02082E20 @ =0x022BB718 - mov r1, r4 - str r1, [r0, #0x24] - mov r4, #3 - b _02082DD8 -_02082D74: - str r4, [r0, #0x24] - b _02082DD8 -_02082D7C: - ldr r0, _02082E20 @ =0x022BB718 + bl ov00_022EC1C0 mov r1, #0 - str r1, [r0, #0x24] - mov r4, #4 - b _02082DD8 -_02082D90: - ldr r0, _02082E20 @ =0x022BB718 + str r1, [r0, #0x1c] + bl ov00_022EC1C0 mov r1, #0 - str r1, [r0, #0x24] - cmp r2, #4 - addls pc, pc, r2, lsl #2 - b _02082DD4 -_02082DA8: @ jump table - b _02082DD4 @ case 0 - b _02082DBC @ case 1 - b _02082DC4 @ case 2 - b _02082DCC @ case 3 - b _02082DD4 @ case 4 -_02082DBC: - mov r4, #4 - b _02082DD8 -_02082DC4: - mov r4, #5 - b _02082DD8 -_02082DCC: - mov r4, #1 - b _02082DD8 -_02082DD4: - mov r4, #6 -_02082DD8: - ldr r0, _02082E20 @ =0x022BB718 - ldr r1, [r0, #0x24] - cmp r1, #0 - popne {r3, r4, r5, pc} - ldr r1, [r0, #0xc] - cmp r1, #0 - movne r1, #0 - strne r1, [r0, #0xc] - ldr r0, _02082E20 @ =0x022BB718 - ldr r2, [r0, #0x10] - cmp r2, #0 - popeq {r3, r4, r5, pc} + strh r1, [r0, #0x1a] + bl ov00_022EC1C0 mov r1, #0 - str r1, [r0, #0x10] - ldr r1, [r0, #0x1c] - mov r0, r4 - blx r2 - pop {r3, r4, r5, pc} - .align 2, 0 -_02082E20: .4byte 0x022BB718 -_02082E24: .4byte 0x027FFDE8 -_02082E28: .4byte 0x027FFDEC -_02082E2C: .4byte 0x027FFDEA - arm_func_end FUN_020828e0 - - arm_func_start FUN_02082e30 -FUN_02082e30: @ 0x02082E30 - push {r3, r4, r5, lr} - mov ip, #0 - mov r2, ip - mov r3, ip -_02082E40: - lsr r1, r0, r3 - and r1, r1, #0xf - cmp r1, #0xa - movhs r0, #0 - pophs {r3, r4, r5, pc} - add r2, r2, #1 - cmp r2, #8 - add r3, r3, #4 - blt _02082E40 - mov r5, #0 - mov r4, r5 - mov lr, #1 - mov r2, #0xa -_02082E74: - lsr r1, r0, r4 - and r3, r1, #0xf - mul r1, lr, r2 - mla ip, lr, r3, ip - add r5, r5, #1 - mov lr, r1 - cmp r5, #8 - add r4, r4, #4 - blt _02082E74 - mov r0, ip - pop {r3, r4, r5, pc} - arm_func_end FUN_02082e30 -_02082EA0: - .byte 0x04, 0x10, 0x9F, 0xE5, 0x2C, 0x00, 0x81, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x18, 0xB7, 0x2B, 0x02 - - arm_func_start FUN_02082eb0 -FUN_02082eb0: @ 0x02082EB0 - ldr ip, _02082EC4 @ =0x022BB724 -_02082EB4: - ldr r0, [ip] - cmp r0, #1 - beq _02082EB4 - bx lr - .align 2, 0 -_02082EC4: .4byte 0x022BB724 - arm_func_end FUN_02082eb0 - - arm_func_start FUN_02082ec8 -FUN_02082ec8: @ 0x02082EC8 - ldr ip, _02082ED4 @ =FUN_02082F08 - mov r0, #0x10 - bx ip - .align 2, 0 -_02082ED4: .4byte FUN_02082F08 - arm_func_end FUN_02082ec8 - - arm_func_start FUN_02082ed8 -FUN_02082ed8: @ 0x02082ED8 - ldr ip, _02082EE4 @ =FUN_02082F08 - mov r0, #0x11 - bx ip - .align 2, 0 -_02082EE4: .4byte FUN_02082F08 - arm_func_end FUN_02082ed8 - - arm_func_start FUN_02082ee8 -FUN_02082ee8: @ 0x02082EE8 - ldr ip, _02082EF4 @ =FUN_02082F08 - mov r0, #0x12 - bx ip - .align 2, 0 -_02082EF4: .4byte FUN_02082F08 - arm_func_end FUN_02082ee8 - - arm_func_start FUN_02082ef8 -FUN_02082ef8: @ 0x02082EF8 - ldr ip, _02082F04 @ =FUN_02082F08 - mov r0, #0x27 - bx ip - .align 2, 0 -_02082F04: .4byte FUN_02082F08 - arm_func_end FUN_02082ef8 - - arm_func_start FUN_02082F08 -FUN_02082F08: @ 0x02082F08 - push {r3, lr} - lsl r0, r0, #8 - and r1, r0, #0x7f00 - mov r0, #5 - mov r2, #0 - bl FUN_0207db20 - cmp r0, #0 - movge r0, #1 - movlt r0, #0 - pop {r3, pc} - arm_func_end FUN_02082F08 - - arm_func_start FUN_02082f30 -FUN_02082f30: @ 0x02082F30 - ldr r3, [r0] - cmp r3, #0x64 - bhs _02082F80 - ldr r2, [r0, #4] - cmp r2, #1 - blo _02082F80 - cmp r2, #0xc - bhi _02082F80 - ldr r1, [r0, #8] - cmp r1, #1 - blo _02082F80 - cmp r1, #0x1f - bhi _02082F80 - ldr r0, [r0, #0xc] - cmp r0, #7 - bge _02082F80 - cmp r2, #1 - blo _02082F80 - cmp r2, #0xc - bls _02082F88 -_02082F80: - mvn r0, #0 - bx lr -_02082F88: - ldr r0, _02082FBC @ =0x020B2E9C - sub r1, r1, #1 - ldr r0, [r0, r2, lsl #2] - cmp r2, #3 - add r2, r1, r0 - blo _02082FA8 - tst r3, #3 - addeq r2, r2, #1 -_02082FA8: - ldr r0, _02082FC0 @ =0x0000016D - add r1, r3, #3 - mla r0, r3, r0, r2 - add r0, r0, r1, lsr #2 - bx lr - .align 2, 0 -_02082FBC: .4byte 0x020B2E9C -_02082FC0: .4byte 0x0000016D - arm_func_end FUN_02082f30 - - arm_func_start FUN_02082fc4 -FUN_02082fc4: @ 0x02082FC4 - mov r1, #0x3c - ldm r0, {r2, r3} - mla r3, r2, r1, r3 - ldr r0, [r0, #8] - mla r0, r3, r1, r0 - bx lr - arm_func_end FUN_02082fc4 - - arm_func_start FUN_02082fdc -FUN_02082fdc: @ 0x02082FDC - push {r3, r4, r5, lr} - mov r5, r1 - bl FUN_02082f30 - mov r4, r0 - mvn r0, #0 - cmp r4, r0 - moveq r1, r0 - popeq {r3, r4, r5, pc} - mov r0, r5 - bl FUN_02082fc4 - mvn r2, #0 - cmp r0, r2 - moveq r1, r2 - beq _02083034 - ldr r1, _0208303C @ =0x00015180 - mov r2, #0 - umull ip, r3, r4, r1 - mla r3, r4, r2, r3 - asr r2, r4, #0x1f - mla r3, r2, r1, r3 - adds r2, r0, ip - adc r1, r3, r0, asr #31 -_02083034: - mov r0, r2 - pop {r3, r4, r5, pc} - .align 2, 0 -_0208303C: .4byte 0x00015180 - arm_func_end FUN_02082fdc - - arm_func_start FUN_02083040 -FUN_02083040: @ 0x02083040 - push {r4, r5, r6, lr} - ldr r1, [r0, #4] - ldr r2, [r0] - sub r1, r1, #2 - cmp r1, #1 - add ip, r2, #0x7d0 - sublt ip, ip, #1 - ldr r6, _020830F0 @ =0x51EB851F - ldr lr, [r0, #8] - smull r3, r2, r6, ip - smull r4, r3, r6, ip - lsr r5, ip, #0x1f - add r3, r5, r3, asr #5 - add r2, r5, r2, asr #5 - mov r5, #0x64 - smull r2, r4, r5, r2 - sub r2, ip, r2 - addlt r1, r1, #0xc - mov r0, #0x1a - mul r0, r1, r0 - sub r1, r0, #2 - ldr r0, _020830F4 @ =0x66666667 - lsr r5, r1, #0x1f - smull r1, ip, r0, r1 - add ip, r5, ip, asr #2 - asr r4, r2, #1 - add r0, lr, ip - add r1, r2, r4, lsr #30 - add r2, r2, r0 - asr r6, r3, #1 - add r0, r3, r6, lsr #30 - add r1, r2, r1, asr #2 - add r1, r1, r0, asr #2 - add r0, r3, r3, lsl #2 - add r4, r1, r0 - ldr r3, _020830F8 @ =0x92492493 - lsr r1, r4, #0x1f - smull r2, r0, r3, r4 - add r0, r4, r0 - add r0, r1, r0, asr #2 - mov r2, #7 - smull r0, r1, r2, r0 - sub r0, r4, r0 + str r1, [r0, #0xe4] + mov r0, r1 + bl ov00_022EC1D0 + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0xf] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x19] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1af] + bl ov00_022EC1C0 + mov r1, #0 + add r0, r0, #0x100 + strh r1, [r0, #0xb6] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1dc] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x200] + bl ov00_022EC1C0 + ldr r1, [sp, #0x10] + str r1, [r0, #0x2f4] + bl ov00_022EC1C0 + ldr r1, [sp, #0x14] + str r1, [r0, #0x2f8] + bl ov00_022EC1C0 + ldr r1, [sp, #0x18] + str r1, [r0, #0x2fc] + bl ov00_022EC1C0 + ldr r1, [sp, #0x1c] + str r1, [r0, #0x300] + bl ov00_022EC1C0 + add r0, r0, #0x304 + mov r1, #0 + mov r2, #0x40 + bl FUN_0207C40C + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x344] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x464] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x468] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x474] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x478] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x47c] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x480] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x174] + str r1, [r0, #0x178] + bl ov00_022EAF5C + ldr r1, _022E5220 @ =0x02326F48 + mov r0, #0 + strb r0, [r1, #0x1c] + strb r0, [r1, #0x1d] + strh r0, [r1, #0x1e] + bl ov00_022E6E68 pop {r4, r5, r6, pc} .align 2, 0 -_020830F0: .4byte 0x51EB851F -_020830F4: .4byte 0x66666667 -_020830F8: .4byte 0x92492493 - arm_func_end FUN_02083040 +_022E5220: .4byte 0x02326F48 + arm_func_end ov00_022E50A8 - arm_func_start FUN_020830fc -FUN_020830fc: @ 0x020830FC - push {r3, r4, r5, lr} - ldr r4, _02083134 @ =0x022BB7E0 - mov r5, r0 - ldr r1, [r4, #0x108] - add r0, r4, #0x44 - bl FUN_02079a64 - ldr r1, [r4, #0x114] - add r0, r4, #0x44 - orr r1, r1, #8 - str r0, [r4, #0x104] - str r5, [r4, #0x40] - str r1, [r4, #0x114] - bl FUN_02079940 - pop {r3, r4, r5, pc} - .align 2, 0 -_02083134: .4byte 0x022BB7E0 - arm_func_end FUN_020830fc - - arm_func_start FUN_02083138 -FUN_02083138: @ 0x02083138 - push {r4, r5, r6, r7, r8, lr} - ldr r4, _020831B8 @ =0x022BB7E0 - mov r8, r0 - mov r7, r1 - bl EnableIrqFlag - ldr r1, [r4, #8] - mov r5, r0 - cmp r1, r8 - bne _02083170 - ldr r0, [r4, #0x18] - cmp r0, r7 - beq _02083194 - bl WaitForever2 - b _02083194 -_02083170: - mvn r6, #2 - b _02083180 -_02083178: - add r0, r4, #0x10 - bl FUN_02079888 -_02083180: - ldr r0, [r4, #8] - cmp r0, r6 - bne _02083178 - str r8, [r4, #8] - str r7, [r4, #0x18] -_02083194: - ldr r0, [r4, #0xc] - ldr r1, [r4] - add r2, r0, #1 - mov r0, r5 - str r2, [r4, #0xc] - mov r2, #0 - str r2, [r1] - bl SetIrqFlag - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_020831B8: .4byte 0x022BB7E0 - arm_func_end FUN_02083138 - - arm_func_start FUN_020831bc -FUN_020831bc: @ 0x020831BC - push {r3, r4, r5, r6, r7, lr} - ldr r4, _02083244 @ =0x022BB7E0 - mov r7, r0 - mov r6, r1 - bl EnableIrqFlag - ldr r1, [r4, #8] - mov r5, r0 - cmp r1, r7 - bne _020831EC - ldr r0, [r4, #0xc] - cmp r0, #0 - bne _020831F4 -_020831EC: - bl WaitForever2 - b _0208322C -_020831F4: - ldr r0, [r4, #0x18] - cmp r0, r6 - beq _02083204 - bl WaitForever2 -_02083204: - ldr r0, [r4, #0xc] - subs r0, r0, #1 - str r0, [r4, #0xc] - bne _0208322C - mvn r2, #2 - mov r1, #0 - add r0, r4, #0x10 - str r2, [r4, #8] - str r1, [r4, #0x18] - bl FUN_020798d8 -_0208322C: - ldr r1, [r4] - mov r2, #0 - mov r0, r5 - str r2, [r1] - bl SetIrqFlag - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02083244: .4byte 0x022BB7E0 - arm_func_end FUN_020831bc - - arm_func_start FUN_02083248 -FUN_02083248: @ 0x02083248 - push {r4, lr} - sub sp, sp, #8 - ldr r4, _0208333C @ =0x022BB7E0 - ldr r1, _02083340 @ =0x022BB780 - mvn r2, #2 - mov r0, #0 - str r2, [r4, #8] - mov r2, #0x60 - str r0, [r4, #0xc] - str r0, [r4, #0x18] - str r1, [r4] - bl FUN_0207c358 - ldr r0, _02083340 @ =0x022BB780 - mov r1, #0x60 - bl FUN_0207a2dc - mvn r1, #0 - ldr r0, _02083344 @ =0x027FFC40 - str r1, [r4, #0x118] - str r1, [r4, #0x11c] - ldrh r0, [r0] - cmp r0, #2 - moveq r0, #1 - movne r0, #0 - cmp r0, #0 - bne _020832BC - ldr r0, _02083348 @ =0x027FFE00 - mov r2, #0x160 - sub r1, r0, #0x380 - bl FUN_0207c4c8 -_020832BC: - mov r2, #0 - mov r0, #4 - str r0, [r4, #0x108] - str r2, [r4, #0x14] - str r2, [r4, #0x10] - str r2, [r4, #0x110] - str r2, [r4, #0x10c] - mov r0, #0x400 - str r0, [sp] - ldr ip, [r4, #0x108] - ldr r1, _0208334C @ =0x020843B4 - ldr r3, _02083350 @ =0x022BBE00 - add r0, r4, #0x44 - str ip, [sp, #4] - bl FUN_02079560 - add r0, r4, #0x44 - bl FUN_02079940 - ldr r1, _02083354 @ =FUN_02084380 - mov r0, #0xb - bl FUN_0207dab0 - ldr r0, _02083344 @ =0x027FFC40 - ldrh r0, [r0] - cmp r0, #2 - moveq r0, #1 - movne r0, #0 - cmp r0, #0 - addne sp, sp, #8 - popne {r4, pc} - mov r0, #1 - bl FUN_02083380 - add sp, sp, #8 - pop {r4, pc} - .align 2, 0 -_0208333C: .4byte 0x022BB7E0 -_02083340: .4byte 0x022BB780 -_02083344: .4byte 0x027FFC40 -_02083348: .4byte 0x027FFE00 -_0208334C: .4byte 0x020843B4 -_02083350: .4byte 0x022BBE00 -_02083354: .4byte FUN_02084380 - arm_func_end FUN_02083248 - - arm_func_start FUN_02083358 -FUN_02083358: @ 0x02083358 - ldr r0, _02083364 @ =0x022BB760 - ldr r0, [r0] - bx lr - .align 2, 0 -_02083364: .4byte 0x022BB760 - arm_func_end FUN_02083358 - - arm_func_start FUN_02083368 -FUN_02083368: @ 0x02083368 - push {r3, lr} - bl FUN_02083358 - cmp r0, #0 - popne {r3, pc} - bl WaitForever2 - pop {r3, pc} - arm_func_end FUN_02083368 - - arm_func_start FUN_02083380 -FUN_02083380: @ 0x02083380 - ldr r1, _0208338C @ =0x022BB760 - str r0, [r1] - bx lr - .align 2, 0 -_0208338C: .4byte 0x022BB760 - arm_func_end FUN_02083380 - - arm_func_start FUN_02083390 -FUN_02083390: @ 0x02083390 - push {r3, r4, r5, lr} - ldr r4, _020833D8 @ =0x022BB7E0 - bl EnableIrqFlag - mov r5, r0 - b _020833AC -_020833A4: - add r0, r4, #0x10c - bl FUN_02079888 -_020833AC: - ldr r0, [r4, #0x114] - tst r0, #4 - bne _020833A4 - mov r0, r5 - bl SetIrqFlag - ldr r0, [r4] - ldr r0, [r0] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - pop {r3, r4, r5, pc} - .align 2, 0 -_020833D8: .4byte 0x022BB7E0 - arm_func_end FUN_02083390 - - arm_func_start FUN_020833dc -FUN_020833dc: @ 0x020833DC - ldr r0, _020833F4 @ =0x022BB7E0 - ldr r0, [r0, #0x114] - tst r0, #4 - moveq r0, #1 - movne r0, #0 - bx lr - .align 2, 0 -_020833F4: .4byte 0x022BB7E0 - arm_func_end FUN_020833dc - - arm_func_start FUN_020833f8 -FUN_020833f8: @ 0x020833F8 - push {r3, r4, r5, r6, r7, lr} - ldr r5, _02083430 @ =0x022BB7E0 - mov r7, r0 - bl EnableIrqFlag - ldr r6, [r5, #0x108] - mov r4, r0 - mov r1, r7 - add r0, r5, #0x44 - str r7, [r5, #0x108] - bl FUN_02079a64 - mov r0, r4 - bl SetIrqFlag - mov r0, r6 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02083430: .4byte 0x022BB7E0 - arm_func_end FUN_020833f8 - - arm_func_start FUN_02083434 -FUN_02083434: @ 0x02083434 - push {r4, lr} - mov r4, r0 - mov r1, #1 - bl FUN_02083138 - mov r0, r4 - bl FUN_02078fbc - pop {r4, pc} - arm_func_end FUN_02083434 - - arm_func_start FUN_02083450 -FUN_02083450: @ 0x02083450 - push {r4, lr} - mov r4, r0 - bl FUN_02078fd8 - mov r0, r4 - mov r1, #1 - bl FUN_020831bc - pop {r4, pc} - arm_func_end FUN_02083450 - - arm_func_start FUN_0208346c -FUN_0208346c: @ 0x0208346C - ldr ip, _02083478 @ =FUN_02083138 - mov r1, #2 - bx ip - .align 2, 0 -_02083478: .4byte FUN_02083138 - arm_func_end FUN_0208346c - - arm_func_start FUN_0208347c -FUN_0208347c: @ 0x0208347C - push {r4, lr} - mov r4, r0 - bl thunk_FUN_020833dc - cmp r0, #0 - bne _02083494 - bl thunk_FUN_02083390 -_02083494: - mov r0, r4 - mov r1, #2 - bl FUN_020831bc - pop {r4, pc} - arm_func_end FUN_0208347c - - arm_func_start FUN_020834a4 -FUN_020834a4: @ 0x020834A4 - push {r3, r4, r5, lr} - ldr r1, _02083808 @ =0x022BB7E0 - mov r5, r0 - ldr r4, [r1] - mov r1, #0 - add r0, r4, #0x18 - mov r2, #0x48 - bl FUN_0207c40c - ldr r0, _0208380C @ =0x0000203F - str r5, [r4, #4] - str r0, [r4, #0x58] - cmp r5, #0 - popeq {r3, r4, r5, pc} - asr r0, r5, #8 - and r0, r0, #0xff - mov r3, #1 - lsl ip, r3, r0 - and r2, r5, #0xff - asr r1, r5, #0x10 - str ip, [r4, #0x18] - mov r0, #0xff - strb r0, [r4, #0x54] - cmp r2, #1 - and r0, r1, #0xff - bne _020835E0 - cmp ip, #0x2000 - bhi _02083520 - bhs _0208355C - cmp ip, #0x200 - beq _0208353C - b _020837E8 -_02083520: - cmp ip, #0x10000 - bhi _02083530 - beq _02083580 - b _020837E8 -_02083530: - cmp ip, #0x20000 - beq _020835A4 - b _020837E8 -_0208353C: - mov r0, #0x10 - str r0, [r4, #0x24] - str r3, [r4, #0x28] - mov r0, #5 - str r0, [r4, #0x2c] - mov r0, #0xf0 - strb r0, [r4, #0x54] - b _020835C4 -_0208355C: - mov r0, #0x20 - str r0, [r4, #0x24] - mov r0, #2 - str r0, [r4, #0x28] - mov r0, #5 - str r0, [r4, #0x2c] - mov r0, #0 - strb r0, [r4, #0x54] - b _020835C4 -_02083580: - mov r0, #0x80 - str r0, [r4, #0x24] - mov r0, #2 - str r0, [r4, #0x28] - mov r0, #0xa - str r0, [r4, #0x2c] - mov r0, #0 - strb r0, [r4, #0x54] - b _020835C4 -_020835A4: - mov r0, #0x100 - str r0, [r4, #0x24] - mov r0, #3 - str r0, [r4, #0x28] - mov r0, #5 - str r0, [r4, #0x2c] - mov r0, #0 - strb r0, [r4, #0x54] -_020835C4: - ldr r0, [r4, #0x24] - str r0, [r4, #0x1c] - ldr r0, [r4, #0x58] - orr r0, r0, #0x40 - orr r0, r0, #0x4300 - str r0, [r4, #0x58] - pop {r3, r4, r5, pc} -_020835E0: - cmp r2, #2 - bne _020837A8 - cmp ip, #0x100000 - bhi _02083610 - bhs _02083634 - cmp ip, #0x40000 - bhi _02083604 - beq _02083634 - b _020837E8 -_02083604: - cmp ip, #0x80000 - beq _02083634 - b _020837E8 -_02083610: - cmp ip, #0x400000 - bhi _02083628 - bhs _020836AC - cmp ip, #0x200000 - beq _02083660 - b _020837E8 -_02083628: - cmp ip, #0x800000 - beq _020836FC - b _020837E8 -_02083634: - mov r0, #0x19 - str r0, [r4, #0x30] - mov r1, #0x12c - str r1, [r4, #0x34] - ldr r0, _02083810 @ =0x00001388 - str r1, [r4, #0x50] - str r0, [r4, #0x40] - ldr r0, [r4, #0x58] - orr r0, r0, #0x480 - str r0, [r4, #0x58] - b _02083778 -_02083660: - mov r0, #0x17 - str r0, [r4, #0x30] - mov r1, #0x12c - str r1, [r4, #0x34] - mov r1, #0x1f4 - ldr r0, _02083810 @ =0x00001388 - str r1, [r4, #0x40] - str r0, [r4, #0x44] - lsl r1, r0, #1 - ldr r0, _02083814 @ =0x0000EA60 - str r1, [r4, #0x38] - str r0, [r4, #0x3c] - mov r0, #0 - strb r0, [r4, #0x54] - ldr r0, [r4, #0x58] - orr r0, r0, #0x80 - orr r0, r0, #0x5400 - str r0, [r4, #0x58] - b _02083778 -_020836AC: - mov r0, #0x258 - str r0, [r4, #0x40] - add r0, r0, #0x960 - str r0, [r4, #0x44] - mov r0, #0x46 - str r0, [r4, #0x48] - mov r0, #0x96 - str r0, [r4, #0x4c] - ldr r1, _02083818 @ =0x000059D8 - ldr r0, _0208381C @ =0x000C3500 - str r1, [r4, #0x38] - str r0, [r4, #0x3c] - mov r0, #0 - strb r0, [r4, #0x54] - mov r0, #0x1000 - str r0, [r4, #0x20] - ldr r0, [r4, #0x58] - orr r0, r0, #0xd000 - str r0, [r4, #0x58] - b _02083778 -_020836FC: - cmp r0, #0 - bne _0208373C - mov r0, #0x3e8 - str r0, [r4, #0x40] - add r0, r0, #0x7d0 - str r0, [r4, #0x44] - ldr r1, _02083820 @ =0x000109A0 - ldr r0, _02083824 @ =0x00027100 - str r1, [r4, #0x38] - str r0, [r4, #0x3c] - mov r0, #0 - strb r0, [r4, #0x54] - ldr r0, [r4, #0x58] - orr r0, r0, #0x5000 - str r0, [r4, #0x58] - b _02083778 -_0208373C: - cmp r0, #1 - bne _02083778 - mov r0, #0x3e8 - str r0, [r4, #0x40] - add r0, r0, #0x7d0 - str r0, [r4, #0x44] - ldr r1, _02083820 @ =0x000109A0 - ldr r0, _02083824 @ =0x00027100 - str r1, [r4, #0x38] - str r0, [r4, #0x3c] - mov r0, #0x84 - strb r0, [r4, #0x54] - ldr r0, [r4, #0x58] - orr r0, r0, #0x5000 - str r0, [r4, #0x58] -_02083778: - mov r0, #0x10000 - str r0, [r4, #0x1c] - mov r0, #0x100 - str r0, [r4, #0x24] - mov r0, #3 - str r0, [r4, #0x28] - mov r0, #5 - str r0, [r4, #0x2c] - ldr r0, [r4, #0x58] - orr r0, r0, #0xb40 - str r0, [r4, #0x58] - pop {r3, r4, r5, pc} -_020837A8: - cmp r2, #3 - bne _020837E8 - cmp ip, #0x2000 - cmpne ip, #0x8000 - bne _020837E8 - str ip, [r4, #0x24] - str ip, [r4, #0x1c] - mov r0, #2 - str r0, [r4, #0x28] - mov r0, #0 - strb r0, [r4, #0x54] - ldr r0, [r4, #0x58] - orr r0, r0, #0x40 - orr r0, r0, #0x4300 - str r0, [r4, #0x58] - pop {r3, r4, r5, pc} -_020837E8: - mov r1, #0 - str r1, [r4, #4] - str r1, [r4, #0x18] - ldr r0, _02083808 @ =0x022BB7E0 - mov r1, #3 - ldr r0, [r0] - str r1, [r0] - pop {r3, r4, r5, pc} - .align 2, 0 -_02083808: .4byte 0x022BB7E0 -_0208380C: .4byte 0x0000203F -_02083810: .4byte 0x00001388 -_02083814: .4byte 0x0000EA60 -_02083818: .4byte 0x000059D8 -_0208381C: .4byte 0x000C3500 -_02083820: .4byte 0x000109A0 -_02083824: .4byte 0x00027100 - arm_func_end FUN_020834a4 - - arm_func_start FUN_02083828 -FUN_02083828: @ 0x02083828 + arm_func_start ov00_022E5224 +ov00_022E5224: @ 0x022E5224 push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sb, r0 - ldr r7, [sb, #0x2c] - ldr r0, _02083A10 @ =0x02000BC4 - ldr r4, [sb, #0x34] - ldr sl, [sb, #0x30] - mov r5, #0x100 - bl FUN_02000b9c - cmp r7, #0xb - bne _0208385C - bl FUN_02083b28 - mov r5, r0 - b _0208386C -_0208385C: - cmp r7, #0xf - ldreq r0, _02083A14 @ =0x022BB7E0 - ldreq r0, [r0] - ldreq r5, [r0, #0x20] -_0208386C: - add r6, sb, #0x120 - mov fp, #9 -_02083874: - ldr r8, [sb, #0x24] - ldr r0, [sb] - cmp r5, r8 - movlo r8, r5 - str r8, [r0, #0x14] - ldr r0, [sb, #0x114] - tst r0, #0x40 - beq _020838B0 - ldr r0, [sb, #0x114] - mov r1, #7 - bic r0, r0, #0x40 - str r0, [sb, #0x114] - ldr r0, [sb] - str r1, [r0] - b _020839BC -_020838B0: - cmp r4, #3 - addls pc, pc, r4, lsl #2 - b _02083940 -_020838BC: @ jump table - b _020838CC @ case 0 - b _020838F0 @ case 1 - b _020838F0 @ case 2 - b _02083928 @ case 3 -_020838CC: - mov r0, r6 - mov r1, r8 - bl FUN_0207a2a4 - ldr r1, [sb, #0x1c] - ldr r0, [sb] - str r1, [r0, #0xc] - ldr r0, [sb] - str r6, [r0, #0x10] - b _02083940 -_020838F0: - ldr r0, [sb, #0x1c] - mov r1, r6 - mov r2, r8 - bl FUN_0207c4c8 - mov r0, r6 - mov r1, r8 - bl FUN_0207a2dc - bl FUN_0207a300 - ldr r0, [sb] - str r6, [r0, #0xc] - ldr r1, [sb, #0x20] - ldr r0, [sb] - str r1, [r0, #0x10] - b _02083940 -_02083928: - ldr r1, [sb, #0x1c] - ldr r0, [sb] - str r1, [r0, #0xc] - ldr r1, [sb, #0x20] - ldr r0, [sb] - str r1, [r0, #0x10] -_02083940: - mov r0, sb - mov r1, r7 - mov r2, sl - bl FUN_02084404 - cmp r0, #0 - beq _020839BC - cmp r4, #2 - bne _0208397C - mov r0, sb - mov r1, fp - mov r2, #1 - bl FUN_02084404 - cmp r0, #0 - beq _020839BC - b _02083994 -_0208397C: - cmp r4, #0 - bne _02083994 - ldr r1, [sb, #0x20] - mov r0, r6 - mov r2, r8 - bl FUN_0207c4c8 -_02083994: - ldr r0, [sb, #0x1c] - add r0, r0, r8 - str r0, [sb, #0x1c] - ldr r0, [sb, #0x20] - add r0, r0, r8 - str r0, [sb, #0x20] - ldr r0, [sb, #0x24] - subs r0, r0, r8 - str r0, [sb, #0x24] - bne _02083874 -_020839BC: - ldr r6, [sb, #0x38] - ldr r5, [sb, #0x3c] - bl EnableIrqFlag - ldr r1, [sb, #0x114] + sub sp, sp, #0x28 mov r4, r0 - bic r0, r1, #0x4c - str r0, [sb, #0x114] - add r0, sb, #0x10c - bl FUN_020798d8 - ldr r0, [sb, #0x114] - tst r0, #0x10 - beq _020839F4 - add r0, sb, #0x44 - bl FUN_02079940 -_020839F4: - mov r0, r4 - bl SetIrqFlag - cmp r6, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - mov r0, r5 - blx r6 + bl ov00_022EC1C0 + ldr r0, [r0, #0x10] + cmp r0, #0 + addne sp, sp, #0x28 + movne r0, #0 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + bl ov00_022EC1C0 + str r4, [r0, #0x200] + ldr r4, _022E539C @ =ov00_022EB970 + ldr fp, _022E53A0 @ =0x022EBAB8 + mov sl, #0 + mov r5, #1 +_022E5260: + bl ov00_022EC1C0 + mov sb, r0 + bl ov00_022EC1C0 + ldr r0, [r0, #4] + ldr r0, [r0] + bl ov00_0230E448 + mov r8, r0 + bl ov00_022EC1C0 + ldr r0, [r0, #4] + ldr r0, [r0] + bl ov00_0230E428 + mov r7, r0 + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + ldr r3, [r0, #0x2f8] + mov r1, r8 + stm sp, {r3, r5} + str r5, [sp, #8] + str r4, [sp, #0xc] + ldr r3, _022E53A4 @ =0x022EBABC + str fp, [sp, #0x10] + str r3, [sp, #0x14] + ldr r3, _022E53A8 @ =ov00_022EBAC0 + mov r2, r7 + str r3, [sp, #0x18] + ldr r3, _022E53AC @ =0x022EBB64 + add r0, sb, #0x10 + str r3, [sp, #0x1c] + ldr r3, _022E53B0 @ =0x022EBB6C + str r3, [sp, #0x20] + mov r3, #0 + str r3, [sp, #0x24] + ldr r3, [r6, #0x2f4] + bl ov00_023127EC + movs r6, r0 + beq _022E533C + bl ov00_022EC1C0 + ldr r0, [r0, #0x10] + bl ov00_02312C50 + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x10] + cmp r6, #3 + bne _022E531C + cmp sl, #4 + bne _022E5330 +_022E531C: + mov r0, r6 + bl ov00_022EB728 + add sp, sp, #0x28 + mov r0, r6 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022E5330: + add sl, sl, #1 + cmp sl, #5 + blt _022E5260 +_022E533C: + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1c] + bl ov00_022EC1C0 + mov r1, #0 + strh r1, [r0, #0x1a] + bl ov00_022EC1C0 + ldr r0, [r0, #0x10] + ldr r1, _022E53B4 @ =0x022EBB78 + bl ov00_023129E0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x10] + ldr r1, _022E53B8 @ =ov00_022EBB98 + bl ov00_023129B0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x10] + ldr r1, _022E53BC @ =ov00_022EBC4C + bl ov00_023129C8 + bl ov00_022EC1C0 + ldr r0, [r0, #0x10] + bl ov00_02312BF4 + mov r0, r6 + add sp, sp, #0x28 pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 -_02083A10: .4byte 0x02000BC4 -_02083A14: .4byte 0x022BB7E0 - arm_func_end FUN_02083828 +_022E539C: .4byte ov00_022EB970 +_022E53A0: .4byte 0x022EBAB8 +_022E53A4: .4byte 0x022EBABC +_022E53A8: .4byte ov00_022EBAC0 +_022E53AC: .4byte 0x022EBB64 +_022E53B0: .4byte 0x022EBB6C +_022E53B4: .4byte 0x022EBB78 +_022E53B8: .4byte ov00_022EBB98 +_022E53BC: .4byte ov00_022EBC4C + arm_func_end ov00_022E5224 - arm_func_start FUN_02083a18 -FUN_02083a18: @ 0x02083A18 + arm_func_start ov00_022E53C0 +ov00_022E53C0: @ 0x022E53C0 + push {r4, lr} + movs r4, r0 + popeq {r4, pc} + bl ov00_023129F8 + ldr r0, [r4, #0xb4] + cmp r0, #0 + popne {r4, pc} + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + cmpne r0, #1 + beq _022E53FC + cmp r0, #2 + beq _022E5450 + pop {r4, pc} +_022E53FC: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0xb + addls pc, pc, r0, lsl #2 + pop {r4, pc} +_022E5410: @ jump table + pop {r4, pc} @ case 0 + b _022E5440 @ case 1 + b _022E5440 @ case 2 + b _022E5440 @ case 3 + b _022E5440 @ case 4 + pop {r4, pc} @ case 5 + b _022E5440 @ case 6 + pop {r4, pc} @ case 7 + pop {r4, pc} @ case 8 + pop {r4, pc} @ case 9 + pop {r4, pc} @ case 10 + b _022E5440 @ case 11 +_022E5440: + bl ov00_022EC1C0 + ldr r0, [r0, #0x10] + bl ov00_02312BF4 + pop {r4, pc} +_022E5450: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0xb + popne {r4, pc} + bl ov00_022EC1C0 + ldr r0, [r0, #0x10] + bl ov00_02312BF4 + pop {r4, pc} + arm_func_end ov00_022E53C0 + + arm_func_start ov00_022E5470 +ov00_022E5470: @ 0x022E5470 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + mov r4, r0 + bl ov00_022EC1C0 + cmp r0, #0 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, pc} + bl ov00_022E0378 + cmp r0, #0 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} + cmp r4, #0 + bne _022E54EC + bl ov00_022EC1C0 + ldr r0, [r0, #0x10] + cmp r0, #0 + beq _022E54C0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x10] + bl ov00_023129F8 +_022E54C0: + bl ov00_022EC1C0 + ldr r0, [r0, #4] + cmp r0, #0 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, pc} + bl ov00_022EC1C0 + ldr r0, [r0, #4] + ldr r0, [r0] + bl ov00_0230E0B0 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_022E54EC: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, pc} + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0xd + addls pc, pc, r0, lsl #2 + b _022E5C18 +_022E5514: @ jump table + b _022E5C18 @ case 0 + b _022E5B20 @ case 1 + b _022E56C8 @ case 2 + b _022E56C8 @ case 3 + b _022E554C @ case 4 + b _022E56C8 @ case 5 + b _022E5C18 @ case 6 + b _022E5788 @ case 7 + b _022E5C18 @ case 8 + b _022E5C18 @ case 9 + b _022E5C18 @ case 10 + b _022E590C @ case 11 + b _022E5C18 @ case 12 + b _022E5A00 @ case 13 +_022E554C: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1c8] + cmp r0, #0 + beq _022E5638 + bl FUN_0207AE44 + mov r6, r0 + mov r7, r1 + bl ov00_022EC1C0 + mov r5, r0 + bl ov00_022EC1C0 + mov r4, r0 + ldr r1, [r5, #0x1cc] + ldr r0, [r5, #0x1d0] + subs r2, r6, r1 + sbc r0, r7, r0 + lsl r1, r0, #6 + orr r1, r1, r2, lsr #26 + lsl r0, r2, #6 + ldr r2, _022E5EE0 @ =0x000082EA + mov r3, #0 + bl FUN_0208FE3C + cmp r1, #0 + ldr r1, [r4, #0x1c8] + cmpeq r0, r1 + bls _022E5638 + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1c8] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #3 + bne _022E5624 + bl ov00_022EC1C0 + ldrb r1, [r0, #0x1aa] + add r1, r1, #1 + strb r1, [r0, #0x1aa] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1aa] + cmp r0, #5 + bls _022E5600 + ldr r1, _022E5EE4 @ =0xFFFEC5D2 + mov r0, #6 + bl ov00_022E6570 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_022E5600: + bl ov00_022EC1C0 + ldr r0, [r0, #0xf4] + mov r1, #0 + bl ov00_022E9134 + bl ov00_022E9108 + cmp r0, #0 + beq _022E5638 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_022E5624: + mov r0, #0 + bl ov00_022E95B8 + cmp r0, #0 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, pc} +_022E5638: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1bc] + cmp r0, #0 + beq _022E5C18 + bl ov00_022EC1C0 + ldrb r1, [r0, #0xd] + ldr r0, _022E5EE8 @ =0x00000BB8 + mul r0, r1, r0 + add r0, r0, #0x3b8 + add r5, r0, #0x800 + bl FUN_0207AE44 + mov r4, r0 + mov r6, r1 + bl ov00_022EC1C0 + ldr r1, [r0, #0x1c0] + ldr r0, [r0, #0x1c4] + subs r2, r4, r1 + sbc r0, r6, r0 + lsl r1, r0, #6 + orr r1, r1, r2, lsr #26 + lsl r0, r2, #6 + ldr r2, _022E5EE0 @ =0x000082EA + mov r3, #0 + bl FUN_0208FE3C + cmp r1, #0 + cmpeq r0, r5 + blo _022E5C18 + bl ov00_022EC1C0 + ldr r0, [r0, #0xf4] + mov r1, #0 + bl ov00_022E9134 + bl ov00_022E9108 + cmp r0, #0 + beq _022E5C18 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_022E56C8: + bl ov00_022EC1C0 + ldr r0, [r0, #0xe8] + cmp r0, #0 + ble _022E5C18 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #3 + bne _022E5704 + bl ov00_022EC1C0 + ldrb r1, [r0, #0xd] + ldr r0, _022E5EE8 @ =0x00000BB8 + mul r0, r1, r0 + add r0, r0, #0x3b8 + add r5, r0, #0x800 + b _022E5718 +_022E5704: + bl ov00_022EC1C0 + ldr r0, [r0, #0xe8] + cmp r0, #1 + moveq r5, #0x3e8 + ldrne r5, _022E5EE8 @ =0x00000BB8 +_022E5718: + bl FUN_0207AE44 + mov r4, r0 + mov r6, r1 + bl ov00_022EC1C0 + ldr r1, [r0, #0xec] + ldr r0, [r0, #0xf0] + subs r3, r4, r1 + sbc r0, r6, r0 + lsl r1, r0, #6 + ldr r2, _022E5EE0 @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 + mov r3, #0 + bl FUN_0208FE3C + cmp r1, #0 + cmpeq r0, r5 + bls _022E5C18 + bl ov00_022EC1C0 + ldr r0, [r0, #0x204] + bl ov00_022E72A0 + bl ov00_022EB694 + cmp r0, #0 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0xe8] + b _022E5C18 +_022E5788: + bl ov00_022EC1C0 + ldr r1, [r0, #0x190] + ldr r0, [r0, #0x18c] + cmp r1, #0 + cmpeq r0, #0 + beq _022E5814 + bl FUN_0207AE44 + mov r4, r0 + mov r5, r1 + bl ov00_022EC1C0 + ldr r1, [r0, #0x18c] + ldr r0, [r0, #0x190] + subs r3, r4, r1 + sbc r0, r5, r0 + lsl r1, r0, #6 + ldr r2, _022E5EE0 @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _022E5EEC @ =0x000061A8 + cmp r1, #0 + cmpeq r0, r2 + bls _022E5C18 + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x18c] + str r1, [r0, #0x190] + bl ov00_022EC1C0 + ldr r0, [r0, #0xf4] + bl ov00_022E9900 + cmp r0, #0 + bne _022E5C18 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_022E5814: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x3cc] + cmp r0, #6 + bne _022E5C18 + bl FUN_0207AE44 + mov r4, r0 + mov r5, r1 + bl ov00_022EC1C0 + ldr r1, [r0, #0x45c] + ldr r0, [r0, #0x460] + subs r3, r4, r1 + sbc r0, r5, r0 + lsl r1, r0, #6 + ldr r2, _022E5EE0 @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _022E5EF0 @ =0x00001770 + cmp r1, #0 + cmpeq r0, r2 + bls _022E5C18 + bl ov00_022EC1C0 + ldrb r1, [r0, #0x3cd] + add r1, r1, #1 + strb r1, [r0, #0x3cd] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x3cd] + cmp r0, #5 + bls _022E58AC + bl ov00_022E6550 + bl ov00_022EC1C0 + ldr r0, [r0, #0xf4] + bl ov00_022E9900 + cmp r0, #0 + bne _022E5C18 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_022E58AC: + bl ov00_022EC1C0 + mov r7, r0 + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + mov r5, r0 + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + add r1, r4, #0x3d4 + str r1, [sp] + add r3, r5, #0x300 + ldr r1, [r0, #0x458] + mov r0, #6 + str r1, [sp, #4] + ldr r1, [r7, #0x454] + ldr r2, [r6, #0x3d0] + ldrh r3, [r3, #0xce] + bl ov00_022E78AC + bl ov00_022E9108 + cmp r0, #0 + beq _022E5C18 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_022E590C: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x3cc] + cmp r0, #2 + bne _022E5C18 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + bne _022E5974 + bl FUN_0207AE44 + mov r4, r0 + mov r5, r1 + bl ov00_022EC1C0 + ldr r1, [r0, #0x45c] + ldr r0, [r0, #0x460] + subs r3, r4, r1 + sbc r0, r5, r0 + lsl r1, r0, #6 + ldr r2, _022E5EE0 @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _022E5EF0 @ =0x00001770 + cmp r1, #0 + cmpeq r0, r2 + bhi _022E59CC +_022E5974: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + beq _022E5C18 + bl FUN_0207AE44 + mov r4, r0 + mov r5, r1 + bl ov00_022EC1C0 + ldr r1, [r0, #0x45c] + ldr r0, [r0, #0x460] + subs r3, r4, r1 + sbc r0, r5, r0 + lsl r1, r0, #6 + ldr r2, _022E5EE0 @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _022E5EF4 @ =0x00004A38 + cmp r1, #0 + cmpeq r0, r2 + bls _022E5C18 +_022E59CC: + bl ov00_022E6550 + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + add r0, r0, #1 + add r0, r4, r0, lsl #2 + ldr r0, [r0, #0xf4] + bl ov00_022E96E4 + cmp r0, #0 + bne _022E5C18 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_022E5A00: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x3cc] + cmp r0, #8 + bne _022E5C18 + bl FUN_0207AE44 + mov r4, r0 + mov r5, r1 + bl ov00_022EC1C0 + ldr r1, [r0, #0x45c] + ldr r0, [r0, #0x460] + subs r3, r4, r1 + sbc r0, r5, r0 + lsl r1, r0, #6 + ldr r2, _022E5EE0 @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _022E5EF8 @ =0x00007530 + cmp r1, #0 + cmpeq r0, r2 + bls _022E5C18 + bl ov00_022EC1C0 + ldrb r1, [r0, #0x3cd] + add r1, r1, #1 + strb r1, [r0, #0x3cd] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x3cd] + cmp r0, #0 + beq _022E5AC0 + bl ov00_022E6550 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #2 + bne _022E5AB8 + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + add r0, r4, r0, lsl #2 + ldr r0, [r0, #0xf4] + bl ov00_022E96E4 + cmp r0, #0 + bne _022E5C18 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_022E5AB8: + bl ov00_022EA488 + b _022E5C18 +_022E5AC0: + bl ov00_022EC1C0 + mov r7, r0 + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + mov r5, r0 + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + add r1, r4, #0x3d4 + str r1, [sp] + add r3, r5, #0x300 + ldr r1, [r0, #0x458] + mov r0, #8 + str r1, [sp, #4] + ldr r1, [r7, #0x454] + ldr r2, [r6, #0x3d0] + ldrh r3, [r3, #0xce] + bl ov00_022E78AC + bl ov00_022E9108 + cmp r0, #0 + beq _022E5C18 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_022E5B20: + bl ov00_022E1FC0 + cmp r0, #5 + bne _022E5C18 + bl FUN_0207AE44 + mov r4, r0 + mov r5, r1 + bl ov00_022EC1C0 + ldr r1, [r0, #0x1f8] + ldr r0, [r0, #0x1fc] + subs r3, r4, r1 + sbc r0, r5, r0 + lsl r1, r0, #6 + ldr r2, _022E5EE0 @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _022E5EF8 @ =0x00007530 + cmp r1, #0 + cmpeq r0, r2 + bls _022E5C18 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1ad] + cmp r0, #5 + blo _022E5BA0 + bl ov00_022EC1C0 + ldr r0, [r0, #0xf4] + bl ov00_022E9900 + cmp r0, #0 + bne _022E5C18 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_022E5BA0: + bl ov00_022EC1C0 + mov r5, r0 + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + ldrh r3, [r0, #0xa4] + ldr r1, [r5, #0xf4] + ldr r2, [r4, #0x24] + mov r0, #0x40 + bl ov00_022E78AC + bl ov00_022E9108 + cmp r0, #0 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} + bl ov00_022EC1C0 + ldrb r1, [r0, #0x1ad] + add r1, r1, #1 + strb r1, [r0, #0x1ad] + bl ov00_022EC1C0 + mov r4, r0 + bl FUN_0207AE44 + ldr r2, _022E5EFC @ =0xFF403B3A + mvn r3, #0 + adds r0, r0, r2 + str r0, [r4, #0x1f8] + adc r0, r1, r3 + str r0, [r4, #0x1fc] +_022E5C18: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0xb + beq _022E5C38 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #6 + bne _022E5CB0 +_022E5C38: + bl ov00_022EC1C0 + ldr r1, [r0, #0x188] + ldr r0, [r0, #0x184] + cmp r1, #0 + cmpeq r0, #0 + beq _022E5CB0 + bl FUN_0207AE44 + mov r4, r0 + mov r5, r1 + bl ov00_022EC1C0 + ldr r1, [r0, #0x184] + ldr r0, [r0, #0x188] + subs r3, r4, r1 + sbc r0, r5, r0 + lsl r1, r0, #6 + ldr r2, _022E5EE0 @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _022E5F00 @ =0x00002710 + cmp r1, #0 + cmpeq r0, r2 + bls _022E5CB0 + bl ov00_022EC1C0 + mov r1, #0 + add r3, r0, #0x194 + mov r2, r1 + mov r0, #1 + bl ov00_022EBD5C +_022E5CB0: + bl ov00_022EC1C0 + ldr r0, [r0, #0xe4] + cmp r0, #0 + beq _022E5D70 + ldr r0, _022E5F04 @ =0x02326F48 + mov r1, #0 + str r1, [r0, #0x18] + str r1, [r0, #0x14] + bl ov00_022EC1C0 + ldr r0, [r0, #0xe4] + bl ov00_02315D00 + ldr r0, _022E5F04 @ =0x02326F48 + ldr r0, [r0, #0x14] + cmp r0, #0 + beq _022E5D04 + bl ov00_022EC1C0 + ldr r0, [r0, #0xe4] + bl ov00_02315AD8 + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0xe4] +_022E5D04: + bl ov00_022EC1C0 + ldr r0, [r0, #0xe4] + cmp r0, #0 + beq _022E5D70 + bl ov00_022EC1C0 + ldr r0, [r0, #0xe4] + bl ov00_02315D4C + cmp r0, #0 + beq _022E5D70 + bl ov00_022EC1C0 + ldr r1, [r0, #0x178] + ldr r0, [r0, #0x174] + cmp r1, #0 + cmpeq r0, #0 + beq _022E5D70 + bl FUN_0207AE44 + mov r4, r0 + mov r5, r1 + bl ov00_022EC1C0 + ldr r1, [r0, #0x178] + ldr r0, [r0, #0x174] + cmp r5, r1 + cmpeq r4, r0 + bls _022E5D70 + ldr r1, _022E5F08 @ =0xFFFEB3EE + mov r0, #6 + bl ov00_022E6570 +_022E5D70: + bl ov00_022EC1C0 + ldr r0, [r0, #0x10] + bl ov00_022E53C0 + ldr r0, _022E5F04 @ =0x02326F48 + mov r1, #0 + str r1, [r0, #0xc] + mov r1, #1 + str r1, [r0, #0x10] + bl ov00_023122B8 + ldr r0, _022E5F04 @ =0x02326F48 + mov r2, #0 + str r2, [r0, #0x10] + ldr r1, [r0, #0xc] + cmp r1, #1 + bne _022E5DB4 + str r2, [r0, #0xc] + bl ov00_023115E0 +_022E5DB4: + bl ov00_022EC1C0 + ldr r0, [r0, #4] + cmp r0, #0 + beq _022E5DD4 + bl ov00_022EC1C0 + ldr r0, [r0, #4] + ldr r0, [r0] + bl ov00_0230E0B0 +_022E5DD4: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0x12 + bne _022E5E3C + bl FUN_0207AE44 + mov r4, r0 + mov r5, r1 + bl ov00_022EC1C0 + ldr r1, [r0, #0x1f0] + ldr r0, [r0, #0x1f4] + subs r3, r4, r1 + sbc r0, r5, r0 + lsl r1, r0, #6 + ldr r2, _022E5EE0 @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _022E5EE8 @ =0x00000BB8 + cmp r1, #0 + cmpeq r0, r2 + bls _022E5E3C + bl ov00_022EA4BC + cmp r0, #0 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} +_022E5E3C: + bl ov00_022EA848 + cmp r0, #0 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, pc} + bl ov00_022EAD5C + cmp r0, #0 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, pc} + bl ov00_022EB1F4 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1ae] + cmp r0, #0 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, pc} + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0xa + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + strb r0, [r4, #0x16] + bl ov00_022E6D08 + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1ae] + bl ov00_022EC1C0 + ldr r0, [r0, #0x47c] + cmp r0, #0 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, pc} + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x480] + ldr r1, [r4, #0x47c] + blx r1 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022E5EE0: .4byte 0x000082EA +_022E5EE4: .4byte 0xFFFEC5D2 +_022E5EE8: .4byte 0x00000BB8 +_022E5EEC: .4byte 0x000061A8 +_022E5EF0: .4byte 0x00001770 +_022E5EF4: .4byte 0x00004A38 +_022E5EF8: .4byte 0x00007530 +_022E5EFC: .4byte 0xFF403B3A +_022E5F00: .4byte 0x00002710 +_022E5F04: .4byte 0x02326F48 +_022E5F08: .4byte 0xFFFEB3EE + arm_func_end ov00_022E5470 + + arm_func_start ov00_022E5F0C +ov00_022E5F0C: @ 0x022E5F0C + push {r4, r5, r6, lr} + sub sp, sp, #8 + ldr r0, [sp, #0x18] + mov r4, r3 + cmp r0, #0 + cmpne r4, #0 + mov r5, r1 + mov r6, r2 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r4, r5, r6, pc} + add r1, sp, #0 + mov r0, #0 + mov r2, #8 + bl FUN_0207C314 + asr r1, r6, #8 + lsl r0, r6, #8 + mov r2, #2 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + strb r2, [sp, #1] + strh r0, [sp, #2] + str r5, [sp, #4] + ldrb r5, [r4] + cmp r5, #0xfe + ldrbeq r0, [r4, #1] + cmpeq r0, #0xfd + beq _022E5F88 + cmp r5, #0x5c + bne _022E5FB4 +_022E5F88: + bl ov00_022EC1C0 + ldr r0, [r0, #0x10] + cmp r0, #0 + beq _022E5FF0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x10] + ldr r2, [sp, #0x18] + add r3, sp, #0 + mov r1, r4 + bl ov00_02313D58 + b _022E5FF0 +_022E5FB4: + ldr r1, _022E5FFC @ =0x0231BF24 + mov r0, r4 + mov r2, #6 + bl FUN_02087348 + cmp r0, #0 + bne _022E5FE0 + ldr r1, [sp, #0x18] + add r2, sp, #0 + mov r0, r4 + bl ov00_0231268C + b _022E5FF0 +_022E5FE0: + add sp, sp, #8 + cmp r5, #0xfe + mov r0, #0 + pop {r4, r5, r6, pc} +_022E5FF0: + mov r0, #1 + add sp, sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 +_022E5FFC: .4byte 0x0231BF24 + arm_func_end ov00_022E5F0C + + arm_func_start ov00_022E6000 +ov00_022E6000: @ 0x022E6000 push {r3, r4, r5, r6, r7, r8, sb, lr} - mov sb, r0 - ldr r4, _02083AF0 @ =0x022BB7E0 - ldr r0, _02083AF4 @ =0x02000BC4 mov r8, r1 mov r7, r2 mov r6, r3 - bl FUN_02000b9c - bl EnableIrqFlag - ldr r1, [r4, #0x114] - mov r5, r0 - tst r1, #4 - beq _02083A60 -_02083A4C: - add r0, r4, #0x10c - bl FUN_02079888 - ldr r0, [r4, #0x114] - tst r0, #4 - bne _02083A4C -_02083A60: - ldr r0, [r4, #0x114] - ldr r1, [sp, #0x20] - orr r2, r0, #4 - mov r0, r5 - str r2, [r4, #0x114] - str r6, [r4, #0x38] - str r1, [r4, #0x3c] - bl SetIrqFlag - ldr r3, [sp, #0x28] - ldr r2, [sp, #0x2c] - ldr r1, [sp, #0x30] - ldr r0, [sp, #0x24] - str sb, [r4, #0x1c] - str r8, [r4, #0x20] - str r7, [r4, #0x24] - str r3, [r4, #0x2c] - str r2, [r4, #0x30] - str r1, [r4, #0x34] + bl ov00_022EC1C0 cmp r0, #0 - beq _02083AC0 - ldr r0, _02083AF8 @ =FUN_02083828 - bl FUN_020830fc - mov r0, #1 + beq _022E603C + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #7 + bne _022E603C + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a9] + cmp r0, #0 + beq _022E6050 +_022E603C: + ldr r1, _022E6230 @ =0x0231A1D0 + mov r0, r8 + mvn r2, #0 + bl ov00_0230DCBC pop {r3, r4, r5, r6, r7, r8, sb, pc} -_02083AC0: - ldr r0, _02083AFC @ =0x022B966C - ldr r1, _02083AF0 @ =0x022BB7E0 - ldr r2, [r0, #4] - mov r0, r4 - str r2, [r1, #0x104] - bl FUN_02083828 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 +_022E6050: + bl ov00_022E2128 + mov r5, r0 + mvn r2, #0 + cmp r5, r2 + bne _022E6080 + ldr r1, _022E6234 @ =0x0231A1DC + mov r0, r8 + bl ov00_0230DCBC + ldr r1, _022E6238 @ =0xFFFEABC4 + mov r0, #6 + bl ov00_022E6570 pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_02083AF0: .4byte 0x022BB7E0 -_02083AF4: .4byte 0x02000BC4 -_02083AF8: .4byte FUN_02083828 -_02083AFC: .4byte 0x022B966C - arm_func_end FUN_02083a18 - - arm_func_start FUN_02083b00 -FUN_02083b00: @ 0x02083B00 - ldr r0, _02083B10 @ =0x022BB7E0 - ldr r0, [r0] - ldr r0, [r0, #4] - bx lr - .align 2, 0 -_02083B10: .4byte 0x022BB7E0 - arm_func_end FUN_02083b00 - - arm_func_start FUN_02083b14 -FUN_02083b14: @ 0x02083B14 - ldr r0, _02083B24 @ =0x022BB7E0 - ldr r0, [r0] - ldr r0, [r0, #0x18] - bx lr - .align 2, 0 -_02083B24: .4byte 0x022BB7E0 - arm_func_end FUN_02083b14 - - arm_func_start FUN_02083b28 -FUN_02083b28: @ 0x02083B28 - ldr r0, _02083B38 @ =0x022BB7E0 - ldr r0, [r0] - ldr r0, [r0, #0x1c] - bx lr - .align 2, 0 -_02083B38: .4byte 0x022BB7E0 - arm_func_end FUN_02083b28 - - arm_func_start FUN_02083b3c -FUN_02083b3c: @ 0x02083B3C - push {r3, r4, r5, r6, r7, lr} - mov r6, r0 - ldr r0, _02083C68 @ =0x02000BC4 - ldr r4, _02083C6C @ =0x022BB7E0 - bl FUN_02000b9c - cmp r6, #0 - bne _02083B5C - bl WaitForever2 -_02083B5C: - bl FUN_02083368 - bl EnableIrqFlag - ldr r1, [r4, #0x114] - mov r5, r0 - tst r1, #4 - beq _02083B88 -_02083B74: - add r0, r4, #0x10c - bl FUN_02079888 - ldr r0, [r4, #0x114] - tst r0, #4 - bne _02083B74 -_02083B88: - ldr r0, [r4, #0x114] - mov r1, #0 - orr r2, r0, #4 - mov r0, r5 - str r2, [r4, #0x114] - str r1, [r4, #0x38] - str r1, [r4, #0x3c] - bl SetIrqFlag - mov r0, r6 - bl FUN_020834a4 - ldr r0, _02083C70 @ =0x022B966C - ldr r1, _02083C6C @ =0x022BB7E0 - ldr r2, [r0, #4] - mov r0, r4 - str r2, [r1, #0x104] - mov r1, #2 - mov r2, #1 - bl FUN_02084404 - ldr r0, [r4] - mov r1, #0 - str r1, [r0, #0xc] - ldr r0, [r4] - add r1, r4, #0x120 - str r1, [r0, #0x10] - ldr r1, [r4] - mov r2, #1 - mov r0, r4 - str r2, [r1, #0x14] - mov r1, #6 - bl FUN_02084404 - ldr r7, [r4, #0x38] - ldr r6, [r4, #0x3c] - bl EnableIrqFlag - mov r5, r0 - ldr r1, [r4, #0x114] - add r0, r4, #0x10c - bic r1, r1, #0x4c - str r1, [r4, #0x114] - bl FUN_020798d8 - ldr r0, [r4, #0x114] - tst r0, #0x10 - beq _02083C38 - add r0, r4, #0x44 - bl FUN_02079940 -_02083C38: - mov r0, r5 - bl SetIrqFlag - cmp r7, #0 - beq _02083C50 - mov r0, r6 - blx r7 -_02083C50: - ldr r0, [r4] - ldr r0, [r0] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02083C68: .4byte 0x02000BC4 -_02083C6C: .4byte 0x022BB7E0 -_02083C70: .4byte 0x022B966C - arm_func_end FUN_02083b3c - - arm_func_start thunk_FUN_02083390 -thunk_FUN_02083390: @ 0x02083C74 - ldr ip, _02083C7C @ =FUN_02083390 - bx ip - .align 2, 0 -_02083C7C: .4byte FUN_02083390 - arm_func_end thunk_FUN_02083390 - - arm_func_start thunk_FUN_020833dc -thunk_FUN_020833dc: @ 0x02083C80 - ldr ip, _02083C88 @ =FUN_020833dc - bx ip - .align 2, 0 -_02083C88: .4byte FUN_020833dc - arm_func_end thunk_FUN_020833dc - - arm_func_start FUN_02083c8c -FUN_02083c8c: @ 0x02083C8C - push {r3, r4, r5, lr} - ldr r4, _02083D14 @ =0x022BB7E0 - mov r1, #0x200 - ldr r3, [r4, #0x1c] - rsb r1, r1, #0 - ldr r2, [r0, #8] - and r3, r3, r1 - cmp r3, r2 - bne _02083D00 - ldr r2, [r4, #0x1c] - ldr r1, [r4, #0x24] - sub r3, r2, r3 - rsb r5, r3, #0x200 - cmp r5, r1 - movhi r5, r1 - add r0, r0, #0x20 - ldr r1, [r4, #0x20] - mov r2, r5 - add r0, r0, r3 - bl FUN_0207c4c8 - ldr r2, [r4, #0x1c] - ldr r1, [r4, #0x20] - ldr r0, [r4, #0x24] - add r2, r2, r5 - add r1, r1, r5 - sub r0, r0, r5 - str r2, [r4, #0x1c] - str r1, [r4, #0x20] - str r0, [r4, #0x24] -_02083D00: - ldr r0, [r4, #0x24] - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - pop {r3, r4, r5, pc} - .align 2, 0 -_02083D14: .4byte 0x022BB7E0 - arm_func_end FUN_02083c8c - - arm_func_start FUN_02083d18 -FUN_02083d18: @ 0x02083D18 - ldr r3, _02083D70 @ =0x040001A4 -_02083D1C: - ldr r2, [r3] - tst r2, #0x80000000 - bne _02083D1C - ldr r3, _02083D74 @ =0x040001A1 - mov r2, #0xc0 - strb r2, [r3] - lsr r2, r0, #0x18 - strb r2, [r3, #7] - lsr r2, r0, #0x10 - strb r2, [r3, #8] - lsr r2, r0, #8 - strb r2, [r3, #9] - strb r0, [r3, #0xa] - lsr r0, r1, #0x18 - strb r0, [r3, #0xb] - lsr r0, r1, #0x10 - strb r0, [r3, #0xc] - lsr r0, r1, #8 - strb r0, [r3, #0xd] - strb r1, [r3, #0xe] - bx lr - .align 2, 0 -_02083D70: .4byte 0x040001A4 -_02083D74: .4byte 0x040001A1 - arm_func_end FUN_02083d18 - - arm_func_start FUN_02083d78 -FUN_02083d78: @ 0x02083D78 - push {r3, r4, r5, lr} - ldr r4, _02083DBC @ =0x022BB7E0 - ldr r1, _02083DC0 @ =0x04100010 - ldr r0, [r4, #0x28] - ldr r2, [r4, #0x20] - mov r3, #0x200 - ldr r5, _02083DC4 @ =0x022BBE20 - bl FUN_0207c750 - ldr r1, [r4, #0x1c] - lsr r0, r1, #8 - orr r0, r0, #0xb7000000 - lsl r1, r1, #0x18 - bl FUN_02083d18 - ldr r1, [r5, #4] - ldr r0, _02083DC8 @ =0x040001A4 - str r1, [r0] - pop {r3, r4, r5, pc} - .align 2, 0 -_02083DBC: .4byte 0x022BB7E0 -_02083DC0: .4byte 0x04100010 -_02083DC4: .4byte 0x022BBE20 -_02083DC8: .4byte 0x040001A4 - arm_func_end FUN_02083d78 -_02083DCC: - .byte 0xF8, 0x40, 0x2D, 0xE9 - .byte 0xC0, 0x00, 0x9F, 0xE5, 0x28, 0x00, 0x90, 0xE5, 0xE1, 0xE0, 0xFF, 0xEB, 0xB4, 0x30, 0x9F, 0xE5 - .byte 0x24, 0x00, 0x93, 0xE5, 0x1C, 0x20, 0x93, 0xE5, 0x20, 0x10, 0x93, 0xE5, 0x02, 0x0C, 0x50, 0xE2 - .byte 0x24, 0x00, 0x83, 0xE5, 0x01, 0x00, 0xA0, 0x13, 0x02, 0x2C, 0x82, 0xE2, 0x02, 0x1C, 0x81, 0xE2 - .byte 0x00, 0x00, 0xA0, 0x03, 0x1C, 0x20, 0x83, 0xE5, 0x20, 0x10, 0x83, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x1E, 0x00, 0x00, 0x1A, 0x02, 0x07, 0xA0, 0xE3, 0x9E, 0xD3, 0xFF, 0xEB, 0x02, 0x07, 0xA0, 0xE3 - .byte 0xA8, 0xD3, 0xFF, 0xEB, 0x6C, 0x40, 0x9F, 0xE5, 0xBA, 0x00, 0x00, 0xEB, 0x14, 0x02, 0x00, 0xEB - .byte 0x00, 0x00, 0x94, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x38, 0x50, 0x94, 0xE5 - .byte 0x3C, 0x60, 0x94, 0xE5, 0x66, 0xDE, 0xFF, 0xEB, 0x14, 0x11, 0x94, 0xE5, 0x00, 0x70, 0xA0, 0xE1 - .byte 0x4C, 0x00, 0xC1, 0xE3, 0x14, 0x01, 0x84, 0xE5, 0x43, 0x0F, 0x84, 0xE2, 0x9D, 0xD6, 0xFF, 0xEB - .byte 0x14, 0x01, 0x94, 0xE5, 0x10, 0x00, 0x10, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x44, 0x00, 0x84, 0xE2 - .byte 0xB2, 0xD6, 0xFF, 0xEB, 0x07, 0x00, 0xA0, 0xE1, 0x5E, 0xDE, 0xFF, 0xEB, 0x00, 0x00, 0x55, 0xE3 - .byte 0xF8, 0x80, 0xBD, 0x08, 0x06, 0x00, 0xA0, 0xE1, 0x35, 0xFF, 0x2F, 0xE1, 0xF8, 0x80, 0xBD, 0xE8 - .byte 0xB8, 0xFF, 0xFF, 0xEB, 0xF8, 0x80, 0xBD, 0xE8, 0xE0, 0xB7, 0x2B, 0x02 - - arm_func_start FUN_02083e9c -FUN_02083e9c: @ 0x02083E9C - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr r4, _02084014 @ =0x022BB7E0 - mov r6, #0 - ldr sb, [r4, #0x20] - mov fp, r0 - mov r7, r6 - mov r8, r6 - mov r1, r6 - ands sl, sb, #0x1f - ldr r5, [r4, #0x24] - bne _02083ED4 - ldr r0, [r4, #0x28] - cmp r0, #3 - movls r1, #1 -_02083ED4: - cmp r1, #0 - beq _02083F28 - bl FUN_0207aacc - ldr r1, _02084018 @ =FUN_01FF8000 - add r3, sb, r5 - cmp r3, r1 - mov r1, #1 - mov r2, #0 - bls _02083F00 - cmp sb, #0x2000000 - movlo r2, r1 -_02083F00: - cmp r2, #0 - bne _02083F20 - cmp r0, r3 - bhs _02083F1C - add r0, r0, #0x4000 - cmp r0, sb - bhi _02083F20 -_02083F1C: - mov r1, #0 -_02083F20: - cmp r1, #0 - moveq r8, #1 -_02083F28: - cmp r8, #0 - beq _02083F44 - ldr r1, [r4, #0x1c] - ldr r0, _0208401C @ =0x000001FF - orr r1, r1, r5 - tst r1, r0 - moveq r7, #1 -_02083F44: - ldr r0, _02084020 @ =0x020B2ED0 - cmp r7, #0 - ldr r0, [r0] - cmpne r5, #0 - ldr r0, [r0, #0x60] - movne r6, #1 - bic r0, r0, #0x7000000 - orr r0, r0, #0xa1000000 - cmp r6, #0 - str r0, [fp, #4] - beq _0208400C - bl EnableIrqFlag - ldr r1, [r4, #0x118] - mov r7, r0 - cmp r5, r1 - bhs _02083F94 - mov r0, sb - mov r1, r5 - bl FUN_0207a330 - b _02083F98 -_02083F94: - bl FUN_0207a324 -_02083F98: - ldr r0, [r4, #0x11c] - cmp r5, r0 - bhs _02083FE0 - cmp sl, #0 - beq _02083FCC - sub sb, sb, sl - mov r0, sb - mov r1, #0x20 - bl FUN_0207a2c0 - add r0, sb, r5 - mov r1, #0x20 - bl FUN_0207a2c0 - add r5, r5, #0x20 -_02083FCC: - mov r0, sb - mov r1, r5 - bl FUN_0207a2a4 - bl FUN_0207a300 - b _02083FE4 -_02083FE0: - bl FUN_0207a270 -_02083FE4: - ldr r1, _02084024 @ =0x02083DCC - mov r0, #0x80000 - bl FUN_02078a98 - mov r0, #0x80000 - bl FUN_02078cc8 - mov r0, #0x80000 - bl FUN_02078c68 - mov r0, r7 - bl SetIrqFlag - bl FUN_02083d78 -_0208400C: - mov r0, r6 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_02084014: .4byte 0x022BB7E0 -_02084018: .4byte FUN_01FF8000 -_0208401C: .4byte 0x000001FF -_02084020: .4byte 0x020B2ED0 -_02084024: .4byte 0x02083DCC - arm_func_end FUN_02083e9c - - arm_func_start FUN_02084028 -FUN_02084028: @ 0x02084028 - push {r4, r5, r6, lr} - ldr r4, _0208410C @ =0x022BB7E0 - mov r6, r0 -_02084034: - mov r0, #0x200 - ldr r1, [r4, #0x1c] - rsb r0, r0, #0 - and r2, r1, r0 - cmp r2, r1 - bne _02084064 - ldr r5, [r4, #0x20] - tst r5, #3 - bne _02084064 - ldr r0, [r4, #0x24] - cmp r0, #0x200 - bhs _0208406C -_02084064: - str r2, [r6, #8] - add r5, r6, #0x20 -_0208406C: - lsr r0, r2, #8 - orr r0, r0, #0xb7000000 - lsl r1, r2, #0x18 - bl FUN_02083d18 - mov ip, #0 - ldr r0, [r6, #4] - ldr r2, _02084110 @ =0x040001A4 - mov lr, ip - str r0, [r2] - ldr r1, _02084114 @ =0x04100010 -_02084094: - ldr r3, [r2] - tst r3, #0x800000 - beq _020840B4 - ldr r0, [r1] - cmp lr, #0x200 - strlo r0, [r5, ip, lsl #2] - addlo lr, lr, #4 - addlo ip, ip, #1 -_020840B4: - tst r3, #0x80000000 - bne _02084094 - ldr r0, [r4, #0x20] - cmp r5, r0 - bne _020840F8 - ldr r0, _0208410C @ =0x022BB7E0 - ldr r1, [r0, #0x1c] - add r1, r1, #0x200 - str r1, [r0, #0x1c] - ldr r1, [r0, #0x20] - add r1, r1, #0x200 - str r1, [r0, #0x20] - ldr r1, [r0, #0x24] - subs r1, r1, #0x200 - str r1, [r0, #0x24] - popeq {r4, r5, r6, pc} - b _02084034 -_020840F8: - mov r0, r6 - bl FUN_02083c8c - cmp r0, #0 - bne _02084034 - pop {r4, r5, r6, pc} - .align 2, 0 -_0208410C: .4byte 0x022BB7E0 -_02084110: .4byte 0x040001A4 -_02084114: .4byte 0x04100010 - arm_func_end FUN_02084028 - - arm_func_start FUN_02084118 -FUN_02084118: @ 0x02084118 - push {r3, lr} - mov r0, #0xb8000000 - mov r1, #0 - bl FUN_02083d18 - ldr r1, _02084168 @ =0x020B2ED0 - mov r0, #0x2000 - ldr r1, [r1] - rsb r0, r0, #0 - ldr r2, [r1, #0x60] - ldr r1, _0208416C @ =0x040001A4 - bic r2, r2, #0x7000000 - orr r2, r2, #0xa7000000 - and r0, r2, r0 - str r0, [r1] -_02084150: - ldr r0, [r1] - tst r0, #0x800000 - beq _02084150 - ldr r0, _02084170 @ =0x04100010 - ldr r0, [r0] - pop {r3, pc} - .align 2, 0 -_02084168: .4byte 0x020B2ED0 -_0208416C: .4byte 0x040001A4 -_02084170: .4byte 0x04100010 - arm_func_end FUN_02084118 - - arm_func_start FUN_02084174 -FUN_02084174: @ 0x02084174 - push {r3, r4, r5, r6, r7, lr} - ldr r4, _02084204 @ =0x022BBE20 - mov r0, r4 - bl FUN_02083c8c - cmp r0, #0 - beq _02084198 - ldr r1, [r4] - mov r0, r4 - blx r1 -_02084198: - ldr r4, _02084208 @ =0x022BB7E0 - bl FUN_02084118 - bl FUN_02084684 - ldr r0, [r4] - mov r1, #0 - str r1, [r0] - ldr r5, [r4, #0x38] - ldr r6, [r4, #0x3c] - bl EnableIrqFlag - ldr r1, [r4, #0x114] - mov r7, r0 - bic r0, r1, #0x4c - str r0, [r4, #0x114] - add r0, r4, #0x10c - bl FUN_020798d8 - ldr r0, [r4, #0x114] - tst r0, #0x10 - beq _020841E8 - add r0, r4, #0x44 - bl FUN_02079940 -_020841E8: - mov r0, r7 - bl SetIrqFlag - cmp r5, #0 - popeq {r3, r4, r5, r6, r7, pc} - mov r0, r6 - blx r5 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02084204: .4byte 0x022BBE20 -_02084208: .4byte 0x022BB7E0 - arm_func_end FUN_02084174 - - arm_func_start FUN_0208420c -FUN_0208420c: @ 0x0208420C - push {r4, r5, r6, r7, r8, sb, sl, lr} - mov sl, r0 - mov sb, r1 - mov r8, r2 - mov r7, r3 - ldr r4, _020842F0 @ =0x022BBE20 - ldr r5, _020842F4 @ =0x022BB7E0 - bl FUN_02083368 - bl EnableIrqFlag - mov r6, r0 - b _02084240 -_02084238: - add r0, r5, #0x10c - bl FUN_02079888 -_02084240: - ldr r0, [r5, #0x114] - tst r0, #4 - bne _02084238 - ldr r0, [r5, #0x114] - ldr r2, [sp, #0x20] - ldr r1, [sp, #0x24] - orr r3, r0, #4 - mov r0, r6 - str r3, [r5, #0x114] - str r2, [r5, #0x38] - str r1, [r5, #0x3c] - bl SetIrqFlag - ldr r0, _020842F8 @ =0x022BBE00 - str sl, [r5, #0x28] - ldr r0, [r0] - str r8, [r5, #0x20] - add r0, sb, r0 - str r0, [r5, #0x1c] - str r7, [r5, #0x24] - cmp sl, #3 - bhi _0208429C - mov r0, sl - bl FUN_0207c164 -_0208429C: - mov r0, r4 - bl FUN_02083e9c - cmp r0, #0 - beq _020842C0 - ldr r0, [sp, #0x28] - cmp r0, #0 - popne {r4, r5, r6, r7, r8, sb, sl, pc} - bl thunk_FUN_02083390 - pop {r4, r5, r6, r7, r8, sb, sl, pc} -_020842C0: - ldr r0, [sp, #0x28] - cmp r0, #0 - beq _020842D8 - ldr r0, _020842FC @ =FUN_02084174 - bl FUN_020830fc - pop {r4, r5, r6, r7, r8, sb, sl, pc} -_020842D8: - ldr r1, _02084300 @ =0x022B966C - mov r0, r5 - ldr r1, [r1, #4] - str r1, [r5, #0x104] - bl FUN_02084174 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_020842F0: .4byte 0x022BBE20 -_020842F4: .4byte 0x022BB7E0 -_020842F8: .4byte 0x022BBE00 -_020842FC: .4byte FUN_02084174 -_02084300: .4byte 0x022B966C - arm_func_end FUN_0208420c - - arm_func_start FUN_02084304 -FUN_02084304: @ 0x02084304 - push {r3, lr} - ldr ip, _02084360 @ =0x022BB7E0 - ldr r0, [ip, #0x114] - cmp r0, #0 - popne {r3, pc} - mov r2, #0 - ldr r0, _02084364 @ =0x022BBE00 - sub r1, r2, #1 - mov r3, #1 - str r3, [ip, #0x114] - str r2, [ip, #0x24] - str r2, [ip, #0x20] - str r2, [ip, #0x1c] - str r1, [ip, #0x28] - str r2, [ip, #0x38] - str r2, [ip, #0x3c] - str r2, [r0] - bl FUN_02083248 - bl FUN_02084374 - ldr r1, _02084364 @ =0x022BBE00 - str r0, [r1, #0x20] - bl FUN_02084558 - pop {r3, pc} - .align 2, 0 -_02084360: .4byte 0x022BB7E0 -_02084364: .4byte 0x022BBE00 - arm_func_end FUN_02084304 - - arm_func_start thunk_FUN_02083390 -thunk_FUN_02083390: @ 0x02084368 - ldr ip, _02084370 @ =FUN_02083390 - bx ip - .align 2, 0 -_02084370: .4byte FUN_02083390 - arm_func_end thunk_FUN_02083390 - - arm_func_start FUN_02084374 -FUN_02084374: @ 0x02084374 - ldr r0, _0208437C @ =FUN_02084028 - bx lr - .align 2, 0 -_0208437C: .4byte FUN_02084028 - arm_func_end FUN_02084374 - - arm_func_start FUN_02084380 -FUN_02084380: @ 0x02084380 - push {r3, lr} - cmp r0, #0xb - popne {r3, pc} - cmp r2, #0 - popeq {r3, pc} - ldr r2, _020843B0 @ =0x022BB7E0 - ldr r1, [r2, #0x114] - ldr r0, [r2, #0x104] - bic r1, r1, #0x20 - str r1, [r2, #0x114] - bl FUN_02079940 - pop {r3, pc} - .align 2, 0 -_020843B0: .4byte 0x022BB7E0 - arm_func_end FUN_02084380 -_020843B4: - .byte 0x70, 0x40, 0x2D, 0xE9, 0x40, 0x50, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE3 - .byte 0x07, 0xDD, 0xFF, 0xEB, 0x14, 0x11, 0x95, 0xE5, 0x00, 0x60, 0xA0, 0xE1, 0x08, 0x00, 0x11, 0xE3 - .byte 0x04, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1, 0x2A, 0xD5, 0xFF, 0xEB, 0x14, 0x01, 0x95, 0xE5 - .byte 0x08, 0x00, 0x10, 0xE3, 0xFA, 0xFF, 0xFF, 0x0A, 0x06, 0x00, 0xA0, 0xE1, 0x01, 0xDD, 0xFF, 0xEB - .byte 0x40, 0x10, 0x95, 0xE5, 0x05, 0x00, 0xA0, 0xE1, 0x31, 0xFF, 0x2F, 0xE1, 0xEF, 0xFF, 0xFF, 0xEA - .byte 0xE0, 0xB7, 0x2B, 0x02 - - arm_func_start FUN_02084404 -FUN_02084404: @ 0x02084404 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sl, r0 - ldr r0, [sl, #0x114] - mov sb, r1 - str r2, [sp] - tst r0, #2 - bne _02084478 - ldr r1, [sl, #0x114] - mov r0, #0xb - orr r2, r1, #2 - mov r1, #1 - str r2, [sl, #0x114] - bl FUN_0207dafc - cmp r0, #0 - bne _02084468 - mov r6, #0x64 - mov r5, #0xb - mov r4, #1 -_0208444C: - mov r0, r6 - bl _0207B854 - mov r0, r5 - mov r1, r4 - bl FUN_0207dafc - cmp r0, #0 - beq _0208444C -_02084468: - mov r0, sl - mov r1, #0 - mov r2, #1 - bl FUN_02084404 -_02084478: - ldr r0, [sl] - mov r1, #0x60 - bl FUN_0207a2dc - bl FUN_0207a300 - mov r7, #0xb - mov r6, #1 - mov r5, r7 - mov r4, r6 - mov fp, #0 -_0208449C: - str sb, [sl, #4] - ldr r0, [sl, #0x114] - orr r0, r0, #0x20 - str r0, [sl, #0x114] -_020844AC: - mov r0, r7 - mov r1, sb - mov r2, r6 - bl FUN_0207db20 - cmp r0, #0 - blt _020844AC - cmp sb, #0 - bne _020844E8 - ldr r8, [sl] -_020844D0: - mov r0, r5 - mov r1, r8 - mov r2, r4 - bl FUN_0207db20 - cmp r0, #0 - blt _020844D0 -_020844E8: - bl EnableIrqFlag - ldr r1, [sl, #0x114] - mov r8, r0 - tst r1, #0x20 - beq _02084510 -_020844FC: - mov r0, fp - bl FUN_02079888 - ldr r0, [sl, #0x114] - tst r0, #0x20 - bne _020844FC -_02084510: - mov r0, r8 - bl SetIrqFlag - ldr r0, [sl] - mov r1, #0x60 - bl FUN_0207a2a4 - ldr r0, [sl] - ldr r1, [r0] - cmp r1, #4 - bne _02084548 - ldr r0, [sp] - sub r0, r0, #1 - str r0, [sp] - cmp r0, #0 - bgt _0208449C -_02084548: - cmp r1, #0 - moveq r0, #1 - movne r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_02084404 - - arm_func_start FUN_02084558 -FUN_02084558: @ 0x02084558 - push {r3, lr} - bl thunk_FUN_0207d9b0 - ldr r1, _0208457C @ =FUN_02084584 - mov r0, #0xe - bl FUN_0207dab0 - ldr r0, _02084580 @ =0x022BC040 - mov r1, #0 - str r1, [r0, #4] - pop {r3, pc} - .align 2, 0 -_0208457C: .4byte FUN_02084584 -_02084580: .4byte 0x022BC040 - arm_func_end FUN_02084558 - - arm_func_start FUN_02084584 -FUN_02084584: @ 0x02084584 - push {r3, lr} - and r0, r1, #0x3f - cmp r0, #0x11 - bne _020845CC - ldr r1, _020845D4 @ =0x022BC040 - ldr r0, [r1] - cmp r0, #0 - popne {r3, pc} - mov r0, #1 - str r0, [r1] - ldr r1, [r1, #4] - cmp r1, #0 - beq _020845BC - blx r1 -_020845BC: - cmp r0, #0 - popeq {r3, pc} - bl FUN_020845f8 - pop {r3, pc} -_020845CC: - bl WaitForever2 - pop {r3, pc} - .align 2, 0 -_020845D4: .4byte 0x022BC040 - arm_func_end FUN_02084584 -_020845D8: - .byte 0x04, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0x81, 0xE5 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x40, 0xC0, 0x2B, 0x02 - - arm_func_start FUN_020845e8 -FUN_020845e8: @ 0x020845E8 - ldr r0, _020845F4 @ =0x022BC040 - ldr r0, [r0] - bx lr - .align 2, 0 -_020845F4: .4byte 0x022BC040 - arm_func_end FUN_020845e8 - - arm_func_start FUN_020845f8 -FUN_020845f8: @ 0x020845F8 - push {r3, r4, r5, lr} - mov r0, #0 - mov r5, #1 - bl FUN_0207c164 - mov r0, r5 - bl FUN_0207c164 - mov r0, #2 - bl FUN_0207c164 - mov r0, #3 - bl FUN_0207c164 - ldr r0, _0208467C @ =0x027FFFA8 - ldrh r0, [r0] - and r0, r0, #0x8000 - asrs r0, r0, #0xf - beq _02084660 - bl FUN_0208200c - cmp r0, #4 - bne _02084658 - ldr r4, _02084680 @ =0x000A3A47 -_02084644: - mov r0, r4 - bl _0207B854 - bl FUN_0208200c - cmp r0, #4 - beq _02084644 -_02084658: - cmp r0, #0 - moveq r5, #0 -_02084660: - cmp r5, #0 - beq _02084674 - mov r0, #1 - mov r1, r0 - bl FUN_020846e4 -_02084674: - bl WaitForever2 - pop {r3, r4, r5, pc} - .align 2, 0 -_0208467C: .4byte 0x027FFFA8 -_02084680: .4byte 0x000A3A47 - arm_func_end FUN_020845f8 - - arm_func_start FUN_02084684 -FUN_02084684: @ 0x02084684 - push {r3, r4, lr} - sub sp, sp, #4 - ldr r2, _020846E0 @ =0x027FFC10 - ldrh r1, [r2] - cmp r1, #0 - subeq r1, r2, #0x410 - subne r1, r2, #0x10 - ldr r1, [r1] - str r1, [sp] - ldr r1, [sp] - cmp r0, r1 - addeq sp, sp, #4 - popeq {r3, r4, pc} - bl EnableIrqFlag +_022E6080: + bl ov00_022EC1C0 mov r4, r0 - mov r0, #0xe - mov r1, #0x11 - mov r2, #0 - bl FUN_02084584 - mov r0, r4 - bl SetIrqFlag - add sp, sp, #4 - pop {r3, r4, pc} - .align 2, 0 -_020846E0: .4byte 0x027FFC10 - arm_func_end FUN_02084684 - - arm_func_start FUN_020846e4 -FUN_020846e4: @ 0x020846E4 - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r1 - mov r1, r7 - mov r0, #0xe - mov r2, #0 - bl FUN_0207db20 - cmp r0, #0 - popeq {r3, r4, r5, r6, r7, pc} - mov r5, #0xe - mov r4, #0 -_02084710: - mov r0, r6 - blx FUN_02000088 - mov r0, r5 - mov r1, r7 - mov r2, r4 - bl FUN_0207db20 - cmp r0, #0 - bne _02084710 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_020846e4 - - arm_func_start FUN_02084734 -FUN_02084734: @ 0x02084734 - push {r3, lr} - ldr r1, _02084760 @ =0x022BC04C - mov r3, #0 - ldr r2, _02084764 @ =0x05000001 - add r0, sp, #0 - str r3, [sp] - blx FUN_0200078E - bl FUN_0207902c - ldr r1, _02084768 @ =0x022BC048 - strh r0, [r1, #6] - pop {r3, pc} - .align 2, 0 -_02084760: .4byte 0x022BC04C -_02084764: .4byte 0x05000001 -_02084768: .4byte 0x022BC048 - arm_func_end FUN_02084734 - - arm_func_start FUN_0208476c -FUN_0208476c: @ 0x0208476C - push {r3, lr} - bl FUN_020847ac - cmp r0, #0 - beq _0208478C - bl FUN_02084794 - cmp r0, #0 - moveq r0, #1 - popeq {r3, pc} -_0208478C: - mov r0, #0 - pop {r3, pc} - arm_func_end FUN_0208476c - - arm_func_start FUN_02084794 -FUN_02084794: @ 0x02084794 - ldr r0, _020847A8 @ =0x027FFC30 - ldrb r0, [r0, #5] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - bx lr - .align 2, 0 -_020847A8: .4byte 0x027FFC30 - arm_func_end FUN_02084794 - - arm_func_start FUN_020847ac -FUN_020847ac: @ 0x020847AC - push {r4, lr} - sub sp, sp, #0x10 - ldr r2, _020848AC @ =0x027FFC30 - mov r4, #1 - ldrh r1, [r2] - rsb r0, r4, #0x10000 - cmp r1, r0 - addeq sp, sp, #0x10 - moveq r0, #0 - popeq {r4, pc} - ldrb r0, [r2, #5] - lsl r0, r0, #0x1e - lsr r0, r0, #0x1f - cmp r0, #1 - addeq sp, sp, #0x10 - moveq r0, #0 - popeq {r4, pc} - ldr r0, _020848B0 @ =0x022BC048 - add r1, sp, #8 - ldrh r0, [r0, #6] - bl FUN_02084934 - add r0, sp, #0 - bl FUN_020848b8 - mov r0, #0x8000000 - ldrb r2, [r0, #0xb2] - cmp r2, #0x96 - bne _0208482C - ldr r1, _020848AC @ =0x027FFC30 - ldrh r0, [r0, #0xbe] - ldrh r1, [r1] - cmp r1, r0 - bne _02084874 -_0208482C: - cmp r2, #0x96 - beq _0208484C - ldr r1, _020848AC @ =0x027FFC30 - ldr r0, _020848B4 @ =0x0801FFFE - ldrh r1, [r1] - ldrh r0, [r0] - cmp r1, r0 - bne _02084874 -_0208484C: - ldr r2, _020848AC @ =0x027FFC30 - mov r0, #0x8000000 - ldr r1, [r2, #8] - ldr r0, [r0, #0xac] - cmp r1, r0 - beq _02084888 - ldrb r0, [r2, #5] - lsl r0, r0, #0x1f - lsrs r0, r0, #0x1f - beq _02084888 -_02084874: - ldr r1, _020848AC @ =0x027FFC30 - mov r4, #0 - ldrb r0, [r1, #5] - orr r0, r0, #2 - strb r0, [r1, #5] -_02084888: - add r0, sp, #0 - bl FUN_02084900 - ldr r0, _020848B0 @ =0x022BC048 - add r1, sp, #8 - ldrh r0, [r0, #6] - bl FUN_02084990 - mov r0, r4 - add sp, sp, #0x10 - pop {r4, pc} - .align 2, 0 -_020848AC: .4byte 0x027FFC30 -_020848B0: .4byte 0x022BC048 -_020848B4: .4byte 0x0801FFFE - arm_func_end FUN_020847ac - - arm_func_start FUN_020848b8 -FUN_020848b8: @ 0x020848B8 - ldr r2, _020848FC @ =0x04000204 - ldrh r1, [r2] - and r1, r1, #0xc - asr r1, r1, #2 - str r1, [r0] - ldrh r1, [r2] - and r1, r1, #0x10 - asr r1, r1, #4 - str r1, [r0, #4] - ldrh r0, [r2] - bic r0, r0, #0xc - orr r0, r0, #0xc - strh r0, [r2] - ldrh r0, [r2] - bic r0, r0, #0x10 - strh r0, [r2] - bx lr - .align 2, 0 -_020848FC: .4byte 0x04000204 - arm_func_end FUN_020848b8 - - arm_func_start FUN_02084900 -FUN_02084900: @ 0x02084900 - ldr r3, _02084930 @ =0x04000204 - ldr r2, [r0] - ldrh r1, [r3] - bic r1, r1, #0xc - orr r1, r1, r2, lsl #2 - strh r1, [r3] - ldrh r1, [r3] - ldr r2, [r0, #4] - bic r0, r1, #0x10 - orr r0, r0, r2, lsl #4 - strh r0, [r3] - bx lr - .align 2, 0 -_02084930: .4byte 0x04000204 - arm_func_end FUN_02084900 - - arm_func_start FUN_02084934 -FUN_02084934: @ 0x02084934 - push {r3, r4, r5, r6, r7, lr} - ldr r5, _0208498C @ =0x027FFFE8 - mov r7, r0 - mov r6, r1 - mov r4, #1 -_02084948: - bl EnableIrqFlag - str r0, [r6, #4] - mov r0, r5 - bl FUN_02079024 - ands r0, r0, #0x40 - str r0, [r6] - popne {r3, r4, r5, r6, r7, pc} - mov r0, r7 - bl FUN_02078f6c - cmp r0, #0 - popeq {r3, r4, r5, r6, r7, pc} - ldr r0, [r6, #4] - bl SetIrqFlag - mov r0, r4 - blx FUN_02000088 - b _02084948 -_02084988: - .byte 0xF8, 0x80, 0xBD, 0xE8 -_0208498C: .4byte 0x027FFFE8 - arm_func_end FUN_02084934 - - arm_func_start FUN_02084990 -FUN_02084990: @ 0x02084990 - push {r4, lr} - mov r4, r1 - ldr r1, [r4] - cmp r1, #0 - bne _020849A8 - bl thunk_FUN_02078f40 -_020849A8: - ldr r0, [r4, #4] - bl SetIrqFlag - pop {r4, pc} - arm_func_end FUN_02084990 - - arm_func_start FUN_020849b4 -FUN_020849b4: @ 0x020849B4 - push {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r1, r7 - mov r0, #0xd - mov r2, #0 - bl FUN_0207db20 - cmp r0, #0 - popeq {r3, r4, r5, r6, r7, pc} - mov r6, #1 - mov r5, #0xd - mov r4, #0 -_020849E0: - mov r0, r6 - blx FUN_02000088 - mov r0, r5 - mov r1, r7 - mov r2, r4 - bl FUN_0207db20 - cmp r0, #0 - bne _020849E0 - pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_020849b4 - - arm_func_start FUN_02084a04 -FUN_02084a04: @ 0x02084A04 - push {r3, r4, r5, lr} - mov r5, r0 - bl EnableIrqFlag - ldr r1, _02084A48 @ =0x022BC048 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + add r0, r4, r0, lsl #2 + ldr r0, [r0, #0x210] + cmp r7, r0 + bne _022E60C4 + bl ov00_022EC1C0 mov r4, r0 - str r5, [r1] - bl FUN_0208476c - cmp r0, #0 - bne _02084A3C - cmp r5, #0 - movne r1, #0x1000 - moveq r1, #0x5000 - mov r0, #0xf000 - bl FUN_0207ab00 -_02084A3C: - mov r0, r4 - bl SetIrqFlag - pop {r3, r4, r5, pc} - .align 2, 0 -_02084A48: .4byte 0x022BC048 - arm_func_end FUN_02084a04 - - arm_func_start FUN_02084a4c -FUN_02084a4c: @ 0x02084A4C - push {r3, r4, r5, lr} - ldr r0, _02084AEC @ =0x022BC060 - ldr r1, [r0, #8] - cmp r1, #0 - popne {r3, r4, r5, pc} - mov r1, #1 - str r1, [r0, #8] - bl FUN_02084734 - ldr r0, _02084AEC @ =0x022BC060 - mov r1, #0 - str r1, [r0, #0xc] - bl thunk_FUN_0207d9b0 - mov r5, #0xd - mov r4, #1 -_02084A84: - mov r0, r5 - mov r1, r4 - bl FUN_0207dafc - cmp r0, #0 - beq _02084A84 - ldr r1, _02084AF0 @ =0x02084CF4 - mov r0, #0xd - bl FUN_0207dab0 - bl FUN_02084b00 - mov r0, #0xd - mov r1, #0 - bl FUN_0207dab0 - ldr r1, _02084AF4 @ =FUN_02084d20 - mov r0, #0xd - bl FUN_0207dab0 - ldr r1, _02084AEC @ =0x022BC060 - mov r2, #0 - ldr r0, _02084AF8 @ =0x022BC140 - str r2, [r1, #0x18] - bl FUN_02084da4 - ldr r1, _02084AFC @ =0x02084D90 - mov r0, #0x11 - bl FUN_0207dab0 - mov r0, #0 - bl FUN_02084a04 - pop {r3, r4, r5, pc} - .align 2, 0 -_02084AEC: .4byte 0x022BC060 -_02084AF0: .4byte 0x02084CF4 -_02084AF4: .4byte FUN_02084d20 -_02084AF8: .4byte 0x022BC140 -_02084AFC: .4byte 0x02084D90 - arm_func_end FUN_02084a4c - - arm_func_start FUN_02084b00 -FUN_02084b00: @ 0x02084B00 - push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0x10 - ldr r0, _02084CC8 @ =0x022BC060 - ldr r1, [r0] - cmp r1, #0 - addne sp, sp, #0x10 - popne {r3, r4, r5, r6, r7, pc} - ldr r1, _02084CCC @ =0x04000300 - mov r2, #1 - ldrh r1, [r1] - str r2, [r0] - tst r1, #1 - addeq sp, sp, #0x10 - popeq {r3, r4, r5, r6, r7, pc} - mov r0, #0x40000 - bl FUN_02078c3c - ldr r3, _02084CD0 @ =0x04000208 - mov r2, #1 - ldrh r5, [r3] - ldr r1, _02084CD4 @ =0x022BC04C - mov r4, r0 - strh r2, [r3] - ldrh r0, [r1, #2] - add r1, sp, #8 - bl FUN_02084934 - ldr r1, _02084CD8 @ =0x04000204 - add r0, sp, #0 - ldrh r1, [r1] - and r1, r1, #0x8000 - asr r6, r1, #0xf - bl FUN_020848b8 - ldr r3, _02084CD8 @ =0x04000204 - ldr r0, _02084CDC @ =0x022BC080 - ldrh r2, [r3] - add r0, r0, #0x80 - mov r1, #0x40 - bic r2, r2, #0x8000 - strh r2, [r3] - bl FUN_0207a2a4 - ldr r2, _02084CDC @ =0x022BC080 - ldr r1, _02084CE0 @ =0x08000080 - mov r0, #1 - mov r3, #0x40 - add r2, r2, #0x80 - bl FUN_0207bd3c - ldr r2, _02084CD8 @ =0x04000204 - add r0, sp, #0 - ldrh r1, [r2] - bic r1, r1, #0x8000 - orr r1, r1, r6, lsl #15 - strh r1, [r2] - bl FUN_02084900 - ldr r0, _02084CD4 @ =0x022BC04C - add r1, sp, #8 - ldrh r0, [r0, #2] - bl FUN_02084990 - ldr r1, _02084CE4 @ =0x027FFF9B - ldrb r0, [r1] - cmp r0, #0 - bne _02084BFC - ldrb r0, [r1, #-1] - cmp r0, #0 - bne _02084C60 -_02084BFC: - ldr r3, _02084CDC @ =0x022BC080 - ldr r6, _02084CE8 @ =0x027FFC30 - ldrh r0, [r3, #0xbe] - mov r2, #0 - strh r0, [r6] - b _02084C28 -_02084C14: - add r0, r3, r2 - ldrb r1, [r0, #0xb5] - add r0, r6, r2 - add r2, r2, #1 - strb r1, [r0, #2] -_02084C28: - cmp r2, #3 - blt _02084C14 - ldrh r0, [r3, #0xb0] - strh r0, [r6, #6] - ldr r0, [r3, #0xac] - str r0, [r6, #8] - bl FUN_020847ac - cmp r0, #0 - movne r2, #1 - ldr r1, _02084CE4 @ =0x027FFF9B - moveq r2, #0 - mov r0, #1 - strb r2, [r1] - strb r0, [r1, #-1] -_02084C60: - ldr r0, _02084CEC @ =0xFFFF0020 - ldr r1, _02084CF0 @ =0x022BC084 - mov r2, #0x9c - bl FUN_0207c330 - bl FUN_0207a270 - ldr r0, _02084CDC @ =0x022BC080 - add r0, r0, #0xfe000000 - lsr r0, r0, #5 - lsl r0, r0, #6 - orr r0, r0, #1 - bl FUN_020849b4 - mov r7, #1 - ldr r6, _02084CD4 @ =0x022BC04C - b _02084CA0 -_02084C98: - mov r0, r7 - blx FUN_02000088 -_02084CA0: - ldrh r0, [r6] - cmp r0, #1 - bne _02084C98 - ldr r2, _02084CD0 @ =0x04000208 - mov r0, r4 - ldrh r1, [r2] - strh r5, [r2] - bl FUN_02078c3c - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02084CC8: .4byte 0x022BC060 -_02084CCC: .4byte 0x04000300 -_02084CD0: .4byte 0x04000208 -_02084CD4: .4byte 0x022BC04C -_02084CD8: .4byte 0x04000204 -_02084CDC: .4byte 0x022BC080 -_02084CE0: .4byte 0x08000080 -_02084CE4: .4byte 0x027FFF9B -_02084CE8: .4byte 0x027FFC30 -_02084CEC: .4byte 0xFFFF0020 -_02084CF0: .4byte 0x022BC084 - arm_func_end FUN_02084b00 -_02084CF4: - .byte 0x08, 0x40, 0x2D, 0xE9, 0x3F, 0x00, 0x01, 0xE2, 0x01, 0x00, 0x50, 0xE3 - .byte 0x03, 0x00, 0x00, 0x1A, 0x10, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0xB0, 0x10, 0xC0, 0xE1 - .byte 0x08, 0x80, 0xBD, 0xE8, 0xC1, 0xDB, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x4C, 0xC0, 0x2B, 0x02 - - arm_func_start FUN_02084d20 -FUN_02084d20: @ 0x02084D20 - push {r3, lr} - and r0, r1, #0x3f - cmp r0, #0x11 - bne _02084D70 - ldr r0, _02084D78 @ =0x022BC060 - ldr r1, [r0, #0xc] - cmp r1, #0 - popne {r3, pc} - ldr r1, [r0, #0x18] - mov r0, #0 - cmp r1, #0 - beq _02084D54 - blx r1 -_02084D54: - cmp r0, #0 - beq _02084D60 - bl FUN_02084d7c -_02084D60: - ldr r0, _02084D78 @ =0x022BC060 - mov r1, #1 - str r1, [r0, #0xc] - pop {r3, pc} -_02084D70: - bl WaitForever2 - pop {r3, pc} - .align 2, 0 -_02084D78: .4byte 0x022BC060 - arm_func_end FUN_02084d20 - - arm_func_start FUN_02084d7c -FUN_02084d7c: @ 0x02084D7C - push {r3, lr} - mov r0, #2 - bl FUN_020849b4 - bl WaitForever2 - pop {r3, pc} - arm_func_end FUN_02084d7c -_02084D90: - .byte 0x08, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x60, 0xC0, 0x2B, 0x02 - - arm_func_start FUN_02084da4 -FUN_02084da4: @ 0x02084DA4 - push {r3, r4, r5, lr} - sub sp, sp, #8 - mov r5, r0 - bl EnableIrqFlag - ldr r1, _02084E20 @ =0x022BC228 - mov r4, r0 - ldr r0, [r1] - cmp r0, #0 - bne _02084E10 - add r0, r5, #0xc4 - str r5, [r1] - bl FUN_02084e30 - ldr r0, _02084E24 @ =0x022BC22C - bl FUN_02084e30 - mov r0, #0 - str r0, [r5, #0xc0] - mov r2, #0x400 - ldr r1, _02084E28 @ =0x02084E44 - ldr r3, _02084E2C @ =0x022BC650 - mov r0, r5 - str r2, [sp] - mov r2, #0x14 - str r2, [sp, #4] - mov r2, r5 - bl FUN_02079560 - mov r0, r5 - bl FUN_02079940 -_02084E10: - mov r0, r4 - bl SetIrqFlag - add sp, sp, #8 - pop {r3, r4, r5, pc} - .align 2, 0 -_02084E20: .4byte 0x022BC228 -_02084E24: .4byte 0x022BC22C -_02084E28: .4byte 0x02084E44 -_02084E2C: .4byte 0x022BC650 - arm_func_end FUN_02084da4 - - arm_func_start FUN_02084e30 -FUN_02084e30: @ 0x02084E30 - ldr ip, _02084E40 @ =FUN_0207c40c - mov r1, #0 - mov r2, #0x24 - bx ip - .align 2, 0 -_02084E40: .4byte FUN_0207c40c - arm_func_end FUN_02084e30 -_02084E44: - .byte 0xF0, 0x4F, 0x2D, 0xE9, 0x24, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE3 - .byte 0x00, 0x80, 0xA0, 0xE1, 0x00, 0x60, 0x8D, 0xE2, 0x04, 0xA0, 0xA0, 0xE1, 0x04, 0x90, 0xA0, 0xE1 - .byte 0x04, 0x50, 0xA0, 0xE1, 0x24, 0xB0, 0xA0, 0xE3, 0x06, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1 - .byte 0x0B, 0x20, 0xA0, 0xE1, 0x64, 0xDD, 0xFF, 0xEB, 0x59, 0xDA, 0xFF, 0xEB, 0xC0, 0x10, 0x98, 0xE5 - .byte 0x00, 0x70, 0xA0, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0x04, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x7C, 0xD2, 0xFF, 0xEB, 0xC0, 0x00, 0x98, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xFA, 0xFF, 0xFF, 0x0A - .byte 0xC0, 0xE0, 0x98, 0xE5, 0x00, 0xC0, 0x8D, 0xE2, 0x0F, 0x00, 0xBE, 0xE8, 0x0F, 0x00, 0xAC, 0xE8 - .byte 0x0F, 0x00, 0xBE, 0xE8, 0x0F, 0x00, 0xAC, 0xE8, 0x00, 0x10, 0x9E, 0xE5, 0x07, 0x00, 0xA0, 0xE1 - .byte 0x00, 0x10, 0x8C, 0xE5, 0x4B, 0xDA, 0xFF, 0xEB, 0x00, 0x10, 0x9D, 0xE5, 0x00, 0x00, 0x51, 0xE3 - .byte 0x02, 0x00, 0x00, 0x0A, 0x06, 0x00, 0xA0, 0xE1, 0x31, 0xFF, 0x2F, 0xE1, 0x08, 0x00, 0x8D, 0xE5 - .byte 0x3F, 0xDA, 0xFF, 0xEB, 0x04, 0x20, 0x9D, 0xE5, 0x40, 0x10, 0x9F, 0xE5, 0x00, 0x70, 0xA0, 0xE1 - .byte 0x26, 0xA0, 0xC1, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x06, 0x00, 0xA0, 0xE1 - .byte 0x32, 0xFF, 0x2F, 0xE1, 0x24, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x03, 0x00, 0x00, 0x0A, 0x07, 0x00, 0xA0, 0xE1, 0xC0, 0x90, 0x88, 0xE5, 0x35, 0xDA, 0xFF, 0xEB - .byte 0xD0, 0xFF, 0xFF, 0xEA, 0xCC, 0xD1, 0xFF, 0xEB, 0x24, 0xD0, 0x8D, 0xE2, 0xF0, 0x8F, 0xBD, 0xE8 - .byte 0x28, 0xC2, 0x2B, 0x02, 0x30, 0x10, 0x9F, 0xE5, 0x30, 0x20, 0x9F, 0xE5, 0xA0, 0x10, 0x01, 0xE0 - .byte 0x01, 0x00, 0x40, 0xE0, 0x02, 0x10, 0x00, 0xE0, 0x20, 0x01, 0x02, 0xE0, 0x00, 0x10, 0x81, 0xE0 - .byte 0x1C, 0x00, 0x9F, 0xE5, 0x21, 0x12, 0x81, 0xE0, 0x00, 0x00, 0x01, 0xE0, 0x20, 0x04, 0x80, 0xE0 - .byte 0x20, 0x08, 0x80, 0xE0, 0xFF, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x55, 0x55, 0x55, 0x55 - .byte 0x33, 0x33, 0x33, 0x33, 0x0F, 0x0F, 0x0F, 0x0F, 0x70, 0x40, 0x2D, 0xE9, 0x68, 0xD0, 0x4D, 0xE2 - .byte 0x00, 0x60, 0xA0, 0xE1, 0x00, 0x00, 0x8D, 0xE2, 0x01, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1 - .byte 0xB6, 0xED, 0xFF, 0xEB, 0x00, 0x00, 0x8D, 0xE2, 0x05, 0x10, 0xA0, 0xE1, 0x04, 0x20, 0xA0, 0xE1 - .byte 0xC6, 0xED, 0xFF, 0xEB, 0x00, 0x00, 0x8D, 0xE2, 0x06, 0x10, 0xA0, 0xE1, 0x18, 0xEE, 0xFF, 0xEB - .byte 0x68, 0xD0, 0x8D, 0xE2, 0x70, 0x80, 0xBD, 0xE8, 0x08, 0x40, 0x2D, 0xE9, 0x00, 0xC0, 0xA0, 0xE3 - .byte 0x0C, 0x20, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE1, 0x02, 0xE0, 0xA0, 0xE1, 0x80, 0x00, 0x13, 0xE3 - .byte 0x83, 0x30, 0x21, 0x10, 0x01, 0xE0, 0x8E, 0xE2, 0x83, 0x30, 0xA0, 0x01, 0x08, 0x00, 0x5E, 0xE3 - .byte 0xF9, 0xFF, 0xFF, 0x3A, 0x0C, 0x30, 0xC0, 0xE7, 0x01, 0xC0, 0x8C, 0xE2, 0x01, 0x0C, 0x5C, 0xE3 - .byte 0xF3, 0xFF, 0xFF, 0x3A, 0x08, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_02084ff8 -FUN_02084ff8: @ 0x02084FF8 - push {r4, lr} - cmp r3, #0 - ldrb lr, [r1] - mov r4, #0 - bls _02085028 -_0208500C: - ldrb ip, [r2], #1 - add r4, r4, #1 - cmp r4, r3 - eor ip, lr, ip - and ip, ip, #0xff - ldrb lr, [r0, ip] - blo _0208500C -_02085028: - strb lr, [r1] - pop {r4, pc} - arm_func_end FUN_02084ff8 - - arm_func_start FUN_02085030 -FUN_02085030: @ 0x02085030 - push {r3, lr} - mov lr, #0 - mov r3, lr -_0208503C: - mov ip, lr - mov r2, r3 -_02085044: - tst ip, #1 - eorne ip, r1, ip, lsr #1 - add r2, r2, #1 - lsreq ip, ip, #1 - cmp r2, #8 - blo _02085044 - lsl r2, lr, #1 - add lr, lr, #1 - strh ip, [r0, r2] - cmp lr, #0x100 - blo _0208503C - pop {r3, pc} - arm_func_end FUN_02085030 - - arm_func_start FUN_02085074 -FUN_02085074: @ 0x02085074 - push {r4, lr} - cmp r3, #0 - ldrh lr, [r1] - mov r4, #0 - bls _020850AC -_02085088: - ldrb ip, [r2], #1 - add r4, r4, #1 - cmp r4, r3 - eor ip, lr, ip - lsl ip, ip, #0x18 - lsr ip, ip, #0x17 - ldrh ip, [r0, ip] - eor lr, ip, lr, lsr #8 - blo _02085088 -_020850AC: - strh lr, [r1] - pop {r4, pc} - arm_func_end FUN_02085074 - - arm_func_start FUN_020850b4 -FUN_020850b4: @ 0x020850B4 - push {r3, lr} - mov ip, #0 - mov r2, ip -_020850C0: - mov r3, ip - mov lr, r2 -_020850C8: - tst r3, #1 - eorne r3, r1, r3, lsr #1 - add lr, lr, #1 - lsreq r3, r3, #1 - cmp lr, #8 - blo _020850C8 - str r3, [r0, ip, lsl #2] - add ip, ip, #1 - cmp ip, #0x100 - blo _020850C0 - pop {r3, pc} - arm_func_end FUN_020850b4 - - arm_func_start FUN_020850f4 -FUN_020850f4: @ 0x020850F4 - push {r4, lr} - cmp r3, #0 - ldr lr, [r1] - mov r4, #0 - bls _02085128 -_02085108: - ldrb ip, [r2], #1 - add r4, r4, #1 - cmp r4, r3 - eor ip, lr, ip - and ip, ip, #0xff - ldr ip, [r0, ip, lsl #2] - eor lr, ip, lr, lsr #8 - blo _02085108 -_02085128: - str lr, [r1] - pop {r4, pc} - arm_func_end FUN_020850f4 - - arm_func_start FUN_02085130 -FUN_02085130: @ 0x02085130 - push {r3, lr} - mov lr, r1 - mov ip, #0 - mov r3, r2 - add r1, sp, #0 - mov r2, lr - strb ip, [sp] - bl FUN_02084ff8 - ldrb r0, [sp] - pop {r3, pc} - arm_func_end FUN_02085130 - - arm_func_start FUN_02085158 -FUN_02085158: @ 0x02085158 - push {r3, lr} - mov lr, r1 - mov ip, #0 - mov r3, r2 - add r1, sp, #0 - mov r2, lr - strh ip, [sp] - bl FUN_02085074 - ldrh r0, [sp] - pop {r3, pc} - arm_func_end FUN_02085158 - - arm_func_start FUN_02085180 -FUN_02085180: @ 0x02085180 - push {r3, lr} - mov lr, r1 - mvn ip, #0 - mov r3, r2 - add r1, sp, #0 - mov r2, lr - str ip, [sp] - bl FUN_020850f4 - ldr r0, [sp] - mvn r0, r0 - pop {r3, pc} - arm_func_end FUN_02085180 - - arm_func_start FUN_020851ac -FUN_020851ac: @ 0x020851AC - push {r4, lr} - sub sp, sp, #8 - movs r4, r0 - addeq sp, sp, #8 - moveq r0, #0 - popeq {r4, pc} - ldrh r0, [r4, #0x3c] - cmp r0, #0 - addeq sp, sp, #8 - moveq r0, #0 - popeq {r4, pc} - add r1, sp, #0 - add r0, r4, #0x50 - mov r2, #8 - bl FUN_0207c4c8 - add r0, sp, #0 - mov r1, #8 - bl FUN_0207a2c0 - ldr r0, [r4, #0x44] - cmp r0, #0 - bne _02085230 - ldrh r1, [sp] - ldr r0, _0208523C @ =0x00002348 - cmp r1, r0 - ldrhne r1, [sp] - ldrne r0, _02085240 @ =0x0000BD8A - cmpne r1, r0 - bne _02085230 - ldrh r0, [sp, #6] - cmp r0, #4 - addeq sp, sp, #8 - moveq r0, #1 - popeq {r4, pc} -_02085230: - mov r0, #0 - add sp, sp, #8 - pop {r4, pc} - .align 2, 0 -_0208523C: .4byte 0x00002348 -_02085240: .4byte 0x0000BD8A - arm_func_end FUN_020851ac -_02085244: - .byte 0x10, 0x40, 0x2D, 0xE9, 0x01, 0xC0, 0x42, 0xE2, 0x01, 0x40, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x5C, 0xE3, 0x00, 0xE0, 0xA0, 0xE3, 0x08, 0x00, 0x00, 0xDA, 0xD0, 0x30, 0xD4, 0xE1 - .byte 0x0E, 0x30, 0xC0, 0xE7, 0xD0, 0x30, 0xD4, 0xE1, 0x00, 0x00, 0x53, 0xE3, 0x03, 0x00, 0x00, 0x0A - .byte 0x01, 0xE0, 0x8E, 0xE2, 0x0C, 0x00, 0x5E, 0xE1, 0x01, 0x40, 0x84, 0xE2, 0xF6, 0xFF, 0xFF, 0xBA - .byte 0x01, 0x30, 0x42, 0xE2, 0x03, 0x00, 0x5E, 0xE1, 0x02, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x52, 0xE3 - .byte 0x00, 0x20, 0xA0, 0x13, 0x0E, 0x20, 0xC0, 0x17, 0x01, 0x00, 0xA0, 0xE1, 0x00, 0x00, 0x00, 0xEB - .byte 0x10, 0x80, 0xBD, 0xE8, 0xD0, 0x10, 0xD0, 0xE1, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x00, 0x51, 0xE3 - .byte 0x03, 0x00, 0x00, 0x0A, 0x01, 0x20, 0x82, 0xE2, 0xD2, 0x10, 0x90, 0xE1, 0x00, 0x00, 0x51, 0xE3 - .byte 0xFB, 0xFF, 0xFF, 0x1A, 0x02, 0x00, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x00, 0x00, 0xEA - .byte 0x01, 0x00, 0x80, 0xE2, 0x01, 0x10, 0x81, 0xE2, 0xD0, 0x30, 0xD1, 0xE1, 0xD0, 0x20, 0xD0, 0xE1 - .byte 0x03, 0x00, 0x52, 0xE1, 0x01, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x52, 0xE3, 0xF7, 0xFF, 0xFF, 0x1A - .byte 0x03, 0x00, 0x42, 0xE0, 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x40, 0x2D, 0xE9, 0x00, 0x00, 0x52, 0xE3 - .byte 0x0A, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x52, 0xE3, 0x00, 0xE0, 0xA0, 0xE3, 0x07, 0x00, 0x00, 0xDA - .byte 0x0E, 0xC0, 0xD0, 0xE7, 0x0E, 0x30, 0xD1, 0xE7, 0x03, 0x00, 0x5C, 0xE1, 0x03, 0x00, 0x4C, 0x10 - .byte 0x08, 0x80, 0xBD, 0x18, 0x01, 0xE0, 0x8E, 0xE2, 0x02, 0x00, 0x5E, 0xE1, 0xF7, 0xFF, 0xFF, 0xBA - .byte 0x00, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8, 0x0F, 0x00, 0x2D, 0xE9, 0x08, 0x40, 0x2D, 0xE9 - .byte 0x0C, 0x20, 0x8D, 0xE2, 0x03, 0x20, 0xC2, 0xE3, 0x0C, 0x10, 0x9D, 0xE5, 0x04, 0x20, 0x82, 0xE2 - .byte 0x21, 0x00, 0x00, 0xEB, 0x08, 0x40, 0xBD, 0xE8, 0x10, 0xD0, 0x8D, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_02085360 -FUN_02085360: @ 0x02085360 - sub r3, r0, #9 - cmp r3, #0x17 - mov r0, #0 - bxhi lr - ldr r1, _02085384 @ =0x0080001F - mov r2, #1 - tst r1, r2, lsl r3 - movne r0, r2 - bx lr - .align 2, 0 -_02085384: .4byte 0x0080001F - arm_func_end FUN_02085360 - - arm_func_start FUN_02085388 -FUN_02085388: @ 0x02085388 - push {r3, r4, r5, lr} - cmp r1, r2 - pophs {r3, r4, r5, pc} - and r3, r2, #0x1f - mov ip, #1 - lsl r3, ip, r3 - sub r5, r3, #1 - mvn ip, #0 -_020853A8: - and r3, r1, #0x1f - lsr lr, r1, #5 - lsl r4, ip, r3 - add r1, lr, #1 - cmp r2, r1, lsl #5 - ldr r3, [r0, lr, lsl #2] - andlo r4, r4, r5 - lsl r1, r1, #5 - orr r3, r3, r4 - cmp r1, r2 - str r3, [r0, lr, lsl #2] - blo _020853A8 - pop {r3, r4, r5, pc} - arm_func_end FUN_02085388 - - arm_func_start FUN_020853dc -FUN_020853dc: @ 0x020853DC - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x34 - mov r8, r1 - ldrsb r4, [r8] - mov sb, r0 - mov r0, #0 - str r0, [sp, #0xc] - str r2, [sp] - str sb, [sp, #0x10] - str r0, [sp, #4] - cmp r4, #0 - beq _02085AD4 -_0208540C: - mov r0, r4 - bl FUN_02085360 - cmp r0, #0 - beq _02085460 - ldrsb r0, [r8] - bl FUN_02085360 - cmp r0, #0 - beq _0208543C -_0208542C: - ldrsb r0, [r8, #1]! - bl FUN_02085360 - cmp r0, #0 - bne _0208542C -_0208543C: - ldrsb r0, [sb] - bl FUN_02085360 - cmp r0, #0 - beq _02085AC8 -_0208544C: - ldrsb r0, [sb, #1]! - bl FUN_02085360 - cmp r0, #0 - bne _0208544C - b _02085AC8 -_02085460: - cmp r4, #0x25 - beq _020854A0 - ldrsb r0, [sb] - cmp r4, r0 - bne _02085AD4 - and r0, r4, #0xff - eor r0, r0, #0x20 - sub r0, r0, #0xa1 - cmp r0, #0x3c - bhs _02085494 - ldrsb r0, [sb, #1]! - cmp r4, r0 - bne _02085AD4 -_02085494: - add sb, sb, #1 - add r8, r8, #1 - b _02085AC8 -_020854A0: - ldrsb r0, [r8, #1] - cmp r0, #0x25 - bne _020854C0 - ldrsb r0, [sb] - cmp r4, r0 - bne _02085AD4 - add r8, r8, #2 - b _02085AC8 -_020854C0: - ldrsb r0, [r8, #1]! - mov sl, #0 - mov r5, sl - cmp r0, #0x2a - mov fp, sl - mov r6, sl - orreq r5, sl, #0x2000 - ldrsbeq r0, [r8, #1]! - mov r1, #0xa - b _020854F4 -_020854E8: - mla r2, r6, r1, r0 - ldrsb r0, [r8, #1]! - sub r6, r2, #0x30 -_020854F4: - cmp r0, #0x30 - blt _02085504 - cmp r0, #0x39 - ble _020854E8 -_02085504: - cmp r0, #0x68 - beq _02085518 - cmp r0, #0x6c - beq _02085530 - b _02085544 -_02085518: - ldrsb r0, [r8, #1]! - cmp r0, #0x68 - orrne r5, r5, #0x40 - orreq r5, r5, #0x100 - ldrsbeq r0, [r8, #1]! - b _02085544 -_02085530: - ldrsb r0, [r8, #1]! - cmp r0, #0x6c - orrne r5, r5, #0x20 - ldrsbeq r0, [r8, #1]! - orreq r5, r5, #0x80 -_02085544: - cmp r0, #0x69 - bgt _02085590 - cmp r0, #0x64 - blt _02085564 - beq _020855D8 - cmp r0, #0x69 - beq _020855E0 - b _02085AD4 -_02085564: - cmp r0, #0x5b - bgt _02085584 - cmp r0, #0x58 - blt _02085AD4 - beq _020855FC - cmp r0, #0x5b - beq _020858D0 - b _02085AD4 -_02085584: - cmp r0, #0x63 - beq _020857D8 - b _02085AD4 -_02085590: - cmp r0, #0x6e - bgt _020855A0 - beq _02085608 - b _02085AD4 -_020855A0: - sub r1, r0, #0x6f - cmp r1, #9 - addls pc, pc, r1, lsl #2 - b _02085AD4 -_020855B0: @ jump table - b _020855E8 @ case 0 - b _020855FC @ case 1 - b _02085AD4 @ case 2 - b _02085AD4 @ case 3 - b _020857D8 @ case 4 - b _02085AD4 @ case 5 - b _020855F0 @ case 6 - b _02085AD4 @ case 7 - b _02085AD4 @ case 8 - b _020855FC @ case 9 -_020855D8: - mov r4, #0xa - b _0208562C -_020855E0: - mvn r4, #0 - b _0208562C -_020855E8: - mov r4, #8 - b _0208562C -_020855F0: - orr r5, r5, #0x1000 - mov r4, #0xa - b _0208562C -_020855FC: - orr r5, r5, #0x1000 - mov r4, #0x10 - b _0208562C -_02085608: - tst r5, #0x2000 - ldreq r0, [sp, #4] - add r8, r8, #1 - subeq r0, r0, #1 - streq r0, [sp, #4] - ldr r0, [sp, #0x10] - sub sl, sb, r0 - asr fp, sl, #0x1f - b _0208574C -_0208562C: - ldrsb r7, [sb] - add r8, r8, #1 - mov r0, r7 - bl FUN_02085360 - cmp r0, #0 - beq _02085658 -_02085644: - ldrsb r7, [sb, #1]! - mov r0, r7 - bl FUN_02085360 - cmp r0, #0 - bne _02085644 -_02085658: - cmp r7, #0x2b - orreq r5, r5, #2 - beq _02085670 - cmp r7, #0x2d - bne _02085678 - orr r5, r5, #8 -_02085670: - ldrsb r7, [sb, #1]! - b _02085658 -_02085678: - mvn r0, #0 - cmp r4, r0 - bne _020856A4 - cmp r7, #0x30 - movne r4, #0xa - bne _020856A4 - ldrsb r0, [sb, #1] - cmp r0, #0x78 - cmpne r0, #0x58 - moveq r4, #0x10 - movne r4, #8 -_020856A4: - cmp r4, #0x10 - cmpeq r7, #0x30 - bne _020856C0 - ldrsb r0, [sb, #1] - cmp r0, #0x78 - cmpne r0, #0x58 - ldrsbeq r7, [sb, #2]! -_020856C0: - cmp r6, #0 - mvneq r6, #0x80000000 - cmp r6, #0 - mov r2, #0 - ble _0208572C - asr ip, r4, #0x1f -_020856D8: - sub r3, r7, #0x30 - cmp r3, #0xa - blo _02085700 - sub r0, r3, #0x31 - cmp r0, #6 - sublo r3, r3, #0x27 - blo _02085700 - sub r3, r3, #0x11 - cmp r3, #6 - addlo r3, r3, #0xa -_02085700: - cmp r3, r4 - bhs _0208572C - ldrsb r7, [sb, #1]! - add r2, r2, #1 - umull r1, r0, sl, r4 - mla r0, sl, ip, r0 - adds sl, r3, r1 - mla r0, fp, r4, r0 - adc fp, r0, #0 - cmp r2, r6 - blt _020856D8 -_0208572C: - cmp r2, #0 - beq _02085AD4 - tst r5, #8 - beq _02085744 - rsbs sl, sl, #0 - rsc fp, fp, #0 -_02085744: - mov r0, #1 - str r0, [sp, #0xc] -_0208574C: - tst r5, #0x2000 - bne _02085AC8 - ldr r0, [sp, #4] - tst r5, #0x100 - add r0, r0, #1 - str r0, [sp, #4] - beq _02085780 - ldr r0, [sp] - add r0, r0, #4 - str r0, [sp] - ldr r0, [r0, #-4] - strb sl, [r0] - b _02085AC8 -_02085780: - tst r5, #0x40 - beq _020857A0 - ldr r0, [sp] - add r0, r0, #4 - str r0, [sp] - ldr r0, [r0, #-4] - strh sl, [r0] - b _02085AC8 -_020857A0: - tst r5, #0x80 - beq _020857C0 - ldr r0, [sp] - add r0, r0, #4 - str r0, [sp] - ldr r0, [r0, #-4] - stm r0, {sl, fp} - b _02085AC8 -_020857C0: - ldr r0, [sp] - add r0, r0, #4 - str r0, [sp] - ldr r0, [r0, #-4] - str sl, [r0] - b _02085AC8 -_020857D8: - mov r1, #1 - tst r5, #0x2000 - add r8, r8, #1 - mov r4, #0 - str r1, [sp, #0xc] - bne _0208580C - ldr r1, [sp] - add r1, r1, #4 - str r1, [sp] - ldr r4, [r1, #-4] - ldr r1, [sp, #4] - add r1, r1, #1 - str r1, [sp, #4] -_0208580C: - cmp r0, #0x73 - bne _02085888 - ldrsb r5, [sb] - cmp r6, #0 - mvneq r6, #0x80000000 - mov r0, r5 - bl FUN_02085360 - cmp r0, #0 - beq _02085858 -_02085830: - ldrsb r5, [sb, #1]! - mov r0, r5 - bl FUN_02085360 - cmp r0, #0 - bne _02085830 - b _02085858 -_02085848: - cmp r4, #0 - strbne r5, [r4], #1 - ldrsb r5, [sb, #1]! - sub r6, r6, #1 -_02085858: - cmp r5, #0 - beq _02085878 - mov r0, r5 - bl FUN_02085360 - cmp r0, #0 - bne _02085878 - cmp r6, #0 - bgt _02085848 -_02085878: - cmp r4, #0 - movne r0, #0 - strbne r0, [r4] - b _02085AC8 -_02085888: - cmp r6, #0 - moveq r6, #1 - ldrsb r0, [sb] - b _020858A8 -_02085898: - cmp r4, #0 - strbne r0, [r4], #1 - ldrsb r0, [sb, #1]! - sub r6, r6, #1 -_020858A8: - cmp r0, #0 - beq _020858B8 - cmp r6, #0 - bgt _02085898 -_020858B8: - cmp r4, #0 - beq _02085AC8 - cmp r6, #0 - movgt r0, #0 - strbgt r0, [r4] - b _02085AC8 -_020858D0: - mov sl, #0 - mov r3, #1 - add r1, sp, #0x14 - mov r0, sl - mov r2, #0x20 - mov r7, sl - mov fp, sl - str r3, [sp, #8] - bl FUN_0207c314 - ldrsb r0, [r8, #1]! - cmp r0, #0x5e - moveq r0, sl - addeq r8, r8, #1 - streq r0, [sp, #8] - ldrsb r0, [r8] - cmp r0, #0x5d - bne _02085938 - and r2, r0, #0xff - lsr r0, r2, #5 - add r1, sp, #0x14 - ldr r4, [r1, r0, lsl #2] - and r2, r2, #0x1f - mov r3, #1 - orr r2, r4, r3, lsl r2 - str r2, [r1, r0, lsl #2] - add r8, r8, #1 -_02085938: - add r4, sp, #0x14 -_0208593C: - ldrsb r0, [r8] - cmp r0, #0 - cmpne r0, #0x5d - bne _0208598C - cmp fp, #0 - beq _0208597C - add r4, sp, #0x14 - lsr r3, r7, #5 - ldr r2, [r4, r3, lsl #2] - and r0, r7, #0x1f - mov r1, #1 - orr r0, r2, r1, lsl r0 - str r0, [r4, r3, lsl #2] - ldr r0, [sp, #0x18] - orr r0, r0, #0x2000 - str r0, [sp, #0x18] -_0208597C: - ldrsb r0, [r8] - cmp r0, #0x5d - addeq r8, r8, #1 - b _02085A38 -_0208598C: - cmp fp, #0 - bne _020859CC - cmp r7, #0 - beq _020859A8 - cmp r0, #0x2d - moveq fp, #1 - beq _02085A30 -_020859A8: - and r0, r0, #0xff - lsr r3, r0, #5 - ldr r2, [r4, r3, lsl #2] - and r1, r0, #0x1f - mov r0, #1 - orr r0, r2, r0, lsl r1 - str r0, [r4, r3, lsl #2] - ldrb r7, [r8] - b _02085A30 -_020859CC: - and r2, r0, #0xff - cmp r7, r2 - bls _02085A18 - lsr r1, r7, #5 - ldr fp, [r4, r1, lsl #2] - and r7, r7, #0x1f - mov r3, #1 - orr r3, fp, r3, lsl r7 - str r3, [r4, r1, lsl #2] - ldr r1, [sp, #0x18] - lsr r0, r2, #5 - orr r1, r1, #0x2000 - str r1, [sp, #0x18] - ldr r3, [r4, r0, lsl #2] - and r2, r2, #0x1f - mov r1, #1 - orr r1, r3, r1, lsl r2 - str r1, [r4, r0, lsl #2] - b _02085A28 -_02085A18: - mov r1, r7 - add r2, r2, #1 - mov r0, r4 - bl FUN_02085388 -_02085A28: - mov fp, #0 - mov r7, fp -_02085A30: - add r8, r8, #1 - b _0208593C -_02085A38: - mov r0, #1 - tst r5, #0x2000 - str r0, [sp, #0xc] - bne _02085A64 - ldr r0, [sp] - add r0, r0, #4 - str r0, [sp] - ldr sl, [r0, #-4] - ldr r0, [sp, #4] - add r0, r0, #1 - str r0, [sp, #4] -_02085A64: - cmp r6, #0 - mvneq r6, #0x80000000 - ldrsb r0, [sb] - add r3, sp, #0x14 - b _02085AAC -_02085A78: - and r4, r0, #0xff - lsr r1, r4, #5 - ldr r2, [r3, r1, lsl #2] - and r1, r4, #0x1f - lsr r1, r2, r1 - and r2, r1, #1 - ldr r1, [sp, #8] - cmp r1, r2 - bne _02085ABC - cmp sl, #0 - strbne r0, [sl], #1 - ldrsb r0, [sb, #1]! - sub r6, r6, #1 -_02085AAC: - cmp r0, #0 - beq _02085ABC - cmp r6, #0 - bgt _02085A78 -_02085ABC: - cmp sl, #0 - movne r0, #0 - strbne r0, [sl] -_02085AC8: - ldrsb r4, [r8] - cmp r4, #0 - bne _0208540C -_02085AD4: - ldrsb r0, [sb] - cmp r0, #0 - ldreq r0, [sp, #0xc] - cmpeq r0, #0 - mvneq r0, #0 - streq r0, [sp, #4] - ldr r0, [sp, #4] - add sp, sp, #0x34 - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_020853dc - - arm_func_start FUN_02085af8 -FUN_02085af8: @ 0x02085AF8 - ldr r2, [r0] - cmp r2, #0 - beq _02085B18 - ldr r2, [r0, #4] - strb r1, [r2] - ldr r1, [r0] - sub r1, r1, #1 - str r1, [r0] -_02085B18: - ldr r1, [r0, #4] - add r1, r1, #1 - str r1, [r0, #4] - bx lr - arm_func_end FUN_02085af8 - - arm_func_start FUN_02085b28 -FUN_02085b28: @ 0x02085B28 - push {r3, lr} - cmp r2, #0 - pople {r3, pc} - ldr lr, [r0] - mov ip, #0 - cmp lr, r2 - movhi lr, r2 - cmp lr, #0 - bls _02085B60 -_02085B4C: - ldr r3, [r0, #4] - strb r1, [r3, ip] - add ip, ip, #1 - cmp ip, lr - blo _02085B4C -_02085B60: - ldr r1, [r0] - sub r1, r1, lr - str r1, [r0] - ldr r1, [r0, #4] - add r1, r1, r2 - str r1, [r0, #4] - pop {r3, pc} - arm_func_end FUN_02085b28 - - arm_func_start FUN_02085b7c -FUN_02085b7c: @ 0x02085B7C - push {r4, lr} - cmp r2, #0 - pople {r4, pc} - ldr r4, [r0] - mov lr, #0 - cmp r4, r2 - movhi r4, r2 - cmp r4, #0 - bls _02085BB8 -_02085BA0: - ldrsb ip, [r1, lr] - ldr r3, [r0, #4] - strb ip, [r3, lr] - add lr, lr, #1 - cmp lr, r4 - blo _02085BA0 -_02085BB8: - ldr r1, [r0] - sub r1, r1, r4 - str r1, [r0] - ldr r1, [r0, #4] - add r1, r1, r2 - str r1, [r0, #4] - pop {r4, pc} - arm_func_end FUN_02085b7c - - arm_func_start FUN_02085bd4 -FUN_02085bd4: @ 0x02085BD4 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x30 - mov sb, r2 - str r1, [sp, #0xc] - str r0, [sp, #0x14] - str r0, [sp, #0x10] - ldrsb r0, [sb] - str r1, [sp] - mov fp, r3 - cmp r0, #0 - beq _02086400 -_02085C00: - ldrsb r1, [sb] - and r0, r1, #0xff - eor r0, r0, #0x20 - sub r0, r0, #0xa1 - cmp r0, #0x3c - bhs _02085C3C - add r0, sp, #0xc - bl FUN_02085af8 - ldrsb r1, [sb, #1]! - cmp r1, #0 - beq _020863F4 - add r0, sp, #0xc - add sb, sb, #1 - bl FUN_02085af8 - b _020863F4 -_02085C3C: - cmp r1, #0x25 - beq _02085C54 - add r0, sp, #0xc - add sb, sb, #1 - bl FUN_02085af8 - b _020863F4 -_02085C54: - mov r5, #0 - mov sl, r5 - mov r2, sb - sub r6, r5, #1 - mov r0, #0xa - mov r3, #0x57 -_02085C6C: - ldrsb r4, [sb, #1]! - cmp r4, #0x20 - bgt _02085C80 - beq _02085CBC - b _02085CD4 -_02085C80: - cmp r4, #0x30 - bgt _02085CD4 - cmp r4, #0x2b - blt _02085CD4 - beq _02085CA8 - cmp r4, #0x2d - beq _02085CC4 - cmp r4, #0x30 - beq _02085CCC - b _02085CD4 -_02085CA8: - ldrsb r1, [sb, #-1] - cmp r1, #0x20 - bne _02085CD4 - orr r5, r5, #2 - b _02085C6C -_02085CBC: - orr r5, r5, #1 - b _02085C6C -_02085CC4: - orr r5, r5, #8 - b _02085C6C -_02085CCC: - orr r5, r5, #0x10 - b _02085C6C -_02085CD4: - cmp r4, #0x2a - bne _02085CF8 - add fp, fp, #4 - ldr sl, [fp, #-4] - add sb, sb, #1 - cmp sl, #0 - rsblt sl, sl, #0 - orrlt r5, r5, #8 - b _02085D20 -_02085CF8: - mov r1, #0xa - b _02085D0C -_02085D00: - ldrsb r4, [sb], #1 - mla r4, sl, r1, r4 - sub sl, r4, #0x30 -_02085D0C: - ldrsb r4, [sb] - cmp r4, #0x30 - blt _02085D20 - cmp r4, #0x39 - ble _02085D00 -_02085D20: - ldrsb r1, [sb] - cmp r1, #0x2e - bne _02085D7C - ldrsb r1, [sb, #1]! - mov r6, #0 - cmp r1, #0x2a - bne _02085D54 - add fp, fp, #4 - ldr r6, [fp, #-4] - add sb, sb, #1 - cmp r6, #0 - mvnlt r6, #0 - b _02085D7C -_02085D54: - mov r1, #0xa - b _02085D68 -_02085D5C: - ldrsb r4, [sb], #1 - mla r4, r6, r1, r4 - sub r6, r4, #0x30 -_02085D68: - ldrsb r4, [sb] - cmp r4, #0x30 - blt _02085D7C - cmp r4, #0x39 - ble _02085D5C -_02085D7C: - ldrsb r1, [sb] - cmp r1, #0x68 - beq _02085D94 - cmp r1, #0x6c - beq _02085DAC - b _02085DC0 -_02085D94: - ldrsb r1, [sb, #1]! - cmp r1, #0x68 - orrne r5, r5, #0x40 - addeq sb, sb, #1 - orreq r5, r5, #0x100 - b _02085DC0 -_02085DAC: - ldrsb r1, [sb, #1]! - cmp r1, #0x6c - orrne r5, r5, #0x20 - addeq sb, sb, #1 - orreq r5, r5, #0x80 -_02085DC0: - ldrsb r1, [sb] - cmp r1, #0x69 - bgt _02085E04 - cmp r1, #0x63 - blt _02085DE8 - beq _02085E74 - cmp r1, #0x64 - cmpne r1, #0x69 - beq _0208602C - b _02086010 -_02085DE8: - cmp r1, #0x25 - bgt _02085DF8 - beq _02085FF4 - b _02086010 -_02085DF8: - cmp r1, #0x58 - beq _02085E60 - b _02086010 -_02085E04: - cmp r1, #0x6e - bgt _02085E14 - beq _02085F9C - b _02086010 -_02085E14: - sub r1, r1, #0x6f - cmp r1, #9 - addls pc, pc, r1, lsl #2 - b _02086010 -_02085E24: @ jump table - b _02085E4C @ case 0 - b _02085E68 @ case 1 - b _02086010 @ case 2 - b _02086010 @ case 3 - b _02085EE8 @ case 4 - b _02086010 @ case 5 - b _02085E58 @ case 6 - b _02086010 @ case 7 - b _02086010 @ case 8 - b _02086024 @ case 9 -_02085E4C: - orr r5, r5, #0x1000 - mov r0, #8 - b _0208602C -_02085E58: - orr r5, r5, #0x1000 - b _0208602C -_02085E60: - mov r3, #0x37 - b _02086024 -_02085E68: - orr r5, r5, #4 - mov r6, #8 - b _02086024 -_02085E74: - cmp r6, #0 - bge _02086010 - add fp, fp, #4 - tst r5, #8 - ldr r4, [fp, #-4] - beq _02085EB0 - lsl r1, r4, #0x18 - add r0, sp, #0xc - asr r1, r1, #0x18 - bl FUN_02085af8 - add r0, sp, #0xc - sub r2, sl, #1 - mov r1, #0x20 - bl FUN_02085b28 - b _02085EE0 -_02085EB0: - tst r5, #0x10 - movne r0, #0x30 - moveq r0, #0x20 - lsl r1, r0, #0x18 - add r0, sp, #0xc - asr r1, r1, #0x18 - sub r2, sl, #1 - bl FUN_02085b28 - lsl r1, r4, #0x18 - add r0, sp, #0xc - asr r1, r1, #0x18 - bl FUN_02085af8 -_02085EE0: - add sb, sb, #1 - b _020863F4 -_02085EE8: - add fp, fp, #4 - cmp r6, #0 - ldr r7, [fp, #-4] - mov r4, #0 - bge _02085F20 - ldrsb r0, [r7] - cmp r0, #0 - beq _02085F34 -_02085F08: - add r4, r4, #1 - ldrsb r0, [r7, r4] - cmp r0, #0 - bne _02085F08 - b _02085F34 -_02085F1C: - add r4, r4, #1 -_02085F20: - cmp r4, r6 - bge _02085F34 - ldrsb r0, [r7, r4] - cmp r0, #0 - bne _02085F1C -_02085F34: - tst r5, #8 - sub sl, sl, r4 - beq _02085F64 - add r0, sp, #0xc - mov r1, r7 - mov r2, r4 - bl FUN_02085b7c - add r0, sp, #0xc - mov r2, sl - mov r1, #0x20 - bl FUN_02085b28 - b _02085F94 -_02085F64: - tst r5, #0x10 - movne r0, #0x30 - moveq r0, #0x20 - lsl r1, r0, #0x18 - add r0, sp, #0xc - mov r2, sl - asr r1, r1, #0x18 - bl FUN_02085b28 - add r0, sp, #0xc - mov r1, r7 - mov r2, r4 - bl FUN_02085b7c -_02085F94: - add sb, sb, #1 - b _020863F4 -_02085F9C: - ldr r1, [sp, #0x10] - ldr r0, [sp, #0x14] - tst r5, #0x100 - sub r2, r1, r0 - bne _02085FEC - tst r5, #0x40 - beq _02085FC8 - add fp, fp, #4 - ldr r0, [fp, #-4] - strh r2, [r0] - b _02085FEC -_02085FC8: - add fp, fp, #4 - tst r5, #0x80 - ldreq r0, [fp, #-4] - streq r2, [r0] - beq _02085FEC - ldr r0, [fp, #-4] - asr r1, r2, #0x1f - str r2, [r0] - str r1, [r0, #4] -_02085FEC: - add sb, sb, #1 - b _020863F4 -_02085FF4: - add r0, r2, #1 - cmp r0, sb - bne _02086010 - add r0, sp, #0xc - add sb, sb, #1 - bl FUN_02085af8 - b _020863F4 -_02086010: - mov r1, r2 - add r0, sp, #0xc - sub r2, sb, r2 - bl FUN_02085b7c - b _020863F4 -_02086024: - orr r5, r5, #0x1000 - mov r0, #0x10 -_0208602C: - tst r5, #8 - bicne r5, r5, #0x10 - cmp r6, #0 - bicge r5, r5, #0x10 - movlt r6, #1 - mov r4, #0 - tst r5, #0x1000 - beq _020860EC - tst r5, #0x100 - beq _02086064 - add fp, fp, #4 - ldrb r7, [fp, #-4] - mov r1, #0 - b _0208609C -_02086064: - tst r5, #0x40 - beq _0208607C - add fp, fp, #4 - ldrh r7, [fp, #-4] - mov r1, #0 - b _0208609C -_0208607C: - tst r5, #0x80 - addeq fp, fp, #4 - ldreq r7, [fp, #-4] - moveq r1, #0 - beq _0208609C - add fp, fp, #8 - ldr r7, [fp, #-8] - ldr r1, [fp, #-4] -_0208609C: - bic r5, r5, #3 - tst r5, #4 - beq _020861AC - cmp r0, #0x10 - bne _020860D4 - cmp r1, #0 - cmpeq r7, #0 - beq _020861AC - add r4, r3, #0x21 - mov r2, #0x30 - strb r4, [sp, #8] - strb r2, [sp, #9] - mov r4, #2 - b _020861AC -_020860D4: - cmp r0, #8 - bne _020861AC - mov r2, #0x30 - strb r2, [sp, #8] - mov r4, #1 - b _020861AC -_020860EC: - tst r5, #0x100 - beq _02086104 - add fp, fp, #4 - ldrsb r7, [fp, #-4] - asr r1, r7, #0x1f - b _0208613C -_02086104: - tst r5, #0x40 - beq _0208611C - add fp, fp, #4 - ldrsh r7, [fp, #-4] - asr r1, r7, #0x1f - b _0208613C -_0208611C: - tst r5, #0x80 - addeq fp, fp, #4 - ldreq r7, [fp, #-4] - asreq r1, r7, #0x1f - beq _0208613C - add fp, fp, #8 - ldr r7, [fp, #-8] - ldr r1, [fp, #-4] -_0208613C: - mov ip, #0 - and r2, ip, #0 - and r8, r1, #0x80000000 - cmp r2, #0 - cmpeq r8, #0 - beq _02086174 - mvn r4, r7 - mov r2, #0x2d - mvn r1, r1 - strb r2, [sp, #8] - adds r7, r4, #1 - adc r1, r1, ip - mov r4, #1 - b _020861AC -_02086174: - cmp r1, ip - cmpeq r7, ip - cmpeq r6, #0 - beq _020861AC - tst r5, #2 - beq _0208619C - mov r2, #0x2b - strb r2, [sp, #8] - mov r4, #1 - b _020861AC -_0208619C: - tst r5, #1 - movne r2, #0x20 - strbne r2, [sp, #8] - movne r4, #1 -_020861AC: - cmp r0, #8 - mov r8, #0 - beq _020861CC - cmp r0, #0xa - beq _02086218 - cmp r0, #0x10 - beq _020862B0 - b _020862FC -_020861CC: - cmp r1, r8 - cmpeq r7, r8 - beq _020862FC - add r2, sp, #0x18 - mov r0, r8 - mov lr, #7 - mov ip, r8 -_020861E8: - and r3, r7, lr - add r3, r3, #0x30 - strb r3, [r2, r8] - lsr r3, r1, #3 - cmp r3, r0 - lsr r7, r7, #3 - orr r7, r7, r1, lsl #29 - mov r1, r3 - cmpeq r7, ip - add r8, r8, #1 - bne _020861E8 - b _020862FC -_02086218: - mov r0, r8 - cmp r0, r8 - cmpeq r1, r8 - bne _02086264 - cmp r7, #0 - beq _020862FC - ldr ip, _0208644C @ =0xCCCCCCCD - add r3, sp, #0x18 - mov r2, #0xa -_0208623C: - umull r1, r0, r7, ip - lsrs r0, r0, #3 - mul r1, r0, r2 - sub r1, r7, r1 - mov r7, r0 - add r0, r1, #0x30 - strb r0, [r3, r8] - add r8, r8, #1 - bne _0208623C - b _020862FC -_02086264: - cmp r1, r8 - cmpeq r7, r8 - beq _020862FC -_02086270: - mov r0, r7 - mov r2, #0xa - mov r3, #0 - bl FUN_0208fe3c - mov r2, #0xa - umull r3, r2, r0, r2 - subs r2, r7, r3 - add r3, r2, #0x30 - add r2, sp, #0x18 - strb r3, [r2, r8] - cmp r1, #0 - cmpeq r0, #0 - mov r7, r0 - add r8, r8, #1 - bne _02086270 - b _020862FC -_020862B0: - cmp r1, r8 - cmpeq r7, r8 - beq _020862FC - add ip, sp, #0x18 - mov lr, #0xf -_020862C4: - and r2, r7, lr - lsr r7, r7, #4 - lsr r0, r1, #4 - orr r7, r7, r1, lsl #28 - cmp r2, #0xa - mov r1, r0 - addlt r0, r2, #0x30 - addge r0, r2, r3 - strb r0, [ip, r8] - mov r0, #0 - cmp r1, r0 - cmpeq r7, r0 - add r8, r8, #1 - bne _020862C4 -_020862FC: - cmp r4, #0 - ble _02086324 - ldrsb r0, [sp, #8] - cmp r0, #0x30 - bne _02086324 - add r0, sp, #0x18 - mov r1, #0x30 - strb r1, [r0, r8] - add r8, r8, #1 - mov r4, #0 -_02086324: - tst r5, #0x10 - sub r6, r6, r8 - beq _02086340 - sub r0, sl, r8 - sub r0, r0, r4 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + add r0, r4, r0, lsl #1 + add r0, r0, #0x200 + ldrh r0, [r0, #0x90] cmp r6, r0 - movlt r6, r0 -_02086340: - cmp r6, #0 - subgt sl, sl, r6 - add r0, r4, r8 - sub sl, sl, r0 - ands r0, r5, #8 - str r0, [sp, #4] - bne _0208636C - add r0, sp, #0xc - mov r2, sl - mov r1, #0x20 - bl FUN_02085b28 -_0208636C: - cmp r4, #0 - ble _02086398 - add r0, sp, #8 - add r5, r0, r4 - add r7, sp, #0xc -_02086380: - ldrsb r1, [r5, #-1]! - mov r0, r7 - sub r4, r4, #1 - bl FUN_02085af8 - cmp r4, #0 - bgt _02086380 -_02086398: - add r0, sp, #0xc - mov r2, r6 - mov r1, #0x30 - bl FUN_02085b28 - cmp r8, #0 - ble _020863D4 - add r0, sp, #0x18 - add r5, r0, r8 - add r4, sp, #0xc -_020863BC: - ldrsb r1, [r5, #-1]! - mov r0, r4 - sub r8, r8, #1 - bl FUN_02085af8 - cmp r8, #0 - bgt _020863BC -_020863D4: - ldr r0, [sp, #4] - cmp r0, #0 - beq _020863F0 - add r0, sp, #0xc - mov r2, sl - mov r1, #0x20 - bl FUN_02085b28 -_020863F0: - add sb, sb, #1 -_020863F4: - ldrsb r0, [sb] - cmp r0, #0 - bne _02085C00 -_02086400: - ldr r0, [sp, #0xc] - cmp r0, #0 - beq _0208641C - ldr r0, [sp, #0x10] + beq _022E6150 +_022E60C4: + ldr r0, [sp, #0x24] + ldrb r1, [r0] + cmp r1, #0 + beq _022E613C mov r1, #0 - strb r1, [r0] - b _02086438 -_0208641C: - ldr r0, [sp] - cmp r0, #0 - beq _02086438 - ldr r1, [sp, #0x14] - mov r2, #0 - add r0, r1, r0 - strb r2, [r0, #-1] -_02086438: - ldr r1, [sp, #0x10] - ldr r0, [sp, #0x14] - sub r0, r1, r0 - add sp, sp, #0x30 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0208644C: .4byte 0xCCCCCCCD - arm_func_end FUN_02085bd4 - - arm_func_start FUN_02086450 -FUN_02086450: @ 0x02086450 - ldr r0, _02086460 @ =0x020B2FBC - ldr ip, _02086464 @ =FloatToDouble - ldr r0, [r0] - bx ip - .align 2, 0 -_02086460: .4byte 0x020B2FBC -_02086464: .4byte FloatToDouble - arm_func_end FUN_02086450 - - arm_func_start FUN_02086468 -FUN_02086468: @ 0x02086468 - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r0, _020864F0 @ =0x020B2ED4 - mov r4, #0 - mov r5, #1 - mov r8, r0 - mvn sb, #0 - mov r7, r4 - mov r6, #0x4c -_02086488: - ldr r1, [r0, #4] - lsl r2, r1, #0x16 - lsrs r2, r2, #0x1d - beq _020864C8 - lsl r1, r1, #0x19 - lsr r1, r1, #0x1e - tst r1, #1 - beq _020864C8 - ldr r1, [r0, #8] - lsl r1, r1, #0x1d - lsr r1, r1, #0x1d - cmp r1, #1 - bne _020864C8 - bl FUN_02086b7c - cmp r0, #0 - movne r4, sb -_020864C8: - cmp r5, #3 - movge r0, r7 - bge _020864E0 - mul r0, r5, r6 - add r5, r5, #1 - add r0, r8, r0 -_020864E0: - cmp r0, #0 - bne _02086488 - mov r0, r4 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_020864F0: .4byte 0x020B2ED4 - arm_func_end FUN_02086468 - - arm_func_start FUN_020864f4 -FUN_020864f4: @ 0x020864F4 - push {r3, r4, r5, r6, r7, r8, sb, lr} - ldr r0, _02086558 @ =0x020B2ED4 - mov r4, #0 - mov r5, #1 - mov r8, r0 - mvn sb, #0 - mov r7, r4 - mov r6, #0x4c -_02086514: - ldr r1, [r0, #4] - lsl r1, r1, #0x16 - lsrs r1, r1, #0x1d - beq _02086530 - bl FUN_02086b7c - cmp r0, #0 - movne r4, sb -_02086530: - cmp r5, #3 - movge r0, r7 - bge _02086548 - mul r0, r5, r6 - add r5, r5, #1 - add r0, r8, r0 -_02086548: - cmp r0, #0 - bne _02086514 - mov r0, r4 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - .align 2, 0 -_02086558: .4byte 0x020B2ED4 - arm_func_end FUN_020864f4 - - arm_func_start Abs -Abs: @ 0x0208655C - cmp r0, #0 - rsblt r0, r0, #0 - bx lr - arm_func_end Abs - - arm_func_start FUN_02086568 -FUN_02086568: @ 0x02086568 - bx lr - arm_func_end FUN_02086568 - - arm_func_start FUN_0208656c -FUN_0208656c: @ 0x0208656C - bx lr - arm_func_end FUN_0208656c - - arm_func_start FUN_02086570 -FUN_02086570: @ 0x02086570 - ldr r1, [r0, #0x1c] - str r1, [r0, #0x24] - ldr r3, [r0, #0x20] - str r3, [r0, #0x28] - ldr r2, [r0, #0x18] - ldr r1, [r0, #0x2c] - and r1, r2, r1 - sub r1, r3, r1 - str r1, [r0, #0x28] - ldr r1, [r0, #0x18] - str r1, [r0, #0x34] - bx lr - arm_func_end FUN_02086570 - - arm_func_start FUN_020865a0 -FUN_020865a0: @ 0x020865A0 - push {r4, r5, r6, lr} - mov r5, r2 + mov r2, #0xa + bl FUN_0208B200 mov r4, r0 - mov r6, r1 - bl FUN_02086570 - cmp r5, #1 - ldreq r0, [r4, #0x20] - add r2, r4, #0x28 - streq r0, [r4, #0x28] - ldr r0, [r4] - ldr r1, [r4, #0x1c] - ldr r3, [r4, #0x48] - ldr ip, [r4, #0x3c] - blx ip - cmp r0, #2 - moveq r1, #0 - streq r1, [r4, #0x28] - cmp r6, #0 - ldrne r1, [r4, #0x28] - strne r1, [r6] + bl ov00_022EC1C0 + mov sb, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + add r0, sb, r0, lsl #2 + ldr r0, [r0, #0xf4] + cmp r4, r0 + bne _022E613C + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + add r0, r4, r0, lsl #2 + str r7, [r0, #0x210] + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + add r0, r4, r0, lsl #1 + add r0, r0, #0x200 + strh r6, [r0, #0x90] + b _022E6150 +_022E613C: + ldr r1, _022E623C @ =0x0231A1E8 + mov r0, r8 + mvn r2, #0 + bl ov00_0230DCBC + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022E6150: + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x18c] + str r1, [r0, #0x190] + bl ov00_022EC1C0 + ldr r1, [r0, #8] + mov r0, r8 + bl ov00_0230DC60 cmp r0, #0 - popne {r4, r5, r6, pc} - ldr r1, [r4, #0x18] - ldr r0, [r4, #0x28] - add r0, r1, r0 - str r0, [r4, #0x18] - ldr r0, [r4, #4] - lsl r0, r0, #0x13 - lsrs r0, r0, #0x1f - bne _02086624 - ldr r0, [r4, #0x1c] - add r1, r4, #0x28 - bl FUN_0208656c -_02086624: - mov r0, #0 - pop {r4, r5, r6, pc} - arm_func_end FUN_020865a0 - - arm_func_start FUN_0208662c -FUN_0208662c: @ 0x0208662C - push {r3, r4, r5, lr} - mov r5, r0 - ldr r2, [r5, #0x24] - ldr r0, [r5, #0x1c] - mov r4, r1 - subs r0, r2, r0 - beq _020866A4 - str r0, [r5, #0x28] - ldr r0, [r5, #4] - lsl r0, r0, #0x13 - lsrs r0, r0, #0x1f - bne _02086668 - ldr r0, [r5, #0x1c] - add r1, r5, #0x28 - bl FUN_02086568 -_02086668: - ldr r0, [r5] - ldr r1, [r5, #0x1c] - ldr r3, [r5, #0x48] - ldr ip, [r5, #0x40] - add r2, r5, #0x28 - blx ip - cmp r4, #0 - ldrne r1, [r5, #0x28] - strne r1, [r4] + bne _022E6188 + ldr r1, _022E6240 @ =0xFFFEC5E6 + mov r0, #6 + bl ov00_022E6570 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022E6188: + bl ov00_022E6550 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] cmp r0, #0 - popne {r3, r4, r5, pc} - ldr r1, [r5, #0x18] - ldr r0, [r5, #0x28] - add r0, r1, r0 - str r0, [r5, #0x18] -_020866A4: + bne _022E61BC + ldr r1, [sp, #0x20] + ldr r0, _022E6244 @ =0x0000FFFF + asr r4, r1, #1 + cmp r0, r1, asr #1 + movle r4, r0 + bl ov00_022EC1C0 + add r0, r0, #0x100 + strh r4, [r0, #0xb0] +_022E61BC: mov r0, r5 - bl FUN_02086570 - mov r0, #0 - pop {r3, r4, r5, pc} - arm_func_end FUN_0208662c + bl ov00_022E2184 + mov r4, r0 + mov r0, r5 + bl ov00_022E21FC + str r8, [r4] + mov r4, r0 + bl ov00_022EC1C0 + ldrb r1, [r0, #0xd] + add r1, r1, #1 + strb r1, [r0, #0xd] + strb r5, [r4] + bl ov00_022EC1C0 + mov r5, r0 + bl ov00_022EC1C0 + ldrb r1, [r0, #0xd] + mov r0, r8 + mov r2, #0 + sub r1, r1, #1 + add r1, r5, r1 + ldrb r3, [r1, #0x2d0] + mov r1, r4 + strb r3, [r4, #1] + strh r2, [r4, #2] + str r2, [r4, #4] + bl ov00_0230E458 + mov r0, #2 + bl ov00_022E9AA4 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022E6230: .4byte 0x0231A1D0 +_022E6234: .4byte 0x0231A1DC +_022E6238: .4byte 0xFFFEABC4 +_022E623C: .4byte 0x0231A1E8 +_022E6240: .4byte 0xFFFEC5E6 +_022E6244: .4byte 0x0000FFFF + arm_func_end ov00_022E6000 - arm_func_start FUN_020866b4 -FUN_020866b4: @ 0x020866B4 - push {r4, r5, r6, r7, r8, sb, sl, lr} - ldr r4, _020867AC @ =0x020B2ED4 - mov r7, r3 - cmp r7, r4 - moveq r6, #2 - mov sl, r0 - movne r6, #5 - mov r0, #0x18 - mul r4, r6, r0 - ldr r5, _020867B0 @ =0x022BC698 - mov sb, r1 - add r0, r5, r4 - mov r8, r2 - bl FUN_0207a164 + arm_func_start ov00_022E6248 +ov00_022E6248: @ 0x022E6248 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x1c + mov r6, r0 + mov r4, r1 + bl ov00_022EC1C0 cmp r0, #0 - bne _02086718 - ldr r0, _020867B4 @ =0x022B966C - ldr r2, _020867B8 @ =0x022BC650 - ldr r1, [r0, #4] - ldr r0, _020867BC @ =0x022BC674 - ldr r3, [r1, #0x6c] - mov r1, #1 - str r3, [r2, r6, lsl #2] - str r1, [r0, r6, lsl #2] - b _02086770 -_02086718: - ldr r0, _020867B4 @ =0x022B966C - ldr r1, _020867B8 @ =0x022BC650 - ldr r0, [r0, #4] - ldr r1, [r1, r6, lsl #2] - ldr r0, [r0, #0x6c] - cmp r1, r0 - bne _02086748 - ldr r1, _020867BC @ =0x022BC674 - ldr r0, [r1, r6, lsl #2] + addeq sp, sp, #0x1c + popeq {r4, r5, r6, r7, pc} + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #7 + beq _022E628C + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0xc + addne sp, sp, #0x1c + popne {r4, r5, r6, r7, pc} +_022E628C: + cmp r4, #0 + beq _022E6408 + cmp r4, #5 + addeq sp, sp, #0x1c + popeq {r4, r5, r6, r7, pc} + cmp r4, #6 + bne _022E63DC + bl ov00_022EC1C0 + ldrb r1, [r0, #0xc] + add r1, r1, #1 + strb r1, [r0, #0xc] + bl ov00_022EC1C0 + ldrb r0, [r0, #0xc] + cmp r0, #5 + bls _022E62F8 + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0xc] + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x14] + add r0, r4, r0, lsl #2 + ldr r0, [r0, #0xf4] + bl ov00_022E96E4 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, pc} +_022E62F8: + bl ov00_022EC1C0 + ldr r3, [r0, #0x200] + ldr r2, _022E64C0 @ =0x0231A1C0 + add r0, sp, #0x10 + mov r1, #0xc + bl FUN_0207911C + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + mov r7, r0 + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + mov r5, r0 + bl ov00_022EC1C0 + ldrb r2, [r6, #0x14] + ldrb r1, [r0, #0x14] + add r0, r7, r2, lsl #2 + add r1, r5, r1, lsl #1 + add r1, r1, #0x200 + ldrh r1, [r1, #0x90] + ldr r0, [r0, #0x210] + mov r2, #0 + bl ov00_02310BF4 + mov r5, r0 + bl ov00_022EC1C0 + mvn r1, #0 + str r1, [sp] + ldr r3, _022E64C4 @ =0x00001388 + mov r1, #0 + str r3, [sp, #4] + ldr r0, [r0, #8] + mov r2, r5 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [r4, #4] + add r3, sp, #0x10 + ldr r0, [r0] + bl ov00_0230E104 + cmp r0, #1 + bne _022E63A8 + bl ov00_022EB8CC + add sp, sp, #0x1c + pop {r4, r5, r6, r7, pc} +_022E63A8: + cmp r0, #0 + addeq sp, sp, #0x1c + popeq {r4, r5, r6, r7, pc} + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x14] + add r0, r4, r0, lsl #2 + ldr r0, [r0, #0xf4] + bl ov00_022E96E4 + add sp, sp, #0x1c + cmp r0, #0 + pop {r4, r5, r6, r7, pc} +_022E63DC: + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] add r0, r0, #1 - str r0, [r1, r6, lsl #2] - b _02086770 -_02086748: - add r0, r5, r4 - bl FUN_0207a048 - ldr r0, _020867B4 @ =0x022B966C - ldr r2, _020867B8 @ =0x022BC650 - ldr r1, [r0, #4] - ldr r0, _020867BC @ =0x022BC674 - ldr r3, [r1, #0x6c] - mov r1, #1 - str r3, [r2, r6, lsl #2] - str r1, [r0, r6, lsl #2] -_02086770: - mov r0, sl - mov r1, sb + add r0, r4, r0, lsl #2 + ldr r0, [r0, #0xf4] + bl ov00_022E96E4 + add sp, sp, #0x1c + cmp r0, #0 + pop {r4, r5, r6, r7, pc} +_022E6408: + bl ov00_022E2128 + mov r5, r0 + mvn r1, #0 + cmp r5, r1 + bne _022E6430 + ldr r1, _022E64C8 @ =0xFFFEABC4 + mov r0, #6 + bl ov00_022E6570 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, pc} +_022E6430: + bl ov00_022E2184 + mov r4, r0 + mov r0, r5 + bl ov00_022E21FC + str r6, [r4] + mov r4, r0 + bl ov00_022EC1C0 + ldrb r2, [r0, #0xd] + mov r1, #0 + add r2, r2, #1 + strb r2, [r0, #0xd] + strb r5, [r4] + strh r1, [r4, #2] + str r1, [r4, #4] + bl ov00_022EC1C0 + mov r5, r0 + bl ov00_022EC1C0 + ldrb r2, [r0, #0xd] + mov r0, r6 + mov r1, r4 + add r2, r5, r2 + ldrb r2, [r2, #0x2d0] + strb r2, [r4, #1] + bl ov00_0230E458 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0xc + bne _022E64B0 + mov r0, #0 + bl ov00_022E9AA4 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, pc} +_022E64B0: + mov r0, #1 + bl ov00_022E9AA4 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_022E64C0: .4byte 0x0231A1C0 +_022E64C4: .4byte 0x00001388 +_022E64C8: .4byte 0xFFFEABC4 + arm_func_end ov00_022E6248 + + arm_func_start ov00_022E64CC +ov00_022E64CC: @ 0x022E64CC + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x218 + mov sb, #0 + mov fp, r1 + mov sl, r2 + add r8, sp, #8 + mov r7, sb + mov r6, #0xa + add r5, sp, #0x18 + mvn r4, #0 +_022E64F4: + mov r0, r8 + mov r2, sb + add r1, sl, #1 + bl ov00_022E7C4C + cmp r0, r4 + beq _022E652C + mov r0, r8 + mov r1, r7 + mov r2, r6 + bl FUN_0208B200 + str r0, [r5, sb, lsl #2] + add sb, sb, #1 + cmp sb, #0x80 + blt _022E64F4 +_022E652C: + add r0, sp, #0x18 + stm sp, {r0, sb} + mov r2, #0 + ldrb r0, [sl] + mov r1, fp + mov r3, r2 + bl ov00_022E7CE8 + add sp, sp, #0x218 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022E64CC + + arm_func_start ov00_022E6550 +ov00_022E6550: @ 0x022E6550 + push {r3, lr} + bl ov00_022EC1C0 + mov r1, #0xff + strb r1, [r0, #0x3cc] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x3cd] + pop {r3, pc} + arm_func_end ov00_022E6550 + + arm_func_start ov00_022E6570 +ov00_022E6570: @ 0x022E6570 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + mov r4, r0 + mov r5, r1 + bl ov00_022EC1C0 + cmp r0, #0 + cmpne r4, #0 + addeq sp, sp, #8 + popeq {r4, r5, r6, r7, r8, pc} + bl ov00_022EA5EC + mov r0, r4 + mov r1, r5 + bl ov00_022E0394 + ldr r1, _022E6628 @ =0x0231A1BC + mov r0, #1 + mov r2, #0 + bl ov00_022E3E54 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #2 + moveq r7, #1 + movne r7, #0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x20c] + cmp r0, #0 + moveq r8, #1 + movne r8, #0 + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x20c] + bl ov00_022E3DB8 + mov r5, r0 + bl ov00_022EC1C0 + str r5, [sp] + ldr r1, [r0, #0x468] + mov r0, r4 + str r1, [sp, #4] + ldr r4, [r6, #0x464] mov r2, r8 mov r3, r7 - bl FUN_020867c0 - ldr r1, _020867BC @ =0x022BC674 - mov r7, r0 - ldr r0, [r1, r6, lsl #2] - subs r0, r0, #1 - str r0, [r1, r6, lsl #2] - bne _020867A4 - add r0, r5, r4 - bl FUN_0207a0cc -_020867A4: - mov r0, r7 - pop {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_020867AC: .4byte 0x020B2ED4 -_020867B0: .4byte 0x022BC698 -_020867B4: .4byte 0x022B966C -_020867B8: .4byte 0x022BC650 -_020867BC: .4byte 0x022BC674 - arm_func_end FUN_020866b4 - - arm_func_start FUN_020867c0 -FUN_020867c0: @ 0x020867C0 - push {r3, r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #4 - mov r7, r3 - mov sb, r0 - mov r8, r1 - mov r0, r7 mov r1, #0 - mov r4, r2 - bl FUN_0208b374 - cmp r0, #0 - bne _020867F8 - mov r0, r7 - mvn r1, #0 - bl FUN_0208b374 -_020867F8: - muls r4, r8, r4 - beq _0208681C - ldrb r0, [r7, #0xd] - cmp r0, #0 - bne _0208681C - ldr r1, [r7, #4] - lsl r0, r1, #0x16 - lsrs r0, r0, #0x1d - bne _02086828 -_0208681C: - add sp, sp, #4 - mov r0, #0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} -_02086828: - lsl r0, r1, #0x13 - lsrs r0, r0, #0x1f - lslne r0, r1, #0x19 - lsrne r0, r0, #0x1e - ldr r1, [r7, #8] - cmpne r0, #2 - mov r6, #1 - lsl r0, r1, #0x1d - movne r6, #0 - lsrs r0, r0, #0x1d - bne _0208687C - ldr r0, [r7, #4] - lsl r0, r0, #0x1b - lsr r0, r0, #0x1d - tst r0, #1 - beq _0208687C - bic r0, r1, #7 - orr r0, r0, #2 - str r0, [r7, #8] - mov r0, #0 - str r0, [r7, #0x28] -_0208687C: - ldr r0, [r7, #8] - lsl r0, r0, #0x1d - lsr r0, r0, #0x1d - cmp r0, #2 - bhs _020868A8 - mov r0, #1 - strb r0, [r7, #0xd] - mov r0, #0 - add sp, sp, #4 - str r0, [r7, #0x28] - pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} -_020868A8: - ldr r0, [r7, #4] - lsl r0, r0, #0x19 - lsr r0, r0, #0x1e - tst r0, #1 - beq _020868E0 - bl FUN_02086468 - cmp r0, #0 - beq _020868E0 - mov r0, #1 - strb r0, [r7, #0xd] - mov r0, #0 - add sp, sp, #4 - str r0, [r7, #0x28] - pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} -_020868E0: - cmp r4, #0 - mov r5, #0 - beq _020869A4 - ldr r0, [r7, #8] - lsl r0, r0, #0x1d - lsr r0, r0, #0x1d - cmp r0, #3 - blo _020869A4 - mov sl, r5 -_02086904: - mov r0, r7 - mov r1, sl - bl FUN_0208b374 - cmp r0, #1 - ldr r0, [r7, #8] - bne _02086938 - lsl r0, r0, #0x1d - add r0, r7, r0, lsr #28 - ldrh r0, [r0, #0xe] - add r5, r5, #2 - sub r4, r4, #2 - strh r0, [sb], #2 - b _02086950 -_02086938: - lsl r0, r0, #0x1d - add r0, r7, r0, lsr #29 - ldrb r0, [r0, #0xf] - add r5, r5, #1 - sub r4, r4, #1 - strb r0, [sb], #1 -_02086950: - ldr r1, [r7, #8] - cmp r4, #0 - lsl r0, r1, #0x1d - lsr r0, r0, #0x1d - sub r0, r0, #1 - bic r1, r1, #7 - and r0, r0, #7 - orr r0, r1, r0 - str r0, [r7, #8] - beq _0208698C - ldr r0, [r7, #8] - lsl r0, r0, #0x1d - lsr r0, r0, #0x1d - cmp r0, #3 - bhs _02086904 -_0208698C: - ldr r0, [r7, #8] - lsl r0, r0, #0x1d - lsr r0, r0, #0x1d - cmp r0, #2 - ldreq r0, [r7, #0x30] - streq r0, [r7, #0x28] -_020869A4: - cmp r4, #0 - beq _02086A68 - ldr r0, [r7, #0x28] - cmp r0, #0 - cmpeq r6, #0 - beq _02086A68 - mov sl, #0 -_020869C0: - ldr r0, [r7, #0x28] - cmp r0, #0 - bne _02086A14 - mov r0, r7 - mov r1, sl - mov r2, sl - bl FUN_020865a0 - cmp r0, #0 - beq _02086A14 - cmp r0, #1 - mov r0, #1 - strbeq r0, [r7, #0xd] - beq _02086A04 - ldr r1, [r7, #8] - bic r1, r1, #7 - str r1, [r7, #8] - strb r0, [r7, #0xc] -_02086A04: - mov r0, #0 - str r0, [r7, #0x28] - mov r4, #0 - b _02086A68 -_02086A14: - ldr r0, [r7, #0x28] - str r0, [sp] - cmp r0, r4 - strhi r4, [sp] - ldr r1, [r7, #0x24] - ldr r2, [sp] - mov r0, sb - bl Memcpy - ldr r2, [sp] - ldr r0, [r7, #0x24] - subs r4, r4, r2 - add r0, r0, r2 - str r0, [r7, #0x24] - ldr r1, [r7, #0x28] - ldr r0, [sp] - add sb, sb, r2 - sub r0, r1, r0 - add r5, r5, r2 - str r0, [r7, #0x28] - cmpne r6, #0 - bne _020869C0 -_02086A68: - cmp r4, #0 - beq _02086AF4 - cmp r6, #0 - bne _02086AF4 - ldr r6, [r7, #0x1c] - ldr sl, [r7, #0x20] - add r1, sp, #0 - str sb, [r7, #0x1c] - mov r0, r7 - mov r2, #1 - str r4, [r7, #0x20] - bl FUN_020865a0 - cmp r0, #0 - beq _02086AD4 - cmp r0, #1 - mov r0, #1 - bne _02086ABC - strb r0, [r7, #0xd] - mov r0, #0 - str r0, [r7, #0x28] - b _02086AD4 -_02086ABC: - ldr r1, [r7, #8] - bic r1, r1, #7 - str r1, [r7, #8] - strb r0, [r7, #0xc] - mov r0, #0 - str r0, [r7, #0x28] -_02086AD4: - ldr r1, [sp] - mov r0, r7 - str r6, [r7, #0x1c] - str sl, [r7, #0x20] - add r5, r5, r1 - bl FUN_02086570 - mov r0, #0 - str r0, [r7, #0x28] -_02086AF4: - mov r0, r5 - mov r1, r8 - bl DivideUInt - add sp, sp, #4 - pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_end FUN_020867c0 - - arm_func_start FUN_02086b08 -FUN_02086b08: @ 0x02086B08 - push {r3, r4, r5, lr} - movs r5, r0 - mvneq r0, #0 - popeq {r3, r4, r5, pc} - ldr r1, [r5, #4] - lsl r1, r1, #0x16 - lsrs r1, r1, #0x1d - moveq r0, #0 - popeq {r3, r4, r5, pc} - bl FUN_02086b7c - mov r4, r0 - ldr r0, [r5] - ldr r1, [r5, #0x44] - blx r1 - ldr r1, [r5, #4] - mov r2, #0 - bic r1, r1, #0x380 - str r1, [r5, #4] - str r2, [r5] - ldr r1, [r5, #8] - lsl r1, r1, #0x1c - lsrs r1, r1, #0x1f - subne r0, r2, #1 - popne {r3, r4, r5, pc} - cmp r4, #0 - cmpeq r0, #0 - movne r2, #1 - rsb r0, r2, #0 - pop {r3, r4, r5, pc} - arm_func_end FUN_02086b08 - - arm_func_start FUN_02086b7c -FUN_02086b7c: @ 0x02086B7C - push {r4, lr} - movs r4, r0 - bne _02086B90 - bl FUN_020864f4 - pop {r4, pc} -_02086B90: - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _02086BAC - ldr r0, [r4, #4] - lsl r1, r0, #0x16 - lsrs r1, r1, #0x1d - bne _02086BB4 -_02086BAC: - mvn r0, #0 - pop {r4, pc} -_02086BB4: - lsl r0, r0, #0x1b - lsr r0, r0, #0x1d - cmp r0, #1 - moveq r0, #0 - popeq {r4, pc} - ldr r0, [r4, #8] - lsl r1, r0, #0x1d - lsr r1, r1, #0x1d - cmp r1, #3 - bichs r0, r0, #7 - orrhs r0, r0, #2 - strhs r0, [r4, #8] - ldr r0, [r4, #8] - lsl r0, r0, #0x1d - lsr r0, r0, #0x1d - cmp r0, #2 - moveq r0, #0 - streq r0, [r4, #0x28] - ldr r0, [r4, #8] - lsl r1, r0, #0x1d - lsr r1, r1, #0x1d - cmp r1, #1 - beq _02086C20 - bic r0, r0, #7 - str r0, [r4, #8] - mov r0, #0 - pop {r4, pc} -_02086C20: - mov r0, r4 - mov r1, #0 - bl FUN_0208662c - cmp r0, #0 - mov r0, #0 - beq _02086C4C - mov r1, #1 - strb r1, [r4, #0xd] - str r0, [r4, #0x28] - sub r0, r0, #1 - pop {r4, pc} -_02086C4C: - ldr r1, [r4, #8] - bic r1, r1, #7 - str r1, [r4, #8] - str r0, [r4, #0x18] - str r0, [r4, #0x28] - pop {r4, pc} - arm_func_end FUN_02086b7c - - arm_func_start FUN_02086c64 -FUN_02086c64: @ 0x02086C64 - push {r3, r4, r5, lr} - cmp r2, #0 - mov lr, #0 - ble _02086CE0 - ldr ip, _02086CE8 @ =0x020AECB0 -_02086C78: - ldrsb r3, [r0], #1 - cmp r3, #0 - blt _02086C90 - cmp r3, #0x80 - bge _02086C90 - ldrb r3, [ip, r3] -_02086C90: - ldrsb r5, [r1], #1 - lsl r3, r3, #0x18 - asr r4, r3, #0x18 - cmp r5, #0 - blt _02086CB0 - cmp r5, #0x80 - bge _02086CB0 - ldrb r5, [ip, r5] -_02086CB0: - lsl r3, r5, #0x18 - cmp r4, r3, asr #24 - mvnlt r0, #0 - poplt {r3, r4, r5, pc} - movgt r0, #1 - popgt {r3, r4, r5, pc} - cmp r4, #0 - moveq r0, #0 - popeq {r3, r4, r5, pc} - add lr, lr, #1 - cmp lr, r2 - blt _02086C78 -_02086CE0: - mov r0, #0 - pop {r3, r4, r5, pc} + blx r4 + bl ov00_022E7204 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} .align 2, 0 -_02086CE8: .4byte 0x020AECB0 - arm_func_end FUN_02086c64 -_02086CEC: - .byte 0x04, 0x10, 0x90, 0xE5 - .byte 0x01, 0x1B, 0xA0, 0xE1, 0xA1, 0x1E, 0xA0, 0xE1, 0xFF, 0x10, 0x01, 0xE2, 0xFF, 0x10, 0x81, 0xE2 - .byte 0xFF, 0x10, 0x01, 0xE2, 0x01, 0x00, 0x51, 0xE3, 0x02, 0x00, 0x00, 0x8A, 0x0D, 0x10, 0xD0, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x44, 0x00, 0x9F, 0xE5, 0x28, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x10, 0x80, 0xE5, 0x29, 0x00, 0x41, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x10, 0x90, 0xE5 - .byte 0x81, 0x1E, 0xA0, 0xE1, 0xA1, 0xCE, 0xB0, 0xE1, 0x18, 0x00, 0x90, 0x05, 0x1E, 0xFF, 0x2F, 0x01 - .byte 0x24, 0x20, 0x90, 0xE5, 0x1C, 0x10, 0x90, 0xE5, 0x34, 0x30, 0x90, 0xE5, 0x01, 0x00, 0x42, 0xE0 - .byte 0x03, 0x00, 0x5C, 0xE3, 0x00, 0x00, 0x83, 0xE0, 0x02, 0x10, 0x4C, 0x22, 0x01, 0x00, 0x40, 0x20 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0xCA, 0x2B, 0x02, 0xF8, 0x40, 0x2D, 0xE9, 0xF4, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x70, 0xA0, 0xE1, 0x01, 0x00, 0x57, 0xE1, 0x02, 0x60, 0xA0, 0x03, 0x07, 0x00, 0x00, 0x0A - .byte 0xE4, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x57, 0xE1, 0x03, 0x60, 0xA0, 0x03, 0x03, 0x00, 0x00, 0x0A - .byte 0xD8, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x57, 0xE1, 0x04, 0x60, 0xA0, 0x03, 0x05, 0x60, 0xA0, 0x13 - .byte 0x18, 0x00, 0xA0, 0xE3, 0x96, 0x00, 0x04, 0xE0, 0xC4, 0x50, 0x9F, 0xE5, 0x04, 0x00, 0x85, 0xE0 - .byte 0xEB, 0xCC, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x1A, 0xB4, 0x00, 0x9F, 0xE5 - .byte 0xB4, 0x20, 0x9F, 0xE5, 0x04, 0x10, 0x90, 0xE5, 0xB0, 0x00, 0x9F, 0xE5, 0x6C, 0x30, 0x91, 0xE5 - .byte 0x01, 0x10, 0xA0, 0xE3, 0x06, 0x31, 0x82, 0xE7, 0x06, 0x11, 0x80, 0xE7, 0x15, 0x00, 0x00, 0xEA - .byte 0x90, 0x00, 0x9F, 0xE5, 0x90, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x06, 0x11, 0x91, 0xE7 - .byte 0x6C, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x51, 0xE1, 0x04, 0x00, 0x00, 0x1A, 0x7C, 0x10, 0x9F, 0xE5 - .byte 0x06, 0x01, 0x91, 0xE7, 0x01, 0x00, 0x80, 0xE2, 0x06, 0x01, 0x81, 0xE7, 0x09, 0x00, 0x00, 0xEA - .byte 0x04, 0x00, 0x85, 0xE0, 0x8B, 0xCC, 0xFF, 0xEB, 0x58, 0x00, 0x9F, 0xE5, 0x58, 0x20, 0x9F, 0xE5 - .byte 0x04, 0x10, 0x90, 0xE5, 0x54, 0x00, 0x9F, 0xE5, 0x6C, 0x30, 0x91, 0xE5, 0x01, 0x10, 0xA0, 0xE3 - .byte 0x06, 0x31, 0x82, 0xE7, 0x06, 0x11, 0x80, 0xE7, 0x07, 0x00, 0xA0, 0xE1, 0xAA, 0xFF, 0xFF, 0xEB - .byte 0x38, 0x10, 0x9F, 0xE5, 0x00, 0x70, 0xA0, 0xE1, 0x06, 0x01, 0x91, 0xE7, 0x01, 0x00, 0x50, 0xE2 - .byte 0x06, 0x01, 0x81, 0xE7, 0x01, 0x00, 0x00, 0x1A, 0x04, 0x00, 0x85, 0xE0, 0x9A, 0xCC, 0xFF, 0xEB - .byte 0x07, 0x00, 0xA0, 0xE1, 0xF8, 0x80, 0xBD, 0xE8, 0xD4, 0x2E, 0x0B, 0x02, 0x20, 0x2F, 0x0B, 0x02 - .byte 0x6C, 0x2F, 0x0B, 0x02, 0x98, 0xC6, 0x2B, 0x02, 0x6C, 0x96, 0x2B, 0x02, 0x50, 0xC6, 0x2B, 0x02 - .byte 0x74, 0xC6, 0x2B, 0x02, 0x0F, 0x00, 0x2D, 0xE9, 0x38, 0x40, 0x2D, 0xE9, 0x00, 0x50, 0xA0, 0xE1 - .byte 0x04, 0x10, 0x95, 0xE5, 0x02, 0x40, 0xA0, 0xE1, 0x01, 0x1B, 0xA0, 0xE1, 0xA1, 0x1E, 0xA0, 0xE1 - .byte 0xFF, 0x10, 0x01, 0xE2, 0x01, 0x00, 0x51, 0xE3, 0x0D, 0x10, 0xD5, 0x05, 0x00, 0x00, 0x51, 0x03 - .byte 0x06, 0x00, 0x00, 0x0A, 0xAC, 0x01, 0x9F, 0xE5, 0x28, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5 - .byte 0x29, 0x00, 0x41, 0xE2, 0x38, 0x40, 0xBD, 0xE8, 0x10, 0xD0, 0x8D, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x08, 0x10, 0x95, 0xE5, 0x81, 0x1E, 0xA0, 0xE1, 0xA1, 0x1E, 0xA0, 0xE1, 0x01, 0x00, 0x51, 0xE3 - .byte 0x0E, 0x00, 0x00, 0x1A, 0x00, 0x10, 0xA0, 0xE3, 0xCF, 0xFD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x0A, 0x00, 0x00, 0x0A, 0x01, 0x00, 0xA0, 0xE3, 0x0D, 0x00, 0xC5, 0xE5, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x60, 0x01, 0x9F, 0xE5, 0x28, 0x10, 0xA0, 0xE3, 0x28, 0x20, 0x85, 0xE5, 0x00, 0x10, 0x80, 0xE5 - .byte 0x29, 0x00, 0x41, 0xE2, 0x38, 0x40, 0xBD, 0xE8, 0x10, 0xD0, 0x8D, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x01, 0x00, 0x54, 0xE3, 0x05, 0x00, 0x00, 0x1A, 0x05, 0x00, 0xA0, 0xE1, 0x00, 0x40, 0xA0, 0xE3 - .byte 0x6D, 0xFF, 0xFF, 0xEB, 0x14, 0x10, 0x9D, 0xE5, 0x00, 0x00, 0x81, 0xE0, 0x14, 0x00, 0x8D, 0xE5 - .byte 0x02, 0x00, 0x54, 0xE3, 0x22, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x95, 0xE5, 0x80, 0x0D, 0xA0, 0xE1 - .byte 0xA0, 0x0E, 0xA0, 0xE1, 0x03, 0x00, 0x50, 0xE3, 0x1D, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x95, 0xE5 - .byte 0x80, 0x0E, 0xA0, 0xE1, 0xA0, 0x0E, 0xA0, 0xE1, 0x02, 0x00, 0x40, 0xE2, 0x01, 0x00, 0x50, 0xE3 - .byte 0x17, 0x00, 0x00, 0x8A, 0x14, 0x20, 0x9D, 0xE5, 0x18, 0x00, 0x95, 0xE5, 0x00, 0x00, 0x52, 0xE1 - .byte 0x02, 0x00, 0x00, 0x2A, 0x34, 0x00, 0x95, 0xE5, 0x00, 0x00, 0x52, 0xE1, 0x03, 0x00, 0x00, 0x2A - .byte 0x08, 0x00, 0x95, 0xE5, 0x07, 0x00, 0xC0, 0xE3, 0x08, 0x00, 0x85, 0xE5, 0x0F, 0x00, 0x00, 0xEA - .byte 0x1C, 0x10, 0x95, 0xE5, 0x00, 0x00, 0x42, 0xE0, 0x00, 0x00, 0x81, 0xE0, 0x24, 0x00, 0x85, 0xE5 - .byte 0x18, 0x10, 0x95, 0xE5, 0x14, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x41, 0xE0, 0x28, 0x00, 0x85, 0xE5 - .byte 0x08, 0x00, 0x95, 0xE5, 0x07, 0x00, 0xC0, 0xE3, 0x02, 0x00, 0x80, 0xE3, 0x08, 0x00, 0x85, 0xE5 - .byte 0x02, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x95, 0xE5, 0x07, 0x00, 0xC0, 0xE3, 0x08, 0x00, 0x85, 0xE5 - .byte 0x08, 0x00, 0x95, 0xE5, 0x80, 0x0E, 0xA0, 0xE1, 0xA0, 0x0E, 0xB0, 0xE1, 0x19, 0x00, 0x00, 0x1A - .byte 0x38, 0xC0, 0x95, 0xE5, 0x00, 0x00, 0x5C, 0xE3, 0x11, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x95, 0xE5 - .byte 0x48, 0x30, 0x95, 0xE5, 0x14, 0x10, 0x8D, 0xE2, 0x04, 0x20, 0xA0, 0xE1, 0x3C, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0x0A, 0x01, 0x00, 0xA0, 0xE3, 0x0D, 0x00, 0xC5, 0xE5 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x3C, 0x00, 0x9F, 0xE5, 0x28, 0x10, 0xA0, 0xE3, 0x28, 0x20, 0x85, 0xE5 - .byte 0x00, 0x10, 0x80, 0xE5, 0x29, 0x00, 0x41, 0xE2, 0x38, 0x40, 0xBD, 0xE8, 0x10, 0xD0, 0x8D, 0xE2 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0x10, 0xA0, 0xE3, 0x0C, 0x10, 0xC5, 0xE5, 0x14, 0x00, 0x9D, 0xE5 - .byte 0x18, 0x00, 0x85, 0xE5, 0x28, 0x10, 0x85, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x38, 0x40, 0xBD, 0xE8 - .byte 0x10, 0xD0, 0x8D, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0xCA, 0x2B, 0x02, 0xF8, 0x43, 0x2D, 0xE9 - .byte 0x04, 0x31, 0x9F, 0xE5, 0x00, 0x90, 0xA0, 0xE1, 0x03, 0x00, 0x59, 0xE1, 0x01, 0x80, 0xA0, 0xE1 - .byte 0x02, 0x70, 0xA0, 0xE1, 0x02, 0x60, 0xA0, 0x03, 0x07, 0x00, 0x00, 0x0A, 0xEC, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x59, 0xE1, 0x03, 0x60, 0xA0, 0x03, 0x03, 0x00, 0x00, 0x0A, 0xE0, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x59, 0xE1, 0x04, 0x60, 0xA0, 0x03, 0x05, 0x60, 0xA0, 0x13, 0x18, 0x00, 0xA0, 0xE3 - .byte 0x96, 0x00, 0x04, 0xE0, 0xCC, 0x50, 0x9F, 0xE5, 0x04, 0x00, 0x85, 0xE0, 0x28, 0xCC, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x1A, 0xBC, 0x00, 0x9F, 0xE5, 0xBC, 0x20, 0x9F, 0xE5 - .byte 0x04, 0x10, 0x90, 0xE5, 0xB8, 0x00, 0x9F, 0xE5, 0x6C, 0x30, 0x91, 0xE5, 0x01, 0x10, 0xA0, 0xE3 - .byte 0x06, 0x31, 0x82, 0xE7, 0x06, 0x11, 0x80, 0xE7, 0x15, 0x00, 0x00, 0xEA, 0x98, 0x00, 0x9F, 0xE5 - .byte 0x98, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x06, 0x11, 0x91, 0xE7, 0x6C, 0x00, 0x90, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE1, 0x04, 0x00, 0x00, 0x1A, 0x84, 0x10, 0x9F, 0xE5, 0x06, 0x01, 0x91, 0xE7 - .byte 0x01, 0x00, 0x80, 0xE2, 0x06, 0x01, 0x81, 0xE7, 0x09, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x85, 0xE0 - .byte 0xC8, 0xCB, 0xFF, 0xEB, 0x60, 0x00, 0x9F, 0xE5, 0x60, 0x20, 0x9F, 0xE5, 0x04, 0x10, 0x90, 0xE5 - .byte 0x5C, 0x00, 0x9F, 0xE5, 0x6C, 0x30, 0x91, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x06, 0x31, 0x82, 0xE7 - .byte 0x06, 0x11, 0x80, 0xE7, 0x09, 0x00, 0xA0, 0xE1, 0x08, 0x10, 0xA0, 0xE1, 0x07, 0x20, 0xA0, 0xE1 - .byte 0x4B, 0xFF, 0xFF, 0xEB, 0x38, 0x10, 0x9F, 0xE5, 0x00, 0x70, 0xA0, 0xE1, 0x06, 0x01, 0x91, 0xE7 - .byte 0x01, 0x00, 0x50, 0xE2, 0x06, 0x01, 0x81, 0xE7, 0x01, 0x00, 0x00, 0x1A, 0x04, 0x00, 0x85, 0xE0 - .byte 0xD5, 0xCB, 0xFF, 0xEB, 0x07, 0x00, 0xA0, 0xE1, 0xF8, 0x83, 0xBD, 0xE8, 0xD4, 0x2E, 0x0B, 0x02 - .byte 0x20, 0x2F, 0x0B, 0x02, 0x6C, 0x2F, 0x0B, 0x02, 0x98, 0xC6, 0x2B, 0x02, 0x6C, 0x96, 0x2B, 0x02 - .byte 0x50, 0xC6, 0x2B, 0x02, 0x74, 0xC6, 0x2B, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE1, 0x0D, 0x10, 0xC4, 0xE5, 0xAE, 0xFF, 0xFF, 0xEB - .byte 0x00, 0x00, 0xA0, 0xE3, 0x0D, 0x00, 0xC4, 0xE5, 0x10, 0x80, 0xBD, 0xE8 +_022E6628: .4byte 0x0231A1BC + arm_func_end ov00_022E6570 - arm_func_start Mbtowc -Mbtowc: @ 0x020871BC - cmp r1, #0 - moveq r0, #0 - bxeq lr - cmp r2, #0 - mvneq r0, #0 - bxeq lr - cmp r0, #0 - ldrbne r2, [r1] - strhne r2, [r0] - ldrsb r0, [r1] - cmp r0, #0 - moveq r0, #0 - movne r0, #1 - bx lr - arm_func_end Mbtowc - - arm_func_start TryAssignByte -TryAssignByte: @ 0x020871F4 - cmp r0, #0 - moveq r0, #0 - strbne r1, [r0] - movne r0, #1 - bx lr - arm_func_end TryAssignByte - - arm_func_start TryAssignByteWrapper -TryAssignByteWrapper: @ 0x02087208 + arm_func_start ov00_022E662C +ov00_022E662C: @ 0x022E662C push {r3, lr} - ldr r2, _02087220 @ =0x020B301C - ldr r2, [r2, #8] - ldr r2, [r2, #4] - blx r2 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #2 + popeq {r3, pc} + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x14] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x16] + bl ov00_022EC1C0 + ldr r0, [r0, #0x10] + bl ov00_02312BF4 pop {r3, pc} - .align 2, 0 -_02087220: .4byte 0x020B301C - arm_func_end TryAssignByteWrapper + arm_func_end ov00_022E662C - arm_func_start Wcstombs -Wcstombs: @ 0x02087224 - push {r3, r4, r5, r6, r7, r8, sb, lr} - movs r4, r0 - mov sb, r1 - cmpne sb, #0 - mov r8, r2 - mov r7, #0 - moveq r0, #0 - popeq {r3, r4, r5, r6, r7, r8, sb, pc} - add r6, sp, #0 -_02087248: - ldrh r1, [sb] - cmp r1, #0 - moveq r0, #0 - strbeq r0, [r4, r7] - beq _02087294 - mov r0, r6 - add sb, sb, #2 - bl TryAssignByteWrapper + arm_func_start ov00_022E6668 +ov00_022E6668: @ 0x022E6668 + push {r4, r5, r6, lr} mov r5, r0 - add r0, r7, r5 - cmp r0, r8 - bhi _02087294 - mov r1, r6 - mov r2, r5 - add r0, r4, r7 - bl Strncpy - add r7, r7, r5 - cmp r7, r8 - bls _02087248 -_02087294: - mov r0, r7 - pop {r3, r4, r5, r6, r7, r8, sb, pc} - arm_func_end Wcstombs - - arm_func_start Memcpy -Memcpy: @ 0x0208729C - mov ip, r0 - cmp r2, #0 - bxeq lr -_020872A8: - ldrsb r3, [r1], #1 - subs r2, r2, #1 - strb r3, [ip], #1 - bne _020872A8 - bx lr - arm_func_end Memcpy - - arm_func_start Memmove -Memmove: @ 0x020872BC - cmp r1, r0 - blo _020872E4 - mov ip, r0 - cmp r2, #0 - bxeq lr -_020872D0: - ldrsb r3, [r1], #1 - subs r2, r2, #1 - strb r3, [ip], #1 - bne _020872D0 - bx lr -_020872E4: - cmp r2, #0 - add r3, r1, r2 - add ip, r0, r2 - bxeq lr -_020872F4: - ldrsb r1, [r3, #-1]! - subs r2, r2, #1 - strb r1, [ip, #-1]! - bne _020872F4 - bx lr - arm_func_end Memmove - - arm_func_start Memset -Memset: @ 0x02087308 - push {r4, lr} - mov r4, r0 - bl MemsetInternal - mov r0, r4 - pop {r4, pc} - arm_func_end Memset - - arm_func_start Memchr -Memchr: @ 0x0208731C - cmp r2, #0 - and r3, r1, #0xff - beq _02087340 -_02087328: - ldrb r1, [r0], #1 - cmp r1, r3 - subeq r0, r0, #1 - bxeq lr - subs r2, r2, #1 - bne _02087328 -_02087340: - mov r0, #0 - bx lr - arm_func_end Memchr - - arm_func_start Memcmp -Memcmp: @ 0x02087348 - cmp r2, #0 - beq _02087380 -_02087350: - ldrb ip, [r0], #1 - ldrb r3, [r1], #1 - cmp ip, r3 - beq _02087378 - ldrb r2, [r0, #-1] - ldrb r0, [r1, #-1] - cmp r2, r0 - mvnlo r0, #0 - movhs r0, #1 - bx lr -_02087378: - subs r2, r2, #1 - bne _02087350 -_02087380: - mov r0, #0 - bx lr - arm_func_end Memcmp - - arm_func_start MemsetInternal -MemsetInternal: @ 0x02087388 - cmp r2, #0x20 - and r3, r1, #0xff - blo _0208741C - rsb r1, r0, #0 - ands ip, r1, #3 - beq _020873B4 - sub r2, r2, ip - and r1, r3, #0xff -_020873A8: - strb r1, [r0], #1 - subs ip, ip, #1 - bne _020873A8 -_020873B4: - cmp r3, #0 - beq _020873CC - lsl r1, r3, #0x10 - orr r1, r1, r3, lsl #24 - orr r1, r1, r3, lsl #8 - orr r3, r3, r1 -_020873CC: - lsrs r1, r2, #5 - beq _02087400 -_020873D4: - str r3, [r0] - str r3, [r0, #4] - str r3, [r0, #8] - str r3, [r0, #0xc] - str r3, [r0, #0x10] - str r3, [r0, #0x14] - str r3, [r0, #0x18] - str r3, [r0, #0x1c] - add r0, r0, #0x20 - subs r1, r1, #1 - bne _020873D4 -_02087400: - and r1, r2, #0x1f - lsrs r1, r1, #2 - beq _02087418 -_0208740C: - str r3, [r0], #4 - subs r1, r1, #1 - bne _0208740C -_02087418: - and r2, r2, #3 -_0208741C: - cmp r2, #0 - bxeq lr - and r1, r3, #0xff -_02087428: - strb r1, [r0], #1 - subs r2, r2, #1 - bne _02087428 - bx lr - arm_func_end MemsetInternal - - arm_func_start FUN_02087438 -FUN_02087438: @ 0x02087438 - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x10 - ldrsb r3, [r0, #1] - mov r4, #0 - mov r5, #1 - mov lr, r2 - strb r5, [sp] - strb r4, [sp, #1] - strb r4, [sp, #2] - strb r4, [sp, #3] - strb r4, [sp, #4] - str r4, [sp, #8] - str r4, [sp, #0xc] - cmp r3, #0x25 - add ip, r0, #1 - bne _02087494 - add r0, sp, #0 - strb r3, [sp, #5] - ldm r0, {r0, r1, r2, r3} - stm lr, {r0, r1, r2, r3} - add sp, sp, #0x10 - add r0, ip, #1 - pop {r4, r5, r6, r7, r8, pc} -_02087494: - mov r2, #2 - mov r0, r4 - mov r5, r2 - mov r6, r4 - mov r7, #1 -_020874A8: - mov r8, r7 - cmp r3, #0x2b - bgt _020874D8 - bge _02087500 - cmp r3, #0x23 - bgt _02087530 - cmp r3, #0x20 - blt _02087530 - beq _02087508 - cmp r3, #0x23 - beq _02087518 - b _02087530 -_020874D8: - cmp r3, #0x30 - bgt _02087530 - cmp r3, #0x2d - blt _02087530 - beq _020874F8 - cmp r3, #0x30 - beq _02087520 - b _02087530 -_020874F8: - strb r6, [sp] - b _02087534 -_02087500: - strb r7, [sp, #1] - b _02087534 -_02087508: - ldrb r4, [sp, #1] - cmp r4, #1 - strbne r5, [sp, #1] - b _02087534 -_02087518: - strb r7, [sp, #3] - b _02087534 -_02087520: - ldrb r4, [sp] - cmp r4, #0 - strbne r2, [sp] - b _02087534 -_02087530: - mov r8, r0 -_02087534: - cmp r8, #0 - ldrsbne r3, [ip, #1]! - bne _020874A8 - cmp r3, #0x2a - bne _0208757C - ldr r0, [r1] - add r0, r0, #4 - str r0, [r1] - ldr r0, [r0, #-4] - str r0, [sp, #8] - cmp r0, #0 - bge _02087574 - rsb r0, r0, #0 - mov r2, #0 - strb r2, [sp] - str r0, [sp, #8] -_02087574: - ldrsb r3, [ip, #1]! - b _020875CC -_0208757C: - ldr r4, _020879C0 @ =0x020AEDB0 - mov r5, #0 - mov r0, #0xa - b _020875A0 -_0208758C: - ldr r2, [sp, #8] - sub r3, r3, #0x30 - mla r6, r2, r0, r3 - ldrsb r3, [ip, #1]! - str r6, [sp, #8] -_020875A0: - cmp r3, #0 - blt _020875B0 - cmp r3, #0x80 - blt _020875B8 -_020875B0: - mov r2, r5 - b _020875C4 -_020875B8: - lsl r2, r3, #1 - ldrh r2, [r4, r2] - and r2, r2, #8 -_020875C4: - cmp r2, #0 - bne _0208758C -_020875CC: - ldr r2, [sp, #8] - ldr r0, _020879C4 @ =0x000001FD - cmp r2, r0 - ble _020875FC - mov r1, #0xff - add r0, sp, #0 - strb r1, [sp, #5] - ldm r0, {r0, r1, r2, r3} - stm lr, {r0, r1, r2, r3} - add sp, sp, #0x10 - add r0, ip, #1 - pop {r4, r5, r6, r7, r8, pc} -_020875FC: - cmp r3, #0x2e - bne _02087690 - ldrsb r3, [ip, #1]! - mov r0, #1 - strb r0, [sp, #2] - cmp r3, #0x2a - bne _02087640 - ldr r0, [r1] - add r0, r0, #4 - str r0, [r1] - ldr r0, [r0, #-4] - ldrsb r3, [ip, #1]! - str r0, [sp, #0xc] - cmp r0, #0 - movlt r0, #0 - strblt r0, [sp, #2] - b _02087690 -_02087640: - ldr r2, _020879C0 @ =0x020AEDB0 - mov r4, #0 - mov r0, #0xa - b _02087664 -_02087650: - ldr r1, [sp, #0xc] - sub r3, r3, #0x30 - mla r5, r1, r0, r3 - ldrsb r3, [ip, #1]! - str r5, [sp, #0xc] -_02087664: - cmp r3, #0 - blt _02087674 - cmp r3, #0x80 - blt _0208767C -_02087674: - mov r1, r4 - b _02087688 -_0208767C: - lsl r1, r3, #1 - ldrh r1, [r2, r1] - and r1, r1, #8 -_02087688: - cmp r1, #0 - bne _02087650 -_02087690: - cmp r3, #0x6c - mov r0, #1 - bgt _020876C8 - cmp r3, #0x68 - blt _020876BC - beq _020876E4 - cmp r3, #0x6a - beq _02087730 - cmp r3, #0x6c - beq _02087700 - b _02087754 -_020876BC: - cmp r3, #0x4c - beq _02087724 - b _02087754 -_020876C8: - cmp r3, #0x74 - bgt _020876D8 - beq _0208773C - b _02087754 -_020876D8: - cmp r3, #0x7a - beq _02087748 - b _02087754 -_020876E4: - ldrsb r1, [ip, #1] - mov r2, #2 - strb r2, [sp, #4] - cmp r1, #0x68 - strbeq r0, [sp, #4] - ldrsbeq r3, [ip, #1]! - b _02087758 -_02087700: - ldrsb r1, [ip, #1] - mov r2, #3 - strb r2, [sp, #4] - cmp r1, #0x6c - bne _02087758 - mov r1, #4 - strb r1, [sp, #4] - ldrsb r3, [ip, #1]! - b _02087758 -_02087724: - mov r1, #9 - strb r1, [sp, #4] - b _02087758 -_02087730: - mov r1, #6 - strb r1, [sp, #4] - b _02087758 -_0208773C: - mov r1, #8 - strb r1, [sp, #4] - b _02087758 -_02087748: - mov r1, #7 - strb r1, [sp, #4] - b _02087758 -_02087754: - mov r0, #0 -_02087758: - cmp r0, #0 - ldrsbne r3, [ip, #1]! - strb r3, [sp, #5] - cmp r3, #0x61 - bgt _020877AC - bge _02087894 - cmp r3, #0x47 - bgt _020877A0 - subs r0, r3, #0x41 - addpl pc, pc, r0, lsl #2 - b _020879A0 -_02087784: @ jump table - b _02087894 @ case 0 - b _020879A0 @ case 1 - b _020879A0 @ case 2 - b _020879A0 @ case 3 - b _020878DC @ case 4 - b _0208785C @ case 5 - b _020878CC @ case 6 -_020877A0: - cmp r3, #0x58 - beq _02087820 - b _020879A0 -_020877AC: - cmp r3, #0x63 - bgt _020877BC - beq _0208793C - b _020879A0 -_020877BC: - sub r0, r3, #0x64 - cmp r0, #0x14 - addls pc, pc, r0, lsl #2 - b _020879A0 -_020877CC: @ jump table - b _02087820 @ case 0 - b _020878DC @ case 1 - b _0208785C @ case 2 - b _020878CC @ case 3 - b _020879A0 @ case 4 - b _02087820 @ case 5 - b _020879A0 @ case 6 - b _020879A0 @ case 7 - b _020879A0 @ case 8 - b _020879A0 @ case 9 - b _0208798C @ case 10 - b _02087820 @ case 11 - b _02087918 @ case 12 - b _020879A0 @ case 13 - b _020879A0 @ case 14 - b _02087968 @ case 15 - b _020879A0 @ case 16 - b _02087820 @ case 17 - b _020879A0 @ case 18 - b _020879A0 @ case 19 - b _02087820 @ case 20 -_02087820: - ldrb r0, [sp, #4] - cmp r0, #9 - moveq r0, #0xff - strbeq r0, [sp, #5] - beq _020879A8 - ldrb r0, [sp, #2] - cmp r0, #0 - moveq r0, #1 - streq r0, [sp, #0xc] - beq _020879A8 - ldrb r0, [sp] - cmp r0, #2 - moveq r0, #1 - strbeq r0, [sp] - b _020879A8 -_0208785C: - ldrb r0, [sp, #4] - cmp r0, #2 - cmpne r0, #6 - cmpne r0, #7 - cmpne r0, #8 - cmpne r0, #4 - moveq r0, #0xff - strbeq r0, [sp, #5] - beq _020879A8 - ldrb r0, [sp, #2] - cmp r0, #0 - moveq r0, #6 - streq r0, [sp, #0xc] - b _020879A8 -_02087894: - ldrb r0, [sp, #2] - cmp r0, #0 - moveq r0, #0xd - streq r0, [sp, #0xc] - ldrb r0, [sp, #4] - cmp r0, #2 - cmpne r0, #6 - cmpne r0, #7 - cmpne r0, #8 - cmpne r0, #4 - cmpne r0, #1 - moveq r0, #0xff - strbeq r0, [sp, #5] - b _020879A8 -_020878CC: - ldr r0, [sp, #0xc] - cmp r0, #0 - moveq r0, #1 - streq r0, [sp, #0xc] -_020878DC: - ldrb r0, [sp, #4] - cmp r0, #2 - cmpne r0, #6 - cmpne r0, #7 - cmpne r0, #8 - cmpne r0, #4 - cmpne r0, #1 - moveq r0, #0xff - strbeq r0, [sp, #5] - beq _020879A8 - ldrb r0, [sp, #2] - cmp r0, #0 - moveq r0, #6 - streq r0, [sp, #0xc] - b _020879A8 -_02087918: - mov r3, #0x78 - mov r2, #1 - mov r1, #3 - mov r0, #8 - strb r3, [sp, #5] - strb r2, [sp, #3] - strb r1, [sp, #4] - str r0, [sp, #0xc] - b _020879A8 -_0208793C: - ldrb r1, [sp, #4] + mov r4, r2 + cmp r1, #2 + beq _022E6690 cmp r1, #3 - moveq r0, #5 - strbeq r0, [sp, #4] - beq _020879A8 - ldrb r0, [sp, #2] - cmp r0, #0 - cmpeq r1, #0 - movne r0, #0xff - strbne r0, [sp, #5] - b _020879A8 -_02087968: - ldrb r0, [sp, #4] - cmp r0, #3 - moveq r0, #5 - strbeq r0, [sp, #4] - beq _020879A8 - cmp r0, #0 - movne r0, #0xff - strbne r0, [sp, #5] - b _020879A8 -_0208798C: - ldrb r0, [sp, #4] - cmp r0, #9 - moveq r0, #0xff - strbeq r0, [sp, #5] - b _020879A8 -_020879A0: - mov r0, #0xff - strb r0, [sp, #5] -_020879A8: - add r0, sp, #0 - ldm r0, {r0, r1, r2, r3} - stm lr, {r0, r1, r2, r3} - add r0, ip, #1 - add sp, sp, #0x10 - pop {r4, r5, r6, r7, r8, pc} - .align 2, 0 -_020879C0: .4byte 0x020AEDB0 -_020879C4: .4byte 0x000001FD - arm_func_end FUN_02087438 - - arm_func_start FUN_020879c8 -FUN_020879c8: @ 0x020879C8 - push {r0, r1, r2, r3} - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x10 - movs sl, r0 - mov r0, #0 - mov r5, r1 - str r0, [sp, #0xc] - ldr r7, [sp, #0x4c] - mov r6, r0 - strb r0, [r5, #-1]! - ldrb r0, [sp, #0x43] - str r1, [sp] - ldrb r8, [sp, #0x45] - str r0, [sp, #4] - ldr r0, [sp, #0x48] - ldrb fp, [sp, #0x41] - str r0, [sp, #8] - cmpeq r7, #0 - bne _02087A3C - ldr r0, [sp, #4] - cmp r0, #0 - beq _02087A28 - cmp r8, #0x6f - beq _02087A3C -_02087A28: - add sp, sp, #0x10 - mov r0, r5 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_02087A3C: - cmp r8, #0x69 - bgt _02087A64 - bge _02087A98 - cmp r8, #0x58 - bgt _02087A58 - beq _02087AC4 - b _02087ACC -_02087A58: - cmp r8, #0x64 - beq _02087A98 - b _02087ACC -_02087A64: - cmp r8, #0x6f - bgt _02087A78 - moveq r4, #8 - moveq fp, #0 - b _02087ACC -_02087A78: - cmp r8, #0x78 - bgt _02087ACC - cmp r8, #0x75 - blt _02087ACC - beq _02087AB8 - cmp r8, #0x78 - beq _02087AC4 - b _02087ACC -_02087A98: - cmp sl, #0 - mov r4, #0xa - bge _02087ACC - mov r0, #1 - cmp sl, #0x80000000 - rsbne sl, sl, #0 - str r0, [sp, #0xc] - b _02087ACC -_02087AB8: - mov r4, #0xa - mov fp, #0 - b _02087ACC -_02087AC4: - mov r4, #0x10 - mov fp, #0 -_02087ACC: - mov r0, sl - mov r1, r4 - bl DivideUInt - mov sb, r1 - mov r0, sl - mov r1, r4 - bl DivideUInt - cmp sb, #0xa - mov sl, r0 - addlt sb, sb, #0x30 - blt _02087B04 - cmp r8, #0x78 - addeq sb, sb, #0x57 - addne sb, sb, #0x37 -_02087B04: - cmp sl, #0 - strb sb, [r5, #-1]! - add r6, r6, #1 - bne _02087ACC - cmp r4, #8 - bne _02087B38 - ldr r0, [sp, #4] - cmp r0, #0 - ldrsbne r0, [r5] - cmpne r0, #0x30 - movne r0, #0x30 - strbne r0, [r5, #-1]! - addne r6, r6, #1 -_02087B38: - ldrb r0, [sp, #0x40] - cmp r0, #2 - bne _02087B6C - ldr r0, [sp, #0xc] - ldr r7, [sp, #8] - cmp r0, #0 - cmpeq fp, #0 - subne r7, r7, #1 - cmp r4, #0x10 - bne _02087B6C - ldr r0, [sp, #4] - cmp r0, #0 - subne r7, r7, #2 -_02087B6C: - ldr r0, [sp] - sub r1, r0, r5 - ldr r0, _02087C10 @ =0x000001FD - add r1, r7, r1 - cmp r1, r0 - addgt sp, sp, #0x10 - movgt r0, #0 - popgt {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - addgt sp, sp, #0x10 - bxgt lr - cmp r6, r7 - bge _02087BB0 - mov r0, #0x30 -_02087BA0: - add r6, r6, #1 - cmp r6, r7 - strb r0, [r5, #-1]! - blt _02087BA0 -_02087BB0: - cmp r4, #0x10 - bne _02087BCC - ldr r0, [sp, #4] - cmp r0, #0 - movne r0, #0x30 - strbne r8, [r5, #-1] - strbne r0, [r5, #-2]! -_02087BCC: - ldr r0, [sp, #0xc] - cmp r0, #0 - movne r0, #0x2d - strbne r0, [r5, #-1]! - bne _02087BFC - cmp fp, #1 - moveq r0, #0x2b - strbeq r0, [r5, #-1]! - beq _02087BFC - cmp fp, #2 - moveq r0, #0x20 - strbeq r0, [r5, #-1]! -_02087BFC: - mov r0, r5 - add sp, sp, #0x10 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr - .align 2, 0 -_02087C10: .4byte 0x000001FD - arm_func_end FUN_020879c8 - - arm_func_start FUN_02087c14 -FUN_02087c14: @ 0x02087C14 - push {r0, r1, r2, r3} - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x1c - mov sb, r1 - mov r1, #0 - mov sl, r0 - mov r8, r2 - mov r0, r1 - strb r0, [r8, #-1]! - ldr r0, [sp, #0x58] - cmp sb, #0 - str r0, [sp, #0x14] - ldrb r0, [sp, #0x4f] - cmpeq sl, #0 - str r2, [sp] - str r0, [sp, #4] - ldrb r0, [sp, #0x51] - str r1, [sp, #0x18] - mov fp, r1 - str r0, [sp, #8] - ldr r0, [sp, #0x54] - str r0, [sp, #0xc] - ldrb r0, [sp, #0x4d] - str r0, [sp, #0x10] - ldreq r0, [sp, #0x14] - cmpeq r0, #0 - bne _02087CAC - ldr r0, [sp, #4] - cmp r0, #0 - beq _02087C98 - ldr r0, [sp, #8] - cmp r0, #0x6f - beq _02087CAC -_02087C98: - add sp, sp, #0x1c - mov r0, r8 - pop {r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_02087CAC: - ldr r0, [sp, #8] - cmp r0, #0x69 - bgt _02087CD8 - bge _02087D08 - cmp r0, #0x58 - bgt _02087CCC - beq _02087D5C - b _02087D68 -_02087CCC: - cmp r0, #0x64 - beq _02087D08 - b _02087D68 -_02087CD8: - cmp r0, #0x6f - bgt _02087CE8 - beq _02087D3C - b _02087D68 -_02087CE8: - cmp r0, #0x78 - bgt _02087D68 - cmp r0, #0x75 - blt _02087D68 - beq _02087D4C - cmp r0, #0x78 - beq _02087D5C - b _02087D68 -_02087D08: - subs r0, sl, #0 - sbcs r0, sb, #0 - mov r7, #0xa - mov r6, #0 - bge _02087D68 - cmp sb, #0x80000000 - cmpeq sl, r6 - beq _02087D30 - rsbs sl, sl, #0 - rsc sb, sb, #0 -_02087D30: - mov r0, #1 - str r0, [sp, #0x18] - b _02087D68 -_02087D3C: - mov r6, #0 - str r6, [sp, #0x10] - mov r7, #8 - b _02087D68 -_02087D4C: - mov r6, #0 - str r6, [sp, #0x10] - mov r7, #0xa - b _02087D68 -_02087D5C: - mov r6, #0 - str r6, [sp, #0x10] - mov r7, #0x10 -_02087D68: - mov r4, #0 -_02087D6C: - mov r0, sl - mov r1, sb - mov r2, r7 - mov r3, r6 - bl FUN_0208fe48 - mov r5, r0 - mov r0, sl - mov r1, sb - mov r2, r7 - mov r3, r6 - bl FUN_0208fe3c - mov sl, r0 - cmp r5, #0xa - mov sb, r1 - addlt r0, r5, #0x30 - blt _02087DBC - ldr r0, [sp, #8] - cmp r0, #0x78 - addeq r0, r5, #0x57 - addne r0, r5, #0x37 -_02087DBC: - strb r0, [r8, #-1]! - mov r0, #0 - cmp sb, r0 - cmpeq sl, r4 - add fp, fp, #1 - bne _02087D6C - cmp r6, #0 - cmpeq r7, #8 - bne _02087DFC - ldr r0, [sp, #4] - cmp r0, #0 - ldrsbne r0, [r8] - cmpne r0, #0x30 - movne r0, #0x30 - strbne r0, [r8, #-1]! - addne fp, fp, #1 -_02087DFC: - ldrb r0, [sp, #0x4c] - cmp r0, #2 - bne _02087E4C - ldr r0, [sp, #0xc] - str r0, [sp, #0x14] - ldr r0, [sp, #0x18] - cmp r0, #0 - ldreq r0, [sp, #0x10] - cmpeq r0, #0 - ldrne r0, [sp, #0x14] - subne r0, r0, #1 - strne r0, [sp, #0x14] - cmp r6, #0 - cmpeq r7, #0x10 - bne _02087E4C - ldr r0, [sp, #4] - cmp r0, #0 - ldrne r0, [sp, #0x14] - subne r0, r0, #2 - strne r0, [sp, #0x14] -_02087E4C: - ldr r0, [sp] - ldr r1, _02087F0C @ =0x000001FD - sub r2, r0, r8 - ldr r0, [sp, #0x14] - add r0, r0, r2 - cmp r0, r1 - addgt sp, sp, #0x1c - movgt r0, #0 - popgt {r4, r5, r6, r7, r8, sb, sl, fp, lr} - addgt sp, sp, #0x10 - bxgt lr - ldr r0, [sp, #0x14] - cmp fp, r0 - bge _02087E9C - mov r1, #0x30 -_02087E88: - ldr r0, [sp, #0x14] - add fp, fp, #1 - cmp fp, r0 - strb r1, [r8, #-1]! - blt _02087E88 -_02087E9C: - cmp r6, #0 - cmpeq r7, #0x10 - bne _02087EC4 - ldr r0, [sp, #4] - cmp r0, #0 - beq _02087EC4 - ldr r0, [sp, #8] - mov r1, #0x30 - strb r0, [r8, #-1] - strb r1, [r8, #-2]! -_02087EC4: - ldr r0, [sp, #0x18] - cmp r0, #0 - movne r0, #0x2d - strbne r0, [r8, #-1]! - bne _02087EF8 - ldr r0, [sp, #0x10] + beq _022E673C + cmp r1, #4 + beq _022E6804 + pop {r4, r5, r6, pc} +_022E6690: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] cmp r0, #1 - moveq r0, #0x2b - strbeq r0, [r8, #-1]! - beq _02087EF8 - cmp r0, #2 - moveq r0, #0x20 - strbeq r0, [r8, #-1]! -_02087EF8: - mov r0, r8 - add sp, sp, #0x1c - pop {r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr - .align 2, 0 -_02087F0C: .4byte 0x000001FD - arm_func_end FUN_02087c14 - - arm_func_start FUN_02087f10 -FUN_02087f10: @ 0x02087F10 - push {r0, r1, r2, r3} - push {r3, r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #0x44 - ldr r7, [sp, #0x80] - ldr r0, _020883C0 @ =0x000001FD - mov r8, r2 - cmp r7, r0 - ldrb r6, [sp, #0x79] - ldrb r5, [sp, #0x77] - ldrb r4, [sp, #0x75] - ldr r1, [sp, #0x68] - ldr r2, [sp, #0x6c] - addgt sp, sp, #0x44 - movgt r0, #0 - popgt {r3, r4, r5, r6, r7, r8, sb, sl, lr} - addgt sp, sp, #0x10 - bxgt lr - mov sl, #0 - mov sb, #0x20 - add r0, sp, #8 - add r3, sp, #0xc - strb sl, [sp, #8] - strh sb, [sp, #0xa] - bl FUN_0208d638 - ldr r0, [sp, #0x68] - ldr r1, [sp, #0x6c] - bl FUN_0208c5b4 - mov r2, r0 - mov r0, sl - mov r3, r1 - mov r1, r0 - bl FUN_0208f0b4 - bne _02087FDC - ldr r3, _020883C4 @ =0x020B31E4 - sub r0, r8, #6 - ldrb r2, [r3] - ldrb r1, [r3, #1] - add sp, sp, #0x44 - strb r2, [r8, #-6] - strb r1, [r0, #1] - ldrb r2, [r3, #2] - ldrb r1, [r3, #3] - strb r2, [r0, #2] - strb r1, [r0, #3] - ldrb r2, [r3, #4] - ldrb r1, [r3, #5] - strb r2, [r0, #4] - strb r1, [r0, #5] - pop {r3, r4, r5, r6, r7, r8, sb, sl, lr} - add sp, sp, #0x10 - bx lr -_02087FDC: - ldrb r0, [sp, #0x11] - cmp r0, #0x49 - bne _020880EC - ldrsb r0, [sp, #0xc] - cmp r0, #0 - beq _02088078 - cmp r6, #0x41 - sub r0, r8, #5 - bne _0208803C - ldr r3, _020883C8 @ =0x020B31EC - add sp, sp, #0x44 - ldrb r2, [r3] - ldrb r1, [r3, #1] - strb r2, [r0] - strb r1, [r0, #1] - ldrb r2, [r3, #2] - ldrb r1, [r3, #3] - strb r2, [r0, #2] - strb r1, [r0, #3] - ldrb r1, [r3, #4] - strb r1, [r0, #4] - pop {r3, r4, r5, r6, r7, r8, sb, sl, lr} - add sp, sp, #0x10 - bx lr -_0208803C: - ldr r3, _020883CC @ =0x020B31F4 - add sp, sp, #0x44 - ldrb r2, [r3] - ldrb r1, [r3, #1] - strb r2, [r0] - strb r1, [r0, #1] - ldrb r2, [r3, #2] - ldrb r1, [r3, #3] - strb r2, [r0, #2] - strb r1, [r0, #3] - ldrb r1, [r3, #4] - strb r1, [r0, #4] - pop {r3, r4, r5, r6, r7, r8, sb, sl, lr} - add sp, sp, #0x10 - bx lr -_02088078: - cmp r6, #0x41 - sub r0, r8, #4 - bne _020880B8 - ldr r3, _020883D0 @ =0x020B31FC - add sp, sp, #0x44 - ldrb r2, [r3] - ldrb r1, [r3, #1] - strb r2, [r0] - strb r1, [r0, #1] - ldrb r2, [r3, #2] - ldrb r1, [r3, #3] - strb r2, [r0, #2] - strb r1, [r0, #3] - pop {r3, r4, r5, r6, r7, r8, sb, sl, lr} - add sp, sp, #0x10 - bx lr -_020880B8: - ldr r3, _020883D4 @ =0x020B3200 - add sp, sp, #0x44 - ldrb r2, [r3] - ldrb r1, [r3, #1] - strb r2, [r0] - strb r1, [r0, #1] - ldrb r2, [r3, #2] - ldrb r1, [r3, #3] - strb r2, [r0, #2] - strb r1, [r0, #3] - pop {r3, r4, r5, r6, r7, r8, sb, sl, lr} - add sp, sp, #0x10 - bx lr -_020880EC: - cmp r0, #0x4e - bne _020881F8 - ldrsb r0, [sp, #0xc] - cmp r0, #0 - beq _02088184 - cmp r6, #0x41 - sub r0, r8, #5 - bne _02088148 - ldr r3, _020883D8 @ =0x020B3204 - add sp, sp, #0x44 - ldrb r2, [r3] - ldrb r1, [r3, #1] - strb r2, [r0] - strb r1, [r0, #1] - ldrb r2, [r3, #2] - ldrb r1, [r3, #3] - strb r2, [r0, #2] - strb r1, [r0, #3] - ldrb r1, [r3, #4] - strb r1, [r0, #4] - pop {r3, r4, r5, r6, r7, r8, sb, sl, lr} - add sp, sp, #0x10 - bx lr -_02088148: - ldr r3, _020883DC @ =0x020B320C - add sp, sp, #0x44 - ldrb r2, [r3] - ldrb r1, [r3, #1] - strb r2, [r0] - strb r1, [r0, #1] - ldrb r2, [r3, #2] - ldrb r1, [r3, #3] - strb r2, [r0, #2] - strb r1, [r0, #3] - ldrb r1, [r3, #4] - strb r1, [r0, #4] - pop {r3, r4, r5, r6, r7, r8, sb, sl, lr} - add sp, sp, #0x10 - bx lr -_02088184: - cmp r6, #0x41 - sub r0, r8, #4 - bne _020881C4 - ldr r3, _020883E0 @ =0x020B3214 - add sp, sp, #0x44 - ldrb r2, [r3] - ldrb r1, [r3, #1] - strb r2, [r0] - strb r1, [r0, #1] - ldrb r2, [r3, #2] - ldrb r1, [r3, #3] - strb r2, [r0, #2] - strb r1, [r0, #3] - pop {r3, r4, r5, r6, r7, r8, sb, sl, lr} - add sp, sp, #0x10 - bx lr -_020881C4: - ldr r3, _020883E4 @ =0x020B3218 - add sp, sp, #0x44 - ldrb r2, [r3] - ldrb r1, [r3, #1] - strb r2, [r0] - strb r1, [r0, #1] - ldrb r2, [r3, #2] - ldrb r1, [r3, #3] - strb r2, [r0, #2] - strb r1, [r0, #3] - pop {r3, r4, r5, r6, r7, r8, sb, sl, lr} - add sp, sp, #0x10 - bx lr -_020881F8: - mov r3, sl - mov r1, #1 - mov r0, #0x64 - add sb, sp, #0x68 - strb r1, [sp, #0x34] - strb r1, [sp, #0x35] - strb r3, [sp, #0x36] - strb r3, [sp, #0x37] - strb r3, [sp, #0x38] - str r3, [sp, #0x3c] - str r1, [sp, #0x40] - strb r0, [sp, #0x39] -_02088228: - rsb r1, r3, #7 - ldrsb r2, [sb, r3] - ldrsb r0, [sb, r1] - strb r0, [sb, r3] - add r3, r3, #1 - strb r2, [sb, r1] - cmp r3, #4 - blt _02088228 - ldrb r0, [sp, #0x69] - ldrb r1, [sp, #0x68] - ldr sb, _020883E8 @ =0x000007FF - lsl r0, r0, #0x11 - orr r1, r0, r1, lsl #25 - add r0, sp, #0x34 - and lr, sb, r1, lsr #21 - sub ip, sp, #8 - ldm r0, {r0, r1, r2, r3} - stm ip, {r0, r1, r2, r3} - rsb r0, sb, #0x400 - mov r1, r8 - add r0, lr, r0 - ldm ip, {r2, r3} - bl FUN_020879c8 - cmp r6, #0x61 - moveq r1, #0x70 - movne r1, #0x50 - strb r1, [r0, #-1]! - lsl r1, r7, #2 - mov lr, r7 - cmp r7, #1 - add r8, r1, #0xb - add ip, sp, #0x68 - blt _02088338 - mov sb, #0x30 -_020882B0: - cmp r8, #0x40 - bge _02088320 - ldrb r1, [ip, r8, asr #3] - and r2, r8, #7 - rsb r3, r2, #7 - asr r2, r1, r3 - sub sl, r8, #4 - bic r1, r8, #7 - bic sl, sl, #7 - cmp r1, sl - add sl, ip, r8, asr #3 - and r1, r2, #0xff - beq _020882F4 - ldrb r2, [sl, #-1] - lsl r2, r2, #8 - orr r1, r1, r2, asr r3 - and r1, r1, #0xff -_020882F4: - and r1, r1, #0xf - cmp r1, #0xa - addlo r1, r1, #0x30 - andlo r1, r1, #0xff - blo _02088324 - cmp r6, #0x61 - addeq r1, r1, #0x57 - andeq r1, r1, #0xff - addne r1, r1, #0x37 - andne r1, r1, #0xff - b _02088324 -_02088320: - mov r1, sb -_02088324: - sub lr, lr, #1 - cmp lr, #1 - strb r1, [r0, #-1]! - sub r8, r8, #4 - bge _020882B0 -_02088338: - cmp r7, #0 - cmpeq r5, #0 - movne r1, #0x2e - strbne r1, [r0, #-1]! - mov r1, #0x31 - strb r1, [r0, #-1] - cmp r6, #0x61 - moveq r1, #0x78 - movne r1, #0x58 - strb r1, [r0, #-2]! - mov r1, #0x30 - strb r1, [r0, #-1]! - ldrsb r1, [sp, #0xc] - cmp r1, #0 - movne r1, #0x2d - strbne r1, [r0, #-1]! - addne sp, sp, #0x44 - popne {r3, r4, r5, r6, r7, r8, sb, sl, lr} - addne sp, sp, #0x10 - bxne lr - cmp r4, #1 - moveq r1, #0x2b - strbeq r1, [r0, #-1]! - addeq sp, sp, #0x44 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, lr} - addeq sp, sp, #0x10 - bxeq lr - cmp r4, #2 - moveq r1, #0x20 - strbeq r1, [r0, #-1]! - add sp, sp, #0x44 - pop {r3, r4, r5, r6, r7, r8, sb, sl, lr} - add sp, sp, #0x10 - bx lr - .align 2, 0 -_020883C0: .4byte 0x000001FD -_020883C4: .4byte 0x020B31E4 -_020883C8: .4byte 0x020B31EC -_020883CC: .4byte 0x020B31F4 -_020883D0: .4byte 0x020B31FC -_020883D4: .4byte 0x020B3200 -_020883D8: .4byte 0x020B3204 -_020883DC: .4byte 0x020B320C -_020883E0: .4byte 0x020B3214 -_020883E4: .4byte 0x020B3218 -_020883E8: .4byte 0x000007FF - arm_func_end FUN_02087f10 - - arm_func_start FUN_020883ec -FUN_020883ec: @ 0x020883EC - push {r4, lr} - cmp r1, #0 - bge _02088414 -_020883F8: - mov r1, #0 - strh r1, [r0, #2] - mov r1, #1 - strb r1, [r0, #4] - mov r1, #0x30 - strb r1, [r0, #5] - pop {r4, pc} -_02088414: - ldrb lr, [r0, #4] - cmp r1, lr - popge {r4, pc} - add ip, r0, #5 - add r2, ip, r1 - add r2, r2, #1 - ldrsb r3, [r2, #-1]! - sub r3, r3, #0x30 - lsl r3, r3, #0x18 - asr r3, r3, #0x18 - cmp r3, #5 - bne _02088474 - add ip, ip, lr -_02088448: - sub ip, ip, #1 - cmp ip, r2 - bls _02088460 - ldrsb r3, [ip] - cmp r3, #0x30 - beq _02088448 -_02088460: - cmp ip, r2 - ldrsbeq r3, [r2, #-1] - andeq r4, r3, #1 - movne r4, #1 - b _0208847C -_02088474: - movgt r4, #1 - movle r4, #0 -_0208847C: - cmp r1, #0 - beq _020884D8 - mov ip, #0 - mov lr, #1 -_0208848C: - ldrsb r3, [r2, #-1]! - sub r3, r3, #0x30 - add r3, r3, r4 - lsl r3, r3, #0x18 - asr r3, r3, #0x18 - cmp r3, #9 - movgt r4, lr - movle r4, ip - cmp r4, #0 - bne _020884BC - cmp r3, #0 - bne _020884C4 -_020884BC: - sub r1, r1, #1 - b _020884D0 -_020884C4: - add r3, r3, #0x30 - strb r3, [r2] - b _020884D8 -_020884D0: - cmp r1, #0 - bne _0208848C -_020884D8: - cmp r4, #0 - beq _02088500 - ldrsh r3, [r0, #2] - mov r2, #1 - mov r1, #0x31 - add r3, r3, #1 - strh r3, [r0, #2] - strb r2, [r0, #4] - strb r1, [r0, #5] - pop {r4, pc} -_02088500: - cmp r1, #0 - beq _020883F8 - strb r1, [r0, #4] - pop {r4, pc} - arm_func_end FUN_020883ec - - arm_func_start FUN_02088510 -FUN_02088510: @ 0x02088510 - push {r0, r1, r2, r3} - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x2c - ldr r7, [sp, #0x68] - ldr r3, _02088C48 @ =0x000001FD - ldrb r6, [sp, #0x61] - ldrb r5, [sp, #0x5f] - ldrb r4, [sp, #0x5d] - cmp r7, r3 - mov sl, r0 - mov r8, r1 - mov sb, r2 - addgt sp, sp, #0x2c - movgt r0, #0 - popgt {r4, r5, r6, r7, r8, sb, sl, fp, lr} - addgt sp, sp, #0x10 - bxgt lr - mov ip, #0 - mov fp, #0x20 - add r0, sp, #0 - add r3, sp, #4 - mov r1, sl - mov r2, r8 - strb ip, [sp] - strh fp, [sp, #2] - bl FUN_0208d638 - ldrb r0, [sp, #8] - add r1, sp, #9 - add r0, r1, r0 - b _020885A0 -_02088588: - ldrb r2, [sp, #8] - ldrsh r1, [sp, #6] - sub r2, r2, #1 - add r1, r1, #1 - strb r2, [sp, #8] - strh r1, [sp, #6] -_020885A0: - ldrb r1, [sp, #8] - cmp r1, #1 - bls _020885B8 - ldrsb r1, [r0, #-1]! - cmp r1, #0x30 - beq _02088588 -_020885B8: - ldrb r0, [sp, #9] - cmp r0, #0x30 - beq _020885D8 - cmp r0, #0x49 - beq _020885E4 - cmp r0, #0x4e - beq _02088744 - b _02088898 -_020885D8: - mov r0, #0 - strh r0, [sp, #6] - b _02088898 -_020885E4: - mov r2, #0 - mov r0, sl - mov r1, r8 - mov r3, r2 - bl FUN_0208f018 - bhs _020886A8 - cmp r6, #0 - sub r0, sb, #5 - blt _02088610 - cmp r6, #0x80 - blt _02088618 -_02088610: - mov r1, #0 - b _02088628 -_02088618: - ldr r1, _02088C4C @ =0x020AEDB0 - lsl r2, r6, #1 - ldrh r1, [r1, r2] - and r1, r1, #0x200 -_02088628: - cmp r1, #0 - beq _0208866C - ldr r3, _02088C50 @ =0x020B31EC - add sp, sp, #0x2c - ldrb r2, [r3] - ldrb r1, [r3, #1] - strb r2, [r0] - strb r1, [r0, #1] - ldrb r2, [r3, #2] - ldrb r1, [r3, #3] - strb r2, [r0, #2] - strb r1, [r0, #3] - ldrb r1, [r3, #4] - strb r1, [r0, #4] - pop {r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_0208866C: - ldr r3, _02088C54 @ =0x020B31F4 - add sp, sp, #0x2c - ldrb r2, [r3] - ldrb r1, [r3, #1] - strb r2, [r0] - strb r1, [r0, #1] - ldrb r2, [r3, #2] - ldrb r1, [r3, #3] - strb r2, [r0, #2] - strb r1, [r0, #3] - ldrb r1, [r3, #4] - strb r1, [r0, #4] - pop {r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_020886A8: - cmp r6, #0 - sub r0, sb, #4 - blt _020886BC - cmp r6, #0x80 - blt _020886C4 -_020886BC: - mov r1, #0 - b _020886D4 -_020886C4: - ldr r1, _02088C4C @ =0x020AEDB0 - lsl r2, r6, #1 - ldrh r1, [r1, r2] - and r1, r1, #0x200 -_020886D4: - cmp r1, #0 - beq _02088710 - ldr r3, _02088C58 @ =0x020B31FC - add sp, sp, #0x2c - ldrb r2, [r3] - ldrb r1, [r3, #1] - strb r2, [r0] - strb r1, [r0, #1] - ldrb r2, [r3, #2] - ldrb r1, [r3, #3] - strb r2, [r0, #2] - strb r1, [r0, #3] - pop {r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_02088710: - ldr r3, _02088C5C @ =0x020B3200 - add sp, sp, #0x2c - ldrb r2, [r3] - ldrb r1, [r3, #1] - strb r2, [r0] - strb r1, [r0, #1] - ldrb r2, [r3, #2] - ldrb r1, [r3, #3] - strb r2, [r0, #2] - strb r1, [r0, #3] - pop {r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_02088744: - ldrsb r0, [sp, #4] - cmp r0, #0 - beq _020887FC - cmp r6, #0 - sub r0, sb, #5 - blt _02088764 - cmp r6, #0x80 - blt _0208876C -_02088764: - mov r1, #0 - b _0208877C -_0208876C: - ldr r1, _02088C4C @ =0x020AEDB0 - lsl r2, r6, #1 - ldrh r1, [r1, r2] - and r1, r1, #0x200 -_0208877C: - cmp r1, #0 - beq _020887C0 - ldr r3, _02088C60 @ =0x020B3204 - add sp, sp, #0x2c - ldrb r2, [r3] - ldrb r1, [r3, #1] - strb r2, [r0] - strb r1, [r0, #1] - ldrb r2, [r3, #2] - ldrb r1, [r3, #3] - strb r2, [r0, #2] - strb r1, [r0, #3] - ldrb r1, [r3, #4] - strb r1, [r0, #4] - pop {r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_020887C0: - ldr r3, _02088C64 @ =0x020B320C - add sp, sp, #0x2c - ldrb r2, [r3] - ldrb r1, [r3, #1] - strb r2, [r0] - strb r1, [r0, #1] - ldrb r2, [r3, #2] - ldrb r1, [r3, #3] - strb r2, [r0, #2] - strb r1, [r0, #3] - ldrb r1, [r3, #4] - strb r1, [r0, #4] - pop {r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_020887FC: - cmp r6, #0 - sub r0, sb, #4 - blt _02088810 - cmp r6, #0x80 - blt _02088818 -_02088810: - mov r1, #0 - b _02088828 -_02088818: - ldr r1, _02088C4C @ =0x020AEDB0 - lsl r2, r6, #1 - ldrh r1, [r1, r2] - and r1, r1, #0x200 -_02088828: - cmp r1, #0 - beq _02088864 - ldr r3, _02088C68 @ =0x020B3214 - add sp, sp, #0x2c - ldrb r2, [r3] - ldrb r1, [r3, #1] - strb r2, [r0] - strb r1, [r0, #1] - ldrb r2, [r3, #2] - ldrb r1, [r3, #3] - strb r2, [r0, #2] - strb r1, [r0, #3] - pop {r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_02088864: - ldr r3, _02088C6C @ =0x020B3218 - add sp, sp, #0x2c - ldrb r2, [r3] - ldrb r1, [r3, #1] - strb r2, [r0] - strb r1, [r0, #1] - ldrb r2, [r3, #2] - ldrb r1, [r3, #3] - strb r2, [r0, #2] - strb r1, [r0, #3] - pop {r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_02088898: - ldrb r0, [sp, #8] - ldrsh r1, [sp, #6] - sub r8, sb, #1 - sub r0, r0, #1 - add r0, r1, r0 - strh r0, [sp, #6] - mov r0, #0 - strb r0, [r8] - cmp r6, #0x65 - bgt _020888EC - bge _02088978 - cmp r6, #0x47 - bgt _02088C34 - cmp r6, #0x45 - blt _02088C34 - beq _02088978 - cmp r6, #0x46 - beq _02088AC0 - cmp r6, #0x47 - beq _02088904 - b _02088C34 -_020888EC: - cmp r6, #0x66 - bgt _020888FC - beq _02088AC0 - b _02088C34 -_020888FC: - cmp r6, #0x67 - bne _02088C34 -_02088904: - ldrb r0, [sp, #8] - cmp r0, r7 - ble _0208891C - add r0, sp, #4 - mov r1, r7 - bl FUN_020883ec -_0208891C: - ldrsh r2, [sp, #6] - mvn r0, #3 - cmp r2, r0 - blt _02088934 - cmp r2, r7 - blt _02088954 -_02088934: - cmp r5, #0 - ldrbeq r0, [sp, #8] - subne r7, r7, #1 - subeq r7, r0, #1 - cmp r6, #0x67 - moveq r6, #0x65 - movne r6, #0x45 - b _02088978 -_02088954: - cmp r5, #0 - addne r0, r2, #1 - subne r7, r7, r0 - bne _02088AC0 - ldrb r1, [sp, #8] - add r0, r2, #1 - subs r7, r1, r0 - movmi r7, #0 - b _02088AC0 -_02088978: - ldrb r0, [sp, #8] - add r1, r7, #1 - cmp r0, r1 - ble _02088990 - add r0, sp, #4 - bl FUN_020883ec -_02088990: - ldrsh lr, [sp, #6] - mov fp, #0x2b - mov sl, #0 - cmp lr, #0 - rsblt lr, lr, #0 - movlt fp, #0x2d - ldr r3, _02088C70 @ =0x66666667 - mov r0, #0xa - b _020889E4 -_020889B4: - lsr r1, lr, #0x1f - smull r2, ip, r3, lr - add ip, r1, ip, asr #2 - smull r1, r2, r0, ip - sub ip, lr, r1 - add r1, ip, #0x30 - strb r1, [r8, #-1]! - mov r2, lr - smull r1, lr, r3, r2 - lsr r1, r2, #0x1f - add lr, r1, lr, asr #2 - add sl, sl, #1 -_020889E4: - cmp lr, #0 - bne _020889B4 - cmp sl, #2 - blt _020889B4 - strb fp, [r8, #-1] - strb r6, [r8, #-2]! - sub r1, sb, r8 - ldr r0, _02088C48 @ =0x000001FD - add r1, r7, r1 - cmp r1, r0 - addgt sp, sp, #0x2c - movgt r0, #0 - popgt {r4, r5, r6, r7, r8, sb, sl, fp, lr} - addgt sp, sp, #0x10 - bxgt lr - ldrb r1, [sp, #8] - add r0, r7, #1 - cmp r1, r0 - bge _02088A50 - add r0, r7, #2 - sub r0, r0, r1 - subs r1, r0, #1 - beq _02088A50 - mov r0, #0x30 -_02088A44: - strb r0, [r8, #-1]! - subs r1, r1, #1 - bne _02088A44 -_02088A50: - ldrb r1, [sp, #8] - add r0, sp, #9 - add r2, r0, r1 - subs r1, r1, #1 - beq _02088A74 -_02088A64: - ldrsb r0, [r2, #-1]! - subs r1, r1, #1 - strb r0, [r8, #-1]! - bne _02088A64 -_02088A74: - cmp r7, #0 - cmpeq r5, #0 - movne r0, #0x2e - strbne r0, [r8, #-1]! - ldrb r0, [sp, #9] - strb r0, [r8, #-1]! - ldrsb r0, [sp, #4] - cmp r0, #0 - movne r0, #0x2d - strbne r0, [r8, #-1]! - bne _02088C34 - cmp r4, #1 - moveq r0, #0x2b - strbeq r0, [r8, #-1]! - beq _02088C34 - cmp r4, #2 - moveq r0, #0x20 - strbeq r0, [r8, #-1]! - b _02088C34 -_02088AC0: - ldrsh r3, [sp, #6] - ldrb r2, [sp, #8] - sub r0, r2, r3 - subs r1, r0, #1 - movmi r1, #0 - cmp r1, r7 - ble _02088B00 - sub r1, r1, r7 - add r0, sp, #4 - sub r1, r2, r1 - bl FUN_020883ec - ldrsh r3, [sp, #6] - ldrb r2, [sp, #8] - sub r0, r2, r3 - subs r1, r0, #1 - movmi r1, #0 -_02088B00: - adds r0, r3, #1 - movmi r0, #0 - ldr r3, _02088C48 @ =0x000001FD - add r6, r0, r1 - cmp r6, r3 - addgt sp, sp, #0x2c - movgt r0, #0 - popgt {r4, r5, r6, r7, r8, sb, sl, fp, lr} - addgt sp, sp, #0x10 - bxgt lr - add r3, sp, #9 - sub r6, r7, r1 - cmp r6, #0 - add r2, r3, r2 - mov sb, #0 - ble _02088B54 - mov r3, #0x30 -_02088B44: - add sb, sb, #1 - cmp sb, r6 - strb r3, [r8, #-1]! - blt _02088B44 -_02088B54: - mov r6, #0 - b _02088B68 -_02088B5C: - ldrsb r3, [r2, #-1]! - add r6, r6, #1 - strb r3, [r8, #-1]! -_02088B68: - cmp r6, r1 - ldrblt r3, [sp, #8] - cmplt r6, r3 - blt _02088B5C - cmp r6, r1 - bge _02088B94 - mov r3, #0x30 -_02088B84: - add r6, r6, #1 - cmp r6, r1 - strb r3, [r8, #-1]! - blt _02088B84 -_02088B94: - cmp r7, #0 - cmpeq r5, #0 - movne r1, #0x2e - strbne r1, [r8, #-1]! - cmp r0, #0 - beq _02088BFC - ldrb r1, [sp, #8] - mov r5, #0 - sub r1, r0, r1 - cmp r1, #0 - ble _02088BDC - mov r3, #0x30 -_02088BC4: - strb r3, [r8, #-1]! - ldrb r1, [sp, #8] - add r5, r5, #1 - sub r1, r0, r1 - cmp r5, r1 - blt _02088BC4 -_02088BDC: - cmp r5, r0 - bge _02088C04 -_02088BE4: - ldrsb r1, [r2, #-1]! - add r5, r5, #1 - cmp r5, r0 - strb r1, [r8, #-1]! - blt _02088BE4 - b _02088C04 -_02088BFC: - mov r0, #0x30 - strb r0, [r8, #-1]! -_02088C04: - ldrsb r0, [sp, #4] - cmp r0, #0 - movne r0, #0x2d - strbne r0, [r8, #-1]! - bne _02088C34 - cmp r4, #1 - moveq r0, #0x2b - strbeq r0, [r8, #-1]! - beq _02088C34 - cmp r4, #2 - moveq r0, #0x20 - strbeq r0, [r8, #-1]! -_02088C34: - mov r0, r8 - add sp, sp, #0x2c - pop {r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr - .align 2, 0 -_02088C48: .4byte 0x000001FD -_02088C4C: .4byte 0x020AEDB0 -_02088C50: .4byte 0x020B31EC -_02088C54: .4byte 0x020B31F4 -_02088C58: .4byte 0x020B31FC -_02088C5C: .4byte 0x020B3200 -_02088C60: .4byte 0x020B3204 -_02088C64: .4byte 0x020B320C -_02088C68: .4byte 0x020B3214 -_02088C6C: .4byte 0x020B3218 -_02088C70: .4byte 0x66666667 - arm_func_end FUN_02088510 - - arm_func_start VsprintfInternalSlice -VsprintfInternalSlice: @ 0x02088C74 - push {r0, r1, r2, r3} - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x22c - mov r3, #0x20 - mov fp, r2 - strb r3, [sp, #0x19] - ldrsb r2, [fp] - mov sb, r0 - mov r8, r1 - cmp r2, #0 - mov sl, #0 - beq _0208947C -_02088CA4: - mov r0, fp - mov r1, #0x25 - bl Strchr - str r0, [sp, #0xc] - cmp r0, #0 - bne _02088CF8 - mov r0, fp - bl Strlen - movs r2, r0 - add sl, sl, r2 - beq _0208947C - mov r0, r8 - mov r1, fp - blx sb - cmp r0, #0 - bne _0208947C - add sp, sp, #0x22c - mvn r0, #0 - pop {r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_02088CF8: - subs r2, r0, fp - add sl, sl, r2 - beq _02088D28 - mov r0, r8 - mov r1, fp - blx sb - cmp r0, #0 - addeq sp, sp, #0x22c - mvneq r0, #0 - popeq {r4, r5, r6, r7, r8, sb, sl, fp, lr} - addeq sp, sp, #0x10 - bxeq lr -_02088D28: - ldr r0, [sp, #0xc] - add r1, sp, #0x25c - add r2, sp, #0x1c - bl FUN_02087438 - ldrb r1, [sp, #0x21] - mov fp, r0 - cmp r1, #0x61 - bgt _02088D94 - bge _020890F8 - cmp r1, #0x47 - bgt _02088D88 - subs r0, r1, #0x41 - addpl pc, pc, r0, lsl #2 - b _02088D7C -_02088D60: @ jump table - b _020890F8 @ case 0 - b _020892E0 @ case 1 - b _020892E0 @ case 2 - b _020892E0 @ case 3 - b _02089090 @ case 4 - b _02089090 @ case 5 - b _02089090 @ case 6 -_02088D7C: - cmp r1, #0x25 - beq _020892CC - b _020892E0 -_02088D88: - cmp r1, #0x58 - beq _02088F54 - b _020892E0 -_02088D94: - cmp r1, #0x75 - bgt _02088DFC - subs r0, r1, #0x64 - addpl pc, pc, r0, lsl #2 - b _02088DF0 -_02088DA8: @ jump table - b _02088E14 @ case 0 - b _02089090 @ case 1 - b _02089090 @ case 2 - b _02089090 @ case 3 - b _020892E0 @ case 4 - b _02088E14 @ case 5 - b _020892E0 @ case 6 - b _020892E0 @ case 7 - b _020892E0 @ case 8 - b _020892E0 @ case 9 - b _02089220 @ case 10 - b _02088F54 @ case 11 - b _020892E0 @ case 12 - b _020892E0 @ case 13 - b _020892E0 @ case 14 - b _02089160 @ case 15 - b _020892E0 @ case 16 - b _02088F54 @ case 17 -_02088DF0: - cmp r1, #0x63 - beq _020892AC - b _020892E0 -_02088DFC: - cmp r1, #0x78 - bgt _02088E0C - beq _02088F54 - b _020892E0 -_02088E0C: - cmp r1, #0xff - b _020892E0 -_02088E14: - ldrb r0, [sp, #0x20] - cmp r0, #3 - bne _02088E34 - ldr r1, [sp, #0x25c] - add r1, r1, #4 - str r1, [sp, #0x25c] - ldr r5, [r1, #-4] - b _02088ECC -_02088E34: - cmp r0, #4 - bne _02088E5C - ldr r1, [sp, #0x25c] - add r2, r1, #8 - str r2, [sp, #0x25c] - ldr r1, [r2, #-8] - str r1, [sp, #0x10] - ldr r1, [r2, #-4] - str r1, [sp, #0x14] - b _02088ECC -_02088E5C: - cmp r0, #6 - bne _02088E84 - ldr r1, [sp, #0x25c] - add r2, r1, #8 - str r2, [sp, #0x25c] - ldr r1, [r2, #-8] - str r1, [sp, #0x10] - ldr r1, [r2, #-4] - str r1, [sp, #0x14] - b _02088ECC -_02088E84: - cmp r0, #7 - bne _02088EA0 - ldr r1, [sp, #0x25c] - add r1, r1, #4 - str r1, [sp, #0x25c] - ldr r5, [r1, #-4] - b _02088ECC -_02088EA0: - cmp r0, #8 - bne _02088EBC - ldr r1, [sp, #0x25c] - add r1, r1, #4 - str r1, [sp, #0x25c] - ldr r5, [r1, #-4] - b _02088ECC -_02088EBC: - ldr r1, [sp, #0x25c] - add r1, r1, #4 - str r1, [sp, #0x25c] - ldr r5, [r1, #-4] -_02088ECC: - cmp r0, #2 - lsleq r1, r5, #0x10 - asreq r5, r1, #0x10 + bne _022E672C + ldrb r0, [r4] cmp r0, #1 - lsleq r1, r5, #0x18 - asreq r5, r1, #0x18 - cmp r0, #4 - cmpne r0, #6 - add r0, sp, #0x1c - bne _02088F20 - sub r4, sp, #4 - ldm r0, {r0, r1, r2, r3} - stm r4, {r0, r1, r2, r3} - ldr r3, [r4] - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x14] - add r2, sp, #0x22c - bl FUN_02087c14 - movs r7, r0 - beq _020892E0 - b _02088F44 -_02088F20: - sub r4, sp, #8 - ldm r0, {r0, r1, r2, r3} - stm r4, {r0, r1, r2, r3} - add r1, sp, #0x22c - mov r0, r5 - ldm r4, {r2, r3} - bl FUN_020879c8 - movs r7, r0 - beq _020892E0 -_02088F44: - add r0, sp, #0x200 - add r0, r0, #0x2b - sub r6, r0, r7 - b _0208932C -_02088F54: - ldrb r0, [sp, #0x20] - cmp r0, #3 - bne _02088F74 - ldr r1, [sp, #0x25c] - add r1, r1, #4 - str r1, [sp, #0x25c] - ldr r5, [r1, #-4] - b _0208900C -_02088F74: - cmp r0, #4 - bne _02088F9C - ldr r1, [sp, #0x25c] - add r2, r1, #8 - str r2, [sp, #0x25c] - ldr r1, [r2, #-8] - str r1, [sp, #0x10] - ldr r1, [r2, #-4] - str r1, [sp, #0x14] - b _0208900C -_02088F9C: - cmp r0, #6 - bne _02088FC4 - ldr r1, [sp, #0x25c] - add r2, r1, #8 - str r2, [sp, #0x25c] - ldr r1, [r2, #-8] - str r1, [sp, #0x10] - ldr r1, [r2, #-4] - str r1, [sp, #0x14] - b _0208900C -_02088FC4: - cmp r0, #7 - bne _02088FE0 - ldr r1, [sp, #0x25c] - add r1, r1, #4 - str r1, [sp, #0x25c] - ldr r5, [r1, #-4] - b _0208900C -_02088FE0: - cmp r0, #8 - bne _02088FFC - ldr r1, [sp, #0x25c] - add r1, r1, #4 - str r1, [sp, #0x25c] - ldr r5, [r1, #-4] - b _0208900C -_02088FFC: - ldr r1, [sp, #0x25c] - add r1, r1, #4 - str r1, [sp, #0x25c] - ldr r5, [r1, #-4] -_0208900C: - cmp r0, #2 - lsleq r1, r5, #0x10 - lsreq r5, r1, #0x10 - cmp r0, #1 - andeq r5, r5, #0xff - cmp r0, #4 - cmpne r0, #6 - add r0, sp, #0x1c - bne _0208905C - sub r4, sp, #4 - ldm r0, {r0, r1, r2, r3} - stm r4, {r0, r1, r2, r3} - ldr r3, [r4] - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x14] - add r2, sp, #0x22c - bl FUN_02087c14 - movs r7, r0 - beq _020892E0 - b _02089080 -_0208905C: - sub r4, sp, #8 - ldm r0, {r0, r1, r2, r3} - stm r4, {r0, r1, r2, r3} - add r1, sp, #0x22c - mov r0, r5 - ldm r4, {r2, r3} - bl FUN_020879c8 - movs r7, r0 - beq _020892E0 -_02089080: - add r0, sp, #0x200 - add r0, r0, #0x2b - sub r6, r0, r7 - b _0208932C -_02089090: - ldrb r0, [sp, #0x20] - cmp r0, #9 - ldrne r0, [sp, #0x25c] - addne r0, r0, #8 - strne r0, [sp, #0x25c] - bne _020890B4 - ldr r0, [sp, #0x25c] - add r0, r0, #8 - str r0, [sp, #0x25c] -_020890B4: - ldr r7, [r0, #-8] - ldr r6, [r0, #-4] - add r0, sp, #0x1c - sub r4, sp, #4 - ldm r0, {r0, r1, r2, r3} - stm r4, {r0, r1, r2, r3} - ldr r3, [r4] - mov r0, r7 - mov r1, r6 - add r2, sp, #0x22c - bl FUN_02088510 - movs r7, r0 - beq _020892E0 - add r0, sp, #0x200 - add r0, r0, #0x2b - sub r6, r0, r7 - b _0208932C -_020890F8: - ldrb r0, [sp, #0x20] - cmp r0, #9 - ldrne r0, [sp, #0x25c] - addne r0, r0, #8 - strne r0, [sp, #0x25c] - bne _0208911C - ldr r0, [sp, #0x25c] - add r0, r0, #8 - str r0, [sp, #0x25c] -_0208911C: - ldr r7, [r0, #-8] - ldr r6, [r0, #-4] - add r0, sp, #0x1c - sub r4, sp, #4 - ldm r0, {r0, r1, r2, r3} - stm r4, {r0, r1, r2, r3} - ldr r3, [r4] - mov r0, r7 - mov r1, r6 - add r2, sp, #0x22c - bl FUN_02087f10 - movs r7, r0 - beq _020892E0 - add r0, sp, #0x200 - add r0, r0, #0x2b - sub r6, r0, r7 - b _0208932C -_02089160: - ldrb r0, [sp, #0x20] - cmp r0, #5 - bne _020891A0 - ldr r0, [sp, #0x25c] - mov r2, #0x200 - add r0, r0, #4 - str r0, [sp, #0x25c] - ldr r1, [r0, #-4] - add r0, sp, #0x2c - cmp r1, #0 - ldreq r1, _02089490 @ =0x020B321C - bl Wcstombs - cmp r0, #0 - blt _020892E0 - add r7, sp, #0x2c - b _020891B0 -_020891A0: - ldr r0, [sp, #0x25c] - add r0, r0, #4 - str r0, [sp, #0x25c] - ldr r7, [r0, #-4] -_020891B0: - ldrb r0, [sp, #0x1f] - cmp r7, #0 - ldreq r7, _02089494 @ =0x020B3220 - cmp r0, #0 - beq _020891E4 - ldrb r0, [sp, #0x1e] - ldrb r6, [r7], #1 - cmp r0, #0 - beq _0208932C - ldr r0, [sp, #0x28] - cmp r6, r0 - movgt r6, r0 - b _0208932C -_020891E4: - ldrb r0, [sp, #0x1e] - cmp r0, #0 - beq _02089210 - ldr r6, [sp, #0x28] - mov r0, r7 - mov r2, r6 + bne _022E66B8 + bl ov00_022EC1C0 mov r1, #0 - bl Memchr - cmp r0, #0 - subne r6, r0, r7 - b _0208932C -_02089210: - mov r0, r7 - bl Strlen - mov r6, r0 - b _0208932C -_02089220: - ldr r1, [sp, #0x25c] - ldrb r0, [sp, #0x20] - add r1, r1, #4 - str r1, [sp, #0x25c] - ldr r1, [r1, #-4] - cmp r0, #8 - addls pc, pc, r0, lsl #2 - b _02089470 -_02089240: @ jump table - b _02089264 @ case 0 - b _02089470 @ case 1 - b _0208926C @ case 2 - b _02089274 @ case 3 - b _0208929C @ case 4 - b _02089470 @ case 5 - b _0208927C @ case 6 - b _0208928C @ case 7 - b _02089294 @ case 8 -_02089264: - str sl, [r1] - b _02089470 -_0208926C: - strh sl, [r1] - b _02089470 -_02089274: - str sl, [r1] - b _02089470 -_0208927C: - str sl, [r1] - asr r0, sl, #0x1f - str r0, [r1, #4] - b _02089470 -_0208928C: - str sl, [r1] - b _02089470 -_02089294: - str sl, [r1] - b _02089470 -_0208929C: - str sl, [r1] - asr r0, sl, #0x1f - str r0, [r1, #4] - b _02089470 -_020892AC: - ldr r0, [sp, #0x25c] - add r7, sp, #0x2c - add r0, r0, #4 - str r0, [sp, #0x25c] - ldr r0, [r0, #-4] - mov r6, #1 - strb r0, [sp, #0x2c] - b _0208932C -_020892CC: - mov r0, #0x25 - strb r0, [sp, #0x2c] - add r7, sp, #0x2c - mov r6, #1 - b _0208932C -_020892E0: - ldr r0, [sp, #0xc] - bl Strlen - movs r4, r0 - beq _02089318 - ldr r1, [sp, #0xc] - mov r0, r8 - mov r2, r4 - blx sb - cmp r0, #0 - addeq sp, sp, #0x22c - mvneq r0, #0 - popeq {r4, r5, r6, r7, r8, sb, sl, fp, lr} - addeq sp, sp, #0x10 - bxeq lr -_02089318: - add sp, sp, #0x22c - add r0, sl, r4 - pop {r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_0208932C: - ldrb r0, [sp, #0x1c] - mov r4, r6 - cmp r0, #0 - beq _020893E0 - cmp r0, #2 - moveq r0, #0x30 - movne r0, #0x20 - strb r0, [sp, #0x19] - ldrsb r0, [r7] - cmp r0, #0x2b - cmpne r0, #0x2d - cmpne r0, #0x20 - bne _0208939C - ldrsb r0, [sp, #0x19] - cmp r0, #0x30 - bne _0208939C - mov r0, r8 - mov r1, r7 - mov r2, #1 - blx sb - cmp r0, #0 - addeq sp, sp, #0x22c - mvneq r0, #0 - popeq {r4, r5, r6, r7, r8, sb, sl, fp, lr} - addeq sp, sp, #0x10 - bxeq lr - add r7, r7, #1 - sub r6, r6, #1 -_0208939C: - ldr r0, [sp, #0x24] - cmp r4, r0 - bge _020893E0 -_020893A8: - mov r0, r8 - add r1, sp, #0x19 - mov r2, #1 - blx sb - cmp r0, #0 - addeq sp, sp, #0x22c - mvneq r0, #0 - popeq {r4, r5, r6, r7, r8, sb, sl, fp, lr} - addeq sp, sp, #0x10 - bxeq lr - ldr r0, [sp, #0x24] - add r4, r4, #1 - cmp r4, r0 - blt _020893A8 -_020893E0: - cmp r6, #0 - beq _02089410 - mov r0, r8 - mov r1, r7 - mov r2, r6 - blx sb - cmp r0, #0 - addeq sp, sp, #0x22c - mvneq r0, #0 - popeq {r4, r5, r6, r7, r8, sb, sl, fp, lr} - addeq sp, sp, #0x10 - bxeq lr -_02089410: - ldrb r0, [sp, #0x1c] - cmp r0, #0 - bne _0208946C - ldr r0, [sp, #0x24] - cmp r4, r0 - bge _0208946C - mov r6, #0x20 - add r7, sp, #0x18 -_02089430: - mov r0, r8 - mov r1, r7 - mov r2, #1 - strb r6, [sp, #0x18] - blx sb - cmp r0, #0 - addeq sp, sp, #0x22c - mvneq r0, #0 - popeq {r4, r5, r6, r7, r8, sb, sl, fp, lr} - addeq sp, sp, #0x10 - bxeq lr - ldr r0, [sp, #0x24] - add r4, r4, #1 - cmp r4, r0 - blt _02089430 -_0208946C: - add sl, sl, r4 -_02089470: - ldrsb r0, [fp] - cmp r0, #0 - bne _02088CA4 -_0208947C: - mov r0, sl - add sp, sp, #0x22c - pop {r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr - .align 2, 0 -_02089490: .4byte 0x020B321C -_02089494: .4byte 0x020B3220 - arm_func_end VsprintfInternalSlice - - arm_func_start TryAppendToSlice -TryAppendToSlice: @ 0x02089498 - push {r3, r4, r5, lr} + str r1, [r0, #0x20c] +_022E66B8: + ldrb r6, [r4, #1] + bl ov00_022EC1C0 + ldrb r1, [r4, #2] + add r0, r0, r6 + strb r1, [r0, #0x2d0] + bl ov00_022EC1C0 mov r4, r0 - ldr r3, [r4, #8] - mov r5, r2 - ldr r2, [r4, #4] - add r0, r3, r5 - cmp r0, r2 - ldr r0, [r4] - subhi r5, r2, r3 - mov r2, r5 - add r0, r0, r3 - bl Memcpy - ldr r1, [r4, #8] - mov r0, #1 - add r1, r1, r5 - str r1, [r4, #8] - pop {r3, r4, r5, pc} - arm_func_end TryAppendToSlice + bl ov00_022EC1C0 + ldr r1, [r0, #0x200] + add r0, r4, r6, lsl #2 + str r1, [r0, #0xf4] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + beq _022E6704 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #1 + bne _022E6718 +_022E6704: + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + strb r0, [r4, #0x16] +_022E6718: + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1ad] + mov r0, #9 + bl ov00_022EC1D0 +_022E672C: + mov r0, r5 + mov r1, #3 + bl ov00_022EA758 + pop {r4, r5, r6, pc} +_022E673C: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0x10 + bne _022E67F4 + bl ov00_022EC1C0 + ldr r2, [r0, #0x1d4] + mov r1, #1 + orr r1, r2, r1, lsl r5 + str r1, [r0, #0x1d4] + ldrb r1, [r4] + ldrb r0, [r4, #1] + orr r4, r1, r0, lsl #8 + bl ov00_022EC1C0 + add r0, r0, #0x100 + ldrh r0, [r0, #0xb0] + cmp r4, r0 + ble _022E678C + bl ov00_022EC1C0 + add r0, r0, #0x100 + strh r4, [r0, #0xb0] +_022E678C: + mov r0, #0 + bl ov00_022EB0F8 + mov r4, r0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1d4] + cmp r4, r0 + popne {r4, r5, r6, pc} + mov r5, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #1 + blt _022E67E8 + mov r4, #4 +_022E67C0: + bl ov00_022EC1C0 + add r0, r0, r5 + ldrb r0, [r0, #0x2d0] + mov r1, r4 + bl ov00_022EA758 + add r5, r5, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r5, r0 + ble _022E67C0 +_022E67E8: + mov r0, #0x11 + bl ov00_022EC1D0 + pop {r4, r5, r6, pc} +_022E67F4: + mov r0, r5 + mov r1, #4 + bl ov00_022EA758 + pop {r4, r5, r6, pc} +_022E6804: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #9 + popne {r4, r5, r6, pc} + mov r0, #4 + bl ov00_022E9AA4 + pop {r4, r5, r6, pc} + arm_func_end ov00_022E6668 - arm_func_start VsprintfInternal -VsprintfInternal: @ 0x020894DC - push {r4, r5, lr} - sub sp, sp, #0xc + arm_func_start ov00_022E6820 +ov00_022E6820: @ 0x022E6820 + push {r3, r4, r5, lr} mov r5, r0 mov r4, r1 - mov ip, #0 - ldr r0, _02089540 @ =TryAppendToSlice - add r1, sp, #0 - str r5, [sp] - str r4, [sp, #4] - str ip, [sp, #8] - bl VsprintfInternalSlice + bl ov00_022E1FC0 + cmp r0, #5 + movne r0, #0 + popne {r3, r4, r5, pc} + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #2 + moveq r0, #1 + popeq {r3, r4, r5, pc} cmp r5, #0 - addeq sp, sp, #0xc - popeq {r4, r5, pc} - cmp r0, r4 - movlo r1, #0 - addlo sp, sp, #0xc - strblo r1, [r5, r0] - poplo {r4, r5, pc} - cmp r4, #0 - addne r1, r5, r4 - movne r2, #0 - strbne r2, [r1, #-1] - add sp, sp, #0xc - pop {r4, r5, pc} - .align 2, 0 -_02089540: .4byte TryAppendToSlice - arm_func_end VsprintfInternal - - arm_func_start Vsprintf -Vsprintf: @ 0x02089544 - ldr ip, _02089558 @ =VsprintfInternal - mov r3, r2 - mov r2, r1 - mvn r1, #0 - bx ip - .align 2, 0 -_02089558: .4byte VsprintfInternal - arm_func_end Vsprintf - - arm_func_start Snprintf -Snprintf: @ 0x0208955C - push {r0, r1, r2, r3} - push {r3, lr} - add r3, sp, #0x10 - bic r3, r3, #3 - ldr r2, [sp, #0x10] - add r3, r3, #4 - bl VsprintfInternal - pop {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end Snprintf - - arm_func_start Sprintf -Sprintf: @ 0x02089584 - push {r0, r1, r2, r3} - push {r3, lr} - add r1, sp, #0xc - bic r1, r1, #3 - add r3, r1, #4 - ldr r2, [sp, #0xc] - mvn r1, #0 - bl VsprintfInternal - pop {r3, lr} - add sp, sp, #0x10 - bx lr - arm_func_end Sprintf -_020895B0: - .byte 0x20, 0x20, 0x9F, 0xE5, 0x20, 0x00, 0x9F, 0xE5, 0x00, 0x30, 0x92, 0xE5, 0x1C, 0x10, 0x9F, 0xE5 - .byte 0x93, 0x00, 0x00, 0xE0, 0x39, 0x00, 0x80, 0xE2, 0x03, 0x0A, 0x80, 0xE2, 0x00, 0x00, 0x82, 0xE5 - .byte 0x20, 0x08, 0x01, 0xE0, 0x1E, 0xFF, 0x2F, 0xE1, 0x24, 0x32, 0x0B, 0x02, 0x6D, 0x4E, 0xC6, 0x41 - .byte 0xFF, 0x7F, 0x00, 0x00, 0x04, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x81, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x24, 0x32, 0x0B, 0x02, 0x00, 0x00, 0x52, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x52, 0xE3 - .byte 0x0E, 0x00, 0x00, 0x0A, 0x02, 0x00, 0x52, 0xE3, 0x16, 0x00, 0x00, 0x0A, 0x17, 0x00, 0x00, 0xEA - .byte 0x00, 0x10, 0x90, 0xE5, 0xD0, 0x20, 0xD1, 0xE1, 0x00, 0x00, 0x52, 0xE3, 0x03, 0x00, 0x00, 0x1A - .byte 0x01, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x80, 0xE5, 0x02, 0x00, 0x41, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x01, 0x10, 0x81, 0xE2, 0x00, 0x10, 0x80, 0xE5, 0xFF, 0x00, 0x02, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x04, 0x20, 0x90, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0x00, 0x20, 0xA0, 0x13, 0x04, 0x20, 0x80, 0x15 - .byte 0x02, 0x00, 0x00, 0x1A, 0x00, 0x20, 0x90, 0xE5, 0x01, 0x20, 0x42, 0xE2, 0x00, 0x20, 0x80, 0xE5 - .byte 0x01, 0x00, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0x00, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start Strlen -Strlen: @ 0x02089678 - mvn r2, #0 -_0208967C: - ldrsb r1, [r0], #1 - add r2, r2, #1 - cmp r1, #0 - bne _0208967C - mov r0, r2 - bx lr - arm_func_end Strlen - - arm_func_start Strcpy -Strcpy: @ 0x02089694 - push {r3, r4, r5, lr} - and r4, r1, #3 - and r3, r0, #3 - mov r2, r0 - cmp r3, r4 - bne _02089730 - cmp r4, #0 - beq _020896EC - ldrb r3, [r1] - strb r3, [r0] - cmp r3, #0 - popeq {r3, r4, r5, pc} - rsbs r4, r4, #3 - beq _020896E4 -_020896CC: - ldrb r3, [r1, #1]! - cmp r3, #0 - strb r3, [r2, #1]! - popeq {r3, r4, r5, pc} - subs r4, r4, #1 - bne _020896CC -_020896E4: - add r2, r2, #1 - add r1, r1, #1 -_020896EC: - ldr r5, [r1] - ldr r3, _02089754 @ =0xFEFEFEFF - mvn r4, r5 - add lr, r5, r3 - ldr ip, _02089758 @ =0x80808080 - and r4, lr, r4 - tst r4, ip - bne _02089730 - sub r2, r2, #4 -_02089710: - str r5, [r2, #4]! - ldr r5, [r1, #4]! - add r4, r5, r3 - mvn lr, r5 - and lr, r4, lr - tst lr, ip - beq _02089710 - add r2, r2, #4 -_02089730: - ldrb r3, [r1] - strb r3, [r2] - cmp r3, #0 - popeq {r3, r4, r5, pc} -_02089740: - ldrb r3, [r1, #1]! - cmp r3, #0 - strb r3, [r2, #1]! - bne _02089740 + beq _022E6870 + ldr r1, _022E6994 @ =0xFFFEC780 + mov r0, r5 + add r1, r4, r1 + bl ov00_022E6570 + mov r0, #1 + pop {r3, r4, r5, pc} +_022E6870: + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x2d0] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a9] + cmp r0, #1 + beq _022E68AC + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a8] + cmp r0, #1 + beq _022E68AC + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a8] + cmp r0, #2 + bne _022E68B4 +_022E68AC: + mov r0, #1 + pop {r3, r4, r5, pc} +_022E68B4: + bl ov00_022EC1C0 + ldr r0, [r0, #0x19c] + cmp r0, #0 + beq _022E68DC + bl ov00_022EC1C0 + ldr r0, [r0, #0x19c] + bl ov00_02311FB0 + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x19c] +_022E68DC: + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #0 + beq _022E691C + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a8] + cmp r0, #0 + bne _022E698C + bl ov00_022EC1C0 + mov r1, #3 + strb r1, [r0, #0x1a8] + bl ov00_022EC1C0 + ldr r0, [r0, #4] + ldr r0, [r0] + bl ov00_0230E3A4 + b _022E698C +_022E691C: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #3 + bne _022E693C + ldr r1, _022E6998 @ =0xFFFEC5D2 + mov r0, #6 + bl ov00_022E6570 + b _022E698C +_022E693C: + bl ov00_022EC1C0 + ldr r0, [r0, #0x208] + cmp r0, #0 + beq _022E6954 + bl ov00_022EA4BC + b _022E698C +_022E6954: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #1 + bne _022E6984 + mov r0, #0x12 + bl ov00_022EC1D0 + bl ov00_022EC1C0 + mov r4, r0 + bl FUN_0207AE44 + str r0, [r4, #0x1f0] + str r1, [r4, #0x1f4] + b _022E698C +_022E6984: + mov r0, #1 + bl ov00_022EA388 +_022E698C: + mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 -_02089754: .4byte 0xFEFEFEFF -_02089758: .4byte 0x80808080 - arm_func_end Strcpy +_022E6994: .4byte 0xFFFEC780 +_022E6998: .4byte 0xFFFEC5D2 + arm_func_end ov00_022E6820 - arm_func_start Strncpy -Strncpy: @ 0x0208975C - push {r3, lr} - mov lr, r0 - cmp r2, #0 - popeq {r3, pc} -_0208976C: - ldrsb r3, [r1], #1 - mov ip, lr - strb r3, [lr], #1 - ldrsb r3, [ip] - cmp r3, #0 - bne _020897A0 - subs r2, r2, #1 - popeq {r3, pc} - mov r1, #0 -_02089790: - strb r1, [lr], #1 - subs r2, r2, #1 - bne _02089790 - pop {r3, pc} -_020897A0: - subs r2, r2, #1 - bne _0208976C - pop {r3, pc} - arm_func_end Strncpy - - arm_func_start Strcat -Strcat: @ 0x020897AC - mov r3, r0 -_020897B0: - ldrsb r2, [r3], #1 - cmp r2, #0 - bne _020897B0 - sub r3, r3, #1 -_020897C0: - ldrsb r2, [r1], #1 - mov ip, r3 - strb r2, [r3], #1 - ldrsb r2, [ip] - cmp r2, #0 - bne _020897C0 - bx lr - arm_func_end Strcat - - arm_func_start Strncat -Strncat: @ 0x020897DC - push {r3, lr} - mov ip, r0 -_020897E4: - ldrsb r3, [ip], #1 - cmp r3, #0 - bne _020897E4 - cmp r2, #0 - sub ip, ip, #1 - beq _02089820 -_020897FC: - ldrsb r3, [r1], #1 - mov lr, ip - strb r3, [ip], #1 - ldrsb r3, [lr] - cmp r3, #0 - subeq ip, ip, #1 - beq _02089820 - subs r2, r2, #1 - bne _020897FC -_02089820: - mov r1, #0 - strb r1, [ip] - pop {r3, pc} - arm_func_end Strncat - - arm_func_start Strcmp -Strcmp: @ 0x0208982C + arm_func_start ov00_022E699C +ov00_022E699C: @ 0x022E699C push {r4, lr} - ldrb r2, [r0] - ldrb r3, [r1] - subs r3, r2, r3 - movne r0, r3 - popne {r4, pc} - and r4, r0, #3 - and r3, r1, #3 - cmp r3, r4 - bne _02089908 - cmp r4, #0 - beq _020898A0 - cmp r2, #0 - moveq r0, #0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a8] + cmp r0, #2 popeq {r4, pc} - rsbs r4, r4, #3 - beq _02089898 -_02089870: - ldrb r3, [r0, #1]! - ldrb r2, [r1, #1]! - subs r2, r3, r2 - movne r0, r2 - popne {r4, pc} - cmp r3, #0 - moveq r0, #0 - popeq {r4, pc} - subs r4, r4, #1 - bne _02089870 -_02089898: - add r0, r0, #1 - add r1, r1, #1 -_020898A0: - ldr r2, [r0] - ldr r3, _02089938 @ =0xFEFEFEFF - mvn r4, r2 - add lr, r2, r3 - ldr ip, _0208993C @ =0x80808080 - and r4, lr, r4 - tst r4, ip - ldr r4, [r1] - bne _020898F4 - cmp r2, r4 - bne _020898E8 -_020898CC: - ldr r2, [r0, #4]! - ldr r4, [r1, #4]! - add lr, r2, r3 - tst lr, ip - bne _020898F4 - cmp r2, r4 - beq _020898CC -_020898E8: - sub r0, r0, #1 - sub r1, r1, #1 - b _02089908 -_020898F4: - ldrb r2, [r0] - ldrb r3, [r1] - subs r3, r2, r3 - movne r0, r3 - popne {r4, pc} -_02089908: - cmp r2, #0 - moveq r0, #0 - popeq {r4, pc} -_02089914: - ldrb r3, [r0, #1]! - ldrb r2, [r1, #1]! - subs r2, r3, r2 - movne r0, r2 - popne {r4, pc} - cmp r3, #0 - bne _02089914 - mov r0, #0 + mov r0, r4 + bl ov00_022E96E4 pop {r4, pc} - .align 2, 0 -_02089938: .4byte 0xFEFEFEFF -_0208993C: .4byte 0x80808080 - arm_func_end Strcmp + arm_func_end ov00_022E699C - arm_func_start Strncmp -Strncmp: @ 0x02089940 - cmp r2, #0 - beq _0208996C -_02089948: - ldrb ip, [r1], #1 - ldrb r3, [r0], #1 - cmp r3, ip - subne r0, r3, ip - bxne lr - cmp r3, #0 - beq _0208996C - subs r2, r2, #1 - bne _02089948 -_0208996C: - mov r0, #0 - bx lr - arm_func_end Strncmp - - arm_func_start Strchr -Strchr: @ 0x02089974 - ldrsb r2, [r0], #1 - lsl r1, r1, #0x18 - asr r1, r1, #0x18 - cmp r2, #0 - beq _020899A0 -_02089988: - cmp r2, r1 - subeq r0, r0, #1 - bxeq lr - ldrsb r2, [r0], #1 - cmp r2, #0 - bne _02089988 -_020899A0: - cmp r1, #0 - movne r0, #0 - subeq r0, r0, #1 - bx lr - arm_func_end Strchr - - arm_func_start Strcspn -Strcspn: @ 0x020899B0 - push {r4, lr} - sub sp, sp, #0x20 - add ip, sp, #0 - mov r3, #8 - mov r2, #0 -_020899C4: - strb r2, [ip] - strb r2, [ip, #1] - strb r2, [ip, #2] - strb r2, [ip, #3] - add ip, ip, #4 - subs r3, r3, #1 - bne _020899C4 - ldrb r3, [r1] - add r4, r1, #1 - cmp r3, #0 - beq _02089A20 - add lr, sp, #0 - mov r2, #1 -_020899F8: - and ip, r3, #0xff - and r1, r3, #7 - lsl r1, r2, r1 - ldrb r3, [lr, ip, asr #3] - and r1, r1, #0xff - orr r1, r3, r1 - strb r1, [lr, ip, asr #3] - ldrb r3, [r4], #1 - cmp r3, #0 - bne _020899F8 -_02089A20: - ldrb r1, [r0] - add r4, r0, #1 - cmp r1, #0 - beq _02089A60 - add ip, sp, #0 - mov r2, #1 -_02089A38: - and r3, r1, #0xff - and r1, r1, #7 - lsl r1, r2, r1 - ldrb r3, [ip, r3, asr #3] - and r1, r1, #0xff - tst r3, r1 - bne _02089A60 - ldrb r1, [r4], #1 - cmp r1, #0 - bne _02089A38 -_02089A60: - sub r0, r4, r0 - sub r0, r0, #1 - add sp, sp, #0x20 - pop {r4, pc} - arm_func_end Strcspn - - arm_func_start Strstr -Strstr: @ 0x02089A70 - push {r4, lr} - cmp r1, #0 - ldrbne r2, [r1] - cmpne r2, #0 - popeq {r4, pc} - ldrb r3, [r0] - add r4, r0, #1 - cmp r3, #0 - beq _02089AD4 -_02089A94: - cmp r3, r2 - bne _02089AC8 - mov lr, r4 - add ip, r1, #1 -_02089AA4: - ldrb r3, [ip], #1 - ldrb r0, [lr], #1 - cmp r0, r3 - bne _02089ABC + arm_func_start ov00_022E69C0 +ov00_022E69C0: @ 0x022E69C0 + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + bl ov00_022EC1C0 cmp r0, #0 - bne _02089AA4 -_02089ABC: - cmp r3, #0 - subeq r0, r4, #1 - popeq {r4, pc} -_02089AC8: - ldrb r3, [r4], #1 - cmp r3, #0 - bne _02089A94 -_02089AD4: - mov r0, #0 - pop {r4, pc} - arm_func_end Strstr - - arm_func_start FUN_02089adc -FUN_02089adc: @ 0x02089ADC - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0xa8 - ldr r4, [sp, #0xd0] - mov sl, #0 - str r4, [sp, #0xd0] - str r0, [sp] - add r6, sp, #0x80 - mov sb, r1 - mov r8, r2 - str r3, [sp, #4] - mov r4, sl - str sl, [sp, #0x2c] - mov r5, #1 - mov r0, #4 -_02089B14: - strh sl, [r6] - strh sl, [r6, #2] - strh sl, [r6, #4] - strh sl, [r6, #6] - add r6, r6, #8 - subs r0, r0, #1 - bne _02089B14 - mov r0, #0 - str r0, [sp, #0x28] - strh sl, [r6] - strh sl, [r6, #2] - ldr r2, [sp, #0x28] - ldr r1, [sp, #0xd0] - strh sl, [r6, #4] - str r2, [r1] - mov r1, r2 - mov r0, r8 - str r1, [sp, #0x24] - str r1, [sp, #0x20] - str r1, [sp, #0x1c] - str r1, [sp, #0x18] - str r1, [sp, #0x10] - str r1, [sp, #0xc] - str r1, [sp, #8] - add r4, r4, #1 - blx sb - mov r1, r0 - ldr r7, _0208AABC @ =0x020AEEB5 - add r0, sp, #0x4d - mov r6, #4 -_02089B8C: - ldrb r3, [r7] - ldrb r2, [r7, #1] - add r7, r7, #2 - strb r3, [r0] - strb r2, [r0, #1] - add r0, r0, #2 - subs r6, r6, #1 - bne _02089B8C - ldrb r3, [r7] - ldr r2, _0208AAC0 @ =0x020AEEB0 - strb r3, [r0] - ldrb r3, [r2, #1] - ldrb r0, [r2, #2] - ldrb r6, [r2] - strb r3, [sp, #0x31] - strb r0, [sp, #0x32] - ldrb r3, [r2, #3] - ldrb r0, [r2, #4] - strb r6, [sp, #0x30] - strb r3, [sp, #0x33] - strb r0, [sp, #0x34] - b _0208A8D0 -_02089BE4: - cmp r5, #0x100 - bgt _02089C5C - bge _0208A364 - cmp r5, #0x20 - bgt _02089C40 - bge _0208A238 - cmp r5, #8 - bgt _02089C34 + moveq r0, #0 + popeq {r4, r5, r6, pc} cmp r5, #0 - addge pc, pc, r5, lsl #2 - b _0208A8D0 -_02089C10: @ jump table - b _0208A8D0 @ case 0 - b _02089CA0 @ case 1 - b _0208A084 @ case 2 - b _0208A8D0 @ case 3 - b _0208A134 @ case 4 - b _0208A8D0 @ case 5 - b _0208A8D0 @ case 6 - b _0208A8D0 @ case 7 - b _0208A15C @ case 8 -_02089C34: - cmp r5, #0x10 - beq _0208A200 - b _0208A8D0 -_02089C40: - cmp r5, #0x40 - bgt _02089C50 - beq _0208A2C4 - b _0208A8D0 -_02089C50: - cmp r5, #0x80 - beq _0208A310 - b _0208A8D0 -_02089C5C: - cmp r5, #0x2000 - bgt _02089C84 - bge _02089EB8 - cmp r5, #0x200 - bgt _02089C78 - beq _0208A3C4 - b _0208A8D0 -_02089C78: - cmp r5, #0x400 - beq _0208A3EC - b _0208A8D0 -_02089C84: - cmp r5, #0x4000 - bgt _02089C94 - beq _02089DC0 - b _0208A8D0 -_02089C94: - cmp r5, #0x8000 - beq _0208A464 - b _0208A8D0 -_02089CA0: - cmp r1, #0 - blt _02089CB0 - cmp r1, #0x80 - blt _02089CB8 -_02089CB0: - mov r0, #0 - b _02089CC8 -_02089CB8: - lsl r2, r1, #1 - ldr r0, _0208AAC4 @ =0x020AEDB0 - ldrh r0, [r0, r2] - and r0, r0, #0x100 -_02089CC8: - cmp r0, #0 - beq _02089CF4 - mov r1, #0 - mov r0, r8 - mov r2, r1 - blx sb - mov r1, r0 - ldr r0, [sp, #0x2c] - add r0, r0, #1 - str r0, [sp, #0x2c] - b _0208A8D0 -_02089CF4: - cmp r1, #0 - blt _02089D04 - cmp r1, #0x80 - blt _02089D0C -_02089D04: - mov r0, r1 - b _02089D14 -_02089D0C: - ldr r0, _0208AAC8 @ =0x020AED30 - ldrb r0, [r0, r1] -_02089D14: - cmp r0, #0x49 - bgt _02089D40 - bge _02089D78 - cmp r0, #0x2d - bgt _02089DB8 - cmp r0, #0x2b - blt _02089DB8 - beq _02089D54 - cmp r0, #0x2d - beq _02089D4C - b _02089DB8 -_02089D40: - cmp r0, #0x4e - beq _02089D98 - b _02089DB8 -_02089D4C: + mov r4, #0 + ble _022E6A1C +_022E69E8: + bl ov00_022EC1C0 + add r0, r0, r4, lsl #2 + ldr r0, [r0, #0xf4] + cmp r6, r0 + bne _022E6A10 + mov r0, r4 + mov r1, r5 + bl ov00_022E6A24 mov r0, #1 - str r0, [sp, #0x28] -_02089D54: - mov r1, #0 - mov r0, r8 - mov r2, r1 + pop {r4, r5, r6, pc} +_022E6A10: add r4, r4, #1 - blx sb - mov r1, r0 - mov r0, #1 - str r0, [sp, #0x18] - b _0208A8D0 -_02089D78: - add r4, r4, #1 - mov r0, r8 - mov r1, #0 - mov r2, r1 - blx sb - mov r1, r0 - mov r5, #0x4000 - b _0208A8D0 -_02089D98: - add r4, r4, #1 - mov r0, r8 - mov r1, #0 - mov r2, r1 - blx sb - mov r1, r0 - mov r5, #0x2000 - b _0208A8D0 -_02089DB8: - mov r5, #2 - b _0208A8D0 -_02089DC0: - mov r5, #1 - add r7, sp, #0x4d - add r0, sp, #0x76 - mov r6, #4 -_02089DD0: - ldrb r3, [r7] - ldrb r2, [r7, #1] - add r7, r7, #2 - strb r3, [r0] - strb r2, [r0, #1] - add r0, r0, #2 - subs r6, r6, #1 - bne _02089DD0 - ldrb r2, [r7] - add r6, sp, #0x77 - ldr r7, _0208AAC8 @ =0x020AED30 - strb r2, [r0] - b _02089E24 -_02089E04: - mov r1, #0 - mov r0, r8 - mov r2, r1 - add r6, r6, #1 - add r5, r5, #1 - add r4, r4, #1 - blx sb - mov r1, r0 -_02089E24: - cmp r5, #8 - bge _02089E54 - cmp r1, #0 - blt _02089E3C - cmp r1, #0x80 - blt _02089E44 -_02089E3C: - mov r2, r1 - b _02089E48 -_02089E44: - ldrb r2, [r7, r1] -_02089E48: - ldrsb r0, [r6] - cmp r0, r2 - beq _02089E04 -_02089E54: - cmp r5, #3 - cmpne r5, #8 - bne _02089EB0 - ldr r0, [sp, #0x28] - cmp r0, #0 - beq _02089E84 - ldr r1, _0208AACC @ =0x020B2FB8 + cmp r4, r5 + blt _022E69E8 +_022E6A1C: mov r0, #0 - ldr r1, [r1] - bl SubtractFloat - bl FloatToDouble - b _02089E90 -_02089E84: - ldr r0, _0208AACC @ =0x020B2FB8 - ldr r0, [r0] - bl FloatToDouble -_02089E90: - ldr r2, [sp, #0x2c] - add r3, r2, r5 - ldr r2, [sp, #0x18] - add r3, r2, r3 - ldr r2, [sp, #4] - add sp, sp, #0xa8 - str r3, [r2] + pop {r4, r5, r6, pc} + arm_func_end ov00_022E69C0 + + arm_func_start ov00_022E6A24 +ov00_022E6A24: @ 0x022E6A24 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sb, r0 + mov r8, r1 + bl ov00_022EC1C0 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + bl ov00_022EC1C0 + add r0, r0, sb, lsl #2 + ldr fp, [r0, #0xf4] + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + add r0, r0, sb + ldrb r0, [r0, #0x2d0] + mov r1, #1 + ldr r2, [r4, #0x2f0] + mvn r0, r1, lsl r0 + and r0, r2, r0 + str r0, [r4, #0x2f0] + bl ov00_022E6BDC + sub r0, r8, #1 + cmp sb, r0 + bge _022E6B64 + sub r0, r8, sb + sub r5, r0, #1 + cmp r5, #0 + mov r4, #0 + ble _022E6B64 +_022E6A98: + add r7, sb, r4 + add r6, r7, #1 + bl ov00_022EC1C0 + mov sl, r0 + bl ov00_022EC1C0 + add r0, r0, r6, lsl #2 + ldr r1, [r0, #0x24] + add r0, sl, r7, lsl #2 + str r1, [r0, #0x24] + bl ov00_022EC1C0 + mov sl, r0 + bl ov00_022EC1C0 + add r0, r0, r6, lsl #1 + ldrh r1, [r0, #0xa4] + add r0, sl, r7, lsl #1 + strh r1, [r0, #0xa4] + bl ov00_022EC1C0 + mov sl, r0 + bl ov00_022EC1C0 + add r1, sl, r7, lsl #2 + add r0, r0, r6, lsl #2 + ldr r0, [r0, #0xf4] + str r0, [r1, #0xf4] + bl ov00_022EC1C0 + mov sl, r0 + bl ov00_022EC1C0 + add r1, sl, r7, lsl #2 + add r0, r0, r6, lsl #2 + ldr r0, [r0, #0x210] + str r0, [r1, #0x210] + bl ov00_022EC1C0 + mov sl, r0 + bl ov00_022EC1C0 + add r1, sl, r7, lsl #1 + add r0, r0, r6, lsl #1 + add r0, r0, #0x200 + ldrh r2, [r0, #0x90] + add r0, r1, #0x200 + strh r2, [r0, #0x90] + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + add r0, sb, r0 + add r0, r4, r0 + ldrb r1, [r0, #0x2d1] + add r0, sb, r6 + add r0, r4, r0 + strb r1, [r0, #0x2d0] + add r4, r4, #1 + cmp r4, r5 + blt _022E6A98 +_022E6B64: + cmp r8, #0 + ble _022E6BD4 + sub r4, r8, #1 + bl ov00_022EC1C0 + add r0, r0, r4, lsl #2 + mov r1, #0 + str r1, [r0, #0x24] + bl ov00_022EC1C0 + add r0, r0, r4, lsl #1 + mov r1, #0 + strh r1, [r0, #0xa4] + bl ov00_022EC1C0 + add r0, r0, r4, lsl #2 + mov r1, #0 + str r1, [r0, #0xf4] + bl ov00_022EC1C0 + add r0, r0, r4, lsl #2 + mov r1, #0 + str r1, [r0, #0x210] + bl ov00_022EC1C0 + add r0, r0, r4, lsl #1 + add r0, r0, #0x200 + mov r1, #0 + strh r1, [r0, #0x90] + bl ov00_022EC1C0 + add r0, r0, r4 + mov r1, #0 + strb r1, [r0, #0x2d0] +_022E6BD4: + mov r0, fp pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_02089EB0: - mov r5, #0x1000 - b _0208A8D0 -_02089EB8: - ldrb r3, [sp, #0x30] - ldrb r0, [sp, #0x32] - ldrb r2, [sp, #0x31] - strb r3, [sp, #0x40] - strb r0, [sp, #0x42] - ldrb r3, [sp, #0x33] - ldrb r0, [sp, #0x34] - strb r2, [sp, #0x41] - mov r5, #1 - strb r0, [sp, #0x44] + arm_func_end ov00_022E6A24 + + arm_func_start ov00_022E6BDC +ov00_022E6BDC: @ 0x022E6BDC + push {r4, r5, r6, lr} + mvn r5, #0 mov r6, #0 - add r2, sp, #0x56 - strb r3, [sp, #0x43] - mov r0, #8 -_02089EF0: - strb r6, [r2] - strb r6, [r2, #1] - strb r6, [r2, #2] - strb r6, [r2, #3] - add r2, r2, #4 - subs r0, r0, #1 - bne _02089EF0 - add r7, sp, #0x41 - b _02089F34 -_02089F14: - mov r1, #0 - mov r0, r8 - mov r2, r1 - add r7, r7, #1 - add r5, r5, #1 - add r4, r4, #1 - blx sb - mov r1, r0 -_02089F34: - cmp r5, #4 - bge _02089F68 - cmp r1, #0 - blt _02089F4C - cmp r1, #0x80 - blt _02089F54 -_02089F4C: - mov r2, r1 - b _02089F5C -_02089F54: - ldr r0, _0208AAC8 @ =0x020AED30 - ldrb r2, [r0, r1] -_02089F5C: - ldrsb r0, [r7] - cmp r0, r2 - beq _02089F14 -_02089F68: - sub r0, r5, #3 - cmp r0, #1 - bhi _0208A07C - cmp r5, #4 - bne _0208A020 - ldr r7, _0208AAC4 @ =0x020AEDB0 - b _02089FA8 -_02089F84: - add r0, sp, #0x56 - strb r1, [r0, r6] - mov r1, #0 - mov r0, r8 - mov r2, r1 + mov r4, #1 +_022E6BEC: + bl ov00_022EC1C0 + ldr r0, [r0, #0x2f0] + tst r0, r4, lsl r6 add r6, r6, #1 - add r4, r4, #1 - blx sb - mov r1, r0 -_02089FA8: + addne r5, r5, #1 cmp r6, #0x20 - bge _0208A010 - cmp r1, #0 - blt _02089FC0 - cmp r1, #0x80 - blt _02089FC8 -_02089FC0: - mov r0, #0 - b _02089FD4 -_02089FC8: - lsl r0, r1, #1 - ldrh r0, [r7, r0] - and r0, r0, #8 -_02089FD4: + blt _022E6BEC + mvn r0, #0 + cmp r5, r0 + bne _022E6C24 + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0xe] + pop {r4, r5, r6, pc} +_022E6C24: + bl ov00_022EC1C0 + strb r5, [r0, #0xe] + pop {r4, r5, r6, pc} + arm_func_end ov00_022E6BDC + + arm_func_start ov00_022E6C30 +ov00_022E6C30: @ 0x022E6C30 + push {r4, lr} + mov r4, r0 + bl ov00_022EC1C0 cmp r0, #0 - bne _02089F84 - cmp r1, #0 - blt _02089FEC - cmp r1, #0x80 - blt _02089FF4 -_02089FEC: - mov r0, #0 - b _0208A000 -_02089FF4: - lsl r0, r1, #1 - ldrh r0, [r7, r0] - and r0, r0, #1 -_0208A000: + moveq r0, #0 + popeq {r4, pc} + bl ov00_022EC1C0 + add r0, r0, #0x2d0 + str r0, [r4] + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + add r0, r0, #1 + pop {r4, pc} + arm_func_end ov00_022E6C30 + + arm_func_start ov00_022E6C64 +ov00_022E6C64: @ 0x022E6C64 + push {r4, r5, r6, r7, r8, lr} + mov r7, r0 + bl ov00_022EC1C0 cmp r0, #0 - bne _02089F84 - cmp r1, #0x2e - beq _02089F84 -_0208A010: - cmp r1, #0x29 - movne r5, #0x1000 - bne _0208A8D0 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, pc} + ldr r0, _022E6D04 @ =0x02326F68 + mov r1, #0 + mov r2, #0x20 + bl FUN_0207C40C + mov r5, #0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xe] + cmp r0, #0 + blt _022E6CEC + ldr r6, _022E6D04 @ =0x02326F68 + mov r4, #1 +_022E6CA8: + bl ov00_022EC1C0 + mov r8, r0 + bl ov00_022EC1C0 + add r0, r0, r5 + ldrb r0, [r0, #0x2d0] + ldr r1, [r8, #0x2f0] + tst r1, r4, lsl r0 + beq _022E6CEC + bl ov00_022EC1C0 + add r0, r0, r5 + ldrb r0, [r0, #0x2d0] + add r5, r5, #1 + strb r0, [r6], #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xe] + cmp r5, r0 + ble _022E6CA8 +_022E6CEC: + ldr r0, _022E6D04 @ =0x02326F68 + str r0, [r7] + bl ov00_022EC1C0 + ldrb r0, [r0, #0xe] + add r0, r0, #1 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022E6D04: .4byte 0x02326F68 + arm_func_end ov00_022E6C64 + + arm_func_start ov00_022E6D08 +ov00_022E6D08: @ 0x022E6D08 + stmdb sp!, {lr} + sub sp, sp, #0x2c + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #2 + addne sp, sp, #0x2c + movne r0, #0 + ldmne sp!, {pc} + bl ov00_022EC1C0 + ldrb r1, [r0, #0x16] + ldr r2, _022E6DC8 @ =0x0231A1C0 + add r0, sp, #0x20 + add r3, r1, #1 + mov r1, #0xc + bl FUN_0207911C + ldr r0, _022E6DCC @ =0x0231A200 + add r1, sp, #0x20 + add r2, sp, #0 + mov r3, #0x2f + bl ov00_022E13D0 + bl ov00_022EC1C0 + ldrb r2, [r0, #0xd] + add r0, sp, #0x20 + mov r1, #0xc + add r3, r2, #1 + ldr r2, _022E6DC8 @ =0x0231A1C0 + bl FUN_0207911C + ldr r0, _022E6DD0 @ =0x0231A204 + add r1, sp, #0x20 + add r2, sp, #0 + mov r3, #0x2f + bl ov00_022E1408 + ldr r2, _022E6DC8 @ =0x0231A1C0 + add r0, sp, #0x20 + mov r1, #0xc + mov r3, #3 + bl FUN_0207911C + ldr r0, _022E6DD4 @ =0x0231A1CC + add r1, sp, #0x20 + add r2, sp, #0 + mov r3, #0x2f + bl ov00_022E1408 + mov r0, #6 + add r1, sp, #0 + mov r2, #0 + bl ov00_022E3E54 + add sp, sp, #0x2c + ldm sp!, {pc} + .align 2, 0 +_022E6DC8: .4byte 0x0231A1C0 +_022E6DCC: .4byte 0x0231A200 +_022E6DD0: .4byte 0x0231A204 +_022E6DD4: .4byte 0x0231A1CC + arm_func_end ov00_022E6D08 + + arm_func_start ov00_022E6DD8 +ov00_022E6DD8: @ 0x022E6DD8 + push {r3, lr} + mov r0, #0 + bl ov00_022EC1B0 + ldr r0, _022E6E4C @ =0x02326F48 + ldr r1, [r0, #8] + cmp r1, #0 + beq _022E6E0C + mov r0, #4 + mov r2, #0 + bl ov00_022E0434 + ldr r0, _022E6E4C @ =0x02326F48 + mov r1, #0 + str r1, [r0, #8] +_022E6E0C: + bl ov00_022EAF5C + ldr r0, _022E6E4C @ =0x02326F48 + ldr r1, [r0] + cmp r1, #0 + beq _022E6E38 + mov r0, #4 + mov r2, #0 + bl ov00_022E0434 + ldr r0, _022E6E4C @ =0x02326F48 + mov r1, #0 + str r1, [r0] +_022E6E38: + ldr r0, _022E6E4C @ =0x02326F48 + mov r1, #0 + strb r1, [r0, #0x1c] + strb r1, [r0, #0x1d] + pop {r3, pc} + .align 2, 0 +_022E6E4C: .4byte 0x02326F48 + arm_func_end ov00_022E6DD8 + + arm_func_start ov00_022E6E50 +ov00_022E6E50: @ 0x022E6E50 + push {r3, lr} + bl ov00_022EC1C0 + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + pop {r3, pc} + arm_func_end ov00_022E6E50 + + arm_func_start ov00_022E6E68 +ov00_022E6E68: @ 0x022E6E68 + push {r3, r4, r5, lr} + mov r4, r0 + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0xc] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x17c] + bl ov00_022EC1C0 + mov r5, r0 + mov r0, #0x10000 + bl ov00_022E1544 + add r1, r5, #0x100 + strh r0, [r1, #0x7e] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x180] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x184] + str r1, [r0, #0x188] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x18c] + str r1, [r0, #0x190] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1a4] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1a9] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1aa] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1ab] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1ac] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1a7] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1a8] + bl ov00_022EC1C0 + mov r1, #0 + add r0, r0, #0x100 + strh r1, [r0, #0xb2] + bl ov00_022EC1C0 + mov r1, #0 + add r0, r0, #0x100 + strh r1, [r0, #0xb4] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1b8] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1e0] + str r1, [r0, #0x1e4] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1f0] + str r1, [r0, #0x1f4] + bl ov00_022EC1C0 + add r1, r0, #0x3cc + mov r0, #0 + mov r2, #0x98 + bl FUN_0207C314 + cmp r4, #2 + bne _022E6FD4 + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + strb r0, [r4, #0x14] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #3 + bne _022E6FB8 + mov r0, #1 + bl ov00_022EC1D0 + pop {r3, r4, r5, pc} +_022E6FB8: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #2 + popne {r3, r4, r5, pc} + mov r0, #0xa + bl ov00_022EC1D0 + pop {r3, r4, r5, pc} +_022E6FD4: + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0xd] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0xe] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x14] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x17] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x20] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0xe8] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1a5] + bl ov00_022EC1C0 + mov r1, #0 + add r0, r0, #0x100 + strh r1, [r0, #0xb0] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1bc] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1c0] + str r1, [r0, #0x1c4] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1c8] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1cc] + str r1, [r0, #0x1d0] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1d4] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x204] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x208] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x2f0] + bl ov00_022E2254 + bl ov00_022EC1C0 + add r1, r0, #0x24 + mov r0, #0 + mov r2, #0x80 + bl FUN_0207C314 + bl ov00_022EC1C0 + add r1, r0, #0xa4 + mov r0, #0 + mov r2, #0x40 + bl FUN_0207C2B8 + bl ov00_022EC1C0 + add r1, r0, #0xf4 + mov r0, #0 + mov r2, #0x80 + bl FUN_0207C314 + bl ov00_022EC1C0 + add r1, r0, #0x194 + mov r0, #0 + mov r2, #0xc + bl FUN_0207C314 + bl ov00_022EC1C0 + add r1, r0, #0x210 + mov r0, #0 + mov r2, #0x80 + bl FUN_0207C314 + bl ov00_022EC1C0 + add r1, r0, #0x290 + mov r0, #0 + mov r2, #0x40 + bl FUN_0207C2B8 + bl ov00_022EC1C0 + add r0, r0, #0x2d0 + mov r1, #0 + mov r2, #0x20 + bl FUN_0207C40C + bl ov00_022EC1C0 + add r1, r0, #0x348 + mov r0, #0 + mov r2, #0x84 + bl FUN_0207C314 + cmp r4, #1 + bne _022E7184 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + bne _022E7168 + mov r0, #3 + bl ov00_022EC1D0 + pop {r3, r4, r5, pc} +_022E7168: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #1 + popne {r3, r4, r5, pc} + mov r0, #4 + bl ov00_022EC1D0 + pop {r3, r4, r5, pc} +_022E7184: + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x15] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x16] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x18] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x20c] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1a6] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1ae] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1ad] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1f8] + str r1, [r0, #0x1fc] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x46c] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x470] + pop {r3, r4, r5, pc} + arm_func_end ov00_022E6E68 + + arm_func_start ov00_022E7204 +ov00_022E7204: @ 0x022E7204 + push {r3, lr} + bl ov00_022EC1C0 + cmp r0, #0 + popeq {r3, pc} + bl ov00_022EC1C0 + ldr r0, [r0, #0xe4] + cmp r0, #0 + beq _022E7254 + ldr r0, _022E729C @ =0x02326F48 + ldr r1, [r0, #0x18] + cmp r1, #0 + movne r1, #1 + strne r1, [r0, #0x14] + bne _022E7254 + bl ov00_022EC1C0 + ldr r0, [r0, #0xe4] + bl ov00_02315AD8 + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0xe4] +_022E7254: + bl ov00_022E5080 + mov r0, #0 + bl ov00_022EC1D0 + ldr r0, _022E729C @ =0x02326F48 + ldr r1, [r0, #8] + cmp r1, #0 + beq _022E7288 + mov r0, #4 + mov r2, #0 + bl ov00_022E0434 + ldr r0, _022E729C @ =0x02326F48 + mov r1, #0 + str r1, [r0, #8] +_022E7288: + bl ov00_022EAF5C + bl ov00_022EC1C0 + mov r1, #1 + strb r1, [r0, #0x18] + pop {r3, pc} + .align 2, 0 +_022E729C: .4byte 0x02326F48 + arm_func_end ov00_022E7204 + + arm_func_start ov00_022E72A0 +ov00_022E72A0: @ 0x022E72A0 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x1b0 + mov r7, #8 + mov r6, #0xa + mov r5, #0x32 + mov r4, #0x33 + mov r3, #0x34 + mov r2, #0x35 + mov r1, #0x36 + strb r7, [sp, #0xc] + strb r6, [sp, #0xd] + strb r5, [sp, #0xe] + strb r4, [sp, #0xf] + strb r3, [sp, #0x10] + strb r2, [sp, #0x11] + strb r1, [sp, #0x12] + mov r4, r0 + mov r8, #7 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + beq _022E7308 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #1 + bne _022E7334 +_022E7308: + ldr r2, _022E7484 @ =0x02326F88 + add r3, sp, #0x13 + mov r1, #0 +_022E7314: + ldrb r0, [r2] + add r1, r1, #1 + add r2, r2, #0xc + cmp r0, #0 + strbne r0, [r3], #1 + addne r8, r8, #1 + cmp r1, #0x9a + blt _022E7314 +_022E7334: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #5 + addls pc, pc, r0, lsl #2 + b _022E73EC +_022E7348: @ jump table + b _022E73EC @ case 0 + b _022E73EC @ case 1 + b _022E73CC @ case 2 + b _022E7360 @ case 3 + b _022E73CC @ case 4 + b _022E73CC @ case 5 +_022E7360: + bl ov00_022EC1C0 + ldr r0, [r0, #0x208] + cmp r0, #0 + bne _022E73C4 + bl ov00_022EC1C0 + mov r5, r0 + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldr r1, [r5, #0x200] + ldrb r2, [r4, #0x16] + ldrb r3, [r0, #0x15] + add r0, sp, #0xad + bl ov00_022E749C + mov r1, r0 + ldr r0, _022E7488 @ =0x02326F48 + ldr r3, [r0, #8] + cmp r3, #0 + beq _022E73EC + add r0, sp, #0xad + add r0, r0, r1 + ldr r2, _022E748C @ =0x0231A234 + rsb r1, r1, #0x100 + bl FUN_0207911C + b _022E73EC +_022E73C4: + bl ov00_022EC1C0 + ldr r4, [r0, #0x208] +_022E73CC: + ldr r2, _022E7490 @ =0x0231A240 + ldr r3, _022E7494 @ =0x0231A208 + add r0, sp, #0xad + mov r1, #0x100 + str r4, [sp] + bl FUN_0207911C + bl ov00_022EC1C0 + str r4, [r0, #0x204] +_022E73EC: + bl ov00_022EC1C0 + ldr r0, [r0, #0xe4] + bl ov00_02315D34 + mov sl, #0 + add r7, sp, #0xad + mov r6, #6 + mov r5, #1 + mov r4, sl + add fp, sp, #0xc +_022E7410: + bl ov00_022EC1C0 + str r8, [sp] + str r7, [sp, #4] + str r6, [sp, #8] + ldr r0, [r0, #0xe4] + mov r1, r5 + mov r2, r4 + mov r3, fp + bl ov00_02315C2C + movs sb, r0 + beq _022E7450 + cmp sb, #2 + bne _022E7450 + add sl, sl, #1 + cmp sl, #5 + blt _022E7410 +_022E7450: + cmp sb, #0 + bne _022E7478 + bl ov00_022EC1C0 + mov r4, r0 + bl FUN_0207AE44 + ldr r2, _022E7498 @ =0x00EFB5F7 + adds r0, r0, r2 + str r0, [r4, #0x174] + adc r0, r1, #0 + str r0, [r4, #0x178] +_022E7478: + mov r0, sb + add sp, sp, #0x1b0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022E7484: .4byte 0x02326F88 +_022E7488: .4byte 0x02326F48 +_022E748C: .4byte 0x0231A234 +_022E7490: .4byte 0x0231A240 +_022E7494: .4byte 0x0231A208 +_022E7498: .4byte 0x00EFB5F7 + arm_func_end ov00_022E72A0 + + arm_func_start ov00_022E749C +ov00_022E749C: @ 0x022E749C + stmdb sp!, {lr} + sub sp, sp, #0x24 + mov lr, #3 + ldr ip, _022E74F0 @ =0x0231A208 + str lr, [sp] + str ip, [sp, #4] + str r1, [sp, #8] + str r2, [sp, #0xc] + str r2, [sp, #0x10] + ldr r2, _022E74F4 @ =0x0231A210 + ldr r1, _022E74F8 @ =0x0231A21C + str r2, [sp, #0x14] + str r3, [sp, #0x18] + str r1, [sp, #0x1c] + ldr r2, _022E74FC @ =0x0231A248 + ldr r3, _022E7500 @ =0x0231A228 + mov r1, #0x100 + str ip, [sp, #0x20] + bl FUN_0207911C + add sp, sp, #0x24 + ldm sp!, {pc} + .align 2, 0 +_022E74F0: .4byte 0x0231A208 +_022E74F4: .4byte 0x0231A210 +_022E74F8: .4byte 0x0231A21C +_022E74FC: .4byte 0x0231A248 +_022E7500: .4byte 0x0231A228 + arm_func_end ov00_022E749C + + arm_func_start ov00_022E7504 +ov00_022E7504: @ 0x022E7504 + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x10 + mov r4, r0 + mov r8, r1 + mov r7, r2 + bl ov00_022EC1C0 + cmp r4, #0 + ldrb r4, [r0, #0x14] + mov r6, #0 + bne _022E7748 + bl ov00_022EC1C0 + mov r5, r0 + bl ov00_022EC1C0 + add r0, r0, #0x100 + ldrh r2, [r0, #0x7e] + ldr r1, [r5, #0x200] + mov r0, r7 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + orr r8, r2, r1, lsr #16 + bl ov00_02315340 + cmp r0, #0 + beq _022E75C0 + mov r0, r7 + bl ov00_0231530C + mov r5, r0 + bl ov00_022EC1C0 + ldr r0, [r0, #0xe4] + bl ov00_02315D90 + cmp r5, r0 + movne r5, #1 + bne _022E7648 + bl ov00_022EC1C0 + mov r5, r0 + mov r0, r7 + bl ov00_02315358 + add r1, r5, r4, lsl #2 + str r0, [r1, #0x210] + bl ov00_022EC1C0 + mov r5, r0 + mov r0, r7 + bl ov00_02315360 + add r1, r5, r4, lsl #1 + add r1, r1, #0x200 + strh r0, [r1, #0x90] + mov r5, r6 + b _022E7648 +_022E75C0: + bl ov00_022CF528 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + lsl r0, r2, #0x10 + ldr r1, _022E77EC @ =0x0000A8C0 + lsr r0, r0, #0x10 + cmp r0, r1 + beq _022E7608 + and r1, r2, #0xff + cmp r1, #0xac + bne _022E7600 + and r0, r2, #0xff00 + cmp r0, #0x1000 + blo _022E7600 + cmp r0, #0x1f00 + bls _022E7608 +_022E7600: + cmp r1, #0xa + bne _022E7610 +_022E7608: + mov r5, #1 + b _022E7648 +_022E7610: + bl ov00_022EC1C0 + mov r5, r0 + mov r0, r7 + bl ov00_0231530C + add r1, r5, r4, lsl #2 + str r0, [r1, #0x210] + bl ov00_022EC1C0 + mov r5, r0 + mov r0, r7 + bl ov00_02315314 + add r1, r5, r4, lsl #1 + add r1, r1, #0x200 + strh r0, [r1, #0x90] + mov r5, #0 +_022E7648: + cmp r5, #0 + beq _022E7674 + bl ov00_022EC1C0 + mov r4, r0 + mov r0, #0x10000 + bl ov00_022E1544 + add r1, r4, #0x100 + strh r0, [r1, #0x7e] + bl ov00_022EC1C0 + str r8, [r0, #0x19c] + b _022E7700 +_022E7674: + bl ov00_022CF528 + str r0, [sp, #8] + bl ov00_022EC1C0 + ldr r0, [r0, #4] + ldr r0, [r0] + bl ov00_0230E428 + str r0, [sp, #0xc] + bl ov00_022EC1C0 + mov sb, r0 + mov r0, r7 + bl ov00_0231530C + mov r8, r0 + mov r0, r7 + bl ov00_02315314 + add r1, sb, r4, lsl #2 + add r4, sp, #8 + mov r3, r0 + mov r0, #2 + str r4, [sp] + str r0, [sp, #4] + ldr r1, [r1, #0xf4] + mov r2, r8 + mov r0, #6 + bl ov00_022E78AC + mov r4, r0 + bl ov00_022EC1C0 + mov r1, #0 + cmp r4, #0 + strb r1, [r0, #0x3cd] + addne sp, sp, #0x10 + movne r0, #2 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x19c] +_022E7700: + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x194] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x195] + bl ov00_022EC1C0 + mov r4, r0 + mov r0, r7 + bl ov00_02315314 + add r1, r4, #0x100 + strh r0, [r1, #0x96] + bl ov00_022EC1C0 + mov r4, r0 + mov r0, r7 + bl ov00_0231530C + str r0, [r4, #0x198] + b _022E7788 +_022E7748: + bl ov00_022EC1C0 + mov r1, #1 + strb r1, [r0, #0x194] + bl ov00_022EC1C0 + mov r1, r6 + strb r1, [r0, #0x195] + bl ov00_022EC1C0 + add r0, r0, #0x100 + mov r1, r6 + strh r1, [r0, #0x96] + bl ov00_022EC1C0 + mov r1, r6 + str r1, [r0, #0x198] + bl ov00_022EC1C0 + str r8, [r0, #0x19c] + mov r5, #1 +_022E7788: + cmp r5, #0 + beq _022E77A4 + bl ov00_022EC1C0 + add r0, r0, #0x194 + bl ov00_022E77F0 + mov r6, r0 + b _022E77E0 +_022E77A4: + bl ov00_022EC1C0 + ldr r0, [r0, #4] + ldr r0, [r0] + bl ov00_0230E448 + mov r4, r0 + bl ov00_022EC1C0 + add r3, r0, #0x194 + mov r0, #0 + mov r1, r4 + mov r2, r0 + bl ov00_022EBD5C + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x18c] + str r1, [r0, #0x190] +_022E77E0: + mov r0, r6 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022E77EC: .4byte 0x0000A8C0 + arm_func_end ov00_022E7504 + + arm_func_start ov00_022E77F0 +ov00_022E77F0: @ 0x022E77F0 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + mov r7, r0 + ldrb r0, [r7] + cmp r0, #0 + bne _022E7848 + bl ov00_022EC1C0 + mov r4, r0 + mov r1, #0 + ldr r0, [r7, #4] + mov r2, r1 + bl ov00_02310BF4 + mov r1, r0 + ldrh r2, [r7, #2] + ldr r0, [r4, #0xe4] + ldr r3, [r7, #8] + bl ov00_02315CB8 + bl ov00_022EB694 + cmp r0, #0 + addne sp, sp, #8 + movne r0, #2 + popne {r3, r4, r5, r6, r7, pc} +_022E7848: + ldr r5, _022E78A4 @ =ov00_022EBD5C + ldr r4, _022E78A8 @ =0x022EBD58 + mov r6, #0 +_022E7854: + bl ov00_022EC1C0 + ldr r0, [r0, #4] + ldr r0, [r0] + bl ov00_0230E448 + stm sp, {r5, r7} + ldrb r2, [r7] + ldr r1, [r7, #8] + mov r3, r4 + bl ov00_02311EE0 + cmp r0, #0 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, pc} + cmp r0, #3 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} add r6, r6, #1 -_0208A020: - add r0, sp, #0x56 + cmp r6, #5 + blt _022E7854 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022E78A4: .4byte ov00_022EBD5C +_022E78A8: .4byte 0x022EBD58 + arm_func_end ov00_022E77F0 + + arm_func_start ov00_022E78AC +ov00_022E78AC: @ 0x022E78AC + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x220 + str r3, [sp, #0xc] + mov sl, r0 + str r1, [sp, #4] + str r2, [sp, #8] + ldr sb, [sp, #0x248] + ldr r8, [sp, #0x24c] + mov r6, #0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + beq _022E7908 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #3 + beq _022E7900 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a6] + cmp r0, #0 + beq _022E7928 +_022E7900: + cmp sl, #6 + bne _022E7928 +_022E7908: + ldr r2, [sp, #0xc] + ldr r1, [sp, #8] + mov r0, sl + mov r3, sb + str r8, [sp] + bl ov00_022E7A70 + mov r4, r0 + b _022E79D0 +_022E7928: + cmp sb, #0 + cmpne r8, #0 + beq _022E79A8 + ldr r3, [sb] + ldr r2, _022E7A68 @ =0x0231A1C0 + add r0, sp, #0x20 + mov r1, #0x200 + bl FUN_0207911C + mov r6, r0 + cmp r8, #1 + mov r7, #1 + ble _022E79A8 + add r5, sp, #0x10 + add fp, sp, #0x20 +_022E7960: + ldr r3, [sb, r7, lsl #2] + ldr r2, _022E7A6C @ =0x0231A2A0 + mov r0, r5 + mov r1, #0x10 + bl FUN_0207911C + mov r4, r0 + add r0, r6, r4 + add r0, r0, #1 + cmp r0, #0x200 + bhi _022E79A8 + mov r0, r5 + add r1, fp, r6 + mov r2, r4 + bl FUN_0207C4C8 + add r7, r7, #1 + add r6, r6, r4 + cmp r7, r8 + blt _022E7960 +_022E79A8: + add r0, sp, #0x20 mov r1, #0 strb r1, [r0, r6] - ldr r1, [sp, #0x28] - cmp r1, #0 - beq _0208A054 - bl FUN_02086450 + bl ov00_022EC1C0 + ldr r0, [r0] + ldr r2, [sp, #4] + add r3, sp, #0x20 + mov r1, sl + bl ov00_022E7B88 + mov r4, r0 +_022E79D0: + cmp sl, #2 + cmpne sl, #6 + beq _022E79EC + add r0, sl, #0xf8 + and r0, r0, #0xff + cmp r0, #1 + bhi _022E7A5C +_022E79EC: + bl ov00_022EC1C0 + strb sl, [r0, #0x3cc] + bl ov00_022EC1C0 + add r1, r0, #0x300 + ldr r0, [sp, #0xc] + strh r0, [r1, #0xce] + bl ov00_022EC1C0 + ldr r1, [sp, #8] + str r1, [r0, #0x3d0] + bl ov00_022EC1C0 + ldr r1, [sp, #4] + str r1, [r0, #0x454] + bl ov00_022EC1C0 + str r8, [r0, #0x458] + bl ov00_022EC1C0 + mov r5, r0 + bl FUN_0207AE44 + str r0, [r5, #0x45c] + cmp sb, #0 + str r1, [r5, #0x460] + cmpne r8, #0 + beq _022E7A5C + bl ov00_022EC1C0 + mov r1, r0 + mov r0, sb + add r1, r1, #0x3d4 + lsl r2, r8, #2 + bl FUN_0207C330 +_022E7A5C: + mov r0, r4 + add sp, sp, #0x220 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022E7A68: .4byte 0x0231A1C0 +_022E7A6C: .4byte 0x0231A2A0 + arm_func_end ov00_022E78AC + + arm_func_start ov00_022E7A70 +ov00_022E7A70: @ 0x022E7A70 + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x98 + ldr r5, [sp, #0xb8] + mov r4, r0 + cmp r5, #0x20 + movhi r5, #0x20 + cmp r3, #0 + cmpne r5, #0 + mov r8, r1 + mov r7, r2 + moveq r5, #0 + beq _022E7AB0 + add r1, sp, #0x18 + mov r0, r3 + lsl r2, r5, #2 + bl FUN_0207C330 +_022E7AB0: + ldr r2, _022E7B84 @ =0x0231A2A4 + lsl r0, r5, #2 + ldrb r1, [r2, #4] + ldrb r6, [r2] + add sb, sp, #4 + ldrb r5, [r2, #1] + ldrb r3, [r2, #2] + ldrb r2, [r2, #3] + strb r1, [sb, #4] + mov r1, #3 + strb r6, [sb] + strb r5, [sb, #1] + strb r3, [sb, #2] + strb r2, [sb, #3] + str r1, [sp, #8] + strb r4, [sp, #0xc] + strb r0, [sp, #0xd] + bl ov00_022EC1C0 + ldrh r0, [r0, #0x1a] + strh r0, [sp, #0xe] + bl ov00_022EC1C0 + ldr r0, [r0, #0x1c] + str r0, [sp, #0x10] + bl ov00_022EC1C0 + ldr r0, [r0, #0x200] + mov r6, #0 + str r0, [sp, #0x14] + mov r4, r6 +_022E7B20: + bl ov00_022EC1C0 + mov r5, r0 + mov r0, r8 + mov r1, r4 + mov r2, r4 + bl ov00_02310BF4 + mov r1, r0 + ldrb r0, [sp, #0xd] + mov r2, r7 + mov r3, sb + add r0, r0, #0x14 + str r0, [sp] + ldr r0, [r5, #0xe4] + bl ov00_02315C60 + cmp r0, #0 + addeq sp, sp, #0x98 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + cmp r0, #2 + addne sp, sp, #0x98 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + add r6, r6, #1 + cmp r6, #5 + blt _022E7B20 + add sp, sp, #0x98 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022E7B84: .4byte 0x0231A2A4 + arm_func_end ov00_022E7A70 + + arm_func_start ov00_022E7B88 +ov00_022E7B88: @ 0x022E7B88 + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x208 + mov sb, r0 + mov r8, r2 + mov r7, r3 + mov r0, #3 + mov r5, r1 + str r0, [sp] + ldr r4, _022E7C3C @ =0x0231A2BC + ldr r2, _022E7C40 @ =0x0231A2AC + ldr r3, _022E7C44 @ =0x0231A2B4 + add r0, sp, #8 + mov r1, #0x200 + str r4, [sp, #4] + bl FUN_0207911C + mov r4, r0 + add r2, sp, #8 + add r1, sp, #9 + strb r5, [r2, r4] + mov r0, #0 + strb r0, [r1, r4] + cmp r7, #0 + add r6, r1, r4 + beq _022E7C24 + mov r0, r7 + bl FUN_02089678 + mov r5, r0 + add r0, r4, #2 + add r0, r0, r5 + cmp r0, #0x200 + ldrhi r0, _022E7C48 @ =0x000001FF + addhi r1, r4, #1 + subhi r5, r0, r1 + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl FUN_0207C4C8 + mov r0, #0 + strb r0, [r6, r5] +_022E7C24: + add r2, sp, #8 + mov r0, sb + mov r1, r8 + bl ov00_022FFB10 + add sp, sp, #0x208 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022E7C3C: .4byte 0x0231A2BC +_022E7C40: .4byte 0x0231A2AC +_022E7C44: .4byte 0x0231A2B4 +_022E7C48: .4byte 0x000001FF + arm_func_end ov00_022E7B88 + + arm_func_start ov00_022E7C4C +ov00_022E7C4C: @ 0x022E7C4C + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov sb, r1 + mov r4, r0 + mov r8, r2 + mov r0, sb + mov r1, #0 + bl FUN_02089974 + mov r6, r0 + cmp r8, #0 + mov r7, #0 + ble _022E7CA4 + mov r5, #0x2f +_022E7C7C: + mov r0, sb + mov r1, r5 + bl FUN_02089974 + cmp r0, #0 + mvneq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + add r7, r7, #1 + cmp r7, r8 + add sb, r0, #1 + blt _022E7C7C +_022E7CA4: + mov r0, sb + mov r1, #0x2f + bl FUN_02089974 + cmp r0, #0 + moveq r0, r6 + cmp sb, r0 + mvneq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + sub r5, r0, sb + mov r0, sb + mov r1, r4 + mov r2, r5 + bl FUN_0207C4C8 + mov r1, #0 + mov r0, r5 + strb r1, [r4, r5] + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_022E7C4C + + arm_func_start ov00_022E7CE8 +ov00_022E7CE8: @ 0x022E7CE8 + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x118 + mov sb, r0 + mov r8, r1 + mov r7, r2 + mov sl, r3 + ldr r6, [sp, #0x138] + ldr r5, [sp, #0x13c] + mov r4, #0 + bl ov00_022EC1C0 + cmp r0, #0 + beq _022E7D28 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0 + bne _022E7D34 +_022E7D28: + add sp, sp, #0x118 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022E7D34: + bl ov00_022E1FC0 + cmp r0, #5 + bne _022E7D64 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #1 + bne _022E7D64 + bl ov00_022EC1C0 + ldr r0, [r0, #0xf4] + cmp r8, r0 + bne _022E7D64 + bl ov00_022EB15C +_022E7D64: + cmp sb, #0x40 + bgt _022E7E00 + bge _022E8B44 + cmp sb, #0x20 + addls pc, pc, sb, lsl #2 + b _022E8BB8 +_022E7D7C: @ jump table + b _022E8BB8 @ case 0 + b _022E7E08 @ case 1 + b _022E7FD8 @ case 2 + b _022E81AC @ case 3 + b _022E820C @ case 4 + b _022E832C @ case 5 + b _022E83A8 @ case 6 + b _022E84B8 @ case 7 + b _022E85D0 @ case 8 + b _022E8750 @ case 9 + b _022E87A4 @ case 10 + b _022E7E08 @ case 11 + b _022E884C @ case 12 + b _022E88C0 @ case 13 + b _022E88C0 @ case 14 + b _022E88C0 @ case 15 + b _022E88E4 @ case 16 + b _022E8934 @ case 17 + b _022E89D4 @ case 18 + b _022E8A30 @ case 19 + b _022E8BB8 @ case 20 + b _022E8BB8 @ case 21 + b _022E8BB8 @ case 22 + b _022E8BB8 @ case 23 + b _022E8BB8 @ case 24 + b _022E8BB8 @ case 25 + b _022E8BB8 @ case 26 + b _022E8BB8 @ case 27 + b _022E8BB8 @ case 28 + b _022E8BB8 @ case 29 + b _022E8BB8 @ case 30 + b _022E8BB8 @ case 31 + b _022E8A48 @ case 32 +_022E7E00: + cmp sb, #0x41 + b _022E8BB8 +_022E7E08: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + beq _022E7E28 + ldr r0, [r6, #8] + ldr r7, [r6, #4] + lsl r0, r0, #0x10 + lsr sl, r0, #0x10 +_022E7E28: + cmp sb, #0xb + moveq r0, #1 + movne r0, #0 + str r0, [sp] + ldr r3, [r6] + mov r0, r8 + mov r1, r7 + mov r2, sl + bl ov00_022E8BCC + mov r5, r0 + cmp r5, #2 + bne _022E7F4C + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1dc] + mov r0, r8 + mov r1, r7 + mov r2, sl + bl ov00_022E8EF8 + bl ov00_022E9108 + cmp r0, #0 + addne sp, sp, #0x118 + movne r0, #0 + popne {r4, r5, r6, r7, r8, sb, sl, pc} + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #2 + bne _022E7ED0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x46c] + cmp r0, #0 + beq _022E7ED0 + bl ov00_022EC1C0 + mov r6, r0 + mov r0, r8 + bl ov00_022E3DB8 + mov r4, r0 + bl ov00_022EC1C0 + ldr r1, [r0, #0x470] + ldr r2, [r6, #0x46c] + mov r0, r4 + blx r2 +_022E7ED0: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x14] + mov r4, #1 + str r0, [sp, #0x14] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x14] + cmp r0, #1 + blt _022E7F18 + add r6, sp, #0x14 +_022E7EF4: + bl ov00_022EC1C0 + add r0, r0, r4, lsl #2 + ldr r0, [r0, #0xf4] + str r0, [r6, r4, lsl #2] + add r4, r4, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x14] + cmp r4, r0 + ble _022E7EF4 +_022E7F18: + bl ov00_022EC1C0 + ldr r1, [r0, #0x1c] + add r0, sp, #0x14 + str r1, [r0, r4, lsl #2] + bl ov00_022EC1C0 + ldrh r2, [r0, #0x1a] + add r3, r4, #1 + add r1, sp, #0x14 + mov r0, #0xb + str r2, [r1, r3, lsl #2] + add r4, r4, #2 + bl ov00_022EC1D0 + b _022E7F98 +_022E7F4C: + cmp r5, #3 + bne _022E7F98 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x16] + cmp r0, #0 + beq _022E7F98 + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + ldrb r1, [r6, #0x14] + ldrb r0, [r0, #0x16] + cmp r1, r0 + bne _022E7F98 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #2 + moveq r0, #0x10 + streq r0, [sp, #0x14] + moveq r4, #1 +_022E7F98: + cmp r5, #0xff + beq _022E8BB8 + add r1, sp, #0x14 + str r1, [sp] + mov r0, r5 + mov r1, r8 + mov r2, r7 + mov r3, sl + str r4, [sp, #4] + bl ov00_022E78AC + bl ov00_022E9108 + cmp r0, #0 + beq _022E8BB8 + add sp, sp, #0x118 + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022E7FD8: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #4 + bne _022E8BB8 + bl ov00_022EC1C0 + ldr r0, [r0, #0x204] + cmp r8, r0 + bne _022E8BB8 + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x208] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1a7] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1c8] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1bc] + bl ov00_022EC1C0 + ldr r1, [r6] + add r1, r6, r1, lsl #2 + ldr r1, [r1, #4] + str r1, [r0, #0x24] + bl ov00_022EC1C0 + ldr r1, [r6] + add r1, r6, r1, lsl #2 + ldr r1, [r1, #8] + strh r1, [r0, #0xa4] + bl ov00_022EC1C0 + ldr r1, [r6] + add r1, r6, r1, lsl #2 + ldr r1, [r1, #4] + str r1, [r0, #0x1b8] + bl ov00_022EC1C0 + ldr r1, [r6] + add r0, r0, #0x100 + add r1, r6, r1, lsl #2 + ldr r1, [r1, #8] + strh r1, [r0, #0xb4] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #1 + bne _022E8100 + ldr r1, [r6] + add r0, r6, #4 + bl ov00_022EA16C + cmp r0, #0 + beq _022E80C0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #0 + beq _022E8100 + mov r0, r8 + mov r1, r6 + bl ov00_022E90B8 + b _022E8100 +_022E80C0: + mov r0, r8 + bl ov00_022E9690 + bl ov00_022E9108 + cmp r0, #0 + addne sp, sp, #0x118 + mov r0, #0 + popne {r4, r5, r6, r7, r8, sb, sl, pc} + mov r1, r0 + mov r2, r8 + bl ov00_022E92F0 + bl ov00_022E9108 + cmp r0, #0 + beq _022E8BB8 + add sp, sp, #0x118 + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022E8100: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + bne _022E8184 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #0 + beq _022E8144 + mov r0, r8 + mov r1, r6 + bl ov00_022E90B8 + bl ov00_022E99C0 + bl ov00_022E9108 + cmp r0, #0 + addne sp, sp, #0x118 + movne r0, #0 + popne {r4, r5, r6, r7, r8, sb, sl, pc} +_022E8144: + mov r0, #6 + bl ov00_022EC1D0 + bl ov00_022EC1C0 + ldr r0, [r0, #0xe4] + mov r1, #0 + bl ov00_02315D80 mov r2, r0 mov r0, #0 - mov r3, r1 mov r1, r0 - bl FUN_0208e904 - b _0208A058 -_0208A054: - bl FUN_02086450 -_0208A058: - ldr r2, [sp, #0x2c] - add r2, r2, r5 - add r3, r6, r2 - ldr r2, [sp, #0x18] - add r3, r2, r3 - ldr r2, [sp, #4] - add sp, sp, #0xa8 - str r3, [r2] - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0208A07C: - mov r5, #0x1000 - b _0208A8D0 -_0208A084: - cmp r1, #0x2e - bne _0208A0AC - mov r5, #0x10 - add r4, r4, #1 - mov r0, r8 - mov r1, #0 - mov r2, r1 - blx sb - mov r1, r0 - b _0208A8D0 -_0208A0AC: - cmp r1, #0 - blt _0208A0BC - cmp r1, #0x80 - blt _0208A0C4 -_0208A0BC: + bl ov00_022E7504 + bl ov00_022EB810 + cmp r0, #0 + beq _022E8BB8 + add sp, sp, #0x118 mov r0, #0 - b _0208A0D4 -_0208A0C4: - lsl r2, r1, #1 - ldr r0, _0208AAC4 @ =0x020AEDB0 - ldrh r0, [r0, r2] - and r0, r0, #8 -_0208A0D4: - cmp r0, #0 - moveq r5, #0x1000 - beq _0208A8D0 - cmp r1, #0x30 - bne _0208A12C - add r4, r4, #1 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022E8184: + mov r0, #5 + bl ov00_022EC1D0 mov r0, r8 - mov r1, #0 - mov r2, r1 - blx sb + bl ov00_022E72A0 + bl ov00_022EB694 cmp r0, #0 - mov r1, r0 - blt _0208A118 - cmp r0, #0x80 - bge _0208A118 - ldr r2, _0208AAC8 @ =0x020AED30 - ldrb r0, [r2, r0] -_0208A118: - cmp r0, #0x58 - moveq r5, #0x8000 - moveq sl, #1 - movne r5, #4 - b _0208A8D0 -_0208A12C: - mov r5, #8 - b _0208A8D0 -_0208A134: - cmp r1, #0x30 - movne r5, #8 - bne _0208A8D0 - mov r1, #0 - mov r0, r8 - mov r2, r1 - add r4, r4, #1 - blx sb - mov r1, r0 - b _0208A8D0 -_0208A15C: - cmp r1, #0 - blt _0208A16C - cmp r1, #0x80 - blt _0208A174 -_0208A16C: + beq _022E8BB8 + add sp, sp, #0x118 mov r0, #0 - b _0208A184 -_0208A174: - lsl r2, r1, #1 - ldr r0, _0208AAC4 @ =0x020AEDB0 - ldrh r0, [r0, r2] - and r0, r0, #8 -_0208A184: - cmp r0, #0 - bne _0208A1B8 - cmp r1, #0x2e - movne r5, #0x40 - bne _0208A8D0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022E81AC: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #4 + bne _022E8BB8 + bl ov00_022EC1C0 + ldr r0, [r0, #0x204] + cmp r8, r0 + bne _022E8BB8 + cmp r5, #0 + ble _022E81F8 + ldr r0, [r6] + cmp r0, #0x10 + bne _022E81F8 + mov r0, #0xd mov r1, #0 - mov r0, r8 - mov r2, r1 - mov r5, #0x20 - add r4, r4, #1 - blx sb - mov r1, r0 - b _0208A8D0 -_0208A1B8: - ldrb r2, [sp, #0x84] - cmp r2, #0x14 - ldrhs r0, [sp, #0x1c] - addhs r0, r0, #1 - strhs r0, [sp, #0x1c] - bhs _0208A1E4 - add r0, r2, #1 - strb r0, [sp, #0x84] - add r0, sp, #0x80 - add r0, r0, r2 - strb r1, [r0, #5] -_0208A1E4: - add r4, r4, #1 - mov r0, r8 - mov r1, #0 - mov r2, r1 - blx sb - mov r1, r0 - b _0208A8D0 -_0208A200: - cmp r1, #0 - blt _0208A210 - cmp r1, #0x80 - blt _0208A218 -_0208A210: + bl ov00_022E6570 + add sp, sp, #0x118 mov r0, #0 - b _0208A228 -_0208A218: - lsl r2, r1, #1 - ldr r0, _0208AAC4 @ =0x020AEDB0 - ldrh r0, [r0, r2] - and r0, r0, #8 -_0208A228: + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022E81F8: + bl ov00_022EC1C0 + ldr r0, [r0, #0x204] + bl ov00_022E95B8 + add sp, sp, #0x118 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022E820C: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #4 + bne _022E8BB8 + bl ov00_022EC1C0 + ldr r0, [r0, #0x204] + cmp r8, r0 + bne _022E8BB8 + bl ov00_022EC1C0 + mov r4, r0 + bl FUN_0207AE44 + str r0, [r4, #0x1cc] + str r1, [r4, #0x1d0] + bl ov00_022EC1C0 + ldr r0, [r0, #0x208] cmp r0, #0 - moveq r5, #0x1000 - movne r5, #0x20 - b _0208A8D0 -_0208A238: - cmp r1, #0 - blt _0208A248 - cmp r1, #0x80 - blt _0208A250 -_0208A248: - mov r0, #0 - b _0208A260 -_0208A250: - lsl r2, r1, #1 - ldr r0, _0208AAC4 @ =0x020AEDB0 - ldrh r0, [r0, r2] - and r0, r0, #8 -_0208A260: + beq _022E8260 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a7] + cmp r0, #0x10 + blo _022E8270 +_022E8260: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #3 + bne _022E82B4 +_022E8270: + bl ov00_022EC1C0 + mov r1, #1 + str r1, [r0, #0x1bc] + bl ov00_022EC1C0 + mov r4, r0 + bl FUN_0207AE44 + str r0, [r4, #0x1c0] + str r1, [r4, #0x1c4] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #3 + beq _022E8BB8 + bl ov00_022EC1C0 + ldrb r1, [r0, #0x1a7] + add r1, r1, #1 + strb r1, [r0, #0x1a7] + b _022E8BB8 +_022E82B4: + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x208] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1a7] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] cmp r0, #0 - moveq r5, #0x40 - beq _0208A8D0 - ldrb r3, [sp, #0x84] - cmp r3, #0x14 - bhs _0208A2A8 - cmp r1, #0x30 - cmpeq r3, #0 - beq _0208A29C - ldrb r2, [sp, #0x84] - add r0, sp, #0x80 - add r0, r0, r3 - add r2, r2, #1 - strb r2, [sp, #0x84] - strb r1, [r0, #5] -_0208A29C: - ldr r0, [sp, #0x1c] - sub r0, r0, #1 - str r0, [sp, #0x1c] -_0208A2A8: - add r4, r4, #1 - mov r0, r8 + bne _022E8308 + mov r0, #3 + bl ov00_022EC1D0 + bl ov00_022EC1C0 + mov r1, #1 + str r1, [r0, #0xe8] + bl ov00_022EC1C0 + mov r4, r0 + bl FUN_0207AE44 + str r0, [r4, #0xec] + str r1, [r4, #0xf0] + b _022E8BB8 +_022E8308: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #1 + bne _022E8BB8 mov r1, #0 mov r2, r1 - blx sb - mov r1, r0 - b _0208A8D0 -_0208A2C4: - cmp r1, #0 - blt _0208A2D4 - cmp r1, #0x80 - blt _0208A2DC -_0208A2D4: - mov r0, r1 - b _0208A2E4 -_0208A2DC: - ldr r0, _0208AAC8 @ =0x020AED30 - ldrb r0, [r0, r1] -_0208A2E4: - cmp r0, #0x45 - movne r5, #0x800 - bne _0208A8D0 - mov r1, #0 - mov r0, r8 - mov r2, r1 - mov r5, #0x80 - add r4, r4, #1 - blx sb - mov r1, r0 - b _0208A8D0 -_0208A310: - cmp r1, #0x2b - bne _0208A334 - add r4, r4, #1 - mov r0, r8 - mov r1, #0 - mov r2, r1 - blx sb - mov r1, r0 - b _0208A35C -_0208A334: - cmp r1, #0x2d - bne _0208A35C - mov r1, #0 - mov r0, r8 - mov r2, r1 - add r4, r4, #1 - blx sb - mov r1, r0 mov r0, #1 - str r0, [sp, #0x24] -_0208A35C: - mov r5, #0x100 - b _0208A8D0 -_0208A364: - cmp r1, #0 - blt _0208A374 - cmp r1, #0x80 - blt _0208A37C -_0208A374: - mov r0, #0 - b _0208A38C -_0208A37C: - lsl r2, r1, #1 - ldr r0, _0208AAC4 @ =0x020AEDB0 - ldrh r0, [r0, r2] - and r0, r0, #8 -_0208A38C: + bl ov00_022E92F0 + b _022E8BB8 +_022E832C: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x17] cmp r0, #0 - moveq r5, #0x1000 - beq _0208A8D0 - cmp r1, #0x30 - movne r5, #0x400 - bne _0208A8D0 - mov r1, #0 - mov r0, r8 - mov r2, r1 - mov r5, #0x200 - add r4, r4, #1 - blx sb - mov r1, r0 - b _0208A8D0 -_0208A3C4: - cmp r1, #0x30 - movne r5, #0x400 - bne _0208A8D0 - mov r1, #0 - mov r0, r8 - mov r2, r1 - add r4, r4, #1 - blx sb - mov r1, r0 - b _0208A8D0 -_0208A3EC: - cmp r1, #0 - blt _0208A3FC - cmp r1, #0x80 - blt _0208A404 -_0208A3FC: - mov r0, #0 - b _0208A414 -_0208A404: - lsl r2, r1, #1 - ldr r0, _0208AAC4 @ =0x020AEDB0 - ldrh r0, [r0, r2] - and r0, r0, #8 -_0208A414: - cmp r0, #0 - moveq r5, #0x800 - beq _0208A8D0 - ldr r0, [sp, #0x20] - sub r2, r1, #0x30 - mov r1, #0xa - mla r0, r1, r0, r2 - ldr r1, _0208AAD0 @ =0x00007FFF - str r0, [sp, #0x20] - cmp r0, r1 - ldrgt r0, [sp, #0xd0] - movgt r1, #1 - strgt r1, [r0] - mov r1, #0 - mov r0, r8 - mov r2, r1 - add r4, r4, #1 - blx sb - mov r1, r0 - b _0208A8D0 -_0208A464: - cmp sl, #0x20 - bgt _0208A4B4 - bge _0208A788 - cmp sl, #8 - bgt _0208A4A8 - cmp sl, #0 - addge pc, pc, sl, lsl #2 - b _0208A8D0 -_0208A484: @ jump table - b _0208A8D0 @ case 0 - b _0208A4D8 @ case 1 - b _0208A528 @ case 2 - b _0208A8D0 @ case 3 - b _0208A550 @ case 4 - b _0208A8D0 @ case 5 - b _0208A8D0 @ case 6 - b _0208A8D0 @ case 7 - b _0208A660 @ case 8 -_0208A4A8: - cmp sl, #0x10 - beq _0208A73C - b _0208A8D0 -_0208A4B4: - cmp sl, #0x80 - bgt _0208A4CC - bge _0208A830 - cmp sl, #0x40 - beq _0208A7D0 - b _0208A8D0 -_0208A4CC: - cmp sl, #0x100 - beq _0208A858 - b _0208A8D0 -_0208A4D8: - mov r1, #0 - add r0, sp, #0x45 - str r0, [sp, #0x14] - strb r1, [r0] - strb r1, [r0, #1] - strb r1, [r0, #2] - strb r1, [r0, #3] - strb r1, [r0, #4] - strb r1, [r0, #5] - strb r1, [r0, #6] - strb r1, [r0, #7] - mov r0, r8 - mov r2, r1 - str r1, [sp, #8] - mov fp, r1 - mov sl, #2 - add r4, r4, #1 - blx sb - mov r1, r0 - b _0208A8D0 -_0208A528: - cmp r1, #0x30 - movne sl, #4 - bne _0208A8D0 - mov r1, #0 - mov r0, r8 - mov r2, r1 - add r4, r4, #1 - blx sb - mov r1, r0 - b _0208A8D0 -_0208A550: - cmp r1, #0 - blt _0208A560 - cmp r1, #0x80 - blt _0208A568 -_0208A560: - mov r0, #0 - b _0208A578 -_0208A568: - lsl r2, r1, #1 - ldr r0, _0208AAC4 @ =0x020AEDB0 - ldrh r0, [r0, r2] - and r0, r0, #0x400 -_0208A578: - cmp r0, #0 - bne _0208A5AC - cmp r1, #0x2e - movne sl, #0x10 - bne _0208A8D0 - mov r1, #0 - mov r0, r8 - mov r2, r1 - mov sl, #8 - add r4, r4, #1 - blx sb - mov r1, r0 - b _0208A8D0 -_0208A5AC: - ldr r2, [sp, #8] - mov r0, #0xe - cmp r2, r0 - bhs _0208A644 - mov r0, r2 - add r0, r0, #1 - str r0, [sp, #8] - ldr r0, [sp, #0x14] - add r2, fp, fp, lsr #31 - cmp r1, #0 - ldrb r0, [r0, r2, asr #1] - blt _0208A5EC - cmp r1, #0x80 - bge _0208A5EC - ldr r2, _0208AAC8 @ =0x020AED30 - ldrb r1, [r2, r1] -_0208A5EC: - cmp r1, #0x41 - subge r1, r1, #0x37 - sublt r1, r1, #0x30 - lsr r2, fp, #0x1f - and r3, r1, #0xff - rsb r1, r2, fp, lsl #31 - adds r1, r2, r1, ror #31 - lsleq r1, r3, #4 - add r2, fp, fp, lsr #31 - orrne r0, r0, r3 - andeq r1, r1, #0xff - orreq r0, r0, r1 - ldr r1, [sp, #0x14] - add fp, fp, #1 - strb r0, [r1, r2, asr #1] - mov r1, #0 - mov r0, r8 - mov r2, r1 - add r4, r4, #1 - blx sb - mov r1, r0 - b _0208A8D0 -_0208A644: - add r4, r4, #1 - mov r0, r8 - mov r1, #0 - mov r2, r1 - blx sb - mov r1, r0 - b _0208A8D0 -_0208A660: - cmp r1, #0 - blt _0208A670 - cmp r1, #0x80 - blt _0208A678 -_0208A670: - mov r0, #0 - b _0208A688 -_0208A678: - lsl r2, r1, #1 - ldr r0, _0208AAC4 @ =0x020AEDB0 - ldrh r0, [r0, r2] - and r0, r0, #0x400 -_0208A688: - cmp r0, #0 - moveq sl, #0x10 - beq _0208A8D0 - ldr r2, [sp, #8] - mov r0, #0xe - cmp r2, r0 - bhs _0208A720 - ldr r0, [sp, #0x14] - add r2, fp, fp, lsr #31 - cmp r1, #0 - ldrb r0, [r0, r2, asr #1] - blt _0208A6C8 - cmp r1, #0x80 - bge _0208A6C8 - ldr r2, _0208AAC8 @ =0x020AED30 - ldrb r1, [r2, r1] -_0208A6C8: - cmp r1, #0x41 - subge r1, r1, #0x37 - sublt r1, r1, #0x30 - lsr r2, fp, #0x1f - and r3, r1, #0xff - rsb r1, r2, fp, lsl #31 - adds r1, r2, r1, ror #31 - lsleq r1, r3, #4 - add r2, fp, fp, lsr #31 - orrne r0, r0, r3 - andeq r1, r1, #0xff - orreq r0, r0, r1 - ldr r1, [sp, #0x14] - add fp, fp, #1 - strb r0, [r1, r2, asr #1] - mov r1, #0 - mov r0, r8 - mov r2, r1 - add r4, r4, #1 - blx sb - mov r1, r0 - b _0208A8D0 -_0208A720: - add r4, r4, #1 - mov r0, r8 - mov r1, #0 - mov r2, r1 - blx sb - mov r1, r0 - b _0208A8D0 -_0208A73C: - cmp r1, #0 - blt _0208A74C - cmp r1, #0x80 - blt _0208A754 -_0208A74C: - mov r0, r1 - b _0208A75C -_0208A754: - ldr r0, _0208AAC8 @ =0x020AED30 - ldrb r0, [r0, r1] -_0208A75C: - cmp r0, #0x50 - movne r5, #0x800 - bne _0208A8D0 - mov r1, #0 - mov r0, r8 - mov r2, r1 - mov sl, #0x20 - add r4, r4, #1 - blx sb - mov r1, r0 - b _0208A8D0 -_0208A788: - cmp r1, #0x2d - moveq r0, #1 - streq r0, [sp, #0xc] - beq _0208A7B0 - cmp r1, #0x2b - beq _0208A7B0 - mov r0, r8 - mov r2, #1 - blx sb - sub r4, r4, #1 -_0208A7B0: - mov sl, #0x40 - add r4, r4, #1 - mov r0, r8 - mov r1, #0 - mov r2, r1 - blx sb - mov r1, r0 - b _0208A8D0 -_0208A7D0: - cmp r1, #0 - blt _0208A7E0 - cmp r1, #0x80 - blt _0208A7E8 -_0208A7E0: - mov r0, #0 - b _0208A7F8 -_0208A7E8: - lsl r2, r1, #1 - ldr r0, _0208AAC4 @ =0x020AEDB0 - ldrh r0, [r0, r2] - and r0, r0, #8 -_0208A7F8: - cmp r0, #0 - moveq r5, #0x1000 - beq _0208A8D0 - cmp r1, #0x30 - movne sl, #0x100 - bne _0208A8D0 - mov r1, #0 - mov r0, r8 - mov r2, r1 - mov sl, #0x80 - add r4, r4, #1 - blx sb - mov r1, r0 - b _0208A8D0 -_0208A830: - cmp r1, #0x30 - movne sl, #0x100 - bne _0208A8D0 - mov r1, #0 - mov r0, r8 - mov r2, r1 - add r4, r4, #1 - blx sb - mov r1, r0 - b _0208A8D0 -_0208A858: - cmp r1, #0 - blt _0208A868 - cmp r1, #0x80 - blt _0208A870 -_0208A868: - mov r0, #0 - b _0208A880 -_0208A870: - lsl r2, r1, #1 - ldr r0, _0208AAC4 @ =0x020AEDB0 - ldrh r0, [r0, r2] - and r0, r0, #8 -_0208A880: - cmp r0, #0 - moveq r5, #0x800 - beq _0208A8D0 - ldr r0, [sp, #0x10] - sub r2, r1, #0x30 - mov r1, #0xa - mla r0, r1, r0, r2 - str r0, [sp, #0x10] - ldr r1, _0208AAD0 @ =0x00007FFF - ldr r0, [sp, #0x20] - add r4, r4, #1 - cmp r0, r1 - ldrgt r0, [sp, #0xd0] - movgt r1, #1 - strgt r1, [r0] - mov r1, #0 - mov r0, r8 - mov r2, r1 - blx sb - mov r1, r0 -_0208A8D0: - ldr r0, [sp] - cmp r4, r0 - bgt _0208A8F0 - mvn r0, #0 - cmp r1, r0 - beq _0208A8F0 - tst r5, #0x1800 - beq _02089BE4 -_0208A8F0: - cmp r5, #0x8000 - beq _0208A90C - ldr r0, _0208AAD4 @ =0x00000E2C - tst r5, r0 - moveq r0, #1 - movne r0, #0 - b _0208A930 -_0208A90C: - sub r0, r4, #1 + beq _022E8BB8 + bl ov00_022EC1C0 + ldr r0, [r0, #0x20] + cmp r8, r0 + bne _022E8BB8 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] cmp r0, #2 - ble _0208A924 - ldr r0, _0208AAD8 @ =0x0000018E - tst sl, r0 - bne _0208A92C -_0208A924: - mov r0, #1 - b _0208A930 -_0208A92C: - mov r0, #0 -_0208A930: - cmp r0, #0 - movne r2, #0 - ldrne r0, [sp, #4] - bne _0208A950 - ldr r0, [sp, #0x2c] - sub r2, r4, #1 - add r2, r2, r0 - ldr r0, [sp, #4] -_0208A950: - str r2, [r0] - mov r0, r8 - mov r2, #1 - blx sb - cmp sl, #0 - bne _0208AB54 - ldr r0, [sp, #0x24] - ldrb r2, [sp, #0x84] - cmp r0, #0 - ldrne r0, [sp, #0x20] - rsbne r0, r0, #0 - strne r0, [sp, #0x20] - add r0, sp, #0x85 - add r1, r0, r2 - b _0208A998 -_0208A98C: - ldr r0, [sp, #0x1c] - add r0, r0, #1 - str r0, [sp, #0x1c] -_0208A998: - cmp r2, #0 - sub r2, r2, #1 - beq _0208A9B0 - ldrb r0, [r1, #-1]! - cmp r0, #0x30 - beq _0208A98C -_0208A9B0: - add r0, r2, #1 - strb r0, [sp, #0x84] - ands r2, r0, #0xff - bne _0208A9D4 - add r1, r2, #1 - strb r1, [sp, #0x84] - add r0, sp, #0x85 - mov r1, #0x30 - strb r1, [r0, r2] -_0208A9D4: - ldr r1, [sp, #0x20] - ldr r0, [sp, #0x1c] - mov r2, #0x8000 - add r0, r1, r0 - rsb r2, r2, #0 - str r0, [sp, #0x20] - cmp r0, r2 - blt _0208A9FC - cmp r0, r2, lsr #17 - ble _0208AA08 -_0208A9FC: - ldr r0, [sp, #0xd0] - mov r1, #1 - str r1, [r0] -_0208AA08: - ldr r0, [sp, #0xd0] + bne _022E838C + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #1 + bne _022E838C + bl ov00_022EC1C0 + ldr r0, [r0, #0xf8] + cmp r8, r0 + bne _022E838C + bl ov00_022EC1C0 + ldr r0, [r0, #4] ldr r0, [r0] + bl ov00_0230E3A4 +_022E838C: + mov r0, r8 + bl ov00_022E96E4 cmp r0, #0 - beq _0208AA64 - ldr r0, [sp, #0x24] - cmp r0, #0 - movne r0, #0 - addne sp, sp, #0xa8 - movne r1, r0 - popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldr r0, [sp, #0x28] - cmp r0, #0 - ldreq r1, _0208AADC @ =0x020B2FC0 - addeq sp, sp, #0xa8 - ldmeq r1, {r0, r1} - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldr r1, _0208AADC @ =0x020B2FC0 + bne _022E8BB8 + add sp, sp, #0x118 mov r0, #0 - ldm r1, {r2, r3} - mov r1, r0 - bl FUN_0208e904 - add sp, sp, #0xa8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0208AA64: - ldr r1, [sp, #0x20] - add r0, sp, #0x80 - strh r1, [sp, #0x82] - bl FUN_0208d6e0 - mov r4, r0 - mov r6, r1 - mov r0, #0 - mov r1, r0 - mov r2, r4 - mov r3, r6 - bl FUN_0208f140 - beq _0208AAE4 - mov r0, r4 - mov r1, r6 - mov r2, #0 - mov r3, #0x100000 - bl FUN_0208f018 - bhs _0208AAE4 - ldr r0, [sp, #0xd0] - mov r1, #1 - str r1, [r0] - b _0208AB10 - .align 2, 0 -_0208AABC: .4byte 0x020AEEB5 -_0208AAC0: .4byte 0x020AEEB0 -_0208AAC4: .4byte 0x020AEDB0 -_0208AAC8: .4byte 0x020AED30 -_0208AACC: .4byte 0x020B2FB8 -_0208AAD0: .4byte 0x00007FFF -_0208AAD4: .4byte 0x00000E2C -_0208AAD8: .4byte 0x0000018E -_0208AADC: .4byte 0x020B2FC0 -_0208AAE0: .4byte 0x7FEFFFFF -_0208AAE4: - ldr r3, _0208AAE0 @ =0x7FEFFFFF - mov r0, r4 - mov r1, r6 - mvn r2, #0 - bl FUN_0208eedc - bls _0208AB10 - ldr r0, [sp, #0xd0] - mov r2, #1 - ldr r1, _0208AADC @ =0x020B2FC0 - str r2, [r0] - ldm r1, {r4, r6} -_0208AB10: - ldr r0, [sp, #0x28] - cmp r0, #0 - beq _0208AB44 - ldr r0, _0208AAD4 @ =0x00000E2C - tst r5, r0 - beq _0208AB44 - mov r0, #0 - mov r1, r0 - mov r2, r4 - mov r3, r6 - bl FUN_0208e904 - mov r4, r0 - mov r6, r1 -_0208AB44: - add sp, sp, #0xa8 - mov r0, r4 - mov r1, r6 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0208AB54: - ldr r0, [sp, #0xc] - add r4, sp, #0x38 - cmp r0, #0 - ldrne r0, [sp, #0x10] - ldrb r3, [sp, #0x45] - rsbne r0, r0, #0 - strne r0, [sp, #0x10] - ldr r1, [sp, #0x10] - ldr r0, [sp, #8] - mov r2, #0 - add r0, r1, r0, lsl #2 - str r0, [sp, #0x10] - mov r1, #0x80 - b _0208AB9C -_0208AB8C: - ldr r0, [sp, #0x10] - add r2, r2, #1 - sub r0, r0, #1 - str r0, [sp, #0x10] -_0208AB9C: - cmp r2, #4 - bhs _0208ABAC - tst r3, r1, asr r2 - beq _0208AB8C -_0208ABAC: - adds r5, r2, #1 - beq _0208ABF8 - add r0, sp, #0x4c - add r3, sp, #0x45 - str r0, [sp, #0x14] - mov r1, #0 - cmp r0, r3 - blo _0208ABF8 - rsb r6, r5, #8 -_0208ABD0: - ldr r0, [sp, #0x14] - ldrb r0, [r0] - orr r2, r1, r0, lsl r5 - asr r1, r0, r6 - ldr r0, [sp, #0x14] + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022E83A8: + ldr r0, [r6, #4] + ldr r5, [r6] + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #1 + bne _022E83D4 + mov r0, #6 + bl ov00_022EC1D0 + b _022E8404 +_022E83D4: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #6 + beq _022E83F4 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0xb + bne _022E8BB8 +_022E83F4: + bl ov00_022EC1C0 + ldr r0, [r0, #0x20] + cmp r8, r0 + bne _022E8BB8 +_022E8404: + bl ov00_022EC1C0 + mov r1, #0xff + strb r1, [r0, #0x3cc] + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + add r0, r0, #1 + add r0, r6, r0, lsl #2 + ldr r0, [r0, #0xf4] + cmp r8, r0 + beq _022E8450 + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + add r0, r0, #1 + add r0, r6, r0, lsl #2 + str r8, [r0, #0xf4] +_022E8450: + asr r1, r4, #8 + lsl r0, r4, #8 and r1, r1, #0xff - strb r2, [r0], #-1 - str r0, [sp, #0x14] - cmp r0, r3 - bhs _0208ABD0 -_0208ABF8: - mov r2, #0 - mov r6, r2 - strb r2, [r4] - strb r2, [r4, #1] - strb r2, [r4, #2] - strb r2, [r4, #3] - strb r2, [r4, #4] - strb r2, [r4, #5] - strb r2, [r4, #6] - strb r2, [r4, #7] - mov r3, #0xc - mov r7, #1 - mov r0, #0xff - add r1, sp, #0x45 -_0208AC30: - add r5, r2, #8 - cmp r5, #0x34 - ldrb r5, [r1, r6] - rsbhi r8, r2, #0x34 - and fp, r3, #7 - andhi r5, r5, r0, lsl r8 - andhi r5, r5, #0xff - asr r8, r5, fp - and sb, r8, #0xff - ldrb sl, [r4, r7] - rsb r8, fp, #8 - lsl r5, r5, r8 - orr sb, sl, sb - strb sb, [r4, r7] - add r7, r7, #1 - add r2, r2, #8 - ldrb r8, [r4, r7] - and r5, r5, #0xff - cmp r2, #0x34 - orr r5, r8, r5 - strb r5, [r4, r7] - add r3, r3, #8 - add r6, r6, #1 - blo _0208AC30 - ldr r0, [sp, #0x10] - mov r1, #0x800 - add r0, r0, #0xfe - add r2, r0, #0x300 - rsb r1, r1, #0 - tst r2, r1 - beq _0208ACC8 - ldr r2, [sp, #0xd0] - mov r3, #1 + and r0, r0, #0xff00 + orr r0, r1, r0 + str r5, [sp, #0xc] + strh r0, [sp, #0xa] + bl ov00_022EC1C0 + mov r1, #1 + strb r1, [r0, #0x194] + bl ov00_022EC1C0 + ldr r0, [r0, #4] + ldr r0, [r0] + bl ov00_0230E448 + mov r4, r0 + bl ov00_022EC1C0 + add r3, r0, #0x194 + mov r1, r4 mov r0, #0 - add sp, sp, #0xa8 - mov r1, r0 - str r3, [r2] - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0208ACC8: - ldrb r0, [r4, #1] - lsl r2, r2, #0x15 - ldrb r1, [r4] - orr r0, r0, r2, lsr #17 - strb r0, [r4, #1] - ldr r0, [sp, #0x28] - orr r1, r1, r2, lsr #25 + add r2, sp, #8 + bl ov00_022EBD5C + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x18c] + str r1, [r0, #0x190] + b _022E8BB8 +_022E84B8: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #1 + bne _022E8BB8 + bl ov00_022EC1C0 + ldr r0, [r0, #0xf4] + cmp r8, r0 + bne _022E8BB8 + ldr r0, [r6] + str r0, [sp, #0x10] + ldr r0, [r6, #4] + and r4, r0, #0xff + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #1 + bne _022E854C + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a6] cmp r0, #0 - andne r0, r1, #0xff - strb r1, [r4] - orrne r0, r0, #0x80 - strbne r0, [r4] + bne _022E854C + ldr r0, [sp, #0x10] + bl ov00_022EB024 + str r0, [sp, #0x14] + add r0, sp, #0x14 + str r0, [sp] + mov r5, #1 + mov r1, r8 + mov r2, r7 + mov r3, sl + mov r0, #0x20 + str r5, [sp, #4] + bl ov00_022E78AC + bl ov00_022E9108 + cmp r0, #0 + addne sp, sp, #0x118 + movne r0, #0 + popne {r4, r5, r6, r7, r8, sb, sl, pc} +_022E854C: + bl ov00_022EC1C0 + mov r5, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x14] + ldr r1, [sp, #0x10] + add r0, r0, #1 + add r0, r5, r0, lsl #2 + str r1, [r0, #0xf4] + bl ov00_022EC1C0 + mov r5, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x14] + add r0, r0, #1 + add r0, r5, r0 + strb r4, [r0, #0x2d0] + bl ov00_022EC1C0 + ldr r0, [r0, #0x10] + bl ov00_02312BF4 + bl ov00_022EC1C0 + ldr r0, [r0, #0x46c] + cmp r0, #0 + beq _022E8BB8 + bl ov00_022EC1C0 + mov r5, r0 + ldr r0, [sp, #0x10] + bl ov00_022E3DB8 + mov r4, r0 + bl ov00_022EC1C0 + ldr r1, [r0, #0x470] + ldr r2, [r5, #0x46c] + mov r0, r4 + blx r2 + b _022E8BB8 +_022E85D0: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #1 + bne _022E8BB8 + bl ov00_022EC1C0 + ldr r0, [r0, #0xf4] + cmp r8, r0 + bne _022E8BB8 + ldr r0, [r6] + str r0, [sp, #0x10] + cmp r0, #0 + bne _022E8638 + ldr r5, [r6, #4] + ldr r4, [r6, #8] + bl ov00_022EC1C0 + add r0, r5, r0 + strb r4, [r0, #0x2d0] + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldr r2, [r0, #0x200] + add r1, r4, r5, lsl #2 + mov r0, #3 + str r2, [r1, #0xf4] + bl ov00_022E9AA4 + b _022E8BB8 +_022E8638: + ldr r0, [r6, #8] + ldr r5, [r6, #4] + and r4, r0, #0xff + bl ov00_022EC1C0 + add r0, r0, r5, lsl #2 + ldr r1, [sp, #0x10] + ldr r0, [r0, #0xf4] + cmp r1, r0 + bne _022E86B8 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + sub r0, r0, #1 + cmp r5, r0 + bne _022E86B8 + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + add r1, sp, #0x10 + str r1, [sp] + mov r1, #1 + str r1, [sp, #4] + ldrh r3, [r0, #0xa4] + ldr r2, [r4, #0x24] + mov r1, r8 + mov r0, #9 + bl ov00_022E78AC + bl ov00_022E9108 + cmp r0, #0 + beq _022E8BB8 + add sp, sp, #0x118 + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022E86B8: + bl ov00_022EC1C0 + ldr r1, [sp, #0x10] + add r0, r0, r5, lsl #2 + str r1, [r0, #0xf4] + bl ov00_022EC1C0 + add r0, r5, r0 + strb r4, [r0, #0x2d0] + bl ov00_022EC1C0 + ldr r1, [r6, #0xc] + add r0, r0, r5, lsl #2 + str r1, [r0, #0x24] + bl ov00_022EC1C0 + ldr r1, [r6, #0x10] + add r0, r0, r5, lsl #1 + strh r1, [r0, #0xa4] + bl ov00_022EC1C0 + ldr r1, [r6, #0xc] + str r1, [r0, #0x1b8] + bl ov00_022EC1C0 + add r1, r0, #0x100 + ldr r2, [r6, #0x10] + mov r0, #5 + strh r2, [r1, #0xb4] + bl ov00_022EC1D0 + ldr r0, [sp, #0x10] + bl ov00_022E72A0 + bl ov00_022EB694 + cmp r0, #0 + addne sp, sp, #0x118 + movne r0, #0 + popne {r4, r5, r6, r7, r8, sb, sl, pc} + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1c8] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1bc] + b _022E8BB8 +_022E8750: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0xd + bne _022E8BB8 + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a4] + ldr r1, [r6] + add r0, r0, #1 + add r0, r4, r0, lsl #2 + ldr r0, [r0, #0xf4] + cmp r1, r0 + bne _022E8BB8 + bl ov00_022EC1C0 + ldrb r1, [r0, #0x1a4] + add r1, r1, #1 + strb r1, [r0, #0x1a4] + mov r0, #0 + bl ov00_022E9AA4 + b _022E8BB8 +_022E87A4: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #1 + beq _022E87C4 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0x12 + bne _022E8BB8 +_022E87C4: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + beq _022E87E8 + ldr r1, [r6] + add r0, r6, #4 + bl ov00_022EA16C + cmp r0, #0 + beq _022E8804 +_022E87E8: + bl ov00_022EC1C0 + ldr r1, [r6, #4] + str r1, [r0, #0x208] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1a7] + b _022E8810 +_022E8804: + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x208] +_022E8810: + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #0 + beq _022E8834 + bl ov00_022EC1C0 + ldr r0, [r0, #4] + ldr r0, [r0] + bl ov00_0230E3A4 + b _022E8BB8 +_022E8834: + bl ov00_022EA4BC + cmp r0, #0 + beq _022E8BB8 + add sp, sp, #0x118 + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022E884C: + bl ov00_022EC1C0 + ldr r0, [r0, #0xf4] + cmp r8, r0 + bne _022E8BB8 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + beq _022E887C + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #1 + bne _022E8898 +_022E887C: + mov r0, r8 + bl ov00_022E9900 + cmp r0, #0 + bne _022E8BB8 + add sp, sp, #0x118 + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022E8898: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #3 + bne _022E8BB8 + bl ov00_022EC1C0 + str r8, [r0, #0x20c] + bl ov00_022EA5EC + mov r0, #0 + bl ov00_022EA388 + b _022E8BB8 +_022E88C0: + ldr r2, [r6] + mov r0, r8 + mov r1, sb + bl ov00_022EAB38 + cmp r0, #0 + bne _022E8BB8 + add sp, sp, #0x118 + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022E88E4: + bl ov00_022EC1C0 + ldr r0, [r0, #0xf4] + cmp r8, r0 + addne sp, sp, #0x118 + movne r0, #1 + popne {r4, r5, r6, r7, r8, sb, sl, pc} + cmp r5, #0 + mov r7, #0 + ble _022E8BB8 + mov r4, r7 +_022E890C: + ldr r0, [r6, r7, lsl #2] + mov r1, r4 + bl ov00_022EB094 + cmp r0, #0xff + beq _022E8924 + bl ov00_022E1EB4 +_022E8924: + add r7, r7, #1 + cmp r7, r5 + blt _022E890C + b _022E8BB8 +_022E8934: + ldr r0, _022E8BC4 @ =0x02326F48 + ldr r4, [r0] + cmp r4, #0 + ldrbne r0, [r4] + cmpne r0, #0 + beq _022E8990 + bl FUN_0207AE44 + ldr r3, [r4, #0x10] + ldr r2, [r4, #0x14] + subs r3, r0, r3 + sbc r0, r1, r2 + lsl r1, r0, #6 + ldr r2, _022E8BC8 @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 mov r3, #0 -_0208ACFC: - rsb r1, r3, #7 - ldrb r2, [r4, r3] - ldrb r0, [r4, r1] - strb r0, [r4, r3] - add r3, r3, #1 - strb r2, [r4, r1] - cmp r3, #4 - blt _0208ACFC - ldm r4, {r0, r1} - add sp, sp, #0xa8 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_02089adc + bl FUN_0208FE3C + ldr r2, [r4, #4] + cmp r1, #0 + cmpeq r0, r2 + movhs r0, #1 + strhs r0, [sp, #0x14] + bhs _022E8998 +_022E8990: + mov r0, #0 + str r0, [sp, #0x14] +_022E8998: + add r0, sp, #0x14 + str r0, [sp] + mov r4, #1 + mov r1, r8 + mov r2, r7 + mov r3, sl + mov r0, #0x12 + str r4, [sp, #4] + bl ov00_022E78AC + bl ov00_022E9108 + cmp r0, #0 + beq _022E8BB8 + add sp, sp, #0x118 + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022E89D4: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0x13 + bne _022E8BB8 + mov r0, r8 + mov r1, #0 + bl ov00_022EB094 + cmp r0, #0xff + beq _022E8BB8 + ldr r1, _022E8BC4 @ =0x02326F48 + mov r4, #1 + ldr r3, [r1] + ldr r2, [r3, #8] + orr r2, r2, r4, lsl r0 + str r2, [r3, #8] + ldr r2, [r6] + cmp r2, #0 + beq _022E8BB8 + ldr r2, [r1] + ldr r1, [r2, #0xc] + orr r0, r1, r4, lsl r0 + str r0, [r2, #0xc] + b _022E8BB8 +_022E8A30: + mov r0, #0xc + mov r1, #0 + bl ov00_022E6570 + add sp, sp, #0x118 + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022E8A48: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #1 + bne _022E8BB8 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a6] + cmp r0, #0 + bne _022E8BB8 + mov r4, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #1 + blt _022E8BB8 +_022E8A7C: + bl ov00_022EC1C0 + add r0, r0, r4, lsl #2 + ldr r0, [r0, #0xf4] + cmp r8, r0 + bne _022E8B2C + ldr r0, [r6] + cmp r0, #0 + bne _022E8B04 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0xb + beq _022E8ABC + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0xc + bne _022E8AD4 +_022E8ABC: + bl ov00_022EA2B4 + bl ov00_022E9108 + cmp r0, #0 + addne sp, sp, #0x118 + movne r0, #0 + popne {r4, r5, r6, r7, r8, sb, sl, pc} +_022E8AD4: + bl ov00_022EC1C0 + ldr r0, [r0, #0x19c] + cmp r0, #0 + beq _022E8AFC + bl ov00_022EC1C0 + ldr r0, [r0, #0x19c] + bl ov00_02311FB0 + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x19c] +_022E8AFC: + bl ov00_022EA488 + b _022E8BB8 +_022E8B04: + bl ov00_022EC1C0 + mov r4, r0 + mov r0, r8 + mov r1, #0 + bl ov00_022EB094 + ldr r2, [r4, #0x1dc] + mov r1, #1 + orr r0, r2, r1, lsl r0 + str r0, [r4, #0x1dc] + b _022E8BB8 +_022E8B2C: + add r4, r4, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r4, r0 + ble _022E8A7C + b _022E8BB8 +_022E8B44: + mov r4, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #1 + blt _022E8BB8 +_022E8B58: + bl ov00_022EC1C0 + add r0, r0, r4, lsl #2 + ldr r0, [r0, #0xf4] + cmp r8, r0 + bne _022E8BA4 + mov r4, #0 + str r4, [sp] + mov r1, r8 + mov r2, r7 + mov r3, sl + mov r0, #0x41 + str r4, [sp, #4] + bl ov00_022E78AC + bl ov00_022E9108 + cmp r0, #0 + beq _022E8BB8 + add sp, sp, #0x118 + mov r0, r4 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022E8BA4: + add r4, r4, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r4, r0 + ble _022E8B58 +_022E8BB8: + mov r0, #1 + add sp, sp, #0x118 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022E8BC4: .4byte 0x02326F48 +_022E8BC8: .4byte 0x000082EA + arm_func_end ov00_022E7CE8 - arm_func_start FUN_0208ad28 -FUN_0208ad28: @ 0x0208AD28 + arm_func_start ov00_022E8BCC +ov00_022E8BCC: @ 0x022E8BCC + push {r4, r5, r6, r7, r8, lr} + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, r3 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + beq _022E8C4C + cmp r0, #1 + beq _022E8C04 + cmp r0, #2 + beq _022E8E28 + b _022E8EEC +_022E8C04: + bl ov00_022EC1C0 + ldr r0, [r0] + mov r1, r8 + bl ov00_022FF808 + cmp r0, #0 + beq _022E8C30 + mov r0, r8 + bl ov00_022E3DB8 + mvn r1, #0 + cmp r0, r1 + bne _022E8C38 +_022E8C30: + mov r4, #0xff + b _022E8EEC +_022E8C38: + mov r0, r8 + bl ov00_022EB024 + cmp r0, #0 + moveq r4, #3 + beq _022E8EEC +_022E8C4C: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r5, r0 + bne _022E8CB4 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a9] + cmp r0, #0 + bne _022E8CB4 + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r1, [r4, #0x14] + ldrb r0, [r0, #0x16] + cmp r1, r0 + beq _022E8CB4 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x17] + cmp r0, #0 + beq _022E8D18 + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldr r1, [r4, #0x20] + ldr r0, [r0, #0x200] + cmp r1, r0 + bne _022E8D18 +_022E8CB4: + mov r4, #3 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + bne _022E8EEC + bl ov00_022EC1C0 + ldr r0, [r0, #0x10] + ldr r0, [r0, #0xb4] + cmp r0, #0 + bne _022E8EEC + bl ov00_022EC1C0 + ldrb r0, [r0, #0x17] + cmp r0, #0 + beq _022E8EEC + bl ov00_022EC1C0 + mov r5, r0 + bl ov00_022EC1C0 + ldr r1, [r5, #0x20] + ldr r0, [r0, #0x200] + cmp r1, r0 + bne _022E8EEC + bl ov00_022EC1C0 + ldr r0, [r0, #0x10] + bl ov00_02312BF4 + b _022E8EEC +_022E8D18: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #3 + beq _022E8D38 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #4 + bne _022E8D64 +_022E8D38: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1c] + cmp r0, #0 + bne _022E8D58 + bl ov00_022EC1C0 + ldrh r0, [r0, #0x1a] + cmp r0, #0 + beq _022E8D64 +_022E8D58: + cmp r7, #0 + cmpeq r6, #0 + bne _022E8D6C +_022E8D64: + mov r4, #4 + b _022E8EEC +_022E8D6C: + bl ov00_022EC1C0 + ldr r0, [r0, #0x204] + cmp r0, #0 + beq _022E8E20 + bl ov00_022EC1C0 + ldr r0, [r0, #0x204] + cmp r8, r0 + bne _022E8DC8 + ldr r0, [sp, #0x18] + cmp r0, #0 + bne _022E8DB8 + bl ov00_022EC1C0 + ldr r0, [r0, #0x200] + cmp r0, r8 + bge _022E8DC0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x208] + cmp r8, r0 + beq _022E8DC0 +_022E8DB8: + mov r4, #2 + b _022E8EEC +_022E8DC0: + mov r4, #0xff + b _022E8EEC +_022E8DC8: + ldr r0, [sp, #0x18] + cmp r0, #0 + bne _022E8DF4 + bl ov00_022EC1C0 + ldr r0, [r0, #0x200] + cmp r0, r8 + bge _022E8E18 + bl ov00_022EC1C0 + ldr r0, [r0, #0x208] + cmp r0, #0 + bne _022E8E18 +_022E8DF4: + bl ov00_022EC1C0 + ldr r0, [r0, #0x204] + bl ov00_022E9690 + bl ov00_022E9108 + cmp r0, #0 + movne r0, #0xff + popne {r4, r5, r6, r7, r8, pc} + mov r4, #2 + b _022E8EEC +_022E8E18: + mov r4, #3 + b _022E8EEC +_022E8E20: + mov r4, #2 + b _022E8EEC +_022E8E28: + bl ov00_022EC1C0 + ldr r0, [r0] + mov r1, r8 + bl ov00_022FF808 + cmp r0, #0 + beq _022E8E54 + mov r0, r8 + bl ov00_022E3DB8 + mvn r1, #0 + cmp r0, r1 + bne _022E8E5C +_022E8E54: + mov r4, #0xff + b _022E8EEC +_022E8E5C: + cmp r5, #3 + bne _022E8E80 + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r1, [r4, #0x14] + ldrb r0, [r0, #0x16] + cmp r1, r0 + bne _022E8E88 +_022E8E80: + mov r4, #3 + b _022E8EEC +_022E8E88: + ldr r0, _022E8EF4 @ =0x02326F48 + ldrb r1, [r0, #0x1c] + cmp r1, #1 + ldrbeq r0, [r0, #0x1d] + cmpeq r0, #1 + moveq r4, #0x13 + beq _022E8EEC + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0xa + bne _022E8EE0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1c] + cmp r0, #0 + bne _022E8ED4 + bl ov00_022EC1C0 + ldrh r0, [r0, #0x1a] + cmp r0, #0 + beq _022E8EE0 +_022E8ED4: + cmp r7, #0 + cmpeq r6, #0 + bne _022E8EE8 +_022E8EE0: + mov r4, #4 + b _022E8EEC +_022E8EE8: + mov r4, #2 +_022E8EEC: + mov r0, r4 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022E8EF4: .4byte 0x02326F48 + arm_func_end ov00_022E8BCC + + arm_func_start ov00_022E8EF8 +ov00_022E8EF8: @ 0x022E8EF8 + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x10 + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x17] + cmp r0, #0 + beq _022E8F34 + bl ov00_022EC1C0 + ldr r0, [r0, #0x20] + cmp r6, r0 + addeq sp, sp, #0x10 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} +_022E8F34: + bl ov00_022EC1C0 + mov r1, #1 + strb r1, [r0, #0x17] + bl ov00_022EC1C0 + str r6, [r0, #0x20] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1bc] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1c8] + bl ov00_022EC1C0 + ldr r0, [r0, #0x10] + bl ov00_02312BF4 + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x204] + bl ov00_022EC1C0 + mov r7, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x14] + add r0, r0, #1 + add r0, r7, r0, lsl #2 + str r6, [r0, #0xf4] + bl ov00_022EC1C0 + mov r7, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x14] + add r0, r0, #1 + add r0, r7, r0, lsl #2 + str r5, [r0, #0x24] + bl ov00_022EC1C0 + mov r7, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x14] + add r0, r0, #1 + add r0, r7, r0, lsl #1 + strh r4, [r0, #0xa4] + bl ov00_022EC1C0 + str r5, [r0, #0x1b8] + bl ov00_022EC1C0 + add r0, r0, #0x100 + strh r4, [r0, #0xb4] + bl ov00_022EC1C0 + mov r5, r0 + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EAFB4 + ldrb r1, [r4, #0x14] + add r1, r1, #1 + add r1, r5, r1 + strb r0, [r1, #0x2d0] + str r6, [sp, #8] + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x14] + mov r7, #1 + add r0, r0, #1 + add r0, r4, r0 + ldrb r0, [r0, #0x2d0] + str r0, [sp, #0xc] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x14] + cmp r0, #1 + blt _022E90A4 + add r6, sp, #8 + mov r5, #2 + mov r4, #7 +_022E9048: + bl ov00_022EC1C0 + mov sb, r0 + bl ov00_022EC1C0 + mov r8, r0 + bl ov00_022EC1C0 + str r6, [sp] + str r5, [sp, #4] + add r0, r0, r7, lsl #1 + add r1, sb, r7, lsl #2 + add r2, r8, r7, lsl #2 + ldrh r3, [r0, #0xa4] + ldr r1, [r1, #0xf4] + ldr r2, [r2, #0x24] + mov r0, r4 + bl ov00_022E78AC + cmp r0, #0 + addne sp, sp, #0x10 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + add r7, r7, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x14] + cmp r7, r0 + ble _022E9048 +_022E90A4: + mov r0, #1 + bl ov00_022EB184 + mov r0, #0 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_022E8EF8 + + arm_func_start ov00_022E90B8 +ov00_022E90B8: @ 0x022E90B8 + push {r4, r5, r6, lr} + mov r5, r1 + ldr r1, [r5] + mov r6, r0 + add r4, r1, #2 + cmp r4, #2 + bls _022E90F0 + bl ov00_022EC1C0 + mov r1, r0 + sub r2, r4, #2 + add r0, r5, #4 + add r1, r1, #0x350 + lsl r2, r2, #2 + bl FUN_0207C330 +_022E90F0: + bl ov00_022EC1C0 + sub r1, r4, #1 + str r1, [r0, #0x348] + bl ov00_022EC1C0 + str r6, [r0, #0x34c] + pop {r4, r5, r6, pc} + arm_func_end ov00_022E90B8 + + arm_func_start ov00_022E9108 +ov00_022E9108: @ 0x022E9108 + push {r4, lr} + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + mov r0, r4 + bne _022E912C + bl ov00_022EB694 + pop {r4, pc} +_022E912C: + bl ov00_022EB620 + pop {r4, pc} + arm_func_end ov00_022E9108 + + arm_func_start ov00_022E9134 +ov00_022E9134: @ 0x022E9134 push {r4, r5, r6, r7, lr} sub sp, sp, #0x14 - mov r7, r0 - mov r0, #0 - mov r6, r1 - str r0, [sp, #8] - add r4, sp, #0xc - str r7, [sp, #4] - ldr r1, _0208ADFC @ =0x020895F4 - add r2, sp, #4 - add r3, sp, #0x10 - sub r0, r0, #0x80000001 - str r4, [sp] - bl FUN_02089adc - mov r5, r1 + mov r5, r0 + cmp r1, #0 + bne _022E9168 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1c] + cmp r0, #0 + bne _022E91A8 + bl ov00_022EC1C0 + ldrh r0, [r0, #0x1a] + cmp r0, #0 + bne _022E91A8 +_022E9168: + bl ov00_022EC1C0 + mov r1, #1 + str r1, [r0, #0x1bc] + bl ov00_022EC1C0 mov r4, r0 - cmp r6, #0 - ldrne r0, [sp, #0x10] - mov r1, r5 - addne r0, r7, r0 - strne r0, [r6] - mov r0, r4 - bl FUN_0208c5b4 - ldr r2, [sp, #0xc] + bl FUN_0207AE44 + str r0, [r4, #0x1c0] + str r1, [r4, #0x1c4] + bl ov00_022EC1C0 + str r5, [r0, #0xf4] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x204] + add sp, sp, #0x14 + mov r0, r1 + pop {r4, r5, r6, r7, pc} +_022E91A8: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + bne _022E922C + bl ov00_022EC1C0 + ldr r0, [r0, #0xe4] + mov r1, #0 + bl ov00_02315D80 mov r6, r0 - mov r7, r1 - cmp r2, #0 - bne _0208ADE0 - mov r0, #0 - mov r1, r0 - mov r2, r4 - mov r3, r5 - bl FUN_0208f140 - beq _0208ADEC + bl ov00_022EC1C0 + mov r4, r0 + ldr r1, _022E92E8 @ =0x0231A208 mov r0, r6 - mov r1, r7 mov r2, #0 - mov r3, #0x100000 - bl FUN_0208f018 - blo _0208ADE0 - ldr r3, _0208AE00 @ =0x7FEFFFFF + bl ov00_02315264 + str r0, [r4, #0xf4] + bl ov00_022EC1C0 + mov r4, r0 mov r0, r6 - mov r1, r7 - mvn r2, #0 - bl FUN_0208eedc - bls _0208ADEC -_0208ADE0: - ldr r0, _0208AE04 @ =0x022BCA70 - mov r1, #0x22 - str r1, [r0] -_0208ADEC: - mov r0, r4 + bl ov00_0231530C + str r0, [r4, #0x24] + bl ov00_022EC1C0 + mov r4, r0 + mov r0, r6 + bl ov00_02315314 + strh r0, [r4, #0xa4] + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + ldr r0, [r0, #0xf4] + mov r4, #1 + str r0, [r6, #0x204] + b _022E9268 +_022E922C: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #1 + bne _022E9244 + bl ov00_022EC1C0 + str r5, [r0, #0xf4] +_022E9244: + bl ov00_022EC1C0 + str r5, [r0, #0x204] + bl ov00_022EC1C0 + ldr r0, [r0, #0x1c] + str r0, [sp, #0xc] + bl ov00_022EC1C0 + ldrh r0, [r0, #0x1a] + mov r4, #3 + str r0, [sp, #0x10] +_022E9268: + bl ov00_022EC1C0 + ldr r1, _022E92EC @ =0x00001770 + str r1, [r0, #0x1c8] + bl ov00_022EC1C0 + mov r6, r0 + bl FUN_0207AE44 + str r0, [r6, #0x1cc] + str r1, [r6, #0x1d0] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1bc] + bl ov00_022EC1C0 + ldr r0, [r0, #0x208] + cmp r0, #0 + movne r7, #0xb + moveq r7, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + str r0, [sp, #8] + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + add r2, sp, #8 + stm sp, {r2, r4} + mov r3, r0 + ldrh r3, [r3, #0xa4] + ldr r2, [r6, #0x24] mov r1, r5 + mov r0, r7 + bl ov00_022E78AC add sp, sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 -_0208ADFC: .4byte 0x020895F4 -_0208AE00: .4byte 0x7FEFFFFF -_0208AE04: .4byte 0x022BCA70 - arm_func_end FUN_0208ad28 -_0208AE08: - .byte 0x04, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x28, 0xAD, 0x08, 0x02, 0xF0, 0x4F, 0x2D, 0xE9, 0x0C, 0xD0, 0x4D, 0xE2 - .byte 0x38, 0x40, 0x9D, 0xE5, 0x00, 0x90, 0xB0, 0xE1, 0x34, 0x00, 0x9D, 0xE5, 0x38, 0x40, 0x8D, 0xE5 - .byte 0x00, 0x40, 0xA0, 0xE3, 0x34, 0x00, 0x8D, 0xE5, 0x38, 0x00, 0x9D, 0xE5, 0x00, 0x10, 0x8D, 0xE5 - .byte 0x00, 0x40, 0x80, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x04, 0x00, 0x8D, 0xE5, 0x34, 0x00, 0x9D, 0xE5 - .byte 0x04, 0x10, 0xA0, 0xE1, 0x00, 0x10, 0x80, 0xE5, 0x30, 0x00, 0x9D, 0xE5, 0x08, 0x40, 0x8D, 0xE5 - .byte 0x02, 0x80, 0xA0, 0xE1, 0x03, 0x70, 0xA0, 0xE1, 0x04, 0x50, 0xA0, 0xE1, 0x04, 0xA0, 0xA0, 0xE1 - .byte 0x30, 0x00, 0x8D, 0xE5, 0x01, 0x40, 0xA0, 0xE3, 0x06, 0x00, 0x00, 0x4A, 0x01, 0x00, 0x59, 0xE3 - .byte 0x04, 0x00, 0x00, 0x0A, 0x24, 0x00, 0x59, 0xE3, 0x02, 0x00, 0x00, 0xCA, 0x00, 0x00, 0x9D, 0xE5 - .byte 0x01, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0xAA, 0x40, 0x40, 0xA0, 0xE3, 0x06, 0x00, 0x00, 0xEA - .byte 0x08, 0x10, 0x9D, 0xE5, 0x07, 0x00, 0xA0, 0xE1, 0x01, 0x30, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE1 - .byte 0x01, 0x50, 0x83, 0xE2, 0x38, 0xFF, 0x2F, 0xE1, 0x00, 0x60, 0xA0, 0xE1, 0x00, 0x00, 0x59, 0xE3 - .byte 0x03, 0x00, 0x00, 0x0A, 0x09, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0xE0, 0xE3, 0x77, 0x14, 0x00, 0xEB - .byte 0x04, 0x00, 0x8D, 0xE5, 0x00, 0xB0, 0xE0, 0xE3, 0xAD, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x54, 0xE3 - .byte 0x0B, 0x00, 0x00, 0xCA, 0x00, 0x00, 0x54, 0xE3, 0x04, 0xF1, 0x8F, 0xA0, 0xA8, 0x00, 0x00, 0xEA - .byte 0xA7, 0x00, 0x00, 0xEA, 0x09, 0x00, 0x00, 0xEA, 0x33, 0x00, 0x00, 0xEA, 0xA4, 0x00, 0x00, 0xEA - .byte 0x40, 0x00, 0x00, 0xEA, 0xA2, 0x00, 0x00, 0xEA, 0xA1, 0x00, 0x00, 0xEA, 0xA0, 0x00, 0x00, 0xEA - .byte 0x4C, 0x00, 0x00, 0xEA, 0x10, 0x00, 0x54, 0xE3, 0x4A, 0x00, 0x00, 0x0A, 0x9C, 0x00, 0x00, 0xEA - .byte 0x00, 0x00, 0x56, 0xE3, 0x01, 0x00, 0x00, 0xBA, 0x80, 0x00, 0x56, 0xE3, 0x01, 0x00, 0x00, 0xBA - .byte 0x00, 0x00, 0xA0, 0xE3, 0x03, 0x00, 0x00, 0xEA, 0xB8, 0x02, 0x9F, 0xE5, 0x86, 0x10, 0xA0, 0xE1 - .byte 0xB1, 0x00, 0x90, 0xE1, 0x01, 0x0C, 0x00, 0xE2, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x0A - .byte 0x00, 0x10, 0xA0, 0xE3, 0x07, 0x00, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE1, 0x38, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x60, 0xA0, 0xE1, 0x08, 0x00, 0x9D, 0xE5, 0x01, 0x00, 0x80, 0xE2, 0x08, 0x00, 0x8D, 0xE5 - .byte 0x87, 0x00, 0x00, 0xEA, 0x2B, 0x00, 0x56, 0xE3, 0x06, 0x00, 0x00, 0x1A, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x07, 0x00, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE1, 0x01, 0x50, 0x85, 0xE2, 0x38, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x60, 0xA0, 0xE1, 0x0A, 0x00, 0x00, 0xEA, 0x2D, 0x00, 0x56, 0xE3, 0x08, 0x00, 0x00, 0x1A - .byte 0x00, 0x10, 0xA0, 0xE3, 0x07, 0x00, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE1, 0x01, 0x50, 0x85, 0xE2 - .byte 0x38, 0xFF, 0x2F, 0xE1, 0x00, 0x60, 0xA0, 0xE1, 0x34, 0x00, 0x9D, 0xE5, 0x01, 0x10, 0xA0, 0xE3 - .byte 0x00, 0x10, 0x80, 0xE5, 0x02, 0x40, 0xA0, 0xE3, 0x71, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x59, 0xE3 - .byte 0x10, 0x00, 0x59, 0x13, 0x09, 0x00, 0x00, 0x1A, 0x30, 0x00, 0x56, 0xE3, 0x07, 0x00, 0x00, 0x1A - .byte 0x00, 0x10, 0xA0, 0xE3, 0x07, 0x00, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE1, 0x04, 0x40, 0xA0, 0xE3 - .byte 0x01, 0x50, 0x85, 0xE2, 0x38, 0xFF, 0x2F, 0xE1, 0x00, 0x60, 0xA0, 0xE1, 0x64, 0x00, 0x00, 0xEA - .byte 0x08, 0x40, 0xA0, 0xE3, 0x62, 0x00, 0x00, 0xEA, 0x58, 0x00, 0x56, 0xE3, 0x78, 0x00, 0x56, 0x13 - .byte 0x08, 0x00, 0x00, 0x1A, 0x00, 0x10, 0xA0, 0xE3, 0x07, 0x00, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE1 - .byte 0x10, 0x90, 0xA0, 0xE3, 0x08, 0x40, 0xA0, 0xE3, 0x01, 0x50, 0x85, 0xE2, 0x38, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x60, 0xA0, 0xE1, 0x56, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x59, 0xE3, 0x08, 0x90, 0xA0, 0x03 - .byte 0x10, 0x40, 0xA0, 0xE3, 0x52, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x59, 0xE3 - .byte 0x0A, 0x90, 0xA0, 0x03, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x0B, 0x00, 0xA0, 0xE1 - .byte 0x09, 0x10, 0xA0, 0xE1, 0x11, 0x14, 0x00, 0xEB, 0x04, 0x00, 0x8D, 0xE5, 0x00, 0x00, 0x56, 0xE3 - .byte 0x01, 0x00, 0x00, 0xBA, 0x80, 0x00, 0x56, 0xE3, 0x01, 0x00, 0x00, 0xBA, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x03, 0x00, 0x00, 0xEA, 0x6C, 0x01, 0x9F, 0xE5, 0x86, 0x10, 0xA0, 0xE1, 0xB1, 0x00, 0x90, 0xE1 - .byte 0x08, 0x00, 0x00, 0xE2, 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x0A, 0x30, 0x60, 0x46, 0xE2 - .byte 0x09, 0x00, 0x56, 0xE1, 0x26, 0x00, 0x00, 0xBA, 0x10, 0x00, 0x54, 0xE3, 0x20, 0x40, 0xA0, 0x03 - .byte 0x40, 0x40, 0xA0, 0x13, 0x30, 0x60, 0x86, 0xE2, 0x35, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x56, 0xE3 - .byte 0x01, 0x00, 0x00, 0xBA, 0x80, 0x00, 0x56, 0xE3, 0x01, 0x00, 0x00, 0xBA, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x03, 0x00, 0x00, 0xEA, 0x1C, 0x01, 0x9F, 0xE5, 0x86, 0x10, 0xA0, 0xE1, 0xB1, 0x00, 0x90, 0xE1 - .byte 0x01, 0x00, 0x00, 0xE2, 0x00, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x56, 0xE3 - .byte 0x01, 0x00, 0x00, 0xBA, 0x80, 0x00, 0x56, 0xE3, 0x01, 0x00, 0x00, 0xBA, 0x06, 0x00, 0xA0, 0xE1 - .byte 0x01, 0x00, 0x00, 0xEA, 0xF0, 0x00, 0x9F, 0xE5, 0x06, 0x00, 0xD0, 0xE7, 0x37, 0x00, 0x40, 0xE2 - .byte 0x09, 0x00, 0x50, 0xE1, 0x03, 0x00, 0x00, 0xBA, 0x10, 0x00, 0x54, 0xE3, 0x20, 0x40, 0xA0, 0x03 - .byte 0x40, 0x40, 0xA0, 0x13, 0x1A, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x56, 0xE3, 0x03, 0x00, 0x00, 0xBA - .byte 0x80, 0x00, 0x56, 0xE3, 0x01, 0x00, 0x00, 0xAA, 0xBC, 0x00, 0x9F, 0xE5, 0x06, 0x60, 0xD0, 0xE7 - .byte 0x37, 0x60, 0x46, 0xE2, 0x04, 0x00, 0x9D, 0xE5, 0x10, 0x40, 0xA0, 0xE3, 0x00, 0x00, 0x5A, 0xE1 - .byte 0x38, 0x00, 0x9D, 0x85, 0x01, 0x10, 0xA0, 0x83, 0x00, 0x10, 0x80, 0x85, 0x9A, 0x09, 0x00, 0xE0 - .byte 0x00, 0xA0, 0xA0, 0xE1, 0x00, 0x00, 0x4B, 0xE0, 0x00, 0x00, 0x56, 0xE1, 0x38, 0x00, 0x9D, 0x85 - .byte 0x01, 0x10, 0xA0, 0x83, 0x00, 0x10, 0x80, 0x85, 0x00, 0x10, 0xA0, 0xE3, 0x07, 0x00, 0xA0, 0xE1 - .byte 0x01, 0x20, 0xA0, 0xE1, 0x06, 0xA0, 0x8A, 0xE0, 0x01, 0x50, 0x85, 0xE2, 0x38, 0xFF, 0x2F, 0xE1 - .byte 0x00, 0x60, 0xA0, 0xE1, 0x00, 0x00, 0x9D, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0x03, 0x00, 0x00, 0xCA - .byte 0x0B, 0x00, 0x56, 0xE1, 0x01, 0x00, 0x00, 0x0A, 0x60, 0x00, 0x14, 0xE3, 0x4A, 0xFF, 0xFF, 0x0A - .byte 0x34, 0x00, 0x14, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x30, 0x00, 0x9D, 0xE5, 0x00, 0xA0, 0xA0, 0xE3 - .byte 0x00, 0xA0, 0x80, 0xE5, 0x04, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x9D, 0xE5, 0x01, 0x10, 0x45, 0xE2 - .byte 0x00, 0x10, 0x81, 0xE0, 0x30, 0x00, 0x9D, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x07, 0x00, 0xA0, 0xE1 - .byte 0x06, 0x10, 0xA0, 0xE1, 0x01, 0x20, 0xA0, 0xE3, 0x38, 0xFF, 0x2F, 0xE1, 0x0A, 0x00, 0xA0, 0xE1 - .byte 0x0C, 0xD0, 0x8D, 0xE2, 0xF0, 0x8F, 0xBD, 0xE8, 0xB0, 0xED, 0x0A, 0x02, 0x30, 0xED, 0x0A, 0x02 - .byte 0x38, 0x40, 0x2D, 0xE9, 0x20, 0xD0, 0x4D, 0xE2, 0x00, 0x50, 0xA0, 0xE1, 0x00, 0xE0, 0xA0, 0xE3 - .byte 0x02, 0x00, 0xA0, 0xE1, 0x01, 0x40, 0xA0, 0xE1, 0x1C, 0x20, 0x8D, 0xE2, 0x0C, 0x50, 0x8D, 0xE5 - .byte 0x10, 0xE0, 0x8D, 0xE5, 0x00, 0x20, 0x8D, 0xE5, 0x18, 0x10, 0x8D, 0xE2, 0x04, 0x10, 0x8D, 0xE5 - .byte 0x14, 0xC0, 0x8D, 0xE2, 0x54, 0x20, 0x9F, 0xE5, 0x0C, 0x30, 0x8D, 0xE2, 0x06, 0x11, 0x4E, 0xE2 - .byte 0x08, 0xC0, 0x8D, 0xE5, 0xF3, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x54, 0xE3, 0x1C, 0x10, 0x9D, 0x15 - .byte 0x01, 0x10, 0x85, 0x10, 0x00, 0x10, 0x84, 0x15, 0x14, 0x10, 0x9D, 0xE5, 0x00, 0x00, 0x51, 0xE3 - .byte 0x05, 0x00, 0x00, 0x0A, 0x28, 0x00, 0x9F, 0xE5, 0x22, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5 - .byte 0x20, 0xD0, 0x8D, 0xE2, 0x00, 0x00, 0xE0, 0xE3, 0x38, 0x80, 0xBD, 0xE8, 0x18, 0x10, 0x9D, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x00, 0x00, 0x60, 0x12, 0x20, 0xD0, 0x8D, 0xE2, 0x38, 0x80, 0xBD, 0xE8 - .byte 0xF4, 0x95, 0x08, 0x02, 0x70, 0xCA, 0x2B, 0x02, 0x38, 0x40, 0x2D, 0xE9, 0x20, 0xD0, 0x4D, 0xE2 - .byte 0x00, 0x50, 0xA0, 0xE1, 0x00, 0xE0, 0xA0, 0xE3, 0x02, 0x00, 0xA0, 0xE1, 0x01, 0x40, 0xA0, 0xE1 - .byte 0x1C, 0x20, 0x8D, 0xE2, 0x0C, 0x50, 0x8D, 0xE5, 0x10, 0xE0, 0x8D, 0xE5, 0x00, 0x20, 0x8D, 0xE5 - .byte 0x18, 0x10, 0x8D, 0xE2, 0x04, 0x10, 0x8D, 0xE5, 0x14, 0xC0, 0x8D, 0xE2, 0x84, 0x20, 0x9F, 0xE5 - .byte 0x0C, 0x30, 0x8D, 0xE2, 0x06, 0x11, 0x4E, 0xE2, 0x08, 0xC0, 0x8D, 0xE5, 0xCD, 0xFE, 0xFF, 0xEB - .byte 0x00, 0x00, 0x54, 0xE3, 0x1C, 0x10, 0x9D, 0x15, 0x01, 0x10, 0x85, 0x10, 0x00, 0x10, 0x84, 0x15 - .byte 0x14, 0x10, 0x9D, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x09, 0x00, 0x00, 0x1A, 0x18, 0x20, 0x9D, 0xE5 - .byte 0x00, 0x00, 0x52, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0x02, 0x11, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1 - .byte 0x03, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x52, 0xE3, 0x0A, 0x00, 0x00, 0x0A, 0x02, 0x01, 0x50, 0xE3 - .byte 0x08, 0x00, 0x00, 0x9A, 0x18, 0x00, 0x9D, 0xE5, 0x2C, 0x10, 0x9F, 0xE5, 0x22, 0x20, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x01, 0xA0, 0x13, 0x00, 0x20, 0x81, 0xE5, 0x20, 0xD0, 0x8D, 0xE2 - .byte 0x02, 0x01, 0xE0, 0x03, 0x38, 0x80, 0xBD, 0xE8, 0x00, 0x00, 0x52, 0xE3, 0x00, 0x00, 0x60, 0x12 - .byte 0x20, 0xD0, 0x8D, 0xE2, 0x38, 0x80, 0xBD, 0xE8, 0xF4, 0x95, 0x08, 0x02, 0x70, 0xCA, 0x2B, 0x02 - .byte 0x08, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x0A, 0x20, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1 - .byte 0x98, 0xB2, 0x08, 0x02 +_022E92E8: .4byte 0x0231A208 +_022E92EC: .4byte 0x00001770 + arm_func_end ov00_022E9134 - arm_func_start FUN_0208b374 -FUN_0208b374: @ 0x0208B374 - cmp r0, #0 - beq _0208B38C - ldr r3, [r0, #4] - lsl r2, r3, #0x16 - lsrs r2, r2, #0x1d - bne _0208B394 -_0208B38C: - mov r0, #0 - bx lr -_0208B394: - lsl r2, r3, #0x14 - lsrs r2, r2, #0x1e - beq _0208B3B4 - cmp r2, #1 - beq _0208B3DC - cmp r2, #2 - moveq r1, #1 - b _0208B3E0 -_0208B3B4: - cmp r1, #0 - ble _0208B3CC - bic r2, r3, #0xc00 - orr r2, r2, #0x800 - str r2, [r0, #4] - b _0208B3E0 -_0208B3CC: - biclt r2, r3, #0xc00 - orrlt r2, r2, #0x400 - strlt r2, [r0, #4] - b _0208B3E0 -_0208B3DC: - mvn r1, #0 -_0208B3E0: - mov r0, r1 - bx lr - arm_func_end FUN_0208b374 - - arm_func_start Wcslen -Wcslen: @ 0x0208B3E8 - mvn r2, #0 -_0208B3EC: - ldrh r1, [r0], #2 - add r2, r2, #1 - cmp r1, #0 - bne _0208B3EC - mov r0, r2 - bx lr - arm_func_end Wcslen - - arm_func_start FUN_0208b404 -FUN_0208b404: @ 0x0208B404 - push {r0, r1, r2, r3} - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x80 - ldr r8, [sp, #0xb4] - ldr r6, [sp, #0xac] - ldr r0, [sp, #0xb0] - bic sb, r8, #0x80000000 - orrs r1, sb, r0 - ldr r7, [sp, #0xa8] - bic r4, r6, #0x80000000 - addeq sp, sp, #0x80 - moveq r0, #0 - ldreq r1, _0208B9B0 @ =0x3FF00000 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - addeq sp, sp, #0x10 - bxeq lr - ldr r1, _0208B9B4 @ =0x7FF00000 - cmp r4, r1 - bgt _0208B474 - bne _0208B45C - cmp r7, #0 - bne _0208B474 -_0208B45C: - ldr r1, _0208B9B4 @ =0x7FF00000 - cmp sb, r1 - bgt _0208B474 - bne _0208B498 - cmp r0, #0 - beq _0208B498 -_0208B474: - ldr r0, [sp, #0xa8] - ldr r1, [sp, #0xac] - ldr r2, [sp, #0xb0] - ldr r3, [sp, #0xb4] - bl FUN_0208dec8 - add sp, sp, #0x80 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_0208B498: - cmp r6, #0 + arm_func_start ov00_022E92F0 +ov00_022E92F0: @ 0x022E92F0 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x22c + movs r4, r1 + mov r8, r0 + mov fp, r2 + beq _022E9314 + bl ov00_022EC1C0 + ldrb r6, [r0, #0x1a5] + b _022E9344 +_022E9314: + bl ov00_022EC1C0 + mov r5, r0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x344] + ldrb r1, [r5, #0x1a5] + sub r0, r0, #1 + cmp r1, r0 + movge r6, #0 + bge _022E9344 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a5] + add r6, r0, #1 +_022E9344: + cmp r4, #0 mov r5, #0 - bge _0208B500 - ldr r1, _0208B9B8 @ =0x43400000 - cmp sb, r1 - movge r5, #2 - bge _0208B500 - sub r1, r1, #0x3500000 - cmp sb, r1 - blt _0208B500 - ldr r1, _0208B9BC @ =0xFFFFFC01 - add r1, r1, sb, asr #20 - cmp r1, #0x14 - ble _0208B4E8 - rsb r2, r1, #0x34 - lsr r1, r0, r2 - cmp r0, r1, lsl r2 - andeq r1, r1, #1 - rsbeq r5, r1, #2 - b _0208B500 -_0208B4E8: - cmp r0, #0 - rsbeq r2, r1, #0x14 - asreq r1, sb, r2 - cmpeq sb, r1, lsl r2 - andeq r1, r1, #1 - rsbeq r5, r1, #2 -_0208B500: - cmp r0, #0 - bne _0208B65C - ldr r1, _0208B9B4 @ =0x7FF00000 - cmp sb, r1 - bne _0208B5B4 - add r0, r4, #0x100000 - add r0, r0, #0xc0000000 - orrs r0, r0, r7 - bne _0208B548 - ldr r0, [sp, #0xb0] - ldr r1, [sp, #0xb4] - mov r2, r0 - mov r3, r1 - bl FUN_0208e904 - add sp, sp, #0x80 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_0208B548: - sub r0, r1, #0x40000000 - cmp r4, r0 - blt _0208B578 - cmp r8, #0 - ldrge r0, [sp, #0xb0] - ldrge r1, [sp, #0xb4] - movlt r0, #0 - add sp, sp, #0x80 - movlt r1, r0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_0208B578: - cmp r8, #0 - mov r0, #0 - addge sp, sp, #0x80 - movge r1, r0 - popge {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - addge sp, sp, #0x10 - bxge lr - ldr r2, [sp, #0xb0] - ldr r3, [sp, #0xb4] - mov r1, r0 - bl FUN_0208e904 - add sp, sp, #0x80 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_0208B5B4: - sub r0, r1, #0x40000000 - cmp sb, r0 - bne _0208B600 - cmp r8, #0 - ldrge r0, [sp, #0xa8] - ldrge r1, [sp, #0xac] - addge sp, sp, #0x80 - popge {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - addge sp, sp, #0x10 - bxge lr - ldr r2, [sp, #0xa8] - ldr r3, [sp, #0xac] - sub r1, r1, #0x40000000 - mov r0, #0 - bl FUN_020902ac - add sp, sp, #0x80 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_0208B600: - cmp r8, #0x40000000 - bne _0208B62C - ldr r0, [sp, #0xa8] - ldr r1, [sp, #0xac] - mov r2, r0 - mov r3, r1 - bl FUN_0208e3ec - add sp, sp, #0x80 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_0208B62C: - ldr r0, _0208B9C0 @ =0x3FE00000 - cmp r8, r0 - bne _0208B65C - cmp r6, #0 - blt _0208B65C - ldr r0, [sp, #0xa8] - ldr r1, [sp, #0xac] - bl FUN_0208e750 - add sp, sp, #0x80 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_0208B65C: - ldr r0, [sp, #0xa8] - ldr r1, [sp, #0xac] - bl FUN_0208c5b4 - str r0, [sp, #0x70] - str r1, [sp, #0x74] + moveq r7, #1 + movne r7, r5 +_022E9354: cmp r7, #0 - bne _0208B760 - ldr r0, _0208B9B4 @ =0x7FF00000 - cmp r4, r0 - cmpne r4, #0 - subne r0, r0, #0x40000000 + cmpeq r5, #0 + beq _022E9398 + bl ov00_022EC1C0 + ldrb r1, [r0, #0x1a5] + add r1, r1, #1 + strb r1, [r0, #0x1a5] + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r1, [r4, #0x1a5] + ldr r0, [r0, #0x344] + cmp r1, r0 + blt _022E9398 + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1a5] +_022E9398: + cmp r5, #0 + beq _022E93E8 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a5] + cmp r6, r0 + bne _022E93E8 + bl ov00_022EC1C0 + ldr r1, _022E95A8 @ =0x00000BB8 + str r1, [r0, #0x1c8] + bl ov00_022EC1C0 + mov r4, r0 + bl FUN_0207AE44 + str r0, [r4, #0x1cc] + str r1, [r4, #0x1d0] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1bc] + add sp, sp, #0x22c + mov r0, r1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022E93E8: + mov r5, #1 + bl ov00_022E2C58 + mov sl, r0 + bl ov00_022EC1C0 + mov sb, r0 + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + mov r1, r0 + ldrb r2, [r1, #0x1a5] + ldr r3, [sb, #0x2fc] + mov r1, #0xc + add r2, r4, r2 + ldrb r2, [r2, #0x304] + mov r0, sl + mla r1, r2, r1, r3 + bl ov00_022DB98C + movs r4, r0 + mvnne r0, #0 cmpne r4, r0 - bne _0208B760 - ldr r2, [sp, #0x70] - ldr r3, [sp, #0x74] - str r2, [sp, #0x78] - str r3, [sp, #0x7c] - cmp r8, #0 - bge _0208B6BC - ldr r1, _0208B9B0 @ =0x3FF00000 + beq _022E9354 + bl ov00_022EC1C0 + mov sl, r0 + bl ov00_022EC1C0 + mov sb, r0 + bl ov00_022EC1C0 + ldrb r1, [r0, #0x1a5] + ldr r2, [sl, #0x2fc] + mov r0, #0xc + add r1, sb, r1 + ldrb r1, [r1, #0x304] + mla r0, r1, r0, r2 + bl ov00_022DB78C + cmp r0, #0 + beq _022E9354 + mov sb, r5 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #1 + blt _022E94B0 +_022E9488: + bl ov00_022EC1C0 + add r0, r0, sb, lsl #2 + ldr r0, [r0, #0xf4] + cmp r4, r0 + beq _022E94B0 + add sb, sb, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp sb, r0 + ble _022E9488 +_022E94B0: + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp sb, r0 + ble _022E9354 + bl ov00_022EC1C0 + ldr r0, [r0] + add r2, sp, #4 + mov r1, r4 + bl ov00_022FF768 + mov sb, r0 + bl ov00_022EC1C0 + ldr r0, [r0] + ldr r1, [sp, #4] + add r2, sp, #0x18 + bl ov00_022FF5D8 + orrs r0, sb, r0 + ldreq r0, [sp, #0x1c] + cmpeq r0, #4 + bne _022E9354 + ldr r0, _022E95AC @ =0x0231A1CC + add r1, sp, #0xc + add r2, sp, #0x20 + mov r3, #0x2f + bl ov00_022E1448 + mov sl, r0 + ldr r0, _022E95B0 @ =0x0231A1C4 + add r1, sp, #8 + add r2, sp, #0x20 + mov r3, #0x2f + bl ov00_022E1448 + mov sb, r0 + ldr r0, _022E95B4 @ =0x0231A1C8 + add r1, sp, #0 + add r2, sp, #0x20 + mov r3, #0x2f + bl ov00_022E1448 + cmp sl, #0 + cmpgt sb, #0 + cmpgt r0, #0 + ble _022E9354 + add r0, sp, #0xc + mov r1, #0 + mov r2, #0xa + bl FUN_0208B200 + cmp r0, #3 + bne _022E9354 + add r0, sp, #8 + mov r1, #0 + mov r2, #0xa + bl FUN_0208B200 + mov sb, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x16] + cmp sb, r0 + bne _022E9354 + cmp r4, fp + moveq r8, #1 + mov r0, r4 + mov r1, r8 + bl ov00_022E9134 + add sp, sp, #0x22c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022E95A8: .4byte 0x00000BB8 +_022E95AC: .4byte 0x0231A1CC +_022E95B0: .4byte 0x0231A1C4 +_022E95B4: .4byte 0x0231A1C8 + arm_func_end ov00_022E92F0 + + arm_func_start ov00_022E95B8 +ov00_022E95B8: @ 0x022E95B8 + push {r3, r4, r5, lr} + mov r5, r0 + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x208] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x204] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1a7] + bl ov00_022EC1C0 + mov r4, r0 + bl FUN_0207AE44 + str r0, [r4, #0x1cc] + str r1, [r4, #0x1d0] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + bne _022E962C + mov r0, #3 + bl ov00_022EC1D0 mov r0, #0 - bl FUN_020902ac - str r0, [sp, #0x78] - str r1, [sp, #0x7c] -_0208B6BC: - cmp r6, #0 - bge _0208B748 - add r0, r4, #0x100000 - add r0, r0, #0xc0000000 - orrs r0, r0, r5 - bne _0208B724 - ldr r0, [sp, #0x78] - ldr r1, [sp, #0x7c] + bl ov00_022E72A0 + bl ov00_022EB694 + cmp r0, #0 + beq _022E9684 + mov r0, #0 + pop {r3, r4, r5, pc} +_022E962C: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #1 + bne _022E9660 + mov r0, #0 + mov r1, r0 + mov r2, r5 + bl ov00_022E92F0 + bl ov00_022E9108 + cmp r0, #0 + beq _022E9684 + mov r0, #0 + pop {r3, r4, r5, pc} +_022E9660: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #3 + bne _022E9684 + ldr r1, _022E968C @ =0xFFFEC5E6 + mov r0, #6 + bl ov00_022E6570 + mov r0, #0 + pop {r3, r4, r5, pc} +_022E9684: + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_022E968C: .4byte 0xFFFEC5E6 + arm_func_end ov00_022E95B8 + + arm_func_start ov00_022E9690 +ov00_022E9690: @ 0x022E9690 + push {r3, r4, r5, lr} + sub sp, sp, #8 + mov r5, r0 + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + ldrh r3, [r0, #0xa4] + ldr r2, [r4, #0x24] + mov r1, r5 + mov r0, #5 + bl ov00_022E78AC + mov r4, r0 + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x204] + mov r0, r4 + add sp, sp, #8 + pop {r3, r4, r5, pc} + arm_func_end ov00_022E9690 + + arm_func_start ov00_022E96E4 +ov00_022E96E4: @ 0x022E96E4 + push {r4, r5, r6, lr} + mov r5, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x17] + cmp r0, #0 + beq _022E971C + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldr r1, [r4, #0x20] + ldr r0, [r0, #0x200] + cmp r1, r0 + moveq r4, #0 + beq _022E9720 +_022E971C: + mov r4, #1 +_022E9720: + cmp r4, #0 + beq _022E974C + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x17] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x20] + bl ov00_022EC1C0 + ldr r0, [r0, #0x10] + bl ov00_02312BF4 +_022E974C: + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #0x1f + bhs _022E977C + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + mov r1, #0 + add r0, r0, #1 + add r0, r6, r0, lsl #2 + str r1, [r0, #0xf4] +_022E977C: + bl ov00_022EC1C0 + mov r1, #0xff + strb r1, [r0, #0x3cc] + bl ov00_022EC1C0 + ldr r0, [r0, #0x19c] + cmp r0, #0 + beq _022E97B0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x19c] + bl ov00_02311FB0 + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x19c] +_022E97B0: + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + strb r0, [r6, #0x14] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x204] + cmp r4, #0 + bne _022E97F0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #3 + beq _022E98F8 + bl ov00_022EA488 + b _022E98F8 +_022E97F0: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + bne _022E982C + mov r0, #3 + bl ov00_022EC1D0 + bl ov00_022EC1C0 + mov r1, #2 + str r1, [r0, #0xe8] + bl ov00_022EC1C0 + mov r4, r0 + bl FUN_0207AE44 + str r0, [r4, #0xec] + str r1, [r4, #0xf0] + b _022E98F8 +_022E982C: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #1 + bne _022E9858 + mov r0, #4 + bl ov00_022EC1D0 + mov r1, #0 + mov r2, r1 + mov r0, #1 + bl ov00_022E92F0 + b _022E98F8 +_022E9858: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #2 + bne _022E98F8 + mov r0, #0xe + bl ov00_022EC1D0 + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1d8] + bl ov00_022EC1C0 + add r1, r0, #0x100 + mov r2, #0 + mov r0, r5 + strh r2, [r1, #0xb2] + bl ov00_022EA57C + mov r5, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #1 + blt _022E98E0 + mov r4, #0xd +_022E98AC: + bl ov00_022EC1C0 + add r0, r0, r5, lsl #2 + ldr r0, [r0, #0xf4] + mov r1, r4 + bl ov00_022EAAB8 + cmp r0, #0 + moveq r0, #0 + popeq {r4, r5, r6, pc} + add r5, r5, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r5, r0 + ble _022E98AC +_022E98E0: + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #0 + bne _022E98F8 + mov r0, #2 + bl ov00_022EA388 +_022E98F8: + mov r0, #1 + pop {r4, r5, r6, pc} + arm_func_end ov00_022E96E4 + + arm_func_start ov00_022E9900 +ov00_022E9900: @ 0x022E9900 + push {r3, r4, r5, lr} + mov r4, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #3 + bne _022E9940 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #0 + beq _022E992C + bl ov00_022EA5EC +_022E992C: + ldr r1, _022E99BC @ =0xFFFEC5D2 + mov r0, #6 + bl ov00_022E6570 + mov r0, #0 + pop {r3, r4, r5, pc} +_022E9940: + bl ov00_022EC1C0 + mov r5, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + strb r0, [r5, #0x14] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x208] + bl ov00_022EC1C0 + ldr r0, [r0, #0x19c] + cmp r0, #0 + beq _022E9988 + bl ov00_022EC1C0 + ldr r0, [r0, #0x19c] + bl ov00_02311FB0 + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x19c] +_022E9988: + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #0 + beq _022E99A0 + bl ov00_022EA488 + b _022E99B4 +_022E99A0: + mov r0, #4 + bl ov00_022EC1D0 + mov r0, #0 + bl ov00_022E95B8 + mov r4, r0 +_022E99B4: + mov r0, r4 + pop {r3, r4, r5, pc} + .align 2, 0 +_022E99BC: .4byte 0xFFFEC5D2 + arm_func_end ov00_022E9900 + + arm_func_start ov00_022E99C0 +ov00_022E99C0: @ 0x022E99C0 + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #8 + mov r4, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #1 + blt _022E9A58 + mov r5, #0xa +_022E99E0: + bl ov00_022EC1C0 + mov sb, r0 + bl ov00_022EC1C0 + mov r8, r0 + bl ov00_022EC1C0 + mov r7, r0 + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + add r1, r6, #0x348 + str r1, [sp] + ldr ip, [r0, #0x348] + add r3, r7, r4, lsl #1 + add ip, ip, #1 + str ip, [sp, #4] + add r1, sb, r4, lsl #2 + add r2, r8, r4, lsl #2 + ldrh r3, [r3, #0xa4] + ldr r1, [r1, #0xf4] + ldr r2, [r2, #0x24] + mov r0, r5 + bl ov00_022E78AC + cmp r0, #0 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + add r4, r4, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r4, r0 + ble _022E99E0 +_022E9A58: + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x17] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x20] + bl ov00_022EC1C0 + mov r1, #1 + strb r1, [r0, #0x1a8] + bl ov00_022EC1C0 + ldr r0, [r0, #4] + ldr r0, [r0] + bl ov00_0230E3A4 + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1a8] + mov r0, r1 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_022E99C0 + + arm_func_start ov00_022E9AA4 +ov00_022E9AA4: @ 0x022E9AA4 + push {r3, r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x1c + cmp r0, #4 + mov r4, #3 + mov r5, #0 + addls pc, pc, r0, lsl #2 + b _022EA12C +_022E9AC0: @ jump table + b _022E9AD4 @ case 0 + b _022E9E74 @ case 1 + b _022E9EB8 @ case 2 + b _022E9F7C @ case 3 + b _022E9F9C @ case 4 +_022E9AD4: + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + ldrb r1, [r6, #0x1a4] + sub r0, r0, #1 + cmp r1, r0 + bge _022E9B94 + mov r0, #0xd + bl ov00_022EC1D0 + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a4] + add r0, r0, #1 + add r0, r4, r0, lsl #2 + ldr r0, [r0, #0xf4] + str r0, [sp, #8] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a4] + add r0, r0, #1 + str r0, [sp, #0xc] + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a4] + add r0, r0, #1 + add r0, r4, r0 + ldrb r0, [r0, #0x2d0] + str r0, [sp, #0x10] + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a4] + add r0, r0, #1 + add r0, r4, r0, lsl #2 + ldr r0, [r0, #0x24] + str r0, [sp, #0x14] + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a4] + mov r4, #5 + add r0, r0, #1 + add r0, r6, r0, lsl #1 + ldrh r0, [r0, #0xa4] + str r0, [sp, #0x18] + b _022E9DE0 +_022E9B94: + bl ov00_022EC1C0 + mov r1, r5 + strb r1, [r0, #0x17] + bl ov00_022EC1C0 + mov r1, r5 + str r1, [r0, #0x20] + bl ov00_022EC1C0 + ldr r0, [r0, #0x10] + bl ov00_02312BF4 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + bne _022E9BD4 + mov r0, r4 + bl ov00_022EC1D0 + b _022E9BF8 +_022E9BD4: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #1 + bne _022E9BF0 + mov r0, #4 + bl ov00_022EC1D0 + b _022E9BF8 +_022E9BF0: + mov r0, #0xa + bl ov00_022EC1D0 +_022E9BF8: + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1a4] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #2 + beq _022E9C30 + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + ldrb r1, [r6, #0xd] + ldrb r0, [r0, #0x16] + cmp r1, r0 + bne _022E9CE0 +_022E9C30: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #2 + bne _022E9C68 + bl ov00_022EC1C0 + mov r7, r0 + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + add r0, r6, r0, lsl #2 + ldr r0, [r0, #0xf4] + str r0, [r7, #0x20c] + b _022E9C88 +_022E9C68: + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x20c] + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x200] + str r0, [r6, #0xf4] +_022E9C88: + mov r0, #0x10 + bl ov00_022EC1D0 + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x1d4] + mov r7, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #1 + blt _022E9DD0 + mov r6, #2 +_022E9CB4: + bl ov00_022EC1C0 + add r0, r0, r7 + ldrb r0, [r0, #0x2d0] + mov r1, r6 + bl ov00_022EA758 + add r7, r7, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r7, r0 + ble _022E9CB4 + b _022E9DD0 +_022E9CE0: + mov r0, #0 + str r0, [sp, #8] + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + str r0, [sp, #0xc] + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + add r0, r6, r0 + ldrb r0, [r0, #0x2d0] + str r0, [sp, #0x10] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + bne _022E9D44 + bl ov00_022EC1C0 + mov r1, #2 + str r1, [r0, #0xe8] + bl ov00_022EC1C0 + mov r6, r0 + bl FUN_0207AE44 + str r0, [r6, #0xec] + str r1, [r6, #0xf0] + b _022E9DD0 +_022E9D44: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #1 + bne _022E9DD0 + mov r1, #0 + mov r2, r1 + mov r0, #1 + bl ov00_022E92F0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a6] + cmp r0, #0 + bne _022E9DD0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #2 + blo _022E9DD0 + bl ov00_022EC1C0 + mov r8, r0 + mov r0, #0 + bl ov00_022EB0F8 + mov r6, r0 + bl ov00_022EC1C0 + mov r7, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + mov r1, #1 + ldr r2, [r8, #0x1dc] + add r0, r7, r0 + ldrb r0, [r0, #0x2d0] + mvn r0, r1, lsl r0 + and r0, r6, r0 + cmp r2, r0 + beq _022E9DD0 + bl ov00_022EA488 + b _022EA12C +_022E9DD0: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #2 + movne r5, #1 +_022E9DE0: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0x10 + beq _022EA12C + bl ov00_022EC1C0 + mov sl, r0 + bl ov00_022EC1C0 + mov sb, r0 + bl ov00_022EC1C0 + mov r8, r0 + bl ov00_022EC1C0 + mov r7, r0 + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + add r1, sp, #8 + stm sp, {r1, r4} + mov ip, r0 + ldrb r3, [sb, #0xd] + ldrb r2, [r7, #0xd] + ldrb r1, [ip, #0xd] + add r4, sl, r3, lsl #2 + add r2, r8, r2, lsl #2 + add r3, r6, r1, lsl #1 + ldrh r3, [r3, #0xa4] + ldr r1, [r4, #0xf4] + ldr r2, [r2, #0x24] + mov r0, #8 + bl ov00_022E78AC + bl ov00_022E9108 + cmp r0, #0 + addne sp, sp, #0x1c + popne {r3, r4, r5, r6, r7, r8, sb, sl, pc} + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x3cd] + b _022EA12C +_022E9E74: + mov r0, #1 + bl ov00_022EC1D0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #3 + bne _022E9EB0 + bl ov00_022EC1C0 + mov r5, r0 + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + add r0, r4, r0, lsl #2 + ldr r0, [r0, #0xf4] + str r0, [r5, #0x20c] +_022E9EB0: + mov r5, #1 + b _022EA12C +_022E9EB8: + mov r0, #1 + bl ov00_022EC1D0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + beq _022E9EE0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #1 + bne _022E9F00 +_022E9EE0: + bl ov00_022EC1C0 + mov r1, #1 + strb r1, [r0, #0x17] + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x200] + str r0, [r4, #0x20] +_022E9F00: + bl ov00_022EB15C + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #1 + bls _022EA12C + bl ov00_022EC1C0 + mov r7, r0 + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + mov r8, r0 + bl ov00_022EC1C0 + add r3, r8, #0xf4 + ldrb r2, [r0, #0xd] + mov r1, #1 + mov r0, #9 + sub r2, r2, #1 + add r2, r3, r2, lsl #2 + str r2, [sp] + str r1, [sp, #4] + ldr r1, [r7, #0xf4] + ldr r2, [r6, #0x24] + ldrh r3, [r4, #0xa4] + bl ov00_022E78AC + bl ov00_022E9108 + cmp r0, #0 + beq _022EA12C + add sp, sp, #0x1c + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} +_022E9F7C: + mov r0, #1 + bl ov00_022EC1D0 + bl ov00_022EB15C + bl ov00_022EC1C0 + mov r1, r5 + str r1, [r0, #0x20c] + mov r5, #1 + b _022EA12C +_022E9F9C: + mov r4, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #1 + ble _022EA000 +_022E9FB0: + bl ov00_022EC1C0 + add r0, r0, r4 + ldrb r0, [r0, #0x2d0] + cmp r0, #0 + beq _022E9FD8 + bl ov00_022EC1C0 + add r0, r0, r4 + ldrb r0, [r0, #0x2d0] + cmp r0, #0x20 + blo _022E9FEC +_022E9FD8: + ldr r1, _022EA160 @ =0xFFFEA2A0 + mov r0, #0x15 + bl ov00_022E6570 + add sp, sp, #0x1c + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} +_022E9FEC: + add r4, r4, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r4, r0 + blt _022E9FB0 +_022EA000: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #2 + beq _022EA020 + ldr r1, _022EA164 @ =0x0231A1BC + mov r0, #2 + mov r2, #0 + bl ov00_022E3E54 +_022EA020: + bl ov00_022EC1C0 + ldr r0, [r0, #0x20c] + cmp r0, #0 + moveq r7, #1 + movne r7, #0 + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x20c] + bl ov00_022E3DB8 + mov r4, r0 + bl ov00_022EC1C0 + str r4, [sp] + ldr r1, [r0, #0x468] + mov r0, #0 + str r1, [sp, #4] + ldr r4, [r6, #0x464] + mov r2, r7 + mov r1, r0 + mov r3, r0 + blx r4 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + beq _022EA094 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #1 + bne _022EA09C +_022EA094: + bl ov00_022E7204 + b _022EA120 +_022EA09C: + bl ov00_022EC1C0 + ldr r0, [r0, #0xe4] + cmp r0, #0 + beq _022EA0C4 + bl ov00_022EC1C0 + ldr r0, [r0, #0xe4] + bl ov00_02315AD8 + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0xe4] +_022EA0C4: + bl ov00_022E5080 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #2 + bne _022EA10C + bl ov00_022E6D08 + bl ov00_022EB620 + cmp r0, #0 + addne sp, sp, #0x1c + popne {r3, r4, r5, r6, r7, r8, sb, sl, pc} + ldr r0, _022EA168 @ =0x02326F48 + ldrb r1, [r0, #0x1c] + cmp r1, #1 + moveq r1, #1 + strbeq r1, [r0, #0x1d] + mov r0, #0xa + bl ov00_022EC1D0 + b _022EA114 +_022EA10C: + mov r0, #1 + bl ov00_022EC1D0 +_022EA114: + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x20c] +_022EA120: + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1a9] +_022EA12C: + cmp r5, #0 + addeq sp, sp, #0x1c + popeq {r3, r4, r5, r6, r7, r8, sb, sl, pc} + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #3 + addeq sp, sp, #0x1c + popeq {r3, r4, r5, r6, r7, r8, sb, sl, pc} + bl ov00_022EC1C0 + ldr r0, [r0, #0xe4] + bl ov00_02315D34 + add sp, sp, #0x1c + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022EA160: .4byte 0xFFFEA2A0 +_022EA164: .4byte 0x0231A1BC +_022EA168: .4byte 0x02326F48 + arm_func_end ov00_022E9AA4 + + arm_func_start ov00_022EA16C +ov00_022EA16C: @ 0x022EA16C + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a6] + cmp r0, #0 + beq _022EA19C + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #4 + moveq r0, #1 + popeq {r4, r5, r6, pc} +_022EA19C: + cmp r5, #0 + mov r4, #0 + bls _022EA1EC +_022EA1A8: + ldr r0, [r6, r4, lsl #2] + bl ov00_022EB024 + cmp r0, #0 + moveq r0, #0 + popeq {r4, r5, r6, pc} + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1a6] + cmp r0, #0 + beq _022EA1E0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #1 + moveq r0, #1 + popeq {r4, r5, r6, pc} +_022EA1E0: + add r4, r4, #1 + cmp r4, r5 + blo _022EA1A8 +_022EA1EC: + mov r0, #1 + pop {r4, r5, r6, pc} + arm_func_end ov00_022EA16C + + arm_func_start ov00_022EA1F4 +ov00_022EA1F4: @ 0x022EA1F4 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + ldr r1, _022EA2B0 @ =0x0231A1BC + mov r0, #1 + mov r2, #0 + bl ov00_022E3E54 + bl ov00_022EB620 + cmp r0, #0 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} + bl ov00_022E7204 + bl ov00_022EC1C0 + ldr r0, [r0, #0x20c] + cmp r0, #0 + movne r6, #1 + bne _022EA248 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #2 + moveq r6, #1 + movne r6, #0 +_022EA248: + bl ov00_022EC1C0 + ldr r0, [r0, #0x20c] + cmp r0, #0 + moveq r7, #1 + movne r7, #0 + bl ov00_022EC1C0 + mov r5, r0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x20c] + bl ov00_022E3DB8 + mov r4, r0 + bl ov00_022EC1C0 + str r4, [sp] + ldr r1, [r0, #0x468] + mov r2, r7 + str r1, [sp, #4] + ldr ip, [r5, #0x464] + mov r3, r6 + mov r0, #0 + mov r1, #1 + blx ip + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1a9] + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022EA2B0: .4byte 0x0231A1BC + arm_func_end ov00_022EA1F4 + + arm_func_start ov00_022EA2B4 +ov00_022EA2B4: @ 0x022EA2B4 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0xc + mov r4, #0 + str r4, [sp, #8] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x17] + cmp r0, #0 + beq _022EA37C + bl ov00_022EC1C0 + ldr r0, [r0, #0x20] + cmp r0, #0 + beq _022EA37C + bl ov00_022EC1C0 + mov r5, r0 + bl ov00_022EC1C0 + ldr r1, [r5, #0x20] + ldr r0, [r0, #0x200] + cmp r1, r0 + beq _022EA37C + bl ov00_022EC1C0 + mov r7, r0 + bl ov00_022EC1C0 + mov r5, r0 + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + add r2, sp, #8 + mov r1, #1 + str r2, [sp] + str r1, [sp, #4] + ldrb r3, [r0, #0xd] + ldrb r2, [r6, #0xd] + ldr r1, [r7, #0x20] + add r3, r3, #1 + add r2, r2, #1 + add r3, r4, r3, lsl #1 + add r2, r5, r2, lsl #2 + ldrh r3, [r3, #0xa4] + ldr r2, [r2, #0x24] + mov r0, #0xc + bl ov00_022E78AC + mov r4, r0 + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x17] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x20] +_022EA37C: + mov r0, r4 + add sp, sp, #0xc + pop {r4, r5, r6, r7, pc} + arm_func_end ov00_022EA2B4 + + arm_func_start ov00_022EA388 +ov00_022EA388: @ 0x022EA388 + push {r4, r5, r6, lr} + sub sp, sp, #8 + movs r4, r0 + bne _022EA3A4 + bl ov00_022EA1F4 + add sp, sp, #8 + pop {r4, r5, r6, pc} +_022EA3A4: + bl ov00_022E6E68 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #2 + beq _022EA3C8 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #3 + bne _022EA424 +_022EA3C8: + bl ov00_022EC1C0 + ldr r0, [r0, #0x20c] + cmp r0, #0 + moveq r6, #1 + movne r6, #0 + bl ov00_022EC1C0 + mov r5, r0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x20c] + bl ov00_022E3DB8 + mov r4, r0 + bl ov00_022EC1C0 + str r4, [sp] + ldr r1, [r0, #0x468] + mov r0, #0 + str r1, [sp, #4] + ldr ip, [r5, #0x464] + mov r2, r6 + mov r1, #1 + mov r3, r0 + blx ip + add sp, sp, #8 + pop {r4, r5, r6, pc} +_022EA424: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + bne _022EA458 + cmp r4, #1 + addne sp, sp, #8 + popne {r4, r5, r6, pc} + mov r0, #0 + bl ov00_022E72A0 + bl ov00_022EB694 + add sp, sp, #8 + cmp r0, #0 + pop {r4, r5, r6, pc} +_022EA458: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #1 + cmpeq r4, #1 + addne sp, sp, #8 + popne {r4, r5, r6, pc} + mov r0, #0 + mov r1, r0 mov r2, r0 - mov r3, r1 - bl FUN_0208e904 + bl ov00_022E92F0 + add sp, sp, #8 + pop {r4, r5, r6, pc} + arm_func_end ov00_022EA388 + + arm_func_start ov00_022EA488 +ov00_022EA488: @ 0x022EA488 + push {r3, lr} + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #2 + popeq {r3, pc} + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #3 + popeq {r3, pc} + bl ov00_022EA5EC + mov r0, #1 + bl ov00_022EA388 + pop {r3, pc} + arm_func_end ov00_022EA488 + + arm_func_start ov00_022EA4BC +ov00_022EA4BC: @ 0x022EA4BC + push {r4, lr} + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x17] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x20] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1a8] + bl ov00_022EC1C0 + ldr r0, [r0, #0x208] + cmp r0, #0 + beq _022EA56C + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + bne _022EA52C + mov r0, #3 + bl ov00_022EC1D0 + mov r0, #0 + bl ov00_022E72A0 + mov r4, r0 + bl ov00_022EB694 + cmp r0, #0 + beq _022EA574 + mov r0, r4 + pop {r4, pc} +_022EA52C: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #1 + bne _022EA574 + mov r0, #4 + bl ov00_022EC1D0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x208] + mov r1, #0 + bl ov00_022E9134 + mov r4, r0 + bl ov00_022E9108 + cmp r0, #0 + beq _022EA574 + mov r0, r4 + pop {r4, pc} +_022EA56C: + mov r0, #1 + bl ov00_022EA388 +_022EA574: + mov r0, #0 + pop {r4, pc} + arm_func_end ov00_022EA4BC + + arm_func_start ov00_022EA57C +ov00_022EA57C: @ 0x022EA57C + push {r3, r4, r5, lr} + mov r5, r0 + bl ov00_022EC1C0 + str r5, [r0, #0x20c] + bl ov00_022EC1C0 + ldrb r1, [r0, #0xd] + mov r0, r5 + add r1, r1, #1 + bl ov00_022E2194 + movs r4, r0 + beq _022EA5D0 + bl ov00_022EC1C0 + mov r1, #2 + strb r1, [r0, #0x1a8] + ldr r0, [r4] + bl ov00_0230E384 + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1a8] + mov r0, #1 + pop {r3, r4, r5, pc} +_022EA5D0: + bl ov00_022EC1C0 + ldrb r1, [r0, #0xd] + mov r0, r5 + add r1, r1, #1 + bl ov00_022E69C0 + mov r0, #0 + pop {r3, r4, r5, pc} + arm_func_end ov00_022EA57C + + arm_func_start ov00_022EA5EC +ov00_022EA5EC: @ 0x022EA5EC + push {r3, lr} + bl ov00_022EC1C0 + mov r1, #2 + strb r1, [r0, #0x1a8] + bl ov00_022EC1C0 + ldr r0, [r0, #4] + ldr r0, [r0] + bl ov00_0230E3A4 + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1a8] + pop {r3, pc} + arm_func_end ov00_022EA5EC + + arm_func_start ov00_022EA61C +ov00_022EA61C: @ 0x022EA61C + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x108 + mov r7, #0 + mov sl, r0 + arm_func_end ov00_022EA61C + + arm_func_start ov00_022EA62C +ov00_022EA62C: @ 0x022EA62C + mov r8, r7 + mov sb, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #1 + blt _022EA6A4 + add r4, sp, #0x88 + add r5, sp, #8 + mov r6, sb +_022EA650: + bl ov00_022EC1C0 + add r0, r0, sb + ldrb r0, [r0, #0x2d0] + tst sl, r6, lsl r0 + beq _022EA67C + bl ov00_022EC1C0 + add r0, r0, sb, lsl #2 + ldr r0, [r0, #0xf4] + str r0, [r5, r8, lsl #2] + add r8, r8, #1 + b _022EA690 +_022EA67C: + bl ov00_022EC1C0 + add r0, r0, sb, lsl #2 + ldr r0, [r0, #0xf4] + str r0, [r4, r7, lsl #2] + add r7, r7, #1 +_022EA690: + add sb, sb, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp sb, r0 + ble _022EA650 +_022EA6A4: + cmp r8, #0 + mov sl, #0 + ble _022EA6FC + add sb, sp, #0x88 + mov r6, #0x10 + add r5, sp, #8 + mov r4, sl +_022EA6C0: + ldr r1, [r5, sl, lsl #2] + str sb, [sp] + mov r0, r6 + mov r2, r4 + mov r3, r4 + str r7, [sp, #4] + bl ov00_022E78AC + bl ov00_022E9108 + cmp r0, #0 + addne sp, sp, #0x108 + movne r0, #0 + popne {r4, r5, r6, r7, r8, sb, sl, pc} + add sl, sl, #1 + cmp sl, r8 + blt _022EA6C0 +_022EA6FC: + bl ov00_022EC1C0 + mov r1, #2 + strb r1, [r0, #0x1a8] + cmp r7, #0 + mov r6, #0 + ble _022EA740 + add r5, sp, #0x88 + mov r4, r6 +_022EA71C: + ldr r0, [r5, r6, lsl #2] + mov r1, r4 + bl ov00_022EB094 + cmp r0, #0xff + beq _022EA734 + bl ov00_022E1EB4 +_022EA734: + add r6, r6, #1 + cmp r6, r7 + blt _022EA71C +_022EA740: + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1a8] + mov r0, #1 + add sp, sp, #0x108 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end ov00_022EA62C + + arm_func_start ov00_022EA758 +ov00_022EA758: @ 0x022EA758 + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + mov r4, r1 + mov r5, r0 + cmp r4, #2 + beq _022EA77C + cmp r4, #3 + beq _022EA7F4 + b _022EA818 +_022EA77C: + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + add r0, r6, r0 + ldrb r0, [r0, #0x2d0] + mov r6, #1 + cmp r5, r0 + moveq r0, #1 + strbeq r0, [sp] + movne r0, #0 + strbne r0, [sp] + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #1 + blo _022EA818 +_022EA7BC: + bl ov00_022EC1C0 + add r0, r0, r6 + ldrb r0, [r0, #0x2d0] + cmp r5, r0 + strbeq r6, [sp, #1] + strbeq r5, [sp, #2] + beq _022EA818 + add r0, r6, #1 + and r6, r0, #0xff + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r6, r0 + bls _022EA7BC + b _022EA818 +_022EA7F4: + bl ov00_022EC1C0 + add r0, r0, #0x100 + ldrh r0, [r0, #0xb0] + strb r0, [sp] + bl ov00_022EC1C0 + add r0, r0, #0x100 + ldrh r0, [r0, #0xb0] + asr r0, r0, #8 + strb r0, [sp, #1] +_022EA818: + add r2, sp, #0 + mov r0, r4 + mov r1, r5 + mov r3, #4 + bl ov00_022EC4F0 + bl ov00_022EC1C0 + mov r4, r0 + bl FUN_0207AE44 + str r0, [r4, #0x1e0] + str r1, [r4, #0x1e4] + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_022EA758 + + arm_func_start ov00_022EA848 +ov00_022EA848: @ 0x022EA848 + push {r3, r4, r5, r6, r7, lr} + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #9 + beq _022EA87C + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0x10 + beq _022EA87C + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0x11 + bne _022EA8C0 +_022EA87C: + bl FUN_0207AE44 mov r4, r0 mov r5, r1 - ldr r0, [sp, #0x78] - ldr r1, [sp, #0x7c] - mov r2, r0 - mov r3, r1 - bl FUN_0208e904 - mov r2, r0 - mov r3, r1 - mov r0, r4 - mov r1, r5 - bl FUN_020902ac - str r0, [sp, #0x78] - str r1, [sp, #0x7c] - b _0208B748 -_0208B724: - cmp r5, #1 - bne _0208B748 - mov r0, #0 - ldr r2, [sp, #0x78] - ldr r3, [sp, #0x7c] - mov r1, r0 - bl FUN_0208e904 - str r0, [sp, #0x78] - str r1, [sp, #0x7c] -_0208B748: - ldr r0, [sp, #0x78] - ldr r1, [sp, #0x7c] - add sp, sp, #0x80 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_0208B760: - asr r0, r6, #0x1f - add r7, r0, #1 - orrs r0, r7, r5 - bne _0208B798 - ldr r0, _0208B9C4 @ =0x020B2FBC - ldr r1, _0208B9C8 @ =0x022BCA70 - ldr r0, [r0] - mov r2, #0x21 - str r2, [r1] - bl FloatToDouble - add sp, sp, #0x80 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_0208B798: - ldr r3, _0208B9CC @ =0x41E00000 - cmp sb, r3 - ble _0208BA9C - add r0, r3, #0x2100000 - cmp sb, r0 - ble _0208B808 - ldr r1, _0208B9D0 @ =0x3FEFFFFF - cmp r4, r1 - bgt _0208B7DC - cmp r8, #0 - mov r0, #0 - addlt r1, r1, #0x40000001 - add sp, sp, #0x80 - movge r1, r0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_0208B7DC: - add r0, r1, #1 - cmp r4, r0 - blt _0208B808 - cmp r8, #0 - mov r0, #0 - addgt r1, r1, #0x40000001 - add sp, sp, #0x80 - movle r1, r0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_0208B808: - ldr r2, _0208B9D0 @ =0x3FEFFFFF - cmp r4, r2 - bge _0208B834 - cmp r8, #0 - mov r0, #0 - addlt r1, r2, #0x40000001 - add sp, sp, #0x80 - movge r1, r0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_0208B834: - add r0, r2, #1 - cmp r4, r0 - ble _0208B860 - cmp r8, #0 - mov r0, #0 - addgt r1, r2, #0x40000001 - add sp, sp, #0x80 - movle r1, r0 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_0208B860: - ldr r0, [sp, #0xa8] - ldr r1, [sp, #0xac] - add r3, r2, #1 - mov r2, #0 - bl FUN_0208e904 - mov r2, r0 - mov r3, r1 - str r0, [sp, #0x50] - str r1, [sp, #0x54] - bl FUN_0208e3ec - mov r6, r1 - mov r4, r0 - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x54] - ldr r1, _0208B9D4 @ =0x3FD00000 - mov r0, #0 - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - ldr r0, _0208B9D8 @ =0x55555555 - sub r1, r0, #0x15800000 - bl FUN_0208e904 - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x50] - ldr r1, [sp, #0x54] - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - mov r0, #0 - ldr r1, _0208B9C0 @ =0x3FE00000 - bl FUN_0208e904 - mov r2, r0 - mov r0, r4 - mov r3, r1 - mov r1, r6 - bl FUN_0208e3ec - mov r6, r0 - mov r8, r1 - mov r0, #0x60000000 - ldr r1, _0208B9DC @ =0x3FF71547 - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x54] - bl FUN_0208e3ec - mov r4, r0 - mov sb, r1 - ldr r0, _0208B9E0 @ =0xF85DDF44 - ldr r1, _0208B9E4 @ =0x3E54AE0B - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x54] - bl FUN_0208e3ec - mov fp, r0 - mov sl, r1 - ldr r0, _0208B9E8 @ =0x652B82FE - ldr r1, _0208B9DC @ =0x3FF71547 - mov r2, r6 - mov r3, r8 - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - mov r0, fp - mov r1, sl - bl FUN_0208e904 - mov r6, r0 - mov r8, r1 - mov r0, r4 - mov r1, sb - mov r2, r6 - mov r3, r8 - bl FUN_0208dec8 - mov r2, r4 - mov r3, sb - str r1, [sp, #0x5c] - mov r0, #0 - str r0, [sp, #0x58] - bl FUN_0208e904 - mov r2, r0 - mov r0, r6 - mov r3, r1 - mov r1, r8 - bl FUN_0208e904 - mov r4, r0 - mov r8, r1 - b _0208BFF8 - .align 2, 0 -_0208B9B0: .4byte 0x3FF00000 -_0208B9B4: .4byte 0x7FF00000 -_0208B9B8: .4byte 0x43400000 -_0208B9BC: .4byte 0xFFFFFC01 -_0208B9C0: .4byte 0x3FE00000 -_0208B9C4: .4byte 0x020B2FBC -_0208B9C8: .4byte 0x022BCA70 -_0208B9CC: .4byte 0x41E00000 -_0208B9D0: .4byte 0x3FEFFFFF -_0208B9D4: .4byte 0x3FD00000 -_0208B9D8: .4byte 0x55555555 -_0208B9DC: .4byte 0x3FF71547 -_0208B9E0: .4byte 0xF85DDF44 -_0208B9E4: .4byte 0x3E54AE0B -_0208B9E8: .4byte 0x652B82FE -_0208B9EC: .4byte 0x0003988E -_0208B9F0: .4byte 0x000BB67A -_0208B9F4: .4byte 0x020AEED0 -_0208B9F8: .4byte 0x4A454EEF -_0208B9FC: .4byte 0x3FCA7E28 -_0208BA00: .4byte 0x93C9DB65 -_0208BA04: .4byte 0x3FCD864A -_0208BA08: .4byte 0xA91D4101 -_0208BA0C: .4byte 0x3FD17460 -_0208BA10: .4byte 0x518F264D -_0208BA14: .4byte 0x3FD55555 -_0208BA18: .4byte 0xDB6FABFF -_0208BA1C: .4byte 0x3FDB6DB6 -_0208BA20: .4byte 0x33333303 -_0208BA24: .4byte 0x3FE33333 -_0208BA28: .4byte 0x40080000 -_0208BA2C: .4byte 0x3FEEC709 -_0208BA30: .4byte 0x145B01F5 -_0208BA34: .4byte 0xBE3E2FE0 -_0208BA38: .4byte 0xDC3A03FD -_0208BA3C: .4byte 0x020AEEE0 -_0208BA40: .4byte 0x020AEEC0 -_0208BA44: .4byte 0x40900000 -_0208BA48: .4byte 0x8800759C -_0208BA4C: .4byte 0x7E37E43C -_0208BA50: .4byte 0x3C971547 -_0208BA54: .4byte 0x3F6F3400 -_0208BA58: .4byte 0xC2F8F359 -_0208BA5C: .4byte 0x01A56E1F -_0208BA60: .4byte 0x3FE62E43 -_0208BA64: .4byte 0xFEFA39EF -_0208BA68: .4byte 0x3FE62E42 -_0208BA6C: .4byte 0x0CA86C39 -_0208BA70: .4byte 0xBE205C61 -_0208BA74: .4byte 0x72BEA4D0 -_0208BA78: .4byte 0x3E663769 -_0208BA7C: .4byte 0xC5D26BF1 -_0208BA80: .4byte 0xBEBBBD41 -_0208BA84: .4byte 0xAF25DE2C -_0208BA88: .4byte 0x3F11566A -_0208BA8C: .4byte 0x16BEBD93 -_0208BA90: .4byte 0xBF66C16C -_0208BA94: .4byte 0x5555553E -_0208BA98: .4byte 0x3FC55555 -_0208BA9C: - cmp r4, #0x100000 - mov r6, #0 - bge _0208BACC - ldr r0, [sp, #0x70] - ldr r1, [sp, #0x74] - mov r2, r6 - add r3, r3, #0x1600000 - bl FUN_0208e3ec - mov r4, r1 - str r0, [sp, #0x70] - str r4, [sp, #0x74] - sub r6, r6, #0x35 -_0208BACC: - ldr r0, _0208B9BC @ =0xFFFFFC01 - ldr r1, _0208B9EC @ =0x0003988E - and r2, r4, r0, lsr #12 - add r0, r0, r4, asr #20 - orr sb, r2, #0xff00000 - cmp r2, r1 - add r6, r6, r0 - orr sb, sb, #0x30000000 - movle r8, #0 - ble _0208BB0C - ldr r0, _0208B9F0 @ =0x000BB67A - cmp r2, r0 - movlt r8, #1 - addge r6, r6, #1 - subge sb, sb, #0x100000 - movge r8, #0 -_0208BB0C: - ldr r2, _0208B9F4 @ =0x020AEED0 - ldr r0, [sp, #0x70] - add r1, r2, r8, lsl #3 - ldr r3, [r1, #4] - ldr r2, [r2, r8, lsl #3] - mov r1, sb - str sb, [sp, #0x74] - bl FUN_0208e904 - ldr r2, _0208B9F4 @ =0x020AEED0 - mov sl, r0 - add r3, r2, r8, lsl #3 - mov r4, r1 - ldr r0, [sp, #0x70] - ldr r2, [r2, r8, lsl #3] - ldr r3, [r3, #4] - mov r1, sb - bl FUN_0208dec8 - mov r3, r1 - mov r2, r0 - ldr r1, _0208B9B0 @ =0x3FF00000 - mov r0, #0 - bl FUN_020902ac - str r1, [sp, #0x24] - mov fp, r0 - ldr r3, [sp, #0x24] - mov r0, sl - mov r1, r4 - mov r2, fp - bl FUN_0208e3ec - asr r2, sb, #1 - orr r2, r2, #0x20000000 - mov sb, r1 - add r2, r2, #0x80000 - add r1, r2, r8, lsl #18 - ldr r2, _0208B9F4 @ =0x020AEED0 - str r0, [sp, #0x28] - add r3, r2, r8, lsl #3 - mov r0, #0 - ldr r2, [r2, r8, lsl #3] - ldr r3, [r3, #4] - str sb, [sp, #0x4c] - str r1, [sp, #0x44] - str r0, [sp, #0x48] - str r0, [sp, #0x40] - bl FUN_0208e904 - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x70] - ldr r1, [sp, #0x74] - bl FUN_0208e904 - str r0, [sp, #0x2c] - str r1, [sp, #0x1c] - ldr r0, [sp, #0x48] - ldr r2, [sp, #0x40] - ldr r3, [sp, #0x44] - mov r1, sb - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - mov r0, sl - mov r1, r4 - bl FUN_0208e904 - mov sl, r0 - mov r4, r1 - ldr r2, [sp, #0x2c] - ldr r3, [sp, #0x1c] - ldr r0, [sp, #0x48] - mov r1, sb - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - mov r0, sl - mov r1, r4 - bl FUN_0208e904 - mov r3, r1 - mov r2, r0 - ldr r1, [sp, #0x24] - mov r0, fp - bl FUN_0208e3ec - str r0, [sp, #0x30] - ldr r0, [sp, #0x28] - str r1, [sp, #0x14] - mov r1, sb - mov r2, r0 - mov r3, sb - bl FUN_0208e3ec - mov r4, r0 - mov sl, r1 - mov r2, r4 - mov r3, sl - bl FUN_0208e3ec - str r0, [sp, #0x34] - mov fp, r1 - ldr r0, _0208B9F8 @ =0x4A454EEF - ldr r1, _0208B9FC @ =0x3FCA7E28 - mov r2, r4 - mov r3, sl - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - ldr r0, _0208BA00 @ =0x93C9DB65 - ldr r1, _0208BA04 @ =0x3FCD864A - bl FUN_0208dec8 - mov r2, r0 - mov r3, r1 - mov r0, r4 - mov r1, sl - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - ldr r0, _0208BA08 @ =0xA91D4101 - ldr r1, _0208BA0C @ =0x3FD17460 - bl FUN_0208dec8 - mov r2, r0 - mov r3, r1 - mov r0, r4 - mov r1, sl - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - ldr r0, _0208BA10 @ =0x518F264D - ldr r1, _0208BA14 @ =0x3FD55555 - bl FUN_0208dec8 - mov r2, r0 - mov r3, r1 - mov r0, r4 - mov r1, sl - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - ldr r0, _0208BA18 @ =0xDB6FABFF - ldr r1, _0208BA1C @ =0x3FDB6DB6 - bl FUN_0208dec8 - mov r2, r0 - mov r3, r1 - mov r0, r4 - mov r1, sl - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - ldr r0, _0208BA20 @ =0x33333303 - ldr r1, _0208BA24 @ =0x3FE33333 - bl FUN_0208dec8 - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x34] - mov r1, fp - bl FUN_0208e3ec - mov r4, r0 - mov sl, r1 - ldr r0, [sp, #0x48] - ldr r2, [sp, #0x28] - mov r1, sb - mov r3, sb - bl FUN_0208dec8 - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x30] - ldr r1, [sp, #0x14] - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - mov r0, r4 - mov r1, sl - bl FUN_0208dec8 - mov r4, r0 - ldr r0, [sp, #0x48] - mov sl, r1 - mov r1, sb - mov r2, r0 - mov r3, r1 - bl FUN_0208e3ec - str r1, [sp, #0xc] - mov fp, r0 - ldr r1, _0208BA28 @ =0x40080000 - ldr r3, [sp, #0xc] - mov r0, #0 - mov r2, fp - bl FUN_0208dec8 - mov r2, r4 - mov r3, sl - bl FUN_0208dec8 - mov r0, #0 - ldr r3, _0208BA28 @ =0x40080000 - mov r2, r0 - str r1, [sp, #0x44] - str r0, [sp, #0x40] - bl FUN_0208e904 - ldr r3, [sp, #0xc] - mov r2, fp - bl FUN_0208e904 - mov r2, r0 - mov r3, r1 - mov r0, r4 - mov r1, sl - bl FUN_0208e904 - str r0, [sp, #0x38] - str r1, [sp, #4] - ldr r0, [sp, #0x48] - ldr r2, [sp, #0x40] - ldr r3, [sp, #0x44] - mov r1, sb - bl FUN_0208e3ec - mov r4, r0 - mov sl, r1 - ldr r0, [sp, #0x30] - ldr r1, [sp, #0x14] - ldr r2, [sp, #0x40] - ldr r3, [sp, #0x44] - bl FUN_0208e3ec - str r0, [sp, #0x3c] - mov fp, r1 - ldr r0, [sp, #0x38] - ldr r1, [sp, #4] - ldr r2, [sp, #0x28] - mov r3, sb - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x3c] - mov r1, fp - bl FUN_0208dec8 - mov sb, r0 - mov fp, r1 - mov r0, r4 - mov r1, sl - mov r2, sb - mov r3, fp - bl FUN_0208dec8 - mov r0, #0 - mov r2, r4 - mov r3, sl - str r1, [sp, #0x6c] - str r0, [sp, #0x68] - bl FUN_0208e904 - mov r2, r0 - mov r3, r1 - mov r0, sb - mov r1, fp - bl FUN_0208e904 - mov sl, r1 - mov fp, r0 - ldr r1, _0208BA2C @ =0x3FEEC709 - ldr r2, [sp, #0x68] - ldr r3, [sp, #0x6c] - mov r0, #0xe0000000 - bl FUN_0208e3ec - mov r4, r0 - mov sb, r1 - ldr r0, _0208BA30 @ =0x145B01F5 - ldr r1, _0208BA34 @ =0xBE3E2FE0 - ldr r2, [sp, #0x68] - ldr r3, [sp, #0x6c] - bl FUN_0208e3ec - mov r2, fp - mov r3, sl - mov fp, r0 - mov sl, r1 - ldr r0, _0208BA38 @ =0xDC3A03FD - ldr r1, _0208BA2C @ =0x3FEEC709 - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - mov r0, fp - mov r1, sl - bl FUN_0208dec8 - mov r2, r0 - mov r3, r1 - ldr r0, _0208BA3C @ =0x020AEEE0 - add r1, r0, r8, lsl #3 - ldr r0, [r0, r8, lsl #3] - ldr r1, [r1, #4] - bl FUN_0208dec8 - mov fp, r0 - mov sl, r1 - mov r0, r6 - bl FUN_0208e370 - str r0, [sp, #0x50] - str r1, [sp, #0x54] - mov r0, r4 - mov r1, sb - mov r2, fp - mov r3, sl - bl FUN_0208dec8 - ldr r2, _0208BA40 @ =0x020AEEC0 - add r3, r2, r8, lsl #3 - ldr r2, [r2, r8, lsl #3] - ldr r3, [r3, #4] - bl FUN_0208dec8 - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x50] - ldr r1, [sp, #0x54] - bl FUN_0208dec8 - str r1, [sp, #0x5c] - mov r0, #0 - str r0, [sp, #0x58] - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x54] - bl FUN_0208e904 - ldr r2, _0208BA40 @ =0x020AEEC0 - add r3, r2, r8, lsl #3 - ldr r2, [r2, r8, lsl #3] - ldr r3, [r3, #4] - bl FUN_0208e904 - mov r2, r4 - mov r3, sb - bl FUN_0208e904 - mov r2, r0 - mov r0, fp - mov r3, r1 - mov r1, sl - bl FUN_0208e904 - mov r4, r0 - mov r8, r1 -_0208BFF8: - sub r0, r5, #1 - ldr r1, [sp, #0xb4] - orrs r0, r7, r0 - ldr r5, _0208B9B0 @ =0x3FF00000 - mov r2, #0 - ldr r0, [sp, #0xb0] - mov r3, r1 - mov r6, #0 - subeq r5, r5, #0x80000000 - str r1, [sp, #0x64] - str r2, [sp, #0x60] - bl FUN_0208e904 - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x58] - ldr r1, [sp, #0x5c] - bl FUN_0208e3ec - mov r7, r0 - mov sb, r1 - ldr r0, [sp, #0xb0] - ldr r1, [sp, #0xb4] - mov r2, r4 - mov r3, r8 - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - mov r0, r7 - mov r1, sb - bl FUN_0208dec8 - mov r7, r0 - mov r8, r1 - ldr r0, [sp, #0x60] - ldr r1, [sp, #0x64] - ldr r2, [sp, #0x58] - ldr r3, [sp, #0x5c] - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - mov r0, r7 - mov r1, r8 - str r2, [sp, #0x68] - str r3, [sp, #0x6c] - bl FUN_0208dec8 - mov sb, r1 - ldr r2, _0208BA44 @ =0x40900000 - str r0, [sp, #0x78] - str sb, [sp, #0x7c] - cmp sb, r2 - blt _0208C184 - add r1, sb, #0xf700000 - add r1, r1, #0xb0000000 - orrs r0, r1, r0 - beq _0208C104 - ldr r0, _0208BA48 @ =0x8800759C - ldr r1, _0208BA4C @ =0x7E37E43C - mov r2, r6 - mov r3, r5 - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - ldr r0, _0208BA48 @ =0x8800759C - ldr r1, _0208BA4C @ =0x7E37E43C - bl FUN_0208e3ec - add sp, sp, #0x80 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_0208C104: - ldr r0, _0208B9E8 @ =0x652B82FE - ldr r1, _0208BA50 @ =0x3C971547 - mov r2, r7 - mov r3, r8 - bl FUN_0208dec8 - mov r4, r0 - mov sl, r1 - ldr r0, [sp, #0x78] - ldr r2, [sp, #0x68] - ldr r3, [sp, #0x6c] - mov r1, sb - bl FUN_0208e904 - mov r2, r0 - mov r3, r1 - mov r0, r4 - mov r1, sl - bl FUN_0208eedc - bls _0208C238 - ldr r0, _0208BA48 @ =0x8800759C - ldr r1, _0208BA4C @ =0x7E37E43C - mov r2, r6 - mov r3, r5 - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - ldr r0, _0208BA48 @ =0x8800759C - ldr r1, _0208BA4C @ =0x7E37E43C - bl FUN_0208e3ec - add sp, sp, #0x80 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_0208C184: - bic r3, sb, #0x80000000 - add r2, r2, #0xcc00 - cmp r3, r2 - blt _0208C238 - ldr r2, _0208BA54 @ =0x3F6F3400 - add r2, sb, r2 - orrs r2, r2, r0 - beq _0208C1DC - ldr r0, _0208BA58 @ =0xC2F8F359 - ldr r1, _0208BA5C @ =0x01A56E1F - mov r2, r6 - mov r3, r5 - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - ldr r0, _0208BA58 @ =0xC2F8F359 - ldr r1, _0208BA5C @ =0x01A56E1F - bl FUN_0208e3ec - add sp, sp, #0x80 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_0208C1DC: - ldr r2, [sp, #0x68] - ldr r3, [sp, #0x6c] - bl FUN_0208e904 - mov r2, r0 - mov r3, r1 - mov r0, r7 - mov r1, r8 - bl FUN_0208ef74 - bhi _0208C238 - ldr r0, _0208BA58 @ =0xC2F8F359 - ldr r1, _0208BA5C @ =0x01A56E1F - mov r2, r6 - mov r3, r5 - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - ldr r0, _0208BA58 @ =0xC2F8F359 - ldr r1, _0208BA5C @ =0x01A56E1F - bl FUN_0208e3ec - add sp, sp, #0x80 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr -_0208C238: - ldr r0, _0208B9BC @ =0xFFFFFC01 - bic r3, sb, #0x80000000 - ldr r1, _0208B9C0 @ =0x3FE00000 - add r2, r0, r3, asr #20 - cmp r3, r1 - mov r4, #0 - ble _0208C2B4 - mov r1, #0x100000 - add r2, r2, #1 - add r2, sb, r1, asr r2 - bic r3, r2, #0x80000000 - add r0, r0, r3, asr #20 - sub r3, r1, #1 - mvn r3, r3, asr r0 - sub r1, r1, #1 - and r1, r2, r1 - and r2, r2, r3 - str r2, [sp, #0x54] - str r4, [sp, #0x50] - orr r1, r1, #0x100000 - rsb r0, r0, #0x14 - asr r4, r1, r0 - cmp sb, #0 - ldr r0, [sp, #0x68] - ldr r1, [sp, #0x6c] - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x54] - rsblt r4, r4, #0 - bl FUN_0208e904 - str r0, [sp, #0x68] - str r1, [sp, #0x6c] -_0208C2B4: - ldr r2, [sp, #0x68] - ldr r3, [sp, #0x6c] - mov r0, r7 - mov r1, r8 - bl FUN_0208dec8 - mov r3, r1 - mov r0, #0 - ldr r1, _0208BA60 @ =0x3FE62E43 - mov r2, r0 - str r3, [sp, #0x54] - str r0, [sp, #0x50] - bl FUN_0208e3ec - mov sb, r0 - mov sl, r1 - ldr r0, [sp, #0x50] - ldr r1, [sp, #0x54] - ldr r2, [sp, #0x68] - ldr r3, [sp, #0x6c] - bl FUN_0208e904 - mov r2, r0 - mov r0, r7 - mov r3, r1 - mov r1, r8 - bl FUN_0208e904 - mov r2, r0 - mov r3, r1 - ldr r0, _0208BA64 @ =0xFEFA39EF - ldr r1, _0208BA68 @ =0x3FE62E42 - bl FUN_0208e3ec - mov r7, r0 - mov r8, r1 - ldr r0, _0208BA6C @ =0x0CA86C39 - ldr r1, _0208BA70 @ =0xBE205C61 - ldr r2, [sp, #0x50] - ldr r3, [sp, #0x54] - bl FUN_0208e3ec - mov r2, r0 - mov r0, r7 - mov r3, r1 - mov r1, r8 - bl FUN_0208dec8 - mov r7, r0 - mov r8, r1 - mov r0, sb - mov r1, sl - mov r2, r7 - mov r3, r8 - bl FUN_0208dec8 - mov r2, sb - mov r3, sl - str r0, [sp, #0x78] - str r1, [sp, #0x7c] - bl FUN_0208e904 - mov r2, r0 - mov r3, r1 - mov r0, r7 - mov r1, r8 - bl FUN_0208e904 - mov r8, r0 - mov sb, r1 - ldr r0, [sp, #0x78] - ldr r1, [sp, #0x7c] - mov r2, r0 - mov r3, r1 - bl FUN_0208e3ec - mov r2, r0 - str r2, [sp, #0x50] - mov r3, r1 - str r3, [sp, #0x54] - ldr r0, _0208BA74 @ =0x72BEA4D0 - ldr r1, _0208BA78 @ =0x3E663769 - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - ldr r0, _0208BA7C @ =0xC5D26BF1 - ldr r1, _0208BA80 @ =0xBEBBBD41 - bl FUN_0208dec8 - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x50] - ldr r1, [sp, #0x54] - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - ldr r0, _0208BA84 @ =0xAF25DE2C - ldr r1, _0208BA88 @ =0x3F11566A - bl FUN_0208dec8 - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x50] - ldr r1, [sp, #0x54] - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - ldr r0, _0208BA8C @ =0x16BEBD93 - ldr r1, _0208BA90 @ =0xBF66C16C - bl FUN_0208dec8 - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x50] - ldr r1, [sp, #0x54] - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - ldr r0, _0208BA94 @ =0x5555553E - ldr r1, _0208BA98 @ =0x3FC55555 - bl FUN_0208dec8 - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x50] - ldr r1, [sp, #0x54] - bl FUN_0208e3ec - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #0x78] - ldr r1, [sp, #0x7c] - bl FUN_0208e904 - mov r2, r0 - str r2, [sp, #0x58] - mov r3, r1 - str r3, [sp, #0x5c] - ldr r0, [sp, #0x78] - ldr r1, [sp, #0x7c] - bl FUN_0208e3ec - mov r7, r0 - mov sl, r1 - ldr r0, [sp, #0x58] - ldr r1, [sp, #0x5c] - mov r2, #0 - mov r3, #0x40000000 - bl FUN_0208e904 - mov r2, r0 - mov r0, r7 - mov r3, r1 - mov r1, sl - bl FUN_020902ac - mov r7, r0 - mov sl, r1 - ldr r0, [sp, #0x78] - ldr r1, [sp, #0x7c] - mov r2, r8 - mov r3, sb - bl FUN_0208e3ec - mov r2, r0 - mov r0, r8 - mov r3, r1 - mov r1, sb - bl FUN_0208dec8 - mov r2, r0 - mov r0, r7 - mov r3, r1 - mov r1, sl - bl FUN_0208e904 - ldr r2, [sp, #0x78] - ldr r3, [sp, #0x7c] - bl FUN_0208e904 - mov r3, r1 - mov r2, r0 - ldr r1, _0208B9B0 @ =0x3FF00000 - mov r0, #0 - bl FUN_0208e904 - add r3, r1, r4, lsl #20 - asr r2, r3, #0x14 - str r0, [sp, #0x78] - cmp r2, #0 - str r1, [sp, #0x7c] - addgt r0, sp, #0x78 - strgt r3, [r0, #4] - bgt _0208C568 - mov r2, r4 - bl FUN_0208de1c - str r0, [sp, #0x78] - str r1, [sp, #0x7c] -_0208C568: - ldr r2, [sp, #0x78] - ldr r3, [sp, #0x7c] - mov r0, r6 - mov r1, r5 - bl FUN_0208e3ec - add sp, sp, #0x80 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - add sp, sp, #0x10 - bx lr - arm_func_end FUN_0208b404 - - arm_func_start FUN_0208c58c -FUN_0208c58c: @ 0x0208C58C - push {r0, r1, r2, r3} - ldr r1, [sp, #4] - ldr r0, [sp, #0xc] - bic r1, r1, #0x80000000 - and r0, r0, #0x80000000 - orr r1, r1, r0 - ldr r0, [sp] - str r1, [sp, #4] - add sp, sp, #0x10 - bx lr - arm_func_end FUN_0208c58c - - arm_func_start FUN_0208c5b4 -FUN_0208c5b4: @ 0x0208C5B4 - push {r0, r1, r2, r3} - add r2, sp, #0 - ldr r1, [r2, #4] - ldr r0, [sp] - bic r1, r1, #0x80000000 - str r1, [r2, #4] - add sp, sp, #0x10 - bx lr - arm_func_end FUN_0208c5b4 - - arm_func_start FUN_0208c5d4 -FUN_0208c5d4: @ 0x0208C5D4 - push {r0, r1, r2, r3} - push {r4, lr} - ldr r1, [sp, #0xc] - ldr r0, _0208C680 @ =0x7FF00000 - mov r4, r2 - bic r3, r1, #0x80000000 - mov r2, #0 - str r2, [r4] - cmp r3, r0 - ldr r0, [sp, #8] - bge _0208C608 - orrs r0, r3, r0 - bne _0208C61C -_0208C608: - ldr r0, [sp, #8] - ldr r1, [sp, #0xc] - pop {r4, lr} - add sp, sp, #0x10 - bx lr -_0208C61C: - cmp r3, #0x100000 - bge _0208C648 - ldr r0, [sp, #8] - ldr r1, [sp, #0xc] - ldr r3, _0208C684 @ =0x43500000 - bl FUN_0208e3ec - mvn r2, #0x35 - str r0, [sp, #8] - str r1, [sp, #0xc] - str r2, [r4] - bic r3, r1, #0x80000000 -_0208C648: - ldr r2, _0208C688 @ =0x800FFFFF - ldr r0, _0208C68C @ =0xFFFFFC02 - and r1, r1, r2 - orr r1, r1, #0xfe00000 - orr r1, r1, #0x30000000 - ldr r2, [r4] - add r0, r0, r3, asr #20 - add r2, r2, r0 - ldr r0, [sp, #8] - str r2, [r4] - str r1, [sp, #0xc] - pop {r4, lr} - add sp, sp, #0x10 - bx lr - .align 2, 0 -_0208C680: .4byte 0x7FF00000 -_0208C684: .4byte 0x43500000 -_0208C688: .4byte 0x800FFFFF -_0208C68C: .4byte 0xFFFFFC02 - arm_func_end FUN_0208c5d4 - - arm_func_start FUN_0208c690 -FUN_0208c690: @ 0x0208C690 - push {r0, r1, r2, r3} - push {r4, lr} - ldr r0, [sp, #8] - ldr r1, [sp, #0xc] - mov r4, r2 - bl FUN_0208ddac - cmp r0, #2 - ble _0208C6C8 - mov r0, #0 - ldr r2, [sp, #8] - ldr r3, [sp, #0xc] - mov r1, r0 - bl FUN_0208f0b4 - bne _0208C6DC -_0208C6C8: - ldr r0, [sp, #8] - ldr r1, [sp, #0xc] - pop {r4, lr} - add sp, sp, #0x10 - bx lr -_0208C6DC: - ldr r3, [sp, #0xc] - ldr r0, _0208C8B0 @ =0x7FF00000 - ldr r1, [sp, #8] - and r0, r3, r0 - asrs ip, r0, #0x14 - bne _0208C768 - bic r0, r3, #0x80000000 - orrs r0, r1, r0 - ldreq r0, [sp, #8] - ldreq r1, [sp, #0xc] - popeq {r4, lr} - addeq sp, sp, #0x10 - bxeq lr - ldr r0, [sp, #8] - ldr r1, [sp, #0xc] - ldr r3, _0208C8B4 @ =0x43500000 - mov r2, #0 - bl FUN_0208e3ec - mov r3, r1 - ldr r1, _0208C8B0 @ =0x7FF00000 - ldr ip, _0208C8B8 @ =0xFFFF3CB0 - and r1, r3, r1 - mov r2, r0 - asr r0, r1, #0x14 - str r2, [sp, #8] - str r3, [sp, #0xc] - cmp r4, ip - sub ip, r0, #0x36 - bge _0208C768 - ldr r0, _0208C8BC @ =0xC2F8F359 - ldr r1, _0208C8C0 @ =0x01A56E1F - bl FUN_0208e3ec - pop {r4, lr} - add sp, sp, #0x10 - bx lr -_0208C768: - ldr r0, _0208C8C4 @ =0x000007FF - cmp ip, r0 - bne _0208C794 - ldr r0, [sp, #8] - ldr r1, [sp, #0xc] - mov r2, r0 - mov r3, r1 - bl FUN_0208dec8 - pop {r4, lr} - add sp, sp, #0x10 - bx lr -_0208C794: - add r2, ip, r4 - sub r0, r0, #1 - cmp r2, r0 - ble _0208C7D8 - ldr r2, [sp, #8] - ldr r3, [sp, #0xc] - ldr r0, _0208C8C8 @ =0x8800759C - ldr r1, _0208C8CC @ =0x7E37E43C - bl FUN_0208c58c - mov r2, r0 - mov r3, r1 - ldr r0, _0208C8C8 @ =0x8800759C - ldr r1, _0208C8CC @ =0x7E37E43C - bl FUN_0208e3ec - pop {r4, lr} - add sp, sp, #0x10 - bx lr -_0208C7D8: - cmp r2, #0 - ble _0208C800 - ldr r1, _0208C8D0 @ =0x800FFFFF - ldr r0, [sp, #8] - and r1, r3, r1 - orr r1, r1, r2, lsl #20 - str r1, [sp, #0xc] - pop {r4, lr} - add sp, sp, #0x10 - bx lr -_0208C800: - mvn r0, #0x35 - cmp r2, r0 - bgt _0208C880 - ldr r0, _0208C8D4 @ =0x0000C350 - cmp r4, r0 - ble _0208C84C - ldr r2, [sp, #8] - ldr r3, [sp, #0xc] - ldr r0, _0208C8C8 @ =0x8800759C - ldr r1, _0208C8CC @ =0x7E37E43C - bl FUN_0208c58c - mov r2, r0 - mov r3, r1 - ldr r0, _0208C8C8 @ =0x8800759C - ldr r1, _0208C8CC @ =0x7E37E43C - bl FUN_0208e3ec - pop {r4, lr} - add sp, sp, #0x10 - bx lr -_0208C84C: - ldr r2, [sp, #8] - ldr r3, [sp, #0xc] - ldr r0, _0208C8BC @ =0xC2F8F359 - ldr r1, _0208C8C0 @ =0x01A56E1F - bl FUN_0208c58c - mov r2, r0 - mov r3, r1 - ldr r0, _0208C8BC @ =0xC2F8F359 - ldr r1, _0208C8C0 @ =0x01A56E1F - bl FUN_0208e3ec - pop {r4, lr} - add sp, sp, #0x10 - bx lr -_0208C880: - ldr r0, _0208C8D0 @ =0x800FFFFF - add r1, r2, #0x36 - and r0, r3, r0 - orr r3, r0, r1, lsl #20 - ldr r2, [sp, #8] - ldr r1, _0208C8D8 @ =0x3C900000 - mov r0, #0 - str r3, [sp, #0xc] - bl FUN_0208e3ec - pop {r4, lr} - add sp, sp, #0x10 - bx lr - .align 2, 0 -_0208C8B0: .4byte 0x7FF00000 -_0208C8B4: .4byte 0x43500000 -_0208C8B8: .4byte 0xFFFF3CB0 -_0208C8BC: .4byte 0xC2F8F359 -_0208C8C0: .4byte 0x01A56E1F -_0208C8C4: .4byte 0x000007FF -_0208C8C8: .4byte 0x8800759C -_0208C8CC: .4byte 0x7E37E43C -_0208C8D0: .4byte 0x800FFFFF -_0208C8D4: .4byte 0x0000C350 -_0208C8D8: .4byte 0x3C900000 - arm_func_end FUN_0208c690 - - arm_func_start thunk_FUN_0208b404 -thunk_FUN_0208b404: @ 0x0208C8DC - ldr ip, _0208C8E4 @ =FUN_0208b404 - bx ip - .align 2, 0 -_0208C8E4: .4byte FUN_0208b404 - arm_func_end thunk_FUN_0208b404 - - arm_func_start FUN_0208c8e8 -FUN_0208c8e8: @ 0x0208C8E8 - add r3, r0, #5 - ldrb r2, [r3, r1] - add ip, r3, r1 - cmp r2, #5 - movhi r0, #1 - bxhi lr - mvnlo r0, #0 - bxlo lr - ldrb r2, [r0, #4] - add ip, ip, #1 - add r3, r3, r2 - cmp ip, r3 - bhs _0208C938 -_0208C91C: - ldrb r2, [ip] - cmp r2, #0 - movne r0, #1 - bxne lr - add ip, ip, #1 - cmp ip, r3 - blo _0208C91C -_0208C938: - sub r1, r1, #1 - add r0, r0, r1 - ldrb r0, [r0, #5] - tst r0, #1 - movne r0, #1 - mvneq r0, #0 - bx lr - arm_func_end FUN_0208c8e8 - - arm_func_start FUN_0208c954 -FUN_0208c954: @ 0x0208C954 - add r3, r0, #5 - add r1, r3, r1 - sub ip, r1, #1 - mov r1, #0 -_0208C964: - ldrb r2, [ip] - cmp r2, #9 - addlo r0, r2, #1 - strblo r0, [ip] - bxlo lr - cmp ip, r3 - bne _0208C998 - mov r1, #1 - strb r1, [ip] - ldrsh r1, [r0, #2] - add r1, r1, #1 - strh r1, [r0, #2] - bx lr -_0208C998: - strb r1, [ip], #-1 - b _0208C964 - arm_func_end FUN_0208c954 -_0208C9A0: - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0208c9a4 -FUN_0208c9a4: @ 0x0208C9A4 - push {r3, r4, r5, lr} - mov r4, r1 - mov r5, r0 - cmp r4, #0 - pople {r3, r4, r5, pc} - ldrb r2, [r5, #4] - cmp r4, r2 - popge {r3, r4, r5, pc} - bl FUN_0208c8e8 - strb r4, [r5, #4] - cmp r0, #0 - poplt {r3, r4, r5, pc} - mov r0, r5 - mov r1, r4 - bl FUN_0208c954 - pop {r3, r4, r5, pc} - arm_func_end FUN_0208c9a4 - - arm_func_start FUN_0208c9e4 -FUN_0208c9e4: @ 0x0208C9E4 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - mov sl, r0 - mov r0, #0 - mov r8, r2 - strb r0, [sl] - mov sb, r1 - cmp r8, #0 - strb r0, [sl, #4] - cmpeq sb, #0 - beq _0208CA70 - mov r6, #0xa - mov fp, r0 - mov r5, r0 - mov r4, r0 -_0208CA1C: - ldrb r1, [sl, #4] - mov r0, sb - mov r2, r6 - add r3, r1, #1 - mov r7, r1 - strb r3, [sl, #4] - mov r1, r8 - mov r3, fp - bl FUN_0208fe48 - add r1, sl, r7 - strb r0, [r1, #5] - mov r0, sb - mov r1, r8 - mov r2, #0xa + bl ov00_022EC1C0 + ldr r1, [r0, #0x1e0] + ldr r0, [r0, #0x1e4] + subs r3, r4, r1 + sbc r0, r5, r0 + lsl r1, r0, #6 + ldr r2, _022EAAB0 @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 mov r3, #0 - bl FUN_0208fe3c - mov r8, r1 - mov sb, r0 - cmp r8, r5 - cmpeq sb, r4 - bne _0208CA1C -_0208CA70: - ldrb r0, [sl, #4] - add r2, sl, #5 - add r0, r2, r0 - sub r3, r0, #1 - cmp r2, r3 - bhs _0208CAA0 -_0208CA88: - ldrb r0, [r3] - ldrb r1, [r2] - strb r0, [r2], #1 - strb r1, [r3], #-1 - cmp r2, r3 - blo _0208CA88 -_0208CAA0: - ldrb r0, [sl, #4] - sub r0, r0, #1 - strh r0, [sl, #2] - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_end FUN_0208c9e4 - - arm_func_start FUN_0208cab0 -FUN_0208cab0: @ 0x0208CAB0 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x40 - ldrb r6, [r1, #4] - ldrb r5, [r2, #4] - mov r4, #0 - add r3, sp, #0 - add r5, r6, r5 - sub r5, r5, #1 - add r3, r3, r5 - add r6, r3, #1 - mov r7, r6 - strb r4, [r0] - cmp r5, #0 - ble _0208CB78 - add lr, r1, #5 - add fp, r2, #5 -_0208CAF0: - ldrb r3, [r2, #4] - sub sl, r3, #1 - sub r3, r5, sl - subs sb, r3, #1 - ldrb r3, [r1, #4] - movmi sb, #0 - submi sl, r5, #1 - add r8, sl, #1 - sub r3, r3, sb - cmp r8, r3 - movgt r8, r3 - add sl, fp, sl - add sb, lr, sb - cmp r8, #0 - ble _0208CB44 -_0208CB2C: - ldrb ip, [sb], #1 - ldrb r3, [sl], #-1 - sub r8, r8, #1 - cmp r8, #0 - mla r4, ip, r3, r4 - bgt _0208CB2C -_0208CB44: - ldr r3, _0208CC30 @ =0xCCCCCCCD - sub r5, r5, #1 - umull r8, sb, r4, r3 - lsr sb, sb, #3 - cmp r5, #0 - mov sl, #0xa - umull r8, sb, sl, sb - sub sb, r4, r8 - strb sb, [r6, #-1]! - mov r8, r4 - umull r3, r4, r8, r3 - lsr r4, r4, #3 - bgt _0208CAF0 -_0208CB78: - ldrsh r3, [r1, #2] - ldrsh r1, [r2, #2] - cmp r4, #0 - add r1, r3, r1 - strh r1, [r0, #2] - beq _0208CBA0 - strb r4, [r6, #-1]! - ldrsh r1, [r0, #2] - add r1, r1, #1 - strh r1, [r0, #2] -_0208CBA0: - mov r3, #0 - b _0208CBB8 -_0208CBA8: - ldrb r2, [r6], #1 - add r1, r0, r3 - add r3, r3, #1 - strb r2, [r1, #5] -_0208CBB8: - cmp r3, #0x20 - bge _0208CBC8 - cmp r6, r7 - blo _0208CBA8 -_0208CBC8: - cmp r6, r7 - addhs sp, sp, #0x40 - strb r3, [r0, #4] - pophs {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - ldrb r1, [r6] - cmp r1, #5 - addlo sp, sp, #0x40 - poplo {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - bne _0208CC20 - add r2, r6, #1 - cmp r2, r7 - bhs _0208CC10 -_0208CBF8: - ldrb r1, [r2] - cmp r1, #0 - bne _0208CC20 - add r2, r2, #1 - cmp r2, r7 - blo _0208CBF8 -_0208CC10: - ldrb r1, [r6, #-1] - tst r1, #1 - addeq sp, sp, #0x40 - popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0208CC20: - ldrb r1, [r0, #4] - bl FUN_0208c954 - add sp, sp, #0x40 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0208CC30: .4byte 0xCCCCCCCD - arm_func_end FUN_0208cab0 - - arm_func_start FUN_0208cc34 -FUN_0208cc34: @ 0x0208CC34 - push {r3, lr} - strh r2, [r0, #2] - mov ip, #0 - strb ip, [r0] - b _0208CC5C -_0208CC48: - ldrsb r3, [r1], #1 - add r2, r0, ip - add ip, ip, #1 - sub r3, r3, #0x30 - strb r3, [r2, #5] -_0208CC5C: - cmp ip, #0x20 - bge _0208CC70 - ldrsb r2, [r1] - cmp r2, #0 - bne _0208CC48 -_0208CC70: - strb ip, [r0, #4] - ldrsb r2, [r1] - cmp r2, #0 - popeq {r3, pc} - cmp r2, #5 - poplt {r3, pc} - bgt _0208CCC4 - ldrsb r2, [r1, #1] - add r1, r1, #1 - cmp r2, #0 - beq _0208CCB0 -_0208CC9C: - cmp r2, #0x30 - bne _0208CCC4 - ldrsb r2, [r1, #1]! - cmp r2, #0 - bne _0208CC9C -_0208CCB0: - sub r1, ip, #1 - add r1, r0, r1 - ldrb r1, [r1, #5] - tst r1, #1 - popeq {r3, pc} -_0208CCC4: - ldrb r1, [r0, #4] - bl FUN_0208c954 - pop {r3, pc} - arm_func_end FUN_0208cc34 - - arm_func_start FUN_0208ccd0 -FUN_0208ccd0: @ 0x0208CCD0 - push {r4, r5, lr} - sub sp, sp, #0x4c - mov r4, r1 - mvn r2, #0x34 - mov r5, r0 - cmp r4, r2 - bgt _0208CD00 - bge _0208CDCC - sub r0, r2, #0xb - cmp r4, r0 - beq _0208CDB4 - b _0208CF5C -_0208CD00: - add r1, r4, #0x20 - cmp r1, #0x28 - addls pc, pc, r1, lsl #2 - b _0208CF5C -_0208CD10: @ jump table - b _0208CDE0 @ case 0 - b _0208CF5C @ case 1 - b _0208CF5C @ case 2 - b _0208CF5C @ case 3 - b _0208CF5C @ case 4 - b _0208CF5C @ case 5 - b _0208CF5C @ case 6 - b _0208CF5C @ case 7 - b _0208CF5C @ case 8 - b _0208CF5C @ case 9 - b _0208CF5C @ case 10 - b _0208CF5C @ case 11 - b _0208CF5C @ case 12 - b _0208CF5C @ case 13 - b _0208CF5C @ case 14 - b _0208CF5C @ case 15 - b _0208CDF4 @ case 16 - b _0208CF5C @ case 17 - b _0208CF5C @ case 18 - b _0208CF5C @ case 19 - b _0208CF5C @ case 20 - b _0208CF5C @ case 21 - b _0208CF5C @ case 22 - b _0208CF5C @ case 23 - b _0208CE08 @ case 24 - b _0208CE1C @ case 25 - b _0208CE30 @ case 26 - b _0208CE44 @ case 27 - b _0208CE58 @ case 28 - b _0208CE6C @ case 29 - b _0208CE80 @ case 30 - b _0208CE94 @ case 31 - b _0208CEA8 @ case 32 - b _0208CEBC @ case 33 - b _0208CED0 @ case 34 - b _0208CEE4 @ case 35 - b _0208CEF8 @ case 36 - b _0208CF0C @ case 37 - b _0208CF20 @ case 38 - b _0208CF34 @ case 39 - b _0208CF48 @ case 40 -_0208CDB4: - ldr r1, _0208D000 @ =0x020B3268 - mov r0, r5 - mvn r2, #0x13 - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CDCC: - ldr r1, _0208D004 @ =0x020B3298 - add r2, r2, #0x25 - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CDE0: - ldr r1, _0208D008 @ =0x020B32C0 - add r2, r2, #0x2b - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CDF4: - ldr r1, _0208D00C @ =0x020B32D8 - add r2, r2, #0x30 - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CE08: - ldr r1, _0208D010 @ =0x020B32E8 - add r2, r2, #0x32 - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CE1C: - ldr r1, _0208D014 @ =0x020B32F0 - add r2, r2, #0x32 - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CE30: - ldr r1, _0208D018 @ =0x020B32F8 - add r2, r2, #0x33 - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CE44: - ldr r1, _0208D01C @ =0x020B3300 - add r2, r2, #0x33 - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CE58: - ldr r1, _0208D020 @ =0x020B3308 - add r2, r2, #0x33 - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CE6C: - ldr r1, _0208D024 @ =0x020B330C - add r2, r2, #0x34 - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CE80: - ldr r1, _0208D028 @ =0x020B3310 - add r2, r2, #0x34 - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CE94: - ldr r1, _0208D02C @ =0x020B3314 - add r2, r2, #0x34 - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CEA8: - ldr r1, _0208D030 @ =0x020B3318 - mov r2, #0 - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CEBC: - ldr r1, _0208D034 @ =0x020B331C - mov r2, #0 - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CED0: - ldr r1, _0208D038 @ =0x020B3320 - mov r2, #0 - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CEE4: - ldr r1, _0208D03C @ =0x020B3324 - mov r2, #0 - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CEF8: - ldr r1, _0208D040 @ =0x020B3328 - mov r2, #1 - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CF0C: - ldr r1, _0208D044 @ =0x020B332C - mov r2, #1 - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CF20: - ldr r1, _0208D048 @ =0x020B3330 - mov r2, #1 - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CF34: - ldr r1, _0208D04C @ =0x020B3334 - mov r2, #2 - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CF48: - ldr r1, _0208D050 @ =0x020B3338 - mov r2, #2 - bl FUN_0208cc34 - add sp, sp, #0x4c - pop {r4, r5, pc} -_0208CF5C: - and r0, r4, #0x80000000 - add r1, r4, r0, lsr #31 - add r0, sp, #0x26 - asr r1, r1, #1 - bl FUN_0208ccd0 - add r1, sp, #0x26 - mov r0, r5 - mov r2, r1 - bl FUN_0208cab0 - tst r4, #1 - addeq sp, sp, #0x4c - popeq {r4, r5, pc} - add r3, sp, #0 - mov ip, r5 - mov r2, #9 -_0208CF98: - ldrh r1, [ip] - ldrh r0, [ip, #2] - add ip, ip, #4 - subs r2, r2, #1 - strh r1, [r3] - strh r0, [r3, #2] - add r3, r3, #4 - bne _0208CF98 - ldrh r0, [ip] - cmp r4, #0 - strh r0, [r3] - add r0, sp, #0x26 - ble _0208CFDC - ldr r1, _0208D034 @ =0x020B331C - mov r2, #0 - bl FUN_0208cc34 - b _0208CFE8 -_0208CFDC: - ldr r1, _0208D02C @ =0x020B3314 - mvn r2, #0 - bl FUN_0208cc34 -_0208CFE8: - add r1, sp, #0 - add r2, sp, #0x26 - mov r0, r5 - bl FUN_0208cab0 - add sp, sp, #0x4c - pop {r4, r5, pc} - .align 2, 0 -_0208D000: .4byte 0x020B3268 -_0208D004: .4byte 0x020B3298 -_0208D008: .4byte 0x020B32C0 -_0208D00C: .4byte 0x020B32D8 -_0208D010: .4byte 0x020B32E8 -_0208D014: .4byte 0x020B32F0 -_0208D018: .4byte 0x020B32F8 -_0208D01C: .4byte 0x020B3300 -_0208D020: .4byte 0x020B3308 -_0208D024: .4byte 0x020B330C -_0208D028: .4byte 0x020B3310 -_0208D02C: .4byte 0x020B3314 -_0208D030: .4byte 0x020B3318 -_0208D034: .4byte 0x020B331C -_0208D038: .4byte 0x020B3320 -_0208D03C: .4byte 0x020B3324 -_0208D040: .4byte 0x020B3328 -_0208D044: .4byte 0x020B332C -_0208D048: .4byte 0x020B3330 -_0208D04C: .4byte 0x020B3334 -_0208D050: .4byte 0x020B3338 - arm_func_end FUN_0208ccd0 - - arm_func_start FUN_0208d054 -FUN_0208d054: @ 0x0208D054 - push {r4, lr} - ldrb r3, [r0, #5] - cmp r3, #0 - bne _0208D078 - ldrb r0, [r1, #5] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - pop {r4, pc} -_0208D078: - ldrb r2, [r1, #5] - cmp r2, #0 - bne _0208D094 - cmp r3, #0 - moveq r0, #1 - movne r0, #0 - pop {r4, pc} -_0208D094: - ldrsh r3, [r0, #2] - ldrsh r2, [r1, #2] - cmp r3, r2 - bne _0208D12C - ldrb r4, [r0, #4] - ldrb r2, [r1, #4] - mov ip, #0 - mov lr, r4 - cmp r4, r2 - movgt lr, r2 - cmp lr, #0 - ble _0208D0EC -_0208D0C4: - add r3, r0, ip - add r2, r1, ip - ldrb r3, [r3, #5] - ldrb r2, [r2, #5] - cmp r3, r2 - movne r0, #0 - popne {r4, pc} - add ip, ip, #1 - cmp ip, lr - blt _0208D0C4 -_0208D0EC: - cmp lr, r4 - moveq r0, r1 - ldrb r1, [r0, #4] - cmp ip, r1 - bge _0208D124 -_0208D100: - add r1, r0, ip - ldrb r1, [r1, #5] - cmp r1, #0 - movne r0, #0 - popne {r4, pc} - ldrb r1, [r0, #4] - add ip, ip, #1 - cmp ip, r1 - blt _0208D100 -_0208D124: + bl FUN_0208FE3C + mov r4, r0 + mov r5, r1 + b _022EA8C8 +_022EA8C0: mov r0, #1 - pop {r4, pc} -_0208D12C: - mov r0, #0 - pop {r4, pc} - arm_func_end FUN_0208d054 - - arm_func_start FUN_0208d134 -FUN_0208d134: @ 0x0208D134 - push {r3, r4, r5, lr} - ldrb r2, [r0, #5] - cmp r2, #0 - bne _0208D158 - ldrb r0, [r1, #5] - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - pop {r3, r4, r5, pc} -_0208D158: - ldrb r2, [r1, #5] - cmp r2, #0 - moveq r0, #0 - popeq {r3, r4, r5, pc} - ldrsh r3, [r1, #2] - ldrsh r2, [r0, #2] - cmp r2, r3 - bne _0208D208 - ldrb r5, [r0, #4] - ldrb r4, [r1, #4] - mov ip, #0 - mov lr, r5 - cmp r5, r4 - movgt lr, r4 - cmp lr, #0 - ble _0208D1CC -_0208D198: - add r3, r1, ip - add r2, r0, ip - ldrb r3, [r3, #5] - ldrb r2, [r2, #5] - cmp r2, r3 - movlo r0, #1 - poplo {r3, r4, r5, pc} - cmp r3, r2 - movlo r0, #0 - poplo {r3, r4, r5, pc} - add ip, ip, #1 - cmp ip, lr - blt _0208D198 -_0208D1CC: - cmp lr, r5 - bne _0208D200 - cmp ip, r4 - bge _0208D200 -_0208D1DC: - add r0, r1, ip - ldrb r0, [r0, #5] - cmp r0, #0 - movne r0, #1 - popne {r3, r4, r5, pc} - ldrb r0, [r1, #4] - add ip, ip, #1 - cmp ip, r0 - blt _0208D1DC -_0208D200: - mov r0, #0 - pop {r3, r4, r5, pc} -_0208D208: - movlt r0, #1 - movge r0, #0 - pop {r3, r4, r5, pc} - arm_func_end FUN_0208d134 - - arm_func_start FUN_0208d214 -FUN_0208d214: @ 0x0208D214 - push {r3, r4, r5, r6, r7, lr} - mov r6, r0 - mov r5, #9 -_0208D220: - ldrh r4, [r1] - ldrh r3, [r1, #2] - add r1, r1, #4 - subs r5, r5, #1 - strh r4, [r6] - strh r3, [r6, #2] - add r6, r6, #4 - bne _0208D220 - ldrh r1, [r1] - strh r1, [r6] - ldrb r1, [r2, #5] - cmp r1, #0 - popeq {r3, r4, r5, r6, r7, pc} - ldrb r7, [r0, #4] - ldrb r3, [r2, #4] - ldrsh r4, [r0, #2] - mov r1, r7 - cmp r7, r3 - movlt r1, r3 - ldrsh r3, [r2, #2] - sub r6, r4, r3 - add r1, r1, r6 - cmp r1, #0x20 - movgt r1, #0x20 - cmp r7, r1 - bge _0208D2AC - mov r4, #0 -_0208D28C: - ldrb r5, [r0, #4] - add r3, r0, r7 - add r5, r5, #1 - strb r5, [r0, #4] - strb r4, [r3, #5] - ldrb r7, [r0, #4] - cmp r7, r1 - blt _0208D28C -_0208D2AC: - ldrb r4, [r2, #4] - add r3, r0, #5 - add ip, r3, r1 - add r4, r4, r6 - cmp r4, r1 - addlt ip, r3, r4 - sub r4, ip, r3 - add r1, r2, #5 - sub r4, r4, r6 - add lr, r1, r4 - mov r4, lr - b _0208D340 -_0208D2DC: - ldrb r7, [ip, #-1]! - ldrb r5, [lr, #-1]! - cmp r7, r5 - bhs _0208D330 - ldrb r7, [ip, #-1] - sub r5, ip, #1 - cmp r7, #0 - bne _0208D308 -_0208D2FC: - ldrb r7, [r5, #-1]! - cmp r7, #0 - beq _0208D2FC -_0208D308: - cmp r5, ip - beq _0208D330 -_0208D310: - ldrb r7, [r5] - sub r7, r7, #1 - strb r7, [r5] - ldrb r7, [r5, #1]! - cmp r5, ip - add r7, r7, #0xa - strb r7, [r5] - bne _0208D310 -_0208D330: - ldrb r7, [ip] - ldrb r5, [lr] - sub r5, r7, r5 - strb r5, [ip] -_0208D340: - cmp ip, r3 - cmphi lr, r1 - bhi _0208D2DC - ldrb r5, [r2, #4] - sub lr, r4, r1 - cmp lr, r5 - bge _0208D41C - ldrb r1, [r4] - mov r7, #0 - cmp r1, #5 - movlo r7, #1 - blo _0208D3B8 - bne _0208D3B8 - add r1, r2, #5 - add r2, r1, r5 - add r4, r4, #1 - cmp r4, r2 - bhs _0208D3A0 -_0208D388: - ldrb r1, [r4] - cmp r1, #0 - bne _0208D41C - add r4, r4, #1 - cmp r4, r2 - blo _0208D388 -_0208D3A0: - add r1, r3, lr - add r2, r1, r6 - ldrb r1, [r2, #-1] - sub ip, r2, #1 - tst r1, #1 - movne r7, #1 -_0208D3B8: - cmp r7, #0 - beq _0208D41C - ldrb r1, [ip] - cmp r1, #1 - bhs _0208D410 - ldrb r1, [ip, #-1] - sub r2, ip, #1 - cmp r1, #0 - bne _0208D3E8 -_0208D3DC: - ldrb r1, [r2, #-1]! - cmp r1, #0 - beq _0208D3DC -_0208D3E8: - cmp r2, ip - beq _0208D410 -_0208D3F0: - ldrb r1, [r2] - sub r1, r1, #1 - strb r1, [r2] - ldrb r1, [r2, #1]! - cmp r2, ip - add r1, r1, #0xa - strb r1, [r2] - bne _0208D3F0 -_0208D410: - ldrb r1, [ip] - sub r1, r1, #1 - strb r1, [ip] -_0208D41C: - ldrb r1, [r3] - mov r5, r3 - cmp r1, #0 - bne _0208D438 -_0208D42C: - ldrb r1, [r5, #1]! - cmp r1, #0 - beq _0208D42C -_0208D438: - cmp r5, r3 - bls _0208D480 - ldrsh r1, [r0, #2] - sub r2, r5, r3 - and r4, r2, #0xff - sub r1, r1, r4 - strh r1, [r0, #2] - ldrb r1, [r0, #4] - add r2, r3, r1 - cmp r5, r2 - bhs _0208D474 -_0208D464: - ldrb r1, [r5], #1 - cmp r5, r2 - strb r1, [r3], #1 - blo _0208D464 -_0208D474: - ldrb r1, [r0, #4] - sub r1, r1, r4 - strb r1, [r0, #4] -_0208D480: - ldrb r1, [r0, #4] - add r2, r0, #5 - add r3, r2, r1 - cmp r3, r2 - bls _0208D4A8 -_0208D494: - ldrb r1, [r3, #-1]! - cmp r1, #0 - bne _0208D4A8 - cmp r3, r2 - bhi _0208D494 -_0208D4A8: - sub r1, r3, r2 - add r1, r1, #1 - strb r1, [r0, #4] pop {r3, r4, r5, r6, r7, pc} - arm_func_end FUN_0208d214 - - arm_func_start FUN_0208d4b8 -FUN_0208d4b8: @ 0x0208D4B8 - push {r4, r5, r6, r7, r8, lr} - sub sp, sp, #0x58 - mov r8, r1 - mov r6, r2 - mov r7, r0 - mov r0, r8 - mov r1, r6 - bl FUN_0208dd98 - cmp r0, #0 - movne r1, #1 - moveq r1, #0 - lsl r4, r1, #0x18 - mov r0, #0 - mov r1, r0 - mov r2, r8 - mov r3, r6 - asr r5, r4, #0x18 - bl FUN_0208f0b4 - bne _0208D524 - strb r5, [r7] - mov r1, #0 - strh r1, [r7, #2] - mov r0, #1 - strb r0, [r7, #4] - add sp, sp, #0x58 - strb r1, [r7, #5] - pop {r4, r5, r6, r7, r8, pc} -_0208D524: - mov r0, r8 - mov r1, r6 - bl FUN_0208ddac - cmp r0, #2 - bgt _0208D570 - strb r5, [r7] - mov r2, #0 - strh r2, [r7, #2] - mov r2, #1 - mov r0, r8 - mov r1, r6 - strb r2, [r7, #4] - bl FUN_0208ddac - cmp r0, #1 - moveq r0, #0x4e - movne r0, #0x49 - add sp, sp, #0x58 - strb r0, [r7, #5] - pop {r4, r5, r6, r7, r8, pc} -_0208D570: - cmp r5, #0 - beq _0208D594 - mov r0, #0 - mov r1, r0 - mov r2, r8 - mov r3, r6 - bl FUN_0208e904 - mov r8, r0 - mov r6, r1 -_0208D594: - add r2, sp, #8 - mov r0, r8 - mov r1, r6 - bl FUN_0208c5d4 - mov r4, r0 - mov r6, r1 - orr ip, r4, #0 - rsbs r2, ip, #0 - orr r3, r6, #0x100000 - rsc r1, r3, #0 - mov r0, #0 - and r3, r3, r1 - sub r1, r0, #1 - and ip, ip, r2 - mov r2, r1 - adds r0, ip, r1 - adc r1, r3, r2 - str r4, [sp] - str r6, [sp, #4] - bl FUN_0208dd04 - rsb r8, r0, #0x35 - ldr r1, [sp, #8] - add r0, sp, #0xc - sub r1, r1, r8 - bl FUN_0208ccd0 - mov r0, r4 - mov r1, r6 - mov r2, r8 - bl FUN_0208c690 - bl FUN_0208e2e4 - mov r2, r1 - mov r1, r0 - add r0, sp, #0x32 - bl FUN_0208c9e4 - mov r0, r7 - add r1, sp, #0x32 - add r2, sp, #0xc - bl FUN_0208cab0 - strb r5, [r7] - add sp, sp, #0x58 - pop {r4, r5, r6, r7, r8, pc} - arm_func_end FUN_0208d4b8 - - arm_func_start FUN_0208d638 -FUN_0208d638: @ 0x0208D638 - push {r3, r4, r5, lr} - mov r4, r3 - ldrsh r5, [r0, #2] - mov r0, r4 - bl FUN_0208d4b8 - ldrb r0, [r4, #5] +_022EA8C8: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] cmp r0, #9 - pophi {r3, r4, r5, pc} - cmp r5, #0x20 - movgt r5, #0x20 - mov r0, r4 - mov r1, r5 - bl FUN_0208c9a4 - ldrb r0, [r4, #4] - cmp r0, r5 - bge _0208D69C - mov r1, #0 -_0208D67C: - ldrb r2, [r4, #4] - add r0, r4, r0 - add r2, r2, #1 - strb r2, [r4, #4] - strb r1, [r0, #5] - ldrb r0, [r4, #4] - cmp r0, r5 - blt _0208D67C -_0208D69C: - ldrsh r1, [r4, #2] - sub r0, r0, #1 - mov r2, #0 - sub r0, r1, r0 - strh r0, [r4, #2] - ldrb r0, [r4, #4] - cmp r0, #0 - pople {r3, r4, r5, pc} -_0208D6BC: - add r1, r4, r2 - ldrb r0, [r1, #5] - add r2, r2, #1 - add r0, r0, #0x30 - strb r0, [r1, #5] - ldrb r0, [r4, #4] - cmp r2, r0 - blt _0208D6BC - pop {r3, r4, r5, pc} - arm_func_end FUN_0208d638 - - arm_func_start FUN_0208d6e0 -FUN_0208d6e0: @ 0x0208D6E0 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0xfc - mov r4, r0 - ldrb r0, [r4, #4] - cmp r0, #0 - bne _0208D720 - ldrsb r0, [r4] - mov r2, #0 - cmp r0, #0 - ldreq r3, _0208DCE4 @ =0x3FF00000 - mov r0, #0 - ldrne r3, _0208DCE8 @ =0xBFF00000 - mov r1, r0 - bl FUN_0208c58c - add sp, sp, #0xfc - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0208D720: - ldrb r0, [r4, #5] - cmp r0, #0x30 - beq _0208D740 - cmp r0, #0x49 - beq _0208D768 - cmp r0, #0x4e - beq _0208D79C - b _0208D7E4 -_0208D740: - ldrsb r0, [r4] - mov r2, #0 - cmp r0, #0 - ldreq r3, _0208DCE4 @ =0x3FF00000 - mov r0, #0 - ldrne r3, _0208DCE8 @ =0xBFF00000 - mov r1, r0 - bl FUN_0208c58c - add sp, sp, #0xfc - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0208D768: - ldrsb r0, [r4] - mov r5, #0 - cmp r0, #0 - ldreq r4, _0208DCE4 @ =0x3FF00000 - ldr r0, _0208DCEC @ =0x020B2FB8 - ldrne r4, _0208DCE8 @ =0xBFF00000 - ldr r0, [r0] - bl FloatToDouble - mov r2, r5 - mov r3, r4 - bl FUN_0208c58c - add sp, sp, #0xfc - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0208D79C: - ldr r1, _0208DCF0 @ =0x7FF00000 - add r3, sp, #0x10 - mov r2, #0 - str r2, [r3] - str r1, [r3, #4] - ldrsb r0, [r4] - cmp r0, #0 - beq _0208D7CC - orr r0, r1, #0x80000000 - orr r1, r2, r2 - str r1, [r3] - str r0, [r3, #4] -_0208D7CC: - ldm r3, {r0, r1} - orr r0, r0, #0 - orr r1, r1, #0x80000 - stm r3, {r0, r1} - add sp, sp, #0xfc - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0208D7E4: - add r3, sp, #0xd6 - mov r5, r4 - mov r2, #9 -_0208D7F0: - ldrh r1, [r5] - ldrh r0, [r5, #2] - add r5, r5, #4 - subs r2, r2, #1 - strh r1, [r3] - strh r0, [r3, #2] - add r3, r3, #4 - bne _0208D7F0 - ldrh r0, [r5] - add r1, sp, #0xdb - strh r0, [r3] - ldrb r0, [sp, #0xda] - add r5, r1, r0 - cmp r1, r5 - bhs _0208D840 -_0208D82C: - ldrb r0, [r1] - sub r0, r0, #0x30 - strb r0, [r1], #1 - cmp r1, r5 - blo _0208D82C -_0208D840: - ldrb r1, [sp, #0xda] - ldrsh r2, [sp, #0xd8] - add r0, sp, #0xb0 - sub r1, r1, #1 - add r1, r2, r1 - strh r1, [sp, #0xd8] - ldr r1, _0208DCF4 @ =0x020B333C - mov r2, #0x134 - ldrsh fp, [sp, #0xd8] - bl FUN_0208cc34 - add r0, sp, #0xb0 - add r1, sp, #0xd6 - bl FUN_0208d134 - cmp r0, #0 - beq _0208D8B0 - ldrsb r0, [r4] - mov r5, #0 - cmp r0, #0 - ldreq r4, _0208DCE4 @ =0x3FF00000 - ldr r0, _0208DCEC @ =0x020B2FB8 - ldrne r4, _0208DCE8 @ =0xBFF00000 - ldr r0, [r0] - bl FloatToDouble - mov r2, r5 - mov r3, r4 - bl FUN_0208c58c - add sp, sp, #0xfc - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} -_0208D8B0: - add r1, sp, #0xdb - ldrb r0, [r1] - add r8, r1, #1 - bl FUN_0208e3b0 - str r0, [sp, #8] - str r1, [sp, #0xc] - cmp r8, r5 - bhs _0208D988 -_0208D8D0: - sub r0, r5, r8 - lsr r1, r0, #0x1f - rsb r0, r1, r0, lsl #29 - adds r7, r1, r0, ror #29 - moveq r7, #8 - mov r6, #0 - mov r2, #0 - cmp r7, #0 - ble _0208D90C - mov r0, #0xa -_0208D8F8: - ldrb r1, [r8], #1 - add r2, r2, #1 - cmp r2, r7 - mla r6, r0, r6, r1 - blt _0208D8F8 -_0208D90C: - ldr r0, _0208DCF8 @ =0x020B3228 - ldr r1, [sp, #0xc] - add r3, r0, r7, lsl #3 - ldr r2, [r3, #-8] - ldr r0, [sp, #8] - ldr r3, [r3, #-4] - bl FUN_0208e3ec - mov r4, r0 - mov sb, r1 - mov r0, r6 - bl FUN_0208e3b0 - mov r2, r0 - mov r3, r1 - mov r0, r4 - mov r1, sb - bl FUN_0208dec8 - cmp r6, #0 - mov r6, r0 - mov sl, r1 - beq _0208D974 - mov r0, r4 - mov r1, sb - mov r2, r6 - mov r3, sl - bl FUN_0208f0b4 - beq _0208D988 -_0208D974: - str r6, [sp, #8] - str sl, [sp, #0xc] - cmp r8, r5 - sub fp, fp, r7 - blo _0208D8D0 -_0208D988: - cmp fp, #0 - bge _0208D9CC - rsb r0, fp, #0 - bl FUN_0208e370 - mov r3, r1 - mov r2, r0 - ldr r1, _0208DCFC @ =0x40140000 - mov r0, #0 - bl thunk_FUN_0208b404 - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #8] - ldr r1, [sp, #0xc] - bl FUN_020902ac - str r0, [sp, #8] - str r1, [sp, #0xc] - b _0208DA04 -_0208D9CC: - mov r0, fp - bl FUN_0208e370 - mov r3, r1 - mov r2, r0 - ldr r1, _0208DCFC @ =0x40140000 - mov r0, #0 - bl thunk_FUN_0208b404 - mov r2, r0 - mov r3, r1 - ldr r0, [sp, #8] - ldr r1, [sp, #0xc] - bl FUN_0208e3ec - str r0, [sp, #8] - str r1, [sp, #0xc] -_0208DA04: - ldr r0, [sp, #8] - ldr r1, [sp, #0xc] - mov r2, fp - bl FUN_0208c690 - str r0, [sp, #8] - str r1, [sp, #0xc] - bl FUN_0208ddac - cmp r0, #2 - bne _0208DA38 - ldr r0, _0208DD00 @ =0x7FEFFFFF - mvn r1, #0 - str r1, [sp, #8] - str r0, [sp, #0xc] -_0208DA38: - ldr r1, [sp, #8] - ldr r2, [sp, #0xc] - add r0, sp, #0x8a - add r4, sp, #0 - mov r5, #0 - bl FUN_0208d4b8 - add r0, sp, #0x8a - add r1, sp, #0xd6 - bl FUN_0208d054 - cmp r0, #0 - bne _0208DCAC - add r0, sp, #0x8a - add r1, sp, #0xd6 - bl FUN_0208d134 - cmp r0, #0 - movne r5, #1 - ldr r1, [sp, #8] - ldr r0, [sp, #0xc] + beq _022EA8EC + cmp r0, #0x10 + beq _022EA958 + cmp r0, #0x11 + beq _022EAA88 + b _022EAAA8 +_022EA8EC: + ldr r0, _022EAAB4 @ =0x00001770 cmp r5, #0 - moveq r6, #1 - str r1, [sp] - str r0, [sp, #4] - movne r6, #0 -_0208DA94: - cmp r6, #0 - bne _0208DABC - ldm r4, {r0, r1} - adds r0, r0, #1 - adc r1, r1, #0 - stm r4, {r0, r1} - bl FUN_0208ddac - cmp r0, #2 - beq _0208DCAC - b _0208DAD4 -_0208DABC: - ldr r1, [r4] - ldr r0, [r4, #4] - subs r1, r1, #1 - sbc r0, r0, #0 - str r1, [r4] - str r0, [r4, #4] -_0208DAD4: - ldr r1, [sp] - ldr r2, [sp, #4] - add r0, sp, #0x64 - bl FUN_0208d4b8 - cmp r5, #0 - beq _0208DB00 - add r0, sp, #0x64 - add r1, sp, #0xd6 - bl FUN_0208d134 + cmpeq r4, r0 + bls _022EAAA8 + bl ov00_022E1FC0 + cmp r0, #5 + bne _022EA934 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1ad] + cmp r0, #5 + blo _022EA934 + bl ov00_022EC1C0 + ldr r0, [r0, #0xf4] + bl ov00_022E9900 cmp r0, #0 - beq _0208DC24 -_0208DB00: - cmp r5, #0 - bne _0208DBDC - add r0, sp, #0xd6 - add r1, sp, #0x64 - bl FUN_0208d134 - cmp r0, #0 - bne _0208DBDC - add r3, sp, #0x8a - add r5, sp, #0x3e - mov r2, #9 -_0208DB28: - ldrh r1, [r3] - ldrh r0, [r3, #2] - add r3, r3, #4 - strh r1, [r5] - strh r0, [r5, #2] - add r5, r5, #4 - subs r2, r2, #1 - bne _0208DB28 - ldrh r0, [r3] - add r3, sp, #0x64 - add r4, sp, #0x8a - strh r0, [r5] - mov r2, #9 -_0208DB5C: - ldrh r1, [r3] - ldrh r0, [r3, #2] - add r3, r3, #4 - strh r1, [r4] - strh r0, [r4, #2] - add r4, r4, #4 - subs r2, r2, #1 - bne _0208DB5C - ldrh r0, [r3] - add r3, sp, #0x3e - add r5, sp, #0x64 - strh r0, [r4] - mov r2, #9 -_0208DB90: - ldrh r1, [r3] - ldrh r0, [r3, #2] - add r3, r3, #4 - strh r1, [r5] - strh r0, [r5, #2] - add r5, r5, #4 - subs r2, r2, #1 - bne _0208DB90 - ldrh r4, [r3] - ldr r3, [sp, #8] - ldr r1, [sp] - ldr r2, [sp, #0xc] - ldr r0, [sp, #4] - strh r4, [r5] - str r1, [sp, #8] - str r0, [sp, #0xc] - str r3, [sp] - str r2, [sp, #4] - b _0208DC24 -_0208DBDC: - add r7, sp, #0x64 - add r3, sp, #0x8a - mov r2, #9 -_0208DBE8: - ldrh r1, [r7] - ldrh r0, [r7, #2] - add r7, r7, #4 - strh r1, [r3] - strh r0, [r3, #2] - add r3, r3, #4 - subs r2, r2, #1 - bne _0208DBE8 - ldrh r2, [r7] - ldr r1, [sp] - ldr r0, [sp, #4] - strh r2, [r3] - str r1, [sp, #8] - str r0, [sp, #0xc] - b _0208DA94 -_0208DC24: - add r0, sp, #0x3e - add r1, sp, #0xd6 - add r2, sp, #0x8a - bl FUN_0208d214 - add r0, sp, #0x18 - add r1, sp, #0x64 - add r2, sp, #0xd6 - bl FUN_0208d214 - add r0, sp, #0x3e - add r1, sp, #0x18 - bl FUN_0208d054 - cmp r0, #0 - beq _0208DC88 - ldr r1, [sp, #8] - ldr r0, [sp, #0xc] - and r1, r1, #1 - and r0, r0, #0 - cmp r0, #0 - cmpeq r1, #0 - beq _0208DCAC - ldr r1, [sp] - ldr r0, [sp, #4] - str r1, [sp, #8] - str r0, [sp, #0xc] - b _0208DCAC -_0208DC88: - add r0, sp, #0x3e - add r1, sp, #0x18 - bl FUN_0208d134 - cmp r0, #0 - bne _0208DCAC - ldr r1, [sp] - ldr r0, [sp, #4] - str r1, [sp, #8] - str r0, [sp, #0xc] -_0208DCAC: - ldrsb r0, [sp, #0xd6] - cmp r0, #0 - beq _0208DCD4 + bne _022EAAA8 mov r0, #0 - ldr r2, [sp, #8] - ldr r3, [sp, #0xc] - mov r1, r0 - bl FUN_0208e904 - str r0, [sp, #8] - str r1, [sp, #0xc] -_0208DCD4: - ldr r0, [sp, #8] - ldr r1, [sp, #0xc] - add sp, sp, #0xfc - pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0208DCE4: .4byte 0x3FF00000 -_0208DCE8: .4byte 0xBFF00000 -_0208DCEC: .4byte 0x020B2FB8 -_0208DCF0: .4byte 0x7FF00000 -_0208DCF4: .4byte 0x020B333C -_0208DCF8: .4byte 0x020B3228 -_0208DCFC: .4byte 0x40140000 -_0208DD00: .4byte 0x7FEFFFFF - arm_func_end FUN_0208d6e0 - - arm_func_start FUN_0208dd04 -FUN_0208dd04: @ 0x0208DD04 - lsr r3, r0, #1 - ldr r2, _0208DD8C @ =0x55555555 - orr r3, r3, r1, lsl #31 - and r3, r3, r2 - subs ip, r0, r3 - and r2, r2, r1, lsr #1 - ldr r0, _0208DD90 @ =0x33333333 - sbc r3, r1, r2 - lsr r1, ip, #2 - orr r1, r1, r3, lsl #30 - and r2, ip, r0 - and r1, r1, r0 - adds r2, r2, r1 - and r1, r3, r0 - and r0, r0, r3, lsr #2 - adc r1, r1, r0 - lsr r0, r2, #4 - orr r0, r0, r1, lsl #28 - adds r2, r2, r0 - ldr r0, _0208DD94 @ =0x0F0F0F0F - adc r1, r1, r1, lsr #4 - and r3, r2, r0 - and r2, r1, r0 - lsr r0, r3, #8 - orr r0, r0, r2, lsl #24 - adds r1, r3, r0 - adc r2, r2, r2, lsr #8 - lsr r0, r1, #0x10 - orr r0, r0, r2, lsl #16 - adds r1, r1, r0 - adc r0, r2, r2, lsr #16 - adds r0, r1, r0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0208DD8C: .4byte 0x55555555 -_0208DD90: .4byte 0x33333333 -_0208DD94: .4byte 0x0F0F0F0F - arm_func_end FUN_0208dd04 - - arm_func_start FUN_0208dd98 -FUN_0208dd98: @ 0x0208DD98 - push {r0, r1, r2, r3} - ldr r0, [sp, #4] - and r0, r0, #0x80000000 - add sp, sp, #0x10 - bx lr - arm_func_end FUN_0208dd98 - - arm_func_start FUN_0208ddac -FUN_0208ddac: @ 0x0208DDAC - push {r0, r1, r2, r3} - ldr r2, [sp, #4] - ldr r0, _0208DE14 @ =0x7FF00000 - ands r1, r2, r0 - beq _0208DDE8 - cmp r1, r0 - bne _0208DE08 - ldr r0, _0208DE18 @ =0x000FFFFF - tst r2, r0 - ldreq r0, [sp] - add sp, sp, #0x10 - cmpeq r0, #0 - movne r0, #1 - moveq r0, #2 - bx lr -_0208DDE8: - ldr r0, _0208DE18 @ =0x000FFFFF - tst r2, r0 - ldreq r0, [sp] - add sp, sp, #0x10 - cmpeq r0, #0 - movne r0, #5 - moveq r0, #3 - bx lr -_0208DE08: - mov r0, #4 - add sp, sp, #0x10 - bx lr - .align 2, 0 -_0208DE14: .4byte 0x7FF00000 -_0208DE18: .4byte 0x000FFFFF - arm_func_end FUN_0208ddac - - arm_func_start FUN_0208de1c -FUN_0208de1c: @ 0x0208DE1C - push {r3, r4, lr} - sub sp, sp, #4 - mov r4, r2 - add r2, sp, #0 - bl FUN_0208c5d4 - ldr r2, [sp] - add r2, r2, r4 - str r2, [sp] - bl FUN_0208c690 - add sp, sp, #4 - pop {r3, r4, pc} - arm_func_end FUN_0208de1c - - arm_func_start FUN_0208de48 -FUN_0208de48: @ 0x0208DE48 - push {r3, lr} - ldr r3, _0208DEAC @ =0x020AECB0 -_0208DE50: - ldrb r2, [r0], #1 - cmp r2, #0 - blt _0208DE68 - cmp r2, #0x80 - bge _0208DE68 - ldrb r2, [r3, r2] -_0208DE68: - ldrb lr, [r1], #1 - and ip, r2, #0xff - cmp lr, #0 - blt _0208DE84 - cmp lr, #0x80 - bge _0208DE84 - ldrb lr, [r3, lr] -_0208DE84: - and r2, lr, #0xff - cmp ip, r2 - mvnlo r0, #0 - poplo {r3, pc} - movhi r0, #1 - pophi {r3, pc} - cmp ip, #0 - bne _0208DE50 - mov r0, #0 - pop {r3, pc} - .align 2, 0 -_0208DEAC: .4byte 0x020AECB0 - arm_func_end FUN_0208de48 -_0208DEB0: - .byte 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x64, 0x6C, 0x08, 0x02, 0x00, 0xC0, 0x9F, 0xE5 - .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x48, 0xDE, 0x08, 0x02 - - arm_func_start FUN_0208dec8 -FUN_0208dec8: @ 0x0208DEC8 - push {r4, lr} - eors ip, r1, r3 - eormi r3, r3, #0x80000000 - bmi _0208E914 -_0208DED8: - subs ip, r0, r2 - sbcs lr, r1, r3 - bhs _0208DEF4 - adds r2, r2, ip - adc r3, r3, lr - subs r0, r0, ip - sbc r1, r1, lr -_0208DEF4: - mov lr, #0x80000000 - lsr ip, r1, #0x14 - orr r1, lr, r1, lsl #11 - orr r1, r1, r0, lsr #21 - lsl r0, r0, #0xb - lsls r4, ip, #0x15 - cmnne r4, #0x200000 - beq _0208DFF0 - lsr r4, r3, #0x14 - orr r3, lr, r3, lsl #11 - orr r3, r3, r2, lsr #21 - lsl r2, r2, #0xb - lsls lr, r4, #0x15 - beq _0208E038 -_0208DF2C: - subs r4, ip, r4 - beq _0208DF84 - cmp r4, #0x20 - ble _0208DF68 - cmp r4, #0x38 - movge r4, #0x3f - sub r4, r4, #0x20 - rsb lr, r4, #0x20 - orrs lr, r2, r3, lsl lr - lsr r2, r3, r4 - orrne r2, r2, #1 - adds r0, r0, r2 - adcs r1, r1, #0 - blo _0208DFAC - b _0208DF90 -_0208DF68: - rsb lr, r4, #0x20 - lsls lr, r2, lr - rsb lr, r4, #0x20 - lsr r2, r2, r4 - orr r2, r2, r3, lsl lr - lsr r3, r3, r4 - orrne r2, r2, #1 -_0208DF84: - adds r0, r0, r2 - adcs r1, r1, r3 - blo _0208DFAC -_0208DF90: - add ip, ip, #1 - and r4, r0, #1 - rrxs r1, r1 - orr r0, r4, r0, rrx - lsl lr, ip, #0x15 - cmn lr, #0x200000 - beq _0208E1BC -_0208DFAC: - lsls r2, r0, #0x15 - lsr r0, r0, #0xb - orr r0, r0, r1, lsl #21 - add r1, r1, r1 - lsr r1, r1, #0xc - orr r1, r1, ip, lsl #20 - tst r2, #0x80000000 - popeq {r4, lr} - bxeq lr - lsls r2, r2, #1 - andseq r2, r0, #1 - popeq {r4, lr} - bxeq lr - adds r0, r0, #1 - adc r1, r1, #0 - pop {r4, lr} - bx lr -_0208DFF0: - cmp ip, #0x800 - movge lr, #0x80000000 - movlt lr, #0 - bics ip, ip, #0x800 - beq _0208E05C - orrs r4, r0, r1, lsl #1 - bne _0208E198 - lsr r4, r3, #0x14 - lsl r3, r3, #0xb - orr r3, r3, r2, lsr #21 - lsl r2, r2, #0xb - lsls r4, r4, #0x15 - beq _0208E184 - cmn r4, #0x200000 - bne _0208E184 - orrs r4, r2, r3, lsl #1 - beq _0208E184 - b _0208E198 -_0208E038: - cmp r4, #0x800 - movge lr, #0x80000000 - movlt lr, #0 - bic ip, ip, #0x800 - bics r4, r4, #0x800 - beq _0208E0C8 - orrs r4, r2, r3, lsl #1 - bne _0208E198 - b _0208E184 -_0208E05C: - orrs r4, r0, r1, lsl #1 - beq _0208E09C - mov ip, #1 - bic r1, r1, #0x80000000 - lsr r4, r3, #0x14 - lsl r3, r3, #0xb - orr r3, r3, r2, lsr #21 - lsl r2, r2, #0xb - lsls r4, r4, #0x15 - cmnne r4, #0x200000 - lsr r4, r4, #0x15 - orr r4, r4, lr, lsr #20 - beq _0208E038 - orr r3, r3, #0x80000000 - orr ip, ip, lr, lsr #20 - b _0208DF2C -_0208E09C: - lsr ip, r3, #0x14 - lsl r1, r3, #0xb - orr r1, r1, r2, lsr #21 - lsl r0, r2, #0xb - lsls r4, ip, #0x15 - beq _0208E150 - cmn r4, #0x200000 - bne _0208E150 - orrs r4, r0, r1, lsl #1 - beq _0208E184 - b _0208E19C -_0208E0C8: - orrs r4, r2, r3, lsl #1 - beq _0208E160 - mov r4, #1 - bic r3, r3, #0x80000000 - cmp r1, #0 - bpl _0208E0EC - orr ip, ip, lr, lsr #20 - orr r4, r4, lr, lsr #20 - b _0208DF2C -_0208E0EC: - adds r0, r0, r2 - adcs r1, r1, r3 - blo _0208E10C - add ip, ip, #1 - and r4, r0, #1 - rrxs r1, r1 - rrx r0, r0 - orr r0, r0, r4 -_0208E10C: - cmp r1, #0 - subsge ip, ip, #1 - lsls r2, r0, #0x15 - lsr r0, r0, #0xb - orr r0, r0, r1, lsl #21 - add r1, r1, r1 - orr r1, lr, r1, lsr #12 - orr r1, r1, ip, lsl #20 - popeq {r4, lr} - bxeq lr - tst r2, #0x80000000 - popeq {r4, lr} - bxeq lr - lsls r2, r2, #1 - andseq r2, r0, #1 - popeq {r4, lr} - bxeq lr -_0208E150: - mov r1, r3 - mov r0, r2 - pop {r4, lr} - bx lr -_0208E160: - cmp r1, #0 - subsge ip, ip, #1 - lsr r0, r0, #0xb - orr r0, r0, r1, lsl #21 - add r1, r1, r1 - orr r1, lr, r1, lsr #12 - orr r1, r1, ip, lsl #20 - pop {r4, lr} - bx lr -_0208E184: - ldr r1, _0208E1DC @ =0x7FF00000 - orr r1, lr, r1 - mov r0, #0 - pop {r4, lr} - bx lr -_0208E198: - mov r1, r3 -_0208E19C: - mvn r0, #0 - bic r1, r0, #0x80000000 - pop {r4, lr} - bx lr -_0208E1AC: - .byte 0x00, 0x00, 0xE0, 0xE3 - .byte 0x02, 0x11, 0xC0, 0xE3, 0x10, 0x40, 0xBD, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1 -_0208E1BC: - cmp ip, #0x800 - movge lr, #0x80000000 - movlt lr, #0 - ldr r1, _0208E1DC @ =0x7FF00000 - orr r1, lr, r1 - mov r0, #0 - pop {r4, lr} - bx lr - .align 2, 0 -_0208E1DC: .4byte 0x7FF00000 - arm_func_end FUN_0208dec8 -_0208E1E0: - .byte 0x02, 0x21, 0x01, 0xE2, 0x21, 0xCA, 0xA0, 0xE1, 0x02, 0xCB, 0xDC, 0xE3, 0x19, 0x00, 0x00, 0x0A - .byte 0x8C, 0x3A, 0xA0, 0xE1, 0x02, 0x06, 0x73, 0xE3, 0x0F, 0x00, 0x00, 0x2A, 0x0E, 0xCD, 0x5C, 0xE2 - .byte 0x18, 0x00, 0x00, 0x9A, 0xFF, 0x00, 0x5C, 0xE3, 0x32, 0x00, 0x00, 0xAA, 0x01, 0x16, 0xA0, 0xE1 - .byte 0xA1, 0x34, 0x82, 0xE1, 0xA0, 0x3E, 0x83, 0xE1, 0x80, 0x11, 0xB0, 0xE1, 0x8C, 0x0B, 0x83, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x02, 0x01, 0x11, 0xE3, 0x1E, 0xFF, 0x2F, 0x01, 0x81, 0x10, 0xB0, 0xE1 - .byte 0x01, 0x10, 0x10, 0x02, 0x01, 0x00, 0x80, 0x12, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x36, 0x90, 0xE1 - .byte 0x02, 0x00, 0x00, 0x1A, 0xFF, 0x04, 0xA0, 0xE3, 0xA0, 0x00, 0x82, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x02, 0x01, 0xE0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x36, 0x90, 0xE1, 0x1B, 0x00, 0x00, 0x1A - .byte 0x02, 0x00, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x17, 0x00, 0x7C, 0xE3, 0x12, 0x00, 0x00, 0x0A - .byte 0x16, 0x00, 0x00, 0x4A, 0x81, 0x15, 0xA0, 0xE1, 0x02, 0x11, 0x81, 0xE3, 0x21, 0x34, 0xA0, 0xE1 - .byte 0xA0, 0x3E, 0x83, 0xE1, 0x01, 0xC0, 0x6C, 0xE2, 0x80, 0x11, 0xB0, 0xE1, 0x33, 0x0C, 0x82, 0xE1 - .byte 0x20, 0xC0, 0x6C, 0xE2, 0x13, 0x3C, 0xA0, 0xE1, 0x01, 0x30, 0x83, 0x13, 0x03, 0x10, 0xB0, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0x01, 0x02, 0x01, 0x11, 0xE3, 0x1E, 0xFF, 0x2F, 0x01, 0x81, 0x10, 0xB0, 0xE1 - .byte 0x01, 0x10, 0x10, 0x02, 0x01, 0x00, 0x80, 0x12, 0x1E, 0xFF, 0x2F, 0xE1, 0x01, 0x06, 0x80, 0xE1 - .byte 0x00, 0x10, 0xB0, 0xE1, 0x02, 0x00, 0xA0, 0xE1, 0x01, 0x00, 0x80, 0x12, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0x02, 0x00, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xFF, 0x04, 0xA0, 0xE3, 0xA0, 0x00, 0x82, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0208e2e4 -FUN_0208e2e4: @ 0x0208E2E4 - tst r1, #0x80000000 - bne _0208E348 - ldr r2, _0208E36C @ =0x0000043E - subs r2, r2, r1, lsr #20 - blt _0208E360 - cmp r2, #0x40 - bge _0208E33C - lsl ip, r1, #0xb - orr ip, ip, #0x80000000 - orr ip, ip, r0, lsr #21 - cmp r2, #0x20 - ble _0208E324 - sub r2, r2, #0x20 - mov r1, #0 - lsr r0, ip, r2 - bx lr -_0208E324: - lsl r3, r0, #0xb - lsr r1, ip, r2 - lsr r0, r3, r2 - rsb r2, r2, #0x20 - orr r0, r0, ip, lsl r2 - bx lr -_0208E33C: - mov r1, #0 - mov r0, #0 - bx lr -_0208E348: - cmn r1, #0x100000 - cmpeq r0, #0 - bhi _0208E360 - mov r1, #0 - mov r0, #0 - bx lr -_0208E360: - mvn r1, #0 - mvn r0, #0 - bx lr - .align 2, 0 -_0208E36C: .4byte 0x0000043E - arm_func_end FUN_0208e2e4 - - arm_func_start FUN_0208e370 -FUN_0208e370: @ 0x0208E370 - ands r2, r0, #0x80000000 - rsbmi r0, r0, #0 - cmp r0, #0 - mov r1, #0 - bxeq lr - mov r3, #0x400 - add r3, r3, #0x1e - clz ip, r0 - lsls r0, r0, ip - sub r3, r3, ip - movs r1, r0 - lsl r0, r1, #0x15 - add r1, r1, r1 - orr r1, r2, r1, lsr #12 - orr r1, r1, r3, lsl #20 - bx lr - arm_func_end FUN_0208e370 - - arm_func_start FUN_0208e3b0 -FUN_0208e3b0: @ 0x0208E3B0 - cmp r0, #0 - mov r1, #0 - bxeq lr - mov r3, #0x400 - add r3, r3, #0x1e - bmi _0208E3D4 - clz ip, r0 - lsls r0, r0, ip - sub r3, r3, ip -_0208E3D4: - mov r1, r0 - lsl r0, r1, #0x15 - add r1, r1, r1 - lsr r1, r1, #0xc - orr r1, r1, r3, lsl #20 - bx lr - arm_func_end FUN_0208e3b0 - - arm_func_start FUN_0208e3ec -FUN_0208e3ec: @ 0x0208E3EC - push {r4, r5, r6, r7, lr} - eor lr, r1, r3 - and lr, lr, #0x80000000 - lsr ip, r1, #0x14 - lsl r1, r1, #0xb - orr r1, r1, r0, lsr #21 - lsl r0, r0, #0xb - lsls r6, ip, #0x15 - cmnne r6, #0x200000 - beq _0208E4F4 - orr r1, r1, #0x80000000 - bic ip, ip, #0x800 - lsr r4, r3, #0x14 - lsl r3, r3, #0xb - orr r3, r3, r2, lsr #21 - lsl r2, r2, #0xb - lsls r5, r4, #0x15 - cmnne r5, #0x200000 - beq _0208E53C - orr r3, r3, #0x80000000 - bic r4, r4, #0x800 -_0208E440: - add ip, r4, ip - umull r5, r4, r0, r2 - umull r7, r6, r0, r3 - adds r4, r7, r4 - adc r6, r6, #0 - umull r7, r0, r1, r2 - adds r4, r7, r4 - adcs r0, r0, r6 - umull r7, r2, r1, r3 - adc r1, r2, #0 - adds r0, r0, r7 - adc r1, r1, #0 - orrs r4, r4, r5 - orrne r0, r0, #1 - cmp r1, #0 - blt _0208E48C - sub ip, ip, #1 - adds r0, r0, r0 - adc r1, r1, r1 -_0208E48C: - add ip, ip, #2 - subs ip, ip, #0x400 - bmi _0208E628 - beq _0208E628 - lsl r6, ip, #0x14 - cmn r6, #0x100000 - bmi _0208E728 - lsls r2, r0, #0x15 - lsr r0, r0, #0xb - orr r0, r0, r1, lsl #21 - add r1, r1, r1 - orr r1, lr, r1, lsr #12 - orr r1, r1, ip, lsl #20 - popeq {r4, r5, r6, r7, lr} - bxeq lr - tst r2, #0x80000000 - popeq {r4, r5, r6, r7, lr} - bxeq lr - lsls r2, r2, #1 - andseq r2, r0, #1 - popeq {r4, r5, r6, r7, lr} - bxeq lr - adds r0, r0, #1 - adc r1, r1, #0 - pop {r4, r5, r6, r7, lr} - bx lr -_0208E4F4: - bics ip, ip, #0x800 - beq _0208E550 - orrs r6, r0, r1, lsl #1 - bne _0208E6DC - lsr r4, r3, #0x14 - lsl r3, r3, #0xb - orr r3, r3, r2, lsr #21 - lsl r2, r2, #0xb - lsls r5, r4, #0x15 - beq _0208E530 - cmn r5, #0x200000 - bne _0208E6C8 - orrs r5, r2, r3, lsl #1 - beq _0208E6C8 - b _0208E6DC -_0208E530: - orrs r5, r3, r2 - beq _0208E6F0 - b _0208E6C8 -_0208E53C: - bics r4, r4, #0x800 - beq _0208E5E4 - orrs r6, r2, r3, lsl #1 - bne _0208E6DC - b _0208E6C8 -_0208E550: - orrs r6, r0, r1, lsl #1 - beq _0208E5B8 - mov ip, #1 - cmp r1, #0 - bne _0208E574 - sub ip, ip, #0x20 - movs r1, r0 - mov r0, #0 - bmi _0208E590 -_0208E574: - clz r6, r1 - lsls r1, r1, r6 - rsb r6, r6, #0x20 - orr r1, r1, r0, lsr r6 - rsb r6, r6, #0x20 - lsl r0, r0, r6 - sub ip, ip, r6 -_0208E590: - lsr r4, r3, #0x14 - lsl r3, r3, #0xb - orr r3, r3, r2, lsr #21 - lsl r2, r2, #0xb - lsls r5, r4, #0x15 - cmnne r5, #0x200000 - beq _0208E53C - orr r3, r3, #0x80000000 - bic r4, r4, #0x800 - b _0208E440 -_0208E5B8: - lsr r4, r3, #0x14 - lsl r3, r3, #0xb - orr r3, r3, r2, lsr #21 - lsl r2, r2, #0xb - lsls r5, r4, #0x15 - beq _0208E73C - cmn r5, #0x200000 - bne _0208E73C - orrs r6, r2, r3, lsl #1 - beq _0208E6F0 - b _0208E6DC -_0208E5E4: - orrs r5, r2, r3, lsl #1 - beq _0208E73C - mov r4, #1 - cmp r3, #0 - bne _0208E608 - sub r4, r4, #0x20 - movs r3, r2 - mov r2, #0 - bmi _0208E440 -_0208E608: - clz r6, r3 - lsls r3, r3, r6 - rsb r6, r6, #0x20 - orr r3, r3, r2, lsr r6 - rsb r6, r6, #0x20 - lsl r2, r2, r6 - sub r4, r4, r6 - b _0208E440 -_0208E628: - cmn ip, #0x34 - beq _0208E6C0 - bmi _0208E718 - mov r2, r1 - mov r3, r0 - add r4, ip, #0x34 - cmp r4, #0x20 - movge r2, r3 - movge r3, #0 - subge r4, r4, #0x20 - rsb r5, r4, #0x20 - lsl r2, r2, r4 - orr r2, r2, r3, lsr r5 - lsls r3, r3, r4 - orrne r2, r2, #1 - rsb ip, ip, #0xc - cmp ip, #0x20 - movge r0, r1 - movge r1, #0 - subge ip, ip, #0x20 - rsb r4, ip, #0x20 - lsr r0, r0, ip - orr r0, r0, r1, lsl r4 - orr r1, lr, r1, lsr ip - cmp r2, #0 - popeq {r4, r5, r6, r7, lr} - bxeq lr - tst r2, #0x80000000 - popeq {r4, r5, r6, r7, lr} - bxeq lr - lsls r2, r2, #1 - andseq r2, r0, #1 - popeq {r4, r5, r6, r7, lr} - bxeq lr - adds r0, r0, #1 - adc r1, r1, #0 - pop {r4, r5, r6, r7, lr} - bx lr -_0208E6C0: - orr r0, r0, r1, lsl #1 - b _0208E700 -_0208E6C8: - ldr r1, _0208E74C @ =0x7FF00000 - orr r1, lr, r1 - mov r0, #0 - pop {r4, r5, r6, r7, lr} - bx lr -_0208E6DC: - mov r1, r3 - mvn r0, #0 - bic r1, r0, #0x80000000 - pop {r4, r5, r6, r7, lr} - bx lr -_0208E6F0: - mvn r0, #0 - bic r1, r0, #0x80000000 - pop {r4, r5, r6, r7, lr} - bx lr -_0208E700: - movs r2, r0 - mov r1, lr - mov r0, #0 - addne r0, r0, #1 - pop {r4, r5, r6, r7, lr} - bx lr -_0208E718: - mov r1, lr - mov r0, #0 - pop {r4, r5, r6, r7, lr} - bx lr -_0208E728: - ldr r1, _0208E74C @ =0x7FF00000 - orr r1, lr, r1 - mov r0, #0 - pop {r4, r5, r6, r7, lr} - bx lr -_0208E73C: - mov r1, lr - mov r0, #0 - pop {r4, r5, r6, r7, lr} - bx lr - .align 2, 0 -_0208E74C: .4byte 0x7FF00000 - arm_func_end FUN_0208e3ec - - arm_func_start FUN_0208e750 -FUN_0208e750: @ 0x0208E750 - push {r4, r5, r6, lr} - ldr r2, _0208E8E0 @ =0x7FF00000 - cmp r1, r2 - bhs _0208E89C - lsrs ip, r1, #0x14 - beq _0208E848 - bic r1, r1, r2 - orr r1, r1, #0x100000 -_0208E770: - asrs ip, ip, #1 - bhs _0208E784 - sub ip, ip, #1 - lsls r0, r0, #1 - adc r1, r1, r1 -_0208E784: - lsls r3, r0, #1 - adc r1, r1, r1 - mov r2, #0 - mov r4, #0 - mov lr, #0x200000 -_0208E798: - add r6, r4, lr - cmp r6, r1 - addle r4, r6, lr - suble r1, r1, r6 - addle r2, r2, lr - lsls r3, r3, #1 - adc r1, r1, r1 - lsrs lr, lr, #1 - bne _0208E798 - mov r0, #0 - mov r5, #0 - cmp r1, r4 - cmpeq r3, #0x80000000 - blo _0208E7E0 - subs r3, r3, #0x80000000 - sbc r1, r1, r4 - add r4, r4, #1 - mov r0, #0x80000000 -_0208E7E0: - lsls r3, r3, #1 - adc r1, r1, r1 - mov lr, #0x40000000 -_0208E7EC: - add r6, r5, lr - cmp r4, r1 - cmpeq r6, r3 - bhi _0208E80C - add r5, r6, lr - subs r3, r3, r6 - sbc r1, r1, r4 - add r0, r0, lr -_0208E80C: - lsls r3, r3, #1 - adc r1, r1, r1 - lsrs lr, lr, #1 - bne _0208E7EC - orrs r1, r1, r3 - biceq r0, r0, #1 - lsrs r1, r2, #1 - rrxs r0, r0 - adcs r0, r0, #0 - adc r1, r1, #0 - add r1, r1, #0x20000000 - sub r1, r1, #0x100000 - add r1, r1, ip, lsl #20 - pop {r4, r5, r6, lr} - bx lr -_0208E848: - cmp r1, #0 - bne _0208E878 - cmp r0, #0 - popeq {r4, r5, r6, lr} - bxeq lr - mvn ip, #0x13 - clz r5, r0 - lsls r0, r0, r5 - sub ip, ip, r5 - lsr r1, r0, #0xb - lsl r0, r0, #0x15 - b _0208E770 -_0208E878: - clz r2, r1 - lsls r1, r1, r2 - rsb r2, r2, #0x2b - lsr r1, r1, #0xb - orr r1, r1, r0, lsr r2 - rsb r2, r2, #0x20 - lsl r0, r0, r2 - rsb ip, r2, #1 - b _0208E770 -_0208E89C: - tst r1, #0x80000000 - beq _0208E8B8 - bics r3, r1, #0x80000000 - cmpeq r0, #0 - popeq {r4, r5, r6, lr} - bxeq lr - b _0208E8C4 -_0208E8B8: - orrs r2, r0, r1, lsl #12 - popeq {r4, r5, r6, lr} - bxeq lr -_0208E8C4: - ldr r2, _0208E8E4 @ =0x7FF80000 - orr r1, r1, r2 - ldr r3, _0208E8E8 @ =0x022BCA70 - mov r4, #0x21 - str r4, [r3] - pop {r4, r5, r6, lr} - bx lr - .align 2, 0 -_0208E8E0: .4byte 0x7FF00000 -_0208E8E4: .4byte 0x7FF80000 -_0208E8E8: .4byte 0x022BCA70 - arm_func_end FUN_0208e750 -_0208E8EC: - .byte 0x03, 0x10, 0x21, 0xE0 - .byte 0x03, 0x30, 0x21, 0xE0, 0x03, 0x10, 0x21, 0xE0, 0x02, 0x00, 0x20, 0xE0, 0x02, 0x20, 0x20, 0xE0 - .byte 0x02, 0x00, 0x20, 0xE0 - - arm_func_start FUN_0208e904 -FUN_0208e904: @ 0x0208E904 - push {r4, lr} - eors ip, r1, r3 - eormi r3, r3, #0x80000000 - bmi _0208DED8 -_0208E914: - subs ip, r0, r2 - sbcs lr, r1, r3 - bhs _0208E934 - eor lr, lr, #0x80000000 - adds r2, r2, ip - adc r3, r3, lr - subs r0, r0, ip - sbc r1, r1, lr -_0208E934: - mov lr, #0x80000000 - lsr ip, r1, #0x14 - orr r1, lr, r1, lsl #11 - orr r1, r1, r0, lsr #21 - lsl r0, r0, #0xb - lsls r4, ip, #0x15 - cmnne r4, #0x200000 - beq _0208EB38 - lsr r4, r3, #0x14 - orr r3, lr, r3, lsl #11 - orr r3, r3, r2, lsr #21 - lsl r2, r2, #0xb - lsls lr, r4, #0x15 - beq _0208EB80 -_0208E96C: - subs r4, ip, r4 - beq _0208EA14 - cmp r4, #0x20 - ble _0208E9A8 - cmp r4, #0x38 - movge r4, #0x3f - sub r4, r4, #0x20 - rsb lr, r4, #0x20 - orrs lr, r2, r3, lsl lr - lsr r2, r3, r4 - orrne r2, r2, #1 - subs r0, r0, r2 - sbcs r1, r1, #0 - bmi _0208E9D0 - b _0208EAC0 -_0208E9A8: - rsb lr, r4, #0x20 - lsls lr, r2, lr - rsb lr, r4, #0x20 - lsr r2, r2, r4 - orr r2, r2, r3, lsl lr - lsr r3, r3, r4 - orrne r2, r2, #1 - subs r0, r0, r2 - sbcs r1, r1, r3 - bpl _0208EAC0 -_0208E9D0: - lsls r2, r0, #0x15 - lsr r0, r0, #0xb - orr r0, r0, r1, lsl #21 - add r1, r1, r1 - lsr r1, r1, #0xc - orr r1, r1, ip, lsl #20 - tst r2, #0x80000000 - popeq {r4, lr} - bxeq lr - lsls r2, r2, #1 - andseq r2, r0, #1 - popeq {r4, lr} - bxeq lr - adds r0, r0, #1 - adc r1, r1, #0 - pop {r4, lr} - bx lr -_0208EA14: - subs r0, r0, r2 - sbc r1, r1, r3 - orrs lr, r1, r0 - beq _0208ECA4 - lsl lr, ip, #0x14 - and lr, lr, #0x80000000 - bic ip, ip, #0x800 - cmp r1, #0 - bmi _0208EA9C - bne _0208EA4C - sub ip, ip, #0x20 - movs r1, r0 - mov r0, #0 - bmi _0208EA68 -_0208EA4C: - clz r4, r1 - lsls r1, r1, r4 - rsb r4, r4, #0x20 - orr r1, r1, r0, lsr r4 - rsb r4, r4, #0x20 - lsl r0, r0, r4 - sub ip, ip, r4 -_0208EA68: - cmp ip, #0 - bgt _0208EAA4 - rsb ip, ip, #0xc - cmp ip, #0x20 - movge r0, r1 - movge r1, #0 - subge ip, ip, #0x20 - rsb r4, ip, #0x20 - lsr r0, r0, ip - orr r0, r0, r1, lsl r4 - orr r1, lr, r1, lsr ip - pop {r4, lr} - bx lr -_0208EA9C: - cmp r1, #0 - subsge ip, ip, #1 -_0208EAA4: - lsr r0, r0, #0xb - orr r0, r0, r1, lsl #21 - add r1, r1, r1 - orr r1, lr, r1, lsr #12 - orr r1, r1, ip, lsl #20 - pop {r4, lr} - bx lr -_0208EAC0: - lsl lr, ip, #0x14 - and lr, lr, #0x80000000 - bic ip, ip, #0x800 - cmp r1, #0 - bne _0208EAE4 - sub ip, ip, #0x20 - movs r1, r0 - mov r0, #0 - bmi _0208EB00 -_0208EAE4: - clz r4, r1 - lsls r1, r1, r4 - rsb r4, r4, #0x20 - orr r1, r1, r0, lsr r4 - rsb r4, r4, #0x20 - lsl r0, r0, r4 - sub ip, ip, r4 -_0208EB00: - cmp ip, #0 - orrgt ip, ip, lr, lsr #20 - bgt _0208E9D0 - rsb ip, ip, #0xc - cmp ip, #0x20 - movge r0, r1 - movge r1, #0 - subge ip, ip, #0x20 - rsb r4, ip, #0x20 - lsr r0, r0, ip - orr r0, r0, r1, lsl r4 - orr r1, lr, r1, lsr ip - pop {r4, lr} - bx lr -_0208EB38: - cmp ip, #0x800 - movge lr, #0x80000000 - movlt lr, #0 - bics ip, ip, #0x800 - beq _0208EBA4 - orrs r4, r0, r1, lsl #1 - bne _0208EC80 - lsr r4, r3, #0x14 - lsl r3, r3, #0xb - orr r3, r3, r2, lsr #21 - lsl r2, r2, #0xb - lsls r4, r4, #0x15 - beq _0208EC6C - cmn r4, #0x200000 - bne _0208EC6C - orrs r4, r2, r3, lsl #1 - beq _0208EC94 - b _0208EC80 -_0208EB80: - cmp r4, #0x800 - movge lr, #0x80000000 - movlt lr, #0 - bic ip, ip, #0x800 - bics r4, r4, #0x800 - beq _0208EC1C - orrs r4, r2, r3, lsl #1 - bne _0208EC80 - b _0208EC6C -_0208EBA4: - orrs r4, r0, r1, lsl #1 - beq _0208EBE4 - mov ip, #1 - bic r1, r1, #0x80000000 - lsr r4, r3, #0x14 - lsl r3, r3, #0xb - orr r3, r3, r2, lsr #21 - lsl r2, r2, #0xb - lsls r4, r4, #0x15 - cmnne r4, #0x200000 - lsr r4, r4, #0x15 - orr r4, r4, lr, lsr #20 - beq _0208EB80 - orr r3, r3, #0x80000000 - orr ip, ip, lr, lsr #20 - b _0208E96C -_0208EBE4: - lsr ip, r3, #0x14 - lsl r1, r3, #0xb - orr r1, r1, r2, lsr #21 - lsl r0, r2, #0xb - lsls r4, ip, #0x15 - beq _0208EC10 - cmn r4, #0x200000 - bne _0208EC38 - orrs r4, r0, r1, lsl #1 - bne _0208EC84 - b _0208EC6C -_0208EC10: - orrs r4, r0, r1, lsl #1 - beq _0208ECA4 - b _0208EC38 -_0208EC1C: - orrs r4, r2, r3, lsl #1 - beq _0208EC48 - mov r4, #1 - bic r3, r3, #0x80000000 - orr ip, ip, lr, lsr #20 - orr r4, r4, lr, lsr #20 - b _0208E96C -_0208EC38: - mov r1, r3 - mov r0, r2 - pop {r4, lr} - bx lr -_0208EC48: - cmp r1, #0 - subsge ip, ip, #1 - lsr r0, r0, #0xb - orr r0, r0, r1, lsl #21 - add r1, r1, r1 - orr r1, lr, r1, lsr #12 - orr r1, r1, ip, lsl #20 - pop {r4, lr} - bx lr -_0208EC6C: - ldr r1, _0208ECB4 @ =0x7FF00000 - orr r1, lr, r1 - mov r0, #0 - pop {r4, lr} - bx lr -_0208EC80: - mov r1, r3 -_0208EC84: - mvn r0, #0 - bic r1, r0, #0x80000000 - pop {r4, lr} - bx lr -_0208EC94: - mvn r0, #0 - bic r1, r0, #0x80000000 - pop {r4, lr} - bx lr -_0208ECA4: - mov r1, #0 - mov r0, #0 - pop {r4, lr} - bx lr - .align 2, 0 -_0208ECB4: .4byte 0x7FF00000 - arm_func_end FUN_0208e904 - - arm_func_start AddFloat -AddFloat: @ 0x0208ECB8 - eors r2, r0, r1 - eormi r1, r1, #0x80000000 - bmi _0208FA10 -_0208ECC4: - subs ip, r0, r1 - sublo r0, r0, ip - addlo r1, r1, ip - mov r2, #0x80000000 - lsr r3, r0, #0x17 - orr r0, r2, r0, lsl #8 - ands ip, r3, #0xff - cmpne ip, #0xff - beq _0208ED58 - lsr ip, r1, #0x17 - orr r1, r2, r1, lsl #8 - ands r2, ip, #0xff - beq _0208ED98 -_0208ECF8: - subs ip, r3, ip - beq _0208ED10 - rsb r2, ip, #0x20 - lsls r2, r1, r2 - lsr r1, r1, ip - orrne r1, r1, #1 -_0208ED10: - adds r0, r0, r1 - blo _0208ED30 - and r1, r0, #1 - orr r0, r1, r0, rrx - add r3, r3, #1 - and r2, r3, #0xff - cmp r2, #0xff - beq _0208EEA0 -_0208ED30: - ands r1, r0, #0xff - add r0, r0, r0 - lsr r0, r0, #9 - orr r0, r0, r3, lsl #23 - tst r1, #0x80 - bxeq lr - ands r1, r1, #0x7f - andseq r1, r0, #1 - addne r0, r0, #1 - bx lr -_0208ED58: - cmp r3, #0x100 - movge r2, #0x80000000 - movlt r2, #0 - ands r3, r3, #0xff - beq _0208EDBC - lsls r0, r0, #1 - bne _0208EECC - lsr ip, r1, #0x17 - lsl r1, r1, #9 - ands ip, ip, #0xff - beq _0208EEC0 - cmp ip, #0xff - blt _0208EEC0 - cmp r1, #0 - beq _0208EEC0 - b _0208EECC -_0208ED98: - cmp r3, #0x100 - movge r2, #0x80000000 - movlt r2, #0 - and r3, r3, #0xff - ands ip, ip, #0xff - beq _0208EE18 -_0208EDB0: - lsls r1, r1, #1 - bne _0208EECC - b _0208EEC0 -_0208EDBC: - lsls r0, r0, #1 - beq _0208EDF4 - mov r3, #1 - lsr r0, r0, #1 - lsr ip, r1, #0x17 - lsl r1, r1, #8 - ands ip, ip, #0xff - beq _0208EE18 - cmp ip, #0xff - beq _0208EDB0 - orr r1, r1, #0x80000000 - orr r3, r3, r2, lsr #23 - orr ip, ip, r2, lsr #23 - b _0208ECF8 -_0208EDF4: - lsr r3, r1, #0x17 - lsl r0, r1, #9 - ands r3, r3, #0xff - beq _0208EE80 - cmp r3, #0xff - blt _0208EE80 - cmp r0, #0 - beq _0208EEC0 - b _0208EEB8 -_0208EE18: - lsls r1, r1, #1 - beq _0208EE88 - lsr r1, r1, #1 - mov ip, #1 - orr r3, r3, r2, lsr #23 - orr ip, ip, r2, lsr #23 - cmp r0, #0 - bmi _0208ECF8 - adds r0, r0, r1 - blo _0208EE4C - and r1, r0, #1 - orr r0, r1, r0, rrx - add ip, ip, #1 -_0208EE4C: - cmp r0, #0 - subge ip, ip, #1 - ands r1, r0, #0xff - add r0, r0, r0 - lsr r0, r0, #9 - orr r0, r0, ip, lsl #23 - bxeq lr - tst r1, #0x80 - bxeq lr - ands r1, r1, #0x7f - andseq r1, r0, #1 - addne r0, r0, #1 - bx lr -_0208EE80: - mov r0, r1 - bx lr -_0208EE88: - cmp r0, #0 - subsge r3, r3, #1 - add r0, r0, r0 - orr r0, r2, r0, lsr #9 - orr r0, r0, r3, lsl #23 - bx lr -_0208EEA0: - cmp r3, #0x100 - movge r2, #0x80000000 - movlt r2, #0 - mov r0, #0xff000000 - orr r0, r2, r0, lsr #1 - bx lr -_0208EEB8: - mvn r0, #0x80000000 - bx lr -_0208EEC0: - mov r0, #0xff000000 - orr r0, r2, r0, lsr #1 - bx lr -_0208EECC: - mvn r0, #0x80000000 - bx lr - arm_func_end AddFloat -_0208EED4: - .byte 0x02, 0x01, 0xE0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_0208eedc -FUN_0208eedc: @ 0x0208EEDC - mov ip, #0x200000 - cmn ip, r1, lsl #1 - bhs _0208EF50 - cmn ip, r3, lsl #1 - bhs _0208EF64 -_0208EEF0: - orrs ip, r3, r1 - bmi _0208EF20 - cmp r1, r3 - cmpeq r0, r2 - movhi r0, #1 - movls r0, #0 - bx lr -_0208EF0C: - mov r0, #0 - mrs ip, apsr - bic ip, ip, #0x20000000 - msr apsr_nzcvq, ip - bx lr -_0208EF20: - orr ip, r0, ip, lsl #1 - orrs ip, ip, r2 - moveq r0, #0 - mrs ip, apsr - bic ip, ip, #0x20000000 - msr apsr_nzcvq, ip - bxeq lr - cmp r3, r1 - cmpeq r2, r0 - movhi r0, #1 - movls r0, #0 - bx lr -_0208EF50: - bne _0208EF0C - cmp r0, #0 - bhi _0208EF0C - cmn ip, r3, lsl #1 - blo _0208EEF0 -_0208EF64: - bne _0208EF0C - cmp r2, #0 - bhi _0208EF0C - b _0208EEF0 - arm_func_end FUN_0208eedc - - arm_func_start FUN_0208ef74 -FUN_0208ef74: @ 0x0208EF74 - mov ip, #0x200000 - cmn ip, r1, lsl #1 - bhs _0208EFF4 - cmn ip, r3, lsl #1 - bhs _0208F008 -_0208EF88: - orrs ip, r3, r1 - bmi _0208EFBC - cmp r1, r3 - cmpeq r0, r2 - movls r0, #1 - movhi r0, #0 - bx lr -_0208EFA4: - mov r0, #0 - mrs ip, apsr - bic ip, ip, #0x40000000 - orr ip, ip, #0x20000000 - msr apsr_nzcvq, ip - bx lr -_0208EFBC: - orr ip, r0, ip, lsl #1 - orrs ip, ip, r2 - moveq r0, #1 - bne _0208EFE0 - mrs ip, apsr - bic ip, ip, #0x20000000 - orr ip, ip, #0x40000000 - msr apsr_nzcvq, ip - bxeq lr -_0208EFE0: - cmp r3, r1 - cmpeq r2, r0 - movls r0, #1 - movhi r0, #0 - bx lr -_0208EFF4: - bne _0208EFA4 - cmp r0, #0 - bhi _0208EFA4 - cmn ip, r3, lsl #1 - blo _0208EF88 -_0208F008: - bne _0208EFA4 - cmp r2, #0 - bhi _0208EFA4 - b _0208EF88 - arm_func_end FUN_0208ef74 - - arm_func_start FUN_0208f018 -FUN_0208f018: @ 0x0208F018 - mov ip, #0x200000 - cmn ip, r1, lsl #1 - bhs _0208F090 - cmn ip, r3, lsl #1 - bhs _0208F0A4 -_0208F02C: - orrs ip, r3, r1 - bmi _0208F05C - cmp r1, r3 - cmpeq r0, r2 - movlo r0, #1 - movhs r0, #0 - bx lr -_0208F048: - mov r0, #0 - mrs ip, apsr - orr ip, ip, #0x20000000 - msr apsr_nzcvq, ip - bx lr -_0208F05C: - orr ip, r0, ip, lsl #1 - orrs ip, ip, r2 - moveq r0, #0 - bne _0208F07C - mrs ip, apsr - orr ip, ip, #0x20000000 - msr apsr_nzcvq, ip - bxeq lr -_0208F07C: - cmp r3, r1 - cmpeq r2, r0 - movlo r0, #1 - movhs r0, #0 - bx lr -_0208F090: - bne _0208F048 - cmp r0, #0 - bhi _0208F048 - cmn ip, r3, lsl #1 - blo _0208F02C -_0208F0A4: - bne _0208F048 - cmp r2, #0 - bhi _0208F048 - b _0208F02C - arm_func_end FUN_0208f018 - - arm_func_start FUN_0208f0b4 -FUN_0208f0b4: @ 0x0208F0B4 - mov ip, #0x200000 - cmn ip, r1, lsl #1 - bhs _0208F11C - cmn ip, r3, lsl #1 - bhs _0208F130 -_0208F0C8: - orrs ip, r3, r1 - bmi _0208F0F8 - cmp r1, r3 - cmpeq r0, r2 - moveq r0, #1 - movne r0, #0 - bx lr -_0208F0E4: - mov r0, #0 - mrs ip, apsr - bic ip, ip, #0x40000000 - msr apsr_nzcvq, ip - bx lr -_0208F0F8: - orr ip, r0, ip, lsl #1 - orrs ip, ip, r2 - moveq r0, #1 - bxeq lr - cmp r3, r1 - cmpeq r2, r0 - moveq r0, #1 - movne r0, #0 - bx lr -_0208F11C: - bne _0208F0E4 - cmp r0, #0 - bhi _0208F0E4 - cmn ip, r3, lsl #1 - blo _0208F0C8 -_0208F130: - bne _0208F0E4 - cmp r2, #0 - bhi _0208F0E4 - b _0208F0C8 - arm_func_end FUN_0208f0b4 - - arm_func_start FUN_0208f140 -FUN_0208f140: @ 0x0208F140 - mov ip, #0x200000 - cmn ip, r1, lsl #1 - bhs _0208F1A8 - cmn ip, r3, lsl #1 - bhs _0208F1BC -_0208F154: - orrs ip, r3, r1 - bmi _0208F184 - cmp r1, r3 - cmpeq r0, r2 - movne r0, #1 - moveq r0, #0 - bx lr -_0208F170: - mov r0, #1 - mrs ip, apsr - bic ip, ip, #0x40000000 - msr apsr_nzcvq, ip - bx lr -_0208F184: - orr ip, r0, ip, lsl #1 - orrs ip, ip, r2 - moveq r0, #0 - bxeq lr - cmp r3, r1 - cmpeq r2, r0 - movne r0, #1 - moveq r0, #0 - bx lr -_0208F1A8: - bne _0208F170 - cmp r0, #0 - bhi _0208F170 - cmn ip, r3, lsl #1 - blo _0208F154 -_0208F1BC: - bne _0208F170 - cmp r2, #0 - bhi _0208F170 - b _0208F154 - arm_func_end FUN_0208f140 - - arm_func_start FUN_0208f1cc -FUN_0208f1cc: @ 0x0208F1CC - mov r3, #0xff000000 - cmp r3, r0, lsl #1 - cmphs r3, r1, lsl #1 - blo _0208F214 - cmp r0, #0 - bicmi r0, r0, #0x80000000 - rsbmi r0, r0, #0 - cmp r1, #0 - bicmi r1, r1, #0x80000000 - rsbmi r1, r1, #0 - cmp r0, r1 - movlt r0, #1 - movge r0, #0 - mrs ip, apsr - orrge ip, ip, #0x20000000 - biclt ip, ip, #0x20000000 - msr apsr_nzcvq, ip - bx lr -_0208F214: - mov r0, #0 - mrs ip, apsr - orr ip, ip, #0x20000000 - msr apsr_nzcvq, ip - bx lr - arm_func_end FUN_0208f1cc -_0208F228: - .byte 0x01, 0x00, 0x20, 0xE0, 0x01, 0x10, 0x20, 0xE0 - .byte 0x01, 0x00, 0x20, 0xE0 - - arm_func_start DivideFloat -DivideFloat: @ 0x0208F234 - stmdb sp!, {lr} - mov ip, #0xff - ands r3, ip, r0, lsr #23 - cmpne r3, #0xff - beq _0208F408 - ands ip, ip, r1, lsr #23 - cmpne ip, #0xff - beq _0208F444 - orr r1, r1, #0x800000 - orr r0, r0, #0x800000 - bic r2, r0, #0xff000000 - bic lr, r1, #0xff000000 -_0208F264: - cmp r2, lr - lsllo r2, r2, #1 - sublo r3, r3, #1 - teq r0, r1 - sub r0, pc, #0x94 - ldrb r1, [r0, lr, lsr #15] - rsb lr, lr, #0 - asr r0, lr, #1 - mul r0, r1, r0 - add r0, r0, #0x80000000 - lsr r0, r0, #6 - mul r0, r1, r0 - lsr r0, r0, #0xe - mul r1, lr, r0 - sub ip, r3, ip - lsr r1, r1, #0xc - mul r1, r0, r1 - lsl r0, r0, #0xe - add r0, r0, r1, lsr #15 - umull r1, r0, r2, r0 - mov r3, r0 - orrmi r0, r0, #0x80000000 - adds ip, ip, #0x7e - bmi _0208F50C - cmp ip, #0xfe - bge _0208F5C0 - add r0, r0, ip, lsl #23 - lsr ip, r1, #0x1c - cmp ip, #7 - beq _0208F3E8 - add r0, r0, r1, lsr #31 - ldm sp!, {lr} - bx lr -_0208F2E8: - .byte 0xFF, 0xFF, 0xFE, 0xFD, 0xFC, 0xFB, 0xFA, 0xF9 - .byte 0xF8, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1, 0xF0, 0xF0, 0xEF, 0xEE, 0xED, 0xEC, 0xEB, 0xEA - .byte 0xEA, 0xE9, 0xE8, 0xE7, 0xE6, 0xE6, 0xE5, 0xE4, 0xE3, 0xE2, 0xE2, 0xE1, 0xE0, 0xDF, 0xDF, 0xDE - .byte 0xDD, 0xDC, 0xDC, 0xDB, 0xDA, 0xD9, 0xD9, 0xD8, 0xD7, 0xD7, 0xD6, 0xD5, 0xD4, 0xD4, 0xD3, 0xD2 - .byte 0xD2, 0xD1, 0xD0, 0xD0, 0xCF, 0xCE, 0xCE, 0xCD, 0xCC, 0xCC, 0xCB, 0xCB, 0xCA, 0xC9, 0xC9, 0xC8 - .byte 0xC8, 0xC7, 0xC6, 0xC6, 0xC5, 0xC5, 0xC4, 0xC3, 0xC3, 0xC2, 0xC2, 0xC1, 0xC0, 0xC0, 0xBF, 0xBF - .byte 0xBE, 0xBE, 0xBD, 0xBD, 0xBC, 0xBC, 0xBB, 0xBA, 0xBA, 0xB9, 0xB9, 0xB8, 0xB8, 0xB7, 0xB7, 0xB6 - .byte 0xB6, 0xB5, 0xB5, 0xB4, 0xB4, 0xB3, 0xB3, 0xB2, 0xB2, 0xB1, 0xB1, 0xB0, 0xB0, 0xAF, 0xAF, 0xAF - .byte 0xAE, 0xAE, 0xAD, 0xAD, 0xAC, 0xAC, 0xAB, 0xAB, 0xAA, 0xAA, 0xAA, 0xA9, 0xA9, 0xA8, 0xA8, 0xA7 - .byte 0xA7, 0xA7, 0xA6, 0xA6, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA3, 0xA3, 0xA2, 0xA2, 0xA2, 0xA1, 0xA1 - .byte 0xA0, 0xA0, 0xA0, 0x9F, 0x9F, 0x9E, 0x9E, 0x9E, 0x9D, 0x9D, 0x9D, 0x9C, 0x9C, 0x9B, 0x9B, 0x9B - .byte 0x9A, 0x9A, 0x9A, 0x99, 0x99, 0x99, 0x98, 0x98, 0x98, 0x97, 0x97, 0x96, 0x96, 0x96, 0x95, 0x95 - .byte 0x95, 0x94, 0x94, 0x94, 0x93, 0x93, 0x93, 0x92, 0x92, 0x92, 0x91, 0x91, 0x91, 0x91, 0x90, 0x90 - .byte 0x90, 0x8F, 0x8F, 0x8F, 0x8E, 0x8E, 0x8E, 0x8D, 0x8D, 0x8D, 0x8C, 0x8C, 0x8C, 0x8C, 0x8B, 0x8B - .byte 0x8B, 0x8A, 0x8A, 0x8A, 0x8A, 0x89, 0x89, 0x89, 0x88, 0x88, 0x88, 0x88, 0x87, 0x87, 0x87, 0x86 - .byte 0x86, 0x86, 0x86, 0x85, 0x85, 0x85, 0x85, 0x84, 0x84, 0x84, 0x83, 0x83, 0x83, 0x83, 0x82, 0x82 - .byte 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80 -_0208F3E8: - lsl r1, r3, #1 + pop {r3, r4, r5, r6, r7, pc} +_022EA934: + bl ov00_022EC1C0 + ldrb r1, [r0, #0x1ad] add r1, r1, #1 - rsb lr, lr, #0 - mul r1, lr, r1 - cmp r1, r2, lsl #24 - addmi r0, r0, #1 - ldm sp!, {lr} - bx lr -_0208F408: - eor lr, r0, r1 - and lr, lr, #0x80000000 - cmp r3, #0 - beq _0208F460 - lsls r0, r0, #9 - bne _0208F5A8 - lsr ip, r1, #0x17 - lsl r1, r1, #9 - ands ip, ip, #0xff - beq _0208F598 - cmp ip, #0xff - blt _0208F598 - cmp r1, #0 - beq _0208F5B4 - b _0208F590 -_0208F444: - eor lr, r0, r1 - and lr, lr, #0x80000000 - cmp ip, #0 - beq _0208F4C4 -_0208F454: - lsls r1, r1, #9 - bne _0208F590 - b _0208F5E0 -_0208F460: - lsls r2, r0, #9 - beq _0208F494 - clz r3, r2 - lsls r2, r2, r3 - rsb r3, r3, #0 - lsr r2, r2, #8 - ands ip, ip, r1, lsr #23 - beq _0208F4EC - cmp ip, #0xff - beq _0208F454 - orr r1, r1, #0x800000 - bic lr, r1, #0xff000000 - b _0208F264 -_0208F494: - lsr ip, r1, #0x17 - lsl r1, r1, #9 - ands ip, ip, #0xff - beq _0208F4B8 - cmp ip, #0xff - blt _0208F5E0 - cmp r1, #0 - beq _0208F5E0 - b _0208F590 -_0208F4B8: - cmp r1, #0 - beq _0208F5B4 - b _0208F5E0 -_0208F4C4: - lsls ip, r1, #9 - beq _0208F598 - mov lr, ip - clz ip, lr - lsls lr, lr, ip - rsb ip, ip, #0 - lsr lr, lr, #8 - orr r0, r0, #0x800000 - bic r2, r0, #0xff000000 - b _0208F264 -_0208F4EC: - lsls ip, r1, #9 - beq _0208F598 - mov lr, ip - clz ip, lr - lsls lr, lr, ip - rsb ip, ip, #0 - lsr lr, lr, #8 - b _0208F264 -_0208F50C: - and r0, r0, #0x80000000 - cmn ip, #0x18 - beq _0208F580 - bmi _0208F5D8 - add r1, ip, #0x17 - lsl r2, r2, r1 - rsb ip, ip, #0 - lsr r3, r3, ip - orr r0, r0, r3 - rsb lr, lr, #0 - mul r1, lr, r3 - cmp r1, r2 - ldmeq sp!, {lr} - bxeq lr - add r1, r1, lr - cmp r1, r2 - beq _0208F574 - addmi r0, r0, #1 - subpl r1, r1, lr - add r1, lr, r1, lsl #1 - cmp r1, r2, lsl #1 - and r3, r0, #1 - addmi r0, r0, #1 - addeq r0, r0, r3 - ldm sp!, {lr} - bx lr -_0208F574: - add r0, r0, #1 - ldm sp!, {lr} - bx lr -_0208F580: - cmn r2, lr - addne r0, r0, #1 - ldm sp!, {lr} - bx lr -_0208F590: - mov r0, r1 - b _0208F5A8 -_0208F598: - mov r0, #0xff000000 - orr r0, lr, r0, lsr #1 - ldm sp!, {lr} - bx lr -_0208F5A8: - mvn r0, #0x80000000 - ldm sp!, {lr} - bx lr -_0208F5B4: - mvn r0, #0x80000000 - ldm sp!, {lr} - bx lr -_0208F5C0: - tst r0, #0x80000000 - mov r0, #0xff000000 - asrne r0, r0, #1 - lsreq r0, r0, #1 - ldm sp!, {lr} - bx lr -_0208F5D8: - ldm sp!, {lr} - bx lr -_0208F5E0: - mov r0, lr - ldm sp!, {lr} - bx lr - arm_func_end DivideFloat - - arm_func_start FloatToDouble -FloatToDouble: @ 0x0208F5EC - and r2, r0, #0x80000000 - lsr ip, r0, #0x17 - lsl r3, r0, #9 - ands ip, ip, #0xff - beq _0208F61C - cmp ip, #0xff - beq _0208F648 -_0208F608: - add ip, ip, #0x380 - lsl r0, r3, #0x14 - orr r1, r2, r3, lsr #12 - orr r1, r1, ip, lsl #20 - bx lr -_0208F61C: - cmp r3, #0 - bne _0208F630 - mov r1, r2 - mov r0, #0 - bx lr -_0208F630: - lsr r3, r3, #1 - clz ip, r3 - lsls r3, r3, ip - rsb ip, ip, #1 - add r3, r3, r3 - b _0208F608 -_0208F648: - cmp r3, #0 - bhi _0208F660 - ldr r1, _0208F66C @ =0x7FF00000 - orr r1, r1, r2 - mov r0, #0 - bx lr -_0208F660: - mvn r0, #0 - bic r1, r0, #0x80000000 - bx lr - .align 2, 0 -_0208F66C: .4byte 0x7FF00000 - arm_func_end FloatToDouble - - arm_func_start FloatToInt -FloatToInt: @ 0x0208F670 - bic r1, r0, #0x80000000 - mov r2, #0x9e - subs r2, r2, r1, lsr #23 - ble _0208F698 - lsl r1, r1, #8 - orr r1, r1, #0x80000000 - cmp r0, #0 - lsr r0, r1, r2 - rsbmi r0, r0, #0 - bx lr -_0208F698: - mvn r0, r0, asr #31 - add r0, r0, #0x80000000 - bx lr - arm_func_end FloatToInt - - arm_func_start IntToFloat -IntToFloat: @ 0x0208F6A4 - ands r2, r0, #0x80000000 - rsbmi r0, r0, #0 - cmp r0, #0 - bxeq lr - clz r3, r0 - lsls r0, r0, r3 - rsb r3, r3, #0x9e - ands r1, r0, #0xff - add r0, r0, r0 - orr r0, r2, r0, lsr #9 - orr r0, r0, r3, lsl #23 - bxeq lr - tst r1, #0x80 - bxeq lr - ands r3, r1, #0x7f - andseq r3, r0, #1 - addne r0, r0, #1 - bx lr - arm_func_end IntToFloat - - arm_func_start UIntToFloat -UIntToFloat: @ 0x0208F6EC - cmp r0, #0 - bxeq lr - mov r3, #0x9e - bmi _0208F708 - clz ip, r0 - lsls r0, r0, ip - sub r3, r3, ip -_0208F708: - ands r2, r0, #0xff - add r0, r0, r0 - lsr r0, r0, #9 - orr r0, r0, r3, lsl #23 - bxeq lr - tst r2, #0x80 - bxeq lr - ands r1, r2, #0x7f - andseq r1, r0, #1 - addne r0, r0, #1 - bx lr - arm_func_end UIntToFloat - - arm_func_start MultiplyFloat -MultiplyFloat: @ 0x0208F734 - eor r2, r0, r1 - and r2, r2, #0x80000000 - mov ip, #0xff - ands r3, ip, r0, lsr #23 - lsl r0, r0, #8 - cmpne r3, #0xff - beq _0208F7B0 - orr r0, r0, #0x80000000 - ands ip, ip, r1, lsr #23 - lsl r1, r1, #8 - cmpne ip, #0xff - beq _0208F7F0 - orr r1, r1, #0x80000000 -_0208F768: - add ip, r3, ip - umull r1, r3, r0, r1 - movs r0, r3 - addpl r0, r0, r0 - subpl ip, ip, #1 - subs ip, ip, #0x7f - bmi _0208F87C - cmp ip, #0xfe - bge _0208F8E8 - ands r3, r0, #0xff - orr r0, r2, r0, lsr #8 - add r0, r0, ip, lsl #23 - tst r3, #0x80 - bxeq lr - orrs r1, r1, r3, lsl #25 - andseq r3, r0, #1 - addne r0, r0, #1 - bx lr -_0208F7B0: - cmp r3, #0 - beq _0208F804 - lsls r0, r0, #1 - bne _0208F8D8 - lsr ip, r1, #0x17 - lsl r1, r1, #9 - ands ip, ip, #0xff - beq _0208F7E4 - cmp ip, #0xff - blt _0208F8CC - cmp r1, #0 - beq _0208F8CC - b _0208F8D8 -_0208F7E4: - cmp r1, #0 - beq _0208F8E0 - b _0208F8CC -_0208F7F0: - cmp ip, #0 - beq _0208F860 -_0208F7F8: - lsls r1, r1, #1 - bne _0208F8D8 - b _0208F8CC -_0208F804: - lsls r0, r0, #1 - beq _0208F83C - lsr r0, r0, #1 - clz r3, r0 - lsls r0, r0, r3 - rsb r3, r3, #1 - lsr ip, r1, #0x17 - lsl r1, r1, #8 - ands ip, ip, #0xff - beq _0208F860 - cmp ip, #0xff - beq _0208F7F8 - orr r1, r1, #0x80000000 - b _0208F768 -_0208F83C: - lsr ip, r1, #0x17 - lsl r1, r1, #9 - ands ip, ip, #0xff - beq _0208F90C - cmp ip, #0xff - blt _0208F90C - cmp r1, #0 - beq _0208F8E0 - b _0208F8D8 -_0208F860: - lsls r1, r1, #1 - beq _0208F90C - lsr r1, r1, #1 - clz ip, r1 - lsls r1, r1, ip - rsb ip, ip, #1 - b _0208F768 -_0208F87C: - cmn ip, #0x18 - beq _0208F8C4 - bmi _0208F904 - cmp r1, #0 - orrne r0, r0, #1 - mov r3, r0 - lsr r0, r0, #8 - rsb ip, ip, #0 - orr r0, r2, r0, lsr ip - rsb ip, ip, #0x18 - lsls r1, r3, ip - bxeq lr - tst r1, #0x80000000 - bxeq lr - lsls r1, r1, #1 - andseq r1, r0, #1 - addne r0, r0, #1 - bx lr -_0208F8C4: - lsl r0, r0, #1 - b _0208F8F4 -_0208F8CC: - mov r0, #0xff000000 - orr r0, r2, r0, lsr #1 - bx lr -_0208F8D8: - mvn r0, #0x80000000 - bx lr -_0208F8E0: - mvn r0, #0x80000000 - bx lr -_0208F8E8: - mov r0, #0xff000000 - orr r0, r2, r0, lsr #1 - bx lr -_0208F8F4: - movs r1, r0 - mov r0, r2 - addne r0, r0, #1 - bx lr -_0208F904: - mov r0, r2 - bx lr -_0208F90C: - mov r0, r2 - bx lr - arm_func_end MultiplyFloat - - arm_func_start Sqrtf -Sqrtf: @ 0x0208F914 - stmdb sp!, {lr} - mov r2, #0xff - cmp r0, r2, lsl #23 - bhs _0208F9B8 - lsrs ip, r0, #0x17 - beq _0208F998 - bic r0, r0, r2, lsl #23 - orr r0, r0, #0x800000 -_0208F934: - asrs ip, ip, #1 - bhs _0208F944 - sub ip, ip, #1 - lsl r0, r0, #1 -_0208F944: - lsls r1, r0, #1 - mov r0, #0 - mov r2, #0 - mov lr, #0x1000000 -_0208F954: - add r3, r2, lr - cmp r3, r1 - addle r2, r3, lr - suble r1, r1, r3 - addle r0, r0, lr - lsl r1, r1, #1 - lsrs lr, lr, #1 - bne _0208F954 - cmp r1, #0 - biceq r0, r0, #1 - lsrs r0, r0, #1 - adc r0, r0, #0 - add r0, r0, #0x20000000 - sub r0, r0, #0x800000 - add r0, r0, ip, lsl #23 - ldm sp!, {lr} - bx lr -_0208F998: - cmp r0, #0 - ldmeq sp!, {lr} - bxeq lr - clz ip, r0 - lsls r0, r0, ip - rsb ip, ip, #9 - lsr r0, r0, #8 - b _0208F934 -_0208F9B8: - ldmeq sp!, {lr} - bxeq lr - tst r0, #0x80000000 - beq _0208F9D4 - bics r3, r0, #0x80000000 - ldmeq sp!, {lr} - bxeq lr -_0208F9D4: - ldr r2, _0208F9F0 @ =0x7FC00000 - orr r0, r0, r2 - ldr r3, _0208F9F4 @ =0x022BCA70 - mov r4, #0x21 - str r4, [r3] - ldm sp!, {lr} - bx lr - .align 2, 0 -_0208F9F0: .4byte 0x7FC00000 -_0208F9F4: .4byte 0x022BCA70 - arm_func_end Sqrtf -_0208F9F8: - .byte 0x01, 0x00, 0x20, 0xE0, 0x01, 0x10, 0x20, 0xE0 - .byte 0x01, 0x00, 0x20, 0xE0 - - arm_func_start SubtractFloat -SubtractFloat: @ 0x0208FA04 - eors r2, r0, r1 - eormi r1, r1, #0x80000000 - bmi _0208ECC4 -_0208FA10: - subs ip, r0, r1 - eorlo ip, ip, #0x80000000 - sublo r0, r0, ip - addlo r1, r1, ip - mov r2, #0x80000000 - lsr r3, r0, #0x17 - orr r0, r2, r0, lsl #8 - ands ip, r3, #0xff - cmpne ip, #0xff - beq _0208FB2C - lsr ip, r1, #0x17 - orr r1, r2, r1, lsl #8 - ands r2, ip, #0xff - beq _0208FB6C -_0208FA48: - subs ip, r3, ip - beq _0208FA90 - rsb r2, ip, #0x20 - lsls r2, r1, r2 - lsr r1, r1, ip - orrne r1, r1, #1 - subs r0, r0, r1 - bpl _0208FAD4 - ands r1, r0, #0xff - add r0, r0, r0 - lsr r0, r0, #9 - orr r0, r0, r3, lsl #23 - tst r1, #0x80 - bxeq lr - ands r1, r1, #0x7f - andseq r1, r0, #1 - addne r0, r0, #1 - bx lr -_0208FA90: - subs r0, r0, r1 - beq _0208FC38 - lsl r2, r3, #0x17 - and r2, r2, #0x80000000 - bic r3, r3, #0x100 - clz ip, r0 - lsls r0, r0, ip - sub r3, r3, ip - cmp r3, #0 - bgt _0208FAC4 - rsb r3, r3, #9 - orr r0, r2, r0, lsr r3 - bx lr -_0208FAC4: - add r0, r0, r0 - orr r0, r2, r0, lsr #9 - orr r0, r0, r3, lsl #23 - bx lr -_0208FAD4: - lsl r2, r3, #0x17 - and r2, r2, #0x80000000 - bic r3, r3, #0x100 - clz ip, r0 - lsls r0, r0, ip - sub r3, r3, ip - cmp r3, #0 - bgt _0208FB00 - rsb r3, r3, #9 - orr r0, r2, r0, lsr r3 - bx lr -_0208FB00: - ands r1, r0, #0xff - add r0, r0, r0 - orr r0, r2, r0, lsr #9 - orr r0, r0, r3, lsl #23 - bxeq lr - tst r1, #0x80 - bxeq lr - ands r1, r1, #0x7f - andseq r1, r0, #1 - addne r0, r0, #1 - bx lr -_0208FB2C: - cmp r3, #0x100 - movge r2, #0x80000000 - movlt r2, #0 - ands r3, r3, #0xff - beq _0208FB94 - lsls r0, r0, #1 - bne _0208FC6C - lsr ip, r1, #0x17 - lsl r1, r1, #9 - ands ip, ip, #0xff - beq _0208FC60 - cmp ip, #0xff - blt _0208FC60 - cmp r1, #0 - beq _0208FC74 - b _0208FC6C -_0208FB6C: - cmp ip, #0x100 - movge r2, #0x80000000 - movlt r2, #0 - and r3, r3, #0xff - ands ip, ip, #0xff - beq _0208FBFC -_0208FB84: - eor r2, r2, #0x80000000 - lsls r1, r1, #1 - bne _0208FC6C - b _0208FC60 -_0208FB94: - lsls r0, r0, #1 - beq _0208FBCC - lsr r0, r0, #1 - mov r3, #1 - lsr ip, r1, #0x17 - lsl r1, r1, #8 - ands ip, ip, #0xff - beq _0208FBFC - cmp ip, #0xff - beq _0208FB84 - orr r1, r1, #0x80000000 - orr r3, r3, r2, lsr #23 - orr ip, ip, r2, lsr #23 - b _0208FA48 -_0208FBCC: - lsr r3, r1, #0x17 - lsl r0, r1, #9 - ands r2, r3, #0xff - beq _0208FBF0 - cmp r2, #0xff - blt _0208FC18 - cmp r0, #0 - bne _0208FC58 - b _0208FC60 -_0208FBF0: - cmp r0, #0 - beq _0208FC38 - b _0208FC18 -_0208FBFC: - lsls r1, r1, #1 - beq _0208FC20 - lsr r1, r1, #1 - mov ip, #1 - orr ip, ip, r2, lsr #23 - orr r3, r3, r2, lsr #23 - b _0208FA48 -_0208FC18: - mov r0, r1 - bx lr -_0208FC20: - cmp r0, #0 - subsge r3, r3, #1 - add r0, r0, r0 - orr r0, r2, r0, lsr #9 - orr r0, r0, r3, lsl #23 - bx lr -_0208FC38: - mov r0, #0 - bx lr -_0208FC40: - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x30, 0x53, 0xA2, 0x00, 0x00, 0x80, 0xE0, 0xA0, 0x04, 0xA0, 0xE1 - .byte 0x83, 0x0B, 0x80, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 -_0208FC58: - mvn r0, #0x80000000 - bx lr -_0208FC60: - mov r0, #0xff000000 - orr r0, r2, r0, lsr #1 - bx lr -_0208FC6C: - mvn r0, #0x80000000 - bx lr -_0208FC74: - mvn r0, #0x80000000 - bx lr - arm_func_end SubtractFloat - - arm_func_start FUN_0208fc7c -FUN_0208fc7c: @ 0x0208FC7C - push {r4, r5, r6, r7, fp, ip, lr} - mov r4, r1 - orr r4, r4, #1 - b _0208FC9C - arm_func_end FUN_0208fc7c - - arm_func_start FUN_0208fc8c -FUN_0208fc8c: @ 0x0208FC8C - push {r4, r5, r6, r7, fp, ip, lr} - eor r4, r1, r3 - asr r4, r4, #1 - lsl r4, r4, #1 -_0208FC9C: - orrs r5, r3, r2 - bne _0208FCAC - pop {r4, r5, r6, r7, fp, ip, lr} - bx lr -_0208FCAC: - lsr r5, r0, #0x1f - add r5, r5, r1 - lsr r6, r2, #0x1f - add r6, r6, r3 - orrs r6, r5, r6 - bne _0208FCE0 - mov r1, r2 - bl DivideInt - ands r4, r4, #1 - movne r0, r1 - asr r1, r0, #0x1f - pop {r4, r5, r6, r7, fp, ip, lr} - bx lr -_0208FCE0: - cmp r1, #0 - bge _0208FCF0 - rsbs r0, r0, #0 - rsc r1, r1, #0 -_0208FCF0: - cmp r3, #0 - bge _0208FD00 - rsbs r2, r2, #0 - rsc r3, r3, #0 -_0208FD00: - orrs r5, r1, r0 - beq _0208FE24 - mov r5, #0 - mov r6, #1 - cmp r3, #0 - bmi _0208FD2C -_0208FD18: - add r5, r5, #1 - adds r2, r2, r2 - adcs r3, r3, r3 - bpl _0208FD18 - add r6, r6, r5 -_0208FD2C: - cmp r1, #0 - blt _0208FD4C -_0208FD34: - cmp r6, #1 - beq _0208FD4C - sub r6, r6, #1 - adds r0, r0, r0 - adcs r1, r1, r1 - bpl _0208FD34 -_0208FD4C: - mov r7, #0 - mov ip, #0 - mov fp, #0 - b _0208FD74 -_0208FD5C: - orr ip, ip, #1 - subs r6, r6, #1 - beq _0208FDCC - adds r0, r0, r0 - adcs r1, r1, r1 - adcs r7, r7, r7 -_0208FD74: - subs r0, r0, r2 - sbcs r1, r1, r3 - sbcs r7, r7, #0 - adds ip, ip, ip - adc fp, fp, fp - cmp r7, #0 - bge _0208FD5C -_0208FD90: - subs r6, r6, #1 - beq _0208FDC4 - adds r0, r0, r0 - adcs r1, r1, r1 - adc r7, r7, r7 - adds r0, r0, r2 - adcs r1, r1, r3 - adc r7, r7, #0 - adds ip, ip, ip - adc fp, fp, fp - cmp r7, #0 - bge _0208FD5C - b _0208FD90 -_0208FDC4: - adds r0, r0, r2 - adc r1, r1, r3 -_0208FDCC: - ands r7, r4, #1 - moveq r0, ip - moveq r1, fp - beq _0208FE04 - subs r7, r5, #0x20 - lsrge r0, r1, r7 - bge _0208FE28 - rsb r7, r5, #0x20 - lsr r0, r0, r5 - orr r0, r0, r1, lsl r7 - lsr r1, r1, r5 - b _0208FE04 -_0208FDFC: - .byte 0x31, 0x07, 0xA0, 0xE1 - .byte 0x00, 0x10, 0xA0, 0xE3 -_0208FE04: - cmp r4, #0 - blt _0208FE14 - pop {r4, r5, r6, r7, fp, ip, lr} - bx lr -_0208FE14: - rsbs r0, r0, #0 - rsc r1, r1, #0 - pop {r4, r5, r6, r7, fp, ip, lr} - bx lr -_0208FE24: - mov r0, #0 -_0208FE28: - mov r1, #0 - cmp r4, #0 - blt _0208FE14 - pop {r4, r5, r6, r7, fp, ip, lr} - bx lr - arm_func_end FUN_0208fc8c - - arm_func_start FUN_0208fe3c -FUN_0208fe3c: @ 0x0208FE3C - push {r4, r5, r6, r7, fp, ip, lr} - mov r4, #0 - b _0208FE50 - arm_func_end FUN_0208fe3c - - arm_func_start FUN_0208fe48 -FUN_0208fe48: @ 0x0208FE48 - push {r4, r5, r6, r7, fp, ip, lr} - mov r4, #1 -_0208FE50: - orrs r5, r3, r2 - bne _0208FE60 - pop {r4, r5, r6, r7, fp, ip, lr} - bx lr -_0208FE60: - orrs r5, r1, r3 - bne _0208FD00 - mov r1, r2 - bl DivideUIntNoZeroCheck - cmp r4, #0 - movne r0, r1 - mov r1, #0 - pop {r4, r5, r6, r7, fp, ip, lr} - bx lr - arm_func_end FUN_0208fe48 - - arm_func_start FUN_0208fe84 -FUN_0208fe84: @ 0x0208FE84 - push {r4, r5, lr} - umull r5, r4, r0, r2 - mla r4, r0, r3, r4 - mla r4, r2, r1, r4 - mov r1, r4 - mov r0, r5 - pop {r4, r5, lr} - bx lr - arm_func_end FUN_0208fe84 - - arm_func_start DivideInt -DivideInt: @ 0x0208FEA4 - eor ip, r0, r1 - and ip, ip, #0x80000000 - cmp r0, #0 - rsblt r0, r0, #0 - addlt ip, ip, #1 - cmp r1, #0 - rsblt r1, r1, #0 - beq _0209009C - cmp r0, r1 - movlo r1, r0 - movlo r0, #0 - blo _0209009C - mov r2, #0x1c - lsr r3, r0, #4 - cmp r1, r3, lsr #12 - suble r2, r2, #0x10 - lsrle r3, r3, #0x10 - cmp r1, r3, lsr #4 - suble r2, r2, #8 - lsrle r3, r3, #8 - cmp r1, r3 - suble r2, r2, #4 - lsrle r3, r3, #4 - lsl r0, r0, r2 - rsb r1, r1, #0 - adds r0, r0, r0 - add r2, r2, r2, lsl #1 - add pc, pc, r2, lsl #2 - mov r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - mov r1, r3 -_0209009C: - ands r3, ip, #0x80000000 - rsbne r0, r0, #0 - ands r3, ip, #1 - rsbne r1, r1, #0 - bx lr - arm_func_end DivideInt - - arm_func_start DivideUInt -DivideUInt: @ 0x020900B0 - cmp r1, #0 - bxeq lr - arm_func_end DivideUInt - - arm_func_start DivideUIntNoZeroCheck -DivideUIntNoZeroCheck: @ 0x020900B8 - cmp r0, r1 - movlo r1, r0 - movlo r0, #0 - bxlo lr - mov r2, #0x1c - lsr r3, r0, #4 - cmp r1, r3, lsr #12 - suble r2, r2, #0x10 - lsrle r3, r3, #0x10 - cmp r1, r3, lsr #4 - suble r2, r2, #8 - lsrle r3, r3, #8 - cmp r1, r3 - suble r2, r2, #4 - lsrle r3, r3, #4 - lsl r0, r0, r2 - rsb r1, r1, #0 - adds r0, r0, r0 - add r2, r2, r2, lsl #1 - add pc, pc, r2, lsl #2 - mov r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - adcs r3, r1, r3, lsl #1 - sublo r3, r3, r1 - adcs r0, r0, r0 - mov r1, r3 - bx lr - arm_func_end DivideUIntNoZeroCheck -_02090294: - .byte 0x03, 0x10, 0x21, 0xE0, 0x03, 0x30, 0x21, 0xE0, 0x03, 0x10, 0x21, 0xE0 - .byte 0x02, 0x00, 0x20, 0xE0, 0x02, 0x20, 0x20, 0xE0, 0x02, 0x00, 0x20, 0xE0 - - arm_func_start FUN_020902ac -FUN_020902ac: @ 0x020902AC - push {r4, r5, r6, lr} - ldr lr, _020907EC @ =0x00000FFE - eor r4, r1, r3 - ands ip, lr, r1, lsr #19 - cmpne ip, lr - beq _02090658 - bic r1, r1, lr, lsl #20 - orr r1, r1, #0x100000 - add ip, ip, r4, lsr #31 -_020902D0: - ands r4, lr, r3, lsr #19 - cmpne r4, lr - beq _020906F0 - bic r3, r3, lr, lsl #20 - orr r3, r3, #0x100000 -_020902E4: - sub ip, ip, r4 - cmp r1, r3 - cmpeq r0, r2 - bhs _02090300 - adds r0, r0, r0 - adc r1, r1, r1 - sub ip, ip, #2 -_02090300: - sub r4, pc, #0x24 - ldrb lr, [r4, r3, lsr #12] - rsbs r2, r2, #0 - rsc r3, r3, #0 - mov r4, #0x20000000 - mla r5, lr, r3, r4 - lsl r6, r3, #0xa - lsr r5, r5, #7 - mul lr, r5, lr - orr r6, r6, r2, lsr #22 - lsr lr, lr, #0xd - mul r5, lr, r6 - lsl r6, r1, #0xa - orr r6, r6, r0, lsr #22 - lsr r5, r5, #0x10 - mul r5, lr, r5 - lsl lr, lr, #0xe - add lr, lr, r5, lsr #16 - umull r5, r6, lr, r6 - umull r4, r5, r6, r2 - mla r5, r3, r6, r5 - lsr r4, r4, #0x1a - orr r4, r4, r5, lsl #6 - add r4, r4, r0, lsl #2 - umull lr, r5, r4, lr - mov r4, #0 - adds r5, r5, r6, lsl #24 - adc r4, r4, r6, lsr #8 - cmp ip, #0x800 - bge _020904E4 - add ip, ip, #0x7f0 - adds ip, ip, #0xc - bmi _020904FC - orr r1, r4, ip, lsl #31 - bic ip, ip, #1 - add r1, r1, ip, lsl #19 - tst lr, #0x80000000 - bne _020903D4 - rsbs r2, r2, #0 - lsl r4, r4, #1 - add r4, r4, r5, lsr #31 - mul lr, r2, r4 - mov r6, #0 - lsl r4, r5, #1 - orr r4, r4, #1 - umlal r6, lr, r4, r2 - rsc r3, r3, #0 - mla lr, r4, r3, lr - cmp lr, r0, lsl #21 - bmi _020903D4 - mov r0, r5 - pop {r4, r5, r6, lr} - bx lr -_020903D4: - adds r0, r5, #1 - adc r1, r1, #0 - pop {r4, r5, r6, lr} - bx lr -_020903E4: - .byte 0xFF, 0xFF, 0xFE, 0xFD, 0xFC, 0xFB, 0xFA, 0xF9, 0xF8, 0xF7, 0xF6, 0xF5 - .byte 0xF4, 0xF3, 0xF2, 0xF1, 0xF0, 0xF0, 0xEF, 0xEE, 0xED, 0xEC, 0xEB, 0xEA, 0xEA, 0xE9, 0xE8, 0xE7 - .byte 0xE6, 0xE6, 0xE5, 0xE4, 0xE3, 0xE2, 0xE2, 0xE1, 0xE0, 0xDF, 0xDF, 0xDE, 0xDD, 0xDC, 0xDC, 0xDB - .byte 0xDA, 0xD9, 0xD9, 0xD8, 0xD7, 0xD7, 0xD6, 0xD5, 0xD4, 0xD4, 0xD3, 0xD2, 0xD2, 0xD1, 0xD0, 0xD0 - .byte 0xCF, 0xCE, 0xCE, 0xCD, 0xCC, 0xCC, 0xCB, 0xCB, 0xCA, 0xC9, 0xC9, 0xC8, 0xC8, 0xC7, 0xC6, 0xC6 - .byte 0xC5, 0xC5, 0xC4, 0xC3, 0xC3, 0xC2, 0xC2, 0xC1, 0xC0, 0xC0, 0xBF, 0xBF, 0xBE, 0xBE, 0xBD, 0xBD - .byte 0xBC, 0xBC, 0xBB, 0xBA, 0xBA, 0xB9, 0xB9, 0xB8, 0xB8, 0xB7, 0xB7, 0xB6, 0xB6, 0xB5, 0xB5, 0xB4 - .byte 0xB4, 0xB3, 0xB3, 0xB2, 0xB2, 0xB1, 0xB1, 0xB0, 0xB0, 0xAF, 0xAF, 0xAF, 0xAE, 0xAE, 0xAD, 0xAD - .byte 0xAC, 0xAC, 0xAB, 0xAB, 0xAA, 0xAA, 0xAA, 0xA9, 0xA9, 0xA8, 0xA8, 0xA7, 0xA7, 0xA7, 0xA6, 0xA6 - .byte 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA3, 0xA3, 0xA2, 0xA2, 0xA2, 0xA1, 0xA1, 0xA0, 0xA0, 0xA0, 0x9F - .byte 0x9F, 0x9E, 0x9E, 0x9E, 0x9D, 0x9D, 0x9D, 0x9C, 0x9C, 0x9B, 0x9B, 0x9B, 0x9A, 0x9A, 0x9A, 0x99 - .byte 0x99, 0x99, 0x98, 0x98, 0x98, 0x97, 0x97, 0x96, 0x96, 0x96, 0x95, 0x95, 0x95, 0x94, 0x94, 0x94 - .byte 0x93, 0x93, 0x93, 0x92, 0x92, 0x92, 0x91, 0x91, 0x91, 0x91, 0x90, 0x90, 0x90, 0x8F, 0x8F, 0x8F - .byte 0x8E, 0x8E, 0x8E, 0x8D, 0x8D, 0x8D, 0x8C, 0x8C, 0x8C, 0x8C, 0x8B, 0x8B, 0x8B, 0x8A, 0x8A, 0x8A - .byte 0x8A, 0x89, 0x89, 0x89, 0x88, 0x88, 0x88, 0x88, 0x87, 0x87, 0x87, 0x86, 0x86, 0x86, 0x86, 0x85 - .byte 0x85, 0x85, 0x85, 0x84, 0x84, 0x84, 0x83, 0x83, 0x83, 0x83, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81 - .byte 0x81, 0x81, 0x80, 0x80 -_020904E4: - lsls r1, ip, #0x1f - orr r1, r1, #0x7f000000 - orr r1, r1, #0xf00000 - mov r0, #0 - pop {r4, r5, r6, lr} - bx lr -_020904FC: - mvn r6, ip, asr #1 - cmp r6, #0x34 - bgt _02090648 - beq _02090624 - cmp r6, #0x14 - bge _02090544 - rsb r6, r6, #0x13 - lsl lr, r0, r6 - rsb r6, r6, #0x14 - lsr r0, r5, r6 - rsb r6, r6, #0x20 - orr r0, r0, r4, lsl r6 - rsb r6, r6, #0x20 - lsr r4, r4, r6 - orr r1, r4, ip, lsl #31 - mov ip, lr - mov lr, #0 - b _02090574 -_02090544: - rsb r6, r6, #0x33 - lsl lr, r1, r6 - lsl r1, ip, #0x1f - rsb r6, r6, #0x20 - orr ip, lr, r0, lsr r6 - rsb r6, r6, #0x20 - lsl lr, r0, r6 - lsr r5, r5, #0x15 - orr r5, r5, r4, lsl #11 - rsb r6, r6, #0x1f - lsr r0, r5, r6 - mov r4, #0 -_02090574: - rsbs r2, r2, #0 - mul r4, r2, r4 - mov r5, #0 - umlal r5, r4, r2, r0 - rsc r3, r3, #0 - mla r4, r0, r3, r4 - cmp r4, ip - cmpeq r5, lr - popeq {r4, r5, r6, lr} - bxeq lr - adds r5, r5, r2 - adc r4, r4, r3 - cmp r4, ip - bmi _02090618 - bne _020905BC - cmp r5, lr - beq _02090608 - blo _02090618 -_020905BC: - subs r5, r5, r2 - sbc r4, r4, r3 -_020905C4: - adds r5, r5, r5 - adc r4, r4, r4 - adds r5, r5, r2 - adc r4, r4, r3 - adds lr, lr, lr - adc ip, ip, ip - cmp r4, ip - bmi _02090608 - popne {r4, r5, r6, lr} - bxne lr - cmp r5, lr - blo _02090608 - popne {r4, r5, r6, lr} - bxne lr - tst r0, #1 - popeq {r4, r5, r6, lr} - bxeq lr -_02090608: - adds r0, r0, #1 - adc r1, r1, #0 - pop {r4, r5, r6, lr} - bx lr -_02090618: - adds r0, r0, #1 - adc r1, r1, #0 - b _020905C4 -_02090624: - rsbs r2, r2, #0 - rsc r3, r3, #0 - cmp r1, r3 - cmpeq r0, r2 - lsl r1, ip, #0x1f - mov r0, #0 - movne r0, #1 - pop {r4, r5, r6, lr} - bx lr -_02090648: - lsl r1, ip, #0x1f - mov r0, #0 - pop {r4, r5, r6, lr} - bx lr -_02090658: - orrs r5, r0, r1, lsl #1 - beq _0209077C - cmp ip, lr - beq _020906C0 - lsls r1, r1, #0xc - beq _0209069C - clz r5, r1 - lsls r1, r1, r5 - sub ip, ip, r5 - add r5, ip, #0x1f - lsr r1, r1, #0xb - orr r1, r1, r0, lsr r5 - rsb r5, r5, #0x20 - lsl r0, r0, r5 - lsl ip, ip, #1 - orr ip, ip, r4, lsr #31 - b _020902D0 -_0209069C: - mvn ip, #0x13 - clz r5, r0 - lsls r0, r0, r5 - sub ip, ip, r5 - lsr r1, r0, #0xb - lsl r0, r0, #0x15 - lsl ip, ip, #1 - orr ip, ip, r4, lsr #31 - b _020902D0 -_020906C0: - orrs r5, r0, r1, lsl #12 - bne _020907A4 - bic r5, r3, #0x80000000 - cmp r5, lr, lsl #19 - bhs _020906E4 - and r5, r3, #0x80000000 - eor r1, r5, r1 - pop {r4, r5, r6, lr} - bx lr -_020906E4: - orrs r5, r2, r3, lsl #12 - bne _020907C4 - b _020907DC -_020906F0: - orrs r5, r2, r3, lsl #1 - beq _02090768 - cmp r4, lr - beq _02090750 - lsls r3, r3, #0xc - beq _02090730 - clz r5, r3 - lsls r3, r3, r5 - sub r4, r4, r5 - add r5, r4, #0x1f - lsr r3, r3, #0xb - orr r3, r3, r2, lsr r5 - rsb r5, r5, #0x20 - lsl r2, r2, r5 - lsl r4, r4, #1 - b _020902E4 -_02090730: - mvn r4, #0x13 - clz r5, r2 - lsls r2, r2, r5 - sub r4, r4, r5 - lsr r3, r2, #0xb - lsl r2, r2, #0x15 - lsl r4, r4, #1 - b _020902E4 -_02090750: - orrs r5, r2, r3, lsl #12 - bne _020907C4 - lsl r1, ip, #0x1f - mov r0, #0 - pop {r4, r5, r6, lr} - bx lr -_02090768: - lsl r1, ip, #0x1f - orr r1, r1, lr, lsl #19 - mov r0, #0 - pop {r4, r5, r6, lr} - bx lr -_0209077C: - orrs r5, r2, r3, lsl #1 - beq _020907DC - bic r5, r3, #0x80000000 - cmp r5, lr, lsl #19 - cmpeq r2, #0 - bhi _020907C4 - eor r1, r1, r3 - and r1, r1, #0x80000000 - pop {r4, r5, r6, lr} - bx lr -_020907A4: - tst r1, #0x80000 - beq _020907DC - bic r5, r3, #0x80000000 - cmp r5, lr, lsl #19 - cmpeq r2, #0 - bhi _020907C4 - pop {r4, r5, r6, lr} - bx lr -_020907C4: - tst r3, #0x80000 - beq _020907DC - mov r1, r3 - mov r0, r2 - pop {r4, r5, r6, lr} - bx lr -_020907DC: - orr r1, r1, #0x7f000000 - orr r1, r1, #0xf80000 - pop {r4, r5, r6, lr} - bx lr - .align 2, 0 -_020907EC: .4byte 0x00000FFE - arm_func_end FUN_020902ac - - arm_func_start FUN_020907F0 -FUN_020907F0: @ 0x020907F0 - bx lr - arm_func_end FUN_020907F0 - - arm_func_start FUN_020907f4 -FUN_020907f4: @ 0x020907F4 - str lr, [sp, #-4]! - mov r1, r0 - mov r0, #3 - svc #0x123456 - pop {pc} - arm_func_end FUN_020907f4 - - arm_func_start FUN_02090808 -FUN_02090808: @ 0x02090808 - str lr, [sp, #-4]! - mov r1, #0 - mov r0, #7 - svc #0x123456 - pop {pc} - arm_func_end FUN_02090808 -_0209081C: - .byte 0xF8, 0x40, 0x2D, 0xE9 - .byte 0x02, 0x60, 0xA0, 0xE1, 0x00, 0x50, 0x96, 0xE5, 0x01, 0x70, 0xA0, 0xE1, 0x00, 0x00, 0x55, 0xE3 - .byte 0x00, 0x40, 0xA0, 0xE3, 0x0A, 0x00, 0x00, 0x9A, 0xF2, 0xFF, 0xFF, 0xEB, 0xFF, 0x10, 0x00, 0xE2 - .byte 0x0D, 0x00, 0x51, 0xE3, 0x04, 0x00, 0xC7, 0xE7, 0x0A, 0x00, 0x51, 0x13, 0x01, 0x00, 0x84, 0x02 - .byte 0x00, 0x00, 0x86, 0x05, 0x02, 0x00, 0x00, 0x0A, 0x01, 0x40, 0x84, 0xE2, 0x05, 0x00, 0x54, 0xE1 - .byte 0xF4, 0xFF, 0xFF, 0x3A, 0x00, 0x00, 0xA0, 0xE3, 0xF8, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_0209086c -FUN_0209086c: @ 0x0209086C - push {r4, r5, r6, lr} - ldr r5, [r2] - mov r6, r1 + strb r1, [r0, #0x1ad] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x2d0] + mov r1, #3 + bl ov00_022EA758 + b _022EAAA8 +_022EA958: + ldr r0, _022EAAB4 @ =0x00001770 cmp r5, #0 - mov r4, #0 - bls _02090898 -_02090884: - add r0, r6, r4 - bl FUN_020907f4 + cmpeq r4, r0 + bls _022EAAA8 + bl ov00_022EC1C0 + ldrb r1, [r0, #0x1ab] + add r1, r1, #1 + strb r1, [r0, #0x1ab] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1ab] + cmp r0, #5 + bls _022EAA20 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + beq _022EA9A8 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #1 + bne _022EA9B8 +_022EA9A8: + bl ov00_022EA5EC + mov r0, #1 + bl ov00_022EA388 + b _022EAAA8 +_022EA9B8: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1d4] + bl ov00_022EA61C + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #0 + beq _022EAA04 + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1ab] + bl ov00_022EC1C0 + mov r4, r0 + bl FUN_0207AE44 + str r0, [r4, #0x1e0] + str r1, [r4, #0x1e4] + b _022EAAA8 +_022EAA04: + bl ov00_022EC1C0 + ldr r0, [r0, #0x20c] + bl ov00_022E96E4 + cmp r0, #0 + bne _022EAAA8 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_022EAA20: + mov r4, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #1 + blt _022EAAA8 + mov r5, #2 + mov r6, r4 +_022EAA3C: + bl ov00_022EC1C0 + mov r7, r0 + bl ov00_022EC1C0 + add r0, r0, r4 + ldrb r0, [r0, #0x2d0] + ldr r1, [r7, #0x1d4] + tst r1, r6, lsl r0 + bne _022EAA70 + bl ov00_022EC1C0 + add r0, r0, r4 + ldrb r0, [r0, #0x2d0] + mov r1, r5 + bl ov00_022EA758 +_022EAA70: add r4, r4, #1 - cmp r4, r5 - blo _02090884 -_02090898: + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r4, r0 + ble _022EAA3C + b _022EAAA8 +_022EAA88: + bl ov00_022EC1C0 + add r0, r0, #0x100 + ldrh r0, [r0, #0xb0] + cmp r5, r0, asr #31 + cmpeq r4, r0 + bls _022EAAA8 + mov r0, #4 + bl ov00_022E9AA4 +_022EAAA8: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022EAAB0: .4byte 0x000082EA +_022EAAB4: .4byte 0x00001770 + arm_func_end ov00_022EA848 + + arm_func_start ov00_022EAAB8 +ov00_022EAAB8: @ 0x022EAAB8 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0xc + mov r5, r1 + cmp r5, #0xd + mov r6, r0 + movne r4, #0 + bne _022EAAE4 + bl ov00_022EC1C0 + ldr r0, [r0, #0x20c] + mov r4, #1 + str r0, [sp, #8] +_022EAAE4: + add r0, sp, #8 + str r0, [sp] + mov r2, #0 + mov r0, r5 + mov r1, r6 + mov r3, r2 + str r4, [sp, #4] + bl ov00_022E78AC + bl ov00_022E9108 + cmp r0, #0 + addne sp, sp, #0xc + movne r0, #0 + popne {r3, r4, r5, r6, pc} + bl ov00_022EC1C0 + mov r4, r0 + bl FUN_0207AE44 + str r0, [r4, #0x1e8] + str r1, [r4, #0x1ec] + mov r0, #1 + add sp, sp, #0xc + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_022EAAB8 + + arm_func_start ov00_022EAB38 +ov00_022EAB38: @ 0x022EAB38 + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl ov00_022E1FC0 + cmp r0, #6 + movne r0, #1 + popne {r4, r5, r6, pc} + cmp r5, #0xd + beq _022EAB74 + cmp r5, #0xe + beq _022EABB0 + cmp r5, #0xf + beq _022EAD38 + b _022EAD50 +_022EAB74: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #8 + beq _022EAB94 + mov r0, #8 + bl ov00_022EC1D0 + mov r0, r4 + bl ov00_022EA57C +_022EAB94: + mov r0, r6 + mov r1, #0xe + bl ov00_022EAAB8 + cmp r0, #0 + bne _022EAD50 mov r0, #0 pop {r4, r5, r6, pc} - arm_func_end FUN_0209086c -_020908A0: - .byte 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_020908a8 -FUN_020908a8: @ 0x020908A8 - push {r4, lr} - ldr r4, _020908D0 @ =0x020AEEF0 - b _020908BC -_020908B4: - blx r0 - add r4, r4, #4 -_020908BC: - cmp r4, #0 - ldrne r0, [r4] - cmpne r0, #0 - bne _020908B4 - pop {r4, pc} - .align 2, 0 -_020908D0: .4byte 0x020AEEF0 - arm_func_end FUN_020908a8 -_020908D4: - .byte 0x20, 0xFF, 0x09, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0xD0 - .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF, 0x01, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x05, 0x20 - .byte 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x08, 0x02, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x68, 0x64, 0x08, 0x02, 0x8D, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x40, 0x00, 0xF4, 0x64, 0x08, 0x02 - .byte 0x69, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x40, 0x00, 0xA0, 0x65, 0x08, 0x02, 0x8D, 0x00, 0x00, 0x00 - .byte 0x00, 0x07, 0x20, 0x00, 0x2C, 0x66, 0x08, 0x02, 0x89, 0x00, 0x00, 0x00, 0x00, 0x03, 0x20, 0x00 - .byte 0xB4, 0x66, 0x08, 0x02, 0x0D, 0x01, 0x00, 0x00, 0x00, 0x7F, 0x40, 0x00, 0xC0, 0x67, 0x08, 0x02 - .byte 0x49, 0x03, 0x00, 0x00, 0x00, 0x7F, 0x50, 0x00, 0x08, 0x6B, 0x08, 0x02, 0x75, 0x00, 0x00, 0x00 - .byte 0x00, 0x03, 0x20, 0x00, 0x7C, 0x6B, 0x08, 0x02, 0xE9, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00 - .byte 0x68, 0x6D, 0x08, 0x02, 0x1D, 0x01, 0x00, 0x00, 0x00, 0x0F, 0x30, 0x00, 0x84, 0x6E, 0x08, 0x02 - .byte 0xE9, 0x01, 0x00, 0x00, 0x20, 0x03, 0x40, 0x00, 0x6C, 0x70, 0x08, 0x02, 0x2D, 0x01, 0x00, 0x00 - .byte 0x00, 0x3F, 0x40, 0x00, 0x98, 0x71, 0x08, 0x02, 0x25, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00 - .byte 0x08, 0x72, 0x08, 0x02, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x24, 0x72, 0x08, 0x02 - .byte 0x79, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x40, 0x00, 0x08, 0x73, 0x08, 0x02, 0x15, 0x00, 0x00, 0x00 - .byte 0x00, 0x01, 0x10, 0x00, 0xC8, 0x79, 0x08, 0x02, 0x4D, 0x02, 0x00, 0x00, 0x20, 0xFF, 0x90, 0x00 - .byte 0x14, 0x7C, 0x08, 0x02, 0xFD, 0x02, 0x00, 0x00, 0x20, 0xFF, 0xA0, 0x00, 0x10, 0x7F, 0x08, 0x02 - .byte 0xDD, 0x04, 0x00, 0x00, 0x20, 0x7F, 0xF0, 0x00, 0x10, 0x85, 0x08, 0x02, 0x65, 0x07, 0x00, 0x00 - .byte 0x20, 0xFF, 0xC0, 0x00, 0x74, 0x8C, 0x08, 0x02, 0x24, 0x08, 0x00, 0x00, 0xD4, 0x08, 0x09, 0x02 - .byte 0x98, 0x94, 0x08, 0x02, 0x45, 0x00, 0x00, 0x00, 0x00, 0x03, 0x20, 0x00, 0xDC, 0x94, 0x08, 0x02 - .byte 0x69, 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0x00, 0x44, 0x95, 0x08, 0x02, 0x19, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x5C, 0x95, 0x08, 0x02, 0x29, 0x00, 0x00, 0x00, 0x20, 0x00, 0x30, 0x00 - .byte 0x84, 0x95, 0x08, 0x02, 0x2D, 0x00, 0x00, 0x00, 0x20, 0x00, 0x30, 0x00, 0xDC, 0x9A, 0x08, 0x02 - .byte 0x4C, 0x12, 0x00, 0x00, 0xDC, 0x08, 0x09, 0x02, 0x28, 0xAD, 0x08, 0x02, 0xE1, 0x00, 0x00, 0x00 - .byte 0x00, 0x0F, 0x50, 0x00, 0x08, 0xAE, 0x08, 0x02, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x18, 0xAE, 0x08, 0x02, 0xE9, 0x03, 0x00, 0x00, 0x00, 0xFF, 0x60, 0x00, 0x00, 0xB2, 0x08, 0x02 - .byte 0x99, 0x00, 0x00, 0x00, 0x00, 0x03, 0x60, 0x00, 0x98, 0xB2, 0x08, 0x02, 0xC9, 0x00, 0x00, 0x00 - .byte 0x00, 0x03, 0x60, 0x00, 0x60, 0xB3, 0x08, 0x02, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x04, 0xB4, 0x08, 0x02, 0x88, 0x11, 0x00, 0x00, 0xE4, 0x08, 0x09, 0x02, 0xD4, 0xC5, 0x08, 0x02 - .byte 0xBD, 0x00, 0x00, 0x00, 0x20, 0x01, 0x30, 0x00, 0x90, 0xC6, 0x08, 0x02, 0x4D, 0x02, 0x00, 0x00 - .byte 0x20, 0x01, 0x30, 0x00, 0xDC, 0xC8, 0x08, 0x02, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0xA4, 0xC9, 0x08, 0x02, 0x41, 0x00, 0x00, 0x00, 0x00, 0x03, 0x20, 0x00, 0xE4, 0xC9, 0x08, 0x02 - .byte 0xCD, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x50, 0x00, 0xB0, 0xCA, 0x08, 0x02, 0x85, 0x01, 0x00, 0x00 - .byte 0x00, 0xFF, 0xD0, 0x00, 0x34, 0xCC, 0x08, 0x02, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00 - .byte 0xD0, 0xCC, 0x08, 0x02, 0x85, 0x03, 0x00, 0x00, 0x00, 0x03, 0xB0, 0x00, 0xB8, 0xD4, 0x08, 0x02 - .byte 0x81, 0x01, 0x00, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x38, 0xD6, 0x08, 0x02, 0xA9, 0x00, 0x00, 0x00 - .byte 0x00, 0x03, 0x20, 0x00, 0xE0, 0xD6, 0x08, 0x02, 0x24, 0x06, 0x00, 0x00, 0xEC, 0x08, 0x09, 0x02 - .byte 0x1C, 0xDE, 0x08, 0x02, 0x2D, 0x00, 0x00, 0x00, 0x00, 0x01, 0x20, 0x00, 0x1C, 0x08, 0x09, 0x02 - .byte 0x51, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x30, 0x00, 0x6C, 0x08, 0x09, 0x02, 0x35, 0x00, 0x00, 0x00 - .byte 0x00, 0x07, 0x20, 0x00, 0xA8, 0x08, 0x09, 0x02, 0x2D, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00 - .byte 0x60, 0x0B, 0x09, 0x02, 0xC7, 0x03, 0x00, 0x00, 0x60, 0x0B, 0x09, 0x02, 0xFD, 0x04, 0x00, 0x00 - .byte 0x60, 0x0B, 0x09, 0x02, 0xCB, 0x02, 0x00, 0x00, 0x60, 0x0B, 0x09, 0x02, 0x2D, 0x03, 0x00, 0x00 - .byte 0x6D, 0x65, 0x6D, 0x6F, 0x72, 0x79, 0x5F, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x65, 0x2E, 0x63, 0x00 - .byte 0x4D, 0x65, 0x6D, 0x6F, 0x72, 0x79, 0x4C, 0x6F, 0x63, 0x61, 0x74, 0x65, 0x20, 0x62, 0x75, 0x66 - .byte 0x66, 0x65, 0x72, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x20, 0x25, 0x70, 0x5B, 0x25 - .byte 0x70, 0x5D, 0x20, 0x73, 0x69, 0x7A, 0x65, 0x20, 0x25, 0x38, 0x78, 0x0A, 0x00, 0x00, 0x00, 0x00 - .byte 0x4D, 0x65, 0x6D, 0x6F, 0x72, 0x79, 0x20, 0x4C, 0x6F, 0x63, 0x61, 0x74, 0x65, 0x20, 0x73, 0x70 - .byte 0x72, 0x69, 0x74, 0x20, 0x6D, 0x61, 0x78, 0x20, 0x6F, 0x76, 0x65, 0x72, 0x20, 0x5B, 0x25, 0x33 - .byte 0x64, 0x2F, 0x25, 0x33, 0x64, 0x5D, 0x00, 0x00, 0x4D, 0x65, 0x6D, 0x72, 0x6F, 0x79, 0x20, 0x4C - .byte 0x6F, 0x63, 0x61, 0x6C, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65 - .byte 0x72, 0x20, 0x25, 0x30, 0x38, 0x78, 0x20, 0x73, 0x69, 0x7A, 0x65, 0x20, 0x63, 0x61, 0x6E, 0x27 - .byte 0x74, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x65, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x65, 0x6D, 0x72 - .byte 0x6F, 0x79, 0x20, 0x4C, 0x6F, 0x63, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x20, 0x5B, 0x25, 0x70 - .byte 0x5D, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x20, 0x25, 0x38, 0x78, 0x20, 0x73, 0x69, 0x7A - .byte 0x65, 0x20, 0x63, 0x61, 0x6E, 0x27, 0x74, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x74, 0x65, 0x0A, 0x20 - .byte 0x20, 0x20, 0x20, 0x61, 0x74, 0x62, 0x20, 0x25, 0x30, 0x32, 0x78, 0x20, 0x67, 0x72, 0x70, 0x20 - .byte 0x25, 0x33, 0x64, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 - .byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00 - .byte 0x04, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x06, 0x00, 0x06, 0x00, 0x07, 0x00, 0x07, 0x00 - .byte 0x07, 0x00, 0x08, 0x00, 0x08, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x0A, 0x00 - .byte 0x0A, 0x00, 0x0B, 0x00, 0x0B, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0D, 0x00, 0x0D, 0x00 - .byte 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00 - .byte 0x11, 0x00, 0x11, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x13, 0x00, 0x13, 0x00, 0x14, 0x00 - .byte 0x14, 0x00, 0x14, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x16, 0x00, 0x16, 0x00, 0x17, 0x00 - .byte 0x17, 0x00, 0x17, 0x00, 0x18, 0x00, 0x18, 0x00, 0x19, 0x00, 0x19, 0x00, 0x19, 0x00, 0x1A, 0x00 - .byte 0x1A, 0x00, 0x1B, 0x00, 0x1B, 0x00, 0x1B, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x1D, 0x00 - .byte 0x1D, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x20, 0x00, 0x20, 0x00 - .byte 0x20, 0x00, 0x21, 0x00, 0x21, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x23, 0x00, 0x23, 0x00 - .byte 0x24, 0x00, 0x24, 0x00, 0x24, 0x00, 0x25, 0x00, 0x25, 0x00, 0x25, 0x00, 0x26, 0x00, 0x26, 0x00 - .byte 0x27, 0x00, 0x27, 0x00, 0x27, 0x00, 0x28, 0x00, 0x28, 0x00, 0x29, 0x00, 0x29, 0x00, 0x29, 0x00 - .byte 0x2A, 0x00, 0x2A, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2C, 0x00, 0x2C, 0x00 - .byte 0x2D, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2E, 0x00, 0x2E, 0x00, 0x2F, 0x00, 0x2F, 0x00, 0x30, 0x00 - .byte 0x30, 0x00, 0x30, 0x00, 0x31, 0x00, 0x31, 0x00, 0x31, 0x00, 0x32, 0x00, 0x32, 0x00, 0x33, 0x00 - .byte 0x33, 0x00, 0x33, 0x00, 0x34, 0x00, 0x34, 0x00, 0x35, 0x00, 0x35, 0x00, 0x35, 0x00, 0x36, 0x00 - .byte 0x36, 0x00, 0x36, 0x00, 0x37, 0x00, 0x37, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x39, 0x00 - .byte 0x39, 0x00, 0x3A, 0x00, 0x3A, 0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3B, 0x00, 0x3B, 0x00, 0x3C, 0x00 - .byte 0x3C, 0x00, 0x3D, 0x00, 0x3D, 0x00, 0x3D, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x3F, 0x00 - .byte 0x3F, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x41, 0x00, 0x41, 0x00, 0x42, 0x00, 0x42, 0x00 - .byte 0x42, 0x00, 0x43, 0x00, 0x43, 0x00, 0x43, 0x00, 0x44, 0x00, 0x44, 0x00, 0x45, 0x00, 0x45, 0x00 - .byte 0x45, 0x00, 0x46, 0x00, 0x46, 0x00, 0x46, 0x00, 0x47, 0x00, 0x47, 0x00, 0x48, 0x00, 0x48, 0x00 - .byte 0x48, 0x00, 0x49, 0x00, 0x49, 0x00, 0x49, 0x00, 0x4A, 0x00, 0x4A, 0x00, 0x4B, 0x00, 0x4B, 0x00 - .byte 0x4B, 0x00, 0x4C, 0x00, 0x4C, 0x00, 0x4C, 0x00, 0x4D, 0x00, 0x4D, 0x00, 0x4E, 0x00, 0x4E, 0x00 - .byte 0x4E, 0x00, 0x4F, 0x00, 0x4F, 0x00, 0x4F, 0x00, 0x50, 0x00, 0x50, 0x00, 0x51, 0x00, 0x51, 0x00 - .byte 0x51, 0x00, 0x52, 0x00, 0x52, 0x00, 0x52, 0x00, 0x53, 0x00, 0x53, 0x00, 0x54, 0x00, 0x54, 0x00 - .byte 0x54, 0x00, 0x55, 0x00, 0x55, 0x00, 0x55, 0x00, 0x56, 0x00, 0x56, 0x00, 0x56, 0x00, 0x57, 0x00 - .byte 0x57, 0x00, 0x58, 0x00, 0x58, 0x00, 0x58, 0x00, 0x59, 0x00, 0x59, 0x00, 0x59, 0x00, 0x5A, 0x00 - .byte 0x5A, 0x00, 0x5B, 0x00, 0x5B, 0x00, 0x5B, 0x00, 0x5C, 0x00, 0x5C, 0x00, 0x5C, 0x00, 0x5D, 0x00 - .byte 0x5D, 0x00, 0x5D, 0x00, 0x5E, 0x00, 0x5E, 0x00, 0x5F, 0x00, 0x5F, 0x00, 0x5F, 0x00, 0x60, 0x00 - .byte 0x60, 0x00, 0x60, 0x00, 0x61, 0x00, 0x61, 0x00, 0x61, 0x00, 0x62, 0x00, 0x62, 0x00, 0x63, 0x00 - .byte 0x63, 0x00, 0x63, 0x00, 0x64, 0x00, 0x64, 0x00, 0x64, 0x00, 0x65, 0x00, 0x65, 0x00, 0x65, 0x00 - .byte 0x66, 0x00, 0x66, 0x00, 0x67, 0x00, 0x67, 0x00, 0x67, 0x00, 0x68, 0x00, 0x68, 0x00, 0x68, 0x00 - .byte 0x69, 0x00, 0x69, 0x00, 0x69, 0x00, 0x6A, 0x00, 0x6A, 0x00, 0x6A, 0x00, 0x6B, 0x00, 0x6B, 0x00 - .byte 0x6C, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x6D, 0x00, 0x6D, 0x00, 0x6D, 0x00, 0x6E, 0x00, 0x6E, 0x00 - .byte 0x6E, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x71, 0x00 - .byte 0x71, 0x00, 0x72, 0x00, 0x72, 0x00, 0x72, 0x00, 0x73, 0x00, 0x73, 0x00, 0x73, 0x00, 0x74, 0x00 - .byte 0x74, 0x00, 0x74, 0x00, 0x75, 0x00, 0x75, 0x00, 0x75, 0x00, 0x76, 0x00, 0x76, 0x00, 0x76, 0x00 - .byte 0x77, 0x00, 0x77, 0x00, 0x77, 0x00, 0x78, 0x00, 0x78, 0x00, 0x79, 0x00, 0x79, 0x00, 0x79, 0x00 - .byte 0x7A, 0x00, 0x7A, 0x00, 0x7A, 0x00, 0x7B, 0x00, 0x7B, 0x00, 0x7B, 0x00, 0x7C, 0x00, 0x7C, 0x00 - .byte 0x7C, 0x00, 0x7D, 0x00, 0x7D, 0x00, 0x7D, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x7F, 0x00 - .byte 0x7F, 0x00, 0x7F, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x81, 0x00, 0x81, 0x00, 0x81, 0x00 - .byte 0x82, 0x00, 0x82, 0x00, 0x82, 0x00, 0x83, 0x00, 0x83, 0x00, 0x83, 0x00, 0x84, 0x00, 0x84, 0x00 - .byte 0x84, 0x00, 0x85, 0x00, 0x85, 0x00, 0x85, 0x00, 0x86, 0x00, 0x86, 0x00, 0x86, 0x00, 0x87, 0x00 - .byte 0x87, 0x00, 0x87, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x89, 0x00, 0x89, 0x00, 0x89, 0x00 - .byte 0x8A, 0x00, 0x8A, 0x00, 0x8A, 0x00, 0x8B, 0x00, 0x8B, 0x00, 0x8B, 0x00, 0x8C, 0x00, 0x8C, 0x00 - .byte 0x8C, 0x00, 0x8D, 0x00, 0x8D, 0x00, 0x8D, 0x00, 0x8E, 0x00, 0x8E, 0x00, 0x8E, 0x00, 0x8F, 0x00 - .byte 0x8F, 0x00, 0x8F, 0x00, 0x90, 0x00, 0x90, 0x00, 0x90, 0x00, 0x91, 0x00, 0x91, 0x00, 0x91, 0x00 - .byte 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x93, 0x00, 0x93, 0x00, 0x93, 0x00, 0x94, 0x00, 0x94, 0x00 - .byte 0x94, 0x00, 0x95, 0x00, 0x95, 0x00, 0x95, 0x00, 0x95, 0x00, 0x96, 0x00, 0x96, 0x00, 0x96, 0x00 - .byte 0x97, 0x00, 0x97, 0x00, 0x97, 0x00, 0x98, 0x00, 0x98, 0x00, 0x98, 0x00, 0x99, 0x00, 0x99, 0x00 - .byte 0x99, 0x00, 0x9A, 0x00, 0x9A, 0x00, 0x9A, 0x00, 0x9B, 0x00, 0x9B, 0x00, 0x9B, 0x00, 0x9B, 0x00 - .byte 0x9C, 0x00, 0x9C, 0x00, 0x9C, 0x00, 0x9D, 0x00, 0x9D, 0x00, 0x9D, 0x00, 0x9E, 0x00, 0x9E, 0x00 - .byte 0x9E, 0x00, 0x9F, 0x00, 0x9F, 0x00, 0x9F, 0x00, 0x9F, 0x00, 0xA0, 0x00, 0xA0, 0x00, 0xA0, 0x00 - .byte 0xA1, 0x00, 0xA1, 0x00, 0xA1, 0x00, 0xA2, 0x00, 0xA2, 0x00, 0xA2, 0x00, 0xA3, 0x00, 0xA3, 0x00 - .byte 0xA3, 0x00, 0xA3, 0x00, 0xA4, 0x00, 0xA4, 0x00, 0xA4, 0x00, 0xA5, 0x00, 0xA5, 0x00, 0xA5, 0x00 - .byte 0xA6, 0x00, 0xA6, 0x00, 0xA6, 0x00, 0xA6, 0x00, 0xA7, 0x00, 0xA7, 0x00, 0xA7, 0x00, 0xA8, 0x00 - .byte 0xA8, 0x00, 0xA8, 0x00, 0xA8, 0x00, 0xA9, 0x00, 0xA9, 0x00, 0xA9, 0x00, 0xAA, 0x00, 0xAA, 0x00 - .byte 0xAA, 0x00, 0xAB, 0x00, 0xAB, 0x00, 0xAB, 0x00, 0xAB, 0x00, 0xAC, 0x00, 0xAC, 0x00, 0xAC, 0x00 - .byte 0xAD, 0x00, 0xAD, 0x00, 0xAD, 0x00, 0xAD, 0x00, 0xAE, 0x00, 0xAE, 0x00, 0xAE, 0x00, 0xAF, 0x00 - .byte 0xAF, 0x00, 0xAF, 0x00, 0xAF, 0x00, 0xB0, 0x00, 0xB0, 0x00, 0xB0, 0x00, 0xB1, 0x00, 0xB1, 0x00 - .byte 0xB1, 0x00, 0xB1, 0x00, 0xB2, 0x00, 0xB2, 0x00, 0xB2, 0x00, 0xB3, 0x00, 0xB3, 0x00, 0xB3, 0x00 - .byte 0xB3, 0x00, 0xB4, 0x00, 0xB4, 0x00, 0xB4, 0x00, 0xB5, 0x00, 0xB5, 0x00, 0xB5, 0x00, 0xB5, 0x00 - .byte 0xB6, 0x00, 0xB6, 0x00, 0xB6, 0x00, 0xB6, 0x00, 0xB7, 0x00, 0xB7, 0x00, 0xB7, 0x00, 0xB8, 0x00 - .byte 0xB8, 0x00, 0xB8, 0x00, 0xB8, 0x00, 0xB9, 0x00, 0xB9, 0x00, 0xB9, 0x00, 0xB9, 0x00, 0xBA, 0x00 - .byte 0xBA, 0x00, 0xBA, 0x00, 0xBB, 0x00, 0xBB, 0x00, 0xBB, 0x00, 0xBB, 0x00, 0xBC, 0x00, 0xBC, 0x00 - .byte 0xBC, 0x00, 0xBC, 0x00, 0xBD, 0x00, 0xBD, 0x00, 0xBD, 0x00, 0xBD, 0x00, 0xBE, 0x00, 0xBE, 0x00 - .byte 0xBE, 0x00, 0xBE, 0x00, 0xBF, 0x00, 0xBF, 0x00, 0xBF, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00 - .byte 0xC0, 0x00, 0xC1, 0x00, 0xC1, 0x00, 0xC1, 0x00, 0xC1, 0x00, 0xC2, 0x00, 0xC2, 0x00, 0xC2, 0x00 - .byte 0xC2, 0x00, 0xC3, 0x00, 0xC3, 0x00, 0xC3, 0x00, 0xC3, 0x00, 0xC4, 0x00, 0xC4, 0x00, 0xC4, 0x00 - .byte 0xC4, 0x00, 0xC5, 0x00, 0xC5, 0x00, 0xC5, 0x00, 0xC5, 0x00, 0xC6, 0x00, 0xC6, 0x00, 0xC6, 0x00 - .byte 0xC6, 0x00, 0xC7, 0x00, 0xC7, 0x00, 0xC7, 0x00, 0xC7, 0x00, 0xC8, 0x00, 0xC8, 0x00, 0xC8, 0x00 - .byte 0xC8, 0x00, 0xC9, 0x00, 0xC9, 0x00, 0xC9, 0x00, 0xC9, 0x00, 0xCA, 0x00, 0xCA, 0x00, 0xCA, 0x00 - .byte 0xCA, 0x00, 0xCB, 0x00, 0xCB, 0x00, 0xCB, 0x00, 0xCB, 0x00, 0xCB, 0x00, 0xCC, 0x00, 0xCC, 0x00 - .byte 0xCC, 0x00, 0xCC, 0x00, 0xCD, 0x00, 0xCD, 0x00, 0xCD, 0x00, 0xCD, 0x00, 0xCE, 0x00, 0xCE, 0x00 - .byte 0xCE, 0x00, 0xCE, 0x00, 0xCF, 0x00, 0xCF, 0x00, 0xCF, 0x00, 0xCF, 0x00, 0xCF, 0x00, 0xD0, 0x00 - .byte 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD1, 0x00, 0xD1, 0x00, 0xD1, 0x00, 0xD1, 0x00, 0xD1, 0x00 - .byte 0xD2, 0x00, 0xD2, 0x00, 0xD2, 0x00, 0xD2, 0x00, 0xD3, 0x00, 0xD3, 0x00, 0xD3, 0x00, 0xD3, 0x00 - .byte 0xD3, 0x00, 0xD4, 0x00, 0xD4, 0x00, 0xD4, 0x00, 0xD4, 0x00, 0xD5, 0x00, 0xD5, 0x00, 0xD5, 0x00 - .byte 0xD5, 0x00, 0xD5, 0x00, 0xD6, 0x00, 0xD6, 0x00, 0xD6, 0x00, 0xD6, 0x00, 0xD7, 0x00, 0xD7, 0x00 - .byte 0xD7, 0x00, 0xD7, 0x00, 0xD7, 0x00, 0xD8, 0x00, 0xD8, 0x00, 0xD8, 0x00, 0xD8, 0x00, 0xD8, 0x00 - .byte 0xD9, 0x00, 0xD9, 0x00, 0xD9, 0x00, 0xD9, 0x00, 0xD9, 0x00, 0xDA, 0x00, 0xDA, 0x00, 0xDA, 0x00 - .byte 0xDA, 0x00, 0xDA, 0x00, 0xDB, 0x00, 0xDB, 0x00, 0xDB, 0x00, 0xDB, 0x00, 0xDB, 0x00, 0xDC, 0x00 - .byte 0xDC, 0x00, 0xDC, 0x00, 0xDC, 0x00, 0xDC, 0x00, 0xDD, 0x00, 0xDD, 0x00, 0xDD, 0x00, 0xDD, 0x00 - .byte 0xDD, 0x00, 0xDE, 0x00, 0xDE, 0x00, 0xDE, 0x00, 0xDE, 0x00, 0xDE, 0x00, 0xDF, 0x00, 0xDF, 0x00 - .byte 0xDF, 0x00, 0xDF, 0x00, 0xDF, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x00 - .byte 0xE1, 0x00, 0xE1, 0x00, 0xE1, 0x00, 0xE1, 0x00, 0xE1, 0x00, 0xE1, 0x00, 0xE2, 0x00, 0xE2, 0x00 - .byte 0xE2, 0x00, 0xE2, 0x00, 0xE2, 0x00, 0xE3, 0x00, 0xE3, 0x00, 0xE3, 0x00, 0xE3, 0x00, 0xE3, 0x00 - .byte 0xE3, 0x00, 0xE4, 0x00, 0xE4, 0x00, 0xE4, 0x00, 0xE4, 0x00, 0xE4, 0x00, 0xE5, 0x00, 0xE5, 0x00 - .byte 0xE5, 0x00, 0xE5, 0x00, 0xE5, 0x00, 0xE5, 0x00, 0xE6, 0x00, 0xE6, 0x00, 0xE6, 0x00, 0xE6, 0x00 - .byte 0xE6, 0x00, 0xE6, 0x00, 0xE7, 0x00, 0xE7, 0x00, 0xE7, 0x00, 0xE7, 0x00, 0xE7, 0x00, 0xE7, 0x00 - .byte 0xE8, 0x00, 0xE8, 0x00, 0xE8, 0x00, 0xE8, 0x00, 0xE8, 0x00, 0xE8, 0x00, 0xE9, 0x00, 0xE9, 0x00 - .byte 0xE9, 0x00, 0xE9, 0x00, 0xE9, 0x00, 0xE9, 0x00, 0xEA, 0x00, 0xEA, 0x00, 0xEA, 0x00, 0xEA, 0x00 - .byte 0xEA, 0x00, 0xEA, 0x00, 0xEA, 0x00, 0xEB, 0x00, 0xEB, 0x00, 0xEB, 0x00, 0xEB, 0x00, 0xEB, 0x00 - .byte 0xEB, 0x00, 0xEC, 0x00, 0xEC, 0x00, 0xEC, 0x00, 0xEC, 0x00, 0xEC, 0x00, 0xEC, 0x00, 0xEC, 0x00 - .byte 0xED, 0x00, 0xED, 0x00, 0xED, 0x00, 0xED, 0x00, 0xED, 0x00, 0xED, 0x00, 0xED, 0x00, 0xEE, 0x00 - .byte 0xEE, 0x00, 0xEE, 0x00, 0xEE, 0x00, 0xEE, 0x00, 0xEE, 0x00, 0xEE, 0x00, 0xEF, 0x00, 0xEF, 0x00 - .byte 0xEF, 0x00, 0xEF, 0x00, 0xEF, 0x00, 0xEF, 0x00, 0xEF, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00 - .byte 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF1, 0x00, 0xF1, 0x00, 0xF1, 0x00, 0xF1, 0x00 - .byte 0xF1, 0x00, 0xF1, 0x00, 0xF1, 0x00, 0xF1, 0x00, 0xF2, 0x00, 0xF2, 0x00, 0xF2, 0x00, 0xF2, 0x00 - .byte 0xF2, 0x00, 0xF2, 0x00, 0xF2, 0x00, 0xF2, 0x00, 0xF3, 0x00, 0xF3, 0x00, 0xF3, 0x00, 0xF3, 0x00 - .byte 0xF3, 0x00, 0xF3, 0x00, 0xF3, 0x00, 0xF3, 0x00, 0xF4, 0x00, 0xF4, 0x00, 0xF4, 0x00, 0xF4, 0x00 - .byte 0xF4, 0x00, 0xF4, 0x00, 0xF4, 0x00, 0xF4, 0x00, 0xF4, 0x00, 0xF5, 0x00, 0xF5, 0x00, 0xF5, 0x00 - .byte 0xF5, 0x00, 0xF5, 0x00, 0xF5, 0x00, 0xF5, 0x00, 0xF5, 0x00, 0xF5, 0x00, 0xF6, 0x00, 0xF6, 0x00 - .byte 0xF6, 0x00, 0xF6, 0x00, 0xF6, 0x00, 0xF6, 0x00, 0xF6, 0x00, 0xF6, 0x00, 0xF6, 0x00, 0xF7, 0x00 - .byte 0xF7, 0x00, 0xF7, 0x00, 0xF7, 0x00, 0xF7, 0x00, 0xF7, 0x00, 0xF7, 0x00, 0xF7, 0x00, 0xF7, 0x00 - .byte 0xF7, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0xF8, 0x00 - .byte 0xF8, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0xF9, 0x00, 0xF9, 0x00, 0xF9, 0x00, 0xF9, 0x00 - .byte 0xF9, 0x00, 0xF9, 0x00, 0xF9, 0x00, 0xF9, 0x00, 0xF9, 0x00, 0xF9, 0x00, 0xF9, 0x00, 0xFA, 0x00 - .byte 0xFA, 0x00, 0xFA, 0x00, 0xFA, 0x00, 0xFA, 0x00, 0xFA, 0x00, 0xFA, 0x00, 0xFA, 0x00, 0xFA, 0x00 - .byte 0xFA, 0x00, 0xFA, 0x00, 0xFA, 0x00, 0xFB, 0x00, 0xFB, 0x00, 0xFB, 0x00, 0xFB, 0x00, 0xFB, 0x00 - .byte 0xFB, 0x00, 0xFB, 0x00, 0xFB, 0x00, 0xFB, 0x00, 0xFB, 0x00, 0xFB, 0x00, 0xFB, 0x00, 0xFB, 0x00 - .byte 0xFB, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00 - .byte 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00 - .byte 0xFC, 0x00, 0xFD, 0x00, 0xFD, 0x00, 0xFD, 0x00, 0xFD, 0x00, 0xFD, 0x00, 0xFD, 0x00, 0xFD, 0x00 - .byte 0xFD, 0x00, 0xFD, 0x00, 0xFD, 0x00, 0xFD, 0x00, 0xFD, 0x00, 0xFD, 0x00, 0xFD, 0x00, 0xFD, 0x00 - .byte 0xFD, 0x00, 0xFD, 0x00, 0xFD, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00 - .byte 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00 - .byte 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00 - .byte 0xFE, 0x00, 0xFE, 0x00, 0xFE, 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, 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, 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, 0xFF, 0x00 - .byte 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x0B, 0x93, 0x11 - .byte 0x2E, 0x16, 0xC0, 0x19, 0xAB, 0x1C, 0x22, 0x1F, 0x45, 0x21, 0x27, 0x23, 0xD7, 0x24, 0x5D, 0x26 - .byte 0xC2, 0x27, 0x0A, 0x29, 0x39, 0x2A, 0x54, 0x2B, 0x5C, 0x2C, 0x54, 0x2D, 0x3E, 0x2E, 0x1C, 0x2F - .byte 0xEE, 0x2F, 0xB6, 0x30, 0x74, 0x31, 0x2A, 0x32, 0xD9, 0x32, 0x80, 0x33, 0x21, 0x34, 0xBB, 0x34 - .byte 0x50, 0x35, 0xE0, 0x35, 0x6B, 0x36, 0xF1, 0x36, 0x73, 0x37, 0xF1, 0x37, 0x6B, 0x38, 0xE2, 0x38 - .byte 0x56, 0x39, 0xC6, 0x39, 0x33, 0x3A, 0x9D, 0x3A, 0x05, 0x3B, 0x6A, 0x3B, 0xCD, 0x3B, 0x2D, 0x3C - .byte 0x8C, 0x3C, 0xE8, 0x3C, 0x42, 0x3D, 0x9A, 0x3D, 0xF0, 0x3D, 0x44, 0x3E, 0x97, 0x3E, 0xE8, 0x3E - .byte 0x38, 0x3F, 0x86, 0x3F, 0xD2, 0x3F, 0x1E, 0x40, 0x67, 0x40, 0xB0, 0x40, 0xF7, 0x40, 0x3D, 0x41 - .byte 0x82, 0x41, 0xC6, 0x41, 0x08, 0x42, 0x4A, 0x42, 0x8A, 0x42, 0xCA, 0x42, 0x08, 0x43, 0x46, 0x43 - .byte 0x83, 0x43, 0xBE, 0x43, 0xF9, 0x43, 0x33, 0x44, 0x6D, 0x44, 0xA5, 0x44, 0xDD, 0x44, 0x14, 0x45 - .byte 0x4A, 0x45, 0x80, 0x45, 0xB5, 0x45, 0xE9, 0x45, 0x1C, 0x46, 0x4F, 0x46, 0x81, 0x46, 0xB3, 0x46 - .byte 0xE4, 0x46, 0x15, 0x47, 0x45, 0x47, 0x74, 0x47, 0xA3, 0x47, 0xD1, 0x47, 0xFF, 0x47, 0x2C, 0x48 - .byte 0x59, 0x48, 0x85, 0x48, 0xB1, 0x48, 0xDC, 0x48, 0x07, 0x49, 0x32, 0x49, 0x5C, 0x49, 0x85, 0x49 - .byte 0xAE, 0x49, 0xD7, 0x49, 0xFF, 0x49, 0x27, 0x4A, 0x4F, 0x4A, 0x76, 0x4A, 0x9D, 0x4A, 0xC3, 0x4A - .byte 0xEA, 0x4A, 0x0F, 0x4B, 0x35, 0x4B, 0x5A, 0x4B, 0x7E, 0x4B, 0xA3, 0x4B, 0xC7, 0x4B, 0xEB, 0x4B - .byte 0x0E, 0x4C, 0x31, 0x4C, 0x54, 0x4C, 0x77, 0x4C, 0x99, 0x4C, 0xBB, 0x4C, 0xDD, 0x4C, 0xFE, 0x4C - .byte 0x1F, 0x4D, 0x40, 0x4D, 0x61, 0x4D, 0x81, 0x4D, 0xA1, 0x4D, 0xC1, 0x4D, 0xE1, 0x4D, 0x00, 0x4E - .byte 0x1F, 0x4E, 0x3E, 0x4E, 0x5D, 0x4E, 0x7C, 0x4E, 0x9A, 0x4E, 0xB8, 0x4E, 0xD6, 0x4E, 0xF3, 0x4E - .byte 0x10, 0x4F, 0x2E, 0x4F, 0x4B, 0x4F, 0x67, 0x4F, 0x84, 0x4F, 0xA0, 0x4F, 0xBC, 0x4F, 0xD8, 0x4F - .byte 0xF4, 0x4F, 0x10, 0x50, 0x2B, 0x50, 0x46, 0x50, 0x61, 0x50, 0x7C, 0x50, 0x97, 0x50, 0xB1, 0x50 - .byte 0xCC, 0x50, 0xE6, 0x50, 0x00, 0x51, 0x1A, 0x51, 0x33, 0x51, 0x4D, 0x51, 0x66, 0x51, 0x80, 0x51 - .byte 0x99, 0x51, 0xB1, 0x51, 0xCA, 0x51, 0xE3, 0x51, 0xFB, 0x51, 0x14, 0x52, 0x2C, 0x52, 0x44, 0x52 - .byte 0x5C, 0x52, 0x73, 0x52, 0x8B, 0x52, 0xA2, 0x52, 0xBA, 0x52, 0xD1, 0x52, 0xE8, 0x52, 0xFF, 0x52 - .byte 0x16, 0x53, 0x2D, 0x53, 0x43, 0x53, 0x5A, 0x53, 0x70, 0x53, 0x86, 0x53, 0x9C, 0x53, 0xB2, 0x53 - .byte 0xC8, 0x53, 0xDE, 0x53, 0xF3, 0x53, 0x09, 0x54, 0x1E, 0x54, 0x33, 0x54, 0x49, 0x54, 0x5E, 0x54 - .byte 0x73, 0x54, 0x88, 0x54, 0x9C, 0x54, 0xB1, 0x54, 0xC5, 0x54, 0xDA, 0x54, 0xEE, 0x54, 0x02, 0x55 - .byte 0x17, 0x55, 0x2B, 0x55, 0x3E, 0x55, 0x52, 0x55, 0x66, 0x55, 0x7A, 0x55, 0x8D, 0x55, 0xA1, 0x55 - .byte 0xB4, 0x55, 0xC7, 0x55, 0xDB, 0x55, 0xEE, 0x55, 0x01, 0x56, 0x14, 0x56, 0x26, 0x56, 0x39, 0x56 - .byte 0x4C, 0x56, 0x5E, 0x56, 0x71, 0x56, 0x83, 0x56, 0x96, 0x56, 0xA8, 0x56, 0xBA, 0x56, 0xCC, 0x56 - .byte 0xDE, 0x56, 0xF0, 0x56, 0x02, 0x57, 0x14, 0x57, 0x25, 0x57, 0x37, 0x57, 0x48, 0x57, 0x5A, 0x57 - .byte 0x6B, 0x57, 0x7D, 0x57, 0x8E, 0x57, 0x9F, 0x57, 0xB0, 0x57, 0xC1, 0x57, 0xD2, 0x57, 0xE3, 0x57 - .byte 0xF4, 0x57, 0x05, 0x58, 0x15, 0x58, 0x26, 0x58, 0x37, 0x58, 0x47, 0x58, 0x57, 0x58, 0x68, 0x58 - .byte 0x78, 0x58, 0x88, 0x58, 0x98, 0x58, 0xA9, 0x58, 0xB9, 0x58, 0xC9, 0x58, 0xD8, 0x58, 0xE8, 0x58 - .byte 0xF8, 0x58, 0x08, 0x59, 0x17, 0x59, 0x27, 0x59, 0x37, 0x59, 0x46, 0x59, 0x56, 0x59, 0x65, 0x59 - .byte 0x74, 0x59, 0x83, 0x59, 0x93, 0x59, 0xA2, 0x59, 0xB1, 0x59, 0xC0, 0x59, 0xCF, 0x59, 0xDE, 0x59 - .byte 0xED, 0x59, 0xFB, 0x59, 0x0A, 0x5A, 0x19, 0x5A, 0x28, 0x5A, 0x36, 0x5A, 0x45, 0x5A, 0x53, 0x5A - .byte 0x62, 0x5A, 0x70, 0x5A, 0x7E, 0x5A, 0x8D, 0x5A, 0x9B, 0x5A, 0xA9, 0x5A, 0xB7, 0x5A, 0xC5, 0x5A - .byte 0xD3, 0x5A, 0xE1, 0x5A, 0xEF, 0x5A, 0xFD, 0x5A, 0x0B, 0x5B, 0x19, 0x5B, 0x27, 0x5B, 0x35, 0x5B - .byte 0x42, 0x5B, 0x50, 0x5B, 0x5D, 0x5B, 0x6B, 0x5B, 0x78, 0x5B, 0x86, 0x5B, 0x93, 0x5B, 0xA1, 0x5B - .byte 0xAE, 0x5B, 0xBB, 0x5B, 0xC9, 0x5B, 0xD6, 0x5B, 0xE3, 0x5B, 0xF0, 0x5B, 0xFD, 0x5B, 0x0A, 0x5C - .byte 0x17, 0x5C, 0x24, 0x5C, 0x31, 0x5C, 0x3E, 0x5C, 0x4B, 0x5C, 0x57, 0x5C, 0x64, 0x5C, 0x71, 0x5C - .byte 0x7D, 0x5C, 0x8A, 0x5C, 0x97, 0x5C, 0xA3, 0x5C, 0xB0, 0x5C, 0xBC, 0x5C, 0xC9, 0x5C, 0xD5, 0x5C - .byte 0xE1, 0x5C, 0xEE, 0x5C, 0xFA, 0x5C, 0x06, 0x5D, 0x12, 0x5D, 0x1F, 0x5D, 0x2B, 0x5D, 0x37, 0x5D - .byte 0x43, 0x5D, 0x4F, 0x5D, 0x5B, 0x5D, 0x67, 0x5D, 0x73, 0x5D, 0x7F, 0x5D, 0x8B, 0x5D, 0x96, 0x5D - .byte 0xA2, 0x5D, 0xAE, 0x5D, 0xBA, 0x5D, 0xC5, 0x5D, 0xD1, 0x5D, 0xDD, 0x5D, 0xE8, 0x5D, 0xF4, 0x5D - .byte 0xFF, 0x5D, 0x0B, 0x5E, 0x16, 0x5E, 0x22, 0x5E, 0x2D, 0x5E, 0x38, 0x5E, 0x44, 0x5E, 0x4F, 0x5E - .byte 0x5A, 0x5E, 0x65, 0x5E, 0x71, 0x5E, 0x7C, 0x5E, 0x87, 0x5E, 0x92, 0x5E, 0x9D, 0x5E, 0xA8, 0x5E - .byte 0xB3, 0x5E, 0xBE, 0x5E, 0xC9, 0x5E, 0xD4, 0x5E, 0xDF, 0x5E, 0xEA, 0x5E, 0xF5, 0x5E, 0x00, 0x5F - .byte 0x0A, 0x5F, 0x15, 0x5F, 0x20, 0x5F, 0x2B, 0x5F, 0x35, 0x5F, 0x40, 0x5F, 0x4B, 0x5F, 0x55, 0x5F - .byte 0x60, 0x5F, 0x6A, 0x5F, 0x75, 0x5F, 0x7F, 0x5F, 0x8A, 0x5F, 0x94, 0x5F, 0x9F, 0x5F, 0xA9, 0x5F - .byte 0xB3, 0x5F, 0xBE, 0x5F, 0xC8, 0x5F, 0xD2, 0x5F, 0xDD, 0x5F, 0xE7, 0x5F, 0xF1, 0x5F, 0xFB, 0x5F - .byte 0x05, 0x60, 0x0F, 0x60, 0x1A, 0x60, 0x24, 0x60, 0x2E, 0x60, 0x38, 0x60, 0x42, 0x60, 0x4C, 0x60 - .byte 0x56, 0x60, 0x60, 0x60, 0x69, 0x60, 0x73, 0x60, 0x7D, 0x60, 0x87, 0x60, 0x91, 0x60, 0x9B, 0x60 - .byte 0xA4, 0x60, 0xAE, 0x60, 0xB8, 0x60, 0xC2, 0x60, 0xCB, 0x60, 0xD5, 0x60, 0xDE, 0x60, 0xE8, 0x60 - .byte 0xF2, 0x60, 0xFB, 0x60, 0x05, 0x61, 0x0E, 0x61, 0x18, 0x61, 0x21, 0x61, 0x2B, 0x61, 0x34, 0x61 - .byte 0x3E, 0x61, 0x47, 0x61, 0x50, 0x61, 0x5A, 0x61, 0x63, 0x61, 0x6C, 0x61, 0x76, 0x61, 0x7F, 0x61 - .byte 0x88, 0x61, 0x91, 0x61, 0x9A, 0x61, 0xA4, 0x61, 0xAD, 0x61, 0xB6, 0x61, 0xBF, 0x61, 0xC8, 0x61 - .byte 0xD1, 0x61, 0xDA, 0x61, 0xE3, 0x61, 0xEC, 0x61, 0xF5, 0x61, 0xFE, 0x61, 0x07, 0x62, 0x10, 0x62 - .byte 0x19, 0x62, 0x22, 0x62, 0x2B, 0x62, 0x34, 0x62, 0x3C, 0x62, 0x45, 0x62, 0x4E, 0x62, 0x57, 0x62 - .byte 0x60, 0x62, 0x68, 0x62, 0x71, 0x62, 0x7A, 0x62, 0x82, 0x62, 0x8B, 0x62, 0x94, 0x62, 0x9C, 0x62 - .byte 0xA5, 0x62, 0xAE, 0x62, 0xB6, 0x62, 0xBF, 0x62, 0xC7, 0x62, 0xD0, 0x62, 0xD8, 0x62, 0xE1, 0x62 - .byte 0xE9, 0x62, 0xF2, 0x62, 0xFA, 0x62, 0x03, 0x63, 0x0B, 0x63, 0x13, 0x63, 0x1C, 0x63, 0x24, 0x63 - .byte 0x2C, 0x63, 0x35, 0x63, 0x3D, 0x63, 0x45, 0x63, 0x4E, 0x63, 0x56, 0x63, 0x5E, 0x63, 0x66, 0x63 - .byte 0x6F, 0x63, 0x77, 0x63, 0x7F, 0x63, 0x87, 0x63, 0x8F, 0x63, 0x97, 0x63, 0x9F, 0x63, 0xA7, 0x63 - .byte 0xB0, 0x63, 0xB8, 0x63, 0xC0, 0x63, 0xC8, 0x63, 0xD0, 0x63, 0xD8, 0x63, 0xE0, 0x63, 0xE8, 0x63 - .byte 0xF0, 0x63, 0xF7, 0x63, 0xFF, 0x63, 0x07, 0x64, 0x0F, 0x64, 0x17, 0x64, 0x1F, 0x64, 0x27, 0x64 - .byte 0x2F, 0x64, 0x36, 0x64, 0x3E, 0x64, 0x46, 0x64, 0x4E, 0x64, 0x55, 0x64, 0x5D, 0x64, 0x65, 0x64 - .byte 0x6D, 0x64, 0x74, 0x64, 0x7C, 0x64, 0x84, 0x64, 0x8B, 0x64, 0x93, 0x64, 0x9B, 0x64, 0xA2, 0x64 - .byte 0xAA, 0x64, 0xB1, 0x64, 0xB9, 0x64, 0xC0, 0x64, 0xC8, 0x64, 0xD0, 0x64, 0xD7, 0x64, 0xDF, 0x64 - .byte 0xE6, 0x64, 0xED, 0x64, 0xF5, 0x64, 0xFC, 0x64, 0x04, 0x65, 0x0B, 0x65, 0x13, 0x65, 0x1A, 0x65 - .byte 0x21, 0x65, 0x29, 0x65, 0x30, 0x65, 0x37, 0x65, 0x3F, 0x65, 0x46, 0x65, 0x4D, 0x65, 0x55, 0x65 - .byte 0x5C, 0x65, 0x63, 0x65, 0x6A, 0x65, 0x72, 0x65, 0x79, 0x65, 0x80, 0x65, 0x87, 0x65, 0x8E, 0x65 - .byte 0x96, 0x65, 0x9D, 0x65, 0xA4, 0x65, 0xAB, 0x65, 0xB2, 0x65, 0xB9, 0x65, 0xC0, 0x65, 0xC7, 0x65 - .byte 0xCE, 0x65, 0xD6, 0x65, 0xDD, 0x65, 0xE4, 0x65, 0xEB, 0x65, 0xF2, 0x65, 0xF9, 0x65, 0x00, 0x66 - .byte 0x07, 0x66, 0x0E, 0x66, 0x14, 0x66, 0x1B, 0x66, 0x22, 0x66, 0x29, 0x66, 0x30, 0x66, 0x37, 0x66 - .byte 0x3E, 0x66, 0x45, 0x66, 0x4C, 0x66, 0x52, 0x66, 0x59, 0x66, 0x60, 0x66, 0x67, 0x66, 0x6E, 0x66 - .byte 0x75, 0x66, 0x7B, 0x66, 0x82, 0x66, 0x89, 0x66, 0x90, 0x66, 0x96, 0x66, 0x9D, 0x66, 0xA4, 0x66 - .byte 0xAA, 0x66, 0xB1, 0x66, 0xB8, 0x66, 0xBE, 0x66, 0xC5, 0x66, 0xCC, 0x66, 0xD2, 0x66, 0xD9, 0x66 - .byte 0xE0, 0x66, 0xE6, 0x66, 0xED, 0x66, 0xF3, 0x66, 0xFA, 0x66, 0x01, 0x67, 0x07, 0x67, 0x0E, 0x67 - .byte 0x14, 0x67, 0x1B, 0x67, 0x21, 0x67, 0x28, 0x67, 0x2E, 0x67, 0x35, 0x67, 0x3B, 0x67, 0x42, 0x67 - .byte 0x48, 0x67, 0x4E, 0x67, 0x55, 0x67, 0x5B, 0x67, 0x62, 0x67, 0x68, 0x67, 0x6E, 0x67, 0x75, 0x67 - .byte 0x7B, 0x67, 0x82, 0x67, 0x88, 0x67, 0x8E, 0x67, 0x95, 0x67, 0x9B, 0x67, 0xA1, 0x67, 0xA7, 0x67 - .byte 0xAE, 0x67, 0xB4, 0x67, 0xBA, 0x67, 0xC1, 0x67, 0xC7, 0x67, 0xCD, 0x67, 0xD3, 0x67, 0xDA, 0x67 - .byte 0xE0, 0x67, 0xE6, 0x67, 0xEC, 0x67, 0xF2, 0x67, 0xF8, 0x67, 0xFF, 0x67, 0x05, 0x68, 0x0B, 0x68 - .byte 0x11, 0x68, 0x17, 0x68, 0x1D, 0x68, 0x23, 0x68, 0x2A, 0x68, 0x30, 0x68, 0x36, 0x68, 0x3C, 0x68 - .byte 0x42, 0x68, 0x48, 0x68, 0x4E, 0x68, 0x54, 0x68, 0x5A, 0x68, 0x60, 0x68, 0x66, 0x68, 0x6C, 0x68 - .byte 0x72, 0x68, 0x78, 0x68, 0x7E, 0x68, 0x84, 0x68, 0x8A, 0x68, 0x90, 0x68, 0x96, 0x68, 0x9C, 0x68 - .byte 0xA2, 0x68, 0xA8, 0x68, 0xAD, 0x68, 0xB3, 0x68, 0xB9, 0x68, 0xBF, 0x68, 0xC5, 0x68, 0xCB, 0x68 - .byte 0xD1, 0x68, 0xD7, 0x68, 0xDC, 0x68, 0xE2, 0x68, 0xE8, 0x68, 0xEE, 0x68, 0xF4, 0x68, 0xF9, 0x68 - .byte 0xFF, 0x68, 0x05, 0x69, 0x0B, 0x69, 0x11, 0x69, 0x16, 0x69, 0x1C, 0x69, 0x22, 0x69, 0x28, 0x69 - .byte 0x2D, 0x69, 0x33, 0x69, 0x39, 0x69, 0x3E, 0x69, 0x44, 0x69, 0x4A, 0x69, 0x4F, 0x69, 0x55, 0x69 - .byte 0x5B, 0x69, 0x60, 0x69, 0x66, 0x69, 0x6C, 0x69, 0x71, 0x69, 0x77, 0x69, 0x7D, 0x69, 0x82, 0x69 - .byte 0x88, 0x69, 0x8D, 0x69, 0x93, 0x69, 0x99, 0x69, 0x9E, 0x69, 0xA4, 0x69, 0xA9, 0x69, 0xAF, 0x69 - .byte 0xB4, 0x69, 0xBA, 0x69, 0xBF, 0x69, 0xC5, 0x69, 0xCA, 0x69, 0xD0, 0x69, 0xD5, 0x69, 0xDB, 0x69 - .byte 0xE0, 0x69, 0xE6, 0x69, 0xEB, 0x69, 0xF1, 0x69, 0xF6, 0x69, 0xFC, 0x69, 0x01, 0x6A, 0x07, 0x6A - .byte 0x0C, 0x6A, 0x11, 0x6A, 0x17, 0x6A, 0x1C, 0x6A, 0x22, 0x6A, 0x27, 0x6A, 0x2C, 0x6A, 0x32, 0x6A - .byte 0x37, 0x6A, 0x3C, 0x6A, 0x42, 0x6A, 0x47, 0x6A, 0x4C, 0x6A, 0x52, 0x6A, 0x57, 0x6A, 0x5C, 0x6A - .byte 0x62, 0x6A, 0x67, 0x6A, 0x6C, 0x6A, 0x72, 0x6A, 0x77, 0x6A, 0x7C, 0x6A, 0x81, 0x6A, 0x87, 0x6A - .byte 0x8C, 0x6A, 0x91, 0x6A, 0x96, 0x6A, 0x9C, 0x6A, 0xA1, 0x6A, 0xA6, 0x6A, 0xAB, 0x6A, 0xB1, 0x6A - .byte 0xB6, 0x6A, 0xBB, 0x6A, 0xC0, 0x6A, 0xC5, 0x6A, 0xCB, 0x6A, 0xD0, 0x6A, 0xD5, 0x6A, 0xDA, 0x6A - .byte 0xDF, 0x6A, 0xE4, 0x6A, 0xE9, 0x6A, 0xEF, 0x6A, 0xF4, 0x6A, 0xF9, 0x6A, 0xFE, 0x6A, 0x03, 0x6B - .byte 0x08, 0x6B, 0x0D, 0x6B, 0x12, 0x6B, 0x17, 0x6B, 0x1C, 0x6B, 0x21, 0x6B, 0x27, 0x6B, 0x2C, 0x6B - .byte 0x31, 0x6B, 0x36, 0x6B, 0x3B, 0x6B, 0x40, 0x6B, 0x45, 0x6B, 0x4A, 0x6B, 0x4F, 0x6B, 0x54, 0x6B - .byte 0x59, 0x6B, 0x5E, 0x6B, 0x63, 0x6B, 0x68, 0x6B, 0x6D, 0x6B, 0x72, 0x6B, 0x77, 0x6B, 0x7C, 0x6B - .byte 0x81, 0x6B, 0x86, 0x6B, 0x8A, 0x6B, 0x8F, 0x6B, 0x94, 0x6B, 0x99, 0x6B, 0x9E, 0x6B, 0xA3, 0x6B - .byte 0xA8, 0x6B, 0xAD, 0x6B, 0xB2, 0x6B, 0xB7, 0x6B, 0xBC, 0x6B, 0xC0, 0x6B, 0xC5, 0x6B, 0xCA, 0x6B - .byte 0xCF, 0x6B, 0xD4, 0x6B, 0xD9, 0x6B, 0xDE, 0x6B, 0xE2, 0x6B, 0xE7, 0x6B, 0xEC, 0x6B, 0xF1, 0x6B - .byte 0xF6, 0x6B, 0xFA, 0x6B, 0xFF, 0x6B, 0x04, 0x6C, 0x09, 0x6C, 0x0E, 0x6C, 0x12, 0x6C, 0x17, 0x6C - .byte 0x1C, 0x6C, 0x21, 0x6C, 0x25, 0x6C, 0x2A, 0x6C, 0x2F, 0x6C, 0x34, 0x6C, 0x38, 0x6C, 0x3D, 0x6C - .byte 0x42, 0x6C, 0x47, 0x6C, 0x4B, 0x6C, 0x50, 0x6C, 0x55, 0x6C, 0x59, 0x6C, 0x5E, 0x6C, 0x63, 0x6C - .byte 0x67, 0x6C, 0x6C, 0x6C, 0x71, 0x6C, 0x75, 0x6C, 0x7A, 0x6C, 0x7F, 0x6C, 0x83, 0x6C, 0x88, 0x6C - .byte 0x8D, 0x6C, 0x91, 0x6C, 0x96, 0x6C, 0x9B, 0x6C, 0x9F, 0x6C, 0xA4, 0x6C, 0xA8, 0x6C, 0xAD, 0x6C - .byte 0xB2, 0x6C, 0xB6, 0x6C, 0xBB, 0x6C, 0xBF, 0x6C, 0xC4, 0x6C, 0xC8, 0x6C, 0xCD, 0x6C, 0xD2, 0x6C - .byte 0xD6, 0x6C, 0xDB, 0x6C, 0xDF, 0x6C, 0xE4, 0x6C, 0xE8, 0x6C, 0xED, 0x6C, 0xF1, 0x6C, 0xF6, 0x6C - .byte 0xFA, 0x6C, 0xFF, 0x6C, 0x03, 0x6D, 0x08, 0x6D, 0x0C, 0x6D, 0x11, 0x6D, 0x15, 0x6D, 0x1A, 0x6D - .byte 0x1E, 0x6D, 0x23, 0x6D, 0x27, 0x6D, 0x2C, 0x6D, 0x30, 0x6D, 0x35, 0x6D, 0x39, 0x6D, 0x3D, 0x6D - .byte 0x42, 0x6D, 0x46, 0x6D, 0x4B, 0x6D, 0x4F, 0x6D, 0x54, 0x6D, 0x58, 0x6D, 0x5C, 0x6D, 0x61, 0x6D - .byte 0x65, 0x6D, 0x6A, 0x6D, 0x6E, 0x6D, 0x72, 0x6D, 0x77, 0x6D, 0x7B, 0x6D, 0x7F, 0x6D, 0x84, 0x6D - .byte 0x88, 0x6D, 0x8D, 0x6D, 0x91, 0x6D, 0x95, 0x6D, 0x9A, 0x6D, 0x9E, 0x6D, 0xA2, 0x6D, 0xA7, 0x6D - .byte 0xAB, 0x6D, 0xAF, 0x6D, 0xB4, 0x6D, 0xB8, 0x6D, 0xBC, 0x6D, 0xC0, 0x6D, 0xC5, 0x6D, 0xC9, 0x6D - .byte 0xCD, 0x6D, 0xD2, 0x6D, 0xD6, 0x6D, 0xDA, 0x6D, 0xDE, 0x6D, 0xE3, 0x6D, 0xE7, 0x6D, 0xEB, 0x6D - .byte 0xEF, 0x6D, 0xF4, 0x6D, 0xF8, 0x6D, 0xFC, 0x6D, 0x00, 0x6E, 0x05, 0x6E, 0x09, 0x6E, 0x0D, 0x6E - .byte 0x11, 0x6E, 0x16, 0x6E, 0x1A, 0x6E, 0x1E, 0x6E, 0x22, 0x6E, 0x26, 0x6E, 0x2B, 0x6E, 0x2F, 0x6E - .byte 0x33, 0x6E, 0x37, 0x6E, 0x3B, 0x6E, 0x3F, 0x6E, 0x44, 0x6E, 0x48, 0x6E, 0x4C, 0x6E, 0x50, 0x6E - .byte 0x54, 0x6E, 0x58, 0x6E, 0x5C, 0x6E, 0x61, 0x6E, 0x65, 0x6E, 0x69, 0x6E, 0x6D, 0x6E, 0x71, 0x6E - .byte 0x75, 0x6E, 0x79, 0x6E, 0x7D, 0x6E, 0x82, 0x6E, 0x86, 0x6E, 0x8A, 0x6E, 0x8E, 0x6E, 0x92, 0x6E - .byte 0x96, 0x6E, 0x9A, 0x6E, 0x9E, 0x6E, 0xA2, 0x6E, 0xA6, 0x6E, 0xAA, 0x6E, 0xAE, 0x6E, 0xB2, 0x6E - .byte 0xB7, 0x6E, 0xBB, 0x6E, 0xBF, 0x6E, 0xC3, 0x6E, 0xC7, 0x6E, 0xCB, 0x6E, 0xCF, 0x6E, 0xD3, 0x6E - .byte 0xD7, 0x6E, 0xDB, 0x6E, 0xDF, 0x6E, 0xE3, 0x6E, 0xE7, 0x6E, 0xEB, 0x6E, 0xEF, 0x6E, 0xF3, 0x6E - .byte 0xF7, 0x6E, 0xFB, 0x6E, 0xFF, 0x6E, 0x03, 0x6F, 0x07, 0x6F, 0x0B, 0x6F, 0x0F, 0x6F, 0x13, 0x6F - .byte 0x17, 0x6F, 0x1A, 0x6F, 0x1E, 0x6F, 0x22, 0x6F, 0x26, 0x6F, 0x2A, 0x6F, 0x2E, 0x6F, 0x32, 0x6F - .byte 0x36, 0x6F, 0x3A, 0x6F, 0x3E, 0x6F, 0x42, 0x6F, 0x46, 0x6F, 0x4A, 0x6F, 0x4E, 0x6F, 0x51, 0x6F - .byte 0x55, 0x6F, 0x59, 0x6F, 0x5D, 0x6F, 0x61, 0x6F, 0x65, 0x6F, 0x69, 0x6F, 0x6D, 0x6F, 0x70, 0x6F - .byte 0x74, 0x6F, 0x78, 0x6F, 0x7C, 0x6F, 0x80, 0x6F, 0x84, 0x6F, 0x88, 0x6F, 0x8B, 0x6F, 0x8F, 0x6F - .byte 0x93, 0x6F, 0x97, 0x6F, 0x9B, 0x6F, 0x9F, 0x6F, 0xA2, 0x6F, 0xA6, 0x6F, 0xAA, 0x6F, 0xAE, 0x6F - .byte 0xB2, 0x6F, 0xB6, 0x6F, 0xB9, 0x6F, 0xBD, 0x6F, 0xC1, 0x6F, 0xC5, 0x6F, 0xC8, 0x6F, 0xCC, 0x6F - .byte 0xD0, 0x6F, 0xD4, 0x6F, 0xD8, 0x6F, 0xDB, 0x6F, 0xDF, 0x6F, 0xE3, 0x6F, 0xE7, 0x6F, 0xEA, 0x6F - .byte 0xEE, 0x6F, 0xF2, 0x6F, 0xF6, 0x6F, 0xF9, 0x6F, 0xFD, 0x6F, 0x01, 0x70, 0x05, 0x70, 0x08, 0x70 - .byte 0x0C, 0x70, 0x10, 0x70, 0x13, 0x70, 0x17, 0x70, 0x1B, 0x70, 0x1F, 0x70, 0x22, 0x70, 0x26, 0x70 - .byte 0x2A, 0x70, 0x2D, 0x70, 0x31, 0x70, 0x35, 0x70, 0x38, 0x70, 0x3C, 0x70, 0x40, 0x70, 0x44, 0x70 - .byte 0x47, 0x70, 0x4B, 0x70, 0x4F, 0x70, 0x52, 0x70, 0x56, 0x70, 0x5A, 0x70, 0x5D, 0x70, 0x61, 0x70 - .byte 0x64, 0x70, 0x68, 0x70, 0x6C, 0x70, 0x6F, 0x70, 0x73, 0x70, 0x77, 0x70, 0x7A, 0x70, 0x7E, 0x70 - .byte 0x82, 0x70, 0x85, 0x70, 0x89, 0x70, 0x8C, 0x70, 0x90, 0x70, 0x94, 0x70, 0x97, 0x70, 0x9B, 0x70 - .byte 0x9E, 0x70, 0xA2, 0x70, 0xA6, 0x70, 0xA9, 0x70, 0xAD, 0x70, 0xB0, 0x70, 0xB4, 0x70, 0xB7, 0x70 - .byte 0xBB, 0x70, 0xBF, 0x70, 0xC2, 0x70, 0xC6, 0x70, 0xC9, 0x70, 0xCD, 0x70, 0xD0, 0x70, 0xD4, 0x70 - .byte 0xD7, 0x70, 0xDB, 0x70, 0xDF, 0x70, 0xE2, 0x70, 0xE6, 0x70, 0xE9, 0x70, 0xED, 0x70, 0xF0, 0x70 - .byte 0xF4, 0x70, 0xF7, 0x70, 0xFB, 0x70, 0xFE, 0x70, 0x02, 0x71, 0x05, 0x71, 0x09, 0x71, 0x0C, 0x71 - .byte 0x10, 0x71, 0x13, 0x71, 0x17, 0x71, 0x1A, 0x71, 0x1E, 0x71, 0x21, 0x71, 0x25, 0x71, 0x28, 0x71 - .byte 0x2C, 0x71, 0x2F, 0x71, 0x33, 0x71, 0x36, 0x71, 0x39, 0x71, 0x3D, 0x71, 0x40, 0x71, 0x44, 0x71 - .byte 0x47, 0x71, 0x4B, 0x71, 0x4E, 0x71, 0x52, 0x71, 0x55, 0x71, 0x58, 0x71, 0x5C, 0x71, 0x5F, 0x71 - .byte 0x63, 0x71, 0x66, 0x71, 0x6A, 0x71, 0x6D, 0x71, 0x70, 0x71, 0x74, 0x71, 0x77, 0x71, 0x7B, 0x71 - .byte 0x7E, 0x71, 0x81, 0x71, 0x85, 0x71, 0x88, 0x71, 0x8C, 0x71, 0x8F, 0x71, 0x92, 0x71, 0x96, 0x71 - .byte 0x99, 0x71, 0x9D, 0x71, 0xA0, 0x71, 0xA3, 0x71, 0xA7, 0x71, 0xAA, 0x71, 0xAD, 0x71, 0xB1, 0x71 - .byte 0xB4, 0x71, 0xB8, 0x71, 0xBB, 0x71, 0xBE, 0x71, 0xC2, 0x71, 0xC5, 0x71, 0xC8, 0x71, 0xCC, 0x71 - .byte 0xCF, 0x71, 0xD2, 0x71, 0xD6, 0x71, 0xD9, 0x71, 0xDC, 0x71, 0xE0, 0x71, 0xE3, 0x71, 0xE6, 0x71 - .byte 0xEA, 0x71, 0xED, 0x71, 0xF0, 0x71, 0xF3, 0x71, 0xF7, 0x71, 0xFA, 0x71, 0xFD, 0x71, 0x01, 0x72 - .byte 0x04, 0x72, 0x07, 0x72, 0x0B, 0x72, 0x0E, 0x72, 0x11, 0x72, 0x14, 0x72, 0x18, 0x72, 0x1B, 0x72 - .byte 0x1E, 0x72, 0x21, 0x72, 0x25, 0x72, 0x28, 0x72, 0x2B, 0x72, 0x2F, 0x72, 0x32, 0x72, 0x35, 0x72 - .byte 0x38, 0x72, 0x3C, 0x72, 0x3F, 0x72, 0x42, 0x72, 0x45, 0x72, 0x49, 0x72, 0x4C, 0x72, 0x4F, 0x72 - .byte 0x52, 0x72, 0x55, 0x72, 0x59, 0x72, 0x5C, 0x72, 0x5F, 0x72, 0x62, 0x72, 0x66, 0x72, 0x69, 0x72 - .byte 0x6C, 0x72, 0x6F, 0x72, 0x72, 0x72, 0x76, 0x72, 0x79, 0x72, 0x7C, 0x72, 0x7F, 0x72, 0x82, 0x72 - .byte 0x86, 0x72, 0x89, 0x72, 0x8C, 0x72, 0x8F, 0x72, 0x92, 0x72, 0x96, 0x72, 0x99, 0x72, 0x9C, 0x72 - .byte 0x9F, 0x72, 0xA2, 0x72, 0xA5, 0x72, 0xA9, 0x72, 0xAC, 0x72, 0xAF, 0x72, 0xB2, 0x72, 0xB5, 0x72 - .byte 0xB8, 0x72, 0xBB, 0x72, 0xBF, 0x72, 0xC2, 0x72, 0xC5, 0x72, 0xC8, 0x72, 0xCB, 0x72, 0xCE, 0x72 - .byte 0xD1, 0x72, 0xD5, 0x72, 0xD8, 0x72, 0xDB, 0x72, 0xDE, 0x72, 0xE1, 0x72, 0xE4, 0x72, 0xE7, 0x72 - .byte 0xEA, 0x72, 0xEE, 0x72, 0xF1, 0x72, 0xF4, 0x72, 0xF7, 0x72, 0xFA, 0x72, 0xFD, 0x72, 0x00, 0x73 - .byte 0x03, 0x73, 0x06, 0x73, 0x09, 0x73, 0x0D, 0x73, 0x10, 0x73, 0x13, 0x73, 0x16, 0x73, 0x19, 0x73 - .byte 0x1C, 0x73, 0x1F, 0x73, 0x22, 0x73, 0x25, 0x73, 0x28, 0x73, 0x2B, 0x73, 0x2E, 0x73, 0x31, 0x73 - .byte 0x34, 0x73, 0x37, 0x73, 0x3B, 0x73, 0x3E, 0x73, 0x41, 0x73, 0x44, 0x73, 0x47, 0x73, 0x4A, 0x73 - .byte 0x4D, 0x73, 0x50, 0x73, 0x53, 0x73, 0x56, 0x73, 0x59, 0x73, 0x5C, 0x73, 0x5F, 0x73, 0x62, 0x73 - .byte 0x65, 0x73, 0x68, 0x73, 0x6B, 0x73, 0x6E, 0x73, 0x71, 0x73, 0x74, 0x73, 0x77, 0x73, 0x7A, 0x73 - .byte 0x7D, 0x73, 0x80, 0x73, 0x83, 0x73, 0x86, 0x73, 0x89, 0x73, 0x8C, 0x73, 0x8F, 0x73, 0x92, 0x73 - .byte 0x95, 0x73, 0x98, 0x73, 0x9B, 0x73, 0x9E, 0x73, 0xA1, 0x73, 0xA4, 0x73, 0xA7, 0x73, 0xAA, 0x73 - .byte 0xAD, 0x73, 0xB0, 0x73, 0xB3, 0x73, 0xB6, 0x73, 0xB9, 0x73, 0xBC, 0x73, 0xBF, 0x73, 0xC2, 0x73 - .byte 0xC5, 0x73, 0xC8, 0x73, 0xCA, 0x73, 0xCD, 0x73, 0xD0, 0x73, 0xD3, 0x73, 0xD6, 0x73, 0xD9, 0x73 - .byte 0xDC, 0x73, 0xDF, 0x73, 0xE2, 0x73, 0xE5, 0x73, 0xE8, 0x73, 0xEB, 0x73, 0xEE, 0x73, 0xF1, 0x73 - .byte 0xF4, 0x73, 0xF6, 0x73, 0xF9, 0x73, 0xFC, 0x73, 0xFF, 0x73, 0x02, 0x74, 0x05, 0x74, 0x08, 0x74 - .byte 0x0B, 0x74, 0x0E, 0x74, 0x11, 0x74, 0x14, 0x74, 0x16, 0x74, 0x19, 0x74, 0x1C, 0x74, 0x1F, 0x74 - .byte 0x22, 0x74, 0x25, 0x74, 0x28, 0x74, 0x2B, 0x74, 0x2D, 0x74, 0x30, 0x74, 0x33, 0x74, 0x36, 0x74 - .byte 0x39, 0x74, 0x3C, 0x74, 0x3F, 0x74, 0x42, 0x74, 0x44, 0x74, 0x47, 0x74, 0x4A, 0x74, 0x4D, 0x74 - .byte 0x50, 0x74, 0x53, 0x74, 0x56, 0x74, 0x58, 0x74, 0x5B, 0x74, 0x5E, 0x74, 0x61, 0x74, 0x64, 0x74 - .byte 0x67, 0x74, 0x69, 0x74, 0x6C, 0x74, 0x6F, 0x74, 0x72, 0x74, 0x75, 0x74, 0x78, 0x74, 0x7A, 0x74 - .byte 0x7D, 0x74, 0x80, 0x74, 0x83, 0x74, 0x86, 0x74, 0x89, 0x74, 0x8B, 0x74, 0x8E, 0x74, 0x91, 0x74 - .byte 0x94, 0x74, 0x97, 0x74, 0x99, 0x74, 0x9C, 0x74, 0x9F, 0x74, 0xA2, 0x74, 0xA5, 0x74, 0xA7, 0x74 - .byte 0xAA, 0x74, 0xAD, 0x74, 0xB0, 0x74, 0xB2, 0x74, 0xB5, 0x74, 0xB8, 0x74, 0xBB, 0x74, 0xBE, 0x74 - .byte 0xC0, 0x74, 0xC3, 0x74, 0xC6, 0x74, 0xC9, 0x74, 0xCB, 0x74, 0xCE, 0x74, 0xD1, 0x74, 0xD4, 0x74 - .byte 0xD7, 0x74, 0xD9, 0x74, 0xDC, 0x74, 0xDF, 0x74, 0xE2, 0x74, 0xE4, 0x74, 0xE7, 0x74, 0xEA, 0x74 - .byte 0xED, 0x74, 0xEF, 0x74, 0xF2, 0x74, 0xF5, 0x74, 0xF8, 0x74, 0xFA, 0x74, 0xFD, 0x74, 0x00, 0x75 - .byte 0x02, 0x75, 0x05, 0x75, 0x08, 0x75, 0x0B, 0x75, 0x0D, 0x75, 0x10, 0x75, 0x13, 0x75, 0x16, 0x75 - .byte 0x18, 0x75, 0x1B, 0x75, 0x1E, 0x75, 0x20, 0x75, 0x23, 0x75, 0x26, 0x75, 0x29, 0x75, 0x2B, 0x75 - .byte 0x2E, 0x75, 0x31, 0x75, 0x33, 0x75, 0x36, 0x75, 0x39, 0x75, 0x3B, 0x75, 0x3E, 0x75, 0x41, 0x75 - .byte 0x43, 0x75, 0x46, 0x75, 0x49, 0x75, 0x4C, 0x75, 0x4E, 0x75, 0x51, 0x75, 0x54, 0x75, 0x56, 0x75 - .byte 0x59, 0x75, 0x5C, 0x75, 0x5E, 0x75, 0x61, 0x75, 0x64, 0x75, 0x66, 0x75, 0x69, 0x75, 0x6C, 0x75 - .byte 0x6E, 0x75, 0x71, 0x75, 0x74, 0x75, 0x76, 0x75, 0x79, 0x75, 0x7C, 0x75, 0x7E, 0x75, 0x81, 0x75 - .byte 0x83, 0x75, 0x86, 0x75, 0x89, 0x75, 0x8B, 0x75, 0x8E, 0x75, 0x91, 0x75, 0x93, 0x75, 0x96, 0x75 - .byte 0x99, 0x75, 0x9B, 0x75, 0x9E, 0x75, 0xA0, 0x75, 0xA3, 0x75, 0xA6, 0x75, 0xA8, 0x75, 0xAB, 0x75 - .byte 0xAE, 0x75, 0xB0, 0x75, 0xB3, 0x75, 0xB5, 0x75, 0xB8, 0x75, 0xBB, 0x75, 0xBD, 0x75, 0xC0, 0x75 - .byte 0xC2, 0x75, 0xC5, 0x75, 0xC8, 0x75, 0xCA, 0x75, 0xCD, 0x75, 0xCF, 0x75, 0xD2, 0x75, 0xD5, 0x75 - .byte 0xD7, 0x75, 0xDA, 0x75, 0xDC, 0x75, 0xDF, 0x75, 0xE2, 0x75, 0xE4, 0x75, 0xE7, 0x75, 0xE9, 0x75 - .byte 0xEC, 0x75, 0xEF, 0x75, 0xF1, 0x75, 0xF4, 0x75, 0xF6, 0x75, 0xF9, 0x75, 0xFB, 0x75, 0xFE, 0x75 - .byte 0x01, 0x76, 0x03, 0x76, 0x06, 0x76, 0x08, 0x76, 0x0B, 0x76, 0x0D, 0x76, 0x10, 0x76, 0x12, 0x76 - .byte 0x15, 0x76, 0x18, 0x76, 0x1A, 0x76, 0x1D, 0x76, 0x1F, 0x76, 0x22, 0x76, 0x24, 0x76, 0x27, 0x76 - .byte 0x29, 0x76, 0x2C, 0x76, 0x2E, 0x76, 0x31, 0x76, 0x34, 0x76, 0x36, 0x76, 0x39, 0x76, 0x3B, 0x76 - .byte 0x3E, 0x76, 0x40, 0x76, 0x43, 0x76, 0x45, 0x76, 0x48, 0x76, 0x4A, 0x76, 0x4D, 0x76, 0x4F, 0x76 - .byte 0x52, 0x76, 0x54, 0x76, 0x57, 0x76, 0x59, 0x76, 0x5C, 0x76, 0x5E, 0x76, 0x61, 0x76, 0x63, 0x76 - .byte 0x66, 0x76, 0x68, 0x76, 0x6B, 0x76, 0x6D, 0x76, 0x70, 0x76, 0x72, 0x76, 0x75, 0x76, 0x77, 0x76 - .byte 0x7A, 0x76, 0x7C, 0x76, 0x7F, 0x76, 0x81, 0x76, 0x84, 0x76, 0x86, 0x76, 0x89, 0x76, 0x8B, 0x76 - .byte 0x8E, 0x76, 0x90, 0x76, 0x93, 0x76, 0x95, 0x76, 0x98, 0x76, 0x9A, 0x76, 0x9D, 0x76, 0x9F, 0x76 - .byte 0xA2, 0x76, 0xA4, 0x76, 0xA7, 0x76, 0xA9, 0x76, 0xAB, 0x76, 0xAE, 0x76, 0xB0, 0x76, 0xB3, 0x76 - .byte 0xB5, 0x76, 0xB8, 0x76, 0xBA, 0x76, 0xBD, 0x76, 0xBF, 0x76, 0xC2, 0x76, 0xC4, 0x76, 0xC6, 0x76 - .byte 0xC9, 0x76, 0xCB, 0x76, 0xCE, 0x76, 0xD0, 0x76, 0xD3, 0x76, 0xD5, 0x76, 0xD8, 0x76, 0xDA, 0x76 - .byte 0xDC, 0x76, 0xDF, 0x76, 0xE1, 0x76, 0xE4, 0x76, 0xE6, 0x76, 0xE9, 0x76, 0xEB, 0x76, 0xED, 0x76 - .byte 0xF0, 0x76, 0xF2, 0x76, 0xF5, 0x76, 0xF7, 0x76, 0xF9, 0x76, 0xFC, 0x76, 0xFE, 0x76, 0x01, 0x77 - .byte 0x03, 0x77, 0x06, 0x77, 0x08, 0x77, 0x0A, 0x77, 0x0D, 0x77, 0x0F, 0x77, 0x12, 0x77, 0x14, 0x77 - .byte 0x16, 0x77, 0x19, 0x77, 0x1B, 0x77, 0x1E, 0x77, 0x20, 0x77, 0x22, 0x77, 0x25, 0x77, 0x27, 0x77 - .byte 0x29, 0x77, 0x2C, 0x77, 0x2E, 0x77, 0x31, 0x77, 0x33, 0x77, 0x35, 0x77, 0x38, 0x77, 0x3A, 0x77 - .byte 0x3D, 0x77, 0x3F, 0x77, 0x41, 0x77, 0x44, 0x77, 0x46, 0x77, 0x48, 0x77, 0x4B, 0x77, 0x4D, 0x77 - .byte 0x50, 0x77, 0x52, 0x77, 0x54, 0x77, 0x57, 0x77, 0x59, 0x77, 0x5B, 0x77, 0x5E, 0x77, 0x60, 0x77 - .byte 0x62, 0x77, 0x65, 0x77, 0x67, 0x77, 0x69, 0x77, 0x6C, 0x77, 0x6E, 0x77, 0x70, 0x77, 0x73, 0x77 - .byte 0x75, 0x77, 0x78, 0x77, 0x7A, 0x77, 0x7C, 0x77, 0x7F, 0x77, 0x81, 0x77, 0x83, 0x77, 0x86, 0x77 - .byte 0x88, 0x77, 0x8A, 0x77, 0x8D, 0x77, 0x8F, 0x77, 0x91, 0x77, 0x94, 0x77, 0x96, 0x77, 0x98, 0x77 - .byte 0x9A, 0x77, 0x9D, 0x77, 0x9F, 0x77, 0xA1, 0x77, 0xA4, 0x77, 0xA6, 0x77, 0xA8, 0x77, 0xAB, 0x77 - .byte 0xAD, 0x77, 0xAF, 0x77, 0xB2, 0x77, 0xB4, 0x77, 0xB6, 0x77, 0xB9, 0x77, 0xBB, 0x77, 0xBD, 0x77 - .byte 0xBF, 0x77, 0xC2, 0x77, 0xC4, 0x77, 0xC6, 0x77, 0xC9, 0x77, 0xCB, 0x77, 0xCD, 0x77, 0xD0, 0x77 - .byte 0xD2, 0x77, 0xD4, 0x77, 0xD6, 0x77, 0xD9, 0x77, 0xDB, 0x77, 0xDD, 0x77, 0xE0, 0x77, 0xE2, 0x77 - .byte 0xE4, 0x77, 0xE6, 0x77, 0xE9, 0x77, 0xEB, 0x77, 0xED, 0x77, 0xF0, 0x77, 0xF2, 0x77, 0xF4, 0x77 - .byte 0xF6, 0x77, 0xF9, 0x77, 0xFB, 0x77, 0xFD, 0x77, 0xFF, 0x77, 0x02, 0x78, 0x04, 0x78, 0x06, 0x78 - .byte 0x08, 0x78, 0x0B, 0x78, 0x0D, 0x78, 0x0F, 0x78, 0x11, 0x78, 0x14, 0x78, 0x16, 0x78, 0x18, 0x78 - .byte 0x1A, 0x78, 0x1D, 0x78, 0x1F, 0x78, 0x21, 0x78, 0x23, 0x78, 0x26, 0x78, 0x28, 0x78, 0x2A, 0x78 - .byte 0x2C, 0x78, 0x2F, 0x78, 0x31, 0x78, 0x33, 0x78, 0x35, 0x78, 0x38, 0x78, 0x3A, 0x78, 0x3C, 0x78 - .byte 0x3E, 0x78, 0x41, 0x78, 0x43, 0x78, 0x45, 0x78, 0x47, 0x78, 0x49, 0x78, 0x4C, 0x78, 0x4E, 0x78 - .byte 0x50, 0x78, 0x52, 0x78, 0x55, 0x78, 0x57, 0x78, 0x59, 0x78, 0x5B, 0x78, 0x5D, 0x78, 0x60, 0x78 - .byte 0x62, 0x78, 0x64, 0x78, 0x66, 0x78, 0x69, 0x78, 0x6B, 0x78, 0x6D, 0x78, 0x6F, 0x78, 0x71, 0x78 - .byte 0x74, 0x78, 0x76, 0x78, 0x78, 0x78, 0x7A, 0x78, 0x7C, 0x78, 0x7F, 0x78, 0x81, 0x78, 0x83, 0x78 - .byte 0x85, 0x78, 0x87, 0x78, 0x8A, 0x78, 0x8C, 0x78, 0x8E, 0x78, 0x90, 0x78, 0x92, 0x78, 0x94, 0x78 - .byte 0x97, 0x78, 0x99, 0x78, 0x9B, 0x78, 0x9D, 0x78, 0x9F, 0x78, 0xA2, 0x78, 0xA4, 0x78, 0xA6, 0x78 - .byte 0xA8, 0x78, 0xAA, 0x78, 0xAC, 0x78, 0xAF, 0x78, 0xB1, 0x78, 0xB3, 0x78, 0xB5, 0x78, 0xB7, 0x78 - .byte 0xB9, 0x78, 0xBC, 0x78, 0xBE, 0x78, 0xC0, 0x78, 0xC2, 0x78, 0xC4, 0x78, 0xC6, 0x78, 0xC9, 0x78 - .byte 0xCB, 0x78, 0xCD, 0x78, 0xCF, 0x78, 0xD1, 0x78, 0xD3, 0x78, 0xD5, 0x78, 0xD8, 0x78, 0xDA, 0x78 - .byte 0xDC, 0x78, 0xDE, 0x78, 0xE0, 0x78, 0xE2, 0x78, 0xE4, 0x78, 0xE7, 0x78, 0xE9, 0x78, 0xEB, 0x78 - .byte 0xED, 0x78, 0xEF, 0x78, 0xF1, 0x78, 0xF3, 0x78, 0xF6, 0x78, 0xF8, 0x78, 0xFA, 0x78, 0xFC, 0x78 - .byte 0xFE, 0x78, 0x00, 0x79, 0x02, 0x79, 0x04, 0x79, 0x07, 0x79, 0x09, 0x79, 0x0B, 0x79, 0x0D, 0x79 - .byte 0x0F, 0x79, 0x11, 0x79, 0x13, 0x79, 0x15, 0x79, 0x18, 0x79, 0x1A, 0x79, 0x1C, 0x79, 0x1E, 0x79 - .byte 0x20, 0x79, 0x22, 0x79, 0x24, 0x79, 0x26, 0x79, 0x28, 0x79, 0x2B, 0x79, 0x2D, 0x79, 0x2F, 0x79 - .byte 0x31, 0x79, 0x33, 0x79, 0x35, 0x79, 0x37, 0x79, 0x39, 0x79, 0x3B, 0x79, 0x3D, 0x79, 0x40, 0x79 - .byte 0x42, 0x79, 0x44, 0x79, 0x46, 0x79, 0x48, 0x79, 0x4A, 0x79, 0x4C, 0x79, 0x4E, 0x79, 0x50, 0x79 - .byte 0x52, 0x79, 0x54, 0x79, 0x57, 0x79, 0x59, 0x79, 0x5B, 0x79, 0x5D, 0x79, 0x5F, 0x79, 0x61, 0x79 - .byte 0x63, 0x79, 0x65, 0x79, 0x67, 0x79, 0x69, 0x79, 0x6B, 0x79, 0x6D, 0x79, 0x6F, 0x79, 0x72, 0x79 - .byte 0x74, 0x79, 0x76, 0x79, 0x78, 0x79, 0x7A, 0x79, 0x7C, 0x79, 0x7E, 0x79, 0x80, 0x79, 0x82, 0x79 - .byte 0x84, 0x79, 0x86, 0x79, 0x88, 0x79, 0x8A, 0x79, 0x8C, 0x79, 0x8E, 0x79, 0x90, 0x79, 0x93, 0x79 - .byte 0x95, 0x79, 0x97, 0x79, 0x99, 0x79, 0x9B, 0x79, 0x9D, 0x79, 0x9F, 0x79, 0xA1, 0x79, 0xA3, 0x79 - .byte 0xA5, 0x79, 0xA7, 0x79, 0xA9, 0x79, 0xAB, 0x79, 0xAD, 0x79, 0xAF, 0x79, 0xB1, 0x79, 0xB3, 0x79 - .byte 0xB5, 0x79, 0xB7, 0x79, 0xB9, 0x79, 0xBB, 0x79, 0xBD, 0x79, 0xBF, 0x79, 0xC1, 0x79, 0xC4, 0x79 - .byte 0xC6, 0x79, 0xC8, 0x79, 0xCA, 0x79, 0xCC, 0x79, 0xCE, 0x79, 0xD0, 0x79, 0xD2, 0x79, 0xD4, 0x79 - .byte 0xD6, 0x79, 0xD8, 0x79, 0xDA, 0x79, 0xDC, 0x79, 0xDE, 0x79, 0xE0, 0x79, 0xE2, 0x79, 0xE4, 0x79 - .byte 0xE6, 0x79, 0xE8, 0x79, 0xEA, 0x79, 0xEC, 0x79, 0xEE, 0x79, 0xF0, 0x79, 0xF2, 0x79, 0xF4, 0x79 - .byte 0xF6, 0x79, 0xF8, 0x79, 0xFA, 0x79, 0xFC, 0x79, 0x6D, 0x65, 0x6D, 0x6F, 0x72, 0x79, 0x20, 0x68 - .byte 0x65, 0x61, 0x70, 0x20, 0x6D, 0x61, 0x69, 0x6E, 0x20, 0x25, 0x70, 0x20, 0x25, 0x70, 0x0A, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x72, 0x6F, 0x6F, 0x74, 0x20, 0x72, 0x65, 0x73, 0x65, 0x74, 0x20, 0x25 - .byte 0x64, 0x0A, 0x00, 0x00, 0x4D, 0x61, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x54, 0x61, 0x73, 0x6B - .byte 0x00, 0x00, 0x00, 0x00, 0x55, 0x6E, 0x4B, 0x6E, 0x6F, 0x77, 0x6E, 0x00, 0x55, 0x6E, 0x6B, 0x6E - .byte 0x6F, 0x77, 0x6E, 0x00, 0x53, 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72 - .byte 0x00, 0x00, 0x00, 0x00, 0x53, 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x41, 0x63, 0x74, 0x69, 0x6F, 0x6E - .byte 0x00, 0x00, 0x00, 0x00, 0x53, 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x43, 0x6F, 0x6D, 0x6D, 0x61, 0x6E - .byte 0x64, 0x00, 0x00, 0x00, 0x53, 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x4C, 0x6F, 0x61, 0x64, 0x20, 0x43 - .byte 0x6F, 0x6D, 0x6D, 0x61, 0x6E, 0x64, 0x00, 0x00, 0x74, 0x61, 0x73, 0x6B, 0x20, 0x70, 0x72, 0x6F - .byte 0x63, 0x20, 0x62, 0x6F, 0x6F, 0x74, 0x0A, 0x00, 0x73, 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x72, 0x65 - .byte 0x73, 0x75, 0x6D, 0x65, 0x0A, 0x00, 0x00, 0x00, 0x73, 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x73, 0x6C - .byte 0x65, 0x65, 0x70, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x63, 0x61, 0x72, 0x64, 0x20, 0x70, 0x75, 0x6C - .byte 0x6C, 0x20, 0x6F, 0x75, 0x74, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x63, 0x61, 0x72, 0x64 - .byte 0x20, 0x70, 0x75, 0x6C, 0x6C, 0x20, 0x6F, 0x75, 0x74, 0x0A, 0x00, 0x00, 0x63, 0x61, 0x72, 0x64 - .byte 0x20, 0x62, 0x61, 0x63, 0x6B, 0x75, 0x70, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x0A, 0x00, 0x00 - .byte 0x68, 0x61, 0x6C, 0x74, 0x20, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73, 0x20, 0x64, 0x69, 0x73 - .byte 0x70, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x80, 0x25, 0x09, 0x02, 0x77, 0x03, 0x00, 0x00 - .byte 0x80, 0x25, 0x09, 0x02, 0x16, 0x02, 0x00, 0x00, 0x80, 0x25, 0x09, 0x02, 0xB1, 0x00, 0x00, 0x00 - .byte 0x80, 0x25, 0x09, 0x02, 0x0D, 0x01, 0x00, 0x00, 0x80, 0x25, 0x09, 0x02, 0x72, 0x02, 0x00, 0x00 - .byte 0x6F, 0x76, 0x65, 0x72, 0x6C, 0x61, 0x79, 0x2E, 0x63, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63 - .byte 0x6B, 0x20, 0x67, 0x72, 0x6F, 0x75, 0x70, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00, 0x00, 0x00 - .byte 0x6C, 0x6F, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6F, 0x75, 0x70, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72 - .byte 0x00, 0x00, 0x00, 0x00, 0x75, 0x6E, 0x6C, 0x6F, 0x61, 0x64, 0x20, 0x67, 0x72, 0x6F, 0x75, 0x70 - .byte 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 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, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00 - .byte 0x64, 0x6D, 0x61, 0x31, 0x00, 0x00, 0x00, 0x00, 0x64, 0x6D, 0x61, 0x33, 0x00, 0x00, 0x00, 0x00 - .byte 0x64, 0x6D, 0x61, 0x32, 0x00, 0x00, 0x00, 0x00, 0x64, 0x6D, 0x61, 0x30, 0x00, 0x00, 0x00, 0x00 - .byte 0x14, 0x5D, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x90, 0x5D, 0x00, 0x02, 0xE0, 0x5D, 0x00, 0x02 - .byte 0x58, 0x26, 0x09, 0x02, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 - .byte 0x60, 0x26, 0x09, 0x02, 0x40, 0x26, 0x09, 0x02, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x02, 0x00, 0x00, 0x60, 0x26, 0x09, 0x02, 0x50, 0x26, 0x09, 0x02, 0x04, 0x00, 0x04, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x60, 0x26, 0x09, 0x02, 0x48, 0x26, 0x09, 0x02 - .byte 0x08, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x60, 0x26, 0x09, 0x02 - .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, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x4F, 0x4E, 0x45 - .byte 0x00, 0x00, 0x00, 0x00, 0x4F, 0x50, 0x54, 0x49, 0x4F, 0x49, 0x4E, 0x00, 0x4E, 0x6F, 0x77, 0x20 - .byte 0x64, 0x61, 0x74, 0x65, 0x20, 0x26, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x00, 0x25, 0x73, 0x20, 0x27 - .byte 0x25, 0x73, 0x27, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x25, 0x30, 0x34, 0x64, 0x2F, 0x25, 0x30, 0x32 - .byte 0x64, 0x2F, 0x25, 0x30, 0x32, 0x64, 0x20, 0x25, 0x30, 0x32, 0x64, 0x3A, 0x25, 0x30, 0x32, 0x64 - .byte 0x3A, 0x25, 0x30, 0x32, 0x64, 0x00, 0x00, 0x00, 0x25, 0x73, 0x2F, 0x00, 0x46, 0x69, 0x6C, 0x65 - .byte 0x4E, 0x61, 0x6D, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6C, 0x74, 0x20, 0x64, 0x72, 0x69 - .byte 0x76, 0x65, 0x5B, 0x25, 0x73, 0x5D, 0x20, 0x70, 0x50, 0x61, 0x74, 0x68, 0x5B, 0x25, 0x73, 0x5D - .byte 0x0A, 0x00, 0x00, 0x00, 0x25, 0x73, 0x3A, 0x25, 0x73, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00 - .byte 0x64, 0x69, 0x72, 0x00, 0x66, 0x69, 0x6C, 0x65, 0x00, 0x00, 0x00, 0x00, 0x34, 0x28, 0x09, 0x02 - .byte 0xB6, 0x03, 0x00, 0x00, 0x34, 0x28, 0x09, 0x02, 0x86, 0x03, 0x00, 0x00, 0x34, 0x28, 0x09, 0x02 - .byte 0xDA, 0x03, 0x00, 0x00, 0x34, 0x28, 0x09, 0x02, 0x34, 0x03, 0x00, 0x00, 0x34, 0x28, 0x09, 0x02 - .byte 0x0E, 0x03, 0x00, 0x00, 0x34, 0x28, 0x09, 0x02, 0xE8, 0x02, 0x00, 0x00, 0x34, 0x28, 0x09, 0x02 - .byte 0x66, 0x03, 0x00, 0x00, 0x66, 0x69, 0x6C, 0x65, 0x5F, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2E - .byte 0x63, 0x00, 0x00, 0x00, 0x46, 0x69, 0x6C, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x49 - .byte 0x6E, 0x69, 0x74, 0x20, 0x27, 0x25, 0x73, 0x27, 0x00, 0x00, 0x00, 0x00, 0x6E, 0x75, 0x6C, 0x6C - .byte 0x00, 0x00, 0x00, 0x00, 0x4E, 0x75, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x64, 0x28, 0x09, 0x02, 0x5C, 0x28, 0x09, 0x02, 0xB4, 0x7E, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0xB8, 0x7E, 0x00, 0x02, 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 0x72, 0x6F, 0x6D, 0x00, 0x43, 0x41, 0x52, 0x44, 0x20, 0x52, 0x4F, 0x4D, 0x00, 0x00, 0x00, 0x00 - .byte 0x4C, 0x6F, 0x63, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x50, 0x72, 0x6F, 0x67, 0x00, 0x00, 0x00, 0x00 - .byte 0x4C, 0x6F, 0x61, 0x64, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x6F, 0x6E, 0x65, 0x00, 0x00, 0x00, 0x00 - .byte 0x53, 0x61, 0x76, 0x65, 0x00, 0x00, 0x00, 0x00, 0x41, 0x62, 0x6F, 0x72, 0x74, 0x00, 0x00, 0x00 - .byte 0x44, 0x65, 0x6C, 0x65, 0x74, 0x65, 0x00, 0x00, 0x46, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x00 - .byte 0x66, 0x69, 0x6C, 0x65, 0x2E, 0x63, 0x00, 0x00, 0x00, 0x29, 0x09, 0x02, 0xEF, 0x01, 0x00, 0x00 - .byte 0x00, 0x29, 0x09, 0x02, 0x36, 0x04, 0x00, 0x00, 0x00, 0x29, 0x09, 0x02, 0x6D, 0x0A, 0x00, 0x00 - .byte 0x00, 0x29, 0x09, 0x02, 0xDF, 0x0B, 0x00, 0x00, 0x00, 0x29, 0x09, 0x02, 0xFA, 0x03, 0x00, 0x00 - .byte 0x4C, 0x6F, 0x61, 0x64, 0x53, 0x74, 0x72, 0x00, 0x52, 0x65, 0x61, 0x64, 0x41, 0x6C, 0x6C, 0x00 - .byte 0x53, 0x74, 0x72, 0x4F, 0x70, 0x65, 0x6E, 0x00, 0x46, 0x69, 0x6C, 0x65, 0x43, 0x68, 0x65, 0x63 - .byte 0x6B, 0x00, 0x00, 0x00, 0x52, 0x65, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x00, 0x00 - .byte 0x52, 0x65, 0x61, 0x64, 0x41, 0x6C, 0x6C, 0x53, 0x74, 0x72, 0x00, 0x00, 0x44, 0x65, 0x76, 0x69 - .byte 0x63, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x69, 0x6C, 0x65 - .byte 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5F, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x49, 0x6E, 0x69 - .byte 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x46, 0x69, 0x6C, 0x65 - .byte 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5F, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x49, 0x6E, 0x69 - .byte 0x74, 0x20, 0x65, 0x6E, 0x64, 0x0A, 0x00, 0x00, 0x46, 0x69, 0x6C, 0x65, 0x20, 0x43, 0x6F, 0x6D - .byte 0x6D, 0x61, 0x6E, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x25, 0x73, 0x5B, 0x25 - .byte 0x73, 0x5D, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x25, 0x64, 0x20, 0x5B, 0x25, 0x64, 0x2C - .byte 0x25, 0x64, 0x5D, 0x20, 0x66, 0x69, 0x6C, 0x65, 0x20, 0x25, 0x70, 0x20, 0x62, 0x75, 0x66, 0x20 - .byte 0x25, 0x70, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x25, 0x70, 0x20, 0x73, 0x69, 0x7A, 0x65, 0x20 - .byte 0x25, 0x38, 0x78, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x06 - .byte 0x00, 0x00, 0x01, 0x06, 0x00, 0x80, 0x01, 0x06, 0x00, 0x80, 0x89, 0x06, 0x00, 0xA0, 0x89, 0x06 - .byte 0x00, 0x00, 0x21, 0x06, 0x00, 0x80, 0x21, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06 - .byte 0x00, 0x00, 0x01, 0x06, 0x00, 0x80, 0x01, 0x06, 0x00, 0x00, 0x20, 0x06, 0x00, 0xC0, 0x20, 0x06 - .byte 0x00, 0x00, 0x21, 0x06, 0x00, 0x80, 0x21, 0x06, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00 - .byte 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00 - .byte 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x00, 0x06 - .byte 0x00, 0xE0, 0x00, 0x06, 0x00, 0xF0, 0x00, 0x06, 0x00, 0xD0, 0x20, 0x06, 0x00, 0xD8, 0x20, 0x06 - .byte 0x00, 0xE0, 0x20, 0x06, 0x00, 0xF0, 0x20, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x64, 0x69, 0x73, 0x70, 0x6C, 0x61, 0x79, 0x20 - .byte 0x73, 0x65, 0x74, 0x20, 0x6D, 0x6F, 0x64, 0x65, 0x20, 0x25, 0x33, 0x64, 0x20, 0x2D, 0x3E, 0x20 - .byte 0x25, 0x33, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x41, 0x54, 0x34, 0x50, 0x58, 0x6A, 0x19, 0x02 - .byte 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, 0x00, 0x0D, 0x00, 0xC0, 0x00, 0x20, 0x20, 0x1F, 0xFC, 0x5F - .byte 0xF8, 0xBF, 0xF2, 0xFF, 0xE2, 0xFF, 0xD0, 0xFF, 0xBE, 0x00, 0xFF, 0xAC, 0xFF, 0x9A, 0xFF, 0x88 - .byte 0xFF, 0x76, 0xFF, 0x64, 0xFF, 0x52, 0xFF, 0x40, 0xFF, 0x2E, 0x00, 0xFF, 0x1C, 0xFF, 0x0A, 0xFE - .byte 0xF8, 0xFE, 0xE6, 0xFE, 0xD4, 0xFE, 0xC2, 0xFE, 0xB0, 0xFE, 0x9E, 0x00, 0xFE, 0x8C, 0xFE, 0x7A - .byte 0xFE, 0x68, 0xFE, 0x56, 0xFE, 0x44, 0xFE, 0x32, 0xFE, 0x20, 0xFE, 0x0E, 0x00, 0xFD, 0xFC, 0xFD - .byte 0xEA, 0xFD, 0xD8, 0xFD, 0xC6, 0xFD, 0xB4, 0xFD, 0xA2, 0xFD, 0x90, 0xFD, 0x7E, 0x00, 0xFD, 0x6C - .byte 0xFD, 0x5A, 0xFD, 0x48, 0xFD, 0x36, 0xFD, 0x24, 0xFD, 0x12, 0xFD, 0x00, 0xFC, 0xEE, 0x00, 0xFC - .byte 0xDC, 0xFC, 0xCA, 0xFC, 0xB8, 0xFC, 0xA6, 0xFC, 0x94, 0xFC, 0x82, 0xFC, 0x70, 0xFC, 0x5E, 0x00 - .byte 0xFC, 0x4C, 0xFC, 0x3A, 0xFC, 0x28, 0xFC, 0x16, 0xFC, 0x04, 0xFB, 0xF2, 0xFB, 0xE0, 0xFB, 0xCE - .byte 0x00, 0xFB, 0xBC, 0xFB, 0xAA, 0xFB, 0x98, 0xFB, 0x86, 0xFB, 0x74, 0xFB, 0x62, 0xFB, 0x50, 0xFB - .byte 0x3E, 0x00, 0xFB, 0x2C, 0xFB, 0x1A, 0xFB, 0x08, 0xFA, 0xF6, 0xFA, 0xE4, 0xFA, 0xD2, 0xFA, 0xC0 - .byte 0xFA, 0xAE, 0x00, 0xFA, 0x9C, 0xFA, 0x8A, 0xFA, 0x78, 0xFA, 0x66, 0xFA, 0x54, 0xFA, 0x42, 0xFA - .byte 0x30, 0xFA, 0x1E, 0x00, 0xFA, 0x0C, 0xF9, 0xFA, 0xF9, 0xE8, 0xF9, 0xD6, 0xF9, 0xC4, 0xF9, 0xB2 - .byte 0xF9, 0xA0, 0xF9, 0x8E, 0x00, 0xF9, 0x7C, 0xF9, 0x6A, 0xF9, 0x58, 0xF9, 0x46, 0xF9, 0x34, 0xF9 - .byte 0x22, 0xF9, 0x10, 0xF8, 0xFE, 0x00, 0xF8, 0xEC, 0xF8, 0xDA, 0xF8, 0xC8, 0xF8, 0xB6, 0xF8, 0xA4 - .byte 0xF8, 0x92, 0xF8, 0x80, 0xF8, 0x6E, 0x00, 0xF8, 0x5C, 0xF8, 0x4A, 0xF8, 0x38, 0xF8, 0x26, 0xF8 - .byte 0x14, 0xF8, 0x02, 0xF7, 0xF0, 0xF7, 0xDE, 0x00, 0xF7, 0xCC, 0xF7, 0xBA, 0xF7, 0xA8, 0xF7, 0x96 - .byte 0xF7, 0x84, 0xF7, 0x72, 0xF7, 0x60, 0xF7, 0x4E, 0x00, 0xF7, 0x3C, 0xF7, 0x2A, 0xF7, 0x18, 0xF7 - .byte 0x06, 0xF6, 0xF4, 0xF6, 0xE2, 0xF6, 0xD0, 0xF6, 0xBE, 0x00, 0xF6, 0xAC, 0xF6, 0x9A, 0xF6, 0x88 - .byte 0xF6, 0x76, 0xF6, 0x64, 0xF6, 0x52, 0xF6, 0x40, 0xF6, 0x2E, 0x00, 0xF6, 0x1C, 0xF6, 0x0A, 0xF5 - .byte 0xF8, 0xF5, 0xE6, 0xF5, 0xD4, 0xF5, 0xC2, 0xF5, 0xB0, 0xF5, 0x9E, 0x00, 0xF5, 0x8C, 0xF5, 0x7A - .byte 0xF5, 0x68, 0xF5, 0x56, 0xF5, 0x44, 0xF5, 0x32, 0xF5, 0x20, 0xF5, 0x0E, 0x00, 0xF4, 0xFC, 0xF4 - .byte 0xEA, 0xF4, 0xD8, 0xF4, 0xC6, 0xF4, 0xB4, 0xF4, 0xA2, 0xF4, 0x90, 0xF4, 0x7E, 0x00, 0xF4, 0x6C - .byte 0xF4, 0x5A, 0xF4, 0x48, 0xF4, 0x36, 0xF4, 0x24, 0xF4, 0x12, 0xF4, 0x00, 0xF3, 0xEE, 0x00, 0xF3 - .byte 0xDC, 0xF3, 0xCA, 0xF3, 0xB8, 0xF3, 0xA6, 0xF3, 0x94, 0xF3, 0x82, 0xF3, 0x70, 0xF3, 0x5E, 0x00 - .byte 0xF3, 0x4C, 0xF3, 0x3A, 0xF3, 0x28, 0xF3, 0x16, 0xF3, 0x04, 0xF2, 0xF2, 0xF2, 0xE0, 0xF2, 0xCE - .byte 0x00, 0xF2, 0xBC, 0xF2, 0xAA, 0xF2, 0x98, 0xF2, 0x86, 0xF2, 0x74, 0xF2, 0x62, 0xF2, 0x50, 0xF2 - .byte 0x3E, 0x00, 0xF2, 0x2C, 0xF2, 0x1A, 0xF2, 0x08, 0xF1, 0xF6, 0xF1, 0xE4, 0xF1, 0xD2, 0xF1, 0xC0 - .byte 0xF1, 0xAE, 0x00, 0xF1, 0x9C, 0xF1, 0x8A, 0xF1, 0x78, 0xF1, 0x66, 0xF1, 0x54, 0xF1, 0x42, 0xF1 - .byte 0x30, 0xF1, 0x1E, 0x00, 0xF1, 0x0C, 0xF0, 0xFA, 0xF0, 0xE8, 0xF0, 0xD6, 0xF0, 0xC4, 0xF0, 0xB2 - .byte 0xF0, 0xA0, 0xF0, 0x8E, 0x00, 0xF0, 0x7C, 0xF0, 0x6A, 0xF0, 0x58, 0xF0, 0x46, 0xF0, 0x34, 0xF0 - .byte 0x22, 0xF0, 0x10, 0xF0, 0x00, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00 - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00 - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00 - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF6, 0xFF, 0x7F, 0xFF, 0x7F - .byte 0x1F, 0xFC, 0xFF, 0x7F, 0x20, 0x00, 0x1F, 0xFC, 0xF0, 0x0C, 0x50, 0x0C, 0x5F, 0xDA, 0xF0, 0x0E - .byte 0xF0, 0x0E, 0x90, 0x0E, 0xFF, 0xC8, 0x00, 0xF0, 0x02, 0xFF, 0x86, 0xF0, 0x02, 0xF0, 0x02, 0xF0 - .byte 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0x00, 0x10, 0x02, 0xFF, 0x04, 0xF0, 0x10, 0xF0, 0x10 - .byte 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0x00, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0 - .byte 0x10, 0xF0, 0x10, 0xF0, 0x10, 0x9E, 0x64, 0x10, 0x04, 0xFF, 0x08, 0x21, 0xFF, 0x7F, 0x08, 0x21 - .byte 0x08, 0x21, 0x00, 0x3F, 0xF8, 0xF0, 0x04, 0x30, 0x04, 0x1D, 0xE0, 0x3F, 0xDC, 0xF0, 0x06, 0xF0 - .byte 0x06, 0x70, 0x06, 0x18, 0xFF, 0xC8, 0xF0, 0x0E, 0x1D, 0x86, 0x08, 0x21, 0xF0, 0x08, 0xF0, 0x08 - .byte 0xF0, 0x08, 0x00, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0x1E, 0xFC, 0xF0, 0x04, 0xF0 - .byte 0x04, 0xF0, 0x04, 0x00, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04 - .byte 0xF0, 0x04, 0xF0, 0x04, 0x00, 0xF0, 0x04, 0xF0, 0x04, 0xB0, 0x04, 0x5F, 0x04, 0x9C, 0x1E, 0x1B - .byte 0xE8, 0xBC, 0x3A, 0x5E, 0x5E, 0x00, 0x1E, 0x56, 0x5F, 0xE2, 0x7B, 0xC6, 0x5B, 0xC4, 0xFF, 0xC8 - .byte 0xFF, 0xC8, 0x3B, 0x96, 0xBF, 0xBC, 0x00, 0x7E, 0x00, 0x9B, 0x7A, 0x3B, 0x6E, 0x7F, 0x74, 0x9F - .byte 0x5E, 0x5C, 0x4A, 0x9F, 0x74, 0x3C, 0x36, 0x00, 0x3F, 0x44, 0xBF, 0xCA, 0x9C, 0x1C, 0xFF, 0xAA - .byte 0x1A, 0xFA, 0xFD, 0x7E, 0xF0, 0x10, 0xF0, 0x10, 0x00, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0 - .byte 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0x00, 0xF0, 0x10, 0xF0, 0x10, 0xBE, 0x02 - .byte 0x7C, 0x82, 0x3B, 0xF8, 0x59, 0xF6, 0x1B, 0xE8, 0x9C, 0x38, 0x00, 0xBE, 0x5E, 0x3F, 0xE2, 0x7F - .byte 0xCE, 0x5F, 0xF0, 0x20, 0xFF, 0xC8, 0x79, 0xBE, 0x5F, 0xE2, 0x00, 0x3D, 0xA2, 0x5B, 0xB0, 0xBB - .byte 0x86, 0x9C, 0x76, 0x1B, 0x66, 0x3B, 0x86, 0x7F, 0x6A, 0x1B, 0x54, 0x00, 0x99, 0x6C, 0x1F, 0x8E - .byte 0x3F, 0x54, 0xFF, 0x6C, 0xBF, 0x34, 0x7D, 0x18, 0xBF, 0xD0, 0x3F, 0x4C, 0x00, 0xFB, 0x7E, 0xF0 - .byte 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0x00, 0xF0, 0x08 - .byte 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xFE, 0x00, 0x3A, 0x82, 0x3A, 0xFC, 0x00, 0x3E - .byte 0x8C, 0x37, 0xE8, 0x9C, 0x6A, 0xFC, 0x08, 0x59, 0xCE, 0xFF, 0xC8, 0x9C, 0x32, 0x9A, 0x26, 0x00 - .byte 0x5F, 0xAA, 0x39, 0x8E, 0x38, 0x88, 0x3B, 0xB0, 0xBF, 0xDA, 0x5B, 0xDE, 0x1D, 0xB2, 0x17, 0x68 - .byte 0x00, 0x5C, 0x60, 0xFB, 0x6A, 0x5D, 0xF2, 0x57, 0x38, 0xFF, 0x6C, 0x7F, 0x2A, 0x9F, 0xAA, 0xFF - .byte 0xD0, 0x00, 0xF9, 0x7E, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00 - .byte 0xF0, 0x00, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xFC, 0x00, 0xFE - .byte 0x00, 0x37, 0xEE, 0x00, 0xFE, 0x38, 0x9C, 0x6E, 0xFE, 0x00, 0x57, 0xB6, 0xFE, 0x00, 0x56, 0x9C - .byte 0x37, 0x92, 0x78, 0x92, 0x00, 0x9E, 0x62, 0x75, 0x96, 0x9F, 0xDA, 0x5C, 0x00, 0x37, 0xDE, 0xFB - .byte 0x6A, 0x57, 0x60, 0x5F, 0x4E, 0x00, 0xBE, 0x10, 0xFD, 0x5C, 0x7D, 0x1A, 0x97, 0x0A, 0xF8, 0x00 - .byte 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0x00, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0 - .byte 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0x00, 0xF0, 0x0C, 0xF0, 0x0C, 0x9A, 0xE8, 0x36, 0x74 - .byte 0x5B, 0xF6, 0xFA, 0x00, 0x3A, 0x6E, 0x5C, 0x4C, 0x00, 0xFE, 0x94, 0x37, 0xE2, 0xF9, 0xC8, 0x33 - .byte 0xA0, 0xBF, 0xC8, 0xFC, 0x00, 0x99, 0xD6, 0x35, 0x8E, 0x00, 0x55, 0xE4, 0x59, 0xF6, 0xB5, 0xD4 - .byte 0xFD, 0xB8, 0x9F, 0xD0, 0xBF, 0x34, 0x5B, 0x1C, 0x5B, 0xAC, 0x00, 0x5F, 0x56, 0xFD, 0x7E, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x7C, 0xC4, 0x00, 0x32, 0xFC, 0x7A - .byte 0x74, 0x58, 0x5E, 0x94, 0x36, 0x7F, 0xEC, 0x9A, 0x38, 0x9E, 0x5E, 0x3A, 0x54, 0x00, 0x3A, 0x4A - .byte 0x98, 0x5C, 0x7E, 0x34, 0x36, 0x96, 0xB8, 0x1C, 0xF6, 0x82, 0x7D, 0x9A, 0x76, 0x2E, 0x00, 0x75 - .byte 0x88, 0xF9, 0xA2, 0x56, 0x08, 0x78, 0x36, 0xBA, 0x0A, 0x5D, 0xB4, 0x93, 0x96, 0xFF, 0x32, 0x00 - .byte 0xF0, 0xFE, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF1, 0xFC, 0x30, 0x08, 0x5A - .byte 0x9C, 0x00, 0x31, 0xE8, 0x98, 0x46, 0x5F, 0xEE, 0x73, 0xFA, 0x36, 0x78, 0xBF, 0xCE, 0xFF, 0xC8 - .byte 0xFF, 0xC8, 0x00, 0x9F, 0xC8, 0x5F, 0x8A, 0x96, 0x2C, 0x7F, 0x76, 0x71, 0xEC, 0x31, 0x60, 0xFF - .byte 0x6A, 0xBD, 0x96, 0x00, 0x55, 0xE6, 0xFF, 0x6C, 0x95, 0xCC, 0xBF, 0xAA, 0x5F, 0x08, 0xBF, 0xC4 - .byte 0xF0, 0x04, 0xF0, 0x04, 0x00, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0 - .byte 0x04, 0xF0, 0x04, 0xF0, 0x04, 0x00, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x22, 0xF0, 0x10, 0xF0, 0x20 - .byte 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x2A, 0x00, 0xF0, 0x18, 0xF0, 0x06, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0 - .byte 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0x00, 0xF0, 0x0C, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10 - .byte 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0x00, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0 - .byte 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF1, 0x36, 0xF1, 0x24, 0x00, 0xF1, 0x12, 0xF1, 0x00, 0xF0, 0xEE - .byte 0xF0, 0xDC, 0xF0, 0xCA, 0xF0, 0xB8, 0xF0, 0xA6, 0xF0, 0x94, 0x00, 0xF0, 0x82, 0xF0, 0x70, 0xF0 - .byte 0x5E, 0xF0, 0x4C, 0xF0, 0x3A, 0xF0, 0x28, 0xF0, 0x16, 0xF0, 0x04, 0x00, 0xF0, 0x04, 0xF0, 0x04 - .byte 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0x00, 0xF0, 0x04, 0xF0 - .byte 0x04, 0xF0, 0x04, 0xF1, 0x2C, 0xF1, 0x1A, 0xF1, 0x08, 0xF0, 0xF6, 0xF0, 0xE4, 0x00, 0xF0, 0xD2 - .byte 0xF0, 0xC0, 0xF0, 0xAE, 0xF0, 0x9C, 0xF0, 0x8A, 0xF0, 0x78, 0xF0, 0x66, 0xF0, 0x54, 0x00, 0xF0 - .byte 0x42, 0xF0, 0x30, 0xF0, 0x1E, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0x00 - .byte 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0xF1, 0x34 - .byte 0x00, 0xF1, 0x22, 0xF1, 0x10, 0xF0, 0xFE, 0xF0, 0xEC, 0xF0, 0xDA, 0xF0, 0xC8, 0xF0, 0xB6, 0xF0 - .byte 0xA4, 0x00, 0xF0, 0x92, 0xF0, 0x80, 0xF0, 0x6E, 0xF0, 0x5C, 0xF0, 0x4A, 0xF0, 0x38, 0xF0, 0x26 - .byte 0xF0, 0x14, 0x00, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0 - .byte 0x02, 0xF0, 0x02, 0x00, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xB0, 0x02, 0x34, 0x36 - .byte 0x34, 0x12, 0xF1, 0x0E, 0x00, 0xF0, 0xFC, 0xBF, 0xC2, 0x54, 0x10, 0x74, 0x80, 0x91, 0xCE, 0x50 - .byte 0x0C, 0xF0, 0xB6, 0xF0, 0xA4, 0x00, 0xF0, 0x92, 0xF0, 0x80, 0xF0, 0x6E, 0xF0, 0x5C, 0xF0, 0x4A - .byte 0xF0, 0x38, 0xF0, 0x26, 0xF0, 0x14, 0x00, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0 - .byte 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0x06, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02 - .byte 0xF0, 0x02, 0x08, 0x21, 0x10, 0x00, 0x00, 0xF4, 0x7E, 0xF0, 0xFA, 0xF0, 0xE8, 0x30, 0x5C, 0x50 - .byte 0x0C, 0xB4, 0x3A, 0xF0, 0xA8, 0xF0, 0xA8, 0x00, 0xF0, 0x96, 0xF0, 0x84, 0xF0, 0x72, 0xF0, 0x60 - .byte 0xF0, 0x4E, 0xF0, 0x3C, 0xF0, 0x2A, 0xF0, 0x18, 0x00, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0 - .byte 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0x00, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06 - .byte 0xF0, 0x06, 0xF0, 0x06, 0x91, 0x26, 0x50, 0x72, 0x10, 0x5A, 0x00, 0x30, 0xFC, 0x10, 0x50, 0x30 - .byte 0x12, 0x30, 0x16, 0xFB, 0xCC, 0x70, 0x68, 0x70, 0x5E, 0xBF, 0xAC, 0x00, 0xFF, 0xC0, 0x30, 0x8E - .byte 0x9B, 0xDE, 0x7B, 0x88, 0x5B, 0x7E, 0x3F, 0x7C, 0x30, 0x88, 0x5F, 0x70, 0x00, 0x9F, 0x68, 0x9F - .byte 0xE0, 0xF0, 0x62, 0xF0, 0x50, 0xF0, 0x3E, 0xF0, 0x2C, 0xF0, 0x1A, 0xF0, 0x08, 0x00, 0xF0, 0x08 - .byte 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0x00, 0xF0 - .byte 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF1, 0x28, 0x3A, 0x46, 0x30, 0x08, 0x7C, 0x4E, 0x39, 0xF0, 0x00 - .byte 0x10, 0x1E, 0x3B, 0xE4, 0x9E, 0x8A, 0x3C, 0x0C, 0x5D, 0xD4, 0x50, 0x46, 0x3B, 0xBC, 0xBD, 0xFE - .byte 0x00, 0xBF, 0xC0, 0x9F, 0xC8, 0x5E, 0x20, 0x3F, 0x9E, 0x3D, 0x8C, 0x1B, 0x78, 0x19, 0xB0, 0x70 - .byte 0x0A, 0x00, 0x1B, 0x68, 0x7F, 0x92, 0x7F, 0x6C, 0xF0, 0x62, 0xF0, 0x50, 0xF0, 0x3E, 0xF0, 0x2C - .byte 0xF0, 0x1A, 0x00, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0 - .byte 0x08, 0xF0, 0x08, 0x00, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xFC, 0x00 - .byte 0x5E, 0x84, 0x3E, 0x8A, 0x00, 0x9E, 0x28, 0xFE, 0x6A, 0x9F, 0xD4, 0x7E, 0x34, 0xB0, 0x0E, 0x9A - .byte 0x00, 0x3E, 0x36, 0x37, 0x94, 0x00, 0xBE, 0x20, 0x3E, 0x0E, 0xBF, 0xD4, 0x7B, 0x7C, 0x19, 0x64 - .byte 0x5F, 0xCA, 0xFD, 0x9E, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xFC, 0x00, 0x5E, 0x00, 0x9E - .byte 0x28, 0x59, 0xDE, 0x7B, 0xD2, 0x9E, 0x22, 0x9B, 0xBC, 0x00, 0x96, 0x00, 0x37, 0xE8, 0x37, 0xE2 - .byte 0x77, 0x9A, 0xFE, 0x00, 0x37, 0x7E, 0x9D, 0xAC, 0x7F, 0x7C, 0x00, 0x57, 0x64, 0x5F, 0xDC, 0xF0 - .byte 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0x00, 0xF0, 0x0E, 0xF0, 0x0E - .byte 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0x00, 0xF0, 0x0E, 0xF0 - .byte 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF4, 0x3C, 0xFA, 0x00, 0x5A, 0x7A, 0xF6, 0x3A, 0x00, 0xBC, 0x54 - .byte 0xBF, 0xD8, 0xF7, 0xAA, 0x99, 0xAC, 0x55, 0xD8, 0x50, 0x0C, 0x57, 0xA4, 0xBE, 0x00, 0x00, 0x9C - .byte 0x02, 0x7B, 0x6C, 0xB9, 0xE6, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x00 - .byte 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00 - .byte 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x92, 0x56, 0x7E, 0x12, 0x11 - .byte 0xF0, 0x00, 0x9C, 0x94, 0xF4, 0x3A, 0x52, 0x0C, 0x7C, 0x22, 0xFC, 0x00, 0x76, 0x40, 0xB9, 0xFA - .byte 0x33, 0xD0, 0x00, 0x7E, 0x00, 0x13, 0x8A, 0x57, 0x84, 0x7F, 0xE4, 0x7C, 0x02, 0x71, 0xA8, 0xBC - .byte 0x00, 0xF5, 0xFA, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x24, 0x90, 0x12, 0x76, 0x8C, 0x5E, 0x6E, 0x9F, 0xEE - .byte 0x10, 0x0C, 0x76, 0x6A, 0x3F, 0xF2, 0x00, 0x56, 0x5A, 0x9F, 0xC6, 0xF0, 0x18, 0x11, 0xE6, 0x35 - .byte 0xA4, 0x35, 0x9E, 0xF1, 0xDE, 0x70, 0x08, 0x00, 0x91, 0x7E, 0x7F, 0xC8, 0x9F, 0x92, 0xB5, 0xE6 - .byte 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0x00, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0 - .byte 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0x00, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04 - .byte 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x1C, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x38, 0xF0 - .byte 0x26, 0xF0, 0x14, 0xF0, 0x02, 0x20, 0xBD, 0xAA, 0xF0, 0x04, 0x00, 0xF0, 0x04, 0x31, 0x88, 0xFF - .byte 0xC6, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0x00, 0xF0, 0x10, 0xF0, 0x10 - .byte 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0x00, 0xF0, 0x10, 0xF0 - .byte 0x10, 0xF0, 0x10, 0xF0, 0xD4, 0xF0, 0xC2, 0xF0, 0xB0, 0xF0, 0x9E, 0xF0, 0x8C, 0x00, 0xF0, 0x7A - .byte 0xF0, 0x68, 0xF0, 0x56, 0xF0, 0x44, 0xF0, 0x32, 0xF0, 0x20, 0x50, 0x0E, 0xFD, 0xC8, 0x00, 0xF0 - .byte 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0x00 - .byte 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06 - .byte 0x00, 0xF0, 0x06, 0xF0, 0xBA, 0xF0, 0xA8, 0xF0, 0x96, 0xF0, 0x84, 0xF0, 0x72, 0xF0, 0x60, 0xF0 - .byte 0x4E, 0x00, 0xF0, 0x3C, 0xF0, 0x2A, 0xF0, 0x18, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06 - .byte 0xF0, 0x06, 0x00, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0 - .byte 0x06, 0xF0, 0x06, 0x00, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0xCA - .byte 0xF0, 0xB8, 0xF0, 0xA6, 0x00, 0xF0, 0x94, 0xF0, 0x82, 0xF0, 0x70, 0xF0, 0x5E, 0xF0, 0x4C, 0xF0 - .byte 0x3A, 0xF0, 0x28, 0xF0, 0x16, 0x00, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04 - .byte 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0x00, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0 - .byte 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0x00, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0xB4, 0x72, 0x66 - .byte 0xF0, 0x98, 0xF0, 0x86, 0xFF, 0xD2, 0x74, 0x08, 0x00, 0x32, 0x3A, 0xF0, 0x52, 0x74, 0x04, 0x12 - .byte 0x02, 0xF0, 0x32, 0xF0, 0x20, 0xB0, 0x0E, 0x51, 0xCC, 0x00, 0xF0, 0x0A, 0x93, 0x30, 0xF0, 0x10 - .byte 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0x00, 0xF0, 0x10, 0xF0, 0x10, 0xF0 - .byte 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0x00, 0xF0, 0x10, 0xF0, 0xD2 - .byte 0xF0, 0xC0, 0xBE, 0x9A, 0xF6, 0x66, 0xF0, 0x8E, 0xF1, 0xC0, 0x92, 0x28, 0x00, 0xF0, 0x50, 0x90 - .byte 0x4C, 0x31, 0xF8, 0x10, 0x08, 0xF0, 0x36, 0xF0, 0x24, 0xBE, 0x26, 0x11, 0xCC, 0x00, 0xF2, 0x00 - .byte 0xBF, 0xA2, 0xF5, 0xA8, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0x00, 0xF0 - .byte 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0x00 - .byte 0xF0, 0x04, 0xF0, 0x04, 0xBC, 0xD4, 0x5C, 0x76, 0x5C, 0x6E, 0x3C, 0x66, 0x9C, 0x96, 0x7C, 0x8A - .byte 0x00, 0x7F, 0xD4, 0x1C, 0x1E, 0x10, 0x30, 0x9F, 0xD8, 0x50, 0x50, 0x10, 0x18, 0x9C, 0x56, 0x5F - .byte 0x9E, 0x03, 0xBD, 0xDE, 0x51, 0xA8, 0x9F, 0x80, 0x5F, 0xAE, 0x5B, 0xB6, 0xB0, 0x16, 0xFF, 0x7F - .byte 0x00, 0x91, 0x88, 0xFF, 0x74, 0x3F, 0x6C, 0x7F, 0xDA, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0 - .byte 0x0E, 0x00, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E - .byte 0xF0, 0x0E, 0x00, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x60, 0x5E, 0x3C, 0x5C, 0xAC, 0x5C - .byte 0x6E, 0x1E, 0x98, 0x00, 0x1E, 0x94, 0x3C, 0x5E, 0x5C, 0x52, 0x3C, 0x50, 0x5F, 0xEC, 0x5C, 0x3C - .byte 0x3C, 0x16, 0x92, 0x36, 0x00, 0x5F, 0xC6, 0x5C, 0x56, 0x3C, 0x12, 0x9C, 0x4C, 0x9E, 0x5E, 0x7F - .byte 0xE2, 0x7F, 0x8E, 0x9F, 0x88, 0x00, 0xFF, 0xC8, 0x79, 0x9A, 0x5F, 0x60, 0x9B, 0xB0, 0x1B, 0xAA - .byte 0xF1, 0xA8, 0xF0, 0x08, 0xF0, 0x08, 0x00, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0 - .byte 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0x00, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08 - .byte 0xF0, 0x08, 0xBA, 0x44, 0x30, 0x7A, 0x38, 0xA6, 0x00, 0x3C, 0x9E, 0x5E, 0x00, 0x5A, 0x3A, 0xBC - .byte 0x5E, 0x7D, 0xE2, 0x58, 0x10, 0xB0, 0x38, 0x7F, 0xBC, 0x00, 0x39, 0xFA, 0x9F, 0xA6, 0x9F, 0xCE - .byte 0xBC, 0x08, 0x5E, 0x48, 0x9F, 0x7E, 0x38, 0x12, 0x72, 0x12, 0x00, 0xBC, 0x26, 0x5F, 0xE2, 0x3D - .byte 0x56, 0x3B, 0x84, 0x11, 0xE6, 0xFC, 0x00, 0xF0, 0x06, 0xF0, 0x06, 0x00, 0xF0, 0x06, 0xF0, 0x06 - .byte 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0x00, 0xF0, 0x06, 0xF0 - .byte 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF8, 0xD4, 0x5E, 0xC4, 0x18, 0xA4, 0x00, 0x5E, 0xBE - .byte 0x9E, 0x3A, 0x17, 0xF0, 0x3A, 0x14, 0x3F, 0xDE, 0xBC, 0x9C, 0xBE, 0x6A, 0x7D, 0xCC, 0x00, 0x9F - .byte 0xB6, 0x5F, 0xA6, 0xBD, 0xCE, 0x3B, 0x98, 0x3F, 0xA2, 0xFE, 0x00, 0x3B, 0x7E, 0x18, 0x10, 0x00 - .byte 0xF9, 0xC8, 0x35, 0xA0, 0x3C, 0x14, 0x79, 0xEA, 0xBF, 0x4C, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10 - .byte 0x00, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0 - .byte 0x10, 0x00, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0x7C, 0xCE, 0x9C, 0xC4 - .byte 0x5C, 0xB8, 0x00, 0x9B, 0xF6, 0x5C, 0xA4, 0x5B, 0xE2, 0xB6, 0x22, 0xFE, 0x00, 0x7C, 0x7A, 0x9B - .byte 0xB6, 0xF5, 0xCE, 0x00, 0xBB, 0x98, 0xFB, 0xC8, 0x3C, 0x32, 0xF5, 0x96, 0x5D, 0x74, 0x5B, 0xA0 - .byte 0x56, 0x10, 0xFE, 0x00, 0x00, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0 - .byte 0x04, 0xF0, 0x04, 0xF0, 0x04, 0x00, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04 - .byte 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0x00, 0xB8, 0x76, 0x34, 0x68, 0x9E, 0xAA, 0x59, 0xF0, 0x7F - .byte 0xE6, 0x58, 0x32, 0xB8, 0x0E, 0xB0, 0x04, 0x00, 0xBE, 0x60, 0x77, 0x9A, 0x92, 0x5C, 0x32, 0x00 - .byte 0x3A, 0x50, 0x11, 0xF4, 0xFA, 0x00, 0xFF, 0xC8, 0x00, 0x56, 0x20, 0x33, 0x60, 0x9A, 0x00, 0xB1 - .byte 0xA8, 0x39, 0xFA, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00 - .byte 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0 - .byte 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x30, 0x00, 0x92, 0xD4, 0x7A, 0x94, 0x00, 0x12, 0xBE, 0x32, 0xBA - .byte 0x32, 0xB4, 0x9F, 0xE6, 0x9F, 0xE8, 0x50, 0x1E, 0xB7, 0xFE, 0x31, 0xC0, 0x00, 0xFF, 0xC0, 0x90 - .byte 0x10, 0x99, 0xEE, 0x59, 0x88, 0xBF, 0x8E, 0x33, 0xE0, 0xFF, 0xA6, 0xBF, 0x74, 0x00, 0x7F, 0x56 - .byte 0x5F, 0x30, 0x39, 0xCE, 0xF3, 0xFA, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0x00, 0xF0 - .byte 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0x00 - .byte 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x2E, 0xF0, 0x1C, 0xF0, 0x0A, 0xF0, 0x50, 0xF0, 0x3E - .byte 0x00, 0xF0, 0x2C, 0xF0, 0x1A, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x4C, 0xF0, 0x3A, 0xF0, 0x28, 0x93 - .byte 0xE2, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0xF2, 0x00, 0xF0, 0xE0, 0xF0, 0xCE, 0xF0, 0xBC, 0xF0, 0xAA, 0xF0, 0x98, 0xF0, 0x86 - .byte 0xF0, 0x74, 0xF0, 0x62, 0x00, 0xF0, 0x50, 0xF0, 0x3E, 0xF0, 0x2C, 0xF0, 0x1A, 0x3B, 0xC6, 0xF0 - .byte 0x02, 0xF0, 0x02, 0xF0, 0x02, 0x00, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02 - .byte 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0x00, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0 - .byte 0x02, 0xF0, 0xEC, 0xF0, 0xDA, 0xF0, 0xC8, 0x00, 0xF0, 0xB6, 0xF0, 0xA4, 0xF0, 0x92, 0xF0, 0x80 - .byte 0xF0, 0x6E, 0xF0, 0x5C, 0xF0, 0x4A, 0xF0, 0x38, 0x00, 0xF0, 0x26, 0xF0, 0x14, 0xF0, 0x02, 0xF0 - .byte 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0x00, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02 - .byte 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0x00, 0xF0, 0x02, 0xF0, 0xF2, 0xF0 - .byte 0xE0, 0xF0, 0xCE, 0xF0, 0xBC, 0xF0, 0xAA, 0xF0, 0x98, 0xF0, 0x86, 0x00, 0xF0, 0x74, 0xF0, 0x62 - .byte 0xF0, 0x50, 0xF0, 0x3E, 0xF0, 0x2C, 0xF0, 0x1A, 0xF0, 0x08, 0xF0, 0x08, 0x00, 0xF0, 0x08, 0xF0 - .byte 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0x00, 0xF0, 0x08 - .byte 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0x08, 0xF0, 0xF0, 0x30, 0x08, 0x30, 0x02, 0x00, 0xF0 - .byte 0xD2, 0xF0, 0xC0, 0x30, 0x8A, 0xF0, 0xA8, 0xF0, 0x96, 0x78, 0x7A, 0xFF, 0xCC, 0xF0, 0x68, 0x00 - .byte 0xF0, 0x56, 0xF0, 0x44, 0xF0, 0x32, 0xFF, 0x48, 0xB3, 0x7A, 0xFF, 0x52, 0xF0, 0x00, 0xF0, 0x00 - .byte 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0 - .byte 0x00, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x56, 0xD6, 0x70, 0x52 - .byte 0xF0, 0xD2, 0x00, 0xFE, 0xAE, 0x92, 0x08, 0xF0, 0xA2, 0xB0, 0x90, 0xF0, 0x70, 0xF0, 0x70, 0xF0 - .byte 0x5E, 0xF0, 0x4C, 0x00, 0xF0, 0x3A, 0x72, 0x10, 0xFF, 0x70, 0x91, 0x9A, 0xFF, 0x52, 0xF0, 0x00 - .byte 0xF0, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0 - .byte 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x30, 0xBC - .byte 0x70, 0xA8, 0x3B, 0xEE, 0x10, 0x12, 0x00, 0xBF, 0xEC, 0x54, 0xAA, 0x30, 0x4A, 0x5F, 0xE0, 0x3B - .byte 0xF0, 0x5F, 0xEC, 0x30, 0x2E, 0xF0, 0x1C, 0x00, 0x5F, 0x9C, 0x9F, 0xA4, 0xB0, 0x50, 0x7F, 0xA2 - .byte 0x7B, 0x6E, 0xBB, 0xBE, 0x9F, 0x8E, 0x3F, 0x62, 0x00, 0xBF, 0x6E, 0xBF, 0xA4, 0x5F, 0x76, 0x5D - .byte 0x80, 0x90, 0x08, 0x7F, 0xE4, 0x5F, 0xDA, 0xF0, 0x0E, 0x00, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E - .byte 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0x00, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0 - .byte 0x0E, 0xF0, 0x0E, 0xF0, 0xFE, 0x1A, 0x2E, 0x10, 0x0A, 0x10, 0xD2, 0xC0, 0x08, 0x21, 0x1E, 0x08 - .byte 0x1E, 0x04, 0x5F, 0xF6, 0x3F, 0xE6, 0xBE, 0xC2, 0x5F, 0xD2, 0x00, 0x3F, 0xC6, 0x3D, 0xF0, 0xBF - .byte 0xBE, 0xBC, 0x80, 0x1F, 0xAA, 0x5F, 0xB8, 0x7F, 0xA4, 0x9C, 0x40, 0x00, 0xFF, 0x88, 0x70, 0x0C - .byte 0x10, 0x3A, 0x9F, 0x6E, 0x3F, 0x62, 0xBF, 0xE0, 0xFF, 0x48, 0x20, 0x00, 0x7F, 0x3E, 0x3F, 0x30 - .byte 0x7B, 0xD0, 0x9F, 0xE4, 0x3F, 0x0E, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0x00, 0xF0, 0x0C, 0xF0 - .byte 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0x00, 0xF0, 0x0C - .byte 0xF0, 0x0C, 0xF0, 0x0C, 0x3E, 0x00, 0x3D, 0xFA, 0x7E, 0x2E, 0x1B, 0xEA, 0x3E, 0x48, 0x00, 0x5F - .byte 0xE0, 0xBA, 0x90, 0x7A, 0x28, 0x3D, 0xC8, 0x37, 0xB8, 0xF9, 0xB8, 0x9A, 0x00, 0x3E, 0x36, 0x00 - .byte 0x3B, 0x90, 0xBE, 0x20, 0x5D, 0xB6, 0x79, 0x78, 0x5D, 0x78, 0x5D, 0x74, 0x5F, 0xCA, 0x7F, 0x92 - .byte 0x00, 0xFF, 0x70, 0x5B, 0x3C, 0x5F, 0x48, 0x3D, 0xFC, 0xBE, 0x02, 0xBF, 0x18, 0xF9, 0x08, 0xF0 - .byte 0x06, 0x00, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06 - .byte 0xF0, 0x06, 0x00, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xF0, 0x06, 0xBC, 0x5C, 0xBE, 0x00, 0x1B - .byte 0xF0, 0xBC, 0x1A, 0x00, 0xFF, 0xD2, 0x57, 0xCC, 0x38, 0x1E, 0xFE, 0x00, 0xF7, 0xA4, 0x3C, 0x36 - .byte 0x5F, 0xA4, 0xFD, 0xB0, 0x00, 0xFD, 0xD4, 0x9D, 0x7E, 0x3F, 0x6C, 0x7F, 0x92, 0xFD, 0x70, 0x5B - .byte 0x48, 0x7E, 0x00, 0x39, 0x2A, 0x00, 0xB7, 0x50, 0xBD, 0x46, 0x5D, 0x02, 0xF0, 0x0C, 0xF0, 0x0C - .byte 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0x00, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0 - .byte 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0xF0, 0x0C, 0x00, 0xF0, 0x0C, 0xFC, 0x5C, 0x35, 0xF0, 0xBB, 0xE6 - .byte 0xFC, 0x00, 0x9C, 0x4A, 0xFC, 0x00, 0xF5, 0xA4, 0x00, 0x5E, 0x00, 0xB3, 0xBC, 0x57, 0x80, 0x9E - .byte 0x14, 0x53, 0x6A, 0x5A, 0x46, 0x78, 0x3A, 0xFE, 0x00, 0x00, 0xFE, 0x30, 0x7B, 0x48, 0x59, 0x5E - .byte 0xB8, 0x02, 0xBD, 0x46, 0xFD, 0xAE, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0x98, 0xEC, 0xBA, 0x56, 0x7C, 0xB4, 0xFC, 0xDE, 0x95, 0xE4, 0x00, 0xBC, 0x94, 0xF3 - .byte 0xB8, 0x55, 0xE0, 0x9A, 0x26, 0xBA, 0x6E, 0x37, 0x88, 0x33, 0xAC, 0x57, 0xB4, 0x00, 0x59, 0xB2 - .byte 0x9B, 0xA4, 0x9F, 0x6E, 0xB7, 0x70, 0x7F, 0xCA, 0x79, 0xA4, 0x57, 0x6A, 0xF6, 0x00, 0x00, 0x35 - .byte 0x16, 0x37, 0xE0, 0xB9, 0x90, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00 - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0x00, 0xF0, 0x16, 0x11, 0xFE, 0x32, 0x28, 0x32, 0x22, 0x15, 0xEE, 0x10, 0x02, 0x9F, 0xEC, 0x70 - .byte 0x0A, 0x00, 0x7F, 0xDC, 0x7F, 0xC8, 0xFF, 0xD2, 0x50, 0x1A, 0xFF, 0xA4, 0x91, 0xBE, 0xBA, 0x2E - .byte 0x5F, 0x88, 0x00, 0x5F, 0x84, 0x71, 0x94, 0xBF, 0x6E, 0x90, 0x18, 0x39, 0x52, 0x30, 0x06, 0x7F - .byte 0xF4, 0xFF, 0x3E, 0x00, 0x9F, 0x40, 0xBF, 0x14, 0x7F, 0x16, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04 - .byte 0xF0, 0x04, 0xF0, 0x04, 0x00, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0, 0x04, 0xF0 - .byte 0x04, 0xF0, 0x04, 0xF0, 0x04, 0x00, 0xF0, 0x16, 0xF0, 0x04, 0xF0, 0x22, 0xF0, 0x10, 0xF0, 0x30 - .byte 0xF0, 0x1E, 0xF0, 0x0C, 0xBE, 0x40, 0x00, 0xF0, 0x10, 0xF0, 0x10, 0xF0, 0x4A, 0xF0, 0x38, 0xF0 - .byte 0x26, 0xF0, 0x14, 0xF0, 0x02, 0xF0, 0x02, 0x00, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02 - .byte 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0x00, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0 - .byte 0x02, 0xF0, 0x02, 0xF1, 0x06, 0xF0, 0xF4, 0xF0, 0xE2, 0x00, 0xF0, 0xD0, 0xF0, 0xBE, 0xF0, 0xAC - .byte 0xF0, 0x9A, 0xF0, 0x88, 0xF0, 0x76, 0xF0, 0x64, 0xF0, 0x52, 0x00, 0xF0, 0x40, 0xF0, 0x2E, 0xF0 - .byte 0x1C, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF1 - .byte 0x0E, 0xF0, 0xFC, 0xF0, 0xEA, 0xF0, 0xD8, 0xF0, 0xC6, 0xF0, 0xB4, 0xF0, 0xA2, 0x00, 0xF0, 0x90 - .byte 0xF0, 0x7E, 0xF0, 0x6C, 0xF0, 0x5A, 0xF0, 0x48, 0xF0, 0x36, 0xF0, 0x24, 0xF0, 0x12, 0x00, 0xF0 - .byte 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x00 - .byte 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF1, 0x0E, 0xF0, 0xFC - .byte 0x00, 0xF0, 0xEA, 0xF0, 0xD8, 0xF0, 0xC6, 0xF0, 0xB4, 0xF0, 0xA2, 0xF0, 0x90, 0xF0, 0x7E, 0xF0 - .byte 0x6C, 0x00, 0xF0, 0x5A, 0xF0, 0x48, 0xF0, 0x36, 0xF0, 0x24, 0xF0, 0x12, 0xF0, 0x00, 0xF0, 0x00 - .byte 0xF0, 0x00, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0 - .byte 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF1, 0x0E, 0xF0, 0xFC, 0xF0, 0xEA, 0xF0, 0xD8 - .byte 0xF0, 0xC6, 0xF0, 0xB4, 0x00, 0xF0, 0xA2, 0xF0, 0x90, 0xF0, 0x7E, 0xF0, 0x6C, 0xF0, 0x5A, 0xF0 - .byte 0x48, 0xF0, 0x36, 0xF0, 0x24, 0x00, 0xF0, 0x12, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00 - .byte 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF0 - .byte 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF1, 0x10, 0x00, 0xF0, 0xFE, 0xF0, 0xEC, 0xF0, 0xDA, 0xF0, 0xC8 - .byte 0xF0, 0xB6, 0xF0, 0xA4, 0xF0, 0x92, 0xF0, 0x80, 0x00, 0xF0, 0x6E, 0xF0, 0x5C, 0xF0, 0x4A, 0xF0 - .byte 0x38, 0xF0, 0x26, 0xF0, 0x14, 0xF0, 0x02, 0xF0, 0x02, 0x00, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02 - .byte 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0x00, 0xF0, 0x02, 0xF0, 0x02, 0xF0 - .byte 0x02, 0xF1, 0x10, 0xF0, 0xFE, 0xF0, 0xEC, 0xF0, 0xDA, 0xF0, 0xC8, 0x00, 0xF0, 0xB6, 0xF0, 0xA4 - .byte 0xF0, 0x92, 0xF0, 0x80, 0xF0, 0x6E, 0xF0, 0x5C, 0xF0, 0x4A, 0xF0, 0x38, 0x00, 0xF0, 0x26, 0xF0 - .byte 0x14, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0x00, 0xF0, 0x02 - .byte 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0xF0, 0x02, 0x00, 0xF1 - .byte 0x0A, 0xF0, 0xF8, 0xF0, 0xE6, 0xF0, 0xD4, 0xF0, 0xC2, 0xF0, 0xB0, 0xF0, 0x9E, 0xF0, 0x8C, 0x00 - .byte 0xF0, 0x7A, 0xF0, 0x68, 0xF0, 0x56, 0xF0, 0x44, 0xF0, 0x32, 0xF0, 0x20, 0xF0, 0x0E, 0xF0, 0x0E - .byte 0x00, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0 - .byte 0x0E, 0x00, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x0E - .byte 0xF0, 0x0E, 0x00, 0xF0, 0x0E, 0xF0, 0x0E, 0xF0, 0x1C, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00 - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00 - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00 - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0, 0x0A - .byte 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A, 0xF0 - .byte 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0xF0, 0x0A, 0x00, 0xF0, 0x0A - .byte 0x30, 0x0A, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x01, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x25, 0x73, 0x66, 0x69, 0x6C, 0x65, 0x20, 0x3D, 0x20, 0x27, 0x25, 0x73, 0x27, 0x20, 0x20, 0x6C - .byte 0x69, 0x6E, 0x65, 0x20, 0x3D, 0x20, 0x25, 0x35, 0x64, 0x0A, 0x00, 0x00, 0x25, 0x73, 0x50, 0x72 - .byte 0x6F, 0x67, 0x50, 0x6F, 0x73, 0x20, 0x69, 0x6E, 0x66, 0x6F, 0x20, 0x4E, 0x55, 0x4C, 0x4C, 0x0A - .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x50, 0x72, 0x69, 0x6E, 0x74, 0x20, 0x20, 0x00, 0x00, 0x00 - .byte 0x21, 0x21, 0x21, 0x21, 0x21, 0x20, 0x46, 0x61, 0x74, 0x61, 0x6C, 0x20, 0x21, 0x21, 0x21, 0x21 - .byte 0x21, 0x0A, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x28, 0x4E, 0x55, 0x4C, 0x4C, 0x29, 0x0A, 0x00 - .byte 0x25, 0x73, 0x0A, 0x00, 0x45, 0x46, 0x46, 0x45, 0x43, 0x54, 0x2F, 0x65, 0x66, 0x66, 0x65, 0x63 - .byte 0x74, 0x2E, 0x62, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x4D, 0x4F, 0x4E, 0x53, 0x54, 0x45, 0x52, 0x2F - .byte 0x6D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72, 0x2E, 0x62, 0x69, 0x6E, 0x00, 0x42, 0x41, 0x4C, 0x41 - .byte 0x4E, 0x43, 0x45, 0x2F, 0x6D, 0x5F, 0x6C, 0x65, 0x76, 0x65, 0x6C, 0x2E, 0x62, 0x69, 0x6E, 0x00 - .byte 0x44, 0x55, 0x4E, 0x47, 0x45, 0x4F, 0x4E, 0x2F, 0x64, 0x75, 0x6E, 0x67, 0x65, 0x6F, 0x6E, 0x2E - .byte 0x62, 0x69, 0x6E, 0x00, 0x4D, 0x4F, 0x4E, 0x53, 0x54, 0x45, 0x52, 0x2F, 0x6D, 0x5F, 0x61, 0x74 - .byte 0x74, 0x61, 0x63, 0x6B, 0x2E, 0x62, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x4F, 0x4E, 0x53 - .byte 0x54, 0x45, 0x52, 0x2F, 0x6D, 0x5F, 0x67, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x2E, 0x62, 0x69, 0x6E - .byte 0x00, 0x00, 0x00, 0x00, 0x66, 0x69, 0x6C, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6F - .byte 0x72, 0x79, 0x20, 0x69, 0x6E, 0x69, 0x74, 0x20, 0x25, 0x34, 0x64, 0x20, 0x25, 0x34, 0x64, 0x20 - .byte 0x25, 0x30, 0x38, 0x78, 0x20, 0x25, 0x73, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x41, 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, 0x42, 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, 0x43, 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, 0x50, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0x64, 0x00, 0x0A, 0x0A, 0x0A, 0x0A, 0x05, 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, 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 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x00, 0x00, 0xA0, 0x86, 0x01, 0x00 - .byte 0x10, 0x27, 0x00, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x03, 0x00, 0x05, 0x00, 0x07, 0x00, 0x02, 0x00, 0x03, 0x00, 0x06, 0x00, 0x07, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x02, 0x00 - .byte 0x00, 0x0F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 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, 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, 0x40, 0x00, 0x90, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 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, 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, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0xD2, 0x08 - .byte 0x08, 0x60, 0xF0, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 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, 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, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x52, 0xD6, 0x08 - .byte 0x08, 0x6F, 0xF0, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0xE0, 0xA4, 0x00, 0x08 - .byte 0xC4, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x04, 0x00, 0x01, 0x00, 0x00, 0x60, 0x12, 0xD6, 0x08 - .byte 0x08, 0x2F, 0xF0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0xE0, 0xBC, 0x02, 0x00 - .byte 0xC4, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x04, 0x00, 0x01, 0x00, 0x00, 0x60, 0x12, 0xD6, 0x08 - .byte 0x08, 0x6F, 0xF0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xB1, 0xDC, 0x8E, 0x34 - .byte 0x98, 0xC5, 0x07, 0xFC, 0x72, 0x1A, 0x19, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xE0, 0xBC, 0x00, 0x08 - .byte 0xE4, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x12, 0xD6, 0x08 - .byte 0x08, 0x20, 0x80, 0xA6, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xE0, 0xA4, 0x00, 0x08 - .byte 0xE4, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x50, 0x86, 0x00 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xE0, 0xA4, 0x00, 0x08 - .byte 0xE4, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x04, 0x0C, 0x40, 0x00, 0x00, 0x00, 0x60, 0x12, 0xD6, 0x08 - .byte 0x08, 0x20, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xB1, 0xDC, 0x8E, 0x34 - .byte 0x98, 0xC5, 0x07, 0xFC, 0x72, 0x1A, 0x19, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xE0, 0xA4, 0x00, 0x08 - .byte 0xE4, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x50, 0x86, 0x00 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xE0, 0xA4, 0x00, 0x08 - .byte 0xE4, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x04, 0x00, 0x01, 0x00, 0x00, 0x60, 0x12, 0xD6, 0x08 - .byte 0x08, 0x20, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xB1, 0xDC, 0x8E, 0x34 - .byte 0x98, 0xC5, 0x07, 0xFC, 0x72, 0x1A, 0x19, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xE0, 0xBC, 0x00, 0x08 - .byte 0xE4, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x50, 0x86, 0x00 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xE0, 0xA4, 0x00, 0x08 - .byte 0xE4, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x0C, 0x40, 0x01, 0x00, 0x00, 0x60, 0x12, 0xD6, 0x08 - .byte 0x08, 0x2F, 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xB1, 0xDC, 0x8E, 0x34 - .byte 0x98, 0xC5, 0x07, 0xFC, 0x72, 0x1A, 0x19, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xE0, 0xA4, 0x00, 0x08 - .byte 0xE4, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x1C, 0x40, 0x01, 0x00, 0x00, 0x60, 0x12, 0xD6, 0x88 - .byte 0x08, 0x2F, 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xB1, 0xDC, 0x8E, 0x34 - .byte 0x98, 0xC5, 0x07, 0xFC, 0x72, 0x1A, 0x19, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xE0, 0xA4, 0x00, 0x08 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xE0, 0xA4, 0x00, 0x08 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xE0, 0xA4, 0x00, 0x08 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x8E, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x60, 0x12, 0xD6, 0x88 - .byte 0x09, 0x2F, 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xB1, 0xDC, 0x8E, 0x34 - .byte 0x98, 0xC5, 0x07, 0xFC, 0x72, 0x1A, 0x19, 0x00, 0x00, 0x00, 0x85, 0xCF, 0xE1, 0x84, 0x22, 0x08 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x8E, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x60, 0x12, 0xD6, 0x88 - .byte 0x09, 0x2F, 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xB1, 0xDC, 0x8E, 0x34 - .byte 0x98, 0xC5, 0x07, 0xFC, 0x72, 0x1A, 0x19, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xE0, 0x84, 0x00, 0x08 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x8E, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x60, 0x92, 0xD6, 0xC8 - .byte 0x09, 0x2F, 0x70, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xB1, 0xDC, 0x8E, 0x34 - .byte 0x98, 0xC5, 0x07, 0xFC, 0x72, 0x1A, 0x19, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xE1, 0x9C, 0x03, 0x1C - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x1C, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x60, 0x92, 0xD6, 0xC8 - .byte 0x09, 0x2F, 0x70, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xB1, 0xDC, 0x8E, 0x34 - .byte 0x98, 0xC5, 0x07, 0xFC, 0x72, 0x1A, 0x19, 0x00, 0x00, 0x00, 0x41, 0xFF, 0xE1, 0x9C, 0x03, 0x1C - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x1C, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x60, 0x92, 0xD6, 0xC8 - .byte 0x09, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xB1, 0xDC, 0x8E, 0x34 - .byte 0x98, 0xC5, 0x07, 0xFC, 0x72, 0x1A, 0x19, 0x00, 0x00, 0x00, 0x41, 0xFF, 0xE1, 0x9C, 0x03, 0x1C - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0C, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x60, 0x92, 0xD6, 0xC8 - .byte 0x09, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xB1, 0xDC, 0x8E, 0x34 - .byte 0x98, 0xC5, 0x07, 0xFC, 0x72, 0x1A, 0x19, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xE1, 0x9C, 0x03, 0x1C - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x1C, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x60, 0x92, 0xD6, 0xC8 - .byte 0x09, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xB1, 0xDC, 0x8E, 0x34 - .byte 0x98, 0xC5, 0x07, 0xFC, 0x72, 0x1A, 0x19, 0x00, 0x00, 0x00, 0x41, 0xFF, 0xE1, 0x9C, 0x03, 0x1C - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0C, 0x1E, 0x40, 0x01, 0x00, 0x00, 0x60, 0x02, 0xD6, 0x88 - .byte 0x09, 0x20, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xB1, 0xDC, 0x8E, 0x34 - .byte 0x98, 0xC5, 0x07, 0xFC, 0x72, 0x1A, 0x19, 0x00, 0x00, 0x00, 0x61, 0xFF, 0xE1, 0x9E, 0x00, 0x0C - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0xE1, 0x86, 0x8E, 0x60, 0x03, 0x00, 0x00, 0x60, 0x92, 0xD6, 0x88 - .byte 0x09, 0x2F, 0xF0, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xB1, 0xDC, 0x8E, 0x34 - .byte 0x98, 0xC5, 0x07, 0xFC, 0x72, 0x1A, 0x19, 0x00, 0x00, 0x00, 0x61, 0xFF, 0xE1, 0x9E, 0x00, 0x0C - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0xE0, 0x86, 0x8E, 0x60, 0x03, 0x02, 0x00, 0x60, 0x52, 0xD7, 0x8C - .byte 0x09, 0x6F, 0xF0, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xB1, 0xDC, 0x8E, 0x34 - .byte 0x98, 0xC5, 0x07, 0xFC, 0x72, 0x1A, 0x19, 0x00, 0x00, 0x00, 0x61, 0xFF, 0xE1, 0x9E, 0x00, 0x0C - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0xE0, 0x9E, 0x9E, 0x60, 0x03, 0x06, 0x00, 0x60, 0x52, 0xD7, 0x8C - .byte 0x09, 0x6F, 0xF0, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xB1, 0xDC, 0x8E, 0x34 - .byte 0x98, 0xC5, 0x07, 0xFC, 0x72, 0x1A, 0x19, 0x00, 0x00, 0x00, 0x61, 0xFF, 0xE1, 0x9E, 0x00, 0x0C - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8E, 0xA0, 0x3E, 0xBE, 0x70, 0x07, 0x0A, 0x00, 0x40, 0x5F, 0x5F, 0x84 - .byte 0x08, 0x2F, 0xF0, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x80, 0x01, 0x80, 0xF0, 0xBB, 0xDF, 0xDE, 0xF7 - .byte 0xFA, 0xE7, 0x07, 0xFC, 0x73, 0x7E, 0x5F, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xEF, 0xDE, 0x34, 0xD8 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x8E, 0x3E, 0x71, 0x00, 0x00, 0x00, 0x40, 0x46, 0x07, 0x00 - .byte 0x09, 0x0F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0xF0, 0xBB, 0xDF, 0xDE, 0xF7 - .byte 0xFA, 0xE7, 0x07, 0xFC, 0x73, 0x7E, 0x5F, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x8E, 0x3E, 0x71, 0x00, 0x00, 0x00, 0x40, 0x46, 0x07, 0x00 - .byte 0x09, 0x0F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0xF0, 0xBB, 0xDF, 0xDE, 0xF7 - .byte 0xFA, 0xE7, 0x07, 0xFC, 0x73, 0x7E, 0x5F, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8E, 0xA1, 0xBE, 0xBE, 0x71, 0x47, 0x2B, 0x00, 0x40, 0x4F, 0x4F, 0x05 - .byte 0x09, 0xEF, 0xF0, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x80, 0xA0, 0x06, 0x1C, 0x41, 0x00, 0x00, 0x00, 0x40, 0x46, 0x07, 0x00 - .byte 0x08, 0x0F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0xF0, 0xBB, 0xDF, 0xDE, 0xF7 - .byte 0xFA, 0xE7, 0x07, 0xFC, 0x73, 0x7E, 0x5F, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x80, 0xA0, 0xA4, 0x80, 0x30, 0x03, 0x00, 0x00, 0x40, 0x5C, 0x17, 0x00 - .byte 0x08, 0x2F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0xF0, 0xBB, 0xDF, 0xDE, 0xF7 - .byte 0xFA, 0xE7, 0x07, 0xFC, 0x73, 0x7E, 0x5F, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0xA4, 0x80, 0x30, 0x03, 0x08, 0x00, 0x40, 0x5F, 0x5F, 0x04 - .byte 0x08, 0x6F, 0xF0, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x80, 0x01, 0x80, 0xF0, 0xBB, 0xDF, 0xDE, 0xF7 - .byte 0xFA, 0xE7, 0x07, 0xFC, 0x73, 0x7E, 0x5F, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8E, 0xA0, 0xA4, 0x80, 0x30, 0x03, 0x00, 0x00, 0x40, 0x5F, 0x5F, 0x04 - .byte 0x08, 0x2F, 0xF0, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x80, 0x01, 0x80, 0xF0, 0xBB, 0xDF, 0xDE, 0xF7 - .byte 0xFA, 0xE7, 0x07, 0xFC, 0x73, 0x7E, 0x5F, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8E, 0xA0, 0xA4, 0x80, 0x30, 0x03, 0x00, 0x00, 0x40, 0x5F, 0x5F, 0x04 - .byte 0x08, 0x2F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0xF0, 0xBB, 0xDF, 0xDE, 0xF7 - .byte 0xFA, 0xE7, 0x07, 0xFC, 0x73, 0x7E, 0x5F, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0xA0, 0x1E, 0x02, 0x60, 0x06, 0x08, 0x00, 0x40, 0x04, 0x06, 0x00 - .byte 0x08, 0x0F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0xF0, 0xBB, 0xDF, 0xDE, 0xF7 - .byte 0xFA, 0xE7, 0x07, 0xFC, 0x73, 0x7E, 0x5F, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8E, 0xA0, 0xA4, 0x80, 0x30, 0x03, 0x00, 0x00, 0x40, 0x5F, 0x5F, 0x04 - .byte 0x08, 0x2F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0xF0, 0xBB, 0xDF, 0xDE, 0xF7 - .byte 0xFA, 0xE7, 0x07, 0xFC, 0x73, 0x7E, 0x5F, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8E, 0xA1, 0xBE, 0xBE, 0x70, 0x47, 0x0B, 0x00, 0x40, 0xD6, 0x1E, 0x08 - .byte 0x08, 0x2F, 0xF0, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x80, 0x01, 0x80, 0xF0, 0xBB, 0xDF, 0xDE, 0xF7 - .byte 0xFA, 0xE7, 0x07, 0xFC, 0x73, 0x7E, 0x5F, 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, 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, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x86, 0x00 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x86, 0x00 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x9E, 0xBC, 0x51, 0x44, 0x00, 0x00, 0x60, 0x5C, 0x1E, 0x08 - .byte 0x08, 0x0F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0xF0, 0xBB, 0xDF, 0xDE, 0xF7 - .byte 0xFA, 0xE7, 0x07, 0xFC, 0x73, 0x7E, 0x5F, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x80, 0x00, 0xA8, 0x1E, 0x02, 0x00, 0x00, 0x80, 0x01, 0x80, 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, 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, 0x80, 0x00, 0x04, 0x04, 0x20, 0x03, 0x00, 0x00, 0x40, 0x5C, 0x16, 0x00 - .byte 0x08, 0x2F, 0xF0, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x80, 0xA0, 0x04, 0x04, 0x20, 0x03, 0x00, 0x00, 0x40, 0x5C, 0x16, 0x00 - .byte 0x08, 0x2F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x88, 0xA1, 0x9E, 0xBC, 0x51, 0x44, 0x00, 0x00, 0x60, 0x5C, 0x1F, 0x00 - .byte 0x00, 0x0F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x88, 0xA1, 0x9E, 0xBC, 0x51, 0x44, 0x00, 0x00, 0x60, 0x08, 0x17, 0x00 - .byte 0x00, 0x0F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x86, 0x00 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x86, 0x00 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x02, 0x86, 0x00 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00 - .byte 0x08, 0x20, 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, 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, 0x8E, 0xA0, 0x9E, 0xBC, 0x51, 0x44, 0x00, 0x00, 0x60, 0x5E, 0x5F, 0x04 - .byte 0x08, 0x2F, 0x70, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1E, 0x56, 0x00 - .byte 0x08, 0x20, 0x80, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x56, 0xDE, 0x8C - .byte 0x09, 0x20, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xBB, 0xDF, 0xFF, 0xF7 - .byte 0xFA, 0xEF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0xF0, 0x9F, 0xE1, 0x04, 0x02, 0x00 - .byte 0xFC, 0x04, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8E, 0xA1, 0xBF, 0xBE, 0x71, 0x47, 0x2B, 0x00, 0x40, 0x4B, 0x57, 0x04 - .byte 0x08, 0x2F, 0xF0, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xBF, 0xBE, 0x71, 0x47, 0x2B, 0x00, 0x40, 0x57, 0x5F, 0x04 - .byte 0x08, 0x2F, 0xF0, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1C, 0x56, 0x00 - .byte 0x08, 0x0F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 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, 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, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x14, 0x57, 0x00 - .byte 0x08, 0x0F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8E, 0xA1, 0xA6, 0x3E, 0x40, 0x47, 0x0D, 0x00, 0x40, 0xDE, 0x5F, 0x00 - .byte 0x08, 0x2F, 0xF0, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xBB, 0xDF, 0xDE, 0xF7 - .byte 0xFA, 0xE7, 0x07, 0xFC, 0x73, 0x7E, 0x5F, 0x00, 0x00, 0xE0, 0xD7, 0xFF, 0xE7, 0xDE, 0x35, 0xDD - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x7D, 0xDF, 0xCC - .byte 0x78, 0x1F, 0xF0, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xA4, 0xF4, 0xC8 - .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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8E, 0xA1, 0xBE, 0xBE, 0xF1, 0xF7, 0x1F, 0x00, 0xE0, 0x7F, 0xDF, 0x0F - .byte 0x79, 0xFF, 0x70, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xBB, 0xDD, 0x9E, 0xF7 - .byte 0xFA, 0xE7, 0x05, 0xFC, 0xF3, 0xFF, 0x1F, 0x00, 0x00, 0xE0, 0x87, 0xB7, 0x0F, 0x3D, 0x46, 0x8C - .byte 0x1C, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8E, 0xA1, 0xAE, 0x3E, 0xF1, 0x63, 0x0E, 0x00, 0xE0, 0x7F, 0xDF, 0x8E - .byte 0x79, 0xFF, 0x70, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xBB, 0xDD, 0x9E, 0xF7 - .byte 0xFA, 0xE7, 0x05, 0xFC, 0xF3, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xEF, 0xFF, 0x42, 0x8C - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8E, 0xA1, 0xBE, 0x3E, 0xF1, 0xE7, 0x1F, 0x00, 0xE0, 0x77, 0x5F, 0xCF - .byte 0x79, 0xFF, 0x70, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xBB, 0xDD, 0x9E, 0xF7 - .byte 0xFA, 0xE7, 0x05, 0xFC, 0xF3, 0xFF, 0x1F, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xEF, 0xFF, 0xF7, 0xDD - .byte 0x01, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8E, 0x01, 0xFF, 0xFF, 0xF5, 0xF7, 0x3F, 0x00, 0xE0, 0xFD, 0xDF, 0x0F - .byte 0x08, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x31, 0xCC, 0x8E, 0x30 - .byte 0x80, 0x45, 0x06, 0xF4, 0x12, 0x18, 0x11, 0x20, 0x01, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8E, 0xA1, 0x3C, 0x9E, 0x61, 0x03, 0x31, 0x00, 0x40, 0x5F, 0x0E, 0x04 - .byte 0x08, 0x2F, 0x70, 0x59, 0x7A, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x08, 0xC4, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8E, 0xA1, 0xBE, 0x3E, 0xF1, 0xE7, 0x1F, 0x00, 0xE0, 0x75, 0x5F, 0xCF - .byte 0x79, 0xFD, 0x70, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xEF, 0xFF, 0xF7, 0xDD - .byte 0x01, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8E, 0xA1, 0x3C, 0x9E, 0x61, 0x03, 0x31, 0x00, 0x40, 0x5F, 0x0E, 0x04 - .byte 0x08, 0x2F, 0x70, 0x59, 0x7A, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x08, 0xC4, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8E, 0xA1, 0x3C, 0x9E, 0x61, 0x03, 0x31, 0x00, 0x40, 0x5F, 0x0E, 0x04 - .byte 0x08, 0x2F, 0x70, 0x59, 0x7A, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x08, 0xC4, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x86, 0x3E, 0x41, 0x47, 0x05, 0x00, 0x40, 0x5D, 0x5F, 0x4E - .byte 0x08, 0x2F, 0xF0, 0xFF, 0x7F, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xD7, 0xFF, 0xE7, 0xDE, 0x35, 0xDD - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x86, 0x3E, 0x41, 0x47, 0x05, 0x00, 0x40, 0x5D, 0x5F, 0x4E - .byte 0x08, 0x2F, 0xF0, 0xFF, 0x7F, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xD7, 0xFF, 0xE7, 0xDE, 0x35, 0xDD - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x86, 0x3E, 0x41, 0x47, 0x05, 0x00, 0x40, 0x5D, 0x5F, 0x4E - .byte 0x08, 0x2F, 0xF0, 0xFF, 0x7F, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xD7, 0xFF, 0xE7, 0xDE, 0x35, 0xDD - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x86, 0x3E, 0x41, 0x47, 0x05, 0x00, 0x40, 0x5D, 0x5F, 0x4E - .byte 0x08, 0x2F, 0xF0, 0xFF, 0x7F, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xD7, 0xFF, 0xE7, 0xDE, 0x35, 0xDD - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0xA0, 0x00, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x40, 0x47, 0x0E, 0x04 - .byte 0x08, 0x2F, 0x70, 0x00, 0x00, 0x02, 0x00, 0x00, 0x80, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE4, 0x20, 0x5C, 0x00, 0x00 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x40, 0x02, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xE4, 0x20, 0x1C, 0x00, 0x00 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x40, 0x47, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE4, 0x20, 0x5C, 0x00, 0x00 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x40, 0x47, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE4, 0x20, 0x5C, 0x00, 0x00 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x40, 0x47, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE4, 0x20, 0x5C, 0x00, 0x00 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x40, 0x47, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE4, 0x20, 0x5C, 0x00, 0x00 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x40, 0x47, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE4, 0x20, 0x5C, 0x00, 0x00 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x40, 0x47, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE4, 0x20, 0x5C, 0x00, 0x00 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x40, 0x47, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE4, 0x20, 0x5C, 0x00, 0x00 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x40, 0x47, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE4, 0x20, 0x5C, 0x00, 0x00 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x40, 0x47, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE4, 0x20, 0x5C, 0x00, 0x00 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x40, 0x47, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE4, 0x20, 0x5C, 0x00, 0x00 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x40, 0x47, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE4, 0x20, 0x5C, 0x00, 0x00 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x40, 0x47, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE4, 0x20, 0x5C, 0x00, 0x00 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x40, 0x47, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE4, 0x20, 0x5C, 0x00, 0x00 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x40, 0x47, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE4, 0x20, 0x5C, 0x00, 0x00 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x40, 0x47, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE4, 0x20, 0x5C, 0x00, 0x00 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x40, 0x47, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE4, 0x20, 0x5C, 0x00, 0x00 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x40, 0x47, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0xE4, 0x20, 0x5C, 0x00, 0x00 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x1E, 0x60, 0x03, 0x00, 0x00, 0x40, 0x02, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xE4, 0x20, 0x1C, 0x00, 0x00 - .byte 0xFC, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x86, 0x02 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x86, 0x00 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x86, 0x00 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x86, 0x00 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x86, 0x00 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0xD6, 0x00 - .byte 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x87, 0x0E, 0xDC, 0x00, 0x08 - .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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8E, 0x01, 0x3C, 0x9E, 0x61, 0x03, 0x31, 0x00, 0x40, 0x5F, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x59, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x08, 0xC4, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x8E, 0x01, 0x3C, 0x9E, 0x61, 0x03, 0x31, 0x00, 0x40, 0x5F, 0x0E, 0x04 - .byte 0x08, 0x20, 0x00, 0x59, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x08, 0xC4, 0x00, 0x08 - .byte 0xE0, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A, 0x49, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D - .byte 0x5B, 0x43, 0x53, 0x3A, 0x56, 0x5D, 0x28, 0x25, 0x64, 0x29, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00 - .byte 0x25, 0x73, 0x28, 0x25, 0x64, 0x29, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A, 0x49, 0x5D, 0x25, 0x73 - .byte 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x25, 0x73, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x55, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x47, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x5B, 0x4D, 0x3A, 0x53, 0x30, 0x5D, 0x00, 0x00 - .byte 0x25, 0x73, 0x5B, 0x4D, 0x3A, 0x53, 0x30, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x5A, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x53 - .byte 0x34, 0x5D, 0x25, 0x73, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x53, 0x31, 0x5D, 0x25, 0x73 - .byte 0x00, 0x00, 0x00, 0x00, 0x25, 0x73, 0x5B, 0x43, 0x4C, 0x55, 0x4D, 0x5F, 0x53, 0x45, 0x54, 0x3A - .byte 0x25, 0x64, 0x5D, 0x5B, 0x43, 0x53, 0x3A, 0x31, 0x3A, 0x52, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52 - .byte 0x3A, 0x31, 0x5D, 0x00, 0x25, 0x73, 0x5B, 0x43, 0x53, 0x3A, 0x31, 0x3A, 0x52, 0x5D, 0x25, 0x73 - .byte 0x5B, 0x43, 0x52, 0x3A, 0x31, 0x5D, 0x00, 0x00, 0xC8, 0x01, 0xAC, 0x00, 0xC9, 0x01, 0xAD, 0x00 - .byte 0xCA, 0x01, 0xAE, 0x00, 0xCB, 0x01, 0xAF, 0x00, 0xCC, 0x01, 0x07, 0x01, 0xCD, 0x01, 0x09, 0x01 - .byte 0xCE, 0x01, 0x0A, 0x01, 0xCF, 0x01, 0x0B, 0x01, 0xD0, 0x01, 0x46, 0x01, 0xD1, 0x01, 0x88, 0x01 - .byte 0xD2, 0x01, 0xE0, 0x01, 0xD3, 0x01, 0xE1, 0x01, 0xD4, 0x01, 0xE2, 0x01, 0xD5, 0x01, 0xE9, 0x01 - .byte 0xD6, 0x01, 0xF4, 0x01, 0xD7, 0x01, 0x13, 0x02, 0x72, 0x6F, 0x6D, 0x30, 0x3A, 0x2F, 0x42, 0x41 - .byte 0x4C, 0x41, 0x4E, 0x43, 0x45, 0x2F, 0x69, 0x74, 0x65, 0x6D, 0x5F, 0x70, 0x2E, 0x62, 0x69, 0x6E - .byte 0x00, 0x00, 0x00, 0x00, 0x72, 0x6F, 0x6D, 0x30, 0x3A, 0x2F, 0x42, 0x41, 0x4C, 0x41, 0x4E, 0x43 - .byte 0x45, 0x2F, 0x69, 0x74, 0x65, 0x6D, 0x5F, 0x73, 0x5F, 0x70, 0x2E, 0x62, 0x69, 0x6E, 0x00, 0x00 - .byte 0x72, 0x6F, 0x6D, 0x30, 0x3A, 0x2F, 0x42, 0x41, 0x4C, 0x41, 0x4E, 0x43, 0x45, 0x2F, 0x73, 0x74 - .byte 0x5F, 0x69, 0x32, 0x6E, 0x5F, 0x6A, 0x2E, 0x62, 0x69, 0x6E, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x55, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x5A, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x25, 0x73, 0x00, 0x00 - .byte 0x5B, 0x43, 0x53, 0x3A, 0x49, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00 - .byte 0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00 - .byte 0x11, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x07, 0x00, 0x00 - .byte 0x00, 0x00, 0x0A, 0x07, 0x0A, 0x00, 0x0A, 0x00, 0x00, 0x07, 0x00, 0x07, 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03 - .byte 0x00, 0x03, 0x00, 0x03, 0x05, 0x00, 0x00, 0x03, 0x00, 0x03, 0x05, 0x00, 0x00, 0x00, 0x05, 0x03 - .byte 0x05, 0x03, 0x00, 0x00, 0x09, 0x00, 0x16, 0x00, 0x10, 0x00, 0x0F, 0x00, 0x11, 0x00, 0x17, 0x00 - .byte 0x0B, 0x00, 0x13, 0x00, 0x50, 0x00, 0x20, 0x00, 0x18, 0x00, 0x44, 0x00, 0x52, 0x00, 0x56, 0x00 - .byte 0x56, 0x00, 0x54, 0x00, 0x45, 0x00, 0x46, 0x00, 0x4C, 0x00, 0x4C, 0x00, 0x4C, 0x00, 0x56, 0x00 - .byte 0x4C, 0x00, 0x46, 0x00, 0x56, 0x00, 0x56, 0x00, 0x49, 0x00, 0x65, 0x00, 0x22, 0x00, 0x22, 0x00 - .byte 0x22, 0x00, 0x58, 0x00, 0x59, 0x00, 0x44, 0x00, 0x44, 0x00, 0x1F, 0x00, 0x58, 0x00, 0x21, 0x00 - .byte 0x47, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x19, 0x00, 0x1A, 0x00, 0x3A, 0x00, 0x37, 0x00 - .byte 0x36, 0x00, 0x48, 0x00, 0x58, 0x00, 0x08, 0x00, 0x10, 0x00, 0x1B, 0x00, 0x1B, 0x00, 0x1B, 0x00 - .byte 0x5A, 0x00, 0x5B, 0x00, 0x48, 0x00, 0x59, 0x00, 0x15, 0x00, 0x55, 0x00, 0x64, 0x00, 0x0E, 0x00 - .byte 0x00, 0x01, 0x00, 0x02, 0x2B, 0x00, 0x6A, 0x00, 0x00, 0x02, 0x00, 0x03, 0x29, 0x00, 0x67, 0x00 - .byte 0x00, 0x02, 0x00, 0x04, 0x2C, 0x00, 0x69, 0x00, 0x00, 0x02, 0x00, 0x04, 0x30, 0x00, 0x66, 0x00 - .byte 0x00, 0x02, 0x00, 0x03, 0x32, 0x00, 0x6B, 0x00, 0x00, 0x02, 0x00, 0x04, 0x2D, 0x00, 0x66, 0x00 - .byte 0x00, 0x01, 0x00, 0x03, 0x2F, 0x00, 0x6D, 0x00, 0x00, 0x01, 0x00, 0x03, 0x2B, 0x00, 0x6B, 0x00 - .byte 0x00, 0x01, 0x00, 0x04, 0x2A, 0x00, 0x68, 0x00, 0x00, 0x01, 0x00, 0x02, 0x2F, 0x00, 0x69, 0x00 - .byte 0x00, 0x02, 0x00, 0x03, 0x2E, 0x00, 0x70, 0x00, 0x00, 0x01, 0x00, 0x03, 0x28, 0x00, 0x6C, 0x00 - .byte 0x00, 0x01, 0x00, 0x04, 0x31, 0x00, 0x71, 0x00, 0x00, 0x01, 0x00, 0x02, 0x35, 0x00, 0x6E, 0x00 - .byte 0x00, 0x03, 0x00, 0x04, 0x28, 0x00, 0x6F, 0x00, 0x00, 0x03, 0x00, 0x04, 0x2E, 0x00, 0x6A, 0x00 - .byte 0x00, 0x01, 0x00, 0x04, 0x2A, 0x00, 0x6B, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x4C, 0x00 - .byte 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x57, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x72, 0x00 - .byte 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x4C, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x30, 0x00 - .byte 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x73, 0x00, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x4C, 0x00 - .byte 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x06, 0x00, 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x75, 0x00 - .byte 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x4A, 0x00, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x44, 0x00 - .byte 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x78, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x4C, 0x00 - .byte 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x77, 0x00, 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x4C, 0x00 - .byte 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x57, 0x00, 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x72, 0x00 - .byte 0x00, 0x09, 0x00, 0x05, 0x00, 0x0B, 0x4C, 0x00, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x30, 0x00 - .byte 0x00, 0x06, 0x00, 0x05, 0x00, 0x07, 0x73, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x0C, 0x4C, 0x00 - .byte 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x23, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x75, 0x00 - .byte 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x4C, 0x00, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x23, 0x00 - .byte 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x72, 0x00, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x4C, 0x00 - .byte 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x30, 0x00, 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x73, 0x00 - .byte 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x53, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x14, 0x00 - .byte 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x74, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x49, 0x00 - .byte 0x00, 0x09, 0x00, 0x06, 0x00, 0x0D, 0x77, 0x00, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x4C, 0x00 - .byte 0x00, 0x08, 0x00, 0x05, 0x00, 0x0E, 0x57, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x07, 0x74, 0x00 - .byte 0x00, 0x09, 0x00, 0x06, 0x00, 0x0D, 0x0F, 0x00, 0x00, 0x09, 0x00, 0x06, 0x00, 0x0D, 0x30, 0x00 - .byte 0x00, 0x09, 0x00, 0x06, 0x00, 0x0D, 0x73, 0x00, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x4C, 0x00 - .byte 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x23, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x07, 0x78, 0x00 - .byte 0x00, 0x06, 0x00, 0x05, 0x00, 0x07, 0x4C, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x07, 0x77, 0x00 - .byte 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x53, 0x00, 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x79, 0x00 - .byte 0x00, 0x06, 0x00, 0x09, 0x06, 0x00, 0x72, 0x00, 0x00, 0x08, 0x00, 0x09, 0x4F, 0x00, 0x09, 0x00 - .byte 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x11, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x4A, 0x00 - .byte 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x77, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x4C, 0x00 - .byte 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x0D, 0x00, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x77, 0x00 - .byte 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x4C, 0x00, 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x52, 0x00 - .byte 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x75, 0x00, 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x03, 0x00 - .byte 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x77, 0x00, 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x49, 0x00 - .byte 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x77, 0x00, 0x00, 0x05, 0x00, 0x09, 0x24, 0x00, 0x50, 0x00 - .byte 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x12, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x7F, 0x00 - .byte 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x4A, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x01, 0x00 - .byte 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x78, 0x00, 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x4A, 0x00 - .byte 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x30, 0x00, 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x73, 0x00 - .byte 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x4A, 0x00, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x14, 0x00 - .byte 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x75, 0x00, 0x00, 0x08, 0x00, 0x09, 0x4F, 0x00, 0x51, 0x00 - .byte 0x00, 0x08, 0x00, 0x09, 0x4F, 0x00, 0x51, 0x00, 0x00, 0x08, 0x00, 0x09, 0x07, 0x00, 0x28, 0x00 - .byte 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x4C, 0x00, 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x7F, 0x00 - .byte 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x03, 0x00, 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x75, 0x00 - .byte 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x4A, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x10, 0x00 - .byte 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x78, 0x00, 0x00, 0x05, 0x00, 0x09, 0x02, 0x00, 0x78, 0x00 - .byte 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x33, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x75, 0x00 - .byte 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x53, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x7D, 0x00 - .byte 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x4A, 0x00, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x72, 0x00 - .byte 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x05, 0x00, 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x80, 0x00 - .byte 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x50, 0x00, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x7F, 0x00 - .byte 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x50, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x51, 0x00 - .byte 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x77, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x4C, 0x00 - .byte 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x44, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x7E, 0x00 - .byte 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x45, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x7A, 0x00 - .byte 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x4C, 0x00, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x75, 0x00 - .byte 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x64, 0x00, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x1F, 0x00 - .byte 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x73, 0x00, 0x00, 0x05, 0x00, 0x09, 0x00, 0x0B, 0x5F, 0x00 - .byte 0x00, 0x06, 0x00, 0x09, 0x00, 0x0D, 0x74, 0x00, 0x5D, 0x00, 0x4C, 0x00, 0x7C, 0x00, 0x5D, 0x00 - .byte 0x54, 0x00, 0x7C, 0x00, 0x53, 0x00, 0x3D, 0x00, 0x7C, 0x00, 0x44, 0x00, 0x77, 0x00, 0x3D, 0x00 - .byte 0x7C, 0x00, 0x14, 0x00, 0x7A, 0x00, 0x05, 0x00, 0x74, 0x00, 0x4A, 0x00, 0x50, 0x00, 0x7A, 0x00 - .byte 0x4C, 0x00, 0x51, 0x00, 0x7A, 0x00, 0x40, 0x00, 0x57, 0x00, 0x11, 0x00, 0x57, 0x00, 0x72, 0x00 - .byte 0x01, 0x00, 0x72, 0x00, 0x50, 0x00, 0x7C, 0x00, 0x53, 0x00, 0x74, 0x00, 0x3D, 0x00, 0x75, 0x00 - .byte 0x16, 0x00, 0x7A, 0x00, 0x4F, 0x00, 0x73, 0x00, 0x41, 0x00, 0x11, 0x00, 0x79, 0x00, 0x08, 0x00 - .byte 0x18, 0x00, 0x7F, 0x00, 0x05, 0x00, 0x44, 0x00, 0x7A, 0x00, 0x06, 0x00, 0x5D, 0x00, 0x72, 0x00 - .byte 0x14, 0x00, 0x7A, 0x00, 0x49, 0x00, 0x07, 0x00, 0x74, 0x00, 0x30, 0x00, 0x73, 0x00, 0x1D, 0x00 - .byte 0x7F, 0x00, 0x01, 0x00, 0x40, 0x00, 0x45, 0x00, 0x5F, 0x00, 0x7C, 0x00, 0x51, 0x00, 0x7C, 0x00 - .byte 0x17, 0x00, 0x7A, 0x00, 0x41, 0x00, 0x7C, 0x00, 0x43, 0x00, 0x60, 0x00, 0x7D, 0x00, 0x06, 0x00 - .byte 0x0D, 0x00, 0x7F, 0x00, 0x49, 0x00, 0x75, 0x00, 0x06, 0x00, 0x78, 0x00, 0x08, 0x00, 0x7B, 0x00 - .byte 0x24, 0x00, 0x74, 0x00, 0x5E, 0x00, 0x17, 0x00, 0x7A, 0x00, 0x07, 0x00, 0x44, 0x00, 0x14, 0x00 - .byte 0x5F, 0x00, 0x17, 0x00, 0x33, 0x00, 0x33, 0x00, 0x75, 0x00, 0x49, 0x00, 0x7F, 0x00, 0x44, 0x00 - .byte 0x20, 0x00, 0x52, 0x00, 0x75, 0x00, 0x5E, 0x00, 0x27, 0x00, 0x44, 0x00, 0x74, 0x00, 0x02, 0x00 - .byte 0x74, 0x00, 0x58, 0x00, 0x43, 0x00, 0x4A, 0x00, 0x76, 0x00, 0x32, 0x00, 0x77, 0x00, 0x45, 0x00 - .byte 0x7C, 0x00, 0x2F, 0x00, 0x7C, 0x00, 0x1D, 0x00, 0x7C, 0x00, 0x7C, 0x00, 0x10, 0x00, 0x78, 0x00 - .byte 0x5F, 0x00, 0x7C, 0x00, 0x0A, 0x00, 0x1F, 0x00, 0x78, 0x00, 0x29, 0x00, 0x75, 0x00, 0x3E, 0x00 - .byte 0x49, 0x00, 0x76, 0x00, 0x61, 0x00, 0x3E, 0x00, 0x72, 0x00, 0x09, 0x00, 0x09, 0x00, 0x74, 0x00 - .byte 0x18, 0x00, 0x1F, 0x00, 0x1C, 0x00, 0x11, 0x00, 0x11, 0x00, 0x4C, 0x00, 0x79, 0x00, 0x32, 0x00 - .byte 0x31, 0x00, 0x78, 0x00, 0x52, 0x00, 0x77, 0x00, 0x54, 0x00, 0x5D, 0x00, 0x44, 0x00, 0x4F, 0x00 - .byte 0x73, 0x00, 0x4F, 0x00, 0x13, 0x00, 0x09, 0x00, 0x24, 0x00, 0x75, 0x00, 0x3B, 0x00, 0x20, 0x00 - .byte 0x16, 0x00, 0x77, 0x00, 0x7E, 0x00, 0x60, 0x00, 0x11, 0x00, 0x5F, 0x00, 0x49, 0x00, 0x16, 0x00 - .byte 0x06, 0x00, 0x77, 0x00, 0x32, 0x00, 0x77, 0x00, 0x61, 0x00, 0x77, 0x00, 0x4F, 0x00, 0x05, 0x00 - .byte 0x7C, 0x00, 0x09, 0x00, 0x7A, 0x00, 0x4C, 0x00, 0x41, 0x00, 0x7B, 0x00, 0x4C, 0x00, 0x3E, 0x00 - .byte 0x7B, 0x00, 0x50, 0x00, 0x7C, 0x00, 0x51, 0x00, 0x75, 0x00, 0x4A, 0x00, 0x46, 0x00, 0x7F, 0x00 - .byte 0x33, 0x00, 0x7C, 0x00, 0x01, 0x00, 0x79, 0x00, 0x0D, 0x00, 0x44, 0x00, 0x77, 0x00, 0x49, 0x00 - .byte 0x7C, 0x00, 0x7D, 0x00, 0x4A, 0x00, 0x0A, 0x00, 0x77, 0x00, 0x20, 0x00, 0x7A, 0x00, 0x02, 0x00 - .byte 0x17, 0x00, 0x18, 0x00, 0x05, 0x00, 0x07, 0x00, 0x77, 0x00, 0x3D, 0x00, 0x7D, 0x00, 0x23, 0x00 - .byte 0x78, 0x00, 0x62, 0x00, 0x56, 0x00, 0x23, 0x00, 0x5D, 0x00, 0x7A, 0x00, 0x33, 0x00, 0x7B, 0x00 - .byte 0x51, 0x00, 0x75, 0x00, 0x4C, 0x00, 0x73, 0x00, 0x0F, 0x00, 0x62, 0x00, 0x7F, 0x00, 0x56, 0x00 - .byte 0x3F, 0x00, 0x0A, 0x00, 0x76, 0x00, 0x31, 0x00, 0x7B, 0x00, 0x26, 0x00, 0x76, 0x00, 0x20, 0x00 - .byte 0x16, 0x00, 0x51, 0x00, 0x52, 0x00, 0x41, 0x00, 0x74, 0x00, 0x16, 0x00, 0x7B, 0x00, 0x18, 0x00 - .byte 0x7F, 0x00, 0x14, 0x00, 0x80, 0x00, 0x4C, 0x00, 0x73, 0x00, 0x62, 0x00, 0x75, 0x00, 0x5E, 0x00 - .byte 0x40, 0x00, 0x7D, 0x00, 0x0A, 0x00, 0x0D, 0x00, 0x0B, 0x00, 0x7F, 0x00, 0x1C, 0x00, 0x13, 0x00 - .byte 0x72, 0x00, 0x13, 0x00, 0x34, 0x00, 0x75, 0x00, 0x06, 0x00, 0x75, 0x00, 0x74, 0x00, 0x08, 0x00 - .byte 0x12, 0x00, 0x05, 0x00, 0x07, 0x00, 0x76, 0x00, 0x07, 0x00, 0x46, 0x00, 0x78, 0x00, 0x11, 0x00 - .byte 0x05, 0x00, 0x7C, 0x00, 0x4C, 0x00, 0x79, 0x00, 0x51, 0x00, 0x72, 0x00, 0x44, 0x00, 0x80, 0x00 - .byte 0x54, 0x00, 0x77, 0x00, 0x4C, 0x00, 0x0B, 0x00, 0x7C, 0x00, 0x56, 0x00, 0x7C, 0x00, 0x33, 0x00 - .byte 0x74, 0x00, 0x77, 0x00, 0x04, 0x00, 0x77, 0x00, 0x7D, 0x00, 0x75, 0x00, 0x12, 0x00, 0x77, 0x00 - .byte 0x5E, 0x00, 0x16, 0x00, 0x78, 0x00, 0x17, 0x00, 0x7D, 0x00, 0x25, 0x00, 0x3F, 0x00, 0x74, 0x00 - .byte 0x14, 0x00, 0x78, 0x00, 0x56, 0x00, 0x7A, 0x00, 0x5D, 0x00, 0x33, 0x00, 0x75, 0x00, 0x3B, 0x00 - .byte 0x72, 0x00, 0x78, 0x00, 0x77, 0x00, 0x74, 0x00, 0x72, 0x00, 0x7C, 0x00, 0x76, 0x00, 0x80, 0x00 - .byte 0x77, 0x00, 0x7D, 0x00, 0x77, 0x00, 0x7D, 0x00, 0x7F, 0x00, 0x5C, 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, 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, 0x01, 0x00, 0x02, 0x00 - .byte 0x04, 0x00, 0x08, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00 - .byte 0x6D, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x4A, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x05, 0x00, 0x06, 0x00, 0x6D, 0x00, 0x01, 0x00, 0x6E, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x6E, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x6F, 0x00, 0x03, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00 - .byte 0x4A, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 - .byte 0x05, 0x00, 0x06, 0x00, 0x63, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0E, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x6D, 0x00, 0x01, 0x00, 0x63, 0x00, 0x01, 0x00 - .byte 0x4A, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x6D, 0x00, 0x01, 0x00 - .byte 0x63, 0x00, 0x01, 0x00, 0x4A, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00 - .byte 0x6D, 0x00, 0x01, 0x00, 0x63, 0x00, 0x01, 0x00, 0x4A, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00 - .byte 0x05, 0x00, 0x06, 0x00, 0x6D, 0x00, 0x01, 0x00, 0x63, 0x00, 0x01, 0x00, 0x4A, 0x01, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x16, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x46, 0x00, 0x03, 0x00, 0x4C, 0x00, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x46, 0x00, 0x03, 0x00 - .byte 0x54, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00 - .byte 0x46, 0x00, 0x03, 0x00, 0x4A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x6C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0x08, 0x00, 0x46, 0x00, 0x03, 0x00, 0x53, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x6A, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x1E, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x4E, 0x00, 0x03, 0x00, 0x52, 0x00, 0x03, 0x00 - .byte 0x51, 0x00, 0x03, 0x00, 0x5A, 0x00, 0x03, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x46, 0x00, 0x03, 0x00 - .byte 0x55, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00 - .byte 0x46, 0x00, 0x02, 0x00, 0x6D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0x06, 0x00, 0x46, 0x00, 0x02, 0x00, 0x6D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x5F, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x46, 0x00, 0x03, 0x00, 0x6D, 0x00, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x46, 0x00, 0x03, 0x00 - .byte 0x55, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x0A, 0x00 - .byte 0x78, 0x05, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0xAA, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0x0D, 0x00, 0x78, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x11, 0x00, 0x78, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x78, 0x05, 0x0A, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0x01, 0xFB, 0x01 - .byte 0xFC, 0x01, 0xFD, 0x01, 0xFE, 0x01, 0xFF, 0x01, 0x00, 0x02, 0x01, 0x02, 0x02, 0x02, 0x03, 0x02 - .byte 0x04, 0x02, 0x05, 0x02, 0x06, 0x02, 0x07, 0x02, 0x08, 0x02, 0x09, 0x02, 0x0A, 0x02, 0x0B, 0x02 - .byte 0x0C, 0x02, 0x0D, 0x02, 0x0E, 0x02, 0x0F, 0x02, 0x10, 0x02, 0x11, 0x02, 0x12, 0x02, 0x13, 0x02 - .byte 0x14, 0x02, 0x15, 0x02, 0x16, 0x02, 0x17, 0x02, 0x18, 0x02, 0x19, 0x02, 0x1A, 0x02, 0x1B, 0x02 - .byte 0x1C, 0x02, 0x1D, 0x02, 0x1E, 0x02, 0x1F, 0x02, 0x20, 0x02, 0x21, 0x02, 0x22, 0x02, 0x23, 0x02 - .byte 0x24, 0x02, 0x25, 0x02, 0x26, 0x02, 0x27, 0x02, 0x28, 0x02, 0x29, 0x02, 0x2A, 0x02, 0x2B, 0x02 - .byte 0x2C, 0x02, 0x2D, 0x02, 0x2E, 0x02, 0x2F, 0x02, 0x30, 0x02, 0x31, 0x02, 0x32, 0x02, 0x33, 0x02 - .byte 0x34, 0x02, 0x35, 0x02, 0x36, 0x02, 0x37, 0x02, 0x38, 0x02, 0x39, 0x02, 0x3A, 0x02, 0x3B, 0x02 - .byte 0x3C, 0x02, 0x3D, 0x02, 0x72, 0x6F, 0x6D, 0x30, 0x3A, 0x53, 0x59, 0x4E, 0x54, 0x48, 0x2F, 0x73 - .byte 0x79, 0x6E, 0x74, 0x68, 0x2E, 0x62, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x53, 0x79, 0x6E, 0x74 - .byte 0x68, 0x65, 0x73, 0x69, 0x73, 0x5F, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x3D, 0x3D, 0x3D - .byte 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D - .byte 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D - .byte 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D - .byte 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D - .byte 0x0A, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, 0x63, 0x6B, 0x20, 0x75, 0x70, 0x20 - .byte 0x70, 0x61, 0x72, 0x74, 0x79, 0x20, 0x25, 0x34, 0x64, 0x20, 0x25, 0x34, 0x64, 0x20, 0x25, 0x34 - .byte 0x64, 0x20, 0x25, 0x34, 0x64, 0x0A, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, 0x63, 0x6B - .byte 0x20, 0x75, 0x70, 0x20, 0x73, 0x61, 0x6D, 0x65, 0x20, 0x69, 0x74, 0x65, 0x6D, 0x20, 0x25, 0x34 - .byte 0x64, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x8C, 0x00, 0xCB, 0x00, 0xCC, 0x00, 0xCE, 0x00, 0x62, 0x01 - .byte 0xB9, 0x01, 0x05, 0x02, 0x06, 0x02, 0x15, 0x02, 0x00, 0x00, 0x41, 0x00, 0x4B, 0x00, 0x67, 0x00 - .byte 0x7E, 0x00, 0x88, 0x00, 0xF6, 0x00, 0x08, 0x01, 0x24, 0x01, 0x2C, 0x01, 0x42, 0x01, 0x58, 0x01 - .byte 0x5B, 0x01, 0xAE, 0x01, 0xF4, 0x01, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6F, 0x6D, 0x30 - .byte 0x3A, 0x2F, 0x42, 0x41, 0x4C, 0x41, 0x4E, 0x43, 0x45, 0x2F, 0x77, 0x61, 0x7A, 0x61, 0x5F, 0x70 - .byte 0x2E, 0x62, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6F, 0x6D, 0x30, 0x3A, 0x2F, 0x42, 0x41 - .byte 0x4C, 0x41, 0x4E, 0x43, 0x45, 0x2F, 0x77, 0x61, 0x7A, 0x61, 0x5F, 0x70, 0x32, 0x2E, 0x62, 0x69 - .byte 0x6E, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A, 0x25, 0x63, 0x5D, 0x25, 0x2B, 0x64, 0x5B, 0x43 - .byte 0x52, 0x5D, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A, 0x4D, 0x5D, 0x25, 0x73, 0x25, 0x73, 0x5B, 0x43 - .byte 0x52, 0x5D, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x53, 0x32, 0x5D, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x53 - .byte 0x31, 0x5D, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A, 0x25, 0x63, 0x5D, 0x25, 0x73, 0x25, 0x73, 0x25 - .byte 0x73, 0x5B, 0x43, 0x4C, 0x55, 0x4D, 0x5F, 0x53, 0x45, 0x54, 0x3A, 0x31, 0x31, 0x31, 0x5D, 0x25 - .byte 0x32, 0x64, 0x5B, 0x43, 0x4C, 0x55, 0x4D, 0x5F, 0x53, 0x45, 0x54, 0x3A, 0x31, 0x32, 0x33, 0x5D - .byte 0x2F, 0x5B, 0x43, 0x4C, 0x55, 0x4D, 0x5F, 0x53, 0x45, 0x54, 0x3A, 0x31, 0x32, 0x38, 0x5D, 0x25 - .byte 0x32, 0x64, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A, 0x25, 0x63, 0x3A, 0x5D - .byte 0x25, 0x73, 0x25, 0x73, 0x25, 0x73, 0x5B, 0x43, 0x4C, 0x55, 0x4D, 0x5F, 0x53, 0x45, 0x54, 0x3A - .byte 0x31, 0x31, 0x31, 0x5D, 0x25, 0x32, 0x64, 0x5B, 0x43, 0x4C, 0x55, 0x4D, 0x5F, 0x53, 0x45, 0x54 - .byte 0x3A, 0x31, 0x32, 0x33, 0x5D, 0x2F, 0x5B, 0x43, 0x4C, 0x55, 0x4D, 0x5F, 0x53, 0x45, 0x54, 0x3A - .byte 0x31, 0x32, 0x38, 0x5D, 0x25, 0x32, 0x64, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x25, 0x73, 0x20, 0x25 - .byte 0x32, 0x64, 0x2F, 0x25, 0x32, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x72, 0x6F, 0x6D, 0x30, 0x3A, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x62, 0x61, 0x6E, 0x6E, 0x65, 0x72 - .byte 0x2E, 0x62, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6F, 0x6D, 0x30, 0x3A, 0x46, 0x4F, 0x4E - .byte 0x54, 0x2F, 0x62, 0x61, 0x6E, 0x6E, 0x65, 0x72, 0x5F, 0x63, 0x2E, 0x62, 0x69, 0x6E, 0x00, 0x00 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00 - .byte 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x04, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00 - .byte 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x08, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00 - .byte 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x0C, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00 - .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 - .byte 0xFF, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0x14, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 - .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x18, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .byte 0x0F, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x1C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 - .byte 0x72, 0x6F, 0x6D, 0x30, 0x3A, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x62, 0x5F, 0x70, 0x61, 0x6C, 0x5F - .byte 0x72, 0x2E, 0x62, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x72, 0x6F, 0x6D, 0x30, 0x3A, 0x46, 0x4F, 0x4E - .byte 0x54, 0x2F, 0x62, 0x5F, 0x70, 0x61, 0x6C, 0x5F, 0x70, 0x2E, 0x62, 0x69, 0x6E, 0x00, 0x00, 0x00 - .byte 0x72, 0x6F, 0x6D, 0x30, 0x3A, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x62, 0x5F, 0x70, 0x61, 0x6C, 0x32 - .byte 0x2E, 0x62, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6F, 0x6D, 0x30, 0x3A, 0x46, 0x4F, 0x4E - .byte 0x54, 0x2F, 0x62, 0x5F, 0x70, 0x61, 0x6C, 0x2E, 0x62, 0x69, 0x6E, 0x00, 0x5B, 0x52, 0x5D, 0x00 - .byte 0x4C, 0x49, 0x4E, 0x45, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00 - .byte 0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00 - .byte 0x09, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x10, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00 - .byte 0x40, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00 - .byte 0x0B, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x88, 0x67, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x14, 0x68, 0x01, 0x02, 0x74, 0x67, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0x88, 0x68, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x68, 0x01, 0x02, 0x3C, 0x69, 0x01, 0x02 - .byte 0xF0, 0x6B, 0x01, 0x02, 0xB8, 0x6B, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0xAC, 0x6E, 0x01, 0x02 - .byte 0x44, 0x71, 0x01, 0x02, 0x14, 0x73, 0x01, 0x02, 0x8C, 0x75, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0x14, 0x68, 0x01, 0x02, 0xFC, 0x67, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x88, 0x68, 0x01, 0x02 - .byte 0x01, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .byte 0xE6, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00 - .byte 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00 - .byte 0x07, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 - .byte 0x6C, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 - .byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE6, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0xAC, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00 - .byte 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00 - .byte 0x47, 0x52, 0x4F, 0x55, 0x4E, 0x44, 0x2F, 0x73, 0x32, 0x30, 0x70, 0x30, 0x31, 0x61, 0x31, 0x2E - .byte 0x77, 0x61, 0x6E, 0x00, 0x47, 0x52, 0x4F, 0x55, 0x4E, 0x44, 0x2F, 0x73, 0x32, 0x30, 0x70, 0x30 - .byte 0x31, 0x61, 0x32, 0x2E, 0x77, 0x61, 0x6E, 0x00, 0x25, 0x73, 0x25, 0x73, 0x00, 0x00, 0x00, 0x00 - .byte 0x25, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x25, 0x73, 0x25, 0x63 - .byte 0x46, 0x00, 0x00, 0x00, 0x25, 0x73, 0x25, 0x63, 0x25, 0x63, 0x46, 0x00, 0x02, 0x3F, 0x03, 0x3F - .byte 0x03, 0x3F, 0x01, 0x3F, 0x04, 0x3F, 0x06, 0x3F, 0x07, 0x3F, 0x0B, 0x3F, 0x73, 0x65, 0x20, 0x70 - .byte 0x6C, 0x61, 0x79, 0x20, 0x20, 0x6E, 0x75, 0x6D, 0x20, 0x25, 0x33, 0x64, 0x20, 0x20, 0x76, 0x6F - .byte 0x6C, 0x75, 0x6D, 0x65, 0x20, 0x25, 0x33, 0x64, 0x00, 0x00, 0x00, 0x00, 0x73, 0x65, 0x20, 0x70 - .byte 0x6C, 0x61, 0x79, 0x20, 0x66, 0x75, 0x6C, 0x6C, 0x20, 0x73, 0x70, 0x65, 0x63, 0x20, 0x20, 0x6E - .byte 0x75, 0x6D, 0x20, 0x25, 0x33, 0x64, 0x20, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x20, 0x25, 0x33, 0x64 - .byte 0x20, 0x20, 0x76, 0x6F, 0x6C, 0x75, 0x6D, 0x65, 0x20, 0x25, 0x33, 0x64, 0x20, 0x20, 0x70, 0x61 - .byte 0x6E, 0x20, 0x25, 0x33, 0x64, 0x00, 0x00, 0x00, 0x73, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6E, 0x67 - .byte 0x65, 0x20, 0x76, 0x6F, 0x6C, 0x75, 0x6D, 0x65, 0x20, 0x20, 0x6E, 0x75, 0x6D, 0x20, 0x25, 0x33 - .byte 0x64, 0x20, 0x20, 0x76, 0x6F, 0x6C, 0x75, 0x6D, 0x65, 0x20, 0x25, 0x33, 0x64, 0x00, 0x00, 0x00 - .byte 0x73, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6E, 0x67, 0x65, 0x20, 0x70, 0x61, 0x6E, 0x20, 0x20, 0x6E - .byte 0x75, 0x6D, 0x20, 0x25, 0x33, 0x64, 0x20, 0x20, 0x70, 0x61, 0x6E, 0x20, 0x25, 0x33, 0x64, 0x00 - .byte 0x73, 0x65, 0x20, 0x73, 0x74, 0x6F, 0x70, 0x20, 0x20, 0x6E, 0x75, 0x6D, 0x20, 0x25, 0x33, 0x64 - .byte 0x00, 0x00, 0x00, 0x00, 0x73, 0x65, 0x20, 0x73, 0x74, 0x6F, 0x70, 0x20, 0x20, 0x6E, 0x75, 0x6D - .byte 0x20, 0x25, 0x33, 0x64, 0x20, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x20, 0x25, 0x33, 0x64, 0x00, 0x00 - .byte 0x61, 0x75, 0x64, 0x69, 0x6F, 0x20, 0x63, 0x6F, 0x6D, 0x6D, 0x61, 0x6E, 0x64, 0x20, 0x6C, 0x69 - .byte 0x73, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x72, 0x61, 0x70, 0x00, 0x00, 0x00, 0x00 - .byte 0x77, 0x61, 0x7A, 0x61, 0x39, 0x00, 0x00, 0x00, 0x77, 0x61, 0x7A, 0x61, 0x38, 0x00, 0x00, 0x00 - .byte 0x77, 0x61, 0x7A, 0x61, 0x36, 0x00, 0x00, 0x00, 0x77, 0x61, 0x7A, 0x61, 0x32, 0x00, 0x00, 0x00 - .byte 0x65, 0x76, 0x65, 0x6E, 0x74, 0x00, 0x00, 0x00, 0x73, 0x74, 0x61, 0x74, 0x65, 0x00, 0x00, 0x00 - .byte 0x77, 0x61, 0x7A, 0x61, 0x37, 0x00, 0x00, 0x00, 0x77, 0x61, 0x7A, 0x61, 0x35, 0x00, 0x00, 0x00 - .byte 0x77, 0x61, 0x7A, 0x61, 0x31, 0x00, 0x00, 0x00, 0x77, 0x61, 0x7A, 0x61, 0x33, 0x00, 0x00, 0x00 - .byte 0x77, 0x61, 0x7A, 0x61, 0x34, 0x00, 0x00, 0x00, 0x65, 0x76, 0x5F, 0x65, 0x30, 0x33, 0x00, 0x00 - .byte 0x65, 0x76, 0x5F, 0x6D, 0x30, 0x31, 0x00, 0x00, 0x65, 0x76, 0x5F, 0x65, 0x30, 0x34, 0x00, 0x00 - .byte 0x65, 0x76, 0x5F, 0x65, 0x30, 0x36, 0x00, 0x00, 0x65, 0x76, 0x5F, 0x6D, 0x31, 0x34, 0x00, 0x00 - .byte 0x65, 0x76, 0x5F, 0x6D, 0x31, 0x38, 0x00, 0x00, 0x65, 0x76, 0x5F, 0x65, 0x30, 0x38, 0x00, 0x00 - .byte 0x65, 0x76, 0x5F, 0x6D, 0x32, 0x35, 0x00, 0x00, 0x65, 0x76, 0x5F, 0x6D, 0x31, 0x30, 0x00, 0x00 - .byte 0x65, 0x76, 0x5F, 0x6D, 0x30, 0x35, 0x00, 0x00, 0x65, 0x76, 0x5F, 0x73, 0x30, 0x31, 0x00, 0x00 - .byte 0x65, 0x76, 0x5F, 0x65, 0x30, 0x39, 0x00, 0x00, 0x65, 0x76, 0x5F, 0x73, 0x31, 0x30, 0x00, 0x00 - .byte 0x77, 0x61, 0x7A, 0x61, 0x31, 0x35, 0x00, 0x00, 0x65, 0x76, 0x5F, 0x6D, 0x32, 0x36, 0x00, 0x00 - .byte 0x65, 0x76, 0x5F, 0x73, 0x33, 0x30, 0x00, 0x00, 0x65, 0x76, 0x5F, 0x73, 0x32, 0x33, 0x00, 0x00 - .byte 0x77, 0x61, 0x7A, 0x61, 0x31, 0x30, 0x00, 0x00, 0x65, 0x76, 0x5F, 0x65, 0x74, 0x31, 0x00, 0x00 - .byte 0x77, 0x61, 0x7A, 0x61, 0x31, 0x31, 0x00, 0x00, 0x77, 0x61, 0x7A, 0x61, 0x31, 0x32, 0x00, 0x00 - .byte 0x65, 0x76, 0x5F, 0x65, 0x30, 0x31, 0x00, 0x00, 0x77, 0x61, 0x7A, 0x61, 0x31, 0x33, 0x00, 0x00 - .byte 0x77, 0x61, 0x7A, 0x61, 0x31, 0x34, 0x00, 0x00, 0x65, 0x76, 0x5F, 0x65, 0x30, 0x32, 0x00, 0x00 - .byte 0x65, 0x76, 0x65, 0x6E, 0x74, 0x5F, 0x73, 0x00, 0x65, 0x76, 0x5F, 0x65, 0x30, 0x39, 0x62, 0x00 - .byte 0x6D, 0x6F, 0x74, 0x69, 0x6F, 0x6E, 0x5F, 0x73, 0x00, 0x00, 0x00, 0x00, 0x53, 0x4F, 0x55, 0x4E - .byte 0x44, 0x2F, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4D, 0x2F, 0x73, 0x65, 0x5F, 0x73, 0x79, 0x73, 0x2E - .byte 0x73, 0x77, 0x64, 0x00, 0x65, 0x6E, 0x74, 0x72, 0x79, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D - .byte 0x20, 0x73, 0x65, 0x20, 0x73, 0x77, 0x64, 0x20, 0x25, 0x30, 0x34, 0x78, 0x0A, 0x00, 0x00, 0x00 - .byte 0x53, 0x4F, 0x55, 0x4E, 0x44, 0x2F, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4D, 0x2F, 0x73, 0x65, 0x5F - .byte 0x73, 0x79, 0x73, 0x2E, 0x73, 0x65, 0x64, 0x00, 0x65, 0x6E, 0x74, 0x72, 0x79, 0x20, 0x73, 0x79 - .byte 0x73, 0x74, 0x65, 0x6D, 0x20, 0x73, 0x65, 0x20, 0x73, 0x65, 0x64, 0x20, 0x25, 0x30, 0x34, 0x78 - .byte 0x0A, 0x00, 0x00, 0x00, 0x53, 0x4F, 0x55, 0x4E, 0x44, 0x2F, 0x53, 0x45, 0x2F, 0x6D, 0x6F, 0x74 - .byte 0x69, 0x6F, 0x6E, 0x2E, 0x73, 0x77, 0x64, 0x00, 0x65, 0x6E, 0x74, 0x72, 0x79, 0x20, 0x6D, 0x6F - .byte 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x73, 0x65, 0x20, 0x73, 0x77, 0x64, 0x20, 0x25, 0x30, 0x34, 0x78 - .byte 0x0A, 0x00, 0x00, 0x00, 0x53, 0x4F, 0x55, 0x4E, 0x44, 0x2F, 0x53, 0x45, 0x2F, 0x6D, 0x6F, 0x74 - .byte 0x69, 0x6F, 0x6E, 0x2E, 0x73, 0x65, 0x64, 0x00, 0x65, 0x6E, 0x74, 0x72, 0x79, 0x20, 0x6D, 0x6F - .byte 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x73, 0x65, 0x20, 0x73, 0x65, 0x64, 0x20, 0x25, 0x30, 0x34, 0x78 - .byte 0x0A, 0x00, 0x00, 0x00, 0x62, 0x67, 0x6D, 0x20, 0x65, 0x6E, 0x64, 0x20, 0x25, 0x64, 0x00, 0x00 - .byte 0x62, 0x67, 0x6D, 0x32, 0x20, 0x65, 0x6E, 0x64, 0x20, 0x25, 0x64, 0x00, 0x72, 0x65, 0x73, 0x75 - .byte 0x6D, 0x65, 0x20, 0x62, 0x67, 0x6D, 0x20, 0x25, 0x64, 0x00, 0x00, 0x00, 0x72, 0x65, 0x73, 0x75 - .byte 0x6D, 0x65, 0x20, 0x62, 0x67, 0x6D, 0x32, 0x20, 0x25, 0x64, 0x00, 0x00, 0x53, 0x6F, 0x75, 0x6E - .byte 0x64, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5F, 0x52, 0x65, 0x73, 0x65, 0x74, 0x0A, 0x00, 0x00 - .byte 0x53, 0x4F, 0x55, 0x4E, 0x44, 0x2F, 0x53, 0x45, 0x2F, 0x25, 0x73, 0x2E, 0x73, 0x65, 0x64, 0x00 - .byte 0x73, 0x65, 0x20, 0x70, 0x6C, 0x61, 0x79, 0x20, 0x6C, 0x6F, 0x61, 0x64, 0x20, 0x25, 0x30, 0x34 - .byte 0x78, 0x20, 0x5B, 0x25, 0x73, 0x5D, 0x00, 0x00, 0x73, 0x65, 0x20, 0x62, 0x61, 0x6E, 0x6B, 0x20 - .byte 0x6C, 0x69, 0x73, 0x74, 0x20, 0x20, 0x6E, 0x75, 0x6D, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5B, 0x25 - .byte 0x30, 0x34, 0x78, 0x5D, 0x20, 0x20, 0x73, 0x75, 0x6D, 0x20, 0x25, 0x33, 0x64, 0x00, 0x00, 0x00 - .byte 0x20, 0x20, 0x20, 0x20, 0x5B, 0x25, 0x33, 0x64, 0x5D, 0x20, 0x25, 0x33, 0x64, 0x5B, 0x25, 0x30 - .byte 0x34, 0x78, 0x5D, 0x00, 0x53, 0x4F, 0x55, 0x4E, 0x44, 0x2F, 0x53, 0x57, 0x44, 0x2F, 0x25, 0x30 - .byte 0x33, 0x64, 0x2E, 0x73, 0x77, 0x64, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0x6C, 0x6F, 0x61, 0x64 - .byte 0x20, 0x25, 0x32, 0x64, 0x20, 0x5B, 0x25, 0x73, 0x5D, 0x00, 0x00, 0x00, 0x62, 0x67, 0x6D, 0x20 - .byte 0x70, 0x6C, 0x61, 0x79, 0x20, 0x25, 0x33, 0x64, 0x20, 0x25, 0x33, 0x64, 0x20, 0x25, 0x33, 0x64 - .byte 0x00, 0x00, 0x00, 0x00, 0x53, 0x4F, 0x55, 0x4E, 0x44, 0x2F, 0x42, 0x47, 0x4D, 0x2F, 0x62, 0x67 - .byte 0x6D, 0x25, 0x30, 0x34, 0x64, 0x2E, 0x73, 0x6D, 0x64, 0x00, 0x00, 0x00, 0x53, 0x4F, 0x55, 0x4E - .byte 0x44, 0x2F, 0x42, 0x47, 0x4D, 0x2F, 0x62, 0x67, 0x6D, 0x25, 0x30, 0x34, 0x64, 0x2E, 0x73, 0x77 - .byte 0x64, 0x00, 0x00, 0x00, 0x62, 0x67, 0x6D, 0x20, 0x73, 0x74, 0x6F, 0x70, 0x20, 0x25, 0x33, 0x64 - .byte 0x00, 0x00, 0x00, 0x00, 0x42, 0x67, 0x6D, 0x53, 0x74, 0x6F, 0x70, 0x20, 0x20, 0x6D, 0x6F, 0x64 - .byte 0x65, 0x20, 0x25, 0x64, 0x20, 0x25, 0x64, 0x20, 0x20, 0x6E, 0x75, 0x6D, 0x20, 0x25, 0x64, 0x20 - .byte 0x20, 0x74, 0x69, 0x6D, 0x65, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x62, 0x67, 0x6D, 0x20 - .byte 0x63, 0x68, 0x61, 0x6E, 0x67, 0x65, 0x20, 0x25, 0x33, 0x64, 0x20, 0x25, 0x33, 0x64, 0x00, 0x00 - .byte 0x62, 0x67, 0x6D, 0x32, 0x20, 0x70, 0x6C, 0x61, 0x79, 0x20, 0x25, 0x33, 0x64, 0x20, 0x25, 0x33 - .byte 0x64, 0x20, 0x25, 0x33, 0x64, 0x00, 0x00, 0x00, 0x62, 0x67, 0x6D, 0x32, 0x20, 0x73, 0x74, 0x6F - .byte 0x70, 0x20, 0x25, 0x33, 0x64, 0x00, 0x00, 0x00, 0x62, 0x67, 0x6D, 0x32, 0x20, 0x63, 0x68, 0x61 - .byte 0x6E, 0x67, 0x65, 0x20, 0x25, 0x33, 0x64, 0x20, 0x25, 0x33, 0x64, 0x00, 0x6D, 0x65, 0x20, 0x70 - .byte 0x6C, 0x61, 0x79, 0x20, 0x25, 0x33, 0x64, 0x20, 0x25, 0x33, 0x64, 0x20, 0x25, 0x33, 0x64, 0x00 - .byte 0x53, 0x4F, 0x55, 0x4E, 0x44, 0x2F, 0x4D, 0x45, 0x2F, 0x6D, 0x65, 0x25, 0x30, 0x34, 0x64, 0x2E - .byte 0x73, 0x6D, 0x64, 0x00, 0x53, 0x4F, 0x55, 0x4E, 0x44, 0x2F, 0x4D, 0x45, 0x2F, 0x6D, 0x65, 0x2E - .byte 0x73, 0x77, 0x64, 0x00, 0x6D, 0x65, 0x20, 0x73, 0x74, 0x6F, 0x70, 0x20, 0x25, 0x33, 0x64, 0x00 - .byte 0x73, 0x65, 0x20, 0x70, 0x6C, 0x61, 0x79, 0x20, 0x25, 0x33, 0x64, 0x20, 0x25, 0x33, 0x64, 0x00 - .byte 0x73, 0x65, 0x20, 0x70, 0x6C, 0x61, 0x79, 0x20, 0x66, 0x75, 0x6C, 0x6C, 0x20, 0x73, 0x70, 0x65 - .byte 0x63, 0x20, 0x25, 0x33, 0x64, 0x20, 0x25, 0x33, 0x64, 0x20, 0x25, 0x33, 0x64, 0x20, 0x25, 0x33 - .byte 0x64, 0x00, 0x00, 0x00, 0x73, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6E, 0x67, 0x65, 0x20, 0x76, 0x6F - .byte 0x6C, 0x75, 0x6D, 0x65, 0x20, 0x25, 0x33, 0x64, 0x20, 0x25, 0x33, 0x64, 0x20, 0x25, 0x33, 0x64 - .byte 0x00, 0x00, 0x00, 0x00, 0x73, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6E, 0x67, 0x65, 0x20, 0x70, 0x61 - .byte 0x6E, 0x20, 0x25, 0x33, 0x64, 0x20, 0x25, 0x33, 0x64, 0x20, 0x25, 0x33, 0x64, 0x00, 0x00, 0x00 - .byte 0x73, 0x65, 0x20, 0x73, 0x74, 0x6F, 0x70, 0x20, 0x25, 0x33, 0x64, 0x20, 0x25, 0x33, 0x64, 0x00 - .byte 0xC0, 0xFF, 0xC0, 0xFF, 0x00, 0x01, 0xC0, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x41, 0x6E, 0x69, 0x6D, 0x65, 0x43, 0x74, 0x72, 0x6C, 0x5F, 0x53, 0x65, 0x74, 0x56, 0x72, 0x61 - .byte 0x6D, 0x4E, 0x6F, 0x54, 0x72, 0x61, 0x6E, 0x73, 0x20, 0x3A, 0x20, 0x61, 0x6E, 0x69, 0x6D, 0x65 - .byte 0x20, 0x66, 0x69, 0x6C, 0x65, 0x20, 0x6E, 0x6F, 0x20, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6E, 0x67 - .byte 0x2E, 0x00, 0x00, 0x00, 0x72, 0x6F, 0x6D, 0x30, 0x3A, 0x00, 0x00, 0x00, 0x57, 0x54, 0x45, 0x00 - .byte 0x57, 0x54, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00 - .byte 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00 - .byte 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00 - .byte 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 - .byte 0x18, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00 - .byte 0x45, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x45, 0x32, 0x00, 0x00, 0x45, 0x52, 0x00, 0x00 - .byte 0x52, 0x45, 0x00, 0x00, 0x52, 0x51, 0x00, 0x00, 0x45, 0x31, 0x00, 0x00, 0x53, 0x31, 0x00, 0x00 - .byte 0x53, 0x32, 0x00, 0x00, 0x8B, 0x87, 0x8C, 0x87, 0xF8, 0x98, 0x09, 0x02, 0x1C, 0x09, 0x00, 0x00 - .byte 0xF8, 0x98, 0x09, 0x02, 0x9D, 0x08, 0x00, 0x00, 0xF8, 0x98, 0x09, 0x02, 0x92, 0x08, 0x00, 0x00 - .byte 0xF8, 0x98, 0x09, 0x02, 0x72, 0x08, 0x00, 0x00, 0xF8, 0x98, 0x09, 0x02, 0xAC, 0x08, 0x00, 0x00 - .byte 0xF8, 0x98, 0x09, 0x02, 0x42, 0x09, 0x00, 0x00, 0xF8, 0x98, 0x09, 0x02, 0xB6, 0x09, 0x00, 0x00 - .byte 0xF8, 0x98, 0x09, 0x02, 0xBA, 0x08, 0x00, 0x00, 0xF8, 0x98, 0x09, 0x02, 0x6D, 0x06, 0x00, 0x00 - .byte 0xF8, 0x98, 0x09, 0x02, 0xFE, 0x07, 0x00, 0x00, 0xF8, 0x98, 0x09, 0x02, 0x69, 0x06, 0x00, 0x00 - .byte 0xF8, 0x98, 0x09, 0x02, 0x60, 0x06, 0x00, 0x00, 0xF8, 0x98, 0x09, 0x02, 0x5A, 0x06, 0x00, 0x00 - .byte 0xF8, 0x98, 0x09, 0x02, 0x47, 0x06, 0x00, 0x00, 0xF8, 0x98, 0x09, 0x02, 0x29, 0x06, 0x00, 0x00 - .byte 0xF8, 0x98, 0x09, 0x02, 0x17, 0x06, 0x00, 0x00, 0xF8, 0x98, 0x09, 0x02, 0xF6, 0x05, 0x00, 0x00 - .byte 0xF8, 0x98, 0x09, 0x02, 0xBD, 0x05, 0x00, 0x00, 0xF8, 0x98, 0x09, 0x02, 0x61, 0x05, 0x00, 0x00 - .byte 0xF8, 0x98, 0x09, 0x02, 0x49, 0x05, 0x00, 0x00, 0xF8, 0x98, 0x09, 0x02, 0xCC, 0x08, 0x00, 0x00 - .byte 0xF8, 0x98, 0x09, 0x02, 0x7D, 0x09, 0x00, 0x00, 0xF8, 0x98, 0x09, 0x02, 0x13, 0x08, 0x00, 0x00 - .byte 0xF8, 0x98, 0x09, 0x02, 0xEF, 0x08, 0x00, 0x00, 0xF8, 0x98, 0x09, 0x02, 0x33, 0x08, 0x00, 0x00 - .byte 0xF8, 0x98, 0x09, 0x02, 0xA1, 0x09, 0x00, 0x00, 0xF8, 0x98, 0x09, 0x02, 0xBC, 0x09, 0x00, 0x00 - .byte 0xF8, 0x98, 0x09, 0x02, 0x51, 0x08, 0x00, 0x00, 0xF8, 0x98, 0x09, 0x02, 0x94, 0x04, 0x00, 0x00 - .byte 0xF8, 0x98, 0x09, 0x02, 0x09, 0x09, 0x00, 0x00, 0xF8, 0x98, 0x09, 0x02, 0x1C, 0x05, 0x00, 0x00 - .byte 0xF8, 0x98, 0x09, 0x02, 0x29, 0x05, 0x00, 0x00, 0xF8, 0x98, 0x09, 0x02, 0x63, 0x08, 0x00, 0x00 - .byte 0xF8, 0x98, 0x09, 0x02, 0x01, 0x0A, 0x00, 0x00, 0x6D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5F - .byte 0x61, 0x6E, 0x61, 0x6C, 0x79, 0x7A, 0x65, 0x2E, 0x63, 0x00, 0x00, 0x00, 0xCC, 0x97, 0x09, 0x02 - .byte 0x96, 0x00, 0x00, 0x00, 0xD0, 0x97, 0x09, 0x02, 0x97, 0x00, 0x00, 0x00, 0xC4, 0x97, 0x09, 0x02 - .byte 0xBA, 0x00, 0x00, 0x00, 0xC0, 0x97, 0x09, 0x02, 0x8D, 0x00, 0x00, 0x00, 0xD4, 0x97, 0x09, 0x02 - .byte 0xBF, 0x00, 0x00, 0x00, 0xDC, 0x97, 0x09, 0x02, 0x91, 0x00, 0x00, 0x00, 0xD8, 0x97, 0x09, 0x02 - .byte 0x92, 0x00, 0x00, 0x00, 0xE0, 0x97, 0x09, 0x02, 0x93, 0x00, 0x00, 0x00, 0xC8, 0x97, 0x09, 0x02 - .byte 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x97, 0x09, 0x02 - .byte 0x96, 0x00, 0x00, 0x00, 0xD0, 0x97, 0x09, 0x02, 0x97, 0x00, 0x00, 0x00, 0xC4, 0x97, 0x09, 0x02 - .byte 0xBA, 0x00, 0x00, 0x00, 0xC0, 0x97, 0x09, 0x02, 0x8D, 0x00, 0x00, 0x00, 0xD4, 0x97, 0x09, 0x02 - .byte 0xBF, 0x00, 0x00, 0x00, 0xDC, 0x97, 0x09, 0x02, 0xB8, 0x00, 0x00, 0x00, 0xD8, 0x97, 0x09, 0x02 - .byte 0x91, 0x00, 0x00, 0x00, 0xE0, 0x97, 0x09, 0x02, 0xB7, 0x00, 0x00, 0x00, 0xC8, 0x97, 0x09, 0x02 - .byte 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x41, 0x52, 0x00 - .byte 0x74, 0x61, 0x67, 0x20, 0x63, 0x6F, 0x64, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x5B - .byte 0x25, 0x73, 0x5D, 0x5B, 0x25, 0x73, 0x5D, 0x00, 0x43, 0x53, 0x00, 0x00, 0x43, 0x52, 0x00, 0x00 - .byte 0x43, 0x4E, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x43, 0x4C, 0x55, 0x4D, 0x5F, 0x53, 0x45, 0x54 - .byte 0x00, 0x00, 0x00, 0x00, 0x43, 0x4C, 0x55, 0x4D, 0x5F, 0x4F, 0x46, 0x46, 0x53, 0x45, 0x54, 0x00 - .byte 0x48, 0x52, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x46, 0x54, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00 - .byte 0x4C, 0x53, 0x00, 0x00, 0x4C, 0x45, 0x00, 0x00, 0x4C, 0x49, 0x4E, 0x45, 0x00, 0x00, 0x00, 0x00 - .byte 0x4D, 0x00, 0x00, 0x00, 0x4D, 0x53, 0x00, 0x00, 0x4D, 0x50, 0x00, 0x00, 0x4D, 0x45, 0x5F, 0x50 - .byte 0x4C, 0x41, 0x59, 0x00, 0x50, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00 - .byte 0x53, 0x54, 0x53, 0x00, 0x53, 0x54, 0x45, 0x00, 0x53, 0x45, 0x5F, 0x50, 0x4C, 0x41, 0x59, 0x00 - .byte 0x57, 0x00, 0x00, 0x00, 0x61, 0x6E, 0x61, 0x6C, 0x79, 0x7A, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6F - .byte 0x72, 0x20, 0x5B, 0x25, 0x73, 0x5D, 0x5B, 0x25, 0x73, 0x5D, 0x00, 0x00, 0x5B, 0x53, 0x54, 0x53 - .byte 0x5D, 0x00, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x54, 0x30, 0x5D, 0x5B, 0x53, 0x54, 0x45, 0x5D, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x61, 0x72, 0x65, 0x61, 0x00, 0x00, 0x00, 0x00, 0x61, 0x64, 0x76, 0x65 - .byte 0x72, 0x62, 0x00, 0x00, 0x62, 0x61, 0x6E, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x62, 0x61, 0x6E, 0x6B - .byte 0x5F, 0x6C, 0x65, 0x66, 0x74, 0x00, 0x00, 0x00, 0x63, 0x5F, 0x6B, 0x69, 0x6E, 0x64, 0x00, 0x00 - .byte 0x63, 0x5F, 0x69, 0x00, 0x63, 0x5F, 0x6E, 0x61, 0x6D, 0x65, 0x00, 0x00, 0x63, 0x5F, 0x73, 0x74 - .byte 0x61, 0x6D, 0x6D, 0x65, 0x72, 0x00, 0x00, 0x00, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x00, 0x00, 0x00 - .byte 0x83, 0x4E, 0x83, 0x89, 0x83, 0x58, 0x00, 0x00, 0x64, 0x69, 0x67, 0x69, 0x74, 0x73, 0x00, 0x00 - .byte 0x25, 0x64, 0x00, 0x00, 0x64, 0x69, 0x67, 0x69, 0x74, 0x73, 0x5F, 0x63, 0x00, 0x00, 0x00, 0x00 - .byte 0x5B, 0x43, 0x53, 0x3A, 0x56, 0x5D, 0x25, 0x64, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00 - .byte 0x64, 0x75, 0x6E, 0x67, 0x65, 0x6F, 0x6E, 0x00, 0x65, 0x71, 0x75, 0x69, 0x70, 0x5F, 0x6C, 0x69 - .byte 0x73, 0x74, 0x00, 0x00, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x65, 0x6E, 0x63, 0x65, 0x00, 0x00 - .byte 0x66, 0x6C, 0x6F, 0x6F, 0x72, 0x00, 0x00, 0x00, 0x67, 0x61, 0x64, 0x67, 0x65, 0x74, 0x5F, 0x62 - .byte 0x61, 0x67, 0x00, 0x00, 0x67, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x00, 0x67, 0x6F, 0x6C, 0x64 - .byte 0x00, 0x00, 0x00, 0x00, 0x67, 0x6F, 0x6C, 0x64, 0x5F, 0x6C, 0x65, 0x66, 0x74, 0x00, 0x00, 0x00 - .byte 0x68, 0x65, 0x72, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x69, 0x74, 0x65, 0x6D, 0x00, 0x00, 0x00, 0x00 - .byte 0x6B, 0x69, 0x6E, 0x64, 0x00, 0x00, 0x00, 0x00, 0x6E, 0x61, 0x6D, 0x65, 0x00, 0x00, 0x00, 0x00 - .byte 0x6E, 0x6F, 0x77, 0x5F, 0x74, 0x65, 0x61, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x6F, 0x76, 0x65 - .byte 0x00, 0x00, 0x00, 0x00, 0x6D, 0x65, 0x5F, 0x70, 0x6C, 0x61, 0x79, 0x00, 0x5B, 0x4D, 0x45, 0x5F - .byte 0x50, 0x4C, 0x41, 0x59, 0x3A, 0x25, 0x64, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x6F, 0x76, 0x65 - .byte 0x5F, 0x68, 0x69, 0x74, 0x5F, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x00, 0x00, 0x6D, 0x6F, 0x76, 0x65 - .byte 0x5F, 0x70, 0x6F, 0x77, 0x65, 0x72, 0x00, 0x00, 0x70, 0x61, 0x72, 0x74, 0x6E, 0x65, 0x72, 0x00 - .byte 0x70, 0x61, 0x72, 0x74, 0x6E, 0x65, 0x72, 0x32, 0x00, 0x00, 0x00, 0x00, 0x70, 0x6C, 0x61, 0x79 - .byte 0x65, 0x72, 0x00, 0x00, 0x70, 0x75, 0x72, 0x70, 0x6F, 0x73, 0x65, 0x00, 0x72, 0x61, 0x6E, 0x6B - .byte 0x00, 0x00, 0x00, 0x00, 0x72, 0x61, 0x6E, 0x67, 0x65, 0x00, 0x00, 0x00, 0x73, 0x5F, 0x69, 0x74 - .byte 0x65, 0x6D, 0x00, 0x00, 0x73, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x30, 0x00, 0x73, 0x74, 0x72, 0x69 - .byte 0x6E, 0x67, 0x00, 0x00, 0x73, 0x65, 0x5F, 0x70, 0x6C, 0x61, 0x79, 0x00, 0x5B, 0x53, 0x45, 0x5F - .byte 0x50, 0x4C, 0x41, 0x59, 0x3A, 0x25, 0x64, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x74, 0x79, 0x70, 0x65 - .byte 0x00, 0x00, 0x00, 0x00, 0x74, 0x72, 0x61, 0x70, 0x00, 0x00, 0x00, 0x00, 0x74, 0x61, 0x63, 0x74 - .byte 0x69, 0x63, 0x73, 0x00, 0x74, 0x65, 0x61, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x74, 0x69, 0x6D, 0x65 - .byte 0x00, 0x00, 0x00, 0x00, 0x25, 0x64, 0x3A, 0x25, 0x30, 0x32, 0x64, 0x3A, 0x25, 0x30, 0x32, 0x64 - .byte 0x00, 0x00, 0x00, 0x00, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x00, 0x00, 0x00, 0x76, 0x61, 0x6C, 0x75 - .byte 0x65, 0x30, 0x00, 0x00, 0x25, 0x30, 0x2A, 0x64, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x53, 0x3A, 0x30 - .byte 0x30, 0x5D, 0x25, 0x73, 0x00, 0x00, 0x00, 0x00, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x5F, 0x69, 0x00 - .byte 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x00, 0x77, 0x69, 0x73, 0x65, 0x6E, 0x65, 0x73, 0x73 - .byte 0x00, 0x00, 0x00, 0x00, 0x74, 0x61, 0x67, 0x20, 0x63, 0x6F, 0x64, 0x65, 0x20, 0x65, 0x72, 0x72 - .byte 0x6F, 0x72, 0x20, 0x25, 0x30, 0x32, 0x78, 0x20, 0x25, 0x63, 0x20, 0x5B, 0x25, 0x73, 0x5D, 0x00 - .byte 0xBD, 0xBE, 0x2D, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, 0x00, 0x16, 0x00, 0x17, 0x00, 0x18, 0x00 - .byte 0x19, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x0E, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00 - .byte 0x32, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00 - .byte 0x5A, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x25, 0x64, 0x00, 0x00 - .byte 0x5B, 0x4D, 0x53, 0x3A, 0x25, 0x64, 0x5D, 0x25, 0x73, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x4B, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x4E, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x4B, 0x5D, 0x5B, 0x4D, 0x3A, 0x54, 0x31, 0x5D, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A, 0x59, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D - .byte 0x00, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A, 0x46, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D - .byte 0x00, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A, 0x4D, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D - .byte 0x00, 0x00, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x53, 0x33, 0x5D, 0x00, 0x00, 0x25, 0x73, 0x00, 0x00 - .byte 0x5B, 0x43, 0x53, 0x3A, 0x48, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00 - .byte 0x5B, 0x43, 0x53, 0x3A, 0x56, 0x5D, 0x25, 0x64, 0x5B, 0x43, 0x52, 0x5D, 0x46, 0x00, 0x00, 0x00 - .byte 0x42, 0x5B, 0x43, 0x53, 0x3A, 0x56, 0x5D, 0x25, 0x64, 0x5B, 0x43, 0x52, 0x5D, 0x46, 0x00, 0x00 - .byte 0x5B, 0x43, 0x53, 0x3A, 0x50, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00 - .byte 0x5B, 0x43, 0x53, 0x3A, 0x50, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x20, 0x20, 0x5B, 0x43 - .byte 0x53, 0x3A, 0x56, 0x5D, 0x25, 0x64, 0x5B, 0x43, 0x52, 0x5D, 0x46, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x50, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x20, 0x42, 0x5B, 0x43, 0x53, 0x3A, 0x56, 0x5D - .byte 0x25, 0x64, 0x5B, 0x43, 0x52, 0x5D, 0x46, 0x00, 0x5B, 0x43, 0x53, 0x3A, 0x58, 0x5D, 0x25, 0x73 - .byte 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x42, 0x41, 0x52, 0x5D, 0x00, 0x00, 0x00 - .byte 0x0A, 0x5B, 0x43, 0x4C, 0x55, 0x4D, 0x5F, 0x53, 0x45, 0x54, 0x3A, 0x31, 0x36, 0x5D, 0x25, 0x73 - .byte 0x5B, 0x43, 0x4C, 0x55, 0x4D, 0x5F, 0x53, 0x45, 0x54, 0x3A, 0x39, 0x36, 0x5D, 0x25, 0x73, 0x00 - .byte 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, 0x00, 0x05, 0x00, 0x06 - .byte 0x00, 0x07, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x0C, 0x00, 0x0D, 0x00, 0x0E - .byte 0x00, 0x0F, 0x00, 0x10, 0x00, 0x11, 0x00, 0x12, 0x00, 0x13, 0x00, 0x14, 0x00, 0x15, 0x00, 0x16 - .byte 0x00, 0x17, 0x00, 0x18, 0x00, 0x19, 0x00, 0x1A, 0x00, 0x1B, 0x00, 0x1C, 0x00, 0x1D, 0x00, 0x1E - .byte 0x00, 0x1F, 0x00, 0x20, 0x00, 0x01, 0x00, 0x0A, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36 - .byte 0x00, 0x37, 0x00, 0x06, 0x00, 0x38, 0x00, 0x39, 0x00, 0x3A, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x10 - .byte 0x00, 0x11, 0x00, 0x3D, 0x00, 0x5F, 0x00, 0x60, 0x00, 0x61, 0x00, 0x62, 0x00, 0x63, 0x00, 0x64 - .byte 0x00, 0x65, 0x00, 0x66, 0x00, 0x67, 0x00, 0x68, 0x00, 0x12, 0x00, 0x3F, 0x00, 0x52, 0x00, 0x54 - .byte 0x00, 0x55, 0x00, 0x0B, 0x00, 0x1A, 0x00, 0x69, 0x00, 0x79, 0x00, 0x7B, 0x00, 0x7F, 0x00, 0x83 - .byte 0x00, 0x8D, 0x00, 0x8F, 0x00, 0x91, 0x00, 0x93, 0x00, 0x9D, 0x00, 0x9F, 0x00, 0xA1, 0x00, 0xA3 - .byte 0x00, 0xA5, 0x00, 0xA9, 0x00, 0xB9, 0x00, 0xBB, 0x00, 0xBD, 0x00, 0xBF, 0x00, 0xC4, 0x00, 0xC8 - .byte 0x00, 0xD2, 0x00, 0xD4, 0x00, 0xD6, 0x00, 0xD8, 0x00, 0xDE, 0x00, 0x42, 0x00, 0x5B, 0x00, 0x43 - .byte 0x00, 0x44, 0x00, 0x45, 0x00, 0x46, 0x01, 0x69, 0x01, 0x79, 0x01, 0x7B, 0x01, 0x7F, 0x01, 0x83 - .byte 0x01, 0x8D, 0x01, 0x8F, 0x01, 0x91, 0x01, 0x93, 0x01, 0x9D, 0x01, 0x9F, 0x01, 0xA1, 0x01, 0xA3 - .byte 0x01, 0xA5, 0x01, 0xA9, 0x01, 0xB9, 0x01, 0xBB, 0x01, 0xBD, 0x01, 0xBF, 0x01, 0xC4, 0x01, 0xC8 - .byte 0x01, 0xD2, 0x01, 0xD4, 0x01, 0xD6, 0x01, 0xD8, 0x01, 0xDE, 0x00, 0x42, 0x00, 0x48, 0x00, 0x49 - .byte 0x00, 0x4A, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x05, 0x00, 0x17 - .byte 0x00, 0x0B, 0x00, 0x0C, 0x00, 0x0D, 0x00, 0x0E, 0x02, 0xBF, 0x00, 0x53, 0x00, 0xB0, 0x00, 0x0F - .byte 0x02, 0xDE, 0x00, 0x10, 0x00, 0x11, 0x00, 0x13, 0x00, 0x14, 0x00, 0x15, 0x00, 0x16, 0x00, 0x12 - .byte 0x00, 0x13, 0x00, 0x14, 0x00, 0x15, 0x00, 0x16, 0x03, 0xBF, 0x00, 0x18, 0x01, 0xB0, 0x00, 0x19 - .byte 0x03, 0xDE, 0x04, 0xD8, 0x00, 0x01, 0x00, 0x0C, 0x00, 0x58, 0x00, 0x59, 0x00, 0x5A, 0x00, 0x5C - .byte 0x00, 0x1B, 0x00, 0x5D, 0x00, 0x1C, 0x00, 0x1D, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x20, 0x00, 0x08 - .byte 0x00, 0x21, 0x00, 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, 0x00, 0x28 - .byte 0x00, 0x29, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, 0x00, 0x19 - .byte 0x00, 0x18, 0x00, 0x0D, 0x04, 0x69, 0x02, 0x69, 0x06, 0x69, 0x0A, 0x69, 0x08, 0x69, 0x0C, 0x69 - .byte 0x00, 0x6A, 0x02, 0x7B, 0x04, 0x83, 0x02, 0x83, 0x06, 0x83, 0x08, 0x83, 0x04, 0x93, 0x02, 0x93 - .byte 0x06, 0x93, 0x08, 0x93, 0x00, 0x80, 0x02, 0xA5, 0x04, 0xA9, 0x02, 0xA9, 0x06, 0xA9, 0x09, 0xA9 - .byte 0x07, 0xA9, 0x00, 0x56, 0x0B, 0xA9, 0x04, 0xC8, 0x06, 0xC8, 0x08, 0xC8, 0x0A, 0xC8, 0x02, 0xD8 - .byte 0x00, 0xC6, 0x00, 0xC3, 0x05, 0x69, 0x03, 0x69, 0x07, 0x69, 0x0B, 0x69, 0x09, 0x69, 0x0D, 0x69 - .byte 0x01, 0x6A, 0x03, 0x7B, 0x05, 0x83, 0x03, 0x83, 0x07, 0x83, 0x09, 0x83, 0x05, 0x93, 0x03, 0x93 - .byte 0x07, 0x93, 0x09, 0x93, 0x01, 0x80, 0x03, 0xA5, 0x05, 0xA9, 0x03, 0xA9, 0x07, 0xA9, 0x0A, 0xA9 - .byte 0x08, 0xA9, 0x00, 0x57, 0x0C, 0xA9, 0x05, 0xC8, 0x07, 0xC8, 0x09, 0xC8, 0x0B, 0xC8, 0x03, 0xD8 - .byte 0x01, 0xC6, 0x05, 0xD8, 0x20, 0x00, 0x20, 0x00, 0x21, 0x00, 0x21, 0x00, 0x22, 0x00, 0x22, 0x00 - .byte 0x23, 0x00, 0x23, 0x00, 0x24, 0x00, 0x24, 0x00, 0x25, 0x00, 0x25, 0x00, 0x26, 0x00, 0x26, 0x00 - .byte 0x27, 0x00, 0x27, 0x00, 0x28, 0x00, 0x28, 0x00, 0x29, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x2A, 0x00 - .byte 0x2B, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2E, 0x00 - .byte 0x2F, 0x00, 0x2F, 0x00, 0x30, 0x00, 0x30, 0x00, 0x31, 0x00, 0x31, 0x00, 0x32, 0x00, 0x32, 0x00 - .byte 0x33, 0x00, 0x33, 0x00, 0x34, 0x00, 0x34, 0x00, 0x35, 0x00, 0x35, 0x00, 0x36, 0x00, 0x36, 0x00 - .byte 0x37, 0x00, 0x37, 0x00, 0x38, 0x00, 0x38, 0x00, 0x39, 0x00, 0x39, 0x00, 0x3A, 0x00, 0x3A, 0x00 - .byte 0x3B, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3D, 0x00, 0x3E, 0x00, 0x3E, 0x00 - .byte 0x3F, 0x00, 0x3F, 0x00, 0x40, 0x00, 0x40, 0x00, 0x41, 0x00, 0x41, 0x00, 0x42, 0x00, 0x42, 0x00 - .byte 0x43, 0x00, 0x43, 0x00, 0x44, 0x00, 0x44, 0x00, 0x45, 0x00, 0x45, 0x00, 0x46, 0x00, 0x46, 0x00 - .byte 0x47, 0x00, 0x47, 0x00, 0x48, 0x00, 0x48, 0x00, 0x49, 0x00, 0x49, 0x00, 0x4A, 0x00, 0x4A, 0x00 - .byte 0x4B, 0x00, 0x4B, 0x00, 0x4C, 0x00, 0x4C, 0x00, 0x4D, 0x00, 0x4D, 0x00, 0x4E, 0x00, 0x4E, 0x00 - .byte 0x4F, 0x00, 0x4F, 0x00, 0x50, 0x00, 0x50, 0x00, 0x51, 0x00, 0x51, 0x00, 0x52, 0x00, 0x52, 0x00 - .byte 0x53, 0x00, 0x53, 0x00, 0x54, 0x00, 0x54, 0x00, 0x55, 0x00, 0x55, 0x00, 0x56, 0x00, 0x56, 0x00 - .byte 0x57, 0x00, 0x57, 0x00, 0x58, 0x00, 0x58, 0x00, 0x59, 0x00, 0x59, 0x00, 0x5A, 0x00, 0x5A, 0x00 - .byte 0x5B, 0x00, 0x5B, 0x00, 0xA5, 0x00, 0xA5, 0x00, 0x5D, 0x00, 0x5D, 0x00, 0x5E, 0x00, 0x5E, 0x00 - .byte 0x5F, 0x00, 0x5F, 0x00, 0x60, 0x00, 0x60, 0x00, 0x61, 0x00, 0x61, 0x00, 0x62, 0x00, 0x62, 0x00 - .byte 0x63, 0x00, 0x63, 0x00, 0x64, 0x00, 0x64, 0x00, 0x65, 0x00, 0x65, 0x00, 0x66, 0x00, 0x66, 0x00 - .byte 0x67, 0x00, 0x67, 0x00, 0x68, 0x00, 0x68, 0x00, 0x69, 0x00, 0x69, 0x00, 0x6A, 0x00, 0x6A, 0x00 - .byte 0x6B, 0x00, 0x6B, 0x00, 0x6C, 0x00, 0x6C, 0x00, 0x6D, 0x00, 0x6D, 0x00, 0x6E, 0x00, 0x6E, 0x00 - .byte 0x6F, 0x00, 0x6F, 0x00, 0x70, 0x00, 0x70, 0x00, 0x71, 0x00, 0x71, 0x00, 0x72, 0x00, 0x72, 0x00 - .byte 0x73, 0x00, 0x73, 0x00, 0x74, 0x00, 0x74, 0x00, 0x75, 0x00, 0x75, 0x00, 0x76, 0x00, 0x76, 0x00 - .byte 0x77, 0x00, 0x77, 0x00, 0x78, 0x00, 0x78, 0x00, 0x79, 0x00, 0x79, 0x00, 0x7A, 0x00, 0x7A, 0x00 - .byte 0x7B, 0x00, 0x7B, 0x00, 0x7C, 0x00, 0x7C, 0x00, 0x7D, 0x00, 0x7D, 0x00, 0x80, 0x00, 0x80, 0x00 - .byte 0x85, 0x00, 0x85, 0x00, 0x86, 0x00, 0x86, 0x00, 0x88, 0x00, 0x88, 0x00, 0x89, 0x00, 0x89, 0x00 - .byte 0x8A, 0x00, 0x8A, 0x00, 0x8B, 0x00, 0x8B, 0x00, 0x8C, 0x00, 0x8C, 0x00, 0x8D, 0x00, 0x8D, 0x00 - .byte 0x8E, 0x00, 0x8E, 0x00, 0x8F, 0x00, 0x8F, 0x00, 0x90, 0x00, 0x90, 0x00, 0x91, 0x00, 0x91, 0x00 - .byte 0x92, 0x00, 0x92, 0x00, 0x93, 0x00, 0x93, 0x00, 0x94, 0x00, 0x94, 0x00, 0x95, 0x00, 0x95, 0x00 - .byte 0x96, 0x00, 0x96, 0x00, 0x97, 0x00, 0x97, 0x00, 0x98, 0x00, 0x98, 0x00, 0x99, 0x00, 0x99, 0x00 - .byte 0x9A, 0x00, 0x9A, 0x00, 0x9B, 0x00, 0x9B, 0x00, 0x9C, 0x00, 0x9C, 0x00, 0x9D, 0x00, 0x9D, 0x00 - .byte 0x9E, 0x00, 0x9E, 0x00, 0x9F, 0x00, 0x9F, 0x00, 0xA0, 0x00, 0xA0, 0x00, 0xA1, 0x00, 0xA1, 0x00 - .byte 0xA2, 0x00, 0xA2, 0x00, 0xA3, 0x00, 0xA3, 0x00, 0xA4, 0x00, 0xA4, 0x00, 0xA5, 0x00, 0xA5, 0x00 - .byte 0xA6, 0x00, 0xA6, 0x00, 0xA7, 0x00, 0xA7, 0x00, 0xA8, 0x00, 0xA8, 0x00, 0xA9, 0x00, 0xA9, 0x00 - .byte 0xAA, 0x00, 0xAA, 0x00, 0xAB, 0x00, 0xAB, 0x00, 0xAC, 0x00, 0xAC, 0x00, 0xAD, 0x00, 0xAD, 0x00 - .byte 0xAE, 0x00, 0xAE, 0x00, 0xAF, 0x00, 0xAF, 0x00, 0xB0, 0x00, 0xB0, 0x00, 0xB1, 0x00, 0xB1, 0x00 - .byte 0xB2, 0x00, 0xB2, 0x00, 0xB3, 0x00, 0xB3, 0x00, 0xB4, 0x00, 0xB4, 0x00, 0xB5, 0x00, 0xB5, 0x00 - .byte 0xB6, 0x00, 0xB6, 0x00, 0xB7, 0x00, 0xB7, 0x00, 0xB8, 0x00, 0xB8, 0x00, 0xB9, 0x00, 0xB9, 0x00 - .byte 0xBA, 0x00, 0xBA, 0x00, 0xBB, 0x00, 0xBB, 0x00, 0xBC, 0x00, 0xBC, 0x00, 0xBD, 0x00, 0xBD, 0x00 - .byte 0xBE, 0x00, 0xBE, 0x00, 0xBF, 0x00, 0xBF, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC1, 0x00, 0xC1, 0x00 - .byte 0xC2, 0x00, 0xC2, 0x00, 0xC3, 0x00, 0xC3, 0x00, 0xC4, 0x00, 0xC4, 0x00, 0xC5, 0x00, 0xC5, 0x00 - .byte 0xC6, 0x00, 0xC6, 0x00, 0xC7, 0x00, 0xC7, 0x00, 0xC8, 0x00, 0xC8, 0x00, 0xC9, 0x00, 0xC9, 0x00 - .byte 0xCA, 0x00, 0xCA, 0x00, 0xCB, 0x00, 0xCB, 0x00, 0xCC, 0x00, 0xCC, 0x00, 0xCD, 0x00, 0xCD, 0x00 - .byte 0xCE, 0x00, 0xCE, 0x00, 0xCF, 0x00, 0xCF, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD1, 0x00, 0xD1, 0x00 - .byte 0xD2, 0x00, 0xD2, 0x00, 0xD3, 0x00, 0xD3, 0x00, 0xD4, 0x00, 0xD4, 0x00, 0xD5, 0x00, 0xD5, 0x00 - .byte 0xD6, 0x00, 0xD6, 0x00, 0xD7, 0x00, 0xD7, 0x00, 0xD8, 0x00, 0xD8, 0x00, 0xD9, 0x00, 0xD9, 0x00 - .byte 0xDA, 0x00, 0xDA, 0x00, 0xDB, 0x00, 0xDB, 0x00, 0xDC, 0x00, 0xDC, 0x00, 0xDD, 0x00, 0xDD, 0x00 - .byte 0xDE, 0x00, 0xDE, 0x00, 0xDF, 0x00, 0xDF, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE1, 0x00, 0xE1, 0x00 - .byte 0xE2, 0x00, 0xE2, 0x00, 0xE3, 0x00, 0xE3, 0x00, 0xE4, 0x00, 0xE4, 0x00, 0xE5, 0x00, 0xE5, 0x00 - .byte 0xE6, 0x00, 0xE6, 0x00, 0xE7, 0x00, 0xE7, 0x00, 0xE8, 0x00, 0xE8, 0x00, 0xE9, 0x00, 0xE9, 0x00 - .byte 0xEA, 0x00, 0xEA, 0x00, 0xEB, 0x00, 0xEB, 0x00, 0xEC, 0x00, 0xEC, 0x00, 0xED, 0x00, 0xED, 0x00 - .byte 0xEE, 0x00, 0xEE, 0x00, 0xEF, 0x00, 0xEF, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF1, 0x00, 0xF1, 0x00 - .byte 0xF2, 0x00, 0xF2, 0x00, 0xF3, 0x00, 0xF3, 0x00, 0xF4, 0x00, 0xF4, 0x00, 0xF5, 0x00, 0xF5, 0x00 - .byte 0xF6, 0x00, 0xF6, 0x00, 0xF7, 0x00, 0xF7, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0xF9, 0x00, 0xF9, 0x00 - .byte 0xFA, 0x00, 0xFA, 0x00, 0xFB, 0x00, 0xFB, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFD, 0x00, 0xFD, 0x00 - .byte 0xFE, 0x00, 0xFE, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x3E, 0x20, 0x3E, 0x20, 0xA8, 0x81, 0x92, 0x21 - .byte 0xF4, 0x81, 0x6A, 0x26, 0x20, 0x00, 0x20, 0x00, 0x21, 0x00, 0x21, 0x00, 0x22, 0x00, 0x22, 0x00 - .byte 0x23, 0x00, 0x23, 0x00, 0x24, 0x00, 0x24, 0x00, 0x25, 0x00, 0x25, 0x00, 0x26, 0x00, 0x26, 0x00 - .byte 0x27, 0x00, 0x27, 0x00, 0x28, 0x00, 0x28, 0x00, 0x29, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x2A, 0x00 - .byte 0x2B, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2E, 0x00 - .byte 0x2F, 0x00, 0x2F, 0x00, 0x30, 0x00, 0x30, 0x00, 0x31, 0x00, 0x31, 0x00, 0x32, 0x00, 0x32, 0x00 - .byte 0x33, 0x00, 0x33, 0x00, 0x34, 0x00, 0x34, 0x00, 0x35, 0x00, 0x35, 0x00, 0x36, 0x00, 0x36, 0x00 - .byte 0x37, 0x00, 0x37, 0x00, 0x38, 0x00, 0x38, 0x00, 0x39, 0x00, 0x39, 0x00, 0x3A, 0x00, 0x3A, 0x00 - .byte 0x3B, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3D, 0x00, 0x3E, 0x00, 0x3E, 0x00 - .byte 0x3F, 0x00, 0x3F, 0x00, 0x40, 0x00, 0x40, 0x00, 0x41, 0x00, 0x41, 0x00, 0x42, 0x00, 0x42, 0x00 - .byte 0x43, 0x00, 0x43, 0x00, 0x44, 0x00, 0x44, 0x00, 0x45, 0x00, 0x45, 0x00, 0x46, 0x00, 0x46, 0x00 - .byte 0x47, 0x00, 0x47, 0x00, 0x48, 0x00, 0x48, 0x00, 0x49, 0x00, 0x49, 0x00, 0x4A, 0x00, 0x4A, 0x00 - .byte 0x4B, 0x00, 0x4B, 0x00, 0x4C, 0x00, 0x4C, 0x00, 0x4D, 0x00, 0x4D, 0x00, 0x4E, 0x00, 0x4E, 0x00 - .byte 0x4F, 0x00, 0x4F, 0x00, 0x50, 0x00, 0x50, 0x00, 0x51, 0x00, 0x51, 0x00, 0x52, 0x00, 0x52, 0x00 - .byte 0x53, 0x00, 0x53, 0x00, 0x54, 0x00, 0x54, 0x00, 0x55, 0x00, 0x55, 0x00, 0x56, 0x00, 0x56, 0x00 - .byte 0x57, 0x00, 0x57, 0x00, 0x58, 0x00, 0x58, 0x00, 0x59, 0x00, 0x59, 0x00, 0x5A, 0x00, 0x5A, 0x00 - .byte 0x5B, 0x00, 0x3F, 0x00, 0x5C, 0x00, 0x5C, 0x00, 0x5E, 0x00, 0x5E, 0x00, 0x5F, 0x00, 0x5F, 0x00 - .byte 0x60, 0x00, 0x60, 0x00, 0x61, 0x00, 0x61, 0x00, 0x62, 0x00, 0x62, 0x00, 0x63, 0x00, 0x63, 0x00 - .byte 0x64, 0x00, 0x64, 0x00, 0x65, 0x00, 0x65, 0x00, 0x66, 0x00, 0x66, 0x00, 0x67, 0x00, 0x67, 0x00 - .byte 0x68, 0x00, 0x68, 0x00, 0x69, 0x00, 0x69, 0x00, 0x6A, 0x00, 0x6A, 0x00, 0x6B, 0x00, 0x6B, 0x00 - .byte 0x6C, 0x00, 0x6C, 0x00, 0x6D, 0x00, 0x6D, 0x00, 0x6E, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x6F, 0x00 - .byte 0x70, 0x00, 0x70, 0x00, 0x71, 0x00, 0x71, 0x00, 0x72, 0x00, 0x72, 0x00, 0x73, 0x00, 0x73, 0x00 - .byte 0x74, 0x00, 0x74, 0x00, 0x75, 0x00, 0x75, 0x00, 0x76, 0x00, 0x76, 0x00, 0x77, 0x00, 0x77, 0x00 - .byte 0x78, 0x00, 0x78, 0x00, 0x79, 0x00, 0x79, 0x00, 0x7A, 0x00, 0x7A, 0x00, 0x7B, 0x00, 0x7B, 0x00 - .byte 0x7C, 0x00, 0x7C, 0x00, 0x7D, 0x00, 0x7D, 0x00, 0x7E, 0x00, 0x3F, 0x00, 0xA1, 0x00, 0xA1, 0x00 - .byte 0xA2, 0x00, 0xA2, 0x00, 0xA3, 0x00, 0xA3, 0x00, 0xA8, 0x00, 0xA8, 0x00, 0xA9, 0x00, 0xA9, 0x00 - .byte 0xAE, 0x00, 0xAE, 0x00, 0xB0, 0x00, 0xB0, 0x00, 0xB1, 0x00, 0xB1, 0x00, 0xB4, 0x00, 0xB4, 0x00 - .byte 0xB7, 0x00, 0x8F, 0x00, 0xBF, 0x00, 0xBF, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC1, 0x00, 0xC1, 0x00 - .byte 0xC2, 0x00, 0xC2, 0x00, 0xC3, 0x00, 0xC3, 0x00, 0xC4, 0x00, 0xC4, 0x00, 0xC5, 0x00, 0xC5, 0x00 - .byte 0xC6, 0x00, 0xC6, 0x00, 0xC7, 0x00, 0xC7, 0x00, 0xC8, 0x00, 0xC8, 0x00, 0xC9, 0x00, 0xC9, 0x00 - .byte 0xCA, 0x00, 0xCA, 0x00, 0xCB, 0x00, 0xCB, 0x00, 0xCC, 0x00, 0xCC, 0x00, 0xCD, 0x00, 0xCD, 0x00 - .byte 0xCE, 0x00, 0xCE, 0x00, 0xCF, 0x00, 0xCF, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD1, 0x00, 0xD1, 0x00 - .byte 0xD2, 0x00, 0xD2, 0x00, 0xD3, 0x00, 0xD3, 0x00, 0xD4, 0x00, 0xD4, 0x00, 0xD5, 0x00, 0xD5, 0x00 - .byte 0xD6, 0x00, 0xD6, 0x00, 0xD7, 0x00, 0xD7, 0x00, 0xD8, 0x00, 0xD8, 0x00, 0xD9, 0x00, 0xD9, 0x00 - .byte 0xDA, 0x00, 0xDA, 0x00, 0xDB, 0x00, 0xDB, 0x00, 0xDC, 0x00, 0xDC, 0x00, 0xDD, 0x00, 0xDD, 0x00 - .byte 0xDF, 0x00, 0xDF, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0xE1, 0x00, 0xE1, 0x00, 0xE2, 0x00, 0xE2, 0x00 - .byte 0xE3, 0x00, 0xE3, 0x00, 0xE4, 0x00, 0xE4, 0x00, 0xE5, 0x00, 0xE5, 0x00, 0xE6, 0x00, 0xE6, 0x00 - .byte 0xE7, 0x00, 0xE7, 0x00, 0xE8, 0x00, 0xE8, 0x00, 0xE9, 0x00, 0xE9, 0x00, 0xEA, 0x00, 0xEA, 0x00 - .byte 0xEB, 0x00, 0xEB, 0x00, 0xEC, 0x00, 0xEC, 0x00, 0xED, 0x00, 0xED, 0x00, 0xEE, 0x00, 0xEE, 0x00 - .byte 0xEF, 0x00, 0xEF, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0xF1, 0x00, 0xF1, 0x00, 0xF2, 0x00, 0xF2, 0x00 - .byte 0xF3, 0x00, 0xF3, 0x00, 0xF4, 0x00, 0xF4, 0x00, 0xF5, 0x00, 0xF5, 0x00, 0xF6, 0x00, 0xF6, 0x00 - .byte 0xF7, 0x00, 0xF7, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0xF9, 0x00, 0xF9, 0x00, 0xFA, 0x00, 0xFA, 0x00 - .byte 0xFB, 0x00, 0xFB, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFD, 0x00, 0xFD, 0x00, 0x52, 0x01, 0x8C, 0x00 - .byte 0x53, 0x01, 0x89, 0x00, 0xC6, 0x02, 0x5E, 0x00, 0xDC, 0x02, 0x3F, 0x00, 0x10, 0x20, 0x2D, 0x00 - .byte 0x15, 0x20, 0x3F, 0x00, 0x18, 0x20, 0x91, 0x00, 0x19, 0x20, 0x92, 0x00, 0x1A, 0x20, 0x3F, 0x00 - .byte 0x1C, 0x20, 0x93, 0x00, 0x1D, 0x20, 0x94, 0x00, 0x1E, 0x20, 0x3F, 0x00, 0x22, 0x20, 0x8F, 0x00 - .byte 0x26, 0x20, 0x85, 0x00, 0x32, 0x20, 0xB4, 0x00, 0x33, 0x20, 0x22, 0x00, 0x3A, 0x20, 0x3E, 0x00 - .byte 0x3B, 0x20, 0x3F, 0x00, 0xAC, 0x20, 0x3F, 0x00, 0x22, 0x21, 0x99, 0x00, 0x90, 0x21, 0x3F, 0x00 - .byte 0x91, 0x21, 0x3F, 0x00, 0x92, 0x21, 0x3F, 0x00, 0x93, 0x21, 0x3F, 0x00, 0x1E, 0x22, 0x3F, 0x00 - .byte 0x34, 0x22, 0x3F, 0x00, 0xA0, 0x25, 0x3F, 0x00, 0xA1, 0x25, 0x3F, 0x00, 0xB2, 0x25, 0x3F, 0x00 - .byte 0xB3, 0x25, 0x3F, 0x00, 0xBC, 0x25, 0x3F, 0x00, 0xBD, 0x25, 0x3F, 0x00, 0xC6, 0x25, 0x3F, 0x00 - .byte 0xC7, 0x25, 0x3F, 0x00, 0xCB, 0x25, 0x3F, 0x00, 0xCE, 0x25, 0x3F, 0x00, 0xCF, 0x25, 0x3F, 0x00 - .byte 0x05, 0x26, 0x3F, 0x00, 0x06, 0x26, 0x3F, 0x00, 0x6A, 0x26, 0xF4, 0x81, 0x6D, 0x26, 0x3F, 0x00 - .byte 0x6F, 0x26, 0x23, 0x00, 0x00, 0x30, 0x20, 0x00, 0x01, 0x30, 0x3F, 0x00, 0x02, 0x30, 0x3F, 0x00 - .byte 0x05, 0x30, 0x3F, 0x00, 0x08, 0x30, 0x3C, 0x00, 0x09, 0x30, 0x3E, 0x00, 0x0C, 0x30, 0x3F, 0x00 - .byte 0x0D, 0x30, 0x3F, 0x00, 0x12, 0x30, 0x3F, 0x00, 0x14, 0x30, 0x3F, 0x00, 0x15, 0x30, 0x3F, 0x00 - .byte 0x41, 0x30, 0x3F, 0x00, 0x42, 0x30, 0x3F, 0x00, 0x43, 0x30, 0x3F, 0x00, 0x44, 0x30, 0x3F, 0x00 - .byte 0x45, 0x30, 0x3F, 0x00, 0x46, 0x30, 0x3F, 0x00, 0x47, 0x30, 0x3F, 0x00, 0x48, 0x30, 0x3F, 0x00 - .byte 0x49, 0x30, 0x3F, 0x00, 0x4A, 0x30, 0x3F, 0x00, 0x4B, 0x30, 0x3F, 0x00, 0x4C, 0x30, 0x3F, 0x00 - .byte 0x4D, 0x30, 0x3F, 0x00, 0x4E, 0x30, 0x3F, 0x00, 0x4F, 0x30, 0x3F, 0x00, 0x50, 0x30, 0x3F, 0x00 - .byte 0x51, 0x30, 0x3F, 0x00, 0x52, 0x30, 0x3F, 0x00, 0x53, 0x30, 0x3F, 0x00, 0x54, 0x30, 0x3F, 0x00 - .byte 0x55, 0x30, 0x3F, 0x00, 0x56, 0x30, 0x3F, 0x00, 0x57, 0x30, 0x3F, 0x00, 0x58, 0x30, 0x3F, 0x00 - .byte 0x59, 0x30, 0x3F, 0x00, 0x5A, 0x30, 0x3F, 0x00, 0x5B, 0x30, 0x3F, 0x00, 0x5C, 0x30, 0x3F, 0x00 - .byte 0x5D, 0x30, 0x3F, 0x00, 0x5E, 0x30, 0x3F, 0x00, 0x5F, 0x30, 0x3F, 0x00, 0x60, 0x30, 0x3F, 0x00 - .byte 0x61, 0x30, 0x3F, 0x00, 0x62, 0x30, 0x3F, 0x00, 0x63, 0x30, 0x3F, 0x00, 0x64, 0x30, 0x3F, 0x00 - .byte 0x65, 0x30, 0x3F, 0x00, 0x66, 0x30, 0x3F, 0x00, 0x67, 0x30, 0x3F, 0x00, 0x68, 0x30, 0x3F, 0x00 - .byte 0x69, 0x30, 0x3F, 0x00, 0x6A, 0x30, 0x3F, 0x00, 0x6B, 0x30, 0x3F, 0x00, 0x6C, 0x30, 0x3F, 0x00 - .byte 0x6D, 0x30, 0x3F, 0x00, 0x6E, 0x30, 0x3F, 0x00, 0x6F, 0x30, 0x3F, 0x00, 0x70, 0x30, 0x3F, 0x00 - .byte 0x71, 0x30, 0x3F, 0x00, 0x72, 0x30, 0x3F, 0x00, 0x73, 0x30, 0x3F, 0x00, 0x74, 0x30, 0x3F, 0x00 - .byte 0x75, 0x30, 0x3F, 0x00, 0x76, 0x30, 0x3F, 0x00, 0x77, 0x30, 0x3F, 0x00, 0x78, 0x30, 0x3F, 0x00 - .byte 0x79, 0x30, 0x3F, 0x00, 0x7A, 0x30, 0x3F, 0x00, 0x7B, 0x30, 0x3F, 0x00, 0x7C, 0x30, 0x3F, 0x00 - .byte 0x7D, 0x30, 0x3F, 0x00, 0x7E, 0x30, 0x3F, 0x00, 0x7F, 0x30, 0x3F, 0x00, 0x80, 0x30, 0x3F, 0x00 - .byte 0x81, 0x30, 0x3F, 0x00, 0x82, 0x30, 0x3F, 0x00, 0x83, 0x30, 0x3F, 0x00, 0x84, 0x30, 0x3F, 0x00 - .byte 0x85, 0x30, 0x3F, 0x00, 0x86, 0x30, 0x3F, 0x00, 0x87, 0x30, 0x3F, 0x00, 0x88, 0x30, 0x3F, 0x00 - .byte 0x89, 0x30, 0x3F, 0x00, 0x8A, 0x30, 0x3F, 0x00, 0x8B, 0x30, 0x3F, 0x00, 0x8C, 0x30, 0x3F, 0x00 - .byte 0x8D, 0x30, 0x3F, 0x00, 0x8E, 0x30, 0x3F, 0x00, 0x8F, 0x30, 0x3F, 0x00, 0x90, 0x30, 0x3F, 0x00 - .byte 0x91, 0x30, 0x3F, 0x00, 0x92, 0x30, 0x3F, 0x00, 0x93, 0x30, 0x3F, 0x00, 0x9B, 0x30, 0x3F, 0x00 - .byte 0x9C, 0x30, 0x3F, 0x00, 0x9D, 0x30, 0x3F, 0x00, 0x9E, 0x30, 0x3F, 0x00, 0xA1, 0x30, 0x3F, 0x00 - .byte 0xA2, 0x30, 0x3F, 0x00, 0xA3, 0x30, 0x3F, 0x00, 0xA4, 0x30, 0x3F, 0x00, 0xA5, 0x30, 0x3F, 0x00 - .byte 0xA6, 0x30, 0x3F, 0x00, 0xA7, 0x30, 0x3F, 0x00, 0xA8, 0x30, 0x3F, 0x00, 0xA9, 0x30, 0x3F, 0x00 - .byte 0xAA, 0x30, 0x3F, 0x00, 0xAB, 0x30, 0x3F, 0x00, 0xAC, 0x30, 0x3F, 0x00, 0xAD, 0x30, 0x3F, 0x00 - .byte 0xAE, 0x30, 0x3F, 0x00, 0xAF, 0x30, 0x3F, 0x00, 0xB0, 0x30, 0x3F, 0x00, 0xB1, 0x30, 0x3F, 0x00 - .byte 0xB2, 0x30, 0x3F, 0x00, 0xB3, 0x30, 0x3F, 0x00, 0xB4, 0x30, 0x3F, 0x00, 0xB5, 0x30, 0x3F, 0x00 - .byte 0xB6, 0x30, 0x3F, 0x00, 0xB7, 0x30, 0x3F, 0x00, 0xB8, 0x30, 0x3F, 0x00, 0xB9, 0x30, 0x3F, 0x00 - .byte 0xBA, 0x30, 0x3F, 0x00, 0xBB, 0x30, 0x3F, 0x00, 0xBC, 0x30, 0x3F, 0x00, 0xBD, 0x30, 0x3F, 0x00 - .byte 0xBE, 0x30, 0x3F, 0x00, 0xBF, 0x30, 0x3F, 0x00, 0xC0, 0x30, 0x3F, 0x00, 0xC1, 0x30, 0x3F, 0x00 - .byte 0xC2, 0x30, 0x3F, 0x00, 0xC3, 0x30, 0x3F, 0x00, 0xC4, 0x30, 0x3F, 0x00, 0xC5, 0x30, 0x3F, 0x00 - .byte 0xC6, 0x30, 0x3F, 0x00, 0xC7, 0x30, 0x3F, 0x00, 0xC8, 0x30, 0x3F, 0x00, 0xC9, 0x30, 0x3F, 0x00 - .byte 0xCA, 0x30, 0x3F, 0x00, 0xCB, 0x30, 0x3F, 0x00, 0xCC, 0x30, 0x3F, 0x00, 0xCD, 0x30, 0x3F, 0x00 - .byte 0xCE, 0x30, 0x3F, 0x00, 0xCF, 0x30, 0x3F, 0x00, 0xD0, 0x30, 0x3F, 0x00, 0xD1, 0x30, 0x3F, 0x00 - .byte 0xD2, 0x30, 0x3F, 0x00, 0xD3, 0x30, 0x3F, 0x00, 0xD4, 0x30, 0x3F, 0x00, 0xD5, 0x30, 0x3F, 0x00 - .byte 0xD6, 0x30, 0x3F, 0x00, 0xD7, 0x30, 0x3F, 0x00, 0xD8, 0x30, 0x3F, 0x00, 0xD9, 0x30, 0x3F, 0x00 - .byte 0xDA, 0x30, 0x3F, 0x00, 0xDB, 0x30, 0x3F, 0x00, 0xDC, 0x30, 0x3F, 0x00, 0xDD, 0x30, 0x3F, 0x00 - .byte 0xDE, 0x30, 0x3F, 0x00, 0xDF, 0x30, 0x3F, 0x00, 0xE0, 0x30, 0x3F, 0x00, 0xE1, 0x30, 0x3F, 0x00 - .byte 0xE2, 0x30, 0x3F, 0x00, 0xE3, 0x30, 0x3F, 0x00, 0xE4, 0x30, 0x3F, 0x00, 0xE5, 0x30, 0x3F, 0x00 - .byte 0xE6, 0x30, 0x3F, 0x00, 0xE7, 0x30, 0x3F, 0x00, 0xE8, 0x30, 0x3F, 0x00, 0xE9, 0x30, 0x3F, 0x00 - .byte 0xEA, 0x30, 0x3F, 0x00, 0xEB, 0x30, 0x3F, 0x00, 0xEC, 0x30, 0x3F, 0x00, 0xED, 0x30, 0x3F, 0x00 - .byte 0xEE, 0x30, 0x3F, 0x00, 0xEF, 0x30, 0x3F, 0x00, 0xF0, 0x30, 0x3F, 0x00, 0xF1, 0x30, 0x3F, 0x00 - .byte 0xF2, 0x30, 0x3F, 0x00, 0xF3, 0x30, 0x3F, 0x00, 0xF4, 0x30, 0x3F, 0x00, 0xF5, 0x30, 0x3F, 0x00 - .byte 0xF6, 0x30, 0x3F, 0x00, 0xFB, 0x30, 0x8F, 0x00, 0xFC, 0x30, 0x2D, 0x00, 0x00, 0xE0, 0x8F, 0x00 - .byte 0x01, 0xE0, 0x8F, 0x00, 0x02, 0xE0, 0x8F, 0x00, 0x03, 0xE0, 0x8F, 0x00, 0x04, 0xE0, 0x8F, 0x00 - .byte 0x05, 0xE0, 0x8F, 0x00, 0x06, 0xE0, 0x8F, 0x00, 0x07, 0xE0, 0x8F, 0x00, 0x08, 0xE0, 0x8F, 0x00 - .byte 0x09, 0xE0, 0x8F, 0x00, 0x0A, 0xE0, 0x8F, 0x00, 0x0B, 0xE0, 0x8F, 0x00, 0x0C, 0xE0, 0x8F, 0x00 - .byte 0x0D, 0xE0, 0x8F, 0x00, 0x0E, 0xE0, 0x8F, 0x00, 0x0F, 0xE0, 0x8F, 0x00, 0x10, 0xE0, 0x8F, 0x00 - .byte 0x11, 0xE0, 0x8F, 0x00, 0x12, 0xE0, 0x8F, 0x00, 0x13, 0xE0, 0x8F, 0x00, 0x15, 0xE0, 0x8F, 0x00 - .byte 0x16, 0xE0, 0x8F, 0x00, 0x17, 0xE0, 0x8F, 0x00, 0x18, 0xE0, 0x8F, 0x00, 0x19, 0xE0, 0x8F, 0x00 - .byte 0x1A, 0xE0, 0x8F, 0x00, 0x1B, 0xE0, 0x8F, 0x00, 0x1C, 0xE0, 0x8F, 0x00, 0x28, 0xE0, 0x8F, 0x00 - .byte 0x01, 0xFF, 0x21, 0x00, 0x06, 0xFF, 0x26, 0x00, 0x08, 0xFF, 0x28, 0x00, 0x09, 0xFF, 0x29, 0x00 - .byte 0x0B, 0xFF, 0x2B, 0x00, 0x0C, 0xFF, 0x2C, 0x00, 0x0D, 0xFF, 0x2D, 0x00, 0x0E, 0xFF, 0x2E, 0x00 - .byte 0x0F, 0xFF, 0x2F, 0x00, 0x1A, 0xFF, 0x3A, 0x00, 0x1B, 0xFF, 0x3B, 0x00, 0x1D, 0xFF, 0x3D, 0x00 - .byte 0x1F, 0xFF, 0x3F, 0x00, 0x3B, 0xFF, 0x3F, 0x00, 0x3C, 0xFF, 0x3F, 0x00, 0x3D, 0xFF, 0x3F, 0x00 - .byte 0x3E, 0xFF, 0x5E, 0x00, 0x3F, 0xFF, 0x5F, 0x00, 0x40, 0xFF, 0x60, 0x00, 0x5B, 0xFF, 0x7B, 0x00 - .byte 0x5C, 0xFF, 0x7C, 0x00, 0x5D, 0xFF, 0x7D, 0x00, 0x5E, 0xFF, 0x3F, 0x00, 0xE3, 0xFF, 0xAF, 0x00 - .byte 0x2F, 0x4D, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x2F, 0x74, 0x65, 0x78, 0x74, 0x5F, 0x65, 0x2E - .byte 0x73, 0x74, 0x72, 0x00, 0x2F, 0x4D, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x2F, 0x74, 0x65, 0x78 - .byte 0x74, 0x5F, 0x6A, 0x2E, 0x73, 0x74, 0x72, 0x00, 0x2F, 0x4D, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45 - .byte 0x2F, 0x74, 0x62, 0x6C, 0x5F, 0x74, 0x61, 0x6C, 0x6B, 0x2E, 0x74, 0x6C, 0x6B, 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 0x04, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0xA1, 0x81, 0x0A, 0x00, 0xFF, 0x03, 0xFF, 0x03, 0xFF, 0x03, 0xFF, 0x03, 0xFF, 0x03, 0xFF, 0x03 - .byte 0xFF, 0x03, 0xFF, 0x03, 0xFF, 0x03, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x73, 0x74, 0x61, 0x66 - .byte 0x66, 0x6F, 0x6E, 0x74, 0x2E, 0x64, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x73, 0x74, 0x61, 0x66 - .byte 0x66, 0x6F, 0x6E, 0x74, 0x2E, 0x70, 0x61, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0D, 0x00, 0x00, 0x00, 0xE8, 0x5E, 0x02, 0x02, 0x10, 0x5F, 0x02, 0x02, 0xE0, 0x5F, 0x02, 0x02 - .byte 0x10, 0x60, 0x02, 0x02, 0xF0, 0x5F, 0x02, 0x02, 0x00, 0x60, 0x02, 0x02, 0x20, 0x60, 0x02, 0x02 - .byte 0x38, 0x60, 0x02, 0x02, 0x4C, 0x65, 0x02, 0x02, 0x94, 0x65, 0x02, 0x02, 0x48, 0x60, 0x02, 0x02 - .byte 0x60, 0x60, 0x02, 0x02, 0x70, 0x60, 0x02, 0x02, 0xB4, 0x60, 0x02, 0x02, 0xC4, 0x60, 0x02, 0x02 - .byte 0x2F, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x6B, 0x61, 0x6E, 0x6A, 0x69, 0x5F, 0x72, 0x64, 0x2E, 0x64 - .byte 0x61, 0x74, 0x00, 0x00, 0x2F, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x75, 0x6E, 0x6B, 0x6E, 0x6F, 0x5F - .byte 0x72, 0x64, 0x2E, 0x64, 0x61, 0x74, 0x00, 0x00, 0x2F, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x6D, 0x61 - .byte 0x72, 0x6B, 0x66, 0x6F, 0x6E, 0x74, 0x2E, 0x64, 0x61, 0x74, 0x00, 0x00, 0x2F, 0x46, 0x4F, 0x4E - .byte 0x54, 0x2F, 0x25, 0x73, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x6D, 0x61 - .byte 0x72, 0x6B, 0x66, 0x6F, 0x6E, 0x74, 0x2E, 0x70, 0x61, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF - .byte 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0xFF, 0x06, 0x00 - .byte 0xFF, 0xFF, 0x02, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xFF, 0x00 - .byte 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00 - .byte 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, 0x30, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00 - .byte 0x40, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, 0x58, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00 - .byte 0x70, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x10, 0x20, 0x30, 0x00, 0x01, 0x02, 0x03 - .byte 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x66, 0x72, 0x61, 0x6D, 0x65, 0x33, 0x2E, 0x77, 0x74, 0x65, 0x00 - .byte 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x66, 0x72, 0x61, 0x6D, 0x65, 0x34, 0x2E, 0x77, 0x74, 0x65, 0x00 - .byte 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x66, 0x72, 0x61, 0x6D, 0x65, 0x30, 0x2E, 0x77, 0x74, 0x65, 0x00 - .byte 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x66, 0x72, 0x61, 0x6D, 0x65, 0x31, 0x2E, 0x77, 0x74, 0x65, 0x00 - .byte 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x66, 0x72, 0x61, 0x6D, 0x65, 0x32, 0x2E, 0x77, 0x74, 0x65, 0x00 - .byte 0x2F, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x66, 0x72, 0x61, 0x6D, 0x65, 0x5F, 0x62, 0x33, 0x2E, 0x63 - .byte 0x68, 0x72, 0x00, 0x00, 0x2F, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x66, 0x72, 0x61, 0x6D, 0x65, 0x5F - .byte 0x62, 0x33, 0x2E, 0x70, 0x61, 0x6C, 0x00, 0x00, 0x2F, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x66, 0x72 - .byte 0x61, 0x6D, 0x65, 0x5F, 0x62, 0x34, 0x2E, 0x63, 0x68, 0x72, 0x00, 0x00, 0x2F, 0x46, 0x4F, 0x4E - .byte 0x54, 0x2F, 0x66, 0x72, 0x61, 0x6D, 0x65, 0x5F, 0x62, 0x34, 0x2E, 0x70, 0x61, 0x6C, 0x00, 0x00 - .byte 0x2F, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x66, 0x72, 0x61, 0x6D, 0x65, 0x5F, 0x62, 0x30, 0x2E, 0x70 - .byte 0x61, 0x6C, 0x00, 0x00, 0x2F, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x66, 0x72, 0x61, 0x6D, 0x65, 0x5F - .byte 0x62, 0x31, 0x2E, 0x63, 0x68, 0x72, 0x00, 0x00, 0x2F, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x66, 0x72 - .byte 0x61, 0x6D, 0x65, 0x5F, 0x62, 0x31, 0x2E, 0x70, 0x61, 0x6C, 0x00, 0x00, 0x2F, 0x46, 0x4F, 0x4E - .byte 0x54, 0x2F, 0x66, 0x72, 0x61, 0x6D, 0x65, 0x5F, 0x62, 0x32, 0x2E, 0x63, 0x68, 0x72, 0x00, 0x00 - .byte 0x2F, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x66, 0x72, 0x61, 0x6D, 0x65, 0x5F, 0x62, 0x32, 0x2E, 0x70 - .byte 0x61, 0x6C, 0x00, 0x00, 0x2F, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x66, 0x72, 0x61, 0x6D, 0x65, 0x5F - .byte 0x62, 0x30, 0x2E, 0x63, 0x68, 0x72, 0x00, 0x00, 0x2F, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x6D, 0x61 - .byte 0x72, 0x6B, 0x66, 0x6F, 0x6E, 0x74, 0x2E, 0x70, 0x61, 0x6C, 0x00, 0x00, 0x2F, 0x46, 0x4F, 0x4E - .byte 0x54, 0x2F, 0x74, 0x65, 0x78, 0x74, 0x5F, 0x70, 0x61, 0x6C, 0x2E, 0x70, 0x61, 0x6C, 0x00, 0x00 - .byte 0x72, 0x6F, 0x6D, 0x30, 0x3A, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x63, 0x75, 0x72, 0x73, 0x6F, 0x72 - .byte 0x2E, 0x77, 0x61, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6F, 0x6D, 0x30, 0x3A, 0x46, 0x4F, 0x4E - .byte 0x54, 0x2F, 0x63, 0x75, 0x72, 0x73, 0x6F, 0x72, 0x31, 0x36, 0x2E, 0x77, 0x61, 0x6E, 0x00, 0x00 - .byte 0x72, 0x6F, 0x6D, 0x30, 0x3A, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x61, 0x6C, 0x65, 0x72, 0x74, 0x2E - .byte 0x77, 0x61, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x00, 0xF7, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x00, 0xF8, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x63, 0x6C, 0x72, 0x6D, 0x61, 0x72, 0x6B - .byte 0x31, 0x2E, 0x77, 0x31, 0x36, 0x00, 0x00, 0x00, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x63, 0x6C, 0x72 - .byte 0x6D, 0x61, 0x72, 0x6B, 0x32, 0x2E, 0x77, 0x31, 0x36, 0x00, 0x00, 0x00, 0x46, 0x4F, 0x4E, 0x54 - .byte 0x2F, 0x72, 0x61, 0x6E, 0x6B, 0x6D, 0x61, 0x72, 0x6B, 0x2E, 0x77, 0x31, 0x36, 0x00, 0x00, 0x00 - .byte 0xFC, 0xAB, 0x02, 0x02, 0x1E, 0x0F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0xC8, 0xB5, 0x02, 0x02, 0x1E, 0x0F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x64, 0xBD, 0x02, 0x02, 0x1E, 0x0F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x08, 0xC8, 0x02, 0x02, 0x1E, 0x0F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x18, 0xD6, 0x02, 0x02, 0x1E, 0x0F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x5B, 0x64, 0x69, 0x67, 0x69, 0x74, 0x73, 0x3A, 0x30, 0x5D, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x42 - .byte 0x32, 0x37, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42, 0x31, 0x34, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42 - .byte 0x32, 0x38, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42, 0x31, 0x35, 0x5D, 0x00, 0x98, 0xDF, 0x02, 0x02 - .byte 0x1E, 0x0F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xE7, 0x02, 0x02 - .byte 0x02, 0x02, 0x1C, 0x14, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xF4, 0x02, 0x02 - .byte 0x02, 0x11, 0x1C, 0x05, 0x00, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0xF7, 0x02, 0x02 - .byte 0x01, 0x0A, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0xFA, 0x02, 0x02 - .byte 0x01, 0x10, 0x1E, 0x06, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xFD, 0x02, 0x02 - .byte 0x1E, 0x0F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x61, 0x72, 0x65 - .byte 0x61, 0x3A, 0x30, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFF, 0x02, 0x02, 0x02, 0x02, 0x1C, 0x14 - .byte 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x74, 0x02, 0x03, 0x02, 0x02, 0x11, 0x1C, 0x05, 0x00, 0xFD, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xE8, 0x0A, 0x03, 0x02, 0x1E, 0x0F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x3C, 0x12, 0x03, 0x02, 0x1E, 0x0F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x28, 0x5B, 0x64, 0x69, 0x67, 0x69, 0x74, 0x73, 0x3A, 0x30, 0x5D, 0x2F - .byte 0x5B, 0x64, 0x69, 0x67, 0x69, 0x74, 0x73, 0x3A, 0x31, 0x5D, 0x29, 0x00, 0x5B, 0x4D, 0x3A, 0x42 - .byte 0x33, 0x31, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42, 0x31, 0x38, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42 - .byte 0x33, 0x32, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42, 0x31, 0x39, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42 - .byte 0x32, 0x39, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42, 0x31, 0x36, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42 - .byte 0x33, 0x30, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42, 0x31, 0x37, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42 - .byte 0x32, 0x37, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42, 0x31, 0x34, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42 - .byte 0x32, 0x38, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42, 0x31, 0x35, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42 - .byte 0x32, 0x35, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42, 0x31, 0x32, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42 - .byte 0x32, 0x36, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42, 0x31, 0x33, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42 - .byte 0x32, 0x34, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42, 0x31, 0x31, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42 - .byte 0x32, 0x32, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42, 0x39, 0x5D, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x42 - .byte 0x32, 0x33, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x42, 0x31, 0x30, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0xD4, 0x50, 0x03, 0x02, 0x54, 0x51, 0x03, 0x02, 0xDC, 0x51, 0x03, 0x02, 0x97, 0x01, 0x98, 0x01 - .byte 0x00, 0x00, 0x94, 0x01, 0x95, 0x01, 0x00, 0x00, 0x9A, 0x01, 0x9B, 0x01, 0x00, 0x00, 0x9D, 0x01 - .byte 0x9E, 0x01, 0x00, 0x00, 0xA0, 0x01, 0xA1, 0x01, 0x00, 0x00, 0xA3, 0x01, 0xA4, 0x01, 0x00, 0x00 - .byte 0x86, 0x01, 0x87, 0x01, 0x88, 0x01, 0x00, 0x00, 0x90, 0x01, 0x91, 0x01, 0x92, 0x01, 0x00, 0x00 - .byte 0x8A, 0x01, 0x8B, 0x01, 0x8C, 0x01, 0x8D, 0x01, 0x8E, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x02, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x40, 0x56, 0x03, 0x02, 0x68, 0x57, 0x03, 0x02, 0xF0, 0x57, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x68, 0x57, 0x03, 0x02, 0xF0, 0x57, 0x03, 0x02, 0xA6, 0x01, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xA7, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xB0, 0x09, 0x02 - .byte 0x89, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xB0, 0x09, 0x02, 0x8F, 0x01, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xD8, 0xB0, 0x09, 0x02, 0x93, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0xB2, 0xB0, 0x09, 0x02, 0x96, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0xB0, 0x09, 0x02 - .byte 0x99, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB8, 0xB0, 0x09, 0x02, 0x9C, 0x01, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xBE, 0xB0, 0x09, 0x02, 0x9F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0xC4, 0xB0, 0x09, 0x02, 0xA2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCA, 0xB0, 0x09, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0x01, 0xAB, 0x01 - .byte 0xAC, 0x01, 0xAD, 0x01, 0xAE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0xB0, 0x5D, 0x03, 0x02, 0x38, 0x5E, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00 - .byte 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0xA7, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0xA9, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0xB1, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00 - .byte 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x63, 0x03, 0x02 - .byte 0x3C, 0x64, 0x03, 0x02, 0x78, 0x64, 0x03, 0x02, 0x67, 0x3C, 0x68, 0x3C, 0x69, 0x3C, 0x6A, 0x3C - .byte 0x6B, 0x3C, 0x6C, 0x3C, 0x6D, 0x3C, 0x6E, 0x3C, 0x6F, 0x3C, 0x70, 0x3C, 0x71, 0x3C, 0x72, 0x3C - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x65, 0x03, 0x02, 0x84, 0x66, 0x03, 0x02 - .byte 0xC0, 0x66, 0x03, 0x02, 0x74, 0x3C, 0x75, 0x3C, 0x76, 0x3C, 0x77, 0x3C, 0x78, 0x3C, 0x79, 0x3C - .byte 0x7A, 0x3C, 0x7B, 0x3C, 0x7C, 0x3C, 0x7D, 0x3C, 0x7E, 0x3C, 0x7F, 0x3C, 0x80, 0x3C, 0x81, 0x3C - .byte 0x82, 0x3C, 0x83, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x17, 0x19, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF - .byte 0xA8, 0xB2, 0x09, 0x02, 0xB0, 0xB2, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x4C, 0x7C, 0x03, 0x02, 0x78, 0x77, 0x03, 0x02, 0x5B, 0x43, 0x53, 0x3A, 0x44, 0x5D, 0x00, 0x00 - .byte 0x5B, 0x43, 0x53, 0x3A, 0x43, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x11, 0x12 - .byte 0x12, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x58, 0x08, 0x08, 0x08, 0x08, 0x58, 0x00, 0x00 - .byte 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x0C, 0x1E, 0x0A, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x04, 0x02, 0x18, 0x05, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x02, 0x1E, 0x08, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x06, 0x1E, 0x08, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x02, 0x1C, 0x14, 0x01, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x12, 0x00 - .byte 0x13, 0x00, 0x12, 0x00, 0x20, 0x00, 0x12, 0x00, 0x2D, 0x00, 0x12, 0x00, 0x3A, 0x00, 0x12, 0x00 - .byte 0x4B, 0x00, 0x14, 0x00, 0x58, 0x00, 0x14, 0x00, 0x65, 0x00, 0x14, 0x00, 0x72, 0x00, 0x14, 0x00 - .byte 0x7F, 0x00, 0x14, 0x00, 0x8C, 0x00, 0x14, 0x00, 0x99, 0x00, 0x14, 0x00, 0xAA, 0x00, 0x12, 0x00 - .byte 0xB7, 0x00, 0x12, 0x00, 0xC4, 0x00, 0x12, 0x00, 0xD1, 0x00, 0x12, 0x00, 0xDE, 0x00, 0x12, 0x00 - .byte 0x06, 0x00, 0x24, 0x00, 0x13, 0x00, 0x24, 0x00, 0x20, 0x00, 0x24, 0x00, 0x2D, 0x00, 0x24, 0x00 - .byte 0x3A, 0x00, 0x24, 0x00, 0x4B, 0x00, 0x26, 0x00, 0x58, 0x00, 0x26, 0x00, 0x65, 0x00, 0x26, 0x00 - .byte 0x72, 0x00, 0x26, 0x00, 0x7F, 0x00, 0x26, 0x00, 0x8C, 0x00, 0x26, 0x00, 0x99, 0x00, 0x26, 0x00 - .byte 0xAA, 0x00, 0x24, 0x00, 0xB7, 0x00, 0x24, 0x00, 0xC4, 0x00, 0x24, 0x00, 0xD1, 0x00, 0x24, 0x00 - .byte 0xDE, 0x00, 0x24, 0x00, 0x03, 0x00, 0x0F, 0x00, 0x10, 0x00, 0x0F, 0x00, 0x1D, 0x00, 0x0F, 0x00 - .byte 0x2A, 0x00, 0x0F, 0x00, 0x37, 0x00, 0x0F, 0x00, 0x44, 0x00, 0x0F, 0x00, 0x51, 0x00, 0x11, 0x00 - .byte 0x5E, 0x00, 0x11, 0x00, 0x6B, 0x00, 0x11, 0x00, 0x78, 0x00, 0x11, 0x00, 0x85, 0x00, 0x11, 0x00 - .byte 0x92, 0x00, 0x11, 0x00, 0x9F, 0x00, 0x0F, 0x00, 0xAC, 0x00, 0x0F, 0x00, 0xB9, 0x00, 0x0F, 0x00 - .byte 0xC6, 0x00, 0x0F, 0x00, 0xD3, 0x00, 0x0F, 0x00, 0xE0, 0x00, 0x0F, 0x00, 0x03, 0x00, 0x1E, 0x00 - .byte 0x10, 0x00, 0x1E, 0x00, 0x1D, 0x00, 0x1E, 0x00, 0x2A, 0x00, 0x1E, 0x00, 0x37, 0x00, 0x1E, 0x00 - .byte 0x44, 0x00, 0x1E, 0x00, 0x51, 0x00, 0x20, 0x00, 0x5E, 0x00, 0x20, 0x00, 0x6B, 0x00, 0x20, 0x00 - .byte 0x78, 0x00, 0x20, 0x00, 0x85, 0x00, 0x20, 0x00, 0x92, 0x00, 0x20, 0x00, 0x9F, 0x00, 0x1E, 0x00 - .byte 0xAC, 0x00, 0x1E, 0x00, 0xB9, 0x00, 0x1E, 0x00, 0xC6, 0x00, 0x1E, 0x00, 0xD3, 0x00, 0x1E, 0x00 - .byte 0xE0, 0x00, 0x1E, 0x00, 0x03, 0x00, 0x2D, 0x00, 0x10, 0x00, 0x2D, 0x00, 0x1D, 0x00, 0x2D, 0x00 - .byte 0x2A, 0x00, 0x2D, 0x00, 0x37, 0x00, 0x2D, 0x00, 0x44, 0x00, 0x2D, 0x00, 0x51, 0x00, 0x2F, 0x00 - .byte 0x5E, 0x00, 0x2F, 0x00, 0x6B, 0x00, 0x2F, 0x00, 0x78, 0x00, 0x2F, 0x00, 0x85, 0x00, 0x2F, 0x00 - .byte 0x92, 0x00, 0x2F, 0x00, 0x9F, 0x00, 0x2D, 0x00, 0xAC, 0x00, 0x2D, 0x00, 0xB9, 0x00, 0x2D, 0x00 - .byte 0xC6, 0x00, 0x2D, 0x00, 0xD3, 0x00, 0x2D, 0x00, 0xE0, 0x00, 0x2D, 0x00, 0x70, 0x72, 0x6F, 0x63 - .byte 0x20, 0x63, 0x68, 0x61, 0x6E, 0x67, 0x65, 0x20, 0x25, 0x33, 0x64, 0x20, 0x2D, 0x3E, 0x20, 0x25 - .byte 0x33, 0x64, 0x0A, 0x00, 0x5B, 0x4D, 0x3A, 0x54, 0x33, 0x5D, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x42, 0x5D, 0x25, 0x63, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x54, 0x32, 0x5D, 0x00, 0x00 - .byte 0x25, 0x63, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A, 0x57, 0x5D, 0x25, 0x63, 0x5B, 0x43, 0x52, 0x5D - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x11, 0x1C, 0x05, 0x00, 0xFE, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xA9, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0x02, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x43, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x58, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x04, 0x03, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00, 0x10, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x1D, 0x00, 0x00, 0x10, 0x01, 0x05, 0x04, 0x51, 0x09, 0x04, 0x2A - .byte 0x03, 0x00, 0x09, 0x01, 0x03, 0x05, 0x52, 0x0A, 0x04, 0x37, 0x03, 0x00, 0x07, 0x01, 0x04, 0x03 - .byte 0x11, 0x0B, 0x04, 0x44, 0x03, 0x00, 0x08, 0x01, 0x0B, 0x07, 0x4E, 0x0C, 0x2A, 0x03, 0x00, 0x00 - .byte 0x61, 0x00, 0x06, 0x08, 0x4F, 0x0D, 0x2A, 0x10, 0x00, 0x00, 0x6E, 0x00, 0x07, 0x09, 0x50, 0x0E - .byte 0x2A, 0x1D, 0x00, 0x00, 0x41, 0x00, 0x08, 0x0A, 0x03, 0x0F, 0x2A, 0x2A, 0x00, 0x00, 0x4E, 0x00 - .byte 0x09, 0x0B, 0x04, 0x10, 0x2A, 0x37, 0x00, 0x00, 0x30, 0x00, 0x0A, 0x06, 0x05, 0x11, 0x2A, 0x44 - .byte 0x00, 0x00, 0x2D, 0x00, 0x11, 0x0D, 0x06, 0x12, 0x39, 0x03, 0x00, 0x00, 0x62, 0x00, 0x0C, 0x0E - .byte 0x07, 0x13, 0x39, 0x10, 0x00, 0x00, 0x6F, 0x00, 0x0D, 0x0F, 0x08, 0x14, 0x39, 0x1D, 0x00, 0x00 - .byte 0x42, 0x00, 0x0E, 0x10, 0x09, 0x15, 0x39, 0x2A, 0x00, 0x00, 0x4F, 0x00, 0x0F, 0x11, 0x0A, 0x16 - .byte 0x39, 0x37, 0x00, 0x00, 0x31, 0x00, 0x10, 0x0C, 0x0B, 0x05, 0x39, 0x44, 0x00, 0x00, 0x5F, 0x00 - .byte 0x16, 0x13, 0x0C, 0x18, 0x48, 0x03, 0x00, 0x00, 0x63, 0x00, 0x12, 0x14, 0x0D, 0x19, 0x48, 0x10 - .byte 0x00, 0x00, 0x70, 0x00, 0x13, 0x15, 0x0E, 0x1A, 0x48, 0x1D, 0x00, 0x00, 0x43, 0x00, 0x14, 0x16 - .byte 0x0F, 0x1B, 0x48, 0x2A, 0x00, 0x00, 0x50, 0x00, 0x15, 0x12, 0x10, 0x1C, 0x48, 0x37, 0x00, 0x00 - .byte 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x44, 0x00, 0x00, 0x10, 0x01, 0x1C, 0x19, 0x12, 0x1E - .byte 0x57, 0x03, 0x00, 0x00, 0x64, 0x00, 0x18, 0x1A, 0x13, 0x1F, 0x57, 0x10, 0x00, 0x00, 0x71, 0x00 - .byte 0x19, 0x1B, 0x14, 0x20, 0x57, 0x1D, 0x00, 0x00, 0x44, 0x00, 0x1A, 0x1C, 0x15, 0x21, 0x57, 0x2A - .byte 0x00, 0x00, 0x51, 0x00, 0x1B, 0x18, 0x16, 0x22, 0x57, 0x37, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x57, 0x44, 0x00, 0x00, 0x10, 0x01, 0x22, 0x1F, 0x18, 0x24, 0x66, 0x03, 0x00, 0x00 - .byte 0x65, 0x00, 0x1E, 0x20, 0x19, 0x25, 0x66, 0x10, 0x00, 0x00, 0x72, 0x00, 0x1F, 0x21, 0x1A, 0x26 - .byte 0x66, 0x1D, 0x00, 0x00, 0x45, 0x00, 0x20, 0x22, 0x1B, 0x27, 0x66, 0x2A, 0x00, 0x00, 0x52, 0x00 - .byte 0x21, 0x1E, 0x1C, 0x28, 0x66, 0x37, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x44 - .byte 0x00, 0x00, 0x10, 0x01, 0x28, 0x25, 0x1E, 0x2A, 0x75, 0x03, 0x00, 0x00, 0x66, 0x00, 0x24, 0x26 - .byte 0x1F, 0x2B, 0x75, 0x10, 0x00, 0x00, 0x73, 0x00, 0x25, 0x27, 0x20, 0x2C, 0x75, 0x1D, 0x00, 0x00 - .byte 0x46, 0x00, 0x26, 0x28, 0x21, 0x2D, 0x75, 0x2A, 0x00, 0x00, 0x53, 0x00, 0x27, 0x24, 0x22, 0x2E - .byte 0x75, 0x37, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x44, 0x00, 0x00, 0x10, 0x01 - .byte 0x2E, 0x2B, 0x24, 0x30, 0x84, 0x03, 0x00, 0x00, 0x67, 0x00, 0x2A, 0x2C, 0x25, 0x31, 0x84, 0x10 - .byte 0x00, 0x00, 0x74, 0x00, 0x2B, 0x2D, 0x26, 0x32, 0x84, 0x1D, 0x00, 0x00, 0x47, 0x00, 0x2C, 0x2E - .byte 0x27, 0x33, 0x84, 0x2A, 0x00, 0x00, 0x54, 0x00, 0x2D, 0x2A, 0x28, 0x34, 0x84, 0x37, 0x00, 0x00 - .byte 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x44, 0x00, 0x00, 0x10, 0x01, 0x34, 0x31, 0x2A, 0x36 - .byte 0x93, 0x03, 0x00, 0x00, 0x68, 0x00, 0x30, 0x32, 0x2B, 0x37, 0x93, 0x10, 0x00, 0x00, 0x75, 0x00 - .byte 0x31, 0x33, 0x2C, 0x38, 0x93, 0x1D, 0x00, 0x00, 0x48, 0x00, 0x32, 0x34, 0x2D, 0x39, 0x93, 0x2A - .byte 0x00, 0x00, 0x55, 0x00, 0x33, 0x30, 0x2E, 0x3A, 0x93, 0x37, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x93, 0x44, 0x00, 0x00, 0x10, 0x01, 0x3A, 0x37, 0x30, 0x3C, 0xA2, 0x03, 0x00, 0x00 - .byte 0x69, 0x00, 0x36, 0x38, 0x31, 0x3D, 0xA2, 0x10, 0x00, 0x00, 0x76, 0x00, 0x37, 0x39, 0x32, 0x3E - .byte 0xA2, 0x1D, 0x00, 0x00, 0x49, 0x00, 0x38, 0x3A, 0x33, 0x3F, 0xA2, 0x2A, 0x00, 0x00, 0x56, 0x00 - .byte 0x39, 0x36, 0x34, 0x40, 0xA2, 0x37, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x44 - .byte 0x00, 0x00, 0x10, 0x01, 0x40, 0x3D, 0x36, 0x42, 0xB1, 0x03, 0x00, 0x00, 0x6A, 0x00, 0x3C, 0x3E - .byte 0x37, 0x43, 0xB1, 0x10, 0x00, 0x00, 0x77, 0x00, 0x3D, 0x3F, 0x38, 0x44, 0xB1, 0x1D, 0x00, 0x00 - .byte 0x4A, 0x00, 0x3E, 0x40, 0x39, 0x45, 0xB1, 0x2A, 0x00, 0x00, 0x57, 0x00, 0x3F, 0x3C, 0x3A, 0x46 - .byte 0xB1, 0x37, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, 0x44, 0x00, 0x00, 0x10, 0x01 - .byte 0x46, 0x43, 0x3C, 0x48, 0xC0, 0x03, 0x00, 0x00, 0x6B, 0x00, 0x42, 0x44, 0x3D, 0x49, 0xC0, 0x10 - .byte 0x00, 0x00, 0x78, 0x00, 0x43, 0x45, 0x3E, 0x4A, 0xC0, 0x1D, 0x00, 0x00, 0x4B, 0x00, 0x44, 0x46 - .byte 0x3F, 0x4B, 0xC0, 0x2A, 0x00, 0x00, 0x58, 0x00, 0x45, 0x42, 0x40, 0x4C, 0xC0, 0x37, 0x00, 0x00 - .byte 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x44, 0x00, 0x00, 0x10, 0x01, 0x4C, 0x49, 0x42, 0x4E - .byte 0xCF, 0x03, 0x00, 0x00, 0x6C, 0x00, 0x48, 0x4A, 0x43, 0x4F, 0xCF, 0x10, 0x00, 0x00, 0x79, 0x00 - .byte 0x49, 0x4B, 0x44, 0x50, 0xCF, 0x1D, 0x00, 0x00, 0x4C, 0x00, 0x4A, 0x4C, 0x45, 0x51, 0xCF, 0x2A - .byte 0x00, 0x00, 0x59, 0x00, 0x4B, 0x48, 0x46, 0x52, 0xCF, 0x37, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0xCF, 0x44, 0x00, 0x00, 0x10, 0x01, 0x52, 0x4F, 0x48, 0x06, 0xDE, 0x03, 0x00, 0x00 - .byte 0x6D, 0x00, 0x4E, 0x50, 0x49, 0x07, 0xDE, 0x10, 0x00, 0x00, 0x7A, 0x00, 0x4F, 0x51, 0x4A, 0x08 - .byte 0xDE, 0x1D, 0x00, 0x00, 0x4D, 0x00, 0x50, 0x52, 0x4B, 0x03, 0xDE, 0x2A, 0x00, 0x00, 0x5A, 0x00 - .byte 0x51, 0x4E, 0x4C, 0x04, 0xDE, 0x37, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0x44 - .byte 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x03, 0x02, 0x00, 0x11, 0x01, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x03, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x10 - .byte 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x1D, 0x00, 0x00, 0x10, 0x01, 0x05, 0x04 - .byte 0x51, 0x09, 0x04, 0x2A, 0x03, 0x00, 0x09, 0x01, 0x03, 0x05, 0x52, 0x0A, 0x04, 0x37, 0x03, 0x00 - .byte 0x07, 0x01, 0x04, 0x03, 0x53, 0x0B, 0x04, 0x44, 0x03, 0x00, 0x08, 0x01, 0x0B, 0x07, 0x4E, 0x0C - .byte 0x2A, 0x03, 0x00, 0x00, 0x61, 0x00, 0x06, 0x08, 0x4F, 0x0D, 0x2A, 0x10, 0x00, 0x00, 0x6E, 0x00 - .byte 0x07, 0x09, 0x50, 0x0E, 0x2A, 0x1D, 0x00, 0x00, 0x41, 0x00, 0x08, 0x0A, 0x03, 0x0F, 0x2A, 0x2A - .byte 0x00, 0x00, 0x4E, 0x00, 0x09, 0x0B, 0x04, 0x10, 0x2A, 0x37, 0x00, 0x00, 0x30, 0x00, 0x0A, 0x06 - .byte 0x05, 0x11, 0x2A, 0x44, 0x00, 0x00, 0x2D, 0x00, 0x11, 0x0D, 0x06, 0x12, 0x39, 0x03, 0x00, 0x00 - .byte 0x62, 0x00, 0x0C, 0x0E, 0x07, 0x13, 0x39, 0x10, 0x00, 0x00, 0x6F, 0x00, 0x0D, 0x0F, 0x08, 0x14 - .byte 0x39, 0x1D, 0x00, 0x00, 0x42, 0x00, 0x0E, 0x10, 0x09, 0x15, 0x39, 0x2A, 0x00, 0x00, 0x4F, 0x00 - .byte 0x0F, 0x11, 0x0A, 0x16, 0x39, 0x37, 0x00, 0x00, 0x31, 0x00, 0x10, 0x0C, 0x0B, 0x17, 0x39, 0x44 - .byte 0x00, 0x00, 0x5F, 0x00, 0x17, 0x13, 0x0C, 0x18, 0x48, 0x03, 0x00, 0x00, 0x63, 0x00, 0x12, 0x14 - .byte 0x0D, 0x19, 0x48, 0x10, 0x00, 0x00, 0x70, 0x00, 0x13, 0x15, 0x0E, 0x1A, 0x48, 0x1D, 0x00, 0x00 - .byte 0x43, 0x00, 0x14, 0x16, 0x0F, 0x1B, 0x48, 0x2A, 0x00, 0x00, 0x50, 0x00, 0x15, 0x17, 0x10, 0x1C - .byte 0x48, 0x37, 0x00, 0x00, 0x32, 0x00, 0x16, 0x12, 0x11, 0x1D, 0x48, 0x44, 0x00, 0x00, 0x23, 0x00 - .byte 0x1D, 0x19, 0x12, 0x1E, 0x57, 0x03, 0x00, 0x00, 0x64, 0x00, 0x18, 0x1A, 0x13, 0x1F, 0x57, 0x10 - .byte 0x00, 0x00, 0x71, 0x00, 0x19, 0x1B, 0x14, 0x20, 0x57, 0x1D, 0x00, 0x00, 0x44, 0x00, 0x1A, 0x1C - .byte 0x15, 0x21, 0x57, 0x2A, 0x00, 0x00, 0x51, 0x00, 0x1B, 0x1D, 0x16, 0x22, 0x57, 0x37, 0x00, 0x00 - .byte 0x33, 0x00, 0x1C, 0x18, 0x17, 0x23, 0x57, 0x44, 0x00, 0x00, 0x24, 0x00, 0x23, 0x1F, 0x18, 0x24 - .byte 0x66, 0x03, 0x00, 0x00, 0x65, 0x00, 0x1E, 0x20, 0x19, 0x25, 0x66, 0x10, 0x00, 0x00, 0x72, 0x00 - .byte 0x1F, 0x21, 0x1A, 0x26, 0x66, 0x1D, 0x00, 0x00, 0x45, 0x00, 0x20, 0x22, 0x1B, 0x27, 0x66, 0x2A - .byte 0x00, 0x00, 0x52, 0x00, 0x21, 0x23, 0x1C, 0x28, 0x66, 0x37, 0x00, 0x00, 0x34, 0x00, 0x22, 0x1E - .byte 0x1D, 0x29, 0x66, 0x44, 0x00, 0x00, 0x25, 0x00, 0x29, 0x25, 0x1E, 0x2A, 0x75, 0x03, 0x00, 0x00 - .byte 0x66, 0x00, 0x24, 0x26, 0x1F, 0x2B, 0x75, 0x10, 0x00, 0x00, 0x73, 0x00, 0x25, 0x27, 0x20, 0x2C - .byte 0x75, 0x1D, 0x00, 0x00, 0x46, 0x00, 0x26, 0x28, 0x21, 0x2D, 0x75, 0x2A, 0x00, 0x00, 0x53, 0x00 - .byte 0x27, 0x29, 0x22, 0x2E, 0x75, 0x37, 0x00, 0x00, 0x35, 0x00, 0x28, 0x24, 0x23, 0x2F, 0x75, 0x44 - .byte 0x00, 0x00, 0x3A, 0x00, 0x2F, 0x2B, 0x24, 0x30, 0x84, 0x03, 0x00, 0x00, 0x67, 0x00, 0x2A, 0x2C - .byte 0x25, 0x31, 0x84, 0x10, 0x00, 0x00, 0x74, 0x00, 0x2B, 0x2D, 0x26, 0x32, 0x84, 0x1D, 0x00, 0x00 - .byte 0x47, 0x00, 0x2C, 0x2E, 0x27, 0x33, 0x84, 0x2A, 0x00, 0x00, 0x54, 0x00, 0x2D, 0x2F, 0x28, 0x34 - .byte 0x84, 0x37, 0x00, 0x00, 0x36, 0x00, 0x2E, 0x2A, 0x29, 0x35, 0x84, 0x44, 0x00, 0x00, 0x3B, 0x00 - .byte 0x35, 0x31, 0x2A, 0x36, 0x93, 0x03, 0x00, 0x00, 0x68, 0x00, 0x30, 0x32, 0x2B, 0x37, 0x93, 0x10 - .byte 0x00, 0x00, 0x75, 0x00, 0x31, 0x33, 0x2C, 0x38, 0x93, 0x1D, 0x00, 0x00, 0x48, 0x00, 0x32, 0x34 - .byte 0x2D, 0x39, 0x93, 0x2A, 0x00, 0x00, 0x55, 0x00, 0x33, 0x35, 0x2E, 0x3A, 0x93, 0x37, 0x00, 0x00 - .byte 0x37, 0x00, 0x34, 0x30, 0x2F, 0x3B, 0x93, 0x44, 0x00, 0x00, 0x2A, 0x00, 0x3B, 0x37, 0x30, 0x3C - .byte 0xA2, 0x03, 0x00, 0x00, 0x69, 0x00, 0x36, 0x38, 0x31, 0x3D, 0xA2, 0x10, 0x00, 0x00, 0x76, 0x00 - .byte 0x37, 0x39, 0x32, 0x3E, 0xA2, 0x1D, 0x00, 0x00, 0x49, 0x00, 0x38, 0x3A, 0x33, 0x3F, 0xA2, 0x2A - .byte 0x00, 0x00, 0x56, 0x00, 0x39, 0x3B, 0x34, 0x40, 0xA2, 0x37, 0x00, 0x00, 0x38, 0x00, 0x3A, 0x36 - .byte 0x35, 0x41, 0xA2, 0x44, 0x00, 0x00, 0x2B, 0x00, 0x41, 0x3D, 0x36, 0x42, 0xB1, 0x03, 0x00, 0x00 - .byte 0x6A, 0x00, 0x3C, 0x3E, 0x37, 0x43, 0xB1, 0x10, 0x00, 0x00, 0x77, 0x00, 0x3D, 0x3F, 0x38, 0x44 - .byte 0xB1, 0x1D, 0x00, 0x00, 0x4A, 0x00, 0x3E, 0x40, 0x39, 0x45, 0xB1, 0x2A, 0x00, 0x00, 0x57, 0x00 - .byte 0x3F, 0x41, 0x3A, 0x46, 0xB1, 0x37, 0x00, 0x00, 0x39, 0x00, 0x40, 0x3C, 0x3B, 0x47, 0xB1, 0x44 - .byte 0x00, 0x00, 0x3C, 0x00, 0x47, 0x43, 0x3C, 0x48, 0xC0, 0x03, 0x00, 0x00, 0x6B, 0x00, 0x42, 0x44 - .byte 0x3D, 0x49, 0xC0, 0x10, 0x00, 0x00, 0x78, 0x00, 0x43, 0x45, 0x3E, 0x4A, 0xC0, 0x1D, 0x00, 0x00 - .byte 0x4B, 0x00, 0x44, 0x46, 0x3F, 0x4B, 0xC0, 0x2A, 0x00, 0x00, 0x58, 0x00, 0x45, 0x47, 0x40, 0x4C - .byte 0xC0, 0x37, 0x00, 0x00, 0x40, 0x00, 0x46, 0x42, 0x41, 0x4D, 0xC0, 0x44, 0x00, 0x00, 0x3D, 0x00 - .byte 0x4D, 0x49, 0x42, 0x4E, 0xCF, 0x03, 0x00, 0x00, 0x6C, 0x00, 0x48, 0x4A, 0x43, 0x4F, 0xCF, 0x10 - .byte 0x00, 0x00, 0x79, 0x00, 0x49, 0x4B, 0x44, 0x50, 0xCF, 0x1D, 0x00, 0x00, 0x4C, 0x00, 0x4A, 0x4C - .byte 0x45, 0x51, 0xCF, 0x2A, 0x00, 0x00, 0x59, 0x00, 0x4B, 0x4D, 0x46, 0x52, 0xCF, 0x37, 0x00, 0x00 - .byte 0x2E, 0x00, 0x4C, 0x48, 0x47, 0x53, 0xCF, 0x44, 0x00, 0x00, 0x3E, 0x00, 0x53, 0x4F, 0x48, 0x06 - .byte 0xDE, 0x03, 0x00, 0x00, 0x6D, 0x00, 0x4E, 0x50, 0x49, 0x07, 0xDE, 0x10, 0x00, 0x00, 0x7A, 0x00 - .byte 0x4F, 0x51, 0x4A, 0x08, 0xDE, 0x1D, 0x00, 0x00, 0x4D, 0x00, 0x50, 0x52, 0x4B, 0x03, 0xDE, 0x2A - .byte 0x00, 0x00, 0x5A, 0x00, 0x51, 0x53, 0x4C, 0x04, 0xDE, 0x37, 0x00, 0x00, 0x26, 0x00, 0x52, 0x4E - .byte 0x4D, 0x05, 0xDE, 0x44, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x03, 0x02, 0x00 - .byte 0x11, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x03, 0x00, 0x00, 0x10, 0x01, 0x05, 0x02 - .byte 0x4F, 0x07, 0x04, 0x10, 0x00, 0x00, 0x04, 0x01, 0x01, 0x03, 0x32, 0x08, 0x04, 0x1D, 0x00, 0x00 - .byte 0x05, 0x01, 0x02, 0x04, 0x51, 0x09, 0x04, 0x2A, 0x03, 0x00, 0x09, 0x01, 0x03, 0x05, 0x52, 0x0A - .byte 0x04, 0x37, 0x03, 0x00, 0x07, 0x01, 0x04, 0x01, 0x41, 0x0B, 0x04, 0x44, 0x03, 0x00, 0x08, 0x01 - .byte 0x0B, 0x07, 0x4E, 0x0C, 0x2A, 0x03, 0x00, 0x00, 0xE0, 0x00, 0x06, 0x08, 0x01, 0x0D, 0x2A, 0x10 - .byte 0x00, 0x00, 0xED, 0x00, 0x07, 0x09, 0x02, 0x0E, 0x2A, 0x1D, 0x00, 0x00, 0xFE, 0x00, 0x08, 0x0A - .byte 0x03, 0x0F, 0x2A, 0x2A, 0x00, 0x00, 0xC0, 0x00, 0x09, 0x0B, 0x04, 0x10, 0x2A, 0x37, 0x00, 0x00 - .byte 0xCD, 0x00, 0x0A, 0x06, 0x05, 0x11, 0x2A, 0x44, 0x00, 0x00, 0xDE, 0x00, 0x11, 0x0D, 0x06, 0x12 - .byte 0x39, 0x03, 0x00, 0x00, 0xE1, 0x00, 0x0C, 0x0E, 0x07, 0x13, 0x39, 0x10, 0x00, 0x00, 0xEE, 0x00 - .byte 0x0D, 0x0F, 0x08, 0x14, 0x39, 0x1D, 0x00, 0x00, 0xF9, 0x00, 0x0E, 0x10, 0x09, 0x15, 0x39, 0x2A - .byte 0x00, 0x00, 0xC1, 0x00, 0x0F, 0x11, 0x0A, 0x16, 0x39, 0x37, 0x00, 0x00, 0xCE, 0x00, 0x10, 0x0C - .byte 0x0B, 0x17, 0x39, 0x44, 0x00, 0x00, 0xD9, 0x00, 0x17, 0x13, 0x0C, 0x18, 0x48, 0x03, 0x00, 0x00 - .byte 0xE2, 0x00, 0x12, 0x14, 0x0D, 0x19, 0x48, 0x10, 0x00, 0x00, 0xEF, 0x00, 0x13, 0x15, 0x0E, 0x1A - .byte 0x48, 0x1D, 0x00, 0x00, 0xFA, 0x00, 0x14, 0x16, 0x0F, 0x1B, 0x48, 0x2A, 0x00, 0x00, 0xC2, 0x00 - .byte 0x15, 0x17, 0x10, 0x1C, 0x48, 0x37, 0x00, 0x00, 0xCF, 0x00, 0x16, 0x12, 0x11, 0x1D, 0x48, 0x44 - .byte 0x00, 0x00, 0xDA, 0x00, 0x1D, 0x19, 0x12, 0x1E, 0x57, 0x03, 0x00, 0x00, 0xE3, 0x00, 0x18, 0x1A - .byte 0x13, 0x1F, 0x57, 0x10, 0x00, 0x00, 0xF0, 0x00, 0x19, 0x1B, 0x14, 0x20, 0x57, 0x1D, 0x00, 0x00 - .byte 0xFB, 0x00, 0x1A, 0x1C, 0x15, 0x21, 0x57, 0x2A, 0x00, 0x00, 0xC3, 0x00, 0x1B, 0x1D, 0x16, 0x22 - .byte 0x57, 0x37, 0x00, 0x00, 0xD0, 0x00, 0x1C, 0x18, 0x17, 0x23, 0x57, 0x44, 0x00, 0x00, 0xDB, 0x00 - .byte 0x23, 0x1F, 0x18, 0x24, 0x66, 0x03, 0x00, 0x00, 0xE4, 0x00, 0x1E, 0x20, 0x19, 0x25, 0x66, 0x10 - .byte 0x00, 0x00, 0xF1, 0x00, 0x1F, 0x21, 0x1A, 0x26, 0x66, 0x1D, 0x00, 0x00, 0xFC, 0x00, 0x20, 0x22 - .byte 0x1B, 0x27, 0x66, 0x2A, 0x00, 0x00, 0xC4, 0x00, 0x21, 0x23, 0x1C, 0x28, 0x66, 0x37, 0x00, 0x00 - .byte 0xD1, 0x00, 0x22, 0x1E, 0x1D, 0x29, 0x66, 0x44, 0x00, 0x00, 0xDC, 0x00, 0x29, 0x25, 0x1E, 0x2A - .byte 0x75, 0x03, 0x00, 0x00, 0xE5, 0x00, 0x24, 0x26, 0x1F, 0x2B, 0x75, 0x10, 0x00, 0x00, 0xF2, 0x00 - .byte 0x25, 0x27, 0x20, 0x2C, 0x75, 0x1D, 0x00, 0x00, 0xFD, 0x00, 0x26, 0x28, 0x21, 0x2D, 0x75, 0x2A - .byte 0x00, 0x00, 0xC5, 0x00, 0x27, 0x29, 0x22, 0x2E, 0x75, 0x37, 0x00, 0x00, 0xD2, 0x00, 0x28, 0x24 - .byte 0x23, 0x2F, 0x75, 0x44, 0x00, 0x00, 0xDD, 0x00, 0x2F, 0x2B, 0x24, 0x30, 0x84, 0x03, 0x00, 0x00 - .byte 0xE6, 0x00, 0x2A, 0x2C, 0x25, 0x31, 0x84, 0x10, 0x00, 0x00, 0xF3, 0x00, 0x2B, 0x2D, 0x26, 0x32 - .byte 0x84, 0x1D, 0x00, 0x00, 0xFF, 0x00, 0x2C, 0x2E, 0x27, 0x33, 0x84, 0x2A, 0x00, 0x00, 0xC6, 0x00 - .byte 0x2D, 0x2F, 0x28, 0x34, 0x84, 0x37, 0x00, 0x00, 0xD3, 0x00, 0x2E, 0x2A, 0x29, 0x35, 0x84, 0x44 - .byte 0x00, 0x00, 0x9F, 0x00, 0x35, 0x31, 0x2A, 0x36, 0x93, 0x03, 0x00, 0x00, 0xE7, 0x00, 0x30, 0x32 - .byte 0x2B, 0x37, 0x93, 0x10, 0x00, 0x00, 0xF4, 0x00, 0x31, 0x33, 0x2C, 0x02, 0x93, 0x1D, 0x00, 0x00 - .byte 0x9E, 0x00, 0x32, 0x34, 0x2D, 0x39, 0x93, 0x2A, 0x00, 0x00, 0xC7, 0x00, 0x33, 0x35, 0x2E, 0x3A - .byte 0x93, 0x37, 0x00, 0x00, 0xD4, 0x00, 0x34, 0x30, 0x2F, 0x3B, 0x93, 0x44, 0x00, 0x00, 0x8E, 0x00 - .byte 0x3B, 0x37, 0x30, 0x3C, 0xA2, 0x03, 0x00, 0x00, 0xE8, 0x00, 0x36, 0x39, 0x31, 0x3D, 0xA2, 0x10 - .byte 0x00, 0x00, 0xF5, 0x00, 0x37, 0x39, 0x32, 0x3E, 0xA2, 0x1D, 0x00, 0x00, 0x10, 0x01, 0x37, 0x3A - .byte 0x33, 0x3F, 0xA2, 0x2A, 0x00, 0x00, 0xC8, 0x00, 0x39, 0x3B, 0x34, 0x40, 0xA2, 0x37, 0x00, 0x00 - .byte 0xD5, 0x00, 0x3A, 0x36, 0x35, 0x41, 0xA2, 0x44, 0x00, 0x00, 0xDF, 0x00, 0x41, 0x3D, 0x36, 0x42 - .byte 0xB1, 0x03, 0x00, 0x00, 0xE9, 0x00, 0x3C, 0x3F, 0x37, 0x43, 0xB1, 0x10, 0x00, 0x00, 0xF6, 0x00 - .byte 0x3D, 0x3F, 0x38, 0x44, 0xB1, 0x1D, 0x00, 0x00, 0x10, 0x01, 0x3D, 0x40, 0x39, 0x45, 0xB1, 0x2A - .byte 0x00, 0x00, 0xC9, 0x00, 0x3F, 0x41, 0x3A, 0x46, 0xB1, 0x37, 0x00, 0x00, 0xD6, 0x00, 0x40, 0x3C - .byte 0x3B, 0x05, 0xB1, 0x44, 0x00, 0x00, 0x85, 0x00, 0x46, 0x43, 0x3C, 0x48, 0xC0, 0x03, 0x00, 0x00 - .byte 0xEA, 0x00, 0x42, 0x45, 0x3D, 0x49, 0xC0, 0x10, 0x00, 0x00, 0xF8, 0x00, 0x43, 0x45, 0x3E, 0x4A - .byte 0xC0, 0x1D, 0x00, 0x00, 0x10, 0x01, 0x43, 0x46, 0x3F, 0x4B, 0xC0, 0x2A, 0x00, 0x00, 0xCA, 0x00 - .byte 0x45, 0x42, 0x40, 0x4C, 0xC0, 0x37, 0x00, 0x00, 0xD8, 0x00, 0x46, 0x42, 0x41, 0x4D, 0xC0, 0x44 - .byte 0x00, 0x00, 0x10, 0x01, 0x4C, 0x49, 0x42, 0x4E, 0xCF, 0x03, 0x00, 0x00, 0xEB, 0x00, 0x48, 0x4B - .byte 0x43, 0x4F, 0xCF, 0x10, 0x00, 0x00, 0x9C, 0x00, 0x49, 0x4B, 0x44, 0x50, 0xCF, 0x1D, 0x00, 0x00 - .byte 0x10, 0x01, 0x49, 0x4C, 0x45, 0x51, 0xCF, 0x2A, 0x00, 0x00, 0xCB, 0x00, 0x4B, 0x48, 0x46, 0x52 - .byte 0xCF, 0x37, 0x00, 0x00, 0x8C, 0x00, 0x4C, 0x48, 0x47, 0x53, 0xCF, 0x44, 0x00, 0x00, 0x10, 0x01 - .byte 0x52, 0x4F, 0x48, 0x06, 0xDE, 0x03, 0x00, 0x00, 0xEC, 0x00, 0x4E, 0x51, 0x49, 0x01, 0xDE, 0x10 - .byte 0x00, 0x00, 0x9A, 0x00, 0x4F, 0x51, 0x4A, 0x08, 0xDE, 0x1D, 0x00, 0x00, 0x10, 0x01, 0x4F, 0x52 - .byte 0x4B, 0x03, 0xDE, 0x2A, 0x00, 0x00, 0xCC, 0x00, 0x51, 0x4E, 0x4C, 0x04, 0xDE, 0x37, 0x00, 0x00 - .byte 0x8A, 0x00, 0x52, 0x4E, 0x4D, 0x05, 0xDE, 0x44, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00 - .byte 0x04, 0x03, 0x02, 0x00, 0x11, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x03, 0x00, 0x00 - .byte 0x10, 0x01, 0x05, 0x02, 0x4F, 0x07, 0x04, 0x10, 0x00, 0x00, 0x04, 0x01, 0x01, 0x03, 0x50, 0x08 - .byte 0x04, 0x1D, 0x00, 0x00, 0x05, 0x01, 0x02, 0x04, 0x51, 0x09, 0x04, 0x2A, 0x03, 0x00, 0x09, 0x01 - .byte 0x03, 0x05, 0x52, 0x0A, 0x04, 0x37, 0x03, 0x00, 0x07, 0x01, 0x04, 0x01, 0x53, 0x0B, 0x04, 0x44 - .byte 0x03, 0x00, 0x08, 0x01, 0x0B, 0x07, 0x4E, 0x0C, 0x2A, 0x03, 0x00, 0x00, 0x61, 0x00, 0x06, 0x08 - .byte 0x01, 0x0D, 0x2A, 0x10, 0x00, 0x00, 0x6E, 0x00, 0x07, 0x09, 0x02, 0x0E, 0x2A, 0x1D, 0x00, 0x00 - .byte 0x41, 0x00, 0x08, 0x0A, 0x03, 0x0F, 0x2A, 0x2A, 0x00, 0x00, 0x4E, 0x00, 0x09, 0x0B, 0x04, 0x10 - .byte 0x2A, 0x37, 0x00, 0x00, 0x31, 0x00, 0x0A, 0x06, 0x05, 0x11, 0x2A, 0x44, 0x00, 0x00, 0x2C, 0x00 - .byte 0x11, 0x0D, 0x06, 0x12, 0x39, 0x03, 0x00, 0x00, 0x62, 0x00, 0x0C, 0x0E, 0x07, 0x13, 0x39, 0x10 - .byte 0x00, 0x00, 0x6F, 0x00, 0x0D, 0x0F, 0x08, 0x14, 0x39, 0x1D, 0x00, 0x00, 0x42, 0x00, 0x0E, 0x10 - .byte 0x09, 0x15, 0x39, 0x2A, 0x00, 0x00, 0x4F, 0x00, 0x0F, 0x11, 0x0A, 0x16, 0x39, 0x37, 0x00, 0x00 - .byte 0x32, 0x00, 0x10, 0x0C, 0x0B, 0x17, 0x39, 0x44, 0x00, 0x00, 0x2E, 0x00, 0x17, 0x13, 0x0C, 0x18 - .byte 0x48, 0x03, 0x00, 0x00, 0x63, 0x00, 0x12, 0x14, 0x0D, 0x19, 0x48, 0x10, 0x00, 0x00, 0x70, 0x00 - .byte 0x13, 0x15, 0x0E, 0x1A, 0x48, 0x1D, 0x00, 0x00, 0x43, 0x00, 0x14, 0x16, 0x0F, 0x1B, 0x48, 0x2A - .byte 0x00, 0x00, 0x50, 0x00, 0x15, 0x17, 0x10, 0x1C, 0x48, 0x37, 0x00, 0x00, 0x33, 0x00, 0x16, 0x12 - .byte 0x11, 0x1D, 0x48, 0x44, 0x00, 0x00, 0xA1, 0x00, 0x1D, 0x19, 0x12, 0x1E, 0x57, 0x03, 0x00, 0x00 - .byte 0x64, 0x00, 0x18, 0x1A, 0x13, 0x1F, 0x57, 0x10, 0x00, 0x00, 0x71, 0x00, 0x19, 0x1B, 0x14, 0x20 - .byte 0x57, 0x1D, 0x00, 0x00, 0x44, 0x00, 0x1A, 0x1C, 0x15, 0x21, 0x57, 0x2A, 0x00, 0x00, 0x51, 0x00 - .byte 0x1B, 0x1D, 0x16, 0x22, 0x57, 0x37, 0x00, 0x00, 0x34, 0x00, 0x1C, 0x18, 0x17, 0x23, 0x57, 0x44 - .byte 0x00, 0x00, 0x21, 0x00, 0x23, 0x1F, 0x18, 0x24, 0x66, 0x03, 0x00, 0x00, 0x65, 0x00, 0x1E, 0x20 - .byte 0x19, 0x25, 0x66, 0x10, 0x00, 0x00, 0x72, 0x00, 0x1F, 0x21, 0x1A, 0x26, 0x66, 0x1D, 0x00, 0x00 - .byte 0x45, 0x00, 0x20, 0x22, 0x1B, 0x27, 0x66, 0x2A, 0x00, 0x00, 0x52, 0x00, 0x21, 0x23, 0x1C, 0x28 - .byte 0x66, 0x37, 0x00, 0x00, 0x35, 0x00, 0x22, 0x1E, 0x1D, 0x29, 0x66, 0x44, 0x00, 0x00, 0xBF, 0x00 - .byte 0x29, 0x25, 0x1E, 0x2A, 0x75, 0x03, 0x00, 0x00, 0x66, 0x00, 0x24, 0x26, 0x1F, 0x2B, 0x75, 0x10 - .byte 0x00, 0x00, 0x73, 0x00, 0x25, 0x27, 0x20, 0x2C, 0x75, 0x1D, 0x00, 0x00, 0x46, 0x00, 0x26, 0x28 - .byte 0x21, 0x2D, 0x75, 0x2A, 0x00, 0x00, 0x53, 0x00, 0x27, 0x29, 0x22, 0x2E, 0x75, 0x37, 0x00, 0x00 - .byte 0x36, 0x00, 0x28, 0x24, 0x23, 0x2F, 0x75, 0x44, 0x00, 0x00, 0x3F, 0x00, 0x2F, 0x2B, 0x24, 0x30 - .byte 0x84, 0x03, 0x00, 0x00, 0x67, 0x00, 0x2A, 0x2C, 0x25, 0x31, 0x84, 0x10, 0x00, 0x00, 0x74, 0x00 - .byte 0x2B, 0x2D, 0x26, 0x32, 0x84, 0x1D, 0x00, 0x00, 0x47, 0x00, 0x2C, 0x2E, 0x27, 0x33, 0x84, 0x2A - .byte 0x00, 0x00, 0x54, 0x00, 0x2D, 0x2F, 0x28, 0x34, 0x84, 0x37, 0x00, 0x00, 0x37, 0x00, 0x2E, 0x2A - .byte 0x29, 0x35, 0x84, 0x44, 0x00, 0x00, 0x91, 0x00, 0x35, 0x31, 0x2A, 0x36, 0x93, 0x03, 0x00, 0x00 - .byte 0x68, 0x00, 0x30, 0x32, 0x2B, 0x37, 0x93, 0x10, 0x00, 0x00, 0x75, 0x00, 0x31, 0x33, 0x2C, 0x38 - .byte 0x93, 0x1D, 0x00, 0x00, 0x48, 0x00, 0x32, 0x34, 0x2D, 0x39, 0x93, 0x2A, 0x00, 0x00, 0x55, 0x00 - .byte 0x33, 0x35, 0x2E, 0x3A, 0x93, 0x37, 0x00, 0x00, 0x38, 0x00, 0x34, 0x30, 0x2F, 0x3B, 0x93, 0x44 - .byte 0x00, 0x00, 0x92, 0x00, 0x3B, 0x37, 0x30, 0x3C, 0xA2, 0x03, 0x00, 0x00, 0x69, 0x00, 0x36, 0x38 - .byte 0x31, 0x3D, 0xA2, 0x10, 0x00, 0x00, 0x76, 0x00, 0x37, 0x39, 0x32, 0x3E, 0xA2, 0x1D, 0x00, 0x00 - .byte 0x49, 0x00, 0x38, 0x3A, 0x33, 0x3F, 0xA2, 0x2A, 0x00, 0x00, 0x56, 0x00, 0x39, 0x3B, 0x34, 0x40 - .byte 0xA2, 0x37, 0x00, 0x00, 0x39, 0x00, 0x3A, 0x36, 0x35, 0x41, 0xA2, 0x44, 0x00, 0x00, 0x93, 0x00 - .byte 0x41, 0x3D, 0x36, 0x42, 0xB1, 0x03, 0x00, 0x00, 0x6A, 0x00, 0x3C, 0x3E, 0x37, 0x43, 0xB1, 0x10 - .byte 0x00, 0x00, 0x77, 0x00, 0x3D, 0x3F, 0x38, 0x44, 0xB1, 0x1D, 0x00, 0x00, 0x4A, 0x00, 0x3E, 0x40 - .byte 0x39, 0x45, 0xB1, 0x2A, 0x00, 0x00, 0x57, 0x00, 0x3F, 0x41, 0x3A, 0x46, 0xB1, 0x37, 0x00, 0x00 - .byte 0x30, 0x00, 0x40, 0x3C, 0x3B, 0x47, 0xB1, 0x44, 0x00, 0x00, 0x94, 0x00, 0x47, 0x43, 0x3C, 0x48 - .byte 0xC0, 0x03, 0x00, 0x00, 0x6B, 0x00, 0x42, 0x44, 0x3D, 0x49, 0xC0, 0x10, 0x00, 0x00, 0x78, 0x00 - .byte 0x43, 0x45, 0x3E, 0x4A, 0xC0, 0x1D, 0x00, 0x00, 0x4B, 0x00, 0x44, 0x46, 0x3F, 0x4B, 0xC0, 0x2A - .byte 0x00, 0x00, 0x58, 0x00, 0x45, 0x47, 0x40, 0x4C, 0xC0, 0x37, 0x00, 0x00, 0x3A, 0x00, 0x46, 0x42 - .byte 0x41, 0x4D, 0xC0, 0x44, 0x00, 0x00, 0xBD, 0x00, 0x4D, 0x49, 0x42, 0x4E, 0xCF, 0x03, 0x00, 0x00 - .byte 0x6C, 0x00, 0x48, 0x4A, 0x43, 0x4F, 0xCF, 0x10, 0x00, 0x00, 0x79, 0x00, 0x49, 0x4B, 0x44, 0x50 - .byte 0xCF, 0x1D, 0x00, 0x00, 0x4C, 0x00, 0x4A, 0x4C, 0x45, 0x51, 0xCF, 0x2A, 0x00, 0x00, 0x59, 0x00 - .byte 0x4B, 0x4D, 0x46, 0x52, 0xCF, 0x37, 0x00, 0x00, 0x2B, 0x00, 0x4C, 0x48, 0x47, 0x53, 0xCF, 0x44 - .byte 0x00, 0x00, 0xBE, 0x00, 0x53, 0x4F, 0x48, 0x06, 0xDE, 0x03, 0x00, 0x00, 0x6D, 0x00, 0x4E, 0x50 - .byte 0x49, 0x01, 0xDE, 0x10, 0x00, 0x00, 0x7A, 0x00, 0x4F, 0x51, 0x4A, 0x02, 0xDE, 0x1D, 0x00, 0x00 - .byte 0x4D, 0x00, 0x50, 0x52, 0x4B, 0x03, 0xDE, 0x2A, 0x00, 0x00, 0x5A, 0x00, 0x51, 0x53, 0x4C, 0x04 - .byte 0xDE, 0x37, 0x00, 0x00, 0x2D, 0x00, 0x52, 0x4E, 0x4D, 0x05, 0xDE, 0x44, 0x00, 0x00, 0x20, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x03, 0x02, 0x00, 0x11, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x04, 0x03, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00, 0x10, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x1D, 0x00, 0x00, 0x10, 0x01, 0x05, 0x04, 0x51, 0x09, 0x04, 0x2A - .byte 0x03, 0x00, 0x09, 0x01, 0x03, 0x05, 0x52, 0x0A, 0x04, 0x37, 0x03, 0x00, 0x07, 0x01, 0x04, 0x03 - .byte 0x53, 0x0B, 0x04, 0x44, 0x03, 0x00, 0x08, 0x01, 0x0B, 0x07, 0x4E, 0x0C, 0x2A, 0x03, 0x00, 0x00 - .byte 0x61, 0x00, 0x06, 0x08, 0x4F, 0x0D, 0x2A, 0x10, 0x00, 0x00, 0x6E, 0x00, 0x07, 0x09, 0x50, 0x0E - .byte 0x2A, 0x1D, 0x00, 0x00, 0x41, 0x00, 0x08, 0x0A, 0x03, 0x0F, 0x2A, 0x2A, 0x00, 0x00, 0x4E, 0x00 - .byte 0x09, 0x0B, 0x04, 0x10, 0x2A, 0x37, 0x00, 0x00, 0x31, 0x00, 0x0A, 0x06, 0x05, 0x11, 0x2A, 0x44 - .byte 0x00, 0x00, 0x2C, 0x00, 0x11, 0x0D, 0x06, 0x12, 0x39, 0x03, 0x00, 0x00, 0x62, 0x00, 0x0C, 0x0E - .byte 0x07, 0x13, 0x39, 0x10, 0x00, 0x00, 0x6F, 0x00, 0x0D, 0x0F, 0x08, 0x14, 0x39, 0x1D, 0x00, 0x00 - .byte 0x42, 0x00, 0x0E, 0x10, 0x09, 0x15, 0x39, 0x2A, 0x00, 0x00, 0x4F, 0x00, 0x0F, 0x11, 0x0A, 0x16 - .byte 0x39, 0x37, 0x00, 0x00, 0x32, 0x00, 0x10, 0x0C, 0x0B, 0x17, 0x39, 0x44, 0x00, 0x00, 0x2E, 0x00 - .byte 0x17, 0x13, 0x0C, 0x18, 0x48, 0x03, 0x00, 0x00, 0x63, 0x00, 0x12, 0x14, 0x0D, 0x19, 0x48, 0x10 - .byte 0x00, 0x00, 0x70, 0x00, 0x13, 0x15, 0x0E, 0x1A, 0x48, 0x1D, 0x00, 0x00, 0x43, 0x00, 0x14, 0x16 - .byte 0x0F, 0x1B, 0x48, 0x2A, 0x00, 0x00, 0x50, 0x00, 0x15, 0x17, 0x10, 0x1C, 0x48, 0x37, 0x00, 0x00 - .byte 0x33, 0x00, 0x16, 0x12, 0x11, 0x1D, 0x48, 0x44, 0x00, 0x00, 0xA1, 0x00, 0x1D, 0x19, 0x12, 0x1E - .byte 0x57, 0x03, 0x00, 0x00, 0x64, 0x00, 0x18, 0x1A, 0x13, 0x1F, 0x57, 0x10, 0x00, 0x00, 0x71, 0x00 - .byte 0x19, 0x1B, 0x14, 0x20, 0x57, 0x1D, 0x00, 0x00, 0x44, 0x00, 0x1A, 0x1C, 0x15, 0x21, 0x57, 0x2A - .byte 0x00, 0x00, 0x51, 0x00, 0x1B, 0x1D, 0x16, 0x22, 0x57, 0x37, 0x00, 0x00, 0x34, 0x00, 0x1C, 0x18 - .byte 0x17, 0x23, 0x57, 0x44, 0x00, 0x00, 0x21, 0x00, 0x23, 0x1F, 0x18, 0x24, 0x66, 0x03, 0x00, 0x00 - .byte 0x65, 0x00, 0x1E, 0x20, 0x19, 0x25, 0x66, 0x10, 0x00, 0x00, 0x72, 0x00, 0x1F, 0x21, 0x1A, 0x26 - .byte 0x66, 0x1D, 0x00, 0x00, 0x45, 0x00, 0x20, 0x22, 0x1B, 0x27, 0x66, 0x2A, 0x00, 0x00, 0x52, 0x00 - .byte 0x21, 0x23, 0x1C, 0x28, 0x66, 0x37, 0x00, 0x00, 0x35, 0x00, 0x22, 0x1E, 0x1D, 0x29, 0x66, 0x44 - .byte 0x00, 0x00, 0xBF, 0x00, 0x29, 0x25, 0x1E, 0x2A, 0x75, 0x03, 0x00, 0x00, 0x66, 0x00, 0x24, 0x26 - .byte 0x1F, 0x2B, 0x75, 0x10, 0x00, 0x00, 0x73, 0x00, 0x25, 0x27, 0x20, 0x2C, 0x75, 0x1D, 0x00, 0x00 - .byte 0x46, 0x00, 0x26, 0x28, 0x21, 0x2D, 0x75, 0x2A, 0x00, 0x00, 0x53, 0x00, 0x27, 0x29, 0x22, 0x2E - .byte 0x75, 0x37, 0x00, 0x00, 0x36, 0x00, 0x28, 0x24, 0x23, 0x2F, 0x75, 0x44, 0x00, 0x00, 0x3F, 0x00 - .byte 0x2F, 0x2B, 0x24, 0x30, 0x84, 0x03, 0x00, 0x00, 0x67, 0x00, 0x2A, 0x2C, 0x25, 0x31, 0x84, 0x10 - .byte 0x00, 0x00, 0x74, 0x00, 0x2B, 0x2D, 0x26, 0x32, 0x84, 0x1D, 0x00, 0x00, 0x47, 0x00, 0x2C, 0x2E - .byte 0x27, 0x33, 0x84, 0x2A, 0x00, 0x00, 0x54, 0x00, 0x2D, 0x2F, 0x28, 0x34, 0x84, 0x37, 0x00, 0x00 - .byte 0x37, 0x00, 0x2E, 0x2A, 0x29, 0x35, 0x84, 0x44, 0x00, 0x00, 0x91, 0x00, 0x35, 0x31, 0x2A, 0x36 - .byte 0x93, 0x03, 0x00, 0x00, 0x68, 0x00, 0x30, 0x32, 0x2B, 0x37, 0x93, 0x10, 0x00, 0x00, 0x75, 0x00 - .byte 0x31, 0x33, 0x2C, 0x38, 0x93, 0x1D, 0x00, 0x00, 0x48, 0x00, 0x32, 0x34, 0x2D, 0x39, 0x93, 0x2A - .byte 0x00, 0x00, 0x55, 0x00, 0x33, 0x35, 0x2E, 0x3A, 0x93, 0x37, 0x00, 0x00, 0x38, 0x00, 0x34, 0x30 - .byte 0x2F, 0x3B, 0x93, 0x44, 0x00, 0x00, 0x92, 0x00, 0x3B, 0x37, 0x30, 0x3C, 0xA2, 0x03, 0x00, 0x00 - .byte 0x69, 0x00, 0x36, 0x38, 0x31, 0x3D, 0xA2, 0x10, 0x00, 0x00, 0x76, 0x00, 0x37, 0x39, 0x32, 0x3E - .byte 0xA2, 0x1D, 0x00, 0x00, 0x49, 0x00, 0x38, 0x3A, 0x33, 0x3F, 0xA2, 0x2A, 0x00, 0x00, 0x56, 0x00 - .byte 0x39, 0x3B, 0x34, 0x40, 0xA2, 0x37, 0x00, 0x00, 0x39, 0x00, 0x3A, 0x36, 0x35, 0x41, 0xA2, 0x44 - .byte 0x00, 0x00, 0x93, 0x00, 0x41, 0x3D, 0x36, 0x42, 0xB1, 0x03, 0x00, 0x00, 0x6A, 0x00, 0x3C, 0x3E - .byte 0x37, 0x43, 0xB1, 0x10, 0x00, 0x00, 0x77, 0x00, 0x3D, 0x3F, 0x38, 0x44, 0xB1, 0x1D, 0x00, 0x00 - .byte 0x4A, 0x00, 0x3E, 0x40, 0x39, 0x45, 0xB1, 0x2A, 0x00, 0x00, 0x57, 0x00, 0x3F, 0x41, 0x3A, 0x46 - .byte 0xB1, 0x37, 0x00, 0x00, 0x30, 0x00, 0x40, 0x3C, 0x3B, 0x47, 0xB1, 0x44, 0x00, 0x00, 0x94, 0x00 - .byte 0x47, 0x43, 0x3C, 0x48, 0xC0, 0x03, 0x00, 0x00, 0x6B, 0x00, 0x42, 0x44, 0x3D, 0x49, 0xC0, 0x10 - .byte 0x00, 0x00, 0x78, 0x00, 0x43, 0x45, 0x3E, 0x4A, 0xC0, 0x1D, 0x00, 0x00, 0x4B, 0x00, 0x44, 0x46 - .byte 0x3F, 0x4B, 0xC0, 0x2A, 0x00, 0x00, 0x58, 0x00, 0x45, 0x47, 0x40, 0x4C, 0xC0, 0x37, 0x00, 0x00 - .byte 0x3A, 0x00, 0x46, 0x42, 0x41, 0x4D, 0xC0, 0x44, 0x00, 0x00, 0xBD, 0x00, 0x4D, 0x49, 0x42, 0x4E - .byte 0xCF, 0x03, 0x00, 0x00, 0x6C, 0x00, 0x48, 0x4A, 0x43, 0x4F, 0xCF, 0x10, 0x00, 0x00, 0x79, 0x00 - .byte 0x49, 0x4B, 0x44, 0x50, 0xCF, 0x1D, 0x00, 0x00, 0x4C, 0x00, 0x4A, 0x4C, 0x45, 0x51, 0xCF, 0x2A - .byte 0x00, 0x00, 0x59, 0x00, 0x4B, 0x4D, 0x46, 0x52, 0xCF, 0x37, 0x00, 0x00, 0x2B, 0x00, 0x4C, 0x48 - .byte 0x47, 0x53, 0xCF, 0x44, 0x00, 0x00, 0xBE, 0x00, 0x53, 0x4F, 0x48, 0x06, 0xDE, 0x03, 0x00, 0x00 - .byte 0x6D, 0x00, 0x4E, 0x50, 0x49, 0x07, 0xDE, 0x10, 0x00, 0x00, 0x7A, 0x00, 0x4F, 0x51, 0x4A, 0x08 - .byte 0xDE, 0x1D, 0x00, 0x00, 0x4D, 0x00, 0x50, 0x52, 0x4B, 0x03, 0xDE, 0x2A, 0x00, 0x00, 0x5A, 0x00 - .byte 0x51, 0x53, 0x4C, 0x04, 0xDE, 0x37, 0x00, 0x00, 0x2D, 0x00, 0x52, 0x4E, 0x4D, 0x05, 0xDE, 0x44 - .byte 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x03, 0x02, 0x00, 0x11, 0x01, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x0C, 0x05, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x0E, 0x07, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0x10, 0x27, 0x00, 0x00, 0xA0, 0x86, 0x01, 0x00, 0x40, 0x42, 0x0F, 0x00, 0x80, 0x96, 0x98, 0x00 - .byte 0x00, 0xE1, 0xF5, 0x05, 0xF0, 0xC6, 0x09, 0x02, 0xCF, 0x04, 0x00, 0x00, 0x0D, 0x03, 0x04, 0x03 - .byte 0x05, 0x03, 0x06, 0x03, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x02, 0x0B, 0x00 - .byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x02, 0x0B, 0x08 - .byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x14, 0x0F, 0x02 - .byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x12, 0x1C, 0x04 - .byte 0x00, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x02, 0x0B, 0x00 - .byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x0F, 0x00 - .byte 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x02, 0x0B, 0x00 - .byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x05, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .byte 0x07, 0x03, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x09, 0x03, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x08, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .byte 0x07, 0x03, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00 - .byte 0x09, 0x03, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 - .byte 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x6D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72, 0x5F, 0x77, 0x61, 0x72 - .byte 0x65, 0x68, 0x6F, 0x75, 0x73, 0x65, 0x2E, 0x63, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xBC, 0x03, 0x02 - .byte 0x18, 0xBE, 0x03, 0x02, 0xDC, 0xBE, 0x03, 0x02, 0x10, 0xBF, 0x03, 0x02, 0x30, 0xC0, 0x03, 0x02 - .byte 0x88, 0xC0, 0x03, 0x02, 0xD4, 0xC0, 0x03, 0x02, 0x24, 0xC1, 0x03, 0x02, 0xF8, 0xC1, 0x03, 0x02 - .byte 0x2C, 0xC3, 0x03, 0x02, 0x7C, 0xC3, 0x03, 0x02, 0xAC, 0xC3, 0x03, 0x02, 0x08, 0xC4, 0x03, 0x02 - .byte 0xB8, 0xC4, 0x03, 0x02, 0xF0, 0xC4, 0x03, 0x02, 0x3C, 0xC5, 0x03, 0x02, 0x6C, 0xC5, 0x03, 0x02 - .byte 0xC8, 0xC5, 0x03, 0x02, 0x88, 0xC6, 0x03, 0x02, 0xC0, 0xC6, 0x03, 0x02, 0x0C, 0xC7, 0x03, 0x02 - .byte 0x3C, 0xC7, 0x03, 0x02, 0x6D, 0x65, 0x6E, 0x75, 0x4D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72, 0x57 - .byte 0x61, 0x72, 0x65, 0x68, 0x6F, 0x75, 0x73, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x25, 0x33 - .byte 0x64, 0x20, 0x25, 0x33, 0x64, 0x20, 0x6D, 0x6F, 0x64, 0x65, 0x20, 0x25, 0x33, 0x64, 0x20, 0x69 - .byte 0x64, 0x20, 0x25, 0x33, 0x64, 0x0A, 0x00, 0x00, 0x25, 0x73, 0x5B, 0x43, 0x4C, 0x55, 0x4D, 0x5F - .byte 0x53, 0x45, 0x54, 0x3A, 0x33, 0x36, 0x5D, 0x5B, 0x43, 0x53, 0x3A, 0x25, 0x63, 0x5D, 0x25, 0x73 - .byte 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x25, 0x73, 0x5B, 0x43, 0x4C, 0x55, 0x4D, 0x5F - .byte 0x53, 0x45, 0x54, 0x3A, 0x33, 0x36, 0x5D, 0x25, 0x73, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 - .byte 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x05, 0x14, 0x0F, 0x01, 0xFB, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x1C, 0x04, 0x01, 0xFB, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x40, 0xCA, 0x03, 0x02, 0x6C, 0xCA, 0x03, 0x02, 0x90, 0xCA, 0x03, 0x02 - .byte 0xCC, 0xCA, 0x03, 0x02, 0xF0, 0xCA, 0x03, 0x02, 0x58, 0xCB, 0x03, 0x02, 0x84, 0xCB, 0x03, 0x02 - .byte 0x60, 0xCC, 0x03, 0x02, 0x84, 0xCC, 0x03, 0x02, 0xB0, 0xCC, 0x03, 0x02, 0xD4, 0xCC, 0x03, 0x02 - .byte 0x5B, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3A, 0x30, 0x3A, 0x33, 0x5D, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x25, 0x63, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x25, 0x73, 0x20, 0x28 - .byte 0x25, 0x73, 0x29, 0x00, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x1E, 0x0F, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA7, 0x02, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xA8, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x78, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x02, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x09 - .byte 0x70, 0x09, 0x71, 0x09, 0x50, 0x09, 0x74, 0x09, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x14, 0x12 - .byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x18, 0x13 - .byte 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 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 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x02, 0x12, 0x0E, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x02, 0x12, 0x0C, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x0D, 0x12, 0x0A, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x02, 0x12, 0x0C, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x25, 0x63, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x02, 0x18, 0x13, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x02, 0x12, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x16, 0x02, 0x08, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x0A, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x75, 0x0A, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x76, 0x0A, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x5B, 0x4D, 0x3A, 0x53 - .byte 0x33, 0x5D, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x53, 0x32, 0x5D, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x53 - .byte 0x31, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x12, 0x00, 0x00, 0xFF, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x25, 0x64, 0x25, 0x73, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x4D, 0x53, 0x3A - .byte 0x31, 0x5D, 0x25, 0x73, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A, 0x57, 0x5D, 0x25, 0x64 - .byte 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A, 0x57, 0x5D, 0x5B, 0x4D - .byte 0x53, 0x3A, 0x31, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x57, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x6A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x14, 0x12, 0x02 - .byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x12, 0x00 - .byte 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x02, 0x08, 0x12 - .byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x02, 0x0B, 0x14 - .byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x12, 0x1C, 0x04 - .byte 0x00, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x35, 0x04, 0x02, 0x6C, 0x37, 0x04, 0x02 - .byte 0xC4, 0x37, 0x04, 0x02, 0x44, 0x38, 0x04, 0x02, 0x44, 0x39, 0x04, 0x02, 0xFC, 0x39, 0x04, 0x02 - .byte 0x7C, 0x3B, 0x04, 0x02, 0xF6, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xF4, 0x02, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xF5, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xF7, 0x02, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00, 0xF8, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xFB, 0x02, 0x00, 0x00 - .byte 0x07, 0x00, 0x00, 0x00, 0xF9, 0x02, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xFA, 0x02, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00, 0xFD, 0x02, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0xFC, 0x02, 0x00, 0x00 - .byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x16, 0x14, 0x08, 0x02, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x16, 0x14, 0x08, 0x02, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x16, 0x12, 0x08, 0x04, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x14, 0x12, 0x02, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x16, 0x0F, 0x08, 0x03, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x16, 0x02, 0x08, 0x04, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x6A, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x0A, 0x02 - .byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0E, 0x12, 0x04 - .byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x02, 0x10, 0x00 - .byte 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x48, 0x37, 0x5D, 0x00, 0x00 - .byte 0x5B, 0x4D, 0x3A, 0x48, 0x30, 0x5D, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x48, 0x31, 0x5D, 0x00, 0x00 - .byte 0x5B, 0x4D, 0x3A, 0x48, 0x32, 0x5D, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x48, 0x33, 0x5D, 0x00, 0x00 - .byte 0x5B, 0x4D, 0x3A, 0x48, 0x34, 0x5D, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x48, 0x35, 0x5D, 0x00, 0x00 - .byte 0x5B, 0x4D, 0x3A, 0x48, 0x36, 0x5D, 0x00, 0x00, 0x5B, 0x73, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x3A - .byte 0x30, 0x5D, 0x5B, 0x43, 0x4C, 0x55, 0x4D, 0x5F, 0x53, 0x45, 0x54, 0x3A, 0x38, 0x30, 0x5D, 0x5B - .byte 0x73, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x3A, 0x31, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x02, 0x08, 0x06 - .byte 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x18, 0x13 - .byte 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x0F, 0x00, 0x00 - .byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x79, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0xD2, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xD3, 0x02, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 - .byte 0xD4, 0x02, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x1A, 0x10, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x88, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x2C, 0x68, 0x04, 0x02, 0x98, 0x68, 0x04, 0x02, 0xD4, 0x68, 0x04, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x75, 0x04, 0x02, 0xE0, 0x74, 0x04, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x1C, 0x14, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x1C, 0x14, 0x01, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x5B, 0x52, 0x5D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x9E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xA9, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x34, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xE8, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .byte 0x73, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xF0, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .byte 0xDD, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7D, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .byte 0xA0, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x4F, 0x4B, 0x45 - .byte 0x5F, 0x44, 0x55, 0x4E, 0x5F, 0x53, 0x4F, 0x52, 0x41, 0x00, 0x00, 0x00, 0x4E, 0x6F, 0x74, 0x65 - .byte 0x20, 0x53, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4D, 0x6F, 0x64, 0x65, 0x20, 0x25 - .byte 0x64, 0x20, 0x2D, 0x3E, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x6F, 0x74, 0x65 - .byte 0x53, 0x61, 0x76, 0x65, 0x20, 0x42, 0x61, 0x73, 0x65, 0x20, 0x25, 0x64, 0x20, 0x25, 0x64, 0x0A - .byte 0x00, 0x00, 0x00, 0x00, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x20, 0x25 - .byte 0x66, 0x0A, 0x00, 0x00, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x20, 0x25 - .byte 0x66, 0x0A, 0x00, 0x00, 0x4E, 0x6F, 0x74, 0x65, 0x4C, 0x6F, 0x61, 0x64, 0x20, 0x42, 0x61, 0x73 - .byte 0x65, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x4E, 0x6F, 0x74, 0x65, 0x4C, 0x6F, 0x61, 0x64 - .byte 0x20, 0x42, 0x61, 0x73, 0x65, 0x20, 0x6D, 0x6F, 0x64, 0x65, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x96, 0x04, 0x02, 0xF4, 0x96, 0x04, 0x02, 0x30, 0x97, 0x04, 0x02 - .byte 0x49, 0x02, 0x4B, 0x02, 0x3B, 0x02, 0x3B, 0x02, 0x3B, 0x02, 0x3D, 0x02, 0x3D, 0x02, 0x45, 0x02 - .byte 0x3F, 0x02, 0x41, 0x02, 0x3B, 0x02, 0x3B, 0x02, 0x4A, 0x02, 0x4C, 0x02, 0x3C, 0x02, 0x3C, 0x02 - .byte 0x3C, 0x02, 0x3E, 0x02, 0x3E, 0x02, 0x46, 0x02, 0x40, 0x02, 0x43, 0x02, 0x3C, 0x02, 0x3C, 0x02 - .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x74, 0x9A, 0x04, 0x02, 0xD0, 0x9A, 0x04, 0x02, 0x0C, 0x9B, 0x04, 0x02 - .byte 0x52, 0x02, 0x54, 0x02, 0x51, 0x02, 0x53, 0x02, 0x00, 0x00, 0x00, 0x00, 0x84, 0x9D, 0x04, 0x02 - .byte 0xF4, 0x9D, 0x04, 0x02, 0x30, 0x9E, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xA0, 0x04, 0x02 - .byte 0x80, 0xA0, 0x04, 0x02, 0xBC, 0xA0, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xA0, 0x04, 0x02 - .byte 0x54, 0xA1, 0x04, 0x02, 0x90, 0xA1, 0x04, 0x02, 0xFF, 0x00, 0x00, 0x00, 0x4C, 0x4F, 0x43, 0x41 - .byte 0x4C, 0x32, 0x00, 0x00, 0x4C, 0x4F, 0x43, 0x41, 0x4C, 0x33, 0x00, 0x00, 0x4C, 0x4F, 0x43, 0x41 - .byte 0x4C, 0x30, 0x00, 0x00, 0x4C, 0x4F, 0x43, 0x41, 0x4C, 0x31, 0x00, 0x00, 0xBC, 0xCE, 0x09, 0x02 - .byte 0xE9, 0x03, 0x00, 0x00, 0xBC, 0xCE, 0x09, 0x02, 0x14, 0x04, 0x00, 0x00, 0x65, 0x76, 0x65, 0x6E - .byte 0x74, 0x5F, 0x66, 0x6C, 0x61, 0x67, 0x2E, 0x63, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9C, 0xCE, 0x09, 0x02, 0x06, 0x00, 0x07, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xA4, 0xCE, 0x09, 0x02, 0x06, 0x00, 0x07, 0x00 - .byte 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8C, 0xCE, 0x09, 0x02, 0x06, 0x00, 0x07, 0x00 - .byte 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x94, 0xCE, 0x09, 0x02, 0x45, 0x76, 0x65, 0x6E - .byte 0x74, 0x46, 0x6C, 0x61, 0x67, 0x53, 0x69, 0x7A, 0x65, 0x20, 0x25, 0x30, 0x34, 0x78, 0x2F, 0x25 - .byte 0x30, 0x34, 0x78, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x65, 0x76, 0x65, 0x6E, 0x74, 0x20, 0x66, 0x6C - .byte 0x61, 0x67, 0x20, 0x65, 0x78, 0x70, 0x61, 0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x20, 0x65, 0x72, 0x72 - .byte 0x6F, 0x72, 0x20, 0x25, 0x64, 0x00, 0x00, 0x00, 0x65, 0x76, 0x65, 0x6E, 0x74, 0x20, 0x66, 0x6C - .byte 0x61, 0x67, 0x20, 0x72, 0x75, 0x6C, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x25, 0x64 - .byte 0x00, 0x00, 0x00, 0x00, 0x45, 0x76, 0x65, 0x6E, 0x74, 0x46, 0x6C, 0x61, 0x67, 0x20, 0x52, 0x65 - .byte 0x73, 0x75, 0x6D, 0x65, 0x47, 0x61, 0x6D, 0x65, 0x4D, 0x6F, 0x64, 0x65, 0x20, 0x25, 0x64, 0x0A - .byte 0x00, 0x00, 0x00, 0x00, 0x45, 0x76, 0x65, 0x6E, 0x74, 0x46, 0x6C, 0x61, 0x67, 0x20, 0x42, 0x61 - .byte 0x63, 0x6B, 0x75, 0x70, 0x47, 0x61, 0x6D, 0x65, 0x4D, 0x6F, 0x64, 0x65, 0x20, 0x25, 0x64, 0x0A - .byte 0x00, 0x00, 0x00, 0x00, 0x53, 0x55, 0x4D, 0x00, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4F, 0x4E, 0x00 - .byte 0x55, 0x4E, 0x49, 0x54, 0x5F, 0x53, 0x55, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x47, 0x41, 0x4D, 0x45 - .byte 0x5F, 0x4D, 0x4F, 0x44, 0x45, 0x00, 0x00, 0x00, 0x42, 0x41, 0x4E, 0x4B, 0x5F, 0x47, 0x4F, 0x4C - .byte 0x44, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x4E, 0x44, 0x49, 0x54, 0x49, 0x4F, 0x4E, 0x00, 0x00, 0x00 - .byte 0x50, 0x4F, 0x53, 0x49, 0x54, 0x49, 0x4F, 0x4E, 0x5F, 0x59, 0x00, 0x00, 0x47, 0x52, 0x4F, 0x55 - .byte 0x4E, 0x44, 0x5F, 0x4D, 0x41, 0x50, 0x00, 0x00, 0x43, 0x41, 0x52, 0x52, 0x59, 0x5F, 0x47, 0x4F - .byte 0x4C, 0x44, 0x00, 0x00, 0x50, 0x4F, 0x53, 0x49, 0x54, 0x49, 0x4F, 0x4E, 0x5F, 0x58, 0x00, 0x00 - .byte 0x46, 0x52, 0x49, 0x45, 0x4E, 0x44, 0x5F, 0x53, 0x55, 0x4D, 0x00, 0x00, 0x49, 0x54, 0x45, 0x4D - .byte 0x5F, 0x42, 0x41, 0x43, 0x4B, 0x55, 0x50, 0x00, 0x53, 0x49, 0x44, 0x45, 0x30, 0x36, 0x5F, 0x52 - .byte 0x4F, 0x4F, 0x4D, 0x00, 0x50, 0x4C, 0x41, 0x59, 0x45, 0x52, 0x5F, 0x4B, 0x49, 0x4E, 0x44, 0x00 - .byte 0x53, 0x49, 0x44, 0x45, 0x30, 0x32, 0x5F, 0x54, 0x41, 0x4C, 0x4B, 0x00, 0x45, 0x56, 0x45, 0x4E - .byte 0x54, 0x5F, 0x4C, 0x4F, 0x43, 0x41, 0x4C, 0x00, 0x47, 0x52, 0x4F, 0x55, 0x4E, 0x44, 0x5F, 0x45 - .byte 0x4E, 0x54, 0x45, 0x52, 0x00, 0x00, 0x00, 0x00, 0x47, 0x52, 0x4F, 0x55, 0x4E, 0x44, 0x5F, 0x50 - .byte 0x4C, 0x41, 0x43, 0x45, 0x00, 0x00, 0x00, 0x00, 0x53, 0x43, 0x45, 0x4E, 0x41, 0x52, 0x49, 0x4F - .byte 0x5F, 0x53, 0x55, 0x42, 0x34, 0x00, 0x00, 0x00, 0x52, 0x45, 0x43, 0x59, 0x43, 0x4C, 0x45, 0x5F - .byte 0x43, 0x4F, 0x55, 0x4E, 0x54, 0x00, 0x00, 0x00, 0x53, 0x43, 0x45, 0x4E, 0x41, 0x52, 0x49, 0x4F - .byte 0x5F, 0x53, 0x49, 0x44, 0x45, 0x00, 0x00, 0x00, 0x53, 0x43, 0x45, 0x4E, 0x41, 0x52, 0x49, 0x4F - .byte 0x5F, 0x53, 0x55, 0x42, 0x38, 0x00, 0x00, 0x00, 0x44, 0x55, 0x4E, 0x47, 0x45, 0x4F, 0x4E, 0x5F - .byte 0x45, 0x4E, 0x54, 0x45, 0x52, 0x00, 0x00, 0x00, 0x53, 0x43, 0x45, 0x4E, 0x41, 0x52, 0x49, 0x4F - .byte 0x5F, 0x53, 0x55, 0x42, 0x37, 0x00, 0x00, 0x00, 0x53, 0x43, 0x45, 0x4E, 0x41, 0x52, 0x49, 0x4F - .byte 0x5F, 0x53, 0x55, 0x42, 0x33, 0x00, 0x00, 0x00, 0x4C, 0x41, 0x4E, 0x47, 0x55, 0x41, 0x47, 0x45 - .byte 0x5F, 0x54, 0x59, 0x50, 0x45, 0x00, 0x00, 0x00, 0x50, 0x4C, 0x41, 0x59, 0x5F, 0x4F, 0x4C, 0x44 - .byte 0x5F, 0x47, 0x41, 0x4D, 0x45, 0x00, 0x00, 0x00, 0x53, 0x43, 0x45, 0x4E, 0x41, 0x52, 0x49, 0x4F - .byte 0x5F, 0x53, 0x55, 0x42, 0x31, 0x00, 0x00, 0x00, 0x53, 0x43, 0x45, 0x4E, 0x41, 0x52, 0x49, 0x4F - .byte 0x5F, 0x53, 0x55, 0x42, 0x36, 0x00, 0x00, 0x00, 0x53, 0x43, 0x45, 0x4E, 0x41, 0x52, 0x49, 0x4F - .byte 0x5F, 0x53, 0x55, 0x42, 0x32, 0x00, 0x00, 0x00, 0x47, 0x52, 0x4F, 0x55, 0x4E, 0x44, 0x5F, 0x47 - .byte 0x45, 0x54, 0x4F, 0x55, 0x54, 0x00, 0x00, 0x00, 0x53, 0x43, 0x45, 0x4E, 0x41, 0x52, 0x49, 0x4F - .byte 0x5F, 0x4D, 0x41, 0x49, 0x4E, 0x00, 0x00, 0x00, 0x53, 0x43, 0x45, 0x4E, 0x41, 0x52, 0x49, 0x4F - .byte 0x5F, 0x53, 0x55, 0x42, 0x35, 0x00, 0x00, 0x00, 0x52, 0x4F, 0x4D, 0x5F, 0x56, 0x41, 0x52, 0x49 - .byte 0x41, 0x54, 0x49, 0x4F, 0x4E, 0x00, 0x00, 0x00, 0x53, 0x49, 0x44, 0x45, 0x30, 0x31, 0x5F, 0x42 - .byte 0x4F, 0x53, 0x53, 0x32, 0x4E, 0x44, 0x00, 0x00, 0x48, 0x45, 0x52, 0x4F, 0x5F, 0x54, 0x41, 0x4C - .byte 0x4B, 0x5F, 0x4B, 0x49, 0x4E, 0x44, 0x00, 0x00, 0x53, 0x55, 0x42, 0x33, 0x30, 0x5F, 0x50, 0x52 - .byte 0x4F, 0x4A, 0x45, 0x43, 0x54, 0x50, 0x00, 0x00, 0x44, 0x55, 0x4E, 0x47, 0x45, 0x4F, 0x4E, 0x5F - .byte 0x53, 0x45, 0x4C, 0x45, 0x43, 0x54, 0x00, 0x00, 0x44, 0x55, 0x4E, 0x47, 0x45, 0x4F, 0x4E, 0x5F - .byte 0x52, 0x45, 0x53, 0x55, 0x4C, 0x54, 0x00, 0x00, 0x53, 0x49, 0x44, 0x45, 0x30, 0x38, 0x5F, 0x42 - .byte 0x4F, 0x53, 0x53, 0x32, 0x4E, 0x44, 0x00, 0x00, 0x4C, 0x4F, 0x54, 0x54, 0x45, 0x52, 0x59, 0x5F - .byte 0x52, 0x45, 0x53, 0x55, 0x4C, 0x54, 0x00, 0x00, 0x57, 0x4F, 0x52, 0x4C, 0x44, 0x5F, 0x4D, 0x41 - .byte 0x50, 0x5F, 0x4C, 0x45, 0x56, 0x45, 0x4C, 0x00, 0x53, 0x43, 0x45, 0x4E, 0x41, 0x52, 0x49, 0x4F - .byte 0x5F, 0x53, 0x45, 0x4C, 0x45, 0x43, 0x54, 0x00, 0x48, 0x45, 0x52, 0x4F, 0x5F, 0x46, 0x49, 0x52 - .byte 0x53, 0x54, 0x5F, 0x4B, 0x49, 0x4E, 0x44, 0x00, 0x48, 0x45, 0x52, 0x4F, 0x5F, 0x46, 0x49, 0x52 - .byte 0x53, 0x54, 0x5F, 0x4E, 0x41, 0x4D, 0x45, 0x00, 0x50, 0x4F, 0x53, 0x49, 0x54, 0x49, 0x4F, 0x4E - .byte 0x5F, 0x48, 0x45, 0x49, 0x47, 0x48, 0x54, 0x00, 0x49, 0x54, 0x45, 0x4D, 0x5F, 0x42, 0x41, 0x43 - .byte 0x4B, 0x55, 0x50, 0x5F, 0x47, 0x45, 0x54, 0x00, 0x41, 0x54, 0x54, 0x45, 0x4E, 0x44, 0x41, 0x4E - .byte 0x54, 0x31, 0x5F, 0x4B, 0x49, 0x4E, 0x44, 0x00, 0x41, 0x54, 0x54, 0x45, 0x4E, 0x44, 0x41, 0x4E - .byte 0x54, 0x32, 0x5F, 0x4B, 0x49, 0x4E, 0x44, 0x00, 0x53, 0x55, 0x42, 0x33, 0x30, 0x5F, 0x53, 0x50 - .byte 0x4F, 0x54, 0x5F, 0x4C, 0x45, 0x56, 0x45, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x43, 0x52, 0x59, 0x53 - .byte 0x54, 0x41, 0x4C, 0x5F, 0x43, 0x4F, 0x4C, 0x4F, 0x52, 0x5F, 0x30, 0x31, 0x00, 0x00, 0x00, 0x00 - .byte 0x43, 0x52, 0x59, 0x53, 0x54, 0x41, 0x4C, 0x5F, 0x43, 0x4F, 0x4C, 0x4F, 0x52, 0x5F, 0x30, 0x32 - .byte 0x00, 0x00, 0x00, 0x00, 0x49, 0x54, 0x45, 0x4D, 0x5F, 0x42, 0x41, 0x43, 0x4B, 0x55, 0x50, 0x5F - .byte 0x54, 0x41, 0x4B, 0x45, 0x00, 0x00, 0x00, 0x00, 0x43, 0x52, 0x59, 0x53, 0x54, 0x41, 0x4C, 0x5F - .byte 0x43, 0x4F, 0x4C, 0x4F, 0x52, 0x5F, 0x30, 0x33, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x4F, 0x54, 0x45 - .byte 0x5F, 0x4D, 0x4F, 0x44, 0x49, 0x46, 0x59, 0x5F, 0x46, 0x4C, 0x41, 0x47, 0x00, 0x00, 0x00, 0x00 - .byte 0x50, 0x41, 0x52, 0x54, 0x4E, 0x45, 0x52, 0x5F, 0x54, 0x41, 0x4C, 0x4B, 0x5F, 0x4B, 0x49, 0x4E - .byte 0x44, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x4E, 0x46, 0x49, 0x47, 0x5F, 0x43, 0x4F, 0x4C, 0x4F, 0x52 - .byte 0x5F, 0x4B, 0x49, 0x4E, 0x44, 0x00, 0x00, 0x00, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4F, 0x4E, 0x5F - .byte 0x49, 0x54, 0x45, 0x4D, 0x5F, 0x54, 0x45, 0x4D, 0x50, 0x00, 0x00, 0x00, 0x47, 0x52, 0x4F, 0x55 - .byte 0x4E, 0x44, 0x5F, 0x4D, 0x41, 0x50, 0x5F, 0x42, 0x41, 0x43, 0x4B, 0x55, 0x50, 0x00, 0x00, 0x00 - .byte 0x44, 0x45, 0x4C, 0x49, 0x56, 0x45, 0x52, 0x5F, 0x49, 0x54, 0x45, 0x4D, 0x5F, 0x54, 0x45, 0x4D - .byte 0x50, 0x00, 0x00, 0x00, 0x44, 0x55, 0x4E, 0x47, 0x45, 0x4F, 0x4E, 0x5F, 0x4F, 0x50, 0x45, 0x4E - .byte 0x5F, 0x4C, 0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x47, 0x52, 0x4F, 0x55, 0x4E, 0x44, 0x5F, 0x53 - .byte 0x54, 0x41, 0x52, 0x54, 0x5F, 0x4D, 0x4F, 0x44, 0x45, 0x00, 0x00, 0x00, 0x47, 0x52, 0x4F, 0x55 - .byte 0x4E, 0x44, 0x5F, 0x45, 0x4E, 0x54, 0x45, 0x52, 0x5F, 0x4C, 0x49, 0x4E, 0x4B, 0x00, 0x00, 0x00 - .byte 0x50, 0x4C, 0x41, 0x59, 0x45, 0x52, 0x5F, 0x4B, 0x49, 0x4E, 0x44, 0x5F, 0x42, 0x41, 0x43, 0x4B - .byte 0x55, 0x50, 0x00, 0x00, 0x50, 0x41, 0x52, 0x54, 0x4E, 0x45, 0x52, 0x5F, 0x46, 0x49, 0x52, 0x53 - .byte 0x54, 0x5F, 0x4B, 0x49, 0x4E, 0x44, 0x00, 0x00, 0x50, 0x41, 0x52, 0x54, 0x4E, 0x45, 0x52, 0x5F - .byte 0x46, 0x49, 0x52, 0x53, 0x54, 0x5F, 0x4E, 0x41, 0x4D, 0x45, 0x00, 0x00, 0x50, 0x4F, 0x53, 0x49 - .byte 0x54, 0x49, 0x4F, 0x4E, 0x5F, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4F, 0x4E, 0x00, 0x00 - .byte 0x44, 0x55, 0x4E, 0x47, 0x45, 0x4F, 0x4E, 0x5F, 0x45, 0x4E, 0x54, 0x45, 0x52, 0x5F, 0x4D, 0x4F - .byte 0x44, 0x45, 0x00, 0x00, 0x44, 0x55, 0x4E, 0x47, 0x45, 0x4F, 0x4E, 0x5F, 0x45, 0x4E, 0x54, 0x45 - .byte 0x52, 0x5F, 0x4C, 0x49, 0x53, 0x54, 0x00, 0x00, 0x44, 0x55, 0x4E, 0x47, 0x45, 0x4F, 0x4E, 0x5F - .byte 0x45, 0x56, 0x45, 0x4E, 0x54, 0x5F, 0x4C, 0x4F, 0x43, 0x41, 0x4C, 0x00, 0x53, 0x54, 0x41, 0x54 - .byte 0x49, 0x4F, 0x4E, 0x5F, 0x49, 0x54, 0x45, 0x4D, 0x5F, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x00 - .byte 0x47, 0x52, 0x4F, 0x55, 0x4E, 0x44, 0x5F, 0x45, 0x4E, 0x54, 0x45, 0x52, 0x5F, 0x42, 0x41, 0x43 - .byte 0x4B, 0x55, 0x50, 0x00, 0x44, 0x45, 0x4C, 0x49, 0x56, 0x45, 0x52, 0x5F, 0x49, 0x54, 0x45, 0x4D - .byte 0x5F, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x00, 0x47, 0x52, 0x4F, 0x55, 0x4E, 0x44, 0x5F, 0x50 - .byte 0x4C, 0x41, 0x43, 0x45, 0x5F, 0x42, 0x41, 0x43, 0x4B, 0x55, 0x50, 0x00, 0x53, 0x55, 0x42, 0x33 - .byte 0x30, 0x5F, 0x53, 0x50, 0x4F, 0x54, 0x5F, 0x44, 0x49, 0x53, 0x43, 0x4F, 0x56, 0x45, 0x52, 0x00 - .byte 0x44, 0x55, 0x4E, 0x47, 0x45, 0x4F, 0x4E, 0x5F, 0x45, 0x4E, 0x54, 0x45, 0x52, 0x5F, 0x49, 0x4E - .byte 0x44, 0x45, 0x58, 0x00, 0x42, 0x49, 0x54, 0x5F, 0x46, 0x55, 0x57, 0x41, 0x52, 0x41, 0x4E, 0x54 - .byte 0x45, 0x5F, 0x4C, 0x4F, 0x43, 0x41, 0x4C, 0x00, 0x44, 0x55, 0x4E, 0x47, 0x45, 0x4F, 0x4E, 0x5F - .byte 0x41, 0x52, 0x52, 0x49, 0x56, 0x45, 0x5F, 0x4C, 0x49, 0x53, 0x54, 0x00, 0x52, 0x45, 0x51, 0x55 - .byte 0x45, 0x53, 0x54, 0x5F, 0x43, 0x4C, 0x45, 0x41, 0x52, 0x5F, 0x43, 0x4F, 0x55, 0x4E, 0x54, 0x00 - .byte 0x49, 0x54, 0x45, 0x4D, 0x5F, 0x42, 0x41, 0x43, 0x4B, 0x55, 0x50, 0x5F, 0x4B, 0x55, 0x52, 0x45 - .byte 0x4B, 0x55, 0x52, 0x45, 0x00, 0x00, 0x00, 0x00, 0x53, 0x50, 0x45, 0x43, 0x49, 0x41, 0x4C, 0x5F - .byte 0x45, 0x50, 0x49, 0x53, 0x4F, 0x44, 0x45, 0x5F, 0x54, 0x59, 0x50, 0x45, 0x00, 0x00, 0x00, 0x00 - .byte 0x53, 0x50, 0x45, 0x43, 0x49, 0x41, 0x4C, 0x5F, 0x45, 0x50, 0x49, 0x53, 0x4F, 0x44, 0x45, 0x5F - .byte 0x4F, 0x50, 0x45, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x47, 0x52, 0x4F, 0x55, 0x4E, 0x44, 0x5F, 0x47 - .byte 0x45, 0x54, 0x4F, 0x55, 0x54, 0x5F, 0x42, 0x41, 0x43, 0x4B, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00 - .byte 0x44, 0x55, 0x4E, 0x47, 0x45, 0x4F, 0x4E, 0x5F, 0x45, 0x4E, 0x54, 0x45, 0x52, 0x5F, 0x42, 0x41 - .byte 0x43, 0x4B, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x44, 0x55, 0x4E, 0x47, 0x45, 0x4F, 0x4E, 0x5F - .byte 0x50, 0x52, 0x45, 0x53, 0x45, 0x4E, 0x54, 0x5F, 0x4C, 0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00 - .byte 0x44, 0x55, 0x4E, 0x47, 0x45, 0x4F, 0x4E, 0x5F, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5F - .byte 0x4C, 0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x53, 0x43, 0x45, 0x4E, 0x41, 0x52, 0x49, 0x4F - .byte 0x5F, 0x42, 0x41, 0x4C, 0x41, 0x4E, 0x43, 0x45, 0x5F, 0x46, 0x4C, 0x41, 0x47, 0x00, 0x00, 0x00 - .byte 0x54, 0x45, 0x41, 0x4D, 0x5F, 0x52, 0x41, 0x4E, 0x4B, 0x5F, 0x45, 0x56, 0x45, 0x4E, 0x54, 0x5F - .byte 0x4C, 0x45, 0x56, 0x45, 0x4C, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x4D, 0x50, 0x55, 0x4C, 0x53, 0x4F - .byte 0x52, 0x59, 0x5F, 0x53, 0x41, 0x56, 0x45, 0x5F, 0x50, 0x4F, 0x49, 0x4E, 0x54, 0x00, 0x00, 0x00 - .byte 0x44, 0x55, 0x4E, 0x47, 0x45, 0x4F, 0x4E, 0x5F, 0x43, 0x4F, 0x4E, 0x51, 0x55, 0x45, 0x53, 0x54 - .byte 0x5F, 0x4C, 0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x44, 0x55, 0x4E, 0x47, 0x45, 0x4F, 0x4E, 0x5F - .byte 0x52, 0x45, 0x53, 0x55, 0x4C, 0x54, 0x5F, 0x42, 0x41, 0x43, 0x4B, 0x55, 0x50, 0x00, 0x00, 0x00 - .byte 0x41, 0x54, 0x54, 0x45, 0x4E, 0x44, 0x41, 0x4E, 0x54, 0x31, 0x5F, 0x4B, 0x49, 0x4E, 0x44, 0x5F - .byte 0x42, 0x41, 0x43, 0x4B, 0x55, 0x50, 0x00, 0x00, 0x41, 0x54, 0x54, 0x45, 0x4E, 0x44, 0x41, 0x4E - .byte 0x54, 0x32, 0x5F, 0x4B, 0x49, 0x4E, 0x44, 0x5F, 0x42, 0x41, 0x43, 0x4B, 0x55, 0x50, 0x00, 0x00 - .byte 0x53, 0x43, 0x45, 0x4E, 0x41, 0x52, 0x49, 0x4F, 0x5F, 0x4D, 0x41, 0x49, 0x4E, 0x5F, 0x42, 0x49 - .byte 0x54, 0x5F, 0x46, 0x4C, 0x41, 0x47, 0x00, 0x00, 0x53, 0x43, 0x45, 0x4E, 0x41, 0x52, 0x49, 0x4F - .byte 0x5F, 0x54, 0x41, 0x4C, 0x4B, 0x5F, 0x42, 0x49, 0x54, 0x5F, 0x46, 0x4C, 0x41, 0x47, 0x00, 0x00 - .byte 0x53, 0x43, 0x45, 0x4E, 0x41, 0x52, 0x49, 0x4F, 0x5F, 0x42, 0x41, 0x4C, 0x41, 0x4E, 0x43, 0x45 - .byte 0x5F, 0x44, 0x45, 0x42, 0x55, 0x47, 0x00, 0x00, 0x53, 0x43, 0x45, 0x4E, 0x41, 0x52, 0x49, 0x4F - .byte 0x5F, 0x53, 0x45, 0x4C, 0x45, 0x43, 0x54, 0x5F, 0x42, 0x41, 0x43, 0x4B, 0x55, 0x50, 0x00, 0x00 - .byte 0x53, 0x55, 0x42, 0x33, 0x30, 0x5F, 0x54, 0x52, 0x45, 0x41, 0x53, 0x55, 0x52, 0x45, 0x5F, 0x44 - .byte 0x49, 0x53, 0x43, 0x4F, 0x56, 0x45, 0x52, 0x00, 0x44, 0x55, 0x4E, 0x47, 0x45, 0x4F, 0x4E, 0x5F - .byte 0x45, 0x4E, 0x54, 0x45, 0x52, 0x5F, 0x46, 0x52, 0x45, 0x51, 0x55, 0x45, 0x4E, 0x43, 0x59, 0x00 - .byte 0x47, 0x52, 0x4F, 0x55, 0x4E, 0x44, 0x5F, 0x45, 0x4E, 0x54, 0x45, 0x52, 0x5F, 0x4C, 0x49, 0x4E - .byte 0x4B, 0x5F, 0x42, 0x41, 0x43, 0x4B, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x53, 0x50, 0x45, 0x43 - .byte 0x49, 0x41, 0x4C, 0x5F, 0x45, 0x50, 0x49, 0x53, 0x4F, 0x44, 0x45, 0x5F, 0x4F, 0x50, 0x45, 0x4E - .byte 0x5F, 0x4F, 0x4C, 0x44, 0x00, 0x00, 0x00, 0x00, 0x53, 0x50, 0x45, 0x43, 0x49, 0x41, 0x4C, 0x5F - .byte 0x45, 0x50, 0x49, 0x53, 0x4F, 0x44, 0x45, 0x5F, 0x43, 0x4F, 0x4E, 0x51, 0x55, 0x45, 0x53, 0x54 - .byte 0x00, 0x00, 0x00, 0x00, 0x47, 0x52, 0x4F, 0x55, 0x4E, 0x44, 0x5F, 0x53, 0x54, 0x41, 0x52, 0x54 - .byte 0x5F, 0x4D, 0x4F, 0x44, 0x45, 0x5F, 0x42, 0x41, 0x43, 0x4B, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00 - .byte 0x52, 0x41, 0x4E, 0x44, 0x4F, 0x4D, 0x5F, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5F, 0x4E - .byte 0x50, 0x43, 0x30, 0x33, 0x5F, 0x4B, 0x49, 0x4E, 0x44, 0x00, 0x00, 0x00, 0x50, 0x45, 0x52, 0x46 - .byte 0x4F, 0x52, 0x4D, 0x41, 0x4E, 0x43, 0x45, 0x5F, 0x50, 0x52, 0x4F, 0x47, 0x52, 0x45, 0x53, 0x53 - .byte 0x5F, 0x4C, 0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x44, 0x55, 0x4E, 0x47, 0x45, 0x4F, 0x4E, 0x5F - .byte 0x45, 0x4E, 0x54, 0x45, 0x52, 0x5F, 0x4D, 0x4F, 0x44, 0x45, 0x5F, 0x42, 0x41, 0x43, 0x4B, 0x55 - .byte 0x50, 0x00, 0x00, 0x00, 0x57, 0x4F, 0x52, 0x4C, 0x44, 0x5F, 0x4D, 0x41, 0x50, 0x5F, 0x4D, 0x41 - .byte 0x52, 0x4B, 0x5F, 0x4C, 0x49, 0x53, 0x54, 0x5F, 0x4E, 0x4F, 0x52, 0x4D, 0x41, 0x4C, 0x00, 0x00 - .byte 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5F, 0x54, 0x48, 0x41, 0x4E, 0x4B, 0x53, 0x5F, 0x52 - .byte 0x45, 0x53, 0x55, 0x4C, 0x54, 0x5F, 0x4B, 0x49, 0x4E, 0x44, 0x00, 0x00, 0x43, 0x4F, 0x4D, 0x50 - .byte 0x55, 0x4C, 0x53, 0x4F, 0x52, 0x59, 0x5F, 0x53, 0x41, 0x56, 0x45, 0x5F, 0x50, 0x4F, 0x49, 0x4E - .byte 0x54, 0x5F, 0x53, 0x49, 0x44, 0x45, 0x00, 0x00, 0x44, 0x55, 0x4E, 0x47, 0x45, 0x4F, 0x4E, 0x5F - .byte 0x45, 0x4E, 0x54, 0x45, 0x52, 0x5F, 0x49, 0x4E, 0x44, 0x45, 0x58, 0x5F, 0x42, 0x41, 0x43, 0x4B - .byte 0x55, 0x50, 0x00, 0x00, 0x57, 0x4F, 0x52, 0x4C, 0x44, 0x5F, 0x4D, 0x41, 0x50, 0x5F, 0x4D, 0x41 - .byte 0x52, 0x4B, 0x5F, 0x4C, 0x49, 0x53, 0x54, 0x5F, 0x53, 0x50, 0x45, 0x43, 0x49, 0x41, 0x4C, 0x00 - .byte 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x45, 0x5F, 0x53, 0x50, 0x45, 0x43, 0x49, 0x41, 0x4C, 0x5F - .byte 0x45, 0x50, 0x49, 0x53, 0x4F, 0x44, 0x45, 0x5F, 0x54, 0x59, 0x50, 0x45, 0x00, 0x00, 0x00, 0x00 - .byte 0x53, 0x43, 0x45, 0x4E, 0x41, 0x52, 0x49, 0x4F, 0x5F, 0x4D, 0x41, 0x49, 0x4E, 0x5F, 0x42, 0x49 - .byte 0x54, 0x5F, 0x46, 0x4C, 0x41, 0x47, 0x5F, 0x42, 0x41, 0x43, 0x4B, 0x55, 0x50, 0x00, 0x00, 0x00 - .byte 0x44, 0x55, 0x4E, 0x47, 0x45, 0x4F, 0x4E, 0x5F, 0x45, 0x4E, 0x54, 0x45, 0x52, 0x5F, 0x46, 0x52 - .byte 0x45, 0x51, 0x55, 0x45, 0x4E, 0x43, 0x59, 0x5F, 0x42, 0x41, 0x43, 0x4B, 0x55, 0x50, 0x00, 0x00 - .byte 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5F, 0x54, 0x48, 0x41, 0x4E, 0x4B, 0x53, 0x5F, 0x52 - .byte 0x45, 0x53, 0x55, 0x4C, 0x54, 0x5F, 0x56, 0x41, 0x52, 0x49, 0x41, 0x54, 0x49, 0x4F, 0x4E, 0x00 - .byte 0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0xA8, 0xCF, 0x09, 0x02 - .byte 0x08, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD4, 0xCF, 0x09, 0x02 - .byte 0x03, 0x00, 0x06, 0x00, 0xBA, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xF8, 0xD1, 0x09, 0x02 - .byte 0x03, 0x00, 0x06, 0x00, 0xBC, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x48, 0xD1, 0x09, 0x02 - .byte 0x03, 0x00, 0x06, 0x00, 0xBE, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x98, 0xD0, 0x09, 0x02 - .byte 0x03, 0x00, 0x06, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xD1, 0x09, 0x02 - .byte 0x03, 0x00, 0x06, 0x00, 0xC2, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x28, 0xD1, 0x09, 0x02 - .byte 0x03, 0x00, 0x06, 0x00, 0xC4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD8, 0xD0, 0x09, 0x02 - .byte 0x03, 0x00, 0x06, 0x00, 0xC6, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x78, 0xD0, 0x09, 0x02 - .byte 0x03, 0x00, 0x06, 0x00, 0xC8, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x58, 0xD1, 0x09, 0x02 - .byte 0x03, 0x00, 0x06, 0x00, 0xCA, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0xD1, 0x09, 0x02 - .byte 0x03, 0x00, 0x06, 0x00, 0xCC, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xC8, 0xD0, 0x09, 0x02 - .byte 0x03, 0x00, 0x06, 0x00, 0xCE, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xA8, 0xD0, 0x09, 0x02 - .byte 0x01, 0x00, 0x06, 0x00, 0x1B, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x40, 0xD0, 0x09, 0x02 - .byte 0x01, 0x00, 0x06, 0x00, 0x1B, 0x01, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x28, 0xD0, 0x09, 0x02 - .byte 0x01, 0x00, 0x06, 0x00, 0x1B, 0x01, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0xC8, 0xD1, 0x09, 0x02 - .byte 0x01, 0x00, 0x06, 0x00, 0x1B, 0x01, 0x07, 0x00, 0x01, 0x00, 0x00, 0x00, 0x78, 0xD1, 0x09, 0x02 - .byte 0x01, 0x00, 0x06, 0x00, 0x1C, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x10, 0xD6, 0x09, 0x02 - .byte 0x01, 0x00, 0x06, 0x00, 0x2C, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x28, 0xD6, 0x09, 0x02 - .byte 0x04, 0x00, 0x06, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x68, 0xD5, 0x09, 0x02 - .byte 0x04, 0x00, 0x06, 0x00, 0xB1, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x40, 0xD6, 0x09, 0x02 - .byte 0x03, 0x00, 0x06, 0x00, 0xD0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7C, 0xD2, 0x09, 0x02 - .byte 0x03, 0x00, 0x06, 0x00, 0xD1, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x90, 0xD2, 0x09, 0x02 - .byte 0x03, 0x00, 0x06, 0x00, 0xD2, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xB8, 0xD2, 0x09, 0x02 - .byte 0x03, 0x00, 0x06, 0x00, 0xD3, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x98, 0xD5, 0x09, 0x02 - .byte 0x03, 0x00, 0x06, 0x00, 0xD4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9C, 0xD7, 0x09, 0x02 - .byte 0x03, 0x00, 0x06, 0x00, 0xD5, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x58, 0xD6, 0x09, 0x02 - .byte 0x01, 0x00, 0x06, 0x00, 0x4C, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x10, 0xD8, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x58, 0xD0, 0x09, 0x02 - .byte 0x03, 0x00, 0x02, 0x00, 0xDD, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6C, 0xD3, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x32, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x38, 0xD1, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x34, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xEC, 0xCF, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x36, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x68, 0xD0, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x20, 0xD4, 0x09, 0x02 - .byte 0x03, 0x00, 0x02, 0x00, 0xDE, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xA0, 0xD6, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, 0xD5, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x1C, 0xD3, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x56, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x48, 0xD4, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x60, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xA8, 0xD1, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x62, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xB8, 0xD0, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD0, 0xD3, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x66, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x70, 0xD4, 0x09, 0x02 - .byte 0x05, 0x00, 0x02, 0x00, 0xA4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x88, 0xD6, 0x09, 0x02 - .byte 0x03, 0x00, 0x02, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xB8, 0xD1, 0x09, 0x02 - .byte 0x03, 0x00, 0x02, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x58, 0xD3, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x68, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x20, 0xD5, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x72, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x48, 0xD7, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xB8, 0xD7, 0x09, 0x02 - .byte 0x05, 0x00, 0x02, 0x00, 0xA6, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x30, 0xD8, 0x09, 0x02 - .byte 0x03, 0x00, 0x02, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xC8, 0xD5, 0x09, 0x02 - .byte 0x03, 0x00, 0x02, 0x00, 0xEA, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xF4, 0xD6, 0x09, 0x02 - .byte 0x03, 0x00, 0x02, 0x00, 0xEF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xAC, 0xD4, 0x09, 0x02 - .byte 0x03, 0x00, 0x02, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x34, 0xD0, 0x09, 0x02 - .byte 0x03, 0x00, 0x02, 0x00, 0xF1, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x48, 0xD2, 0x09, 0x02 - .byte 0x03, 0x00, 0x02, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x58, 0xD2, 0x09, 0x02 - .byte 0x03, 0x00, 0x02, 0x00, 0xF3, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x80, 0xD3, 0x09, 0x02 - .byte 0x03, 0x00, 0x02, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xE0, 0xD5, 0x09, 0x02 - .byte 0x03, 0x00, 0x02, 0x00, 0xFD, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xF8, 0xD5, 0x09, 0x02 - .byte 0x09, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0xD0, 0x09, 0x02 - .byte 0x09, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xB0, 0xCF, 0x09, 0x02 - .byte 0x09, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xF8, 0xCF, 0x09, 0x02 - .byte 0x09, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xC8, 0xCF, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x86, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0xD2, 0x09, 0x02 - .byte 0x02, 0x00, 0x02, 0x00, 0x07, 0x01, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x18, 0xD2, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x94, 0xD3, 0x09, 0x02 - .byte 0x02, 0x00, 0x02, 0x00, 0x11, 0x01, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA8, 0xD3, 0x09, 0x02 - .byte 0x04, 0x00, 0x02, 0x00, 0xB2, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x88, 0xD1, 0x09, 0x02 - .byte 0x04, 0x00, 0x02, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xE0, 0xD2, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0xD7, 0x09, 0x02 - .byte 0x04, 0x00, 0x02, 0x00, 0xB4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xF4, 0xD2, 0x09, 0x02 - .byte 0x04, 0x00, 0x02, 0x00, 0xB5, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x68, 0xD1, 0x09, 0x02 - .byte 0x09, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xE8, 0xD0, 0x09, 0x02 - .byte 0x09, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xBC, 0xCF, 0x09, 0x02 - .byte 0x09, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xF0, 0xD7, 0x09, 0x02 - .byte 0x04, 0x00, 0x02, 0x00, 0xB6, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD8, 0xD4, 0x09, 0x02 - .byte 0x01, 0x00, 0x02, 0x00, 0x8C, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xF0, 0xD4, 0x09, 0x02 - .byte 0x01, 0x00, 0x02, 0x00, 0x8D, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xBC, 0xD6, 0x09, 0x02 - .byte 0x01, 0x00, 0x02, 0x00, 0x8E, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xD8, 0xD6, 0x09, 0x02 - .byte 0x01, 0x00, 0x02, 0x00, 0x8F, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x2C, 0xD7, 0x09, 0x02 - .byte 0x01, 0x00, 0x04, 0x00, 0x97, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x44, 0xD3, 0x09, 0x02 - .byte 0x01, 0x00, 0x04, 0x00, 0xB7, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xE4, 0xD3, 0x09, 0x02 - .byte 0x01, 0x00, 0x04, 0x00, 0xD7, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x98, 0xD4, 0x09, 0x02 - .byte 0x01, 0x00, 0x04, 0x00, 0xF7, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xB0, 0xD5, 0x09, 0x02 - .byte 0x01, 0x00, 0x04, 0x00, 0x17, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x38, 0xD5, 0x09, 0x02 - .byte 0x01, 0x00, 0x04, 0x00, 0x37, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x50, 0xD5, 0x09, 0x02 - .byte 0x01, 0x00, 0x05, 0x00, 0x57, 0x02, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x64, 0xD7, 0x09, 0x02 - .byte 0x01, 0x00, 0x05, 0x00, 0x7F, 0x02, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xD4, 0xD7, 0x09, 0x02 - .byte 0x03, 0x00, 0x05, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xE8, 0xD1, 0x09, 0x02 - .byte 0x07, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0xD0, 0x09, 0x02 - .byte 0x07, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xE0, 0xCF, 0x09, 0x02 - .byte 0x07, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x28, 0xD2, 0x09, 0x02 - .byte 0x04, 0x00, 0x02, 0x00, 0xB7, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xBC, 0xD3, 0x09, 0x02 - .byte 0x06, 0x00, 0x05, 0x00, 0x8C, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x4C, 0xD0, 0x09, 0x02 - .byte 0x06, 0x00, 0x04, 0x00, 0x8E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xF8, 0xD3, 0x09, 0x02 - .byte 0x01, 0x00, 0x05, 0x00, 0xA7, 0x02, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x0C, 0xD4, 0x09, 0x02 - .byte 0x01, 0x00, 0x05, 0x00, 0xAB, 0x02, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x08, 0xD3, 0x09, 0x02 - .byte 0x01, 0x00, 0x05, 0x00, 0xAF, 0x02, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x34, 0xD4, 0x09, 0x02 - .byte 0x01, 0x00, 0x05, 0x00, 0xB1, 0x02, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x30, 0xD3, 0x09, 0x02 - .byte 0x01, 0x00, 0x06, 0x00, 0xB3, 0x02, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x84, 0xD4, 0x09, 0x02 - .byte 0x03, 0x00, 0x06, 0x00, 0x03, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD8, 0xD1, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x90, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1C, 0xD0, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x94, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xC0, 0xD4, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x98, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xA4, 0xD2, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0x9C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x38, 0xD2, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0xD7, 0x09, 0x02 - .byte 0x06, 0x00, 0x02, 0x00, 0xA2, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x50, 0xD8, 0x09, 0x02 - .byte 0x01, 0x00, 0x06, 0x00, 0xB3, 0x02, 0x05, 0x00, 0x01, 0x00, 0x00, 0x00, 0x70, 0xD6, 0x09, 0x02 - .byte 0x01, 0x00, 0x06, 0x00, 0xB3, 0x02, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5C, 0xD4, 0x09, 0x02 - .byte 0x07, 0x00, 0x02, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x88, 0xD0, 0x09, 0x02 - .byte 0x03, 0x00, 0x02, 0x00, 0x04, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x68, 0xD2, 0x09, 0x02 - .byte 0x03, 0x00, 0x02, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0xD5, 0x09, 0x02 - .byte 0x03, 0x00, 0x02, 0x00, 0x06, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xF8, 0xD0, 0x09, 0x02 - .byte 0x09, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xCC, 0xD2, 0x09, 0x02 - .byte 0x01, 0x00, 0x06, 0x00, 0xB3, 0x02, 0x07, 0x00, 0x01, 0x00, 0x00, 0x00, 0x98, 0xD1, 0x09, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0xB4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0xCF, 0x09, 0x02 - .byte 0x53, 0x43, 0x45, 0x4E, 0x41, 0x52, 0x49, 0x4F, 0x20, 0x43, 0x41, 0x4C, 0x43, 0x20, 0x5B, 0x25 - .byte 0x33, 0x64, 0x5D, 0x20, 0x25, 0x34, 0x64, 0x20, 0x25, 0x34, 0x64, 0x20, 0x2D, 0x3E, 0x20, 0x25 - .byte 0x34, 0x64, 0x20, 0x25, 0x34, 0x64, 0x00, 0x00, 0x53, 0x63, 0x65, 0x6E, 0x61, 0x72, 0x69, 0x6F - .byte 0x46, 0x6C, 0x61, 0x67, 0x20, 0x52, 0x65, 0x73, 0x75, 0x6D, 0x65, 0x47, 0x61, 0x6D, 0x65, 0x4D - .byte 0x6F, 0x64, 0x65, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x53, 0x63, 0x65, 0x6E, 0x61, 0x72, 0x69, 0x6F - .byte 0x46, 0x6C, 0x61, 0x67, 0x20, 0x42, 0x61, 0x63, 0x6B, 0x75, 0x70, 0x47, 0x61, 0x6D, 0x65, 0x4D - .byte 0x6F, 0x64, 0x65, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x63, 0x64, 0x65, 0x66, 0x67, 0xFF, 0x00, 0x00 - .byte 0xFF, 0x00, 0x00, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0E, 0x00, 0x05, 0x00 - .byte 0x00, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x01, 0x00, 0x08, 0x00 - .byte 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x09, 0x00, 0x01, 0x00, 0x0E, 0x00, 0x05, 0x00, 0x01, 0x00 - .byte 0x02, 0x00, 0x09, 0x00, 0x01, 0x00, 0x19, 0x00, 0x09, 0x00, 0x00, 0x00, 0x08, 0x00, 0x09, 0x00 - .byte 0x01, 0x00, 0x15, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00 - .byte 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x04, 0x00, 0x01, 0x00, 0x07, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x14, 0x00, 0x02, 0x00, 0x01, 0x00, 0x0E, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00 - .byte 0x01, 0x00, 0x19, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x02, 0x00, 0x01, 0x00, 0x14, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x11, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00 - .byte 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x11, 0x00 - .byte 0x0D, 0x00, 0x00, 0x00, 0x46, 0x4F, 0x4E, 0x54, 0x2F, 0x6B, 0x61, 0x6F, 0x6D, 0x61, 0x64, 0x6F - .byte 0x2E, 0x6B, 0x61, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x26, 0x36, 0x37, 0x4E, 0x50, 0x52, 0x38, 0x39 - .byte 0x46, 0x30, 0x2B, 0x23, 0x53, 0x54, 0x58, 0x59, 0x34, 0x35, 0x4D, 0x43, 0x48, 0x4A, 0x2D, 0x4B - .byte 0x31, 0x32, 0x3D, 0x25, 0x33, 0x51, 0x40, 0x57, 0x07, 0x1B, 0x0D, 0x1F, 0x15, 0x1A, 0x06, 0x01 - .byte 0x17, 0x1C, 0x09, 0x1E, 0x0A, 0x20, 0x10, 0x21, 0x0F, 0x08, 0x1D, 0x11, 0x14, 0x00, 0x13, 0x16 - .byte 0x05, 0x12, 0x0E, 0x04, 0x03, 0x18, 0x02, 0x0B, 0x0C, 0x19, 0x00, 0x00, 0x0D, 0x07, 0x19, 0x0F - .byte 0x04, 0x1D, 0x2A, 0x31, 0x08, 0x13, 0x2D, 0x18, 0x0E, 0x1A, 0x1B, 0x29, 0x01, 0x20, 0x21, 0x22 - .byte 0x11, 0x33, 0x26, 0x00, 0x35, 0x0A, 0x2B, 0x1F, 0x12, 0x23, 0x2C, 0x17, 0x27, 0x10, 0x1C, 0x30 - .byte 0x0B, 0x02, 0x24, 0x09, 0x32, 0x05, 0x28, 0x34, 0x2E, 0x03, 0x1E, 0x0C, 0x25, 0x14, 0x2F, 0x16 - .byte 0x06, 0x15, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0B, 0xFF, 0x1B, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A - .byte 0xFF, 0x16, 0xFF, 0xFF, 0x09, 0x18, 0x19, 0x1C, 0x10, 0x11, 0x01, 0x02, 0x06, 0x07, 0xFF, 0xFF - .byte 0xFF, 0x1A, 0xFF, 0xFF, 0x1E, 0xFF, 0xFF, 0x13, 0xFF, 0xFF, 0x08, 0xFF, 0x14, 0xFF, 0x15, 0x17 - .byte 0xFF, 0x12, 0x03, 0xFF, 0x04, 0x1D, 0x05, 0x0C, 0x0D, 0xFF, 0xFF, 0x1F, 0x0E, 0x0F, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x73, 0x75, 0x6D, 0x3A, 0x20, 0x30, 0x78 - .byte 0x25, 0x30, 0x38, 0x78, 0x20, 0x30, 0x78, 0x25, 0x30, 0x32, 0x78, 0x0A, 0x00, 0x00, 0x00, 0x00 - .byte 0x1B, 0x0E, 0x16, 0x1E, 0x13, 0x19, 0x03, 0x0F, 0x00, 0x05, 0x18, 0x06, 0x1C, 0x15, 0x04, 0x1D - .byte 0x17, 0x1F, 0x11, 0x02, 0x10, 0x12, 0x14, 0x08, 0x0B, 0x0D, 0x01, 0x09, 0x1A, 0x0A, 0x07, 0x0C - .byte 0x2E, 0x75, 0x3F, 0x99, 0x09, 0x6C, 0xBC, 0x61, 0x7C, 0x2A, 0x96, 0x4A, 0xF4, 0x6D, 0x29, 0xFA - .byte 0x90, 0x14, 0x9D, 0x33, 0x6F, 0xCB, 0x49, 0x3C, 0x48, 0x80, 0x7B, 0x46, 0x67, 0x01, 0x17, 0x59 - .byte 0xB8, 0xFA, 0x70, 0xC0, 0x44, 0x78, 0x48, 0xFB, 0x26, 0x80, 0x81, 0xFC, 0xFD, 0x61, 0x70, 0xC7 - .byte 0xFE, 0xA8, 0x70, 0x28, 0x6C, 0x9C, 0x07, 0xA4, 0xCB, 0x3F, 0x70, 0xA3, 0x8C, 0xD6, 0xFF, 0xB0 - .byte 0x7A, 0x3A, 0x35, 0x54, 0xE9, 0x9A, 0x3B, 0x61, 0x16, 0x41, 0xE9, 0xA3, 0x90, 0xA3, 0xE9, 0xEE - .byte 0x0E, 0xFA, 0xDC, 0x9B, 0xD6, 0xFB, 0x24, 0xB5, 0x41, 0x9A, 0x20, 0xBA, 0xB3, 0x51, 0x7A, 0x36 - .byte 0x3E, 0x60, 0x0E, 0x3D, 0x02, 0xB0, 0x34, 0x57, 0x69, 0x81, 0xEB, 0x67, 0xF3, 0xEB, 0x8C, 0x47 - .byte 0x93, 0xCE, 0x2A, 0xAF, 0x35, 0xF4, 0x74, 0x87, 0x50, 0x2C, 0x39, 0x68, 0xBB, 0x47, 0x1A, 0x02 - .byte 0xA3, 0x93, 0x64, 0x2E, 0x8C, 0xAD, 0xB1, 0xC4, 0x61, 0x04, 0x5F, 0xBD, 0x59, 0x21, 0x1C, 0xE7 - .byte 0x0E, 0x29, 0x26, 0x97, 0x70, 0xA9, 0xCD, 0x18, 0xA3, 0x7B, 0x74, 0x70, 0x96, 0xDE, 0xA6, 0x72 - .byte 0xDD, 0x13, 0x93, 0xAA, 0x90, 0x6C, 0xA7, 0xB5, 0x76, 0x2F, 0xA8, 0x7A, 0xC8, 0x81, 0x06, 0xBB - .byte 0x85, 0x75, 0x11, 0x0C, 0xD2, 0xD1, 0xC9, 0xF8, 0x81, 0x70, 0xEE, 0xC8, 0x71, 0x53, 0x3D, 0xAF - .byte 0x76, 0xCB, 0x0D, 0xC1, 0x56, 0x28, 0xE8, 0x3C, 0x61, 0x64, 0x4B, 0xB8, 0xEF, 0x3B, 0x41, 0x09 - .byte 0x72, 0x07, 0x50, 0xAD, 0xF3, 0x2E, 0x5C, 0x43, 0xFF, 0xC3, 0xB3, 0x32, 0x7A, 0x3E, 0x9C, 0xA3 - .byte 0xC2, 0xAB, 0x10, 0x60, 0x99, 0xFB, 0x08, 0x8A, 0x90, 0x57, 0x8A, 0x7F, 0x61, 0x90, 0x21, 0x88 - .byte 0x55, 0xE8, 0xFC, 0x4B, 0x0D, 0x4A, 0x7A, 0x48, 0xC9, 0xB0, 0xC7, 0xA6, 0xD0, 0x04, 0x7E, 0x05 - .byte 0x03, 0x00, 0x00, 0x03, 0x04, 0x01, 0x00, 0x05, 0x01, 0x01, 0x04, 0x05, 0x06, 0x02, 0x00, 0x06 - .byte 0x09, 0x03, 0x00, 0x0A, 0x01, 0x03, 0x09, 0x0A, 0x08, 0x04, 0x00, 0x08, 0x0C, 0x05, 0x00, 0x0C - .byte 0x09, 0x06, 0x00, 0x09, 0x05, 0x07, 0x00, 0x05, 0x0E, 0x08, 0x00, 0x0E, 0x05, 0x09, 0x00, 0x05 - .byte 0x0B, 0x0A, 0x00, 0x0B, 0x05, 0x0B, 0x00, 0x05, 0x08, 0x0C, 0x00, 0x10, 0x07, 0x0C, 0x08, 0x10 - .byte 0x01, 0x0C, 0x0F, 0x10, 0x0A, 0x0D, 0x00, 0x14, 0x09, 0x0D, 0x0A, 0x14, 0x01, 0x0D, 0x13, 0x14 - .byte 0x0F, 0x0E, 0x00, 0x0F, 0x0A, 0x0F, 0x00, 0x15, 0x0A, 0x0F, 0x0A, 0x15, 0x01, 0x0F, 0x14, 0x15 - .byte 0x0B, 0x10, 0x00, 0x0B, 0x0D, 0x11, 0x00, 0x0E, 0x01, 0x11, 0x0D, 0x0E, 0x08, 0x12, 0x00, 0x08 - .byte 0x0F, 0x13, 0x00, 0x0F, 0x08, 0x14, 0x00, 0x0F, 0x06, 0x14, 0x08, 0x0F, 0x01, 0x14, 0x0E, 0x0F - .byte 0x08, 0x15, 0x00, 0x08, 0x0C, 0x16, 0x00, 0x0C, 0x14, 0x17, 0x00, 0x14, 0x09, 0x18, 0x00, 0x0F - .byte 0x05, 0x18, 0x09, 0x0F, 0x01, 0x18, 0x0E, 0x0F, 0x0F, 0x19, 0x00, 0x18, 0x08, 0x19, 0x0F, 0x18 - .byte 0x01, 0x19, 0x17, 0x18, 0x0D, 0x1A, 0x00, 0x18, 0x0A, 0x1A, 0x0D, 0x18, 0x01, 0x1A, 0x17, 0x18 - .byte 0x0D, 0x1B, 0x00, 0x0E, 0x01, 0x1B, 0x0D, 0x0E, 0x14, 0x29, 0x00, 0x14, 0x0A, 0x2B, 0x00, 0x0F - .byte 0x04, 0x2B, 0x0A, 0x0F, 0x01, 0x2B, 0x0E, 0x0F, 0x14, 0x21, 0x00, 0x14, 0x12, 0x22, 0x00, 0x17 - .byte 0x04, 0x22, 0x12, 0x17, 0x01, 0x22, 0x16, 0x17, 0x03, 0x34, 0x00, 0x14, 0x01, 0x34, 0x03, 0x14 - .byte 0x03, 0x34, 0x04, 0x14, 0x01, 0x34, 0x07, 0x14, 0x04, 0x34, 0x08, 0x14, 0x01, 0x34, 0x0C, 0x14 - .byte 0x05, 0x34, 0x0D, 0x14, 0x01, 0x34, 0x12, 0x14, 0x13, 0x38, 0x00, 0x13, 0x11, 0x39, 0x00, 0x11 - .byte 0x0F, 0x3A, 0x00, 0x19, 0x09, 0x3A, 0x0F, 0x19, 0x01, 0x3A, 0x18, 0x19, 0x0F, 0x36, 0x00, 0x1E - .byte 0x0E, 0x36, 0x0F, 0x1E, 0x01, 0x36, 0x1D, 0x1E, 0x1E, 0x23, 0x00, 0x1E, 0x01, 0x23, 0x1E, 0x1E - .byte 0x13, 0x37, 0x00, 0x13, 0x31, 0x20, 0x00, 0x32, 0x01, 0x20, 0x31, 0x32, 0x09, 0x2A, 0x00, 0x0A - .byte 0x01, 0x2A, 0x09, 0x0A, 0x13, 0x2C, 0x00, 0x14, 0x01, 0x2C, 0x13, 0x14, 0x13, 0x2D, 0x00, 0x14 - .byte 0x01, 0x2D, 0x13, 0x14, 0x1D, 0x2E, 0x00, 0x1E, 0x01, 0x2E, 0x1D, 0x1E, 0x31, 0x33, 0x00, 0x32 - .byte 0x01, 0x33, 0x31, 0x32, 0x1D, 0x25, 0x00, 0x1E, 0x01, 0x25, 0x1D, 0x1E, 0x08, 0x27, 0x00, 0x08 - .byte 0x0D, 0x28, 0x00, 0x0D, 0x06, 0x2F, 0x00, 0x06, 0x05, 0x30, 0x00, 0x05, 0x0A, 0x31, 0x00, 0x0A - .byte 0x05, 0x32, 0x00, 0x05, 0x19, 0x1D, 0x00, 0x19, 0x14, 0x26, 0x00, 0x14, 0x14, 0x1E, 0x00, 0x14 - .byte 0x12, 0x1F, 0x00, 0x12, 0x12, 0x24, 0x00, 0x12, 0x19, 0x1C, 0x00, 0x19, 0x4B, 0x3B, 0x00, 0x4B - .byte 0x28, 0x3D, 0x00, 0x28, 0x28, 0x3C, 0x00, 0x28, 0x63, 0x3E, 0x00, 0x63, 0x32, 0x40, 0x00, 0x32 - .byte 0x63, 0x41, 0x00, 0x63, 0x0A, 0x42, 0x00, 0x0A, 0x05, 0x43, 0x00, 0x05, 0x0F, 0x44, 0x00, 0x0F - .byte 0x14, 0x45, 0x00, 0x14, 0x19, 0x46, 0x00, 0x19, 0x1E, 0x47, 0x00, 0x1E, 0x03, 0x48, 0x00, 0x28 - .byte 0x03, 0x48, 0x03, 0x28, 0x03, 0x48, 0x06, 0x28, 0x03, 0x48, 0x09, 0x28, 0x04, 0x48, 0x0C, 0x28 - .byte 0x04, 0x48, 0x10, 0x28, 0x04, 0x48, 0x14, 0x28, 0x04, 0x48, 0x18, 0x28, 0x05, 0x48, 0x1C, 0x28 - .byte 0x05, 0x48, 0x21, 0x28, 0x01, 0x48, 0x26, 0x28, 0x01, 0x48, 0x27, 0x28, 0x07, 0x49, 0x00, 0x11 - .byte 0x04, 0x49, 0x07, 0x11, 0x01, 0x49, 0x0B, 0x11, 0x04, 0x49, 0x0C, 0x11, 0x01, 0x49, 0x10, 0x11 - .byte 0x07, 0x4A, 0x00, 0x07, 0x0A, 0x4B, 0x00, 0x0A, 0x08, 0x4C, 0x00, 0x0F, 0x06, 0x4C, 0x08, 0x0F - .byte 0x01, 0x4C, 0x0E, 0x0F, 0x05, 0x4D, 0x00, 0x0B, 0x05, 0x4D, 0x05, 0x0B, 0x01, 0x4D, 0x0A, 0x0B - .byte 0x04, 0x4E, 0x00, 0x10, 0x0A, 0x4F, 0x00, 0x14, 0x0A, 0x4F, 0x0A, 0x14, 0x07, 0x50, 0x00, 0x08 - .byte 0x01, 0x50, 0x07, 0x08, 0x0A, 0x51, 0x00, 0x0A, 0x0A, 0x52, 0x00, 0x0F, 0x04, 0x52, 0x0A, 0x0F - .byte 0x01, 0x52, 0x0E, 0x0F, 0x0A, 0x53, 0x00, 0x0A, 0x09, 0x54, 0x00, 0x12, 0x08, 0x54, 0x09, 0x12 - .byte 0x01, 0x54, 0x11, 0x12, 0x0A, 0x55, 0x00, 0x0A, 0x05, 0x56, 0x00, 0x0B, 0x05, 0x56, 0x05, 0x0B - .byte 0x01, 0x56, 0x0A, 0x0B, 0x05, 0x57, 0x00, 0x05, 0x05, 0x58, 0x00, 0x05, 0x05, 0x59, 0x00, 0x0B - .byte 0x05, 0x59, 0x05, 0x0B, 0x01, 0x59, 0x0A, 0x0B, 0x04, 0x5A, 0x00, 0x13, 0x01, 0x5A, 0x04, 0x13 - .byte 0x04, 0x5A, 0x05, 0x13, 0x01, 0x5A, 0x09, 0x13, 0x04, 0x5A, 0x0A, 0x13, 0x04, 0x5A, 0x0E, 0x13 - .byte 0x01, 0x5A, 0x12, 0x13, 0x05, 0x5C, 0x00, 0x05, 0x06, 0x5D, 0x00, 0x06, 0x07, 0x5E, 0x00, 0x07 - .byte 0x06, 0x5F, 0x00, 0x06, 0x05, 0x60, 0x00, 0x05, 0x05, 0x61, 0x00, 0x05, 0x05, 0x62, 0x00, 0x05 - .byte 0x05, 0x63, 0x00, 0x05, 0x05, 0x63, 0x05, 0x05, 0x10, 0x5B, 0x00, 0x10, 0x03, 0x4F, 0x00, 0x14 - .byte 0x03, 0x4F, 0x03, 0x14, 0x03, 0x4F, 0x06, 0x14, 0x06, 0x4F, 0x09, 0x14, 0x01, 0x3F, 0x00, 0x01 - .byte 0x90, 0x00, 0x91, 0x00, 0x92, 0x00, 0x96, 0x00, 0x97, 0x00, 0xC9, 0x00, 0x0E, 0x01, 0x0F, 0x01 - .byte 0x10, 0x01, 0x14, 0x01, 0x15, 0x01, 0x16, 0x01, 0x99, 0x01, 0x9A, 0x01, 0x9B, 0x01, 0x9C, 0x01 - .byte 0x9D, 0x01, 0x9E, 0x01, 0x9F, 0x01, 0xA0, 0x01, 0xA1, 0x01, 0xA2, 0x01, 0x09, 0x02, 0x0A, 0x02 - .byte 0x0B, 0x02, 0x0C, 0x02, 0x0D, 0x02, 0x0E, 0x02, 0x0F, 0x02, 0x10, 0x02, 0x11, 0x02, 0x12, 0x02 - .byte 0x13, 0x02, 0x14, 0x02, 0x15, 0x02, 0x16, 0x02, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00 - .byte 0xCF, 0x26, 0xD0, 0x26, 0xD1, 0x26, 0xD2, 0x26, 0xD3, 0x26, 0xD4, 0x26, 0xD5, 0x26, 0xD6, 0x26 - .byte 0xD7, 0x26, 0xD8, 0x26, 0xD9, 0x26, 0x00, 0x00, 0xE9, 0x08, 0xEA, 0x08, 0xEB, 0x08, 0xEC, 0x08 - .byte 0xED, 0x08, 0xEE, 0x08, 0xEF, 0x08, 0xF0, 0x08, 0xF1, 0x08, 0xF2, 0x08, 0xF3, 0x08, 0xF4, 0x08 - .byte 0xF5, 0x08, 0xF6, 0x08, 0xF7, 0x08, 0xF8, 0x08, 0xF9, 0x08, 0xFA, 0x08, 0xFB, 0x08, 0xFC, 0x08 - .byte 0xFD, 0x08, 0xFE, 0x08, 0xFF, 0x08, 0x00, 0x09, 0x01, 0x09, 0x02, 0x09, 0x03, 0x09, 0x04, 0x09 - .byte 0x05, 0x09, 0x06, 0x09, 0x07, 0x09, 0x08, 0x09, 0x09, 0x09, 0x0A, 0x09, 0x0B, 0x09, 0x0C, 0x09 - .byte 0x0D, 0x09, 0x0E, 0x09, 0x0F, 0x09, 0x10, 0x09, 0x11, 0x09, 0x12, 0x09, 0x13, 0x09, 0x14, 0x09 - .byte 0x15, 0x09, 0x16, 0x09, 0x17, 0x09, 0x18, 0x09, 0x19, 0x09, 0x1A, 0x09, 0x1B, 0x09, 0x1C, 0x09 - .byte 0x1D, 0x09, 0x1E, 0x09, 0x1F, 0x09, 0x20, 0x09, 0x21, 0x09, 0x22, 0x09, 0x23, 0x09, 0x24, 0x09 - .byte 0x25, 0x09, 0x26, 0x09, 0x27, 0x09, 0x28, 0x09, 0x29, 0x09, 0x2A, 0x09, 0x2B, 0x09, 0x2C, 0x09 - .byte 0x2D, 0x09, 0x2E, 0x09, 0x2F, 0x09, 0x30, 0x09, 0x31, 0x09, 0x32, 0x09, 0x33, 0x09, 0x34, 0x09 - .byte 0x35, 0x09, 0x36, 0x09, 0x37, 0x09, 0x38, 0x09, 0x39, 0x09, 0x3A, 0x09, 0x3B, 0x09, 0x3C, 0x09 - .byte 0x3D, 0x09, 0x3E, 0x09, 0x3F, 0x09, 0x40, 0x09, 0x41, 0x09, 0x42, 0x09, 0x43, 0x09, 0x44, 0x09 - .byte 0x45, 0x09, 0x46, 0x09, 0x47, 0x09, 0x48, 0x09, 0x49, 0x09, 0x4A, 0x09, 0x4B, 0x09, 0x4C, 0x09 - .byte 0x4D, 0x09, 0x4E, 0x09, 0x00, 0x00, 0xDB, 0x09, 0x00, 0x00, 0xDC, 0x09, 0x00, 0x00, 0xDD, 0x09 - .byte 0x00, 0x00, 0xDE, 0x09, 0x00, 0x00, 0xDF, 0x09, 0x00, 0x00, 0xE0, 0x09, 0x00, 0x00, 0xE1, 0x09 - .byte 0x01, 0x00, 0xE2, 0x09, 0x01, 0x00, 0xE3, 0x09, 0x00, 0x00, 0xE4, 0x09, 0x00, 0x00, 0xE5, 0x09 - .byte 0x01, 0x00, 0xE6, 0x09, 0x01, 0x00, 0xE7, 0x09, 0x01, 0x00, 0xE8, 0x09, 0x01, 0x00, 0xE9, 0x09 - .byte 0x01, 0x00, 0xEA, 0x09, 0x01, 0x00, 0xEB, 0x09, 0x01, 0x00, 0xEC, 0x09, 0x00, 0x00, 0xED, 0x09 - .byte 0x00, 0x00, 0xEE, 0x09, 0x00, 0x00, 0xEF, 0x09, 0x00, 0x00, 0xF0, 0x09, 0x00, 0x00, 0xF1, 0x09 - .byte 0x00, 0x00, 0xF2, 0x09, 0x00, 0x00, 0xF3, 0x09, 0x00, 0x00, 0xF4, 0x09, 0x00, 0x00, 0xF5, 0x09 - .byte 0x00, 0x00, 0xF6, 0x09, 0x00, 0x00, 0xF7, 0x09, 0x00, 0x00, 0xF8, 0x09, 0x00, 0x00, 0xF9, 0x09 - .byte 0x00, 0x00, 0xFA, 0x09, 0x00, 0x00, 0xFB, 0x09, 0x00, 0x00, 0xFC, 0x09, 0x01, 0x00, 0xFD, 0x09 - .byte 0x00, 0x00, 0xFE, 0x09, 0x00, 0x00, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x01, 0x0A - .byte 0x00, 0x00, 0x02, 0x0A, 0x00, 0x00, 0x03, 0x0A, 0x00, 0x00, 0x04, 0x0A, 0x00, 0x00, 0x05, 0x0A - .byte 0x00, 0x00, 0x06, 0x0A, 0x00, 0x00, 0x07, 0x0A, 0x00, 0x00, 0x08, 0x0A, 0x00, 0x00, 0x09, 0x0A - .byte 0x00, 0x00, 0x0A, 0x0A, 0x00, 0x00, 0x0B, 0x0A, 0x00, 0x00, 0x0C, 0x0A, 0x00, 0x00, 0x0D, 0x0A - .byte 0x00, 0x00, 0x0E, 0x0A, 0x00, 0x00, 0x0F, 0x0A, 0x00, 0x00, 0x10, 0x0A, 0x00, 0x00, 0x11, 0x0A - .byte 0x00, 0x00, 0x12, 0x0A, 0x00, 0x00, 0x13, 0x0A, 0x00, 0x00, 0x14, 0x0A, 0x00, 0x00, 0x15, 0x0A - .byte 0x00, 0x00, 0x16, 0x0A, 0x00, 0x00, 0x17, 0x0A, 0x00, 0x00, 0x18, 0x0A, 0x00, 0x00, 0x19, 0x0A - .byte 0x00, 0x00, 0x1A, 0x0A, 0x00, 0x00, 0x1B, 0x0A, 0x00, 0x00, 0x1C, 0x0A, 0x00, 0x00, 0x1D, 0x0A - .byte 0x00, 0x00, 0x1E, 0x0A, 0x00, 0x00, 0x1F, 0x0A, 0x00, 0x00, 0x20, 0x0A, 0x00, 0x00, 0x21, 0x0A - .byte 0x00, 0x00, 0x22, 0x0A, 0x00, 0x00, 0x23, 0x0A, 0x00, 0x00, 0x24, 0x0A, 0x00, 0x00, 0x25, 0x0A - .byte 0x00, 0x00, 0x26, 0x0A, 0x00, 0x00, 0x27, 0x0A, 0x00, 0x00, 0x28, 0x0A, 0x00, 0x00, 0x29, 0x0A - .byte 0x00, 0x00, 0x2A, 0x0A, 0x00, 0x00, 0x2B, 0x0A, 0x00, 0x00, 0x2C, 0x0A, 0x00, 0x00, 0x2D, 0x0A - .byte 0x00, 0x00, 0x2E, 0x0A, 0x00, 0x00, 0x2F, 0x0A, 0x00, 0x00, 0x30, 0x0A, 0x00, 0x00, 0x31, 0x0A - .byte 0x00, 0x00, 0x32, 0x0A, 0x00, 0x00, 0x33, 0x0A, 0x00, 0x00, 0x34, 0x0A, 0x00, 0x00, 0x35, 0x0A - .byte 0xF3, 0x34, 0xF4, 0x34, 0xF5, 0x34, 0xF6, 0x34, 0xF7, 0x34, 0xF8, 0x34, 0xF9, 0x34, 0xFA, 0x34 - .byte 0xFB, 0x34, 0xFC, 0x34, 0xFD, 0x34, 0xFE, 0x34, 0xFF, 0x34, 0x00, 0x35, 0x01, 0x35, 0x02, 0x35 - .byte 0x03, 0x35, 0x04, 0x35, 0x05, 0x35, 0x06, 0x35, 0x07, 0x35, 0x08, 0x35, 0x09, 0x35, 0x0A, 0x35 - .byte 0x0B, 0x35, 0x0C, 0x35, 0x0D, 0x35, 0x0E, 0x35, 0x0F, 0x35, 0x10, 0x35, 0x11, 0x35, 0x12, 0x35 - .byte 0x13, 0x35, 0x14, 0x35, 0x15, 0x35, 0x16, 0x35, 0x17, 0x35, 0x18, 0x35, 0x19, 0x35, 0x1A, 0x35 - .byte 0x1B, 0x35, 0x1C, 0x35, 0x1D, 0x35, 0x1E, 0x35, 0x1F, 0x35, 0x20, 0x35, 0x21, 0x35, 0x22, 0x35 - .byte 0x23, 0x35, 0x24, 0x35, 0x25, 0x35, 0x26, 0x35, 0x27, 0x35, 0x28, 0x35, 0x29, 0x35, 0x2A, 0x35 - .byte 0x2B, 0x35, 0x2C, 0x35, 0x2D, 0x35, 0x2E, 0x35, 0x2F, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35 - .byte 0x33, 0x35, 0x34, 0x35, 0x35, 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x35, 0x3A, 0x35 - .byte 0x3B, 0x35, 0x3C, 0x35, 0x3D, 0x35, 0x3E, 0x35, 0x3F, 0x35, 0x40, 0x35, 0x41, 0x35, 0x42, 0x35 - .byte 0x43, 0x35, 0x44, 0x35, 0x45, 0x35, 0x46, 0x35, 0x47, 0x35, 0x48, 0x35, 0x49, 0x35, 0x4A, 0x35 - .byte 0x4B, 0x35, 0x4C, 0x35, 0x4D, 0x35, 0x4E, 0x35, 0x4F, 0x35, 0x50, 0x35, 0x51, 0x35, 0x52, 0x35 - .byte 0x53, 0x35, 0x54, 0x35, 0x55, 0x35, 0x56, 0x35, 0x57, 0x35, 0x58, 0x35, 0x59, 0x35, 0x5A, 0x35 - .byte 0x5B, 0x35, 0x5C, 0x35, 0x5D, 0x35, 0x5E, 0x35, 0x5F, 0x35, 0x60, 0x35, 0x61, 0x35, 0x62, 0x35 - .byte 0x63, 0x35, 0x64, 0x35, 0x65, 0x35, 0x66, 0x35, 0x67, 0x35, 0x68, 0x35, 0x69, 0x35, 0x6A, 0x35 - .byte 0x6B, 0x35, 0x6C, 0x35, 0x6D, 0x35, 0x6E, 0x35, 0x6F, 0x35, 0x70, 0x35, 0x71, 0x35, 0x72, 0x35 - .byte 0x73, 0x35, 0x74, 0x35, 0x75, 0x35, 0x76, 0x35, 0x77, 0x35, 0x78, 0x35, 0x79, 0x35, 0x7A, 0x35 - .byte 0x7B, 0x35, 0x7C, 0x35, 0x7D, 0x35, 0x7E, 0x35, 0x7F, 0x35, 0x80, 0x35, 0x81, 0x35, 0x82, 0x35 - .byte 0x83, 0x35, 0x84, 0x35, 0x85, 0x35, 0x86, 0x35, 0x87, 0x35, 0x88, 0x35, 0x89, 0x35, 0x8A, 0x35 - .byte 0x8B, 0x35, 0x8C, 0x35, 0x8D, 0x35, 0x8E, 0x35, 0x8F, 0x35, 0x90, 0x35, 0x91, 0x35, 0x92, 0x35 - .byte 0x93, 0x35, 0x94, 0x35, 0x97, 0x35, 0x98, 0x35, 0x9A, 0x35, 0x9B, 0x35, 0x99, 0x35, 0x9C, 0x35 - .byte 0x9D, 0x35, 0x9E, 0x35, 0x9F, 0x35, 0xA0, 0x35, 0xA1, 0x35, 0xA2, 0x35, 0xA3, 0x35, 0xA4, 0x35 - .byte 0xA5, 0x35, 0xA6, 0x35, 0xA7, 0x35, 0xA8, 0x35, 0xA9, 0x35, 0xAA, 0x35, 0xAB, 0x35, 0xAC, 0x35 - .byte 0xAD, 0x35, 0xAE, 0x35, 0xAF, 0x35, 0xB0, 0x35, 0xB1, 0x35, 0xB2, 0x35, 0xB3, 0x35, 0xB4, 0x35 - .byte 0xB5, 0x35, 0xB6, 0x35, 0xB7, 0x35, 0xB8, 0x35, 0xB9, 0x35, 0xBA, 0x35, 0xBB, 0x35, 0xBC, 0x35 - .byte 0xBD, 0x35, 0xBE, 0x35, 0xBF, 0x35, 0xC0, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00 - .byte 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01 - .byte 0x02, 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x01, 0x08, 0x08 - .byte 0x08, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01 - .byte 0x02, 0x02, 0x00, 0x00, 0x00, 0x01, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02 - .byte 0x02, 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x01, 0x01, 0x01 - .byte 0x02, 0x02, 0x02, 0x00, 0x00, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x01, 0x01, 0x01 - .byte 0x02, 0x02, 0x02, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x00, 0x01, 0x08, 0x08 - .byte 0x08, 0x08, 0x08, 0x08, 0x00, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x00, 0x00, 0x00 - .byte 0x00, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x06 - .byte 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 - .byte 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00 - .byte 0x00, 0x01, 0x03, 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x08, 0x08 - .byte 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x00, 0x00, 0x01, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09 - .byte 0x09, 0x0A, 0x0A, 0x00, 0x00, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x00 - .byte 0x00, 0x01, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x01, 0x08, 0x08 - .byte 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x00, 0x00, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 - .byte 0x09, 0x09, 0x09, 0x00, 0x00, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x00 - .byte 0x00, 0x01, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x01, 0x05, 0x05 - .byte 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 - .byte 0x09, 0x09, 0x09, 0x09, 0x00, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09 - .byte 0x00, 0x01, 0x03, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x01, 0x08, 0x08 - .byte 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x00, 0x01, 0x03, 0x03, 0x03, 0x04, 0x04, 0x04 - .byte 0x04, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 - .byte 0x06, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03 - .byte 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x04, 0x04, 0x04 - .byte 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x01, 0x08, 0x08, 0x08, 0x08, 0x09, 0x09 - .byte 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x00, 0x00, 0x01, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06 - .byte 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 - .byte 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x00, 0x01, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07 - .byte 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x01, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 - .byte 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 - .byte 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x00, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 - .byte 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x01, 0x08, 0x08, 0x09, 0x09, 0x09, 0x0A - .byte 0x0A, 0x0A, 0x0B, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x01, 0x04, 0x05, 0x05, 0x05, 0x06, 0x06 - .byte 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 - .byte 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x00, 0x01, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05 - .byte 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01 - .byte 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x00, 0x00, 0x00 - .byte 0x00, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09 - .byte 0x0A, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03 - .byte 0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07 - .byte 0x07, 0x07, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x08 - .byte 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x00 - .byte 0x00, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09 - .byte 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x01, 0x07, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x0A - .byte 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 - .byte 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0A, 0x00, 0x01, 0x08, 0x08 - .byte 0x08, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A - .byte 0x00, 0x01, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0A - .byte 0x0A, 0x0A, 0x0A, 0x0A, 0x00, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B - .byte 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x04 - .byte 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 - .byte 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07 - .byte 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x08 - .byte 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 - .byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0A - .byte 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x08 - .byte 0x08, 0x08, 0x09, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0C, 0x0C - .byte 0x0C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x0A - .byte 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x08 - .byte 0x09, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C - .byte 0x0C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x0A - .byte 0x0A, 0x0A, 0x0B, 0x0B, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x08 - .byte 0x09, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C - .byte 0x0C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x08, 0x08 - .byte 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x09, 0x00, 0x00, 0x00, 0x00, 0x01, 0x05, 0x05 - .byte 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 - .byte 0x06, 0x06, 0x00, 0x00, 0x00, 0x01, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x0A - .byte 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x00, 0x01, 0x07, 0x07 - .byte 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 - .byte 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x08, 0x08, 0x08, 0x08, 0x08 - .byte 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 - .byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B - .byte 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x00 - .byte 0x00, 0x01, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A - .byte 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0x01, 0x08, 0x08 - .byte 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A - .byte 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0x01, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09 - .byte 0x09, 0x0A, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D - .byte 0x0D, 0x0D, 0x00, 0x00, 0x00, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B - .byte 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C - .byte 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0x01, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09 - .byte 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A - .byte 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x01, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0A - .byte 0x0A, 0x0A, 0x0A, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D - .byte 0x0D, 0x0D, 0x0D, 0x00, 0x00, 0x01, 0x08, 0x08, 0x09, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B - .byte 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D - .byte 0x0D, 0x0D, 0x0D, 0x00, 0x00, 0x01, 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09 - .byte 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B, 0x0B, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D - .byte 0x0D, 0x0D, 0x0D, 0x00, 0x00, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 - .byte 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 - .byte 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00 - .byte 0x00, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09 - .byte 0x09, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A - .byte 0x0A, 0x0A, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x08 - .byte 0x08, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B, 0x0B - .byte 0x0B, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C - .byte 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x07, 0x07, 0x08, 0x08, 0x08 - .byte 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A - .byte 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C - .byte 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0x0A, 0x0E, 0x0E - .byte 0x0E, 0x0E, 0x0E, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F - .byte 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F - .byte 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x00 - .byte 0x00, 0x01, 0x08, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B, 0x0B, 0x0B, 0x0C, 0x0C - .byte 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0E, 0x0E - .byte 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E - .byte 0x0E, 0x0E, 0x0E, 0x00, 0x31, 0x75, 0xC4, 0x09, 0x6A, 0x18, 0x10, 0x27, 0x43, 0x75, 0x10, 0x27 - .byte 0x6D, 0x75, 0xA0, 0x0F, 0x33, 0x75, 0x40, 0x1F, 0x49, 0x75, 0x10, 0x27, 0x43, 0x75, 0x4C, 0x02 - .byte 0x98, 0x04, 0xE5, 0x06, 0x31, 0x09, 0x7D, 0x0B, 0xC9, 0x0D, 0x16, 0x10, 0x62, 0x12, 0xAE, 0x14 - .byte 0xFA, 0x16, 0x47, 0x19, 0x93, 0x1B, 0xDF, 0x1D, 0x2B, 0x20, 0x78, 0x22, 0xC4, 0x24, 0x10, 0x27 - .byte 0x14, 0x76, 0x00, 0x00, 0x00, 0x01, 0x08, 0x09, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A - .byte 0x0A, 0x0A, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B - .byte 0x0B, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D - .byte 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E - .byte 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F - .byte 0x31, 0x75, 0x98, 0x04, 0x62, 0x12, 0x2B, 0x20, 0x10, 0x27, 0x42, 0x75, 0x10, 0x27, 0x42, 0x75 - .byte 0xC4, 0x09, 0x88, 0x13, 0x34, 0x75, 0x4C, 0x1D, 0x37, 0x75, 0x10, 0x27, 0x4C, 0x75, 0xA0, 0x0F - .byte 0x33, 0x75, 0x40, 0x1F, 0x49, 0x75, 0x10, 0x27, 0x43, 0x75, 0x4C, 0x02, 0x98, 0x04, 0xE5, 0x06 - .byte 0x31, 0x09, 0x7D, 0x0B, 0xC9, 0x0D, 0x16, 0x10, 0x62, 0x12, 0xAE, 0x14, 0xFA, 0x16, 0x47, 0x19 - .byte 0x93, 0x1B, 0xDF, 0x1D, 0x2B, 0x20, 0x78, 0x22, 0xC4, 0x24, 0x10, 0x27, 0x14, 0x76, 0x00, 0x00 - .byte 0x33, 0x75, 0x83, 0x06, 0x34, 0x75, 0x8D, 0x20, 0x10, 0x27, 0xBE, 0x75, 0x88, 0x13, 0x10, 0x27 - .byte 0x33, 0x75, 0x65, 0x01, 0x32, 0x75, 0xCA, 0x02, 0x2F, 0x04, 0x36, 0x75, 0x95, 0x05, 0xFA, 0x06 - .byte 0x5F, 0x08, 0xC4, 0x09, 0x29, 0x0B, 0x8E, 0x0C, 0xF3, 0x0D, 0x59, 0x0F, 0xBE, 0x10, 0x23, 0x12 - .byte 0x88, 0x13, 0xED, 0x14, 0x52, 0x16, 0xB7, 0x17, 0x31, 0x75, 0x1D, 0x19, 0x82, 0x1A, 0xE7, 0x1B - .byte 0x4C, 0x1D, 0xB1, 0x1E, 0x16, 0x20, 0x7B, 0x21, 0x35, 0x75, 0xE1, 0x22, 0x46, 0x24, 0x31, 0x75 - .byte 0xAB, 0x25, 0x33, 0x75, 0x10, 0x27, 0xCB, 0x75, 0x88, 0x13, 0x37, 0x75, 0x10, 0x27, 0x3D, 0x75 - .byte 0x31, 0x75, 0xE2, 0x04, 0x6A, 0x18, 0x10, 0x27, 0x43, 0x75, 0xAE, 0x08, 0x10, 0x27, 0x6D, 0x75 - .byte 0xC9, 0x05, 0x32, 0x75, 0x05, 0x0D, 0x34, 0x75, 0xEA, 0x0F, 0x32, 0x75, 0xCF, 0x12, 0xB4, 0x15 - .byte 0x31, 0x75, 0x98, 0x18, 0x31, 0x75, 0x0B, 0x1A, 0xEF, 0x1C, 0x33, 0x75, 0xD4, 0x1F, 0x34, 0x75 - .byte 0x47, 0x21, 0x32, 0x75, 0x10, 0x27, 0x39, 0x75, 0x05, 0x0D, 0x39, 0x75, 0xA6, 0x0E, 0x47, 0x10 - .byte 0xE7, 0x11, 0x88, 0x13, 0x29, 0x15, 0xC9, 0x16, 0x6A, 0x18, 0x0B, 0x1A, 0xAB, 0x1B, 0x4C, 0x1D - .byte 0x31, 0x75, 0xED, 0x1E, 0x8D, 0x20, 0x2E, 0x22, 0xCF, 0x23, 0x6F, 0x25, 0x10, 0x27, 0x14, 0x76 - .byte 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09 - .byte 0x09, 0x09, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B, 0x0B - .byte 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C - .byte 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C - .byte 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D - .byte 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0E, 0x0E, 0x0E - .byte 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x00, 0x01, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09 - .byte 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B - .byte 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D, 0x0D, 0x0D - .byte 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D - .byte 0x0D, 0x0D, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E - .byte 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E - .byte 0x0E, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0xE8, 0x03, 0xD0, 0x07 - .byte 0x70, 0x17, 0x28, 0x23, 0x10, 0x27, 0x3D, 0x75, 0x8D, 0x20, 0x10, 0x27, 0x33, 0x75, 0xAE, 0x08 - .byte 0x10, 0x27, 0x38, 0x75, 0x83, 0x06, 0x37, 0x75, 0x05, 0x0D, 0x88, 0x13, 0x0B, 0x1A, 0x8D, 0x20 - .byte 0x39, 0x75, 0x10, 0x27, 0x4E, 0x75, 0x35, 0x05, 0x33, 0x75, 0xA0, 0x0F, 0x38, 0x75, 0xD5, 0x14 - .byte 0x31, 0x75, 0x0B, 0x1A, 0x31, 0x75, 0x40, 0x1F, 0x39, 0x75, 0xDB, 0x21, 0x32, 0x75, 0x10, 0x27 - .byte 0x39, 0x75, 0x05, 0x0D, 0x39, 0x75, 0xA6, 0x0E, 0x47, 0x10, 0xE7, 0x11, 0x88, 0x13, 0x29, 0x15 - .byte 0xC9, 0x16, 0x6A, 0x18, 0x0B, 0x1A, 0xAB, 0x1B, 0x4C, 0x1D, 0x31, 0x75, 0xED, 0x1E, 0x8D, 0x20 - .byte 0x2E, 0x22, 0xCF, 0x23, 0x6F, 0x25, 0x10, 0x27, 0x14, 0x76, 0x00, 0x00, 0xE8, 0x03, 0xD0, 0x07 - .byte 0x70, 0x17, 0x28, 0x23, 0x10, 0x27, 0x3D, 0x75, 0x8D, 0x20, 0x10, 0x27, 0x33, 0x75, 0xAE, 0x08 - .byte 0x10, 0x27, 0x38, 0x75, 0x83, 0x06, 0x37, 0x75, 0x05, 0x0D, 0x88, 0x13, 0x0B, 0x1A, 0x8D, 0x20 - .byte 0x39, 0x75, 0x10, 0x27, 0x4E, 0x75, 0x35, 0x05, 0x33, 0x75, 0xA0, 0x0F, 0x38, 0x75, 0xD5, 0x14 - .byte 0x31, 0x75, 0x0B, 0x1A, 0x31, 0x75, 0x40, 0x1F, 0x39, 0x75, 0xDB, 0x21, 0x32, 0x75, 0x10, 0x27 - .byte 0x39, 0x75, 0x05, 0x0D, 0x39, 0x75, 0xA6, 0x0E, 0x47, 0x10, 0xE7, 0x11, 0x88, 0x13, 0x29, 0x15 - .byte 0xC9, 0x16, 0x6A, 0x18, 0x0B, 0x1A, 0xAB, 0x1B, 0x4C, 0x1D, 0x31, 0x75, 0xED, 0x1E, 0x8D, 0x20 - .byte 0x2E, 0x22, 0xCF, 0x23, 0x6F, 0x25, 0x10, 0x27, 0x14, 0x76, 0x00, 0x00, 0x01, 0x03, 0x02, 0x06 - .byte 0x09, 0x15, 0x0F, 0x24, 0x10, 0x27, 0x3D, 0x75, 0x8D, 0x20, 0x10, 0x27, 0x33, 0x75, 0xAE, 0x08 - .byte 0x10, 0x27, 0x38, 0x75, 0x02, 0x06, 0x37, 0x75, 0x05, 0x0C, 0x07, 0x12, 0x0A, 0x18, 0x0B, 0x1B - .byte 0x0E, 0x21, 0x3A, 0x75, 0x10, 0x27, 0x4C, 0x75, 0x20, 0x03, 0x33, 0x75, 0x60, 0x09, 0x34, 0x75 - .byte 0xA0, 0x0F, 0x33, 0x75, 0xE0, 0x15, 0x38, 0x75, 0x20, 0x1C, 0x33, 0x75, 0xB0, 0x1D, 0x40, 0x1F - .byte 0xD0, 0x20, 0x31, 0x75, 0x10, 0x27, 0x39, 0x75, 0x05, 0x0D, 0x39, 0x75, 0xA6, 0x0E, 0x47, 0x10 - .byte 0xE7, 0x11, 0x88, 0x13, 0x29, 0x15, 0xC9, 0x16, 0x6A, 0x18, 0x0B, 0x1A, 0xAB, 0x1B, 0x4C, 0x1D - .byte 0x31, 0x75, 0xED, 0x1E, 0x8D, 0x20, 0x2E, 0x22, 0xCF, 0x23, 0x6F, 0x25, 0x10, 0x27, 0x14, 0x76 - .byte 0x32, 0x75, 0xD0, 0x07, 0x70, 0x17, 0x40, 0x1F, 0x10, 0x27, 0x5A, 0x75, 0x10, 0x27, 0x54, 0x75 - .byte 0xB8, 0x03, 0x71, 0x07, 0x32, 0x75, 0xBE, 0x10, 0x34, 0x75, 0x76, 0x14, 0x32, 0x75, 0x2E, 0x18 - .byte 0xE7, 0x1B, 0x34, 0x75, 0x9F, 0x1F, 0x3B, 0x75, 0x10, 0x27, 0x39, 0x75, 0x83, 0x06, 0x05, 0x0D - .byte 0x38, 0x75, 0x88, 0x13, 0x31, 0x75, 0x0B, 0x1A, 0x8D, 0x20, 0x32, 0x75, 0x10, 0x27, 0x71, 0x75 - .byte 0x24, 0x01, 0x48, 0x02, 0x33, 0x75, 0x91, 0x02, 0xB5, 0x03, 0x34, 0x75, 0x90, 0x04, 0xD8, 0x06 - .byte 0x32, 0x75, 0xFC, 0x07, 0x20, 0x09, 0x31, 0x75, 0xB2, 0x09, 0xFB, 0x09, 0x8D, 0x0A, 0x33, 0x75 - .byte 0x1F, 0x0B, 0x34, 0x75, 0x67, 0x0D, 0xD4, 0x0E, 0x39, 0x75, 0x1C, 0x11, 0x40, 0x12, 0x31, 0x75 - .byte 0x1B, 0x13, 0x33, 0x75, 0x3E, 0x14, 0x32, 0x75, 0x62, 0x15, 0x86, 0x16, 0x37, 0x75, 0xCE, 0x18 - .byte 0x31, 0x75, 0x17, 0x19, 0x3B, 0x1A, 0x83, 0x1C, 0xCC, 0x1C, 0x31, 0x75, 0xF0, 0x1D, 0x32, 0x75 - .byte 0xA6, 0x1F, 0x31, 0x75, 0x5C, 0x21, 0x34, 0x75, 0xA4, 0x23, 0xC8, 0x24, 0x33, 0x75, 0xEC, 0x25 - .byte 0x33, 0x75, 0x10, 0x27, 0x87, 0x75, 0x00, 0x00, 0x32, 0x75, 0xA7, 0x0A, 0xC1, 0x11, 0xDC, 0x18 - .byte 0x34, 0x75, 0xF6, 0x1F, 0x10, 0x27, 0x46, 0x75, 0xDC, 0x01, 0xB8, 0x03, 0x31, 0x75, 0x95, 0x05 - .byte 0x71, 0x07, 0x33, 0x75, 0x4D, 0x09, 0x29, 0x0B, 0x05, 0x0D, 0xE2, 0x0E, 0xBE, 0x10, 0x36, 0x75 - .byte 0x9A, 0x12, 0x76, 0x14, 0x52, 0x16, 0x31, 0x75, 0x2E, 0x18, 0x0B, 0x1A, 0x33, 0x75, 0xE7, 0x1B - .byte 0xC3, 0x1D, 0x9F, 0x1F, 0x7B, 0x21, 0x58, 0x23, 0x31, 0x75, 0x34, 0x25, 0x10, 0x27, 0x40, 0x75 - .byte 0xE2, 0x04, 0xC4, 0x09, 0x31, 0x75, 0xA6, 0x0E, 0x17, 0x11, 0x36, 0x75, 0xF9, 0x15, 0x33, 0x75 - .byte 0xDB, 0x1A, 0x34, 0x75, 0x4C, 0x1D, 0x39, 0x75, 0x10, 0x27, 0x39, 0x75, 0xD0, 0x07, 0x3A, 0x75 - .byte 0xB8, 0x0B, 0xA0, 0x0F, 0x88, 0x13, 0x70, 0x17, 0x58, 0x1B, 0x40, 0x1F, 0x28, 0x23, 0x10, 0x27 - .byte 0xE5, 0x75, 0x72, 0x01, 0x32, 0x75, 0xE5, 0x02, 0x57, 0x04, 0xC9, 0x05, 0x3C, 0x07, 0xAE, 0x08 - .byte 0x31, 0x75, 0x93, 0x0B, 0x05, 0x0D, 0x78, 0x0E, 0x5C, 0x11, 0x33, 0x75, 0x41, 0x14, 0x26, 0x17 - .byte 0x0B, 0x1A, 0x31, 0x75, 0x7D, 0x1B, 0x31, 0x75, 0xEF, 0x1C, 0x62, 0x1E, 0x34, 0x75, 0xD4, 0x1F - .byte 0x32, 0x75, 0x47, 0x21, 0x36, 0x75, 0x2B, 0x24, 0x32, 0x75, 0x10, 0x27, 0x3B, 0x75, 0x10, 0x27 - .byte 0x31, 0x75, 0x00, 0x00, 0x01, 0x05, 0x03, 0x0A, 0x0C, 0x10, 0x0D, 0x14, 0x0F, 0x15, 0x11, 0x0E - .byte 0x14, 0x0F, 0x18, 0x0F, 0x19, 0x18, 0x1A, 0x18, 0x1B, 0x0E, 0x1C, 0x0F, 0x1C, 0x19, 0x1D, 0x0F - .byte 0x1D, 0x19, 0x1E, 0x0F, 0x1E, 0x14, 0x1F, 0x0F, 0x1F, 0x12, 0x20, 0x32, 0x21, 0x14, 0x22, 0x15 - .byte 0x22, 0x17, 0x23, 0x1D, 0x23, 0x1E, 0x24, 0x0F, 0x24, 0x12, 0x25, 0x1E, 0x26, 0x0F, 0x26, 0x14 - .byte 0x27, 0x08, 0x28, 0x0D, 0x2A, 0x0A, 0x2B, 0x0F, 0x2C, 0x14, 0x2D, 0x14, 0x2E, 0x1E, 0x2F, 0x06 - .byte 0x30, 0x05, 0x31, 0x0A, 0x32, 0x05, 0x33, 0x32, 0x34, 0x04, 0x34, 0x08, 0x34, 0x0D, 0x34, 0x13 - .byte 0x35, 0x33, 0x36, 0x1E, 0x37, 0x13, 0x3A, 0x18, 0x3A, 0x19, 0x3B, 0x0A, 0x3B, 0x0D, 0x3B, 0x10 - .byte 0x3B, 0x13, 0x3B, 0x16, 0x3B, 0x1A, 0x3B, 0x1E, 0x3B, 0x23, 0x3B, 0x28, 0x3B, 0x2D, 0x3B, 0x4B - .byte 0x3C, 0x09, 0x3C, 0x0D, 0x3C, 0x11, 0x3C, 0x15, 0x3C, 0x19, 0x3C, 0x1D, 0x3C, 0x21, 0x3C, 0x25 - .byte 0x3C, 0x28, 0x3D, 0x0A, 0x3D, 0x0F, 0x3D, 0x14, 0x3D, 0x23, 0x3D, 0x28, 0x3E, 0x0F, 0x3E, 0x19 - .byte 0x3E, 0x60, 0x3E, 0x63, 0x40, 0x32, 0x44, 0x0F, 0x45, 0x14, 0x46, 0x19, 0x47, 0x1E, 0x48, 0x27 - .byte 0x48, 0x28, 0x49, 0x0C, 0x49, 0x11, 0x4C, 0x0F, 0x4D, 0x0B, 0x50, 0x08, 0x52, 0x0F, 0x54, 0x12 - .byte 0x56, 0x0B, 0x59, 0x0B, 0x5A, 0x05, 0x5A, 0x0A, 0x5A, 0x13, 0x64, 0xFF, 0x35, 0x75, 0xC4, 0x09 - .byte 0x33, 0x75, 0x10, 0x27, 0xF2, 0x75, 0x06, 0x01, 0x31, 0x75, 0x0B, 0x02, 0x8E, 0x02, 0x11, 0x03 - .byte 0x73, 0x03, 0x32, 0x75, 0x94, 0x03, 0x16, 0x04, 0x31, 0x75, 0x37, 0x04, 0xBA, 0x04, 0x3D, 0x05 - .byte 0x9F, 0x05, 0xA4, 0x06, 0x27, 0x07, 0x31, 0x75, 0xAA, 0x07, 0x2D, 0x08, 0xB0, 0x08, 0xF1, 0x08 - .byte 0x12, 0x09, 0x53, 0x09, 0xD6, 0x09, 0x31, 0x75, 0x11, 0x0A, 0x52, 0x0A, 0xD5, 0x0A, 0x16, 0x0B - .byte 0x1C, 0x0C, 0x31, 0x75, 0x22, 0x0D, 0xC5, 0x0D, 0xCB, 0x0E, 0x6E, 0x0F, 0x31, 0x75, 0x74, 0x10 - .byte 0x31, 0x75, 0x9A, 0x11, 0x1D, 0x12, 0x5E, 0x12, 0xA0, 0x12, 0xA5, 0x13, 0x28, 0x14, 0x31, 0x75 - .byte 0x8A, 0x14, 0xEC, 0x14, 0x31, 0x75, 0x4F, 0x15, 0xD1, 0x15, 0x54, 0x16, 0x5A, 0x17, 0xDD, 0x17 - .byte 0x5F, 0x18, 0x37, 0x75, 0x65, 0x19, 0xE8, 0x19, 0x08, 0x1A, 0x8B, 0x1A, 0x91, 0x1B, 0xB2, 0x1B - .byte 0x31, 0x75, 0x34, 0x1C, 0x32, 0x75, 0xF9, 0x1C, 0x7B, 0x1D, 0x40, 0x1E, 0xC2, 0x1E, 0x87, 0x1F - .byte 0x8C, 0x20, 0x0F, 0x21, 0x15, 0x22, 0x97, 0x22, 0x1A, 0x23, 0x9D, 0x23, 0x20, 0x24, 0xA3, 0x24 - .byte 0x25, 0x25, 0xEA, 0x25, 0x6C, 0x26, 0xEF, 0x26, 0x31, 0x75, 0x10, 0x27, 0x46, 0x75, 0xBA, 0x02 - .byte 0x2D, 0x08, 0xA0, 0x0D, 0x31, 0x75, 0x89, 0x0E, 0x48, 0x75, 0x14, 0x13, 0x32, 0x75, 0x9F, 0x17 - .byte 0x31, 0x75, 0x29, 0x1C, 0x42, 0x75, 0xFA, 0x1D, 0xCC, 0x1F, 0x9D, 0x21, 0x6E, 0x23, 0x3F, 0x25 - .byte 0x10, 0x27, 0x34, 0x75, 0x35, 0x75, 0xC4, 0x09, 0x33, 0x75, 0x10, 0x27, 0xF2, 0x75, 0x06, 0x01 - .byte 0x31, 0x75, 0x0B, 0x02, 0x8E, 0x02, 0x11, 0x03, 0x73, 0x03, 0x32, 0x75, 0x94, 0x03, 0x16, 0x04 - .byte 0x31, 0x75, 0x37, 0x04, 0xBA, 0x04, 0x3D, 0x05, 0x9F, 0x05, 0xA4, 0x06, 0x27, 0x07, 0x31, 0x75 - .byte 0xAA, 0x07, 0x2D, 0x08, 0xB0, 0x08, 0xF1, 0x08, 0x12, 0x09, 0x53, 0x09, 0xD6, 0x09, 0x31, 0x75 - .byte 0x11, 0x0A, 0x52, 0x0A, 0xD5, 0x0A, 0x16, 0x0B, 0x1C, 0x0C, 0x31, 0x75, 0x22, 0x0D, 0xC5, 0x0D - .byte 0xCB, 0x0E, 0x6E, 0x0F, 0x31, 0x75, 0x74, 0x10, 0x31, 0x75, 0x9A, 0x11, 0x1D, 0x12, 0x5E, 0x12 - .byte 0xA0, 0x12, 0xA5, 0x13, 0x28, 0x14, 0x31, 0x75, 0x8A, 0x14, 0xEC, 0x14, 0x31, 0x75, 0x4F, 0x15 - .byte 0xD1, 0x15, 0x54, 0x16, 0x5A, 0x17, 0xDD, 0x17, 0x5F, 0x18, 0x37, 0x75, 0x65, 0x19, 0xE8, 0x19 - .byte 0x08, 0x1A, 0x8B, 0x1A, 0x91, 0x1B, 0xB2, 0x1B, 0x31, 0x75, 0x34, 0x1C, 0x32, 0x75, 0xF9, 0x1C - .byte 0x7B, 0x1D, 0x40, 0x1E, 0xC2, 0x1E, 0x87, 0x1F, 0x8C, 0x20, 0x0F, 0x21, 0x15, 0x22, 0x97, 0x22 - .byte 0x1A, 0x23, 0x9D, 0x23, 0x20, 0x24, 0xA3, 0x24, 0x25, 0x25, 0xEA, 0x25, 0x6C, 0x26, 0xEF, 0x26 - .byte 0x31, 0x75, 0x10, 0x27, 0x46, 0x75, 0xBA, 0x02, 0x2D, 0x08, 0xA0, 0x0D, 0x31, 0x75, 0x89, 0x0E - .byte 0x48, 0x75, 0x14, 0x13, 0x32, 0x75, 0x9F, 0x17, 0x31, 0x75, 0x29, 0x1C, 0x42, 0x75, 0xFA, 0x1D - .byte 0xCC, 0x1F, 0x9D, 0x21, 0x6E, 0x23, 0x3F, 0x25, 0x10, 0x27, 0x34, 0x75, 0x35, 0x75, 0x6A, 0x18 - .byte 0x33, 0x75, 0x10, 0x27, 0xF2, 0x75, 0x00, 0x01, 0x80, 0x01, 0x7F, 0x02, 0xFF, 0x02, 0x7F, 0x03 - .byte 0xFF, 0x03, 0x31, 0x75, 0x7F, 0x04, 0x9F, 0x04, 0x1F, 0x05, 0x31, 0x75, 0x3F, 0x05, 0xBF, 0x05 - .byte 0x3E, 0x06, 0x9E, 0x06, 0x9E, 0x07, 0x1E, 0x08, 0x31, 0x75, 0x9E, 0x08, 0x1E, 0x09, 0x9E, 0x09 - .byte 0xDE, 0x09, 0xFE, 0x09, 0x3D, 0x0A, 0xBD, 0x0A, 0x31, 0x75, 0xF7, 0x0A, 0x37, 0x0B, 0xB7, 0x0B - .byte 0xF7, 0x0B, 0xF6, 0x0C, 0x31, 0x75, 0xF6, 0x0D, 0x96, 0x0E, 0x96, 0x0F, 0x36, 0x10, 0x31, 0x75 - .byte 0x35, 0x11, 0x31, 0x75, 0xB5, 0x11, 0x35, 0x12, 0x75, 0x12, 0xB5, 0x12, 0xB5, 0x13, 0x35, 0x14 - .byte 0x75, 0x14, 0xD4, 0x14, 0x34, 0x15, 0x31, 0x75, 0x94, 0x15, 0x14, 0x16, 0x94, 0x16, 0x94, 0x17 - .byte 0x14, 0x18, 0x94, 0x18, 0x37, 0x75, 0x93, 0x19, 0x13, 0x1A, 0x33, 0x1A, 0xB3, 0x1A, 0xB3, 0x1B - .byte 0xD3, 0x1B, 0xF3, 0x1B, 0x73, 0x1C, 0x32, 0x75, 0x32, 0x1D, 0xB2, 0x1D, 0x72, 0x1E, 0xF2, 0x1E - .byte 0xB2, 0x1F, 0xB2, 0x20, 0x31, 0x21, 0x31, 0x22, 0xB1, 0x22, 0x31, 0x23, 0xB1, 0x23, 0x31, 0x24 - .byte 0xB1, 0x24, 0x30, 0x25, 0xF0, 0x25, 0x70, 0x26, 0xF0, 0x26, 0x31, 0x75, 0x10, 0x27, 0x46, 0x75 - .byte 0xBA, 0x02, 0x2D, 0x08, 0xA0, 0x0D, 0x31, 0x75, 0x89, 0x0E, 0x48, 0x75, 0x14, 0x13, 0x32, 0x75 - .byte 0x9F, 0x17, 0x31, 0x75, 0x29, 0x1C, 0x42, 0x75, 0xFA, 0x1D, 0xCC, 0x1F, 0x9D, 0x21, 0x6E, 0x23 - .byte 0x3F, 0x25, 0x10, 0x27, 0x34, 0x75, 0x00, 0x00, 0x31, 0x75, 0x01, 0x03, 0x05, 0x0C, 0x0C, 0x1E - .byte 0x8E, 0x22, 0x10, 0x27, 0x41, 0x75, 0x10, 0x27, 0x41, 0x75, 0xD0, 0x07, 0xA0, 0x0F, 0x70, 0x17 - .byte 0x40, 0x1F, 0x3B, 0x75, 0x10, 0x27, 0x4C, 0x75, 0xD0, 0x07, 0x33, 0x75, 0xA0, 0x0F, 0x44, 0x75 - .byte 0x70, 0x17, 0x31, 0x75, 0x40, 0x1F, 0x32, 0x75, 0x10, 0x27, 0x43, 0x75, 0x4C, 0x02, 0x98, 0x04 - .byte 0xE5, 0x06, 0x31, 0x09, 0x7D, 0x0B, 0xC9, 0x0D, 0x16, 0x10, 0x62, 0x12, 0xAE, 0x14, 0xFA, 0x16 - .byte 0x47, 0x19, 0x93, 0x1B, 0xDF, 0x1D, 0x2B, 0x20, 0x78, 0x22, 0xC4, 0x24, 0x10, 0x27, 0x64, 0x75 - .byte 0x2E, 0x01, 0x31, 0x75, 0x5B, 0x02, 0xF2, 0x02, 0x89, 0x03, 0xFA, 0x03, 0x32, 0x75, 0x20, 0x04 - .byte 0xB7, 0x04, 0x31, 0x75, 0xDC, 0x04, 0x32, 0x75, 0x4D, 0x05, 0x7B, 0x06, 0x12, 0x07, 0x31, 0x75 - .byte 0xA9, 0x07, 0x40, 0x08, 0xD6, 0x08, 0x22, 0x09, 0x48, 0x09, 0x93, 0x09, 0x33, 0x75, 0xDE, 0x09 - .byte 0x31, 0x75, 0x2A, 0x0A, 0x57, 0x0B, 0x31, 0x75, 0x85, 0x0C, 0x42, 0x0D, 0x6F, 0x0E, 0x2C, 0x0F - .byte 0x31, 0x75, 0x3B, 0x10, 0x31, 0x75, 0x8F, 0x11, 0x26, 0x12, 0x32, 0x75, 0x53, 0x13, 0xEA, 0x13 - .byte 0x31, 0x75, 0x5B, 0x14, 0x32, 0x75, 0xCC, 0x14, 0x63, 0x15, 0xFA, 0x15, 0x28, 0x17, 0xBE, 0x17 - .byte 0x55, 0x18, 0x37, 0x75, 0x83, 0x19, 0x1A, 0x1A, 0x3F, 0x1A, 0xD6, 0x1A, 0x04, 0x1C, 0x2A, 0x1C - .byte 0x31, 0x75, 0xC0, 0x1C, 0x32, 0x75, 0xA3, 0x1D, 0x3A, 0x1E, 0x1C, 0x1F, 0x32, 0x75, 0x49, 0x20 - .byte 0xE0, 0x20, 0x0E, 0x22, 0xA5, 0x22, 0x3C, 0x23, 0xD2, 0x23, 0x31, 0x75, 0x69, 0x24, 0x4C, 0x25 - .byte 0xE2, 0x25, 0x79, 0x26, 0x10, 0x27, 0x87, 0x75, 0x31, 0x75, 0x20, 0x03, 0x80, 0x0C, 0x40, 0x1F - .byte 0xF0, 0x23, 0x10, 0x27, 0x41, 0x75, 0x10, 0x27, 0x41, 0x75, 0xD0, 0x07, 0xA0, 0x0F, 0x70, 0x17 - .byte 0x34, 0x75, 0x40, 0x1F, 0x37, 0x75, 0x10, 0x27, 0x4C, 0x75, 0x29, 0x0B, 0x33, 0x75, 0x52, 0x16 - .byte 0x44, 0x75, 0xE7, 0x1B, 0x31, 0x75, 0x7B, 0x21, 0x32, 0x75, 0x10, 0x27, 0x43, 0x75, 0x4C, 0x02 - .byte 0x98, 0x04, 0xE5, 0x06, 0x31, 0x09, 0x7D, 0x0B, 0xC9, 0x0D, 0x16, 0x10, 0x62, 0x12, 0xAE, 0x14 - .byte 0xFA, 0x16, 0x47, 0x19, 0x93, 0x1B, 0xDF, 0x1D, 0x2B, 0x20, 0x78, 0x22, 0xC4, 0x24, 0x10, 0x27 - .byte 0x64, 0x75, 0x2E, 0x01, 0x31, 0x75, 0x5B, 0x02, 0xF2, 0x02, 0x89, 0x03, 0xFA, 0x03, 0x32, 0x75 - .byte 0x20, 0x04, 0xB7, 0x04, 0x31, 0x75, 0xDC, 0x04, 0x32, 0x75, 0x4D, 0x05, 0x7B, 0x06, 0x12, 0x07 - .byte 0x31, 0x75, 0xA9, 0x07, 0x40, 0x08, 0xD6, 0x08, 0x22, 0x09, 0x48, 0x09, 0x93, 0x09, 0x33, 0x75 - .byte 0xDE, 0x09, 0x31, 0x75, 0x2A, 0x0A, 0x57, 0x0B, 0x31, 0x75, 0x85, 0x0C, 0x42, 0x0D, 0x6F, 0x0E - .byte 0x2C, 0x0F, 0x31, 0x75, 0x3B, 0x10, 0x31, 0x75, 0x8F, 0x11, 0x26, 0x12, 0x32, 0x75, 0x53, 0x13 - .byte 0xEA, 0x13, 0x31, 0x75, 0x5B, 0x14, 0x32, 0x75, 0xCC, 0x14, 0x63, 0x15, 0xFA, 0x15, 0x28, 0x17 - .byte 0xBE, 0x17, 0x55, 0x18, 0x37, 0x75, 0x83, 0x19, 0x1A, 0x1A, 0x3F, 0x1A, 0xD6, 0x1A, 0x04, 0x1C - .byte 0x2A, 0x1C, 0x31, 0x75, 0xC0, 0x1C, 0x32, 0x75, 0xA3, 0x1D, 0x3A, 0x1E, 0x1C, 0x1F, 0x32, 0x75 - .byte 0x49, 0x20, 0xE0, 0x20, 0x0E, 0x22, 0xA5, 0x22, 0x3C, 0x23, 0xD2, 0x23, 0x31, 0x75, 0x69, 0x24 - .byte 0x4C, 0x25, 0xE2, 0x25, 0x79, 0x26, 0x10, 0x27, 0x87, 0x75, 0x00, 0x00, 0x35, 0x75, 0xC0, 0x0F - .byte 0x32, 0x75, 0x50, 0x17, 0x10, 0x27, 0xEC, 0x75, 0x10, 0x27, 0x35, 0x75, 0xE9, 0x00, 0x5E, 0x01 - .byte 0x47, 0x02, 0xBC, 0x02, 0x31, 0x03, 0xA5, 0x03, 0x31, 0x75, 0x1A, 0x04, 0x37, 0x04, 0xAC, 0x04 - .byte 0x31, 0x75, 0xC9, 0x04, 0x3E, 0x05, 0xB3, 0x05, 0x0A, 0x06, 0xF3, 0x06, 0x68, 0x07, 0x31, 0x75 - .byte 0xDD, 0x07, 0x52, 0x08, 0xC6, 0x08, 0x01, 0x09, 0x1E, 0x09, 0x58, 0x09, 0xCD, 0x09, 0x07, 0x0A - .byte 0x3C, 0x0A, 0x76, 0x0A, 0xEB, 0x0A, 0x25, 0x0B, 0x0E, 0x0C, 0x31, 0x75, 0xF8, 0x0C, 0x8A, 0x0D - .byte 0x73, 0x0E, 0x05, 0x0F, 0x31, 0x75, 0xEE, 0x0F, 0x31, 0x75, 0x63, 0x10, 0xD8, 0x10, 0x12, 0x11 - .byte 0x4C, 0x11, 0x36, 0x12, 0xAA, 0x12, 0xE5, 0x12, 0x3C, 0x13, 0x94, 0x13, 0x31, 0x75, 0xEB, 0x13 - .byte 0x60, 0x14, 0xD5, 0x14, 0xBE, 0x15, 0x33, 0x16, 0xA7, 0x16, 0xE2, 0x16, 0x1C, 0x17, 0x56, 0x17 - .byte 0x91, 0x17, 0xCB, 0x17, 0x05, 0x18, 0x40, 0x18, 0x29, 0x19, 0x9E, 0x19, 0xBB, 0x19, 0x30, 0x1A - .byte 0x19, 0x1B, 0x36, 0x1B, 0x53, 0x1B, 0xC8, 0x1B, 0x32, 0x75, 0x77, 0x1C, 0xEC, 0x1C, 0x9B, 0x1D - .byte 0x0F, 0x1E, 0xBE, 0x1E, 0xA8, 0x1F, 0x1D, 0x20, 0x06, 0x21, 0x7B, 0x21, 0xEF, 0x21, 0x64, 0x22 - .byte 0xD9, 0x22, 0x4D, 0x23, 0xC2, 0x23, 0x71, 0x24, 0xE6, 0x24, 0x5A, 0x25, 0x95, 0x25, 0xB2, 0x25 - .byte 0xEC, 0x25, 0x27, 0x26, 0x61, 0x26, 0x9B, 0x26, 0xD6, 0x26, 0x10, 0x27, 0x40, 0x75, 0xBA, 0x02 - .byte 0x2D, 0x08, 0xA0, 0x0D, 0x31, 0x75, 0x89, 0x0E, 0x48, 0x75, 0x14, 0x13, 0x32, 0x75, 0x9F, 0x17 - .byte 0x31, 0x75, 0x29, 0x1C, 0x42, 0x75, 0xFA, 0x1D, 0xCC, 0x1F, 0x9D, 0x21, 0x6E, 0x23, 0x3F, 0x25 - .byte 0x10, 0x27, 0x34, 0x75, 0x32, 0x75, 0x04, 0x09, 0x09, 0x15, 0x0C, 0x1E, 0x10, 0x27, 0x4B, 0x75 - .byte 0x57, 0x04, 0x35, 0x75, 0xAE, 0x08, 0x31, 0x75, 0x05, 0x0D, 0x5C, 0x11, 0xB4, 0x15, 0x0B, 0x1A - .byte 0x39, 0x75, 0x62, 0x1E, 0x31, 0x75, 0xB9, 0x22, 0x10, 0x27, 0x4B, 0x75, 0x83, 0x06, 0x33, 0x75 - .byte 0x05, 0x0D, 0x35, 0x75, 0x88, 0x13, 0x3E, 0x75, 0x0B, 0x1A, 0x31, 0x75, 0x8D, 0x20, 0x32, 0x75 - .byte 0x10, 0x27, 0x43, 0x75, 0x4C, 0x02, 0x98, 0x04, 0xE5, 0x06, 0x31, 0x09, 0x7D, 0x0B, 0xC9, 0x0D - .byte 0x16, 0x10, 0x62, 0x12, 0xAE, 0x14, 0xFA, 0x16, 0x47, 0x19, 0x93, 0x1B, 0xDF, 0x1D, 0x2B, 0x20 - .byte 0x78, 0x22, 0xC4, 0x24, 0x10, 0x27, 0x64, 0x75, 0x06, 0x01, 0x31, 0x75, 0x0B, 0x02, 0x8E, 0x02 - .byte 0x11, 0x03, 0x73, 0x03, 0x32, 0x75, 0x94, 0x03, 0x16, 0x04, 0x31, 0x75, 0x37, 0x04, 0xBA, 0x04 - .byte 0x3D, 0x05, 0x9F, 0x05, 0xA4, 0x06, 0x27, 0x07, 0x31, 0x75, 0xAA, 0x07, 0x2D, 0x08, 0xB0, 0x08 - .byte 0xF1, 0x08, 0x12, 0x09, 0x53, 0x09, 0xD6, 0x09, 0x31, 0x75, 0x11, 0x0A, 0x52, 0x0A, 0xD5, 0x0A - .byte 0x16, 0x0B, 0x1C, 0x0C, 0x31, 0x75, 0x22, 0x0D, 0xC5, 0x0D, 0xCB, 0x0E, 0x6E, 0x0F, 0x31, 0x75 - .byte 0x74, 0x10, 0x31, 0x75, 0x9A, 0x11, 0x1D, 0x12, 0x5E, 0x12, 0xA0, 0x12, 0xA5, 0x13, 0x28, 0x14 - .byte 0x31, 0x75, 0x8A, 0x14, 0xEC, 0x14, 0x31, 0x75, 0x4F, 0x15, 0xD1, 0x15, 0x54, 0x16, 0x5A, 0x17 - .byte 0xDD, 0x17, 0x5F, 0x18, 0x37, 0x75, 0x65, 0x19, 0xE8, 0x19, 0x08, 0x1A, 0x8B, 0x1A, 0x91, 0x1B - .byte 0xB2, 0x1B, 0x31, 0x75, 0x34, 0x1C, 0x32, 0x75, 0xF9, 0x1C, 0x7B, 0x1D, 0x40, 0x1E, 0xC2, 0x1E - .byte 0x87, 0x1F, 0x8C, 0x20, 0x0F, 0x21, 0x15, 0x22, 0x97, 0x22, 0x1A, 0x23, 0x9D, 0x23, 0x20, 0x24 - .byte 0xA3, 0x24, 0x25, 0x25, 0xEA, 0x25, 0x6C, 0x26, 0xEF, 0x26, 0x31, 0x75, 0x10, 0x27, 0x85, 0x75 - .byte 0x32, 0x75, 0xC4, 0x09, 0x88, 0x13, 0x4C, 0x1D, 0x10, 0x27, 0x4A, 0x75, 0x01, 0x03, 0x02, 0x06 - .byte 0x35, 0x75, 0x04, 0x09, 0x31, 0x75, 0x05, 0x0C, 0x06, 0x0F, 0x07, 0x12, 0x09, 0x15, 0x37, 0x75 - .byte 0x0A, 0x18, 0x0B, 0x1B, 0x0C, 0x1E, 0x31, 0x75, 0x0E, 0x21, 0x0F, 0x24, 0x3A, 0x75, 0x10, 0x27 - .byte 0x40, 0x75, 0x83, 0x06, 0x33, 0x75, 0x05, 0x0D, 0x35, 0x75, 0x88, 0x13, 0x3E, 0x75, 0x0B, 0x1A - .byte 0x31, 0x75, 0x8D, 0x20, 0x32, 0x75, 0x10, 0x27, 0x43, 0x75, 0x4C, 0x02, 0x98, 0x04, 0xE5, 0x06 - .byte 0x31, 0x09, 0x7D, 0x0B, 0xC9, 0x0D, 0x16, 0x10, 0x62, 0x12, 0xAE, 0x14, 0xFA, 0x16, 0x47, 0x19 - .byte 0x93, 0x1B, 0xDF, 0x1D, 0x2B, 0x20, 0x78, 0x22, 0xC4, 0x24, 0x10, 0x27, 0x64, 0x75, 0x06, 0x01 - .byte 0x31, 0x75, 0x0B, 0x02, 0x8E, 0x02, 0x11, 0x03, 0x73, 0x03, 0x32, 0x75, 0x94, 0x03, 0x16, 0x04 - .byte 0x31, 0x75, 0x37, 0x04, 0xBA, 0x04, 0x3D, 0x05, 0x9F, 0x05, 0xA4, 0x06, 0x27, 0x07, 0x31, 0x75 - .byte 0xAA, 0x07, 0x2D, 0x08, 0xB0, 0x08, 0xF1, 0x08, 0x12, 0x09, 0x53, 0x09, 0xD6, 0x09, 0x31, 0x75 - .byte 0x11, 0x0A, 0x52, 0x0A, 0xD5, 0x0A, 0x16, 0x0B, 0x1C, 0x0C, 0x31, 0x75, 0x22, 0x0D, 0xC5, 0x0D - .byte 0xCB, 0x0E, 0x6E, 0x0F, 0x31, 0x75, 0x74, 0x10, 0x31, 0x75, 0x9A, 0x11, 0x1D, 0x12, 0x5E, 0x12 - .byte 0xA0, 0x12, 0xA5, 0x13, 0x28, 0x14, 0x31, 0x75, 0x8A, 0x14, 0xEC, 0x14, 0x31, 0x75, 0x4F, 0x15 - .byte 0xD1, 0x15, 0x54, 0x16, 0x5A, 0x17, 0xDD, 0x17, 0x5F, 0x18, 0x37, 0x75, 0x65, 0x19, 0xE8, 0x19 - .byte 0x08, 0x1A, 0x8B, 0x1A, 0x91, 0x1B, 0xB2, 0x1B, 0x31, 0x75, 0x34, 0x1C, 0x32, 0x75, 0xF9, 0x1C - .byte 0x7B, 0x1D, 0x40, 0x1E, 0xC2, 0x1E, 0x87, 0x1F, 0x8C, 0x20, 0x0F, 0x21, 0x15, 0x22, 0x97, 0x22 - .byte 0x1A, 0x23, 0x9D, 0x23, 0x20, 0x24, 0xA3, 0x24, 0x25, 0x25, 0xEA, 0x25, 0x6C, 0x26, 0xEF, 0x26 - .byte 0x31, 0x75, 0x10, 0x27, 0x85, 0x75, 0x00, 0x00, 0x32, 0x75, 0xC4, 0x09, 0x88, 0x13, 0x4C, 0x1D - .byte 0x10, 0x27, 0x4A, 0x75, 0x01, 0x03, 0x02, 0x06, 0x35, 0x75, 0x04, 0x09, 0x31, 0x75, 0x05, 0x0C - .byte 0x06, 0x0F, 0x07, 0x12, 0x09, 0x15, 0x37, 0x75, 0x0A, 0x18, 0x0B, 0x1B, 0x0C, 0x1E, 0x31, 0x75 - .byte 0x0E, 0x21, 0x0F, 0x24, 0x3A, 0x75, 0x10, 0x27, 0x40, 0x75, 0x95, 0x05, 0x33, 0x75, 0x29, 0x0B - .byte 0x35, 0x75, 0xBE, 0x10, 0x3E, 0x75, 0x52, 0x16, 0x31, 0x75, 0xE7, 0x1B, 0x7B, 0x21, 0x31, 0x75 - .byte 0x10, 0x27, 0x43, 0x75, 0x4C, 0x02, 0x98, 0x04, 0xE5, 0x06, 0x31, 0x09, 0x7D, 0x0B, 0xC9, 0x0D - .byte 0x16, 0x10, 0x62, 0x12, 0xAE, 0x14, 0xFA, 0x16, 0x47, 0x19, 0x93, 0x1B, 0xDF, 0x1D, 0x2B, 0x20 - .byte 0x78, 0x22, 0xC4, 0x24, 0x10, 0x27, 0x64, 0x75, 0x06, 0x01, 0x31, 0x75, 0x0B, 0x02, 0x8E, 0x02 - .byte 0x11, 0x03, 0x73, 0x03, 0x32, 0x75, 0x94, 0x03, 0x16, 0x04, 0x31, 0x75, 0x37, 0x04, 0xBA, 0x04 - .byte 0x3D, 0x05, 0x9F, 0x05, 0xA4, 0x06, 0x27, 0x07, 0x31, 0x75, 0xAA, 0x07, 0x2D, 0x08, 0xB0, 0x08 - .byte 0xF1, 0x08, 0x12, 0x09, 0x53, 0x09, 0xD6, 0x09, 0x31, 0x75, 0x11, 0x0A, 0x52, 0x0A, 0xD5, 0x0A - .byte 0x16, 0x0B, 0x1C, 0x0C, 0x31, 0x75, 0x22, 0x0D, 0xC5, 0x0D, 0xCB, 0x0E, 0x6E, 0x0F, 0x31, 0x75 - .byte 0x74, 0x10, 0x31, 0x75, 0x9A, 0x11, 0x1D, 0x12, 0x5E, 0x12, 0xA0, 0x12, 0xA5, 0x13, 0x28, 0x14 - .byte 0x31, 0x75, 0x8A, 0x14, 0xEC, 0x14, 0x31, 0x75, 0x4F, 0x15, 0xD1, 0x15, 0x54, 0x16, 0x5A, 0x17 - .byte 0xDD, 0x17, 0x5F, 0x18, 0x37, 0x75, 0x65, 0x19, 0xE8, 0x19, 0x08, 0x1A, 0x8B, 0x1A, 0x91, 0x1B - .byte 0xB2, 0x1B, 0x31, 0x75, 0x34, 0x1C, 0x32, 0x75, 0xF9, 0x1C, 0x7B, 0x1D, 0x40, 0x1E, 0xC2, 0x1E - .byte 0x87, 0x1F, 0x8C, 0x20, 0x0F, 0x21, 0x15, 0x22, 0x97, 0x22, 0x1A, 0x23, 0x9D, 0x23, 0x20, 0x24 - .byte 0xA3, 0x24, 0x25, 0x25, 0xEA, 0x25, 0x6C, 0x26, 0xEF, 0x26, 0x31, 0x75, 0x10, 0x27, 0x85, 0x75 - .byte 0x32, 0x75, 0xE2, 0x04, 0x31, 0x75, 0x88, 0x13, 0x2E, 0x22, 0x32, 0x75, 0x9F, 0x24, 0x31, 0x75 - .byte 0x10, 0x27, 0x46, 0x75, 0xCA, 0x02, 0x33, 0x75, 0x95, 0x05, 0x33, 0x75, 0x5F, 0x08, 0x29, 0x0B - .byte 0xF3, 0x0D, 0xBE, 0x10, 0x38, 0x75, 0x88, 0x13, 0x32, 0x75, 0x52, 0x16, 0x1D, 0x19, 0x32, 0x75 - .byte 0xE7, 0x1B, 0x37, 0x75, 0xB1, 0x1E, 0x31, 0x75, 0x7B, 0x21, 0x46, 0x24, 0x10, 0x27, 0x50, 0x75 - .byte 0xD0, 0x07, 0x3A, 0x75, 0xA0, 0x0F, 0x70, 0x17, 0x40, 0x1F, 0x35, 0x75, 0x10, 0x27, 0x4E, 0x75 - .byte 0x72, 0x01, 0xE5, 0x02, 0x57, 0x04, 0xC9, 0x05, 0x3C, 0x07, 0xAE, 0x08, 0x21, 0x0A, 0x93, 0x0B - .byte 0x05, 0x0D, 0x78, 0x0E, 0xEA, 0x0F, 0x5C, 0x11, 0xCF, 0x12, 0x41, 0x14, 0xB4, 0x15, 0x26, 0x17 - .byte 0x98, 0x18, 0x0B, 0x1A, 0x7D, 0x1B, 0xEF, 0x1C, 0x62, 0x1E, 0xD4, 0x1F, 0x47, 0x21, 0xB9, 0x22 - .byte 0x2B, 0x24, 0x9E, 0x25, 0x10, 0x27, 0x46, 0x75, 0x06, 0x01, 0x31, 0x75, 0x0B, 0x02, 0x8E, 0x02 - .byte 0x11, 0x03, 0x73, 0x03, 0x32, 0x75, 0x94, 0x03, 0x16, 0x04, 0x31, 0x75, 0x37, 0x04, 0xBA, 0x04 - .byte 0x3D, 0x05, 0x9F, 0x05, 0xA4, 0x06, 0x27, 0x07, 0x31, 0x75, 0xAA, 0x07, 0x2D, 0x08, 0xB0, 0x08 - .byte 0xF1, 0x08, 0x12, 0x09, 0x53, 0x09, 0xD6, 0x09, 0x31, 0x75, 0x11, 0x0A, 0x52, 0x0A, 0xD5, 0x0A - .byte 0x16, 0x0B, 0x1C, 0x0C, 0x31, 0x75, 0x22, 0x0D, 0xC5, 0x0D, 0xCB, 0x0E, 0x6E, 0x0F, 0x31, 0x75 - .byte 0x74, 0x10, 0x31, 0x75, 0x9A, 0x11, 0x1D, 0x12, 0x5E, 0x12, 0xA0, 0x12, 0xA5, 0x13, 0x28, 0x14 - .byte 0x31, 0x75, 0x8A, 0x14, 0xEC, 0x14, 0x31, 0x75, 0x4F, 0x15, 0xD1, 0x15, 0x54, 0x16, 0x5A, 0x17 - .byte 0xDD, 0x17, 0x5F, 0x18, 0x37, 0x75, 0x65, 0x19, 0xE8, 0x19, 0x08, 0x1A, 0x8B, 0x1A, 0x91, 0x1B - .byte 0xB2, 0x1B, 0x31, 0x75, 0x34, 0x1C, 0x32, 0x75, 0xF9, 0x1C, 0x7B, 0x1D, 0x40, 0x1E, 0xC2, 0x1E - .byte 0x87, 0x1F, 0x8C, 0x20, 0x0F, 0x21, 0x15, 0x22, 0x97, 0x22, 0x1A, 0x23, 0x9D, 0x23, 0x20, 0x24 - .byte 0xA3, 0x24, 0x25, 0x25, 0xEA, 0x25, 0x6C, 0x26, 0xEF, 0x26, 0x31, 0x75, 0x10, 0x27, 0x83, 0x75 - .byte 0x10, 0x27, 0x31, 0x75, 0x32, 0x75, 0xB8, 0x0B, 0x31, 0x75, 0x70, 0x17, 0x28, 0x23, 0x32, 0x75 - .byte 0x1C, 0x25, 0x31, 0x75, 0x10, 0x27, 0x45, 0x75, 0x9B, 0x02, 0x35, 0x05, 0x33, 0x75, 0xD0, 0x07 - .byte 0x31, 0x75, 0x6B, 0x0A, 0x05, 0x0D, 0xA0, 0x0F, 0x3B, 0x12, 0xD5, 0x14, 0x70, 0x17, 0x37, 0x75 - .byte 0x0B, 0x1A, 0xA5, 0x1C, 0x40, 0x1F, 0x31, 0x75, 0xDB, 0x21, 0x75, 0x24, 0x3A, 0x75, 0x10, 0x27 - .byte 0x40, 0x75, 0x83, 0x06, 0x33, 0x75, 0x05, 0x0D, 0x35, 0x75, 0x88, 0x13, 0x3E, 0x75, 0x0B, 0x1A - .byte 0x32, 0x75, 0x8D, 0x20, 0x31, 0x75, 0x10, 0x27, 0x57, 0x75, 0x72, 0x01, 0xE5, 0x02, 0x57, 0x04 - .byte 0xC9, 0x05, 0x3C, 0x07, 0xAE, 0x08, 0x21, 0x0A, 0x93, 0x0B, 0x05, 0x0D, 0x78, 0x0E, 0xEA, 0x0F - .byte 0x5C, 0x11, 0xCF, 0x12, 0x41, 0x14, 0xB4, 0x15, 0x26, 0x17, 0x98, 0x18, 0x0B, 0x1A, 0x7D, 0x1B - .byte 0xEF, 0x1C, 0x62, 0x1E, 0xD4, 0x1F, 0x47, 0x21, 0xB9, 0x22, 0x2B, 0x24, 0x9E, 0x25, 0x10, 0x27 - .byte 0x46, 0x75, 0x06, 0x01, 0x31, 0x75, 0x0B, 0x02, 0x8E, 0x02, 0x11, 0x03, 0x73, 0x03, 0x32, 0x75 - .byte 0x94, 0x03, 0x16, 0x04, 0x31, 0x75, 0x37, 0x04, 0xBA, 0x04, 0x3D, 0x05, 0x9F, 0x05, 0xA4, 0x06 - .byte 0x27, 0x07, 0x31, 0x75, 0xAA, 0x07, 0x2D, 0x08, 0xB0, 0x08, 0xF1, 0x08, 0x12, 0x09, 0x53, 0x09 - .byte 0xD6, 0x09, 0x31, 0x75, 0x11, 0x0A, 0x52, 0x0A, 0xD5, 0x0A, 0x16, 0x0B, 0x1C, 0x0C, 0x31, 0x75 - .byte 0x22, 0x0D, 0xC5, 0x0D, 0xCB, 0x0E, 0x6E, 0x0F, 0x31, 0x75, 0x74, 0x10, 0x31, 0x75, 0x9A, 0x11 - .byte 0x1D, 0x12, 0x5E, 0x12, 0xA0, 0x12, 0xA5, 0x13, 0x28, 0x14, 0x31, 0x75, 0x8A, 0x14, 0xEC, 0x14 - .byte 0x31, 0x75, 0x4F, 0x15, 0xD1, 0x15, 0x54, 0x16, 0x5A, 0x17, 0xDD, 0x17, 0x5F, 0x18, 0x37, 0x75 - .byte 0x65, 0x19, 0xE8, 0x19, 0x08, 0x1A, 0x8B, 0x1A, 0x91, 0x1B, 0xB2, 0x1B, 0x31, 0x75, 0x34, 0x1C - .byte 0x32, 0x75, 0xF9, 0x1C, 0x7B, 0x1D, 0x40, 0x1E, 0xC2, 0x1E, 0x87, 0x1F, 0x8C, 0x20, 0x0F, 0x21 - .byte 0x15, 0x22, 0x97, 0x22, 0x1A, 0x23, 0x9D, 0x23, 0x20, 0x24, 0xA3, 0x24, 0x25, 0x25, 0xEA, 0x25 - .byte 0x6C, 0x26, 0xEF, 0x26, 0x31, 0x75, 0x10, 0x27, 0x83, 0x75, 0x10, 0x27, 0x31, 0x75, 0x00, 0x00 - .byte 0x32, 0x75, 0xE2, 0x04, 0x31, 0x75, 0x88, 0x13, 0x2E, 0x22, 0x32, 0x75, 0x9F, 0x24, 0x31, 0x75 - .byte 0x10, 0x27, 0x46, 0x75, 0x2C, 0x02, 0x33, 0x75, 0x57, 0x04, 0x32, 0x75, 0x83, 0x06, 0xAE, 0x08 - .byte 0xDA, 0x0A, 0x05, 0x0D, 0x31, 0x0F, 0x37, 0x75, 0x5C, 0x11, 0x88, 0x13, 0xB4, 0x15, 0x31, 0x75 - .byte 0xDF, 0x17, 0x0B, 0x1A, 0x32, 0x75, 0x36, 0x1C, 0x34, 0x75, 0x62, 0x1E, 0x32, 0x75, 0x8D, 0x20 - .byte 0x31, 0x75, 0xB9, 0x22, 0xE4, 0x24, 0x10, 0x27, 0x50, 0x75, 0xD0, 0x07, 0x3A, 0x75, 0xA0, 0x0F - .byte 0x70, 0x17, 0x40, 0x1F, 0x35, 0x75, 0x10, 0x27, 0x4E, 0x75, 0x72, 0x01, 0xE5, 0x02, 0x57, 0x04 - .byte 0xC9, 0x05, 0x3C, 0x07, 0xAE, 0x08, 0x21, 0x0A, 0x93, 0x0B, 0x05, 0x0D, 0x78, 0x0E, 0xEA, 0x0F - .byte 0x5C, 0x11, 0xCF, 0x12, 0x41, 0x14, 0xB4, 0x15, 0x26, 0x17, 0x98, 0x18, 0x0B, 0x1A, 0x7D, 0x1B - .byte 0xEF, 0x1C, 0x62, 0x1E, 0xD4, 0x1F, 0x47, 0x21, 0xB9, 0x22, 0x2B, 0x24, 0x9E, 0x25, 0x10, 0x27 - .byte 0x46, 0x75, 0x06, 0x01, 0x31, 0x75, 0x0B, 0x02, 0x8E, 0x02, 0x11, 0x03, 0x73, 0x03, 0x32, 0x75 - .byte 0x94, 0x03, 0x16, 0x04, 0x31, 0x75, 0x37, 0x04, 0xBA, 0x04, 0x3D, 0x05, 0x9F, 0x05, 0xA4, 0x06 - .byte 0x27, 0x07, 0x31, 0x75, 0xAA, 0x07, 0x2D, 0x08, 0xB0, 0x08, 0xF1, 0x08, 0x12, 0x09, 0x53, 0x09 - .byte 0xD6, 0x09, 0x31, 0x75, 0x11, 0x0A, 0x52, 0x0A, 0xD5, 0x0A, 0x16, 0x0B, 0x1C, 0x0C, 0x31, 0x75 - .byte 0x22, 0x0D, 0xC5, 0x0D, 0xCB, 0x0E, 0x6E, 0x0F, 0x31, 0x75, 0x74, 0x10, 0x31, 0x75, 0x9A, 0x11 - .byte 0x1D, 0x12, 0x5E, 0x12, 0xA0, 0x12, 0xA5, 0x13, 0x28, 0x14, 0x31, 0x75, 0x8A, 0x14, 0xEC, 0x14 - .byte 0x31, 0x75, 0x4F, 0x15, 0xD1, 0x15, 0x54, 0x16, 0x5A, 0x17, 0xDD, 0x17, 0x5F, 0x18, 0x37, 0x75 - .byte 0x65, 0x19, 0xE8, 0x19, 0x08, 0x1A, 0x8B, 0x1A, 0x91, 0x1B, 0xB2, 0x1B, 0x31, 0x75, 0x34, 0x1C - .byte 0x32, 0x75, 0xF9, 0x1C, 0x7B, 0x1D, 0x40, 0x1E, 0xC2, 0x1E, 0x87, 0x1F, 0x8C, 0x20, 0x0F, 0x21 - .byte 0x15, 0x22, 0x97, 0x22, 0x1A, 0x23, 0x9D, 0x23, 0x20, 0x24, 0xA3, 0x24, 0x25, 0x25, 0xEA, 0x25 - .byte 0x6C, 0x26, 0xEF, 0x26, 0x31, 0x75, 0x10, 0x27, 0x83, 0x75, 0x10, 0x27, 0x31, 0x75, 0x00, 0x00 - .byte 0x32, 0x75, 0xB8, 0x0B, 0x31, 0x75, 0x70, 0x17, 0x28, 0x23, 0x32, 0x75, 0x1C, 0x25, 0x31, 0x75 - .byte 0x10, 0x27, 0x45, 0x75, 0x2C, 0x02, 0x57, 0x04, 0x33, 0x75, 0x83, 0x06, 0x31, 0x75, 0xAE, 0x08 - .byte 0xDA, 0x0A, 0x05, 0x0D, 0x31, 0x0F, 0x5C, 0x11, 0x88, 0x13, 0x37, 0x75, 0xB4, 0x15, 0xDF, 0x17 - .byte 0x0B, 0x1A, 0x31, 0x75, 0x36, 0x1C, 0x62, 0x1E, 0x3A, 0x75, 0x8D, 0x20, 0x31, 0x75, 0xB9, 0x22 - .byte 0xE4, 0x24, 0x10, 0x27, 0x3C, 0x75, 0x1B, 0x06, 0x33, 0x75, 0x35, 0x0C, 0x44, 0x75, 0x50, 0x12 - .byte 0x32, 0x75, 0x6A, 0x18, 0x32, 0x75, 0x14, 0x1C, 0xBD, 0x1F, 0x67, 0x23, 0x35, 0x75, 0x10, 0x27 - .byte 0x4E, 0x75, 0x72, 0x01, 0xE5, 0x02, 0x57, 0x04, 0xC9, 0x05, 0x3C, 0x07, 0xAE, 0x08, 0x21, 0x0A - .byte 0x93, 0x0B, 0x05, 0x0D, 0x78, 0x0E, 0xEA, 0x0F, 0x5C, 0x11, 0xCF, 0x12, 0x41, 0x14, 0xB4, 0x15 - .byte 0x26, 0x17, 0x98, 0x18, 0x0B, 0x1A, 0x7D, 0x1B, 0xEF, 0x1C, 0x62, 0x1E, 0xD4, 0x1F, 0x47, 0x21 - .byte 0xB9, 0x22, 0x2B, 0x24, 0x9E, 0x25, 0x10, 0x27, 0x46, 0x75, 0x06, 0x01, 0x31, 0x75, 0x0B, 0x02 - .byte 0x8E, 0x02, 0x11, 0x03, 0x73, 0x03, 0x32, 0x75, 0x94, 0x03, 0x16, 0x04, 0x31, 0x75, 0x37, 0x04 - .byte 0xBA, 0x04, 0x3D, 0x05, 0x9F, 0x05, 0xA4, 0x06, 0x27, 0x07, 0x31, 0x75, 0xAA, 0x07, 0x2D, 0x08 - .byte 0xB0, 0x08, 0xF1, 0x08, 0x12, 0x09, 0x53, 0x09, 0xD6, 0x09, 0x31, 0x75, 0x11, 0x0A, 0x52, 0x0A - .byte 0xD5, 0x0A, 0x16, 0x0B, 0x1C, 0x0C, 0x31, 0x75, 0x22, 0x0D, 0xC5, 0x0D, 0xCB, 0x0E, 0x6E, 0x0F - .byte 0x31, 0x75, 0x74, 0x10, 0x31, 0x75, 0x9A, 0x11, 0x1D, 0x12, 0x5E, 0x12, 0xA0, 0x12, 0xA5, 0x13 - .byte 0x28, 0x14, 0x31, 0x75, 0x8A, 0x14, 0xEC, 0x14, 0x31, 0x75, 0x4F, 0x15, 0xD1, 0x15, 0x54, 0x16 - .byte 0x5A, 0x17, 0xDD, 0x17, 0x5F, 0x18, 0x37, 0x75, 0x65, 0x19, 0xE8, 0x19, 0x08, 0x1A, 0x8B, 0x1A - .byte 0x91, 0x1B, 0xB2, 0x1B, 0x31, 0x75, 0x34, 0x1C, 0x32, 0x75, 0xF9, 0x1C, 0x7B, 0x1D, 0x40, 0x1E - .byte 0xC2, 0x1E, 0x87, 0x1F, 0x8C, 0x20, 0x0F, 0x21, 0x15, 0x22, 0x97, 0x22, 0x1A, 0x23, 0x9D, 0x23 - .byte 0x20, 0x24, 0xA3, 0x24, 0x25, 0x25, 0xEA, 0x25, 0x6C, 0x26, 0xEF, 0x26, 0x31, 0x75, 0x10, 0x27 - .byte 0x83, 0x75, 0x10, 0x27, 0x31, 0x75, 0x00, 0x00, 0x32, 0x75, 0xE2, 0x04, 0x31, 0x75, 0x88, 0x13 - .byte 0x2E, 0x22, 0x32, 0x75, 0x9F, 0x24, 0x31, 0x75, 0x10, 0x27, 0x46, 0x75, 0x2C, 0x02, 0x33, 0x75 - .byte 0x57, 0x04, 0x32, 0x75, 0x83, 0x06, 0xAE, 0x08, 0xDA, 0x0A, 0x05, 0x0D, 0x31, 0x0F, 0x37, 0x75 - .byte 0x5C, 0x11, 0x88, 0x13, 0xB4, 0x15, 0x31, 0x75, 0xDF, 0x17, 0x0B, 0x1A, 0x32, 0x75, 0x36, 0x1C - .byte 0x34, 0x75, 0x62, 0x1E, 0x32, 0x75, 0x8D, 0x20, 0x31, 0x75, 0xB9, 0x22, 0xE4, 0x24, 0x10, 0x27 - .byte 0x3C, 0x75, 0x83, 0x06, 0x33, 0x75, 0x05, 0x0D, 0x3F, 0x75, 0xED, 0x10, 0x37, 0x75, 0x70, 0x17 - .byte 0x32, 0x75, 0x58, 0x1B, 0x40, 0x1F, 0x28, 0x23, 0x35, 0x75, 0x10, 0x27, 0x4E, 0x75, 0x72, 0x01 - .byte 0xE5, 0x02, 0x57, 0x04, 0xC9, 0x05, 0x3C, 0x07, 0xAE, 0x08, 0x21, 0x0A, 0x93, 0x0B, 0x05, 0x0D - .byte 0x78, 0x0E, 0xEA, 0x0F, 0x5C, 0x11, 0xCF, 0x12, 0x41, 0x14, 0xB4, 0x15, 0x26, 0x17, 0x98, 0x18 - .byte 0x0B, 0x1A, 0x7D, 0x1B, 0xEF, 0x1C, 0x62, 0x1E, 0xD4, 0x1F, 0x47, 0x21, 0xB9, 0x22, 0x2B, 0x24 - .byte 0x9E, 0x25, 0x10, 0x27, 0x46, 0x75, 0x06, 0x01, 0x31, 0x75, 0x0B, 0x02, 0x8E, 0x02, 0x11, 0x03 - .byte 0x73, 0x03, 0x32, 0x75, 0x94, 0x03, 0x16, 0x04, 0x31, 0x75, 0x37, 0x04, 0xBA, 0x04, 0x3D, 0x05 - .byte 0x9F, 0x05, 0xA4, 0x06, 0x27, 0x07, 0x31, 0x75, 0xAA, 0x07, 0x2D, 0x08, 0xB0, 0x08, 0xF1, 0x08 - .byte 0x12, 0x09, 0x53, 0x09, 0xD6, 0x09, 0x31, 0x75, 0x11, 0x0A, 0x52, 0x0A, 0xD5, 0x0A, 0x16, 0x0B - .byte 0x1C, 0x0C, 0x31, 0x75, 0x22, 0x0D, 0xC5, 0x0D, 0xCB, 0x0E, 0x6E, 0x0F, 0x31, 0x75, 0x74, 0x10 - .byte 0x31, 0x75, 0x9A, 0x11, 0x1D, 0x12, 0x5E, 0x12, 0xA0, 0x12, 0xA5, 0x13, 0x28, 0x14, 0x31, 0x75 - .byte 0x8A, 0x14, 0xEC, 0x14, 0x31, 0x75, 0x4F, 0x15, 0xD1, 0x15, 0x54, 0x16, 0x5A, 0x17, 0xDD, 0x17 - .byte 0x5F, 0x18, 0x37, 0x75, 0x65, 0x19, 0xE8, 0x19, 0x08, 0x1A, 0x8B, 0x1A, 0x91, 0x1B, 0xB2, 0x1B - .byte 0x31, 0x75, 0x34, 0x1C, 0x32, 0x75, 0xF9, 0x1C, 0x7B, 0x1D, 0x40, 0x1E, 0xC2, 0x1E, 0x87, 0x1F - .byte 0x8C, 0x20, 0x0F, 0x21, 0x15, 0x22, 0x97, 0x22, 0x1A, 0x23, 0x9D, 0x23, 0x20, 0x24, 0xA3, 0x24 - .byte 0x25, 0x25, 0xEA, 0x25, 0x6C, 0x26, 0xEF, 0x26, 0x31, 0x75, 0x10, 0x27, 0x83, 0x75, 0x10, 0x27 - .byte 0x31, 0x75, 0x00, 0x00, 0x32, 0x75, 0xE2, 0x04, 0x31, 0x75, 0x88, 0x13, 0x2E, 0x22, 0x32, 0x75 - .byte 0x9F, 0x24, 0x31, 0x75, 0x10, 0x27, 0x46, 0x75, 0x2C, 0x02, 0x33, 0x75, 0x57, 0x04, 0x31, 0x75 - .byte 0x83, 0x06, 0xAE, 0x08, 0xDA, 0x0A, 0x05, 0x0D, 0x31, 0x0F, 0x5C, 0x11, 0x37, 0x75, 0x88, 0x13 - .byte 0xB4, 0x15, 0xDF, 0x17, 0x31, 0x75, 0x0B, 0x1A, 0x36, 0x1C, 0x37, 0x75, 0x62, 0x1E, 0x32, 0x75 - .byte 0x8D, 0x20, 0x31, 0x75, 0xB9, 0x22, 0xE4, 0x24, 0x10, 0x27, 0x3C, 0x75, 0x95, 0x05, 0x33, 0x75 - .byte 0x29, 0x0B, 0x3F, 0x75, 0x82, 0x0E, 0x34, 0x75, 0x17, 0x14, 0x32, 0x75, 0xAB, 0x19, 0x32, 0x75 - .byte 0x05, 0x1D, 0x5E, 0x20, 0xB7, 0x23, 0x35, 0x75, 0x10, 0x27, 0x4E, 0x75, 0x72, 0x01, 0xE5, 0x02 - .byte 0x57, 0x04, 0xC9, 0x05, 0x3C, 0x07, 0xAE, 0x08, 0x21, 0x0A, 0x93, 0x0B, 0x05, 0x0D, 0x78, 0x0E - .byte 0xEA, 0x0F, 0x5C, 0x11, 0xCF, 0x12, 0x41, 0x14, 0xB4, 0x15, 0x26, 0x17, 0x98, 0x18, 0x0B, 0x1A - .byte 0x7D, 0x1B, 0xEF, 0x1C, 0x62, 0x1E, 0xD4, 0x1F, 0x47, 0x21, 0xB9, 0x22, 0x2B, 0x24, 0x9E, 0x25 - .byte 0x10, 0x27, 0x46, 0x75, 0x06, 0x01, 0x31, 0x75, 0x0B, 0x02, 0x8E, 0x02, 0x11, 0x03, 0x73, 0x03 - .byte 0x32, 0x75, 0x94, 0x03, 0x16, 0x04, 0x31, 0x75, 0x37, 0x04, 0xBA, 0x04, 0x3D, 0x05, 0x9F, 0x05 - .byte 0xA4, 0x06, 0x27, 0x07, 0x31, 0x75, 0xAA, 0x07, 0x2D, 0x08, 0xB0, 0x08, 0xF1, 0x08, 0x12, 0x09 - .byte 0x53, 0x09, 0xD6, 0x09, 0x31, 0x75, 0x11, 0x0A, 0x52, 0x0A, 0xD5, 0x0A, 0x16, 0x0B, 0x1C, 0x0C - .byte 0x31, 0x75, 0x22, 0x0D, 0xC5, 0x0D, 0xCB, 0x0E, 0x6E, 0x0F, 0x31, 0x75, 0x74, 0x10, 0x31, 0x75 - .byte 0x9A, 0x11, 0x1D, 0x12, 0x5E, 0x12, 0xA0, 0x12, 0xA5, 0x13, 0x28, 0x14, 0x31, 0x75, 0x8A, 0x14 - .byte 0xEC, 0x14, 0x31, 0x75, 0x4F, 0x15, 0xD1, 0x15, 0x54, 0x16, 0x5A, 0x17, 0xDD, 0x17, 0x5F, 0x18 - .byte 0x37, 0x75, 0x65, 0x19, 0xE8, 0x19, 0x08, 0x1A, 0x8B, 0x1A, 0x91, 0x1B, 0xB2, 0x1B, 0x31, 0x75 - .byte 0x34, 0x1C, 0x32, 0x75, 0xF9, 0x1C, 0x7B, 0x1D, 0x40, 0x1E, 0xC2, 0x1E, 0x87, 0x1F, 0x8C, 0x20 - .byte 0x0F, 0x21, 0x15, 0x22, 0x97, 0x22, 0x1A, 0x23, 0x9D, 0x23, 0x20, 0x24, 0xA3, 0x24, 0x25, 0x25 - .byte 0xEA, 0x25, 0x6C, 0x26, 0xEF, 0x26, 0x31, 0x75, 0x10, 0x27, 0x83, 0x75, 0x10, 0x27, 0x31, 0x75 - .byte 0x32, 0x75, 0x60, 0x09, 0xC0, 0x12, 0x20, 0x1C, 0x80, 0x25, 0x32, 0x75, 0x10, 0x27, 0x47, 0x75 - .byte 0xCA, 0x02, 0x95, 0x05, 0x35, 0x75, 0x5F, 0x08, 0x29, 0x0B, 0xF3, 0x0D, 0xBE, 0x10, 0x88, 0x13 - .byte 0x52, 0x16, 0x37, 0x75, 0x1D, 0x19, 0xE7, 0x1B, 0xB1, 0x1E, 0x31, 0x75, 0x7B, 0x21, 0x46, 0x24 - .byte 0x3A, 0x75, 0x10, 0x27, 0x40, 0x75, 0x83, 0x06, 0x33, 0x75, 0x05, 0x0D, 0x35, 0x75, 0x88, 0x13 - .byte 0x3E, 0x75, 0x0B, 0x1A, 0x32, 0x75, 0x8D, 0x20, 0x31, 0x75, 0x10, 0x27, 0x43, 0x75, 0x4C, 0x02 - .byte 0x98, 0x04, 0xE5, 0x06, 0x31, 0x09, 0x7D, 0x0B, 0xC9, 0x0D, 0x16, 0x10, 0x62, 0x12, 0xAE, 0x14 - .byte 0xFA, 0x16, 0x47, 0x19, 0x93, 0x1B, 0xDF, 0x1D, 0x2B, 0x20, 0x78, 0x22, 0xC4, 0x24, 0x10, 0x27 - .byte 0x33, 0x75, 0x72, 0x01, 0xE5, 0x02, 0x57, 0x04, 0xC9, 0x05, 0x3C, 0x07, 0xAE, 0x08, 0x21, 0x0A - .byte 0x93, 0x0B, 0x05, 0x0D, 0x78, 0x0E, 0xEA, 0x0F, 0x5C, 0x11, 0xCF, 0x12, 0x41, 0x14, 0xB4, 0x15 - .byte 0x26, 0x17, 0x98, 0x18, 0x0B, 0x1A, 0x7D, 0x1B, 0xEF, 0x1C, 0x62, 0x1E, 0xD4, 0x1F, 0x47, 0x21 - .byte 0xB9, 0x22, 0x2B, 0x24, 0x9E, 0x25, 0x10, 0x27, 0x46, 0x75, 0x06, 0x01, 0x31, 0x75, 0x0B, 0x02 - .byte 0x8E, 0x02, 0x11, 0x03, 0x73, 0x03, 0x32, 0x75, 0x94, 0x03, 0x16, 0x04, 0x31, 0x75, 0x37, 0x04 - .byte 0xBA, 0x04, 0x3D, 0x05, 0x9F, 0x05, 0xA4, 0x06, 0x27, 0x07, 0x31, 0x75, 0xAA, 0x07, 0x2D, 0x08 - .byte 0xB0, 0x08, 0xF1, 0x08, 0x12, 0x09, 0x53, 0x09, 0xD6, 0x09, 0x31, 0x75, 0x11, 0x0A, 0x52, 0x0A - .byte 0xD5, 0x0A, 0x16, 0x0B, 0x1C, 0x0C, 0x31, 0x75, 0x22, 0x0D, 0xC5, 0x0D, 0xCB, 0x0E, 0x6E, 0x0F - .byte 0x31, 0x75, 0x74, 0x10, 0x31, 0x75, 0x9A, 0x11, 0x1D, 0x12, 0x5E, 0x12, 0xA0, 0x12, 0xA5, 0x13 - .byte 0x28, 0x14, 0x31, 0x75, 0x8A, 0x14, 0xEC, 0x14, 0x31, 0x75, 0x4F, 0x15, 0xD1, 0x15, 0x54, 0x16 - .byte 0x5A, 0x17, 0xDD, 0x17, 0x5F, 0x18, 0x37, 0x75, 0x65, 0x19, 0xE8, 0x19, 0x08, 0x1A, 0x8B, 0x1A - .byte 0x91, 0x1B, 0xB2, 0x1B, 0x31, 0x75, 0x34, 0x1C, 0x32, 0x75, 0xF9, 0x1C, 0x7B, 0x1D, 0x40, 0x1E - .byte 0xC2, 0x1E, 0x87, 0x1F, 0x8C, 0x20, 0x0F, 0x21, 0x15, 0x22, 0x97, 0x22, 0x1A, 0x23, 0x9D, 0x23 - .byte 0x20, 0x24, 0xA3, 0x24, 0x25, 0x25, 0xEA, 0x25, 0x6C, 0x26, 0xEF, 0x26, 0x31, 0x75, 0x10, 0x27 - .byte 0x85, 0x75, 0x00, 0x00, 0x56, 0x0C, 0x31, 0x75, 0x81, 0x12, 0x9D, 0x16, 0xBA, 0x1A, 0xD7, 0x1E - .byte 0x33, 0x75, 0xF3, 0x22, 0x10, 0x27, 0x39, 0x75, 0xC4, 0x09, 0x88, 0x13, 0x4C, 0x1D, 0x32, 0x75 - .byte 0x10, 0x27, 0x37, 0x75, 0xB3, 0x01, 0x66, 0x03, 0x31, 0x75, 0x18, 0x05, 0xCB, 0x06, 0x33, 0x75 - .byte 0x7E, 0x08, 0x31, 0x0A, 0xE3, 0x0B, 0x96, 0x0D, 0x49, 0x0F, 0x36, 0x75, 0xFC, 0x10, 0xAF, 0x12 - .byte 0x61, 0x14, 0x14, 0x16, 0xC7, 0x17, 0x7A, 0x19, 0x33, 0x75, 0x2D, 0x1B, 0xDF, 0x1C, 0x92, 0x1E - .byte 0x45, 0x20, 0xF8, 0x21, 0x31, 0x75, 0xAA, 0x23, 0x5D, 0x25, 0x44, 0x75, 0x05, 0x0D, 0x3F, 0x75 - .byte 0x0B, 0x1A, 0x39, 0x75, 0x10, 0x27, 0x54, 0x75, 0x88, 0x13, 0x10, 0x27, 0x58, 0x75, 0x10, 0x27 - .byte 0x39, 0x75, 0x2E, 0x01, 0x31, 0x75, 0x5B, 0x02, 0xF2, 0x02, 0x89, 0x03, 0xFA, 0x03, 0x32, 0x75 - .byte 0x20, 0x04, 0xB7, 0x04, 0x31, 0x75, 0xDC, 0x04, 0x32, 0x75, 0x4D, 0x05, 0x7B, 0x06, 0x12, 0x07 - .byte 0x31, 0x75, 0xA9, 0x07, 0x40, 0x08, 0xD6, 0x08, 0x22, 0x09, 0x48, 0x09, 0x93, 0x09, 0x33, 0x75 - .byte 0xDE, 0x09, 0x31, 0x75, 0x2A, 0x0A, 0x57, 0x0B, 0x31, 0x75, 0x85, 0x0C, 0x42, 0x0D, 0x6F, 0x0E - .byte 0x2C, 0x0F, 0x31, 0x75, 0x3B, 0x10, 0x31, 0x75, 0x8F, 0x11, 0x26, 0x12, 0x32, 0x75, 0x53, 0x13 - .byte 0xEA, 0x13, 0x31, 0x75, 0x5B, 0x14, 0x32, 0x75, 0xCC, 0x14, 0x63, 0x15, 0xFA, 0x15, 0x28, 0x17 - .byte 0xBE, 0x17, 0x55, 0x18, 0x37, 0x75, 0x83, 0x19, 0x1A, 0x1A, 0x3F, 0x1A, 0xD6, 0x1A, 0x04, 0x1C - .byte 0x2A, 0x1C, 0x31, 0x75, 0xC0, 0x1C, 0x32, 0x75, 0xA3, 0x1D, 0x3A, 0x1E, 0x1C, 0x1F, 0x32, 0x75 - .byte 0x49, 0x20, 0xE0, 0x20, 0x0E, 0x22, 0xA5, 0x22, 0x3C, 0x23, 0xD2, 0x23, 0x31, 0x75, 0x69, 0x24 - .byte 0x00, 0x25, 0xE2, 0x25, 0x79, 0x26, 0x10, 0x27, 0x48, 0x75, 0xC4, 0x00, 0x88, 0x01, 0x4C, 0x02 - .byte 0x10, 0x03, 0xD4, 0x03, 0x98, 0x04, 0x5D, 0x05, 0x31, 0x75, 0x21, 0x06, 0xE5, 0x06, 0xA9, 0x07 - .byte 0x6D, 0x08, 0x31, 0x09, 0xF5, 0x09, 0xB9, 0x0A, 0x7D, 0x0B, 0x41, 0x0C, 0xC9, 0x0D, 0x8D, 0x0E - .byte 0x52, 0x0F, 0xDA, 0x10, 0x9E, 0x11, 0x62, 0x12, 0x31, 0x75, 0xEA, 0x13, 0x72, 0x15, 0xFA, 0x16 - .byte 0xBE, 0x17, 0x83, 0x18, 0x47, 0x19, 0x0B, 0x1A, 0xCF, 0x1A, 0x93, 0x1B, 0x57, 0x1C, 0x1B, 0x1D - .byte 0x31, 0x75, 0xDF, 0x1D, 0x32, 0x75, 0xA3, 0x1E, 0x67, 0x1F, 0x2B, 0x20, 0xEF, 0x20, 0xB3, 0x21 - .byte 0x32, 0x75, 0x3C, 0x23, 0x00, 0x24, 0x31, 0x75, 0x88, 0x25, 0x4C, 0x26, 0x10, 0x27, 0x39, 0x75 - .byte 0x10, 0x27, 0x31, 0x75, 0xB0, 0xEA, 0x09, 0x02, 0xB4, 0xEA, 0x09, 0x02, 0x24, 0xEB, 0x09, 0x02 - .byte 0xF0, 0xEB, 0x09, 0x02, 0x54, 0xEB, 0x09, 0x02, 0x38, 0xEC, 0x09, 0x02, 0x90, 0xEB, 0x09, 0x02 - .byte 0xE4, 0xEA, 0x09, 0x02, 0x68, 0xEC, 0x09, 0x02, 0xEC, 0xEA, 0x09, 0x02, 0x20, 0xEC, 0x09, 0x02 - .byte 0xBC, 0xEA, 0x09, 0x02, 0x18, 0xED, 0x09, 0x02, 0x0C, 0xEE, 0x09, 0x02, 0xF8, 0xEC, 0x09, 0x02 - .byte 0xFC, 0xEE, 0x09, 0x02, 0xFC, 0xEB, 0x09, 0x02, 0x88, 0xEC, 0x09, 0x02, 0x84, 0xEB, 0x09, 0x02 - .byte 0xA8, 0xEC, 0x09, 0x02, 0xB8, 0xEC, 0x09, 0x02, 0x78, 0xEB, 0x09, 0x02, 0x48, 0xEC, 0x09, 0x02 - .byte 0x24, 0xEE, 0x09, 0x02, 0xD8, 0xEC, 0x09, 0x02, 0x2C, 0xEF, 0x09, 0x02, 0x48, 0xEF, 0x09, 0x02 - .byte 0x78, 0xEC, 0x09, 0x02, 0x80, 0xEF, 0x09, 0x02, 0x9C, 0xEF, 0x09, 0x02, 0x54, 0xEE, 0x09, 0x02 - .byte 0x7C, 0xED, 0x09, 0x02, 0xF8, 0xF0, 0x09, 0x02, 0x6C, 0xEE, 0x09, 0x02, 0x14, 0xEF, 0x09, 0x02 - .byte 0xF4, 0xEF, 0x09, 0x02, 0xA4, 0xED, 0x09, 0x02, 0x14, 0xF0, 0x09, 0x02, 0x84, 0xEE, 0x09, 0x02 - .byte 0x60, 0xEB, 0x09, 0x02, 0x58, 0xEC, 0x09, 0x02, 0x9C, 0xEE, 0x09, 0x02, 0xA8, 0xEB, 0x09, 0x02 - .byte 0xE8, 0xEC, 0x09, 0x02, 0xB4, 0xEE, 0x09, 0x02, 0xCC, 0xEE, 0x09, 0x02, 0x34, 0xF0, 0x09, 0x02 - .byte 0x34, 0xEB, 0x09, 0x02, 0xDC, 0xEA, 0x09, 0x02, 0xC0, 0xEB, 0x09, 0x02, 0x1C, 0xEB, 0x09, 0x02 - .byte 0x60, 0xF1, 0x09, 0x02, 0xE4, 0xEE, 0x09, 0x02, 0x30, 0xF3, 0x09, 0x02, 0x54, 0xF0, 0x09, 0x02 - .byte 0xCC, 0xED, 0x09, 0x02, 0xE0, 0xED, 0x09, 0x02, 0x68, 0xED, 0x09, 0x02, 0xB8, 0xEF, 0x09, 0x02 - .byte 0xD4, 0xF1, 0x09, 0x02, 0xA0, 0xF0, 0x09, 0x02, 0xCC, 0xF0, 0x09, 0x02, 0x94, 0xF3, 0x09, 0x02 - .byte 0xAC, 0xEA, 0x09, 0x02, 0x2C, 0xF1, 0x09, 0x02, 0xF8, 0xF3, 0x09, 0x02, 0xCC, 0xEB, 0x09, 0x02 - .byte 0x04, 0xEB, 0x09, 0x02, 0x98, 0xEC, 0x09, 0x02, 0xF4, 0xED, 0x09, 0x02, 0x64, 0xEF, 0x09, 0x02 - .byte 0xD4, 0xEF, 0x09, 0x02, 0x74, 0xF0, 0x09, 0x02, 0x54, 0xED, 0x09, 0x02, 0x4C, 0xEB, 0x09, 0x02 - .byte 0xE4, 0xEB, 0x09, 0x02, 0xC8, 0xEC, 0x09, 0x02, 0x2C, 0xEC, 0x09, 0x02, 0x40, 0xED, 0x09, 0x02 - .byte 0x3C, 0xEE, 0x09, 0x02, 0x6C, 0xEB, 0x09, 0x02, 0xB4, 0xEB, 0x09, 0x02, 0x08, 0xED, 0x09, 0x02 - .byte 0x9C, 0xEB, 0x09, 0x02, 0x90, 0xED, 0x09, 0x02, 0xD8, 0xEB, 0x09, 0x02, 0x08, 0xEC, 0x09, 0x02 - .byte 0x14, 0xEB, 0x09, 0x02, 0xFC, 0xEA, 0x09, 0x02, 0x14, 0xEC, 0x09, 0x02, 0xB8, 0xED, 0x09, 0x02 - .byte 0x2C, 0xED, 0x09, 0x02, 0xCC, 0xEA, 0x09, 0x02, 0x3C, 0xEB, 0x09, 0x02, 0x44, 0xEB, 0x09, 0x02 - .byte 0x2C, 0xEB, 0x09, 0x02, 0xD4, 0xEA, 0x09, 0x02, 0xC4, 0xEA, 0x09, 0x02, 0xF4, 0xEA, 0x09, 0x02 - .byte 0x0C, 0xEB, 0x09, 0x02, 0xE0, 0x07, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA5, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xAC, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xAD, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xAD, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xAC, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xAC, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA5, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x02, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x02, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x02, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA5, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x02, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x02, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x02, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA5, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0x14, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xAC, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xAC, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xAD, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xAC, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xAD, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xAD, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xAC, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xAC, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA0, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xB4, 0x04, 0x00, 0x00, 0x0A, 0x10, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00 - .byte 0xB4, 0x04, 0x00, 0x00, 0x0A, 0x00, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x94, 0x04, 0x00, 0x00 - .byte 0x0A, 0x00, 0x01, 0x00, 0xD0, 0x07, 0x00, 0x00, 0xA0, 0x06, 0x00, 0x00, 0xFF, 0x10, 0x04, 0x00 - .byte 0xD0, 0x07, 0x00, 0x00, 0x95, 0x07, 0x00, 0x00, 0xFF, 0x00, 0x01, 0x00, 0xD0, 0x07, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x84, 0x04, 0x00, 0x00, 0xFF, 0x08, 0x02, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0x84, 0x04, 0x00, 0x00, 0xFF, 0x08, 0x02, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0x84, 0x04, 0x00, 0x00, 0xFF, 0x08, 0x01, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x84, 0x04, 0x00, 0x00 - .byte 0xFF, 0x08, 0x01, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xAD, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xAD, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xAD, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA5, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0x78, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0x78, 0x03, 0x00, 0x00 - .byte 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0x78, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0x78, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0x78, 0x03, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA5, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA5, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA5, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA5, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA5, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0x8D, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0x8C, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0x8C, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x00, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0x78, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xD0, 0x07, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x00, 0x04, 0x00, 0xF4, 0x01, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x00, 0x04, 0x00, 0xF4, 0x01, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00 - .byte 0xFF, 0x00, 0x04, 0x00, 0xF4, 0x01, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x00, 0x04, 0x00 - .byte 0xF4, 0x01, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x00, 0x04, 0x00, 0xF4, 0x01, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x00, 0x04, 0x00, 0xF4, 0x01, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00 - .byte 0xFF, 0x00, 0x04, 0x00, 0xF4, 0x01, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x00, 0x04, 0x00 - .byte 0xF4, 0x01, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x00, 0x04, 0x00, 0xF4, 0x01, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x00, 0x04, 0x00, 0xF4, 0x01, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00 - .byte 0xFF, 0x00, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xFF, 0x00, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00 - .byte 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00 - .byte 0xE8, 0x03, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xFF, 0x30, 0x04, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00 - .byte 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00 - .byte 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00 - .byte 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00 - .byte 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00 - .byte 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00 - .byte 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00 - .byte 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00 - .byte 0x0A, 0x30, 0x04, 0x00, 0xD0, 0x07, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x0A, 0x30, 0x04, 0x00 - .byte 0xD0, 0x07, 0x00, 0x00, 0xB4, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 - .byte 0x0A, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .byte 0x2C, 0x01, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x4B, 0x01, 0x00, 0x00 - .byte 0x0F, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x00 - .byte 0x05, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x78, 0x05, 0x00, 0x00 - .byte 0x2C, 0x01, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00 - .byte 0x05, 0x00, 0x05, 0x00, 0x00, 0xC9, 0xFE, 0xFF, 0x00, 0x08, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x54, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00 - .byte 0x80, 0xFF, 0xFF, 0xFF, 0x99, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0xA0, 0xA1, 0xA2, 0xA3 - .byte 0xA4, 0x00, 0x00, 0x00, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x18, 0x03, 0xD6, 0x00, 0xFB, 0x00, 0x19, 0x01 - .byte 0xD6, 0x00, 0x08, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x03, 0x04 - .byte 0x0C, 0x09, 0x02, 0x0E, 0x11, 0x0A, 0x0D, 0x10, 0x08, 0x07, 0x01, 0x11, 0x10, 0x05, 0x00, 0x00 - .byte 0x01, 0x00, 0x14, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x03, 0xE7, 0x03, 0x23, 0x00, 0x1E, 0x00 - .byte 0xE7, 0x03, 0x0A, 0x00, 0x0F, 0x00, 0xE7, 0x03, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A - .byte 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A - .byte 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x08, 0x00, 0x09, 0x00 - .byte 0x0A, 0x00, 0x0B, 0x00, 0x0B, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0D, 0x00, 0x0F, 0x00, 0x0F, 0x00 - .byte 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x14, 0x00, 0x19, 0x00 - .byte 0x20, 0x00, 0x25, 0x00, 0x2A, 0x00, 0x2F, 0x00, 0x34, 0x00, 0x39, 0x00, 0x3C, 0x00, 0x41, 0x00 - .byte 0x46, 0x00, 0x4B, 0x00, 0x50, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x11, 0x00, 0x14, 0x00, 0x19, 0x00 - .byte 0x20, 0x00, 0x25, 0x00, 0x2A, 0x00, 0x2F, 0x00, 0x34, 0x00, 0x39, 0x00, 0x3C, 0x00, 0x41, 0x00 - .byte 0x46, 0x00, 0x4B, 0x00, 0x50, 0x00, 0x5A, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00 - .byte 0x0A, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00 - .byte 0xC8, 0x01, 0x01, 0x00, 0x20, 0x04, 0x01, 0x00, 0xC6, 0x01, 0x01, 0x00, 0x1E, 0x04, 0x01, 0x00 - .byte 0x0C, 0x00, 0x01, 0x00, 0x64, 0x02, 0x01, 0x00, 0xD5, 0x01, 0x00, 0x01, 0x2D, 0x04, 0x00, 0x01 - .byte 0xBF, 0x01, 0x00, 0x01, 0x17, 0x04, 0x00, 0x01, 0xC0, 0x01, 0x00, 0x01, 0x18, 0x04, 0x00, 0x01 - .byte 0xC1, 0x01, 0x00, 0x01, 0x19, 0x04, 0x00, 0x01, 0x0F, 0x00, 0x00, 0x01, 0x67, 0x02, 0x00, 0x01 - .byte 0xE9, 0x01, 0x01, 0x00, 0x41, 0x04, 0x01, 0x00, 0xEA, 0x01, 0x01, 0x00, 0x42, 0x04, 0x01, 0x00 - .byte 0x16, 0x01, 0x01, 0x00, 0x09, 0x02, 0x00, 0x01, 0x96, 0x00, 0x00, 0x01, 0x0F, 0x27, 0x04, 0x00 - .byte 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08, 0x00, 0x09, 0x00 - .byte 0x09, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x0B, 0x00, 0x0E, 0x00, 0x0E, 0x00 - .byte 0x0E, 0x00, 0x10, 0x00, 0x14, 0x00, 0x09, 0x00, 0x11, 0x00, 0x06, 0x00, 0x18, 0x00, 0x19, 0x00 - .byte 0x1A, 0x00, 0x1B, 0x00, 0x1C, 0x00, 0x1D, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x20, 0x00, 0x21, 0x00 - .byte 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, 0x00, 0x28, 0x00, 0x29, 0x00 - .byte 0x2A, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, 0x00, 0x30, 0x00, 0x31, 0x00 - .byte 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x39, 0x00 - .byte 0x3A, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, 0x00, 0x3F, 0x00, 0x40, 0x00, 0x41, 0x00 - .byte 0x42, 0x00, 0x43, 0x00, 0x44, 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, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02 - .byte 0x02, 0x01, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x02, 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, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x01, 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, 0x02, 0x00, 0x00, 0x01, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x1B, 0x01, 0x9F, 0x00, 0x85, 0x00, 0xFE, 0x00, 0x48, 0x01, 0x49, 0x01, 0xAE, 0x01, 0xA0, 0x00 - .byte 0xFB, 0x00, 0x7F, 0x00, 0xEC, 0x01, 0x8F, 0x00, 0x08, 0x00, 0x09, 0x00, 0x18, 0x01, 0x80, 0x00 - .byte 0xAB, 0x01, 0x41, 0x01, 0xE8, 0x01, 0x6A, 0x00, 0x6B, 0x01, 0x1C, 0x00, 0x1A, 0x01, 0x19, 0x01 - .byte 0x7B, 0x00, 0x07, 0x00, 0x2F, 0x01, 0xBD, 0x01, 0x2D, 0x01, 0x96, 0x01, 0x98, 0x00, 0x54, 0x00 - .byte 0xAF, 0x00, 0xA8, 0x01, 0xA6, 0x01, 0x3B, 0x01, 0x1F, 0x00, 0x34, 0x00, 0xD9, 0x01, 0xBA, 0x00 - .byte 0x1F, 0x01, 0x5F, 0x01, 0x9D, 0x00, 0x1D, 0x01, 0x2B, 0x01, 0xA7, 0x01, 0x19, 0x00, 0xA9, 0x01 - .byte 0x04, 0x00, 0x9B, 0x00, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x99, 0x00, 0xF1, 0x00, 0x35, 0x00 - .byte 0xA3, 0x00, 0x21, 0x01, 0xAD, 0x01, 0xAC, 0x01, 0x10, 0x00, 0x4D, 0x00, 0x89, 0x00, 0x9C, 0x00 - .byte 0x45, 0x00, 0x1E, 0x01, 0x9A, 0x00, 0xAA, 0x01, 0xC6, 0x00, 0x3C, 0x01, 0x1A, 0x00, 0x20, 0x01 - .byte 0x05, 0x00, 0x06, 0x00, 0xA5, 0x00, 0x1C, 0x01, 0x9E, 0x00, 0xAF, 0x01, 0x26, 0x00, 0x87, 0x01 - .byte 0x02, 0x01, 0xB6, 0x01, 0x6F, 0x00, 0x65, 0x01, 0x64, 0x01, 0x51, 0x01, 0x3F, 0x01, 0x03, 0x01 - .byte 0x63, 0x01, 0x3A, 0x01, 0x24, 0x01, 0x08, 0x01, 0x38, 0x00, 0xE9, 0x01, 0xEA, 0x01, 0xB7, 0x01 - .byte 0xB8, 0x01, 0x25, 0x00, 0x05, 0x02, 0x88, 0x01, 0x22, 0x00, 0x00, 0x00, 0x0F, 0x27, 0x00, 0x00 - .byte 0x69, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF4, 0x01, 0x00, 0x00 - .byte 0x1C, 0x02, 0x00, 0x00, 0x0F, 0x27, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00 - .byte 0xC8, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00 - .byte 0xDE, 0x03, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x20, 0x03, 0x00, 0x00, 0xFA, 0x00, 0x00, 0x00 - .byte 0xA0, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00 - .byte 0x0F, 0x27, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00 - .byte 0x04, 0x01, 0x00, 0x00, 0x26, 0x02, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00 - .byte 0x0F, 0x27, 0x00, 0x00, 0xDC, 0x00, 0x00, 0x00, 0xE6, 0x00, 0x00, 0x00, 0x30, 0x02, 0x00, 0x00 - .byte 0x8C, 0x00, 0x00, 0x00, 0xA4, 0x01, 0x00, 0x00, 0x4A, 0x01, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00 - .byte 0x0E, 0x01, 0x00, 0x00, 0x0F, 0x27, 0x00, 0x00, 0xEE, 0x02, 0x00, 0x00, 0x3A, 0x02, 0x00, 0x00 - .byte 0xB4, 0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00 - .byte 0x18, 0x01, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x84, 0x03, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00 - .byte 0x22, 0x01, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00 - .byte 0x36, 0x01, 0x00, 0x00, 0xB6, 0x03, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00 - .byte 0x0F, 0x27, 0x00, 0x00, 0x5E, 0x01, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, 0xB8, 0x01, 0x00, 0x00 - .byte 0x44, 0x02, 0x00, 0x00, 0x52, 0x03, 0x00, 0x00, 0x72, 0x01, 0x00, 0x00, 0x0F, 0x27, 0x00, 0x00 - .byte 0x18, 0x1A, 0x1B, 0x1F, 0x25, 0x26, 0x36, 0x39, 0x3E, 0x41, 0x42, 0x43, 0x16, 0x03, 0x07, 0x08 - .byte 0x01, 0x17, 0x15, 0x0C, 0x0F, 0x14, 0x02, 0x11, 0xFF, 0x18, 0x1B, 0x1E, 0x20, 0x26, 0x2E, 0x32 - .byte 0x33, 0x34, 0x37, 0x3E, 0x42, 0x16, 0x03, 0x07, 0x08, 0x01, 0x17, 0x15, 0x0F, 0x13, 0x02, 0x11 - .byte 0x14, 0xFF, 0x18, 0x22, 0x24, 0x25, 0x28, 0x2C, 0x2F, 0x30, 0x31, 0x38, 0x3B, 0x3C, 0x3F, 0x42 - .byte 0x16, 0x03, 0x07, 0x08, 0x01, 0x17, 0x09, 0x02, 0x11, 0x14, 0xFF, 0x18, 0x1A, 0x1D, 0x1F, 0x27 - .byte 0x28, 0x2B, 0x2E, 0x30, 0x3C, 0x3F, 0x40, 0x16, 0x03, 0x07, 0x08, 0x17, 0x15, 0x0E, 0x12, 0x13 - .byte 0x02, 0x05, 0x14, 0xFF, 0x18, 0x20, 0x23, 0x24, 0x25, 0x27, 0x2D, 0x2F, 0x32, 0x34, 0x35, 0x37 - .byte 0x38, 0x16, 0x03, 0x07, 0x08, 0x04, 0x17, 0x0A, 0x0F, 0x02, 0x10, 0x14, 0xFF, 0x18, 0x1A, 0x1C - .byte 0x1D, 0x1F, 0x26, 0x29, 0x2C, 0x2D, 0x2E, 0x39, 0x42, 0x16, 0x03, 0x07, 0x08, 0x01, 0x17, 0x0B - .byte 0x0C, 0x0F, 0x12, 0x14, 0x02, 0xFF, 0x18, 0x1A, 0x1C, 0x1F, 0x29, 0x2B, 0x35, 0x36, 0x3B, 0x3C - .byte 0x40, 0x41, 0x16, 0x03, 0x07, 0x08, 0x17, 0x09, 0x0E, 0x12, 0x13, 0x02, 0x05, 0x14, 0xFF, 0x18 - .byte 0x1B, 0x1E, 0x20, 0x26, 0x2D, 0x33, 0x34, 0x35, 0x37, 0x38, 0x40, 0x16, 0x03, 0x07, 0x08, 0x17 - .byte 0x0A, 0x0C, 0x0F, 0x12, 0x14, 0x02, 0x05, 0xFF, 0x18, 0x16, 0x03, 0x07, 0x08, 0x17, 0x02, 0x14 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0x18, 0x16, 0x03, 0x07, 0x08, 0x17, 0x02, 0x14, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x18, 0x1D, 0x22, 0x24, 0x25, 0x28 - .byte 0x1F, 0x2F, 0x35, 0x37, 0x3A, 0x3C, 0x16, 0x03, 0x07, 0x08, 0x17, 0x09, 0x0C, 0x0F, 0x12, 0x14 - .byte 0x02, 0x05, 0xFF, 0x18, 0x1A, 0x1F, 0x23, 0x24, 0x29, 0x2D, 0x2E, 0x30, 0x39, 0x3C, 0x41, 0x16 - .byte 0x03, 0x07, 0x08, 0x04, 0x17, 0x0B, 0x0D, 0x0F, 0x14, 0x02, 0x10, 0xFF, 0x18, 0x16, 0x03, 0x07 - .byte 0x08, 0x17, 0x02, 0x14, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x18, 0x16, 0x03, 0x07, 0x08, 0x17, 0x02, 0x14, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x18, 0x16 - .byte 0x03, 0x07, 0x08, 0x17, 0x02, 0x14, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x18, 0x16, 0x03, 0x07, 0x08, 0x17, 0x02, 0x14, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00 - .byte 0x0A, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00 - .byte 0x18, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00 - .byte 0x2A, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00 - .byte 0x3B, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00 - .byte 0x49, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00 - .byte 0x61, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x6A, 0x00, 0x00, 0x00 - .byte 0x6E, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00 - .byte 0x89, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00 - .byte 0x9D, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00 - .byte 0xB3, 0x00, 0x00, 0x00, 0xB4, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00, 0xC2, 0x00, 0x00, 0x00 - .byte 0xC5, 0x00, 0x00, 0x00, 0xC7, 0x00, 0x00, 0x00, 0xD4, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x00 - .byte 0xE3, 0x00, 0x00, 0x00, 0xE6, 0x00, 0x00, 0x00, 0xE9, 0x00, 0x00, 0x00, 0xEE, 0x00, 0x00, 0x00 - .byte 0xF1, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00 - .byte 0x0D, 0x01, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, 0x1A, 0x01, 0x00, 0x00 - .byte 0x1C, 0x01, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00 - .byte 0x39, 0x01, 0x00, 0x00, 0x3D, 0x01, 0x00, 0x00, 0x4C, 0x01, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00 - .byte 0x5C, 0x01, 0x00, 0x00, 0x5D, 0x01, 0x00, 0x00, 0x62, 0x01, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00 - .byte 0x6F, 0x01, 0x00, 0x00, 0x76, 0x01, 0x00, 0x00, 0x7B, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00 - .byte 0x86, 0x01, 0x00, 0x00, 0x8D, 0x01, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00, 0x9A, 0x01, 0x00, 0x00 - .byte 0xA3, 0x01, 0x00, 0x00, 0xA5, 0x01, 0x00, 0x00, 0xB0, 0x01, 0x00, 0x00, 0xB3, 0x01, 0x00, 0x00 - .byte 0xB8, 0x01, 0x00, 0x00, 0xBB, 0x01, 0x00, 0x00, 0xC2, 0x01, 0x00, 0x00, 0xC9, 0x01, 0x00, 0x00 - .byte 0xCE, 0x01, 0x00, 0x00, 0xD0, 0x01, 0x00, 0x00, 0xD3, 0x01, 0x00, 0x00, 0xDF, 0x01, 0x00, 0x00 - .byte 0xE8, 0x01, 0x00, 0x00, 0xEB, 0x01, 0x00, 0x00, 0xF3, 0x01, 0x00, 0x00, 0xF4, 0x01, 0x00, 0x00 - .byte 0x26, 0x02, 0x00, 0x00, 0x8A, 0x02, 0x00, 0x00, 0xEE, 0x02, 0x00, 0x00, 0x10, 0x27, 0x00, 0x00 - .byte 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07 - .byte 0x08, 0x08, 0x09, 0x09, 0x0A, 0x0A, 0x0B, 0x0B, 0x0C, 0x0C, 0x0D, 0x0D, 0x0E, 0x0E, 0x0F, 0x0F - .byte 0x10, 0x10, 0x11, 0x11, 0x12, 0x12, 0x13, 0x13, 0x14, 0x14, 0x15, 0x15, 0x16, 0x16, 0x17, 0x17 - .byte 0x18, 0x18, 0x19, 0x19, 0x1A, 0x1A, 0x1B, 0x1B, 0x1C, 0x1C, 0x1D, 0x1D, 0x1E, 0x1E, 0x1F, 0x1F - .byte 0x20, 0x20, 0x21, 0x21, 0x22, 0x22, 0x23, 0x23, 0x24, 0x24, 0x25, 0x25, 0x26, 0x26, 0x27, 0x27 - .byte 0x28, 0x28, 0x29, 0x29, 0x2A, 0x2A, 0x2B, 0x2B, 0x2C, 0x2C, 0x2D, 0x2D, 0x2E, 0x2E, 0x2F, 0x2F - .byte 0x30, 0x30, 0x31, 0x31, 0x32, 0x32, 0x33, 0x33, 0x34, 0x34, 0x35, 0x35, 0x36, 0x36, 0x37, 0x37 - .byte 0x38, 0x38, 0x39, 0x39, 0x3A, 0x3A, 0x3B, 0x3B, 0x3C, 0x3C, 0x3D, 0x3D, 0x3E, 0x3E, 0x3F, 0x3F - .byte 0x40, 0x40, 0x41, 0x41, 0x42, 0x42, 0x43, 0x43, 0x44, 0x44, 0x45, 0x45, 0x46, 0x46, 0x47, 0x47 - .byte 0x48, 0x48, 0x49, 0x49, 0x4A, 0x4A, 0x4B, 0x4B, 0x4C, 0x4C, 0x4D, 0x4D, 0x4E, 0x4E, 0x4F, 0x4F - .byte 0x50, 0x50, 0x51, 0x51, 0x52, 0x52, 0x53, 0x53, 0x54, 0x54, 0x55, 0x55, 0x56, 0x56, 0x57, 0x57 - .byte 0x58, 0x58, 0x59, 0x59, 0x5A, 0x5A, 0x5B, 0x5B, 0x5C, 0x5C, 0x5D, 0x5D, 0x5E, 0x5E, 0x5F, 0x5F - .byte 0x60, 0x60, 0x61, 0x61, 0x62, 0x62, 0x63, 0x63, 0x64, 0x64, 0x65, 0x65, 0x66, 0x66, 0x67, 0xFF - .byte 0x68, 0xFF, 0x69, 0xB3, 0x6A, 0xFF, 0x6B, 0xFF, 0x6C, 0xFF, 0x6D, 0xFF, 0x6E, 0xFF, 0x6F, 0xFF - .byte 0x70, 0xFF, 0x71, 0xFF, 0x72, 0xFF, 0x73, 0xFF, 0x74, 0xFF, 0x75, 0xFF, 0x76, 0xFF, 0x77, 0xFF - .byte 0x78, 0xFF, 0x79, 0xFF, 0x7A, 0xFF, 0x7B, 0xFF, 0x7C, 0xFF, 0x7D, 0xFF, 0x7E, 0xB1, 0x7F, 0xB2 - .byte 0x80, 0xB4, 0x81, 0xB5, 0x82, 0xB6, 0x83, 0xB7, 0x84, 0xB8, 0x85, 0xB9, 0x86, 0xBA, 0x87, 0xBB - .byte 0x88, 0xBC, 0x89, 0xBD, 0x8A, 0xBE, 0x8B, 0xBF, 0x8C, 0xC0, 0x8D, 0xC1, 0x8E, 0xC2, 0x8F, 0xC3 - .byte 0x90, 0xC4, 0x91, 0xC5, 0x92, 0xC6, 0x93, 0xC7, 0x94, 0xC8, 0x95, 0xC9, 0x96, 0xCA, 0x97, 0xCB - .byte 0x98, 0xCC, 0x99, 0xCD, 0x9A, 0xCE, 0x9B, 0xCF, 0x9C, 0xD0, 0x9D, 0xD1, 0x9E, 0xD2, 0x9F, 0xD3 - .byte 0xA0, 0xD4, 0xA1, 0xD5, 0xA2, 0xD6, 0xA3, 0xD7, 0xA4, 0xD8, 0xA5, 0xD9, 0xA6, 0xDA, 0xA7, 0xDB - .byte 0xA8, 0xDC, 0xA9, 0xDD, 0xAA, 0xDE, 0xAB, 0xF1, 0xAC, 0xF2, 0xAD, 0xF7, 0xAE, 0xF8, 0xAF, 0xF9 - .byte 0xB0, 0xFA, 0xB1, 0xFF, 0xB2, 0xFF, 0xB3, 0xFF, 0xB4, 0xFF, 0xB5, 0xFF, 0xB6, 0xFF, 0xB7, 0xFF - .byte 0xB8, 0xFF, 0xB9, 0xFF, 0xBA, 0xFF, 0xBB, 0xFF, 0xBC, 0xFF, 0xBD, 0xFF, 0xBE, 0xFF, 0xBF, 0xFF - .byte 0xC0, 0xFF, 0xC1, 0xFF, 0xC2, 0xFF, 0xC3, 0xFF, 0xC4, 0xFF, 0xC5, 0xFF, 0xC6, 0xFF, 0xC7, 0xFF - .byte 0xC8, 0xFF, 0xC9, 0xFF, 0xCA, 0xFF, 0xCB, 0xFF, 0xCC, 0xFF, 0xCD, 0xFF, 0xCE, 0xFF, 0xCF, 0xFF - .byte 0xD0, 0xFF, 0xD1, 0xFF, 0xD2, 0xFF, 0xD3, 0xFF, 0xD4, 0xFF, 0xD5, 0xFF, 0xD6, 0xFF, 0xD7, 0xFF - .byte 0xD8, 0xFF, 0xD9, 0xFF, 0xDA, 0xFF, 0xDB, 0xFF, 0xDC, 0xFF, 0xDD, 0xFF, 0xDE, 0xFF, 0xDF, 0xFF - .byte 0xE0, 0xFF, 0xE1, 0xFF, 0xE2, 0xFF, 0xE3, 0xFF, 0xE4, 0xFF, 0xE5, 0xFF, 0xE6, 0xFF, 0xE7, 0xFF - .byte 0xE8, 0xFF, 0xE9, 0xFF, 0xEA, 0xFF, 0xEB, 0xFF, 0xEC, 0xFF, 0xED, 0xFF, 0xEE, 0xFF, 0xEF, 0xFF - .byte 0xF0, 0xFF, 0xF1, 0xFF, 0xF2, 0xFF, 0xF3, 0xFF, 0xF4, 0xFF, 0xF5, 0xFF, 0xF6, 0xFF, 0xF7, 0xFF - .byte 0xF8, 0xFF, 0xF9, 0xFF, 0xFA, 0xFF, 0xFB, 0xFF, 0xFC, 0xFF, 0xFD, 0xFF, 0xFE, 0xFE, 0xFF, 0xFF - .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, 0x05, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00 - .byte 0x01, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x05, 0x00, 0x04, 0x00 - .byte 0x02, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00 - .byte 0x02, 0x00, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00 - .byte 0x02, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00 - .byte 0x00, 0x00, 0x03, 0x00, 0x04, 0x00, 0x02, 0x00, 0x05, 0x00, 0x02, 0x00, 0x04, 0x00, 0x03, 0x00 - .byte 0x04, 0x00, 0x02, 0x00, 0x04, 0x00, 0x03, 0x00, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x05, 0x00 - .byte 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x04, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x03, 0x00, 0x05, 0x00, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x05, 0x00, 0x03, 0x00, 0x03, 0x00 - .byte 0x04, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00 - .byte 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00 - .byte 0x05, 0x00, 0x04, 0x00, 0x03, 0x00, 0x04, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x01, 0x00 - .byte 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x05, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00 - .byte 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00 - .byte 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x05, 0x00, 0x03, 0x00 - .byte 0x02, 0x00, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x05, 0x00, 0x04, 0x00, 0x03, 0x00, 0x04, 0x00, 0x03, 0x00, 0x04, 0x00, 0x03, 0x00 - .byte 0x00, 0x00, 0x03, 0x00, 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00 - .byte 0x03, 0x00, 0x02, 0x00, 0x04, 0x00, 0x03, 0x00, 0x05, 0x00, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x04, 0x00, 0x02, 0x00, 0x04, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x05, 0x00 - .byte 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00 - .byte 0x02, 0x00, 0x03, 0x00, 0x05, 0x00, 0x03, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00 - .byte 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x05, 0x00, 0x03, 0x00, 0x03, 0x00 - .byte 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00 - .byte 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00 - .byte 0x05, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00 - .byte 0x02, 0x00, 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00 - .byte 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x05, 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, 0x1E, 0x00 - .byte 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x14, 0x00, 0x0F, 0x00, 0x0F, 0x00 - .byte 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x05, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00 - .byte 0x00, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x14, 0x00, 0x0A, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x0F, 0x00 - .byte 0x0F, 0x00, 0x14, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x0F, 0x00, 0x0F, 0x00 - .byte 0x0F, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x1E, 0x00, 0x14, 0x00, 0x14, 0x00 - .byte 0x0A, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00 - .byte 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x14, 0x00, 0x0A, 0x00 - .byte 0x1E, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x0F, 0x00, 0x14, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x0F, 0x00 - .byte 0x14, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00 - .byte 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x14, 0x00 - .byte 0x0A, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0A, 0x00 - .byte 0x00, 0x00, 0x0F, 0x00, 0x14, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x14, 0x00 - .byte 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x14, 0x00, 0x0F, 0x00, 0x0F, 0x00 - .byte 0x0F, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00 - .byte 0x0F, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x14, 0x00, 0x14, 0x00, 0x0A, 0x00, 0x0A, 0x00 - .byte 0x0F, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00 - .byte 0x0A, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x1E, 0x00, 0x14, 0x00, 0x0F, 0x00, 0x14, 0x00 - .byte 0x0A, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00 - .byte 0x0F, 0x00, 0x14, 0x00, 0x14, 0x00, 0x05, 0x00, 0x14, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x1E, 0x00 - .byte 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00 - .byte 0x00, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x14, 0x00, 0x0A, 0x00 - .byte 0x0F, 0x00, 0x05, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x0F, 0x00, 0x0F, 0x00 - .byte 0x0F, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00 - .byte 0x0F, 0x00, 0x0A, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x14, 0x00, 0x0F, 0x00 - .byte 0x14, 0x00, 0x0F, 0x00, 0x14, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x14, 0x00, 0x0F, 0x00 - .byte 0x0A, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x0F, 0x00 - .byte 0x1E, 0x00, 0x14, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0A, 0x00 - .byte 0x0A, 0x00, 0x14, 0x00, 0x14, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x14, 0x00, 0x0A, 0x00, 0x14, 0x00 - .byte 0x0A, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x14, 0x00 - .byte 0x00, 0x00, 0x05, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x05, 0x00 - .byte 0x0A, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x14, 0x00, 0x0A, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x0F, 0x00 - .byte 0x14, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x0A, 0x00 - .byte 0x14, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00 - .byte 0x0F, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00 - .byte 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x14, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x05, 0x00 - .byte 0x14, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0A, 0x00 - .byte 0x14, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x05, 0x00, 0x14, 0x00 - .byte 0x0A, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x1E, 0x00 - .byte 0x18, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00 - .byte 0x30, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00 - .byte 0x28, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00 - .byte 0x30, 0x00, 0x00, 0x00, 0x17, 0x01, 0xEE, 0x00, 0x1A, 0x00, 0x75, 0x00, 0x29, 0x01, 0x5D, 0x00 - .byte 0x00, 0x00, 0x2D, 0x00, 0x6E, 0x00, 0x00, 0x00, 0xAE, 0x00, 0xD6, 0x00, 0xFA, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x11, 0x00, 0x01, 0x00, 0x00, 0x00, 0xA8, 0x03, 0xF0, 0x00 - .byte 0xFB, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1F, 0x00, 0x6E, 0x00, 0x00, 0x00 - .byte 0xB2, 0x01, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0A, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x18, 0x03, 0xD6, 0x00, 0x54, 0x00, 0xFB, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x1D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8E, 0x03, 0xEF, 0x00, 0xEA, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x21, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x07, 0x02, 0xED, 0x00 - .byte 0x58, 0x01, 0xC3, 0x01, 0x2F, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x6E, 0x00, 0x82, 0x00 - .byte 0x2E, 0x04, 0xD6, 0x00, 0xFA, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x19, 0x01, 0xD6, 0x00, 0x87, 0x00, 0xBE, 0x00, 0x50, 0x01, 0x08, 0x00 - .byte 0x00, 0x00, 0x2E, 0x00, 0x01, 0x00, 0x00, 0x00, 0x78, 0x01, 0xEC, 0x00, 0x34, 0x01, 0x45, 0x01 - .byte 0x3A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1C, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x82, 0x01, 0xDF, 0x00, 0x1B, 0x00, 0x18, 0x00, 0xF9, 0x00, 0x48, 0x01, 0x39, 0x00, 0x0F, 0x00 - .byte 0x6E, 0x00, 0x14, 0x00, 0x14, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x7D, 0x34, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xED, 0x01, 0xE0, 0x00, 0x3F, 0x00, 0xC8, 0x00, 0x32, 0x01, 0x00, 0x00 - .byte 0x3E, 0x00, 0x0F, 0x00, 0x6E, 0x00, 0x1B, 0x00, 0x18, 0x00, 0x11, 0x00, 0x11, 0x00, 0x00, 0x00 - .byte 0xCB, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB2, 0x01, 0xD9, 0x00, 0x8B, 0x00, 0xD9, 0x00 - .byte 0x2E, 0x01, 0x00, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x6E, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00 - .byte 0x14, 0x00, 0x00, 0x00, 0x52, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x01, 0xDE, 0x00 - .byte 0x65, 0x00, 0x61, 0x00, 0x54, 0x00, 0x18, 0x00, 0x40, 0x00, 0x16, 0x00, 0x6E, 0x00, 0x1E, 0x00 - .byte 0x1E, 0x00, 0x15, 0x00, 0x17, 0x00, 0x00, 0x00, 0xFE, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0xB2, 0x01, 0xD9, 0x00, 0x8B, 0x00, 0xD9, 0x00, 0x2E, 0x01, 0x00, 0x00, 0x41, 0x00, 0x10, 0x00 - .byte 0x6E, 0x00, 0x18, 0x00, 0x16, 0x00, 0x16, 0x00, 0x14, 0x00, 0x00, 0x00, 0x2A, 0x2D, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x19, 0x01, 0xDA, 0x00, 0x87, 0x00, 0xBE, 0x00, 0x50, 0x01, 0x08, 0x00 - .byte 0x7D, 0x00, 0x2E, 0x00, 0x6E, 0x00, 0x45, 0x00, 0x44, 0x00, 0x35, 0x00, 0x34, 0x00, 0x00, 0x00 - .byte 0xB2, 0xB4, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x01, 0xE1, 0x00, 0xFA, 0x00, 0x2E, 0x00 - .byte 0xC3, 0x00, 0xAB, 0x00, 0x54, 0x00, 0x1B, 0x00, 0x6E, 0x00, 0x38, 0x00, 0x2C, 0x00, 0x2D, 0x00 - .byte 0x27, 0x00, 0x00, 0x00, 0xE9, 0x3F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x02, 0xE3, 0x00 - .byte 0x58, 0x01, 0xC3, 0x01, 0x2F, 0x00, 0x7E, 0x00, 0x82, 0x00, 0x2D, 0x00, 0x6E, 0x00, 0x3D, 0x00 - .byte 0x39, 0x00, 0x2D, 0x00, 0x35, 0x00, 0x00, 0x00, 0xE7, 0xB6, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x19, 0x01, 0xDA, 0x00, 0x87, 0x00, 0xBE, 0x00, 0x50, 0x01, 0x08, 0x00, 0x7D, 0x00, 0x2E, 0x00 - .byte 0x6E, 0x00, 0x45, 0x00, 0x44, 0x00, 0x35, 0x00, 0x34, 0x00, 0x00, 0x00, 0xB2, 0xB4, 0x07, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xE3, 0x01, 0xDC, 0x00, 0xAE, 0x00, 0x28, 0x00, 0x37, 0x01, 0xFD, 0x01 - .byte 0x75, 0x00, 0x24, 0x00, 0x6E, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00 - .byte 0x1B, 0xE7, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x01, 0xDB, 0x00, 0x1A, 0x00, 0x75, 0x00 - .byte 0x29, 0x01, 0x5D, 0x00, 0x78, 0x00, 0x2D, 0x00, 0x6E, 0x00, 0x2D, 0x00, 0x2D, 0x00, 0x25, 0x00 - .byte 0x26, 0x00, 0x00, 0x00, 0xC1, 0xC0, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x01, 0xDA, 0x00 - .byte 0x87, 0x00, 0xBE, 0x00, 0x50, 0x01, 0x08, 0x00, 0x7D, 0x00, 0x2E, 0x00, 0x6E, 0x00, 0x45, 0x00 - .byte 0x44, 0x00, 0x35, 0x00, 0x34, 0x00, 0x00, 0x00, 0xB2, 0xB4, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x19, 0x01, 0xDA, 0x00, 0x87, 0x00, 0xBE, 0x00, 0x50, 0x01, 0x08, 0x00, 0x7D, 0x00, 0x2E, 0x00 - .byte 0x6E, 0x00, 0x4A, 0x00, 0x49, 0x00, 0x3A, 0x00, 0x34, 0x00, 0x00, 0x00, 0x82, 0x63, 0x0A, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x12, 0x02, 0xDD, 0x00, 0xEA, 0x00, 0x38, 0x00, 0x2A, 0x00, 0x51, 0x00 - .byte 0x7E, 0x00, 0x2F, 0x00, 0x5E, 0x01, 0x42, 0x00, 0x3F, 0x00, 0x3A, 0x00, 0x4A, 0x00, 0x00, 0x00 - .byte 0xA0, 0x86, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB2, 0x01, 0xD9, 0x00, 0x8B, 0x00, 0xD9, 0x00 - .byte 0x2E, 0x01, 0x00, 0x00, 0x41, 0x00, 0x10, 0x00, 0x6E, 0x00, 0x18, 0x00, 0x16, 0x00, 0x16, 0x00 - .byte 0x14, 0x00, 0x00, 0x00, 0x2A, 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB2, 0x01, 0xD9, 0x00 - .byte 0x8B, 0x00, 0xD9, 0x00, 0x2E, 0x01, 0x00, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x6E, 0x00, 0x16, 0x00 - .byte 0x16, 0x00, 0x16, 0x00, 0x14, 0x00, 0x00, 0x00, 0x52, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x16, 0x02, 0xE2, 0x00, 0x29, 0x01, 0x49, 0x01, 0x5E, 0x00, 0xD7, 0x01, 0x54, 0x00, 0x37, 0x00 - .byte 0x5E, 0x01, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0xFB, 0xB7, 0x09, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xF5, 0x01, 0xDE, 0x00, 0x65, 0x00, 0x61, 0x00, 0x54, 0x00, 0x18, 0x00 - .byte 0x40, 0x00, 0x16, 0x00, 0x6E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x15, 0x00, 0x17, 0x00, 0x00, 0x00 - .byte 0xFE, 0xD6, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x78, 0x01, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00 - .byte 0x47, 0x00, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00 - .byte 0x6C, 0x00, 0x00, 0x00, 0x7A, 0x01, 0x00, 0x00, 0x80, 0x0C, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00 - .byte 0x58, 0x00, 0x00, 0x00, 0x7B, 0x01, 0x00, 0x00, 0x88, 0x13, 0x00, 0x00, 0xE0, 0x01, 0x00, 0x00 - .byte 0x64, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x4C, 0x1D, 0x00, 0x00, 0x30, 0x02, 0x00, 0x00 - .byte 0x65, 0x00, 0x00, 0x00, 0x7D, 0x01, 0x00, 0x00, 0x04, 0x29, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00 - .byte 0x66, 0x00, 0x00, 0x00, 0x7E, 0x01, 0x00, 0x00, 0xBC, 0x34, 0x00, 0x00, 0x20, 0x03, 0x00, 0x00 - .byte 0x59, 0x00, 0x00, 0x00, 0x7F, 0x01, 0x00, 0x00, 0x68, 0x42, 0x00, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0x59, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x08, 0x52, 0x00, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x81, 0x01, 0x00, 0x00, 0xA8, 0x61, 0x00, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x82, 0x01, 0x00, 0x00, 0xA0, 0x86, 0x01, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, 0x00, 0xE1, 0xF5, 0x05, 0xE8, 0x03, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xE9, 0x01, 0x0E, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00 - .byte 0x0F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x1E, 0x01, 0x14, 0x00, 0x00, 0x00, 0xAC, 0x01, 0x00, 0x00 - .byte 0x14, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xA6, 0x01, 0x18, 0x00, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00 - .byte 0x18, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x1B, 0x01, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x14, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xC8, 0x01, 0x1E, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00 - .byte 0x1E, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x36, 0x00, 0x11, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00 - .byte 0x11, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00 - .byte 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00 - .byte 0x50, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00 - .byte 0x54, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00 - .byte 0x58, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00 - .byte 0x4C, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00 - .byte 0x48, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00 - .byte 0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x68, 0x94, 0xFF, 0x01, 0xD4, 0x94, 0xFF, 0x01 - .byte 0x40, 0x95, 0xFF, 0x01, 0xAC, 0x95, 0xFF, 0x01, 0x00, 0x00, 0x06, 0x1D, 0x06, 0x27, 0x06, 0x25 - .byte 0x06, 0x1F, 0x06, 0x25, 0x06, 0x27, 0x06, 0x1F, 0x06, 0x25, 0x06, 0x24, 0x06, 0x1D, 0x06, 0x1F - .byte 0x06, 0x22, 0x06, 0x18, 0x06, 0x13, 0x06, 0x1F, 0x06, 0x1B, 0x06, 0x1F, 0x06, 0x22, 0x06, 0x1F - .byte 0x06, 0x1F, 0x06, 0x1D, 0x06, 0x20, 0x06, 0x2F, 0x06, 0x2B, 0x06, 0x26, 0x06, 0x2F, 0x06, 0x1C - .byte 0x06, 0x24, 0x06, 0x1E, 0x06, 0x1B, 0x06, 0x23, 0x06, 0x21, 0x06, 0x26, 0x06, 0x26, 0x06, 0x28 - .byte 0x06, 0x25, 0x06, 0x1F, 0x06, 0x24, 0x06, 0x20, 0x06, 0x20, 0x06, 0x1D, 0x06, 0x1E, 0x06, 0x1B - .byte 0x06, 0x28, 0x06, 0x22, 0x06, 0x1D, 0x06, 0x1F, 0x06, 0x1B, 0x06, 0x1F, 0x06, 0x1A, 0x06, 0x27 - .byte 0x06, 0x1F, 0x06, 0x1F, 0x06, 0x21, 0x06, 0x20, 0x06, 0x23, 0x06, 0x24, 0x06, 0x1F, 0x06, 0x24 - .byte 0x06, 0x1C, 0x06, 0x21, 0x06, 0x23, 0x06, 0x20, 0x06, 0x37, 0x06, 0x27, 0x06, 0x1E, 0x06, 0x27 - .byte 0x06, 0x26, 0x06, 0x1B, 0x06, 0x20, 0x06, 0x28, 0x06, 0x20, 0x06, 0x20, 0x06, 0x1E, 0x06, 0x2A - .byte 0x06, 0x24, 0x06, 0x23, 0x06, 0x28, 0x06, 0x1F, 0x06, 0x27, 0x06, 0x1D, 0x06, 0x1E, 0x06, 0x27 - .byte 0x06, 0x25, 0x06, 0x2F, 0x06, 0x1B, 0x06, 0x23, 0x06, 0x26, 0x06, 0x28, 0x06, 0x20, 0x06, 0x26 - .byte 0x06, 0x29, 0x06, 0x25, 0x06, 0x28, 0x10, 0x44, 0x06, 0x20, 0x06, 0x2E, 0x06, 0x20, 0x06, 0x3F - .byte 0x06, 0x17, 0x06, 0x24, 0x06, 0x26, 0x06, 0x2E, 0x06, 0x29, 0x06, 0x27, 0x06, 0x2C, 0x06, 0x27 - .byte 0x06, 0x25, 0x06, 0x20, 0x06, 0x30, 0x06, 0x21, 0x06, 0x2B, 0x06, 0x21, 0x06, 0x23, 0x06, 0x2B - .byte 0x06, 0x1D, 0x06, 0x1F, 0x06, 0x21, 0x06, 0x25, 0x06, 0x20, 0x06, 0x1D, 0x06, 0x30, 0x06, 0x24 - .byte 0x06, 0x2E, 0x06, 0x2F, 0x06, 0x29, 0x06, 0x24, 0x06, 0x24, 0x06, 0x24, 0x11, 0x5E, 0x09, 0x39 - .byte 0x06, 0x1F, 0x06, 0x2B, 0x06, 0x30, 0x06, 0x27, 0x06, 0x29, 0x06, 0x22, 0x06, 0x1A, 0x06, 0x1F - .byte 0x06, 0x20, 0x06, 0x26, 0x06, 0x23, 0x06, 0x2B, 0x0A, 0x40, 0x0C, 0x40, 0x0C, 0x4C, 0x06, 0x25 - .byte 0x06, 0x2D, 0x06, 0x29, 0x06, 0x26, 0x06, 0x22, 0x06, 0x1D, 0x06, 0x24, 0x06, 0x2E, 0x06, 0x1A - .byte 0x06, 0x1C, 0x06, 0x27, 0x06, 0x28, 0x06, 0x37, 0x06, 0x2E, 0x06, 0x30, 0x06, 0x22, 0x06, 0x1A - .byte 0x06, 0x2B, 0x06, 0x20, 0x06, 0x20, 0x06, 0x22, 0x06, 0x2A, 0x06, 0x1E, 0x06, 0x22, 0x06, 0x22 - .byte 0x06, 0x1F, 0x06, 0x23, 0x06, 0x15, 0x06, 0x1A, 0x06, 0x1A, 0x06, 0x19, 0x06, 0x2B, 0x06, 0x21 - .byte 0x06, 0x1F, 0x06, 0x2B, 0x06, 0x27, 0x06, 0x1F, 0x06, 0x21, 0x06, 0x1F, 0x06, 0x27, 0x06, 0x28 - .byte 0x06, 0x1F, 0x06, 0x1E, 0x06, 0x2D, 0x06, 0x1B, 0x06, 0x25, 0x06, 0x1A, 0x06, 0x25, 0x06, 0x24 - .byte 0x06, 0x33, 0x06, 0x29, 0x06, 0x1F, 0x06, 0x25, 0x06, 0x1E, 0x06, 0x10, 0x06, 0x14, 0x06, 0x15 - .byte 0x06, 0x14, 0x06, 0x14, 0x06, 0x13, 0x06, 0x13, 0x06, 0x15, 0x06, 0x0F, 0x06, 0x13, 0x06, 0x13 - .byte 0x06, 0x14, 0x06, 0x11, 0x06, 0x15, 0x06, 0x11, 0x06, 0x13, 0x06, 0x12, 0x06, 0x12, 0x06, 0x13 - .byte 0x06, 0x0F, 0x06, 0x10, 0x06, 0x13, 0x06, 0x10, 0x06, 0x10, 0x06, 0x10, 0x06, 0x12, 0x06, 0x10 - .byte 0x06, 0x13, 0x06, 0x20, 0x06, 0x24, 0x06, 0x1B, 0x06, 0x17, 0x06, 0x1F, 0x06, 0x20, 0x10, 0x52 - .byte 0x06, 0x20, 0x06, 0x27, 0x06, 0x1B, 0x06, 0x2A, 0x06, 0x23, 0x06, 0x29, 0x06, 0x33, 0x06, 0x2B - .byte 0x06, 0x2D, 0x06, 0x1E, 0x06, 0x2E, 0x06, 0x1D, 0x06, 0x22, 0x06, 0x1F, 0x06, 0x21, 0x06, 0x24 - .byte 0x06, 0x36, 0x0B, 0x4C, 0x06, 0x28, 0x06, 0x28, 0x06, 0x2F, 0x06, 0x1F, 0x06, 0x26, 0x06, 0x27 - .byte 0x06, 0x24, 0x06, 0x25, 0x06, 0x36, 0x06, 0x20, 0x06, 0x1F, 0x06, 0x1C, 0x06, 0x29, 0x06, 0x25 - .byte 0x06, 0x29, 0x06, 0x23, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x1F, 0x06, 0x20, 0x06, 0x25 - .byte 0x10, 0x58, 0x10, 0x68, 0x06, 0x1F, 0x06, 0x1F, 0x06, 0x21, 0x06, 0x24, 0x06, 0x2A, 0x06, 0x21 - .byte 0x06, 0x22, 0x06, 0x28, 0x06, 0x1E, 0x06, 0x20, 0x06, 0x2B, 0x06, 0x2A, 0x06, 0x2A, 0x06, 0x20 - .byte 0x06, 0x25, 0x06, 0x1E, 0x06, 0x14, 0x06, 0x23, 0x06, 0x15, 0x06, 0x23, 0x06, 0x1D, 0x06, 0x34 - .byte 0x06, 0x2A, 0x06, 0x19, 0x06, 0x24, 0x06, 0x2D, 0x06, 0x17, 0x06, 0x2E, 0x06, 0x22, 0x06, 0x1B - .byte 0x06, 0x19, 0x06, 0x1C, 0x06, 0x27, 0x06, 0x1F, 0x06, 0x1D, 0x06, 0x1E, 0x06, 0x25, 0x06, 0x20 - .byte 0x06, 0x1D, 0x06, 0x24, 0x06, 0x1A, 0x06, 0x1D, 0x06, 0x23, 0x06, 0x24, 0x06, 0x25, 0x06, 0x23 - .byte 0x06, 0x24, 0x06, 0x30, 0x06, 0x29, 0x06, 0x26, 0x06, 0x21, 0x06, 0x34, 0x06, 0x26, 0x06, 0x25 - .byte 0x06, 0x21, 0x06, 0x20, 0x06, 0x32, 0x06, 0x1F, 0x06, 0x24, 0x06, 0x28, 0x06, 0x28, 0x06, 0x1C - .byte 0x06, 0x1C, 0x06, 0x2A, 0x06, 0x21, 0x06, 0x2A, 0x06, 0x1E, 0x06, 0x23, 0x06, 0x23, 0x06, 0x24 - .byte 0x06, 0x1E, 0x10, 0x61, 0x06, 0x21, 0x06, 0x2A, 0x06, 0x25, 0x06, 0x1C, 0x06, 0x24, 0x06, 0x31 - .byte 0x06, 0x1E, 0x06, 0x20, 0x06, 0x22, 0x06, 0x23, 0x06, 0x26, 0x06, 0x1F, 0x06, 0x28, 0x06, 0x39 - .byte 0x06, 0x35, 0x06, 0x19, 0x06, 0x1B, 0x06, 0x21, 0x06, 0x23, 0x06, 0x1F, 0x06, 0x23, 0x06, 0x18 - .byte 0x06, 0x1C, 0x06, 0x20, 0x06, 0x27, 0x06, 0x22, 0x06, 0x34, 0x06, 0x20, 0x10, 0x5F, 0x06, 0x1A - .byte 0x06, 0x2D, 0x06, 0x21, 0x06, 0x1B, 0x06, 0x24, 0x06, 0x24, 0x06, 0x1B, 0x06, 0x26, 0x06, 0x20 - .byte 0x06, 0x25, 0x06, 0x3C, 0x06, 0x1C, 0x06, 0x33, 0x06, 0x20, 0x06, 0x1F, 0x06, 0x26, 0x06, 0x21 - .byte 0x06, 0x27, 0x06, 0x30, 0x06, 0x1F, 0x06, 0x29, 0x06, 0x1F, 0x06, 0x25, 0x06, 0x1B, 0x06, 0x1F - .byte 0x06, 0x27, 0x0C, 0x56, 0x06, 0x1B, 0x06, 0x21, 0x06, 0x31, 0x06, 0x2D, 0x06, 0x2F, 0x06, 0x2B - .byte 0x0A, 0x35, 0x09, 0x37, 0x0B, 0x42, 0x10, 0x5D, 0x10, 0x74, 0x06, 0x26, 0x06, 0x21, 0x06, 0x34 - .byte 0x06, 0x20, 0x06, 0x34, 0x06, 0x1D, 0x06, 0x22, 0x06, 0x4A, 0x06, 0x1D, 0x06, 0x34, 0x06, 0x33 - .byte 0x06, 0x21, 0x06, 0x22, 0x06, 0x2D, 0x06, 0x1C, 0x06, 0x28, 0x06, 0x2C, 0x06, 0x27, 0x06, 0x22 - .byte 0x06, 0x1A, 0x06, 0x23, 0x06, 0x25, 0x06, 0x25, 0x06, 0x26, 0x06, 0x21, 0x06, 0x39, 0x06, 0x25 - .byte 0x06, 0x26, 0x06, 0x22, 0x06, 0x28, 0x06, 0x14, 0x06, 0x17, 0x06, 0x17, 0x06, 0x18, 0x06, 0x18 - .byte 0x06, 0x18, 0x06, 0x20, 0x06, 0x1B, 0x06, 0x22, 0x06, 0x21, 0x06, 0x26, 0x06, 0x24, 0x06, 0x30 - .byte 0x06, 0x2A, 0x06, 0x1E, 0x06, 0x15, 0x06, 0x16, 0x06, 0x24, 0x06, 0x23, 0x06, 0x27, 0x06, 0x28 - .byte 0x06, 0x22, 0x06, 0x2D, 0x06, 0x25, 0x06, 0x2D, 0x06, 0x2A, 0x06, 0x1E, 0x06, 0x30, 0x06, 0x1A - .byte 0x06, 0x29, 0x06, 0x2B, 0x06, 0x1C, 0x06, 0x23, 0x06, 0x17, 0x06, 0x27, 0x06, 0x20, 0x06, 0x22 - .byte 0x06, 0x2A, 0x06, 0x25, 0x06, 0x30, 0x06, 0x38, 0x06, 0x1F, 0x06, 0x23, 0x06, 0x2E, 0x06, 0x21 - .byte 0x06, 0x2B, 0x06, 0x28, 0x06, 0x2B, 0x06, 0x27, 0x06, 0x27, 0x06, 0x2A, 0x06, 0x20, 0x06, 0x25 - .byte 0x06, 0x24, 0x06, 0x2E, 0x06, 0x2C, 0x06, 0x30, 0x06, 0x24, 0x06, 0x2D, 0x08, 0x3C, 0x06, 0x26 - .byte 0x06, 0x30, 0x06, 0x49, 0x06, 0x34, 0x06, 0x23, 0x06, 0x29, 0x06, 0x28, 0x06, 0x26, 0x06, 0x2D - .byte 0x06, 0x23, 0x06, 0x29, 0x06, 0x20, 0x06, 0x30, 0x06, 0x30, 0x06, 0x21, 0x06, 0x25, 0x06, 0x27 - .byte 0x06, 0x23, 0x12, 0x7C, 0x10, 0x7F, 0x06, 0x2C, 0x10, 0x54, 0x0E, 0x6A, 0x06, 0x2F, 0x06, 0x21 - .byte 0x06, 0x25, 0x06, 0x2F, 0x06, 0x40, 0x06, 0x40, 0x11, 0x6A, 0x06, 0x19, 0x06, 0x19, 0x06, 0x19 - .byte 0x06, 0x19, 0x06, 0x19, 0x06, 0x19, 0x06, 0x19, 0x06, 0x19, 0x06, 0x19, 0x06, 0x19, 0x06, 0x19 - .byte 0x06, 0x19, 0x06, 0x19, 0x06, 0x19, 0x06, 0x19, 0x12, 0x7C, 0x06, 0x19, 0x06, 0x03, 0x06, 0x20 - .byte 0x09, 0x12, 0x06, 0x0A, 0x06, 0x0E, 0x06, 0x0C, 0x06, 0x0F, 0x06, 0x0F, 0x06, 0x0F, 0x06, 0x11 - .byte 0x06, 0x1C, 0x06, 0x16, 0x06, 0x22, 0x06, 0x17, 0x06, 0x1E, 0x06, 0x1E, 0x06, 0x18, 0x06, 0x12 - .byte 0x06, 0x16, 0x06, 0x13, 0x06, 0x24, 0x06, 0x20, 0x06, 0x24, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30 - .byte 0x06, 0x27, 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, 0x72, 0x6F, 0x6D, 0x30, 0x3A, 0x2F, 0x42, 0x41 - .byte 0x4C, 0x41, 0x4E, 0x43, 0x45, 0x2F, 0x6D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72, 0x2E, 0x6D, 0x64 - .byte 0x00, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A, 0x25, 0x63, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52 - .byte 0x5D, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A, 0x25, 0x63, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52 - .byte 0x5D, 0x25, 0x63, 0x00, 0x25, 0x73, 0x25, 0x73, 0x00, 0x00, 0x00, 0x00, 0x25, 0x73, 0x00, 0x00 - .byte 0x5B, 0x43, 0x53, 0x3A, 0x4B, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00 - .byte 0x72, 0x6F, 0x6D, 0x30, 0x3A, 0x2F, 0x42, 0x41, 0x4C, 0x41, 0x4E, 0x43, 0x45, 0x2F, 0x73, 0x74 - .byte 0x5F, 0x6E, 0x32, 0x6D, 0x5F, 0x6A, 0x2E, 0x62, 0x69, 0x6E, 0x00, 0x00, 0x72, 0x6F, 0x6D, 0x30 - .byte 0x3A, 0x2F, 0x42, 0x41, 0x4C, 0x41, 0x4E, 0x43, 0x45, 0x2F, 0x73, 0x74, 0x5F, 0x6D, 0x32, 0x6E - .byte 0x5F, 0x6A, 0x2E, 0x62, 0x69, 0x6E, 0x00, 0x00, 0x44, 0x48, 0x05, 0x02, 0x44, 0x48, 0x05, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0xA7, 0x00, 0x85, 0x00, 0x79, 0x00 - .byte 0x02, 0x01, 0x5D, 0x00, 0xB6, 0x01, 0xBE, 0x00, 0xE9, 0x01, 0x3F, 0x00, 0x34, 0x00, 0x6F, 0x00 - .byte 0xE8, 0x01, 0xD9, 0x01, 0x48, 0x01, 0xD9, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x01, 0x00, 0x00 - .byte 0x0D, 0x00, 0x00, 0x00, 0x0E, 0x01, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00 - .byte 0x0E, 0x00, 0x00, 0x00, 0x99, 0x02, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00 - .byte 0x0D, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x8B, 0x02, 0x00, 0x00 - .byte 0x0D, 0x00, 0x00, 0x00, 0x8B, 0x02, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x83, 0x47, 0x83, 0x6C, 0x83, 0x52, 0x82, 0xCD, 0x81, 0x41, 0x82, 0xDD - .byte 0x82, 0xE2, 0x82, 0xD4, 0x82, 0xE9, 0x82, 0xF0, 0x82, 0xC6, 0x82, 0xE8, 0x82, 0xA9, 0x82, 0xA6 - .byte 0x82, 0xDC, 0x82, 0xB5, 0x82, 0xBD, 0x00, 0x00, 0x2D, 0x2D, 0x20, 0x4D, 0x6F, 0x6E, 0x73, 0x74 - .byte 0x65, 0x72, 0x5F, 0x53, 0x6F, 0x72, 0x74, 0x4C, 0x69, 0x73, 0x74, 0x5F, 0x47, 0x65, 0x74, 0x57 - .byte 0x61, 0x72, 0x65, 0x48, 0x6F, 0x75, 0x73, 0x65, 0x4D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72, 0x4C - .byte 0x69, 0x73, 0x74, 0x5F, 0x50, 0x4C, 0x41, 0x4E, 0x45, 0x20, 0x2D, 0x2D, 0x0A, 0x00, 0x00, 0x00 - .byte 0x25, 0x34, 0x64, 0x3A, 0x25, 0x33, 0x64, 0x3A, 0x25, 0x73, 0x0A, 0x00, 0x25, 0x73, 0x00, 0x00 - .byte 0x5B, 0x43, 0x53, 0x3A, 0x25, 0x63, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00 - .byte 0x6D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72, 0x20, 0x6D, 0x61, 0x69, 0x6E, 0x20, 0x63, 0x61, 0x73 - .byte 0x74, 0x20, 0x61, 0x64, 0x64, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 - .byte 0x80, 0x33, 0x0A, 0x02, 0xD6, 0x05, 0x00, 0x00, 0x80, 0x33, 0x0A, 0x02, 0x1A, 0x06, 0x00, 0x00 - .byte 0x6D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72, 0x5F, 0x64, 0x67, 0x5F, 0x77, 0x61, 0x72, 0x65, 0x68 - .byte 0x6F, 0x75, 0x73, 0x65, 0x2E, 0x63, 0x00, 0x00, 0x73, 0x61, 0x6C, 0x6C, 0x79, 0x20, 0x25, 0x32 - .byte 0x64, 0x20, 0x63, 0x6F, 0x6E, 0x76, 0x65, 0x72, 0x74, 0x20, 0x25, 0x33, 0x64, 0x20, 0x2D, 0x3E - .byte 0x20, 0x25, 0x33, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x64, 0x67, 0x20, 0x25, 0x32, 0x64, 0x20, 0x63 - .byte 0x6F, 0x6E, 0x76, 0x65, 0x72, 0x74, 0x20, 0x25, 0x33, 0x64, 0x20, 0x2D, 0x3E, 0x20, 0x25, 0x33 - .byte 0x64, 0x0A, 0x00, 0x00, 0x53, 0x65, 0x74, 0x75, 0x70, 0x50, 0x61, 0x72, 0x74, 0x79, 0x47, 0x72 - .byte 0x6F, 0x75, 0x6E, 0x64, 0x32, 0x20, 0x25, 0x33, 0x64, 0x20, 0x25, 0x33, 0x64, 0x20, 0x3D, 0x3D - .byte 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D - .byte 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x0A, 0x00, 0x00, 0x00, 0x53, 0x65, 0x74, 0x75 - .byte 0x70, 0x50, 0x61, 0x72, 0x74, 0x79, 0x44, 0x75, 0x6E, 0x67, 0x65, 0x6F, 0x6E, 0x20, 0x3D, 0x3D - .byte 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D - .byte 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x0A, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20 - .byte 0x25, 0x33, 0x64, 0x5B, 0x25, 0x33, 0x64, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xFC, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF - .byte 0xF8, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xAC, 0x34, 0x0A, 0x02 - .byte 0xB3, 0x03, 0x00, 0x00, 0xAC, 0x34, 0x0A, 0x02, 0x31, 0x03, 0x00, 0x00, 0x6D, 0x6F, 0x6E, 0x73 - .byte 0x74, 0x65, 0x72, 0x32, 0x2E, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x05, 0x0A, 0x04, 0x08, 0x03, 0x06, 0x02, 0x04, 0x01, 0x02, 0x00, 0x00 - .byte 0xFF, 0x00, 0x60, 0x14, 0x5B, 0x13, 0x56, 0x12, 0x51, 0x11, 0x4C, 0x10, 0x47, 0x0F, 0x42, 0x0E - .byte 0x3D, 0x0D, 0x38, 0x0C, 0x33, 0x0B, 0x2E, 0x0A, 0x29, 0x09, 0x24, 0x08, 0x1F, 0x07, 0x1A, 0x06 - .byte 0x15, 0x05, 0x10, 0x04, 0x0B, 0x03, 0x06, 0x02, 0x00, 0x01, 0xFF, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x4A, 0x5D, 0x5B, 0x73, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x3A, 0x31, 0x5D, 0x5B, 0x43, 0x52, 0x5D - .byte 0x00, 0x00, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x53, 0x32, 0x5D, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x53 - .byte 0x31, 0x5D, 0x00, 0x00, 0x5B, 0x73, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x3A, 0x30, 0x5D, 0x5B, 0x73 - .byte 0x74, 0x72, 0x69, 0x6E, 0x67, 0x3A, 0x31, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x53 - .byte 0x33, 0x5D, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x52, 0x31, 0x5D, 0x00, 0x00, 0x30, 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, 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, 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, 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, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .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, 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, 0xFE, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x20, 0x65 - .byte 0x72, 0x72, 0x6F, 0x72, 0x3A, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x74, 0x61, 0x72, 0x67 - .byte 0x65, 0x74, 0x20, 0x64, 0x65, 0x6C, 0x69, 0x76, 0x65, 0x72, 0x79, 0x20, 0x65, 0x72, 0x72, 0x6F - .byte 0x72, 0x3A, 0x20, 0x69, 0x74, 0x65, 0x6D, 0x20, 0x63, 0x6F, 0x75, 0x6E, 0x74, 0x20, 0x7A, 0x65 - .byte 0x72, 0x6F, 0x0A, 0x00, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x65, 0x72 - .byte 0x72, 0x6F, 0x72, 0x3A, 0x20, 0x25, 0x64, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x6D, 0x6F, 0x6E, 0x73 - .byte 0x74, 0x65, 0x72, 0x20, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x63, 0x6F, 0x6D, 0x70, 0x61, 0x72 - .byte 0x65, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x3A, 0x20, 0x25, 0x64, 0x20, 0x25, 0x64, 0x0A, 0x00 - .byte 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x20, 0x6D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72, 0x20, 0x69 - .byte 0x6E, 0x64, 0x65, 0x78, 0x20, 0x42, 0x20, 0x49, 0x6C, 0x6C, 0x65, 0x67, 0x61, 0x6C, 0x20, 0x70 - .byte 0x61, 0x72, 0x61, 0x6D, 0x65, 0x74, 0x65, 0x72, 0x2E, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00 - .byte 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6F - .byte 0x72, 0x3A, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x20, 0x69 - .byte 0x74, 0x65, 0x6D, 0x20, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x3A - .byte 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x20, 0x69 - .byte 0x74, 0x65, 0x6D, 0x20, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6F - .byte 0x75, 0x73, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x3A, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00 - .byte 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x20, 0x6D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72, 0x20, 0x69 - .byte 0x6E, 0x64, 0x65, 0x78, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x3A, 0x20, 0x6E, 0x6F, 0x6E, 0x65 - .byte 0x0A, 0x00, 0x00, 0x00, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x20, 0x6D, 0x6F, 0x6E, 0x73, 0x74 - .byte 0x65, 0x72, 0x20, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x3A, 0x20 - .byte 0x6F, 0x76, 0x65, 0x72, 0x20, 0x6D, 0x61, 0x78, 0x0A, 0x00, 0x00, 0x00, 0x72, 0x65, 0x77, 0x61 - .byte 0x72, 0x64, 0x20, 0x6D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72, 0x20, 0x69, 0x6E, 0x64, 0x65, 0x78 - .byte 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x3A, 0x20, 0x69, 0x6C, 0x6C, 0x65, 0x67, 0x61, 0x6C, 0x20 - .byte 0x6D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72, 0x20, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x2D, 0x20 - .byte 0x25, 0x64, 0x0A, 0x00, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x20, 0x74, 0x79, 0x70 - .byte 0x65, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x3A, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x00 - .byte 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69 - .byte 0x63, 0x74, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x3A, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00 - .byte 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x20, 0x6D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72 - .byte 0x20, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x3A, 0x20, 0x6F, 0x76 - .byte 0x65, 0x72, 0x20, 0x6D, 0x61, 0x78, 0x0A, 0x00, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74 - .byte 0x20, 0x6D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72, 0x20, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x65 - .byte 0x72, 0x72, 0x6F, 0x72, 0x3A, 0x20, 0x69, 0x6C, 0x6C, 0x65, 0x67, 0x61, 0x6C, 0x20, 0x6D, 0x6F - .byte 0x6E, 0x73, 0x74, 0x65, 0x72, 0x20, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x2D, 0x20, 0x25, 0x64 - .byte 0x0A, 0x00, 0x00, 0x00, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x20, 0x6D, 0x6F, 0x6E - .byte 0x73, 0x74, 0x65, 0x72, 0x20, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72 - .byte 0x3A, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x6E, 0x61, 0x74, 0x69, 0x76, 0x65, 0x3A, 0x20, 0x25, 0x64 - .byte 0x0A, 0x00, 0x00, 0x00, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x20, 0x6D, 0x6F, 0x6E - .byte 0x73, 0x74, 0x65, 0x72, 0x20, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72 - .byte 0x3A, 0x20, 0x69, 0x6C, 0x6C, 0x65, 0x67, 0x61, 0x6C, 0x20, 0x65, 0x6E, 0x74, 0x72, 0x79, 0x20 - .byte 0x6D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72, 0x3A, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x00 - .byte 0x64, 0x75, 0x6E, 0x67, 0x65, 0x6F, 0x6E, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x3A, 0x20, 0x25 - .byte 0x64, 0x0A, 0x00, 0x00, 0x64, 0x75, 0x6E, 0x67, 0x65, 0x6F, 0x6E, 0x20, 0x66, 0x6C, 0x6F, 0x6F - .byte 0x72, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x3A, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x00 - .byte 0x64, 0x75, 0x6E, 0x67, 0x65, 0x6F, 0x6E, 0x20, 0x66, 0x69, 0x78, 0x65, 0x64, 0x6D, 0x61, 0x70 - .byte 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x0A, 0x00, 0x6D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72, 0x20 - .byte 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x3A, 0x20, 0x6E, 0x6F, 0x6E - .byte 0x65, 0x0A, 0x00, 0x00, 0x6D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72, 0x20, 0x69, 0x6E, 0x64, 0x65 - .byte 0x78, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x3A, 0x20, 0x6F, 0x76, 0x65, 0x72, 0x20, 0x6D, 0x61 - .byte 0x78, 0x0A, 0x00, 0x00, 0x6D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72, 0x20, 0x69, 0x6E, 0x64, 0x65 - .byte 0x78, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x3A, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x6E, 0x61, 0x74 - .byte 0x69, 0x76, 0x65, 0x3A, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x6F, 0x6E, 0x73 - .byte 0x74, 0x65, 0x72, 0x20, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x3A - .byte 0x20, 0x69, 0x6C, 0x6C, 0x65, 0x67, 0x61, 0x6C, 0x20, 0x6D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72 - .byte 0x20, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x2D, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x00 - .byte 0x6D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72, 0x20, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x65, 0x72 - .byte 0x72, 0x6F, 0x72, 0x3A, 0x20, 0x69, 0x6C, 0x6C, 0x65, 0x67, 0x61, 0x6C, 0x20, 0x65, 0x6E, 0x74 - .byte 0x72, 0x79, 0x20, 0x6D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72, 0x20, 0x2D, 0x20, 0x25, 0x64, 0x0A - .byte 0x00, 0x00, 0x00, 0x00, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x20, 0x69, 0x74, 0x65, 0x6D, 0x20 - .byte 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x3A, 0x20, 0x25, 0x64, 0x0A - .byte 0x00, 0x00, 0x00, 0x00, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x20, 0x69, 0x74, 0x65, 0x6D, 0x20 - .byte 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x63, 0x6F, 0x75, 0x6E, 0x74, 0x20, 0x65, 0x72, 0x72, 0x6F - .byte 0x72, 0x3A, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x20, 0x69 - .byte 0x74, 0x65, 0x6D, 0x20, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x20, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6F - .byte 0x75, 0x73, 0x65, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x3A, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00 - .byte 0x20, 0x00, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x52, 0x34, 0x5D, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x52 - .byte 0x33, 0x5D, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x52, 0x37, 0x5D, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x52 - .byte 0x35, 0x5D, 0x00, 0x00, 0x5B, 0x4D, 0x3A, 0x52, 0x36, 0x5D, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x50, 0x5D, 0x42, 0x5B, 0x43, 0x52, 0x3A, 0x30, 0x5D, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x45, 0x5D, 0x41, 0x5B, 0x43, 0x52, 0x3A, 0x30, 0x5D, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x42, 0x5D, 0x53, 0x5B, 0x43, 0x52, 0x3A, 0x30, 0x5D, 0x00, 0x00, 0x00, 0xD0, 0x38, 0xD1, 0x38 - .byte 0xD2, 0x38, 0xD3, 0x38, 0xD4, 0x38, 0xD5, 0x38, 0xD6, 0x38, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x44, 0x5D, 0x45, 0x5B, 0x43, 0x52, 0x3A, 0x30, 0x5D, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x49, 0x5D, 0x44, 0x5B, 0x43, 0x52, 0x3A, 0x30, 0x5D, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A - .byte 0x4B, 0x5D, 0x43, 0x5B, 0x43, 0x52, 0x3A, 0x30, 0x5D, 0x00, 0x00, 0x00, 0xD7, 0x38, 0xD8, 0x38 - .byte 0xDB, 0x38, 0xD9, 0x38, 0xDC, 0x38, 0xDA, 0x38, 0xDD, 0x38, 0xDE, 0x38, 0x5B, 0x4D, 0x3A, 0x53 - .byte 0x33, 0x5D, 0x5B, 0x43, 0x53, 0x3A, 0x43, 0x5D, 0x35, 0x5B, 0x43, 0x52, 0x3A, 0x30, 0x5D, 0x00 - .byte 0x5B, 0x4D, 0x3A, 0x53, 0x33, 0x5D, 0x5B, 0x43, 0x53, 0x3A, 0x43, 0x5D, 0x36, 0x5B, 0x43, 0x52 - .byte 0x3A, 0x30, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x53, 0x33, 0x5D, 0x5B, 0x43, 0x53, 0x3A, 0x43, 0x5D - .byte 0x39, 0x5B, 0x43, 0x52, 0x3A, 0x30, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x53, 0x33, 0x5D, 0x5B, 0x43 - .byte 0x53, 0x3A, 0x43, 0x5D, 0x31, 0x5B, 0x43, 0x52, 0x3A, 0x30, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x53 - .byte 0x33, 0x5D, 0x5B, 0x43, 0x53, 0x3A, 0x43, 0x5D, 0x32, 0x5B, 0x43, 0x52, 0x3A, 0x30, 0x5D, 0x00 - .byte 0x5B, 0x4D, 0x3A, 0x53, 0x33, 0x5D, 0x5B, 0x43, 0x53, 0x3A, 0x43, 0x5D, 0x37, 0x5B, 0x43, 0x52 - .byte 0x3A, 0x30, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x53, 0x33, 0x5D, 0x5B, 0x43, 0x53, 0x3A, 0x43, 0x5D - .byte 0x33, 0x5B, 0x43, 0x52, 0x3A, 0x30, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x53, 0x33, 0x5D, 0x5B, 0x43 - .byte 0x53, 0x3A, 0x43, 0x5D, 0x38, 0x5B, 0x43, 0x52, 0x3A, 0x30, 0x5D, 0x00, 0x5B, 0x4D, 0x3A, 0x53 - .byte 0x33, 0x5D, 0x5B, 0x43, 0x53, 0x3A, 0x43, 0x5D, 0x34, 0x5B, 0x43, 0x52, 0x3A, 0x30, 0x5D, 0x00 - .byte 0x64, 0x00, 0x05, 0x00, 0x05, 0x00, 0x64, 0x00, 0x05, 0x00, 0x05, 0x00, 0x5B, 0x02, 0x60, 0x06 - .byte 0x62, 0x06, 0xB2, 0x00, 0xB7, 0x00, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x50, 0x00, 0x3C, 0x00, 0x28, 0x00 - .byte 0x19, 0x00, 0x14, 0x00, 0x19, 0x00, 0x1E, 0x00, 0x50, 0x00, 0x28, 0x00, 0x3C, 0x00, 0x17, 0x00 - .byte 0x0A, 0x00, 0x00, 0x00, 0x32, 0x00, 0x50, 0x00, 0x3C, 0x00, 0x28, 0x00, 0x19, 0x00, 0x14, 0x00 - .byte 0x19, 0x00, 0x00, 0x00, 0x3C, 0x06, 0x06, 0x02, 0x58, 0x06, 0x06, 0x02, 0x80, 0x06, 0x06, 0x02 - .byte 0x80, 0x06, 0x06, 0x02, 0xE4, 0x06, 0x06, 0x02, 0x4C, 0x07, 0x06, 0x02, 0x04, 0x08, 0x06, 0x02 - .byte 0x04, 0x09, 0x06, 0x02, 0x6D, 0x00, 0x29, 0x00, 0xDD, 0x01, 0x83, 0x01, 0x69, 0x00, 0x71, 0x00 - .byte 0x73, 0x00, 0xB2, 0x00, 0xFC, 0x01, 0x33, 0x01, 0x3C, 0x01, 0x60, 0x01, 0x61, 0x01, 0x8B, 0x00 - .byte 0x8D, 0x00, 0xB7, 0x01, 0xB8, 0x01, 0xE4, 0x01, 0x51, 0x01, 0x52, 0x01, 0x00, 0x00, 0x49, 0x00 - .byte 0x48, 0x00, 0x57, 0x00, 0x56, 0x00, 0x54, 0x00, 0x4D, 0x00, 0x59, 0x00, 0x46, 0x00, 0x52, 0x00 - .byte 0x5A, 0x00, 0x4E, 0x00, 0x51, 0x00, 0x47, 0x00, 0x63, 0x00, 0x6E, 0x00, 0x45, 0x01, 0x46, 0x01 - .byte 0x47, 0x01, 0x49, 0x01, 0x4A, 0x01, 0x4B, 0x01, 0x4C, 0x01, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 - .byte 0x0A, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00 - .byte 0x3C, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x00, 0x00 - .byte 0x90, 0x01, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x20, 0x03, 0x00, 0x00, 0xE8, 0x03, 0x00, 0x00 - .byte 0xB0, 0x04, 0x00, 0x00, 0x78, 0x05, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00, 0x7B, 0x01, 0x7C, 0x01 - .byte 0x7D, 0x01, 0x7E, 0x01, 0x26, 0x01, 0x28, 0x01, 0x0E, 0x00, 0x7F, 0x01, 0x80, 0x01, 0xC9, 0x00 - .byte 0xCA, 0x00, 0xCB, 0x00, 0xCC, 0x00, 0xCD, 0x00, 0xCE, 0x00, 0xCF, 0x00, 0xD0, 0x00, 0xD1, 0x00 - .byte 0xD2, 0x00, 0xD3, 0x00, 0xD4, 0x00, 0xD5, 0x00, 0xD6, 0x00, 0xD7, 0x00, 0xD8, 0x00, 0xD9, 0x00 - .byte 0xDA, 0x00, 0xDB, 0x00, 0xDC, 0x00, 0xDD, 0x00, 0xDE, 0x00, 0xDF, 0x00, 0xE0, 0x00, 0xE1, 0x00 - .byte 0xE2, 0x00, 0xE3, 0x00, 0xE4, 0x00, 0x89, 0x00, 0x04, 0x01, 0x04, 0x02, 0x51, 0x00, 0x52, 0x00 - .byte 0xF8, 0x01, 0x90, 0x00, 0x91, 0x00, 0x92, 0x00, 0x99, 0x01, 0x9A, 0x01, 0x9B, 0x01, 0x9C, 0x01 - .byte 0x9D, 0x01, 0x9E, 0x01, 0x9F, 0x01, 0xA0, 0x01, 0xA1, 0x01, 0xA2, 0x01, 0xA3, 0x01, 0xA4, 0x01 - .byte 0xA5, 0x01, 0x0E, 0x01, 0x0F, 0x01, 0x10, 0x01, 0x14, 0x01, 0x15, 0x01, 0x16, 0x01, 0x17, 0x01 - .byte 0x96, 0x00, 0x97, 0x00, 0x0A, 0x02, 0x0B, 0x02, 0x0C, 0x02, 0x0D, 0x02, 0x0E, 0x02, 0x10, 0x02 - .byte 0x11, 0x02, 0x12, 0x02, 0xEA, 0x01, 0x13, 0x02, 0x14, 0x02, 0x15, 0x02, 0x16, 0x02, 0x36, 0x01 - .byte 0x28, 0x00, 0x32, 0x00, 0x33, 0x00, 0x60, 0x00, 0x7A, 0x00, 0x82, 0x00, 0x83, 0x00, 0xB7, 0x00 - .byte 0x46, 0x01, 0xC0, 0x00, 0xEF, 0x00, 0xF3, 0x00, 0xF4, 0x00, 0x19, 0x01, 0x42, 0x01, 0x4A, 0x01 - .byte 0x50, 0x01, 0x71, 0x01, 0x86, 0x01, 0xB2, 0x01, 0xD6, 0x01, 0xE3, 0x01, 0xEF, 0x01, 0x07, 0x02 - .byte 0x08, 0x02, 0x0F, 0x02, 0x05, 0x02, 0xBA, 0x01, 0xFA, 0x01, 0x78, 0x01, 0x88, 0x01, 0xE5, 0x00 - .byte 0x63, 0x01, 0xFB, 0x00, 0xF2, 0x00, 0x23, 0x01, 0xC8, 0x01, 0xF1, 0x00, 0x4B, 0x01, 0x3A, 0x01 - .byte 0x43, 0x00, 0x00, 0x00, 0x41, 0x3B, 0x42, 0x3B, 0x43, 0x3B, 0x3D, 0x39, 0x3E, 0x39, 0x3F, 0x39 - .byte 0x40, 0x39, 0x41, 0x39, 0x42, 0x39, 0x43, 0x39, 0x44, 0x39, 0x45, 0x39, 0x46, 0x39, 0x47, 0x39 - .byte 0x1D, 0x3B, 0x1E, 0x3B, 0x1F, 0x3B, 0x20, 0x3B, 0x21, 0x3B, 0x22, 0x3B, 0x23, 0x3B, 0x24, 0x3B - .byte 0x48, 0x39, 0x49, 0x39, 0x4A, 0x39, 0x4B, 0x39, 0x4C, 0x39, 0x4D, 0x39, 0x4E, 0x39, 0x4F, 0x39 - .byte 0x50, 0x39, 0x51, 0x39, 0x52, 0x39, 0x25, 0x3B, 0x26, 0x3B, 0x27, 0x3B, 0x28, 0x3B, 0x29, 0x3B - .byte 0x2A, 0x3B, 0x2B, 0x3B, 0x2C, 0x3B, 0x2D, 0x3B, 0x2E, 0x3B, 0x2F, 0x3B, 0x53, 0x39, 0x54, 0x39 - .byte 0x55, 0x39, 0x56, 0x39, 0x57, 0x39, 0x58, 0x39, 0x59, 0x39, 0x30, 0x3B, 0x31, 0x3B, 0x32, 0x3B - .byte 0x33, 0x3B, 0x34, 0x3B, 0x35, 0x3B, 0x36, 0x3B, 0x5A, 0x39, 0x5B, 0x39, 0x5C, 0x39, 0x5D, 0x39 - .byte 0x5E, 0x39, 0x5F, 0x39, 0x37, 0x3B, 0x38, 0x3B, 0x39, 0x3B, 0x3A, 0x3B, 0x3B, 0x3B, 0x3C, 0x3B - .byte 0x3D, 0x3B, 0x3E, 0x3B, 0x3F, 0x3B, 0x40, 0x3B, 0x8E, 0x39, 0x8F, 0x39, 0x90, 0x39, 0x91, 0x39 - .byte 0x92, 0x39, 0x93, 0x39, 0x94, 0x39, 0x88, 0x3B, 0x89, 0x3B, 0x8A, 0x3B, 0x8B, 0x3B, 0x8C, 0x3B - .byte 0x8D, 0x3B, 0x8E, 0x3B, 0x8F, 0x3B, 0x90, 0x3B, 0x91, 0x3B, 0x71, 0x39, 0x72, 0x39, 0x73, 0x39 - .byte 0x74, 0x39, 0x75, 0x39, 0x76, 0x39, 0x77, 0x39, 0x78, 0x39, 0x79, 0x39, 0x7A, 0x39, 0x7B, 0x39 - .byte 0x7C, 0x39, 0x7D, 0x39, 0x7E, 0x39, 0x7F, 0x39, 0x80, 0x39, 0x81, 0x39, 0x82, 0x39, 0x83, 0x39 - .byte 0x84, 0x39, 0x85, 0x39, 0x86, 0x39, 0x87, 0x39, 0x88, 0x39, 0x89, 0x39, 0x8A, 0x39, 0x8B, 0x39 - .byte 0x8C, 0x39, 0x8D, 0x39, 0x75, 0x3B, 0x76, 0x3B, 0x77, 0x3B, 0x78, 0x3B, 0x79, 0x3B, 0x7A, 0x3B - .byte 0x7B, 0x3B, 0x7C, 0x3B, 0x7D, 0x3B, 0x7E, 0x3B, 0x7F, 0x3B, 0x80, 0x3B, 0x81, 0x3B, 0x82, 0x3B - .byte 0x83, 0x3B, 0x84, 0x3B, 0x85, 0x3B, 0x86, 0x3B, 0x87, 0x3B, 0x9C, 0x39, 0x9D, 0x39, 0x9E, 0x39 - .byte 0x9F, 0x39, 0x9D, 0x3B, 0x9E, 0x3B, 0x9F, 0x3B, 0xA0, 0x3B, 0xA1, 0x3B, 0xA2, 0x3B, 0xA3, 0x3B - .byte 0xA4, 0x3B, 0xA5, 0x3B, 0xA6, 0x3B, 0xA7, 0x3B, 0xA8, 0x3B, 0xA9, 0x3B, 0xAA, 0x3B, 0xAB, 0x3B - .byte 0xAC, 0x3B, 0xAD, 0x3B, 0xAE, 0x3B, 0x95, 0x39, 0x96, 0x39, 0x97, 0x39, 0x98, 0x39, 0x99, 0x39 - .byte 0x9A, 0x39, 0x9B, 0x39, 0x92, 0x3B, 0x93, 0x3B, 0x94, 0x3B, 0x95, 0x3B, 0x96, 0x3B, 0x97, 0x3B - .byte 0x98, 0x3B, 0x99, 0x3B, 0x9A, 0x3B, 0x9B, 0x3B, 0x9C, 0x3B, 0xAF, 0x3B, 0xB0, 0x3B, 0xB1, 0x3B - .byte 0xB2, 0x3B, 0xB3, 0x3B, 0xB4, 0x3B, 0xB5, 0x3B, 0xB6, 0x3B, 0xB7, 0x3B, 0xB8, 0x3B, 0xB9, 0x3B - .byte 0xBA, 0x3B, 0xBB, 0x3B, 0xBC, 0x3B, 0xBD, 0x3B, 0xBE, 0x3B, 0xBF, 0x3B, 0xC0, 0x3B, 0xC1, 0x3B - .byte 0xC2, 0x3B, 0xC3, 0x3B, 0xC4, 0x3B, 0xC5, 0x3B, 0xC6, 0x3B, 0xC7, 0x3B, 0xC8, 0x3B, 0xC9, 0x3B - .byte 0xCA, 0x3B, 0xCB, 0x3B, 0xCC, 0x3B, 0xCD, 0x3B, 0xCE, 0x3B, 0xCF, 0x3B, 0xD0, 0x3B, 0xD1, 0x3B - .byte 0xD2, 0x3B, 0xD3, 0x3B, 0xD4, 0x3B, 0xD5, 0x3B, 0xD6, 0x3B, 0xD7, 0x3B, 0xD8, 0x3B, 0xD9, 0x3B - .byte 0xDA, 0x3B, 0xDB, 0x3B, 0xDC, 0x3B, 0xDD, 0x3B, 0xDE, 0x3B, 0xDF, 0x3B, 0xE0, 0x3B, 0xE1, 0x3B - .byte 0xE2, 0x3B, 0xE3, 0x3B, 0xE4, 0x3B, 0xE5, 0x3B, 0xE6, 0x3B, 0xE7, 0x3B, 0xE8, 0x3B, 0xE9, 0x3B - .byte 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39 - .byte 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39 - .byte 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39 - .byte 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39 - .byte 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39 - .byte 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39 - .byte 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39 - .byte 0xA0, 0x39, 0xA0, 0x39, 0xA0, 0x39, 0xA1, 0x3A, 0xA2, 0x3A, 0xA3, 0x3A, 0xA4, 0x3A, 0x0B, 0x39 - .byte 0x0C, 0x39, 0x0D, 0x39, 0x8A, 0x3A, 0x8B, 0x3A, 0x8C, 0x3A, 0x8D, 0x3A, 0x8E, 0x3A, 0x8F, 0x3A - .byte 0x90, 0x3A, 0x91, 0x3A, 0x92, 0x3A, 0x93, 0x3A, 0x94, 0x3A, 0x95, 0x3A, 0x96, 0x3A, 0x97, 0x3A - .byte 0x98, 0x3A, 0x99, 0x3A, 0x9A, 0x3A, 0x9B, 0x3A, 0x9C, 0x3A, 0x9D, 0x3A, 0x9E, 0x3A, 0x9F, 0x3A - .byte 0xA0, 0x3A, 0xAB, 0x3A, 0xAC, 0x3A, 0xAD, 0x3A, 0xAE, 0x3A, 0xAF, 0x3A, 0xB0, 0x3A, 0x65, 0x39 - .byte 0x65, 0x39, 0x65, 0x39, 0x65, 0x39, 0x65, 0x39, 0x65, 0x39, 0xA5, 0x3A, 0xA6, 0x3A, 0xA7, 0x3A - .byte 0xA8, 0x3A, 0xA9, 0x3A, 0xAA, 0x3A, 0x0F, 0x39, 0x10, 0x39, 0x11, 0x39, 0x12, 0x39, 0x13, 0x39 - .byte 0x14, 0x39, 0x15, 0x39, 0x16, 0x39, 0x17, 0x39, 0x18, 0x39, 0x19, 0x39, 0x1A, 0x39, 0x1B, 0x39 - .byte 0x5B, 0x3A, 0x5C, 0x3A, 0x5D, 0x3A, 0x5E, 0x3A, 0x5F, 0x3A, 0x60, 0x3A, 0x61, 0x3A, 0x62, 0x3A - .byte 0x63, 0x3A, 0x64, 0x3A, 0x65, 0x3A, 0x66, 0x3A, 0x67, 0x3A, 0x6F, 0x3A, 0x70, 0x3A, 0x71, 0x3A - .byte 0x72, 0x3A, 0x73, 0x3A, 0x1C, 0x39, 0x1D, 0x39, 0x1E, 0x39, 0x1F, 0x39, 0x20, 0x39, 0x21, 0x39 - .byte 0x22, 0x39, 0x23, 0x39, 0x24, 0x39, 0x25, 0x39, 0x26, 0x39, 0x27, 0x39, 0x28, 0x39, 0x68, 0x3A - .byte 0x69, 0x3A, 0x6A, 0x3A, 0x6B, 0x3A, 0x6C, 0x3A, 0x6D, 0x3A, 0x6E, 0x3A, 0x74, 0x3A, 0x75, 0x3A - .byte 0x76, 0x3A, 0x77, 0x3A, 0x78, 0x3A, 0x79, 0x3A, 0x7A, 0x3A, 0x7B, 0x3A, 0x7C, 0x3A, 0x7D, 0x3A - .byte 0x85, 0x3A, 0x86, 0x3A, 0x87, 0x3A, 0x88, 0x3A, 0x89, 0x3A, 0x29, 0x39, 0x2A, 0x39, 0x2B, 0x39 - .byte 0x2C, 0x39, 0x7E, 0x3A, 0x7F, 0x3A, 0x80, 0x3A, 0x81, 0x3A, 0x82, 0x3A, 0x83, 0x3A, 0x84, 0x3A - .byte 0xDD, 0x39, 0xDE, 0x39, 0xDF, 0x39, 0xE0, 0x39, 0xE1, 0x39, 0xE2, 0x39, 0xE3, 0x39, 0xE4, 0x39 - .byte 0xE5, 0x39, 0xE6, 0x39, 0xE7, 0x39, 0xE1, 0x38, 0xE2, 0x38, 0xE3, 0x38, 0xE4, 0x38, 0xE5, 0x38 - .byte 0xE6, 0x38, 0xE7, 0x38, 0xE8, 0x38, 0xE9, 0x38, 0xEA, 0x38, 0xEB, 0x38, 0xEC, 0x38, 0xED, 0x38 - .byte 0xEE, 0x38, 0xEF, 0x38, 0xF0, 0x38, 0xCC, 0x39, 0xCD, 0x39, 0xCE, 0x39, 0xCF, 0x39, 0xD0, 0x39 - .byte 0xD1, 0x39, 0xD2, 0x39, 0xD3, 0x39, 0xD4, 0x39, 0xD5, 0x39, 0xD6, 0x39, 0xD7, 0x39, 0xD8, 0x39 - .byte 0xD9, 0x39, 0xDA, 0x39, 0xDB, 0x39, 0xDC, 0x39, 0x10, 0x3A, 0x11, 0x3A, 0x12, 0x3A, 0x13, 0x3A - .byte 0x14, 0x3A, 0x15, 0x3A, 0x16, 0x3A, 0x17, 0x3A, 0x18, 0x3A, 0x19, 0x3A, 0x1A, 0x3A, 0x1B, 0x3A - .byte 0x1C, 0x3A, 0xF1, 0x38, 0xF2, 0x38, 0xF3, 0x38, 0xF4, 0x38, 0xF5, 0x38, 0xF6, 0x38, 0xF7, 0x38 - .byte 0xF8, 0x38, 0xF9, 0x38, 0xFA, 0x38, 0xFB, 0x38, 0xFC, 0x38, 0xFD, 0x38, 0xFE, 0x38, 0xE8, 0x39 - .byte 0xE9, 0x39, 0xEA, 0x39, 0xEB, 0x39, 0xEC, 0x39, 0xED, 0x39, 0xEE, 0x39, 0xEF, 0x39, 0xF0, 0x39 - .byte 0xF1, 0x39, 0xF2, 0x39, 0xF3, 0x39, 0xF4, 0x39, 0xF5, 0x39, 0xF6, 0x39, 0xF7, 0x39, 0xF8, 0x39 - .byte 0xF9, 0x39, 0xFA, 0x39, 0xFB, 0x39, 0xFC, 0x39, 0xFD, 0x39, 0xFE, 0x39, 0xFF, 0x39, 0x00, 0x3A - .byte 0x01, 0x3A, 0x02, 0x3A, 0x03, 0x3A, 0x04, 0x3A, 0x05, 0x3A, 0x06, 0x3A, 0x07, 0x3A, 0x08, 0x3A - .byte 0x09, 0x3A, 0x0A, 0x3A, 0x0B, 0x3A, 0x0C, 0x3A, 0x0D, 0x3A, 0x0E, 0x3A, 0x0F, 0x3A, 0x63, 0x39 - .byte 0x63, 0x39, 0x63, 0x39, 0x63, 0x39, 0x63, 0x39, 0x63, 0x39, 0x63, 0x39, 0x63, 0x39, 0x63, 0x39 - .byte 0x63, 0x39, 0x63, 0x39, 0x63, 0x39, 0x63, 0x39, 0x63, 0x39, 0x63, 0x39, 0x63, 0x39, 0x63, 0x39 - .byte 0x63, 0x39, 0x1D, 0x3A, 0x1E, 0x3A, 0x1F, 0x3A, 0x20, 0x3A, 0x21, 0x3A, 0x22, 0x3A, 0x23, 0x3A - .byte 0x24, 0x3A, 0x25, 0x3A, 0x26, 0x3A, 0x27, 0x3A, 0x28, 0x3A, 0x29, 0x3A, 0x2A, 0x3A, 0x2B, 0x3A - .byte 0x2C, 0x3A, 0x2D, 0x3A, 0x2E, 0x3A, 0x64, 0x39, 0x64, 0x39, 0x64, 0x39, 0x64, 0x39, 0x64, 0x39 - .byte 0x64, 0x39, 0x64, 0x39, 0x64, 0x39, 0x64, 0x39, 0x64, 0x39, 0x64, 0x39, 0x64, 0x39, 0x64, 0x39 - .byte 0x64, 0x39, 0x64, 0x39, 0x64, 0x39, 0x64, 0x39, 0x64, 0x39, 0x64, 0x39, 0x64, 0x39, 0x64, 0x39 - .byte 0x64, 0x39, 0x64, 0x39, 0x64, 0x39, 0x64, 0x39, 0x64, 0x39, 0x64, 0x39, 0x64, 0x39, 0x64, 0x39 - .byte 0x64, 0x39, 0x64, 0x39, 0x64, 0x39, 0x2F, 0x3A, 0x30, 0x3A, 0x31, 0x3A, 0x32, 0x3A, 0x33, 0x3A - .byte 0x34, 0x3A, 0x35, 0x3A, 0x36, 0x3A, 0x37, 0x3A, 0x38, 0x3A, 0x39, 0x3A, 0x3A, 0x3A, 0x3B, 0x3A - .byte 0x3C, 0x3A, 0x3D, 0x3A, 0x3E, 0x3A, 0x3F, 0x3A, 0x40, 0x3A, 0x41, 0x3A, 0x42, 0x3A, 0x43, 0x3A - .byte 0x44, 0x3A, 0x45, 0x3A, 0x46, 0x3A, 0x47, 0x3A, 0x48, 0x3A, 0x49, 0x3A, 0x4A, 0x3A, 0x4B, 0x3A - .byte 0x4C, 0x3A, 0x4D, 0x3A, 0x4E, 0x3A, 0xFF, 0x38, 0x00, 0x39, 0x01, 0x39, 0x02, 0x39, 0x03, 0x39 - .byte 0x04, 0x39, 0x05, 0x39, 0x06, 0x39, 0x07, 0x39, 0x08, 0x39, 0x09, 0x39, 0x0A, 0x39, 0x4F, 0x3A - .byte 0x50, 0x3A, 0x51, 0x3A, 0x52, 0x3A, 0x53, 0x3A, 0x54, 0x3A, 0x55, 0x3A, 0x56, 0x3A, 0x57, 0x3A - .byte 0x58, 0x3A, 0x59, 0x3A, 0x5A, 0x3A, 0x18, 0x3B, 0x19, 0x3B, 0x1A, 0x3B, 0x1B, 0x3B, 0x1C, 0x3B - .byte 0x3B, 0x39, 0x3C, 0x39, 0x10, 0x3B, 0x11, 0x3B, 0x12, 0x3B, 0x13, 0x3B, 0x14, 0x3B, 0x15, 0x3B - .byte 0x16, 0x3B, 0x17, 0x3B, 0x70, 0x39, 0x70, 0x39, 0x70, 0x39, 0x70, 0x39, 0x70, 0x39, 0x54, 0x3B - .byte 0x55, 0x3B, 0x56, 0x3B, 0x57, 0x3B, 0x58, 0x3B, 0x70, 0x39, 0x70, 0x39, 0x70, 0x39, 0x70, 0x39 - .byte 0x70, 0x39, 0x70, 0x39, 0x70, 0x39, 0x70, 0x39, 0x70, 0x39, 0x70, 0x39, 0x70, 0x39, 0x70, 0x39 - .byte 0x70, 0x39, 0x70, 0x39, 0x70, 0x39, 0x70, 0x39, 0x70, 0x39, 0x70, 0x39, 0x70, 0x39, 0x70, 0x39 - .byte 0x70, 0x39, 0x70, 0x39, 0x70, 0x39, 0x70, 0x39, 0x70, 0x39, 0x70, 0x39, 0x70, 0x39, 0x70, 0x39 - .byte 0x59, 0x3B, 0x5A, 0x3B, 0x5B, 0x3B, 0x5C, 0x3B, 0x5D, 0x3B, 0x5E, 0x3B, 0x5F, 0x3B, 0x60, 0x3B - .byte 0x61, 0x3B, 0x62, 0x3B, 0x63, 0x3B, 0x64, 0x3B, 0x65, 0x3B, 0x66, 0x3B, 0x67, 0x3B, 0x68, 0x3B - .byte 0x69, 0x3B, 0x6A, 0x3B, 0x6B, 0x3B, 0x6C, 0x3B, 0x6D, 0x3B, 0x6E, 0x3B, 0x6F, 0x3B, 0x70, 0x3B - .byte 0x71, 0x3B, 0x72, 0x3B, 0x73, 0x3B, 0x74, 0x3B, 0x0E, 0x3B, 0x0F, 0x3B, 0x52, 0x3B, 0x53, 0x3B - .byte 0x06, 0x3B, 0x07, 0x3B, 0x08, 0x3B, 0x09, 0x3B, 0x0A, 0x3B, 0x0B, 0x3B, 0x0C, 0x3B, 0x0D, 0x3B - .byte 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39 - .byte 0x39, 0x39, 0x3A, 0x39, 0xF8, 0x3A, 0xF9, 0x3A, 0xFA, 0x3A, 0xFB, 0x3A, 0xFC, 0x3A, 0xFD, 0x3A - .byte 0xFE, 0x3A, 0xFF, 0x3A, 0x00, 0x3B, 0x01, 0x3B, 0x02, 0x3B, 0x03, 0x3B, 0x04, 0x3B, 0x05, 0x3B - .byte 0xA1, 0x39, 0xA2, 0x39, 0xA3, 0x39, 0xA4, 0x39, 0xA5, 0x39, 0xA6, 0x39, 0xA7, 0x39, 0xA8, 0x39 - .byte 0xA9, 0x39, 0xAA, 0x39, 0xAB, 0x39, 0xAC, 0x39, 0xAD, 0x39, 0xAE, 0x39, 0xAF, 0x39, 0xB0, 0x39 - .byte 0xEB, 0x3B, 0xEC, 0x3B, 0xED, 0x3B, 0xEE, 0x3B, 0xEF, 0x3B, 0xF0, 0x3B, 0xF1, 0x3B, 0xF2, 0x3B - .byte 0xF3, 0x3B, 0xF4, 0x3B, 0xF5, 0x3B, 0xF6, 0x3B, 0xF7, 0x3B, 0xF8, 0x3B, 0xF9, 0x3B, 0xFA, 0x3B - .byte 0xFB, 0x3B, 0xFC, 0x3B, 0xFD, 0x3B, 0xFE, 0x3B, 0xFF, 0x3B, 0x00, 0x3C, 0x01, 0x3C, 0x02, 0x3C - .byte 0x03, 0x3C, 0x04, 0x3C, 0x05, 0x3C, 0x06, 0x3C, 0xB1, 0x39, 0xB2, 0x39, 0xB3, 0x39, 0xB4, 0x39 - .byte 0xB5, 0x39, 0xB6, 0x39, 0xB7, 0x39, 0xB8, 0x39, 0xB9, 0x39, 0xBA, 0x39, 0xBB, 0x39, 0xBC, 0x39 - .byte 0xBD, 0x39, 0xBE, 0x39, 0xBF, 0x39, 0xC0, 0x39, 0xC1, 0x39, 0xC2, 0x39, 0xC3, 0x39, 0xC4, 0x39 - .byte 0xC5, 0x39, 0xC6, 0x39, 0xC7, 0x39, 0xC8, 0x39, 0xC9, 0x39, 0xCA, 0x39, 0xCB, 0x39, 0x07, 0x3C - .byte 0x08, 0x3C, 0x09, 0x3C, 0x0A, 0x3C, 0x0B, 0x3C, 0x0C, 0x3C, 0x0D, 0x3C, 0x0E, 0x3C, 0x0F, 0x3C - .byte 0x10, 0x3C, 0x11, 0x3C, 0x12, 0x3C, 0x13, 0x3C, 0x14, 0x3C, 0x15, 0x3C, 0x16, 0x3C, 0x17, 0x3C - .byte 0x18, 0x3C, 0x19, 0x3C, 0x1A, 0x3C, 0x1B, 0x3C, 0x1C, 0x3C, 0x1D, 0x3C, 0xBE, 0x3A, 0xBF, 0x3A - .byte 0xC0, 0x3A, 0xC1, 0x3A, 0xC2, 0x3A, 0xC3, 0x3A, 0xC4, 0x3A, 0xC5, 0x3A, 0xC6, 0x3A, 0xC7, 0x3A - .byte 0xC8, 0x3A, 0xC9, 0x3A, 0xCA, 0x3A, 0xCB, 0x3A, 0xCC, 0x3A, 0xCD, 0x3A, 0xCE, 0x3A, 0x61, 0x39 - .byte 0xB1, 0x3A, 0xB2, 0x3A, 0xB3, 0x3A, 0xB4, 0x3A, 0xB5, 0x3A, 0xB6, 0x3A, 0xB7, 0x3A, 0xB8, 0x3A - .byte 0xB9, 0x3A, 0xBA, 0x3A, 0xBB, 0x3A, 0xBC, 0x3A, 0xBD, 0x3A, 0xD9, 0x3A, 0xDA, 0x3A, 0xDB, 0x3A - .byte 0xDC, 0x3A, 0xDD, 0x3A, 0x2D, 0x39, 0x2E, 0x39, 0x2F, 0x39, 0x30, 0x39, 0xCF, 0x3A, 0xD0, 0x3A - .byte 0xD1, 0x3A, 0xD2, 0x3A, 0xD3, 0x3A, 0xD4, 0x3A, 0xD5, 0x3A, 0xD6, 0x3A, 0xD7, 0x3A, 0xD8, 0x3A - .byte 0xE1, 0x3A, 0xE2, 0x3A, 0x61, 0x39, 0xDE, 0x3A, 0xDF, 0x3A, 0xE0, 0x3A, 0x61, 0x39, 0x44, 0x3B - .byte 0xEF, 0x3A, 0xF0, 0x3A, 0xF1, 0x3A, 0xF2, 0x3A, 0xF3, 0x3A, 0xF4, 0x3A, 0xF5, 0x3A, 0xF6, 0x3A - .byte 0xF7, 0x3A, 0x62, 0x39, 0xE3, 0x3A, 0xE4, 0x3A, 0xE5, 0x3A, 0xE6, 0x3A, 0xE7, 0x3A, 0xE8, 0x3A - .byte 0xE9, 0x3A, 0xEA, 0x3A, 0xEB, 0x3A, 0xEC, 0x3A, 0xED, 0x3A, 0xEE, 0x3A, 0x66, 0x39, 0x67, 0x39 - .byte 0x68, 0x39, 0x69, 0x39, 0x6A, 0x39, 0x6B, 0x39, 0x6C, 0x39, 0x6F, 0x39, 0x48, 0x3B, 0x49, 0x3B - .byte 0x4A, 0x3B, 0x4B, 0x3B, 0x4C, 0x3B, 0x4D, 0x3B, 0x4E, 0x3B, 0x51, 0x3B, 0x72, 0x6F, 0x6D, 0x30 - .byte 0x3A, 0x52, 0x45, 0x53, 0x43, 0x55, 0x45, 0x2F, 0x72, 0x65, 0x73, 0x63, 0x75, 0x65, 0x2E, 0x62 - .byte 0x69, 0x6E, 0x00, 0x00, 0x5B, 0x43, 0x4C, 0x55, 0x4D, 0x5F, 0x53, 0x45, 0x54, 0x3A, 0x32, 0x31 - .byte 0x5D, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x4C, 0x55, 0x4D, 0x5F, 0x4F, 0x46, 0x46, 0x53, 0x45, 0x54 - .byte 0x3A, 0x30, 0x5D, 0x00, 0x5B, 0x43, 0x4C, 0x55, 0x4D, 0x5F, 0x53, 0x45, 0x54, 0x3A, 0x31, 0x30 - .byte 0x5D, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x4C, 0x55, 0x4D, 0x5F, 0x53, 0x45 - .byte 0x54, 0x3A, 0x31, 0x38, 0x37, 0x5D, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A, 0x58, 0x5D, 0x25, 0x73 - .byte 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x43, 0x53, 0x3A, 0x4E, 0x5D, 0x25, 0x73 - .byte 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x42, 0x41, 0x52, 0x5D, 0x00, 0x00, 0x00 - .byte 0x5F, 0x52, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x41, 0x6E, 0x69, 0x6D, 0x65, 0x46, 0x69, 0x6C - .byte 0x65, 0x42, 0x75, 0x66, 0x66, 0x20, 0x3A, 0x20, 0x25, 0x64, 0x2C, 0x20, 0x25, 0x64, 0x00, 0x00 - .byte 0x5F, 0x52, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x41, 0x6E, 0x69, 0x6D, 0x65, 0x46, 0x69, 0x6C - .byte 0x65, 0x42, 0x75, 0x66, 0x66, 0x20, 0x3A, 0x20, 0x25, 0x73, 0x00, 0x00, 0x44, 0x30, 0x30, 0x50 - .byte 0x30, 0x31, 0x00, 0x00, 0x44, 0x30, 0x30, 0x50, 0x30, 0x32, 0x00, 0x00, 0x56, 0x30, 0x30, 0x50 - .byte 0x30, 0x32, 0x00, 0x00, 0x56, 0x30, 0x30, 0x50, 0x30, 0x33, 0x00, 0x00, 0x54, 0x30, 0x30, 0x50 - .byte 0x30, 0x31, 0x00, 0x00, 0x54, 0x30, 0x30, 0x50, 0x30, 0x33, 0x00, 0x00, 0x54, 0x30, 0x30, 0x50 - .byte 0x30, 0x32, 0x00, 0x00, 0x56, 0x30, 0x30, 0x50, 0x30, 0x31, 0x00, 0x00, 0x56, 0x33, 0x38, 0x50 - .byte 0x30, 0x39, 0x41, 0x00, 0x56, 0x32, 0x34, 0x50, 0x30, 0x32, 0x41, 0x00, 0x56, 0x33, 0x38, 0x50 - .byte 0x30, 0x36, 0x41, 0x00, 0x56, 0x33, 0x39, 0x50, 0x30, 0x32, 0x41, 0x00, 0x56, 0x32, 0x36, 0x50 - .byte 0x31, 0x30, 0x41, 0x00, 0x56, 0x33, 0x38, 0x50, 0x30, 0x33, 0x41, 0x00, 0x56, 0x33, 0x38, 0x50 - .byte 0x31, 0x30, 0x41, 0x00, 0x56, 0x33, 0x38, 0x50, 0x31, 0x31, 0x41, 0x00, 0x56, 0x33, 0x37, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x56, 0x33, 0x38, 0x50, 0x30, 0x36, 0x44, 0x00, 0x56, 0x33, 0x39, 0x50 - .byte 0x30, 0x33, 0x41, 0x00, 0x56, 0x33, 0x34, 0x50, 0x30, 0x31, 0x41, 0x00, 0x56, 0x33, 0x33, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x56, 0x33, 0x38, 0x50, 0x30, 0x36, 0x43, 0x00, 0x56, 0x30, 0x33, 0x50 - .byte 0x30, 0x35, 0x43, 0x00, 0x56, 0x33, 0x31, 0x50, 0x30, 0x31, 0x41, 0x00, 0x56, 0x33, 0x38, 0x50 - .byte 0x30, 0x35, 0x41, 0x00, 0x56, 0x32, 0x36, 0x50, 0x31, 0x31, 0x41, 0x00, 0x56, 0x30, 0x31, 0x50 - .byte 0x30, 0x33, 0x43, 0x00, 0x48, 0x30, 0x31, 0x50, 0x39, 0x39, 0x43, 0x00, 0x56, 0x32, 0x36, 0x50 - .byte 0x30, 0x37, 0x41, 0x00, 0x56, 0x32, 0x36, 0x50, 0x30, 0x36, 0x41, 0x00, 0x56, 0x33, 0x37, 0x50 - .byte 0x30, 0x32, 0x41, 0x00, 0x56, 0x32, 0x36, 0x50, 0x30, 0x31, 0x41, 0x00, 0x56, 0x33, 0x37, 0x50 - .byte 0x30, 0x33, 0x41, 0x00, 0x56, 0x33, 0x38, 0x50, 0x30, 0x37, 0x41, 0x00, 0x56, 0x32, 0x36, 0x50 - .byte 0x30, 0x32, 0x41, 0x00, 0x56, 0x32, 0x35, 0x50, 0x30, 0x34, 0x41, 0x00, 0x56, 0x32, 0x35, 0x50 - .byte 0x30, 0x33, 0x41, 0x00, 0x56, 0x32, 0x35, 0x50, 0x30, 0x32, 0x41, 0x00, 0x56, 0x32, 0x35, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x56, 0x32, 0x34, 0x50, 0x30, 0x39, 0x41, 0x00, 0x56, 0x32, 0x34, 0x50 - .byte 0x30, 0x38, 0x41, 0x00, 0x56, 0x32, 0x34, 0x50, 0x30, 0x37, 0x41, 0x00, 0x56, 0x32, 0x34, 0x50 - .byte 0x30, 0x36, 0x41, 0x00, 0x56, 0x32, 0x34, 0x50, 0x30, 0x35, 0x41, 0x00, 0x56, 0x33, 0x32, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x56, 0x32, 0x34, 0x50, 0x30, 0x33, 0x41, 0x00, 0x50, 0x30, 0x39, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x56, 0x33, 0x31, 0x50, 0x30, 0x32, 0x41, 0x00, 0x56, 0x32, 0x33, 0x50 - .byte 0x30, 0x35, 0x41, 0x00, 0x56, 0x32, 0x33, 0x50, 0x30, 0x34, 0x41, 0x00, 0x56, 0x32, 0x33, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x56, 0x32, 0x38, 0x50, 0x30, 0x31, 0x41, 0x00, 0x56, 0x32, 0x32, 0x50 - .byte 0x30, 0x32, 0x41, 0x00, 0x56, 0x32, 0x32, 0x50, 0x30, 0x31, 0x41, 0x00, 0x47, 0x30, 0x31, 0x50 - .byte 0x30, 0x35, 0x43, 0x00, 0x56, 0x33, 0x38, 0x50, 0x30, 0x34, 0x41, 0x00, 0x56, 0x32, 0x31, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x54, 0x30, 0x30, 0x50, 0x30, 0x34, 0x41, 0x00, 0x56, 0x31, 0x39, 0x50 - .byte 0x30, 0x35, 0x41, 0x00, 0x56, 0x31, 0x39, 0x50, 0x30, 0x34, 0x41, 0x00, 0x56, 0x31, 0x39, 0x50 - .byte 0x30, 0x33, 0x41, 0x00, 0x56, 0x31, 0x39, 0x50, 0x30, 0x32, 0x41, 0x00, 0x56, 0x31, 0x36, 0x50 - .byte 0x30, 0x32, 0x41, 0x00, 0x56, 0x32, 0x36, 0x50, 0x30, 0x33, 0x41, 0x00, 0x56, 0x33, 0x38, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x56, 0x31, 0x37, 0x50, 0x30, 0x31, 0x41, 0x00, 0x53, 0x31, 0x35, 0x50 - .byte 0x30, 0x33, 0x41, 0x00, 0x56, 0x31, 0x35, 0x50, 0x30, 0x33, 0x41, 0x00, 0x56, 0x31, 0x35, 0x50 - .byte 0x30, 0x32, 0x41, 0x00, 0x56, 0x31, 0x35, 0x50, 0x30, 0x31, 0x41, 0x00, 0x56, 0x31, 0x34, 0x50 - .byte 0x30, 0x34, 0x41, 0x00, 0x56, 0x31, 0x34, 0x50, 0x30, 0x33, 0x41, 0x00, 0x56, 0x31, 0x34, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x56, 0x31, 0x33, 0x50, 0x30, 0x31, 0x41, 0x00, 0x56, 0x31, 0x32, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x56, 0x31, 0x30, 0x50, 0x30, 0x33, 0x43, 0x00, 0x56, 0x31, 0x30, 0x50 - .byte 0x30, 0x31, 0x43, 0x00, 0x56, 0x30, 0x39, 0x50, 0x30, 0x34, 0x41, 0x00, 0x56, 0x30, 0x39, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x56, 0x30, 0x35, 0x50, 0x30, 0x35, 0x41, 0x00, 0x56, 0x30, 0x35, 0x50 - .byte 0x30, 0x33, 0x41, 0x00, 0x56, 0x30, 0x35, 0x50, 0x30, 0x32, 0x41, 0x00, 0x56, 0x30, 0x35, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x56, 0x30, 0x34, 0x50, 0x30, 0x33, 0x41, 0x00, 0x56, 0x30, 0x34, 0x50 - .byte 0x30, 0x32, 0x41, 0x00, 0x56, 0x30, 0x34, 0x50, 0x30, 0x31, 0x41, 0x00, 0x56, 0x30, 0x33, 0x50 - .byte 0x31, 0x33, 0x41, 0x00, 0x56, 0x30, 0x33, 0x50, 0x31, 0x32, 0x41, 0x00, 0x56, 0x30, 0x33, 0x50 - .byte 0x31, 0x31, 0x41, 0x00, 0x56, 0x30, 0x33, 0x50, 0x30, 0x39, 0x41, 0x00, 0x56, 0x32, 0x34, 0x50 - .byte 0x30, 0x34, 0x41, 0x00, 0x56, 0x30, 0x33, 0x50, 0x30, 0x37, 0x41, 0x00, 0x56, 0x30, 0x33, 0x50 - .byte 0x30, 0x36, 0x42, 0x00, 0x56, 0x30, 0x33, 0x50, 0x30, 0x36, 0x41, 0x00, 0x44, 0x32, 0x31, 0x50 - .byte 0x32, 0x31, 0x41, 0x00, 0x56, 0x30, 0x33, 0x50, 0x30, 0x34, 0x41, 0x00, 0x56, 0x30, 0x33, 0x50 - .byte 0x30, 0x33, 0x41, 0x00, 0x56, 0x32, 0x34, 0x50, 0x30, 0x31, 0x41, 0x00, 0x56, 0x30, 0x33, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x56, 0x30, 0x32, 0x50, 0x30, 0x38, 0x41, 0x00, 0x56, 0x30, 0x32, 0x50 - .byte 0x30, 0x37, 0x41, 0x00, 0x56, 0x30, 0x32, 0x50, 0x30, 0x36, 0x41, 0x00, 0x56, 0x30, 0x32, 0x50 - .byte 0x30, 0x33, 0x41, 0x00, 0x56, 0x30, 0x32, 0x50, 0x30, 0x32, 0x41, 0x00, 0x56, 0x32, 0x32, 0x50 - .byte 0x30, 0x33, 0x41, 0x00, 0x56, 0x30, 0x31, 0x50, 0x30, 0x38, 0x42, 0x00, 0x56, 0x30, 0x31, 0x50 - .byte 0x30, 0x37, 0x42, 0x00, 0x56, 0x30, 0x31, 0x50, 0x30, 0x36, 0x42, 0x00, 0x56, 0x30, 0x31, 0x50 - .byte 0x30, 0x35, 0x42, 0x00, 0x56, 0x30, 0x31, 0x50, 0x30, 0x34, 0x42, 0x00, 0x47, 0x30, 0x31, 0x50 - .byte 0x30, 0x35, 0x41, 0x00, 0x56, 0x32, 0x31, 0x50, 0x30, 0x32, 0x42, 0x00, 0x56, 0x32, 0x31, 0x50 - .byte 0x30, 0x32, 0x41, 0x00, 0x56, 0x30, 0x31, 0x50, 0x30, 0x32, 0x41, 0x00, 0x56, 0x30, 0x31, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x56, 0x32, 0x36, 0x50, 0x30, 0x39, 0x41, 0x00, 0x56, 0x31, 0x39, 0x50 - .byte 0x30, 0x36, 0x41, 0x00, 0x54, 0x30, 0x31, 0x50, 0x30, 0x33, 0x41, 0x00, 0x54, 0x30, 0x31, 0x50 - .byte 0x30, 0x32, 0x41, 0x00, 0x54, 0x30, 0x31, 0x50, 0x30, 0x31, 0x41, 0x00, 0x53, 0x39, 0x39, 0x50 - .byte 0x30, 0x33, 0x41, 0x00, 0x53, 0x39, 0x39, 0x50, 0x30, 0x32, 0x41, 0x00, 0x53, 0x39, 0x39, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x53, 0x32, 0x31, 0x50, 0x30, 0x31, 0x41, 0x00, 0x53, 0x32, 0x30, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x53, 0x31, 0x37, 0x50, 0x30, 0x32, 0x41, 0x00, 0x56, 0x31, 0x37, 0x50 - .byte 0x30, 0x32, 0x41, 0x00, 0x56, 0x32, 0x36, 0x50, 0x30, 0x34, 0x41, 0x00, 0x53, 0x31, 0x35, 0x50 - .byte 0x30, 0x34, 0x41, 0x00, 0x53, 0x31, 0x35, 0x50, 0x30, 0x35, 0x41, 0x00, 0x56, 0x31, 0x37, 0x50 - .byte 0x30, 0x33, 0x41, 0x00, 0x53, 0x31, 0x35, 0x50, 0x30, 0x32, 0x41, 0x00, 0x53, 0x31, 0x35, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x53, 0x31, 0x34, 0x50, 0x30, 0x31, 0x41, 0x00, 0x53, 0x31, 0x33, 0x50 - .byte 0x30, 0x39, 0x41, 0x00, 0x53, 0x31, 0x33, 0x50, 0x30, 0x38, 0x41, 0x00, 0x53, 0x31, 0x33, 0x50 - .byte 0x30, 0x37, 0x41, 0x00, 0x53, 0x31, 0x33, 0x50, 0x30, 0x36, 0x41, 0x00, 0x53, 0x31, 0x33, 0x50 - .byte 0x30, 0x35, 0x41, 0x00, 0x53, 0x31, 0x33, 0x50, 0x30, 0x34, 0x42, 0x00, 0x53, 0x31, 0x33, 0x50 - .byte 0x30, 0x34, 0x41, 0x00, 0x53, 0x31, 0x33, 0x50, 0x30, 0x33, 0x41, 0x00, 0x53, 0x31, 0x33, 0x50 - .byte 0x30, 0x32, 0x41, 0x00, 0x53, 0x31, 0x33, 0x50, 0x30, 0x31, 0x42, 0x00, 0x53, 0x31, 0x33, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x53, 0x31, 0x31, 0x50, 0x30, 0x32, 0x43, 0x00, 0x53, 0x31, 0x31, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x53, 0x30, 0x38, 0x50, 0x30, 0x31, 0x41, 0x00, 0x53, 0x30, 0x37, 0x50 - .byte 0x30, 0x32, 0x41, 0x00, 0x53, 0x30, 0x37, 0x50, 0x30, 0x31, 0x41, 0x00, 0x53, 0x30, 0x36, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x53, 0x30, 0x35, 0x50, 0x30, 0x34, 0x41, 0x00, 0x53, 0x30, 0x35, 0x50 - .byte 0x30, 0x33, 0x41, 0x00, 0x53, 0x30, 0x35, 0x50, 0x30, 0x32, 0x43, 0x00, 0x53, 0x30, 0x35, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x53, 0x30, 0x34, 0x50, 0x30, 0x31, 0x41, 0x00, 0x53, 0x30, 0x33, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x53, 0x30, 0x32, 0x50, 0x30, 0x31, 0x41, 0x00, 0x53, 0x30, 0x31, 0x50 - .byte 0x30, 0x34, 0x41, 0x00, 0x53, 0x30, 0x31, 0x50, 0x30, 0x33, 0x41, 0x00, 0x53, 0x30, 0x31, 0x50 - .byte 0x30, 0x32, 0x41, 0x00, 0x53, 0x30, 0x31, 0x50, 0x30, 0x31, 0x42, 0x00, 0x53, 0x30, 0x31, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x50, 0x32, 0x38, 0x50, 0x30, 0x31, 0x41, 0x00, 0x50, 0x32, 0x37, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x50, 0x32, 0x36, 0x50, 0x30, 0x31, 0x41, 0x00, 0x50, 0x32, 0x35, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x50, 0x32, 0x34, 0x50, 0x30, 0x31, 0x41, 0x00, 0x50, 0x32, 0x33, 0x50 - .byte 0x30, 0x32, 0x41, 0x00, 0x50, 0x32, 0x33, 0x50, 0x30, 0x31, 0x41, 0x00, 0x50, 0x32, 0x32, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x50, 0x32, 0x31, 0x50, 0x30, 0x32, 0x41, 0x00, 0x50, 0x32, 0x30, 0x50 - .byte 0x30, 0x33, 0x41, 0x00, 0x50, 0x32, 0x30, 0x50, 0x30, 0x32, 0x41, 0x00, 0x50, 0x32, 0x30, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x50, 0x31, 0x39, 0x50, 0x30, 0x32, 0x41, 0x00, 0x50, 0x31, 0x39, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x50, 0x31, 0x38, 0x50, 0x30, 0x31, 0x41, 0x00, 0x50, 0x31, 0x37, 0x50 - .byte 0x30, 0x32, 0x43, 0x00, 0x50, 0x31, 0x37, 0x50, 0x30, 0x32, 0x41, 0x00, 0x50, 0x31, 0x37, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x50, 0x31, 0x36, 0x50, 0x30, 0x31, 0x41, 0x00, 0x50, 0x31, 0x35, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x56, 0x30, 0x33, 0x50, 0x30, 0x38, 0x41, 0x00, 0x50, 0x31, 0x34, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x50, 0x31, 0x33, 0x50, 0x30, 0x31, 0x41, 0x00, 0x50, 0x31, 0x32, 0x50 - .byte 0x30, 0x32, 0x41, 0x00, 0x50, 0x31, 0x32, 0x50, 0x30, 0x31, 0x41, 0x00, 0x50, 0x31, 0x31, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x50, 0x31, 0x30, 0x50, 0x30, 0x31, 0x41, 0x00, 0x44, 0x32, 0x30, 0x50 - .byte 0x31, 0x31, 0x41, 0x00, 0x50, 0x30, 0x38, 0x50, 0x30, 0x31, 0x41, 0x00, 0x50, 0x30, 0x37, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x50, 0x30, 0x36, 0x50, 0x30, 0x31, 0x41, 0x00, 0x50, 0x30, 0x35, 0x50 - .byte 0x30, 0x34, 0x41, 0x00, 0x50, 0x30, 0x35, 0x50, 0x30, 0x33, 0x41, 0x00, 0x56, 0x30, 0x33, 0x50 - .byte 0x30, 0x32, 0x41, 0x00, 0x50, 0x30, 0x35, 0x50, 0x30, 0x32, 0x41, 0x00, 0x50, 0x30, 0x35, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x50, 0x30, 0x34, 0x50, 0x30, 0x31, 0x43, 0x00, 0x50, 0x30, 0x33, 0x50 - .byte 0x30, 0x32, 0x41, 0x00, 0x50, 0x30, 0x33, 0x50, 0x30, 0x31, 0x41, 0x00, 0x50, 0x30, 0x32, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x50, 0x30, 0x31, 0x50, 0x30, 0x34, 0x41, 0x00, 0x50, 0x30, 0x31, 0x50 - .byte 0x30, 0x33, 0x41, 0x00, 0x50, 0x30, 0x31, 0x50, 0x30, 0x32, 0x41, 0x00, 0x50, 0x30, 0x31, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x48, 0x30, 0x32, 0x50, 0x39, 0x39, 0x43, 0x00, 0x48, 0x30, 0x32, 0x50 - .byte 0x39, 0x39, 0x41, 0x00, 0x48, 0x30, 0x31, 0x50, 0x39, 0x39, 0x45, 0x00, 0x48, 0x30, 0x31, 0x50 - .byte 0x39, 0x39, 0x44, 0x00, 0x56, 0x30, 0x32, 0x50, 0x30, 0x31, 0x41, 0x00, 0x48, 0x30, 0x31, 0x50 - .byte 0x39, 0x39, 0x41, 0x00, 0x47, 0x30, 0x31, 0x50, 0x31, 0x30, 0x43, 0x00, 0x47, 0x30, 0x31, 0x50 - .byte 0x31, 0x30, 0x41, 0x00, 0x47, 0x30, 0x31, 0x50, 0x30, 0x39, 0x43, 0x00, 0x47, 0x30, 0x31, 0x50 - .byte 0x30, 0x39, 0x41, 0x00, 0x47, 0x30, 0x31, 0x50, 0x30, 0x38, 0x41, 0x00, 0x47, 0x30, 0x31, 0x50 - .byte 0x30, 0x37, 0x43, 0x00, 0x47, 0x30, 0x31, 0x50, 0x30, 0x37, 0x41, 0x00, 0x47, 0x30, 0x31, 0x50 - .byte 0x30, 0x36, 0x42, 0x00, 0x47, 0x30, 0x31, 0x50, 0x30, 0x36, 0x41, 0x00, 0x44, 0x37, 0x31, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x53, 0x31, 0x35, 0x50, 0x30, 0x35, 0x42, 0x00, 0x56, 0x30, 0x31, 0x50 - .byte 0x30, 0x33, 0x42, 0x00, 0x47, 0x30, 0x31, 0x50, 0x30, 0x34, 0x43, 0x00, 0x56, 0x30, 0x31, 0x50 - .byte 0x30, 0x33, 0x41, 0x00, 0x47, 0x30, 0x31, 0x50, 0x30, 0x34, 0x41, 0x00, 0x47, 0x30, 0x31, 0x50 - .byte 0x30, 0x33, 0x41, 0x00, 0x47, 0x30, 0x31, 0x50, 0x30, 0x32, 0x41, 0x00, 0x44, 0x37, 0x32, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x47, 0x30, 0x31, 0x50, 0x30, 0x31, 0x43, 0x00, 0x54, 0x30, 0x31, 0x50 - .byte 0x30, 0x34, 0x41, 0x00, 0x47, 0x30, 0x31, 0x50, 0x30, 0x31, 0x42, 0x00, 0x44, 0x37, 0x39, 0x50 - .byte 0x31, 0x31, 0x41, 0x00, 0x47, 0x30, 0x31, 0x50, 0x30, 0x31, 0x41, 0x00, 0x44, 0x39, 0x35, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x39, 0x34, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x39, 0x33, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x39, 0x32, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x39, 0x31, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x39, 0x30, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x38, 0x39, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x38, 0x38, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x38, 0x37, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x38, 0x36, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x38, 0x35, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x38, 0x34, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x38, 0x33, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x38, 0x32, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x38, 0x31, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x38, 0x30, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x37, 0x39, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x37, 0x39, 0x50, 0x32, 0x31, 0x41, 0x00, 0x53, 0x31, 0x37, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x56, 0x31, 0x39, 0x50, 0x30, 0x31, 0x41, 0x00, 0x56, 0x32, 0x36, 0x50 - .byte 0x30, 0x35, 0x41, 0x00, 0x44, 0x37, 0x30, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x36, 0x39, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x36, 0x38, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x36, 0x37, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x36, 0x36, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x36, 0x35, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x37, 0x33, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x37, 0x33, 0x50 - .byte 0x33, 0x31, 0x41, 0x00, 0x44, 0x37, 0x33, 0x50, 0x32, 0x39, 0x41, 0x00, 0x44, 0x37, 0x33, 0x50 - .byte 0x32, 0x38, 0x41, 0x00, 0x44, 0x37, 0x33, 0x50, 0x32, 0x37, 0x41, 0x00, 0x44, 0x37, 0x33, 0x50 - .byte 0x32, 0x36, 0x41, 0x00, 0x44, 0x37, 0x33, 0x50, 0x32, 0x35, 0x41, 0x00, 0x44, 0x37, 0x33, 0x50 - .byte 0x32, 0x34, 0x41, 0x00, 0x44, 0x37, 0x33, 0x50, 0x32, 0x33, 0x41, 0x00, 0x44, 0x37, 0x33, 0x50 - .byte 0x32, 0x32, 0x41, 0x00, 0x44, 0x37, 0x33, 0x50, 0x32, 0x31, 0x41, 0x00, 0x44, 0x37, 0x33, 0x50 - .byte 0x31, 0x31, 0x41, 0x00, 0x44, 0x36, 0x33, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x36, 0x32, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x36, 0x31, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x36, 0x30, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x35, 0x39, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x35, 0x38, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x35, 0x37, 0x50, 0x34, 0x34, 0x41, 0x00, 0x44, 0x35, 0x37, 0x50 - .byte 0x34, 0x33, 0x41, 0x00, 0x44, 0x35, 0x37, 0x50, 0x34, 0x32, 0x41, 0x00, 0x44, 0x35, 0x37, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x35, 0x37, 0x50, 0x32, 0x31, 0x41, 0x00, 0x44, 0x35, 0x36, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x35, 0x36, 0x50, 0x32, 0x31, 0x41, 0x00, 0x44, 0x35, 0x36, 0x50 - .byte 0x31, 0x32, 0x41, 0x00, 0x44, 0x35, 0x36, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x35, 0x35, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x35, 0x35, 0x50, 0x32, 0x31, 0x41, 0x00, 0x44, 0x35, 0x35, 0x50 - .byte 0x31, 0x31, 0x41, 0x00, 0x44, 0x35, 0x34, 0x50, 0x33, 0x32, 0x41, 0x00, 0x44, 0x35, 0x34, 0x50 - .byte 0x33, 0x31, 0x41, 0x00, 0x44, 0x35, 0x34, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x35, 0x33, 0x50 - .byte 0x34, 0x31, 0x43, 0x00, 0x44, 0x35, 0x33, 0x50, 0x34, 0x31, 0x42, 0x00, 0x44, 0x35, 0x33, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x35, 0x33, 0x50, 0x32, 0x31, 0x41, 0x00, 0x44, 0x35, 0x33, 0x50 - .byte 0x31, 0x31, 0x42, 0x00, 0x44, 0x35, 0x33, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x35, 0x32, 0x50 - .byte 0x33, 0x32, 0x41, 0x00, 0x44, 0x35, 0x32, 0x50, 0x33, 0x31, 0x41, 0x00, 0x44, 0x35, 0x32, 0x50 - .byte 0x31, 0x31, 0x43, 0x00, 0x44, 0x35, 0x32, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x35, 0x31, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x35, 0x31, 0x50, 0x32, 0x31, 0x41, 0x00, 0x44, 0x35, 0x31, 0x50 - .byte 0x31, 0x31, 0x41, 0x00, 0x44, 0x35, 0x30, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x34, 0x39, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x34, 0x38, 0x50, 0x32, 0x31, 0x41, 0x00, 0x44, 0x34, 0x38, 0x50 - .byte 0x31, 0x31, 0x41, 0x00, 0x44, 0x34, 0x37, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x34, 0x36, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x34, 0x36, 0x50, 0x33, 0x31, 0x41, 0x00, 0x44, 0x34, 0x36, 0x50 - .byte 0x32, 0x31, 0x41, 0x00, 0x44, 0x34, 0x36, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x34, 0x35, 0x50 - .byte 0x34, 0x32, 0x41, 0x00, 0x44, 0x34, 0x35, 0x50, 0x33, 0x31, 0x41, 0x00, 0x44, 0x34, 0x35, 0x50 - .byte 0x32, 0x31, 0x41, 0x00, 0x44, 0x34, 0x34, 0x50, 0x33, 0x31, 0x41, 0x00, 0x44, 0x34, 0x33, 0x50 - .byte 0x33, 0x31, 0x41, 0x00, 0x44, 0x34, 0x32, 0x50, 0x34, 0x32, 0x41, 0x00, 0x44, 0x34, 0x32, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x34, 0x32, 0x50, 0x33, 0x31, 0x41, 0x00, 0x44, 0x34, 0x32, 0x50 - .byte 0x32, 0x31, 0x41, 0x00, 0x44, 0x34, 0x31, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x34, 0x31, 0x50 - .byte 0x32, 0x31, 0x41, 0x00, 0x44, 0x34, 0x30, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x33, 0x39, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x33, 0x39, 0x50, 0x33, 0x32, 0x41, 0x00, 0x44, 0x33, 0x39, 0x50 - .byte 0x32, 0x31, 0x41, 0x00, 0x44, 0x33, 0x38, 0x50, 0x31, 0x32, 0x41, 0x00, 0x44, 0x33, 0x38, 0x50 - .byte 0x31, 0x31, 0x41, 0x00, 0x44, 0x33, 0x37, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x33, 0x37, 0x50 - .byte 0x31, 0x31, 0x41, 0x00, 0x44, 0x33, 0x36, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x33, 0x36, 0x50 - .byte 0x31, 0x31, 0x41, 0x00, 0x44, 0x33, 0x35, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x33, 0x35, 0x50 - .byte 0x32, 0x31, 0x41, 0x00, 0x44, 0x33, 0x34, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x33, 0x33, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x33, 0x32, 0x50, 0x34, 0x34, 0x41, 0x00, 0x44, 0x33, 0x32, 0x50 - .byte 0x34, 0x33, 0x41, 0x00, 0x44, 0x33, 0x32, 0x50, 0x34, 0x32, 0x41, 0x00, 0x44, 0x33, 0x32, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x33, 0x32, 0x50, 0x33, 0x33, 0x41, 0x00, 0x44, 0x33, 0x32, 0x50 - .byte 0x33, 0x32, 0x41, 0x00, 0x44, 0x33, 0x32, 0x50, 0x33, 0x31, 0x41, 0x00, 0x44, 0x33, 0x32, 0x50 - .byte 0x31, 0x34, 0x41, 0x00, 0x44, 0x33, 0x32, 0x50, 0x31, 0x33, 0x41, 0x00, 0x44, 0x33, 0x32, 0x50 - .byte 0x31, 0x32, 0x41, 0x00, 0x44, 0x33, 0x32, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x33, 0x31, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x33, 0x31, 0x50, 0x33, 0x31, 0x41, 0x00, 0x44, 0x33, 0x31, 0x50 - .byte 0x31, 0x31, 0x41, 0x00, 0x44, 0x33, 0x30, 0x50, 0x34, 0x32, 0x41, 0x00, 0x44, 0x33, 0x30, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x33, 0x30, 0x50, 0x33, 0x34, 0x41, 0x00, 0x44, 0x33, 0x30, 0x50 - .byte 0x33, 0x33, 0x41, 0x00, 0x44, 0x33, 0x30, 0x50, 0x33, 0x32, 0x41, 0x00, 0x44, 0x33, 0x30, 0x50 - .byte 0x32, 0x31, 0x41, 0x00, 0x44, 0x32, 0x39, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x32, 0x38, 0x50 - .byte 0x34, 0x34, 0x41, 0x00, 0x44, 0x32, 0x38, 0x50, 0x33, 0x34, 0x41, 0x00, 0x44, 0x32, 0x38, 0x50 - .byte 0x33, 0x33, 0x43, 0x00, 0x44, 0x32, 0x38, 0x50, 0x33, 0x33, 0x41, 0x00, 0x44, 0x32, 0x38, 0x50 - .byte 0x33, 0x32, 0x41, 0x00, 0x44, 0x32, 0x38, 0x50, 0x33, 0x31, 0x41, 0x00, 0x44, 0x32, 0x38, 0x50 - .byte 0x32, 0x31, 0x41, 0x00, 0x44, 0x32, 0x37, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x32, 0x36, 0x50 - .byte 0x34, 0x33, 0x41, 0x00, 0x44, 0x32, 0x36, 0x50, 0x33, 0x31, 0x41, 0x00, 0x44, 0x32, 0x36, 0x50 - .byte 0x32, 0x31, 0x41, 0x00, 0x44, 0x32, 0x35, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x32, 0x34, 0x50 - .byte 0x33, 0x31, 0x42, 0x00, 0x44, 0x32, 0x34, 0x50, 0x33, 0x31, 0x41, 0x00, 0x44, 0x32, 0x34, 0x50 - .byte 0x31, 0x31, 0x41, 0x00, 0x44, 0x32, 0x33, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x32, 0x32, 0x50 - .byte 0x31, 0x31, 0x41, 0x00, 0x44, 0x32, 0x31, 0x50, 0x34, 0x31, 0x41, 0x00, 0x56, 0x33, 0x38, 0x50 - .byte 0x30, 0x32, 0x41, 0x00, 0x56, 0x33, 0x38, 0x50, 0x30, 0x38, 0x41, 0x00, 0x44, 0x31, 0x39, 0x50 - .byte 0x31, 0x31, 0x41, 0x00, 0x44, 0x31, 0x38, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x31, 0x37, 0x50 - .byte 0x34, 0x35, 0x41, 0x00, 0x44, 0x31, 0x37, 0x50, 0x33, 0x34, 0x41, 0x00, 0x44, 0x31, 0x37, 0x50 - .byte 0x33, 0x33, 0x41, 0x00, 0x44, 0x31, 0x37, 0x50, 0x33, 0x32, 0x41, 0x00, 0x44, 0x31, 0x37, 0x50 - .byte 0x33, 0x31, 0x41, 0x00, 0x44, 0x31, 0x37, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x31, 0x36, 0x50 - .byte 0x33, 0x31, 0x41, 0x00, 0x44, 0x31, 0x36, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x31, 0x35, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x31, 0x35, 0x50, 0x32, 0x31, 0x41, 0x00, 0x44, 0x31, 0x34, 0x50 - .byte 0x31, 0x32, 0x41, 0x00, 0x44, 0x31, 0x34, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x31, 0x33, 0x50 - .byte 0x31, 0x31, 0x41, 0x00, 0x44, 0x31, 0x32, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x31, 0x32, 0x50 - .byte 0x32, 0x31, 0x41, 0x00, 0x44, 0x31, 0x31, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x31, 0x30, 0x50 - .byte 0x34, 0x31, 0x41, 0x00, 0x44, 0x31, 0x30, 0x50, 0x32, 0x31, 0x41, 0x00, 0x44, 0x30, 0x39, 0x50 - .byte 0x31, 0x31, 0x41, 0x00, 0x44, 0x30, 0x38, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x30, 0x37, 0x50 - .byte 0x31, 0x31, 0x41, 0x00, 0x44, 0x30, 0x36, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x30, 0x35, 0x50 - .byte 0x33, 0x31, 0x41, 0x00, 0x44, 0x30, 0x35, 0x50, 0x31, 0x31, 0x41, 0x00, 0x44, 0x30, 0x34, 0x50 - .byte 0x33, 0x31, 0x41, 0x00, 0x44, 0x30, 0x34, 0x50, 0x31, 0x32, 0x41, 0x00, 0x44, 0x30, 0x34, 0x50 - .byte 0x31, 0x31, 0x41, 0x00, 0x44, 0x30, 0x33, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x30, 0x33, 0x50 - .byte 0x31, 0x31, 0x41, 0x00, 0x44, 0x30, 0x32, 0x50, 0x33, 0x31, 0x41, 0x00, 0x44, 0x30, 0x32, 0x50 - .byte 0x31, 0x31, 0x41, 0x00, 0x44, 0x30, 0x31, 0x50, 0x34, 0x31, 0x41, 0x00, 0x44, 0x30, 0x31, 0x50 - .byte 0x31, 0x31, 0x42, 0x00, 0x44, 0x30, 0x31, 0x50, 0x31, 0x31, 0x41, 0x00, 0x56, 0x33, 0x39, 0x50 - .byte 0x30, 0x31, 0x41, 0x00, 0x53, 0x30, 0x30, 0x50, 0x30, 0x31, 0x41, 0x00, 0x47, 0x30, 0x31, 0x50 - .byte 0x30, 0x31, 0x41, 0x32, 0x00, 0x00, 0x00, 0x00, 0x54, 0x30, 0x31, 0x50, 0x30, 0x33, 0x41, 0x32 - .byte 0x00, 0x00, 0x00, 0x00, 0x47, 0x30, 0x31, 0x50, 0x30, 0x31, 0x42, 0x32, 0x00, 0x00, 0x00, 0x00 - .byte 0x47, 0x30, 0x31, 0x50, 0x30, 0x31, 0x43, 0x32, 0x00, 0x00, 0x00, 0x00, 0x47, 0x30, 0x31, 0x50 - .byte 0x30, 0x34, 0x41, 0x32, 0x00, 0x00, 0x00, 0x00, 0x47, 0x30, 0x31, 0x50, 0x30, 0x34, 0x43, 0x32 - .byte 0x00, 0x00, 0x00, 0x00, 0x54, 0x30, 0x30, 0x50, 0x30, 0x34, 0x41, 0x32, 0x00, 0x00, 0x00, 0x00 - .byte 0x50, 0x30, 0x35, 0x50, 0x30, 0x32, 0x41, 0x32, 0x00, 0x00, 0x00, 0x00, 0x50, 0x31, 0x34, 0x50 - .byte 0x30, 0x31, 0x41, 0x32, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xB9, 0x00, 0x00, 0x00, 0xFF, 0xFF - .byte 0x14, 0x54, 0x0A, 0x02, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x0C, 0x47, 0x0A, 0x02 - .byte 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x1C, 0x47, 0x0A, 0x02, 0x06, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0xFF, 0xFF, 0x14, 0x47, 0x0A, 0x02, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0xFF, 0xFF - .byte 0xB4, 0x48, 0x0A, 0x02, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0xFF, 0xFF, 0x64, 0x54, 0x0A, 0x02 - .byte 0x0B, 0x00, 0x01, 0x00, 0x06, 0x00, 0xFF, 0xFF, 0xEC, 0x46, 0x0A, 0x02, 0x0A, 0x00, 0x01, 0x00 - .byte 0x07, 0x00, 0xFF, 0xFF, 0xF4, 0x46, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x08, 0x00, 0xFF, 0xFF - .byte 0x24, 0x47, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x09, 0x00, 0xFF, 0xFF, 0xFC, 0x46, 0x0A, 0x02 - .byte 0x09, 0x00, 0xBA, 0x00, 0x0A, 0x00, 0xFF, 0xFF, 0x04, 0x47, 0x0A, 0x02, 0x06, 0x00, 0xC4, 0x00 - .byte 0x0B, 0x00, 0xFF, 0xFF, 0x04, 0x54, 0x0A, 0x02, 0x06, 0x00, 0xC4, 0x00, 0x0C, 0x00, 0xFF, 0xFF - .byte 0xFC, 0x53, 0x0A, 0x02, 0x01, 0x00, 0x02, 0x00, 0x0D, 0x00, 0xFF, 0xFF, 0xF4, 0x53, 0x0A, 0x02 - .byte 0x06, 0x00, 0x04, 0x00, 0x0E, 0x00, 0xFF, 0xFF, 0xEC, 0x53, 0x0A, 0x02, 0x06, 0x00, 0x04, 0x00 - .byte 0x0F, 0x00, 0xFF, 0xFF, 0xE4, 0x53, 0x0A, 0x02, 0x06, 0x00, 0x05, 0x00, 0x10, 0x00, 0xFF, 0xFF - .byte 0xDC, 0x53, 0x0A, 0x02, 0x01, 0x00, 0x05, 0x00, 0x11, 0x00, 0xFF, 0xFF, 0xD4, 0x53, 0x0A, 0x02 - .byte 0x06, 0x00, 0x07, 0x00, 0x12, 0x00, 0xFF, 0xFF, 0xCC, 0x53, 0x0A, 0x02, 0x06, 0x00, 0x07, 0x00 - .byte 0x13, 0x00, 0xFF, 0xFF, 0xC4, 0x53, 0x0A, 0x02, 0x06, 0x00, 0x07, 0x00, 0x14, 0x00, 0xFF, 0xFF - .byte 0xBC, 0x53, 0x0A, 0x02, 0x06, 0x00, 0x08, 0x00, 0x15, 0x00, 0xFF, 0xFF, 0xB4, 0x53, 0x0A, 0x02 - .byte 0x06, 0x00, 0x08, 0x00, 0x16, 0x00, 0xFF, 0xFF, 0xAC, 0x53, 0x0A, 0x02, 0x06, 0x00, 0xC5, 0x00 - .byte 0x17, 0x00, 0xFF, 0xFF, 0xA4, 0x53, 0x0A, 0x02, 0x06, 0x00, 0xC6, 0x00, 0x18, 0x00, 0xFF, 0xFF - .byte 0x9C, 0x53, 0x0A, 0x02, 0x06, 0x00, 0xC7, 0x00, 0x19, 0x00, 0x07, 0x00, 0x94, 0x53, 0x0A, 0x02 - .byte 0x06, 0x00, 0xC8, 0x00, 0x1A, 0x00, 0xFF, 0xFF, 0x8C, 0x53, 0x0A, 0x02, 0x0A, 0x00, 0xC9, 0x00 - .byte 0x1B, 0x00, 0xFF, 0xFF, 0x84, 0x53, 0x0A, 0x02, 0x01, 0x00, 0x0F, 0x00, 0x1C, 0x00, 0xFF, 0xFF - .byte 0x7C, 0x53, 0x0A, 0x02, 0x06, 0x00, 0x12, 0x00, 0x1D, 0x00, 0xFF, 0xFF, 0x74, 0x53, 0x0A, 0x02 - .byte 0x0A, 0x00, 0xCA, 0x00, 0x1E, 0x00, 0xFF, 0xFF, 0x6C, 0x53, 0x0A, 0x02, 0x01, 0x00, 0x12, 0x00 - .byte 0x1F, 0x00, 0xFF, 0xFF, 0x64, 0x53, 0x0A, 0x02, 0x06, 0x00, 0x15, 0x00, 0x20, 0x00, 0xFF, 0xFF - .byte 0x5C, 0x53, 0x0A, 0x02, 0x06, 0x00, 0x16, 0x00, 0x21, 0x00, 0xFF, 0xFF, 0x54, 0x53, 0x0A, 0x02 - .byte 0x07, 0x00, 0x16, 0x00, 0x22, 0x00, 0xFF, 0xFF, 0x4C, 0x53, 0x0A, 0x02, 0x0A, 0x00, 0xCB, 0x00 - .byte 0x23, 0x00, 0xFF, 0xFF, 0x44, 0x53, 0x0A, 0x02, 0x01, 0x00, 0xBC, 0x00, 0x24, 0x00, 0xFF, 0xFF - .byte 0x3C, 0x53, 0x0A, 0x02, 0x06, 0x00, 0x19, 0x00, 0x25, 0x00, 0xFF, 0xFF, 0x34, 0x53, 0x0A, 0x02 - .byte 0x06, 0x00, 0xCC, 0x00, 0x26, 0x00, 0xFF, 0xFF, 0x2C, 0x53, 0x0A, 0x02, 0x06, 0x00, 0xBD, 0x00 - .byte 0x27, 0x00, 0xFF, 0xFF, 0x24, 0x53, 0x0A, 0x02, 0x06, 0x00, 0xBD, 0x00, 0x28, 0x00, 0xFF, 0xFF - .byte 0x1C, 0x53, 0x0A, 0x02, 0x06, 0x00, 0xBD, 0x00, 0x29, 0x00, 0xFF, 0xFF, 0x14, 0x53, 0x0A, 0x02 - .byte 0x06, 0x00, 0xBD, 0x00, 0x2A, 0x00, 0xFF, 0xFF, 0x0C, 0x53, 0x0A, 0x02, 0x06, 0x00, 0xBD, 0x00 - .byte 0x2B, 0x00, 0xFF, 0xFF, 0x04, 0x53, 0x0A, 0x02, 0x01, 0x00, 0xBD, 0x00, 0x2C, 0x00, 0xFF, 0xFF - .byte 0xFC, 0x52, 0x0A, 0x02, 0x06, 0x00, 0xCD, 0x00, 0x2D, 0x00, 0xFF, 0xFF, 0xF4, 0x52, 0x0A, 0x02 - .byte 0x06, 0x00, 0xCE, 0x00, 0x2E, 0x00, 0xFF, 0xFF, 0xEC, 0x52, 0x0A, 0x02, 0x06, 0x00, 0xCF, 0x00 - .byte 0x2F, 0x00, 0xFF, 0xFF, 0xDC, 0x4C, 0x0A, 0x02, 0x0A, 0x00, 0xD0, 0x00, 0x30, 0x00, 0xFF, 0xFF - .byte 0xDC, 0x49, 0x0A, 0x02, 0x01, 0x00, 0x1E, 0x00, 0x31, 0x00, 0xFF, 0xFF, 0xD4, 0x52, 0x0A, 0x02 - .byte 0x06, 0x00, 0xD1, 0x00, 0x32, 0x00, 0xFF, 0xFF, 0xCC, 0x52, 0x0A, 0x02, 0x06, 0x00, 0xD3, 0x00 - .byte 0x33, 0x00, 0xFF, 0xFF, 0xC4, 0x52, 0x0A, 0x02, 0x06, 0x00, 0xD4, 0x00, 0x34, 0x00, 0xFF, 0xFF - .byte 0xBC, 0x52, 0x0A, 0x02, 0x07, 0x00, 0x23, 0x00, 0x35, 0x00, 0xFF, 0xFF, 0xB4, 0x52, 0x0A, 0x02 - .byte 0x07, 0x00, 0x23, 0x00, 0x36, 0x00, 0xFF, 0xFF, 0xAC, 0x52, 0x0A, 0x02, 0x06, 0x00, 0xD5, 0x00 - .byte 0x37, 0x00, 0xFF, 0xFF, 0xA4, 0x52, 0x0A, 0x02, 0x0A, 0x00, 0xD6, 0x00, 0x38, 0x00, 0xFF, 0xFF - .byte 0x9C, 0x52, 0x0A, 0x02, 0x06, 0x00, 0x24, 0x00, 0x39, 0x00, 0xFF, 0xFF, 0x94, 0x52, 0x0A, 0x02 - .byte 0x01, 0x00, 0x24, 0x00, 0x3A, 0x00, 0xFF, 0xFF, 0x8C, 0x52, 0x0A, 0x02, 0x06, 0x00, 0xD7, 0x00 - .byte 0x3B, 0x00, 0xFF, 0xFF, 0x84, 0x52, 0x0A, 0x02, 0x0A, 0x00, 0xD8, 0x00, 0x3C, 0x00, 0xFF, 0xFF - .byte 0x7C, 0x52, 0x0A, 0x02, 0x06, 0x00, 0xBE, 0x00, 0x3D, 0x00, 0xFF, 0xFF, 0x74, 0x52, 0x0A, 0x02 - .byte 0x06, 0x00, 0xBE, 0x00, 0x3E, 0x00, 0xFF, 0xFF, 0x6C, 0x52, 0x0A, 0x02, 0x06, 0x00, 0xBE, 0x00 - .byte 0x3F, 0x00, 0xFF, 0xFF, 0x64, 0x52, 0x0A, 0x02, 0x06, 0x00, 0xBE, 0x00, 0x40, 0x00, 0xFF, 0xFF - .byte 0x5C, 0x52, 0x0A, 0x02, 0x06, 0x00, 0xBE, 0x00, 0x41, 0x00, 0xFF, 0xFF, 0x54, 0x52, 0x0A, 0x02 - .byte 0x01, 0x00, 0xBE, 0x00, 0x42, 0x00, 0xFF, 0xFF, 0x4C, 0x52, 0x0A, 0x02, 0x06, 0x00, 0xD9, 0x00 - .byte 0x43, 0x00, 0xFF, 0xFF, 0x44, 0x52, 0x0A, 0x02, 0x0A, 0x00, 0xDA, 0x00, 0x44, 0x00, 0xFF, 0xFF - .byte 0x3C, 0x52, 0x0A, 0x02, 0x06, 0x00, 0x2A, 0x00, 0x45, 0x00, 0xFF, 0xFF, 0x34, 0x52, 0x0A, 0x02 - .byte 0x06, 0x00, 0x2A, 0x00, 0x46, 0x00, 0xFF, 0xFF, 0x2C, 0x52, 0x0A, 0x02, 0x06, 0x00, 0x2A, 0x00 - .byte 0x47, 0x00, 0xFF, 0xFF, 0x24, 0x52, 0x0A, 0x02, 0x01, 0x00, 0x2A, 0x00, 0x48, 0x00, 0xFF, 0xFF - .byte 0x1C, 0x52, 0x0A, 0x02, 0x01, 0x00, 0x2A, 0x00, 0x49, 0x00, 0xFF, 0xFF, 0x14, 0x52, 0x0A, 0x02 - .byte 0x06, 0x00, 0xDB, 0x00, 0x4A, 0x00, 0xFF, 0xFF, 0x0C, 0x52, 0x0A, 0x02, 0x06, 0x00, 0x2D, 0x00 - .byte 0x4B, 0x00, 0xFF, 0xFF, 0x04, 0x52, 0x0A, 0x02, 0x01, 0x00, 0x2D, 0x00, 0x4C, 0x00, 0xFF, 0xFF - .byte 0xFC, 0x51, 0x0A, 0x02, 0x0A, 0x00, 0xDC, 0x00, 0x4D, 0x00, 0xFF, 0xFF, 0xF4, 0x51, 0x0A, 0x02 - .byte 0x0A, 0x00, 0xDD, 0x00, 0x4E, 0x00, 0xFF, 0xFF, 0xEC, 0x51, 0x0A, 0x02, 0x0A, 0x00, 0xDE, 0x00 - .byte 0x4F, 0x00, 0xFF, 0xFF, 0xE4, 0x51, 0x0A, 0x02, 0x07, 0x00, 0x37, 0x00, 0x50, 0x00, 0xFF, 0xFF - .byte 0xDC, 0x51, 0x0A, 0x02, 0x0A, 0x00, 0x37, 0x00, 0x51, 0x00, 0xFF, 0xFF, 0xD4, 0x51, 0x0A, 0x02 - .byte 0x0A, 0x00, 0x37, 0x00, 0x52, 0x00, 0xFF, 0xFF, 0xCC, 0x51, 0x0A, 0x02, 0x0A, 0x00, 0x37, 0x00 - .byte 0x53, 0x00, 0xFF, 0xFF, 0xC4, 0x51, 0x0A, 0x02, 0x0B, 0x00, 0x37, 0x00, 0x54, 0x00, 0xFF, 0xFF - .byte 0xBC, 0x51, 0x0A, 0x02, 0x0B, 0x00, 0x37, 0x00, 0x55, 0x00, 0xFF, 0xFF, 0xB4, 0x51, 0x0A, 0x02 - .byte 0x0B, 0x00, 0x37, 0x00, 0x56, 0x00, 0xFF, 0xFF, 0xAC, 0x51, 0x0A, 0x02, 0x01, 0x00, 0x37, 0x00 - .byte 0x57, 0x00, 0xFF, 0xFF, 0xA4, 0x51, 0x0A, 0x02, 0x0B, 0x00, 0x47, 0x00, 0x58, 0x00, 0xFF, 0xFF - .byte 0x9C, 0x51, 0x0A, 0x02, 0x0A, 0x00, 0x33, 0x00, 0x59, 0x00, 0xFF, 0xFF, 0x94, 0x51, 0x0A, 0x02 - .byte 0x0A, 0x00, 0xDF, 0x00, 0x5A, 0x00, 0xFF, 0xFF, 0x8C, 0x51, 0x0A, 0x02, 0x0B, 0x00, 0x34, 0x00 - .byte 0x5B, 0x00, 0xFF, 0xFF, 0x84, 0x51, 0x0A, 0x02, 0x01, 0x00, 0x3F, 0x00, 0x5C, 0x00, 0xFF, 0xFF - .byte 0x7C, 0x51, 0x0A, 0x02, 0x06, 0x00, 0x3F, 0x00, 0x5D, 0x00, 0xFF, 0xFF, 0x74, 0x51, 0x0A, 0x02 - .byte 0x0A, 0x00, 0x40, 0x00, 0x5E, 0x00, 0xFF, 0xFF, 0x6C, 0x51, 0x0A, 0x02, 0x0A, 0x00, 0x40, 0x00 - .byte 0x5F, 0x00, 0xFF, 0xFF, 0x64, 0x51, 0x0A, 0x02, 0x0A, 0x00, 0x41, 0x00, 0x60, 0x00, 0xFF, 0xFF - .byte 0x5C, 0x51, 0x0A, 0x02, 0x0A, 0x00, 0xE0, 0x00, 0x61, 0x00, 0xFF, 0xFF, 0x54, 0x51, 0x0A, 0x02 - .byte 0x0A, 0x00, 0xE1, 0x00, 0x62, 0x00, 0xFF, 0xFF, 0x4C, 0x51, 0x0A, 0x02, 0x0A, 0x00, 0x41, 0x00 - .byte 0x63, 0x00, 0xFF, 0xFF, 0x44, 0x51, 0x0A, 0x02, 0x0B, 0x00, 0x41, 0x00, 0x64, 0x00, 0xFF, 0xFF - .byte 0x3C, 0x51, 0x0A, 0x02, 0x06, 0x00, 0x44, 0x00, 0x65, 0x00, 0xFF, 0xFF, 0x34, 0x51, 0x0A, 0x02 - .byte 0x0A, 0x00, 0xE2, 0x00, 0x66, 0x00, 0xFF, 0xFF, 0x2C, 0x51, 0x0A, 0x02, 0x01, 0x00, 0x44, 0x00 - .byte 0x67, 0x00, 0xFF, 0xFF, 0x24, 0x51, 0x0A, 0x02, 0x0A, 0x00, 0xE3, 0x00, 0x68, 0x00, 0xFF, 0xFF - .byte 0x1C, 0x51, 0x0A, 0x02, 0x06, 0x00, 0xE4, 0x00, 0x69, 0x00, 0xFF, 0xFF, 0x14, 0x51, 0x0A, 0x02 - .byte 0x01, 0x00, 0xE5, 0x00, 0x6A, 0x00, 0xFF, 0xFF, 0x0C, 0x51, 0x0A, 0x02, 0x01, 0x00, 0xE6, 0x00 - .byte 0x6B, 0x00, 0xFF, 0xFF, 0x04, 0x51, 0x0A, 0x02, 0x07, 0x00, 0x7C, 0x00, 0x6C, 0x00, 0xFF, 0xFF - .byte 0xFC, 0x50, 0x0A, 0x02, 0x06, 0x00, 0x7C, 0x00, 0x6D, 0x00, 0xFF, 0xFF, 0xF4, 0x50, 0x0A, 0x02 - .byte 0x0A, 0x00, 0xE7, 0x00, 0x6E, 0x00, 0xFF, 0xFF, 0xEC, 0x50, 0x0A, 0x02, 0x06, 0x00, 0x83, 0x00 - .byte 0x6F, 0x00, 0xFF, 0xFF, 0xE4, 0x50, 0x0A, 0x02, 0x01, 0x00, 0xE8, 0x00, 0x70, 0x00, 0xFF, 0xFF - .byte 0xDC, 0x50, 0x0A, 0x02, 0x06, 0x00, 0xE9, 0x00, 0x71, 0x00, 0xFF, 0xFF, 0xD4, 0x50, 0x0A, 0x02 - .byte 0x0A, 0x00, 0xEA, 0x00, 0x72, 0x00, 0xFF, 0xFF, 0xCC, 0x50, 0x0A, 0x02, 0x01, 0x00, 0xEB, 0x00 - .byte 0x73, 0x00, 0xFF, 0xFF, 0xC4, 0x50, 0x0A, 0x02, 0x01, 0x00, 0xEC, 0x00, 0x74, 0x00, 0xFF, 0xFF - .byte 0xBC, 0x50, 0x0A, 0x02, 0x06, 0x00, 0xED, 0x00, 0x75, 0x00, 0xFF, 0xFF, 0xB4, 0x50, 0x0A, 0x02 - .byte 0x06, 0x00, 0xEE, 0x00, 0x76, 0x00, 0xFF, 0xFF, 0xAC, 0x50, 0x0A, 0x02, 0x0A, 0x00, 0xEF, 0x00 - .byte 0x77, 0x00, 0xFF, 0xFF, 0xA4, 0x50, 0x0A, 0x02, 0x01, 0x00, 0xF0, 0x00, 0x78, 0x00, 0xFF, 0xFF - .byte 0x9C, 0x50, 0x0A, 0x02, 0x06, 0x00, 0xF1, 0x00, 0x79, 0x00, 0xFF, 0xFF, 0x94, 0x50, 0x0A, 0x02 - .byte 0x06, 0x00, 0xF2, 0x00, 0x7A, 0x00, 0xFF, 0xFF, 0x8C, 0x50, 0x0A, 0x02, 0x0A, 0x00, 0xF3, 0x00 - .byte 0x7B, 0x00, 0xFF, 0xFF, 0x84, 0x50, 0x0A, 0x02, 0x01, 0x00, 0xF4, 0x00, 0x7C, 0x00, 0xFF, 0xFF - .byte 0x7C, 0x50, 0x0A, 0x02, 0x06, 0x00, 0xF5, 0x00, 0x7D, 0x00, 0xFF, 0xFF, 0x74, 0x50, 0x0A, 0x02 - .byte 0x06, 0x00, 0xF5, 0x00, 0x7E, 0x00, 0xFF, 0xFF, 0x6C, 0x50, 0x0A, 0x02, 0x06, 0x00, 0xF6, 0x00 - .byte 0x7F, 0x00, 0xFF, 0xFF, 0x64, 0x50, 0x0A, 0x02, 0x07, 0x00, 0xF7, 0x00, 0x80, 0x00, 0xFF, 0xFF - .byte 0x5C, 0x50, 0x0A, 0x02, 0x06, 0x00, 0xF8, 0x00, 0x81, 0x00, 0xFF, 0xFF, 0x54, 0x50, 0x0A, 0x02 - .byte 0x06, 0x00, 0xF8, 0x00, 0x82, 0x00, 0xFF, 0xFF, 0x4C, 0x50, 0x0A, 0x02, 0x0A, 0x00, 0xF9, 0x00 - .byte 0x83, 0x00, 0xFF, 0xFF, 0x44, 0x50, 0x0A, 0x02, 0x01, 0x00, 0xFA, 0x00, 0x84, 0x00, 0xFF, 0xFF - .byte 0x3C, 0x50, 0x0A, 0x02, 0x01, 0x00, 0xFA, 0x00, 0x85, 0x00, 0xFF, 0xFF, 0x34, 0x50, 0x0A, 0x02 - .byte 0x01, 0x00, 0xFA, 0x00, 0x86, 0x00, 0xFF, 0xFF, 0x2C, 0x50, 0x0A, 0x02, 0x06, 0x00, 0xFB, 0x00 - .byte 0x87, 0x00, 0xFF, 0xFF, 0x24, 0x50, 0x0A, 0x02, 0x06, 0x00, 0x96, 0x00, 0x88, 0x00, 0xFF, 0xFF - .byte 0x1C, 0x50, 0x0A, 0x02, 0x06, 0x00, 0x96, 0x00, 0x89, 0x00, 0xFF, 0xFF, 0x14, 0x50, 0x0A, 0x02 - .byte 0x06, 0x00, 0xFC, 0x00, 0x8A, 0x00, 0xFF, 0xFF, 0x0C, 0x50, 0x0A, 0x02, 0x0A, 0x00, 0xFD, 0x00 - .byte 0x8B, 0x00, 0xFF, 0xFF, 0x04, 0x50, 0x0A, 0x02, 0x01, 0x00, 0xFE, 0x00, 0x8C, 0x00, 0xFF, 0xFF - .byte 0xFC, 0x4F, 0x0A, 0x02, 0x06, 0x00, 0xFF, 0x00, 0x8D, 0x00, 0xFF, 0xFF, 0xF4, 0x4F, 0x0A, 0x02 - .byte 0x06, 0x00, 0x9C, 0x00, 0x8E, 0x00, 0xFF, 0xFF, 0xEC, 0x4F, 0x0A, 0x02, 0x0A, 0x00, 0x00, 0x01 - .byte 0x8F, 0x00, 0xFF, 0xFF, 0xE4, 0x4F, 0x0A, 0x02, 0x01, 0x00, 0x01, 0x01, 0x90, 0x00, 0xFF, 0xFF - .byte 0xDC, 0x4F, 0x0A, 0x02, 0x0A, 0x00, 0x02, 0x01, 0x91, 0x00, 0xFF, 0xFF, 0xD4, 0x4F, 0x0A, 0x02 - .byte 0x01, 0x00, 0x03, 0x01, 0x92, 0x00, 0xFF, 0xFF, 0xCC, 0x4F, 0x0A, 0x02, 0x01, 0x00, 0x04, 0x01 - .byte 0x93, 0x00, 0xFF, 0xFF, 0xC4, 0x4F, 0x0A, 0x02, 0x01, 0x00, 0x05, 0x01, 0x94, 0x00, 0xFF, 0xFF - .byte 0xBC, 0x4F, 0x0A, 0x02, 0x01, 0x00, 0x06, 0x01, 0x95, 0x00, 0xFF, 0xFF, 0xB4, 0x4F, 0x0A, 0x02 - .byte 0x0A, 0x00, 0x68, 0x00, 0x96, 0x00, 0xFF, 0xFF, 0xAC, 0x4F, 0x0A, 0x02, 0x0A, 0x00, 0x6C, 0x00 - .byte 0x97, 0x00, 0xFF, 0xFF, 0xA4, 0x4F, 0x0A, 0x02, 0x0A, 0x00, 0x6D, 0x00, 0x98, 0x00, 0xFF, 0xFF - .byte 0x9C, 0x4F, 0x0A, 0x02, 0x0A, 0x00, 0x6E, 0x00, 0x99, 0x00, 0xFF, 0xFF, 0x94, 0x4F, 0x0A, 0x02 - .byte 0x0A, 0x00, 0x6F, 0x00, 0x9A, 0x00, 0xFF, 0xFF, 0x8C, 0x4F, 0x0A, 0x02, 0x0A, 0x00, 0x69, 0x00 - .byte 0x9B, 0x00, 0xFF, 0xFF, 0x84, 0x4F, 0x0A, 0x02, 0x06, 0x00, 0x07, 0x01, 0x9C, 0x00, 0xFF, 0xFF - .byte 0x7C, 0x4F, 0x0A, 0x02, 0x0A, 0x00, 0x08, 0x01, 0x9D, 0x00, 0xFF, 0xFF, 0x74, 0x4F, 0x0A, 0x02 - .byte 0x0A, 0x00, 0x09, 0x01, 0x9E, 0x00, 0xFF, 0xFF, 0x6C, 0x4F, 0x0A, 0x02, 0x0A, 0x00, 0x0A, 0x01 - .byte 0x9F, 0x00, 0xFF, 0xFF, 0x64, 0x4F, 0x0A, 0x02, 0x0A, 0x00, 0x0B, 0x01, 0xA0, 0x00, 0xFF, 0xFF - .byte 0x5C, 0x4F, 0x0A, 0x02, 0x0A, 0x00, 0x0C, 0x01, 0xA1, 0x00, 0xFF, 0xFF, 0x54, 0x4F, 0x0A, 0x02 - .byte 0x0A, 0x00, 0x0D, 0x01, 0xA2, 0x00, 0xFF, 0xFF, 0x4C, 0x4F, 0x0A, 0x02, 0x0A, 0x00, 0x0E, 0x01 - .byte 0xA3, 0x00, 0xFF, 0xFF, 0x44, 0x4F, 0x0A, 0x02, 0x06, 0x00, 0x0F, 0x01, 0xA4, 0x00, 0xFF, 0xFF - .byte 0x3C, 0x4F, 0x0A, 0x02, 0x0A, 0x00, 0x10, 0x01, 0xA5, 0x00, 0xFF, 0xFF, 0x34, 0x4F, 0x0A, 0x02 - .byte 0x06, 0x00, 0x11, 0x01, 0xA6, 0x00, 0xFF, 0xFF, 0x2C, 0x4F, 0x0A, 0x02, 0x01, 0x00, 0x12, 0x01 - .byte 0xA7, 0x00, 0xFF, 0xFF, 0x24, 0x4F, 0x0A, 0x02, 0x0B, 0x00, 0x51, 0x00, 0xA8, 0x00, 0xFF, 0xFF - .byte 0x1C, 0x4F, 0x0A, 0x02, 0x0B, 0x00, 0x4D, 0x00, 0xA9, 0x00, 0xFF, 0xFF, 0x14, 0x4F, 0x0A, 0x02 - .byte 0x0B, 0x00, 0x4F, 0x00, 0xAA, 0x00, 0xFF, 0xFF, 0x0C, 0x4F, 0x0A, 0x02, 0x0B, 0x00, 0x4B, 0x00 - .byte 0xAB, 0x00, 0xFF, 0xFF, 0x04, 0x4F, 0x0A, 0x02, 0x0B, 0x00, 0x53, 0x00, 0xAC, 0x00, 0xFF, 0xFF - .byte 0xFC, 0x4E, 0x0A, 0x02, 0x0B, 0x00, 0x57, 0x00, 0xAD, 0x00, 0xFF, 0xFF, 0xF4, 0x4E, 0x0A, 0x02 - .byte 0x0B, 0x00, 0x55, 0x00, 0xAE, 0x00, 0xFF, 0xFF, 0xDC, 0x4D, 0x0A, 0x02, 0x0B, 0x00, 0x49, 0x00 - .byte 0xAF, 0x00, 0xFF, 0xFF, 0x1C, 0x4E, 0x0A, 0x02, 0x06, 0x00, 0x13, 0x01, 0xB0, 0x00, 0xFF, 0xFF - .byte 0x3C, 0x4E, 0x0A, 0x02, 0x0A, 0x00, 0x14, 0x01, 0xB1, 0x00, 0xFF, 0xFF, 0xD4, 0x4E, 0x0A, 0x02 - .byte 0x0B, 0x00, 0x30, 0x00, 0xB2, 0x00, 0xFF, 0xFF, 0xCC, 0x4E, 0x0A, 0x02, 0x0B, 0x00, 0x5C, 0x00 - .byte 0xB3, 0x00, 0xFF, 0xFF, 0xC4, 0x4E, 0x0A, 0x02, 0x0A, 0x00, 0x5E, 0x00, 0xB4, 0x00, 0xFF, 0xFF - .byte 0xBC, 0x4E, 0x0A, 0x02, 0x0A, 0x00, 0x5F, 0x00, 0xB5, 0x00, 0xFF, 0xFF, 0xB4, 0x4E, 0x0A, 0x02 - .byte 0x0A, 0x00, 0x60, 0x00, 0xB6, 0x00, 0xFF, 0xFF, 0xAC, 0x4E, 0x0A, 0x02, 0x0A, 0x00, 0x61, 0x00 - .byte 0xB7, 0x00, 0xFF, 0xFF, 0xA4, 0x4E, 0x0A, 0x02, 0x0A, 0x00, 0x62, 0x00, 0xB8, 0x00, 0xFF, 0xFF - .byte 0x9C, 0x4E, 0x0A, 0x02, 0x0A, 0x00, 0x63, 0x00, 0xB9, 0x00, 0xFF, 0xFF, 0x94, 0x4E, 0x0A, 0x02 - .byte 0x0A, 0x00, 0x64, 0x00, 0xBA, 0x00, 0xFF, 0xFF, 0x8C, 0x4E, 0x0A, 0x02, 0x0A, 0x00, 0x65, 0x00 - .byte 0xBB, 0x00, 0xFF, 0xFF, 0x84, 0x4E, 0x0A, 0x02, 0x0A, 0x00, 0x66, 0x00, 0xBC, 0x00, 0xFF, 0xFF - .byte 0x7C, 0x4E, 0x0A, 0x02, 0x0A, 0x00, 0x67, 0x00, 0xBD, 0x00, 0xFF, 0xFF, 0x74, 0x4E, 0x0A, 0x02 - .byte 0x0A, 0x00, 0x58, 0x00, 0xBE, 0x00, 0xFF, 0xFF, 0x6C, 0x4E, 0x0A, 0x02, 0x0A, 0x00, 0x59, 0x00 - .byte 0xBF, 0x00, 0xFF, 0xFF, 0x64, 0x4E, 0x0A, 0x02, 0x0A, 0x00, 0x5A, 0x00, 0xC0, 0x00, 0xFF, 0xFF - .byte 0x5C, 0x4E, 0x0A, 0x02, 0x0A, 0x00, 0x5B, 0x00, 0xC1, 0x00, 0xFF, 0xFF, 0x54, 0x4E, 0x0A, 0x02 - .byte 0x0A, 0x00, 0x5C, 0x00, 0xC2, 0x00, 0xFF, 0xFF, 0x4C, 0x4E, 0x0A, 0x02, 0x06, 0x00, 0x15, 0x01 - .byte 0xC3, 0x00, 0xFF, 0xFF, 0x44, 0x4E, 0x0A, 0x02, 0x06, 0x00, 0x15, 0x01, 0xC4, 0x00, 0xFF, 0xFF - .byte 0x1C, 0x54, 0x0A, 0x02, 0x06, 0x00, 0x15, 0x01, 0xC5, 0x00, 0xFF, 0xFF, 0x34, 0x4E, 0x0A, 0x02 - .byte 0x06, 0x00, 0x15, 0x01, 0xC6, 0x00, 0xFF, 0xFF, 0x34, 0x54, 0x0A, 0x02, 0x06, 0x00, 0x15, 0x01 - .byte 0xC7, 0x00, 0xFF, 0xFF, 0x24, 0x4E, 0x0A, 0x02, 0x06, 0x00, 0x15, 0x01, 0xC8, 0x00, 0xFF, 0xFF - .byte 0x40, 0x54, 0x0A, 0x02, 0x06, 0x00, 0x16, 0x01, 0xC9, 0x00, 0xFF, 0xFF, 0x14, 0x4E, 0x0A, 0x02 - .byte 0x06, 0x00, 0x17, 0x01, 0xCA, 0x00, 0xFF, 0xFF, 0x0C, 0x4E, 0x0A, 0x02, 0x06, 0x00, 0x18, 0x01 - .byte 0xCB, 0x00, 0xFF, 0xFF, 0x04, 0x4E, 0x0A, 0x02, 0x06, 0x00, 0x18, 0x01, 0xCC, 0x00, 0xFF, 0xFF - .byte 0x4C, 0x54, 0x0A, 0x02, 0x06, 0x00, 0x18, 0x01, 0xCD, 0x00, 0xFF, 0xFF, 0xF4, 0x4D, 0x0A, 0x02 - .byte 0x06, 0x00, 0x18, 0x01, 0xCE, 0x00, 0xFF, 0xFF, 0x58, 0x54, 0x0A, 0x02, 0x06, 0x00, 0x19, 0x01 - .byte 0xCF, 0x00, 0xFF, 0xFF, 0x5C, 0x4A, 0x0A, 0x02, 0x06, 0x00, 0x19, 0x01, 0xD0, 0x00, 0xFF, 0xFF - .byte 0x9C, 0x48, 0x0A, 0x02, 0x06, 0x00, 0x1A, 0x01, 0xD1, 0x00, 0xFF, 0xFF, 0xD4, 0x4D, 0x0A, 0x02 - .byte 0x06, 0x00, 0x1A, 0x01, 0xD2, 0x00, 0xFF, 0xFF, 0xCC, 0x4D, 0x0A, 0x02, 0x02, 0x00, 0x1B, 0x01 - .byte 0xD3, 0x00, 0xFF, 0xFF, 0xC4, 0x4D, 0x0A, 0x02, 0x02, 0x00, 0x1B, 0x01, 0xD4, 0x00, 0xFF, 0xFF - .byte 0xBC, 0x4D, 0x0A, 0x02, 0x02, 0x00, 0x1C, 0x01, 0xD5, 0x00, 0xFF, 0xFF, 0xB4, 0x4D, 0x0A, 0x02 - .byte 0x02, 0x00, 0x1D, 0x01, 0xD6, 0x00, 0xFF, 0xFF, 0xAC, 0x4D, 0x0A, 0x02, 0x02, 0x00, 0x1D, 0x01 - .byte 0xD7, 0x00, 0xFF, 0xFF, 0xA4, 0x4D, 0x0A, 0x02, 0x02, 0x00, 0x1E, 0x01, 0xD8, 0x00, 0xFF, 0xFF - .byte 0x9C, 0x4D, 0x0A, 0x02, 0x02, 0x00, 0x1E, 0x01, 0xD9, 0x00, 0xFF, 0xFF, 0x94, 0x4D, 0x0A, 0x02 - .byte 0x06, 0x00, 0x1F, 0x01, 0xDA, 0x00, 0xFF, 0xFF, 0x8C, 0x4D, 0x0A, 0x02, 0x06, 0x00, 0x1F, 0x01 - .byte 0xDB, 0x00, 0xFF, 0xFF, 0xC4, 0x47, 0x0A, 0x02, 0x06, 0x00, 0x1F, 0x01, 0xDC, 0x00, 0xFF, 0xFF - .byte 0x7C, 0x4D, 0x0A, 0x02, 0x06, 0x00, 0x1F, 0x01, 0xDD, 0x00, 0xFF, 0xFF, 0x74, 0x4D, 0x0A, 0x02 - .byte 0x06, 0x00, 0x20, 0x01, 0xDE, 0x00, 0xFF, 0xFF, 0x6C, 0x4D, 0x0A, 0x02, 0x06, 0x00, 0x21, 0x01 - .byte 0xDF, 0x00, 0xFF, 0xFF, 0x64, 0x4D, 0x0A, 0x02, 0x06, 0x00, 0x22, 0x01, 0xE0, 0x00, 0xFF, 0xFF - .byte 0x5C, 0x4D, 0x0A, 0x02, 0x06, 0x00, 0x23, 0x01, 0xE1, 0x00, 0xFF, 0xFF, 0x54, 0x4D, 0x0A, 0x02 - .byte 0x06, 0x00, 0x24, 0x01, 0xE2, 0x00, 0xFF, 0xFF, 0x4C, 0x4D, 0x0A, 0x02, 0x06, 0x00, 0x25, 0x01 - .byte 0xE3, 0x00, 0xFF, 0xFF, 0x44, 0x4D, 0x0A, 0x02, 0x06, 0x00, 0x26, 0x01, 0xE4, 0x00, 0xFF, 0xFF - .byte 0x3C, 0x4D, 0x0A, 0x02, 0x07, 0x00, 0xB7, 0x00, 0xE5, 0x00, 0x07, 0x00, 0x34, 0x4D, 0x0A, 0x02 - .byte 0x07, 0x00, 0xB7, 0x00, 0xE6, 0x00, 0xFF, 0xFF, 0x2C, 0x4D, 0x0A, 0x02, 0x06, 0x00, 0xB7, 0x00 - .byte 0xE7, 0x00, 0xFF, 0xFF, 0x24, 0x4D, 0x0A, 0x02, 0x09, 0x00, 0xB7, 0x00, 0xE8, 0x00, 0xFF, 0xFF - .byte 0x1C, 0x4D, 0x0A, 0x02, 0x06, 0x00, 0x27, 0x01, 0xE9, 0x00, 0xFF, 0xFF, 0x14, 0x4D, 0x0A, 0x02 - .byte 0x06, 0x00, 0x27, 0x01, 0xEA, 0x00, 0xFF, 0xFF, 0x70, 0x54, 0x0A, 0x02, 0x06, 0x00, 0xB7, 0x00 - .byte 0xEB, 0x00, 0xFF, 0xFF, 0x04, 0x4D, 0x0A, 0x02, 0x06, 0x00, 0xB7, 0x00, 0xEC, 0x00, 0xFF, 0xFF - .byte 0xFC, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0xB7, 0x00, 0xED, 0x00, 0xFF, 0xFF, 0xF4, 0x4C, 0x0A, 0x02 - .byte 0x06, 0x00, 0xB7, 0x00, 0xEE, 0x00, 0xFF, 0xFF, 0xEC, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0xB7, 0x00 - .byte 0xEF, 0x00, 0xFF, 0xFF, 0xE4, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0xB7, 0x00, 0xF0, 0x00, 0xFF, 0xFF - .byte 0x5C, 0x48, 0x0A, 0x02, 0x06, 0x00, 0xB7, 0x00, 0xF1, 0x00, 0xFF, 0xFF, 0xD4, 0x4C, 0x0A, 0x02 - .byte 0x06, 0x00, 0xB7, 0x00, 0xF2, 0x00, 0xFF, 0xFF, 0xCC, 0x4C, 0x0A, 0x02, 0x09, 0x00, 0xB7, 0x00 - .byte 0xF3, 0x00, 0xFF, 0xFF, 0xC4, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0xB7, 0x00, 0xF4, 0x00, 0xFF, 0xFF - .byte 0xBC, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0xB7, 0x00, 0xF5, 0x00, 0xFF, 0xFF, 0xB4, 0x4C, 0x0A, 0x02 - .byte 0x06, 0x00, 0xB7, 0x00, 0xF6, 0x00, 0xFF, 0xFF, 0xAC, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0xB7, 0x00 - .byte 0xF7, 0x00, 0xFF, 0xFF, 0x7C, 0x54, 0x0A, 0x02, 0x06, 0x00, 0xB7, 0x00, 0xF8, 0x00, 0xFF, 0xFF - .byte 0x9C, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0x28, 0x01, 0xF9, 0x00, 0xFF, 0xFF, 0x94, 0x4C, 0x0A, 0x02 - .byte 0x06, 0x00, 0x29, 0x01, 0xFA, 0x00, 0xFF, 0xFF, 0x8C, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0x2A, 0x01 - .byte 0xFB, 0x00, 0xFF, 0xFF, 0x84, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0x2A, 0x01, 0xFC, 0x00, 0xFF, 0xFF - .byte 0x7C, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0xB7, 0x00, 0xFD, 0x00, 0xFF, 0xFF, 0x74, 0x4C, 0x0A, 0x02 - .byte 0x07, 0x00, 0x2B, 0x01, 0xFE, 0x00, 0xFF, 0xFF, 0x6C, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0x2C, 0x01 - .byte 0xFF, 0x00, 0xFF, 0xFF, 0x64, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0xC3, 0x00, 0x00, 0x01, 0xFF, 0xFF - .byte 0x5C, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0xC3, 0x00, 0x01, 0x01, 0xFF, 0xFF, 0x54, 0x4C, 0x0A, 0x02 - .byte 0x06, 0x00, 0xC3, 0x00, 0x02, 0x01, 0xFF, 0xFF, 0x4C, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0xB7, 0x00 - .byte 0x03, 0x01, 0xFF, 0xFF, 0x44, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0xB7, 0x00, 0x04, 0x01, 0xFF, 0xFF - .byte 0x3C, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0xB7, 0x00, 0x05, 0x01, 0xFF, 0xFF, 0x34, 0x4C, 0x0A, 0x02 - .byte 0x06, 0x00, 0xB7, 0x00, 0x06, 0x01, 0xFF, 0xFF, 0x2C, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0xB7, 0x00 - .byte 0x07, 0x01, 0xFF, 0xFF, 0x24, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0xB7, 0x00, 0x08, 0x01, 0xFF, 0xFF - .byte 0x1C, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0xB7, 0x00, 0x09, 0x01, 0xFF, 0xFF, 0x14, 0x4C, 0x0A, 0x02 - .byte 0x06, 0x00, 0xB7, 0x00, 0x0A, 0x01, 0xFF, 0xFF, 0x0C, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0xB7, 0x00 - .byte 0x0B, 0x01, 0xFF, 0xFF, 0x04, 0x4C, 0x0A, 0x02, 0x09, 0x00, 0xB9, 0x00, 0x0C, 0x01, 0xFF, 0xFF - .byte 0xFC, 0x4B, 0x0A, 0x02, 0x04, 0x00, 0xB9, 0x00, 0x0D, 0x01, 0xFF, 0xFF, 0xF4, 0x4B, 0x0A, 0x02 - .byte 0x06, 0x00, 0x2D, 0x01, 0x0E, 0x01, 0xFF, 0xFF, 0xEC, 0x4B, 0x0A, 0x02, 0x06, 0x00, 0x2E, 0x01 - .byte 0x0F, 0x01, 0xFF, 0xFF, 0xE4, 0x4B, 0x0A, 0x02, 0x06, 0x00, 0xB9, 0x00, 0x10, 0x01, 0xFF, 0xFF - .byte 0xDC, 0x4B, 0x0A, 0x02, 0x06, 0x00, 0xB9, 0x00, 0x11, 0x01, 0xFF, 0xFF, 0xD4, 0x4B, 0x0A, 0x02 - .byte 0x04, 0x00, 0xB9, 0x00, 0x12, 0x01, 0xFF, 0xFF, 0xCC, 0x4B, 0x0A, 0x02, 0x04, 0x00, 0xB9, 0x00 - .byte 0x14, 0x01, 0xFF, 0xFF, 0xC4, 0x4B, 0x0A, 0x02, 0x04, 0x00, 0xB9, 0x00, 0x15, 0x01, 0xFF, 0xFF - .byte 0xBC, 0x4B, 0x0A, 0x02, 0x09, 0x00, 0xB9, 0x00, 0x16, 0x01, 0xFF, 0xFF, 0xB4, 0x4B, 0x0A, 0x02 - .byte 0x04, 0x00, 0xB9, 0x00, 0x17, 0x01, 0xFF, 0xFF, 0xAC, 0x4B, 0x0A, 0x02, 0x04, 0x00, 0xB9, 0x00 - .byte 0x18, 0x01, 0xFF, 0xFF, 0xA4, 0x4B, 0x0A, 0x02, 0x04, 0x00, 0xB9, 0x00, 0x19, 0x01, 0xFF, 0xFF - .byte 0x9C, 0x4B, 0x0A, 0x02, 0x04, 0x00, 0xB9, 0x00, 0x1A, 0x01, 0xFF, 0xFF, 0x94, 0x4B, 0x0A, 0x02 - .byte 0x04, 0x00, 0xB9, 0x00, 0x1B, 0x01, 0xFF, 0xFF, 0x8C, 0x4B, 0x0A, 0x02, 0x04, 0x00, 0xB9, 0x00 - .byte 0x1C, 0x01, 0xFF, 0xFF, 0x84, 0x4B, 0x0A, 0x02, 0x04, 0x00, 0xB9, 0x00, 0x1D, 0x01, 0xFF, 0xFF - .byte 0x7C, 0x4B, 0x0A, 0x02, 0x09, 0x00, 0xB9, 0x00, 0x1E, 0x01, 0xFF, 0xFF, 0x74, 0x4B, 0x0A, 0x02 - .byte 0x09, 0x00, 0xB9, 0x00, 0x1F, 0x01, 0xFF, 0xFF, 0x6C, 0x4B, 0x0A, 0x02, 0x09, 0x00, 0xB9, 0x00 - .byte 0x20, 0x01, 0xFF, 0xFF, 0x64, 0x4B, 0x0A, 0x02, 0x09, 0x00, 0xB9, 0x00, 0x21, 0x01, 0xFF, 0xFF - .byte 0x5C, 0x4B, 0x0A, 0x02, 0x09, 0x00, 0xB9, 0x00, 0x22, 0x01, 0xFF, 0xFF, 0x54, 0x4B, 0x0A, 0x02 - .byte 0x09, 0x00, 0xB9, 0x00, 0x23, 0x01, 0xFF, 0xFF, 0x4C, 0x4B, 0x0A, 0x02, 0x09, 0x00, 0xB9, 0x00 - .byte 0x24, 0x01, 0xFF, 0xFF, 0x44, 0x4B, 0x0A, 0x02, 0x09, 0x00, 0xB9, 0x00, 0x25, 0x01, 0xFF, 0xFF - .byte 0x3C, 0x4B, 0x0A, 0x02, 0x09, 0x00, 0xB9, 0x00, 0x26, 0x01, 0xFF, 0xFF, 0x34, 0x4B, 0x0A, 0x02 - .byte 0x09, 0x00, 0xB9, 0x00, 0x27, 0x01, 0xFF, 0xFF, 0x2C, 0x4B, 0x0A, 0x02, 0x04, 0x00, 0xB9, 0x00 - .byte 0x28, 0x01, 0xFF, 0xFF, 0x24, 0x4B, 0x0A, 0x02, 0x09, 0x00, 0xB9, 0x00, 0x29, 0x01, 0xFF, 0xFF - .byte 0x1C, 0x4B, 0x0A, 0x02, 0x04, 0x00, 0xB9, 0x00, 0x2A, 0x01, 0xFF, 0xFF, 0x14, 0x4B, 0x0A, 0x02 - .byte 0x09, 0x00, 0xB9, 0x00, 0x2B, 0x01, 0xFF, 0xFF, 0x0C, 0x4B, 0x0A, 0x02, 0x09, 0x00, 0xB9, 0x00 - .byte 0x2C, 0x01, 0xFF, 0xFF, 0x04, 0x4B, 0x0A, 0x02, 0x09, 0x00, 0xB9, 0x00, 0x2D, 0x01, 0xFF, 0xFF - .byte 0xFC, 0x48, 0x0A, 0x02, 0x09, 0x00, 0xB9, 0x00, 0x2E, 0x01, 0xFF, 0xFF, 0xEC, 0x4A, 0x0A, 0x02 - .byte 0x04, 0x00, 0xB9, 0x00, 0x2F, 0x01, 0xFF, 0xFF, 0xF4, 0x4A, 0x0A, 0x02, 0x04, 0x00, 0xB9, 0x00 - .byte 0x30, 0x01, 0xFF, 0xFF, 0xE4, 0x4D, 0x0A, 0x02, 0x09, 0x00, 0xB9, 0x00, 0x31, 0x01, 0xFF, 0xFF - .byte 0xDC, 0x4E, 0x0A, 0x02, 0x01, 0x00, 0xB9, 0x00, 0x32, 0x01, 0xFF, 0xFF, 0xD4, 0x4A, 0x0A, 0x02 - .byte 0x04, 0x00, 0xB9, 0x00, 0x33, 0x01, 0xFF, 0xFF, 0xCC, 0x4A, 0x0A, 0x02, 0x04, 0x00, 0xB9, 0x00 - .byte 0x34, 0x01, 0xFF, 0xFF, 0xC4, 0x4A, 0x0A, 0x02, 0x04, 0x00, 0xB9, 0x00, 0x35, 0x01, 0xFF, 0xFF - .byte 0xBC, 0x4A, 0x0A, 0x02, 0x04, 0x00, 0xB9, 0x00, 0x36, 0x01, 0xFF, 0xFF, 0xB4, 0x4A, 0x0A, 0x02 - .byte 0x09, 0x00, 0xB9, 0x00, 0x37, 0x01, 0xFF, 0xFF, 0xAC, 0x4A, 0x0A, 0x02, 0x06, 0x00, 0x2F, 0x01 - .byte 0x38, 0x01, 0x03, 0x00, 0xA4, 0x4A, 0x0A, 0x02, 0x06, 0x00, 0x30, 0x01, 0x39, 0x01, 0x03, 0x00 - .byte 0x9C, 0x4A, 0x0A, 0x02, 0x06, 0x00, 0x31, 0x01, 0x3A, 0x01, 0xFF, 0xFF, 0x94, 0x4A, 0x0A, 0x02 - .byte 0x06, 0x00, 0x31, 0x01, 0x3B, 0x01, 0xFF, 0xFF, 0x28, 0x54, 0x0A, 0x02, 0x06, 0x00, 0x32, 0x01 - .byte 0x3C, 0x01, 0xFF, 0xFF, 0x2C, 0x4E, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x3D, 0x01, 0xFF, 0xFF - .byte 0x7C, 0x4A, 0x0A, 0x02, 0x04, 0x00, 0xBA, 0x00, 0x3E, 0x01, 0xFF, 0xFF, 0x74, 0x4A, 0x0A, 0x02 - .byte 0x06, 0x00, 0xBA, 0x00, 0x3F, 0x01, 0xFF, 0xFF, 0xFC, 0x4D, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00 - .byte 0x40, 0x01, 0xFF, 0xFF, 0xEC, 0x4D, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x41, 0x01, 0xFF, 0xFF - .byte 0xBC, 0x47, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x42, 0x01, 0xFF, 0xFF, 0x54, 0x4A, 0x0A, 0x02 - .byte 0x06, 0x00, 0xBA, 0x00, 0x43, 0x01, 0xFF, 0xFF, 0x4C, 0x4A, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00 - .byte 0x44, 0x01, 0xFF, 0xFF, 0x44, 0x4A, 0x0A, 0x02, 0x07, 0x00, 0xBA, 0x00, 0x45, 0x01, 0xFF, 0xFF - .byte 0x3C, 0x4A, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0x46, 0x01, 0xFF, 0xFF, 0x34, 0x4A, 0x0A, 0x02 - .byte 0x09, 0x00, 0xBA, 0x00, 0x47, 0x01, 0xFF, 0xFF, 0x84, 0x4D, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00 - .byte 0x48, 0x01, 0xFF, 0xFF, 0x24, 0x4A, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x49, 0x01, 0xFF, 0xFF - .byte 0x1C, 0x4A, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x4A, 0x01, 0xFF, 0xFF, 0x14, 0x4A, 0x0A, 0x02 - .byte 0x09, 0x00, 0xBA, 0x00, 0x4B, 0x01, 0xFF, 0xFF, 0x0C, 0x4A, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00 - .byte 0x4C, 0x01, 0xFF, 0xFF, 0x04, 0x4A, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0x4D, 0x01, 0xFF, 0xFF - .byte 0xFC, 0x49, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0x4E, 0x01, 0xFF, 0xFF, 0x0C, 0x4D, 0x0A, 0x02 - .byte 0x06, 0x00, 0xBA, 0x00, 0x4F, 0x01, 0xFF, 0xFF, 0xEC, 0x49, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00 - .byte 0x50, 0x01, 0xFF, 0xFF, 0xE4, 0x49, 0x0A, 0x02, 0x01, 0x00, 0xBA, 0x00, 0x51, 0x01, 0xFF, 0xFF - .byte 0x9C, 0x47, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x52, 0x01, 0xFF, 0xFF, 0xD4, 0x49, 0x0A, 0x02 - .byte 0x06, 0x00, 0xBA, 0x00, 0x53, 0x01, 0xFF, 0xFF, 0xCC, 0x49, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00 - .byte 0x54, 0x01, 0xFF, 0xFF, 0xC4, 0x49, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x55, 0x01, 0xFF, 0xFF - .byte 0xA4, 0x4C, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x56, 0x01, 0xFF, 0xFF, 0xB4, 0x49, 0x0A, 0x02 - .byte 0x06, 0x00, 0xBA, 0x00, 0x57, 0x01, 0xFF, 0xFF, 0xAC, 0x49, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00 - .byte 0x58, 0x01, 0xFF, 0xFF, 0xA4, 0x49, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0x59, 0x01, 0xFF, 0xFF - .byte 0x9C, 0x49, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x5A, 0x01, 0xFF, 0xFF, 0x94, 0x49, 0x0A, 0x02 - .byte 0x09, 0x00, 0xBA, 0x00, 0x5B, 0x01, 0xFF, 0xFF, 0x8C, 0x49, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00 - .byte 0x5C, 0x01, 0xFF, 0xFF, 0x84, 0x49, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x5D, 0x01, 0xFF, 0xFF - .byte 0x7C, 0x49, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0x5E, 0x01, 0xFF, 0xFF, 0x74, 0x49, 0x0A, 0x02 - .byte 0x09, 0x00, 0xBA, 0x00, 0x5F, 0x01, 0xFF, 0xFF, 0x6C, 0x49, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00 - .byte 0x60, 0x01, 0xFF, 0xFF, 0x64, 0x49, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x61, 0x01, 0xFF, 0xFF - .byte 0x5C, 0x49, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x62, 0x01, 0xFF, 0xFF, 0x54, 0x49, 0x0A, 0x02 - .byte 0x06, 0x00, 0xBA, 0x00, 0x63, 0x01, 0xFF, 0xFF, 0x4C, 0x49, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00 - .byte 0x64, 0x01, 0xFF, 0xFF, 0x44, 0x49, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0x65, 0x01, 0xFF, 0xFF - .byte 0x3C, 0x49, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0x66, 0x01, 0xFF, 0xFF, 0x34, 0x49, 0x0A, 0x02 - .byte 0x06, 0x00, 0xBA, 0x00, 0x67, 0x01, 0xFF, 0xFF, 0x2C, 0x49, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00 - .byte 0x68, 0x01, 0xFF, 0xFF, 0x24, 0x49, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x69, 0x01, 0xFF, 0xFF - .byte 0x1C, 0x49, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0x6A, 0x01, 0xFF, 0xFF, 0x14, 0x49, 0x0A, 0x02 - .byte 0x06, 0x00, 0xBA, 0x00, 0x6B, 0x01, 0xFF, 0xFF, 0x0C, 0x49, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00 - .byte 0x6C, 0x01, 0xFF, 0xFF, 0x04, 0x49, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0x6D, 0x01, 0xFF, 0xFF - .byte 0xDC, 0x48, 0x0A, 0x02, 0x04, 0x00, 0xBA, 0x00, 0x6E, 0x01, 0xFF, 0xFF, 0xF4, 0x48, 0x0A, 0x02 - .byte 0x09, 0x00, 0xBA, 0x00, 0x6F, 0x01, 0xFF, 0xFF, 0xDC, 0x4A, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00 - .byte 0x70, 0x01, 0xFF, 0xFF, 0xFC, 0x4A, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0x71, 0x01, 0xFF, 0xFF - .byte 0xE4, 0x4E, 0x0A, 0x02, 0x04, 0x00, 0xBA, 0x00, 0x72, 0x01, 0xFF, 0xFF, 0xD4, 0x48, 0x0A, 0x02 - .byte 0x09, 0x00, 0xBA, 0x00, 0x73, 0x01, 0xFF, 0xFF, 0xCC, 0x48, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00 - .byte 0x74, 0x01, 0xFF, 0xFF, 0xC4, 0x48, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0x75, 0x01, 0xFF, 0xFF - .byte 0xBC, 0x48, 0x0A, 0x02, 0x04, 0x00, 0xBA, 0x00, 0x76, 0x01, 0xFF, 0xFF, 0x8C, 0x4A, 0x0A, 0x02 - .byte 0x06, 0x00, 0xBA, 0x00, 0x77, 0x01, 0xFF, 0xFF, 0xAC, 0x48, 0x0A, 0x02, 0x07, 0x00, 0xBA, 0x00 - .byte 0x78, 0x01, 0xFF, 0xFF, 0x6C, 0x4A, 0x0A, 0x02, 0x07, 0x00, 0xBA, 0x00, 0x79, 0x01, 0xFF, 0xFF - .byte 0x64, 0x4A, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x7A, 0x01, 0xFF, 0xFF, 0x94, 0x48, 0x0A, 0x02 - .byte 0x06, 0x00, 0xBA, 0x00, 0x7B, 0x01, 0xFF, 0xFF, 0x8C, 0x48, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00 - .byte 0x7C, 0x01, 0xFF, 0xFF, 0x2C, 0x4A, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0x7D, 0x01, 0xFF, 0xFF - .byte 0x7C, 0x48, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x7E, 0x01, 0xFF, 0xFF, 0x74, 0x48, 0x0A, 0x02 - .byte 0x09, 0x00, 0xBA, 0x00, 0x7F, 0x01, 0xFF, 0xFF, 0x6C, 0x48, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00 - .byte 0x80, 0x01, 0xFF, 0xFF, 0xF4, 0x49, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x81, 0x01, 0xFF, 0xFF - .byte 0x34, 0x47, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0x82, 0x01, 0xFF, 0xFF, 0x54, 0x48, 0x0A, 0x02 - .byte 0x06, 0x00, 0xBA, 0x00, 0x83, 0x01, 0xFF, 0xFF, 0xBC, 0x49, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00 - .byte 0x84, 0x01, 0xFF, 0xFF, 0x44, 0x48, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x85, 0x01, 0xFF, 0xFF - .byte 0x3C, 0x48, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0x86, 0x01, 0xFF, 0xFF, 0x34, 0x48, 0x0A, 0x02 - .byte 0x09, 0x00, 0xBA, 0x00, 0x87, 0x01, 0xFF, 0xFF, 0x2C, 0x48, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00 - .byte 0x88, 0x01, 0xFF, 0xFF, 0x24, 0x48, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0x89, 0x01, 0xFF, 0xFF - .byte 0x1C, 0x48, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0x8A, 0x01, 0xFF, 0xFF, 0x14, 0x48, 0x0A, 0x02 - .byte 0x04, 0x00, 0xBA, 0x00, 0x8B, 0x01, 0xFF, 0xFF, 0x0C, 0x48, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00 - .byte 0x8C, 0x01, 0xFF, 0xFF, 0x04, 0x48, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0x8D, 0x01, 0xFF, 0xFF - .byte 0xE4, 0x47, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x8E, 0x01, 0xFF, 0xFF, 0xFC, 0x47, 0x0A, 0x02 - .byte 0x06, 0x00, 0xBA, 0x00, 0x8F, 0x01, 0xFF, 0xFF, 0xE4, 0x48, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00 - .byte 0x90, 0x01, 0xFF, 0xFF, 0xE4, 0x4A, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0x91, 0x01, 0xFF, 0xFF - .byte 0xEC, 0x4E, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0x92, 0x01, 0xFF, 0xFF, 0xD4, 0x47, 0x0A, 0x02 - .byte 0x01, 0x00, 0xBA, 0x00, 0x93, 0x01, 0xFF, 0xFF, 0xCC, 0x47, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00 - .byte 0x94, 0x01, 0xFF, 0xFF, 0x84, 0x4A, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0x95, 0x01, 0xFF, 0xFF - .byte 0x4C, 0x47, 0x0A, 0x02, 0x01, 0x00, 0xBA, 0x00, 0x96, 0x01, 0xFF, 0xFF, 0xB4, 0x47, 0x0A, 0x02 - .byte 0x06, 0x00, 0xBA, 0x00, 0x97, 0x01, 0xFF, 0xFF, 0x84, 0x48, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00 - .byte 0x98, 0x01, 0xFF, 0xFF, 0xA4, 0x47, 0x0A, 0x02, 0x04, 0x00, 0xBA, 0x00, 0x99, 0x01, 0xFF, 0xFF - .byte 0x64, 0x48, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x9A, 0x01, 0xFF, 0xFF, 0x4C, 0x48, 0x0A, 0x02 - .byte 0x06, 0x00, 0xBA, 0x00, 0x9B, 0x01, 0xFF, 0xFF, 0x8C, 0x47, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00 - .byte 0x9C, 0x01, 0xFF, 0xFF, 0x84, 0x47, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x9D, 0x01, 0xFF, 0xFF - .byte 0x6C, 0x47, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0x9E, 0x01, 0xFF, 0xFF, 0xDC, 0x47, 0x0A, 0x02 - .byte 0x06, 0x00, 0xBA, 0x00, 0x9F, 0x01, 0xFF, 0xFF, 0xEC, 0x47, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00 - .byte 0xA0, 0x01, 0xFF, 0xFF, 0xEC, 0x48, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0xA1, 0x01, 0xFF, 0xFF - .byte 0xDC, 0x52, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0xA2, 0x01, 0xFF, 0xFF, 0x54, 0x47, 0x0A, 0x02 - .byte 0x06, 0x00, 0xBA, 0x00, 0xA3, 0x01, 0xFF, 0xFF, 0xA4, 0x48, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00 - .byte 0xA4, 0x01, 0xFF, 0xFF, 0xAC, 0x47, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0xA5, 0x01, 0xFF, 0xFF - .byte 0x3C, 0x47, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0xA6, 0x01, 0xFF, 0xFF, 0x94, 0x47, 0x0A, 0x02 - .byte 0x06, 0x00, 0xBA, 0x00, 0xA7, 0x01, 0xFF, 0xFF, 0x74, 0x47, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00 - .byte 0xA8, 0x01, 0xFF, 0xFF, 0xF4, 0x47, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0xA9, 0x01, 0xFF, 0xFF - .byte 0xE4, 0x52, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0xAA, 0x01, 0xFF, 0xFF, 0x2C, 0x47, 0x0A, 0x02 - .byte 0x09, 0x00, 0xBA, 0x00, 0xAB, 0x01, 0xFF, 0xFF, 0x5C, 0x47, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00 - .byte 0xAC, 0x01, 0xFF, 0xFF, 0x64, 0x47, 0x0A, 0x02, 0x09, 0x00, 0xBA, 0x00, 0xAD, 0x01, 0xFF, 0xFF - .byte 0x0C, 0x54, 0x0A, 0x02, 0x06, 0x00, 0xBA, 0x00, 0xAE, 0x01, 0xFF, 0xFF, 0x44, 0x47, 0x0A, 0x02 - .byte 0x06, 0x00, 0xBA, 0x00, 0xAF, 0x01, 0xFF, 0xFF, 0x7C, 0x47, 0x0A, 0x02, 0x5F, 0x00, 0x22, 0x00 - .byte 0x10, 0x00, 0x13, 0x00, 0x1B, 0x00, 0x29, 0x00, 0x01, 0x00, 0x04, 0x00, 0x98, 0x00, 0x07, 0x00 - .byte 0x18, 0x01, 0x73, 0x03, 0xA6, 0x01, 0xAC, 0x01, 0x04, 0x00, 0xF0, 0x02, 0x9B, 0x00, 0x9E, 0x00 - .byte 0x1B, 0x01, 0x1E, 0x01, 0xA9, 0x01, 0xA6, 0x01, 0x07, 0x00, 0x01, 0x00, 0x9E, 0x00, 0x18, 0x01 - .byte 0x1E, 0x01, 0x9B, 0x00, 0xAC, 0x01, 0xA9, 0x01, 0x19, 0x00, 0xA9, 0x01, 0x48, 0x01, 0xA6, 0x01 - .byte 0xE9, 0x01, 0xAC, 0x01, 0x25, 0x00, 0x19, 0x00, 0x02, 0x01, 0xE8, 0x01, 0x85, 0x00, 0x34, 0x00 - .byte 0x50, 0x4C, 0x41, 0x59, 0x45, 0x52, 0x00, 0x00, 0x54, 0x41, 0x4C, 0x4B, 0x5F, 0x53, 0x55, 0x42 - .byte 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x4D, 0x59, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x48, 0x45, 0x52, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x55, 0x50, 0x41, 0x41, 0x00, 0x00, 0x00, 0x00, 0x55, 0x4E, 0x49, 0x54, 0x5F, 0x4E, 0x50, 0x43 - .byte 0x31, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x59, 0x41, 0x44, 0x4F, 0x4E, 0x00, 0x00, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x52, 0x55, 0x47, 0x49, 0x41, 0x00, 0x00, 0x00, 0x55, 0x4E, 0x49, 0x54 - .byte 0x5F, 0x4E, 0x50, 0x43, 0x33, 0x00, 0x00, 0x00, 0x4F, 0x42, 0x4A, 0x45, 0x43, 0x54, 0x30, 0x30 - .byte 0x32, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x4B, 0x4F, 0x49, 0x52, 0x55, 0x00, 0x00, 0x00 - .byte 0x55, 0x4E, 0x49, 0x54, 0x5F, 0x4E, 0x50, 0x43, 0x32, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x50, 0x4F, 0x50, 0x50, 0x4F, 0x00, 0x00, 0x00, 0x4F, 0x42, 0x4A, 0x45, 0x43, 0x54, 0x30, 0x30 - .byte 0x31, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x44, 0x45, 0x42, 0x55, 0x47, 0x00, 0x00, 0x00 - .byte 0x54, 0x41, 0x4C, 0x4B, 0x5F, 0x4D, 0x41, 0x49, 0x4E, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x42, 0x49, 0x50, 0x50, 0x41, 0x00, 0x00, 0x00, 0x55, 0x4E, 0x49, 0x54, 0x5F, 0x4E, 0x50, 0x43 - .byte 0x34, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x48, 0x4F, 0x55, 0x4F, 0x55, 0x00, 0x00, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x4B, 0x55, 0x52, 0x41, 0x42, 0x55, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4D, 0x41, 0x4E, 0x41, 0x46, 0x49, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x4F, 0x54, 0x41, 0x43 - .byte 0x48, 0x49, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x44, 0x49, 0x47, 0x55, 0x44, 0x41, 0x00, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x4B, 0x4F, 0x49, 0x52, 0x55, 0x32, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4D, 0x41, 0x4E, 0x45, 0x4E, 0x45, 0x00, 0x00, 0x41, 0x54, 0x54, 0x45, 0x4E, 0x44, 0x41, 0x4E - .byte 0x54, 0x32, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x46, 0x49, 0x4F, 0x4E, 0x45, 0x32, 0x00, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x4D, 0x41, 0x4E, 0x4B, 0x49, 0x49, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x46, 0x49, 0x4F, 0x4E, 0x45, 0x37, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x46, 0x49, 0x4F, 0x4E - .byte 0x45, 0x35, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x46, 0x49, 0x4F, 0x4E, 0x45, 0x33, 0x00, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x47, 0x4F, 0x52, 0x4F, 0x4F, 0x4E, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x46, 0x49, 0x4F, 0x4E, 0x45, 0x31, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x4E, 0x59, 0x55, 0x55 - .byte 0x52, 0x41, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x52, 0x41, 0x4B, 0x4B, 0x49, 0x49, 0x00, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x4B, 0x4F, 0x44, 0x4F, 0x52, 0x41, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x55, 0x52, 0x49, 0x52, 0x49, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x46, 0x49, 0x4F, 0x4E - .byte 0x45, 0x38, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x46, 0x49, 0x4F, 0x4E, 0x45, 0x34, 0x00, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x4D, 0x41, 0x52, 0x49, 0x52, 0x55, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4D, 0x41, 0x4E, 0x4D, 0x55, 0x55, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x52, 0x45, 0x44, 0x49 - .byte 0x42, 0x41, 0x00, 0x00, 0x41, 0x54, 0x54, 0x45, 0x4E, 0x44, 0x41, 0x4E, 0x54, 0x31, 0x00, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x4F, 0x4B, 0x55, 0x54, 0x41, 0x4E, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x46, 0x49, 0x4F, 0x4E, 0x45, 0x36, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x53, 0x48, 0x45, 0x49 - .byte 0x4D, 0x49, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x53, 0x45, 0x52, 0x45, 0x42, 0x49, 0x49, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x50, 0x4F, 0x4E, 0x49, 0x49, 0x54, 0x41, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x5A, 0x55, 0x42, 0x41, 0x54, 0x54, 0x4F, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x47, 0x41, 0x42, 0x41 - .byte 0x49, 0x54, 0x4F, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x4B, 0x41, 0x49, 0x4F, 0x4F, 0x47, 0x41, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x42, 0x49, 0x49, 0x4B, 0x55, 0x49, 0x4E, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x50, 0x55, 0x4B, 0x55, 0x52, 0x49, 0x4E, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x4B, 0x4F, 0x44, 0x4F - .byte 0x52, 0x41, 0x32, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x53, 0x5F, 0x42, 0x49, 0x50, 0x50, 0x41, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x54, 0x4F, 0x47, 0x45, 0x50, 0x49, 0x49, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4B, 0x4F, 0x4F, 0x54, 0x41, 0x53, 0x55, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x53, 0x48, 0x45, 0x49 - .byte 0x4D, 0x49, 0x34, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x53, 0x48, 0x45, 0x49, 0x4D, 0x49, 0x31, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x50, 0x41, 0x52, 0x55, 0x4B, 0x49, 0x41, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x41, 0x41, 0x42, 0x4F, 0x4B, 0x4B, 0x55, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x50, 0x4F, 0x52, 0x49 - .byte 0x47, 0x4F, 0x4E, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x4D, 0x45, 0x54, 0x41, 0x4D, 0x4F, 0x4E, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x47, 0x41, 0x52, 0x55, 0x55, 0x52, 0x41, 0x00, 0x46, 0x52, 0x49, 0x45 - .byte 0x4E, 0x44, 0x5F, 0x4E, 0x50, 0x43, 0x39, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x53, 0x55, 0x52, 0x49 - .byte 0x49, 0x50, 0x55, 0x00, 0x45, 0x56, 0x45, 0x4E, 0x54, 0x5F, 0x4E, 0x50, 0x43, 0x30, 0x31, 0x00 - .byte 0x46, 0x52, 0x49, 0x45, 0x4E, 0x44, 0x5F, 0x4E, 0x50, 0x43, 0x31, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x41, 0x50, 0x50, 0x4F, 0x49, 0x4E, 0x54, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x57, 0x41, 0x54, 0x41 - .byte 0x4B, 0x4B, 0x4F, 0x00, 0x46, 0x52, 0x49, 0x45, 0x4E, 0x44, 0x5F, 0x4E, 0x50, 0x43, 0x32, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x54, 0x45, 0x53, 0x54, 0x30, 0x30, 0x32, 0x00, 0x46, 0x52, 0x49, 0x45 - .byte 0x4E, 0x44, 0x5F, 0x4E, 0x50, 0x43, 0x36, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x54, 0x45, 0x53, 0x54 - .byte 0x30, 0x30, 0x39, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x54, 0x45, 0x53, 0x54, 0x30, 0x30, 0x31, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x4B, 0x4F, 0x44, 0x4F, 0x52, 0x41, 0x34, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x55, 0x53, 0x4F, 0x4B, 0x4B, 0x49, 0x49, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x53, 0x55, 0x42, 0x4F - .byte 0x4D, 0x49, 0x49, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x50, 0x41, 0x52, 0x54, 0x4E, 0x45, 0x52, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x52, 0x49, 0x4E, 0x47, 0x55, 0x4D, 0x41, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x41, 0x47, 0x55, 0x4E, 0x4F, 0x4D, 0x55, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x54, 0x41, 0x4E, 0x45 - .byte 0x42, 0x4F, 0x4F, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x44, 0x49, 0x41, 0x52, 0x55, 0x47, 0x41, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x53, 0x48, 0x45, 0x49, 0x4D, 0x49, 0x35, 0x00, 0x46, 0x52, 0x49, 0x45 - .byte 0x4E, 0x44, 0x5F, 0x4E, 0x50, 0x43, 0x38, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x54, 0x45, 0x53, 0x54 - .byte 0x30, 0x31, 0x30, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x52, 0x41, 0x4B, 0x55, 0x52, 0x41, 0x49, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x44, 0x4F, 0x4E, 0x4D, 0x45, 0x52, 0x55, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x54, 0x45, 0x53, 0x54, 0x30, 0x30, 0x34, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x54, 0x45, 0x53, 0x54 - .byte 0x30, 0x30, 0x33, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x4D, 0x45, 0x52, 0x49, 0x49, 0x50, 0x55, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x54, 0x45, 0x53, 0x54, 0x30, 0x30, 0x38, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x48, 0x45, 0x52, 0x55, 0x47, 0x41, 0x41, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x54, 0x45, 0x53, 0x54 - .byte 0x30, 0x30, 0x36, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x42, 0x55, 0x55, 0x42, 0x41, 0x41, 0x4E, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x4E, 0x41, 0x53, 0x53, 0x48, 0x49, 0x49, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x48, 0x45, 0x49, 0x4D, 0x49, 0x33, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x42, 0x41, 0x4B, 0x55 - .byte 0x55, 0x44, 0x41, 0x00, 0x46, 0x52, 0x49, 0x45, 0x4E, 0x44, 0x5F, 0x4E, 0x50, 0x43, 0x35, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x48, 0x49, 0x4E, 0x42, 0x41, 0x53, 0x55, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4B, 0x4F, 0x44, 0x4F, 0x52, 0x41, 0x36, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x54, 0x45, 0x53, 0x54 - .byte 0x30, 0x30, 0x35, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x44, 0x4F, 0x47, 0x41, 0x41, 0x53, 0x55, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x53, 0x48, 0x45, 0x49, 0x4D, 0x49, 0x32, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x43, 0x48, 0x49, 0x52, 0x49, 0x49, 0x4E, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x47, 0x4F, 0x4F, 0x53 - .byte 0x55, 0x54, 0x4F, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x4E, 0x45, 0x49, 0x54, 0x59, 0x49, 0x4F, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x4B, 0x4F, 0x44, 0x4F, 0x52, 0x41, 0x33, 0x00, 0x45, 0x56, 0x45, 0x4E - .byte 0x54, 0x5F, 0x4E, 0x50, 0x43, 0x30, 0x34, 0x00, 0x46, 0x52, 0x49, 0x45, 0x4E, 0x44, 0x5F, 0x4E - .byte 0x50, 0x43, 0x34, 0x00, 0x46, 0x52, 0x49, 0x45, 0x4E, 0x44, 0x5F, 0x4E, 0x50, 0x43, 0x33, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x48, 0x45, 0x49, 0x47, 0x41, 0x4E, 0x49, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x54, 0x45, 0x53, 0x54, 0x30, 0x30, 0x37, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x4A, 0x55, 0x50, 0x45 - .byte 0x54, 0x54, 0x41, 0x00, 0x46, 0x52, 0x49, 0x45, 0x4E, 0x44, 0x5F, 0x4E, 0x50, 0x43, 0x37, 0x00 - .byte 0x45, 0x56, 0x45, 0x4E, 0x54, 0x5F, 0x4E, 0x50, 0x43, 0x30, 0x32, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x48, 0x41, 0x53, 0x53, 0x41, 0x4D, 0x55, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x4B, 0x4F, 0x44, 0x4F - .byte 0x52, 0x41, 0x35, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x42, 0x49, 0x49, 0x44, 0x41, 0x52, 0x55, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x50, 0x49, 0x4E, 0x50, 0x55, 0x4B, 0x55, 0x00, 0x50, 0x4C, 0x41, 0x59 - .byte 0x45, 0x52, 0x5F, 0x48, 0x45, 0x52, 0x4F, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x42, 0x41, 0x4E, 0x45 - .byte 0x42, 0x55, 0x55, 0x00, 0x45, 0x56, 0x45, 0x4E, 0x54, 0x5F, 0x4E, 0x50, 0x43, 0x30, 0x33, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x50, 0x45, 0x52, 0x41, 0x50, 0x50, 0x55, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4B, 0x45, 0x4D, 0x55, 0x53, 0x53, 0x4F, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x44, 0x45, 0x4E, 0x52 - .byte 0x59, 0x55, 0x55, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x53, 0x4F, 0x4F, 0x4E, 0x41, 0x4E, 0x4F, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x44, 0x4F, 0x47, 0x4F, 0x4F, 0x4D, 0x55, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x59, 0x55, 0x4B, 0x55, 0x53, 0x48, 0x49, 0x49, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x45, 0x4D, 0x55, 0x52, 0x49, 0x54, 0x54, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4B, 0x49, 0x4D, 0x41, 0x57, 0x41, 0x52, 0x49, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x44, 0x4F, 0x52, 0x41, 0x50, 0x49, 0x4F, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x44, 0x41, 0x41, 0x4B, 0x55, 0x52, 0x41, 0x49, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x45, 0x4B, 0x4B, 0x55, 0x55, 0x5A, 0x41, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4A, 0x49, 0x52, 0x41, 0x41, 0x43, 0x48, 0x49, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x41, 0x4B, 0x55, 0x52, 0x41, 0x49, 0x36, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4F, 0x4F, 0x53, 0x55, 0x42, 0x41, 0x4D, 0x45, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x42, 0x55, 0x52, 0x41, 0x4B, 0x4B, 0x49, 0x49, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4E, 0x4F, 0x4B, 0x55, 0x54, 0x41, 0x53, 0x55, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x42, 0x41, 0x53, 0x48, 0x41, 0x41, 0x4D, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x5A, 0x41, 0x4E, 0x47, 0x55, 0x55, 0x53, 0x55, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x41, 0x4B, 0x55, 0x52, 0x41, 0x49, 0x32, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x54, 0x41, 0x54, 0x53, 0x55, 0x42, 0x45, 0x49, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x41, 0x4E, 0x44, 0x4F, 0x50, 0x41, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4E, 0x4F, 0x4B, 0x4F, 0x54, 0x43, 0x48, 0x49, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4F, 0x4E, 0x49, 0x47, 0x4F, 0x4F, 0x52, 0x49, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4E, 0x41, 0x4D, 0x41, 0x4B, 0x45, 0x52, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x45, 0x52, 0x55, 0x52, 0x45, 0x49, 0x44, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x41, 0x4B, 0x55, 0x52, 0x41, 0x49, 0x37, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x47, 0x55, 0x52, 0x41, 0x49, 0x47, 0x41, 0x41, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x44, 0x4F, 0x53, 0x41, 0x49, 0x44, 0x4F, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4D, 0x41, 0x4E, 0x59, 0x55, 0x55, 0x52, 0x41, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x50, 0x4F, 0x52, 0x49, 0x47, 0x4F, 0x4E, 0x32, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x45, 0x4E, 0x50, 0x45, 0x52, 0x55, 0x54, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x47, 0x4F, 0x4F, 0x53, 0x55, 0x54, 0x4F, 0x32, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x41, 0x4B, 0x55, 0x52, 0x41, 0x49, 0x38, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x44, 0x41, 0x49, 0x4E, 0x4F, 0x4F, 0x5A, 0x55, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x41, 0x41, 0x4E, 0x41, 0x49, 0x54, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x47, 0x4F, 0x4F, 0x53, 0x55, 0x54, 0x4F, 0x33, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x41, 0x41, 0x4D, 0x41, 0x52, 0x55, 0x44, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x46, 0x52, 0x49, 0x45 - .byte 0x4E, 0x44, 0x5F, 0x4E, 0x50, 0x43, 0x31, 0x33, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x48, 0x49, 0x49, 0x44, 0x4F, 0x52, 0x41, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x46, 0x52, 0x49, 0x45 - .byte 0x4E, 0x44, 0x5F, 0x4E, 0x50, 0x43, 0x31, 0x34, 0x00, 0x00, 0x00, 0x00, 0x46, 0x52, 0x49, 0x45 - .byte 0x4E, 0x44, 0x5F, 0x4E, 0x50, 0x43, 0x31, 0x30, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x4F, 0x4F, 0x4E, 0x41, 0x4E, 0x53, 0x55, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x55, 0x4B, 0x4F, 0x52, 0x55, 0x50, 0x49, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x41, 0x4B, 0x55, 0x52, 0x41, 0x49, 0x35, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x50, 0x41, 0x52, 0x54, 0x4E, 0x45, 0x52, 0x32, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x55, 0x4E, 0x50, 0x41, 0x50, 0x50, 0x41, 0x00, 0x00, 0x00, 0x00, 0x46, 0x52, 0x49, 0x45 - .byte 0x4E, 0x44, 0x5F, 0x4E, 0x50, 0x43, 0x31, 0x32, 0x00, 0x00, 0x00, 0x00, 0x46, 0x52, 0x49, 0x45 - .byte 0x4E, 0x44, 0x5F, 0x4E, 0x50, 0x43, 0x31, 0x35, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x49, 0x4E, 0x47, 0x55, 0x4D, 0x41, 0x32, 0x00, 0x00, 0x00, 0x00, 0x46, 0x52, 0x49, 0x45 - .byte 0x4E, 0x44, 0x5F, 0x4E, 0x50, 0x43, 0x31, 0x31, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4D, 0x49, 0x4B, 0x41, 0x52, 0x55, 0x47, 0x45, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x47, 0x41, 0x52, 0x41, 0x47, 0x41, 0x52, 0x41, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x41, 0x50, 0x55, 0x52, 0x41, 0x53, 0x55, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4F, 0x4D, 0x55, 0x53, 0x55, 0x54, 0x41, 0x41, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4B, 0x4F, 0x49, 0x4B, 0x49, 0x4E, 0x47, 0x55, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x54, 0x41, 0x4D, 0x41, 0x54, 0x41, 0x4D, 0x41, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x5F, 0x44, 0x49, 0x47, 0x55, 0x44, 0x41, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x48, 0x49, 0x4D, 0x45, 0x47, 0x55, 0x4D, 0x41, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4D, 0x55, 0x43, 0x48, 0x55, 0x55, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4A, 0x55, 0x50, 0x55, 0x54, 0x4F, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x47, 0x4F, 0x4F, 0x52, 0x49, 0x4B, 0x49, 0x49, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4E, 0x45, 0x4E, 0x44, 0x4F, 0x4F, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x50, 0x4C, 0x41, 0x59 - .byte 0x45, 0x52, 0x5F, 0x42, 0x49, 0x50, 0x50, 0x41, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x42, 0x41, 0x4B, 0x55, 0x4F, 0x4E, 0x47, 0x55, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x43, 0x48, 0x41, 0x41, 0x52, 0x45, 0x4D, 0x55, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4B, 0x55, 0x43, 0x48, 0x49, 0x49, 0x54, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x41, 0x4B, 0x55, 0x52, 0x41, 0x49, 0x33, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x41, 0x4B, 0x55, 0x52, 0x41, 0x49, 0x34, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x59, 0x41, 0x4D, 0x49, 0x52, 0x41, 0x4D, 0x49, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x59, 0x4F, 0x4D, 0x41, 0x57, 0x41, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x45, 0x4A, 0x49, 0x41, 0x49, 0x53, 0x55, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x46, 0x55, 0x52, 0x49, 0x49, 0x5A, 0x41, 0x41, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x47, 0x55, 0x52, 0x41, 0x41, 0x44, 0x4F, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x45, 0x4E, 0x54, 0x4F, 0x52, 0x41, 0x41, 0x00, 0x00, 0x00, 0x00, 0x46, 0x52, 0x49, 0x45 - .byte 0x4E, 0x44, 0x5F, 0x4E, 0x50, 0x43, 0x31, 0x36, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4D, 0x55, 0x55, 0x4D, 0x41, 0x41, 0x4A, 0x49, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x47, 0x55, 0x52, 0x45, 0x47, 0x47, 0x55, 0x52, 0x55, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4A, 0x49, 0x42, 0x41, 0x4B, 0x4F, 0x49, 0x52, 0x55, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x45, 0x52, 0x45, 0x4B, 0x49, 0x42, 0x55, 0x52, 0x55, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x59, 0x4F, 0x4E, 0x4F, 0x57, 0x41, 0x41, 0x52, 0x55, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4D, 0x41, 0x53, 0x55, 0x4B, 0x49, 0x50, 0x50, 0x41, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x47, 0x49, 0x52, 0x41, 0x54, 0x59, 0x49, 0x4E, 0x41, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4B, 0x55, 0x52, 0x45, 0x53, 0x45, 0x52, 0x49, 0x41, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x49, 0x52, 0x55, 0x4D, 0x49, 0x49, 0x5A, 0x45, 0x31, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x49, 0x52, 0x55, 0x4D, 0x49, 0x49, 0x5A, 0x45, 0x32, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x49, 0x52, 0x55, 0x4D, 0x49, 0x49, 0x5A, 0x45, 0x33, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x49, 0x52, 0x55, 0x4D, 0x49, 0x49, 0x5A, 0x45, 0x34, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4B, 0x41, 0x47, 0x45, 0x42, 0x4F, 0x55, 0x5A, 0x55, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x42, 0x49, 0x50, 0x50, 0x41, 0x5F, 0x42, 0x52, 0x4F, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x42, 0x49, 0x50, 0x50, 0x41, 0x5F, 0x53, 0x49, 0x53, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x42, 0x45, 0x54, 0x4F, 0x42, 0x45, 0x54, 0x41, 0x41, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x55, 0x54, 0x4F, 0x52, 0x41, 0x49, 0x4B, 0x55, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4E, 0x59, 0x4F, 0x52, 0x4F, 0x54, 0x4F, 0x4E, 0x4F, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4F, 0x4E, 0x49, 0x47, 0x4F, 0x4F, 0x52, 0x49, 0x32, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4F, 0x4E, 0x49, 0x47, 0x4F, 0x4F, 0x52, 0x49, 0x33, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x4F, 0x5A, 0x55, 0x52, 0x45, 0x49, 0x44, 0x4F, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4F, 0x4E, 0x49, 0x47, 0x4F, 0x4F, 0x52, 0x49, 0x34, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4F, 0x4B, 0x4F, 0x52, 0x49, 0x5A, 0x41, 0x52, 0x55, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x42, 0x45, 0x54, 0x4F, 0x42, 0x45, 0x54, 0x4F, 0x4E, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x48, 0x45, 0x49, 0x4D, 0x49, 0x5F, 0x46, 0x43, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x42, 0x41, 0x52, 0x49, 0x59, 0x41, 0x41, 0x44, 0x4F, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4D, 0x45, 0x47, 0x41, 0x59, 0x41, 0x4E, 0x4D, 0x41, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x44, 0x45, 0x52, 0x49, 0x42, 0x41, 0x41, 0x44, 0x4F, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x59, 0x41, 0x4D, 0x49, 0x52, 0x41, 0x4D, 0x49, 0x32, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x59, 0x41, 0x4D, 0x49, 0x52, 0x41, 0x4D, 0x49, 0x33, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x55, 0x4B, 0x55, 0x53, 0x48, 0x49, 0x4F, 0x33, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x55, 0x4B, 0x55, 0x53, 0x48, 0x49, 0x4F, 0x34, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x55, 0x4B, 0x55, 0x53, 0x48, 0x49, 0x4F, 0x35, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x55, 0x4B, 0x55, 0x53, 0x48, 0x49, 0x4F, 0x36, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x55, 0x4B, 0x55, 0x53, 0x48, 0x49, 0x4F, 0x37, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x55, 0x4B, 0x55, 0x53, 0x48, 0x49, 0x4F, 0x38, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4E, 0x49, 0x44, 0x4F, 0x4B, 0x49, 0x4E, 0x47, 0x55, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x5F, 0x43, 0x48, 0x49, 0x52, 0x49, 0x49, 0x4E, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x5F, 0x50, 0x55, 0x4B, 0x55, 0x52, 0x49, 0x4E, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x50, 0x41, 0x43, 0x48, 0x49, 0x52, 0x49, 0x53, 0x55, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x5F, 0x41, 0x47, 0x55, 0x4E, 0x4F, 0x4D, 0x55, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x50, 0x41, 0x54, 0x43, 0x48, 0x49, 0x49, 0x52, 0x55, 0x00, 0x00, 0x00, 0x45, 0x56, 0x45, 0x4E - .byte 0x54, 0x5F, 0x4E, 0x50, 0x43, 0x5F, 0x53, 0x55, 0x42, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4B, 0x49, 0x52, 0x45, 0x49, 0x48, 0x41, 0x4E, 0x41, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x5F, 0x48, 0x45, 0x49, 0x47, 0x41, 0x4E, 0x49, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x41, 0x49, 0x42, 0x4F, 0x52, 0x55, 0x54, 0x4F, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x44, 0x45, 0x4D, 0x4F, 0x5F, 0x48, 0x45, 0x52, 0x4F, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x5F, 0x50, 0x45, 0x52, 0x41, 0x50, 0x50, 0x55, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x55, 0x4E, 0x50, 0x41, 0x50, 0x50, 0x41, 0x32, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x48, 0x45, 0x52, 0x4F, 0x5F, 0x52, 0x45, 0x41, 0x4C, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x55, 0x4E, 0x50, 0x41, 0x50, 0x50, 0x41, 0x33, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x55, 0x4E, 0x50, 0x41, 0x50, 0x50, 0x41, 0x34, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4D, 0x41, 0x47, 0x55, 0x4D, 0x41, 0x47, 0x47, 0x55, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x55, 0x4E, 0x50, 0x41, 0x50, 0x50, 0x41, 0x35, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x44, 0x4F, 0x4F, 0x54, 0x41, 0x4B, 0x55, 0x4E, 0x31, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x44, 0x4F, 0x4F, 0x54, 0x41, 0x4B, 0x55, 0x4E, 0x32, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x44, 0x4F, 0x4F, 0x54, 0x41, 0x4B, 0x55, 0x4E, 0x33, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x44, 0x4F, 0x4F, 0x54, 0x41, 0x4B, 0x55, 0x4E, 0x34, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x44, 0x41, 0x47, 0x55, 0x54, 0x4F, 0x52, 0x49, 0x4F, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x44, 0x4F, 0x4F, 0x54, 0x41, 0x4B, 0x55, 0x4E, 0x35, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x44, 0x4F, 0x4F, 0x54, 0x41, 0x4B, 0x55, 0x4E, 0x36, 0x00, 0x00, 0x00, 0x50, 0x4C, 0x41, 0x59 - .byte 0x45, 0x52, 0x5F, 0x46, 0x55, 0x54, 0x55, 0x52, 0x45, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x59, 0x41, 0x4D, 0x49, 0x52, 0x41, 0x4D, 0x49, 0x34, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x47, 0x59, 0x41, 0x52, 0x41, 0x44, 0x4F, 0x53, 0x55, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4F, 0x4D, 0x55, 0x53, 0x55, 0x54, 0x41, 0x41, 0x32, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x59, 0x41, 0x4D, 0x49, 0x52, 0x41, 0x4D, 0x49, 0x35, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x5F, 0x44, 0x4F, 0x47, 0x4F, 0x4F, 0x4D, 0x55, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x50, 0x45, 0x52, 0x49, 0x50, 0x50, 0x41, 0x41, 0x31, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x50, 0x45, 0x52, 0x49, 0x50, 0x50, 0x41, 0x41, 0x32, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4B, 0x49, 0x4E, 0x4F, 0x47, 0x41, 0x53, 0x53, 0x41, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4B, 0x41, 0x4B, 0x55, 0x52, 0x45, 0x4F, 0x4E, 0x31, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4B, 0x41, 0x4B, 0x55, 0x52, 0x45, 0x4F, 0x4E, 0x32, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x45, 0x4A, 0x49, 0x52, 0x4F, 0x4B, 0x4B, 0x55, 0x00, 0x00, 0x00, 0x50, 0x4C, 0x41, 0x59 - .byte 0x45, 0x52, 0x5F, 0x43, 0x48, 0x41, 0x52, 0x4D, 0x53, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x55, 0x4B, 0x55, 0x53, 0x48, 0x49, 0x4F, 0x31, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x55, 0x4B, 0x55, 0x53, 0x48, 0x49, 0x4F, 0x32, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4D, 0x49, 0x4D, 0x49, 0x52, 0x4F, 0x50, 0x50, 0x55, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x55, 0x4B, 0x41, 0x54, 0x41, 0x4E, 0x4B, 0x55, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x46, 0x55, 0x57, 0x41, 0x52, 0x41, 0x49, 0x44, 0x4F, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x59, 0x41, 0x4D, 0x49, 0x52, 0x41, 0x4D, 0x49, 0x36, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x42, 0x41, 0x52, 0x55, 0x42, 0x49, 0x49, 0x54, 0x4F, 0x31, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x42, 0x41, 0x52, 0x55, 0x42, 0x49, 0x49, 0x54, 0x4F, 0x32, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4A, 0x49, 0x47, 0x55, 0x5A, 0x41, 0x47, 0x55, 0x4D, 0x41, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x42, 0x41, 0x52, 0x55, 0x42, 0x49, 0x49, 0x54, 0x4F, 0x33, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x45, 0x4A, 0x49, 0x47, 0x49, 0x47, 0x41, 0x53, 0x55, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x42, 0x41, 0x52, 0x55, 0x42, 0x49, 0x49, 0x54, 0x4F, 0x34, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4D, 0x41, 0x53, 0x55, 0x4B, 0x49, 0x50, 0x50, 0x41, 0x32, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4D, 0x41, 0x53, 0x55, 0x4B, 0x49, 0x50, 0x50, 0x41, 0x33, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4D, 0x41, 0x53, 0x55, 0x4B, 0x49, 0x50, 0x50, 0x41, 0x34, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4D, 0x41, 0x53, 0x55, 0x4B, 0x49, 0x50, 0x50, 0x41, 0x35, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4D, 0x41, 0x53, 0x55, 0x4B, 0x49, 0x50, 0x50, 0x41, 0x36, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x59, 0x41, 0x4D, 0x49, 0x4B, 0x41, 0x52, 0x41, 0x53, 0x55, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x50, 0x4F, 0x43, 0x48, 0x49, 0x45, 0x4E, 0x41, 0x5F, 0x41, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x50, 0x4F, 0x43, 0x48, 0x49, 0x45, 0x4E, 0x41, 0x5F, 0x42, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x50, 0x4F, 0x43, 0x48, 0x49, 0x45, 0x4E, 0x41, 0x5F, 0x43, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x59, 0x55, 0x4B, 0x49, 0x4B, 0x41, 0x42, 0x55, 0x52, 0x49, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x42, 0x45, 0x54, 0x4F, 0x42, 0x45, 0x54, 0x41, 0x41, 0x32, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x42, 0x45, 0x54, 0x4F, 0x42, 0x45, 0x54, 0x41, 0x41, 0x33, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x42, 0x45, 0x54, 0x4F, 0x42, 0x45, 0x54, 0x41, 0x41, 0x34, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x42, 0x45, 0x54, 0x4F, 0x42, 0x45, 0x54, 0x41, 0x41, 0x35, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x48, 0x45, 0x52, 0x41, 0x4B, 0x55, 0x52, 0x4F, 0x53, 0x55, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x44, 0x45, 0x52, 0x55, 0x42, 0x49, 0x52, 0x55, 0x5F, 0x41, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x44, 0x45, 0x52, 0x55, 0x42, 0x49, 0x52, 0x55, 0x5F, 0x42, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x44, 0x45, 0x52, 0x55, 0x42, 0x49, 0x52, 0x55, 0x5F, 0x43, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x42, 0x45, 0x54, 0x4F, 0x42, 0x45, 0x54, 0x4F, 0x4E, 0x32, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x54, 0x4F, 0x44, 0x4F, 0x5A, 0x45, 0x52, 0x55, 0x47, 0x41, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x42, 0x45, 0x54, 0x4F, 0x42, 0x45, 0x54, 0x4F, 0x4E, 0x33, 0x00, 0x00, 0x50, 0x4C, 0x41, 0x59 - .byte 0x45, 0x52, 0x5F, 0x50, 0x41, 0x52, 0x54, 0x4E, 0x45, 0x52, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x59, 0x55, 0x4B, 0x49, 0x4D, 0x45, 0x4E, 0x4F, 0x4B, 0x4F, 0x00, 0x00, 0x50, 0x4C, 0x41, 0x59 - .byte 0x45, 0x52, 0x5F, 0x50, 0x55, 0x50, 0x55, 0x52, 0x49, 0x4E, 0x00, 0x00, 0x41, 0x54, 0x54, 0x45 - .byte 0x4E, 0x44, 0x41, 0x4E, 0x54, 0x5F, 0x48, 0x45, 0x52, 0x4F, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4D, 0x41, 0x47, 0x55, 0x4D, 0x41, 0x47, 0x47, 0x55, 0x32, 0x00, 0x00, 0x41, 0x44, 0x56, 0x45 - .byte 0x4E, 0x54, 0x55, 0x52, 0x45, 0x5F, 0x4E, 0x50, 0x43, 0x31, 0x00, 0x00, 0x41, 0x44, 0x56, 0x45 - .byte 0x4E, 0x54, 0x55, 0x52, 0x45, 0x5F, 0x4E, 0x50, 0x43, 0x32, 0x00, 0x00, 0x41, 0x44, 0x56, 0x45 - .byte 0x4E, 0x54, 0x55, 0x52, 0x45, 0x5F, 0x4E, 0x50, 0x43, 0x33, 0x00, 0x00, 0x41, 0x44, 0x56, 0x45 - .byte 0x4E, 0x54, 0x55, 0x52, 0x45, 0x5F, 0x4E, 0x50, 0x43, 0x34, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x5F, 0x59, 0x55, 0x4B, 0x55, 0x53, 0x48, 0x49, 0x49, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x5F, 0x45, 0x4D, 0x55, 0x52, 0x49, 0x54, 0x54, 0x4F, 0x00, 0x00, 0x45, 0x56, 0x45, 0x4E - .byte 0x54, 0x5F, 0x4E, 0x50, 0x43, 0x5F, 0x4D, 0x41, 0x49, 0x4E, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x5F, 0x4B, 0x49, 0x4D, 0x41, 0x57, 0x41, 0x52, 0x49, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x54, 0x53, 0x55, 0x42, 0x4F, 0x54, 0x53, 0x55, 0x42, 0x4F, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4B, 0x49, 0x52, 0x45, 0x49, 0x48, 0x41, 0x4E, 0x41, 0x32, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4E, 0x45, 0x57, 0x5F, 0x46, 0x52, 0x49, 0x45, 0x4E, 0x44, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x5F, 0x4A, 0x55, 0x50, 0x55, 0x54, 0x4F, 0x52, 0x55, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4B, 0x49, 0x52, 0x45, 0x49, 0x48, 0x41, 0x4E, 0x41, 0x33, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x48, 0x45, 0x52, 0x4F, 0x5F, 0x46, 0x49, 0x52, 0x53, 0x54, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4B, 0x49, 0x52, 0x45, 0x49, 0x48, 0x41, 0x4E, 0x41, 0x34, 0x00, 0x00, 0x50, 0x4C, 0x41, 0x59 - .byte 0x45, 0x52, 0x5F, 0x41, 0x50, 0x50, 0x4F, 0x49, 0x4E, 0x54, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4B, 0x41, 0x42, 0x55, 0x54, 0x4F, 0x50, 0x55, 0x53, 0x55, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x41, 0x57, 0x41, 0x4D, 0x55, 0x52, 0x41, 0x41, 0x31, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x41, 0x57, 0x41, 0x4D, 0x55, 0x52, 0x41, 0x41, 0x32, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x41, 0x57, 0x41, 0x4D, 0x55, 0x52, 0x41, 0x41, 0x33, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x41, 0x57, 0x41, 0x4D, 0x55, 0x52, 0x41, 0x41, 0x34, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x41, 0x57, 0x41, 0x4D, 0x55, 0x52, 0x41, 0x41, 0x35, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x59, 0x41, 0x52, 0x55, 0x4B, 0x49, 0x4D, 0x4F, 0x4E, 0x4F, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x41, 0x57, 0x41, 0x4D, 0x55, 0x52, 0x41, 0x41, 0x36, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4B, 0x55, 0x52, 0x45, 0x53, 0x45, 0x52, 0x49, 0x41, 0x32, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x42, 0x4F, 0x53, 0x55, 0x47, 0x4F, 0x44, 0x4F, 0x52, 0x41, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4D, 0x41, 0x47, 0x55, 0x4B, 0x41, 0x52, 0x55, 0x47, 0x4F, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4D, 0x41, 0x44, 0x41, 0x54, 0x53, 0x55, 0x42, 0x4F, 0x4D, 0x49, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x59, 0x55, 0x4B, 0x49, 0x57, 0x41, 0x52, 0x41, 0x53, 0x48, 0x49, 0x00, 0x50, 0x4C, 0x41, 0x59 - .byte 0x45, 0x52, 0x5F, 0x50, 0x41, 0x52, 0x54, 0x4E, 0x45, 0x52, 0x32, 0x00, 0x50, 0x4C, 0x41, 0x59 - .byte 0x45, 0x52, 0x5F, 0x4B, 0x49, 0x4D, 0x41, 0x57, 0x41, 0x52, 0x49, 0x00, 0x41, 0x54, 0x54, 0x45 - .byte 0x4E, 0x44, 0x41, 0x4E, 0x54, 0x5F, 0x42, 0x49, 0x50, 0x50, 0x41, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x5F, 0x44, 0x41, 0x47, 0x55, 0x54, 0x4F, 0x52, 0x49, 0x4F, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x5F, 0x59, 0x4F, 0x4E, 0x4F, 0x57, 0x41, 0x41, 0x52, 0x55, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x5F, 0x59, 0x41, 0x4D, 0x49, 0x52, 0x41, 0x4D, 0x49, 0x31, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x5F, 0x59, 0x41, 0x4D, 0x49, 0x52, 0x41, 0x4D, 0x49, 0x32, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x52, 0x45, 0x4A, 0x49, 0x53, 0x55, 0x43, 0x48, 0x49, 0x52, 0x55, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x59, 0x55, 0x4B, 0x49, 0x57, 0x41, 0x52, 0x41, 0x53, 0x48, 0x49, 0x32, 0x00, 0x00, 0x00, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x59, 0x55, 0x4B, 0x49, 0x57, 0x41, 0x52, 0x41, 0x53, 0x48, 0x49, 0x33 - .byte 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x59, 0x55, 0x4B, 0x49, 0x57, 0x41, 0x52, 0x41 - .byte 0x53, 0x48, 0x49, 0x34, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x50, 0x55, 0x4B, 0x55 - .byte 0x52, 0x49, 0x4E, 0x5F, 0x50, 0x41, 0x50, 0x41, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x50, 0x55, 0x4B, 0x55, 0x52, 0x49, 0x4E, 0x5F, 0x4D, 0x41, 0x4D, 0x41, 0x00, 0x00, 0x00, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x59, 0x4F, 0x4E, 0x4F, 0x57, 0x41, 0x41, 0x52, 0x55, 0x5F, 0x4E, 0x38 - .byte 0x00, 0x00, 0x00, 0x00, 0x41, 0x54, 0x54, 0x45, 0x4E, 0x44, 0x41, 0x4E, 0x54, 0x5F, 0x43, 0x48 - .byte 0x41, 0x52, 0x4D, 0x53, 0x00, 0x00, 0x00, 0x00, 0x41, 0x54, 0x54, 0x45, 0x4E, 0x44, 0x41, 0x4E - .byte 0x54, 0x5F, 0x4D, 0x41, 0x4E, 0x41, 0x46, 0x49, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x44, 0x45, 0x4D, 0x4F, 0x5F, 0x50, 0x41, 0x52, 0x54, 0x4E, 0x45, 0x52, 0x00, 0x00, 0x00, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x50, 0x41, 0x52, 0x54, 0x4E, 0x45, 0x52, 0x5F, 0x52, 0x45, 0x41, 0x4C - .byte 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x59, 0x4F, 0x4E, 0x4F, 0x57, 0x41, 0x41, 0x52 - .byte 0x55, 0x5F, 0x4E, 0x39, 0x00, 0x00, 0x00, 0x00, 0x41, 0x54, 0x54, 0x45, 0x4E, 0x44, 0x41, 0x4E - .byte 0x54, 0x5F, 0x46, 0x55, 0x54, 0x55, 0x52, 0x45, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x44, 0x41, 0x52, 0x4B, 0x5F, 0x50, 0x55, 0x4B, 0x55, 0x52, 0x49, 0x4E, 0x00, 0x00, 0x00, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x44, 0x41, 0x52, 0x4B, 0x5F, 0x44, 0x49, 0x41, 0x52, 0x55, 0x47, 0x41 - .byte 0x00, 0x00, 0x00, 0x00, 0x41, 0x54, 0x54, 0x45, 0x4E, 0x44, 0x41, 0x4E, 0x54, 0x5F, 0x50, 0x41 - .byte 0x52, 0x54, 0x4E, 0x45, 0x52, 0x00, 0x00, 0x00, 0x41, 0x54, 0x54, 0x45, 0x4E, 0x44, 0x41, 0x4E - .byte 0x54, 0x5F, 0x41, 0x50, 0x50, 0x4F, 0x49, 0x4E, 0x54, 0x00, 0x00, 0x00, 0x41, 0x54, 0x54, 0x45 - .byte 0x4E, 0x44, 0x41, 0x4E, 0x54, 0x5F, 0x50, 0x55, 0x50, 0x55, 0x52, 0x49, 0x4E, 0x00, 0x00, 0x00 - .byte 0x4E, 0x50, 0x43, 0x5F, 0x50, 0x41, 0x52, 0x54, 0x4E, 0x45, 0x52, 0x5F, 0x46, 0x49, 0x52, 0x53 - .byte 0x54, 0x00, 0x00, 0x00, 0x41, 0x54, 0x54, 0x45, 0x4E, 0x44, 0x41, 0x4E, 0x54, 0x5F, 0x50, 0x41 - .byte 0x52, 0x54, 0x4E, 0x45, 0x52, 0x32, 0x00, 0x00, 0x41, 0x54, 0x54, 0x45, 0x4E, 0x44, 0x41, 0x4E - .byte 0x54, 0x5F, 0x4B, 0x49, 0x4D, 0x41, 0x57, 0x41, 0x52, 0x49, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x4D, 0x45, 0x54, 0x41, 0x4D, 0x4F, 0x4E, 0x5F, 0x4F, 0x54, 0x41, 0x43, 0x48, 0x49, 0x00, 0x00 - .byte 0x4F, 0x42, 0x4A, 0x5F, 0x49, 0x4D, 0x41, 0x47, 0x45, 0x5F, 0x44, 0x4F, 0x4F, 0x54, 0x41, 0x4B - .byte 0x55, 0x4E, 0x00, 0x00, 0x4F, 0x42, 0x4A, 0x5F, 0x49, 0x4D, 0x41, 0x47, 0x45, 0x5F, 0x44, 0x4F - .byte 0x4F, 0x54, 0x41, 0x4B, 0x55, 0x4E, 0x32, 0x00, 0x4F, 0x42, 0x4A, 0x5F, 0x49, 0x4D, 0x41, 0x47 - .byte 0x45, 0x5F, 0x44, 0x4F, 0x4F, 0x54, 0x41, 0x4B, 0x55, 0x4E, 0x33, 0x00, 0x4F, 0x42, 0x4A, 0x5F - .byte 0x49, 0x4D, 0x41, 0x47, 0x45, 0x5F, 0x44, 0x4F, 0x4F, 0x54, 0x41, 0x4B, 0x55, 0x4E, 0x34, 0x00 - .byte 0x4F, 0x42, 0x4A, 0x5F, 0x49, 0x4D, 0x41, 0x47, 0x45, 0x5F, 0x44, 0x4F, 0x4F, 0x54, 0x41, 0x4B - .byte 0x55, 0x4E, 0x35, 0x00, 0x4F, 0x42, 0x4A, 0x5F, 0x49, 0x4D, 0x41, 0x47, 0x45, 0x5F, 0x44, 0x4F - .byte 0x4F, 0x54, 0x41, 0x4B, 0x55, 0x4E, 0x36, 0x00, 0x4F, 0x42, 0x4A, 0x5F, 0x49, 0x4D, 0x41, 0x47 - .byte 0x45, 0x5F, 0x53, 0x41, 0x57, 0x41, 0x4D, 0x55, 0x52, 0x41, 0x41, 0x00, 0x4E, 0x50, 0x43, 0x5F - .byte 0x53, 0x48, 0x41, 0x44, 0x4F, 0x57, 0x5F, 0x44, 0x41, 0x41, 0x4B, 0x55, 0x52, 0x41, 0x49, 0x00 - .byte 0x52, 0x41, 0x4E, 0x44, 0x4F, 0x4D, 0x5F, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5F, 0x4E - .byte 0x50, 0x43, 0x30, 0x31, 0x00, 0x00, 0x00, 0x00, 0x52, 0x41, 0x4E, 0x44, 0x4F, 0x4D, 0x5F, 0x52 - .byte 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5F, 0x4E, 0x50, 0x43, 0x30, 0x32, 0x00, 0x00, 0x00, 0x00 - .byte 0x52, 0x41, 0x4E, 0x44, 0x4F, 0x4D, 0x5F, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5F, 0x4E - .byte 0x50, 0x43, 0x30, 0x33, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x42, 0x4A, 0x5F, 0x49, 0x4D, 0x41, 0x47 - .byte 0x45, 0x5F, 0x52, 0x45, 0x4A, 0x49, 0x47, 0x49, 0x47, 0x41, 0x53, 0x55, 0x00, 0x00, 0x00, 0x00 - .byte 0x4F, 0x42, 0x4A, 0x5F, 0x49, 0x4D, 0x41, 0x47, 0x45, 0x5F, 0x53, 0x41, 0x57, 0x41, 0x4D, 0x55 - .byte 0x52, 0x41, 0x41, 0x32, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x42, 0x4A, 0x5F, 0x49, 0x4D, 0x41, 0x47 - .byte 0x45, 0x5F, 0x53, 0x41, 0x57, 0x41, 0x4D, 0x55, 0x52, 0x41, 0x41, 0x33, 0x00, 0x00, 0x00, 0x00 - .byte 0x4F, 0x42, 0x4A, 0x5F, 0x49, 0x4D, 0x41, 0x47, 0x45, 0x5F, 0x53, 0x41, 0x57, 0x41, 0x4D, 0x55 - .byte 0x52, 0x41, 0x41, 0x34, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x42, 0x4A, 0x5F, 0x49, 0x4D, 0x41, 0x47 - .byte 0x45, 0x5F, 0x53, 0x41, 0x57, 0x41, 0x4D, 0x55, 0x52, 0x41, 0x41, 0x35, 0x00, 0x00, 0x00, 0x00 - .byte 0x4F, 0x42, 0x4A, 0x5F, 0x49, 0x4D, 0x41, 0x47, 0x45, 0x5F, 0x53, 0x41, 0x57, 0x41, 0x4D, 0x55 - .byte 0x52, 0x41, 0x41, 0x36, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x50, 0x43, 0x5F, 0x4D, 0x45, 0x54, 0x41 - .byte 0x4D, 0x4F, 0x4E, 0x5F, 0x4B, 0x49, 0x52, 0x45, 0x49, 0x48, 0x41, 0x4E, 0x41, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x10, 0x69, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00 - .byte 0xAC, 0x6E, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x7A, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x3C, 0x7C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x01, 0x00, 0x00, 0x00, 0x5C, 0x7B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x00, 0xB2, 0x01 - .byte 0x9C, 0x72, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x00, 0xAE, 0x00, 0x3C, 0x7A, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x01, 0x00, 0xC0, 0x00, 0x4C, 0x7C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x01, 0x00, 0x40, 0x02, 0x3C, 0x77, 0x0A, 0x02, 0x00, 0x00, 0x03, 0x01, 0x01, 0x00, 0x2E, 0x04 - .byte 0xFC, 0x77, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x04, 0x6B, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x38, 0x6A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x02, 0x00, 0x00, 0x00, 0x4C, 0x7A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00 - .byte 0xD4, 0x7D, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x24, 0x7E, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0xE8, 0x7D, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x02, 0x00, 0xB2, 0x01, 0x5C, 0x7C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x02, 0x00, 0xAE, 0x00 - .byte 0xFC, 0x7D, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x02, 0x00, 0xC0, 0x00, 0x38, 0x7E, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x02, 0x00, 0x19, 0x01, 0x98, 0x7D, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x02, 0x00, 0x2E, 0x04, 0x34, 0x7D, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x02, 0x00, 0x14, 0x02 - .byte 0x48, 0x7D, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00, 0x48, 0x69, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00, 0x90, 0x69, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x03, 0x00, 0x00, 0x00, 0x6C, 0x69, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00 - .byte 0xD8, 0x69, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00, 0x6C, 0x7A, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00, 0x7C, 0x7A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x03, 0x00, 0x00, 0x00, 0x8C, 0x7A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00 - .byte 0x9C, 0x7A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00, 0x30, 0x6C, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00, 0x54, 0x6C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x03, 0x00, 0x00, 0x00, 0x34, 0x6E, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00 - .byte 0x28, 0x6E, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00, 0xA4, 0x6D, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00, 0x6C, 0x6C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x03, 0x00, 0x00, 0x00, 0x64, 0x6E, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00 - .byte 0xFC, 0x6C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x6C, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00, 0x3C, 0x71, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x03, 0x00, 0x00, 0x00, 0xCC, 0x71, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00 - .byte 0x9C, 0x71, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x71, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00, 0x2C, 0x71, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x03, 0x00, 0x00, 0x00, 0xAC, 0x71, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00 - .byte 0x5C, 0x73, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00, 0xC0, 0x69, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00, 0x18, 0x69, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x00, 0x00, 0xCC, 0x7A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00 - .byte 0x0C, 0x76, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00, 0x18, 0x7F, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x00, 0x00, 0x30, 0x7F, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00 - .byte 0x24, 0x6C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00, 0x70, 0x6E, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00, 0xC4, 0x6E, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x00, 0x00, 0x1C, 0x6E, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00 - .byte 0x0C, 0x7B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00, 0x4C, 0x76, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00, 0x5C, 0x7D, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x00, 0x00, 0x30, 0x69, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00 - .byte 0xB4, 0x6C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00, 0x7C, 0x71, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00, 0x3C, 0x6C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x00, 0x00, 0x7C, 0x76, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00 - .byte 0x70, 0x7D, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00, 0x3C, 0x7B, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00, 0x10, 0x7E, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xB8, 0x00, 0xB4, 0x69, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x7F, 0x01 - .byte 0x84, 0x6C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x80, 0x01, 0x60, 0x6C, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x35, 0x00, 0x38, 0x6D, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x73, 0x00, 0x2C, 0x6D, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x06, 0x00, 0x2B, 0x01 - .byte 0xC8, 0x6D, 0x0A, 0x02, 0x82, 0x45, 0x02, 0x01, 0x05, 0x00, 0xEC, 0x00, 0x68, 0x6D, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xED, 0x00, 0x4C, 0x6E, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x44, 0x01, 0x50, 0x6D, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x51, 0x00 - .byte 0x78, 0x6C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xBD, 0x00, 0x08, 0x6D, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x28, 0x00, 0x7C, 0x6B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x29, 0x00, 0x4C, 0x6B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x32, 0x00 - .byte 0x14, 0x6A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x33, 0x00, 0x0C, 0x77, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x38, 0x00, 0x50, 0x6A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x39, 0x00, 0xCC, 0x74, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x51, 0x00 - .byte 0x84, 0x69, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x60, 0x00, 0x18, 0x6C, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x62, 0x00, 0xF0, 0x69, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x69, 0x00, 0xEC, 0x71, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x6D, 0x00 - .byte 0xD4, 0x6D, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x71, 0x00, 0xA4, 0x6A, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x73, 0x00, 0x00, 0x6C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x82, 0x00, 0x5C, 0x77, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x83, 0x00 - .byte 0xFC, 0x71, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x8B, 0x00, 0x0C, 0x72, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x8B, 0x00, 0x6C, 0x77, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x8D, 0x00, 0x6C, 0x7B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xB2, 0x00 - .byte 0x04, 0x6E, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0D, 0x03, 0xE8, 0x6E, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xB7, 0x00, 0xE0, 0x6A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xB9, 0x00, 0x9C, 0x6C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x18, 0x03 - .byte 0x2C, 0x6F, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x4B, 0x03, 0x4C, 0x72, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xF4, 0x00, 0xC0, 0x6C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x17, 0x01, 0x34, 0x6B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x19, 0x01 - .byte 0x6C, 0x72, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x33, 0x01, 0x9C, 0x77, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x8B, 0x03, 0xAC, 0x77, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x3C, 0x01, 0xCC, 0x7B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x42, 0x01 - .byte 0x00, 0x6F, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x46, 0x01, 0xBC, 0x6A, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x4A, 0x01, 0xFC, 0x72, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xA8, 0x03, 0xBC, 0x72, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x60, 0x01 - .byte 0xAC, 0x6B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x61, 0x01, 0xB8, 0x6E, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x71, 0x01, 0x40, 0x6E, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x7F, 0x01, 0xCC, 0x77, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x80, 0x01 - .byte 0xDC, 0x77, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x83, 0x01, 0x0C, 0x73, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xDE, 0x03, 0xEC, 0x6D, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x99, 0x01, 0xEC, 0x77, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x9A, 0x01 - .byte 0x1C, 0x73, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x9B, 0x01, 0xAC, 0x7C, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x9F, 0x01, 0x3C, 0x73, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xB2, 0x01, 0xCC, 0x69, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xB7, 0x01 - .byte 0x0C, 0x78, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0F, 0x04, 0x1C, 0x78, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xB8, 0x01, 0x4C, 0x73, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x2E, 0x04, 0x2C, 0x78, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xDD, 0x01 - .byte 0x3C, 0x78, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x39, 0x04, 0x2C, 0x6A, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xE3, 0x01, 0xD0, 0x6E, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xE4, 0x01, 0xDC, 0x71, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xEF, 0x01 - .byte 0x7C, 0x73, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xF8, 0x01, 0x8C, 0x73, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xFC, 0x01, 0x9C, 0x73, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x07, 0x02, 0xAC, 0x73, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0A, 0x02 - .byte 0x0C, 0x6F, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0B, 0x02, 0x1C, 0x6F, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0C, 0x02, 0xCC, 0x6C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x0D, 0x02, 0xE4, 0x6C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0E, 0x02 - .byte 0xD0, 0x6B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x10, 0x02, 0xAC, 0x78, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x11, 0x02, 0xCC, 0x73, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x12, 0x02, 0xDC, 0x73, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x13, 0x02 - .byte 0x8C, 0x6A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x13, 0x02, 0x44, 0x6A, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x13, 0x02, 0x74, 0x6A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x13, 0x02, 0xD4, 0x6A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x13, 0x02 - .byte 0x68, 0x6A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x13, 0x02, 0x1C, 0x6B, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x13, 0x02, 0x5C, 0x6A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x13, 0x02, 0xC8, 0x6A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x14, 0x02 - .byte 0xFC, 0x69, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x15, 0x02, 0x4C, 0x6F, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x2A, 0x02, 0xA8, 0x69, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x2A, 0x02, 0x78, 0x69, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x51, 0x00 - .byte 0x20, 0x6A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x10, 0x00, 0x9C, 0x69, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x2D, 0x01, 0xD8, 0x6C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x31, 0x01, 0x8C, 0x6F, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x25, 0x01 - .byte 0xDC, 0x6E, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x1D, 0x03, 0x9C, 0x6F, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xD9, 0x03, 0x2C, 0x74, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x1E, 0x03, 0x1C, 0x79, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x21, 0x01 - .byte 0x2C, 0x79, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x21, 0x01, 0x3C, 0x79, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x21, 0x01, 0x4C, 0x79, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x6B, 0x01, 0xCC, 0x6F, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x7B, 0x00 - .byte 0x6C, 0x74, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x1C, 0x00, 0xFC, 0x6F, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xA5, 0x02, 0x40, 0x6B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xB7, 0x03, 0x98, 0x6D, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x45, 0x00 - .byte 0x1C, 0x7C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xAF, 0x00, 0xA0, 0x6B, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xBA, 0x00, 0x7C, 0x74, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xA5, 0x00, 0xF8, 0x6A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x4F, 0x00 - .byte 0x54, 0x69, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x3B, 0x01, 0x2C, 0x70, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x05, 0x02, 0x3C, 0x70, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xBA, 0x01, 0xAC, 0x74, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xFA, 0x01 - .byte 0x6C, 0x70, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x4F, 0x04, 0x7C, 0x70, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x18, 0x00, 0xDC, 0x6B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xEE, 0x01, 0x3C, 0x6F, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x1D, 0x01 - .byte 0xBC, 0x6F, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xAE, 0x01, 0x9C, 0x70, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xF1, 0x00, 0xAC, 0x79, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xFF, 0x00, 0xBC, 0x79, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xFF, 0x00 - .byte 0xCC, 0x79, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xFF, 0x00, 0xDC, 0x79, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x36, 0x01, 0xDC, 0x70, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x8D, 0x01, 0xFC, 0x79, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xEF, 0x00 - .byte 0x7C, 0x6E, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x7A, 0x00, 0xFC, 0x74, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x90, 0x00, 0x2C, 0x73, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x08, 0x02, 0x2C, 0x7A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x4C, 0x03 - .byte 0xBC, 0x71, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x4A, 0x01, 0x2C, 0x75, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x4A, 0x01, 0x3C, 0x75, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x4A, 0x01, 0x4C, 0x77, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x4A, 0x01 - .byte 0x7C, 0x77, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x4A, 0x01, 0x5C, 0x78, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xB7, 0x01, 0x4C, 0x75, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xB7, 0x01, 0x5C, 0x75, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xB7, 0x01 - .byte 0x6C, 0x75, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0F, 0x04, 0x7C, 0x75, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0F, 0x04, 0x8C, 0x75, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x0F, 0x04, 0x9C, 0x75, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0F, 0x02 - .byte 0x1C, 0x71, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x14, 0x01, 0x60, 0x69, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x97, 0x00, 0x24, 0x69, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x15, 0x01, 0xE4, 0x69, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x2F, 0x02 - .byte 0xBC, 0x75, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x30, 0x02, 0xCC, 0x75, 0x0A, 0x02 - .byte 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x31, 0x02, 0xAC, 0x7A, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01 - .byte 0x05, 0x00, 0x32, 0x02, 0xEC, 0x75, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x33, 0x02 - .byte 0xBC, 0x7A, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x34, 0x02, 0xDC, 0x7A, 0x0A, 0x02 - .byte 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x35, 0x02, 0x3C, 0x72, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01 - .byte 0x05, 0x00, 0x36, 0x02, 0x6C, 0x7C, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x37, 0x02 - .byte 0x2C, 0x76, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x38, 0x02, 0x8C, 0x77, 0x0A, 0x02 - .byte 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x39, 0x02, 0x94, 0x6B, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01 - .byte 0x05, 0x00, 0x3A, 0x02, 0x5C, 0x76, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x3B, 0x02 - .byte 0x1C, 0x7B, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x3C, 0x02, 0x7C, 0x7C, 0x0A, 0x02 - .byte 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x3D, 0x02, 0x8C, 0x7C, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01 - .byte 0x05, 0x00, 0x3D, 0x02, 0x9C, 0x7C, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x2B, 0x02 - .byte 0xAC, 0x7D, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x2C, 0x02, 0x48, 0x7F, 0x0A, 0x02 - .byte 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0xDF, 0x01, 0xCC, 0x76, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01 - .byte 0x05, 0x00, 0xDF, 0x01, 0xDC, 0x76, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0xDF, 0x01 - .byte 0xEC, 0x76, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0xDF, 0x01, 0xFC, 0x76, 0x0A, 0x02 - .byte 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0xDF, 0x01, 0x1C, 0x77, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01 - .byte 0x05, 0x00, 0xDF, 0x01, 0x2C, 0x77, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x2D, 0x02 - .byte 0x60, 0x7E, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x2D, 0x02, 0x74, 0x7E, 0x0A, 0x02 - .byte 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x2D, 0x02, 0x88, 0x7E, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01 - .byte 0x05, 0x00, 0x2D, 0x02, 0x9C, 0x7E, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x2D, 0x02 - .byte 0xB0, 0x7E, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x2D, 0x02, 0xC4, 0x7E, 0x0A, 0x02 - .byte 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x6A, 0x00, 0x7C, 0x7B, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01 - .byte 0x05, 0x00, 0x6A, 0x00, 0x8C, 0x7B, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x6A, 0x00 - .byte 0x9C, 0x7B, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x6A, 0x00, 0xAC, 0x7B, 0x0A, 0x02 - .byte 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x6A, 0x00, 0xBC, 0x7B, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01 - .byte 0x05, 0x00, 0x6A, 0x00, 0xDC, 0x7B, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x2E, 0x02 - .byte 0xD8, 0x7E, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x2E, 0x02, 0x60, 0x7F, 0x0A, 0x02 - .byte 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x2E, 0x02, 0x78, 0x7F, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01 - .byte 0x05, 0x00, 0x2E, 0x02, 0x90, 0x7F, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x2E, 0x02 - .byte 0xA8, 0x7F, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x2E, 0x02, 0xC0, 0x7F, 0x0A, 0x02 - .byte 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x28, 0x02, 0xC0, 0x7D, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01 - .byte 0x05, 0x00, 0x3E, 0x02, 0xEC, 0x7E, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0x12, 0x02 - .byte 0xEC, 0x7B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x4E, 0x01, 0xFC, 0x7B, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xF6, 0x00, 0x0C, 0x7C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xFD, 0x01, 0x74, 0x6D, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xD7, 0x01 - .byte 0x6C, 0x73, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x55, 0x01, 0x6C, 0x78, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x55, 0x01, 0x7C, 0x78, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x55, 0x01, 0x9C, 0x78, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x55, 0x01 - .byte 0xBC, 0x78, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x56, 0x01, 0xEC, 0x73, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x56, 0x01, 0xFC, 0x73, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x56, 0x01, 0x0C, 0x74, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x56, 0x01 - .byte 0x1C, 0x74, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xE6, 0x01, 0x58, 0x6B, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xA0, 0x01, 0x5C, 0x6F, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01 - .byte 0x05, 0x00, 0x9E, 0x01, 0x64, 0x6B, 0x0A, 0x02, 0x00, 0x00, 0x01, 0x01, 0x05, 0x00, 0xA1, 0x01 - .byte 0x6C, 0x6F, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x06, 0x00, 0x0B, 0x04, 0x94, 0x6E, 0x0A, 0x02 - .byte 0x83, 0x45, 0x02, 0x01, 0x06, 0x00, 0xB2, 0x01, 0x3C, 0x74, 0x0A, 0x02, 0x85, 0x45, 0x02, 0x01 - .byte 0x06, 0x00, 0x0A, 0x04, 0x4C, 0x74, 0x0A, 0x02, 0x84, 0x45, 0x02, 0x01, 0x05, 0x00, 0xEA, 0x00 - .byte 0x5C, 0x70, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x93, 0x01, 0xEC, 0x6F, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xF5, 0x01, 0x5C, 0x79, 0x0A, 0x02, 0x00, 0x00, 0x03, 0x02 - .byte 0x05, 0x00, 0x03, 0x02, 0xEC, 0x6A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x8A, 0x01 - .byte 0x1C, 0x70, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x8A, 0x01, 0x8C, 0x74, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x8A, 0x01, 0x9C, 0x74, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x8A, 0x01, 0xBC, 0x74, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x89, 0x00 - .byte 0xE8, 0x6B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x89, 0x00, 0x8C, 0x70, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x89, 0x01, 0x2C, 0x7C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x89, 0x01, 0xBC, 0x7C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x89, 0x01 - .byte 0xD0, 0x7C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x89, 0x01, 0xE4, 0x7C, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x82, 0x01, 0x58, 0x6E, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xED, 0x01, 0x5C, 0x71, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x78, 0x01 - .byte 0xFC, 0x70, 0x0A, 0x02, 0x00, 0x00, 0x03, 0x02, 0x06, 0x00, 0x28, 0x00, 0xF8, 0x7C, 0x0A, 0x02 - .byte 0x86, 0x45, 0x02, 0x02, 0x06, 0x00, 0x3F, 0x02, 0x0C, 0x7D, 0x0A, 0x02, 0x87, 0x45, 0x02, 0x02 - .byte 0x05, 0x00, 0xC2, 0x00, 0x3C, 0x69, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x09, 0x01 - .byte 0x5C, 0x72, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x02, 0x05, 0x00, 0x11, 0x04, 0xA8, 0x6C, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x22, 0x00, 0xAC, 0x75, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x88, 0x01, 0xF4, 0x6E, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x3D, 0x03 - .byte 0x4C, 0x71, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x63, 0x01, 0xFC, 0x75, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xFB, 0x00, 0x10, 0x6B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xF0, 0x00, 0xEC, 0x7A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x2C, 0x01 - .byte 0x8C, 0x71, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x2C, 0x01, 0x6C, 0x76, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x2C, 0x01, 0x8C, 0x76, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x2C, 0x01, 0x9C, 0x76, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x2C, 0x01 - .byte 0xBC, 0x76, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x67, 0x00, 0x80, 0x6D, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x16, 0x02, 0x28, 0x6B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x16, 0x02, 0xC4, 0x6B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x16, 0x02 - .byte 0xE0, 0x6D, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x16, 0x02, 0x8C, 0x6D, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x16, 0x02, 0xB8, 0x6B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x16, 0x02, 0xF0, 0x6C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x43, 0x00 - .byte 0x7C, 0x72, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x3A, 0x01, 0xBC, 0x77, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x4B, 0x01, 0xCC, 0x72, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xF2, 0x00, 0x98, 0x6A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x81, 0x00 - .byte 0x1C, 0x72, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x79, 0x01, 0xB0, 0x6D, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xD4, 0x01, 0x4C, 0x78, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x66, 0x00, 0x2C, 0x72, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x23, 0x01 - .byte 0x8C, 0x78, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xF1, 0x01, 0xBC, 0x73, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xF1, 0x01, 0xCC, 0x78, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xF1, 0x01, 0xDC, 0x78, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xF1, 0x01 - .byte 0xEC, 0x78, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xF1, 0x01, 0xFC, 0x78, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xF1, 0x01, 0x0C, 0x79, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x58, 0x00, 0x5C, 0x74, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x58, 0x00 - .byte 0x6C, 0x79, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x58, 0x00, 0x7C, 0x79, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x58, 0x00, 0x8C, 0x79, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x58, 0x00, 0x9C, 0x79, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x59, 0x00 - .byte 0xDC, 0x74, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x59, 0x00, 0xEC, 0x79, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x59, 0x00, 0x0C, 0x7A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xFC, 0x00, 0x1C, 0x75, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xB3, 0x00 - .byte 0x44, 0x6D, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xBD, 0x00, 0x48, 0x6C, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x5E, 0x01, 0x20, 0x6D, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xC8, 0x01, 0xDC, 0x75, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0E, 0x03 - .byte 0x1C, 0x76, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0E, 0x03, 0xFC, 0x7A, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0E, 0x03, 0x2C, 0x7B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x0E, 0x03, 0x4C, 0x7B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x4D, 0x01 - .byte 0xB0, 0x6A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x4D, 0x01, 0x88, 0x6B, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x4D, 0x01, 0x10, 0x6E, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x4D, 0x01, 0x90, 0x6C, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x4D, 0x01 - .byte 0x88, 0x6E, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x4D, 0x01, 0xBC, 0x6D, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x84, 0x00, 0xF4, 0x6B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x4B, 0x00, 0x80, 0x6A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xA1, 0x00 - .byte 0x08, 0x6A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x01, 0x5C, 0x6D, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x68, 0x01, 0xAC, 0x6F, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xE9, 0x00, 0x0C, 0x70, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x5D, 0x00 - .byte 0xF8, 0x6D, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x5D, 0x00, 0xAC, 0x70, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x5D, 0x00, 0xEC, 0x70, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xF5, 0x00, 0xAC, 0x76, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xF5, 0x00 - .byte 0x5C, 0x7A, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x17, 0x02, 0xEC, 0x74, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x52, 0x01, 0x3C, 0x76, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x51, 0x01, 0x14, 0x6D, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x51, 0x01 - .byte 0xDC, 0x6F, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x51, 0x01, 0xDC, 0x72, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x51, 0x01, 0xEC, 0x72, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x51, 0x01, 0x6C, 0x71, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x51, 0x01 - .byte 0x7C, 0x6F, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x51, 0x01, 0x4C, 0x70, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x51, 0x01, 0xBC, 0x70, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0x41, 0x02, 0x20, 0x7D, 0x0A, 0x02, 0x00, 0x00, 0x03, 0x02, 0x05, 0x00, 0x42, 0x02 - .byte 0x84, 0x7D, 0x0A, 0x02, 0x00, 0x00, 0x03, 0x02, 0x05, 0x00, 0x43, 0x02, 0x4C, 0x7E, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x02, 0x05, 0x00, 0x44, 0x02, 0xD8, 0x7F, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x02 - .byte 0x05, 0x00, 0xC7, 0x01, 0x70, 0x6B, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x06, 0x02 - .byte 0xCC, 0x70, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x43, 0x01, 0xAC, 0x72, 0x0A, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0x74, 0x01, 0x8C, 0x72, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01 - .byte 0x05, 0x00, 0xFF, 0x01, 0x0C, 0x75, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x05, 0x00, 0xE2, 0x01 - .byte 0xA0, 0x6E, 0x0A, 0x02, 0x00, 0x00, 0x02, 0x01, 0x53, 0x50, 0x45, 0x50, 0x20, 0x54, 0x59, 0x50 - .byte 0x45, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00 - .byte 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x38, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x0B, 0x38, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x38, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0x38, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x0B, 0x38, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x38, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x16, 0x0E, 0x08, 0x00 - .byte 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x1A, 0x11 - .byte 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x05, 0x08, 0x00 - .byte 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x14, 0x1A, 0x02 - .byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x38, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x2A, 0x38, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x29, 0x38, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x2A, 0x38, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x91, 0x37, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x92, 0x37, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x29, 0x38, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2A, 0x38, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xB1, 0x37, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 - .byte 0xB2, 0x37, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xB4, 0x37, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xB5, 0x37, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x29, 0x38, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 - .byte 0x2A, 0x38, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x0E, 0x38, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x38, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x29, 0x38, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00 - .byte 0x2A, 0x38, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x0F, 0x38, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x11, 0x38, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 - .byte 0x08, 0x38, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x10, 0x38, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x38, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 - .byte 0x08, 0x38, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x1C, 0x14, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F - .byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F - .byte 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F - .byte 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F - .byte 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F - .byte 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F - .byte 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F - .byte 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F - .byte 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F - .byte 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F - .byte 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF - .byte 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF - .byte 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF - .byte 0xD0, 0xD1, 0xD2, 0xD3, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x01, 0x29, 0x01 - .byte 0x35, 0x01, 0xB8, 0x00, 0xC1, 0x00, 0x2B, 0x01, 0x2A, 0x01, 0x2C, 0x01, 0x2D, 0x01, 0x2E, 0x01 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0xD4, 0x00, 0xB4, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0x70, 0x01, 0x98, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0xD4, 0x00, 0xC4, 0x00, 0x0C, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0xEC, 0x00, 0xCC, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0x34, 0x01, 0x84, 0x00 - .byte 0x0C, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0xFC, 0x00, 0x9C, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x44, 0x01, 0x9C, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0x24, 0x01, 0xCC, 0x00 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0C, 0x01, 0xFF, 0xFF, 0x5C, 0x01, 0xBC, 0x00 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0C, 0x01, 0xFF, 0xFF, 0x84, 0x01, 0xCC, 0x00 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0C, 0x01, 0xFF, 0xFF, 0x9C, 0x01, 0xE4, 0x00 - .byte 0x0C, 0x01, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x04, 0x01, 0x6C, 0x00, 0x0C, 0x01, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0xD0, 0x00, 0x6C, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0xB4, 0x00, 0x74, 0x00, 0x0C, 0x01, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0x34, 0x01, 0x5C, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x24, 0x01, 0x44, 0x00, 0x0C, 0x01, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0D, 0x01, 0xFF, 0xFF, 0x6C, 0x00, 0x54, 0x00, 0x0D, 0x01, 0xFF, 0xFF, 0x74, 0x00, 0x6C, 0x00 - .byte 0x0D, 0x01, 0xFF, 0xFF, 0x8C, 0x00, 0x7C, 0x00, 0x0D, 0x01, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0D, 0x01, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x01, 0xFF, 0xFF, 0xA4, 0x00, 0x5C, 0x00 - .byte 0x0D, 0x01, 0xFF, 0xFF, 0xA4, 0x00, 0x44, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0x6C, 0x01, 0x6C, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0xC4, 0x00, 0x9C, 0x00, 0x0C, 0x01, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0x54, 0x00, 0xDC, 0x00 - .byte 0x0C, 0x01, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x3C, 0x00, 0xB4, 0x00, 0x0C, 0x01, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0xF4, 0x00, 0x84, 0x00 - .byte 0x0C, 0x01, 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0x4C, 0x00, 0x14, 0x01 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x54, 0x00, 0x24, 0x01, 0x0C, 0x01, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0xCC, 0x00, 0x24, 0x01 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x54, 0x00, 0x84, 0x00, 0x0C, 0x01, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0x54, 0x01, 0xFC, 0x00 - .byte 0x0C, 0x01, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0x8C, 0x01, 0x84, 0x00 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0C, 0x01, 0xFF, 0xFF, 0xBC, 0x01, 0xA4, 0x00 - .byte 0x0C, 0x01, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x44, 0x00, 0x2C, 0x00, 0x0C, 0x01, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0x6C, 0x01, 0x04, 0x01 - .byte 0x0C, 0x01, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0xAC, 0x00, 0xFC, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x9C, 0x00, 0xCC, 0x00, 0x0C, 0x01, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0xB4, 0x00, 0x4C, 0x00, 0x0C, 0x01, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x6C, 0x00, 0x24, 0x01, 0x0C, 0x01, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x54, 0x00, 0x4C, 0x00, 0x0C, 0x01, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x44, 0x01, 0x24, 0x01, 0x0C, 0x01, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0xBC, 0x00, 0x24, 0x00, 0x0C, 0x01, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x94, 0x01, 0x54, 0x00, 0x0C, 0x01, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0xEC, 0x00, 0xAC, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0x3C, 0x01, 0xB4, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x0C, 0x01, 0xAC, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0x04, 0x01, 0xC4, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x5C, 0x01, 0x8C, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0x24, 0x01, 0x9C, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0xF4, 0x00, 0x1C, 0x01, 0x0C, 0x01, 0xFF, 0xFF, 0xCC, 0x01, 0x2C, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x34, 0x00, 0x64, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0xB4, 0x01, 0x7C, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0xA4, 0x01, 0x04, 0x01, 0x0C, 0x01, 0xFF, 0xFF, 0x24, 0x01, 0x24, 0x01 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0xEC, 0x00, 0xE4, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0xFC, 0x00, 0xF4, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0xDC, 0x00, 0xF4, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0xEC, 0x00, 0x04, 0x01 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0xEC, 0x00, 0xF4, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0x94, 0x01, 0x24, 0x00 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x74, 0x01, 0xD4, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0x84, 0x00, 0xEC, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0xBC, 0x01, 0x1C, 0x01, 0x0C, 0x01, 0xFF, 0xFF, 0x74, 0x00, 0x34, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x74, 0x01, 0xA4, 0x00, 0x0C, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2B, 0x01, 0xFF, 0xFF, 0x3C, 0x01, 0xC0, 0x00, 0x2B, 0x01, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2B, 0x01, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x01, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2B, 0x01, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x01, 0xFF, 0xFF, 0x8C, 0x00, 0x64, 0x00 - .byte 0x2A, 0x01, 0xFF, 0xFF, 0xFC, 0x00, 0x84, 0x00, 0x2A, 0x01, 0xFF, 0xFF, 0x44, 0x01, 0x34, 0x00 - .byte 0x2A, 0x01, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x01, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2F, 0x01, 0xFF, 0xFF, 0x7C, 0x00, 0x5C, 0x00, 0x2F, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2F, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x01, 0xFF, 0xFF, 0x84, 0x00, 0x44, 0x00 - .byte 0x2F, 0x01, 0xFF, 0xFF, 0x54, 0x00, 0x2C, 0x00, 0x2F, 0x01, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2F, 0x01, 0xFF, 0xFF, 0xA4, 0x00, 0x5C, 0x00, 0x2F, 0x01, 0xFF, 0xFF, 0x2C, 0x01, 0x2C, 0x01 - .byte 0x2F, 0x01, 0xFF, 0xFF, 0xAC, 0x00, 0x7C, 0x00, 0x2E, 0x01, 0xFF, 0xFF, 0x4C, 0x00, 0x54, 0x00 - .byte 0x2E, 0x01, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x01, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2E, 0x01, 0xFF, 0xFF, 0x84, 0x00, 0x74, 0x00, 0x2E, 0x01, 0xFF, 0xFF, 0xBC, 0x00, 0x5C, 0x00 - .byte 0x2E, 0x01, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x01, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2D, 0x01, 0xFF, 0xFF, 0x24, 0x01, 0x28, 0x01, 0x2D, 0x01, 0xFF, 0xFF, 0x34, 0x01, 0x28, 0x01 - .byte 0x2D, 0x01, 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x01, 0x97, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2D, 0x01, 0xFF, 0xFF, 0x2C, 0x01, 0x2C, 0x01, 0x2D, 0x01, 0xFF, 0xFF, 0x2C, 0x01, 0x2C, 0x01 - .byte 0x2D, 0x01, 0xFF, 0xFF, 0x34, 0x01, 0x14, 0x01, 0x2D, 0x01, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2D, 0x01, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x01, 0xFF, 0xFF, 0x10, 0x01, 0xBC, 0x00 - .byte 0x2C, 0x01, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2C, 0x01, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2C, 0x01, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x2C, 0x01, 0x2C, 0x01, 0x0C, 0x01, 0xFF, 0xFF, 0x2C, 0x01, 0x2C, 0x01 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x2C, 0x01, 0x2C, 0x01, 0x0C, 0x01, 0xFF, 0xFF, 0x2C, 0x01, 0x2C, 0x01 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x2C, 0x01, 0x2C, 0x01, 0x0C, 0x01, 0xFF, 0xFF, 0x2C, 0x01, 0x2C, 0x01 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x2C, 0x01, 0x2C, 0x01, 0x0C, 0x01, 0xFF, 0xFF, 0x2C, 0x01, 0x2C, 0x01 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x2C, 0x01, 0x2C, 0x01, 0x0C, 0x01, 0xFF, 0xFF, 0x3C, 0x01, 0xC0, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x74, 0x01, 0xA4, 0x00, 0x2A, 0x01, 0xFF, 0xFF, 0xBC, 0x00, 0x5C, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0xEC, 0x00, 0x7C, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0x24, 0x01, 0xB4, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x2C, 0x01, 0x2C, 0x01, 0x0C, 0x01, 0xFF, 0xFF, 0xD4, 0x00, 0xB4, 0x00 - .byte 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x0C, 0x01, 0xFF, 0xFF, 0xA4, 0x00, 0x84, 0x00, 0x0C, 0x01, 0xFF, 0xFF, 0x14, 0x01, 0x34, 0x00 - .byte 0x0C, 0x01, 0xFF, 0xFF, 0x4C, 0x00, 0xC4, 0x00, 0x0D, 0x01, 0xFF, 0xFF, 0x5C, 0x00, 0x34, 0x00 - .byte 0x0C, 0x01, 0xB3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x01, 0xFF, 0xFF, 0x64, 0x00, 0x3C, 0x00 - .byte 0x0C, 0x01, 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x01, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0D, 0x01, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x01, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0D, 0x01, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x01, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2F, 0x01, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x01, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x01, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2B, 0x01, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x01, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2B, 0x01, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x01, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2A, 0x01, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2F, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2F, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x01, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2F, 0x01, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x01, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2F, 0x01, 0x8D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x01, 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2E, 0x01, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x01, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2E, 0x01, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x01, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2E, 0x01, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x01, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2E, 0x01, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x01, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2E, 0x01, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x01, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2D, 0x01, 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x01, 0x97, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2D, 0x01, 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x01, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2D, 0x01, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x01, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2C, 0x01, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2C, 0x01, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2C, 0x01, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xB3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x01, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2A, 0x01, 0xFF, 0xFF, 0x64, 0x00, 0x80, 0x00, 0x2A, 0x01, 0xFF, 0xFF, 0x44, 0x00, 0x84, 0x00 - .byte 0x2A, 0x01, 0x29, 0x01, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x01, 0xB1, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x2A, 0x01, 0xB1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x0C, 0x01, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x2B, 0x01, 0xFF, 0xFF, 0xD4, 0x00, 0xB4, 0x00, 0x2C, 0x01, 0xFF, 0xFF, 0xD4, 0x00, 0xB4, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00 - .byte 0x2F, 0x47, 0x52, 0x4F, 0x55, 0x4E, 0x44, 0x2F, 0x63, 0x5F, 0x77, 0x69, 0x70, 0x65, 0x2E, 0x77 - .byte 0x74, 0x65, 0x00, 0x00, 0x2F, 0x47, 0x52, 0x4F, 0x55, 0x4E, 0x44, 0x2F, 0x63, 0x5F, 0x77, 0x69 - .byte 0x70, 0x65, 0x2E, 0x77, 0x74, 0x75, 0x00, 0x00, 0x2F, 0x47, 0x52, 0x4F, 0x55, 0x4E, 0x44, 0x2F - .byte 0x63, 0x5F, 0x77, 0x69, 0x70, 0x65, 0x32, 0x2E, 0x77, 0x74, 0x75, 0x00, 0x2F, 0x47, 0x52, 0x4F - .byte 0x55, 0x4E, 0x44, 0x2F, 0x63, 0x5F, 0x77, 0x69, 0x70, 0x65, 0x32, 0x2E, 0x77, 0x74, 0x65, 0x00 - .byte 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .byte 0xE0, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00 - .byte 0x30, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00 - .byte 0x0B, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00 - .byte 0x2E, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x00 - .byte 0x30, 0x00, 0x00, 0x00, 0x2F, 0x47, 0x52, 0x4F, 0x55, 0x4E, 0x44, 0x2F, 0x77, 0x5F, 0x68, 0x65 - .byte 0x61, 0x72, 0x74, 0x2E, 0x77, 0x74, 0x65, 0x00, 0x2F, 0x47, 0x52, 0x4F, 0x55, 0x4E, 0x44, 0x2F - .byte 0x77, 0x5F, 0x68, 0x65, 0x61, 0x72, 0x74, 0x2E, 0x77, 0x74, 0x75, 0x00, 0x2F, 0x47, 0x52, 0x4F - .byte 0x55, 0x4E, 0x44, 0x2F, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x2E, 0x77, 0x74, 0x65, 0x00, 0x00 - .byte 0x2F, 0x47, 0x52, 0x4F, 0x55, 0x4E, 0x44, 0x2F, 0x63, 0x69, 0x72, 0x63, 0x6C, 0x65, 0x2E, 0x77 - .byte 0x74, 0x75, 0x00, 0x00, 0x47, 0x52, 0x4F, 0x55, 0x4E, 0x44, 0x2F, 0x73, 0x32, 0x30, 0x70, 0x30 - .byte 0x31, 0x61, 0x31, 0x2E, 0x77, 0x61, 0x6E, 0x00, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x21, 0x00, 0x00 - .byte 0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x10, 0x06, 0x00, 0x00, 0x10, 0x0D, 0x00, 0x00, 0x10, 0x13, 0x00, 0x00, 0x10 - .byte 0x19, 0x00, 0x00, 0x10, 0x1F, 0x00, 0x00, 0x10, 0x26, 0x00, 0x00, 0x10, 0x2C, 0x00, 0x00, 0x10 - .byte 0x32, 0x00, 0x00, 0x10, 0x39, 0x00, 0x00, 0x10, 0x3F, 0x00, 0x00, 0x10, 0x45, 0x00, 0xFF, 0x0F - .byte 0x4B, 0x00, 0xFF, 0x0F, 0x52, 0x00, 0xFF, 0x0F, 0x58, 0x00, 0xFF, 0x0F, 0x5E, 0x00, 0xFF, 0x0F - .byte 0x65, 0x00, 0xFF, 0x0F, 0x6B, 0x00, 0xFF, 0x0F, 0x71, 0x00, 0xFE, 0x0F, 0x77, 0x00, 0xFE, 0x0F - .byte 0x7E, 0x00, 0xFE, 0x0F, 0x84, 0x00, 0xFE, 0x0F, 0x8A, 0x00, 0xFE, 0x0F, 0x90, 0x00, 0xFD, 0x0F - .byte 0x97, 0x00, 0xFD, 0x0F, 0x9D, 0x00, 0xFD, 0x0F, 0xA3, 0x00, 0xFD, 0x0F, 0xAA, 0x00, 0xFC, 0x0F - .byte 0xB0, 0x00, 0xFC, 0x0F, 0xB6, 0x00, 0xFC, 0x0F, 0xBC, 0x00, 0xFC, 0x0F, 0xC3, 0x00, 0xFB, 0x0F - .byte 0xC9, 0x00, 0xFB, 0x0F, 0xCF, 0x00, 0xFB, 0x0F, 0xD6, 0x00, 0xFA, 0x0F, 0xDC, 0x00, 0xFA, 0x0F - .byte 0xE2, 0x00, 0xFA, 0x0F, 0xE8, 0x00, 0xF9, 0x0F, 0xEF, 0x00, 0xF9, 0x0F, 0xF5, 0x00, 0xF9, 0x0F - .byte 0xFB, 0x00, 0xF8, 0x0F, 0x01, 0x01, 0xF8, 0x0F, 0x08, 0x01, 0xF8, 0x0F, 0x0E, 0x01, 0xF7, 0x0F - .byte 0x14, 0x01, 0xF7, 0x0F, 0x1B, 0x01, 0xF6, 0x0F, 0x21, 0x01, 0xF6, 0x0F, 0x27, 0x01, 0xF5, 0x0F - .byte 0x2D, 0x01, 0xF5, 0x0F, 0x34, 0x01, 0xF4, 0x0F, 0x3A, 0x01, 0xF4, 0x0F, 0x40, 0x01, 0xF3, 0x0F - .byte 0x46, 0x01, 0xF3, 0x0F, 0x4D, 0x01, 0xF2, 0x0F, 0x53, 0x01, 0xF2, 0x0F, 0x59, 0x01, 0xF1, 0x0F - .byte 0x5F, 0x01, 0xF1, 0x0F, 0x66, 0x01, 0xF0, 0x0F, 0x6C, 0x01, 0xF0, 0x0F, 0x72, 0x01, 0xEF, 0x0F - .byte 0x78, 0x01, 0xEF, 0x0F, 0x7F, 0x01, 0xEE, 0x0F, 0x85, 0x01, 0xED, 0x0F, 0x8B, 0x01, 0xED, 0x0F - .byte 0x91, 0x01, 0xEC, 0x0F, 0x98, 0x01, 0xEC, 0x0F, 0x9E, 0x01, 0xEB, 0x0F, 0xA4, 0x01, 0xEA, 0x0F - .byte 0xAA, 0x01, 0xEA, 0x0F, 0xB1, 0x01, 0xE9, 0x0F, 0xB7, 0x01, 0xE8, 0x0F, 0xBD, 0x01, 0xE8, 0x0F - .byte 0xC3, 0x01, 0xE7, 0x0F, 0xCA, 0x01, 0xE6, 0x0F, 0xD0, 0x01, 0xE6, 0x0F, 0xD6, 0x01, 0xE5, 0x0F - .byte 0xDC, 0x01, 0xE4, 0x0F, 0xE3, 0x01, 0xE3, 0x0F, 0xE9, 0x01, 0xE3, 0x0F, 0xEF, 0x01, 0xE2, 0x0F - .byte 0xF5, 0x01, 0xE1, 0x0F, 0xFC, 0x01, 0xE0, 0x0F, 0x02, 0x02, 0xE0, 0x0F, 0x08, 0x02, 0xDF, 0x0F - .byte 0x0E, 0x02, 0xDE, 0x0F, 0x15, 0x02, 0xDD, 0x0F, 0x1B, 0x02, 0xDC, 0x0F, 0x21, 0x02, 0xDC, 0x0F - .byte 0x27, 0x02, 0xDB, 0x0F, 0x2D, 0x02, 0xDA, 0x0F, 0x34, 0x02, 0xD9, 0x0F, 0x3A, 0x02, 0xD8, 0x0F - .byte 0x40, 0x02, 0xD7, 0x0F, 0x46, 0x02, 0xD6, 0x0F, 0x4D, 0x02, 0xD5, 0x0F, 0x53, 0x02, 0xD5, 0x0F - .byte 0x59, 0x02, 0xD4, 0x0F, 0x5F, 0x02, 0xD3, 0x0F, 0x65, 0x02, 0xD2, 0x0F, 0x6C, 0x02, 0xD1, 0x0F - .byte 0x72, 0x02, 0xD0, 0x0F, 0x78, 0x02, 0xCF, 0x0F, 0x7E, 0x02, 0xCE, 0x0F, 0x84, 0x02, 0xCD, 0x0F - .byte 0x8B, 0x02, 0xCC, 0x0F, 0x91, 0x02, 0xCB, 0x0F, 0x97, 0x02, 0xCA, 0x0F, 0x9D, 0x02, 0xC9, 0x0F - .byte 0xA3, 0x02, 0xC8, 0x0F, 0xAA, 0x02, 0xC7, 0x0F, 0xB0, 0x02, 0xC6, 0x0F, 0xB6, 0x02, 0xC5, 0x0F - .byte 0xBC, 0x02, 0xC4, 0x0F, 0xC2, 0x02, 0xC3, 0x0F, 0xC9, 0x02, 0xC2, 0x0F, 0xCF, 0x02, 0xC0, 0x0F - .byte 0xD5, 0x02, 0xBF, 0x0F, 0xDB, 0x02, 0xBE, 0x0F, 0xE1, 0x02, 0xBD, 0x0F, 0xE8, 0x02, 0xBC, 0x0F - .byte 0xEE, 0x02, 0xBB, 0x0F, 0xF4, 0x02, 0xBA, 0x0F, 0xFA, 0x02, 0xB8, 0x0F, 0x00, 0x03, 0xB7, 0x0F - .byte 0x06, 0x03, 0xB6, 0x0F, 0x0D, 0x03, 0xB5, 0x0F, 0x13, 0x03, 0xB4, 0x0F, 0x19, 0x03, 0xB3, 0x0F - .byte 0x1F, 0x03, 0xB1, 0x0F, 0x25, 0x03, 0xB0, 0x0F, 0x2B, 0x03, 0xAF, 0x0F, 0x32, 0x03, 0xAE, 0x0F - .byte 0x38, 0x03, 0xAC, 0x0F, 0x3E, 0x03, 0xAB, 0x0F, 0x44, 0x03, 0xAA, 0x0F, 0x4A, 0x03, 0xA8, 0x0F - .byte 0x50, 0x03, 0xA7, 0x0F, 0x56, 0x03, 0xA6, 0x0F, 0x5D, 0x03, 0xA5, 0x0F, 0x63, 0x03, 0xA3, 0x0F - .byte 0x69, 0x03, 0xA2, 0x0F, 0x6F, 0x03, 0xA1, 0x0F, 0x75, 0x03, 0x9F, 0x0F, 0x7B, 0x03, 0x9E, 0x0F - .byte 0x81, 0x03, 0x9C, 0x0F, 0x88, 0x03, 0x9B, 0x0F, 0x8E, 0x03, 0x9A, 0x0F, 0x94, 0x03, 0x98, 0x0F - .byte 0x9A, 0x03, 0x97, 0x0F, 0xA0, 0x03, 0x95, 0x0F, 0xA6, 0x03, 0x94, 0x0F, 0xAC, 0x03, 0x93, 0x0F - .byte 0xB2, 0x03, 0x91, 0x0F, 0xB9, 0x03, 0x90, 0x0F, 0xBF, 0x03, 0x8E, 0x0F, 0xC5, 0x03, 0x8D, 0x0F - .byte 0xCB, 0x03, 0x8B, 0x0F, 0xD1, 0x03, 0x8A, 0x0F, 0xD7, 0x03, 0x88, 0x0F, 0xDD, 0x03, 0x87, 0x0F - .byte 0xE3, 0x03, 0x85, 0x0F, 0xE9, 0x03, 0x84, 0x0F, 0xEF, 0x03, 0x82, 0x0F, 0xF6, 0x03, 0x81, 0x0F - .byte 0xFC, 0x03, 0x7F, 0x0F, 0x02, 0x04, 0x7D, 0x0F, 0x08, 0x04, 0x7C, 0x0F, 0x0E, 0x04, 0x7A, 0x0F - .byte 0x14, 0x04, 0x79, 0x0F, 0x1A, 0x04, 0x77, 0x0F, 0x20, 0x04, 0x76, 0x0F, 0x26, 0x04, 0x74, 0x0F - .byte 0x2C, 0x04, 0x72, 0x0F, 0x32, 0x04, 0x71, 0x0F, 0x38, 0x04, 0x6F, 0x0F, 0x3E, 0x04, 0x6D, 0x0F - .byte 0x44, 0x04, 0x6C, 0x0F, 0x4B, 0x04, 0x6A, 0x0F, 0x51, 0x04, 0x68, 0x0F, 0x57, 0x04, 0x67, 0x0F - .byte 0x5D, 0x04, 0x65, 0x0F, 0x63, 0x04, 0x63, 0x0F, 0x69, 0x04, 0x61, 0x0F, 0x6F, 0x04, 0x60, 0x0F - .byte 0x75, 0x04, 0x5E, 0x0F, 0x7B, 0x04, 0x5C, 0x0F, 0x81, 0x04, 0x5A, 0x0F, 0x87, 0x04, 0x59, 0x0F - .byte 0x8D, 0x04, 0x57, 0x0F, 0x93, 0x04, 0x55, 0x0F, 0x99, 0x04, 0x53, 0x0F, 0x9F, 0x04, 0x51, 0x0F - .byte 0xA5, 0x04, 0x50, 0x0F, 0xAB, 0x04, 0x4E, 0x0F, 0xB1, 0x04, 0x4C, 0x0F, 0xB7, 0x04, 0x4A, 0x0F - .byte 0xBD, 0x04, 0x48, 0x0F, 0xC3, 0x04, 0x46, 0x0F, 0xC9, 0x04, 0x45, 0x0F, 0xCF, 0x04, 0x43, 0x0F - .byte 0xD5, 0x04, 0x41, 0x0F, 0xDB, 0x04, 0x3F, 0x0F, 0xE1, 0x04, 0x3D, 0x0F, 0xE7, 0x04, 0x3B, 0x0F - .byte 0xED, 0x04, 0x39, 0x0F, 0xF3, 0x04, 0x37, 0x0F, 0xF9, 0x04, 0x35, 0x0F, 0xFF, 0x04, 0x33, 0x0F - .byte 0x05, 0x05, 0x31, 0x0F, 0x0B, 0x05, 0x2F, 0x0F, 0x11, 0x05, 0x2D, 0x0F, 0x17, 0x05, 0x2B, 0x0F - .byte 0x1D, 0x05, 0x29, 0x0F, 0x23, 0x05, 0x27, 0x0F, 0x29, 0x05, 0x25, 0x0F, 0x2F, 0x05, 0x23, 0x0F - .byte 0x34, 0x05, 0x21, 0x0F, 0x3A, 0x05, 0x1F, 0x0F, 0x40, 0x05, 0x1D, 0x0F, 0x46, 0x05, 0x1B, 0x0F - .byte 0x4C, 0x05, 0x19, 0x0F, 0x52, 0x05, 0x17, 0x0F, 0x58, 0x05, 0x15, 0x0F, 0x5E, 0x05, 0x13, 0x0F - .byte 0x64, 0x05, 0x11, 0x0F, 0x6A, 0x05, 0x0E, 0x0F, 0x70, 0x05, 0x0C, 0x0F, 0x76, 0x05, 0x0A, 0x0F - .byte 0x7C, 0x05, 0x08, 0x0F, 0x81, 0x05, 0x06, 0x0F, 0x87, 0x05, 0x04, 0x0F, 0x8D, 0x05, 0x02, 0x0F - .byte 0x93, 0x05, 0xFF, 0x0E, 0x99, 0x05, 0xFD, 0x0E, 0x9F, 0x05, 0xFB, 0x0E, 0xA5, 0x05, 0xF9, 0x0E - .byte 0xAB, 0x05, 0xF7, 0x0E, 0xB1, 0x05, 0xF4, 0x0E, 0xB6, 0x05, 0xF2, 0x0E, 0xBC, 0x05, 0xF0, 0x0E - .byte 0xC2, 0x05, 0xEE, 0x0E, 0xC8, 0x05, 0xEB, 0x0E, 0xCE, 0x05, 0xE9, 0x0E, 0xD4, 0x05, 0xE7, 0x0E - .byte 0xDA, 0x05, 0xE4, 0x0E, 0xDF, 0x05, 0xE2, 0x0E, 0xE5, 0x05, 0xE0, 0x0E, 0xEB, 0x05, 0xDD, 0x0E - .byte 0xF1, 0x05, 0xDB, 0x0E, 0xF7, 0x05, 0xD9, 0x0E, 0xFD, 0x05, 0xD6, 0x0E, 0x02, 0x06, 0xD4, 0x0E - .byte 0x08, 0x06, 0xD2, 0x0E, 0x0E, 0x06, 0xCF, 0x0E, 0x14, 0x06, 0xCD, 0x0E, 0x1A, 0x06, 0xCB, 0x0E - .byte 0x1F, 0x06, 0xC8, 0x0E, 0x25, 0x06, 0xC6, 0x0E, 0x2B, 0x06, 0xC3, 0x0E, 0x31, 0x06, 0xC1, 0x0E - .byte 0x37, 0x06, 0xBF, 0x0E, 0x3C, 0x06, 0xBC, 0x0E, 0x42, 0x06, 0xBA, 0x0E, 0x48, 0x06, 0xB7, 0x0E - .byte 0x4E, 0x06, 0xB5, 0x0E, 0x54, 0x06, 0xB2, 0x0E, 0x59, 0x06, 0xB0, 0x0E, 0x5F, 0x06, 0xAD, 0x0E - .byte 0x65, 0x06, 0xAB, 0x0E, 0x6B, 0x06, 0xA8, 0x0E, 0x70, 0x06, 0xA6, 0x0E, 0x76, 0x06, 0xA3, 0x0E - .byte 0x7C, 0x06, 0xA1, 0x0E, 0x82, 0x06, 0x9E, 0x0E, 0x87, 0x06, 0x9B, 0x0E, 0x8D, 0x06, 0x99, 0x0E - .byte 0x93, 0x06, 0x96, 0x0E, 0x99, 0x06, 0x94, 0x0E, 0x9E, 0x06, 0x91, 0x0E, 0xA4, 0x06, 0x8F, 0x0E - .byte 0xAA, 0x06, 0x8C, 0x0E, 0xAF, 0x06, 0x89, 0x0E, 0xB5, 0x06, 0x87, 0x0E, 0xBB, 0x06, 0x84, 0x0E - .byte 0xC1, 0x06, 0x81, 0x0E, 0xC6, 0x06, 0x7F, 0x0E, 0xCC, 0x06, 0x7C, 0x0E, 0xD2, 0x06, 0x79, 0x0E - .byte 0xD7, 0x06, 0x77, 0x0E, 0xDD, 0x06, 0x74, 0x0E, 0xE3, 0x06, 0x71, 0x0E, 0xE8, 0x06, 0x6F, 0x0E - .byte 0xEE, 0x06, 0x6C, 0x0E, 0xF4, 0x06, 0x69, 0x0E, 0xF9, 0x06, 0x66, 0x0E, 0xFF, 0x06, 0x64, 0x0E - .byte 0x05, 0x07, 0x61, 0x0E, 0x0A, 0x07, 0x5E, 0x0E, 0x10, 0x07, 0x5B, 0x0E, 0x15, 0x07, 0x59, 0x0E - .byte 0x1B, 0x07, 0x56, 0x0E, 0x21, 0x07, 0x53, 0x0E, 0x26, 0x07, 0x50, 0x0E, 0x2C, 0x07, 0x4D, 0x0E - .byte 0x32, 0x07, 0x4B, 0x0E, 0x37, 0x07, 0x48, 0x0E, 0x3D, 0x07, 0x45, 0x0E, 0x42, 0x07, 0x42, 0x0E - .byte 0x48, 0x07, 0x3F, 0x0E, 0x4E, 0x07, 0x3C, 0x0E, 0x53, 0x07, 0x3A, 0x0E, 0x59, 0x07, 0x37, 0x0E - .byte 0x5E, 0x07, 0x34, 0x0E, 0x64, 0x07, 0x31, 0x0E, 0x6A, 0x07, 0x2E, 0x0E, 0x6F, 0x07, 0x2B, 0x0E - .byte 0x75, 0x07, 0x28, 0x0E, 0x7A, 0x07, 0x25, 0x0E, 0x80, 0x07, 0x22, 0x0E, 0x85, 0x07, 0x1F, 0x0E - .byte 0x8B, 0x07, 0x1C, 0x0E, 0x90, 0x07, 0x19, 0x0E, 0x96, 0x07, 0x16, 0x0E, 0x9B, 0x07, 0x13, 0x0E - .byte 0xA1, 0x07, 0x10, 0x0E, 0xA6, 0x07, 0x0D, 0x0E, 0xAC, 0x07, 0x0A, 0x0E, 0xB2, 0x07, 0x07, 0x0E - .byte 0xB7, 0x07, 0x04, 0x0E, 0xBD, 0x07, 0x01, 0x0E, 0xC2, 0x07, 0xFE, 0x0D, 0xC8, 0x07, 0xFB, 0x0D - .byte 0xCD, 0x07, 0xF8, 0x0D, 0xD2, 0x07, 0xF5, 0x0D, 0xD8, 0x07, 0xF2, 0x0D, 0xDD, 0x07, 0xEF, 0x0D - .byte 0xE3, 0x07, 0xEC, 0x0D, 0xE8, 0x07, 0xE9, 0x0D, 0xEE, 0x07, 0xE6, 0x0D, 0xF3, 0x07, 0xE3, 0x0D - .byte 0xF9, 0x07, 0xDF, 0x0D, 0xFE, 0x07, 0xDC, 0x0D, 0x04, 0x08, 0xD9, 0x0D, 0x09, 0x08, 0xD6, 0x0D - .byte 0x0E, 0x08, 0xD3, 0x0D, 0x14, 0x08, 0xD0, 0x0D, 0x19, 0x08, 0xCC, 0x0D, 0x1F, 0x08, 0xC9, 0x0D - .byte 0x24, 0x08, 0xC6, 0x0D, 0x2A, 0x08, 0xC3, 0x0D, 0x2F, 0x08, 0xC0, 0x0D, 0x34, 0x08, 0xBC, 0x0D - .byte 0x3A, 0x08, 0xB9, 0x0D, 0x3F, 0x08, 0xB6, 0x0D, 0x45, 0x08, 0xB3, 0x0D, 0x4A, 0x08, 0xB0, 0x0D - .byte 0x4F, 0x08, 0xAC, 0x0D, 0x55, 0x08, 0xA9, 0x0D, 0x5A, 0x08, 0xA6, 0x0D, 0x5F, 0x08, 0xA2, 0x0D - .byte 0x65, 0x08, 0x9F, 0x0D, 0x6A, 0x08, 0x9C, 0x0D, 0x6F, 0x08, 0x99, 0x0D, 0x75, 0x08, 0x95, 0x0D - .byte 0x7A, 0x08, 0x92, 0x0D, 0x7F, 0x08, 0x8F, 0x0D, 0x85, 0x08, 0x8B, 0x0D, 0x8A, 0x08, 0x88, 0x0D - .byte 0x8F, 0x08, 0x85, 0x0D, 0x95, 0x08, 0x81, 0x0D, 0x9A, 0x08, 0x7E, 0x0D, 0x9F, 0x08, 0x7A, 0x0D - .byte 0xA5, 0x08, 0x77, 0x0D, 0xAA, 0x08, 0x74, 0x0D, 0xAF, 0x08, 0x70, 0x0D, 0xB4, 0x08, 0x6D, 0x0D - .byte 0xBA, 0x08, 0x69, 0x0D, 0xBF, 0x08, 0x66, 0x0D, 0xC4, 0x08, 0x62, 0x0D, 0xC9, 0x08, 0x5F, 0x0D - .byte 0xCF, 0x08, 0x5C, 0x0D, 0xD4, 0x08, 0x58, 0x0D, 0xD9, 0x08, 0x55, 0x0D, 0xDE, 0x08, 0x51, 0x0D - .byte 0xE4, 0x08, 0x4E, 0x0D, 0xE9, 0x08, 0x4A, 0x0D, 0xEE, 0x08, 0x47, 0x0D, 0xF3, 0x08, 0x43, 0x0D - .byte 0xF8, 0x08, 0x40, 0x0D, 0xFE, 0x08, 0x3C, 0x0D, 0x03, 0x09, 0x39, 0x0D, 0x08, 0x09, 0x35, 0x0D - .byte 0x0D, 0x09, 0x32, 0x0D, 0x12, 0x09, 0x2E, 0x0D, 0x18, 0x09, 0x2A, 0x0D, 0x1D, 0x09, 0x27, 0x0D - .byte 0x22, 0x09, 0x23, 0x0D, 0x27, 0x09, 0x20, 0x0D, 0x2C, 0x09, 0x1C, 0x0D, 0x31, 0x09, 0x18, 0x0D - .byte 0x37, 0x09, 0x15, 0x0D, 0x3C, 0x09, 0x11, 0x0D, 0x41, 0x09, 0x0E, 0x0D, 0x46, 0x09, 0x0A, 0x0D - .byte 0x4B, 0x09, 0x06, 0x0D, 0x50, 0x09, 0x03, 0x0D, 0x55, 0x09, 0xFF, 0x0C, 0x5A, 0x09, 0xFB, 0x0C - .byte 0x5F, 0x09, 0xF8, 0x0C, 0x65, 0x09, 0xF4, 0x0C, 0x6A, 0x09, 0xF0, 0x0C, 0x6F, 0x09, 0xED, 0x0C - .byte 0x74, 0x09, 0xE9, 0x0C, 0x79, 0x09, 0xE5, 0x0C, 0x7E, 0x09, 0xE1, 0x0C, 0x83, 0x09, 0xDE, 0x0C - .byte 0x88, 0x09, 0xDA, 0x0C, 0x8D, 0x09, 0xD6, 0x0C, 0x92, 0x09, 0xD2, 0x0C, 0x97, 0x09, 0xCF, 0x0C - .byte 0x9C, 0x09, 0xCB, 0x0C, 0xA1, 0x09, 0xC7, 0x0C, 0xA6, 0x09, 0xC3, 0x0C, 0xAB, 0x09, 0xC0, 0x0C - .byte 0xB0, 0x09, 0xBC, 0x0C, 0xB5, 0x09, 0xB8, 0x0C, 0xBA, 0x09, 0xB4, 0x0C, 0xBF, 0x09, 0xB0, 0x0C - .byte 0xC4, 0x09, 0xAC, 0x0C, 0xC9, 0x09, 0xA9, 0x0C, 0xCE, 0x09, 0xA5, 0x0C, 0xD3, 0x09, 0xA1, 0x0C - .byte 0xD8, 0x09, 0x9D, 0x0C, 0xDD, 0x09, 0x99, 0x0C, 0xE2, 0x09, 0x95, 0x0C, 0xE7, 0x09, 0x91, 0x0C - .byte 0xEC, 0x09, 0x8E, 0x0C, 0xF1, 0x09, 0x8A, 0x0C, 0xF6, 0x09, 0x86, 0x0C, 0xFB, 0x09, 0x82, 0x0C - .byte 0xFF, 0x09, 0x7E, 0x0C, 0x04, 0x0A, 0x7A, 0x0C, 0x09, 0x0A, 0x76, 0x0C, 0x0E, 0x0A, 0x72, 0x0C - .byte 0x13, 0x0A, 0x6E, 0x0C, 0x18, 0x0A, 0x6A, 0x0C, 0x1D, 0x0A, 0x66, 0x0C, 0x22, 0x0A, 0x62, 0x0C - .byte 0x26, 0x0A, 0x5E, 0x0C, 0x2B, 0x0A, 0x5A, 0x0C, 0x30, 0x0A, 0x56, 0x0C, 0x35, 0x0A, 0x52, 0x0C - .byte 0x3A, 0x0A, 0x4E, 0x0C, 0x3F, 0x0A, 0x4A, 0x0C, 0x44, 0x0A, 0x46, 0x0C, 0x48, 0x0A, 0x42, 0x0C - .byte 0x4D, 0x0A, 0x3E, 0x0C, 0x52, 0x0A, 0x3A, 0x0C, 0x57, 0x0A, 0x36, 0x0C, 0x5C, 0x0A, 0x32, 0x0C - .byte 0x60, 0x0A, 0x2E, 0x0C, 0x65, 0x0A, 0x2A, 0x0C, 0x6A, 0x0A, 0x26, 0x0C, 0x6F, 0x0A, 0x22, 0x0C - .byte 0x73, 0x0A, 0x1E, 0x0C, 0x78, 0x0A, 0x19, 0x0C, 0x7D, 0x0A, 0x15, 0x0C, 0x82, 0x0A, 0x11, 0x0C - .byte 0x86, 0x0A, 0x0D, 0x0C, 0x8B, 0x0A, 0x09, 0x0C, 0x90, 0x0A, 0x05, 0x0C, 0x95, 0x0A, 0x01, 0x0C - .byte 0x99, 0x0A, 0xFC, 0x0B, 0x9E, 0x0A, 0xF8, 0x0B, 0xA3, 0x0A, 0xF4, 0x0B, 0xA7, 0x0A, 0xF0, 0x0B - .byte 0xAC, 0x0A, 0xEC, 0x0B, 0xB1, 0x0A, 0xE8, 0x0B, 0xB5, 0x0A, 0xE3, 0x0B, 0xBA, 0x0A, 0xDF, 0x0B - .byte 0xBF, 0x0A, 0xDB, 0x0B, 0xC3, 0x0A, 0xD7, 0x0B, 0xC8, 0x0A, 0xD2, 0x0B, 0xCD, 0x0A, 0xCE, 0x0B - .byte 0xD1, 0x0A, 0xCA, 0x0B, 0xD6, 0x0A, 0xC6, 0x0B, 0xDB, 0x0A, 0xC1, 0x0B, 0xDF, 0x0A, 0xBD, 0x0B - .byte 0xE4, 0x0A, 0xB9, 0x0B, 0xE8, 0x0A, 0xB5, 0x0B, 0xED, 0x0A, 0xB0, 0x0B, 0xF2, 0x0A, 0xAC, 0x0B - .byte 0xF6, 0x0A, 0xA8, 0x0B, 0xFB, 0x0A, 0xA3, 0x0B, 0xFF, 0x0A, 0x9F, 0x0B, 0x04, 0x0B, 0x9B, 0x0B - .byte 0x08, 0x0B, 0x97, 0x0B, 0x0D, 0x0B, 0x92, 0x0B, 0x11, 0x0B, 0x8E, 0x0B, 0x16, 0x0B, 0x89, 0x0B - .byte 0x1B, 0x0B, 0x85, 0x0B, 0x1F, 0x0B, 0x81, 0x0B, 0x24, 0x0B, 0x7C, 0x0B, 0x28, 0x0B, 0x78, 0x0B - .byte 0x2D, 0x0B, 0x74, 0x0B, 0x31, 0x0B, 0x6F, 0x0B, 0x36, 0x0B, 0x6B, 0x0B, 0x3A, 0x0B, 0x66, 0x0B - .byte 0x3E, 0x0B, 0x62, 0x0B, 0x43, 0x0B, 0x5E, 0x0B, 0x47, 0x0B, 0x59, 0x0B, 0x4C, 0x0B, 0x55, 0x0B - .byte 0x50, 0x0B, 0x50, 0x0B, 0x55, 0x0B, 0x4C, 0x0B, 0x59, 0x0B, 0x47, 0x0B, 0x5E, 0x0B, 0x43, 0x0B - .byte 0x62, 0x0B, 0x3E, 0x0B, 0x66, 0x0B, 0x3A, 0x0B, 0x6B, 0x0B, 0x36, 0x0B, 0x6F, 0x0B, 0x31, 0x0B - .byte 0x74, 0x0B, 0x2D, 0x0B, 0x78, 0x0B, 0x28, 0x0B, 0x7C, 0x0B, 0x24, 0x0B, 0x81, 0x0B, 0x1F, 0x0B - .byte 0x85, 0x0B, 0x1B, 0x0B, 0x89, 0x0B, 0x16, 0x0B, 0x8E, 0x0B, 0x11, 0x0B, 0x92, 0x0B, 0x0D, 0x0B - .byte 0x97, 0x0B, 0x08, 0x0B, 0x9B, 0x0B, 0x04, 0x0B, 0x9F, 0x0B, 0xFF, 0x0A, 0xA3, 0x0B, 0xFB, 0x0A - .byte 0xA8, 0x0B, 0xF6, 0x0A, 0xAC, 0x0B, 0xF2, 0x0A, 0xB0, 0x0B, 0xED, 0x0A, 0xB5, 0x0B, 0xE8, 0x0A - .byte 0xB9, 0x0B, 0xE4, 0x0A, 0xBD, 0x0B, 0xDF, 0x0A, 0xC1, 0x0B, 0xDB, 0x0A, 0xC6, 0x0B, 0xD6, 0x0A - .byte 0xCA, 0x0B, 0xD1, 0x0A, 0xCE, 0x0B, 0xCD, 0x0A, 0xD2, 0x0B, 0xC8, 0x0A, 0xD7, 0x0B, 0xC3, 0x0A - .byte 0xDB, 0x0B, 0xBF, 0x0A, 0xDF, 0x0B, 0xBA, 0x0A, 0xE3, 0x0B, 0xB5, 0x0A, 0xE8, 0x0B, 0xB1, 0x0A - .byte 0xEC, 0x0B, 0xAC, 0x0A, 0xF0, 0x0B, 0xA7, 0x0A, 0xF4, 0x0B, 0xA3, 0x0A, 0xF8, 0x0B, 0x9E, 0x0A - .byte 0xFC, 0x0B, 0x99, 0x0A, 0x01, 0x0C, 0x95, 0x0A, 0x05, 0x0C, 0x90, 0x0A, 0x09, 0x0C, 0x8B, 0x0A - .byte 0x0D, 0x0C, 0x86, 0x0A, 0x11, 0x0C, 0x82, 0x0A, 0x15, 0x0C, 0x7D, 0x0A, 0x19, 0x0C, 0x78, 0x0A - .byte 0x1E, 0x0C, 0x73, 0x0A, 0x22, 0x0C, 0x6F, 0x0A, 0x26, 0x0C, 0x6A, 0x0A, 0x2A, 0x0C, 0x65, 0x0A - .byte 0x2E, 0x0C, 0x60, 0x0A, 0x32, 0x0C, 0x5C, 0x0A, 0x36, 0x0C, 0x57, 0x0A, 0x3A, 0x0C, 0x52, 0x0A - .byte 0x3E, 0x0C, 0x4D, 0x0A, 0x42, 0x0C, 0x48, 0x0A, 0x46, 0x0C, 0x44, 0x0A, 0x4A, 0x0C, 0x3F, 0x0A - .byte 0x4E, 0x0C, 0x3A, 0x0A, 0x52, 0x0C, 0x35, 0x0A, 0x56, 0x0C, 0x30, 0x0A, 0x5A, 0x0C, 0x2B, 0x0A - .byte 0x5E, 0x0C, 0x26, 0x0A, 0x62, 0x0C, 0x22, 0x0A, 0x66, 0x0C, 0x1D, 0x0A, 0x6A, 0x0C, 0x18, 0x0A - .byte 0x6E, 0x0C, 0x13, 0x0A, 0x72, 0x0C, 0x0E, 0x0A, 0x76, 0x0C, 0x09, 0x0A, 0x7A, 0x0C, 0x04, 0x0A - .byte 0x7E, 0x0C, 0xFF, 0x09, 0x82, 0x0C, 0xFB, 0x09, 0x86, 0x0C, 0xF6, 0x09, 0x8A, 0x0C, 0xF1, 0x09 - .byte 0x8E, 0x0C, 0xEC, 0x09, 0x91, 0x0C, 0xE7, 0x09, 0x95, 0x0C, 0xE2, 0x09, 0x99, 0x0C, 0xDD, 0x09 - .byte 0x9D, 0x0C, 0xD8, 0x09, 0xA1, 0x0C, 0xD3, 0x09, 0xA5, 0x0C, 0xCE, 0x09, 0xA9, 0x0C, 0xC9, 0x09 - .byte 0xAC, 0x0C, 0xC4, 0x09, 0xB0, 0x0C, 0xBF, 0x09, 0xB4, 0x0C, 0xBA, 0x09, 0xB8, 0x0C, 0xB5, 0x09 - .byte 0xBC, 0x0C, 0xB0, 0x09, 0xC0, 0x0C, 0xAB, 0x09, 0xC3, 0x0C, 0xA6, 0x09, 0xC7, 0x0C, 0xA1, 0x09 - .byte 0xCB, 0x0C, 0x9C, 0x09, 0xCF, 0x0C, 0x97, 0x09, 0xD2, 0x0C, 0x92, 0x09, 0xD6, 0x0C, 0x8D, 0x09 - .byte 0xDA, 0x0C, 0x88, 0x09, 0xDE, 0x0C, 0x83, 0x09, 0xE1, 0x0C, 0x7E, 0x09, 0xE5, 0x0C, 0x79, 0x09 - .byte 0xE9, 0x0C, 0x74, 0x09, 0xED, 0x0C, 0x6F, 0x09, 0xF0, 0x0C, 0x6A, 0x09, 0xF4, 0x0C, 0x65, 0x09 - .byte 0xF8, 0x0C, 0x5F, 0x09, 0xFB, 0x0C, 0x5A, 0x09, 0xFF, 0x0C, 0x55, 0x09, 0x03, 0x0D, 0x50, 0x09 - .byte 0x06, 0x0D, 0x4B, 0x09, 0x0A, 0x0D, 0x46, 0x09, 0x0E, 0x0D, 0x41, 0x09, 0x11, 0x0D, 0x3C, 0x09 - .byte 0x15, 0x0D, 0x37, 0x09, 0x18, 0x0D, 0x31, 0x09, 0x1C, 0x0D, 0x2C, 0x09, 0x20, 0x0D, 0x27, 0x09 - .byte 0x23, 0x0D, 0x22, 0x09, 0x27, 0x0D, 0x1D, 0x09, 0x2A, 0x0D, 0x18, 0x09, 0x2E, 0x0D, 0x12, 0x09 - .byte 0x32, 0x0D, 0x0D, 0x09, 0x35, 0x0D, 0x08, 0x09, 0x39, 0x0D, 0x03, 0x09, 0x3C, 0x0D, 0xFE, 0x08 - .byte 0x40, 0x0D, 0xF8, 0x08, 0x43, 0x0D, 0xF3, 0x08, 0x47, 0x0D, 0xEE, 0x08, 0x4A, 0x0D, 0xE9, 0x08 - .byte 0x4E, 0x0D, 0xE4, 0x08, 0x51, 0x0D, 0xDE, 0x08, 0x55, 0x0D, 0xD9, 0x08, 0x58, 0x0D, 0xD4, 0x08 - .byte 0x5C, 0x0D, 0xCF, 0x08, 0x5F, 0x0D, 0xC9, 0x08, 0x62, 0x0D, 0xC4, 0x08, 0x66, 0x0D, 0xBF, 0x08 - .byte 0x69, 0x0D, 0xBA, 0x08, 0x6D, 0x0D, 0xB4, 0x08, 0x70, 0x0D, 0xAF, 0x08, 0x74, 0x0D, 0xAA, 0x08 - .byte 0x77, 0x0D, 0xA5, 0x08, 0x7A, 0x0D, 0x9F, 0x08, 0x7E, 0x0D, 0x9A, 0x08, 0x81, 0x0D, 0x95, 0x08 - .byte 0x85, 0x0D, 0x8F, 0x08, 0x88, 0x0D, 0x8A, 0x08, 0x8B, 0x0D, 0x85, 0x08, 0x8F, 0x0D, 0x7F, 0x08 - .byte 0x92, 0x0D, 0x7A, 0x08, 0x95, 0x0D, 0x75, 0x08, 0x99, 0x0D, 0x6F, 0x08, 0x9C, 0x0D, 0x6A, 0x08 - .byte 0x9F, 0x0D, 0x65, 0x08, 0xA2, 0x0D, 0x5F, 0x08, 0xA6, 0x0D, 0x5A, 0x08, 0xA9, 0x0D, 0x55, 0x08 - .byte 0xAC, 0x0D, 0x4F, 0x08, 0xB0, 0x0D, 0x4A, 0x08, 0xB3, 0x0D, 0x45, 0x08, 0xB6, 0x0D, 0x3F, 0x08 - .byte 0xB9, 0x0D, 0x3A, 0x08, 0xBC, 0x0D, 0x34, 0x08, 0xC0, 0x0D, 0x2F, 0x08, 0xC3, 0x0D, 0x2A, 0x08 - .byte 0xC6, 0x0D, 0x24, 0x08, 0xC9, 0x0D, 0x1F, 0x08, 0xCC, 0x0D, 0x19, 0x08, 0xD0, 0x0D, 0x14, 0x08 - .byte 0xD3, 0x0D, 0x0E, 0x08, 0xD6, 0x0D, 0x09, 0x08, 0xD9, 0x0D, 0x04, 0x08, 0xDC, 0x0D, 0xFE, 0x07 - .byte 0xDF, 0x0D, 0xF9, 0x07, 0xE3, 0x0D, 0xF3, 0x07, 0xE6, 0x0D, 0xEE, 0x07, 0xE9, 0x0D, 0xE8, 0x07 - .byte 0xEC, 0x0D, 0xE3, 0x07, 0xEF, 0x0D, 0xDD, 0x07, 0xF2, 0x0D, 0xD8, 0x07, 0xF5, 0x0D, 0xD2, 0x07 - .byte 0xF8, 0x0D, 0xCD, 0x07, 0xFB, 0x0D, 0xC8, 0x07, 0xFE, 0x0D, 0xC2, 0x07, 0x01, 0x0E, 0xBD, 0x07 - .byte 0x04, 0x0E, 0xB7, 0x07, 0x07, 0x0E, 0xB2, 0x07, 0x0A, 0x0E, 0xAC, 0x07, 0x0D, 0x0E, 0xA6, 0x07 - .byte 0x10, 0x0E, 0xA1, 0x07, 0x13, 0x0E, 0x9B, 0x07, 0x16, 0x0E, 0x96, 0x07, 0x19, 0x0E, 0x90, 0x07 - .byte 0x1C, 0x0E, 0x8B, 0x07, 0x1F, 0x0E, 0x85, 0x07, 0x22, 0x0E, 0x80, 0x07, 0x25, 0x0E, 0x7A, 0x07 - .byte 0x28, 0x0E, 0x75, 0x07, 0x2B, 0x0E, 0x6F, 0x07, 0x2E, 0x0E, 0x6A, 0x07, 0x31, 0x0E, 0x64, 0x07 - .byte 0x34, 0x0E, 0x5E, 0x07, 0x37, 0x0E, 0x59, 0x07, 0x3A, 0x0E, 0x53, 0x07, 0x3C, 0x0E, 0x4E, 0x07 - .byte 0x3F, 0x0E, 0x48, 0x07, 0x42, 0x0E, 0x42, 0x07, 0x45, 0x0E, 0x3D, 0x07, 0x48, 0x0E, 0x37, 0x07 - .byte 0x4B, 0x0E, 0x32, 0x07, 0x4D, 0x0E, 0x2C, 0x07, 0x50, 0x0E, 0x26, 0x07, 0x53, 0x0E, 0x21, 0x07 - .byte 0x56, 0x0E, 0x1B, 0x07, 0x59, 0x0E, 0x15, 0x07, 0x5B, 0x0E, 0x10, 0x07, 0x5E, 0x0E, 0x0A, 0x07 - .byte 0x61, 0x0E, 0x05, 0x07, 0x64, 0x0E, 0xFF, 0x06, 0x66, 0x0E, 0xF9, 0x06, 0x69, 0x0E, 0xF4, 0x06 - .byte 0x6C, 0x0E, 0xEE, 0x06, 0x6F, 0x0E, 0xE8, 0x06, 0x71, 0x0E, 0xE3, 0x06, 0x74, 0x0E, 0xDD, 0x06 - .byte 0x77, 0x0E, 0xD7, 0x06, 0x79, 0x0E, 0xD2, 0x06, 0x7C, 0x0E, 0xCC, 0x06, 0x7F, 0x0E, 0xC6, 0x06 - .byte 0x81, 0x0E, 0xC1, 0x06, 0x84, 0x0E, 0xBB, 0x06, 0x87, 0x0E, 0xB5, 0x06, 0x89, 0x0E, 0xAF, 0x06 - .byte 0x8C, 0x0E, 0xAA, 0x06, 0x8F, 0x0E, 0xA4, 0x06, 0x91, 0x0E, 0x9E, 0x06, 0x94, 0x0E, 0x99, 0x06 - .byte 0x96, 0x0E, 0x93, 0x06, 0x99, 0x0E, 0x8D, 0x06, 0x9B, 0x0E, 0x87, 0x06, 0x9E, 0x0E, 0x82, 0x06 - .byte 0xA1, 0x0E, 0x7C, 0x06, 0xA3, 0x0E, 0x76, 0x06, 0xA6, 0x0E, 0x70, 0x06, 0xA8, 0x0E, 0x6B, 0x06 - .byte 0xAB, 0x0E, 0x65, 0x06, 0xAD, 0x0E, 0x5F, 0x06, 0xB0, 0x0E, 0x59, 0x06, 0xB2, 0x0E, 0x54, 0x06 - .byte 0xB5, 0x0E, 0x4E, 0x06, 0xB7, 0x0E, 0x48, 0x06, 0xBA, 0x0E, 0x42, 0x06, 0xBC, 0x0E, 0x3C, 0x06 - .byte 0xBF, 0x0E, 0x37, 0x06, 0xC1, 0x0E, 0x31, 0x06, 0xC3, 0x0E, 0x2B, 0x06, 0xC6, 0x0E, 0x25, 0x06 - .byte 0xC8, 0x0E, 0x1F, 0x06, 0xCB, 0x0E, 0x1A, 0x06, 0xCD, 0x0E, 0x14, 0x06, 0xCF, 0x0E, 0x0E, 0x06 - .byte 0xD2, 0x0E, 0x08, 0x06, 0xD4, 0x0E, 0x02, 0x06, 0xD6, 0x0E, 0xFD, 0x05, 0xD9, 0x0E, 0xF7, 0x05 - .byte 0xDB, 0x0E, 0xF1, 0x05, 0xDD, 0x0E, 0xEB, 0x05, 0xE0, 0x0E, 0xE5, 0x05, 0xE2, 0x0E, 0xDF, 0x05 - .byte 0xE4, 0x0E, 0xDA, 0x05, 0xE7, 0x0E, 0xD4, 0x05, 0xE9, 0x0E, 0xCE, 0x05, 0xEB, 0x0E, 0xC8, 0x05 - .byte 0xEE, 0x0E, 0xC2, 0x05, 0xF0, 0x0E, 0xBC, 0x05, 0xF2, 0x0E, 0xB6, 0x05, 0xF4, 0x0E, 0xB1, 0x05 - .byte 0xF7, 0x0E, 0xAB, 0x05, 0xF9, 0x0E, 0xA5, 0x05, 0xFB, 0x0E, 0x9F, 0x05, 0xFD, 0x0E, 0x99, 0x05 - .byte 0xFF, 0x0E, 0x93, 0x05, 0x02, 0x0F, 0x8D, 0x05, 0x04, 0x0F, 0x87, 0x05, 0x06, 0x0F, 0x81, 0x05 - .byte 0x08, 0x0F, 0x7C, 0x05, 0x0A, 0x0F, 0x76, 0x05, 0x0C, 0x0F, 0x70, 0x05, 0x0E, 0x0F, 0x6A, 0x05 - .byte 0x11, 0x0F, 0x64, 0x05, 0x13, 0x0F, 0x5E, 0x05, 0x15, 0x0F, 0x58, 0x05, 0x17, 0x0F, 0x52, 0x05 - .byte 0x19, 0x0F, 0x4C, 0x05, 0x1B, 0x0F, 0x46, 0x05, 0x1D, 0x0F, 0x40, 0x05, 0x1F, 0x0F, 0x3A, 0x05 - .byte 0x21, 0x0F, 0x34, 0x05, 0x23, 0x0F, 0x2F, 0x05, 0x25, 0x0F, 0x29, 0x05, 0x27, 0x0F, 0x23, 0x05 - .byte 0x29, 0x0F, 0x1D, 0x05, 0x2B, 0x0F, 0x17, 0x05, 0x2D, 0x0F, 0x11, 0x05, 0x2F, 0x0F, 0x0B, 0x05 - .byte 0x31, 0x0F, 0x05, 0x05, 0x33, 0x0F, 0xFF, 0x04, 0x35, 0x0F, 0xF9, 0x04, 0x37, 0x0F, 0xF3, 0x04 - .byte 0x39, 0x0F, 0xED, 0x04, 0x3B, 0x0F, 0xE7, 0x04, 0x3D, 0x0F, 0xE1, 0x04, 0x3F, 0x0F, 0xDB, 0x04 - .byte 0x41, 0x0F, 0xD5, 0x04, 0x43, 0x0F, 0xCF, 0x04, 0x45, 0x0F, 0xC9, 0x04, 0x46, 0x0F, 0xC3, 0x04 - .byte 0x48, 0x0F, 0xBD, 0x04, 0x4A, 0x0F, 0xB7, 0x04, 0x4C, 0x0F, 0xB1, 0x04, 0x4E, 0x0F, 0xAB, 0x04 - .byte 0x50, 0x0F, 0xA5, 0x04, 0x51, 0x0F, 0x9F, 0x04, 0x53, 0x0F, 0x99, 0x04, 0x55, 0x0F, 0x93, 0x04 - .byte 0x57, 0x0F, 0x8D, 0x04, 0x59, 0x0F, 0x87, 0x04, 0x5A, 0x0F, 0x81, 0x04, 0x5C, 0x0F, 0x7B, 0x04 - .byte 0x5E, 0x0F, 0x75, 0x04, 0x60, 0x0F, 0x6F, 0x04, 0x61, 0x0F, 0x69, 0x04, 0x63, 0x0F, 0x63, 0x04 - .byte 0x65, 0x0F, 0x5D, 0x04, 0x67, 0x0F, 0x57, 0x04, 0x68, 0x0F, 0x51, 0x04, 0x6A, 0x0F, 0x4B, 0x04 - .byte 0x6C, 0x0F, 0x44, 0x04, 0x6D, 0x0F, 0x3E, 0x04, 0x6F, 0x0F, 0x38, 0x04, 0x71, 0x0F, 0x32, 0x04 - .byte 0x72, 0x0F, 0x2C, 0x04, 0x74, 0x0F, 0x26, 0x04, 0x76, 0x0F, 0x20, 0x04, 0x77, 0x0F, 0x1A, 0x04 - .byte 0x79, 0x0F, 0x14, 0x04, 0x7A, 0x0F, 0x0E, 0x04, 0x7C, 0x0F, 0x08, 0x04, 0x7D, 0x0F, 0x02, 0x04 - .byte 0x7F, 0x0F, 0xFC, 0x03, 0x81, 0x0F, 0xF6, 0x03, 0x82, 0x0F, 0xEF, 0x03, 0x84, 0x0F, 0xE9, 0x03 - .byte 0x85, 0x0F, 0xE3, 0x03, 0x87, 0x0F, 0xDD, 0x03, 0x88, 0x0F, 0xD7, 0x03, 0x8A, 0x0F, 0xD1, 0x03 - .byte 0x8B, 0x0F, 0xCB, 0x03, 0x8D, 0x0F, 0xC5, 0x03, 0x8E, 0x0F, 0xBF, 0x03, 0x90, 0x0F, 0xB9, 0x03 - .byte 0x91, 0x0F, 0xB2, 0x03, 0x93, 0x0F, 0xAC, 0x03, 0x94, 0x0F, 0xA6, 0x03, 0x95, 0x0F, 0xA0, 0x03 - .byte 0x97, 0x0F, 0x9A, 0x03, 0x98, 0x0F, 0x94, 0x03, 0x9A, 0x0F, 0x8E, 0x03, 0x9B, 0x0F, 0x88, 0x03 - .byte 0x9C, 0x0F, 0x81, 0x03, 0x9E, 0x0F, 0x7B, 0x03, 0x9F, 0x0F, 0x75, 0x03, 0xA1, 0x0F, 0x6F, 0x03 - .byte 0xA2, 0x0F, 0x69, 0x03, 0xA3, 0x0F, 0x63, 0x03, 0xA5, 0x0F, 0x5D, 0x03, 0xA6, 0x0F, 0x56, 0x03 - .byte 0xA7, 0x0F, 0x50, 0x03, 0xA8, 0x0F, 0x4A, 0x03, 0xAA, 0x0F, 0x44, 0x03, 0xAB, 0x0F, 0x3E, 0x03 - .byte 0xAC, 0x0F, 0x38, 0x03, 0xAE, 0x0F, 0x32, 0x03, 0xAF, 0x0F, 0x2B, 0x03, 0xB0, 0x0F, 0x25, 0x03 - .byte 0xB1, 0x0F, 0x1F, 0x03, 0xB3, 0x0F, 0x19, 0x03, 0xB4, 0x0F, 0x13, 0x03, 0xB5, 0x0F, 0x0D, 0x03 - .byte 0xB6, 0x0F, 0x06, 0x03, 0xB7, 0x0F, 0x00, 0x03, 0xB8, 0x0F, 0xFA, 0x02, 0xBA, 0x0F, 0xF4, 0x02 - .byte 0xBB, 0x0F, 0xEE, 0x02, 0xBC, 0x0F, 0xE8, 0x02, 0xBD, 0x0F, 0xE1, 0x02, 0xBE, 0x0F, 0xDB, 0x02 - .byte 0xBF, 0x0F, 0xD5, 0x02, 0xC0, 0x0F, 0xCF, 0x02, 0xC2, 0x0F, 0xC9, 0x02, 0xC3, 0x0F, 0xC2, 0x02 - .byte 0xC4, 0x0F, 0xBC, 0x02, 0xC5, 0x0F, 0xB6, 0x02, 0xC6, 0x0F, 0xB0, 0x02, 0xC7, 0x0F, 0xAA, 0x02 - .byte 0xC8, 0x0F, 0xA3, 0x02, 0xC9, 0x0F, 0x9D, 0x02, 0xCA, 0x0F, 0x97, 0x02, 0xCB, 0x0F, 0x91, 0x02 - .byte 0xCC, 0x0F, 0x8B, 0x02, 0xCD, 0x0F, 0x84, 0x02, 0xCE, 0x0F, 0x7E, 0x02, 0xCF, 0x0F, 0x78, 0x02 - .byte 0xD0, 0x0F, 0x72, 0x02, 0xD1, 0x0F, 0x6C, 0x02, 0xD2, 0x0F, 0x65, 0x02, 0xD3, 0x0F, 0x5F, 0x02 - .byte 0xD4, 0x0F, 0x59, 0x02, 0xD5, 0x0F, 0x53, 0x02, 0xD5, 0x0F, 0x4D, 0x02, 0xD6, 0x0F, 0x46, 0x02 - .byte 0xD7, 0x0F, 0x40, 0x02, 0xD8, 0x0F, 0x3A, 0x02, 0xD9, 0x0F, 0x34, 0x02, 0xDA, 0x0F, 0x2D, 0x02 - .byte 0xDB, 0x0F, 0x27, 0x02, 0xDC, 0x0F, 0x21, 0x02, 0xDC, 0x0F, 0x1B, 0x02, 0xDD, 0x0F, 0x15, 0x02 - .byte 0xDE, 0x0F, 0x0E, 0x02, 0xDF, 0x0F, 0x08, 0x02, 0xE0, 0x0F, 0x02, 0x02, 0xE0, 0x0F, 0xFC, 0x01 - .byte 0xE1, 0x0F, 0xF5, 0x01, 0xE2, 0x0F, 0xEF, 0x01, 0xE3, 0x0F, 0xE9, 0x01, 0xE3, 0x0F, 0xE3, 0x01 - .byte 0xE4, 0x0F, 0xDC, 0x01, 0xE5, 0x0F, 0xD6, 0x01, 0xE6, 0x0F, 0xD0, 0x01, 0xE6, 0x0F, 0xCA, 0x01 - .byte 0xE7, 0x0F, 0xC3, 0x01, 0xE8, 0x0F, 0xBD, 0x01, 0xE8, 0x0F, 0xB7, 0x01, 0xE9, 0x0F, 0xB1, 0x01 - .byte 0xEA, 0x0F, 0xAA, 0x01, 0xEA, 0x0F, 0xA4, 0x01, 0xEB, 0x0F, 0x9E, 0x01, 0xEC, 0x0F, 0x98, 0x01 - .byte 0xEC, 0x0F, 0x91, 0x01, 0xED, 0x0F, 0x8B, 0x01, 0xED, 0x0F, 0x85, 0x01, 0xEE, 0x0F, 0x7F, 0x01 - .byte 0xEF, 0x0F, 0x78, 0x01, 0xEF, 0x0F, 0x72, 0x01, 0xF0, 0x0F, 0x6C, 0x01, 0xF0, 0x0F, 0x66, 0x01 - .byte 0xF1, 0x0F, 0x5F, 0x01, 0xF1, 0x0F, 0x59, 0x01, 0xF2, 0x0F, 0x53, 0x01, 0xF2, 0x0F, 0x4D, 0x01 - .byte 0xF3, 0x0F, 0x46, 0x01, 0xF3, 0x0F, 0x40, 0x01, 0xF4, 0x0F, 0x3A, 0x01, 0xF4, 0x0F, 0x34, 0x01 - .byte 0xF5, 0x0F, 0x2D, 0x01, 0xF5, 0x0F, 0x27, 0x01, 0xF6, 0x0F, 0x21, 0x01, 0xF6, 0x0F, 0x1B, 0x01 - .byte 0xF7, 0x0F, 0x14, 0x01, 0xF7, 0x0F, 0x0E, 0x01, 0xF8, 0x0F, 0x08, 0x01, 0xF8, 0x0F, 0x01, 0x01 - .byte 0xF8, 0x0F, 0xFB, 0x00, 0xF9, 0x0F, 0xF5, 0x00, 0xF9, 0x0F, 0xEF, 0x00, 0xF9, 0x0F, 0xE8, 0x00 - .byte 0xFA, 0x0F, 0xE2, 0x00, 0xFA, 0x0F, 0xDC, 0x00, 0xFA, 0x0F, 0xD6, 0x00, 0xFB, 0x0F, 0xCF, 0x00 - .byte 0xFB, 0x0F, 0xC9, 0x00, 0xFB, 0x0F, 0xC3, 0x00, 0xFC, 0x0F, 0xBC, 0x00, 0xFC, 0x0F, 0xB6, 0x00 - .byte 0xFC, 0x0F, 0xB0, 0x00, 0xFC, 0x0F, 0xAA, 0x00, 0xFD, 0x0F, 0xA3, 0x00, 0xFD, 0x0F, 0x9D, 0x00 - .byte 0xFD, 0x0F, 0x97, 0x00, 0xFD, 0x0F, 0x90, 0x00, 0xFE, 0x0F, 0x8A, 0x00, 0xFE, 0x0F, 0x84, 0x00 - .byte 0xFE, 0x0F, 0x7E, 0x00, 0xFE, 0x0F, 0x77, 0x00, 0xFE, 0x0F, 0x71, 0x00, 0xFF, 0x0F, 0x6B, 0x00 - .byte 0xFF, 0x0F, 0x65, 0x00, 0xFF, 0x0F, 0x5E, 0x00, 0xFF, 0x0F, 0x58, 0x00, 0xFF, 0x0F, 0x52, 0x00 - .byte 0xFF, 0x0F, 0x4B, 0x00, 0xFF, 0x0F, 0x45, 0x00, 0x00, 0x10, 0x3F, 0x00, 0x00, 0x10, 0x39, 0x00 - .byte 0x00, 0x10, 0x32, 0x00, 0x00, 0x10, 0x2C, 0x00, 0x00, 0x10, 0x26, 0x00, 0x00, 0x10, 0x1F, 0x00 - .byte 0x00, 0x10, 0x19, 0x00, 0x00, 0x10, 0x13, 0x00, 0x00, 0x10, 0x0D, 0x00, 0x00, 0x10, 0x06, 0x00 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0xFA, 0xFF, 0x00, 0x10, 0xF3, 0xFF, 0x00, 0x10, 0xED, 0xFF - .byte 0x00, 0x10, 0xE7, 0xFF, 0x00, 0x10, 0xE1, 0xFF, 0x00, 0x10, 0xDA, 0xFF, 0x00, 0x10, 0xD4, 0xFF - .byte 0x00, 0x10, 0xCE, 0xFF, 0x00, 0x10, 0xC7, 0xFF, 0x00, 0x10, 0xC1, 0xFF, 0xFF, 0x0F, 0xBB, 0xFF - .byte 0xFF, 0x0F, 0xB5, 0xFF, 0xFF, 0x0F, 0xAE, 0xFF, 0xFF, 0x0F, 0xA8, 0xFF, 0xFF, 0x0F, 0xA2, 0xFF - .byte 0xFF, 0x0F, 0x9B, 0xFF, 0xFF, 0x0F, 0x95, 0xFF, 0xFE, 0x0F, 0x8F, 0xFF, 0xFE, 0x0F, 0x89, 0xFF - .byte 0xFE, 0x0F, 0x82, 0xFF, 0xFE, 0x0F, 0x7C, 0xFF, 0xFE, 0x0F, 0x76, 0xFF, 0xFD, 0x0F, 0x70, 0xFF - .byte 0xFD, 0x0F, 0x69, 0xFF, 0xFD, 0x0F, 0x63, 0xFF, 0xFD, 0x0F, 0x5D, 0xFF, 0xFC, 0x0F, 0x56, 0xFF - .byte 0xFC, 0x0F, 0x50, 0xFF, 0xFC, 0x0F, 0x4A, 0xFF, 0xFC, 0x0F, 0x44, 0xFF, 0xFB, 0x0F, 0x3D, 0xFF - .byte 0xFB, 0x0F, 0x37, 0xFF, 0xFB, 0x0F, 0x31, 0xFF, 0xFA, 0x0F, 0x2A, 0xFF, 0xFA, 0x0F, 0x24, 0xFF - .byte 0xFA, 0x0F, 0x1E, 0xFF, 0xF9, 0x0F, 0x18, 0xFF, 0xF9, 0x0F, 0x11, 0xFF, 0xF9, 0x0F, 0x0B, 0xFF - .byte 0xF8, 0x0F, 0x05, 0xFF, 0xF8, 0x0F, 0xFF, 0xFE, 0xF8, 0x0F, 0xF8, 0xFE, 0xF7, 0x0F, 0xF2, 0xFE - .byte 0xF7, 0x0F, 0xEC, 0xFE, 0xF6, 0x0F, 0xE5, 0xFE, 0xF6, 0x0F, 0xDF, 0xFE, 0xF5, 0x0F, 0xD9, 0xFE - .byte 0xF5, 0x0F, 0xD3, 0xFE, 0xF4, 0x0F, 0xCC, 0xFE, 0xF4, 0x0F, 0xC6, 0xFE, 0xF3, 0x0F, 0xC0, 0xFE - .byte 0xF3, 0x0F, 0xBA, 0xFE, 0xF2, 0x0F, 0xB3, 0xFE, 0xF2, 0x0F, 0xAD, 0xFE, 0xF1, 0x0F, 0xA7, 0xFE - .byte 0xF1, 0x0F, 0xA1, 0xFE, 0xF0, 0x0F, 0x9A, 0xFE, 0xF0, 0x0F, 0x94, 0xFE, 0xEF, 0x0F, 0x8E, 0xFE - .byte 0xEF, 0x0F, 0x88, 0xFE, 0xEE, 0x0F, 0x81, 0xFE, 0xED, 0x0F, 0x7B, 0xFE, 0xED, 0x0F, 0x75, 0xFE - .byte 0xEC, 0x0F, 0x6F, 0xFE, 0xEC, 0x0F, 0x68, 0xFE, 0xEB, 0x0F, 0x62, 0xFE, 0xEA, 0x0F, 0x5C, 0xFE - .byte 0xEA, 0x0F, 0x56, 0xFE, 0xE9, 0x0F, 0x4F, 0xFE, 0xE8, 0x0F, 0x49, 0xFE, 0xE8, 0x0F, 0x43, 0xFE - .byte 0xE7, 0x0F, 0x3D, 0xFE, 0xE6, 0x0F, 0x36, 0xFE, 0xE6, 0x0F, 0x30, 0xFE, 0xE5, 0x0F, 0x2A, 0xFE - .byte 0xE4, 0x0F, 0x24, 0xFE, 0xE3, 0x0F, 0x1D, 0xFE, 0xE3, 0x0F, 0x17, 0xFE, 0xE2, 0x0F, 0x11, 0xFE - .byte 0xE1, 0x0F, 0x0B, 0xFE, 0xE0, 0x0F, 0x04, 0xFE, 0xE0, 0x0F, 0xFE, 0xFD, 0xDF, 0x0F, 0xF8, 0xFD - .byte 0xDE, 0x0F, 0xF2, 0xFD, 0xDD, 0x0F, 0xEB, 0xFD, 0xDC, 0x0F, 0xE5, 0xFD, 0xDC, 0x0F, 0xDF, 0xFD - .byte 0xDB, 0x0F, 0xD9, 0xFD, 0xDA, 0x0F, 0xD3, 0xFD, 0xD9, 0x0F, 0xCC, 0xFD, 0xD8, 0x0F, 0xC6, 0xFD - .byte 0xD7, 0x0F, 0xC0, 0xFD, 0xD6, 0x0F, 0xBA, 0xFD, 0xD5, 0x0F, 0xB3, 0xFD, 0xD5, 0x0F, 0xAD, 0xFD - .byte 0xD4, 0x0F, 0xA7, 0xFD, 0xD3, 0x0F, 0xA1, 0xFD, 0xD2, 0x0F, 0x9B, 0xFD, 0xD1, 0x0F, 0x94, 0xFD - .byte 0xD0, 0x0F, 0x8E, 0xFD, 0xCF, 0x0F, 0x88, 0xFD, 0xCE, 0x0F, 0x82, 0xFD, 0xCD, 0x0F, 0x7C, 0xFD - .byte 0xCC, 0x0F, 0x75, 0xFD, 0xCB, 0x0F, 0x6F, 0xFD, 0xCA, 0x0F, 0x69, 0xFD, 0xC9, 0x0F, 0x63, 0xFD - .byte 0xC8, 0x0F, 0x5D, 0xFD, 0xC7, 0x0F, 0x56, 0xFD, 0xC6, 0x0F, 0x50, 0xFD, 0xC5, 0x0F, 0x4A, 0xFD - .byte 0xC4, 0x0F, 0x44, 0xFD, 0xC3, 0x0F, 0x3E, 0xFD, 0xC2, 0x0F, 0x37, 0xFD, 0xC0, 0x0F, 0x31, 0xFD - .byte 0xBF, 0x0F, 0x2B, 0xFD, 0xBE, 0x0F, 0x25, 0xFD, 0xBD, 0x0F, 0x1F, 0xFD, 0xBC, 0x0F, 0x18, 0xFD - .byte 0xBB, 0x0F, 0x12, 0xFD, 0xBA, 0x0F, 0x0C, 0xFD, 0xB8, 0x0F, 0x06, 0xFD, 0xB7, 0x0F, 0x00, 0xFD - .byte 0xB6, 0x0F, 0xFA, 0xFC, 0xB5, 0x0F, 0xF3, 0xFC, 0xB4, 0x0F, 0xED, 0xFC, 0xB3, 0x0F, 0xE7, 0xFC - .byte 0xB1, 0x0F, 0xE1, 0xFC, 0xB0, 0x0F, 0xDB, 0xFC, 0xAF, 0x0F, 0xD5, 0xFC, 0xAE, 0x0F, 0xCE, 0xFC - .byte 0xAC, 0x0F, 0xC8, 0xFC, 0xAB, 0x0F, 0xC2, 0xFC, 0xAA, 0x0F, 0xBC, 0xFC, 0xA8, 0x0F, 0xB6, 0xFC - .byte 0xA7, 0x0F, 0xB0, 0xFC, 0xA6, 0x0F, 0xAA, 0xFC, 0xA5, 0x0F, 0xA3, 0xFC, 0xA3, 0x0F, 0x9D, 0xFC - .byte 0xA2, 0x0F, 0x97, 0xFC, 0xA1, 0x0F, 0x91, 0xFC, 0x9F, 0x0F, 0x8B, 0xFC, 0x9E, 0x0F, 0x85, 0xFC - .byte 0x9C, 0x0F, 0x7F, 0xFC, 0x9B, 0x0F, 0x78, 0xFC, 0x9A, 0x0F, 0x72, 0xFC, 0x98, 0x0F, 0x6C, 0xFC - .byte 0x97, 0x0F, 0x66, 0xFC, 0x95, 0x0F, 0x60, 0xFC, 0x94, 0x0F, 0x5A, 0xFC, 0x93, 0x0F, 0x54, 0xFC - .byte 0x91, 0x0F, 0x4E, 0xFC, 0x90, 0x0F, 0x47, 0xFC, 0x8E, 0x0F, 0x41, 0xFC, 0x8D, 0x0F, 0x3B, 0xFC - .byte 0x8B, 0x0F, 0x35, 0xFC, 0x8A, 0x0F, 0x2F, 0xFC, 0x88, 0x0F, 0x29, 0xFC, 0x87, 0x0F, 0x23, 0xFC - .byte 0x85, 0x0F, 0x1D, 0xFC, 0x84, 0x0F, 0x17, 0xFC, 0x82, 0x0F, 0x11, 0xFC, 0x81, 0x0F, 0x0A, 0xFC - .byte 0x7F, 0x0F, 0x04, 0xFC, 0x7D, 0x0F, 0xFE, 0xFB, 0x7C, 0x0F, 0xF8, 0xFB, 0x7A, 0x0F, 0xF2, 0xFB - .byte 0x79, 0x0F, 0xEC, 0xFB, 0x77, 0x0F, 0xE6, 0xFB, 0x76, 0x0F, 0xE0, 0xFB, 0x74, 0x0F, 0xDA, 0xFB - .byte 0x72, 0x0F, 0xD4, 0xFB, 0x71, 0x0F, 0xCE, 0xFB, 0x6F, 0x0F, 0xC8, 0xFB, 0x6D, 0x0F, 0xC2, 0xFB - .byte 0x6C, 0x0F, 0xBC, 0xFB, 0x6A, 0x0F, 0xB5, 0xFB, 0x68, 0x0F, 0xAF, 0xFB, 0x67, 0x0F, 0xA9, 0xFB - .byte 0x65, 0x0F, 0xA3, 0xFB, 0x63, 0x0F, 0x9D, 0xFB, 0x61, 0x0F, 0x97, 0xFB, 0x60, 0x0F, 0x91, 0xFB - .byte 0x5E, 0x0F, 0x8B, 0xFB, 0x5C, 0x0F, 0x85, 0xFB, 0x5A, 0x0F, 0x7F, 0xFB, 0x59, 0x0F, 0x79, 0xFB - .byte 0x57, 0x0F, 0x73, 0xFB, 0x55, 0x0F, 0x6D, 0xFB, 0x53, 0x0F, 0x67, 0xFB, 0x51, 0x0F, 0x61, 0xFB - .byte 0x50, 0x0F, 0x5B, 0xFB, 0x4E, 0x0F, 0x55, 0xFB, 0x4C, 0x0F, 0x4F, 0xFB, 0x4A, 0x0F, 0x49, 0xFB - .byte 0x48, 0x0F, 0x43, 0xFB, 0x46, 0x0F, 0x3D, 0xFB, 0x45, 0x0F, 0x37, 0xFB, 0x43, 0x0F, 0x31, 0xFB - .byte 0x41, 0x0F, 0x2B, 0xFB, 0x3F, 0x0F, 0x25, 0xFB, 0x3D, 0x0F, 0x1F, 0xFB, 0x3B, 0x0F, 0x19, 0xFB - .byte 0x39, 0x0F, 0x13, 0xFB, 0x37, 0x0F, 0x0D, 0xFB, 0x35, 0x0F, 0x07, 0xFB, 0x33, 0x0F, 0x01, 0xFB - .byte 0x31, 0x0F, 0xFB, 0xFA, 0x2F, 0x0F, 0xF5, 0xFA, 0x2D, 0x0F, 0xEF, 0xFA, 0x2B, 0x0F, 0xE9, 0xFA - .byte 0x29, 0x0F, 0xE3, 0xFA, 0x27, 0x0F, 0xDD, 0xFA, 0x25, 0x0F, 0xD7, 0xFA, 0x23, 0x0F, 0xD1, 0xFA - .byte 0x21, 0x0F, 0xCC, 0xFA, 0x1F, 0x0F, 0xC6, 0xFA, 0x1D, 0x0F, 0xC0, 0xFA, 0x1B, 0x0F, 0xBA, 0xFA - .byte 0x19, 0x0F, 0xB4, 0xFA, 0x17, 0x0F, 0xAE, 0xFA, 0x15, 0x0F, 0xA8, 0xFA, 0x13, 0x0F, 0xA2, 0xFA - .byte 0x11, 0x0F, 0x9C, 0xFA, 0x0E, 0x0F, 0x96, 0xFA, 0x0C, 0x0F, 0x90, 0xFA, 0x0A, 0x0F, 0x8A, 0xFA - .byte 0x08, 0x0F, 0x84, 0xFA, 0x06, 0x0F, 0x7F, 0xFA, 0x04, 0x0F, 0x79, 0xFA, 0x02, 0x0F, 0x73, 0xFA - .byte 0xFF, 0x0E, 0x6D, 0xFA, 0xFD, 0x0E, 0x67, 0xFA, 0xFB, 0x0E, 0x61, 0xFA, 0xF9, 0x0E, 0x5B, 0xFA - .byte 0xF7, 0x0E, 0x55, 0xFA, 0xF4, 0x0E, 0x4F, 0xFA, 0xF2, 0x0E, 0x4A, 0xFA, 0xF0, 0x0E, 0x44, 0xFA - .byte 0xEE, 0x0E, 0x3E, 0xFA, 0xEB, 0x0E, 0x38, 0xFA, 0xE9, 0x0E, 0x32, 0xFA, 0xE7, 0x0E, 0x2C, 0xFA - .byte 0xE4, 0x0E, 0x26, 0xFA, 0xE2, 0x0E, 0x21, 0xFA, 0xE0, 0x0E, 0x1B, 0xFA, 0xDD, 0x0E, 0x15, 0xFA - .byte 0xDB, 0x0E, 0x0F, 0xFA, 0xD9, 0x0E, 0x09, 0xFA, 0xD6, 0x0E, 0x03, 0xFA, 0xD4, 0x0E, 0xFE, 0xF9 - .byte 0xD2, 0x0E, 0xF8, 0xF9, 0xCF, 0x0E, 0xF2, 0xF9, 0xCD, 0x0E, 0xEC, 0xF9, 0xCB, 0x0E, 0xE6, 0xF9 - .byte 0xC8, 0x0E, 0xE1, 0xF9, 0xC6, 0x0E, 0xDB, 0xF9, 0xC3, 0x0E, 0xD5, 0xF9, 0xC1, 0x0E, 0xCF, 0xF9 - .byte 0xBF, 0x0E, 0xC9, 0xF9, 0xBC, 0x0E, 0xC4, 0xF9, 0xBA, 0x0E, 0xBE, 0xF9, 0xB7, 0x0E, 0xB8, 0xF9 - .byte 0xB5, 0x0E, 0xB2, 0xF9, 0xB2, 0x0E, 0xAC, 0xF9, 0xB0, 0x0E, 0xA7, 0xF9, 0xAD, 0x0E, 0xA1, 0xF9 - .byte 0xAB, 0x0E, 0x9B, 0xF9, 0xA8, 0x0E, 0x95, 0xF9, 0xA6, 0x0E, 0x90, 0xF9, 0xA3, 0x0E, 0x8A, 0xF9 - .byte 0xA1, 0x0E, 0x84, 0xF9, 0x9E, 0x0E, 0x7E, 0xF9, 0x9B, 0x0E, 0x79, 0xF9, 0x99, 0x0E, 0x73, 0xF9 - .byte 0x96, 0x0E, 0x6D, 0xF9, 0x94, 0x0E, 0x67, 0xF9, 0x91, 0x0E, 0x62, 0xF9, 0x8F, 0x0E, 0x5C, 0xF9 - .byte 0x8C, 0x0E, 0x56, 0xF9, 0x89, 0x0E, 0x51, 0xF9, 0x87, 0x0E, 0x4B, 0xF9, 0x84, 0x0E, 0x45, 0xF9 - .byte 0x81, 0x0E, 0x3F, 0xF9, 0x7F, 0x0E, 0x3A, 0xF9, 0x7C, 0x0E, 0x34, 0xF9, 0x79, 0x0E, 0x2E, 0xF9 - .byte 0x77, 0x0E, 0x29, 0xF9, 0x74, 0x0E, 0x23, 0xF9, 0x71, 0x0E, 0x1D, 0xF9, 0x6F, 0x0E, 0x18, 0xF9 - .byte 0x6C, 0x0E, 0x12, 0xF9, 0x69, 0x0E, 0x0C, 0xF9, 0x66, 0x0E, 0x07, 0xF9, 0x64, 0x0E, 0x01, 0xF9 - .byte 0x61, 0x0E, 0xFB, 0xF8, 0x5E, 0x0E, 0xF6, 0xF8, 0x5B, 0x0E, 0xF0, 0xF8, 0x59, 0x0E, 0xEB, 0xF8 - .byte 0x56, 0x0E, 0xE5, 0xF8, 0x53, 0x0E, 0xDF, 0xF8, 0x50, 0x0E, 0xDA, 0xF8, 0x4D, 0x0E, 0xD4, 0xF8 - .byte 0x4B, 0x0E, 0xCE, 0xF8, 0x48, 0x0E, 0xC9, 0xF8, 0x45, 0x0E, 0xC3, 0xF8, 0x42, 0x0E, 0xBE, 0xF8 - .byte 0x3F, 0x0E, 0xB8, 0xF8, 0x3C, 0x0E, 0xB2, 0xF8, 0x3A, 0x0E, 0xAD, 0xF8, 0x37, 0x0E, 0xA7, 0xF8 - .byte 0x34, 0x0E, 0xA2, 0xF8, 0x31, 0x0E, 0x9C, 0xF8, 0x2E, 0x0E, 0x96, 0xF8, 0x2B, 0x0E, 0x91, 0xF8 - .byte 0x28, 0x0E, 0x8B, 0xF8, 0x25, 0x0E, 0x86, 0xF8, 0x22, 0x0E, 0x80, 0xF8, 0x1F, 0x0E, 0x7B, 0xF8 - .byte 0x1C, 0x0E, 0x75, 0xF8, 0x19, 0x0E, 0x70, 0xF8, 0x16, 0x0E, 0x6A, 0xF8, 0x13, 0x0E, 0x65, 0xF8 - .byte 0x10, 0x0E, 0x5F, 0xF8, 0x0D, 0x0E, 0x5A, 0xF8, 0x0A, 0x0E, 0x54, 0xF8, 0x07, 0x0E, 0x4E, 0xF8 - .byte 0x04, 0x0E, 0x49, 0xF8, 0x01, 0x0E, 0x43, 0xF8, 0xFE, 0x0D, 0x3E, 0xF8, 0xFB, 0x0D, 0x38, 0xF8 - .byte 0xF8, 0x0D, 0x33, 0xF8, 0xF5, 0x0D, 0x2E, 0xF8, 0xF2, 0x0D, 0x28, 0xF8, 0xEF, 0x0D, 0x23, 0xF8 - .byte 0xEC, 0x0D, 0x1D, 0xF8, 0xE9, 0x0D, 0x18, 0xF8, 0xE6, 0x0D, 0x12, 0xF8, 0xE3, 0x0D, 0x0D, 0xF8 - .byte 0xDF, 0x0D, 0x07, 0xF8, 0xDC, 0x0D, 0x02, 0xF8, 0xD9, 0x0D, 0xFC, 0xF7, 0xD6, 0x0D, 0xF7, 0xF7 - .byte 0xD3, 0x0D, 0xF2, 0xF7, 0xD0, 0x0D, 0xEC, 0xF7, 0xCC, 0x0D, 0xE7, 0xF7, 0xC9, 0x0D, 0xE1, 0xF7 - .byte 0xC6, 0x0D, 0xDC, 0xF7, 0xC3, 0x0D, 0xD6, 0xF7, 0xC0, 0x0D, 0xD1, 0xF7, 0xBC, 0x0D, 0xCC, 0xF7 - .byte 0xB9, 0x0D, 0xC6, 0xF7, 0xB6, 0x0D, 0xC1, 0xF7, 0xB3, 0x0D, 0xBB, 0xF7, 0xB0, 0x0D, 0xB6, 0xF7 - .byte 0xAC, 0x0D, 0xB1, 0xF7, 0xA9, 0x0D, 0xAB, 0xF7, 0xA6, 0x0D, 0xA6, 0xF7, 0xA2, 0x0D, 0xA1, 0xF7 - .byte 0x9F, 0x0D, 0x9B, 0xF7, 0x9C, 0x0D, 0x96, 0xF7, 0x99, 0x0D, 0x91, 0xF7, 0x95, 0x0D, 0x8B, 0xF7 - .byte 0x92, 0x0D, 0x86, 0xF7, 0x8F, 0x0D, 0x81, 0xF7, 0x8B, 0x0D, 0x7B, 0xF7, 0x88, 0x0D, 0x76, 0xF7 - .byte 0x85, 0x0D, 0x71, 0xF7, 0x81, 0x0D, 0x6B, 0xF7, 0x7E, 0x0D, 0x66, 0xF7, 0x7A, 0x0D, 0x61, 0xF7 - .byte 0x77, 0x0D, 0x5B, 0xF7, 0x74, 0x0D, 0x56, 0xF7, 0x70, 0x0D, 0x51, 0xF7, 0x6D, 0x0D, 0x4C, 0xF7 - .byte 0x69, 0x0D, 0x46, 0xF7, 0x66, 0x0D, 0x41, 0xF7, 0x62, 0x0D, 0x3C, 0xF7, 0x5F, 0x0D, 0x37, 0xF7 - .byte 0x5C, 0x0D, 0x31, 0xF7, 0x58, 0x0D, 0x2C, 0xF7, 0x55, 0x0D, 0x27, 0xF7, 0x51, 0x0D, 0x22, 0xF7 - .byte 0x4E, 0x0D, 0x1C, 0xF7, 0x4A, 0x0D, 0x17, 0xF7, 0x47, 0x0D, 0x12, 0xF7, 0x43, 0x0D, 0x0D, 0xF7 - .byte 0x40, 0x0D, 0x08, 0xF7, 0x3C, 0x0D, 0x02, 0xF7, 0x39, 0x0D, 0xFD, 0xF6, 0x35, 0x0D, 0xF8, 0xF6 - .byte 0x32, 0x0D, 0xF3, 0xF6, 0x2E, 0x0D, 0xEE, 0xF6, 0x2A, 0x0D, 0xE8, 0xF6, 0x27, 0x0D, 0xE3, 0xF6 - .byte 0x23, 0x0D, 0xDE, 0xF6, 0x20, 0x0D, 0xD9, 0xF6, 0x1C, 0x0D, 0xD4, 0xF6, 0x18, 0x0D, 0xCF, 0xF6 - .byte 0x15, 0x0D, 0xC9, 0xF6, 0x11, 0x0D, 0xC4, 0xF6, 0x0E, 0x0D, 0xBF, 0xF6, 0x0A, 0x0D, 0xBA, 0xF6 - .byte 0x06, 0x0D, 0xB5, 0xF6, 0x03, 0x0D, 0xB0, 0xF6, 0xFF, 0x0C, 0xAB, 0xF6, 0xFB, 0x0C, 0xA6, 0xF6 - .byte 0xF8, 0x0C, 0xA1, 0xF6, 0xF4, 0x0C, 0x9B, 0xF6, 0xF0, 0x0C, 0x96, 0xF6, 0xED, 0x0C, 0x91, 0xF6 - .byte 0xE9, 0x0C, 0x8C, 0xF6, 0xE5, 0x0C, 0x87, 0xF6, 0xE1, 0x0C, 0x82, 0xF6, 0xDE, 0x0C, 0x7D, 0xF6 - .byte 0xDA, 0x0C, 0x78, 0xF6, 0xD6, 0x0C, 0x73, 0xF6, 0xD2, 0x0C, 0x6E, 0xF6, 0xCF, 0x0C, 0x69, 0xF6 - .byte 0xCB, 0x0C, 0x64, 0xF6, 0xC7, 0x0C, 0x5F, 0xF6, 0xC3, 0x0C, 0x5A, 0xF6, 0xC0, 0x0C, 0x55, 0xF6 - .byte 0xBC, 0x0C, 0x50, 0xF6, 0xB8, 0x0C, 0x4B, 0xF6, 0xB4, 0x0C, 0x46, 0xF6, 0xB0, 0x0C, 0x41, 0xF6 - .byte 0xAC, 0x0C, 0x3C, 0xF6, 0xA9, 0x0C, 0x37, 0xF6, 0xA5, 0x0C, 0x32, 0xF6, 0xA1, 0x0C, 0x2D, 0xF6 - .byte 0x9D, 0x0C, 0x28, 0xF6, 0x99, 0x0C, 0x23, 0xF6, 0x95, 0x0C, 0x1E, 0xF6, 0x91, 0x0C, 0x19, 0xF6 - .byte 0x8E, 0x0C, 0x14, 0xF6, 0x8A, 0x0C, 0x0F, 0xF6, 0x86, 0x0C, 0x0A, 0xF6, 0x82, 0x0C, 0x05, 0xF6 - .byte 0x7E, 0x0C, 0x01, 0xF6, 0x7A, 0x0C, 0xFC, 0xF5, 0x76, 0x0C, 0xF7, 0xF5, 0x72, 0x0C, 0xF2, 0xF5 - .byte 0x6E, 0x0C, 0xED, 0xF5, 0x6A, 0x0C, 0xE8, 0xF5, 0x66, 0x0C, 0xE3, 0xF5, 0x62, 0x0C, 0xDE, 0xF5 - .byte 0x5E, 0x0C, 0xDA, 0xF5, 0x5A, 0x0C, 0xD5, 0xF5, 0x56, 0x0C, 0xD0, 0xF5, 0x52, 0x0C, 0xCB, 0xF5 - .byte 0x4E, 0x0C, 0xC6, 0xF5, 0x4A, 0x0C, 0xC1, 0xF5, 0x46, 0x0C, 0xBC, 0xF5, 0x42, 0x0C, 0xB8, 0xF5 - .byte 0x3E, 0x0C, 0xB3, 0xF5, 0x3A, 0x0C, 0xAE, 0xF5, 0x36, 0x0C, 0xA9, 0xF5, 0x32, 0x0C, 0xA4, 0xF5 - .byte 0x2E, 0x0C, 0xA0, 0xF5, 0x2A, 0x0C, 0x9B, 0xF5, 0x26, 0x0C, 0x96, 0xF5, 0x22, 0x0C, 0x91, 0xF5 - .byte 0x1E, 0x0C, 0x8D, 0xF5, 0x19, 0x0C, 0x88, 0xF5, 0x15, 0x0C, 0x83, 0xF5, 0x11, 0x0C, 0x7E, 0xF5 - .byte 0x0D, 0x0C, 0x7A, 0xF5, 0x09, 0x0C, 0x75, 0xF5, 0x05, 0x0C, 0x70, 0xF5, 0x01, 0x0C, 0x6B, 0xF5 - .byte 0xFC, 0x0B, 0x67, 0xF5, 0xF8, 0x0B, 0x62, 0xF5, 0xF4, 0x0B, 0x5D, 0xF5, 0xF0, 0x0B, 0x59, 0xF5 - .byte 0xEC, 0x0B, 0x54, 0xF5, 0xE8, 0x0B, 0x4F, 0xF5, 0xE3, 0x0B, 0x4B, 0xF5, 0xDF, 0x0B, 0x46, 0xF5 - .byte 0xDB, 0x0B, 0x41, 0xF5, 0xD7, 0x0B, 0x3D, 0xF5, 0xD2, 0x0B, 0x38, 0xF5, 0xCE, 0x0B, 0x33, 0xF5 - .byte 0xCA, 0x0B, 0x2F, 0xF5, 0xC6, 0x0B, 0x2A, 0xF5, 0xC1, 0x0B, 0x25, 0xF5, 0xBD, 0x0B, 0x21, 0xF5 - .byte 0xB9, 0x0B, 0x1C, 0xF5, 0xB5, 0x0B, 0x18, 0xF5, 0xB0, 0x0B, 0x13, 0xF5, 0xAC, 0x0B, 0x0E, 0xF5 - .byte 0xA8, 0x0B, 0x0A, 0xF5, 0xA3, 0x0B, 0x05, 0xF5, 0x9F, 0x0B, 0x01, 0xF5, 0x9B, 0x0B, 0xFC, 0xF4 - .byte 0x97, 0x0B, 0xF8, 0xF4, 0x92, 0x0B, 0xF3, 0xF4, 0x8E, 0x0B, 0xEF, 0xF4, 0x89, 0x0B, 0xEA, 0xF4 - .byte 0x85, 0x0B, 0xE5, 0xF4, 0x81, 0x0B, 0xE1, 0xF4, 0x7C, 0x0B, 0xDC, 0xF4, 0x78, 0x0B, 0xD8, 0xF4 - .byte 0x74, 0x0B, 0xD3, 0xF4, 0x6F, 0x0B, 0xCF, 0xF4, 0x6B, 0x0B, 0xCA, 0xF4, 0x66, 0x0B, 0xC6, 0xF4 - .byte 0x62, 0x0B, 0xC2, 0xF4, 0x5E, 0x0B, 0xBD, 0xF4, 0x59, 0x0B, 0xB9, 0xF4, 0x55, 0x0B, 0xB4, 0xF4 - .byte 0x50, 0x0B, 0xB0, 0xF4, 0x4C, 0x0B, 0xAB, 0xF4, 0x47, 0x0B, 0xA7, 0xF4, 0x43, 0x0B, 0xA2, 0xF4 - .byte 0x3E, 0x0B, 0x9E, 0xF4, 0x3A, 0x0B, 0x9A, 0xF4, 0x36, 0x0B, 0x95, 0xF4, 0x31, 0x0B, 0x91, 0xF4 - .byte 0x2D, 0x0B, 0x8C, 0xF4, 0x28, 0x0B, 0x88, 0xF4, 0x24, 0x0B, 0x84, 0xF4, 0x1F, 0x0B, 0x7F, 0xF4 - .byte 0x1B, 0x0B, 0x7B, 0xF4, 0x16, 0x0B, 0x77, 0xF4, 0x11, 0x0B, 0x72, 0xF4, 0x0D, 0x0B, 0x6E, 0xF4 - .byte 0x08, 0x0B, 0x69, 0xF4, 0x04, 0x0B, 0x65, 0xF4, 0xFF, 0x0A, 0x61, 0xF4, 0xFB, 0x0A, 0x5D, 0xF4 - .byte 0xF6, 0x0A, 0x58, 0xF4, 0xF2, 0x0A, 0x54, 0xF4, 0xED, 0x0A, 0x50, 0xF4, 0xE8, 0x0A, 0x4B, 0xF4 - .byte 0xE4, 0x0A, 0x47, 0xF4, 0xDF, 0x0A, 0x43, 0xF4, 0xDB, 0x0A, 0x3F, 0xF4, 0xD6, 0x0A, 0x3A, 0xF4 - .byte 0xD1, 0x0A, 0x36, 0xF4, 0xCD, 0x0A, 0x32, 0xF4, 0xC8, 0x0A, 0x2E, 0xF4, 0xC3, 0x0A, 0x29, 0xF4 - .byte 0xBF, 0x0A, 0x25, 0xF4, 0xBA, 0x0A, 0x21, 0xF4, 0xB5, 0x0A, 0x1D, 0xF4, 0xB1, 0x0A, 0x18, 0xF4 - .byte 0xAC, 0x0A, 0x14, 0xF4, 0xA7, 0x0A, 0x10, 0xF4, 0xA3, 0x0A, 0x0C, 0xF4, 0x9E, 0x0A, 0x08, 0xF4 - .byte 0x99, 0x0A, 0x04, 0xF4, 0x95, 0x0A, 0xFF, 0xF3, 0x90, 0x0A, 0xFB, 0xF3, 0x8B, 0x0A, 0xF7, 0xF3 - .byte 0x86, 0x0A, 0xF3, 0xF3, 0x82, 0x0A, 0xEF, 0xF3, 0x7D, 0x0A, 0xEB, 0xF3, 0x78, 0x0A, 0xE7, 0xF3 - .byte 0x73, 0x0A, 0xE2, 0xF3, 0x6F, 0x0A, 0xDE, 0xF3, 0x6A, 0x0A, 0xDA, 0xF3, 0x65, 0x0A, 0xD6, 0xF3 - .byte 0x60, 0x0A, 0xD2, 0xF3, 0x5C, 0x0A, 0xCE, 0xF3, 0x57, 0x0A, 0xCA, 0xF3, 0x52, 0x0A, 0xC6, 0xF3 - .byte 0x4D, 0x0A, 0xC2, 0xF3, 0x48, 0x0A, 0xBE, 0xF3, 0x44, 0x0A, 0xBA, 0xF3, 0x3F, 0x0A, 0xB6, 0xF3 - .byte 0x3A, 0x0A, 0xB2, 0xF3, 0x35, 0x0A, 0xAE, 0xF3, 0x30, 0x0A, 0xAA, 0xF3, 0x2B, 0x0A, 0xA6, 0xF3 - .byte 0x26, 0x0A, 0xA2, 0xF3, 0x22, 0x0A, 0x9E, 0xF3, 0x1D, 0x0A, 0x9A, 0xF3, 0x18, 0x0A, 0x96, 0xF3 - .byte 0x13, 0x0A, 0x92, 0xF3, 0x0E, 0x0A, 0x8E, 0xF3, 0x09, 0x0A, 0x8A, 0xF3, 0x04, 0x0A, 0x86, 0xF3 - .byte 0xFF, 0x09, 0x82, 0xF3, 0xFB, 0x09, 0x7E, 0xF3, 0xF6, 0x09, 0x7A, 0xF3, 0xF1, 0x09, 0x76, 0xF3 - .byte 0xEC, 0x09, 0x72, 0xF3, 0xE7, 0x09, 0x6F, 0xF3, 0xE2, 0x09, 0x6B, 0xF3, 0xDD, 0x09, 0x67, 0xF3 - .byte 0xD8, 0x09, 0x63, 0xF3, 0xD3, 0x09, 0x5F, 0xF3, 0xCE, 0x09, 0x5B, 0xF3, 0xC9, 0x09, 0x57, 0xF3 - .byte 0xC4, 0x09, 0x54, 0xF3, 0xBF, 0x09, 0x50, 0xF3, 0xBA, 0x09, 0x4C, 0xF3, 0xB5, 0x09, 0x48, 0xF3 - .byte 0xB0, 0x09, 0x44, 0xF3, 0xAB, 0x09, 0x40, 0xF3, 0xA6, 0x09, 0x3D, 0xF3, 0xA1, 0x09, 0x39, 0xF3 - .byte 0x9C, 0x09, 0x35, 0xF3, 0x97, 0x09, 0x31, 0xF3, 0x92, 0x09, 0x2E, 0xF3, 0x8D, 0x09, 0x2A, 0xF3 - .byte 0x88, 0x09, 0x26, 0xF3, 0x83, 0x09, 0x22, 0xF3, 0x7E, 0x09, 0x1F, 0xF3, 0x79, 0x09, 0x1B, 0xF3 - .byte 0x74, 0x09, 0x17, 0xF3, 0x6F, 0x09, 0x13, 0xF3, 0x6A, 0x09, 0x10, 0xF3, 0x65, 0x09, 0x0C, 0xF3 - .byte 0x5F, 0x09, 0x08, 0xF3, 0x5A, 0x09, 0x05, 0xF3, 0x55, 0x09, 0x01, 0xF3, 0x50, 0x09, 0xFD, 0xF2 - .byte 0x4B, 0x09, 0xFA, 0xF2, 0x46, 0x09, 0xF6, 0xF2, 0x41, 0x09, 0xF2, 0xF2, 0x3C, 0x09, 0xEF, 0xF2 - .byte 0x37, 0x09, 0xEB, 0xF2, 0x31, 0x09, 0xE8, 0xF2, 0x2C, 0x09, 0xE4, 0xF2, 0x27, 0x09, 0xE0, 0xF2 - .byte 0x22, 0x09, 0xDD, 0xF2, 0x1D, 0x09, 0xD9, 0xF2, 0x18, 0x09, 0xD6, 0xF2, 0x12, 0x09, 0xD2, 0xF2 - .byte 0x0D, 0x09, 0xCE, 0xF2, 0x08, 0x09, 0xCB, 0xF2, 0x03, 0x09, 0xC7, 0xF2, 0xFE, 0x08, 0xC4, 0xF2 - .byte 0xF8, 0x08, 0xC0, 0xF2, 0xF3, 0x08, 0xBD, 0xF2, 0xEE, 0x08, 0xB9, 0xF2, 0xE9, 0x08, 0xB6, 0xF2 - .byte 0xE4, 0x08, 0xB2, 0xF2, 0xDE, 0x08, 0xAF, 0xF2, 0xD9, 0x08, 0xAB, 0xF2, 0xD4, 0x08, 0xA8, 0xF2 - .byte 0xCF, 0x08, 0xA4, 0xF2, 0xC9, 0x08, 0xA1, 0xF2, 0xC4, 0x08, 0x9E, 0xF2, 0xBF, 0x08, 0x9A, 0xF2 - .byte 0xBA, 0x08, 0x97, 0xF2, 0xB4, 0x08, 0x93, 0xF2, 0xAF, 0x08, 0x90, 0xF2, 0xAA, 0x08, 0x8C, 0xF2 - .byte 0xA5, 0x08, 0x89, 0xF2, 0x9F, 0x08, 0x86, 0xF2, 0x9A, 0x08, 0x82, 0xF2, 0x95, 0x08, 0x7F, 0xF2 - .byte 0x8F, 0x08, 0x7B, 0xF2, 0x8A, 0x08, 0x78, 0xF2, 0x85, 0x08, 0x75, 0xF2, 0x7F, 0x08, 0x71, 0xF2 - .byte 0x7A, 0x08, 0x6E, 0xF2, 0x75, 0x08, 0x6B, 0xF2, 0x6F, 0x08, 0x67, 0xF2, 0x6A, 0x08, 0x64, 0xF2 - .byte 0x65, 0x08, 0x61, 0xF2, 0x5F, 0x08, 0x5E, 0xF2, 0x5A, 0x08, 0x5A, 0xF2, 0x55, 0x08, 0x57, 0xF2 - .byte 0x4F, 0x08, 0x54, 0xF2, 0x4A, 0x08, 0x50, 0xF2, 0x45, 0x08, 0x4D, 0xF2, 0x3F, 0x08, 0x4A, 0xF2 - .byte 0x3A, 0x08, 0x47, 0xF2, 0x34, 0x08, 0x44, 0xF2, 0x2F, 0x08, 0x40, 0xF2, 0x2A, 0x08, 0x3D, 0xF2 - .byte 0x24, 0x08, 0x3A, 0xF2, 0x1F, 0x08, 0x37, 0xF2, 0x19, 0x08, 0x34, 0xF2, 0x14, 0x08, 0x30, 0xF2 - .byte 0x0E, 0x08, 0x2D, 0xF2, 0x09, 0x08, 0x2A, 0xF2, 0x04, 0x08, 0x27, 0xF2, 0xFE, 0x07, 0x24, 0xF2 - .byte 0xF9, 0x07, 0x21, 0xF2, 0xF3, 0x07, 0x1D, 0xF2, 0xEE, 0x07, 0x1A, 0xF2, 0xE8, 0x07, 0x17, 0xF2 - .byte 0xE3, 0x07, 0x14, 0xF2, 0xDD, 0x07, 0x11, 0xF2, 0xD8, 0x07, 0x0E, 0xF2, 0xD2, 0x07, 0x0B, 0xF2 - .byte 0xCD, 0x07, 0x08, 0xF2, 0xC8, 0x07, 0x05, 0xF2, 0xC2, 0x07, 0x02, 0xF2, 0xBD, 0x07, 0xFF, 0xF1 - .byte 0xB7, 0x07, 0xFC, 0xF1, 0xB2, 0x07, 0xF9, 0xF1, 0xAC, 0x07, 0xF6, 0xF1, 0xA6, 0x07, 0xF3, 0xF1 - .byte 0xA1, 0x07, 0xF0, 0xF1, 0x9B, 0x07, 0xED, 0xF1, 0x96, 0x07, 0xEA, 0xF1, 0x90, 0x07, 0xE7, 0xF1 - .byte 0x8B, 0x07, 0xE4, 0xF1, 0x85, 0x07, 0xE1, 0xF1, 0x80, 0x07, 0xDE, 0xF1, 0x7A, 0x07, 0xDB, 0xF1 - .byte 0x75, 0x07, 0xD8, 0xF1, 0x6F, 0x07, 0xD5, 0xF1, 0x6A, 0x07, 0xD2, 0xF1, 0x64, 0x07, 0xCF, 0xF1 - .byte 0x5E, 0x07, 0xCC, 0xF1, 0x59, 0x07, 0xC9, 0xF1, 0x53, 0x07, 0xC6, 0xF1, 0x4E, 0x07, 0xC4, 0xF1 - .byte 0x48, 0x07, 0xC1, 0xF1, 0x42, 0x07, 0xBE, 0xF1, 0x3D, 0x07, 0xBB, 0xF1, 0x37, 0x07, 0xB8, 0xF1 - .byte 0x32, 0x07, 0xB5, 0xF1, 0x2C, 0x07, 0xB3, 0xF1, 0x26, 0x07, 0xB0, 0xF1, 0x21, 0x07, 0xAD, 0xF1 - .byte 0x1B, 0x07, 0xAA, 0xF1, 0x15, 0x07, 0xA7, 0xF1, 0x10, 0x07, 0xA5, 0xF1, 0x0A, 0x07, 0xA2, 0xF1 - .byte 0x05, 0x07, 0x9F, 0xF1, 0xFF, 0x06, 0x9C, 0xF1, 0xF9, 0x06, 0x9A, 0xF1, 0xF4, 0x06, 0x97, 0xF1 - .byte 0xEE, 0x06, 0x94, 0xF1, 0xE8, 0x06, 0x91, 0xF1, 0xE3, 0x06, 0x8F, 0xF1, 0xDD, 0x06, 0x8C, 0xF1 - .byte 0xD7, 0x06, 0x89, 0xF1, 0xD2, 0x06, 0x87, 0xF1, 0xCC, 0x06, 0x84, 0xF1, 0xC6, 0x06, 0x81, 0xF1 - .byte 0xC1, 0x06, 0x7F, 0xF1, 0xBB, 0x06, 0x7C, 0xF1, 0xB5, 0x06, 0x79, 0xF1, 0xAF, 0x06, 0x77, 0xF1 - .byte 0xAA, 0x06, 0x74, 0xF1, 0xA4, 0x06, 0x71, 0xF1, 0x9E, 0x06, 0x6F, 0xF1, 0x99, 0x06, 0x6C, 0xF1 - .byte 0x93, 0x06, 0x6A, 0xF1, 0x8D, 0x06, 0x67, 0xF1, 0x87, 0x06, 0x65, 0xF1, 0x82, 0x06, 0x62, 0xF1 - .byte 0x7C, 0x06, 0x5F, 0xF1, 0x76, 0x06, 0x5D, 0xF1, 0x70, 0x06, 0x5A, 0xF1, 0x6B, 0x06, 0x58, 0xF1 - .byte 0x65, 0x06, 0x55, 0xF1, 0x5F, 0x06, 0x53, 0xF1, 0x59, 0x06, 0x50, 0xF1, 0x54, 0x06, 0x4E, 0xF1 - .byte 0x4E, 0x06, 0x4B, 0xF1, 0x48, 0x06, 0x49, 0xF1, 0x42, 0x06, 0x46, 0xF1, 0x3C, 0x06, 0x44, 0xF1 - .byte 0x37, 0x06, 0x41, 0xF1, 0x31, 0x06, 0x3F, 0xF1, 0x2B, 0x06, 0x3D, 0xF1, 0x25, 0x06, 0x3A, 0xF1 - .byte 0x1F, 0x06, 0x38, 0xF1, 0x1A, 0x06, 0x35, 0xF1, 0x14, 0x06, 0x33, 0xF1, 0x0E, 0x06, 0x31, 0xF1 - .byte 0x08, 0x06, 0x2E, 0xF1, 0x02, 0x06, 0x2C, 0xF1, 0xFD, 0x05, 0x2A, 0xF1, 0xF7, 0x05, 0x27, 0xF1 - .byte 0xF1, 0x05, 0x25, 0xF1, 0xEB, 0x05, 0x23, 0xF1, 0xE5, 0x05, 0x20, 0xF1, 0xDF, 0x05, 0x1E, 0xF1 - .byte 0xDA, 0x05, 0x1C, 0xF1, 0xD4, 0x05, 0x19, 0xF1, 0xCE, 0x05, 0x17, 0xF1, 0xC8, 0x05, 0x15, 0xF1 - .byte 0xC2, 0x05, 0x12, 0xF1, 0xBC, 0x05, 0x10, 0xF1, 0xB6, 0x05, 0x0E, 0xF1, 0xB1, 0x05, 0x0C, 0xF1 - .byte 0xAB, 0x05, 0x09, 0xF1, 0xA5, 0x05, 0x07, 0xF1, 0x9F, 0x05, 0x05, 0xF1, 0x99, 0x05, 0x03, 0xF1 - .byte 0x93, 0x05, 0x01, 0xF1, 0x8D, 0x05, 0xFE, 0xF0, 0x87, 0x05, 0xFC, 0xF0, 0x81, 0x05, 0xFA, 0xF0 - .byte 0x7C, 0x05, 0xF8, 0xF0, 0x76, 0x05, 0xF6, 0xF0, 0x70, 0x05, 0xF4, 0xF0, 0x6A, 0x05, 0xF2, 0xF0 - .byte 0x64, 0x05, 0xEF, 0xF0, 0x5E, 0x05, 0xED, 0xF0, 0x58, 0x05, 0xEB, 0xF0, 0x52, 0x05, 0xE9, 0xF0 - .byte 0x4C, 0x05, 0xE7, 0xF0, 0x46, 0x05, 0xE5, 0xF0, 0x40, 0x05, 0xE3, 0xF0, 0x3A, 0x05, 0xE1, 0xF0 - .byte 0x34, 0x05, 0xDF, 0xF0, 0x2F, 0x05, 0xDD, 0xF0, 0x29, 0x05, 0xDB, 0xF0, 0x23, 0x05, 0xD9, 0xF0 - .byte 0x1D, 0x05, 0xD7, 0xF0, 0x17, 0x05, 0xD5, 0xF0, 0x11, 0x05, 0xD3, 0xF0, 0x0B, 0x05, 0xD1, 0xF0 - .byte 0x05, 0x05, 0xCF, 0xF0, 0xFF, 0x04, 0xCD, 0xF0, 0xF9, 0x04, 0xCB, 0xF0, 0xF3, 0x04, 0xC9, 0xF0 - .byte 0xED, 0x04, 0xC7, 0xF0, 0xE7, 0x04, 0xC5, 0xF0, 0xE1, 0x04, 0xC3, 0xF0, 0xDB, 0x04, 0xC1, 0xF0 - .byte 0xD5, 0x04, 0xBF, 0xF0, 0xCF, 0x04, 0xBD, 0xF0, 0xC9, 0x04, 0xBB, 0xF0, 0xC3, 0x04, 0xBA, 0xF0 - .byte 0xBD, 0x04, 0xB8, 0xF0, 0xB7, 0x04, 0xB6, 0xF0, 0xB1, 0x04, 0xB4, 0xF0, 0xAB, 0x04, 0xB2, 0xF0 - .byte 0xA5, 0x04, 0xB0, 0xF0, 0x9F, 0x04, 0xAF, 0xF0, 0x99, 0x04, 0xAD, 0xF0, 0x93, 0x04, 0xAB, 0xF0 - .byte 0x8D, 0x04, 0xA9, 0xF0, 0x87, 0x04, 0xA7, 0xF0, 0x81, 0x04, 0xA6, 0xF0, 0x7B, 0x04, 0xA4, 0xF0 - .byte 0x75, 0x04, 0xA2, 0xF0, 0x6F, 0x04, 0xA0, 0xF0, 0x69, 0x04, 0x9F, 0xF0, 0x63, 0x04, 0x9D, 0xF0 - .byte 0x5D, 0x04, 0x9B, 0xF0, 0x57, 0x04, 0x99, 0xF0, 0x51, 0x04, 0x98, 0xF0, 0x4B, 0x04, 0x96, 0xF0 - .byte 0x44, 0x04, 0x94, 0xF0, 0x3E, 0x04, 0x93, 0xF0, 0x38, 0x04, 0x91, 0xF0, 0x32, 0x04, 0x8F, 0xF0 - .byte 0x2C, 0x04, 0x8E, 0xF0, 0x26, 0x04, 0x8C, 0xF0, 0x20, 0x04, 0x8A, 0xF0, 0x1A, 0x04, 0x89, 0xF0 - .byte 0x14, 0x04, 0x87, 0xF0, 0x0E, 0x04, 0x86, 0xF0, 0x08, 0x04, 0x84, 0xF0, 0x02, 0x04, 0x83, 0xF0 - .byte 0xFC, 0x03, 0x81, 0xF0, 0xF6, 0x03, 0x7F, 0xF0, 0xEF, 0x03, 0x7E, 0xF0, 0xE9, 0x03, 0x7C, 0xF0 - .byte 0xE3, 0x03, 0x7B, 0xF0, 0xDD, 0x03, 0x79, 0xF0, 0xD7, 0x03, 0x78, 0xF0, 0xD1, 0x03, 0x76, 0xF0 - .byte 0xCB, 0x03, 0x75, 0xF0, 0xC5, 0x03, 0x73, 0xF0, 0xBF, 0x03, 0x72, 0xF0, 0xB9, 0x03, 0x70, 0xF0 - .byte 0xB2, 0x03, 0x6F, 0xF0, 0xAC, 0x03, 0x6D, 0xF0, 0xA6, 0x03, 0x6C, 0xF0, 0xA0, 0x03, 0x6B, 0xF0 - .byte 0x9A, 0x03, 0x69, 0xF0, 0x94, 0x03, 0x68, 0xF0, 0x8E, 0x03, 0x66, 0xF0, 0x88, 0x03, 0x65, 0xF0 - .byte 0x81, 0x03, 0x64, 0xF0, 0x7B, 0x03, 0x62, 0xF0, 0x75, 0x03, 0x61, 0xF0, 0x6F, 0x03, 0x5F, 0xF0 - .byte 0x69, 0x03, 0x5E, 0xF0, 0x63, 0x03, 0x5D, 0xF0, 0x5D, 0x03, 0x5B, 0xF0, 0x56, 0x03, 0x5A, 0xF0 - .byte 0x50, 0x03, 0x59, 0xF0, 0x4A, 0x03, 0x58, 0xF0, 0x44, 0x03, 0x56, 0xF0, 0x3E, 0x03, 0x55, 0xF0 - .byte 0x38, 0x03, 0x54, 0xF0, 0x32, 0x03, 0x52, 0xF0, 0x2B, 0x03, 0x51, 0xF0, 0x25, 0x03, 0x50, 0xF0 - .byte 0x1F, 0x03, 0x4F, 0xF0, 0x19, 0x03, 0x4D, 0xF0, 0x13, 0x03, 0x4C, 0xF0, 0x0D, 0x03, 0x4B, 0xF0 - .byte 0x06, 0x03, 0x4A, 0xF0, 0x00, 0x03, 0x49, 0xF0, 0xFA, 0x02, 0x48, 0xF0, 0xF4, 0x02, 0x46, 0xF0 - .byte 0xEE, 0x02, 0x45, 0xF0, 0xE8, 0x02, 0x44, 0xF0, 0xE1, 0x02, 0x43, 0xF0, 0xDB, 0x02, 0x42, 0xF0 - .byte 0xD5, 0x02, 0x41, 0xF0, 0xCF, 0x02, 0x40, 0xF0, 0xC9, 0x02, 0x3E, 0xF0, 0xC2, 0x02, 0x3D, 0xF0 - .byte 0xBC, 0x02, 0x3C, 0xF0, 0xB6, 0x02, 0x3B, 0xF0, 0xB0, 0x02, 0x3A, 0xF0, 0xAA, 0x02, 0x39, 0xF0 - .byte 0xA3, 0x02, 0x38, 0xF0, 0x9D, 0x02, 0x37, 0xF0, 0x97, 0x02, 0x36, 0xF0, 0x91, 0x02, 0x35, 0xF0 - .byte 0x8B, 0x02, 0x34, 0xF0, 0x84, 0x02, 0x33, 0xF0, 0x7E, 0x02, 0x32, 0xF0, 0x78, 0x02, 0x31, 0xF0 - .byte 0x72, 0x02, 0x30, 0xF0, 0x6C, 0x02, 0x2F, 0xF0, 0x65, 0x02, 0x2E, 0xF0, 0x5F, 0x02, 0x2D, 0xF0 - .byte 0x59, 0x02, 0x2C, 0xF0, 0x53, 0x02, 0x2B, 0xF0, 0x4D, 0x02, 0x2B, 0xF0, 0x46, 0x02, 0x2A, 0xF0 - .byte 0x40, 0x02, 0x29, 0xF0, 0x3A, 0x02, 0x28, 0xF0, 0x34, 0x02, 0x27, 0xF0, 0x2D, 0x02, 0x26, 0xF0 - .byte 0x27, 0x02, 0x25, 0xF0, 0x21, 0x02, 0x24, 0xF0, 0x1B, 0x02, 0x24, 0xF0, 0x15, 0x02, 0x23, 0xF0 - .byte 0x0E, 0x02, 0x22, 0xF0, 0x08, 0x02, 0x21, 0xF0, 0x02, 0x02, 0x20, 0xF0, 0xFC, 0x01, 0x20, 0xF0 - .byte 0xF5, 0x01, 0x1F, 0xF0, 0xEF, 0x01, 0x1E, 0xF0, 0xE9, 0x01, 0x1D, 0xF0, 0xE3, 0x01, 0x1D, 0xF0 - .byte 0xDC, 0x01, 0x1C, 0xF0, 0xD6, 0x01, 0x1B, 0xF0, 0xD0, 0x01, 0x1A, 0xF0, 0xCA, 0x01, 0x1A, 0xF0 - .byte 0xC3, 0x01, 0x19, 0xF0, 0xBD, 0x01, 0x18, 0xF0, 0xB7, 0x01, 0x18, 0xF0, 0xB1, 0x01, 0x17, 0xF0 - .byte 0xAA, 0x01, 0x16, 0xF0, 0xA4, 0x01, 0x16, 0xF0, 0x9E, 0x01, 0x15, 0xF0, 0x98, 0x01, 0x14, 0xF0 - .byte 0x91, 0x01, 0x14, 0xF0, 0x8B, 0x01, 0x13, 0xF0, 0x85, 0x01, 0x13, 0xF0, 0x7F, 0x01, 0x12, 0xF0 - .byte 0x78, 0x01, 0x11, 0xF0, 0x72, 0x01, 0x11, 0xF0, 0x6C, 0x01, 0x10, 0xF0, 0x66, 0x01, 0x10, 0xF0 - .byte 0x5F, 0x01, 0x0F, 0xF0, 0x59, 0x01, 0x0F, 0xF0, 0x53, 0x01, 0x0E, 0xF0, 0x4D, 0x01, 0x0E, 0xF0 - .byte 0x46, 0x01, 0x0D, 0xF0, 0x40, 0x01, 0x0D, 0xF0, 0x3A, 0x01, 0x0C, 0xF0, 0x34, 0x01, 0x0C, 0xF0 - .byte 0x2D, 0x01, 0x0B, 0xF0, 0x27, 0x01, 0x0B, 0xF0, 0x21, 0x01, 0x0A, 0xF0, 0x1B, 0x01, 0x0A, 0xF0 - .byte 0x14, 0x01, 0x09, 0xF0, 0x0E, 0x01, 0x09, 0xF0, 0x08, 0x01, 0x08, 0xF0, 0x01, 0x01, 0x08, 0xF0 - .byte 0xFB, 0x00, 0x08, 0xF0, 0xF5, 0x00, 0x07, 0xF0, 0xEF, 0x00, 0x07, 0xF0, 0xE8, 0x00, 0x07, 0xF0 - .byte 0xE2, 0x00, 0x06, 0xF0, 0xDC, 0x00, 0x06, 0xF0, 0xD6, 0x00, 0x06, 0xF0, 0xCF, 0x00, 0x05, 0xF0 - .byte 0xC9, 0x00, 0x05, 0xF0, 0xC3, 0x00, 0x05, 0xF0, 0xBC, 0x00, 0x04, 0xF0, 0xB6, 0x00, 0x04, 0xF0 - .byte 0xB0, 0x00, 0x04, 0xF0, 0xAA, 0x00, 0x04, 0xF0, 0xA3, 0x00, 0x03, 0xF0, 0x9D, 0x00, 0x03, 0xF0 - .byte 0x97, 0x00, 0x03, 0xF0, 0x90, 0x00, 0x03, 0xF0, 0x8A, 0x00, 0x02, 0xF0, 0x84, 0x00, 0x02, 0xF0 - .byte 0x7E, 0x00, 0x02, 0xF0, 0x77, 0x00, 0x02, 0xF0, 0x71, 0x00, 0x02, 0xF0, 0x6B, 0x00, 0x01, 0xF0 - .byte 0x65, 0x00, 0x01, 0xF0, 0x5E, 0x00, 0x01, 0xF0, 0x58, 0x00, 0x01, 0xF0, 0x52, 0x00, 0x01, 0xF0 - .byte 0x4B, 0x00, 0x01, 0xF0, 0x45, 0x00, 0x01, 0xF0, 0x3F, 0x00, 0x00, 0xF0, 0x39, 0x00, 0x00, 0xF0 - .byte 0x32, 0x00, 0x00, 0xF0, 0x2C, 0x00, 0x00, 0xF0, 0x26, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0xF0 - .byte 0x19, 0x00, 0x00, 0xF0, 0x13, 0x00, 0x00, 0xF0, 0x0D, 0x00, 0x00, 0xF0, 0x06, 0x00, 0x00, 0xF0 - .byte 0x00, 0x00, 0x00, 0xF0, 0xFA, 0xFF, 0x00, 0xF0, 0xF3, 0xFF, 0x00, 0xF0, 0xED, 0xFF, 0x00, 0xF0 - .byte 0xE7, 0xFF, 0x00, 0xF0, 0xE1, 0xFF, 0x00, 0xF0, 0xDA, 0xFF, 0x00, 0xF0, 0xD4, 0xFF, 0x00, 0xF0 - .byte 0xCE, 0xFF, 0x00, 0xF0, 0xC7, 0xFF, 0x00, 0xF0, 0xC1, 0xFF, 0x00, 0xF0, 0xBB, 0xFF, 0x01, 0xF0 - .byte 0xB5, 0xFF, 0x01, 0xF0, 0xAE, 0xFF, 0x01, 0xF0, 0xA8, 0xFF, 0x01, 0xF0, 0xA2, 0xFF, 0x01, 0xF0 - .byte 0x9B, 0xFF, 0x01, 0xF0, 0x95, 0xFF, 0x01, 0xF0, 0x8F, 0xFF, 0x02, 0xF0, 0x89, 0xFF, 0x02, 0xF0 - .byte 0x82, 0xFF, 0x02, 0xF0, 0x7C, 0xFF, 0x02, 0xF0, 0x76, 0xFF, 0x02, 0xF0, 0x70, 0xFF, 0x03, 0xF0 - .byte 0x69, 0xFF, 0x03, 0xF0, 0x63, 0xFF, 0x03, 0xF0, 0x5D, 0xFF, 0x03, 0xF0, 0x56, 0xFF, 0x04, 0xF0 - .byte 0x50, 0xFF, 0x04, 0xF0, 0x4A, 0xFF, 0x04, 0xF0, 0x44, 0xFF, 0x04, 0xF0, 0x3D, 0xFF, 0x05, 0xF0 - .byte 0x37, 0xFF, 0x05, 0xF0, 0x31, 0xFF, 0x05, 0xF0, 0x2A, 0xFF, 0x06, 0xF0, 0x24, 0xFF, 0x06, 0xF0 - .byte 0x1E, 0xFF, 0x06, 0xF0, 0x18, 0xFF, 0x07, 0xF0, 0x11, 0xFF, 0x07, 0xF0, 0x0B, 0xFF, 0x07, 0xF0 - .byte 0x05, 0xFF, 0x08, 0xF0, 0xFF, 0xFE, 0x08, 0xF0, 0xF8, 0xFE, 0x08, 0xF0, 0xF2, 0xFE, 0x09, 0xF0 - .byte 0xEC, 0xFE, 0x09, 0xF0, 0xE5, 0xFE, 0x0A, 0xF0, 0xDF, 0xFE, 0x0A, 0xF0, 0xD9, 0xFE, 0x0B, 0xF0 - .byte 0xD3, 0xFE, 0x0B, 0xF0, 0xCC, 0xFE, 0x0C, 0xF0, 0xC6, 0xFE, 0x0C, 0xF0, 0xC0, 0xFE, 0x0D, 0xF0 - .byte 0xBA, 0xFE, 0x0D, 0xF0, 0xB3, 0xFE, 0x0E, 0xF0, 0xAD, 0xFE, 0x0E, 0xF0, 0xA7, 0xFE, 0x0F, 0xF0 - .byte 0xA1, 0xFE, 0x0F, 0xF0, 0x9A, 0xFE, 0x10, 0xF0, 0x94, 0xFE, 0x10, 0xF0, 0x8E, 0xFE, 0x11, 0xF0 - .byte 0x88, 0xFE, 0x11, 0xF0, 0x81, 0xFE, 0x12, 0xF0, 0x7B, 0xFE, 0x13, 0xF0, 0x75, 0xFE, 0x13, 0xF0 - .byte 0x6F, 0xFE, 0x14, 0xF0, 0x68, 0xFE, 0x14, 0xF0, 0x62, 0xFE, 0x15, 0xF0, 0x5C, 0xFE, 0x16, 0xF0 - .byte 0x56, 0xFE, 0x16, 0xF0, 0x4F, 0xFE, 0x17, 0xF0, 0x49, 0xFE, 0x18, 0xF0, 0x43, 0xFE, 0x18, 0xF0 - .byte 0x3D, 0xFE, 0x19, 0xF0, 0x36, 0xFE, 0x1A, 0xF0, 0x30, 0xFE, 0x1A, 0xF0, 0x2A, 0xFE, 0x1B, 0xF0 - .byte 0x24, 0xFE, 0x1C, 0xF0, 0x1D, 0xFE, 0x1D, 0xF0, 0x17, 0xFE, 0x1D, 0xF0, 0x11, 0xFE, 0x1E, 0xF0 - .byte 0x0B, 0xFE, 0x1F, 0xF0, 0x04, 0xFE, 0x20, 0xF0, 0xFE, 0xFD, 0x20, 0xF0, 0xF8, 0xFD, 0x21, 0xF0 - .byte 0xF2, 0xFD, 0x22, 0xF0, 0xEB, 0xFD, 0x23, 0xF0, 0xE5, 0xFD, 0x24, 0xF0, 0xDF, 0xFD, 0x24, 0xF0 - .byte 0xD9, 0xFD, 0x25, 0xF0, 0xD3, 0xFD, 0x26, 0xF0, 0xCC, 0xFD, 0x27, 0xF0, 0xC6, 0xFD, 0x28, 0xF0 - .byte 0xC0, 0xFD, 0x29, 0xF0, 0xBA, 0xFD, 0x2A, 0xF0, 0xB3, 0xFD, 0x2B, 0xF0, 0xAD, 0xFD, 0x2B, 0xF0 - .byte 0xA7, 0xFD, 0x2C, 0xF0, 0xA1, 0xFD, 0x2D, 0xF0, 0x9B, 0xFD, 0x2E, 0xF0, 0x94, 0xFD, 0x2F, 0xF0 - .byte 0x8E, 0xFD, 0x30, 0xF0, 0x88, 0xFD, 0x31, 0xF0, 0x82, 0xFD, 0x32, 0xF0, 0x7C, 0xFD, 0x33, 0xF0 - .byte 0x75, 0xFD, 0x34, 0xF0, 0x6F, 0xFD, 0x35, 0xF0, 0x69, 0xFD, 0x36, 0xF0, 0x63, 0xFD, 0x37, 0xF0 - .byte 0x5D, 0xFD, 0x38, 0xF0, 0x56, 0xFD, 0x39, 0xF0, 0x50, 0xFD, 0x3A, 0xF0, 0x4A, 0xFD, 0x3B, 0xF0 - .byte 0x44, 0xFD, 0x3C, 0xF0, 0x3E, 0xFD, 0x3D, 0xF0, 0x37, 0xFD, 0x3E, 0xF0, 0x31, 0xFD, 0x40, 0xF0 - .byte 0x2B, 0xFD, 0x41, 0xF0, 0x25, 0xFD, 0x42, 0xF0, 0x1F, 0xFD, 0x43, 0xF0, 0x18, 0xFD, 0x44, 0xF0 - .byte 0x12, 0xFD, 0x45, 0xF0, 0x0C, 0xFD, 0x46, 0xF0, 0x06, 0xFD, 0x48, 0xF0, 0x00, 0xFD, 0x49, 0xF0 - .byte 0xFA, 0xFC, 0x4A, 0xF0, 0xF3, 0xFC, 0x4B, 0xF0, 0xED, 0xFC, 0x4C, 0xF0, 0xE7, 0xFC, 0x4D, 0xF0 - .byte 0xE1, 0xFC, 0x4F, 0xF0, 0xDB, 0xFC, 0x50, 0xF0, 0xD5, 0xFC, 0x51, 0xF0, 0xCE, 0xFC, 0x52, 0xF0 - .byte 0xC8, 0xFC, 0x54, 0xF0, 0xC2, 0xFC, 0x55, 0xF0, 0xBC, 0xFC, 0x56, 0xF0, 0xB6, 0xFC, 0x58, 0xF0 - .byte 0xB0, 0xFC, 0x59, 0xF0, 0xAA, 0xFC, 0x5A, 0xF0, 0xA3, 0xFC, 0x5B, 0xF0, 0x9D, 0xFC, 0x5D, 0xF0 - .byte 0x97, 0xFC, 0x5E, 0xF0, 0x91, 0xFC, 0x5F, 0xF0, 0x8B, 0xFC, 0x61, 0xF0, 0x85, 0xFC, 0x62, 0xF0 - .byte 0x7F, 0xFC, 0x64, 0xF0, 0x78, 0xFC, 0x65, 0xF0, 0x72, 0xFC, 0x66, 0xF0, 0x6C, 0xFC, 0x68, 0xF0 - .byte 0x66, 0xFC, 0x69, 0xF0, 0x60, 0xFC, 0x6B, 0xF0, 0x5A, 0xFC, 0x6C, 0xF0, 0x54, 0xFC, 0x6D, 0xF0 - .byte 0x4E, 0xFC, 0x6F, 0xF0, 0x47, 0xFC, 0x70, 0xF0, 0x41, 0xFC, 0x72, 0xF0, 0x3B, 0xFC, 0x73, 0xF0 - .byte 0x35, 0xFC, 0x75, 0xF0, 0x2F, 0xFC, 0x76, 0xF0, 0x29, 0xFC, 0x78, 0xF0, 0x23, 0xFC, 0x79, 0xF0 - .byte 0x1D, 0xFC, 0x7B, 0xF0, 0x17, 0xFC, 0x7C, 0xF0, 0x11, 0xFC, 0x7E, 0xF0, 0x0A, 0xFC, 0x7F, 0xF0 - .byte 0x04, 0xFC, 0x81, 0xF0, 0xFE, 0xFB, 0x83, 0xF0, 0xF8, 0xFB, 0x84, 0xF0, 0xF2, 0xFB, 0x86, 0xF0 - .byte 0xEC, 0xFB, 0x87, 0xF0, 0xE6, 0xFB, 0x89, 0xF0, 0xE0, 0xFB, 0x8A, 0xF0, 0xDA, 0xFB, 0x8C, 0xF0 - .byte 0xD4, 0xFB, 0x8E, 0xF0, 0xCE, 0xFB, 0x8F, 0xF0, 0xC8, 0xFB, 0x91, 0xF0, 0xC2, 0xFB, 0x93, 0xF0 - .byte 0xBC, 0xFB, 0x94, 0xF0, 0xB5, 0xFB, 0x96, 0xF0, 0xAF, 0xFB, 0x98, 0xF0, 0xA9, 0xFB, 0x99, 0xF0 - .byte 0xA3, 0xFB, 0x9B, 0xF0, 0x9D, 0xFB, 0x9D, 0xF0, 0x97, 0xFB, 0x9F, 0xF0, 0x91, 0xFB, 0xA0, 0xF0 - .byte 0x8B, 0xFB, 0xA2, 0xF0, 0x85, 0xFB, 0xA4, 0xF0, 0x7F, 0xFB, 0xA6, 0xF0, 0x79, 0xFB, 0xA7, 0xF0 - .byte 0x73, 0xFB, 0xA9, 0xF0, 0x6D, 0xFB, 0xAB, 0xF0, 0x67, 0xFB, 0xAD, 0xF0, 0x61, 0xFB, 0xAF, 0xF0 - .byte 0x5B, 0xFB, 0xB0, 0xF0, 0x55, 0xFB, 0xB2, 0xF0, 0x4F, 0xFB, 0xB4, 0xF0, 0x49, 0xFB, 0xB6, 0xF0 - .byte 0x43, 0xFB, 0xB8, 0xF0, 0x3D, 0xFB, 0xBA, 0xF0, 0x37, 0xFB, 0xBB, 0xF0, 0x31, 0xFB, 0xBD, 0xF0 - .byte 0x2B, 0xFB, 0xBF, 0xF0, 0x25, 0xFB, 0xC1, 0xF0, 0x1F, 0xFB, 0xC3, 0xF0, 0x19, 0xFB, 0xC5, 0xF0 - .byte 0x13, 0xFB, 0xC7, 0xF0, 0x0D, 0xFB, 0xC9, 0xF0, 0x07, 0xFB, 0xCB, 0xF0, 0x01, 0xFB, 0xCD, 0xF0 - .byte 0xFB, 0xFA, 0xCF, 0xF0, 0xF5, 0xFA, 0xD1, 0xF0, 0xEF, 0xFA, 0xD3, 0xF0, 0xE9, 0xFA, 0xD5, 0xF0 - .byte 0xE3, 0xFA, 0xD7, 0xF0, 0xDD, 0xFA, 0xD9, 0xF0, 0xD7, 0xFA, 0xDB, 0xF0, 0xD1, 0xFA, 0xDD, 0xF0 - .byte 0xCC, 0xFA, 0xDF, 0xF0, 0xC6, 0xFA, 0xE1, 0xF0, 0xC0, 0xFA, 0xE3, 0xF0, 0xBA, 0xFA, 0xE5, 0xF0 - .byte 0xB4, 0xFA, 0xE7, 0xF0, 0xAE, 0xFA, 0xE9, 0xF0, 0xA8, 0xFA, 0xEB, 0xF0, 0xA2, 0xFA, 0xED, 0xF0 - .byte 0x9C, 0xFA, 0xEF, 0xF0, 0x96, 0xFA, 0xF2, 0xF0, 0x90, 0xFA, 0xF4, 0xF0, 0x8A, 0xFA, 0xF6, 0xF0 - .byte 0x84, 0xFA, 0xF8, 0xF0, 0x7F, 0xFA, 0xFA, 0xF0, 0x79, 0xFA, 0xFC, 0xF0, 0x73, 0xFA, 0xFE, 0xF0 - .byte 0x6D, 0xFA, 0x01, 0xF1, 0x67, 0xFA, 0x03, 0xF1, 0x61, 0xFA, 0x05, 0xF1, 0x5B, 0xFA, 0x07, 0xF1 - .byte 0x55, 0xFA, 0x09, 0xF1, 0x4F, 0xFA, 0x0C, 0xF1, 0x4A, 0xFA, 0x0E, 0xF1, 0x44, 0xFA, 0x10, 0xF1 - .byte 0x3E, 0xFA, 0x12, 0xF1, 0x38, 0xFA, 0x15, 0xF1, 0x32, 0xFA, 0x17, 0xF1, 0x2C, 0xFA, 0x19, 0xF1 - .byte 0x26, 0xFA, 0x1C, 0xF1, 0x21, 0xFA, 0x1E, 0xF1, 0x1B, 0xFA, 0x20, 0xF1, 0x15, 0xFA, 0x23, 0xF1 - .byte 0x0F, 0xFA, 0x25, 0xF1, 0x09, 0xFA, 0x27, 0xF1, 0x03, 0xFA, 0x2A, 0xF1, 0xFE, 0xF9, 0x2C, 0xF1 - .byte 0xF8, 0xF9, 0x2E, 0xF1, 0xF2, 0xF9, 0x31, 0xF1, 0xEC, 0xF9, 0x33, 0xF1, 0xE6, 0xF9, 0x35, 0xF1 - .byte 0xE1, 0xF9, 0x38, 0xF1, 0xDB, 0xF9, 0x3A, 0xF1, 0xD5, 0xF9, 0x3D, 0xF1, 0xCF, 0xF9, 0x3F, 0xF1 - .byte 0xC9, 0xF9, 0x41, 0xF1, 0xC4, 0xF9, 0x44, 0xF1, 0xBE, 0xF9, 0x46, 0xF1, 0xB8, 0xF9, 0x49, 0xF1 - .byte 0xB2, 0xF9, 0x4B, 0xF1, 0xAC, 0xF9, 0x4E, 0xF1, 0xA7, 0xF9, 0x50, 0xF1, 0xA1, 0xF9, 0x53, 0xF1 - .byte 0x9B, 0xF9, 0x55, 0xF1, 0x95, 0xF9, 0x58, 0xF1, 0x90, 0xF9, 0x5A, 0xF1, 0x8A, 0xF9, 0x5D, 0xF1 - .byte 0x84, 0xF9, 0x5F, 0xF1, 0x7E, 0xF9, 0x62, 0xF1, 0x79, 0xF9, 0x65, 0xF1, 0x73, 0xF9, 0x67, 0xF1 - .byte 0x6D, 0xF9, 0x6A, 0xF1, 0x67, 0xF9, 0x6C, 0xF1, 0x62, 0xF9, 0x6F, 0xF1, 0x5C, 0xF9, 0x71, 0xF1 - .byte 0x56, 0xF9, 0x74, 0xF1, 0x51, 0xF9, 0x77, 0xF1, 0x4B, 0xF9, 0x79, 0xF1, 0x45, 0xF9, 0x7C, 0xF1 - .byte 0x3F, 0xF9, 0x7F, 0xF1, 0x3A, 0xF9, 0x81, 0xF1, 0x34, 0xF9, 0x84, 0xF1, 0x2E, 0xF9, 0x87, 0xF1 - .byte 0x29, 0xF9, 0x89, 0xF1, 0x23, 0xF9, 0x8C, 0xF1, 0x1D, 0xF9, 0x8F, 0xF1, 0x18, 0xF9, 0x91, 0xF1 - .byte 0x12, 0xF9, 0x94, 0xF1, 0x0C, 0xF9, 0x97, 0xF1, 0x07, 0xF9, 0x9A, 0xF1, 0x01, 0xF9, 0x9C, 0xF1 - .byte 0xFB, 0xF8, 0x9F, 0xF1, 0xF6, 0xF8, 0xA2, 0xF1, 0xF0, 0xF8, 0xA5, 0xF1, 0xEB, 0xF8, 0xA7, 0xF1 - .byte 0xE5, 0xF8, 0xAA, 0xF1, 0xDF, 0xF8, 0xAD, 0xF1, 0xDA, 0xF8, 0xB0, 0xF1, 0xD4, 0xF8, 0xB3, 0xF1 - .byte 0xCE, 0xF8, 0xB5, 0xF1, 0xC9, 0xF8, 0xB8, 0xF1, 0xC3, 0xF8, 0xBB, 0xF1, 0xBE, 0xF8, 0xBE, 0xF1 - .byte 0xB8, 0xF8, 0xC1, 0xF1, 0xB2, 0xF8, 0xC4, 0xF1, 0xAD, 0xF8, 0xC6, 0xF1, 0xA7, 0xF8, 0xC9, 0xF1 - .byte 0xA2, 0xF8, 0xCC, 0xF1, 0x9C, 0xF8, 0xCF, 0xF1, 0x96, 0xF8, 0xD2, 0xF1, 0x91, 0xF8, 0xD5, 0xF1 - .byte 0x8B, 0xF8, 0xD8, 0xF1, 0x86, 0xF8, 0xDB, 0xF1, 0x80, 0xF8, 0xDE, 0xF1, 0x7B, 0xF8, 0xE1, 0xF1 - .byte 0x75, 0xF8, 0xE4, 0xF1, 0x70, 0xF8, 0xE7, 0xF1, 0x6A, 0xF8, 0xEA, 0xF1, 0x65, 0xF8, 0xED, 0xF1 - .byte 0x5F, 0xF8, 0xF0, 0xF1, 0x5A, 0xF8, 0xF3, 0xF1, 0x54, 0xF8, 0xF6, 0xF1, 0x4E, 0xF8, 0xF9, 0xF1 - .byte 0x49, 0xF8, 0xFC, 0xF1, 0x43, 0xF8, 0xFF, 0xF1, 0x3E, 0xF8, 0x02, 0xF2, 0x38, 0xF8, 0x05, 0xF2 - .byte 0x33, 0xF8, 0x08, 0xF2, 0x2E, 0xF8, 0x0B, 0xF2, 0x28, 0xF8, 0x0E, 0xF2, 0x23, 0xF8, 0x11, 0xF2 - .byte 0x1D, 0xF8, 0x14, 0xF2, 0x18, 0xF8, 0x17, 0xF2, 0x12, 0xF8, 0x1A, 0xF2, 0x0D, 0xF8, 0x1D, 0xF2 - .byte 0x07, 0xF8, 0x21, 0xF2, 0x02, 0xF8, 0x24, 0xF2, 0xFC, 0xF7, 0x27, 0xF2, 0xF7, 0xF7, 0x2A, 0xF2 - .byte 0xF2, 0xF7, 0x2D, 0xF2, 0xEC, 0xF7, 0x30, 0xF2, 0xE7, 0xF7, 0x34, 0xF2, 0xE1, 0xF7, 0x37, 0xF2 - .byte 0xDC, 0xF7, 0x3A, 0xF2, 0xD6, 0xF7, 0x3D, 0xF2, 0xD1, 0xF7, 0x40, 0xF2, 0xCC, 0xF7, 0x44, 0xF2 - .byte 0xC6, 0xF7, 0x47, 0xF2, 0xC1, 0xF7, 0x4A, 0xF2, 0xBB, 0xF7, 0x4D, 0xF2, 0xB6, 0xF7, 0x50, 0xF2 - .byte 0xB1, 0xF7, 0x54, 0xF2, 0xAB, 0xF7, 0x57, 0xF2, 0xA6, 0xF7, 0x5A, 0xF2, 0xA1, 0xF7, 0x5E, 0xF2 - .byte 0x9B, 0xF7, 0x61, 0xF2, 0x96, 0xF7, 0x64, 0xF2, 0x91, 0xF7, 0x67, 0xF2, 0x8B, 0xF7, 0x6B, 0xF2 - .byte 0x86, 0xF7, 0x6E, 0xF2, 0x81, 0xF7, 0x71, 0xF2, 0x7B, 0xF7, 0x75, 0xF2, 0x76, 0xF7, 0x78, 0xF2 - .byte 0x71, 0xF7, 0x7B, 0xF2, 0x6B, 0xF7, 0x7F, 0xF2, 0x66, 0xF7, 0x82, 0xF2, 0x61, 0xF7, 0x86, 0xF2 - .byte 0x5B, 0xF7, 0x89, 0xF2, 0x56, 0xF7, 0x8C, 0xF2, 0x51, 0xF7, 0x90, 0xF2, 0x4C, 0xF7, 0x93, 0xF2 - .byte 0x46, 0xF7, 0x97, 0xF2, 0x41, 0xF7, 0x9A, 0xF2, 0x3C, 0xF7, 0x9E, 0xF2, 0x37, 0xF7, 0xA1, 0xF2 - .byte 0x31, 0xF7, 0xA4, 0xF2, 0x2C, 0xF7, 0xA8, 0xF2, 0x27, 0xF7, 0xAB, 0xF2, 0x22, 0xF7, 0xAF, 0xF2 - .byte 0x1C, 0xF7, 0xB2, 0xF2, 0x17, 0xF7, 0xB6, 0xF2, 0x12, 0xF7, 0xB9, 0xF2, 0x0D, 0xF7, 0xBD, 0xF2 - .byte 0x08, 0xF7, 0xC0, 0xF2, 0x02, 0xF7, 0xC4, 0xF2, 0xFD, 0xF6, 0xC7, 0xF2, 0xF8, 0xF6, 0xCB, 0xF2 - .byte 0xF3, 0xF6, 0xCE, 0xF2, 0xEE, 0xF6, 0xD2, 0xF2, 0xE8, 0xF6, 0xD6, 0xF2, 0xE3, 0xF6, 0xD9, 0xF2 - .byte 0xDE, 0xF6, 0xDD, 0xF2, 0xD9, 0xF6, 0xE0, 0xF2, 0xD4, 0xF6, 0xE4, 0xF2, 0xCF, 0xF6, 0xE8, 0xF2 - .byte 0xC9, 0xF6, 0xEB, 0xF2, 0xC4, 0xF6, 0xEF, 0xF2, 0xBF, 0xF6, 0xF2, 0xF2, 0xBA, 0xF6, 0xF6, 0xF2 - .byte 0xB5, 0xF6, 0xFA, 0xF2, 0xB0, 0xF6, 0xFD, 0xF2, 0xAB, 0xF6, 0x01, 0xF3, 0xA6, 0xF6, 0x05, 0xF3 - .byte 0xA1, 0xF6, 0x08, 0xF3, 0x9B, 0xF6, 0x0C, 0xF3, 0x96, 0xF6, 0x10, 0xF3, 0x91, 0xF6, 0x13, 0xF3 - .byte 0x8C, 0xF6, 0x17, 0xF3, 0x87, 0xF6, 0x1B, 0xF3, 0x82, 0xF6, 0x1F, 0xF3, 0x7D, 0xF6, 0x22, 0xF3 - .byte 0x78, 0xF6, 0x26, 0xF3, 0x73, 0xF6, 0x2A, 0xF3, 0x6E, 0xF6, 0x2E, 0xF3, 0x69, 0xF6, 0x31, 0xF3 - .byte 0x64, 0xF6, 0x35, 0xF3, 0x5F, 0xF6, 0x39, 0xF3, 0x5A, 0xF6, 0x3D, 0xF3, 0x55, 0xF6, 0x40, 0xF3 - .byte 0x50, 0xF6, 0x44, 0xF3, 0x4B, 0xF6, 0x48, 0xF3, 0x46, 0xF6, 0x4C, 0xF3, 0x41, 0xF6, 0x50, 0xF3 - .byte 0x3C, 0xF6, 0x54, 0xF3, 0x37, 0xF6, 0x57, 0xF3, 0x32, 0xF6, 0x5B, 0xF3, 0x2D, 0xF6, 0x5F, 0xF3 - .byte 0x28, 0xF6, 0x63, 0xF3, 0x23, 0xF6, 0x67, 0xF3, 0x1E, 0xF6, 0x6B, 0xF3, 0x19, 0xF6, 0x6F, 0xF3 - .byte 0x14, 0xF6, 0x72, 0xF3, 0x0F, 0xF6, 0x76, 0xF3, 0x0A, 0xF6, 0x7A, 0xF3, 0x05, 0xF6, 0x7E, 0xF3 - .byte 0x01, 0xF6, 0x82, 0xF3, 0xFC, 0xF5, 0x86, 0xF3, 0xF7, 0xF5, 0x8A, 0xF3, 0xF2, 0xF5, 0x8E, 0xF3 - .byte 0xED, 0xF5, 0x92, 0xF3, 0xE8, 0xF5, 0x96, 0xF3, 0xE3, 0xF5, 0x9A, 0xF3, 0xDE, 0xF5, 0x9E, 0xF3 - .byte 0xDA, 0xF5, 0xA2, 0xF3, 0xD5, 0xF5, 0xA6, 0xF3, 0xD0, 0xF5, 0xAA, 0xF3, 0xCB, 0xF5, 0xAE, 0xF3 - .byte 0xC6, 0xF5, 0xB2, 0xF3, 0xC1, 0xF5, 0xB6, 0xF3, 0xBC, 0xF5, 0xBA, 0xF3, 0xB8, 0xF5, 0xBE, 0xF3 - .byte 0xB3, 0xF5, 0xC2, 0xF3, 0xAE, 0xF5, 0xC6, 0xF3, 0xA9, 0xF5, 0xCA, 0xF3, 0xA4, 0xF5, 0xCE, 0xF3 - .byte 0xA0, 0xF5, 0xD2, 0xF3, 0x9B, 0xF5, 0xD6, 0xF3, 0x96, 0xF5, 0xDA, 0xF3, 0x91, 0xF5, 0xDE, 0xF3 - .byte 0x8D, 0xF5, 0xE2, 0xF3, 0x88, 0xF5, 0xE7, 0xF3, 0x83, 0xF5, 0xEB, 0xF3, 0x7E, 0xF5, 0xEF, 0xF3 - .byte 0x7A, 0xF5, 0xF3, 0xF3, 0x75, 0xF5, 0xF7, 0xF3, 0x70, 0xF5, 0xFB, 0xF3, 0x6B, 0xF5, 0xFF, 0xF3 - .byte 0x67, 0xF5, 0x04, 0xF4, 0x62, 0xF5, 0x08, 0xF4, 0x5D, 0xF5, 0x0C, 0xF4, 0x59, 0xF5, 0x10, 0xF4 - .byte 0x54, 0xF5, 0x14, 0xF4, 0x4F, 0xF5, 0x18, 0xF4, 0x4B, 0xF5, 0x1D, 0xF4, 0x46, 0xF5, 0x21, 0xF4 - .byte 0x41, 0xF5, 0x25, 0xF4, 0x3D, 0xF5, 0x29, 0xF4, 0x38, 0xF5, 0x2E, 0xF4, 0x33, 0xF5, 0x32, 0xF4 - .byte 0x2F, 0xF5, 0x36, 0xF4, 0x2A, 0xF5, 0x3A, 0xF4, 0x25, 0xF5, 0x3F, 0xF4, 0x21, 0xF5, 0x43, 0xF4 - .byte 0x1C, 0xF5, 0x47, 0xF4, 0x18, 0xF5, 0x4B, 0xF4, 0x13, 0xF5, 0x50, 0xF4, 0x0E, 0xF5, 0x54, 0xF4 - .byte 0x0A, 0xF5, 0x58, 0xF4, 0x05, 0xF5, 0x5D, 0xF4, 0x01, 0xF5, 0x61, 0xF4, 0xFC, 0xF4, 0x65, 0xF4 - .byte 0xF8, 0xF4, 0x69, 0xF4, 0xF3, 0xF4, 0x6E, 0xF4, 0xEF, 0xF4, 0x72, 0xF4, 0xEA, 0xF4, 0x77, 0xF4 - .byte 0xE5, 0xF4, 0x7B, 0xF4, 0xE1, 0xF4, 0x7F, 0xF4, 0xDC, 0xF4, 0x84, 0xF4, 0xD8, 0xF4, 0x88, 0xF4 - .byte 0xD3, 0xF4, 0x8C, 0xF4, 0xCF, 0xF4, 0x91, 0xF4, 0xCA, 0xF4, 0x95, 0xF4, 0xC6, 0xF4, 0x9A, 0xF4 - .byte 0xC2, 0xF4, 0x9E, 0xF4, 0xBD, 0xF4, 0xA2, 0xF4, 0xB9, 0xF4, 0xA7, 0xF4, 0xB4, 0xF4, 0xAB, 0xF4 - .byte 0xB0, 0xF4, 0xB0, 0xF4, 0xAB, 0xF4, 0xB4, 0xF4, 0xA7, 0xF4, 0xB9, 0xF4, 0xA2, 0xF4, 0xBD, 0xF4 - .byte 0x9E, 0xF4, 0xC2, 0xF4, 0x9A, 0xF4, 0xC6, 0xF4, 0x95, 0xF4, 0xCA, 0xF4, 0x91, 0xF4, 0xCF, 0xF4 - .byte 0x8C, 0xF4, 0xD3, 0xF4, 0x88, 0xF4, 0xD8, 0xF4, 0x84, 0xF4, 0xDC, 0xF4, 0x7F, 0xF4, 0xE1, 0xF4 - .byte 0x7B, 0xF4, 0xE5, 0xF4, 0x77, 0xF4, 0xEA, 0xF4, 0x72, 0xF4, 0xEF, 0xF4, 0x6E, 0xF4, 0xF3, 0xF4 - .byte 0x69, 0xF4, 0xF8, 0xF4, 0x65, 0xF4, 0xFC, 0xF4, 0x61, 0xF4, 0x01, 0xF5, 0x5D, 0xF4, 0x05, 0xF5 - .byte 0x58, 0xF4, 0x0A, 0xF5, 0x54, 0xF4, 0x0E, 0xF5, 0x50, 0xF4, 0x13, 0xF5, 0x4B, 0xF4, 0x18, 0xF5 - .byte 0x47, 0xF4, 0x1C, 0xF5, 0x43, 0xF4, 0x21, 0xF5, 0x3F, 0xF4, 0x25, 0xF5, 0x3A, 0xF4, 0x2A, 0xF5 - .byte 0x36, 0xF4, 0x2F, 0xF5, 0x32, 0xF4, 0x33, 0xF5, 0x2E, 0xF4, 0x38, 0xF5, 0x29, 0xF4, 0x3D, 0xF5 - .byte 0x25, 0xF4, 0x41, 0xF5, 0x21, 0xF4, 0x46, 0xF5, 0x1D, 0xF4, 0x4B, 0xF5, 0x18, 0xF4, 0x4F, 0xF5 - .byte 0x14, 0xF4, 0x54, 0xF5, 0x10, 0xF4, 0x59, 0xF5, 0x0C, 0xF4, 0x5D, 0xF5, 0x08, 0xF4, 0x62, 0xF5 - .byte 0x04, 0xF4, 0x67, 0xF5, 0xFF, 0xF3, 0x6B, 0xF5, 0xFB, 0xF3, 0x70, 0xF5, 0xF7, 0xF3, 0x75, 0xF5 - .byte 0xF3, 0xF3, 0x7A, 0xF5, 0xEF, 0xF3, 0x7E, 0xF5, 0xEB, 0xF3, 0x83, 0xF5, 0xE7, 0xF3, 0x88, 0xF5 - .byte 0xE2, 0xF3, 0x8D, 0xF5, 0xDE, 0xF3, 0x91, 0xF5, 0xDA, 0xF3, 0x96, 0xF5, 0xD6, 0xF3, 0x9B, 0xF5 - .byte 0xD2, 0xF3, 0xA0, 0xF5, 0xCE, 0xF3, 0xA4, 0xF5, 0xCA, 0xF3, 0xA9, 0xF5, 0xC6, 0xF3, 0xAE, 0xF5 - .byte 0xC2, 0xF3, 0xB3, 0xF5, 0xBE, 0xF3, 0xB8, 0xF5, 0xBA, 0xF3, 0xBC, 0xF5, 0xB6, 0xF3, 0xC1, 0xF5 - .byte 0xB2, 0xF3, 0xC6, 0xF5, 0xAE, 0xF3, 0xCB, 0xF5, 0xAA, 0xF3, 0xD0, 0xF5, 0xA6, 0xF3, 0xD5, 0xF5 - .byte 0xA2, 0xF3, 0xDA, 0xF5, 0x9E, 0xF3, 0xDE, 0xF5, 0x9A, 0xF3, 0xE3, 0xF5, 0x96, 0xF3, 0xE8, 0xF5 - .byte 0x92, 0xF3, 0xED, 0xF5, 0x8E, 0xF3, 0xF2, 0xF5, 0x8A, 0xF3, 0xF7, 0xF5, 0x86, 0xF3, 0xFC, 0xF5 - .byte 0x82, 0xF3, 0x01, 0xF6, 0x7E, 0xF3, 0x05, 0xF6, 0x7A, 0xF3, 0x0A, 0xF6, 0x76, 0xF3, 0x0F, 0xF6 - .byte 0x72, 0xF3, 0x14, 0xF6, 0x6F, 0xF3, 0x19, 0xF6, 0x6B, 0xF3, 0x1E, 0xF6, 0x67, 0xF3, 0x23, 0xF6 - .byte 0x63, 0xF3, 0x28, 0xF6, 0x5F, 0xF3, 0x2D, 0xF6, 0x5B, 0xF3, 0x32, 0xF6, 0x57, 0xF3, 0x37, 0xF6 - .byte 0x54, 0xF3, 0x3C, 0xF6, 0x50, 0xF3, 0x41, 0xF6, 0x4C, 0xF3, 0x46, 0xF6, 0x48, 0xF3, 0x4B, 0xF6 - .byte 0x44, 0xF3, 0x50, 0xF6, 0x40, 0xF3, 0x55, 0xF6, 0x3D, 0xF3, 0x5A, 0xF6, 0x39, 0xF3, 0x5F, 0xF6 - .byte 0x35, 0xF3, 0x64, 0xF6, 0x31, 0xF3, 0x69, 0xF6, 0x2E, 0xF3, 0x6E, 0xF6, 0x2A, 0xF3, 0x73, 0xF6 - .byte 0x26, 0xF3, 0x78, 0xF6, 0x22, 0xF3, 0x7D, 0xF6, 0x1F, 0xF3, 0x82, 0xF6, 0x1B, 0xF3, 0x87, 0xF6 - .byte 0x17, 0xF3, 0x8C, 0xF6, 0x13, 0xF3, 0x91, 0xF6, 0x10, 0xF3, 0x96, 0xF6, 0x0C, 0xF3, 0x9B, 0xF6 - .byte 0x08, 0xF3, 0xA1, 0xF6, 0x05, 0xF3, 0xA6, 0xF6, 0x01, 0xF3, 0xAB, 0xF6, 0xFD, 0xF2, 0xB0, 0xF6 - .byte 0xFA, 0xF2, 0xB5, 0xF6, 0xF6, 0xF2, 0xBA, 0xF6, 0xF2, 0xF2, 0xBF, 0xF6, 0xEF, 0xF2, 0xC4, 0xF6 - .byte 0xEB, 0xF2, 0xC9, 0xF6, 0xE8, 0xF2, 0xCF, 0xF6, 0xE4, 0xF2, 0xD4, 0xF6, 0xE0, 0xF2, 0xD9, 0xF6 - .byte 0xDD, 0xF2, 0xDE, 0xF6, 0xD9, 0xF2, 0xE3, 0xF6, 0xD6, 0xF2, 0xE8, 0xF6, 0xD2, 0xF2, 0xEE, 0xF6 - .byte 0xCE, 0xF2, 0xF3, 0xF6, 0xCB, 0xF2, 0xF8, 0xF6, 0xC7, 0xF2, 0xFD, 0xF6, 0xC4, 0xF2, 0x02, 0xF7 - .byte 0xC0, 0xF2, 0x08, 0xF7, 0xBD, 0xF2, 0x0D, 0xF7, 0xB9, 0xF2, 0x12, 0xF7, 0xB6, 0xF2, 0x17, 0xF7 - .byte 0xB2, 0xF2, 0x1C, 0xF7, 0xAF, 0xF2, 0x22, 0xF7, 0xAB, 0xF2, 0x27, 0xF7, 0xA8, 0xF2, 0x2C, 0xF7 - .byte 0xA4, 0xF2, 0x31, 0xF7, 0xA1, 0xF2, 0x37, 0xF7, 0x9E, 0xF2, 0x3C, 0xF7, 0x9A, 0xF2, 0x41, 0xF7 - .byte 0x97, 0xF2, 0x46, 0xF7, 0x93, 0xF2, 0x4C, 0xF7, 0x90, 0xF2, 0x51, 0xF7, 0x8C, 0xF2, 0x56, 0xF7 - .byte 0x89, 0xF2, 0x5B, 0xF7, 0x86, 0xF2, 0x61, 0xF7, 0x82, 0xF2, 0x66, 0xF7, 0x7F, 0xF2, 0x6B, 0xF7 - .byte 0x7B, 0xF2, 0x71, 0xF7, 0x78, 0xF2, 0x76, 0xF7, 0x75, 0xF2, 0x7B, 0xF7, 0x71, 0xF2, 0x81, 0xF7 - .byte 0x6E, 0xF2, 0x86, 0xF7, 0x6B, 0xF2, 0x8B, 0xF7, 0x67, 0xF2, 0x91, 0xF7, 0x64, 0xF2, 0x96, 0xF7 - .byte 0x61, 0xF2, 0x9B, 0xF7, 0x5E, 0xF2, 0xA1, 0xF7, 0x5A, 0xF2, 0xA6, 0xF7, 0x57, 0xF2, 0xAB, 0xF7 - .byte 0x54, 0xF2, 0xB1, 0xF7, 0x50, 0xF2, 0xB6, 0xF7, 0x4D, 0xF2, 0xBB, 0xF7, 0x4A, 0xF2, 0xC1, 0xF7 - .byte 0x47, 0xF2, 0xC6, 0xF7, 0x44, 0xF2, 0xCC, 0xF7, 0x40, 0xF2, 0xD1, 0xF7, 0x3D, 0xF2, 0xD6, 0xF7 - .byte 0x3A, 0xF2, 0xDC, 0xF7, 0x37, 0xF2, 0xE1, 0xF7, 0x34, 0xF2, 0xE7, 0xF7, 0x30, 0xF2, 0xEC, 0xF7 - .byte 0x2D, 0xF2, 0xF2, 0xF7, 0x2A, 0xF2, 0xF7, 0xF7, 0x27, 0xF2, 0xFC, 0xF7, 0x24, 0xF2, 0x02, 0xF8 - .byte 0x21, 0xF2, 0x07, 0xF8, 0x1D, 0xF2, 0x0D, 0xF8, 0x1A, 0xF2, 0x12, 0xF8, 0x17, 0xF2, 0x18, 0xF8 - .byte 0x14, 0xF2, 0x1D, 0xF8, 0x11, 0xF2, 0x23, 0xF8, 0x0E, 0xF2, 0x28, 0xF8, 0x0B, 0xF2, 0x2E, 0xF8 - .byte 0x08, 0xF2, 0x33, 0xF8, 0x05, 0xF2, 0x38, 0xF8, 0x02, 0xF2, 0x3E, 0xF8, 0xFF, 0xF1, 0x43, 0xF8 - .byte 0xFC, 0xF1, 0x49, 0xF8, 0xF9, 0xF1, 0x4E, 0xF8, 0xF6, 0xF1, 0x54, 0xF8, 0xF3, 0xF1, 0x5A, 0xF8 - .byte 0xF0, 0xF1, 0x5F, 0xF8, 0xED, 0xF1, 0x65, 0xF8, 0xEA, 0xF1, 0x6A, 0xF8, 0xE7, 0xF1, 0x70, 0xF8 - .byte 0xE4, 0xF1, 0x75, 0xF8, 0xE1, 0xF1, 0x7B, 0xF8, 0xDE, 0xF1, 0x80, 0xF8, 0xDB, 0xF1, 0x86, 0xF8 - .byte 0xD8, 0xF1, 0x8B, 0xF8, 0xD5, 0xF1, 0x91, 0xF8, 0xD2, 0xF1, 0x96, 0xF8, 0xCF, 0xF1, 0x9C, 0xF8 - .byte 0xCC, 0xF1, 0xA2, 0xF8, 0xC9, 0xF1, 0xA7, 0xF8, 0xC6, 0xF1, 0xAD, 0xF8, 0xC4, 0xF1, 0xB2, 0xF8 - .byte 0xC1, 0xF1, 0xB8, 0xF8, 0xBE, 0xF1, 0xBE, 0xF8, 0xBB, 0xF1, 0xC3, 0xF8, 0xB8, 0xF1, 0xC9, 0xF8 - .byte 0xB5, 0xF1, 0xCE, 0xF8, 0xB3, 0xF1, 0xD4, 0xF8, 0xB0, 0xF1, 0xDA, 0xF8, 0xAD, 0xF1, 0xDF, 0xF8 - .byte 0xAA, 0xF1, 0xE5, 0xF8, 0xA7, 0xF1, 0xEB, 0xF8, 0xA5, 0xF1, 0xF0, 0xF8, 0xA2, 0xF1, 0xF6, 0xF8 - .byte 0x9F, 0xF1, 0xFB, 0xF8, 0x9C, 0xF1, 0x01, 0xF9, 0x9A, 0xF1, 0x07, 0xF9, 0x97, 0xF1, 0x0C, 0xF9 - .byte 0x94, 0xF1, 0x12, 0xF9, 0x91, 0xF1, 0x18, 0xF9, 0x8F, 0xF1, 0x1D, 0xF9, 0x8C, 0xF1, 0x23, 0xF9 - .byte 0x89, 0xF1, 0x29, 0xF9, 0x87, 0xF1, 0x2E, 0xF9, 0x84, 0xF1, 0x34, 0xF9, 0x81, 0xF1, 0x3A, 0xF9 - .byte 0x7F, 0xF1, 0x3F, 0xF9, 0x7C, 0xF1, 0x45, 0xF9, 0x79, 0xF1, 0x4B, 0xF9, 0x77, 0xF1, 0x51, 0xF9 - .byte 0x74, 0xF1, 0x56, 0xF9, 0x71, 0xF1, 0x5C, 0xF9, 0x6F, 0xF1, 0x62, 0xF9, 0x6C, 0xF1, 0x67, 0xF9 - .byte 0x6A, 0xF1, 0x6D, 0xF9, 0x67, 0xF1, 0x73, 0xF9, 0x65, 0xF1, 0x79, 0xF9, 0x62, 0xF1, 0x7E, 0xF9 - .byte 0x5F, 0xF1, 0x84, 0xF9, 0x5D, 0xF1, 0x8A, 0xF9, 0x5A, 0xF1, 0x90, 0xF9, 0x58, 0xF1, 0x95, 0xF9 - .byte 0x55, 0xF1, 0x9B, 0xF9, 0x53, 0xF1, 0xA1, 0xF9, 0x50, 0xF1, 0xA7, 0xF9, 0x4E, 0xF1, 0xAC, 0xF9 - .byte 0x4B, 0xF1, 0xB2, 0xF9, 0x49, 0xF1, 0xB8, 0xF9, 0x46, 0xF1, 0xBE, 0xF9, 0x44, 0xF1, 0xC4, 0xF9 - .byte 0x41, 0xF1, 0xC9, 0xF9, 0x3F, 0xF1, 0xCF, 0xF9, 0x3D, 0xF1, 0xD5, 0xF9, 0x3A, 0xF1, 0xDB, 0xF9 - .byte 0x38, 0xF1, 0xE1, 0xF9, 0x35, 0xF1, 0xE6, 0xF9, 0x33, 0xF1, 0xEC, 0xF9, 0x31, 0xF1, 0xF2, 0xF9 - .byte 0x2E, 0xF1, 0xF8, 0xF9, 0x2C, 0xF1, 0xFE, 0xF9, 0x2A, 0xF1, 0x03, 0xFA, 0x27, 0xF1, 0x09, 0xFA - .byte 0x25, 0xF1, 0x0F, 0xFA, 0x23, 0xF1, 0x15, 0xFA, 0x20, 0xF1, 0x1B, 0xFA, 0x1E, 0xF1, 0x21, 0xFA - .byte 0x1C, 0xF1, 0x26, 0xFA, 0x19, 0xF1, 0x2C, 0xFA, 0x17, 0xF1, 0x32, 0xFA, 0x15, 0xF1, 0x38, 0xFA - .byte 0x12, 0xF1, 0x3E, 0xFA, 0x10, 0xF1, 0x44, 0xFA, 0x0E, 0xF1, 0x4A, 0xFA, 0x0C, 0xF1, 0x4F, 0xFA - .byte 0x09, 0xF1, 0x55, 0xFA, 0x07, 0xF1, 0x5B, 0xFA, 0x05, 0xF1, 0x61, 0xFA, 0x03, 0xF1, 0x67, 0xFA - .byte 0x01, 0xF1, 0x6D, 0xFA, 0xFE, 0xF0, 0x73, 0xFA, 0xFC, 0xF0, 0x79, 0xFA, 0xFA, 0xF0, 0x7F, 0xFA - .byte 0xF8, 0xF0, 0x84, 0xFA, 0xF6, 0xF0, 0x8A, 0xFA, 0xF4, 0xF0, 0x90, 0xFA, 0xF2, 0xF0, 0x96, 0xFA - .byte 0xEF, 0xF0, 0x9C, 0xFA, 0xED, 0xF0, 0xA2, 0xFA, 0xEB, 0xF0, 0xA8, 0xFA, 0xE9, 0xF0, 0xAE, 0xFA - .byte 0xE7, 0xF0, 0xB4, 0xFA, 0xE5, 0xF0, 0xBA, 0xFA, 0xE3, 0xF0, 0xC0, 0xFA, 0xE1, 0xF0, 0xC6, 0xFA - .byte 0xDF, 0xF0, 0xCC, 0xFA, 0xDD, 0xF0, 0xD1, 0xFA, 0xDB, 0xF0, 0xD7, 0xFA, 0xD9, 0xF0, 0xDD, 0xFA - .byte 0xD7, 0xF0, 0xE3, 0xFA, 0xD5, 0xF0, 0xE9, 0xFA, 0xD3, 0xF0, 0xEF, 0xFA, 0xD1, 0xF0, 0xF5, 0xFA - .byte 0xCF, 0xF0, 0xFB, 0xFA, 0xCD, 0xF0, 0x01, 0xFB, 0xCB, 0xF0, 0x07, 0xFB, 0xC9, 0xF0, 0x0D, 0xFB - .byte 0xC7, 0xF0, 0x13, 0xFB, 0xC5, 0xF0, 0x19, 0xFB, 0xC3, 0xF0, 0x1F, 0xFB, 0xC1, 0xF0, 0x25, 0xFB - .byte 0xBF, 0xF0, 0x2B, 0xFB, 0xBD, 0xF0, 0x31, 0xFB, 0xBB, 0xF0, 0x37, 0xFB, 0xBA, 0xF0, 0x3D, 0xFB - .byte 0xB8, 0xF0, 0x43, 0xFB, 0xB6, 0xF0, 0x49, 0xFB, 0xB4, 0xF0, 0x4F, 0xFB, 0xB2, 0xF0, 0x55, 0xFB - .byte 0xB0, 0xF0, 0x5B, 0xFB, 0xAF, 0xF0, 0x61, 0xFB, 0xAD, 0xF0, 0x67, 0xFB, 0xAB, 0xF0, 0x6D, 0xFB - .byte 0xA9, 0xF0, 0x73, 0xFB, 0xA7, 0xF0, 0x79, 0xFB, 0xA6, 0xF0, 0x7F, 0xFB, 0xA4, 0xF0, 0x85, 0xFB - .byte 0xA2, 0xF0, 0x8B, 0xFB, 0xA0, 0xF0, 0x91, 0xFB, 0x9F, 0xF0, 0x97, 0xFB, 0x9D, 0xF0, 0x9D, 0xFB - .byte 0x9B, 0xF0, 0xA3, 0xFB, 0x99, 0xF0, 0xA9, 0xFB, 0x98, 0xF0, 0xAF, 0xFB, 0x96, 0xF0, 0xB5, 0xFB - .byte 0x94, 0xF0, 0xBC, 0xFB, 0x93, 0xF0, 0xC2, 0xFB, 0x91, 0xF0, 0xC8, 0xFB, 0x8F, 0xF0, 0xCE, 0xFB - .byte 0x8E, 0xF0, 0xD4, 0xFB, 0x8C, 0xF0, 0xDA, 0xFB, 0x8A, 0xF0, 0xE0, 0xFB, 0x89, 0xF0, 0xE6, 0xFB - .byte 0x87, 0xF0, 0xEC, 0xFB, 0x86, 0xF0, 0xF2, 0xFB, 0x84, 0xF0, 0xF8, 0xFB, 0x83, 0xF0, 0xFE, 0xFB - .byte 0x81, 0xF0, 0x04, 0xFC, 0x7F, 0xF0, 0x0A, 0xFC, 0x7E, 0xF0, 0x11, 0xFC, 0x7C, 0xF0, 0x17, 0xFC - .byte 0x7B, 0xF0, 0x1D, 0xFC, 0x79, 0xF0, 0x23, 0xFC, 0x78, 0xF0, 0x29, 0xFC, 0x76, 0xF0, 0x2F, 0xFC - .byte 0x75, 0xF0, 0x35, 0xFC, 0x73, 0xF0, 0x3B, 0xFC, 0x72, 0xF0, 0x41, 0xFC, 0x70, 0xF0, 0x47, 0xFC - .byte 0x6F, 0xF0, 0x4E, 0xFC, 0x6D, 0xF0, 0x54, 0xFC, 0x6C, 0xF0, 0x5A, 0xFC, 0x6B, 0xF0, 0x60, 0xFC - .byte 0x69, 0xF0, 0x66, 0xFC, 0x68, 0xF0, 0x6C, 0xFC, 0x66, 0xF0, 0x72, 0xFC, 0x65, 0xF0, 0x78, 0xFC - .byte 0x64, 0xF0, 0x7F, 0xFC, 0x62, 0xF0, 0x85, 0xFC, 0x61, 0xF0, 0x8B, 0xFC, 0x5F, 0xF0, 0x91, 0xFC - .byte 0x5E, 0xF0, 0x97, 0xFC, 0x5D, 0xF0, 0x9D, 0xFC, 0x5B, 0xF0, 0xA3, 0xFC, 0x5A, 0xF0, 0xAA, 0xFC - .byte 0x59, 0xF0, 0xB0, 0xFC, 0x58, 0xF0, 0xB6, 0xFC, 0x56, 0xF0, 0xBC, 0xFC, 0x55, 0xF0, 0xC2, 0xFC - .byte 0x54, 0xF0, 0xC8, 0xFC, 0x52, 0xF0, 0xCE, 0xFC, 0x51, 0xF0, 0xD5, 0xFC, 0x50, 0xF0, 0xDB, 0xFC - .byte 0x4F, 0xF0, 0xE1, 0xFC, 0x4D, 0xF0, 0xE7, 0xFC, 0x4C, 0xF0, 0xED, 0xFC, 0x4B, 0xF0, 0xF3, 0xFC - .byte 0x4A, 0xF0, 0xFA, 0xFC, 0x49, 0xF0, 0x00, 0xFD, 0x48, 0xF0, 0x06, 0xFD, 0x46, 0xF0, 0x0C, 0xFD - .byte 0x45, 0xF0, 0x12, 0xFD, 0x44, 0xF0, 0x18, 0xFD, 0x43, 0xF0, 0x1F, 0xFD, 0x42, 0xF0, 0x25, 0xFD - .byte 0x41, 0xF0, 0x2B, 0xFD, 0x40, 0xF0, 0x31, 0xFD, 0x3E, 0xF0, 0x37, 0xFD, 0x3D, 0xF0, 0x3E, 0xFD - .byte 0x3C, 0xF0, 0x44, 0xFD, 0x3B, 0xF0, 0x4A, 0xFD, 0x3A, 0xF0, 0x50, 0xFD, 0x39, 0xF0, 0x56, 0xFD - .byte 0x38, 0xF0, 0x5D, 0xFD, 0x37, 0xF0, 0x63, 0xFD, 0x36, 0xF0, 0x69, 0xFD, 0x35, 0xF0, 0x6F, 0xFD - .byte 0x34, 0xF0, 0x75, 0xFD, 0x33, 0xF0, 0x7C, 0xFD, 0x32, 0xF0, 0x82, 0xFD, 0x31, 0xF0, 0x88, 0xFD - .byte 0x30, 0xF0, 0x8E, 0xFD, 0x2F, 0xF0, 0x94, 0xFD, 0x2E, 0xF0, 0x9B, 0xFD, 0x2D, 0xF0, 0xA1, 0xFD - .byte 0x2C, 0xF0, 0xA7, 0xFD, 0x2B, 0xF0, 0xAD, 0xFD, 0x2B, 0xF0, 0xB3, 0xFD, 0x2A, 0xF0, 0xBA, 0xFD - .byte 0x29, 0xF0, 0xC0, 0xFD, 0x28, 0xF0, 0xC6, 0xFD, 0x27, 0xF0, 0xCC, 0xFD, 0x26, 0xF0, 0xD3, 0xFD - .byte 0x25, 0xF0, 0xD9, 0xFD, 0x24, 0xF0, 0xDF, 0xFD, 0x24, 0xF0, 0xE5, 0xFD, 0x23, 0xF0, 0xEB, 0xFD - .byte 0x22, 0xF0, 0xF2, 0xFD, 0x21, 0xF0, 0xF8, 0xFD, 0x20, 0xF0, 0xFE, 0xFD, 0x20, 0xF0, 0x04, 0xFE - .byte 0x1F, 0xF0, 0x0B, 0xFE, 0x1E, 0xF0, 0x11, 0xFE, 0x1D, 0xF0, 0x17, 0xFE, 0x1D, 0xF0, 0x1D, 0xFE - .byte 0x1C, 0xF0, 0x24, 0xFE, 0x1B, 0xF0, 0x2A, 0xFE, 0x1A, 0xF0, 0x30, 0xFE, 0x1A, 0xF0, 0x36, 0xFE - .byte 0x19, 0xF0, 0x3D, 0xFE, 0x18, 0xF0, 0x43, 0xFE, 0x18, 0xF0, 0x49, 0xFE, 0x17, 0xF0, 0x4F, 0xFE - .byte 0x16, 0xF0, 0x56, 0xFE, 0x16, 0xF0, 0x5C, 0xFE, 0x15, 0xF0, 0x62, 0xFE, 0x14, 0xF0, 0x68, 0xFE - .byte 0x14, 0xF0, 0x6F, 0xFE, 0x13, 0xF0, 0x75, 0xFE, 0x13, 0xF0, 0x7B, 0xFE, 0x12, 0xF0, 0x81, 0xFE - .byte 0x11, 0xF0, 0x88, 0xFE, 0x11, 0xF0, 0x8E, 0xFE, 0x10, 0xF0, 0x94, 0xFE, 0x10, 0xF0, 0x9A, 0xFE - .byte 0x0F, 0xF0, 0xA1, 0xFE, 0x0F, 0xF0, 0xA7, 0xFE, 0x0E, 0xF0, 0xAD, 0xFE, 0x0E, 0xF0, 0xB3, 0xFE - .byte 0x0D, 0xF0, 0xBA, 0xFE, 0x0D, 0xF0, 0xC0, 0xFE, 0x0C, 0xF0, 0xC6, 0xFE, 0x0C, 0xF0, 0xCC, 0xFE - .byte 0x0B, 0xF0, 0xD3, 0xFE, 0x0B, 0xF0, 0xD9, 0xFE, 0x0A, 0xF0, 0xDF, 0xFE, 0x0A, 0xF0, 0xE5, 0xFE - .byte 0x09, 0xF0, 0xEC, 0xFE, 0x09, 0xF0, 0xF2, 0xFE, 0x08, 0xF0, 0xF8, 0xFE, 0x08, 0xF0, 0xFF, 0xFE - .byte 0x08, 0xF0, 0x05, 0xFF, 0x07, 0xF0, 0x0B, 0xFF, 0x07, 0xF0, 0x11, 0xFF, 0x07, 0xF0, 0x18, 0xFF - .byte 0x06, 0xF0, 0x1E, 0xFF, 0x06, 0xF0, 0x24, 0xFF, 0x06, 0xF0, 0x2A, 0xFF, 0x05, 0xF0, 0x31, 0xFF - .byte 0x05, 0xF0, 0x37, 0xFF, 0x05, 0xF0, 0x3D, 0xFF, 0x04, 0xF0, 0x44, 0xFF, 0x04, 0xF0, 0x4A, 0xFF - .byte 0x04, 0xF0, 0x50, 0xFF, 0x04, 0xF0, 0x56, 0xFF, 0x03, 0xF0, 0x5D, 0xFF, 0x03, 0xF0, 0x63, 0xFF - .byte 0x03, 0xF0, 0x69, 0xFF, 0x03, 0xF0, 0x70, 0xFF, 0x02, 0xF0, 0x76, 0xFF, 0x02, 0xF0, 0x7C, 0xFF - .byte 0x02, 0xF0, 0x82, 0xFF, 0x02, 0xF0, 0x89, 0xFF, 0x02, 0xF0, 0x8F, 0xFF, 0x01, 0xF0, 0x95, 0xFF - .byte 0x01, 0xF0, 0x9B, 0xFF, 0x01, 0xF0, 0xA2, 0xFF, 0x01, 0xF0, 0xA8, 0xFF, 0x01, 0xF0, 0xAE, 0xFF - .byte 0x01, 0xF0, 0xB5, 0xFF, 0x01, 0xF0, 0xBB, 0xFF, 0x00, 0xF0, 0xC1, 0xFF, 0x00, 0xF0, 0xC7, 0xFF - .byte 0x00, 0xF0, 0xCE, 0xFF, 0x00, 0xF0, 0xD4, 0xFF, 0x00, 0xF0, 0xDA, 0xFF, 0x00, 0xF0, 0xE1, 0xFF - .byte 0x00, 0xF0, 0xE7, 0xFF, 0x00, 0xF0, 0xED, 0xFF, 0x00, 0xF0, 0xF3, 0xFF, 0x00, 0xF0, 0xFA, 0xFF - .byte 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x06, 0x00, 0x00, 0xF0, 0x0D, 0x00, 0x00, 0xF0, 0x13, 0x00 - .byte 0x00, 0xF0, 0x19, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0xF0, 0x26, 0x00, 0x00, 0xF0, 0x2C, 0x00 - .byte 0x00, 0xF0, 0x32, 0x00, 0x00, 0xF0, 0x39, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x01, 0xF0, 0x45, 0x00 - .byte 0x01, 0xF0, 0x4B, 0x00, 0x01, 0xF0, 0x52, 0x00, 0x01, 0xF0, 0x58, 0x00, 0x01, 0xF0, 0x5E, 0x00 - .byte 0x01, 0xF0, 0x65, 0x00, 0x01, 0xF0, 0x6B, 0x00, 0x02, 0xF0, 0x71, 0x00, 0x02, 0xF0, 0x77, 0x00 - .byte 0x02, 0xF0, 0x7E, 0x00, 0x02, 0xF0, 0x84, 0x00, 0x02, 0xF0, 0x8A, 0x00, 0x03, 0xF0, 0x90, 0x00 - .byte 0x03, 0xF0, 0x97, 0x00, 0x03, 0xF0, 0x9D, 0x00, 0x03, 0xF0, 0xA3, 0x00, 0x04, 0xF0, 0xAA, 0x00 - .byte 0x04, 0xF0, 0xB0, 0x00, 0x04, 0xF0, 0xB6, 0x00, 0x04, 0xF0, 0xBC, 0x00, 0x05, 0xF0, 0xC3, 0x00 - .byte 0x05, 0xF0, 0xC9, 0x00, 0x05, 0xF0, 0xCF, 0x00, 0x06, 0xF0, 0xD6, 0x00, 0x06, 0xF0, 0xDC, 0x00 - .byte 0x06, 0xF0, 0xE2, 0x00, 0x07, 0xF0, 0xE8, 0x00, 0x07, 0xF0, 0xEF, 0x00, 0x07, 0xF0, 0xF5, 0x00 - .byte 0x08, 0xF0, 0xFB, 0x00, 0x08, 0xF0, 0x01, 0x01, 0x08, 0xF0, 0x08, 0x01, 0x09, 0xF0, 0x0E, 0x01 - .byte 0x09, 0xF0, 0x14, 0x01, 0x0A, 0xF0, 0x1B, 0x01, 0x0A, 0xF0, 0x21, 0x01, 0x0B, 0xF0, 0x27, 0x01 - .byte 0x0B, 0xF0, 0x2D, 0x01, 0x0C, 0xF0, 0x34, 0x01, 0x0C, 0xF0, 0x3A, 0x01, 0x0D, 0xF0, 0x40, 0x01 - .byte 0x0D, 0xF0, 0x46, 0x01, 0x0E, 0xF0, 0x4D, 0x01, 0x0E, 0xF0, 0x53, 0x01, 0x0F, 0xF0, 0x59, 0x01 - .byte 0x0F, 0xF0, 0x5F, 0x01, 0x10, 0xF0, 0x66, 0x01, 0x10, 0xF0, 0x6C, 0x01, 0x11, 0xF0, 0x72, 0x01 - .byte 0x11, 0xF0, 0x78, 0x01, 0x12, 0xF0, 0x7F, 0x01, 0x13, 0xF0, 0x85, 0x01, 0x13, 0xF0, 0x8B, 0x01 - .byte 0x14, 0xF0, 0x91, 0x01, 0x14, 0xF0, 0x98, 0x01, 0x15, 0xF0, 0x9E, 0x01, 0x16, 0xF0, 0xA4, 0x01 - .byte 0x16, 0xF0, 0xAA, 0x01, 0x17, 0xF0, 0xB1, 0x01, 0x18, 0xF0, 0xB7, 0x01, 0x18, 0xF0, 0xBD, 0x01 - .byte 0x19, 0xF0, 0xC3, 0x01, 0x1A, 0xF0, 0xCA, 0x01, 0x1A, 0xF0, 0xD0, 0x01, 0x1B, 0xF0, 0xD6, 0x01 - .byte 0x1C, 0xF0, 0xDC, 0x01, 0x1D, 0xF0, 0xE3, 0x01, 0x1D, 0xF0, 0xE9, 0x01, 0x1E, 0xF0, 0xEF, 0x01 - .byte 0x1F, 0xF0, 0xF5, 0x01, 0x20, 0xF0, 0xFC, 0x01, 0x20, 0xF0, 0x02, 0x02, 0x21, 0xF0, 0x08, 0x02 - .byte 0x22, 0xF0, 0x0E, 0x02, 0x23, 0xF0, 0x15, 0x02, 0x24, 0xF0, 0x1B, 0x02, 0x24, 0xF0, 0x21, 0x02 - .byte 0x25, 0xF0, 0x27, 0x02, 0x26, 0xF0, 0x2D, 0x02, 0x27, 0xF0, 0x34, 0x02, 0x28, 0xF0, 0x3A, 0x02 - .byte 0x29, 0xF0, 0x40, 0x02, 0x2A, 0xF0, 0x46, 0x02, 0x2B, 0xF0, 0x4D, 0x02, 0x2B, 0xF0, 0x53, 0x02 - .byte 0x2C, 0xF0, 0x59, 0x02, 0x2D, 0xF0, 0x5F, 0x02, 0x2E, 0xF0, 0x65, 0x02, 0x2F, 0xF0, 0x6C, 0x02 - .byte 0x30, 0xF0, 0x72, 0x02, 0x31, 0xF0, 0x78, 0x02, 0x32, 0xF0, 0x7E, 0x02, 0x33, 0xF0, 0x84, 0x02 - .byte 0x34, 0xF0, 0x8B, 0x02, 0x35, 0xF0, 0x91, 0x02, 0x36, 0xF0, 0x97, 0x02, 0x37, 0xF0, 0x9D, 0x02 - .byte 0x38, 0xF0, 0xA3, 0x02, 0x39, 0xF0, 0xAA, 0x02, 0x3A, 0xF0, 0xB0, 0x02, 0x3B, 0xF0, 0xB6, 0x02 - .byte 0x3C, 0xF0, 0xBC, 0x02, 0x3D, 0xF0, 0xC2, 0x02, 0x3E, 0xF0, 0xC9, 0x02, 0x40, 0xF0, 0xCF, 0x02 - .byte 0x41, 0xF0, 0xD5, 0x02, 0x42, 0xF0, 0xDB, 0x02, 0x43, 0xF0, 0xE1, 0x02, 0x44, 0xF0, 0xE8, 0x02 - .byte 0x45, 0xF0, 0xEE, 0x02, 0x46, 0xF0, 0xF4, 0x02, 0x48, 0xF0, 0xFA, 0x02, 0x49, 0xF0, 0x00, 0x03 - .byte 0x4A, 0xF0, 0x06, 0x03, 0x4B, 0xF0, 0x0D, 0x03, 0x4C, 0xF0, 0x13, 0x03, 0x4D, 0xF0, 0x19, 0x03 - .byte 0x4F, 0xF0, 0x1F, 0x03, 0x50, 0xF0, 0x25, 0x03, 0x51, 0xF0, 0x2B, 0x03, 0x52, 0xF0, 0x32, 0x03 - .byte 0x54, 0xF0, 0x38, 0x03, 0x55, 0xF0, 0x3E, 0x03, 0x56, 0xF0, 0x44, 0x03, 0x58, 0xF0, 0x4A, 0x03 - .byte 0x59, 0xF0, 0x50, 0x03, 0x5A, 0xF0, 0x56, 0x03, 0x5B, 0xF0, 0x5D, 0x03, 0x5D, 0xF0, 0x63, 0x03 - .byte 0x5E, 0xF0, 0x69, 0x03, 0x5F, 0xF0, 0x6F, 0x03, 0x61, 0xF0, 0x75, 0x03, 0x62, 0xF0, 0x7B, 0x03 - .byte 0x64, 0xF0, 0x81, 0x03, 0x65, 0xF0, 0x88, 0x03, 0x66, 0xF0, 0x8E, 0x03, 0x68, 0xF0, 0x94, 0x03 - .byte 0x69, 0xF0, 0x9A, 0x03, 0x6B, 0xF0, 0xA0, 0x03, 0x6C, 0xF0, 0xA6, 0x03, 0x6D, 0xF0, 0xAC, 0x03 - .byte 0x6F, 0xF0, 0xB2, 0x03, 0x70, 0xF0, 0xB9, 0x03, 0x72, 0xF0, 0xBF, 0x03, 0x73, 0xF0, 0xC5, 0x03 - .byte 0x75, 0xF0, 0xCB, 0x03, 0x76, 0xF0, 0xD1, 0x03, 0x78, 0xF0, 0xD7, 0x03, 0x79, 0xF0, 0xDD, 0x03 - .byte 0x7B, 0xF0, 0xE3, 0x03, 0x7C, 0xF0, 0xE9, 0x03, 0x7E, 0xF0, 0xEF, 0x03, 0x7F, 0xF0, 0xF6, 0x03 - .byte 0x81, 0xF0, 0xFC, 0x03, 0x83, 0xF0, 0x02, 0x04, 0x84, 0xF0, 0x08, 0x04, 0x86, 0xF0, 0x0E, 0x04 - .byte 0x87, 0xF0, 0x14, 0x04, 0x89, 0xF0, 0x1A, 0x04, 0x8A, 0xF0, 0x20, 0x04, 0x8C, 0xF0, 0x26, 0x04 - .byte 0x8E, 0xF0, 0x2C, 0x04, 0x8F, 0xF0, 0x32, 0x04, 0x91, 0xF0, 0x38, 0x04, 0x93, 0xF0, 0x3E, 0x04 - .byte 0x94, 0xF0, 0x44, 0x04, 0x96, 0xF0, 0x4B, 0x04, 0x98, 0xF0, 0x51, 0x04, 0x99, 0xF0, 0x57, 0x04 - .byte 0x9B, 0xF0, 0x5D, 0x04, 0x9D, 0xF0, 0x63, 0x04, 0x9F, 0xF0, 0x69, 0x04, 0xA0, 0xF0, 0x6F, 0x04 - .byte 0xA2, 0xF0, 0x75, 0x04, 0xA4, 0xF0, 0x7B, 0x04, 0xA6, 0xF0, 0x81, 0x04, 0xA7, 0xF0, 0x87, 0x04 - .byte 0xA9, 0xF0, 0x8D, 0x04, 0xAB, 0xF0, 0x93, 0x04, 0xAD, 0xF0, 0x99, 0x04, 0xAF, 0xF0, 0x9F, 0x04 - .byte 0xB0, 0xF0, 0xA5, 0x04, 0xB2, 0xF0, 0xAB, 0x04, 0xB4, 0xF0, 0xB1, 0x04, 0xB6, 0xF0, 0xB7, 0x04 - .byte 0xB8, 0xF0, 0xBD, 0x04, 0xBA, 0xF0, 0xC3, 0x04, 0xBB, 0xF0, 0xC9, 0x04, 0xBD, 0xF0, 0xCF, 0x04 - .byte 0xBF, 0xF0, 0xD5, 0x04, 0xC1, 0xF0, 0xDB, 0x04, 0xC3, 0xF0, 0xE1, 0x04, 0xC5, 0xF0, 0xE7, 0x04 - .byte 0xC7, 0xF0, 0xED, 0x04, 0xC9, 0xF0, 0xF3, 0x04, 0xCB, 0xF0, 0xF9, 0x04, 0xCD, 0xF0, 0xFF, 0x04 - .byte 0xCF, 0xF0, 0x05, 0x05, 0xD1, 0xF0, 0x0B, 0x05, 0xD3, 0xF0, 0x11, 0x05, 0xD5, 0xF0, 0x17, 0x05 - .byte 0xD7, 0xF0, 0x1D, 0x05, 0xD9, 0xF0, 0x23, 0x05, 0xDB, 0xF0, 0x29, 0x05, 0xDD, 0xF0, 0x2F, 0x05 - .byte 0xDF, 0xF0, 0x34, 0x05, 0xE1, 0xF0, 0x3A, 0x05, 0xE3, 0xF0, 0x40, 0x05, 0xE5, 0xF0, 0x46, 0x05 - .byte 0xE7, 0xF0, 0x4C, 0x05, 0xE9, 0xF0, 0x52, 0x05, 0xEB, 0xF0, 0x58, 0x05, 0xED, 0xF0, 0x5E, 0x05 - .byte 0xEF, 0xF0, 0x64, 0x05, 0xF2, 0xF0, 0x6A, 0x05, 0xF4, 0xF0, 0x70, 0x05, 0xF6, 0xF0, 0x76, 0x05 - .byte 0xF8, 0xF0, 0x7C, 0x05, 0xFA, 0xF0, 0x81, 0x05, 0xFC, 0xF0, 0x87, 0x05, 0xFE, 0xF0, 0x8D, 0x05 - .byte 0x01, 0xF1, 0x93, 0x05, 0x03, 0xF1, 0x99, 0x05, 0x05, 0xF1, 0x9F, 0x05, 0x07, 0xF1, 0xA5, 0x05 - .byte 0x09, 0xF1, 0xAB, 0x05, 0x0C, 0xF1, 0xB1, 0x05, 0x0E, 0xF1, 0xB6, 0x05, 0x10, 0xF1, 0xBC, 0x05 - .byte 0x12, 0xF1, 0xC2, 0x05, 0x15, 0xF1, 0xC8, 0x05, 0x17, 0xF1, 0xCE, 0x05, 0x19, 0xF1, 0xD4, 0x05 - .byte 0x1C, 0xF1, 0xDA, 0x05, 0x1E, 0xF1, 0xDF, 0x05, 0x20, 0xF1, 0xE5, 0x05, 0x23, 0xF1, 0xEB, 0x05 - .byte 0x25, 0xF1, 0xF1, 0x05, 0x27, 0xF1, 0xF7, 0x05, 0x2A, 0xF1, 0xFD, 0x05, 0x2C, 0xF1, 0x02, 0x06 - .byte 0x2E, 0xF1, 0x08, 0x06, 0x31, 0xF1, 0x0E, 0x06, 0x33, 0xF1, 0x14, 0x06, 0x35, 0xF1, 0x1A, 0x06 - .byte 0x38, 0xF1, 0x1F, 0x06, 0x3A, 0xF1, 0x25, 0x06, 0x3D, 0xF1, 0x2B, 0x06, 0x3F, 0xF1, 0x31, 0x06 - .byte 0x41, 0xF1, 0x37, 0x06, 0x44, 0xF1, 0x3C, 0x06, 0x46, 0xF1, 0x42, 0x06, 0x49, 0xF1, 0x48, 0x06 - .byte 0x4B, 0xF1, 0x4E, 0x06, 0x4E, 0xF1, 0x54, 0x06, 0x50, 0xF1, 0x59, 0x06, 0x53, 0xF1, 0x5F, 0x06 - .byte 0x55, 0xF1, 0x65, 0x06, 0x58, 0xF1, 0x6B, 0x06, 0x5A, 0xF1, 0x70, 0x06, 0x5D, 0xF1, 0x76, 0x06 - .byte 0x5F, 0xF1, 0x7C, 0x06, 0x62, 0xF1, 0x82, 0x06, 0x65, 0xF1, 0x87, 0x06, 0x67, 0xF1, 0x8D, 0x06 - .byte 0x6A, 0xF1, 0x93, 0x06, 0x6C, 0xF1, 0x99, 0x06, 0x6F, 0xF1, 0x9E, 0x06, 0x71, 0xF1, 0xA4, 0x06 - .byte 0x74, 0xF1, 0xAA, 0x06, 0x77, 0xF1, 0xAF, 0x06, 0x79, 0xF1, 0xB5, 0x06, 0x7C, 0xF1, 0xBB, 0x06 - .byte 0x7F, 0xF1, 0xC1, 0x06, 0x81, 0xF1, 0xC6, 0x06, 0x84, 0xF1, 0xCC, 0x06, 0x87, 0xF1, 0xD2, 0x06 - .byte 0x89, 0xF1, 0xD7, 0x06, 0x8C, 0xF1, 0xDD, 0x06, 0x8F, 0xF1, 0xE3, 0x06, 0x91, 0xF1, 0xE8, 0x06 - .byte 0x94, 0xF1, 0xEE, 0x06, 0x97, 0xF1, 0xF4, 0x06, 0x9A, 0xF1, 0xF9, 0x06, 0x9C, 0xF1, 0xFF, 0x06 - .byte 0x9F, 0xF1, 0x05, 0x07, 0xA2, 0xF1, 0x0A, 0x07, 0xA5, 0xF1, 0x10, 0x07, 0xA7, 0xF1, 0x15, 0x07 - .byte 0xAA, 0xF1, 0x1B, 0x07, 0xAD, 0xF1, 0x21, 0x07, 0xB0, 0xF1, 0x26, 0x07, 0xB3, 0xF1, 0x2C, 0x07 - .byte 0xB5, 0xF1, 0x32, 0x07, 0xB8, 0xF1, 0x37, 0x07, 0xBB, 0xF1, 0x3D, 0x07, 0xBE, 0xF1, 0x42, 0x07 - .byte 0xC1, 0xF1, 0x48, 0x07, 0xC4, 0xF1, 0x4E, 0x07, 0xC6, 0xF1, 0x53, 0x07, 0xC9, 0xF1, 0x59, 0x07 - .byte 0xCC, 0xF1, 0x5E, 0x07, 0xCF, 0xF1, 0x64, 0x07, 0xD2, 0xF1, 0x6A, 0x07, 0xD5, 0xF1, 0x6F, 0x07 - .byte 0xD8, 0xF1, 0x75, 0x07, 0xDB, 0xF1, 0x7A, 0x07, 0xDE, 0xF1, 0x80, 0x07, 0xE1, 0xF1, 0x85, 0x07 - .byte 0xE4, 0xF1, 0x8B, 0x07, 0xE7, 0xF1, 0x90, 0x07, 0xEA, 0xF1, 0x96, 0x07, 0xED, 0xF1, 0x9B, 0x07 - .byte 0xF0, 0xF1, 0xA1, 0x07, 0xF3, 0xF1, 0xA6, 0x07, 0xF6, 0xF1, 0xAC, 0x07, 0xF9, 0xF1, 0xB2, 0x07 - .byte 0xFC, 0xF1, 0xB7, 0x07, 0xFF, 0xF1, 0xBD, 0x07, 0x02, 0xF2, 0xC2, 0x07, 0x05, 0xF2, 0xC8, 0x07 - .byte 0x08, 0xF2, 0xCD, 0x07, 0x0B, 0xF2, 0xD2, 0x07, 0x0E, 0xF2, 0xD8, 0x07, 0x11, 0xF2, 0xDD, 0x07 - .byte 0x14, 0xF2, 0xE3, 0x07, 0x17, 0xF2, 0xE8, 0x07, 0x1A, 0xF2, 0xEE, 0x07, 0x1D, 0xF2, 0xF3, 0x07 - .byte 0x21, 0xF2, 0xF9, 0x07, 0x24, 0xF2, 0xFE, 0x07, 0x27, 0xF2, 0x04, 0x08, 0x2A, 0xF2, 0x09, 0x08 - .byte 0x2D, 0xF2, 0x0E, 0x08, 0x30, 0xF2, 0x14, 0x08, 0x34, 0xF2, 0x19, 0x08, 0x37, 0xF2, 0x1F, 0x08 - .byte 0x3A, 0xF2, 0x24, 0x08, 0x3D, 0xF2, 0x2A, 0x08, 0x40, 0xF2, 0x2F, 0x08, 0x44, 0xF2, 0x34, 0x08 - .byte 0x47, 0xF2, 0x3A, 0x08, 0x4A, 0xF2, 0x3F, 0x08, 0x4D, 0xF2, 0x45, 0x08, 0x50, 0xF2, 0x4A, 0x08 - .byte 0x54, 0xF2, 0x4F, 0x08, 0x57, 0xF2, 0x55, 0x08, 0x5A, 0xF2, 0x5A, 0x08, 0x5E, 0xF2, 0x5F, 0x08 - .byte 0x61, 0xF2, 0x65, 0x08, 0x64, 0xF2, 0x6A, 0x08, 0x67, 0xF2, 0x6F, 0x08, 0x6B, 0xF2, 0x75, 0x08 - .byte 0x6E, 0xF2, 0x7A, 0x08, 0x71, 0xF2, 0x7F, 0x08, 0x75, 0xF2, 0x85, 0x08, 0x78, 0xF2, 0x8A, 0x08 - .byte 0x7B, 0xF2, 0x8F, 0x08, 0x7F, 0xF2, 0x95, 0x08, 0x82, 0xF2, 0x9A, 0x08, 0x86, 0xF2, 0x9F, 0x08 - .byte 0x89, 0xF2, 0xA5, 0x08, 0x8C, 0xF2, 0xAA, 0x08, 0x90, 0xF2, 0xAF, 0x08, 0x93, 0xF2, 0xB4, 0x08 - .byte 0x97, 0xF2, 0xBA, 0x08, 0x9A, 0xF2, 0xBF, 0x08, 0x9E, 0xF2, 0xC4, 0x08, 0xA1, 0xF2, 0xC9, 0x08 - .byte 0xA4, 0xF2, 0xCF, 0x08, 0xA8, 0xF2, 0xD4, 0x08, 0xAB, 0xF2, 0xD9, 0x08, 0xAF, 0xF2, 0xDE, 0x08 - .byte 0xB2, 0xF2, 0xE4, 0x08, 0xB6, 0xF2, 0xE9, 0x08, 0xB9, 0xF2, 0xEE, 0x08, 0xBD, 0xF2, 0xF3, 0x08 - .byte 0xC0, 0xF2, 0xF8, 0x08, 0xC4, 0xF2, 0xFE, 0x08, 0xC7, 0xF2, 0x03, 0x09, 0xCB, 0xF2, 0x08, 0x09 - .byte 0xCE, 0xF2, 0x0D, 0x09, 0xD2, 0xF2, 0x12, 0x09, 0xD6, 0xF2, 0x18, 0x09, 0xD9, 0xF2, 0x1D, 0x09 - .byte 0xDD, 0xF2, 0x22, 0x09, 0xE0, 0xF2, 0x27, 0x09, 0xE4, 0xF2, 0x2C, 0x09, 0xE8, 0xF2, 0x31, 0x09 - .byte 0xEB, 0xF2, 0x37, 0x09, 0xEF, 0xF2, 0x3C, 0x09, 0xF2, 0xF2, 0x41, 0x09, 0xF6, 0xF2, 0x46, 0x09 - .byte 0xFA, 0xF2, 0x4B, 0x09, 0xFD, 0xF2, 0x50, 0x09, 0x01, 0xF3, 0x55, 0x09, 0x05, 0xF3, 0x5A, 0x09 - .byte 0x08, 0xF3, 0x5F, 0x09, 0x0C, 0xF3, 0x65, 0x09, 0x10, 0xF3, 0x6A, 0x09, 0x13, 0xF3, 0x6F, 0x09 - .byte 0x17, 0xF3, 0x74, 0x09, 0x1B, 0xF3, 0x79, 0x09, 0x1F, 0xF3, 0x7E, 0x09, 0x22, 0xF3, 0x83, 0x09 - .byte 0x26, 0xF3, 0x88, 0x09, 0x2A, 0xF3, 0x8D, 0x09, 0x2E, 0xF3, 0x92, 0x09, 0x31, 0xF3, 0x97, 0x09 - .byte 0x35, 0xF3, 0x9C, 0x09, 0x39, 0xF3, 0xA1, 0x09, 0x3D, 0xF3, 0xA6, 0x09, 0x40, 0xF3, 0xAB, 0x09 - .byte 0x44, 0xF3, 0xB0, 0x09, 0x48, 0xF3, 0xB5, 0x09, 0x4C, 0xF3, 0xBA, 0x09, 0x50, 0xF3, 0xBF, 0x09 - .byte 0x54, 0xF3, 0xC4, 0x09, 0x57, 0xF3, 0xC9, 0x09, 0x5B, 0xF3, 0xCE, 0x09, 0x5F, 0xF3, 0xD3, 0x09 - .byte 0x63, 0xF3, 0xD8, 0x09, 0x67, 0xF3, 0xDD, 0x09, 0x6B, 0xF3, 0xE2, 0x09, 0x6F, 0xF3, 0xE7, 0x09 - .byte 0x72, 0xF3, 0xEC, 0x09, 0x76, 0xF3, 0xF1, 0x09, 0x7A, 0xF3, 0xF6, 0x09, 0x7E, 0xF3, 0xFB, 0x09 - .byte 0x82, 0xF3, 0xFF, 0x09, 0x86, 0xF3, 0x04, 0x0A, 0x8A, 0xF3, 0x09, 0x0A, 0x8E, 0xF3, 0x0E, 0x0A - .byte 0x92, 0xF3, 0x13, 0x0A, 0x96, 0xF3, 0x18, 0x0A, 0x9A, 0xF3, 0x1D, 0x0A, 0x9E, 0xF3, 0x22, 0x0A - .byte 0xA2, 0xF3, 0x26, 0x0A, 0xA6, 0xF3, 0x2B, 0x0A, 0xAA, 0xF3, 0x30, 0x0A, 0xAE, 0xF3, 0x35, 0x0A - .byte 0xB2, 0xF3, 0x3A, 0x0A, 0xB6, 0xF3, 0x3F, 0x0A, 0xBA, 0xF3, 0x44, 0x0A, 0xBE, 0xF3, 0x48, 0x0A - .byte 0xC2, 0xF3, 0x4D, 0x0A, 0xC6, 0xF3, 0x52, 0x0A, 0xCA, 0xF3, 0x57, 0x0A, 0xCE, 0xF3, 0x5C, 0x0A - .byte 0xD2, 0xF3, 0x60, 0x0A, 0xD6, 0xF3, 0x65, 0x0A, 0xDA, 0xF3, 0x6A, 0x0A, 0xDE, 0xF3, 0x6F, 0x0A - .byte 0xE2, 0xF3, 0x73, 0x0A, 0xE7, 0xF3, 0x78, 0x0A, 0xEB, 0xF3, 0x7D, 0x0A, 0xEF, 0xF3, 0x82, 0x0A - .byte 0xF3, 0xF3, 0x86, 0x0A, 0xF7, 0xF3, 0x8B, 0x0A, 0xFB, 0xF3, 0x90, 0x0A, 0xFF, 0xF3, 0x95, 0x0A - .byte 0x04, 0xF4, 0x99, 0x0A, 0x08, 0xF4, 0x9E, 0x0A, 0x0C, 0xF4, 0xA3, 0x0A, 0x10, 0xF4, 0xA7, 0x0A - .byte 0x14, 0xF4, 0xAC, 0x0A, 0x18, 0xF4, 0xB1, 0x0A, 0x1D, 0xF4, 0xB5, 0x0A, 0x21, 0xF4, 0xBA, 0x0A - .byte 0x25, 0xF4, 0xBF, 0x0A, 0x29, 0xF4, 0xC3, 0x0A, 0x2E, 0xF4, 0xC8, 0x0A, 0x32, 0xF4, 0xCD, 0x0A - .byte 0x36, 0xF4, 0xD1, 0x0A, 0x3A, 0xF4, 0xD6, 0x0A, 0x3F, 0xF4, 0xDB, 0x0A, 0x43, 0xF4, 0xDF, 0x0A - .byte 0x47, 0xF4, 0xE4, 0x0A, 0x4B, 0xF4, 0xE8, 0x0A, 0x50, 0xF4, 0xED, 0x0A, 0x54, 0xF4, 0xF2, 0x0A - .byte 0x58, 0xF4, 0xF6, 0x0A, 0x5D, 0xF4, 0xFB, 0x0A, 0x61, 0xF4, 0xFF, 0x0A, 0x65, 0xF4, 0x04, 0x0B - .byte 0x69, 0xF4, 0x08, 0x0B, 0x6E, 0xF4, 0x0D, 0x0B, 0x72, 0xF4, 0x11, 0x0B, 0x77, 0xF4, 0x16, 0x0B - .byte 0x7B, 0xF4, 0x1B, 0x0B, 0x7F, 0xF4, 0x1F, 0x0B, 0x84, 0xF4, 0x24, 0x0B, 0x88, 0xF4, 0x28, 0x0B - .byte 0x8C, 0xF4, 0x2D, 0x0B, 0x91, 0xF4, 0x31, 0x0B, 0x95, 0xF4, 0x36, 0x0B, 0x9A, 0xF4, 0x3A, 0x0B - .byte 0x9E, 0xF4, 0x3E, 0x0B, 0xA2, 0xF4, 0x43, 0x0B, 0xA7, 0xF4, 0x47, 0x0B, 0xAB, 0xF4, 0x4C, 0x0B - .byte 0xB0, 0xF4, 0x50, 0x0B, 0xB4, 0xF4, 0x55, 0x0B, 0xB9, 0xF4, 0x59, 0x0B, 0xBD, 0xF4, 0x5E, 0x0B - .byte 0xC2, 0xF4, 0x62, 0x0B, 0xC6, 0xF4, 0x66, 0x0B, 0xCA, 0xF4, 0x6B, 0x0B, 0xCF, 0xF4, 0x6F, 0x0B - .byte 0xD3, 0xF4, 0x74, 0x0B, 0xD8, 0xF4, 0x78, 0x0B, 0xDC, 0xF4, 0x7C, 0x0B, 0xE1, 0xF4, 0x81, 0x0B - .byte 0xE5, 0xF4, 0x85, 0x0B, 0xEA, 0xF4, 0x89, 0x0B, 0xEF, 0xF4, 0x8E, 0x0B, 0xF3, 0xF4, 0x92, 0x0B - .byte 0xF8, 0xF4, 0x97, 0x0B, 0xFC, 0xF4, 0x9B, 0x0B, 0x01, 0xF5, 0x9F, 0x0B, 0x05, 0xF5, 0xA3, 0x0B - .byte 0x0A, 0xF5, 0xA8, 0x0B, 0x0E, 0xF5, 0xAC, 0x0B, 0x13, 0xF5, 0xB0, 0x0B, 0x18, 0xF5, 0xB5, 0x0B - .byte 0x1C, 0xF5, 0xB9, 0x0B, 0x21, 0xF5, 0xBD, 0x0B, 0x25, 0xF5, 0xC1, 0x0B, 0x2A, 0xF5, 0xC6, 0x0B - .byte 0x2F, 0xF5, 0xCA, 0x0B, 0x33, 0xF5, 0xCE, 0x0B, 0x38, 0xF5, 0xD2, 0x0B, 0x3D, 0xF5, 0xD7, 0x0B - .byte 0x41, 0xF5, 0xDB, 0x0B, 0x46, 0xF5, 0xDF, 0x0B, 0x4B, 0xF5, 0xE3, 0x0B, 0x4F, 0xF5, 0xE8, 0x0B - .byte 0x54, 0xF5, 0xEC, 0x0B, 0x59, 0xF5, 0xF0, 0x0B, 0x5D, 0xF5, 0xF4, 0x0B, 0x62, 0xF5, 0xF8, 0x0B - .byte 0x67, 0xF5, 0xFC, 0x0B, 0x6B, 0xF5, 0x01, 0x0C, 0x70, 0xF5, 0x05, 0x0C, 0x75, 0xF5, 0x09, 0x0C - .byte 0x7A, 0xF5, 0x0D, 0x0C, 0x7E, 0xF5, 0x11, 0x0C, 0x83, 0xF5, 0x15, 0x0C, 0x88, 0xF5, 0x19, 0x0C - .byte 0x8D, 0xF5, 0x1E, 0x0C, 0x91, 0xF5, 0x22, 0x0C, 0x96, 0xF5, 0x26, 0x0C, 0x9B, 0xF5, 0x2A, 0x0C - .byte 0xA0, 0xF5, 0x2E, 0x0C, 0xA4, 0xF5, 0x32, 0x0C, 0xA9, 0xF5, 0x36, 0x0C, 0xAE, 0xF5, 0x3A, 0x0C - .byte 0xB3, 0xF5, 0x3E, 0x0C, 0xB8, 0xF5, 0x42, 0x0C, 0xBC, 0xF5, 0x46, 0x0C, 0xC1, 0xF5, 0x4A, 0x0C - .byte 0xC6, 0xF5, 0x4E, 0x0C, 0xCB, 0xF5, 0x52, 0x0C, 0xD0, 0xF5, 0x56, 0x0C, 0xD5, 0xF5, 0x5A, 0x0C - .byte 0xDA, 0xF5, 0x5E, 0x0C, 0xDE, 0xF5, 0x62, 0x0C, 0xE3, 0xF5, 0x66, 0x0C, 0xE8, 0xF5, 0x6A, 0x0C - .byte 0xED, 0xF5, 0x6E, 0x0C, 0xF2, 0xF5, 0x72, 0x0C, 0xF7, 0xF5, 0x76, 0x0C, 0xFC, 0xF5, 0x7A, 0x0C - .byte 0x01, 0xF6, 0x7E, 0x0C, 0x05, 0xF6, 0x82, 0x0C, 0x0A, 0xF6, 0x86, 0x0C, 0x0F, 0xF6, 0x8A, 0x0C - .byte 0x14, 0xF6, 0x8E, 0x0C, 0x19, 0xF6, 0x91, 0x0C, 0x1E, 0xF6, 0x95, 0x0C, 0x23, 0xF6, 0x99, 0x0C - .byte 0x28, 0xF6, 0x9D, 0x0C, 0x2D, 0xF6, 0xA1, 0x0C, 0x32, 0xF6, 0xA5, 0x0C, 0x37, 0xF6, 0xA9, 0x0C - .byte 0x3C, 0xF6, 0xAC, 0x0C, 0x41, 0xF6, 0xB0, 0x0C, 0x46, 0xF6, 0xB4, 0x0C, 0x4B, 0xF6, 0xB8, 0x0C - .byte 0x50, 0xF6, 0xBC, 0x0C, 0x55, 0xF6, 0xC0, 0x0C, 0x5A, 0xF6, 0xC3, 0x0C, 0x5F, 0xF6, 0xC7, 0x0C - .byte 0x64, 0xF6, 0xCB, 0x0C, 0x69, 0xF6, 0xCF, 0x0C, 0x6E, 0xF6, 0xD2, 0x0C, 0x73, 0xF6, 0xD6, 0x0C - .byte 0x78, 0xF6, 0xDA, 0x0C, 0x7D, 0xF6, 0xDE, 0x0C, 0x82, 0xF6, 0xE1, 0x0C, 0x87, 0xF6, 0xE5, 0x0C - .byte 0x8C, 0xF6, 0xE9, 0x0C, 0x91, 0xF6, 0xED, 0x0C, 0x96, 0xF6, 0xF0, 0x0C, 0x9B, 0xF6, 0xF4, 0x0C - .byte 0xA1, 0xF6, 0xF8, 0x0C, 0xA6, 0xF6, 0xFB, 0x0C, 0xAB, 0xF6, 0xFF, 0x0C, 0xB0, 0xF6, 0x03, 0x0D - .byte 0xB5, 0xF6, 0x06, 0x0D, 0xBA, 0xF6, 0x0A, 0x0D, 0xBF, 0xF6, 0x0E, 0x0D, 0xC4, 0xF6, 0x11, 0x0D - .byte 0xC9, 0xF6, 0x15, 0x0D, 0xCF, 0xF6, 0x18, 0x0D, 0xD4, 0xF6, 0x1C, 0x0D, 0xD9, 0xF6, 0x20, 0x0D - .byte 0xDE, 0xF6, 0x23, 0x0D, 0xE3, 0xF6, 0x27, 0x0D, 0xE8, 0xF6, 0x2A, 0x0D, 0xEE, 0xF6, 0x2E, 0x0D - .byte 0xF3, 0xF6, 0x32, 0x0D, 0xF8, 0xF6, 0x35, 0x0D, 0xFD, 0xF6, 0x39, 0x0D, 0x02, 0xF7, 0x3C, 0x0D - .byte 0x08, 0xF7, 0x40, 0x0D, 0x0D, 0xF7, 0x43, 0x0D, 0x12, 0xF7, 0x47, 0x0D, 0x17, 0xF7, 0x4A, 0x0D - .byte 0x1C, 0xF7, 0x4E, 0x0D, 0x22, 0xF7, 0x51, 0x0D, 0x27, 0xF7, 0x55, 0x0D, 0x2C, 0xF7, 0x58, 0x0D - .byte 0x31, 0xF7, 0x5C, 0x0D, 0x37, 0xF7, 0x5F, 0x0D, 0x3C, 0xF7, 0x62, 0x0D, 0x41, 0xF7, 0x66, 0x0D - .byte 0x46, 0xF7, 0x69, 0x0D, 0x4C, 0xF7, 0x6D, 0x0D, 0x51, 0xF7, 0x70, 0x0D, 0x56, 0xF7, 0x74, 0x0D - .byte 0x5B, 0xF7, 0x77, 0x0D, 0x61, 0xF7, 0x7A, 0x0D, 0x66, 0xF7, 0x7E, 0x0D, 0x6B, 0xF7, 0x81, 0x0D - .byte 0x71, 0xF7, 0x85, 0x0D, 0x76, 0xF7, 0x88, 0x0D, 0x7B, 0xF7, 0x8B, 0x0D, 0x81, 0xF7, 0x8F, 0x0D - .byte 0x86, 0xF7, 0x92, 0x0D, 0x8B, 0xF7, 0x95, 0x0D, 0x91, 0xF7, 0x99, 0x0D, 0x96, 0xF7, 0x9C, 0x0D - .byte 0x9B, 0xF7, 0x9F, 0x0D, 0xA1, 0xF7, 0xA2, 0x0D, 0xA6, 0xF7, 0xA6, 0x0D, 0xAB, 0xF7, 0xA9, 0x0D - .byte 0xB1, 0xF7, 0xAC, 0x0D, 0xB6, 0xF7, 0xB0, 0x0D, 0xBB, 0xF7, 0xB3, 0x0D, 0xC1, 0xF7, 0xB6, 0x0D - .byte 0xC6, 0xF7, 0xB9, 0x0D, 0xCC, 0xF7, 0xBC, 0x0D, 0xD1, 0xF7, 0xC0, 0x0D, 0xD6, 0xF7, 0xC3, 0x0D - .byte 0xDC, 0xF7, 0xC6, 0x0D, 0xE1, 0xF7, 0xC9, 0x0D, 0xE7, 0xF7, 0xCC, 0x0D, 0xEC, 0xF7, 0xD0, 0x0D - .byte 0xF2, 0xF7, 0xD3, 0x0D, 0xF7, 0xF7, 0xD6, 0x0D, 0xFC, 0xF7, 0xD9, 0x0D, 0x02, 0xF8, 0xDC, 0x0D - .byte 0x07, 0xF8, 0xDF, 0x0D, 0x0D, 0xF8, 0xE3, 0x0D, 0x12, 0xF8, 0xE6, 0x0D, 0x18, 0xF8, 0xE9, 0x0D - .byte 0x1D, 0xF8, 0xEC, 0x0D, 0x23, 0xF8, 0xEF, 0x0D, 0x28, 0xF8, 0xF2, 0x0D, 0x2E, 0xF8, 0xF5, 0x0D - .byte 0x33, 0xF8, 0xF8, 0x0D, 0x38, 0xF8, 0xFB, 0x0D, 0x3E, 0xF8, 0xFE, 0x0D, 0x43, 0xF8, 0x01, 0x0E - .byte 0x49, 0xF8, 0x04, 0x0E, 0x4E, 0xF8, 0x07, 0x0E, 0x54, 0xF8, 0x0A, 0x0E, 0x5A, 0xF8, 0x0D, 0x0E - .byte 0x5F, 0xF8, 0x10, 0x0E, 0x65, 0xF8, 0x13, 0x0E, 0x6A, 0xF8, 0x16, 0x0E, 0x70, 0xF8, 0x19, 0x0E - .byte 0x75, 0xF8, 0x1C, 0x0E, 0x7B, 0xF8, 0x1F, 0x0E, 0x80, 0xF8, 0x22, 0x0E, 0x86, 0xF8, 0x25, 0x0E - .byte 0x8B, 0xF8, 0x28, 0x0E, 0x91, 0xF8, 0x2B, 0x0E, 0x96, 0xF8, 0x2E, 0x0E, 0x9C, 0xF8, 0x31, 0x0E - .byte 0xA2, 0xF8, 0x34, 0x0E, 0xA7, 0xF8, 0x37, 0x0E, 0xAD, 0xF8, 0x3A, 0x0E, 0xB2, 0xF8, 0x3C, 0x0E - .byte 0xB8, 0xF8, 0x3F, 0x0E, 0xBE, 0xF8, 0x42, 0x0E, 0xC3, 0xF8, 0x45, 0x0E, 0xC9, 0xF8, 0x48, 0x0E - .byte 0xCE, 0xF8, 0x4B, 0x0E, 0xD4, 0xF8, 0x4D, 0x0E, 0xDA, 0xF8, 0x50, 0x0E, 0xDF, 0xF8, 0x53, 0x0E - .byte 0xE5, 0xF8, 0x56, 0x0E, 0xEB, 0xF8, 0x59, 0x0E, 0xF0, 0xF8, 0x5B, 0x0E, 0xF6, 0xF8, 0x5E, 0x0E - .byte 0xFB, 0xF8, 0x61, 0x0E, 0x01, 0xF9, 0x64, 0x0E, 0x07, 0xF9, 0x66, 0x0E, 0x0C, 0xF9, 0x69, 0x0E - .byte 0x12, 0xF9, 0x6C, 0x0E, 0x18, 0xF9, 0x6F, 0x0E, 0x1D, 0xF9, 0x71, 0x0E, 0x23, 0xF9, 0x74, 0x0E - .byte 0x29, 0xF9, 0x77, 0x0E, 0x2E, 0xF9, 0x79, 0x0E, 0x34, 0xF9, 0x7C, 0x0E, 0x3A, 0xF9, 0x7F, 0x0E - .byte 0x3F, 0xF9, 0x81, 0x0E, 0x45, 0xF9, 0x84, 0x0E, 0x4B, 0xF9, 0x87, 0x0E, 0x51, 0xF9, 0x89, 0x0E - .byte 0x56, 0xF9, 0x8C, 0x0E, 0x5C, 0xF9, 0x8F, 0x0E, 0x62, 0xF9, 0x91, 0x0E, 0x67, 0xF9, 0x94, 0x0E - .byte 0x6D, 0xF9, 0x96, 0x0E, 0x73, 0xF9, 0x99, 0x0E, 0x79, 0xF9, 0x9B, 0x0E, 0x7E, 0xF9, 0x9E, 0x0E - .byte 0x84, 0xF9, 0xA1, 0x0E, 0x8A, 0xF9, 0xA3, 0x0E, 0x90, 0xF9, 0xA6, 0x0E, 0x95, 0xF9, 0xA8, 0x0E - .byte 0x9B, 0xF9, 0xAB, 0x0E, 0xA1, 0xF9, 0xAD, 0x0E, 0xA7, 0xF9, 0xB0, 0x0E, 0xAC, 0xF9, 0xB2, 0x0E - .byte 0xB2, 0xF9, 0xB5, 0x0E, 0xB8, 0xF9, 0xB7, 0x0E, 0xBE, 0xF9, 0xBA, 0x0E, 0xC4, 0xF9, 0xBC, 0x0E - .byte 0xC9, 0xF9, 0xBF, 0x0E, 0xCF, 0xF9, 0xC1, 0x0E, 0xD5, 0xF9, 0xC3, 0x0E, 0xDB, 0xF9, 0xC6, 0x0E - .byte 0xE1, 0xF9, 0xC8, 0x0E, 0xE6, 0xF9, 0xCB, 0x0E, 0xEC, 0xF9, 0xCD, 0x0E, 0xF2, 0xF9, 0xCF, 0x0E - .byte 0xF8, 0xF9, 0xD2, 0x0E, 0xFE, 0xF9, 0xD4, 0x0E, 0x03, 0xFA, 0xD6, 0x0E, 0x09, 0xFA, 0xD9, 0x0E - .byte 0x0F, 0xFA, 0xDB, 0x0E, 0x15, 0xFA, 0xDD, 0x0E, 0x1B, 0xFA, 0xE0, 0x0E, 0x21, 0xFA, 0xE2, 0x0E - .byte 0x26, 0xFA, 0xE4, 0x0E, 0x2C, 0xFA, 0xE7, 0x0E, 0x32, 0xFA, 0xE9, 0x0E, 0x38, 0xFA, 0xEB, 0x0E - .byte 0x3E, 0xFA, 0xEE, 0x0E, 0x44, 0xFA, 0xF0, 0x0E, 0x4A, 0xFA, 0xF2, 0x0E, 0x4F, 0xFA, 0xF4, 0x0E - .byte 0x55, 0xFA, 0xF7, 0x0E, 0x5B, 0xFA, 0xF9, 0x0E, 0x61, 0xFA, 0xFB, 0x0E, 0x67, 0xFA, 0xFD, 0x0E - .byte 0x6D, 0xFA, 0xFF, 0x0E, 0x73, 0xFA, 0x02, 0x0F, 0x79, 0xFA, 0x04, 0x0F, 0x7F, 0xFA, 0x06, 0x0F - .byte 0x84, 0xFA, 0x08, 0x0F, 0x8A, 0xFA, 0x0A, 0x0F, 0x90, 0xFA, 0x0C, 0x0F, 0x96, 0xFA, 0x0E, 0x0F - .byte 0x9C, 0xFA, 0x11, 0x0F, 0xA2, 0xFA, 0x13, 0x0F, 0xA8, 0xFA, 0x15, 0x0F, 0xAE, 0xFA, 0x17, 0x0F - .byte 0xB4, 0xFA, 0x19, 0x0F, 0xBA, 0xFA, 0x1B, 0x0F, 0xC0, 0xFA, 0x1D, 0x0F, 0xC6, 0xFA, 0x1F, 0x0F - .byte 0xCC, 0xFA, 0x21, 0x0F, 0xD1, 0xFA, 0x23, 0x0F, 0xD7, 0xFA, 0x25, 0x0F, 0xDD, 0xFA, 0x27, 0x0F - .byte 0xE3, 0xFA, 0x29, 0x0F, 0xE9, 0xFA, 0x2B, 0x0F, 0xEF, 0xFA, 0x2D, 0x0F, 0xF5, 0xFA, 0x2F, 0x0F - .byte 0xFB, 0xFA, 0x31, 0x0F, 0x01, 0xFB, 0x33, 0x0F, 0x07, 0xFB, 0x35, 0x0F, 0x0D, 0xFB, 0x37, 0x0F - .byte 0x13, 0xFB, 0x39, 0x0F, 0x19, 0xFB, 0x3B, 0x0F, 0x1F, 0xFB, 0x3D, 0x0F, 0x25, 0xFB, 0x3F, 0x0F - .byte 0x2B, 0xFB, 0x41, 0x0F, 0x31, 0xFB, 0x43, 0x0F, 0x37, 0xFB, 0x45, 0x0F, 0x3D, 0xFB, 0x46, 0x0F - .byte 0x43, 0xFB, 0x48, 0x0F, 0x49, 0xFB, 0x4A, 0x0F, 0x4F, 0xFB, 0x4C, 0x0F, 0x55, 0xFB, 0x4E, 0x0F - .byte 0x5B, 0xFB, 0x50, 0x0F, 0x61, 0xFB, 0x51, 0x0F, 0x67, 0xFB, 0x53, 0x0F, 0x6D, 0xFB, 0x55, 0x0F - .byte 0x73, 0xFB, 0x57, 0x0F, 0x79, 0xFB, 0x59, 0x0F, 0x7F, 0xFB, 0x5A, 0x0F, 0x85, 0xFB, 0x5C, 0x0F - .byte 0x8B, 0xFB, 0x5E, 0x0F, 0x91, 0xFB, 0x60, 0x0F, 0x97, 0xFB, 0x61, 0x0F, 0x9D, 0xFB, 0x63, 0x0F - .byte 0xA3, 0xFB, 0x65, 0x0F, 0xA9, 0xFB, 0x67, 0x0F, 0xAF, 0xFB, 0x68, 0x0F, 0xB5, 0xFB, 0x6A, 0x0F - .byte 0xBC, 0xFB, 0x6C, 0x0F, 0xC2, 0xFB, 0x6D, 0x0F, 0xC8, 0xFB, 0x6F, 0x0F, 0xCE, 0xFB, 0x71, 0x0F - .byte 0xD4, 0xFB, 0x72, 0x0F, 0xDA, 0xFB, 0x74, 0x0F, 0xE0, 0xFB, 0x76, 0x0F, 0xE6, 0xFB, 0x77, 0x0F - .byte 0xEC, 0xFB, 0x79, 0x0F, 0xF2, 0xFB, 0x7A, 0x0F, 0xF8, 0xFB, 0x7C, 0x0F, 0xFE, 0xFB, 0x7D, 0x0F - .byte 0x04, 0xFC, 0x7F, 0x0F, 0x0A, 0xFC, 0x81, 0x0F, 0x11, 0xFC, 0x82, 0x0F, 0x17, 0xFC, 0x84, 0x0F - .byte 0x1D, 0xFC, 0x85, 0x0F, 0x23, 0xFC, 0x87, 0x0F, 0x29, 0xFC, 0x88, 0x0F, 0x2F, 0xFC, 0x8A, 0x0F - .byte 0x35, 0xFC, 0x8B, 0x0F, 0x3B, 0xFC, 0x8D, 0x0F, 0x41, 0xFC, 0x8E, 0x0F, 0x47, 0xFC, 0x90, 0x0F - .byte 0x4E, 0xFC, 0x91, 0x0F, 0x54, 0xFC, 0x93, 0x0F, 0x5A, 0xFC, 0x94, 0x0F, 0x60, 0xFC, 0x95, 0x0F - .byte 0x66, 0xFC, 0x97, 0x0F, 0x6C, 0xFC, 0x98, 0x0F, 0x72, 0xFC, 0x9A, 0x0F, 0x78, 0xFC, 0x9B, 0x0F - .byte 0x7F, 0xFC, 0x9C, 0x0F, 0x85, 0xFC, 0x9E, 0x0F, 0x8B, 0xFC, 0x9F, 0x0F, 0x91, 0xFC, 0xA1, 0x0F - .byte 0x97, 0xFC, 0xA2, 0x0F, 0x9D, 0xFC, 0xA3, 0x0F, 0xA3, 0xFC, 0xA5, 0x0F, 0xAA, 0xFC, 0xA6, 0x0F - .byte 0xB0, 0xFC, 0xA7, 0x0F, 0xB6, 0xFC, 0xA8, 0x0F, 0xBC, 0xFC, 0xAA, 0x0F, 0xC2, 0xFC, 0xAB, 0x0F - .byte 0xC8, 0xFC, 0xAC, 0x0F, 0xCE, 0xFC, 0xAE, 0x0F, 0xD5, 0xFC, 0xAF, 0x0F, 0xDB, 0xFC, 0xB0, 0x0F - .byte 0xE1, 0xFC, 0xB1, 0x0F, 0xE7, 0xFC, 0xB3, 0x0F, 0xED, 0xFC, 0xB4, 0x0F, 0xF3, 0xFC, 0xB5, 0x0F - .byte 0xFA, 0xFC, 0xB6, 0x0F, 0x00, 0xFD, 0xB7, 0x0F, 0x06, 0xFD, 0xB8, 0x0F, 0x0C, 0xFD, 0xBA, 0x0F - .byte 0x12, 0xFD, 0xBB, 0x0F, 0x18, 0xFD, 0xBC, 0x0F, 0x1F, 0xFD, 0xBD, 0x0F, 0x25, 0xFD, 0xBE, 0x0F - .byte 0x2B, 0xFD, 0xBF, 0x0F, 0x31, 0xFD, 0xC0, 0x0F, 0x37, 0xFD, 0xC2, 0x0F, 0x3E, 0xFD, 0xC3, 0x0F - .byte 0x44, 0xFD, 0xC4, 0x0F, 0x4A, 0xFD, 0xC5, 0x0F, 0x50, 0xFD, 0xC6, 0x0F, 0x56, 0xFD, 0xC7, 0x0F - .byte 0x5D, 0xFD, 0xC8, 0x0F, 0x63, 0xFD, 0xC9, 0x0F, 0x69, 0xFD, 0xCA, 0x0F, 0x6F, 0xFD, 0xCB, 0x0F - .byte 0x75, 0xFD, 0xCC, 0x0F, 0x7C, 0xFD, 0xCD, 0x0F, 0x82, 0xFD, 0xCE, 0x0F, 0x88, 0xFD, 0xCF, 0x0F - .byte 0x8E, 0xFD, 0xD0, 0x0F, 0x94, 0xFD, 0xD1, 0x0F, 0x9B, 0xFD, 0xD2, 0x0F, 0xA1, 0xFD, 0xD3, 0x0F - .byte 0xA7, 0xFD, 0xD4, 0x0F, 0xAD, 0xFD, 0xD5, 0x0F, 0xB3, 0xFD, 0xD5, 0x0F, 0xBA, 0xFD, 0xD6, 0x0F - .byte 0xC0, 0xFD, 0xD7, 0x0F, 0xC6, 0xFD, 0xD8, 0x0F, 0xCC, 0xFD, 0xD9, 0x0F, 0xD3, 0xFD, 0xDA, 0x0F - .byte 0xD9, 0xFD, 0xDB, 0x0F, 0xDF, 0xFD, 0xDC, 0x0F, 0xE5, 0xFD, 0xDC, 0x0F, 0xEB, 0xFD, 0xDD, 0x0F - .byte 0xF2, 0xFD, 0xDE, 0x0F, 0xF8, 0xFD, 0xDF, 0x0F, 0xFE, 0xFD, 0xE0, 0x0F, 0x04, 0xFE, 0xE0, 0x0F - .byte 0x0B, 0xFE, 0xE1, 0x0F, 0x11, 0xFE, 0xE2, 0x0F, 0x17, 0xFE, 0xE3, 0x0F, 0x1D, 0xFE, 0xE3, 0x0F - .byte 0x24, 0xFE, 0xE4, 0x0F, 0x2A, 0xFE, 0xE5, 0x0F, 0x30, 0xFE, 0xE6, 0x0F, 0x36, 0xFE, 0xE6, 0x0F - .byte 0x3D, 0xFE, 0xE7, 0x0F, 0x43, 0xFE, 0xE8, 0x0F, 0x49, 0xFE, 0xE8, 0x0F, 0x4F, 0xFE, 0xE9, 0x0F - .byte 0x56, 0xFE, 0xEA, 0x0F, 0x5C, 0xFE, 0xEA, 0x0F, 0x62, 0xFE, 0xEB, 0x0F, 0x68, 0xFE, 0xEC, 0x0F - .byte 0x6F, 0xFE, 0xEC, 0x0F, 0x75, 0xFE, 0xED, 0x0F, 0x7B, 0xFE, 0xED, 0x0F, 0x81, 0xFE, 0xEE, 0x0F - .byte 0x88, 0xFE, 0xEF, 0x0F, 0x8E, 0xFE, 0xEF, 0x0F, 0x94, 0xFE, 0xF0, 0x0F, 0x9A, 0xFE, 0xF0, 0x0F - .byte 0xA1, 0xFE, 0xF1, 0x0F, 0xA7, 0xFE, 0xF1, 0x0F, 0xAD, 0xFE, 0xF2, 0x0F, 0xB3, 0xFE, 0xF2, 0x0F - .byte 0xBA, 0xFE, 0xF3, 0x0F, 0xC0, 0xFE, 0xF3, 0x0F, 0xC6, 0xFE, 0xF4, 0x0F, 0xCC, 0xFE, 0xF4, 0x0F - .byte 0xD3, 0xFE, 0xF5, 0x0F, 0xD9, 0xFE, 0xF5, 0x0F, 0xDF, 0xFE, 0xF6, 0x0F, 0xE5, 0xFE, 0xF6, 0x0F - .byte 0xEC, 0xFE, 0xF7, 0x0F, 0xF2, 0xFE, 0xF7, 0x0F, 0xF8, 0xFE, 0xF8, 0x0F, 0xFF, 0xFE, 0xF8, 0x0F - .byte 0x05, 0xFF, 0xF8, 0x0F, 0x0B, 0xFF, 0xF9, 0x0F, 0x11, 0xFF, 0xF9, 0x0F, 0x18, 0xFF, 0xF9, 0x0F - .byte 0x1E, 0xFF, 0xFA, 0x0F, 0x24, 0xFF, 0xFA, 0x0F, 0x2A, 0xFF, 0xFA, 0x0F, 0x31, 0xFF, 0xFB, 0x0F - .byte 0x37, 0xFF, 0xFB, 0x0F, 0x3D, 0xFF, 0xFB, 0x0F, 0x44, 0xFF, 0xFC, 0x0F, 0x4A, 0xFF, 0xFC, 0x0F - .byte 0x50, 0xFF, 0xFC, 0x0F, 0x56, 0xFF, 0xFC, 0x0F, 0x5D, 0xFF, 0xFD, 0x0F, 0x63, 0xFF, 0xFD, 0x0F - .byte 0x69, 0xFF, 0xFD, 0x0F, 0x70, 0xFF, 0xFD, 0x0F, 0x76, 0xFF, 0xFE, 0x0F, 0x7C, 0xFF, 0xFE, 0x0F - .byte 0x82, 0xFF, 0xFE, 0x0F, 0x89, 0xFF, 0xFE, 0x0F, 0x8F, 0xFF, 0xFE, 0x0F, 0x95, 0xFF, 0xFF, 0x0F - .byte 0x9B, 0xFF, 0xFF, 0x0F, 0xA2, 0xFF, 0xFF, 0x0F, 0xA8, 0xFF, 0xFF, 0x0F, 0xAE, 0xFF, 0xFF, 0x0F - .byte 0xB5, 0xFF, 0xFF, 0x0F, 0xBB, 0xFF, 0xFF, 0x0F, 0xC1, 0xFF, 0x00, 0x10, 0xC7, 0xFF, 0x00, 0x10 - .byte 0xCE, 0xFF, 0x00, 0x10, 0xD4, 0xFF, 0x00, 0x10, 0xDA, 0xFF, 0x00, 0x10, 0xE1, 0xFF, 0x00, 0x10 - .byte 0xE7, 0xFF, 0x00, 0x10, 0xED, 0xFF, 0x00, 0x10, 0xF3, 0xFF, 0x00, 0x10, 0xFA, 0xFF, 0x00, 0x10 - .byte 0x00, 0x00, 0x51, 0x00, 0xA3, 0x00, 0xF4, 0x00, 0x46, 0x01, 0x97, 0x01, 0xE9, 0x01, 0x3A, 0x02 - .byte 0x8B, 0x02, 0xDC, 0x02, 0x2D, 0x03, 0x7E, 0x03, 0xCF, 0x03, 0x20, 0x04, 0x70, 0x04, 0xC1, 0x04 - .byte 0x11, 0x05, 0x61, 0x05, 0xB1, 0x05, 0x01, 0x06, 0x51, 0x06, 0xA0, 0x06, 0xEF, 0x06, 0x3E, 0x07 - .byte 0x8D, 0x07, 0xDC, 0x07, 0x2A, 0x08, 0x78, 0x08, 0xC6, 0x08, 0x14, 0x09, 0x61, 0x09, 0xAE, 0x09 - .byte 0xFB, 0x09, 0x48, 0x0A, 0x94, 0x0A, 0xE0, 0x0A, 0x2C, 0x0B, 0x77, 0x0B, 0xC2, 0x0B, 0x0D, 0x0C - .byte 0x57, 0x0C, 0xA1, 0x0C, 0xEB, 0x0C, 0x34, 0x0D, 0x7D, 0x0D, 0xC6, 0x0D, 0x0F, 0x0E, 0x56, 0x0E - .byte 0x9E, 0x0E, 0xE5, 0x0E, 0x2C, 0x0F, 0x73, 0x0F, 0xB9, 0x0F, 0xFF, 0x0F, 0x44, 0x10, 0x89, 0x10 - .byte 0xCE, 0x10, 0x12, 0x11, 0x56, 0x11, 0x99, 0x11, 0xDC, 0x11, 0x1F, 0x12, 0x61, 0x12, 0xA3, 0x12 - .byte 0xE4, 0x12, 0x25, 0x13, 0x66, 0x13, 0xA6, 0x13, 0xE6, 0x13, 0x25, 0x14, 0x64, 0x14, 0xA2, 0x14 - .byte 0xE0, 0x14, 0x1E, 0x15, 0x5B, 0x15, 0x98, 0x15, 0xD5, 0x15, 0x11, 0x16, 0x4C, 0x16, 0x88, 0x16 - .byte 0xC2, 0x16, 0xFD, 0x16, 0x37, 0x17, 0x70, 0x17, 0xAA, 0x17, 0xE2, 0x17, 0x1B, 0x18, 0x53, 0x18 - .byte 0x8A, 0x18, 0xC1, 0x18, 0xF8, 0x18, 0x2E, 0x19, 0x64, 0x19, 0x9A, 0x19, 0xCF, 0x19, 0x04, 0x1A - .byte 0x38, 0x1A, 0x6C, 0x1A, 0x9F, 0x1A, 0xD3, 0x1A, 0x05, 0x1B, 0x38, 0x1B, 0x6A, 0x1B, 0x9C, 0x1B - .byte 0xCD, 0x1B, 0xFE, 0x1B, 0x2E, 0x1C, 0x5E, 0x1C, 0x8E, 0x1C, 0xBE, 0x1C, 0xED, 0x1C, 0x1B, 0x1D - .byte 0x4A, 0x1D, 0x78, 0x1D, 0xA5, 0x1D, 0xD3, 0x1D, 0xFF, 0x1D, 0x2C, 0x1E, 0x58, 0x1E, 0x84, 0x1E - .byte 0xB0, 0x1E, 0xDB, 0x1E, 0x06, 0x1F, 0x30, 0x1F, 0x5A, 0x1F, 0x84, 0x1F, 0xAE, 0x1F, 0xD7, 0x1F - .byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x80, 0x68, 0x90, 0x68, 0x80, 0x68, 0x94, 0x68, 0x00, 0x00 - .byte 0x90, 0x68, 0x80, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00 - .byte 0x20, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x40, 0x68, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x68, 0x40, 0x68, 0x20, 0x00, 0x20, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68 - .byte 0x00, 0x00, 0x00, 0x00, 0x60, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x60, 0x68, 0x20, 0x00 - .byte 0x20, 0x68, 0x60, 0x68, 0x20, 0x00, 0x00, 0x68, 0x60, 0x68, 0x40, 0x00, 0x40, 0x68, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x68, 0x40, 0x68, 0x20, 0x00, 0x20, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x2E, 0xFD, 0x2F, 0xFD, 0x75, 0xFD, 0xA7, 0xFD, 0xCE, 0xFD - .byte 0xEE, 0xFD, 0x09, 0xFE, 0x20, 0xFE, 0x34, 0xFE, 0x46, 0xFE, 0x57, 0xFE, 0x66, 0xFE, 0x74, 0xFE - .byte 0x81, 0xFE, 0x8D, 0xFE, 0x98, 0xFE, 0xA3, 0xFE, 0xAD, 0xFE, 0xB6, 0xFE, 0xBF, 0xFE, 0xC7, 0xFE - .byte 0xCF, 0xFE, 0xD7, 0xFE, 0xDF, 0xFE, 0xE6, 0xFE, 0xEC, 0xFE, 0xF3, 0xFE, 0xF9, 0xFE, 0xFF, 0xFE - .byte 0x05, 0xFF, 0x0B, 0xFF, 0x11, 0xFF, 0x16, 0xFF, 0x1B, 0xFF, 0x20, 0xFF, 0x25, 0xFF, 0x2A, 0xFF - .byte 0x2E, 0xFF, 0x33, 0xFF, 0x37, 0xFF, 0x3C, 0xFF, 0x40, 0xFF, 0x44, 0xFF, 0x48, 0xFF, 0x4C, 0xFF - .byte 0x50, 0xFF, 0x53, 0xFF, 0x57, 0xFF, 0x5B, 0xFF, 0x5E, 0xFF, 0x62, 0xFF, 0x65, 0xFF, 0x68, 0xFF - .byte 0x6B, 0xFF, 0x6F, 0xFF, 0x72, 0xFF, 0x75, 0xFF, 0x78, 0xFF, 0x7B, 0xFF, 0x7E, 0xFF, 0x81, 0xFF - .byte 0x83, 0xFF, 0x86, 0xFF, 0x89, 0xFF, 0x8C, 0xFF, 0x8E, 0xFF, 0x91, 0xFF, 0x93, 0xFF, 0x96, 0xFF - .byte 0x99, 0xFF, 0x9B, 0xFF, 0x9D, 0xFF, 0xA0, 0xFF, 0xA2, 0xFF, 0xA5, 0xFF, 0xA7, 0xFF, 0xA9, 0xFF - .byte 0xAB, 0xFF, 0xAE, 0xFF, 0xB0, 0xFF, 0xB2, 0xFF, 0xB4, 0xFF, 0xB6, 0xFF, 0xB8, 0xFF, 0xBA, 0xFF - .byte 0xBC, 0xFF, 0xBE, 0xFF, 0xC0, 0xFF, 0xC2, 0xFF, 0xC4, 0xFF, 0xC6, 0xFF, 0xC8, 0xFF, 0xCA, 0xFF - .byte 0xCC, 0xFF, 0xCE, 0xFF, 0xCF, 0xFF, 0xD1, 0xFF, 0xD3, 0xFF, 0xD5, 0xFF, 0xD6, 0xFF, 0xD8, 0xFF - .byte 0xDA, 0xFF, 0xDC, 0xFF, 0xDD, 0xFF, 0xDF, 0xFF, 0xE1, 0xFF, 0xE2, 0xFF, 0xE4, 0xFF, 0xE5, 0xFF - .byte 0xE7, 0xFF, 0xE9, 0xFF, 0xEA, 0xFF, 0xEC, 0xFF, 0xED, 0xFF, 0xEF, 0xFF, 0xF0, 0xFF, 0xF2, 0xFF - .byte 0xF3, 0xFF, 0xF5, 0xFF, 0xF6, 0xFF, 0xF8, 0xFF, 0xF9, 0xFF, 0xFA, 0xFF, 0xFC, 0xFF, 0xFD, 0xFF - .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, 0x5B, 0xFE, 0x97, 0xFE, 0xBB, 0xFE, 0xD4, 0xFE, 0xE7, 0xFE - .byte 0xF7, 0xFE, 0x04, 0xFF, 0x10, 0xFF, 0x1A, 0xFF, 0x23, 0xFF, 0x2C, 0xFF, 0x33, 0xFF, 0x3A, 0xFF - .byte 0x40, 0xFF, 0x46, 0xFF, 0x4C, 0xFF, 0x51, 0xFF, 0x56, 0xFF, 0x5B, 0xFF, 0x5F, 0xFF, 0x64, 0xFF - .byte 0x68, 0xFF, 0x6C, 0xFF, 0x6F, 0xFF, 0x73, 0xFF, 0x76, 0xFF, 0x7A, 0xFF, 0x7D, 0xFF, 0x80, 0xFF - .byte 0x83, 0xFF, 0x86, 0xFF, 0x88, 0xFF, 0x8B, 0xFF, 0x8E, 0xFF, 0x90, 0xFF, 0x92, 0xFF, 0x95, 0xFF - .byte 0x97, 0xFF, 0x99, 0xFF, 0x9C, 0xFF, 0x9E, 0xFF, 0xA0, 0xFF, 0xA2, 0xFF, 0xA4, 0xFF, 0xA6, 0xFF - .byte 0xA8, 0xFF, 0xAA, 0xFF, 0xAB, 0xFF, 0xAD, 0xFF, 0xAF, 0xFF, 0xB1, 0xFF, 0xB2, 0xFF, 0xB4, 0xFF - .byte 0xB6, 0xFF, 0xB7, 0xFF, 0xB9, 0xFF, 0xBA, 0xFF, 0xBC, 0xFF, 0xBD, 0xFF, 0xBF, 0xFF, 0xC0, 0xFF - .byte 0xC2, 0xFF, 0xC3, 0xFF, 0xC4, 0xFF, 0xC6, 0xFF, 0xC7, 0xFF, 0xC8, 0xFF, 0xCA, 0xFF, 0xCB, 0xFF - .byte 0xCC, 0xFF, 0xCD, 0xFF, 0xCF, 0xFF, 0xD0, 0xFF, 0xD1, 0xFF, 0xD2, 0xFF, 0xD3, 0xFF, 0xD5, 0xFF - .byte 0xD6, 0xFF, 0xD7, 0xFF, 0xD8, 0xFF, 0xD9, 0xFF, 0xDA, 0xFF, 0xDB, 0xFF, 0xDC, 0xFF, 0xDD, 0xFF - .byte 0xDE, 0xFF, 0xDF, 0xFF, 0xE0, 0xFF, 0xE1, 0xFF, 0xE2, 0xFF, 0xE3, 0xFF, 0xE4, 0xFF, 0xE5, 0xFF - .byte 0xE6, 0xFF, 0xE7, 0xFF, 0xE8, 0xFF, 0xE9, 0xFF, 0xE9, 0xFF, 0xEA, 0xFF, 0xEB, 0xFF, 0xEC, 0xFF - .byte 0xED, 0xFF, 0xEE, 0xFF, 0xEF, 0xFF, 0xEF, 0xFF, 0xF0, 0xFF, 0xF1, 0xFF, 0xF2, 0xFF, 0xF3, 0xFF - .byte 0xF4, 0xFF, 0xF4, 0xFF, 0xF5, 0xFF, 0xF6, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF8, 0xFF, 0xF9, 0xFF - .byte 0xFA, 0xFF, 0xFA, 0xFF, 0xFB, 0xFF, 0xFC, 0xFF, 0xFD, 0xFF, 0xFD, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x76, 0x00, 0xB2, 0x00, 0xED, 0x00, 0x28, 0x01 - .byte 0x64, 0x01, 0x9F, 0x01, 0xDB, 0x01, 0x17, 0x02, 0x52, 0x02, 0x8E, 0x02, 0xCA, 0x02, 0x05, 0x03 - .byte 0x41, 0x03, 0x7D, 0x03, 0xB9, 0x03, 0xF5, 0x03, 0x31, 0x04, 0x6E, 0x04, 0xAA, 0x04, 0xE6, 0x04 - .byte 0x22, 0x05, 0x5F, 0x05, 0x9B, 0x05, 0xD8, 0x05, 0x14, 0x06, 0x51, 0x06, 0x8D, 0x06, 0xCA, 0x06 - .byte 0x07, 0x07, 0x43, 0x07, 0x80, 0x07, 0xBD, 0x07, 0xFA, 0x07, 0x37, 0x08, 0x74, 0x08, 0xB1, 0x08 - .byte 0xEF, 0x08, 0x2C, 0x09, 0x69, 0x09, 0xA7, 0x09, 0xE4, 0x09, 0x21, 0x0A, 0x5F, 0x0A, 0x9C, 0x0A - .byte 0xDA, 0x0A, 0x18, 0x0B, 0x56, 0x0B, 0x93, 0x0B, 0xD1, 0x0B, 0x0F, 0x0C, 0x4D, 0x0C, 0x8B, 0x0C - .byte 0xC9, 0x0C, 0x07, 0x0D, 0x45, 0x0D, 0x84, 0x0D, 0xC2, 0x0D, 0x00, 0x0E, 0x3F, 0x0E, 0x7D, 0x0E - .byte 0xBC, 0x0E, 0xFA, 0x0E, 0x39, 0x0F, 0x78, 0x0F, 0xB6, 0x0F, 0xF5, 0x0F, 0x34, 0x10, 0x73, 0x10 - .byte 0xB2, 0x10, 0xF1, 0x10, 0x30, 0x11, 0x6F, 0x11, 0xAE, 0x11, 0xEE, 0x11, 0x2D, 0x12, 0x6C, 0x12 - .byte 0xAC, 0x12, 0xEB, 0x12, 0x2B, 0x13, 0x6B, 0x13, 0xAA, 0x13, 0xEA, 0x13, 0x2A, 0x14, 0x6A, 0x14 - .byte 0xA9, 0x14, 0xE9, 0x14, 0x29, 0x15, 0x69, 0x15, 0xAA, 0x15, 0xEA, 0x15, 0x2A, 0x16, 0x6A, 0x16 - .byte 0xAB, 0x16, 0xEB, 0x16, 0x2C, 0x17, 0x6C, 0x17, 0xAD, 0x17, 0xED, 0x17, 0x2E, 0x18, 0x6F, 0x18 - .byte 0xB0, 0x18, 0xF0, 0x18, 0x31, 0x19, 0x72, 0x19, 0xB3, 0x19, 0xF5, 0x19, 0x36, 0x1A, 0x77, 0x1A - .byte 0xB8, 0x1A, 0xFA, 0x1A, 0x3B, 0x1B, 0x7D, 0x1B, 0xBE, 0x1B, 0x00, 0x1C, 0x41, 0x1C, 0x83, 0x1C - .byte 0xC5, 0x1C, 0x07, 0x1D, 0x48, 0x1D, 0x8A, 0x1D, 0xCC, 0x1D, 0x0E, 0x1E, 0x51, 0x1E, 0x93, 0x1E - .byte 0xD5, 0x1E, 0x17, 0x1F, 0x5A, 0x1F, 0x9C, 0x1F, 0xDF, 0x1F, 0x21, 0x20, 0x64, 0x20, 0xA6, 0x20 - .byte 0xE9, 0x20, 0x2C, 0x21, 0x6F, 0x21, 0xB2, 0x21, 0xF5, 0x21, 0x38, 0x22, 0x7B, 0x22, 0xBE, 0x22 - .byte 0x01, 0x23, 0x44, 0x23, 0x88, 0x23, 0xCB, 0x23, 0x0E, 0x24, 0x52, 0x24, 0x96, 0x24, 0xD9, 0x24 - .byte 0x1D, 0x25, 0x61, 0x25, 0xA4, 0x25, 0xE8, 0x25, 0x2C, 0x26, 0x70, 0x26, 0xB4, 0x26, 0xF8, 0x26 - .byte 0x3D, 0x27, 0x81, 0x27, 0xC5, 0x27, 0x0A, 0x28, 0x4E, 0x28, 0x92, 0x28, 0xD7, 0x28, 0x1C, 0x29 - .byte 0x60, 0x29, 0xA5, 0x29, 0xEA, 0x29, 0x2F, 0x2A, 0x74, 0x2A, 0xB9, 0x2A, 0xFE, 0x2A, 0x43, 0x2B - .byte 0x88, 0x2B, 0xCD, 0x2B, 0x13, 0x2C, 0x58, 0x2C, 0x9D, 0x2C, 0xE3, 0x2C, 0x28, 0x2D, 0x6E, 0x2D - .byte 0xB4, 0x2D, 0xF9, 0x2D, 0x3F, 0x2E, 0x85, 0x2E, 0xCB, 0x2E, 0x11, 0x2F, 0x57, 0x2F, 0x9D, 0x2F - .byte 0xE3, 0x2F, 0x2A, 0x30, 0x70, 0x30, 0xB6, 0x30, 0xFD, 0x30, 0x43, 0x31, 0x8A, 0x31, 0xD0, 0x31 - .byte 0x17, 0x32, 0x5E, 0x32, 0xA5, 0x32, 0xEC, 0x32, 0x32, 0x33, 0x79, 0x33, 0xC1, 0x33, 0x08, 0x34 - .byte 0x4F, 0x34, 0x96, 0x34, 0xDD, 0x34, 0x25, 0x35, 0x6C, 0x35, 0xB4, 0x35, 0xFB, 0x35, 0x43, 0x36 - .byte 0x8B, 0x36, 0xD3, 0x36, 0x1A, 0x37, 0x62, 0x37, 0xAA, 0x37, 0xF2, 0x37, 0x3A, 0x38, 0x83, 0x38 - .byte 0xCB, 0x38, 0x13, 0x39, 0x5C, 0x39, 0xA4, 0x39, 0xED, 0x39, 0x35, 0x3A, 0x7E, 0x3A, 0xC6, 0x3A - .byte 0x0F, 0x3B, 0x58, 0x3B, 0xA1, 0x3B, 0xEA, 0x3B, 0x33, 0x3C, 0x7C, 0x3C, 0xC5, 0x3C, 0x0E, 0x3D - .byte 0x58, 0x3D, 0xA1, 0x3D, 0xEA, 0x3D, 0x34, 0x3E, 0x7D, 0x3E, 0xC7, 0x3E, 0x11, 0x3F, 0x5A, 0x3F - .byte 0xA4, 0x3F, 0xEE, 0x3F, 0x38, 0x40, 0x82, 0x40, 0xCC, 0x40, 0x16, 0x41, 0x61, 0x41, 0xAB, 0x41 - .byte 0xF5, 0x41, 0x40, 0x42, 0x8A, 0x42, 0xD5, 0x42, 0x1F, 0x43, 0x6A, 0x43, 0xB5, 0x43, 0x00, 0x44 - .byte 0x4B, 0x44, 0x95, 0x44, 0xE1, 0x44, 0x2C, 0x45, 0x77, 0x45, 0xC2, 0x45, 0x0D, 0x46, 0x59, 0x46 - .byte 0xA4, 0x46, 0xF0, 0x46, 0x3B, 0x47, 0x87, 0x47, 0xD3, 0x47, 0x1E, 0x48, 0x6A, 0x48, 0xB6, 0x48 - .byte 0x02, 0x49, 0x4E, 0x49, 0x9A, 0x49, 0xE6, 0x49, 0x33, 0x4A, 0x7F, 0x4A, 0xCB, 0x4A, 0x18, 0x4B - .byte 0x64, 0x4B, 0xB1, 0x4B, 0xFE, 0x4B, 0x4A, 0x4C, 0x97, 0x4C, 0xE4, 0x4C, 0x31, 0x4D, 0x7E, 0x4D - .byte 0xCB, 0x4D, 0x18, 0x4E, 0x66, 0x4E, 0xB3, 0x4E, 0x00, 0x4F, 0x4E, 0x4F, 0x9B, 0x4F, 0xE9, 0x4F - .byte 0x36, 0x50, 0x84, 0x50, 0xD2, 0x50, 0x20, 0x51, 0x6E, 0x51, 0xBC, 0x51, 0x0A, 0x52, 0x58, 0x52 - .byte 0xA6, 0x52, 0xF4, 0x52, 0x43, 0x53, 0x91, 0x53, 0xE0, 0x53, 0x2E, 0x54, 0x7D, 0x54, 0xCC, 0x54 - .byte 0x1A, 0x55, 0x69, 0x55, 0xB8, 0x55, 0x07, 0x56, 0x56, 0x56, 0xA5, 0x56, 0xF4, 0x56, 0x44, 0x57 - .byte 0x93, 0x57, 0xE2, 0x57, 0x32, 0x58, 0x82, 0x58, 0xD1, 0x58, 0x21, 0x59, 0x71, 0x59, 0xC1, 0x59 - .byte 0x10, 0x5A, 0x60, 0x5A, 0xB0, 0x5A, 0x01, 0x5B, 0x51, 0x5B, 0xA1, 0x5B, 0xF1, 0x5B, 0x42, 0x5C - .byte 0x92, 0x5C, 0xE3, 0x5C, 0x34, 0x5D, 0x84, 0x5D, 0xD5, 0x5D, 0x26, 0x5E, 0x77, 0x5E, 0xC8, 0x5E - .byte 0x19, 0x5F, 0x6A, 0x5F, 0xBB, 0x5F, 0x0D, 0x60, 0x5E, 0x60, 0xB0, 0x60, 0x01, 0x61, 0x53, 0x61 - .byte 0xA4, 0x61, 0xF6, 0x61, 0x48, 0x62, 0x9A, 0x62, 0xEC, 0x62, 0x3E, 0x63, 0x90, 0x63, 0xE2, 0x63 - .byte 0x34, 0x64, 0x87, 0x64, 0xD9, 0x64, 0x2C, 0x65, 0x7E, 0x65, 0xD1, 0x65, 0x24, 0x66, 0x76, 0x66 - .byte 0xC9, 0x66, 0x1C, 0x67, 0x6F, 0x67, 0xC2, 0x67, 0x15, 0x68, 0x69, 0x68, 0xBC, 0x68, 0x0F, 0x69 - .byte 0x63, 0x69, 0xB6, 0x69, 0x0A, 0x6A, 0x5E, 0x6A, 0xB1, 0x6A, 0x05, 0x6B, 0x59, 0x6B, 0xAD, 0x6B - .byte 0x01, 0x6C, 0x55, 0x6C, 0xAA, 0x6C, 0xFE, 0x6C, 0x52, 0x6D, 0xA7, 0x6D, 0xFB, 0x6D, 0x50, 0x6E - .byte 0xA4, 0x6E, 0xF9, 0x6E, 0x4E, 0x6F, 0xA3, 0x6F, 0xF8, 0x6F, 0x4D, 0x70, 0xA2, 0x70, 0xF7, 0x70 - .byte 0x4D, 0x71, 0xA2, 0x71, 0xF7, 0x71, 0x4D, 0x72, 0xA2, 0x72, 0xF8, 0x72, 0x4E, 0x73, 0xA4, 0x73 - .byte 0xFA, 0x73, 0x50, 0x74, 0xA6, 0x74, 0xFC, 0x74, 0x52, 0x75, 0xA8, 0x75, 0xFF, 0x75, 0x55, 0x76 - .byte 0xAC, 0x76, 0x02, 0x77, 0x59, 0x77, 0xB0, 0x77, 0x07, 0x78, 0x5E, 0x78, 0xB4, 0x78, 0x0C, 0x79 - .byte 0x63, 0x79, 0xBA, 0x79, 0x11, 0x7A, 0x69, 0x7A, 0xC0, 0x7A, 0x18, 0x7B, 0x6F, 0x7B, 0xC7, 0x7B - .byte 0x1F, 0x7C, 0x77, 0x7C, 0xCF, 0x7C, 0x27, 0x7D, 0x7F, 0x7D, 0xD7, 0x7D, 0x2F, 0x7E, 0x88, 0x7E - .byte 0xE0, 0x7E, 0x38, 0x7F, 0x91, 0x7F, 0xEA, 0x7F, 0x42, 0x80, 0x9B, 0x80, 0xF4, 0x80, 0x4D, 0x81 - .byte 0xA6, 0x81, 0xFF, 0x81, 0x59, 0x82, 0xB2, 0x82, 0x0B, 0x83, 0x65, 0x83, 0xBE, 0x83, 0x18, 0x84 - .byte 0x72, 0x84, 0xCB, 0x84, 0x25, 0x85, 0x7F, 0x85, 0xD9, 0x85, 0x33, 0x86, 0x8E, 0x86, 0xE8, 0x86 - .byte 0x42, 0x87, 0x9D, 0x87, 0xF7, 0x87, 0x52, 0x88, 0xAC, 0x88, 0x07, 0x89, 0x62, 0x89, 0xBD, 0x89 - .byte 0x18, 0x8A, 0x73, 0x8A, 0xCE, 0x8A, 0x2A, 0x8B, 0x85, 0x8B, 0xE0, 0x8B, 0x3C, 0x8C, 0x97, 0x8C - .byte 0xF3, 0x8C, 0x4F, 0x8D, 0xAB, 0x8D, 0x07, 0x8E, 0x63, 0x8E, 0xBF, 0x8E, 0x1B, 0x8F, 0x77, 0x8F - .byte 0xD4, 0x8F, 0x30, 0x90, 0x8C, 0x90, 0xE9, 0x90, 0x46, 0x91, 0xA2, 0x91, 0xFF, 0x91, 0x5C, 0x92 - .byte 0xB9, 0x92, 0x16, 0x93, 0x73, 0x93, 0xD1, 0x93, 0x2E, 0x94, 0x8C, 0x94, 0xE9, 0x94, 0x47, 0x95 - .byte 0xA4, 0x95, 0x02, 0x96, 0x60, 0x96, 0xBE, 0x96, 0x1C, 0x97, 0x7A, 0x97, 0xD8, 0x97, 0x36, 0x98 - .byte 0x95, 0x98, 0xF3, 0x98, 0x52, 0x99, 0xB0, 0x99, 0x0F, 0x9A, 0x6E, 0x9A, 0xCD, 0x9A, 0x2C, 0x9B - .byte 0x8B, 0x9B, 0xEA, 0x9B, 0x49, 0x9C, 0xA8, 0x9C, 0x08, 0x9D, 0x67, 0x9D, 0xC7, 0x9D, 0x26, 0x9E - .byte 0x86, 0x9E, 0xE6, 0x9E, 0x46, 0x9F, 0xA6, 0x9F, 0x06, 0xA0, 0x66, 0xA0, 0xC6, 0xA0, 0x27, 0xA1 - .byte 0x87, 0xA1, 0xE8, 0xA1, 0x48, 0xA2, 0xA9, 0xA2, 0x0A, 0xA3, 0x6B, 0xA3, 0xCC, 0xA3, 0x2D, 0xA4 - .byte 0x8E, 0xA4, 0xEF, 0xA4, 0x50, 0xA5, 0xB2, 0xA5, 0x13, 0xA6, 0x75, 0xA6, 0xD6, 0xA6, 0x38, 0xA7 - .byte 0x9A, 0xA7, 0xFC, 0xA7, 0x5E, 0xA8, 0xC0, 0xA8, 0x22, 0xA9, 0x84, 0xA9, 0xE7, 0xA9, 0x49, 0xAA - .byte 0xAC, 0xAA, 0x0E, 0xAB, 0x71, 0xAB, 0xD4, 0xAB, 0x37, 0xAC, 0x9A, 0xAC, 0xFD, 0xAC, 0x60, 0xAD - .byte 0xC3, 0xAD, 0x27, 0xAE, 0x8A, 0xAE, 0xED, 0xAE, 0x51, 0xAF, 0xB5, 0xAF, 0x19, 0xB0, 0x7C, 0xB0 - .byte 0xE0, 0xB0, 0x45, 0xB1, 0xA9, 0xB1, 0x0D, 0xB2, 0x71, 0xB2, 0xD6, 0xB2, 0x3A, 0xB3, 0x9F, 0xB3 - .byte 0x03, 0xB4, 0x68, 0xB4, 0xCD, 0xB4, 0x32, 0xB5, 0x97, 0xB5, 0xFC, 0xB5, 0x62, 0xB6, 0xC7, 0xB6 - .byte 0x2C, 0xB7, 0x92, 0xB7, 0xF7, 0xB7, 0x5D, 0xB8, 0xC3, 0xB8, 0x29, 0xB9, 0x8F, 0xB9, 0xF5, 0xB9 - .byte 0x5B, 0xBA, 0xC1, 0xBA, 0x28, 0xBB, 0x8E, 0xBB, 0xF5, 0xBB, 0x5B, 0xBC, 0xC2, 0xBC, 0x29, 0xBD - .byte 0x90, 0xBD, 0xF7, 0xBD, 0x5E, 0xBE, 0xC5, 0xBE, 0x2C, 0xBF, 0x94, 0xBF, 0xFB, 0xBF, 0x63, 0xC0 - .byte 0xCA, 0xC0, 0x32, 0xC1, 0x9A, 0xC1, 0x02, 0xC2, 0x6A, 0xC2, 0xD2, 0xC2, 0x3A, 0xC3, 0xA2, 0xC3 - .byte 0x0B, 0xC4, 0x73, 0xC4, 0xDC, 0xC4, 0x44, 0xC5, 0xAD, 0xC5, 0x16, 0xC6, 0x7F, 0xC6, 0xE8, 0xC6 - .byte 0x51, 0xC7, 0xBB, 0xC7, 0x24, 0xC8, 0x8D, 0xC8, 0xF7, 0xC8, 0x60, 0xC9, 0xCA, 0xC9, 0x34, 0xCA - .byte 0x9E, 0xCA, 0x08, 0xCB, 0x72, 0xCB, 0xDC, 0xCB, 0x47, 0xCC, 0xB1, 0xCC, 0x1B, 0xCD, 0x86, 0xCD - .byte 0xF1, 0xCD, 0x5B, 0xCE, 0xC6, 0xCE, 0x31, 0xCF, 0x9C, 0xCF, 0x08, 0xD0, 0x73, 0xD0, 0xDE, 0xD0 - .byte 0x4A, 0xD1, 0xB5, 0xD1, 0x21, 0xD2, 0x8D, 0xD2, 0xF8, 0xD2, 0x64, 0xD3, 0xD0, 0xD3, 0x3D, 0xD4 - .byte 0xA9, 0xD4, 0x15, 0xD5, 0x82, 0xD5, 0xEE, 0xD5, 0x5B, 0xD6, 0xC7, 0xD6, 0x34, 0xD7, 0xA1, 0xD7 - .byte 0x0E, 0xD8, 0x7B, 0xD8, 0xE9, 0xD8, 0x56, 0xD9, 0xC3, 0xD9, 0x31, 0xDA, 0x9E, 0xDA, 0x0C, 0xDB - .byte 0x7A, 0xDB, 0xE8, 0xDB, 0x56, 0xDC, 0xC4, 0xDC, 0x32, 0xDD, 0xA0, 0xDD, 0x0F, 0xDE, 0x7D, 0xDE - .byte 0xEC, 0xDE, 0x5B, 0xDF, 0xC9, 0xDF, 0x38, 0xE0, 0xA7, 0xE0, 0x16, 0xE1, 0x86, 0xE1, 0xF5, 0xE1 - .byte 0x64, 0xE2, 0xD4, 0xE2, 0x43, 0xE3, 0xB3, 0xE3, 0x23, 0xE4, 0x93, 0xE4, 0x03, 0xE5, 0x73, 0xE5 - .byte 0xE3, 0xE5, 0x54, 0xE6, 0xC4, 0xE6, 0x35, 0xE7, 0xA5, 0xE7, 0x16, 0xE8, 0x87, 0xE8, 0xF8, 0xE8 - .byte 0x69, 0xE9, 0xDA, 0xE9, 0x4B, 0xEA, 0xBC, 0xEA, 0x2E, 0xEB, 0x9F, 0xEB, 0x11, 0xEC, 0x83, 0xEC - .byte 0xF5, 0xEC, 0x66, 0xED, 0xD9, 0xED, 0x4B, 0xEE, 0xBD, 0xEE, 0x2F, 0xEF, 0xA2, 0xEF, 0x14, 0xF0 - .byte 0x87, 0xF0, 0xFA, 0xF0, 0x6D, 0xF1, 0xE0, 0xF1, 0x53, 0xF2, 0xC6, 0xF2, 0x39, 0xF3, 0xAD, 0xF3 - .byte 0x20, 0xF4, 0x94, 0xF4, 0x07, 0xF5, 0x7B, 0xF5, 0xEF, 0xF5, 0x63, 0xF6, 0xD7, 0xF6, 0x4C, 0xF7 - .byte 0xC0, 0xF7, 0x34, 0xF8, 0xA9, 0xF8, 0x1E, 0xF9, 0x92, 0xF9, 0x07, 0xFA, 0x7C, 0xFA, 0xF1, 0xFA - .byte 0x66, 0xFB, 0xDC, 0xFB, 0x51, 0xFC, 0xC7, 0xFC, 0x3C, 0xFD, 0xB2, 0xFD, 0x28, 0xFE, 0x9E, 0xFE - .byte 0x14, 0xFF, 0x8A, 0xFF, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02 - .byte 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02 - .byte 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02 - .byte 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 - .byte 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04 - .byte 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 - .byte 0x04, 0x04, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05 - .byte 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 - .byte 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07 - .byte 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x09, 0x09 - .byte 0x09, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0B, 0x0B, 0x0B - .byte 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D, 0x0D - .byte 0x0D, 0x0D, 0x0D, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x10 - .byte 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x11, 0x11, 0x11, 0x11, 0x12, 0x12, 0x12, 0x12, 0x12, 0x13 - .byte 0x13, 0x13, 0x13, 0x14, 0x14, 0x14, 0x14, 0x14, 0x15, 0x15, 0x15, 0x15, 0x16, 0x16, 0x16, 0x16 - .byte 0x17, 0x17, 0x17, 0x18, 0x18, 0x18, 0x18, 0x19, 0x19, 0x19, 0x19, 0x1A, 0x1A, 0x1A, 0x1B, 0x1B - .byte 0x1B, 0x1C, 0x1C, 0x1C, 0x1D, 0x1D, 0x1D, 0x1E, 0x1E, 0x1E, 0x1F, 0x1F, 0x1F, 0x20, 0x20, 0x20 - .byte 0x21, 0x21, 0x22, 0x22, 0x22, 0x23, 0x23, 0x24, 0x24, 0x24, 0x25, 0x25, 0x26, 0x26, 0x27, 0x27 - .byte 0x27, 0x28, 0x28, 0x29, 0x29, 0x2A, 0x2A, 0x2B, 0x2B, 0x2C, 0x2C, 0x2D, 0x2D, 0x2E, 0x2E, 0x2F - .byte 0x2F, 0x30, 0x31, 0x31, 0x32, 0x32, 0x33, 0x33, 0x34, 0x35, 0x35, 0x36, 0x36, 0x37, 0x38, 0x38 - .byte 0x39, 0x3A, 0x3A, 0x3B, 0x3C, 0x3C, 0x3D, 0x3E, 0x3F, 0x3F, 0x40, 0x41, 0x42, 0x42, 0x43, 0x44 - .byte 0x45, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52 - .byte 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0x62 - .byte 0x63, 0x64, 0x65, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6D, 0x6E, 0x6F, 0x71, 0x72, 0x73, 0x75, 0x76 - .byte 0x77, 0x79, 0x7A, 0x7B, 0x7D, 0x7E, 0x7F, 0x20, 0x21, 0x21, 0x21, 0x22, 0x22, 0x23, 0x23, 0x23 - .byte 0x24, 0x24, 0x25, 0x25, 0x26, 0x26, 0x26, 0x27, 0x27, 0x28, 0x28, 0x29, 0x29, 0x2A, 0x2A, 0x2B - .byte 0x2B, 0x2C, 0x2C, 0x2D, 0x2D, 0x2E, 0x2E, 0x2F, 0x2F, 0x30, 0x30, 0x31, 0x31, 0x32, 0x33, 0x33 - .byte 0x34, 0x34, 0x35, 0x36, 0x36, 0x37, 0x37, 0x38, 0x39, 0x39, 0x3A, 0x3B, 0x3B, 0x3C, 0x3D, 0x3E - .byte 0x3E, 0x3F, 0x40, 0x40, 0x41, 0x42, 0x43, 0x43, 0x44, 0x45, 0x46, 0x47, 0x47, 0x48, 0x49, 0x4A - .byte 0x4B, 0x4C, 0x4D, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59 - .byte 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x69, 0x6A, 0x6B - .byte 0x6C, 0x6D, 0x6F, 0x70, 0x71, 0x73, 0x74, 0x75, 0x77, 0x78, 0x79, 0x7B, 0x7C, 0x7E, 0x7E, 0x40 - .byte 0x41, 0x42, 0x43, 0x43, 0x44, 0x45, 0x46, 0x47, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4C, 0x4D - .byte 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D - .byte 0x5E, 0x5F, 0x60, 0x61, 0x62, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6B, 0x6C, 0x6D, 0x6E, 0x70 - .byte 0x71, 0x72, 0x74, 0x75, 0x76, 0x78, 0x79, 0x7B, 0x7C, 0x7D, 0x7E, 0x40, 0x41, 0x42, 0x42, 0x43 - .byte 0x44, 0x45, 0x46, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51 - .byte 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61 - .byte 0x62, 0x63, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6C, 0x6D, 0x6E, 0x6F, 0x71, 0x72, 0x73, 0x75 - .byte 0x76, 0x77, 0x79, 0x7A, 0x7C, 0x7D, 0x7E, 0x7F, 0xF0, 0xDF, 0x07, 0x02, 0x1C, 0xE0, 0x07, 0x02 - .byte 0x48, 0xE0, 0x07, 0x02, 0xE0, 0xE0, 0x07, 0x02, 0x0C, 0xE2, 0x07, 0x02, 0xF0, 0xE3, 0x07, 0x02 - .byte 0x9C, 0xE7, 0x07, 0x02, 0x1C, 0xE8, 0x07, 0x02, 0x44, 0xE8, 0x07, 0x02, 0x21, 0x06, 0xC0, 0xDE - .byte 0xBA, 0x98, 0xCE, 0x3F, 0xA6, 0x92, 0xE3, 0x9D, 0x46, 0xF2, 0xED, 0x01, 0x76, 0xE3, 0xCC, 0x08 - .byte 0x56, 0x23, 0x63, 0xFA, 0xCA, 0xD4, 0xEC, 0xDF, 0x9A, 0x62, 0x78, 0x34, 0x8F, 0x6D, 0x63, 0x3C - .byte 0xFE, 0x22, 0xCA, 0x92, 0x20, 0x88, 0x97, 0x23, 0xD2, 0xCF, 0xAE, 0xC2, 0x32, 0x67, 0x8D, 0xFE - .byte 0xCA, 0x83, 0x64, 0x98, 0xAC, 0xFD, 0x3E, 0x37, 0x87, 0x46, 0x58, 0x24, 0x14, 0x00, 0x00, 0x00 - .byte 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x40, 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, 0x14, 0x00, 0x00, 0x00, 0x40, 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, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F - .byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F - .byte 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F - .byte 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F - .byte 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F - .byte 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F - .byte 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F - .byte 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F - .byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F - .byte 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F - .byte 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F - .byte 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F - .byte 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F - .byte 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F - .byte 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F - .byte 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00 - .byte 0x04, 0x00, 0x06, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x01, 0x04, 0x00, 0x04, 0x00 - .byte 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00 - .byte 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00 - .byte 0x42, 0x01, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00 - .byte 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00 - .byte 0x58, 0x04, 0x58, 0x04, 0x58, 0x04, 0x58, 0x04, 0x58, 0x04, 0x58, 0x04, 0x58, 0x04, 0x58, 0x04 - .byte 0x58, 0x04, 0x58, 0x04, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00 - .byte 0xD0, 0x00, 0x51, 0x06, 0x51, 0x06, 0x51, 0x06, 0x51, 0x06, 0x51, 0x06, 0x51, 0x06, 0x51, 0x02 - .byte 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02 - .byte 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0x51, 0x02 - .byte 0x51, 0x02, 0x51, 0x02, 0x51, 0x02, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00 - .byte 0xD0, 0x00, 0x71, 0x04, 0x71, 0x04, 0x71, 0x04, 0x71, 0x04, 0x71, 0x04, 0x71, 0x04, 0x71, 0x00 - .byte 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00 - .byte 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0x71, 0x00 - .byte 0x71, 0x00, 0x71, 0x00, 0x71, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0x04, 0x00 - .byte 0x4E, 0x41, 0x4E, 0x28, 0x00, 0x49, 0x4E, 0x46, 0x49, 0x4E, 0x49, 0x54, 0x59, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x03, 0xB8, 0xE2, 0x3F - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x3F - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xD0, 0xCF, 0x43, 0xEB, 0xFD, 0x4C, 0x3E - .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, 0x8C, 0x34, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x24, 0x09, 0x02, 0x74, 0x24, 0x09, 0x02 - .byte 0x7C, 0x24, 0x09, 0x02, 0x94, 0x24, 0x09, 0x02, 0xC4, 0x24, 0x09, 0x02, 0xB4, 0x24, 0x09, 0x02 - .byte 0xA4, 0x24, 0x09, 0x02, 0x84, 0x24, 0x09, 0x02, 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, 0x01, 0x00, 0x00 - .byte 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 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, 0x20, 0x36, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00 - .byte 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x37, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x40, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x01, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x6C, 0x27, 0x09, 0x02, 0x74, 0x27, 0x09, 0x02, 0x72, 0x6F, 0x6D, 0x30, 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, 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, 0xF4, 0x27, 0x09, 0x02 - .byte 0xF0, 0x27, 0x09, 0x02, 0x6C, 0x28, 0x09, 0x02, 0x8C, 0xF3, 0x0A, 0x02, 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, 0x01, 0x00, 0x00, 0x00 - .byte 0xB4, 0x28, 0x09, 0x02, 0xB0, 0x28, 0x09, 0x02, 0xC0, 0x7E, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0xDC, 0x7E, 0x00, 0x02, 0x0C, 0x7F, 0x00, 0x02, 0xCC, 0x7F, 0x00, 0x02, 0x80, 0x80, 0x00, 0x02 - .byte 0xB0, 0x80, 0x00, 0x02, 0xB8, 0x80, 0x00, 0x02, 0xC0, 0x80, 0x00, 0x02, 0x38, 0x81, 0x00, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x90, 0x84, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x11, 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, 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, 0xD8, 0x28, 0x09, 0x02, 0xE8, 0x28, 0x09, 0x02, 0xC0, 0x28, 0x09, 0x02 - .byte 0xC8, 0x28, 0x09, 0x02, 0x40, 0x29, 0x09, 0x02, 0x6C, 0x29, 0x09, 0x02, 0x48, 0x29, 0x09, 0x02 - .byte 0x54, 0x29, 0x09, 0x02, 0x38, 0x29, 0x09, 0x02, 0x60, 0x29, 0x09, 0x02, 0xD0, 0x28, 0x09, 0x02 - .byte 0x30, 0x29, 0x09, 0x02, 0xE0, 0x28, 0x09, 0x02, 0xF0, 0x28, 0x09, 0x02, 0xF8, 0x28, 0x09, 0x02 - .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, 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, 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, 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, 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, 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, 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, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x78, 0x4B, 0x09, 0x02, 0xB4, 0x4B, 0x09, 0x02, 0xCC, 0x4B, 0x09, 0x02, 0x64, 0x4B, 0x09, 0x02 - .byte 0xA0, 0x4B, 0x09, 0x02, 0x8C, 0x4B, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x09, 0x02 - .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, 0xAC, 0x8D, 0x09, 0x02, 0xC8, 0x8D, 0x09, 0x02 - .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, 0xB0, 0x8E, 0x09, 0x02, 0xB0, 0x8E, 0x09, 0x02, 0xC8, 0x8E, 0x09, 0x02 - .byte 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xC0, 0x00, 0xFF - .byte 0x40, 0x40, 0x40, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF - .byte 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF - .byte 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x91, 0x09, 0x02 - .byte 0x48, 0x91, 0x09, 0x02, 0x54, 0x91, 0x09, 0x02, 0x4C, 0x91, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x2C, 0x86, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00 - .byte 0x0D, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x88, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x20, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x86, 0x01, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x06, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x53, 0x4F, 0x55, 0x4E - .byte 0x44, 0x2F, 0x42, 0x47, 0x4D, 0x2F, 0x62, 0x67, 0x6D, 0x2E, 0x73, 0x77, 0x64, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x92, 0x09, 0x02 - .byte 0x54, 0x92, 0x09, 0x02, 0x88, 0x92, 0x09, 0x02, 0x58, 0x92, 0x09, 0x02, 0xA0, 0x92, 0x09, 0x02 - .byte 0x78, 0x92, 0x09, 0x02, 0xA8, 0x92, 0x09, 0x02, 0xB0, 0x92, 0x09, 0x02, 0x98, 0x92, 0x09, 0x02 - .byte 0x70, 0x92, 0x09, 0x02, 0x90, 0x92, 0x09, 0x02, 0x68, 0x92, 0x09, 0x02, 0x60, 0x92, 0x09, 0x02 - .byte 0x40, 0x93, 0x09, 0x02, 0x50, 0x93, 0x09, 0x02, 0x58, 0x93, 0x09, 0x02, 0x68, 0x93, 0x09, 0x02 - .byte 0x70, 0x93, 0x09, 0x02, 0x20, 0x93, 0x09, 0x02, 0x90, 0x93, 0x09, 0x02, 0x80, 0x92, 0x09, 0x02 - .byte 0x54, 0x92, 0x09, 0x02, 0x54, 0x92, 0x09, 0x02, 0x54, 0x92, 0x09, 0x02, 0x54, 0x92, 0x09, 0x02 - .byte 0xC0, 0x92, 0x09, 0x02, 0x00, 0x93, 0x09, 0x02, 0xF8, 0x92, 0x09, 0x02, 0xD8, 0x92, 0x09, 0x02 - .byte 0xE0, 0x92, 0x09, 0x02, 0xF0, 0x92, 0x09, 0x02, 0x08, 0x93, 0x09, 0x02, 0x18, 0x93, 0x09, 0x02 - .byte 0x28, 0x93, 0x09, 0x02, 0x38, 0x93, 0x09, 0x02, 0x80, 0x93, 0x09, 0x02, 0x60, 0x93, 0x09, 0x02 - .byte 0x78, 0x93, 0x09, 0x02, 0xB8, 0x92, 0x09, 0x02, 0xC8, 0x92, 0x09, 0x02, 0xD0, 0x92, 0x09, 0x02 - .byte 0xE8, 0x92, 0x09, 0x02, 0x10, 0x93, 0x09, 0x02, 0x30, 0x93, 0x09, 0x02, 0x48, 0x93, 0x09, 0x02 - .byte 0x88, 0x93, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00 - .byte 0x40, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x10, 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, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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, 0x0C, 0xF1, 0x01, 0x02, 0x08, 0xF1, 0x01, 0x02, 0x5C, 0xF0, 0x01, 0x02 - .byte 0xF0, 0xEE, 0x01, 0x02, 0x50, 0xEE, 0x01, 0x02, 0x88, 0xED, 0x01, 0x02, 0xEC, 0xE9, 0x01, 0x02 - .byte 0x44, 0xE8, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00 - .byte 0xB0, 0xAA, 0x09, 0x02, 0xC4, 0xAA, 0x09, 0x02, 0x15, 0x12, 0x6B, 0x16, 0xC4, 0x17, 0x63, 0x0F - .byte 0xBC, 0x10, 0x1D, 0x19, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xAB, 0x09, 0x02 - .byte 0x7C, 0xAB, 0x09, 0x02, 0x7C, 0xAB, 0x09, 0x02, 0x7C, 0xAB, 0x09, 0x02, 0x7C, 0xAB, 0x09, 0x02 - .byte 0x7C, 0xAB, 0x09, 0x02, 0x8C, 0xAB, 0x09, 0x02, 0x8C, 0xAB, 0x09, 0x02, 0x8C, 0xAB, 0x09, 0x02 - .byte 0x8C, 0xAB, 0x09, 0x02, 0x8C, 0xAB, 0x09, 0x02, 0x8C, 0xAB, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xAC, 0x09, 0x02, 0xB4, 0xAD, 0x09, 0x02 - .byte 0x50, 0xAD, 0x09, 0x02, 0xE0, 0xAC, 0x09, 0x02, 0x64, 0xAD, 0x09, 0x02, 0x78, 0xAD, 0x09, 0x02 - .byte 0xF0, 0xAC, 0x09, 0x02, 0x8C, 0xAD, 0x09, 0x02, 0xA0, 0xAD, 0x09, 0x02, 0xB0, 0xAC, 0x09, 0x02 - .byte 0x00, 0xAD, 0x09, 0x02, 0x14, 0xAD, 0x09, 0x02, 0xC0, 0xAC, 0x09, 0x02, 0x28, 0xAD, 0x09, 0x02 - .byte 0x3C, 0xAD, 0x09, 0x02, 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, 0x54, 0xAE, 0x09, 0x02 - .byte 0x68, 0xAE, 0x09, 0x02, 0x7C, 0xAE, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 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, 0x44, 0xFE, 0x0A, 0x02, 0x00, 0x01, 0x28, 0x01 - .byte 0x28, 0x01, 0x01, 0x01, 0x2A, 0x01, 0x2A, 0x01, 0x02, 0x01, 0x2C, 0x01, 0x2D, 0x01, 0x03, 0x01 - .byte 0x2E, 0x01, 0x2F, 0x01, 0x04, 0x01, 0x30, 0x01, 0x31, 0x01, 0x05, 0x01, 0x32, 0x01, 0x33, 0x01 - .byte 0x06, 0x01, 0x34, 0x01, 0x35, 0x01, 0x07, 0x01, 0x36, 0x01, 0x36, 0x01, 0x08, 0x01, 0x37, 0x01 - .byte 0x37, 0x01, 0x09, 0x01, 0x26, 0x01, 0x26, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x18, 0xBF, 0x09, 0x02, 0xC4, 0xBB, 0x09, 0x02, 0x70, 0xB8, 0x09, 0x02 - .byte 0x1C, 0xB5, 0x09, 0x02, 0x6C, 0xC2, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 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, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x18, 0x13 - .byte 0x00, 0xFF, 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, 0x09, 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, 0x01, 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, 0x3C, 0xCD, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 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, 0x71, 0x02, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xDF, 0xB0, 0x08, 0x99, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x94, 0xF1, 0x09, 0x02, 0x20, 0xF2, 0x09, 0x02 - .byte 0x58, 0xFB, 0x09, 0x02, 0x68, 0xFA, 0x09, 0x02, 0xB0, 0xF5, 0x09, 0x02, 0x44, 0xFD, 0x09, 0x02 - .byte 0x50, 0xFE, 0x09, 0x02, 0x68, 0xFF, 0x09, 0x02, 0x10, 0x08, 0x0A, 0x02, 0xB4, 0x01, 0x0A, 0x02 - .byte 0x30, 0x04, 0x0A, 0x02, 0xC4, 0x06, 0x0A, 0x02, 0x78, 0x05, 0x0A, 0x02, 0xF0, 0x02, 0x0A, 0x02 - .byte 0x80, 0x00, 0x0A, 0x02, 0xD0, 0xF2, 0x09, 0x02, 0xDC, 0xF7, 0x09, 0x02, 0x5C, 0xF4, 0x09, 0x02 - .byte 0xB4, 0xF8, 0x09, 0x02, 0xCC, 0xF4, 0x09, 0x02, 0x8C, 0xF9, 0x09, 0x02, 0x3C, 0xF5, 0x09, 0x02 - .byte 0x4C, 0xFC, 0x09, 0x02, 0x58, 0xF6, 0x09, 0x02, 0x64, 0x09, 0x0A, 0x02, 0x70, 0xF2, 0x09, 0x02 - .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, 0x90, 0x2C, 0x0A, 0x02, 0x88, 0x2C, 0x0A, 0x02 - .byte 0xF4, 0x2C, 0x0A, 0x02, 0xF0, 0x2C, 0x0A, 0x02, 0xEC, 0x2C, 0x0A, 0x02, 0xE8, 0x2C, 0x0A, 0x02 - .byte 0xE4, 0x2C, 0x0A, 0x02, 0xE0, 0x2C, 0x0A, 0x02, 0xDC, 0x2C, 0x0A, 0x02, 0xD8, 0x2C, 0x0A, 0x02 - .byte 0xD4, 0x2C, 0x0A, 0x02, 0xD0, 0x2C, 0x0A, 0x02, 0x8C, 0x2C, 0x0A, 0x02, 0xC8, 0x2C, 0x0A, 0x02 - .byte 0xA4, 0x2C, 0x0A, 0x02, 0xA0, 0x2C, 0x0A, 0x02, 0xBC, 0x2C, 0x0A, 0x02, 0xB8, 0x2C, 0x0A, 0x02 - .byte 0xB4, 0x2C, 0x0A, 0x02, 0xB0, 0x2C, 0x0A, 0x02, 0xAC, 0x2C, 0x0A, 0x02, 0xA8, 0x2C, 0x0A, 0x02 - .byte 0xCC, 0x2C, 0x0A, 0x02, 0xC0, 0x2C, 0x0A, 0x02, 0x9C, 0x2C, 0x0A, 0x02, 0x98, 0x2C, 0x0A, 0x02 - .byte 0x94, 0x2C, 0x0A, 0x02, 0xC4, 0x2C, 0x0A, 0x02, 0x00, 0x00, 0x00, 0x00, 0xA4, 0x60, 0x05, 0x02 - .byte 0xD8, 0x4C, 0x05, 0x02, 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, 0x40, 0x3B, 0x0A, 0x02 - .byte 0x4C, 0x3B, 0x0A, 0x02, 0x64, 0x3B, 0x0A, 0x02, 0x44, 0x3B, 0x0A, 0x02, 0x5C, 0x3B, 0x0A, 0x02 - .byte 0x54, 0x3B, 0x0A, 0x02, 0x64, 0x3B, 0x0A, 0x02, 0xAC, 0x3B, 0x0A, 0x02, 0xAC, 0x3B, 0x0A, 0x02 - .byte 0xBC, 0x3B, 0x0A, 0x02, 0xCC, 0x3B, 0x0A, 0x02, 0x6C, 0x3B, 0x0A, 0x02, 0x7C, 0x3B, 0x0A, 0x02 - .byte 0x8C, 0x3B, 0x0A, 0x02, 0x28, 0x3C, 0x0A, 0x02, 0x3C, 0x3C, 0x0A, 0x02, 0x64, 0x3C, 0x0A, 0x02 - .byte 0x8C, 0x3C, 0x0A, 0x02, 0xEC, 0x3B, 0x0A, 0x02, 0x00, 0x3C, 0x0A, 0x02, 0x50, 0x3C, 0x0A, 0x02 - .byte 0x78, 0x3C, 0x0A, 0x02, 0x14, 0x3C, 0x0A, 0x02, 0xAD, 0x68, 0xC1, 0x05, 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, 0x3D, 0x00, 0x3C, 0x00, 0x3D, 0x00 - .byte 0x3C, 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, 0x10, 0x00, 0x00, 0x00 - .byte 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x90, 0x9E, 0x0A, 0x02 - .byte 0xA4, 0x9E, 0x0A, 0x02, 0xCC, 0x9E, 0x0A, 0x02, 0xB8, 0x9E, 0x0A, 0x02, 0xFF, 0xFF, 0x00, 0x00 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x48, 0x40, 0x30 - .byte 0x24, 0x20, 0x18, 0x12, 0x10, 0x0C, 0x09, 0x08, 0x06, 0x04, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0x28, 0x19, 0x07, 0x02, 0x34, 0x19, 0x07, 0x02, 0x4C, 0x19, 0x07, 0x02, 0x5C, 0x19, 0x07, 0x02 - .byte 0x78, 0x19, 0x07, 0x02, 0x9C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02 - .byte 0xC8, 0x19, 0x07, 0x02, 0x14, 0x1A, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02 - .byte 0x1C, 0x1A, 0x07, 0x02, 0x5C, 0x1A, 0x07, 0x02, 0x98, 0x1A, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02 - .byte 0xC0, 0x1A, 0x07, 0x02, 0xCC, 0x1A, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02 - .byte 0xE0, 0x1A, 0x07, 0x02, 0x20, 0x1B, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02 - .byte 0x60, 0x1B, 0x07, 0x02, 0x8C, 0x1B, 0x07, 0x02, 0xBC, 0x1B, 0x07, 0x02, 0xEC, 0x1B, 0x07, 0x02 - .byte 0xF4, 0x1B, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x3C, 0x1C, 0x07, 0x02 - .byte 0xC8, 0x1C, 0x07, 0x02, 0xE0, 0x1C, 0x07, 0x02, 0x00, 0x1D, 0x07, 0x02, 0x20, 0x1D, 0x07, 0x02 - .byte 0x40, 0x1D, 0x07, 0x02, 0x70, 0x1D, 0x07, 0x02, 0x90, 0x1D, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02 - .byte 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02 - .byte 0xB0, 0x1D, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0xBC, 0x1D, 0x07, 0x02, 0xD8, 0x1D, 0x07, 0x02 - .byte 0x10, 0x1E, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x20, 0x1E, 0x07, 0x02 - .byte 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02 - .byte 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x2C, 0x1E, 0x07, 0x02 - .byte 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02 - .byte 0x34, 0x1E, 0x07, 0x02, 0xB4, 0x1E, 0x07, 0x02, 0x3C, 0x1F, 0x07, 0x02, 0xC4, 0x1F, 0x07, 0x02 - .byte 0x54, 0x20, 0x07, 0x02, 0x44, 0x21, 0x07, 0x02, 0x6C, 0x21, 0x07, 0x02, 0x84, 0x21, 0x07, 0x02 - .byte 0xB0, 0x21, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0xC8, 0x21, 0x07, 0x02 - .byte 0xD4, 0x21, 0x07, 0x02, 0x2C, 0x22, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x54, 0x22, 0x07, 0x02 - .byte 0x7C, 0x22, 0x07, 0x02, 0x10, 0x23, 0x07, 0x02, 0xC0, 0x23, 0x07, 0x02, 0x1C, 0x24, 0x07, 0x02 - .byte 0xA8, 0x24, 0x07, 0x02, 0x04, 0x25, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x2C, 0x25, 0x07, 0x02 - .byte 0x54, 0x25, 0x07, 0x02, 0xD4, 0x25, 0x07, 0x02, 0x68, 0x26, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02 - .byte 0xC4, 0x26, 0x07, 0x02, 0x20, 0x27, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x48, 0x27, 0x07, 0x02 - .byte 0x70, 0x27, 0x07, 0x02, 0xC8, 0x27, 0x07, 0x02, 0xFC, 0x27, 0x07, 0x02, 0x38, 0x29, 0x07, 0x02 - .byte 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x6C, 0x29, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02 - .byte 0x9C, 0x29, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02 - .byte 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02, 0x1C, 0x19, 0x07, 0x02 - .byte 0x9C, 0x2D, 0x07, 0x02, 0xDC, 0x2D, 0x07, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xF4, 0x2D, 0x07, 0x02, 0xA4, 0x2F, 0x07, 0x02, 0x04, 0x2E, 0x07, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x2E, 0x07, 0x02, 0xE8, 0x2E, 0x07, 0x02 - .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 0xF4, 0x31, 0x07, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xFC, 0x31, 0x07, 0x02, 0x00, 0x32, 0x07, 0x02, 0x04, 0x32, 0x07, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0xBC, 0x2D, 0x07, 0x02, 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, 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 0x3C, 0x2F, 0x07, 0x02, 0x64, 0x2F, 0x07, 0x02, 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 0x94, 0x30, 0x07, 0x02, 0xA8, 0x30, 0x07, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBC, 0x30, 0x07, 0x02 - .byte 0xE4, 0x30, 0x07, 0x02, 0x2C, 0x31, 0x07, 0x02, 0xC4, 0x31, 0x07, 0x02, 0xF8, 0x30, 0x07, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x68, 0x2F, 0x07, 0x02, 0xA8, 0x30, 0x07, 0x02, 0xBC, 0x30, 0x07, 0x02, 0xD0, 0x30, 0x07, 0x02 - .byte 0x94, 0x30, 0x07, 0x02, 0xDC, 0x31, 0x07, 0x02, 0x1C, 0x31, 0x07, 0x02, 0x6C, 0x2F, 0x07, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0x70, 0x2F, 0x07, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x2F, 0x07, 0x02, 0x94, 0x2F, 0x07, 0x02 - .byte 0x74, 0x2F, 0x07, 0x02, 0x74, 0x2F, 0x07, 0x02, 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, 0x34, 0x2F, 0x07, 0x02, 0xA8, 0x2F, 0x07, 0x02 - .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 0xAC, 0x2F, 0x07, 0x02, 0xD8, 0x2F, 0x07, 0x02, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x2F, 0x07, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x30, 0x07, 0x02, 0x88, 0x30, 0x07, 0x02 - .byte 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00 - .byte 0x08, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x0C, 0x00, 0x0D, 0x00, 0x0E, 0x00, 0x0F, 0x00 - .byte 0x10, 0x00, 0x11, 0x00, 0x12, 0x00, 0x13, 0x00, 0x14, 0x00, 0x15, 0x00, 0x16, 0x00, 0x17, 0x00 - .byte 0x18, 0x00, 0x19, 0x00, 0x1A, 0x00, 0x1B, 0x00, 0x1C, 0x00, 0x1D, 0x00, 0x1E, 0x00, 0x1F, 0x00 - .byte 0x20, 0x00, 0x23, 0x00, 0x28, 0x00, 0x2D, 0x00, 0x33, 0x00, 0x39, 0x00, 0x40, 0x00, 0x48, 0x00 - .byte 0x50, 0x00, 0x58, 0x00, 0x62, 0x00, 0x6D, 0x00, 0x78, 0x00, 0x83, 0x00, 0x90, 0x00, 0x9E, 0x00 - .byte 0xAC, 0x00, 0xBC, 0x00, 0xCC, 0x00, 0xDE, 0x00, 0xF0, 0x00, 0x04, 0x01, 0x19, 0x01, 0x2F, 0x01 - .byte 0x47, 0x01, 0x60, 0x01, 0x7A, 0x01, 0x96, 0x01, 0xB3, 0x01, 0xD2, 0x01, 0xF2, 0x01, 0x14, 0x02 - .byte 0x38, 0x02, 0x5E, 0x02, 0x85, 0x02, 0xAE, 0x02, 0xD9, 0x02, 0x07, 0x03, 0x36, 0x03, 0x67, 0x03 - .byte 0x9B, 0x03, 0xD1, 0x03, 0x06, 0x04, 0x42, 0x04, 0x7E, 0x04, 0xC4, 0x04, 0x00, 0x05, 0x46, 0x05 - .byte 0x8C, 0x05, 0x22, 0x06, 0x72, 0x06, 0xCC, 0x06, 0x1C, 0x07, 0x76, 0x07, 0xDA, 0x07, 0x34, 0x08 - .byte 0x98, 0x08, 0x06, 0x09, 0x6A, 0x09, 0xD8, 0x09, 0x50, 0x0A, 0xBE, 0x0A, 0x40, 0x0B, 0xB8, 0x0B - .byte 0x3A, 0x0C, 0xBC, 0x0C, 0x48, 0x0D, 0xDE, 0x0D, 0x6A, 0x0E, 0x00, 0x0F, 0xA0, 0x0F, 0x40, 0x10 - .byte 0xEA, 0x10, 0x94, 0x11, 0x3E, 0x12, 0xF2, 0x12, 0xB0, 0x13, 0x6E, 0x14, 0x36, 0x15, 0xFE, 0x15 - .byte 0xD0, 0x16, 0xA2, 0x17, 0x7E, 0x18, 0x5A, 0x19, 0x40, 0x1A, 0x30, 0x1B, 0x20, 0x1C, 0x1A, 0x1D - .byte 0x1E, 0x1E, 0x22, 0x1F, 0x30, 0x20, 0x48, 0x21, 0x60, 0x22, 0x82, 0x23, 0x10, 0x27, 0xFF, 0x7F - .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x0F, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00 - .byte 0x2E, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00 - .byte 0x68, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00 - .byte 0x85, 0x01, 0x00, 0x00, 0xBE, 0x01, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0x3F, 0x02, 0x00, 0x00 - .byte 0x88, 0x02, 0x00, 0x00, 0xD6, 0x02, 0x00, 0x00, 0x2A, 0x03, 0x00, 0x00, 0x85, 0x03, 0x00, 0x00 - .byte 0xE5, 0x03, 0x00, 0x00, 0x4C, 0x04, 0x00, 0x00, 0xBA, 0x04, 0x00, 0x00, 0x2E, 0x05, 0x00, 0x00 - .byte 0xA9, 0x05, 0x00, 0x00, 0x2C, 0x06, 0x00, 0x00, 0xB5, 0x06, 0x00, 0x00, 0x46, 0x07, 0x00, 0x00 - .byte 0xCF, 0x0B, 0x00, 0x00, 0xC0, 0x0C, 0x00, 0x00, 0xBD, 0x0D, 0x00, 0x00, 0xC6, 0x0E, 0x00, 0x00 - .byte 0xDC, 0x0F, 0x00, 0x00, 0xFF, 0x10, 0x00, 0x00, 0x2F, 0x12, 0x00, 0x00, 0x6C, 0x13, 0x00, 0x00 - .byte 0xB6, 0x14, 0x00, 0x00, 0x0F, 0x16, 0x00, 0x00, 0x75, 0x17, 0x00, 0x00, 0xEA, 0x18, 0x00, 0x00 - .byte 0x6D, 0x1A, 0x00, 0x00, 0xFF, 0x1B, 0x00, 0x00, 0xA0, 0x1D, 0x00, 0x00, 0x51, 0x1F, 0x00, 0x00 - .byte 0x16, 0x2C, 0x00, 0x00, 0x80, 0x2E, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x95, 0x33, 0x00, 0x00 - .byte 0x41, 0x36, 0x00, 0x00, 0x02, 0x39, 0x00, 0x00, 0xDB, 0x3B, 0x00, 0x00, 0xCA, 0x3E, 0x00, 0x00 - .byte 0xD0, 0x41, 0x00, 0x00, 0xEE, 0x44, 0x00, 0x00, 0x24, 0x48, 0x00, 0x00, 0x73, 0x4B, 0x00, 0x00 - .byte 0xD9, 0x4E, 0x00, 0x00, 0x59, 0x52, 0x00, 0x00, 0xF2, 0x55, 0x00, 0x00, 0xA4, 0x59, 0x00, 0x00 - .byte 0xCC, 0x74, 0x00, 0x00, 0xAB, 0x79, 0x00, 0x00, 0xAC, 0x7E, 0x00, 0x00, 0xCE, 0x83, 0x00, 0x00 - .byte 0x11, 0x89, 0x00, 0x00, 0x77, 0x8E, 0x00, 0x00, 0xFF, 0x93, 0x00, 0x00, 0xAA, 0x99, 0x00, 0x00 - .byte 0x78, 0x9F, 0x00, 0x00, 0x6A, 0xA5, 0x00, 0x00, 0x80, 0xAB, 0x00, 0x00, 0xBB, 0xB1, 0x00, 0x00 - .byte 0x1A, 0xB8, 0x00, 0x00, 0x9E, 0xBE, 0x00, 0x00, 0x47, 0xC5, 0x00, 0x00, 0x17, 0xCC, 0x00, 0x00 - .byte 0x42, 0xFD, 0x00, 0x00, 0xCB, 0x05, 0x01, 0x00, 0x82, 0x0E, 0x01, 0x00, 0x68, 0x17, 0x01, 0x00 - .byte 0x7E, 0x20, 0x01, 0x00, 0xC4, 0x29, 0x01, 0x00, 0x3B, 0x33, 0x01, 0x00, 0xE2, 0x3C, 0x01, 0x00 - .byte 0xBB, 0x46, 0x01, 0x00, 0xC5, 0x50, 0x01, 0x00, 0x02, 0x5B, 0x01, 0x00, 0x72, 0x65, 0x01, 0x00 - .byte 0x15, 0x70, 0x01, 0x00, 0xEB, 0x7A, 0x01, 0x00, 0xF5, 0x85, 0x01, 0x00, 0x33, 0x91, 0x01, 0x00 - .byte 0x6D, 0xE1, 0x01, 0x00, 0x07, 0xEF, 0x01, 0x00, 0xE0, 0xFC, 0x01, 0x00, 0xF7, 0x0A, 0x02, 0x00 - .byte 0x4F, 0x19, 0x02, 0x00, 0xE6, 0x27, 0x02, 0x00, 0xBE, 0x36, 0x02, 0x00, 0xD7, 0x45, 0x02, 0x00 - .byte 0x32, 0x55, 0x02, 0x00, 0xCF, 0x64, 0x02, 0x00, 0xAE, 0x74, 0x02, 0x00, 0xD0, 0x84, 0x02, 0x00 - .byte 0x36, 0x95, 0x02, 0x00, 0xE0, 0xA5, 0x02, 0x00, 0xCE, 0xB6, 0x02, 0x00, 0x02, 0xC8, 0x02, 0x00 - .byte 0xB0, 0x41, 0x03, 0x00, 0xF8, 0x55, 0x03, 0x00, 0x90, 0x6A, 0x03, 0x00, 0x79, 0x7F, 0x03, 0x00 - .byte 0xB4, 0x94, 0x03, 0x00, 0x41, 0xAA, 0x03, 0x00, 0x21, 0xC0, 0x03, 0x00, 0x54, 0xD6, 0x03, 0x00 - .byte 0xDA, 0xEC, 0x03, 0x00, 0xB5, 0x03, 0x04, 0x00, 0xE5, 0x1A, 0x04, 0x00, 0x6A, 0x32, 0x04, 0x00 - .byte 0x45, 0x4A, 0x04, 0x00, 0x77, 0x62, 0x04, 0x00, 0x00, 0x7B, 0x04, 0x00, 0xFF, 0xFF, 0xFF, 0x7F - .byte 0xC0, 0x53, 0x07, 0x02, 0xFC, 0x53, 0x07, 0x02, 0x44, 0x54, 0x07, 0x02, 0x98, 0x54, 0x07, 0x02 - .byte 0xFC, 0x54, 0x07, 0x02, 0x38, 0x55, 0x07, 0x02, 0x74, 0x55, 0x07, 0x02, 0xB8, 0x55, 0x07, 0x02 - .byte 0xAC, 0x53, 0x07, 0x02, 0xAC, 0x53, 0x07, 0x02, 0xAC, 0x53, 0x07, 0x02, 0xAC, 0x53, 0x07, 0x02 - .byte 0xAC, 0x53, 0x07, 0x02, 0xAC, 0x53, 0x07, 0x02, 0xAC, 0x53, 0x07, 0x02, 0xAC, 0x53, 0x07, 0x02 - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F - .byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F - .byte 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F - .byte 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F - .byte 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F - .byte 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F - .byte 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F - .byte 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x10, 0x11, 0x12, 0x13 - .byte 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27 - .byte 0x28, 0x29, 0x2A, 0x2B, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B - .byte 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x50, 0x51, 0x52, 0x53 - .byte 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67 - .byte 0x68, 0x69, 0x6A, 0x6B, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B - .byte 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x90, 0x91, 0x92, 0x93 - .byte 0x94, 0x95, 0x96, 0x97, 0x98, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 - .byte 0x08, 0x00, 0x00, 0x00, 0xEC, 0x3F, 0xF0, 0x3F, 0xF3, 0x3F, 0xF7, 0x3F, 0xFB, 0x3F, 0xFE, 0x3F - .byte 0x02, 0x40, 0x06, 0x40, 0x0A, 0x40, 0x0D, 0x40, 0x11, 0x40, 0x15, 0x40, 0x18, 0x40, 0x1C, 0x40 - .byte 0x20, 0x40, 0x23, 0x40, 0x27, 0x40, 0x2B, 0x40, 0x2F, 0x40, 0x32, 0x40, 0x36, 0x40, 0x3A, 0x40 - .byte 0x3D, 0x40, 0x41, 0x40, 0x45, 0x40, 0x49, 0x40, 0x4C, 0x40, 0x50, 0x40, 0x54, 0x40, 0x57, 0x40 - .byte 0x5B, 0x40, 0x5F, 0x40, 0x63, 0x40, 0x66, 0x40, 0x6A, 0x40, 0x6E, 0x40, 0x71, 0x40, 0x75, 0x40 - .byte 0x79, 0x40, 0x7D, 0x40, 0x80, 0x40, 0x84, 0x40, 0x88, 0x40, 0x8C, 0x40, 0x8F, 0x40, 0x93, 0x40 - .byte 0x97, 0x40, 0x9A, 0x40, 0x9E, 0x40, 0xA2, 0x40, 0xA6, 0x40, 0xA9, 0x40, 0xAD, 0x40, 0xB1, 0x40 - .byte 0xB5, 0x40, 0xB8, 0x40, 0xBC, 0x40, 0xC0, 0x40, 0xC4, 0x40, 0xC7, 0x40, 0xCB, 0x40, 0xCF, 0x40 - .byte 0xD3, 0x40, 0xD6, 0x40, 0xDA, 0x40, 0xDE, 0x40, 0xE2, 0x40, 0xE5, 0x40, 0xE9, 0x40, 0xED, 0x40 - .byte 0xF1, 0x40, 0xF4, 0x40, 0xF8, 0x40, 0xFC, 0x40, 0x00, 0x41, 0x03, 0x41, 0x07, 0x41, 0x0B, 0x41 - .byte 0x0F, 0x41, 0x12, 0x41, 0x16, 0x41, 0x1A, 0x41, 0x1E, 0x41, 0x21, 0x41, 0x25, 0x41, 0x29, 0x41 - .byte 0x2D, 0x41, 0x30, 0x41, 0x34, 0x41, 0x38, 0x41, 0x3C, 0x41, 0x3F, 0x41, 0x43, 0x41, 0x47, 0x41 - .byte 0x4B, 0x41, 0x4F, 0x41, 0x52, 0x41, 0x56, 0x41, 0x5A, 0x41, 0x5E, 0x41, 0x61, 0x41, 0x65, 0x41 - .byte 0x69, 0x41, 0x6D, 0x41, 0x71, 0x41, 0x74, 0x41, 0x78, 0x41, 0x7C, 0x41, 0x80, 0x41, 0x83, 0x41 - .byte 0x87, 0x41, 0x8B, 0x41, 0x8F, 0x41, 0x93, 0x41, 0x96, 0x41, 0x9A, 0x41, 0x9E, 0x41, 0xA2, 0x41 - .byte 0xA6, 0x41, 0xA9, 0x41, 0xAD, 0x41, 0xB1, 0x41, 0xB5, 0x41, 0xB9, 0x41, 0xBC, 0x41, 0xC0, 0x41 - .byte 0xC4, 0x41, 0xC8, 0x41, 0xCC, 0x41, 0xCF, 0x41, 0xD3, 0x41, 0xD7, 0x41, 0xDB, 0x41, 0xDF, 0x41 - .byte 0xE2, 0x41, 0xE6, 0x41, 0xEA, 0x41, 0xEE, 0x41, 0xF2, 0x41, 0xF5, 0x41, 0xF9, 0x41, 0xFD, 0x41 - .byte 0x01, 0x42, 0x05, 0x42, 0x08, 0x42, 0x0C, 0x42, 0x10, 0x42, 0x14, 0x42, 0x18, 0x42, 0x1C, 0x42 - .byte 0x1F, 0x42, 0x23, 0x42, 0x27, 0x42, 0x2B, 0x42, 0x2F, 0x42, 0x32, 0x42, 0x36, 0x42, 0x3A, 0x42 - .byte 0x3E, 0x42, 0x42, 0x42, 0x46, 0x42, 0x49, 0x42, 0x4D, 0x42, 0x51, 0x42, 0x55, 0x42, 0x59, 0x42 - .byte 0x5D, 0x42, 0x60, 0x42, 0x64, 0x42, 0x68, 0x42, 0x6C, 0x42, 0x70, 0x42, 0x74, 0x42, 0x77, 0x42 - .byte 0x7B, 0x42, 0x7F, 0x42, 0x83, 0x42, 0x87, 0x42, 0x8B, 0x42, 0x8E, 0x42, 0x92, 0x42, 0x96, 0x42 - .byte 0x9A, 0x42, 0x9E, 0x42, 0xA2, 0x42, 0xA6, 0x42, 0xA9, 0x42, 0xAD, 0x42, 0xB1, 0x42, 0xB5, 0x42 - .byte 0xB9, 0x42, 0xBD, 0x42, 0xC0, 0x42, 0xC4, 0x42, 0xC8, 0x42, 0xCC, 0x42, 0xD0, 0x42, 0xD4, 0x42 - .byte 0xD8, 0x42, 0xDC, 0x42, 0xDF, 0x42, 0xE3, 0x42, 0xE7, 0x42, 0xEB, 0x42, 0xEF, 0x42, 0xF3, 0x42 - .byte 0xF7, 0x42, 0xFA, 0x42, 0xFE, 0x42, 0x02, 0x43, 0x06, 0x43, 0x0A, 0x43, 0x0E, 0x43, 0x12, 0x43 - .byte 0x16, 0x43, 0x19, 0x43, 0x1D, 0x43, 0x21, 0x43, 0x25, 0x43, 0x29, 0x43, 0x2D, 0x43, 0x31, 0x43 - .byte 0x35, 0x43, 0x38, 0x43, 0x3C, 0x43, 0x40, 0x43, 0x44, 0x43, 0x48, 0x43, 0x4C, 0x43, 0x50, 0x43 - .byte 0x54, 0x43, 0x58, 0x43, 0x5B, 0x43, 0x5F, 0x43, 0x63, 0x43, 0x67, 0x43, 0x6B, 0x43, 0x6F, 0x43 - .byte 0x73, 0x43, 0x77, 0x43, 0x7B, 0x43, 0x7E, 0x43, 0x82, 0x43, 0x86, 0x43, 0x8A, 0x43, 0x8E, 0x43 - .byte 0x92, 0x43, 0x96, 0x43, 0x9A, 0x43, 0x9E, 0x43, 0xA2, 0x43, 0xA6, 0x43, 0xA9, 0x43, 0xAD, 0x43 - .byte 0xB1, 0x43, 0xB5, 0x43, 0xB9, 0x43, 0xBD, 0x43, 0xC1, 0x43, 0xC5, 0x43, 0xC9, 0x43, 0xCD, 0x43 - .byte 0xD1, 0x43, 0xD4, 0x43, 0xD8, 0x43, 0xDC, 0x43, 0xE0, 0x43, 0xE4, 0x43, 0xE8, 0x43, 0xEC, 0x43 - .byte 0xF0, 0x43, 0xF4, 0x43, 0xF8, 0x43, 0xFC, 0x43, 0x00, 0x44, 0x04, 0x44, 0x07, 0x44, 0x0B, 0x44 - .byte 0x0F, 0x44, 0x13, 0x44, 0x17, 0x44, 0x1B, 0x44, 0x1F, 0x44, 0x23, 0x44, 0x27, 0x44, 0x2B, 0x44 - .byte 0x2F, 0x44, 0x33, 0x44, 0x37, 0x44, 0x3B, 0x44, 0x3F, 0x44, 0x43, 0x44, 0x46, 0x44, 0x4A, 0x44 - .byte 0x4E, 0x44, 0x52, 0x44, 0x56, 0x44, 0x5A, 0x44, 0x5E, 0x44, 0x62, 0x44, 0x66, 0x44, 0x6A, 0x44 - .byte 0x6E, 0x44, 0x72, 0x44, 0x76, 0x44, 0x7A, 0x44, 0x7E, 0x44, 0x82, 0x44, 0x86, 0x44, 0x8A, 0x44 - .byte 0x8E, 0x44, 0x92, 0x44, 0x96, 0x44, 0x99, 0x44, 0x9D, 0x44, 0xA1, 0x44, 0xA5, 0x44, 0xA9, 0x44 - .byte 0xAD, 0x44, 0xB1, 0x44, 0xB5, 0x44, 0xB9, 0x44, 0xBD, 0x44, 0xC1, 0x44, 0xC5, 0x44, 0xC9, 0x44 - .byte 0xCD, 0x44, 0xD1, 0x44, 0xD5, 0x44, 0xD9, 0x44, 0xDD, 0x44, 0xE1, 0x44, 0xE5, 0x44, 0xE9, 0x44 - .byte 0xED, 0x44, 0xF1, 0x44, 0xF5, 0x44, 0xF9, 0x44, 0xFD, 0x44, 0x01, 0x45, 0x05, 0x45, 0x09, 0x45 - .byte 0x0D, 0x45, 0x11, 0x45, 0x15, 0x45, 0x19, 0x45, 0x1D, 0x45, 0x21, 0x45, 0x25, 0x45, 0x29, 0x45 - .byte 0x2D, 0x45, 0x31, 0x45, 0x35, 0x45, 0x39, 0x45, 0x3D, 0x45, 0x41, 0x45, 0x45, 0x45, 0x49, 0x45 - .byte 0x4D, 0x45, 0x51, 0x45, 0x55, 0x45, 0x59, 0x45, 0x5D, 0x45, 0x61, 0x45, 0x65, 0x45, 0x69, 0x45 - .byte 0x6D, 0x45, 0x71, 0x45, 0x75, 0x45, 0x79, 0x45, 0x7D, 0x45, 0x81, 0x45, 0x85, 0x45, 0x89, 0x45 - .byte 0x8D, 0x45, 0x91, 0x45, 0x95, 0x45, 0x99, 0x45, 0x9D, 0x45, 0xA1, 0x45, 0xA5, 0x45, 0xA9, 0x45 - .byte 0xAD, 0x45, 0xB1, 0x45, 0xB5, 0x45, 0xB9, 0x45, 0xBD, 0x45, 0xC1, 0x45, 0xC5, 0x45, 0xC9, 0x45 - .byte 0xCD, 0x45, 0xD1, 0x45, 0xD5, 0x45, 0xD9, 0x45, 0xDD, 0x45, 0xE1, 0x45, 0xE5, 0x45, 0xE9, 0x45 - .byte 0xEE, 0x45, 0xF2, 0x45, 0xF6, 0x45, 0xFA, 0x45, 0xFE, 0x45, 0x02, 0x46, 0x06, 0x46, 0x0A, 0x46 - .byte 0x0E, 0x46, 0x12, 0x46, 0x16, 0x46, 0x1A, 0x46, 0x1E, 0x46, 0x22, 0x46, 0x26, 0x46, 0x2A, 0x46 - .byte 0x2E, 0x46, 0x32, 0x46, 0x36, 0x46, 0x3A, 0x46, 0x3E, 0x46, 0x43, 0x46, 0x47, 0x46, 0x4B, 0x46 - .byte 0x4F, 0x46, 0x53, 0x46, 0x57, 0x46, 0x5B, 0x46, 0x5F, 0x46, 0x63, 0x46, 0x67, 0x46, 0x6B, 0x46 - .byte 0x6F, 0x46, 0x73, 0x46, 0x77, 0x46, 0x7B, 0x46, 0x80, 0x46, 0x84, 0x46, 0x88, 0x46, 0x8C, 0x46 - .byte 0x90, 0x46, 0x94, 0x46, 0x98, 0x46, 0x9C, 0x46, 0xA0, 0x46, 0xA4, 0x46, 0xA8, 0x46, 0xAC, 0x46 - .byte 0xB0, 0x46, 0xB5, 0x46, 0xB9, 0x46, 0xBD, 0x46, 0xC1, 0x46, 0xC5, 0x46, 0xC9, 0x46, 0xCD, 0x46 - .byte 0xD1, 0x46, 0xD5, 0x46, 0xD9, 0x46, 0xDD, 0x46, 0xE2, 0x46, 0xE6, 0x46, 0xEA, 0x46, 0xEE, 0x46 - .byte 0xF2, 0x46, 0xF6, 0x46, 0xFA, 0x46, 0xFE, 0x46, 0x02, 0x47, 0x06, 0x47, 0x0B, 0x47, 0x0F, 0x47 - .byte 0x13, 0x47, 0x17, 0x47, 0x1B, 0x47, 0x1F, 0x47, 0x23, 0x47, 0x27, 0x47, 0x2B, 0x47, 0x2F, 0x47 - .byte 0x34, 0x47, 0x38, 0x47, 0x3C, 0x47, 0x40, 0x47, 0x44, 0x47, 0x48, 0x47, 0x4C, 0x47, 0x50, 0x47 - .byte 0x55, 0x47, 0x59, 0x47, 0x5D, 0x47, 0x61, 0x47, 0x65, 0x47, 0x69, 0x47, 0x6D, 0x47, 0x71, 0x47 - .byte 0x76, 0x47, 0x7A, 0x47, 0x7E, 0x47, 0x82, 0x47, 0x86, 0x47, 0x8A, 0x47, 0x8E, 0x47, 0x92, 0x47 - .byte 0x97, 0x47, 0x9B, 0x47, 0x9F, 0x47, 0xA3, 0x47, 0xA7, 0x47, 0xAB, 0x47, 0xAF, 0x47, 0xB4, 0x47 - .byte 0xB8, 0x47, 0xBC, 0x47, 0xC0, 0x47, 0xC4, 0x47, 0xC8, 0x47, 0xCC, 0x47, 0xD1, 0x47, 0xD5, 0x47 - .byte 0xD9, 0x47, 0xDD, 0x47, 0xE1, 0x47, 0xE5, 0x47, 0xE9, 0x47, 0xEE, 0x47, 0xF2, 0x47, 0xF6, 0x47 - .byte 0xFA, 0x47, 0xFE, 0x47, 0x02, 0x48, 0x07, 0x48, 0x0B, 0x48, 0x0F, 0x48, 0x13, 0x48, 0x17, 0x48 - .byte 0x1B, 0x48, 0x20, 0x48, 0x24, 0x48, 0x28, 0x48, 0x2C, 0x48, 0x30, 0x48, 0x34, 0x48, 0x39, 0x48 - .byte 0x3D, 0x48, 0x41, 0x48, 0x45, 0x48, 0x49, 0x48, 0x4D, 0x48, 0x52, 0x48, 0x56, 0x48, 0x5A, 0x48 - .byte 0x5E, 0x48, 0x62, 0x48, 0x66, 0x48, 0x6B, 0x48, 0x6F, 0x48, 0x73, 0x48, 0x77, 0x48, 0x7B, 0x48 - .byte 0x80, 0x48, 0x84, 0x48, 0x88, 0x48, 0x8C, 0x48, 0x90, 0x48, 0x95, 0x48, 0x99, 0x48, 0x9D, 0x48 - .byte 0xA1, 0x48, 0xA5, 0x48, 0xAA, 0x48, 0xAE, 0x48, 0xB2, 0x48, 0xB6, 0x48, 0xBA, 0x48, 0xBF, 0x48 - .byte 0xC3, 0x48, 0xC7, 0x48, 0xCB, 0x48, 0xCF, 0x48, 0xD4, 0x48, 0xD8, 0x48, 0xDC, 0x48, 0xE0, 0x48 - .byte 0xE4, 0x48, 0xE9, 0x48, 0xED, 0x48, 0xF1, 0x48, 0xF5, 0x48, 0xF9, 0x48, 0xFE, 0x48, 0x02, 0x49 - .byte 0x06, 0x49, 0x0A, 0x49, 0x0F, 0x49, 0x13, 0x49, 0x17, 0x49, 0x1B, 0x49, 0x1F, 0x49, 0x24, 0x49 - .byte 0x28, 0x49, 0x2C, 0x49, 0x30, 0x49, 0x35, 0x49, 0x39, 0x49, 0x3D, 0x49, 0x41, 0x49, 0x45, 0x49 - .byte 0x4A, 0x49, 0x4E, 0x49, 0x52, 0x49, 0x56, 0x49, 0x5B, 0x49, 0x5F, 0x49, 0x63, 0x49, 0x67, 0x49 - .byte 0x6C, 0x49, 0x70, 0x49, 0x74, 0x49, 0x78, 0x49, 0x7D, 0x49, 0x81, 0x49, 0x85, 0x49, 0x89, 0x49 - .byte 0x8E, 0x49, 0x92, 0x49, 0x96, 0x49, 0x9A, 0x49, 0x9F, 0x49, 0xA3, 0x49, 0xA7, 0x49, 0xAB, 0x49 - .byte 0xB0, 0x49, 0xB4, 0x49, 0xB8, 0x49, 0xBC, 0x49, 0xC1, 0x49, 0xC5, 0x49, 0xC9, 0x49, 0xCD, 0x49 - .byte 0xD2, 0x49, 0xD6, 0x49, 0xDA, 0x49, 0xDE, 0x49, 0xE3, 0x49, 0xE7, 0x49, 0xEB, 0x49, 0xF0, 0x49 - .byte 0xF4, 0x49, 0xF8, 0x49, 0xFC, 0x49, 0x01, 0x4A, 0x05, 0x4A, 0x09, 0x4A, 0x0D, 0x4A, 0x12, 0x4A - .byte 0x16, 0x4A, 0x1A, 0x4A, 0x1F, 0x4A, 0x23, 0x4A, 0x27, 0x4A, 0x2B, 0x4A, 0x30, 0x4A, 0x34, 0x4A - .byte 0x38, 0x4A, 0x3D, 0x4A, 0x41, 0x4A, 0x45, 0x4A, 0x49, 0x4A, 0x4E, 0x4A, 0x52, 0x4A, 0x56, 0x4A - .byte 0x5B, 0x4A, 0x5F, 0x4A, 0x63, 0x4A, 0x67, 0x4A, 0x6C, 0x4A, 0x70, 0x4A, 0x74, 0x4A, 0x79, 0x4A - .byte 0x7D, 0x4A, 0x81, 0x4A, 0x86, 0x4A, 0x8A, 0x4A, 0x8E, 0x4A, 0x93, 0x4A, 0x97, 0x4A, 0x9B, 0x4A - .byte 0x9F, 0x4A, 0xA4, 0x4A, 0xA8, 0x4A, 0xAC, 0x4A, 0xB1, 0x4A, 0xB5, 0x4A, 0xB9, 0x4A, 0xBE, 0x4A - .byte 0xC2, 0x4A, 0xC6, 0x4A, 0xCB, 0x4A, 0xCF, 0x4A, 0xD3, 0x4A, 0xD8, 0x4A, 0xDC, 0x4A, 0xE0, 0x4A - .byte 0xE5, 0x4A, 0xE9, 0x4A, 0xED, 0x4A, 0xF2, 0x4A, 0xF6, 0x4A, 0xFA, 0x4A, 0xFF, 0x4A, 0x03, 0x4B - .byte 0x07, 0x4B, 0x0C, 0x4B, 0x10, 0x4B, 0x14, 0x4B, 0x19, 0x4B, 0x1D, 0x4B, 0x21, 0x4B, 0x26, 0x4B - .byte 0x2A, 0x4B, 0x2E, 0x4B, 0x33, 0x4B, 0x37, 0x4B, 0x3B, 0x4B, 0x40, 0x4B, 0x44, 0x4B, 0x48, 0x4B - .byte 0x4D, 0x4B, 0x51, 0x4B, 0x55, 0x4B, 0x5A, 0x4B, 0x5E, 0x4B, 0x62, 0x4B, 0x67, 0x4B, 0x6B, 0x4B - .byte 0x6F, 0x4B, 0x74, 0x4B, 0x78, 0x4B, 0x7D, 0x4B, 0x81, 0x4B, 0x85, 0x4B, 0x8A, 0x4B, 0x8E, 0x4B - .byte 0x92, 0x4B, 0x97, 0x4B, 0x9B, 0x4B, 0x9F, 0x4B, 0xA4, 0x4B, 0xA8, 0x4B, 0xAD, 0x4B, 0xB1, 0x4B - .byte 0xB5, 0x4B, 0xBA, 0x4B, 0xBE, 0x4B, 0xC2, 0x4B, 0xC7, 0x4B, 0xCB, 0x4B, 0xD0, 0x4B, 0xD4, 0x4B - .byte 0xD8, 0x4B, 0xDD, 0x4B, 0xE1, 0x4B, 0xE5, 0x4B, 0xEA, 0x4B, 0xEE, 0x4B, 0xF3, 0x4B, 0xF7, 0x4B - .byte 0xFB, 0x4B, 0x00, 0x4C, 0x04, 0x4C, 0x09, 0x4C, 0x0D, 0x4C, 0x11, 0x4C, 0x16, 0x4C, 0x1A, 0x4C - .byte 0x1F, 0x4C, 0x23, 0x4C, 0x27, 0x4C, 0x2C, 0x4C, 0x30, 0x4C, 0x35, 0x4C, 0x39, 0x4C, 0x3D, 0x4C - .byte 0x42, 0x4C, 0x46, 0x4C, 0x4B, 0x4C, 0x4F, 0x4C, 0x53, 0x4C, 0x58, 0x4C, 0x5C, 0x4C, 0x61, 0x4C - .byte 0x65, 0x4C, 0x69, 0x4C, 0x6E, 0x4C, 0x72, 0x4C, 0x77, 0x4C, 0x7B, 0x4C, 0x80, 0x4C, 0x84, 0x4C - .byte 0x88, 0x4C, 0x8D, 0x4C, 0x91, 0x4C, 0x96, 0x4C, 0x9A, 0x4C, 0x9E, 0x4C, 0xA3, 0x4C, 0xA7, 0x4C - .byte 0xAC, 0x4C, 0xB0, 0x4C, 0xB5, 0x4C, 0xB9, 0x4C, 0xBD, 0x4C, 0xC2, 0x4C, 0xC6, 0x4C, 0xCB, 0x4C - .byte 0xCF, 0x4C, 0xD4, 0x4C, 0xD8, 0x4C, 0xDD, 0x4C, 0xE1, 0x4C, 0xE5, 0x4C, 0xEA, 0x4C, 0xEE, 0x4C - .byte 0xF3, 0x4C, 0xF7, 0x4C, 0xFC, 0x4C, 0x00, 0x4D, 0x05, 0x4D, 0x09, 0x4D, 0x0D, 0x4D, 0x12, 0x4D - .byte 0x16, 0x4D, 0x1B, 0x4D, 0x1F, 0x4D, 0x24, 0x4D, 0x28, 0x4D, 0x2D, 0x4D, 0x31, 0x4D, 0x36, 0x4D - .byte 0x3A, 0x4D, 0x3E, 0x4D, 0x43, 0x4D, 0x47, 0x4D, 0x4C, 0x4D, 0x50, 0x4D, 0x55, 0x4D, 0x59, 0x4D - .byte 0x5E, 0x4D, 0x62, 0x4D, 0x67, 0x4D, 0x6B, 0x4D, 0x70, 0x4D, 0x74, 0x4D, 0x79, 0x4D, 0x7D, 0x4D - .byte 0x81, 0x4D, 0x86, 0x4D, 0x8A, 0x4D, 0x8F, 0x4D, 0x93, 0x4D, 0x98, 0x4D, 0x9C, 0x4D, 0xA1, 0x4D - .byte 0xA5, 0x4D, 0xAA, 0x4D, 0xAE, 0x4D, 0xB3, 0x4D, 0xB7, 0x4D, 0xBC, 0x4D, 0xC0, 0x4D, 0xC5, 0x4D - .byte 0xC9, 0x4D, 0xCE, 0x4D, 0xD2, 0x4D, 0xD7, 0x4D, 0xDB, 0x4D, 0xE0, 0x4D, 0xE4, 0x4D, 0xE9, 0x4D - .byte 0xED, 0x4D, 0xF2, 0x4D, 0xF6, 0x4D, 0xFB, 0x4D, 0xFF, 0x4D, 0x04, 0x4E, 0x08, 0x4E, 0x0D, 0x4E - .byte 0x11, 0x4E, 0x16, 0x4E, 0x1A, 0x4E, 0x1F, 0x4E, 0x23, 0x4E, 0x28, 0x4E, 0x2C, 0x4E, 0x31, 0x4E - .byte 0x35, 0x4E, 0x3A, 0x4E, 0x3E, 0x4E, 0x43, 0x4E, 0x47, 0x4E, 0x4C, 0x4E, 0x50, 0x4E, 0x55, 0x4E - .byte 0x5A, 0x4E, 0x5E, 0x4E, 0x63, 0x4E, 0x67, 0x4E, 0x6C, 0x4E, 0x70, 0x4E, 0x75, 0x4E, 0x79, 0x4E - .byte 0x7E, 0x4E, 0x82, 0x4E, 0x87, 0x4E, 0x8B, 0x4E, 0x90, 0x4E, 0x94, 0x4E, 0x99, 0x4E, 0x9E, 0x4E - .byte 0xA2, 0x4E, 0xA7, 0x4E, 0xAB, 0x4E, 0xB0, 0x4E, 0xB4, 0x4E, 0xB9, 0x4E, 0xBD, 0x4E, 0xC2, 0x4E - .byte 0xC6, 0x4E, 0xCB, 0x4E, 0xD0, 0x4E, 0xD4, 0x4E, 0xD9, 0x4E, 0xDD, 0x4E, 0xE2, 0x4E, 0xE6, 0x4E - .byte 0xEB, 0x4E, 0xEF, 0x4E, 0xF4, 0x4E, 0xF9, 0x4E, 0xFD, 0x4E, 0x02, 0x4F, 0x06, 0x4F, 0x0B, 0x4F - .byte 0x0F, 0x4F, 0x14, 0x4F, 0x19, 0x4F, 0x1D, 0x4F, 0x22, 0x4F, 0x26, 0x4F, 0x2B, 0x4F, 0x2F, 0x4F - .byte 0x34, 0x4F, 0x39, 0x4F, 0x3D, 0x4F, 0x42, 0x4F, 0x46, 0x4F, 0x4B, 0x4F, 0x4F, 0x4F, 0x54, 0x4F - .byte 0x59, 0x4F, 0x5D, 0x4F, 0x62, 0x4F, 0x66, 0x4F, 0x6B, 0x4F, 0x70, 0x4F, 0x74, 0x4F, 0x79, 0x4F - .byte 0x7D, 0x4F, 0x82, 0x4F, 0x86, 0x4F, 0x8B, 0x4F, 0x90, 0x4F, 0x94, 0x4F, 0x99, 0x4F, 0x9D, 0x4F - .byte 0xA2, 0x4F, 0xA7, 0x4F, 0xAB, 0x4F, 0xB0, 0x4F, 0xB4, 0x4F, 0xB9, 0x4F, 0xBE, 0x4F, 0xC2, 0x4F - .byte 0xC7, 0x4F, 0xCB, 0x4F, 0xD0, 0x4F, 0xD5, 0x4F, 0xD9, 0x4F, 0xDE, 0x4F, 0xE3, 0x4F, 0xE7, 0x4F - .byte 0xEC, 0x4F, 0xF0, 0x4F, 0xF5, 0x4F, 0xFA, 0x4F, 0xFE, 0x4F, 0x03, 0x50, 0x08, 0x50, 0x0C, 0x50 - .byte 0x11, 0x50, 0x15, 0x50, 0x1A, 0x50, 0x1F, 0x50, 0x23, 0x50, 0x28, 0x50, 0x2D, 0x50, 0x31, 0x50 - .byte 0x36, 0x50, 0x3A, 0x50, 0x3F, 0x50, 0x44, 0x50, 0x48, 0x50, 0x4D, 0x50, 0x52, 0x50, 0x56, 0x50 - .byte 0x5B, 0x50, 0x60, 0x50, 0x64, 0x50, 0x69, 0x50, 0x6D, 0x50, 0x72, 0x50, 0x77, 0x50, 0x7B, 0x50 - .byte 0x80, 0x50, 0x85, 0x50, 0x89, 0x50, 0x8E, 0x50, 0x93, 0x50, 0x97, 0x50, 0x9C, 0x50, 0xA1, 0x50 - .byte 0xA5, 0x50, 0xAA, 0x50, 0xAF, 0x50, 0xB3, 0x50, 0xB8, 0x50, 0xBD, 0x50, 0xC1, 0x50, 0xC6, 0x50 - .byte 0xCB, 0x50, 0xCF, 0x50, 0xD4, 0x50, 0xD9, 0x50, 0xDD, 0x50, 0xE2, 0x50, 0xE7, 0x50, 0xEB, 0x50 - .byte 0xF0, 0x50, 0xF5, 0x50, 0xF9, 0x50, 0xFE, 0x50, 0x03, 0x51, 0x07, 0x51, 0x0C, 0x51, 0x11, 0x51 - .byte 0x15, 0x51, 0x1A, 0x51, 0x1F, 0x51, 0x23, 0x51, 0x28, 0x51, 0x2D, 0x51, 0x32, 0x51, 0x36, 0x51 - .byte 0x3B, 0x51, 0x40, 0x51, 0x44, 0x51, 0x49, 0x51, 0x4E, 0x51, 0x52, 0x51, 0x57, 0x51, 0x5C, 0x51 - .byte 0x60, 0x51, 0x65, 0x51, 0x6A, 0x51, 0x6F, 0x51, 0x73, 0x51, 0x78, 0x51, 0x7D, 0x51, 0x81, 0x51 - .byte 0x86, 0x51, 0x8B, 0x51, 0x90, 0x51, 0x94, 0x51, 0x99, 0x51, 0x9E, 0x51, 0xA2, 0x51, 0xA7, 0x51 - .byte 0xAC, 0x51, 0xB1, 0x51, 0xB5, 0x51, 0xBA, 0x51, 0xBF, 0x51, 0xC3, 0x51, 0xC8, 0x51, 0xCD, 0x51 - .byte 0xD2, 0x51, 0xD6, 0x51, 0xDB, 0x51, 0xE0, 0x51, 0xE4, 0x51, 0xE9, 0x51, 0xEE, 0x51, 0xF3, 0x51 - .byte 0xF7, 0x51, 0xFC, 0x51, 0x01, 0x52, 0x06, 0x52, 0x0A, 0x52, 0x0F, 0x52, 0x14, 0x52, 0x19, 0x52 - .byte 0x1D, 0x52, 0x22, 0x52, 0x27, 0x52, 0x2C, 0x52, 0x30, 0x52, 0x35, 0x52, 0x3A, 0x52, 0x3F, 0x52 - .byte 0x43, 0x52, 0x48, 0x52, 0x4D, 0x52, 0x52, 0x52, 0x56, 0x52, 0x5B, 0x52, 0x60, 0x52, 0x65, 0x52 - .byte 0x69, 0x52, 0x6E, 0x52, 0x73, 0x52, 0x78, 0x52, 0x7C, 0x52, 0x81, 0x52, 0x86, 0x52, 0x8B, 0x52 - .byte 0x8F, 0x52, 0x94, 0x52, 0x99, 0x52, 0x9E, 0x52, 0xA3, 0x52, 0xA7, 0x52, 0xAC, 0x52, 0xB1, 0x52 - .byte 0xB6, 0x52, 0xBA, 0x52, 0xBF, 0x52, 0xC4, 0x52, 0xC9, 0x52, 0xCE, 0x52, 0xD2, 0x52, 0xD7, 0x52 - .byte 0xDC, 0x52, 0xE1, 0x52, 0xE5, 0x52, 0xEA, 0x52, 0xEF, 0x52, 0xF4, 0x52, 0xF9, 0x52, 0xFD, 0x52 - .byte 0x02, 0x53, 0x07, 0x53, 0x0C, 0x53, 0x11, 0x53, 0x15, 0x53, 0x1A, 0x53, 0x1F, 0x53, 0x24, 0x53 - .byte 0x29, 0x53, 0x2D, 0x53, 0x32, 0x53, 0x37, 0x53, 0x3C, 0x53, 0x41, 0x53, 0x45, 0x53, 0x4A, 0x53 - .byte 0x4F, 0x53, 0x54, 0x53, 0x59, 0x53, 0x5E, 0x53, 0x62, 0x53, 0x67, 0x53, 0x6C, 0x53, 0x71, 0x53 - .byte 0x76, 0x53, 0x7A, 0x53, 0x7F, 0x53, 0x84, 0x53, 0x89, 0x53, 0x8E, 0x53, 0x93, 0x53, 0x97, 0x53 - .byte 0x9C, 0x53, 0xA1, 0x53, 0xA6, 0x53, 0xAB, 0x53, 0xB0, 0x53, 0xB4, 0x53, 0xB9, 0x53, 0xBE, 0x53 - .byte 0xC3, 0x53, 0xC8, 0x53, 0xCD, 0x53, 0xD1, 0x53, 0xD6, 0x53, 0xDB, 0x53, 0xE0, 0x53, 0xE5, 0x53 - .byte 0xEA, 0x53, 0xEE, 0x53, 0xF3, 0x53, 0xF8, 0x53, 0xFD, 0x53, 0x02, 0x54, 0x07, 0x54, 0x0C, 0x54 - .byte 0x10, 0x54, 0x15, 0x54, 0x1A, 0x54, 0x1F, 0x54, 0x24, 0x54, 0x29, 0x54, 0x2E, 0x54, 0x32, 0x54 - .byte 0x37, 0x54, 0x3C, 0x54, 0x41, 0x54, 0x46, 0x54, 0x4B, 0x54, 0x50, 0x54, 0x55, 0x54, 0x59, 0x54 - .byte 0x5E, 0x54, 0x63, 0x54, 0x68, 0x54, 0x6D, 0x54, 0x72, 0x54, 0x77, 0x54, 0x7C, 0x54, 0x80, 0x54 - .byte 0x85, 0x54, 0x8A, 0x54, 0x8F, 0x54, 0x94, 0x54, 0x99, 0x54, 0x9E, 0x54, 0xA3, 0x54, 0xA7, 0x54 - .byte 0xAC, 0x54, 0xB1, 0x54, 0xB6, 0x54, 0xBB, 0x54, 0xC0, 0x54, 0xC5, 0x54, 0xCA, 0x54, 0xCF, 0x54 - .byte 0xD4, 0x54, 0xD8, 0x54, 0xDD, 0x54, 0xE2, 0x54, 0xE7, 0x54, 0xEC, 0x54, 0xF1, 0x54, 0xF6, 0x54 - .byte 0xFB, 0x54, 0x00, 0x55, 0x05, 0x55, 0x0A, 0x55, 0x0E, 0x55, 0x13, 0x55, 0x18, 0x55, 0x1D, 0x55 - .byte 0x22, 0x55, 0x27, 0x55, 0x2C, 0x55, 0x31, 0x55, 0x36, 0x55, 0x3B, 0x55, 0x40, 0x55, 0x45, 0x55 - .byte 0x49, 0x55, 0x4E, 0x55, 0x53, 0x55, 0x58, 0x55, 0x5D, 0x55, 0x62, 0x55, 0x67, 0x55, 0x6C, 0x55 - .byte 0x71, 0x55, 0x76, 0x55, 0x7B, 0x55, 0x80, 0x55, 0x85, 0x55, 0x8A, 0x55, 0x8F, 0x55, 0x93, 0x55 - .byte 0x98, 0x55, 0x9D, 0x55, 0xA2, 0x55, 0xA7, 0x55, 0xAC, 0x55, 0xB1, 0x55, 0xB6, 0x55, 0xBB, 0x55 - .byte 0xC0, 0x55, 0xC5, 0x55, 0xCA, 0x55, 0xCF, 0x55, 0xD4, 0x55, 0xD9, 0x55, 0xDE, 0x55, 0xE3, 0x55 - .byte 0xE8, 0x55, 0xED, 0x55, 0xF2, 0x55, 0xF7, 0x55, 0xFC, 0x55, 0x01, 0x56, 0x05, 0x56, 0x0A, 0x56 - .byte 0x0F, 0x56, 0x14, 0x56, 0x19, 0x56, 0x1E, 0x56, 0x23, 0x56, 0x28, 0x56, 0x2D, 0x56, 0x32, 0x56 - .byte 0x37, 0x56, 0x3C, 0x56, 0x41, 0x56, 0x46, 0x56, 0x4B, 0x56, 0x50, 0x56, 0x55, 0x56, 0x5A, 0x56 - .byte 0x5F, 0x56, 0x64, 0x56, 0x69, 0x56, 0x6E, 0x56, 0x73, 0x56, 0x78, 0x56, 0x7D, 0x56, 0x82, 0x56 - .byte 0x87, 0x56, 0x8C, 0x56, 0x91, 0x56, 0x96, 0x56, 0x9B, 0x56, 0xA0, 0x56, 0xA5, 0x56, 0xAA, 0x56 - .byte 0xAF, 0x56, 0xB4, 0x56, 0xB9, 0x56, 0xBE, 0x56, 0xC3, 0x56, 0xC8, 0x56, 0xCD, 0x56, 0xD2, 0x56 - .byte 0xD7, 0x56, 0xDC, 0x56, 0xE1, 0x56, 0xE6, 0x56, 0xEB, 0x56, 0xF0, 0x56, 0xF5, 0x56, 0xFA, 0x56 - .byte 0xFF, 0x56, 0x04, 0x57, 0x09, 0x57, 0x0E, 0x57, 0x13, 0x57, 0x18, 0x57, 0x1D, 0x57, 0x23, 0x57 - .byte 0x28, 0x57, 0x2D, 0x57, 0x32, 0x57, 0x37, 0x57, 0x3C, 0x57, 0x41, 0x57, 0x46, 0x57, 0x4B, 0x57 - .byte 0x50, 0x57, 0x55, 0x57, 0x5A, 0x57, 0x5F, 0x57, 0x64, 0x57, 0x69, 0x57, 0x6E, 0x57, 0x73, 0x57 - .byte 0x78, 0x57, 0x7D, 0x57, 0x82, 0x57, 0x87, 0x57, 0x8C, 0x57, 0x92, 0x57, 0x97, 0x57, 0x9C, 0x57 - .byte 0xA1, 0x57, 0xA6, 0x57, 0xAB, 0x57, 0xB0, 0x57, 0xB5, 0x57, 0xBA, 0x57, 0xBF, 0x57, 0xC4, 0x57 - .byte 0xC9, 0x57, 0xCE, 0x57, 0xD3, 0x57, 0xD8, 0x57, 0xDE, 0x57, 0xE3, 0x57, 0xE8, 0x57, 0xED, 0x57 - .byte 0xF2, 0x57, 0xF7, 0x57, 0xFC, 0x57, 0x01, 0x58, 0x06, 0x58, 0x0B, 0x58, 0x10, 0x58, 0x15, 0x58 - .byte 0x1B, 0x58, 0x20, 0x58, 0x25, 0x58, 0x2A, 0x58, 0x2F, 0x58, 0x34, 0x58, 0x39, 0x58, 0x3E, 0x58 - .byte 0x43, 0x58, 0x48, 0x58, 0x4D, 0x58, 0x53, 0x58, 0x58, 0x58, 0x5D, 0x58, 0x62, 0x58, 0x67, 0x58 - .byte 0x6C, 0x58, 0x71, 0x58, 0x76, 0x58, 0x7B, 0x58, 0x81, 0x58, 0x86, 0x58, 0x8B, 0x58, 0x90, 0x58 - .byte 0x95, 0x58, 0x9A, 0x58, 0x9F, 0x58, 0xA4, 0x58, 0xA9, 0x58, 0xAF, 0x58, 0xB4, 0x58, 0xB9, 0x58 - .byte 0xBE, 0x58, 0xC3, 0x58, 0xC8, 0x58, 0xCD, 0x58, 0xD2, 0x58, 0xD8, 0x58, 0xDD, 0x58, 0xE2, 0x58 - .byte 0xE7, 0x58, 0xEC, 0x58, 0xF1, 0x58, 0xF6, 0x58, 0xFC, 0x58, 0x01, 0x59, 0x06, 0x59, 0x0B, 0x59 - .byte 0x10, 0x59, 0x15, 0x59, 0x1A, 0x59, 0x20, 0x59, 0x25, 0x59, 0x2A, 0x59, 0x2F, 0x59, 0x34, 0x59 - .byte 0x39, 0x59, 0x3E, 0x59, 0x44, 0x59, 0x49, 0x59, 0x4E, 0x59, 0x53, 0x59, 0x58, 0x59, 0x5D, 0x59 - .byte 0x63, 0x59, 0x68, 0x59, 0x6D, 0x59, 0x72, 0x59, 0x77, 0x59, 0x7C, 0x59, 0x82, 0x59, 0x87, 0x59 - .byte 0x8C, 0x59, 0x91, 0x59, 0x96, 0x59, 0x9B, 0x59, 0xA1, 0x59, 0xA6, 0x59, 0xAB, 0x59, 0xB0, 0x59 - .byte 0xB5, 0x59, 0xBB, 0x59, 0xC0, 0x59, 0xC5, 0x59, 0xCA, 0x59, 0xCF, 0x59, 0xD4, 0x59, 0xDA, 0x59 - .byte 0xDF, 0x59, 0xE4, 0x59, 0xE9, 0x59, 0xEE, 0x59, 0xF4, 0x59, 0xF9, 0x59, 0xFE, 0x59, 0x03, 0x5A - .byte 0x08, 0x5A, 0x0E, 0x5A, 0x13, 0x5A, 0x18, 0x5A, 0x1D, 0x5A, 0x22, 0x5A, 0x28, 0x5A, 0x2D, 0x5A - .byte 0x32, 0x5A, 0x37, 0x5A, 0x3C, 0x5A, 0x42, 0x5A, 0x47, 0x5A, 0x4C, 0x5A, 0x51, 0x5A, 0x57, 0x5A - .byte 0x5C, 0x5A, 0x61, 0x5A, 0x66, 0x5A, 0x6B, 0x5A, 0x71, 0x5A, 0x76, 0x5A, 0x7B, 0x5A, 0x80, 0x5A - .byte 0x86, 0x5A, 0x8B, 0x5A, 0x90, 0x5A, 0x95, 0x5A, 0x9A, 0x5A, 0xA0, 0x5A, 0xA5, 0x5A, 0xAA, 0x5A - .byte 0xAF, 0x5A, 0xB5, 0x5A, 0xBA, 0x5A, 0xBF, 0x5A, 0xC4, 0x5A, 0xCA, 0x5A, 0xCF, 0x5A, 0xD4, 0x5A - .byte 0xD9, 0x5A, 0xDF, 0x5A, 0xE4, 0x5A, 0xE9, 0x5A, 0xEE, 0x5A, 0xF4, 0x5A, 0xF9, 0x5A, 0xFE, 0x5A - .byte 0x03, 0x5B, 0x09, 0x5B, 0x0E, 0x5B, 0x13, 0x5B, 0x18, 0x5B, 0x1E, 0x5B, 0x23, 0x5B, 0x28, 0x5B - .byte 0x2D, 0x5B, 0x33, 0x5B, 0x38, 0x5B, 0x3D, 0x5B, 0x43, 0x5B, 0x48, 0x5B, 0x4D, 0x5B, 0x52, 0x5B - .byte 0x58, 0x5B, 0x5D, 0x5B, 0x62, 0x5B, 0x67, 0x5B, 0x6D, 0x5B, 0x72, 0x5B, 0x77, 0x5B, 0x7D, 0x5B - .byte 0x82, 0x5B, 0x87, 0x5B, 0x8C, 0x5B, 0x92, 0x5B, 0x97, 0x5B, 0x9C, 0x5B, 0xA2, 0x5B, 0xA7, 0x5B - .byte 0xAC, 0x5B, 0xB2, 0x5B, 0xB7, 0x5B, 0xBC, 0x5B, 0xC1, 0x5B, 0xC7, 0x5B, 0xCC, 0x5B, 0xD1, 0x5B - .byte 0xD7, 0x5B, 0xDC, 0x5B, 0xE1, 0x5B, 0xE7, 0x5B, 0xEC, 0x5B, 0xF1, 0x5B, 0xF6, 0x5B, 0xFC, 0x5B - .byte 0x01, 0x5C, 0x06, 0x5C, 0x0C, 0x5C, 0x11, 0x5C, 0x16, 0x5C, 0x1C, 0x5C, 0x21, 0x5C, 0x26, 0x5C - .byte 0x2C, 0x5C, 0x31, 0x5C, 0x36, 0x5C, 0x3C, 0x5C, 0x41, 0x5C, 0x46, 0x5C, 0x4C, 0x5C, 0x51, 0x5C - .byte 0x56, 0x5C, 0x5C, 0x5C, 0x61, 0x5C, 0x66, 0x5C, 0x6C, 0x5C, 0x71, 0x5C, 0x76, 0x5C, 0x7C, 0x5C - .byte 0x81, 0x5C, 0x86, 0x5C, 0x8C, 0x5C, 0x91, 0x5C, 0x96, 0x5C, 0x9C, 0x5C, 0xA1, 0x5C, 0xA6, 0x5C - .byte 0xAC, 0x5C, 0xB1, 0x5C, 0xB6, 0x5C, 0xBC, 0x5C, 0xC1, 0x5C, 0xC7, 0x5C, 0xCC, 0x5C, 0xD1, 0x5C - .byte 0xD7, 0x5C, 0xDC, 0x5C, 0xE1, 0x5C, 0xE7, 0x5C, 0xEC, 0x5C, 0xF1, 0x5C, 0xF7, 0x5C, 0xFC, 0x5C - .byte 0x02, 0x5D, 0x07, 0x5D, 0x0C, 0x5D, 0x12, 0x5D, 0x17, 0x5D, 0x1C, 0x5D, 0x22, 0x5D, 0x27, 0x5D - .byte 0x2D, 0x5D, 0x32, 0x5D, 0x37, 0x5D, 0x3D, 0x5D, 0x42, 0x5D, 0x48, 0x5D, 0x4D, 0x5D, 0x52, 0x5D - .byte 0x58, 0x5D, 0x5D, 0x5D, 0x62, 0x5D, 0x68, 0x5D, 0x6D, 0x5D, 0x73, 0x5D, 0x78, 0x5D, 0x7D, 0x5D - .byte 0x83, 0x5D, 0x88, 0x5D, 0x8E, 0x5D, 0x93, 0x5D, 0x98, 0x5D, 0x9E, 0x5D, 0xA3, 0x5D, 0xA9, 0x5D - .byte 0xAE, 0x5D, 0xB4, 0x5D, 0xB9, 0x5D, 0xBE, 0x5D, 0xC4, 0x5D, 0xC9, 0x5D, 0xCF, 0x5D, 0xD4, 0x5D - .byte 0xD9, 0x5D, 0xDF, 0x5D, 0xE4, 0x5D, 0xEA, 0x5D, 0xEF, 0x5D, 0xF5, 0x5D, 0xFA, 0x5D, 0xFF, 0x5D - .byte 0x05, 0x5E, 0x0A, 0x5E, 0x10, 0x5E, 0x15, 0x5E, 0x1B, 0x5E, 0x20, 0x5E, 0x25, 0x5E, 0x2B, 0x5E - .byte 0x30, 0x5E, 0x36, 0x5E, 0x3B, 0x5E, 0x41, 0x5E, 0x46, 0x5E, 0x4C, 0x5E, 0x51, 0x5E, 0x56, 0x5E - .byte 0x5C, 0x5E, 0x61, 0x5E, 0x67, 0x5E, 0x6C, 0x5E, 0x72, 0x5E, 0x77, 0x5E, 0x7D, 0x5E, 0x82, 0x5E - .byte 0x88, 0x5E, 0x8D, 0x5E, 0x92, 0x5E, 0x98, 0x5E, 0x9D, 0x5E, 0xA3, 0x5E, 0xA8, 0x5E, 0xAE, 0x5E - .byte 0xB3, 0x5E, 0xB9, 0x5E, 0xBE, 0x5E, 0xC4, 0x5E, 0xC9, 0x5E, 0xCF, 0x5E, 0xD4, 0x5E, 0xDA, 0x5E - .byte 0xDF, 0x5E, 0xE5, 0x5E, 0xEA, 0x5E, 0xEF, 0x5E, 0xF5, 0x5E, 0xFA, 0x5E, 0x00, 0x5F, 0x05, 0x5F - .byte 0x0B, 0x5F, 0x10, 0x5F, 0x16, 0x5F, 0x1B, 0x5F, 0x21, 0x5F, 0x26, 0x5F, 0x2C, 0x5F, 0x31, 0x5F - .byte 0x37, 0x5F, 0x3C, 0x5F, 0x42, 0x5F, 0x47, 0x5F, 0x4D, 0x5F, 0x52, 0x5F, 0x58, 0x5F, 0x5D, 0x5F - .byte 0x63, 0x5F, 0x68, 0x5F, 0x6E, 0x5F, 0x73, 0x5F, 0x79, 0x5F, 0x7E, 0x5F, 0x84, 0x5F, 0x8A, 0x5F - .byte 0x8F, 0x5F, 0x95, 0x5F, 0x9A, 0x5F, 0xA0, 0x5F, 0xA5, 0x5F, 0xAB, 0x5F, 0xB0, 0x5F, 0xB6, 0x5F - .byte 0xBB, 0x5F, 0xC1, 0x5F, 0xC6, 0x5F, 0xCC, 0x5F, 0xD1, 0x5F, 0xD7, 0x5F, 0xDC, 0x5F, 0xE2, 0x5F - .byte 0xE8, 0x5F, 0xED, 0x5F, 0xF3, 0x5F, 0xF8, 0x5F, 0xFE, 0x5F, 0x03, 0x60, 0x09, 0x60, 0x0E, 0x60 - .byte 0x14, 0x60, 0x19, 0x60, 0x1F, 0x60, 0x25, 0x60, 0x2A, 0x60, 0x30, 0x60, 0x35, 0x60, 0x3B, 0x60 - .byte 0x40, 0x60, 0x46, 0x60, 0x4B, 0x60, 0x51, 0x60, 0x57, 0x60, 0x5C, 0x60, 0x62, 0x60, 0x67, 0x60 - .byte 0x6D, 0x60, 0x72, 0x60, 0x78, 0x60, 0x7E, 0x60, 0x83, 0x60, 0x89, 0x60, 0x8E, 0x60, 0x94, 0x60 - .byte 0x99, 0x60, 0x9F, 0x60, 0xA5, 0x60, 0xAA, 0x60, 0xB0, 0x60, 0xB5, 0x60, 0xBB, 0x60, 0xC1, 0x60 - .byte 0xC6, 0x60, 0xCC, 0x60, 0xD1, 0x60, 0xD7, 0x60, 0xDC, 0x60, 0xE2, 0x60, 0xE8, 0x60, 0xED, 0x60 - .byte 0xF3, 0x60, 0xF8, 0x60, 0xFE, 0x60, 0x04, 0x61, 0x09, 0x61, 0x0F, 0x61, 0x14, 0x61, 0x1A, 0x61 - .byte 0x20, 0x61, 0x25, 0x61, 0x2B, 0x61, 0x31, 0x61, 0x36, 0x61, 0x3C, 0x61, 0x41, 0x61, 0x47, 0x61 - .byte 0x4D, 0x61, 0x52, 0x61, 0x58, 0x61, 0x5D, 0x61, 0x63, 0x61, 0x69, 0x61, 0x6E, 0x61, 0x74, 0x61 - .byte 0x7A, 0x61, 0x7F, 0x61, 0x85, 0x61, 0x8B, 0x61, 0x90, 0x61, 0x96, 0x61, 0x9B, 0x61, 0xA1, 0x61 - .byte 0xA7, 0x61, 0xAC, 0x61, 0xB2, 0x61, 0xB8, 0x61, 0xBD, 0x61, 0xC3, 0x61, 0xC9, 0x61, 0xCE, 0x61 - .byte 0xD4, 0x61, 0xDA, 0x61, 0xDF, 0x61, 0xE5, 0x61, 0xEA, 0x61, 0xF0, 0x61, 0xF6, 0x61, 0xFB, 0x61 - .byte 0x01, 0x62, 0x07, 0x62, 0x0C, 0x62, 0x12, 0x62, 0x18, 0x62, 0x1D, 0x62, 0x23, 0x62, 0x29, 0x62 - .byte 0x2E, 0x62, 0x34, 0x62, 0x3A, 0x62, 0x3F, 0x62, 0x45, 0x62, 0x4B, 0x62, 0x50, 0x62, 0x56, 0x62 - .byte 0x5C, 0x62, 0x62, 0x62, 0x67, 0x62, 0x6D, 0x62, 0x73, 0x62, 0x78, 0x62, 0x7E, 0x62, 0x84, 0x62 - .byte 0x89, 0x62, 0x8F, 0x62, 0x95, 0x62, 0x9A, 0x62, 0xA0, 0x62, 0xA6, 0x62, 0xAC, 0x62, 0xB1, 0x62 - .byte 0xB7, 0x62, 0xBD, 0x62, 0xC2, 0x62, 0xC8, 0x62, 0xCE, 0x62, 0xD3, 0x62, 0xD9, 0x62, 0xDF, 0x62 - .byte 0xE5, 0x62, 0xEA, 0x62, 0xF0, 0x62, 0xF6, 0x62, 0xFB, 0x62, 0x01, 0x63, 0x07, 0x63, 0x0D, 0x63 - .byte 0x12, 0x63, 0x18, 0x63, 0x1E, 0x63, 0x23, 0x63, 0x29, 0x63, 0x2F, 0x63, 0x35, 0x63, 0x3A, 0x63 - .byte 0x40, 0x63, 0x46, 0x63, 0x4C, 0x63, 0x51, 0x63, 0x57, 0x63, 0x5D, 0x63, 0x63, 0x63, 0x68, 0x63 - .byte 0x6E, 0x63, 0x74, 0x63, 0x7A, 0x63, 0x7F, 0x63, 0x85, 0x63, 0x8B, 0x63, 0x91, 0x63, 0x96, 0x63 - .byte 0x9C, 0x63, 0xA2, 0x63, 0xA8, 0x63, 0xAD, 0x63, 0xB3, 0x63, 0xB9, 0x63, 0xBF, 0x63, 0xC4, 0x63 - .byte 0xCA, 0x63, 0xD0, 0x63, 0xD6, 0x63, 0xDB, 0x63, 0xE1, 0x63, 0xE7, 0x63, 0xED, 0x63, 0xF2, 0x63 - .byte 0xF8, 0x63, 0xFE, 0x63, 0x04, 0x64, 0x0A, 0x64, 0x0F, 0x64, 0x15, 0x64, 0x1B, 0x64, 0x21, 0x64 - .byte 0x27, 0x64, 0x2C, 0x64, 0x32, 0x64, 0x38, 0x64, 0x3E, 0x64, 0x43, 0x64, 0x49, 0x64, 0x4F, 0x64 - .byte 0x55, 0x64, 0x5B, 0x64, 0x60, 0x64, 0x66, 0x64, 0x6C, 0x64, 0x72, 0x64, 0x78, 0x64, 0x7D, 0x64 - .byte 0x83, 0x64, 0x89, 0x64, 0x8F, 0x64, 0x95, 0x64, 0x9A, 0x64, 0xA0, 0x64, 0xA6, 0x64, 0xAC, 0x64 - .byte 0xB2, 0x64, 0xB8, 0x64, 0xBD, 0x64, 0xC3, 0x64, 0xC9, 0x64, 0xCF, 0x64, 0xD5, 0x64, 0xDA, 0x64 - .byte 0xE0, 0x64, 0xE6, 0x64, 0xEC, 0x64, 0xF2, 0x64, 0xF8, 0x64, 0xFD, 0x64, 0x03, 0x65, 0x09, 0x65 - .byte 0x0F, 0x65, 0x15, 0x65, 0x1B, 0x65, 0x20, 0x65, 0x26, 0x65, 0x2C, 0x65, 0x32, 0x65, 0x38, 0x65 - .byte 0x3E, 0x65, 0x44, 0x65, 0x49, 0x65, 0x4F, 0x65, 0x55, 0x65, 0x5B, 0x65, 0x61, 0x65, 0x67, 0x65 - .byte 0x6D, 0x65, 0x72, 0x65, 0x78, 0x65, 0x7E, 0x65, 0x84, 0x65, 0x8A, 0x65, 0x90, 0x65, 0x96, 0x65 - .byte 0x9B, 0x65, 0xA1, 0x65, 0xA7, 0x65, 0xAD, 0x65, 0xB3, 0x65, 0xB9, 0x65, 0xBF, 0x65, 0xC5, 0x65 - .byte 0xCA, 0x65, 0xD0, 0x65, 0xD6, 0x65, 0xDC, 0x65, 0xE2, 0x65, 0xE8, 0x65, 0xEE, 0x65, 0xF4, 0x65 - .byte 0xF9, 0x65, 0xFF, 0x65, 0x05, 0x66, 0x0B, 0x66, 0x11, 0x66, 0x17, 0x66, 0x1D, 0x66, 0x23, 0x66 - .byte 0x29, 0x66, 0x2F, 0x66, 0x34, 0x66, 0x3A, 0x66, 0x40, 0x66, 0x46, 0x66, 0x4C, 0x66, 0x52, 0x66 - .byte 0x58, 0x66, 0x5E, 0x66, 0x64, 0x66, 0x6A, 0x66, 0x70, 0x66, 0x75, 0x66, 0x7B, 0x66, 0x81, 0x66 - .byte 0x87, 0x66, 0x8D, 0x66, 0x93, 0x66, 0x99, 0x66, 0x9F, 0x66, 0xA5, 0x66, 0xAB, 0x66, 0xB1, 0x66 - .byte 0xB7, 0x66, 0xBD, 0x66, 0xC3, 0x66, 0xC8, 0x66, 0xCE, 0x66, 0xD4, 0x66, 0xDA, 0x66, 0xE0, 0x66 - .byte 0xE6, 0x66, 0xEC, 0x66, 0xF2, 0x66, 0xF8, 0x66, 0xFE, 0x66, 0x04, 0x67, 0x0A, 0x67, 0x10, 0x67 - .byte 0x16, 0x67, 0x1C, 0x67, 0x22, 0x67, 0x28, 0x67, 0x2E, 0x67, 0x34, 0x67, 0x3A, 0x67, 0x3F, 0x67 - .byte 0x45, 0x67, 0x4B, 0x67, 0x51, 0x67, 0x57, 0x67, 0x5D, 0x67, 0x63, 0x67, 0x69, 0x67, 0x6F, 0x67 - .byte 0x75, 0x67, 0x7B, 0x67, 0x81, 0x67, 0x87, 0x67, 0x8D, 0x67, 0x93, 0x67, 0x99, 0x67, 0x9F, 0x67 - .byte 0xA5, 0x67, 0xAB, 0x67, 0xB1, 0x67, 0xB7, 0x67, 0xBD, 0x67, 0xC3, 0x67, 0xC9, 0x67, 0xCF, 0x67 - .byte 0xD5, 0x67, 0xDB, 0x67, 0xE1, 0x67, 0xE7, 0x67, 0xED, 0x67, 0xF3, 0x67, 0xF9, 0x67, 0xFF, 0x67 - .byte 0x05, 0x68, 0x0B, 0x68, 0x11, 0x68, 0x17, 0x68, 0x1D, 0x68, 0x23, 0x68, 0x29, 0x68, 0x2F, 0x68 - .byte 0x35, 0x68, 0x3B, 0x68, 0x41, 0x68, 0x47, 0x68, 0x4D, 0x68, 0x53, 0x68, 0x59, 0x68, 0x5F, 0x68 - .byte 0x65, 0x68, 0x6B, 0x68, 0x71, 0x68, 0x77, 0x68, 0x7D, 0x68, 0x83, 0x68, 0x8A, 0x68, 0x90, 0x68 - .byte 0x96, 0x68, 0x9C, 0x68, 0xA2, 0x68, 0xA8, 0x68, 0xAE, 0x68, 0xB4, 0x68, 0xBA, 0x68, 0xC0, 0x68 - .byte 0xC6, 0x68, 0xCC, 0x68, 0xD2, 0x68, 0xD8, 0x68, 0xDE, 0x68, 0xE4, 0x68, 0xEA, 0x68, 0xF0, 0x68 - .byte 0xF6, 0x68, 0xFD, 0x68, 0x03, 0x69, 0x09, 0x69, 0x0F, 0x69, 0x15, 0x69, 0x1B, 0x69, 0x21, 0x69 - .byte 0x27, 0x69, 0x2D, 0x69, 0x33, 0x69, 0x39, 0x69, 0x3F, 0x69, 0x45, 0x69, 0x4B, 0x69, 0x52, 0x69 - .byte 0x58, 0x69, 0x5E, 0x69, 0x64, 0x69, 0x6A, 0x69, 0x70, 0x69, 0x76, 0x69, 0x7C, 0x69, 0x82, 0x69 - .byte 0x88, 0x69, 0x8E, 0x69, 0x95, 0x69, 0x9B, 0x69, 0xA1, 0x69, 0xA7, 0x69, 0xAD, 0x69, 0xB3, 0x69 - .byte 0xB9, 0x69, 0xBF, 0x69, 0xC5, 0x69, 0xCB, 0x69, 0xD2, 0x69, 0xD8, 0x69, 0xDE, 0x69, 0xE4, 0x69 - .byte 0xEA, 0x69, 0xF0, 0x69, 0xF6, 0x69, 0xFC, 0x69, 0x03, 0x6A, 0x09, 0x6A, 0x0F, 0x6A, 0x15, 0x6A - .byte 0x1B, 0x6A, 0x21, 0x6A, 0x27, 0x6A, 0x2D, 0x6A, 0x34, 0x6A, 0x3A, 0x6A, 0x40, 0x6A, 0x46, 0x6A - .byte 0x4C, 0x6A, 0x52, 0x6A, 0x58, 0x6A, 0x5F, 0x6A, 0x65, 0x6A, 0x6B, 0x6A, 0x71, 0x6A, 0x77, 0x6A - .byte 0x7D, 0x6A, 0x83, 0x6A, 0x8A, 0x6A, 0x90, 0x6A, 0x96, 0x6A, 0x9C, 0x6A, 0xA2, 0x6A, 0xA8, 0x6A - .byte 0xAF, 0x6A, 0xB5, 0x6A, 0xBB, 0x6A, 0xC1, 0x6A, 0xC7, 0x6A, 0xCD, 0x6A, 0xD4, 0x6A, 0xDA, 0x6A - .byte 0xE0, 0x6A, 0xE6, 0x6A, 0xEC, 0x6A, 0xF2, 0x6A, 0xF9, 0x6A, 0xFF, 0x6A, 0x05, 0x6B, 0x0B, 0x6B - .byte 0x11, 0x6B, 0x17, 0x6B, 0x1E, 0x6B, 0x24, 0x6B, 0x2A, 0x6B, 0x30, 0x6B, 0x36, 0x6B, 0x3D, 0x6B - .byte 0x43, 0x6B, 0x49, 0x6B, 0x4F, 0x6B, 0x55, 0x6B, 0x5C, 0x6B, 0x62, 0x6B, 0x68, 0x6B, 0x6E, 0x6B - .byte 0x74, 0x6B, 0x7B, 0x6B, 0x81, 0x6B, 0x87, 0x6B, 0x8D, 0x6B, 0x93, 0x6B, 0x9A, 0x6B, 0xA0, 0x6B - .byte 0xA6, 0x6B, 0xAC, 0x6B, 0xB3, 0x6B, 0xB9, 0x6B, 0xBF, 0x6B, 0xC5, 0x6B, 0xCB, 0x6B, 0xD2, 0x6B - .byte 0xD8, 0x6B, 0xDE, 0x6B, 0xE4, 0x6B, 0xEB, 0x6B, 0xF1, 0x6B, 0xF7, 0x6B, 0xFD, 0x6B, 0x04, 0x6C - .byte 0x0A, 0x6C, 0x10, 0x6C, 0x16, 0x6C, 0x1D, 0x6C, 0x23, 0x6C, 0x29, 0x6C, 0x2F, 0x6C, 0x36, 0x6C - .byte 0x3C, 0x6C, 0x42, 0x6C, 0x48, 0x6C, 0x4F, 0x6C, 0x55, 0x6C, 0x5B, 0x6C, 0x61, 0x6C, 0x68, 0x6C - .byte 0x6E, 0x6C, 0x74, 0x6C, 0x7A, 0x6C, 0x81, 0x6C, 0x87, 0x6C, 0x8D, 0x6C, 0x93, 0x6C, 0x9A, 0x6C - .byte 0xA0, 0x6C, 0xA6, 0x6C, 0xAD, 0x6C, 0xB3, 0x6C, 0xB9, 0x6C, 0xBF, 0x6C, 0xC6, 0x6C, 0xCC, 0x6C - .byte 0xD2, 0x6C, 0xD9, 0x6C, 0xDF, 0x6C, 0xE5, 0x6C, 0xEB, 0x6C, 0xF2, 0x6C, 0xF8, 0x6C, 0xFE, 0x6C - .byte 0x05, 0x6D, 0x0B, 0x6D, 0x11, 0x6D, 0x17, 0x6D, 0x1E, 0x6D, 0x24, 0x6D, 0x2A, 0x6D, 0x31, 0x6D - .byte 0x37, 0x6D, 0x3D, 0x6D, 0x44, 0x6D, 0x4A, 0x6D, 0x50, 0x6D, 0x57, 0x6D, 0x5D, 0x6D, 0x63, 0x6D - .byte 0x69, 0x6D, 0x70, 0x6D, 0x76, 0x6D, 0x7C, 0x6D, 0x83, 0x6D, 0x89, 0x6D, 0x8F, 0x6D, 0x96, 0x6D - .byte 0x9C, 0x6D, 0xA2, 0x6D, 0xA9, 0x6D, 0xAF, 0x6D, 0xB5, 0x6D, 0xBC, 0x6D, 0xC2, 0x6D, 0xC8, 0x6D - .byte 0xCF, 0x6D, 0xD5, 0x6D, 0xDB, 0x6D, 0xE2, 0x6D, 0xE8, 0x6D, 0xEF, 0x6D, 0xF5, 0x6D, 0xFB, 0x6D - .byte 0x02, 0x6E, 0x08, 0x6E, 0x0E, 0x6E, 0x15, 0x6E, 0x1B, 0x6E, 0x21, 0x6E, 0x28, 0x6E, 0x2E, 0x6E - .byte 0x34, 0x6E, 0x3B, 0x6E, 0x41, 0x6E, 0x48, 0x6E, 0x4E, 0x6E, 0x54, 0x6E, 0x5B, 0x6E, 0x61, 0x6E - .byte 0x67, 0x6E, 0x6E, 0x6E, 0x74, 0x6E, 0x7B, 0x6E, 0x81, 0x6E, 0x87, 0x6E, 0x8E, 0x6E, 0x94, 0x6E - .byte 0x9B, 0x6E, 0xA1, 0x6E, 0xA7, 0x6E, 0xAE, 0x6E, 0xB4, 0x6E, 0xBA, 0x6E, 0xC1, 0x6E, 0xC7, 0x6E - .byte 0xCE, 0x6E, 0xD4, 0x6E, 0xDA, 0x6E, 0xE1, 0x6E, 0xE7, 0x6E, 0xEE, 0x6E, 0xF4, 0x6E, 0xFA, 0x6E - .byte 0x01, 0x6F, 0x07, 0x6F, 0x0E, 0x6F, 0x14, 0x6F, 0x1B, 0x6F, 0x21, 0x6F, 0x27, 0x6F, 0x2E, 0x6F - .byte 0x34, 0x6F, 0x3B, 0x6F, 0x41, 0x6F, 0x48, 0x6F, 0x4E, 0x6F, 0x54, 0x6F, 0x5B, 0x6F, 0x61, 0x6F - .byte 0x68, 0x6F, 0x6E, 0x6F, 0x75, 0x6F, 0x7B, 0x6F, 0x81, 0x6F, 0x88, 0x6F, 0x8E, 0x6F, 0x95, 0x6F - .byte 0x9B, 0x6F, 0xA2, 0x6F, 0xA8, 0x6F, 0xAF, 0x6F, 0xB5, 0x6F, 0xBB, 0x6F, 0xC2, 0x6F, 0xC8, 0x6F - .byte 0xCF, 0x6F, 0xD5, 0x6F, 0xDC, 0x6F, 0xE2, 0x6F, 0xE9, 0x6F, 0xEF, 0x6F, 0xF6, 0x6F, 0xFC, 0x6F - .byte 0x03, 0x70, 0x09, 0x70, 0x0F, 0x70, 0x16, 0x70, 0x1C, 0x70, 0x23, 0x70, 0x29, 0x70, 0x30, 0x70 - .byte 0x36, 0x70, 0x3D, 0x70, 0x43, 0x70, 0x4A, 0x70, 0x50, 0x70, 0x57, 0x70, 0x5D, 0x70, 0x64, 0x70 - .byte 0x6A, 0x70, 0x71, 0x70, 0x77, 0x70, 0x7E, 0x70, 0x84, 0x70, 0x8B, 0x70, 0x91, 0x70, 0x98, 0x70 - .byte 0x9E, 0x70, 0xA5, 0x70, 0xAB, 0x70, 0xB2, 0x70, 0xB8, 0x70, 0xBF, 0x70, 0xC5, 0x70, 0xCC, 0x70 - .byte 0xD2, 0x70, 0xD9, 0x70, 0xDF, 0x70, 0xE6, 0x70, 0xEC, 0x70, 0xF3, 0x70, 0xF9, 0x70, 0x00, 0x71 - .byte 0x07, 0x71, 0x0D, 0x71, 0x14, 0x71, 0x1A, 0x71, 0x21, 0x71, 0x27, 0x71, 0x2E, 0x71, 0x34, 0x71 - .byte 0x3B, 0x71, 0x41, 0x71, 0x48, 0x71, 0x4E, 0x71, 0x55, 0x71, 0x5C, 0x71, 0x62, 0x71, 0x69, 0x71 - .byte 0x6F, 0x71, 0x76, 0x71, 0x7C, 0x71, 0x83, 0x71, 0x89, 0x71, 0x90, 0x71, 0x96, 0x71, 0x9D, 0x71 - .byte 0xA4, 0x71, 0xAA, 0x71, 0xB1, 0x71, 0xB7, 0x71, 0xBE, 0x71, 0xC4, 0x71, 0xCB, 0x71, 0xD2, 0x71 - .byte 0xD8, 0x71, 0xDF, 0x71, 0xE5, 0x71, 0xEC, 0x71, 0xF2, 0x71, 0xF9, 0x71, 0x00, 0x72, 0x06, 0x72 - .byte 0x0D, 0x72, 0x13, 0x72, 0x1A, 0x72, 0x21, 0x72, 0x27, 0x72, 0x2E, 0x72, 0x34, 0x72, 0x3B, 0x72 - .byte 0x42, 0x72, 0x48, 0x72, 0x4F, 0x72, 0x55, 0x72, 0x5C, 0x72, 0x63, 0x72, 0x69, 0x72, 0x70, 0x72 - .byte 0x76, 0x72, 0x7D, 0x72, 0x84, 0x72, 0x8A, 0x72, 0x91, 0x72, 0x98, 0x72, 0x9E, 0x72, 0xA5, 0x72 - .byte 0xAB, 0x72, 0xB2, 0x72, 0xB9, 0x72, 0xBF, 0x72, 0xC6, 0x72, 0xCD, 0x72, 0xD3, 0x72, 0xDA, 0x72 - .byte 0xE0, 0x72, 0xE7, 0x72, 0xEE, 0x72, 0xF4, 0x72, 0xFB, 0x72, 0x02, 0x73, 0x08, 0x73, 0x0F, 0x73 - .byte 0x16, 0x73, 0x1C, 0x73, 0x23, 0x73, 0x29, 0x73, 0x30, 0x73, 0x37, 0x73, 0x3D, 0x73, 0x44, 0x73 - .byte 0x4B, 0x73, 0x51, 0x73, 0x58, 0x73, 0x5F, 0x73, 0x65, 0x73, 0x6C, 0x73, 0x73, 0x73, 0x79, 0x73 - .byte 0x80, 0x73, 0x87, 0x73, 0x8D, 0x73, 0x94, 0x73, 0x9B, 0x73, 0xA1, 0x73, 0xA8, 0x73, 0xAF, 0x73 - .byte 0xB6, 0x73, 0xBC, 0x73, 0xC3, 0x73, 0xCA, 0x73, 0xD0, 0x73, 0xD7, 0x73, 0xDE, 0x73, 0xE4, 0x73 - .byte 0xEB, 0x73, 0xF2, 0x73, 0xF8, 0x73, 0xFF, 0x73, 0x06, 0x74, 0x0D, 0x74, 0x13, 0x74, 0x1A, 0x74 - .byte 0x21, 0x74, 0x27, 0x74, 0x2E, 0x74, 0x35, 0x74, 0x3B, 0x74, 0x42, 0x74, 0x49, 0x74, 0x50, 0x74 - .byte 0x56, 0x74, 0x5D, 0x74, 0x64, 0x74, 0x6B, 0x74, 0x71, 0x74, 0x78, 0x74, 0x7F, 0x74, 0x85, 0x74 - .byte 0x8C, 0x74, 0x93, 0x74, 0x9A, 0x74, 0xA0, 0x74, 0xA7, 0x74, 0xAE, 0x74, 0xB5, 0x74, 0xBB, 0x74 - .byte 0xC2, 0x74, 0xC9, 0x74, 0xD0, 0x74, 0xD6, 0x74, 0xDD, 0x74, 0xE4, 0x74, 0xEB, 0x74, 0xF1, 0x74 - .byte 0xF8, 0x74, 0xFF, 0x74, 0x06, 0x75, 0x0C, 0x75, 0x13, 0x75, 0x1A, 0x75, 0x21, 0x75, 0x27, 0x75 - .byte 0x2E, 0x75, 0x35, 0x75, 0x3C, 0x75, 0x42, 0x75, 0x49, 0x75, 0x50, 0x75, 0x57, 0x75, 0x5E, 0x75 - .byte 0x64, 0x75, 0x6B, 0x75, 0x72, 0x75, 0x79, 0x75, 0x80, 0x75, 0x86, 0x75, 0x8D, 0x75, 0x94, 0x75 - .byte 0x9B, 0x75, 0xA1, 0x75, 0xA8, 0x75, 0xAF, 0x75, 0xB6, 0x75, 0xBD, 0x75, 0xC3, 0x75, 0xCA, 0x75 - .byte 0xD1, 0x75, 0xD8, 0x75, 0xDF, 0x75, 0xE5, 0x75, 0xEC, 0x75, 0xF3, 0x75, 0xFA, 0x75, 0x01, 0x76 - .byte 0x08, 0x76, 0x0E, 0x76, 0x15, 0x76, 0x1C, 0x76, 0x23, 0x76, 0x2A, 0x76, 0x30, 0x76, 0x37, 0x76 - .byte 0x3E, 0x76, 0x45, 0x76, 0x4C, 0x76, 0x53, 0x76, 0x59, 0x76, 0x60, 0x76, 0x67, 0x76, 0x6E, 0x76 - .byte 0x75, 0x76, 0x7C, 0x76, 0x83, 0x76, 0x89, 0x76, 0x90, 0x76, 0x97, 0x76, 0x9E, 0x76, 0xA5, 0x76 - .byte 0xAC, 0x76, 0xB2, 0x76, 0xB9, 0x76, 0xC0, 0x76, 0xC7, 0x76, 0xCE, 0x76, 0xD5, 0x76, 0xDC, 0x76 - .byte 0xE3, 0x76, 0xE9, 0x76, 0xF0, 0x76, 0xF7, 0x76, 0xFE, 0x76, 0x05, 0x77, 0x0C, 0x77, 0x13, 0x77 - .byte 0x19, 0x77, 0x20, 0x77, 0x27, 0x77, 0x2E, 0x77, 0x35, 0x77, 0x3C, 0x77, 0x43, 0x77, 0x4A, 0x77 - .byte 0x51, 0x77, 0x57, 0x77, 0x5E, 0x77, 0x65, 0x77, 0x6C, 0x77, 0x73, 0x77, 0x7A, 0x77, 0x81, 0x77 - .byte 0x88, 0x77, 0x8F, 0x77, 0x96, 0x77, 0x9C, 0x77, 0xA3, 0x77, 0xAA, 0x77, 0xB1, 0x77, 0xB8, 0x77 - .byte 0xBF, 0x77, 0xC6, 0x77, 0xCD, 0x77, 0xD4, 0x77, 0xDB, 0x77, 0xE2, 0x77, 0xE9, 0x77, 0xEF, 0x77 - .byte 0xF6, 0x77, 0xFD, 0x77, 0x04, 0x78, 0x0B, 0x78, 0x12, 0x78, 0x19, 0x78, 0x20, 0x78, 0x27, 0x78 - .byte 0x2E, 0x78, 0x35, 0x78, 0x3C, 0x78, 0x43, 0x78, 0x4A, 0x78, 0x51, 0x78, 0x58, 0x78, 0x5F, 0x78 - .byte 0x65, 0x78, 0x6C, 0x78, 0x73, 0x78, 0x7A, 0x78, 0x81, 0x78, 0x88, 0x78, 0x8F, 0x78, 0x96, 0x78 - .byte 0x9D, 0x78, 0xA4, 0x78, 0xAB, 0x78, 0xB2, 0x78, 0xB9, 0x78, 0xC0, 0x78, 0xC7, 0x78, 0xCE, 0x78 - .byte 0xD5, 0x78, 0xDC, 0x78, 0xE3, 0x78, 0xEA, 0x78, 0xF1, 0x78, 0xF8, 0x78, 0xFF, 0x78, 0x06, 0x79 - .byte 0x0D, 0x79, 0x14, 0x79, 0x1B, 0x79, 0x22, 0x79, 0x29, 0x79, 0x30, 0x79, 0x37, 0x79, 0x3E, 0x79 - .byte 0x45, 0x79, 0x4C, 0x79, 0x53, 0x79, 0x5A, 0x79, 0x61, 0x79, 0x68, 0x79, 0x6F, 0x79, 0x76, 0x79 - .byte 0x7D, 0x79, 0x84, 0x79, 0x8B, 0x79, 0x92, 0x79, 0x99, 0x79, 0xA0, 0x79, 0xA7, 0x79, 0xAE, 0x79 - .byte 0xB5, 0x79, 0xBC, 0x79, 0xC3, 0x79, 0xCA, 0x79, 0xD1, 0x79, 0xD8, 0x79, 0xDF, 0x79, 0xE6, 0x79 - .byte 0xED, 0x79, 0xF4, 0x79, 0xFC, 0x79, 0x03, 0x7A, 0x0A, 0x7A, 0x11, 0x7A, 0x18, 0x7A, 0x1F, 0x7A - .byte 0x26, 0x7A, 0x2D, 0x7A, 0x34, 0x7A, 0x3B, 0x7A, 0x42, 0x7A, 0x49, 0x7A, 0x50, 0x7A, 0x57, 0x7A - .byte 0x5E, 0x7A, 0x65, 0x7A, 0x6C, 0x7A, 0x74, 0x7A, 0x7B, 0x7A, 0x82, 0x7A, 0x89, 0x7A, 0x90, 0x7A - .byte 0x97, 0x7A, 0x9E, 0x7A, 0xA5, 0x7A, 0xAC, 0x7A, 0xB3, 0x7A, 0xBA, 0x7A, 0xC1, 0x7A, 0xC9, 0x7A - .byte 0xD0, 0x7A, 0xD7, 0x7A, 0xDE, 0x7A, 0xE5, 0x7A, 0xEC, 0x7A, 0xF3, 0x7A, 0xFA, 0x7A, 0x01, 0x7B - .byte 0x08, 0x7B, 0x10, 0x7B, 0x17, 0x7B, 0x1E, 0x7B, 0x25, 0x7B, 0x2C, 0x7B, 0x33, 0x7B, 0x3A, 0x7B - .byte 0x41, 0x7B, 0x48, 0x7B, 0x50, 0x7B, 0x57, 0x7B, 0x5E, 0x7B, 0x65, 0x7B, 0x6C, 0x7B, 0x73, 0x7B - .byte 0x7A, 0x7B, 0x81, 0x7B, 0x89, 0x7B, 0x90, 0x7B, 0x97, 0x7B, 0x9E, 0x7B, 0xA5, 0x7B, 0xAC, 0x7B - .byte 0xB3, 0x7B, 0xBB, 0x7B, 0xC2, 0x7B, 0xC9, 0x7B, 0xD0, 0x7B, 0xD7, 0x7B, 0xDE, 0x7B, 0xE5, 0x7B - .byte 0xED, 0x7B, 0xF4, 0x7B, 0xFB, 0x7B, 0x02, 0x7C, 0x09, 0x7C, 0x10, 0x7C, 0x18, 0x7C, 0x1F, 0x7C - .byte 0x26, 0x7C, 0x2D, 0x7C, 0x34, 0x7C, 0x3B, 0x7C, 0x43, 0x7C, 0x4A, 0x7C, 0x51, 0x7C, 0x58, 0x7C - .byte 0x5F, 0x7C, 0x67, 0x7C, 0x6E, 0x7C, 0x75, 0x7C, 0x7C, 0x7C, 0x83, 0x7C, 0x8B, 0x7C, 0x92, 0x7C - .byte 0x99, 0x7C, 0xA0, 0x7C, 0xA7, 0x7C, 0xAE, 0x7C, 0xB6, 0x7C, 0xBD, 0x7C, 0xC4, 0x7C, 0xCB, 0x7C - .byte 0xD3, 0x7C, 0xDA, 0x7C, 0xE1, 0x7C, 0xE8, 0x7C, 0xEF, 0x7C, 0xF7, 0x7C, 0xFE, 0x7C, 0x05, 0x7D - .byte 0x0C, 0x7D, 0x13, 0x7D, 0x1B, 0x7D, 0x22, 0x7D, 0x29, 0x7D, 0x30, 0x7D, 0x38, 0x7D, 0x3F, 0x7D - .byte 0x46, 0x7D, 0x4D, 0x7D, 0x55, 0x7D, 0x5C, 0x7D, 0x63, 0x7D, 0x6A, 0x7D, 0x72, 0x7D, 0x79, 0x7D - .byte 0x80, 0x7D, 0x87, 0x7D, 0x8F, 0x7D, 0x96, 0x7D, 0x9D, 0x7D, 0xA4, 0x7D, 0xAC, 0x7D, 0xB3, 0x7D - .byte 0xBA, 0x7D, 0xC1, 0x7D, 0xC9, 0x7D, 0xD0, 0x7D, 0xD7, 0x7D, 0xDE, 0x7D, 0xE6, 0x7D, 0xED, 0x7D - .byte 0xF4, 0x7D, 0xFC, 0x7D, 0x03, 0x7E, 0x0A, 0x7E, 0x11, 0x7E, 0x19, 0x7E, 0x20, 0x7E, 0x27, 0x7E - .byte 0x2E, 0x7E, 0x36, 0x7E, 0x3D, 0x7E, 0x44, 0x7E, 0x4C, 0x7E, 0x53, 0x7E, 0x5A, 0x7E, 0x62, 0x7E - .byte 0x69, 0x7E, 0x70, 0x7E, 0x77, 0x7E, 0x7F, 0x7E, 0x86, 0x7E, 0x8D, 0x7E, 0x95, 0x7E, 0x9C, 0x7E - .byte 0xA3, 0x7E, 0xAB, 0x7E, 0xB2, 0x7E, 0xB9, 0x7E, 0xC1, 0x7E, 0xC8, 0x7E, 0xCF, 0x7E, 0xD7, 0x7E - .byte 0xDE, 0x7E, 0xE5, 0x7E, 0xED, 0x7E, 0xF4, 0x7E, 0xFB, 0x7E, 0x03, 0x7F, 0x0A, 0x7F, 0x11, 0x7F - .byte 0x19, 0x7F, 0x20, 0x7F, 0x27, 0x7F, 0x2F, 0x7F, 0x36, 0x7F, 0x3D, 0x7F, 0x45, 0x7F, 0x4C, 0x7F - .byte 0x53, 0x7F, 0x5B, 0x7F, 0x62, 0x7F, 0x69, 0x7F, 0x71, 0x7F, 0x78, 0x7F, 0x80, 0x7F, 0x87, 0x7F - .byte 0x8E, 0x7F, 0x96, 0x7F, 0x9D, 0x7F, 0xA4, 0x7F, 0xAC, 0x7F, 0xB3, 0x7F, 0xBA, 0x7F, 0xC2, 0x7F - .byte 0xC9, 0x7F, 0xD1, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x09, 0x00 - .byte 0x0A, 0x00, 0x0B, 0x00, 0x03, 0x00, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x3A, 0x2F, 0x00, 0x00, 0x72, 0x6F, 0x6D, 0x00, 0x1C, 0xEC, 0x0A, 0x02, 0x40, 0x00, 0x00, 0x00 - .byte 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00 - .byte 0x04, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00 - .byte 0x0C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00 - .byte 0x0E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00 - .byte 0x0A, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00 - .byte 0x05, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00 - .byte 0x0D, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x09, 0x00, 0x00, 0x00, 0x78, 0xA4, 0x6A, 0xD7, 0x56, 0xB7, 0xC7, 0xE8, 0xDB, 0x70, 0x20, 0x24 - .byte 0xEE, 0xCE, 0xBD, 0xC1, 0xAF, 0x0F, 0x7C, 0xF5, 0x2A, 0xC6, 0x87, 0x47, 0x13, 0x46, 0x30, 0xA8 - .byte 0x01, 0x95, 0x46, 0xFD, 0xD8, 0x98, 0x80, 0x69, 0xAF, 0xF7, 0x44, 0x8B, 0xB1, 0x5B, 0xFF, 0xFF - .byte 0xBE, 0xD7, 0x5C, 0x89, 0x22, 0x11, 0x90, 0x6B, 0x93, 0x71, 0x98, 0xFD, 0x8E, 0x43, 0x79, 0xA6 - .byte 0x21, 0x08, 0xB4, 0x49, 0x62, 0x25, 0x1E, 0xF6, 0x40, 0xB3, 0x40, 0xC0, 0x51, 0x5A, 0x5E, 0x26 - .byte 0xAA, 0xC7, 0xB6, 0xE9, 0x5D, 0x10, 0x2F, 0xD6, 0x53, 0x14, 0x44, 0x02, 0x81, 0xE6, 0xA1, 0xD8 - .byte 0xC8, 0xFB, 0xD3, 0xE7, 0xE6, 0xCD, 0xE1, 0x21, 0xD6, 0x07, 0x37, 0xC3, 0x87, 0x0D, 0xD5, 0xF4 - .byte 0xED, 0x14, 0x5A, 0x45, 0x05, 0xE9, 0xE3, 0xA9, 0xF8, 0xA3, 0xEF, 0xFC, 0xD9, 0x02, 0x6F, 0x67 - .byte 0x8A, 0x4C, 0x2A, 0x8D, 0x42, 0x39, 0xFA, 0xFF, 0x81, 0xF6, 0x71, 0x87, 0x22, 0x61, 0x9D, 0x6D - .byte 0x0C, 0x38, 0xE5, 0xFD, 0x44, 0xEA, 0xBE, 0xA4, 0xA9, 0xCF, 0xDE, 0x4B, 0x60, 0x4B, 0xBB, 0xF6 - .byte 0x70, 0xBC, 0xBF, 0xBE, 0xC6, 0x7E, 0x9B, 0x28, 0xFA, 0x27, 0xA1, 0xEA, 0x85, 0x30, 0xEF, 0xD4 - .byte 0x05, 0x1D, 0x88, 0x04, 0x39, 0xD0, 0xD4, 0xD9, 0xE5, 0x99, 0xDB, 0xE6, 0xF8, 0x7C, 0xA2, 0x1F - .byte 0x65, 0x56, 0xAC, 0xC4, 0x44, 0x22, 0x29, 0xF4, 0x97, 0xFF, 0x2A, 0x43, 0xA7, 0x23, 0x94, 0xAB - .byte 0x39, 0xA0, 0x93, 0xFC, 0xC3, 0x59, 0x5B, 0x65, 0x92, 0xCC, 0x0C, 0x8F, 0x7D, 0xF4, 0xEF, 0xFF - .byte 0xD1, 0x5D, 0x84, 0x85, 0x4F, 0x7E, 0xA8, 0x6F, 0xE0, 0xE6, 0x2C, 0xFE, 0x14, 0x43, 0x01, 0xA3 - .byte 0xA1, 0x11, 0x08, 0x4E, 0x82, 0x7E, 0x53, 0xF7, 0x35, 0xF2, 0x3A, 0xBD, 0xBB, 0xD2, 0xD7, 0x2A - .byte 0x91, 0xD3, 0x86, 0xEB, 0x61, 0x00, 0x00, 0x00, 0x70, 0x0C, 0x08, 0x02, 0xF0, 0x2D, 0x0B, 0x02 - .byte 0x08, 0x2E, 0x0B, 0x02, 0xC0, 0x2D, 0x0B, 0x02, 0xD8, 0x2D, 0x0B, 0x02, 0xBC, 0x2D, 0x0B, 0x02 - .byte 0x20, 0x2E, 0x0B, 0x02, 0x84, 0x2D, 0x0B, 0x02, 0x5C, 0x2E, 0x0B, 0x02, 0x01, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x40, 0x42, 0x0F, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x61, 0x62, 0x63, 0x00 - .byte 0x34, 0xAA, 0x97, 0x3C, 0xD4, 0xC4, 0xDA, 0xA4, 0xF6, 0x1E, 0xEB, 0x2B, 0xDB, 0xAD, 0x27, 0x31 - .byte 0x65, 0x34, 0x01, 0x6F, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xA3, 0x56, 0xA2, 0xCD, 0xDD, 0x90, 0xC7 - .byte 0xA7, 0xEC, 0xED, 0xC5, 0xEB, 0xB5, 0x63, 0x93, 0x4F, 0x46, 0x04, 0x52, 0x00, 0x00, 0x00, 0x00 - .byte 0xA9, 0x99, 0x3E, 0x36, 0x47, 0x06, 0x81, 0x6A, 0xBA, 0x3E, 0x25, 0x71, 0x78, 0x50, 0xC2, 0x6C - .byte 0x9C, 0xD0, 0xD8, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x84, 0x98, 0x3E, 0x44, 0x1C, 0x3B, 0xD2, 0x6E - .byte 0xBA, 0xAE, 0x4A, 0xA1, 0xF9, 0x51, 0x29, 0xE5, 0xE5, 0x46, 0x70, 0xF1, 0x00, 0x00, 0x00, 0x00 - .byte 0x61, 0x62, 0x63, 0x64, 0x62, 0x63, 0x64, 0x65, 0x63, 0x64, 0x65, 0x66, 0x64, 0x65, 0x66, 0x67 - .byte 0x65, 0x66, 0x67, 0x68, 0x66, 0x67, 0x68, 0x69, 0x67, 0x68, 0x69, 0x6A, 0x68, 0x69, 0x6A, 0x6B - .byte 0x69, 0x6A, 0x6B, 0x6C, 0x6A, 0x6B, 0x6C, 0x6D, 0x6B, 0x6C, 0x6D, 0x6E, 0x6C, 0x6D, 0x6E, 0x6F - .byte 0x6D, 0x6E, 0x6F, 0x70, 0x6E, 0x6F, 0x70, 0x71, 0x00, 0x00, 0x00, 0x00, 0x30, 0x31, 0x32, 0x33 - .byte 0x34, 0x35, 0x36, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x30, 0x31, 0x32, 0x33 - .byte 0x34, 0x35, 0x36, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x30, 0x31, 0x32, 0x33 - .byte 0x34, 0x35, 0x36, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x30, 0x31, 0x32, 0x33 - .byte 0x34, 0x35, 0x36, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00 - .byte 0x78, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0xB5, 0x00, 0x00, 0x00, 0xD4, 0x00, 0x00, 0x00 - .byte 0xF3, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, 0x4E, 0x01, 0x00, 0x00 - .byte 0x00, 0xFE, 0x7F, 0x02, 0x00, 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x70, 0xC9, 0x2B, 0x02, 0x00, 0x01, 0x00, 0x00, 0x70, 0xC9, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x1C, 0x08, 0x09, 0x02, 0x6C, 0x08, 0x09, 0x02, 0xA0, 0x08, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xC8, 0x2B, 0x02 - .byte 0x00, 0x01, 0x00, 0x00, 0x70, 0xC8, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x08, 0x09, 0x02 - .byte 0x6C, 0x08, 0x09, 0x02, 0xA0, 0x08, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xC7, 0x2B, 0x02, 0x00, 0x01, 0x00, 0x00 - .byte 0x70, 0xC7, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x08, 0x09, 0x02, 0x6C, 0x08, 0x09, 0x02 - .byte 0xA0, 0x08, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x25, 0x54, 0x00, 0x00 - .byte 0x41, 0x4D, 0x7C, 0x50, 0x4D, 0x00, 0x00, 0x00, 0xBC, 0x71, 0x08, 0x02, 0xF4, 0x71, 0x08, 0x02 - .byte 0x20, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x31, 0x0B, 0x02 - .byte 0xD0, 0x2F, 0x0B, 0x02, 0x34, 0x30, 0x0B, 0x02, 0x28, 0x30, 0x0B, 0x02, 0x10, 0x30, 0x0B, 0x02 - .byte 0xCC, 0x2F, 0x0B, 0x02, 0x44, 0x30, 0x0B, 0x02, 0x9C, 0x30, 0x0B, 0x02, 0xC8, 0x2F, 0x0B, 0x02 - .byte 0x25, 0x6D, 0x2F, 0x25, 0x64, 0x2F, 0x25, 0x79, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x2F, 0x0B, 0x02 - .byte 0xE0, 0x2F, 0x0B, 0x02, 0xD8, 0x2F, 0x0B, 0x02, 0x25, 0x49, 0x3A, 0x25, 0x4D, 0x3A, 0x25, 0x53 - .byte 0x20, 0x25, 0x70, 0x00, 0x25, 0x61, 0x20, 0x25, 0x62, 0x20, 0x25, 0x65, 0x20, 0x25, 0x54, 0x20 - .byte 0x25, 0x59, 0x00, 0x00, 0x53, 0x75, 0x6E, 0x7C, 0x53, 0x75, 0x6E, 0x64, 0x61, 0x79, 0x7C, 0x4D - .byte 0x6F, 0x6E, 0x7C, 0x4D, 0x6F, 0x6E, 0x64, 0x61, 0x79, 0x7C, 0x54, 0x75, 0x65, 0x7C, 0x54, 0x75 - .byte 0x65, 0x73, 0x64, 0x61, 0x79, 0x7C, 0x57, 0x65, 0x64, 0x7C, 0x57, 0x65, 0x64, 0x6E, 0x65, 0x73 - .byte 0x64, 0x61, 0x79, 0x7C, 0x54, 0x68, 0x75, 0x7C, 0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79 - .byte 0x7C, 0x46, 0x72, 0x69, 0x7C, 0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x7C, 0x53, 0x61, 0x74, 0x7C - .byte 0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x00, 0x00, 0x00, 0x00, 0x4A, 0x61, 0x6E, 0x7C - .byte 0x4A, 0x61, 0x6E, 0x75, 0x61, 0x72, 0x79, 0x7C, 0x46, 0x65, 0x62, 0x7C, 0x46, 0x65, 0x62, 0x72 - .byte 0x75, 0x61, 0x72, 0x79, 0x7C, 0x4D, 0x61, 0x72, 0x7C, 0x4D, 0x61, 0x72, 0x63, 0x68, 0x7C, 0x41 - .byte 0x70, 0x72, 0x7C, 0x41, 0x70, 0x72, 0x69, 0x6C, 0x7C, 0x4D, 0x61, 0x79, 0x7C, 0x4D, 0x61, 0x79 - .byte 0x7C, 0x4A, 0x75, 0x6E, 0x7C, 0x4A, 0x75, 0x6E, 0x65, 0x7C, 0x4A, 0x75, 0x6C, 0x7C, 0x4A, 0x75 - .byte 0x6C, 0x79, 0x7C, 0x41, 0x75, 0x67, 0x7C, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x7C, 0x53, 0x65 - .byte 0x70, 0x7C, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6D, 0x62, 0x65, 0x72, 0x7C, 0x4F, 0x63, 0x74, 0x7C - .byte 0x4F, 0x63, 0x74, 0x6F, 0x62, 0x65, 0x72, 0x7C, 0x4E, 0x6F, 0x76, 0x7C, 0x4E, 0x6F, 0x76, 0x65 - .byte 0x6D, 0x62, 0x65, 0x72, 0x7C, 0x44, 0x65, 0x63, 0x7C, 0x44, 0x65, 0x63, 0x65, 0x6D, 0x62, 0x65 - .byte 0x72, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00 - .byte 0x07, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x0C, 0x00, 0x0D, 0x00, 0x0E, 0x00 - .byte 0x0F, 0x00, 0x10, 0x00, 0x21, 0x00, 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00 - .byte 0x27, 0x00, 0x28, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x11, 0x00, 0x12, 0x00, 0x13, 0x00, 0x14, 0x00 - .byte 0x15, 0x00, 0x16, 0x00, 0x17, 0x00, 0x2B, 0x00, 0x2D, 0x00, 0x2F, 0x00, 0x31, 0x00, 0x33, 0x00 - .byte 0x35, 0x00, 0x37, 0x00, 0x39, 0x00, 0x3B, 0x00, 0x3D, 0x00, 0x3F, 0x00, 0x41, 0x00, 0x43, 0x00 - .byte 0x45, 0x00, 0x47, 0x00, 0x49, 0x00, 0x4B, 0x00, 0x4D, 0x00, 0x4F, 0x00, 0x51, 0x00, 0x53, 0x00 - .byte 0x55, 0x00, 0x57, 0x00, 0x59, 0x00, 0x5B, 0x00, 0x5D, 0x00, 0x18, 0x00, 0x19, 0x00, 0x1A, 0x00 - .byte 0x1B, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x2E, 0x00, 0x30, 0x00, 0x32, 0x00, 0x34, 0x00 - .byte 0x36, 0x00, 0x38, 0x00, 0x3A, 0x00, 0x3C, 0x00, 0x3E, 0x00, 0x40, 0x00, 0x42, 0x00, 0x44, 0x00 - .byte 0x46, 0x00, 0x48, 0x00, 0x4A, 0x00, 0x4C, 0x00, 0x4E, 0x00, 0x50, 0x00, 0x52, 0x00, 0x54, 0x00 - .byte 0x56, 0x00, 0x58, 0x00, 0x5A, 0x00, 0x5C, 0x00, 0x5E, 0x00, 0x1D, 0x00, 0x1E, 0x00, 0x1F, 0x00 - .byte 0x20, 0x00, 0x00, 0x00, 0x30, 0x78, 0x30, 0x70, 0x30, 0x00, 0x00, 0x00, 0x2D, 0x49, 0x4E, 0x46 - .byte 0x00, 0x00, 0x00, 0x00, 0x2D, 0x69, 0x6E, 0x66, 0x00, 0x00, 0x00, 0x00, 0x49, 0x4E, 0x46, 0x00 - .byte 0x69, 0x6E, 0x66, 0x00, 0x2D, 0x4E, 0x41, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x6E, 0x61, 0x6E - .byte 0x00, 0x00, 0x00, 0x00, 0x4E, 0x41, 0x4E, 0x00, 0x6E, 0x61, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8F, 0x40 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xC3, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xF8, 0x40 - .byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2E, 0x41, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x12, 0x63, 0x41 - .byte 0x00, 0x00, 0x00, 0x00, 0x84, 0xD7, 0x97, 0x41, 0x35, 0x34, 0x32, 0x31, 0x30, 0x31, 0x30, 0x38 - .byte 0x36, 0x32, 0x34, 0x32, 0x37, 0x35, 0x32, 0x32, 0x31, 0x37, 0x30, 0x30, 0x33, 0x37, 0x32, 0x36 - .byte 0x34, 0x30, 0x30, 0x34, 0x33, 0x34, 0x39, 0x37, 0x30, 0x38, 0x35, 0x35, 0x37, 0x31, 0x32, 0x38 - .byte 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30 - .byte 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33 - .byte 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00 - .byte 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36 - .byte 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39 - .byte 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00 - .byte 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00 - .byte 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x35, 0x00, 0x31, 0x32, 0x35, 0x00 - .byte 0x32, 0x35, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00 - .byte 0x34, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x31, 0x36, 0x00, 0x00, 0x33, 0x32, 0x00, 0x00 - .byte 0x36, 0x34, 0x00, 0x00, 0x31, 0x32, 0x38, 0x00, 0x32, 0x35, 0x36, 0x00, 0x31, 0x37, 0x39, 0x37 - .byte 0x36, 0x39, 0x33, 0x31, 0x33, 0x34, 0x38, 0x36, 0x32, 0x33, 0x31, 0x35, 0x38, 0x30, 0x37, 0x39 - .byte 0x33, 0x37, 0x32, 0x38, 0x37, 0x31, 0x34, 0x30, 0x35, 0x33, 0x30, 0x33, 0x34, 0x31, 0x35, 0x31 - .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 0xFF, 0x40, 0x2D, 0xE9, 0x0F, 0x30, 0x03, 0xE2, 0x00, 0x60, 0xA0, 0xE3, 0x02, 0x00, 0x56, 0xE1 - .byte 0x25, 0x00, 0x00, 0xAA, 0xB0, 0x40, 0xD1, 0xE1, 0x0F, 0x40, 0x04, 0xE2, 0x00, 0x00, 0x54, 0xE3 - .byte 0x01, 0x00, 0x00, 0x0A, 0x03, 0x72, 0xA0, 0xE1, 0x07, 0x40, 0x84, 0xE1, 0x04, 0x50, 0xA0, 0xE1 - .byte 0xB0, 0x40, 0xD1, 0xE1, 0xF0, 0x40, 0x04, 0xE2, 0x00, 0x00, 0x54, 0xE3, 0x01, 0x00, 0x00, 0x0A - .byte 0x03, 0x74, 0xA0, 0xE1, 0x07, 0x40, 0x84, 0xE1, 0x04, 0x42, 0xA0, 0xE1, 0x04, 0x50, 0x85, 0xE1 - .byte 0xB0, 0x50, 0xC0, 0xE1, 0x02, 0x00, 0x80, 0xE2, 0xB0, 0x40, 0xD1, 0xE1, 0x0F, 0x4C, 0x04, 0xE2 - .byte 0x00, 0x00, 0x54, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x03, 0x76, 0xA0, 0xE1, 0x07, 0x40, 0x84, 0xE1 - .byte 0x24, 0x54, 0xA0, 0xE1, 0xB0, 0x40, 0xD1, 0xE1, 0x0F, 0x4A, 0x04, 0xE2, 0x24, 0x42, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x54, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x03, 0x76, 0xA0, 0xE1, 0x07, 0x40, 0x84, 0xE1 - .byte 0x04, 0x50, 0x85, 0xE1, 0xB0, 0x50, 0xC0, 0xE1, 0x02, 0x00, 0x80, 0xE2, 0x02, 0x60, 0x86, 0xE2 - .byte 0x02, 0x10, 0x81, 0xE2, 0x02, 0x00, 0x56, 0xE1, 0xD9, 0xFF, 0xFF, 0xBA, 0xFF, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_020b3430 -FUN_020b3430: @ 0x020B3430 - push {r0, r1, r2, r3, r4, r5, r6, r7, lr} - and r3, r3, #0xf - mov r6, #0 - cmp r6, r2 - bge _020B349C -_020B3444: - ldrh r4, [r1] - and r4, r4, #0xf - mov r5, r4 - ldrh r4, [r1] - and r4, r4, #0xf0 - lsl r4, r4, #4 - orr r5, r5, r4 - strh r5, [r0] - add r0, r0, #2 - ldrh r4, [r1] - and r4, r4, #0xf00 - lsr r5, r4, #8 - ldrh r4, [r1] - and r4, r4, #0xf000 - lsr r4, r4, #4 - orr r5, r5, r4 - strh r5, [r0] - add r0, r0, #2 - add r6, r6, #2 - add r1, r1, #2 - cmp r6, r2 - blt _020B3444 -_020B349C: - pop {r0, r1, r2, r3, r4, r5, r6, r7, pc} - arm_func_end FUN_020b3430 -_020B34A0: - .byte 0x24, 0x82, 0xFF, 0x01, 0x9C, 0x84, 0xFF, 0x01, 0x28, 0x87, 0xFF, 0x01, 0x28, 0x8C, 0xFF, 0x01 - .byte 0x70, 0x40, 0x2D, 0xE9, 0x10, 0xD0, 0x4D, 0xE2, 0x78, 0x20, 0x9F, 0xE5, 0x01, 0x40, 0xA0, 0xE1 - .byte 0x08, 0x10, 0x92, 0xE5, 0x04, 0x00, 0x51, 0xE1, 0x18, 0x00, 0x00, 0x0A, 0xB0, 0x30, 0xD0, 0xE1 - .byte 0x64, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x83, 0x39, 0xA0, 0xE1, 0x23, 0x3F, 0xA0, 0xE1 - .byte 0x03, 0x31, 0x92, 0xE7, 0x01, 0x20, 0xA0, 0xE3, 0x00, 0x30, 0x8D, 0xE5, 0x16, 0x00, 0x8D, 0xE9 - .byte 0xB0, 0x00, 0xD0, 0xE1, 0x44, 0x50, 0x9F, 0xE5, 0x44, 0x20, 0x9F, 0xE5, 0x80, 0x3E, 0xA0, 0xE1 - .byte 0x80, 0xCA, 0xA0, 0xE1, 0xA3, 0xEE, 0xA0, 0xE1, 0x00, 0x0D, 0xA0, 0xE1, 0xAC, 0x6E, 0xA0, 0xE1 - .byte 0xA0, 0xCE, 0xA0, 0xE1, 0x2C, 0x30, 0x9F, 0xE5, 0x06, 0x01, 0x95, 0xE7, 0x0E, 0x21, 0x92, 0xE7 - .byte 0x0C, 0x31, 0x93, 0xE7, 0xBA, 0x98, 0x00, 0xEB, 0x08, 0x00, 0x9F, 0xE5, 0x08, 0x40, 0x80, 0xE5 - .byte 0x10, 0xD0, 0x8D, 0xE2, 0x70, 0x80, 0xBD, 0xE8, 0x80, 0xFC, 0x0A, 0x02, 0x34, 0x97, 0x09, 0x02 - .byte 0x44, 0x97, 0x09, 0x02, 0x64, 0x97, 0x09, 0x02, 0x84, 0x97, 0x09, 0x02, 0x44, 0x20, 0x9F, 0xE5 - .byte 0x04, 0x20, 0x92, 0xE5, 0x01, 0x00, 0x52, 0xE1, 0x1E, 0xFF, 0x2F, 0x01, 0xB0, 0x20, 0xD0, 0xE1 - .byte 0x34, 0x00, 0x9F, 0xE5, 0x82, 0x2A, 0xA0, 0xE1, 0xA2, 0x2E, 0xA0, 0xE1, 0x02, 0x01, 0x90, 0xE7 - .byte 0x28, 0x20, 0x9F, 0xE5, 0x02, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13 - .byte 0x04, 0x00, 0x60, 0xE2, 0x31, 0x30, 0xA0, 0xE1, 0x08, 0x00, 0x9F, 0xE5, 0x00, 0x30, 0x82, 0xE5 - .byte 0x04, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x80, 0xFC, 0x0A, 0x02, 0x44, 0x97, 0x09, 0x02 - .byte 0xAC, 0x04, 0x00, 0x04, 0x70, 0x40, 0x2D, 0xE9, 0x40, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x23, 0x00, 0xD4, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x88, 0x00, 0x00, 0x0A, 0xB8, 0x01, 0xD4, 0xE1 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x1C, 0x32, 0x9F, 0xE5, 0x40, 0x02, 0xA0, 0xE1, 0x80, 0x00, 0xA0, 0xE1 - .byte 0x01, 0x50, 0x80, 0xE2, 0x80, 0x00, 0xA0, 0xE1, 0xF0, 0x10, 0x93, 0xE1, 0x85, 0x00, 0xA0, 0xE1 - .byte 0xF0, 0x30, 0x93, 0xE1, 0x00, 0x00, 0x61, 0xE2, 0x14, 0x10, 0x8D, 0xE5, 0x10, 0x30, 0x8D, 0xE5 - .byte 0x18, 0x20, 0x8D, 0xE5, 0x20, 0x30, 0x8D, 0xE5, 0x24, 0x20, 0x8D, 0xE5, 0x28, 0x20, 0x8D, 0xE5 - .byte 0x2C, 0x20, 0x8D, 0xE5, 0x30, 0x20, 0x8D, 0xE5, 0x1C, 0x00, 0x8D, 0xE5, 0xF4, 0x00, 0xD4, 0xE1 - .byte 0x00, 0x06, 0xA0, 0xE1, 0x34, 0x00, 0x8D, 0xE5, 0xF6, 0x00, 0xD4, 0xE1, 0x00, 0x06, 0xA0, 0xE1 - .byte 0x38, 0x00, 0x8D, 0xE5, 0xB2, 0x00, 0xD4, 0xE1, 0x01, 0x00, 0x80, 0xE2, 0x00, 0x06, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x60, 0xE2, 0x3C, 0x00, 0x8D, 0xE5, 0x22, 0x00, 0xD4, 0xE5, 0x23, 0x10, 0xD4, 0xE5 - .byte 0x6E, 0x00, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0x04, 0x00, 0x8D, 0xE5 - .byte 0x01, 0x10, 0xA0, 0xE3, 0x08, 0x10, 0x8D, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x20, 0xA0, 0xE1 - .byte 0x00, 0x30, 0xA0, 0xE1, 0x0C, 0x00, 0x8D, 0xE5, 0x69, 0x98, 0x00, 0xEB, 0x78, 0x01, 0x9F, 0xE5 - .byte 0x00, 0x20, 0xE0, 0xE3, 0x08, 0x20, 0x80, 0xE5, 0x70, 0x11, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x10, 0x00, 0x8D, 0xE2, 0x00, 0x20, 0x81, 0xE5, 0x26, 0xFD, 0x01, 0xEB, 0xB4, 0x01, 0xD4, 0xE1 - .byte 0xB6, 0x21, 0xD4, 0xE1, 0x58, 0x11, 0x9F, 0xE5, 0x00, 0x03, 0xA0, 0xE1, 0x00, 0x00, 0x81, 0xE5 - .byte 0x02, 0x03, 0xA0, 0xE1, 0x00, 0x00, 0x81, 0xE5, 0x01, 0x0A, 0xA0, 0xE3, 0x00, 0x00, 0x81, 0xE5 - .byte 0x24, 0x00, 0xD4, 0xE5, 0x3C, 0x61, 0x9F, 0xE5, 0x00, 0x50, 0xA0, 0xE3, 0x00, 0x00, 0x50, 0xE3 - .byte 0xBA, 0x01, 0xD4, 0x01, 0x14, 0x00, 0x81, 0x05, 0x02, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x86, 0xE5 - .byte 0xFC, 0x20, 0xD4, 0xE1, 0x24, 0x00, 0xD4, 0xE5, 0xFE, 0x10, 0xD4, 0xE1, 0x02, 0x36, 0x45, 0xE0 - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0xC6, 0x45, 0xE0, 0xF8, 0x20, 0xD4, 0xE1, 0xFA, 0x10, 0xD4, 0xE1 - .byte 0xBA, 0x01, 0xD4, 0x11, 0x43, 0xE3, 0xA0, 0xE1, 0x4C, 0x53, 0xA0, 0xE1, 0x80, 0x00, 0x06, 0x15 - .byte 0x05, 0x08, 0xA0, 0xE1, 0x0E, 0xE8, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1, 0x4E, 0x58, 0xA0, 0xE1 - .byte 0x05, 0xE8, 0xA0, 0xE1, 0x02, 0x36, 0x83, 0xE0, 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x08, 0xA0, 0xE1 - .byte 0x2E, 0xE8, 0xA0, 0xE1, 0xD0, 0x50, 0x9F, 0xE5, 0x00, 0x68, 0x8E, 0xE1, 0x00, 0x60, 0x85, 0xE5 - .byte 0x01, 0x2A, 0xA0, 0xE3, 0x00, 0x20, 0x85, 0xE5, 0x24, 0x20, 0xD4, 0xE5, 0x43, 0x33, 0xA0, 0xE1 - .byte 0x01, 0x16, 0x8C, 0xE0, 0x00, 0x00, 0x52, 0xE3, 0xBC, 0x21, 0xD4, 0x11, 0x41, 0x13, 0xA0, 0xE1 - .byte 0x0C, 0x20, 0x05, 0x15, 0x03, 0x28, 0xA0, 0xE1, 0x42, 0x28, 0xA0, 0xE1, 0x02, 0x28, 0xA0, 0xE1 - .byte 0x22, 0x28, 0xA0, 0xE1, 0x90, 0x30, 0x9F, 0xE5, 0x00, 0x08, 0x82, 0xE1, 0x00, 0x00, 0x83, 0xE5 - .byte 0x01, 0x0A, 0xA0, 0xE3, 0x00, 0x00, 0x83, 0xE5, 0x24, 0x00, 0xD4, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0xBE, 0x01, 0xD4, 0x11, 0x0C, 0x00, 0x03, 0x15, 0x01, 0x08, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1 - .byte 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x38, 0xA0, 0xE1, 0x5C, 0x10, 0x9F, 0xE5, 0x03, 0x08, 0x8E, 0xE1 - .byte 0x00, 0x00, 0x81, 0xE5, 0x01, 0x0A, 0xA0, 0xE3, 0x00, 0x00, 0x81, 0xE5, 0x24, 0x00, 0xD4, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0xB0, 0x02, 0xD4, 0x11, 0x0C, 0x00, 0x01, 0x15, 0x38, 0x10, 0x9F, 0xE5 - .byte 0x03, 0x08, 0x82, 0xE1, 0x00, 0x00, 0x81, 0xE5, 0x01, 0x0A, 0xA0, 0xE3, 0x00, 0x00, 0x81, 0xE5 - .byte 0x00, 0x00, 0xA0, 0xE3, 0x78, 0x00, 0x81, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x44, 0x00, 0x01, 0xE5 - .byte 0x40, 0xD0, 0x8D, 0xE2, 0x70, 0x80, 0xBD, 0xE8, 0xB0, 0x9F, 0x0A, 0x02, 0x80, 0xFC, 0x0A, 0x02 - .byte 0x44, 0x04, 0x00, 0x04, 0x6C, 0x04, 0x00, 0x04, 0x00, 0x05, 0x00, 0x04, 0x8C, 0x04, 0x00, 0x04 - .byte 0x00, 0x0C, 0xA0, 0xE1, 0xC0, 0x20, 0x80, 0xE3, 0x08, 0x00, 0x9F, 0xE5, 0x01, 0x18, 0x82, 0xE1 - .byte 0x00, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xA4, 0x04, 0x00, 0x04, 0x10, 0x40, 0x2D, 0xE9 - .byte 0x48, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1, 0x23, 0x00, 0xD4, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x94, 0x00, 0x00, 0x0A, 0x54, 0x02, 0x9F, 0xE5, 0x01, 0x3A, 0xA0, 0xE3, 0x04, 0xC0, 0x90, 0xE5 - .byte 0x00, 0xE0, 0x90, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x0C, 0x06, 0xA0, 0xE1, 0x0E, 0x16, 0xA0, 0xE1 - .byte 0x40, 0x00, 0x8D, 0xE5, 0x18, 0x30, 0x8D, 0xE5, 0x1C, 0x20, 0x8D, 0xE5, 0x20, 0x20, 0x8D, 0xE5 - .byte 0x24, 0x20, 0x8D, 0xE5, 0x28, 0x30, 0x8D, 0xE5, 0x2C, 0x20, 0x8D, 0xE5, 0x30, 0x20, 0x8D, 0xE5 - .byte 0x34, 0x20, 0x8D, 0xE5, 0x38, 0x20, 0x8D, 0xE5, 0x3C, 0x10, 0x8D, 0xE5, 0xB2, 0x10, 0xD4, 0xE1 - .byte 0x10, 0x00, 0xA0, 0xE3, 0x10, 0xE0, 0x8D, 0xE5, 0x01, 0x10, 0x81, 0xE2, 0x01, 0x16, 0xA0, 0xE1 - .byte 0x00, 0x10, 0x61, 0xE2, 0x44, 0x10, 0x8D, 0xE5, 0x23, 0x10, 0xD4, 0xE5, 0x14, 0xC0, 0x8D, 0xE5 - .byte 0xD6, 0xFF, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0x04, 0x00, 0x8D, 0xE5 - .byte 0x01, 0x10, 0xA0, 0xE3, 0x08, 0x10, 0x8D, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x20, 0xA0, 0xE1 - .byte 0x00, 0x30, 0xA0, 0xE1, 0x0C, 0x00, 0x8D, 0xE5, 0xD1, 0x97, 0x00, 0xEB, 0xC0, 0x11, 0x9F, 0xE5 - .byte 0x00, 0x30, 0xE0, 0xE3, 0x08, 0x30, 0x81, 0xE5, 0xB8, 0x21, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3 - .byte 0x18, 0x00, 0x8D, 0xE2, 0x00, 0x10, 0x82, 0xE5, 0x8E, 0xFC, 0x01, 0xEB, 0xA8, 0x11, 0x9F, 0xE5 - .byte 0x01, 0x07, 0xA0, 0xE3, 0x00, 0x00, 0x81, 0xE5, 0x00, 0x00, 0x81, 0xE5, 0x01, 0x0A, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x81, 0xE5, 0x24, 0x00, 0xD4, 0xE5, 0x90, 0x31, 0x9F, 0xE5, 0x90, 0xE1, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0xBA, 0x01, 0xD4, 0x01, 0x14, 0x00, 0x81, 0x05, 0x02, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x83, 0xE5, 0x24, 0x20, 0xD4, 0xE5, 0xF4, 0x10, 0xD4, 0xE1, 0xF6, 0x00, 0xD4, 0xE1 - .byte 0x00, 0x00, 0x52, 0xE3, 0xBA, 0x21, 0xD4, 0x11, 0x80, 0x20, 0x03, 0x15, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x00, 0x20, 0x8E, 0xE5, 0x01, 0x2A, 0xA0, 0xE3, 0x00, 0x20, 0x8E, 0xE5, 0x24, 0x20, 0xD4, 0xE5 - .byte 0xF8, 0xC0, 0xD4, 0xE1, 0xFA, 0x30, 0xD4, 0xE1, 0x00, 0x00, 0x52, 0xE3, 0xBC, 0x21, 0xD4, 0x11 - .byte 0x0C, 0xC6, 0xA0, 0xE1, 0x03, 0x36, 0xA0, 0xE1, 0x01, 0xC6, 0x4C, 0xE0, 0x00, 0x36, 0x43, 0xE0 - .byte 0x4C, 0xC3, 0xA0, 0xE1, 0x43, 0x33, 0xA0, 0xE1, 0x0C, 0x20, 0x0E, 0x15, 0x03, 0x28, 0xA0, 0xE1 - .byte 0x42, 0x38, 0xA0, 0xE1, 0x0C, 0x28, 0xA0, 0xE1, 0x03, 0x38, 0xA0, 0xE1, 0x42, 0x28, 0xA0, 0xE1 - .byte 0x23, 0x38, 0xA0, 0xE1, 0x02, 0x28, 0xA0, 0xE1, 0x03, 0x38, 0xA0, 0xE1, 0x00, 0xE1, 0x9F, 0xE5 - .byte 0x22, 0x28, 0x83, 0xE1, 0x00, 0x20, 0x8E, 0xE5, 0x01, 0x2A, 0xA0, 0xE3, 0x00, 0x20, 0x8E, 0xE5 - .byte 0xFE, 0x30, 0xD4, 0xE1, 0x24, 0x20, 0xD4, 0xE5, 0xFC, 0xC0, 0xD4, 0xE1, 0x03, 0x36, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x52, 0xE3, 0xBE, 0x21, 0xD4, 0x11, 0x00, 0x36, 0x43, 0xE0, 0x0C, 0xC6, 0xA0, 0xE1 - .byte 0x01, 0xC6, 0x4C, 0xE0, 0x0C, 0x20, 0x0E, 0x15, 0x43, 0x33, 0xA0, 0xE1, 0x03, 0x28, 0xA0, 0xE1 - .byte 0x42, 0x38, 0xA0, 0xE1, 0x4C, 0xC3, 0xA0, 0xE1, 0x0C, 0x28, 0xA0, 0xE1, 0x03, 0x38, 0xA0, 0xE1 - .byte 0x42, 0x28, 0xA0, 0xE1, 0x23, 0x38, 0xA0, 0xE1, 0x02, 0x28, 0xA0, 0xE1, 0x03, 0x38, 0xA0, 0xE1 - .byte 0x9C, 0xE0, 0x9F, 0xE5, 0x22, 0x28, 0x83, 0xE1, 0x00, 0x20, 0x8E, 0xE5, 0x01, 0x2A, 0xA0, 0xE3 - .byte 0x00, 0x20, 0x8E, 0xE5, 0xF0, 0xC1, 0xD4, 0xE1, 0xF2, 0x31, 0xD4, 0xE1, 0x24, 0x20, 0xD4, 0xE5 - .byte 0x0C, 0xC6, 0xA0, 0xE1, 0x03, 0x36, 0xA0, 0xE1, 0x01, 0x16, 0x4C, 0xE0, 0x00, 0x00, 0x52, 0xE3 - .byte 0x00, 0x06, 0x43, 0xE0, 0x41, 0x23, 0xA0, 0xE1, 0x40, 0x13, 0xA0, 0xE1, 0xB0, 0x02, 0xD4, 0x11 - .byte 0x0C, 0x00, 0x0E, 0x15, 0x01, 0x08, 0xA0, 0xE1, 0x40, 0x18, 0xA0, 0xE1, 0x02, 0x08, 0xA0, 0xE1 - .byte 0x01, 0x18, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1, 0x21, 0x18, 0xA0, 0xE1, 0x01, 0x28, 0xA0, 0xE1 - .byte 0x00, 0x08, 0xA0, 0xE1, 0x38, 0x10, 0x9F, 0xE5, 0x20, 0x08, 0x82, 0xE1, 0x00, 0x00, 0x81, 0xE5 - .byte 0x01, 0x0A, 0xA0, 0xE3, 0x00, 0x00, 0x81, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x78, 0x00, 0x81, 0xE5 - .byte 0x01, 0x00, 0xA0, 0xE3, 0x44, 0x00, 0x01, 0xE5, 0x48, 0xD0, 0x8D, 0xE2, 0x10, 0x80, 0xBD, 0xE8 - .byte 0x24, 0x97, 0x09, 0x02, 0x80, 0xFC, 0x0A, 0x02, 0x44, 0x04, 0x00, 0x04, 0x6C, 0x04, 0x00, 0x04 - .byte 0x00, 0x05, 0x00, 0x04, 0x8C, 0x04, 0x00, 0x04, 0xF0, 0x4F, 0x2D, 0xE9, 0x4C, 0xD0, 0x4D, 0xE2 - .byte 0x00, 0xA0, 0xA0, 0xE1, 0x31, 0x00, 0xDA, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xAA, 0x00, 0x00, 0x0A - .byte 0xAC, 0x02, 0x9F, 0xE5, 0x04, 0x10, 0x9A, 0xE5, 0x08, 0x30, 0x90, 0xE5, 0x0C, 0x20, 0x90, 0xE5 - .byte 0x14, 0x00, 0x8A, 0xE2, 0x14, 0x30, 0x8D, 0xE5, 0x18, 0x20, 0x8D, 0xE5, 0x73, 0xFE, 0xFF, 0xEB - .byte 0x08, 0x10, 0x9A, 0xE5, 0x14, 0x00, 0x8A, 0xE2, 0x97, 0xFE, 0xFF, 0xEB, 0xFC, 0x70, 0xDA, 0xE1 - .byte 0xF0, 0x01, 0xDA, 0xE1, 0xFE, 0x60, 0xDA, 0xE1, 0xF2, 0x41, 0xDA, 0xE1, 0x00, 0x50, 0x87, 0xE0 - .byte 0x07, 0x06, 0xA0, 0xE1, 0x10, 0x00, 0x8D, 0xE5, 0x06, 0x06, 0xA0, 0xE1, 0xFA, 0x11, 0xDA, 0xE1 - .byte 0xF8, 0x21, 0xDA, 0xE1, 0x05, 0xB6, 0xA0, 0xE1, 0x04, 0x40, 0x86, 0xE0, 0x0C, 0x00, 0x8D, 0xE5 - .byte 0x04, 0x06, 0xA0, 0xE1, 0x08, 0x00, 0x8D, 0xE5, 0x01, 0x06, 0xA0, 0xE1, 0xF0, 0x12, 0xDA, 0xE1 - .byte 0x02, 0x56, 0xA0, 0xE1, 0xFC, 0x21, 0xDA, 0xE1, 0x04, 0x00, 0x8D, 0xE5, 0xFE, 0x01, 0xDA, 0xE1 - .byte 0x01, 0x76, 0xA0, 0xE1, 0xF4, 0x12, 0xDA, 0xE1, 0xF6, 0x31, 0xDA, 0xE1, 0x02, 0x66, 0xA0, 0xE1 - .byte 0xF2, 0x22, 0xDA, 0xE1, 0x00, 0x06, 0xA0, 0xE1, 0x00, 0x00, 0x8D, 0xE5, 0x01, 0x0A, 0xA0, 0xE3 - .byte 0x01, 0x96, 0xA0, 0xE1, 0x14, 0x10, 0x9D, 0xE5, 0x02, 0x86, 0xA0, 0xE1, 0x00, 0x20, 0xA0, 0xE3 - .byte 0x01, 0x16, 0xA0, 0xE1, 0x1C, 0x00, 0x8D, 0xE5, 0x2C, 0x00, 0x8D, 0xE5, 0x18, 0x00, 0x9D, 0xE5 - .byte 0x20, 0x20, 0x8D, 0xE5, 0x00, 0x06, 0xA0, 0xE1, 0x24, 0x20, 0x8D, 0xE5, 0x28, 0x20, 0x8D, 0xE5 - .byte 0x30, 0x20, 0x8D, 0xE5, 0x34, 0x20, 0x8D, 0xE5, 0x38, 0x20, 0x8D, 0xE5, 0x3C, 0x20, 0x8D, 0xE5 - .byte 0x40, 0x10, 0x8D, 0xE5, 0x44, 0x00, 0x8D, 0xE5, 0xB2, 0x00, 0xDA, 0xE1, 0x03, 0x46, 0xA0, 0xE1 - .byte 0x01, 0x00, 0x80, 0xE2, 0x00, 0x06, 0xA0, 0xE1, 0x00, 0x00, 0x60, 0xE2, 0x48, 0x00, 0x8D, 0xE5 - .byte 0x30, 0x00, 0xDA, 0xE5, 0x31, 0x10, 0xDA, 0xE5, 0x0C, 0xFF, 0xFF, 0xEB, 0xA4, 0x11, 0x9F, 0xE5 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x1C, 0x00, 0x8D, 0xE2, 0x00, 0x20, 0x81, 0xE5, 0xD1, 0xFB, 0x01, 0xEB - .byte 0x94, 0x11, 0x9F, 0xE5, 0x01, 0x07, 0xA0, 0xE3, 0x00, 0x00, 0x81, 0xE5, 0x00, 0x00, 0x81, 0xE5 - .byte 0x01, 0x0A, 0xA0, 0xE3, 0x00, 0x00, 0x81, 0xE5, 0x32, 0x00, 0xDA, 0xE5, 0x05, 0x25, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x50, 0xE3, 0xB6, 0x02, 0xDA, 0x01, 0x14, 0x00, 0x81, 0x05, 0x6C, 0x11, 0x9F, 0xE5 - .byte 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x81, 0xE5, 0x32, 0x00, 0xDA, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0xB6, 0x02, 0xDA, 0x11, 0x80, 0x00, 0x01, 0x15, 0x0C, 0x00, 0x9D, 0xE5, 0x00, 0x14, 0xA0, 0xE1 - .byte 0x10, 0x00, 0x9D, 0xE5, 0x41, 0x38, 0xA0, 0xE1, 0x00, 0x04, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1 - .byte 0x42, 0x18, 0xA0, 0xE1, 0x03, 0x28, 0xA0, 0xE1, 0x00, 0x58, 0xA0, 0xE1, 0x04, 0x05, 0xA0, 0xE1 - .byte 0x01, 0x38, 0xA0, 0xE1, 0x40, 0x18, 0xA0, 0xE1, 0x23, 0x08, 0xA0, 0xE1, 0x22, 0x38, 0xA0, 0xE1 - .byte 0x25, 0x48, 0xA0, 0xE1, 0x18, 0x21, 0x9F, 0xE5, 0x01, 0x18, 0xA0, 0xE1, 0x00, 0x08, 0xA0, 0xE1 - .byte 0x21, 0x08, 0x80, 0xE1, 0x03, 0x18, 0x84, 0xE1, 0x00, 0x10, 0x82, 0xE5, 0x04, 0x00, 0x82, 0xE5 - .byte 0x01, 0x0A, 0xA0, 0xE3, 0x04, 0x00, 0x82, 0xE5, 0x32, 0x00, 0xDA, 0xE5, 0x06, 0x15, 0xA0, 0xE1 - .byte 0x41, 0x18, 0xA0, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0xB8, 0x02, 0xDA, 0x11, 0x08, 0x00, 0x02, 0x15 - .byte 0x0B, 0x04, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1, 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x58, 0xA0, 0xE1 - .byte 0x04, 0x00, 0x9D, 0xE5, 0xC8, 0x20, 0x9F, 0xE5, 0x00, 0x05, 0xA0, 0xE1, 0x03, 0x38, 0x85, 0xE1 - .byte 0x00, 0x30, 0x82, 0xE5, 0x40, 0x08, 0xA0, 0xE1, 0x01, 0x2A, 0xA0, 0xE3, 0xE0, 0x96, 0x00, 0xEB - .byte 0x32, 0x00, 0xDA, 0xE5, 0xA8, 0x20, 0x9F, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xBC, 0x12, 0xDA, 0x11 - .byte 0xA0, 0x00, 0x9F, 0x15, 0x00, 0x10, 0x80, 0x15, 0x08, 0x00, 0x9D, 0xE5, 0x09, 0x15, 0xA0, 0xE1 - .byte 0x00, 0x04, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1, 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x68, 0xA0, 0xE1 - .byte 0x08, 0x05, 0xA0, 0xE1, 0x06, 0x38, 0x85, 0xE1, 0x00, 0x30, 0x82, 0xE5, 0x40, 0x08, 0xA0, 0xE1 - .byte 0x41, 0x18, 0xA0, 0xE1, 0x01, 0x2A, 0xA0, 0xE3, 0xCD, 0x96, 0x00, 0xEB, 0x32, 0x00, 0xDA, 0xE5 - .byte 0x5C, 0x30, 0x9F, 0xE5, 0x06, 0x48, 0x84, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0xBA, 0x12, 0xDA, 0x11 - .byte 0x50, 0x00, 0x9F, 0x15, 0x01, 0x2A, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0x15, 0x00, 0x00, 0x9D, 0xE5 - .byte 0x07, 0x15, 0xA0, 0xE1, 0x00, 0x05, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1, 0x41, 0x18, 0xA0, 0xE1 - .byte 0x00, 0x40, 0x83, 0xE5, 0xBE, 0x96, 0x00, 0xEB, 0x2C, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x81, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0xBC, 0x00, 0x01, 0xE5, 0x4C, 0xD0, 0x8D, 0xE2 - .byte 0xF0, 0x8F, 0xBD, 0xE8, 0x24, 0x97, 0x09, 0x02, 0x44, 0x04, 0x00, 0x04, 0x6C, 0x04, 0x00, 0x04 - .byte 0x00, 0x05, 0x00, 0x04, 0x88, 0x04, 0x00, 0x04, 0x80, 0x04, 0x00, 0x04, 0x04, 0x05, 0x00, 0x04 - .byte 0xF8, 0x4F, 0x2D, 0xE9, 0x30, 0xD0, 0x4D, 0xE2, 0x00, 0x80, 0xA0, 0xE1, 0xB4, 0x02, 0xD8, 0xE1 - .byte 0xF4, 0x51, 0x9F, 0xE5, 0xFC, 0x40, 0xD8, 0xE1, 0x40, 0x02, 0xA0, 0xE1, 0x80, 0x00, 0xA0, 0xE1 - .byte 0x01, 0x10, 0x80, 0xE2, 0x80, 0x00, 0xA0, 0xE1, 0x81, 0x60, 0xA0, 0xE1, 0xF0, 0x10, 0x95, 0xE1 - .byte 0xFE, 0x30, 0xD8, 0xE1, 0xF0, 0x91, 0xD8, 0xE1, 0xF2, 0x71, 0xD8, 0xE1, 0x00, 0x20, 0xA0, 0xE3 - .byte 0xF6, 0x50, 0x95, 0xE1, 0x00, 0x00, 0x61, 0xE2, 0x04, 0x10, 0x8D, 0xE5, 0x0C, 0x00, 0x8D, 0xE5 - .byte 0x08, 0x20, 0x8D, 0xE5, 0x14, 0x20, 0x8D, 0xE5, 0x07, 0x00, 0x83, 0xE0, 0x18, 0x20, 0x8D, 0xE5 - .byte 0x1C, 0x20, 0x8D, 0xE5, 0x20, 0x20, 0x8D, 0xE5, 0x00, 0x50, 0x8D, 0xE5, 0x10, 0x50, 0x8D, 0xE5 - .byte 0xF6, 0x51, 0xD8, 0xE1, 0x09, 0x10, 0x84, 0xE0, 0x00, 0x76, 0xA0, 0xE1, 0x05, 0x56, 0xA0, 0xE1 - .byte 0x24, 0x50, 0x8D, 0xE5, 0xF8, 0x61, 0xD8, 0xE1, 0x03, 0x56, 0xA0, 0xE1, 0x04, 0x46, 0xA0, 0xE1 - .byte 0x06, 0x36, 0xA0, 0xE1, 0x28, 0x30, 0x8D, 0xE5, 0xB2, 0x30, 0xD8, 0xE1, 0x01, 0x66, 0xA0, 0xE1 - .byte 0x01, 0x00, 0x83, 0xE2, 0x00, 0x06, 0xA0, 0xE1, 0x00, 0x00, 0x60, 0xE2, 0x2C, 0x00, 0x8D, 0xE5 - .byte 0x26, 0x00, 0xD8, 0xE5, 0x27, 0x10, 0xD8, 0xE5, 0x6C, 0xFE, 0xFF, 0xEB, 0x4C, 0x11, 0x9F, 0xE5 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE2, 0x00, 0x20, 0x81, 0xE5, 0x31, 0xFB, 0x01, 0xEB - .byte 0xBE, 0x01, 0xD8, 0xE1, 0xB0, 0x12, 0xD8, 0xE1, 0x34, 0x31, 0x9F, 0xE5, 0x00, 0x03, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x83, 0xE5, 0x01, 0x03, 0xA0, 0xE1, 0x00, 0x00, 0x83, 0xE5, 0x01, 0x2A, 0xA0, 0xE3 - .byte 0x00, 0x20, 0x83, 0xE5, 0xB2, 0x92, 0xD8, 0xE1, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0xA0, 0xE3 - .byte 0x14, 0x90, 0x83, 0xE5, 0x94, 0x10, 0x83, 0xE5, 0xFA, 0x91, 0xD8, 0xE1, 0xFC, 0x81, 0xD8, 0xE1 - .byte 0x09, 0xB6, 0x40, 0xE0, 0x08, 0xA6, 0x40, 0xE0, 0x4B, 0x83, 0xA0, 0xE1, 0x05, 0x94, 0xA0, 0xE1 - .byte 0x04, 0xC4, 0xA0, 0xE1, 0x49, 0x98, 0xA0, 0xE1, 0x4C, 0xE8, 0xA0, 0xE1, 0x0A, 0xC5, 0xA0, 0xE1 - .byte 0x09, 0x98, 0xA0, 0xE1, 0x29, 0x98, 0xA0, 0xE1, 0x0E, 0xE8, 0xA0, 0xE1, 0x2E, 0xE8, 0xA0, 0xE1 - .byte 0x4C, 0xC8, 0xA0, 0xE1, 0x0C, 0xC8, 0xA0, 0xE1, 0x2C, 0xC8, 0xA0, 0xE1, 0x08, 0x88, 0xA0, 0xE1 - .byte 0x48, 0x88, 0xA0, 0xE1, 0x08, 0x88, 0xA0, 0xE1, 0x28, 0x88, 0xA0, 0xE1, 0x04, 0x40, 0x46, 0xE0 - .byte 0x04, 0x40, 0x8B, 0xE0, 0x06, 0x64, 0xA0, 0xE1, 0x09, 0xB8, 0x8E, 0xE1, 0x1C, 0xB0, 0x83, 0xE5 - .byte 0x46, 0xB8, 0xA0, 0xE1, 0x04, 0x65, 0xA0, 0xE1, 0x0C, 0x48, 0x88, 0xE1, 0x20, 0x40, 0x83, 0xE5 - .byte 0x0B, 0x48, 0xA0, 0xE1, 0x46, 0x68, 0xA0, 0xE1, 0x05, 0x50, 0x47, 0xE0, 0x24, 0x48, 0xA0, 0xE1 - .byte 0x06, 0x68, 0xA0, 0xE1, 0x05, 0x50, 0x8A, 0xE0, 0x07, 0x74, 0xA0, 0xE1, 0x26, 0x68, 0xA0, 0xE1 - .byte 0x47, 0xA8, 0xA0, 0xE1, 0x05, 0x75, 0xA0, 0xE1, 0x0A, 0x58, 0xA0, 0xE1, 0x25, 0x58, 0xA0, 0xE1 - .byte 0x47, 0x78, 0xA0, 0xE1, 0x07, 0x78, 0xA0, 0xE1, 0x27, 0x78, 0xA0, 0xE1, 0x20, 0x20, 0x83, 0xE5 - .byte 0x09, 0x98, 0x84, 0xE1, 0x1C, 0x90, 0x83, 0xE5, 0x0C, 0x98, 0x86, 0xE1, 0x20, 0x90, 0x83, 0xE5 - .byte 0x20, 0x20, 0x83, 0xE5, 0x05, 0x48, 0x84, 0xE1, 0x1C, 0x40, 0x83, 0xE5, 0x07, 0x48, 0x86, 0xE1 - .byte 0x20, 0x40, 0x83, 0xE5, 0x20, 0x20, 0x83, 0xE5, 0x05, 0x48, 0x8E, 0xE1, 0x1C, 0x40, 0x83, 0xE5 - .byte 0x07, 0x48, 0x88, 0xE1, 0x20, 0x40, 0x83, 0xE5, 0x20, 0x20, 0x83, 0xE5, 0x98, 0x00, 0x83, 0xE5 - .byte 0x24, 0x10, 0x03, 0xE5, 0x30, 0xD0, 0x8D, 0xE2, 0xF8, 0x8F, 0xBD, 0xE8, 0xB0, 0x9F, 0x0A, 0x02 - .byte 0x44, 0x04, 0x00, 0x04, 0x6C, 0x04, 0x00, 0x04, 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1 - .byte 0x27, 0x00, 0xD4, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x10, 0x80, 0xBD, 0x08, 0x04, 0x10, 0x94, 0xE5 - .byte 0x14, 0x00, 0x84, 0xE2, 0x39, 0xFD, 0xFF, 0xEB, 0x08, 0x10, 0x94, 0xE5, 0x14, 0x00, 0x84, 0xE2 - .byte 0x5D, 0xFD, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x6C, 0xFF, 0xFF, 0xEB, 0x10, 0x80, 0xBD, 0xE8 - .byte 0x08, 0x40, 0x2D, 0xE9, 0x27, 0x10, 0xD0, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x08, 0x80, 0xBD, 0x08 - .byte 0x66, 0xFF, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_020b3ff8 -FUN_020b3ff8: @ 0x020B3FF8 - ldr r0, _020B4028 @ =0x020AFC80 - ldrsh r2, [r0] - ldrsh r1, [r0, #2] - cmp r2, r1 - movge r0, #0 - bxge lr - add r1, r2, #1 - strh r1, [r0] - ldr r1, [r0, #0x40] - mov r0, #0x34 - smlabb r0, r2, r0, r1 - bx lr - .align 2, 0 -_020B4028: .4byte 0x020AFC80 - arm_func_end FUN_020b3ff8 -_020B402C: - .byte 0x38, 0x40, 0x2D, 0xE9 - .byte 0x00, 0x50, 0xA0, 0xE1, 0xEF, 0xFF, 0xFF, 0xEB, 0x00, 0x40, 0xB0, 0xE1, 0x38, 0x80, 0xBD, 0x08 - .byte 0x05, 0x00, 0xA0, 0xE1, 0x04, 0x10, 0xA0, 0xE1, 0x28, 0x20, 0xA0, 0xE3, 0xFD, 0x0D, 0x02, 0xEB - .byte 0x03, 0x00, 0xA0, 0xE3, 0xB0, 0x00, 0xC4, 0xE1, 0x38, 0x80, 0xBD, 0xE8 - - arm_func_start FUN_020b405c -FUN_020b405c: @ 0x020B405C - push {r3, r4, r5, lr} - mov r5, r0 - bl FUN_020b3ff8 - movs r4, r0 - popeq {r3, r4, r5, pc} - mov r0, r5 - mov r1, r4 - mov r2, #0x34 - bl FUN_02137848 - mov r0, #2 - strh r0, [r4] - pop {r3, r4, r5, pc} - arm_func_end FUN_020b405c - - arm_func_start FUN_020b408c -FUN_020b408c: @ 0x020B408C - push {r4, lr} - bl FUN_020b3ff8 - movs r4, r0 - moveq r0, #0 - popeq {r4, pc} +_022EABB0: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0xe + bne _022EAD1C + bl FUN_0207AE44 + mov r4, r0 + mov r5, r1 + bl ov00_022EC1C0 + ldr r1, [r0, #0x1e8] + ldr r0, [r0, #0x1ec] + subs r3, r4, r1 + sbc r0, r5, r0 + lsl r1, r0, #6 + ldr r2, _022EAD58 @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 + mov r3, #0 + bl FUN_0208FE3C + lsr r2, r0, #1 + lsr r0, r1, #1 + cmp r0, #0 + orr r2, r2, r1, lsl #31 + cmpeq r2, #0x12c + bls _022EAC7C + bl ov00_022EC1C0 + ldr r1, [r0, #0x1e8] + ldr r0, [r0, #0x1ec] + subs r3, r4, r1 + sbc r0, r5, r0 + lsl r1, r0, #6 + ldr r2, _022EAD58 @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 + mov r3, #0 + bl FUN_0208FE3C + lsr r3, r0, #1 + mov r0, #0x12c + orr r3, r3, r1, lsl #31 + rsb r0, r0, #0 + mvn r2, #0 + adds r5, r3, r0 + adc r4, r2, r1, lsr #1 + bl ov00_022EC1C0 + add r0, r0, #0x100 + ldrh r0, [r0, #0xb2] + cmp r4, r0, asr #31 + cmpeq r5, r0 + bls _022EAC7C + bl ov00_022EC1C0 + add r0, r0, #0x100 + strh r5, [r0, #0xb2] +_022EAC7C: + mov r0, r6 mov r1, #0 - mov r2, #0x26 - bl FUN_0213778C - mov r1, #0 - mov r0, r4 - strh r1, [r4] - pop {r4, pc} - arm_func_end FUN_020b408c - - arm_func_start FUN_020b40bc -FUN_020b40bc: @ 0x020B40BC - push {r4, lr} - bl FUN_020b3ff8 - movs r4, r0 - moveq r0, #0 - popeq {r4, pc} - mov r1, #0 - mov r2, #0x26 - bl FUN_0213778C + bl ov00_022EB094 + mov r4, r0 + cmp r4, #0xff + beq _022EACA8 + bl ov00_022EC1C0 + ldr r2, [r0, #0x1d8] mov r1, #1 - mov r0, r4 - strh r1, [r4] - pop {r4, pc} - arm_func_end FUN_020b40bc - - arm_func_start FUN_020b40ec -FUN_020b40ec: @ 0x020B40EC - push {r4, lr} - bl FUN_020b3ff8 - movs r4, r0 + orr r1, r2, r1, lsl r4 + str r1, [r0, #0x1d8] +_022EACA8: + mov r0, #1 + bl ov00_022EB0F8 + mov r4, r0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1d8] + cmp r4, r0 + bne _022EAD50 + mov r5, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #1 + blt _022EAD10 + mov r4, #0xf +_022EACDC: + bl ov00_022EC1C0 + add r0, r0, r5, lsl #2 + ldr r0, [r0, #0xf4] + mov r1, r4 + bl ov00_022EAAB8 + cmp r0, #0 moveq r0, #0 - popeq {r4, pc} - mov r1, #0 - mov r2, #0x28 - bl FUN_0213778C - mov r1, #3 - mov r0, r4 - strh r1, [r4] - pop {r4, pc} - arm_func_end FUN_020b40ec + popeq {r4, r5, r6, pc} + add r5, r5, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r5, r0 + ble _022EACDC +_022EAD10: + mov r0, #0xf + bl ov00_022EC1D0 + b _022EAD50 +_022EAD1C: + mov r0, r6 + mov r1, #0xf + bl ov00_022EAAB8 + cmp r0, #0 + bne _022EAD50 + mov r0, #0 + pop {r4, r5, r6, pc} +_022EAD38: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #8 + bne _022EAD50 + mov r0, #2 + bl ov00_022EA388 +_022EAD50: + mov r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 +_022EAD58: .4byte 0x000082EA + arm_func_end ov00_022EAB38 - arm_func_start FUN_020b411c -FUN_020b411c: @ 0x020B411C - push {r4, lr} - bl FUN_020b3ff8 - movs r4, r0 - moveq r0, #0 - popeq {r4, pc} - mov r1, #0 - mov r2, #0x34 - bl FUN_0213778C - mov r1, #2 - mov r0, r4 - strh r1, [r4] - pop {r4, pc} - arm_func_end FUN_020b411c - - arm_func_start FUN_020b414c -FUN_020b414c: @ 0x020B414C + arm_func_start ov00_022EAD5C +ov00_022EAD5C: @ 0x022EAD5C push {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0x200 - ldr r0, _020B427C @ =0x020AFC80 - ldrsh r4, [r0] - cmp r4, #0 - beq _020B4274 - cmp r4, #0 - ldr r3, [r0, #0x40] - mov r2, #0 - ble _020B4198 - add r1, sp, #0 - b _020B4190 -_020B417C: - add r0, r2, #1 - lsl r0, r0, #0x10 - str r3, [r1, r2, lsl #2] - asr r2, r0, #0x10 - add r3, r3, #0x34 -_020B4190: - cmp r2, r4 - blt _020B417C -_020B4198: - mov r2, #0 - add r1, sp, #0 - b _020B41B4 -_020B41A4: - add r0, r4, #1 - lsl r0, r0, #0x10 - str r2, [r1, r4, lsl #2] - asr r4, r0, #0x10 -_020B41B4: - cmp r4, #0x80 - blt _020B41A4 - ldr r0, _020B427C @ =0x020AFC80 - mov r5, #0 - ldrsh r7, [r0] - add r4, sp, #0 - sub r6, r7, #1 - b _020B4218 -_020B41D4: - mov ip, r5 - b _020B4204 -_020B41DC: - ldr r3, [r4, ip, lsl #2] - ldr r2, [r4, r5, lsl #2] - ldrh r0, [r3, #2] - ldrh r1, [r2, #2] - cmp r1, r0 - add r0, ip, #1 - strlo r3, [r4, r5, lsl #2] - lsl r0, r0, #0x10 - strlo r2, [r4, ip, lsl #2] - asr ip, r0, #0x10 -_020B4204: - cmp ip, r7 - blt _020B41DC - add r0, r5, #1 - lsl r0, r0, #0x10 - asr r5, r0, #0x10 -_020B4218: - cmp r5, r6 - blt _020B41D4 - mov r6, #0 - add r5, sp, #0 - ldr r4, _020B4280 @ =0x01FF8120 - ldr r7, _020B427C @ =0x020AFC80 - b _020B425C -_020B4234: - ldr r0, [r5, r6, lsl #2] - ldrh r1, [r0] - lsr r2, r1, #0x1f - rsb r1, r2, r1, lsl #30 - add r1, r2, r1, ror #30 - ldr r1, [r4, r1, lsl #2] - blx r1 - add r0, r6, #1 - lsl r0, r0, #0x10 - asr r6, r0, #0x10 -_020B425C: - ldrsh r0, [r7] - cmp r6, r0 - blt _020B4234 - ldr r0, _020B427C @ =0x020AFC80 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #8 + beq _022EAD90 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0xe + beq _022EAD90 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0xf + bne _022EADD4 +_022EAD90: + bl FUN_0207AE44 + mov r4, r0 + mov r5, r1 + bl ov00_022EC1C0 + ldr r1, [r0, #0x1e8] + ldr r0, [r0, #0x1ec] + subs r3, r4, r1 + sbc r0, r5, r0 + lsl r1, r0, #6 + ldr r2, _022EAF54 @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 + mov r3, #0 + bl FUN_0208FE3C + mov r4, r0 + mov r5, r1 + b _022EADDC +_022EADD4: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_022EADDC: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #8 + beq _022EAE00 + cmp r0, #0xe + beq _022EAE30 + cmp r0, #0xf + beq _022EAF2C + b _022EAF4C +_022EAE00: + ldr r0, _022EAF58 @ =0x00001770 + cmp r5, #0 + cmpeq r4, r0 + bls _022EAF4C + bl ov00_022EC1C0 + ldr r0, [r0, #0xf4] + mov r1, #0xe + bl ov00_022EAAB8 + cmp r0, #0 + bne _022EAF4C + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_022EAE30: + ldr r0, _022EAF58 @ =0x00001770 + cmp r5, #0 + cmpeq r4, r0 + bls _022EAF4C + bl ov00_022EC1C0 + ldrb r1, [r0, #0x1ac] + add r1, r1, #1 + strb r1, [r0, #0x1ac] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x1ac] + cmp r0, #5 + bls _022EAEB8 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1d8] + bl ov00_022EA61C + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #0 + beq _022EAEAC + bl ov00_022EC1C0 mov r1, #0 - strh r1, [r0] -_020B4274: - add sp, sp, #0x200 + strb r1, [r0, #0x1ac] + bl ov00_022EC1C0 + mov r4, r0 + bl FUN_0207AE44 + str r0, [r4, #0x1e8] + str r1, [r4, #0x1ec] + b _022EAF4C +_022EAEAC: + mov r0, #2 + bl ov00_022EA388 + b _022EAF4C +_022EAEB8: + mov r4, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #1 + blt _022EAF4C + mov r5, #0xd + mov r6, r4 +_022EAED4: + bl ov00_022EC1C0 + mov r7, r0 + bl ov00_022EC1C0 + add r0, r0, r4 + ldrb r0, [r0, #0x2d0] + ldr r1, [r7, #0x1d8] + tst r1, r6, lsl r0 + bne _022EAF14 + bl ov00_022EC1C0 + add r0, r0, r4, lsl #2 + ldr r0, [r0, #0xf4] + mov r1, r5 + bl ov00_022EAAB8 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} +_022EAF14: + add r4, r4, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r4, r0 + ble _022EAED4 + b _022EAF4C +_022EAF2C: + bl ov00_022EC1C0 + add r0, r0, #0x100 + ldrh r0, [r0, #0xb2] + cmp r5, r0, asr #31 + cmpeq r4, r0 + bls _022EAF4C + mov r0, #2 + bl ov00_022EA388 +_022EAF4C: + mov r0, #1 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 -_020B427C: .4byte 0x020AFC80 -_020B4280: .4byte 0x01FF8120 - arm_func_end FUN_020b414c -_020B4284: - .byte 0x14, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x10, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x20, 0x81, 0xE5, 0x01, 0x10, 0x42, 0xE2, 0x04, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - .byte 0xAC, 0x04, 0x00, 0x04, 0x80, 0xFC, 0x0A, 0x02, 0xF8, 0x4F, 0x2D, 0xE9, 0x00, 0xA0, 0xA0, 0xE3 - .byte 0x00, 0xA0, 0x8D, 0xE5, 0x0A, 0x60, 0xA0, 0xE1, 0x0A, 0x70, 0xA0, 0xE1, 0x0A, 0x80, 0xA0, 0xE1 - .byte 0x0A, 0x90, 0xA0, 0xE1, 0x00, 0x30, 0x9D, 0xE5, 0x0A, 0x40, 0xD1, 0xE7, 0x03, 0x50, 0xD0, 0xE7 - .byte 0x01, 0x30, 0x83, 0xE2, 0x00, 0x30, 0x8D, 0xE5, 0xF4, 0x30, 0x9F, 0xE5, 0x85, 0xB0, 0xA0, 0xE1 - .byte 0xBB, 0xB0, 0x93, 0xE1, 0x84, 0x40, 0xA0, 0xE1, 0xB4, 0x30, 0x93, 0xE1, 0xFF, 0x4C, 0x0B, 0xE2 - .byte 0x04, 0x48, 0xA0, 0xE1, 0xFF, 0xCC, 0x03, 0xE2, 0x24, 0x48, 0xA0, 0xE1, 0x0C, 0xC8, 0xA0, 0xE1 - .byte 0x01, 0xA0, 0x8A, 0xE2, 0x2C, 0x08, 0x54, 0xE1, 0x02, 0x00, 0x00, 0x0A, 0x00, 0x00, 0xE0, 0x33 - .byte 0x01, 0x00, 0xA0, 0x23, 0xF8, 0x8F, 0xBD, 0xE8, 0x00, 0x00, 0x56, 0xE3, 0x18, 0x00, 0x00, 0x1A - .byte 0x0F, 0xE0, 0x03, 0xE2, 0x0F, 0x40, 0x0B, 0xE2, 0xA8, 0x30, 0x9F, 0xE5, 0x04, 0xB8, 0xA0, 0xE1 - .byte 0x0E, 0xC8, 0xA0, 0xE1, 0x2B, 0xB8, 0x03, 0xE0, 0x2C, 0x38, 0x03, 0xE0, 0x03, 0x00, 0x5B, 0xE1 - .byte 0x05, 0x00, 0x00, 0x0A, 0x0E, 0x00, 0x54, 0xE1, 0x01, 0x30, 0xA0, 0x33, 0x00, 0x30, 0xA0, 0x23 - .byte 0xFF, 0x80, 0x03, 0xE2, 0x01, 0x60, 0xA0, 0xE3, 0x09, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x57, 0xE3 - .byte 0x07, 0x00, 0x00, 0x1A, 0x01, 0xB0, 0x0E, 0xE2, 0x01, 0x30, 0x04, 0xE2, 0x0B, 0x00, 0x53, 0xE1 - .byte 0x03, 0x00, 0x00, 0x0A, 0x01, 0x30, 0xA0, 0xB3, 0x00, 0x30, 0xA0, 0xA3, 0xFF, 0x90, 0x03, 0xE2 - .byte 0x01, 0x70, 0xA0, 0xE3, 0x00, 0x00, 0x55, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x00, 0x30, 0x9D, 0xE5 - .byte 0x02, 0x00, 0x53, 0xE1, 0x02, 0x00, 0x5A, 0xB1, 0xC9, 0xFF, 0xFF, 0xBA, 0x00, 0x00, 0x56, 0xE3 - .byte 0x03, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x58, 0xE3, 0x00, 0x00, 0xE0, 0x13, 0x01, 0x00, 0xA0, 0x03 - .byte 0xF8, 0x8F, 0xBD, 0xE8, 0x00, 0x00, 0x57, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x59, 0xE3 - .byte 0x00, 0x00, 0xE0, 0x13, 0x01, 0x00, 0xA0, 0x03, 0xF8, 0x8F, 0xBD, 0xE8, 0x00, 0x00, 0xA0, 0xE3 - .byte 0xF8, 0x8F, 0xBD, 0xE8, 0x44, 0x9E, 0x09, 0x02, 0xFE, 0xFF, 0x00, 0x00, 0xF8, 0x43, 0x2D, 0xE9 - .byte 0x00, 0x90, 0xA0, 0xE1, 0x20, 0x40, 0x9D, 0xE5, 0x01, 0x60, 0xA0, 0xE1, 0x02, 0x50, 0xA0, 0xE1 - .byte 0x03, 0x80, 0xA0, 0xE1, 0x5F, 0xB9, 0x00, 0xEB, 0x00, 0x70, 0xA0, 0xE1, 0x09, 0x00, 0xA0, 0xE1 - .byte 0x61, 0xB9, 0x00, 0xEB, 0x00, 0x00, 0x55, 0xE3, 0xF8, 0x83, 0xBD, 0xB8, 0x07, 0x10, 0xD7, 0xE5 - .byte 0x81, 0x01, 0x55, 0xE1, 0xF8, 0x83, 0xBD, 0xA8, 0x06, 0x30, 0xD7, 0xE5, 0x00, 0x00, 0x56, 0xE3 - .byte 0x08, 0x10, 0x86, 0xE0, 0x83, 0x21, 0xA0, 0xE1, 0x02, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x51, 0xE3 - .byte 0xF8, 0x83, 0xBD, 0xB8, 0x00, 0x60, 0xA0, 0xE3, 0x02, 0x00, 0x51, 0xE1, 0x02, 0x00, 0x00, 0xBA - .byte 0x02, 0x00, 0x56, 0xE1, 0xF8, 0x83, 0xBD, 0xA8, 0x01, 0x10, 0x42, 0xE2, 0x45, 0x21, 0xA0, 0xE1 - .byte 0xA2, 0x2E, 0x85, 0xE0, 0xC2, 0x21, 0xA0, 0xE1, 0x92, 0x03, 0x0C, 0xE0, 0xA5, 0x3F, 0xA0, 0xE1 - .byte 0x85, 0x2E, 0x63, 0xE0, 0xE2, 0x2E, 0x83, 0xE0, 0x8C, 0x21, 0x82, 0xE0, 0x82, 0x51, 0x80, 0xE0 - .byte 0xFF, 0x40, 0x04, 0xE2, 0x08, 0x00, 0x00, 0xEA, 0xA6, 0x2F, 0xA0, 0xE1, 0x86, 0x0E, 0x62, 0xE0 - .byte 0x46, 0x31, 0xA0, 0xE1, 0xA3, 0x3E, 0x86, 0xE0, 0xE0, 0x0E, 0x82, 0xE0, 0xC3, 0x21, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x85, 0xE0, 0x02, 0x43, 0xC0, 0xE7, 0x01, 0x60, 0x86, 0xE2, 0x01, 0x00, 0x56, 0xE1 - .byte 0xF4, 0xFF, 0xFF, 0xDA, 0xF8, 0x83, 0xBD, 0xE8, 0xF0, 0x4F, 0x2D, 0xE9, 0x14, 0xD0, 0x4D, 0xE2 - .byte 0xE0, 0x10, 0xA0, 0xE3, 0x90, 0x01, 0x03, 0xE0, 0x50, 0x11, 0x9F, 0xE5, 0x03, 0x10, 0x81, 0xE0 - .byte 0x00, 0x10, 0x8D, 0xE5, 0x07, 0x10, 0xD1, 0xE5, 0x10, 0x10, 0x8D, 0xE5, 0x01, 0x00, 0x51, 0xE3 - .byte 0x4C, 0x00, 0x00, 0x3A, 0x38, 0x11, 0x9F, 0xE5, 0x38, 0x21, 0x9F, 0xE5, 0x03, 0x10, 0x91, 0xE7 - .byte 0x03, 0x80, 0x92, 0xE7, 0x08, 0xA0, 0x81, 0xE2, 0x00, 0x60, 0xA0, 0xE3, 0x40, 0x00, 0x00, 0xEA - .byte 0x10, 0x10, 0x9D, 0xE5, 0x08, 0x90, 0xA0, 0xE1, 0x01, 0x10, 0x41, 0xE2, 0x00, 0x70, 0xA0, 0xE3 - .byte 0x0C, 0x10, 0x8D, 0xE5, 0x1D, 0x00, 0x00, 0xEA, 0x08, 0x40, 0x89, 0xE2, 0x0C, 0x00, 0x94, 0xE8 - .byte 0x10, 0x10, 0x89, 0xE2, 0x0C, 0x00, 0x89, 0xE8, 0x0C, 0x00, 0x91, 0xE8, 0x04, 0x10, 0x8D, 0xE5 - .byte 0x8A, 0x11, 0x89, 0xE0, 0x0C, 0x00, 0x84, 0xE8, 0x08, 0x10, 0x8D, 0xE5, 0x18, 0x50, 0x89, 0xE2 - .byte 0x04, 0x10, 0x9D, 0xE5, 0x0C, 0x00, 0x95, 0xE8, 0x0C, 0x00, 0x81, 0xE8, 0x20, 0x40, 0x89, 0xE2 - .byte 0x0C, 0x00, 0x94, 0xE8, 0x0C, 0x00, 0x85, 0xE8, 0x28, 0xE0, 0x89, 0xE2, 0x0C, 0x00, 0x9E, 0xE8 - .byte 0x0C, 0x00, 0x84, 0xE8, 0x30, 0xC0, 0x89, 0xE2, 0x0C, 0x00, 0x9C, 0xE8, 0x38, 0xB0, 0x89, 0xE2 - .byte 0x0C, 0x00, 0x8E, 0xE8, 0x0C, 0x00, 0x9B, 0xE8, 0x0C, 0x00, 0x8C, 0xE8, 0x08, 0x10, 0x9D, 0xE5 - .byte 0x8A, 0x91, 0x89, 0xE0, 0x0C, 0x00, 0x91, 0xE8, 0x0C, 0x00, 0x8B, 0xE8, 0x01, 0x70, 0x87, 0xE2 - .byte 0x0C, 0x10, 0x9D, 0xE5, 0x01, 0x00, 0x57, 0xE1, 0xDE, 0xFF, 0xFF, 0xBA, 0x08, 0x40, 0x89, 0xE2 - .byte 0x0C, 0x00, 0x94, 0xE8, 0x0C, 0x00, 0x89, 0xE8, 0x10, 0x10, 0x89, 0xE2, 0x0C, 0x00, 0x91, 0xE8 - .byte 0x0C, 0x00, 0x84, 0xE8, 0x18, 0xC0, 0x89, 0xE2, 0x0C, 0x00, 0x9C, 0xE8, 0x0C, 0x00, 0x81, 0xE8 - .byte 0x20, 0xB0, 0x89, 0xE2, 0x28, 0x70, 0x89, 0xE2, 0x30, 0x50, 0x89, 0xE2, 0x38, 0x40, 0x89, 0xE2 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x40, 0x80, 0x88, 0xE2, 0x01, 0x60, 0x86, 0xE2, 0x0C, 0x00, 0x9B, 0xE8 - .byte 0x0C, 0x00, 0x8C, 0xE8, 0x0C, 0x00, 0x97, 0xE8, 0x0C, 0x00, 0x8B, 0xE8, 0x0C, 0x00, 0x95, 0xE8 - .byte 0x0C, 0x00, 0x87, 0xE8, 0x0C, 0x00, 0x94, 0xE8, 0x0C, 0x00, 0x85, 0xE8, 0x38, 0x10, 0x89, 0xE5 - .byte 0x3C, 0x10, 0x89, 0xE5, 0x00, 0x10, 0x9D, 0xE5, 0x06, 0x10, 0xD1, 0xE5, 0x01, 0x00, 0x56, 0xE1 - .byte 0xBA, 0xFF, 0xFF, 0xBA, 0x19, 0xBA, 0x00, 0xEB, 0x14, 0xD0, 0x8D, 0xE2, 0xF0, 0x8F, 0xBD, 0xE8 - .byte 0xDC, 0x88, 0x2A, 0x02, 0xFC, 0x88, 0x2A, 0x02, 0xF0, 0x88, 0x2A, 0x02, 0xF8, 0x4F, 0x2D, 0xE9 - .byte 0x20, 0xD0, 0x4D, 0xE2, 0xE0, 0x10, 0xA0, 0xE3, 0x90, 0x01, 0x04, 0xE0, 0x74, 0x11, 0x9F, 0xE5 - .byte 0x04, 0x10, 0x81, 0xE0, 0x08, 0x10, 0x8D, 0xE5, 0x07, 0x10, 0xD1, 0xE5, 0x04, 0x10, 0x8D, 0xE5 - .byte 0x01, 0x00, 0x51, 0xE3, 0x55, 0x00, 0x00, 0x3A, 0x5C, 0x11, 0x9F, 0xE5, 0x5C, 0x31, 0x9F, 0xE5 - .byte 0x04, 0x20, 0x91, 0xE7, 0x04, 0x80, 0x93, 0xE7, 0x08, 0x10, 0x82, 0xE2, 0x00, 0x10, 0x8D, 0xE5 - .byte 0x09, 0xB0, 0x82, 0xE2, 0x00, 0x60, 0xA0, 0xE3, 0x47, 0x00, 0x00, 0xEA, 0x04, 0x10, 0x9D, 0xE5 - .byte 0x08, 0x90, 0xA0, 0xE1, 0x01, 0x10, 0x41, 0xE2, 0x00, 0x70, 0xA0, 0xE3, 0x18, 0x10, 0x8D, 0xE5 - .byte 0x24, 0x00, 0x00, 0xEA, 0x10, 0x10, 0x89, 0xE2, 0x0C, 0x00, 0x91, 0xE8, 0x0C, 0x00, 0x89, 0xE8 - .byte 0x00, 0x20, 0x9D, 0xE5, 0x1C, 0x10, 0x8D, 0xE5, 0x08, 0x10, 0x89, 0xE2, 0x0C, 0x10, 0x8D, 0xE5 - .byte 0x82, 0x21, 0x89, 0xE0, 0x10, 0x20, 0x8D, 0xE5, 0x8B, 0x21, 0x89, 0xE0, 0x14, 0x20, 0x8D, 0xE5 - .byte 0x00, 0x20, 0x9D, 0xE5, 0x0C, 0xA0, 0x9D, 0xE5, 0x18, 0x50, 0x89, 0xE2, 0x20, 0x40, 0x89, 0xE2 - .byte 0x28, 0xE0, 0x89, 0xE2, 0x30, 0xC0, 0x89, 0xE2, 0x38, 0x10, 0x89, 0xE2, 0x82, 0x91, 0x89, 0xE0 - .byte 0x0C, 0x00, 0x95, 0xE8, 0x0C, 0x00, 0x8A, 0xE8, 0x1C, 0xA0, 0x9D, 0xE5, 0x0C, 0x00, 0x94, 0xE8 - .byte 0x0C, 0x00, 0x8A, 0xE8, 0x0C, 0x00, 0x9E, 0xE8, 0x0C, 0x00, 0x85, 0xE8, 0x0C, 0x00, 0x9C, 0xE8 - .byte 0x0C, 0x00, 0x84, 0xE8, 0x0C, 0x00, 0x91, 0xE8, 0x0C, 0x00, 0x8E, 0xE8, 0x10, 0x20, 0x9D, 0xE5 - .byte 0x01, 0x70, 0x87, 0xE2, 0x0C, 0x00, 0x92, 0xE8, 0x0C, 0x00, 0x8C, 0xE8, 0x14, 0x20, 0x9D, 0xE5 - .byte 0x0C, 0x00, 0x92, 0xE8, 0x0C, 0x00, 0x81, 0xE8, 0x18, 0x10, 0x9D, 0xE5, 0x01, 0x00, 0x57, 0xE1 - .byte 0xD7, 0xFF, 0xFF, 0xBA, 0x10, 0xC0, 0x89, 0xE2, 0x0C, 0x00, 0x9C, 0xE8, 0x0C, 0x00, 0x89, 0xE8 - .byte 0x18, 0xA0, 0x89, 0xE2, 0x08, 0x10, 0x89, 0xE2, 0x0C, 0x00, 0x9A, 0xE8, 0x0C, 0x00, 0x81, 0xE8 - .byte 0x20, 0x70, 0x89, 0xE2, 0x28, 0x50, 0x89, 0xE2, 0x30, 0x40, 0x89, 0xE2, 0x38, 0x10, 0x89, 0xE2 - .byte 0x00, 0xE0, 0xA0, 0xE3, 0x40, 0x80, 0x88, 0xE2, 0x01, 0x60, 0x86, 0xE2, 0x0C, 0x00, 0x97, 0xE8 - .byte 0x0C, 0x00, 0x8C, 0xE8, 0x0C, 0x00, 0x95, 0xE8, 0x0C, 0x00, 0x8A, 0xE8, 0x0C, 0x00, 0x94, 0xE8 - .byte 0x0C, 0x00, 0x87, 0xE8, 0x0C, 0x00, 0x91, 0xE8, 0x0C, 0x00, 0x85, 0xE8, 0x30, 0xE0, 0x89, 0xE5 - .byte 0x34, 0xE0, 0x89, 0xE5, 0x38, 0xE0, 0x89, 0xE5, 0x3C, 0xE0, 0x89, 0xE5, 0x08, 0x10, 0x9D, 0xE5 - .byte 0x06, 0x10, 0xD1, 0xE5, 0x01, 0x00, 0x56, 0xE1, 0xB3, 0xFF, 0xFF, 0xBA, 0xB3, 0xB9, 0x00, 0xEB - .byte 0x20, 0xD0, 0x8D, 0xE2, 0xF8, 0x8F, 0xBD, 0xE8, 0xDC, 0x88, 0x2A, 0x02, 0xFC, 0x88, 0x2A, 0x02 - .byte 0xF0, 0x88, 0x2A, 0x02 +_022EAF54: .4byte 0x000082EA +_022EAF58: .4byte 0x00001770 + arm_func_end ov00_022EAD5C - arm_func_start GetKeyN2MSwitch -GetKeyN2MSwitch: @ 0x020B47B4 - push {r3, lr} - sub sp, sp, #8 - ldr r2, _020B47E4 @ =0x020A2CF8 - add r3, sp, #0 - ldr ip, [r2] - ldr r2, [r2, #4] - str ip, [sp] - str r2, [sp, #4] - ldr r1, [r3, r1, lsl #2] - blx r1 - add sp, sp, #8 - pop {r3, pc} - .align 2, 0 -_020B47E4: .4byte 0x020A2CF8 - arm_func_end GetKeyN2MSwitch - - arm_func_start GetKeyN2M -GetKeyN2M: @ 0x020B47E8 - cmp r0, #0x258 - subge r0, r0, #0x258 - lslge r0, r0, #0x10 - asrge r0, r0, #0x10 - cmp r0, #0 - blt _020B480C - ldr r1, _020B484C @ =0x0000022B - cmp r0, r1 - blt _020B4814 -_020B480C: + arm_func_start ov00_022EAF5C +ov00_022EAF5C: @ 0x022EAF5C + push {r3, r4, r5, r6, r7, lr} + mov r6, #0 + ldr r7, _022EAFAC @ =0x02326F88 + mov r5, #4 + mov r4, r6 +_022EAF70: + ldr r1, [r7, #4] + cmp r1, #0 + beq _022EAF88 + mov r0, r5 + mov r2, r4 + bl ov00_022E0434 +_022EAF88: + add r6, r6, #1 + cmp r6, #0x9a + add r7, r7, #0xc + blt _022EAF70 + ldr r1, _022EAFAC @ =0x02326F88 + ldr r2, _022EAFB0 @ =0x00000738 mov r0, #0 - bx lr -_020B4814: - ldr r2, _020B4850 @ =0x020B09B4 - lsl r3, r0, #0x1f - ldr r2, [r2, #0x14] - asr r0, r0, #1 - ldr ip, [r2, r0, lsl #2] - lsr r2, r3, #0x1b - add r0, r1, #0x1d4 - and r2, r0, ip, asr r2 + bl FUN_0207C314 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022EAFAC: .4byte 0x02326F88 +_022EAFB0: .4byte 0x00000738 + arm_func_end ov00_022EAF5C + + arm_func_start ov00_022EAFB4 +ov00_022EAFB4: @ 0x022EAFB4 + push {r4, r5, r6, lr} + mov r5, #0 + mov r4, r5 +_022EAFC0: + mov r6, r4 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x14] + cmp r0, #0 + blt _022EAFFC +_022EAFD4: + bl ov00_022EC1C0 + add r0, r0, r6 + ldrb r0, [r0, #0x2d0] + cmp r5, r0 + beq _022EAFFC + add r6, r6, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x14] + cmp r6, r0 + ble _022EAFD4 +_022EAFFC: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x14] + cmp r6, r0 + bgt _022EB01C + add r0, r5, #1 + and r5, r0, #0xff + cmp r5, #0x20 + blo _022EAFC0 +_022EB01C: + mov r0, r5 + pop {r4, r5, r6, pc} + arm_func_end ov00_022EAFB4 + + arm_func_start ov00_022EB024 +ov00_022EB024: @ 0x022EB024 + push {r3, r4, r5, lr} + mov r5, r0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x2fc] + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + mov r4, #0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x344] + cmp r0, #0 + ble _022EB08C +_022EB054: + bl ov00_022EC1C0 + add r0, r0, r4 + ldrb r0, [r0, #0x304] + bl ov00_022E3D70 + cmp r0, #0 + ble _022EB078 + cmp r0, r5 + moveq r0, #1 + popeq {r3, r4, r5, pc} +_022EB078: + add r4, r4, #1 + bl ov00_022EC1C0 + ldr r0, [r0, #0x344] + cmp r4, r0 + blt _022EB054 +_022EB08C: + mov r0, #0 + pop {r3, r4, r5, pc} + arm_func_end ov00_022EB024 + + arm_func_start ov00_022EB094 +ov00_022EB094: @ 0x022EB094 + push {r3, r4, r5, lr} + cmp r1, #0 + moveq r4, #1 + mov r5, r0 + movne r4, #0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r4, r0 + bgt _022EB0F0 +_022EB0B8: + bl ov00_022EC1C0 + add r0, r0, r4, lsl #2 + ldr r0, [r0, #0xf4] + cmp r5, r0 + bne _022EB0DC + bl ov00_022EC1C0 + add r0, r0, r4 + ldrb r0, [r0, #0x2d0] + pop {r3, r4, r5, pc} +_022EB0DC: + add r4, r4, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r4, r0 + ble _022EB0B8 +_022EB0F0: + mov r0, #0xff + pop {r3, r4, r5, pc} + arm_func_end ov00_022EB094 + + arm_func_start ov00_022EB0F8 +ov00_022EB0F8: @ 0x022EB0F8 + push {r4, r5, r6, lr} + cmp r0, #0 + mov r5, #0 + beq _022EB118 + bl ov00_022EC1C0 + ldr r0, [r0, #0x2f0] + bic r0, r0, #1 + pop {r4, r5, r6, pc} +_022EB118: + mov r6, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #1 + blt _022EB154 + mov r4, r6 +_022EB130: + bl ov00_022EC1C0 + add r0, r0, r6 + ldrb r0, [r0, #0x2d0] + add r6, r6, #1 + orr r5, r5, r4, lsl r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r6, r0 + ble _022EB130 +_022EB154: + mov r0, r5 + pop {r4, r5, r6, pc} + arm_func_end ov00_022EB0F8 + + arm_func_start ov00_022EB15C +ov00_022EB15C: @ 0x022EB15C + push {r4, lr} + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x1ad] + bl ov00_022EC1C0 + mov r4, r0 + bl FUN_0207AE44 + str r0, [r4, #0x1f8] + str r1, [r4, #0x1fc] + pop {r4, pc} + arm_func_end ov00_022EB15C + + arm_func_start ov00_022EB184 +ov00_022EB184: @ 0x022EB184 + push {r4, lr} + ldr r1, _022EB1F0 @ =0x02326F48 + mov r4, r0 + ldr r3, [r1] + cmp r3, #0 + ldrbne r0, [r3] + cmpne r0, #0 + popeq {r4, pc} + mov r2, #0 + str r2, [r3, #8] + ldr r0, [r1] + str r2, [r0, #0xc] + ldr r0, [r1] + strb r2, [r0, #2] + bl FUN_0207AE44 + ldr r2, _022EB1F0 @ =0x02326F48 + cmp r4, #0 + ldr r2, [r2] + str r0, [r2, #0x18] + str r1, [r2, #0x1c] + popne {r4, pc} + bl FUN_0207AE44 + ldr r2, _022EB1F0 @ =0x02326F48 + ldr r2, [r2] + str r0, [r2, #0x10] + str r1, [r2, #0x14] + pop {r4, pc} + .align 2, 0 +_022EB1F0: .4byte 0x02326F48 + arm_func_end ov00_022EB184 + + arm_func_start ov00_022EB1F4 +ov00_022EB1F4: @ 0x022EB1F4 + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #8 + ldr r0, _022EB614 @ =0x02326F48 + ldr r0, [r0] + cmp r0, #0 + ldrbne r0, [r0] + cmpne r0, #0 + addeq sp, sp, #8 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #2 + addeq sp, sp, #8 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #3 + addeq sp, sp, #8 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0x13 + bne _022EB450 + mov r0, #0 + bl ov00_022EB0F8 + ldr r1, _022EB614 @ =0x02326F48 + ldr r5, [r1] + ldr r1, [r5, #8] + cmp r1, r0 + bne _022EB328 + ldr r1, [r5, #0xc] + cmp r1, r0 + bne _022EB2B4 + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + strb r0, [r4, #0x16] + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r1, [r0, #0xd] + mov r0, #0 + sub r1, r1, #1 + strb r1, [r4, #0x1a4] + bl ov00_022E9AA4 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022EB2B4: + bl FUN_0207AE44 + str r0, [r5, #0x18] + str r1, [r5, #0x1c] + mov r0, #0 + str r0, [r5, #8] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #0 + bne _022EB308 + mov r0, #3 + bl ov00_022EC1D0 + bl ov00_022EC1C0 + mov r1, #2 + str r1, [r0, #0xe8] + bl ov00_022EC1C0 + mov r4, r0 + bl FUN_0207AE44 + str r0, [r4, #0xec] + add sp, sp, #8 + str r1, [r4, #0xf0] + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022EB308: + mov r0, #4 + bl ov00_022EC1D0 + mov r1, #0 + mov r2, r1 + mov r0, #1 + bl ov00_022E92F0 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022EB328: + ldrb r4, [r5, #2] + bl FUN_0207AE44 + ldr r3, [r5, #0x18] + ldr r2, [r5, #0x1c] + subs r3, r0, r3 + sbc r0, r1, r2 + lsl r1, r0, #6 + ldr r2, _022EB618 @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _022EB61C @ =0x00001770 + mul r2, r4, r2 + cmp r1, r2, asr #31 + cmpeq r0, r2 + addlo sp, sp, #8 + poplo {r4, r5, r6, r7, r8, sb, sl, pc} + cmp r4, #5 + bls _022EB394 + mov r0, #1 + bl ov00_022EB184 + bl ov00_022EA5EC + mov r0, #1 + bl ov00_022EA388 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022EB394: + mov r7, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #1 + blt _022EB434 + ldr r8, _022EB614 @ =0x02326F48 + mov r5, #0 + mov r4, #0x11 + mov r6, r7 +_022EB3B8: + bl ov00_022EC1C0 + add r0, r0, r7 + ldr r1, [r8] + ldrb r0, [r0, #0x2d0] + ldr r1, [r1, #8] + tst r1, r6, lsl r0 + bne _022EB420 + bl ov00_022EC1C0 + mov sl, r0 + bl ov00_022EC1C0 + mov sb, r0 + bl ov00_022EC1C0 + str r5, [sp] + str r5, [sp, #4] + add r0, r0, r7, lsl #1 + add r1, sl, r7, lsl #2 + add r2, sb, r7, lsl #2 + ldrh r3, [r0, #0xa4] + ldr r1, [r1, #0xf4] + ldr r2, [r2, #0x24] + mov r0, r4 + bl ov00_022E78AC + bl ov00_022E9108 + cmp r0, #0 + addne sp, sp, #8 + popne {r4, r5, r6, r7, r8, sb, sl, pc} +_022EB420: + add r7, r7, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r7, r0 + ble _022EB3B8 +_022EB434: + ldr r0, _022EB614 @ =0x02326F48 + add sp, sp, #8 + ldr r1, [r0] + ldrb r0, [r1, #2] + add r0, r0, #1 + strb r0, [r1, #2] + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022EB450: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #4 + beq _022EB474 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #3 + addne sp, sp, #8 + popne {r4, r5, r6, r7, r8, sb, sl, pc} +_022EB474: + ldr r0, _022EB614 @ =0x02326F48 + ldr r4, [r0] + bl ov00_022EC1C0 + ldrb r1, [r4, #1] + ldrb r2, [r0, #0xd] sub r0, r1, #1 cmp r2, r0 - movgt r0, #0 - lslle r0, r2, #0x10 - asrle r0, r0, #0x10 - bx lr + addlt sp, sp, #8 + poplt {r4, r5, r6, r7, r8, sb, sl, pc} + ldrb r0, [r4, #2] + cmp r0, #0 + bne _022EB4E8 + ldr r0, _022EB614 @ =0x02326F48 + ldr r4, [r0] + bl FUN_0207AE44 + ldr r3, [r4, #0x10] + ldr r2, [r4, #0x14] + subs r3, r0, r3 + sbc r0, r1, r2 + lsl r1, r0, #6 + ldr r2, _022EB618 @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, [r4, #4] + cmp r1, #0 + cmpeq r0, r2 + bhs _022EB540 +_022EB4E8: + ldrb r0, [r4, #2] + cmp r0, #0 + addeq sp, sp, #8 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + ldr r0, _022EB614 @ =0x02326F48 + ldr r4, [r0] + bl FUN_0207AE44 + ldr r3, [r4, #0x18] + ldr r2, [r4, #0x1c] + subs r3, r0, r3 + sbc r0, r1, r2 + lsl r1, r0, #6 + ldr r2, _022EB618 @ =0x000082EA + orr r1, r1, r3, lsr #26 + lsl r0, r3, #6 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, [r4, #4] + cmp r1, #0 + cmpeq r0, r2, lsr #2 + addlo sp, sp, #8 + poplo {r4, r5, r6, r7, r8, sb, sl, pc} +_022EB540: + bl ov00_022EC1C0 + ldr r0, [r0, #0x204] + cmp r0, #0 + beq _022EB56C + bl ov00_022EC1C0 + ldr r0, [r0, #0x204] + bl ov00_022E9690 + bl ov00_022E9108 + cmp r0, #0 + addne sp, sp, #8 + popne {r4, r5, r6, r7, r8, sb, sl, pc} +_022EB56C: + mov r0, #0x13 + bl ov00_022EC1D0 + mov r4, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r0, #1 + blt _022EB5F0 + mov r6, #0 + mov r5, #0x11 +_022EB590: + bl ov00_022EC1C0 + mov r8, r0 + bl ov00_022EC1C0 + mov r7, r0 + bl ov00_022EC1C0 + str r6, [sp] + str r6, [sp, #4] + add r0, r0, r4, lsl #1 + add r1, r8, r4, lsl #2 + add r2, r7, r4, lsl #2 + ldrh r3, [r0, #0xa4] + ldr r1, [r1, #0xf4] + ldr r2, [r2, #0x24] + mov r0, r5 + bl ov00_022E78AC + bl ov00_022E9108 + cmp r0, #0 + addne sp, sp, #8 + popne {r4, r5, r6, r7, r8, sb, sl, pc} + add r4, r4, #1 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + cmp r4, r0 + ble _022EB590 +_022EB5F0: + ldr r0, _022EB614 @ =0x02326F48 + ldr r4, [r0] + bl FUN_0207AE44 + str r0, [r4, #0x18] + str r1, [r4, #0x1c] + mov r0, #1 + strb r0, [r4, #2] + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, sb, sl, pc} .align 2, 0 -_020B484C: .4byte 0x0000022B -_020B4850: .4byte 0x020B09B4 - arm_func_end GetKeyN2M +_022EB614: .4byte 0x02326F48 +_022EB618: .4byte 0x000082EA +_022EB61C: .4byte 0x00001770 + arm_func_end ov00_022EB1F4 - arm_func_start GetKeyN2MBaseForm -GetKeyN2MBaseForm: @ 0x020B4854 + arm_func_start ov00_022EB620 +ov00_022EB620: @ 0x022EB620 + push {r4, lr} + movs r4, r0 + moveq r0, #0 + popeq {r4, pc} + cmp r4, #4 + addls pc, pc, r4, lsl #2 + b _022EB67C +_022EB63C: @ jump table + b _022EB67C @ case 0 + b _022EB650 @ case 1 + b _022EB65C @ case 2 + b _022EB668 @ case 3 + b _022EB674 @ case 4 +_022EB650: + mov r0, #9 + sub r2, r0, #0xa + b _022EB67C +_022EB65C: + mov r0, #9 + sub r2, r0, #0xb + b _022EB67C +_022EB668: + mov r0, #6 + sub r2, r0, #0x10 + b _022EB67C +_022EB674: + mov r0, #6 + sub r2, r0, #0x1a +_022EB67C: + ldr r1, _022EB690 @ =0xFFFEC398 + add r1, r2, r1 + bl ov00_022E6570 + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_022EB690: .4byte 0xFFFEC398 + arm_func_end ov00_022EB620 + + arm_func_start ov00_022EB694 +ov00_022EB694: @ 0x022EB694 + push {r4, lr} + movs r4, r0 + moveq r0, #0 + popeq {r4, pc} + cmp r4, #6 + addls pc, pc, r4, lsl #2 + b _022EB710 +_022EB6B0: @ jump table + b _022EB710 @ case 0 + b _022EB6CC @ case 1 + b _022EB6D8 @ case 2 + b _022EB6E4 @ case 3 + b _022EB6F0 @ case 4 + b _022EB6FC @ case 5 + b _022EB708 @ case 6 +_022EB6CC: + mov r0, #6 + sub r2, r0, #0x38 + b _022EB710 +_022EB6D8: + mov r0, #6 + sub r2, r0, #0x24 + b _022EB710 +_022EB6E4: + mov r0, #6 + sub r2, r0, #0x1a + b _022EB710 +_022EB6F0: + mov r0, #6 + sub r2, r0, #0x2e + b _022EB710 +_022EB6FC: + mov r0, #9 + sub r2, r0, #0xa + b _022EB710 +_022EB708: + mov r0, #9 + sub r2, r0, #0xb +_022EB710: + ldr r1, _022EB724 @ =0xFFFEB3F8 + add r1, r2, r1 + bl ov00_022E6570 + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_022EB724: .4byte 0xFFFEB3F8 + arm_func_end ov00_022EB694 + + arm_func_start ov00_022EB728 +ov00_022EB728: @ 0x022EB728 + push {r4, r5, r6, lr} + movs r6, r0 + moveq r0, #0 + popeq {r4, r5, r6, pc} + cmp r6, #5 + addls pc, pc, r6, lsl #2 + b _022EB794 +_022EB744: @ jump table + b _022EB794 @ case 0 + b _022EB75C @ case 1 + b _022EB768 @ case 2 + b _022EB774 @ case 3 + b _022EB780 @ case 4 + b _022EB78C @ case 5 +_022EB75C: + mov r5, #6 + sub r4, r5, #0x38 + b _022EB794 +_022EB768: + mov r5, #6 + sub r4, r5, #0x42 + b _022EB794 +_022EB774: + mov r5, #6 + sub r4, r5, #0x24 + b _022EB794 +_022EB780: + mov r5, #6 + sub r4, r5, #0x56 + b _022EB794 +_022EB78C: + mov r5, #6 + sub r4, r5, #0x1a +_022EB794: + bl ov00_022E1FC0 + cmp r0, #2 + beq _022EB7B4 + cmp r0, #4 + beq _022EB7C4 + cmp r0, #5 + beq _022EB7D8 + b _022EB7EC +_022EB7B4: + mov r0, r5 + sub r1, r4, #0xfa00 + bl ov00_022E2C74 + b _022EB7FC +_022EB7C4: + ldr r1, _022EB804 @ =0xFFFEDEF0 + mov r0, r5 + add r1, r4, r1 + bl ov00_022E3BE8 + b _022EB7FC +_022EB7D8: + ldr r1, _022EB808 @ =0xFFFEB7E0 + mov r0, r5 + add r1, r4, r1 + bl ov00_022E6570 + b _022EB7FC +_022EB7EC: + ldr r1, _022EB80C @ =0xFFFE90D0 + mov r0, r5 + add r1, r4, r1 + bl ov00_022E0394 +_022EB7FC: + mov r0, r6 + pop {r4, r5, r6, pc} + .align 2, 0 +_022EB804: .4byte 0xFFFEDEF0 +_022EB808: .4byte 0xFFFEB7E0 +_022EB80C: .4byte 0xFFFE90D0 + arm_func_end ov00_022EB728 + + arm_func_start ov00_022EB810 +ov00_022EB810: @ 0x022EB810 + push {r4, lr} + movs r4, r0 + moveq r0, #0 + popeq {r4, pc} + cmp r4, #1 + beq _022EB840 + cmp r4, #2 + beq _022EB84C + cmp r4, #3 + moveq r0, #6 + subeq r2, r0, #0x24 + b _022EB854 +_022EB840: + mov r0, #9 + sub r2, r0, #0xa + b _022EB854 +_022EB84C: + mov r0, #6 + sub r2, r0, #0x38 +_022EB854: + ldr r1, _022EB868 @ =0xFFFEB010 + add r1, r2, r1 + bl ov00_022E6570 + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_022EB868: .4byte 0xFFFEB010 + arm_func_end ov00_022EB810 + + arm_func_start ov00_022EB86C +ov00_022EB86C: @ 0x022EB86C + push {r4, lr} + movs r4, r0 + moveq r0, #0 + popeq {r4, pc} + cmp r4, #1 + beq _022EB898 + cmp r4, #2 + beq _022EB8A0 + cmp r4, #3 + beq _022EB8A8 + b _022EB8B0 +_022EB898: + mov r0, #1 + pop {r4, pc} +_022EB8A0: + mov r0, #2 + pop {r4, pc} +_022EB8A8: + mov r0, #3 + pop {r4, pc} +_022EB8B0: + movs r0, #6 + beq _022EB8C0 + ldr r1, _022EB8C8 @ =0xFFFEB007 + bl ov00_022E6570 +_022EB8C0: + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_022EB8C8: .4byte 0xFFFEB007 + arm_func_end ov00_022EB86C + + arm_func_start ov00_022EB8CC +ov00_022EB8CC: @ 0x022EB8CC + push {r4, lr} + movs r4, r0 + moveq r0, #0 + popeq {r4, pc} + cmp r4, #7 + addls pc, pc, r4, lsl #2 + b _022EB950 +_022EB8E8: @ jump table + b _022EB950 @ case 0 + b _022EB908 @ case 1 + b _022EB914 @ case 2 + b _022EB924 @ case 3 + b _022EB930 @ case 4 + b _022EB914 @ case 5 + b _022EB93C @ case 6 + b _022EB948 @ case 7 +_022EB908: + mov r0, #9 + sub r2, r0, #0xa + b _022EB950 +_022EB914: + mov r0, #0 + mov r2, r0 + mov r4, r0 + b _022EB950 +_022EB924: + mov r0, #6 + sub r2, r0, #0x10 + b _022EB950 +_022EB930: + mov r0, #6 + sub r2, r0, #0x24 + b _022EB950 +_022EB93C: + mov r0, #6 + sub r2, r0, #0x4c + b _022EB950 +_022EB948: + mov r0, #6 + sub r2, r0, #0x56 +_022EB950: + cmp r0, #0 + beq _022EB964 + ldr r1, _022EB96C @ =0xFFFEAC28 + add r1, r2, r1 + bl ov00_022E6570 +_022EB964: + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_022EB96C: .4byte 0xFFFEAC28 + arm_func_end ov00_022EB8CC + + arm_func_start ov00_022EB970 +ov00_022EB970: @ 0x022EB970 + push {r4, lr} + mov r4, r1 + cmp r0, #0x32 + bgt _022EB9A4 + bge _022EB9EC + cmp r0, #0xa + bgt _022EBA48 + cmp r0, #8 + blt _022EBA48 + beq _022EB9C4 + cmp r0, #0xa + beq _022EB9D8 + b _022EBA48 +_022EB9A4: + sub r1, r0, #0x33 + cmp r1, #3 + addls pc, pc, r1, lsl #2 + b _022EBA48 +_022EB9B4: @ jump table + b _022EBA00 @ case 0 + b _022EBA14 @ case 1 + b _022EBA28 @ case 2 + b _022EBA38 @ case 3 +_022EB9C4: + bl ov00_022EC1C0 + ldrb r1, [r0, #0x14] + mov r0, r4 + bl ov00_02312D10 + pop {r4, pc} +_022EB9D8: + bl ov00_022EC1C0 + ldrb r1, [r0, #0x16] + mov r0, r4 + bl ov00_02312D10 + pop {r4, pc} +_022EB9EC: + bl ov00_022EC1C0 + ldr r1, [r0, #0x200] + mov r0, r4 + bl ov00_02312D10 + pop {r4, pc} +_022EBA00: + bl ov00_022EC1C0 + ldrb r1, [r0, #0x15] + mov r0, r4 + bl ov00_02312D10 + pop {r4, pc} +_022EBA14: + bl ov00_022EC1C0 + ldr r1, [r0, #0x20] + mov r0, r4 + bl ov00_02312D10 + pop {r4, pc} +_022EBA28: + mov r0, r4 + mov r1, #3 + bl ov00_02312D10 + pop {r4, pc} +_022EBA38: + mov r0, r4 + mov r1, #1 + bl ov00_02312D10 + pop {r4, pc} +_022EBA48: + subs r1, r0, #0x64 + popmi {r4, pc} + cmp r1, #0x9a + popge {r4, pc} + mov r0, #0xc + mul r2, r1, r0 + ldr r0, _022EBAAC @ =0x02326F88 + ldrb r0, [r0, r2] + cmp r0, #0 + popeq {r4, pc} + ldr r0, _022EBAB0 @ =0x02326F89 + ldrb r0, [r0, r2] + cmp r0, #0 + beq _022EBA94 + ldr r1, _022EBAB4 @ =0x02326F90 + mov r0, r4 + ldr r1, [r1, r2] + bl ov00_02312D44 + pop {r4, pc} +_022EBA94: + ldr r1, _022EBAB4 @ =0x02326F90 + mov r0, r4 + ldr r1, [r1, r2] + ldr r1, [r1] + bl ov00_02312D10 + pop {r4, pc} + .align 2, 0 +_022EBAAC: .4byte 0x02326F88 +_022EBAB0: .4byte 0x02326F89 +_022EBAB4: .4byte 0x02326F90 + arm_func_end ov00_022EB970 +_022EBAB8: + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov00_022EBAC0 +ov00_022EBAC0: @ 0x022EBAC0 + push {r4, r5, r6, lr} + mov r6, r1 + cmp r0, #0 + beq _022EBADC + cmp r0, #1 + cmpne r0, #2 + pop {r4, r5, r6, pc} +_022EBADC: + mov r0, r6 + mov r1, #8 + bl ov00_02312CD4 + mov r0, r6 + mov r1, #0xa + bl ov00_02312CD4 + mov r0, r6 + mov r1, #0x32 + bl ov00_02312CD4 + mov r0, r6 + mov r1, #0x33 + bl ov00_02312CD4 + mov r0, r6 + mov r1, #0x34 + bl ov00_02312CD4 + mov r0, r6 + mov r1, #0x35 + bl ov00_02312CD4 + mov r0, r6 + mov r1, #0x36 + bl ov00_02312CD4 + ldr r5, _022EBB60 @ =0x02326F88 + mov r4, #0 +_022EBB38: + ldrb r1, [r5] + cmp r1, #0 + beq _022EBB4C + mov r0, r6 + bl ov00_02312CD4 +_022EBB4C: + add r4, r4, #1 + cmp r4, #0x9a + add r5, r5, #0xc + blt _022EBB38 + pop {r4, r5, r6, pc} + .align 2, 0 +_022EBB60: .4byte 0x02326F88 + arm_func_end ov00_022EBAC0 +_022EBB64: + .byte 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xC0, 0x9F, 0xE5 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x28, 0xB7, 0x2E, 0x02, 0x38, 0x40, 0x2D, 0xE9, 0x00, 0x50, 0xA0, 0xE1 + .byte 0x01, 0x40, 0xA0, 0xE1, 0x8D, 0x01, 0x00, 0xEB, 0x1C, 0x50, 0x80, 0xE5, 0x8B, 0x01, 0x00, 0xEB + .byte 0xBA, 0x41, 0xC0, 0xE1, 0x38, 0x80, 0xBD, 0xE8 + + arm_func_start ov00_022EBB98 +ov00_022EBB98: @ 0x022EBB98 + push {r4, lr} + mov r4, r0 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #1 + bne _022EBBBC + mov r0, #6 + bl ov00_022EC1D0 + b _022EBBDC +_022EBBBC: + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #6 + beq _022EBBDC + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0xb + popne {r4, pc} +_022EBBDC: + bl ov00_022EC1C0 + ldr r0, [r0, #0x180] + cmp r4, r0 + bne _022EBC00 + bl ov00_022EC1C0 + ldrb r1, [r0, #0x17c] + add r1, r1, #1 + strb r1, [r0, #0x17c] + b _022EBC14 +_022EBC00: + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x17c] + bl ov00_022EC1C0 + str r4, [r0, #0x180] +_022EBC14: + bl ov00_022EC1C0 + mov r2, #0 + str r2, [r0, #0x184] + str r2, [r0, #0x188] + mov r1, r4 + mov r0, #1 + bl ov00_022E7504 + bl ov00_022EB810 + cmp r0, #0 + popne {r4, pc} + bl ov00_022EC1C0 + mov r1, #0xff + strb r1, [r0, #0x3cc] + pop {r4, pc} + arm_func_end ov00_022EBB98 + + arm_func_start ov00_022EBC4C +ov00_022EBC4C: @ 0x022EBC4C + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x9c + mov sl, r0 + mov sb, r1 + mov r8, #0 + bl ov00_022E1FC0 + cmp r0, #5 + beq _022EBCA0 + bl ov00_022E1FC0 + cmp r0, #6 + addne sp, sp, #0x9c + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #2 + beq _022EBCA0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #3 + addne sp, sp, #0x9c + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022EBCA0: + cmp sb, #0x14 + addlo sp, sp, #0x9c + poplo {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r5, _022EBD54 @ =0x0231A2A4 + add r4, sp, #0x1c + add r7, sp, #8 + mov r6, #0x14 + mov fp, #4 +_022EBCC0: + mov r0, sl + mov r1, r7 + mov r2, r6 + bl FUN_0207C4C8 + mov r0, r7 + mov r1, r5 + mov r2, fp + bl FUN_02089940 + cmp r0, #0 + ldreq r0, [sp, #0xc] + cmpeq r0, #3 + addne sp, sp, #0x9c + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrb r2, [sp, #0x11] + mov r1, r4 + add r0, sl, #0x14 + bl FUN_0207C4C8 + str r4, [sp] + ldrb r0, [sp, #0x11] + asr r0, r0, #2 + str r0, [sp, #4] + ldrb r0, [sp, #0x10] + ldrh r3, [sp, #0x12] + ldr r1, [sp, #0x18] + ldr r2, [sp, #0x14] + bl ov00_022E7CE8 + cmp r0, #0 + addeq sp, sp, #0x9c + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrb r0, [sp, #0x11] + add r0, r0, #0x14 + add r8, r8, r0 + add r0, r8, #0x14 + cmp r0, sb + bls _022EBCC0 + add sp, sp, #0x9c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022EBD54: .4byte 0x0231A2A4 + arm_func_end ov00_022EBC4C +_022EBD58: + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov00_022EBD5C +ov00_022EBD5C: @ 0x022EBD5C + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x1c + mov r5, r0 + mov r6, r2 + mov r4, r3 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #6 + beq _022EBD94 + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0xb + addne sp, sp, #0x1c + popne {r3, r4, r5, r6, pc} +_022EBD94: + cmp r4, #0 + addeq sp, sp, #0x1c + popeq {r3, r4, r5, r6, pc} + cmp r5, #0 + bne _022EBF90 + mov r0, #0 + str r0, [r4, #8] + bl ov00_022EC1C0 + ldrb r1, [r0, #0x14] + add r1, r1, #1 + strb r1, [r0, #0x14] + bl ov00_022EC1C0 + ldrb r1, [r4] + ldrb r5, [r0, #0x14] + cmp r1, #0 + beq _022EBF28 + bl ov00_022EC1C0 + ldr r1, [r6, #4] + add r0, r0, r5, lsl #2 + str r1, [r0, #0x210] + ldrh r4, [r6, #2] + bl ov00_022EC1C0 + asr r2, r4, #8 + lsl r1, r4, #8 + add r0, r0, r5, lsl #1 + and r2, r2, #0xff + and r1, r1, #0xff00 + orr r1, r2, r1 + add r0, r0, #0x200 + strh r1, [r0, #0x90] + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x17c] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x180] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x184] + str r1, [r0, #0x188] + bl ov00_022EC1C0 + ldr r0, [r0, #0x1a0] + cmp r0, #0xb + bne _022EBE50 + mov r0, #0xc + bl ov00_022EC1D0 + b _022EBE58 +_022EBE50: + mov r0, #7 + bl ov00_022EC1D0 +_022EBE58: + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0xc] + bl ov00_022EC1C0 + ldr r3, [r0, #0x200] + ldr r2, _022EC138 @ =0x0231A1C0 + add r0, sp, #0x10 + mov r1, #0xc + bl FUN_0207911C + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + mov r6, r0 + bl ov00_022EC1C0 + add r1, r6, r5, lsl #2 + mov r2, r0 + ldr r0, [r1, #0x210] + add r1, r2, r5, lsl #1 + add r1, r1, #0x200 + ldrh r1, [r1, #0x90] + mov r2, #0 + bl ov00_02310BF4 + mov r6, r0 + bl ov00_022EC1C0 + mvn r1, #0 + str r1, [sp] + ldr r3, _022EC13C @ =0x00001388 + mov r1, #0 + str r3, [sp, #4] + ldr r0, [r0, #8] + mov r2, r6 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [r4, #4] + add r3, sp, #0x10 + ldr r0, [r0] + bl ov00_0230E104 + cmp r0, #1 + bne _022EBF00 + bl ov00_022EB8CC + add sp, sp, #0x1c + pop {r3, r4, r5, r6, pc} +_022EBF00: + cmp r0, #0 + addeq sp, sp, #0x1c + popeq {r3, r4, r5, r6, pc} + bl ov00_022EC1C0 + add r0, r0, r5, lsl #2 + ldr r0, [r0, #0xf4] + bl ov00_022E96E4 + add sp, sp, #0x1c + cmp r0, #0 + pop {r3, r4, r5, r6, pc} +_022EBF28: + cmp r6, #0 + beq _022EBF6C + sub r5, r5, #1 + bl ov00_022EC1C0 + ldr r1, [r6, #4] + add r0, r0, r5, lsl #2 + str r1, [r0, #0x210] + ldrh r4, [r6, #2] + bl ov00_022EC1C0 + asr r2, r4, #8 + lsl r1, r4, #8 + add r0, r0, r5, lsl #1 + and r2, r2, #0xff + and r1, r1, #0xff00 + orr r1, r2, r1 + add r0, r0, #0x200 + strh r1, [r0, #0x90] +_022EBF6C: + bl ov00_022EC1C0 + mov r4, r0 + bl FUN_0207AE44 + str r0, [r4, #0x18c] + mov r0, #7 + str r1, [r4, #0x190] + bl ov00_022EC1D0 + add sp, sp, #0x1c + pop {r3, r4, r5, r6, pc} +_022EBF90: + ldr r0, [r4, #8] + cmp r0, #0 + addeq sp, sp, #0x1c + popeq {r3, r4, r5, r6, pc} + mov r0, r5 + bl ov00_022EB86C + mov r6, r0 + cmp r6, #2 + cmpne r6, #1 + cmpne r6, #3 + addne sp, sp, #0x1c + popne {r3, r4, r5, r6, pc} + ldrb r0, [r4] + cmp r0, #0 + bne _022EC050 + cmp r6, #1 + cmpne r6, #3 + beq _022EBFEC + cmp r6, #2 + bne _022EC02C + ldrb r0, [r4, #1] + cmp r0, #1 + blo _022EC02C +_022EBFEC: + mov r0, #0 + str r0, [r4, #8] + bl ov00_022EC140 + cmp r0, #0 + addeq sp, sp, #0x1c + popeq {r3, r4, r5, r6, pc} + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + add r0, r4, r0, lsl #2 + ldr r0, [r0, #0xf4] + bl ov00_022E9900 + add sp, sp, #0x1c + cmp r0, #0 + pop {r3, r4, r5, r6, pc} +_022EC02C: + ldrb r1, [r4, #1] + mov r0, r4 + add r1, r1, #1 + strb r1, [r4, #1] + bl ov00_022E77F0 + bl ov00_022EB810 + add sp, sp, #0x1c + cmp r0, #0 + pop {r3, r4, r5, r6, pc} +_022EC050: + bl ov00_022EC1C0 + mov r5, r0 + bl FUN_0207AE44 + str r0, [r5, #0x184] + cmp r6, #1 + str r1, [r5, #0x188] + cmpne r6, #3 + beq _022EC090 + cmp r6, #2 + addne sp, sp, #0x1c + popne {r3, r4, r5, r6, pc} + bl ov00_022EC1C0 + ldrb r0, [r0, #0x17c] + cmp r0, #1 + addlo sp, sp, #0x1c + poplo {r3, r4, r5, r6, pc} +_022EC090: + mov r0, #0 + str r0, [r4, #8] + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #3 + beq _022EC0B8 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #2 + bne _022EC0D0 +_022EC0B8: + mov r0, #1 + bl ov00_022EC140 + cmp r0, #0 + bne _022EC0E4 + add sp, sp, #0x1c + pop {r3, r4, r5, r6, pc} +_022EC0D0: + mov r0, #0 + bl ov00_022EC140 + cmp r0, #0 + addeq sp, sp, #0x1c + popeq {r3, r4, r5, r6, pc} +_022EC0E4: + bl ov00_022EC1C0 + mov r1, #0 + strb r1, [r0, #0x17c] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x180] + bl ov00_022EC1C0 + mov r1, #0 + str r1, [r0, #0x184] + str r1, [r0, #0x188] + bl ov00_022EC1C0 + mov r4, r0 + bl ov00_022EC1C0 + ldrb r0, [r0, #0xd] + add r0, r0, #1 + add r0, r4, r0, lsl #2 + ldr r0, [r0, #0xf4] + bl ov00_022E96E4 + cmp r0, #0 + add sp, sp, #0x1c + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_022EC138: .4byte 0x0231A1C0 +_022EC13C: .4byte 0x00001388 + arm_func_end ov00_022EBD5C + + arm_func_start ov00_022EC140 +ov00_022EC140: @ 0x022EC140 push {r3, lr} cmp r0, #0 - blt _020B486C - ldr r1, _020B4888 @ =0x0000022B - cmp r0, r1 - blt _020B4874 -_020B486C: + movne r0, #1 + popne {r3, pc} + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #3 + beq _022EC170 + bl ov00_022EC1C0 + ldrb r1, [r0, #0x17d] + add r1, r1, #1 + strb r1, [r0, #0x17d] +_022EC170: + bl ov00_022EC1C0 + ldrb r0, [r0, #0x15] + cmp r0, #3 + beq _022EC190 + bl ov00_022EC1C0 + ldrb r0, [r0, #0x17d] + cmp r0, #5 + blo _022EC1A4 +_022EC190: + ldr r1, _022EC1AC @ =0xFFFEAE6C + mov r0, #6 + bl ov00_022E6570 mov r0, #0 pop {r3, pc} -_020B4874: - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - bl GetKeyN2M - bl FUN_0210F7E4 +_022EC1A4: + mov r0, #1 pop {r3, pc} .align 2, 0 -_020B4888: .4byte 0x0000022B - arm_func_end GetKeyN2MBaseForm +_022EC1AC: .4byte 0xFFFEAE6C + arm_func_end ov00_022EC140 - arm_func_start GetKeyM2NSwitch -GetKeyM2NSwitch: @ 0x020B488C + arm_func_start ov00_022EC1B0 +ov00_022EC1B0: @ 0x022EC1B0 + ldr r1, _022EC1BC @ =0x02326F48 + str r0, [r1, #4] + bx lr + .align 2, 0 +_022EC1BC: .4byte 0x02326F48 + arm_func_end ov00_022EC1B0 + + arm_func_start ov00_022EC1C0 +ov00_022EC1C0: @ 0x022EC1C0 + ldr r0, _022EC1CC @ =0x02326F48 + ldr r0, [r0, #4] + bx lr + .align 2, 0 +_022EC1CC: .4byte 0x02326F48 + arm_func_end ov00_022EC1C0 + + arm_func_start ov00_022EC1D0 +ov00_022EC1D0: @ 0x022EC1D0 + ldr r1, _022EC1E0 @ =0x02326F48 + ldr r1, [r1, #4] + str r0, [r1, #0x1a0] + bx lr + .align 2, 0 +_022EC1E0: .4byte 0x02326F48 + arm_func_end ov00_022EC1D0 + + arm_func_start ov00_022EC1E4 +ov00_022EC1E4: @ 0x022EC1E4 + ldr r0, _022EC1F8 @ =0x023276C0 + mov r1, #0 + str r1, [r0] + str r1, [r0, #4] + bx lr + .align 2, 0 +_022EC1F8: .4byte 0x023276C0 + arm_func_end ov00_022EC1E4 + + arm_func_start FUN_022EC1FC +FUN_022EC1FC: @ 0x022EC1FC + push {r4, r5, r6, r7, r8, lr} + ldr r4, _022EC260 @ =0x023276C0 + ldr r8, [r4] + cmp r8, #0 + beq _022EC24C + mov r7, #4 + mov r6, r7 + mov r5, #0 +_022EC21C: + ldr r1, [r8, #0xc] + mov r0, r7 + str r1, [r4] + ldmib r8, {r1, r2} + bl ov00_022E0434 + mov r0, r6 + mov r1, r8 + mov r2, r5 + bl ov00_022E0434 + ldr r8, [r4] + cmp r8, #0 + bne _022EC21C +_022EC24C: + ldr r0, _022EC260 @ =0x023276C0 + mov r1, #0 + str r1, [r0] + str r1, [r0, #4] + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022EC260: .4byte 0x023276C0 + arm_func_end FUN_022EC1FC + + arm_func_start ov00_022EC264 +ov00_022EC264: @ 0x022EC264 + ldr r0, _022EC27C @ =0x023276C0 + ldr r0, [r0, #4] + cmp r0, #0x6000 + movlt r0, #1 + movge r0, #0 + bx lr + .align 2, 0 +_022EC27C: .4byte 0x023276C0 + arm_func_end ov00_022EC264 + + arm_func_start ov00_022EC280 +ov00_022EC280: @ 0x022EC280 + ldr ip, _022EC28C @ =FUN_022EC294 + ldr r0, _022EC290 @ =ov00_0230E280 + bx ip + .align 2, 0 +_022EC28C: .4byte FUN_022EC294 +_022EC290: .4byte ov00_0230E280 + arm_func_end ov00_022EC280 + + arm_func_start FUN_022EC294 +FUN_022EC294: @ 0x022EC294 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + ldr r4, _022EC370 @ =0x023276C0 + mov sl, r0 + ldr r8, [r4] + cmp r8, #0 + beq _022EC31C + mov r5, #0 + mov r6, #1 + mov fp, #4 + mov r7, r5 +_022EC2BC: + mov sb, r7 +_022EC2C0: + mov r3, r6 + ldm r8, {r0, r1, r2} + blx sl + cmp r0, #0 + bne _022EC300 + ldr r2, [r4, #4] + ldr r1, [r8, #8] + mov r0, fp + sub r1, r2, r1 + str r1, [r4, #4] + ldmib r8, {r1, r2} + bl ov00_022E0434 + str r5, [r8, #4] + str r5, [r8, #8] + str r5, [r8] + b _022EC30C +_022EC300: + add sb, sb, #1 + cmp sb, #3 + blt _022EC2C0 +_022EC30C: + cmp sb, #3 + ldrne r8, [r8, #0xc] + cmpne r8, #0 + bne _022EC2BC +_022EC31C: + ldr r4, _022EC370 @ =0x023276C0 + ldr r1, [r4] + cmp r1, #0 + beq _022EC360 + mov r6, #4 + mov r5, #0 +_022EC334: + ldr r0, [r1, #4] + cmp r0, #0 + bne _022EC360 + ldr r3, [r1, #0xc] + mov r0, r6 + mov r2, r5 + str r3, [r4] + bl ov00_022E0434 + ldr r1, [r4] + cmp r1, #0 + bne _022EC334 +_022EC360: + cmp r1, #0 + moveq r0, #1 + movne r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022EC370: .4byte 0x023276C0 + arm_func_end FUN_022EC294 + + arm_func_start ov00_022EC374 +ov00_022EC374: @ 0x022EC374 + push {r3, r4, r5, r6, r7, lr} + ldr r3, _022EC458 @ =0x023276C0 + mov r5, r2 + ldr r2, [r3, #4] + ldr r4, _022EC45C @ =0x023276C0 + mov r7, r0 + add r0, r2, r5 + cmp r0, #0x8000 + mov r6, r1 + movgt r0, #0 + popgt {r3, r4, r5, r6, r7, pc} + ldr r0, [r3] + cmp r0, #0 + beq _022EC3BC +_022EC3AC: + add r4, r0, #0xc + ldr r0, [r0, #0xc] + cmp r0, #0 + bne _022EC3AC +_022EC3BC: + mov r0, #4 + mov r1, #0x10 + bl ov00_022E03F0 + str r0, [r4] + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + mov r1, r5 + mov r0, #4 + bl ov00_022E03F0 + ldr r1, [r4] + str r0, [r1, #4] + ldr r1, [r4] + ldr r0, [r1, #4] + cmp r0, #0 + bne _022EC414 + mov r0, #4 + mov r2, #0x10 + bl ov00_022E0434 + mov r0, #0 + str r0, [r4] + pop {r3, r4, r5, r6, r7, pc} +_022EC414: + str r7, [r1] + ldr r0, [r4] + mov r2, #0 + str r5, [r0, #8] + ldr r1, [r4] + mov r0, r6 + str r2, [r1, #0xc] + ldr r1, [r4] + mov r2, r5 + ldr r1, [r1, #4] + bl FUN_0207C4C8 + ldr r1, _022EC458 @ =0x023276C0 + mov r0, #1 + ldr r2, [r1, #4] + add r2, r2, r5 + str r2, [r1, #4] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022EC458: .4byte 0x023276C0 +_022EC45C: .4byte 0x023276C0 + arm_func_end ov00_022EC374 + + arm_func_start ov00_022EC460 +ov00_022EC460: @ 0x022EC460 + push {r3, r4, r5, lr} + mov r4, r0 + mov r5, r1 + bl ov00_022E0378 + cmp r0, #0 + bne _022EC4A0 + cmp r5, #1 + bne _022EC490 + mov r0, r4 + bl ov00_022E1F88 + cmp r0, #0 + beq _022EC4A0 +_022EC490: + mov r0, r4 + bl ov00_022E220C + cmp r0, #0 + bne _022EC4A8 +_022EC4A0: + mov r0, #0 + pop {r3, r4, r5, pc} +_022EC4A8: + mov r0, r4 + bl ov00_022EC9B0 + cmp r0, #1 + moveq r0, #0 + popeq {r3, r4, r5, pc} + mov r0, r4 + bl ov00_022ECDCC + mov r4, r0 + mov r0, r5 + bl ov00_022EC67C + cmp r4, r0 + movlt r0, #0 + poplt {r3, r4, r5, pc} + bl ov00_022EC264 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, r4, r5, pc} + arm_func_end ov00_022EC460 + + arm_func_start ov00_022EC4F0 +ov00_022EC4F0: @ 0x022EC4F0 + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #8 + mov r7, r1 + mov r8, r0 + mov r0, r7 + mov r6, r2 + mov r5, r3 + bl ov00_022EC998 + mov r4, r0 + mov r0, r7 + mov r1, r8 + bl ov00_022EC460 + cmp r0, #0 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + mov r0, #1 + strb r0, [r4, #0x1c] + str r6, [r4] + mov r0, #0 + str r0, [r4, #0xc] + add r0, sp, #0 + mov r1, r8 + mov r2, r5 + str r5, [r4, #0x14] + bl ov00_022EC610 + add r1, sp, #0 + mov r0, r7 + mov r2, #8 + mov r3, #1 + bl ov00_022EC9E8 + ldr r0, _022EC60C @ =0x023276C8 + ldr r0, [r0] + add r0, r0, #0x600 + ldrh sb, [r0, #0x10] + mov r0, r7 + cmp r5, sb + movle sb, r5 + bl ov00_022ECDCC + cmp sb, r0 + addgt sp, sp, #8 + movgt r0, #1 + popgt {r3, r4, r5, r6, r7, r8, sb, pc} + mov r0, r7 + mov r1, r6 + mov r2, sb + mov r3, #1 + bl ov00_022EC9E8 + ldr r0, [r4, #0xc] + add r1, r0, sb + str r1, [r4, #0xc] + ldr r0, [r4, #0x14] + cmp r1, r0 + bne _022EC600 + mov r2, #0 + strb r2, [r4, #0x1c] + str r2, [r4] + str r2, [r4, #0xc] + ldr r1, _022EC60C @ =0x023276C8 + str r2, [r4, #0x14] + ldr r1, [r1] + ldr r2, [r1, #0x600] + cmp r2, #0 + beq _022EC600 + cmp r8, #1 + bne _022EC600 + mov r1, r7 + blx r2 +_022EC600: + mov r0, #1 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022EC60C: .4byte 0x023276C8 + arm_func_end ov00_022EC4F0 + + arm_func_start ov00_022EC610 +ov00_022EC610: @ 0x022EC610 + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + ldr r1, _022EC63C @ =0x0231A2C0 + add r0, r6, #6 + mov r2, #2 + bl FUN_0208975C + strh r5, [r6, #4] + str r4, [r6] + pop {r4, r5, r6, pc} + .align 2, 0 +_022EC63C: .4byte 0x0231A2C0 + arm_func_end ov00_022EC610 + + arm_func_start ov00_022EC640 +ov00_022EC640: @ 0x022EC640 push {r3, lr} sub sp, sp, #8 - ldr r2, _020B48BC @ =0x020A2CF8 - add r3, sp, #0 - ldr ip, [r2, #8] - ldr r2, [r2, #0xc] - str ip, [sp] - str r2, [sp, #4] - ldr r1, [r3, r1, lsl #2] - blx r1 + add r1, sp, #0 + mov r2, #8 + bl FUN_0207C4C8 + ldr r1, _022EC678 @ =0x0231A2C0 + add r0, sp, #6 + mov r2, #2 + bl FUN_02087348 + cmp r0, #0 + ldrheq r0, [sp, #4] + movne r0, #0 add sp, sp, #8 pop {r3, pc} .align 2, 0 -_020B48BC: .4byte 0x020A2CF8 - arm_func_end GetKeyM2NSwitch +_022EC678: .4byte 0x0231A2C0 + arm_func_end ov00_022EC640 - arm_func_start GetKeyM2N -GetKeyM2N: @ 0x020B48C0 - cmp r0, #0x258 - subge r0, r0, #0x258 - lslge r0, r0, #0x10 - asrge r0, r0, #0x10 + arm_func_start ov00_022EC67C +ov00_022EC67C: @ 0x022EC67C + cmp r0, #2 + cmpne r0, #3 + cmpne r0, #4 + bne _022EC694 + mov r0, #0xc + bx lr +_022EC694: + mov r0, #8 + bx lr + arm_func_end ov00_022EC67C + + arm_func_start ov00_022EC69C +ov00_022EC69C: @ 0x022EC69C + push {r3, lr} + ldr r3, _022EC6D0 @ =0x023276C8 + ldr r2, _022EC6D4 @ =0x00000614 + mov r1, #0 + str r0, [r3] + bl FUN_0207C40C + ldr r0, _022EC6D0 @ =0x023276C8 + ldr r1, _022EC6D8 @ =0x000005B9 + ldr r0, [r0] + add r0, r0, #0x600 + strh r1, [r0, #0x10] + bl ov00_022EC1E4 + pop {r3, pc} + .align 2, 0 +_022EC6D0: .4byte 0x023276C8 +_022EC6D4: .4byte 0x00000614 +_022EC6D8: .4byte 0x000005B9 + arm_func_end ov00_022EC69C +_022EC6DC: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0x2C, 0xC0, 0x9F, 0xE5, 0x00, 0xC0, 0x9C, 0xE5, 0x00, 0x00, 0x5C, 0xE3, 0x08, 0x80, 0xBD, 0x08 + .byte 0x00, 0x00, 0x51, 0xE3, 0x00, 0x00, 0x52, 0x13, 0x08, 0x80, 0xBD, 0x08, 0x00, 0x00, 0x53, 0xE3 + .byte 0x01, 0x00, 0x00, 0x0A, 0xD9, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x14, 0x01, 0x00, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0xC8, 0x76, 0x32, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x30, 0x20, 0x9F, 0xE5 + .byte 0x01, 0x40, 0xA0, 0xE1, 0x00, 0x10, 0x92, 0xE5, 0x0C, 0x16, 0x91, 0xE5, 0x00, 0x00, 0x51, 0xE3 + .byte 0x10, 0x80, 0xBD, 0x08, 0x73, 0xD6, 0xFF, 0xEB, 0x14, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x00, 0x20, 0x92, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x0C, 0x26, 0x92, 0xE5, 0x32, 0xFF, 0x2F, 0xE1 + .byte 0x10, 0x80, 0xBD, 0xE8, 0xC8, 0x76, 0x32, 0x02 + + arm_func_start ov00_022EC758 +ov00_022EC758: @ 0x022EC758 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + ldr r0, _022EC8E8 @ =0x023276C8 + ldr r0, [r0] cmp r0, #0 - blt _020B48E4 - ldr r1, _020B4920 @ =0x00000483 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, sp, #0 + bl ov00_022E1F38 + mov r7, r0 + mov r8, #0 + cmp r7, #0 + pople {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r4, _022EC8E8 @ =0x023276C8 + mov fp, r8 +_022EC78C: + ldr r0, [sp] + ldrb sb, [r0, r8] + bl ov00_022EC280 + mov r0, sb + bl ov00_022E1F88 + cmp r0, #0 + beq _022EC824 + mov r0, sb + bl ov00_022EC998 + ldr r1, [r4] + mov r6, r0 + ldr r0, [r1, #0x608] + cmp r0, #0 + ldrne r0, [r6, #0x2c] + cmpne r0, #0 + beq _022EC824 + bl FUN_0207AE44 + mov sl, r1 + ldr r2, [r6, #0x24] + mov r5, r0 + subs r2, r5, r2 + ldr r1, [r6, #0x28] + lsl r0, r2, #6 + sbc r1, sl, r1 + lsl r1, r1, #6 + orr r1, r1, r2, lsr #26 + ldr r2, _022EC8EC @ =0x000082EA + mov r3, #0 + bl FUN_0208FE3C + ldr r1, [r6, #0x2c] cmp r0, r1 - blt _020B48E8 -_020B48E4: - mov r0, #0 -_020B48E8: - ldr r1, _020B4924 @ =0x020B09B4 - lsl r2, r0, #0x1f - ldr r3, [r1, #0x1c] - asr r1, r0, #1 - ldr r3, [r3, r1, lsl #2] - ldr r0, _020B4928 @ =0x000003FF - lsr r1, r2, #0x1b - and r1, r0, r3, asr r1 - sub r0, r0, #0x1d4 + bls _022EC824 + ldr r1, [r4] + mov r0, sb + ldr r1, [r1, #0x608] + blx r1 + str r5, [r6, #0x24] + str sl, [r6, #0x28] +_022EC824: + bl ov00_022E1F1C + cmp sb, r0 + beq _022EC8D8 + mov r0, sb + bl ov00_022EC9B0 + cmp r0, #1 + bne _022EC8D8 + mov r0, sb + bl ov00_022EC998 + mov r5, r0 + ldr r0, [r4] + ldr r2, [r5, #0x14] + add r0, r0, #0x600 + ldr r1, [r5, #0xc] + ldrh r6, [r0, #0x10] + sub r0, r2, r1 + cmp r0, r6 + movle r6, r0 + mov r0, sb + bl ov00_022ECDCC + cmp r0, r6 + blt _022EC8D8 + ldr r3, [r5] + ldr r1, [r5, #0xc] + mov r0, sb + add r1, r3, r1 + mov r2, r6 + mov r3, #1 + bl ov00_022EC9E8 + ldr r0, [r5, #0xc] + add r1, r0, r6 + str r1, [r5, #0xc] + ldr r0, [r5, #0x14] cmp r1, r0 - movge r0, #0 - lsllt r0, r1, #0x10 - asrlt r0, r0, #0x10 + bne _022EC8D8 + strb fp, [r5, #0x1c] + str fp, [r5] + str fp, [r5, #0xc] + str fp, [r5, #0x14] + ldr r1, [r4] + ldr r2, [r1, #0x600] + cmp r2, #0 + beq _022EC8D8 + mov r1, sb + blx r2 +_022EC8D8: + add r8, r8, #1 + cmp r8, r7 + blt _022EC78C + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022EC8E8: .4byte 0x023276C8 +_022EC8EC: .4byte 0x000082EA + arm_func_end ov00_022EC758 + + arm_func_start ov00_022EC8F0 +ov00_022EC8F0: @ 0x022EC8F0 + ldr r2, _022EC978 @ =0x023276C8 + ldr r3, [r2] + cmp r3, #0 + bxeq lr + mov r1, #0x30 + mul r1, r0, r1 + add r3, r3, r1 + mov r0, #0 + str r0, [r3, #0xc] + ldr r3, [r2] + add r3, r3, r1 + str r0, [r3, #0x10] + ldr r3, [r2] + add r3, r3, r1 + str r0, [r3, #0x14] + ldr r3, [r2] + add r3, r3, r1 + str r0, [r3, #0x18] + ldr r3, [r2] + add r3, r3, r1 + strb r0, [r3, #0x1c] + ldr r3, [r2] + add r3, r3, r1 + str r0, [r3, #4] + ldr r3, [r2] + add r3, r3, r1 + str r0, [r3, #8] + ldr r3, [r2] + add r3, r3, r1 + strb r0, [r3, #0x1d] + ldr r2, [r2] + add r1, r2, r1 + strh r0, [r1, #0x22] bx lr .align 2, 0 -_020B4920: .4byte 0x00000483 -_020B4924: .4byte 0x020B09B4 -_020B4928: .4byte 0x000003FF - arm_func_end GetKeyM2N +_022EC978: .4byte 0x023276C8 + arm_func_end ov00_022EC8F0 - arm_func_start GetKeyM2NBaseForm -GetKeyM2NBaseForm: @ 0x020B492C - push {r3, lr} - cmp r0, #0x258 - subge r0, r0, #0x258 - lslge r0, r0, #0x10 - asrge r0, r0, #0x10 - cmp r0, #0 - blt _020B4954 - ldr r1, _020B4964 @ =0x00000483 - cmp r0, r1 - blt _020B4958 -_020B4954: - mov r0, #0 -_020B4958: - bl FUN_0210F7E4 - bl GetKeyM2N - pop {r3, pc} - .align 2, 0 -_020B4964: .4byte 0x00000483 - arm_func_end GetKeyM2NBaseForm -_020B4968: - .byte 0x00, 0x40, 0x2D, 0xE9, 0x01, 0xC3, 0xA0, 0xE3 - .byte 0x21, 0xCE, 0x8C, 0xE2, 0x08, 0x10, 0x1C, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x00, 0x00, 0x00, 0x0A - .byte 0x00, 0x00, 0x00, 0xEA, 0x00, 0x80, 0xBD, 0xE8, 0x06, 0x00, 0x9C, 0xE8, 0x02, 0x10, 0x11, 0xE0 - .byte 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xEA, 0x00, 0x80, 0xBD, 0xE8, 0x02, 0x31, 0xA0, 0xE3 - .byte 0x11, 0x0F, 0x6F, 0xE1, 0x33, 0x10, 0xD1, 0xE1, 0xFC, 0xFF, 0xFF, 0x1A, 0x33, 0x10, 0xA0, 0xE1 - .byte 0x04, 0x10, 0x8C, 0xE5, 0x1F, 0x00, 0x70, 0xE2, 0x08, 0x10, 0x9F, 0xE5, 0x00, 0x01, 0x91, 0xE7 - .byte 0x04, 0xE0, 0x9F, 0xE5, 0x10, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x7E, 0x02, 0x50, 0x96, 0xFF, 0x01 - .byte 0x64, 0xC1, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0xC0, 0x9C, 0xE5, 0x01, 0x20, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x5C, 0xE3, 0x0D, 0x00, 0x00, 0x0A, 0x64, 0x20, 0x8C, 0xE5, 0x78, 0x30, 0x8C, 0xE5 - .byte 0x7C, 0x30, 0x8C, 0xE5, 0x80, 0x00, 0x9C, 0xE5, 0x80, 0x30, 0x8C, 0xE5, 0x00, 0xC0, 0xA0, 0xE1 - .byte 0x00, 0x00, 0x5C, 0xE3, 0xF7, 0xFF, 0xFF, 0x1A, 0x2C, 0xC1, 0x9F, 0xE5, 0x00, 0x30, 0x8C, 0xE5 - .byte 0x04, 0x30, 0x8C, 0xE5, 0x24, 0xC1, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0xB0, 0x10, 0xCC, 0xE1 - .byte 0x18, 0xC1, 0x9F, 0xE5, 0xB0, 0x10, 0xDC, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0x00, 0x00, 0x00, 0x0A - .byte 0x00, 0x00, 0x00, 0xEA, 0x04, 0xF0, 0x9D, 0xE4, 0x00, 0x10, 0xA0, 0xE3, 0xB0, 0x10, 0xCC, 0xE1 - .byte 0xD2, 0x30, 0xA0, 0xE3, 0x03, 0xF0, 0x21, 0xE1, 0x08, 0x20, 0x8C, 0xE2, 0x00, 0x10, 0x92, 0xE5 - .byte 0x00, 0x00, 0x51, 0xE3, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0xEA, 0xB4, 0x06, 0xD1, 0xE1 - .byte 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x1A - .byte 0x00, 0x00, 0x00, 0xEA, 0x68, 0x10, 0x91, 0xE5, 0xF4, 0xFF, 0xFF, 0x1A, 0x00, 0x00, 0x51, 0xE3 - .byte 0x02, 0x00, 0x00, 0x1A, 0x92, 0x30, 0xA0, 0xE3, 0x03, 0xF0, 0x21, 0xE1, 0x04, 0xF0, 0x9D, 0xE4 - .byte 0x04, 0x00, 0x9C, 0xE5, 0x00, 0x00, 0x51, 0xE1, 0xF9, 0xFF, 0xFF, 0x0A, 0x0C, 0x30, 0x9C, 0xE5 - .byte 0x00, 0x00, 0x53, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x03, 0x10, 0x2D, 0xE9, 0x0F, 0xE0, 0xA0, 0xE1 - .byte 0x13, 0xFF, 0x2F, 0xE1, 0x03, 0x10, 0xBD, 0xE8, 0x04, 0x10, 0x8C, 0xE5, 0x00, 0x20, 0x4F, 0xE1 - .byte 0x00, 0x20, 0xA0, 0xE5, 0x03, 0x00, 0x2D, 0xE9, 0x00, 0x00, 0x80, 0xE2, 0x48, 0x00, 0x80, 0xE2 - .byte 0x6C, 0x10, 0x9F, 0xE5, 0x31, 0xFF, 0x2F, 0xE1, 0x03, 0x00, 0xBD, 0xE8, 0x0C, 0x00, 0xBD, 0xE9 - .byte 0x0C, 0x00, 0xA0, 0xE9, 0x0C, 0x50, 0xBD, 0xE9, 0xFC, 0x7F, 0xE0, 0xE9, 0x00, 0x40, 0xA0, 0xE9 - .byte 0xD3, 0x30, 0xA0, 0xE3, 0x03, 0xF0, 0x21, 0xE1, 0x00, 0x20, 0xA0, 0xE9, 0x02, 0x00, 0x2D, 0xE9 - .byte 0x00, 0x00, 0x81, 0xE2, 0x48, 0x00, 0x80, 0xE2, 0x38, 0x10, 0x9F, 0xE5, 0x31, 0xFF, 0x2F, 0xE1 - .byte 0x02, 0x00, 0xBD, 0xE8, 0x44, 0xD0, 0x91, 0xE5, 0xD2, 0x30, 0xA0, 0xE3, 0x03, 0xF0, 0x21, 0xE1 - .byte 0x00, 0x20, 0xB1, 0xE5, 0x02, 0xF0, 0x69, 0xE1, 0x40, 0xE0, 0x91, 0xE5, 0xFF, 0x7F, 0xD1, 0xE9 - .byte 0x00, 0x00, 0xA0, 0xE1, 0x0F, 0x50, 0x2D, 0xE8, 0x00, 0x80, 0xBD, 0xE8, 0x60, 0x00, 0x7E, 0x02 - .byte 0x6C, 0x96, 0x2B, 0x02, 0xF0, 0x0E, 0x08, 0x02, 0x30, 0x0F, 0x08, 0x02, 0x08, 0x40, 0x2D, 0xE9 - .byte 0x20, 0x00, 0x9F, 0xE5, 0xB0, 0x10, 0xD0, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0xFC, 0xFF, 0xFF, 0x0A - .byte 0x14, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0xB0, 0x10, 0xC0, 0xE1, 0x3D, 0x00, 0x00, 0xEB - .byte 0x02, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0xD0, 0x99, 0x2B, 0x02, 0x08, 0x02, 0x00, 0x04 - .byte 0x01, 0xC3, 0xA0, 0xE3, 0x08, 0xC2, 0x8C, 0xE5, 0x9C, 0x10, 0x9F, 0xE5, 0xFF, 0x1D, 0x81, 0xE2 - .byte 0x3C, 0x10, 0x81, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x81, 0xE5, 0x8C, 0x10, 0x9F, 0xE5 - .byte 0xB0, 0x00, 0xD1, 0xE1, 0x0F, 0x00, 0x00, 0xE2, 0x01, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A - .byte 0x01, 0x0C, 0xA0, 0xE3, 0xB0, 0x00, 0xC1, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x70, 0x30, 0x9F, 0xE5 - .byte 0x00, 0x40, 0x93, 0xE5, 0x6C, 0x10, 0x9F, 0xE5, 0x80, 0x20, 0xA0, 0xE3, 0x1E, 0x00, 0x00, 0xEB - .byte 0x00, 0x40, 0x83, 0xE5, 0x60, 0x10, 0x9F, 0xE5, 0x18, 0x20, 0xA0, 0xE3, 0x1A, 0x00, 0x00, 0xEB - .byte 0x58, 0x10, 0x9F, 0xE5, 0xB0, 0x00, 0xC1, 0xE1, 0x54, 0x10, 0x9F, 0xE5, 0x64, 0x20, 0xA0, 0xE3 - .byte 0x15, 0x00, 0x00, 0xEB, 0x34, 0x10, 0x9F, 0xE5, 0xB0, 0x00, 0xD1, 0xE1, 0x0F, 0x00, 0x00, 0xE2 - .byte 0x01, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0xA0, 0xE3, 0xB0, 0x00, 0xC1, 0xE1 - .byte 0x30, 0x30, 0x9F, 0xE5, 0x24, 0xC0, 0x93, 0xE5, 0x0C, 0xE0, 0xA0, 0xE1, 0x18, 0xB0, 0x9F, 0xE5 - .byte 0xFF, 0x07, 0x9B, 0xE8, 0x00, 0xB0, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x7E, 0x02 - .byte 0x80, 0x01, 0x00, 0x04, 0x9C, 0xFD, 0x7F, 0x02, 0x80, 0xFD, 0x7F, 0x02, 0x80, 0xFF, 0x7F, 0x02 - .byte 0x98, 0xFF, 0x7F, 0x02, 0x9C, 0xFF, 0x7F, 0x02, 0x00, 0xFE, 0x7F, 0x02, 0x02, 0xC0, 0x81, 0xE0 - .byte 0x0C, 0x00, 0x51, 0xE1, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA1, 0xE8 - .byte 0xFA, 0xFF, 0xFF, 0xBA, 0x1E, 0xFF, 0x2F, 0xE1, 0xF8, 0x4F, 0x2D, 0xE9, 0x94, 0x10, 0x9F, 0xE5 - .byte 0x00, 0x40, 0x91, 0xE5, 0x02, 0x09, 0x54, 0xE3, 0x03, 0x00, 0x00, 0x3A, 0x04, 0x00, 0xA0, 0xE1 - .byte 0x75, 0x1F, 0x81, 0xE2, 0x16, 0x2E, 0xA0, 0xE3, 0x20, 0x00, 0x00, 0xEB, 0x78, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x50, 0x90, 0xE5, 0x08, 0x60, 0x90, 0xE5, 0x0C, 0x70, 0x90, 0xE5, 0x10, 0x80, 0x90, 0xE5 - .byte 0x18, 0x90, 0x90, 0xE5, 0x1C, 0xA0, 0x90, 0xE5, 0xAD, 0x07, 0x02, 0xEB, 0x00, 0xB0, 0xA0, 0xE1 - .byte 0x43, 0x02, 0x02, 0xEB, 0x3F, 0x02, 0x02, 0xEB, 0x0B, 0x00, 0xA0, 0xE1, 0xAD, 0x07, 0x02, 0xEB - .byte 0x77, 0x02, 0x02, 0xEB, 0x6D, 0x02, 0x02, 0xEB, 0x04, 0x50, 0x85, 0xE0, 0x02, 0x09, 0x55, 0xE3 - .byte 0x03, 0x00, 0x00, 0x2A, 0x02, 0x09, 0x65, 0xE2, 0x00, 0x60, 0x86, 0xE0, 0x00, 0x70, 0x47, 0xE0 - .byte 0x02, 0x59, 0xA0, 0xE3, 0x05, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1, 0x07, 0x20, 0xA0, 0xE1 - .byte 0x06, 0x00, 0x00, 0xEB, 0x09, 0x10, 0xA0, 0xE1, 0x0A, 0x20, 0xA0, 0xE1, 0x04, 0x00, 0x88, 0xE0 - .byte 0x02, 0x00, 0x00, 0xEB, 0xF8, 0x8F, 0xBD, 0xE8, 0x2C, 0xFC, 0x7F, 0x02, 0x20, 0xFE, 0x7F, 0x02 - .byte 0xF8, 0x43, 0x2D, 0xE9, 0xB8, 0x40, 0x9F, 0xE5, 0xB8, 0x30, 0x9F, 0xE5, 0x00, 0x50, 0x94, 0xE5 - .byte 0x03, 0x40, 0x00, 0xE0, 0x07, 0x34, 0xC5, 0xE3, 0xAC, 0x50, 0x9F, 0xE5, 0xA1, 0x34, 0x83, 0xE3 - .byte 0x00, 0xC0, 0x64, 0xE2, 0x00, 0x40, 0x95, 0xE5, 0x02, 0x01, 0x14, 0xE3, 0xFC, 0xFF, 0xFF, 0x1A - .byte 0x98, 0x70, 0x9F, 0xE5, 0x80, 0x40, 0xA0, 0xE3, 0x00, 0x40, 0xC7, 0xE5, 0x02, 0x00, 0x5C, 0xE1 - .byte 0x0C, 0x00, 0x80, 0xE0, 0xF8, 0x83, 0xBD, 0xA8, 0x84, 0x40, 0x9F, 0xE5, 0x20, 0x94, 0xA0, 0xE1 - .byte 0xB7, 0x60, 0xA0, 0xE3, 0x00, 0x50, 0xA0, 0xE3, 0x07, 0x60, 0xC7, 0xE5, 0x20, 0xEC, 0xA0, 0xE1 - .byte 0x08, 0xE0, 0xC7, 0xE5, 0x20, 0xE8, 0xA0, 0xE1, 0x09, 0xE0, 0xC7, 0xE5, 0x0A, 0x90, 0xC7, 0xE5 - .byte 0x0B, 0x00, 0xC7, 0xE5, 0x0C, 0x50, 0xC7, 0xE5, 0x0D, 0x50, 0xC7, 0xE5, 0x0E, 0x50, 0xC7, 0xE5 - .byte 0x03, 0x30, 0x87, 0xE5, 0x03, 0x80, 0x97, 0xE5, 0x02, 0x05, 0x18, 0xE3, 0x05, 0x00, 0x00, 0x0A - .byte 0x00, 0x00, 0x5C, 0xE3, 0x00, 0xE0, 0x94, 0xE5, 0x01, 0x00, 0x00, 0xBA, 0x02, 0x00, 0x5C, 0xE1 - .byte 0x0C, 0xE0, 0x81, 0xB7, 0x04, 0xC0, 0x8C, 0xE2, 0x02, 0x01, 0x18, 0xE3, 0xF4, 0xFF, 0xFF, 0x1A - .byte 0x02, 0x00, 0x5C, 0xE1, 0x02, 0x90, 0x89, 0xE2, 0x02, 0x0C, 0x80, 0xE2, 0xE5, 0xFF, 0xFF, 0xBA - .byte 0xF8, 0x83, 0xBD, 0xE8, 0x60, 0xFE, 0x7F, 0x02, 0xFF, 0x01, 0x00, 0x00, 0xA4, 0x01, 0x00, 0x04 - .byte 0xA1, 0x01, 0x00, 0x04, 0x10, 0x00, 0x10, 0x04, 0xF8, 0x40, 0x2D, 0xE9, 0x00, 0x70, 0xA0, 0xE1 - .byte 0x01, 0x60, 0xA0, 0xE1, 0x02, 0x50, 0xA0, 0xE1, 0x03, 0x40, 0xA0, 0xE1, 0x58, 0x07, 0x02, 0xEB - .byte 0x0C, 0x10, 0xA0, 0xE3, 0x97, 0x01, 0x02, 0xE0, 0xB0, 0x10, 0x82, 0xE2, 0x01, 0x23, 0x82, 0xE2 - .byte 0xB0, 0x60, 0x82, 0xE5, 0x01, 0x13, 0x81, 0xE2, 0x04, 0x50, 0x81, 0xE5, 0x08, 0x40, 0x81, 0xE5 - .byte 0x54, 0x07, 0x02, 0xEB, 0xF8, 0x80, 0xBD, 0xE8, 0xF8, 0x40, 0x2D, 0xE9, 0x00, 0x70, 0xA0, 0xE1 - .byte 0x01, 0x60, 0xA0, 0xE1, 0x02, 0x50, 0xA0, 0xE1, 0x03, 0x40, 0xA0, 0xE1, 0x48, 0x07, 0x02, 0xEB - .byte 0x0C, 0x10, 0xA0, 0xE3, 0x97, 0x01, 0x02, 0xE0, 0xB0, 0x10, 0x82, 0xE2, 0x01, 0x23, 0x82, 0xE2 - .byte 0xB0, 0x60, 0x82, 0xE5, 0x01, 0x33, 0x81, 0xE2, 0x04, 0x50, 0x83, 0xE5, 0x2C, 0x20, 0x9F, 0xE5 - .byte 0x08, 0x40, 0x83, 0xE5, 0x00, 0x10, 0x92, 0xE5, 0x00, 0x00, 0x57, 0xE3, 0x00, 0x10, 0x92, 0xE5 - .byte 0x04, 0x00, 0x00, 0x1A, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x20, 0x83, 0xE5, 0x10, 0x10, 0x9F, 0xE5 - .byte 0x04, 0x20, 0x83, 0xE5, 0x08, 0x10, 0x83, 0xE5, 0x3A, 0x07, 0x02, 0xEB, 0xF8, 0x80, 0xBD, 0xE8 - .byte 0xB0, 0x00, 0x00, 0x04, 0x01, 0x00, 0x40, 0x81, 0x0C, 0xC0, 0xA0, 0xE3, 0x90, 0x0C, 0x0C, 0xE0 - .byte 0xB0, 0x00, 0x8C, 0xE2, 0x01, 0xC3, 0x8C, 0xE2, 0xB0, 0x10, 0x8C, 0xE5, 0x01, 0x03, 0x80, 0xE2 - .byte 0x04, 0x20, 0x80, 0xE5, 0x08, 0x30, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 - - arm_func_start FUN_020b4ebc -FUN_020b4ebc: @ 0x020B4EBC - push {r3, lr} - mov ip, #0xc - mul lr, r0, ip - add ip, lr, #0xb0 - add lr, lr, #0x4000000 - str r1, [lr, #0xb0] - add ip, ip, #0x4000000 - str r2, [ip, #4] - ldr r2, _020B4F18 @ =0x040000B0 - str r3, [ip, #8] - ldr r1, [r2] - cmp r0, #0 - ldr r0, [r2] - bne _020B4F08 + arm_func_start ov00_022EC97C +ov00_022EC97C: @ 0x022EC97C + ldr r0, _022EC990 @ =0x023276C8 mov r1, #0 - str r1, [ip] - ldr r0, _020B4F1C @ =0x81400001 - str r1, [ip, #4] - str r0, [ip, #8] -_020B4F08: - ldr r1, _020B4F18 @ =0x040000B0 - ldr r0, [r1] - ldr r0, [r1] + ldr ip, _022EC994 @ =FUN_022EC1FC + str r1, [r0] + bx ip + .align 2, 0 +_022EC990: .4byte 0x023276C8 +_022EC994: .4byte FUN_022EC1FC + arm_func_end ov00_022EC97C + + arm_func_start ov00_022EC998 +ov00_022EC998: @ 0x022EC998 + ldr r2, _022EC9AC @ =0x023276C8 + mov r1, #0x30 + ldr r2, [r2] + mla r0, r1, r0, r2 + bx lr + .align 2, 0 +_022EC9AC: .4byte 0x023276C8 + arm_func_end ov00_022EC998 + + arm_func_start ov00_022EC9B0 +ov00_022EC9B0: @ 0x022EC9B0 + ldr r2, _022EC9C8 @ =0x023276C8 + mov r1, #0x30 + ldr r2, [r2] + mla r1, r0, r1, r2 + ldrb r0, [r1, #0x1c] + bx lr + .align 2, 0 +_022EC9C8: .4byte 0x023276C8 + arm_func_end ov00_022EC9B0 + + arm_func_start ov00_022EC9CC +ov00_022EC9CC: @ 0x022EC9CC + ldr r2, _022EC9E4 @ =0x023276C8 + mov r1, #0x30 + ldr r2, [r2] + mla r1, r0, r1, r2 + ldrb r0, [r1, #0x1d] + bx lr + .align 2, 0 +_022EC9E4: .4byte 0x023276C8 + arm_func_end ov00_022EC9CC + + arm_func_start ov00_022EC9E8 +ov00_022EC9E8: @ 0x022EC9E8 + push {r3, r4, r5, r6, r7, lr} + mov r5, r3 + mov r7, r1 + mov r6, r2 + bl ov00_022E20A4 + mov r4, r0 + cmp r5, #0 + beq _022ECA58 + bl ov00_022EC280 + cmp r0, #0 + beq _022ECA30 + mov r0, r4 + mov r1, r7 + mov r2, r6 + mov r3, r5 + bl ov00_0230E280 + cmp r0, #0 + popeq {r3, r4, r5, r6, r7, pc} +_022ECA30: + mov r0, r4 + mov r1, r7 + mov r2, r6 + bl ov00_022EC374 + cmp r0, #0 + popne {r3, r4, r5, r6, r7, pc} + ldr r1, _022ECA6C @ =0xFFFE82A2 + mov r0, #6 + bl ov00_022E0394 + pop {r3, r4, r5, r6, r7, pc} +_022ECA58: + mov r1, r7 + mov r2, r6 + mov r3, r5 + bl ov00_0230E280 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022ECA6C: .4byte 0xFFFE82A2 + arm_func_end ov00_022EC9E8 + + arm_func_start ov00_022ECA70 +ov00_022ECA70: @ 0x022ECA70 + push {r4, r5, r6, lr} + mov r6, r1 + mov r5, r2 + bl ov00_022E2108 + mov r4, r0 + bl ov00_022EC9CC + cmp r0, #4 + addls pc, pc, r0, lsl #2 + b _022ECB4C +_022ECA94: @ jump table + b _022ECAA8 @ case 0 + b _022ECAD4 @ case 1 + b _022ECAE8 @ case 2 + b _022ECAFC @ case 3 + b _022ECB10 @ case 4 +_022ECAA8: + mov r0, r6 + bl ov00_022EC640 + cmp r0, #2 + poplo {r4, r5, r6, pc} + cmp r0, #4 + pophi {r4, r5, r6, pc} + mov r0, r4 + mov r1, r6 + mov r2, r5 + bl ov00_022ECBE4 + pop {r4, r5, r6, pc} +_022ECAD4: + mov r0, r4 + mov r1, r6 + mov r2, r5 + bl ov00_022ECBE4 + pop {r4, r5, r6, pc} +_022ECAE8: + mov r0, r4 + mov r1, r6 + mov r2, r5 + bl ov00_022ECCAC + pop {r4, r5, r6, pc} +_022ECAFC: + mov r0, r4 + mov r1, r6 + mov r2, r5 + bl ov00_022ECD90 + pop {r4, r5, r6, pc} +_022ECB10: + mov r0, #0x30 + mul ip, r4, r0 + ldr r0, _022ECB5C @ =0x023276C8 + mov r3, #1 + ldr r1, [r0] + mov r2, #0 + add r1, r1, ip + strb r3, [r1, #0x1d] + ldr r1, [r0] + add r1, r1, ip + str r2, [r1, #0x10] + ldr r0, [r0] + add r0, r0, ip + str r2, [r0, #0x18] + pop {r4, r5, r6, pc} +_022ECB4C: + ldr r1, _022ECB60 @ =0xFFFE82B6 + mov r0, #6 + bl ov00_022E0394 + pop {r4, r5, r6, pc} + .align 2, 0 +_022ECB5C: .4byte 0x023276C8 +_022ECB60: .4byte 0xFFFE82B6 + arm_func_end ov00_022ECA70 + + arm_func_start ov00_022ECB64 +ov00_022ECB64: @ 0x022ECB64 + push {r4, r5, r6, lr} + mov r6, r1 + mov r5, r2 + bl ov00_022E2108 + ldr r2, _022ECBE0 @ =0x023276C8 + mov r1, #0x30 + ldr r2, [r2] + mla r4, r0, r1, r2 + ldr r1, [r4, #4] + cmp r1, #0 + popeq {r4, r5, r6, pc} + ldr r1, [r4, #8] + cmp r1, r5 + poplt {r4, r5, r6, pc} + ldr r3, [r2, #0x604] + cmp r3, #0 + beq _022ECBB4 + mov r1, r6 + mov r2, r5 + blx r3 +_022ECBB4: + ldr r0, _022ECBE0 @ =0x023276C8 + ldr r0, [r0] + ldr r0, [r0, #0x608] + cmp r0, #0 + ldrne r0, [r4, #0x2c] + cmpne r0, #0 + popeq {r4, r5, r6, pc} + bl FUN_0207AE44 + str r0, [r4, #0x24] + str r1, [r4, #0x28] + pop {r4, r5, r6, pc} + .align 2, 0 +_022ECBE0: .4byte 0x023276C8 + arm_func_end ov00_022ECB64 + + arm_func_start ov00_022ECBE4 +ov00_022ECBE4: @ 0x022ECBE4 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + ldr r4, _022ECCA8 @ =0x023276C8 + mov r3, #0x30 + ldr r4, [r4] + mov r7, r1 + mla r4, r0, r3, r4 + mov r6, r2 + bl ov00_022EC9CC + strb r0, [r4, #0x1e] + mov r0, r7 + bl ov00_022EC640 + mov r5, r0 + cmp r5, #4 + addls pc, pc, r5, lsl #2 + b _022ECC9C +_022ECC24: @ jump table + b _022ECC9C @ case 0 + b _022ECC38 @ case 1 + b _022ECC94 @ case 2 + b _022ECC94 @ case 3 + b _022ECC94 @ case 4 +_022ECC38: + cmp r6, #8 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} + add r1, sp, #0 + mov r0, r7 + mov r2, #8 + bl FUN_0207C4C8 + ldr r1, [sp] + mov r0, #0 + str r1, [r4, #0x18] + str r0, [r4, #0x10] + ldr r0, [r4, #4] + cmp r0, #0 + beq _022ECC88 + ldr r1, [r4, #8] + ldr r0, [r4, #0x18] + cmp r1, r0 + movge r0, #2 + strbge r0, [r4, #0x1d] + bge _022ECC9C +_022ECC88: + mov r0, #4 + strb r0, [r4, #0x1d] + b _022ECC9C +_022ECC94: + mov r0, #3 + strb r0, [r4, #0x1d] +_022ECC9C: + strh r5, [r4, #0x22] + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022ECCA8: .4byte 0x023276C8 + arm_func_end ov00_022ECBE4 + + arm_func_start ov00_022ECCAC +ov00_022ECCAC: @ 0x022ECCAC + push {r3, r4, r5, r6, r7, lr} + ldr r3, _022ECD88 @ =0x023276C8 + mov r7, r0 + ldr r4, [r3] + mov r3, #0x30 + mla r4, r7, r3, r4 + mov r6, r1 + mov r5, r2 + bl ov00_022EC9CC + cmp r0, #2 + bne _022ECD10 + ldr r3, [r4, #0x10] + ldr r0, [r4, #8] + add r1, r3, r5 + cmp r1, r0 + ble _022ECCFC + ldr r1, _022ECD8C @ =0xFFFE82AC + mov r0, #6 + bl ov00_022E0394 + pop {r3, r4, r5, r6, r7, pc} +_022ECCFC: + ldr r1, [r4, #4] + mov r0, r6 + mov r2, r5 + add r1, r1, r3 + bl FUN_0207C4C8 +_022ECD10: + ldr r0, [r4, #0x10] + add r0, r0, r5 + str r0, [r4, #0x10] + ldr r2, [r4, #0x18] + cmp r0, r2 + bne _022ECD5C + mov r0, #1 + strb r0, [r4, #0x1d] + mov r1, #0 + str r1, [r4, #0x10] + ldr r0, _022ECD88 @ =0x023276C8 + str r1, [r4, #0x18] + ldr r0, [r0] + ldr r3, [r0, #0x604] + cmp r3, #0 + beq _022ECD5C + ldr r1, [r4, #4] + mov r0, r7 + blx r3 +_022ECD5C: + ldr r0, _022ECD88 @ =0x023276C8 + ldr r0, [r0] + ldr r0, [r0, #0x608] + cmp r0, #0 + ldrne r0, [r4, #0x2c] + cmpne r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + bl FUN_0207AE44 + str r0, [r4, #0x24] + str r1, [r4, #0x28] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022ECD88: .4byte 0x023276C8 +_022ECD8C: .4byte 0xFFFE82AC + arm_func_end ov00_022ECCAC + + arm_func_start ov00_022ECD90 +ov00_022ECD90: @ 0x022ECD90 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + bl ov00_022EC998 + ldrb r1, [r0, #0x1e] + strb r1, [r0, #0x1d] + ldrh r1, [r0, #0x22] + cmp r1, #2 + cmpne r1, #3 + cmpne r1, #4 + popne {r3, r4, r5, pc} + mov r0, r5 + mov r2, r4 + bl ov00_022E6668 + pop {r3, r4, r5, pc} + arm_func_end ov00_022ECD90 + + arm_func_start ov00_022ECDCC +ov00_022ECDCC: @ 0x022ECDCC + push {r3, lr} + bl ov00_022E20A4 + bl ov00_0230E438 + ldr r1, _022ECDEC @ =0xFFFFFDF9 + add r0, r0, r1 + cmp r0, #0 + movle r0, #0 pop {r3, pc} .align 2, 0 -_020B4F18: .4byte 0x040000B0 -_020B4F1C: .4byte 0x81400001 - arm_func_end FUN_020b4ebc +_022ECDEC: .4byte 0xFFFFFDF9 + arm_func_end ov00_022ECDCC - arm_func_start FUN_020b4f20 -FUN_020b4f20: @ 0x020B4F20 - push {r3, r4, r5, r6, r7, lr} - ldr r1, [r0, #0x10] - ldrh lr, [r0, #0xa] - cmp r1, #0 - ldr r2, [r0, #0x18] - ldr r3, [r0, #0x1c] - beq _020B507C - mov ip, #0 -_020B4F40: - ldrb r4, [r2, #1] - ldrb r5, [r2, #2] - ldrb r6, [r2], #4 - add r4, r1, r4, lsl #2 - add r5, r1, r5, lsl #2 - ldrb r4, [r4, #1] - ldrb r5, [r5, #2] - ldrb r6, [r1, r6, lsl #2] - mul r4, lr, r4 - mul r5, lr, r5 - mul r6, lr, r6 - lsr r4, r4, #8 - lsr r7, r6, #8 - lsr r5, r5, #8 - and r6, r5, #0xff - and r4, r4, #0xff - and r5, r4, #0xf8 - and r7, r7, #0xff - lsl r4, ip, #1 - add ip, ip, #1 - and r6, r6, #0xf8 - lsl r5, r5, #2 - and r7, r7, #0xf8 - orr r5, r5, r6, lsl #7 - orr r5, r5, r7, asr #3 - strh r5, [r3, r4] - cmp ip, #0xe0 - blt _020B4F40 - b _020B4FE4 -_020B4FB4: - ldrb r4, [r2, #1] - ldrb r5, [r2, #2] - ldrb r7, [r2], #4 - and r4, r4, #0xf8 - and r6, r5, #0xf8 - lsl r5, r4, #2 - lsl r4, ip, #1 - and r7, r7, #0xf8 - orr r5, r5, r6, lsl #7 - orr r5, r5, r7, asr #3 - strh r5, [r3, r4] - add ip, ip, #1 -_020B4FE4: - cmp ip, #0xf0 - blt _020B4FB4 - b _020B5058 -_020B4FF0: - ldrb r4, [r2, #1] - ldrb r5, [r2, #2] - ldrb r6, [r2], #4 - add r4, r1, r4, lsl #2 - add r5, r1, r5, lsl #2 - ldrb r4, [r4, #1] - ldrb r5, [r5, #2] - ldrb r6, [r1, r6, lsl #2] - mul r4, lr, r4 - mul r5, lr, r5 - mul r6, lr, r6 - lsr r4, r4, #8 - lsr r7, r6, #8 - lsr r5, r5, #8 - and r6, r5, #0xff - and r4, r4, #0xff - and r5, r4, #0xf8 - and r7, r7, #0xff - lsl r4, ip, #1 - and r6, r6, #0xf8 - lsl r5, r5, #2 - and r7, r7, #0xf8 - orr r5, r5, r6, lsl #7 - orr r5, r5, r7, asr #3 - strh r5, [r3, r4] - add ip, ip, #1 -_020B5058: - ldr r4, [r0, #4] - cmp ip, r4 - blt _020B4FF0 - ldr r1, _020B5190 @ =0x02353530 - mov r0, r3 - ldr r1, [r1] - add r1, r1, #0x4c - bl FUN_020C034C - pop {r3, r4, r5, r6, r7, pc} -_020B507C: - mov r0, #0 -_020B5080: - ldrb r1, [r2, #1] - ldrb r5, [r2, #2] - ldrb r7, [r2], #4 - mul r4, r1, lr - mul r6, r5, lr - lsr r1, r4, #8 - mul r5, r7, lr - lsr r4, r6, #8 - lsr r6, r5, #8 - and r5, r4, #0xff - and r1, r1, #0xff - and r4, r1, #0xf8 - and r6, r6, #0xff - lsl r1, r0, #1 - add r0, r0, #1 - and r5, r5, #0xf8 - lsl r4, r4, #2 - and r6, r6, #0xf8 - orr r4, r4, r5, lsl #7 - orr r4, r4, r6, asr #3 - strh r4, [r3, r1] - cmp r0, #0xe0 - blt _020B5080 - b _020B5110 -_020B50E0: - ldrb r1, [r2, #1] - ldrb r4, [r2, #2] - ldrb r6, [r2], #4 - and r1, r1, #0xf8 - and r5, r4, #0xf8 - lsl r4, r1, #2 - lsl r1, r0, #1 - and r6, r6, #0xf8 - orr r4, r4, r5, lsl #7 - orr r4, r4, r6, asr #3 - strh r4, [r3, r1] - add r0, r0, #1 -_020B5110: - cmp r0, #0xf0 - blt _020B50E0 - b _020B5170 -_020B511C: - ldrb r1, [r2, #1] - ldrb r4, [r2, #2] - ldrb r6, [r2], #4 - mul ip, r1, lr - mul r5, r4, lr - lsr r1, ip, #8 - lsr r4, r5, #8 - mul r7, r6, lr - and r1, r1, #0xff - and ip, r1, #0xf8 - lsr r5, r7, #8 - and r4, r4, #0xff - and r5, r5, #0xff - lsl r1, r0, #1 - and r4, r4, #0xf8 - lsl ip, ip, #2 - and r5, r5, #0xf8 - orr r4, ip, r4, lsl #7 - orr r4, r4, r5, asr #3 - strh r4, [r3, r1] - add r0, r0, #1 -_020B5170: - cmp r0, #0xf0 - blt _020B511C - ldr r1, _020B5190 @ =0x02353530 - mov r0, r3 - ldr r1, [r1] - add r1, r1, #0x4c - bl FUN_020C034C - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_020B5190: .4byte 0x02353530 - arm_func_end FUN_020b4f20 -_020B5194: - .byte 0xF8, 0x4F, 0x2D, 0xE9, 0x5C, 0x11, 0x9F, 0xE5, 0x10, 0x40, 0x90, 0xE5 - .byte 0x00, 0x10, 0x91, 0xE5, 0x00, 0x00, 0x54, 0xE3, 0x51, 0x90, 0x81, 0xE2, 0xBA, 0xA0, 0xD0, 0xE1 - .byte 0x18, 0x50, 0x90, 0xE5, 0x1C, 0x60, 0x90, 0xE5, 0x00, 0x70, 0xA0, 0xE3, 0x29, 0x00, 0x00, 0x0A - .byte 0x04, 0x80, 0x90, 0xE5, 0x07, 0xB0, 0xA0, 0xE1, 0x23, 0x00, 0x00, 0xEA, 0x47, 0x02, 0xD9, 0xE7 - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xD5, 0x15, 0x01, 0x20, 0xD5, 0x15, 0x02, 0x30, 0xD5, 0x15 - .byte 0x10, 0x00, 0x00, 0x1A, 0x01, 0x10, 0xD5, 0xE5, 0x02, 0x00, 0xD5, 0xE5, 0x00, 0x20, 0xD5, 0xE5 - .byte 0x01, 0x11, 0x84, 0xE0, 0x00, 0x01, 0x84, 0xE0, 0x02, 0x21, 0xD4, 0xE7, 0x01, 0x10, 0xD1, 0xE5 - .byte 0x02, 0x00, 0xD0, 0xE5, 0x9A, 0x02, 0x02, 0xE0, 0x9A, 0x01, 0x01, 0xE0, 0x9A, 0x00, 0x00, 0xE0 - .byte 0x22, 0x34, 0xA0, 0xE1, 0x21, 0x24, 0xA0, 0xE1, 0x20, 0x14, 0xA0, 0xE1, 0xFF, 0x00, 0x03, 0xE2 - .byte 0xFF, 0x20, 0x02, 0xE2, 0xFF, 0x30, 0x01, 0xE2, 0xF8, 0x10, 0x02, 0xE2, 0xF8, 0x20, 0x03, 0xE2 - .byte 0x01, 0x11, 0xA0, 0xE1, 0xF8, 0x30, 0x00, 0xE2, 0x82, 0x03, 0x81, 0xE1, 0x0B, 0x10, 0xA0, 0xE1 - .byte 0xC3, 0x31, 0x80, 0xE1, 0x87, 0x20, 0xA0, 0xE1, 0xFF, 0x00, 0x07, 0xE2, 0xB2, 0x30, 0x86, 0xE1 - .byte 0x9E, 0x87, 0x00, 0xEB, 0x04, 0x50, 0x85, 0xE2, 0x01, 0x70, 0x87, 0xE2, 0x08, 0x00, 0x57, 0xE1 - .byte 0xD9, 0xFF, 0xFF, 0xBA, 0xF8, 0x8F, 0xBD, 0xE8, 0x04, 0x40, 0x90, 0xE5, 0x07, 0x80, 0xA0, 0xE1 - .byte 0x1E, 0x00, 0x00, 0xEA, 0x47, 0x02, 0xD9, 0xE7, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x30, 0xD5, 0x15 - .byte 0x01, 0x10, 0xD5, 0x15, 0x02, 0x20, 0xD5, 0x15, 0x0B, 0x00, 0x00, 0x1A, 0x00, 0x20, 0xD5, 0xE5 - .byte 0x01, 0x10, 0xD5, 0xE5, 0x02, 0x00, 0xD5, 0xE5, 0x92, 0x0A, 0x03, 0xE0, 0x91, 0x0A, 0x02, 0xE0 - .byte 0x90, 0x0A, 0x01, 0xE0, 0x23, 0x34, 0xA0, 0xE1, 0x22, 0x24, 0xA0, 0xE1, 0x21, 0x04, 0xA0, 0xE1 - .byte 0xFF, 0x30, 0x03, 0xE2, 0xFF, 0x10, 0x02, 0xE2, 0xFF, 0x20, 0x00, 0xE2, 0xF8, 0x00, 0x01, 0xE2 - .byte 0xF8, 0x10, 0x02, 0xE2, 0x00, 0x01, 0xA0, 0xE1, 0xF8, 0x20, 0x03, 0xE2, 0x81, 0x03, 0x80, 0xE1 - .byte 0x08, 0x10, 0xA0, 0xE1, 0xC2, 0x31, 0x80, 0xE1, 0x87, 0x20, 0xA0, 0xE1, 0xFF, 0x00, 0x07, 0xE2 - .byte 0xB2, 0x30, 0x86, 0xE1, 0x79, 0x87, 0x00, 0xEB, 0x04, 0x50, 0x85, 0xE2, 0x01, 0x70, 0x87, 0xE2 - .byte 0x04, 0x00, 0x57, 0xE1, 0xDE, 0xFF, 0xFF, 0xBA, 0xF8, 0x8F, 0xBD, 0xE8, 0x30, 0x35, 0x35, 0x02 - .byte 0xF8, 0x4F, 0x2D, 0xE9, 0x00, 0x14, 0x9F, 0xE5, 0x10, 0x40, 0x90, 0xE5, 0x00, 0x10, 0x91, 0xE5 - .byte 0x00, 0x00, 0x54, 0xE3, 0x51, 0x90, 0x81, 0xE2, 0xBA, 0xA0, 0xD0, 0xE1, 0x18, 0x50, 0x90, 0xE5 - .byte 0x1C, 0x60, 0x90, 0xE5, 0xB9, 0x00, 0x00, 0x0A, 0x00, 0x80, 0xA0, 0xE3, 0xFF, 0x00, 0x08, 0xE2 - .byte 0x08, 0xB0, 0x89, 0xE0, 0x00, 0x70, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0x10, 0x00, 0xDB, 0xE5 - .byte 0x08, 0x14, 0x87, 0xE0, 0x01, 0x21, 0x85, 0xE0, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xD2, 0x15 - .byte 0x01, 0x31, 0xD5, 0x17, 0x02, 0x20, 0xD2, 0x15, 0x10, 0x00, 0x00, 0x1A, 0x01, 0x00, 0xD2, 0xE5 - .byte 0x02, 0xC0, 0xD2, 0xE5, 0x01, 0x21, 0xD5, 0xE7, 0x00, 0x01, 0x84, 0xE0, 0x01, 0x00, 0xD0, 0xE5 - .byte 0x02, 0x31, 0xD4, 0xE7, 0x0C, 0x21, 0x84, 0xE0, 0x02, 0x20, 0xD2, 0xE5, 0x9A, 0x00, 0x00, 0xE0 - .byte 0x9A, 0x03, 0x03, 0xE0, 0x9A, 0x02, 0x02, 0xE0, 0x23, 0x34, 0xA0, 0xE1, 0x20, 0x04, 0xA0, 0xE1 - .byte 0x22, 0x24, 0xA0, 0xE1, 0xFF, 0x30, 0x03, 0xE2, 0xFF, 0x00, 0x00, 0xE2, 0xFF, 0x20, 0x02, 0xE2 - .byte 0xF8, 0x00, 0x00, 0xE2, 0xF8, 0x20, 0x02, 0xE2, 0x00, 0x01, 0xA0, 0xE1, 0x82, 0x23, 0x80, 0xE1 - .byte 0xF8, 0x30, 0x03, 0xE2, 0xC3, 0x31, 0x82, 0xE1, 0x81, 0x10, 0xA0, 0xE1, 0xB1, 0x30, 0x86, 0xE1 - .byte 0x00, 0x00, 0x9D, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0xFF, 0x10, 0x07, 0xE2, 0x4B, 0x87, 0x00, 0xEB - .byte 0x01, 0x70, 0x87, 0xE2, 0x10, 0x00, 0x57, 0xE3, 0xD7, 0xFF, 0xFF, 0xBA, 0x10, 0x70, 0xA0, 0xE3 - .byte 0xFF, 0xB0, 0x08, 0xE2, 0x08, 0x14, 0x87, 0xE0, 0x01, 0x21, 0x85, 0xE0, 0x01, 0x00, 0xD2, 0xE5 - .byte 0x02, 0x30, 0xD2, 0xE5, 0x01, 0x21, 0xD5, 0xE7, 0x00, 0x01, 0x84, 0xE0, 0x03, 0xC1, 0x84, 0xE0 - .byte 0x01, 0x30, 0xD0, 0xE5, 0x02, 0x00, 0xDC, 0xE5, 0x02, 0xC1, 0xD4, 0xE7, 0x9A, 0x03, 0x02, 0xE0 - .byte 0x9A, 0x00, 0x03, 0xE0, 0x9A, 0x0C, 0x00, 0xE0, 0x22, 0x24, 0xA0, 0xE1, 0x23, 0x34, 0xA0, 0xE1 - .byte 0xFF, 0x20, 0x02, 0xE2, 0x20, 0x04, 0xA0, 0xE1, 0xF8, 0x20, 0x02, 0xE2, 0xFF, 0x30, 0x03, 0xE2 - .byte 0xFF, 0xC0, 0x00, 0xE2, 0xF8, 0x00, 0x03, 0xE2, 0x02, 0x21, 0xA0, 0xE1, 0xF8, 0x30, 0x0C, 0xE2 - .byte 0x80, 0xC3, 0x82, 0xE1, 0xC3, 0x31, 0x8C, 0xE1, 0x81, 0xC0, 0xA0, 0xE1, 0x0B, 0x00, 0xA0, 0xE1 - .byte 0x00, 0x20, 0xA0, 0xE3, 0xFF, 0x10, 0x07, 0xE2, 0xBC, 0x30, 0x86, 0xE1, 0x27, 0x87, 0x00, 0xEB - .byte 0x01, 0x70, 0x87, 0xE2, 0x20, 0x00, 0x57, 0xE3, 0xDD, 0xFF, 0xFF, 0xBA, 0xC0, 0x70, 0xA0, 0xE3 - .byte 0xFF, 0xB0, 0x08, 0xE2, 0x08, 0x14, 0x87, 0xE0, 0x01, 0x21, 0x85, 0xE0, 0x01, 0x00, 0xD2, 0xE5 - .byte 0x02, 0x30, 0xD2, 0xE5, 0x01, 0x21, 0xD5, 0xE7, 0x00, 0x01, 0x84, 0xE0, 0x03, 0xC1, 0x84, 0xE0 - .byte 0x01, 0x30, 0xD0, 0xE5, 0x02, 0x00, 0xDC, 0xE5, 0x02, 0xC1, 0xD4, 0xE7, 0x9A, 0x03, 0x02, 0xE0 - .byte 0x9A, 0x00, 0x03, 0xE0, 0x9A, 0x0C, 0x00, 0xE0, 0x22, 0x24, 0xA0, 0xE1, 0x23, 0x34, 0xA0, 0xE1 - .byte 0xFF, 0x20, 0x02, 0xE2, 0x20, 0x04, 0xA0, 0xE1, 0xF8, 0x20, 0x02, 0xE2, 0xFF, 0x30, 0x03, 0xE2 - .byte 0xFF, 0xC0, 0x00, 0xE2, 0xF8, 0x00, 0x03, 0xE2, 0x02, 0x21, 0xA0, 0xE1, 0xF8, 0x30, 0x0C, 0xE2 - .byte 0x80, 0xC3, 0x82, 0xE1, 0xC3, 0x31, 0x8C, 0xE1, 0x81, 0xC0, 0xA0, 0xE1, 0x0B, 0x00, 0xA0, 0xE1 - .byte 0x00, 0x20, 0xA0, 0xE3, 0xFF, 0x10, 0x07, 0xE2, 0xBC, 0x30, 0x86, 0xE1, 0x03, 0x87, 0x00, 0xEB - .byte 0x01, 0x70, 0x87, 0xE2, 0xF0, 0x00, 0x57, 0xE3, 0xDD, 0xFF, 0xFF, 0xBA, 0xF0, 0x70, 0xA0, 0xE3 - .byte 0x07, 0x10, 0xA0, 0xE1, 0xFF, 0x00, 0x08, 0xE2, 0x00, 0x20, 0xA0, 0xE3, 0xFB, 0x86, 0x00, 0xEB - .byte 0x08, 0x14, 0x87, 0xE0, 0x01, 0x21, 0x85, 0xE0, 0x01, 0x00, 0xD2, 0xE5, 0x02, 0x30, 0xD2, 0xE5 - .byte 0x01, 0xB1, 0xD5, 0xE7, 0x9A, 0x00, 0x02, 0xE0, 0x9A, 0x03, 0x03, 0xE0, 0x9A, 0x0B, 0x00, 0xE0 - .byte 0x22, 0x24, 0xA0, 0xE1, 0x23, 0x34, 0xA0, 0xE1, 0xFF, 0x20, 0x02, 0xE2, 0x20, 0xB4, 0xA0, 0xE1 - .byte 0xFF, 0x30, 0x03, 0xE2, 0xF8, 0x00, 0x02, 0xE2, 0xFF, 0xB0, 0x0B, 0xE2, 0x01, 0x70, 0x87, 0xE2 - .byte 0xF8, 0x20, 0x03, 0xE2, 0x00, 0x01, 0xA0, 0xE1, 0xF8, 0x30, 0x0B, 0xE2, 0x82, 0x03, 0x80, 0xE1 - .byte 0xC3, 0x21, 0x80, 0xE1, 0x81, 0x00, 0xA0, 0xE1, 0xB0, 0x20, 0x86, 0xE1, 0x01, 0x0C, 0x57, 0xE3 - .byte 0xE6, 0xFF, 0xFF, 0xBA, 0x01, 0x80, 0x88, 0xE2, 0x10, 0x00, 0x58, 0xE3, 0x6A, 0xFF, 0xFF, 0xBA - .byte 0xB0, 0x70, 0xA0, 0xE3, 0x00, 0x80, 0xA0, 0xE3, 0x07, 0x11, 0x85, 0xE0, 0x01, 0x00, 0xD1, 0xE5 - .byte 0x02, 0x10, 0xD1, 0xE5, 0x07, 0x21, 0xD5, 0xE7, 0x00, 0x01, 0x84, 0xE0, 0x01, 0x11, 0x84, 0xE0 - .byte 0x01, 0x00, 0xD0, 0xE5, 0x02, 0x10, 0xD1, 0xE5, 0x02, 0x21, 0xD4, 0xE7, 0x9A, 0x00, 0x00, 0xE0 - .byte 0x9A, 0x01, 0x01, 0xE0, 0x9A, 0x02, 0x02, 0xE0, 0x20, 0x04, 0xA0, 0xE1, 0x21, 0x14, 0xA0, 0xE1 - .byte 0xFF, 0x00, 0x00, 0xE2, 0x22, 0x24, 0xA0, 0xE1, 0xFF, 0x10, 0x01, 0xE2, 0xF8, 0x00, 0x00, 0xE2 - .byte 0xFF, 0x20, 0x02, 0xE2, 0xF8, 0x10, 0x01, 0xE2, 0x00, 0x01, 0xA0, 0xE1, 0xF8, 0x30, 0x02, 0xE2 - .byte 0x81, 0x13, 0x80, 0xE1, 0x08, 0x00, 0xA0, 0xE1, 0x08, 0x20, 0xA0, 0xE1, 0xC3, 0x91, 0x81, 0xE1 - .byte 0x87, 0x30, 0xA0, 0xE1, 0xFF, 0x10, 0x07, 0xE2, 0xB3, 0x90, 0x86, 0xE1, 0xBF, 0x86, 0x00, 0xEB - .byte 0x01, 0x70, 0x87, 0xE2, 0xC0, 0x00, 0x57, 0xE3, 0xDE, 0xFF, 0xFF, 0xBA, 0xF8, 0x8F, 0xBD, 0xE8 - .byte 0x00, 0x70, 0xA0, 0xE3, 0x07, 0x00, 0x89, 0xE0, 0x10, 0x00, 0xD0, 0xE5, 0x00, 0x80, 0xA0, 0xE3 - .byte 0xFF, 0x40, 0x07, 0xE2, 0x00, 0x00, 0x50, 0xE3, 0x15, 0x00, 0x00, 0x0A, 0x08, 0xB0, 0xA0, 0xE1 - .byte 0x07, 0x14, 0x88, 0xE0, 0x01, 0x21, 0x85, 0xE0, 0x01, 0x00, 0xD2, 0xE5, 0x02, 0xC0, 0xD2, 0xE5 - .byte 0x01, 0x21, 0xD5, 0xE7, 0xF8, 0x30, 0x00, 0xE2, 0xF8, 0x00, 0x0C, 0xE2, 0x03, 0xC1, 0xA0, 0xE1 - .byte 0xF8, 0x30, 0x02, 0xE2, 0x80, 0xC3, 0x8C, 0xE1, 0x04, 0x00, 0xA0, 0xE1, 0x0B, 0x20, 0xA0, 0xE1 - .byte 0xC3, 0x31, 0x8C, 0xE1, 0x81, 0xC0, 0xA0, 0xE1, 0xFF, 0x10, 0x08, 0xE2, 0xBC, 0x30, 0x86, 0xE1 - .byte 0xA2, 0x86, 0x00, 0xEB, 0x01, 0x80, 0x88, 0xE2, 0xF0, 0x00, 0x58, 0xE3, 0xEB, 0xFF, 0xFF, 0xBA - .byte 0x1D, 0x00, 0x00, 0xEA, 0x08, 0xB0, 0xA0, 0xE1, 0x07, 0x14, 0x88, 0xE0, 0x01, 0x21, 0x85, 0xE0 - .byte 0x01, 0x00, 0xD2, 0xE5, 0x02, 0xC0, 0xD2, 0xE5, 0x01, 0x21, 0xD5, 0xE7, 0x9A, 0x00, 0x03, 0xE0 - .byte 0x9A, 0x0C, 0x00, 0xE0, 0x9A, 0x02, 0x0C, 0xE0, 0x23, 0x24, 0xA0, 0xE1, 0x20, 0x34, 0xA0, 0xE1 - .byte 0xFF, 0x20, 0x02, 0xE2, 0x2C, 0x04, 0xA0, 0xE1, 0xFF, 0x30, 0x03, 0xE2, 0xF8, 0x20, 0x02, 0xE2 - .byte 0xFF, 0xC0, 0x00, 0xE2, 0xF8, 0x00, 0x03, 0xE2, 0x02, 0x21, 0xA0, 0xE1, 0xF8, 0x30, 0x0C, 0xE2 - .byte 0x80, 0xC3, 0x82, 0xE1, 0x04, 0x00, 0xA0, 0xE1, 0x0B, 0x20, 0xA0, 0xE1, 0xC3, 0x31, 0x8C, 0xE1 - .byte 0x81, 0xC0, 0xA0, 0xE1, 0xFF, 0x10, 0x08, 0xE2, 0xBC, 0x30, 0x86, 0xE1, 0x83, 0x86, 0x00, 0xEB - .byte 0x01, 0x80, 0x88, 0xE2, 0xF0, 0x00, 0x58, 0xE3, 0xE2, 0xFF, 0xFF, 0xBA, 0x01, 0x70, 0x87, 0xE2 - .byte 0x10, 0x00, 0x57, 0xE3, 0xC2, 0xFF, 0xFF, 0xBA, 0xF8, 0x8F, 0xBD, 0xE8, 0x30, 0x35, 0x35, 0x02 - - arm_func_start ShouldMonsterRunAwayVariationOutlawCheck -ShouldMonsterRunAwayVariationOutlawCheck: @ 0x020B5710 - push {r3, r4, r5, lr} - mov r4, #0 - mov r5, r0 - bl FUN_023BCA28 - cmp r0, #0 - movne r4, #1 - bne _020B573C - ldr r0, [r5, #0xb4] - ldrb r0, [r0, #0xbc] - cmp r0, #3 - moveq r4, #1 -_020B573C: - mov r0, r4 - pop {r3, r4, r5, pc} - arm_func_end ShouldMonsterRunAwayVariationOutlawCheck - - arm_func_start AiMovement -AiMovement: @ 0x020B5744 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x88 - mov r4, r0 - ldr r8, [r4, #0xb4] - mov r2, #0 - strb r2, [r8, #0x7d] - str r1, [sp] - strb r2, [r8, #0x7e] - mov r1, #7 - strb r2, [r8, #0x7f] - bl FUN_023BD2A0 - cmp r0, #0 - beq _020B57A8 - ldrsh r2, [r8, #0x12] - ldrsh r1, [r8, #0x16] - ldr r0, _020B662C @ =0x000003E7 - add r2, r2, r1 - cmp r2, r0 - movgt r2, r0 - ldrsh r1, [r8, #0x10] - add r0, r2, r2, lsr #31 - cmp r1, r0, asr #1 - movle r0, #0 - strhle r0, [r8, #0x4a] - ble _020B6624 -_020B57A8: - mov r0, r4 - mov r1, #9 - bl FUN_023BD2A0 - cmp r0, #0 - bne _020B57CC - mov r0, r4 - bl FUN_023B7170 - cmp r0, #0 - beq _020B57D8 -_020B57CC: - mov r0, #0 - strh r0, [r8, #0x4a] - b _020B6624 -_020B57D8: - ldrb r0, [r8, #7] - cmp r0, #0 - bne _020B5814 - add r0, r8, #0x100 - ldrh r1, [r0, #0x46] - sub r2, sp, #4 - strh r1, [r2] - ldrh r0, [r0, #0x48] - strh r0, [r2, #2] - ldr r0, [r2] - bl FUN_0210C3E4 - cmp r0, #0 - moveq r0, #0 - strheq r0, [r8, #0x4a] - beq _020B6624 -_020B5814: - ldrb r0, [r8, #0xbc] - cmp r0, #7 - bne _020B5854 - ldrsh r1, [r8, #2] - add r0, r8, #0x4a - bl FUN_023A679C - mov r0, #8 - bl FUN_023A5E18 - strb r0, [r8, #0x4c] - ldrsh r1, [r4, #4] - add r0, r8, #0x100 - strh r1, [r0, #0x7e] - ldrsh r1, [r4, #6] - sub r1, r1, #1 - strh r1, [r0, #0x80] - b _020B6624 -_020B5854: - ldr r1, [sp] - mov r0, r4 - bl ShouldMonsterRunAwayVariationOutlawCheck - cmp r0, #0 - beq _020B5D28 - ldr sb, [r4, #0xb4] - ldrb r5, [r4, #0x25] - ldrb r0, [sb, #0xbc] - ldr fp, _020B6630 @ =0x000F423F - cmp r0, #3 - bne _020B58D0 - mov r0, r4 - bl FUN_023B57B0 - cmp r0, #0 - beq _020B58D0 - ldr r3, _020B6634 @ =0x02353538 - add r2, sb, #0x100 - ldr r1, [r3] + arm_func_start ov00_022ECDF0 +ov00_022ECDF0: @ 0x022ECDF0 + push {r3, lr} + bl ov00_022FBF48 + ldr r1, _022ECE10 @ =0x023276CC mov r0, #1 - add r1, r1, #0xcc00 - ldrh r5, [r1, #0xe4] - strh r5, [sb, #0x8c] - ldrh r1, [r1, #0xe6] - strh r1, [sb, #0x8e] - ldr r1, [r3] - add r1, r1, #0xcc00 - ldrh r3, [r1, #0xe4] - strh r3, [r2, #0x7e] - ldrh r1, [r1, #0xe6] - strh r1, [r2, #0x80] - b _020B62A8 -_020B58D0: - ldr r0, _020B6634 @ =0x02353538 - ldr r1, [r0] - add r0, r1, #0x3000 - ldrb r0, [r0, #0xe38] + ldr r2, [r1, #4] + add r2, r2, #1 + str r2, [r1, #4] + pop {r3, pc} + .align 2, 0 +_022ECE10: .4byte 0x023276CC + arm_func_end ov00_022ECDF0 + + arm_func_start ov00_022ECE14 +ov00_022ECE14: @ 0x022ECE14 + push {r3, lr} + ldr r0, _022ECE50 @ =0x023276CC + ldr r0, [r0, #4] cmp r0, #0 - beq _020B5900 - add r0, r1, #0x378 - add r0, r0, #0x12800 - str r0, [sp, #0x2c] - mov r0, #0x14 - str r0, [sp, #0x28] - b _020B5944 -_020B5900: - ldrb r0, [sb, #6] + movle r0, #1 + pople {r3, pc} + bl ov00_022FBF9C + ldr r0, _022ECE50 @ =0x023276CC + ldr r1, [r0, #4] + subs r1, r1, #1 + str r1, [r0, #4] + bne _022ECE48 + bl ov00_022ED3CC +_022ECE48: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_022ECE50: .4byte 0x023276CC + arm_func_end ov00_022ECE14 + + arm_func_start ov00_022ECE54 +ov00_022ECE54: @ 0x022ECE54 + push {r3, lr} + bl ov00_022E0378 cmp r0, #0 - beq _020B5930 - ldrb r0, [sb, #8] - cmp r0, #0 - bne _020B5930 - add r0, r1, #0x328 - add r0, r0, #0x12800 - str r0, [sp, #0x2c] + movne r0, #0 + popne {r3, pc} + bl ov00_022FC1C4 + mov r0, #1 + pop {r3, pc} + arm_func_end ov00_022ECE54 + + arm_func_start ov00_022ECE74 +ov00_022ECE74: @ 0x022ECE74 + push {r3, r4, r5, r6, r7, lr} + ldr r4, [sp, #0x18] + mov r7, r1 + ldr r5, [r4, #4] + ldr r6, [r4, #0xc] + cmp r5, #0 + beq _022ECECC + cmp r7, #0 + bne _022ECEB0 + mov r1, r3 + mov r0, r2 + ldr r3, [r4] + mov r2, r7 + blx r5 + b _022ECECC +_022ECEB0: + mov r0, r7 + bl ov00_022ED164 + mov r0, #0 + ldr r3, [r4] + mov r1, r0 + mov r2, r7 + blx r5 +_022ECECC: + cmp r7, #0 + bne _022ECEDC + cmp r6, #1 + bne _022ECEF8 +_022ECEDC: + ldr r1, [r4, #0x10] + cmp r1, #0 + moveq r6, #1 + beq _022ECEF8 mov r0, #4 - str r0, [sp, #0x28] - b _020B5944 -_020B5930: - add r0, r1, #0x338 - add r0, r0, #0x12800 - str r0, [sp, #0x2c] - mov r0, #0x10 - str r0, [sp, #0x28] -_020B5944: - mov r0, #0xff - mov r7, #0 - str r0, [sp, #0x24] - add r0, sb, #0x100 - mov sl, r7 - str r0, [sp, #0x4c] - b _020B5A0C -_020B5960: - ldr r0, [sp, #0x2c] - ldr r6, [r0, sl, lsl #2] - mov r0, r6 - bl FUN_023C35FC - cmp r0, #0 - beq _020B5A08 - mov r0, r4 - mov r1, r6 - bl FUN_0239DACC - cmp r0, #0 - beq _020B5A08 - ldr r0, _020B6634 @ =0x02353538 - ldr r0, [r0] - add r0, r0, #0x3000 - ldrb r0, [r0, #0xe38] - cmp r0, #0 - beq _020B59C0 - mov r0, r4 - mov r1, r6 mov r2, #0 - mov r3, #1 - bl FUN_023BCADC - cmp r0, #1 - bne _020B5A08 -_020B59C0: - add r0, r4, #4 - add r1, r6, #4 - bl FUN_023A440C - cmp fp, r0 - ble _020B5A08 - mov fp, r0 - ldrb r0, [r6, #0x25] - mov r7, r6 - str r0, [sp, #0x24] - ldrh r0, [r6, #4] - strh r0, [sb, #0x8c] - ldrh r0, [r6, #6] - strh r0, [sb, #0x8e] - ldrh r1, [r6, #4] - ldr r0, [sp, #0x4c] - strh r1, [r0, #0x7e] - ldrh r1, [r6, #6] - strh r1, [r0, #0x80] -_020B5A08: - add sl, sl, #1 -_020B5A0C: - ldr r0, [sp, #0x28] - cmp sl, r0 - blt _020B5960 - ldr r0, _020B6630 @ =0x000F423F - cmp fp, r0 - beq _020B5D1C - ldr r0, [sp, #0x24] - cmp r5, r0 - bne _020B5CEC - cmp r5, #0xff - beq _020B5CEC - ldrsh r0, [r4, #4] - ldrsh r1, [r4, #6] - bl FUN_023F147C - ldrh r0, [r0] - tst r0, #8 - beq _020B5B40 - ldrsh r1, [r4, #4] - ldrsh r0, [r4, #6] - mov r7, #0 - strh r1, [sp, #0x52] - strh r0, [sp, #0x54] - add sl, sp, #0x51 - ldr r6, _020B6638 @ =0x0235171C - b _020B5ACC -_020B5A70: - lsl r1, r7, #2 - add r0, r6, r7, lsl #2 - ldrsh r3, [r4, #4] - ldrsh r2, [r6, r1] - ldrsh r1, [r4, #6] - ldrsh r0, [r0, #2] - add r2, r3, r2 - strh r2, [sp, #0x52] - add r0, r1, r0 - strh r0, [sp, #0x54] - ldrsh r0, [sp, #0x52] - ldrsh r1, [sp, #0x54] - bl FUN_023F147C - ldrb r0, [r0, #7] - cmp r5, r0 - beq _020B5AC8 + bl ov00_022E0434 +_022ECEF8: mov r0, r4 + bl ov00_022ED31C + cmp r6, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022ECE74 + + arm_func_start ov00_022ECF10 +ov00_022ECF10: @ 0x022ECF10 + push {r4, lr} + sub sp, sp, #8 + ldr r4, [sp, #0x18] + ldr lr, [r4, #8] + cmp lr, #0 + addeq sp, sp, #8 + popeq {r4, pc} + ldr ip, [sp, #0x14] + mov r0, r1 + str ip, [sp] + mov r1, r2 + mov r2, r3 + ldr ip, [r4] + ldr r3, [sp, #0x10] + str ip, [sp, #4] + blx lr + add sp, sp, #8 + pop {r4, pc} + arm_func_end ov00_022ECF10 + + arm_func_start ov00_022ECF58 +ov00_022ECF58: @ 0x022ECF58 + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x28 + ldr sb, [sp, #0x4c] + ldr r8, [sp, #0x50] + mov r5, r0 + mov r4, r1 + mov r7, r2 + mov sl, r3 + mov r6, #0 + bl ov00_022E0378 + cmp r0, #0 + addne sp, sp, #0x28 + mvnne r0, #7 + popne {r4, r5, r6, r7, r8, sb, sl, pc} + ldr r1, [sp, #0x48] + add r0, sp, #0x18 + str r8, [sp, #0x18] + str sb, [sp, #0x1c] + str r1, [sp, #0x20] + str r7, [sp, #0x24] + bl ov00_022ED2C0 + movs r7, r0 + bne _022ECFDC + mvn r0, #4 + bl ov00_022ED164 + mov r0, r6 + mov r1, r0 + mov r3, r8 + sub r2, r0, #5 + blx sb + add sp, sp, #0x28 + mvn r0, #4 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022ECFDC: + cmp r4, #0 + ble _022ED02C + mov r1, r4 + mov r0, #4 + bl ov00_022E03F0 + movs r6, r0 + bne _022ED028 + mvn r0, #4 + bl ov00_022ED164 + mov r0, #0 + mov r1, r0 + mov r3, r8 + sub r2, r0, #5 + blx sb + mov r0, r7 + bl ov00_022ED31C + add sp, sp, #0x28 + mvn r0, #4 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022ED028: + str r6, [r7, #0x10] +_022ED02C: + cmp sl, #0 + mov r1, #0 + beq _022ED06C + ldr r0, [sl] + ldr r2, _022ED0F4 @ =ov00_022ECF10 + stm sp, {r0, r1} + str r1, [sp, #8] + str r2, [sp, #0xc] + ldr r0, _022ED0F8 @ =ov00_022ECE74 + mov r2, r6 + str r0, [sp, #0x10] + mov r0, r5 + mov r3, r4 + str r7, [sp, #0x14] + bl ov00_022FBFF8 + b _022ED09C +_022ED06C: + str r1, [sp] + str r1, [sp, #4] + ldr r2, _022ED0F4 @ =ov00_022ECF10 + str r1, [sp, #8] + str r2, [sp, #0xc] + ldr r0, _022ED0F8 @ =ov00_022ECE74 + mov r2, r6 + str r0, [sp, #0x10] + mov r0, r5 + mov r3, r4 + str r7, [sp, #0x14] + bl ov00_022FBFF8 +_022ED09C: + mov r4, r0 + cmp r4, #0 + bge _022ED0E4 + mov r0, r4 + bl ov00_022ED164 + mov r0, #0 + mov r1, r0 + mov r2, r4 + mov r3, r8 + blx sb + ldr r1, [r7, #0x10] + cmp r1, #0 + beq _022ED0DC + mov r0, #4 + mov r2, #0 + bl ov00_022E0434 +_022ED0DC: + mov r0, r7 + bl ov00_022ED31C +_022ED0E4: + mov r0, r4 + str r4, [r7, #0x14] + add sp, sp, #0x28 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022ED0F4: .4byte ov00_022ECF10 +_022ED0F8: .4byte ov00_022ECE74 + arm_func_end ov00_022ECF58 + + arm_func_start ov00_022ED0FC +ov00_022ED0FC: @ 0x022ED0FC + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr lr, [sp, #0x10] + ldr ip, [sp, #0x14] + stm sp, {r3, lr} + mov r3, #0 + str ip, [sp, #8] + bl ov00_022ECF58 + add sp, sp, #0xc + ldm sp!, {pc} + arm_func_end ov00_022ED0FC + + arm_func_start ov00_022ED124 +ov00_022ED124: @ 0x022ED124 + push {r4, lr} + mov r4, r0 + bl ov00_022FC1D8 + mov r0, r4 + bl ov00_022ED3A0 + movs r4, r0 + popeq {r4, pc} + ldr r1, [r4, #0x10] + cmp r1, #0 + beq _022ED158 + mov r0, #4 + mov r2, #0 + bl ov00_022E0434 +_022ED158: + mov r0, r4 + bl ov00_022ED31C + pop {r4, pc} + arm_func_end ov00_022ED124 + + arm_func_start ov00_022ED164 +ov00_022ED164: @ 0x022ED164 + push {r4, lr} + movs r4, r0 + mov r0, #7 + ldr r1, _022ED2A4 @ =0xFFFE8130 + moveq r0, #0 + popeq {r4, pc} + add r2, r4, #7 + cmp r2, #0x1a + addls pc, pc, r2, lsl #2 + b _022ED298 +_022ED18C: @ jump table + b _022ED1F8 @ case 0 + b _022ED200 @ case 1 + b _022ED20C @ case 2 + b _022ED214 @ case 3 + b _022ED214 @ case 4 + b _022ED214 @ case 5 + b _022ED21C @ case 6 + b _022ED298 @ case 7 + b _022ED228 @ case 8 + b _022ED234 @ case 9 + b _022ED23C @ case 10 + b _022ED248 @ case 11 + b _022ED250 @ case 12 + b _022ED258 @ case 13 + b _022ED260 @ case 14 + b _022ED268 @ case 15 + b _022ED268 @ case 16 + b _022ED268 @ case 17 + b _022ED258 @ case 18 + b _022ED258 @ case 19 + b _022ED274 @ case 20 + b _022ED274 @ case 21 + b _022ED27C @ case 22 + b _022ED288 @ case 23 + b _022ED290 @ case 24 + b _022ED298 @ case 25 + b _022ED228 @ case 26 +_022ED1F8: + sub r1, r1, #0x320 + b _022ED298 +_022ED200: + ldr r2, _022ED2A8 @ =0xFFFFFCD6 + add r1, r1, r2 + b _022ED298 +_022ED20C: + sub r1, r1, #0x348 + b _022ED298 +_022ED214: + sub r1, r1, #0x334 + b _022ED298 +_022ED21C: + ldr r2, _022ED2AC @ =0xFFFFFCC2 + add r1, r1, r2 + b _022ED298 +_022ED228: + sub r1, r1, #1 + mov r0, #9 + b _022ED298 +_022ED234: + sub r1, r1, #0x348 + b _022ED298 +_022ED23C: + ldr r2, _022ED2B0 @ =0xFFFFFCAE + add r1, r1, r2 + b _022ED298 +_022ED248: + sub r1, r1, #0x1e + b _022ED298 +_022ED250: + sub r1, r1, #0x32 + b _022ED298 +_022ED258: + sub r1, r1, #0x14 + b _022ED298 +_022ED260: + sub r1, r1, #0x35c + b _022ED298 +_022ED268: + ldr r2, _022ED2B4 @ =0xFFFFFC9A + add r1, r1, r2 + b _022ED298 +_022ED274: + sub r1, r1, #0x370 + b _022ED298 +_022ED27C: + ldr r2, _022ED2B8 @ =0xFFFFFC86 + add r1, r1, r2 + b _022ED298 +_022ED288: + sub r1, r1, #0x384 + b _022ED298 +_022ED290: + ldr r2, _022ED2BC @ =0xFFFFFC72 + add r1, r1, r2 +_022ED298: + bl ov00_022E0394 + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_022ED2A4: .4byte 0xFFFE8130 +_022ED2A8: .4byte 0xFFFFFCD6 +_022ED2AC: .4byte 0xFFFFFCC2 +_022ED2B0: .4byte 0xFFFFFCAE +_022ED2B4: .4byte 0xFFFFFC9A +_022ED2B8: .4byte 0xFFFFFC86 +_022ED2BC: .4byte 0xFFFFFC72 + arm_func_end ov00_022ED164 + + arm_func_start ov00_022ED2C0 +ov00_022ED2C0: @ 0x022ED2C0 + push {r4, lr} + mov r4, r0 + mov r0, #4 + mov r1, #0x1c + bl ov00_022E03F0 + movs ip, r0 + moveq r0, #0 + popeq {r4, pc} + ldm r4, {r0, r1, r2, r3} + stm ip, {r0, r1, r2, r3} + mov r0, #0 + str r0, [ip, #0x18] + ldr r1, _022ED318 @ =0x023276CC + str r0, [ip, #0x10] + ldr r0, [r1] + cmp r0, #0 + moveq r0, ip + streq ip, [r1] + strne r0, [ip, #0x18] + movne r0, ip + strne ip, [r1] + pop {r4, pc} + .align 2, 0 +_022ED318: .4byte 0x023276CC + arm_func_end ov00_022ED2C0 + + arm_func_start ov00_022ED31C +ov00_022ED31C: @ 0x022ED31C + push {r4, lr} + ldr r1, _022ED39C @ =0x023276CC + ldr r1, [r1] + cmp r1, #0 + popeq {r4, pc} + cmp r1, r0 + bne _022ED354 + mov r0, #4 + mov r2, #0 + ldr r4, [r1, #0x18] + bl ov00_022E0434 + ldr r0, _022ED39C @ =0x023276CC + str r4, [r0] + pop {r4, pc} +_022ED354: + ldr r2, [r1, #0x18] + cmp r2, #0 + popeq {r4, pc} +_022ED360: + cmp r2, r0 + movne r1, r2 + bne _022ED38C + ldr ip, [r1, #0x18] + mov r0, #4 + ldr r3, [ip, #0x18] + mov r2, #0 + str r3, [r1, #0x18] + mov r1, ip + bl ov00_022E0434 + pop {r4, pc} +_022ED38C: + ldr r2, [r2, #0x18] + cmp r2, #0 + bne _022ED360 + pop {r4, pc} + .align 2, 0 +_022ED39C: .4byte 0x023276CC + arm_func_end ov00_022ED31C + + arm_func_start ov00_022ED3A0 +ov00_022ED3A0: @ 0x022ED3A0 + ldr r1, _022ED3C8 @ =0x023276CC + ldr r2, [r1] + b _022ED3B0 +_022ED3AC: + ldr r2, [r2, #0x18] +_022ED3B0: + cmp r2, #0 + ldrne r1, [r2, #0x14] + cmpne r1, r0 + bne _022ED3AC + mov r0, r2 + bx lr + .align 2, 0 +_022ED3C8: .4byte 0x023276CC + arm_func_end ov00_022ED3A0 + + arm_func_start ov00_022ED3CC +ov00_022ED3CC: @ 0x022ED3CC + push {r3, r4, r5, r6, r7, r8, sb, lr} + ldr r0, _022ED438 @ =0x023276CC + ldr r8, [r0] + cmp r8, #0 + beq _022ED428 + mov r7, #4 + mov r6, #0 + mov r5, r7 + mov r4, r6 +_022ED3F0: + mov sb, r8 + ldr r1, [sb, #0x10] + ldr r8, [r8, #0x18] + cmp r1, #0 + beq _022ED410 + mov r0, r7 + mov r2, r6 + bl ov00_022E0434 +_022ED410: + mov r0, r5 + mov r1, sb + mov r2, r4 + bl ov00_022E0434 + cmp r8, #0 + bne _022ED3F0 +_022ED428: + ldr r0, _022ED438 @ =0x023276CC + mov r1, #0 + str r1, [r0] + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022ED438: .4byte 0x023276CC + arm_func_end ov00_022ED3CC + + arm_func_start ov00_022ED43C +ov00_022ED43C: @ 0x022ED43C + push {r3, lr} + ldr r1, _022ED464 @ =0x023276D4 + mov r2, r0 + ldr r0, [r1, #8] + mov r1, #0x300 + bl ov00_022EDD58 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, pc} + .align 2, 0 +_022ED464: .4byte 0x023276D4 + arm_func_end ov00_022ED43C + + arm_func_start ov00_022ED468 +ov00_022ED468: @ 0x022ED468 + push {r4, lr} + mov r4, r0 + ldr r0, _022ED528 @ =0x023276E0 + mov r1, r4 + mov r2, #6 + bl FUN_0207C4C8 + ldr r1, _022ED52C @ =0x000007FF + ldr r3, [r4] + sub r0, r1, #0x800 + ldr r2, [r4, #4] + and r0, r3, r0 + str r0, [r4] + and r1, r2, r1 + str r1, [r4, #4] + ldr r0, _022ED530 @ =0x023276E5 + add r1, r4, #8 + mov r2, #6 + bl FUN_0207C4C8 + ldr r1, [r4, #8] + ldr r0, [r4, #0xc] + lsr r1, r1, #3 + orr r1, r1, r0, lsl #29 + str r1, [r4, #8] + lsr r3, r0, #3 + str r3, [r4, #0xc] + ldr r1, _022ED52C @ =0x000007FF + ldr r2, [r4, #8] + sub r0, r1, #0x800 + and r0, r2, r0 + str r0, [r4, #8] + and r1, r1, r3 + str r1, [r4, #0xc] + ldr r0, _022ED534 @ =0x023276EA + add r1, r4, #0x10 + mov r2, #2 + bl FUN_0207C4C8 + ldrh r1, [r4, #0x10] + ldr r3, _022ED538 @ =0x000003FF + ldr r0, _022ED53C @ =0x023276EC + asr r1, r1, #6 + strh r1, [r4, #0x10] + ldrh ip, [r4, #0x10] + add r1, r4, #0x12 + mov r2, #2 + and r3, ip, r3 + strh r3, [r4, #0x10] + bl FUN_0207C4C8 + pop {r4, pc} + .align 2, 0 +_022ED528: .4byte 0x023276E0 +_022ED52C: .4byte 0x000007FF +_022ED530: .4byte 0x023276E5 +_022ED534: .4byte 0x023276EA +_022ED538: .4byte 0x000003FF +_022ED53C: .4byte 0x023276EC + arm_func_end ov00_022ED468 + + arm_func_start ov00_022ED540 +ov00_022ED540: @ 0x022ED540 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + ldr r2, _022ED610 @ =0x023276D4 + mov sl, r1 + ldr sb, [r2, #8] + bl ov00_022EDF4C + ldr r1, _022ED614 @ =0x0000A001 + add r0, sl, #0x200 + bl FUN_02085030 + mov r5, #0x100 + ldr r6, _022ED618 @ =0x023276E0 + mov r8, #0 + mov r4, r5 + mov fp, #0xe + mov r7, r5 +_022ED578: + mov r0, sb mov r1, r7 mov r2, sl - bl FUN_023BC678 + bl ov00_022EDD58 cmp r0, #0 - bne _020B5AD4 -_020B5AC8: - add r7, r7, #1 -_020B5ACC: - cmp r7, #8 - blt _020B5A70 -_020B5AD4: - cmp r7, #8 - bne _020B5B20 - mov r0, #8 - bl FUN_023A5E18 - mov r1, #6 - strb r1, [sb, #0x7c] - lsl r3, r0, #2 - ldr r0, _020B6638 @ =0x0235171C - ldrsh r5, [r4, #4] - ldrsh r2, [r0, r3] - ldr r1, _020B663C @ =0x0235171E - mov r0, #1 - add r2, r5, r2 - strh r2, [sb, #0x8c] - ldrsh r2, [r4, #6] - ldrsh r1, [r1, r3] - add r1, r2, r1 - strh r1, [sb, #0x8e] - b _020B62A8 -_020B5B20: - ldrh r0, [sp, #0x52] - mov r1, #5 - strb r1, [sb, #0x7c] - ldrh r1, [sp, #0x54] - strh r0, [sb, #0x8c] - mov r0, #1 - strh r1, [sb, #0x8e] - b _020B62A8 -_020B5B40: - ldr r0, _020B6634 @ =0x02353538 - ldrsh sl, [r4, #6] - ldr r1, [r0] - ldrsh r2, [r7, #6] - add r0, r1, #0x2a8 - add r1, r1, r5, lsl #1 - add r1, r1, #0xf200 - ldrsh r1, [r1, #0x68] - add r3, r0, #0xf000 - sub r0, r2, sl - str r1, [sp, #0x30] - ldr r1, _020B6640 @ =0xFFF0BDC1 - add r6, r3, r5, lsl #7 - str r1, [sp, #0x38] - mov r1, #0 - str r1, [sp, #0x34] - bl FUN_021418DC - ldrsh fp, [r4, #4] - ldrsh r1, [r7, #4] - mov r5, r0 - sub r0, r1, fp - bl FUN_021418DC - str r0, [sp, #8] - cmp r0, r5 - mvn r0, #0 - strle r5, [sp, #8] - mov r5, #0 - str r0, [sp, #0x44] - b _020B5CA4 -_020B5BB4: - add r0, r6, r5, lsl #2 - ldrsh r0, [r0, #2] - ldrsh r1, [r7, #6] - str r0, [sp, #0x10] - sub r0, r1, r0 - str r1, [sp, #0xc] - bl FUN_021418DC - str r0, [sp, #0x40] - lsl r0, r5, #2 - ldrsh r0, [r6, r0] - ldrsh r1, [r7, #4] - str r0, [sp, #0x18] - sub r0, r1, r0 - str r1, [sp, #0x14] - bl FUN_021418DC - ldr r1, [sp, #0x40] - str r0, [sp, #4] - cmp r0, r1 - movle r0, r1 - strle r0, [sp, #4] - ldr r0, [sp, #0x18] - ldr r1, [sp, #0x44] - sub r0, r0, fp - str r0, [sp, #0x3c] - ldr r2, [sp, #0x3c] - ldr r0, [sp, #0x10] - cmp r2, r1 - strlt r1, [sp, #0x3c] - ldr r1, [sp, #0x44] - sub r0, r0, sl - cmp r0, r1 - movlt r0, r1 - ldr r1, [sp, #0x3c] - cmp r1, #1 - movgt r1, #1 - strgt r1, [sp, #0x3c] - cmp r0, #1 - movgt r0, #1 - add r1, sl, r0 - ldr r0, [sp, #0xc] - sub r0, r0, r1 - bl FUN_021418DC - ldr r1, [sp, #0x3c] - str r0, [sp, #0x48] - ldr r0, [sp, #0x14] - add r1, fp, r1 - sub r0, r0, r1 - bl FUN_021418DC - ldr r1, [sp, #0x48] - cmp r0, r1 - movle r0, r1 - ldr r1, [sp, #8] - cmp r0, r1 - blt _020B5CA0 - ldr r1, [sp, #0x38] - ldr r0, [sp, #4] - cmp r1, r0 - strlt r0, [sp, #0x38] - strlt r5, [sp, #0x34] -_020B5CA0: - add r5, r5, #1 -_020B5CA4: - ldr r0, [sp, #0x30] - cmp r5, r0 - blt _020B5BB4 - ldr r0, [sp, #0x38] - cmp r0, #0 - blt _020B5CEC - mov r0, #5 - strb r0, [sb, #0x7c] - ldr r0, [sp, #0x34] - lsl r0, r0, #2 - ldrsh r2, [r6, r0] - ldr r0, [sp, #0x34] - add r1, r6, r0, lsl #2 - strh r2, [sb, #0x8c] - ldrsh r1, [r1, #2] - mov r0, #1 - strh r1, [sb, #0x8e] - b _020B62A8 -_020B5CEC: - mov r0, #5 - strb r0, [sb, #0x7c] - ldrsh r2, [r4, #4] - ldrsh r1, [r7, #4] - mov r0, #1 - rsb r1, r1, r2, lsl #1 - strh r1, [sb, #0x8c] - ldrsh r2, [r4, #6] - ldrsh r1, [r7, #6] - rsb r1, r1, r2, lsl #1 - strh r1, [sb, #0x8e] - b _020B62A8 -_020B5D1C: - mov r0, r4 - bl CalculateAiTargetPos - b _020B62A8 -_020B5D28: - mov r0, r4 - ldr r7, [r4, #0xb4] - bl FUN_023C35FC - cmp r0, #0 - moveq r0, #0 - beq _020B5E38 - mov r0, r4 - bl FUN_023BBEC0 - cmp r0, #0 - movne r0, #0 - bne _020B5E38 - mov r0, r4 - bl FUN_0239C9A8 - mov r5, r0 - ldr r6, [r5, #0x10] - cmp r6, #0 - moveq r0, #0 - beq _020B5E38 - ldr r0, [r6] - cmp r0, #6 - addls pc, pc, r0, lsl #2 - b _020B5E34 -_020B5D80: @ jump table - b _020B5E34 @ case 0 - b _020B5E34 @ case 1 - b _020B5E34 @ case 2 - b _020B5D9C @ case 3 - b _020B5E34 @ case 4 - b _020B5E34 @ case 5 - b _020B5E34 @ case 6 -_020B5D9C: - ldrb r0, [r7, #7] - cmp r0, #0 - bne _020B5E34 - ldrb r0, [r7, #0x62] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - bne _020B5E34 - ldrh r0, [r5] - tst r0, #3 - bne _020B5DD8 - ldrb r0, [r7, #6] - cmp r0, #0 - bne _020B5E34 -_020B5DD8: - ldrb r0, [r7, #6] - cmp r0, #0 - bne _020B5E04 - bl FUN_020CA140 - cmp r0, #0 - bne _020B5E34 - ldrh r0, [r5] - tst r0, #0x20 - bne _020B5E34 - mov r0, #1 - b _020B5E38 -_020B5E04: + bne _022ED59C + bl FUN_0207BC20 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022ED59C: mov r0, r6 - bl FUN_0239C990 - bl FUN_02404080 - cmp r0, #0 - movne r0, #0 - bne _020B5E38 - mov r0, r6 - bl FUN_0239C990 - ldrb r0, [r0] - tst r0, #2 - moveq r0, #1 - beq _020B5E38 -_020B5E34: - mov r0, #0 -_020B5E38: - cmp r0, #0 - movne r0, #0x3f - strhne r0, [r8, #0x4a] - bne _020B6624 - mov r0, r4 - ldr sl, [r4, #0xb4] - bl FUN_023C3620 - cmp r0, #0 - bne _020B6094 - ldr r0, _020B6634 @ =0x02353538 - ldr r1, [r0] - add r0, r1, #0x3000 - ldrb r0, [r0, #0xe38] - cmp r0, #0 - addne r0, r1, #0x378 - addne sb, r0, #0x12800 - movne fp, #0x14 - bne _020B5EB0 - ldrb r0, [sl, #6] - cmp r0, #0 - beq _020B5EA4 - ldrb r0, [sl, #8] - cmp r0, #0 - addeq r0, r1, #0x328 - addeq sb, r0, #0x12800 - moveq fp, #4 - beq _020B5EB0 -_020B5EA4: - add r0, r1, #0x338 - add sb, r0, #0x12800 - mov fp, #0x10 -_020B5EB0: - mov r0, r4 - bl FUN_023BAC88 - mvn r6, #0 - str r0, [sp, #0x20] - add r0, r6, #0x3e8 - str r0, [sp, #0x1c] - mov r7, #0 - b _020B5FE4 -_020B5ED0: - ldr r5, [sb, r7, lsl #2] - mov r0, r5 - bl FUN_023C35FC - cmp r0, #0 - beq _020B5FE0 - ldr r0, [r5, #0xb4] - ldrb r1, [r0, #0xbc] - cmp r1, #6 - bhi _020B5FE0 - ldr r1, _020B6634 @ =0x02353538 - ldr r1, [r1] - add r1, r1, #0x3000 - ldrb r1, [r1, #0xe38] - cmp r1, #0 - beq _020B5F2C - mov r0, r4 - mov r1, r5 - mov r2, #0 - mov r3, #1 - bl FUN_023BCADC - cmp r0, #1 - bne _020B5FE0 - b _020B5F40 -_020B5F2C: - ldrb r1, [sl, #6] - cmp r1, #0 - ldrbeq r0, [r0, #0xc4] - cmpeq r0, #6 - beq _020B5FE0 -_020B5F40: - ldr r0, [r5, #0xb4] - ldrb r0, [r0, #9] - cmp r0, #1 - beq _020B5FE0 - ldr r0, [sp, #0x20] - cmp r0, #0 - beq _020B5FA4 - ldrsh r1, [r4, #4] - ldrsh r0, [r5, #4] - sub r0, r1, r0 - bl FUN_021418DC - cmp r0, #5 - bgt _020B5F8C - ldrsh r1, [r4, #6] - ldrsh r0, [r5, #6] - sub r0, r1, r0 - bl FUN_021418DC - cmp r0, #5 - ble _020B5FB8 -_020B5F8C: - mov r0, r4 - mov r1, r5 - bl FUN_0239DB90 - cmp r0, #0 - beq _020B5FE0 - b _020B5FB8 -_020B5FA4: - mov r0, r4 - mov r1, r5 - bl FUN_0239DB90 - cmp r0, #0 - beq _020B5FE0 -_020B5FB8: - add r1, r5, #4 - add r0, r4, #4 - bl FUN_023A440C - ldr r1, [sp, #0x1c] - cmp r1, r0 - ble _020B5FE0 - str r0, [sp, #0x1c] - mov r6, r7 - cmp r0, #2 - blt _020B5FEC -_020B5FE0: - add r7, r7, #1 -_020B5FE4: - cmp r7, fp - blt _020B5ED0 -_020B5FEC: - cmp r6, #0 - blt _020B6094 - mov r2, #1 - strb r2, [sl, #0x7c] - ldr r7, [sb, r6, lsl #2] - mov r0, r4 - ldrh r5, [r7, #4] - mov r3, #0 - mov r1, #8 - strh r5, [sl, #0x8c] - ldrh r5, [r7, #6] - strh r5, [sl, #0x8e] - ldr r5, [sb, r6, lsl #2] - str r5, [sl, #0x84] - ldr r5, [sb, r6, lsl #2] - ldrh r5, [r5, #0x26] - strh r5, [sl, #0x80] - strb r2, [sl, #0x7e] - str r3, [sl, #0x120] - bl FUN_023BD2A0 - cmp r0, #0 - beq _020B608C - mov r0, r4 - bl FUN_023BD580 - cmp r0, #0 - bne _020B608C - ldr r5, [sb, r6, lsl #2] - ldrsh r1, [r4, #4] - ldrsh r0, [r5, #4] - sub r0, r1, r0 - bl FUN_021418DC - cmp r0, #1 - bgt _020B608C - ldrsh r1, [r4, #6] - ldrsh r0, [r5, #6] - sub r0, r1, r0 - bl FUN_021418DC - cmp r0, #1 - movle r0, #1 - strble r0, [sl, #0x7f] -_020B608C: - mov r0, #1 - b _020B62A8 -_020B6094: - mov r0, r4 - mov r1, #1 - bl FUN_023BD2A0 - cmp r0, #0 - bne _020B60FC - ldrb r0, [sl, #6] - cmp r0, #0 - bne _020B61E8 - mov r0, r4 - bl FUN_023C3644 - mov r5, r0 - bl FUN_023C35FC - cmp r0, #0 - beq _020B61E8 - mov r0, #1 - strb r0, [sl, #0x7c] - ldrh r2, [r5, #4] - mov r1, #0 - strh r2, [sl, #0x8c] - ldrh r2, [r5, #6] - strh r2, [sl, #0x8e] - str r5, [sl, #0x84] - ldrh r2, [r5, #0x26] - strh r2, [sl, #0x80] - str r1, [sl, #0x120] - b _020B62A8 -_020B60FC: - ldrb r0, [sl, #7] - cmp r0, #0 - beq _020B61E8 - bl FUN_0239E6BC - ldrsh r0, [r4, #4] - ldrsh r1, [r4, #6] - bl FUN_023F147C - ldrb r2, [r0, #7] - cmp r2, #0xff - bne _020B6140 - ldrsh r1, [r4, #4] - ldrsh r0, [r4, #6] - sub fp, r1, #2 - sub sb, r0, #2 - add r6, r1, #2 - add r5, r0, #2 - b _020B61E0 -_020B6140: - ldr r0, _020B6634 @ =0x02353538 - mov r1, #0x1c - ldr r0, [r0] - add r0, r0, #0x2e8 - add r0, r0, #0xec00 - mla r0, r2, r1, r0 - ldrsh r3, [r0, #2] - ldrsh r2, [r0, #4] - ldrsh r1, [r0, #6] - ldrsh r0, [r0, #8] - sub fp, r3, #1 - sub sb, r2, #1 - add r6, r1, #1 - add r5, r0, #1 - b _020B61E0 -_020B617C: - mov r7, fp - b _020B61D4 -_020B6184: - mov r0, r7 - mov r1, sb - bl FUN_023F14E4 - ldr r0, [r0, #0x10] - cmp r0, #0 - beq _020B61D0 - ldr r0, [r0] - cmp r0, #3 - bne _020B61D0 - mov r0, #7 - strb r0, [sl, #0x7c] - strh r7, [sl, #0x8c] - strh sb, [sl, #0x8e] - mov r0, #0 - str r0, [sl, #0x84] - strh r0, [sl, #0x80] - str r0, [sl, #0x120] - mov r0, #1 - b _020B62A8 -_020B61D0: - add r7, r7, #1 -_020B61D4: - cmp r7, r6 - ble _020B6184 - add sb, sb, #1 -_020B61E0: - cmp sb, r5 - ble _020B617C -_020B61E8: - mov r0, r4 - bl FUN_023BD2D0 - cmp r0, #0 - bne _020B629C - ldrb r0, [sl, #0x7c] - add r0, r0, #0xff - and r0, r0, #0xff - cmp r0, #1 - bhi _020B629C - ldr r2, [sl, #0x84] - cmp r2, #0 - beq _020B629C - ldrh r1, [r2, #0x26] - ldrh r0, [sl, #0x80] - cmp r1, r0 - bne _020B6288 - ldr r7, [r2, #0xb4] - mov r6, #0 - add r5, r7, #0x6a - b _020B627C -_020B6238: - mov r0, r4 - add r1, r5, r6, lsl #2 - bl FUN_0239DCD4 - cmp r0, #0 - beq _020B6278 - mov r0, #2 - strb r0, [sl, #0x7c] - add r3, r7, r6, lsl #2 - ldrh r2, [r3, #0x6a] - mov r1, #0 - mov r0, #1 - strh r2, [sl, #0x8c] - ldrh r2, [r3, #0x6c] - strh r2, [sl, #0x8e] - str r1, [sl, #0x120] - b _020B62A8 -_020B6278: - add r6, r6, #1 -_020B627C: - cmp r6, #4 - blt _020B6238 - b _020B629C -_020B6288: - mov r0, #6 - strb r0, [sl, #0x7c] - mov r0, #0 - str r0, [sl, #0x84] - strh r0, [sl, #0x80] -_020B629C: - mov r0, r4 - bl CalculateAiTargetPos - mov r0, #1 -_020B62A8: - cmp r0, #0 - moveq r0, #0 - strheq r0, [r8, #0x4a] - beq _020B6624 - ldr sb, [r4, #0xb4] - ldrh r1, [sb, #0x8c] - add r0, sb, #0x100 - strh r1, [r0, #0x7e] - ldrh r1, [sb, #0x8e] - strh r1, [r0, #0x80] - ldrsh r1, [r4, #4] - ldrsh r0, [sb, #0x8c] - cmp r1, r0 - ldrsheq r1, [r4, #6] - ldrsheq r0, [sb, #0x8e] - cmpeq r1, r0 - bne _020B62FC - add r0, sb, #0x4a - mov r1, #1 - bl FUN_023A6788 - b _020B6624 -_020B62FC: + mov r2, fp + add r1, sl, #0xf0 + bl FUN_0207C4C8 + mov r1, sl + mov r2, #0xfe + add r0, sl, #0x200 + bl FUN_02085158 + strh r0, [sl, #0xfe] +_022ED5C0: mov r0, sb - bl FUN_023B7184 - cmp r0, #0 - bne _020B6624 - add r0, r4, #4 - add r1, sb, #0x8c - bl FUN_023A43A0 - mov r7, r0 - ldrb r1, [sb, #0x7e] - mov r0, r4 - bl FUN_023BC914 - cmp r0, #0 - beq _020B6380 - ldrb r0, [sb, #0x7c] - cmp r0, #1 - bne _020B6390 - add r0, r4, #4 - add r1, sb, #0x8c - bl FUN_023A46DC - cmp r0, #0 - beq _020B6390 - add r0, r4, #4 - add r1, sb, #0x8c - bl FUN_023A440C - cmp r0, #2 - bne _020B6374 - add r0, sb, #0x4a - mov r1, #1 - bl FUN_023A6788 - b _020B6624 -_020B6374: - addlt r0, r7, #4 - andlt r7, r0, #7 - b _020B6390 -_020B6380: - ldrb r0, [sb, #0x7f] - cmp r0, #0 - addne r0, r7, #4 - andne r7, r0, #7 -_020B6390: - add r2, sp, #0x50 - mov r0, r4 - mov r1, r7 - bl FUN_023BC678 - cmp r0, #0 - beq _020B63C0 - ldrsh r1, [sb, #2] - add r0, sb, #0x4a - bl FUN_023A679C - and r0, r7, #7 - strb r0, [sb, #0x4c] - b _020B6624 -_020B63C0: - ldrb r0, [sp, #0x50] - cmp r0, #0 - beq _020B645C - ldrb r0, [sb, #6] - cmp r0, #0 - ldrbeq r0, [sb, #0x14f] - cmpeq r0, #0 - bne _020B6400 - mov r1, #1 - strb r1, [sb, #0x7d] - add r0, sb, #0x4a - strb r1, [sb, #0x14e] - bl FUN_023A6788 - mov r0, #1 - strb r0, [sb, #0x151] - b _020B6624 -_020B6400: - ldr r0, _020B6638 @ =0x0235171C - lsl r2, r7, #2 - ldrsh r1, [r4, #4] - ldrsh r0, [r0, r2] - ldrsh r3, [sb, #0x8c] - add r0, r1, r0 - cmp r3, r0 - bne _020B6454 - ldr r0, _020B663C @ =0x0235171E - ldrsh r1, [r4, #6] - ldrsh r0, [r0, r2] - ldrsh r2, [sb, #0x8e] - add r0, r1, r0 - cmp r2, r0 - bne _020B6454 - add r0, sb, #0x4a - mov r1, #1 - bl FUN_023A6788 - mov r0, #1 - strb r0, [sb, #0x151] - b _020B6624 -_020B6454: - mov r0, #1 - strb r0, [sb, #0x7d] -_020B645C: - mov r0, #1 - strb r0, [sp, #0x80] - strb r0, [sp, #0x78] - strb r0, [sp, #0x70] - strb r0, [sp, #0x68] - strb r0, [sp, #0x60] - ldrb r0, [sb, #6] - cmp r0, #0 - bne _020B64EC - tst r7, #1 - beq _020B64EC - ldrsh r1, [r4, #4] - ldrsh r0, [sb, #0x8c] - sub r0, r1, r0 - bl FUN_021418DC - ldrsh r2, [r4, #6] - ldrsh r1, [sb, #0x8e] - mov r5, r0 - sub r0, r2, r1 - bl FUN_021418DC - cmp r5, #2 - cmple r0, #2 - bgt _020B64EC - cmp r5, r0 - beq _020B64EC - tst r7, #2 - beq _020B64DC - cmp r5, r0 - mov r0, #0 - strblt r0, [sp, #0x68] - strbge r0, [sp, #0x60] - b _020B64EC -_020B64DC: - cmp r5, r0 - mov r0, #0 - strblt r0, [sp, #0x60] - strbge r0, [sp, #0x68] -_020B64EC: - ldrsh r0, [r4, #4] - ldrsh r1, [r4, #6] - bl FUN_023F147C - ldrh r0, [r0] - ldr r1, [sp] - tst r0, #0x100 - movne sl, #5 - mov r0, r4 - moveq sl, #3 - bl ShouldMonsterRunAwayVariationOutlawCheck - cmp r0, #0 - ldrbeq r0, [sb, #0x7f] - mov r8, #1 - mov fp, r8 - cmpeq r0, #0 - movne sl, #5 - ldr r6, _020B6644 @ =0x0235177C - add r5, sp, #0x58 - b _020B657C -_020B6538: - ldr r0, [r6, r8, lsl #2] - add r3, r5, r8, lsl #3 - add r0, r7, r0 - and r1, r0, #7 - mov r0, r4 - add r2, r3, #2 - str r1, [r3, #4] - bl FUN_023BC678 - add r1, r5, r8, lsl #3 - strb r0, [r1, #1] - tst r0, #0xff - ldrbeq r0, [r1, #2] - add r8, r8, #1 - cmpeq r0, #0 - andeq r0, fp, #0xff - strbeq fp, [sp, #0x68] - strbeq r0, [sp, #0x60] -_020B657C: - cmp r8, sl - blt _020B6538 - mov r4, #1 - add r2, sp, #0x58 - mov r0, r4 - b _020B65E4 -_020B6594: - add r1, r2, r4, lsl #3 - ldrb r1, [r1, #1] - lsl r3, r4, #3 - cmp r1, #0 - ldrbne r1, [r2, r3] - cmpne r1, #0 - beq _020B65D0 - ldrsh r1, [sb, #2] - add r0, sb, #0x4a - bl FUN_023A679C - add r0, sp, #0x5c - ldr r0, [r0, r4, lsl #3] - and r0, r0, #7 - strb r0, [sb, #0x4c] - b _020B6624 -_020B65D0: - add r1, r2, r4, lsl #3 - ldrb r1, [r1, #2] - add r4, r4, #1 - cmp r1, #0 - strbne r0, [sb, #0x7d] -_020B65E4: - cmp r4, sl - blt _020B6594 - add r0, sb, #0x4a - mov r1, #1 - bl FUN_023A6788 - mov r1, #1 - strb r1, [sb, #0x151] - ldrb r0, [sb, #7] - cmp r0, #0 - movne r0, #0 - strbne r0, [sb, #0x7d] - strbne r0, [sb, #0x14e] - bne _020B6624 - ldrb r0, [sb, #0x7d] - cmp r0, #0 - strbne r1, [sb, #0x14e] -_020B6624: - add sp, sp, #0x88 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_020B662C: .4byte 0x000003E7 -_020B6630: .4byte 0x000F423F -_020B6634: .4byte 0x02353538 -_020B6638: .4byte 0x0235171C -_020B663C: .4byte 0x0235171E -_020B6640: .4byte 0xFFF0BDC1 -_020B6644: .4byte 0x0235177C - arm_func_end AiMovement - - arm_func_start CalculateAiTargetPos -CalculateAiTargetPos: @ 0x020B6648 - push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr r1, _020B699C @ =0x02353538 - mov sl, r0 - ldr r0, [r1] - ldr sb, [sl, #0xb4] - add r0, r0, #0x4000 - ldrb r0, [r0, #0xda] - ldrb r4, [sl, #0x25] - mov r5, #0 - cmp r0, #0xa5 - beq _020B6684 - cmp r0, #0xaa - blo _020B669C - cmp r0, #0xdc - bhs _020B669C -_020B6684: - ldrsh r0, [sl, #4] - ldrsh r1, [sl, #6] - bl FUN_023F147C - ldrh r0, [r0] - tst r0, #0x100 - movne r5, #1 -_020B669C: - cmp r5, #0 - bne _020B66AC - cmp r4, #0xff - bne _020B6770 -_020B66AC: - ldrb r1, [sb, #0x4c] - mov r0, sl - mov r7, #0 - add r1, r1, #4 - and r6, r1, #7 - bl FUN_023BC818 - cmp r0, #0 - beq _020B66DC - mov r0, #8 - bl FUN_023A5E18 - strb r0, [sb, #0x4c] - mov r7, #1 -_020B66DC: - mov r5, #0 - ldr r4, _020B69A0 @ =0x0235177C - add fp, sp, #1 - b _020B6764 -_020B66EC: - ldrb r1, [sb, #0x4c] - ldr r0, [r4, r5, lsl #2] - cmp r7, #0 - add r0, r1, r0 - and r8, r0, #7 - beq _020B670C - cmp r8, r6 - beq _020B6760 -_020B670C: - mov r0, sl - mov r1, r8 - mov r2, fp - bl FUN_023BC678 - cmp r0, #0 - beq _020B6760 - mov r0, #3 - strb r0, [sb, #0x7c] - ldr r0, _020B69A4 @ =0x0235171C - lsl r3, r8, #2 - ldrsh r2, [r0, r3] - ldrsh r4, [sl, #4] - ldr r1, _020B69A8 @ =0x0235171E - mov r0, #1 - add r2, r4, r2 - strh r2, [sb, #0x8c] - ldrsh r2, [sl, #6] - ldrsh r1, [r1, r3] - add r1, r2, r1 - strh r1, [sb, #0x8e] - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_020B6760: - add r5, r5, #1 -_020B6764: - cmp r5, #8 - blt _020B66EC - b _020B6958 -_020B6770: - ldr r0, _020B699C @ =0x02353538 - ldr r1, [sb, #0x120] - ldr r2, [r0] - cmp r1, #0 - add r0, r2, r4, lsl #1 - add r1, r2, #0x2a8 - add r0, r0, #0xf200 - add r1, r1, #0xf000 - add r6, r1, r4, lsl #7 - ldrsh r5, [r0, #0x68] - beq _020B67E0 - mov r0, #8 - bl FUN_023A5E18 - mov r1, #6 - strb r1, [sb, #0x7c] - lsl r3, r0, #2 - ldr r0, _020B69A4 @ =0x0235171C - ldrsh r4, [sl, #4] - ldrsh r2, [r0, r3] - ldr r1, _020B69A8 @ =0x0235171E - mov r0, #1 - add r2, r4, r2 - strh r2, [sb, #0x8c] - ldrsh r2, [sl, #6] - ldrsh r1, [r1, r3] - add r1, r2, r1 - strh r1, [sb, #0x8e] - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_020B67E0: - ldrb r0, [sb, #0x7c] - cmp r0, #4 - beq _020B68A0 - cmp r5, #0 - bne _020B6838 - mov r0, #8 - bl FUN_023A5E18 - mov r1, #6 - strb r1, [sb, #0x7c] - lsl r3, r0, #2 - ldr r0, _020B69A4 @ =0x0235171C - ldrsh r4, [sl, #4] - ldrsh r2, [r0, r3] - ldr r1, _020B69A8 @ =0x0235171E - mov r0, #1 - add r2, r4, r2 - strh r2, [sb, #0x8c] - ldrsh r2, [sl, #6] - ldrsh r1, [r1, r3] - add r1, r2, r1 - strh r1, [sb, #0x8e] - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_020B6838: - mov r4, #0 - b _020B6898 -_020B6840: - mov r0, r5 - bl FUN_023A5E18 - lsl r2, r0, #2 - ldrsh r3, [sl, #4] - ldrsh r1, [r6, r2] - cmp r3, r1 - addeq r1, r6, r2 - ldrsheq r2, [sl, #6] - ldrsheq r1, [r1, #2] - cmpeq r2, r1 - beq _020B6894 - mov r1, #4 - strb r1, [sb, #0x7c] - lsl r1, r0, #2 - ldrsh r2, [r6, r1] - add r1, r6, r0, lsl #2 - mov r0, #1 - strh r2, [sb, #0x8c] - ldrsh r1, [r1, #2] - strh r1, [sb, #0x8e] - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_020B6894: - add r4, r4, #1 -_020B6898: - cmp r4, #0xa - blt _020B6840 -_020B68A0: - ldrsh r0, [sl, #4] - ldrsh r1, [sl, #6] - bl FUN_023F147C - ldrh r0, [r0] - tst r0, #8 - beq _020B6950 - mov r0, #8 - bl FUN_023A5E18 - mov r8, r0 - mov r5, #0 - add fp, sp, #0 - ldr r4, _020B69A4 @ =0x0235171C - b _020B6948 -_020B68D4: - and r8, r8, #7 - lsl r1, r8, #2 - add r0, r4, r8, lsl #2 - ldrsh r6, [sl, #4] - ldrsh r3, [r4, r1] - ldrsh r2, [sl, #6] - ldrsh r1, [r0, #2] - add r6, r6, r3 - mov r0, r6 - add r7, r2, r1 - mov r1, r7 - bl FUN_023F147C - ldrb r0, [r0, #7] - cmp r0, #0xff - bne _020B6940 - mov r0, sl - mov r1, r8 - mov r2, fp - bl FUN_023BC678 - cmp r0, #0 - beq _020B6940 - mov r0, #3 - strb r0, [sb, #0x7c] - strh r6, [sb, #0x8c] - strh r7, [sb, #0x8e] - mov r0, #1 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_020B6940: - add r5, r5, #1 - add r8, r8, #1 -_020B6948: - cmp r5, #8 - blt _020B68D4 -_020B6950: - mov r0, #1 - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_020B6958: - mov r0, #8 - bl FUN_023A5E18 - mov r1, #6 - strb r1, [sb, #0x7c] - lsl r3, r0, #2 - ldr r0, _020B69A4 @ =0x0235171C - ldrsh r4, [sl, #4] - ldrsh r2, [r0, r3] - ldr r1, _020B69A8 @ =0x0235171E - mov r0, #1 - add r2, r4, r2 - strh r2, [sb, #0x8c] - ldrsh r2, [sl, #6] - ldrsh r1, [r1, r3] - add r1, r2, r1 - strh r1, [sb, #0x8e] - pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_020B699C: .4byte 0x02353538 -_020B69A0: .4byte 0x0235177C -_020B69A4: .4byte 0x0235171C -_020B69A8: .4byte 0x0235171E - arm_func_end CalculateAiTargetPos -_020B69AC: - .byte 0xB4, 0x30, 0x90, 0xE5 - .byte 0x00, 0x20, 0xA0, 0xE3, 0x7C, 0x20, 0xC3, 0xE5, 0xB4, 0x10, 0xD0, 0xE1, 0xBC, 0x18, 0xC3, 0xE1 - .byte 0xB6, 0x00, 0xD0, 0xE1, 0xBE, 0x08, 0xC3, 0xE1, 0x84, 0x20, 0x83, 0xE5, 0xB0, 0x28, 0xC3, 0xE1 - .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x05, 0x03, 0x00, 0x00 - - arm_func_start ChooseAiMove -ChooseAiMove: @ 0x020B69D8 - push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x44 - ldr r1, _020B7094 @ =0x02353538 - mov sl, r0 - ldr r0, [r1] - ldr r7, [sl, #0xb4] - add r0, r0, #0x4000 - ldrb r0, [r0, #0xda] - bl FUN_023FF4E0 - cmp r0, #0 - beq _020B708C - mov r0, sl - mov r1, #0 - bl FUN_023BC14C - cmp r0, #0 - bne _020B708C - mov r0, sl - mov r1, #1 - bl FUN_023BCA28 - cmp r0, #0 - bne _020B708C - ldr r0, [sl, #0xb4] - ldrb r0, [r0, #0xbc] - cmp r0, #3 - bne _020B6A4C - mov r0, sl - bl FUN_023BC498 - cmp r0, #0 - bne _020B708C -_020B6A4C: - mov r0, sl - mov r1, #8 - bl FUN_023BD2A0 - cmp r0, #0 - bne _020B708C - ldrb r0, [r7, #0xd0] - cmp r0, #2 - bne _020B6A80 - ldr r0, _020B7098 @ =0x022C4580 - ldrsh r0, [r0] - bl FUN_023A5EA0 - cmp r0, #0 - bne _020B708C -_020B6A80: - ldrb r0, [r7, #0xd2] - cmp r0, #0 - beq _020B6B28 - mov r8, #0 - add r6, r7, #0x124 - mov r4, r8 - mov r5, #1 - b _020B6B20 -_020B6AA0: - ldrb r0, [r6, r8, lsl #3] - lsl r1, r8, #3 - tst r0, #1 - movne r0, r5 - moveq r0, r4 - tst r0, #0xff - beq _020B6B1C - mov r0, sl - add r1, r6, r1 - bl FUN_023DF924 - cmp r0, #0 - beq _020B6B1C - ldrb r0, [r7, #0xd4] - cmp r0, r8 - bne _020B6B1C - b _020B6AF4 -_020B6AE0: - add r0, r7, r8, lsl #3 - ldrb r0, [r0, #0x124] - tst r0, #2 - beq _020B6AFC - sub r8, r8, #1 -_020B6AF4: - cmp r8, #0 - bgt _020B6AE0 -_020B6AFC: - ldrb r2, [r7, #0x4c] - lsl r1, r8, #0x10 - add r0, r7, #0x4a - asr r1, r1, #0x10 - bl FUN_023A703C - mov r0, sl - bl FUN_023B44C4 - b _020B708C -_020B6B1C: - add r8, r8, #1 -_020B6B20: - cmp r8, #4 - blt _020B6AA0 -_020B6B28: - mov r5, #0 - str r5, [sp] - mov r0, r5 - add r4, r7, #0x124 - mov r2, r5 - mov r3, #1 -_020B6B40: - ldrb r1, [r4, r0, lsl #3] - add r6, r4, r0, lsl #3 - tst r1, #1 - movne r1, r3 - moveq r1, r2 - tst r1, #0xff - beq _020B6B78 - ldrb r1, [r6] - tst r1, #4 - ldrne r1, [sp] - addne r1, r1, #1 - strne r1, [sp] - ldrb r1, [r6, #6] - add r5, r5, r1 -_020B6B78: - add r0, r0, #1 - cmp r0, #4 - blt _020B6B40 - cmp r5, #0 - bne _020B6BCC - add r0, sp, #0x14 - mov r1, #0x160 - bl FUN_020CEB38 - add r0, sp, #0x1c - add r2, sp, #0x14 - mov r1, sl - bl FUN_023D4C00 - ldrb r0, [sp, #0x1c] - cmp r0, #0 - beq _020B708C - ldrb r1, [sp, #0x1d] - add r0, r7, #0x4a - bl FUN_023A6FF4 - mov r0, sl - bl FUN_023B44C4 - b _020B708C -_020B6BCC: - mov r0, sl - mov r1, #0xb - bl FUN_023BD300 - mov r5, r0 - mov r0, sl - mov r1, #0x17 - bl FUN_023BD300 - cmp r0, #0 - movne r0, #1 - moveq r0, #0 - mov r8, #0 - and r0, r0, #0xff - str r0, [sp, #4] - mov r2, r8 - mov r1, #1 - add r0, sp, #0xc -_020B6C0C: - strb r1, [r0, r2] - add r2, r2, #1 - cmp r2, #4 - blt _020B6C0C - ldr r0, [sp, #4] - cmp r0, #0 - beq _020B6CEC - mov r2, #0 - mov r3, r2 - mov r4, #0x63 - add r0, r7, #0x124 - mov sb, r2 - add r6, sp, #0xc - mov lr, #1 - b _020B6CB8 -_020B6C48: - ldrb ip, [r0, r3, lsl #3] - add r1, r0, r3, lsl #3 - tst ip, #1 - movne ip, lr - moveq ip, #0 - tst ip, #0xff - beq _020B6CC0 - cmp r3, #0 - beq _020B6CA8 - ldrb ip, [r1] - tst ip, #2 - bne _020B6CA8 - add ip, r2, #1 - cmp ip, r3 - cmplt r4, #2 - bge _020B6C9C - b _020B6C94 -_020B6C8C: - strb sb, [r6, r2] - add r2, r2, #1 -_020B6C94: - cmp r2, r3 - blt _020B6C8C -_020B6C9C: - ldrb r4, [r1, #6] - mov r2, r3 - b _020B6CB4 -_020B6CA8: - ldrb r1, [r1, #6] - cmp r4, r1 - movge r4, r1 -_020B6CB4: - add r3, r3, #1 -_020B6CB8: - cmp r3, #4 - blt _020B6C48 -_020B6CC0: - add r0, r2, #1 - cmp r0, r3 - cmplt r4, #2 - bge _020B6CEC - mov r1, #0 - add r0, sp, #0xc - b _020B6CE4 -_020B6CDC: - strb r1, [r0, r2] - add r2, r2, #1 -_020B6CE4: - cmp r2, r3 - blt _020B6CDC -_020B6CEC: - add r0, r7, #0x124 - mov sb, #0 - str r0, [sp, #8] - add r4, sp, #0x1c -_020B6CFC: - mov r0, #0 - strb r0, [r4, sb, lsl #3] - ldr r0, [sp, #8] - add r6, r0, sb, lsl #3 - ldrb r0, [r0, sb, lsl #3] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - addne r0, sp, #0xc - ldrbne r0, [r0, sb] - cmpne r0, #0 - beq _020B6DFC - ldr r2, [sp, #4] + mov r1, r5 + mov r2, sl + bl ov00_022EDDE8 mov r0, sl mov r1, sb - bl FUN_023DFDF4 + mov r2, r4 + add r3, sl, #0x100 + bl ov00_022EDE64 cmp r0, #0 - beq _020B6DFC - ldrb r0, [r6] - tst r0, #4 - beq _020B6DFC - mov r0, #1 - strb r0, [r4, sb, lsl #3] - ldrb r0, [r7, #0xd2] - lsl r2, sb, #3 - cmp r0, #0xb - bne _020B6DB8 - ldrh r0, [r6, #4] - cmp r0, #0x80 - addeq r1, r4, r2 - moveq r0, #0 - streq r0, [r1, #4] - beq _020B6DFC - mov r0, sl - mov r1, r6 - bl FUN_023BD5FC - cmp r0, #5 - addne r1, r4, sb, lsl #3 - movne r0, #1 - strne r0, [r1, #4] - bne _020B6DF0 - mov r0, r6 - bl FUN_020CED0C - add r1, r4, sb, lsl #3 - str r0, [r1, #4] - b _020B6DF0 -_020B6DB8: - cmp r5, #0 - beq _020B6DE0 - ldr r1, [sp, #8] - add r0, r4, r2 - add r2, r1, r2 - mov r1, sl - bl FUN_023D4C00 - add r1, r4, sb, lsl #3 - str r0, [r1, #4] - b _020B6DF0 -_020B6DE0: - mov r0, r6 - bl FUN_020CED0C - add r1, r4, sb, lsl #3 - str r0, [r1, #4] -_020B6DF0: - add r0, r4, sb, lsl #3 - ldr r0, [r0, #4] - add r8, r8, r0 -_020B6DFC: - add sb, sb, #1 - cmp sb, #4 - blt _020B6CFC - mov r2, #0 - mov r0, sl - mov r1, #0x17 - str r2, [sp, #0x40] - bl FUN_023BD300 - cmp r0, #0 - bne _020B6E70 - ldrb r0, [r7, #0xd2] - cmp r0, #0xb - beq _020B6E70 - mov r1, #1 - strb r1, [sp, #0x3c] - ldrb r0, [r7, #0xd2] - cmp r0, #0xb - streq r1, [sp, #0x40] - beq _020B6E68 - cmp r5, #0 - movne r0, #2 - strne r0, [sp, #0x40] - ldreq r0, [sp] - ldreq r1, _020B709C @ =0x022C4900 - lsleq r0, r0, #1 - ldrsheq r0, [r1, r0] - streq r0, [sp, #0x40] -_020B6E68: - ldr r0, [sp, #0x40] - add r8, r8, r0 -_020B6E70: - cmp r5, #0 - beq _020B6F00 - mov r0, #0 - mov r8, r0 - mov r5, r0 - mov r2, r0 - add r3, sp, #0x1c -_020B6E8C: - ldrb r1, [r3, r5, lsl #3] - lsl r4, r5, #3 - cmp r1, #0 - add r1, r3, r4 - streq r2, [r1, #4] - beq _020B6EB0 - ldr r1, [r1, #4] - cmp r0, r1 - movlt r0, r1 -_020B6EB0: - add r5, r5, #1 - cmp r5, #5 - blt _020B6E8C - mov r1, #0 - mov r3, r1 - add r5, sp, #0x1c -_020B6EC8: - ldrb r2, [r5, r1, lsl #3] - lsl r4, r1, #3 - cmp r2, #0 - beq _020B6EF4 - add r4, r5, r4 - ldr r2, [r4, #4] - cmp r0, r2 - strne r3, [r4, #4] - add r2, r5, r1, lsl #3 - ldr r2, [r2, #4] - add r8, r8, r2 -_020B6EF4: - add r1, r1, #1 - cmp r1, #5 - blt _020B6EC8 -_020B6F00: - cmp r8, #0 - beq _020B708C - mov r0, r8 - bl FUN_023A5E18 - mov r5, r0 - mov r4, #0 - mov r0, sl - mov r1, #0x4e - mov r6, r4 - bl FUN_023BD0F8 - cmp r0, #0 - beq _020B6F58 - mov r0, sl - bl FUN_023F36D0 - cmp r0, #0 - bne _020B6F58 - mov r6, #1 - add r1, sp, #0x10 - mov r0, sl - mov r2, r6 - bl FUN_023D57E0 - mov fp, r0 -_020B6F58: - cmp r6, #0 - bne _020B6F90 - mov r0, sl - mov r1, #0x17 - bl FUN_023BD300 - cmp r0, #0 - movne fp, #0 - strne fp, [sp, #0x10] - bne _020B6F90 - add r1, sp, #0x10 - mov r0, sl - mov r2, #1 - bl FUN_023D57E0 - mov fp, r0 -_020B6F90: - mov r8, #0 - add r3, sp, #0x1c - b _020B7064 -_020B6F9C: - ldrb r0, [r3, r8, lsl #3] - lsl r2, r8, #3 - cmp r0, #0 - addne r0, r3, r2 - ldrne r1, [r0, #4] - cmpne r1, #0 - beq _020B7060 - add r4, r4, r1 - cmp r4, r5 - blt _020B7060 - cmp r6, #0 - bne _020B6FD4 - cmp r8, #4 - bne _020B6FF8 -_020B6FD4: - cmp fp, #0 - beq _020B706C - ldr r1, [sp, #0x10] - add r0, r7, #0x4a - and r1, r1, #0xff - bl FUN_023A6FD0 - mov r0, sl - bl FUN_023B44C4 - b _020B708C -_020B6FF8: - add r3, r7, #0x124 - mov r1, sl - add r2, r3, r2 - bl FUN_023D4C00 - add r0, sp, #0x1c - ldrb r0, [r0, r8, lsl #3] - cmp r0, #0 - beq _020B706C - mov r1, r8 - b _020B7034 -_020B7020: - add r0, r7, r1, lsl #3 - ldrb r0, [r0, #0x124] - tst r0, #2 - beq _020B703C - sub r1, r1, #1 -_020B7034: - cmp r1, #0 - bgt _020B7020 -_020B703C: - add r0, sp, #0x1d - ldrb r2, [r0, r8, lsl #3] - lsl r1, r1, #0x10 - add r0, r7, #0x4a - asr r1, r1, #0x10 - bl FUN_023A703C - mov r0, sl - bl FUN_023B44C4 - b _020B708C -_020B7060: + beq _022ED5C0 add r8, r8, #1 -_020B7064: - cmp r8, #5 - blt _020B6F9C -_020B706C: - cmp fp, #0 - beq _020B708C + cmp r8, #2 + add sb, sb, #0x100 + blt _022ED578 + bl ov00_022EDEB0 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022ED610: .4byte 0x023276D4 +_022ED614: .4byte 0x0000A001 +_022ED618: .4byte 0x023276E0 + arm_func_end ov00_022ED540 + + arm_func_start ov00_022ED61C +ov00_022ED61C: @ 0x022ED61C + push {r4, lr} + mov r4, r0 + mov r0, #0x20 + mov r1, r0 + mov r2, r4 + bl ov00_022EDD58 + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} + ldrh r2, [r4] + ldr r1, _022ED65C @ =0x023276D4 + mov r0, #1 + lsl r2, r2, #3 + sub r2, r2, #0x400 + str r2, [r1, #8] + pop {r4, pc} + .align 2, 0 +_022ED65C: .4byte 0x023276D4 + arm_func_end ov00_022ED61C + + arm_func_start ov00_022ED660 +ov00_022ED660: @ 0x022ED660 + push {r3, lr} + ldr r1, _022ED688 @ =0x023276D4 + mov r2, r0 + ldr r0, [r1, #8] + mov r1, #0x400 + bl ov00_022EDD58 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, pc} + .align 2, 0 +_022ED688: .4byte 0x023276D4 + arm_func_end ov00_022ED660 + + arm_func_start ov00_022ED68C +ov00_022ED68C: @ 0x022ED68C + push {r4, r5, r6, r7, r8, sb, sl, lr} + ldr r3, _022ED710 @ =0x023276D4 + mov sl, #0x100 + ldr r5, [r3, #8] + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r4, #0 + mov sb, sl +_022ED6B0: + ldr r0, [r7, r4, lsl #2] + cmp r0, #0 + beq _022ED6E8 +_022ED6BC: + mov r0, r5 + mov r1, sl + mov r2, r8 + bl ov00_022EDDE8 + mov r0, r8 + mov r1, r5 + mov r2, sb + mov r3, r6 + bl ov00_022EDE64 + cmp r0, #0 + beq _022ED6BC +_022ED6E8: + add r4, r4, #1 + cmp r4, #4 + add r8, r8, #0x100 + add r5, r5, #0x100 + blt _022ED6B0 + bl ov00_022EDEB0 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022ED710: .4byte 0x023276D4 + arm_func_end ov00_022ED68C + + arm_func_start ov00_022ED714 +ov00_022ED714: @ 0x022ED714 + push {r4, r5, r6, r7, r8, sb, sl, lr} + ldr r1, _022ED7A4 @ =0x023276D4 + mov r8, r0 + mov sl, #0x100 + ldr r6, [r1, #8] + mov r7, r8 + mov r5, #0 + mov sb, sl + mov r4, #0xfe +_022ED738: + mov r1, r7 + mov r2, r4 + add r0, r8, #0x500 + bl FUN_02085158 + add r1, r8, r5, lsl #8 + strh r0, [r1, #0xfe] +_022ED750: + mov r0, r6 + mov r1, sl + mov r2, r7 + bl ov00_022EDDE8 + mov r0, r7 + mov r1, r6 + mov r2, sb + add r3, r8, #0x400 + bl ov00_022EDE64 + cmp r0, #0 + beq _022ED750 + add r5, r5, #1 + cmp r5, #4 + add r7, r7, #0x100 + add r6, r6, #0x100 + blt _022ED738 + bl ov00_022EDEB0 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022ED7A4: .4byte 0x023276D4 + arm_func_end ov00_022ED714 + + arm_func_start ov00_022ED7A8 +ov00_022ED7A8: @ 0x022ED7A8 + ldr ip, _022ED7B8 @ =FUN_0207C4C8 + ldr r1, _022ED7BC @ =0x023276E0 + mov r2, #0xe + bx ip + .align 2, 0 +_022ED7B8: .4byte FUN_0207C4C8 +_022ED7BC: .4byte 0x023276E0 + arm_func_end ov00_022ED7A8 + + arm_func_start ov00_022ED7C0 +ov00_022ED7C0: @ 0x022ED7C0 + push {r4, lr} + mov ip, #0 + mov r3, ip + mov r2, ip +_022ED7D0: + ldrb r4, [r0, ip] + mov lr, r2 +_022ED7D8: + asr r1, r4, lr + tst r1, #1 + add lr, lr, #1 + addne r3, r3, #1 + cmp lr, #8 + blt _022ED7D8 + add ip, ip, #1 + cmp ip, #4 + blt _022ED7D0 + and r0, r3, #0xff + pop {r4, pc} + arm_func_end ov00_022ED7C0 + + arm_func_start ov00_022ED804 +ov00_022ED804: @ 0x022ED804 + mvn r2, #0 + mov r3, #0 + eor r2, r2, r2, lsr r0 + mov ip, r3 +_022ED814: + rsb r0, ip, #0x18 + lsr r0, r2, r0 + strb r0, [r1, r3] + add r3, r3, #1 + cmp r3, #4 + add ip, ip, #8 + blt _022ED814 + bx lr + arm_func_end ov00_022ED804 + + arm_func_start ov00_022ED834 +ov00_022ED834: @ 0x022ED834 + mov r2, #0 +_022ED838: + ldrb r1, [r0, r2] + cmp r1, #0 + movne r0, #1 + bxne lr + add r2, r2, #1 + cmp r2, #0x20 + blt _022ED838 + mov r0, #0 + bx lr + arm_func_end ov00_022ED834 + + arm_func_start ov00_022ED85C +ov00_022ED85C: @ 0x022ED85C + push {r3, r4, r5, lr} + sub sp, sp, #8 + mov r5, r0 + mov r4, r1 + bl ov00_022ED8C0 + cmp r0, #0 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r3, r4, r5, pc} + add r1, sp, #4 + mov r0, r5 + mov r2, #4 + bl FUN_0207C4C8 + add r1, sp, #0 + mov r0, r4 + mov r2, #4 + bl FUN_0207C4C8 + ldr r0, [sp] + ldr r1, [sp, #4] + mvn r0, r0 + tst r1, r0 + movne r0, #1 + moveq r0, #0 + add sp, sp, #8 + pop {r3, r4, r5, pc} + arm_func_end ov00_022ED85C + + arm_func_start ov00_022ED8C0 +ov00_022ED8C0: @ 0x022ED8C0 + ldrb r0, [r0] + cmp r0, #0x7f + moveq r0, #0 + bxeq lr + cmp r0, #1 + movlo r0, #0 + bxlo lr + cmp r0, #0xdf + movls r0, #1 + movhi r0, #0 + bx lr + arm_func_end ov00_022ED8C0 + + arm_func_start ov00_022ED8EC +ov00_022ED8EC: @ 0x022ED8EC + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x3c + ldr sl, _022EDD40 @ =0x02327700 + lsr r8, r1, #0x10 + lsl r4, sl, #8 + mov sb, r4 + and r4, r4, #0xff00 + lsl r1, r1, #0x10 + orr r4, r4, #0x20000 + lsr r5, r3, #0x10 + mov r7, r0 + ldr ip, _022EDD44 @ =0x01020000 + lsr r1, r1, #0x10 + str r4, [sp, #0x30] + orr r4, r1, #0x10000 + lsl r3, r3, #0x10 + add r1, ip, #0x30000 + orr r1, r1, r3, lsr #16 + str r1, [sp, #0x10] + lsr r1, r3, #0x10 + orr r1, r1, #0x1040000 + ldr r0, _022EDD48 @ =0x02002200 + str r1, [sp, #0x24] + orr r1, r0, sl, lsr #24 + str r1, [sp, #0x28] + ldr r1, [sp, #0x30] + lsr sb, sb, #0x10 + orr r1, r1, #0x1000000 + str r1, [sp, #0x30] + add r1, r0, #0x300 + and r8, r8, #0xff + add r0, r0, #0x100 + orr r0, r8, r0 + orr r1, r8, r1 + str r0, [sp] + orr r0, r2, #0x20000 + str r0, [sp, #0x1c] + orr r0, r5, #0x30000 + str r0, [sp, #0x20] + orr r0, r5, #0x40000 + str r0, [sp, #0xc] + ldr r0, _022EDD4C @ =0x03002100 + mov r6, #0 + sub r0, r0, #0x100 + str r0, [sp, #0x14] + lsr r0, r2, #0x10 + orr r0, r0, #0x20000 + str r0, [sp, #4] + lsl r0, r2, #0x10 + lsr r0, r0, #0x10 + orr sb, sb, #0x10000 + orr r0, r0, #0x30000 + str sb, [sp, #0x2c] + str r1, [sp, #0x18] + str r0, [sp, #8] + mov r5, r6 + mov r8, #0xfa0 +_022ED9D0: + cmp r6, #0 + bne _022EDC10 + ldr r0, _022EDD50 @ =0x023276D4 + cmp r7, #7 + str r5, [r0, #4] + addls pc, pc, r7, lsl #2 + b _022ED9D0 +_022ED9EC: @ jump table + b _022ED9D0 @ case 0 + b _022EDA0C @ case 1 + b _022EDAB8 @ case 2 + b _022EDAD8 @ case 3 + b _022EDB74 @ case 4 + b _022EDB74 @ case 5 + b _022EDBCC @ case 6 + b _022EDBF0 @ case 7 +_022EDA0C: + ldr r1, [sp] + mov r0, #4 + mov r2, r5 + bl FUN_0207DB20 + cmp r0, #0 + movlt r6, #0 + blt _022ED9D0 + mov r0, #4 + mov r1, r4 + mov r2, #0 + bl FUN_0207DB20 + cmp r0, #0 + movlt r6, #0 + blt _022ED9D0 + ldr r1, [sp, #4] + mov r0, #4 + mov r2, #0 + bl FUN_0207DB20 + cmp r0, #0 + movlt r6, #0 + blt _022ED9D0 + ldr r1, [sp, #8] + mov r0, #4 + mov r2, #0 + bl FUN_0207DB20 + cmp r0, #0 + movlt r6, #0 + blt _022ED9D0 + ldr r1, [sp, #0xc] + mov r0, #4 + mov r2, #0 + bl FUN_0207DB20 + cmp r0, #0 + movlt r6, #0 + blt _022ED9D0 ldr r1, [sp, #0x10] - add r0, r7, #0x4a - and r1, r1, #0xff - bl FUN_023A6FD0 + mov r0, #4 + mov r2, #0 + bl FUN_0207DB20 + cmp r0, #0 + movlt r6, #0 + movge r6, #1 + b _022ED9D0 +_022EDAB8: + ldr r1, [sp, #0x14] + mov r0, #4 + mov r2, r5 + bl FUN_0207DB20 + cmp r0, #0 + movlt r6, #0 + movge r6, #1 + b _022ED9D0 +_022EDAD8: + ldr r1, [sp, #0x18] + mov r0, #4 + mov r2, r5 + bl FUN_0207DB20 + cmp r0, #0 + movlt r6, #0 + blt _022EDB64 + mov r0, #4 + mov r1, r4 + mov r2, #0 + bl FUN_0207DB20 + cmp r0, #0 + movlt r6, #0 + blt _022EDB64 + ldr r1, [sp, #0x1c] + mov r0, #4 + mov r2, #0 + bl FUN_0207DB20 + cmp r0, #0 + movlt r6, #0 + blt _022EDB64 + ldr r1, [sp, #0x20] + mov r0, #4 + mov r2, #0 + bl FUN_0207DB20 + cmp r0, #0 + movlt r6, #0 + blt _022EDB64 + ldr r1, [sp, #0x24] + mov r0, #4 + mov r2, #0 + bl FUN_0207DB20 + cmp r0, #0 + movlt r6, #0 + movge r6, #1 +_022EDB64: + bl FUN_0207AE44 + str r0, [sp, #0x34] + mov fp, r1 + b _022ED9D0 +_022EDB74: + ldr r1, [sp, #0x28] + mov r0, #4 + mov r2, r5 + bl FUN_0207DB20 + cmp r0, #0 + movlt r6, #0 + blt _022ED9D0 + ldr r1, [sp, #0x2c] + mov r0, #4 + mov r2, #0 + bl FUN_0207DB20 + cmp r0, #0 + movlt r6, #0 + blt _022ED9D0 + ldr r1, [sp, #0x30] + mov r0, #4 + mov r2, #0 + bl FUN_0207DB20 + cmp r0, #0 + movlt r6, #0 + movge r6, #1 + b _022ED9D0 +_022EDBCC: + ldr r1, _022EDD4C @ =0x03002100 + mov r0, #4 + add r1, r1, #0xc00 + mov r2, r5 + bl FUN_0207DB20 + cmp r0, #0 + movlt r6, #0 + movge r6, #1 + b _022ED9D0 +_022EDBF0: + ldr r1, _022EDD4C @ =0x03002100 + mov r0, #4 + mov r2, r5 + bl FUN_0207DB20 + cmp r0, #0 + movlt r6, #0 + movge r6, #1 + b _022ED9D0 +_022EDC10: + ldr r0, _022EDD50 @ =0x023276D4 + ldr r0, [r0, #4] + cmp r0, #1 + bne _022ED9D0 + ldr r0, _022EDD50 @ =0x023276D4 + mov r6, #0 + ldrh r0, [r0] + cmp r0, #0 + bne _022EDD34 + cmp r7, #7 + addls pc, pc, r7, lsl #2 + b _022ED9D0 +_022EDC40: @ jump table + b _022ED9D0 @ case 0 + b _022EDC60 @ case 1 + b _022EDC6C @ case 2 + b _022EDC74 @ case 3 + b _022EDC7C @ case 4 + b _022EDC7C @ case 5 + b _022EDD1C @ case 6 + b _022EDD28 @ case 7 +_022EDC60: + add sp, sp, #0x3c + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022EDC6C: + mov r7, #4 + b _022ED9D0 +_022EDC74: + mov r7, #5 + b _022ED9D0 +_022EDC7C: mov r0, sl - bl FUN_023B44C4 -_020B708C: - add sp, sp, #0x44 + mov r1, #1 + bl FUN_0207A2A4 + cmp r7, #4 + ldrb r0, [sl] + bne _022EDCAC + tst r0, #2 + movne r7, #3 + bne _022ED9D0 + add sp, sp, #0x3c + mov r0, r6 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022EDCAC: + tst r0, #1 + addeq sp, sp, #0x3c + moveq r0, #1 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + tst r0, #0x20 + bne _022EDD08 + bl FUN_0207AE44 + ldr r2, [sp, #0x34] + mov ip, r6 + subs sb, r0, r2 + mov r0, #0x40 + sbc lr, r1, fp + umull r0, r1, sb, r0 + mla r1, sb, ip, r1 + mov sb, #0x40 + mla r1, lr, sb, r1 + ldr r2, _022EDD54 @ =0x000082EA + mov r3, r6 + bl FUN_0208FE3C + mov r2, r6 + cmp r1, r2 + cmpeq r0, r8 + bls _022EDD10 +_022EDD08: + mov r7, #6 + b _022ED9D0 +_022EDD10: + mov r0, #0x4000 + blx FUN_02000088 + b _022ED9D0 +_022EDD1C: + add sp, sp, #0x3c + mov r0, r6 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022EDD28: + add sp, sp, #0x3c + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022EDD34: + mov r0, r6 + add sp, sp, #0x3c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 -_020B7094: .4byte 0x02353538 -_020B7098: .4byte 0x022C4580 -_020B709C: .4byte 0x022C4900 - arm_func_end ChooseAiMove -_020B70A0: - .byte 0xF8, 0x40, 0x2D, 0xE9, 0x01, 0x60, 0xA0, 0xE1, 0x00, 0x70, 0xA0, 0xE1, 0x06, 0x00, 0xA0, 0xE1 - .byte 0x27, 0x7B, 0x0C, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF8, 0x80, 0xBD, 0x08, 0xB4, 0x50, 0x96, 0xE5 - .byte 0x06, 0x00, 0xD5, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x08, 0x00, 0xD5, 0xE5 - .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x30, 0xA0, 0x03, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x30, 0xA0, 0xE3 - .byte 0x88, 0x10, 0x9F, 0xE5, 0x06, 0x00, 0xA0, 0xE1, 0x00, 0x20, 0x91, 0xE5, 0x32, 0x10, 0xA0, 0xE3 - .byte 0xE4, 0x20, 0x82, 0xE2, 0x66, 0x2B, 0x82, 0xE2, 0x03, 0x42, 0x82, 0xE0, 0xFD, 0x17, 0x0C, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x94, 0xE5, 0x00, 0x00, 0x50, 0xE3 - .byte 0x06, 0x00, 0x00, 0x1A, 0x07, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1, 0x75, 0x00, 0x00, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x60, 0x84, 0x15, 0xB0, 0x00, 0x95, 0x15, 0x04, 0x00, 0x84, 0x15 - .byte 0x06, 0x00, 0xA0, 0xE1, 0x7A, 0x10, 0xA0, 0xE3, 0xEE, 0x17, 0x0C, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0xF8, 0x80, 0xBD, 0x08, 0x08, 0x00, 0x94, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xF8, 0x80, 0xBD, 0x18 - .byte 0x07, 0x00, 0xA0, 0xE1, 0x06, 0x10, 0xA0, 0xE1, 0x66, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x08, 0x60, 0x84, 0x15, 0xB0, 0x00, 0x95, 0x15, 0x0C, 0x00, 0x84, 0x15, 0xF8, 0x80, 0xBD, 0xE8 - .byte 0x38, 0x35, 0x35, 0x02, 0xF8, 0x40, 0x2D, 0xE9, 0x00, 0x70, 0xA0, 0xE1, 0x81, 0x7C, 0x0C, 0xEB - .byte 0x07, 0x00, 0xA0, 0xE1, 0x60, 0x78, 0x0C, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF8, 0x80, 0xBD, 0x08 - .byte 0x40, 0x40, 0x9F, 0xE5, 0x00, 0x50, 0xA0, 0xE3, 0x00, 0x00, 0x94, 0xE5, 0x05, 0x01, 0x80, 0xE0 - .byte 0x12, 0x0A, 0x80, 0xE2, 0x78, 0x6B, 0x90, 0xE5, 0x06, 0x00, 0xA0, 0xE1, 0x56, 0x78, 0x0C, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x57, 0x11, 0x02, 0x00, 0x00, 0x0A, 0x07, 0x00, 0xA0, 0xE1 - .byte 0x06, 0x10, 0xA0, 0xE1, 0xB5, 0xFF, 0xFF, 0xEB, 0x01, 0x50, 0x85, 0xE2, 0x14, 0x00, 0x55, 0xE3 - .byte 0xF0, 0xFF, 0xFF, 0xBA, 0xF8, 0x80, 0xBD, 0xE8, 0x38, 0x35, 0x35, 0x02 +_022EDD40: .4byte 0x02327700 +_022EDD44: .4byte 0x01020000 +_022EDD48: .4byte 0x02002200 +_022EDD4C: .4byte 0x03002100 +_022EDD50: .4byte 0x023276D4 +_022EDD54: .4byte 0x000082EA + arm_func_end ov00_022ED8EC - arm_func_start LightningRodStormDrainCheck -LightningRodStormDrainCheck: @ 0x020B71DC + arm_func_start ov00_022EDD58 +ov00_022EDD58: @ 0x022EDD58 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r4, r2 + mov r6, r0 + mov r0, r4 + mov r5, r1 + bl FUN_0207A2A4 + mov r8, #4 + mov r7, #1 +_022EDD78: + mov r0, r8 + mov r1, r7 + bl FUN_0207DAFC + cmp r0, #0 + beq _022EDD78 + ldr r1, _022EDDE4 @ =0x022EDF1C + mov r0, #4 + bl FUN_0207DAB0 + lsl r0, r5, #0x10 + lsr r8, r0, #0x10 + mov r7, #0x40000 + mov sb, #1 +_022EDDA8: + mov r0, sb + mov r1, r6 + mov r2, r8 + mov r3, r4 + bl ov00_022ED8EC + cmp r0, #1 + beq _022EDDD0 + mov r0, r7 + blx FUN_02000088 + b _022EDDA8 +_022EDDD0: + mov r0, r4 + mov r1, r5 + bl FUN_0207A2A4 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022EDDE4: .4byte 0x022EDF1C + arm_func_end ov00_022EDD58 + + arm_func_start ov00_022EDDE8 +ov00_022EDDE8: @ 0x022EDDE8 + push {r4, r5, r6, r7, r8, lr} + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, #4 + mov r4, #1 +_022EDE00: + mov r0, r5 + mov r1, r4 + bl FUN_0207DAFC + cmp r0, #0 + beq _022EDE00 + ldr r1, _022EDE60 @ =0x022EDF1C + mov r0, #4 + bl FUN_0207DAB0 + mov r0, r6 + mov r1, r7 + bl FUN_0207A2C0 + mov r4, #0x40000 + mov r5, #2 +_022EDE34: + mov r0, r5 + mov r1, r8 + mov r2, r7 + mov r3, r6 + bl ov00_022ED8EC + cmp r0, #1 + popeq {r4, r5, r6, r7, r8, pc} + mov r0, r4 + blx FUN_02000088 + b _022EDE34 +_022EDE5C: + .byte 0xF0, 0x81, 0xBD, 0xE8 +_022EDE60: .4byte 0x022EDF1C + arm_func_end ov00_022EDDE8 + + arm_func_start ov00_022EDE64 +ov00_022EDE64: @ 0x022EDE64 + push {r4, r5, r6, lr} + mov r5, r2 + mov r4, r3 + mov r6, r0 + mov r0, r1 + mov r1, r5 + mov r2, r4 + bl ov00_022EDD58 + cmp r0, #0 + moveq r0, #0 + popeq {r4, r5, r6, pc} + mov r0, r6 + mov r1, r4 + mov r2, r5 + bl FUN_02087348 + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + pop {r4, r5, r6, pc} + arm_func_end ov00_022EDE64 + + arm_func_start ov00_022EDEB0 +ov00_022EDEB0: @ 0x022EDEB0 + push {r4, r5, r6, lr} + mov r5, #4 + mov r4, #1 +_022EDEBC: + mov r0, r5 + mov r1, r4 + bl FUN_0207DAFC + cmp r0, #0 + beq _022EDEBC + ldr r1, _022EDF18 @ =0x022EDF1C + mov r0, #4 + bl FUN_0207DAB0 + mov r4, #0x40000 + mov r6, #7 + mov r5, #0 +_022EDEE8: + mov r0, r6 + mov r1, r5 + mov r2, r5 + mov r3, r5 + bl ov00_022ED8EC + cmp r0, #1 + beq _022EDF10 + mov r0, r4 + blx FUN_02000088 + b _022EDEE8 +_022EDF10: + mov r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 +_022EDF18: .4byte 0x022EDF1C + arm_func_end ov00_022EDEB0 +_022EDF1C: + .byte 0x24, 0x00, 0x9F, 0xE5 + .byte 0xFF, 0x10, 0x01, 0xE2, 0xB0, 0x10, 0xC0, 0xE1, 0x01, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x80, 0xE5 + .byte 0x00, 0x00, 0x52, 0xE3, 0xFF, 0x10, 0xA0, 0x13, 0xB0, 0x10, 0xC0, 0x11, 0x04, 0x00, 0x9F, 0xE5 + .byte 0xB0, 0x00, 0xD0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xD4, 0x76, 0x32, 0x02 + + arm_func_start ov00_022EDF4C +ov00_022EDF4C: @ 0x022EDF4C + push {r4, lr} + sub sp, sp, #8 + mov r4, r0 + ldr r3, [r4, #8] + ldr r2, [r4, #0xc] + ldr r1, _022EE000 @ =0x023276E0 + str r2, [sp, #4] + str r3, [sp] + mov r2, #5 + bl FUN_0207C4C8 + ldr r2, [sp] + ldr r1, [sp, #4] + lsr ip, r2, #5 + ldr lr, [r4, #4] + lsr r3, r1, #5 + orr ip, ip, r1, lsl #27 + mov r0, #7 + and r1, r0, lr, lsr #8 + and r0, r2, #0x1f + orr lr, r1, r0, lsl #3 + ldr r2, _022EE000 @ =0x023276E0 + ldr r1, _022EE004 @ =0x023276E6 + strb lr, [r2, #5] + add r0, sp, #0 + str ip, [sp] + str r3, [sp, #4] + mov r2, #4 + bl FUN_0207C4C8 + ldrh r0, [r4, #0x10] + ldr r1, [sp, #4] + ldr r3, _022EE000 @ =0x023276E0 + and r1, r1, #0x3f + lsl r0, r0, #0x1e + orr r0, r1, r0, lsr #24 + strb r0, [r3, #0xa] + ldrh r2, [r4, #0x10] + add r0, r4, #0x12 + ldr r1, _022EE008 @ =0x023276EC + asr r4, r2, #2 + mov r2, #2 + strb r4, [r3, #0xb] + bl FUN_0207C4C8 + ldr r0, _022EE000 @ =0x023276E0 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_022EE000: .4byte 0x023276E0 +_022EE004: .4byte 0x023276E6 +_022EE008: .4byte 0x023276EC + arm_func_end ov00_022EDF4C +_022EE00C: + .byte 0x00, 0x00, 0x9F, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xE0, 0x76, 0x32, 0x02 + + arm_func_start ov00_022EE018 +ov00_022EE018: @ 0x022EE018 + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x10 + mov r8, r0 + mov r1, #0 + mov r2, #0x700 + bl FUN_0207C40C + mov r0, r8 + bl ov00_022ED61C + cmp r0, #0 + addeq sp, sp, #0x10 + ldreq r0, _022EE30C @ =0xFFFFD8EF + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + ldr r1, _022EE310 @ =0x0000A001 + add r0, r8, #0x500 + bl FUN_02085030 + mov r0, r8 + bl ov00_022ED660 + cmp r0, #0 + addeq sp, sp, #0x10 + ldreq r0, _022EE30C @ =0xFFFFD8EF + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + add r0, sp, #0 + mov r1, #0 + mov r2, #0x10 + bl FUN_0207C40C + mov r6, r8 + mov r7, r8 + mov r5, #0 + mov sl, #1 + add sb, sp, #0 + mov r4, #0xfe +_022EE094: + mov r1, r6 + mov r2, r4 + add r0, r8, #0x500 + bl FUN_02085158 + add r1, r8, r5, lsl #8 + ldrh r1, [r1, #0xfe] + cmp r0, r1 + bne _022EE0C4 + mov r0, r7 + bl ov00_022EE320 + cmp r0, #0 + strne sl, [sb, r5, lsl #2] +_022EE0C4: + add r5, r5, #1 + cmp r5, #3 + add r6, r6, #0x100 + add r7, r7, #0x100 + blt _022EE094 + add r0, r8, #0x500 + add r1, r8, #0x300 + mov r2, #0xfe + bl FUN_02085158 + add r1, r8, #0x300 + ldrh r1, [r1, #0xfe] + cmp r0, r1 + moveq r0, #1 + ldr r1, [sp] + streq r0, [sp, #0xc] + cmp r1, #0 + ldrne r0, [sp, #4] + cmpne r0, #0 + ldrne r0, [sp, #8] + cmpne r0, #0 + ldrne r0, [sp, #0xc] + cmpne r0, #0 + beq _022EE134 + add r0, r8, #0xf0 + bl ov00_022ED7A8 + add sp, sp, #0x10 + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022EE134: + cmp r1, #0 + ldreq r0, [sp, #4] + cmpeq r0, #0 + ldreq r0, [sp, #8] + cmpeq r0, #0 + ldreq r0, [sp, #0xc] + cmpeq r0, #0 + bne _022EE178 + mov r0, r8 + bl ov00_022EE420 + mov r0, r8 + bl ov00_022ED714 + cmp r0, #0 + movne r0, #0 + add sp, sp, #0x10 + ldreq r0, _022EE314 @ =0xFFFFD8F0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022EE178: + cmp r1, #0 + ldrne r0, [sp, #4] + cmpne r0, #0 + bne _022EE1C0 + ldr r0, [sp, #8] + cmp r0, #0 + ldrne r0, [sp, #0xc] + cmpne r0, #0 + bne _022EE1C0 + mov r0, r8 + bl ov00_022EE420 + mov r0, r8 + bl ov00_022ED714 + cmp r0, #0 + movne r0, #0 + add sp, sp, #0x10 + ldreq r0, _022EE314 @ =0xFFFFD8F0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022EE1C0: + cmp r1, #0 + ldreq r0, [sp, #4] + cmpeq r0, #0 + bne _022EE1F4 + mov r0, r8 + bl ov00_022EE420 + mov r0, r8 + bl ov00_022ED714 + cmp r0, #0 + ldrne r0, _022EE318 @ =0xFFFFD8ED + add sp, sp, #0x10 + ldreq r0, _022EE314 @ =0xFFFFD8F0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022EE1F4: + cmp r1, #0 + bne _022EE224 + mov r0, r8 + mov r1, #0 + bl ov00_022EE4A0 + add r0, r8, #0x1f0 + add r1, r8, #0xf0 + mov r2, #0xe + bl FUN_0207C4C8 + ldrb r0, [r8, #0x1ef] + strb r0, [r8, #0xef] + b _022EE254 +_022EE224: + ldr r0, [sp, #4] + cmp r0, #0 + bne _022EE254 + mov r0, r8 + mov r1, #1 + bl ov00_022EE4A0 + add r0, r8, #0xf0 + add r1, r8, #0x1f0 + mov r2, #0xe + bl FUN_0207C4C8 + ldrb r0, [r8, #0xef] + strb r0, [r8, #0x1ef] +_022EE254: + add r0, r8, #0xf0 + bl ov00_022ED7A8 + ldr r0, [sp, #8] + cmp r0, #0 + bne _022EE274 + mov r0, r8 + mov r1, #2 + bl ov00_022EE4A0 +_022EE274: + ldr r0, [sp, #0xc] + cmp r0, #0 + bne _022EE290 + add r1, r8, #0x300 + mov r0, #0 + mov r2, #0x100 + bl FUN_0207C2B8 +_022EE290: + mov r4, #0 + mov r5, r4 + mov r2, #1 + add r3, sp, #0 +_022EE2A0: + ldr r0, [r3, r5, lsl #2] + cmp r0, #0 + bne _022EE2D4 + ldrb r0, [r8, #0xef] + tst r0, r2, lsl r5 + beq _022EE2D4 + mov r1, r0 + mvn r0, r2, lsl r5 + and r0, r1, r0 + strb r0, [r8, #0xef] + and r0, r0, #0xff + mov r4, r2 + strb r0, [r8, #0x1ef] +_022EE2D4: + add r5, r5, #1 + cmp r5, #3 + blt _022EE2A0 + mov r0, r8 + bl ov00_022ED714 + cmp r0, #0 + addeq sp, sp, #0x10 + ldreq r0, _022EE314 @ =0xFFFFD8F0 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + cmp r4, #0 + ldrne r0, _022EE31C @ =0xFFFFD8EE + moveq r0, #0 + add sp, sp, #0x10 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022EE30C: .4byte 0xFFFFD8EF +_022EE310: .4byte 0x0000A001 +_022EE314: .4byte 0xFFFFD8F0 +_022EE318: .4byte 0xFFFFD8ED +_022EE31C: .4byte 0xFFFFD8EE + arm_func_end ov00_022EE018 + + arm_func_start ov00_022EE320 +ov00_022EE320: @ 0x022EE320 + push {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + ldrb r0, [r4, #0xe7] + cmp r0, #0xff + addeq sp, sp, #4 + moveq r0, #1 + popeq {r3, r4, pc} + cmp r0, #2 + addhi sp, sp, #4 + movhi r0, #0 + pophi {r3, r4, pc} + add r0, r4, #0x40 + bl ov00_022ED834 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, pc} + ldr r1, _022EE41C @ =0x02318268 + add r0, r4, #0xc0 + mov r2, #4 + bl FUN_02087348 + cmp r0, #0 + beq _022EE3D0 + add r0, r4, #0xc4 + bl ov00_022ED8C0 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, pc} + ldrb r0, [r4, #0xd0] + cmp r0, #0x20 + addhi sp, sp, #4 + movhi r0, #0 + pophi {r3, r4, pc} + add r1, sp, #0 + bl ov00_022ED804 + add r1, sp, #0 + add r0, r4, #0xc0 + bl ov00_022ED85C + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, pc} +_022EE3D0: + ldr r1, _022EE41C @ =0x02318268 + add r0, r4, #0xc8 + mov r2, #4 + bl FUN_02087348 + cmp r0, #0 + beq _022EE410 + add r0, r4, #0xc8 + bl ov00_022ED8C0 + cmp r0, #0 + bne _022EE410 + add r0, r4, #0xcc + bl ov00_022ED8C0 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, pc} +_022EE410: + mov r0, #1 + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_022EE41C: .4byte 0x02318268 + arm_func_end ov00_022EE320 + + arm_func_start ov00_022EE420 +ov00_022EE420: @ 0x022EE420 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x14 + mov r7, r0 + mov r1, r7 + mov r0, #0 + mov r2, #0x400 + bl FUN_0207C2B8 + mov r2, #0 + mov r1, #0xff +_022EE444: + add r0, r7, r2, lsl #8 + add r2, r2, #1 + strb r1, [r0, #0xe7] + cmp r2, #3 + blt _022EE444 + add r0, sp, #0 + bl ov00_022EE650 + add r0, sp, #0 + bl ov00_022EDF4C + mov r5, r0 + mov r6, #0 + mov r4, #0xe +_022EE474: + mov r0, r5 + mov r2, r4 + add r1, r7, #0xf0 + bl FUN_0207C4C8 + add r6, r6, #1 + cmp r6, #2 + add r7, r7, #0x100 + blt _022EE474 + mov r0, #0 + add sp, sp, #0x14 + pop {r4, r5, r6, r7, pc} + arm_func_end ov00_022EE420 + + arm_func_start ov00_022EE4A0 +ov00_022EE4A0: @ 0x022EE4A0 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + add r1, r5, r4, lsl #8 + mov r0, #0 + mov r2, #0x100 + bl FUN_0207C2B8 + add r0, r5, r4, lsl #8 + mov r1, #0xff + strb r1, [r0, #0xe7] + pop {r3, r4, r5, pc} + arm_func_end ov00_022EE4A0 + + arm_func_start ov00_022EE4CC +ov00_022EE4CC: @ 0x022EE4CC + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x10 + ldr r4, _022EE644 @ =0x0000FFFF + mov lr, #0 + and ip, lr, #0 + add r5, r4, #0xff0000 + and r2, r2, #1 + lsl r6, ip, #2 + and r3, r3, #3 + and r5, r1, r5 + orr r1, r3, r2, lsl #2 + orr r6, r6, r2, lsr #30 + lsl r7, ip, #3 + and r2, r0, r4 + orr r0, r1, r5, lsl #3 + orr r1, r0, r2, lsl #27 + lsl r3, ip, #0x1b + orr r3, r3, r2, lsr #5 + orr r7, r7, r5, lsr #29 + orr r0, ip, r6 + orr r0, r7, r0 + orr r0, r3, r0 + add r2, sp, #8 + str r1, [sp, #8] + str r0, [sp, #0xc] +_022EE530: + ldrb r0, [r2] + add lr, lr, #1 + cmp lr, #6 + eor r0, r0, #0xd6 + strb r0, [r2], #1 + blt _022EE530 + ldr r2, _022EE648 @ =0x02318274 + add r4, sp, #8 + mov r5, #0 +_022EE554: + ldrb r3, [r4] + add r5, r5, #1 + cmp r5, #5 + asr r0, r3, #4 + and r1, r0, #0xf + and r0, r3, #0xf + ldrb r1, [r2, r1] + ldrb r0, [r2, r0] + orr r0, r0, r1, lsl #4 + strb r0, [r4], #1 + blt _022EE554 + add r0, sp, #8 + add r1, sp, #0 + mov r2, #8 + bl FUN_0207C4C8 + ldr r4, _022EE64C @ =0x0231826C + add r3, sp, #0 + mov r5, #0 + add r0, sp, #8 +_022EE5A0: + ldrb r2, [r3], #1 + ldrb r1, [r4], #1 + add r5, r5, #1 + cmp r5, #5 + strb r2, [r0, r1] + blt _022EE5A0 + ldrb r2, [sp, #0xd] + mov r1, #0 + ldr r3, [sp, #8] + and r2, r2, #7 + strb r1, [sp, #0xf] + strb r1, [sp, #0xe] + strb r2, [sp, #0xd] + ldr r2, [sp, #0xc] + lsl r4, r3, #1 + lsl r2, r2, #1 + orr r2, r2, r3, lsr #31 + str r2, [sp, #0xc] + ldrb r2, [sp, #0xd] + str r4, [sp, #8] + ldrb r3, [sp, #8] + asr r2, r2, #3 + and r2, r2, #1 + orr r2, r3, r2 + strb r2, [sp, #8] +_022EE604: + ldrb r2, [r0] + add r1, r1, #1 + cmp r1, #6 + eor r2, r2, #0x67 + strb r2, [r0], #1 + blt _022EE604 + ldrb r0, [sp, #0xd] + mov r1, #0 + strb r1, [sp, #0xf] + and r0, r0, #7 + strb r1, [sp, #0xe] + strb r0, [sp, #0xd] + ldr r0, [sp, #8] + ldr r1, [sp, #0xc] + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022EE644: .4byte 0x0000FFFF +_022EE648: .4byte 0x02318274 +_022EE64C: .4byte 0x0231826C + arm_func_end ov00_022EE4CC + + arm_func_start ov00_022EE650 +ov00_022EE650: @ 0x022EE650 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x24 + mov sl, r0 + bl ov00_022ED468 + bl FUN_0208266C + add r0, sp, #0x14 + bl FUN_02082748 + cmp r0, #0 + addne sp, sp, #0x24 + movne r0, #0 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, sp, #8 + bl FUN_020827F4 + cmp r0, #0 + addne sp, sp, #0x24 + movne r0, #0 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, sp, #0x14 + add r1, sp, #8 + bl FUN_02082FDC + mov r4, r0 + mov r0, #0 + subs r2, r4, r0 + sbcs r2, r1, r0 + addlt sp, sp, #0x24 + poplt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + bl FUN_0207ADCC + cmp r0, #0 + beq _022EE6CC + ldr r0, _022EE81C @ =FUN_0207AE44 + adds r4, r4, r0 +_022EE6CC: + add r0, sp, #0 + bl FUN_0207B9EC + ldrb r0, [sp, #1] + ldr r5, _022EE820 @ =0x5D588B65 + ldr r6, _022EE824 @ =0x00269EC3 + ldrb r1, [sp] + mla sb, r4, r5, r6 + lsl r0, r0, #8 + orr r1, r0, r1, lsl #16 + ldrb r2, [sp, #2] + ldr r0, _022EE828 @ =0x000009BF + ldrb r7, [sp, #4] + orr r1, r2, r1 + cmp r1, r0 + lsr r2, sb, #0x10 + mov r0, #0x3e8 + mul r3, r2, r0 + lsr r2, r3, #0x10 + movne r1, #1 + ldrb r0, [sp, #5] + ldrb r4, [sp, #3] + lsl r3, r7, #8 + moveq r1, #0 + orr r4, r3, r4, lsl #16 + strh r2, [sl, #0x10] + mov r3, #0 + str r3, [sl] + str r3, [sl, #4] + ldrh r2, [sl, #0x12] + and r7, r1, #0xff + orr r8, r0, r4 + str r3, [sl, #8] + cmp r2, #0 + str r3, [sl, #0xc] + bne _022EE7BC + ldr r0, [sl, #8] + cmp r3, r3 + cmpeq r0, r3 + bne _022EE810 + mov fp, r3 + mov r4, r3 +_022EE770: + mul r0, sb, r5 + adds sb, r0, r6 + bne _022EE788 +_022EE77C: + mul r0, sb, r5 + adds sb, r0, r6 + beq _022EE77C +_022EE788: + strh sb, [sl, #0x12] + ldrh r0, [sl, #0x12] + mov r1, r8 + mov r2, r7 + mov r3, #0 + bl ov00_022EE4CC + str r0, [sl, #8] + str r1, [sl, #0xc] + ldr r0, [sl, #8] + cmp r1, fp + cmpeq r0, r4 + beq _022EE770 + b _022EE810 +_022EE7BC: + ldr r0, [sl, #8] + cmp r3, r3 + cmpeq r0, r3 + bne _022EE810 + mov r6, r3 + mov r5, r3 + mov r4, r3 +_022EE7D8: + ldrh r0, [sl, #0x12] + mov r1, r8 + mov r2, r7 + add r0, r0, #1 + strh r0, [sl, #0x12] + ldrh r0, [sl, #0x12] + mov r3, r6 + bl ov00_022EE4CC + str r0, [sl, #8] + str r1, [sl, #0xc] + ldr r0, [sl, #8] + cmp r1, r5 + cmpeq r0, r4 + beq _022EE7D8 +_022EE810: + mov r0, #1 + add sp, sp, #0x24 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022EE81C: .4byte FUN_0207AE44 +_022EE820: .4byte 0x5D588B65 +_022EE824: .4byte 0x00269EC3 +_022EE828: .4byte 0x000009BF + arm_func_end ov00_022EE650 + + arm_func_start ov00_022EE82C +ov00_022EE82C: @ 0x022EE82C + push {r3, r4, lr} + sub sp, sp, #0x14 + mov r4, r0 + add r0, sp, #0 + bl ov00_022EE650 + cmp r0, #0 + addeq sp, sp, #0x14 + moveq r0, #0 + popeq {r3, r4, pc} + add r0, sp, #0 + mov r1, r4 + bl ov00_022ED540 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + add sp, sp, #0x14 + pop {r3, r4, pc} + arm_func_end ov00_022EE82C + + arm_func_start ov00_022EE870 +ov00_022EE870: @ 0x022EE870 + push {r4, r5, lr} + sub sp, sp, #0x14 + mov r5, r0 + add r0, sp, #0 + mov r4, r1 + bl ov00_022ED468 + add ip, r5, #8 + ldm ip, {r2, r3} + stm r5, {r2, r3} + add r1, sp, #8 + ldm r1, {r2, r3} + mov r0, r5 + mov r1, r4 + stm ip, {r2, r3} + bl ov00_022ED540 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + add sp, sp, #0x14 + pop {r4, r5, pc} + arm_func_end ov00_022EE870 + + arm_func_start ov00_022EE8C0 +ov00_022EE8C0: @ 0x022EE8C0 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x24 + add r2, sp, #0 + mov r1, #0 + mov sl, r0 + strb r1, [r2] + strb r1, [r2, #1] + strb r1, [r2, #2] + strb r1, [r2, #3] + strb r1, [r2, #4] + strb r1, [r2, #5] + bl ov00_022ED468 + bl FUN_0208266C + add r0, sp, #0x14 + bl FUN_02082748 + cmp r0, #0 + addne sp, sp, #0x24 + movne r0, #0 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, sp, #8 + bl FUN_020827F4 + cmp r0, #0 + addne sp, sp, #0x24 + movne r0, #0 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, sp, #0x14 + add r1, sp, #8 + bl FUN_02082FDC + mov r4, r0 + mov r0, #0 + subs r2, r4, r0 + sbcs r2, r1, r0 + addlt sp, sp, #0x24 + poplt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + bl FUN_0207ADCC + cmp r0, #0 + beq _022EE95C + ldr r0, _022EEA50 @ =FUN_0207AE44 + adds r4, r4, r0 +_022EE95C: + add r0, sp, #0 + bl FUN_0207B9EC + ldrb r0, [sp, #1] + ldr r5, _022EEA54 @ =0x5D588B65 + ldr r6, _022EEA58 @ =0x00269EC3 + ldrb r1, [sp] + lsl r0, r0, #8 + mla sb, r4, r5, r6 + orr r1, r0, r1, lsl #16 + ldrb r2, [sp, #2] + ldr r0, _022EEA5C @ =0x000009BF + ldrb r7, [sp, #4] + orr r1, r2, r1 + cmp r1, r0 + movne r1, #1 + lsr r2, sb, #0x10 + mov r0, #0x3e8 + mul r4, r2, r0 + lsr r2, r4, #0x10 + ldrb r0, [sp, #5] + ldrb r8, [sp, #3] + lsl r4, r7, #8 + moveq r1, #0 + mov r3, #0 + strh r2, [sl, #0x10] + str r3, [sl, #8] + str r3, [sl, #0xc] + orr r4, r4, r8, lsl #16 + ldr r2, [sl, #8] + cmp r3, #0 + cmpeq r2, #0 + and r7, r1, #0xff + orr r8, r0, r4 + bne _022EEA44 + mov fp, r3 + mov r4, r3 +_022EE9EC: + mla sb, r5, sb, r6 + b _022EE9F8 +_022EE9F4: + mla sb, r5, sb, r6 +_022EE9F8: + cmp sb, #0 + beq _022EE9F4 + ldrh r2, [sl, #0x12] + lsl r0, sb, #0x10 + lsr r1, r0, #0x10 + cmp r2, r0, lsr #16 + beq _022EE9F4 + strh r1, [sl, #0x12] + ldrh r0, [sl, #0x12] + mov r1, r8 + mov r2, r7 + mov r3, #0 + bl ov00_022EE4CC + str r0, [sl, #8] + str r1, [sl, #0xc] + ldr r0, [sl, #8] + cmp r1, fp + cmpeq r0, r4 + beq _022EE9EC +_022EEA44: + mov r0, #1 + add sp, sp, #0x24 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022EEA50: .4byte FUN_0207AE44 +_022EEA54: .4byte 0x5D588B65 +_022EEA58: .4byte 0x00269EC3 +_022EEA5C: .4byte 0x000009BF + arm_func_end ov00_022EE8C0 + + arm_func_start ov00_022EEA60 +ov00_022EEA60: @ 0x022EEA60 + push {r3, r4, lr} + sub sp, sp, #0x14 + mov r4, r0 + add r0, sp, #0 + bl ov00_022ED468 + add r0, sp, #0 + ldm r0, {r2, r3} + stm r4, {r2, r3} + add r1, sp, #8 + add r0, r4, #8 + ldm r1, {r2, r3} + stm r0, {r2, r3} + ldr r0, [sp, #4] + ldr r1, [sp] + cmp r0, #0 + mov r0, #0 + cmpeq r1, #0 + movne r0, #1 + str r0, [r4, #0x10] + add sp, sp, #0x14 + pop {r3, r4, pc} + arm_func_end ov00_022EEA60 + + arm_func_start ov00_022EEAB4 +ov00_022EEAB4: @ 0x022EEAB4 + stmdb sp!, {lr} + sub sp, sp, #0x14 + add r0, sp, #0 + bl ov00_022ED468 + ldr r0, [sp, #0xc] + ldr r1, [sp, #8] + cmp r0, #0 + cmpeq r1, #0 + mov r0, #0 + bne _022EEAF8 + ldr r1, [sp, #4] + ldr r2, [sp] + cmp r1, r0 + cmpeq r2, r0 + addeq sp, sp, #0x14 + moveq r0, #1 + ldmeq sp!, {pc} +_022EEAF8: + mov r0, #0 + add sp, sp, #0x14 + ldm sp!, {pc} + arm_func_end ov00_022EEAB4 + + arm_func_start ov00_022EEB04 +ov00_022EEB04: @ 0x022EEB04 + ldr r1, _022EEB38 @ =0xAAAAAAAB + mov r3, #3 + umull r1, r2, r0, r1 + lsr r2, r2, #1 + umull r1, r2, r3, r2 + subs r2, r0, r1 + ldr r1, _022EEB38 @ =0xAAAAAAAB + movne r3, #1 + umull r1, r2, r0, r1 + moveq r3, #0 + add r0, r3, r2, lsr #1 + lsl r0, r0, #2 + bx lr + .align 2, 0 +_022EEB38: .4byte 0xAAAAAAAB + arm_func_end ov00_022EEB04 + + arm_func_start ov00_022EEB3C +ov00_022EEB3C: @ 0x022EEB3C + ldr r1, _022EEB4C @ =0x02327720 + orr r0, r0, r0, lsl #16 + str r0, [r1] + bx lr + .align 2, 0 +_022EEB4C: .4byte 0x02327720 + arm_func_end ov00_022EEB3C + + arm_func_start ov00_022EEB50 +ov00_022EEB50: @ 0x022EEB50 + push {r3, lr} + ldr r1, _022EEB88 @ =0x0231A2C4 + ldr r0, _022EEB8C @ =0x02327720 + ldr r3, [r1, #0x4c] + ldr r2, [r1, #0x48] + ldr r0, [r0] + ldr r1, [r1, #0x50] + mla r0, r2, r0, r3 + bl FUN_020900B0 + ldr r0, _022EEB8C @ =0x02327720 + asr r2, r1, #0x10 + str r1, [r0] + and r0, r2, #0xff + pop {r3, pc} + .align 2, 0 +_022EEB88: .4byte 0x0231A2C4 +_022EEB8C: .4byte 0x02327720 + arm_func_end ov00_022EEB50 + + arm_func_start ov00_022EEB90 +ov00_022EEB90: @ 0x022EEB90 + push {r4, r5, r6, r7, r8, lr} + ldr r4, _022EEC80 @ =0x0231A2C4 + mov ip, #0 + str ip, [r4, #0x10] + ldr r4, [sp, #0x18] + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, r3 + bl FUN_02089678 + cmp r0, #0x20 + movhs r0, #0 + pophs {r4, r5, r6, r7, r8, pc} + mov r0, r7 + bl FUN_02089678 + cmp r0, #0x14 + movne r0, #0 + popne {r4, r5, r6, r7, r8, pc} + sub r0, r6, #5 + tst r0, #7 + movne r0, #0 + popne {r4, r5, r6, r7, r8, pc} + tst r5, #1 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, pc} + mov r2, #0 + mov r1, r2 +_022EEBFC: + lsr r0, r4, r1 + and r0, r0, #1 + cmp r0, #1 + add r1, r1, #1 + addeq r2, r2, #1 + cmp r1, #0x20 + blt _022EEBFC + cmp r2, #1 + movne r0, #0 + popne {r4, r5, r6, r7, r8, pc} + ldr r0, _022EEC84 @ =0x0231A2D8 + mov r1, r8 + mov r2, #0x20 + bl FUN_0208975C + ldr r3, _022EEC88 @ =0x0231A2F8 + mov r2, #0xa +_022EEC3C: + ldrb r1, [r7] + ldrb r0, [r7, #1] + add r7, r7, #2 + subs r2, r2, #1 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + bne _022EEC3C + ldr r1, _022EEC80 @ =0x0231A2C4 + ldr r0, [sp, #0x1c] + str r6, [r1, #0x48] + str r5, [r1, #0x4c] + str r4, [r1, #0x50] + str r0, [r1, #0x54] + mov r0, #1 + str r0, [r1, #0x10] + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022EEC80: .4byte 0x0231A2C4 +_022EEC84: .4byte 0x0231A2D8 +_022EEC88: .4byte 0x0231A2F8 + arm_func_end ov00_022EEB90 + + arm_func_start ov00_022EEC8C +ov00_022EEC8C: @ 0x022EEC8C + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x50 + ldr r4, _022EEE30 @ =0x02318284 + add r3, sp, #0 + mov r6, r0 + mov r5, r1 + mov r2, #8 +_022EECA8: + ldrb r1, [r4] + ldrb r0, [r4, #1] + add r4, r4, #2 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + bne _022EECA8 + ldrb r0, [r4] + cmp r5, #0x28 + addle sp, sp, #0x50 + strb r0, [r3] + movle r0, #0 + pople {r4, r5, r6, r7, r8, pc} + sub r4, r5, #0x28 + mov r0, r4 + bl ov00_022EEB04 + add r1, r0, #0x29 + mov r0, #7 + bl ov00_022E03F0 + movs r7, r0 + addeq sp, sp, #0x50 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, pc} + ldr r8, _022EEE34 @ =0x0231A2F8 + mov r3, r7 + mov r2, #0xa +_022EED14: + ldrb r1, [r8] + ldrb r0, [r8, #1] + add r8, r8, #2 + subs r2, r2, #1 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + bne _022EED14 + mov r0, r6 + mov r2, r4 + add r1, r7, #0x14 + mov r3, #2 + bl ov00_022F598C + mov r0, r4 + bl ov00_022EEB04 + add r1, r7, #0x14 + ldr r3, _022EEE34 @ =0x0231A2F8 + add r8, r1, r0 + mov r2, #0xa +_022EED60: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + strb r1, [r8] + strb r0, [r8, #1] + add r8, r8, #2 + bne _022EED60 + mov r0, r4 + bl ov00_022EEB04 + mov r2, r0 + add r0, sp, #0x11 + mov r1, r7 + add r2, r2, #0x28 + bl FUN_02084F78 + mov r1, r7 + mov r0, #7 + mov r2, #0 + bl ov00_022E0434 + mov r2, #0 + add r3, sp, #0x11 + mov r7, r2 + add r1, sp, #0x25 + add r8, sp, #0 +_022EEDC0: + ldrb ip, [r3], #1 + add r2, r2, #1 + add r0, r1, r7 + asr lr, ip, #4 + and ip, ip, #0xf + ldrsb lr, [r8, lr] + ldrsb ip, [r8, ip] + cmp r2, #0x14 + strb lr, [r1, r7] + strb ip, [r0, #1] + add r7, r7, #2 + blt _022EEDC0 + sub r0, r5, #0x28 + mov r3, #0 + add r0, r6, r0 + mov r2, #0x28 + strb r3, [sp, #0x4d] + bl FUN_02089940 + cmp r0, #0 + addne sp, sp, #0x50 + movne r0, #0 + popne {r4, r5, r6, r7, r8, pc} + ldr r1, _022EEE38 @ =0x0231A2C4 + mov r0, #1 + str r6, [r1, #0x6c] + str r4, [r1, #0x70] + add sp, sp, #0x50 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022EEE30: .4byte 0x02318284 +_022EEE34: .4byte 0x0231A2F8 +_022EEE38: .4byte 0x0231A2C4 + arm_func_end ov00_022EEC8C +_022EEE3C: + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov00_022EEE40 +ov00_022EEE40: @ 0x022EEE40 + push {r3, r4, r5, lr} + sub sp, sp, #0x48 + ldr r3, _022EF0B0 @ =0x0231A2C4 + mvn r4, #0 + str r4, [r3, #0xc] + ldr ip, [r3, #4] + mov r5, r0 + cmp ip, #1 + mov r4, r1 + addeq sp, sp, #0x48 + popeq {r3, r4, r5, pc} + cmp r2, #0 + bne _022EF0A0 + cmp ip, #5 + beq _022EEE8C + cmp ip, #7 + beq _022EEFB8 + add sp, sp, #0x48 + pop {r3, r4, r5, pc} +_022EEE8C: + cmp r4, #0x20 + bne _022EEFA0 + ldr r0, [r3, #0x5c] + ldr r3, _022EF0B4 @ =0x02318295 + add lr, sp, #0 + add r4, r0, #0x14 + mov r2, #8 +_022EEEA8: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + strb r1, [lr] + strb r0, [lr, #1] + add lr, lr, #2 + subs r2, r2, #1 + bne _022EEEA8 + ldrb r0, [r3] + ldr r3, _022EF0B8 @ =0x0231A2F8 + add ip, sp, #0x11 + strb r0, [lr] + mov r2, #0xa +_022EEEDC: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + strb r1, [ip] + strb r0, [ip, #1] + add ip, ip, #2 + subs r2, r2, #1 + bne _022EEEDC + add r0, sp, #0x25 + mov r1, r5 + mov r2, #0x20 + bl FUN_0208729C + add r1, sp, #0x11 + mov r0, r4 + mov r2, #0x34 + bl FUN_02084F78 + mov r0, #0 + ldr r2, _022EF0B0 @ =0x0231A2C4 + mov r1, r0 + add lr, sp, #0 +_022EEF2C: + ldrb ip, [r4, r0] + ldr r3, [r2, #0x5c] + asr ip, ip, #4 + ldrsb ip, [lr, ip] + strb ip, [r3, r1] + ldrb ip, [r4, r0] + ldr r3, [r2, #0x5c] + add r0, r0, #1 + and ip, ip, #0xf + ldrsb ip, [lr, ip] + add r3, r3, r1 + cmp r0, #0x14 + strb ip, [r3, #1] + add r1, r1, #2 + blt _022EEF2C + ldr r0, _022EF0BC @ =0x0231A368 + bl FUN_02089678 + ldr r1, _022EF0B0 @ =0x0231A2C4 + mov r4, #0x26 + ldr r3, [r1, #0x5c] + mov r2, #0x29 + strb r4, [r3, -r0] + ldr r1, [r1, #0x5c] + ldr r0, _022EF0C0 @ =0x0231A33C + bl FUN_0208975C + ldr r0, _022EF0B0 @ =0x0231A2C4 + mov r1, #6 + str r1, [r0, #4] + b _022EEFA8 +_022EEFA0: + mov r0, #1 + str r0, [r3, #4] +_022EEFA8: + mov r0, r5 + bl ov00_022E0520 + add sp, sp, #0x48 + pop {r3, r4, r5, pc} +_022EEFB8: + ldr r0, _022EF0C4 @ =0x0231A370 + bl FUN_02089678 + mov r2, r0 + ldr r1, _022EF0C4 @ =0x0231A370 + mov r0, r5 + bl FUN_02089940 + cmp r0, #0 + bne _022EEFF4 + mov r0, r5 + bl ov00_022E0520 + ldr r0, _022EF0B0 @ =0x0231A2C4 + mov r1, #1 + str r1, [r0, #4] + add sp, sp, #0x48 + pop {r3, r4, r5, pc} +_022EEFF4: + ldr r0, _022EF0B0 @ =0x0231A2C4 + ldr r0, [r0, #0x64] + cmp r0, #0 + beq _022EF014 + bl ov00_022E0520 + ldr r0, _022EF0B0 @ =0x0231A2C4 + mov r1, #0 + str r1, [r0, #0x64] +_022EF014: + mov r0, r5 + mov r1, r4 + bl ov00_022EEC8C + cmp r0, #0 + bne _022EF044 + mov r0, r5 + bl ov00_022E0520 + ldr r0, _022EF0B0 @ =0x0231A2C4 + mov r1, #1 + str r1, [r0, #4] + add sp, sp, #0x48 + pop {r3, r4, r5, pc} +_022EF044: + ldr r0, _022EF0B0 @ =0x0231A2C4 + ldr r2, [r0, #0x74] + cmp r2, #0 + beq _022EF084 + mov r0, r5 + mov r1, r4 + blx r2 + cmp r0, #0 + bne _022EF084 + mov r0, r5 + bl ov00_022E0520 + ldr r0, _022EF0B0 @ =0x0231A2C4 + mov r1, #1 + str r1, [r0, #4] + add sp, sp, #0x48 + pop {r3, r4, r5, pc} +_022EF084: + ldr r0, _022EF0B0 @ =0x0231A2C4 + mov r1, #8 + str r5, [r0, #0x64] + str r4, [r0, #0x68] + str r1, [r0, #4] + add sp, sp, #0x48 + pop {r3, r4, r5, pc} +_022EF0A0: + mov r0, #1 + str r0, [r3, #4] + add sp, sp, #0x48 + pop {r3, r4, r5, pc} + .align 2, 0 +_022EF0B0: .4byte 0x0231A2C4 +_022EF0B4: .4byte 0x02318295 +_022EF0B8: .4byte 0x0231A2F8 +_022EF0BC: .4byte 0x0231A368 +_022EF0C0: .4byte 0x0231A33C +_022EF0C4: .4byte 0x0231A370 + arm_func_end ov00_022EEE40 + + arm_func_start ov00_022EF0C8 +ov00_022EF0C8: @ 0x022EF0C8 + push {r4, r5, r6, r7, r8, sb, sl, lr} + ldr r4, [sp, #0x20] + mov sb, r2 + add r7, r4, sb + mov r4, r0 + mov sl, r1 + add r1, r7, #4 + mov r0, #7 + mov r8, r3 + mov r6, #0 + bl ov00_022E03F0 + movs r5, r0 + moveq r0, #2 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + cmp sb, #0 + mov r2, r6 + ble _022EF124 +_022EF10C: + ldrb r1, [sl, r2] + add r0, r5, r2 + add r2, r2, #1 + strb r1, [r0, #4] + cmp r2, sb + blt _022EF10C +_022EF124: + ldr r3, [sp, #0x20] + mov sl, #0 + cmp r3, #0 + ble _022EF150 + add r2, r5, sb +_022EF138: + ldrb r1, [r8, sl] + add r0, r2, sl + add sl, sl, #1 + strb r1, [r0, #4] + cmp sl, r3 + blt _022EF138 +_022EF150: + cmp r7, #0 + mov r1, #0 + ble _022EF174 +_022EF15C: + add r0, r5, r1 + ldrb r0, [r0, #4] + add r1, r1, #1 + cmp r1, r7 + add r6, r6, r0 + blt _022EF15C +_022EF174: + mov r0, r6 + bl ov00_022EEB3C + cmp r7, #0 + mov r8, #0 + ble _022EF1A8 +_022EF188: + bl ov00_022EEB50 + add r2, r5, r8 + ldrb r1, [r2, #4] + add r8, r8, #1 + cmp r8, r7 + eor r0, r1, r0 + strb r0, [r2, #4] + blt _022EF188 +_022EF1A8: + ldr r1, _022EF20C @ =0x0231A2C4 + mov r0, r5 + ldr r2, [r1, #0x54] + mov r1, r4 + eor r6, r6, r2 + lsr r2, r6, #0x18 + strb r2, [r5] + lsr r2, r6, #0x10 + strb r2, [r5, #1] + lsr r2, r6, #8 + strb r2, [r5, #2] + add r2, r7, #4 + mov r3, #2 + strb r6, [r5, #3] + bl ov00_022F598C + mov r1, r5 + mov r0, #7 + mov r2, #0 + bl ov00_022E0434 + add r0, r7, #4 + bl ov00_022EEB04 + mov r1, #0 + strb r1, [r4, r0] + mov r0, r1 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022EF20C: .4byte 0x0231A2C4 + arm_func_end ov00_022EF0C8 + + arm_func_start FUN_022EF210 +FUN_022EF210: @ 0x022EF210 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x28 + mov r5, #0 + add r4, sp, #8 + ldr r2, _022EF370 @ =0x0231A2C4 + sub r3, r5, #1 + strb r5, [r4] + strb r5, [r4, #1] + strb r5, [r4, #2] + strb r5, [r4, #3] + strb r5, [r4, #4] + strb r5, [r4, #5] + strb r5, [r4, #6] + strb r5, [r4, #7] + strb r5, [r4, #8] + str r3, [r2, #0xc] + str r5, [r2, #0x58] + str r5, [r2, #0x5c] + str r5, [r2, #0x60] + str r5, [r2, #0x64] + mov r4, r1 + str r5, [r2, #0x68] + cmp r0, #0 + beq _022EF288 + cmp r0, #1 + beq _022EF294 + cmp r0, #2 + ldreq r0, _022EF374 @ =0x0231A3C4 + streq r0, [r2] + b _022EF29C +_022EF288: + ldr r0, _022EF378 @ =0x0231A378 + str r0, [r2] + b _022EF29C +_022EF294: + ldr r0, _022EF37C @ =0x0231A3A0 + str r0, [r2] +_022EF29C: + add r0, sp, #0x11 + mov r1, r4 + mov r2, #0x14 + bl FUN_0208975C + mov r3, #0 + add r0, sp, #8 + add r1, r4, #0x14 + mov r2, #8 + strb r3, [sp, #0x25] + bl FUN_0208975C + mov r1, #0 + mov r2, #0x10 + bl FUN_0208B200 + mov r7, r0 + add r0, sp, #8 + add r1, r4, #0x1c + mov r2, #8 + bl FUN_0208975C + mov r1, #0 + mov r2, #0x10 + bl FUN_0208B200 + mov r6, r0 + add r0, sp, #8 + add r1, r4, #0x24 + mov r2, #8 + bl FUN_0208975C + mov r1, #0 + mov r2, #0x10 + bl FUN_0208B200 + mov r5, r0 + add r0, sp, #8 + add r1, r4, #0x2c + mov r2, #8 + bl FUN_0208975C + mov r1, #0 + mov r2, #0x10 + bl FUN_0208B200 + str r5, [sp] + str r0, [sp, #4] + mov r2, r7 + mov r3, r6 + add r0, r4, #0x34 + add r1, sp, #0x11 + bl ov00_022EEB90 + mov r0, #0 + bl ov00_022ECDF0 + ldr r0, _022EF370 @ =0x0231A2C4 + mov r2, #3 + mov r1, #1 + str r2, [r0, #4] + str r1, [r0, #8] + add sp, sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022EF370: .4byte 0x0231A2C4 +_022EF374: .4byte 0x0231A3C4 +_022EF378: .4byte 0x0231A378 +_022EF37C: .4byte 0x0231A3A0 + arm_func_end FUN_022EF210 + + arm_func_start ov00_022EF380 +ov00_022EF380: @ 0x022EF380 + push {r3, lr} + sub sp, sp, #8 + ldr r0, _022EF49C @ =0x0231A2C4 + ldr r1, [r0, #4] + cmp r1, #8 + addls pc, pc, r1, lsl #2 + b _022EF48C +_022EF39C: @ jump table + b _022EF48C @ case 0 + b _022EF3C0 @ case 1 + b _022EF48C @ case 2 + b _022EF48C @ case 3 + b _022EF3DC @ case 4 + b _022EF41C @ case 5 + b _022EF438 @ case 6 + b _022EF478 @ case 7 + b _022EF48C @ case 8 +_022EF3C0: + bl ov00_022E0378 + cmp r0, #0 + bne _022EF48C + ldr r1, _022EF4A0 @ =0xFFFEA048 + mov r0, #6 + bl ov00_022E0394 + b _022EF48C +_022EF3DC: + ldr r2, _022EF4A4 @ =ov00_022EEE40 + mov r1, #0 + str r2, [sp] + str r1, [sp, #4] + ldr r0, [r0, #0x58] + ldr r3, _022EF4A8 @ =0x022EEE3C + mov r2, r1 + bl ov00_022ED0FC + ldr r1, _022EF49C @ =0x0231A2C4 + cmp r0, #0 + str r0, [r1, #0xc] + movge r0, #5 + strge r0, [r1, #4] + movlt r0, #1 + strlt r0, [r1, #4] + b _022EF48C +_022EF41C: + bl ov00_022ECE54 + cmp r0, #0 + bne _022EF48C + ldr r0, _022EF49C @ =0x0231A2C4 + mov r1, #1 + str r1, [r0, #4] + b _022EF48C +_022EF438: + ldr r2, _022EF4A4 @ =ov00_022EEE40 + mov r1, #0 + str r2, [sp] + str r1, [sp, #4] + ldr r0, [r0, #0x58] + ldr r3, _022EF4A8 @ =0x022EEE3C + mov r2, r1 + bl ov00_022ED0FC + ldr r1, _022EF49C @ =0x0231A2C4 + cmp r0, #0 + str r0, [r1, #0xc] + movge r0, #7 + strge r0, [r1, #4] + movlt r0, #1 + strlt r0, [r1, #4] + b _022EF48C +_022EF478: + bl ov00_022ECE54 + cmp r0, #0 + ldreq r0, _022EF49C @ =0x0231A2C4 + moveq r1, #1 + streq r1, [r0, #4] +_022EF48C: + ldr r0, _022EF49C @ =0x0231A2C4 + ldr r0, [r0, #4] + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_022EF49C: .4byte 0x0231A2C4 +_022EF4A0: .4byte 0xFFFEA048 +_022EF4A4: .4byte ov00_022EEE40 +_022EF4A8: .4byte 0x022EEE3C + arm_func_end ov00_022EF380 + + arm_func_start ov00_022EF4AC +ov00_022EF4AC: @ 0x022EF4AC + push {r3, lr} + ldr r0, _022EF4D4 @ =0x0231A2C4 + ldr r0, [r0, #0xc] + cmp r0, #0 + blt _022EF4C4 + bl ov00_022ED124 +_022EF4C4: + ldr r0, _022EF4D4 @ =0x0231A2C4 + mov r1, #0 + str r1, [r0, #4] + pop {r3, pc} + .align 2, 0 +_022EF4D4: .4byte 0x0231A2C4 + arm_func_end ov00_022EF4AC + + arm_func_start ov00_022EF4D8 +ov00_022EF4D8: @ 0x022EF4D8 + push {r3, lr} + ldr r0, _022EF544 @ =0x0231A2C4 + ldr r1, [r0, #0x58] + cmp r1, #0 + beq _022EF504 + mov r0, #7 + mov r2, #0 + bl ov00_022E0434 + ldr r0, _022EF544 @ =0x0231A2C4 + mov r1, #0 + str r1, [r0, #0x58] +_022EF504: + ldr r0, _022EF544 @ =0x0231A2C4 + ldr r0, [r0, #0x64] + cmp r0, #0 + beq _022EF528 + bl ov00_022E0520 + ldr r0, _022EF544 @ =0x0231A2C4 + mov r1, #0 + str r1, [r0, #0x68] + str r1, [r0, #0x64] +_022EF528: + bl ov00_022ECE14 + ldr r0, _022EF544 @ =0x0231A2C4 + mov r1, #2 + str r1, [r0, #4] + mov r1, #0 + str r1, [r0, #8] + pop {r3, pc} + .align 2, 0 +_022EF544: .4byte 0x0231A2C4 + arm_func_end ov00_022EF4D8 + + arm_func_start ov00_022EF548 +ov00_022EF548: @ 0x022EF548 + ldr r1, _022EF55C @ =0x0231A2C4 + ldr r2, [r1, #0x70] + str r2, [r0] + ldr r0, [r1, #0x6c] + bx lr + .align 2, 0 +_022EF55C: .4byte 0x0231A2C4 + arm_func_end ov00_022EF548 + + arm_func_start ov00_022EF560 +ov00_022EF560: @ 0x022EF560 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x34 + ldr r4, _022EF784 @ =0x0231A2C4 + mov sl, r0 + ldr r0, [r4, #0x10] + mov sb, r1 + cmp r0, #1 + str r2, [sp, #0x10] + mov r8, r3 + addne sp, sp, #0x34 + movne r0, #3 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r4, #0x58] + cmp r1, #0 + beq _022EF5B4 + mov r0, #7 + mov r2, #0 + bl ov00_022E0434 + mov r0, r4 + mov r1, #0 + str r1, [r0, #0x58] +_022EF5B4: + add r0, r8, #0xc + bl ov00_022EEB04 + mov r7, r0 + ldr r0, _022EF788 @ =0x0231A3EC + bl FUN_02089678 + mov r6, r0 + ldr r0, _022EF78C @ =0x0231A368 + bl FUN_02089678 + mov r5, r0 + ldr r2, _022EF790 @ =0x0231A3F4 + add r0, sp, #0x24 + mov r1, #0x10 + mov r3, sb + bl FUN_0208955C + mov fp, r0 + ldr r0, _022EF794 @ =0x0231A3F8 + bl FUN_02089678 + str r0, [sp, #0x14] + mov r0, sl + bl FUN_02089678 + str r0, [sp, #0x18] + ldr r0, _022EF784 @ =0x0231A2C4 + ldr r0, [r0] + bl FUN_02089678 + mov r4, r0 + ldr r0, _022EF798 @ =0x0231A2D8 + bl FUN_02089678 + add r1, r4, r0 + ldr r0, [sp, #0x18] + add r1, r0, r1 + ldr r0, [sp, #0x14] + add r0, r0, r1 + add r0, fp, r0 + add r0, r5, r0 + add r0, r0, #0x29 + add r0, r6, r0 + add r1, r7, r0 + mov r0, #7 + bl ov00_022E03F0 + ldr r1, _022EF784 @ =0x0231A2C4 + cmp r0, #0 + str r0, [r1, #0x58] + addeq sp, sp, #0x34 + moveq r0, #2 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + str sl, [sp] + ldr r3, _022EF79C @ =0x0231A41C + str sb, [sp, #4] + str r3, [sp, #8] + ldr r2, _022EF7A0 @ =0x0231A448 + ldr r3, _022EF798 @ =0x0231A2D8 + str r2, [sp, #0xc] + ldr r2, [r1] + ldr r1, _022EF7A4 @ =0x0231A400 + bl FUN_02089584 + ldr r0, _022EF784 @ =0x0231A2C4 + ldr r4, [r0, #0x58] + mov r0, r4 + bl FUN_02089678 + add r2, r4, r0 + ldr r1, _022EF784 @ =0x0231A2C4 + ldr r0, _022EF788 @ =0x0231A3EC + str r2, [r1, #0x60] + bl FUN_02089678 + ldr r4, _022EF784 @ =0x0231A2C4 + ldr r3, [sp, #0x10] + ldr r5, [r4, #0x60] + add r1, sp, #0x1c + sub r0, r5, r0 + sub r0, r0, #0x28 + str r0, [r4, #0x5c] + str sb, [sp, #0x1c] + str r8, [sp, #0x20] + str r8, [sp] + ldr r0, [r4, #0x60] + mov r2, #8 + bl ov00_022EF0C8 + cmp r0, #2 + bne _022EF71C + mov r1, r4 + ldr r1, [r1, #0x58] + mov r0, #7 + mov r2, #0 + bl ov00_022E0434 + mov r0, r4 + mov r1, #0 + str r1, [r0, #0x58] + add sp, sp, #0x34 + mov r0, #2 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022EF71C: + ldr r0, [sp, #0x5c] + cmp r0, #0 + beq _022EF74C + mov r0, r4 + ldr r1, _022EF7A8 @ =0x0231A33C + ldr r0, [r0, #0x5c] + mov r2, #0x28 + bl FUN_0208729C + mov r0, r4 + mov r1, #6 + str r1, [r0, #4] + b _022EF76C +_022EF74C: + ldr r0, _022EF78C @ =0x0231A368 + bl FUN_02089678 + mov r1, r4 + ldr r3, [r1, #0x5c] + mov r4, #0 + mov r2, #4 + strb r4, [r3, -r0] + str r2, [r1, #4] +_022EF76C: + ldr r2, [sp, #0x58] + ldr r1, _022EF784 @ =0x0231A2C4 + mov r0, #0 + str r2, [r1, #0x74] + add sp, sp, #0x34 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022EF784: .4byte 0x0231A2C4 +_022EF788: .4byte 0x0231A3EC +_022EF78C: .4byte 0x0231A368 +_022EF790: .4byte 0x0231A3F4 +_022EF794: .4byte 0x0231A3F8 +_022EF798: .4byte 0x0231A2D8 +_022EF79C: .4byte 0x0231A41C +_022EF7A0: .4byte 0x0231A448 +_022EF7A4: .4byte 0x0231A400 +_022EF7A8: .4byte 0x0231A33C + arm_func_end ov00_022EF560 + + arm_func_start ov00_022EF7AC +ov00_022EF7AC: @ 0x022EF7AC + push {r3, lr} + sub sp, sp, #8 + ldr lr, [sp, #0x10] + mov ip, #0 + str lr, [sp] + str ip, [sp, #4] + bl ov00_022EF560 + add sp, sp, #8 + pop {r3, pc} + arm_func_end ov00_022EF7AC + + arm_func_start ov00_022EF7D0 +ov00_022EF7D0: @ 0x022EF7D0 + push {r3, r4, r5, r6, r7, lr} + mov r7, #0 + ldr r6, _022EF80C @ =0x0232774C + ldr r4, _022EF810 @ =0x02327744 + mov r5, r7 +_022EF7E4: + ldr r0, [r6, r7, lsl #2] + cmp r0, #0 + beq _022EF7FC + ldr r1, [r4] + blx r1 + str r5, [r6, r7, lsl #2] +_022EF7FC: + add r7, r7, #1 + cmp r7, #3 + blt _022EF7E4 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022EF80C: .4byte 0x0232774C +_022EF810: .4byte 0x02327744 + arm_func_end ov00_022EF7D0 + + arm_func_start ov00_022EF814 +ov00_022EF814: @ 0x022EF814 + push {r4, r5, r6, lr} + mov r6, r1 + ldrsb r1, [r6] + mov r4, r0 + cmp r1, #0 + beq _022EF8D0 + mov r0, r6 + bl ov00_020852A4 + cmp r0, #0xa + ble _022EF850 + ldr r0, _022EF8D8 @ =0x02327740 + mov r1, #7 + str r1, [r0] + mov r0, #0 + pop {r4, r5, r6, pc} +_022EF850: + mov r0, r6 + bl ov00_020852A4 + mov r5, r0 + cmp r5, #0xa + ble _022EF878 + ldr r0, _022EF8D8 @ =0x02327740 + mov r1, #7 + str r1, [r0] + mov r0, #0 + pop {r4, r5, r6, pc} +_022EF878: + bl ov00_022EFA00 + ldr r1, _022EF8DC @ =0x02327730 + add r0, r0, #1 + ldr r2, [r1] + mov r1, #4 + blx r2 + ldr r1, _022EF8E0 @ =0x0232774C + cmp r0, #0 + str r0, [r1, r4, lsl #2] + bne _022EF8B4 + ldr r0, _022EF8D8 @ =0x02327740 + mov r1, #1 + str r1, [r0] + mov r0, #0 + pop {r4, r5, r6, pc} +_022EF8B4: + mov r1, r6 + mov r2, r5 + bl ov00_022EFA1C + ldr r1, _022EF8E0 @ =0x0232774C + mov r2, #0 + ldr r1, [r1, r4, lsl #2] + strb r2, [r1, r0] +_022EF8D0: + mov r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 +_022EF8D8: .4byte 0x02327740 +_022EF8DC: .4byte 0x02327730 +_022EF8E0: .4byte 0x0232774C + arm_func_end ov00_022EF814 + + arm_func_start ov00_022EF8E4 +ov00_022EF8E4: @ 0x022EF8E4 + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl ov00_022F1010 + bl ov00_022EF7D0 + mov r1, r6 + mov r0, #0 + bl ov00_022EF814 + cmp r0, #0 + beq _022EF944 + mov r1, r5 + mov r0, #1 + bl ov00_022EF814 + cmp r0, #0 + beq _022EF944 + mov r1, r4 + mov r0, #2 + bl ov00_022EF814 + cmp r0, #0 + beq _022EF944 + bl ov00_022F1024 + mov r0, #1 + pop {r4, r5, r6, pc} +_022EF944: + bl ov00_022EF7D0 + bl ov00_022F1024 + mov r0, #0 + pop {r4, r5, r6, pc} + arm_func_end ov00_022EF8E4 + + arm_func_start ov00_022EF954 +ov00_022EF954: @ 0x022EF954 + push {r4, lr} + mov r4, #0 + mov lr, r4 + cmp r2, #0 + ble _022EF994 + mov r3, r4 +_022EF96C: + ldrsb ip, [r1] + cmp ip, #0 + strbeq r3, [r0], #1 + beq _022EF988 + add r4, r4, #1 + add r1, r1, #1 + strb ip, [r0], #1 +_022EF988: + add lr, lr, #1 + cmp lr, r2 + blt _022EF96C +_022EF994: + mov r0, r4 + pop {r4, pc} + arm_func_end ov00_022EF954 + + arm_func_start ov00_022EF99C +ov00_022EF99C: @ 0x022EF99C + cmp r0, #0x41 + blo _022EF9B0 + cmp r0, #0x5a + subls r0, r0, #0x41 + bxls lr +_022EF9B0: + cmp r0, #0x61 + blo _022EF9C4 + cmp r0, #0x7a + subls r0, r0, #0x47 + bxls lr +_022EF9C4: + cmp r0, #0x30 + blo _022EF9D8 + cmp r0, #0x39 + addls r0, r0, #4 + bxls lr +_022EF9D8: + cmp r0, #0x2e + moveq r0, #0x3e + bxeq lr + cmp r0, #0x2d + moveq r0, #0x3f + mvnne r0, #0 + bx lr + arm_func_end ov00_022EF99C + + arm_func_start ov00_022EF9F4 +ov00_022EF9F4: @ 0x022EF9F4 + asr r0, r0, #2 + add r0, r0, r0, lsl #1 + bx lr + arm_func_end ov00_022EF9F4 + + arm_func_start ov00_022EFA00 +ov00_022EFA00: @ 0x022EFA00 + ldr r1, _022EFA18 @ =0x55555556 + add r2, r0, #2 + smull r0, r3, r1, r2 + add r3, r3, r2, lsr #31 + lsl r0, r3, #2 + bx lr + .align 2, 0 +_022EFA18: .4byte 0x55555556 + arm_func_end ov00_022EFA00 + + arm_func_start ov00_022EFA1C +ov00_022EFA1C: @ 0x022EFA1C push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov r7, r2 + mov r8, r1 + mov sb, r0 + cmp r7, #3 + movgt r2, #3 + add r0, sp, #0 + mov r1, r8 + mov r6, #0 + bl ov00_022EF954 + cmp r0, #0 + ble _022EFB00 + mov r5, #0 + ldr sl, _022EFB10 @ =0x023182A8 + mov r4, r5 + mov fp, #0x2a +_022EFA5C: + cmp r7, #3 + strblt r5, [sp, #2] + cmp r7, #2 + strblt r4, [sp, #1] + ldrb r1, [sp, #2] + ldrb r2, [sp] + ldrb r3, [sp, #1] + asr lr, r1, #6 + asr ip, r2, #2 + orr lr, lr, r3, lsl #2 + asr r3, r3, #4 + and ip, ip, #0xff + orr r2, r3, r2, lsl #4 + ldrsb ip, [sl, ip] + and r2, r2, #0x3f + ldrsb r2, [sl, r2] + strb ip, [sb] + and ip, lr, #0x3f + cmp r0, #1 + strb r2, [sb, #1] + ldrsbgt r2, [sl, ip] + and r1, r1, #0x3f + add r8, r8, r0 + movle r2, fp + cmp r0, #2 + ldrsbgt r1, [sl, r1] + strb r2, [sb, #2] + add r6, r6, #4 + movle r1, #0x2a + strb r1, [sb, #3] + add sb, sb, #4 + subs r7, r7, r0 + beq _022EFB00 + cmp r7, #3 + movgt r2, #3 + movle r2, r7 + add r0, sp, #0 + mov r1, r8 + bl ov00_022EF954 + cmp r0, #0 + bgt _022EFA5C +_022EFB00: + mov r1, #0 + mov r0, r6 + strb r1, [sb] + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022EFB10: .4byte 0x023182A8 + arm_func_end ov00_022EFA1C + + arm_func_start ov00_022EFB14 +ov00_022EFB14: @ 0x022EFB14 + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #8 + mov sb, r0 + mov r7, r2 + add r0, sp, #3 + mov r2, #4 + mov r6, #0 + mov r8, r1 + bl ov00_022EF954 + mov r5, r0 + mov r4, r6 + b _022EFC20 +_022EFB44: + ldrb r0, [sp, #3] + mov r1, #0 + strb r1, [sp] + strb r1, [sp, #1] + strb r1, [sp, #2] + bl ov00_022EF99C + movs r4, r0 + bmi _022EFBCC + ldrb r0, [sp, #4] + lsl r1, r4, #2 + strb r1, [sp] + bl ov00_022EF99C + movs r4, r0 + bmi _022EFBCC + ldrsb r2, [sp] + ldrb r0, [sp, #5] + lsl r1, r4, #4 + orr r2, r2, r4, asr #4 + strb r2, [sp] + strb r1, [sp, #1] + bl ov00_022EF99C + movs r4, r0 + bmi _022EFBCC + ldrsb r2, [sp, #1] + ldrb r0, [sp, #6] + lsl r1, r4, #6 + orr r2, r2, r4, asr #2 + strb r1, [sp, #2] + strb r2, [sp, #1] + bl ov00_022EF99C + movs r4, r0 + ldrsbpl r0, [sp, #2] + orrpl r0, r0, r4 + strbpl r0, [sp, #2] +_022EFBCC: + sub r1, r5, #1 + cmp r1, #0 + mov r2, #0 + ble _022EFBF4 + add r3, sp, #0 +_022EFBE0: + ldrsb r0, [r3], #1 + add r2, r2, #1 + cmp r2, r1 + strb r0, [sb], #1 + blt _022EFBE0 +_022EFBF4: + sub r0, r5, #1 + sub r7, r7, #4 + cmp r7, #0 + add r8, r8, r5 + add r6, r6, r0 + ble _022EFC30 + add r0, sp, #3 + mov r1, r8 + mov r2, #4 + bl ov00_022EF954 + mov r5, r0 +_022EFC20: + cmp r5, #0 + ble _022EFC30 + cmp r4, #0 + bge _022EFB44 +_022EFC30: + mov r0, r6 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_022EFB14 + + arm_func_start ov00_022EFC3C +ov00_022EFC3C: @ 0x022EFC3C + push {r4, r5, r6, lr} + mov r6, r0 + bl ov00_020852A4 + ldr r1, _022EFC84 @ =0x02327724 + mov r4, r0 + ldr r2, [r1, #0xc] + add r0, r4, #1 + mov r1, #4 + blx r2 + movs r5, r0 + beq _022EFC7C + mov r1, r6 + mov r2, r4 + bl ov00_022F1178 + mov r0, #0 + strb r0, [r5, r4] +_022EFC7C: + mov r0, r5 + pop {r4, r5, r6, pc} + .align 2, 0 +_022EFC84: .4byte 0x02327724 + arm_func_end ov00_022EFC3C + + arm_func_start ov00_022EFC88 +ov00_022EFC88: @ 0x022EFC88 + push {r3, r4, r5, r6, r7, lr} + ldr ip, _022EFE18 @ =0x02327724 + mov r5, r0 + mov r4, r1 + str r5, [ip, #0xc] + mov r1, #0 + ldr r0, [sp, #0x20] + str r4, [ip, #0x20] + str r0, [ip, #0x18] + str r1, [ip, #0x1c] + str r1, [ip, #0x28] + str r1, [ip, #0x2c] + str r1, [ip, #0x30] + str r1, [ip, #4] + sub r0, r1, #1 + str r0, [ip, #0x24] + str r1, [ip, #8] + ldr r0, _022EFE1C @ =0x02327764 + mov r7, r2 + mov r6, r3 + str r1, [ip, #0x10] + bl ov00_022F10EC + ldr r0, _022EFE20 @ =0x023277AC + bl ov00_022F0064 + mov r0, r7 + bl ov00_022EFC3C + ldr r1, _022EFE18 @ =0x02327724 + cmp r0, #0 + str r0, [r1, #0x10] + beq _022EFDD4 + mov r0, r6 + bl ov00_022EFC3C + ldr r1, _022EFE18 @ =0x02327724 + cmp r0, #0 + str r0, [r1, #8] + beq _022EFDD4 + ldr r1, [sp, #0x18] + ldr r0, _022EFE24 @ =0x02327758 + mov r2, #4 + bl ov00_022EFA1C + ldr r1, _022EFE24 @ =0x02327758 + mov r2, #0 + strb r2, [r1, r0] + ldr r1, [sp, #0x1c] + ldr r0, _022EFE28 @ =0x02327790 + mov r2, #0x10 + bl ov00_022EFA1C + ldr r1, _022EFE28 @ =0x02327790 + mov r2, #0 + strb r2, [r1, r0] + bl ov00_022F1038 + cmp r0, #0 + beq _022EFDA0 + bl ov00_022F0FF4 + cmp r0, #0 + beq _022EFDA0 + mov r0, r5 + mov r1, r4 + mov r2, #0xa + bl ov00_022F12D8 + cmp r0, #0 + beq _022EFD9C + ldr r0, _022EFE2C @ =0x02327778 + bl ov00_022EFED8 + ldr r1, _022EFE18 @ =0x02327724 + str r0, [r1, #4] + mov r0, #1 + str r0, [r1, #0x14] + pop {r3, r4, r5, r6, r7, pc} +_022EFD9C: + bl ov00_022F100C +_022EFDA0: + ldr r1, _022EFE18 @ =0x02327724 + ldr r0, [r1, #8] + ldr r1, [r1, #0x20] + blx r1 + ldr r1, _022EFE18 @ =0x02327724 + ldr r0, [r1, #0x10] + ldr r1, [r1, #0x20] + blx r1 + ldr r0, _022EFE18 @ =0x02327724 + mov r1, #8 + str r1, [r0, #0x1c] + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_022EFDD4: + ldr r1, _022EFE18 @ =0x02327724 + ldr r0, [r1, #8] + cmp r0, #0 + beq _022EFDEC + ldr r1, [r1, #0x20] + blx r1 +_022EFDEC: + ldr r1, _022EFE18 @ =0x02327724 + ldr r0, [r1, #0x10] + cmp r0, #0 + beq _022EFE04 + ldr r1, [r1, #0x20] + blx r1 +_022EFE04: + ldr r0, _022EFE18 @ =0x02327724 + mov r1, #1 + str r1, [r0, #0x1c] + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022EFE18: .4byte 0x02327724 +_022EFE1C: .4byte 0x02327764 +_022EFE20: .4byte 0x023277AC +_022EFE24: .4byte 0x02327758 +_022EFE28: .4byte 0x02327790 +_022EFE2C: .4byte 0x02327778 + arm_func_end ov00_022EFC88 + + arm_func_start ov00_022EFE30 +ov00_022EFE30: @ 0x022EFE30 + push {r3, lr} + bl ov00_022EF7D0 + bl ov00_022F100C + bl ov00_022F1060 + ldr r1, _022EFE70 @ =0x02327724 + ldr r0, [r1, #8] + ldr r1, [r1, #0x20] + blx r1 + ldr r1, _022EFE70 @ =0x02327724 + ldr r0, [r1, #0x10] + ldr r1, [r1, #0x20] + blx r1 + ldr r0, _022EFE70 @ =0x02327724 + ldr r0, [r0] + blx r0 + pop {r3, pc} + .align 2, 0 +_022EFE70: .4byte 0x02327724 + arm_func_end ov00_022EFE30 + + arm_func_start ov00_022EFE74 +ov00_022EFE74: @ 0x022EFE74 + ldr r1, _022EFE90 @ =0x02327724 + mov r2, #0 + str r2, [r1, #0x14] + str r0, [r1] + ldr ip, _022EFE94 @ =FUN_022F13A0 + ldr r0, _022EFE98 @ =ov00_022EFE30 + bx ip + .align 2, 0 +_022EFE90: .4byte 0x02327724 +_022EFE94: .4byte FUN_022F13A0 +_022EFE98: .4byte ov00_022EFE30 + arm_func_end ov00_022EFE74 + + arm_func_start ov00_022EFE9C +ov00_022EFE9C: @ 0x022EFE9C + push {r4, lr} + bl ov00_022F1064 + cmp r0, #0 + bne _022EFEC8 + bl ov00_022F1010 + ldr r0, _022EFED4 @ =0x02327748 + ldr r4, [r0] + bl ov00_022F1024 + mov r0, r4 + bl ov00_022F2578 + pop {r4, pc} +_022EFEC8: + bl ov00_022F10AC + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_022EFED4: .4byte 0x02327748 + arm_func_end ov00_022EFE9C + + arm_func_start ov00_022EFED8 +ov00_022EFED8: @ 0x022EFED8 + push {r4, lr} + sub sp, sp, #0x10 + ldr ip, _022EFFC8 @ =0x023182EC + add r3, sp, #0 + mov r4, r0 + mov r2, #6 +_022EFEF0: + ldrb r1, [ip] + ldrb r0, [ip, #1] + add ip, ip, #2 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + bne _022EFEF0 + ldrb r1, [ip] + ldr r0, _022EFFCC @ =0x023277D0 + strb r1, [r3] + bl ov00_022E0BF8 + cmp r0, #0 + beq _022EFFBC + ldr r0, _022EFFD0 @ =0x023277D0 + ldr r1, [r0] + cmp r1, #0 + blt _022EFF48 + cmp r1, #0xa + addlt r0, r1, #0x30 + strblt r0, [sp, #1] + blt _022EFF60 +_022EFF48: + cmp r1, #0xa + blt _022EFF60 + cmp r1, #0x64 + bge _022EFF60 + add r0, sp, #0 + bl ov00_022F4454 +_022EFF60: + ldr r0, _022EFFD0 @ =0x023277D0 + ldr r0, [r0] + cmp r0, #4 + cmpne r0, #8 + bne _022EFFA0 + ldr r0, _022EFFD0 @ =0x023277D0 + ldr r0, [r0, #4] + cmp r0, #0 + blt _022EFF90 + cmp r0, #0xa + addlt r0, r0, #0x30 + strblt r0, [sp, #3] +_022EFF90: + ldr r1, _022EFFD4 @ =0x023277D8 + add r0, sp, #4 + mov r2, #9 + bl ov00_022F1178 +_022EFFA0: + add r1, sp, #0 + mov r0, r4 + mov r2, #0xd + bl ov00_022EFA1C + add sp, sp, #0x10 + mov r0, #1 + pop {r4, pc} +_022EFFBC: + mov r0, #0 + add sp, sp, #0x10 + pop {r4, pc} + .align 2, 0 +_022EFFC8: .4byte 0x023182EC +_022EFFCC: .4byte 0x023277D0 +_022EFFD0: .4byte 0x023277D0 +_022EFFD4: .4byte 0x023277D8 + arm_func_end ov00_022EFED8 + + arm_func_start ov00_022EFFD8 +ov00_022EFFD8: @ 0x022EFFD8 + push {r4, r5, lr} + sub sp, sp, #0x24 + mov r5, r0 + mov r4, r1 + add r0, sp, #0x10 + mov r1, #0x14 + bl ov00_022F1164 + add r0, sp, #0x10 + bl ov00_022ED468 + ldr r1, [sp, #0x10] + ldr r2, [sp, #0x14] + mov r0, #0 + cmp r2, r0 + cmpeq r1, r0 + addeq sp, sp, #0x24 + popeq {r4, r5, pc} + add r0, sp, #0 + mov r3, #0xd + bl ov00_022F11A8 + cmp r0, #0 + addlt sp, sp, #0x24 + movlt r0, #0 + poplt {r4, r5, pc} + add r1, sp, #0 + mov r0, r4 + mov r2, #0xd + bl ov00_022EFA1C + ldr r1, _022F0060 @ =0x027FFE0C + mov r0, r5 + mov r2, #4 + bl ov00_022EFA1C + mov r0, #1 + add sp, sp, #0x24 + pop {r4, r5, pc} + .align 2, 0 +_022F0060: .4byte 0x027FFE0C + arm_func_end ov00_022EFFD8 + + arm_func_start ov00_022F0064 +ov00_022F0064: @ 0x022F0064 + push {r3, lr} + ldr r2, _022F0084 @ =0x0231A534 + mov ip, #1 + mov r1, #0x21 + mov r3, #3 + str ip, [sp] + bl FUN_0207911C + pop {r3, pc} + .align 2, 0 +_022F0084: .4byte 0x0231A534 + arm_func_end ov00_022F0064 + + arm_func_start ov00_022F0088 +ov00_022F0088: @ 0x022F0088 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x18 + mov sb, r2 + mov sl, r1 + ldr r1, [sb, #8] + cmp r0, #0 + str r1, [sp, #8] + ldr r1, [sb, #0xc] + ldr r5, [sb, #4] + str r1, [sp, #4] + mvn r1, #0 + str r1, [sp] + beq _022F00D0 + cmp r0, #6 + beq _022F02AC + cmp r0, #8 + beq _022F02A4 + b _022F02B4 +_022F00D0: + ldr r1, _022F03A0 @ =0x0231A550 + add r2, sp, #0x14 + mov r0, sl + bl ov00_022F2864 + cmp r0, #3 + movne r4, #3 + bne _022F02B8 + ldr r0, [sp, #0x14] + mov r1, #3 + bl ov00_022F43BC + ldr r1, _022F03A4 @ =0x0000012E + cmp r0, r1 + bne _022F021C + add r1, sp, #0x10 + mov r0, sl + mov r8, #0 + bl ov00_022F2968 + movs r6, r0 + movmi r4, #3 + bmi _022F02B8 + cmp r6, #0 + mov r7, r8 + ble _022F0208 + ldr r4, _022F03A8 @ =0x0231A560 + mov fp, #8 +_022F0134: + ldr r3, [sp, #0x10] + mov r1, r7 + add r2, r3, r7 + b _022F014C +_022F0144: + add r2, r2, #1 + add r7, r7, #1 +_022F014C: + ldrsb r0, [r2] + cmp r0, #0x3d + beq _022F0160 + cmp r7, r6 + blt _022F0144 +_022F0160: + sub r0, r7, r1 + cmp r0, #8 + add r7, r7, #1 + bne _022F018C + add r0, r3, r1 + mov r1, r4 + mov r2, fp + bl ov00_020852F8 + cmp r0, #0 + moveq r8, #1 + movne r8, #0 +_022F018C: + ldr r1, [sp, #0x10] + mov r3, r7 + add r2, r1, r7 + b _022F01A4 +_022F019C: + add r2, r2, #1 + add r7, r7, #1 +_022F01A4: + ldrsb r0, [r2] + cmp r0, #0x26 + cmpne r0, #0xd + cmpne r0, #0 + beq _022F01C0 + cmp r7, r6 + blt _022F019C +_022F01C0: + cmp r8, #0 + sub r2, r7, r3 + add r7, r7, #1 + beq _022F0200 + cmp r2, #4 + bne _022F0208 + add r0, sp, #0xc + add r1, r1, r3 + bl ov00_022EFB14 + mov r1, r0 + add r0, sp, #0xc + mov r2, #0 + strb r2, [r0, r1] + bl ov00_022F43BC + str r0, [sp] + b _022F0208 +_022F0200: + cmp r7, r6 + blt _022F0134 +_022F0208: + ldr r0, [sp] + cmp r0, #0 + movlt r4, #3 + movge r4, #5 + b _022F02B8 +_022F021C: + cmp r0, #0 + ble _022F022C + cmp r0, #0xc8 + beq _022F0234 +_022F022C: + mov r4, #3 + b _022F02B8 +_022F0234: + cmp r5, #1 + beq _022F0250 + cmp r5, #2 + beq _022F026C + cmp r5, #3 + beq _022F0288 + b _022F02B8 +_022F0250: + mov r0, sl + mov r1, sb + bl ov00_022F0CF0 + cmp r0, #0 + movne r4, #0 + moveq r4, #3 + b _022F02B8 +_022F026C: + mov r0, sl + mov r1, sb + bl ov00_022F0D70 + cmp r0, #0 + movne r4, #0 + moveq r4, #3 + b _022F02B8 +_022F0288: + mov r0, sl + mov r1, sb + bl ov00_022F0D44 + cmp r0, #0 + movne r4, #0 + moveq r4, #3 + b _022F02B8 +_022F02A4: + mov r4, #6 + b _022F02B8 +_022F02AC: + mov r4, #4 + b _022F02B8 +_022F02B4: + mov r4, #3 +_022F02B8: + cmp r5, #1 + beq _022F0328 + cmp r5, #2 + beq _022F02D4 + cmp r5, #3 + beq _022F0318 + b _022F0328 +_022F02D4: + ldr r0, [sb, #0x20] + cmp r0, #0 + beq _022F02EC + ldr r1, _022F03AC @ =0x02327744 + ldr r1, [r1] + blx r1 +_022F02EC: + ldr r0, [sb, #0x1c] + cmp r0, #0 + beq _022F0304 + ldr r1, _022F03AC @ =0x02327744 + ldr r1, [r1] + blx r1 +_022F0304: + ldr r1, _022F03AC @ =0x02327744 + ldr r0, [sb, #0x18] + ldr r1, [r1] + blx r1 + b _022F0328 +_022F0318: + ldr r1, _022F03AC @ =0x02327744 + ldr r0, [sb, #0x10] + ldr r1, [r1] + blx r1 +_022F0328: + bl ov00_022F1010 + ldr r0, _022F03B0 @ =0x02327748 + mvn r1, #0 + str r1, [r0] + bl ov00_022F1024 + mov r0, sl + bl ov00_022F26E0 + ldr r1, _022F03AC @ =0x02327744 + mov r0, sb + ldr r1, [r1] + blx r1 + bl ov00_022F10AC + cmp r4, #0 + ldrne r0, _022F03B4 @ =0x02327740 + strne r4, [r0] + ldr r0, [sp, #8] + cmp r0, #0 + beq _022F0384 + ldr r2, [sp] + ldr r3, [sp, #8] + mov r0, r5 + mov r1, r4 + blx r3 +_022F0384: + ldr r0, [sp, #4] + cmp r0, #0 + addeq sp, sp, #0x18 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + bl ov00_022F10D8 + add sp, sp, #0x18 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022F03A0: .4byte 0x0231A550 +_022F03A4: .4byte 0x0000012E +_022F03A8: .4byte 0x0231A560 +_022F03AC: .4byte 0x02327744 +_022F03B0: .4byte 0x02327748 +_022F03B4: .4byte 0x02327740 + arm_func_end ov00_022F0088 + + arm_func_start ov00_022F03B8 +ov00_022F03B8: @ 0x022F03B8 + push {r4, lr} + mov r4, r0 + mov r0, r1 + bl ov00_022F23F8 + bl ov00_022F10AC + ldr r1, _022F03E0 @ =0x02327744 + mov r0, r4 + ldr r1, [r1] + blx r1 + pop {r4, pc} + .align 2, 0 +_022F03E0: .4byte 0x02327744 + arm_func_end ov00_022F03B8 + + arm_func_start ov00_022F03E4 +ov00_022F03E4: @ 0x022F03E4 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + mov r8, r0 + mov r7, r1 + ldr r0, _022F0710 @ =0x0232780C + ldr r1, _022F0714 @ =0x02327818 + mov r6, r2 + mov r5, r3 + bl ov00_022EFFD8 + cmp r0, #0 + bne _022F0428 + ldr r0, _022F0718 @ =0x02327740 + mov r1, #8 + str r1, [r0] + add sp, sp, #8 + mov r0, #0 + pop {r4, r5, r6, r7, r8, pc} +_022F0428: + ldr r1, _022F071C @ =0x02327730 + mov r0, #0x24 + ldr r2, [r1] + mov r1, #4 + blx r2 + movs r4, r0 + bne _022F045C + ldr r0, _022F0718 @ =0x02327740 + mov r1, #1 + str r1, [r0] + add sp, sp, #8 + mov r0, #0 + pop {r4, r5, r6, r7, r8, pc} +_022F045C: + ldr r0, _022F0720 @ =0x0232773C + mov r1, #0 + ldr r0, [r0] + str r0, [r4, #8] + str r1, [r4, #0xc] + bl ov00_022F1064 + cmp r0, #0 + bne _022F04A4 + ldr r1, _022F0724 @ =0x02327744 + mov r0, r4 + ldr r1, [r1] + blx r1 + ldr r0, _022F0718 @ =0x02327740 + mov r1, #2 + str r1, [r0] + add sp, sp, #8 + mov r0, #0 + pop {r4, r5, r6, r7, r8, pc} +_022F04A4: + ldr r1, _022F0728 @ =ov00_022F0088 + ldr r0, _022F072C @ =0x02327734 + stm sp, {r1, r4} + ldr r0, [r0] + ldr r3, [sp, #0x20] + mov r2, r5 + mov r1, #1 + bl ov00_022F1E94 + movs r5, r0 + bne _022F04F8 + bl ov00_022F10AC + ldr r1, _022F0724 @ =0x02327744 + mov r0, r4 + ldr r1, [r1] + blx r1 + ldr r0, _022F0718 @ =0x02327740 + mov r1, #3 + str r1, [r0] + add sp, sp, #8 + mov r0, #0 + pop {r4, r5, r6, r7, r8, pc} +_022F04F8: + ldr r1, _022F0730 @ =0x0231A54C + str r4, [r8] + mov r2, #1 + str r5, [r7] + bl ov00_022F16EC + cmp r0, #0 + beq _022F06EC + ldr r1, _022F0734 @ =0x0231A56C + ldr r2, _022F0738 @ =0x023277AC + mov r0, r5 + bl ov00_022F1654 + cmp r0, #0 + beq _022F06EC + ldr r1, _022F073C @ =0x0231A578 + ldr r2, _022F0740 @ =0x02327758 + mov r0, r5 + bl ov00_022F1678 + cmp r0, #0 + beq _022F06EC + ldr r1, _022F0744 @ =0x0231A580 + ldr r2, _022F0710 @ =0x0232780C + mov r0, r5 + bl ov00_022F1678 + cmp r0, #0 + beq _022F06EC + ldr r1, _022F0748 @ =0x0231A58C + ldr r2, _022F074C @ =0x02327790 + mov r0, r5 + bl ov00_022F1678 + cmp r0, #0 + beq _022F06EC + ldr r0, _022F0750 @ =0x0232772C + ldr r1, _022F0754 @ =0x0231A594 + ldr r2, [r0] + mov r0, r5 + bl ov00_022F1678 + cmp r0, #0 + beq _022F06EC + ldr r1, _022F0758 @ =0x0231A59C + ldr r2, _022F0714 @ =0x02327818 + mov r0, r5 + bl ov00_022F1678 + cmp r0, #0 + beq _022F06EC + ldr r1, _022F075C @ =0x0231A5A4 + ldr r2, _022F0760 @ =0x02327764 + mov r0, r5 + bl ov00_022F1678 + cmp r0, #0 + beq _022F06EC + ldr r1, _022F0764 @ =0x0231A5AC + mov r0, r5 + mov r2, r6 + bl ov00_022F1678 + cmp r0, #0 + beq _022F06EC + ldr r0, _022F0768 @ =0x0232774C + ldr r2, [r0] + cmp r2, #0 + beq _022F05FC + ldr r1, _022F076C @ =0x0231A5B4 + mov r0, r5 + bl ov00_022F1678 + cmp r0, #0 + beq _022F06EC +_022F05FC: + ldr r0, _022F0768 @ =0x0232774C + ldr r2, [r0, #4] + cmp r2, #0 + beq _022F0620 + ldr r1, _022F0770 @ =0x0231A5BC + mov r0, r5 + bl ov00_022F1678 + cmp r0, #0 + beq _022F06EC +_022F0620: + ldr r0, _022F0768 @ =0x0232774C + ldr r2, [r0, #8] + cmp r2, #0 + beq _022F0644 + ldr r1, _022F0774 @ =0x0231A5C4 + mov r0, r5 + bl ov00_022F1678 + cmp r0, #0 + beq _022F06EC +_022F0644: + ldr r0, _022F0778 @ =0x02327728 + ldr r0, [r0] + cmp r0, #0 + beq _022F066C + ldr r1, _022F077C @ =0x0231A5CC + ldr r2, _022F0780 @ =0x02327778 + mov r0, r5 + bl ov00_022F1678 + cmp r0, #0 + beq _022F06EC +_022F066C: + ldr r0, [sp, #0x24] + cmp r0, #0 + beq _022F06E0 + bl ov00_020852A4 + mov r6, r0 + cmp r6, #0x40 + ble _022F06AC + ldr r2, _022F0718 @ =0x02327740 + mov r3, #7 + mov r0, r4 + mov r1, r5 + str r3, [r2] + bl ov00_022F03B8 + add sp, sp, #8 + mov r0, #0 + pop {r4, r5, r6, r7, r8, pc} +_022F06AC: + ldr r0, _022F0784 @ =0x02327830 + mov r1, #0x59 + bl ov00_022F1164 + ldr r1, [sp, #0x24] + ldr r0, _022F0784 @ =0x02327830 + mov r2, r6 + bl ov00_022EFA1C + ldr r1, _022F0788 @ =0x0231A5D4 + ldr r2, _022F0784 @ =0x02327830 + mov r0, r5 + bl ov00_022F1678 + cmp r0, #0 + beq _022F06EC +_022F06E0: + add sp, sp, #8 + mov r0, #1 + pop {r4, r5, r6, r7, r8, pc} +_022F06EC: + mov r0, r4 + mov r1, r5 + bl ov00_022F03B8 + ldr r0, _022F0718 @ =0x02327740 + mov r1, #1 + str r1, [r0] + mov r0, #0 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022F0710: .4byte 0x0232780C +_022F0714: .4byte 0x02327818 +_022F0718: .4byte 0x02327740 +_022F071C: .4byte 0x02327730 +_022F0720: .4byte 0x0232773C +_022F0724: .4byte 0x02327744 +_022F0728: .4byte ov00_022F0088 +_022F072C: .4byte 0x02327734 +_022F0730: .4byte 0x0231A54C +_022F0734: .4byte 0x0231A56C +_022F0738: .4byte 0x023277AC +_022F073C: .4byte 0x0231A578 +_022F0740: .4byte 0x02327758 +_022F0744: .4byte 0x0231A580 +_022F0748: .4byte 0x0231A58C +_022F074C: .4byte 0x02327790 +_022F0750: .4byte 0x0232772C +_022F0754: .4byte 0x0231A594 +_022F0758: .4byte 0x0231A59C +_022F075C: .4byte 0x0231A5A4 +_022F0760: .4byte 0x02327764 +_022F0764: .4byte 0x0231A5AC +_022F0768: .4byte 0x0232774C +_022F076C: .4byte 0x0231A5B4 +_022F0770: .4byte 0x0231A5BC +_022F0774: .4byte 0x0231A5C4 +_022F0778: .4byte 0x02327728 +_022F077C: .4byte 0x0231A5CC +_022F0780: .4byte 0x02327778 +_022F0784: .4byte 0x02327830 +_022F0788: .4byte 0x0231A5D4 + arm_func_end ov00_022F03E4 + + arm_func_start ov00_022F078C +ov00_022F078C: @ 0x022F078C + push {r3, r4, r5, lr} + mov r4, r1 + mov r5, r0 + bl ov00_022F1010 + mov r0, r4 + bl ov00_022F24EC + ldr r1, _022F07E4 @ =0x02327748 + str r0, [r5] + str r0, [r1] + bl ov00_022F1024 + ldr r0, [r5] + cmp r0, #0 + movge r0, #1 + popge {r3, r4, r5, pc} + mov r0, r5 + mov r1, r4 + bl ov00_022F03B8 + ldr r0, _022F07E8 @ =0x02327740 + mov r1, #3 + str r1, [r0] + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022F07E4: .4byte 0x02327748 +_022F07E8: .4byte 0x02327740 + arm_func_end ov00_022F078C + + arm_func_start ov00_022F07EC +ov00_022F07EC: @ 0x022F07EC + push {r4, lr} + sub sp, sp, #0x10 + mov ip, #0x80 + mov r4, r0 + str ip, [sp] + mov ip, #0 + ldr r2, _022F0860 @ =0x023182FC + ldr r3, _022F0864 @ =0x0232788C + add r0, sp, #0xc + add r1, sp, #8 + str ip, [sp, #4] + bl ov00_022F03E4 + cmp r0, #0 + addeq sp, sp, #0x10 + moveq r0, #0 + popeq {r4, pc} + ldr r0, [sp, #0xc] + mov r1, #1 + str r1, [r0, #4] + ldr r0, [sp, #0xc] + str r4, [r0, #0x10] + ldr r0, [sp, #0xc] + ldr r1, [sp, #8] + bl ov00_022F078C + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + add sp, sp, #0x10 + pop {r4, pc} + .align 2, 0 +_022F0860: .4byte 0x023182FC +_022F0864: .4byte 0x0232788C + arm_func_end ov00_022F07EC + + arm_func_start ov00_022F0868 +ov00_022F0868: @ 0x022F0868 + push {r3, r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x1c + mov r4, r2 + mov r6, r1 + ldr r1, _022F0B14 @ =0x02327730 + lsl r7, r4, #8 + cmp r7, #0x80 + ldr r2, [r1] + movlt r7, #0x80 + mov r5, r0 + mov r0, r7 + mov r1, #4 + blx r2 + movs r8, r0 + bne _022F08BC + ldr r0, _022F0B18 @ =0x02327740 + mov r1, #1 + str r1, [r0] + add sp, sp, #0x1c + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} +_022F08BC: + add r0, sp, #0x10 + mov r1, r6 + bl ov00_022F4454 + mov r6, r0 + bl ov00_022EFA00 + ldr r1, _022F0B14 @ =0x02327730 + add r0, r0, #1 + ldr r2, [r1] + mov r1, #4 + blx r2 + movs sb, r0 + bne _022F0914 + ldr r1, _022F0B1C @ =0x02327744 + mov r0, r8 + ldr r1, [r1] + blx r1 + ldr r0, _022F0B18 @ =0x02327740 + mov r1, #1 + str r1, [r0] + add sp, sp, #0x1c + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} +_022F0914: + add r1, sp, #0x10 + mov r2, r6 + bl ov00_022EFA1C + mov r1, #0 + strb r1, [sb, r0] + add r0, sp, #0x10 + mov r1, r4 + bl ov00_022F4454 + mov r6, r0 + bl ov00_022EFA00 + ldr r1, _022F0B14 @ =0x02327730 + add r0, r0, #1 + ldr r2, [r1] + mov r1, #4 + blx r2 + movs sl, r0 + bne _022F0990 + ldr r1, _022F0B1C @ =0x02327744 + mov r0, sb + ldr r1, [r1] + blx r1 + ldr r1, _022F0B1C @ =0x02327744 + mov r0, r8 + ldr r1, [r1] + blx r1 + ldr r0, _022F0B18 @ =0x02327740 + mov r1, #1 + str r1, [r0] + add sp, sp, #0x1c + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} +_022F0990: + add r1, sp, #0x10 + mov r2, r6 + bl ov00_022EFA1C + mov r6, #0 + strb r6, [sl, r0] + str r7, [sp] + ldr r2, _022F0B20 @ =0x02318308 + add r0, sp, #0xc + add r1, sp, #8 + mov r3, r8 + str r6, [sp, #4] + bl ov00_022F03E4 + cmp r0, #0 + bne _022F0A04 + ldr r1, _022F0B1C @ =0x02327744 + mov r0, sl + ldr r1, [r1] + blx r1 + ldr r1, _022F0B1C @ =0x02327744 + mov r0, sb + ldr r1, [r1] + blx r1 + ldr r1, _022F0B1C @ =0x02327744 + mov r0, r8 + ldr r1, [r1] + blx r1 + add sp, sp, #0x1c + mov r0, r6 + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} +_022F0A04: + ldr r0, [sp, #8] + ldr r1, _022F0B24 @ =0x0231A5E4 + mov r2, sb + bl ov00_022F1678 + cmp r0, #0 + beq _022F0AC0 + ldr r0, [sp, #8] + ldr r1, _022F0B28 @ =0x0231A5EC + mov r2, sl + bl ov00_022F1678 + cmp r0, #0 + beq _022F0AC0 + ldr r0, [sp, #0xc] + mov r1, #2 + str r1, [r0, #4] + ldr r0, [sp, #0xc] + str r5, [r0, #0x10] + ldr r0, [sp, #0xc] + str sb, [r0, #0x1c] + ldr r0, [sp, #0xc] + str sl, [r0, #0x20] + ldr r0, [sp, #0xc] + str r4, [r0, #0x14] + ldr r0, [sp, #0xc] + str r8, [r0, #0x18] + ldr r0, [sp, #0xc] + ldr r1, [sp, #8] + bl ov00_022F078C + cmp r0, #0 + addne sp, sp, #0x1c + movne r0, #1 + popne {r3, r4, r5, r6, r7, r8, sb, sl, pc} + ldr r1, _022F0B1C @ =0x02327744 + mov r0, sl + ldr r1, [r1] + blx r1 + ldr r1, _022F0B1C @ =0x02327744 + mov r0, sb + ldr r1, [r1] + blx r1 + ldr r1, _022F0B1C @ =0x02327744 + mov r0, r8 + ldr r1, [r1] + blx r1 + add sp, sp, #0x1c + mov r0, r6 + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} +_022F0AC0: + ldr r1, _022F0B1C @ =0x02327744 + mov r0, sl + ldr r1, [r1] + blx r1 + ldr r1, _022F0B1C @ =0x02327744 + mov r0, sb + ldr r1, [r1] + blx r1 + ldr r1, _022F0B1C @ =0x02327744 + mov r0, r8 + ldr r1, [r1] + blx r1 + ldr r0, [sp, #0xc] + ldr r1, [sp, #8] + bl ov00_022F03B8 + ldr r0, _022F0B18 @ =0x02327740 + mov r1, #1 + str r1, [r0] + mov r0, #0 + add sp, sp, #0x1c + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022F0B14: .4byte 0x02327730 +_022F0B18: .4byte 0x02327740 +_022F0B1C: .4byte 0x02327744 +_022F0B20: .4byte 0x02318308 +_022F0B24: .4byte 0x0231A5E4 +_022F0B28: .4byte 0x0231A5EC + arm_func_end ov00_022F0868 + + arm_func_start ov00_022F0B2C +ov00_022F0B2C: @ 0x022F0B2C + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x10 + mov sb, r0 + ldr r4, [sb, #0xac] + mov r8, r1 + mov r7, r3 + cmp r2, r4 + bhs _022F0B64 + ldr r0, _022F0CDC @ =0x02327740 + mov r1, #7 + str r1, [r0] + add sp, sp, #0x10 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022F0B64: + bl ov00_020852A4 + mov r4, r0 + cmp r4, #0x20 + ble _022F0B8C + ldr r0, _022F0CDC @ =0x02327740 + mov r1, #7 + str r1, [r0] + add sp, sp, #0x10 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022F0B8C: + cmp r4, #0 + movle r6, #0 + ble _022F0BA0 + bl ov00_022EFA00 + mov r6, r0 +_022F0BA0: + ldr r1, _022F0CE0 @ =0x02327730 + add r0, r6, #1 + ldr r2, [r1] + mov r1, #4 + blx r2 + movs r5, r0 + bne _022F0BD4 + ldr r0, _022F0CDC @ =0x02327740 + mov r1, #1 + str r1, [r0] + add sp, sp, #0x10 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022F0BD4: + ldr r1, [sb, #0xac] + ldr r2, _022F0CE4 @ =0x02318314 + str r1, [sp] + add r0, sp, #0xc + add r1, sp, #8 + mov r3, r8 + str r7, [sp, #4] + bl ov00_022F03E4 + cmp r0, #0 + bne _022F0C18 + ldr r1, _022F0CE8 @ =0x02327744 + mov r0, r5 + ldr r1, [r1] + blx r1 + add sp, sp, #0x10 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022F0C18: + cmp r6, #0 + ble _022F0C50 + mov r0, r5 + mov r1, sb + mov r2, r4 + bl ov00_022EFA1C + mov r1, #0 + strb r1, [r5, r0] + ldr r0, [sp, #8] + ldr r1, _022F0CEC @ =0x0231A5F0 + mov r2, r5 + bl ov00_022F1678 + cmp r0, #0 + beq _022F0CA8 +_022F0C50: + ldr r0, [sp, #0xc] + mov r1, #3 + str r1, [r0, #4] + ldr r0, [sp, #0xc] + str r5, [r0, #0x10] + ldr r1, [sb, #0xac] + ldr r0, [sp, #0xc] + str r1, [r0, #0x14] + ldr r0, [sp, #0xc] + ldr r1, [sp, #8] + bl ov00_022F078C + cmp r0, #0 + addne sp, sp, #0x10 + movne r0, #1 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + ldr r1, _022F0CE8 @ =0x02327744 + mov r0, r5 + ldr r1, [r1] + blx r1 + add sp, sp, #0x10 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022F0CA8: + ldr r0, [sp, #0xc] + ldr r1, [sp, #8] + bl ov00_022F03B8 + ldr r1, _022F0CE8 @ =0x02327744 + mov r0, r5 + ldr r1, [r1] + blx r1 + ldr r0, _022F0CDC @ =0x02327740 + mov r1, #1 + str r1, [r0] + mov r0, #0 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022F0CDC: .4byte 0x02327740 +_022F0CE0: .4byte 0x02327730 +_022F0CE4: .4byte 0x02318314 +_022F0CE8: .4byte 0x02327744 +_022F0CEC: .4byte 0x0231A5F0 + arm_func_end ov00_022F0B2C + + arm_func_start ov00_022F0CF0 +ov00_022F0CF0: @ 0x022F0CF0 + push {r3, r4, lr} + sub sp, sp, #4 + mov r4, r1 + add r1, sp, #0 + bl ov00_022F2968 + movs r1, r0 + bmi _022F0D38 + ldr r0, [sp] + bl ov00_022F43BC + ldr r1, [r4, #0x10] + add sp, sp, #4 + str r0, [r1] + ldr r0, [r4, #0x10] + ldr r0, [r0] + cmp r0, #0 + movge r0, #1 + movlt r0, #0 + pop {r3, r4, pc} +_022F0D38: + mov r0, #0 + add sp, sp, #4 + pop {r3, r4, pc} + arm_func_end ov00_022F0CF0 + + arm_func_start ov00_022F0D44 +ov00_022F0D44: @ 0x022F0D44 + push {r3, r4, lr} + sub sp, sp, #4 + mov r4, r1 + add r1, sp, #0 + bl ov00_022F2968 + ldr r1, [r4, #0x14] + cmp r0, r1 + moveq r0, #1 + movne r0, #0 + add sp, sp, #4 + pop {r3, r4, pc} + arm_func_end ov00_022F0D44 + + arm_func_start ov00_022F0D70 +ov00_022F0D70: @ 0x022F0D70 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x18 + ldr r2, [r1, #0x14] + str r1, [sp] + mov r1, #0xb0 + mul r1, r2, r1 + mov r4, r0 + ldr r0, [sp] + mov r2, #0 + ldr r0, [r0, #0x10] + str r2, [sp, #4] + bl ov00_022F1164 + ldr r1, _022F0FF0 @ =0x0231A5FC + add r2, sp, #0x10 + mov r0, r4 + bl ov00_022F2864 + cmp r0, #0 + ble _022F0DD8 + ldr r1, [sp, #0x10] + ldrsb r0, [r1] + cmp r0, #0x30 + ldrsbeq r0, [r1, #1] + cmpeq r0, #0 + addeq sp, sp, #0x18 + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022F0DD8: + add r1, sp, #0x14 + mov r0, r4 + bl ov00_022F2968 + mov r4, r0 + cmp r4, #0 + ble _022F0FE4 + ldr r0, [sp] + mov r5, #0 + ldr r0, [r0, #0x14] + str r5, [sp, #0xc] + cmp r0, #0 + ble _022F0FE4 + str r5, [sp, #8] +_022F0E0C: + cmp r5, r4 + movge r0, #1 + strge r0, [sp, #4] + bge _022F0FE4 + ldr r0, [sp] + mov r6, #0 + ldr r1, [r0, #0x10] + ldr r0, [sp, #8] + mov r7, r5 + mov r2, r6 + str r6, [sp, #4] + cmp r5, r4 + add r8, r1, r0 + bge _022F0FBC + mov sl, r6 + mov fp, #1 +_022F0E4C: + ldr r3, [sp, #0x14] + ldrsb r0, [r3, r5] + cmp r0, #0xd + moveq r2, fp + beq _022F0FB0 + cmp r2, #0 + beq _022F0EB8 + cmp r0, #0xa + bne _022F0FAC + cmp r6, #5 + bne _022F0E9C + sub r0, r5, #1 + sub r1, r0, r7 + cmp r1, #8 + bgt _022F0FE4 + add r0, r3, r7 + bl ov00_022F43BC + cmp r0, #0 + blt _022F0FE4 + str r0, [r8, #0xac] +_022F0E9C: + cmp r6, #5 + movge r0, #1 + strge r0, [sp, #4] + movlt r0, #0 + add r5, r5, #1 + strlt r0, [sp, #4] + b _022F0FBC +_022F0EB8: + cmp r0, #9 + bne _022F0FAC + cmp r6, #5 + addls pc, pc, r6, lsl #2 + b _022F0FA4 +_022F0ECC: @ jump table + b _022F0EE4 @ case 0 + b _022F0F00 @ case 1 + b _022F0F30 @ case 2 + b _022F0F4C @ case 3 + b _022F0F68 @ case 4 + b _022F0F84 @ case 5 +_022F0EE4: + sub r2, r5, r7 + cmp r2, #0x20 + bhi _022F0FE4 + add r1, r3, r7 + mov r0, r8 + bl ov00_022F1178 + b _022F0FA4 +_022F0F00: + sub sb, r5, r7 + mov r0, sb + bl ov00_022EF9F4 + cmp r0, #0x66 + bhi _022F0FE4 + ldr r0, [sp, #0x14] + mov r2, sb + add r1, r0, r7 + add r0, r8, #0x22 + bl ov00_022EFB14 + strh sl, [r8, #0x86] + b _022F0FA4 +_022F0F30: + sub r2, r5, r7 + cmp r2, #0xa + bhi _022F0FE4 + add r1, r3, r7 + add r0, r8, #0x88 + bl ov00_022F1178 + b _022F0FA4 +_022F0F4C: + sub r2, r5, r7 + cmp r2, #0xa + bhi _022F0FE4 + add r1, r3, r7 + add r0, r8, #0x93 + bl ov00_022F1178 + b _022F0FA4 +_022F0F68: + sub r2, r5, r7 + cmp r2, #0xa + bhi _022F0FE4 + add r1, r3, r7 + add r0, r8, #0x9e + bl ov00_022F1178 + b _022F0FA4 +_022F0F84: + sub r1, r5, r7 + cmp r1, #8 + bgt _022F0FE4 + add r0, r3, r7 + bl ov00_022F43BC + cmp r0, #0 + blt _022F0FE4 + str r0, [r8, #0xac] +_022F0FA4: + add r6, r6, #1 + add r7, r5, #1 +_022F0FAC: + mov r2, #0 +_022F0FB0: + add r5, r5, #1 + cmp r5, r4 + blt _022F0E4C +_022F0FBC: + ldr r0, [sp] + ldr r1, [r0, #0x14] + ldr r0, [sp, #0xc] + add r0, r0, #1 + str r0, [sp, #0xc] + cmp r0, r1 + ldr r0, [sp, #8] + add r0, r0, #0xb0 + str r0, [sp, #8] + blt _022F0E0C +_022F0FE4: + ldr r0, [sp, #4] + add sp, sp, #0x18 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022F0FF0: .4byte 0x0231A5FC + arm_func_end ov00_022F0D70 + + arm_func_start ov00_022F0FF4 +ov00_022F0FF4: @ 0x022F0FF4 + push {r3, lr} + ldr r0, _022F1008 @ =0x02327928 + bl FUN_0207A030 + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_022F1008: .4byte 0x02327928 + arm_func_end ov00_022F0FF4 + + arm_func_start ov00_022F100C +ov00_022F100C: @ 0x022F100C + bx lr + arm_func_end ov00_022F100C + + arm_func_start ov00_022F1010 +ov00_022F1010: @ 0x022F1010 + ldr ip, _022F101C @ =FUN_0207A048 + ldr r0, _022F1020 @ =0x02327928 + bx ip + .align 2, 0 +_022F101C: .4byte FUN_0207A048 +_022F1020: .4byte 0x02327928 + arm_func_end ov00_022F1010 + + arm_func_start ov00_022F1024 +ov00_022F1024: @ 0x022F1024 + ldr ip, _022F1030 @ =FUN_0207A0CC + ldr r0, _022F1034 @ =0x02327928 + bx ip + .align 2, 0 +_022F1030: .4byte FUN_0207A0CC +_022F1034: .4byte 0x02327928 + arm_func_end ov00_022F1024 + + arm_func_start ov00_022F1038 +ov00_022F1038: @ 0x022F1038 + push {r3, lr} + ldr r0, _022F1058 @ =0x02327910 + bl FUN_0207A030 + ldr r0, _022F105C @ =0x0232790C + mov r1, #0 + str r1, [r0] + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_022F1058: .4byte 0x02327910 +_022F105C: .4byte 0x0232790C + arm_func_end ov00_022F1038 + + arm_func_start ov00_022F1060 +ov00_022F1060: @ 0x022F1060 + bx lr + arm_func_end ov00_022F1060 + + arm_func_start ov00_022F1064 +ov00_022F1064: @ 0x022F1064 + push {r4, lr} + ldr r0, _022F10A4 @ =0x02327910 + bl FUN_0207A048 + ldr r0, _022F10A8 @ =0x0232790C + ldr r0, [r0] + cmp r0, #0 + moveq r4, #1 + movne r4, #0 + cmp r4, #0 + ldrne r0, _022F10A8 @ =0x0232790C + movne r1, #1 + strne r1, [r0] + ldr r0, _022F10A4 @ =0x02327910 + bl FUN_0207A0CC + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_022F10A4: .4byte 0x02327910 +_022F10A8: .4byte 0x0232790C + arm_func_end ov00_022F1064 + + arm_func_start ov00_022F10AC +ov00_022F10AC: @ 0x022F10AC + push {r3, lr} + ldr r0, _022F10D0 @ =0x02327910 + bl FUN_0207A048 + ldr r1, _022F10D4 @ =0x0232790C + mov r2, #0 + ldr r0, _022F10D0 @ =0x02327910 + str r2, [r1] + bl FUN_0207A0CC + pop {r3, pc} + .align 2, 0 +_022F10D0: .4byte 0x02327910 +_022F10D4: .4byte 0x0232790C + arm_func_end ov00_022F10AC + + arm_func_start ov00_022F10D8 +ov00_022F10D8: @ 0x022F10D8 + ldr ip, _022F10E8 @ =FUN_02079DE0 + mov r1, #0 + mov r2, r1 + bx ip + .align 2, 0 +_022F10E8: .4byte FUN_02079DE0 + arm_func_end ov00_022F10D8 + + arm_func_start ov00_022F10EC +ov00_022F10EC: @ 0x022F10EC + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x14 + mov sb, r0 + add r0, sp, #0 + bl FUN_0207B9EC + mov r6, #0 + add r7, sp, #0 + mov r8, r6 + add r5, sp, #6 + mov r4, #2 +_022F1114: + ldrb r1, [r7], #1 + mov r2, r4 + add r0, r5, r8 + bl ov00_022F1280 + add r6, r6, #1 + cmp r6, #6 + add r8, r8, #2 + blt _022F1114 + add r1, sp, #6 + mov r0, sb + mov r2, #0xc + bl ov00_022EFA1C + add sp, sp, #0x14 + pop {r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_022F10EC + + arm_func_start ov00_020852A4 +ov00_020852A4: @ 0x022F114C + ldr ip, _022F1154 @ =FUN_020852A4 + bx ip + .align 2, 0 +_022F1154: .4byte FUN_020852A4 + arm_func_end ov00_020852A4 + + arm_func_start ov00_020852F8 +ov00_020852F8: @ 0x022F1158 + ldr ip, _022F1160 @ =FUN_020852F8 + bx ip + .align 2, 0 +_022F1160: .4byte FUN_020852F8 + arm_func_end ov00_020852F8 + + arm_func_start ov00_022F1164 +ov00_022F1164: @ 0x022F1164 + ldr ip, _022F1174 @ =FUN_0207C40C + mov r2, r1 + mov r1, #0 + bx ip + .align 2, 0 +_022F1174: .4byte FUN_0207C40C + arm_func_end ov00_022F1164 + + arm_func_start ov00_022F1178 +ov00_022F1178: @ 0x022F1178 + ldr ip, _022F118C @ =FUN_0207C4C8 + mov r3, r0 + mov r0, r1 + mov r1, r3 + bx ip + .align 2, 0 +_022F118C: .4byte FUN_0207C4C8 + arm_func_end ov00_022F1178 + + arm_func_start ov00_022F43BC +ov00_022F43BC: @ 0x022F1190 + ldr ip, _022F1198 @ =ov00_022F43BC + bx ip + .align 2, 0 +_022F1198: .4byte ov00_022F43BC + arm_func_end ov00_022F43BC + + arm_func_start ov00_022F4454 +ov00_022F4454: @ 0x022F119C + ldr ip, _022F11A4 @ =ov00_022F4454 + bx ip + .align 2, 0 +_022F11A4: .4byte ov00_022F4454 + arm_func_end ov00_022F4454 + + arm_func_start ov00_022F11A8 +ov00_022F11A8: @ 0x022F11A8 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov r8, r2 + ldr r4, _022F1274 @ =0x01634578 + ldr r2, _022F1278 @ =0x5D8A0000 + mov sb, r1 + cmp r8, r4 + mov sl, r0 + mov fp, r3 + mov r5, #0 + cmpeq sb, r2 + subhs r0, r5, #1 + pophs {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r4, r5 + mov r0, r5 +_022F11E0: + ldr r1, _022F127C @ =0x02318324 + add r1, r1, r4, lsl #3 + ldr r6, [r1, #4] + ldr r1, _022F127C @ =0x02318324 + cmp r8, r6 + ldr r7, [r1, r4, lsl #3] + cmpeq sb, r7 + blo _022F1238 + mov r0, sb + mov r1, r8 + mov r2, r7 + mov r3, r6 + bl FUN_0208FE3C + umull r3, r2, r0, r7 + mla r2, r0, r6, r2 + add r0, r0, #0x30 + strb r0, [sl, r5] + subs sb, sb, r3 + sbc r8, r8, r2 + mov r0, #1 + add r5, r5, #1 + b _022F1258 +_022F1238: + cmp r0, #0 + bne _022F124C + rsb r1, r4, #0x11 + cmp r1, fp + bgt _022F1258 +_022F124C: + mov r1, #0x30 + strb r1, [sl, r5] + add r5, r5, #1 +_022F1258: + add r4, r4, #1 + cmp r4, #0x10 + blt _022F11E0 + adds r0, sb, #0x30 + strb r0, [sl, r5] + add r0, r5, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022F1274: .4byte 0x01634578 +_022F1278: .4byte 0x5D8A0000 +_022F127C: .4byte 0x02318324 + arm_func_end ov00_022F11A8 + + arm_func_start ov00_022F1280 +ov00_022F1280: @ 0x022F1280 + push {r3, lr} + mov lr, #0 + cmp r2, #8 + subgt r0, lr, #1 + popgt {r3, pc} + cmp r2, #1 + mov ip, #1 + blt _022F12D0 +_022F12A0: + sub r3, r2, ip + lsl r3, r3, #2 + lsr r3, r1, r3 + and r3, r3, #0xf + cmp r3, #0xa + addlo r3, r3, #0x30 + addhs r3, r3, #0x57 + add ip, ip, #1 + strb r3, [r0, lr] + add lr, lr, #1 + cmp ip, r2 + ble _022F12A0 +_022F12D0: + mov r0, lr + pop {r3, pc} + arm_func_end ov00_022F1280 + + arm_func_start ov00_022F12D8 +ov00_022F12D8: @ 0x022F12D8 + push {r4, lr} + ldr r3, _022F139C @ =0x02327940 + mov ip, #0 + str r0, [r3, #8] + str r1, [r3, #0xc] + str ip, [r3, #4] + str ip, [r3, #0x1c] + str ip, [r3, #0x20] + str ip, [r3, #0x10] + mov r4, r2 + str ip, [r3, #0x14] + bl ov00_022F18F8 + cmp r0, #0 + bne _022F1324 + ldr r0, _022F139C @ =0x02327940 + mov r1, #9 + str r1, [r0, #4] + mov r0, #0 + pop {r4, pc} +_022F1324: + ldr r1, _022F139C @ =0x02327940 + mov r0, #0x2000 + ldr r2, [r1, #8] + mov r1, #8 + blx r2 + movs r1, r0 + ldr r0, _022F139C @ =0x02327940 + str r1, [r0, #0x18] + bne _022F135C + mov r1, #1 + str r1, [r0, #4] + bl ov00_022F1910 + mov r0, #0 + pop {r4, pc} +_022F135C: + mov r0, r4 + bl ov00_022F193C + cmp r0, #0 + ldrne r1, _022F139C @ =0x02327940 + movne r0, #1 + strne r0, [r1] + popne {r4, pc} + ldr r1, _022F139C @ =0x02327940 + mov r0, #9 + str r0, [r1, #4] + ldr r0, [r1, #0x18] + ldr r1, [r1, #0xc] + blx r1 + bl ov00_022F1910 + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_022F139C: .4byte 0x02327940 + arm_func_end ov00_022F12D8 + + arm_func_start FUN_022F13A0 +FUN_022F13A0: @ 0x022F13A0 + push {r3, lr} + sub sp, sp, #8 + mov r2, r0 + mov ip, #0x800 + ldr r0, _022F13DC @ =0x02327964 + ldr r1, _022F13E0 @ =ov00_022F13E8 + ldr r3, _022F13E4 @ =0x02328224 + str ip, [sp] + mov ip, #0x10 + str ip, [sp, #4] + bl FUN_02079560 + ldr r0, _022F13DC @ =0x02327964 + bl FUN_02079940 + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_022F13DC: .4byte 0x02327964 +_022F13E0: .4byte ov00_022F13E8 +_022F13E4: .4byte 0x02328224 + arm_func_end FUN_022F13A0 + + arm_func_start ov00_022F13E8 +ov00_022F13E8: @ 0x022F13E8 + push {r4, lr} + mov r4, r0 + bl ov00_022F25F4 + bl ov00_022F19B4 + ldr r1, _022F1420 @ =0x02327940 + ldr r0, [r1, #0x18] + ldr r1, [r1, #0xc] + blx r1 + bl ov00_022F1910 + ldr r0, _022F1420 @ =0x02327940 + mov r1, #0 + str r1, [r0] + blx r4 + pop {r4, pc} + .align 2, 0 +_022F1420: .4byte 0x02327940 + arm_func_end ov00_022F13E8 + + arm_func_start ov00_022F1424 +ov00_022F1424: @ 0x022F1424 + push {r4, r5, r6, r7, r8, sb, sl, lr} + mov sb, r0 + ldr sl, [sb] + mov r8, r1 + mov r7, r2 + mov r6, r3 + cmp sl, #0 + mov r4, #0 + beq _022F14A0 + ldr r1, [sl, #8] + mov r0, r8 + mov r5, sl + bl ov00_022F4510 + cmp r0, #0 + beq _022F149C + ldr r5, [sl, #4] + ldr r0, [sb] + cmp r5, r0 + beq _022F14A0 +_022F1470: + ldr r1, [r5, #8] + mov r0, r8 + bl ov00_022F4510 + cmp r0, #0 + moveq r4, #1 + beq _022F14A0 + ldr r5, [r5, #4] + ldr r0, [sb] + cmp r5, r0 + bne _022F1470 + b _022F14A0 +_022F149C: + mov r4, #1 +_022F14A0: + cmp r4, #0 + strne r7, [r5, #0xc] + bne _022F152C + ldr r1, _022F1534 @ =0x02327948 + mov r0, r6 + ldr r2, [r1] + mov r1, #4 + blx r2 + cmp r0, #0 + bne _022F14DC + ldr r0, _022F1538 @ =0x02327944 + mov r1, #1 + str r1, [r0] + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022F14DC: + str r8, [r0, #8] + str r7, [r0, #0xc] + mov r1, #0 + str r1, [r0, #0x10] + str r1, [r0, #0x14] + ldr r1, [sb] + cmp r1, #0 + streq r0, [r0, #4] + streq r0, [r0] + streq r0, [sb] + beq _022F152C + ldr r1, [r1] + str r1, [r0] + ldr r1, [sb] + str r1, [r0, #4] + ldr r1, [sb] + ldr r1, [r1] + str r0, [r1, #4] + ldr r1, [sb] + str r0, [r1] +_022F152C: + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022F1534: .4byte 0x02327948 +_022F1538: .4byte 0x02327944 + arm_func_end ov00_022F1424 + + arm_func_start ov00_022F153C +ov00_022F153C: @ 0x022F153C + ldr r3, [r0] + cmp r3, #0 + beq _022F1578 + ldr r2, [r3] + cmp r3, r2 + moveq r1, #0 + streq r1, [r0] + beq _022F1578 + ldr r1, [r3, #4] + str r1, [r2, #4] + ldr r2, [r3] + ldr r1, [r3, #4] + str r2, [r1] + ldr r1, [r3, #4] + str r1, [r0] +_022F1578: + mov r0, r3 + bx lr + arm_func_end ov00_022F153C + + arm_func_start ov00_022F1580 +ov00_022F1580: @ 0x022F1580 + add r0, r0, #1 + and r0, r0, #0xff + cmp r0, #0x7b + moveq r0, #0x30 + beq _022F15A8 + cmp r0, #0x5b + moveq r0, #0x61 + beq _022F15A8 + cmp r0, #0x3a + moveq r0, #0x41 +_022F15A8: + lsl r0, r0, #0x18 + asr r0, r0, #0x18 + bx lr + arm_func_end ov00_022F1580 + + arm_func_start ov00_022F15B4 +ov00_022F15B4: @ 0x022F15B4 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sl, r0 + mov sb, r1 + mov r8, r2 + mov r0, sb + mov r1, r8 + add r2, sl, #0x46 + mov r3, #0x12 + bl ov00_022F4604 + cmp r0, #0 + movlt r0, #1 + poplt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r6, _022F1650 @ =0x023183B7 + mov fp, #0x13 + mov r4, #0x12 +_022F15F0: + add r7, sl, fp + ldrsb r5, [r7, #0x44] +_022F15F8: + and r0, r5, #0xff + bl ov00_022F1580 + mov r5, r0 + strb r5, [r7, #0x44] + ldrsb r0, [r6] + cmp r5, r0 + beq _022F1638 + mov r0, sb + mov r1, r8 + mov r3, r4 + add r2, sl, #0x46 + bl ov00_022F4604 + cmp r0, #0 + bge _022F15F8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022F1638: + sub fp, fp, #1 + cmp fp, #2 + sub r6, r6, #1 + bge _022F15F0 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022F1650: .4byte 0x023183B7 + arm_func_end ov00_022F15B4 + + arm_func_start ov00_022F1654 +ov00_022F1654: @ 0x022F1654 + push {r3, lr} + ldr r3, [r0] + cmp r3, #0 + movne r0, #0 + popne {r3, pc} + add r0, r0, #0x34 + mov r3, #0x18 + bl ov00_022F1424 + pop {r3, pc} + arm_func_end ov00_022F1654 + + arm_func_start ov00_022F1678 +ov00_022F1678: @ 0x022F1678 + push {r4, r5, r6, r7, r8, lr} + mov r8, r0 + ldr r0, [r8] + mov r7, r1 + mov r6, r2 + mov r5, #0 + cmp r0, #0 + movne r0, r5 + popne {r4, r5, r6, r7, r8, pc} + mov r0, r6 + bl ov00_020852A4 + mov r4, r0 + mov r0, r8 + mov r1, r6 + mov r2, r4 + bl ov00_022F15B4 + cmp r0, #0 + beq _022F16E4 + mov r1, r7 + mov r2, r6 + add r0, r8, #0x38 + mov r3, #0x18 + bl ov00_022F1424 + movs r5, r0 + ldrne r0, [r8, #0x38] + ldrne r0, [r0] + strne r4, [r0, #0x10] +_022F16E4: + mov r0, r5 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022F1678 + + arm_func_start ov00_022F16EC +ov00_022F16EC: @ 0x022F16EC + ldr r3, [r0] + cmp r3, #0 + movne r0, #0 + streq r1, [r0, #0x1c] + streq r2, [r0, #0x18] + moveq r0, #1 + bx lr + arm_func_end ov00_022F16EC + + arm_func_start ov00_022F1708 +ov00_022F1708: @ 0x022F1708 + push {r3, r4, r5, lr} + ldr r1, _022F17B0 @ =0x02327948 + mov r4, r0 + ldr r2, [r1] + mov r0, #0x14 + mov r1, #4 + mvn r5, #0 + blx r2 + cmp r0, #0 + beq _022F17A8 + ldr r1, _022F17B4 @ =0x02327960 + ldr r2, [r1] + cmp r2, #0 + streq r0, [r0] + streq r0, [r0, #4] + streq r0, [r1] + beq _022F1770 + ldr r2, [r2] + str r2, [r0] + ldr r2, [r1] + str r2, [r0, #4] + ldr r2, [r1] + ldr r2, [r2] + str r0, [r2, #4] + ldr r1, [r1] + str r0, [r1] +_022F1770: + ldr r1, _022F17B8 @ =0x0232795C + mvn r2, #0 + ldr ip, [r1] + ldr r3, [r1] + add r3, r3, #1 + str r3, [r1] + str ip, [r0, #8] + str r4, [r0, #0xc] + str r2, [r0, #0x10] + ldr r2, [r1] + ldr r5, [r0, #8] + cmp r2, #0 + movlt r0, #0 + strlt r0, [r1] +_022F17A8: + mov r0, r5 + pop {r3, r4, r5, pc} + .align 2, 0 +_022F17B0: .4byte 0x02327948 +_022F17B4: .4byte 0x02327960 +_022F17B8: .4byte 0x0232795C + arm_func_end ov00_022F1708 + + arm_func_start ov00_022F17BC +ov00_022F17BC: @ 0x022F17BC + ldr r1, _022F1810 @ =0x02327960 + mov r2, #0 + ldr r3, [r1] + cmp r3, #0 + beq _022F1808 + ldr r1, [r3, #8] + cmp r1, r0 + moveq r2, r3 + beq _022F1808 + ldr ip, [r3, #4] + cmp ip, r3 + beq _022F1808 +_022F17EC: + ldr r1, [ip, #8] + cmp r1, r0 + moveq r2, ip + beq _022F1808 + ldr ip, [ip, #4] + cmp ip, r3 + bne _022F17EC +_022F1808: + mov r0, r2 + bx lr + .align 2, 0 +_022F1810: .4byte 0x02327960 + arm_func_end ov00_022F17BC + + arm_func_start ov00_022F1814 +ov00_022F1814: @ 0x022F1814 + push {r3, r4, r5, r6, r7, lr} + mov r5, #0 + bl ov00_022F17BC + movs r4, r0 + beq _022F18A4 + ldr r0, _022F18AC @ =0x02327960 + ldr r2, [r0] + ldr r1, [r2] + cmp r2, r1 + beq _022F1864 + ldm r4, {r1, r2} + str r2, [r1, #4] + ldr r2, [r4] + ldr r1, [r4, #4] + str r2, [r1] + ldr r1, [r0] + cmp r1, r4 + ldreq r1, [r4, #4] + streq r1, [r0] + b _022F186C +_022F1864: + mov r1, r5 + str r1, [r0] +_022F186C: + ldr r0, [r4, #0xc] + ldr r5, [r0, #0x3c] + ldr r6, [r0, #0x30] + ldr r7, [r0, #0x2c] + bl ov00_022F2474 + ldr r1, _022F18B0 @ =0x0232794C + mov r0, r4 + ldr r1, [r1] + blx r1 + mov r1, r6 + mov r2, r7 + mov r0, #8 + blx r5 + mov r5, #1 +_022F18A4: + mov r0, r5 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022F18AC: .4byte 0x02327960 +_022F18B0: .4byte 0x0232794C + arm_func_end ov00_022F1814 + + arm_func_start ov00_022F18B4 +ov00_022F18B4: @ 0x022F18B4 + push {r4, lr} + ldr r4, _022F18E0 @ =0x02327960 + ldr r0, [r4] + cmp r0, #0 + popeq {r4, pc} +_022F18C8: + ldr r0, [r0, #8] + bl ov00_022F1814 + ldr r0, [r4] + cmp r0, #0 + bne _022F18C8 + pop {r4, pc} + .align 2, 0 +_022F18E0: .4byte 0x02327960 + arm_func_end ov00_022F18B4 + + arm_func_start ov00_022F18E4 +ov00_022F18E4: @ 0x022F18E4 + ldr ip, _022F18F0 @ =ov00_022F153C + ldr r0, _022F18F4 @ =0x02327960 + bx ip + .align 2, 0 +_022F18F0: .4byte ov00_022F153C +_022F18F4: .4byte 0x02327960 + arm_func_end ov00_022F18E4 + + arm_func_start ov00_022F18F8 +ov00_022F18F8: @ 0x022F18F8 + push {r3, lr} + ldr r0, _022F190C @ =0x02328228 + bl FUN_0207A030 + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_022F190C: .4byte 0x02328228 + arm_func_end ov00_022F18F8 + + arm_func_start ov00_022F1910 +ov00_022F1910: @ 0x022F1910 + bx lr + arm_func_end ov00_022F1910 + + arm_func_start ov00_022F1914 +ov00_022F1914: @ 0x022F1914 + ldr ip, _022F1920 @ =FUN_0207A048 + ldr r0, _022F1924 @ =0x02328228 + bx ip + .align 2, 0 +_022F1920: .4byte FUN_0207A048 +_022F1924: .4byte 0x02328228 + arm_func_end ov00_022F1914 + + arm_func_start ov00_022F1928 +ov00_022F1928: @ 0x022F1928 + ldr ip, _022F1934 @ =FUN_0207A0CC + ldr r0, _022F1938 @ =0x02328228 + bx ip + .align 2, 0 +_022F1934: .4byte FUN_0207A0CC +_022F1938: .4byte 0x02328228 + arm_func_end ov00_022F1928 + + arm_func_start ov00_022F193C +ov00_022F193C: @ 0x022F193C + push {r3, r4, r5, lr} + sub sp, sp, #8 + mov r5, r0 + mov r4, r1 + bl FUN_02079550 + cmp r0, #0 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldr r0, _022F19A4 @ =0x02328240 + ldr r1, _022F19A8 @ =0x02328224 + mov r2, #1 + bl FUN_02079DB8 + mov r0, #0x2000 + str r0, [sp] + ldr r0, _022F19AC @ =0x02328260 + ldr r1, _022F19B0 @ =ov00_022F2EDC + add r3, r4, #0x2000 + mov r2, #0 + str r5, [sp, #4] + bl FUN_02079560 + ldr r0, _022F19AC @ =0x02328260 + bl FUN_02079940 + mov r0, #1 + add sp, sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_022F19A4: .4byte 0x02328240 +_022F19A8: .4byte 0x02328224 +_022F19AC: .4byte 0x02328260 +_022F19B0: .4byte ov00_022F2EDC + arm_func_end ov00_022F193C + + arm_func_start ov00_022F19B4 +ov00_022F19B4: @ 0x022F19B4 + push {r3, lr} + ldr r0, _022F19D4 @ =0x02327954 + mov r1, #1 + str r1, [r0] + bl ov00_022F19F8 + ldr r0, _022F19D8 @ =0x02328260 + bl FUN_02079800 + pop {r3, pc} + .align 2, 0 +_022F19D4: .4byte 0x02327954 +_022F19D8: .4byte 0x02328260 + arm_func_end ov00_022F19B4 + + arm_func_start ov00_022F19DC +ov00_022F19DC: @ 0x022F19DC + push {r3, lr} + ldr r0, _022F19F4 @ =0x02328240 + add r1, sp, #0 + mov r2, #1 + bl FUN_02079E74 + pop {r3, pc} + .align 2, 0 +_022F19F4: .4byte 0x02328240 + arm_func_end ov00_022F19DC + + arm_func_start ov00_022F19F8 +ov00_022F19F8: @ 0x022F19F8 + ldr ip, _022F1A0C @ =FUN_02079DE0 + mov r1, #0 + ldr r0, _022F1A10 @ =0x02328240 + mov r2, r1 + bx ip + .align 2, 0 +_022F1A0C: .4byte FUN_02079DE0 +_022F1A10: .4byte 0x02328240 + arm_func_end ov00_022F19F8 + + arm_func_start ov00_022F1A14 +ov00_022F1A14: @ 0x022F1A14 + push {r3, lr} + cmp r1, #0x400 + bge _022F1A30 + mov r0, #0 + str r0, [r2] + str r1, [r3] + pop {r3, pc} +_022F1A30: + sub ip, r1, #0x400 + asrs ip, ip, #9 + sub lr, ip, #1 + ldr ip, [r0, #0x1c] + beq _022F1A54 +_022F1A44: + cmp lr, #0 + sub lr, lr, #1 + ldr ip, [ip] + bne _022F1A44 +_022F1A54: + ldr r0, _022F1A6C @ =0x000001FF + sub r1, r1, #0x400 + str ip, [r2] + and r0, r1, r0 + str r0, [r3] + pop {r3, pc} + .align 2, 0 +_022F1A6C: .4byte 0x000001FF + arm_func_end ov00_022F1A14 + + arm_func_start ov00_022F1A70 +ov00_022F1A70: @ 0x022F1A70 + ldr r3, [r1] + cmp r3, #0 + bne _022F1AB0 + ldr r3, [r2] + cmp r3, #0x400 + bge _022F1A9C + add r1, r3, #1 + str r1, [r2] + add r0, r0, r3 + ldrsb r0, [r0, #0x20] + bx lr +_022F1A9C: + mov r3, #0 + str r3, [r2] + ldr r0, [r0, #0x1c] + str r0, [r1] + b _022F1AD0 +_022F1AB0: + ldr r0, [r2] + cmp r0, #0x200 + bne _022F1AD0 + mov r0, #0 + str r0, [r2] + ldr r0, [r1] + ldr r0, [r0] + str r0, [r1] +_022F1AD0: + ldr r3, [r2] + add r0, r3, #1 + str r0, [r2] + ldr r0, [r1] + add r0, r0, r3 + ldrsb r0, [r0, #4] + bx lr + arm_func_end ov00_022F1A70 + + arm_func_start ov00_022F1AEC +ov00_022F1AEC: @ 0x022F1AEC + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #8 + mov r6, #0 + movs r7, r3 + mov sl, r0 + subne r0, r6, #1 + mov sb, r1 + mov r8, r2 + strne r0, [r7] + cmp sb, r8 + bge _022F1BB0 + add r2, sp, #4 + add r3, sp, #0 + mov r0, sl + mov r1, sb + bl ov00_022F1A14 + cmp sb, r8 + bge _022F1BB0 + mov fp, #1 + add r5, sp, #4 + add r4, sp, #0 +_022F1B40: + mov r0, sl + mov r1, r5 + mov r2, r4 + bl ov00_022F1A70 + cmp r0, #0x3a + bne _022F1B6C + cmp r7, #0 + beq _022F1B6C + ldr r1, [r7] + cmp r1, #0 + strlt sb, [r7] +_022F1B6C: + cmp r6, #0 + bne _022F1B80 + cmp r0, #0xd + moveq r6, fp + b _022F1BA4 +_022F1B80: + cmp r0, #0xa + bne _022F1BA0 + sub r0, r8, #1 + cmp sb, r0 + moveq r0, #0 + add sp, sp, #8 + addne r0, sb, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022F1BA0: + mov r6, #0 +_022F1BA4: + add sb, sb, #1 + cmp sb, r8 + blt _022F1B40 +_022F1BB0: + mvn r0, #0 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022F1AEC + + arm_func_start ov00_022F1BBC +ov00_022F1BBC: @ 0x022F1BBC + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + mov r7, r1 + mov r6, r2 + mov r8, r0 + cmp r7, r6 + bge _022F1C20 + add r2, sp, #4 + add r3, sp, #0 + bl ov00_022F1A14 + cmp r7, r6 + bge _022F1C20 + add r5, sp, #4 + add r4, sp, #0 +_022F1BF4: + mov r0, r8 + mov r1, r5 + mov r2, r4 + bl ov00_022F1A70 + cmp r0, #0x20 + addne sp, sp, #8 + movne r0, r7 + popne {r4, r5, r6, r7, r8, pc} + add r7, r7, #1 + cmp r7, r6 + blt _022F1BF4 +_022F1C20: + mvn r0, #0 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022F1BBC + + arm_func_start ov00_022F1C2C +ov00_022F1C2C: @ 0x022F1C2C + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #8 + mov sb, r1 + mov r4, r2 + mov sl, r0 + mov r8, r3 + cmp sb, r4 + ldr r7, [sp, #0x30] + bge _022F1CF0 + add r2, sp, #4 + add r3, sp, #0 + bl ov00_022F1A14 + add r1, sp, #4 + add r2, sp, #0 + mov r0, sl + bl ov00_022F1A70 + sub r6, r4, #1 + add r5, sp, #4 + add r4, sp, #0 + mov fp, #0 + b _022F1CB4 +_022F1C80: + cmp r2, #0 + cmpne r2, #0x20 + cmpne r2, r7 + cmpne sb, r6 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, sl + mov r1, r5 + mov r2, r4 + bl ov00_022F1A70 + add sb, sb, #1 + add r8, r8, #1 +_022F1CB4: + ldrsb r2, [r8] + mov r1, fp + cmp r2, #0x41 + blt _022F1CCC + cmp r2, #0x5a + movle r1, #1 +_022F1CCC: + cmp r1, #0 + addne r1, r2, #0x20 + moveq r1, r2 + cmp r0, #0x41 + blt _022F1CE8 + cmp r0, #0x5a + addle r0, r0, #0x20 +_022F1CE8: + cmp r0, r1 + beq _022F1C80 +_022F1CF0: + mvn r0, #0 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022F1C2C + + arm_func_start ov00_022F1CFC +ov00_022F1CFC: @ 0x022F1CFC + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r4, r0 + mov r7, r2 + mov r6, r3 + ldr r0, [r4] + add r2, r7, r6 + mov r8, r1 + cmp r2, r0 + bgt _022F1DDC + cmp r6, #0 + beq _022F1DD4 + cmp r7, #0x400 + bge _022F1D5C + rsb r5, r7, #0x400 + cmp r6, r5 + movle r5, r6 + add r1, r4, #0x20 + mov r0, r8 + mov r2, r5 + add r1, r1, r7 + bl ov00_022F2C48 + add r7, r7, r5 + sub r6, r6, r5 + add r8, r8, r5 +_022F1D5C: + cmp r6, #0 + beq _022F1DD4 + sub r2, r7, #0x400 + ldr r0, _022F1DE4 @ =0x000001FF + asrs r1, r2, #9 + and r7, r2, r0 + sub r0, r1, #1 + ldr r4, [r4, #0x1c] + beq _022F1D90 +_022F1D80: + cmp r0, #0 + sub r0, r0, #1 + ldr r4, [r4] + bne _022F1D80 +_022F1D90: + cmp r6, #0 + beq _022F1DD4 + ldr sb, _022F1DE4 @ =0x000001FF +_022F1D9C: + rsb r5, r7, #0x200 + cmp r6, r5 + movle r5, r6 + add r1, r4, #4 + mov r0, r8 + mov r2, r5 + add r1, r1, r7 + bl ov00_022F2C48 + add r0, r7, r5 + and r7, r0, sb + subs r6, r6, r5 + add r8, r8, r5 + ldr r4, [r4] + bne _022F1D9C +_022F1DD4: + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022F1DDC: + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022F1DE4: .4byte 0x000001FF + arm_func_end ov00_022F1CFC + + arm_func_start ov00_022F1DE8 +ov00_022F1DE8: @ 0x022F1DE8 + ldr r0, [r0, #0xc] + cmp r0, r1 + movls r0, #1 + movhi r0, #0 + bx lr + arm_func_end ov00_022F1DE8 + + arm_func_start ov00_022F1DFC +ov00_022F1DFC: @ 0x022F1DFC + push {r3, lr} + ldr ip, [r0, #0x30] + mov lr, r2 + str r3, [sp] + ldr r2, [ip, #0x18] + ldr r3, [ip, #0xc] + add r2, r2, lr + sub r3, r3, lr + bl ov00_022F2B00 + pop {r3, pc} + arm_func_end ov00_022F1DFC + + arm_func_start ov00_022F1E24 +ov00_022F1E24: @ 0x022F1E24 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #4 + mov r8, r0 + ldr r4, [r8, #0x30] + mov r6, r2 + mov r7, r1 + mov r0, r4 + mov r1, r6 + mov r5, r3 + bl ov00_022F1DE8 + cmp r0, #0 + addne sp, sp, #4 + ldrne r0, _022F1E90 @ =0xFFFFFC15 + popne {r3, r4, r5, r6, r7, r8, pc} + ldr r0, [r4, #0xc] + ldr r1, [sp, #0x20] + sub r3, r0, r6 + str r1, [sp] + ldr r2, [r4, #0x18] + cmp r5, r3 + movle r3, r5 + mov r0, r8 + mov r1, r7 + add r2, r2, r6 + bl ov00_022F2B00 + add sp, sp, #4 + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022F1E90: .4byte 0xFFFFFC15 + arm_func_end ov00_022F1E24 + + arm_func_start ov00_022F1E94 +ov00_022F1E94: @ 0x022F1E94 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov fp, r0 + movs r0, r1 + cmpne r0, #1 + str r1, [sp] + mov r5, r2 + mov r4, r3 + mov r7, #0 + cmpne r0, #2 + beq _022F1ECC + ldr r0, _022F23DC @ =0x02327944 + mov r1, #0xb + str r1, [r0] + b _022F2358 +_022F1ECC: + cmp r4, #0 + bne _022F1EE4 + ldr r0, _022F23DC @ =0x02327944 + mov r1, #0xb + str r1, [r0] + b _022F2358 +_022F1EE4: + ldr r1, _022F23E0 @ =0x02327948 + mov r0, #0x58 + ldr r2, [r1] + mov r1, #4 + blx r2 + movs r7, r0 + bne _022F1F10 + ldr r0, _022F23DC @ =0x02327944 + mov r1, #1 + str r1, [r0] + b _022F2358 +_022F1F10: + mov r1, #0x58 + bl ov00_022F2C34 + ldr r1, _022F23E0 @ =0x02327948 + mov r0, #0x420 + ldr r2, [r1] + mov r1, #4 + blx r2 + str r0, [r7, #0x30] + cmp r0, #0 + bne _022F1F48 + ldr r0, _022F23DC @ =0x02327944 + mov r1, #1 + str r1, [r0] + b _022F2358 +_022F1F48: + mov r1, #0x420 + bl ov00_022F2C34 + ldr r1, [r7, #0x30] + mov r0, fp + str r5, [r1, #0x18] + ldr r1, [r7, #0x30] + str r4, [r1, #0xc] + bl ov00_020852A4 + mov r4, r0 + cmp r4, #7 + bgt _022F1F84 + ldr r0, _022F23DC @ =0x02327944 + mov r1, #4 + str r1, [r0] + b _022F2358 +_022F1F84: + mov r8, #7 + mov r3, #0x50 + ldr r1, _022F23E4 @ =0x0231A60C + mov r0, fp + mov r2, r8 + str r3, [r7, #0x28] + bl ov00_022F2BC0 + cmp r0, #0 + beq _022F1FE4 + ldr r1, _022F23E8 @ =0x0231A614 + mov r0, fp + mov r2, #8 + bl ov00_022F2BC0 + cmp r0, #0 + beq _022F1FD0 + ldr r0, _022F23DC @ =0x02327944 + mov r1, #4 + str r1, [r0] + b _022F2358 +_022F1FD0: + mov r0, #1 + str r0, [r7, #8] + rsb r0, r0, #0x1bc + str r0, [r7, #0x28] + mov r8, #8 +_022F1FE4: + sub r4, r4, r8 + cmp r4, #0 + add r6, fp, r8 + bgt _022F2004 + ldr r0, _022F23DC @ =0x02327944 + mov r1, #4 + str r1, [r0] + b _022F2358 +_022F2004: + mov r5, #0 + mov sb, r5 + mov sl, r5 + b _022F2078 +_022F2014: + cmp sl, #2 + subeq sl, sl, #1 + beq _022F2074 + cmp sl, #1 + bne _022F2068 + sub r0, r5, #1 + mov r1, #2 + add r0, r6, r0 + bl ov00_022F42D4 + lsl r0, r0, #0x18 + asrs r0, r0, #0x18 + sub sl, sl, #1 + bpl _022F2058 + ldr r0, _022F23DC @ =0x02327944 + mov r1, #4 + str r1, [r0] + b _022F2358 +_022F2058: + cmp r0, #0x2f + bne _022F2074 + sub sb, sb, #1 + b _022F208C +_022F2068: + cmp r0, #0x25 + moveq sl, #2 + addeq sb, sb, #1 +_022F2074: + add r5, r5, #1 +_022F2078: + cmp r5, r4 + bge _022F208C + ldrsb r0, [r6, r5] + cmp r0, #0x2f + bne _022F2014 +_022F208C: + cmp sl, #0 + beq _022F20A4 + ldr r0, _022F23DC @ =0x02327944 + mov r1, #4 + str r1, [r0] + b _022F2358 +_022F20A4: + ldr r0, _022F23E0 @ =0x02327948 + add r1, r8, r4 + sub r1, r1, sb, lsl #1 + ldr r2, [r0] + add r0, r1, #1 + mov r1, #4 + blx r2 + str r0, [r7, #0x24] + cmp r0, #0 + bne _022F20DC + ldr r0, _022F23DC @ =0x02327944 + mov r1, #1 + str r1, [r0] + b _022F2358 +_022F20DC: + mov r1, fp + mov r2, r8 + bl ov00_022F2C48 + mov sb, #0 + mov r5, sb + mov sl, sb + mov fp, sb + cmp r4, #0 + ble _022F2180 +_022F2100: + cmp sl, #2 + subeq sl, sl, #1 + beq _022F2174 + cmp sl, #1 + bne _022F214C + sub r0, sb, #1 + add r0, r6, r0 + mov r1, #2 + bl ov00_022F42D4 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + ldr r0, [r7, #0x24] + cmp r1, #0x2f + add r0, r8, r0 + add r0, r5, r0 + sub sl, sl, #1 + strb r1, [r0, #-1] + moveq fp, #1 + b _022F2174 +_022F214C: + ldrsb r1, [r6, sb] + cmp r1, #0x2f + moveq fp, #1 + cmp fp, #0 + cmpeq r1, #0x25 + ldrne r0, [r7, #0x24] + moveq sl, #2 + addne r0, r8, r0 + strbne r1, [r5, r0] + add r5, r5, #1 +_022F2174: + add sb, sb, #1 + cmp sb, r4 + blt _022F2100 +_022F2180: + ldr r1, [r7, #0x24] + add r0, r8, r5 + mov r2, #0 + strb r2, [r1, r0] + ldr r0, [r7, #0x24] + cmp r5, #0 + add r1, r0, r8 + ble _022F21C4 +_022F21A0: + ldrsb r0, [r1, r2] + cmp r0, #0x2f + cmpne r0, #0x3a + addeq r0, r2, r8 + streq r0, [r7, #0xc] + beq _022F21C4 + add r2, r2, #1 + cmp r2, r5 + blt _022F21A0 +_022F21C4: + cmp r2, r5 + bne _022F21DC + add r0, r2, r8 + str r0, [r7, #0xc] + str r0, [r7, #0x10] + b _022F2280 +_022F21DC: + ldrsb r0, [r1, r2] + cmp r0, #0x2f + ldreq r0, [r7, #0xc] + streq r0, [r7, #0x10] + beq _022F2280 + cmp r0, #0x3a + bne _022F2280 + cmp r2, r5 + bge _022F2220 +_022F2200: + ldrsb r0, [r1, r2] + cmp r0, #0x2f + addeq r0, r2, r8 + streq r0, [r7, #0x10] + beq _022F2220 + add r2, r2, #1 + cmp r2, r5 + blt _022F2200 +_022F2220: + cmp r2, r5 + addeq r0, r2, r8 + streq r0, [r7, #0x10] + beq _022F2280 + ldr r1, [r7, #0xc] + ldr r0, [r7, #0x24] + add r2, r1, #1 + ldr r1, [r7, #0x10] + add r0, r0, r2 + sub r1, r1, r2 + bl ov00_022F4594 + cmp r0, #0 + ldrlt r0, [r7, #0x28] + blt _022F2274 + ldr r1, _022F23EC @ =0x0000FFFF + cmp r0, r1 + ble _022F2274 + ldr r0, _022F23DC @ =0x02327944 + mov r1, #4 + str r1, [r0] + b _022F2358 +_022F2274: + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [r7, #0x28] +_022F2280: + ldr r0, [r7, #8] + cmp r0, #0 + beq _022F2328 + ldr r0, _022F23E0 @ =0x02327948 + ldr r3, [r7, #0xc] + ldr r2, [r0] + mov r0, #0x830 + mov r1, #4 + sub r4, r3, r8 + blx r2 + str r0, [r7, #0x20] + cmp r0, #0 + bne _022F22C4 + ldr r0, _022F23DC @ =0x02327944 + mov r1, #1 + str r1, [r0] + b _022F2358 +_022F22C4: + mov r1, #0x830 + bl ov00_022F2C34 + ldr r1, _022F23E0 @ =0x02327948 + add r0, r4, #1 + ldr r2, [r1] + mov r1, #4 + blx r2 + ldr r1, [r7, #0x20] + str r0, [r1, #0x800] + ldr r0, [r7, #0x20] + ldr r0, [r0, #0x800] + cmp r0, #0 + bne _022F2308 + ldr r0, _022F23DC @ =0x02327944 + mov r1, #1 + str r1, [r0] + b _022F2358 +_022F2308: + ldr r1, [r7, #0x24] + mov r2, r4 + add r1, r1, r8 + bl ov00_022F2C48 + ldr r0, [r7, #0x20] + mov r1, #0 + ldr r0, [r0, #0x800] + strb r1, [r0, r4] +_022F2328: + ldr r1, _022F23F0 @ =0x023183A4 + add r0, r7, #0x44 + mov r2, #0x14 + bl ov00_022F2C48 + ldr r0, [sp, #0x2c] + ldr r1, [sp, #0x28] + str r0, [r7, #0x2c] + ldr r0, [sp] + str r0, [r7, #0x40] + mov r0, r7 + str r1, [r7, #0x3c] + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022F2358: + cmp r7, #0 + beq _022F23D4 + ldr r0, [r7, #0x20] + cmp r0, #0 + beq _022F2394 + ldr r0, [r0, #0x800] + cmp r0, #0 + beq _022F2384 + ldr r1, _022F23F4 @ =0x0232794C + ldr r1, [r1] + blx r1 +_022F2384: + ldr r1, _022F23F4 @ =0x0232794C + ldr r0, [r7, #0x20] + ldr r1, [r1] + blx r1 +_022F2394: + ldr r0, [r7, #0x24] + cmp r0, #0 + beq _022F23AC + ldr r1, _022F23F4 @ =0x0232794C + ldr r1, [r1] + blx r1 +_022F23AC: + ldr r0, [r7, #0x30] + cmp r0, #0 + beq _022F23C4 + ldr r1, _022F23F4 @ =0x0232794C + ldr r1, [r1] + blx r1 +_022F23C4: + ldr r1, _022F23F4 @ =0x0232794C + mov r0, r7 + ldr r1, [r1] + blx r1 +_022F23D4: + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022F23DC: .4byte 0x02327944 +_022F23E0: .4byte 0x02327948 +_022F23E4: .4byte 0x0231A60C +_022F23E8: .4byte 0x0231A614 +_022F23EC: .4byte 0x0000FFFF +_022F23F0: .4byte 0x023183A4 +_022F23F4: .4byte 0x0232794C + arm_func_end ov00_022F1E94 + + arm_func_start ov00_022F23F8 +ov00_022F23F8: @ 0x022F23F8 + push {r4, lr} + ldr r1, _022F241C @ =0x0232794C + mov r4, r0 + ldr r0, [r4, #0x30] + ldr r1, [r1] + blx r1 + mov r0, r4 + bl ov00_022F2474 + pop {r4, pc} + .align 2, 0 +_022F241C: .4byte 0x0232794C + arm_func_end ov00_022F23F8 + + arm_func_start ov00_022F2420 +ov00_022F2420: @ 0x022F2420 + push {r3, r4, r5, r6, r7, lr} + movs r7, r0 + popeq {r3, r4, r5, r6, r7, pc} + ldr r4, _022F2470 @ =0x0232794C + mov r5, #0 +_022F2434: + ldr r0, [r7] + cmp r7, r0 + beq _022F2454 + ldr r6, [r0] + ldr r1, [r4] + blx r1 + str r6, [r7] + b _022F2464 +_022F2454: + ldr r1, [r4] + mov r0, r7 + blx r1 + mov r7, r5 +_022F2464: + cmp r7, #0 + bne _022F2434 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022F2470: .4byte 0x0232794C + arm_func_end ov00_022F2420 + + arm_func_start ov00_022F2474 +ov00_022F2474: @ 0x022F2474 + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #0x34] + bl ov00_022F2420 + ldr r0, [r4, #0x38] + bl ov00_022F2420 + ldr r0, [r4, #0x20] + cmp r0, #0 + beq _022F24C0 + ldr r0, [r0, #0x800] + cmp r0, #0 + beq _022F24B0 + ldr r1, _022F24E8 @ =0x0232794C + ldr r1, [r1] + blx r1 +_022F24B0: + ldr r1, _022F24E8 @ =0x0232794C + ldr r0, [r4, #0x20] + ldr r1, [r1] + blx r1 +_022F24C0: + ldr r1, _022F24E8 @ =0x0232794C + ldr r0, [r4, #0x24] + ldr r1, [r1] + blx r1 + ldr r1, _022F24E8 @ =0x0232794C + mov r0, r4 + ldr r1, [r1] + blx r1 + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_022F24E8: .4byte 0x0232794C + arm_func_end ov00_022F2474 + + arm_func_start ov00_022F24EC +ov00_022F24EC: @ 0x022F24EC + push {r3, r4, r5, lr} + mov r5, r0 + ldr r0, [r5] + cmp r0, #0 + beq _022F2514 + ldr r0, _022F2574 @ =0x02327944 + mov r1, #0xb + str r1, [r0] + sub r0, r1, #0xc + pop {r3, r4, r5, pc} +_022F2514: + ldr r0, [r5, #0x40] + cmp r0, #1 + ldreq r0, [r5, #0x38] + cmpeq r0, #0 + bne _022F253C + ldr r0, _022F2574 @ =0x02327944 + mov r1, #0xb + str r1, [r0] + sub r0, r1, #0xc + pop {r3, r4, r5, pc} +_022F253C: + bl ov00_022F1914 + mov r0, r5 + bl ov00_022F1708 + movs r4, r0 + ldrmi r0, _022F2574 @ =0x02327944 + movmi r1, #1 + strmi r1, [r0] + bmi _022F2568 + mov r0, #1 + str r0, [r5] + bl ov00_022F19F8 +_022F2568: + bl ov00_022F1928 + mov r0, r4 + pop {r3, r4, r5, pc} + .align 2, 0 +_022F2574: .4byte 0x02327944 + arm_func_end ov00_022F24EC + + arm_func_start ov00_022F2578 +ov00_022F2578: @ 0x022F2578 + push {r3, r4, r5, lr} + mov r4, r0 + mov r5, #0 + bl ov00_022F1914 + ldr r0, _022F25F0 @ =0x02327950 + ldr r2, [r0] + cmp r2, #0 + beq _022F25D0 + ldr r1, [r2, #8] + cmp r1, r4 + ldreq r1, [r2, #0xc] + ldreq r1, [r1, #4] + cmpeq r1, #0 + bne _022F25D0 + ldr r1, [r2, #0xc] + mov r2, #1 + str r2, [r1, #4] + ldr r1, [r0] + ldr r0, [r1, #0xc] + ldr r1, [r1, #0x10] + bl ov00_022F2B98 + mov r5, #1 +_022F25D0: + cmp r5, #0 + bne _022F25E4 + mov r0, r4 + bl ov00_022F1814 + mov r5, r0 +_022F25E4: + bl ov00_022F1928 + mov r0, r5 + pop {r3, r4, r5, pc} + .align 2, 0 +_022F25F0: .4byte 0x02327950 + arm_func_end ov00_022F2578 + + arm_func_start ov00_022F25F4 +ov00_022F25F4: @ 0x022F25F4 + push {r3, lr} + bl ov00_022F1914 + ldr r0, _022F2644 @ =0x02327950 + ldr r2, [r0] + cmp r2, #0 + beq _022F2638 + ldr r1, [r2, #0xc] + ldr r1, [r1, #4] + cmp r1, #0 + bne _022F2638 + ldr r1, [r2, #0xc] + mov r2, #1 + str r2, [r1, #4] + ldr r1, [r0] + ldr r0, [r1, #0xc] + ldr r1, [r1, #0x10] + bl ov00_022F2B98 +_022F2638: + bl ov00_022F18B4 + bl ov00_022F1928 + pop {r3, pc} + .align 2, 0 +_022F2644: .4byte 0x02327950 + arm_func_end ov00_022F25F4 + + arm_func_start ov00_022F2648 +ov00_022F2648: @ 0x022F2648 + push {r3, r4, r5, r6, r7, lr} + mov r5, r0 + ldr r2, [r5, #0x24] + ldr r1, [r5, #0xc] + mov r0, #0 + ldrsb r4, [r2, r1] + strb r0, [r2, r1] + ldr r0, [r5, #8] + ldr r6, [r5, #0x24] + cmp r0, #0 + movne r7, #8 + moveq r7, #7 + add r1, sp, #0 + add r0, r6, r7 + bl ov00_022CF824 + cmp r0, #0 + ldrne r0, [sp] + bne _022F26D0 + add r0, r6, r7 + bl ov00_022CEDE0 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + lsr r2, r0, #0x18 + lsr r1, r0, #8 + lsl r3, r0, #8 + lsl ip, r0, #0x18 + and r2, r2, #0xff + and r0, r1, #0xff00 + and r1, r3, #0xff0000 + orr r0, r2, r0 + and r2, ip, #0xff000000 + orr r0, r1, r0 + orr r0, r2, r0 +_022F26D0: + ldr r2, [r5, #0x24] + ldr r1, [r5, #0xc] + strb r4, [r2, r1] + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022F2648 + + arm_func_start ov00_022F26E0 +ov00_022F26E0: @ 0x022F26E0 + push {r4, r5, r6, lr} + mov r4, r0 + ldr r0, [r4, #0x1c] + cmp r0, #0 + beq _022F2710 + ldr r5, _022F2754 @ =0x0232794C +_022F26F8: + ldr r6, [r0] + ldr r1, [r5] + blx r1 + movs r0, r6 + str r6, [r4, #0x1c] + bne _022F26F8 +_022F2710: + ldr r0, [r4, #0x10] + cmp r0, #0 + beq _022F2728 + ldr r1, _022F2754 @ =0x0232794C + ldr r1, [r1] + blx r1 +_022F2728: + ldr r0, [r4, #0x14] + cmp r0, #0 + beq _022F2740 + ldr r1, _022F2754 @ =0x0232794C + ldr r1, [r1] + blx r1 +_022F2740: + ldr r1, _022F2754 @ =0x0232794C + mov r0, r4 + ldr r1, [r1] + blx r1 + pop {r4, r5, r6, pc} + .align 2, 0 +_022F2754: .4byte 0x0232794C + arm_func_end ov00_022F26E0 + + arm_func_start ov00_022F2758 +ov00_022F2758: @ 0x022F2758 + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #8 + mov r5, r0 + mov r4, r2 + mov sl, r1 + ldr r2, [r5] + add r3, sp, #4 + mov r1, #0xc + bl ov00_022F1AEC + mov r8, r0 + cmp r8, #0 + ble _022F2858 + mov r6, #0 + add r7, sp, #4 +_022F2790: + ldr r2, [r5] + mov r0, r5 + mov r1, r8 + mov r3, r7 + bl ov00_022F1AEC + ldr r2, [sp, #4] + mov sb, r0 + cmp r2, #0 + ble _022F284C + mov r0, r5 + mov r1, r8 + mov r3, sl + str r6, [sp] + bl ov00_022F1C2C + cmp r0, #0 + bne _022F284C + ldr r1, [sp, #4] + ldr r0, [r5] + add r1, r1, #1 + cmp r1, r0 + bge _022F2840 + ldr r2, [r5] + mov r0, r5 + mov r3, #0 + bl ov00_022F1AEC + cmp r0, #0 + ldrle r6, [r5] + ble _022F2814 + cmp r0, #2 + addlt sp, sp, #8 + mvnlt r0, #0 + poplt {r4, r5, r6, r7, r8, sb, sl, pc} + sub r6, r0, #2 +_022F2814: + ldr r1, [sp, #4] + mov r0, r5 + mov r2, r6 + add r1, r1, #1 + bl ov00_022F1BBC + cmp r0, #0 + movlt r0, r6 + str r0, [r4] + add sp, sp, #8 + sub r0, r6, r0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022F2840: + add sp, sp, #8 + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022F284C: + mov r8, sb + cmp sb, #0 + bgt _022F2790 +_022F2858: + mvn r0, #0 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end ov00_022F2758 + + arm_func_start ov00_022F2864 +ov00_022F2864: @ 0x022F2864 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + ldr r0, [r7, #8] + mov r6, r1 + cmp r0, #0 + mov r5, r2 + mvneq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldr r0, [r7, #0x14] + cmp r0, #0 + beq _022F28A4 + ldr r1, _022F295C @ =0x0232794C + ldr r1, [r1] + blx r1 + mov r0, #0 + str r0, [r7, #0x14] +_022F28A4: + add r2, sp, #0 + mov r0, r7 + mov r1, r6 + bl ov00_022F2758 + movs r4, r0 + bmi _022F2900 + ldr r1, _022F2960 @ =0x02327948 + add r0, r4, #1 + ldr r2, [r1] + mov r1, #4 + blx r2 + str r0, [r7, #0x14] + mov r1, #0 + strb r1, [r0, r4] + ldr r1, [r7, #0x14] + ldr r2, [sp] + mov r0, r7 + mov r3, r4 + bl ov00_022F1CFC + ldr r1, [r7, #0x14] + mov r0, r4 + str r1, [r5] + pop {r3, r4, r5, r6, r7, pc} +_022F2900: + ldr r0, _022F2964 @ =0x0231A620 + mov r1, r6 + bl ov00_020852D8 + cmp r0, #0 + mvnne r0, #0 + popne {r3, r4, r5, r6, r7, pc} + ldr r1, _022F2960 @ =0x02327948 + mov r0, #4 + ldr r2, [r1] + mov r1, r0 + blx r2 + str r0, [r7, #0x14] + mov r1, #0 + strb r1, [r0, #3] + ldr r1, [r7, #0x14] + mov r0, r7 + mov r2, #9 + mov r3, #3 + bl ov00_022F1CFC + ldr r1, [r7, #0x14] + mov r0, #3 + str r1, [r5] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022F295C: .4byte 0x0232794C +_022F2960: .4byte 0x02327948 +_022F2964: .4byte 0x0231A620 + arm_func_end ov00_022F2864 + + arm_func_start ov00_022F2968 +ov00_022F2968: @ 0x022F2968 + ldr r2, [r0, #8] + cmp r2, #0 + ldrne r2, [r0, #4] + cmpne r2, #0 + mvneq r0, #0 + ldrne r2, [r0, #0x18] + strne r2, [r1] + ldrne r0, [r0, #4] + bx lr + arm_func_end ov00_022F2968 +_022F298C: + .byte 0x02, 0x09, 0x10, 0xE3 + .byte 0x02, 0x09, 0xC0, 0x13, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov00_022F2998 +ov00_022F2998: @ 0x022F2998 + push {r3, lr} + ldr r0, _022F29B4 @ =0x02328320 + bl FUN_0207BB50 + ldr r0, _022F29B4 @ =0x02328320 + mov r1, #0x20 + bl ov00_022D1F04 + pop {r3, pc} + .align 2, 0 +_022F29B4: .4byte 0x02328320 + arm_func_end ov00_022F2998 + + arm_func_start ov00_022F29B8 +ov00_022F29B8: @ 0x022F29B8 + push {r3, r4, r5, lr} + mov r5, r0 + mov r0, #2 + mov r1, #1 + mov r2, #0 + bl ov00_022CF1AC + movs r4, r0 + bmi _022F2A2C + ldr r0, [r5, #8] + cmp r0, #0 + beq _022F2A2C + bl ov00_022F2998 + ldr r1, [r5, #0x1c] + ldr r0, [r5, #0x20] + ldr r2, _022F2A34 @ =0x022F298C + str r1, [r0, #0x814] + ldr r3, [r5, #0x18] + ldr r1, [r5, #0x20] + mov r0, r4 + str r3, [r1, #0x818] + ldr r1, [r5, #0x20] + str r2, [r1, #0x810] + ldr r1, [r5, #0x20] + bl ov00_022CF9CC + cmp r0, #0 + bge _022F2A2C + mov r0, r4 + bl ov00_022CE8D4 + mvn r4, #0 +_022F2A2C: + mov r0, r4 + pop {r3, r4, r5, pc} + .align 2, 0 +_022F2A34: .4byte 0x022F298C + arm_func_end ov00_022F29B8 + + arm_func_start ov00_022F2A38 +ov00_022F2A38: @ 0x022F2A38 + ldr ip, _022F2A44 @ =ov00_022CE8D4 + mov r0, r1 + bx ip + .align 2, 0 +_022F2A44: .4byte ov00_022CE8D4 + arm_func_end ov00_022F2A38 + + arm_func_start ov00_022F2A48 +ov00_022F2A48: @ 0x022F2A48 + push {r4, r5, r6, lr} + mov r6, r1 + mov r0, r6 + bl ov00_022CE8D4 + mvn r4, #0x19 + cmp r0, r4 + popne {r4, r5, r6, pc} + mov r5, #0x1f4 +_022F2A68: + mov r0, r5 + bl FUN_02079B14 + mov r0, r6 + bl ov00_022CE8D4 + cmp r0, r4 + beq _022F2A68 + pop {r4, r5, r6, pc} + arm_func_end ov00_022F2A48 + + arm_func_start ov00_022F2A84 +ov00_022F2A84: @ 0x022F2A84 + push {r3, r4, r5, lr} + sub sp, sp, #8 + lsl r3, r3, #0x10 + lsr r3, r3, #0x10 + asr ip, r3, #8 + mov r4, r0 + mov r5, #8 + mov lr, #2 + lsl r3, r3, #8 + mov r0, r1 + and ip, ip, #0xff + and r1, r3, #0xff00 + orr r3, ip, r1 + add r1, sp, #0 + strb r5, [sp] + strb lr, [sp, #1] + strh r3, [sp, #2] + str r2, [sp, #4] + bl ov00_022CF204 + cmp r0, #0 + bge _022F2AF0 + ldr r0, [r4, #4] + add sp, sp, #8 + cmp r0, #0 + ldrne r0, _022F2AFC @ =0xFFFFFC16 + mvneq r0, #0x3e8 + pop {r3, r4, r5, pc} +_022F2AF0: + mov r0, #0 + add sp, sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_022F2AFC: .4byte 0xFFFFFC16 + arm_func_end ov00_022F2A84 + + arm_func_start ov00_022F2B00 +ov00_022F2B00: @ 0x022F2B00 + push {r4, lr} + mov r4, r0 + mov r0, r1 + mov r1, r2 + mov r2, r3 + ldr r3, [sp, #8] + bl ov00_022CF260 + cmp r0, #0 + popge {r4, pc} + ldr r1, [r4, #4] + cmp r1, #0 + ldrne r0, _022F2B48 @ =0xFFFFFC16 + popne {r4, pc} + mvn r1, #0x37 + cmp r0, r1 + moveq r0, #0 + mvnne r0, #0x3e8 + pop {r4, pc} + .align 2, 0 +_022F2B48: .4byte 0xFFFFFC16 + arm_func_end ov00_022F2B00 + + arm_func_start ov00_022F2B4C +ov00_022F2B4C: @ 0x022F2B4C + push {r4, lr} + mov r4, r0 + mov r0, r1 + mov r1, r2 + mov r2, r3 + ldr r3, [sp, #8] + bl ov00_022CF314 + cmp r0, #0 + popge {r4, pc} + ldr r1, [r4, #4] + cmp r1, #0 + ldrne r0, _022F2B94 @ =0xFFFFFC16 + popne {r4, pc} + mvn r1, #0x37 + cmp r0, r1 + moveq r0, #0 + mvnne r0, #0x3e8 + pop {r4, pc} + .align 2, 0 +_022F2B94: .4byte 0xFFFFFC16 + arm_func_end ov00_022F2B4C + + arm_func_start ov00_022F2B98 +ov00_022F2B98: @ 0x022F2B98 + push {r3, lr} + cmp r1, #0 + poplt {r3, pc} + mov r0, r1 + mov r1, #2 + bl ov00_022CE7C4 + pop {r3, pc} + arm_func_end ov00_022F2B98 + + arm_func_start ov00_020852D8 +ov00_020852D8: @ 0x022F2BB4 + ldr ip, _022F2BBC @ =FUN_020852CC + bx ip + .align 2, 0 +_022F2BBC: .4byte FUN_020852CC + arm_func_end ov00_020852D8 + + arm_func_start ov00_022F2BC0 +ov00_022F2BC0: @ 0x022F2BC0 + cmp r2, #0 + ble _022F2C20 +_022F2BC8: + ldrsb ip, [r0], #1 + ldrsb r3, [r1], #1 + cmp ip, #0 + cmpne r3, #0 + bne _022F2BEC + cmp ip, #0 + cmpeq r3, #0 + moveq r2, #0 + b _022F2C20 +_022F2BEC: + cmp r3, #0x41 + blt _022F2BFC + cmp r3, #0x5a + addle r3, r3, #0x20 +_022F2BFC: + cmp ip, #0x41 + blt _022F2C0C + cmp ip, #0x5a + addle ip, ip, #0x20 +_022F2C0C: + cmp ip, r3 + bne _022F2C20 + sub r2, r2, #1 + cmp r2, #0 + bgt _022F2BC8 +_022F2C20: + mov r0, r2 + bx lr + arm_func_end ov00_022F2BC0 + + arm_func_start ov00_020852A4 +ov00_020852A4: @ 0x022F2C28 + ldr ip, _022F2C30 @ =FUN_020852A4 + bx ip + .align 2, 0 +_022F2C30: .4byte FUN_020852A4 + arm_func_end ov00_020852A4 + + arm_func_start ov00_022F2C34 +ov00_022F2C34: @ 0x022F2C34 + ldr ip, _022F2C44 @ =FUN_0207C40C + mov r2, r1 + mov r1, #0 + bx ip + .align 2, 0 +_022F2C44: .4byte FUN_0207C40C + arm_func_end ov00_022F2C34 + + arm_func_start ov00_022F2C48 +ov00_022F2C48: @ 0x022F2C48 + ldr ip, _022F2C5C @ =FUN_0207C4C8 + mov r3, r0 + mov r0, r1 + mov r1, r3 + bx ip + .align 2, 0 +_022F2C5C: .4byte FUN_0207C4C8 + arm_func_end ov00_022F2C48 + + arm_func_start ov00_022F2C60 +ov00_022F2C60: @ 0x022F2C60 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + ldr r5, [sp, #0x28] mov sl, r0 mov sb, r1 mov r8, r2 mov r7, r3 - mov r5, #0 - ldr r4, _020B72F0 @ =0x01FFB654 - ldr fp, _020B72F4 @ =0x02353538 - b _020B72E0 -_020B7200: - ldr r1, [fp] - mov r0, sl - add r1, r1, #0xe4 - add r1, r1, #0x19800 - add r6, r1, r5, lsl #4 - mov r1, #0x53 - bl FUN_023BD0F8 + cmp r5, #0 + ble _022F2D08 + ldr r4, _022F2D10 @ =0x02328388 + mov fp, #0 +_022F2C88: + ldr r0, [sl, #4] cmp r0, #0 - bne _020B72DC - mov r0, sl - mov r1, r8 - bl FUN_023BD5FC - ldrb r1, [r4, r7] - cmp r1, r0 - bne _020B72DC - mov r0, sl - mov r1, r8 - mov r2, #0 - bl FUN_023D602C - and r0, r0, #0xf0 - cmp r0, #0x70 - beq _020B72DC - ldr r0, [r6, r7, lsl #3] - bl FUN_023D5D54 - cmp r0, #0 - beq _020B72CC - ldr r0, [r6, r7, lsl #3] - add r1, r6, r7, lsl #3 - ldr r2, [r1, #4] - ldr r1, [r0, #0xb4] - ldr r1, [r1, #0xb0] - cmp r2, r1 - bne _020B72CC - mov r1, sl - mov r2, #1 - mov r3, #0 - bl FUN_023BCADC - cmp r0, #1 - bne _020B72CC - ldr r0, [sb, #0xb4] - ldr r2, [r6, r7, lsl #3] - ldrb r0, [r0, #0x10b] - ldr r1, [r2, #0xb4] - cmp r0, #0 - ldrbeq r0, [r1, #0x10b] - cmpeq r0, #0 - beq _020B72C4 - cmp sb, r2 - bne _020B72CC -_020B72C4: - mov r0, #1 - b _020B72D0 -_020B72CC: - mov r0, #0 -_020B72D0: - cmp r0, #0 - ldrne r0, [r6, r7, lsl #3] + mvnne r0, #0 popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} -_020B72DC: - add r5, r5, #1 -_020B72E0: - cmp r5, #2 - blt _020B7200 - mov r0, #0 + ldr r0, [r8] + mov r1, r7 + rsb r6, r0, #0x400 + cmp r5, r6 + movle r6, r5 + mov r2, r6 + add r0, r4, r0 + bl ov00_022F2C48 + ldr r0, [r8] + add r7, r7, r6 + add r0, r0, r6 + str r0, [r8] + cmp r0, #0x400 + sub r5, r5, r6 + bne _022F2D00 + mov r0, sl + mov r1, sb + mov r2, r4 + mov r3, #0x400 + str fp, [sp] + bl ov00_022F2B4C + cmp r0, #0 + pople {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r8] + sub r0, r1, r0 + str r0, [r8] +_022F2D00: + cmp r5, #0 + bgt _022F2C88 +_022F2D08: + ldr r0, [sp, #0x28] pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 -_020B72F0: .4byte 0x01FFB654 -_020B72F4: .4byte 0x02353538 - arm_func_end LightningRodStormDrainCheck - @ 0x020B72F8 +_022F2D10: .4byte 0x02328388 + arm_func_end ov00_022F2C60 + + arm_func_start ov00_022F2D14 +ov00_022F2D14: @ 0x022F2D14 + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #8 + mov r8, #0 + mov sl, r0 + mov sb, r1 + mov r7, r8 + strb r8, [sp, #4] + strb r8, [sp, #5] + mov r6, r8 + mov r5, #1 + add r4, sp, #4 + b _022F2D70 +_022F2D44: + mov r0, sl + mov r1, sb + mov r3, r5 + add r2, r4, r2 + str r6, [sp] + bl ov00_022F2B00 + cmp r0, #0 + addle sp, sp, #8 + pople {r4, r5, r6, r7, r8, sb, sl, pc} + add r8, r8, r0 + add r7, r7, #1 +_022F2D70: + and r2, r7, #1 + ldrsb r0, [r4, r2] + cmp r0, #0xd + bne _022F2D44 + sub r0, r7, #1 + and r0, r0, #1 + ldrsb r0, [r4, r0] + cmp r0, #0xa + bne _022F2D44 + mov r0, r8 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end ov00_022F2D14 + + arm_func_start ov00_022F2DA0 +ov00_022F2DA0: @ 0x022F2DA0 + push {r4, lr} + movs r4, r0 + popeq {r4, pc} + ldr r0, [r4, #0x800] + cmp r0, #0 + beq _022F2DC4 + ldr r1, _022F2DD8 @ =0x0232794C + ldr r1, [r1] + blx r1 +_022F2DC4: + ldr r1, _022F2DD8 @ =0x0232794C + mov r0, r4 + ldr r1, [r1] + blx r1 + pop {r4, pc} + .align 2, 0 +_022F2DD8: .4byte 0x0232794C + arm_func_end ov00_022F2DA0 + + arm_func_start ov00_022F2DDC +ov00_022F2DDC: @ 0x022F2DDC + push {r4, r5, r6, lr} + ldr r2, _022F2E70 @ =0x02328340 + mov r6, r0 + ldm r2, {r0, r2} + add r0, r0, #1 + and r4, r0, #7 + mov r5, r1 + cmp r4, r2 + bne _022F2E38 + ldr r1, _022F2E74 @ =0x02328348 + mov r0, #0 + ldr r1, [r1, r2, lsl #3] + bl ov00_022F2A48 + ldr r0, _022F2E70 @ =0x02328340 + ldr r1, _022F2E78 @ =0x0232834C + ldr r0, [r0, #4] + ldr r0, [r1, r0, lsl #3] + bl ov00_022F2DA0 + ldr r0, _022F2E70 @ =0x02328340 + ldr r1, [r0, #4] + add r1, r1, #1 + and r1, r1, #7 + str r1, [r0, #4] +_022F2E38: + ldr r0, [r5] + cmp r0, #0 + popeq {r4, r5, r6, pc} + ldr r0, _022F2E70 @ =0x02328340 + ldr r1, _022F2E74 @ =0x02328348 + ldr ip, [r0] + ldr r2, _022F2E78 @ =0x0232834C + str r6, [r1, ip, lsl #3] + ldr r3, [r5] + mov r1, #0 + str r3, [r2, ip, lsl #3] + str r1, [r5] + str r4, [r0] + pop {r4, r5, r6, pc} + .align 2, 0 +_022F2E70: .4byte 0x02328340 +_022F2E74: .4byte 0x02328348 +_022F2E78: .4byte 0x0232834C + arm_func_end ov00_022F2DDC + + arm_func_start ov00_022F2E7C +ov00_022F2E7C: @ 0x022F2E7C + push {r4, r5, r6, lr} + ldr r6, _022F2ED4 @ =0x02328340 + ldm r6, {r0, r1} + cmp r0, r1 + popeq {r4, r5, r6, pc} + ldr r4, _022F2ED8 @ =0x02328348 + mov r5, #0 +_022F2E98: + ldr r1, [r4, r1, lsl #3] + mov r0, r5 + bl ov00_022F2A48 + ldr r0, [r6, #4] + add r0, r4, r0, lsl #3 + ldr r0, [r0, #4] + bl ov00_022F2DA0 + ldr r0, [r6, #4] + add r0, r0, #1 + and r1, r0, #7 + str r1, [r6, #4] + ldr r0, [r6] + cmp r0, r1 + bne _022F2E98 + pop {r4, r5, r6, pc} + .align 2, 0 +_022F2ED4: .4byte 0x02328340 +_022F2ED8: .4byte 0x02328348 + arm_func_end ov00_022F2E7C + + arm_func_start ov00_022F2EDC +ov00_022F2EDC: @ 0x022F2EDC + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x4c + ldr r2, _022F3DFC @ =0x02328340 + mov r0, #0 + str r0, [sp, #0x3c] + str r0, [r2] + ldr r1, _022F3E00 @ =0x02327954 + mvn r6, #0 + str r0, [r2, #4] + ldr r1, [r1] + str r0, [sp, #0x10] + str r6, [sp, #0x18] + str r6, [sp, #0x14] + str r0, [sp, #8] + str r0, [sp, #0xc] + cmp r1, #0 + bne _022F41AC +_022F2F20: + bl ov00_022F1914 + bl ov00_022F18E4 + cmp r0, #0 + mvneq r4, #0 + beq _022F2F44 + ldr r4, [r0, #8] + ldr r8, [r0, #0xc] + ldr r1, _022F3E04 @ =0x02327950 + str r0, [r1] +_022F2F44: + bl ov00_022F1928 + cmp r4, #0 + bge _022F2F58 + bl ov00_022F19DC + b _022F419C +_022F2F58: + ldr r0, [r8, #4] + ldr sb, [r8, #0x30] + cmp r0, #0 + bne _022F40CC + mov r0, r8 + bl ov00_022F2648 + str r0, [sp, #0x1c] + cmp r0, #0 + moveq r0, #4 + streq r0, [sp, #4] + beq _022F40CC + mov r1, r0 + ldr r0, [sp, #0x18] + mov r2, #0 + cmp r1, r0 + ldreq r1, [r8, #0x28] + ldreq r0, [sp, #0x14] + add r5, sp, #0x38 + cmpeq r1, r0 + ldreq r1, [r8, #8] + ldreq r0, [sp, #0xc] + add r4, sp, #0x40 + cmpeq r1, r0 + ldr r0, [r8, #0x28] + moveq r2, #1 + str r0, [sp, #0x14] + ldr r0, [r8, #8] + str r0, [sp, #0xc] + ldr r0, [sp, #0x1c] + str r0, [sp, #0x18] + ldr r0, [sp, #8] + and r0, r0, r2 + str r0, [sp, #8] + mvn r0, #0 + str r0, [sp, #0x20] +_022F2FE4: + mov r0, #0 + cmp r6, #0 + str r0, [sp, #4] + blt _022F3034 + mov r0, #9 + strh r0, [sp, #0x2c] + ldr r2, _022F3E08 @ =0x0000CC8D + add r0, sp, #0x28 + mov r1, #1 + mov r3, #0 + str r6, [sp, #0x28] + bl ov00_022CF918 + cmp r0, #0 + movle r0, #0 + strle r0, [sp, #8] + ble _022F3034 + ldrsh r0, [sp, #0x2e] + tst r0, #0xe0 + movne r0, #0 + strne r0, [sp, #8] +_022F3034: + ldr r0, [sp, #8] + cmp r0, #0 + bne _022F30FC + cmp r6, #0 + blt _022F307C + mov r0, r8 + mov r1, r6 + bl ov00_022F2A38 + cmp r0, #0 + movlt r0, #0xa + strlt r0, [sp, #4] + mov r0, r6 + add r1, sp, #0x3c + bl ov00_022F2DDC + ldr r0, [sp, #4] + ldr r6, [sp, #0x20] + cmp r0, #0 + bne _022F40CC +_022F307C: + mov r0, r8 + bl ov00_022F29B8 + movs r6, r0 + movmi r0, #3 + strmi r0, [sp, #4] + bmi _022F40CC + ldr r0, [r8, #8] + cmp r0, #0 + beq _022F30B0 + ldr r0, [r8, #0x20] + str r0, [sp, #0x3c] + mov r0, #0 + str r0, [r8, #0x20] +_022F30B0: + bl ov00_022F1914 + ldr r0, _022F3E04 @ =0x02327950 + ldr r0, [r0] + str r6, [r0, #0x10] + bl ov00_022F1928 + ldr r0, [r8, #4] + cmp r0, #0 + bne _022F40CC + ldr r2, [sp, #0x1c] + ldr r3, [r8, #0x28] + mov r0, r8 + mov r1, r6 + bl ov00_022F2A84 + cmp r0, #0 + movge r0, #1 + strge r0, [sp, #8] + movlt r0, #0 + strlt r0, [sp, #8] + b _022F3130 +_022F30FC: + ldr r0, [r8, #8] + cmp r0, #0 + beq _022F3118 + ldr r0, [r8, #0x20] + bl ov00_022F2DA0 + mov r0, #0 + str r0, [r8, #0x20] +_022F3118: + bl ov00_022F2998 + bl ov00_022F1914 + ldr r0, _022F3E04 @ =0x02327950 + ldr r0, [r0] + str r6, [r0, #0x10] + bl ov00_022F1928 +_022F3130: + ldr r0, [r8, #4] + cmp r0, #0 + bne _022F40CC + ldr r0, [sp, #8] + cmp r0, #0 + moveq r0, #5 + streq r0, [sp, #4] + beq _022F40CC + mov r0, #0 + str r0, [sp, #0x38] + str r0, [sp, #8] + ldr r0, [r8, #0x24] + bl ov00_020852A4 + mov r7, r0 + mov r0, #0xa + str r0, [sp, #4] + ldr r0, [r8, #0x40] + cmp r0, #0 + beq _022F3190 + cmp r0, #1 + beq _022F31BC + cmp r0, #2 + beq _022F31E8 + b _022F3210 +_022F3190: + mov r0, #4 + str r0, [sp] + ldr r3, _022F3E0C @ =0x0231A630 + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + b _022F3210 +_022F31BC: + mov r0, #5 + str r0, [sp] + ldr r3, _022F3E10 @ =0x0231A638 + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + b _022F3210 +_022F31E8: + mov r0, #5 + str r0, [sp] + ldr r3, _022F3E14 @ =0x0231A640 + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 +_022F3210: + ldr sl, [r8, #0x10] + cmp r7, sl + ble _022F3250 + subs r0, r7, sl + beq _022F3278 + str r0, [sp] + mov r0, r8 + mov r1, r6 + mov r2, r5 + ldr r3, [r8, #0x24] + add r3, r3, sl + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + b _022F3278 +_022F3250: + mov r0, #1 + str r0, [sp] + ldr r3, _022F3E18 @ =0x0231A648 + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 +_022F3278: + mov r0, #0xb + str r0, [sp] + ldr r3, _022F3E1C @ =0x0231A64C + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + ldr r0, [r8, #8] + ldr r3, _022F3E20 @ =0x0231A658 + cmp r0, #0 + movne r0, #8 + moveq r0, #7 + str r0, [sp, #0x34] + mov r0, #6 + str r0, [sp] + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + ldr r7, [sp, #0x34] + ldr r0, [r8, #0xc] + subs r0, r0, r7 + beq _022F3314 + str r0, [sp] + mov r0, r8 + mov r1, r6 + mov r2, r5 + ldr r3, [r8, #0x24] + add r3, r3, r7 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 +_022F3314: + mov r0, #2 + str r0, [sp] + ldr r3, _022F3E24 @ =0x0231A660 + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + add r0, r8, #0x34 + bl ov00_022F153C + movs r7, r0 + beq _022F3424 +_022F334C: + ldr r0, [r7, #8] + bl ov00_020852A4 + cmp r0, #0 + beq _022F3380 + str r0, [sp] + mov r0, r8 + mov r1, r6 + mov r2, r5 + ldr r3, [r7, #8] + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 +_022F3380: + mov r0, #2 + str r0, [sp] + ldr r3, _022F3E28 @ =0x0231A664 + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + ldr r0, [r7, #0xc] + bl ov00_020852A4 + cmp r0, #0 + beq _022F33DC + str r0, [sp] + mov r0, r8 + mov r1, r6 + mov r2, r5 + ldr r3, [r7, #0xc] + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 +_022F33DC: + mov r0, #2 + str r0, [sp] + ldr r3, _022F3E24 @ =0x0231A660 + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + ldr r1, _022F3E2C @ =0x0232794C + mov r0, r7 + ldr r1, [r1] + blx r1 + add r0, r8, #0x34 + bl ov00_022F153C + movs r7, r0 + bne _022F334C +_022F3424: + ldr r0, [r8, #0x40] + cmp r0, #1 + bne _022F3644 + ldr sl, [r8, #0x38] + mov r7, #0 + mov r0, r7 + str r0, [sp, #0x10] + cmp sl, #0 + mov r1, sl + beq _022F3474 +_022F344C: + ldr r0, [r1, #0x14] + cmp r0, #0 + movne r0, #1 + strne r0, [sp, #0x10] + bne _022F3474 + ldr r0, [sl] + cmp r1, r0 + ldrne r1, [r1, #4] + cmpne r1, #0 + bne _022F344C +_022F3474: + ldr r0, [sp, #0x10] + cmp r0, #0 + beq _022F3550 + cmp sl, #0 + beq _022F34D0 +_022F3488: + ldr r0, [sl, #8] + add r7, r7, #0x16 + bl ov00_020852A4 + add r0, r0, #0x29 + add r7, r7, r0 + ldr r0, [sl, #0x14] + ldr r1, [sl, #0x10] + cmp r0, #0 + ldr r0, [r8, #0x38] + addne r7, r7, #0x4b + ldr r0, [r0] + add r2, r7, #2 + cmp sl, r0 + ldrne sl, [sl, #4] + add r1, r2, r1 + add r7, r1, #2 + cmpne sl, #0 + bne _022F3488 +_022F34D0: + mov r0, #0x2c + str r0, [sp] + ldr r3, _022F3E30 @ =0x0231A668 + mov r0, r8 + mov r1, r6 + mov r2, r5 + add r7, r7, #0x18 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + mov r0, #0x12 + str r0, [sp] + mov r0, r8 + mov r1, r6 + mov r2, r5 + add r3, r8, #0x46 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + mov r0, #2 + str r0, [sp] + ldr r3, _022F3E24 @ =0x0231A660 + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + b _022F35B8 +_022F3550: + cmp sl, #0 + beq _022F3590 +_022F3558: + ldr r0, [sl, #8] + bl ov00_022F41DC + add r0, r7, r0 + add r7, r0, #1 + ldr r0, [sl, #0xc] + bl ov00_022F41DC + add r7, r7, r0 + ldr r0, [r8, #0x38] + ldr r0, [r0] + cmp sl, r0 + ldrne sl, [sl, #4] + addne r7, r7, #1 + cmpne sl, #0 + bne _022F3558 +_022F3590: + mov r0, #0x31 + str r0, [sp] + ldr r3, _022F3E34 @ =0x0231A698 + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 +_022F35B8: + mov r0, #0x10 + str r0, [sp] + ldr r3, _022F3E38 @ =0x0231A6CC + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + mov r1, r7 + mov r0, r4 + bl ov00_022F4454 + str r0, [sp, #0x34] + cmp r0, #0 + beq _022F361C + str r0, [sp] + mov r0, r8 + mov r1, r6 + mov r2, r5 + mov r3, r4 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 +_022F361C: + mov r0, #2 + str r0, [sp] + ldr r3, _022F3E24 @ =0x0231A660 + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 +_022F3644: + mov r0, #2 + str r0, [sp] + ldr r3, _022F3E24 @ =0x0231A660 + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + ldr r0, [r8, #0x40] + cmp r0, #1 + bne _022F39C4 + ldr r0, [sp, #0x10] + cmp r0, #0 + beq _022F3884 + ldr r7, [r8, #0x38] + cmp r7, #0 + beq _022F3830 +_022F3690: + mov r0, #0x14 + str r0, [sp] + mov r0, r8 + mov r1, r6 + mov r2, r5 + add r3, r8, #0x44 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + mov r0, #2 + str r0, [sp] + ldr r3, _022F3E24 @ =0x0231A660 + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + mov r0, #0x26 + str r0, [sp] + ldr r3, _022F3E3C @ =0x023183BC + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + ldr r0, [r7, #8] + bl ov00_020852A4 + cmp r0, #0 + beq _022F373C + str r0, [sp] + mov r0, r8 + mov r1, r6 + mov r2, r5 + ldr r3, [r7, #8] + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 +_022F373C: + mov r0, #3 + str r0, [sp] + ldr r3, _022F3E40 @ =0x0231A6E0 + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + ldr r0, [r7, #0x14] + cmp r0, #0 + beq _022F3798 + mov r0, #0x4b + str r0, [sp] + ldr r3, _022F3E44 @ =0x023183E4 + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 +_022F3798: + mov r0, #2 + str r0, [sp] + ldr r3, _022F3E24 @ =0x0231A660 + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + ldr r0, [r7, #0x10] + cmp r0, #0 + beq _022F37F0 + str r0, [sp] + mov r0, r8 + mov r1, r6 + mov r2, r5 + ldr r3, [r7, #0xc] + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 +_022F37F0: + mov r0, #2 + str r0, [sp] + ldr r3, _022F3E24 @ =0x0231A660 + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + ldr r0, [r8, #0x38] + ldr r0, [r0] + cmp r7, r0 + ldrne r7, [r7, #4] + cmpne r7, #0 + bne _022F3690 +_022F3830: + mov r0, #0x14 + str r0, [sp] + mov r0, r8 + mov r1, r6 + mov r2, r5 + add r3, r8, #0x44 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + mov r0, #4 + str r0, [sp] + ldr r3, _022F3E48 @ =0x0231A6E4 + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + b _022F39C4 +_022F3884: + ldr sl, [r8, #0x38] + cmp sl, #0 + beq _022F39C4 +_022F3890: + ldr r1, [sl, #8] + mov r7, #0 + ldrsb r0, [r1] + cmp r0, #0 + beq _022F38F4 +_022F38A4: + ldrsb r1, [r1, r7] + mov r0, r4 + bl ov00_022F4244 + str r0, [sp, #0x34] + cmp r0, #0 + beq _022F38E0 + str r0, [sp] + mov r0, r8 + mov r1, r6 + mov r2, r5 + mov r3, r4 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 +_022F38E0: + add r7, r7, #1 + ldr r1, [sl, #8] + ldrsb r0, [r1, r7] + cmp r0, #0 + bne _022F38A4 +_022F38F4: + mov r0, #1 + str r0, [sp] + ldr r3, _022F3E4C @ =0x0231A6EC + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + ldr r1, [sl, #0xc] + mov r7, #0 + ldrsb r0, [r1] + cmp r0, #0 + beq _022F3980 +_022F3930: + ldrsb r1, [r1, r7] + mov r0, r4 + bl ov00_022F4244 + str r0, [sp, #0x34] + cmp r0, #0 + beq _022F396C + str r0, [sp] + mov r0, r8 + mov r1, r6 + mov r2, r5 + mov r3, r4 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 +_022F396C: + add r7, r7, #1 + ldr r1, [sl, #0xc] + ldrsb r0, [r1, r7] + cmp r0, #0 + bne _022F3930 +_022F3980: + ldr r0, [r8, #0x38] + ldr r0, [r0] + cmp sl, r0 + beq _022F39C4 + mov r0, #1 + str r0, [sp] + ldr r3, _022F3E50 @ =0x0231A6F0 + mov r0, r8 + mov r1, r6 + mov r2, r5 + bl ov00_022F2C60 + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 + ldr sl, [sl, #4] + cmp sl, #0 + bne _022F3890 +_022F39C4: + ldr r3, [sp, #0x38] + cmp r3, #0 + ble _022F39F4 + mov r0, #0 + str r0, [sp] + ldr r2, _022F3E54 @ =0x02328388 + mov r0, r8 + mov r1, r6 + bl ov00_022F2B4C + cmp r0, #0 + blt _022F40CC + beq _022F2FE4 +_022F39F4: + mov r0, #0 + str r0, [sb] + strb r0, [sp, #0x40] + strb r0, [sp, #0x41] + mov r1, #7 + strb r0, [sp, #0x42] + strb r0, [sp, #0x43] + ldr r5, [sb, #0x1c] + str r1, [sp, #4] + str r0, [sp, #0x38] + add sl, sb, #0x20 + add r4, sp, #0x40 +_022F3A24: + ldr r1, [r8, #4] + cmp r1, #0 + bne _022F40CC + cmp r0, #0x400 + bge _022F3A6C + add r2, sl, r0 + mov r0, #0 + str r0, [sp] + mov r0, r8 + mov r1, r6 + mov r3, #1 + bl ov00_022F2B00 + ldr r3, [sp, #0x38] + add r1, sb, r3 + ldrsb r2, [r1, #0x20] + and r1, r3, #3 + strb r2, [r4, r1] + b _022F3B00 +_022F3A6C: + ldr r1, _022F3E58 @ =0x000001FF + ands r7, r0, r1 + bne _022F3ACC + cmp r5, #0 + mov r0, #0x204 + mov r1, #4 + beq _022F3AA0 + ldr r2, _022F3E5C @ =0x02327948 + ldr r2, [r2] + blx r2 + str r0, [r5] + mov r5, r0 + b _022F3AB4 +_022F3AA0: + ldr r2, _022F3E5C @ =0x02327948 + ldr r2, [r2] + blx r2 + mov r5, r0 + str r5, [sb, #0x1c] +_022F3AB4: + cmp r5, #0 + moveq r0, #1 + streq r0, [sp, #4] + beq _022F40CC + mov r0, #0 + str r0, [r5] +_022F3ACC: + mov r0, #0 + add r2, r5, #4 + str r0, [sp] + mov r0, r8 + mov r1, r6 + add r2, r2, r7 + mov r3, #1 + bl ov00_022F2B00 + add r1, r5, r7 + ldrsb r2, [r1, #4] + ldr r1, [sp, #0x38] + and r1, r1, #3 + strb r2, [r4, r1] +_022F3B00: + cmp r0, #0 + movle r0, #0xa + strle r0, [sp, #4] + ble _022F40CC + ldr r1, [sp, #0x38] + add r0, r1, r0 + str r0, [sp, #0x38] + sub r1, r0, #4 + and r1, r1, #3 + ldrsb r1, [r4, r1] + cmp r1, #0xd + bne _022F3A24 + sub r1, r0, #3 + and r1, r1, #3 + ldrsb r1, [r4, r1] + cmp r1, #0xa + bne _022F3A24 + sub r1, r0, #2 + and r1, r1, #3 + ldrsb r1, [r4, r1] + cmp r1, #0xd + bne _022F3A24 + sub r1, r0, #1 + and r1, r1, #3 + ldrsb r1, [r4, r1] + cmp r1, #0xa + bne _022F3A24 + str r0, [sb] + ldr r0, [sb] + cmp r0, #0 + beq _022F40CC + ldr r1, _022F3E54 @ =0x02328388 + mov r0, sb + mov r2, #0 + mov r3, #0xe + bl ov00_022F1CFC + cmp r0, #0 + beq _022F40CC + ldr r0, _022F3E54 @ =0x02328388 + ldr r1, _022F3E60 @ =0x0231A6F4 + mov r2, #5 + bl ov00_022F2BC0 + cmp r0, #0 + ldreq r0, _022F3E54 @ =0x02328388 + ldrsbeq r0, [r0, #8] + cmpeq r0, #0x20 + bne _022F40CC + ldr r0, _022F3E64 @ =0x02328391 + mov r1, #3 + bl ov00_022F43BC + cmp r0, #0 + blt _022F40CC + ldr r2, [sb] + add r3, sp, #0x30 + mov r0, sb + mov r1, #0xc + bl ov00_022F1AEC + cmp r0, #0 + blt _022F40CC + ldr r1, _022F3E68 @ =0x0231A6FC + add r2, sp, #0x34 + mov r0, sb + bl ov00_022F2758 + movs r5, r0 + moveq r0, #0 + streq r0, [sp, #4] + beq _022F40CC + cmp r5, #0x400 + bgt _022F40CC + cmp r5, #0 + ble _022F3C54 + ldr r2, [sp, #0x34] + ldr r1, _022F3E54 @ =0x02328388 + mov r0, sb + mov r3, r5 + bl ov00_022F1CFC + cmp r0, #0 + beq _022F40CC + ldr r0, _022F3E54 @ =0x02328388 + mov r1, r5 + bl ov00_022F43BC + movs r5, r0 + bmi _022F40CC + str r5, [r8, #0x14] + b _022F3C5C +_022F3C54: + mvn r0, #0 + str r0, [r8, #0x14] +_022F3C5C: + ldr r1, _022F3E6C @ =0x0231A70C + add r2, sp, #0x34 + mov r0, sb + bl ov00_022F2758 + str r0, [sp, #8] + cmp r0, #0 + beq _022F40CC + bge _022F3CBC + ldr r0, _022F3E54 @ =0x02328388 + mov r2, #0 + ldrsb r1, [r0, #5] + ldrsb r3, [r0, #7] + add r0, sp, #0x24 + strb r1, [sp, #0x24] + mov r1, #2 + strb r3, [sp, #0x25] + strb r2, [sp, #0x26] + bl ov00_022F43BC + cmp r0, #0xb + movge r0, #1 + strge r0, [sp, #8] + movlt r0, #0 + strlt r0, [sp, #8] + b _022F3CFC +_022F3CBC: + cmp r0, #0x400 + mov r0, #0 + strgt r0, [sp, #8] + bgt _022F3CFC + ldr r1, [sp, #0x34] + ldr r2, [sp, #8] + str r0, [sp] + ldr r3, _022F3E70 @ =0x0231A718 + mov r0, sb + add r2, r1, r2 + bl ov00_022F1C2C + cmp r0, #0 + moveq r0, #1 + streq r0, [sp, #8] + movne r0, #0 + strne r0, [sp, #8] +_022F3CFC: + ldr r1, _022F3E74 @ =0x0231A724 + add r2, sp, #0x34 + mov r0, sb + bl ov00_022F2758 + cmp r0, #0 + beq _022F40CC + cmp r0, #0x400 + movgt r1, #0 + bgt _022F3D58 + cmp r0, #0 + ble _022F3D54 + ldr r1, [sp, #0x34] + ldr r3, _022F3E78 @ =0x0231A738 + add r2, r1, r0 + mov r0, #0x3b + str r0, [sp] + mov r0, sb + bl ov00_022F1C2C + cmp r0, #0 + moveq r1, #1 + movne r1, #0 + b _022F3D58 +_022F3D54: + mov r1, #0 +_022F3D58: + ldr r0, [r8, #0x40] + cmp r0, #2 + beq _022F40CC + cmp r5, #0 + blt _022F3E7C + mov r4, #0 + b _022F3DA8 +_022F3D74: + str r4, [sp] + ldr r2, [sb, #4] + mov r0, r8 + mov r1, r6 + mov r3, r5 + bl ov00_022F1E24 + cmp r0, #0 + blt _022F40CC + beq _022F3DC4 + ldr r1, [sb, #4] + sub r5, r5, r0 + add r0, r1, r0 + str r0, [sb, #4] +_022F3DA8: + cmp r5, #0 + ble _022F3DC4 + ldr r1, [sb, #4] + mov r0, sb + bl ov00_022F1DE8 + cmp r0, #0 + beq _022F3D74 +_022F3DC4: + cmp r5, #0 + beq _022F3DF0 + ldr r1, [sb, #4] + mov r0, sb + bl ov00_022F1DE8 + cmp r0, #0 + movne r0, #6 + strne r0, [sp, #4] + moveq r0, #0xa + streq r0, [sp, #4] + b _022F40CC +_022F3DF0: + mov r0, #0 + str r0, [sp, #4] + b _022F40CC + .align 2, 0 +_022F3DFC: .4byte 0x02328340 +_022F3E00: .4byte 0x02327954 +_022F3E04: .4byte 0x02327950 +_022F3E08: .4byte 0x0000CC8D +_022F3E0C: .4byte 0x0231A630 +_022F3E10: .4byte 0x0231A638 +_022F3E14: .4byte 0x0231A640 +_022F3E18: .4byte 0x0231A648 +_022F3E1C: .4byte 0x0231A64C +_022F3E20: .4byte 0x0231A658 +_022F3E24: .4byte 0x0231A660 +_022F3E28: .4byte 0x0231A664 +_022F3E2C: .4byte 0x0232794C +_022F3E30: .4byte 0x0231A668 +_022F3E34: .4byte 0x0231A698 +_022F3E38: .4byte 0x0231A6CC +_022F3E3C: .4byte 0x023183BC +_022F3E40: .4byte 0x0231A6E0 +_022F3E44: .4byte 0x023183E4 +_022F3E48: .4byte 0x0231A6E4 +_022F3E4C: .4byte 0x0231A6EC +_022F3E50: .4byte 0x0231A6F0 +_022F3E54: .4byte 0x02328388 +_022F3E58: .4byte 0x000001FF +_022F3E5C: .4byte 0x02327948 +_022F3E60: .4byte 0x0231A6F4 +_022F3E64: .4byte 0x02328391 +_022F3E68: .4byte 0x0231A6FC +_022F3E6C: .4byte 0x0231A70C +_022F3E70: .4byte 0x0231A718 +_022F3E74: .4byte 0x0231A724 +_022F3E78: .4byte 0x0231A738 +_022F3E7C: + mov r0, #0xa + cmp r1, #0 + str r0, [sp, #4] + beq _022F4020 + mov r7, #0 + ldr r5, _022F3E54 @ =0x02328388 + add r4, sp, #0x40 + mov sl, r7 +_022F3E9C: + mov r0, #0 + strb r0, [sp, #0x40] + strb r0, [sp, #0x41] + str r0, [sp, #0x38] +_022F3EAC: + str r7, [sp] + ldr r2, [sp, #0x38] + mov r0, r8 + mov r1, r6 + mov r3, #1 + add r2, r5, r2 + bl ov00_022F2B00 + cmp r0, #0 + blt _022F40CC + ldr r1, [sp, #0x38] + ldrsb r0, [r5, r1] + and r2, r1, #1 + strb r0, [r4, r2] + cmp r0, #0x3b + beq _022F3F04 + cmp r0, #0xa + bne _022F3F4C + sub r2, r1, #1 + and r2, r2, #1 + ldrsb r2, [r4, r2] + cmp r2, #0xd + bne _022F3F4C +_022F3F04: + cmp r0, #0xa + subeq r0, r1, #1 + streq r0, [sp, #0x34] + beq _022F3F2C + str r1, [sp, #0x34] + mov r0, r8 + mov r1, r6 + bl ov00_022F2D14 + cmp r0, #0 + ble _022F40CC +_022F3F2C: + ldr r1, [sp, #0x34] + cmp r1, #0 + beq _022F40CC + mov r0, r5 + bl ov00_022F42D4 + movs fp, r0 + bmi _022F40CC + b _022F3F60 +_022F3F4C: + ldr r0, [sp, #0x38] + add r0, r0, #1 + str r0, [sp, #0x38] + cmp r0, #0x400 + blt _022F3EAC +_022F3F60: + ldr r0, [sp, #0x38] + cmp r0, #0x400 + moveq r0, #7 + streq r0, [sp, #4] + beq _022F40CC + cmp fp, #0 + ble _022F4008 + ble _022F3E9C +_022F3F80: + str sl, [sp] + mov r0, r8 + mov r1, r6 + ldr r2, [sb, #4] + mov r3, fp + bl ov00_022F1E24 + cmp r0, #0 + ble _022F40CC + ldr r1, [sb, #4] + subs fp, fp, r0 + add r0, r1, r0 + str r0, [sb, #4] + bne _022F3FFC + mov r0, #0 + str r0, [sp] + mov r0, r8 + mov r1, r6 + mov r2, r5 + mov r3, #1 + bl ov00_022F2B00 + cmp r0, #0 + ble _022F40CC + mov r0, #0 + str r0, [sp] + mov r0, r8 + mov r1, r6 + mov r2, r5 + mov r3, #1 + bl ov00_022F2B00 + cmp r0, #0 + ble _022F40CC +_022F3FFC: + cmp fp, #0 + bgt _022F3F80 + b _022F3E9C +_022F4008: + mov r0, r8 + mov r1, r6 + bl ov00_022F2D14 + mov r0, #0 + str r0, [sp, #4] + b _022F40CC +_022F4020: + ldr r1, [sb, #4] + mov r0, sb + bl ov00_022F1DE8 + cmp r0, #0 + bne _022F40CC + mov r5, #0 + ldr r4, _022F3E54 @ =0x02328388 + mov sl, #1 + mov r7, r5 +_022F4044: + mov r0, r8 + mov r1, r6 + ldr r2, [sb, #4] + mov r3, r7 + bl ov00_022F1DFC + cmp r0, #0 + blt _022F40CC + moveq r0, #0 + streq r0, [sp, #4] + beq _022F40CC + ldr r1, [sb, #4] + add r0, r1, r0 + str r0, [sb, #4] + mov r0, sb + ldr r1, [sb, #4] + bl ov00_022F1DE8 + cmp r0, #0 + beq _022F40B8 + str r5, [sp] + mov r0, r8 + mov r1, r6 + mov r2, r4 + mov r3, sl + bl ov00_022F2B00 + cmp r0, #0 + blt _022F40CC + movne r0, #6 + strne r0, [sp, #4] + bne _022F40CC +_022F40B8: + mov r0, sb + ldr r1, [sb, #4] + bl ov00_022F1DE8 + cmp r0, #0 + beq _022F4044 +_022F40CC: + bl ov00_022F1914 + ldr r0, _022F3E04 @ =0x02327950 + ldr r1, _022F3E2C @ =0x0232794C + ldr r0, [r0] + ldr r1, [r1] + blx r1 + ldr r0, _022F3E04 @ =0x02327950 + mov r1, #0 + str r1, [r0] + bl ov00_022F1928 + ldr r0, [r8, #4] + cmp r0, #0 + movne r0, #8 + strne r0, [sp, #4] + cmp r6, #0 + blt _022F4154 + ldr r0, [sp, #8] + cmp r0, #0 + beq _022F4124 + ldr r0, [sp, #4] + cmp r0, #0 + beq _022F4154 +_022F4124: + mov r0, r8 + mov r1, r6 + bl ov00_022F2A38 + cmp r0, #0 + movlt r0, #0xa + strlt r0, [sp, #4] + add r1, sp, #0x3c + mov r0, r6 + bl ov00_022F2DDC + mov r0, #0 + mvn r6, #0 + str r0, [sp, #8] +_022F4154: + ldr r0, [sp, #4] + cmp r0, #0 + moveq r0, #1 + streq r0, [sb, #8] + beq _022F417C + mov r0, #0 + str r0, [sb, #8] + ldr r1, _022F41D8 @ =0x02327944 + ldr r0, [sp, #4] + str r0, [r1] +_022F417C: + ldr r4, [r8, #0x2c] + mov r0, r8 + ldr r5, [r8, #0x3c] + bl ov00_022F2474 + ldr r0, [sp, #4] + mov r1, sb + mov r2, r4 + blx r5 +_022F419C: + ldr r0, _022F3E00 @ =0x02327954 + ldr r0, [r0] + cmp r0, #0 + beq _022F2F20 +_022F41AC: + cmp r6, #0 + blt _022F41CC + mov r0, r8 + mov r1, r6 + bl ov00_022F2A38 + add r1, sp, #0x3c + mov r0, r6 + bl ov00_022F2DDC +_022F41CC: + bl ov00_022F2E7C + add sp, sp, #0x4c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022F41D8: .4byte 0x02327944 + arm_func_end ov00_022F2EDC + + arm_func_start ov00_022F41DC +ov00_022F41DC: @ 0x022F41DC + ldrsb r2, [r0], #1 + mov r1, #0 + cmp r2, #0 + beq _022F423C +_022F41EC: + cmp r2, #0x30 + blt _022F41FC + cmp r2, #0x39 + ble _022F4224 +_022F41FC: + cmp r2, #0x41 + blt _022F420C + cmp r2, #0x5a + ble _022F4224 +_022F420C: + cmp r2, #0x61 + blt _022F421C + cmp r2, #0x7a + ble _022F4224 +_022F421C: + cmp r2, #0x20 + bne _022F422C +_022F4224: + add r1, r1, #1 + b _022F4230 +_022F422C: + add r1, r1, #3 +_022F4230: + ldrsb r2, [r0], #1 + cmp r2, #0 + bne _022F41EC +_022F423C: + mov r0, r1 + bx lr + arm_func_end ov00_022F41DC + + arm_func_start ov00_022F4244 +ov00_022F4244: @ 0x022F4244 + cmp r1, #0x20 + bne _022F425C + mov r1, #0x2b + strb r1, [r0] + mov r0, #1 + bx lr +_022F425C: + cmp r1, #0x30 + blt _022F426C + cmp r1, #0x39 + ble _022F428C +_022F426C: + cmp r1, #0x41 + blt _022F427C + cmp r1, #0x5a + ble _022F428C +_022F427C: + cmp r1, #0x61 + blt _022F4298 + cmp r1, #0x7a + bgt _022F4298 +_022F428C: + strb r1, [r0] + mov r0, #1 + bx lr +_022F4298: + asr r2, r1, #4 + and r3, r2, #0xf + mov r2, #0x25 + strb r2, [r0] + cmp r3, #0xa + addlt r2, r3, #0x30 + addge r2, r3, #0x37 + and r1, r1, #0xf + cmp r1, #0xa + addlt r1, r1, #0x30 + strb r2, [r0, #1] + addge r1, r1, #0x37 + strb r1, [r0, #2] + mov r0, #3 + bx lr + arm_func_end ov00_022F4244 + + arm_func_start ov00_022F42D4 +ov00_022F42D4: @ 0x022F42D4 + push {r4, r5, r6, r7, r8, lr} + cmp r1, #8 + mvngt r0, #0 + popgt {r4, r5, r6, r7, r8, pc} + bne _022F42F8 + ldrsb r2, [r0] + cmp r2, #0x37 + mvngt r0, #0 + popgt {r4, r5, r6, r7, r8, pc} +_022F42F8: + mov r5, #0 + mov r6, r5 + mov r7, r5 + cmp r1, #0 + ble _022F43B4 + mov lr, #1 + mov r3, lr + mov ip, lr + mov r4, r5 +_022F431C: + ldrsb r8, [r0, r5] + mov r2, r4 + cmp r8, #0x41 + blt _022F4334 + cmp r8, #0x5a + movle r2, lr +_022F4334: + cmp r2, #0 + addne r8, r8, #0x20 + lsl r2, r8, #0x18 + asr r2, r2, #0x18 + cmp r2, #0x30 + blt _022F4364 + cmp r2, #0x39 + bgt _022F4364 + add r2, r2, r6, lsl #4 + mov r7, ip + sub r6, r2, #0x30 + b _022F43A8 +_022F4364: + cmp r2, #0x61 + blt _022F4384 + cmp r2, #0x66 + bgt _022F4384 + add r2, r2, r6, lsl #4 + mov r7, r3 + sub r6, r2, #0x57 + b _022F43A8 +_022F4384: + cmp r7, #0 + beq _022F4398 + cmp r2, #0x20 + cmpne r2, #0 + beq _022F43B4 +_022F4398: + cmp r7, #0 + cmpeq r2, #0x20 + mvnne r0, #0 + popne {r4, r5, r6, r7, r8, pc} +_022F43A8: + add r5, r5, #1 + cmp r5, r1 + blt _022F431C +_022F43B4: + mov r0, r6 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022F42D4 + + arm_func_start ov00_022F43BC +ov00_022F43BC: @ 0x022F43BC + push {r3, r4, r5, lr} + cmp r1, #0xa + mvngt r0, #0 + popgt {r3, r4, r5, pc} + mov lr, #0 + mov r4, lr + mov r3, lr + cmp r1, #0 + ble _022F444C + mov ip, #1 + mov r2, #0xa +_022F43E8: + cmp r3, #0 + ldrsb r5, [r0, lr] + beq _022F4400 + cmp r5, #0x20 + cmpne r5, #0 + beq _022F444C +_022F4400: + cmp r3, #0 + cmpeq r5, #0x20 + beq _022F4440 + cmp r5, #0x30 + blt _022F441C + cmp r5, #0x39 + ble _022F4424 +_022F441C: + mvn r0, #0 + pop {r3, r4, r5, pc} +_022F4424: + mla r3, r4, r2, r5 + mov r5, r4 + sub r4, r3, #0x30 + cmp r5, r4 + mov r3, ip + mvngt r0, #0 + popgt {r3, r4, r5, pc} +_022F4440: + add lr, lr, #1 + cmp lr, r1 + blt _022F43E8 +_022F444C: + mov r0, r4 + pop {r3, r4, r5, pc} + arm_func_end ov00_022F43BC + + arm_func_start ov00_022F4454 +ov00_022F4454: @ 0x022F4454 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x24 + ldr r6, _022F450C @ =0x02318430 + add r4, sp, #0 + mov sl, r0 + mov sb, r1 + ldm r6!, {r0, r1, r2, r3} + mov r5, r4 + stm r4!, {r0, r1, r2, r3} + ldm r6!, {r0, r1, r2, r3} + stm r4!, {r0, r1, r2, r3} + ldr r0, [r6] + mov r7, #0 + str r0, [r4] + mov r6, r7 + mov r1, r7 + mov fp, #1 + mov r4, #0x30 +_022F449C: + ldr r8, [r5, r6, lsl #2] + cmp sb, r8 + blo _022F44D4 + mov r0, sb + mov r1, r8 + bl FUN_020900B0 + mul r2, r0, r8 + cmp sl, #0 + addne r0, r0, #0x30 + strbne r0, [sl, r7] + mov r1, fp + sub sb, sb, r2 + add r7, r7, #1 + b _022F44E8 +_022F44D4: + cmp r1, #0 + beq _022F44E8 + cmp sl, #0 + strbne r4, [sl, r7] + add r7, r7, #1 +_022F44E8: + add r6, r6, #1 + cmp r6, #9 + blt _022F449C + cmp sl, #0 + addne r0, sb, #0x30 + strbne r0, [sl, r7] + add r0, r7, #1 + add sp, sp, #0x24 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022F450C: .4byte 0x02318430 + arm_func_end ov00_022F4454 + + arm_func_start ov00_022F4510 +ov00_022F4510: @ 0x022F4510 + push {r4, r5, r6, lr} + mov ip, #1 + mov r3, #0 + mov r2, ip + mov lr, r3 + b _022F4540 +_022F4528: + cmp r5, #0 + cmpne r5, #0x20 + moveq r0, #0 + popeq {r4, r5, r6, pc} + add r0, r0, #1 + add r1, r1, #1 +_022F4540: + ldrsb r6, [r1] + mov r4, lr + cmp r6, #0x41 + blt _022F4558 + cmp r6, #0x5a + movle r4, ip +_022F4558: + ldrsb r5, [r0] + cmp r4, #0 + addne r6, r6, #0x20 + mov r4, r3 + cmp r5, #0x41 + blt _022F4578 + cmp r5, #0x5a + movle r4, r2 +_022F4578: + cmp r4, #0 + addne r4, r5, #0x20 + moveq r4, r5 + cmp r4, r6 + beq _022F4528 + mvn r0, #0 + pop {r4, r5, r6, pc} + arm_func_end ov00_022F4510 + + arm_func_start ov00_022F4594 +ov00_022F4594: @ 0x022F4594 + push {r3, lr} + mov ip, #0 + cmp r1, #0 + mov lr, ip + sub r1, r1, #1 + beq _022F45F4 + mov r2, #0xa +_022F45B0: + ldrsb r3, [r0] + cmp r3, #0x20 + beq _022F45E4 + cmp r3, #0x30 + blt _022F45E4 + cmp r3, #0x39 + bgt _022F45E4 + mla r3, lr, r2, r3 + add ip, ip, #1 + cmp ip, #9 + sub lr, r3, #0x30 + mvngt r0, #0 + popgt {r3, pc} +_022F45E4: + cmp r1, #0 + add r0, r0, #1 + sub r1, r1, #1 + bne _022F45B0 +_022F45F4: + cmp ip, #0 + mvneq lr, #0 + mov r0, lr + pop {r3, pc} + arm_func_end ov00_022F4594 + + arm_func_start ov00_022F4604 +ov00_022F4604: @ 0x022F4604 + push {r4, r5, r6, r7, r8, lr} + cmp r1, r3 + mvnlt r0, #0 + poplt {r4, r5, r6, r7, r8, pc} + sub r1, r1, r3 + add r8, r1, #1 + cmp r8, #0 + mov r4, #0 + ble _022F4680 + ldrsb r7, [r2] + mov lr, #1 +_022F4630: + ldrsb r1, [r0, r4] + cmp r7, r1 + bne _022F4674 + mov r5, lr + cmp r3, #1 + add r6, r0, r4 + ble _022F4668 +_022F464C: + ldrsb ip, [r6, r5] + ldrsb r1, [r2, r5] + cmp ip, r1 + bne _022F4668 + add r5, r5, #1 + cmp r5, r3 + blt _022F464C +_022F4668: + cmp r5, r3 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, pc} +_022F4674: + add r4, r4, #1 + cmp r4, r8 + blt _022F4630 +_022F4680: + mvn r0, #0 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022F4604 + + arm_func_start ov00_022F4688 +ov00_022F4688: @ 0x022F4688 + push {r4, lr} + mov r4, r0 + ldr r2, [r4, #0x10] + cmp r2, #0 + popeq {r4, pc} + bl ov00_022F47A8 + ldr r1, [r4, #0x10] + blx r1 + pop {r4, pc} + arm_func_end ov00_022F4688 + + arm_func_start ov00_022F46AC +ov00_022F46AC: @ 0x022F46AC + push {r4, lr} + mov r4, r0 + ldr r1, [r4, #4] + ldr r0, [r4, #0xc] + add r2, r1, r0 + str r2, [r4, #4] + ldr r0, [r4, #8] + mul r1, r2, r0 + ldr r0, [r4, #0x14] + bl ov00_022F5AFC + str r0, [r4, #0x14] + pop {r4, pc} + arm_func_end ov00_022F46AC + + arm_func_start ov00_022F46DC +ov00_022F46DC: @ 0x022F46DC + push {r3, r4, r5, lr} + mov r4, r1 + mov r5, r0 + mov r1, r2 + bl ov00_022F47A8 + ldr r2, [r5, #8] + mov r1, r4 + bl FUN_0208729C + pop {r3, r4, r5, pc} + arm_func_end ov00_022F46DC + + arm_func_start ov00_022F4700 +ov00_022F4700: @ 0x022F4700 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + mov r6, r1 + mov r0, #0x18 + mov r5, r2 + bl ov00_022F5AE4 + mov r4, r0 + cmp r6, #0 + moveq r6, #8 + mov r0, #0 + stm r4, {r0, r6, r7} + str r6, [r4, #0xc] + str r5, [r4, #0x10] + ldr r1, [r4, #4] + cmp r1, #0 + beq _022F474C + ldr r0, [r4, #8] + mul r0, r1, r0 + bl ov00_022F5AE4 +_022F474C: + str r0, [r4, #0x14] + mov r0, r4 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022F4700 + + arm_func_start ov00_022F4758 +ov00_022F4758: @ 0x022F4758 + push {r3, r4, r5, lr} + mov r5, r0 + ldr r0, [r5] + mov r4, #0 + cmp r0, #0 + ble _022F478C +_022F4770: + mov r0, r5 + mov r1, r4 + bl ov00_022F4688 + ldr r0, [r5] + add r4, r4, #1 + cmp r4, r0 + blt _022F4770 +_022F478C: + ldr r0, [r5, #0x14] + bl ov00_022F5B14 + mov r0, r5 + bl ov00_022F5B14 + pop {r3, r4, r5, pc} + arm_func_end ov00_022F4758 + + arm_func_start ov00_022F47A0 +ov00_022F47A0: @ 0x022F47A0 + ldr r0, [r0] + bx lr + arm_func_end ov00_022F47A0 + + arm_func_start ov00_022F47A8 +ov00_022F47A8: @ 0x022F47A8 + cmp r1, #0 + blt _022F47BC + ldr r2, [r0] + cmp r1, r2 + blt _022F47C4 +_022F47BC: + mov r0, #0 + bx lr +_022F47C4: + ldr r3, [r0, #0x14] + ldr r2, [r0, #8] + mla r0, r2, r1, r3 + bx lr + arm_func_end ov00_022F47A8 + + arm_func_start ov00_022F47D4 +ov00_022F47D4: @ 0x022F47D4 + push {r3, lr} + cmp r0, #0 + popeq {r3, pc} + ldr r2, [r0] + bl ov00_022F47EC + pop {r3, pc} + arm_func_end ov00_022F47D4 + + arm_func_start ov00_022F47EC +ov00_022F47EC: @ 0x022F47EC + push {r4, r5, r6, r7, r8, lr} + mov r6, r0 + ldr r7, [r6] + ldr r3, [r6, #4] + mov r5, r1 + mov r4, r2 + cmp r7, r3 + bne _022F4810 + bl ov00_022F46AC +_022F4810: + ldr r0, [r6] + add r0, r0, #1 + sub r8, r0, #1 + str r0, [r6] + cmp r4, r8 + bge _022F485C + mov r0, r6 + add r1, r4, #1 + bl ov00_022F47A8 + mov r7, r0 + mov r0, r6 + mov r1, r4 + bl ov00_022F47A8 + mov r1, r0 + ldr r3, [r6, #8] + sub r0, r8, r4 + mul r2, r3, r0 + mov r0, r7 + bl FUN_020872BC +_022F485C: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov00_022F46DC + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022F47EC + + arm_func_start ov00_022F4870 +ov00_022F4870: @ 0x022F4870 + push {r4, r5, lr} + sub sp, sp, #0xc + add r3, sp, #8 + stm sp, {r2, r3} + mov r5, r0 + mov r4, r1 + ldr r1, [r5, #0x14] + ldr r2, [r5] + ldr r3, [r5, #8] + mov r0, r4 + bl ov00_022F4B30 + ldr r2, [r5, #0x14] + ldr r1, [r5, #8] + sub r0, r0, r2 + bl FUN_0208FEA4 + mov r2, r0 + mov r0, r5 + mov r1, r4 + bl ov00_022F47EC + add sp, sp, #0xc + pop {r4, r5, pc} + arm_func_end ov00_022F4870 + + arm_func_start ov00_022F48C4 +ov00_022F48C4: @ 0x022F48C4 + push {r3, r4, r5, r6, r7, lr} + mov r4, r0 + ldr r2, [r4] + mov r7, r1 + sub r6, r2, #1 + cmp r7, r6 + bge _022F490C + bl ov00_022F47A8 + mov r5, r0 + mov r0, r4 + add r1, r7, #1 + bl ov00_022F47A8 + mov r1, r0 + ldr r3, [r4, #8] + sub r0, r6, r7 + mul r2, r3, r0 + mov r0, r5 + bl FUN_020872BC +_022F490C: + ldr r0, [r4] + sub r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022F48C4 + + arm_func_start ov00_022F491C +ov00_022F491C: @ 0x022F491C + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + bl ov00_022F4688 + mov r0, r5 + mov r1, r4 + bl ov00_022F48C4 + pop {r3, r4, r5, pc} + arm_func_end ov00_022F491C + + arm_func_start ov00_022F493C +ov00_022F493C: @ 0x022F493C + push {r4, r5, r6, lr} + mov r4, r2 + mov r5, r1 + mov r6, r0 + mov r1, r4 + bl ov00_022F4688 + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov00_022F46DC + pop {r4, r5, r6, pc} + arm_func_end ov00_022F493C + + arm_func_start ov00_022F4968 +ov00_022F4968: @ 0x022F4968 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0xc + mov ip, #1 + movs r7, r0 + str ip, [sp, #8] + ldrne r8, [r7] + mov r6, r1 + cmpne r8, #0 + mov r5, r2 + mov r4, r3 + addeq sp, sp, #0xc + mvneq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, pc} + ldr r1, [sp, #0x28] + cmp r1, #0 + mov r1, r4 + beq _022F49D4 + bl ov00_022F47A8 + add r1, sp, #8 + str r5, [sp] + str r1, [sp, #4] + mov r1, r0 + ldr r3, [r7, #8] + mov r0, r6 + sub r2, r8, r4 + bl ov00_022F4B30 + b _022F49F0 +_022F49D4: + bl ov00_022F47A8 + str r5, [sp] + mov r1, r0 + ldr r3, [r7, #8] + mov r0, r6 + sub r2, r8, r4 + bl ov00_022F4AD8 +_022F49F0: + cmp r0, #0 + ldrne r1, [sp, #8] + cmpne r1, #0 + addeq sp, sp, #0xc + mvneq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, pc} + ldr r2, [r7, #0x14] + ldr r1, [r7, #8] + sub r0, r0, r2 + bl FUN_0208FEA4 + add sp, sp, #0xc + pop {r3, r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022F4968 + + arm_func_start ov00_022F4A20 +ov00_022F4A20: @ 0x022F4A20 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + ldr r0, [r7] + mov r6, r1 + mov r5, r2 + subs r4, r0, #1 + popmi {r3, r4, r5, r6, r7, pc} +_022F4A3C: + mov r0, r7 + mov r1, r4 + bl ov00_022F47A8 + mov r1, r5 + blx r6 + subs r4, r4, #1 + bpl _022F4A3C + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022F4A20 + + arm_func_start ov00_022F4A5C +ov00_022F4A5C: @ 0x022F4A5C + push {r4, r5, r6, r7, r8, lr} + mov r8, r0 + ldr r0, [r8] + mov r7, r1 + mov r6, r2 + subs r5, r0, #1 + bmi _022F4AA4 +_022F4A78: + mov r0, r8 + mov r1, r5 + bl ov00_022F47A8 + mov r1, r6 + mov r4, r0 + blx r7 + cmp r0, #0 + moveq r0, r4 + popeq {r4, r5, r6, r7, r8, pc} + subs r5, r5, #1 + bpl _022F4A78 +_022F4AA4: + mov r0, #0 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022F4A5C + + arm_func_start ov00_022F4AAC +ov00_022F4AAC: @ 0x022F4AAC + push {r3, r4, r5, lr} + mov r5, r0 + bl ov00_022F47A0 + subs r4, r0, #1 + popmi {r3, r4, r5, pc} +_022F4AC0: + mov r0, r5 + mov r1, r4 + bl ov00_022F491C + subs r4, r4, #1 + bpl _022F4AC0 + pop {r3, r4, r5, pc} + arm_func_end ov00_022F4AAC + + arm_func_start ov00_022F4AD8 +ov00_022F4AD8: @ 0x022F4AD8 + push {r4, r5, r6, r7, r8, sb, sl, lr} + mov r8, r2 + mov sl, r0 + mov sb, r1 + mov r7, r3 + cmp r8, #0 + ldr r6, [sp, #0x20] + mov r4, #0 + ble _022F4B28 + mov r5, r4 +_022F4B00: + mov r0, sl + add r1, sb, r5 + blx r6 + cmp r0, #0 + mlaeq r0, r7, r4, sb + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + add r4, r4, #1 + cmp r4, r8 + add r5, r5, r7 + blt _022F4B00 +_022F4B28: + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end ov00_022F4AD8 + + arm_func_start ov00_022F4B30 +ov00_022F4B30: @ 0x022F4B30 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + ldr r7, [sp, #0x2c] + mov r4, #0 + mov fp, r0 + mov sl, r1 + mov sb, r3 + str r4, [r7] + subs r5, r2, #1 + ldr r8, [sp, #0x28] + bmi _022F4B8C +_022F4B58: + add r0, r4, r5 + asr r6, r0, #1 + mla r0, r6, sb, sl + mov r1, fp + blx r8 + cmp r0, #0 + moveq r1, #1 + streq r1, [r7] + cmp r0, #0 + addlt r4, r6, #1 + subge r5, r6, #1 + cmp r4, r5 + ble _022F4B58 +_022F4B8C: + mla r0, r4, sb, sl + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022F4B30 + + arm_func_start ov00_022F4B94 +ov00_022F4B94: @ 0x022F4B94 + push {r3, lr} + sub sp, sp, #8 + ldr ip, [sp, #0x10] + str r3, [sp] + mov r3, r2 + mov r2, #4 + str ip, [sp, #4] + bl ov00_022F4BBC + add sp, sp, #8 + pop {r3, pc} + arm_func_end ov00_022F4B94 + + arm_func_start ov00_022F4BBC +ov00_022F4BBC: @ 0x022F4BBC + push {r4, r5, r6, r7, r8, sb, sl, lr} + mov sl, r0 + mov sb, r1 + mov r0, #0x14 + mov r8, r2 + mov r7, r3 + ldr r6, [sp, #0x24] + bl ov00_022F5AE4 + mov r4, r0 + lsl r0, sb, #2 + bl ov00_022F5AE4 + str r0, [r4] + cmp sb, #0 + mov r5, #0 + ble _022F4C1C +_022F4BF8: + mov r0, sl + mov r1, r8 + mov r2, r6 + bl ov00_022F4700 + ldr r1, [r4] + str r0, [r1, r5, lsl #2] + add r5, r5, #1 + cmp r5, sb + blt _022F4BF8 +_022F4C1C: + str sb, [r4, #4] + ldr r0, [sp, #0x20] + str r6, [r4, #8] + str r0, [r4, #0x10] + mov r0, r4 + str r7, [r4, #0xc] + pop {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end ov00_022F4BBC + + arm_func_start ov00_022F4C38 +ov00_022F4C38: @ 0x022F4C38 + push {r3, r4, r5, lr} + movs r5, r0 + popeq {r3, r4, r5, pc} + ldr r0, [r5, #4] + mov r4, #0 + cmp r0, #0 + ble _022F4C70 +_022F4C54: + ldr r0, [r5] + ldr r0, [r0, r4, lsl #2] + bl ov00_022F4758 + ldr r0, [r5, #4] + add r4, r4, #1 + cmp r4, r0 + blt _022F4C54 +_022F4C70: + ldr r0, [r5] + bl ov00_022F5B14 + mov r0, r5 + bl ov00_022F5B14 + pop {r3, r4, r5, pc} + arm_func_end ov00_022F4C38 + + arm_func_start ov00_022F4C84 +ov00_022F4C84: @ 0x022F4C84 + push {r4, r5, r6, lr} + movs r6, r0 + mov r5, #0 + moveq r0, r5 + popeq {r4, r5, r6, pc} + ldr r0, [r6, #4] + mov r4, r5 + cmp r0, #0 + ble _022F4CC8 +_022F4CA8: + ldr r0, [r6] + ldr r0, [r0, r4, lsl #2] + bl ov00_022F47A0 + ldr r1, [r6, #4] + add r4, r4, #1 + cmp r4, r1 + add r5, r5, r0 + blt _022F4CA8 +_022F4CC8: + mov r0, r5 + pop {r4, r5, r6, pc} + arm_func_end ov00_022F4C84 + + arm_func_start ov00_022F4CD0 +ov00_022F4CD0: @ 0x022F4CD0 + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + movs r6, r0 + mov r5, r1 + addeq sp, sp, #4 + popeq {r3, r4, r5, r6, pc} + ldr r1, [r6, #4] + ldr r2, [r6, #0xc] + mov r0, r5 + blx r2 + mov r3, #0 + str r3, [sp] + ldr r1, [r6] + mov r4, r0 + ldr r0, [r1, r4, lsl #2] + ldr r2, [r6, #0x10] + mov r1, r5 + bl ov00_022F4968 + mov r2, r0 + mvn r0, #0 + cmp r2, r0 + ldr r0, [r6] + mov r1, r5 + bne _022F4D40 + ldr r0, [r0, r4, lsl #2] + bl ov00_022F47D4 + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} +_022F4D40: + ldr r0, [r0, r4, lsl #2] + bl ov00_022F493C + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_022F4CD0 + + arm_func_start ov00_022F4D50 +ov00_022F4D50: @ 0x022F4D50 + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + movs r6, r0 + mov r5, r1 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, r5, r6, pc} + ldr r1, [r6, #4] + ldr r2, [r6, #0xc] + mov r0, r5 + blx r2 + mov r3, #0 + str r3, [sp] + ldr r1, [r6] + mov r4, r0 + ldr r0, [r1, r4, lsl #2] + ldr r2, [r6, #0x10] + mov r1, r5 + bl ov00_022F4968 + mov r1, r0 + mvn r0, #0 + cmp r1, r0 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, r5, r6, pc} + ldr r0, [r6] + ldr r0, [r0, r4, lsl #2] + bl ov00_022F491C + mov r0, #1 + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_022F4D50 + + arm_func_start ov00_022F4DCC +ov00_022F4DCC: @ 0x022F4DCC + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + movs r6, r0 + mov r5, r1 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, r5, r6, pc} + ldr r1, [r6, #4] + ldr r2, [r6, #0xc] + mov r0, r5 + blx r2 + mov r3, #0 + str r3, [sp] + ldr r1, [r6] + mov r4, r0 + ldr r0, [r1, r4, lsl #2] + ldr r2, [r6, #0x10] + mov r1, r5 + bl ov00_022F4968 + mov r1, r0 + mvn r0, #0 + cmp r1, r0 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, r5, r6, pc} + ldr r0, [r6] + ldr r0, [r0, r4, lsl #2] + bl ov00_022F47A8 + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_022F4DCC + + arm_func_start ov00_022F4E44 +ov00_022F4E44: @ 0x022F4E44 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + ldr r0, [r7, #4] + mov r6, r1 + mov r5, r2 + mov r4, #0 + cmp r0, #0 + pople {r3, r4, r5, r6, r7, pc} +_022F4E64: + ldr r0, [r7] + mov r1, r6 + ldr r0, [r0, r4, lsl #2] + mov r2, r5 + bl ov00_022F4A20 + ldr r0, [r7, #4] + add r4, r4, #1 + cmp r4, r0 + blt _022F4E64 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022F4E44 + + arm_func_start ov00_022F4E8C +ov00_022F4E8C: @ 0x022F4E8C + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + ldr r0, [r7, #4] + mov r6, r1 + mov r5, r2 + cmp r0, #0 + mov r4, #0 + ble _022F4ED8 +_022F4EAC: + ldr r0, [r7] + mov r1, r6 + ldr r0, [r0, r4, lsl #2] + mov r2, r5 + bl ov00_022F4A5C + cmp r0, #0 + popne {r3, r4, r5, r6, r7, pc} + ldr r0, [r7, #4] + add r4, r4, #1 + cmp r4, r0 + blt _022F4EAC +_022F4ED8: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022F4E8C + + arm_func_start ov00_022F4EE0 +ov00_022F4EE0: @ 0x022F4EE0 + push {r3, r4, r5, lr} + mov r4, #0 + ldr ip, _022F4F38 @ =0x02318454 + mov r5, r4 +_022F4EF0: + ldrb r2, [r0, r4] + add lr, r1, r5 + lsr r2, r2, #4 + ldrsb r2, [ip, r2] + strb r2, [r1, r5] + ldrb r2, [r0, r4] + add r4, r4, #1 + cmp r4, #0x10 + lsr r3, r2, #0x1f + rsb r2, r3, r2, lsl #28 + add r2, r3, r2, ror #28 + ldrsb r2, [ip, r2] + add r5, r5, #2 + strb r2, [lr, #1] + blo _022F4EF0 + mov r0, #0 + strb r0, [r1, #0x20] + pop {r3, r4, r5, pc} + .align 2, 0 +_022F4F38: .4byte 0x02318454 + arm_func_end ov00_022F4EE0 + + arm_func_start ov00_022F4F3C +ov00_022F4F3C: @ 0x022F4F3C + push {r4, r5, r6, lr} + sub sp, sp, #0x68 + mov r6, r0 + add r0, sp, #0x10 + mov r5, r1 + mov r4, r2 + bl ov00_020800FC + add r0, sp, #0x10 + mov r1, r6 + mov r2, r5 + bl ov00_0208013C + add r0, sp, #0 + add r1, sp, #0x10 + bl ov00_02080204 + add r0, sp, #0 + mov r1, r4 + bl ov00_022F4EE0 + add sp, sp, #0x68 + pop {r4, r5, r6, pc} + arm_func_end ov00_022F4F3C + + arm_func_start ov00_022F4F88 +ov00_022F4F88: @ 0x022F4F88 + cmp r0, #0 + ldrlt r2, _022F4F9C @ =0x02328788 + strlt r0, [r2, #4] + movlt r0, r1 + bx lr + .align 2, 0 +_022F4F9C: .4byte 0x02328788 + arm_func_end ov00_022F4F88 + + arm_func_start ov00_022F4FA0 +ov00_022F4FA0: @ 0x022F4FA0 + push {r3, lr} + bl ov00_022CF1AC + mvn r1, #0 + bl ov00_022F4F88 + pop {r3, pc} + arm_func_end ov00_022F4FA0 + + arm_func_start ov00_022F4FB4 +ov00_022F4FB4: @ 0x022F4FB4 + push {r3, lr} + bl ov00_022CE8D4 + mvn r1, #0 + bl ov00_022F4F88 + pop {r3, pc} + arm_func_end ov00_022F4FB4 + + arm_func_start ov00_022F4FC8 +ov00_022F4FC8: @ 0x022F4FC8 + push {r3, lr} + bl ov00_022CE7C4 + mvn r1, #0 + bl ov00_022F4F88 + pop {r3, pc} + arm_func_end ov00_022F4FC8 + + arm_func_start ov00_022F4FDC +ov00_022F4FDC: @ 0x022F4FDC + push {r4, lr} + sub sp, sp, #8 + ldrh r3, [r1, #2] + cmp r3, #0 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r4, pc} + add r4, sp, #0 + mov lr, #4 +_022F5000: + ldrb ip, [r1] + ldrb r3, [r1, #1] + add r1, r1, #2 + subs lr, lr, #1 + strb ip, [r4] + strb r3, [r4, #1] + add r4, r4, #2 + bne _022F5000 + add r1, sp, #0 + strb r2, [sp] + bl ov00_022CF1D8 + mvn r1, #0 + bl ov00_022F4F88 + add sp, sp, #8 + pop {r4, pc} + arm_func_end ov00_022F4FDC + + arm_func_start ov00_022F503C +ov00_022F503C: @ 0x022F503C + push {r4, lr} + sub sp, sp, #8 + add r4, sp, #0 + mov lr, #4 +_022F504C: + ldrb ip, [r1] + ldrb r3, [r1, #1] + add r1, r1, #2 + subs lr, lr, #1 + strb ip, [r4] + strb r3, [r4, #1] + add r4, r4, #2 + bne _022F504C + add r1, sp, #0 + strb r2, [sp] + bl ov00_022CF204 + mvn r1, #0 + bl ov00_022F4F88 + add sp, sp, #8 + pop {r4, pc} + arm_func_end ov00_022F503C + + arm_func_start ov00_022F5088 +ov00_022F5088: @ 0x022F5088 + push {r3, lr} + bl ov00_022CF260 + mvn r1, #0 + bl ov00_022F4F88 + pop {r3, pc} + arm_func_end ov00_022F5088 + + arm_func_start ov00_022F509C +ov00_022F509C: @ 0x022F509C + push {r3, r4, r5, lr} + ldr r4, [sp, #0x14] + ldr r5, [sp, #0x10] + ldr ip, [r4] + strb ip, [r5] + str r5, [sp] + bl ov00_022CF284 + ldrb r2, [r5] + mvn r1, #0 + str r2, [r4] + bl ov00_022F4F88 + pop {r3, r4, r5, pc} + arm_func_end ov00_022F509C + + arm_func_start ov00_022F50CC +ov00_022F50CC: @ 0x022F50CC + push {r3, lr} + bl ov00_022CF314 + mvn r1, #0 + bl ov00_022F4F88 + pop {r3, pc} + arm_func_end ov00_022F50CC + + arm_func_start ov00_022F50E0 +ov00_022F50E0: @ 0x022F50E0 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0xc + ldr r5, [sp, #0x20] + add r6, sp, #4 + mov r4, #4 +_022F50F4: + ldrb lr, [r5] + ldrb ip, [r5, #1] + add r5, r5, #2 + subs r4, r4, #1 + strb lr, [r6] + strb ip, [r6, #1] + add r6, r6, #2 + bne _022F50F4 + ldr lr, [sp, #0x24] + add ip, sp, #4 + strb lr, [sp, #4] + str ip, [sp] + bl ov00_022CF338 + mvn r1, #0 + bl ov00_022F4F88 + add sp, sp, #0xc + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_022F50E0 + + arm_func_start ov00_022F5138 +ov00_022F5138: @ 0x022F5138 + ldr ip, _022F5148 @ =ov00_022F4F88 + mov r0, #0 + sub r1, r0, #1 + bx ip + .align 2, 0 +_022F5148: .4byte ov00_022F4F88 + arm_func_end ov00_022F5138 + + arm_func_start ov00_022F514C +ov00_022F514C: @ 0x022F514C + push {r3, r4, r5, lr} + mov r4, r2 + ldr r2, [r4] + mov r5, r1 + strb r2, [r5] + bl ov00_022CF494 + ldrb r2, [r5] + mvn r1, #0 + str r2, [r4] + bl ov00_022F4F88 + pop {r3, r4, r5, pc} + arm_func_end ov00_022F514C + + arm_func_start ov00_022F5178 +ov00_022F5178: @ 0x022F5178 + push {r3, lr} + add r1, sp, #0 + bl ov00_022CF824 + cmp r0, #0 + mvneq r0, #0 + ldrne r0, [sp] + pop {r3, pc} + arm_func_end ov00_022F5178 + + arm_func_start ov00_022F5194 +ov00_022F5194: @ 0x022F5194 + ldr r0, _022F51A0 @ =0x02328788 + ldr r0, [r0, #4] + bx lr + .align 2, 0 +_022F51A0: .4byte 0x02328788 + arm_func_end ov00_022F5194 + + arm_func_start ov00_022F51A4 +ov00_022F51A4: @ 0x022F51A4 + push {r4, r5, r6, lr} + sub sp, sp, #8 + movs r6, r1 + mov r1, #0 + strh r1, [sp, #4] + str r0, [sp] + ldrshne r0, [sp, #4] + mov r5, r2 + mov r2, #0 + orrne r0, r0, #1 + strhne r0, [sp, #4] + cmp r5, #0 + ldrshne r0, [sp, #4] + mov r4, r3 + mov r3, r2 + orrne r0, r0, #8 + strhne r0, [sp, #4] + add r0, sp, #0 + mov r1, #1 + strh r2, [sp, #6] + bl ov00_022CF918 + cmp r0, #0 + addlt sp, sp, #8 + mvnlt r0, #0 + poplt {r4, r5, r6, pc} + cmp r6, #0 + beq _022F5234 + cmp r0, #0 + ble _022F522C + ldrsh r1, [sp, #6] + tst r1, #0x41 + movne r1, #1 + strne r1, [r6] + bne _022F5234 +_022F522C: + mov r1, #0 + str r1, [r6] +_022F5234: + cmp r5, #0 + beq _022F5260 + cmp r0, #0 + ble _022F5258 + ldrsh r1, [sp, #6] + tst r1, #8 + movne r1, #1 + strne r1, [r5] + bne _022F5260 +_022F5258: + mov r1, #0 + str r1, [r5] +_022F5260: + cmp r4, #0 + addeq sp, sp, #8 + popeq {r4, r5, r6, pc} + cmp r0, #0 + ble _022F528C + ldrsh r1, [sp, #6] + tst r1, #0x20 + movne r1, #1 + addne sp, sp, #8 + strne r1, [r4] + popne {r4, r5, r6, pc} +_022F528C: + mov r1, #0 + str r1, [r4] + add sp, sp, #8 + pop {r4, r5, r6, pc} + arm_func_end ov00_022F51A4 + + arm_func_start ov00_022F529C +ov00_022F529C: @ 0x022F529C + push {r3, r4, r5, lr} + mov r4, r1 + mov r1, #3 + mov r2, #0 + mov r5, r0 + bl ov00_022CF5CC + cmp r4, #0 + bicne r2, r0, #4 + orreq r2, r0, #4 + mov r0, r5 + mov r1, #4 + bl ov00_022CF5CC + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + pop {r3, r4, r5, pc} + arm_func_end ov00_022F529C + + arm_func_start ov00_022F52DC +ov00_022F52DC: @ 0x022F52DC + push {r0, r1, r2, r3} + push {r3, lr} + ldr r1, _022F5318 @ =0x0000FFFF + mov ip, #4 + ldr r2, _022F531C @ =0x00001002 + add r3, sp, #0xc + str ip, [sp] + bl ov00_022F5138 + mvn r1, #0 + cmp r0, r1 + movne r0, #1 + moveq r0, #0 + pop {r3, lr} + add sp, sp, #0x10 + bx lr + .align 2, 0 +_022F5318: .4byte 0x0000FFFF +_022F531C: .4byte 0x00001002 + arm_func_end ov00_022F52DC + + arm_func_start ov00_022F5320 +ov00_022F5320: @ 0x022F5320 + push {r3, lr} + mov r2, #0 + add r1, sp, #0 + mov r3, r2 + str r2, [sp] + bl ov00_022F51A4 + cmp r0, #1 + ldreq r0, [sp] + movne r0, #0 + pop {r3, pc} + arm_func_end ov00_022F5320 + + arm_func_start ov00_022F5348 +ov00_022F5348: @ 0x022F5348 + push {r3, lr} + mov r1, #0 + add r2, sp, #0 + mov r3, r1 + str r1, [sp] + bl ov00_022F51A4 + cmp r0, #1 + ldreq r0, [sp] + movne r0, #0 + pop {r3, pc} + arm_func_end ov00_022F5348 + + arm_func_start ov00_022F5370 +ov00_022F5370: @ 0x022F5370 + push {r3, lr} + ldr r2, _022F53E4 @ =0x0231A7B0 + ldr r0, _022F53E8 @ =0x02328788 + ldr r1, _022F53EC @ =0x02328788 + str r2, [r0, #0x18] + str r1, [r0, #0x1c] + mov r1, #2 + strh r1, [r0, #0x20] + mov r2, #0 + ldr r1, _022F53F0 @ =0x023287C4 + strh r2, [r0, #0x22] + str r1, [r0, #0x24] + str r2, [r0, #0x28] + bl ov00_022CEF10 + ldr r1, _022F53F4 @ =0x023287B0 + bl ov00_022CF8F8 + ldr r1, _022F53E8 @ =0x02328788 + ldr r0, [r1, #0x28] + cmp r0, #0 + moveq r0, #0 + popeq {r3, pc} + ldr r2, _022F53F4 @ =0x023287B0 + mov r0, #4 + str r2, [r1, #0x3c] + strh r0, [r1, #0x22] + mov r2, #0 + ldr r0, _022F53F8 @ =0x023287A0 + str r2, [r1, #0x40] + pop {r3, pc} + .align 2, 0 +_022F53E4: .4byte 0x0231A7B0 +_022F53E8: .4byte 0x02328788 +_022F53EC: .4byte 0x02328788 +_022F53F0: .4byte 0x023287C4 +_022F53F4: .4byte 0x023287B0 +_022F53F8: .4byte 0x023287A0 + arm_func_end ov00_022F5370 + + arm_func_start ov00_022F53FC +ov00_022F53FC: @ 0x022F53FC + ldr r3, [r0] + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + lsl r3, r3, #0x18 + orr r0, r1, r0 + and r2, r2, #0xff0000 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r1, r1, r0 + lsr r0, r1, #0x18 + and r2, r0, #0xff + lsr r0, r1, #0x10 + and r0, r0, #0xff + cmp r2, #0xa + moveq r0, #1 + bxeq lr + cmp r2, #0xac + bne _022F5464 + cmp r0, #0x10 + blt _022F5464 + cmp r0, #0x1f + movle r0, #1 + bxle lr +_022F5464: + cmp r2, #0xc0 + cmpeq r0, #0xa8 + moveq r0, #1 + movne r0, #0 + bx lr + arm_func_end ov00_022F53FC + + arm_func_start ov00_022F5478 +ov00_022F5478: @ 0x022F5478 + push {r4, lr} + mov r4, r0 + bl FUN_0207AE44 + lsl r1, r1, #6 + orr r1, r1, r0, lsr #26 + ldr r2, _022F54A8 @ =0x01FF6210 + lsl r0, r0, #6 + mov r3, #0 + bl FUN_0208FE3C + cmp r4, #0 + strne r0, [r4] + pop {r4, pc} + .align 2, 0 +_022F54A8: .4byte 0x01FF6210 + arm_func_end ov00_022F5478 + + arm_func_start ov00_022F54AC +ov00_022F54AC: @ 0x022F54AC + push {r3, r4, r5, lr} + mov r5, r1 + bl ov00_022CF3D4 + movs r4, r0 + mvneq r0, #0 + popeq {r3, r4, r5, pc} + mov r0, #8 + bl ov00_022F5AE4 + cmp r0, #0 + mvneq r0, #0 + popeq {r3, r4, r5, pc} + ldr r1, [r4, #0xc] + ldr r1, [r1] + ldr r1, [r1] + str r1, [r0, #4] + str r0, [r5] + mov r0, #0 + pop {r3, r4, r5, pc} + arm_func_end ov00_022F54AC + + arm_func_start ov00_022F5B14 +ov00_022F5B14: @ 0x022F54F4 + ldr ip, _022F54FC @ =ov00_022F5B14 + bx ip + .align 2, 0 +_022F54FC: .4byte ov00_022F5B14 + arm_func_end ov00_022F5B14 + + arm_func_start ov00_022F5500 +ov00_022F5500: @ 0x022F5500 + push {r4, lr} + ldr r4, [r0, #4] + bl ov00_022F5B14 + mov r0, r4 + pop {r4, pc} + arm_func_end ov00_022F5500 + + arm_func_start ov00_022F5514 +ov00_022F5514: @ 0x022F5514 + push {r3, r4, r5, lr} + movs r5, r0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + bl FUN_02089678 + add r0, r0, #1 + bl ov00_022F5AE4 + movs r4, r0 + beq _022F5540 + mov r1, r5 + bl FUN_02089694 +_022F5540: + mov r0, r4 + pop {r3, r4, r5, pc} + arm_func_end ov00_022F5514 + + arm_func_start ov00_022F5548 +ov00_022F5548: @ 0x022F5548 + ldrsb r3, [r0] + mov r2, r0 + cmp r3, #0 + beq _022F5580 + ldr r1, _022F5588 @ =0x020AECB0 +_022F555C: + cmp r3, #0 + blt _022F5570 + cmp r3, #0x80 + bge _022F5570 + ldrb r3, [r1, r3] +_022F5570: + strb r3, [r0] + ldrsb r3, [r0, #1]! + cmp r3, #0 + bne _022F555C +_022F5580: + mov r0, r2 + bx lr + .align 2, 0 +_022F5588: .4byte 0x020AECB0 + arm_func_end ov00_022F5548 + + arm_func_start ov00_022F558C +ov00_022F558C: @ 0x022F558C + bx lr + arm_func_end ov00_022F558C + + arm_func_start ov00_022F5590 +ov00_022F5590: @ 0x022F5590 + bx lr + arm_func_end ov00_022F5590 + + arm_func_start ov00_022F5594 +ov00_022F5594: @ 0x022F5594 + push {r3, lr} + bl FUN_0207AE44 + lsl r1, r1, #6 + orr r1, r1, r0, lsr #26 + ldr r2, _022F55B8 @ =0x000082EA + lsl r0, r0, #6 + mov r3, #0 + bl FUN_0208FE3C + pop {r3, pc} + .align 2, 0 +_022F55B8: .4byte 0x000082EA + arm_func_end ov00_022F5594 + + arm_func_start ov00_022F55BC +ov00_022F55BC: @ 0x022F55BC + push {r3, lr} + bl FUN_0207AE44 + mov r2, #0xfa00 + umull ip, r3, r0, r2 + mla r3, r1, r2, r3 + ldr r2, _022F55E8 @ =0x000082EA + mov r0, ip + mov r1, r3 + mov r3, #0 + bl FUN_0208FE3C + pop {r3, pc} + .align 2, 0 +_022F55E8: .4byte 0x000082EA + arm_func_end ov00_022F55BC + + arm_func_start ov00_02079B14 +ov00_02079B14: @ 0x022F55EC + ldr ip, _022F55F4 @ =FUN_02079B14 + bx ip + .align 2, 0 +_022F55F4: .4byte FUN_02079B14 + arm_func_end ov00_02079B14 + + arm_func_start ov00_022F55F8 +ov00_022F55F8: @ 0x022F55F8 + ldr r2, _022F5640 @ =0x000041A7 + lsl r1, r0, #0x10 + lsr r0, r0, #0x10 + mul r3, r0, r2 + lsr r1, r1, #0x10 + mul r2, r1, r2 + lsl r0, r3, #0x11 + add r0, r2, r0, lsr #1 + mvn r1, #0x80000000 + cmp r0, r1 + bichi r0, r0, #0x80000000 + addhi r0, r0, #1 + add r0, r0, r3, lsr #15 + mvn r1, #0x80000000 + cmp r0, r1 + bichi r0, r0, #0x80000000 + addhi r0, r0, #1 + bx lr + .align 2, 0 +_022F5640: .4byte 0x000041A7 + arm_func_end ov00_022F55F8 + + arm_func_start ov00_022F5644 +ov00_022F5644: @ 0x022F5644 + push {r3, lr} + ldr r0, _022F5660 @ =0x0231A740 + ldr r0, [r0] + bl ov00_022F55F8 + ldr r1, _022F5660 @ =0x0231A740 + str r0, [r1] + pop {r3, pc} + .align 2, 0 +_022F5660: .4byte 0x0231A740 + arm_func_end ov00_022F5644 + + arm_func_start ov00_022F5664 +ov00_022F5664: @ 0x022F5664 + cmp r0, #0 + bicne r1, r0, #0x80000000 + ldr r0, _022F567C @ =0x0231A740 + moveq r1, #1 + str r1, [r0] + bx lr + .align 2, 0 +_022F567C: .4byte 0x0231A740 + arm_func_end ov00_022F5664 + + arm_func_start ov00_022F5680 +ov00_022F5680: @ 0x022F5680 + push {r3, r4, r5, lr} + mov r5, r0 + subs r4, r1, r5 + popeq {r3, r4, r5, pc} + bl ov00_022F5644 + mov r1, r4 + bl FUN_020900B0 + add r0, r1, r5 + pop {r3, r4, r5, pc} + arm_func_end ov00_022F5680 + + arm_func_start ov00_022F56A4 +ov00_022F56A4: @ 0x022F56A4 + cmp r2, #2 + blt _022F56C0 + ldrsb r3, [r0, #1] + ldrsb ip, [r0] + asr r3, r3, #4 + orr r3, r3, ip, lsl #2 + strb r3, [r1] +_022F56C0: + cmp r2, #3 + blt _022F56E0 + ldrsb ip, [r0, #1] + ldrsb r3, [r0, #2] + lsl ip, ip, #0x1c + asr r3, r3, #2 + orr r3, r3, ip, lsr #24 + strb r3, [r1, #1] +_022F56E0: + cmp r2, #4 + bxlt lr + ldrsb r2, [r0, #2] + ldrsb r0, [r0, #3] + lsl r2, r2, #0x1e + orr r0, r0, r2, lsr #24 + strb r0, [r1, #2] + bx lr + arm_func_end ov00_022F56A4 + + arm_func_start ov00_022F5700 +ov00_022F5700: @ 0x022F5700 + push {r3, lr} + cmp r2, #0 + mov ip, #0 + ble _022F5728 + add lr, sp, #0 +_022F5714: + ldrsb r3, [r0, ip] + add ip, ip, #1 + cmp ip, r2 + strb r3, [lr], #1 + blt _022F5714 +_022F5728: + cmp ip, #3 + bge _022F574C + add r0, sp, #0 + add r2, r0, ip + mov r0, #0 +_022F573C: + add ip, ip, #1 + cmp ip, #3 + strb r0, [r2], #1 + blt _022F573C +_022F574C: + ldrb r0, [sp] + asr r0, r0, #2 + strb r0, [r1] + ldrb r2, [sp] + ldrb r0, [sp, #1] + lsl r2, r2, #0x1e + asr r0, r0, #4 + orr r0, r0, r2, lsr #26 + strb r0, [r1, #1] + ldrb r2, [sp, #1] + ldrb r0, [sp, #2] + lsl r2, r2, #0x1c + asr r0, r0, #6 + orr r0, r0, r2, lsr #26 + strb r0, [r1, #2] + ldrb r0, [sp, #2] + and r0, r0, #0x3f + strb r0, [r1, #3] + pop {r3, pc} + arm_func_end ov00_022F5700 + + arm_func_start ov00_022F5798 +ov00_022F5798: @ 0x022F5798 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + ldr r4, [sp, #0x28] + mov r7, #0 + mov sl, r0 + mov sb, r1 + mov r8, r2 + mov fp, r3 + mov r6, r7 + cmp r4, #1 + beq _022F57CC + cmp r4, #2 + beq _022F57D4 + b _022F57DC +_022F57CC: + ldr r5, _022F5980 @ =0x02318468 + b _022F57E0 +_022F57D4: + ldr r5, _022F5984 @ =0x0231846C + b _022F57E0 +_022F57DC: + ldr r5, _022F5988 @ =0x02318470 +_022F57E0: + cmp r8, #0 + bgt _022F5800 + cmp fp, #0 + movne r0, #0 + strne r0, [fp] + mov r0, #0 + strb r0, [sb] + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022F5800: + add r4, sp, #0 + b _022F5914 +_022F5808: + cmp r0, #0x30 + blt _022F5830 + cmp r0, #0x39 + bgt _022F5830 + lsr r2, r7, #0x1f + rsb r1, r2, r7, lsl #30 + add r1, r2, r1, ror #30 + add r0, r0, #4 + strb r0, [r4, r1] + b _022F58F4 +_022F5830: + cmp r0, #0x61 + blt _022F5858 + cmp r0, #0x7a + bgt _022F5858 + lsr r2, r7, #0x1f + rsb r1, r2, r7, lsl #30 + add r1, r2, r1, ror #30 + sub r0, r0, #0x47 + strb r0, [r4, r1] + b _022F58F4 +_022F5858: + cmp r0, #0x41 + blt _022F5880 + cmp r0, #0x5a + bgt _022F5880 + lsr r2, r7, #0x1f + rsb r1, r2, r7, lsl #30 + add r1, r2, r1, ror #30 + sub r0, r0, #0x41 + strb r0, [r4, r1] + b _022F58F4 +_022F5880: + ldrsb r1, [r5] + cmp r1, r0 + bne _022F58A4 + lsr r1, r7, #0x1f + rsb r0, r1, r7, lsl #30 + add r1, r1, r0, ror #30 + mov r0, #0x3e + strb r0, [r4, r1] + b _022F58F4 +_022F58A4: + ldrsb r1, [r5, #1] + cmp r1, r0 + bne _022F58C8 + lsr r1, r7, #0x1f + rsb r0, r1, r7, lsl #30 + add r1, r1, r0, ror #30 + mov r0, #0x3f + strb r0, [r4, r1] + b _022F58F4 +_022F58C8: + ldrsb r1, [sl, r7] + ldrsb r0, [r5, #2] + cmp r0, r1 + cmpne r1, #0 + beq _022F592C + cmp fp, #0 + movne r0, #0 + strne r0, [fp] + mov r0, #0 + strb r0, [sb] + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022F58F4: + cmp r1, #3 + bne _022F5910 + mov r0, r4 + mov r2, #4 + add r1, sb, r6 + bl ov00_022F56A4 + add r6, r6, #3 +_022F5910: + add r7, r7, #1 +_022F5914: + cmp r7, r8 + bge _022F592C + ldrsb r0, [sl, r7] + ldrsb r1, [r5, #2] + cmp r1, r0 + bne _022F5808 +_022F592C: + cmp r7, #0 + beq _022F5974 + lsr r1, r7, #0x1f + rsb r0, r1, r7, lsl #30 + adds r4, r1, r0, ror #30 + beq _022F5974 + ldrsb r1, [r5, #2] + add r0, sp, #0 + add r0, r0, r4 + rsb r2, r4, #4 + bl FUN_02087308 + add r0, sp, #0 + mov r2, r4 + add r1, sb, r6 + bl ov00_022F56A4 + cmp r4, #3 + addeq r6, r6, #2 + addne r6, r6, #1 +_022F5974: + cmp fp, #0 + strne r6, [fp] + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022F5980: .4byte 0x02318468 +_022F5984: .4byte 0x0231846C +_022F5988: .4byte 0x02318470 + arm_func_end ov00_022F5798 + + arm_func_start ov00_022F598C +ov00_022F598C: @ 0x022F598C + push {r4, r5, r6, r7, r8, sb, sl, lr} + mov r7, r1 + mov r6, r2 + mov sl, r0 + mov r5, r7 + mov sb, r6 + cmp r3, #1 + beq _022F59B8 + cmp r3, #2 + beq _022F59C0 + b _022F59C8 +_022F59B8: + ldr r4, _022F5AB4 @ =0x02318468 + b _022F59CC +_022F59C0: + ldr r4, _022F5AB8 @ =0x0231846C + b _022F59CC +_022F59C8: + ldr r4, _022F5ABC @ =0x02318470 +_022F59CC: + cmp r6, #0 + ble _022F5A04 + mov r8, #3 +_022F59D8: + cmp sb, #3 + movlt r2, sb + movge r2, r8 + mov r0, sl + mov r1, r7 + bl ov00_022F5700 + sub sb, sb, #3 + cmp sb, #0 + add r7, r7, #4 + add sl, sl, #3 + bgt _022F59D8 +_022F5A04: + ldr r1, _022F5AC0 @ =0x55555556 + mov r2, #3 + smull r0, r3, r1, r6 + add r3, r3, r6, lsr #31 + smull r0, r1, r2, r3 + sub r3, r6, r0 + mov r1, r7 + cmp r3, #1 + subeq r1, r7, #2 + beq _022F5A34 + cmp r3, #2 + subeq r1, r7, #1 +_022F5A34: + mov r0, #0 + strb r0, [r7] + cmp r7, r5 + popls {r4, r5, r6, r7, r8, sb, sl, pc} +_022F5A44: + sub r7, r7, #1 + cmp r7, r1 + ldrsbhs r0, [r4, #2] + strbhs r0, [r7] + bhs _022F5AA8 + ldrsb r0, [r7] + cmp r0, #0x19 + addle r0, r0, #0x41 + strble r0, [r7] + ble _022F5AA8 + cmp r0, #0x33 + addle r0, r0, #0x47 + strble r0, [r7] + ble _022F5AA8 + cmp r0, #0x3d + suble r0, r0, #4 + strble r0, [r7] + ble _022F5AA8 + cmp r0, #0x3e + ldrsbeq r0, [r4] + strbeq r0, [r7] + beq _022F5AA8 + cmp r0, #0x3f + ldrsbeq r0, [r4, #1] + strbeq r0, [r7] +_022F5AA8: + cmp r7, r5 + bhi _022F5A44 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022F5AB4: .4byte 0x02318468 +_022F5AB8: .4byte 0x0231846C +_022F5ABC: .4byte 0x02318470 +_022F5AC0: .4byte 0x55555556 + arm_func_end ov00_022F598C +_022F5AC4: + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov00_022F5AC8 +ov00_022F5AC8: @ 0x022F5AC8 + ldr ip, _022F5AE0 @ =0x02328788 + str r0, [ip, #8] + str r1, [ip, #0xc] + str r2, [ip, #0x10] + str r3, [ip, #0x14] + bx lr + .align 2, 0 +_022F5AE0: .4byte 0x02328788 + arm_func_end ov00_022F5AC8 + + arm_func_start ov00_022F5AE4 +ov00_022F5AE4: @ 0x022F5AE4 + push {r3, lr} + ldr r1, _022F5AF8 @ =0x02328788 + ldr r1, [r1, #8] + blx r1 + pop {r3, pc} + .align 2, 0 +_022F5AF8: .4byte 0x02328788 + arm_func_end ov00_022F5AE4 + + arm_func_start ov00_022F5AFC +ov00_022F5AFC: @ 0x022F5AFC + push {r3, lr} + ldr r2, _022F5B10 @ =0x02328788 + ldr r2, [r2, #0x10] + blx r2 + pop {r3, pc} + .align 2, 0 +_022F5B10: .4byte 0x02328788 + arm_func_end ov00_022F5AFC + + arm_func_start ov00_022F5B14 +ov00_022F5B14: @ 0x022F5B14 + push {r3, lr} + cmp r0, #0 + popeq {r3, pc} + ldr r1, _022F5B30 @ =0x02328788 + ldr r1, [r1, #0xc] + blx r1 + pop {r3, pc} + .align 2, 0 +_022F5B30: .4byte 0x02328788 + arm_func_end ov00_022F5B14 + + arm_func_start ov00_022F5B34 +ov00_022F5B34: @ 0x022F5B34 + push {r3, r4, r5, lr} + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + asr r3, r1, #8 + lsl r1, r1, #8 + mov r4, r2 + mov ip, #2 + and r2, r3, #0xff + and r1, r1, #0xff00 + strb ip, [r4, #1] + orr r1, r2, r1 + mov r5, r0 + strh r1, [r4, #2] + bl ov00_022F5178 + mvn r1, #0 + str r0, [r4, #4] + cmp r0, r1 + bne _022F5BA0 + mov r0, r5 + bl ov00_022CF3D4 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldr r0, [r0, #0xc] + ldr r0, [r0] + ldr r0, [r0] + str r0, [r4, #4] +_022F5BA0: + mov r0, #1 + pop {r3, r4, r5, pc} + arm_func_end ov00_022F5B34 + + arm_func_start ov00_022F5BA8 +ov00_022F5BA8: @ 0x022F5BA8 + push {r3, lr} + sub sp, sp, #8 + ldr r1, _022F5BEC @ =0x02328888 + mov r0, #8 + str r1, [sp] + ldr r1, _022F5BF0 @ =0x02328884 + str r0, [sp, #4] + ldr r0, [r1] + ldr r2, [r1, #0x4c] + ldr r1, _022F5BF4 @ =0x02328890 + mov r3, #0 + bl ov00_022F50E0 + bl ov00_022F5594 + ldr r1, _022F5BF0 @ =0x02328884 + str r0, [r1, #0x50] + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_022F5BEC: .4byte 0x02328888 +_022F5BF0: .4byte 0x02328884 +_022F5BF4: .4byte 0x02328890 + arm_func_end ov00_022F5BA8 + + arm_func_start ov00_022F5BF8 +ov00_022F5BF8: @ 0x022F5BF8 + push {r3, r4, r5, lr} + sub sp, sp, #0x40 + mov r4, r0 + ldr r0, _022F5CD4 @ =0x02328804 + mov r1, r4 + bl FUN_02089694 + ldr r0, _022F5CD8 @ =0x02328884 + mvn r1, #0 + str r1, [r0] + bl ov00_022F558C + ldr r0, _022F5CDC @ =0x02328844 + ldrsb r5, [r0] + cmp r5, #0 + bne _022F5C40 + ldr r1, _022F5CE0 @ =0x0231A7BC + add r0, sp, #0 + mov r2, r4 + bl FUN_020790DC +_022F5C40: + cmp r5, #0 + ldrne r0, _022F5CDC @ =0x02328844 + ldr r1, _022F5CE4 @ =0x00006CFC + ldr r2, _022F5CE8 @ =0x02328888 + addeq r0, sp, #0 + bl ov00_022F5B34 + cmp r0, #0 + addeq sp, sp, #0x40 + popeq {r3, r4, r5, pc} + mov r0, #2 + mov r1, r0 + mov r2, #0 + bl ov00_022F4FA0 + ldr r2, _022F5CD8 @ =0x02328884 + mvn r1, #0 + cmp r0, r1 + str r0, [r2] + addeq sp, sp, #0x40 + popeq {r3, r4, r5, pc} + mov r1, #9 + mov r0, r4 + strb r1, [r2, #0xc] + bl FUN_02089678 + mov r5, r0 + ldr r0, _022F5CEC @ =0x02328895 + mov r1, r4 + add r2, r5, #1 + bl FUN_0208729C + ldr r0, _022F5CD8 @ =0x02328884 + add r1, r5, #6 + str r1, [r0, #0x4c] + bl ov00_022F5BA8 + ldr r0, _022F5CD8 @ =0x02328884 + mov r1, #0 + str r1, [r0, #0x54] + add sp, sp, #0x40 + pop {r3, r4, r5, pc} + .align 2, 0 +_022F5CD4: .4byte 0x02328804 +_022F5CD8: .4byte 0x02328884 +_022F5CDC: .4byte 0x02328844 +_022F5CE0: .4byte 0x0231A7BC +_022F5CE4: .4byte 0x00006CFC +_022F5CE8: .4byte 0x02328888 +_022F5CEC: .4byte 0x02328895 + arm_func_end ov00_022F5BF8 + + arm_func_start ov00_022F5CF0 +ov00_022F5CF0: @ 0x022F5CF0 + push {r4, r5, r6, lr} + mov r5, r0 + cmp r1, #7 + mov r6, r2 + mov r4, r3 + movlt r0, #1 + poplt {r4, r5, r6, pc} + ldr r1, _022F5D9C @ =0x0232888C + add r0, r6, #4 + mov r2, #4 + bl FUN_02087348 + cmp r0, #0 + movne r0, #1 + popne {r4, r5, r6, pc} + ldr r0, _022F5DA0 @ =0x02328884 + ldrh r1, [r6, #2] + ldrh r0, [r0, #6] + cmp r1, r0 + movne r0, #1 + popne {r4, r5, r6, pc} + ldr r1, _022F5DA4 @ =0x0231A7E0 + mov r0, r5 + mov r2, #3 + bl FUN_02087348 + cmp r0, #0 + movne r0, #1 + popne {r4, r5, r6, pc} + ldrsb r2, [r5, #3] + ldrsb r1, [r5, #4] + ldrsb r0, [r5, #5] + lsl r3, r2, #0x18 + lsl r2, r1, #0x10 + lsl r1, r0, #8 + and r3, r3, #0xff000000 + and r2, r2, #0xff0000 + ldrb r0, [r5, #6] + orr r2, r3, r2 + and r1, r1, #0xff00 + orr r1, r2, r1 + orr r0, r1, r0 + str r0, [r4] + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_022F5D9C: .4byte 0x0232888C +_022F5DA0: .4byte 0x02328884 +_022F5DA4: .4byte 0x0231A7E0 + arm_func_end ov00_022F5CF0 + + arm_func_start ov00_022F5DA8 +ov00_022F5DA8: @ 0x022F5DA8 + push {r3, lr} + sub sp, sp, #0x58 + ldr r0, _022F5EE8 @ =0x02328884 + mov r2, #8 + ldr r0, [r0] + sub r1, r2, #9 + str r2, [sp, #0xc] + cmp r0, r1 + bne _022F5DE0 + ldr r1, _022F5EEC @ =0x02328800 + mov r0, #1 + str r0, [r1] + add sp, sp, #0x58 + pop {r3, pc} +_022F5DE0: + bl ov00_022F5320 + cmp r0, #0 + beq _022F5E88 + add r0, sp, #0x10 + str r0, [sp] + add r1, sp, #0xc + str r1, [sp, #4] + ldr r0, _022F5EE8 @ =0x02328884 + add r1, sp, #0x18 + ldr r0, [r0] + mov r2, #0x40 + mov r3, #0 + bl ov00_022F509C + mov r1, r0 + add r0, sp, #0x18 + add r2, sp, #0x10 + add r3, sp, #8 + bl ov00_022F5CF0 + cmp r0, #0 + bne _022F5E88 + ldr r0, _022F5EE8 @ =0x02328884 + ldr r0, [r0] + bl ov00_022F4FB4 + ldr r0, [sp, #8] + tst r0, #1 + beq _022F5E58 + ldr r0, _022F5EEC @ =0x02328800 + mov r1, #2 + str r1, [r0] + b _022F5E78 +_022F5E58: + tst r0, #2 + ldreq r0, _022F5EEC @ =0x02328800 + moveq r1, #1 + streq r1, [r0] + beq _022F5E78 + ldr r0, _022F5EEC @ =0x02328800 + mov r1, #3 + str r1, [r0] +_022F5E78: + ldr r0, _022F5EEC @ =0x02328800 + add sp, sp, #0x58 + ldr r0, [r0] + pop {r3, pc} +_022F5E88: + bl ov00_022F5594 + ldr r1, _022F5EE8 @ =0x02328884 + ldr r2, [r1, #0x50] + add r2, r2, #0x7d0 + cmp r0, r2 + bls _022F5EDC + ldr r0, [r1, #0x54] + cmp r0, #1 + bne _022F5EC8 + ldr r0, [r1] + bl ov00_022F4FB4 + ldr r1, _022F5EEC @ =0x02328800 + mov r0, #1 + str r0, [r1] + add sp, sp, #0x58 + pop {r3, pc} +_022F5EC8: + bl ov00_022F5BA8 + ldr r0, _022F5EE8 @ =0x02328884 + ldr r1, [r0, #0x54] + add r1, r1, #1 + str r1, [r0, #0x54] +_022F5EDC: + mov r0, #0 + add sp, sp, #0x58 + pop {r3, pc} + .align 2, 0 +_022F5EE8: .4byte 0x02328884 +_022F5EEC: .4byte 0x02328800 + arm_func_end ov00_022F5DA8 + + arm_func_start ov00_022F5EF0 +ov00_022F5EF0: @ 0x022F5EF0 + push {r4, r5, r6, r7, r8, lr} + mov r7, r1 + mov r8, r0 + bl ov00_022F5594 + bl ov00_022F5664 + mov r6, #0 + cmp r7, #0 + popls {r4, r5, r6, r7, r8, pc} + mov r5, r6 + mov r4, #0xff +_022F5F18: + mov r0, r5 + mov r1, r4 + bl ov00_022F5680 + add r0, r0, #1 + strb r0, [r8, r6] + add r6, r6, #1 + cmp r6, r7 + blo _022F5F18 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022F5EF0 + + arm_func_start ov00_022F5F3C +ov00_022F5F3C: @ 0x022F5F3C + ldr ip, _022F5F44 @ =FUN_022F5F48 + bx ip + .align 2, 0 +_022F5F44: .4byte FUN_022F5F48 + arm_func_end ov00_022F5F3C + + arm_func_start FUN_022F5F48 +FUN_022F5F48: @ 0x022F5F48 + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x184 + mov r7, r2 + mov sb, r0 + cmp r7, #0x75 + add r4, sp, #0x104 + mov r8, r1 + mov r6, r3 + addhi sp, sp, #0x184 + mvnhi r0, #0 + pophi {r4, r5, r6, r7, r8, sb, pc} + rsb r5, r7, #0x7d + mov r3, #0 + mov r2, #2 + mov r1, r5 + add r0, r4, #2 + strb r3, [r4] + strb r2, [r4, #1] + bl ov00_022F5EF0 + add r3, r4, #2 + rsb r0, r7, #0x7e + add r4, r4, r5 + mov r5, #0 + mov r1, r8 + mov r2, r7 + add r0, r3, r0 + strb r5, [r4, #2] + bl FUN_0208729C + add r0, sp, #0 + add r1, sp, #0x104 + mov r2, #0x80 + bl ov00_022F7540 + cmp r0, #0 + beq _022F6000 + add r0, sp, #0 + mov r2, sb + mov r3, r0 + add r1, sb, #0x104 + bl ov00_022F6D28 + cmp r0, #0 + beq _022F6000 + add r0, sp, #0 + mov r1, r6 + bl ov00_022F7584 + cmp r0, #0 + bne _022F600C +_022F6000: + add sp, sp, #0x184 + mvn r0, #0 + pop {r4, r5, r6, r7, r8, sb, pc} +_022F600C: + mov r0, r5 + add sp, sp, #0x184 + pop {r4, r5, r6, r7, r8, sb, pc} + arm_func_end FUN_022F5F48 + + arm_func_start ov00_022F6018 +ov00_022F6018: @ 0x022F6018 + push {r4, lr} + ldr r1, _022F605C @ =0x023288E8 + mov r4, r0 + ldr r0, [r1, r4, lsl #4] + cmp r0, #0 + popne {r4, pc} + ldr r1, _022F6060 @ =0x023288E4 + ldr r0, [r1, r4, lsl #4] + add r0, r0, #1 + str r0, [r1, r4, lsl #4] + bl ov00_022F55BC + ldr r2, _022F6064 @ =0x023288DC + ldr r1, _022F605C @ =0x023288E8 + str r0, [r2, r4, lsl #4] + mov r0, #1 + str r0, [r1, r4, lsl #4] + pop {r4, pc} + .align 2, 0 +_022F605C: .4byte 0x023288E8 +_022F6060: .4byte 0x023288E4 +_022F6064: .4byte 0x023288DC + arm_func_end ov00_022F6018 + + arm_func_start ov00_022F6068 +ov00_022F6068: @ 0x022F6068 + push {r4, lr} + ldr r1, _022F60B0 @ =0x023288E8 + mov r4, r0 + ldr r0, [r1, r4, lsl #4] + cmp r0, #1 + popne {r4, pc} + bl ov00_022F55BC + ldr r1, _022F60B4 @ =0x023288DC + ldr r3, _022F60B8 @ =0x023288E0 + ldr r1, [r1, r4, lsl #4] + ldr r2, [r3, r4, lsl #4] + sub r0, r0, r1 + add r1, r2, r0 + ldr r0, _022F60B0 @ =0x023288E8 + str r1, [r3, r4, lsl #4] + mov r1, #0 + str r1, [r0, r4, lsl #4] + pop {r4, pc} + .align 2, 0 +_022F60B0: .4byte 0x023288E8 +_022F60B4: .4byte 0x023288DC +_022F60B8: .4byte 0x023288E0 + arm_func_end ov00_022F6068 + + arm_func_start ov00_022F60C4 +ov00_022F60C4: @ 0x022F60BC + b _022F60C4 +_022F60C0: + sub r1, r1, #1 + arm_func_end ov00_022F60C4 +_022F60C4: + add ip, r0, r1, lsl #2 + ldr ip, [ip, #-4] + cmp ip, #0 + bne _022F60E4 + cmp r1, #0 + bne _022F60C0 + b _022F60E4 +_022F60E0: + sub r3, r3, #1 +_022F60E4: + add ip, r2, r3, lsl #2 + ldr ip, [ip, #-4] + cmp ip, #0 + bne _022F60FC + cmp r3, #0 + bne _022F60E0 +_022F60FC: + cmp r1, r3 + mvnlo r0, #0 + bxlo lr + movhi r0, #1 + bxhi lr + cmp r1, #0 + beq _022F6144 +_022F6118: + add ip, r2, r1, lsl #2 + add r3, r0, r1, lsl #2 + ldr ip, [ip, #-4] + ldr r3, [r3, #-4] + cmp r3, ip + mvnlo r0, #0 + bxlo lr + movhi r0, #1 + bxhi lr + subs r1, r1, #1 + bne _022F6118 +_022F6144: + mov r0, #0 + bx lr + + arm_func_start ov00_022F615C +ov00_022F615C: @ 0x022F614C + b _022F615C +_022F6150: + ldr r1, [r0] + sub r1, r1, #1 + str r1, [r0] + arm_func_end ov00_022F615C +_022F615C: + ldr r1, [r0] + cmp r1, #0 + beq _022F6174 + ldr r1, [r0, r1, lsl #2] + cmp r1, #0 + beq _022F6150 +_022F6174: + mov r0, #1 + bx lr + + arm_func_start ov00_022F617C +ov00_022F617C: @ 0x022F617C + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov r6, #0 + mov sl, r0 + mov r0, #3 + mov fp, r1 + mov sb, r2 + mov r8, r3 + mov r5, r6 + mov r4, r6 + ldr r7, [sp, #0x28] + bl ov00_022F6018 + ldr r0, [sp, #0x30] + cmp r0, fp + cmphs r0, r8 + movlo r0, #0 + poplo {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp fp, r8 + movlo r0, fp + movlo r1, sb + movhs r0, r8 + movhs r8, fp + movhs r1, sl + cmp r0, #0 + bls _022F620C + mov r2, #0 +_022F61E0: + ldr fp, [sl, r6, lsl #2] + ldr r3, [sb, r6, lsl #2] + adds fp, fp, r3 + adc r3, r2, #0 + adds r5, r5, fp + str r5, [r7, r6, lsl #2] + adc r5, r4, r3 + add r6, r6, #1 + cmp r6, r0 + mov r4, #0 + blo _022F61E0 +_022F620C: + mov r2, #0 + mov r0, r2 + b _022F6230 +_022F6218: + ldr r3, [r1, r6, lsl #2] + adds r3, r5, r3 + str r3, [r7, r6, lsl #2] + adc r5, r4, #0 + add r6, r6, #1 + mov r4, #0 +_022F6230: + cmp r4, r2 + cmpeq r5, r0 + beq _022F6244 + cmp r6, r8 + blo _022F6218 +_022F6244: + mov r0, #0 + cmp r4, r0 + cmpeq r5, r0 + beq _022F6270 + ldr r2, [sp, #0x30] + cmp r2, r6 + popls {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + str r5, [r7, r6, lsl #2] + mov r5, r0 + mov r4, r0 + add r6, r6, #1 +_022F6270: + cmp r6, r8 + bhs _022F6298 + add r1, r1, r6, lsl #2 + add r0, r7, r6, lsl #2 + cmp r0, r1 + beq _022F6294 + sub r2, r8, r6 + lsl r2, r2, #2 + bl FUN_0208729C +_022F6294: + mov r6, r8 +_022F6298: + ldr r1, [sp, #0x2c] + mov r0, #3 + str r6, [r1] + bl ov00_022F6068 + mov r0, #0 + cmp r4, r0 + cmpeq r5, r0 + moveq r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022F617C + + arm_func_start ov00_022F62BC +ov00_022F62BC: @ 0x022F62BC + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov fp, r1 + mov r8, r3 + cmp fp, r8 + strlo fp, [sp] + mov r5, #0 + mov sl, r0 + strhs r8, [sp] + mov r0, #4 + mov sb, r2 + mov r4, r5 + ldr r7, [sp, #0x28] + mov r6, #0 + bl ov00_022F6018 + ldr r0, [sp] + cmp r0, #0 + bls _022F6338 + mov r1, r6 +_022F6304: + ldr r2, [sb, r6, lsl #2] + ldr r0, [sl, r6, lsl #2] + subs r2, r2, r0 + rsc r0, r1, #0 + subs r3, r2, r5 + sbc r2, r0, r4 + str r3, [r7, r6, lsl #2] + ldr r0, [sp] + add r6, r6, #1 + cmp r6, r0 + lsr r5, r2, #0x1f + mov r4, #0 + blo _022F6304 +_022F6338: + cmp r6, r8 + bhs _022F6364 +_022F6340: + ldr r0, [sb, r6, lsl #2] + subs r1, r0, r5 + rsc r0, r4, #0 + str r1, [r7, r6, lsl #2] + add r6, r6, #1 + cmp r6, r8 + lsr r5, r0, #0x1f + mov r4, #0 + blo _022F6340 +_022F6364: + cmp r4, #0 + cmpeq r5, #0 + beq _022F6380 + mov r0, #4 + bl ov00_022F6068 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022F6380: + cmp r6, fp + bhs _022F63B0 +_022F6388: + ldr r0, [sl, r6, lsl #2] + cmp r0, #0 + beq _022F63A4 + mov r0, #4 + bl ov00_022F6068 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022F63A4: + add r6, r6, #1 + cmp r6, fp + blo _022F6388 +_022F63B0: + ldr r1, [sp, #0x2c] + mov r0, #4 + str r8, [r1] + bl ov00_022F6068 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022F62BC + + arm_func_start ov00_022F63C8 +ov00_022F63C8: @ 0x022F63C8 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x114 + str r0, [sp] + ldr r0, [sp, #0x13c] + ldr r4, [sp, #0x140] + str r0, [sp, #0x13c] + mov r0, #0 + str r1, [sp, #4] + str r2, [sp, #8] + str r3, [sp, #0xc] + add r6, sp, #0x10 + mov r1, r0 + mov r2, r0 + mov r3, r0 + mov r5, #8 +_022F6404: + stm r6!, {r0, r1, r2, r3} + stm r6!, {r0, r1, r2, r3} + subs r5, r5, #1 + bne _022F6404 + ldr r1, [sp, #0x13c] + str r0, [r6] + mov r0, #0 + str r0, [r1] + bl ov00_022F6018 + ldr r0, [sp, #0xc] + mov fp, #0 + cmp r0, #0 + bls _022F6534 +_022F6438: + ldr r0, [sp, #8] + ldr r0, [r0, fp, lsl #2] + cmp r0, #0 + beq _022F6524 + ldr r0, [sp, #4] + mov r7, #0 + cmp r0, #0 + bls _022F6524 + add r6, sp, #0x10 + mov r3, r7 + mov r2, r7 + mov r1, r7 + mov r0, r7 + mov ip, r7 +_022F6470: + ldr r5, [sp] + ldr r8, [sp, #8] + ldr r5, [r5, r7, lsl #2] + ldr r8, [r8, fp, lsl #2] + add sl, fp, r7 + umull sb, r8, r5, r8 + cmp sl, r4 + blo _022F64A4 + mov r0, #0 + bl ov00_022F6068 + add sp, sp, #0x114 + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022F64A4: + cmp r8, #0 + cmpeq sb, ip + beq _022F6508 +_022F64B0: + add r5, r6, sl, lsl #2 + ldr lr, [r5, #4] + add sl, sl, #1 + adds sb, sb, lr + str sb, [r5, #4] + adc sb, r8, #0 + cmp sl, r4 + mov r8, #0 + bhi _022F64E8 + cmp sl, r4 + bne _022F64FC + cmp r8, r3 + cmpeq sb, r2 + beq _022F64FC +_022F64E8: + mov r0, #0 + bl ov00_022F6068 + add sp, sp, #0x114 + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022F64FC: + cmp r8, r1 + cmpeq sb, r0 + bne _022F64B0 +_022F6508: + ldr r5, [sp, #0x10] + add r7, r7, #1 + cmp sl, r5 + ldr r5, [sp, #4] + strhi sl, [sp, #0x10] + cmp r7, r5 + blo _022F6470 +_022F6524: + ldr r0, [sp, #0xc] + add fp, fp, #1 + cmp fp, r0 + blo _022F6438 +_022F6534: + add r1, sp, #0x10 + b _022F6548 +_022F653C: + ldr r0, [sp, #0x10] + sub r0, r0, #1 + str r0, [sp, #0x10] +_022F6548: + ldr r4, [sp, #0x10] + cmp r4, #0 + beq _022F6560 + ldr r0, [r1, r4, lsl #2] + cmp r0, #0 + beq _022F653C +_022F6560: + ldr r3, [sp, #0x13c] + ldr r0, [sp, #0x138] + add r1, sp, #0x14 + lsl r2, r4, #2 + str r4, [r3] + bl FUN_0208729C + mov r0, #0 + bl ov00_022F6068 + mov r0, #1 + add sp, sp, #0x114 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022F63C8 + + arm_func_start ov00_022F658C +ov00_022F658C: @ 0x022F658C + push {r3, lr} + str r3, [sp] + mov ip, r1 + mov r3, r2 + ldr r1, [r0], #4 + mov r2, ip + bl ov00_022F65AC + pop {r3, pc} + arm_func_end ov00_022F658C + + arm_func_start ov00_022F65AC +ov00_022F65AC: @ 0x022F65AC + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x314 + mov r4, r0 + mov r0, #5 + mov r6, r1 + mov r5, r3 + add r8, r2, #4 + ldr fp, [sp, #0x338] + ldr sb, [r2] + mov r7, #0x1f + mov sl, #0 + bl ov00_022F6018 + mov r0, sl + add ip, sp, #0x10 + mov r1, r0 + mov r2, r0 + mov r3, r0 + mov lr, #0x10 +_022F65F4: + stm ip!, {r0, r1, r2, r3} + stm ip!, {r0, r1, r2, r3} + subs lr, lr, #1 + bne _022F65F4 + cmp r6, #0x40 + bls _022F6624 + cmp r5, #0 + addne sp, sp, #0x314 + movne r0, #0 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + b _022F6624 +_022F6620: + sub r6, r6, #1 +_022F6624: + cmp r6, #0 + beq _022F6644 + add r0, r4, r6, lsl #2 + ldr r0, [r0, #-4] + cmp r0, #0 + beq _022F6620 + b _022F6644 +_022F6640: + sub sb, sb, #1 +_022F6644: + cmp sb, #0 + beq _022F665C + add r0, r8, sb, lsl #2 + ldr r0, [r0, #-4] + cmp r0, #0 + beq _022F6640 +_022F665C: + lsl r0, r6, #2 + str r0, [sp, #8] + ldr r2, [sp, #8] + add r0, sp, #0x10 + mov r1, r4 + bl FUN_0208729C + mov r0, #0 + add ip, sp, #0x210 + mov r1, r0 + mov r2, r0 + mov r3, r0 + mov r4, #8 +_022F668C: + stm ip!, {r0, r1, r2, r3} + stm ip!, {r0, r1, r2, r3} + subs r4, r4, #1 + bne _022F668C + cmp r6, #0 + str r0, [ip] + cmpne sb, #0 + bne _022F66E8 + cmp r5, #0 + movne r0, #0 + strne r0, [r5, #4] + strne r0, [r5] + cmp fp, #0 + movne r0, #0 + strne r0, [fp, #4] + strne r0, [fp] + mov r0, #5 + bl ov00_022F6068 + cmp sb, #0 + moveq r0, #0 + add sp, sp, #0x314 + movne r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022F66E8: + add r0, sp, #0x10 + mov r1, r6 + mov r2, r8 + mov r3, sb + bl ov00_022F60C4 + mvn r1, #0 + cmp r0, r1 + bne _022F6740 + cmp r5, #0 + movne r0, #0 + strne r0, [r5] + strne r0, [r5, #4] + ldr r2, [sp, #8] + add r1, sp, #0x10 + add r0, fp, #4 + str r6, [fp] + bl FUN_0208729C + mov r0, #5 + bl ov00_022F6068 + add sp, sp, #0x314 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022F6740: + sub r2, sb, #1 + ldr r1, [r8, r2, lsl #2] + mov r0, #1 + b _022F6754 +_022F6750: + sub r7, r7, #1 +_022F6754: + tst r1, r0, lsl r7 + bne _022F6764 + cmp r7, #0 + bge _022F6750 +_022F6764: + mvn r0, #0 + cmp r7, r0 + bne _022F6784 + mov r0, #5 + bl ov00_022F6068 + add sp, sp, #0x314 + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022F6784: + mov r4, sb + add r7, r7, r2, lsl #5 + sub r6, r6, sb +_022F6790: + add r0, sp, #0x10 + mov r1, r4 + mov r2, r8 + mov r3, sb + add r0, r0, r6, lsl #2 + bl ov00_022F60C4 + mvn r1, #0 + cmp r0, r1 + bne _022F67C8 + cmp r6, #0 + subgt r6, r6, #1 + addgt r4, r4, #1 + movle sl, #1 + b _022F68CC +_022F67C8: + cmp r0, #0 + mov r1, #0 + add r0, sp, #0x10 + bne _022F6818 + lsl r2, r4, #2 + add r0, r0, r6, lsl #2 + bl FUN_02087308 + add r0, sp, #0x210 + add r2, r0, r6, lsl #2 + ldr r0, [r2, #4] + add r1, r6, r4 + add r0, r0, #1 + str r0, [r2, #4] + ldr r0, [sp, #0x210] + cmp r0, r1 + strlo r1, [sp, #0x210] + subs r6, r6, r4 + mov r4, #1 + movmi sl, r4 + b _022F68CC +_022F6818: + str r1, [sp, #0xc] + add ip, sp, #0xc + mov r1, r4 + mov r2, r8 + mov r3, sb + add r0, r0, r6, lsl #2 + stm sp, {r7, ip} + bl ov00_022F6938 + cmp r0, #0 + bne _022F6854 + mov r0, #5 + bl ov00_022F6068 + add sp, sp, #0x314 + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022F6854: + add r0, sp, #0x210 + add r2, r0, r6, lsl #2 + ldr r3, [sp, #0xc] + ldr r0, [r2, #4] + add r1, r6, r4 + add r0, r3, r0 + str r0, [r2, #4] + ldr r0, [sp, #0x210] + cmp r0, r1 + add r0, sp, #0x10 + strlo r1, [sp, #0x210] + add r1, r0, r6, lsl #2 + b _022F688C +_022F6888: + sub r4, r4, #1 +_022F688C: + add r0, r1, r4, lsl #2 + ldr r0, [r0, #-4] + cmp r0, #0 + bne _022F68A4 + cmp r4, #1 + bgt _022F6888 +_022F68A4: + add r0, sp, #0x10 + add r1, r0, r4, lsl #2 + b _022F68B4 +_022F68B0: + sub r6, r6, #1 +_022F68B4: + add r0, r1, r6, lsl #2 + ldr r0, [r0, #-4] + cmp r0, #0 + bne _022F68CC + cmp r6, #1 + bgt _022F68B0 +_022F68CC: + cmp sl, #0 + beq _022F6790 + cmp r6, #0 + movlt r0, #0 + strlt r0, [fp, #4] + strlt r0, [fp] + blt _022F6900 + add r1, sp, #0x10 + add r0, fp, #4 + add r1, r1, r6, lsl #2 + lsl r2, r4, #2 + bl FUN_0208729C + str r4, [fp] +_022F6900: + cmp r5, #0 + beq _022F6924 + ldr r2, [sp, #0x210] + add r1, sp, #0x214 + add r0, r5, #4 + lsl r2, r2, #2 + bl FUN_0208729C + ldr r0, [sp, #0x210] + str r0, [r5] +_022F6924: + mov r0, #5 + bl ov00_022F6068 + mov r0, #1 + add sp, sp, #0x314 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022F65AC + + arm_func_start ov00_022F6938 +ov00_022F6938: @ 0x022F6938 + push {r0, r1, r2, r3} + push {r3, r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x214 + mov r6, r0 + mov r0, #6 + mov r5, r2 + mov r4, r3 + bl ov00_022F6018 + ldr r2, [sp, #0x23c] + cmp r2, r4 + subls r0, r2, #1 + ldrls sb, [r6, r0, lsl #2] + movls ip, #0 + bls _022F6994 + sub r1, r2, #2 + sub r0, r4, #1 + sub r2, r2, #1 + ldr r2, [r6, r2, lsl #2] + ldr r1, [r6, r1, lsl #2] + ldr r0, [r5, r0, lsl #2] + orr ip, r2, #0 + and r0, r1, r0 + orr sb, r0, #0 +_022F6994: + sub r0, r4, #1 + ldr r2, [r5, r0, lsl #2] + mov r0, sb + mov r1, ip + mov r3, #0 + bl FUN_0208FE3C + mov sb, r0 + mov r0, #0 + mov ip, r1 + add r8, sp, #0xc + mov r1, r0 + mov r2, r0 + mov r3, r0 + mov r7, #8 +_022F69CC: + stm r8!, {r0, r1, r2, r3} + stm r8!, {r0, r1, r2, r3} + subs r7, r7, #1 + bne _022F69CC + str r0, [r8] + str sb, [sp, #0x10] + str ip, [sp, #0x14] + cmp ip, #0 + beq _022F6A00 + mvn r1, #0 + mov r0, #0 + str r1, [sp, #0x10] + str r0, [sp, #0x14] +_022F6A00: + mov r0, #1 + str r0, [sp, #0xc] + add r1, sp, #0x114 + str r1, [sp] + add r0, sp, #0x110 + str r0, [sp, #4] + mov r0, #0x40 + str r0, [sp, #8] + ldr r3, [sp, #0xc] + add r2, sp, #0x10 + mov r0, r5 + mov r1, r4 + bl ov00_022F63C8 + cmp r0, #0 + bne _022F6A58 + mov r0, #6 + bl ov00_022F6068 + add sp, sp, #0x214 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, lr} + add sp, sp, #0x10 + bx lr +_022F6A58: + ldr r1, [sp, #0x110] + ldr r3, [sp, #0x23c] + add r0, sp, #0x114 + mov r2, r6 + bl ov00_022F60C4 + cmp r0, #1 + bne _022F6AF0 + add sl, sp, #0x114 + add sb, sp, #0x110 + mov r8, #0x40 + add r7, sp, #0x10 +_022F6A84: + ldr r1, [sp, #0x10] + mov r0, r5 + lsr r1, r1, #1 + str r1, [sp, #0x10] + str sl, [sp] + str sb, [sp, #4] + str r8, [sp, #8] + ldr r3, [sp, #0xc] + mov r1, r4 + mov r2, r7 + bl ov00_022F63C8 + cmp r0, #0 + bne _022F6AD4 + mov r0, #6 + bl ov00_022F6068 + add sp, sp, #0x214 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, lr} + add sp, sp, #0x10 + bx lr +_022F6AD4: + ldr r1, [sp, #0x110] + ldr r3, [sp, #0x23c] + mov r0, sl + mov r2, r6 + bl ov00_022F60C4 + cmp r0, #1 + beq _022F6A84 +_022F6AF0: + add r0, sp, #0x23c + str r6, [sp] + str r0, [sp, #4] + ldr r1, [sp, #0x110] + ldr r3, [sp, #0x23c] + add r0, sp, #0x114 + mov r2, r6 + bl ov00_022F62BC + ldr r2, [sp, #0x10] + ldr r1, [sp, #0x24c] + mov r0, #6 + str r2, [r1] + bl ov00_022F6068 + mov r0, #1 + add sp, sp, #0x214 + pop {r3, r4, r5, r6, r7, r8, sb, sl, lr} + add sp, sp, #0x10 + bx lr + arm_func_end ov00_022F6938 + + arm_func_start ov00_022F6B38 +ov00_022F6B38: @ 0x022F6B38 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x18 + sub sp, sp, #0x400 + mov r7, r0 + ldr r4, [r7] + mov r6, #0 + mov r0, #7 + str r1, [sp, #0xc] + str r2, [sp, #0x10] + mov r5, r6 + mov fp, r6 + str r6, [sp, #0x14] + bl ov00_022F6018 + mov r0, r6 + add sb, sp, #0x218 + mov r1, r0 + mov r2, r0 + mov r3, r0 + mov r8, #0x10 +_022F6B84: + stm sb!, {r0, r1, r2, r3} + stm sb!, {r0, r1, r2, r3} + subs r8, r8, #1 + bne _022F6B84 + mov r0, #0 + add sb, sp, #0x18 + mov r1, r0 + mov r2, r0 + mov r3, r0 + mov r8, #0x10 +_022F6BAC: + stm sb!, {r0, r1, r2, r3} + stm sb!, {r0, r1, r2, r3} + subs r8, r8, #1 + bne _022F6BAC + cmp r4, #1 + mov sb, #1 + ble _022F6C44 + mov r0, #0 +_022F6BCC: + mov sl, #0 + cmp sb, #0 + ble _022F6C18 + add r1, sp, #0x18 + add ip, r1, sb, lsl #2 + add r3, r7, sb, lsl #2 +_022F6BE4: + ldr r8, [ip, sl, lsl #2] + ldr r2, [r3, #4] + add r1, r7, sl, lsl #2 + ldr r1, [r1, #4] + mov lr, #0 + umlal r8, lr, r2, r1 + adds r1, r6, r8 + str r1, [ip, sl, lsl #2] + adc r6, r5, lr + mov r5, #0 + add sl, sl, #1 + cmp sl, sb + blt _022F6BE4 +_022F6C18: + cmp r5, #0 + cmpeq r6, r0 + beq _022F6C38 + add r2, sb, sl + add r1, sp, #0x18 + str r6, [r1, r2, lsl #2] + mov r6, r5 + mov r5, #0 +_022F6C38: + add sb, sb, #1 + cmp sb, r4 + blt _022F6BCC +_022F6C44: + lsl r1, r4, #1 + cmp r1, #0 + mov r8, #0 + ble _022F6C8C + mov r2, r8 + mov r3, #1 + add r5, sp, #0x18 +_022F6C60: + ldr r6, [r5, r8, lsl #2] + and r0, r6, #0x80000000 + cmp r0, #0x80000000 + moveq sb, r3 + add r0, fp, r6, lsl #1 + movne sb, r2 + str r0, [r5, r8, lsl #2] + add r8, r8, #1 + mov fp, sb + cmp r8, r1 + blt _022F6C60 +_022F6C8C: + cmp r4, #0 + mov r8, #0 + ble _022F6CC8 + mov r6, r8 + add r2, sp, #0x218 +_022F6CA0: + add r0, r7, r8, lsl #2 + ldr r5, [r0, #4] + add r8, r8, #1 + umull r0, r3, r5, r5 + str r0, [r2, r6, lsl #2] + add r0, r2, r6, lsl #2 + str r3, [r0, #4] + cmp r8, r4 + add r6, r6, #2 + blt _022F6CA0 +_022F6CC8: + add r2, sp, #0x218 + str r1, [sp, #0x14] + add r0, sp, #0x14 + str r2, [sp] + str r0, [sp, #4] + mov r4, #0x80 + add r0, sp, #0x18 + mov r3, r1 + str r4, [sp, #8] + bl ov00_022F617C + ldr r0, [sp, #0x10] + ldr r2, [sp, #0xc] + str r0, [sp] + ldr r1, [sp, #0x14] + add r0, sp, #0x218 + mov r3, #0 + bl ov00_022F65AC + mov r4, r0 + mov r0, #7 + bl ov00_022F6068 + mov r0, r4 + add sp, sp, #0x18 + add sp, sp, #0x400 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022F6B38 + + arm_func_start ov00_022F6D28 +ov00_022F6D28: @ 0x022F6D28 + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x28 + sub sp, sp, #0x800 + mov r6, r0 + mov r0, #8 + mov r5, r1 + mov r4, r2 + mov r8, r3 + bl ov00_022F6018 + mov r0, #0 + add sb, sp, #0x700 + add sb, sb, #0x24 + mov r1, r0 + mov r2, r0 + mov r3, r0 + mov r7, #8 +_022F6D68: + stm sb!, {r0, r1, r2, r3} + stm sb!, {r0, r1, r2, r3} + subs r7, r7, #1 + bne _022F6D68 + str r0, [sb] + mov r0, #0 + add sb, sp, #0x620 + mov r1, r0 + mov r2, r0 + mov r3, r0 + mov r7, #8 +_022F6D94: + stm sb!, {r0, r1, r2, r3} + stm sb!, {r0, r1, r2, r3} + subs r7, r7, #1 + bne _022F6D94 + str r0, [sb] + mov r0, #0 + add sb, sp, #0x500 + add sb, sb, #0x1c + mov r1, r0 + mov r2, r0 + mov r3, r0 + mov r7, #8 +_022F6DC4: + stm sb!, {r0, r1, r2, r3} + stm sb!, {r0, r1, r2, r3} + subs r7, r7, #1 + bne _022F6DC4 + str r0, [sb] + mov r0, #0 + add sb, sp, #0x400 + add sb, sb, #0x18 + mov r1, r0 + mov r2, r0 + mov r3, r0 + mov r7, #8 +_022F6DF4: + stm sb!, {r0, r1, r2, r3} + stm sb!, {r0, r1, r2, r3} + subs r7, r7, #1 + bne _022F6DF4 + str r0, [sb] + mov r0, #0 + add sb, sp, #0x314 + mov r1, r0 + mov r2, r0 + mov r3, r0 + mov r7, #8 +_022F6E20: + stm sb!, {r0, r1, r2, r3} + stm sb!, {r0, r1, r2, r3} + subs r7, r7, #1 + bne _022F6E20 + str r0, [sb] + add r0, sp, #0x210 + mov r1, r6 + mov r2, #0x104 + bl FUN_0208729C + add r0, sp, #0x10c + mov r1, r5 + mov r2, #0x104 + bl FUN_0208729C + add r0, sp, #8 + mov r1, r4 + mov r2, #0x104 + bl FUN_0208729C + add r0, sp, #0x210 + bl ov00_022F615C + add r0, sp, #0x10c + bl ov00_022F615C + add r0, sp, #8 + bl ov00_022F615C + ldr r3, [sp, #8] + cmp r3, #0 + bne _022F6EA8 + mov r1, #0 + mov r0, #8 + str r1, [r8] + bl ov00_022F6068 + add sp, sp, #0x28 + add sp, sp, #0x800 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022F6EA8: + cmp r3, #1 + ldreq r0, [sp, #0xc] + cmpeq r0, #1 + bne _022F6EDC + mov r1, #0 + str r1, [r8] + mov r0, #8 + str r1, [r8, #4] + bl ov00_022F6068 + add sp, sp, #0x28 + add sp, sp, #0x800 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022F6EDC: + ldr r0, [sp, #0x10c] + cmp r0, #0 + bne _022F6F0C + mov r1, #1 + str r1, [r8] + mov r0, #8 + str r1, [r8, #4] + bl ov00_022F6068 + add sp, sp, #0x28 + add sp, sp, #0x800 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022F6F0C: + ldr r0, [sp, #0xc] + tst r0, #1 + bne _022F6F3C + mov r1, #0 + str r1, [r8] + mov r0, #8 + str r1, [r8, #4] + bl ov00_022F6068 + add sp, sp, #0x28 + add sp, sp, #0x800 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022F6F3C: + ldr r1, [sp, #0x210] + add r0, sp, #0x214 + add r2, sp, #0xc + bl ov00_022F60C4 + mvn r1, #0 + cmp r0, r1 + beq _022F6F6C + add r0, sp, #0x210 + add r1, sp, #8 + mov r3, r0 + mov r2, #0 + bl ov00_022F658C +_022F6F6C: + ldr r0, [sp, #0x210] + cmp r0, #0 + bne _022F6F9C + mov r1, #0 + str r1, [r8] + mov r0, #8 + str r1, [r8, #4] + bl ov00_022F6068 + add sp, sp, #0x28 + add sp, sp, #0x800 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022F6F9C: + ldr r1, [sp, #0x10c] + add r0, sp, #0x110 + sub r5, r1, #1 + ldr r0, [r0, r5, lsl #2] + mov r4, #0x20 + tst r0, #0x80000000 + bne _022F6FD8 + add r0, sp, #0x10c + add r0, r0, r5, lsl #2 + ldr r0, [r0, #4] + mov r2, #1 +_022F6FC8: + sub r4, r4, #1 + sub r1, r4, #1 + tst r0, r2, lsl r1 + beq _022F6FC8 +_022F6FD8: + mov r0, #0 + add r6, sp, #0x700 + add r4, r4, r5, lsl #5 + add r6, r6, #0x24 + mov r1, r0 + mov r2, r0 + mov r3, r0 + mov r5, #8 +_022F6FF8: + stm r6!, {r0, r1, r2, r3} + stm r6!, {r0, r1, r2, r3} + subs r5, r5, #1 + bne _022F6FF8 + ldr r1, [sp, #8] + str r0, [r6] + add r3, r1, #1 + cmp r3, #0x40 + str r3, [sp, #0x724] + addhi sp, sp, #0x28 + addhi sp, sp, #0x800 + movhi r0, #0 + pophi {r3, r4, r5, r6, r7, r8, sb, pc} + add r2, sp, #0x700 + add r2, r2, #0x28 + add r0, sp, #8 + add r1, sp, #4 + sub r3, r3, #1 + mov r5, #1 + str r5, [r2, r3, lsl #2] + bl ov00_022F7478 + add r0, sp, #0x700 + add r0, r0, #0x24 + add r1, sp, #8 + add r3, sp, #0x620 + mov r2, #0 + bl ov00_022F658C + cmp r0, #0 + bne _022F7084 + mov r0, #8 + bl ov00_022F6068 + add sp, sp, #0x28 + add sp, sp, #0x800 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022F7084: + add r2, sp, #0x500 + add r0, sp, #0x620 + add r1, sp, #8 + add r2, r2, #0x1c + bl ov00_022F6B38 + cmp r0, #0 + bne _022F70B8 + mov r0, #8 + bl ov00_022F6068 + add sp, sp, #0x28 + add sp, sp, #0x800 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022F70B8: + add r1, sp, #0x314 + str r1, [sp] + add r1, sp, #0x500 + ldr r3, [sp, #4] + add r0, sp, #0x210 + add r1, r1, #0x1c + add r2, sp, #8 + bl ov00_022F71B0 + cmp r0, #0 + bne _022F70F8 + mov r0, #8 + bl ov00_022F6068 + add sp, sp, #0x28 + add sp, sp, #0x800 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022F70F8: + add r1, sp, #0x620 + mov r0, r8 + mov r2, #0x104 + bl FUN_0208729C + subs r7, r4, #1 + bmi _022F7170 + add sb, sp, #0x314 + add r6, sp, #8 + add r4, sp, #0x10c +_022F711C: + str r8, [sp] + ldr r3, [sp, #4] + mov r0, r8 + mov r1, r8 + mov r2, r6 + bl ov00_022F71B0 + lsr r0, r7, #5 + add r0, r4, r0, lsl #2 + ldr r0, [r0, #4] + and r1, r7, #0x1f + and r0, r0, r5, lsl r1 + cmp r0, r5, lsl r1 + bne _022F7168 + str r8, [sp] + ldr r3, [sp, #4] + mov r0, r8 + mov r1, sb + mov r2, r6 + bl ov00_022F71B0 +_022F7168: + subs r7, r7, #1 + bpl _022F711C +_022F7170: + mov r0, #1 + str r0, [sp, #0x418] + str r0, [sp, #0x41c] + str r8, [sp] + add r1, sp, #0x400 + ldr r3, [sp, #4] + add r1, r1, #0x18 + add r2, sp, #8 + mov r0, r8 + bl ov00_022F71B0 + mov r0, #8 + bl ov00_022F6068 + mov r0, #1 + add sp, sp, #0x28 + add sp, sp, #0x800 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_022F6D28 + + arm_func_start ov00_022F71B0 +ov00_022F71B0: @ 0x022F71B0 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x218 + mov r6, r0 + mov r0, #0 + mov r5, r1 + ldr r1, [sp, #0x240] + mov r4, r2 + str r3, [sp, #0xc] + str r0, [sp, #0x14] + str r1, [sp, #0x240] + ldr r1, [r4] + add r8, sp, #0x18 + str r1, [sp, #0x10] + mov r1, r0 + mov r2, r0 + mov r3, r0 + mov r7, #0x10 +_022F71F4: + stm r8!, {r0, r1, r2, r3} + stm r8!, {r0, r1, r2, r3} + subs r7, r7, #1 + bne _022F71F4 + add r1, sp, #0x18 + add r0, sp, #0x14 + str r1, [sp] + str r0, [sp, #4] + mov r0, #0x80 + str r0, [sp, #8] + ldr r1, [r6] + ldr r3, [r5] + add r0, r6, #4 + add r2, r5, #4 + bl ov00_022F63C8 + cmp r0, #0 + addeq sp, sp, #0x218 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r6, [r4] + ldr r0, [sp, #0x14] + add r2, sp, #0x18 + sub r3, r6, #1 + add r1, r4, #4 + cmp r0, r6, lsl #1 + add fp, r2, r3, lsl #2 + add r5, r1, r3, lsl #2 + bhs _022F7284 + rsb r1, r0, r6, lsl #1 + add r0, r2, r0, lsl #2 + lsl r2, r1, #2 + mov r1, #0 + bl FUN_02087308 + ldr r0, [r4] + lsl r0, r0, #1 + str r0, [sp, #0x14] +_022F7284: + add lr, sp, #0x18 + cmp lr, fp + bhi _022F735C +_022F7290: + ldr r1, [lr] + ldr r0, [sp, #0xc] + add r6, r4, #4 + umull sb, r1, r0, r1 + mov sl, #0 + cmp r6, r5 + mov r7, lr + mov r8, sl + cmpls r6, r5 + bhi _022F72EC + mov r0, sl +_022F72BC: + ldr r1, [r6], #4 + ldr ip, [r7] + umull r3, r2, sb, r1 + adds r3, ip, r3 + mla r2, sb, r0, r2 + mla r2, r8, r1, r2 + adc r1, r2, #0 + adds sl, sl, r3 + str sl, [r7], #4 + adc sl, r1, #0 + cmp r6, r5 + bls _022F72BC +_022F72EC: + ldr r0, [sp, #0x14] + mov r3, #0 + add r1, sp, #0x18 + sub r0, r0, #1 + add r2, r1, r0, lsl #2 + mov r8, r3 + mov r1, r3 + mov r0, r3 + b _022F7320 +_022F7310: + ldr r6, [r7] + adds sl, r6, sl + str sl, [r7], #4 + adc sl, r3, #0 +_022F7320: + cmp r8, r1 + cmpeq sl, r0 + beq _022F7334 + cmp r7, r2 + bls _022F7310 +_022F7334: + cmp r8, #0 + cmpeq sl, #0 + beq _022F7350 + ldr r0, [sp, #0x14] + str sl, [r7] + add r0, r0, #1 + str r0, [sp, #0x14] +_022F7350: + add lr, lr, #4 + cmp lr, fp + bls _022F7290 +_022F735C: + ldr r0, [sp, #0x10] + add r1, sp, #0x18 + add r5, r1, r0, lsl #2 + ldr r2, [sp, #0x14] + ldr r1, [sp, #0x10] + ldr r3, [r4] + sub r1, r2, r1 + mov r0, r5 + add r2, r4, #4 + bl ov00_022F60C4 + mvn r1, #0 + cmp r0, r1 + beq _022F740C + ldr r0, [sp, #0x240] + ldr r3, [sp, #0x10] + add r0, r0, #4 + str r0, [sp] + ldr r0, [sp, #0x240] + mov r2, r5 + str r0, [sp, #4] + ldr r6, [sp, #0x14] + ldr r1, [r4] + add r0, r4, #4 + sub r3, r6, r3 + bl ov00_022F62BC + cmp r0, #0 + bne _022F746C + mov r0, #0 + add r5, sp, #0x18 + mov r1, r0 + mov r2, r0 + mov r3, r0 + mov r4, #0x10 +_022F73E0: + stm r5!, {r0, r1, r2, r3} + stm r5!, {r0, r1, r2, r3} + subs r4, r4, #1 + bne _022F73E0 + ldr r0, [sp, #0x240] + mov r1, #0 + mov r2, #0x104 + bl FUN_02087308 + add sp, sp, #0x218 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022F740C: + ldr r0, [sp, #0x240] + mov r1, #0 + mov r2, #0x104 + bl FUN_02087308 + ldr r1, [r4] + ldr r0, [sp, #0x240] + add r3, sp, #0x18 + str r1, [r0], #4 + ldr r2, [sp, #0x14] + ldr r1, [sp, #0x10] + sub r2, r2, r1 + add r1, r3, r1, lsl #2 + lsl r2, r2, #2 + bl FUN_0208729C + mov r0, #0 + add r5, sp, #0x18 + mov r1, r0 + mov r2, r0 + mov r3, r0 + mov r4, #0x10 +_022F745C: + stm r5!, {r0, r1, r2, r3} + stm r5!, {r0, r1, r2, r3} + subs r4, r4, #1 + bne _022F745C +_022F746C: + mov r0, #1 + add sp, sp, #0x218 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022F71B0 + + arm_func_start ov00_022F7478 +ov00_022F7478: @ 0x022F7478 + push {r4, r5, r6, r7, r8, sb, sl, lr} + mov r3, #2 + mov r2, #0 + ldr r5, [r0, #4] + mov r0, r2 + mov lr, r3 + mov ip, #1 + mov r4, r2 + mvn r6, #0 +_022F749C: + umull sl, sb, r5, ip + mla sb, r5, r0, sb + lsl r7, r2, #1 + adds r8, r6, r3, lsl #1 + and r8, sl, r8 + orr r7, r7, r3, lsr #31 + adc r7, r7, r6 + mla sb, r4, ip, sb + and r7, sb, r7 + cmp r2, r7 + cmpeq r3, r8 + bhs _022F74D4 + adds ip, ip, r3 + adc r0, r0, r2 +_022F74D4: + lsl r2, r2, #1 + add lr, lr, #1 + orr r2, r2, r3, lsr #31 + cmp lr, #0x20 + lsl r3, r3, #1 + bls _022F749C + subs r0, r3, ip + str r0, [r1] + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end ov00_022F7478 + + arm_func_start ov00_022F74FC +ov00_022F74FC: @ 0x022F74FC + ldr r1, [r0] + add r2, r0, #4 + add r0, r2, r1, lsl #2 + cmp r1, #0 + sub r3, r0, #1 + moveq r0, #1 + bxeq lr + cmp r2, r3 + bhs _022F7538 +_022F7520: + ldrsb r0, [r3] + ldrsb r1, [r2] + strb r0, [r2], #1 + strb r1, [r3], #-1 + cmp r2, r3 + blo _022F7520 +_022F7538: + mov r0, #1 + bx lr + arm_func_end ov00_022F74FC + + arm_func_start ov00_022F7540 +ov00_022F7540: @ 0x022F7540 + push {r3, r4, r5, lr} + mov r5, r2 + and r3, r5, #3 + mov r4, r0 + rsb r0, r3, #4 + mov ip, #0 + add r3, r4, #4 + and r0, r0, #3 + add r0, r3, r0 + str ip, [r4, #4] + bl FUN_0208729C + add r0, r5, #3 + lsr r1, r0, #2 + mov r0, r4 + str r1, [r4] + bl ov00_022F74FC + pop {r3, r4, r5, pc} + arm_func_end ov00_022F7540 + + arm_func_start ov00_022F7584 +ov00_022F7584: @ 0x022F7584 + push {r3, r4, lr} + sub sp, sp, #0x104 + mov r2, r0 + mov r4, r1 + mov r1, r2 + add r0, sp, #0 + mov r2, #0x104 + bl FUN_0208729C + add r0, sp, #0 + bl ov00_022F74FC + ldr r2, [sp] + add r1, sp, #4 + mov r0, r4 + lsl r2, r2, #2 + bl FUN_0208729C + mov r0, #1 + add sp, sp, #0x104 + pop {r3, r4, pc} + arm_func_end ov00_022F7584 + + arm_func_start ov00_022F75CC +ov00_022F75CC: @ 0x022F75CC + ldrb r3, [r0] + ldrb r2, [r1] + strb r2, [r0] + strb r3, [r1] + bx lr + arm_func_end ov00_022F75CC + + arm_func_start ov00_022F75E0 +ov00_022F75E0: @ 0x022F75E0 + push {r4, r5, r6, r7, r8, sb, sl, lr} + mov r4, #0 + movs r8, r1 + mov r7, r2 + mov sb, r0 + mov r5, r4 + cmpne r7, #0 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + strb r4, [sb] + mov r1, r4 + strb r4, [sb, #1] +_022F760C: + add r0, sb, r1 + strb r1, [r0, #2] + add r1, r1, #1 + cmp r1, #0x100 + blt _022F760C + mov r6, #0 + add sl, sb, #2 +_022F7628: + add r0, sb, r6 + ldrb r2, [r0, #2] + ldrb r1, [r8, r5] + add r0, sl, r6 + add r2, r4, r2 + add r1, r2, r1 + and r4, r1, #0xff + add r1, sl, r4 + bl ov00_022F75CC + mov r1, r7 + add r0, r5, #1 + bl FUN_0208FEA4 + add r6, r6, #1 + cmp r6, #0x100 + and r5, r1, #0xff + blt _022F7628 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end ov00_022F75E0 + + arm_func_start ov00_022F766C +ov00_022F766C: @ 0x022F766C + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r6, r3 + mov sb, r0 + mov r8, r1 + mov r7, r2 + mov r5, #0 + cmp r6, #0 + pople {r3, r4, r5, r6, r7, r8, sb, pc} + add r4, sb, #2 +_022F7690: + ldrb r0, [sb] + add r1, r0, #1 + and r0, r1, #0xff + strb r1, [sb] + add r0, sb, r0 + ldrb r1, [sb, #1] + ldrb r0, [r0, #2] + add r0, r1, r0 + strb r0, [sb, #1] + ldrb r2, [sb] + and r0, r0, #0xff + add r1, r4, r0 + add r0, r4, r2 + bl ov00_022F75CC + ldrb r2, [sb] + ldrb r1, [sb, #1] + ldrb r0, [r8, r5] + add r2, sb, r2 + add r1, sb, r1 + ldrb r2, [r2, #2] + ldrb r1, [r1, #2] + add r1, r2, r1 + and r1, r1, #0xff + add r1, sb, r1 + ldrb r1, [r1, #2] + eor r0, r0, r1 + strb r0, [r7, r5] + add r5, r5, #1 + cmp r5, r6 + blt _022F7690 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_022F766C + + arm_func_start ov00_022F770C +ov00_022F770C: @ 0x022F770C + cmp r0, #0 + moveq r0, #1 + bxeq lr + mov r3, #0 + str r3, [r0, #0x14] + str r3, [r0, #0x18] + ldr r1, _022F7760 @ =0x67452301 + strh r3, [r0, #0x1c] + ldr r2, _022F7764 @ =0xEFCDAB89 + str r1, [r0] + ldr r1, _022F7768 @ =0x98BADCFE + str r2, [r0, #4] + ldr r2, _022F776C @ =0x10325476 + str r1, [r0, #8] + ldr r1, _022F7770 @ =0xC3D2E1F0 + str r2, [r0, #0xc] + str r1, [r0, #0x10] + str r3, [r0, #0x60] + str r3, [r0, #0x64] + mov r0, r3 + bx lr + .align 2, 0 +_022F7760: .4byte 0x67452301 +_022F7764: .4byte 0xEFCDAB89 +_022F7768: .4byte 0x98BADCFE +_022F776C: .4byte 0x10325476 +_022F7770: .4byte 0xC3D2E1F0 + arm_func_end ov00_022F770C + + arm_func_start ov00_022F7774 +ov00_022F7774: @ 0x022F7774 + push {r3, r4, r5, lr} + movs r5, r0 + mov r4, r1 + cmpne r4, #0 + moveq r0, #1 + popeq {r3, r4, r5, pc} + ldr r1, [r5, #0x64] + cmp r1, #0 + movne r0, r1 + popne {r3, r4, r5, pc} + ldr r1, [r5, #0x60] + cmp r1, #0 + bne _022F77D8 + bl ov00_022F7B24 + mov r2, #0 + mov r1, r2 +_022F77B4: + add r0, r5, r2 + add r2, r2, #1 + strb r1, [r0, #0x1e] + cmp r2, #0x40 + blt _022F77B4 + str r1, [r5, #0x14] + str r1, [r5, #0x18] + mov r0, #1 + str r0, [r5, #0x60] +_022F77D8: + mov r2, #0 +_022F77DC: + bic r1, r2, #3 + and r0, r2, #3 + rsb r0, r0, #3 + ldr r1, [r5, r1] + lsl r0, r0, #3 + lsr r0, r1, r0 + strb r0, [r4, r2] + add r2, r2, #1 + cmp r2, #0x14 + blt _022F77DC + mov r0, #0 + pop {r3, r4, r5, pc} + arm_func_end ov00_022F7774 + + arm_func_start ov00_022F780C +ov00_022F780C: @ 0x022F780C + push {r3, r4, r5, r6, r7, lr} + movs r4, r2 + mov r6, r0 + mov r5, r1 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + cmp r6, #0 + cmpne r5, #0 + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, pc} + ldr r0, [r6, #0x60] + cmp r0, #0 + movne r0, #3 + strne r0, [r6, #0x64] + popne {r3, r4, r5, r6, r7, pc} + ldr r0, [r6, #0x64] + cmp r0, #0 + popne {r3, r4, r5, r6, r7, pc} + mov r7, #1 + b _022F78B0 +_022F785C: + ldrsh r0, [r6, #0x1c] + mov r2, r0 + add r0, r0, #1 + strh r0, [r6, #0x1c] + ldrb r1, [r5] + add r0, r6, r2 + strb r1, [r0, #0x1e] + ldr r0, [r6, #0x14] + adds r0, r0, #8 + str r0, [r6, #0x14] + bne _022F7898 + ldr r0, [r6, #0x18] + adds r0, r0, #1 + str r0, [r6, #0x18] + streq r7, [r6, #0x64] +_022F7898: + ldrsh r0, [r6, #0x1c] + cmp r0, #0x40 + bne _022F78AC + mov r0, r6 + bl ov00_022F78D0 +_022F78AC: + add r5, r5, #1 +_022F78B0: + cmp r4, #0 + sub r4, r4, #1 + beq _022F78C8 + ldr r0, [r6, #0x64] + cmp r0, #0 + beq _022F785C +_022F78C8: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022F780C + + arm_func_start ov00_022F78D0 +ov00_022F78D0: @ 0x022F78D0 + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x150 + ldr r1, _022F7B20 @ =0x02318474 + add r5, sp, #0 + mov lr, r0 + ldm r1, {r0, r1, r2, r3} + stm r5, {r0, r1, r2, r3} + mov r4, #0 + mov r5, r4 + add r2, sp, #0x10 +_022F78F8: + add r3, lr, r5 + ldrb r0, [r3, #0x1e] + add r5, r5, #4 + lsl r1, r0, #0x18 + str r1, [r2, r4, lsl #2] + ldrb r0, [r3, #0x1f] + orr r1, r1, r0, lsl #16 + str r1, [r2, r4, lsl #2] + ldrb r0, [r3, #0x20] + orr r1, r1, r0, lsl #8 + str r1, [r2, r4, lsl #2] + ldrb r0, [r3, #0x21] + orr r0, r1, r0 + str r0, [r2, r4, lsl #2] + add r4, r4, #1 + cmp r4, #0x10 + blt _022F78F8 + mov r5, #0x10 + add r4, sp, #0x10 +_022F7944: + add r3, r4, r5, lsl #2 + ldr r1, [r3, #-0xc] + ldr r0, [r3, #-0x20] + ldr r2, [r3, #-0x38] + eor r0, r1, r0 + ldr r1, [r3, #-0x40] + eor r0, r2, r0 + eor r1, r1, r0 + lsr r0, r1, #0x1f + orr r0, r0, r1, lsl #1 + str r0, [r4, r5, lsl #2] + add r5, r5, #1 + cmp r5, #0x50 + blt _022F7944 + ldm lr, {r0, r1, r2, r3, ip} + ldr r8, [sp] + mov sb, #0 + add r7, sp, #0x10 +_022F798C: + mvn r6, r1 + lsr r5, r0, #0x1b + and r4, r1, r2 + and sl, r6, r3 + ldr r6, [r7, sb, lsl #2] + add sb, sb, #1 + orr r4, r4, sl + orr r5, r5, r0, lsl #5 + add r4, r5, r4 + add r4, ip, r4 + mov ip, r3 + add r5, r6, r4 + lsr r4, r1, #2 + mov r3, r2 + orr r2, r4, r1, lsl #30 + cmp sb, #0x14 + mov r1, r0 + add r0, r8, r5 + blt _022F798C + ldr r6, [sp, #4] + mov r7, #0x14 + add r5, sp, #0x10 +_022F79E4: + lsr sb, r0, #0x1b + eor r8, r1, r2 + ldr r4, [r5, r7, lsl #2] + orr sb, sb, r0, lsl #5 + eor r8, r3, r8 + add r8, sb, r8 + add r8, ip, r8 + add r7, r7, #1 + mov ip, r3 + add r8, r4, r8 + lsr r4, r1, #2 + mov r3, r2 + orr r2, r4, r1, lsl #30 + cmp r7, #0x28 + mov r1, r0 + add r0, r6, r8 + blt _022F79E4 + ldr r8, [sp, #8] + mov sb, #0x28 + add r7, sp, #0x10 +_022F7A34: + orr r6, r2, r3 + lsr r5, r0, #0x1b + and r4, r2, r3 + and sl, r1, r6 + ldr r6, [r7, sb, lsl #2] + add sb, sb, #1 + orr r4, r4, sl + orr r5, r5, r0, lsl #5 + add r4, r5, r4 + add r4, ip, r4 + mov ip, r3 + add r5, r6, r4 + lsr r4, r1, #2 + mov r3, r2 + orr r2, r4, r1, lsl #30 + cmp sb, #0x3c + mov r1, r0 + add r0, r8, r5 + blt _022F7A34 + ldr r6, [sp, #0xc] + mov r7, #0x3c + add r5, sp, #0x10 +_022F7A8C: + lsr sb, r0, #0x1b + eor r8, r1, r2 + ldr r4, [r5, r7, lsl #2] + orr sb, sb, r0, lsl #5 + eor r8, r3, r8 + add r8, sb, r8 + add r8, ip, r8 + add r4, r4, r8 + add r7, r7, #1 + mov ip, r3 + add r8, r6, r4 + lsr r4, r1, #2 + mov r3, r2 + orr r2, r4, r1, lsl #30 + cmp r7, #0x50 + mov r1, r0 + mov r0, r8 + blt _022F7A8C + ldr r4, [lr] + mov r0, #0 + add r4, r4, r8 + str r4, [lr] + ldr r4, [lr, #4] + add r1, r4, r1 + str r1, [lr, #4] + ldr r1, [lr, #8] + add r1, r1, r2 + str r1, [lr, #8] + ldr r1, [lr, #0xc] + add r1, r1, r3 + str r1, [lr, #0xc] + ldr r1, [lr, #0x10] + add r1, r1, ip + str r1, [lr, #0x10] + strh r0, [lr, #0x1c] + add sp, sp, #0x150 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022F7B20: .4byte 0x02318474 + arm_func_end ov00_022F78D0 + + arm_func_start ov00_022F7B24 +ov00_022F7B24: @ 0x022F7B24 + push {r4, lr} + mov r4, r0 + ldrsh r1, [r4, #0x1c] + add r0, r1, #1 + cmp r1, #0x37 + strh r0, [r4, #0x1c] + ble _022F7BB8 + add r0, r4, r1 + mov r1, #0x80 + strb r1, [r0, #0x1e] + ldrsh r0, [r4, #0x1c] + cmp r0, #0x40 + bge _022F7B7C + mov r1, #0 +_022F7B5C: + ldrsh r2, [r4, #0x1c] + add r0, r4, r0 + add r2, r2, #1 + strh r2, [r4, #0x1c] + strb r1, [r0, #0x1e] + ldrsh r0, [r4, #0x1c] + cmp r0, #0x40 + blt _022F7B5C +_022F7B7C: + mov r0, r4 + bl ov00_022F78D0 + ldrsh r0, [r4, #0x1c] + cmp r0, #0x38 + bge _022F7BF4 + mov r1, #0 +_022F7B94: + ldrsh r2, [r4, #0x1c] + add r0, r4, r0 + add r2, r2, #1 + strh r2, [r4, #0x1c] + strb r1, [r0, #0x1e] + ldrsh r0, [r4, #0x1c] + cmp r0, #0x38 + blt _022F7B94 + b _022F7BF4 +_022F7BB8: + add r0, r4, r1 + mov r1, #0x80 + strb r1, [r0, #0x1e] + ldrsh r0, [r4, #0x1c] + cmp r0, #0x38 + bge _022F7BF4 + mov r1, #0 +_022F7BD4: + ldrsh r2, [r4, #0x1c] + add r0, r4, r0 + add r2, r2, #1 + strh r2, [r4, #0x1c] + strb r1, [r0, #0x1e] + ldrsh r0, [r4, #0x1c] + cmp r0, #0x38 + blt _022F7BD4 +_022F7BF4: + ldr r1, [r4, #0x18] + mov r0, r4 + lsr r1, r1, #0x18 + strb r1, [r4, #0x56] + ldr r1, [r4, #0x18] + lsr r1, r1, #0x10 + strb r1, [r4, #0x57] + ldr r1, [r4, #0x18] + lsr r1, r1, #8 + strb r1, [r4, #0x58] + ldr r1, [r4, #0x18] + strb r1, [r4, #0x59] + ldr r1, [r4, #0x14] + lsr r1, r1, #0x18 + strb r1, [r4, #0x5a] + ldr r1, [r4, #0x14] + lsr r1, r1, #0x10 + strb r1, [r4, #0x5b] + ldr r1, [r4, #0x14] + lsr r1, r1, #8 + strb r1, [r4, #0x5c] + ldr r1, [r4, #0x14] + strb r1, [r4, #0x5d] + bl ov00_022F78D0 + pop {r4, pc} + arm_func_end ov00_022F7B24 + + arm_func_start ov00_022F7C58 +ov00_022F7C58: @ 0x022F7C58 + ldr r0, _022F7C60 @ =0x0232896C + bx lr + .align 2, 0 +_022F7C60: .4byte 0x0232896C + arm_func_end ov00_022F7C58 +_022F7C64: + .byte 0x04, 0xC0, 0x9F, 0xE5, 0x20, 0x00, 0x90, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0x58, 0x47, 0x2F, 0x02, 0x04, 0xC0, 0x9F, 0xE5, 0x10, 0x20, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0x48, 0x73, 0x08, 0x02, 0x0C, 0xC0, 0x9F, 0xE5, 0x10, 0x00, 0x80, 0xE2, 0x10, 0x10, 0x81, 0xE2 + .byte 0x10, 0x20, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x48, 0x73, 0x08, 0x02, 0x00, 0x30, 0x90, 0xE5 + .byte 0x00, 0x20, 0x91, 0xE5, 0x02, 0x00, 0x53, 0xE1, 0x01, 0x00, 0xA0, 0x13, 0x1E, 0xFF, 0x2F, 0x11 + .byte 0xB4, 0x20, 0xD0, 0xE1, 0xB4, 0x00, 0xD1, 0xE1, 0x00, 0x00, 0x52, 0xE1, 0x01, 0x00, 0xA0, 0x13 + .byte 0x00, 0x00, 0xA0, 0x03, 0x1E, 0xFF, 0x2F, 0xE1, 0x08, 0x20, 0x90, 0xE5, 0x08, 0x00, 0x91, 0xE5 + .byte 0x00, 0x00, 0x52, 0xE1, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov00_022F7CE0 +ov00_022F7CE0: @ 0x022F7CE0 + push {r3, r4, r5, r6, r7, lr} + bl ov00_022F7C58 + mov r7, r0 + ldr r2, [r7, #0x24] + cmp r2, #0 + beq _022F7D04 + ldr r1, [r7, #0x2c] + mov r0, #3 + blx r2 +_022F7D04: + ldr r0, [r7, #8] + bl ov00_022F47A0 + mov r6, r0 + mov r5, #0 + cmp r6, #0 + pople {r3, r4, r5, r6, r7, pc} + mov r4, #3 +_022F7D20: + ldr r0, [r7, #8] + mov r1, r5 + bl ov00_022F47A8 + ldr r2, [r0, #0x34] + cmp r2, #0 + beq _022F7D44 + ldr r1, [r0, #0x38] + mov r0, r4 + blx r2 +_022F7D44: + add r5, r5, #1 + cmp r5, r6 + blt _022F7D20 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022F7CE0 + + arm_func_start ov00_022F7D54 +ov00_022F7D54: @ 0x022F7D54 + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x10 + mov r8, r1 + mov sb, r0 + bl ov00_022F7C58 + sub r1, r8, #2 + cmp r1, #1 + mov r5, r0 + movls r8, #2 + bls _022F7D84 + cmp r8, #4 + moveq r8, #3 +_022F7D84: + ldr r0, [r5, #8] + bl ov00_022F47A0 + mov r7, r0 + cmp r7, #0 + mov r6, #0 + ble _022F7DF0 +_022F7D9C: + ldr r0, [r5, #8] + mov r1, r6 + bl ov00_022F47A8 + mov r4, r0 + ldr r0, [r4, #0x24] + cmp r0, #0 + beq _022F7DE4 + mov r0, sb + bl ov00_0230E410 + mov sl, r0 + mov r0, sb + bl ov00_0230E418 + mov r1, r0 + mov r0, sl + mov r2, r8 + ldr r3, [r4, #0x38] + ldr r4, [r4, #0x24] + blx r4 +_022F7DE4: + add r6, r6, #1 + cmp r6, r7 + blt _022F7D9C +_022F7DF0: + ldr r0, [r5, #0x14] + cmp r0, #0 + beq _022F7E28 + mov r0, sb + bl ov00_0230E410 + mov r4, r0 + mov r0, sb + bl ov00_0230E418 + mov r1, r0 + ldr r3, [r5, #0x2c] + mov r0, r4 + mov r2, r8 + ldr r4, [r5, #0x14] + blx r4 +_022F7E28: + str sb, [sp, #0xc] + mov r3, #0 + str r3, [sp] + ldr r0, [r5, #4] + ldr r2, _022F7E68 @ =0x022F7CC8 + add r1, sp, #4 + bl ov00_022F4968 + mov r1, r0 + mvn r0, #0 + cmp r1, r0 + addeq sp, sp, #0x10 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + ldr r0, [r5, #4] + bl ov00_022F491C + add sp, sp, #0x10 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022F7E68: .4byte 0x022F7CC8 + arm_func_end ov00_022F7D54 +_022F7E6C: + .byte 0xF8, 0x4F, 0x2D, 0xE9 + .byte 0x20, 0xD0, 0x4D, 0xE2, 0x01, 0x40, 0xA0, 0xE1, 0x00, 0x50, 0xA0, 0xE1, 0x75, 0xFF, 0xFF, 0xEB + .byte 0x00, 0x70, 0xA0, 0xE1, 0x07, 0x00, 0x54, 0xE3, 0x04, 0xF1, 0x8F, 0x90, 0x13, 0x00, 0x00, 0xEA + .byte 0x0F, 0x00, 0x00, 0xEA, 0x11, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0x0F, 0x00, 0x00, 0xEA + .byte 0x0E, 0x00, 0x00, 0xEA, 0x0D, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA, 0xFF, 0xFF, 0xFF, 0xEA + .byte 0x07, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x8D, 0xE5, 0x0A, 0x00, 0x00, 0xEA, 0x02, 0x00, 0xA0, 0xE3 + .byte 0x04, 0x00, 0x8D, 0xE5, 0x07, 0x00, 0x00, 0xEA, 0x06, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x8D, 0xE5 + .byte 0x04, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x8D, 0xE5, 0x01, 0x00, 0x00, 0xEA + .byte 0x0D, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x8D, 0xE5, 0x02, 0x00, 0x54, 0xE3, 0x11, 0x00, 0x00, 0x1A + .byte 0x05, 0x00, 0xA0, 0xE1, 0x45, 0x59, 0x00, 0xEB, 0x14, 0x00, 0x8D, 0xE5, 0x05, 0x00, 0xA0, 0xE1 + .byte 0x44, 0x59, 0x00, 0xEB, 0xB8, 0x01, 0xCD, 0xE1, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x30, 0x8D, 0xE5 + .byte 0x04, 0x00, 0x97, 0xE5, 0x64, 0x21, 0x9F, 0xE5, 0x14, 0x10, 0x8D, 0xE2, 0x91, 0xF2, 0xFF, 0xEB + .byte 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x51, 0xE1, 0x01, 0x00, 0x00, 0x0A + .byte 0x04, 0x00, 0x97, 0xE5, 0x78, 0xF2, 0xFF, 0xEB, 0x08, 0x00, 0x97, 0xE5, 0x17, 0xF2, 0xFF, 0xEB + .byte 0x00, 0x90, 0xA0, 0xE1, 0x00, 0x00, 0x59, 0xE3, 0x00, 0x80, 0xA0, 0xE3, 0x2F, 0x00, 0x00, 0xDA + .byte 0x00, 0x60, 0xE0, 0xE3, 0x08, 0x00, 0x97, 0xE5, 0x08, 0x10, 0xA0, 0xE1, 0x11, 0xF2, 0xFF, 0xEB + .byte 0x00, 0xA0, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE1, 0x28, 0x59, 0x00, 0xEB, 0x08, 0x00, 0x8D, 0xE5 + .byte 0x05, 0x00, 0xA0, 0xE1, 0x27, 0x59, 0x00, 0xEB, 0xBC, 0x00, 0xCD, 0xE1, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x8D, 0xE5, 0x20, 0x00, 0x9A, 0xE5, 0xF0, 0x20, 0x9F, 0xE5, 0x08, 0x10, 0x8D, 0xE2 + .byte 0x00, 0x30, 0xA0, 0xE3, 0x73, 0xF2, 0xFF, 0xEB, 0x00, 0xB0, 0xA0, 0xE1, 0x06, 0x00, 0x5B, 0xE1 + .byte 0x17, 0x00, 0x00, 0x0A, 0x2C, 0x00, 0x9A, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x0F, 0x00, 0x00, 0x0A + .byte 0x02, 0x00, 0x54, 0xE3, 0x01, 0x60, 0xA0, 0x03, 0x05, 0x00, 0xA0, 0xE1, 0x00, 0x60, 0xA0, 0x13 + .byte 0x12, 0x59, 0x00, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE1, 0x11, 0x59, 0x00, 0xEB + .byte 0x38, 0x10, 0x9A, 0xE5, 0x04, 0x20, 0x9D, 0xE5, 0x00, 0x10, 0x8D, 0xE5, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x04, 0x00, 0xA0, 0xE1, 0x2C, 0x40, 0x9A, 0xE5, 0x06, 0x30, 0xA0, 0xE1, 0x34, 0xFF, 0x2F, 0xE1 + .byte 0x20, 0x00, 0x9A, 0xE5, 0x0B, 0x10, 0xA0, 0xE1, 0x47, 0xF2, 0xFF, 0xEB, 0x20, 0xD0, 0x8D, 0xE2 + .byte 0xF8, 0x8F, 0xBD, 0xE8, 0x01, 0x80, 0x88, 0xE2, 0x09, 0x00, 0x58, 0xE1, 0xD0, 0xFF, 0xFF, 0xBA + .byte 0x30, 0x00, 0x97, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x20, 0xD0, 0x8D, 0xD2, 0xF8, 0x8F, 0xBD, 0xD8 + .byte 0x10, 0x00, 0x97, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x0F, 0x00, 0x00, 0x0A, 0x02, 0x00, 0x54, 0xE3 + .byte 0x01, 0x80, 0xA0, 0x03, 0x05, 0x00, 0xA0, 0xE1, 0x00, 0x80, 0xA0, 0x13, 0xF3, 0x58, 0x00, 0xEB + .byte 0x00, 0x60, 0xA0, 0xE1, 0x05, 0x00, 0xA0, 0xE1, 0xF2, 0x58, 0x00, 0xEB, 0x2C, 0x20, 0x97, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x20, 0x8D, 0xE5, 0x10, 0x40, 0x97, 0xE5, 0x04, 0x20, 0x9D, 0xE5 + .byte 0x06, 0x00, 0xA0, 0xE1, 0x08, 0x30, 0xA0, 0xE1, 0x34, 0xFF, 0x2F, 0xE1, 0x30, 0x00, 0x97, 0xE5 + .byte 0x01, 0x00, 0x40, 0xE2, 0x30, 0x00, 0x87, 0xE5, 0x20, 0xD0, 0x8D, 0xE2, 0xF8, 0x8F, 0xBD, 0xE8 + .byte 0x9C, 0x7C, 0x2F, 0x02 + + arm_func_start ov00_022F8084 +ov00_022F8084: @ 0x022F8084 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r5, r0 + mov r4, r1 + bl ov00_022F7C58 + mov r8, r0 + ldr r0, [r8, #8] + bl ov00_022F47A0 + mov sb, r0 + cmp sb, #0 + mov r6, #0 + ble _022F8108 +_022F80B0: + ldr r0, [r8, #8] + mov r1, r6 + bl ov00_022F47A8 + mov r7, r0 + ldr r0, [r7, #0x30] + cmp r0, #0 + beq _022F80FC + mov r0, r5 + bl ov00_0230E410 + mov r6, r0 + mov r0, r5 + bl ov00_0230E418 + mov r1, r0 + ldr r3, [r7, #0x38] + ldr r5, [r7, #0x30] + mov r0, r6 + mov r2, r4 + blx r5 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022F80FC: + add r6, r6, #1 + cmp r6, sb + blt _022F80B0 +_022F8108: + ldr r0, [r8, #0x18] + cmp r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + mov r0, r5 + bl ov00_0230E410 + mov r6, r0 + mov r0, r5 + bl ov00_0230E418 + mov r1, r0 + ldr r3, [r8, #0x2c] + ldr r5, [r8, #0x18] + mov r0, r6 + mov r2, r4 + blx r5 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_022F8084 + + arm_func_start ov00_022F8144 +ov00_022F8144: @ 0x022F8144 + push {r3, r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x44 + mov r5, r2 + mov r7, r0 + mov r6, r1 + mov r4, r3 + bl ov00_022F7C58 + mov sl, r0 + cmp r5, #0x10 + blt _022F8218 + add r8, sp, #0x18 + mov r3, r6 + mov r2, #8 +_022F8178: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + strb r1, [r8] + strb r0, [r8, #1] + add r8, r8, #2 + bne _022F8178 + mov r3, #0 + str r3, [sp] + ldr r0, [sl, #8] + ldr r2, _022F8268 @ =0x022F7C84 + add r1, sp, #8 + bl ov00_022F4968 + mov r1, r0 + mvn r0, #0 + cmp r1, r0 + beq _022F8218 + ldr r0, [sl, #8] + bl ov00_022F47A8 + mov sb, r0 + ldr r0, [sb, #0x28] + cmp r0, #0 + beq _022F8218 + mov r0, r7 + bl ov00_0230E410 + mov r8, r0 + mov r0, r7 + bl ov00_0230E418 + str r4, [sp] + ldr r2, [sb, #0x38] + mov r1, r0 + str r2, [sp, #4] + ldr r4, [sb, #0x28] + mov r0, r8 + add r2, r6, #0x10 + sub r3, r5, #0x10 + blx r4 + add sp, sp, #0x44 + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} +_022F8218: + ldr r0, [sl, #0x1c] + cmp r0, #0 + addeq sp, sp, #0x44 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, pc} + mov r0, r7 + bl ov00_0230E410 + mov r8, r0 + mov r0, r7 + bl ov00_0230E418 + str r4, [sp] + ldr r2, [sl, #0x2c] + mov r1, r0 + str r2, [sp, #4] + ldr r4, [sl, #0x1c] + mov r0, r8 + mov r2, r6 + mov r3, r5 + blx r4 + add sp, sp, #0x44 + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022F8268: .4byte 0x022F7C84 + arm_func_end ov00_022F8144 + + arm_func_start ov00_022F826C +ov00_022F826C: @ 0x022F826C + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + mov r6, r1 + mov r5, r2 + mov r4, r3 + bl ov00_022F7C58 + ldr lr, [r0, #0x28] + cmp lr, #0 + beq _022F82C0 + ldr ip, [r0, #0x2c] + ldr r3, [sp, #0x18] + mov r0, r6 + mov r1, r5 + mov r2, r4 + str ip, [sp] + blx lr + cmp r0, #0 + movne r0, #1 + add sp, sp, #4 + moveq r0, #0 + pop {r3, r4, r5, r6, pc} +_022F82C0: + mov r0, #0 + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_022F826C + + arm_func_start ov00_022F82CC +ov00_022F82CC: @ 0x022F82CC + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x60 + mov r7, r1 + mov r6, r2 + mov r5, r3 + bl ov00_022F7C58 + ldr r1, [sp, #0x80] + mov r4, r0 + cmp r1, #0x10 + blt _022F8390 + ldr r3, [sp, #0x7c] + add ip, sp, #0x24 + mov r2, #8 +_022F8300: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + strb r1, [ip] + strb r0, [ip, #1] + add ip, ip, #2 + bne _022F8300 + str r6, [sp, #0x18] + strh r5, [sp, #0x1c] + str r7, [sp, #0x20] + ldr r0, [r4, #4] + add r1, sp, #0x18 + bl ov00_022F47D4 + mov r3, #0 + str r3, [sp] + ldr r0, [r4, #8] + ldr r2, _022F83F8 @ =0x022F7C74 + add r1, sp, #0x24 + bl ov00_022F4968 + mvn r1, #0 + cmp r0, r1 + beq _022F8390 + ldr r5, _022F83FC @ =ov00_022F7D54 + ldr r4, _022F8400 @ =0x022F7E6C + ldr r3, _022F8404 @ =ov00_022F8084 + ldr r2, _022F8408 @ =ov00_022F8144 + ldr r0, [sp, #0x20] + add r1, sp, #8 + str r5, [sp, #0x10] + str r4, [sp, #8] + str r3, [sp, #0x14] + str r2, [sp, #0xc] + bl ov00_0230DC60 + add sp, sp, #0x60 + pop {r3, r4, r5, r6, r7, pc} +_022F8390: + ldr ip, [r4, #0x20] + cmp ip, #0 + beq _022F83C8 + ldr r0, [sp, #0x80] + ldr r2, [sp, #0x78] + str r0, [sp] + ldr r4, [r4, #0x2c] + ldr r3, [sp, #0x7c] + mov r0, r6 + mov r1, r5 + str r4, [sp, #4] + blx ip + add sp, sp, #0x60 + pop {r3, r4, r5, r6, r7, pc} +_022F83C8: + mov r1, #0 + mov r0, r7 + mov r2, r1 + bl ov00_0230DCBC + ldr r0, [r4, #4] + bl ov00_022F47A0 + mov r1, r0 + ldr r0, [r4, #4] + sub r1, r1, #1 + bl ov00_022F48C4 + add sp, sp, #0x60 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022F83F8: .4byte 0x022F7C74 +_022F83FC: .4byte ov00_022F7D54 +_022F8400: .4byte 0x022F7E6C +_022F8404: .4byte ov00_022F8084 +_022F8408: .4byte ov00_022F8144 + arm_func_end ov00_022F82CC + + arm_func_start ov00_022F840C +ov00_022F840C: @ 0x022F840C + push {r3, lr} + bl ov00_022F7C58 + ldr r0, [r0, #0xc] + pop {r3, pc} + arm_func_end ov00_022F840C + + arm_func_start ov00_022F841C +ov00_022F841C: @ 0x022F841C + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x1c + mov r6, r1 + mov r7, r0 + mov r5, r2 + mov r8, r3 + bl ov00_022F7C58 + mov r4, r0 + cmp r6, #0 + ldreq r6, _022F8560 @ =0x000005DC + cmp r5, #0 + ldr r0, [sp, #0x48] + str r8, [r4, #0x24] + str r0, [r4, #0x28] + ldr r1, [sp, #0x38] + ldr r0, [sp, #0x3c] + str r1, [r4, #0x10] + str r0, [r4, #0x14] + ldr r1, [sp, #0x40] + ldr r0, [sp, #0x44] + str r1, [r4, #0x18] + str r0, [r4, #0x1c] + ldr r3, [sp, #0x4c] + ldreq r5, _022F8564 @ =0x000005B4 + add r2, sp, #4 + mov r1, r7 + mov r0, #0 + str r3, [r4, #0x20] + bl ov00_02310BF4 + ldr r7, _022F8568 @ =ov00_022F7CE0 + add r1, sp, #4 + mov r0, r4 + mov r2, r5 + mov r3, r6 + str r7, [sp] + bl ov00_0230E074 + cmp r0, #0 + addne sp, sp, #0x1c + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, pc} + mov r0, #0xc + mov r1, #1 + mov r2, #0 + bl ov00_022F4700 + cmp r0, #0 + str r0, [r4, #4] + addeq sp, sp, #0x1c + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, r8, pc} + ldr r2, _022F856C @ =0x022F7C64 + mov r0, #0x3c + mov r1, #1 + bl ov00_022F4700 + cmp r0, #0 + str r0, [r4, #8] + addeq sp, sp, #0x1c + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, r8, pc} + ldr r0, [r4] + ldr r1, _022F8570 @ =ov00_022F826C + bl ov00_0230E450 + ldr r0, [r4] + ldr r1, _022F8574 @ =ov00_022F82CC + bl ov00_023105EC + ldr r0, [r4] + bl ov00_0230E420 + str r0, [r4, #0x34] + ldr r0, [r4] + bl ov00_0230E428 + strh r0, [r4, #0x38] + mov r2, #0 + ldr r1, [sp, #0x50] + str r2, [r4, #0x30] + mov r0, #1 + str r0, [r4, #0xc] + cmp r1, #0 + strne r1, [r4, #0x2c] + streq r2, [r4, #0x2c] + mov r0, #0 + add sp, sp, #0x1c + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022F8560: .4byte 0x000005DC +_022F8564: .4byte 0x000005B4 +_022F8568: .4byte ov00_022F7CE0 +_022F856C: .4byte 0x022F7C64 +_022F8570: .4byte ov00_022F826C +_022F8574: .4byte ov00_022F82CC + arm_func_end ov00_022F841C + + arm_func_start ov00_022F8578 +ov00_022F8578: @ 0x022F8578 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x10 + mov r7, r0 + mov r6, r1 + mov r5, r2 + bl ov00_022F7C58 + mov r4, r0 + ldr r0, [r4, #0xc] + cmp r0, #0 + bne _022F85B4 + mov r0, #3 + str r0, [r5] + add sp, sp, #0x10 + mov r0, #0xb + pop {r3, r4, r5, r6, r7, pc} +_022F85B4: + str r7, [sp, #4] + strh r6, [sp, #8] + mov r3, #0 + str r3, [sp] + ldr r0, [r4, #4] + ldr r2, _022F8618 @ =0x022F7C9C + add r1, sp, #4 + bl ov00_022F4968 + mov r1, r0 + mvn r0, #0 + cmp r1, r0 + bne _022F85F8 + mov r0, #3 + str r0, [r5] + add sp, sp, #0x10 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_022F85F8: + ldr r0, [r4, #4] + bl ov00_022F47A8 + ldr r0, [r0, #8] + bl ov00_0230E3E8 + str r0, [r5] + mov r0, #0 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022F8618: .4byte 0x022F7C9C + arm_func_end ov00_022F8578 + + arm_func_start ov00_022F861C +ov00_022F861C: @ 0x022F861C + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x84 + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, r3 + bl ov00_022F7C58 + mov r4, r0 + ldr r0, [r4, #0xc] + cmp r0, #0 + addeq sp, sp, #0x84 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, pc} + cmp r8, #0 + cmpne r7, #0 + addeq sp, sp, #0x84 + moveq r0, #0xa + popeq {r3, r4, r5, r6, r7, r8, pc} + str r8, [sp, #0x60] + strh r7, [sp, #0x64] + mov r3, #0 + str r3, [sp] + ldr r0, [r4, #4] + ldr r2, _022F8830 @ =0x022F7C9C + add r1, sp, #0x60 + bl ov00_022F4968 + mov r1, r0 + mvn r0, #0 + cmp r1, r0 + beq _022F8728 + ldr r0, [r4, #4] + bl ov00_022F47A8 + mov r5, r0 + ldr r0, [r5, #8] + bl ov00_0230E3E8 + cmp r0, #1 + addeq sp, sp, #0x84 + moveq r0, #5 + popeq {r3, r4, r5, r6, r7, r8, pc} + cmp r0, #0 + bne _022F8824 + add r3, sp, #0x24 + mov r2, #8 +_022F86C8: + ldrb r1, [r6] + ldrb r0, [r6, #1] + add r6, r6, #2 + subs r2, r2, #1 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + bne _022F86C8 + mov r3, #0 + str r3, [sp] + ldr r0, [r4, #8] + ldr r2, _022F8834 @ =0x022F7C74 + add r1, sp, #0x24 + bl ov00_022F4968 + mov r1, r0 + mvn r0, #0 + cmp r1, r0 + beq _022F8824 + ldr r0, [r4, #8] + bl ov00_022F47A8 + ldr r0, [r0, #0x20] + mov r1, r5 + bl ov00_022F47D4 + b _022F8824 +_022F8728: + add r2, sp, #0x6c + mov r0, r8 + mov r1, r7 + bl ov00_02310BF4 + ldr r3, _022F8838 @ =ov00_022F7D54 + ldr r2, _022F883C @ =0x022F7E6C + ldr r1, _022F8840 @ =ov00_022F8084 + ldr r0, _022F8844 @ =ov00_022F8144 + str r3, [sp, #0x1c] + str r2, [sp, #0x14] + str r1, [sp, #0x20] + str r0, [sp, #0x18] + mov r0, #0x10 + str r0, [sp] + add r0, sp, #0x14 + str r5, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r0, [r4] + add r1, sp, #0x68 + add r2, sp, #0x6c + mov r3, r6 + bl ov00_0230E104 + ldr r0, [r4, #4] + add r1, sp, #0x60 + bl ov00_022F47D4 + add r3, sp, #0x24 + mov r2, #8 +_022F879C: + ldrb r1, [r6] + ldrb r0, [r6, #1] + add r6, r6, #2 + subs r2, r2, #1 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + bne _022F879C + mov r3, #0 + str r3, [sp] + ldr r0, [r4, #8] + ldr r2, _022F8834 @ =0x022F7C74 + add r1, sp, #0x24 + bl ov00_022F4968 + mov r5, r0 + mvn r0, #0 + cmp r5, r0 + ldreq r0, [r4, #0x30] + addeq r0, r0, #1 + streq r0, [r4, #0x30] + beq _022F8824 + ldr r0, [r4, #4] + bl ov00_022F47A0 + mov r1, r0 + ldr r0, [r4, #4] + sub r1, r1, #1 + bl ov00_022F47A8 + str r0, [sp, #0x10] + ldr r0, [r4, #8] + mov r1, r5 + bl ov00_022F47A8 + ldr r0, [r0, #0x20] + add r1, sp, #0x10 + bl ov00_022F47D4 +_022F8824: + mov r0, #0 + add sp, sp, #0x84 + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022F8830: .4byte 0x022F7C9C +_022F8834: .4byte 0x022F7C74 +_022F8838: .4byte ov00_022F7D54 +_022F883C: .4byte 0x022F7E6C +_022F8840: .4byte ov00_022F8084 +_022F8844: .4byte ov00_022F8144 + arm_func_end ov00_022F861C + + arm_func_start ov00_022F8848 +ov00_022F8848: @ 0x022F8848 + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x28 + mov sb, r0 + mov r5, r1 + mov r8, r2 + mov r7, r3 + bl ov00_022F7C58 + mov r4, r0 + ldr r0, [r4, #0xc] + cmp r0, #0 + addeq sp, sp, #0x28 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + ldrsb r0, [r8] + mov r3, #0 + ldr r2, _022F8984 @ =0x022F7C9C + cmp r0, #0 + ldrne r0, [sp, #0x48] + str sb, [sp, #0x1c] + strh r5, [sp, #0x20] + addne r6, r0, #0x10 + str r3, [sp] + ldr r0, [r4, #4] + add r1, sp, #0x1c + ldreq r6, [sp, #0x48] + bl ov00_022F4968 + mov r1, r0 + mvn r0, #0 + cmp r1, r0 + bne _022F88DC + add r2, sp, #4 + mov r0, sb + mov r1, r5 + bl ov00_02310BF4 + add sp, sp, #0x28 + mov r0, #4 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022F88DC: + ldr r0, [r4, #4] + bl ov00_022F47A8 + mov r4, r0 + ldr r0, [r4, #8] + bl ov00_0230E430 + cmp r6, r0 + ble _022F890C + ldr r0, [sp, #0x4c] + cmp r0, #0 + addne sp, sp, #0x28 + movne r0, #0xc + popne {r3, r4, r5, r6, r7, r8, sb, pc} +_022F890C: + mov r0, r6 + bl ov00_022F5AE4 + mov r5, r0 + mov r3, r5 + mov r2, #8 +_022F8920: + ldrb r1, [r8] + ldrb r0, [r8, #1] + add r8, r8, #2 + subs r2, r2, #1 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + bne _022F8920 + ldr r2, [sp, #0x48] + mov r1, r7 + add r0, r5, #0x10 + bl FUN_0208729C + ldr r0, [r4, #8] + ldr r3, [sp, #0x4c] + mov r1, r5 + mov r2, r6 + bl ov00_0230E280 + mov r4, r0 + mov r0, r5 + bl ov00_022F5B14 + cmp r4, #0 + movne r0, #8 + moveq r0, #0 + add sp, sp, #0x28 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022F8984: .4byte 0x022F7C9C + arm_func_end ov00_022F8848 + + arm_func_start ov00_022F8988 +ov00_022F8988: @ 0x022F8988 + push {r3, lr} + bl ov00_022F7C58 + ldr r1, [r0, #0xc] + cmp r1, #0 + moveq r0, #3 + popeq {r3, pc} + ldr r0, [r0] + bl ov00_0230E0B0 + mov r0, #0 + pop {r3, pc} + arm_func_end ov00_022F8988 + + arm_func_start ov00_022F89B0 +ov00_022F89B0: @ 0x022F89B0 + push {r4, lr} + bl ov00_022F7C58 + mov r4, r0 + ldr r0, [r4, #0xc] + cmp r0, #0 + moveq r0, #3 + popeq {r4, pc} + ldr r0, [r4] + bl ov00_0230E098 + ldr r0, [r4, #8] + bl ov00_022F4758 + ldr r0, [r4, #4] + bl ov00_022F4758 + mov r0, #0 + str r0, [r4, #0xc] + pop {r4, pc} + arm_func_end ov00_022F89B0 + + arm_func_start ov00_022F89F0 +ov00_022F89F0: @ 0x022F89F0 + push {r3, lr} + bl ov00_022F7C58 + ldr r1, [r0, #0xc] + cmp r1, #0 + ldrhne r0, [r0, #0x38] + moveq r0, #0 + pop {r3, pc} + arm_func_end ov00_022F89F0 + + arm_func_start ov00_022F8A0C +ov00_022F8A0C: @ 0x022F8A0C + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x3c + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, r3 + bl ov00_022F7C58 + mov r4, r0 + ldr r0, [r4, #0xc] + cmp r0, #0 + addeq sp, sp, #0x3c + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, pc} + ldrsb r0, [r8] + cmp r0, #0 + addeq sp, sp, #0x3c + moveq r0, #0xa + popeq {r3, r4, r5, r6, r7, r8, pc} + ldrsb r0, [r7] + cmp r0, #0 + addeq sp, sp, #0x3c + moveq r0, #0xa + popeq {r3, r4, r5, r6, r7, r8, pc} + ldr r2, [sp, #0x58] + ldr r1, [sp, #0x5c] + ldr r0, [sp, #0x60] + str r2, [sp, #0x24] + add r3, sp, #0 + str r5, [sp, #0x2c] + str r1, [sp, #0x30] + str r0, [sp, #0x28] + str r6, [sp, #0x34] + mov r2, #8 +_022F8A90: + ldrb r1, [r8] + ldrb r0, [r8, #1] + add r8, r8, #2 + subs r2, r2, #1 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + bne _022F8A90 + add r3, sp, #0x10 + mov r2, #8 +_022F8AB8: + ldrb r1, [r7] + ldrb r0, [r7, #1] + add r7, r7, #2 + subs r2, r2, #1 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + bne _022F8AB8 + mov r0, #4 + mov r1, #1 + mov r2, #0 + bl ov00_022F4700 + str r0, [sp, #0x20] + cmp r0, #0 + addeq sp, sp, #0x3c + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, r8, pc} + ldr r0, [sp, #0x64] + add r1, sp, #0 + str r0, [sp, #0x38] + ldr r0, [r4, #8] + bl ov00_022F47D4 + mov r0, #0 + add sp, sp, #0x3c + pop {r3, r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022F8A0C + + arm_func_start ov00_022F8B1C +ov00_022F8B1C: @ 0x022F8B1C + push {r3, r4, r5, lr} + sub sp, sp, #0x40 + mov r5, r0 + bl ov00_022F7C58 + mov r4, r0 + ldr r0, [r4, #0xc] + cmp r0, #0 + addeq sp, sp, #0x40 + moveq r0, #3 + popeq {r3, r4, r5, pc} + cmp r5, #0 + ldrsbne r0, [r5] + cmpne r0, #0 + addeq sp, sp, #0x40 + moveq r0, #0xa + popeq {r3, r4, r5, pc} + add r3, sp, #0x14 + mov r2, #8 +_022F8B64: + ldrb r1, [r5] + ldrb r0, [r5, #1] + add r5, r5, #2 + subs r2, r2, #1 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + bne _022F8B64 + mov r3, #0 + str r3, [sp] + ldr r0, [r4, #8] + ldr r2, _022F8BC0 @ =0x022F7C84 + add r1, sp, #4 + bl ov00_022F4968 + mov r1, r0 + mvn r0, #0 + cmp r1, r0 + beq _022F8BB4 + ldr r0, [r4, #8] + bl ov00_022F491C +_022F8BB4: + mov r0, #0 + add sp, sp, #0x40 + pop {r3, r4, r5, pc} + .align 2, 0 +_022F8BC0: .4byte 0x022F7C84 + arm_func_end ov00_022F8B1C + + arm_func_start ov00_022F8BC4 +ov00_022F8BC4: @ 0x022F8BC4 + push {r3, lr} + bl ov00_022F7C58 + ldr r1, [r0, #0xc] + cmp r1, #0 + moveq r0, #1 + popeq {r3, pc} + ldr r0, [r0, #8] + bl ov00_022F47A0 + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + pop {r3, pc} + arm_func_end ov00_022F8BC4 + + arm_func_start ov00_022F8BF4 +ov00_022F8BF4: @ 0x022F8BF4 + push {r3, lr} + bl ov00_022F7C58 + ldr r1, [r0, #0xc] + cmp r1, #0 + moveq r0, #1 + popeq {r3, pc} + ldr r1, [r0, #0x14] + cmp r1, #0 + ldreq r1, [r0, #0x20] + cmpeq r1, #0 + ldreq r1, [r0, #0x10] + cmpeq r1, #0 + ldreq r1, [r0, #0x24] + cmpeq r1, #0 + ldreq r1, [r0, #0x18] + cmpeq r1, #0 + ldreq r1, [r0, #0x1c] + cmpeq r1, #0 + ldreq r0, [r0, #0x28] + cmpeq r0, #0 + movne r0, #0 + moveq r0, #1 + pop {r3, pc} + arm_func_end ov00_022F8BF4 + + arm_func_start ov00_022F8C50 +ov00_022F8C50: @ 0x022F8C50 + push {r4, r5, r6, lr} + sub sp, sp, #0x10 + mov r6, r0 + mov r5, r1 + bl ov00_022F7C58 + mov r4, r0 + ldr r0, [r4, #0xc] + cmp r0, #0 + addeq sp, sp, #0x10 + moveq r0, #0 + popeq {r4, r5, r6, pc} + str r6, [sp, #4] + strh r5, [sp, #8] + mov r3, #0 + str r3, [sp] + ldr r0, [r4, #4] + ldr r2, _022F8CCC @ =0x022F7C9C + add r1, sp, #4 + bl ov00_022F4968 + mov r1, r0 + mvn r0, #0 + cmp r1, r0 + addeq sp, sp, #0x10 + moveq r0, #0 + popeq {r4, r5, r6, pc} + ldr r0, [r4, #4] + bl ov00_022F47A8 + ldr r0, [r0, #8] + bl ov00_0230E438 + add sp, sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_022F8CCC: .4byte 0x022F7C9C + arm_func_end ov00_022F8C50 + + arm_func_start ov00_022F8CD0 +ov00_022F8CD0: @ 0x022F8CD0 + ldr r0, [r0] + bx lr + arm_func_end ov00_022F8CD0 + + arm_func_start ov00_022F8CD8 +ov00_022F8CD8: @ 0x022F8CD8 + ldr r0, [r0, #4] + bx lr + arm_func_end ov00_022F8CD8 + + arm_func_start ov00_022F8CE0 +ov00_022F8CE0: @ 0x022F8CE0 + push {r3, r4, r5, lr} + movs r5, r0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + cmp r1, #0 + movle r0, #0 + pople {r3, r4, r5, pc} + ldmib r5, {r0, r2} + add r4, r2, r1 + mov r1, r4 + bl ov00_022F5AFC + cmp r0, #0 + moveq r0, #0 + stmibne r5, {r0, r4} + movne r0, #1 + pop {r3, r4, r5, pc} + arm_func_end ov00_022F8CE0 + + arm_func_start ov00_022F8D20 +ov00_022F8D20: @ 0x022F8D20 + push {r4, lr} + mov r4, r1 + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} + cmp r4, #0 + moveq r0, #0 + popeq {r4, pc} + cmp r2, #0 + movle r0, #0 + pople {r4, pc} + cmp r3, #0 + movle r0, #0 + pople {r4, pc} + str r0, [r4] + mov ip, #0 + str ip, [r4, #4] + str ip, [r4, #8] + str ip, [r4, #0xc] + str ip, [r4, #0x10] + str r3, [r4, #0x14] + str ip, [r4, #0x18] + str ip, [r4, #0x1c] + mov r0, r4 + mov r1, r2 + str ip, [r4, #0x20] + bl ov00_022F8CE0 + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} + ldr r0, [r4, #4] + mov r1, #0 + strb r1, [r0] + mov r0, #1 + pop {r4, pc} + arm_func_end ov00_022F8D20 + + arm_func_start ov00_022F8DAC +ov00_022F8DAC: @ 0x022F8DAC + cmp r0, #0 + moveq r0, #0 + bxeq lr + cmp r1, #0 + moveq r0, #0 + bxeq lr + cmp r2, #0 + moveq r0, #0 + bxeq lr + cmp r3, #0 + movle r0, #0 + bxle lr + stm r1, {r0, r2, r3} + mov r2, #0 + str r2, [r1, #0xc] + str r2, [r1, #0x10] + str r2, [r1, #0x14] + mov r0, #1 + str r0, [r1, #0x18] + str r0, [r1, #0x1c] + str r2, [r1, #0x20] + ldr r1, [r1, #4] + strb r2, [r1] + bx lr + arm_func_end ov00_022F8DAC + + arm_func_start ov00_022F8E0C +ov00_022F8E0C: @ 0x022F8E0C + cmp r0, #0 + moveq r0, #0 + bxeq lr + cmp r1, #0 + moveq r0, #0 + bxeq lr + cmp r2, #0 + moveq r0, #0 + bxeq lr + cmp r3, #0 + movle r0, #0 + bxle lr + stm r1, {r0, r2, r3} + mov r0, #0 + str r0, [r1, #0x10] + str r0, [r1, #0x14] + mov r0, #1 + str r0, [r1, #0x18] + str r0, [r1, #0x1c] + str r0, [r1, #0x20] + str r3, [r1, #0xc] + bx lr + arm_func_end ov00_022F8E0C + + arm_func_start ov00_022F8E64 +ov00_022F8E64: @ 0x022F8E64 + push {r4, lr} + movs r4, r0 + ldrne r0, [r4, #4] + cmpne r0, #0 + popeq {r4, pc} + ldr r1, [r4, #0x1c] + cmp r1, #0 + bne _022F8E88 + bl ov00_022F5B14 +_022F8E88: + mov r0, r4 + mov r1, #0 + mov r2, #0x24 + bl FUN_02087308 + pop {r4, pc} + arm_func_end ov00_022F8E64 + + arm_func_start ov00_022F8E9C +ov00_022F8E9C: @ 0x022F8E9C + push {r3, r4, r5, r6, r7, lr} + movs r7, r0 + mov r6, r1 + mov r5, r2 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + cmp r6, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + cmp r5, #0 + movlt r0, #0 + poplt {r3, r4, r5, r6, r7, pc} + ldr r0, [r7, #0x20] + cmp r0, #0 + movne r0, #0 + popne {r3, r4, r5, r6, r7, pc} + cmp r5, #0 + bne _022F8EF0 + mov r0, r6 + bl FUN_02089678 + mov r5, r0 +_022F8EF0: + ldr r1, [r7, #0xc] + ldr r0, [r7, #8] + add r4, r1, r5 + cmp r4, r0 + blt _022F8F6C +_022F8F04: + ldr r0, [r7, #0x18] + cmp r0, #0 + beq _022F8F30 + ldr r0, [r7] + mov r1, #1 + str r1, [r0, #0x120] + ldr r0, [r7] + mov r1, #2 + str r1, [r0, #0x3c] + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_022F8F30: + ldr r1, [r7, #0x14] + mov r0, r7 + bl ov00_022F8CE0 + cmp r0, #0 + bne _022F8F60 + ldr r0, [r7] + mov r2, #1 + str r2, [r0, #0x120] + ldr r1, [r7] + mov r0, #0 + str r2, [r1, #0x3c] + pop {r3, r4, r5, r6, r7, pc} +_022F8F60: + ldr r0, [r7, #8] + cmp r4, r0 + bge _022F8F04 +_022F8F6C: + ldr r3, [r7, #4] + ldr r0, [r7, #0xc] + mov r1, r6 + mov r2, r5 + add r0, r3, r0 + bl FUN_0208729C + str r4, [r7, #0xc] + ldr r0, [r7, #4] + mov r1, #0 + strb r1, [r0, r4] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022F8E9C + + arm_func_start ov00_022F8F9C +ov00_022F8F9C: @ 0x022F8F9C + push {r3, r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0xc + mov r6, #0 + movs sl, r0 + str r6, [sp, #8] + mov sb, r1 + mov r8, r2 + addeq sp, sp, #0xc + moveq r0, r6 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, pc} + cmp sb, #0 + addeq sp, sp, #0xc + moveq r0, r6 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, pc} + cmp r8, #0 + addlt sp, sp, #0xc + movlt r0, r6 + poplt {r3, r4, r5, r6, r7, r8, sb, sl, pc} + ldr r0, [sl, #0x20] + cmp r0, #0 + addne sp, sp, #0xc + movne r0, r6 + popne {r3, r4, r5, r6, r7, r8, sb, sl, pc} + ldr r1, [sl] + ldr r0, [r1, #0x194] + cmp r0, #0 + ldrne r0, [r1, #0x19c] + cmpne r0, #0 + bne _022F9028 + mov r0, sl + mov r1, sb + mov r2, r8 + bl ov00_022F8E9C + add sp, sp, #0xc + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} +_022F9028: + cmp r8, #0 + bne _022F903C + mov r0, sb + bl FUN_02089678 + mov r8, r0 +_022F903C: + cmp r8, #0 + addeq sp, sp, #0xc + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, pc} + ldr r1, [sl, #8] + ldr r0, [sl, #0xc] + ldr r5, _022F910C @ =0x00003F01 + sub r0, r1, r0 + str r0, [sp, #8] + add r4, sp, #8 +_022F9064: + ldr r1, [sl, #0xc] + ldm sl, {r0, r2} + add r1, r2, r1 + stm sp, {r1, r4} + cmp r8, r5 + movlt r7, r8 + ldr ip, [r0, #0x1a8] + mov r3, r8 + add r1, r0, #0x190 + add r2, sb, r6 + movge r7, r5 + blx ip + cmp r0, #2 + bne _022F90CC + ldr r1, [sl, #0x14] + mov r0, sl + bl ov00_022F8CE0 + cmp r0, #0 + addeq sp, sp, #0xc + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, pc} + ldr r1, [sl, #8] + ldr r0, [sl, #0xc] + sub r0, r1, r0 + str r0, [sp, #8] + b _022F90F8 +_022F90CC: + cmp r0, #1 + bne _022F90EC + ldr r1, [sl, #8] + ldr r0, [sp, #8] + add r6, r6, r7 + sub r0, r1, r0 + str r0, [sl, #0xc] + b _022F90F8 +_022F90EC: + add sp, sp, #0xc + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} +_022F90F8: + cmp r6, r8 + blt _022F9064 + mov r0, #1 + add sp, sp, #0xc + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022F910C: .4byte 0x00003F01 + arm_func_end ov00_022F8F9C + + arm_func_start ov00_022F9110 +ov00_022F9110: @ 0x022F9110 + push {r3, r4, r5, lr} + mov r4, r2 + mov r2, #0 + mov r5, r0 + bl ov00_022F8E9C + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldr r1, _022F9188 @ =0x0231A7E4 + mov r0, r5 + mov r2, #2 + bl ov00_022F8E9C + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + mov r0, r5 + mov r1, r4 + mov r2, #0 + bl ov00_022F8E9C + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldr r1, _022F918C @ =0x0231A7E8 + mov r0, r5 + mov r2, #2 + bl ov00_022F8E9C + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022F9188: .4byte 0x0231A7E4 +_022F918C: .4byte 0x0231A7E8 + arm_func_end ov00_022F9110 + + arm_func_start ov00_022F9190 +ov00_022F9190: @ 0x022F9190 + push {r3, r4, r5, lr} + movs r5, r0 + mov r4, r1 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldr r1, [r5, #0x20] + cmp r1, #0 + movne r0, #0 + popne {r3, r4, r5, pc} + ldr r2, [r5, #0xc] + ldr r1, [r5, #8] + add r2, r2, #1 + cmp r2, r1 + blt _022F9220 + ldr r1, [r5, #0x18] + cmp r1, #0 + beq _022F91F4 + ldr r0, [r5] + mov r1, #1 + str r1, [r0, #0x120] + ldr r0, [r5] + mov r1, #2 + str r1, [r0, #0x3c] + mov r0, #0 + pop {r3, r4, r5, pc} +_022F91F4: + ldr r1, [r5, #0x14] + bl ov00_022F8CE0 + cmp r0, #0 + bne _022F9220 + ldr r0, [r5] + mov r2, #1 + str r2, [r0, #0x120] + ldr r1, [r5] + mov r0, #0 + str r2, [r1, #0x3c] + pop {r3, r4, r5, pc} +_022F9220: + ldr r1, [r5, #4] + ldr r0, [r5, #0xc] + mov r2, #0 + strb r4, [r1, r0] + ldr r1, [r5, #0xc] + mov r0, #1 + add r3, r1, #1 + str r3, [r5, #0xc] + ldr r1, [r5, #4] + strb r2, [r1, r3] + pop {r3, r4, r5, pc} + arm_func_end ov00_022F9190 + + arm_func_start ov00_022F924C +ov00_022F924C: @ 0x022F924C + push {r4, lr} + sub sp, sp, #0x10 + mov r2, r1 + mov r4, r0 + ldr r1, _022F9280 @ =0x0231A7EC + add r0, sp, #0 + bl FUN_020790DC + add r1, sp, #0 + mov r0, r4 + mov r2, #0 + bl ov00_022F8E9C + add sp, sp, #0x10 + pop {r4, pc} + .align 2, 0 +_022F9280: .4byte 0x0231A7EC + arm_func_end ov00_022F924C + + arm_func_start ov00_022F9284 +ov00_022F9284: @ 0x022F9284 + mov r2, #0 + str r2, [r0, #0xc] + str r2, [r0, #0x10] + ldr r1, [r0, #0x20] + cmp r1, #0 + ldreq r0, [r0, #4] + strbeq r2, [r0] + bx lr + arm_func_end ov00_022F9284 + + arm_func_start ov00_022F92A4 +ov00_022F92A4: @ 0x022F92A4 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + mov r7, r0 + mov r6, #0 + add r5, sp, #4 + add r4, sp, #0 + mvn r8, #0 +_022F92C0: + ldr r0, [r7, #0x4c] + mov r1, r6 + mov r2, r5 + mov r3, r4 + bl ov00_022F51A4 + cmp r0, r8 + beq _022F92F0 + cmp r0, #1 + bne _022F9328 + ldr r1, [sp] + cmp r1, #0 + beq _022F9328 +_022F92F0: + mov r1, #1 + mov r2, #5 + str r1, [r7, #0x120] + sub r1, r2, #6 + cmp r0, r1 + str r2, [r7, #0x3c] + movne r0, #0 + bne _022F9318 + ldr r0, [r7, #0x4c] + bl ov00_022F5194 +_022F9318: + add sp, sp, #8 + str r0, [r7, #0x50] + mov r0, #0 + pop {r4, r5, r6, r7, r8, pc} +_022F9328: + cmp r0, #1 + blt _022F933C + ldr r0, [sp, #4] + cmp r0, #0 + bne _022F9348 +_022F933C: + add sp, sp, #8 + mov r0, #1 + pop {r4, r5, r6, r7, r8, pc} +_022F9348: + ldr r3, [r7, #0x64] + ldr r1, [r7, #0x58] + ldr r2, [r7, #0x60] + mov r0, r7 + add r1, r1, r3 + sub r2, r2, r3 + bl ov00_022F9734 + cmp r0, r8 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, pc} + ldr r1, [r7, #0x64] + add r1, r1, r0 + str r1, [r7, #0x64] + ldr r0, [r7, #0x60] + cmp r1, r0 + blt _022F92C0 + mov r0, #1 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022F92A4 + + arm_func_start ov00_022F9398 +ov00_022F9398: @ 0x022F9398 + push {r3, r4, r5, lr} + movs r4, r2 + mov r5, r0 + moveq r0, #1 + popeq {r3, r4, r5, pc} + ldr r0, [r5, #0xc] + cmp r0, r4 + movlt r0, #0 + poplt {r3, r4, r5, pc} + ldr ip, [r5, #4] + ldr r3, [r5, #0x10] + mov r0, r1 + add r1, ip, r3 + bl FUN_0208729C + ldr r1, [r5, #0x10] + mov r0, #1 + add r1, r1, r4 + str r1, [r5, #0x10] + pop {r3, r4, r5, pc} + arm_func_end ov00_022F9398 + + arm_func_start ov00_022F93E4 +ov00_022F93E4: @ 0x022F93E4 + push {r3, r4, r5, lr} + mov r5, r0 + ldr ip, [r5, #0x44] + cmp ip, #0 + popeq {r3, r4, r5, pc} + ldr r0, [r5, #0xc] + cmp r0, #0 + ldreq r4, [r5, #0xe8] + ldr r0, [r5, #0x48] + movne r4, #0 + str r0, [sp] + ldr r0, [r5, #4] + ldr r1, [r5, #0x3c] + ldr r3, [r5, #0x124] + mov r2, r4 + blx ip + cmp r4, #0 + popeq {r3, r4, r5, pc} + cmp r0, #0 + moveq r0, #1 + streq r0, [r5, #0x100] + pop {r3, r4, r5, pc} + arm_func_end ov00_022F93E4 + + arm_func_start ov00_022F943C +ov00_022F943C: @ 0x022F943C + stmdb sp!, {lr} + sub sp, sp, #0xc + mov lr, r0 + ldr ip, [lr, #0x40] + mov r3, r2 + cmp ip, #0 + addeq sp, sp, #0xc + ldmeq sp!, {pc} + ldr r0, [lr, #0x124] + mov r2, r1 + str r0, [sp] + ldr r0, [lr, #0x128] + str r0, [sp, #4] + ldr r0, [lr, #0x48] + str r0, [sp, #8] + ldr r0, [lr, #4] + ldr r1, [lr, #0x10] + blx ip + add sp, sp, #0xc + ldm sp!, {pc} + arm_func_end ov00_022F943C + + arm_func_start ov00_022F948C +ov00_022F948C: @ 0x022F948C + push {r4, lr} + sub sp, sp, #8 + mov r4, r0 + ldr r0, [r4, #0x174] + cmp r0, #0 + addeq sp, sp, #8 + popeq {r4, pc} + ldr r0, [r4, #0x164] + bl ov00_022F47A0 + str r0, [sp] + ldr r0, [r4, #0x48] + str r0, [sp, #4] + ldr r0, [r4, #4] + ldr r1, [r4, #0x16c] + ldr r2, [r4, #0x170] + ldr r3, [r4, #0x168] + ldr ip, [r4, #0x174] + blx ip + add sp, sp, #8 + pop {r4, pc} + arm_func_end ov00_022F948C + + arm_func_start ov00_022F94DC +ov00_022F94DC: @ 0x022F94DC + bx lr + arm_func_end ov00_022F94DC + + arm_func_start ov00_022F94E0 +ov00_022F94E0: @ 0x022F94E0 + bx lr + arm_func_end ov00_022F94E0 + + arm_func_start ov00_022F94E4 +ov00_022F94E4: @ 0x022F94E4 + bx lr + arm_func_end ov00_022F94E4 + + arm_func_start ov00_022F94E8 +ov00_022F94E8: @ 0x022F94E8 + bx lr + arm_func_end ov00_022F94E8 + + arm_func_start ov00_022F94EC +ov00_022F94EC: @ 0x022F94EC + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x10 + mov r1, #0 + mov r6, r0 + str r1, [sp, #0xc] + str r1, [sp, #8] + add r5, sp, #8 + add r4, sp, #0xc +_022F950C: + ldr ip, [r6, #0xd0] + ldr r0, [r6, #0xcc] + ldr r2, [r6, #0xc4] + sub r0, r0, ip + str r0, [sp, #0xc] + ldr r3, [r6, #0xa8] + ldr r0, [r6, #0xa4] + ldr r1, [r6, #0xa0] + sub r0, r0, r3 + str r0, [sp, #8] + add r0, r1, r3 + stm sp, {r0, r5} + ldr lr, [r6, #0x1ac] + mov r0, r6 + mov r3, r4 + add r1, r6, #0x190 + add r2, r2, ip + blx lr + mov r7, r0 + cmp r7, #2 + bne _022F9580 + ldr r1, [r6, #0xb0] + add r0, r6, #0x9c + bl ov00_022F8CE0 + cmp r0, #0 + bne _022F9590 + add sp, sp, #0x10 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_022F9580: + cmp r7, #3 + addeq sp, sp, #0x10 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} +_022F9590: + cmp r7, #2 + ldreq r0, [sp, #8] + cmpeq r0, #0 + beq _022F950C + ldr r1, [sp, #0xc] + ldr r0, [r6, #0xcc] + cmp r1, r0 + addgt sp, sp, #0x10 + movgt r0, #0 + popgt {r3, r4, r5, r6, r7, pc} + ldr r0, [r6, #0xd0] + add r0, r0, r1 + str r0, [r6, #0xd0] + ldr r1, [r6, #0xa8] + ldr r0, [sp, #8] + add r0, r1, r0 + str r0, [r6, #0xa8] + ldr r0, [sp, #8] + cmp r0, #0 + bgt _022F950C + ldr r1, [r6, #0xd0] + cmp r1, #0xff + ble _022F9620 + ldr r0, [r6, #0xcc] + subs r4, r0, r1 + bne _022F9604 + add r0, r6, #0xc0 + bl ov00_022F9284 + b _022F9620 +_022F9604: + ldr r0, [r6, #0xc4] + mov r2, r4 + add r1, r0, r1 + bl FUN_020872BC + mov r0, #0 + str r0, [r6, #0xd0] + str r4, [r6, #0xcc] +_022F9620: + mov r0, #1 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022F94EC + + arm_func_start ov00_022F962C +ov00_022F962C: @ 0x022F962C + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + mov r5, r2 + ldr r2, [r5] + ldr r0, [r7, #0x158] + mov r6, r1 + cmp r0, #0 + sub r4, r2, #1 + beq _022F9680 + bl ov00_022F5594 + ldr r1, _022F9730 @ =0x0231A7F0 + ldr r3, [r7, #0x15c] + ldr r2, [r1] + add r2, r3, r2 + cmp r0, r2 + movlo r0, #1 + poplo {r3, r4, r5, r6, r7, pc} + str r0, [r7, #0x15c] + ldr r0, [r1, #4] + cmp r4, r0 + movge r4, r0 +_022F9680: + ldr r0, [r7, #0x4c] + mov r1, r6 + mov r2, r4 + mov r3, #0 + bl ov00_022F5088 + mvn r1, #0 + cmp r0, r1 + bne _022F9704 + ldr r0, [r7, #0x4c] + bl ov00_022F5194 + mvn r2, #0x37 + cmp r0, r2 + bne _022F96C4 + mov r0, #1 + str r0, [r7, #0x154] + mov r0, #2 + pop {r3, r4, r5, r6, r7, pc} +_022F96C4: + add r1, r2, #0x32 + cmp r0, r1 + addne r1, r2, #0x1e + cmpne r0, r1 + subne r1, r2, #0x14 + cmpne r0, r1 + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, pc} + mov r2, #1 + str r2, [r7, #0x120] + mov r1, #5 + str r1, [r7, #0x3c] + str r0, [r7, #0x50] + str r2, [r7, #0x154] + mov r0, #3 + pop {r3, r4, r5, r6, r7, pc} +_022F9704: + cmp r0, #0 + bne _022F971C + mov r0, #1 + str r0, [r7, #0x154] + mov r0, #2 + pop {r3, r4, r5, r6, r7, pc} +_022F971C: + mov r1, #0 + strb r1, [r6, r0] + str r0, [r5] + mov r0, r1 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022F9730: .4byte 0x0231A7F0 + arm_func_end ov00_022F962C + + arm_func_start ov00_022F9734 +ov00_022F9734: @ 0x022F9734 + push {r4, lr} + mov r4, r0 + cmp r1, #0 + cmpne r2, #0 + moveq r0, #0 + popeq {r4, pc} + ldr r0, [r4, #0x4c] + mov r3, #0 + bl ov00_022F50CC + mvn r1, #0 + cmp r0, r1 + bne _022F97A8 + ldr r0, [r4, #0x4c] + bl ov00_022F5194 + mvn r2, #5 + cmp r0, r2 + subne r1, r2, #0x14 + cmpne r0, r1 + subne r1, r2, #0x46 + cmpne r0, r1 + moveq r0, #0 + popeq {r4, pc} + mov r1, #1 + str r1, [r4, #0x120] + mov r1, #5 + str r1, [r4, #0x3c] + str r0, [r4, #0x50] + sub r0, r1, #6 + pop {r4, pc} +_022F97A8: + ldr r1, [r4, #0x10] + cmp r1, #6 + ldreq r1, [r4, #0x17c] + cmpeq r1, #0 + ldreq r1, [r4, #0x16c] + addeq r1, r1, r0 + streq r1, [r4, #0x16c] + pop {r4, pc} + arm_func_end ov00_022F9734 + + arm_func_start ov00_022F97C8 +ov00_022F97C8: @ 0x022F97C8 + push {r4, r5, r6, lr} + mov r6, r0 + ldr r0, [r6, #0x194] + mov r5, r1 + mov r4, r2 + cmp r0, #0 + mov r3, #0 + beq _022F9840 + ldr r0, [r6, #0x19c] + cmp r0, #1 + bne _022F9840 + add r0, r6, #0x54 + bl ov00_022F8F9C + cmp r0, #0 + moveq r0, #0 + popeq {r4, r5, r6, pc} + mov r0, r6 + bl ov00_022F92A4 + cmp r0, #0 + moveq r0, #0 + popeq {r4, r5, r6, pc} + ldr r1, [r6, #0x64] + ldr r0, [r6, #0x60] + cmp r1, r0 + movlt r0, #2 + poplt {r4, r5, r6, pc} + add r0, r6, #0x54 + bl ov00_022F9284 + mov r0, #1 + pop {r4, r5, r6, pc} +_022F9840: + ldr r1, [r6, #0x64] + ldr r0, [r6, #0x60] + cmp r1, r0 + blt _022F9880 + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov00_022F9734 + mov r3, r0 + mvn r0, #0 + cmp r3, r0 + moveq r0, #0 + popeq {r4, r5, r6, pc} + cmp r3, r4 + moveq r0, #1 + popeq {r4, r5, r6, pc} +_022F9880: + add r0, r6, #0x54 + add r1, r5, r3 + sub r2, r4, r3 + bl ov00_022F8E9C + cmp r0, #0 + moveq r0, #0 + movne r0, #2 + pop {r4, r5, r6, pc} + arm_func_end ov00_022F97C8 + + arm_func_start ov00_022F98A0 +ov00_022F98A0: @ 0x022F98A0 + push {r3, r4, r5, r6, r7, r8, sb, lr} + ldr r1, _022F9988 @ =0x023289B0 + mov r0, #0 + ldr r3, [r1] + cmp r3, #0 + arm_func_end ov00_022F98A0 + + arm_func_start ov00_022F98B4 +ov00_022F98B4: @ 0x022F98B4 + ble _022F98D8 + ldr r2, [r1, #0xc] +_022F98BC: + ldr r1, [r2, r0, lsl #2] + ldr r1, [r1] + cmp r1, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + add r0, r0, #1 + cmp r0, r3 + blt _022F98BC +_022F98D8: + ldr r0, _022F9988 @ =0x023289B0 + ldr r6, [r0] + ldr r0, [r0, #0xc] + add r5, r6, #4 + lsl r1, r5, #2 + bl ov00_022F5AFC + cmp r0, #0 + mvneq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + ldr r8, _022F9988 @ =0x023289B0 + mov r7, r6 + str r0, [r8, #0xc] + cmp r6, r5 + bge _022F9978 + mov sb, #0 + mov r4, #0x1b4 +_022F9918: + mov r0, r4 + bl ov00_022F5AE4 + ldr r1, [r8, #0xc] + str r0, [r1, r7, lsl #2] + ldr r0, [r8, #0xc] + ldr r0, [r0, r7, lsl #2] + cmp r0, #0 + bne _022F9968 + sub r7, r7, #1 + cmp r7, r6 + blt _022F9960 + ldr r4, _022F9988 @ =0x023289B0 +_022F9948: + ldr r0, [r4, #0xc] + ldr r0, [r0, r7, lsl #2] + bl ov00_022F5B14 + sub r7, r7, #1 + cmp r7, r6 + bge _022F9948 +_022F9960: + mvn r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022F9968: + add r7, r7, #1 + str sb, [r0] + cmp r7, r5 + blt _022F9918 +_022F9978: + ldr r1, _022F9988 @ =0x023289B0 + mov r0, r6 + str r5, [r1] + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022F9988: .4byte 0x023289B0 + arm_func_end ov00_022F98B4 + + arm_func_start ov00_022F998C +ov00_022F998C: @ 0x022F998C + push {r3, r4, r5, lr} + bl ov00_022F94E4 + bl ov00_022F98A0 + mov r5, r0 + mvn r0, #0 + cmp r5, r0 + bne _022F99B4 + bl ov00_022F94E8 + mov r0, #0 + pop {r3, r4, r5, pc} +_022F99B4: + ldr r0, _022F9B3C @ =0x023289B0 + mov r1, #0 + ldr r0, [r0, #0xc] + mov r2, #0x1b4 + ldr r4, [r0, r5, lsl #2] + mov r0, r4 + bl FUN_02087308 + mov r0, #1 + str r0, [r4] + ldr r0, _022F9B3C @ =0x023289B0 + str r5, [r4, #4] + ldr r2, [r0, #8] + mov ip, #0 + add r1, r2, #1 + str r1, [r0, #8] + str r2, [r4, #8] + str ip, [r4, #0xc] + str ip, [r4, #0x10] + str ip, [r4, #0x14] + str ip, [r4, #0x18] + str ip, [r4, #0x1c] + strh ip, [r4, #0x20] + str ip, [r4, #0x24] + str ip, [r4, #0x2c] + str ip, [r4, #0x30] + str ip, [r4, #0x34] + str ip, [r4, #0x38] + str ip, [r4, #0x3c] + str ip, [r4, #0x40] + str ip, [r4, #0x44] + str ip, [r4, #0x48] + sub r0, ip, #1 + str r0, [r4, #0x4c] + str ip, [r4, #0x50] + str ip, [r4, #0x108] + str ip, [r4, #0x10c] + str ip, [r4, #0x110] + str ip, [r4, #0x114] + str ip, [r4, #0x118] + str ip, [r4, #0x11c] + str ip, [r4, #0x120] + str ip, [r4, #0x124] + str r0, [r4, #0x128] + str ip, [r4, #0x12c] + str ip, [r4, #0x130] + str ip, [r4, #0x134] + str ip, [r4, #0x150] + str ip, [r4, #0x158] + str ip, [r4, #0x15c] + str ip, [r4, #0x160] + mov r0, #0x1f4 + str r0, [r4, #0x184] + add r0, r4, #0x100 + mov r1, #0x50 + strh r1, [r0, #0x8c] + str ip, [r4, #0x188] + str ip, [r4, #0x190] + mov r0, r4 + add r1, r4, #0x54 + mov r2, #0x800 + mov r3, #0x1000 + str ip, [r4, #0x1b0] + bl ov00_022F8D20 + cmp r0, #0 + beq _022F9ACC + mov r0, r4 + add r1, r4, #0x78 + mov r2, #0x800 + mov r3, #0x400 + bl ov00_022F8D20 +_022F9ACC: + cmp r0, #0 + beq _022F9AE8 + mov r2, #0x800 + mov r0, r4 + mov r3, r2 + add r1, r4, #0x9c + bl ov00_022F8D20 +_022F9AE8: + cmp r0, #0 + beq _022F9B04 + mov r0, r4 + add r1, r4, #0xc0 + mov r2, #0x800 + mov r3, #0x400 + bl ov00_022F8D20 +_022F9B04: + cmp r0, #0 + bne _022F9B20 + mov r0, r4 + bl ov00_022F9B40 + bl ov00_022F94E8 + mov r0, #0 + pop {r3, r4, r5, pc} +_022F9B20: + ldr r0, _022F9B3C @ =0x023289B0 + ldr r1, [r0, #4] + add r1, r1, #1 + str r1, [r0, #4] + bl ov00_022F94E8 + mov r0, r4 + pop {r3, r4, r5, pc} + .align 2, 0 +_022F9B3C: .4byte 0x023289B0 + arm_func_end ov00_022F998C + + arm_func_start ov00_022F9B40 +ov00_022F9B40: @ 0x022F9B40 + push {r4, lr} + movs r4, r0 + moveq r0, #0 + popeq {r4, pc} + ldr r0, [r4] + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} + ldr r1, [r4, #4] + cmp r1, #0 + movlt r0, #0 + poplt {r4, pc} + ldr r0, _022F9C8C @ =0x023289B0 + ldr r0, [r0] + cmp r1, r0 + movge r0, #0 + popge {r4, pc} + bl ov00_022F94E4 + ldr r0, [r4, #0x14] + bl ov00_022F5B14 + ldr r0, [r4, #0x18] + bl ov00_022F5B14 + ldr r0, [r4, #0x24] + bl ov00_022F5B14 + ldr r0, [r4, #0x2c] + bl ov00_022F5B14 + ldr r0, [r4, #0x12c] + bl ov00_022F5B14 + ldr r0, [r4, #0x188] + bl ov00_022F5B14 + ldr r0, [r4, #0x4c] + mvn r1, #0 + cmp r0, r1 + beq _022F9BD8 + mov r1, #2 + bl ov00_022F4FC8 + ldr r0, [r4, #0x4c] + bl ov00_022F4FB4 +_022F9BD8: + add r0, r4, #0x54 + bl ov00_022F8E64 + add r0, r4, #0x78 + bl ov00_022F8E64 + add r0, r4, #0x9c + bl ov00_022F8E64 + add r0, r4, #0xc0 + bl ov00_022F8E64 + add r0, r4, #0xe4 + bl ov00_022F8E64 + ldr r0, [r4, #0x164] + cmp r0, #0 + beq _022F9C14 + mov r0, r4 + bl ov00_022FC85C +_022F9C14: + ldr r0, [r4, #0x160] + cmp r0, #0 + beq _022F9C3C + bl ov00_022FC1F0 + cmp r0, #0 + beq _022F9C3C + ldr r0, [r4, #0x160] + bl ov00_022FC1F8 + mov r0, #0 + str r0, [r4, #0x160] +_022F9C3C: + ldr r0, [r4, #0x198] + cmp r0, #0 + beq _022F9C68 + ldr r2, [r4, #0x1a4] + cmp r2, #0 + beq _022F9C60 + mov r0, r4 + add r1, r4, #0x190 + blx r2 +_022F9C60: + mov r0, #0 + str r0, [r4, #0x198] +_022F9C68: + mov r1, #0 + ldr r0, _022F9C8C @ =0x023289B0 + str r1, [r4] + ldr r1, [r0, #4] + sub r1, r1, #1 + str r1, [r0, #4] + bl ov00_022F94E8 + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_022F9C8C: .4byte 0x023289B0 + arm_func_end ov00_022F9B40 + + arm_func_start ov00_022F9C90 +ov00_022F9C90: @ 0x022F9C90 + push {r4, lr} + mov r4, r0 + bl ov00_022F94E4 + cmp r4, #0 + blt _022F9CB4 + ldr r0, _022F9CE0 @ =0x023289B0 + ldr r1, [r0] + cmp r4, r1 + blt _022F9CC0 +_022F9CB4: + bl ov00_022F94E8 + mov r0, #0 + pop {r4, pc} +_022F9CC0: + ldr r0, [r0, #0xc] + ldr r4, [r0, r4, lsl #2] + ldr r0, [r4] + cmp r0, #0 + moveq r4, #0 + bl ov00_022F94E8 + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_022F9CE0: .4byte 0x023289B0 + arm_func_end ov00_022F9C90 + + arm_func_start ov00_022F9CE4 +ov00_022F9CE4: @ 0x022F9CE4 + push {r4, r5, r6, lr} + ldr r1, _022F9D44 @ =0x023289B0 + mov r4, r0 + ldr r0, [r1, #4] + cmp r0, #0 + pople {r4, r5, r6, pc} + bl ov00_022F94E4 + ldr r5, _022F9D44 @ =0x023289B0 + mov r6, #0 + ldr r0, [r5] + cmp r0, #0 + ble _022F9D3C +_022F9D14: + ldr r0, [r5, #0xc] + ldr r0, [r0, r6, lsl #2] + ldr r1, [r0] + cmp r1, #0 + beq _022F9D2C + blx r4 +_022F9D2C: + ldr r0, [r5] + add r6, r6, #1 + cmp r6, r0 + blt _022F9D14 +_022F9D3C: + bl ov00_022F94E8 + pop {r4, r5, r6, pc} + .align 2, 0 +_022F9D44: .4byte 0x023289B0 + arm_func_end ov00_022F9CE4 + + arm_func_start ov00_022F9D48 +ov00_022F9D48: @ 0x022F9D48 + push {r4, lr} + mov r4, r0 + mov r0, #0 + str r0, [r4, #0x10] + ldr r0, [r4, #0x1b0] + cmp r0, #0 + beq _022F9D78 + bl ov00_022F5B14 + ldr r0, [r4, #0x1b0] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #0x1b0] +_022F9D78: + ldr r0, [r4, #0x14] + bl ov00_022F5B14 + ldr r1, [r4, #0x12c] + mov r0, #0 + str r1, [r4, #0x14] + str r0, [r4, #0x12c] + ldr r0, [r4, #0x18] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #0x18] + str r0, [r4, #0x1c] + strh r0, [r4, #0x20] + ldr r0, [r4, #0x24] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #0x24] + ldr r0, [r4, #0x4c] + mov r1, #2 + bl ov00_022F4FC8 + ldr r0, [r4, #0x4c] + bl ov00_022F4FB4 + mvn r1, #0 + add r0, r4, #0x54 + str r1, [r4, #0x4c] + bl ov00_022F9284 + add r0, r4, #0x78 + bl ov00_022F9284 + add r0, r4, #0x9c + bl ov00_022F9284 + add r0, r4, #0xc0 + bl ov00_022F9284 + mov r0, #0 + str r0, [r4, #0x10c] + str r0, [r4, #0x110] + str r0, [r4, #0x114] + str r0, [r4, #0x118] + str r0, [r4, #0x11c] + str r0, [r4, #0x154] + ldr r0, [r4, #0x198] + cmp r0, #0 + beq _022F9E5C + ldr r2, [r4, #0x1a4] + cmp r2, #0 + beq _022F9E34 + mov r0, r4 + add r1, r4, #0x190 + blx r2 +_022F9E34: + mov r0, #0 + str r0, [r4, #0x198] + ldr r1, [r4, #0x14] + ldr r0, _022F9E6C @ =0x0231A7F8 + mov r2, #8 + bl FUN_02089940 + cmp r0, #0 + movne r0, #0 + strne r0, [r4, #0x194] + strne r0, [r4, #0x190] +_022F9E5C: + ldr r0, [r4, #0x130] + add r0, r0, #1 + str r0, [r4, #0x130] + pop {r4, pc} + .align 2, 0 +_022F9E6C: .4byte 0x0231A7F8 + arm_func_end ov00_022F9D48 + + arm_func_start ov00_022F9E70 +ov00_022F9E70: @ 0x022F9E70 + push {r3, r4, r5, lr} + ldr r0, _022F9EE0 @ =0x023289B0 + ldr r0, [r0, #0xc] + cmp r0, #0 + popeq {r3, r4, r5, pc} + ldr r0, _022F9EE4 @ =ov00_022F9B40 + bl ov00_022F9CE4 + ldr r4, _022F9EE0 @ =0x023289B0 + mov r5, #0 + ldr r0, [r4] + cmp r0, #0 + ble _022F9EBC +_022F9EA0: + ldr r0, [r4, #0xc] + ldr r0, [r0, r5, lsl #2] + bl ov00_022F5B14 + ldr r0, [r4] + add r5, r5, #1 + cmp r5, r0 + blt _022F9EA0 +_022F9EBC: + ldr r0, _022F9EE0 @ =0x023289B0 + ldr r0, [r0, #0xc] + bl ov00_022F5B14 + ldr r0, _022F9EE0 @ =0x023289B0 + mov r1, #0 + str r1, [r0, #0xc] + str r1, [r0] + str r1, [r0, #4] + pop {r3, r4, r5, pc} + .align 2, 0 +_022F9EE0: .4byte 0x023289B0 +_022F9EE4: .4byte ov00_022F9B40 + arm_func_end ov00_022F9E70 + + arm_func_start ov00_022F9EE8 +ov00_022F9EE8: @ 0x022F9EE8 + push {r3, r4, r5, lr} + mov r5, r1 + bl ov00_022F9C90 + movs r4, r0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldr r1, [r4, #0x194] + cmp r1, r5 + moveq r0, #1 + popeq {r3, r4, r5, pc} + ldr r0, [r4, #0x190] + cmp r0, #0 + cmpne r1, r5 + movne r0, #0 + popne {r3, r4, r5, pc} + cmp r5, #0 + bne _022F9F48 + ldr r0, [r4, #0x14] + ldr r1, _022F9F9C @ =0x0231A804 + mov r2, #8 + bl FUN_02089940 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, pc} +_022F9F48: + str r5, [r4, #0x194] + cmp r5, #0 + bne _022F9F64 + mov r0, #0 + str r0, [r4, #0x190] + mov r0, #1 + pop {r3, r4, r5, pc} +_022F9F64: + mov r2, #0 + ldr r1, _022F9FA0 @ =ov00_022FA6A8 + str r2, [r4, #0x190] + ldr r0, _022F9FA4 @ =ov00_022FA8B0 + str r1, [r4, #0x1a0] + ldr r1, _022F9FA8 @ =ov00_022FA8E8 + str r0, [r4, #0x1a4] + ldr r0, _022F9FAC @ =ov00_022FAAF8 + str r1, [r4, #0x1a8] + str r0, [r4, #0x1ac] + str r2, [r4, #0x198] + str r2, [r4, #0x19c] + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_022F9F9C: .4byte 0x0231A804 +_022F9FA0: .4byte ov00_022FA6A8 +_022F9FA4: .4byte ov00_022FA8B0 +_022F9FA8: .4byte ov00_022FA8E8 +_022F9FAC: .4byte ov00_022FAAF8 + arm_func_end ov00_022F9EE8 + + arm_func_start ov00_022F9FB0 +ov00_022F9FB0: @ 0x022F9FB0 + push {r3, r4, lr} + sub sp, sp, #4 + lsr ip, r1, #0x18 + lsl r4, r1, #0x18 + lsr r3, r1, #8 + lsl lr, r1, #8 + and r1, r3, #0xff00 + and ip, ip, #0xff + and r3, lr, #0xff0000 + orr r1, ip, r1 + orr r1, r3, r1 + and r4, r4, #0xff000000 + orr r1, r4, r1 + str r1, [sp] + cmp r2, #4 + add r3, sp, #0 + addhi sp, sp, #4 + pophi {r3, r4, pc} + rsb r1, r2, #4 + add r1, r3, r1 + bl FUN_0208729C + add sp, sp, #4 + pop {r3, r4, pc} + arm_func_end ov00_022F9FB0 + + arm_func_start ov00_022FA00C +ov00_022FA00C: @ 0x022FA00C + push {r4, lr} + mov r4, r1 + cmp r2, #4 + movhi r0, #0 + pophi {r4, pc} + rsb r1, r2, #4 + add r1, r4, r1 + bl ov00_022F9398 + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} + ldr ip, [r4] + mov r0, #1 + lsr r2, ip, #0x18 + lsr r1, ip, #8 + lsl r3, ip, #8 + lsl ip, ip, #0x18 + and r2, r2, #0xff + and r1, r1, #0xff00 + and r3, r3, #0xff0000 + orr r1, r2, r1 + and r2, ip, #0xff000000 + orr r1, r3, r1 + orr r1, r2, r1 + str r1, [r4] + pop {r4, pc} + arm_func_end ov00_022FA00C + + arm_func_start ov00_022FA074 +ov00_022FA074: @ 0x022FA074 + push {r3, r4, r5, lr} + sub sp, sp, #8 + mov r4, r1 + mov r3, #0 + add r1, sp, #0 + mov r2, #1 + mov r5, r0 + strb r3, [sp] + bl ov00_022F9398 + cmp r0, #0 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldrsb r0, [sp] + cmp r0, #0x30 + addne sp, sp, #8 + movne r0, #0 + popne {r3, r4, r5, pc} + add r1, sp, #0 + mov r0, r5 + mov r2, #1 + bl ov00_022F9398 + cmp r0, #0 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldrsb r2, [sp] + and r0, r2, #0x80 + cmp r0, #0x80 + bne _022FA144 + eor r0, r2, #0x80 + strb r0, [sp] + ldrsb r2, [sp] + mov r3, #0 + add r1, sp, #4 + mov r0, r5 + str r3, [sp, #4] + bl ov00_022FA00C + cmp r0, #0 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldr r1, [r5, #0xc] + ldr r0, [r5, #0x10] + ldr r2, [sp, #4] + sub r0, r1, r0 + cmp r2, r0 + movgt r0, #0 + add sp, sp, #8 + strle r2, [r4] + movle r0, #1 + pop {r3, r4, r5, pc} +_022FA144: + ldr r1, [r5, #0xc] + ldr r0, [r5, #0x10] + sub r0, r1, r0 + cmp r2, r0 + movgt r0, #0 + strle r2, [r4] + movle r0, #1 + add sp, sp, #8 + pop {r3, r4, r5, pc} + arm_func_end ov00_022FA074 + + arm_func_start ov00_022FA168 +ov00_022FA168: @ 0x022FA168 + push {r3, r4, lr} + sub sp, sp, #0x114 + mov r4, r0 + add r0, sp, #0xac + bl ov00_022F770C + ldr r1, _022FA698 @ =0x0231A810 + add r0, sp, #0xac + mov r2, #1 + bl ov00_022F780C + add r1, r4, #0x2a4 + add r0, sp, #0xac + add r1, r1, #0x400 + mov r2, #0x30 + bl ov00_022F780C + add r1, r4, #0x284 + add r0, sp, #0xac + add r1, r1, #0x400 + mov r2, #0x20 + bl ov00_022F780C + add r1, r4, #0x264 + add r0, sp, #0xac + add r1, r1, #0x400 + mov r2, #0x20 + bl ov00_022F780C + add r0, sp, #0xac + add r1, sp, #0x40 + bl ov00_022F7774 + add r0, sp, #0x54 + bl ov00_020800FC + add r1, r4, #0x2a4 + add r0, sp, #0x54 + add r1, r1, #0x400 + mov r2, #0x30 + bl ov00_0208013C + add r0, sp, #0x54 + add r1, sp, #0x40 + mov r2, #0x14 + bl ov00_0208013C + add r0, r4, #0x2d4 + add r0, r0, #0x400 + add r1, sp, #0x54 + bl ov00_02080204 + add r0, sp, #0xac + bl ov00_022F770C + ldr r1, _022FA69C @ =0x0231A814 + add r0, sp, #0xac + mov r2, #2 + bl ov00_022F780C + add r1, r4, #0x2a4 + add r0, sp, #0xac + add r1, r1, #0x400 + mov r2, #0x30 + bl ov00_022F780C + add r1, r4, #0x284 + add r0, sp, #0xac + add r1, r1, #0x400 + mov r2, #0x20 + bl ov00_022F780C + add r1, r4, #0x264 + add r0, sp, #0xac + add r1, r1, #0x400 + mov r2, #0x20 + bl ov00_022F780C + add r0, sp, #0xac + add r1, sp, #0x40 + bl ov00_022F7774 + add r0, sp, #0x54 + bl ov00_020800FC + add r1, r4, #0x2a4 + add r0, sp, #0x54 + add r1, r1, #0x400 + mov r2, #0x30 + bl ov00_0208013C + add r0, sp, #0x54 + add r1, sp, #0x40 + mov r2, #0x14 + bl ov00_0208013C + add r0, r4, #0x2e4 + add r0, r0, #0x400 + add r1, sp, #0x54 + bl ov00_02080204 + add r0, sp, #0xac + bl ov00_022F770C + ldr r1, _022FA6A0 @ =0x0231A818 + add r0, sp, #0xac + mov r2, #3 + bl ov00_022F780C + add r1, r4, #0x2a4 + add r0, sp, #0xac + add r1, r1, #0x400 + mov r2, #0x30 + bl ov00_022F780C + add r1, r4, #0x284 + add r0, sp, #0xac + add r1, r1, #0x400 + mov r2, #0x20 + bl ov00_022F780C + add r1, r4, #0x264 + add r0, sp, #0xac + add r1, r1, #0x400 + mov r2, #0x20 + bl ov00_022F780C + add r0, sp, #0xac + add r1, sp, #0x40 + bl ov00_022F7774 + add r0, sp, #0x54 + bl ov00_020800FC + add r1, r4, #0x2a4 + add r0, sp, #0x54 + add r1, r1, #0x400 + mov r2, #0x30 + bl ov00_0208013C + add r0, sp, #0x54 + add r1, sp, #0x40 + mov r2, #0x14 + bl ov00_0208013C + add r0, r4, #0x2f4 + add r0, r0, #0x400 + add r1, sp, #0x54 + bl ov00_02080204 + add r0, sp, #0xac + bl ov00_022F770C + ldr r1, _022FA698 @ =0x0231A810 + add r0, sp, #0xac + mov r2, #1 + bl ov00_022F780C + add r1, r4, #0x2d4 + add r0, sp, #0xac + add r1, r1, #0x400 + mov r2, #0x30 + bl ov00_022F780C + add r1, r4, #0x264 + add r0, sp, #0xac + add r1, r1, #0x400 + mov r2, #0x20 + bl ov00_022F780C + add r1, r4, #0x284 + add r0, sp, #0xac + add r1, r1, #0x400 + mov r2, #0x20 + bl ov00_022F780C + add r0, sp, #0xac + add r1, sp, #0x40 + bl ov00_022F7774 + add r0, sp, #0x54 + bl ov00_020800FC + add r1, r4, #0x2d4 + add r0, sp, #0x54 + add r1, r1, #0x400 + mov r2, #0x30 + bl ov00_0208013C + add r0, sp, #0x54 + add r1, sp, #0x40 + mov r2, #0x14 + bl ov00_0208013C + add r0, sp, #0 + add r1, sp, #0x54 + bl ov00_02080204 + add r0, sp, #0xac + bl ov00_022F770C + ldr r1, _022FA69C @ =0x0231A814 + add r0, sp, #0xac + mov r2, #2 + bl ov00_022F780C + add r1, r4, #0x2d4 + add r0, sp, #0xac + add r1, r1, #0x400 + mov r2, #0x30 + bl ov00_022F780C + add r1, r4, #0x264 + add r0, sp, #0xac + add r1, r1, #0x400 + mov r2, #0x20 + bl ov00_022F780C + add r1, r4, #0x284 + add r0, sp, #0xac + add r1, r1, #0x400 + mov r2, #0x20 + bl ov00_022F780C + add r0, sp, #0xac + add r1, sp, #0x40 + bl ov00_022F7774 + add r0, sp, #0x54 + bl ov00_020800FC + add r1, r4, #0x2d4 + add r0, sp, #0x54 + add r1, r1, #0x400 + mov r2, #0x30 + bl ov00_0208013C + add r0, sp, #0x54 + add r1, sp, #0x40 + mov r2, #0x14 + bl ov00_0208013C + add r0, sp, #0x10 + add r1, sp, #0x54 + bl ov00_02080204 + add r0, sp, #0xac + bl ov00_022F770C + ldr r1, _022FA6A0 @ =0x0231A818 + add r0, sp, #0xac + mov r2, #3 + bl ov00_022F780C + add r0, r4, #0x2d4 + add r1, r0, #0x400 + add r0, sp, #0xac + mov r2, #0x30 + bl ov00_022F780C + add r1, r4, #0x264 + add r0, sp, #0xac + add r1, r1, #0x400 + mov r2, #0x20 + bl ov00_022F780C + add r1, r4, #0x284 + add r0, sp, #0xac + add r1, r1, #0x400 + mov r2, #0x20 + bl ov00_022F780C + add r0, sp, #0xac + add r1, sp, #0x40 + bl ov00_022F7774 + add r0, sp, #0x54 + bl ov00_020800FC + add r1, r4, #0x2d4 + add r0, sp, #0x54 + add r1, r1, #0x400 + mov r2, #0x30 + bl ov00_0208013C + add r0, sp, #0x54 + add r1, sp, #0x40 + mov r2, #0x14 + bl ov00_0208013C + add r0, sp, #0x20 + add r1, sp, #0x54 + bl ov00_02080204 + add r0, sp, #0xac + bl ov00_022F770C + ldr r1, _022FA6A4 @ =0x0231A81C + add r0, sp, #0xac + mov r2, #4 + bl ov00_022F780C + add r1, r4, #0x2d4 + add r0, sp, #0xac + add r1, r1, #0x400 + mov r2, #0x30 + bl ov00_022F780C + add r1, r4, #0x264 + add r0, sp, #0xac + add r1, r1, #0x400 + mov r2, #0x20 + bl ov00_022F780C + add r1, r4, #0x284 + add r0, sp, #0xac + add r1, r1, #0x400 + mov r2, #0x20 + bl ov00_022F780C + add r0, sp, #0xac + add r1, sp, #0x40 + bl ov00_022F7774 + add r0, sp, #0x54 + bl ov00_020800FC + add r1, r4, #0x2d4 + add r0, sp, #0x54 + add r1, r1, #0x400 + mov r2, #0x30 + bl ov00_0208013C + add r0, sp, #0x54 + add r1, sp, #0x40 + mov r2, #0x14 + bl ov00_0208013C + add r0, sp, #0x30 + add r1, sp, #0x54 + bl ov00_02080204 + add ip, r4, #0x320 + add r3, sp, #0 + mov r2, #8 +_022FA5B4: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + strb r1, [ip] + strb r0, [ip, #1] + add ip, ip, #2 + bne _022FA5B4 + add r3, sp, #0x10 + add ip, r4, #0x334 + mov r2, #8 +_022FA5E0: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + strb r1, [ip] + strb r0, [ip, #1] + add ip, ip, #2 + bne _022FA5E0 + add r3, sp, #0x20 + add ip, r4, #0x348 + mov r2, #8 +_022FA60C: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + strb r1, [ip] + strb r0, [ip, #1] + add ip, ip, #2 + bne _022FA60C + add r3, sp, #0x30 + add ip, r4, #0x358 + mov r2, #8 +_022FA638: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + strb r1, [ip] + strb r0, [ip, #1] + add ip, ip, #2 + bne _022FA638 + mov r0, #0x10 + str r0, [r4, #0x388] + str r0, [r4, #0x38c] + str r0, [r4, #0x390] + str r0, [r4, #0x394] + ldr r2, [r4, #0x390] + add r0, r4, #0x3a0 + add r1, r4, #0x348 + bl ov00_022F75E0 + add r0, r4, #0xa2 + ldr r2, [r4, #0x394] + add r0, r0, #0x400 + add r1, r4, #0x358 + bl ov00_022F75E0 + add sp, sp, #0x114 + pop {r3, r4, pc} + .align 2, 0 +_022FA698: .4byte 0x0231A810 +_022FA69C: .4byte 0x0231A814 +_022FA6A0: .4byte 0x0231A818 +_022FA6A4: .4byte 0x0231A81C + arm_func_end ov00_022FA168 + + arm_func_start ov00_022FA6A8 +ov00_022FA6A8: @ 0x022FA6A8 + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x34 + mov r6, r0 + ldr r2, [r6, #0x5c] + ldr r0, [r6, #0x60] + mov r5, r1 + sub r0, r2, r0 + cmp r0, #0x32 + addlo sp, sp, #0x34 + movlo r0, #2 + poplo {r4, r5, r6, r7, r8, sb, pc} + ldr r0, _022FA8A8 @ =0x00000704 + bl ov00_022F5AE4 + cmp r0, #0 + str r0, [r5] + addeq sp, sp, #0x34 + moveq r0, #3 + popeq {r4, r5, r6, r7, r8, sb, pc} + ldr r2, _022FA8A8 @ =0x00000704 + mov r1, #0 + bl FUN_02087308 + ldr r4, [r5] + mov r1, #1 + add r0, r4, #0x1a4 + str r1, [r5, #8] + mov r1, #0 + add r0, r0, #0x400 + str r1, [r5, #0xc] + bl ov00_020800FC + add r0, r4, #0x1fc + add r0, r0, #0x400 + bl ov00_022F770C + mov r0, #0x16 + mov r1, #3 + mov r2, #0 + strb r0, [sp] + strb r1, [sp, #1] + strb r2, [sp, #2] + add r0, sp, #3 + mov r1, #0x2d + mov r2, #2 + bl ov00_022F9FB0 + mov r0, #1 + strb r0, [sp, #5] + mov r0, #0 + mov r2, #3 + strb r0, [sp, #0xa] + add r0, sp, #6 + mov r1, #0x29 + strb r2, [sp, #9] + bl ov00_022F9FB0 + add r0, sp, #0xb + mov r1, #0 + mov r2, #4 + bl ov00_022F9FB0 + bl ov00_022F5594 + bl ov00_022F5664 + mov r8, #0 + add sb, sp, #0 + mov r7, r8 + mov r5, #0xff +_022FA79C: + mov r0, r7 + mov r1, r5 + bl ov00_022F5680 + add r8, r8, #1 + strb r0, [sb, #0xf] + cmp r8, #0x1c + add sb, sb, #1 + blt _022FA79C + add ip, sp, #0xb + ldrb r2, [ip] + ldrb r1, [ip, #1] + add r0, r4, #0x288 + add r5, r0, #0x400 + strb r2, [r4, #0x684] + strb r1, [r4, #0x685] + ldrb r1, [ip, #2] + ldrb r0, [ip, #3] + add r3, sp, #0xf + mov r2, #0xe + strb r1, [r4, #0x686] + strb r0, [r4, #0x687] +_022FA7F0: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + strb r1, [r5] + strb r0, [r5, #1] + add r5, r5, #2 + bne _022FA7F0 + ldr r0, _022FA8AC @ =0x02318490 + mov ip, #0 + ldr r0, [r0] + add r1, sp, #0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr lr, r0, #8 + lsl r2, r0, #8 + add r0, r4, #0x1a4 + mov r3, #0x200 + mov r5, #1 + and lr, lr, #0xff + and r2, r2, #0xff00 + orr lr, lr, r2 + add r0, r0, #0x400 + add r1, r1, #5 + mov r2, #0x2d + strb ip, [sp, #0x2b] + strh r3, [sp, #0x2c] + strh lr, [sp, #0x2e] + strb r5, [sp, #0x30] + strb ip, [sp, #0x31] + bl ov00_0208013C + add r1, sp, #0 + add r0, r4, #0x1fc + add r0, r0, #0x400 + add r1, r1, #5 + mov r2, #0x2d + bl ov00_022F780C + add r1, sp, #0 + add r0, r6, #0x54 + mov r2, #0x32 + bl ov00_022F8E9C + cmp r0, #0 + moveq r0, #2 + movne r0, r5 + add sp, sp, #0x34 + pop {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022FA8A8: .4byte 0x00000704 +_022FA8AC: .4byte 0x02318490 + arm_func_end ov00_022FA6A8 + + arm_func_start ov00_022FA8B0 +ov00_022FA8B0: @ 0x022FA8B0 + push {r4, lr} + movs r4, r1 + beq _022FA8E0 + ldr r0, [r4] + cmp r0, #0 + beq _022FA8D4 + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4] +_022FA8D4: + mov r0, #0 + str r0, [r4, #8] + str r0, [r4, #0xc] +_022FA8E0: + mov r0, #1 + pop {r4, pc} + arm_func_end ov00_022FA8B0 + + arm_func_start ov00_022FA8E8 +ov00_022FA8E8: @ 0x022FA8E8 + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x6c + mov sb, r2 + mov r8, r3 + cmp r1, #0 + ldr r7, [sp, #0x88] + ldr r6, [sp, #0x8c] + beq _022FAAE0 + ldr r4, [r1] + cmp r4, #0 + ldrne r0, [r1, #0xc] + cmpne r0, #0 + bne _022FA950 + ldr r0, [r6] + cmp r8, r0 + addgt sp, sp, #0x6c + movgt r0, #2 + popgt {r4, r5, r6, r7, r8, sb, pc} + mov r0, r7 + mov r1, sb + mov r2, r8 + bl FUN_0208729C + ldr r0, [r6] + add r0, r0, r8 + str r0, [r6] + b _022FAAE0 +_022FA950: + lsl r0, r8, #0x10 + lsr r0, r0, #0x10 + asr r1, r0, #8 + lsl r0, r0, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + strh r0, [sp] + ldr r1, [r6] + add r0, r8, #5 + cmp r1, r0 + addlt sp, sp, #0x6c + mov r1, #0 + movlt r0, #2 + poplt {r4, r5, r6, r7, r8, sb, pc} + mov r0, #0x17 + strb r0, [r7] + mov r0, #3 + strb r0, [r7, #1] + add r0, sp, #0x14 + strb r1, [r7, #2] + add r5, r1, #5 + bl ov00_020800FC + ldr r2, [r4, #0x388] + add r0, sp, #0x14 + add r1, r4, #0x320 + bl ov00_0208013C + ldr r1, _022FAAEC @ =0x0231A824 + add r0, sp, #0x14 + mov r2, #0x30 + bl ov00_0208013C + add r0, sp, #0x14 + add r1, r4, #0x310 + mov r2, #8 + bl ov00_0208013C + ldr r1, _022FAAF0 @ =0x0231A858 + add r0, sp, #0x14 + mov r2, #1 + bl ov00_0208013C + add r0, sp, #0x14 + add r1, sp, #0 + mov r2, #2 + bl ov00_0208013C + add r0, sp, #0x14 + mov r1, sb + mov r2, r8 + bl ov00_0208013C + add r0, sp, #2 + add r1, sp, #0x14 + bl ov00_02080204 + add r0, sp, #0x14 + bl ov00_020800FC + ldr r2, [r4, #0x388] + add r0, sp, #0x14 + add r1, r4, #0x320 + bl ov00_0208013C + ldr r1, _022FAAF4 @ =0x0231A85C + add r0, sp, #0x14 + mov r2, #0x30 + bl ov00_0208013C + add r0, sp, #0x14 + add r1, sp, #2 + mov r2, #0x10 + bl ov00_0208013C + add r0, sp, #2 + add r1, sp, #0x14 + bl ov00_02080204 + mov r1, sb + add r0, r4, #0x3a0 + add r2, r7, r5 + mov r3, r8 + bl ov00_022F766C + add r5, r5, r8 + add r0, r4, #0x3a0 + add r1, sp, #2 + add r2, r7, r5 + mov r3, #0x10 + bl ov00_022F766C + add r1, r5, #0x10 + add r0, r7, #3 + sub r1, r1, #5 + mov r2, #2 + bl ov00_022F9FB0 + add r0, r5, #0x10 + ldr r1, [r6] + mov r5, #7 + sub r0, r1, r0 + str r0, [r6] + mov r0, #0 + mov r2, r0 +_022FAAB8: + add r3, r4, r5 + ldrb r1, [r3, #0x310] + cmp r1, #0xff + subeq r5, r5, #1 + strbeq r2, [r3, #0x310] + addne r1, r1, #1 + movne r5, r0 + strbne r1, [r3, #0x310] + cmp r5, #0 + bge _022FAAB8 +_022FAAE0: + mov r0, #1 + add sp, sp, #0x6c + pop {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_022FAAEC: .4byte 0x0231A824 +_022FAAF0: .4byte 0x0231A858 +_022FAAF4: .4byte 0x0231A85C + arm_func_end ov00_022FA8E8 + + arm_func_start ov00_022FAAF8 +ov00_022FAAF8: @ 0x022FAAF8 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x28 + movs fp, r1 + mov sb, r0 + ldr r0, [sp, #0x50] + ldrne r1, [fp] + mov r5, #0 + mov r8, r2 + mov r7, r3 + mov r6, r5 + str r0, [sp, #0x50] + ldr sl, [sp, #0x54] + cmpne r1, #0 + bne _022FAB5C + ldr r2, [r7] + ldr r0, [sp, #0x50] + mov r1, r8 + bl FUN_0208729C + ldr r1, [r7] + mov r0, #0 + str r1, [sl] + str r0, [r7] + add sp, sp, #0x28 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022FAB5C: + addeq sp, sp, #0x28 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r7] + cmp r0, #0 + ble _022FAD04 + add r4, r1, #0xa2 +_022FAB78: + mov r0, #0 + strh r0, [sp] + ldr r0, [r7] + sub r0, r0, r5 + cmp r0, #5 + blo _022FAD04 + add r1, r8, r5 + ldrb r3, [r1, #3] + ldrb r2, [r1, #4] + add r0, sp, #0 + strb r2, [r0, #1] + strb r3, [r0] + ldrh r3, [sp] + asr r0, r3, #8 + and r2, r0, #0xff + lsl r0, r3, #8 + and r0, r0, #0xff00 + orr r0, r2, r0 + strh r0, [sp] + ldrh r3, [sp] + ldr r0, [r7] + add r2, r5, r3 + add r2, r2, #5 + cmp r0, r2 + blt _022FAD04 + ldr r0, [sb, #0x19c] + cmp r0, #0 + beq _022FAC14 + ldr r2, [sl] + sub r2, r2, r6 + cmp r2, r3 + bge _022FAC14 + str r5, [r7] + cmp r6, #0 + movgt r0, #1 + add sp, sp, #0x28 + str r6, [sl] + movle r0, #2 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022FAC14: + ldrb r1, [r1] + sub r1, r1, #0x14 + cmp r1, #3 + addls pc, pc, r1, lsl #2 + b _022FACE4 +_022FAC28: @ jump table + b _022FACCC @ case 0 + b _022FACDC @ case 1 + b _022FAC38 @ case 2 + b _022FAC88 @ case 3 +_022FAC38: + cmp r0, #0 + add r5, r5, #5 + beq _022FAC54 + add r1, r8, r5 + add r0, r4, #0x400 + mov r2, r1 + bl ov00_022F766C +_022FAC54: + ldrh r3, [sp] + mov r0, sb + add r1, sp, #4 + add r2, r8, r5 + bl ov00_022F8E0C + mov r0, sb + mov r1, fp + add r2, sp, #4 + bl ov00_022FAD2C + cmp r0, #1 + beq _022FACF0 + add sp, sp, #0x28 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022FAC88: + cmp r0, #0 + add r5, r5, #5 + beq _022FACA4 + add r1, r8, r5 + add r0, r4, #0x400 + mov r2, r1 + bl ov00_022F766C +_022FACA4: + ldrh r2, [sp] + ldr r0, [sp, #0x50] + add r1, r8, r5 + add r0, r0, r6 + sub r2, r2, #0x10 + bl FUN_0208729C + ldrh r0, [sp] + sub r0, r0, #0x10 + add r6, r6, r0 + b _022FACF0 +_022FACCC: + mov r0, #1 + str r0, [sb, #0x19c] + add r5, r5, #5 + b _022FACF0 +_022FACDC: + add r5, r5, #5 + b _022FACF0 +_022FACE4: + add sp, sp, #0x28 + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022FACF0: + ldrh r1, [sp] + ldr r0, [r7] + add r5, r5, r1 + cmp r5, r0 + blt _022FAB78 +_022FAD04: + str r5, [r7] + str r6, [sl] + ldr r0, [r7] + cmp r0, #0 + movlt r0, #3 + movge r0, #1 + add sp, sp, #0x28 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022FAAF8 + + arm_func_start ov00_022FAD24 +ov00_022FAD24: @ 0x022FAD24 + mov r0, #1 + bx lr + arm_func_end ov00_022FAD24 + + arm_func_start ov00_022FAD2C +ov00_022FAD2C: @ 0x022FAD2C + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x50 + mov r4, r2 + ldr r2, [r4, #0x10] + ldr r3, [r4, #0xc] + mov r5, r0 + mov r0, r2 + str r2, [sp] + cmp r0, r3 + ldr r7, [r1] + bge _022FBCF8 +_022FAD58: + mov r3, #0 + add r1, sp, #5 + mov r0, r4 + mov r2, #1 + strb r3, [sp, #5] + bl ov00_022F9398 + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrsb r0, [sp, #5] + cmp r0, #2 + bne _022FAF0C + mov r0, #0 + str r0, [sp, #0x28] + str r0, [sp, #0x24] + strb r0, [sp, #4] + ldr r0, [r7] + cmp r0, #0 + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r1, sp, #0x28 + mov r0, r4 + mov r2, #3 + bl ov00_022FA00C + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r4, #0xc] + ldr r0, [r4, #0x10] + ldr r2, [sp, #0x28] + sub r1, r1, r0 + cmp r2, r1 + addgt sp, sp, #0x50 + movgt r0, #3 + popgt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r1, r7, #0x264 + add r3, r0, #2 + mov r0, r4 + add r1, r1, #0x400 + mov r2, #0x20 + str r3, [r4, #0x10] + bl ov00_022F9398 + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r1, sp, #4 + mov r0, r4 + mov r2, #1 + bl ov00_022F9398 + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrsb r2, [sp, #4] + mov r0, r4 + add r1, r7, #4 + bl ov00_022F9398 + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrsb r3, [sp, #4] + add r1, sp, #0x24 + mov r0, r4 + mov r2, #2 + str r3, [r7] + bl ov00_022FA00C + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r6, [sp, #0x24] + add r3, r7, #0x100 + add r1, sp, #4 + mov r0, r4 + mov r2, #1 + strh r6, [r3, #4] + bl ov00_022F9398 + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrsb r0, [sp, #4] + cmp r0, #0 + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r4, #0x10] + ldr r0, [sp] + ldr r3, [r4, #4] + sub r6, r1, r0 + ldr r1, [sp] + add r0, r7, #0x1a4 + mov r2, r6 + add r0, r0, #0x400 + add r1, r3, r1 + bl ov00_0208013C + add r0, r7, #0x1fc + ldr r3, [r4, #4] + ldr r1, [sp] + mov r2, r6 + add r0, r0, #0x400 + add r1, r3, r1 + bl ov00_022F780C + b _022FBCE4 +_022FAF0C: + cmp r0, #0xb + bne _022FB6A0 + mov r8, #0 + add r1, sp, #0x20 + mov r0, r4 + mov r2, #3 + str r8, [sp, #0x20] + str r8, [sp, #0x1c] + bl ov00_022FA00C + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r1, sp, #0x1c + mov r0, r4 + mov r2, #3 + bl ov00_022FA00C + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r2, [sp, #0x1c] + ldr r1, [sp, #0x20] + add r0, r2, #3 + cmp r1, r0 + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r4, #0x10] + ldr r0, [r4, #0xc] + add sb, r1, r2 + sub r0, r0, r1 + cmp r2, r0 + addgt sp, sp, #0x50 + movgt r0, #3 + popgt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r1, sb + bge _022FB630 + add r6, sp, #0x14 +_022FAFA8: + mov r0, #0 + str r0, [sp, #0x18] + mov r0, r4 + add r1, sp, #0x18 + mov r2, #3 + bl ov00_022FA00C + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr fp, [r4, #0x10] + ldr r0, [r4, #0xc] + ldr r1, [sp, #0x18] + sub r0, r0, fp + cmp r1, r0 + addgt sp, sp, #0x50 + movgt r0, #3 + popgt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, _022FBD10 @ =0x0000FFFF + cmp r1, r0 + addgt sp, sp, #0x50 + movgt r0, #3 + popgt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r8, r8, #1 + cmp r8, #1 + bne _022FB61C + mov r0, #0 + str r0, [sp, #0x14] + mov r0, r4 + mov r1, r6 + bl ov00_022FA074 + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, r4 + mov r1, r6 + bl ov00_022FA074 + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r4, #0x10] + ldr r0, [r4, #0xc] + sub r0, r0, r1 + cmp r0, #5 + addlt sp, sp, #0x50 + movlt r0, #3 + poplt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, r1 + add r0, r0, #1 + str r0, [r4, #0x10] + ldr r0, [r4, #4] + ldrb r0, [r0, r1] + cmp r0, #0xa0 + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r4, #0x10] + mov r0, r1 + add r0, r0, #1 + str r0, [r4, #0x10] + ldr r0, [r4, #4] + ldrb r0, [r0, r1] + cmp r0, #3 + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r4, #0x10] + mov r0, r1 + add r0, r0, #1 + str r0, [r4, #0x10] + ldr r0, [r4, #4] + ldrb r0, [r0, r1] + cmp r0, #2 + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r4, #0x10] + mov r0, r1 + add r0, r0, #1 + str r0, [r4, #0x10] + ldr r0, [r4, #4] + ldrb r0, [r0, r1] + cmp r0, #1 + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r4, #0x10] + add r1, r0, #1 + add r0, r1, #1 + str r0, [r4, #0x10] + ldr r0, [r4, #4] + ldrb r0, [r0, r1] + cmp r0, #2 + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r2, [r4, #0x10] + mov r0, r2 + add r1, r0, #1 + str r1, [r4, #0x10] + ldr r0, [r4, #4] + ldrb sl, [r0, r2] + add r0, r1, sl + cmp r0, sb + addgt sp, sp, #0x50 + movgt r0, #3 + popgt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r4, #0x10] + mov r0, r4 + add r1, r1, sl + str r1, [r4, #0x10] + mov r1, r6 + bl ov00_022FA074 + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r2, [r4, #0x10] + ldr r1, [sp, #0x14] + mov r0, r4 + add r1, r2, r1 + str r1, [r4, #0x10] + mov r1, r6 + bl ov00_022FA074 + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r2, [r4, #0x10] + ldr r1, [sp, #0x14] + mov r0, r4 + add r1, r2, r1 + str r1, [r4, #0x10] + mov r1, r6 + bl ov00_022FA074 + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r2, [r4, #0x10] + ldr r1, [sp, #0x14] + mov r0, r4 + add r1, r2, r1 + str r1, [r4, #0x10] + mov r1, r6 + bl ov00_022FA074 + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r2, [r4, #0x10] + ldr r1, [sp, #0x14] + mov r0, r4 + add r1, r2, r1 + str r1, [r4, #0x10] + mov r1, r6 + bl ov00_022FA074 + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, r4 + mov r1, r6 + bl ov00_022FA074 + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [sp, #0x14] + cmp r0, #0xd + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r4, #0x10] + mov r0, r1 + add r0, r0, #1 + str r0, [r4, #0x10] + ldr r0, [r4, #4] + ldrb r0, [r0, r1] + cmp r0, #6 + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r4, #0x10] + mov r0, r1 + add r0, r0, #1 + str r0, [r4, #0x10] + ldr r2, [r4, #4] + ldrb r0, [r2, r1] + cmp r0, #9 + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r4, #0x10] + ldr r1, _022FBD14 @ =0x02318484 + add r0, r2, r0 + mov r2, #9 + bl FUN_02087348 + cmp r0, #0 + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r4, #0x10] + add r1, r0, #9 + add r0, r1, #1 + str r0, [r4, #0x10] + ldr r0, [r4, #4] + ldrb r0, [r0, r1] + cmp r0, #5 + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r4, #0x10] + mov r0, r1 + add r0, r0, #1 + str r0, [r4, #0x10] + ldr r0, [r4, #4] + ldrb r0, [r0, r1] + cmp r0, #0 + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r4, #0x10] + sub r0, sb, r1 + cmp r0, #2 + addlt sp, sp, #0x50 + movlt r0, #3 + poplt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, r1 + add r0, r0, #1 + str r0, [r4, #0x10] + ldr r0, [r4, #4] + ldrb r0, [r0, r1] + cmp r0, #3 + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r4, #0x10] + mov r0, r1 + add r0, r0, #1 + str r0, [r4, #0x10] + ldr r0, [r4, #4] + ldrb r0, [r0, r1] + cmp r0, #0x81 + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r4, #0x10] + sub r0, sb, r0 + cmp sl, r0 + addgt sp, sp, #0x50 + movgt r0, #3 + popgt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r4, #0x10] + add r1, r0, #1 + add r0, r1, #1 + str r0, [r4, #0x10] + ldr r0, [r4, #4] + ldrb r0, [r0, r1] + cmp r0, #0 + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, r4 + mov r1, r6 + bl ov00_022FA074 + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r2, [r4, #0x10] + mov r0, r2 + add r0, r0, #1 + str r0, [r4, #0x10] + ldr r1, [r4, #4] + ldrsb r0, [r1, r2] + cmp r0, #2 + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r4, #0x10] + ldrsb r1, [r1, r0] + and r1, r1, #0x80 + cmp r1, #0x80 + mov r1, r0 + add r1, r1, #1 + bne _022FB488 + str r1, [r4, #0x10] + ldr r1, [r4, #4] + ldrsb r0, [r1, r0] + and r0, r0, #0x7f + cmp r0, #4 + addgt sp, sp, #0x50 + movgt r0, #3 + popgt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r0, #0 + sub r0, r0, #1 + mov sl, #0 + ble _022FB494 +_022FB45C: + ldr r2, [r4, #0x10] + cmp r0, #0 + mov r1, r2 + add r1, r1, #1 + str r1, [r4, #0x10] + ldr r1, [r4, #4] + sub r0, r0, #1 + ldrb r1, [r1, r2] + orr sl, r1, sl, lsl #8 + bgt _022FB45C + b _022FB494 +_022FB488: + str r1, [r4, #0x10] + ldr r1, [r4, #4] + ldrb sl, [r1, r0] +_022FB494: + ldr r1, [r4, #0x10] + add r0, r1, sl + cmp r0, sb + addgt sp, sp, #0x50 + movgt r0, #3 + popgt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, r1 + add r0, r0, #1 + str r0, [r4, #0x10] + ldr r0, [r4, #4] + ldrsb r0, [r0, r1] + cmp r0, #0 + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + sub r2, sl, #1 + cmp r2, #0x800 + addhi sp, sp, #0x50 + movhi r0, #3 + pophi {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + lsr r0, r2, #2 + str r0, [r7, #0x108] + ldr r3, [r4, #4] + ldr r1, [r4, #0x10] + add r0, r7, #0x108 + add r1, r3, r1 + bl ov00_022F7540 + ldr r1, [r4, #0x10] + sub r0, sl, #1 + add r2, r1, r0 + add r0, r2, #1 + str r0, [r4, #0x10] + ldr r1, [r4, #4] + ldrsb r0, [r1, r2] + cmp r0, #2 + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r4, #0x10] + ldrsb r1, [r1, r0] + and r1, r1, #0x80 + cmp r1, #0x80 + mov r1, r0 + add r1, r1, #1 + bne _022FB5A4 + str r1, [r4, #0x10] + ldr r1, [r4, #4] + ldrsb r0, [r1, r0] + and r0, r0, #0x7f + cmp r0, #4 + addgt sp, sp, #0x50 + movgt r0, #3 + popgt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r0, #0 + sub r0, r0, #1 + mov sl, #0 + ble _022FB5B0 +_022FB578: + ldr r2, [r4, #0x10] + cmp r0, #0 + mov r1, r2 + add r1, r1, #1 + str r1, [r4, #0x10] + ldr r1, [r4, #4] + sub r0, r0, #1 + ldrb r1, [r1, r2] + orr sl, r1, sl, lsl #8 + bgt _022FB578 + b _022FB5B0 +_022FB5A4: + str r1, [r4, #0x10] + ldr r1, [r4, #4] + ldrb sl, [r1, r0] +_022FB5B0: + ldr r0, [r4, #0x10] + add r0, r0, sl + cmp r0, sb + addgt sp, sp, #0x50 + movgt r0, #3 + popgt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp sl, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp sl, #0x800 + addhi sp, sp, #0x50 + movhi r0, #3 + pophi {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + sub r0, sl, #1 + lsr r0, r0, #2 + add r0, r0, #1 + str r0, [r7, #0x20c] + add r0, r7, #0x20c + ldr r3, [r4, #4] + ldr r1, [r4, #0x10] + mov r2, sl + add r1, r3, r1 + bl ov00_022F7540 + ldr r0, [r4, #0x10] + add r0, r0, sl + str r0, [r4, #0x10] +_022FB61C: + ldr r0, [sp, #0x18] + add r1, fp, r0 + str r1, [r4, #0x10] + cmp r1, sb + blt _022FAFA8 +_022FB630: + cmp r1, sb + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, r7 + bl ov00_022FAD24 + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r4, #0x10] + ldr r0, [sp] + ldr r3, [r4, #4] + sub r6, r1, r0 + ldr r1, [sp] + add r0, r7, #0x1a4 + mov r2, r6 + add r0, r0, #0x400 + add r1, r3, r1 + bl ov00_0208013C + add r0, r7, #0x1fc + ldr r3, [r4, #4] + ldr r1, [sp] + mov r2, r6 + add r0, r0, #0x400 + add r1, r3, r1 + bl ov00_022F780C + b _022FBCE4 +_022FB6A0: + cmp r0, #0xe + bne _022FBCC8 + mov r3, #0 + add r1, sp, #8 + mov r0, r4 + mov r2, #3 + str r3, [sp, #8] + bl ov00_022FA00C + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [sp, #8] + cmp r0, #0 + addne sp, sp, #0x50 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r2, [r4, #4] + ldr r1, [sp] + ldr r3, [r4, #0x10] + add r1, r2, r1 + ldr r2, [sp] + add r0, r7, #0x1a4 + add r0, r0, #0x400 + sub r2, r3, r2 + bl ov00_0208013C + add r0, r7, #0x1fc + ldr r2, [r4, #4] + ldr r1, [sp] + ldr r3, [r4, #0x10] + add r1, r2, r1 + ldr r2, [sp] + add r0, r0, #0x400 + sub r2, r3, r2 + bl ov00_022F780C + ldr r0, [r7, #0x108] + lsl r0, r0, #2 + add r2, r0, #9 + str r2, [sp, #8] + ldr r1, [r5, #0x5c] + ldr r0, [r5, #0x60] + sub r0, r1, r0 + cmp r0, r2 + bge _022FB784 +_022FB750: + ldr r1, [r5, #0x68] + add r0, r5, #0x54 + bl ov00_022F8CE0 + cmp r0, #0 + addeq sp, sp, #0x50 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r2, [r5, #0x5c] + ldr r1, [r5, #0x60] + ldr r0, [sp, #8] + sub r1, r2, r1 + cmp r1, r0 + blt _022FB750 +_022FB784: + mov r0, #3 + strb r0, [r7, #0x6a4] + mov r0, #0 + strb r0, [r7, #0x6a5] + mov sb, #2 + mov r8, r0 + mov r6, #0x100 +_022FB7A0: + bl ov00_022F5594 + bl ov00_022F5664 + mov r0, r8 + mov r1, r6 + bl ov00_022F5680 + add r1, r7, sb + add sb, sb, #1 + strb r0, [r1, #0x6a4] + cmp sb, #0x30 + blt _022FB7A0 + ldr r1, [r5, #0x60] + ldr r2, [r5, #0x58] + add r0, r1, #9 + str r0, [r5, #0x60] + mov r0, #0x16 + strb r0, [r2, r1] + add r6, r2, r1 + mov r0, #3 + strb r0, [r6, #1] + mov r0, #0 + strb r0, [r6, #2] + ldr r1, [r7, #0x108] + add r0, r6, #3 + lsl r1, r1, #2 + add r1, r1, #4 + mov r2, #2 + bl ov00_022F9FB0 + mov r0, #0x10 + strb r0, [r6, #5] + ldr r1, [r7, #0x108] + add r0, r6, #6 + lsl r1, r1, #2 + mov r2, #3 + bl ov00_022F9FB0 + add r0, r7, #0x2a4 + add r1, r0, #0x400 + ldr r8, [r5, #0x58] + ldr r3, [r5, #0x60] + add r0, r7, #0x108 + mov r2, #0x30 + add r3, r8, r3 + bl ov00_022F5F3C + add r0, r7, #0x1a4 + ldr r2, [r5, #0x60] + ldr r1, [r7, #0x108] + add r0, r0, #0x400 + add r1, r2, r1, lsl #2 + str r1, [r5, #0x60] + ldr r2, [r7, #0x108] + add r1, r6, #5 + lsl r2, r2, #2 + add r2, r2, #4 + bl ov00_0208013C + ldr r2, [r7, #0x108] + add r0, r7, #0x1fc + lsl r2, r2, #2 + add r1, r6, #5 + add r0, r0, #0x400 + add r2, r2, #4 + bl ov00_022F780C + ldr r2, [r5, #0x58] + ldr r1, [r5, #0x60] + mov r0, #0x14 + strb r0, [r2, r1] + add r1, r2, r1 + mov r0, #3 + strb r0, [r1, #1] + mov r0, #0 + strb r0, [r1, #2] + strb r0, [r1, #3] + mov r2, #1 + strb r2, [r1, #4] + ldr r0, [r5, #0x60] + add r1, r0, #5 + add r0, r1, #1 + str r0, [r5, #0x60] + ldr r0, [r5, #0x58] + strb r2, [r0, r1] + mov r0, r7 + bl ov00_022FA168 + ldr r2, [r5, #0x58] + ldr r1, [r5, #0x60] + mov r0, #0x16 + strb r0, [r2, r1] + add r6, r2, r1 + mov r2, #3 + strb r2, [r6, #1] + mov r0, #0 + strb r0, [r6, #2] + strb r0, [r6, #3] + mov r0, #0x38 + strb r0, [r6, #4] + ldr r0, [r5, #0x60] + mov r3, #0x14 + add r8, r0, #5 + add r0, r8, #1 + str r0, [r5, #0x60] + ldr r0, [r5, #0x58] + mov r1, #0x24 + strb r3, [r0, r8] + ldr r3, [r5, #0x58] + ldr r0, [r5, #0x60] + add r0, r3, r0 + bl ov00_022F9FB0 + ldr r1, [r5, #0x60] + add r0, r7, #0x1a4 + add r3, r1, #3 + ldr r1, _022FBD18 @ =0x0231A890 + add r0, r0, #0x400 + mov r2, #4 + str r3, [r5, #0x60] + bl ov00_0208013C + add r0, r7, #0x1a4 + add r1, r7, #0x2d4 + add r0, r0, #0x400 + add r1, r1, #0x400 + mov r2, #0x30 + bl ov00_0208013C + add r0, r7, #0x1a4 + ldr r1, _022FBD1C @ =0x0231A824 + add r0, r0, #0x400 + mov r2, #0x30 + bl ov00_0208013C + add r1, r7, #0x1a4 + add r0, sp, #0x40 + add r1, r1, #0x400 + bl ov00_02080204 + add r0, r7, #0x1fc + ldr r1, _022FBD18 @ =0x0231A890 + add r0, r0, #0x400 + mov r2, #4 + bl ov00_022F780C + add r0, r7, #0x1fc + add r1, r7, #0x2d4 + add r0, r0, #0x400 + add r1, r1, #0x400 + mov r2, #0x30 + bl ov00_022F780C + add r0, r7, #0x1fc + ldr r1, _022FBD1C @ =0x0231A824 + add r0, r0, #0x400 + mov r2, #0x28 + bl ov00_022F780C + add r0, r7, #0x1fc + add r0, r0, #0x400 + add r1, sp, #0x2c + bl ov00_022F7774 + add r0, r7, #0x1a4 + add r0, r0, #0x400 + bl ov00_020800FC + add r0, r7, #0x1a4 + add r1, r7, #0x2d4 + add r0, r0, #0x400 + add r1, r1, #0x400 + mov r2, #0x30 + bl ov00_0208013C + add r0, r7, #0x1a4 + ldr r1, _022FBD20 @ =0x0231A85C + add r0, r0, #0x400 + mov r2, #0x30 + bl ov00_0208013C + add r0, r7, #0x1a4 + add r0, r0, #0x400 + add r1, sp, #0x40 + mov r2, #0x10 + bl ov00_0208013C + add r1, r7, #0x1a4 + add r0, sp, #0x40 + add r1, r1, #0x400 + bl ov00_02080204 + add r0, r7, #0x1fc + add r0, r0, #0x400 + bl ov00_022F770C + add r0, r7, #0x1fc + add r1, r7, #0x2d4 + add r0, r0, #0x400 + add r1, r1, #0x400 + mov r2, #0x30 + bl ov00_022F780C + add r0, r7, #0x1fc + ldr r1, _022FBD20 @ =0x0231A85C + add r0, r0, #0x400 + mov r2, #0x28 + bl ov00_022F780C + add r0, r7, #0x1fc + add r0, r0, #0x400 + add r1, sp, #0x2c + mov r2, #0x14 + bl ov00_022F780C + add r0, r7, #0x1fc + add r0, r0, #0x400 + add r1, sp, #0x2c + bl ov00_022F7774 + ldr r1, [r5, #0x58] + ldr r0, [r5, #0x60] + add r3, sp, #0x40 + add r8, r1, r0 + mov r2, #8 +_022FBAB8: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + strb r1, [r8] + strb r0, [r8, #1] + add r8, r8, #2 + bne _022FBAB8 + ldr r0, [r5, #0x60] + add r3, sp, #0x2c + add r1, r0, #0x10 + str r1, [r5, #0x60] + ldr r0, [r5, #0x58] + mov r2, #0xa + arm_func_end ov00_022FAD2C + + arm_func_start ov00_022FBAF0 +ov00_022FBAF0: @ 0x022FBAF0 + add r8, r0, r1 +_022FBAF4: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + strb r1, [r8] + strb r0, [r8, #1] + add r8, r8, #2 + bne _022FBAF4 + ldr r1, [r5, #0x60] + add r0, r7, #0x1a4 + add r1, r1, #0x14 + add r0, r0, #0x400 + str r1, [r5, #0x60] + bl ov00_020800FC + add r0, r7, #0x1a4 + add r0, r0, #0x400 + add r1, r7, #0x320 + mov r2, #0x10 + bl ov00_0208013C + add r0, r7, #0x1a4 + ldr r1, _022FBD1C @ =0x0231A824 + add r0, r0, #0x400 + mov r2, #0x30 + bl ov00_0208013C + add r0, r7, #0x1a4 + add r0, r0, #0x400 + add r1, r7, #0x310 + mov r2, #8 + bl ov00_0208013C + mov r0, #0x16 + strb r0, [sp, #0xc] + mov r0, #0 + strb r0, [sp, #0xd] + strb r0, [sp, #0x10] + strb r0, [sp, #0x11] + mov r0, #0x28 + strb r0, [sp, #0xe] + mov r0, #0x14 + strb r0, [sp, #0xf] + mov r0, #0x24 + strb r0, [sp, #0x12] + add r0, r7, #0x1a4 + add r0, r0, #0x400 + add r1, sp, #0xc + mov r2, #7 + bl ov00_0208013C + add r0, r7, #0x1a4 + add r0, r0, #0x400 + add r1, sp, #0x40 + mov r2, #0x10 + bl ov00_0208013C + add r0, r7, #0x1a4 + add r0, r0, #0x400 + add r1, sp, #0x2c + mov r2, #0x14 + bl ov00_0208013C + add r1, r7, #0x1a4 + add r0, sp, #0x40 + add r1, r1, #0x400 + bl ov00_02080204 + add r0, r7, #0x1a4 + add r0, r0, #0x400 + bl ov00_020800FC + add r0, r7, #0x1a4 + add r0, r0, #0x400 + add r1, r7, #0x320 + mov r2, #0x10 + bl ov00_0208013C + add r0, r7, #0x1a4 + ldr r1, _022FBD20 @ =0x0231A85C + add r0, r0, #0x400 + mov r2, #0x30 + bl ov00_0208013C + add r0, r7, #0x1a4 + add r0, r0, #0x400 + add r1, sp, #0x40 + mov r2, #0x10 + bl ov00_0208013C + add r1, r7, #0x1a4 + add r0, sp, #0x40 + add r1, r1, #0x400 + bl ov00_02080204 + ldr r1, [r5, #0x58] + ldr r0, [r5, #0x60] + add r3, sp, #0x40 + add r8, r1, r0 + mov r2, #8 +_022FBC50: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + strb r1, [r8] + strb r0, [r8, #1] + add r8, r8, #2 + bne _022FBC50 + ldr r0, [r5, #0x60] + mov r3, #0 + add r0, r0, #0x10 + str r0, [r5, #0x60] + strb r3, [r7, #0x310] + strb r3, [r7, #0x311] + strb r3, [r7, #0x312] + strb r3, [r7, #0x313] + strb r3, [r7, #0x314] + strb r3, [r7, #0x315] + strb r3, [r7, #0x316] + add r0, r7, #0x314 + mov r1, #1 + mov r2, #4 + strb r3, [r7, #0x317] + bl ov00_022F9FB0 + add r1, r6, #5 + add r0, r7, #0x3a0 + mov r2, r1 + mov r3, #0x38 + bl ov00_022F766C + b _022FBCE4 +_022FBCC8: + cmp r0, #0x14 + ldreq r0, [r4, #0xc] + streq r0, [r4, #0x10] + beq _022FBCE4 + add sp, sp, #0x50 + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022FBCE4: + ldr r0, [r4, #0x10] + ldr r3, [r4, #0xc] + str r0, [sp] + cmp r0, r3 + blt _022FAD58 +_022FBCF8: + ldr r0, [sp] + cmp r0, r3 + moveq r0, #1 + movne r0, #3 + add sp, sp, #0x50 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022FBD10: .4byte 0x0000FFFF +_022FBD14: .4byte 0x02318484 +_022FBD18: .4byte 0x0231A890 +_022FBD1C: .4byte 0x0231A824 +_022FBD20: .4byte 0x0231A85C + arm_func_end ov00_022FBAF0 + + arm_func_start ov00_022FBD24 +ov00_022FBD24: @ 0x022FBD24 + push {r3, lr} + ldr lr, [r0, #0x114] + ldr r3, _022FBDDC @ =0x51EB851F + lsr r1, lr, #0x1f + smull r2, ip, r3, lr + add ip, r1, ip, asr #5 + cmp ip, #5 + addls pc, pc, ip, lsl #2 + pop {r3, pc} +_022FBD48: @ jump table + pop {r3, pc} @ case 0 + b _022FBD60 @ case 1 + b _022FBD60 @ case 2 + b _022FBD60 @ case 3 + b _022FBD64 @ case 4 + b _022FBDD0 @ case 5 +_022FBD60: + pop {r3, pc} +_022FBD64: + sub r1, lr, #0x91 + sub r1, r1, #0x100 + cmp r1, #9 + addls pc, pc, r1, lsl #2 + b _022FBDC4 +_022FBD78: @ jump table + b _022FBDA0 @ case 0 + b _022FBDC4 @ case 1 + b _022FBDAC @ case 2 + b _022FBDB8 @ case 3 + b _022FBDC4 @ case 4 + b _022FBDC4 @ case 5 + b _022FBDC4 @ case 6 + b _022FBDC4 @ case 7 + b _022FBDC4 @ case 8 + b _022FBDB8 @ case 9 +_022FBDA0: + mov r1, #9 + str r1, [r0, #0x3c] + pop {r3, pc} +_022FBDAC: + mov r1, #0xa + str r1, [r0, #0x3c] + pop {r3, pc} +_022FBDB8: + mov r1, #0xb + str r1, [r0, #0x3c] + pop {r3, pc} +_022FBDC4: + mov r1, #8 + str r1, [r0, #0x3c] + pop {r3, pc} +_022FBDD0: + mov r1, #0xc + str r1, [r0, #0x3c] + pop {r3, pc} + .align 2, 0 +_022FBDDC: .4byte 0x51EB851F + arm_func_end ov00_022FBD24 + + arm_func_start ov00_022FBDE0 +ov00_022FBDE0: @ 0x022FBDE0 + push {r3, r4, r5, lr} + mov r4, r0 + ldr r1, [r4, #0x150] + cmp r1, #0 + movne r0, #0 + popne {r3, r4, r5, pc} + mov r1, #1 + str r1, [r4, #0x150] + ldr r1, [r4, #0x10] + cmp r1, #0 + bne _022FBE10 + bl ov00_022FD924 +_022FBE10: + ldr r0, [r4, #0x10] + cmp r0, #1 + bne _022FBE24 + mov r0, r4 + bl ov00_022FD9BC +_022FBE24: + ldr r0, [r4, #0x10] + cmp r0, #2 + bne _022FBE38 + mov r0, r4 + bl ov00_022FDA98 +_022FBE38: + ldr r0, [r4, #0x10] + cmp r0, #3 + bne _022FBE4C + mov r0, r4 + bl ov00_022FDB14 +_022FBE4C: + ldr r0, [r4, #0x10] + cmp r0, #4 + bne _022FBE60 + mov r0, r4 + bl ov00_022FDD7C +_022FBE60: + ldr r0, [r4, #0x10] + cmp r0, #5 + bne _022FBE74 + mov r0, r4 + bl ov00_022FDEE8 +_022FBE74: + ldr r0, [r4, #0x10] + cmp r0, #6 + bne _022FBE88 + mov r0, r4 + bl ov00_022FE1C0 +_022FBE88: + ldr r0, [r4, #0x10] + cmp r0, #7 + bne _022FBE9C + mov r0, r4 + bl ov00_022FE2A0 +_022FBE9C: + ldr r0, [r4, #0x10] + cmp r0, #8 + bne _022FBEB0 + mov r0, r4 + bl ov00_022FE44C +_022FBEB0: + ldr r0, [r4, #0x10] + cmp r0, #9 + bne _022FBEC4 + mov r0, r4 + bl ov00_022FE8B8 +_022FBEC4: + ldr r0, [r4, #0x10] + cmp r0, #0xa + bne _022FBED8 + mov r0, r4 + bl ov00_022FEDD8 +_022FBED8: + ldr r0, [r4, #0x12c] + cmp r0, #0 + beq _022FBEEC + mov r0, r4 + bl ov00_022F9D48 +_022FBEEC: + ldr r0, [r4, #0x3c] + ldr r5, [r4, #0x120] + cmp r0, #0x12 + cmpeq r5, #0 + bne _022FBF14 + ldr r0, [r4, #0x4c] + bl ov00_022F5320 + cmp r0, #0 + moveq r0, #1 + streq r0, [r4, #0x120] +_022FBF14: + ldr r0, [r4, #0x120] + cmp r0, #0 + moveq r0, #0 + streq r0, [r4, #0x150] + beq _022FBF40 + mov r0, r4 + bl ov00_022FBD24 + mov r0, r4 + bl ov00_022F93E4 + mov r0, r4 + bl ov00_022F9B40 +_022FBF40: + mov r0, r5 + pop {r3, r4, r5, pc} + arm_func_end ov00_022FBDE0 + + arm_func_start ov00_022FBF48 +ov00_022FBF48: @ 0x022FBF48 + push {r3, lr} + bl ov00_022F94E4 + ldr r0, _022FBF90 @ =0x023289C0 + ldr r1, [r0] + add r1, r1, #1 + str r1, [r0] + cmp r1, #1 + bne _022FBF88 + bl ov00_022F94DC + ldr r0, _022FBF94 @ =0x0231A7F0 + mov r2, #0xfa + ldr r1, _022FBF98 @ =0x0231A7F4 + mov r3, #0x7d + str r2, [r0] + str r3, [r1] + pop {r3, pc} +_022FBF88: + bl ov00_022F94E8 + pop {r3, pc} + .align 2, 0 +_022FBF90: .4byte 0x023289C0 +_022FBF94: .4byte 0x0231A7F0 +_022FBF98: .4byte 0x0231A7F4 + arm_func_end ov00_022FBF48 + + arm_func_start ov00_022FBF9C +ov00_022FBF9C: @ 0x022FBF9C + push {r3, lr} + bl ov00_022F94E4 + ldr r0, _022FBFF0 @ =0x023289C0 + ldr r1, [r0] + subs r1, r1, #1 + str r1, [r0] + bne _022FBFE8 + bl ov00_022F9E70 + ldr r0, _022FBFF4 @ =0x023289AC + ldr r0, [r0] + cmp r0, #0 + beq _022FBFDC + bl ov00_022F5B14 + ldr r0, _022FBFF4 @ =0x023289AC + mov r1, #0 + str r1, [r0] +_022FBFDC: + bl ov00_022F94E8 + bl ov00_022F94E0 + pop {r3, pc} +_022FBFE8: + bl ov00_022F94E8 + pop {r3, pc} + .align 2, 0 +_022FBFF0: .4byte 0x023289C0 +_022FBFF4: .4byte 0x023289AC + arm_func_end ov00_022FBF9C + + arm_func_start ov00_022FBFF8 +ov00_022FBFF8: @ 0x022FBFF8 + push {r4, r5, r6, r7, r8, lr} + movs r8, r0 + ldrsbne r0, [r8] + mov r7, r1 + mov r6, r2 + cmpne r0, #0 + mov r5, r3 + mvneq r0, #0 + popeq {r4, r5, r6, r7, r8, pc} + cmp r5, #0 + mvnlt r0, #0 + poplt {r4, r5, r6, r7, r8, pc} + cmp r6, #0 + beq _022FC03C + cmp r5, #0 + mvneq r0, #0 + popeq {r4, r5, r6, r7, r8, pc} +_022FC03C: + ldr r0, _022FC1C0 @ =0x023289C0 + ldr r0, [r0] + cmp r0, #0 + bne _022FC050 + bl ov00_022FBF48 +_022FC050: + bl ov00_022F998C + movs r4, r0 + mvneq r0, #0 + popeq {r4, r5, r6, r7, r8, pc} + mov r1, #0 + mov r0, r8 + str r1, [r4, #0xc] + bl ov00_022F5514 + str r0, [r4, #0x14] + cmp r0, #0 + bne _022FC08C + mov r0, r4 + bl ov00_022F9B40 + mvn r0, #0 + pop {r4, r5, r6, r7, r8, pc} +_022FC08C: + cmp r7, #0 + ldrsbne r0, [r7] + cmpne r0, #0 + beq _022FC0C0 + mov r0, r7 + bl ov00_022F5514 + str r0, [r4, #0x2c] + cmp r0, #0 + bne _022FC0C0 + mov r0, r4 + bl ov00_022F9B40 + mvn r0, #0 + pop {r4, r5, r6, r7, r8, pc} +_022FC0C0: + ldr r1, [sp, #0x18] + ldr r0, [sp, #0x20] + str r1, [r4, #0x160] + str r0, [r4, #0x34] + ldr r1, [sp, #0x24] + ldr r0, [sp, #0x28] + str r1, [r4, #0x40] + str r0, [r4, #0x44] + ldr r1, [sp, #0x2c] + ldr r0, [sp, #0x1c] + str r1, [r4, #0x48] + str r0, [r4, #0x158] + cmp r6, #0 + movne r0, #1 + moveq r0, #0 + str r0, [r4, #0x108] + cmp r0, #0 + beq _022FC120 + mov r0, r4 + mov r2, r6 + mov r3, r5 + add r1, r4, #0xe4 + bl ov00_022F8DAC + b _022FC134 +_022FC120: + mov r2, #0x800 + mov r0, r4 + mov r3, r2 + add r1, r4, #0xe4 + bl ov00_022F8D20 +_022FC134: + cmp r0, #0 + bne _022FC14C + mov r0, r4 + bl ov00_022F9B40 + mvn r0, #0 + pop {r4, r5, r6, r7, r8, pc} +_022FC14C: + ldr r0, [sp, #0x18] + cmp r0, #0 + beq _022FC178 + mov r0, r4 + bl ov00_022FC718 + cmp r0, #0 + bne _022FC178 + mov r0, r4 + bl ov00_022F9B40 + mvn r0, #0 + pop {r4, r5, r6, r7, r8, pc} +_022FC178: + ldr r0, [sp, #0x20] + cmp r0, #0 + beq _022FC1B8 + mov r0, r4 + bl ov00_022FBDE0 + cmp r0, #0 + bne _022FC1B0 + mov r5, #0xa +_022FC198: + mov r0, r5 + bl ov00_02079B14 + mov r0, r4 + bl ov00_022FBDE0 + cmp r0, #0 + beq _022FC198 +_022FC1B0: + mov r0, #0 + pop {r4, r5, r6, r7, r8, pc} +_022FC1B8: + ldr r0, [r4, #4] + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_022FC1C0: .4byte 0x023289C0 + arm_func_end ov00_022FBFF8 + + arm_func_start ov00_022FC1C4 +ov00_022FC1C4: @ 0x022FC1C4 + ldr ip, _022FC1D0 @ =ov00_022F9CE4 + ldr r0, _022FC1D4 @ =ov00_022FBDE0 + bx ip + .align 2, 0 +_022FC1D0: .4byte ov00_022F9CE4 +_022FC1D4: .4byte ov00_022FBDE0 + arm_func_end ov00_022FC1C4 + + arm_func_start ov00_022FC1D8 +ov00_022FC1D8: @ 0x022FC1D8 + push {r3, lr} + bl ov00_022F9C90 + cmp r0, #0 + popeq {r3, pc} + bl ov00_022F9B40 + pop {r3, pc} + arm_func_end ov00_022FC1D8 + + arm_func_start ov00_022FC1F0 +ov00_022FC1F0: @ 0x022FC1F0 + ldr r0, [r0, #0x18] + bx lr + arm_func_end ov00_022FC1F0 + + arm_func_start ov00_022FC1F8 +ov00_022FC1F8: @ 0x022FC1F8 + push {r4, lr} + mov r4, r0 + ldr r0, [r4] + bl ov00_022F4758 + mov r0, r4 + bl ov00_022F5B14 + pop {r4, pc} + arm_func_end ov00_022FC1F8 + + arm_func_start ov00_022FC214 +ov00_022FC214: @ 0x022FC214 + ldr r1, [r0, #0x160] + cmp r1, #0 + ldreq r0, _022FC258 @ =0x0231A8DC + bxeq lr + ldr r0, [r1, #0x14] + cmp r0, #0 + ldrne r0, _022FC25C @ =0x0231A8E0 + bxne lr + ldr r0, [r1, #0xc] + cmp r0, #0 + ldrne r0, _022FC260 @ =0x0231A8F4 + bxne lr + ldr r0, [r1, #0x10] + cmp r0, #0 + ldrne r0, _022FC264 @ =0x0231A938 + ldreq r0, _022FC268 @ =0x0231A944 + bx lr + .align 2, 0 +_022FC258: .4byte 0x0231A8DC +_022FC25C: .4byte 0x0231A8E0 +_022FC260: .4byte 0x0231A8F4 +_022FC264: .4byte 0x0231A938 +_022FC268: .4byte 0x0231A944 + arm_func_end ov00_022FC214 + + arm_func_start ov00_022FC26C +ov00_022FC26C: @ 0x022FC26C + push {r4, r5, r6, r7, r8, lr} + ldr r5, [r0, #0x160] + mov r8, #0 + ldr r0, [r5] + bl ov00_022F47A0 + movs r7, r0 + moveq r0, r8 + popeq {r4, r5, r6, r7, r8, pc} + cmp r7, #0 + mov r6, r8 + ble _022FC2F8 +_022FC298: + ldr r0, [r5] + mov r1, r6 + bl ov00_022F47A8 + mov r4, r0 + ldr r0, [r4] + cmp r0, #0 + bne _022FC2D8 + ldr r0, [r4, #4] + bl FUN_02089678 + ldr r1, [r4, #0xc] + add r2, r8, r0 + ldr r0, [r4, #0x14] + add r1, r2, r1 + add r0, r1, r0, lsl #1 + add r8, r0, #1 + b _022FC2EC +_022FC2D8: + cmp r0, #3 + bne _022FC2EC + ldr r0, [r4, #8] + bl ov00_022F8CD8 + add r8, r8, r0 +_022FC2EC: + add r6, r6, #1 + cmp r6, r7 + blt _022FC298 +_022FC2F8: + sub r0, r7, #1 + add r0, r8, r0 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022FC26C + + arm_func_start ov00_022FC304 +ov00_022FC304: @ 0x022FC304 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0xc + ldr r1, _022FC60C @ =0x023289C4 + str r0, [sp] + ldr r2, [r1, #0x10] + ldr r5, [r0, #0x160] + cmp r2, #0 + mov r8, #0 + bne _022FC37C + ldr r0, [r5, #0x14] + cmp r0, #0 + beq _022FC34C + mov r0, #0xc + str r0, [r1, #0x10] + str r0, [r1, #0xc] + str r0, [r1, #8] + stm r1, {r0, r8} + b _022FC37C +_022FC34C: + ldr r0, _022FC610 @ =0x0231A968 + bl FUN_02089678 + ldr r1, _022FC60C @ =0x023289C4 + add r2, r0, #0x2f + str r0, [r1, #0x10] + str r2, [r1, #0xc] + add r2, r0, #0x4c + str r2, [r1, #8] + mov r2, r8 + str r2, [r1] + add r0, r0, #4 + str r0, [r1, #4] +_022FC37C: + ldr r0, [r5] + bl ov00_022F47A0 + str r0, [sp, #8] + cmp r0, #0 + mov r7, #0 + ble _022FC5F8 + ldr r4, _022FC60C @ =0x023289C4 +_022FC398: + ldr r0, [r5] + mov r1, r7 + bl ov00_022F47A8 + mov r6, r0 + ldr r0, [r6] + cmp r0, #0 + bne _022FC3D4 + ldr r1, [r4, #0xc] + ldr r0, [r6, #4] + add r8, r8, r1 + bl FUN_02089678 + ldr r1, [r6, #0xc] + add r0, r8, r0 + add r8, r0, r1 + b _022FC5E8 +_022FC3D4: + cmp r0, #1 + bne _022FC490 + ldr r1, [r4, #8] + ldr r0, [r6, #4] + add r8, r8, r1 + bl FUN_02089678 + add r8, r8, r0 + ldr r0, [r6, #0x10] + bl FUN_02089678 + add r8, r8, r0 + ldr r0, [sp] + mov r1, r7 + ldr r0, [r0, #0x164] + bl ov00_022F47A8 + ldr sb, [r0, #0xc] + ldr sl, [r5, #0x14] + add r8, r8, sb + cmp sl, #0 + bne _022FC42C + ldr r0, [r6, #0xc] + bl FUN_02089678 + add r8, r8, r0 +_022FC42C: + cmp sl, #0 + beq _022FC5E8 + ldr r0, [r6, #4] + bl FUN_02089678 + lsr r1, r0, #0x1f + rsb r0, r1, r0, lsl #30 + add r0, r1, r0, ror #30 + rsb r0, r0, #4 + cmp r0, #4 + addne r8, r8, r0 + ldr r0, [r6, #0x10] + bl FUN_02089678 + lsr r1, r0, #0x1f + rsb r0, r1, r0, lsl #30 + add r0, r1, r0, ror #30 + rsb r0, r0, #4 + cmp r0, #4 + lsr r1, sb, #0x1f + addne r8, r8, r0 + rsb r0, r1, sb, lsl #30 + add r0, r1, r0, ror #30 + rsb r0, r0, #4 + cmp r0, #4 + addne r8, r8, r0 + b _022FC5E8 +_022FC490: + cmp r0, #2 + bne _022FC544 + ldr r0, [r6, #4] + ldr r1, [r4, #8] + str r0, [sp, #4] + add r8, r8, r1 + bl FUN_02089678 + ldr sl, [r6, #0x14] + add r8, r8, r0 + mov r0, sl + bl FUN_02089678 + ldr sb, [r5, #0x14] + ldr fp, [r6, #0xc] + add r0, r8, r0 + add r8, r0, fp + cmp sb, #0 + bne _022FC4E0 + ldr r0, [r6, #0x10] + bl FUN_02089678 + add r8, r8, r0 +_022FC4E0: + cmp sb, #0 + beq _022FC5E8 + ldr r0, [sp, #4] + bl FUN_02089678 + lsr r1, r0, #0x1f + rsb r0, r1, r0, lsl #30 + add r0, r1, r0, ror #30 + rsb r0, r0, #4 + cmp r0, #4 + addne r8, r8, r0 + mov r0, sl + bl FUN_02089678 + lsr r1, r0, #0x1f + rsb r0, r1, r0, lsl #30 + add r0, r1, r0, ror #30 + rsb r0, r0, #4 + cmp r0, #4 + lsr r1, fp, #0x1f + addne r8, r8, r0 + rsb r0, r1, fp, lsl #30 + add r0, r1, r0, ror #30 + rsb r0, r0, #4 + cmp r0, #4 + addne r8, r8, r0 + b _022FC5E8 +_022FC544: + cmp r0, #3 + bne _022FC5DC + ldr r1, [r4] + ldr r0, [r6, #8] + add r8, r8, r1 + bl ov00_022F8CD8 + add r8, r8, r0 + ldr r0, [r6, #8] + bl ov00_022F8CD8 + lsr r1, r0, #0x1f + rsb r0, r1, r0, lsl #30 + add r0, r1, r0, ror #30 + rsb r0, r0, #4 + cmp r0, #4 + addne r8, r8, r0 + ldr r0, _022FC614 @ =0x0231A990 + bl FUN_02089678 + add r8, r8, r0 + ldr r0, _022FC614 @ =0x0231A990 + bl FUN_02089678 + lsr r1, r0, #0x1f + rsb r0, r1, r0, lsl #30 + add r0, r1, r0, ror #30 + rsb r0, r0, #4 + cmp r0, #4 + addne r8, r8, r0 + ldr r0, _022FC618 @ =0x0231A998 + bl FUN_02089678 + add r8, r8, r0 + ldr r0, _022FC618 @ =0x0231A998 + bl FUN_02089678 + lsr r1, r0, #0x1f + rsb r0, r1, r0, lsl #30 + add r0, r1, r0, ror #30 + rsb r0, r0, #4 + cmp r0, #4 + addne r8, r8, r0 + b _022FC5E8 +_022FC5DC: + add sp, sp, #0xc + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022FC5E8: + ldr r0, [sp, #8] + add r7, r7, #1 + cmp r7, r0 + blt _022FC398 +_022FC5F8: + ldr r0, _022FC60C @ =0x023289C4 + ldr r0, [r0, #4] + add r0, r8, r0 + add sp, sp, #0xc + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022FC60C: .4byte 0x023289C4 +_022FC610: .4byte 0x0231A968 +_022FC614: .4byte 0x0231A990 +_022FC618: .4byte 0x0231A998 + arm_func_end ov00_022FC304 + + arm_func_start ov00_022FC61C +ov00_022FC61C: @ 0x022FC61C + push {r3, lr} + ldr r1, [r0, #0x160] + cmp r1, #0 + moveq r0, #0 + popeq {r3, pc} + ldr r1, [r1, #0xc] + cmp r1, #0 + beq _022FC644 + bl ov00_022FC304 + pop {r3, pc} +_022FC644: + bl ov00_022FC26C + pop {r3, pc} + arm_func_end ov00_022FC61C + + arm_func_start ov00_022FC64C +ov00_022FC64C: @ 0x022FC64C + push {r4, lr} + mov r4, r0 + ldr r1, [r4] + mvn r0, #0 + ldr r1, [r1] + str r0, [r4, #4] + cmp r1, #0 + beq _022FC6D4 + cmp r1, #1 + bne _022FC6C4 + ldr r0, [r4, #8] + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} + mov r1, #0 + mov r2, #2 + bl FUN_0208706C + cmp r0, #0 + movne r0, #0 + popne {r4, pc} + ldr r0, [r4, #8] + bl FUN_02086D68 + mvn r1, #0 + str r0, [r4, #0xc] + cmp r0, r1 + moveq r0, #0 + popeq {r4, pc} + ldr r0, [r4, #8] + bl FUN_02087198 + b _022FC6D4 +_022FC6C4: + cmp r1, #2 + cmpne r1, #3 + movne r0, #0 + popne {r4, pc} +_022FC6D4: + mov r0, #1 + pop {r4, pc} + arm_func_end ov00_022FC64C + + arm_func_start ov00_022FC6DC +ov00_022FC6DC: @ 0x022FC6DC + push {r4, lr} + mov r4, r0 + ldr r0, [r4] + ldr r0, [r0] + cmp r0, #0 + popeq {r4, pc} + cmp r0, #1 + popne {r4, pc} + ldr r0, [r4, #8] + cmp r0, #0 + beq _022FC70C + bl FUN_02086B08 +_022FC70C: + mov r0, #0 + str r0, [r4, #8] + pop {r4, pc} + arm_func_end ov00_022FC6DC + + arm_func_start ov00_022FC718 +ov00_022FC718: @ 0x022FC718 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x10 + mov r4, r0 + ldr r0, [r4, #0x160] + cmp r0, #0 + addeq sp, sp, #0x10 + mov r0, #0 + popeq {r4, r5, r6, r7, r8, pc} + str r0, [r4, #0x168] + str r0, [r4, #0x16c] + str r0, [r4, #0x170] + str r0, [r4, #0x180] + ldr r0, [r4, #0x160] + ldr r0, [r0, #4] + str r0, [r4, #0x174] + ldr r0, [r4, #0x160] + ldr r0, [r0, #8] + str r0, [r4, #0x178] + ldr r0, [r4, #0x160] + ldr r0, [r0] + bl ov00_022F47A0 + mov r8, r0 + mov r1, r8 + mov r0, #0x10 + mov r2, #0 + bl ov00_022F4700 + cmp r0, #0 + str r0, [r4, #0x164] + addeq sp, sp, #0x10 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, pc} + cmp r8, #0 + mov r7, #0 + ble _022FC82C + add r6, sp, #0 + mov r5, r7 +_022FC7A8: + ldr r0, [r4, #0x160] + mov r1, r7 + ldr r0, [r0] + bl ov00_022F47A8 + str r5, [r6] + str r0, [sp] + mov r0, r6 + str r5, [r6, #4] + str r5, [r6, #8] + str r5, [r6, #0xc] + bl ov00_022FC64C + cmp r0, #0 + bne _022FC814 + subs r7, r7, #1 + bmi _022FC7FC +_022FC7E4: + ldr r0, [r4, #0x164] + mov r1, r7 + bl ov00_022F47A8 + bl ov00_022FC6DC + subs r7, r7, #1 + bpl _022FC7E4 +_022FC7FC: + ldr r0, [r4, #0x164] + bl ov00_022F4758 + mov r0, #0 + add sp, sp, #0x10 + str r0, [r4, #0x164] + pop {r4, r5, r6, r7, r8, pc} +_022FC814: + ldr r0, [r4, #0x164] + mov r1, r6 + bl ov00_022F47D4 + add r7, r7, #1 + cmp r7, r8 + blt _022FC7A8 +_022FC82C: + mov r0, r4 + bl ov00_022FC61C + str r0, [r4, #0x170] + ldr r0, [r4, #0x160] + ldr r0, [r0, #0x10] + cmp r0, #1 + moveq r0, #1 + movne r0, #0 + str r0, [r4, #0x17c] + mov r0, #1 + add sp, sp, #0x10 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022FC718 + + arm_func_start ov00_022FC85C +ov00_022FC85C: @ 0x022FC85C + push {r4, r5, r6, lr} + mov r6, r0 + ldr r0, [r6, #0x164] + cmp r0, #0 + beq _022FC8B0 + bl ov00_022F47A0 + mov r5, r0 + cmp r5, #0 + mov r4, #0 + ble _022FC8A0 +_022FC884: + ldr r0, [r6, #0x164] + mov r1, r4 + bl ov00_022F47A8 + bl ov00_022FC6DC + add r4, r4, #1 + cmp r4, r5 + blt _022FC884 +_022FC8A0: + ldr r0, [r6, #0x164] + bl ov00_022F4758 + mov r0, #0 + str r0, [r6, #0x164] +_022FC8B0: + ldr r0, [r6, #0x160] + cmp r0, #0 + ldrne r1, [r0, #0x18] + cmpne r1, #0 + popeq {r4, r5, r6, pc} + bl ov00_022FC1F8 + mov r0, #0 + str r0, [r6, #0x160] + pop {r4, r5, r6, pc} + arm_func_end ov00_022FC85C + + arm_func_start ov00_022FC8D4 +ov00_022FC8D4: @ 0x022FC8D4 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + ldr r3, [r0] + mov sl, r1 + ldr r2, [r3, #0xc] + cmp r2, #0 + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [sl, #0x160] + ldr r0, [r1, #0xc] + cmp r0, #0 + ldreq r0, [r1, #0x10] + cmpeq r0, #0 + bne _022FC9F0 + ldr r0, [r3, #0x10] + cmp r0, #0 + beq _022FC9F0 + ldr r0, _022FCA54 @ =0x023184A0 + ldr r8, [r3, #8] + ldrb r2, [r0] + ldrb r1, [r0, #1] + mov r6, #0 + strb r2, [sp] + strb r1, [sp, #1] + ldrb r1, [r0, #2] + ldrb r0, [r0, #3] + strb r1, [sp, #2] + strb r0, [sp, #3] + ldr r0, [sl, #0x194] + ldrsb r7, [r8] + cmp r0, #0 + addeq sb, sl, #0x54 + addne sb, sl, #0x78 + cmp r7, #0 + beq _022FCA0C + ldr r4, _022FCA58 @ =0x0231A9C4 + ldr r5, _022FCA5C @ =0x0231A898 + mov fp, #0x2b +_022FC968: + mov r0, r5 + mov r1, r7 + bl FUN_02089974 + cmp r0, #0 + beq _022FC98C + mov r0, sb + mov r1, r7 + bl ov00_022F9190 + b _022FC9DC +_022FC98C: + cmp r7, #0x20 + bne _022FC9A4 + mov r0, sb + mov r1, fp + bl ov00_022F9190 + b _022FC9DC +_022FC9A4: + asr r0, r7, #3 + lsr r2, r7, #0x1f + add r0, r7, r0, lsr #28 + rsb r1, r2, r7, lsl #28 + asr r3, r0, #4 + add r0, r2, r1, ror #28 + ldrsb r7, [r4, r3] + ldrsb r3, [r4, r0] + mov r0, sb + add r1, sp, #0 + mov r2, #3 + strb r7, [sp, #1] + strb r3, [sp, #2] + bl ov00_022F8E9C +_022FC9DC: + add r6, r6, #1 + ldrsb r7, [r8, r6] + cmp r7, #0 + bne _022FC968 + b _022FCA0C +_022FC9F0: + ldr r1, [r3, #8] + mov r0, sl + bl ov00_022F97C8 + cmp r0, #0 + moveq r0, #0 + movne r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022FCA0C: + ldr r0, [sl, #0x194] + cmp r0, #0 + bne _022FCA4C + mov r0, sl + bl ov00_022F92A4 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [sl, #0x64] + ldr r0, [sl, #0x60] + cmp r1, r0 + bne _022FCA44 + add r0, sl, #0x54 + bl ov00_022F9284 +_022FCA44: + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022FCA4C: + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022FCA54: .4byte 0x023184A0 +_022FCA58: .4byte 0x0231A9C4 +_022FCA5C: .4byte 0x0231A898 + arm_func_end ov00_022FC8D4 + + arm_func_start ov00_022FCA60 +ov00_022FCA60: @ 0x022FCA60 + push {r3, r4, r5, r6, r7, lr} + ldr r2, [r0] + add r0, sp, #0 + ldr r4, [r2, #8] + mov r5, #0 + mov r6, r1 + strb r5, [r0] + strb r5, [r0, #1] + strb r5, [r0, #2] + ldr r0, [r6, #0x160] + ldr r0, [r0, #0x14] + cmp r0, #0 + beq _022FCAB4 + mov r0, r4 + bl ov00_022F8CD8 + lsr r1, r0, #0x1f + rsb r0, r1, r0, lsl #30 + add r0, r1, r0, ror #30 + rsb r5, r0, #4 + cmp r5, #4 + moveq r5, #0 +_022FCAB4: + ldr r0, [r6, #0x194] + cmp r0, #0 + mov r0, r4 + bne _022FCB10 + bl ov00_022F8CD0 + mov r7, r0 + mov r0, r4 + bl ov00_022F8CD8 + mov r2, r0 + mov r0, r6 + mov r1, r7 + bl ov00_022F97C8 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + add r1, sp, #0 + mov r0, r6 + mov r2, r5 + bl ov00_022F97C8 + cmp r0, #0 + moveq r0, #0 + movne r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_022FCB10: + bl ov00_022F8CD0 + mov r7, r0 + mov r0, r4 + bl ov00_022F8CD8 + mov r2, r0 + mov r1, r7 + add r0, r6, #0x78 + bl ov00_022F8E9C + cmp r0, #0 + beq _022FCB68 + add r1, sp, #0 + mov r2, r5 + add r0, r6, #0x78 + bl ov00_022F8E9C + cmp r0, #0 + beq _022FCB68 + ldr r1, [r6, #0x7c] + ldr r2, [r6, #0x84] + add r0, r6, #0x54 + bl ov00_022F8F9C + cmp r0, #0 + bne _022FCB70 +_022FCB68: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_022FCB70: + add r0, r6, #0x78 + bl ov00_022F9284 + mov r0, r6 + bl ov00_022F92A4 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldr r1, [r6, #0x64] + ldr r0, [r6, #0x60] + cmp r1, r0 + bne _022FCBA4 + add r0, r6, #0x54 + bl ov00_022F9284 +_022FCBA4: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_022FCA60 + + arm_func_start ov00_022FCBAC +ov00_022FCBAC: @ 0x022FCBAC + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #4 + sub sp, sp, #0x1000 + mov r8, r0 + mov r7, r1 + add r6, sp, #3 + mov r5, #1 + mov r4, #0x1000 +_022FCBCC: + ldr r3, [r8, #8] + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_020866B4 + mov r2, r0 + cmp r2, #0 + bgt _022FCC0C + mov r0, #1 + add sp, sp, #4 + str r0, [r7, #0x120] + mov r0, #0xe + str r0, [r7, #0x3c] + add sp, sp, #0x1000 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, pc} +_022FCC0C: + ldr r0, [r8, #4] + add r1, r0, r2 + str r1, [r8, #4] + ldr r0, [r8, #0xc] + cmp r1, r0 + ble _022FCC44 + mov r0, #1 + add sp, sp, #4 + str r0, [r7, #0x120] + mov r0, #0xe + str r0, [r7, #0x3c] + add sp, sp, #0x1000 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, pc} +_022FCC44: + mov r0, r7 + mov r1, r6 + bl ov00_022F97C8 + cmp r0, #0 + addeq sp, sp, #4 + addeq sp, sp, #0x1000 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, pc} + ldr r2, [r8, #4] + ldr r1, [r8, #0xc] + cmp r2, r1 + bne _022FCCE8 + ldr r0, [r7, #0x160] + ldr r0, [r0, #0x14] + cmp r0, #0 + beq _022FCCD8 + add r1, sp, #0 + mov r0, #0 + strb r0, [r1] + strb r0, [r1, #1] + strb r0, [r1, #2] + ldr r0, [r8, #0xc] + lsr r2, r0, #0x1f + rsb r0, r2, r0, lsl #30 + add r0, r2, r0, ror #30 + rsb r2, r0, #4 + cmp r2, #4 + beq _022FCCD8 + cmp r2, #0 + ble _022FCCD8 + mov r0, r7 + bl ov00_022F97C8 + cmp r0, #0 + addeq sp, sp, #4 + addeq sp, sp, #0x1000 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, pc} +_022FCCD8: + add sp, sp, #4 + add sp, sp, #0x1000 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, pc} +_022FCCE8: + cmp r0, #1 + beq _022FCBCC + mov r0, #2 + add sp, sp, #4 + add sp, sp, #0x1000 + pop {r3, r4, r5, r6, r7, r8, pc} + arm_func_end ov00_022FCBAC + + arm_func_start ov00_022FCD00 +ov00_022FCD00: @ 0x022FCD00 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + mov r5, r0 + ldr r2, [r5] + mov r4, r1 + ldr r7, [r2, #0xc] + cmp r7, #0 + addeq sp, sp, #8 + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, pc} + ldr r0, [r4, #0x194] + cmp r0, #0 + bne _022FCE00 + mvn r6, #0 +_022FCD38: + ldr r3, [r5, #4] + ldr r1, [r2, #8] + mov r0, r4 + add r1, r1, r3 + sub r2, r7, r3 + bl ov00_022F9734 + cmp r0, r6 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldr r1, [r5, #4] + add r1, r1, r0 + str r1, [r5, #4] + ldr r2, [r5] + ldr r7, [r2, #0xc] + cmp r7, r1 + bne _022FCDEC + ldr r0, [r4, #0x160] + ldr r0, [r0, #0x14] + cmp r0, #0 + beq _022FCDE0 + add r1, sp, #3 + mov r0, #0 + strb r0, [r1] + strb r0, [r1, #1] + strb r0, [r1, #2] + ldr r0, [r5] + ldr r0, [r0, #0xc] + lsr r2, r0, #0x1f + rsb r0, r2, r0, lsl #30 + add r0, r2, r0, ror #30 + rsb r2, r0, #4 + cmp r2, #4 + beq _022FCDE0 + cmp r2, #0 + ble _022FCDE0 + mov r0, r4 + bl ov00_022F97C8 + cmp r0, #0 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} +_022FCDE0: + add sp, sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_022FCDEC: + cmp r0, #0 + bne _022FCD38 + add sp, sp, #8 + mov r0, #2 + pop {r3, r4, r5, r6, r7, pc} +_022FCE00: + ldr r6, _022FCED8 @ =0x00003F01 +_022FCE04: + ldr r3, [r5, #4] + ldr r1, [r2, #8] + sub r7, r7, r3 + cmp r7, r6 + movge r7, r6 + mov r0, r4 + mov r2, r7 + add r1, r1, r3 + bl ov00_022F97C8 + cmp r0, #0 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldr r1, [r5, #4] + add r1, r1, r7 + str r1, [r5, #4] + ldr r2, [r5] + ldr r7, [r2, #0xc] + cmp r7, r1 + bne _022FCEC4 + ldr r0, [r4, #0x160] + ldr r0, [r0, #0x14] + cmp r0, #0 + beq _022FCEB8 + add r1, sp, #0 + mov r0, #0 + strb r0, [r1] + strb r0, [r1, #1] + strb r0, [r1, #2] + ldr r0, [r5] + ldr r0, [r0, #0xc] + lsr r2, r0, #0x1f + rsb r0, r2, r0, lsl #30 + add r0, r2, r0, ror #30 + rsb r2, r0, #4 + cmp r2, #4 + beq _022FCEB8 + cmp r2, #0 + ble _022FCEB8 + mov r0, r4 + bl ov00_022F97C8 + cmp r0, #0 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} +_022FCEB8: + add sp, sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_022FCEC4: + cmp r0, #1 + beq _022FCE04 + mov r0, #2 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022FCED8: .4byte 0x00003F01 + arm_func_end ov00_022FCD00 + + arm_func_start ov00_022FCEDC +ov00_022FCEDC: @ 0x022FCEDC + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x820 + mov r8, r0 + mov r6, #0 + ldr r4, [r8, #4] + sub r0, r6, #1 + mov r7, r1 + cmp r4, r0 + bne _022FD518 + str r6, [r8, #4] + ldr sb, [r7, #0x160] + ldr r0, [sb, #0xc] + cmp r0, #0 + ldreq r0, [sb, #0x10] + cmpeq r0, #0 + bne _022FCF48 + ldr r1, [r8] + cmp r2, #0 + add r0, sp, #0x20 + ldr r2, [r1, #4] + beq _022FCF3C + ldr r1, _022FD580 @ =0x0231A9D8 + bl FUN_020790DC + b _022FD450 +_022FCF3C: + ldr r1, _022FD584 @ =0x0231A9DC + bl FUN_020790DC + b _022FD450 +_022FCF48: + ldr sl, [r8] + ldr r1, [sl] + cmp r1, #0 + bne _022FCF78 + cmp r2, #0 + ldrne r2, _022FD588 @ =0x0231A9E4 + ldr r3, [sl, #4] + ldreq r2, _022FD58C @ =0x0231AA0C + ldr r1, _022FD590 @ =0x0231AA38 + add r0, sp, #0x20 + bl FUN_020790DC + b _022FD450 +_022FCF78: + cmp r1, #3 + bne _022FD1FC + ldr r0, [sb, #0x14] + cmp r0, #0 + beq _022FD1F0 + mov r0, #8 + cmp r2, #0 + strb r0, [sp, #0x14] + andne r0, r0, #0xff + orrne r0, r0, #4 + strbne r0, [sp, #0x14] + cmp r3, #0 + ldrbne r0, [sp, #0x14] + mov r2, #0x20 + mov r1, #0 + orrne r0, r0, #2 + strbne r0, [sp, #0x14] + ldr r0, _022FD594 @ =0x0231A990 + mov r6, #0 + strb r2, [sp, #0x15] + strh r1, [sp, #0x16] + bl FUN_02089678 + mov r4, r0 + ldr r0, _022FD594 @ =0x0231A990 + bl FUN_02089678 + lsl r1, r0, #0x10 + lsl r0, r4, #0x10 + asr r0, r0, #0x10 + lsl r0, r0, #0x10 + asr r1, r1, #0x10 + lsr r2, r0, #0x10 + lsl r0, r1, #0x10 + asr r1, r2, #8 + lsr r0, r0, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r1, r1, r0 + ldr r0, _022FD598 @ =0x0231A998 + strh r1, [sp, #0x18] + bl FUN_02089678 + mov r4, r0 + ldr r0, _022FD598 @ =0x0231A998 + bl FUN_02089678 + lsl r1, r4, #0x10 + asr r2, r1, #0x10 + lsl r1, r0, #0x10 + lsl r0, r2, #0x10 + asr r1, r1, #0x10 + lsr r2, r0, #0x10 + lsl r0, r1, #0x10 + asr r1, r2, #8 + lsr r0, r0, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + strh r0, [sp, #0x1a] + ldr r0, [r8] + ldr r0, [r0, #8] + bl ov00_022F8CD8 + ldr r1, [r8] + mov sb, r0 + ldr r0, [r1, #8] + bl ov00_022F8CD8 + ldr r1, [r8] + mov r5, r0 + ldr r0, [r1, #8] + bl ov00_022F8CD8 + ldr r1, [r8] + mov r4, r0 + ldr r0, [r1, #8] + bl ov00_022F8CD8 + lsl r2, r5, #8 + and r3, r2, #0xff0000 + lsr r2, r4, #0x18 + lsr r0, r0, #8 + lsl r1, sb, #0x18 + and r2, r2, #0xff + and r0, r0, #0xff00 + orr r0, r2, r0 + orr r0, r3, r0 + and r1, r1, #0xff000000 + orr r0, r1, r0 + add r4, sp, #0x20 + add r3, sp, #0x14 + str r0, [sp, #0x1c] + mov r2, #6 +_022FD0D0: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + strb r1, [r4] + strb r0, [r4, #1] + add r4, r4, #2 + subs r2, r2, #1 + bne _022FD0D0 + add r0, sp, #0x20 + add r6, r6, #0xc + ldr r3, _022FD594 @ =0x0231A990 + add r4, r0, r6 + mov r2, #4 +_022FD104: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + strb r1, [r4] + strb r0, [r4, #1] + add r4, r4, #2 + subs r2, r2, #1 + bne _022FD104 + ldr r0, _022FD594 @ =0x0231A990 + bl FUN_02089678 + add r6, r6, r0 + ldr r0, _022FD594 @ =0x0231A990 + bl FUN_02089678 + and r0, r0, #3 + rsb r0, r0, #4 + cmp r0, #4 + beq _022FD170 + cmp r0, #0 + sub r2, r0, #1 + ble _022FD170 + mov r1, #0 + add r0, sp, #0x20 +_022FD15C: + strb r1, [r0, r6] + cmp r2, #0 + add r6, r6, #1 + sub r2, r2, #1 + bgt _022FD15C +_022FD170: + add r0, sp, #0x20 + ldr r3, _022FD598 @ =0x0231A998 + add r4, r0, r6 + mov r2, #0x15 +_022FD180: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + strb r1, [r4] + strb r0, [r4, #1] + add r4, r4, #2 + subs r2, r2, #1 + bne _022FD180 + ldr r0, _022FD598 @ =0x0231A998 + bl FUN_02089678 + add r6, r6, r0 + ldr r0, _022FD598 @ =0x0231A998 + bl FUN_02089678 + and r0, r0, #3 + rsb r0, r0, #4 + cmp r0, #4 + beq _022FD450 + cmp r0, #0 + sub r2, r0, #1 + ble _022FD450 + mov r1, #0 + add r0, sp, #0x20 +_022FD1D8: + strb r1, [r0, r6] + cmp r2, #0 + add r6, r6, #1 + sub r2, r2, #1 + bgt _022FD1D8 + b _022FD450 +_022FD1F0: + mov r0, #0 + strb r0, [sp, #0x20] + b _022FD450 +_022FD1FC: + sub r0, r1, #1 + cmp r0, #1 + bhi _022FD450 + cmp r1, #1 + ldrne r5, [sl, #0xc] + ldrne r1, [sl, #0x10] + ldrne r4, [sl, #0x14] + bne _022FD228 + ldr r5, [r8, #0xc] + ldr r1, [sl, #0xc] + ldr r4, [sl, #0x10] +_022FD228: + ldr r0, [sb, #0x14] + cmp r0, #0 + beq _022FD430 + mov r0, #8 + strb r0, [sp, #8] + cmp r2, #0 + andne r0, r0, #0xff + orrne r0, r0, #4 + strbne r0, [sp, #8] + cmp r3, #0 + ldrbne r0, [sp, #8] + mov r1, #0x10 + strb r1, [sp, #9] + orrne r0, r0, #2 + strbne r0, [sp, #8] + mov r0, #0 + strh r0, [sp, #0xa] + ldr r0, [r8] + mov r6, #0 + ldr sl, [r0, #4] + mov r0, sl + bl FUN_02089678 + mov sb, r0 + mov r0, sl + bl FUN_02089678 + lsl r1, r0, #0x10 + lsl r0, sb, #0x10 + asr r0, r0, #0x10 + lsl r0, r0, #0x10 + asr r1, r1, #0x10 + lsr r2, r0, #0x10 + lsl r0, r1, #0x10 + asr r1, r2, #8 + lsr r0, r0, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r1, r1, r0 + mov r0, r4 + strh r1, [sp, #0xc] + bl FUN_02089678 + mov sb, r0 + mov r0, r4 + bl FUN_02089678 + lsl r1, sb, #0x10 + asr r2, r1, #0x10 + lsl r1, r0, #0x10 + lsl r0, r2, #0x10 + lsr r2, r0, #0x10 + asr r1, r1, #0x10 + lsr ip, r5, #0x18 + asr r3, r2, #8 + lsl r1, r1, #0x10 + lsr r2, r1, #8 + lsl r1, r5, #0x18 + lsr sb, r5, #8 + lsl r0, r5, #8 + and r5, sb, #0xff00 + and ip, ip, #0xff + and sb, r0, #0xff0000 + orr r0, ip, r5 + and r3, r3, #0xff + and r2, r2, #0xff00 + orr r2, r3, r2 + strh r2, [sp, #0xe] + and r1, r1, #0xff000000 + orr r0, sb, r0 + orr r0, r1, r0 + add r5, sp, #0x20 + add r3, sp, #8 + str r0, [sp, #0x10] + mov r2, #6 +_022FD344: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + strb r1, [r5] + strb r0, [r5, #1] + add r5, r5, #2 + subs r2, r2, #1 + bne _022FD344 + ldr r0, [r8] + add r2, sp, #0x20 + add r6, r6, #0xc + ldr r1, [r0, #4] + add r0, r2, r6 + bl FUN_02089694 + ldr r0, [r8] + ldr r5, [r0, #4] + mov r0, r5 + bl FUN_02089678 + add r6, r6, r0 + mov r0, r5 + bl FUN_02089678 + and r0, r0, #3 + rsb r0, r0, #4 + cmp r0, #4 + beq _022FD3D0 + cmp r0, #0 + sub r2, r0, #1 + ble _022FD3D0 + mov r1, #0 + add r0, sp, #0x20 +_022FD3BC: + strb r1, [r0, r6] + cmp r2, #0 + add r6, r6, #1 + sub r2, r2, #1 + bgt _022FD3BC +_022FD3D0: + add r0, sp, #0x20 + mov r1, r4 + add r0, r0, r6 + bl FUN_02089694 + mov r0, r4 + bl FUN_02089678 + add r6, r6, r0 + mov r0, r4 + bl FUN_02089678 + and r0, r0, #3 + rsb r0, r0, #4 + cmp r0, #4 + beq _022FD450 + cmp r0, #0 + sub r2, r0, #1 + ble _022FD450 + mov r1, #0 + add r0, sp, #0x20 +_022FD418: + strb r1, [r0, r6] + cmp r2, #0 + add r6, r6, #1 + sub r2, r2, #1 + bgt _022FD418 + b _022FD450 +_022FD430: + stm sp, {r1, r4} + cmp r2, #0 + ldrne r2, _022FD588 @ =0x0231A9E4 + ldr r3, [sl, #4] + ldreq r2, _022FD58C @ =0x0231AA0C + ldr r1, _022FD59C @ =0x0231AA68 + add r0, sp, #0x20 + bl FUN_020790DC +_022FD450: + ldr r0, [r7, #0x194] + cmp r0, #0 + bne _022FD4AC + cmp r6, #0 + bne _022FD470 + add r0, sp, #0x20 + bl FUN_02089678 + mov r6, r0 +_022FD470: + add r1, sp, #0x20 + mov r0, r7 + mov r2, r6 + bl ov00_022F97C8 + cmp r0, #0 + addeq sp, sp, #0x820 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + cmp r0, #2 + addeq sp, sp, #0x820 + moveq r0, #2 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + add r0, r7, #0x54 + bl ov00_022F9284 + b _022FD518 +_022FD4AC: + cmp r6, #0 + bne _022FD4C0 + add r0, sp, #0x20 + bl FUN_02089678 + mov r6, r0 +_022FD4C0: + add r1, sp, #0x20 + mov r2, r6 + add r0, r7, #0x54 + bl ov00_022F8F9C + cmp r0, #0 + addeq sp, sp, #0x820 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + mov r0, r7 + bl ov00_022F92A4 + cmp r0, #0 + addeq sp, sp, #0x820 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + ldr r1, [r7, #0x64] + ldr r0, [r7, #0x60] + cmp r1, r0 + addlt sp, sp, #0x820 + movlt r0, #2 + poplt {r4, r5, r6, r7, r8, sb, sl, pc} + add r0, r7, #0x54 + bl ov00_022F9284 +_022FD518: + ldr r0, [r8] + ldr r0, [r0] + cmp r0, #0 + bne _022FD53C + mov r0, r8 + mov r1, r7 + bl ov00_022FC8D4 + add sp, sp, #0x820 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022FD53C: + cmp r0, #3 + bne _022FD558 + mov r0, r8 + mov r1, r7 + bl ov00_022FCA60 + add sp, sp, #0x820 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022FD558: + cmp r0, #1 + mov r0, r8 + mov r1, r7 + bne _022FD574 + bl ov00_022FCBAC + add sp, sp, #0x820 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_022FD574: + bl ov00_022FCD00 + add sp, sp, #0x820 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_022FD580: .4byte 0x0231A9D8 +_022FD584: .4byte 0x0231A9DC +_022FD588: .4byte 0x0231A9E4 +_022FD58C: .4byte 0x0231AA0C +_022FD590: .4byte 0x0231AA38 +_022FD594: .4byte 0x0231A990 +_022FD598: .4byte 0x0231A998 +_022FD59C: .4byte 0x0231AA68 + arm_func_end ov00_022FCEDC + + arm_func_start ov00_022FD5A0 +ov00_022FD5A0: @ 0x022FD5A0 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sl, r0 + ldr r0, [sl, #0x164] + bl ov00_022F47A0 + ldr r2, [sl, #0x64] + ldr r1, [sl, #0x60] + mov r8, r0 + cmp r2, r1 + bge _022FD614 + mov r0, sl + bl ov00_022F92A4 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [sl, #0x64] + ldr r0, [sl, #0x60] + cmp r1, r0 + movlt r0, #2 + poplt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, sl, #0x54 + bl ov00_022F9284 + ldr r0, [sl, #0x17c] + cmp r0, #0 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [sl, #0x168] + cmp r0, r8 + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022FD614: + ldr r0, [sl, #0x17c] + cmp r0, #0 + beq _022FD684 + ldr r1, [sl, #0x160] + ldr r0, [r1, #0xc] + cmp r0, #0 + ldreq r0, [r1, #0x10] + cmpeq r0, #0 + beq _022FD67C + ldr r0, _022FD79C @ =0x0231AABC + bl FUN_02089678 + mov r2, r0 + ldr r1, _022FD79C @ =0x0231AABC + mov r0, sl + bl ov00_022F97C8 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r0, #2 + moveq r0, #2 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [sl, #0x17c] + cmp r0, #1 + bne _022FD684 + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022FD67C: + mov r0, #0 + str r0, [sl, #0x17c] +_022FD684: + ldr r1, [sl, #0x168] + cmp r1, r8 + bge _022FD70C + mov r5, #0 + mov r6, #1 + mov fp, r5 + mov r4, r6 +_022FD6A0: + ldr r0, [sl, #0x164] + bl ov00_022F47A8 + mov r7, r0 + ldr r0, [sl, #0x164] + ldr sb, [sl, #0x168] + bl ov00_022F47A0 + sub r0, r0, #1 + cmp sb, r0 + moveq r3, r6 + movne r3, r5 + cmp sb, #0 + moveq r2, r4 + movne r2, fp + mov r0, r7 + mov r1, sl + bl ov00_022FCEDC + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r0, #2 + moveq r0, #2 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [sl, #0x168] + add r1, r0, #1 + str r1, [sl, #0x168] + cmp r1, r8 + blt _022FD6A0 +_022FD70C: + ldr r0, [sl, #0x194] + cmp r0, #0 + beq _022FD744 + ldr r2, [sl, #0x84] + cmp r2, #0 + ble _022FD744 + ldr r1, [sl, #0x7c] + add r0, sl, #0x54 + bl ov00_022F8F9C + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, sl, #0x78 + bl ov00_022F9284 +_022FD744: + ldr r1, [sl, #0x160] + ldr r0, [r1, #0xc] + cmp r0, #0 + beq _022FD784 + ldr r0, [r1, #0x14] + cmp r0, #0 + bne _022FD784 + ldr r0, _022FD7A0 @ =0x0231AAC0 + bl FUN_02089678 + mov r2, r0 + ldr r1, _022FD7A0 @ =0x0231AAC0 + mov r0, sl + bl ov00_022F97C8 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022FD784: + ldr r1, [sl, #0x64] + ldr r0, [sl, #0x60] + cmp r1, r0 + movlt r0, #2 + movge r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022FD79C: .4byte 0x0231AABC +_022FD7A0: .4byte 0x0231AAC0 + arm_func_end ov00_022FD5A0 + + arm_func_start ov00_022FD7A4 +ov00_022FD7A4: @ 0x022FD7A4 + push {r3, r4, r5, r6, r7, lr} + movs r5, r0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldr r4, [r5, #0x14] + cmp r4, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldr r1, _022FD910 @ =0x0231AAEC + mov r0, r4 + mov r2, #7 + bl FUN_02089940 + cmp r0, #0 + bne _022FD7EC + mov r0, #0 + str r0, [r5, #0x28] + add r4, r4, #7 + b _022FD81C +_022FD7EC: + ldr r1, _022FD914 @ =0x0231AAF4 + mov r0, r4 + mov r2, #8 + bl FUN_02089940 + cmp r0, #0 + bne _022FD814 + mov r0, #1 + str r0, [r5, #0x28] + add r4, r4, #8 + b _022FD81C +_022FD814: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_022FD81C: + ldr r1, _022FD918 @ =0x0231AB00 + mov r0, r4 + bl FUN_020899B0 + mov r6, r0 + ldrsb r7, [r4, r6] + mov r1, #0 + mov r0, r4 + strb r1, [r4, r6] + bl ov00_022F5514 + str r0, [r5, #0x18] + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + strb r7, [r4, r6] + ldrsb r0, [r4, r6]! + cmp r0, #0x3a + bne _022FD898 + add r4, r4, #1 + mov r0, r4 + bl FUN_0208B360 + strh r0, [r5, #0x20] + ldrh r0, [r5, #0x20] + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} +_022FD880: + ldrsb r0, [r4, #1]! + cmp r0, #0 + beq _022FD8B0 + cmp r0, #0x2f + bne _022FD880 + b _022FD8B0 +_022FD898: + ldr r0, [r5, #0x28] + cmp r0, #1 + ldreq r0, _022FD91C @ =0x000001BB + strheq r0, [r5, #0x20] + movne r0, #0x50 + strhne r0, [r5, #0x20] +_022FD8B0: + ldrsb r0, [r4] + cmp r0, #0 + ldreq r4, _022FD920 @ =0x0231AB04 + mov r0, r4 + bl ov00_022F5514 + mov r1, #0x20 + mov r7, r0 + str r0, [r5, #0x24] + bl FUN_02089974 + cmp r0, #0 + beq _022FD900 + mov r6, #0x2b + mov r4, #0x20 +_022FD8E4: + strb r6, [r0] + ldr r7, [r5, #0x24] + mov r1, r4 + mov r0, r7 + bl FUN_02089974 + cmp r0, #0 + bne _022FD8E4 +_022FD900: + cmp r7, #0 + moveq r0, #0 + movne r0, #1 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022FD910: .4byte 0x0231AAEC +_022FD914: .4byte 0x0231AAF4 +_022FD918: .4byte 0x0231AB00 +_022FD91C: .4byte 0x000001BB +_022FD920: .4byte 0x0231AB04 + arm_func_end ov00_022FD7A4 + + arm_func_start ov00_022FD924 +ov00_022FD924: @ 0x022FD924 + push {r4, lr} + mov r1, #0 + mov r4, r0 + mov r2, r1 + bl ov00_022F943C + bl ov00_022F558C + mov r0, r4 + bl ov00_022FD7A4 + cmp r0, #0 + bne _022FD960 + mov r0, #1 + str r0, [r4, #0x120] + mov r0, #3 + str r0, [r4, #0x3c] + pop {r4, pc} +_022FD960: + ldr r1, [r4, #0x28] + cmp r1, #1 + ldreq r0, [r4, #0x194] + cmpeq r0, #0 + bne _022FD984 + ldr r0, [r4, #4] + mov r1, #1 + bl ov00_022F9EE8 + b _022FD9A0 +_022FD984: + cmp r1, #1 + ldrne r0, [r4, #0x194] + cmpne r0, #0 + beq _022FD9A0 + ldr r0, [r4, #4] + mov r1, #0 + bl ov00_022F9EE8 +_022FD9A0: + mov r1, #0 + mov r3, #1 + mov r0, r4 + mov r2, r1 + str r3, [r4, #0x10] + bl ov00_022F943C + pop {r4, pc} + arm_func_end ov00_022FD924 + + arm_func_start ov00_022FD9BC +ov00_022FD9BC: @ 0x022FD9BC + push {r3, r4, r5, lr} + mov r4, r0 + ldr r1, [r4, #0x1b0] + cmp r1, #0 + beq _022FD9E8 + mov r1, #0 + mov r3, #2 + mov r2, r1 + str r3, [r4, #0x10] + bl ov00_022F943C + pop {r3, r4, r5, pc} +_022FD9E8: + ldr r5, [r4, #0x188] + cmp r5, #0 + bne _022FDA04 + ldr r0, _022FDA94 @ =0x023289AC + ldr r5, [r0] + cmp r5, #0 + ldreq r5, [r4, #0x18] +_022FDA04: + mov r0, r5 + bl ov00_022F5178 + mvn r1, #0 + str r0, [r4, #0x1c] + cmp r0, r1 + bne _022FDA50 + mov r0, r5 + add r1, r4, #0x1b0 + bl ov00_022F54AC + mvn r1, #0 + cmp r0, r1 + bne _022FDA50 + mov r0, #0 + str r0, [r4, #0x1b0] + mov r0, #1 + str r0, [r4, #0x120] + mov r0, #4 + str r0, [r4, #0x3c] + pop {r3, r4, r5, pc} +_022FDA50: + ldr r1, [r4, #0x1c] + mvn r0, #0 + cmp r1, r0 + mov r1, #0 + bne _022FDA7C + mov r3, #2 + mov r0, r4 + mov r2, r1 + str r3, [r4, #0x10] + bl ov00_022F943C + pop {r3, r4, r5, pc} +_022FDA7C: + mov r3, #3 + mov r0, r4 + mov r2, r1 + str r3, [r4, #0x10] + bl ov00_022F943C + pop {r3, r4, r5, pc} + .align 2, 0 +_022FDA94: .4byte 0x023289AC + arm_func_end ov00_022FD9BC + + arm_func_start ov00_022FDA98 +ov00_022FDA98: @ 0x022FDA98 + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #0x1b0] + bl ov00_022F5500 + mvn r1, #0 + str r0, [r4, #0x1c] + cmp r0, r1 + bne _022FDAD4 + mov r0, #0 + str r0, [r4, #0x1b0] + mov r0, #1 + str r0, [r4, #0x120] + mov r0, #4 + str r0, [r4, #0x3c] + pop {r4, pc} +_022FDAD4: + cmp r0, #0 + mov r1, #0 + bne _022FDAF8 + mov r3, #2 + mov r0, r4 + mov r2, r1 + str r3, [r4, #0x10] + bl ov00_022F943C + pop {r4, pc} +_022FDAF8: + mov r0, r4 + mov r2, r1 + str r1, [r4, #0x1b0] + mov r3, #3 + str r3, [r4, #0x10] + bl ov00_022F943C + pop {r4, pc} + arm_func_end ov00_022FDA98 + + arm_func_start ov00_022FDB14 +ov00_022FDB14: @ 0x022FDB14 + push {r4, lr} + sub sp, sp, #0x10 + mov r4, r0 + ldr r1, [r4, #0x4c] + mvn r0, #0 + cmp r1, r0 + bne _022FDCC0 + mov r0, #2 + mov r1, #1 + mov r2, #0 + bl ov00_022F4FA0 + mvn r1, #0 + str r0, [r4, #0x4c] + cmp r0, r1 + bne _022FDB74 + mov r0, #1 + str r0, [r4, #0x120] + mov r0, #5 + str r0, [r4, #0x3c] + ldr r0, [r4, #0x4c] + bl ov00_022F5194 + add sp, sp, #0x10 + str r0, [r4, #0x50] + pop {r4, pc} +_022FDB74: + mov r1, #0 + bl ov00_022F529C + cmp r0, #0 + bne _022FDBA8 + mov r0, #1 + str r0, [r4, #0x120] + mov r0, #5 + str r0, [r4, #0x3c] + ldr r0, [r4, #0x4c] + bl ov00_022F5194 + add sp, sp, #0x10 + str r0, [r4, #0x50] + pop {r4, pc} +_022FDBA8: + ldr r0, [r4, #0x158] + cmp r0, #0 + beq _022FDBC4 + ldr r1, _022FDD70 @ =0x0231A7F4 + ldr r0, [r4, #0x4c] + ldr r1, [r1] + bl ov00_022F52DC +_022FDBC4: + add r2, sp, #8 + mov r1, #0 + str r1, [r2] + mov r0, #2 + str r1, [r2, #4] + strb r0, [sp, #9] + ldr r0, [r4, #0x188] + cmp r0, #0 + beq _022FDC0C + add r0, r4, #0x100 + ldrh r0, [r0, #0x8c] + asr r1, r0, #8 + lsl r0, r0, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + strh r0, [sp, #0xa] + b _022FDC5C +_022FDC0C: + ldr r0, _022FDD74 @ =0x023289AC + ldr r0, [r0] + cmp r0, #0 + beq _022FDC40 + ldr r0, _022FDD78 @ =0x023289A8 + ldrh r0, [r0] + asr r1, r0, #8 + lsl r0, r0, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + strh r0, [sp, #0xa] + b _022FDC5C +_022FDC40: + ldrh r0, [r4, #0x20] + asr r1, r0, #8 + lsl r0, r0, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + strh r0, [sp, #0xa] +_022FDC5C: + ldr r0, [r4, #0x1c] + add r1, sp, #8 + str r0, [sp, #0xc] + ldr r0, [r4, #0x4c] + mov r2, #8 + bl ov00_022F503C + mvn r1, #0 + cmp r0, r1 + bne _022FDCC0 + ldr r0, [r4, #0x4c] + bl ov00_022F5194 + mvn r2, #5 + cmp r0, r2 + subne r1, r2, #0x14 + cmpne r0, r1 + subne r1, r2, #0x46 + cmpne r0, r1 + beq _022FDCC0 + mov r1, #1 + str r1, [r4, #0x120] + mov r1, #6 + str r1, [r4, #0x3c] + add sp, sp, #0x10 + str r0, [r4, #0x50] + pop {r4, pc} +_022FDCC0: + ldr r0, [r4, #0x4c] + add r2, sp, #4 + add r3, sp, #0 + mov r1, #0 + bl ov00_022F51A4 + mvn r1, #0 + cmp r0, r1 + beq _022FDCF4 + cmp r0, #1 + bne _022FDD28 + ldr r1, [sp] + cmp r1, #0 + beq _022FDD28 +_022FDCF4: + mov r1, #1 + mov r2, #6 + str r1, [r4, #0x120] + sub r1, r2, #7 + cmp r0, r1 + str r2, [r4, #0x3c] + movne r0, #0 + bne _022FDD1C + ldr r0, [r4, #0x4c] + bl ov00_022F5194 +_022FDD1C: + add sp, sp, #0x10 + str r0, [r4, #0x50] + pop {r4, pc} +_022FDD28: + cmp r0, #1 + addne sp, sp, #0x10 + popne {r4, pc} + ldr r0, [sp, #4] + cmp r0, #0 + addeq sp, sp, #0x10 + popeq {r4, pc} + ldr r0, [r4, #0x194] + mov r1, #0 + cmp r0, #0 + moveq r0, #5 + movne r0, #4 + str r0, [r4, #0x10] + mov r0, r4 + mov r2, r1 + bl ov00_022F943C + add sp, sp, #0x10 + pop {r4, pc} + .align 2, 0 +_022FDD70: .4byte 0x0231A7F4 +_022FDD74: .4byte 0x023289AC +_022FDD78: .4byte 0x023289A8 + arm_func_end ov00_022FDB14 + + arm_func_start ov00_022FDD7C +ov00_022FDD7C: @ 0x022FDD7C + push {r4, lr} + sub sp, sp, #8 + sub sp, sp, #0x400 + mov r4, r0 + ldr r1, [r4, #0x198] + cmp r1, #0 + bne _022FDDC8 + ldr r2, [r4, #0x1a0] + add r1, r4, #0x190 + blx r2 + cmp r0, #3 + bne _022FDDC8 + mov r0, #1 + add sp, sp, #8 + str r0, [r4, #0x120] + mov r0, #0x11 + add sp, sp, #0x400 + str r0, [r4, #0x3c] + pop {r4, pc} +_022FDDC8: + ldr r1, [r4, #0x64] + ldr r0, [r4, #0x60] + cmp r1, r0 + bge _022FDE10 + mov r0, r4 + bl ov00_022F92A4 + cmp r0, #0 + addeq sp, sp, #8 + addeq sp, sp, #0x400 + popeq {r4, pc} + ldr r1, [r4, #0x64] + ldr r0, [r4, #0x60] + cmp r1, r0 + addlt sp, sp, #8 + addlt sp, sp, #0x400 + poplt {r4, pc} + add r0, r4, #0x54 + bl ov00_022F9284 +_022FDE10: + ldr r3, _022FDEE4 @ =0x00000401 + add r1, sp, #4 + add r2, sp, #0 + mov r0, r4 + str r3, [sp] + bl ov00_022F962C + sub r1, r0, #2 + cmp r1, #1 + bhi _022FDE50 + mov r0, #1 + add sp, sp, #8 + str r0, [r4, #0x120] + mov r0, #0x11 + add sp, sp, #0x400 + str r0, [r4, #0x3c] + pop {r4, pc} +_022FDE50: + cmp r0, #0 + addne sp, sp, #8 + addne sp, sp, #0x400 + popne {r4, pc} + ldr r2, [sp] + add r1, sp, #4 + add r0, r4, #0xc0 + bl ov00_022F8E9C + cmp r0, #0 + addeq sp, sp, #8 + addeq sp, sp, #0x400 + popeq {r4, pc} + mov r0, r4 + bl ov00_022F94EC + cmp r0, #0 + bne _022FDEAC + mov r0, #1 + add sp, sp, #8 + str r0, [r4, #0x120] + mov r0, #0x11 + add sp, sp, #0x400 + str r0, [r4, #0x3c] + pop {r4, pc} +_022FDEAC: + ldr r0, [r4, #0x19c] + cmp r0, #0 + addeq sp, sp, #8 + addeq sp, sp, #0x400 + popeq {r4, pc} + mov r1, #0 + mov r3, #5 + mov r0, r4 + mov r2, r1 + str r3, [r4, #0x10] + bl ov00_022F943C + add sp, sp, #8 + add sp, sp, #0x400 + pop {r4, pc} + .align 2, 0 +_022FDEE4: .4byte 0x00000401 + arm_func_end ov00_022FDD7C + + arm_func_start ov00_022FDEE8 +ov00_022FDEE8: @ 0x022FDEE8 + push {r3, r4, r5, lr} + sub sp, sp, #0x10 + mov r5, r0 + ldr r0, [r5, #0x60] + cmp r0, #0 + bne _022FE110 + ldr r0, [r5, #0x194] + cmp r0, #0 + addeq r4, r5, #0x54 + ldr r0, [r5, #0x160] + addne r4, r5, #0x78 + cmp r0, #0 + beq _022FDF2C + ldr r0, [r5, #0x180] + cmp r0, #0 + ldreq r1, _022FE180 @ =0x0231AB08 + beq _022FDF3C +_022FDF2C: + ldr r0, [r5, #0xc] + cmp r0, #3 + ldreq r1, _022FE184 @ =0x0231AB10 + ldrne r1, _022FE188 @ =0x0231AB18 +_022FDF3C: + mov r0, r4 + mov r2, #0 + bl ov00_022F8E9C + ldr r0, [r5, #0x188] + mov r2, #0 + cmp r0, #0 + ldreq r0, _022FE18C @ =0x023289AC + ldreq r0, [r0] + cmpeq r0, #0 + beq _022FDF74 + ldr r1, [r5, #0x14] + mov r0, r4 + bl ov00_022F8E9C + b _022FDF80 +_022FDF74: + ldr r1, [r5, #0x24] + mov r0, r4 + bl ov00_022F8E9C +_022FDF80: + ldr r1, _022FE190 @ =0x0231AB20 + mov r0, r4 + mov r2, #0 + bl ov00_022F8E9C + ldrh r0, [r5, #0x20] + cmp r0, #0x50 + bne _022FDFB0 + ldr r2, [r5, #0x18] + ldr r1, _022FE194 @ =0x0231AB2C + mov r0, r4 + bl ov00_022F9110 + b _022FDFF8 +_022FDFB0: + ldr r1, _022FE198 @ =0x0231AB34 + mov r0, r4 + mov r2, #0 + bl ov00_022F8E9C + ldr r1, [r5, #0x18] + mov r0, r4 + mov r2, #0 + bl ov00_022F8E9C + mov r0, r4 + mov r1, #0x3a + bl ov00_022F9190 + ldrh r1, [r5, #0x20] + mov r0, r4 + bl ov00_022F924C + mov r0, r4 + ldr r1, _022FE19C @ =0x0231AB3C + mov r2, #2 + bl ov00_022F8E9C +_022FDFF8: + ldr r0, [r5, #0x2c] + cmp r0, #0 + beq _022FE014 + ldr r1, _022FE1A0 @ =0x0231AB40 + bl FUN_02089A70 + cmp r0, #0 + bne _022FE024 +_022FE014: + ldr r1, _022FE1A0 @ =0x0231AB40 + ldr r2, _022FE1A4 @ =0x0231AB4C + mov r0, r4 + bl ov00_022F9110 +_022FE024: + ldr r0, [r5, #0x38] + cmp r0, #0 + beq _022FE044 + ldr r1, _022FE1A8 @ =0x0231AB5C + ldr r2, _022FE1AC @ =0x0231AB68 + mov r0, r4 + bl ov00_022F9110 + b _022FE054 +_022FE044: + ldr r1, _022FE1A8 @ =0x0231AB5C + ldr r2, _022FE1B0 @ =0x0231AB74 + mov r0, r4 + bl ov00_022F9110 +_022FE054: + ldr r0, [r5, #0x160] + cmp r0, #0 + beq _022FE0A4 + ldr r0, [r5, #0x180] + cmp r0, #0 + bne _022FE0A4 + ldr r2, [r5, #0x170] + ldr r1, _022FE1B4 @ =0x0231AB7C + add r0, sp, #0 + bl FUN_020790DC + ldr r1, _022FE1B8 @ =0x0231AB80 + add r2, sp, #0 + mov r0, r4 + bl ov00_022F9110 + mov r0, r5 + bl ov00_022FC214 + mov r2, r0 + ldr r1, _022FE1BC @ =0x0231AB90 + mov r0, r4 + bl ov00_022F9110 +_022FE0A4: + ldr r1, [r5, #0x2c] + cmp r1, #0 + beq _022FE0BC + mov r0, r4 + mov r2, #0 + bl ov00_022F8E9C +_022FE0BC: + ldr r1, _022FE19C @ =0x0231AB3C + mov r0, r4 + mov r2, #2 + bl ov00_022F8E9C + ldr r0, [r5, #0x194] + cmp r0, #0 + beq _022FE110 + ldr r1, [r4, #4] + ldr r2, [r4, #0xc] + add r0, r5, #0x54 + bl ov00_022F8F9C + cmp r0, #0 + bne _022FE108 + mov r0, #1 + str r0, [r5, #0x120] + mov r0, #0x11 + add sp, sp, #0x10 + str r0, [r5, #0x3c] + pop {r3, r4, r5, pc} +_022FE108: + mov r0, r4 + bl ov00_022F9284 +_022FE110: + mov r0, r5 + bl ov00_022F92A4 + cmp r0, #0 + addeq sp, sp, #0x10 + popeq {r3, r4, r5, pc} + ldr r1, [r5, #0x64] + ldr r0, [r5, #0x60] + cmp r1, r0 + addlt sp, sp, #0x10 + poplt {r3, r4, r5, pc} + add r0, r5, #0x54 + bl ov00_022F9284 + ldr r0, [r5, #0x160] + cmp r0, #0 + beq _022FE160 + ldr r0, [r5, #0x180] + cmp r0, #0 + moveq r0, #6 + streq r0, [r5, #0x10] + beq _022FE168 +_022FE160: + mov r0, #7 + str r0, [r5, #0x10] +_022FE168: + mov r1, #0 + mov r0, r5 + mov r2, r1 + bl ov00_022F943C + add sp, sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_022FE180: .4byte 0x0231AB08 +_022FE184: .4byte 0x0231AB10 +_022FE188: .4byte 0x0231AB18 +_022FE18C: .4byte 0x023289AC +_022FE190: .4byte 0x0231AB20 +_022FE194: .4byte 0x0231AB2C +_022FE198: .4byte 0x0231AB34 +_022FE19C: .4byte 0x0231AB3C +_022FE1A0: .4byte 0x0231AB40 +_022FE1A4: .4byte 0x0231AB4C +_022FE1A8: .4byte 0x0231AB5C +_022FE1AC: .4byte 0x0231AB68 +_022FE1B0: .4byte 0x0231AB74 +_022FE1B4: .4byte 0x0231AB7C +_022FE1B8: .4byte 0x0231AB80 +_022FE1BC: .4byte 0x0231AB90 + arm_func_end ov00_022FDEE8 + + arm_func_start ov00_022FE1C0 +ov00_022FE1C0: @ 0x022FE1C0 + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + mov r4, r0 + ldr r6, [r4, #0x16c] + bl ov00_022FD5A0 + movs r5, r0 + bne _022FE23C + mov r1, #0 + mov r0, r4 + str r1, [sp] + bl ov00_022FC85C + mov r2, #0 + ldr r0, [r4, #0x4c] + add r1, sp, #0 + mov r3, r2 + bl ov00_022F51A4 + cmp r0, #1 + addne sp, sp, #4 + popne {r3, r4, r5, r6, pc} + ldr r0, [sp] + cmp r0, #0 + addeq sp, sp, #4 + popeq {r3, r4, r5, r6, pc} + mov r1, #0 + mov r3, #8 + mov r0, r4 + mov r2, r1 + str r3, [r4, #0x10] + bl ov00_022F943C + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} +_022FE23C: + cmp r5, #3 + moveq r0, #0 + addeq sp, sp, #4 + streq r0, [r4, #0x17c] + popeq {r3, r4, r5, r6, pc} + ldr r0, [r4, #0x16c] + cmp r6, r0 + beq _022FE264 + mov r0, r4 + bl ov00_022F948C +_022FE264: + cmp r5, #1 + addne sp, sp, #4 + popne {r3, r4, r5, r6, pc} + mov r0, r4 + bl ov00_022FC85C + mov r3, #1 + mov r1, #0 + str r3, [r4, #0x180] + mov r3, #7 + mov r0, r4 + mov r2, r1 + str r3, [r4, #0x10] + bl ov00_022F943C + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_022FE1C0 + + arm_func_start ov00_022FE2A0 +ov00_022FE2A0: @ 0x022FE2A0 + push {r4, lr} + sub sp, sp, #8 + mov r4, r0 + ldr r0, [r4, #0x4c] + add r1, sp, #4 + add r3, sp, #0 + mov r2, #0 + bl ov00_022F51A4 + mvn r1, #0 + cmp r0, r1 + beq _022FE2E0 + cmp r0, #1 + bne _022FE314 + ldr r1, [sp] + cmp r1, #0 + beq _022FE314 +_022FE2E0: + mov r1, #1 + mov r2, #5 + str r1, [r4, #0x120] + sub r1, r2, #6 + cmp r0, r1 + str r2, [r4, #0x3c] + movne r0, #0 + bne _022FE308 + ldr r0, [r4, #0x4c] + bl ov00_022F5194 +_022FE308: + add sp, sp, #8 + str r0, [r4, #0x50] + pop {r4, pc} +_022FE314: + cmp r0, #1 + addne sp, sp, #8 + popne {r4, pc} + ldr r0, [sp, #4] + cmp r0, #0 + addeq sp, sp, #8 + popeq {r4, pc} + mov r1, #0 + mov r3, #8 + mov r0, r4 + mov r2, r1 + str r3, [r4, #0x10] + bl ov00_022F943C + add sp, sp, #8 + pop {r4, pc} + arm_func_end ov00_022FE2A0 + + arm_func_start ov00_022FE350 +ov00_022FE350: @ 0x022FE350 + push {r4, r5, r6, lr} + sub sp, sp, #0x18 + add r2, sp, #0xc + str r2, [sp] + add r1, sp, #8 + str r1, [sp, #4] + mov r4, r0 + ldr r0, [r4, #0xa0] + ldr r1, _022FE444 @ =0x0231ABA0 + add r2, sp, #0x14 + add r3, sp, #0x10 + bl FUN_02085338 + cmp r0, #3 + bne _022FE3A4 + ldr r6, [sp, #0x14] + cmp r6, #1 + ldrge r0, [sp, #0xc] + cmpge r0, #0x64 + blt _022FE3A4 + cmp r0, #0x258 + blt _022FE3C0 +_022FE3A4: + mov r0, #1 + str r0, [r4, #0x120] + mov r0, #7 + str r0, [r4, #0x3c] + add sp, sp, #0x18 + mov r0, #0 + pop {r4, r5, r6, pc} +_022FE3C0: + mov r3, #0 + ldr lr, [sp, #8] + mov ip, #1 + ldr r1, _022FE448 @ =0x020AEDB0 + mov r2, r3 + b _022FE3E0 +_022FE3D8: + add lr, lr, #1 + str lr, [sp, #8] +_022FE3E0: + ldr r0, [r4, #0xa0] + ldrsb r0, [r0, lr] + cmp r0, #0 + beq _022FE41C + mov r5, ip + blt _022FE400 + cmp r0, #0x80 + movlt r5, r3 +_022FE400: + cmp r5, #0 + movne r0, r2 + lsleq r0, r0, #1 + ldrheq r0, [r1, r0] + andeq r0, r0, #0x100 + cmp r0, #0 + bne _022FE3D8 +_022FE41C: + str r6, [r4, #0x10c] + ldr r1, [sp, #0x10] + mov r0, #1 + str r1, [r4, #0x110] + ldr r1, [sp, #0xc] + str r1, [r4, #0x114] + ldr r1, [sp, #8] + str r1, [r4, #0x118] + add sp, sp, #0x18 + pop {r4, r5, r6, pc} + .align 2, 0 +_022FE444: .4byte 0x0231ABA0 +_022FE448: .4byte 0x020AEDB0 + arm_func_end ov00_022FE350 + + arm_func_start ov00_022FE44C +ov00_022FE44C: @ 0x022FE44C + push {r4, r5, lr} + sub sp, sp, #4 + sub sp, sp, #0x400 + mov r3, #0x400 + add r1, sp, #4 + add r2, sp, #0 + mov r4, r0 + str r3, [sp] + bl ov00_022F962C + mov r5, r0 + cmp r5, #3 + cmpne r5, #1 + addeq sp, sp, #4 + addeq sp, sp, #0x400 + popeq {r4, r5, pc} + cmp r5, #0 + bne _022FE504 + ldr r0, [r4, #0x194] + add r1, sp, #4 + cmp r0, #0 + beq _022FE4E8 + ldr r2, [sp] + add r0, r4, #0xc0 + bl ov00_022F8E9C + cmp r0, #0 + addeq sp, sp, #4 + addeq sp, sp, #0x400 + popeq {r4, r5, pc} + mov r0, r4 + bl ov00_022F94EC + cmp r0, #0 + bne _022FE504 + mov r0, #1 + add sp, sp, #4 + str r0, [r4, #0x120] + mov r0, #0x11 + add sp, sp, #0x400 + str r0, [r4, #0x3c] + pop {r4, r5, pc} +_022FE4E8: + ldr r2, [sp] + add r0, r4, #0x9c + bl ov00_022F8E9C + cmp r0, #0 + addeq sp, sp, #4 + addeq sp, sp, #0x400 + popeq {r4, r5, pc} +_022FE504: + ldr r0, [r4, #0xa0] + ldr r1, _022FE5F0 @ =0x0231AB3C + bl FUN_02089A70 + cmp r0, #0 + beq _022FE5B8 + mov r1, #0 + strb r1, [r0] + ldr r1, [r4, #0xa0] + sub r5, r0, r1 + mov r0, r4 + bl ov00_022FE350 + cmp r0, #0 + addeq sp, sp, #4 + addeq sp, sp, #0x400 + popeq {r4, r5, pc} + add r0, r5, #2 + str r0, [r4, #0x11c] + ldr r0, [r4, #0x114] + cmp r0, #0x64 + bne _022FE594 + ldr r0, [r4, #0x17c] + cmp r0, #0 + beq _022FE594 + mov r1, #0 + add r0, r4, #0x9c + str r1, [r4, #0x17c] + bl ov00_022F9284 + mov r1, #0 + mov r3, #6 + mov r0, r4 + mov r2, r1 + str r3, [r4, #0x10] + bl ov00_022F943C + add sp, sp, #4 + add sp, sp, #0x400 + pop {r4, r5, pc} +_022FE594: + mov r1, #0 + mov r3, #9 + mov r0, r4 + mov r2, r1 + str r3, [r4, #0x10] + bl ov00_022F943C + add sp, sp, #4 + add sp, sp, #0x400 + pop {r4, r5, pc} +_022FE5B8: + cmp r5, #2 + addne sp, sp, #4 + addne sp, sp, #0x400 + popne {r4, r5, pc} + mov r0, #1 + str r0, [r4, #0x120] + mov r0, #7 + str r0, [r4, #0x3c] + ldr r0, [r4, #0x4c] + bl ov00_022F5194 + str r0, [r4, #0x50] + add sp, sp, #4 + add sp, sp, #0x400 + pop {r4, r5, pc} + .align 2, 0 +_022FE5F0: .4byte 0x0231AB3C + arm_func_end ov00_022FE44C + + arm_func_start ov00_022FE5F4 +ov00_022FE5F4: @ 0x022FE5F4 + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #0x124] + mov ip, #0 + add r3, r0, r2 + str r3, [r4, #0x124] + ldr r0, [r4, #0x128] + mov lr, ip + cmp r3, r0 + beq _022FE628 + ldr r0, [r4, #0x154] + cmp r0, #0 + beq _022FE630 +_022FE628: + mov r0, #1 + str r0, [r4, #0x120] +_022FE630: + ldr r0, [r4, #0xc] + cmp r0, #0 + bne _022FE65C + add r0, r4, #0xe4 + bl ov00_022F8E9C + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} + ldr ip, [r4, #0xe8] + ldr lr, [r4, #0xf0] + b _022FE69C +_022FE65C: + cmp r0, #1 + bne _022FE690 + cmp r2, #0 + beq _022FE684 + mov r0, #1 + str r0, [r4, #0x120] + mov r0, #0xd + str r0, [r4, #0x3c] + mov r0, #0 + pop {r4, pc} +_022FE684: + mov ip, r1 + mov lr, r2 + b _022FE69C +_022FE690: + cmp r0, #2 + moveq ip, r1 + moveq lr, r2 +_022FE69C: + mov r0, r4 + mov r1, ip + mov r2, lr + bl ov00_022F943C + mov r0, #1 + pop {r4, pc} + arm_func_end ov00_022FE5F4 + + arm_func_start ov00_022FE6B4 +ov00_022FE6B4: @ 0x022FE6B4 + push {r3, lr} + ldr r1, _022FE6D8 @ =0x0231ABB0 + add r2, sp, #0 + add r0, r0, #0x138 + bl FUN_02085338 + cmp r0, #1 + mvnne r0, #0 + ldreq r0, [sp] + pop {r3, pc} + .align 2, 0 +_022FE6D8: .4byte 0x0231ABB0 + arm_func_end ov00_022FE6B4 + + arm_func_start ov00_022FE6DC +ov00_022FE6DC: @ 0x022FE6DC + push {r3, r4, r5, lr} + mov r5, r0 + cmp r2, #0 + popeq {r3, r4, r5, pc} + ldr r3, [r5, #0x144] + cmp r3, #0xa + popge {r3, r4, r5, pc} + rsb r4, r3, #0xa + cmp r4, r2 + movge r4, r2 + add r0, r5, #0x138 + mov r2, r4 + add r0, r0, r3 + bl FUN_0208729C + ldr r0, [r5, #0x144] + mov r1, #0 + add r0, r0, r4 + str r0, [r5, #0x144] + add r0, r5, r0 + strb r1, [r0, #0x138] + pop {r3, r4, r5, pc} + arm_func_end ov00_022FE6DC + + arm_func_start ov00_022FE730 +ov00_022FE730: @ 0x022FE730 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov r6, r0 + ldr r3, [r6, #0x134] + mov r5, r1 + mov r4, r2 + cmp r3, #0 + beq _022FE8B0 + cmp r4, #0 + ble _022FE8A8 + mov r8, #0 + mov fp, #1 + mov sb, #3 + mvn r7, #0 +_022FE764: + ldr r0, [r6, #0x14c] + cmp r0, #0 + bne _022FE7F8 + mov r0, r5 + mov r1, #0xa + bl FUN_02089974 + movs sl, r0 + beq _022FE7E0 + mov r0, r6 + mov r1, r5 + sub r2, sl, r5 + bl ov00_022FE6DC + add r1, sl, #1 + sub r2, r1, r5 + mov r0, r6 + sub r4, r4, r2 + mov r5, r1 + bl ov00_022FE6B4 + str r0, [r6, #0x148] + cmp r0, r7 + bne _022FE7D0 + mov r0, #1 + str r0, [r6, #0x120] + mov r0, #7 + str r0, [r6, #0x3c] + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022FE7D0: + cmp r0, #0 + streq sb, [r6, #0x14c] + strne fp, [r6, #0x14c] + b _022FE8A0 +_022FE7E0: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov00_022FE6DC + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022FE7F8: + cmp r0, #1 + bne _022FE848 + ldr sl, [r6, #0x148] + mov r0, r6 + cmp sl, r4 + movge sl, r4 + mov r1, r5 + mov r2, sl + bl ov00_022FE5F4 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r6, #0x148] + add r5, r5, sl + subs r0, r0, sl + str r0, [r6, #0x148] + moveq r0, #2 + sub r4, r4, sl + streq r0, [r6, #0x14c] + b _022FE8A0 +_022FE848: + cmp r0, #2 + bne _022FE88C + mov r0, r5 + mov r1, #0xa + bl FUN_02089974 + cmp r0, #0 + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + strb r8, [r6, #0x138] + str r8, [r6, #0x144] + add r0, r0, #1 + sub r1, r0, r5 + str r8, [r6, #0x148] + mov r5, r0 + str r8, [r6, #0x14c] + sub r4, r4, r1 + b _022FE8A0 +_022FE88C: + cmp r0, #3 + moveq r0, #1 + streq r0, [r6, #0x120] + movne r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022FE8A0: + cmp r4, #0 + bgt _022FE764 +_022FE8A8: + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022FE8B0: + bl ov00_022FE5F4 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_022FE730 + + arm_func_start ov00_022FE8B8 +ov00_022FE8B8: @ 0x022FE8B8 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x18 + mov sl, r0 + mov r0, #0x1000 + mov r7, #1 + bl ov00_022F5AE4 + str r0, [sp, #4] + cmp r0, #0 + bne _022FE8F0 + mov r0, r7 + str r0, [sl, #0x120] + add sp, sp, #0x18 + str r0, [sl, #0x3c] + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022FE8F0: + ldr r1, [sp, #4] + mov r3, #0x1000 + add r2, sp, #8 + mov r0, sl + str r3, [sp, #8] + bl ov00_022F962C + mov r6, r0 + cmp r6, #3 + cmpne r6, #1 + beq _022FEDA0 + cmp r6, #0 + bne _022FE980 + ldr r0, [sl, #0x194] + cmp r0, #0 + beq _022FE968 + ldr r2, [sp, #8] + ldr r1, [sp, #4] + add r0, sl, #0xc0 + bl ov00_022F8E9C + cmp r0, #0 + beq _022FEDA0 + mov r0, sl + bl ov00_022F94EC + cmp r0, #0 + bne _022FE980 + mov r0, r7 + str r0, [sl, #0x120] + mov r0, #0x11 + str r0, [sl, #0x3c] + b _022FEDA0 +_022FE968: + ldr r2, [sp, #8] + ldr r1, [sp, #4] + add r0, sl, #0x9c + bl ov00_022F8E9C + cmp r0, #0 + beq _022FEDA0 +_022FE980: + ldr r1, [sl, #0x114] + ldr r2, _022FEDB0 @ =0x51EB851F + lsr r0, r1, #0x1f + smull r1, r3, r2, r1 + add r3, r0, r3, asr #5 + cmp r3, #1 + ldr r5, [sl, #0xa0] + ldr r4, [sl, #0x11c] + bne _022FE9E0 + ldr r1, _022FEDB4 @ =0x0231AB3C + add r0, r5, r4 + mov r2, #2 + bl FUN_02089940 + cmp r0, #0 + beq _022FE9D4 + ldr r1, _022FEDB8 @ =0x0231ABB4 + add r0, r5, r4 + mov r2, #2 + bl FUN_02089940 + cmp r0, #0 + bne _022FE9E0 +_022FE9D4: + add r0, r5, r4 + mov r7, #0 + b _022FE9EC +_022FE9E0: + ldr r1, _022FEDBC @ =0x0231ABB8 + add r0, r5, r4 + bl FUN_02089A70 +_022FE9EC: + cmp r0, #0 + bne _022FEA00 + ldr r1, _022FEDB8 @ =0x0231ABB4 + add r0, r5, r4 + bl FUN_02089A70 +_022FEA00: + cmp r0, #0 + beq _022FED7C + cmp r7, #1 + addeq r0, r0, #2 + mov r1, #0 + strb r1, [r0] + ldr r1, [sl, #0xa0] + add r6, r0, #2 + sub r0, r0, r1 + ldr r7, [sl, #0xa8] + add r0, r0, #1 + str r0, [sl, #0xa8] + str r0, [sl, #0xac] + ldr r2, [sl, #0x114] + sub r1, r6, r1 + ldr r3, _022FEDB0 @ =0x51EB851F + lsr r0, r2, #0x1f + smull r2, r8, r3, r2 + add r8, r0, r8, asr #5 + cmp r8, #1 + sub r7, r7, r1 + bne _022FEAC4 + cmp r7, #0 + beq _022FEA78 + ldr r0, [sl, #0xa0] + mov r1, r6 + add r2, r7, #1 + bl FUN_020872BC + str r7, [sl, #0xa8] + b _022FEA80 +_022FEA78: + add r0, sl, #0x9c + bl ov00_022F9284 +_022FEA80: + ldr r0, [sl, #0x17c] + cmp r0, #0 + beq _022FEAA8 + mov r1, #0 + mov r0, sl + mov r2, r1 + str r1, [sl, #0x17c] + mov r3, #6 + str r3, [sl, #0x10] + bl ov00_022F943C +_022FEAA8: + mov r1, #0 + mov r3, #8 + mov r0, sl + mov r2, r1 + str r3, [sl, #0x10] + bl ov00_022F943C + b _022FEDA0 +_022FEAC4: + cmp r8, #3 + bne _022FEC14 + ldr r0, [sl, #0x130] + cmp r0, #0xa + ble _022FEAEC + mov r0, #1 + str r0, [sl, #0x120] + mov r0, #0xb + str r0, [sl, #0x3c] + b _022FEDA0 +_022FEAEC: + ldr r1, _022FEDC0 @ =0x0231ABC0 + add r0, r5, r4 + bl FUN_02089A70 + cmp r0, #0 + beq _022FEC14 + add r4, r0, #9 + ldr r1, _022FEDC4 @ =0x020AEDB0 + mov r2, #0 + b _022FEB14 +_022FEB10: + add r4, r4, #1 +_022FEB14: + ldrsb r0, [r4] + cmp r0, #0 + blt _022FEB28 + cmp r0, #0x80 + blt _022FEB30 +_022FEB28: + mov r0, r2 + b _022FEB3C +_022FEB30: + lsl r0, r0, #1 + ldrh r0, [r1, r0] + and r0, r0, #0x100 +_022FEB3C: + cmp r0, #0 + bne _022FEB10 + mov r3, r4 + ldr r1, _022FEDC4 @ =0x020AEDB0 + mov r2, #0 + b _022FEB58 +_022FEB54: + add r3, r3, #1 +_022FEB58: + ldrsb r0, [r3] + cmp r0, #0 + beq _022FEB8C + blt _022FEB70 + cmp r0, #0x80 + blt _022FEB78 +_022FEB70: + mov r0, r2 + b _022FEB84 +_022FEB78: + lsl r0, r0, #1 + ldrh r0, [r1, r0] + and r0, r0, #0x100 +_022FEB84: + cmp r0, #0 + beq _022FEB54 +_022FEB8C: + mov r0, #0 + strb r0, [r3] + ldrsb r0, [r4] + cmp r0, #0x2f + bne _022FEBF0 + ldr r0, [sl, #0x18] + bl FUN_02089678 + mov r5, r0 + mov r0, r4 + bl FUN_02089678 + add r1, r5, #0xe + add r0, r1, r0 + bl ov00_022F5AE4 + str r0, [sl, #0x12c] + cmp r0, #0 + moveq r0, #1 + streq r0, [sl, #0x120] + streq r0, [sl, #0x3c] + str r4, [sp] + ldrh r3, [sl, #0x20] + ldr r0, [sl, #0x12c] + ldr r2, [sl, #0x18] + ldr r1, _022FEDC8 @ =0x0231ABCC + bl FUN_020790DC + b _022FEDA0 +_022FEBF0: + mov r0, r4 + bl ov00_022F5514 + str r0, [sl, #0x12c] + cmp r0, #0 + bne _022FEDA0 + mov r0, #1 + str r0, [sl, #0x120] + str r0, [sl, #0x3c] + b _022FEDA0 +_022FEC14: + ldr r1, _022FEDCC @ =0x0231ABDC + add r0, r5, r4 + bl FUN_02089A70 + movs fp, r0 + beq _022FECEC + ldr r8, _022FEDD0 @ =0x023184AC + add r1, sp, #0xc + mov r3, #5 +_022FEC34: + ldrb r2, [r8] + ldrb r0, [r8, #1] + add r8, r8, #2 + strb r2, [r1] + strb r0, [r1, #1] + add r1, r1, #2 + subs r3, r3, #1 + bne _022FEC34 + ldrb r2, [r8] + add r8, fp, #0x10 + add r0, sp, #0xc + mov sb, r8 + strb r2, [r1] + bl FUN_02089678 + b _022FEC74 +_022FEC70: + add sb, sb, #1 +_022FEC74: + cmp sb, #0 + ldrsbne r1, [sb] + cmpne r1, #0 + cmpne r1, #0xa + cmpne r1, #0xd + cmpne r1, #0x20 + bne _022FEC70 + sub r2, sb, r8 + cmp r2, r0 + ble _022FECB0 + mov r0, #1 + str r0, [sl, #0x120] + mov r0, #0x10 + str r0, [sl, #0x3c] + b _022FEDA0 +_022FECB0: + cmp r0, r2 + bne _022FECE0 + add r1, sp, #0xc + mov r0, r8 + bl FUN_02089940 + cmp r0, #0 + blt _022FECE0 + mov r0, #1 + str r0, [sl, #0x120] + mov r0, #0x10 + str r0, [sl, #0x3c] + b _022FEDA0 +_022FECE0: + mov r0, r8 + bl FUN_0208B360 + str r0, [sl, #0x128] +_022FECEC: + ldr r1, _022FEDD4 @ =0x0231ABEC + add r0, r5, r4 + bl FUN_02089A70 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + str r0, [sl, #0x134] + cmp r0, #0 + beq _022FED24 + mov r0, #0 + strb r0, [sl, #0x138] + str r0, [sl, #0x144] + str r0, [sl, #0x148] + str r0, [sl, #0x14c] +_022FED24: + ldr r0, [sl, #0xc] + sub r0, r0, #3 + cmp r0, #1 + movls r0, #1 + strls r0, [sl, #0x120] + bls _022FEDA0 + mov r0, #0xa + str r0, [sl, #0x10] + cmp fp, #0 + beq _022FED60 + ldr r0, [sl, #0x128] + cmp r0, #0 + moveq r0, #1 + streq r0, [sl, #0x120] + beq _022FEDA0 +_022FED60: + cmp r7, #0 + ble _022FEDA0 + mov r0, sl + mov r1, r6 + mov r2, r7 + bl ov00_022FE730 + b _022FEDA0 +_022FED7C: + cmp r6, #2 + bne _022FEDA0 + mov r0, #1 + str r0, [sl, #0x120] + mov r0, #7 + str r0, [sl, #0x3c] + ldr r0, [sl, #0x4c] + bl ov00_022F5194 + str r0, [sl, #0x50] +_022FEDA0: + ldr r0, [sp, #4] + bl ov00_022F5B14 + add sp, sp, #0x18 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022FEDB0: .4byte 0x51EB851F +_022FEDB4: .4byte 0x0231AB3C +_022FEDB8: .4byte 0x0231ABB4 +_022FEDBC: .4byte 0x0231ABB8 +_022FEDC0: .4byte 0x0231ABC0 +_022FEDC4: .4byte 0x020AEDB0 +_022FEDC8: .4byte 0x0231ABCC +_022FEDCC: .4byte 0x0231ABDC +_022FEDD0: .4byte 0x023184AC +_022FEDD4: .4byte 0x0231ABEC + arm_func_end ov00_022FE8B8 + + arm_func_start ov00_022FEDD8 +ov00_022FEDD8: @ 0x022FEDD8 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov sb, r0 + bl ov00_022F5594 + mov r7, r0 + mov r0, #0x2000 + mov r8, #0 + bl ov00_022F5AE4 + movs r6, r0 + bne _022FEE0C + mov r0, #1 + str r0, [sb, #0x120] + str r0, [sb, #0x3c] + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_022FEE0C: + mov r5, #0x2000 + add r4, sp, #0 + b _022FEF04 +_022FEE18: + mov r0, sb + mov r1, r6 + mov r2, r4 + str r5, [sp] + bl ov00_022F962C + cmp r0, #3 + cmpne r0, #1 + beq _022FEF1C + cmp r0, #2 + bne _022FEE68 + mov r0, #1 + str r0, [sb, #0x120] + ldr r1, [sb, #0x128] + cmp r1, #0 + ble _022FEF1C + ldr r0, [sb, #0x124] + cmp r0, r1 + movlt r0, #0xf + strlt r0, [sb, #0x3c] + b _022FEF1C +_022FEE68: + ldr r0, [sb, #0x194] + cmp r0, #0 + beq _022FEEE4 + ldr r2, [sp] + mov r1, r6 + add r0, sb, #0xc0 + bl ov00_022F8E9C + cmp r0, #0 + beq _022FEF1C + ldr r1, [sb, #0xac] + mov r0, sb + str r1, [sb, #0xa8] + bl ov00_022F94EC + cmp r0, #0 + bne _022FEEB8 + mov r0, #1 + str r0, [sb, #0x120] + mov r0, #0x11 + str r0, [sb, #0x3c] + b _022FEF1C +_022FEEB8: + ldr r3, [sb, #0xac] + ldr r0, [sb, #0xa8] + subs r2, r0, r3 + beq _022FEEFC + ldr r1, [sb, #0xa0] + mov r0, sb + add r1, r1, r3 + bl ov00_022FE730 + cmp r0, #0 + beq _022FEF1C + b _022FEEFC +_022FEEE4: + ldr r2, [sp] + mov r0, sb + mov r1, r6 + bl ov00_022FE730 + cmp r0, #0 + beq _022FEF1C +_022FEEFC: + bl ov00_022F5594 + sub r8, r0, r7 +_022FEF04: + ldr r0, [sb, #0x120] + cmp r0, #0 + bne _022FEF1C + ldr r0, [sb, #0x184] + cmp r8, r0 + blo _022FEE18 +_022FEF1C: + mov r0, r6 + bl ov00_022F5B14 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_022FEDD8 + + arm_func_start ov00_022FEF28 +ov00_022FEF28: @ 0x022FEF28 + push {r3, lr} + ldr ip, _022FEF54 @ =0x02328800 + ldr ip, [ip] + cmp ip, #1 + movne r0, #2 + popne {r3, pc} + cmp r0, #0 + moveq r0, #2 + popeq {r3, pc} + bl ov00_022FFC5C + pop {r3, pc} + .align 2, 0 +_022FEF54: .4byte 0x02328800 + arm_func_end ov00_022FEF28 + + arm_func_start ov00_022FEF58 +ov00_022FEF58: @ 0x022FEF58 + push {r3, lr} + cmp r0, #0 + ldrne r1, [r0] + cmpne r1, #0 + popeq {r3, pc} + bl ov00_022FFD88 + pop {r3, pc} + arm_func_end ov00_022FEF58 + + arm_func_start ov00_022FEF74 +ov00_022FEF74: @ 0x022FEF74 + push {r3, lr} + cmp r0, #0 + ldrne r1, [r0] + cmpne r1, #0 + moveq r0, #2 + popeq {r3, pc} + ldr r1, [r1, #0x108] + cmp r1, #0 + movne r0, #0 + popne {r3, pc} + mov r1, #0 + bl ov00_023003B4 + pop {r3, pc} + arm_func_end ov00_022FEF74 + + arm_func_start ov00_022FEFA8 +ov00_022FEFA8: @ 0x022FEFA8 + push {r3, lr} + cmp r0, #0 + ldrne ip, [r0] + cmpne ip, #0 + moveq r0, #2 + popeq {r3, pc} + cmp r1, #0 + blt _022FEFD0 + cmp r1, #9 + blt _022FEFE0 +_022FEFD0: + ldr r1, _022FEFF4 @ =0x0231AC08 + bl ov00_0230BCCC + mov r0, #2 + pop {r3, pc} +_022FEFE0: + add r0, ip, r1, lsl #3 + str r2, [r0, #0x1a8] + str r3, [r0, #0x1ac] + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_022FEFF4: .4byte 0x0231AC08 + arm_func_end ov00_022FEFA8 + + arm_func_start ov00_022FEFF8 +ov00_022FEFF8: @ 0x022FEFF8 + push {r3, r4, lr} + sub sp, sp, #0x44 + movs lr, r0 + ldrne ip, [lr] + cmpne ip, #0 + addeq sp, sp, #0x44 + moveq r0, #2 + popeq {r3, r4, pc} + cmp r1, #0 + ldrsbne r4, [r1] + cmpne r4, #0 + addeq sp, sp, #0x44 + moveq r0, #2 + popeq {r3, r4, pc} + cmp r2, #0 + ldrsbne r4, [r2] + cmpne r4, #0 + addeq sp, sp, #0x44 + moveq r0, #2 + popeq {r3, r4, pc} + ldr r4, [sp, #0x54] + cmp r4, #0 + bne _022FF068 + ldr r1, _022FF0F4 @ =0x0231AC18 + bl ov00_0230BCCC + add sp, sp, #0x44 + mov r0, #2 + pop {r3, r4, pc} +_022FF068: + ldr ip, [ip, #0x108] + cmp ip, #0 + beq _022FF0B0 + add r3, sp, #0x24 + mov r0, #0 + mov r2, r3 + mov r1, r0 + stm r2!, {r0, r1} + stm r2!, {r0, r1} + stm r2!, {r0, r1} + stm r2, {r0, r1} + ldr r2, [sp, #0x58] + mov r0, lr + mov r1, r3 + blx r4 + add sp, sp, #0x44 + mov r0, #0 + pop {r3, r4, pc} +_022FF0B0: + ldr lr, _022FF0F8 @ =0x0231AC28 + mov ip, #0 + str lr, [sp] + stmib sp, {r1, r2, ip} + str r3, [sp, #0x10] + str ip, [sp, #0x14] + ldr r1, [sp, #0x50] + ldr ip, [sp, #0x58] + str r1, [sp, #0x18] + str r4, [sp, #0x1c] + mov r1, lr + mov r2, lr + mov r3, lr + str ip, [sp, #0x20] + bl ov00_02303664 + add sp, sp, #0x44 + pop {r3, r4, pc} + .align 2, 0 +_022FF0F4: .4byte 0x0231AC18 +_022FF0F8: .4byte 0x0231AC28 + arm_func_end ov00_022FEFF8 + + arm_func_start ov00_022FF0FC +ov00_022FF0FC: @ 0x022FF0FC + push {r4, lr} + movs r4, r0 + ldrne r1, [r4] + cmpne r1, #0 + popeq {r4, pc} + ldr r1, [r1, #0x108] + cmp r1, #0 + popne {r4, pc} + mov r1, #1 + bl ov00_02304798 + mov r0, r4 + bl ov00_022FFE10 + pop {r4, pc} + arm_func_end ov00_022FF0FC + + arm_func_start ov00_022FF130 +ov00_022FF130: @ 0x022FF130 + push {r3, r4, lr} + sub sp, sp, #0x2c + cmp r0, #0 + ldrne r4, [r0] + cmpne r4, #0 + addeq sp, sp, #0x2c + moveq r0, #2 + popeq {r3, r4, pc} + ldr ip, [sp, #0x48] + cmp ip, #0 + bne _022FF170 + ldr r1, _022FF1F0 @ =0x0231AC18 + bl ov00_0230BCCC + add sp, sp, #0x2c + mov r0, #2 + pop {r3, r4, pc} +_022FF170: + ldr r4, [r4, #0x108] + cmp r4, #0 + beq _022FF1B0 + add r1, sp, #0x1c + mov r4, #0 + ldr r2, [sp, #0x4c] + ldr r3, _022FF1F4 @ =0x00000601 + str r4, [r1, #8] + str r4, [r1] + str r4, [r1, #4] + str r4, [r1, #0xc] + str r3, [sp, #0x24] + blx ip + add sp, sp, #0x2c + mov r0, r4 + pop {r3, r4, pc} +_022FF1B0: + ldr r4, [sp, #0x38] + ldr lr, [sp, #0x3c] + str r4, [sp] + ldr r4, [sp, #0x40] + str lr, [sp, #4] + str r4, [sp, #8] + mov r4, #0 + ldr lr, [sp, #0x44] + str r4, [sp, #0xc] + str lr, [sp, #0x10] + ldr lr, [sp, #0x4c] + str ip, [sp, #0x14] + str lr, [sp, #0x18] + bl ov00_0230915C + add sp, sp, #0x2c + pop {r3, r4, pc} + .align 2, 0 +_022FF1F0: .4byte 0x0231AC18 +_022FF1F4: .4byte 0x00000601 + arm_func_end ov00_022FF130 + + arm_func_start ov00_022FF1F8 +ov00_022FF1F8: @ 0x022FF1F8 + push {r4, r5, lr} + sub sp, sp, #0x20c + movs r5, r0 + ldrne r4, [r5] + cmpne r4, #0 + cmpne r1, #0 + addeq sp, sp, #0x20c + moveq r0, #2 + popeq {r4, r5, pc} + ldr lr, [sp, #0x218] + cmp lr, #0 + bne _022FF23C + ldr r1, _022FF2CC @ =0x0231AC18 + bl ov00_0230BCCC + add sp, sp, #0x20c + mov r0, #2 + pop {r4, r5, pc} +_022FF23C: + ldr ip, [r4, #0x108] + cmp ip, #0 + beq _022FF294 + mov r0, #0 + add lr, sp, #8 + mov r1, r0 + mov r2, r0 + mov r3, r0 + mov ip, #0x10 +_022FF260: + stm lr!, {r0, r1, r2, r3} + stm lr!, {r0, r1, r2, r3} + subs ip, ip, #1 + bne _022FF260 + ldr r2, [sp, #0x21c] + str r0, [lr] + ldr r3, [sp, #0x218] + add r1, sp, #8 + mov r0, r5 + blx r3 + add sp, sp, #0x20c + mov r0, #0 + pop {r4, r5, pc} +_022FF294: + ldr ip, [r4, #0x1f4] + cmp ip, #4 + bne _022FF2B4 + ldr r1, _022FF2D0 @ =0x0231AC2C + bl ov00_0230BCCC + add sp, sp, #0x20c + mov r0, #2 + pop {r4, r5, pc} +_022FF2B4: + ldr ip, [sp, #0x21c] + str lr, [sp] + str ip, [sp, #4] + bl ov00_023063A4 + add sp, sp, #0x20c + pop {r4, r5, pc} + .align 2, 0 +_022FF2CC: .4byte 0x0231AC18 +_022FF2D0: .4byte 0x0231AC2C + arm_func_end ov00_022FF1F8 + + arm_func_start ov00_022FF2D4 +ov00_022FF2D4: @ 0x022FF2D4 + push {r3, lr} + cmp r0, #0 + ldrne ip, [r0] + cmpne ip, #0 + moveq r0, #2 + popeq {r3, pc} + ldr r3, [ip, #0x108] + cmp r3, #0 + movne r0, #0 + popne {r3, pc} + ldr r3, [ip, #0x1f4] + cmp r3, #4 + bne _022FF318 + ldr r1, _022FF320 @ =0x0231AC2C + bl ov00_0230BCCC + mov r0, #2 + pop {r3, pc} +_022FF318: + bl ov00_02305B24 + pop {r3, pc} + .align 2, 0 +_022FF320: .4byte 0x0231AC2C + arm_func_end ov00_022FF2D4 + + arm_func_start ov00_022FF324 +ov00_022FF324: @ 0x022FF324 + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + sub sp, sp, #0x400 + movs r6, r0 + ldrne r4, [r6] + mov r5, r1 + cmpne r4, #0 + addeq sp, sp, #4 + addeq sp, sp, #0x400 + moveq r0, #2 + popeq {r3, r4, r5, r6, pc} + ldr r1, [r4, #0x108] + cmp r1, #0 + addne sp, sp, #4 + addne sp, sp, #0x400 + movne r0, #0 + popne {r3, r4, r5, r6, pc} + ldr r1, [r4, #0x1f4] + cmp r1, #4 + bne _022FF38C + ldr r1, _022FF478 @ =0x0231AC2C + bl ov00_0230BCCC + add sp, sp, #4 + add sp, sp, #0x400 + mov r0, #2 + pop {r3, r4, r5, r6, pc} +_022FF38C: + cmp r2, #0 + bne _022FF3AC + ldr r1, _022FF47C @ =0x0231AC5C + bl ov00_0230BCCC + add sp, sp, #4 + add sp, sp, #0x400 + mov r0, #2 + pop {r3, r4, r5, r6, pc} +_022FF3AC: + mov r1, r2 + ldr r2, _022FF480 @ =0x00000401 + add r0, sp, #0 + bl ov00_0230B930 + ldrsb r0, [sp] + cmp r0, #0 + beq _022FF3E8 + add r2, sp, #0 + mov r1, #0x2f +_022FF3D0: + ldrsb r0, [r2] + cmp r0, #0x5c + strbeq r1, [r2] + ldrsb r0, [r2, #1]! + cmp r0, #0 + bne _022FF3D0 +_022FF3E8: + ldr r2, _022FF484 @ =0x0231AC6C + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + ldr r2, _022FF488 @ =0x0231AC78 + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + ldr r2, [r4, #0x198] + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302668 + ldr r2, _022FF48C @ =0x0231AC84 + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + mov r2, r5 + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302668 + ldr r2, _022FF490 @ =0x0231AC94 + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + mov r0, r6 + add r1, r4, #0x210 + add r2, sp, #0 + bl ov00_02302638 + ldr r2, _022FF494 @ =0x0231ACA0 + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + mov r0, #0 + add sp, sp, #4 + add sp, sp, #0x400 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_022FF478: .4byte 0x0231AC2C +_022FF47C: .4byte 0x0231AC5C +_022FF480: .4byte 0x00000401 +_022FF484: .4byte 0x0231AC6C +_022FF488: .4byte 0x0231AC78 +_022FF48C: .4byte 0x0231AC84 +_022FF490: .4byte 0x0231AC94 +_022FF494: .4byte 0x0231ACA0 + arm_func_end ov00_022FF324 + + arm_func_start ov00_022FF498 +ov00_022FF498: @ 0x022FF498 + push {r3, lr} + cmp r0, #0 + ldrne r3, [r0] + cmpne r3, #0 + moveq r0, #2 + popeq {r3, pc} + ldr r2, [r3, #0x108] + cmp r2, #0 + movne r0, #0 + popne {r3, pc} + ldr r2, [r3, #0x1f4] + cmp r2, #4 + bne _022FF4DC + ldr r1, _022FF4E4 @ =0x0231AC2C + bl ov00_0230BCCC + mov r0, #2 + pop {r3, pc} +_022FF4DC: + bl ov00_023021A0 + pop {r3, pc} + .align 2, 0 +_022FF4E4: .4byte 0x0231AC2C + arm_func_end ov00_022FF498 + + arm_func_start ov00_022FF4E8 +ov00_022FF4E8: @ 0x022FF4E8 + push {r3, r4, r5, lr} + movs r4, r0 + ldrne r5, [r4] + cmpne r5, #0 + moveq r0, #2 + popeq {r3, r4, r5, pc} + ldr r2, [r5, #0x108] + cmp r2, #0 + movne r0, #0 + popne {r3, r4, r5, pc} + ldr r2, [r5, #0x1f4] + cmp r2, #4 + bne _022FF52C + ldr r1, _022FF5A4 @ =0x0231AC2C + bl ov00_0230BCCC + mov r0, #2 + pop {r3, r4, r5, pc} +_022FF52C: + add r2, sp, #0 + bl ov00_02308A4C + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldr r1, [sp] + ldr r0, [r1, #0x18] + sub r0, r0, #1 + str r0, [r1, #0x18] + ldr r0, [r5, #0x100] + cmp r0, #0 + bne _022FF59C + ldr r1, [sp] + ldr r0, [r1, #0x18] + cmp r0, #0 + bgt _022FF59C + ldr r0, [r1, #0x14] + bl ov00_022F5B14 + ldr r0, [sp] + mov r1, #0 + str r1, [r0, #0x14] + ldr r0, [sp] + bl ov00_02308E00 + cmp r0, #0 + beq _022FF59C + ldr r1, [sp] + mov r0, r4 + bl ov00_02308BCC +_022FF59C: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022FF5A4: .4byte 0x0231AC2C + arm_func_end ov00_022FF4E8 + + arm_func_start ov00_022FF5A8 +ov00_022FF5A8: @ 0x022FF5A8 + cmp r0, #0 + ldrne r2, [r0] + cmpne r2, #0 + moveq r0, #2 + bxeq lr + ldr r0, [r2, #0x108] + cmp r0, #0 + mov r0, #0 + strne r0, [r1] + ldreq r2, [r2, #0x5d0] + streq r2, [r1] + bx lr + arm_func_end ov00_022FF5A8 + + arm_func_start ov00_022FF5D8 +ov00_022FF5D8: @ 0x022FF5D8 + push {r4, r5, r6, lr} + movs r6, r0 + ldrne r3, [r6] + mov r5, r2 + cmpne r3, #0 + moveq r0, #2 + popeq {r4, r5, r6, pc} + ldr r2, [r3, #0x108] + cmp r2, #0 + beq _022FF618 + mov r0, r5 + mov r1, #0 + mov r2, #0x214 + bl FUN_02087308 + mov r0, #0 + pop {r4, r5, r6, pc} +_022FF618: + cmp r5, #0 + bne _022FF630 + ldr r1, _022FF760 @ =0x0231ACA8 + bl ov00_0230BCCC + mov r0, #2 + pop {r4, r5, r6, pc} +_022FF630: + cmp r1, #0 + ldr r2, [r3, #0x5d0] + blt _022FF644 + cmp r1, r2 + blt _022FF658 +_022FF644: + ldr r1, _022FF764 @ =0x0231ACB8 + mov r0, r6 + bl ov00_0230BCCC + mov r0, #2 + pop {r4, r5, r6, pc} +_022FF658: + bl ov00_02308D38 + movs r4, r0 + bne _022FF678 + ldr r1, _022FF764 @ =0x0231ACB8 + mov r0, r6 + bl ov00_0230BCCC + mov r0, #2 + pop {r4, r5, r6, pc} +_022FF678: + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _022FF6D8 + ldr r0, [r0, #4] + cmp r0, #0 + bne _022FF6D8 + ldr r1, [r4] + mov r0, #0 + str r1, [r5] + ldr r1, [r4, #0xc] + ldr r1, [r1, #4] + str r1, [r5, #4] + strb r0, [r5, #8] + strb r0, [r5, #0x108] + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x1c] + str r0, [r5, #0x208] + ldr r0, [r4, #0xc] + ldrh r0, [r0, #0x20] + str r0, [r5, #0x20c] + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x30] + str r0, [r5, #0x210] + b _022FF758 +_022FF6D8: + ldr r0, [r4] + str r0, [r5] + ldr r0, [r4, #8] + ldr r0, [r0, #4] + str r0, [r5, #4] + ldr r0, [r4, #8] + ldr r1, [r0, #8] + cmp r1, #0 + moveq r0, #0 + strbeq r0, [r5, #8] + beq _022FF710 + add r0, r5, #8 + mov r2, #0x100 + bl ov00_0230B930 +_022FF710: + ldr r0, [r4, #8] + ldr r1, [r0, #0xc] + cmp r1, #0 + moveq r0, #0 + strbeq r0, [r5, #0x108] + beq _022FF734 + add r0, r5, #0x108 + mov r2, #0x100 + bl ov00_0230B930 +_022FF734: + ldr r0, [r4, #8] + ldr r0, [r0, #0x10] + str r0, [r5, #0x208] + ldr r0, [r4, #8] + ldrh r0, [r0, #0x14] + str r0, [r5, #0x20c] + ldr r0, [r4, #8] + ldr r0, [r0, #0x18] + str r0, [r5, #0x210] +_022FF758: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_022FF760: .4byte 0x0231ACA8 +_022FF764: .4byte 0x0231ACB8 + arm_func_end ov00_022FF5D8 + + arm_func_start ov00_022FF768 +ov00_022FF768: @ 0x022FF768 + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + movs r6, r0 + mov r4, r2 + ldrne r2, [r6] + mov r5, r1 + cmpne r2, #0 + addeq sp, sp, #4 + moveq r0, #2 + popeq {r3, r4, r5, r6, pc} + ldr r2, [r2, #0x108] + cmp r2, #0 + movne r0, #0 + addne sp, sp, #4 + strne r0, [r4] + popne {r3, r4, r5, r6, pc} + add r2, sp, #0 + bl ov00_02308A4C + cmp r0, #0 + ldrne r0, [sp] + ldrne r0, [r0, #8] + cmpne r0, #0 + ldrne r0, [r0] + strne r0, [r4] + bne _022FF7FC + add r2, sp, #0 + mov r0, r6 + mov r1, r5 + bl ov00_02308A4C + cmp r0, #0 + ldrne r0, [sp] + ldrne r0, [r0, #0xc] + cmpne r0, #0 + ldrne r0, [r0] + strne r0, [r4] + mvneq r0, #0 + streq r0, [r4] +_022FF7FC: + mov r0, #0 + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_022FF768 + + arm_func_start ov00_022FF808 +ov00_022FF808: @ 0x022FF808 + push {r3, r4, r5, lr} + movs r5, r0 + ldrne r2, [r5] + mov r4, r1 + cmpne r2, #0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldr r2, [r2, #0x108] + cmp r2, #0 + movne r0, #0 + popne {r3, r4, r5, pc} + add r2, sp, #0 + bl ov00_02308A4C + cmp r0, #0 + ldrne r0, [sp] + ldrne r0, [r0, #8] + cmpne r0, #0 + movne r0, #1 + popne {r3, r4, r5, pc} + add r2, sp, #0 + mov r0, r5 + mov r1, r4 + bl ov00_02308A4C + cmp r0, #0 + ldrne r0, [sp] + ldrne r0, [r0, #0xc] + cmpne r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, r4, r5, pc} + arm_func_end ov00_022FF808 + + arm_func_start ov00_022FF880 +ov00_022FF880: @ 0x022FF880 + push {r3, lr} + cmp r0, #0 + ldrne r3, [r0] + cmpne r3, #0 + moveq r0, #2 + popeq {r3, pc} + ldr r2, [r3, #0x108] + cmp r2, #0 + movne r0, #0 + popne {r3, pc} + ldr r2, [r3, #0x1f4] + cmp r2, #4 + bne _022FF8C4 + ldr r1, _022FF8D8 @ =0x0231AC2C + bl ov00_0230BCCC + mov r0, #2 + pop {r3, pc} +_022FF8C4: + mov r2, #1 + bl ov00_023022B0 + cmp r0, #0 + moveq r0, #0 + pop {r3, pc} + .align 2, 0 +_022FF8D8: .4byte 0x0231AC2C + arm_func_end ov00_022FF880 + + arm_func_start ov00_022FF8DC +ov00_022FF8DC: @ 0x022FF8DC + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x200 + movs r7, r0 + ldrne r4, [r7] + mov r6, r1 + cmpne r4, #0 + mov r5, r3 + addeq sp, sp, #0x200 + moveq r0, #2 + popeq {r3, r4, r5, r6, r7, pc} + ldr r1, [r4, #0x108] + cmp r1, #0 + addne sp, sp, #0x200 + movne r0, #0 + popne {r3, r4, r5, r6, r7, pc} + ldr r1, [r4, #0x1f4] + cmp r1, #4 + bne _022FF938 + ldr r1, _022FFAF0 @ =0x0231AC2C + bl ov00_0230BCCC + add sp, sp, #0x200 + mov r0, #2 + pop {r3, r4, r5, r6, r7, pc} +_022FF938: + cmp r2, #0 + bne _022FF954 + ldr r1, _022FFAF4 @ =0x0231ACC8 + bl ov00_0230BCCC + add sp, sp, #0x200 + mov r0, #2 + pop {r3, r4, r5, r6, r7, pc} +_022FF954: + cmp r5, #0 + bne _022FF970 + ldr r1, _022FFAF8 @ =0x0231ACE0 + bl ov00_0230BCCC + add sp, sp, #0x200 + mov r0, #2 + pop {r3, r4, r5, r6, r7, pc} +_022FF970: + mov r1, r2 + add r0, sp, #0x100 + mov r2, #0x100 + bl ov00_0230B930 + add r0, sp, #0x100 + ldrsb r0, [r0] + cmp r0, #0 + beq _022FF9B0 + add r2, sp, #0x100 + mov r1, #0x2f +_022FF998: + ldrsb r0, [r2] + cmp r0, #0x5c + strbeq r1, [r2] + ldrsb r0, [r2, #1]! + cmp r0, #0 + bne _022FF998 +_022FF9B0: + add r0, sp, #0 + mov r1, r5 + mov r2, #0x100 + bl ov00_0230B930 + ldrsb r0, [sp] + cmp r0, #0 + beq _022FF9EC + add r2, sp, #0 + mov r1, #0x2f +_022FF9D4: + ldrsb r0, [r2] + cmp r0, #0x5c + strbeq r1, [r2] + ldrsb r0, [r2, #1]! + cmp r0, #0 + bne _022FF9D4 +_022FF9EC: + ldr r0, [r4, #0x23c] + cmp r6, r0 + bne _022FFA2C + add r0, sp, #0x100 + add r1, r4, #0x3b8 + bl FUN_0208982C + cmp r0, #0 + bne _022FFA2C + add r1, r4, #0xb8 + add r0, sp, #0 + add r1, r1, #0x400 + bl FUN_0208982C + cmp r0, #0 + addeq sp, sp, #0x200 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} +_022FFA2C: + add r1, sp, #0x100 + add r0, r4, #0x3b8 + mov r2, #0x100 + str r6, [r4, #0x23c] + bl ov00_0230B930 + add r0, r4, #0xb8 + add r1, sp, #0 + add r0, r0, #0x400 + mov r2, #0x100 + bl ov00_0230B930 + ldr r2, _022FFAFC @ =0x0231ACF8 + mov r0, r7 + add r1, r4, #0x210 + bl ov00_02302638 + mov r0, r7 + mov r2, r6 + add r1, r4, #0x210 + bl ov00_02302668 + ldr r2, _022FFB00 @ =0x0231AC78 + mov r0, r7 + add r1, r4, #0x210 + bl ov00_02302638 + ldr r2, [r4, #0x198] + mov r0, r7 + add r1, r4, #0x210 + bl ov00_02302668 + ldr r2, _022FFB04 @ =0x0231AD04 + mov r0, r7 + add r1, r4, #0x210 + bl ov00_02302638 + mov r0, r7 + add r1, r4, #0x210 + add r2, sp, #0x100 + bl ov00_02302638 + ldr r2, _022FFB08 @ =0x0231AD14 + mov r0, r7 + add r1, r4, #0x210 + bl ov00_02302638 + mov r0, r7 + add r1, r4, #0x210 + add r2, sp, #0 + bl ov00_02302638 + ldr r2, _022FFB0C @ =0x0231ACA0 + mov r0, r7 + add r1, r4, #0x210 + bl ov00_02302638 + mov r0, #0 + add sp, sp, #0x200 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022FFAF0: .4byte 0x0231AC2C +_022FFAF4: .4byte 0x0231ACC8 +_022FFAF8: .4byte 0x0231ACE0 +_022FFAFC: .4byte 0x0231ACF8 +_022FFB00: .4byte 0x0231AC78 +_022FFB04: .4byte 0x0231AD04 +_022FFB08: .4byte 0x0231AD14 +_022FFB0C: .4byte 0x0231ACA0 + arm_func_end ov00_022FF8DC + + arm_func_start ov00_022FFB10 +ov00_022FFB10: @ 0x022FFB10 + push {r3, lr} + sub sp, sp, #8 + cmp r0, #0 + ldrne ip, [r0] + mov r3, r2 + cmpne ip, #0 + addeq sp, sp, #8 + moveq r0, #2 + popeq {r3, pc} + ldr r2, [ip, #0x108] + cmp r2, #0 + addne sp, sp, #8 + movne r0, #0 + popne {r3, pc} + ldr r2, [ip, #0x1f4] + cmp r2, #4 + bne _022FFB68 + ldr r1, _022FFBA0 @ =0x0231AC2C + bl ov00_0230BCCC + add sp, sp, #8 + mov r0, #2 + pop {r3, pc} +_022FFB68: + cmp r3, #0 + bne _022FFB84 + ldr r1, _022FFBA4 @ =0x0231AD20 + bl ov00_0230BCCC + add sp, sp, #8 + mov r0, #2 + pop {r3, pc} +_022FFB84: + mov ip, #0 + str ip, [sp] + mov r2, #1 + str ip, [sp, #4] + bl ov00_02301B2C + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_022FFBA0: .4byte 0x0231AC2C +_022FFBA4: .4byte 0x0231AD20 + arm_func_end ov00_022FFB10 + + arm_func_start ov00_022FFBA8 +ov00_022FFBA8: @ 0x022FFBA8 + push {r3, r4, lr} + sub sp, sp, #0x14 + cmp r0, #0 + ldrne r4, [r0] + cmpne r4, #0 + addeq sp, sp, #0x14 + moveq r0, #2 + popeq {r3, r4, pc} + ldr lr, [sp, #0x20] + cmp lr, #0 + bne _022FFBE8 + ldr r1, _022FFC54 @ =0x0231AC18 + bl ov00_0230BCCC + add sp, sp, #0x14 + mov r0, #2 + pop {r3, r4, pc} +_022FFBE8: + ldr ip, [r4, #0x1f4] + cmp ip, #4 + bne _022FFC08 + ldr r1, _022FFC58 @ =0x0231AC2C + bl ov00_0230BCCC + add sp, sp, #0x14 + mov r0, #2 + pop {r3, r4, pc} +_022FFC08: + ldr ip, [r4, #0x108] + cmp ip, #0 + beq _022FFC3C + ldr r2, [sp, #0x24] + add r1, sp, #8 + mov r3, #0 + str r3, [r1] + str r3, [r1, #4] + str r3, [r1, #8] + blx lr + add sp, sp, #0x14 + mov r0, #0 + pop {r3, r4, pc} +_022FFC3C: + ldr ip, [sp, #0x24] + str lr, [sp] + str ip, [sp, #4] + bl ov00_02309348 + add sp, sp, #0x14 + pop {r3, r4, pc} + .align 2, 0 +_022FFC54: .4byte 0x0231AC18 +_022FFC58: .4byte 0x0231AC2C + arm_func_end ov00_022FFBA8 + + arm_func_start ov00_022FFC5C +ov00_022FFC5C: @ 0x022FFC5C + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + mov r4, #0 + str r4, [r7] + ldr r0, _022FFD84 @ =0x00000634 + mov r6, r1 + mov r5, r2 + mov r4, r3 + bl ov00_022F5AE4 + str r0, [sp] + cmp r0, #0 + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, pc} + ldr r2, _022FFD84 @ =0x00000634 + mov r1, #0 + bl FUN_02087308 + ldr r0, [sp] + mov r3, #0 + strb r3, [r0] + ldr r0, [sp] + mov r2, #1 + str r3, [r0, #0x5b8] + ldr r1, [sp] + add r0, sp, #0 + str r2, [r1, #0x100] + ldr r1, [sp] + str r3, [r1, #0x104] + ldr r1, [sp] + str r3, [r1, #0x108] + ldr r1, [sp] + str r3, [r1, #0x10c] + ldr r1, [sp] + str r6, [r1, #0x608] + ldr r1, [sp] + str r5, [r1, #0x60c] + ldr r1, [sp] + str r4, [r1, #0x1a4] + bl ov00_023087E4 + cmp r0, #0 + bne _022FFD14 + ldr r0, [sp] + bl ov00_022F5B14 + mov r0, #0 + str r0, [sp] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_022FFD14: + ldr r0, [sp] + mov r2, #0 + str r2, [r0, #0x5c0] + mov r1, r2 +_022FFD24: + ldr r0, [sp] + add r0, r0, r2, lsl #3 + str r1, [r0, #0x1a8] + ldr r0, [sp] + add r0, r0, r2, lsl #3 + add r2, r2, #1 + str r1, [r0, #0x1ac] + cmp r2, #9 + blt _022FFD24 + add r0, sp, #0 + bl ov00_022FFE10 + movs r4, r0 + beq _022FFD68 + add r0, sp, #0 + bl ov00_022FFD88 + mov r0, r4 + pop {r3, r4, r5, r6, r7, pc} +_022FFD68: + bl ov00_022F558C + bl ov00_022F5594 + bl FUN_020895E4 + ldr r1, [sp] + mov r0, #0 + str r1, [r7] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022FFD84: .4byte 0x00000634 + arm_func_end ov00_022FFC5C + + arm_func_start ov00_022FFD88 +ov00_022FFD88: @ 0x022FFD88 + push {r3, r4, r5, lr} + mov r5, r0 + mov r1, #1 + ldr r4, [r5] + bl ov00_02304798 + bl ov00_022F840C + cmp r0, #0 + beq _022FFDCC + add r0, r4, #0x220 + bl ov00_022F8B1C + bl ov00_022F8BC4 + cmp r0, #0 + beq _022FFDCC + bl ov00_022F8BF4 + cmp r0, #0 + beq _022FFDCC + bl ov00_022F89B0 +_022FFDCC: + mov r0, r5 + bl ov00_02306760 + ldr r0, [r4, #0x5c8] + bl ov00_022F4C38 + mov r0, r4 + bl ov00_022F5B14 + mov r0, #0 + str r0, [r5] + pop {r3, r4, r5, pc} + arm_func_end ov00_022FFD88 +_022FFDF0: + .byte 0x00, 0x00, 0xA0, 0xE3, 0x08, 0x00, 0x81, 0xE5, 0x0C, 0x00, 0x81, 0xE5, 0x14, 0x00, 0x81, 0xE5 + .byte 0x18, 0x00, 0x81, 0xE5, 0x1C, 0x00, 0x81, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov00_022FFE10 +ov00_022FFE10: @ 0x022FFE10 + push {r3, r4, r5, lr} + mov r4, r0 + ldr r0, [r4] + mov r2, #0 + str r0, [sp] + strb r2, [r0, #0x110] + ldr r0, [sp] + sub r1, r2, #1 + strb r2, [r0, #0x12f] + ldr r0, [sp] + strb r2, [r0, #0x144] + ldr r0, [sp] + str r1, [r0, #0x1f0] + ldr r0, [sp] + str r2, [r0, #0x1f4] + ldr r0, [sp] + str r2, [r0, #0x200] + ldr r0, [sp] + str r2, [r0, #0x204] + ldr r0, [sp] + str r2, [r0, #0x1fc] + ldr r0, [sp] + ldr r0, [r0, #0x1f8] + bl ov00_022F5B14 + ldr r0, [sp] + mov r1, #0 + str r1, [r0, #0x1f8] + ldr r0, [sp] + str r1, [r0, #0x1f8] + ldr r0, [sp] + str r1, [r0, #0x20c] + ldr r0, [sp] + ldr r0, [r0, #0x208] + bl ov00_022F5B14 + ldr r0, [sp] + mov r1, #0 + str r1, [r0, #0x208] + ldr r0, [sp] + str r1, [r0, #0x208] + ldr r0, [sp] + str r1, [r0, #0x218] + ldr r0, [sp] + str r1, [r0, #0x21c] + ldr r0, [sp] + str r1, [r0, #0x214] + ldr r0, [sp] + ldr r0, [r0, #0x210] + bl ov00_022F5B14 + ldr r0, [sp] + mov r1, #0 + str r1, [r0, #0x210] + ldr r0, [sp] + str r1, [r0, #0x210] + ldr r0, [sp] + str r1, [r0, #0x5e8] + ldr r0, [sp] + str r1, [r0, #0x5ec] + ldr r0, [sp] + str r1, [r0, #0x5e4] + ldr r0, [sp] + ldr r0, [r0, #0x5e0] + bl ov00_022F5B14 + ldr r0, [sp] + mov r1, #0 + str r1, [r0, #0x5e0] + ldr r0, [sp] + str r1, [r0, #0x5e0] + ldr r0, [sp] + str r1, [r0, #0x5f8] + ldr r0, [sp] + str r1, [r0, #0x5fc] + ldr r0, [sp] + str r1, [r0, #0x5f4] + ldr r0, [sp] + ldr r0, [r0, #0x5f0] + bl ov00_022F5B14 + ldr r0, [sp] + mov r2, #0 + str r2, [r0, #0x5f0] + ldr r1, [sp] + mov r0, r4 + str r2, [r1, #0x5f0] + bl ov00_02306760 + add r0, sp, #0 + bl ov00_02306718 + movs r5, r0 + beq _022FFF7C + add r0, sp, #0 + bl ov00_022FFD88 + mov r0, r5 + pop {r3, r4, r5, pc} +_022FFF7C: + ldr r0, [sp] + mov r1, #2 + str r1, [r0, #0x234] + ldr r0, [sp] + ldr r1, [r0, #0x5c4] + cmp r1, #0 + beq _022FFFB0 +_022FFF98: + mov r0, r4 + bl ov00_0230716C + ldr r0, [sp] + ldr r1, [r0, #0x5c4] + cmp r1, #0 + bne _022FFF98 +_022FFFB0: + mov r2, #0 + str r2, [r0, #0x5c4] + ldr r3, [sp] + ldr r1, _02300028 @ =0x022FFDF0 + mov r0, r4 + str r2, [r3, #0x5d0] + bl ov00_02308CA8 + mov r0, #0 + ldr r1, [sp] + sub r2, r0, #1 + str r0, [r1, #0x19c] + ldr r1, [sp] + str r0, [r1, #0x1a0] + ldr r1, [sp] + str r0, [r1, #0x198] + ldr r1, [sp] + str r0, [r1, #0x238] + ldr r1, [sp] + str r0, [r1, #0x5bc] + ldr r1, [sp] + str r0, [r1, #0x5d4] + ldr r1, [sp] + str r2, [r1, #0x23c] + ldr r1, [sp] + strb r0, [r1, #0x3b8] + ldr r1, [sp] + strb r0, [r1, #0x4b8] + ldr r1, [sp] + str r0, [r1, #0x630] + pop {r3, r4, r5, pc} + .align 2, 0 +_02300028: .4byte 0x022FFDF0 + arm_func_end ov00_022FFE10 + + arm_func_start ov00_0230002C +ov00_0230002C: @ 0x0230002C + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x14 + mov r1, #0 + mov r4, r0 + str r1, [sp, #8] + ldr r8, [r4] + bl ov00_022F5594 + mov sb, r0 +_0230004C: + mov r0, r4 + add r1, r8, #0x210 + bl ov00_023054EC + ldr r0, [r8, #0x218] + mov r1, #1 + cmp r0, #0 + strgt sb, [r8, #0x630] + ldr r0, _02300384 @ =0x0231AD34 + str r1, [sp] + str r0, [sp, #4] + ldr r1, [r8, #0x1f0] + add r3, sp, #8 + mov r0, r4 + add r2, r8, #0x210 + bl ov00_02302A04 + cmp r0, #0 + addne sp, sp, #0x14 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r1, sp, #8 + ldr r0, _02300384 @ =0x0231AD34 + str r1, [sp] + str r0, [sp, #4] + ldr r1, [r8, #0x1f0] + add r3, sp, #0xc + mov r0, r4 + add r2, r8, #0x1f8 + bl ov00_023028B4 + cmp r0, #0 + beq _023000F8 + cmp r0, #3 + addne sp, sp, #0x14 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r2, _02300388 @ =0x0231AD38 + mov r0, r4 + mov r1, #5 + bl ov00_0230BCA8 + mov r0, r4 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x14 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023000F8: + ldr r0, [r8, #0x1f8] + ldr r1, _0230038C @ =0x0231AD64 + bl FUN_02089A70 + movs sl, r0 + beq _023002F0 + ldr fp, _02300390 @ =0x0231AD7C + ldr r5, _02300394 @ =0x0231AD94 + mov r6, #0x800 + mov r7, #0 +_0230011C: + str sb, [r8, #0x630] + strb r7, [sl] + ldr r0, [r8, #0x1f8] + sub r1, sl, r0 + str r1, [sp, #0xc] + ldr r0, [r8, #0x20c] + cmp r1, r0 + ble _02300180 + ldr r0, [r8, #0x20c] + cmp r1, #0x800 + movlt r1, r6 + add r0, r0, r1 + str r0, [r8, #0x20c] + add r1, r0, #1 + ldr r0, [r8, #0x208] + bl ov00_022F5AFC + cmp r0, #0 + bne _0230017C + ldr r1, _02300398 @ =0x0231AD6C + mov r0, r4 + bl ov00_0230BCCC + add sp, sp, #0x14 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230017C: + str r0, [r8, #0x208] +_02300180: + ldr r2, [sp, #0xc] + ldr r0, [r8, #0x208] + ldr r1, [r8, #0x1f8] + add r2, r2, #1 + bl FUN_0208729C + ldr r0, [r8, #0x1f8] + add r1, sl, #7 + ldr r2, [r8, #0x200] + sub r0, r1, r0 + sub r0, r2, r0 + str r0, [r8, #0x200] + add r2, r0, #1 + ldr r0, [r8, #0x1f8] + bl FUN_020872BC + ldr sl, [r8, #0x208] + mov r1, fp + mov r0, sl + bl FUN_02089A70 + cmp r0, #0 + beq _02300210 + add r0, r0, #4 + bl FUN_0208B360 + mov r2, r0 + mov r0, r4 + add r1, sp, #0x10 + bl ov00_023071BC + cmp r0, #0 + beq _023002DC + mov r0, r4 + ldr r1, [sp, #0x10] + ldr r2, [r8, #0x208] + bl ov00_02307244 + cmp r0, #0 + beq _023002DC + add sp, sp, #0x14 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300210: + mov r1, sl + mov r0, r4 + mov r2, #1 + bl ov00_0230B950 + cmp r0, #0 + addne sp, sp, #0x14 + movne r0, #4 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr sl, [r8, #0x208] + ldr r1, _0230039C @ =0x0231AD84 + mov r0, sl + mov r2, #4 + bl FUN_02089940 + cmp r0, #0 + bne _02300268 + mov r1, sl + mov r0, r4 + bl ov00_023005CC + cmp r0, #0 + beq _023002DC + add sp, sp, #0x14 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300268: + ldr r1, _023003A0 @ =0x0231AD8C + mov r0, sl + mov r2, #4 + bl FUN_02089940 + cmp r0, #0 + beq _023002DC + mov r0, sl + mov r1, r5 + mov r2, #4 + bl FUN_02089940 + cmp r0, #0 + mov r0, sl + bne _023002B0 + mov r1, r5 + add r2, r8, #0x610 + mov r3, #0x19 + bl ov00_0230BA28 + b _023002DC +_023002B0: + ldr r1, _023003A4 @ =0x0231AD9C + mov r2, #5 + bl FUN_02089940 + cmp r0, #0 + bne _023002DC + mov r1, sl + mov r0, r4 + bl ov00_023011FC + cmp r0, #0 + addne sp, sp, #0x14 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023002DC: + ldr r0, [r8, #0x1f8] + ldr r1, _0230038C @ =0x0231AD64 + bl FUN_02089A70 + movs sl, r0 + bne _0230011C + arm_func_end ov00_0230002C +_023002F0: + ldr r0, [sp, #8] + cmp r0, #0 + ldrne r0, [r8, #0x1f4] + cmpne r0, #5 + beq _02300330 + ldr r2, _023003A8 @ =0x0231ADA4 + mov r0, r4 + mov r1, #7 + bl ov00_0230BCA8 + mov r0, r4 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x14 + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300330: + mov r0, r4 + bl ov00_02307208 + movs r5, r0 + beq _02300348 + mov r0, #0xa + bl ov00_02079B14 +_02300348: + cmp r5, #0 + bne _0230004C + ldr r1, [r8, #0x630] + ldr r0, _023003AC @ =0x0001D4C0 + sub r1, sb, r1 + cmp r1, r0 + bls _02300378 + ldr r2, _023003B0 @ =0x0231ADCC + mov r0, r4 + add r1, r8, #0x210 + bl ov00_02302638 + str sb, [r8, #0x630] +_02300378: + mov r0, #0 + add sp, sp, #0x14 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02300384: .4byte 0x0231AD34 +_02300388: .4byte 0x0231AD38 +_0230038C: .4byte 0x0231AD64 +_02300390: .4byte 0x0231AD7C +_02300394: .4byte 0x0231AD94 +_02300398: .4byte 0x0231AD6C +_0230039C: .4byte 0x0231AD84 +_023003A0: .4byte 0x0231AD8C +_023003A4: .4byte 0x0231AD9C +_023003A8: .4byte 0x0231ADA4 +_023003AC: .4byte 0x0001D4C0 +_023003B0: .4byte 0x0231ADCC + + arm_func_start ov00_023003B4 +ov00_023003B4: @ 0x023003B4 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sl, r0 + ldr r6, [sl] + mov sb, r1 + ldr r0, [r6, #0x1f4] + mov r7, #0 + cmp r0, #1 + bne _0230044C + mov r4, r7 + mov r5, #1 + mov fp, #0xa +_023003E0: + mov r0, sl + bl ov00_023045B4 + movs r7, r0 + bne _02300408 + cmp sb, #0 + beq _02300408 + ldr r0, [r6, #0x1f4] + cmp r0, #1 + moveq r8, r5 + beq _0230040C +_02300408: + mov r8, r4 +_0230040C: + cmp r8, #0 + beq _0230041C + mov r0, fp + bl ov00_02079B14 +_0230041C: + cmp r8, #0 + bne _023003E0 + cmp r7, #0 + beq _0230044C + add r1, sp, #0 + mov r0, sl + mov r2, #1 + bl ov00_023071BC + cmp r0, #0 + ldrne r0, [sp] + movne r1, #4 + strne r1, [r0, #0x1c] +_0230044C: + ldr r0, [r6, #0x1f4] + cmp r0, #3 + cmpne r0, #2 + cmpne r0, #5 + bne _02300488 + cmp r7, #0 + bne _02300474 + mov r0, sl + bl ov00_0230002C + mov r7, r0 +_02300474: + cmp r7, #0 + bne _02300488 + mov r0, sl + bl ov00_02307ED4 + mov r7, r0 +_02300488: + cmp r7, #0 + bne _0230049C + mov r0, sl + bl ov00_0230B4E8 + mov r7, r0 +_0230049C: + ldr r1, [r6, #0x5c4] + str r1, [sp] + cmp r1, #0 + beq _023004E8 +_023004AC: + ldr r0, [r1, #0x1c] + cmp r0, #0 + ldreq r0, [r1, #0x20] + streq r0, [sp] + beq _023004DC + mov r0, sl + bl ov00_02306C84 + ldr r1, [sp] + mov r0, sl + ldr r2, [r1, #0x20] + str r2, [sp] + bl ov00_0230716C +_023004DC: + ldr r1, [sp] + cmp r1, #0 + bne _023004AC +_023004E8: + mov r0, sl + mov r1, sb + bl ov00_023031B0 + cmp r0, #0 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r6, #0x5bc] + cmp r0, #0 + beq _0230051C + mov r0, sl + mov r1, #0 + bl ov00_02304798 + mov r0, sl + bl ov00_022FFE10 +_0230051C: + mov r0, r7 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_023003B4 + + arm_func_start ov00_02300524 +ov00_02300524: @ 0x02300524 + push {r4, r5, r6, lr} + mov r6, r0 + ldr r4, [r6] + ldr r2, _023005B8 @ =0x0231ADD8 + mov r5, r1 + add r1, r4, #0x210 + bl ov00_02302638 + ldr r2, _023005BC @ =0x0231ADE4 + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + ldr r2, [r4, #0x198] + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302668 + ldr r2, _023005C0 @ =0x0231ADF0 + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + mov r0, r6 + add r1, r4, #0x210 + ldr r2, [r5] + bl ov00_02302668 + mov r0, r6 + add r1, r4, #0x210 + ldr r2, _023005C4 @ =0x0231AE00 + bl ov00_02302638 + ldr r2, [r5, #0x14] + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + mov r0, r6 + add r1, r4, #0x210 + ldr r2, _023005C8 @ =0x0231AE08 + bl ov00_02302638 + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_023005B8: .4byte 0x0231ADD8 +_023005BC: .4byte 0x0231ADE4 +_023005C0: .4byte 0x0231ADF0 +_023005C4: .4byte 0x0231AE00 +_023005C8: .4byte 0x0231AE08 + arm_func_end ov00_02300524 + + arm_func_start ov00_023005CC +ov00_023005CC: @ 0x023005CC + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x150 + sub sp, sp, #0x1000 + mov r7, r1 + mov r6, r0 + ldr r1, _023011B8 @ =0x0231AE10 + add r2, sp, #0x150 + mov r0, r7 + mov r3, #0x1000 + ldr r4, [r6] + bl ov00_0230BA28 + cmp r0, #0 + bne _02300630 + ldr r2, _023011BC @ =0x0231AE18 + mov r0, r6 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r6 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300630: + add r0, sp, #0x150 + bl FUN_0208B360 + mov r8, r0 + ldr r1, _023011C0 @ =0x0231AE48 + add r2, sp, #0x150 + mov r0, r7 + mov r3, #0x1000 + bl ov00_0230BA28 + cmp r0, #0 + bne _02300688 + ldr r2, _023011BC @ =0x0231AE18 + mov r0, r6 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r6 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300688: + add r0, sp, #0x150 + bl FUN_0208B360 + mov sb, r0 + ldr r1, _023011C4 @ =0x0231AE4C + add r2, sp, #0x150 + mov r0, r7 + mov r3, #0x1000 + bl ov00_0230BA28 + cmp r0, #0 + beq _023006BC + add r0, sp, #0x150 + bl FUN_0208B360 + b _023006C4 +_023006BC: + mov r0, #0 + bl ov00_022F5478 +_023006C4: + mov r5, r0 + cmp r8, #0x64 + bgt _023006FC + bge _02300BFC + cmp r8, #6 + addls pc, pc, r8, lsl #2 + b _023011A8 +_023006E0: @ jump table + b _023011A8 @ case 0 + b _02300718 @ case 1 + b _02300938 @ case 2 + b _023011A8 @ case 3 + b _02300AFC @ case 4 + b _02300828 @ case 5 + b _02300B7C @ case 6 +_023006FC: + cmp r8, #0x65 + bgt _0230070C + beq _02300FAC + b _023011A8 +_0230070C: + cmp r8, #0x66 + beq _0230113C + b _023011A8 +_02300718: + ldr r1, [r4, #0x1c0] + ldr r0, [r4, #0x1c4] + str r1, [sp, #0x38] + str r0, [sp, #0x3c] + cmp r1, #0 + beq _023011A8 + mov r0, #0xc + bl ov00_022F5AE4 + movs r4, r0 + bne _0230075C + ldr r1, _023011C8 @ =0x0231AE54 + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230075C: + ldr r1, _023011CC @ =0x0231AE64 + add r2, sp, #0x150 + mov r0, r7 + mov r3, #0x1000 + bl ov00_0230BA28 + cmp r0, #0 + bne _023007A8 + ldr r2, _023011BC @ =0x0231AE18 + mov r0, r6 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r6 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023007A8: + add r0, sp, #0x150 + bl FUN_02089678 + add r0, r0, #1 + bl ov00_022F5AE4 + str r0, [r4, #8] + cmp r0, #0 + bne _023007E0 + ldr r1, _023011C8 @ =0x0231AE54 + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023007E0: + add r1, sp, #0x150 + bl FUN_02089694 + str sb, [r4] + str r5, [r4, #4] + mov r2, #0 + str r2, [sp] + mov r2, #2 + add r1, sp, #0x38 + str r2, [sp, #4] + mov r0, r6 + mov r3, r4 + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _023011A8 + add sp, sp, #0x150 + add sp, sp, #0x1000 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300828: + ldr r1, [r4, #0x1c8] + ldr r0, [r4, #0x1cc] + str r1, [sp, #8] + str r0, [sp, #0xc] + cmp r1, #0 + beq _023011A8 + mov r0, #0xc + bl ov00_022F5AE4 + movs r4, r0 + bne _0230086C + ldr r1, _023011C8 @ =0x0231AE54 + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230086C: + ldr r1, _023011CC @ =0x0231AE64 + add r2, sp, #0x150 + mov r0, r7 + mov r3, #0x1000 + bl ov00_0230BA28 + cmp r0, #0 + bne _023008B8 + ldr r2, _023011BC @ =0x0231AE18 + mov r0, r6 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r6 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023008B8: + add r0, sp, #0x150 + bl FUN_02089678 + add r0, r0, #1 + bl ov00_022F5AE4 + str r0, [r4, #8] + cmp r0, #0 + bne _023008F0 + ldr r1, _023011C8 @ =0x0231AE54 + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023008F0: + add r1, sp, #0x150 + bl FUN_02089694 + str sb, [r4] + str r5, [r4, #4] + mov r2, #0 + str r2, [sp] + mov r2, #0xb + add r1, sp, #8 + str r2, [sp, #4] + mov r0, r6 + mov r3, r4 + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _023011A8 + add sp, sp, #0x150 + add sp, sp, #0x1000 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300938: + mov r0, r6 + mov r1, sb + bl ov00_0230899C + movs r8, r0 + bne _02300968 + ldr r1, _023011C8 @ =0x0231AE54 + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300968: + ldr r1, _023011CC @ =0x0231AE64 + add r2, sp, #0x150 + mov r0, r7 + mov r3, #0x1000 + bl ov00_0230BA28 + cmp r0, #0 + bne _023009B4 + ldr r2, _023011BC @ =0x0231AE18 + mov r0, r6 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r6 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023009B4: + ldr r1, _023011D0 @ =0x0231AE6C + add r0, sp, #0x150 + bl FUN_02089A70 + movs r7, r0 + bne _023009F8 + ldr r2, _023011BC @ =0x0231AE18 + mov r0, r6 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r6 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023009F8: + mov r1, #0 + add r0, r7, #8 + strb r1, [r7] + bl FUN_02089678 + cmp r0, #0x20 + beq _02300A40 + ldr r2, _023011BC @ =0x0231AE18 + mov r0, r6 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r6 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300A40: + ldr r0, [r8, #0x14] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r8, #0x14] + add r0, r7, #8 + bl ov00_022F5514 + str r0, [r8, #0x14] + ldr r0, [r8, #0x18] + add r0, r0, #1 + str r0, [r8, #0x18] + ldr r1, [r4, #0x1b0] + ldr r0, [r4, #0x1b4] + str r1, [sp, #0x10] + str r0, [sp, #0x14] + cmp r1, #0 + beq _023011A8 + ldr r0, _023011D4 @ =0x0000040C + bl ov00_022F5AE4 + movs r4, r0 + bne _02300AAC + ldr r1, _023011C8 @ =0x0231AE54 + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300AAC: + ldr r2, _023011D8 @ =0x00000401 + add r1, sp, #0x150 + add r0, r4, #8 + bl ov00_0230B930 + str sb, [r4] + str r5, [r4, #4] + mov r2, #0 + str r2, [sp] + mov r2, #6 + add r1, sp, #0x10 + str r2, [sp, #4] + mov r0, r6 + mov r3, r4 + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _023011A8 + add sp, sp, #0x150 + add sp, sp, #0x1000 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300AFC: + ldr r1, [r4, #0x1e0] + ldr r0, [r4, #0x1e4] + str r1, [sp, #0x18] + str r0, [sp, #0x1c] + cmp r1, #0 + beq _023011A8 + mov r0, #8 + bl ov00_022F5AE4 + movs r3, r0 + bne _02300B40 + ldr r1, _023011C8 @ =0x0231AE54 + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300B40: + str sb, [r3] + str r5, [r3, #4] + mov r2, #0 + str r2, [sp] + mov r2, #0xa + add r1, sp, #0x18 + str r2, [sp, #4] + mov r0, r6 + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _023011A8 + add sp, sp, #0x150 + add sp, sp, #0x1000 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300B7C: + ldr r1, [r4, #0x1e8] + ldr r0, [r4, #0x1ec] + str r1, [sp, #0x20] + str r0, [sp, #0x24] + cmp r1, #0 + beq _023011A8 + mov r0, #8 + bl ov00_022F5AE4 + movs r3, r0 + bne _02300BC0 + ldr r1, _023011C8 @ =0x0231AE54 + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300BC0: + str sb, [r3] + str r5, [r3, #4] + mov r2, #0 + str r2, [sp] + mov r2, #0xc + add r1, sp, #0x20 + str r2, [sp, #4] + mov r0, r6 + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _023011A8 + add sp, sp, #0x150 + add sp, sp, #0x1000 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300BFC: + mov r0, r6 + mov r1, sb + bl ov00_0230899C + movs r8, r0 + bne _02300C2C + ldr r1, _023011C8 @ =0x0231AE54 + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300C2C: + ldr r0, [r8, #8] + cmp r0, #0 + bne _02300CCC + mov r0, #0x1c + bl ov00_022F5AE4 + str r0, [r8, #8] + cmp r0, #0 + bne _02300C68 + ldr r1, _023011C8 @ =0x0231AE54 + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300C68: + mov r2, #7 + mov r1, #0 +_02300C70: + strb r1, [r0] + strb r1, [r0, #1] + strb r1, [r0, #2] + strb r1, [r0, #3] + add r0, r0, #4 + subs r2, r2, #1 + bne _02300C70 + ldr r0, [r8, #0xc] + cmp r0, #0 + beq _02300CB8 + ldr r1, [r0] + ldr r0, [r8, #8] + str r1, [r0] + ldr r0, [r8, #0xc] + bl ov00_02308D9C + mov r0, #0 + str r0, [r8, #0xc] + b _02300CCC +_02300CB8: + ldr r1, [r4, #0x5d0] + add r0, r1, #1 + str r0, [r4, #0x5d0] + ldr r0, [r8, #8] + str r1, [r0] +_02300CCC: + ldr r1, _023011CC @ =0x0231AE64 + add r2, sp, #0x150 + mov r0, r7 + mov r3, #0x1000 + ldr sl, [r8, #8] + bl ov00_0230BA28 + cmp r0, #0 + bne _02300D1C + ldr r2, _023011BC @ =0x0231AE18 + mov r0, r6 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r6 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300D1C: + ldr r1, _023011DC @ =0x0231AE78 + add r0, sp, #0x150 + add r2, sp, #0x40 + mov r3, #0x10 + bl ov00_0230BA28 + cmp r0, #0 + bne _02300D68 + ldr r2, _023011BC @ =0x0231AE18 + mov r0, r6 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r6 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300D68: + add r0, sp, #0x40 + bl FUN_0208B360 + str r0, [sl, #4] + ldr r0, [sl, #8] + bl ov00_022F5B14 + mov r0, #0 + str r0, [sl, #8] + ldr r1, _023011E0 @ =0x0231AE7C + add r0, sp, #0x150 + add r2, sp, #0x50 + mov r3, #0x100 + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + strbeq r0, [sp, #0x50] + add r0, sp, #0x50 + bl ov00_022F5514 + str r0, [sl, #8] + cmp r0, #0 + bne _02300DD4 + ldr r1, _023011C8 @ =0x0231AE54 + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300DD4: + ldr r0, [sl, #0xc] + bl ov00_022F5B14 + mov r7, #0 + ldr r1, _023011E4 @ =0x0231AE84 + add r0, sp, #0x150 + add r2, sp, #0x50 + mov r3, #0x100 + str r7, [sl, #0xc] + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, r7 + strbeq r0, [sp, #0x50] + add r0, sp, #0x50 + bl ov00_022F5514 + str r0, [sl, #0xc] + cmp r0, #0 + bne _02300E34 + ldr r1, _023011C8 @ =0x0231AE54 + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300E34: + ldr r1, _023011E8 @ =0x0231AE8C + add r0, sp, #0x150 + add r2, sp, #0x40 + mov r3, #0x10 + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + beq _02300EAC + add r0, sp, #0x40 + bl FUN_0208B360 + mov r8, r0 + add r0, sp, #0x40 + bl FUN_0208B360 + mov fp, r0 + add r0, sp, #0x40 + bl FUN_0208B360 + mov r7, r0 + add r0, sp, #0x40 + bl FUN_0208B360 + lsr r1, r7, #0x18 + lsr r0, r0, #8 + lsl r2, fp, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + lsl r3, r8, #0x18 + orr r0, r1, r0 + and r2, r2, #0xff0000 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 +_02300EAC: + ldr r1, _023011EC @ =0x0231AE94 + str r0, [sl, #0x10] + add r0, sp, #0x150 + add r2, sp, #0x40 + mov r3, #0x10 + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + beq _02300EF4 + add r0, sp, #0x40 + bl FUN_0208B360 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r1, r0, #8 + lsl r0, r0, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 +_02300EF4: + ldr r1, _023011F0 @ =0x0231AE98 + strh r0, [sl, #0x14] + add r0, sp, #0x150 + add r2, sp, #0x40 + mov r3, #0x10 + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + beq _02300F20 + add r0, sp, #0x40 + bl FUN_0208B360 +_02300F20: + str r0, [sl, #0x18] + ldr r1, [r4, #0x1b8] + ldr r0, [r4, #0x1bc] + str r1, [sp, #0x28] + str r0, [sp, #0x2c] + cmp r1, #0 + beq _023011A8 + mov r0, #0xc + bl ov00_022F5AE4 + movs r3, r0 + bne _02300F68 + ldr r1, _023011C8 @ =0x0231AE54 + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300F68: + str sb, [r3] + ldr r0, [sl] + mov r2, #0 + str r0, [r3, #8] + str r5, [r3, #4] + str r2, [sp] + mov r2, #5 + add r1, sp, #0x28 + str r2, [sp, #4] + mov r0, r6 + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _023011A8 + add sp, sp, #0x150 + add sp, sp, #0x1000 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300FAC: + ldr r1, _023011CC @ =0x0231AE64 + add r2, sp, #0x150 + mov r0, r7 + mov r3, #0x1000 + bl ov00_0230BA28 + cmp r0, #0 + bne _02300FF8 + ldr r2, _023011BC @ =0x0231AE18 + mov r0, r6 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r6 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02300FF8: + ldr r1, _023011EC @ =0x0231AE94 + add r0, sp, #0x150 + bl FUN_02089A70 + cmp r0, #0 + bne _0230103C + ldr r2, _023011BC @ =0x0231AE18 + mov r0, r6 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r6 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230103C: + ldrsb r1, [r0, #3] + cmp r1, #0 + bne _02301078 + ldr r2, _023011BC @ =0x0231AE18 + mov r0, r6 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r6 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02301078: + add r0, r0, #3 + bl FUN_0208B360 + mov r5, r0 + ldr r1, _023011F4 @ =0x0231AEA0 + add r0, sp, #0x150 + bl FUN_02089A70 + movs r1, r0 + moveq r0, #0 + strbeq r0, [sp, #0x50] + beq _023010B0 + add r0, sp, #0x50 + add r1, r1, #3 + mov r2, #0x100 + bl ov00_0230B930 +_023010B0: + ldr r1, [r4, #0x1d0] + ldr r0, [r4, #0x1d4] + str r1, [sp, #0x30] + str r0, [sp, #0x34] + cmp r1, #0 + beq _023011A8 + mov r0, #0x108 + bl ov00_022F5AE4 + movs r4, r0 + bne _023010F4 + ldr r1, _023011C8 @ =0x0231AE54 + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023010F4: + str sb, [r4] + add r1, sp, #0x50 + add r0, r4, #8 + str r5, [r4, #4] + bl FUN_02089694 + mov r2, #0 + str r2, [sp] + add r1, sp, #0x30 + str r2, [sp, #4] + mov r0, r6 + mov r3, r4 + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _023011A8 + add sp, sp, #0x150 + add sp, sp, #0x1000 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230113C: + ldr r1, _023011CC @ =0x0231AE64 + add r2, sp, #0x150 + mov r0, r7 + mov r3, #0x1000 + bl ov00_0230BA28 + cmp r0, #0 + bne _02301188 + ldr r2, _023011BC @ =0x0231AE18 + mov r0, r6 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r6 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x150 + add sp, sp, #0x1000 + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02301188: + mov r4, #0 + str r4, [sp] + ldr r3, _023011F8 @ =0x0231AEA4 + mov r0, r6 + mov r1, sb + mov r2, #0x67 + str r4, [sp, #4] + bl ov00_02301B2C +_023011A8: + mov r0, #0 + add sp, sp, #0x150 + add sp, sp, #0x1000 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_023011B8: .4byte 0x0231AE10 +_023011BC: .4byte 0x0231AE18 +_023011C0: .4byte 0x0231AE48 +_023011C4: .4byte 0x0231AE4C +_023011C8: .4byte 0x0231AE54 +_023011CC: .4byte 0x0231AE64 +_023011D0: .4byte 0x0231AE6C +_023011D4: .4byte 0x0000040C +_023011D8: .4byte 0x00000401 +_023011DC: .4byte 0x0231AE78 +_023011E0: .4byte 0x0231AE7C +_023011E4: .4byte 0x0231AE84 +_023011E8: .4byte 0x0231AE8C +_023011EC: .4byte 0x0231AE94 +_023011F0: .4byte 0x0231AE98 +_023011F4: .4byte 0x0231AEA0 +_023011F8: .4byte 0x0231AEA4 + arm_func_end ov00_023005CC + + arm_func_start ov00_023011FC +ov00_023011FC: @ 0x023011FC + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x14 + sub sp, sp, #0x400 + mov r7, r0 + mov r0, #0 + mov r6, r1 + ldr r4, [r7] + bl ov00_022F5478 + mov fp, r0 + ldr r1, _02301A08 @ =0x0231AEA8 + add r2, sp, #0x14 + mov r0, r6 + mov r3, #0x400 + bl ov00_0230BA28 + cmp r0, #0 + bne _0230126C + ldr r2, _02301A0C @ =0x0231AE18 + mov r0, r7 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x14 + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230126C: + add r0, sp, #0x14 + bl FUN_0208B360 + str r0, [sp, #8] + ldr r1, [sp, #8] + mov r0, r7 + bl ov00_0230899C + movs r8, r0 + bne _023012A8 + ldr r1, _02301A10 @ =0x0231AE54 + mov r0, r7 + bl ov00_0230BCCC + add sp, sp, #0x14 + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023012A8: + ldr r5, [r8, #0xc] + cmp r5, #0 + bne _02301374 + mov r0, #0x3c + bl ov00_022F5AE4 + str r0, [r8, #0xc] + cmp r0, #0 + bne _023012E4 + ldr r1, _02301A10 @ =0x0231AE54 + mov r0, r7 + bl ov00_0230BCCC + add sp, sp, #0x14 + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023012E4: + mov r1, #0 + mov r2, #0x3c + bl FUN_02087308 + ldr r0, [r8, #8] + cmp r0, #0 + beq _0230131C + ldr r1, [r0] + ldr r0, [r8, #0xc] + str r1, [r0] + ldr r0, [r8, #8] + bl ov00_02308D68 + mov r0, #0 + str r0, [r8, #8] + b _02301330 +_0230131C: + ldr r1, [r4, #0x5d0] + add r0, r1, #1 + str r0, [r4, #0x5d0] + ldr r0, [r8, #0xc] + str r1, [r0] +_02301330: + ldr r2, _02301A14 @ =ov00_023066EC + mov r0, #8 + mov r1, #1 + bl ov00_022F4700 + ldr r1, [r8, #0xc] + str r0, [r1, #0x38] + ldr r5, [r8, #0xc] + ldr r0, [r5, #0x38] + cmp r0, #0 + bne _02301374 + ldr r1, _02301A10 @ =0x0231AE54 + mov r0, r7 + bl ov00_0230BCCC + add sp, sp, #0x14 + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02301374: + ldr r1, _02301A18 @ =0x0231AEB4 + add r2, sp, #0x14 + mov r0, r6 + mov r3, #0x400 + bl ov00_0230BA28 + cmp r0, #0 + bne _023013C0 + ldr r2, _02301A0C @ =0x0231AE18 + mov r0, r7 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x14 + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023013C0: + add r0, sp, #0x14 + bl FUN_0208B360 + str r0, [r5, #4] + ldr r1, _02301A1C @ =0x0231AEBC + add r2, sp, #0x14 + mov r0, r6 + mov r3, #0x400 + bl ov00_0230BA28 + cmp r0, #0 + bne _02301418 + ldr r2, _02301A0C @ =0x0231AE18 + mov r0, r7 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x14 + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02301418: + add r0, sp, #0x14 + bl FUN_0208B360 + mov sl, r0 + add r0, sp, #0x14 + bl FUN_0208B360 + mov sb, r0 + add r0, sp, #0x14 + bl FUN_0208B360 + mov r8, r0 + add r0, sp, #0x14 + bl FUN_0208B360 + lsl r1, sl, #0x18 + lsr r3, r8, #0x18 + lsr r0, r0, #8 + and r2, r1, #0xff000000 + lsl r1, sb, #8 + and r3, r3, #0xff + and r0, r0, #0xff00 + orr r0, r3, r0 + and r1, r1, #0xff0000 + orr r0, r1, r0 + orr r0, r2, r0 + str r0, [r5, #0x1c] + ldr r1, _02301A20 @ =0x0231AEC4 + mov r0, r6 + add r2, sp, #0x14 + mov r3, #0x400 + bl ov00_0230BA28 + cmp r0, #0 + bne _023014C0 + ldr r2, _02301A0C @ =0x0231AE18 + mov r0, r7 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x14 + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023014C0: + add r0, sp, #0x14 + bl FUN_0208B360 + strh r0, [r5, #0x20] + ldr r1, _02301A24 @ =0x0231AECC + add r2, sp, #0x14 + mov r0, r6 + mov r3, #0x400 + bl ov00_0230BA28 + cmp r0, #0 + bne _02301518 + ldr r2, _02301A0C @ =0x0231AE18 + mov r0, r7 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x14 + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02301518: + add r0, sp, #0x14 + bl FUN_0208B360 + mov sl, r0 + add r0, sp, #0x14 + bl FUN_0208B360 + mov sb, r0 + add r0, sp, #0x14 + bl FUN_0208B360 + mov r8, r0 + add r0, sp, #0x14 + bl FUN_0208B360 + lsl r1, sl, #0x18 + lsr r3, r8, #0x18 + lsr r0, r0, #8 + and r2, r1, #0xff000000 + lsl r1, sb, #8 + and r3, r3, #0xff + and r0, r0, #0xff00 + orr r0, r3, r0 + and r1, r1, #0xff0000 + orr r0, r1, r0 + orr r0, r2, r0 + str r0, [r5, #0x24] + ldr r1, _02301A28 @ =0x0231AED8 + mov r0, r6 + add r2, sp, #0x14 + mov r3, #0x400 + bl ov00_0230BA28 + cmp r0, #0 + bne _023015C0 + ldr r2, _02301A0C @ =0x0231AE18 + mov r0, r7 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x14 + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023015C0: + add r0, sp, #0x14 + bl FUN_0208B360 + mov sl, r0 + add r0, sp, #0x14 + bl FUN_0208B360 + mov sb, r0 + add r0, sp, #0x14 + bl FUN_0208B360 + mov r8, r0 + add r0, sp, #0x14 + bl FUN_0208B360 + lsl r1, sl, #0x18 + lsr r3, r8, #0x18 + lsr r0, r0, #8 + and r2, r1, #0xff000000 + lsl r1, sb, #8 + and r3, r3, #0xff + and r0, r0, #0xff00 + orr r0, r3, r0 + and r1, r1, #0xff0000 + orr r0, r1, r0 + orr r0, r2, r0 + str r0, [r5, #0x28] + ldr r1, _02301A2C @ =0x0231AEE4 + mov r0, r6 + add r2, sp, #0x14 + mov r3, #0x400 + bl ov00_0230BA28 + cmp r0, #0 + bne _02301668 + ldr r2, _02301A0C @ =0x0231AE18 + mov r0, r7 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x14 + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02301668: + add r0, sp, #0x14 + bl FUN_0208B360 + strh r0, [r5, #0x2c] + ldr r1, _02301A30 @ =0x0231AEEC + add r2, sp, #0x14 + mov r0, r6 + mov r3, #0x400 + bl ov00_0230BA28 + cmp r0, #0 + bne _023016C0 + ldr r2, _02301A0C @ =0x0231AE18 + mov r0, r7 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x14 + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023016C0: + add r0, sp, #0x14 + bl FUN_0208B360 + strh r0, [r5, #0x2e] + ldr r1, _02301A34 @ =0x0231AEF4 + add r2, sp, #0x14 + mov r0, r6 + mov r3, #0x400 + bl ov00_0230BA28 + cmp r0, #0 + bne _02301718 + ldr r2, _02301A0C @ =0x0231AE18 + mov r0, r7 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x14 + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02301718: + add r0, sp, #0x14 + bl FUN_0208B360 + str r0, [r5, #0x18] + ldr r0, [r5, #8] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r5, #8] + ldr r1, _02301A38 @ =0x0231AF00 + mov r0, r6 + add r2, sp, #0x14 + mov r3, #0x400 + bl ov00_0230BA28 + cmp r0, #0 + bne _02301780 + ldr r2, _02301A0C @ =0x0231AE18 + mov r0, r7 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x14 + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02301780: + add r0, sp, #0x14 + bl ov00_022F5514 + str r0, [r5, #8] + ldr r0, [r5, #0xc] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r5, #0xc] + ldr r1, _02301A3C @ =0x0231AF0C + mov r0, r6 + add r2, sp, #0x14 + mov r3, #0x400 + bl ov00_0230BA28 + cmp r0, #0 + bne _023017E8 + ldr r2, _02301A0C @ =0x0231AE18 + mov r0, r7 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x14 + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023017E8: + add r0, sp, #0x14 + bl ov00_022F5514 + str r0, [r5, #0xc] + ldr r0, [r5, #0x10] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r5, #0x10] + ldr r1, _02301A40 @ =0x0231AF18 + mov r0, r6 + add r2, sp, #0x14 + mov r3, #0x400 + bl ov00_0230BA28 + cmp r0, #0 + bne _02301850 + ldr r2, _02301A0C @ =0x0231AE18 + mov r0, r7 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x14 + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02301850: + add r0, sp, #0x14 + bl ov00_022F5514 + str r0, [r5, #0x10] + ldr r0, [r5, #0x14] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r5, #0x14] + ldr r1, _02301A44 @ =0x0231AF24 + mov r0, r6 + add r2, sp, #0x14 + mov r3, #0x400 + bl ov00_0230BA28 + cmp r0, #0 + bne _023018B8 + ldr r2, _02301A0C @ =0x0231AE18 + mov r0, r7 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x14 + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023018B8: + add r0, sp, #0x14 + bl ov00_022F5514 + str r0, [r5, #0x14] + ldr r1, _02301A48 @ =0x0231AF30 + add r2, sp, #0x14 + mov r0, r6 + mov r3, #0x400 + bl ov00_0230BA28 + cmp r0, #0 + bne _02301910 + ldr r2, _02301A0C @ =0x0231AE18 + mov r0, r7 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x14 + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02301910: + add r0, sp, #0x14 + bl FUN_0208B360 + str r0, [r5, #0x34] + ldr r1, _02301A4C @ =0x0231AF3C + add r2, sp, #0x14 + mov r0, r6 + mov r3, #0x400 + bl ov00_0230BA28 + cmp r0, #0 + bne _02301968 + ldr r2, _02301A0C @ =0x0231AE18 + mov r0, r7 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x14 + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02301968: + add r0, sp, #0x14 + bl FUN_0208B360 + str r0, [r5, #0x30] + ldr r1, [r4, #0x1b8] + ldr r0, [r4, #0x1bc] + str r1, [sp, #0xc] + str r0, [sp, #0x10] + cmp r1, #0 + beq _023019F8 + mov r0, #0xc + bl ov00_022F5AE4 + movs r3, r0 + bne _023019B8 + ldr r1, _02301A10 @ =0x0231AE54 + mov r0, r7 + bl ov00_0230BCCC + add sp, sp, #0x14 + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023019B8: + str fp, [r3, #4] + ldr r0, [r5] + mov r2, #0 + str r0, [r3, #8] + ldr r0, [sp, #8] + add r1, sp, #0xc + str r0, [r3] + str r2, [sp] + str r2, [sp, #4] + mov r0, r7 + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + addne sp, sp, #0x14 + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023019F8: + mov r0, #0 + add sp, sp, #0x14 + add sp, sp, #0x400 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02301A08: .4byte 0x0231AEA8 +_02301A0C: .4byte 0x0231AE18 +_02301A10: .4byte 0x0231AE54 +_02301A14: .4byte ov00_023066EC +_02301A18: .4byte 0x0231AEB4 +_02301A1C: .4byte 0x0231AEBC +_02301A20: .4byte 0x0231AEC4 +_02301A24: .4byte 0x0231AECC +_02301A28: .4byte 0x0231AED8 +_02301A2C: .4byte 0x0231AEE4 +_02301A30: .4byte 0x0231AEEC +_02301A34: .4byte 0x0231AEF4 +_02301A38: .4byte 0x0231AF00 +_02301A3C: .4byte 0x0231AF0C +_02301A40: .4byte 0x0231AF18 +_02301A44: .4byte 0x0231AF24 +_02301A48: .4byte 0x0231AF30 +_02301A4C: .4byte 0x0231AF3C + arm_func_end ov00_023011FC + + arm_func_start ov00_02301A50 +ov00_02301A50: @ 0x02301A50 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0xdb0 + mov r7, r0 + mov r5, r2 + mov r6, r1 + ldr r2, _02301B14 @ =0x00000DAD + add r0, sp, #0 + mov r1, r3 + ldr r4, [r7] + bl ov00_0230B930 + ldr r2, _02301B18 @ =0x0231AE10 + mov r0, r7 + add r1, r4, #0x210 + bl ov00_02302638 + mov r0, r7 + mov r2, r5 + add r1, r4, #0x210 + bl ov00_02302668 + ldr r2, _02301B1C @ =0x0231ADE4 + mov r0, r7 + add r1, r4, #0x210 + bl ov00_02302638 + ldr r2, [r4, #0x198] + mov r0, r7 + add r1, r4, #0x210 + bl ov00_02302668 + ldr r2, _02301B20 @ =0x0231AF4C + mov r0, r7 + add r1, r4, #0x210 + bl ov00_02302638 + mov r2, r6 + mov r0, r7 + add r1, r4, #0x210 + bl ov00_02302668 + ldr r2, _02301B24 @ =0x0231AE64 + mov r0, r7 + add r1, r4, #0x210 + bl ov00_02302638 + mov r0, r7 + add r1, r4, #0x210 + add r2, sp, #0 + bl ov00_02302638 + ldr r2, _02301B28 @ =0x0231AE08 + mov r0, r7 + add r1, r4, #0x210 + bl ov00_02302638 + mov r0, #0 + add sp, sp, #0xdb0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02301B14: .4byte 0x00000DAD +_02301B18: .4byte 0x0231AE10 +_02301B1C: .4byte 0x0231ADE4 +_02301B20: .4byte 0x0231AF4C +_02301B24: .4byte 0x0231AE64 +_02301B28: .4byte 0x0231AE08 + arm_func_end ov00_02301A50 + + arm_func_start ov00_02301B2C +ov00_02301B2C: @ 0x02301B2C + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #4 + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, r3 + bl ov00_02307F60 + movs r4, r0 + bne _02301C0C + add r2, sp, #0 + mov r0, r8 + mov r1, r7 + bl ov00_02308A4C + cmp r0, #0 + ldrne r0, [sp] + ldrne r0, [r0, #0xc] + cmpne r0, #0 + ldrhne r0, [r0, #0x20] + cmpne r0, #0 + bne _02301BAC + ldr r0, [sp, #0x20] + cmp r0, #0xb00 + addeq sp, sp, #4 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, pc} + mov r0, r8 + mov r1, r7 + mov r2, r6 + mov r3, r5 + bl ov00_02301A50 + add sp, sp, #4 + pop {r3, r4, r5, r6, r7, r8, pc} +_02301BAC: + mov r0, r8 + mov r1, r7 + mov r2, #1 + bl ov00_02307FF4 + movs r4, r0 + addeq sp, sp, #4 + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, r8, pc} + ldr r0, [sp] + mov r1, r4 + ldr r0, [r0, #0x1c] + cmp r0, #0 + mov r0, r8 + bne _02301BF8 + bl ov00_02308080 + cmp r0, #0 + beq _02301C7C + add sp, sp, #4 + pop {r3, r4, r5, r6, r7, r8, pc} +_02301BF8: + bl ov00_023080E4 + cmp r0, #0 + beq _02301C7C + add sp, sp, #4 + pop {r3, r4, r5, r6, r7, r8, pc} +_02301C0C: + ldr r0, [r4] + cmp r0, #0x6a + bne _02301C7C + add r2, sp, #0 + mov r0, r8 + mov r1, r7 + bl ov00_02308A4C + cmp r0, #0 + beq _02301C7C + ldr r0, [sp] + ldr r1, [r0, #0xc] + cmp r1, #0 + movne r0, #0 + strhne r0, [r1, #0x20] + ldr r0, [sp, #0x20] + cmp r0, #0xb00 + addeq sp, sp, #4 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, pc} + cmp r6, #0x64 + bge _02301C7C + mov r0, r8 + mov r1, r7 + mov r2, r6 + mov r3, r5 + bl ov00_02301A50 + add sp, sp, #4 + pop {r3, r4, r5, r6, r7, r8, pc} +_02301C7C: + ldr r1, [sp, #0x24] + cmp r1, #0 + beq _02301C90 + mov r0, r4 + bl ov00_023085D0 +_02301C90: + mov r0, r8 + mov r1, r4 + mov r2, r6 + mov r3, r5 + bl ov00_023081E4 + cmp r0, #0 + moveq r0, #0 + add sp, sp, #4 + pop {r3, r4, r5, r6, r7, r8, pc} + arm_func_end ov00_02301B2C + + arm_func_start ov00_02301CB4 +ov00_02301CB4: @ 0x02301CB4 + push {r4, r5, lr} + sub sp, sp, #0xc + mov r4, r1 + add r1, sp, #8 + mov r5, r0 + bl ov00_02306958 + cmp r0, #0 + addne sp, sp, #0xc + popne {r4, r5, pc} + ldr r0, [sp, #8] + mov r2, #0x69 + cmp r0, #0 + ldreq r0, _02301D4C @ =0x0231AF50 + streq r0, [sp, #8] + mov r0, #0xb00 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + ldr r1, [r4, #0x10] + ldr r3, [sp, #8] + mov r0, r5 + bl ov00_02301B2C + cmp r0, #0 + addne sp, sp, #0xc + popne {r4, r5, pc} + ldr r4, [sp, #8] + ldr r1, _02301D4C @ =0x0231AF50 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + beq _02301D40 + mov r0, r4 + bl ov00_022F5B14 + mov r0, #0 + str r0, [sp, #8] +_02301D40: + mov r0, #0 + add sp, sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_02301D4C: .4byte 0x0231AF50 + arm_func_end ov00_02301CB4 + + arm_func_start ov00_02301D50 +ov00_02301D50: @ 0x02301D50 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x3c + sub sp, sp, #0x800 + str r1, [sp, #8] + str r2, [sp, #0xc] + ldr r1, [r1, #0x10] + add r2, sp, #0x38 + mov sl, r0 + bl ov00_02308A4C + cmp r0, #0 + bne _02301D98 + ldr r1, _02302190 @ =0x0231AF54 + mov r0, sl + bl ov00_0230BCCC + add sp, sp, #0x3c + add sp, sp, #0x800 + mov r0, #2 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02301D98: + ldr r1, _02302194 @ =0x0231AF50 + ldr r0, [sp, #0xc] + bl FUN_0208982C + cmp r0, #0 + bne _02301E58 + ldr r0, [sp, #8] + ldr r4, [r0, #0x44] + cmp r4, #0 + beq _02301DD0 +_02301DBC: + ldr r0, [r4, #0x10] + cmp r0, #0x68 + ldrne r4, [r4, #0xc] + cmpne r4, #0 + bne _02301DBC +_02301DD0: + cmp r4, #0 + addeq sp, sp, #0x3c + addeq sp, sp, #0x800 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r4, #0x10] + cmp r0, #0x68 + bne _02302180 + ldr r0, [r4, #8] + cmp r0, #0 + beq _02302180 + mov r0, #0x10 + bl ov00_022F5AE4 + ldmib r4, {r5, r6} + mov r3, r0 + mov r2, #0 + str r2, [r3, #4] + str r2, [r3, #0xc] + ldr r0, [sp, #8] + str r2, [r3, #8] + ldr r0, [r0, #0x10] + add r1, sp, #0x30 + str r0, [r3] + str r2, [sp] + mov r0, sl + str r6, [sp, #0x30] + str r5, [sp, #0x34] + str r2, [sp, #4] + ldm r1, {r1, r2} + bl ov00_02302E74 + ldr r0, [sp, #8] + mov r1, r4 + bl ov00_02308618 + b _02302180 +_02301E58: + mov r5, #0 + add r4, sp, #0x400 + add r3, sp, #0x600 + ldr r1, [sp, #0xc] + add r4, r4, #0x3c + add r2, sp, #0x28 + add r3, r3, #0x3c + mov r0, sl + str r5, [sp, #0x2c] + str r5, [sp, #0x28] + str r5, [sp, #0x24] + str r4, [sp] + bl ov00_0230BB58 + add r0, sp, #0x600 + ldr r1, _02302198 @ =0x0231AF68 + add r0, r0, #0x3c + bl FUN_0208982C + cmp r0, #0 + beq _02301ED4 + ldr r2, _0230219C @ =0x0231AF70 + mov r0, sl + mov r1, #1 + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, r5 + bl ov00_02302DEC + add sp, sp, #0x3c + add sp, sp, #0x800 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02301ED4: + mov r0, r4 + bl FUN_0208B360 + movs r8, r0 + bne _02301F90 + ldr r0, [sp, #8] + ldr r4, [r0, #0x44] + cmp r4, #0 + beq _02301F08 +_02301EF4: + ldr r0, [r4, #0x10] + cmp r0, #0x68 + ldrne r4, [r4, #0xc] + cmpne r4, #0 + bne _02301EF4 +_02301F08: + cmp r4, #0 + addeq sp, sp, #0x3c + addeq sp, sp, #0x800 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r4, #0x10] + cmp r0, #0x68 + bne _02302180 + ldr r0, [r4, #8] + cmp r0, #0 + beq _02302180 + mov r0, #0x10 + bl ov00_022F5AE4 + ldmib r4, {r5, r6} + mov r3, r0 + mov r2, #0 + str r2, [r3, #4] + str r2, [r3, #0xc] + ldr r0, [sp, #8] + str r2, [r3, #8] + ldr r0, [r0, #0x10] + add r1, sp, #0x1c + str r0, [r3] + str r2, [sp] + mov r0, sl + str r6, [sp, #0x1c] + str r5, [sp, #0x20] + str r2, [sp, #4] + ldm r1, {r1, r2} + bl ov00_02302E74 + ldr r0, [sp, #8] + mov r1, r4 + bl ov00_02308618 + b _02302180 +_02301F90: + lsl r4, r8, #2 + mov r0, r4 + bl ov00_022F5AE4 + str r0, [sp, #0x10] + mov r0, r4 + bl ov00_022F5AE4 + mov fp, r0 + cmp r8, #0 + mov sb, r5 + ble _023020D4 + add r7, sp, #0x400 + add r6, sp, #0x600 + add r5, sp, #0x23c + add r4, sp, #0x3c + add r7, r7, #0x3c + add r6, r6, #0x3c +_02301FD0: + ldr r1, [sp, #0xc] + mov r0, sl + add r2, sp, #0x28 + mov r3, r6 + str r7, [sp] + bl ov00_0230BB58 + mov r0, r6 + bl FUN_02089678 + mov r1, #2 + str r1, [sp] + mov r2, r0 + mov r0, r6 + mov r1, r5 + add r3, sp, #0x2c + bl ov00_022F5798 + ldr r2, [sp, #0x2c] + mov r1, #0 + mov r0, r7 + strb r1, [r5, r2] + bl FUN_02089678 + mov r1, #2 + str r1, [sp] + mov r2, r0 + mov r0, r7 + mov r1, r4 + add r3, sp, #0x2c + bl ov00_022F5798 + ldr r2, [sp, #0x2c] + mov r1, #0 + mov r0, r5 + strb r1, [r4, r2] + bl ov00_022F5514 + ldr r1, [sp, #0x10] + str r0, [r1, sb, lsl #2] + mov r0, r4 + bl ov00_022F5514 + str r0, [fp, sb, lsl #2] + ldr r1, [sp, #0x38] + mov r0, sl + ldr r1, [r1, #0xc] + mov r2, r5 + ldr r1, [r1, #0x38] + add r3, sp, #0x24 + bl ov00_023068C4 + cmp r0, #0 + ldreq r0, [sp, #0x24] + cmpeq r0, #0 + mov r0, sl + bne _023020B0 + ldr r1, [sp, #0x38] + mov r2, r5 + ldr r1, [r1, #0xc] + mov r3, r4 + ldr r1, [r1, #0x38] + bl ov00_02306798 + b _023020C8 +_023020B0: + ldr r1, [sp, #0x38] + mov r2, r5 + ldr r1, [r1, #0xc] + mov r3, r4 + ldr r1, [r1, #0x38] + bl ov00_02306820 +_023020C8: + add sb, sb, #1 + cmp sb, r8 + blt _02301FD0 +_023020D4: + ldr r0, [sp, #8] + ldr r4, [r0, #0x44] + cmp r4, #0 + beq _023020F8 +_023020E4: + ldr r0, [r4, #0x10] + cmp r0, #0x68 + ldrne r4, [r4, #0xc] + cmpne r4, #0 + bne _023020E4 +_023020F8: + cmp r4, #0 + addeq sp, sp, #0x3c + addeq sp, sp, #0x800 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r4, #0x10] + cmp r0, #0x68 + bne _02302180 + ldr r0, [r4, #8] + cmp r0, #0 + beq _02302180 + mov r0, #0x10 + bl ov00_022F5AE4 + ldmib r4, {r5, r6} + mov r3, r0 + ldr r0, [sp, #0x10] + str r8, [r3, #0xc] + stmib r3, {r0, fp} + ldr r0, [sp, #8] + mov r2, #0 + ldr r0, [r0, #0x10] + add r1, sp, #0x14 + str r0, [r3] + str r2, [sp] + mov r2, #0xe + mov r0, sl + str r6, [sp, #0x14] + str r5, [sp, #0x18] + str r2, [sp, #4] + ldm r1, {r1, r2} + bl ov00_02302E74 + ldr r0, [sp, #8] + mov r1, r4 + bl ov00_02308618 +_02302180: + mov r0, #0 + add sp, sp, #0x3c + add sp, sp, #0x800 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02302190: .4byte 0x0231AF54 +_02302194: .4byte 0x0231AF50 +_02302198: .4byte 0x0231AF68 +_0230219C: .4byte 0x0231AF70 + arm_func_end ov00_02301D50 + + arm_func_start ov00_023021A0 +ov00_023021A0: @ 0x023021A0 + push {r3, r4, r5, lr} + mov r4, r0 + add r2, sp, #0 + ldr r5, [r4] + bl ov00_02308A4C + cmp r0, #0 + bne _023021D0 + ldr r1, _02302268 @ =0x0231AF54 + mov r0, r4 + bl ov00_0230BCCC + mov r0, #2 + pop {r3, r4, r5, pc} +_023021D0: + ldr r1, [sp] + ldr r0, [r1, #0x14] + cmp r0, #0 + bne _023021F4 + ldr r1, _02302268 @ =0x0231AF54 + mov r0, r4 + bl ov00_0230BCCC + mov r0, #2 + pop {r3, r4, r5, pc} +_023021F4: + mov r0, r4 + bl ov00_02300524 + cmp r0, #0 + popne {r3, r4, r5, pc} + ldr r1, [sp] + ldr r0, [r1, #0x18] + sub r0, r0, #1 + str r0, [r1, #0x18] + ldr r0, [r5, #0x100] + cmp r0, #0 + bne _02302260 + ldr r1, [sp] + ldr r0, [r1, #0x18] + cmp r0, #0 + bgt _02302260 + ldr r0, [r1, #0x14] + bl ov00_022F5B14 + ldr r0, [sp] + mov r1, #0 + str r1, [r0, #0x14] + ldr r0, [sp] + bl ov00_02308E00 + cmp r0, #0 + beq _02302260 + ldr r1, [sp] + mov r0, r4 + bl ov00_02308BCC +_02302260: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_02302268: .4byte 0x0231AF54 + arm_func_end ov00_023021A0 +_0230226C: + .byte 0x08, 0x30, 0x91, 0xE5 + .byte 0x00, 0x00, 0x53, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x93, 0xE5, 0x02, 0x00, 0x50, 0xE1 + .byte 0x01, 0x00, 0x40, 0xC2, 0x00, 0x00, 0x83, 0xC5, 0x06, 0x00, 0x00, 0xCA, 0x0C, 0x10, 0x91, 0xE5 + .byte 0x00, 0x00, 0x51, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x91, 0xE5, 0x02, 0x00, 0x50, 0xE1 + .byte 0x01, 0x00, 0x40, 0xC2, 0x00, 0x00, 0x81, 0xC5, 0x01, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov00_023022B0 +ov00_023022B0: @ 0x023022B0 + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + mov r5, r2 + mov r6, r0 + add r2, sp, #0 + ldr r4, [r6] + bl ov00_02308A4C + cmp r0, #0 + bne _023022EC + ldr r1, _02302504 @ =0x0231AF54 + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #4 + mov r0, #2 + pop {r3, r4, r5, r6, pc} +_023022EC: + cmp r5, #1 + bne _02302358 + ldr r2, _02302508 @ =0x0231AF94 + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + ldr r2, _0230250C @ =0x0231ADE4 + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + ldr r2, [r4, #0x198] + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302668 + ldr r2, _02302510 @ =0x0231AFA0 + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + mov r0, r6 + add r1, r4, #0x210 + ldr r2, [sp] + ldr r2, [r2] + bl ov00_02302668 + mov r0, r6 + add r1, r4, #0x210 + ldr r2, _02302514 @ =0x0231AE08 + bl ov00_02302638 +_02302358: + ldr r0, [sp] + ldr r1, [r0, #8] + cmp r1, #0 + beq _023023F4 + ldr r0, [r1, #8] + ldr r5, [r1] + bl ov00_022F5B14 + ldr r0, [sp] + mov r1, #0 + ldr r0, [r0, #8] + str r1, [r0, #8] + ldr r0, [sp] + ldr r0, [r0, #8] + ldr r0, [r0, #0xc] + bl ov00_022F5B14 + ldr r0, [sp] + mov r1, #0 + ldr r0, [r0, #8] + str r1, [r0, #0xc] + ldr r0, [sp] + ldr r0, [r0, #8] + bl ov00_022F5B14 + ldr r0, [sp] + mov r1, #0 + str r1, [r0, #8] + ldr r0, [sp] + bl ov00_02308E00 + cmp r0, #0 + beq _023023D8 + ldr r1, [sp] + mov r0, r6 + bl ov00_02308BCC +_023023D8: + ldr r0, [r4, #0x5d0] + ldr r1, _02302518 @ =0x0230226C + sub r3, r0, #1 + mov r0, r6 + mov r2, r5 + str r3, [r4, #0x5d0] + bl ov00_02308CA8 +_023023F4: + ldr r0, [sp] + ldr r1, [r0, #0xc] + cmp r1, #0 + beq _023024F8 + ldr r0, [r1, #8] + ldr r5, [r1] + bl ov00_022F5B14 + ldr r0, [sp] + mov r1, #0 + ldr r0, [r0, #0xc] + str r1, [r0, #8] + ldr r0, [sp] + ldr r0, [r0, #0xc] + ldr r0, [r0, #0xc] + bl ov00_022F5B14 + ldr r0, [sp] + mov r1, #0 + ldr r0, [r0, #0xc] + str r1, [r0, #0xc] + ldr r0, [sp] + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x10] + bl ov00_022F5B14 + ldr r0, [sp] + mov r1, #0 + ldr r0, [r0, #0xc] + str r1, [r0, #0x10] + ldr r0, [sp] + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x14] + bl ov00_022F5B14 + ldr r0, [sp] + mov r1, #0 + ldr r0, [r0, #0xc] + str r1, [r0, #0x14] + ldr r0, [sp] + ldr r0, [r0, #0xc] + bl ov00_022F5B14 + ldr r0, [sp] + mov r1, #0 + str r1, [r0, #0xc] + ldr r0, [sp] + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x38] + cmp r0, #0 + beq _023024C0 + bl ov00_022F4758 + ldr r0, [sp] + mov r1, #0 + ldr r0, [r0, #0xc] + str r1, [r0, #0x38] +_023024C0: + ldr r0, [sp] + bl ov00_02308E00 + cmp r0, #0 + beq _023024DC + ldr r1, [sp] + mov r0, r6 + bl ov00_02308BCC +_023024DC: + ldr r0, [r4, #0x5d0] + ldr r1, _02302518 @ =0x0230226C + sub r3, r0, #1 + mov r0, r6 + mov r2, r5 + str r3, [r4, #0x5d0] + bl ov00_02308CA8 +_023024F8: + mov r0, #0 + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_02302504: .4byte 0x0231AF54 +_02302508: .4byte 0x0231AF94 +_0230250C: .4byte 0x0231ADE4 +_02302510: .4byte 0x0231AFA0 +_02302514: .4byte 0x0231AE08 +_02302518: .4byte 0x0230226C + arm_func_end ov00_023022B0 + + arm_func_start ov00_0230251C +ov00_0230251C: @ 0x0230251C + push {r4, r5, r6, r7, r8, lr} + mov r4, r1 + ldr r5, [r4, #8] + ldr r6, [r4, #4] + mov r8, r0 + mov r7, r2 + cmp r6, r5 + ldr r0, [r4] + bne _02302568 + add r6, r6, #0x800 + add r1, r6, #1 + bl ov00_022F5AFC + cmp r0, #0 + bne _02302568 + ldr r1, _02302590 @ =0x0231AFB0 + mov r0, r8 + bl ov00_0230BCCC + mov r0, #1 + pop {r4, r5, r6, r7, r8, pc} +_02302568: + strb r7, [r0, r5] + add r1, r5, #1 + mov r2, #0 + strb r2, [r0, r1] + ldr r1, [r4, #8] + add r1, r1, #1 + str r1, [r4, #8] + stm r4, {r0, r6} + mov r0, r2 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02302590: .4byte 0x0231AFB0 + arm_func_end ov00_0230251C + + arm_func_start ov00_02302594 +ov00_02302594: @ 0x02302594 + push {r4, r5, r6, r7, r8, sb, sl, lr} + movs r8, r2 + mov sl, r0 + mov sb, r1 + mov r7, r3 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + ldr r4, [sb, #8] + ldr r5, [sb, #4] + ldr r6, [sb] + sub r0, r5, r4 + cmp r0, r7 + bge _02302600 + cmp r7, #0x800 + movlt r0, #0x800 + movge r0, r7 + add r5, r5, r0 + mov r0, r6 + add r1, r5, #1 + bl ov00_022F5AFC + movs r6, r0 + bne _02302600 + ldr r1, _02302634 @ =0x0231AFB0 + mov r0, sl + bl ov00_0230BCCC + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_02302600: + mov r1, r8 + mov r2, r7 + add r0, r6, r4 + bl FUN_0208729C + add r1, r4, r7 + mov r0, #0 + strb r0, [r6, r1] + ldr r1, [sb, #8] + add r1, r1, r7 + str r1, [sb, #8] + str r5, [sb, #4] + str r6, [sb] + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_02302634: .4byte 0x0231AFB0 + arm_func_end ov00_02302594 + + arm_func_start ov00_02302638 +ov00_02302638: @ 0x02302638 + push {r4, r5, r6, lr} + mov r4, r2 + mov r6, r0 + mov r5, r1 + mov r0, r4 + bl FUN_02089678 + mov r3, r0 + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov00_02302594 + pop {r4, r5, r6, pc} + arm_func_end ov00_02302638 + + arm_func_start ov00_02302668 +ov00_02302668: @ 0x02302668 + push {r3, r4, r5, lr} + sub sp, sp, #0x10 + mov r4, r1 + mov r5, r0 + ldr r1, _0230269C @ =0x0231AFC0 + add r0, sp, #0 + bl FUN_020790DC + add r2, sp, #0 + mov r0, r5 + mov r1, r4 + bl ov00_02302638 + add sp, sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_0230269C: .4byte 0x0231AFC0 + arm_func_end ov00_02302668 + + arm_func_start ov00_023026A0 +ov00_023026A0: @ 0x023026A0 + push {r4, r5, r6, r7, r8, lr} + mov r8, r1 + mov r7, r0 + mov r1, r2 + mov r2, r3 + mov r0, r8 + mov r3, #0 + ldr r6, [sp, #0x18] + ldr r5, [sp, #0x1c] + ldr r4, [sp, #0x20] + bl ov00_022F50CC + mvn r1, #0 + cmp r0, r1 + bne _0230274C + mov r0, r8 + bl ov00_022F5194 + mvn r2, #5 + cmp r0, r2 + subne r1, r2, #0x14 + cmpne r0, r1 + subne r1, r2, #0x46 + cmpne r0, r1 + beq _0230273C + ldrsb r0, [r4] + cmp r0, #0x50 + ldrsbeq r0, [r4, #1] + cmpeq r0, #0x52 + moveq r0, #3 + popeq {r4, r5, r6, r7, r8, pc} + ldr r2, _02302778 @ =0x0231AFC4 + mov r0, r7 + mov r1, #5 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #0 + bl ov00_02302DEC + mov r0, #3 + pop {r4, r5, r6, r7, r8, pc} +_0230273C: + mov r0, #0 + str r0, [r5] + str r0, [r6] + b _02302770 +_0230274C: + cmp r0, #0 + strne r0, [r5] + movne r0, #0 + strne r0, [r6] + bne _02302770 + mov r0, #0 + str r0, [r5] + mov r0, #1 + str r0, [r6] +_02302770: + mov r0, #0 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02302778: .4byte 0x0231AFC4 + arm_func_end ov00_023026A0 + + arm_func_start ov00_0230277C +ov00_0230277C: @ 0x0230277C + mov r0, #0 + bx lr + arm_func_end ov00_0230277C + + arm_func_start ov00_02302784 +ov00_02302784: @ 0x02302784 + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #8 + mov sb, r0 + ldr r4, [sb] + movs r6, r3 + mov r5, #0 + mov r8, r1 + mov r7, r2 + addeq sp, sp, #8 + moveq r0, r5 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + ldr r1, [r8, #0x34] + ldr r0, [r8, #0x38] + subs r0, r1, r0 + bne _02302850 + ldr r0, [r8, #0x3c] + bl ov00_022F47A0 + cmp r0, #0 + bne _02302850 + ldrh r1, [r8, #0xc] + ldr r0, [r8, #8] + bl ov00_022F8C50 + sub r0, r0, #0x17 + cmp r6, r0 + bgt _02302814 + str r6, [sp] + mov r0, #1 + str r0, [sp, #4] + ldrh r1, [r8, #0xc] + ldr r0, [r8, #8] + mov r3, r7 + add r2, r4, #0x220 + bl ov00_022F8848 + mov r5, r6 + mov r6, #0 + b _02302850 +_02302814: + ldrh r1, [r8, #0xc] + ldr r0, [r8, #8] + bl ov00_022F8C50 + cmp r0, #0x17 + bls _02302850 + sub r5, r0, #0x17 + str r5, [sp] + mov r0, #1 + str r0, [sp, #4] + ldrh r1, [r8, #0xc] + ldr r0, [r8, #8] + mov r3, r7 + add r2, r4, #0x220 + bl ov00_022F8848 + sub r6, r6, r5 +_02302850: + cmp r6, #0 + beq _02302878 + mov r0, sb + mov r3, r6 + add r1, r8, #0x2c + add r2, r7, r5 + bl ov00_02302594 + cmp r0, #0 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, r8, sb, pc} +_02302878: + mov r0, #0 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_02302784 + + arm_func_start ov00_02302884 +ov00_02302884: @ 0x02302884 + push {r4, r5, r6, lr} + mov r4, r2 + mov r6, r0 + mov r5, r1 + mov r0, r4 + bl FUN_02089678 + mov r3, r0 + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov00_02302784 + pop {r4, r5, r6, pc} + arm_func_end ov00_02302884 + + arm_func_start ov00_023028B4 +ov00_023028B4: @ 0x023028B4 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x18 + str r0, [sp] + mvn r0, #0 + str r0, [sp, #8] + sub r0, r0, #0x4b + str r0, [sp, #0x14] + ldr r0, [sp, #8] + mov fp, r2 + sub r0, r0, #0x19 + str r0, [sp, #0x10] + ldr r0, [sp, #8] + mov r8, #0 + sub r0, r0, #5 + ldr r5, [fp, #8] + ldm fp, {r4, r6} + mov sl, r1 + str r3, [sp, #4] + mov sb, r8 + str r0, [sp, #0xc] +_02302904: + add r0, r5, #0x800 + cmp r0, r6 + ble _02302944 + mov r6, r0 + add r1, r0, #1 + mov r0, r4 + bl ov00_022F5AFC + movs r4, r0 + bne _02302940 + ldr r1, _023029FC @ =0x0231AFB0 + ldr r0, [sp] + bl ov00_0230BCCC + add sp, sp, #0x18 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02302940: + stm fp, {r4, r6} +_02302944: + mov r0, sl + add r1, r4, r5 + sub r2, r6, r5 + mov r3, #0 + bl ov00_022F5088 + mov r7, r0 + ldr r0, [sp, #8] + cmp r7, r0 + bne _023029A4 + mov r0, sl + bl ov00_022F5194 + ldr r1, [sp, #0xc] + cmp r0, r1 + ldrne r1, [sp, #0x10] + cmpne r0, r1 + ldrne r1, [sp, #0x14] + cmpne r0, r1 + beq _023029B4 + ldr r1, _02302A00 @ =0x0231AFEC + ldr r0, [sp] + bl ov00_0230BCCC + add sp, sp, #0x18 + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023029A4: + cmp r7, #0 + moveq sb, #1 + addne r5, r5, r7 + addne r8, r8, r7 +_023029B4: + mov r0, #0 + cmp r7, #0 + strb r0, [r4, r5] + blt _023029D4 + cmp sb, #0 + bne _023029D4 + cmp r8, #0x20000 + blt _02302904 +_023029D4: + str r4, [fp] + str r5, [fp, #8] + ldr r0, [sp, #4] + str r6, [fp, #4] + str r8, [r0] + ldr r1, [sp, #0x40] + mov r0, #0 + str sb, [r1] + add sp, sp, #0x18 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_023029FC: .4byte 0x0231AFB0 +_02302A00: .4byte 0x0231AFEC + arm_func_end ov00_023028B4 + + arm_func_start ov00_02302A04 +ov00_02302A04: @ 0x02302A04 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x1c + mov sl, r0 + mov r0, r2 + ldr fp, [r2, #8] + ldr r7, [r2, #0xc] + ldr r8, [sp, #0x44] + ldr r6, [r0] + str r2, [sp, #0xc] + mov sb, r1 + str r3, [sp, #0x10] + subs r5, fp, r7 + mov r4, #0 + addeq sp, sp, #0x1c + moveq r0, r4 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02302A44: + add r0, sp, #0x18 + str r0, [sp] + add r1, r7, r4 + add r0, sp, #0x14 + str r0, [sp, #4] + add r2, r6, r1 + mov r0, sl + mov r1, sb + mov r3, r5 + str r8, [sp, #8] + bl ov00_023026A0 + cmp r0, #0 + addne sp, sp, #0x1c + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [sp, #0x14] + cmp r0, #0 + subne r5, r5, r0 + addne r4, r4, r0 + cmp r0, #0 + cmpne r5, #0 + bne _02302A44 + ldr r0, [sp, #0x40] + cmp r0, #0 + beq _02302AC4 + cmp r4, #0 + ble _02302AC8 + mov r0, r6 + add r1, r6, r4 + add r2, r5, #1 + bl FUN_020872BC + sub fp, fp, r4 + b _02302AC8 +_02302AC4: + add r7, r7, r4 +_02302AC8: + ldr r0, [sp, #0xc] + str fp, [r0, #8] + str r7, [r0, #0xc] + ldr r0, [sp, #0x10] + cmp r0, #0 + ldrne r1, [sp, #0x18] + strne r1, [r0] + mov r0, #0 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_02302A04 + + arm_func_start ov00_02302AF0 +ov00_02302AF0: @ 0x02302AF0 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x14 + str r3, [sp, #8] + ldr r3, [r3, #8] + mov sl, r1 + str r3, [sp, #0xc] + ldr r3, [sp, #8] + ldr r1, [sp, #0xc] + ldr r6, [r3, #0xc] + ldr fp, [r0] + subs r4, r1, r6 + ldr r1, [sp, #0x38] + mov r0, r3 + str r1, [sp, #0x38] + ldr r5, [r0] + mov r7, #0 + mov sb, r2 + addeq sp, sp, #0x14 + moveq r0, r7 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, sl + mov r1, sb + bl ov00_022F8C50 + sub r0, r0, #0x17 + cmp r4, r0 + bgt _02302B84 + mov r0, sl + mov r1, sb + str r4, [sp] + mov r7, #1 + add r2, fp, #0x220 + add r3, r5, r6 + str r7, [sp, #4] + bl ov00_022F8848 + mov r7, r4 + mov r4, #0 + b _02302BD4 +_02302B84: + mov r0, sl + mov r1, sb + bl ov00_022F8C50 + sub r8, r0, #0x17 + cmp r8, #0x17 + bls _02302BD4 + add r1, r6, r7 + add r3, r5, r1 + str r8, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, sl + mov r1, sb + add r2, fp, #0x220 + bl ov00_022F8848 + cmp r0, #8 + beq _02302BD4 + add r7, r7, r8 + subs r4, r4, r8 + bne _02302B84 +_02302BD4: + ldr r0, [sp, #0x3c] + cmp r0, #0 + beq _02302C08 + cmp r7, #0 + beq _02302C0C + mov r0, r5 + add r1, r5, r7 + add r2, r4, #1 + bl FUN_020872BC + ldr r0, [sp, #0xc] + sub r0, r0, r7 + str r0, [sp, #0xc] + b _02302C0C +_02302C08: + add r6, r6, r7 +_02302C0C: + ldr r1, [sp, #0xc] + ldr r0, [sp, #8] + ldr r3, [sp, #8] + str r1, [r0, #8] + add r2, sp, #0x10 + mov r0, sl + mov r1, sb + str r6, [r3, #0xc] + bl ov00_022F8578 + ldr r0, [sp, #0x10] + cmp r0, #3 + ldreq r0, [sp, #0x38] + moveq r1, #1 + ldrne r0, [sp, #0x38] + movne r1, #0 + str r1, [r0] + mov r0, #0 + add sp, sp, #0x14 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_02302AF0 + + arm_func_start ov00_02302C58 +ov00_02302C58: @ 0x02302C58 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x10 + mov r5, r2 + mov r0, #0 + mov r6, r1 + str r0, [r5] + ldr r1, [r6, #8] + mov r7, r3 + cmp r1, #5 + addlt sp, sp, #0x10 + poplt {r3, r4, r5, r6, r7, pc} + ldr r0, [r6] + mov r1, #0xa + bl FUN_02089974 + movs r4, r0 + beq _02302D7C + ldr r1, _02302D88 @ =0x0231B018 + sub r0, r4, #5 + mov r2, #5 + bl FUN_02089940 + cmp r0, #0 + addne sp, sp, #0x10 + movne r0, #3 + popne {r3, r4, r5, r6, r7, pc} + mov r0, #0 + strb r0, [r4] + ldr r0, [r6] + ldr r1, _02302D8C @ =0x0231B020 + add r2, sp, #0 + mov r3, #0x10 + bl ov00_0230BA28 + cmp r0, #0 + addeq sp, sp, #0x10 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, pc} + add r0, sp, #0 + bl FUN_0208B360 + str r0, [r7] + ldr r0, [r6] + ldr r1, _02302D90 @ =0x0231B024 + add r2, sp, #0 + mov r3, #0x10 + bl ov00_0230BA28 + cmp r0, #0 + addeq sp, sp, #0x10 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, pc} + add r0, sp, #0 + bl FUN_0208B360 + ldr r2, [r6] + add r1, r0, #1 + sub r2, r4, r2 + ldr r3, [r6, #8] + add r2, r1, r2 + cmp r3, r2 + ble _02302D74 + ldrsb r2, [r4, r1] + cmp r2, #0 + addne sp, sp, #0x10 + movne r0, #3 + popne {r3, r4, r5, r6, r7, pc} + add r3, r4, #1 + ldr r2, [sp, #0x28] + str r3, [r5] + str r0, [r2] + ldr r0, [r6] + sub r0, r4, r0 + add r0, r1, r0 + add r0, r0, #1 + str r0, [r6, #0xc] + b _02302D7C +_02302D74: + mov r0, #0xa + strb r0, [r4] +_02302D7C: + mov r0, #0 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02302D88: .4byte 0x0231B018 +_02302D8C: .4byte 0x0231B020 +_02302D90: .4byte 0x0231B024 + arm_func_end ov00_02302C58 + + arm_func_start ov00_02302D94 +ov00_02302D94: @ 0x02302D94 + push {r4, lr} + movs r4, r1 + ldrne r0, [r4] + cmpne r0, #0 + ldrne r1, [r4, #0xc] + cmpne r1, #0 + moveq r0, #0 + popeq {r4, pc} + ldr r0, [r4, #8] + subs r2, r0, r1 + str r2, [r4, #8] + beq _02302DD4 + ldr r0, [r4] + ldr r1, [r4, #0xc] + add r1, r0, r1 + bl FUN_020872BC +_02302DD4: + ldr r2, [r4] + ldr r1, [r4, #8] + mov r0, #0 + strb r0, [r2, r1] + str r0, [r4, #0xc] + pop {r4, pc} + arm_func_end ov00_02302D94 + + arm_func_start ov00_02302DEC +ov00_02302DEC: @ 0x02302DEC + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x10 + mov r4, r0 + mov r6, r2 + cmp r6, #1 + ldr r5, [r4] + moveq r0, #1 + streq r0, [r5, #0x5bc] + mov r7, r1 + ldr r1, [r5, #0x1a8] + ldr r0, [r5, #0x1ac] + str r1, [sp, #8] + str r0, [sp, #0xc] + cmp r1, #0 + addeq sp, sp, #0x10 + popeq {r3, r4, r5, r6, r7, pc} + mov r0, #0x10 + bl ov00_022F5AE4 + movs r3, r0 + beq _02302E4C + str r7, [r3] + str r6, [r3, #0xc] + ldr r0, [r5, #0x5b8] + stmib r3, {r0, r5} +_02302E4C: + mov r2, #0 + str r2, [sp] + mov r2, #1 + add r1, sp, #8 + str r2, [sp, #4] + mov r0, r4 + ldm r1, {r1, r2} + bl ov00_02302E74 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_02302DEC + + arm_func_start ov00_02302E74 +ov00_02302E74: @ 0x02302E74 + push {r0, r1, r2, r3} + push {r4, r5, r6, lr} + mov r6, r0 + mov r0, #0x18 + mov r5, r3 + ldr r4, [r6] + bl ov00_022F5AE4 + cmp r0, #0 + bne _02302EB4 + ldr r1, _02302F14 @ =0x0231B02C + mov r0, r6 + bl ov00_0230BCCC + mov r0, #1 + pop {r4, r5, r6, lr} + add sp, sp, #0x10 + bx lr +_02302EB4: + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x18] + str r1, [r0] + ldr r1, [sp, #0x20] + stmib r0, {r2, r5} + cmp r1, #0 + ldrne r1, [r1, #0x18] + ldr r2, [sp, #0x24] + moveq r1, #0 + str r1, [r0, #0x10] + mov r1, #0 + str r2, [r0, #0xc] + str r1, [r0, #0x14] + ldr r1, [r4, #0x5d8] + cmp r1, #0 + streq r0, [r4, #0x5d8] + ldr r1, [r4, #0x5dc] + cmp r1, #0 + strne r0, [r1, #0x14] + str r0, [r4, #0x5dc] + mov r0, #0 + pop {r4, r5, r6, lr} + add sp, sp, #0x10 + bx lr + .align 2, 0 +_02302F14: .4byte 0x0231B02C + arm_func_end ov00_02302E74 + + arm_func_start ov00_02302F18 +ov00_02302F18: @ 0x02302F18 + push {r4, r5, r6, r7, r8, lr} + mov r4, r1 + ldr r1, [r4, #8] + ldr r2, [r4, #4] + ldr r3, [r4] + mov r5, r0 + blx r3 + ldr r0, [r4, #0xc] + cmp r0, #2 + bne _02302F5C + ldr r0, [r4, #8] + ldr r0, [r0, #8] + bl ov00_022F5B14 + ldr r0, [r4, #8] + mov r1, #0 + str r1, [r0, #8] + b _02303194 +_02302F5C: + cmp r0, #0xb + bne _02302F80 + ldr r0, [r4, #8] + ldr r0, [r0, #8] + bl ov00_022F5B14 + ldr r0, [r4, #8] + mov r1, #0 + str r1, [r0, #8] + b _02303194 +_02302F80: + cmp r0, #3 + bne _02303000 + ldr r7, [r4, #8] + mov r6, #0 + ldr r0, [r7, #0x38] + cmp r0, #0 + ble _02302FDC + mov r5, r6 + mov r8, r6 +_02302FA4: + ldr r0, [r7, #0x3c] + ldr r0, [r0, r6, lsl #2] + bl ov00_022F5B14 + ldr r0, [r7, #0x3c] + str r5, [r0, r6, lsl #2] + ldr r0, [r7, #0x40] + ldr r0, [r0, r6, lsl #2] + bl ov00_022F5B14 + ldr r0, [r7, #0x40] + str r8, [r0, r6, lsl #2] + ldr r0, [r7, #0x38] + add r6, r6, #1 + cmp r6, r0 + blt _02302FA4 +_02302FDC: + ldr r0, [r7, #0x3c] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r7, #0x3c] + ldr r0, [r7, #0x40] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r7, #0x40] + b _02303194 +_02303000: + cmp r0, #4 + bne _02303020 + ldr r5, [r4, #8] + ldr r0, [r5, #0xc] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r5, #0xc] + b _02303194 +_02303020: + cmp r0, #7 + bne _02303048 + ldr r5, [r4, #8] + ldr r0, [r5, #0x10] + cmp r0, #0 + beq _02303194 + bl ov00_022F5B14 + mov r0, #0 + str r0, [r5, #0x10] + b _02303194 +_02303048: + cmp r0, #8 + bne _02303070 + ldr r5, [r4, #8] + ldr r0, [r5, #8] + cmp r0, #0 + beq _02303194 + bl ov00_022F5B14 + mov r0, #0 + str r0, [r5, #8] + b _02303194 +_02303070: + cmp r0, #9 + bne _023030C8 + ldr r6, [r4, #8] + mov r5, #0 + ldr r0, [r6, #4] + cmp r0, #0 + ble _023030B4 + mov r7, r5 +_02303090: + ldr r0, [r6, #8] + ldr r0, [r0, r5, lsl #2] + bl ov00_022F5B14 + ldr r0, [r6, #8] + str r7, [r0, r5, lsl #2] + ldr r0, [r6, #4] + add r5, r5, #1 + cmp r5, r0 + blt _02303090 +_023030B4: + ldr r0, [r6, #8] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r6, #8] + b _02303194 +_023030C8: + cmp r0, #0xc + bne _023030E8 + ldr r1, [r4, #8] + mov r0, r5 + ldr r1, [r1] + mov r2, #0 + bl ov00_023022B0 + b _02303194 +_023030E8: + cmp r0, #0xd + bne _02303110 + ldr r5, [r4, #8] + ldr r0, [r5, #8] + cmp r0, #0 + beq _02303194 + bl ov00_022F5B14 + mov r0, #0 + str r0, [r5, #8] + b _02303194 +_02303110: + cmp r0, #0xe + bne _02303194 + ldr r6, [r4, #8] + ldr r0, [r6, #0xc] + cmp r0, #0 + beq _02303194 + cmp r0, #0 + mov r7, #0 + ble _02303174 + mov r5, r7 + mov r8, r7 +_0230313C: + ldr r0, [r6, #4] + ldr r0, [r0, r7, lsl #2] + bl ov00_022F5B14 + ldr r0, [r6, #4] + str r5, [r0, r7, lsl #2] + ldr r0, [r6, #8] + ldr r0, [r0, r7, lsl #2] + bl ov00_022F5B14 + ldr r0, [r6, #8] + str r8, [r0, r7, lsl #2] + ldr r0, [r6, #0xc] + add r7, r7, #1 + cmp r7, r0 + blt _0230313C +_02303174: + ldr r0, [r6, #4] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r6, #4] + ldr r0, [r6, #8] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r6, #8] +_02303194: + ldr r0, [r4, #8] + bl ov00_022F5B14 + mov r1, #0 + mov r0, r4 + str r1, [r4, #8] + bl ov00_022F5B14 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_02302F18 + + arm_func_start ov00_023031B0 +ov00_023031B0: @ 0x023031B0 + push {r4, r5, r6, r7, r8, sb, sl, lr} + mov sl, r0 + movs sb, r1 + ldr r4, [sl] + beq _0230324C + ldr r5, [r4, #0x5d8] + ldr r6, [r4, #0x5dc] + mov r7, #0 + str r7, [r4, #0x5d8] + mov r1, r5 + str r7, [r4, #0x5dc] + cmp r5, #0 + beq _0230322C +_023031E4: + ldr r0, [r1, #0x10] + ldr r8, [r1, #0x14] + cmp r0, sb + ldrne r0, [r1, #0xc] + cmpne r0, #1 + bne _0230321C + mov r0, sl + cmp r7, #0 + strne r8, [r7, #0x14] + moveq r5, r8 + cmp r6, r1 + moveq r6, r7 + bl ov00_02302F18 + b _02303220 +_0230321C: + mov r7, r1 +_02303220: + mov r1, r8 + cmp r8, #0 + bne _023031E4 +_0230322C: + ldr r0, [r4, #0x5d8] + cmp r0, #0 + ldrne r0, [r4, #0x5dc] + strne r5, [r0, #0x14] + streq r5, [r4, #0x5d8] + str r6, [r4, #0x5dc] + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_0230324C: + ldr r1, [r4, #0x5d8] + cmp r1, #0 + beq _02303290 + mov r5, #0 +_0230325C: + str r5, [r4, #0x5d8] + str r5, [r4, #0x5dc] + cmp r1, #0 + beq _02303284 +_0230326C: + ldr r6, [r1, #0x14] + mov r0, sl + bl ov00_02302F18 + mov r1, r6 + cmp r6, #0 + bne _0230326C +_02303284: + ldr r1, [r4, #0x5d8] + cmp r1, #0 + bne _0230325C +_02303290: + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end ov00_023031B0 + + arm_func_start ov00_02303298 +ov00_02303298: @ 0x02303298 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r8, r1 + mov sb, r0 + cmp r8, #0 + mov r7, #0 + ble _023032EC + ldr r6, _023032F8 @ =0x0231B07C + ldr r5, _023032FC @ =0x08421085 + mov r4, #0x3e +_023032BC: + bl FUN_020895B0 + umull r1, r2, r0, r5 + sub r1, r0, r2 + add r2, r2, r1, lsr #1 + lsr r2, r2, #5 + umull r1, r2, r4, r2 + sub r2, r0, r1 + ldrsb r0, [r6, r2] + strb r0, [sb, r7] + add r7, r7, #1 + cmp r7, r8 + blt _023032BC +_023032EC: + mov r0, #0 + strb r0, [sb, r7] + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_023032F8: .4byte 0x0231B07C +_023032FC: .4byte 0x08421085 + arm_func_end ov00_02303298 + + arm_func_start ov00_02303300 +ov00_02303300: @ 0x02303300 + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x24 + mov r7, r0 + ldr r4, [r7] + mov r6, r1 + ldr r1, _0230362C @ =0x0231B0BC + add r0, r4, #0x220 + mov r2, #0x10 + bl FUN_0208975C + bl ov00_022F840C + cmp r0, #0 + bne _0230340C + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + str r1, [sp, #8] + str r1, [sp, #0xc] + ldr r5, _02303630 @ =0x00001964 + str r1, [sp, #0x10] + str r1, [sp, #0x14] + mov r0, r5 + mov r2, r1 + mov r3, r1 + str r1, [sp, #0x18] + bl ov00_022F841C + cmp r0, #0 + beq _023033F8 + mov sb, #0 + add r8, r5, #0x64 + b _023033B4 +_02303378: + str sb, [sp] + str sb, [sp, #4] + str sb, [sp, #8] + add r0, r5, #1 + str sb, [sp, #0xc] + lsl r0, r0, #0x10 + str sb, [sp, #0x10] + lsr r5, r0, #0x10 + str sb, [sp, #0x14] + mov r0, r5 + mov r1, sb + mov r2, sb + mov r3, sb + str sb, [sp, #0x18] + bl ov00_022F841C +_023033B4: + cmp r0, #0 + beq _023033C4 + cmp r5, r8 + blo _02303378 +_023033C4: + cmp r0, #0 + beq _023033F8 + ldr r2, _02303634 @ =0x0231B0C8 + mov r0, r7 + mov r1, #8 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x24 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, pc} +_023033F8: + ldr r0, [r4, #0x10c] + cmp r0, #0 + addeq r0, r4, #0x200 + strheq r5, [r0, #0x30] + b _02303418 +_0230340C: + bl ov00_022F89F0 + add r1, r4, #0x200 + strh r0, [r1, #0x30] +_02303418: + ldr r0, _02303638 @ =ov00_0230847C + ldr r1, _0230363C @ =0x023085CC + str r0, [sp] + ldr r0, _02303640 @ =ov00_023084A4 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r4, #0x220 + ldr r3, _02303644 @ =ov00_0230859C + mov r1, r0 + mov r2, #0 + str r7, [sp, #0xc] + bl ov00_022F8A0C + cmp r0, #0 + beq _0230347C + ldr r2, _02303648 @ =0x0231B0F0 + mov r0, r7 + mov r1, #8 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x24 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, pc} +_0230347C: + ldr r0, [r4, #0x10c] + mov r2, #0 + cmp r0, #0 + addne r0, r4, #0x200 + movne r1, #0 + strhne r1, [r0, #0x30] + mov r0, #2 + mov r1, #1 + bl ov00_022F4FA0 + mvn r1, #0 + str r0, [r4, #0x1f0] + cmp r0, r1 + bne _023034DC + ldr r2, _0230364C @ =0x0231B11C + mov r0, r7 + mov r1, #5 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x24 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, pc} +_023034DC: + mov r1, #0 + bl ov00_022F529C + cmp r0, #0 + bne _02303518 + ldr r2, _02303650 @ =0x0231B144 + mov r0, r7 + mov r1, #5 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x24 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, pc} +_02303518: + add r3, sp, #0x1c + mov r2, #0 + ldr r0, _02303654 @ =0x0231B03C + str r2, [r3] + mov r1, #2 + str r2, [r3, #4] + strb r1, [sp, #0x1d] + bl ov00_022F5178 + mvn r1, #0 + cmp r0, r1 + bne _02303594 + ldr r0, _02303654 @ =0x0231B03C + bl ov00_022CF3D4 + cmp r0, #0 + bne _02303580 + ldr r2, _02303658 @ =0x0231B178 + mov r0, r7 + mov r1, #5 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x24 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, pc} +_02303580: + ldr r0, [r0, #0xc] + ldr r0, [r0] + ldr r0, [r0] + str r0, [sp, #0x20] + b _023035A0 +_02303594: + ldr r0, _02303654 @ =0x0231B03C + bl ov00_022F5178 + str r0, [sp, #0x20] +_023035A0: + ldr r0, _0230365C @ =0x0000CC74 + add r1, sp, #0x1c + strh r0, [sp, #0x1e] + ldr r0, [r4, #0x1f0] + mov r2, #8 + bl ov00_022F503C + mvn r1, #0 + cmp r0, r1 + bne _02303614 + ldr r0, [r4, #0x1f0] + bl ov00_022F5194 + mvn r2, #5 + cmp r0, r2 + subne r1, r2, #0x14 + cmpne r0, r1 + subne r1, r2, #0x46 + cmpne r0, r1 + beq _02303614 + ldr r2, _02303660 @ =0x0231B1AC + mov r0, r7 + mov r1, #5 + bl ov00_0230BCA8 + mov r0, r7 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x24 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, pc} +_02303614: + mov r0, #1 + str r0, [r6, #0x14] + str r0, [r4, #0x1f4] + mov r0, #0 + add sp, sp, #0x24 + pop {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0230362C: .4byte 0x0231B0BC +_02303630: .4byte 0x00001964 +_02303634: .4byte 0x0231B0C8 +_02303638: .4byte ov00_0230847C +_0230363C: .4byte 0x023085CC +_02303640: .4byte ov00_023084A4 +_02303644: .4byte ov00_0230859C +_02303648: .4byte 0x0231B0F0 +_0230364C: .4byte 0x0231B11C +_02303650: .4byte 0x0231B144 +_02303654: .4byte 0x0231B03C +_02303658: .4byte 0x0231B178 +_0230365C: .4byte 0x0000CC74 +_02303660: .4byte 0x0231B1AC + arm_func_end ov00_02303300 + + arm_func_start ov00_02303664 +ov00_02303664: @ 0x02303664 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x10 + mov r8, r0 + ldr r4, [r8] + mov r7, r1 + ldr r1, [r4, #0x1f4] + mov r6, r2 + mov r5, r3 + cmp r1, #4 + bne _0230369C + bl ov00_022FFE10 + cmp r0, #0 + addne sp, sp, #0x10 + popne {r4, r5, r6, r7, r8, pc} +_0230369C: + ldr r0, [r4, #0x1f4] + cmp r0, #0 + beq _023036C0 + ldr r1, _02303858 @ =0x0231B1D4 + mov r0, r8 + bl ov00_0230BCCC + add sp, sp, #0x10 + mov r0, #2 + pop {r4, r5, r6, r7, r8, pc} +_023036C0: + mov r3, #1 + mov r1, r7 + add r0, r4, #0x110 + mov r2, #0x1f + str r3, [r4, #0x10c] + bl ov00_0230B930 + add r0, r4, #0x2f + mov r1, r6 + add r0, r0, #0x100 + mov r2, #0x15 + bl ov00_0230B930 + mov r1, r5 + add r0, r4, #0x144 + mov r2, #0x33 + bl ov00_0230B930 + add r0, r4, #0x77 + ldr r1, [sp, #0x28] + add r0, r0, #0x100 + mov r2, #0x1f + bl ov00_0230B930 + add r0, r4, #0x144 + bl ov00_022F5548 + mov r0, #0x308 + bl ov00_022F5AE4 + movs r4, r0 + bne _02303740 + ldr r1, _0230385C @ =0x0231B1E8 + mov r0, r8 + bl ov00_0230BCCC + add sp, sp, #0x10 + mov r0, #1 + pop {r4, r5, r6, r7, r8, pc} +_02303740: + mov r1, #0 + mov r2, #0x308 + bl FUN_02087308 + ldr r0, [sp, #0x3c] + ldr r1, [sp, #0x2c] + str r0, [r4, #0x304] + ldrsb r0, [r1] + cmp r0, #0 + ldrne r0, [sp, #0x30] + ldrsbne r0, [r0] + cmpne r0, #0 + beq _02303790 + add r0, r4, #0xc2 + mov r2, #0x100 + bl ov00_0230B930 + add r0, r4, #0xc2 + ldr r1, [sp, #0x30] + add r0, r0, #0x100 + mov r2, #0x100 + bl ov00_0230B930 +_02303790: + ldr r1, [sp, #0x34] + cmp r1, #0 + beq _023037AC + add r0, r4, #0xc2 + add r0, r0, #0x200 + mov r2, #0x41 + bl ov00_0230B930 +_023037AC: + ldr r1, [sp, #0x40] + ldr r0, [sp, #0x44] + str r1, [sp] + str r0, [sp, #4] + ldr r5, [sp, #0x48] + add r3, sp, #0xc + mov r0, r8 + mov r2, r4 + mov r1, #0 + str r5, [sp, #8] + bl ov00_0230703C + cmp r0, #0 + addne sp, sp, #0x10 + popne {r4, r5, r6, r7, r8, pc} + ldr r1, [sp, #0xc] + mov r0, r8 + bl ov00_02303300 + movs r4, r0 + beq _02303824 + ldr r1, [sp, #0xc] + mov r0, r8 + str r4, [r1, #0x1c] + ldr r1, [sp, #0xc] + bl ov00_02306C84 + mov r0, r8 + mov r1, #0 + bl ov00_02304798 + add sp, sp, #0x10 + mov r0, r4 + pop {r4, r5, r6, r7, r8, pc} +_02303824: + ldr r1, [sp, #0xc] + ldr r0, [r1, #8] + cmp r0, #0 + beq _0230384C + ldr r1, [r1, #0x18] + mov r0, r8 + bl ov00_023003B4 + cmp r0, #0 + addne sp, sp, #0x10 + popne {r4, r5, r6, r7, r8, pc} +_0230384C: + mov r0, #0 + add sp, sp, #0x10 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02303858: .4byte 0x0231B1D4 +_0230385C: .4byte 0x0231B1E8 + arm_func_end ov00_02303664 + + arm_func_start ov00_02303860 +ov00_02303860: @ 0x02303860 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x294 + mov r5, r1 + mov r6, r0 + add r0, r5, #0x80 + mov r1, #0x20 + ldr r4, [r6] + bl ov00_02303298 + add r0, r5, #0x100 + ldrsb r0, [r0, #0xc2] + cmp r0, #0 + addne r0, r5, #0xc2 + addeq r0, r4, #0x77 + add r7, r0, #0x100 + mov r0, r7 + bl FUN_02089678 + mov r1, r0 + mov r0, r7 + add r2, r5, #0xa1 + bl ov00_022F4F3C + ldr r2, [r4, #0x1a4] + cmp r2, #0 + beq _023038CC + ldr r1, _02303C30 @ =0x0231B1F8 + add r0, sp, #0x14 + bl FUN_020790DC + b _023038DC +_023038CC: + ldr r0, _02303C34 @ =0x0231B1FC + add r1, sp, #0x14 + ldrb r0, [r0] + strb r0, [r1] +_023038DC: + ldrsb r0, [r5, #0xc2] + cmp r0, #0 + addne r0, r5, #0xc2 + bne _02303934 + add r0, r4, #0x100 + ldrsb r0, [r0, #0x2f] + add r2, sp, #0x14 + cmp r0, #0 + add r0, sp, #0x40 + beq _0230391C + add r3, r4, #0x2f + ldr r1, _02303C38 @ =0x0231B200 + add r3, r3, #0x100 + bl FUN_020790DC + add r0, sp, #0x40 + b _02303934 +_0230391C: + ldr r1, _02303C3C @ =0x0231B208 + add ip, r4, #0x144 + add r3, r4, #0x110 + str ip, [sp] + bl FUN_020790DC + add r0, sp, #0x40 +_02303934: + str r0, [sp] + add r0, r5, #0x80 + str r0, [sp, #4] + ldr r1, _02303C40 @ =0x0231B210 + ldr r3, _02303C44 @ =0x0231B220 + add r0, sp, #0x92 + str r5, [sp, #8] + add r2, r5, #0xa1 + str r2, [sp, #0xc] + bl FUN_020790DC + add r0, sp, #0x92 + bl FUN_02089678 + mov r1, r0 + add r0, sp, #0x92 + add r2, sp, #0x1f + bl ov00_022F4F3C + ldr r0, [r4, #0x100] + cmp r0, #0 + beq _023039B4 + add r3, sp, #0x10 + mov r0, r6 + add r1, r4, #0x110 + add r2, r4, #0x144 + bl ov00_02308C40 + ldr r0, [sp, #0x10] + cmp r0, #0 + beq _023039B4 + ldr r0, [r0, #4] + str r0, [r4, #0x19c] + ldr r0, [sp, #0x10] + ldr r0, [r0] + str r0, [r4, #0x1a0] +_023039B4: + ldr r2, _02303C48 @ =0x0231B254 + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + ldr r2, _02303C4C @ =0x0231B25C + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + mov r0, r6 + add r1, r4, #0x210 + add r2, r5, #0x80 + bl ov00_02302638 + ldrsb r0, [r5, #0xc2] + cmp r0, #0 + beq _02303A14 + ldr r2, _02303C50 @ =0x0231B268 + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + mov r0, r6 + add r1, r4, #0x210 + add r2, r5, #0xc2 + bl ov00_02302638 + b _02303A8C +_02303A14: + add r0, r4, #0x100 + ldrsb r0, [r0, #0x2f] + cmp r0, #0 + beq _02303A4C + ldr r2, _02303C54 @ =0x0231B274 + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + add r2, r4, #0x2f + mov r0, r6 + add r1, r4, #0x210 + add r2, r2, #0x100 + bl ov00_02302638 + b _02303A8C +_02303A4C: + ldr r2, _02303C58 @ =0x0231B284 + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + mov r0, r6 + add r1, r4, #0x210 + add r2, r4, #0x110 + bl ov00_02302638 + ldr r2, _02303C5C @ =0x0231B28C + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + mov r0, r6 + add r1, r4, #0x210 + add r2, r4, #0x144 + bl ov00_02302638 +_02303A8C: + ldr r0, [r4, #0x19c] + cmp r0, #0 + beq _02303AB8 + ldr r2, _02303C60 @ =0x0231B290 + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + ldr r2, [r4, #0x19c] + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302668 +_02303AB8: + ldr r0, [r4, #0x1a0] + cmp r0, #0 + beq _02303AE4 + ldr r2, _02303C64 @ =0x0231B29C + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + ldr r2, [r4, #0x1a0] + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302668 +_02303AE4: + ldr r2, _02303C68 @ =0x0231B2A8 + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + ldr r2, [r4, #0x1a4] + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302668 + ldr r2, _02303C6C @ =0x0231B2B4 + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + add r2, sp, #0x1f + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + ldr r0, [r4, #0x10c] + cmp r0, #1 + bne _02303B40 + ldr r2, _02303C70 @ =0x0231B2C0 + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 +_02303B40: + ldr r2, _02303C74 @ =0x0231B2CC + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + add r0, r4, #0x200 + ldrh r2, [r0, #0x30] + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302668 + ldr r2, _02303C78 @ =0x0231B2D4 + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302638 + ldr r2, [r4, #0x608] + mov r0, r6 + add r1, r4, #0x210 + bl ov00_02302668 + mov r0, r6 + add r1, r4, #0x210 + ldr r2, _02303C7C @ =0x0231B2E0 + bl ov00_02302638 + mov r0, r6 + add r1, r4, #0x210 + ldr r2, _02303C80 @ =0x02328804 + bl ov00_02302638 + mov r0, r6 + add r1, r4, #0x210 + ldr r2, _02303C84 @ =0x0231B2EC + bl ov00_02302638 + mov r0, r6 + add r1, r4, #0x210 + ldr r2, [r4, #0x60c] + bl ov00_02302668 + mov r0, r6 + add r1, r4, #0x210 + ldr r2, _02303C88 @ =0x0231B2FC + bl ov00_02302638 + mov r0, r6 + add r1, r4, #0x210 + mov r2, #3 + bl ov00_02302668 + mov r0, r6 + add r1, r4, #0x210 + ldr r2, _02303C8C @ =0x0231B30C + bl ov00_02302638 + mov r0, r6 + add r1, r4, #0x210 + ldr r2, [r4, #0x62c] + bl ov00_02302668 + mov r0, r6 + add r1, r4, #0x210 + ldr r2, _02303C90 @ =0x0231B314 + bl ov00_02302638 + mov r0, r6 + add r1, r4, #0x210 + ldr r2, _02303C94 @ =0x0231B31C + bl ov00_02302638 + mov r0, #0 + add sp, sp, #0x294 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02303C30: .4byte 0x0231B1F8 +_02303C34: .4byte 0x0231B1FC +_02303C38: .4byte 0x0231B200 +_02303C3C: .4byte 0x0231B208 +_02303C40: .4byte 0x0231B210 +_02303C44: .4byte 0x0231B220 +_02303C48: .4byte 0x0231B254 +_02303C4C: .4byte 0x0231B25C +_02303C50: .4byte 0x0231B268 +_02303C54: .4byte 0x0231B274 +_02303C58: .4byte 0x0231B284 +_02303C5C: .4byte 0x0231B28C +_02303C60: .4byte 0x0231B290 +_02303C64: .4byte 0x0231B29C +_02303C68: .4byte 0x0231B2A8 +_02303C6C: .4byte 0x0231B2B4 +_02303C70: .4byte 0x0231B2C0 +_02303C74: .4byte 0x0231B2CC +_02303C78: .4byte 0x0231B2D4 +_02303C7C: .4byte 0x0231B2E0 +_02303C80: .4byte 0x02328804 +_02303C84: .4byte 0x0231B2EC +_02303C88: .4byte 0x0231B2FC +_02303C8C: .4byte 0x0231B30C +_02303C90: .4byte 0x0231B314 +_02303C94: .4byte 0x0231B31C + arm_func_end ov00_02303860 + + arm_func_start ov00_02303C98 +ov00_02303C98: @ 0x02303C98 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0xc8 + mov sl, r0 + ldr r5, [sl] + mov sb, r1 + add r0, r5, #0x77 + add r1, sp, #0 + add r0, r0, #0x100 + bl ov00_0230BCE0 + ldr r2, _02303EA8 @ =0x0231B324 + mov r0, sl + add r1, r5, #0x210 + bl ov00_02302638 + ldr r2, _02303EAC @ =0x0231B330 + mov r0, sl + add r1, r5, #0x210 + bl ov00_02302638 + mov r0, sl + add r1, r5, #0x210 + add r2, r5, #0x144 + bl ov00_02302638 + ldr r2, _02303EB0 @ =0x0231B338 + mov r0, sl + add r1, r5, #0x210 + bl ov00_02302638 + mov r0, sl + add r1, r5, #0x210 + add r2, r5, #0x110 + bl ov00_02302638 + ldr r2, _02303EB4 @ =0x0231B340 + mov r0, sl + add r1, r5, #0x210 + bl ov00_02302638 + mov r0, sl + add r1, r5, #0x210 + add r2, sp, #0 + bl ov00_02302638 + ldr r2, _02303EB8 @ =0x0231B2D4 + mov r0, sl + add r1, r5, #0x210 + bl ov00_02302638 + ldr r2, [r5, #0x608] + mov r0, sl + add r1, r5, #0x210 + bl ov00_02302668 + ldr r2, _02303EBC @ =0x0231B2E0 + mov r0, sl + add r1, r5, #0x210 + bl ov00_02302638 + ldr r2, _02303EC0 @ =0x02328804 + mov r0, sl + add r1, r5, #0x210 + bl ov00_02302638 + ldr r2, _02303EC4 @ =0x0231B2EC + mov r0, sl + add r1, r5, #0x210 + bl ov00_02302638 + ldr r2, [r5, #0x60c] + mov r0, sl + add r1, r5, #0x210 + bl ov00_02302668 + ldr r2, _02303EC8 @ =0x0231B274 + mov r0, sl + add r1, r5, #0x210 + bl ov00_02302638 + add r2, r5, #0x2f + mov r0, sl + add r1, r5, #0x210 + add r2, r2, #0x100 + bl ov00_02302638 + add r0, sb, #0x200 + ldrsb r0, [r0, #0xc2] + cmp r0, #0 + beq _02303E5C + add r0, sb, #0xc2 + add r0, r0, #0x200 + bl FUN_02089678 + mov r7, r0 + ldr r0, _02303ECC @ =0x79707367 + bl ov00_022F5664 + cmp r7, #0 + mov r6, #0 + bls _02303E20 + add r8, sp, #0x87 + mov r4, r6 + mov fp, #0xff +_02303DF0: + mov r0, r4 + mov r1, fp + bl ov00_022F5680 + add r1, sb, r6 + add r1, r1, #0x200 + add r6, r6, #1 + ldrsb r1, [r1, #0xc2] + lsl r0, r0, #0x18 + cmp r6, r7 + eor r0, r1, r0, asr #24 + strb r0, [r8], #1 + blo _02303DF0 +_02303E20: + add r0, sp, #0x87 + mov r4, #0 + add r1, sp, #0x2d + mov r2, r7 + mov r3, #1 + strb r4, [r0, r6] + bl ov00_022F598C + ldr r2, _02303ED0 @ =0x0231B350 + mov r0, sl + add r1, r5, #0x210 + bl ov00_02302638 + add r2, sp, #0x2d + mov r0, sl + add r1, r5, #0x210 + bl ov00_02302638 +_02303E5C: + ldr r2, _02303ED4 @ =0x0231B2A8 + mov r0, sl + add r1, r5, #0x210 + bl ov00_02302638 + ldr r2, [r5, #0x1a4] + mov r0, sl + add r1, r5, #0x210 + bl ov00_02302668 + ldr r2, _02303ED8 @ =0x0231B314 + mov r0, sl + add r1, r5, #0x210 + bl ov00_02302638 + ldr r2, _02303EDC @ =0x0231B31C + mov r0, sl + add r1, r5, #0x210 + bl ov00_02302638 + mov r0, #0 + add sp, sp, #0xc8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02303EA8: .4byte 0x0231B324 +_02303EAC: .4byte 0x0231B330 +_02303EB0: .4byte 0x0231B338 +_02303EB4: .4byte 0x0231B340 +_02303EB8: .4byte 0x0231B2D4 +_02303EBC: .4byte 0x0231B2E0 +_02303EC0: .4byte 0x02328804 +_02303EC4: .4byte 0x0231B2EC +_02303EC8: .4byte 0x0231B274 +_02303ECC: .4byte 0x79707367 +_02303ED0: .4byte 0x0231B350 +_02303ED4: .4byte 0x0231B2A8 +_02303ED8: .4byte 0x0231B314 +_02303EDC: .4byte 0x0231B31C + arm_func_end ov00_02303C98 + + arm_func_start ov00_02303EE0 +ov00_02303EE0: @ 0x02303EE0 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x2ac + mov r6, r2 + mov r8, r0 + mov r7, r1 + mov r1, r6 + mov r2, #0 + ldr r5, [r8] + bl ov00_0230B950 + cmp r0, #0 + beq _02303FA0 + ldr r2, [r5, #0x5b8] + ldr r0, _02304558 @ =0x00000106 + cmp r2, r0 + bne _02303F40 + ldr r1, [r5, #0x1a0] + cmp r1, #0 + beq _02303F40 + mov r0, r8 + bl ov00_02308B98 + mov r0, #0 + str r0, [r5, #0x19c] + str r0, [r5, #0x1a0] + b _02303F74 +_02303F40: + ldr r0, _0230455C @ =0x00000201 + cmp r2, r0 + bne _02303F74 + ldr r1, _02304560 @ =0x0231B35C + add r2, sp, #0xab + mov r0, r6 + mov r3, #0x200 + bl ov00_0230BA28 + cmp r0, #0 + beq _02303F74 + add r0, sp, #0xab + bl FUN_0208B360 + str r0, [r5, #0x1a0] +_02303F74: + ldr r1, [r5, #0x5b8] + mov r0, r8 + mov r2, r5 + bl ov00_0230BCA8 + mov r0, r8 + mov r1, #4 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x2ac + mov r0, #4 + pop {r3, r4, r5, r6, r7, r8, pc} +_02303FA0: + ldr r0, [r7, #0x14] + ldr r4, [r7, #4] + cmp r0, #1 + beq _02303FC4 + cmp r0, #2 + beq _023041AC + cmp r0, #3 + beq _0230409C + b _0230454C +_02303FC4: + ldr r1, _02304564 @ =0x0231B364 + mov r0, r6 + mov r2, #5 + bl FUN_02089940 + cmp r0, #0 + beq _02304008 + ldr r2, _02304568 @ =0x0231B36C + mov r0, r8 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r8 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x2ac + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, pc} +_02304008: + ldr r1, _0230456C @ =0x0231B25C + mov r0, r6 + mov r2, r4 + mov r3, #0x80 + bl ov00_0230BA28 + cmp r0, #0 + bne _02304050 + ldr r2, _02304568 @ =0x0231B36C + mov r0, r8 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r8 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x2ac + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, pc} +_02304050: + ldr r0, [r4, #0x304] + mov r1, r4 + cmp r0, #0 + mov r0, r8 + beq _02304080 + bl ov00_02303C98 + cmp r0, #0 + addne sp, sp, #0x2ac + popne {r3, r4, r5, r6, r7, r8, pc} + mov r0, #3 + str r0, [r7, #0x14] + b _0230454C +_02304080: + bl ov00_02303860 + cmp r0, #0 + addne sp, sp, #0x2ac + popne {r3, r4, r5, r6, r7, r8, pc} + mov r0, #2 + str r0, [r7, #0x14] + b _0230454C +_0230409C: + ldr r1, _02304570 @ =0x0231B39C + mov r0, r6 + mov r2, #5 + bl FUN_02089940 + cmp r0, #0 + beq _023040E0 + ldr r2, _02304568 @ =0x0231B36C + mov r0, r8 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r8 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x2ac + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, pc} +_023040E0: + ldr r1, _02304574 @ =0x0231B290 + add r2, sp, #0xab + mov r0, r6 + mov r3, #0x200 + bl ov00_0230BA28 + cmp r0, #0 + bne _02304128 + ldr r2, _02304578 @ =0x0231B3A4 + mov r0, r8 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r8 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x2ac + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, pc} +_02304128: + add r0, sp, #0xab + bl FUN_0208B360 + str r0, [r5, #0x19c] + ldr r1, _0230457C @ =0x0231B29C + add r2, sp, #0xab + mov r0, r6 + mov r3, #0x200 + bl ov00_0230BA28 + cmp r0, #0 + bne _0230417C + ldr r2, _02304578 @ =0x0231B3A4 + mov r0, r8 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r8 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x2ac + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, pc} +_0230417C: + add r0, sp, #0xab + bl FUN_0208B360 + str r0, [r5, #0x1a0] + mov r0, r8 + mov r1, r4 + bl ov00_02303860 + cmp r0, #0 + addne sp, sp, #0x2ac + popne {r3, r4, r5, r6, r7, r8, pc} + mov r0, #2 + str r0, [r7, #0x14] + b _0230454C +_023041AC: + ldr r1, _02304580 @ =0x0231B3D4 + mov r0, r6 + mov r2, #5 + bl FUN_02089940 + cmp r0, #0 + beq _023041F0 + ldr r2, _02304568 @ =0x0231B36C + mov r0, r8 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r8 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x2ac + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, pc} +_023041F0: + ldr r1, _02304584 @ =0x0231B3DC + add r2, sp, #0xab + mov r0, r6 + mov r3, #0x200 + bl ov00_0230BA28 + cmp r0, #0 + bne _02304238 + ldr r2, _02304578 @ =0x0231B3A4 + mov r0, r8 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r8 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x2ac + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, pc} +_02304238: + add r0, sp, #0xab + bl FUN_0208B360 + str r0, [r5, #0x198] + ldr r1, _02304574 @ =0x0231B290 + add r2, sp, #0xab + mov r0, r6 + mov r3, #0x200 + bl ov00_0230BA28 + cmp r0, #0 + bne _0230428C + ldr r2, _02304578 @ =0x0231B3A4 + mov r0, r8 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r8 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x2ac + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, pc} +_0230428C: + add r0, sp, #0xab + bl FUN_0208B360 + str r0, [r5, #0x19c] + ldr r1, _0230457C @ =0x0231B29C + add r2, sp, #0xab + mov r0, r6 + mov r3, #0x200 + bl ov00_0230BA28 + cmp r0, #0 + bne _023042E0 + ldr r2, _02304578 @ =0x0231B3A4 + mov r0, r8 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r8 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x2ac + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, pc} +_023042E0: + add r0, sp, #0xab + bl FUN_0208B360 + str r0, [r5, #0x1a0] + ldr r1, _02304588 @ =0x0231B274 + add r2, sp, #0x23 + mov r0, r6 + mov r3, #0x15 + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + strbeq r0, [sp, #0x23] + ldr r1, _0230458C @ =0x0231B3E8 + mov r0, r6 + add r2, r5, #0x610 + mov r3, #0x19 + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + strbeq r0, [r5, #0x610] + ldr r2, [r5, #0x1a4] + cmp r2, #0 + beq _02304348 + ldr r1, _02304590 @ =0x0231B1F8 + add r0, sp, #0x18 + bl FUN_020790DC + b _02304358 +_02304348: + ldr r0, _02304594 @ =0x0231B1FC + add r1, sp, #0x18 + ldrb r0, [r0] + strb r0, [r1] +_02304358: + ldrsb r0, [r4, #0xc2] + cmp r0, #0 + addne r0, r4, #0xc2 + bne _023043B0 + add r0, r5, #0x100 + ldrsb r0, [r0, #0x2f] + add r2, sp, #0x18 + cmp r0, #0 + add r0, sp, #0x59 + beq _02304398 + add r3, r5, #0x2f + ldr r1, _02304598 @ =0x0231B200 + add r3, r3, #0x100 + bl FUN_020790DC + add r0, sp, #0x59 + b _023043B0 +_02304398: + ldr r1, _0230459C @ =0x0231B208 + add ip, r5, #0x144 + add r3, r5, #0x110 + str ip, [sp] + bl FUN_020790DC + add r0, sp, #0x59 +_023043B0: + stm sp, {r0, r4} + add r2, r4, #0x80 + str r2, [sp, #8] + add r2, r4, #0xa1 + ldr r1, _023045A0 @ =0x0231B210 + ldr r3, _023045A4 @ =0x0231B220 + add r0, sp, #0xab + str r2, [sp, #0xc] + bl FUN_020790DC + add r0, sp, #0xab + bl FUN_02089678 + mov r1, r0 + add r0, sp, #0xab + add r2, sp, #0x38 + bl ov00_022F4F3C + ldr r1, _023045A8 @ =0x0231B3F0 + mov r0, r6 + add r2, sp, #0xab + mov r3, #0x200 + bl ov00_0230BA28 + cmp r0, #0 + bne _02304434 + ldr r2, _02304578 @ =0x0231B3A4 + mov r0, r8 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r8 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x2ac + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, pc} +_02304434: + add r0, sp, #0x38 + add r1, sp, #0xab + mov r2, #0x20 + bl FUN_02087348 + cmp r0, #0 + beq _02304478 + ldr r2, _023045AC @ =0x0231B3F8 + mov r0, r8 + mov r1, #0x108 + bl ov00_0230BCA8 + mov r0, r8 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x2ac + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, pc} +_02304478: + ldr r0, [r5, #0x100] + cmp r0, #0 + beq _023044A0 + ldr r1, [r5, #0x1a0] + mov r0, r8 + bl ov00_0230899C + ldr r1, [r5, #0x1a0] + str r1, [r0] + ldr r1, [r5, #0x19c] + str r1, [r0, #4] +_023044A0: + mov r0, #3 + str r0, [r5, #0x1f4] + ldr r1, [r7, #0xc] + ldr r0, [r7, #0x10] + str r1, [sp, #0x10] + str r0, [sp, #0x14] + cmp r1, #0 + beq _02304540 + mov r0, #0x20 + bl ov00_022F5AE4 + movs r4, r0 + bne _023044E8 + ldr r1, _023045B0 @ =0x0231B1E8 + mov r0, r8 + bl ov00_0230BCCC + add sp, sp, #0x2ac + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, pc} +_023044E8: + mov r1, #0 + mov r2, #0x20 + bl FUN_02087308 + ldr r0, [r5, #0x1a0] + mov r3, #0 + str r0, [r4, #4] + add r1, sp, #0x23 + add r0, r4, #8 + mov r2, #0x15 + str r3, [r4] + bl ov00_0230B930 + add r1, sp, #0x10 + mov r0, r8 + mov r3, r4 + str r7, [sp] + mov r2, #0 + str r2, [sp, #4] + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + addne sp, sp, #0x2ac + popne {r3, r4, r5, r6, r7, r8, pc} +_02304540: + mov r0, r8 + mov r1, r7 + bl ov00_0230716C +_0230454C: + mov r0, #0 + add sp, sp, #0x2ac + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02304558: .4byte 0x00000106 +_0230455C: .4byte 0x00000201 +_02304560: .4byte 0x0231B35C +_02304564: .4byte 0x0231B364 +_02304568: .4byte 0x0231B36C +_0230456C: .4byte 0x0231B25C +_02304570: .4byte 0x0231B39C +_02304574: .4byte 0x0231B290 +_02304578: .4byte 0x0231B3A4 +_0230457C: .4byte 0x0231B29C +_02304580: .4byte 0x0231B3D4 +_02304584: .4byte 0x0231B3DC +_02304588: .4byte 0x0231B274 +_0230458C: .4byte 0x0231B3E8 +_02304590: .4byte 0x0231B1F8 +_02304594: .4byte 0x0231B1FC +_02304598: .4byte 0x0231B200 +_0230459C: .4byte 0x0231B208 +_023045A0: .4byte 0x0231B210 +_023045A4: .4byte 0x0231B220 +_023045A8: .4byte 0x0231B3F0 +_023045AC: .4byte 0x0231B3F8 +_023045B0: .4byte 0x0231B1E8 + arm_func_end ov00_02303EE0 + + arm_func_start ov00_023045B4 +ov00_023045B4: @ 0x023045B4 + push {r3, r4, r5, lr} + mov r5, r0 + ldr r4, [r5] + add r2, sp, #0 + ldr r1, [r4, #0x1f0] + bl ov00_0230BA94 + cmp r0, #0 + popne {r3, r4, r5, pc} + ldr r0, [sp] + cmp r0, #4 + bne _02304608 + ldr r1, _02304620 @ =0x00000107 + ldr r2, _02304624 @ =0x0231B418 + mov r0, r5 + bl ov00_0230BCA8 + mov r0, r5 + mov r1, #4 + mov r2, #1 + bl ov00_02302DEC + mov r0, #4 + pop {r3, r4, r5, pc} +_02304608: + cmp r0, #0 + moveq r0, #0 + movne r0, #2 + strne r0, [r4, #0x1f4] + movne r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_02304620: .4byte 0x00000107 +_02304624: .4byte 0x0231B418 + arm_func_end ov00_023045B4 + + arm_func_start ov00_02304628 +ov00_02304628: @ 0x02304628 + push {r4, r5, r6, lr} + mov r5, r1 + ldr r1, [r5, #8] + mov r6, r0 + cmp r1, #0 + ldr r4, [r6] + beq _0230468C + ldr r0, [r4, #0x104] + cmp r0, #0 + bne _0230468C + ldr r0, [r1, #8] + bl ov00_022F5B14 + ldr r0, [r5, #8] + mov r1, #0 + str r1, [r0, #8] + ldr r0, [r5, #8] + ldr r0, [r0, #0xc] + bl ov00_022F5B14 + ldr r0, [r5, #8] + mov r1, #0 + str r1, [r0, #0xc] + ldr r0, [r5, #8] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r5, #8] +_0230468C: + ldr r1, [r5, #0xc] + cmp r1, #0 + beq _02304730 + ldr r0, [r4, #0x104] + cmp r0, #0 + bne _02304730 + ldr r0, [r1, #8] + bl ov00_022F5B14 + ldr r0, [r5, #0xc] + mov r1, #0 + str r1, [r0, #8] + ldr r0, [r5, #0xc] + ldr r0, [r0, #0xc] + bl ov00_022F5B14 + ldr r0, [r5, #0xc] + mov r1, #0 + str r1, [r0, #0xc] + ldr r0, [r5, #0xc] + ldr r0, [r0, #0x10] + bl ov00_022F5B14 + ldr r0, [r5, #0xc] + mov r1, #0 + str r1, [r0, #0x10] + ldr r0, [r5, #0xc] + ldr r0, [r0, #0x14] + bl ov00_022F5B14 + ldr r0, [r5, #0xc] + mov r1, #0 + str r1, [r0, #0x14] + ldr r0, [r5, #0xc] + ldr r0, [r0, #0x38] + cmp r0, #0 + beq _02304720 + bl ov00_022F4758 + ldr r0, [r5, #0xc] + mov r1, #0 + str r1, [r0, #0x38] +_02304720: + ldr r0, [r5, #0xc] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r5, #0xc] +_02304730: + ldr r0, [r5, #0x14] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r5, #0x14] + ldr r0, [r5, #0x1c] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r5, #0x1c] + str r0, [r5, #0x18] + ldr r0, [r5, #0x10] + cmp r0, #0 + beq _0230477C + ldr r0, [r4, #0x104] + cmp r0, #1 + ldreq r0, [r5, #8] + cmpeq r0, #0 + ldreq r0, [r5, #0xc] + cmpeq r0, #0 + bne _02304790 +_0230477C: + mov r0, r6 + mov r1, r5 + bl ov00_02308BCC + mov r0, #0 + pop {r4, r5, r6, pc} +_02304790: + mov r0, #1 + pop {r4, r5, r6, pc} + arm_func_end ov00_02304628 + + arm_func_start ov00_02304798 +ov00_02304798: @ 0x02304798 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0xc + mov r5, r0 + ldr r4, [r5] + ldr r2, [r4, #0x1f4] + cmp r2, #4 + addeq sp, sp, #0xc + popeq {r3, r4, r5, r6, pc} + cmp r2, #0 + beq _0230485C + cmp r1, #0 + beq _023047FC + cmp r2, #3 + bne _023047FC + ldr r2, _02304928 @ =0x0231B440 + add r1, r4, #0x210 + bl ov00_02302638 + ldr r2, [r4, #0x198] + mov r0, r5 + add r1, r4, #0x210 + bl ov00_02302668 + ldr r2, _0230492C @ =0x0231B31C + mov r0, r5 + add r1, r4, #0x210 + bl ov00_02302638 +_023047FC: + mov r1, #1 + ldr r0, _02304930 @ =0x0231B454 + str r1, [sp] + str r0, [sp, #4] + ldr r1, [r4, #0x1f0] + add r3, sp, #8 + mov r0, r5 + add r2, r4, #0x210 + bl ov00_02302A04 + ldr r0, [r4, #0x1f0] + mvn r1, #0 + cmp r0, r1 + beq _02304848 + mov r1, #2 + bl ov00_022F4FC8 + ldr r0, [r4, #0x1f0] + bl ov00_022F4FB4 + mvn r0, #0 + str r0, [r4, #0x1f0] +_02304848: + mov r0, #4 + str r0, [r4, #0x1f4] + mov r0, #0 + str r0, [r4, #0x19c] + str r0, [r4, #0x1a0] +_0230485C: + ldr r0, [r4, #0x1f8] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #0x1f8] + ldr r0, [r4, #0x208] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #0x208] + ldr r0, [r4, #0x210] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #0x210] + ldr r0, [r4, #0x5e0] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #0x5e0] + ldr r0, [r4, #0x5f0] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #0x5f0] + ldr r1, [r4, #0x5c4] + cmp r1, #0 + beq _023048CC +_023048B8: + mov r0, r5 + bl ov00_0230716C + ldr r1, [r4, #0x5c4] + cmp r1, #0 + bne _023048B8 +_023048CC: + mov r0, #0 + str r0, [r4, #0x5c4] + ldr r6, [r4, #0x5d4] + cmp r6, #0 + beq _023048F8 +_023048E0: + mov r1, r6 + ldr r6, [r6, #0x4c] + mov r0, r5 + bl ov00_02307DBC + cmp r6, #0 + bne _023048E0 +_023048F8: + mov r0, #0 + str r0, [r4, #0x5d4] + ldr r6, _02304934 @ =ov00_02304628 + mov r4, r0 +_02304908: + mov r0, r5 + mov r1, r6 + mov r2, r4 + bl ov00_02308CA8 + cmp r0, #0 + beq _02304908 + add sp, sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_02304928: .4byte 0x0231B440 +_0230492C: .4byte 0x0231B31C +_02304930: .4byte 0x0231B454 +_02304934: .4byte ov00_02304628 + arm_func_end ov00_02304798 + + arm_func_start ov00_02304938 +ov00_02304938: @ 0x02304938 + push {r3, r4, r5, lr} + cmp r0, #0 + cmpeq r1, #0 + cmpeq r2, #0 + moveq r0, #1 + popeq {r3, r4, r5, pc} + cmp r0, #0 + cmpge r1, #0 + cmpge r2, #0 + movlt r0, #0 + poplt {r3, r4, r5, pc} + cmp r1, #0xc + addls pc, pc, r1, lsl #2 + b _02304A40 +_02304970: @ jump table + b _023049A4 @ case 0 + b _023049B4 @ case 1 + b _023049D4 @ case 2 + b _023049B4 @ case 3 + b _023049C4 @ case 4 + b _023049B4 @ case 5 + b _023049C4 @ case 6 + b _023049B4 @ case 7 + b _023049B4 @ case 8 + b _023049C4 @ case 9 + b _023049B4 @ case 10 + b _023049C4 @ case 11 + b _023049B4 @ case 12 +_023049A4: + cmp r0, #0 + beq _02304A48 + mov r0, #0 + pop {r3, r4, r5, pc} +_023049B4: + cmp r0, #0x1f + ble _02304A48 + mov r0, #0 + pop {r3, r4, r5, pc} +_023049C4: + cmp r0, #0x1e + ble _02304A48 + mov r0, #0 + pop {r3, r4, r5, pc} +_023049D4: + lsr r4, r2, #0x1f + rsb r3, r4, r2, lsl #30 + adds r3, r4, r3, ror #30 + bne _02304A00 + ldr ip, _02304A90 @ =0x51EB851F + mov lr, #0x64 + smull r3, r5, ip, r2 + add r5, r4, r5, asr #5 + smull r3, ip, lr, r5 + subs r5, r2, r3 + bne _02304A20 +_02304A00: + ldr lr, _02304A90 @ =0x51EB851F + lsr r3, r2, #0x1f + smull ip, r4, lr, r2 + add r4, r3, r4, asr #7 + mov lr, #0x190 + smull r3, ip, lr, r4 + subs r4, r2, r3 + bne _02304A30 +_02304A20: + cmp r0, #0x1d + ble _02304A48 + mov r0, #0 + pop {r3, r4, r5, pc} +_02304A30: + cmp r0, #0x1c + ble _02304A48 + mov r0, #0 + pop {r3, r4, r5, pc} +_02304A40: + mov r0, #0 + pop {r3, r4, r5, pc} +_02304A48: + ldr ip, _02304A94 @ =0x0000076C + cmp r2, ip + movlt r0, #0 + poplt {r3, r4, r5, pc} + add r3, ip, #0xb3 + cmp r2, r3 + movgt r0, #0 + popgt {r3, r4, r5, pc} + bne _02304A88 + cmp r1, #6 + movgt r0, #0 + popgt {r3, r4, r5, pc} + bne _02304A88 + cmp r0, #6 + movgt r0, #0 + popgt {r3, r4, r5, pc} +_02304A88: + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_02304A90: .4byte 0x51EB851F +_02304A94: .4byte 0x0000076C + arm_func_end ov00_02304938 + + arm_func_start ov00_02304A98 +ov00_02304A98: @ 0x02304A98 + push {r3, r4, r5, r6, r7, r8, sb, lr} + asr lr, r1, #0x18 + asr ip, r1, #0x10 + lsl r1, r1, #0x10 + and r5, ip, #0xff + and r4, lr, #0xff + mov sb, r0 + lsr r6, r1, #0x10 + mov r8, r2 + mov r0, r4 + mov r1, r5 + mov r2, r6 + mov r7, r3 + bl ov00_02304938 + cmp r0, #0 + bne _02304AEC + ldr r1, _02304B04 @ =0x0231B458 + mov r0, sb + bl ov00_0230BCCC + mov r0, #2 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_02304AEC: + str r4, [r8] + ldr r0, [sp, #0x20] + str r5, [r7] + str r6, [r0] + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_02304B04: .4byte 0x0231B458 + arm_func_end ov00_02304A98 + + arm_func_start ov00_02304B08 +ov00_02304B08: @ 0x02304B08 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + ldr r1, [r5] + cmp r1, #0 + moveq r0, #0 + strbeq r0, [r4, #8] + beq _02304B34 + add r0, r4, #8 + mov r2, #0x1f + bl ov00_0230B930 +_02304B34: + ldr r1, [r5, #4] + cmp r1, #0 + moveq r0, #0 + strbeq r0, [r4, #0x27] + beq _02304B54 + add r0, r4, #0x27 + mov r2, #0x15 + bl ov00_0230B930 +_02304B54: + ldr r1, [r5, #8] + cmp r1, #0 + moveq r0, #0 + strbeq r0, [r4, #0x3c] + beq _02304B74 + add r0, r4, #0x3c + mov r2, #0x33 + bl ov00_0230B930 +_02304B74: + ldr r1, [r5, #0xc] + cmp r1, #0 + moveq r0, #0 + strbeq r0, [r4, #0x6f] + beq _02304B94 + add r0, r4, #0x6f + mov r2, #0x1f + bl ov00_0230B930 +_02304B94: + ldr r1, [r5, #0x10] + cmp r1, #0 + moveq r0, #0 + strbeq r0, [r4, #0x8e] + beq _02304BB4 + add r0, r4, #0x8e + mov r2, #0x1f + bl ov00_0230B930 +_02304BB4: + ldr r1, [r5, #0x14] + cmp r1, #0 + moveq r0, #0 + strbeq r0, [r4, #0xad] + beq _02304BD4 + add r0, r4, #0xad + mov r2, #0x4c + bl ov00_0230B930 +_02304BD4: + ldr r3, [r5, #0x18] + add r0, r4, #0x100 + add r1, r5, #0x1c + mov r2, #0xb + str r3, [r4, #0xfc] + bl ov00_0230B930 + add r0, r4, #0xb + add r0, r0, #0x100 + add r1, r5, #0x27 + mov r2, #3 + bl ov00_0230B930 + ldr r0, [r5, #0x2c] + adds r1, r5, #0x34 + str r0, [r4, #0x110] + ldr r0, [r5, #0x30] + str r0, [r4, #0x114] + moveq r0, #0 + strbeq r0, [r4, #0x118] + beq _02304C2C + add r0, r4, #0x118 + mov r2, #0x80 + bl ov00_0230B930 +_02304C2C: + ldr r0, [r5, #0xb4] + str r0, [r4, #0x198] + ldr r0, [r5, #0xb8] + str r0, [r4, #0x19c] + ldr r0, [r5, #0xbc] + str r0, [r4, #0x1a0] + ldr r0, [r5, #0xc0] + str r0, [r4, #0x1a4] + ldr r0, [r5, #0xc4] + str r0, [r4, #0x1a8] + ldr r1, [r5, #0xc8] + cmp r1, #0 + moveq r0, #0 + strbeq r0, [r4, #0x1ac] + beq _02304C74 + add r0, r4, #0x1ac + mov r2, #0x33 + bl ov00_0230B930 +_02304C74: + ldr r0, [r5, #0x18] + str r0, [r4, #0xfc] + ldr r0, [r5, #0x2c] + str r0, [r4, #0x110] + ldr r0, [r5, #0x30] + str r0, [r4, #0x114] + ldr r0, [r5, #0xb4] + str r0, [r4, #0x198] + ldr r0, [r5, #0xb8] + str r0, [r4, #0x19c] + ldr r0, [r5, #0xbc] + str r0, [r4, #0x1a0] + ldr r0, [r5, #0xc0] + str r0, [r4, #0x1a4] + ldr r0, [r5, #0xc4] + str r0, [r4, #0x1a8] + ldr r0, [r5, #0xcc] + str r0, [r4, #0x1e0] + ldr r0, [r5, #0xd0] + str r0, [r4, #0x1e4] + ldr r0, [r5, #0xd4] + str r0, [r4, #0x1e8] + ldr r0, [r5, #0xd8] + str r0, [r4, #0x1ec] + ldr r0, [r5, #0xdc] + str r0, [r4, #0x1f0] + ldr r0, [r5, #0xe0] + str r0, [r4, #0x1f4] + ldr r0, [r5, #0xe4] + str r0, [r4, #0x1f8] + ldr r0, [r5, #0xe8] + str r0, [r4, #0x1fc] + ldr r0, [r5, #0xec] + str r0, [r4, #0x200] + pop {r3, r4, r5, pc} + arm_func_end ov00_02304B08 + + arm_func_start ov00_02304D00 +ov00_02304D00: @ 0x02304D00 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x268 + mov r4, r2 + mov sl, r0 + mov fp, r1 + mov r1, r4 + mov r2, #1 + ldr r6, [sl] + bl ov00_0230B950 + cmp r0, #0 + addne sp, sp, #0x268 + movne r0, #4 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, _0230546C @ =0x0231B468 + mov r0, r4 + mov r2, #4 + bl FUN_02089940 + cmp r0, #0 + beq _02304D78 + ldr r2, _02305470 @ =0x0231B470 + mov r0, sl + mov r1, #1 + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x268 + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02304D78: + ldr r1, _02305474 @ =0x0231B4A0 + add r2, sp, #0xec + mov r0, r4 + mov r3, #0x40 + bl ov00_0230BA28 + cmp r0, #0 + bne _02304DC0 + ldr r2, _02305470 @ =0x0231B470 + mov r0, sl + mov r1, #1 + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x268 + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02304DC0: + add r0, sp, #0xec + bl FUN_0208B360 + mov sb, r0 + add r2, sp, #0x10 + mov r0, sl + mov r1, sb + bl ov00_02308A4C + mov r0, #0 + add r7, sp, #0x178 + mov r1, r0 + mov r2, r0 + mov r3, r0 + mov r5, #7 +_02304DF4: + stm r7!, {r0, r1, r2, r3} + stm r7!, {r0, r1, r2, r3} + subs r5, r5, #1 + bne _02304DF4 + stm r7!, {r0, r1, r2, r3} + add r3, sp, #0xb8 + add r1, sp, #0x66 + add r2, sp, #0xcd + add r5, sp, #0x85 + add r0, sp, #0x47 + str r3, [sp, #0x17c] + add r3, sp, #0x12c + str r1, [sp, #0x184] + str r5, [sp, #0x180] + add r5, sp, #0x14 + str r0, [sp, #0x188] + str r3, [sp, #0x18c] + ldr r1, _02305478 @ =0x0231B4AC + mov r0, r4 + mov r3, #0x1f + str r2, [sp, #0x178] + str r5, [sp, #0x240] + bl ov00_0230BA28 + cmp r0, #0 + ldreq r0, [sp, #0x178] + moveq r1, #0 + strbeq r1, [r0] + ldr r2, [sp, #0x17c] + ldr r1, _0230547C @ =0x0231B4B4 + mov r0, r4 + mov r3, #0x15 + bl ov00_0230BA28 + cmp r0, #0 + ldreq r0, [sp, #0x17c] + moveq r1, #0 + strbeq r1, [r0] + ldr r2, [sp, #0x180] + ldr r1, _02305480 @ =0x0231B4C4 + mov r0, r4 + mov r3, #0x33 + bl ov00_0230BA28 + cmp r0, #0 + ldreq r0, [sp, #0x180] + moveq r1, #0 + strbeq r1, [r0] + ldr r2, [sp, #0x184] + ldr r1, _02305484 @ =0x0231B4CC + mov r0, r4 + mov r3, #0x1f + bl ov00_0230BA28 + cmp r0, #0 + ldreq r0, [sp, #0x184] + moveq r1, #0 + strbeq r1, [r0] + ldr r2, [sp, #0x188] + ldr r1, _02305488 @ =0x0231B4D8 + mov r0, r4 + mov r3, #0x1f + bl ov00_0230BA28 + cmp r0, #0 + ldreq r0, [sp, #0x188] + moveq r1, #0 + strbeq r1, [r0] + ldr r1, _0230548C @ =0x0231B4E4 + add r2, sp, #0xec + mov r0, r4 + mov r3, #0x40 + bl ov00_0230BA28 + cmp r0, #0 + mvneq r0, #0 + streq r0, [sp, #0x190] + beq _02304F20 + add r0, sp, #0xec + bl FUN_0208B360 + str r0, [sp, #0x190] +_02304F20: + ldr r2, [sp, #0x18c] + ldr r1, _02305490 @ =0x0231B4F0 + mov r0, r4 + mov r3, #0x4c + bl ov00_0230BA28 + cmp r0, #0 + ldreq r0, [sp, #0x18c] + moveq r1, #0 + strbeq r1, [r0] + ldr r1, _02305494 @ =0x0231B4FC + add r2, sp, #0x194 + mov r0, r4 + mov r3, #0xb + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + add r2, sp, #0x100 + strbeq r0, [sp, #0x194] + ldr r1, _02305498 @ =0x0231B508 + add r2, r2, #0x9f + mov r0, r4 + mov r3, #3 + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + strbeq r0, [sp, #0x19f] + ldr r1, _0230549C @ =0x0231B518 + add r2, sp, #0xec + mov r0, r4 + mov r3, #0x40 + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + streq r0, [sp, #0x1a4] + beq _02304FBC + add r0, sp, #0xec + bl FUN_0208AE08 + bl FUN_0208E1E0 + str r0, [sp, #0x1a4] +_02304FBC: + ldr r1, _023054A0 @ =0x0231B520 + add r2, sp, #0xec + mov r0, r4 + mov r3, #0x40 + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + streq r0, [sp, #0x1a8] + beq _02304FF0 + add r0, sp, #0xec + bl FUN_0208AE08 + bl FUN_0208E1E0 + str r0, [sp, #0x1a8] +_02304FF0: + ldr r1, _023054A4 @ =0x0231B528 + add r2, sp, #0x1ac + mov r0, r4 + mov r3, #0x80 + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + strbeq r0, [sp, #0x1ac] + ldr r1, _023054A8 @ =0x0231B530 + add r2, sp, #0xec + mov r0, r4 + mov r3, #0x40 + bl ov00_0230BA28 + cmp r0, #0 + bne _02305040 + mov r0, #0 + str r0, [sp, #0x22c] + str r0, [sp, #0x230] + str r0, [sp, #0x234] + b _02305070 +_02305040: + add r0, sp, #0xec + bl FUN_0208B360 + add r5, sp, #0x234 + mov r1, r0 + add r2, sp, #0x22c + add r3, sp, #0x230 + mov r0, sl + str r5, [sp] + bl ov00_02304A98 + cmp r0, #0 + addne sp, sp, #0x268 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02305070: + ldr r1, _023054AC @ =0x0231B53C + add r2, sp, #0xec + mov r0, r4 + mov r3, #0x40 + bl ov00_0230BA28 + cmp r0, #0 + ldreq r0, _023054B0 @ =0x00000502 + streq r0, [sp, #0x238] + beq _023050BC + ldrsb r0, [sp, #0xec] + cmp r0, #0x30 + moveq r0, #0x500 + streq r0, [sp, #0x238] + beq _023050BC + cmp r0, #0x31 + ldreq r0, _023054B4 @ =0x00000501 + streq r0, [sp, #0x238] + ldrne r0, _023054B0 @ =0x00000502 + strne r0, [sp, #0x238] +_023050BC: + ldr r1, _023054B8 @ =0x0231B544 + add r2, sp, #0xec + mov r0, r4 + mov r3, #0x40 + bl ov00_0230BA28 + cmp r0, #0 + mvneq r0, #0 + streq r0, [sp, #0x23c] + beq _023050EC + add r0, sp, #0xec + bl FUN_0208B360 + str r0, [sp, #0x23c] +_023050EC: + ldr r2, [sp, #0x240] + ldr r1, _023054BC @ =0x0231B54C + mov r0, r4 + mov r3, #0x33 + bl ov00_0230BA28 + cmp r0, #0 + ldreq r0, [sp, #0x240] + moveq r1, #0 + strbeq r1, [r0] + ldr r1, _023054C0 @ =0x0231B554 + add r2, sp, #0xec + mov r0, r4 + mov r3, #0x40 + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + streq r0, [sp, #0x244] + beq _02305140 + add r0, sp, #0xec + bl FUN_0208B360 + str r0, [sp, #0x244] +_02305140: + ldr r1, _023054C4 @ =0x0231B55C + add r2, sp, #0xec + mov r0, r4 + mov r3, #0x40 + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + streq r0, [sp, #0x248] + beq _02305170 + add r0, sp, #0xec + bl FUN_0208B360 + str r0, [sp, #0x248] +_02305170: + ldr r1, _023054C8 @ =0x0231B564 + add r2, sp, #0xec + mov r0, r4 + mov r3, #0x40 + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + streq r0, [sp, #0x24c] + beq _023051A0 + add r0, sp, #0xec + bl FUN_0208B360 + str r0, [sp, #0x24c] +_023051A0: + ldr r1, _023054CC @ =0x0231B56C + add r2, sp, #0xec + mov r0, r4 + mov r3, #0x40 + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + streq r0, [sp, #0x250] + beq _023051D0 + add r0, sp, #0xec + bl FUN_0208B360 + str r0, [sp, #0x250] +_023051D0: + ldr r1, _023054D0 @ =0x0231B574 + add r2, sp, #0xec + mov r0, r4 + mov r3, #0x40 + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + streq r0, [sp, #0x254] + beq _02305200 + add r0, sp, #0xec + bl FUN_0208B360 + str r0, [sp, #0x254] +_02305200: + ldr r1, _023054D4 @ =0x0231B57C + add r2, sp, #0xec + mov r0, r4 + mov r3, #0x40 + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + streq r0, [sp, #0x258] + beq _02305230 + add r0, sp, #0xec + bl FUN_0208B360 + str r0, [sp, #0x258] +_02305230: + ldr r1, _023054D8 @ =0x0231B584 + add r2, sp, #0xec + mov r0, r4 + mov r3, #0x40 + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + streq r0, [sp, #0x25c] + beq _02305260 + add r0, sp, #0xec + bl FUN_0208B360 + str r0, [sp, #0x25c] +_02305260: + ldr r1, _023054DC @ =0x0231B58C + add r2, sp, #0xec + mov r0, r4 + mov r3, #0x40 + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + streq r0, [sp, #0x260] + beq _02305290 + add r0, sp, #0xec + bl FUN_0208B360 + str r0, [sp, #0x260] +_02305290: + ldr r1, _023054E0 @ =0x0231B594 + add r2, sp, #0xec + mov r0, r4 + mov r3, #0x40 + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + streq r0, [sp, #0x264] + beq _023052C0 + add r0, sp, #0xec + bl FUN_0208B360 + str r0, [sp, #0x264] +_023052C0: + ldr r1, _023054E4 @ =0x0231B59C + add r2, sp, #0xec + mov r0, r4 + mov r3, #0x40 + bl ov00_0230BA28 + cmp r0, #0 + bne _02305308 + ldr r2, _02305470 @ =0x0231B470 + mov r0, sl + mov r1, #1 + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x268 + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02305308: + ldr r7, [r6, #0x5d4] + ldr r8, [r6, #0x100] + cmp r7, #0 + beq _02305364 + mov r5, #0x66 + mov r4, #1 +_02305320: + ldr r0, [r7, #0x10] + cmp r0, sb + ldreq r0, [r7] + cmpeq r0, #0x65 + bne _02305358 + ldr r0, [sp, #0x10] + cmp r0, #0 + bne _02305350 + mov r0, sl + mov r1, sb + bl ov00_0230899C + str r0, [sp, #0x10] +_02305350: + mov r8, r4 + str r5, [r7] +_02305358: + ldr r7, [r7, #0x4c] + cmp r7, #0 + bne _02305320 +_02305364: + ldr r0, [sp, #0x10] + cmp r0, #0 + bne _0230538C + ldr r0, [r6, #0x100] + cmp r0, #0 + beq _0230538C + mov r0, sl + mov r1, sb + bl ov00_0230899C + str r0, [sp, #0x10] +_0230538C: + cmp r8, #0 + beq _023053BC + ldr r0, [sp, #0x10] + ldr r0, [r0, #0x1c] + bl ov00_022F5B14 + ldr r1, [sp, #0x10] + mov r2, #0 + add r0, sp, #0xec + str r2, [r1, #0x1c] + bl ov00_022F5514 + ldr r1, [sp, #0x10] + str r0, [r1, #0x1c] +_023053BC: + ldr r0, [r6, #0x100] + cmp r0, #0 + beq _023053D8 + ldr r1, [sp, #0x10] + add r2, sp, #0x178 + mov r0, sl + bl ov00_02306548 +_023053D8: + ldr r1, [fp, #0xc] + ldr r0, [fp, #0x10] + str r1, [sp, #8] + str r0, [sp, #0xc] + cmp r1, #0 + beq _02305454 + mov r0, #0x204 + bl ov00_022F5AE4 + movs r4, r0 + bne _02305418 + ldr r1, _023054E8 @ =0x0231B5A4 + mov r0, sl + bl ov00_0230BCCC + add sp, sp, #0x268 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02305418: + add r0, sp, #0x178 + mov r1, r4 + bl ov00_02304B08 + mov r2, #0 + stm r4, {r2, sb} + str fp, [sp] + add r1, sp, #8 + str r2, [sp, #4] + mov r0, sl + mov r3, r4 + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + addne sp, sp, #0x268 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02305454: + mov r0, sl + mov r1, fp + bl ov00_0230716C + mov r0, #0 + add sp, sp, #0x268 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0230546C: .4byte 0x0231B468 +_02305470: .4byte 0x0231B470 +_02305474: .4byte 0x0231B4A0 +_02305478: .4byte 0x0231B4AC +_0230547C: .4byte 0x0231B4B4 +_02305480: .4byte 0x0231B4C4 +_02305484: .4byte 0x0231B4CC +_02305488: .4byte 0x0231B4D8 +_0230548C: .4byte 0x0231B4E4 +_02305490: .4byte 0x0231B4F0 +_02305494: .4byte 0x0231B4FC +_02305498: .4byte 0x0231B508 +_0230549C: .4byte 0x0231B518 +_023054A0: .4byte 0x0231B520 +_023054A4: .4byte 0x0231B528 +_023054A8: .4byte 0x0231B530 +_023054AC: .4byte 0x0231B53C +_023054B0: .4byte 0x00000502 +_023054B4: .4byte 0x00000501 +_023054B8: .4byte 0x0231B544 +_023054BC: .4byte 0x0231B54C +_023054C0: .4byte 0x0231B554 +_023054C4: .4byte 0x0231B55C +_023054C8: .4byte 0x0231B564 +_023054CC: .4byte 0x0231B56C +_023054D0: .4byte 0x0231B574 +_023054D4: .4byte 0x0231B57C +_023054D8: .4byte 0x0231B584 +_023054DC: .4byte 0x0231B58C +_023054E0: .4byte 0x0231B594 +_023054E4: .4byte 0x0231B59C +_023054E8: .4byte 0x0231B5A4 + arm_func_end ov00_02304D00 + + arm_func_start ov00_023054EC +ov00_023054EC: @ 0x023054EC + push {r4, r5, r6, lr} + mov r6, r0 + ldr r4, [r6] + mov r5, r1 + ldr r2, [r4, #0x5e8] + cmp r2, #0 + ble _02305568 + ldr r2, _023055C4 @ =0x0231B5B4 + bl ov00_02302638 + ldr r2, [r4, #0x198] + mov r0, r6 + mov r1, r5 + bl ov00_02302668 + ldr r2, [r4, #0x5e0] + mov r0, r6 + mov r1, r5 + bl ov00_02302638 + ldr r2, _023055C8 @ =0x0231B5CC + mov r0, r6 + mov r1, r5 + bl ov00_02302638 + mov r0, r6 + mov r1, r5 + ldr r2, [r4, #0x1a4] + bl ov00_02302668 + mov r0, r6 + mov r1, r5 + ldr r2, _023055CC @ =0x0231B5D8 + bl ov00_02302638 + mov r0, #0 + str r0, [r4, #0x5e8] +_02305568: + ldr r0, [r4, #0x5f8] + cmp r0, #0 + ble _023055BC + ldr r2, _023055D0 @ =0x0231B5E0 + mov r0, r6 + mov r1, r5 + bl ov00_02302638 + ldr r2, [r4, #0x198] + mov r0, r6 + mov r1, r5 + bl ov00_02302668 + ldr r2, [r4, #0x5f0] + mov r0, r6 + mov r1, r5 + bl ov00_02302638 + ldr r2, _023055CC @ =0x0231B5D8 + mov r0, r6 + mov r1, r5 + bl ov00_02302638 + mov r0, #0 + str r0, [r4, #0x5f8] +_023055BC: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_023055C4: .4byte 0x0231B5B4 +_023055C8: .4byte 0x0231B5CC +_023055CC: .4byte 0x0231B5D8 +_023055D0: .4byte 0x0231B5E0 + arm_func_end ov00_023054EC + + arm_func_start ov00_023055D4 +ov00_023055D4: @ 0x023055D4 + push {r4, r5, r6, lr} + mov r6, r0 + ldr r4, [r6] + mov r5, r2 + mov r2, r1 + add r1, r4, #0x5e0 + bl ov00_02302638 + cmp r0, #0 + popne {r4, r5, r6, pc} + mov r0, r6 + mov r2, r5 + add r1, r4, #0x5e0 + bl ov00_02302638 + cmp r0, #0 + moveq r0, #0 + pop {r4, r5, r6, pc} + arm_func_end ov00_023055D4 + + arm_func_start ov00_02305614 +ov00_02305614: @ 0x02305614 + push {r4, r5, r6, lr} + mov r6, r0 + ldr r4, [r6] + mov r5, r2 + mov r2, r1 + add r1, r4, #0x5f0 + bl ov00_02302638 + cmp r0, #0 + popne {r4, r5, r6, pc} + mov r0, r6 + mov r2, r5 + add r1, r4, #0x5f0 + bl ov00_02302638 + cmp r0, #0 + moveq r0, #0 + pop {r4, r5, r6, pc} + arm_func_end ov00_02305614 + + arm_func_start ov00_02305654 +ov00_02305654: @ 0x02305654 + push {r4, lr} + sub sp, sp, #0x10 + sub r1, r1, #6 + sub r1, r1, #0x700 + mov r4, r0 + cmp r1, #0x18 + addls pc, pc, r1, lsl #2 + b _02305A98 +_02305674: @ jump table + b _023057AC @ case 0 + b _02305A98 @ case 1 + b _023056D8 @ case 2 + b _02305A98 @ case 3 + b _02305A98 @ case 4 + b _02305720 @ case 5 + b _023057D8 @ case 6 + b _02305804 @ case 7 + b _02305830 @ case 8 + b _02305A98 @ case 9 + b _02305868 @ case 10 + b _02305A98 @ case 11 + b _023058A0 @ case 12 + b _023058D8 @ case 13 + b _02305904 @ case 14 + b _02305930 @ case 15 + b _02305A98 @ case 16 + b _02305A98 @ case 17 + b _02305964 @ case 18 + b _02305990 @ case 19 + b _023059BC @ case 20 + b _023059E8 @ case 21 + b _02305A14 @ case 22 + b _02305A40 @ case 23 + b _02305A6C @ case 24 +_023056D8: + cmp r2, #0 + bge _023056F4 + ldr r1, _02305ABC @ =0x0231B5F4 + bl ov00_0230BCCC + add sp, sp, #0x10 + mov r0, #2 + pop {r4, pc} +_023056F4: + ldr r1, _02305AC0 @ =0x0231B608 + add r0, sp, #0 + bl FUN_020790DC + ldr r1, _02305AC4 @ =0x0231B4FC + add r2, sp, #0 + mov r0, r4 + bl ov00_023055D4 + cmp r0, #0 + beq _02305AB0 + add sp, sp, #0x10 + pop {r4, pc} +_02305720: + cmp r2, #0x500 + beq _02305744 + ldr r1, _02305AC8 @ =0x00000501 + cmp r2, r1 + beq _02305760 + add r1, r1, #1 + cmp r2, r1 + beq _0230577C + b _02305798 +_02305744: + ldr r1, _02305ACC @ =0x0231B53C + ldr r2, _02305AD0 @ =0x0231B60C + bl ov00_023055D4 + cmp r0, #0 + beq _02305AB0 + add sp, sp, #0x10 + pop {r4, pc} +_02305760: + ldr r1, _02305ACC @ =0x0231B53C + ldr r2, _02305AD4 @ =0x0231B610 + bl ov00_023055D4 + cmp r0, #0 + beq _02305AB0 + add sp, sp, #0x10 + pop {r4, pc} +_0230577C: + ldr r1, _02305ACC @ =0x0231B53C + ldr r2, _02305AD8 @ =0x0231B614 + bl ov00_023055D4 + cmp r0, #0 + beq _02305AB0 + add sp, sp, #0x10 + pop {r4, pc} +_02305798: + ldr r1, _02305ADC @ =0x0231B618 + bl ov00_0230BCCC + add sp, sp, #0x10 + mov r0, #2 + pop {r4, pc} +_023057AC: + ldr r1, _02305AC0 @ =0x0231B608 + add r0, sp, #0 + bl FUN_020790DC + ldr r1, _02305AE0 @ =0x0231B4E4 + add r2, sp, #0 + mov r0, r4 + bl ov00_023055D4 + cmp r0, #0 + beq _02305AB0 + add sp, sp, #0x10 + pop {r4, pc} +_023057D8: + ldr r1, _02305AC0 @ =0x0231B608 + add r0, sp, #0 + bl FUN_020790DC + ldr r1, _02305AE4 @ =0x0231B628 + add r2, sp, #0 + mov r0, r4 + bl ov00_02305614 + cmp r0, #0 + beq _02305AB0 + add sp, sp, #0x10 + pop {r4, pc} +_02305804: + ldr r1, _02305AC0 @ =0x0231B608 + add r0, sp, #0 + bl FUN_020790DC + ldr r1, _02305AE8 @ =0x0231B638 + add r2, sp, #0 + mov r0, r4 + bl ov00_02305614 + cmp r0, #0 + beq _02305AB0 + add sp, sp, #0x10 + pop {r4, pc} +_02305830: + asr r0, r2, #3 + add r2, r2, r0, lsr #28 + ldr r1, _02305AC0 @ =0x0231B608 + add r0, sp, #0 + asr r2, r2, #4 + bl FUN_020790DC + ldr r1, _02305AEC @ =0x0231B644 + add r2, sp, #0 + mov r0, r4 + bl ov00_02305614 + cmp r0, #0 + beq _02305AB0 + add sp, sp, #0x10 + pop {r4, pc} +_02305868: + asr r0, r2, #1 + add r2, r2, r0, lsr #30 + ldr r1, _02305AC0 @ =0x0231B608 + add r0, sp, #0 + asr r2, r2, #2 + bl FUN_020790DC + ldr r1, _02305AF0 @ =0x0231B650 + add r2, sp, #0 + mov r0, r4 + bl ov00_02305614 + cmp r0, #0 + beq _02305AB0 + add sp, sp, #0x10 + pop {r4, pc} +_023058A0: + asr r0, r2, #1 + add r2, r2, r0, lsr #30 + ldr r1, _02305AC0 @ =0x0231B608 + add r0, sp, #0 + asr r2, r2, #2 + bl FUN_020790DC + ldr r1, _02305AF4 @ =0x0231B660 + add r2, sp, #0 + mov r0, r4 + bl ov00_02305614 + cmp r0, #0 + beq _02305AB0 + add sp, sp, #0x10 + pop {r4, pc} +_023058D8: + ldr r1, _02305AC0 @ =0x0231B608 + add r0, sp, #0 + bl FUN_020790DC + ldr r1, _02305AF8 @ =0x0231B670 + add r2, sp, #0 + mov r0, r4 + bl ov00_02305614 + cmp r0, #0 + beq _02305AB0 + add sp, sp, #0x10 + pop {r4, pc} +_02305904: + ldr r1, _02305AC0 @ =0x0231B608 + add r0, sp, #0 + bl FUN_020790DC + ldr r1, _02305AFC @ =0x0231B680 + add r2, sp, #0 + mov r0, r4 + bl ov00_02305614 + cmp r0, #0 + beq _02305AB0 + add sp, sp, #0x10 + pop {r4, pc} +_02305930: + ldr r1, _02305AC0 @ =0x0231B608 + cmp r2, #0 + movne r2, #1 + add r0, sp, #0 + bl FUN_020790DC + ldr r1, _02305B00 @ =0x0231B694 + add r2, sp, #0 + mov r0, r4 + bl ov00_02305614 + cmp r0, #0 + beq _02305AB0 + add sp, sp, #0x10 + pop {r4, pc} +_02305964: + ldr r1, _02305AC0 @ =0x0231B608 + add r0, sp, #0 + bl FUN_020790DC + ldr r1, _02305B04 @ =0x0231B554 + add r2, sp, #0 + mov r0, r4 + bl ov00_023055D4 + cmp r0, #0 + beq _02305AB0 + add sp, sp, #0x10 + pop {r4, pc} +_02305990: + ldr r1, _02305AC0 @ =0x0231B608 + add r0, sp, #0 + bl FUN_020790DC + ldr r1, _02305B08 @ =0x0231B55C + add r2, sp, #0 + mov r0, r4 + bl ov00_023055D4 + cmp r0, #0 + beq _02305AB0 + add sp, sp, #0x10 + pop {r4, pc} +_023059BC: + ldr r1, _02305AC0 @ =0x0231B608 + add r0, sp, #0 + bl FUN_020790DC + ldr r1, _02305B0C @ =0x0231B564 + add r2, sp, #0 + mov r0, r4 + bl ov00_023055D4 + cmp r0, #0 + beq _02305AB0 + add sp, sp, #0x10 + pop {r4, pc} +_023059E8: + ldr r1, _02305AC0 @ =0x0231B608 + add r0, sp, #0 + bl FUN_020790DC + ldr r1, _02305B10 @ =0x0231B56C + add r2, sp, #0 + mov r0, r4 + bl ov00_023055D4 + cmp r0, #0 + beq _02305AB0 + add sp, sp, #0x10 + pop {r4, pc} +_02305A14: + ldr r1, _02305AC0 @ =0x0231B608 + add r0, sp, #0 + bl FUN_020790DC + ldr r1, _02305B14 @ =0x0231B574 + add r2, sp, #0 + mov r0, r4 + bl ov00_023055D4 + cmp r0, #0 + beq _02305AB0 + add sp, sp, #0x10 + pop {r4, pc} +_02305A40: + ldr r1, _02305AC0 @ =0x0231B608 + add r0, sp, #0 + bl FUN_020790DC + ldr r1, _02305B18 @ =0x0231B57C + add r2, sp, #0 + mov r0, r4 + bl ov00_023055D4 + cmp r0, #0 + beq _02305AB0 + add sp, sp, #0x10 + pop {r4, pc} +_02305A6C: + ldr r1, _02305AC0 @ =0x0231B608 + add r0, sp, #0 + bl FUN_020790DC + ldr r1, _02305B1C @ =0x0231B584 + add r2, sp, #0 + mov r0, r4 + bl ov00_023055D4 + cmp r0, #0 + beq _02305AB0 + add sp, sp, #0x10 + pop {r4, pc} +_02305A98: + ldr r1, _02305B20 @ =0x0231B6A4 + mov r0, r4 + bl ov00_0230BCCC + add sp, sp, #0x10 + mov r0, #2 + pop {r4, pc} +_02305AB0: + mov r0, #0 + add sp, sp, #0x10 + pop {r4, pc} + .align 2, 0 +_02305ABC: .4byte 0x0231B5F4 +_02305AC0: .4byte 0x0231B608 +_02305AC4: .4byte 0x0231B4FC +_02305AC8: .4byte 0x00000501 +_02305ACC: .4byte 0x0231B53C +_02305AD0: .4byte 0x0231B60C +_02305AD4: .4byte 0x0231B610 +_02305AD8: .4byte 0x0231B614 +_02305ADC: .4byte 0x0231B618 +_02305AE0: .4byte 0x0231B4E4 +_02305AE4: .4byte 0x0231B628 +_02305AE8: .4byte 0x0231B638 +_02305AEC: .4byte 0x0231B644 +_02305AF0: .4byte 0x0231B650 +_02305AF4: .4byte 0x0231B660 +_02305AF8: .4byte 0x0231B670 +_02305AFC: .4byte 0x0231B680 +_02305B00: .4byte 0x0231B694 +_02305B04: .4byte 0x0231B554 +_02305B08: .4byte 0x0231B55C +_02305B0C: .4byte 0x0231B564 +_02305B10: .4byte 0x0231B56C +_02305B14: .4byte 0x0231B574 +_02305B18: .4byte 0x0231B57C +_02305B1C: .4byte 0x0231B584 +_02305B20: .4byte 0x0231B6A4 + arm_func_end ov00_02305654 + + arm_func_start ov00_02305B24 +ov00_02305B24: @ 0x02305B24 + push {r4, r5, r6, lr} + sub sp, sp, #0x130 + mov r6, r0 + movs r5, r2 + ldr r4, [r6] + bne _02305B50 + ldr r1, _02306284 @ =0x0231B6B4 + bl ov00_0230BCCC + add sp, sp, #0x130 + mov r0, #2 + pop {r4, r5, r6, pc} +_02305B50: + sub r1, r1, #0x700 + cmp r1, #0x1e + addls pc, pc, r1, lsl #2 + b _02306260 +_02305B60: @ jump table + b _02305BDC @ case 0 + b _02305C3C @ case 1 + b _02305CA0 @ case 2 + b _02305D08 @ case 3 + b _02305D7C @ case 4 + b _02305DAC @ case 5 + b _02305F30 @ case 6 + b _02305DDC @ case 7 + b _02305E0C @ case 8 + b _02305E3C @ case 9 + b _02306260 @ case 10 + b _02305E94 @ case 11 + b _02306260 @ case 12 + b _02305F60 @ case 13 + b _02305F88 @ case 14 + b _02305FB0 @ case 15 + b _02305FE0 @ case 16 + b _02306008 @ case 17 + b _02306038 @ case 18 + b _02306260 @ case 19 + b _02306060 @ case 20 + b _02306088 @ case 21 + b _023060B0 @ case 22 + b _023060E0 @ case 23 + b _02306110 @ case 24 + b _02306140 @ case 25 + b _02306170 @ case 26 + b _023061A0 @ case 27 + b _023061D0 @ case 28 + b _02306200 @ case 29 + b _02306230 @ case 30 +_02305BDC: + ldrsb r1, [r5] + cmp r1, #0 + bne _02305BFC + ldr r1, _02306284 @ =0x0231B6B4 + bl ov00_0230BCCC + add sp, sp, #0x130 + mov r0, #2 + pop {r4, r5, r6, pc} +_02305BFC: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #0x1f + bl ov00_0230B930 + add r1, sp, #0x2d + add r0, r4, #0x110 + mov r2, #0x1f + bl ov00_0230B930 + ldr r1, _02306288 @ =0x0231B4AC + add r2, sp, #0x2d + mov r0, r6 + bl ov00_023055D4 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02305C3C: + ldrsb r1, [r5] + cmp r1, #0 + bne _02305C5C + ldr r1, _02306284 @ =0x0231B6B4 + bl ov00_0230BCCC + add sp, sp, #0x130 + mov r0, #2 + pop {r4, r5, r6, pc} +_02305C5C: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #0x15 + bl ov00_0230B930 + add r0, r4, #0x2f + add r1, sp, #0x2d + add r0, r0, #0x100 + mov r2, #0x15 + bl ov00_0230B930 + ldr r1, _0230628C @ =0x0231B4B4 + add r2, sp, #0x2d + mov r0, r6 + bl ov00_023055D4 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02305CA0: + ldrsb r1, [r5] + cmp r1, #0 + bne _02305CC0 + ldr r1, _02306284 @ =0x0231B6B4 + bl ov00_0230BCCC + add sp, sp, #0x130 + mov r0, #2 + pop {r4, r5, r6, pc} +_02305CC0: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #0x33 + bl ov00_0230B930 + add r0, sp, #0x2d + bl ov00_022F5548 + add r1, sp, #0x2d + add r0, r4, #0x144 + mov r2, #0x33 + bl ov00_0230B930 + ldr r1, _02306290 @ =0x0231B4C4 + add r2, sp, #0x2d + mov r0, r6 + bl ov00_02305614 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02305D08: + ldrsb r1, [r5] + cmp r1, #0 + bne _02305D28 + ldr r1, _02306284 @ =0x0231B6B4 + bl ov00_0230BCCC + add sp, sp, #0x130 + mov r0, #2 + pop {r4, r5, r6, pc} +_02305D28: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #0x1f + bl ov00_0230B930 + add r0, r4, #0x77 + add r1, sp, #0x2d + add r0, r0, #0x100 + mov r2, #0x1f + bl ov00_0230B930 + add r0, r4, #0x77 + add r1, sp, #0 + add r0, r0, #0x100 + bl ov00_0230BCE0 + ldr r1, _02306294 @ =0x0231B6C4 + add r2, sp, #0 + mov r0, r6 + bl ov00_02305614 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02305D7C: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #0x1f + bl ov00_0230B930 + ldr r1, _02306298 @ =0x0231B4CC + add r2, sp, #0x2d + mov r0, r6 + bl ov00_023055D4 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02305DAC: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #0x1f + bl ov00_0230B930 + ldr r1, _0230629C @ =0x0231B4D8 + add r2, sp, #0x2d + mov r0, r6 + bl ov00_023055D4 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02305DDC: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #0x4c + bl ov00_0230B930 + ldr r1, _023062A0 @ =0x0231B4F0 + add r2, sp, #0x2d + mov r0, r6 + bl ov00_023055D4 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02305E0C: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #0xb + bl ov00_0230B930 + ldr r1, _023062A4 @ =0x0231B4FC + add r2, sp, #0x2d + mov r0, r6 + bl ov00_023055D4 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02305E3C: + mov r0, r5 + bl FUN_02089678 + cmp r0, #2 + beq _02305E64 + ldr r1, _023062A8 @ =0x0231B6D4 + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #0x130 + mov r0, #2 + pop {r4, r5, r6, pc} +_02305E64: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #3 + bl ov00_0230B930 + ldr r1, _023062AC @ =0x0231B508 + add r2, sp, #0x2d + mov r0, r6 + bl ov00_023055D4 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02305E94: + ldrsb r1, [r5] + cmp r1, #0 + blt _02305EB0 + cmp r1, #0x80 + bge _02305EB0 + ldr r0, _023062B0 @ =0x020AED30 + ldrb r1, [r0, r1] +_02305EB0: + lsl r0, r1, #0x18 + asr r0, r0, #0x18 + cmp r0, #0x4d + add r2, sp, #0x2d + bne _02305EDC + ldr r0, _023062B4 @ =0x0231B60C + ldrb r1, [r0] + ldrb r0, [r0, #1] + strb r1, [r2] + strb r0, [r2, #1] + b _02305F10 +_02305EDC: + cmp r0, #0x46 + bne _02305EFC + ldr r0, _023062B8 @ =0x0231B610 + ldrb r1, [r0] + ldrb r0, [r0, #1] + strb r1, [r2] + strb r0, [r2, #1] + b _02305F10 +_02305EFC: + ldr r0, _023062BC @ =0x0231B614 + ldrb r1, [r0] + ldrb r0, [r0, #1] + strb r1, [r2] + strb r0, [r2, #1] +_02305F10: + ldr r1, _023062C0 @ =0x0231B53C + add r2, sp, #0x2d + mov r0, r6 + bl ov00_023055D4 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02305F30: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #0x100 + bl ov00_0230B930 + ldr r1, _023062C4 @ =0x0231B4E4 + add r2, sp, #0x2d + mov r0, r6 + bl ov00_023055D4 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02305F60: + mov r0, r5 + bl FUN_0208B360 + mov r2, r0 + ldr r1, _023062C8 @ =0x0000070D + mov r0, r6 + bl ov00_02305654 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02305F88: + mov r0, r5 + bl FUN_0208B360 + mov r2, r0 + ldr r1, _023062CC @ =0x0000070E + mov r0, r6 + bl ov00_02305654 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02305FB0: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #0x100 + bl ov00_0230B930 + ldr r1, _023062D0 @ =0x0231B6EC + add r2, sp, #0x2d + mov r0, r6 + bl ov00_023055D4 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02305FE0: + mov r0, r5 + bl FUN_0208B360 + mov r2, r0 + mov r0, r6 + mov r1, #0x710 + bl ov00_02305654 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02306008: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #0x100 + bl ov00_0230B930 + ldr r1, _023062D4 @ =0x0231B700 + add r2, sp, #0x2d + mov r0, r6 + bl ov00_023055D4 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02306038: + mov r0, r5 + bl FUN_0208B360 + mov r2, r0 + ldr r1, _023062D8 @ =0x00000712 + mov r0, r6 + bl ov00_02305654 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02306060: + mov r0, r5 + bl FUN_0208B360 + mov r2, r0 + ldr r1, _023062DC @ =0x00000714 + mov r0, r6 + bl ov00_02305654 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02306088: + mov r0, r5 + bl FUN_0208B360 + mov r2, r0 + ldr r1, _023062E0 @ =0x00000715 + mov r0, r6 + bl ov00_02305654 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_023060B0: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #0x100 + bl ov00_0230B930 + ldr r1, _023062E4 @ =0x0231B714 + add r2, sp, #0x2d + mov r0, r6 + bl ov00_023055D4 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_023060E0: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #0x33 + bl ov00_0230B930 + ldr r1, _023062E8 @ =0x0231B54C + add r2, sp, #0x2d + mov r0, r6 + bl ov00_023055D4 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02306110: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #0x100 + bl ov00_0230B930 + ldr r1, _023062EC @ =0x0231B554 + add r2, sp, #0x2d + mov r0, r6 + bl ov00_023055D4 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02306140: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #0x100 + bl ov00_0230B930 + ldr r1, _023062F0 @ =0x0231B55C + add r2, sp, #0x2d + mov r0, r6 + bl ov00_023055D4 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02306170: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #0x100 + bl ov00_0230B930 + ldr r1, _023062F4 @ =0x0231B564 + add r2, sp, #0x2d + mov r0, r6 + bl ov00_023055D4 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_023061A0: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #0x100 + bl ov00_0230B930 + ldr r1, _023062F8 @ =0x0231B56C + add r2, sp, #0x2d + mov r0, r6 + bl ov00_023055D4 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_023061D0: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #0x100 + bl ov00_0230B930 + ldr r1, _023062FC @ =0x0231B574 + add r2, sp, #0x2d + mov r0, r6 + bl ov00_023055D4 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02306200: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #0x100 + bl ov00_0230B930 + ldr r1, _02306300 @ =0x0231B57C + add r2, sp, #0x2d + mov r0, r6 + bl ov00_023055D4 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02306230: + add r0, sp, #0x2d + mov r1, r5 + mov r2, #0x100 + bl ov00_0230B930 + ldr r1, _02306304 @ =0x0231B584 + add r2, sp, #0x2d + mov r0, r6 + bl ov00_023055D4 + cmp r0, #0 + beq _02306278 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} +_02306260: + ldr r1, _02306308 @ =0x0231B6A4 + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #0x130 + mov r0, #2 + pop {r4, r5, r6, pc} +_02306278: + mov r0, #0 + add sp, sp, #0x130 + pop {r4, r5, r6, pc} + .align 2, 0 +_02306284: .4byte 0x0231B6B4 +_02306288: .4byte 0x0231B4AC +_0230628C: .4byte 0x0231B4B4 +_02306290: .4byte 0x0231B4C4 +_02306294: .4byte 0x0231B6C4 +_02306298: .4byte 0x0231B4CC +_0230629C: .4byte 0x0231B4D8 +_023062A0: .4byte 0x0231B4F0 +_023062A4: .4byte 0x0231B4FC +_023062A8: .4byte 0x0231B6D4 +_023062AC: .4byte 0x0231B508 +_023062B0: .4byte 0x020AED30 +_023062B4: .4byte 0x0231B60C +_023062B8: .4byte 0x0231B610 +_023062BC: .4byte 0x0231B614 +_023062C0: .4byte 0x0231B53C +_023062C4: .4byte 0x0231B4E4 +_023062C8: .4byte 0x0000070D +_023062CC: .4byte 0x0000070E +_023062D0: .4byte 0x0231B6EC +_023062D4: .4byte 0x0231B700 +_023062D8: .4byte 0x00000712 +_023062DC: .4byte 0x00000714 +_023062E0: .4byte 0x00000715 +_023062E4: .4byte 0x0231B714 +_023062E8: .4byte 0x0231B54C +_023062EC: .4byte 0x0231B554 +_023062F0: .4byte 0x0231B55C +_023062F4: .4byte 0x0231B564 +_023062F8: .4byte 0x0231B56C +_023062FC: .4byte 0x0231B574 +_02306300: .4byte 0x0231B57C +_02306304: .4byte 0x0231B584 +_02306308: .4byte 0x0231B6A4 + arm_func_end ov00_02305B24 + + arm_func_start ov00_0230630C +ov00_0230630C: @ 0x0230630C + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + ldr r4, [r7] + mov r5, r2 + mov r6, r1 + ldr r2, _02306394 @ =0x0231B720 + add r1, r4, #0x210 + bl ov00_02302638 + ldr r2, [r4, #0x198] + mov r0, r7 + add r1, r4, #0x210 + bl ov00_02302668 + ldr r2, _02306398 @ =0x0231B4A0 + mov r0, r7 + add r1, r4, #0x210 + bl ov00_02302638 + mov r2, r6 + mov r0, r7 + add r1, r4, #0x210 + bl ov00_02302668 + mov r0, r7 + add r1, r4, #0x210 + ldr r2, _0230639C @ =0x0231B738 + bl ov00_02302638 + mov r2, r5 + mov r0, r7 + add r1, r4, #0x210 + bl ov00_02302668 + mov r0, r7 + add r1, r4, #0x210 + ldr r2, _023063A0 @ =0x0231B5D8 + bl ov00_02302638 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02306394: .4byte 0x0231B720 +_02306398: .4byte 0x0231B4A0 +_0230639C: .4byte 0x0231B738 +_023063A0: .4byte 0x0231B5D8 + arm_func_end ov00_0230630C + + arm_func_start ov00_023063A4 +ov00_023063A4: @ 0x023063A4 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x1c + mov r8, r0 + ldr r0, [r8] + mov r4, #0 + str r4, [sp, #0x14] + ldr r0, [r0, #0x100] + cmp r2, #1 + moveq r4, #1 + cmp r0, #0 + ldr r5, [sp, #0x38] + moveq r4, #0 + cmp r5, #0 + mov r7, r1 + mov r6, r3 + cmpne r4, #0 + beq _023064C4 + add r2, sp, #0x18 + mov r0, r8 + mov r1, r7 + bl ov00_02308A4C + cmp r0, #0 + ldrne r0, [sp, #0x18] + ldrne r0, [r0, #0x10] + cmpne r0, #0 + beq _023064C4 + mov r0, #0x204 + bl ov00_022F5AE4 + movs r4, r0 + bne _02306434 + ldr r1, _02306544 @ =0x0231B5A4 + mov r0, r8 + bl ov00_0230BCCC + add sp, sp, #0x1c + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, pc} +_02306434: + ldr r0, [sp, #0x18] + mov r1, r4 + ldr r0, [r0, #0x10] + bl ov00_02304B08 + mov r2, #0 + ldr ip, [sp, #0x3c] + stm r4, {r2, r7} + mov r0, #1 + stm sp, {r0, r5} + add r3, sp, #0x14 + mov r0, r8 + mov r1, #2 + str r5, [sp, #0xc] + str ip, [sp, #0x10] + str ip, [sp, #8] + bl ov00_0230703C + cmp r0, #0 + addne sp, sp, #0x1c + popne {r3, r4, r5, r6, r7, r8, pc} + ldr r2, [sp, #0x14] + add r1, sp, #0xc + ldr r5, [r2, #0x18] + mov r0, r8 + str r2, [sp] + mov r2, #0 + str r2, [sp, #4] + mov r3, r4 + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + addne sp, sp, #0x1c + popne {r3, r4, r5, r6, r7, r8, pc} + ldr r1, [sp, #0x14] + mov r0, r8 + bl ov00_0230716C + b _02306518 +_023064C4: + str r6, [sp] + ldr r4, [sp, #0x3c] + str r5, [sp, #4] + add r3, sp, #0x14 + mov r0, r8 + mov r1, #2 + mov r2, #0 + str r4, [sp, #8] + bl ov00_0230703C + cmp r0, #0 + addne sp, sp, #0x1c + popne {r3, r4, r5, r6, r7, r8, pc} + ldr r1, [sp, #0x14] + mov r0, r8 + ldr r5, [r1, #0x18] + mov r1, r7 + mov r2, r5 + bl ov00_0230630C + cmp r0, #0 + addne sp, sp, #0x1c + popne {r3, r4, r5, r6, r7, r8, pc} +_02306518: + cmp r6, #0 + beq _02306538 + mov r0, r8 + mov r1, r5 + bl ov00_023003B4 + cmp r0, #0 + addne sp, sp, #0x1c + popne {r3, r4, r5, r6, r7, r8, pc} +_02306538: + mov r0, #0 + add sp, sp, #0x1c + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02306544: .4byte 0x0231B5A4 + arm_func_end ov00_023063A4 + + arm_func_start ov00_02306548 +ov00_02306548: @ 0x02306548 + push {r4, r5, r6, lr} + ldr r0, [r0] + mov r5, r1 + ldr r0, [r0, #0x100] + mov r4, r2 + cmp r0, #0 + moveq r0, #1 + popeq {r4, r5, r6, pc} + mov r0, r5 + bl ov00_02306620 + mov r0, #0xf0 + bl ov00_022F5AE4 + movs r6, r0 + str r0, [r5, #0x10] + beq _0230660C + mov lr, r4 + mov ip, #0xf +_0230658C: + ldm lr!, {r0, r1, r2, r3} + stm r6!, {r0, r1, r2, r3} + subs ip, ip, #1 + bne _0230658C + ldr r0, [r4] + bl ov00_022F5514 + ldr r1, [r5, #0x10] + str r0, [r1] + ldr r0, [r4, #4] + bl ov00_022F5514 + ldr r1, [r5, #0x10] + str r0, [r1, #4] + ldr r0, [r4, #8] + bl ov00_022F5514 + ldr r1, [r5, #0x10] + str r0, [r1, #8] + ldr r0, [r4, #0xc] + bl ov00_022F5514 + ldr r1, [r5, #0x10] + str r0, [r1, #0xc] + ldr r0, [r4, #0x10] + bl ov00_022F5514 + ldr r1, [r5, #0x10] + str r0, [r1, #0x10] + ldr r0, [r4, #0x14] + bl ov00_022F5514 + ldr r1, [r5, #0x10] + str r0, [r1, #0x14] + ldr r0, [r4, #0xc8] + bl ov00_022F5514 + ldr r1, [r5, #0x10] + str r0, [r1, #0xc8] +_0230660C: + ldr r0, [r5, #0x10] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r4, r5, r6, pc} + arm_func_end ov00_02306548 + + arm_func_start ov00_02306620 +ov00_02306620: @ 0x02306620 + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #0x10] + cmp r0, #0 + popeq {r4, pc} + ldr r0, [r0] + bl ov00_022F5B14 + ldr r0, [r4, #0x10] + mov r1, #0 + str r1, [r0] + ldr r0, [r4, #0x10] + ldr r0, [r0, #4] + bl ov00_022F5B14 + ldr r0, [r4, #0x10] + mov r1, #0 + str r1, [r0, #4] + ldr r0, [r4, #0x10] + ldr r0, [r0, #8] + bl ov00_022F5B14 + ldr r0, [r4, #0x10] + mov r1, #0 + str r1, [r0, #8] + ldr r0, [r4, #0x10] + ldr r0, [r0, #0xc] + bl ov00_022F5B14 + ldr r0, [r4, #0x10] + mov r1, #0 + str r1, [r0, #0xc] + ldr r0, [r4, #0x10] + ldr r0, [r0, #0x10] + bl ov00_022F5B14 + ldr r0, [r4, #0x10] + mov r1, #0 + str r1, [r0, #0x10] + ldr r0, [r4, #0x10] + ldr r0, [r0, #0x14] + bl ov00_022F5B14 + ldr r0, [r4, #0x10] + mov r1, #0 + str r1, [r0, #0x14] + ldr r0, [r4, #0x10] + ldr r0, [r0, #0xc8] + bl ov00_022F5B14 + ldr r0, [r4, #0x10] + mov r1, #0 + str r1, [r0, #0xc8] + ldr r0, [r4, #0x10] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #0x10] + pop {r4, pc} + arm_func_end ov00_02306620 + + arm_func_start ov00_023066EC +ov00_023066EC: @ 0x023066EC + push {r4, lr} + mov r4, r0 + ldr r0, [r4] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4] + ldr r0, [r4, #4] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #4] + pop {r4, pc} + arm_func_end ov00_023066EC + + arm_func_start ov00_02306718 +ov00_02306718: @ 0x02306718 + push {r3, r4, r5, lr} + mov r5, r0 + ldr r2, _02306758 @ =ov00_023066EC + ldr r4, [r5] + mov r0, #8 + mov r1, #1 + bl ov00_022F4700 + str r0, [r4, #0x3b4] + cmp r0, #0 + movne r0, #0 + popne {r3, r4, r5, pc} + ldr r1, _0230675C @ =0x0231B740 + mov r0, r5 + bl ov00_0230BCCC + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_02306758: .4byte ov00_023066EC +_0230675C: .4byte 0x0231B740 + arm_func_end ov00_02306718 + + arm_func_start ov00_02306760 +ov00_02306760: @ 0x02306760 + push {r4, lr} + ldr r4, [r0] + ldr r0, [r4, #0x3b4] + cmp r0, #0 + popeq {r4, pc} + bl ov00_022F4758 + mov r0, #0 + str r0, [r4, #0x3b4] + pop {r4, pc} + arm_func_end ov00_02306760 +_02306784: + .byte 0x08, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x91, 0xE5 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x2C, 0x98, 0x08, 0x02 + + arm_func_start ov00_02306798 +ov00_02306798: @ 0x02306798 + push {r3, r4, r5, lr} + sub sp, sp, #8 + mov r5, r1 + mov r4, r3 + cmp r2, #0 + bne _023067C4 + ldr r1, _02306814 @ =0x0231B750 + bl ov00_0230BCCC + add sp, sp, #8 + mov r0, #2 + pop {r3, r4, r5, pc} +_023067C4: + cmp r4, #0 + bne _023067E0 + ldr r1, _02306818 @ =0x0231B764 + bl ov00_0230BCCC + add sp, sp, #8 + mov r0, #2 + pop {r3, r4, r5, pc} +_023067E0: + mov r0, r2 + bl ov00_022F5514 + str r0, [sp] + mov r0, r4 + bl ov00_022F5514 + str r0, [sp, #4] + ldr r2, _0230681C @ =0x02306784 + add r1, sp, #0 + mov r0, r5 + bl ov00_022F4870 + mov r0, #0 + add sp, sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_02306814: .4byte 0x0231B750 +_02306818: .4byte 0x0231B764 +_0230681C: .4byte 0x02306784 + arm_func_end ov00_02306798 + + arm_func_start ov00_02306820 +ov00_02306820: @ 0x02306820 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0xc + mov r6, r1 + mov r5, r3 + cmp r2, #0 + bne _0230684C + ldr r1, _023068BC @ =0x0231B750 + bl ov00_0230BCCC + add sp, sp, #0xc + mov r0, #2 + pop {r3, r4, r5, r6, pc} +_0230684C: + mov r0, r2 + bl ov00_022F5514 + str r0, [sp, #4] + mov r4, #1 + ldr r2, _023068C0 @ =0x02306784 + add r1, sp, #4 + mov r0, r6 + mov r3, #0 + str r4, [sp] + bl ov00_022F4968 + mov r1, r0 + mvn r0, #0 + cmp r1, r0 + beq _023068A4 + mov r0, r6 + bl ov00_022F47A8 + mov r4, r0 + ldr r0, [r4, #4] + bl ov00_022F5B14 + mov r0, r5 + bl ov00_022F5514 + str r0, [r4, #4] +_023068A4: + ldr r0, [sp, #4] + bl ov00_022F5B14 + mov r0, #0 + str r0, [sp, #4] + add sp, sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_023068BC: .4byte 0x0231B750 +_023068C0: .4byte 0x02306784 + arm_func_end ov00_02306820 + + arm_func_start ov00_023068C4 +ov00_023068C4: @ 0x023068C4 + push {r4, r5, lr} + sub sp, sp, #0xc + mov r5, r1 + mov r4, r3 + cmp r2, #0 + bne _023068F0 + ldr r1, _02306950 @ =0x0231B750 + bl ov00_0230BCCC + add sp, sp, #0xc + mov r0, #2 + pop {r4, r5, pc} +_023068F0: + mov r0, r2 + bl ov00_022F5514 + str r0, [sp, #4] + mov ip, #1 + ldr r2, _02306954 @ =0x02306784 + add r1, sp, #4 + mov r0, r5 + mov r3, #0 + str ip, [sp] + bl ov00_022F4968 + mov r1, r0 + mvn r0, #0 + cmp r1, r0 + beq _02306938 + mov r0, r5 + bl ov00_022F47A8 + ldr r0, [r0, #4] + str r0, [r4] +_02306938: + ldr r0, [sp, #4] + bl ov00_022F5B14 + mov r0, #0 + str r0, [sp, #4] + add sp, sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_02306950: .4byte 0x0231B750 +_02306954: .4byte 0x02306784 + arm_func_end ov00_023068C4 + + arm_func_start ov00_02306958 +ov00_02306958: @ 0x02306958 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x48 + ldr fp, [r0] + str r0, [sp] + ldr r0, [fp, #0x3b4] + str r1, [sp, #4] + mov r8, #0 + bl ov00_022F47A0 + mov r4, r0 + ldr r1, _02306C74 @ =0x0231B778 + add r0, sp, #8 + mov r2, r4 + bl FUN_020790DC + cmp r4, #0 + mov sb, r8 + ble _02306AA4 + ldr r6, _02306C78 @ =0xAAAAAAAB +_0230699C: + ldr r0, [fp, #0x3b4] + mov r1, sb + bl ov00_022F47A8 + mov r7, r0 + ldr sl, [r7] + mov r0, sl + bl FUN_02089678 + umull r1, r2, r0, r6 + lsr r2, r2, #1 + mov r1, #3 + umull r2, r3, r1, r2 + subs r2, r0, r2 + mov r0, sl + beq _02306A0C + bl FUN_02089678 + mov r5, r0 + mov r0, sl + bl FUN_02089678 + lsl r2, r0, #2 + umull r1, r0, r2, r6 + umull r1, r2, r5, r6 + lsr r2, r2, #1 + mov r1, #3 + umull r2, r3, r1, r2 + sub r2, r5, r2 + rsb r1, r2, #4 + add r5, r1, r0, lsr #1 + b _02306A1C +_02306A0C: + bl FUN_02089678 + lsl r1, r0, #2 + umull r0, r5, r1, r6 + lsr r5, r5, #1 +_02306A1C: + ldr sl, [r7, #4] + mov r0, sl + bl FUN_02089678 + umull r1, r2, r0, r6 + lsr r2, r2, #1 + mov r1, #3 + umull r2, r3, r1, r2 + subs r2, r0, r2 + mov r0, sl + beq _02306A7C + bl FUN_02089678 + mov r7, r0 + mov r0, sl + bl FUN_02089678 + lsl r2, r0, #2 + umull r1, r0, r2, r6 + umull r1, r2, r7, r6 + lsr r2, r2, #1 + mov r1, #3 + umull r2, r3, r1, r2 + sub r2, r7, r2 + rsb r1, r2, #4 + add r2, r1, r0, lsr #1 + b _02306A8C +_02306A7C: + bl FUN_02089678 + lsl r1, r0, #2 + umull r0, r2, r1, r6 + lsr r2, r2, #1 +_02306A8C: + add r0, r5, #2 + add r0, r0, r2 + add sb, sb, #1 + cmp sb, r4 + add r8, r8, r0 + blt _0230699C +_02306AA4: + add r0, sp, #8 + bl FUN_02089678 + add r0, r8, r0 + add r0, r0, #1 + bl ov00_022F5AE4 + ldr r1, [sp, #4] + cmp r0, #0 + str r0, [r1] + bne _02306AE0 + ldr r1, _02306C7C @ =0x0231B740 + ldr r0, [sp] + bl ov00_0230BCCC + add sp, sp, #0x48 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02306AE0: + add r1, sp, #8 + bl FUN_020790DC + ldr r1, [sp, #4] + cmp r4, #0 + ldr r1, [r1] + mov sl, #0 + add r7, r1, r0 + ble _02306C68 + ldr r5, _02306C78 @ =0xAAAAAAAB +_02306B04: + ldr r0, [fp, #0x3b4] + mov r1, sl + bl ov00_022F47A8 + mov r8, r0 + ldr r1, _02306C80 @ =0x0231B784 + mov r0, r7 + bl FUN_020897AC + ldr r6, [r8] + add r7, r7, #1 + mov r0, r6 + bl FUN_02089678 + mov r2, r0 + mov r0, r6 + mov r1, r7 + mov r3, #2 + bl ov00_022F598C + ldr sb, [r8] + mov r0, sb + bl FUN_02089678 + umull r1, r2, r0, r5 + lsr r2, r2, #1 + mov r1, #3 + umull r2, r3, r1, r2 + subs r2, r0, r2 + mov r0, sb + beq _02306BA8 + bl FUN_02089678 + mov r6, r0 + mov r0, sb + bl FUN_02089678 + lsl r2, r0, #2 + umull r1, r0, r2, r5 + umull r1, r2, r6, r5 + lsr r2, r2, #1 + mov r1, #3 + umull r2, r3, r1, r2 + sub r2, r6, r2 + rsb r1, r2, #4 + add r0, r1, r0, lsr #1 + add r7, r7, r0 + b _02306BB8 +_02306BA8: + bl FUN_02089678 + lsl r1, r0, #2 + umull r0, r2, r1, r5 + add r7, r7, r2, lsr #1 +_02306BB8: + ldr r1, _02306C80 @ =0x0231B784 + mov r0, r7 + bl FUN_020897AC + ldr r6, [r8, #4] + add r7, r7, #1 + mov r0, r6 + bl FUN_02089678 + mov r2, r0 + mov r0, r6 + mov r1, r7 + mov r3, #2 + bl ov00_022F598C + ldr r8, [r8, #4] + mov r0, r8 + bl FUN_02089678 + umull r1, r2, r0, r5 + lsr r2, r2, #1 + mov r1, #3 + umull r2, r3, r1, r2 + subs r2, r0, r2 + mov r0, r8 + beq _02306C4C + bl FUN_02089678 + mov r6, r0 + mov r0, r8 + bl FUN_02089678 + lsl r1, r0, #2 + umull r0, r3, r1, r5 + umull r0, r1, r6, r5 + lsr r1, r1, #1 + mov r0, #3 + umull r1, r2, r0, r1 + sub r1, r6, r1 + rsb r0, r1, #4 + add r0, r0, r3, lsr #1 + add r7, r7, r0 + b _02306C5C +_02306C4C: + bl FUN_02089678 + lsl r1, r0, #2 + umull r0, r2, r1, r5 + add r7, r7, r2, lsr #1 +_02306C5C: + add sl, sl, #1 + cmp sl, r4 + blt _02306B04 +_02306C68: + mov r0, #0 + add sp, sp, #0x48 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02306C74: .4byte 0x0231B778 +_02306C78: .4byte 0xAAAAAAAB +_02306C7C: .4byte 0x0231B740 +_02306C80: .4byte 0x0231B784 + arm_func_end ov00_02306958 + + arm_func_start ov00_02306C84 +ov00_02306C84: @ 0x02306C84 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x10 + mov r6, r1 + ldr r2, [r6, #0xc] + ldr r1, [r6, #0x10] + mov r7, r0 + str r2, [sp, #8] + str r1, [sp, #0xc] + cmp r2, #0 + ldr r4, [r7] + beq _02307028 + ldr r0, [r6] + cmp r0, #6 + addls pc, pc, r0, lsl #2 + b _02307028 +_02306CC0: @ jump table + b _02306CDC @ case 0 + b _02306D68 @ case 1 + b _02306E60 @ case 2 + b _02306ECC @ case 3 + b _02306F54 @ case 4 + b _02306DE4 @ case 5 + b _02306FC0 @ case 6 +_02306CDC: + mov r0, #0x20 + bl ov00_022F5AE4 + movs r5, r0 + bne _02306D04 + ldr r1, _02307034 @ =0x0231B788 + mov r0, r7 + bl ov00_0230BCCC + add sp, sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_02306D04: + mov r1, #0 + mov r2, #0x20 + bl FUN_02087308 + ldr r1, [r6, #0x1c] + ldr r0, _02307038 @ =0x00000201 + str r1, [r5] + ldr r1, [r4, #0x5b8] + cmp r1, r0 + bne _02306D38 + ldr r1, [r4, #0x1a0] + mov r0, #0 + str r1, [r5, #4] + str r0, [r4, #0x1a0] +_02306D38: + add r1, sp, #8 + mov r0, r7 + mov r3, r5 + str r6, [sp] + mov r2, #0 + str r2, [sp, #4] + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _02307028 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} +_02306D68: + mov r0, #8 + bl ov00_022F5AE4 + movs r3, r0 + bne _02306D90 + ldr r1, _02307034 @ =0x0231B788 + mov r0, r7 + bl ov00_0230BCCC + add sp, sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_02306D90: + mov r2, #0 + strb r2, [r3] + strb r2, [r3, #1] + strb r2, [r3, #2] + strb r2, [r3, #3] + strb r2, [r3, #4] + strb r2, [r3, #5] + strb r2, [r3, #6] + strb r2, [r3, #7] + ldr r0, [r6, #0x1c] + add r1, sp, #8 + str r0, [r3] + str r6, [sp] + str r2, [sp, #4] + mov r0, r7 + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _02307028 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} +_02306DE4: + mov r0, #8 + bl ov00_022F5AE4 + movs r3, r0 + bne _02306E0C + ldr r1, _02307034 @ =0x0231B788 + mov r0, r7 + bl ov00_0230BCCC + add sp, sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_02306E0C: + mov r2, #0 + strb r2, [r3] + strb r2, [r3, #1] + strb r2, [r3, #2] + strb r2, [r3, #3] + strb r2, [r3, #4] + strb r2, [r3, #5] + strb r2, [r3, #6] + strb r2, [r3, #7] + ldr r0, [r6, #0x1c] + add r1, sp, #8 + str r0, [r3] + str r6, [sp] + str r2, [sp, #4] + mov r0, r7 + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _02307028 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} +_02306E60: + mov r0, #0x204 + bl ov00_022F5AE4 + movs r4, r0 + bne _02306E88 + ldr r1, _02307034 @ =0x0231B788 + mov r0, r7 + bl ov00_0230BCCC + add sp, sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_02306E88: + mov r1, #0 + mov r2, #0x204 + bl FUN_02087308 + ldr r0, [r6, #0x1c] + add r1, sp, #8 + str r0, [r4] + mov r0, r7 + mov r3, r4 + str r6, [sp] + mov r2, #0 + str r2, [sp, #4] + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _02307028 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} +_02306ECC: + mov r0, #0x10 + bl ov00_022F5AE4 + movs r3, r0 + bne _02306EF4 + ldr r1, _02307034 @ =0x0231B788 + mov r0, r7 + bl ov00_0230BCCC + add sp, sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_02306EF4: + mov r2, r3 + mov r1, #4 + mov r0, #0 +_02306F00: + strb r0, [r2] + strb r0, [r2, #1] + strb r0, [r2, #2] + strb r0, [r2, #3] + add r2, r2, #4 + subs r1, r1, #1 + bne _02306F00 + ldr r0, [r6, #0x1c] + mov r2, #0 + str r0, [r3] + str r2, [r3, #0xc] + str r6, [sp] + add r1, sp, #8 + str r2, [sp, #4] + mov r0, r7 + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _02307028 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} +_02306F54: + mov r0, #4 + bl ov00_022F5AE4 + movs r3, r0 + bne _02306F7C + ldr r1, _02307034 @ =0x0231B788 + mov r0, r7 + bl ov00_0230BCCC + add sp, sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_02306F7C: + mov r2, #0 + strb r2, [r3] + strb r2, [r3, #1] + strb r2, [r3, #2] + strb r2, [r3, #3] + ldr r0, [r6, #0x1c] + add r1, sp, #8 + str r0, [r3] + str r6, [sp] + str r2, [sp, #4] + mov r0, r7 + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _02307028 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} +_02306FC0: + mov r0, #4 + bl ov00_022F5AE4 + movs r3, r0 + bne _02306FE8 + ldr r1, _02307034 @ =0x0231B788 + mov r0, r7 + bl ov00_0230BCCC + add sp, sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_02306FE8: + mov r2, #0 + strb r2, [r3] + strb r2, [r3, #1] + strb r2, [r3, #2] + strb r2, [r3, #3] + ldr r0, [r6, #0x1c] + add r1, sp, #8 + str r0, [r3] + str r6, [sp] + str r2, [sp, #4] + mov r0, r7 + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + addne sp, sp, #0x10 + popne {r3, r4, r5, r6, r7, pc} +_02307028: + mov r0, #0 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02307034: .4byte 0x0231B788 +_02307038: .4byte 0x00000201 + arm_func_end ov00_02306C84 + + arm_func_start ov00_0230703C +ov00_0230703C: @ 0x0230703C + push {r4, r5, r6, r7, r8, lr} + mov r8, r0 + mov r0, #0x24 + mov r7, r1 + mov r6, r2 + mov r5, r3 + ldr r4, [r8] + bl ov00_022F5AE4 + cmp r0, #0 + bne _02307078 + ldr r1, _023070F0 @ =0x0231B788 + mov r0, r8 + bl ov00_0230BCCC + mov r0, #1 + pop {r4, r5, r6, r7, r8, pc} +_02307078: + str r7, [r0] + ldr r1, [sp, #0x18] + str r6, [r0, #4] + str r1, [r0, #8] + mov r1, #0 + str r1, [r0, #0x14] + cmp r7, #0 + moveq r1, #1 + streq r1, [r0, #0x18] + beq _023070C0 + ldr r2, [r4, #0x234] + add r1, r2, #1 + str r1, [r4, #0x234] + str r2, [r0, #0x18] + ldr r1, [r4, #0x234] + cmp r1, #2 + movlt r1, #2 + strlt r1, [r4, #0x234] +_023070C0: + mov r3, #0 + ldr r2, [sp, #0x1c] + str r3, [r0, #0x1c] + ldr r1, [sp, #0x20] + str r2, [r0, #0xc] + str r1, [r0, #0x10] + ldr r1, [r4, #0x5c4] + str r1, [r0, #0x20] + str r0, [r4, #0x5c4] + str r0, [r5] + mov r0, r3 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_023070F0: .4byte 0x0231B788 + arm_func_end ov00_0230703C + + arm_func_start ov00_023070F4 +ov00_023070F4: @ 0x023070F4 + push {r3, r4, r5, lr} + mov r4, r1 + ldr r1, [r4] + ldr r2, [r0] + cmp r1, #3 + bne _02307150 + ldr r0, [r2, #0x238] + ldr r5, [r4, #4] + sub r0, r0, #1 + str r0, [r2, #0x238] + ldr r0, [r5, #4] + mov r1, #2 + bl ov00_022F4FC8 + ldr r0, [r5, #4] + bl ov00_022F4FB4 + ldr r0, [r5, #0x18] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r5, #0x18] + ldr r0, [r5, #8] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r5, #8] +_02307150: + ldr r0, [r4, #4] + bl ov00_022F5B14 + mov r1, #0 + mov r0, r4 + str r1, [r4, #4] + bl ov00_022F5B14 + pop {r3, r4, r5, pc} + arm_func_end ov00_023070F4 + + arm_func_start ov00_0230716C +ov00_0230716C: @ 0x0230716C + push {r3, lr} + ldr r3, [r0] + mov ip, #0 + ldr r2, [r3, #0x5c4] + cmp r2, #0 + popeq {r3, pc} +_02307184: + cmp r2, r1 + bne _023071A8 + cmp ip, #0 + ldreq r2, [r2, #0x20] + streq r2, [r3, #0x5c4] + ldrne r2, [r1, #0x20] + strne r2, [ip, #0x20] + bl ov00_023070F4 + pop {r3, pc} +_023071A8: + mov ip, r2 + ldr r2, [r2, #0x20] + cmp r2, #0 + bne _02307184 + pop {r3, pc} + arm_func_end ov00_0230716C + + arm_func_start ov00_023071BC +ov00_023071BC: @ 0x023071BC + ldr r0, [r0] + ldr r3, [r0, #0x5c4] + cmp r3, #0 + beq _023071F4 +_023071CC: + ldr r0, [r3, #0x18] + cmp r0, r2 + bne _023071E8 + cmp r1, #0 + strne r3, [r1] + mov r0, #1 + bx lr +_023071E8: + ldr r3, [r3, #0x20] + cmp r3, #0 + bne _023071CC +_023071F4: + cmp r1, #0 + movne r0, #0 + strne r0, [r1] + mov r0, #0 + bx lr + arm_func_end ov00_023071BC + + arm_func_start ov00_02307208 +ov00_02307208: @ 0x02307208 + ldr r0, [r0] + ldr r1, [r0, #0x5c4] + cmp r1, #0 + beq _0230723C +_02307218: + ldr r0, [r1, #8] + cmp r0, #0 + ldrne r0, [r1] + cmpne r0, #3 + movne r0, #1 + bxne lr + ldr r1, [r1, #0x20] + cmp r1, #0 + bne _02307218 +_0230723C: + mov r0, #0 + bx lr + arm_func_end ov00_02307208 + + arm_func_start ov00_02307244 +ov00_02307244: @ 0x02307244 + push {r4, lr} + mov r4, r1 + ldr r3, [r4] + mov ip, #0 + cmp r3, #6 + addls pc, pc, r3, lsl #2 + b _023072C0 +_02307260: @ jump table + b _0230727C @ case 0 + b _02307288 @ case 1 + b _023072A0 @ case 2 + b _023072C0 @ case 3 + b _023072AC @ case 4 + b _02307294 @ case 5 + b _023072B8 @ case 6 +_0230727C: + bl ov00_02303EE0 + mov ip, r0 + b _023072C0 +_02307288: + bl ov00_0230883C + mov ip, r0 + b _023072C0 +_02307294: + bl ov00_02308A88 + mov ip, r0 + b _023072C0 +_023072A0: + bl ov00_02304D00 + mov ip, r0 + b _023072C0 +_023072AC: + bl ov00_0230B728 + mov ip, r0 + b _023072C0 +_023072B8: + bl ov00_0230B82C + mov ip, r0 +_023072C0: + cmp ip, #0 + strne ip, [r4, #0x1c] + mov r0, ip + pop {r4, pc} + arm_func_end ov00_02307244 + + arm_func_start ov00_023072D0 +ov00_023072D0: @ 0x023072D0 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x14 + mov r7, r0 + ldr r4, [r7] + movs r6, r1 + addeq sp, sp, #0x14 + mov r3, #0 + moveq r0, #3 + popeq {r4, r5, r6, r7, pc} + ldr r2, [r6] + cmp r2, #0x6a + cmpne r2, #0x64 + addeq sp, sp, #0x14 + moveq r0, #3 + popeq {r4, r5, r6, r7, pc} + sub r2, r2, #0x65 + cmp r2, #3 + addls pc, pc, r2, lsl #2 + b _02307568 +_0230731C: @ jump table + b _02307568 @ case 0 + b _0230732C @ case 1 + b _02307340 @ case 2 + b _0230749C @ case 3 +_0230732C: + bl ov00_023080E4 + cmp r0, #0 + beq _02307568 + add sp, sp, #0x14 + pop {r4, r5, r6, r7, pc} +_02307340: + ldrh r1, [r6, #0xc] + ldr r0, [r6, #8] + add r2, sp, #8 + bl ov00_022F8578 + ldr r0, [sp, #8] + cmp r0, #1 + bne _02307568 + ldr r1, [r6, #0x10] + add r2, sp, #0xc + mov r0, r7 + mov r5, #1 + bl ov00_02308A4C + cmp r0, #0 + bne _02307390 + ldr r1, _023075B8 @ =0x0231B798 + mov r0, r7 + bl ov00_0230BCCC + add sp, sp, #0x14 + mov r0, #3 + pop {r4, r5, r6, r7, pc} +_02307390: + ldr r2, _023075BC @ =0x0231B7B4 + mov r0, r7 + add r1, r6, #0x2c + bl ov00_02302638 + ldr r2, _023075C0 @ =0x0231B7BC + mov r0, r7 + add r1, r6, #0x2c + bl ov00_02302638 + ldr r2, [r4, #0x1a0] + mov r0, r7 + add r1, r6, #0x2c + bl ov00_02302668 + ldr r2, _023075C4 @ =0x0231B7C4 + mov r0, r7 + add r1, r6, #0x2c + bl ov00_02302638 + mov r0, r7 + add r1, r6, #0x2c + add r2, r4, #0x110 + bl ov00_02302638 + mov r0, r7 + add r1, r6, #0x2c + ldr r2, _023075C8 @ =0x0231B7CC + bl ov00_02302638 + mov r0, r7 + add r1, r6, #0x2c + ldr r2, [sp, #0xc] + ldr r2, [r2, #0x1c] + bl ov00_02302638 + mov r0, r7 + add r1, r6, #0x2c + ldr r2, _023075CC @ =0x0231B7D4 + bl ov00_02302638 + ldr r2, [r4, #0x5d4] + cmp r2, #0 + beq _02307454 + ldr r3, [r6, #0x10] + mov r0, #0 +_02307428: + ldr r1, [r2, #0x10] + cmp r1, r3 + bne _02307448 + cmp r2, r6 + beq _02307448 + ldr r1, [r2] + cmp r1, #0x67 + movle r5, r0 +_02307448: + ldr r2, [r2, #0x4c] + cmp r2, #0 + bne _02307428 +_02307454: + cmp r5, #0 + beq _02307490 + ldr r0, [sp, #0xc] + ldr r0, [r0, #0x1c] + bl ov00_022F5B14 + ldr r0, [sp, #0xc] + mov r1, #0 + str r1, [r0, #0x1c] + ldr r0, [sp, #0xc] + bl ov00_02308E00 + cmp r0, #0 + beq _02307490 + ldr r1, [sp, #0xc] + mov r0, r7 + bl ov00_02308BCC +_02307490: + mov r0, #0x68 + str r0, [r6] + b _02307568 +_0230749C: + ldr r0, [r6, #0x1c] + cmp r0, #0 + beq _023074B4 + ldr r1, _023075CC @ =0x0231B7D4 + bl FUN_02089A70 + mov r3, r0 +_023074B4: + cmp r3, #0 + beq _02307568 + mov r0, #0 + strb r0, [r3] + ldr r4, [r6, #0x1c] + ldr r1, _023075D0 @ =0x0231B7DC + mov r0, r4 + mov r2, #7 + bl FUN_02089940 + cmp r0, #0 + bne _02307528 + ldr r0, [r6, #0x18] + add r0, r0, #1 + str r0, [r6, #0x18] + cmp r0, #1 + ble _0230750C + ldr r1, _023075D4 @ =0x0231B7E4 + mov r0, r7 + bl ov00_0230BCCC + add sp, sp, #0x14 + mov r0, #3 + pop {r4, r5, r6, r7, pc} +_0230750C: + mov r0, r7 + mov r1, r6 + bl ov00_02308080 + cmp r0, #0 + beq _02307558 + add sp, sp, #0x14 + pop {r4, r5, r6, r7, pc} +_02307528: + ldr r1, _023075D8 @ =0x0231B808 + mov r0, r4 + mov r2, #6 + bl FUN_02089940 + cmp r0, #0 + beq _02307558 + ldr r1, _023075DC @ =0x0231B810 + mov r0, r7 + bl ov00_0230BCCC + add sp, sp, #0x14 + mov r0, #3 + pop {r4, r5, r6, r7, pc} +_02307558: + mov r0, #0x69 + str r0, [r6] + mov r0, #0 + str r0, [r6, #0x24] +_02307568: + ldr r0, [r6, #0x34] + cmp r0, #0 + ble _023075AC + add r1, sp, #0x10 + mov r0, #1 + str r1, [sp] + str r0, [sp, #4] + ldrh r2, [r6, #0xc] + ldr r1, [r6, #8] + mov r0, r7 + add r3, r6, #0x2c + bl ov00_02302AF0 + ldr r1, [sp, #0x10] + cmp r1, #0 + cmpeq r0, #0 + movne r0, #0x6a + strne r0, [r6] +_023075AC: + mov r0, #0 + add sp, sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_023075B8: .4byte 0x0231B798 +_023075BC: .4byte 0x0231B7B4 +_023075C0: .4byte 0x0231B7BC +_023075C4: .4byte 0x0231B7C4 +_023075C8: .4byte 0x0231B7CC +_023075CC: .4byte 0x0231B7D4 +_023075D0: .4byte 0x0231B7DC +_023075D4: .4byte 0x0231B7E4 +_023075D8: .4byte 0x0231B808 +_023075DC: .4byte 0x0231B810 + arm_func_end ov00_023072D0 + + arm_func_start ov00_023075E0 +ov00_023075E0: @ 0x023075E0 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x184 + mov r4, r1 + ldr r1, [r4] + mov r5, r0 + cmp r1, #0x68 + ldr r7, [r5] + addne sp, sp, #0x184 + movne r0, #3 + popne {r4, r5, r6, r7, pc} + ldrh r1, [r4, #0xc] + ldr r0, [r4, #8] + add r2, sp, #0xc + bl ov00_022F8578 + ldr r0, [sp, #0xc] + cmp r0, #3 + bne _02307638 + mov r0, #0x6a + str r0, [r4] + add sp, sp, #0x184 + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_02307638: + ldr r0, [r4, #0x1c] + ldr r1, _02307804 @ =0x0231B7D4 + bl FUN_02089A70 + cmp r0, #0 + beq _023077F8 + mov r1, #0 + strb r1, [r0] + ldr r6, [r4, #0x1c] + ldr r1, _02307808 @ =0x0231B7B4 + mov r0, r6 + mov r2, #6 + bl FUN_02089940 + cmp r0, #0 + bne _023077DC + ldr r1, _0230780C @ =0x0231B7BC + add r2, sp, #0x71 + mov r0, r6 + mov r3, #0x10 + bl ov00_0230BA28 + cmp r0, #0 + bne _023076A0 + mov r0, #0x6a + str r0, [r4] + add sp, sp, #0x184 + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_023076A0: + add r0, sp, #0x71 + bl FUN_0208B360 + mov r6, r0 + ldr r0, [r4, #0x1c] + ldr r1, _02307810 @ =0x0231B7C4 + add r2, sp, #0x52 + mov r3, #0x1f + bl ov00_0230BA28 + cmp r0, #0 + bne _023076DC + mov r0, #0x6a + str r0, [r4] + add sp, sp, #0x184 + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_023076DC: + ldr r0, [r4, #0x1c] + ldr r1, _02307814 @ =0x0231B7CC + add r2, sp, #0x31 + mov r3, #0x21 + bl ov00_0230BA28 + cmp r0, #0 + bne _0230770C + mov r0, #0x6a + str r0, [r4] + add sp, sp, #0x184 + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_0230770C: + str r6, [sp] + add r2, r7, #0x77 + ldr r3, [r7, #0x1a0] + ldr r1, _02307818 @ =0x0231B830 + add r0, sp, #0x81 + add r2, r2, #0x100 + bl FUN_020790DC + add r0, sp, #0x81 + bl FUN_02089678 + mov r1, r0 + add r0, sp, #0x81 + add r2, sp, #0x10 + bl ov00_022F4F3C + add r0, sp, #0x31 + add r1, sp, #0x10 + bl FUN_0208982C + cmp r0, #0 + beq _023077AC + ldr r2, _0230781C @ =0x0231B7DC + mov r0, r5 + add r1, r4, #0x2c + bl ov00_02302638 + ldr r2, _02307804 @ =0x0231B7D4 + mov r0, r5 + add r1, r4, #0x2c + bl ov00_02302638 + add r1, sp, #8 + mov r0, #1 + str r1, [sp] + str r0, [sp, #4] + ldrh r2, [r4, #0xc] + ldr r1, [r4, #8] + mov r0, r5 + add r3, r4, #0x2c + bl ov00_02302AF0 + mov r0, #0x6a + str r0, [r4] + add sp, sp, #0x184 + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_023077AC: + ldr r2, _02307820 @ =0x0231B808 + mov r0, r5 + add r1, r4, #0x2c + bl ov00_02302638 + ldr r2, _02307804 @ =0x0231B7D4 + mov r0, r5 + add r1, r4, #0x2c + bl ov00_02302638 + mov r0, #0x69 + str r0, [r4] + str r6, [r4, #0x10] + b _023077F0 +_023077DC: + mov r0, #0x6a + str r0, [r4] + add sp, sp, #0x184 + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_023077F0: + mov r0, #0 + str r0, [r4, #0x24] +_023077F8: + mov r0, #0 + add sp, sp, #0x184 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02307804: .4byte 0x0231B7D4 +_02307808: .4byte 0x0231B7B4 +_0230780C: .4byte 0x0231B7BC +_02307810: .4byte 0x0231B7C4 +_02307814: .4byte 0x0231B7CC +_02307818: .4byte 0x0231B830 +_0230781C: .4byte 0x0231B7DC +_02307820: .4byte 0x0231B808 + arm_func_end ov00_023075E0 + + arm_func_start ov00_02307824 +ov00_02307824: @ 0x02307824 + push {r3, r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0xc + movs r8, r1 + mov sb, r0 + addeq sp, sp, #0xc + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, pc} + ldr r0, [r8, #0x34] + cmp r0, #0 + addne sp, sp, #0xc + movne r0, #0 + popne {r3, r4, r5, r6, r7, r8, sb, sl, pc} + ldr r0, [r8, #0x3c] + bl ov00_022F47A0 + cmp r0, #0 + beq _023078F0 + mov sl, #0 + mov r7, sl + add r5, sp, #8 + mov r4, sl +_02307874: + ldr r0, [r8, #0x3c] + mov r1, r7 + bl ov00_022F47A8 + mov r6, r0 + str r5, [sp] + str r4, [sp, #4] + ldrh r2, [r8, #0xc] + ldr r1, [r8, #8] + mov r0, sb + mov r3, r6 + bl ov00_02302AF0 + ldr r1, [sp, #8] + cmp r1, #0 + cmpeq r0, #0 + beq _023078C4 + mov r0, #0x6a + str r0, [r8] + add sp, sp, #0xc + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} +_023078C4: + ldr r1, [r6, #0xc] + ldr r0, [r6, #8] + cmp r1, r0 + bne _023078F0 + ldr r0, [r8, #0x3c] + mov r1, sl + bl ov00_022F491C + ldr r0, [r8, #0x3c] + bl ov00_022F47A0 + cmp r0, #0 + bne _02307874 +_023078F0: + mov r0, #0 + add sp, sp, #0xc + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end ov00_02307824 + + arm_func_start ov00_023078FC +ov00_023078FC: @ 0x023078FC + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x2c + mov r7, r0 + ldr r5, [r7] + movs r6, r1 + addeq sp, sp, #0x2c + moveq r0, #3 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r6, #0x34] + cmp r1, #0 + beq _0230796C + add r2, sp, #0x24 + mov r1, #1 + str r2, [sp] + str r1, [sp, #4] + ldrh r2, [r6, #0xc] + ldr r1, [r6, #8] + add r3, r6, #0x2c + bl ov00_02302AF0 + ldr r1, [sp, #0x24] + cmp r1, #0 + cmpeq r0, #0 + beq _0230796C + mov r0, #0x6a + str r0, [r6] + add sp, sp, #0x2c + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230796C: + ldr r0, [r6, #0x34] + cmp r0, #0 + bne _023079A4 + mov r0, r7 + mov r1, r6 + bl ov00_02307824 + cmp r0, #0 + addne sp, sp, #0x2c + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r6] + cmp r0, #0x6a + addeq sp, sp, #0x2c + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023079A4: + ldr r0, [r6, #0x24] + cmp r0, #0 + ble _023079C4 + mov r0, #0 + bl ov00_022F5478 + add r0, r0, #0x710 + add r0, r0, #0x2000 + str r0, [r6, #0x14] +_023079C4: + mov sb, #0 + mov sl, #2 + add fp, sp, #0x1c + add r4, sp, #0x10 +_023079D4: + mov r0, r7 + add r1, r6, #0x1c + add r2, sp, #0x18 + add r3, sp, #0x14 + str r4, [sp] + bl ov00_02302C58 + cmp r0, #0 + addne sp, sp, #0x2c + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r2, [sp, #0x18] + cmp r2, #0 + beq _02307C38 + ldr r1, [sp, #0x14] + cmp r1, #0x69 + bgt _02307A54 + cmp r1, #0x68 + blt _02307A28 + beq _02307BD4 + cmp r1, #0x69 + beq _02307BF0 + b _02307C2C +_02307A28: + cmp r1, #5 + bgt _02307A48 + cmp r1, #1 + blt _02307C2C + beq _02307A98 + cmp r1, #5 + beq _02307B1C + b _02307C2C +_02307A48: + cmp r1, #0x66 + beq _02307BB0 + b _02307C2C +_02307A54: + cmp r1, #0xc9 + bgt _02307A6C + bge _02307C0C + cmp r1, #0xc8 + beq _02307C0C + b _02307C2C +_02307A6C: + sub r0, r1, #0xca + cmp r0, #6 + addls pc, pc, r0, lsl #2 + b _02307C2C +_02307A7C: @ jump table + b _02307C0C @ case 0 + b _02307C0C @ case 1 + b _02307C0C @ case 2 + b _02307C0C @ case 3 + b _02307C0C @ case 4 + b _02307C0C @ case 5 + b _02307C0C @ case 6 +_02307A98: + ldr r1, [r5, #0x1c0] + ldr r0, [r5, #0x1c4] + str r1, [sp, #0x1c] + str r0, [sp, #0x20] + cmp r1, #0 + beq _02307C2C + mov r0, #0xc + bl ov00_022F5AE4 + movs r8, r0 + bne _02307AD8 + ldr r1, _02307C70 @ =0x0231B838 + mov r0, r7 + bl ov00_0230BCCC + add sp, sp, #0x2c + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02307AD8: + ldr r0, [r6, #0x10] + str r0, [r8] + ldr r0, [sp, #0x18] + bl ov00_022F5514 + str r0, [r8, #8] + mov r0, #0 + bl ov00_022F5478 + str r0, [r8, #4] + mov r3, r8 + mov r0, r7 + stm sp, {sb, sl} + ldm fp, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _02307C2C + add sp, sp, #0x2c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02307B1C: + ldr r1, [r5, #0x1c8] + ldr r0, [r5, #0x1cc] + str r1, [sp, #8] + str r0, [sp, #0xc] + cmp r1, #0 + beq _02307C2C + mov r0, #0xc + bl ov00_022F5AE4 + movs r8, r0 + bne _02307B5C + ldr r1, _02307C70 @ =0x0231B838 + mov r0, r7 + bl ov00_0230BCCC + add sp, sp, #0x2c + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02307B5C: + ldr r0, [r6, #0x10] + str r0, [r8] + ldr r0, [sp, #0x18] + bl ov00_022F5514 + str r0, [r8, #8] + mov r0, #0 + bl ov00_022F5478 + str r0, [r8, #4] + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + add r1, sp, #8 + mov r3, r8 + mov r0, r7 + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _02307C2C + add sp, sp, #0x2c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02307BB0: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + ldr r1, [r6, #0x10] + ldr r3, _02307C74 @ =0x0231B848 + mov r0, r7 + mov r2, #0x67 + bl ov00_02301B2C + b _02307C2C +_02307BD4: + mov r0, r7 + mov r1, r6 + bl ov00_02301CB4 + cmp r0, #0 + beq _02307C2C + add sp, sp, #0x2c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02307BF0: + mov r0, r7 + mov r1, r6 + bl ov00_02301D50 + cmp r0, #0 + beq _02307C2C + add sp, sp, #0x2c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02307C0C: + str r2, [sp] + mov r2, r1 + ldr r1, [sp, #0x10] + mov r0, r7 + str r1, [sp, #4] + mov r1, r6 + ldr r3, [r6, #0x1c] + bl ov00_0230B6A4 +_02307C2C: + mov r0, r7 + add r1, r6, #0x1c + bl ov00_02302D94 +_02307C38: + ldr r0, [sp, #0x18] + cmp r0, #0 + bne _023079D4 + ldrh r1, [r6, #0xc] + ldr r0, [r6, #8] + add r2, sp, #0x28 + bl ov00_022F8578 + ldr r0, [sp, #0x28] + cmp r0, #3 + moveq r0, #0x6a + streq r0, [r6] + mov r0, #0 + add sp, sp, #0x2c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02307C70: .4byte 0x0231B838 +_02307C74: .4byte 0x0231B848 + arm_func_end ov00_023078FC + + arm_func_start ov00_02307C78 +ov00_02307C78: @ 0x02307C78 + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x10 + movs r7, r1 + ldr r6, [r7, #0x44] + mov r8, r0 + addeq sp, sp, #0x10 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + mov r5, #0x10 + mov r4, #0 + add sb, sp, #8 + b _02307D28 +_02307CA4: + ldr r0, [r6] + cmp r0, #2 + beq _02307D24 + bl ov00_022F5594 + ldr r1, [r6, #0x14] + cmp r0, r1 + bls _02307D24 + ldr r0, [r6, #8] + cmp r0, #0 + beq _02307D24 + ldr r0, [r6, #0x10] + cmp r0, #0x68 + bne _02307D18 + mov r0, r5 + bl ov00_022F5AE4 + ldmib r6, {r1, r2} + mov r3, r0 + str r4, [r3, #4] + str r4, [r3, #0xc] + str r4, [r3, #8] + ldr r0, [r7, #0x10] + str r2, [sp, #8] + str r0, [r3] + str r4, [sp] + str r1, [sp, #0xc] + mov r0, r8 + str r4, [sp, #4] + ldm sb, {r1, r2} + bl ov00_02302E74 +_02307D18: + mov r0, r7 + mov r1, r6 + bl ov00_02308618 +_02307D24: + ldr r6, [r6, #0xc] +_02307D28: + cmp r6, #0 + ldrne r0, [r7, #0x48] + cmpne r6, r0 + bne _02307CA4 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_02307C78 + + arm_func_start ov00_02307D40 +ov00_02307D40: @ 0x02307D40 + push {r4, r5, r6, lr} + mov r5, r1 + ldr r2, [r5] + mov r6, r0 + cmp r2, #0x64 + mov r4, #0 + moveq r0, #3 + popeq {r4, r5, r6, pc} + cmp r2, #0x69 + beq _02307D88 + ldr r2, [r5, #4] + cmp r2, #0 + beq _02307D80 + bl ov00_023072D0 + mov r4, r0 + b _02307D88 +_02307D80: + bl ov00_023075E0 + mov r4, r0 +_02307D88: + cmp r4, #0 + ldreq r0, [r5] + cmpeq r0, #0x69 + bne _02307DB4 + mov r0, r6 + mov r1, r5 + bl ov00_023078FC + mov r4, r0 + mov r0, r6 + mov r1, r5 + bl ov00_02307C78 +_02307DB4: + mov r0, r4 + pop {r4, r5, r6, pc} + arm_func_end ov00_02307D40 + + arm_func_start ov00_02307DBC +ov00_02307DBC: @ 0x02307DBC + push {r4, lr} + mov r4, r1 + ldr r0, [r4, #0x1c] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #0x1c] + ldr r0, [r4, #0x2c] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #0x2c] + ldr r0, [r4, #0x3c] + cmp r0, #0 + beq _02307DFC + bl ov00_022F4758 + mov r0, #0 + str r0, [r4, #0x3c] +_02307DFC: + mov r0, r4 + bl ov00_022F5B14 + pop {r4, pc} + arm_func_end ov00_02307DBC + + arm_func_start ov00_02307E08 +ov00_02307E08: @ 0x02307E08 + push {r3, r4, r5, r6, r7, lr} + mov r5, r0 + movs r4, r1 + ldr r1, [r5] + ldrne r2, [r1, #0x5d4] + cmpne r2, #0 + popeq {r3, r4, r5, r6, r7, pc} + cmp r2, r4 + ldreq r0, [r4, #0x4c] + streq r0, [r1, #0x5d4] + beq _02307E60 + ldr r0, [r2, #0x4c] + cmp r0, r4 + beq _02307E58 +_02307E40: + cmp r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + mov r2, r0 + ldr r0, [r0, #0x4c] + cmp r0, r4 + bne _02307E40 +_02307E58: + ldr r0, [r4, #0x4c] + str r0, [r2, #0x4c] +_02307E60: + ldr r0, [r4, #0x3c] + bl ov00_022F47A0 + cmp r0, #0 + beq _02307EC4 + mov r6, #0 + mov r7, r6 +_02307E78: + ldr r0, [r4, #0x3c] + mov r1, r7 + bl ov00_022F47A8 + ldr r2, [r0, #0x10] + cmp r2, #0x64 + bge _02307EA8 + ldr ip, [r0] + ldr r3, [r0, #0x14] + ldr r1, [r4, #0x10] + mov r0, r5 + add r3, ip, r3 + bl ov00_02301A50 +_02307EA8: + ldr r0, [r4, #0x3c] + mov r1, r6 + bl ov00_022F491C + ldr r0, [r4, #0x3c] + bl ov00_022F47A0 + cmp r0, #0 + bne _02307E78 +_02307EC4: + mov r0, r5 + mov r1, r4 + bl ov00_02307DBC + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_02307E08 + + arm_func_start ov00_02307ED4 +ov00_02307ED4: @ 0x02307ED4 + push {r3, r4, r5, r6, r7, lr} + mov r4, r0 + ldr r5, [r4] + bl ov00_022F8988 + ldr r7, [r5, #0x5d4] + cmp r7, #0 + beq _02307F58 + mov r5, #0 +_02307EF4: + ldr r0, [r7] + ldr r6, [r7, #0x4c] + cmp r0, #0x6a + mov r0, r4 + mov r1, r7 + bne _02307F14 + bl ov00_02307E08 + b _02307F4C +_02307F14: + bl ov00_02307D40 + ldr r1, [r7] + cmp r1, #0x6a + beq _02307F40 + cmp r0, #0 + bne _02307F40 + mov r0, r5 + bl ov00_022F5478 + ldr r1, [r7, #0x14] + cmp r0, r1 + ble _02307F4C +_02307F40: + mov r0, r4 + mov r1, r7 + bl ov00_02307E08 +_02307F4C: + mov r7, r6 + cmp r6, #0 + bne _02307EF4 +_02307F58: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_02307ED4 + + arm_func_start ov00_02307F60 +ov00_02307F60: @ 0x02307F60 + ldr r0, [r0] + ldr r0, [r0, #0x5d4] + cmp r0, #0 + beq _02307F88 +_02307F70: + ldr r2, [r0, #0x10] + cmp r2, r1 + bxeq lr + ldr r0, [r0, #0x4c] + cmp r0, #0 + bne _02307F70 +_02307F88: + mov r0, #0 + bx lr + arm_func_end ov00_02307F60 + + arm_func_start ov00_02307F90 +ov00_02307F90: @ 0x02307F90 + ldr r0, [r0] + cmp r1, #0 + cmpeq r2, #0 + moveq r0, #0 + bxeq lr + ldr r0, [r0, #0x5d4] + cmp r0, #0 + beq _02307FD0 +_02307FB0: + ldr r3, [r0, #8] + cmp r3, r1 + ldrheq r3, [r0, #0xc] + cmpeq r3, r2 + bxeq lr + ldr r0, [r0, #0x4c] + cmp r0, #0 + bne _02307FB0 +_02307FD0: + mov r0, #0 + bx lr + arm_func_end ov00_02307F90 + + arm_func_start ov00_02307FD8 +ov00_02307FD8: @ 0x02307FD8 + push {r4, lr} + mov r4, r0 + ldr r0, [r4] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4] + pop {r4, pc} + arm_func_end ov00_02307FD8 + + arm_func_start ov00_02307FF4 +ov00_02307FF4: @ 0x02307FF4 + push {r3, r4, r5, r6, r7, lr} + ldr r5, [r0] + mov r0, #0x50 + mov r7, r1 + mov r6, r2 + bl ov00_022F5AE4 + movs r4, r0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + mov r1, #0 + mov r2, #0x50 + bl FUN_02087308 + mov r0, #0x64 + stm r4, {r0, r6} + mov r0, #0 + str r7, [r4, #0x10] + bl ov00_022F5478 + add r0, r0, #0x710 + add r0, r0, #0x2000 + str r0, [r4, #0x14] + ldr r0, [r5, #0x5d4] + ldr r2, _0230807C @ =ov00_02307FD8 + str r0, [r4, #0x4c] + mov r0, #0x18 + mov r1, #0 + bl ov00_022F4700 + str r0, [r4, #0x3c] + str r4, [r5, #0x5d4] + mov r1, #0 + str r1, [r4, #0x44] + str r1, [r4, #0x48] + mov r0, r4 + str r1, [r4, #0x40] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0230807C: .4byte ov00_02307FD8 + arm_func_end ov00_02307FF4 + + arm_func_start ov00_02308080 +ov00_02308080: @ 0x02308080 + push {r3, r4, r5, lr} + sub sp, sp, #0x10 + mov r2, #0 + str r2, [sp] + mov r4, r1 + str r2, [sp, #4] + add r3, sp, #0xc + mov r1, #2 + mov r5, r0 + str r2, [sp, #8] + bl ov00_0230703C + cmp r0, #0 + addne sp, sp, #0x10 + popne {r3, r4, r5, pc} + ldr r0, [sp, #0xc] + ldr r1, [r4, #0x10] + ldr r2, [r0, #0x18] + mov r0, r5 + bl ov00_0230630C + cmp r0, #0 + moveq r0, #0x65 + streq r0, [r4] + moveq r0, #0 + add sp, sp, #0x10 + pop {r3, r4, r5, pc} + arm_func_end ov00_02308080 + + arm_func_start ov00_023080E4 +ov00_023080E4: @ 0x023080E4 + push {r4, r5, r6, lr} + sub sp, sp, #8 + mov r5, r1 + ldr r1, [r5, #0x10] + mov r6, r0 + add r2, sp, #4 + ldr r4, [r6] + bl ov00_02308A4C + cmp r0, #0 + bne _02308124 + ldr r1, _023081D8 @ =0x0231B798 + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #8 + mov r0, #3 + pop {r4, r5, r6, pc} +_02308124: + ldr r0, [sp, #4] + ldr r0, [r0, #0xc] + cmp r0, #0 + beq _023081C4 + ldrh r1, [r0, #0x20] + ldr r0, [r0, #0x1c] + add r2, sp, #0 + bl ov00_022F8578 + ldr r0, [sp] + cmp r0, #1 + cmpeq r0, #0 + beq _023081A4 + ldr r0, [sp, #4] + ldr r3, _023081DC @ =0x00002710 + ldr r0, [r0, #0xc] + add r2, r4, #0x220 + ldrh r1, [r0, #0x20] + ldr r0, [r0, #0x1c] + bl ov00_022F861C + cmp r0, #5 + beq _023081A4 + ldr r2, _023081E0 @ =0x0231B84C + mov r0, r6 + mov r1, #5 + bl ov00_0230BCA8 + mov r0, r6 + mov r1, #3 + mov r2, #0 + bl ov00_02302DEC + add sp, sp, #8 + mov r0, #3 + pop {r4, r5, r6, pc} +_023081A4: + ldr r0, [sp, #4] + ldr r0, [r0, #0xc] + ldr r0, [r0, #0x1c] + str r0, [r5, #8] + ldr r0, [sp, #4] + ldr r0, [r0, #0xc] + ldrh r0, [r0, #0x20] + strh r0, [r5, #0xc] +_023081C4: + mov r0, #0x67 + str r0, [r5] + mov r0, #0 + add sp, sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 +_023081D8: .4byte 0x0231B798 +_023081DC: .4byte 0x00002710 +_023081E0: .4byte 0x0231B84C + arm_func_end ov00_023080E4 + + arm_func_start ov00_023081E4 +ov00_023081E4: @ 0x023081E4 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x18 + movs r4, r1 + mov r8, r0 + mov r7, r2 + mov r6, r3 + addeq sp, sp, #0x18 + moveq r0, #3 + popeq {r4, r5, r6, r7, r8, pc} + cmp r6, #0 + addeq sp, sp, #0x18 + moveq r0, #3 + popeq {r4, r5, r6, r7, r8, pc} + mov r0, r6 + bl FUN_02089678 + mov r5, r0 + add r1, sp, #0 + mov r3, #0 + str r3, [r1, #0x10] + ldr r2, _02308340 @ =0x0231B884 + mov r0, r8 + str r3, [r1] + str r3, [r1, #4] + str r3, [r1, #8] + str r3, [r1, #0xc] + str r3, [r1, #0x14] + str r7, [sp, #0x10] + bl ov00_02302638 + cmp r0, #0 + addne sp, sp, #0x18 + popne {r4, r5, r6, r7, r8, pc} + add r1, sp, #0 + mov r0, r8 + mov r2, r7 + bl ov00_02302668 + cmp r0, #0 + addne sp, sp, #0x18 + popne {r4, r5, r6, r7, r8, pc} + ldr r2, _02308344 @ =0x0231B888 + add r1, sp, #0 + mov r0, r8 + bl ov00_02302638 + cmp r0, #0 + addne sp, sp, #0x18 + popne {r4, r5, r6, r7, r8, pc} + add r1, sp, #0 + mov r0, r8 + mov r2, r5 + bl ov00_02302668 + cmp r0, #0 + addne sp, sp, #0x18 + popne {r4, r5, r6, r7, r8, pc} + ldr r2, _02308348 @ =0x0231B890 + add r1, sp, #0 + mov r0, r8 + bl ov00_02302638 + cmp r0, #0 + addne sp, sp, #0x18 + popne {r4, r5, r6, r7, r8, pc} + ldr ip, [sp, #8] + add r1, sp, #0 + mov r0, r8 + mov r2, r6 + mov r3, r5 + str ip, [sp, #0x14] + bl ov00_02302594 + cmp r0, #0 + addne sp, sp, #0x18 + popne {r4, r5, r6, r7, r8, pc} + add r1, sp, #0 + mov r0, r8 + mov r2, #0 + bl ov00_0230251C + cmp r0, #0 + addne sp, sp, #0x18 + popne {r4, r5, r6, r7, r8, pc} + ldr r0, [r4, #0x3c] + add r1, sp, #0 + bl ov00_022F47D4 + mov r0, #0 + bl ov00_022F5478 + add r0, r0, #0x710 + add r0, r0, #0x2000 + str r0, [r4, #0x14] + mov r0, #0 + add sp, sp, #0x18 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02308340: .4byte 0x0231B884 +_02308344: .4byte 0x0231B888 +_02308348: .4byte 0x0231B890 + arm_func_end ov00_023081E4 + + arm_func_start ov00_0230834C +ov00_0230834C: @ 0x0230834C + push {r3, r4, r5, lr} + sub sp, sp, #0x48 + mov r4, r1 + cmp r3, #0 + mov r5, r0 + addeq sp, sp, #0x48 + ldr lr, [r3] + ldmib r3, {r1, ip} + moveq r0, #3 + popeq {r3, r4, r5, pc} + str r1, [sp] + ldr r1, _023083A4 @ =0x0231B898 + add r0, sp, #8 + mov r3, lr + str ip, [sp, #4] + bl FUN_020790DC + add r2, sp, #8 + mov r0, r5 + mov r1, r4 + bl ov00_02302884 + add sp, sp, #0x48 + pop {r3, r4, r5, pc} + .align 2, 0 +_023083A4: .4byte 0x0231B898 + arm_func_end ov00_0230834C + + arm_func_start ov00_023083A8 +ov00_023083A8: @ 0x023083A8 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x20 + movs r6, r1 + mov r7, r0 + mov r5, r2 + mov r4, r3 + addeq sp, sp, #0x20 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, pc} + mvn r0, #0 + cmp r5, #0 + ldreq r5, _02308474 @ =0x0231B8AC + cmp r4, r0 + bne _023083EC + mov r0, r5 + bl FUN_02089678 + mov r4, r0 +_023083EC: + ldr r1, _02308478 @ =0x0231B8B0 + add r0, sp, #0 + mov r2, r4 + bl FUN_020790DC + add r2, sp, #0 + mov r0, r7 + mov r1, r6 + bl ov00_02302884 + cmp r0, #0 + addne sp, sp, #0x20 + popne {r3, r4, r5, r6, r7, pc} + mov r0, r7 + mov r1, r6 + mov r2, r5 + mov r3, r4 + bl ov00_02302784 + cmp r0, #0 + addne sp, sp, #0x20 + popne {r3, r4, r5, r6, r7, pc} + mov r0, r7 + mov r1, r6 + mov r2, #0 + bl ov00_0230277C + cmp r0, #0 + addne sp, sp, #0x20 + popne {r3, r4, r5, r6, r7, pc} + mov r0, #0 + bl ov00_022F5478 + add r0, r0, #0x710 + add r0, r0, #0x2000 + str r0, [r6, #0x14] + mov r0, #0 + add sp, sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02308474: .4byte 0x0231B8AC +_02308478: .4byte 0x0231B8B0 + arm_func_end ov00_023083A8 + + arm_func_start ov00_0230847C +ov00_0230847C: @ 0x0230847C + push {r3, lr} + mov ip, r0 + mov r2, r1 + mov r0, r3 + mov r1, ip + bl ov00_02307F90 + cmp r0, #0 + movne r1, #0x6a + strne r1, [r0] + pop {r3, pc} + arm_func_end ov00_0230847C + + arm_func_start ov00_023084A4 +ov00_023084A4: @ 0x023084A4 + push {r4, r5, r6, r7, r8, sb, sl, lr} + ldr r4, [sp, #0x24] + mov r7, r0 + mov r6, r1 + mov sl, r2 + mov r0, r4 + mov r1, r7 + mov r2, r6 + mov sb, r3 + bl ov00_02307F90 + movs r5, r0 + bne _023084FC + mov r0, r4 + mvn r1, #0 + mov r2, #0 + bl ov00_02307FF4 + movs r5, r0 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + mov r0, #0x68 + str r0, [r5] + str r7, [r5, #8] + strh r6, [r5, #0xc] +_023084FC: + ldr r7, [r5, #0x24] + ldr r8, [r5, #0x20] + ldr r6, [r5, #0x1c] + sub r0, r8, r7 + cmp sb, r0 + ble _02308564 + cmp sb, #0x800 + movlt r0, #0x800 + movge r0, sb + add r8, r7, r0 + mov r0, r6 + add r1, r8, #1 + bl ov00_022F5AFC + cmp r0, #0 + bne _02308560 + mov r0, r6 + bl ov00_022F5B14 + ldr r1, _02308598 @ =0x0231B838 + mov r0, r4 + bl ov00_0230BCCC + mov r0, r4 + mov r1, #1 + mov r2, #0 + bl ov00_02302DEC + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_02308560: + mov r6, r0 +_02308564: + mov r1, sl + mov r2, sb + add r0, r6, r7 + bl FUN_0208729C + str r6, [r5, #0x1c] + ldr r0, [r5, #0x24] + mov r1, #0 + add r0, r0, sb + str r0, [r5, #0x24] + str r8, [r5, #0x20] + ldr r0, [r5, #0x24] + strb r1, [r6, r0] + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_02308598: .4byte 0x0231B838 + arm_func_end ov00_023084A4 + + arm_func_start ov00_0230859C +ov00_0230859C: @ 0x0230859C + push {r4, lr} + mov r4, r0 + mov r2, r1 + mov r1, r4 + ldr r0, [sp, #8] + mov r4, r3 + bl ov00_02307F90 + cmp r0, #0 + cmpne r4, #0 + movne r1, #0x6a + strne r1, [r0] + pop {r4, pc} + arm_func_end ov00_0230859C +_023085CC: + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov00_023085D0 +ov00_023085D0: @ 0x023085D0 + cmp r0, #0 + cmpne r1, #0 + bxeq lr + ldr r2, [r0, #0x40] + cmp r2, #0 + bne _023085F8 + str r1, [r0, #0x44] + str r1, [r0, #0x48] + str r1, [r0, #0x40] + bx lr +_023085F8: + ldr r3, [r0, #0x48] + ldr r2, [r0, #0x44] + cmp r2, r3 + streq r1, [r2, #0xc] + streq r1, [r0, #0x48] + strne r1, [r3, #0xc] + strne r1, [r0, #0x48] + bx lr + arm_func_end ov00_023085D0 + + arm_func_start ov00_02308618 +ov00_02308618: @ 0x02308618 + push {r3, lr} + cmp r0, #0 + cmpne r1, #0 + popeq {r3, pc} + ldr r2, [r0, #0x40] + cmp r2, #0 + popeq {r3, pc} + ldr r3, [r0, #0x44] + ldr r2, [r0, #0x48] + cmp r3, r2 + cmpeq r3, r1 + bne _0230865C + ldr r2, [r1, #0xc] + str r2, [r0, #0x48] + str r2, [r0, #0x44] + str r2, [r0, #0x40] + b _023086A0 +_0230865C: + cmp r3, r1 + bne _02308674 + ldr r2, [r3, #0xc] + str r2, [r0, #0x44] + str r2, [r0, #0x40] + b _023086A0 +_02308674: + ldr r0, [r3, #0xc] + cmp r0, r1 + beq _02308698 +_02308680: + cmp r0, #0 + popeq {r3, pc} + mov r3, r0 + ldr r0, [r0, #0xc] + cmp r0, r1 + bne _02308680 +_02308698: + ldr r0, [r1, #0xc] + str r0, [r3, #0xc] +_023086A0: + mov r0, r1 + bl ov00_022F5B14 + pop {r3, pc} + arm_func_end ov00_02308618 + + arm_func_start ov00_023086AC +ov00_023086AC: @ 0x023086AC + push {r3, lr} + ldr r0, [r0] + bl FUN_0208FEA4 + mov r0, r1 + pop {r3, pc} + arm_func_end ov00_023086AC +_023086C0: + .byte 0x00, 0x20, 0x90, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x00, 0x00, 0x42, 0xE0, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov00_023086D0 +ov00_023086D0: @ 0x023086D0 + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #8] + cmp r0, #0 + beq _02308720 + ldr r0, [r0, #8] + bl ov00_022F5B14 + ldr r0, [r4, #8] + mov r1, #0 + str r1, [r0, #8] + ldr r0, [r4, #8] + ldr r0, [r0, #0xc] + bl ov00_022F5B14 + ldr r0, [r4, #8] + mov r1, #0 + str r1, [r0, #0xc] + ldr r0, [r4, #8] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #8] +_02308720: + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _023087B8 + ldr r0, [r0, #8] + bl ov00_022F5B14 + ldr r0, [r4, #0xc] + mov r1, #0 + str r1, [r0, #8] + ldr r0, [r4, #0xc] + ldr r0, [r0, #0xc] + bl ov00_022F5B14 + ldr r0, [r4, #0xc] + mov r1, #0 + str r1, [r0, #0xc] + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x10] + bl ov00_022F5B14 + ldr r0, [r4, #0xc] + mov r1, #0 + str r1, [r0, #0x10] + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x14] + bl ov00_022F5B14 + ldr r0, [r4, #0xc] + mov r1, #0 + str r1, [r0, #0x14] + ldr r0, [r4, #0xc] + ldr r0, [r0, #0x38] + cmp r0, #0 + beq _023087A8 + bl ov00_022F4758 + ldr r0, [r4, #0xc] + mov r1, #0 + str r1, [r0, #0x38] +_023087A8: + ldr r0, [r4, #0xc] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #0xc] +_023087B8: + mov r0, r4 + bl ov00_02306620 + ldr r0, [r4, #0x14] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #0x14] + ldr r0, [r4, #0x1c] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #0x1c] + pop {r4, pc} + arm_func_end ov00_023086D0 + + arm_func_start ov00_023087E4 +ov00_023087E4: @ 0x023087E4 + push {r3, r4, lr} + sub sp, sp, #4 + ldr r4, [r0] + mov r0, #0 + str r0, [r4, #0x5d0] + str r0, [r4, #0x5cc] + ldr ip, _02308830 @ =ov00_023086D0 + ldr r2, _02308834 @ =ov00_023086AC + ldr r3, _02308838 @ =0x023086C0 + mov r0, #0x20 + mov r1, #4 + str ip, [sp] + bl ov00_022F4B94 + str r0, [r4, #0x5c8] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02308830: .4byte ov00_023086D0 +_02308834: .4byte ov00_023086AC +_02308838: .4byte 0x023086C0 + arm_func_end ov00_023087E4 + + arm_func_start ov00_0230883C +ov00_0230883C: @ 0x0230883C + push {r4, r5, r6, lr} + sub sp, sp, #0x20 + mov r6, r2 + mov r4, r1 + mov r1, r6 + mov r2, #1 + mov r5, r0 + bl ov00_0230B950 + cmp r0, #0 + addne sp, sp, #0x20 + movne r0, #4 + popne {r4, r5, r6, pc} + ldr r1, _0230898C @ =0x0231B8C0 + mov r0, r6 + mov r2, #5 + bl FUN_02089940 + cmp r0, #0 + beq _023088B0 + ldr r2, _02308990 @ =0x0231B8C8 + mov r0, r5 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r5 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x20 + mov r0, #3 + pop {r4, r5, r6, pc} +_023088B0: + ldr r1, _02308994 @ =0x0231B8F8 + add r2, sp, #0x10 + mov r0, r6 + mov r3, #0x10 + bl ov00_0230BA28 + cmp r0, #0 + bne _023088F8 + ldr r2, _02308990 @ =0x0231B8C8 + mov r0, r5 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r5 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x20 + mov r0, #3 + pop {r4, r5, r6, pc} +_023088F8: + add r0, sp, #0x10 + bl FUN_0208B360 + ldr r2, [r4, #0xc] + ldr r1, [r4, #0x10] + mov r6, r0 + str r2, [sp, #8] + str r1, [sp, #0xc] + cmp r2, #0 + beq _02308974 + mov r0, #8 + bl ov00_022F5AE4 + movs r3, r0 + bne _02308944 + ldr r1, _02308998 @ =0x0231B904 + mov r0, r5 + bl ov00_0230BCCC + add sp, sp, #0x20 + mov r0, #1 + pop {r4, r5, r6, pc} +_02308944: + str r6, [r3, #4] + mov r2, #0 + str r2, [r3] + str r4, [sp] + add r1, sp, #8 + str r2, [sp, #4] + mov r0, r5 + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + addne sp, sp, #0x20 + popne {r4, r5, r6, pc} +_02308974: + mov r0, r5 + mov r1, r4 + bl ov00_0230716C + mov r0, #0 + add sp, sp, #0x20 + pop {r4, r5, r6, pc} + .align 2, 0 +_0230898C: .4byte 0x0231B8C0 +_02308990: .4byte 0x0231B8C8 +_02308994: .4byte 0x0231B8F8 +_02308998: .4byte 0x0231B904 + arm_func_end ov00_0230883C + + arm_func_start ov00_0230899C +ov00_0230899C: @ 0x0230899C + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x24 + mov r6, r0 + mov r5, r1 + cmp r5, #0 + ldr r4, [r6] + addle sp, sp, #0x24 + movle r0, #0 + pople {r3, r4, r5, r6, pc} + add r2, sp, #0 + bl ov00_02308A4C + cmp r0, #0 + ldrne r0, [sp] + addne sp, sp, #0x24 + popne {r3, r4, r5, r6, pc} + add r3, sp, #4 + mov r0, #0 + mov r2, r3 + mov r1, r0 + stm r2!, {r0, r1} + stm r2!, {r0, r1} + stm r2!, {r0, r1} + stm r2, {r0, r1} + str r5, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0x14] + str r0, [sp, #0x18] + str r0, [sp, #0x20] + str r0, [sp, #0x1c] + ldr r0, [r4, #0x5c8] + mov r1, r3 + bl ov00_022F4CD0 + ldr r0, [r4, #0x5cc] + add r2, sp, #0 + add r3, r0, #1 + mov r0, r6 + mov r1, r5 + str r3, [r4, #0x5cc] + bl ov00_02308A4C + cmp r0, #0 + ldrne r0, [sp] + moveq r0, #0 + add sp, sp, #0x24 + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_0230899C + + arm_func_start ov00_02308A4C +ov00_02308A4C: @ 0x02308A4C + push {r4, lr} + sub sp, sp, #0x20 + ldr r0, [r0] + mov r4, r2 + str r1, [sp] + ldr r0, [r0, #0x5c8] + add r1, sp, #0 + bl ov00_022F4DCC + cmp r4, #0 + strne r0, [r4] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + add sp, sp, #0x20 + pop {r4, pc} + arm_func_end ov00_02308A4C + + arm_func_start ov00_02308A88 +ov00_02308A88: @ 0x02308A88 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x10 + mov r7, r2 + mov r5, r0 + mov r4, r1 + mov r1, r7 + mov r2, #1 + ldr r6, [r5] + bl ov00_0230B950 + cmp r0, #0 + addne sp, sp, #0x10 + movne r0, #4 + popne {r3, r4, r5, r6, r7, pc} + ldr r1, _02308B8C @ =0x0231B914 + mov r0, r7 + mov r2, #5 + bl FUN_02089940 + cmp r0, #0 + beq _02308B00 + ldr r2, _02308B90 @ =0x0231B8C8 + mov r0, r5 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r5 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x10 + mov r0, #3 + pop {r3, r4, r5, r6, r7, pc} +_02308B00: + ldr r1, [r4, #0xc] + ldr r0, [r4, #0x10] + str r1, [sp, #8] + str r0, [sp, #0xc] + cmp r1, #0 + beq _02308B74 + mov r0, #8 + bl ov00_022F5AE4 + movs r3, r0 + bne _02308B40 + ldr r1, _02308B94 @ =0x0231B904 + mov r0, r5 + bl ov00_0230BCCC + add sp, sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_02308B40: + ldr r0, [r6, #0x1a0] + mov r2, #0 + str r0, [r3, #4] + str r2, [r3] + str r4, [sp] + add r1, sp, #8 + str r2, [sp, #4] + mov r0, r5 + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + addne sp, sp, #0x10 + popne {r3, r4, r5, r6, r7, pc} +_02308B74: + mov r0, r5 + mov r1, r4 + bl ov00_0230716C + mov r0, #0 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02308B8C: .4byte 0x0231B914 +_02308B90: .4byte 0x0231B8C8 +_02308B94: .4byte 0x0231B904 + arm_func_end ov00_02308A88 + + arm_func_start ov00_02308B98 +ov00_02308B98: @ 0x02308B98 + push {r3, r4, lr} + sub sp, sp, #4 + add r2, sp, #0 + ldr r4, [r0] + bl ov00_02308A4C + cmp r0, #0 + addeq sp, sp, #4 + popeq {r3, r4, pc} + ldr r0, [r4, #0x5c8] + ldr r1, [sp] + bl ov00_022F4D50 + add sp, sp, #4 + pop {r3, r4, pc} + arm_func_end ov00_02308B98 + + arm_func_start ov00_02308BCC +ov00_02308BCC: @ 0x02308BCC + ldr r0, [r0] + ldr ip, _02308BDC @ =ov00_022F4D50 + ldr r0, [r0, #0x5c8] + bx ip + .align 2, 0 +_02308BDC: .4byte ov00_022F4D50 + arm_func_end ov00_02308BCC + + arm_func_start ov00_02308BE0 +ov00_02308BE0: @ 0x02308BE0 + push {r4, r5, r6, lr} + mov r6, r1 + ldr r4, [r6, #0x10] + mov r5, r2 + cmp r4, #0 + beq _02308C38 + ldr r0, [r5] + ldr r1, [r4] + bl FUN_0208982C + cmp r0, #0 + bne _02308C38 + ldr r0, [r5, #4] + ldr r1, [r4, #8] + bl FUN_0208982C + cmp r0, #0 + bne _02308C38 + ldr r1, [r5, #8] + mov r0, #1 + str r6, [r1] + str r0, [r5, #0xc] + mov r0, #0 + pop {r4, r5, r6, pc} +_02308C38: + mov r0, #1 + pop {r4, r5, r6, pc} + arm_func_end ov00_02308BE0 + + arm_func_start ov00_02308C40 +ov00_02308C40: @ 0x02308C40 + push {r4, lr} + sub sp, sp, #0x10 + str r1, [sp] + mov ip, #0 + str r2, [sp, #4] + mov r4, r3 + ldr r1, _02308C88 @ =ov00_02308BE0 + add r2, sp, #0 + str ip, [sp, #0xc] + str r4, [sp, #8] + bl ov00_02308CA8 + ldr r0, [sp, #0xc] + cmp r0, #0 + moveq r0, #0 + streq r0, [r4] + mov r0, #0 + add sp, sp, #0x10 + pop {r4, pc} + .align 2, 0 +_02308C88: .4byte ov00_02308BE0 + arm_func_end ov00_02308C40 +_02308C8C: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0x00, 0xC0, 0xA0, 0xE1, 0x08, 0x20, 0x91, 0xE5, 0x09, 0x00, 0x91, 0xE8, 0x0C, 0x10, 0xA0, 0xE1 + .byte 0x33, 0xFF, 0x2F, 0xE1, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov00_02308CA8 +ov00_02308CA8: @ 0x02308CA8 + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr r3, [r0] + str r1, [sp, #4] + str r2, [sp, #8] + str r0, [sp] + ldr r0, [r3, #0x5c8] + ldr r1, _02308CE4 @ =0x02308C8C + add r2, sp, #0 + bl ov00_022F4E8C + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + add sp, sp, #0xc + ldm sp!, {pc} + .align 2, 0 +_02308CE4: .4byte 0x02308C8C +_02308CE8: + .byte 0x08, 0x00, 0x91, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x05, 0x00, 0x00, 0x0A, 0x00, 0x30, 0x92, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x53, 0xE1 + .byte 0x04, 0x10, 0x82, 0x05, 0x00, 0x00, 0xA0, 0x03, 0x1E, 0xFF, 0x2F, 0x01 +_02308D0C: + ldr r0, [r1, #0xc] + cmp r0, #0 + beq _02308D30 + ldr r3, [r2] + ldr r0, [r0] + cmp r3, r0 + streq r1, [r2, #4] + moveq r0, #0 + bxeq lr +_02308D30: + mov r0, #1 + bx lr + arm_func_end ov00_02308CA8 + + arm_func_start ov00_02308D38 +ov00_02308D38: @ 0x02308D38 + push {r3, lr} + sub sp, sp, #8 + str r1, [sp] + mov r3, #0 + ldr r1, _02308D64 @ =0x02308CE8 + add r2, sp, #0 + str r3, [sp, #4] + bl ov00_02308CA8 + ldr r0, [sp, #4] + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_02308D64: .4byte 0x02308CE8 + arm_func_end ov00_02308D38 + + arm_func_start ov00_02308D68 +ov00_02308D68: @ 0x02308D68 + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #0xc] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #0xc] + ldr r0, [r4, #8] + bl ov00_022F5B14 + mov r1, #0 + mov r0, r4 + str r1, [r4, #8] + bl ov00_022F5B14 + pop {r4, pc} + arm_func_end ov00_02308D68 + + arm_func_start ov00_02308D9C +ov00_02308D9C: @ 0x02308D9C + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #8] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r4, #0xc] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #0xc] + ldr r0, [r4, #0x10] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #0x10] + ldr r0, [r4, #0x14] + bl ov00_022F5B14 + mov r0, #0 + str r0, [r4, #0x14] + ldr r0, [r4, #0x38] + bl ov00_022F4758 + mov r1, #0 + mov r0, r4 + str r1, [r4, #0x38] + bl ov00_022F5B14 + pop {r4, pc} + arm_func_end ov00_02308D9C + + arm_func_start ov00_02308E00 +ov00_02308E00: @ 0x02308E00 + cmp r0, #0 + beq _02308E38 + ldr r1, [r0, #0x10] + cmp r1, #0 + ldreq r1, [r0, #8] + cmpeq r1, #0 + ldreq r1, [r0, #0xc] + cmpeq r1, #0 + ldreq r1, [r0, #0x1c] + cmpeq r1, #0 + ldreq r0, [r0, #0x14] + cmpeq r0, #0 + moveq r0, #1 + bxeq lr +_02308E38: + mov r0, #0 + bx lr + arm_func_end ov00_02308E00 + + arm_func_start ov00_02308E40 +ov00_02308E40: @ 0x02308E40 + push {r4, r5, r6, lr} + sub sp, sp, #8 + mov r5, r1 + ldr r4, [r5, #4] + mov r1, #0x1000 + mov r6, r0 + add r0, r1, #1 + str r1, [r4, #0xc] + bl ov00_022F5AE4 + str r0, [r4, #8] + cmp r0, #0 + bne _02308E88 + ldr r1, _02309000 @ =0x0231B95C + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #8 + mov r0, #1 + pop {r4, r5, r6, pc} +_02308E88: + mov r0, #2 + mov r1, #1 + mov r2, #0 + bl ov00_022F4FA0 + mvn r1, #0 + str r0, [r4, #4] + cmp r0, r1 + bne _02308ED4 + ldr r2, _02309004 @ =0x0231B96C + mov r0, r6 + mov r1, #5 + bl ov00_0230BCA8 + mov r0, r6 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #8 + mov r0, #3 + pop {r4, r5, r6, pc} +_02308ED4: + mov r1, #0 + bl ov00_022F529C + cmp r0, #0 + bne _02308F10 + ldr r2, _02309008 @ =0x0231B994 + mov r0, r6 + mov r1, #5 + bl ov00_0230BCA8 + mov r0, r6 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #8 + mov r0, #3 + pop {r4, r5, r6, pc} +_02308F10: + ldr r0, _0230900C @ =0x0231B91C + bl ov00_022CF3D4 + cmp r0, #0 + bne _02308F4C + ldr r2, _02309010 @ =0x0231B9C8 + mov r0, r6 + mov r1, #5 + bl ov00_0230BCA8 + mov r0, r6 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #8 + mov r0, #3 + pop {r4, r5, r6, pc} +_02308F4C: + add r1, sp, #0 + mov r3, #0 + str r3, [r1] + mov r2, #2 + str r3, [r1, #4] + strb r2, [sp, #1] + ldr r2, [r0, #0xc] + ldr r0, _02309014 @ =0x0000CD74 + ldr r3, [r2] + mov r2, #8 + ldr r3, [r3] + str r3, [sp, #4] + strh r0, [sp, #2] + ldr r0, [r4, #4] + bl ov00_022F503C + mvn r1, #0 + cmp r0, r1 + bne _02308FE4 + ldr r0, [r4, #4] + bl ov00_022F5194 + mvn r2, #5 + cmp r0, r2 + subne r1, r2, #0x14 + cmpne r0, r1 + subne r1, r2, #0x46 + cmpne r0, r1 + beq _02308FE4 + ldr r2, _02309018 @ =0x0231B9F8 + mov r0, r6 + mov r1, #5 + bl ov00_0230BCA8 + mov r0, r6 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #8 + mov r0, #3 + pop {r4, r5, r6, pc} +_02308FE4: + mov r0, #1 + str r0, [r5, #0x14] + bl ov00_022F5594 + str r0, [r4, #0x148] + mov r0, #0 + add sp, sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 +_02309000: .4byte 0x0231B95C +_02309004: .4byte 0x0231B96C +_02309008: .4byte 0x0231B994 +_0230900C: .4byte 0x0231B91C +_02309010: .4byte 0x0231B9C8 +_02309014: .4byte 0x0000CD74 +_02309018: .4byte 0x0231B9F8 + arm_func_end ov00_02308E40 + + arm_func_start ov00_0230901C +ov00_0230901C: @ 0x0230901C + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + mov r0, #0x154 + mov r6, r1 + mov r5, r2 + bl ov00_022F5AE4 + movs r4, r0 + bne _02309050 + ldr r1, _023090C8 @ =0x0231B95C + mov r0, r7 + bl ov00_0230BCCC + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_02309050: + mov r1, #0 + mov r2, #0x154 + bl FUN_02087308 + str r5, [r4] + mvn r0, #0 + str r0, [r4, #4] + mov r0, #0 + str r0, [r4, #8] + str r0, [r4, #0x10] + str r0, [r4, #0x14] + str r0, [r4, #0xc] + str r0, [r4, #0x20] + mov r1, #0x1000 + str r0, [r4, #0x24] + add r0, r1, #1 + str r1, [r4, #0x1c] + bl ov00_022F5AE4 + str r0, [r4, #0x18] + cmp r0, #0 + bne _023090B4 + ldr r1, _023090C8 @ =0x0231B95C + mov r0, r7 + bl ov00_0230BCCC + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_023090B4: + mov r0, #0 + str r0, [r4, #0x140] + str r0, [r4, #0x144] + str r4, [r6] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_023090C8: .4byte 0x0231B95C + arm_func_end ov00_0230901C + + arm_func_start ov00_023090CC +ov00_023090CC: @ 0x023090CC + push {r3, r4, r5, lr} + sub sp, sp, #0x10 + mov r5, r0 + ldr r4, [r5] + ldr ip, [sp, #0x20] + ldr lr, [r4, #0x238] + add lr, lr, #1 + str lr, [r4, #0x238] + stm sp, {r2, r3} + mov r2, r1 + add r3, sp, #0xc + mov r1, #3 + str ip, [sp, #8] + bl ov00_0230703C + cmp r0, #0 + addne sp, sp, #0x10 + popne {r3, r4, r5, pc} + ldr r1, [sp, #0xc] + mov r0, r5 + bl ov00_02308E40 + cmp r0, #0 + addne sp, sp, #0x10 + popne {r3, r4, r5, pc} + ldr r1, [sp, #0xc] + ldr r0, [r1, #8] + cmp r0, #0 + beq _02309150 + ldr r1, [r1, #0x18] + mov r0, r5 + bl ov00_023003B4 + cmp r0, #0 + addne sp, sp, #0x10 + popne {r3, r4, r5, pc} +_02309150: + mov r0, #0 + add sp, sp, #0x10 + pop {r3, r4, r5, pc} + arm_func_end ov00_023090CC + + arm_func_start ov00_0230915C +ov00_0230915C: @ 0x0230915C + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #8 + movs r8, r1 + mov sb, r0 + ldrsbne r0, [r8] + mov r7, r2 + mov r6, r3 + ldr r5, [sp, #0x28] + ldr r4, [sp, #0x2c] + cmpne r0, #0 + bne _023091EC + cmp r6, #0 + ldrsbne r0, [r6] + cmpne r0, #0 + bne _023091EC + cmp r5, #0 + ldrsbne r0, [r5] + cmpne r0, #0 + bne _023091EC + cmp r4, #0 + ldrsbne r0, [r4] + cmpne r0, #0 + bne _023091EC + ldr r0, [sp, #0x30] + cmp r0, #0 + bne _023091EC + cmp r7, #0 + ldrsbne r0, [r7] + cmpne r0, #0 + bne _023091EC + ldr r1, _02309344 @ =0x0231BA20 + mov r0, sb + bl ov00_0230BCCC + add sp, sp, #8 + mov r0, #2 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_023091EC: + add r1, sp, #4 + mov r0, sb + mov r2, #1 + bl ov00_0230901C + cmp r0, #0 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + cmp r8, #0 + bne _02309220 + ldr r0, [sp, #4] + mov r1, #0 + strb r1, [r0, #0x28] + b _02309234 +_02309220: + ldr r0, [sp, #4] + mov r1, r8 + add r0, r0, #0x28 + mov r2, #0x1f + bl ov00_0230B930 +_02309234: + cmp r7, #0 + bne _0230924C + ldr r0, [sp, #4] + mov r1, #0 + strb r1, [r0, #0x47] + b _02309260 +_0230924C: + ldr r0, [sp, #4] + mov r1, r7 + add r0, r0, #0x47 + mov r2, #0x15 + bl ov00_0230B930 +_02309260: + cmp r6, #0 + bne _02309278 + ldr r0, [sp, #4] + mov r1, #0 + strb r1, [r0, #0x5c] + b _0230928C +_02309278: + ldr r0, [sp, #4] + mov r1, r6 + add r0, r0, #0x5c + mov r2, #0x33 + bl ov00_0230B930 +_0230928C: + ldr r0, [sp, #4] + add r0, r0, #0x5c + bl ov00_022F5548 + cmp r5, #0 + bne _023092B0 + ldr r0, [sp, #4] + mov r1, #0 + strb r1, [r0, #0x8f] + b _023092C4 +_023092B0: + ldr r0, [sp, #4] + mov r1, r5 + add r0, r0, #0x8f + mov r2, #0x1f + bl ov00_0230B930 +_023092C4: + cmp r4, #0 + bne _023092DC + ldr r0, [sp, #4] + mov r1, #0 + strb r1, [r0, #0xae] + b _023092F0 +_023092DC: + ldr r0, [sp, #4] + mov r1, r4 + add r0, r0, #0xae + mov r2, #0x1f + bl ov00_0230B930 +_023092F0: + ldr r0, [sp, #0x34] + ldr r2, [sp, #0x30] + ldr r1, [sp, #4] + cmp r0, #0 + movlt r0, #0 + strlt r0, [sp, #0x34] + str r2, [r1, #0x134] + ldr r2, [sp, #0x34] + ldr r1, [sp, #4] + ldr r0, [sp, #0x40] + str r2, [r1, #0x138] + str r0, [sp] + ldr r1, [sp, #4] + ldr r2, [sp, #0x38] + ldr r3, [sp, #0x3c] + mov r0, sb + bl ov00_023090CC + cmp r0, #0 + moveq r0, #0 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_02309344: .4byte 0x0231BA20 + arm_func_end ov00_0230915C + + arm_func_start ov00_02309348 +ov00_02309348: @ 0x02309348 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + mov r6, r1 + mov r5, r2 + add r1, sp, #4 + mov r2, #9 + mov r7, r0 + mov r4, r3 + bl ov00_0230901C + cmp r0, #0 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} + ldr r1, [sp, #4] + ldr r0, [sp, #0x24] + str r6, [r1, #0x14c] + ldr r1, [sp, #4] + ldr r3, [sp, #0x20] + str r5, [r1, #0x150] + str r0, [sp] + ldr r1, [sp, #4] + mov r0, r7 + mov r2, r4 + bl ov00_023090CC + cmp r0, #0 + moveq r0, #0 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_02309348 + + arm_func_start ov00_023093B4 +ov00_023093B4: @ 0x023093B4 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0xcc + sub sp, sp, #0x400 + mov sl, r0 + ldr r0, [sl] + str r1, [sp, #0x1c] + ldr r1, [r1, #8] + str r0, [sp, #0x2c] + ldr r0, [sp, #0x1c] + cmp r1, #0 + movne r4, #1 + moveq r4, #0 + ldr r6, [r0, #4] + cmp r1, #0 + bne _02309440 + bl ov00_022F5594 + ldr r2, [r6, #0x148] + ldr r1, _0230A144 @ =0x0000EA60 + sub r0, r0, r2 + cmp r0, r1 + bls _02309440 + ldr r1, _0230A148 @ =0x00000D02 + mov r3, #1 + ldr r2, _0230A14C @ =0x0231BA34 + mov r0, sl + str r3, [r6, #0x144] + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #0 + bl ov00_02302DEC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02309440: + mov r1, #1 + ldr r0, _0230A150 @ =0x0231BA4C + str r1, [sp] + str r0, [sp, #4] + ldr r1, [r6, #4] + add r3, sp, #0x74 + mov r0, sl + add r2, r6, #0x18 + bl ov00_02302A04 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [sp, #0x1c] + ldr r0, [r0, #0x14] + cmp r0, #1 + bne _02309C8C + ldr r1, [r6, #4] + add r2, sp, #0x88 + mov r0, sl + bl ov00_0230BA94 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [sp, #0x88] + cmp r0, #4 + bne _023094E0 + ldr r1, _0230A154 @ =0x00000D01 + ldr r2, _0230A158 @ =0x0231BA50 + mov r0, sl + bl ov00_0230BCA8 + mov r0, sl + mov r1, #4 + mov r2, #0 + bl ov00_02302DEC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #4 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023094E0: + cmp r0, #3 + bne _0230B46C + ldr r0, [r6] + cmp r0, #1 + bne _023096CC + ldr r2, _0230A15C @ =0x0231BA7C + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, _0230A160 @ =0x0231BA88 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r0, [sp, #0x2c] + add r1, r6, #0x18 + ldr r2, [r0, #0x198] + mov r0, sl + bl ov00_02302668 + ldr r2, _0230A164 @ =0x0231BA94 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, [sp, #0x2c] + mov r0, sl + ldr r2, [r2, #0x1a0] + add r1, r6, #0x18 + bl ov00_02302668 + ldr r2, _0230A168 @ =0x0231BAA0 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, [sp, #0x2c] + mov r0, sl + ldr r2, [r2, #0x60c] + add r1, r6, #0x18 + bl ov00_02302668 + ldr r2, _0230A16C @ =0x0231BAB0 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, [sp, #0x2c] + mov r0, sl + ldr r2, [r2, #0x1a4] + add r1, r6, #0x18 + bl ov00_02302668 + ldrsb r0, [r6, #0x28] + cmp r0, #0 + beq _023095C0 + ldr r2, _0230A170 @ =0x0231BABC + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + mov r0, sl + add r1, r6, #0x18 + add r2, r6, #0x28 + bl ov00_02302638 +_023095C0: + ldrsb r0, [r6, #0x47] + cmp r0, #0 + beq _023095EC + ldr r2, _0230A174 @ =0x0231BAC4 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + mov r0, sl + add r1, r6, #0x18 + add r2, r6, #0x47 + bl ov00_02302638 +_023095EC: + ldrsb r0, [r6, #0x5c] + cmp r0, #0 + beq _02309618 + ldr r2, _0230A178 @ =0x0231BAD4 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + mov r0, sl + add r1, r6, #0x18 + add r2, r6, #0x5c + bl ov00_02302638 +_02309618: + ldrsb r0, [r6, #0x8f] + cmp r0, #0 + beq _02309644 + ldr r2, _0230A17C @ =0x0231BADC + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + mov r0, sl + add r1, r6, #0x18 + add r2, r6, #0x8f + bl ov00_02302638 +_02309644: + ldrsb r0, [r6, #0xae] + cmp r0, #0 + beq _02309670 + ldr r2, _0230A180 @ =0x0231BAE8 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + mov r0, sl + add r1, r6, #0x18 + add r2, r6, #0xae + bl ov00_02302638 +_02309670: + ldr r0, [r6, #0x134] + cmp r0, #0 + beq _0230969C + ldr r2, _0230A184 @ =0x0231BAF4 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, [r6, #0x134] + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302668 +_0230969C: + ldr r0, [r6, #0x138] + cmp r0, #0 + ble _02309C4C + ldr r2, _0230A188 @ =0x0231BB00 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, [r6, #0x138] + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302668 + b _02309C4C +_023096CC: + cmp r0, #2 + bne _0230972C + ldr r2, _0230A18C @ =0x0231BB08 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, _0230A178 @ =0x0231BAD4 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + mov r0, sl + add r1, r6, #0x18 + add r2, r6, #0x5c + bl ov00_02302638 + ldr r2, _0230A16C @ =0x0231BAB0 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, [sp, #0x2c] + mov r0, sl + ldr r2, [r2, #0x1a4] + add r1, r6, #0x18 + bl ov00_02302668 + b _02309C4C +_0230972C: + cmp r0, #3 + bne _023097DC + ldr r2, _0230A190 @ =0x0231BB10 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, _0230A178 @ =0x0231BAD4 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + mov r0, sl + add r1, r6, #0x18 + add r2, r6, #0x5c + bl ov00_02302638 + add r0, r6, #0xcd + add r1, sp, #0x9c + bl ov00_0230BCE0 + ldr r2, _0230A194 @ =0x0231BB18 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + mov r0, sl + add r1, r6, #0x18 + add r2, sp, #0x9c + bl ov00_02302638 + ldr r2, _0230A168 @ =0x0231BAA0 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, [sp, #0x2c] + mov r0, sl + ldr r2, [r2, #0x60c] + add r1, r6, #0x18 + bl ov00_02302668 + ldr r2, _0230A16C @ =0x0231BAB0 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, [sp, #0x2c] + mov r0, sl + ldr r2, [r2, #0x1a4] + add r1, r6, #0x18 + bl ov00_02302668 + b _02309C4C +_023097DC: + cmp r0, #4 + bne _02309860 + ldr r2, _0230A198 @ =0x0231BB24 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, _0230A160 @ =0x0231BA88 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r0, [sp, #0x2c] + add r1, r6, #0x18 + ldr r2, [r0, #0x198] + mov r0, sl + bl ov00_02302668 + ldr r2, _0230A164 @ =0x0231BA94 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, [sp, #0x2c] + mov r0, sl + ldr r2, [r2, #0x1a0] + add r1, r6, #0x18 + bl ov00_02302668 + ldr r2, _0230A19C @ =0x0231BB30 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, [r6, #0x13c] + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302668 + b _02309C4C +_02309860: + cmp r0, #5 + bne _0230990C + ldr r2, _0230A1A0 @ =0x0231BB3C + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, _0230A170 @ =0x0231BABC + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + mov r0, sl + add r1, r6, #0x18 + add r2, r6, #0x28 + bl ov00_02302638 + ldr r2, _0230A178 @ =0x0231BAD4 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + mov r0, sl + add r1, r6, #0x18 + add r2, r6, #0x5c + bl ov00_02302638 + ldr r2, _0230A16C @ =0x0231BAB0 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, [sp, #0x2c] + mov r0, sl + ldr r2, [r2, #0x1a4] + add r1, r6, #0x18 + bl ov00_02302668 + add r0, r6, #0xcd + add r1, sp, #0x9c + bl ov00_0230BCE0 + ldr r2, _0230A194 @ =0x0231BB18 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + mov r0, sl + add r1, r6, #0x18 + add r2, sp, #0x9c + bl ov00_02302638 + b _02309C4C +_0230990C: + cmp r0, #6 + bne _02309A4C + ldr r2, _0230A1A4 @ =0x0231BB44 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, _0230A170 @ =0x0231BABC + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + mov r0, sl + add r1, r6, #0x18 + add r2, r6, #0x28 + bl ov00_02302638 + ldr r2, _0230A178 @ =0x0231BAD4 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + mov r0, sl + add r1, r6, #0x18 + add r2, r6, #0x5c + bl ov00_02302638 + add r0, r6, #0xcd + add r1, sp, #0x9c + bl ov00_0230BCE0 + ldr r2, _0230A194 @ =0x0231BB18 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + mov r0, sl + add r1, r6, #0x18 + add r2, sp, #0x9c + bl ov00_02302638 + ldr r2, _0230A1A8 @ =0x0231BB50 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, [sp, #0x2c] + mov r0, sl + ldr r2, [r2, #0x608] + add r1, r6, #0x18 + bl ov00_02302668 + ldr r2, _0230A168 @ =0x0231BAA0 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, [sp, #0x2c] + mov r0, sl + ldr r2, [r2, #0x60c] + add r1, r6, #0x18 + bl ov00_02302668 + ldr r2, _0230A174 @ =0x0231BAC4 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + mov r0, sl + add r1, r6, #0x18 + add r2, r6, #0x47 + bl ov00_02302638 + ldrsb r0, [r6, #0xec] + cmp r0, #0 + beq _02309A24 + ldr r2, _0230A1AC @ =0x0231BB5C + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + mov r0, sl + add r1, r6, #0x18 + add r2, r6, #0xec + bl ov00_02302638 +_02309A24: + ldr r2, _0230A16C @ =0x0231BAB0 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r0, [sp, #0x2c] + add r1, r6, #0x18 + ldr r2, [r0, #0x1a4] + mov r0, sl + bl ov00_02302668 + b _02309C4C +_02309A4C: + cmp r0, #7 + bne _02309AD4 + ldr r2, _0230A1B0 @ =0x0231BB64 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, _0230A160 @ =0x0231BA88 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r0, [sp, #0x2c] + add r1, r6, #0x18 + ldr r2, [r0, #0x198] + mov r0, sl + bl ov00_02302668 + ldr r2, _0230A164 @ =0x0231BA94 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, [sp, #0x2c] + mov r0, sl + ldr r2, [r2, #0x1a0] + add r1, r6, #0x18 + bl ov00_02302668 + ldr r2, _0230A168 @ =0x0231BAA0 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, [sp, #0x2c] + mov r0, sl + ldr r2, [r2, #0x60c] + add r1, r6, #0x18 + bl ov00_02302668 + b _02309C4C +_02309AD4: + cmp r0, #9 + bne _02309BF0 + ldr r2, _0230A1B4 @ =0x0231BB70 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, _0230A160 @ =0x0231BA88 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r0, [sp, #0x2c] + add r1, r6, #0x18 + ldr r2, [r0, #0x198] + mov r0, sl + bl ov00_02302668 + ldr r2, _0230A164 @ =0x0231BA94 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, [sp, #0x2c] + mov r0, sl + ldr r2, [r2, #0x1a0] + add r1, r6, #0x18 + bl ov00_02302668 + ldr r2, _0230A1B8 @ =0x0231BB80 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, [r6, #0x150] + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302668 + ldr r2, _0230A1BC @ =0x0231BB8C + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r0, [r6, #0x14c] + cmp r0, #0 + beq _02309BC8 + ldr r2, [r0] + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302668 + ldr r0, [r6, #0x150] + mov r5, #1 + cmp r0, #1 + ble _02309BC8 + ldr r7, _0230A1C0 @ =0x0231BB94 +_02309B94: + mov r0, sl + mov r2, r7 + add r1, r6, #0x18 + bl ov00_02302638 + ldr r1, [r6, #0x14c] + mov r0, sl + ldr r2, [r1, r5, lsl #2] + add r1, r6, #0x18 + bl ov00_02302668 + ldr r0, [r6, #0x150] + add r5, r5, #1 + cmp r5, r0 + blt _02309B94 +_02309BC8: + ldr r2, _0230A168 @ =0x0231BAA0 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r0, [sp, #0x2c] + add r1, r6, #0x18 + ldr r2, [r0, #0x60c] + mov r0, sl + bl ov00_02302668 + b _02309C4C +_02309BF0: + cmp r0, #8 + bne _02309C4C + ldr r2, _0230A1C4 @ =0x0231BB98 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, _0230A1C8 @ =0x0231BBA8 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + mov r0, sl + add r1, r6, #0x18 + add r2, r6, #0x47 + bl ov00_02302638 + ldr r2, _0230A168 @ =0x0231BAA0 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, [sp, #0x2c] + mov r0, sl + ldr r2, [r2, #0x60c] + add r1, r6, #0x18 + bl ov00_02302668 +_02309C4C: + ldr r2, _0230A1CC @ =0x0231BBB8 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, _0230A1D0 @ =0x02328804 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r2, _0230A1D4 @ =0x0231BBC4 + mov r0, sl + add r1, r6, #0x18 + bl ov00_02302638 + ldr r0, [sp, #0x1c] + mov r1, #4 + str r1, [r0, #0x14] + b _0230B46C +_02309C8C: + cmp r0, #4 + bne _0230B46C + add r1, sp, #0x74 + ldr r0, _0230A150 @ =0x0231BA4C + str r1, [sp] + str r0, [sp, #4] + ldr r1, [r6, #4] + add r3, sp, #0x78 + mov r0, sl + add r2, r6, #8 + bl ov00_023028B4 + cmp r0, #0 + beq _02309D00 + cmp r0, #3 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, _0230A154 @ =0x00000D01 + ldr r2, _0230A1D8 @ =0x0231BBCC + mov r0, sl + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #0 + bl ov00_02302DEC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02309D00: + ldr r0, [sp, #0x1c] + ldr r0, [r0, #8] + cmp r0, #0 + beq _02309D60 + bl ov00_022F5594 + ldr r2, [r6, #0x148] + ldr r1, _0230A144 @ =0x0000EA60 + sub r0, r0, r2 + cmp r0, r1 + bls _02309D60 + ldr r1, _0230A148 @ =0x00000D02 + mov r3, #1 + ldr r2, _0230A14C @ =0x0231BA34 + mov r0, sl + str r3, [r6, #0x144] + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #0 + bl ov00_02302DEC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02309D60: + ldr r0, [r6, #8] + ldr r1, _0230A1D4 @ =0x0231BBC4 + bl FUN_02089A70 + cmp r0, #0 + beq _0230B46C + mov r0, #0 + str r0, [sp, #0x84] + ldr r0, [sp, #0x1c] + mov r1, #5 + str r1, [r0, #0x14] + ldr r1, [r6, #8] + mov r0, sl + mov r2, #1 + bl ov00_0230B950 + cmp r0, #0 + beq _02309DB8 + add sp, sp, #0xcc + mov r0, #1 + str r0, [r6, #0x144] + add sp, sp, #0x400 + mov r0, #4 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02309DB8: + ldr r0, [r6] + cmp r0, #1 + bne _0230A214 + ldr r1, _0230A1DC @ =0x00000601 + mov r0, #0 + add r4, sp, #0x200 + str r0, [sp, #0x30] + str r0, [sp, #0x8c] + str r0, [sp, #0x90] + str r0, [sp, #0x98] + str r1, [sp, #0x94] + add r4, r4, #0xc9 + add r5, sp, #0xc9 + add fp, sp, #0x84 +_02309DF0: + str r5, [sp] + ldr r1, [r6, #8] + mov r0, sl + mov r2, fp + mov r3, r4 + bl ov00_0230BB58 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, _0230A1E0 @ =0x0231BBF8 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _02309E8C + str r5, [sp] + ldr r1, [r6, #8] + mov r0, sl + mov r2, fp + mov r3, r4 + bl ov00_0230BB58 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, _0230A1E4 @ =0x0231BC00 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _02309E80 + ldr r1, _0230A1E8 @ =0x0231BC08 + mov r0, r5 + bl FUN_0208982C + cmp r0, #0 + movne r0, #0x600 + strne r0, [sp, #0x94] +_02309E80: + mov r0, #1 + str r0, [sp, #0x30] + b _0230A078 +_02309E8C: + ldr r1, _0230A1EC @ =0x0231BC0C + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0230A048 + ldr r1, [sp, #0x90] + ldr r0, [sp, #0x98] + add r2, r1, #1 + mov r1, #0xac + mul r1, r2, r1 + str r2, [sp, #0x90] + bl ov00_022F5AFC + movs r7, r0 + str r7, [sp, #0x98] + bne _02309EE4 + ldr r1, _0230A1F0 @ =0x0231B95C + mov r0, sl + bl ov00_0230BCCC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02309EE4: + ldr r0, [sp, #0x90] + mov r1, #0 + sub r2, r0, #1 + mov r0, #0xac + mul r8, r2, r0 + add sb, r7, r8 + mov r0, sb + mov r2, #0xac + bl FUN_02087308 + mov r0, r5 + bl FUN_0208B360 + str r0, [r7, r8] + mov r8, #0 +_02309F18: + ldr r7, [sp, #0x84] + mov r0, sl + str r5, [sp] + ldr r1, [r6, #8] + mov r2, fp + mov r3, r4 + bl ov00_0230BB58 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, _0230A1F4 @ =0x0231BC10 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _02309F6C + add r0, sb, #4 + mov r1, r5 + mov r2, #0x1f + bl ov00_0230B930 + b _0230A03C +_02309F6C: + ldr r1, _0230A1F8 @ =0x0231BC18 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _02309F94 + add r0, sb, #0x23 + mov r1, r5 + mov r2, #0x15 + bl ov00_0230B930 + b _0230A03C +_02309F94: + ldr r1, _0230A1FC @ =0x0231BC24 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _02309FBC + add r0, sb, #0x38 + mov r1, r5 + mov r2, #0x1f + bl ov00_0230B930 + b _0230A03C +_02309FBC: + ldr r1, _0230A200 @ =0x0231BC30 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _02309FE4 + add r0, sb, #0x57 + mov r1, r5 + mov r2, #0x1f + bl ov00_0230B930 + b _0230A03C +_02309FE4: + ldr r1, _0230A204 @ =0x0231BC3C + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0230A00C + add r0, sb, #0x76 + mov r1, r5 + mov r2, #0x33 + bl ov00_0230B930 + b _0230A03C +_0230A00C: + ldr r1, _0230A1EC @ =0x0231BC0C + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + beq _0230A034 + ldr r1, _0230A1E0 @ =0x0231BBF8 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0230A03C +_0230A034: + str r7, [sp, #0x84] + mov r8, #1 +_0230A03C: + cmp r8, #0 + beq _02309F18 + b _0230A078 +_0230A048: + ldr r2, _0230A208 @ =0x0231BC44 + mov r0, sl + mov r1, #1 + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230A078: + ldr r0, [sp, #0x30] + cmp r0, #0 + beq _02309DF0 + ldr r0, [sp, #0x1c] + ldr r4, [sp, #0x94] + ldr r3, [r0, #0xc] + ldr r2, [r0, #0x10] + str r3, [sp, #0x7c] + str r2, [sp, #0x80] + cmp r3, #0 + beq _0230A0B0 + add r1, sp, #0x8c + mov r0, sl + blx r3 +_0230A0B0: + cmp r4, #0x600 + ldreq r0, [sp, #0x94] + cmpeq r0, #0x600 + bne _0230A130 + add r0, r6, #0x8f + str r0, [sp] + add r0, r6, #0xae + str r0, [sp, #4] + ldr r1, [r6, #0x134] + mov r0, sl + str r1, [sp, #8] + ldr r3, [sp, #0x90] + ldr r2, [r6, #0x138] + add r1, r6, #0x28 + add r2, r3, r2 + str r2, [sp, #0xc] + ldr r2, [sp, #0x1c] + ldr r3, [r2, #8] + add r2, r6, #0x47 + str r3, [sp, #0x10] + ldr r3, [sp, #0x1c] + ldr r4, [r3, #0xc] + add r3, r6, #0x5c + str r4, [sp, #0x14] + ldr r4, [sp, #0x1c] + ldr r4, [r4, #0x10] + str r4, [sp, #0x18] + bl ov00_0230915C + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230A130: + ldr r0, [sp, #0x98] + bl ov00_022F5B14 + mov r0, #0 + str r0, [sp, #0x98] + b _0230B460 + .align 2, 0 +_0230A144: .4byte 0x0000EA60 +_0230A148: .4byte 0x00000D02 +_0230A14C: .4byte 0x0231BA34 +_0230A150: .4byte 0x0231BA4C +_0230A154: .4byte 0x00000D01 +_0230A158: .4byte 0x0231BA50 +_0230A15C: .4byte 0x0231BA7C +_0230A160: .4byte 0x0231BA88 +_0230A164: .4byte 0x0231BA94 +_0230A168: .4byte 0x0231BAA0 +_0230A16C: .4byte 0x0231BAB0 +_0230A170: .4byte 0x0231BABC +_0230A174: .4byte 0x0231BAC4 +_0230A178: .4byte 0x0231BAD4 +_0230A17C: .4byte 0x0231BADC +_0230A180: .4byte 0x0231BAE8 +_0230A184: .4byte 0x0231BAF4 +_0230A188: .4byte 0x0231BB00 +_0230A18C: .4byte 0x0231BB08 +_0230A190: .4byte 0x0231BB10 +_0230A194: .4byte 0x0231BB18 +_0230A198: .4byte 0x0231BB24 +_0230A19C: .4byte 0x0231BB30 +_0230A1A0: .4byte 0x0231BB3C +_0230A1A4: .4byte 0x0231BB44 +_0230A1A8: .4byte 0x0231BB50 +_0230A1AC: .4byte 0x0231BB5C +_0230A1B0: .4byte 0x0231BB64 +_0230A1B4: .4byte 0x0231BB70 +_0230A1B8: .4byte 0x0231BB80 +_0230A1BC: .4byte 0x0231BB8C +_0230A1C0: .4byte 0x0231BB94 +_0230A1C4: .4byte 0x0231BB98 +_0230A1C8: .4byte 0x0231BBA8 +_0230A1CC: .4byte 0x0231BBB8 +_0230A1D0: .4byte 0x02328804 +_0230A1D4: .4byte 0x0231BBC4 +_0230A1D8: .4byte 0x0231BBCC +_0230A1DC: .4byte 0x00000601 +_0230A1E0: .4byte 0x0231BBF8 +_0230A1E4: .4byte 0x0231BC00 +_0230A1E8: .4byte 0x0231BC08 +_0230A1EC: .4byte 0x0231BC0C +_0230A1F0: .4byte 0x0231B95C +_0230A1F4: .4byte 0x0231BC10 +_0230A1F8: .4byte 0x0231BC18 +_0230A1FC: .4byte 0x0231BC24 +_0230A200: .4byte 0x0231BC30 +_0230A204: .4byte 0x0231BC3C +_0230A208: .4byte 0x0231BC44 +_0230A20C: .4byte 0x0231BC6C +_0230A210: .4byte 0x0231BC70 +_0230A214: + cmp r0, #2 + bne _0230A340 + ldr r0, [sp, #0x1c] + ldr r1, [r0, #0xc] + ldr r0, [r0, #0x10] + str r1, [sp, #0x34] + str r0, [sp, #0x38] + cmp r1, #0 + beq _0230B460 + add r0, sp, #0xc9 + str r0, [sp] + add r3, sp, #0x200 + ldr r1, [r6, #8] + add r2, sp, #0x84 + add r3, r3, #0xc9 + mov r0, sl + bl ov00_0230BB58 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, sp, #0x200 + ldr r1, _0230A20C @ =0x0231BC6C + add r0, r0, #0xc9 + bl FUN_0208982C + cmp r0, #0 + beq _0230A2B0 + ldr r2, _0230A208 @ =0x0231BC44 + mov r0, sl + mov r1, #1 + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230A2B0: + mov r0, #0x3c + bl ov00_022F5AE4 + movs r4, r0 + bne _0230A2DC + ldr r1, _0230A1F0 @ =0x0231B95C + mov r0, sl + bl ov00_0230BCCC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230A2DC: + mov r0, #0 + str r0, [r4] + add r0, r4, #4 + add r1, r6, #0x5c + mov r2, #0x33 + bl ov00_0230B930 + ldrsb r0, [sp, #0xc9] + ldr r1, [sp, #0x1c] + add r2, sp, #0x34 + cmp r0, #0x30 + moveq r0, #0 + movne r0, #1 + str r0, [r4, #0x38] + str r1, [sp] + mov r1, #0 + str r1, [sp, #4] + mov r0, sl + mov r3, r4 + ldm r2, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _0230B460 + add sp, sp, #0xcc + add sp, sp, #0x400 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230A340: + cmp r0, #3 + bne _0230A654 + ldr r0, [sp, #0x1c] + ldr r1, [r0, #0xc] + ldr r0, [r0, #0x10] + str r1, [sp, #0x3c] + str r0, [sp, #0x40] + cmp r1, #0 + beq _0230B460 + mov r0, #0x44 + bl ov00_022F5AE4 + movs r8, r0 + bne _0230A390 + ldr r1, _0230A1F0 @ =0x0231B95C + mov r0, sl + bl ov00_0230BCCC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230A390: + mov r2, #0 + add r0, r8, #4 + add r1, r6, #0x5c + str r2, [r8] + bl FUN_02089694 + mov r1, #0 + str r1, [r8, #0x38] + str r1, [r8, #0x3c] + add r3, sp, #0x200 + add r0, sp, #0xc9 + str r1, [r8, #0x40] + str r0, [sp] + ldr r1, [r6, #8] + add r2, sp, #0x84 + add r3, r3, #0xc9 + mov r0, sl + bl ov00_0230BB58 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, sp, #0x200 + ldr r1, _0230A210 @ =0x0231BC70 + add r0, r0, #0xc9 + bl FUN_0208982C + cmp r0, #0 + beq _0230A42C + ldr r2, _0230A208 @ =0x0231BC44 + mov r0, sl + mov r1, #1 + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230A42C: + add r4, sp, #0x200 + ldr fp, _0230A1F4 @ =0x0231BC10 + mov sb, #0 + add r4, r4, #0xc9 + add r7, sp, #0xc9 + add r5, sp, #0x84 +_0230A444: + str r7, [sp] + ldr r1, [r6, #8] + mov r0, sl + mov r2, r5 + mov r3, r4 + bl ov00_0230BB58 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, r4 + mov r1, fp + bl FUN_0208982C + cmp r0, #0 + bne _0230A51C + ldr r0, [r8, #0x3c] + ldr r1, [r8, #0x38] + add r1, r1, #1 + lsl r1, r1, #2 + bl ov00_022F5AFC + cmp r0, #0 + bne _0230A4B8 + ldr r1, _0230A1F0 @ =0x0231B95C + mov r0, sl + bl ov00_0230BCCC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230A4B8: + str r0, [r8, #0x3c] + mov r0, #0x1f + bl ov00_022F5AE4 + cmp r0, #0 + bne _0230A4E8 + ldr r1, _0230A1F0 @ =0x0231B95C + mov r0, sl + bl ov00_0230BCCC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230A4E8: + ldr r3, [r8, #0x3c] + ldr r2, [r8, #0x38] + mov r1, r7 + str r0, [r3, r2, lsl #2] + ldr r3, [r8, #0x3c] + ldr r0, [r8, #0x38] + mov r2, #0x1f + ldr r0, [r3, r0, lsl #2] + bl ov00_0230B930 + ldr r0, [r8, #0x38] + add r0, r0, #1 + str r0, [r8, #0x38] + b _0230A614 +_0230A51C: + ldr r1, _0230A1F8 @ =0x0231BC18 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0230A5CC + ldr r0, [r8, #0x38] + cmp r0, #0 + ble _0230A614 + lsl r1, r0, #2 + ldr r0, [r8, #0x40] + bl ov00_022F5AFC + cmp r0, #0 + bne _0230A56C + ldr r1, _0230A1F0 @ =0x0231B95C + mov r0, sl + bl ov00_0230BCCC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230A56C: + str r0, [r8, #0x40] + mov r0, #0x15 + bl ov00_022F5AE4 + cmp r0, #0 + bne _0230A59C + ldr r1, _0230A1F0 @ =0x0231B95C + mov r0, sl + bl ov00_0230BCCC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230A59C: + ldr r3, [r8, #0x40] + ldr r2, [r8, #0x38] + mov r1, r7 + add r2, r3, r2, lsl #2 + str r0, [r2, #-4] + ldr r3, [r8, #0x40] + ldr r0, [r8, #0x38] + mov r2, #0x15 + add r0, r3, r0, lsl #2 + ldr r0, [r0, #-4] + bl ov00_0230B930 + b _0230A614 +_0230A5CC: + ldr r1, _0230B494 @ =0x0231BC74 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + moveq sb, #1 + beq _0230A614 + ldr r2, _0230A208 @ =0x0231BC44 + mov r0, sl + mov r1, #1 + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230A614: + cmp sb, #0 + beq _0230A444 + ldr r1, [sp, #0x1c] + add r2, sp, #0x3c + str r1, [sp] + mov r1, #3 + str r1, [sp, #4] + mov r0, sl + mov r3, r8 + ldm r2, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _0230B460 + add sp, sp, #0xcc + add sp, sp, #0x400 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230A654: + cmp r0, #4 + bne _0230A8EC + ldr r0, [sp, #0x1c] + ldr r1, [r0, #0xc] + ldr r0, [r0, #0x10] + str r1, [sp, #0x44] + str r0, [sp, #0x48] + cmp r1, #0 + beq _0230B460 + mov r0, #0x10 + bl ov00_022F5AE4 + movs fp, r0 + bne _0230A6A4 + ldr r1, _0230A1F0 @ =0x0231B95C + mov r0, sl + bl ov00_0230BCCC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230A6A4: + ldr r1, [r6, #0x13c] + mov r0, #0 + stm fp, {r0, r1} + str r0, [fp, #8] + add r4, sp, #0x200 + str r0, [sp, #0x20] + str r0, [fp, #0xc] + add r4, r4, #0xc9 + add r5, sp, #0xc9 +_0230A6C8: + str r5, [sp] + ldr r1, [r6, #8] + mov r0, sl + add r2, sp, #0x84 + mov r3, r4 + bl ov00_0230BB58 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, _0230B498 @ =0x0231BC7C + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + moveq r0, #1 + streq r0, [sp, #0x20] + beq _0230A8A8 + ldr r1, _0230B49C @ =0x0231BC84 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0230A878 + ldr r0, [fp, #8] + add r2, r0, #1 + mov r0, #0x128 + mul r1, r2, r0 + str r2, [fp, #8] + ldr r0, [fp, #0xc] + bl ov00_022F5AFC + str r0, [fp, #0xc] + movs r8, r0 + bne _0230A764 + ldr r1, _0230A1F0 @ =0x0231B95C + mov r0, sl + bl ov00_0230BCCC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230A764: + ldr r0, [fp, #8] + mov r1, #0 + sub r2, r0, #1 + mov r0, #0x128 + mul sb, r2, r0 + add r7, r8, sb + mov r0, r7 + mov r2, #0x128 + bl FUN_02087308 + mov r0, #1 + str r0, [r7, #0x24] + mov r0, r5 + bl FUN_0208B360 + str r0, [r8, sb] + mov r8, #0 +_0230A7A0: + ldr sb, [sp, #0x84] + mov r0, sl + str r5, [sp] + ldr r1, [r6, #8] + add r2, sp, #0x84 + mov r3, r4 + bl ov00_0230BB58 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, _0230B4A0 @ =0x0231BC88 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0230A7F4 + add r0, r7, #0x28 + mov r1, r5 + mov r2, #0x100 + bl ov00_0230B930 + b _0230A818 +_0230A7F4: + ldr r1, _0230A1F4 @ =0x0231BC10 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0230A818 + add r0, r7, #4 + mov r1, r5 + mov r2, #0x1f + bl ov00_0230B930 +_0230A818: + ldr r1, _0230B4A4 @ =0x0231BC90 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0230A83C + mov r0, r5 + bl FUN_0208B360 + str r0, [r7, #0x24] + b _0230A86C +_0230A83C: + ldr r1, _0230B49C @ =0x0231BC84 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + beq _0230A864 + ldr r1, _0230B498 @ =0x0231BC7C + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0230A86C +_0230A864: + str sb, [sp, #0x84] + mov r8, #1 +_0230A86C: + cmp r8, #0 + beq _0230A7A0 + b _0230A8A8 +_0230A878: + ldr r2, _0230A208 @ =0x0231BC44 + mov r0, sl + mov r1, #1 + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230A8A8: + ldr r0, [sp, #0x20] + cmp r0, #0 + beq _0230A6C8 + ldr r1, [sp, #0x1c] + add r2, sp, #0x44 + str r1, [sp] + mov r1, #4 + str r1, [sp, #4] + mov r0, sl + mov r3, fp + ldm r2, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _0230B460 + add sp, sp, #0xcc + add sp, sp, #0x400 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230A8EC: + cmp r0, #5 + bne _0230AA64 + ldr r0, [sp, #0x1c] + ldr r1, [r0, #0xc] + ldr r0, [r0, #0x10] + str r1, [sp, #0x4c] + str r0, [sp, #0x50] + cmp r1, #0 + beq _0230B460 + add r0, sp, #0xc9 + str r0, [sp] + add r3, sp, #0x200 + ldr r1, [r6, #8] + add r2, sp, #0x84 + add r3, r3, #0xc9 + mov r0, sl + bl ov00_0230BB58 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, sp, #0x200 + ldr r1, _0230B4A8 @ =0x0231BC9C + add r0, r0, #0xc9 + bl FUN_0208982C + cmp r0, #0 + beq _0230A988 + ldr r2, _0230A208 @ =0x0231BC44 + mov r0, sl + mov r1, #1 + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230A988: + add r0, sp, #0xc9 + bl FUN_0208B360 + movs r4, r0 + beq _0230A9A8 + ldr r0, [sp, #0x2c] + mov r5, #0 + str r4, [r0, #0x5b8] + b _0230AA00 +_0230A9A8: + ldr r0, [r6, #8] + ldr r1, _0230B4AC @ =0x0231BCA0 + add r2, sp, #0xc9 + mov r3, #0x200 + bl ov00_0230BA28 + cmp r0, #0 + bne _0230A9F4 + ldr r2, _0230A208 @ =0x0231BC44 + mov r0, sl + mov r1, #1 + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230A9F4: + add r0, sp, #0xc9 + bl FUN_0208B360 + mov r5, r0 +_0230AA00: + mov r0, #8 + bl ov00_022F5AE4 + movs r3, r0 + bne _0230AA2C + ldr r1, _0230A1F0 @ =0x0231B95C + mov r0, sl + bl ov00_0230BCCC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230AA2C: + stm r3, {r4, r5} + ldr r1, [sp, #0x1c] + add r2, sp, #0x4c + str r1, [sp] + mov r1, #0 + str r1, [sp, #4] + mov r0, sl + ldm r2, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _0230B460 + add sp, sp, #0xcc + add sp, sp, #0x400 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230AA64: + cmp r0, #6 + bne _0230ABE0 + ldr r0, [sp, #0x1c] + ldr r1, [r0, #0xc] + ldr r0, [r0, #0x10] + str r1, [sp, #0x54] + str r0, [sp, #0x58] + cmp r1, #0 + beq _0230B460 + add r0, sp, #0xc9 + str r0, [sp] + add r3, sp, #0x200 + ldr r1, [r6, #8] + add r2, sp, #0x84 + add r3, r3, #0xc9 + mov r0, sl + bl ov00_0230BB58 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, sp, #0x200 + ldr r1, _0230B4B0 @ =0x0231BCA8 + add r0, r0, #0xc9 + bl FUN_0208982C + cmp r0, #0 + beq _0230AB00 + ldr r2, _0230A208 @ =0x0231BC44 + mov r0, sl + mov r1, #1 + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230AB00: + add r0, sp, #0xc9 + bl FUN_0208B360 + movs r4, r0 + ldrne r0, [sp, #0x2c] + ldr r1, _0230B4AC @ =0x0231BCA0 + strne r4, [r0, #0x5b8] + ldr r0, [r6, #8] + add r2, sp, #0xc9 + mov r3, #0x200 + bl ov00_0230BA28 + cmp r0, #0 + bne _0230AB70 + cmp r4, #0 + bne _0230AB68 + ldr r2, _0230A208 @ =0x0231BC44 + mov r0, sl + mov r1, #1 + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230AB68: + mov r5, #0 + b _0230AB7C +_0230AB70: + add r0, sp, #0xc9 + bl FUN_0208B360 + mov r5, r0 +_0230AB7C: + mov r0, #8 + bl ov00_022F5AE4 + movs r3, r0 + bne _0230ABA8 + ldr r1, _0230A1F0 @ =0x0231B95C + mov r0, sl + bl ov00_0230BCCC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230ABA8: + stm r3, {r4, r5} + ldr r1, [sp, #0x1c] + add r2, sp, #0x54 + str r1, [sp] + mov r1, #0 + str r1, [sp, #4] + mov r0, sl + ldm r2, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _0230B460 + add sp, sp, #0xcc + add sp, sp, #0x400 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230ABE0: + cmp r0, #7 + bne _0230AF48 + ldr r0, [sp, #0x1c] + ldr r1, [r0, #0xc] + ldr r0, [r0, #0x10] + str r1, [sp, #0x5c] + str r0, [sp, #0x60] + cmp r1, #0 + beq _0230B460 + mov r0, #0xc + bl ov00_022F5AE4 + movs fp, r0 + bne _0230AC30 + ldr r1, _0230A1F0 @ =0x0231B95C + mov r0, sl + bl ov00_0230BCCC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230AC30: + mov r1, #0 + str r1, [fp] + str r1, [fp, #4] + add r0, sp, #0xc9 + str r1, [fp, #8] + str r0, [sp] + add r3, sp, #0x200 + ldr r1, [r6, #8] + add r2, sp, #0x84 + add r3, r3, #0xc9 + mov r0, sl + bl ov00_0230BB58 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, sp, #0x200 + ldr r1, _0230B4B4 @ =0x0231BCAC + add r0, r0, #0xc9 + bl FUN_0208982C + cmp r0, #0 + beq _0230ACB8 + ldr r2, _0230A208 @ =0x0231BC44 + mov r0, sl + mov r1, #1 + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230ACB8: + mov r0, #0 + add r4, sp, #0x200 + str r0, [sp, #0x24] + add r4, r4, #0xc9 + add r5, sp, #0xc9 +_0230ACCC: + str r5, [sp] + ldr r1, [r6, #8] + mov r0, sl + add r2, sp, #0x84 + mov r3, r4 + bl ov00_0230BB58 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, _0230B4B8 @ =0x0231BCB4 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + moveq r0, #1 + streq r0, [sp, #0x24] + beq _0230AF04 + ldr r1, _0230B4BC @ =0x0231BCBC + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0230AED4 + ldr r1, [fp, #4] + ldr r0, [fp, #8] + add r2, r1, #1 + mov r1, #0xac + mul r1, r2, r1 + bl ov00_022F5AFC + cmp r0, #0 + bne _0230AD60 + ldr r1, _0230A1F0 @ =0x0231B95C + mov r0, sl + bl ov00_0230BCCC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230AD60: + str r0, [fp, #8] + ldr r2, [fp, #4] + mov r8, r0 + mov r0, #0xac + mul sb, r2, r0 + add r7, r8, sb + mov r1, #0 + mov r0, r7 + mov r2, #0xac + bl FUN_02087308 + ldr r1, [fp, #4] + mov r0, r5 + add r1, r1, #1 + str r1, [fp, #4] + bl FUN_0208B360 + str r0, [r8, sb] + mov r8, #0 +_0230ADA4: + ldr sb, [sp, #0x84] + mov r0, sl + str r5, [sp] + ldr r1, [r6, #8] + add r2, sp, #0x84 + mov r3, r4 + bl ov00_0230BB58 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, _0230A1F4 @ =0x0231BC10 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0230ADF8 + add r0, r7, #4 + mov r1, r5 + mov r2, #0x1f + bl ov00_0230B930 + b _0230AEC8 +_0230ADF8: + ldr r1, _0230A1F8 @ =0x0231BC18 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0230AE20 + add r0, r7, #0x23 + mov r1, r5 + mov r2, #0x15 + bl ov00_0230B930 + b _0230AEC8 +_0230AE20: + ldr r1, _0230B4C0 @ =0x0231BCC0 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0230AE48 + add r0, r7, #0x38 + mov r1, r5 + mov r2, #0x1f + bl ov00_0230B930 + b _0230AEC8 +_0230AE48: + ldr r1, _0230B4C4 @ =0x0231BCC8 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0230AE70 + add r0, r7, #0x57 + mov r1, r5 + mov r2, #0x1f + bl ov00_0230B930 + b _0230AEC8 +_0230AE70: + ldr r1, _0230A204 @ =0x0231BC3C + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0230AE98 + add r0, r7, #0x76 + mov r1, r5 + mov r2, #0x33 + bl ov00_0230B930 + b _0230AEC8 +_0230AE98: + ldr r1, _0230B4BC @ =0x0231BCBC + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + beq _0230AEC0 + ldr r1, _0230B4B8 @ =0x0231BCB4 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0230AEC8 +_0230AEC0: + str sb, [sp, #0x84] + mov r8, #1 +_0230AEC8: + cmp r8, #0 + beq _0230ADA4 + b _0230AF04 +_0230AED4: + ldr r2, _0230A208 @ =0x0231BC44 + mov r0, sl + mov r1, #1 + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230AF04: + ldr r0, [sp, #0x24] + cmp r0, #0 + beq _0230ACCC + ldr r1, [sp, #0x1c] + add r2, sp, #0x5c + str r1, [sp] + mov r1, #8 + str r1, [sp, #4] + mov r0, sl + mov r3, fp + ldm r2, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _0230B460 + add sp, sp, #0xcc + add sp, sp, #0x400 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230AF48: + cmp r0, #9 + bne _0230B220 + ldr r0, [sp, #0x1c] + ldr r1, [r0, #0xc] + ldr r0, [r0, #0x10] + str r1, [sp, #0x64] + str r0, [sp, #0x68] + cmp r1, #0 + beq _0230B460 + mov r0, #0xc + bl ov00_022F5AE4 + movs fp, r0 + bne _0230AF98 + ldr r1, _0230A1F0 @ =0x0231B95C + mov r0, sl + bl ov00_0230BCCC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230AF98: + mov r1, #0 + str r1, [fp] + str r1, [fp, #4] + add r0, sp, #0xc9 + str r1, [fp, #8] + str r0, [sp] + add r3, sp, #0x200 + ldr r1, [r6, #8] + add r2, sp, #0x84 + add r3, r3, #0xc9 + mov r0, sl + bl ov00_0230BB58 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, sp, #0x200 + ldr r1, _0230B4C8 @ =0x0231BCD0 + add r0, r0, #0xc9 + bl FUN_0208982C + cmp r0, #0 + beq _0230B020 + ldr r2, _0230A208 @ =0x0231BC44 + mov r0, sl + mov r1, #1 + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230B020: + mov r0, #0 + add r4, sp, #0x200 + str r0, [sp, #0x28] + add r4, r4, #0xc9 + add r5, sp, #0xc9 +_0230B034: + str r5, [sp] + ldr r1, [r6, #8] + mov r0, sl + add r2, sp, #0x84 + mov r3, r4 + bl ov00_0230BB58 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, _0230B4CC @ =0x0231BCDC + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + moveq r0, #1 + streq r0, [sp, #0x28] + beq _0230B1DC + ldr r1, _0230B4BC @ =0x0231BCBC + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0230B1AC + ldr r1, [fp, #4] + ldr r0, [fp, #8] + add r2, r1, #1 + mov r1, #0x1c + mul r1, r2, r1 + bl ov00_022F5AFC + cmp r0, #0 + bne _0230B0C8 + ldr r1, _0230B4D0 @ =0x0231B95C + mov r0, sl + bl ov00_0230BCCC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230B0C8: + str r0, [fp, #8] + ldr r3, [fp, #4] + mov r1, #0x1c + mla r7, r3, r1, r0 + mov r2, #7 + mov r1, r7 +_0230B0E0: + mov r0, #0 + strb r0, [r1] + strb r0, [r1, #1] + strb r0, [r1, #2] + strb r0, [r1, #3] + add r1, r1, #4 + subs r2, r2, #1 + bne _0230B0E0 + ldr r1, [fp, #4] + mov r0, r5 + add r1, r1, #1 + str r1, [fp, #4] + bl FUN_0208B360 + str r0, [r7] + mov r8, #0 +_0230B11C: + ldr sb, [sp, #0x84] + mov r0, sl + str r5, [sp] + ldr r1, [r6, #8] + add r2, sp, #0x84 + mov r3, r4 + bl ov00_0230BB58 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, _0230B4D4 @ =0x0231BC18 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0230B170 + add r0, r7, #4 + mov r1, r5 + mov r2, #0x15 + bl ov00_0230B930 + b _0230B1A0 +_0230B170: + ldr r1, _0230B4BC @ =0x0231BCBC + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + beq _0230B198 + ldr r1, _0230B4CC @ =0x0231BCDC + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0230B1A0 +_0230B198: + str sb, [sp, #0x84] + mov r8, #1 +_0230B1A0: + cmp r8, #0 + beq _0230B11C + b _0230B1DC +_0230B1AC: + ldr r2, _0230B4D8 @ =0x0231BC44 + mov r0, sl + mov r1, #1 + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230B1DC: + ldr r0, [sp, #0x28] + cmp r0, #0 + beq _0230B034 + ldr r1, [sp, #0x1c] + add r2, sp, #0x64 + str r1, [sp] + mov r1, #0xd + str r1, [sp, #4] + mov r0, sl + mov r3, fp + ldm r2, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + beq _0230B460 + add sp, sp, #0xcc + add sp, sp, #0x400 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230B220: + cmp r0, #8 + bne _0230B460 + ldr r0, [sp, #0x1c] + ldr r1, [r0, #0xc] + ldr r0, [r0, #0x10] + str r1, [sp, #0x6c] + str r0, [sp, #0x70] + cmp r1, #0 + beq _0230B460 + mov r0, #0xc + mov r7, #0 + bl ov00_022F5AE4 + movs r8, r0 + bne _0230B274 + ldr r1, _0230B4D0 @ =0x0231B95C + mov r0, sl + bl ov00_0230BCCC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230B274: + mov r1, r7 + str r1, [r8] + str r1, [r8, #4] + add r0, sp, #0xc9 + str r1, [r8, #8] + str r0, [sp] + add r3, sp, #0x200 + ldr r1, [r6, #8] + add r2, sp, #0x84 + add r3, r3, #0xc9 + mov r0, sl + bl ov00_0230BB58 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, sp, #0x200 + ldr r1, _0230B4DC @ =0x0231BCE4 + add r0, r0, #0xc9 + bl FUN_0208982C + cmp r0, #0 + beq _0230B2FC + ldr r2, _0230B4D8 @ =0x0231BC44 + mov r0, sl + mov r1, #1 + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230B2FC: + add r0, sp, #0xc9 + bl FUN_0208B360 + str r0, [r8, #4] + lsl r0, r0, #2 + bl ov00_022F5AE4 + str r0, [r8, #8] + cmp r0, #0 + bne _0230B338 + ldr r1, _0230B4D0 @ =0x0231B95C + mov r0, sl + bl ov00_0230BCCC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230B338: + add r4, sp, #0x200 + mov sb, r7 + add r4, r4, #0xc9 + add r5, sp, #0xc9 + add fp, sp, #0x84 +_0230B34C: + str r5, [sp] + ldr r1, [r6, #8] + mov r0, sl + mov r2, fp + mov r3, r4 + bl ov00_0230BB58 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, _0230B4E0 @ =0x0231BC10 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0230B3D8 + mov r0, #0x15 + bl ov00_022F5AE4 + ldr r1, [r8, #8] + str r0, [r1, r7, lsl #2] + ldr r0, [r8, #8] + ldr r0, [r0, r7, lsl #2] + cmp r0, #0 + bne _0230B3C4 + ldr r1, _0230B4D0 @ =0x0231B95C + mov r0, sl + bl ov00_0230BCCC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230B3C4: + mov r1, r5 + mov r2, #0x15 + bl ov00_0230B930 + add r7, r7, #1 + b _0230B424 +_0230B3D8: + ldr r1, _0230B4E4 @ =0x0231BCE8 + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + streq r7, [r8, #4] + moveq sb, #1 + beq _0230B424 + ldr r2, _0230B4D8 @ =0x0231BC44 + mov r0, sl + mov r1, #1 + bl ov00_0230BCA8 + mov r0, sl + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0xcc + add sp, sp, #0x400 + mov r0, #3 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230B424: + cmp sb, #0 + beq _0230B34C + ldr r1, [sp, #0x1c] + add r2, sp, #0x6c + str r1, [sp] + mov r1, #9 + str r1, [sp, #4] + mov r0, sl + mov r3, r8 + ldm r2, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + addne sp, sp, #0xcc + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230B460: + mov r0, #1 + str r0, [r6, #0x144] + mov r4, #0 +_0230B46C: + cmp r4, #0 + beq _0230B47C + mov r0, #0xa + bl ov00_02079B14 +_0230B47C: + cmp r4, #0 + bne _02309440 + mov r0, #0 + add sp, sp, #0xcc + add sp, sp, #0x400 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0230B494: .4byte 0x0231BC74 +_0230B498: .4byte 0x0231BC7C +_0230B49C: .4byte 0x0231BC84 +_0230B4A0: .4byte 0x0231BC88 +_0230B4A4: .4byte 0x0231BC90 +_0230B4A8: .4byte 0x0231BC9C +_0230B4AC: .4byte 0x0231BCA0 +_0230B4B0: .4byte 0x0231BCA8 +_0230B4B4: .4byte 0x0231BCAC +_0230B4B8: .4byte 0x0231BCB4 +_0230B4BC: .4byte 0x0231BCBC +_0230B4C0: .4byte 0x0231BCC0 +_0230B4C4: .4byte 0x0231BCC8 +_0230B4C8: .4byte 0x0231BCD0 +_0230B4CC: .4byte 0x0231BCDC +_0230B4D0: .4byte 0x0231B95C +_0230B4D4: .4byte 0x0231BC18 +_0230B4D8: .4byte 0x0231BC44 +_0230B4DC: .4byte 0x0231BCE4 +_0230B4E0: .4byte 0x0231BC10 +_0230B4E4: .4byte 0x0231BCE8 + arm_func_end ov00_023093B4 + + arm_func_start ov00_0230B4E8 +ov00_0230B4E8: @ 0x0230B4E8 + push {r4, r5, r6, r7, r8, lr} + mov r7, r0 + ldr r6, [r7] + mov r5, #0 + ldr r0, [r6, #0x238] + cmp r0, #0 + ble _0230B5F4 + lsl r0, r0, #2 + bl ov00_022F5AE4 + movs r4, r0 + bne _0230B528 + ldr r1, _0230B5FC @ =0x0231B95C + mov r0, r7 + bl ov00_0230BCCC + mov r0, #1 + pop {r4, r5, r6, r7, r8, pc} +_0230B528: + ldr r2, [r6, #0x5c4] + cmp r2, #0 + beq _0230B57C + mov r1, #1 +_0230B538: + ldr r0, [r2] + cmp r0, #3 + bne _0230B570 + ldr r0, [r2, #0x14] + cmp r0, #5 + beq _0230B570 + ldr r0, [r2, #4] + ldr r0, [r0, #0x140] + cmp r0, #0 + bne _0230B570 + str r2, [r4, r5, lsl #2] + ldr r0, [r2, #4] + add r5, r5, #1 + str r1, [r0, #0x140] +_0230B570: + ldr r2, [r2, #0x20] + cmp r2, #0 + bne _0230B538 +_0230B57C: + cmp r5, #0 + mov r6, #0 + ble _0230B5AC +_0230B588: + ldr r1, [r4, r6, lsl #2] + mov r0, r7 + bl ov00_023093B4 + cmp r0, #0 + ldrne r1, [r4, r6, lsl #2] + add r6, r6, #1 + strne r0, [r1, #0x1c] + cmp r6, r5 + blt _0230B588 +_0230B5AC: + cmp r5, #0 + mov r6, #0 + ble _0230B5EC + mov r8, r6 +_0230B5BC: + ldr r0, [r4, r6, lsl #2] + ldr r0, [r0, #4] + str r8, [r0, #0x140] + ldr r0, [r0, #0x144] + cmp r0, #0 + beq _0230B5E0 + ldr r1, [r4, r6, lsl #2] + mov r0, r7 + bl ov00_0230716C +_0230B5E0: + add r6, r6, #1 + cmp r6, r5 + blt _0230B5BC +_0230B5EC: + mov r0, r4 + bl ov00_022F5B14 +_0230B5F4: + mov r0, #0 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0230B5FC: .4byte 0x0231B95C + arm_func_end ov00_0230B4E8 + + arm_func_start ov00_0230B600 +ov00_0230B600: @ 0x0230B600 + push {r4, r5, r6, lr} + sub sp, sp, #0x20 + ldr ip, [sp, #0x30] + mov r5, r2 + mov r6, r0 + cmp ip, #0 + ldreq r0, _0230B69C @ =0x0231BCF0 + mov lr, r1 + mov r4, r3 + streq r0, [sp, #0x30] + mov r0, r6 + mov r1, r5 + mov r3, lr + mov r2, #0xc9 + bl ov00_0230834C + cmp r0, #0 + addne sp, sp, #0x20 + popne {r4, r5, r6, pc} + ldr r1, _0230B6A0 @ =0x0231BCF4 + add r0, sp, #0 + mov r3, r4 + mov r2, #1 + bl FUN_020790DC + add r2, sp, #0 + mov r0, r6 + mov r1, r5 + bl ov00_02302884 + cmp r0, #0 + addne sp, sp, #0x20 + popne {r4, r5, r6, pc} + ldr r2, [sp, #0x30] + mov r0, r6 + mov r1, r5 + mvn r3, #0 + bl ov00_023083A8 + cmp r0, #0 + moveq r0, #0 + add sp, sp, #0x20 + pop {r4, r5, r6, pc} + .align 2, 0 +_0230B69C: .4byte 0x0231BCF0 +_0230B6A0: .4byte 0x0231BCF4 + arm_func_end ov00_0230B600 + + arm_func_start ov00_0230B6A4 +ov00_0230B6A4: @ 0x0230B6A4 + push {r3, r4, r5, lr} + sub sp, sp, #0x50 + mov r4, r1 + mov r5, r0 + mov r0, r3 + ldr r1, _0230B720 @ =0x0231BD0C + add r2, sp, #0x10 + mov r3, #0x40 + bl ov00_0230BA28 + cmp r0, #0 + addeq sp, sp, #0x50 + popeq {r3, r4, r5, pc} + ldr r1, _0230B724 @ =0x0231BD14 + add ip, sp, #0xc + add r0, sp, #0x10 + add r2, sp, #4 + add r3, sp, #8 + str ip, [sp] + bl FUN_02085338 + cmp r0, #3 + addne sp, sp, #0x50 + popne {r3, r4, r5, pc} + mov ip, #0 + add r1, sp, #4 + mov r0, r5 + mov r2, r4 + mov r3, #2 + str ip, [sp] + bl ov00_0230B600 + add sp, sp, #0x50 + pop {r3, r4, r5, pc} + .align 2, 0 +_0230B720: .4byte 0x0231BD0C +_0230B724: .4byte 0x0231BD14 + arm_func_end ov00_0230B6A4 + + arm_func_start ov00_0230B728 +ov00_0230B728: @ 0x0230B728 + push {r4, r5, r6, lr} + sub sp, sp, #0x10 + mov r4, r2 + mov r5, r1 + mov r1, r4 + mov r2, #1 + mov r6, r0 + bl ov00_0230B950 + cmp r0, #0 + addne sp, sp, #0x10 + movne r0, #4 + popne {r4, r5, r6, pc} + ldr r1, _0230B820 @ =0x0231BD20 + mov r0, r4 + mov r2, #4 + bl FUN_02089940 + cmp r0, #0 + beq _0230B79C + ldr r2, _0230B824 @ =0x0231BD28 + mov r0, r6 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r6 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x10 + mov r0, #3 + pop {r4, r5, r6, pc} +_0230B79C: + ldr r1, [r5, #0xc] + ldr r0, [r5, #0x10] + str r1, [sp, #8] + str r0, [sp, #0xc] + cmp r1, #0 + beq _0230B808 + mov r0, #4 + bl ov00_022F5AE4 + movs r3, r0 + bne _0230B7DC + ldr r1, _0230B828 @ =0x0231BD58 + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #0x10 + mov r0, #1 + pop {r4, r5, r6, pc} +_0230B7DC: + mov r2, #0 + str r2, [r3] + str r5, [sp] + add r1, sp, #8 + str r2, [sp, #4] + mov r0, r6 + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + addne sp, sp, #0x10 + popne {r4, r5, r6, pc} +_0230B808: + mov r0, r6 + mov r1, r5 + bl ov00_0230716C + mov r0, #0 + add sp, sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_0230B820: .4byte 0x0231BD20 +_0230B824: .4byte 0x0231BD28 +_0230B828: .4byte 0x0231BD58 + arm_func_end ov00_0230B728 + + arm_func_start ov00_0230B82C +ov00_0230B82C: @ 0x0230B82C + push {r4, r5, r6, lr} + sub sp, sp, #0x10 + mov r4, r2 + mov r5, r1 + mov r1, r4 + mov r2, #1 + mov r6, r0 + bl ov00_0230B950 + cmp r0, #0 + addne sp, sp, #0x10 + movne r0, #4 + popne {r4, r5, r6, pc} + ldr r1, _0230B924 @ =0x0231BD68 + mov r0, r4 + mov r2, #4 + bl FUN_02089940 + cmp r0, #0 + beq _0230B8A0 + ldr r2, _0230B928 @ =0x0231BD28 + mov r0, r6 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r6 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #0x10 + mov r0, #3 + pop {r4, r5, r6, pc} +_0230B8A0: + ldr r1, [r5, #0xc] + ldr r0, [r5, #0x10] + str r1, [sp, #8] + str r0, [sp, #0xc] + cmp r1, #0 + beq _0230B90C + mov r0, #4 + bl ov00_022F5AE4 + movs r3, r0 + bne _0230B8E0 + ldr r1, _0230B92C @ =0x0231BD58 + mov r0, r6 + bl ov00_0230BCCC + add sp, sp, #0x10 + mov r0, #1 + pop {r4, r5, r6, pc} +_0230B8E0: + mov r2, #0 + str r2, [r3] + str r5, [sp] + add r1, sp, #8 + str r2, [sp, #4] + mov r0, r6 + ldm r1, {r1, r2} + bl ov00_02302E74 + cmp r0, #0 + addne sp, sp, #0x10 + popne {r4, r5, r6, pc} +_0230B90C: + mov r0, r6 + mov r1, r5 + bl ov00_0230716C + mov r0, #0 + add sp, sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_0230B924: .4byte 0x0231BD68 +_0230B928: .4byte 0x0231BD28 +_0230B92C: .4byte 0x0231BD58 + arm_func_end ov00_0230B82C + + arm_func_start ov00_0230B930 +ov00_0230B930: @ 0x0230B930 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r2 + bl FUN_0208975C + add r0, r5, r4 + mov r1, #0 + strb r1, [r0, #-1] + pop {r3, r4, r5, pc} + arm_func_end ov00_0230B930 + + arm_func_start ov00_0230B950 +ov00_0230B950: @ 0x0230B950 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x10 + mov r6, r1 + mov r7, r0 + mov r5, r2 + ldr r1, _0230BA18 @ =0x0231BD70 + mov r0, r6 + mov r2, #7 + ldr r4, [r7] + bl FUN_02089940 + cmp r0, #0 + bne _0230BA0C + ldr r1, _0230BA1C @ =0x0231BD78 + add r2, sp, #0 + mov r0, r6 + mov r3, #0x10 + bl ov00_0230BA28 + cmp r0, #0 + beq _0230B9A8 + add r0, sp, #0 + bl FUN_0208B360 + str r0, [r4, #0x5b8] +_0230B9A8: + ldr r1, _0230BA20 @ =0x0231BD80 + mov r0, r6 + mov r2, r4 + mov r3, #0x100 + bl ov00_0230BA28 + cmp r0, #0 + moveq r0, #0 + strbeq r0, [r4] + cmp r5, #0 + beq _0230BA00 + ldr r1, _0230BA24 @ =0x0231BD8C + mov r0, r6 + bl FUN_02089A70 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + cmp r0, #0 + movne r2, #1 + moveq r2, #0 + mov r0, r7 + mov r1, #4 + bl ov00_02302DEC +_0230BA00: + add sp, sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0230BA0C: + mov r0, #0 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0230BA18: .4byte 0x0231BD70 +_0230BA1C: .4byte 0x0231BD78 +_0230BA20: .4byte 0x0231BD80 +_0230BA24: .4byte 0x0231BD8C + arm_func_end ov00_0230B950 + + arm_func_start ov00_0230BA28 +ov00_0230BA28: @ 0x0230BA28 + push {r4, r5, r6, r7, r8, lr} + mov r8, r1 + ldrsb r6, [r8] + mov r4, r2 + mov r7, r3 + bl FUN_02089A70 + movs r5, r0 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, pc} + mov r0, r8 + bl FUN_02089678 + add r1, r5, r0 + mov r3, #0 + sub r0, r7, #1 + b _0230BA6C +_0230BA64: + strb r2, [r4, r3] + add r3, r3, #1 +_0230BA6C: + cmp r3, r0 + bge _0230BA84 + ldrsb r2, [r1, r3] + cmp r2, #0 + cmpne r2, r6 + bne _0230BA64 +_0230BA84: + mov r0, #0 + strb r0, [r4, r3] + mov r0, #1 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_0230BA28 + + arm_func_start ov00_0230BA94 +ov00_0230BA94: @ 0x0230BA94 + push {r3, r4, r5, lr} + sub sp, sp, #8 + mov ip, #0 + mov r4, r2 + mov r5, r0 + mov r0, r1 + add r2, sp, #4 + add r3, sp, #0 + mov r1, ip + str ip, [sp, #4] + str ip, [sp] + bl ov00_022F51A4 + mvn r1, #0 + cmp r0, r1 + bne _0230BAFC + ldr r2, _0230BB54 @ =0x0231BD94 + mov r0, r5 + mov r1, #5 + bl ov00_0230BCA8 + mov r0, r5 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + add sp, sp, #8 + mov r0, #3 + pop {r3, r4, r5, pc} +_0230BAFC: + cmp r0, #0 + ble _0230BB44 + ldr r0, [sp] + cmp r0, #0 + beq _0230BB24 + mov r0, #4 + str r0, [r4] + add sp, sp, #8 + mov r0, #0 + pop {r3, r4, r5, pc} +_0230BB24: + ldr r0, [sp, #4] + cmp r0, #0 + beq _0230BB44 + mov r0, #3 + str r0, [r4] + add sp, sp, #8 + mov r0, #0 + pop {r3, r4, r5, pc} +_0230BB44: + mov r0, #0 + str r0, [r4] + add sp, sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0230BB54: .4byte 0x0231BD94 + arm_func_end ov00_0230BA94 + + arm_func_start ov00_0230BB58 +ov00_0230BB58: @ 0x0230BB58 + push {r4, r5, r6, lr} + ldr ip, [r2] + mov r4, r0 + ldrsb lr, [r1, ip] + add r6, r1, ip + ldr ip, [sp, #0x10] + cmp lr, #0x5c + beq _0230BB9C + ldr r2, _0230BCA0 @ =0x0231BDCC + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r4 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + mov r0, #3 + pop {r4, r5, r6, pc} +_0230BB9C: + ldrsb lr, [r6, #1] + add r1, r6, #2 + mov r5, #0 + cmp lr, #0x5c + beq _0230BC28 + ldr r0, _0230BCA4 @ =0x000001FF +_0230BBB4: + cmp lr, #0 + bne _0230BBE4 + ldr r2, _0230BCA0 @ =0x0231BDCC + mov r0, r4 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r4 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + mov r0, #3 + pop {r4, r5, r6, pc} +_0230BBE4: + cmp r5, r0 + bne _0230BC14 + ldr r2, _0230BCA0 @ =0x0231BDCC + mov r0, r4 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r4 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + mov r0, #3 + pop {r4, r5, r6, pc} +_0230BC14: + strb lr, [r3], #1 + ldrsb lr, [r1], #1 + add r5, r5, #1 + cmp lr, #0x5c + bne _0230BBB4 +_0230BC28: + mov r5, #0 + strb r5, [r3] + ldr r0, _0230BCA4 @ =0x000001FF + b _0230BC70 +_0230BC38: + cmp r5, r0 + bne _0230BC68 + ldr r2, _0230BCA0 @ =0x0231BDCC + mov r0, r4 + mov r1, #1 + bl ov00_0230BCA8 + mov r0, r4 + mov r1, #3 + mov r2, #1 + bl ov00_02302DEC + mov r0, #3 + pop {r4, r5, r6, pc} +_0230BC68: + strb r3, [ip], #1 + add r5, r5, #1 +_0230BC70: + ldrsb r3, [r1], #1 + cmp r3, #0x5c + cmpne r3, #0 + bne _0230BC38 + mov r0, #0 + strb r0, [ip] + sub r1, r1, r6 + ldr r3, [r2] + sub r1, r1, #1 + add r1, r3, r1 + str r1, [r2] + pop {r4, r5, r6, pc} + .align 2, 0 +_0230BCA0: .4byte 0x0231BDCC +_0230BCA4: .4byte 0x000001FF + arm_func_end ov00_0230BB58 + + arm_func_start ov00_0230BCA8 +ov00_0230BCA8: @ 0x0230BCA8 + push {r3, r4, r5, lr} + ldr r4, [r0] + mov r5, r1 + mov r1, r2 + mov r0, r4 + mov r2, #0x100 + bl ov00_0230B930 + str r5, [r4, #0x5b8] + pop {r3, r4, r5, pc} + arm_func_end ov00_0230BCA8 + + arm_func_start ov00_0230BCCC +ov00_0230BCCC: @ 0x0230BCCC + ldr ip, _0230BCDC @ =ov00_0230B930 + ldr r0, [r0] + mov r2, #0x100 + bx ip + .align 2, 0 +_0230BCDC: .4byte ov00_0230B930 + arm_func_end ov00_0230BCCC + + arm_func_start ov00_0230BCE0 +ov00_0230BCE0: @ 0x0230BCE0 + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x20 + mov sl, r0 + mov sb, r1 + bl FUN_02089678 + mov r7, r0 + ldr r0, _0230BD64 @ =0x79707367 + bl ov00_022F5664 + cmp r7, #0 + mov r6, #0 + bls _0230BD40 + add r8, sp, #0 + mov r5, r6 + mov r4, #0xff +_0230BD18: + mov r0, r5 + mov r1, r4 + bl ov00_022F5680 + ldrsb r1, [sl, r6] + lsl r0, r0, #0x18 + add r6, r6, #1 + eor r0, r1, r0, asr #24 + cmp r6, r7 + strb r0, [r8], #1 + blo _0230BD18 +_0230BD40: + add r0, sp, #0 + mov r4, #0 + mov r1, sb + mov r2, r7 + mov r3, #1 + strb r4, [r0, r6] + bl ov00_022F598C + add sp, sp, #0x20 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0230BD64: .4byte 0x79707367 + arm_func_end ov00_0230BCE0 + + arm_func_start ov00_0230BD68 +ov00_0230BD68: @ 0x0230BD68 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x14 + movs r7, r0 + ldreq r0, _0230BDD8 @ =0x023289D8 + mov r6, r1 + ldreq r7, [r0] + mov r0, r6 + mov r5, r2 + mov r4, r3 + bl ov00_022F5514 + mov r3, #0 + mov r2, #1 + str r0, [sp] + add r0, sp, #0 + mov r1, r4 + str r5, [sp, #4] + str r3, [sp, #0xc] + str r2, [sp, #8] + bl ov00_0230C1D0 + ldr r0, [r7] + add r1, sp, #0 + bl ov00_022F4CD0 + mov r0, r7 + mov r1, r6 + bl ov00_0230C26C + bl ov00_0230C24C + add sp, sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0230BDD8: .4byte 0x023289D8 + arm_func_end ov00_0230BD68 + + arm_func_start ov00_0230BDDC +ov00_0230BDDC: @ 0x0230BDDC + push {r4, lr} + mov r4, r2 + bl ov00_0230C26C + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} + mov r2, #0 + mov r1, r4 + str r2, [r0, #8] + bl ov00_0230C1D0 + pop {r4, pc} + arm_func_end ov00_0230BDDC + + arm_func_start ov00_0230BE08 +ov00_0230BE08: @ 0x0230BE08 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + mov r6, r1 + mov r5, r2 + bl ov00_0230C26C + movs r4, r0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldr r1, [r4, #4] + cmp r1, #0 + bne _0230BE58 + bl ov00_0230C24C + ldr r1, [r5] + ldr r0, [r0] + add r0, r1, r0 + bl ov00_0230C16C + mov r1, r0 + mov r0, r4 + bl ov00_0230C1D0 + pop {r3, r4, r5, r6, r7, pc} +_0230BE58: + cmp r1, #1 + bne _0230BE88 + bl ov00_0230C24C + mov r3, r0 + ldm r5, {r0, r1} + ldm r3, {r2, r3} + bl FUN_0208DEC8 + bl ov00_0230C184 + mov r1, r0 + mov r0, r4 + bl ov00_0230C1D0 + pop {r3, r4, r5, r6, r7, pc} +_0230BE88: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl ov00_0230C024 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_0230BE08 + + arm_func_start ov00_0230BE9C +ov00_0230BE9C: @ 0x0230BE9C + push {r3, r4, r5, lr} + mov r5, r2 + bl ov00_0230C26C + movs r4, r0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldr r1, [r4, #4] + cmp r1, #0 + bne _0230BEE4 + bl ov00_0230C24C + ldr r1, [r0] + ldr r0, [r5] + sub r0, r1, r0 + bl ov00_0230C16C + mov r1, r0 + mov r0, r4 + bl ov00_0230C1D0 + pop {r3, r4, r5, pc} +_0230BEE4: + cmp r1, #1 + bne _0230BF18 + bl ov00_0230C24C + ldr ip, [r0] + ldr r1, [r0, #4] + mov r0, ip + ldm r5, {r2, r3} + bl FUN_0208E904 + bl ov00_0230C184 + mov r1, r0 + mov r0, r4 + bl ov00_0230C1D0 + pop {r3, r4, r5, pc} +_0230BF18: + bl ov00_0230C24C + pop {r3, r4, r5, pc} + arm_func_end ov00_0230BE9C + + arm_func_start ov00_0230BF20 +ov00_0230BF20: @ 0x0230BF20 + push {r3, r4, r5, lr} + mov r5, r2 + bl ov00_0230C26C + movs r4, r0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldr r1, [r4, #4] + cmp r1, #0 + bne _0230BF68 + bl ov00_0230C24C + ldr r1, [r5] + ldr r0, [r0] + mul r0, r1, r0 + bl ov00_0230C16C + mov r1, r0 + mov r0, r4 + bl ov00_0230C1D0 + pop {r3, r4, r5, pc} +_0230BF68: + cmp r1, #1 + bne _0230BF98 + bl ov00_0230C24C + mov r3, r0 + ldm r5, {r0, r1} + ldm r3, {r2, r3} + bl FUN_0208E3EC + bl ov00_0230C184 + mov r1, r0 + mov r0, r4 + bl ov00_0230C1D0 + pop {r3, r4, r5, pc} +_0230BF98: + bl ov00_0230C24C + pop {r3, r4, r5, pc} + arm_func_end ov00_0230BF20 + + arm_func_start ov00_0230BFA0 +ov00_0230BFA0: @ 0x0230BFA0 + push {r3, r4, r5, lr} + mov r5, r2 + bl ov00_0230C26C + movs r4, r0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldr r1, [r4, #4] + cmp r1, #0 + bne _0230BFE8 + bl ov00_0230C24C + ldr r0, [r0] + ldr r1, [r5] + bl FUN_0208FEA4 + bl ov00_0230C16C + mov r1, r0 + mov r0, r4 + bl ov00_0230C1D0 + pop {r3, r4, r5, pc} +_0230BFE8: + cmp r1, #1 + bne _0230C01C + bl ov00_0230C24C + ldr ip, [r0] + ldr r1, [r0, #4] + mov r0, ip + ldm r5, {r2, r3} + bl FUN_020902AC + bl ov00_0230C184 + mov r1, r0 + mov r0, r4 + bl ov00_0230C1D0 + pop {r3, r4, r5, pc} +_0230C01C: + bl ov00_0230C24C + pop {r3, r4, r5, pc} + arm_func_end ov00_0230BFA0 + + arm_func_start ov00_0230C024 +ov00_0230C024: @ 0x0230C024 + push {r3, r4, r5, r6, r7, lr} + mov r7, r2 + bl ov00_0230C26C + movs r6, r0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + bl ov00_0230C24C + mov r5, r0 + bl FUN_02089678 + mov r4, r0 + mov r0, r7 + bl FUN_02089678 + add r0, r4, r0 + add r0, r0, #1 + bl ov00_022F5AE4 + mov r4, r0 + mov r1, r5 + bl FUN_02089694 + mov r0, r4 + mov r1, r7 + bl FUN_020897AC + mov r0, r6 + mov r1, r4 + bl ov00_0230C1D0 + mov r0, r4 + bl ov00_022F5B14 + mov r0, r6 + bl ov00_0230C24C + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_0230C024 + + arm_func_start ov00_0230C098 +ov00_0230C098: @ 0x0230C098 + push {r3, r4, r5, r6, r7, lr} + mov r7, r2 + bl ov00_0230C26C + movs r4, r0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldr r1, [r4, #4] + cmp r1, #0 + bne _0230C0F0 + bl ov00_0230C24C + ldr r1, [r4, #8] + add r1, r1, #1 + str r1, [r4, #8] + ldr r2, [r7] + ldr r0, [r0] + mla r0, r1, r0, r2 + bl FUN_0208FEA4 + bl ov00_0230C16C + mov r1, r0 + mov r0, r4 + bl ov00_0230C1D0 + pop {r3, r4, r5, r6, r7, pc} +_0230C0F0: + cmp r1, #1 + bne _0230C164 + bl ov00_0230C24C + ldr r1, [r4, #8] + mov r5, r0 + add r6, r1, #1 + mov r0, r6 + str r6, [r4, #8] + bl FUN_0208E370 + ldm r5, {r2, r3} + bl FUN_0208E3EC + mov r2, r0 + mov r3, r1 + ldm r7, {r0, r1} + bl FUN_0208DEC8 + mov r5, r0 + mov r0, r6 + mov r6, r1 + bl FUN_0208E370 + mov r2, r0 + mov r3, r1 + mov r0, r5 + mov r1, r6 + bl FUN_020902AC + bl ov00_0230C184 + mov r1, r0 + mov r0, r4 + bl ov00_0230C1D0 + pop {r3, r4, r5, r6, r7, pc} +_0230C164: + bl ov00_0230C24C + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_0230C098 + + arm_func_start ov00_0230C16C +ov00_0230C16C: @ 0x0230C16C + ldr r1, _0230C17C @ =0x023289D8 + str r0, [r1, #4] + ldr r0, _0230C180 @ =0x023289DC + bx lr + .align 2, 0 +_0230C17C: .4byte 0x023289D8 +_0230C180: .4byte 0x023289DC + arm_func_end ov00_0230C16C + + arm_func_start ov00_0230C184 +ov00_0230C184: @ 0x0230C184 + ldr r2, _0230C198 @ =0x023289D8 + str r0, [r2, #8] + ldr r0, _0230C19C @ =0x023289E0 + str r1, [r2, #0xc] + bx lr + .align 2, 0 +_0230C198: .4byte 0x023289D8 +_0230C19C: .4byte 0x023289E0 + arm_func_end ov00_0230C184 + + arm_func_start ov00_0230C1A0 +ov00_0230C1A0: @ 0x0230C1A0 + ldrsb r3, [r0] + mov r2, r0 + cmp r3, #0 + beq _0230C1C8 + mov r1, #0x2f +_0230C1B4: + cmp r3, #0x5c + strbeq r1, [r0] + ldrsb r3, [r0, #1]! + cmp r3, #0 + bne _0230C1B4 +_0230C1C8: + mov r0, r2 + bx lr + arm_func_end ov00_0230C1A0 + + arm_func_start ov00_0230C1D0 +ov00_0230C1D0: @ 0x0230C1D0 + push {r3, r4, r5, lr} + mov r5, r0 + ldr r0, [r5, #4] + mov r4, r1 + cmp r0, #0 + ldreq r0, [r4] + streq r0, [r5, #0xc] + beq _0230C240 + cmp r0, #1 + bne _0230C20C + ldr r1, [r4] + ldr r0, [r4, #4] + str r1, [r5, #0xc] + str r0, [r5, #0x10] + b _0230C240 +_0230C20C: + cmp r0, #2 + bne _0230C240 + ldr r0, [r5, #0xc] + cmp r0, #0 + beq _0230C224 + bl ov00_022F5B14 +_0230C224: + cmp r4, #0 + moveq r0, #0 + beq _0230C23C + mov r0, r4 + bl ov00_022F5514 + bl ov00_0230C1A0 +_0230C23C: + str r0, [r5, #0xc] +_0230C240: + mov r0, r5 + bl ov00_0230C24C + pop {r3, r4, r5, pc} + arm_func_end ov00_0230C1D0 + + arm_func_start ov00_0230C24C +ov00_0230C24C: @ 0x0230C24C + cmp r0, #0 + moveq r0, #0 + bxeq lr + ldr r1, [r0, #4] + cmp r1, #2 + ldreq r0, [r0, #0xc] + addne r0, r0, #0xc + bx lr + arm_func_end ov00_0230C24C + + arm_func_start ov00_0230C26C +ov00_0230C26C: @ 0x0230C26C + stmdb sp!, {lr} + sub sp, sp, #0x14 + cmp r0, #0 + ldreq r0, _0230C298 @ =0x023289D8 + str r1, [sp] + ldreq r0, [r0] + add r1, sp, #0 + ldr r0, [r0] + bl ov00_022F4DCC + add sp, sp, #0x14 + ldm sp!, {pc} + .align 2, 0 +_0230C298: .4byte 0x023289D8 + arm_func_end ov00_0230C26C + + arm_func_start ov00_0230C29C +ov00_0230C29C: @ 0x0230C29C + push {r3, lr} + ldr r0, _0230C304 @ =0x0231BDDC + mvn r1, #0 + ldr r0, [r0, #4] + cmp r0, r1 + beq _0230C2C8 + mov r1, #2 + bl ov00_022F4FC8 + ldr r0, _0230C304 @ =0x0231BDDC + ldr r0, [r0, #4] + bl ov00_022F4FB4 +_0230C2C8: + ldr r0, _0230C304 @ =0x0231BDDC + mvn r1, #0 + str r1, [r0, #4] + bl ov00_0230CBD4 + ldr r0, _0230C308 @ =0x023289E8 + ldr r0, [r0, #0x28] + cmp r0, #0 + popeq {r3, pc} + bl ov00_022F5B14 + ldr r0, _0230C308 @ =0x023289E8 + mov r1, #0 + str r1, [r0, #0x28] + str r1, [r0, #0x18] + str r1, [r0, #8] + pop {r3, pc} + .align 2, 0 +_0230C304: .4byte 0x0231BDDC +_0230C308: .4byte 0x023289E8 + arm_func_end ov00_0230C29C + + arm_func_start ov00_0230C30C +ov00_0230C30C: @ 0x0230C30C + ldr r1, _0230C328 @ =0x0231BDDC + mvn r0, #0 + ldr r1, [r1, #4] + cmp r1, r0 + movne r0, #1 + moveq r0, #0 + bx lr + .align 2, 0 +_0230C328: .4byte 0x0231BDDC + arm_func_end ov00_0230C30C + + arm_func_start ov00_0230C32C +ov00_0230C32C: @ 0x0230C32C + push {r4, r5, r6, r7, r8, sb, sl, lr} + ldr r0, _0230C474 @ =0x0231BDDC + mvn r1, #0 + ldr r0, [r0, #4] + cmp r0, r1 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} + ldr r1, _0230C478 @ =0x023289E8 + ldr r1, [r1, #0x2c] + cmp r1, #5 + movne r0, #0 + popne {r4, r5, r6, r7, r8, sb, sl, pc} + bl ov00_022F5320 + cmp r0, #0 + beq _0230C458 + mov r7, #0 + ldr sl, _0230C478 @ =0x023289E8 + ldr sb, _0230C474 @ =0x0231BDDC + mov r8, #0x100 + mov r6, r7 + mov r4, r7 +_0230C380: + ldr r1, [sl, #0x18] + ldr r0, [sl, #8] + sub r0, r1, r0 + cmp r0, #0x80 + bge _0230C3C4 + cmp r1, #0x100 + strlt r8, [sl, #0x18] + lslge r0, r1, #1 + strge r0, [sl, #0x18] + ldr r1, [sl, #0x18] + ldr r0, [sl, #0x28] + add r1, r1, #1 + bl ov00_022F5AFC + str r0, [sl, #0x28] + cmp r0, #0 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} +_0230C3C4: + ldr r5, [sl, #8] + ldr r1, [sl, #0x28] + ldr r2, [sl, #0x18] + ldr r0, [sb, #4] + mov r3, r7 + add r1, r1, r5 + sub r2, r2, r5 + bl ov00_022F5088 + cmp r0, #0 + bgt _0230C3F8 + bl ov00_0230C29C + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_0230C3F8: + ldr r1, [sl, #8] + add r1, r1, r0 + str r1, [sl, #8] + ldr r0, [sl, #0x28] + strb r6, [r0, r1] + ldr r0, [sl, #0x28] + ldr r1, [sl, #8] + bl ov00_0230CA48 + ldr r1, [sl, #8] + mov r5, r0 + cmp r5, r1 + streq r4, [sl, #8] + beq _0230C448 + ldr r0, [sl, #0x28] + sub r2, r1, r5 + add r1, r0, r5 + bl FUN_020872BC + ldr r0, [sl, #8] + sub r0, r0, r5 + str r0, [sl, #8] +_0230C448: + ldr r0, [sb, #4] + bl ov00_022F5320 + cmp r0, #0 + bne _0230C380 +_0230C458: + ldr r1, _0230C474 @ =0x0231BDDC + mvn r0, #0 + ldr r1, [r1, #4] + cmp r1, r0 + moveq r0, #0 + movne r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0230C474: .4byte 0x0231BDDC +_0230C478: .4byte 0x023289E8 + arm_func_end ov00_0230C32C + + arm_func_start ov00_0230C47C +ov00_0230C47C: @ 0x0230C47C + push {r4, lr} + ldr r2, _0230C4C0 @ =0x0231BDDC + cmp r1, #0 + ldr r4, [r2] + mov lr, #0 + pople {r4, pc} +_0230C494: + ldrsb ip, [r0, lr] + ldrsb r3, [r4] + eor r3, ip, r3 + strb r3, [r0, lr] + ldrsb r3, [r4, #1]! + add lr, lr, #1 + cmp r3, #0 + ldreq r4, [r2] + cmp lr, r1 + blt _0230C494 + pop {r4, pc} + .align 2, 0 +_0230C4C0: .4byte 0x0231BDDC + arm_func_end ov00_0230C47C + + arm_func_start ov00_0230C4C4 +ov00_0230C4C4: @ 0x0230C4C4 + push {r4, lr} + sub sp, sp, #0x100 + ldr lr, _0230C588 @ =0x02318660 + add ip, sp, #0 + mov r4, r0 + mov r3, #0x80 +_0230C4DC: + ldrb r2, [lr] + ldrb r0, [lr, #1] + add lr, lr, #2 + strb r2, [ip] + strb r0, [ip, #1] + add ip, ip, #2 + subs r3, r3, #1 + bne _0230C4DC + ldr r2, _0230C58C @ =0x023289E8 + add r0, sp, #0 + ldr r3, [r2, #0x20] + eor r3, r3, #1 + str r3, [r2, #0x20] + bl FUN_020897AC + ldr r1, _0230C590 @ =0x0231BE4C + add r0, sp, #0 + bl FUN_020897AC + add r1, sp, #0 + mov r0, r4 + bl FUN_02089A70 + movs r4, r0 + addeq sp, sp, #0x100 + moveq r0, #0 + popeq {r4, pc} + add r0, sp, #0 + bl FUN_02089678 + ldr r1, _0230C58C @ =0x023289E8 + ldr r2, _0230C594 @ =0x02328C18 + ldr r1, [r1, #0x20] + add r3, r4, r0 + add r0, r2, r1, lsl #8 + mov r2, r0 + b _0230C568 +_0230C560: + ldrsb r1, [r3], #1 + strb r1, [r2], #1 +_0230C568: + ldrsb r1, [r3] + cmp r1, #0 + cmpne r1, #0x5c + bne _0230C560 + mov r1, #0 + strb r1, [r2] + add sp, sp, #0x100 + pop {r4, pc} + .align 2, 0 +_0230C588: .4byte 0x02318660 +_0230C58C: .4byte 0x023289E8 +_0230C590: .4byte 0x0231BE4C +_0230C594: .4byte 0x02328C18 + arm_func_end ov00_0230C4C4 + + arm_func_start ov00_0230C598 +ov00_0230C598: @ 0x0230C598 + push {r3, lr} + bl ov00_0230C4C4 + cmp r0, #0 + ldreq r0, _0230C5AC @ =0x0231BE48 + pop {r3, pc} + .align 2, 0 +_0230C5AC: .4byte 0x0231BE48 + arm_func_end ov00_0230C598 + + arm_func_start ov00_022F5320 +ov00_022F5320: @ 0x0230C5B0 + ldr ip, _0230C5B8 @ =ov00_022F5320 + bx ip + .align 2, 0 +_0230C5B8: .4byte ov00_022F5320 + arm_func_end ov00_022F5320 + + arm_func_start ov00_0230C5BC +ov00_0230C5BC: @ 0x0230C5BC + sub r3, r1, #6 + mov r2, r0 + cmp r3, #0 + ble _0230C61C +_0230C5CC: + ldrsb r1, [r2] + cmp r1, #0x5c + ldrsbeq r1, [r2, #1] + cmpeq r1, #0x66 + ldrsbeq r1, [r2, #2] + cmpeq r1, #0x69 + ldrsbeq r1, [r2, #3] + cmpeq r1, #0x6e + ldrsbeq r1, [r2, #4] + cmpeq r1, #0x61 + ldrsbeq r1, [r2, #5] + cmpeq r1, #0x6c + ldrsbeq r1, [r2, #6] + cmpeq r1, #0x5c + moveq r0, r2 + bxeq lr + add r2, r2, #1 + sub r1, r2, r0 + cmp r1, r3 + blt _0230C5CC +_0230C61C: + mov r0, #0 + bx lr + arm_func_end ov00_0230C5BC + + arm_func_start ov00_0230C624 +ov00_0230C624: @ 0x0230C624 + push {r4, r5, r6, r7, r8, lr} + ldr r3, _0230C6A4 @ =0x023289E8 + mov r7, r0 + ldr r0, [r3, #0x14] + mov r6, r1 + cmp r0, #0 + mov r5, r2 + mvneq r0, #0 + popeq {r4, r5, r6, r7, r8, pc} + mov r4, #0 + bl ov00_022F47A0 + cmp r0, #0 + ble _0230C69C + ldr r8, _0230C6A4 @ =0x023289E8 +_0230C65C: + ldr r0, [r8, #0x14] + mov r1, r4 + bl ov00_022F47A8 + ldr r1, [r0] + cmp r1, r7 + ldreq r1, [r0, #4] + cmpeq r1, r6 + ldreq r0, [r0, #8] + cmpeq r0, r5 + moveq r0, r4 + popeq {r4, r5, r6, r7, r8, pc} + ldr r0, [r8, #0x14] + add r4, r4, #1 + bl ov00_022F47A0 + cmp r4, r0 + blt _0230C65C +_0230C69C: + mvn r0, #0 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0230C6A4: .4byte 0x023289E8 + arm_func_end ov00_0230C624 + + arm_func_start ov00_0230C6A8 +ov00_0230C6A8: @ 0x0230C6A8 + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + ldr r1, _0230C748 @ =0x0231BE50 + mov r6, r0 + bl ov00_0230C598 + bl FUN_0208B360 + mov r5, r0 + ldr r1, _0230C74C @ =0x0231BE58 + mov r0, r6 + bl ov00_0230C598 + bl FUN_0208B360 + mov r4, r0 + ldr r1, _0230C750 @ =0x0231BE5C + mov r0, r6 + bl ov00_0230C598 + mov r6, r0 + mov r0, #0 + mov r1, r4 + mov r2, r0 + bl ov00_0230C624 + mov r4, r0 + mvn r0, #0 + cmp r4, r0 + addeq sp, sp, #4 + popeq {r3, r4, r5, r6, pc} + ldr r0, _0230C754 @ =0x023289E8 + mov r1, r4 + ldr r0, [r0, #0x14] + bl ov00_022F47A8 + cmp r5, #0 + movgt r1, #1 + str r5, [r0, #8] + mov r2, #0 + movle r1, #0 + mov r0, r4 + mov r3, r6 + str r2, [sp] + bl ov00_0230CAD0 + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0230C748: .4byte 0x0231BE50 +_0230C74C: .4byte 0x0231BE58 +_0230C750: .4byte 0x0231BE5C +_0230C754: .4byte 0x023289E8 + arm_func_end ov00_0230C6A8 + + arm_func_start ov00_0230C758 +ov00_0230C758: @ 0x0230C758 + push {r3, r4, r5, lr} + ldr r1, _0230C7D8 @ =0x0231BE64 + mov r5, r0 + bl ov00_0230C598 + bl FUN_0208B360 + mov r4, r0 + ldr r1, _0230C7DC @ =0x0231BE58 + mov r0, r5 + bl ov00_0230C598 + bl FUN_0208B360 + mov r1, r0 + mov r0, #3 + mov r2, #0 + bl ov00_0230C624 + mov r5, r0 + mvn r0, #0 + cmp r5, r0 + popeq {r3, r4, r5, pc} + ldr r0, _0230C7E0 @ =0x023289E8 + mov r1, r5 + ldr r0, [r0, #0x14] + bl ov00_022F47A8 + cmp r4, #0 + movgt r1, #1 + mov r2, #0 + str r4, [r0, #8] + movle r1, #0 + mov r0, r5 + mov r3, r2 + str r2, [sp] + bl ov00_0230CAD0 + pop {r3, r4, r5, pc} + .align 2, 0 +_0230C7D8: .4byte 0x0231BE64 +_0230C7DC: .4byte 0x0231BE58 +_0230C7E0: .4byte 0x023289E8 + arm_func_end ov00_0230C758 + + arm_func_start ov00_0230C7E4 +ov00_0230C7E4: @ 0x0230C7E4 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #4 + ldr r1, _0230C8AC @ =0x0231BE6C + mov r4, r0 + bl ov00_0230C598 + bl FUN_0208B360 + mov r7, r0 + ldr r1, _0230C8B0 @ =0x0231BE58 + mov r0, r4 + bl ov00_0230C598 + bl FUN_0208B360 + mov r6, r0 + ldr r1, _0230C8B4 @ =0x0231BE74 + mov r0, r4 + bl ov00_0230C598 + bl FUN_0208B360 + mov r5, r0 + ldr r1, _0230C8B8 @ =0x0231BE78 + mov r0, r4 + bl ov00_0230C598 + bl FUN_0208B360 + mov r8, r0 + mov r1, r6 + mov r2, r5 + mov r0, #1 + bl ov00_0230C624 + mov r5, r0 + mvn r0, #0 + cmp r5, r0 + addeq sp, sp, #4 + popeq {r3, r4, r5, r6, r7, r8, pc} + ldr r1, _0230C8BC @ =0x0231BE7C + mov r0, r4 + bl ov00_0230C598 + bl FUN_0208B360 + mov r6, r0 + ldr r1, _0230C8C0 @ =0x0231BE84 + mov r0, r4 + bl FUN_02089A70 + cmp r0, #0 + ldreq r3, _0230C8C4 @ =0x0231BE48 + moveq r6, #0 + addne r3, r0, #6 + mov r0, r5 + mov r1, r7 + mov r2, r8 + str r6, [sp] + bl ov00_0230CAD0 + add sp, sp, #4 + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0230C8AC: .4byte 0x0231BE6C +_0230C8B0: .4byte 0x0231BE58 +_0230C8B4: .4byte 0x0231BE74 +_0230C8B8: .4byte 0x0231BE78 +_0230C8BC: .4byte 0x0231BE7C +_0230C8C0: .4byte 0x0231BE84 +_0230C8C4: .4byte 0x0231BE48 + arm_func_end ov00_0230C7E4 + + arm_func_start ov00_0230C8C8 +ov00_0230C8C8: @ 0x0230C8C8 + push {r3, r4, r5, r6, r7, lr} + ldr r1, _0230C950 @ =0x0231BE8C + mov r7, r0 + bl ov00_0230C598 + bl FUN_0208B360 + mov r6, r0 + ldr r1, _0230C954 @ =0x0231BE74 + mov r0, r7 + bl ov00_0230C598 + bl FUN_0208B360 + mov r5, r0 + ldr r1, _0230C958 @ =0x0231BE58 + mov r0, r7 + bl ov00_0230C598 + bl FUN_0208B360 + mov r4, r0 + ldr r1, _0230C95C @ =0x0231BE78 + mov r0, r7 + bl ov00_0230C598 + bl FUN_0208B360 + mov r1, r4 + mov r4, r0 + mov r2, r5 + mov r0, #2 + bl ov00_0230C624 + mvn r1, #0 + cmp r0, r1 + popeq {r3, r4, r5, r6, r7, pc} + mov r3, #0 + mov r1, r6 + mov r2, r4 + str r3, [sp] + bl ov00_0230CAD0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0230C950: .4byte 0x0231BE8C +_0230C954: .4byte 0x0231BE74 +_0230C958: .4byte 0x0231BE58 +_0230C95C: .4byte 0x0231BE78 + arm_func_end ov00_0230C8C8 + + arm_func_start ov00_0230C960 +ov00_0230C960: @ 0x0230C960 + push {r3, r4, r5, lr} + mov r4, r1 + ldr r1, _0230CA38 @ =0x0231BE94 + mov r5, r0 + mov r3, #0 + mov r2, #8 + strb r3, [r5, r4] + bl FUN_02089940 + cmp r0, #0 + bne _0230C998 + mov r0, r5 + mov r1, r4 + bl ov00_0230C6A8 + pop {r3, r4, r5, pc} +_0230C998: + ldr r1, _0230CA3C @ =0x0231BEA0 + mov r0, r5 + mov r2, #9 + bl FUN_02089940 + cmp r0, #0 + bne _0230C9C0 + mov r0, r5 + mov r1, r4 + bl ov00_0230C758 + pop {r3, r4, r5, pc} +_0230C9C0: + ldr r1, _0230CA3C @ =0x0231BEA0 + mov r0, r5 + mov r2, #9 + bl FUN_02089940 + cmp r0, #0 + bne _0230C9E8 + mov r0, r5 + mov r1, r4 + bl ov00_0230C758 + pop {r3, r4, r5, pc} +_0230C9E8: + ldr r1, _0230CA40 @ =0x0231BEAC + mov r0, r5 + mov r2, #8 + bl FUN_02089940 + cmp r0, #0 + bne _0230CA10 + mov r0, r5 + mov r1, r4 + bl ov00_0230C7E4 + pop {r3, r4, r5, pc} +_0230CA10: + ldr r1, _0230CA44 @ =0x0231BEB8 + mov r0, r5 + mov r2, #8 + bl FUN_02089940 + cmp r0, #0 + popne {r3, r4, r5, pc} + mov r0, r5 + mov r1, r4 + bl ov00_0230C8C8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0230CA38: .4byte 0x0231BE94 +_0230CA3C: .4byte 0x0231BEA0 +_0230CA40: .4byte 0x0231BEAC +_0230CA44: .4byte 0x0231BEB8 + arm_func_end ov00_0230C960 + + arm_func_start ov00_0230CA48 +ov00_0230CA48: @ 0x0230CA48 + push {r4, r5, r6, r7, r8, sb, sl, lr} + mov sb, r1 + mov sl, r0 + mov r7, sb + bl ov00_0230C5BC + mov r6, r0 + ldr r5, _0230CAC8 @ =0x0231BE28 + ldr r4, _0230CACC @ =0x0231BDDC + b _0230CAB0 +_0230CA6C: + sub r8, r6, sl + mov r0, sl + mov r1, r8 + str r5, [r4] + bl ov00_0230C47C + mov r0, sl + mov r1, r8 + bl ov00_0230C960 + add r0, r8, #7 + sub sb, sb, r0 + cmp sb, #0 + add sl, r6, #7 + ble _0230CAB0 + mov r0, sl + mov r1, sb + bl ov00_0230C5BC + mov r6, r0 +_0230CAB0: + cmp sb, #0 + ble _0230CAC0 + cmp r6, #0 + bne _0230CA6C +_0230CAC0: + sub r0, r7, sb + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0230CAC8: .4byte 0x0231BE28 +_0230CACC: .4byte 0x0231BDDC + arm_func_end ov00_0230CA48 + + arm_func_start ov00_0230CAD0 +ov00_0230CAD0: @ 0x0230CAD0 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x14 + movs r7, r0 + mov r6, r1 + mov r5, r2 + mov r4, r3 + addmi sp, sp, #0x14 + popmi {r4, r5, r6, r7, pc} + ldr r0, _0230CBD0 @ =0x023289E8 + ldr r0, [r0, #0x14] + bl ov00_022F47A0 + cmp r7, r0 + addge sp, sp, #0x14 + popge {r4, r5, r6, r7, pc} + ldr r0, _0230CBD0 @ =0x023289E8 + mov r1, r7 + ldr r0, [r0, #0x14] + bl ov00_022F47A8 + mov r3, r0 + ldr ip, [r3, #0x18] + cmp ip, #0 + beq _0230CBB8 + ldr r0, [r3] + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _0230CBB8 +_0230CB38: @ jump table + b _0230CB48 @ case 0 + b _0230CB64 @ case 1 + b _0230CB8C @ case 2 + b _0230CBA8 @ case 3 +_0230CB48: + ldr r0, [r3, #0x14] + mov r2, r6 + str r0, [sp] + ldmib r3, {r0, r1} + mov r3, r4 + blx ip + b _0230CBB8 +_0230CB64: + str r6, [sp] + str r5, [sp, #4] + ldr r0, [sp, #0x28] + str r4, [sp, #8] + str r0, [sp, #0xc] + ldr r0, [r3, #0x14] + str r0, [sp, #0x10] + ldmib r3, {r0, r1, r2, r3} + blx ip + b _0230CBB8 +_0230CB8C: + str r6, [sp] + str r5, [sp, #4] + ldr r0, [r3, #0x14] + str r0, [sp, #8] + ldmib r3, {r0, r1, r2, r3} + blx ip + b _0230CBB8 +_0230CBA8: + ldmib r3, {r0, r1} + ldr r3, [r3, #0x14] + mov r2, r6 + blx ip +_0230CBB8: + ldr r0, _0230CBD0 @ =0x023289E8 + mov r1, r7 + ldr r0, [r0, #0x14] + bl ov00_022F491C + add sp, sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0230CBD0: .4byte 0x023289E8 + arm_func_end ov00_0230CAD0 + + arm_func_start ov00_0230CBD4 +ov00_0230CBD4: @ 0x0230CBD4 + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x24 + ldr r0, _0230CCB8 @ =0x023289E8 + ldr r0, [r0, #0x14] + cmp r0, #0 + addeq sp, sp, #0x24 + popeq {r4, r5, r6, r7, r8, sb, pc} + bl ov00_022F47A0 + subs r4, r0, #1 + bmi _0230CC98 + ldr r5, _0230CCBC @ =0x023184D0 + add r3, sp, #4 + mov r2, #8 +_0230CC08: + ldrb r1, [r5] + ldrb r0, [r5, #1] + add r5, r5, #2 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + bne _0230CC08 + ldr sb, _0230CCC0 @ =0x0231BE38 + ldr r5, _0230CCC4 @ =0x0231BDDC + add r8, sp, #0x14 + mov r7, #0xf + mov r6, #0 +_0230CC3C: + add ip, sp, #4 + add r3, sp, #0x14 + mov r2, #8 +_0230CC48: + ldrb r1, [ip] + ldrb r0, [ip, #1] + add ip, ip, #2 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + bne _0230CC48 + mov r0, r8 + mov r1, r7 + str sb, [r5] + bl ov00_0230C47C + mov r0, r4 + mov r1, r6 + mov r2, r6 + mov r3, r8 + str r6, [sp] + bl ov00_0230CAD0 + subs r4, r4, #1 + bpl _0230CC3C +_0230CC98: + ldr r0, _0230CCB8 @ =0x023289E8 + ldr r0, [r0, #0x14] + bl ov00_022F4758 + ldr r0, _0230CCB8 @ =0x023289E8 + mov r1, #0 + str r1, [r0, #0x14] + add sp, sp, #0x24 + pop {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0230CCB8: .4byte 0x023289E8 +_0230CCBC: .4byte 0x023184D0 +_0230CCC0: .4byte 0x0231BE38 +_0230CCC4: .4byte 0x0231BDDC + arm_func_end ov00_0230CBD4 + + arm_func_start ov00_0230CCC8 +ov00_0230CCC8: @ 0x0230CCC8 + push {r3, lr} + cmp r0, #0 + ldreq r0, _0230CCF4 @ =0x023289E8 + ldreq r0, [r0, #0xc] + cmp r0, #0 + moveq r0, r1 + popeq {r3, pc} + ldr r0, [r0, #0x20] + bl ov00_022F47A8 + ldr r0, [r0] + pop {r3, pc} + .align 2, 0 +_0230CCF4: .4byte 0x023289E8 + arm_func_end ov00_0230CCC8 + + arm_func_start ov00_0230CCF8 +ov00_0230CCF8: @ 0x0230CCF8 + push {r3, lr} + cmp r0, #0 + ldreq r0, _0230CD24 @ =0x023289E8 + ldreq r0, [r0, #0xc] + cmp r0, #0 + moveq r0, r1 + popeq {r3, pc} + ldr r0, [r0, #0x1c] + bl ov00_022F47A8 + ldr r0, [r0] + pop {r3, pc} + .align 2, 0 +_0230CD24: .4byte 0x023289E8 + arm_func_end ov00_0230CCF8 + + arm_func_start ov00_0230CD28 +ov00_0230CD28: @ 0x0230CD28 + push {r0, r1, r2, r3} + push {r3, r4, r5, lr} + movs r5, r0 + ldreq r0, _0230CD8C @ =0x023289E8 + mov r4, r1 + ldreq r5, [r0, #0xc] + mov r3, r2 + cmp r5, #0 + addeq r0, sp, #0x1c + beq _0230CD7C + ldr r0, [r5, #0xc] + add r2, sp, #0x1c + mov r1, r4 + blx r3 + cmp r0, #0 + bne _0230CD7C + ldr r0, [r5, #0xc] + add r3, sp, #0x1c + mov r1, r4 + mov r2, #0 + bl ov00_0230BD68 +_0230CD7C: + ldr r0, [r0] + pop {r3, r4, r5, lr} + add sp, sp, #0x10 + bx lr + .align 2, 0 +_0230CD8C: .4byte 0x023289E8 + arm_func_end ov00_0230CD28 + + arm_func_start ov00_0230CD90 +ov00_0230CD90: @ 0x0230CD90 + push {r0, r1, r2, r3} + push {r3, r4, r5, lr} + movs r5, r0 + ldreq r0, _0230CDFC @ =0x023289E8 + mov r4, r1 + ldreq r5, [r0, #0xc] + mov r3, r2 + cmp r5, #0 + addeq r0, sp, #0x1c + beq _0230CDE4 + ldr r0, [r5, #0xc] + add r2, sp, #0x1c + mov r1, r4 + blx r3 + cmp r0, #0 + bne _0230CDE4 + ldr r0, [r5, #0xc] + add r3, sp, #0x1c + mov r1, r4 + mov r2, #1 + bl ov00_0230BD68 +_0230CDE4: + ldr r2, [r0] + ldr r1, [r0, #4] + mov r0, r2 + pop {r3, r4, r5, lr} + add sp, sp, #0x10 + bx lr + .align 2, 0 +_0230CDFC: .4byte 0x023289E8 + arm_func_end ov00_0230CD90 + + arm_func_start ov00_0230CE00 +ov00_0230CE00: @ 0x0230CE00 + push {r4, r5, r6, lr} + movs r6, r0 + ldreq r0, _0230CE58 @ =0x023289E8 + mov r5, r1 + ldreq r6, [r0, #0xc] + mov r4, r3 + cmp r6, #0 + mov ip, r2 + moveq r0, r4 + popeq {r4, r5, r6, pc} + ldr r0, [r6, #0xc] + mov r1, r5 + mov r2, r4 + blx ip + cmp r0, #0 + popne {r4, r5, r6, pc} + ldr r0, [r6, #0xc] + mov r1, r5 + mov r3, r4 + mov r2, #2 + bl ov00_0230BD68 + pop {r4, r5, r6, pc} + .align 2, 0 +_0230CE58: .4byte 0x023289E8 + arm_func_end ov00_0230CE00 + + arm_func_start ov00_0230CE5C +ov00_0230CE5C: @ 0x0230CE5C + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x44 + mov r6, r1 + ldr r1, [sp, #0x58] + mov r7, r0 + mov r5, r2 + mov r4, r3 + bl ov00_0230CCC8 + mov r3, r0 + ldr r1, _0230CEB4 @ =0x0231BEC4 + add r0, sp, #4 + mov r2, r6 + bl FUN_020790DC + ldr ip, [sp, #0x58] + mov r0, r7 + mov r2, r5 + mov r3, r4 + add r1, sp, #4 + str ip, [sp] + bl ov00_0230CD28 + add sp, sp, #0x44 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0230CEB4: .4byte 0x0231BEC4 + arm_func_end ov00_0230CE5C + + arm_func_start ov00_0230CEB8 +ov00_0230CEB8: @ 0x0230CEB8 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x48 + mov r7, r1 + ldr r1, [sp, #0x64] + mov r8, r0 + mov r6, r2 + mov r5, r3 + ldr r4, [sp, #0x60] + bl ov00_0230CCC8 + mov r3, r0 + ldr r1, _0230CF14 @ =0x0231BEC4 + add r0, sp, #8 + mov r2, r7 + bl FUN_020790DC + ldr ip, [sp, #0x64] + mov r3, r5 + mov r0, r8 + mov r2, r6 + add r1, sp, #8 + stm sp, {r4, ip} + bl ov00_0230CD90 + add sp, sp, #0x48 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0230CF14: .4byte 0x0231BEC4 + arm_func_end ov00_0230CEB8 + + arm_func_start ov00_0230CF18 +ov00_0230CF18: @ 0x0230CF18 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x44 + mov r6, r1 + ldr r1, [sp, #0x58] + mov r7, r0 + mov r5, r2 + mov r4, r3 + bl ov00_0230CCC8 + mov r3, r0 + ldr r1, _0230CF70 @ =0x0231BEC4 + add r0, sp, #4 + mov r2, r6 + bl FUN_020790DC + ldr ip, [sp, #0x58] + mov r0, r7 + mov r2, r5 + mov r3, r4 + add r1, sp, #4 + str ip, [sp] + bl ov00_0230CE00 + add sp, sp, #0x44 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0230CF70: .4byte 0x0231BEC4 + arm_func_end ov00_0230CF18 + + arm_func_start ov00_0230CF74 +ov00_0230CF74: @ 0x0230CF74 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x44 + mov r6, r1 + ldr r1, [sp, #0x58] + mov r7, r0 + mov r5, r2 + mov r4, r3 + bl ov00_0230CCF8 + mov r3, r0 + ldr r1, _0230CFCC @ =0x0231BECC + add r0, sp, #4 + mov r2, r6 + bl FUN_020790DC + ldr ip, [sp, #0x58] + mov r0, r7 + mov r2, r5 + mov r3, r4 + add r1, sp, #4 + str ip, [sp] + bl ov00_0230CD28 + add sp, sp, #0x44 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0230CFCC: .4byte 0x0231BECC + arm_func_end ov00_0230CF74 + + arm_func_start ov00_0230CFD0 +ov00_0230CFD0: @ 0x0230CFD0 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x48 + mov r7, r1 + ldr r1, [sp, #0x64] + mov r8, r0 + mov r6, r2 + mov r5, r3 + ldr r4, [sp, #0x60] + bl ov00_0230CCF8 + mov r3, r0 + ldr r1, _0230D02C @ =0x0231BECC + add r0, sp, #8 + arm_func_end ov00_0230CFD0 + + arm_func_start ov00_0230D000 +ov00_0230D000: @ 0x0230D000 + mov r2, r7 + bl FUN_020790DC + ldr ip, [sp, #0x64] + mov r3, r5 + mov r0, r8 + mov r2, r6 + add r1, sp, #8 + stm sp, {r4, ip} + bl ov00_0230CD90 + add sp, sp, #0x48 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0230D02C: .4byte 0x0231BECC + arm_func_end ov00_0230D000 + + arm_func_start ov00_0230D030 +ov00_0230D030: @ 0x0230D030 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x44 + mov r6, r1 + ldr r1, [sp, #0x58] + mov r7, r0 + mov r5, r2 + mov r4, r3 + bl ov00_0230CCF8 + mov r3, r0 + ldr r1, _0230D088 @ =0x0231BECC + add r0, sp, #4 + mov r2, r6 + bl FUN_020790DC + ldr ip, [sp, #0x58] + mov r0, r7 + mov r2, r5 + mov r3, r4 + add r1, sp, #4 + str ip, [sp] + bl ov00_0230CE00 + add sp, sp, #0x44 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0230D088: .4byte 0x0231BECC + arm_func_end ov00_0230D030 + + arm_func_start ov00_0230D08C +ov00_0230D08C: @ 0x0230D08C + push {r4, r5, r6, r7, r8, sb, sl, lr} + ldrb r5, [r0] + mov lr, #0 + mov r4, #1 + and r6, r5, #1 + mov r3, lr + mov ip, r4 + mov r1, lr + mov r2, r4 +_0230D0B0: + add r7, r0, r4 + ldrb sl, [r7, #-1] + cmp sl, r5 + eor sl, r4, sl + movlo r8, ip + and sl, sl, #1 + movhs r8, r3 + cmp r5, #0x4f + movlo sb, r2 + eor sl, lr, sl + movhs sb, r1 + eor sl, r6, sl + eor sb, sl, sb + eors lr, sb, r8 + beq _0230D0F8 + ldrb r8, [r7] + tst r8, #1 + beq _0230D10C +_0230D0F8: + cmp lr, #0 + ldrbeq r7, [r7] + andeq r7, r7, #1 + cmpeq r7, #1 + bne _0230D114 +_0230D10C: + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_0230D114: + add r4, r4, #1 + cmp r4, #0x20 + blt _0230D0B0 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end ov00_0230D08C + + arm_func_start ov00_0230D128 +ov00_0230D128: @ 0x0230D128 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sl, r0 + bl ov00_022F5594 + bl FUN_020895E4 + bl FUN_020895B0 + ldr r5, _0230D21C @ =0x2C0B02C1 + lsr r1, r0, #0x1f + smull r2, r4, r5, r0 + mov r8, #0 + mov r7, #1 + add r4, r1, r4, asr #4 + mov r3, #0x5d + smull r1, r2, r3, r4 + sub r4, r0, r1 + add r0, r4, #0x21 + strb r0, [sl] + mov fp, r8 + mov r6, r7 + mov r4, r3 +_0230D174: + add sb, sl, r7 + ldrb r3, [sb, #-1] + ldrb r0, [sl] + cmp r3, r0 + eor r3, r7, r3 + movlo r1, r6 + and r3, r3, #1 + movhs r1, fp + cmp r0, #0x4f + movlo r2, #1 + and r0, r0, #1 + eor r3, r8, r3 + movhs r2, #0 + eor r0, r0, r3 + eor r0, r0, r2 + eor r8, r0, r1 + bl FUN_020895B0 + smull r2, r3, r5, r0 + lsr r1, r0, #0x1f + add r3, r1, r3, asr #4 + smull r1, r2, r4, r3 + sub r3, r0, r1 + add r0, r3, #0x21 + cmp r8, #0 + strb r0, [sb] + beq _0230D1E8 + ldrb r0, [sb] + tst r0, #1 + beq _0230D1FC +_0230D1E8: + cmp r8, #0 + ldrbeq r0, [sb] + andeq r0, r0, #1 + cmpeq r0, #1 + bne _0230D208 +_0230D1FC: + ldrb r0, [sb] + add r0, r0, #1 + strb r0, [sb] +_0230D208: + add r7, r7, #1 + cmp r7, #0x20 + blt _0230D174 + mov r0, sl + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0230D21C: .4byte 0x2C0B02C1 + arm_func_end ov00_0230D128 + + arm_func_start ov00_0230D220 +ov00_0230D220: @ 0x0230D220 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov r5, r0 + ldr r0, _0230D320 @ =0x0231BED4 + mov r4, r1 + bl FUN_02089678 + mov r7, r0 + mov r0, r4 + bl ov00_0230D08C + mov sl, #0 + mov fp, r0 + mov r8, sl +_0230D24C: + cmp fp, #0 + cmpne sl, #0 + cmpne sl, #0xd + bne _0230D284 + bl FUN_020895B0 + ldr r1, _0230D324 @ =0x2C0B02C1 + lsr r2, r0, #0x1f + smull r3, r6, r1, r0 + add r6, r2, r6, asr #4 + mov r1, #0x5d + smull r2, r3, r1, r6 + sub r6, r0, r2 + add r0, r6, #0x21 + b _0230D300 +_0230D284: + cmp sl, #1 + cmpne sl, #0xe + ldrsbeq r6, [r4, sl] + addne r0, r4, sl + ldrb sb, [r4, sl] + ldrsbne r6, [r0, #-1] + mov r1, r7 + add r0, sl, sb + bl FUN_0208FEA4 + mul r0, r6, r8 + mov r6, r1 + mov r1, r7 + bl FUN_0208FEA4 + ldr r0, _0230D320 @ =0x0231BED4 + ldrsb r3, [r0, r6] + ldrsb r2, [r0, r1] + mla r0, sl, sb, r3 + lsr r1, r0, #0x1f + rsb r0, r1, r0, lsl #27 + add r0, r1, r0, ror #27 + ldrb r0, [r4, r0] + eor r0, r0, r2 + bl FUN_0208655C + ldr r1, _0230D324 @ =0x2C0B02C1 + smull r2, r3, r1, r0 + lsr r1, r0, #0x1f + add r3, r1, r3, asr #4 + mov r1, #0x5d + smull r2, r3, r1, r3 + sub r3, r0, r2 + add r0, r3, #0x21 +_0230D300: + strb r0, [r5, sl] + add r0, r8, #0x47 + add sl, sl, #1 + cmp sl, #0x20 + add r8, r0, #0x4600 + blt _0230D24C + mov r0, r5 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0230D320: .4byte 0x0231BED4 +_0230D324: .4byte 0x2C0B02C1 + arm_func_end ov00_0230D220 + + arm_func_start ov00_0230D328 +ov00_0230D328: @ 0x0230D328 + mov ip, #0 +_0230D32C: + cmp ip, #0 + cmpne ip, #0xd + ldrbne r3, [r0, ip] + ldrbne r2, [r1, ip] + cmpne r3, r2 + movne r0, #0 + bxne lr + add ip, ip, #1 + cmp ip, #0x20 + blt _0230D32C + mov r0, #1 + bx lr + arm_func_end ov00_0230D328 + + arm_func_start ov00_0230D35C +ov00_0230D35C: @ 0x0230D35C + push {r3, r4, r5, lr} + mov r4, r1 + mov r5, r0 + mov r0, r4 + bl ov00_022F5AE4 + str r0, [r5] + cmp r0, #0 + moveq r0, #0 + strne r4, [r5, #4] + movne r0, #1 + pop {r3, r4, r5, pc} + arm_func_end ov00_0230D35C + + arm_func_start ov00_0230D388 +ov00_0230D388: @ 0x0230D388 + ldr r1, [r0, #4] + ldr r0, [r0, #8] + sub r0, r1, r0 + bx lr + arm_func_end ov00_0230D388 + + arm_func_start ov00_0230D398 +ov00_0230D398: @ 0x0230D398 + ldr r3, [r0, #8] + add r2, r3, #1 + str r2, [r0, #8] + ldr r0, [r0] + strb r1, [r0, r3] + bx lr + arm_func_end ov00_0230D398 + + arm_func_start ov00_0230D3B0 +ov00_0230D3B0: @ 0x0230D3B0 + ldr ip, [r0, #8] + asr r3, r1, #8 + add r2, ip, #1 + str r2, [r0, #8] + ldr r2, [r0] + strb r3, [r2, ip] + ldr r3, [r0, #8] + add r2, r3, #1 + str r2, [r0, #8] + ldr r0, [r0] + strb r1, [r0, r3] + bx lr + arm_func_end ov00_0230D3B0 + + arm_func_start ov00_0230D3E0 +ov00_0230D3E0: @ 0x0230D3E0 + push {r4, r5, r6, lr} + movs r6, r1 + mov r5, r2 + mov r4, r0 + cmpne r5, #0 + popeq {r4, r5, r6, pc} + mvn r0, #0 + cmp r5, r0 + bne _0230D410 + mov r0, r6 + bl FUN_02089678 + mov r5, r0 +_0230D410: + ldr r3, [r4] + ldr r0, [r4, #8] + mov r1, r6 + mov r2, r5 + add r0, r3, r0 + bl FUN_0208729C + ldr r0, [r4, #8] + add r0, r0, r5 + str r0, [r4, #8] + pop {r4, r5, r6, pc} + arm_func_end ov00_0230D3E0 + + arm_func_start ov00_0230D438 +ov00_0230D438: @ 0x0230D438 + push {r3, r4, r5, lr} + mvn r3, #0 + mov r5, r0 + cmp r1, r3 + mov r4, r2 + ldreq r0, [r5, #8] + ldr r2, [r5, #8] + subeq r1, r0, r4 + ldr r0, [r5] + sub r2, r2, r1 + add r0, r0, r1 + add r1, r0, r4 + sub r2, r2, r4 + bl FUN_020872BC + ldr r0, [r5, #8] + sub r0, r0, r4 + str r0, [r5, #8] + pop {r3, r4, r5, pc} + arm_func_end ov00_0230D438 + + arm_func_start ov00_0230D480 +ov00_0230D480: @ 0x0230D480 + push {r4, lr} + movs r4, r0 + moveq r0, #1 + popeq {r4, pc} + ldr r1, [r4, #0x24] + cmp r1, #0 + moveq r0, #1 + popeq {r4, pc} + ldr r1, [r4, #0x1c] + add r1, r1, #1 + str r1, [r4, #0x1c] + ldr r1, [r4, #0x24] + blx r1 + ldr r0, [r4, #0x1c] + sub r0, r0, #1 + str r0, [r4, #0x1c] + ldr r0, [r4, #0x14] + cmp r0, #0 + beq _0230D4E8 + ldr r0, [r4, #0x1c] + cmp r0, #0 + bne _0230D4E8 + mov r0, r4 + bl ov00_023105A8 + mov r0, #0 + pop {r4, pc} +_0230D4E8: + mov r0, #1 + pop {r4, pc} + arm_func_end ov00_0230D480 + + arm_func_start ov00_0230D4F0 +ov00_0230D4F0: @ 0x0230D4F0 + push {r4, r5, lr} + sub sp, sp, #0xc + mov r4, r1 + movs r5, r0 + cmpne r4, #0 + addeq sp, sp, #0xc + moveq r0, #1 + popeq {r4, r5, pc} + ldr r0, [r5, #0x20] + cmp r0, #0 + addeq sp, sp, #0xc + moveq r0, #1 + popeq {r4, r5, pc} + ldr r1, [r5, #0x1c] + ldr r0, [sp, #0x20] + add r1, r1, #1 + cmp r0, #0 + ldrne r0, [sp, #0x1c] + str r1, [r5, #0x1c] + ldr ip, [r4, #0x24] + cmpne r0, #0 + moveq r0, #0 + streq r0, [sp, #0x1c] + streq r0, [sp, #0x20] + add ip, ip, #1 + ldr r0, [sp, #0x18] + str ip, [r4, #0x24] + str r0, [sp] + ldr r1, [sp, #0x1c] + ldr r0, [sp, #0x20] + str r1, [sp, #4] + str r0, [sp, #8] + ldr ip, [r5, #0x20] + mov r0, r5 + mov r1, r4 + blx ip + ldr r0, [r5, #0x1c] + sub r0, r0, #1 + str r0, [r5, #0x1c] + ldr r0, [r4, #0x24] + sub r0, r0, #1 + str r0, [r4, #0x24] + ldr r0, [r5, #0x14] + cmp r0, #0 + beq _0230D5C4 + ldr r0, [r5, #0x1c] + cmp r0, #0 + bne _0230D5C4 + mov r0, r5 + bl ov00_023105A8 + add sp, sp, #0xc + mov r0, #0 + pop {r4, r5, pc} +_0230D5C4: + mov r0, #1 + add sp, sp, #0xc + pop {r4, r5, pc} + arm_func_end ov00_0230D4F0 + + arm_func_start ov00_0230D5D0 +ov00_0230D5D0: @ 0x0230D5D0 + push {r4, lr} + movs r4, r0 + moveq r0, #1 + popeq {r4, pc} + str r1, [r4, #0x18] + ldr r0, [r4, #0x28] + cmp r0, #0 + moveq r0, #1 + popeq {r4, pc} + ldr ip, [r4, #0x24] + cmp r3, #0 + add ip, ip, #1 + str ip, [r4, #0x24] + ldr lr, [r4, #8] + cmpne r2, #0 + ldr ip, [lr, #0x1c] + moveq r2, #0 + add ip, ip, #1 + str ip, [lr, #0x1c] + ldr ip, [r4, #0x28] + moveq r3, r2 + mov r0, r4 + blx ip + ldr r0, [r4, #0x24] + sub r0, r0, #1 + str r0, [r4, #0x24] + ldr r1, [r4, #8] + ldr r0, [r1, #0x1c] + sub r0, r0, #1 + str r0, [r1, #0x1c] + ldr r0, [r4, #8] + ldr r1, [r0, #0x14] + cmp r1, #0 + beq _0230D670 + ldr r1, [r0, #0x1c] + cmp r1, #0 + bne _0230D670 + bl ov00_023105A8 + mov r0, #0 + pop {r4, pc} +_0230D670: + mov r0, #1 + pop {r4, pc} + arm_func_end ov00_0230D5D0 + + arm_func_start ov00_0230D678 +ov00_0230D678: @ 0x0230D678 + push {r4, lr} + movs r4, r0 + moveq r0, #1 + popeq {r4, pc} + ldr r0, [r4, #0x2c] + cmp r0, #0 + moveq r0, #1 + popeq {r4, pc} + ldr ip, [r4, #0x24] + cmp r2, #0 + add ip, ip, #1 + str ip, [r4, #0x24] + ldr lr, [r4, #8] + cmpne r1, #0 + ldr ip, [lr, #0x1c] + moveq r1, #0 + add ip, ip, #1 + str ip, [lr, #0x1c] + ldr ip, [r4, #0x2c] + moveq r2, r1 + mov r0, r4 + blx ip + ldr r0, [r4, #0x24] + sub r0, r0, #1 + str r0, [r4, #0x24] + ldr r1, [r4, #8] + ldr r0, [r1, #0x1c] + sub r0, r0, #1 + str r0, [r1, #0x1c] + ldr r0, [r4, #8] + ldr r1, [r0, #0x14] + cmp r1, #0 + beq _0230D714 + ldr r1, [r0, #0x1c] + cmp r1, #0 + bne _0230D714 + bl ov00_023105A8 + mov r0, #0 + pop {r4, pc} +_0230D714: + mov r0, #1 + pop {r4, pc} + arm_func_end ov00_0230D678 + + arm_func_start ov00_0230D71C +ov00_0230D71C: @ 0x0230D71C + push {r4, lr} + movs r4, r0 + moveq r0, #1 + popeq {r4, pc} + ldr r2, [r4, #0x30] + cmp r2, #0 + moveq r0, #1 + popeq {r4, pc} + ldr r2, [r4, #0x24] + add r2, r2, #1 + str r2, [r4, #0x24] + ldr r3, [r4, #8] + ldr r2, [r3, #0x1c] + add r2, r2, #1 + str r2, [r3, #0x1c] + ldr r2, [r4, #0x30] + blx r2 + ldr r0, [r4, #0x24] + sub r0, r0, #1 + str r0, [r4, #0x24] + ldr r1, [r4, #8] + ldr r0, [r1, #0x1c] + sub r0, r0, #1 + str r0, [r1, #0x1c] + ldr r0, [r4, #8] + ldr r1, [r0, #0x14] + cmp r1, #0 + beq _0230D7A4 + ldr r1, [r0, #0x1c] + cmp r1, #0 + bne _0230D7A4 + bl ov00_023105A8 + mov r0, #0 + pop {r4, pc} +_0230D7A4: + mov r0, #1 + pop {r4, pc} + arm_func_end ov00_0230D71C + + arm_func_start ov00_0230D7AC +ov00_0230D7AC: @ 0x0230D7AC + push {r4, lr} + movs r4, r0 + moveq r0, #1 + popeq {r4, pc} + ldr r2, [r4, #0x34] + cmp r2, #0 + moveq r0, #1 + popeq {r4, pc} + ldr r2, [r4, #0x24] + add r2, r2, #1 + str r2, [r4, #0x24] + ldr r3, [r4, #8] + ldr r2, [r3, #0x1c] + add r2, r2, #1 + str r2, [r3, #0x1c] + ldr r2, [r4, #0x34] + blx r2 + ldr r0, [r4, #0x24] + sub r0, r0, #1 + str r0, [r4, #0x24] + ldr r1, [r4, #8] + ldr r0, [r1, #0x1c] + sub r0, r0, #1 + str r0, [r1, #0x1c] + ldr r0, [r4, #8] + ldr r1, [r0, #0x14] + cmp r1, #0 + beq _0230D834 + ldr r1, [r0, #0x1c] + cmp r1, #0 + bne _0230D834 + bl ov00_023105A8 + mov r0, #0 + pop {r4, pc} +_0230D834: + mov r0, #1 + pop {r4, pc} + arm_func_end ov00_0230D7AC + + arm_func_start ov00_0230D83C +ov00_0230D83C: @ 0x0230D83C + push {r3, r4, r5, r6, r7, lr} + movs r7, r0 + mov r6, r1 + mov r5, r2 + mov r4, r3 + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, pc} + ldr r0, [r7, #0x98] + bl ov00_022F47A8 + movs lr, r0 + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, pc} + ldr r0, [r7, #0x24] + cmp r4, #0 + add r0, r0, #1 + str r0, [r7, #0x24] + ldr ip, [r7, #8] + cmpne r5, #0 + ldr r3, [ip, #0x1c] + moveq r5, #0 + add r3, r3, #1 + ldr r2, [sp, #0x18] + str r3, [ip, #0x1c] + str r2, [sp] + moveq r4, r5 + mov r1, r6 + ldr r6, [lr] + mov r0, r7 + mov r2, r5 + mov r3, r4 + blx r6 + ldr r0, [r7, #0x24] + sub r0, r0, #1 + str r0, [r7, #0x24] + ldr r1, [r7, #8] + ldr r0, [r1, #0x1c] + sub r0, r0, #1 + str r0, [r1, #0x1c] + ldr r0, [r7, #8] + ldr r1, [r0, #0x14] + cmp r1, #0 + beq _0230D8FC + ldr r1, [r0, #0x1c] + cmp r1, #0 + bne _0230D8FC + bl ov00_023105A8 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_0230D8FC: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_0230D83C + + arm_func_start ov00_0230D904 +ov00_0230D904: @ 0x0230D904 + push {r3, r4, r5, r6, r7, lr} + movs r7, r0 + mov r6, r1 + mov r5, r2 + mov r4, r3 + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, pc} + ldr r0, [r7, #0x9c] + bl ov00_022F47A8 + movs lr, r0 + arm_func_end ov00_0230D904 + + arm_func_start ov00_0230D92C +ov00_0230D92C: @ 0x0230D92C + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, pc} + ldr r0, [r7, #0x24] + cmp r4, #0 + add r0, r0, #1 + str r0, [r7, #0x24] + ldr ip, [r7, #8] + cmpne r5, #0 + ldr r3, [ip, #0x1c] + moveq r5, #0 + add r3, r3, #1 + ldr r2, [sp, #0x18] + str r3, [ip, #0x1c] + str r2, [sp] + moveq r4, r5 + mov r1, r6 + ldr r6, [lr] + mov r0, r7 + mov r2, r5 + mov r3, r4 + blx r6 + ldr r0, [r7, #0x24] + sub r0, r0, #1 + str r0, [r7, #0x24] + ldr r1, [r7, #8] + ldr r0, [r1, #0x1c] + sub r0, r0, #1 + str r0, [r1, #0x1c] + ldr r0, [r7, #8] + ldr r1, [r0, #0x14] + cmp r1, #0 + beq _0230D9C4 + ldr r1, [r0, #0x1c] + cmp r1, #0 + bne _0230D9C4 + bl ov00_023105A8 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_0230D9C4: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_0230D92C + + arm_func_start ov00_0230D9CC +ov00_0230D9CC: @ 0x0230D9CC + push {r4, r5, lr} + sub sp, sp, #0xc + movs r5, r0 + mov r4, r1 + addeq sp, sp, #0xc + moveq r0, #1 + popeq {r4, r5, pc} + ldr r0, [sp, #0x24] + cmp r0, #0 + ldrne ip, [r5, #0x28] + ldreq ip, [r5, #0x2c] + cmp ip, #0 + addeq sp, sp, #0xc + moveq r0, #1 + popeq {r4, r5, pc} + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x18] + cmp r0, #0 + ldrne r0, [sp, #0x1c] + cmpne r0, #0 + moveq r0, #0 + streq r0, [sp, #0x20] + streq r0, [sp, #0x1c] + ldr r0, [r5, #0x1c] + cmp r4, #0 + add r0, r0, #1 + str r0, [r5, #0x1c] + ldrne r0, [r4, #0x24] + ldr lr, [sp, #0x20] + addne r0, r0, #1 + strne r0, [r4, #0x24] + str r1, [sp] + ldr r0, [sp, #0x1c] + mov r1, r4 + str r0, [sp, #4] + mov r0, r5 + str lr, [sp, #8] + blx ip + ldr r0, [r5, #0x1c] + cmp r4, #0 + sub r0, r0, #1 + str r0, [r5, #0x1c] + ldrne r0, [r4, #0x24] + subne r0, r0, #1 + strne r0, [r4, #0x24] + ldr r0, [r5, #0x14] + cmp r0, #0 + beq _0230DAAC + ldr r0, [r5, #0x1c] + cmp r0, #0 + bne _0230DAAC + mov r0, r5 + bl ov00_023105A8 + add sp, sp, #0xc + mov r0, #0 + pop {r4, r5, pc} +_0230DAAC: + mov r0, #1 + add sp, sp, #0xc + pop {r4, r5, pc} + arm_func_end ov00_0230D9CC + + arm_func_start ov00_0230DAB8 +ov00_0230DAB8: @ 0x0230DAB8 + push {r3, r4, r5, lr} + ldr r4, [sp, #0x14] + movs r5, r0 + mov r0, #0 + str r0, [r4] + moveq r0, #1 + popeq {r3, r4, r5, pc} + ldr r0, [r5, #0x30] + cmp r0, #0 + moveq r0, #1 + popeq {r3, r4, r5, pc} + ldr r0, [sp, #0x10] + ldr ip, [r5, #0x1c] + cmp r0, #0 + cmpne r3, #0 + moveq r3, #0 + streq r3, [sp, #0x10] + add ip, ip, #1 + ldr r0, [sp, #0x10] + str ip, [r5, #0x1c] + str r0, [sp] + ldr ip, [r5, #0x30] + mov r0, r5 + blx ip + str r0, [r4] + ldr r0, [r5, #0x1c] + sub r0, r0, #1 + str r0, [r5, #0x1c] + ldr r0, [r5, #0x14] + cmp r0, #0 + beq _0230DB50 + ldr r0, [r5, #0x1c] + cmp r0, #0 + bne _0230DB50 + mov r0, r5 + bl ov00_023105A8 + mov r0, #0 + pop {r3, r4, r5, pc} +_0230DB50: + mov r0, #1 + pop {r3, r4, r5, pc} + arm_func_end ov00_0230DAB8 + + arm_func_start ov00_0230DB58 +ov00_0230DB58: @ 0x0230DB58 + push {r4, lr} + mov r4, r1 + bl ov00_02310604 + cmp r0, #0 + popne {r4, pc} + ldr r1, [r4] + mov r0, #0 + str r0, [r1, #0xc] + ldr r1, [r4] + mov r2, #1 + str r2, [r1, #0x10] + pop {r4, pc} + arm_func_end ov00_0230DB58 + + arm_func_start ov00_0230DB88 +ov00_0230DB88: @ 0x0230DB88 + push {r4, lr} + mov r4, r1 + bl ov00_02310604 + cmp r0, #0 + popne {r4, pc} + ldr r0, [r4] + mov r1, #2 + str r1, [r0, #0xc] + ldr r1, [r4] + mov r0, #0 + str r0, [r1, #0x10] + pop {r4, pc} + arm_func_end ov00_0230DB88 + + arm_func_start ov00_0230DBB8 +ov00_0230DBB8: @ 0x0230DBB8 + push {r0, r1, r2, r3} + push {r3, r4, r5, lr} + sub sp, sp, #0x20 + mov r5, r0 + add r0, sp, #0x34 + add r1, sp, #0x38 + mov r4, r3 + bl ov00_02310E00 + ldr r0, [sp, #0x38] + cmp r0, #0 + ble _0230DC18 + bl ov00_022F5AE4 + cmp r0, #0 + str r0, [r5, #0x38] + addeq sp, sp, #0x20 + moveq r0, #1 + popeq {r3, r4, r5, lr} + addeq sp, sp, #0x10 + bxeq lr + ldr r1, [sp, #0x34] + ldr r2, [sp, #0x38] + bl FUN_0208729C + ldr r0, [sp, #0x38] + str r0, [r5, #0x3c] +_0230DC18: + cmp r4, #0 + addne ip, r5, #0x28 + ldmne r4, {r0, r1, r2, r3} + stmne ip, {r0, r1, r2, r3} + add r0, sp, #0 + bl ov00_0230D128 + add r1, sp, #0 + add r0, r5, #0x68 + bl ov00_0230D220 + add r1, sp, #0 + mov r0, r5 + bl ov00_0230FBE0 + mov r0, #0 + str r0, [r5, #0xc] + add sp, sp, #0x20 + pop {r3, r4, r5, lr} + add sp, sp, #0x10 + bx lr + arm_func_end ov00_0230DBB8 + + arm_func_start ov00_0230DC60 +ov00_0230DC60: @ 0x0230DC60 + push {r3, r4, r5, lr} + mov r5, r0 + ldr r2, [r5, #0x14] + mov r4, r1 + cmp r2, #0 + movne r0, #0 + strne r0, [r5, #0x14] + popne {r3, r4, r5, pc} + mov r2, #0 + str r2, [r5, #0x14] + ldr r1, [r5, #0xc] + cmp r1, #4 + movne r0, r2 + popne {r3, r4, r5, pc} + bl ov00_0230FD60 + mov r0, #5 + cmp r4, #0 + str r0, [r5, #0xc] + addne ip, r5, #0x28 + ldmne r4, {r0, r1, r2, r3} + stmne ip, {r0, r1, r2, r3} + mov r0, #1 + pop {r3, r4, r5, pc} + arm_func_end ov00_0230DC60 + + arm_func_start ov00_0230DCBC +ov00_0230DCBC: @ 0x0230DCBC + push {r0, r1, r2, r3} + push {r4, lr} + mov r4, r0 + mov r0, #0 + str r0, [r4, #0x14] + ldr r0, [r4, #0xc] + cmp r0, #4 + popne {r4, lr} + addne sp, sp, #0x10 + bxne lr + add r0, sp, #0xc + add r1, sp, #0x10 + bl ov00_02310E00 + ldr r1, [sp, #0xc] + ldr r2, [sp, #0x10] + mov r0, r4 + bl ov00_0230FDC4 + mov r0, #6 + str r0, [r4, #0xc] + pop {r4, lr} + add sp, sp, #0x10 + bx lr + arm_func_end ov00_0230DCBC + + arm_func_start ov00_0230DD14 +ov00_0230DD14: @ 0x0230DD14 + push {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + str r2, [sp] + mov r3, r1 + ldrh r2, [r4, #4] + ldr r0, [r4, #8] + ldr r1, [r4] + bl ov00_023108D8 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, pc} + bl ov00_022F5594 + str r0, [r4, #0x88] + mov r0, #1 + add sp, sp, #4 + pop {r3, r4, pc} + arm_func_end ov00_0230DD14 + + arm_func_start ov00_0230DD5C +ov00_0230DD5C: @ 0x0230DD5C + push {r4, lr} + mov r4, r0 + ldr r2, [r4, #0xc] + cmp r2, #5 + bge _0230DDF4 + ldr r0, [r4, #0x10] + mov r3, #0 + cmp r0, #0 + beq _0230DDA0 + ldr r2, [r4, #0x20] + cmp r2, #0 + beq _0230DDBC + ldr r0, [r4, #0x1c] + sub r0, r1, r0 + cmp r0, r2 + movhi r3, #1 + b _0230DDBC +_0230DDA0: + cmp r2, #4 + bge _0230DDBC + ldr r2, [r4, #0x1c] + ldr r0, _0230DDFC @ =0x0000EA60 + sub r1, r1, r2 + cmp r1, r0 + movhi r3, #1 +_0230DDBC: + cmp r3, #0 + beq _0230DDF4 + mov r0, r4 + bl ov00_02310184 + mov r0, r4 + bl ov00_0230DF94 + mov r2, #0 + mov r0, r4 + mov r3, r2 + mov r1, #6 + bl ov00_0230D5D0 + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} +_0230DDF4: + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_0230DDFC: .4byte 0x0000EA60 + arm_func_end ov00_0230DD5C + + arm_func_start ov00_0230DE00 +ov00_0230DE00: @ 0x0230DE00 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + ldr r0, [r7, #0x60] + mov r6, r1 + bl ov00_022F47A0 + mov r5, r0 + cmp r5, #0 + mov r4, #0 + ble _0230DE64 +_0230DE24: + ldr r0, [r7, #0x60] + mov r1, r4 + bl ov00_022F47A8 + mov r1, r0 + ldr r0, [r1, #0xc] + sub r0, r6, r0 + cmp r0, #0x3e8 + bls _0230DE58 + mov r0, r7 + bl ov00_02310228 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} +_0230DE58: + add r4, r4, #1 + cmp r4, r5 + blt _0230DE24 +_0230DE64: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_0230DE00 + + arm_func_start ov00_0230DE6C +ov00_0230DE6C: @ 0x0230DE6C + push {r3, lr} + ldr r2, [r0, #0x90] + cmp r2, #0 + moveq r0, #1 + popeq {r3, pc} + ldr r2, [r0, #0x94] + sub r1, r1, r2 + cmp r1, #0x64 + bls _0230DEA0 + bl ov00_02310004 + cmp r0, #0 + moveq r0, #0 + popeq {r3, pc} +_0230DEA0: + mov r0, #1 + pop {r3, pc} + arm_func_end ov00_0230DE6C + + arm_func_start ov00_0230DEA8 +ov00_0230DEA8: @ 0x0230DEA8 + push {r3, lr} + ldr r3, [r0, #0x88] + ldr r2, _0230DED8 @ =0x00007530 + sub r1, r1, r3 + cmp r1, r2 + bls _0230DED0 + bl ov00_0230FEA8 + cmp r0, #0 + moveq r0, #0 + popeq {r3, pc} +_0230DED0: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0230DED8: .4byte 0x00007530 + arm_func_end ov00_0230DEA8 + + arm_func_start ov00_0230DEDC +ov00_0230DEDC: @ 0x0230DEDC + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + bl ov00_0230DD5C + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + mov r0, r5 + mov r1, r4 + bl ov00_0230DEA8 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + mov r0, r5 + mov r1, r4 + bl ov00_0230DE00 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + mov r0, r5 + mov r1, r4 + bl ov00_0230DE6C + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, r4, r5, pc} + arm_func_end ov00_0230DEDC + + arm_func_start ov00_0230DF44 +ov00_0230DF44: @ 0x0230DF44 + push {r4, lr} + mov r4, r0 + cmp r1, #0 + beq _0230DF84 + ldr r1, [r4, #0xc] + cmp r1, #7 + popge {r4, pc} + bl ov00_0230DF94 + mov r0, r4 + bl ov00_02310184 + mov r0, r4 + mov r1, #0 + bl ov00_0230D71C + mov r0, r4 + bl ov00_02310814 + pop {r4, pc} +_0230DF84: + mov r1, #6 + str r1, [r4, #0xc] + bl ov00_0230FE44 + pop {r4, pc} + arm_func_end ov00_0230DF44 + + arm_func_start ov00_0230DF94 +ov00_0230DF94: @ 0x0230DF94 + push {r0, r1, r2, r3} + push {r3, lr} + ldr r1, [sp, #8] + ldr r0, [r1, #0xc] + cmp r0, #7 + popeq {r3, lr} + addeq sp, sp, #0x10 + bxeq lr + mov r0, #7 + str r0, [r1, #0xc] + ldr r0, [sp, #8] + add r1, sp, #8 + ldr r0, [r0, #8] + ldr r0, [r0, #0xc] + bl ov00_022F4D50 + ldr r0, [sp, #8] + add r1, sp, #8 + ldr r0, [r0, #8] + ldr r0, [r0, #0x10] + bl ov00_022F47D4 + pop {r3, lr} + add sp, sp, #0x10 + bx lr + arm_func_end ov00_0230DF94 + + arm_func_start ov00_0230DFF0 +ov00_0230DFF0: @ 0x0230DFF0 + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #0x38] + cmp r0, #0 + beq _0230E008 + bl ov00_022F5B14 +_0230E008: + ldr r0, [r4, #0x44] + cmp r0, #0 + beq _0230E018 + bl ov00_022F5B14 +_0230E018: + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _0230E028 + bl ov00_022F5B14 +_0230E028: + ldr r0, [r4, #0x5c] + cmp r0, #0 + beq _0230E038 + bl ov00_022F4758 +_0230E038: + ldr r0, [r4, #0x60] + cmp r0, #0 + beq _0230E048 + bl ov00_022F4758 +_0230E048: + ldr r0, [r4, #0x98] + cmp r0, #0 + beq _0230E058 + bl ov00_022F4758 +_0230E058: + ldr r0, [r4, #0x9c] + cmp r0, #0 + beq _0230E068 + bl ov00_022F4758 +_0230E068: + mov r0, r4 + bl ov00_022F5B14 + pop {r4, pc} + arm_func_end ov00_0230DFF0 + + arm_func_start ov00_0230E074 +ov00_0230E074: @ 0x0230E074 + push {r3, lr} + sub sp, sp, #8 + ldr lr, [sp, #0x10] + mov ip, #0 + str lr, [sp] + str ip, [sp, #4] + bl ov00_02310364 + add sp, sp, #8 + pop {r3, pc} + arm_func_end ov00_0230E074 + + arm_func_start ov00_0230E098 +ov00_0230E098: @ 0x0230E098 + push {r4, lr} + mov r4, r0 + bl ov00_0230E3A4 + mov r0, r4 + bl ov00_023105A8 + pop {r4, pc} + arm_func_end ov00_0230E098 + + arm_func_start ov00_0230E0B0 +ov00_0230E0B0: @ 0x0230E0B0 + push {r4, lr} + mov r4, r0 + bl ov00_0230F838 + cmp r0, #0 + popeq {r4, pc} + mov r0, r4 + bl ov00_02310B44 + cmp r0, #0 + popeq {r4, pc} + mov r0, r4 + bl ov00_02310B80 + pop {r4, pc} + arm_func_end ov00_0230E0B0 + + arm_func_start ov00_023105EC +ov00_023105EC: @ 0x0230E0E0 + ldr ip, _0230E0E8 @ =ov00_023105EC + bx ip + .align 2, 0 +_0230E0E8: .4byte ov00_023105EC + arm_func_end ov00_023105EC + + arm_func_start ov00_0230DC60 +ov00_0230DC60: @ 0x0230E0EC + ldr ip, _0230E0F4 @ =ov00_0230DC60 + bx ip + .align 2, 0 +_0230E0F4: .4byte ov00_0230DC60 + arm_func_end ov00_0230DC60 + + arm_func_start ov00_0230DCBC +ov00_0230DCBC: @ 0x0230E0F8 + ldr ip, _0230E100 @ =ov00_0230DCBC + bx ip + .align 2, 0 +_0230E100: .4byte ov00_0230DCBC + arm_func_end ov00_0230DCBC + + arm_func_start ov00_0230E104 +ov00_0230E104: @ 0x0230E104 + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0xc + mov r6, r0 + mov r5, r1 + mov r0, r2 + add r1, sp, #4 + add r2, sp, #0 + mov r4, r3 + bl ov00_02310CA4 + cmp r0, #0 + ldrne r2, [sp, #4] + cmpne r2, #0 + ldrhne r3, [sp] + cmpne r3, #0 + addeq sp, sp, #0xc + moveq r0, #4 + popeq {r4, r5, r6, r7, r8, sb, pc} + lsr r1, r2, #0x18 + lsr r0, r2, #8 + lsl r7, r2, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + lsl r8, r2, #0x18 + orr r0, r1, r0 + and r7, r7, #0xff0000 + and r1, r8, #0xff000000 + orr r0, r7, r0 + orr r0, r1, r0 + and r0, r0, #0xe0000000 + cmp r0, #0xe0000000 + addeq sp, sp, #0xc + moveq r0, #4 + popeq {r4, r5, r6, r7, r8, sb, pc} + add r1, sp, #8 + mov r0, r6 + bl ov00_0230DB58 + cmp r0, #0 + addne sp, sp, #0xc + popne {r4, r5, r6, r7, r8, sb, pc} + ldr r1, [sp, #0x2c] + ldr r0, [sp, #8] + ldr r2, [sp, #0x28] + str r1, [r0, #0x20] + ldr r0, [sp, #8] + ldr r3, [sp, #0x30] + mov r1, r4 + bl ov00_0230DBB8 + movs r4, r0 + beq _0230E1DC + ldr r0, [sp, #8] + bl ov00_02310814 + add sp, sp, #0xc + mov r0, r4 + pop {r4, r5, r6, r7, r8, sb, pc} +_0230E1DC: + ldr r0, [sp, #0x34] + cmp r0, #0 + bne _0230E200 + cmp r5, #0 + ldrne r0, [sp, #8] + add sp, sp, #0xc + strne r0, [r5] + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, pc} +_0230E200: + ldr r1, [sp, #8] + mov r8, #1 + ldr r0, [r1, #0x24] + mov r7, #0 + add r0, r0, #1 + str r0, [r1, #0x24] + mov r4, r8 +_0230E21C: + mov r0, r6 + bl ov00_0230E0B0 + ldr r0, [sp, #8] + ldr r0, [r0, #0xc] + cmp r0, #5 + movge sb, r8 + movlt sb, r7 + cmp sb, #0 + bne _0230E248 + mov r0, r4 + bl ov00_02079B14 +_0230E248: + cmp sb, #0 + beq _0230E21C + ldr r1, [sp, #8] + ldr r0, [r1, #0x24] + sub r0, r0, #1 + str r0, [r1, #0x24] + ldr r1, [sp, #8] + ldr r0, [r1, #0xc] + cmp r0, #5 + streq r1, [r5] + ldr r0, [sp, #8] + ldr r0, [r0, #0x18] + add sp, sp, #0xc + pop {r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_0230E104 + + arm_func_start ov00_0230E280 +ov00_0230E280: @ 0x0230E280 + push {r0, r1, r2, r3} + push {r3, r4, r5, lr} + sub sp, sp, #8 + mov r5, r0 + ldr r0, [r5, #0xc] + mov r4, r3 + cmp r0, #5 + addne sp, sp, #8 + movne r0, #8 + popne {r3, r4, r5, lr} + addne sp, sp, #0x10 + bxne lr + add r0, sp, #0x1c + add r1, sp, #0x20 + bl ov00_02310E00 + cmp r4, #0 + beq _0230E318 + ldr r0, [r5, #8] + ldr r0, [r0, #0x40] + cmp r0, #2 + bne _0230E318 + ldr r0, [sp, #0x1c] + add r3, sp, #4 + ldrb r1, [r0] + ldrb r0, [r0, #1] + ldr r2, [sp, #0x20] + strb r1, [r3] + strb r0, [r3, #1] + ldr r0, [r5, #8] + ldrh r1, [sp, #4] + ldr r0, [r0, #0x44] + add r0, r1, r0 + cmp r2, r0 + addne sp, sp, #8 + movne r0, #9 + popne {r3, r4, r5, lr} + addne sp, sp, #0x10 + bxne lr +_0230E318: + ldr r0, [r5, #0x98] + bl ov00_022F47A0 + cmp r0, #0 + beq _0230E354 + str r4, [sp] + ldr r2, [sp, #0x1c] + ldr r3, [sp, #0x20] + mov r0, r5 + mov r1, #0 + bl ov00_0230D83C + add sp, sp, #8 + mov r0, #0 + pop {r3, r4, r5, lr} + add sp, sp, #0x10 + bx lr +_0230E354: + ldr r1, [sp, #0x1c] + ldr r2, [sp, #0x20] + mov r0, r5 + mov r3, r4 + bl ov00_023102AC + cmp r0, #0 + movne r0, #0 + moveq r0, #0xa + add sp, sp, #8 + pop {r3, r4, r5, lr} + add sp, sp, #0x10 + bx lr + arm_func_end ov00_0230E280 + + arm_func_start ov00_0230E384 +ov00_0230E384: @ 0x0230E384 + ldr ip, _0230E390 @ =ov00_0230DF44 + mov r1, #1 + bx ip + .align 2, 0 +_0230E390: .4byte ov00_0230DF44 + arm_func_end ov00_0230E384 +_0230E394: + .byte 0x04, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0x84, 0xE3, 0x30, 0x02 + + arm_func_start ov00_0230E3A4 +ov00_0230E3A4: @ 0x0230E3A4 + push {r3, lr} + ldr r1, _0230E3E0 @ =0x02328E18 + ldr r2, [r1] + cmp r2, #1 + popeq {r3, pc} + mov r2, #1 + str r2, [r1] + ldr r0, [r0, #0xc] + ldr r1, _0230E3E4 @ =0x0230E394 + mov r2, #0 + bl ov00_022F4E44 + ldr r0, _0230E3E0 @ =0x02328E18 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0230E3E0: .4byte 0x02328E18 +_0230E3E4: .4byte 0x0230E394 + arm_func_end ov00_0230E3A4 + + arm_func_start ov00_0230E3E8 +ov00_0230E3E8: @ 0x0230E3E8 + ldr r0, [r0, #0xc] + cmp r0, #5 + movlt r0, #0 + bxlt lr + moveq r0, #1 + bxeq lr + cmp r0, #6 + moveq r0, #2 + movne r0, #3 + bx lr + arm_func_end ov00_0230E3E8 + + arm_func_start ov00_0230E410 +ov00_0230E410: @ 0x0230E410 + ldr r0, [r0] + bx lr + arm_func_end ov00_0230E410 + + arm_func_start ov00_0230E418 +ov00_0230E418: @ 0x0230E418 + ldrh r0, [r0, #4] + bx lr + arm_func_end ov00_0230E418 + + arm_func_start ov00_0230E420 +ov00_0230E420: @ 0x0230E420 + ldr r0, [r0, #4] + bx lr + arm_func_end ov00_0230E420 + + arm_func_start ov00_0230E428 +ov00_0230E428: @ 0x0230E428 + ldrh r0, [r0, #8] + bx lr + arm_func_end ov00_0230E428 + + arm_func_start ov00_0230E430 +ov00_0230E430: @ 0x0230E430 + ldr r0, [r0, #0x54] + bx lr + arm_func_end ov00_0230E430 + + arm_func_start ov00_0230E438 +ov00_0230E438: @ 0x0230E438 + ldr r1, [r0, #0x54] + ldr r0, [r0, #0x58] + sub r0, r1, r0 + bx lr + arm_func_end ov00_0230E438 + + arm_func_start ov00_0230E448 +ov00_0230E448: @ 0x0230E448 + ldr r0, [r0] + bx lr + arm_func_end ov00_0230E448 + + arm_func_start ov00_0230E450 +ov00_0230E450: @ 0x0230E450 + str r1, [r0, #0x30] + bx lr + arm_func_end ov00_0230E450 + + arm_func_start ov00_0230E458 +ov00_0230E458: @ 0x0230E458 + str r1, [r0, #0x40] + bx lr + arm_func_end ov00_0230E458 + + arm_func_start ov00_0230E460 +ov00_0230E460: @ 0x0230E460 + ldr r0, [r0, #0x40] + bx lr + arm_func_end ov00_0230E460 + + arm_func_start ov00_0230E468 +ov00_0230E468: @ 0x0230E468 + ldrb r2, [r0, r1] + add r1, r1, #1 + ldrb r1, [r0, r1] + lsl r0, r2, #8 + and r0, r0, #0xff00 + lsl r0, r0, #0x10 + orr r0, r1, r0, lsr #16 + bx lr + arm_func_end ov00_0230E468 + + arm_func_start ov00_0230E488 +ov00_0230E488: @ 0x0230E488 + asr r3, r2, #8 + strb r3, [r0, r1] + add r1, r1, #1 + strb r2, [r0, r1] + bx lr + arm_func_end ov00_0230E488 + + arm_func_start ov00_0230E49C +ov00_0230E49C: @ 0x0230E49C + sub r0, r0, r1 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bx lr + arm_func_end ov00_0230E49C + + arm_func_start ov00_0230E4AC +ov00_0230E4AC: @ 0x0230E4AC + push {r4, r5, r6, lr} + mov r6, r0 + ldr r3, [r6, #0xc] + mov r5, r1 + mov r4, r2 + cmp r3, #5 + bge _0230E514 + ldr r1, [r6, #0x10] + cmp r1, #0 + beq _0230E4FC + bl ov00_0230DF94 + mov r2, #0 + mov r0, r6 + mov r1, r5 + mov r3, r2 + bl ov00_0230D5D0 + cmp r0, #0 + bne _0230E538 + mov r0, #0 + pop {r4, r5, r6, pc} +_0230E4FC: + cmp r3, #4 + moveq r0, #1 + streq r0, [r6, #0x14] + mov r0, r6 + bl ov00_0230DF94 + b _0230E538 +_0230E514: + cmp r3, #7 + beq _0230E538 + bl ov00_0230DF94 + mov r0, r6 + mov r1, r4 + bl ov00_0230D71C + cmp r0, #0 + moveq r0, #0 + popeq {r4, r5, r6, pc} +_0230E538: + mov r0, #1 + pop {r4, r5, r6, pc} + arm_func_end ov00_0230E4AC + + arm_func_start ov00_0230E540 +ov00_0230E540: @ 0x0230E540 + ldr ip, _0230E550 @ =ov00_0230E4AC + mov r1, #7 + mov r2, #2 + bx ip + .align 2, 0 +_0230E550: .4byte ov00_0230E4AC + arm_func_end ov00_0230E540 + + arm_func_start ov00_0230E554 +ov00_0230E554: @ 0x0230E554 + push {r4, lr} + mov r4, r0 + bl ov00_02310184 + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} + mov r0, r4 + mov r1, #1 + mov r2, #4 + bl ov00_0230E4AC + pop {r4, pc} + arm_func_end ov00_0230E554 + + arm_func_start ov00_0230E580 +ov00_0230E580: @ 0x0230E580 + push {r3, r4, r5, r6, r7, lr} + mov r4, r0 + ldr r0, [r4, #0x60] + mov r7, r1 + bl ov00_022F47A0 + movs r5, r0 + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, pc} + cmp r5, #0 + mov r6, #0 + ble _0230E5D4 +_0230E5AC: + ldr r0, [r4, #0x60] + mov r1, r6 + bl ov00_022F47A8 + ldrh r0, [r0, #8] + mov r1, r7 + bl ov00_0230E49C + cmp r0, #0 + addlt r6, r6, #1 + cmplt r6, r5 + blt _0230E5AC +_0230E5D4: + cmp r6, #0 + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, pc} + cmp r6, #0 + sub r6, r6, #1 + beq _0230E604 +_0230E5EC: + ldr r0, [r4, #0x60] + mov r1, r6 + bl ov00_022F491C + cmp r6, #0 + sub r6, r6, #1 + bne _0230E5EC +_0230E604: + ldr r0, [r4, #0x60] + bl ov00_022F47A0 + movs r6, r0 + bne _0230E624 + mov r0, #0 + str r0, [r4, #0x58] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0230E624: + ldr r0, [r4, #0x60] + mov r1, #0 + bl ov00_022F47A8 + cmp r6, #0 + ldr r5, [r0] + mov r7, #0 + ble _0230E664 +_0230E640: + ldr r0, [r4, #0x60] + mov r1, r7 + bl ov00_022F47A8 + ldr r1, [r0] + add r7, r7, #1 + sub r1, r1, r5 + str r1, [r0] + cmp r7, r6 + blt _0230E640 +_0230E664: + mov r2, r5 + add r0, r4, #0x50 + mov r1, #0 + bl ov00_0230D438 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_0230E580 + + arm_func_start ov00_0230E67C +ov00_0230E67C: @ 0x0230E67C + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + mov r6, r0 + ldr r0, [r6, #0xc] + mov r5, r1 + cmp r0, #5 + cmpne r0, #6 + mov r4, r2 + addne sp, sp, #4 + movne r0, #1 + popne {r3, r4, r5, r6, pc} + ldr r0, [r6, #0x9c] + bl ov00_022F47A0 + cmp r0, #0 + beq _0230E6E4 + mov r1, #0 + mov r0, r6 + mov r2, r5 + mov r3, r4 + str r1, [sp] + bl ov00_0230D904 + cmp r0, #0 + movne r0, #1 + add sp, sp, #4 + moveq r0, #0 + pop {r3, r4, r5, r6, pc} +_0230E6E4: + mov r0, r6 + mov r1, r5 + mov r2, r4 + mov r3, #0 + bl ov00_0230D678 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_0230E67C + + arm_func_start ov00_0230E70C +ov00_0230E70C: @ 0x0230E70C + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + mov r6, r0 + ldr r3, [r6, #0xc] + mov r5, r1 + cmp r3, #5 + mov r4, r2 + cmpne r3, #6 + beq _0230E748 + bl ov00_0230E540 + cmp r0, #0 + bne _0230E7AC + add sp, sp, #4 + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_0230E748: + ldr r0, [r6, #0x9c] + bl ov00_022F47A0 + cmp r0, #0 + beq _0230E788 + mov ip, #1 + mov r0, r6 + mov r2, r5 + mov r3, r4 + mov r1, #0 + str ip, [sp] + bl ov00_0230D904 + cmp r0, #0 + movne r0, #1 + add sp, sp, #4 + moveq r0, #0 + pop {r3, r4, r5, r6, pc} +_0230E788: + mov r0, r6 + mov r1, r5 + mov r2, r4 + mov r3, #1 + bl ov00_0230D678 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, r5, r6, pc} +_0230E7AC: + mov r0, #1 + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_0230E70C + + arm_func_start ov00_0230E7B8 +ov00_0230E7B8: @ 0x0230E7B8 + push {r4, lr} + sub sp, sp, #0x40 + mov r4, r0 + ldr r3, [r4, #0xc] + cmp r3, #2 + beq _0230E7E8 + bl ov00_0230E540 + cmp r0, #0 + movne r0, #1 + add sp, sp, #0x40 + moveq r0, #0 + pop {r4, pc} +_0230E7E8: + cmp r2, #0x20 + bge _0230E808 + bl ov00_0230E540 + cmp r0, #0 + movne r0, #1 + add sp, sp, #0x40 + moveq r0, #0 + pop {r4, pc} +_0230E808: + add r0, sp, #0x20 + bl ov00_0230D220 + add r0, sp, #0 + bl ov00_0230D128 + add r1, sp, #0 + add r0, r4, #0x68 + bl ov00_0230D220 + add r1, sp, #0x20 + add r2, sp, #0 + mov r0, r4 + bl ov00_0230FC48 + cmp r0, #0 + moveq r0, #0 + movne r0, #3 + strne r0, [r4, #0xc] + movne r0, #1 + add sp, sp, #0x40 + pop {r4, pc} + arm_func_end ov00_0230E7B8 + + arm_func_start ov00_0230E850 +ov00_0230E850: @ 0x0230E850 + push {r3, r4, r5, lr} + sub sp, sp, #0x20 + mov r5, r0 + ldr r3, [r5, #0xc] + mov r4, r1 + cmp r3, #0 + beq _0230E884 + bl ov00_0230E540 + cmp r0, #0 + movne r0, #1 + add sp, sp, #0x20 + moveq r0, #0 + pop {r3, r4, r5, pc} +_0230E884: + cmp r2, #0x40 + bge _0230E8A4 + bl ov00_0230E540 + cmp r0, #0 + movne r0, #1 + add sp, sp, #0x20 + moveq r0, #0 + pop {r3, r4, r5, pc} +_0230E8A4: + mov r0, r4 + add r1, r5, #0x68 + bl ov00_0230D328 + cmp r0, #0 + bne _0230E8D4 + mov r0, r5 + bl ov00_0230E540 + cmp r0, #0 + movne r0, #1 + add sp, sp, #0x20 + moveq r0, #0 + pop {r3, r4, r5, pc} +_0230E8D4: + add r0, sp, #0 + add r1, r4, #0x20 + bl ov00_0230D220 + ldr r2, [r5, #0x38] + ldr r3, [r5, #0x3c] + add r1, sp, #0 + mov r0, r5 + bl ov00_0230FCDC + cmp r0, #0 + addeq sp, sp, #0x20 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldr r0, [r5, #0x38] + cmp r0, #0 + beq _0230E91C + bl ov00_022F5B14 + mov r0, #0 + str r0, [r5, #0x38] +_0230E91C: + mov r0, #1 + str r0, [r5, #0xc] + add sp, sp, #0x20 + pop {r3, r4, r5, pc} + arm_func_end ov00_0230E850 + + arm_func_start ov00_0230E92C +ov00_0230E92C: @ 0x0230E92C + push {r3, r4, r5, r6, lr} + sub sp, sp, #0xc + mov r6, r0 + ldr r3, [r6, #0xc] + mov r5, r1 + mov r4, r2 + cmp r3, #3 + beq _0230E964 + bl ov00_0230E540 + cmp r0, #0 + movne r0, #1 + add sp, sp, #0xc + moveq r0, #0 + pop {r3, r4, r5, r6, pc} +_0230E964: + cmp r4, #0x20 + bge _0230E984 + bl ov00_0230E540 + cmp r0, #0 + movne r0, #1 + add sp, sp, #0xc + moveq r0, #0 + pop {r3, r4, r5, r6, pc} +_0230E984: + mov r0, r5 + add r1, r6, #0x68 + bl ov00_0230D328 + cmp r0, #0 + bne _0230E9B4 + mov r0, r6 + bl ov00_0230E540 + cmp r0, #0 + movne r0, #1 + add sp, sp, #0xc + moveq r0, #0 + pop {r3, r4, r5, r6, pc} +_0230E9B4: + ldr r0, [r6, #8] + ldr r0, [r0, #0x20] + cmp r0, #0 + bne _0230E9F0 + mov r0, r6 + bl ov00_02310184 + cmp r0, #0 + addeq sp, sp, #0xc + moveq r0, #0 + popeq {r3, r4, r5, r6, pc} + mov r0, r6 + bl ov00_0230DF94 + add sp, sp, #0xc + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_0230E9F0: + mov r0, #4 + str r0, [r6, #0xc] + bl ov00_022F5594 + ldr r2, [r6, #0x8c] + add r1, r5, #0x20 + sub r0, r0, r2 + stm sp, {r0, r1} + sub r0, r4, #0x20 + str r0, [sp, #8] + ldrh r3, [r6, #4] + ldr r0, [r6, #8] + ldr r2, [r6] + mov r1, r6 + bl ov00_0230D4F0 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + add sp, sp, #0xc + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_0230E92C + + arm_func_start ov00_0230EA3C +ov00_0230EA3C: @ 0x0230EA3C + push {r3, lr} + ldr r1, [r0, #0xc] + cmp r1, #1 + beq _0230EA60 + bl ov00_0230E540 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, pc} +_0230EA60: + mov r1, #0 + mov ip, #5 + mov r2, r1 + mov r3, r1 + str ip, [r0, #0xc] + bl ov00_0230D5D0 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, pc} + arm_func_end ov00_0230EA3C + + arm_func_start ov00_0230EA88 +ov00_0230EA88: @ 0x0230EA88 + push {r4, r5, r6, lr} + mov r6, r0 + ldr r3, [r6, #0xc] + mov r5, r1 + mov r4, r2 + cmp r3, #1 + beq _0230EAB8 + bl ov00_0230E540 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r4, r5, r6, pc} +_0230EAB8: + bl ov00_0230DF94 + mov r0, r6 + bl ov00_02310184 + cmp r0, #0 + moveq r0, #0 + popeq {r4, r5, r6, pc} + mov r0, r6 + mov r2, r5 + mov r3, r4 + mov r1, #2 + bl ov00_0230D5D0 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r4, r5, r6, pc} + arm_func_end ov00_0230EA88 + + arm_func_start ov00_0230EAF4 +ov00_0230EAF4: @ 0x0230EAF4 + push {r4, lr} + mov r4, r0 + bl ov00_02310184 + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} + ldr r0, [r4, #0xc] + mov r1, #2 + cmp r0, #6 + moveq r2, #0 + movne r2, #1 + mov r0, r4 + bl ov00_0230E4AC + cmp r0, #0 + moveq r0, #0 + movne r0, #1 + pop {r4, pc} + arm_func_end ov00_0230EAF4 + + arm_func_start ov00_0230EB38 +ov00_0230EB38: @ 0x0230EB38 + push {r3, lr} + ldrh ip, [r0, #0x66] + cmp r1, #0 + add ip, ip, #1 + strh ip, [r0, #0x66] + bne _0230EB6C + mov r1, r2 + mov r2, r3 + bl ov00_0230E70C + cmp r0, #0 + bne _0230EC30 + mov r0, #0 + pop {r3, pc} +_0230EB6C: + cmp r1, #1 + bne _0230EB90 + mov r1, r2 + mov r2, r3 + bl ov00_0230E7B8 + cmp r0, #0 + bne _0230EC30 + mov r0, #0 + pop {r3, pc} +_0230EB90: + cmp r1, #2 + bne _0230EBB4 + mov r1, r2 + mov r2, r3 + bl ov00_0230E850 + cmp r0, #0 + bne _0230EC30 + mov r0, #0 + pop {r3, pc} +_0230EBB4: + cmp r1, #3 + bne _0230EBD8 + mov r1, r2 + mov r2, r3 + bl ov00_0230E92C + cmp r0, #0 + bne _0230EC30 + mov r0, #0 + pop {r3, pc} +_0230EBD8: + cmp r1, #4 + bne _0230EBF4 + bl ov00_0230EA3C + cmp r0, #0 + bne _0230EC30 + mov r0, #0 + pop {r3, pc} +_0230EBF4: + cmp r1, #5 + bne _0230EC18 + mov r1, r2 + mov r2, r3 + bl ov00_0230EA88 + cmp r0, #0 + bne _0230EC30 + mov r0, #0 + pop {r3, pc} +_0230EC18: + cmp r1, #6 + bne _0230EC30 + bl ov00_0230EAF4 + cmp r0, #0 + moveq r0, #0 + popeq {r3, pc} +_0230EC30: + mov r0, #1 + pop {r3, pc} + arm_func_end ov00_0230EB38 +_0230EC38: + .byte 0x08, 0xC0, 0x9F, 0xE5, 0xBC, 0x00, 0xD0, 0xE1 + .byte 0xBC, 0x10, 0xD1, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1, 0x9C, 0xE4, 0x30, 0x02 + + arm_func_start ov00_0230EC4C +ov00_0230EC4C: @ 0x0230EC4C + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x10 + mov sb, r0 + ldr r0, [sb, #0x5c] + mov r8, r1 + mov r7, r2 + mov r6, r3 + ldr r5, [sp, #0x34] + bl ov00_022F47A0 + mov r4, r0 + cmp r4, #0 + mov sl, #0 + ble _0230ECC8 +_0230EC80: + ldr r0, [sb, #0x5c] + mov r1, sl + bl ov00_022F47A8 + ldrh r0, [r0, #0xc] + cmp r0, r7 + bne _0230ECAC + mov r0, #0 + str r0, [r5] + add sp, sp, #0x10 + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_0230ECAC: + mov r1, r7 + bl ov00_0230E49C + cmp r0, #0 + bgt _0230ECC8 + add sl, sl, #1 + cmp sl, r4 + blt _0230EC80 +_0230ECC8: + add r0, sb, #0x44 + bl ov00_0230D388 + ldr r2, [sp, #0x30] + cmp r0, r2 + movlt r0, #1 + addlt sp, sp, #0x10 + strlt r0, [r5] + poplt {r4, r5, r6, r7, r8, sb, sl, pc} + ldr r0, [sb, #0x4c] + add r1, sp, #0 + str r2, [sp, #4] + str r8, [sp, #8] + strh r7, [sp, #0xc] + str r0, [sp] + ldr r0, [sb, #0x5c] + ldr r2, _0230EDFC @ =0x0230EC38 + bl ov00_022F4870 + ldr r0, [sb, #0x5c] + bl ov00_022F47A0 + add r1, r4, #1 + cmp r1, r0 + movne r0, #1 + addne sp, sp, #0x10 + strne r0, [r5] + popne {r4, r5, r6, r7, r8, sb, sl, pc} + ldr r2, [sp, #0x30] + mov r1, r6 + add r0, sb, #0x44 + bl ov00_0230D3E0 + cmp r4, #0 + bne _0230ED70 + sub r0, r7, #1 + lsl r2, r0, #0x10 + ldrh r1, [sb, #0x66] + mov r0, sb + lsr r2, r2, #0x10 + bl ov00_023100A8 + cmp r0, #0 + bne _0230EDE8 + add sp, sp, #0x10 + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_0230ED70: + ldr r0, [sb, #0x5c] + mov r1, r4 + bl ov00_022F47A8 + ldrh r0, [r0, #0xc] + cmp r0, r7 + bne _0230EDE8 + ldr r0, [sb, #0x5c] + sub r1, r4, #1 + bl ov00_022F47A8 + mov r4, r0 + ldrh r1, [r4, #0xc] + mov r0, r7 + bl ov00_0230E49C + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, #1 + bls _0230EDE8 + ldrh r1, [r4, #0xc] + sub r0, r7, #1 + lsl r2, r0, #0x10 + add r0, r1, #1 + lsl r1, r0, #0x10 + mov r0, sb + lsr r1, r1, #0x10 + lsr r2, r2, #0x10 + bl ov00_023100A8 + cmp r0, #0 + addeq sp, sp, #0x10 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, sl, pc} +_0230EDE8: + mov r0, #0 + str r0, [r5] + mov r0, #1 + add sp, sp, #0x10 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0230EDFC: .4byte 0x0230EC38 + arm_func_end ov00_0230EC4C + + arm_func_start ov00_0230EE00 +ov00_0230EE00: @ 0x0230EE00 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov sb, r0 + ldr r0, [sb, #0x5c] + ldm r1, {r4, r5} + mov r1, r2 + mov r8, #0 + bl ov00_022F491C + ldr r0, [sb, #0x5c] + bl ov00_022F47A0 + mov r6, r0 + cmp r6, #0 + mov r7, r8 + ble _0230EE70 +_0230EE34: + ldr r0, [sb, #0x5c] + mov r1, r7 + bl ov00_022F47A8 + ldr r1, [r0] + cmp r1, r4 + ble _0230EE64 + sub r1, r1, r5 + str r1, [r0] + ldr r0, [r0, #4] + add r0, r1, r0 + cmp r8, r0 + movle r8, r0 +_0230EE64: + add r7, r7, #1 + cmp r7, r6 + blt _0230EE34 +_0230EE70: + mov r1, r4 + mov r2, r5 + add r0, sb, #0x44 + bl ov00_0230D438 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_0230EE00 + + arm_func_start ov00_0230EE84 +ov00_0230EE84: @ 0x0230EE84 + push {r4, r5, r6, lr} + mov r6, r0 +_0230EE8C: + ldr r0, [r6, #0x5c] + bl ov00_022F47A0 + subs r5, r0, #1 + bmi _0230EEFC +_0230EE9C: + ldr r0, [r6, #0x5c] + mov r1, r5 + bl ov00_022F47A8 + mov r4, r0 + ldrh r1, [r4, #0xc] + ldrh r0, [r6, #0x66] + cmp r1, r0 + bne _0230EEF4 + ldr ip, [r6, #0x44] + ldr r1, [r4, #8] + ldm r4, {r2, r3} + mov r0, r6 + add r2, ip, r2 + bl ov00_0230EB38 + cmp r0, #0 + moveq r0, #0 + popeq {r4, r5, r6, pc} + mov r0, r6 + mov r1, r4 + mov r2, r5 + bl ov00_0230EE00 + b _0230EE8C +_0230EEF4: + subs r5, r5, #1 + bpl _0230EE9C +_0230EEFC: + mov r0, #1 + pop {r4, r5, r6, pc} + arm_func_end ov00_0230EE84 + + arm_func_start ov00_0230EF04 +ov00_0230EF04: @ 0x0230EF04 + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #0x90] + cmp r0, #0 + popne {r4, pc} + mov r0, #1 + str r0, [r4, #0x90] + bl ov00_022F5594 + str r0, [r4, #0x94] + pop {r4, pc} + arm_func_end ov00_0230EF04 + + arm_func_start ov00_0230EF2C +ov00_0230EF2C: @ 0x0230EF2C + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0xc + mov sb, r0 + ldr r4, [sb, #8] + mov r6, r3 + ldr r3, [r4, #0x44] + mov r8, r1 + add r5, r3, #7 + mov r7, r2 + cmp r6, r5 + bge _0230EF70 + bl ov00_0230E540 + cmp r0, #0 + movne r0, #1 + add sp, sp, #0xc + moveq r0, #0 + pop {r4, r5, r6, r7, r8, sb, pc} +_0230EF70: + add r0, r7, r3 + mov r1, #3 + bl ov00_0230E468 + ldr r1, [sb, #8] + mov r4, r0 + ldr r0, [r1, #0x44] + mov r1, #5 + add r0, r7, r0 + bl ov00_0230E468 + ldr r2, [sb, #8] + mov r1, r0 + ldr r0, [r2, #0x40] + cmp r0, #2 + cmpeq r8, #0 + addne r7, r7, r5 + subne r6, r6, r5 + bne _0230EFEC + ldr r0, [r2, #0x44] + ldrb r2, [r7] + add r0, r0, #5 + strb r2, [r7, r0] + ldr r0, [sb, #8] + ldrb r2, [r7, #1] + ldr r0, [r0, #0x44] + add r0, r0, #6 + strb r2, [r7, r0] + ldr r0, [sb, #8] + ldr r0, [r0, #0x44] + sub r0, r5, r0 + add r7, r7, r0 + sub r6, r6, r0 +_0230EFEC: + mov r0, sb + bl ov00_0230E580 + cmp r0, #0 + addeq sp, sp, #0xc + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, pc} + ldrh r1, [sb, #0x66] + cmp r4, r1 + bne _0230F058 + mov r0, sb + bl ov00_0230EF04 + mov r0, sb + mov r1, r8 + mov r2, r7 + mov r3, r6 + bl ov00_0230EB38 + cmp r0, #0 + addeq sp, sp, #0xc + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, pc} + mov r0, sb + bl ov00_0230EE84 + cmp r0, #0 + movne r0, #1 + add sp, sp, #0xc + moveq r0, #0 + pop {r4, r5, r6, r7, r8, sb, pc} +_0230F058: + mov r0, r4 + bl ov00_0230E49C + cmp r0, #0 + bge _0230F07C + mov r0, sb + bl ov00_0230EF04 + add sp, sp, #0xc + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, pc} +_0230F07C: + add r5, sp, #8 + str r6, [sp] + mov r0, sb + mov r1, r8 + mov r2, r4 + mov r3, r7 + str r5, [sp, #4] + bl ov00_0230EC4C + cmp r0, #0 + addeq sp, sp, #0xc + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, pc} + ldr r0, [sp, #8] + cmp r0, #0 + beq _0230F0D0 + mov r0, sb + bl ov00_0230E554 + cmp r0, #0 + addeq sp, sp, #0xc + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, pc} +_0230F0D0: + mov r0, #1 + add sp, sp, #0xc + pop {r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_0230EF2C + + arm_func_start ov00_0230F0DC +ov00_0230F0DC: @ 0x0230F0DC + push {r4, lr} + mov r4, r0 + cmp r2, #2 + beq _0230F100 + bl ov00_0230E540 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r4, pc} +_0230F100: + mov r0, r1 + mov r1, #0 + bl ov00_0230E468 + mov r1, r0 + mov r0, r4 + bl ov00_0230E580 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r4, pc} + arm_func_end ov00_0230F0DC + + arm_func_start ov00_0230F128 +ov00_0230F128: @ 0x0230F128 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r7, r1 + mov r4, r0 + mov r0, r7 + mov r1, #0 + mov r5, r2 + bl ov00_0230E468 + mov r6, r0 + cmp r5, #2 + moveq r7, r6 + beq _0230F188 + cmp r5, #4 + bne _0230F170 + mov r0, r7 + mov r1, #2 + bl ov00_0230E468 + mov r7, r0 + b _0230F188 +_0230F170: + mov r0, r4 + bl ov00_0230E540 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_0230F188: + ldr r0, [r4, #0x60] + bl ov00_022F47A0 + mov r8, r0 + cmp r8, #0 + mov sb, #0 + ble _0230F1FC +_0230F1A0: + ldr r0, [r4, #0x60] + mov r1, sb + bl ov00_022F47A8 + mov r5, r0 + ldrh r0, [r5, #8] + mov r1, r6 + bl ov00_0230E49C + cmp r0, #0 + blt _0230F1F0 + ldrh r0, [r5, #8] + mov r1, r7 + bl ov00_0230E49C + cmp r0, #0 + bgt _0230F1F0 + mov r0, r4 + mov r1, r5 + bl ov00_02310228 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} +_0230F1F0: + add sb, sb, #1 + cmp sb, r8 + blt _0230F1A0 +_0230F1FC: + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_0230F128 + + arm_func_start ov00_02310170 +ov00_02310170: @ 0x0230F204 + ldr ip, _0230F20C @ =ov00_02310170 + bx ip + .align 2, 0 +_0230F20C: .4byte ov00_02310170 + arm_func_end ov00_02310170 + + arm_func_start ov00_0230F210 +ov00_0230F210: @ 0x0230F210 + push {r3, r4, r5, lr} + mov r4, r0 + ldr r0, [r4, #0x34] + mov r5, r1 + cmp r0, #0 + moveq r0, #1 + popeq {r3, r4, r5, pc} + cmp r2, #8 + movne r0, #1 + popne {r3, r4, r5, pc} + ldr r1, _0230F2A0 @ =0x0231BEF8 + mov r0, r5 + mov r2, #4 + bl FUN_02087348 + cmp r0, #0 + movne r0, #1 + popne {r3, r4, r5, pc} + ldrb r1, [r5, #4] + ldrb r0, [r5, #5] + add r2, sp, #0 + strb r1, [r2] + strb r0, [r2, #1] + ldrb r1, [r5, #6] + ldrb r0, [r5, #7] + strb r1, [r2, #2] + strb r0, [r2, #3] + bl ov00_022F5594 + mov r2, r0 + ldr r1, [sp] + mov r0, r4 + sub r1, r2, r1 + bl ov00_0230D7AC + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_0230F2A0: .4byte 0x0231BEF8 + arm_func_end ov00_0230F210 + + arm_func_start ov00_0230F2A4 +ov00_0230F2A4: @ 0x0230F2A4 + push {r3, lr} + ldr r1, [r0, #0xc] + cmp r1, #7 + moveq r0, #1 + popeq {r3, pc} + cmp r1, #6 + moveq r2, #0 + movne r2, #1 + mov r1, #2 + bl ov00_0230E4AC + cmp r0, #0 + moveq r0, #0 + movne r0, #1 + pop {r3, pc} + arm_func_end ov00_0230F2A4 + + arm_func_start ov00_0230F2DC +ov00_0230F2DC: @ 0x0230F2DC + push {r3, lr} + ldr ip, [r0, #8] + cmp r1, #0x64 + ldr ip, [ip, #0x44] + add lr, ip, #3 + sub ip, r3, lr + bne _0230F314 + add r1, r2, lr + mov r2, ip + bl ov00_0230F0DC + cmp r0, #0 + bne _0230F398 + mov r0, #0 + pop {r3, pc} +_0230F314: + cmp r1, #0x65 + bne _0230F338 + add r1, r2, lr + mov r2, ip + bl ov00_0230F128 + cmp r0, #0 + bne _0230F398 + mov r0, #0 + pop {r3, pc} +_0230F338: + cmp r1, #0x66 + bne _0230F35C + mov r1, r2 + mov r2, r3 + bl ov00_02310170 + cmp r0, #0 + bne _0230F398 + mov r0, #0 + pop {r3, pc} +_0230F35C: + cmp r1, #0x67 + bne _0230F380 + add r1, r2, lr + mov r2, ip + bl ov00_0230F210 + cmp r0, #0 + bne _0230F398 + mov r0, #0 + pop {r3, pc} +_0230F380: + cmp r1, #0x68 + bne _0230F398 + bl ov00_0230F2A4 + cmp r0, #0 + moveq r0, #0 + popeq {r3, pc} +_0230F398: + mov r0, #1 + pop {r3, pc} + arm_func_end ov00_0230F2DC + + arm_func_start ov00_0230F3A0 +ov00_0230F3A0: @ 0x0230F3A0 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x18 + mov sl, r0 + ldr r6, [sp, #0x40] + mov r8, r2 + ldr r4, [sl, #0x44] + mov sb, r1 + mov r7, r3 + mov r1, r7 + mov r2, r6 + sub fp, r8, r4 + add r4, sb, r4 + bl ov00_0231032C + str r0, [sp, #0x14] + ldr r0, [sl, #0x2c] + cmp r0, #0 + beq _0230F418 + mov r0, #0 + stm sp, {r0, sb} + str r8, [sp, #8] + str r0, [sp, #0xc] + ldr r1, [sp, #0x14] + mov r0, sl + mov r2, r7 + mov r3, r6 + bl ov00_0230D9CC + cmp r0, #0 + addeq sp, sp, #0x18 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230F418: + cmp fp, #2 + ble _0230F43C + ldr r1, _0230F698 @ =0x0231BF00 + mov r0, r4 + mov r2, #2 + bl FUN_02087348 + cmp r0, #0 + moveq r5, #1 + beq _0230F440 +_0230F43C: + mov r5, #0 +_0230F440: + ldr r0, [sp, #0x14] + cmp r0, #0 + bne _0230F544 + add ip, sp, #0x10 + mov r0, sl + mov r1, r7 + mov r2, r6 + mov r3, sb + stm sp, {r8, ip} + bl ov00_0230DAB8 + cmp r0, #0 + addeq sp, sp, #0x18 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [sp, #0x10] + cmp r0, #0 + addne sp, sp, #0x18 + movne r0, #1 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r5, #0 + beq _0230F4A0 + ldrb r0, [r4, #2] + cmp r0, #1 + beq _0230F4E0 +_0230F4A0: + cmp r5, #0 + beq _0230F4B4 + ldrb r0, [r4, #2] + cmp r0, #0x68 + beq _0230F4D4 +_0230F4B4: + mov r0, sl + mov r1, r7 + mov r2, r6 + bl ov00_023101A0 + cmp r0, #0 + addeq sp, sp, #0x18 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230F4D4: + add sp, sp, #0x18 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230F4E0: + ldr r0, [sl, #0x20] + cmp r0, #0 + addeq sp, sp, #0x18 + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r1, sp, #0x14 + mov r0, sl + mov r2, r7 + mov r3, r6 + bl ov00_0230DB88 + cmp r0, #0 + beq _0230F544 + cmp r0, #5 + beq _0230F538 + mov r0, sl + mov r1, r7 + mov r2, r6 + bl ov00_023101A0 + cmp r0, #0 + addeq sp, sp, #0x18 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230F538: + add sp, sp, #0x18 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230F544: + ldr r0, [sp, #0x14] + ldr r1, [r0, #0xc] + cmp r1, #7 + bne _0230F588 + cmp r5, #0 + beq _0230F568 + ldrb r1, [r4, #2] + cmp r1, #0x68 + beq _0230F57C +_0230F568: + bl ov00_02310184 + cmp r0, #0 + addeq sp, sp, #0x18 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230F57C: + add sp, sp, #0x18 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230F588: + cmp r5, #0 + beq _0230F5D0 + cmp fp, #4 + blt _0230F5D0 + ldr r1, _0230F698 @ =0x0231BF00 + add r0, r4, #2 + mov r2, #2 + bl FUN_02087348 + cmp r0, #0 + bne _0230F5D0 + ldrb r0, [sb, #1] + add r4, r4, #2 + sub r8, r8, #2 + strb r0, [sb, #3] + ldrb r0, [sb] + mov r5, #0 + strb r0, [sb, #2] + add sb, sb, #2 +_0230F5D0: + cmp r5, #0 + bne _0230F644 + ldr r0, [sp, #0x14] + ldr r1, [r0, #0xc] + cmp r1, #5 + bge _0230F61C + add r4, sp, #0x10 + str r8, [sp] + mov r0, sl + mov r1, r7 + mov r2, r6 + mov r3, sb + str r4, [sp, #4] + bl ov00_0230DAB8 + cmp r0, #0 + bne _0230F638 + add sp, sp, #0x18 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230F61C: + mov r1, sb + mov r2, r8 + bl ov00_0230E67C + cmp r0, #0 + addeq sp, sp, #0x18 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230F638: + add sp, sp, #0x18 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230F644: + ldrb r1, [r4, #2] + cmp r1, #8 + bge _0230F674 + ldr r0, [sp, #0x14] + mov r2, sb + mov r3, r8 + bl ov00_0230EF2C + cmp r0, #0 + movne r0, #1 + add sp, sp, #0x18 + moveq r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230F674: + ldr r0, [sp, #0x14] + mov r2, sb + mov r3, r8 + bl ov00_0230F2DC + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + add sp, sp, #0x18 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0230F698: .4byte 0x0231BF00 + arm_func_end ov00_0230F3A0 + + arm_func_start ov00_0230F69C +ov00_0230F69C: @ 0x0230F69C + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x10 + mov r7, r0 + mov r6, r1 + mov r5, r2 + bl ov00_0231032C + ldr r1, [r7, #0x2c] + mov r4, r0 + cmp r1, #0 + beq _0230F700 + mov r0, #1 + str r0, [sp] + mov ip, #0 + str ip, [sp, #4] + str ip, [sp, #8] + mov r0, r7 + mov r1, r4 + mov r2, r6 + mov r3, r5 + str ip, [sp, #0xc] + bl ov00_0230D9CC + cmp r0, #0 + addeq sp, sp, #0x10 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} +_0230F700: + cmp r4, #0 + addeq sp, sp, #0x10 + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, pc} + ldr r0, [r4, #0xc] + cmp r0, #0 + bne _0230F770 + ldr r0, [r4, #0x20] + cmp r0, #0 + beq _0230F740 + bl ov00_022F5594 + ldr r2, [r4, #0x1c] + ldr r1, [r4, #0x20] + sub r0, r0, r2 + cmp r0, r1 + bhs _0230F74C +_0230F740: + add sp, sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0230F74C: + mov r0, r4 + mov r1, #6 + mov r2, #1 + bl ov00_0230E4AC + cmp r0, #0 + bne _0230F790 + add sp, sp, #0x10 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_0230F770: + mov r0, r4 + mov r1, #2 + mov r2, #1 + bl ov00_0230E4AC + cmp r0, #0 + addeq sp, sp, #0x10 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} +_0230F790: + mov r0, #1 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_0230F69C + + arm_func_start ov00_0230F79C +ov00_0230F79C: @ 0x0230F79C + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x10 + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, r3 + bl ov00_0231032C + ldr r1, [r8, #0x2c] + mov r4, r0 + cmp r1, #0 + beq _0230F804 + mov r0, #1 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, r8 + mov r1, r4 + mov r2, r7 + mov r3, r6 + str r5, [sp, #0xc] + bl ov00_0230D9CC + cmp r0, #0 + addeq sp, sp, #0x10 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, pc} +_0230F804: + cmp r4, #0 + addeq sp, sp, #0x10 + moveq r0, #1 + popeq {r4, r5, r6, r7, r8, pc} + mov r0, r4 + mov r1, #6 + mov r2, #1 + bl ov00_0230E4AC + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + add sp, sp, #0x10 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov00_0230F79C + + arm_func_start ov00_0230F838 +ov00_0230F838: @ 0x0230F838 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x5f0 + mov sl, r0 + ldr r0, [sl] + bl ov00_022F5320 + cmp r0, #0 + beq _0230F9AC + mvn r6, #0xe + sub r5, r6, #8 + sub r4, r6, #0x14 + add r7, r6, #0xe + add r8, sp, #0x14 + mov sb, #8 + add fp, sp, #0xc +_0230F870: + str sb, [sp, #8] + str fp, [sp] + add r0, sp, #8 + str r0, [sp, #4] + ldr r0, [sl] + ldr r2, _0230F9B8 @ =0x000005DC + mov r1, r8 + mov r3, #0 + bl ov00_022F509C + mov r2, r0 + cmp r2, r7 + bne _0230F958 + ldr r0, [sl] + bl ov00_022F5194 + cmp r0, r6 + bne _0230F8F0 + ldrh ip, [sp, #0xe] + ldr r1, [sp, #0x10] + mov r0, sl + asr r2, ip, #8 + and r3, r2, #0xff + lsl r2, ip, #8 + and r2, r2, #0xff00 + orr r2, r3, r2 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + bl ov00_0230F69C + cmp r0, #0 + bne _0230F99C + add sp, sp, #0x5f0 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230F8F0: + cmp r0, r5 + bne _0230F93C + ldrh ip, [sp, #0xe] + ldr r1, [sp, #0x10] + mov r0, sl + asr r2, ip, #8 + and r3, r2, #0xff + lsl r2, ip, #8 + and r2, r2, #0xff00 + orr r2, r3, r2 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + mov r3, #0 + bl ov00_0230F79C + cmp r0, #0 + bne _0230F99C + add sp, sp, #0x5f0 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230F93C: + cmp r0, r4 + beq _0230F99C + mov r0, sl + bl ov00_02310BB8 + add sp, sp, #0x5f0 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230F958: + ldrh ip, [sp, #0xe] + mov r0, sl + mov r1, r8 + asr r3, ip, #8 + lsl ip, ip, #8 + and r3, r3, #0xff + and ip, ip, #0xff00 + orr r3, r3, ip + lsl r3, r3, #0x10 + lsr r3, r3, #0x10 + str r3, [sp] + ldr r3, [sp, #0x10] + bl ov00_0230F3A0 + cmp r0, #0 + addeq sp, sp, #0x5f0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0230F99C: + ldr r0, [sl] + bl ov00_022F5320 + cmp r0, #0 + bne _0230F870 +_0230F9AC: + mov r0, #1 + add sp, sp, #0x5f0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0230F9B8: .4byte 0x000005DC + arm_func_end ov00_0230F838 + + arm_func_start ov00_0230F9BC +ov00_0230F9BC: @ 0x0230F9BC + push {r3, r4, r5, lr} + sub sp, sp, #0x10 + add r4, sp, #0 + mov r3, #0 + mov r5, r0 + str r3, [r4] + str r3, [r4, #4] + str r3, [r4, #8] + str r3, [r4, #0xc] + ldr r0, [r5, #0x58] + str r0, [sp] + str r2, [sp, #4] + strh r1, [sp, #8] + bl ov00_022F5594 + str r0, [sp, #0xc] + ldr r0, [r5, #0x60] + bl ov00_022F47A0 + mov r4, r0 + ldr r0, [r5, #0x60] + add r1, sp, #0 + bl ov00_022F47D4 + ldr r0, [r5, #0x60] + bl ov00_022F47A0 + add r1, r4, #1 + cmp r1, r0 + moveq r0, #1 + movne r0, #0 + add sp, sp, #0x10 + pop {r3, r4, r5, pc} + arm_func_end ov00_0230F9BC + + arm_func_start ov00_0230FA30 +ov00_0230FA30: @ 0x0230FA30 + push {r3, r4, r5, r6, r7, lr} + mov r4, r0 + ldr r0, [r4, #8] + mov r6, r2 + ldr r2, [r0, #0x44] + add r0, r4, #0x50 + sub r2, r6, r2 + mov r7, r1 + mov r5, r3 + strh r2, [sp] + bl ov00_0230D388 + cmp r0, r6 + bge _0230FA80 + mov r0, r4 + bl ov00_0230E554 + cmp r0, #0 + moveq r0, #0 + movne r0, #1 + strne r0, [r5] + pop {r3, r4, r5, r6, r7, pc} +_0230FA80: + ldrh r1, [r4, #0x64] + mov r0, r4 + mov r2, r6 + bl ov00_0230F9BC + cmp r0, #0 + bne _0230FAB4 + mov r0, r4 + bl ov00_0230E554 + cmp r0, #0 + moveq r0, #0 + movne r0, #1 + strne r0, [r5] + pop {r3, r4, r5, r6, r7, pc} +_0230FAB4: + ldr r1, [r4, #8] + ldr r0, [r1, #0x40] + cmp r0, #2 + bne _0230FAD4 + ldr r2, [r1, #0x44] + add r1, sp, #0 + add r0, r4, #0x50 + bl ov00_0230D3E0 +_0230FAD4: + ldr r1, _0230FB20 @ =0x0231BF00 + add r0, r4, #0x50 + mov r2, #2 + bl ov00_0230D3E0 + add r0, r4, #0x50 + and r1, r7, #0xff + bl ov00_0230D398 + ldrh r1, [r4, #0x64] + add r0, r4, #0x50 + add r2, r1, #1 + strh r2, [r4, #0x64] + bl ov00_0230D3B0 + ldrh r1, [r4, #0x66] + add r0, r4, #0x50 + bl ov00_0230D3B0 + mov r0, #0 + str r0, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0230FB20: .4byte 0x0231BF00 + arm_func_end ov00_0230FA30 + + arm_func_start ov00_0230FB24 +ov00_0230FB24: @ 0x0230FB24 + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #0x60] + bl ov00_022F47A0 + mov r1, r0 + ldr r0, [r4, #0x60] + sub r1, r1, #1 + bl ov00_022F47A8 + ldm r0, {r1, r2} + ldr r3, [r4, #0x50] + mov r0, r4 + add r1, r3, r1 + bl ov00_0230DD14 + cmp r0, #0 + mov r0, #0 + strne r0, [r4, #0x90] + movne r0, #1 + pop {r4, pc} + arm_func_end ov00_0230FB24 + + arm_func_start ov00_0230FB6C +ov00_0230FB6C: @ 0x0230FB6C + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + mov r4, r2 + mov r5, r1 + add r3, sp, #0 + add r2, r4, #7 + mov r1, #0 + mov r6, r0 + bl ov00_0230FA30 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, r5, r6, pc} + ldr r0, [sp] + cmp r0, #0 + addne sp, sp, #4 + movne r0, #1 + popne {r3, r4, r5, r6, pc} + mov r1, r5 + mov r2, r4 + add r0, r6, #0x50 + bl ov00_0230D3E0 + mov r0, r6 + bl ov00_0230FB24 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_0230FB6C + + arm_func_start ov00_0230FBE0 +ov00_0230FBE0: @ 0x0230FBE0 + push {r3, r4, r5, lr} + mov r5, r0 + ldr r2, [r5, #8] + mov r4, r1 + ldr r1, [r2, #0x44] + add r3, sp, #0 + add r2, r1, #0x27 + mov r1, #1 + bl ov00_0230FA30 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldr r0, [sp] + cmp r0, #0 + movne r0, #1 + popne {r3, r4, r5, pc} + mov r1, r4 + add r0, r5, #0x50 + mov r2, #0x20 + bl ov00_0230D3E0 + mov r0, r5 + bl ov00_0230FB24 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, r4, r5, pc} + arm_func_end ov00_0230FBE0 + + arm_func_start ov00_0230FC48 +ov00_0230FC48: @ 0x0230FC48 + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + mov r6, r0 + ldr r3, [r6, #8] + mov r5, r1 + ldr r1, [r3, #0x44] + mov r4, r2 + add r2, r1, #0x47 + add r3, sp, #0 + mov r1, #2 + bl ov00_0230FA30 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, r5, r6, pc} + ldr r0, [sp] + cmp r0, #0 + addne sp, sp, #4 + movne r0, #1 + popne {r3, r4, r5, r6, pc} + mov r1, r5 + add r0, r6, #0x50 + mov r2, #0x20 + bl ov00_0230D3E0 + mov r1, r4 + add r0, r6, #0x50 + mov r2, #0x20 + bl ov00_0230D3E0 + mov r0, r6 + bl ov00_0230FB24 + cmp r0, #0 + ldrne r1, [r6, #0x88] + moveq r0, #0 + movne r0, #1 + strne r1, [r6, #0x8c] + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_0230FC48 + + arm_func_start ov00_0230FCDC +ov00_0230FCDC: @ 0x0230FCDC + push {r3, r4, r5, r6, r7, lr} + mov r4, r0 + ldr ip, [r4, #8] + mov r5, r3 + ldr ip, [ip, #0x44] + add lr, r5, #0x27 + mov r7, r1 + mov r6, r2 + add r3, sp, #0 + add r2, lr, ip + mov r1, #3 + bl ov00_0230FA30 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldr r0, [sp] + cmp r0, #0 + movne r0, #1 + popne {r3, r4, r5, r6, r7, pc} + mov r1, r7 + add r0, r4, #0x50 + mov r2, #0x20 + bl ov00_0230D3E0 + mov r1, r6 + mov r2, r5 + add r0, r4, #0x50 + bl ov00_0230D3E0 + mov r0, r4 + bl ov00_0230FB24 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_0230FCDC + + arm_func_start ov00_0230FD60 +ov00_0230FD60: @ 0x0230FD60 + push {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + ldr r1, [r4, #8] + add r3, sp, #0 + ldr r2, [r1, #0x44] + mov r1, #4 + add r2, r2, #7 + bl ov00_0230FA30 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, pc} + ldr r0, [sp] + cmp r0, #0 + addne sp, sp, #4 + movne r0, #1 + popne {r3, r4, pc} + mov r0, r4 + bl ov00_0230FB24 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + add sp, sp, #4 + pop {r3, r4, pc} + arm_func_end ov00_0230FD60 + + arm_func_start ov00_0230FDC4 +ov00_0230FDC4: @ 0x0230FDC4 + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + mov r6, r0 + ldr r3, [r6, #8] + mov r4, r2 + ldr r2, [r3, #0x44] + add ip, r4, #7 + mov r5, r1 + add r3, sp, #0 + add r2, ip, r2 + mov r1, #5 + bl ov00_0230FA30 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, r5, r6, pc} + ldr r0, [sp] + cmp r0, #0 + addne sp, sp, #4 + movne r0, #1 + popne {r3, r4, r5, r6, pc} + mov r1, r5 + mov r2, r4 + add r0, r6, #0x50 + bl ov00_0230D3E0 + mov r0, r6 + bl ov00_0230FB24 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_0230FDC4 + + arm_func_start ov00_0230FE44 +ov00_0230FE44: @ 0x0230FE44 + push {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + ldr r1, [r4, #8] + add r3, sp, #0 + ldr r2, [r1, #0x44] + mov r1, #6 + add r2, r2, #7 + bl ov00_0230FA30 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, pc} + ldr r0, [sp] + cmp r0, #0 + addne sp, sp, #4 + movne r0, #1 + popne {r3, r4, pc} + mov r0, r4 + bl ov00_0230FB24 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + add sp, sp, #4 + pop {r3, r4, pc} + arm_func_end ov00_0230FE44 + + arm_func_start ov00_0230FEA8 +ov00_0230FEA8: @ 0x0230FEA8 + push {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + ldr r1, [r4, #8] + add r3, sp, #0 + ldr r2, [r1, #0x44] + mov r1, #7 + add r2, r2, #7 + bl ov00_0230FA30 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, pc} + ldr r0, [sp] + cmp r0, #0 + addne sp, sp, #4 + movne r0, #1 + popne {r3, r4, pc} + mov r0, r4 + bl ov00_0230FB24 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + add sp, sp, #4 + pop {r3, r4, pc} + arm_func_end ov00_0230FEA8 + + arm_func_start ov00_0230FF0C +ov00_0230FF0C: @ 0x0230FF0C + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r7, r2 + mov sb, r0 + mov r8, r1 + cmp r7, #2 + blt _0230FF44 + ldr r0, [sb, #8] + ldr r1, _02310000 @ =0x0231BF00 + ldr r0, [r0, #0x44] + mov r2, #2 + add r0, r8, r0 + bl FUN_02087348 + cmp r0, #0 + beq _0230FF64 +_0230FF44: + mov r0, sb + mov r1, r8 + mov r2, r7 + bl ov00_0230DD14 + cmp r0, #0 + moveq r0, #0 + movne r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_0230FF64: + add r6, r7, #2 + add r0, sb, #0x50 + bl ov00_0230D388 + cmp r0, r6 + movlt r0, #1 + poplt {r3, r4, r5, r6, r7, r8, sb, pc} + ldr r0, [sb, #8] + ldr r5, [sb, #0x50] + ldr r0, [r0, #0x40] + ldr r4, [sb, #0x58] + cmp r0, #2 + bne _0230FFA4 + mov r1, r8 + add r0, sb, #0x50 + mov r2, #2 + bl ov00_0230D3E0 +_0230FFA4: + ldr r1, _02310000 @ =0x0231BF00 + add r0, sb, #0x50 + mov r2, #2 + bl ov00_0230D3E0 + ldr r1, [sb, #8] + add r0, sb, #0x50 + ldr r2, [r1, #0x44] + add r1, r8, r2 + sub r2, r7, r2 + bl ov00_0230D3E0 + mov r0, sb + mov r2, r6 + add r1, r5, r4 + bl ov00_0230DD14 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + mov r2, r6 + add r0, sb, #0x50 + mvn r1, #0 + bl ov00_0230D438 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_02310000: .4byte 0x0231BF00 + arm_func_end ov00_0230FF0C + + arm_func_start ov00_02310004 +ov00_02310004: @ 0x02310004 + push {r4, r5, lr} + sub sp, sp, #0xc + mov r5, r0 + ldr r0, [r5, #8] + mov r4, #0 + ldr r0, [r0, #0x40] + cmp r0, #2 + bne _02310048 + mov r1, #5 + add r0, sp, #0 + strh r1, [sp] + ldrb r1, [r0] + add r2, sp, #2 + ldrb r0, [r0, #1] + strb r1, [r2] + add r4, r4, #2 + strb r0, [r2, #1] +_02310048: + ldr r1, _023100A4 @ =0x0231BF00 + add r0, sp, #2 + ldrb r2, [r1] + ldrb r1, [r1, #1] + add r3, r0, r4 + strb r2, [r0, r4] + strb r1, [r3, #1] + add r1, r4, #2 + mov r2, #0x64 + strb r2, [r0, r1] + ldrh r2, [r5, #0x66] + add r1, r4, #3 + bl ov00_0230E488 + add r1, sp, #2 + mov r0, r5 + add r2, r4, #5 + bl ov00_0230DD14 + cmp r0, #0 + mov r0, #0 + strne r0, [r5, #0x90] + movne r0, #1 + add sp, sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_023100A4: .4byte 0x0231BF00 + arm_func_end ov00_02310004 + + arm_func_start ov00_023100A8 +ov00_023100A8: @ 0x023100A8 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0xc + mov r7, r0 + ldr r0, [r7, #8] + mov r6, r1 + ldr r0, [r0, #0x40] + mov r5, r2 + cmp r0, #2 + mov r4, #0 + bne _023100F4 + mov r1, #7 + add r0, sp, #0 + strh r1, [sp] + ldrb r1, [r0] + add r2, sp, #2 + ldrb r0, [r0, #1] + strb r1, [r2] + add r4, r4, #2 + strb r0, [r2, #1] +_023100F4: + ldr r1, _0231016C @ =0x0231BF00 + add r0, sp, #2 + ldrb r2, [r1] + ldrb r1, [r1, #1] + add r3, r0, r4 + strb r2, [r0, r4] + strb r1, [r3, #1] + mov r2, r6 + add r3, r4, #2 + mov ip, #0x65 + add r1, r4, #3 + strb ip, [r0, r3] + bl ov00_0230E488 + cmp r6, r5 + add r4, r4, #5 + beq _02310148 + add r0, sp, #2 + mov r1, r4 + mov r2, r5 + bl ov00_0230E488 + add r4, r4, #2 +_02310148: + add r1, sp, #2 + mov r0, r7 + mov r2, r4 + bl ov00_0230DD14 + cmp r0, #0 + moveq r0, #0 + movne r0, #1 + add sp, sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0231016C: .4byte 0x0231BF00 + arm_func_end ov00_023100A8 + + arm_func_start ov00_02310170 +ov00_02310170: @ 0x02310170 + ldr ip, _02310180 @ =ov00_0230DD14 + mov r3, #0x67 + strb r3, [r1, #2] + bx ip + .align 2, 0 +_02310180: .4byte ov00_0230DD14 + arm_func_end ov00_02310170 + + arm_func_start ov00_02310184 +ov00_02310184: @ 0x02310184 + ldr ip, _0231019C @ =ov00_023101A0 + mov r1, r0 + ldrh r2, [r1, #4] + ldr r0, [r1, #8] + ldr r1, [r1] + bx ip + .align 2, 0 +_0231019C: .4byte ov00_023101A0 + arm_func_end ov00_02310184 + + arm_func_start ov00_023101A0 +ov00_023101A0: @ 0x023101A0 + push {r4, r5, lr} + sub sp, sp, #0xc + ldr r3, [r0, #0x40] + mov ip, #0 + cmp r3, #2 + bne _023101DC + mov r4, #3 + add r3, sp, #4 + strh r4, [sp, #4] + ldrb r4, [r3] + add r5, sp, #6 + ldrb r3, [r3, #1] + strb r4, [r5] + add ip, ip, #2 + strb r3, [r5, #1] +_023101DC: + ldr r4, _02310224 @ =0x0231BF00 + add r3, sp, #6 + ldrb lr, [r4] + ldrb r4, [r4, #1] + add r5, r3, ip + strb lr, [r3, ip] + strb r4, [r5, #1] + add lr, ip, #2 + mov r4, #0x68 + strb r4, [r3, lr] + add ip, ip, #3 + str ip, [sp] + bl ov00_023108D8 + cmp r0, #0 + moveq r0, #0 + movne r0, #1 + add sp, sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_02310224: .4byte 0x0231BF00 + arm_func_end ov00_023101A0 + + arm_func_start ov00_02310228 +ov00_02310228: @ 0x02310228 + push {r3, r4, r5, lr} + mov r5, r0 + ldr r0, [r5, #8] + mov r4, r1 + ldr r1, [r4] + ldr r0, [r0, #0x44] + ldrh r2, [r5, #0x66] + add r1, r1, r0 + ldr r0, [r5, #0x50] + add r1, r1, #5 + bl ov00_0230E488 + ldr r3, [r5, #0x50] + ldm r4, {r1, r2} + mov r0, r5 + add r1, r3, r1 + bl ov00_0230DD14 + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldr r0, [r5, #0x88] + str r0, [r4, #0xc] + ldr r0, [r5, #8] + ldr r1, [r4] + ldr r0, [r0, #0x44] + ldr r2, [r5, #0x50] + add r0, r1, r0 + add r0, r0, #2 + ldrb r0, [r2, r0] + cmp r0, #2 + ldreq r0, [r5, #0x88] + streq r0, [r5, #0x8c] + mov r0, #1 + pop {r3, r4, r5, pc} + arm_func_end ov00_02310228 + + arm_func_start ov00_023102AC +ov00_023102AC: @ 0x023102AC + push {r3, lr} + cmp r3, #0 + beq _023102C0 + bl ov00_0230FB6C + pop {r3, pc} +_023102C0: + bl ov00_0230FF0C + pop {r3, pc} + arm_func_end ov00_023102AC + + arm_func_start ov00_023102C8 +ov00_023102C8: @ 0x023102C8 + push {r3, lr} + ldr r2, [r0] + ldrh r0, [r2, #4] + ldr r2, [r2] + mul r0, r2, r0 + bl FUN_020900B0 + mov r0, r1 + pop {r3, pc} + arm_func_end ov00_023102C8 +_023102E8: + .byte 0x00, 0x30, 0x90, 0xE5, 0x00, 0x20, 0x91, 0xE5 + .byte 0x00, 0x00, 0x93, 0xE5, 0x00, 0x10, 0x92, 0xE5, 0x01, 0x00, 0x50, 0xE1, 0x01, 0x00, 0x40, 0x10 + .byte 0x1E, 0xFF, 0x2F, 0x11, 0xB4, 0x10, 0xD3, 0xE1, 0xB4, 0x00, 0xD2, 0xE1, 0x00, 0x00, 0x41, 0xE0 + .byte 0x00, 0x08, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x04, 0xC0, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0xF0, 0xDF, 0x30, 0x02 + + arm_func_start ov00_0231032C +ov00_0231032C: @ 0x0231032C + stmdb sp!, {lr} + sub sp, sp, #0xa4 + add r3, sp, #4 + str r1, [sp, #4] + strh r2, [sp, #8] + str r3, [sp] + ldr r0, [r0, #0xc] + add r1, sp, #0 + bl ov00_022F4DCC + cmp r0, #0 + ldrne r0, [r0] + moveq r0, #0 + add sp, sp, #0xa4 + ldm sp!, {pc} + arm_func_end ov00_0231032C + + arm_func_start ov00_02310364 +ov00_02310364: @ 0x02310364 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x1c + mov r4, r1 + mov r7, r3 + mov r6, r0 + mov r8, r2 + ldr r5, [sp, #0x3c] + bl ov00_022F558C + cmp r7, #0 + moveq r7, #0x10000 + cmp r8, #0 + add r1, sp, #0x10 + add r2, sp, #8 + mov r0, r4 + moveq r8, #0x10000 + bl ov00_02310CA4 + cmp r0, #0 + addeq sp, sp, #0x1c + moveq r0, #4 + popeq {r3, r4, r5, r6, r7, r8, pc} + mov r0, #0x4c + bl ov00_022F5AE4 + movs r4, r0 + addeq sp, sp, #0x1c + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, r8, pc} + mov r1, #0 + mov r2, #0x4c + bl FUN_02087308 + mvn r0, #0 + str r0, [r4] + str r7, [r4, #0x3c] + ldr r1, [sp, #0x38] + str r8, [r4, #0x38] + str r1, [r4, #0x24] + ldr r0, _0231059C @ =0x023102E8 + ldr r3, _023105A0 @ =ov00_023102C8 + str r0, [sp] + mov ip, #0 + mov r0, #4 + mov r1, #0x20 + mov r2, #2 + str ip, [sp, #4] + bl ov00_022F4BBC + str r0, [r4, #0xc] + cmp r0, #0 + bne _02310434 + mov r0, r4 + bl ov00_022F5B14 + add sp, sp, #0x1c + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, pc} +_02310434: + mov r0, #4 + ldr r2, _023105A4 @ =0x0231031C + mov r1, r0 + bl ov00_022F4700 + str r0, [r4, #0x10] + cmp r0, #0 + bne _0231046C + ldr r0, [r4, #0xc] + bl ov00_022F4C38 + mov r0, r4 + bl ov00_022F5B14 + add sp, sp, #0x1c + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, pc} +_0231046C: + mov r0, #2 + mov r1, r0 + mov r2, #0 + bl ov00_022F4FA0 + str r0, [r4] + cmp r5, #3 + str r5, [r4, #0x40] + moveq r0, #0 + streq r0, [r4, #0x44] + strne r5, [r4, #0x44] + ldr r1, [r4] + mvn r0, #0 + cmp r1, r0 + bne _023104C8 + ldr r0, [r4, #0xc] + bl ov00_022F4C38 + ldr r0, [r4, #0x10] + bl ov00_022F4758 + mov r0, r4 + bl ov00_022F5B14 + add sp, sp, #0x1c + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, pc} +_023104C8: + ldrh r0, [sp, #8] + add r1, sp, #0x14 + mov ip, #0 + asr r2, r0, #8 + lsl r0, r0, #8 + and r2, r2, #0xff + and r0, r0, #0xff00 + orr r0, r2, r0 + str ip, [r1] + mov r2, #2 + ldr r3, [sp, #0x10] + str ip, [r1, #4] + strb r2, [sp, #0x15] + str r3, [sp, #0x18] + strh r0, [sp, #0x16] + cmp r5, #3 + beq _02310550 + ldr r0, [r4] + mov r2, #8 + bl ov00_022F4FDC + mvn r1, #0 + cmp r0, r1 + bne _02310550 + ldr r0, [r4] + bl ov00_022F4FB4 + ldr r0, [r4, #0xc] + bl ov00_022F4C38 + ldr r0, [r4, #0x10] + bl ov00_022F4758 + mov r0, r4 + bl ov00_022F5B14 + add sp, sp, #0x1c + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, pc} +_02310550: + mov r0, #8 + str r0, [sp, #0xc] + ldr r0, [r4] + add r1, sp, #0x14 + add r2, sp, #0xc + bl ov00_022F514C + ldr r1, [sp, #0x18] + mov r0, #0 + str r1, [r4, #4] + ldrh r1, [sp, #0x16] + asr r2, r1, #8 + lsl r1, r1, #8 + and r2, r2, #0xff + and r1, r1, #0xff00 + orr r1, r2, r1 + strh r1, [r4, #8] + str r4, [r6] + add sp, sp, #0x1c + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0231059C: .4byte 0x023102E8 +_023105A0: .4byte ov00_023102C8 +_023105A4: .4byte 0x0231031C + arm_func_end ov00_02310364 + + arm_func_start ov00_023105A8 +ov00_023105A8: @ 0x023105A8 + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #0x1c] + cmp r0, #0 + movne r0, #1 + strne r0, [r4, #0x14] + popne {r4, pc} + ldr r0, [r4] + bl ov00_022F4FB4 + ldr r0, [r4, #0xc] + bl ov00_022F4C38 + ldr r0, [r4, #0x10] + bl ov00_022F4758 + mov r0, r4 + bl ov00_022F5B14 + bl ov00_022F5590 + pop {r4, pc} + arm_func_end ov00_023105A8 + + arm_func_start ov00_023105EC +ov00_023105EC: @ 0x023105EC + str r1, [r0, #0x20] + bx lr + arm_func_end ov00_023105EC + + arm_func_start ov00_023105F4 +ov00_023105F4: @ 0x023105F4 + ldr ip, _02310600 @ =ov00_022F5AE4 + mov r0, #0xa0 + bx ip + .align 2, 0 +_02310600: .4byte ov00_022F5AE4 + arm_func_end ov00_023105F4 + + arm_func_start ov00_02310604 +ov00_02310604: @ 0x02310604 + push {r3, r4, r5, r6, r7, lr} + mov r4, r3 + mov r5, r2 + mov r3, #0 + mov r6, r1 + mov r1, r5 + mov r2, r4 + mov r7, r0 + str r3, [sp] + bl ov00_0231032C + cmp r0, #0 + movne r0, #5 + popne {r3, r4, r5, r6, r7, pc} + bl ov00_023105F4 + str r0, [sp] + cmp r0, #0 + beq _02310794 + mov r1, #0 + mov r2, #0xa0 + bl FUN_02087308 + ldr r0, [sp] + str r5, [r0] + ldr r0, [sp] + strh r4, [r0, #4] + ldr r0, [sp] + str r7, [r0, #8] + bl ov00_022F5594 + ldr r2, [sp] + mov r1, #0 + str r0, [r2, #0x1c] + ldr r2, [sp] + ldr r0, [r2, #0x1c] + str r0, [r2, #0x88] + ldr r0, [sp] + strh r1, [r0, #0x64] + ldr r0, [sp] + strh r1, [r0, #0x66] + ldr r0, [sp] + ldr r1, [r7, #0x3c] + add r0, r0, #0x44 + bl ov00_0230D35C + cmp r0, #0 + beq _02310794 + ldr r0, [sp] + ldr r1, [r7, #0x38] + add r0, r0, #0x50 + bl ov00_0230D35C + cmp r0, #0 + beq _02310794 + mov r0, #0x10 + mov r1, #0x40 + mov r2, #0 + bl ov00_022F4700 + ldr r1, [sp] + str r0, [r1, #0x5c] + ldr r0, [sp] + ldr r0, [r0, #0x5c] + cmp r0, #0 + beq _02310794 + mov r0, #0x10 + mov r1, #0x40 + mov r2, #0 + bl ov00_022F4700 + ldr r1, [sp] + str r0, [r1, #0x60] + ldr r0, [sp] + ldr r0, [r0, #0x60] + cmp r0, #0 + beq _02310794 + mov r0, #4 + mov r1, #2 + mov r2, #0 + bl ov00_022F4700 + ldr r1, [sp] + str r0, [r1, #0x98] + ldr r0, [sp] + ldr r0, [r0, #0x98] + cmp r0, #0 + beq _02310794 + mov r0, #4 + mov r1, #2 + mov r2, #0 + bl ov00_022F4700 + ldr r1, [sp] + str r0, [r1, #0x9c] + ldr r0, [sp] + ldr r0, [r0, #0x9c] + cmp r0, #0 + beq _02310794 + ldr r0, [r7, #0xc] + add r1, sp, #0 + bl ov00_022F4CD0 + mov r0, r7 + mov r1, r5 + mov r2, r4 + bl ov00_0231032C + str r0, [r6] + cmp r0, #0 + movne r0, #0 + popne {r3, r4, r5, r6, r7, pc} +_02310794: + ldr r0, [sp] + cmp r0, #0 + beq _0231080C + ldr r0, [r0, #0x44] + bl ov00_022F5B14 + ldr r0, [sp] + ldr r0, [r0, #0x50] + bl ov00_022F5B14 + ldr r0, [sp] + ldr r0, [r0, #0x5c] + cmp r0, #0 + beq _023107C8 + bl ov00_022F4758 +_023107C8: + ldr r0, [sp] + ldr r0, [r0, #0x60] + cmp r0, #0 + beq _023107DC + bl ov00_022F4758 +_023107DC: + ldr r0, [sp] + ldr r0, [r0, #0x98] + cmp r0, #0 + beq _023107F0 + bl ov00_022F4758 +_023107F0: + ldr r0, [sp] + ldr r0, [r0, #0x9c] + cmp r0, #0 + beq _02310804 + bl ov00_022F4758 +_02310804: + ldr r0, [sp] + bl ov00_022F5B14 +_0231080C: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_02310604 + + arm_func_start ov00_02310814 +ov00_02310814: @ 0x02310814 + push {r0, r1, r2, r3} + push {r4, r5, r6, lr} + ldr r1, [sp, #0x10] + ldr r0, [r1, #0x14] + cmp r0, #0 + ldreq r0, [r1, #0x24] + cmpeq r0, #0 + popne {r4, r5, r6, lr} + addne sp, sp, #0x10 + bxne lr + ldr r0, [r1, #0xc] + cmp r0, #7 + ldr r0, [r1, #8] + bne _023108C0 + ldr r0, [r0, #0x10] + bl ov00_022F47A0 + mov r4, r0 + mov r5, #0 + cmp r4, #0 + pople {r4, r5, r6, lr} + addle sp, sp, #0x10 + bxle lr +_0231086C: + ldr r6, [sp, #0x10] + mov r1, r5 + ldr r0, [r6, #8] + ldr r0, [r0, #0x10] + bl ov00_022F47A8 + ldr r0, [r0] + cmp r6, r0 + bne _023108A8 + ldr r0, [r6, #8] + mov r1, r5 + ldr r0, [r0, #0x10] + bl ov00_022F491C + pop {r4, r5, r6, lr} + add sp, sp, #0x10 + bx lr +_023108A8: + add r5, r5, #1 + cmp r5, r4 + blt _0231086C + pop {r4, r5, r6, lr} + add sp, sp, #0x10 + bx lr +_023108C0: + ldr r0, [r0, #0xc] + add r1, sp, #0x10 + bl ov00_022F4D50 + pop {r4, r5, r6, lr} + add sp, sp, #0x10 + bx lr + arm_func_end ov00_02310814 + + arm_func_start ov00_023108D8 +ov00_023108D8: @ 0x023108D8 + push {r0, r1, r2, r3} + push {r4, r5, r6, lr} + sub sp, sp, #0x18 + mov r6, r0 + mov r5, r1 + add r0, sp, #0x34 + add r1, sp, #0x38 + mov r4, r2 + bl ov00_02310E00 + ldr r0, [r6, #0x40] + cmp r0, #3 + beq _02310928 + ldr r0, [r6] + bl ov00_022F5348 + cmp r0, #0 + addeq sp, sp, #0x18 + moveq r0, #1 + popeq {r4, r5, r6, lr} + addeq sp, sp, #0x10 + bxeq lr +_02310928: + asr r1, r4, #8 + lsl r0, r4, #8 + add r2, sp, #0x10 + mov r3, #0 + str r3, [r2, #4] + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + str r3, [r2] + mov r1, #2 + strh r0, [sp, #0x12] + strb r1, [sp, #0x11] + str r5, [sp, #0x14] + str r2, [sp] + mov r0, #8 + str r0, [sp, #4] + ldr r0, [r6] + ldr r1, [sp, #0x34] + ldr r2, [sp, #0x38] + bl ov00_022F50E0 + mvn r1, #0 + cmp r0, r1 + bne _02310A70 + ldr r0, [r6] + bl ov00_022F5194 + mvn r2, #0xe + cmp r0, r2 + bne _023109C4 + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov00_0230F69C + cmp r0, #0 + bne _02310AD8 + add sp, sp, #0x18 + mov r0, #0 + pop {r4, r5, r6, lr} + add sp, sp, #0x10 + bx lr +_023109C4: + sub r1, r2, #8 + cmp r0, r1 + bne _02310A00 + mov r0, r6 + mov r1, r5 + mov r2, r4 + mov r3, #1 + bl ov00_0230F79C + cmp r0, #0 + bne _02310AD8 + add sp, sp, #0x18 + mov r0, #0 + pop {r4, r5, r6, lr} + add sp, sp, #0x10 + bx lr +_02310A00: + sub r1, r2, #0x1b + cmp r0, r1 + addne r1, r2, #9 + cmpne r0, r1 + addeq sp, sp, #0x18 + moveq r0, #1 + popeq {r4, r5, r6, lr} + addeq sp, sp, #0x10 + bxeq lr + sub r1, r2, #0x1b + cmp r0, r1 + addne r1, r2, #9 + cmpne r0, r1 + addeq sp, sp, #0x18 + moveq r0, #1 + popeq {r4, r5, r6, lr} + addeq sp, sp, #0x10 + bxeq lr + sub r1, r2, #0x14 + cmp r0, r1 + beq _02310AD8 + mov r0, r6 + bl ov00_02310BB8 + add sp, sp, #0x18 + mov r0, #0 + pop {r4, r5, r6, lr} + add sp, sp, #0x10 + bx lr +_02310A70: + ldr r0, [r6, #0x28] + cmp r0, #0 + beq _02310AD8 + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov00_0231032C + mov r1, #0 + str r1, [sp] + ldr r2, [sp, #0x34] + mov r1, r0 + str r2, [sp, #4] + ldr ip, [sp, #0x38] + mov r3, r4 + mov r0, r6 + mov r2, r5 + str ip, [sp, #8] + mov r4, #1 + str r4, [sp, #0xc] + bl ov00_0230D9CC + cmp r0, #0 + addeq sp, sp, #0x18 + moveq r0, #0 + popeq {r4, r5, r6, lr} + addeq sp, sp, #0x10 + bxeq lr +_02310AD8: + mov r0, #1 + add sp, sp, #0x18 + pop {r4, r5, r6, lr} + add sp, sp, #0x10 + bx lr + arm_func_end ov00_023108D8 + + arm_func_start ov00_02310AEC +ov00_02310AEC: @ 0x02310AEC + push {r4, lr} + ldr r4, [r0] + ldr r1, [r1] + ldr r0, [r4, #0xc] + cmp r0, #7 + beq _02310B18 + mov r0, r4 + bl ov00_0230DEDC + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} +_02310B18: + ldr r0, [r4, #0xc] + cmp r0, #7 + ldreq r0, [r4, #0x14] + cmpeq r0, #0 + ldreq r0, [r4, #0x24] + cmpeq r0, #0 + bne _02310B3C + mov r0, r4 + bl ov00_02310814 +_02310B3C: + mov r0, #1 + pop {r4, pc} + arm_func_end ov00_02310AEC + + arm_func_start ov00_02310B44 +ov00_02310B44: @ 0x02310B44 + push {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + bl ov00_022F5594 + str r0, [sp] + ldr r0, [r4, #0xc] + ldr r1, _02310B7C @ =ov00_02310AEC + add r2, sp, #0 + bl ov00_022F4E8C + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02310B7C: .4byte ov00_02310AEC + arm_func_end ov00_02310B44 + + arm_func_start ov00_02310B80 +ov00_02310B80: @ 0x02310B80 + push {r3, r4, r5, lr} + mov r5, r0 + ldr r0, [r5, #0x10] + bl ov00_022F47A0 + subs r4, r0, #1 + popmi {r3, r4, r5, pc} +_02310B98: + ldr r0, [r5, #0x10] + mov r1, r4 + bl ov00_022F47A8 + ldr r0, [r0] + bl ov00_02310814 + subs r4, r4, #1 + bpl _02310B98 + pop {r3, r4, r5, pc} + arm_func_end ov00_02310B80 + + arm_func_start ov00_02310BB8 +ov00_02310BB8: @ 0x02310BB8 + push {r4, lr} + mov r4, r0 + ldr r1, [r4, #0x18] + cmp r1, #0 + popne {r4, pc} + mov r1, #1 + str r1, [r4, #0x18] + bl ov00_0230E3A4 + mov r0, r4 + bl ov00_0230D480 + cmp r0, #0 + popeq {r4, pc} + mov r0, r4 + bl ov00_023105A8 + pop {r4, pc} + arm_func_end ov00_02310BB8 + + arm_func_start ov00_02310BF4 +ov00_02310BF4: @ 0x02310BF4 + push {r3, r4, r5, lr} + movs r4, r2 + mov r5, r1 + bne _02310C20 + ldr r2, _02310C90 @ =0x02328E1C + ldr r3, _02310C94 @ =0x02328E20 + ldr ip, [r2] + mov r1, #0x16 + eor ip, ip, #1 + arm_func_end ov00_02310BF4 + + arm_func_start ov00_02310C18 +ov00_02310C18: @ 0x02310C18 + mla r4, ip, r1, r3 + str ip, [r2] +_02310C20: + cmp r0, #0 + beq _02310C68 + str r0, [sp] + cmp r5, #0 + beq _02310C50 + bl ov00_022CF7F4 + mov r2, r0 + ldr r1, _02310C98 @ =0x0231BF04 + mov r0, r4 + mov r3, r5 + bl FUN_020790DC + b _02310C88 +_02310C50: + bl ov00_022CF7F4 + mov r2, r0 + ldr r1, _02310C9C @ =0x0231BF0C + mov r0, r4 + bl FUN_020790DC + b _02310C88 +_02310C68: + cmp r5, #0 + moveq r0, #0 + strbeq r0, [r4] + beq _02310C88 + ldr r1, _02310CA0 @ =0x0231BF10 + mov r0, r4 + mov r2, r5 + bl FUN_020790DC +_02310C88: + mov r0, r4 + pop {r3, r4, r5, pc} + .align 2, 0 +_02310C90: .4byte 0x02328E1C +_02310C94: .4byte 0x02328E20 +_02310C98: .4byte 0x0231BF04 +_02310C9C: .4byte 0x0231BF0C +_02310CA0: .4byte 0x0231BF10 + arm_func_end ov00_02310C18 + + arm_func_start ov00_02310CA4 +ov00_02310CA4: @ 0x02310CA4 + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x104 + movs r8, r0 + mov r7, r1 + ldrsbne r1, [r8] + mov r4, #0 + mov r6, r2 + cmpne r1, #0 + moveq r4, #0 + moveq r5, r4 + beq _02310DDC + mov r1, #0x3a + bl FUN_02089974 + movs r5, r0 + moveq r5, r4 + beq _02310D98 + cmp r5, r8 + moveq r8, r4 + beq _02310D10 + sub sb, r5, r8 + add r0, sp, #0 + mov r1, r8 + mov r2, sb + bl FUN_0208729C + add r8, sp, #0 + mov r0, r4 + strb r0, [r8, sb] +_02310D10: + ldrsb r0, [r5, #1] + add r3, r5, #1 + cmp r0, #0 + beq _02310D68 + ldr r1, _02310DF8 @ =0x020AEDB0 + mov r2, #0 +_02310D28: + cmp r0, #0 + blt _02310D38 + cmp r0, #0x80 + blt _02310D40 +_02310D38: + mov r0, r2 + b _02310D4C +_02310D40: + lsl r0, r0, #1 + ldrh r0, [r1, r0] + and r0, r0, #8 +_02310D4C: + cmp r0, #0 + addeq sp, sp, #0x104 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, pc} + ldrsb r0, [r3, #1]! + cmp r0, #0 + bne _02310D28 +_02310D68: + add r0, r5, #1 + bl FUN_0208B360 + cmp r0, #0 + blt _02310D84 + ldr r1, _02310DFC @ =0x0000FFFF + cmp r0, r1 + ble _02310D90 +_02310D84: + add sp, sp, #0x104 + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, pc} +_02310D90: + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 +_02310D98: + cmp r8, #0 + beq _02310DDC + mov r0, r8 + bl ov00_022F5178 + mov r4, r0 + mvn r0, #0 + cmp r4, r0 + bne _02310DDC + mov r0, r8 + bl ov00_022CF3D4 + cmp r0, #0 + addeq sp, sp, #0x104 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, pc} + ldr r0, [r0, #0xc] + ldr r0, [r0] + ldr r4, [r0] +_02310DDC: + cmp r7, #0 + strne r4, [r7] + cmp r6, #0 + strhne r5, [r6] + mov r0, #1 + add sp, sp, #0x104 + pop {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_02310DF8: .4byte 0x020AEDB0 +_02310DFC: .4byte 0x0000FFFF + arm_func_end ov00_02310CA4 + + arm_func_start ov00_02310E00 +ov00_02310E00: @ 0x02310E00 + push {r4, lr} + ldr r2, [r0] + mov r4, r1 + cmp r2, #0 + bne _02310E28 + ldr r2, _02310E4C @ =0x0231BF14 + mov r1, #0 + str r2, [r0] + str r1, [r4] + pop {r4, pc} +_02310E28: + ldr r1, [r4] + mvn r0, #0 + cmp r1, r0 + popne {r4, pc} + mov r0, r2 + bl FUN_02089678 + add r0, r0, #1 + str r0, [r4] + pop {r4, pc} + .align 2, 0 +_02310E4C: .4byte 0x0231BF14 + arm_func_end ov00_02310E00 + + arm_func_start ov00_02310E50 +ov00_02310E50: @ 0x02310E50 + push {r3, r4, r5, r6, r7, lr} + mov r7, #0 + bl ov00_022F5370 + movs r6, r0 + moveq r0, r7 + popeq {r3, r4, r5, r6, r7, pc} + ldr r4, _02310EB0 @ =0x0100007F + mov r5, r7 +_02310E70: + ldr r0, [r6, #0xc] + ldr r0, [r0, r5, lsl #2] + cmp r0, #0 + beq _02310EA8 + ldr r1, [r0] + cmp r1, r4 + beq _02310EA0 + mov r7, r1 + bl ov00_022F53FC + cmp r0, #0 + movne r0, r7 + popne {r3, r4, r5, r6, r7, pc} +_02310EA0: + add r5, r5, #1 + b _02310E70 +_02310EA8: + mov r0, r7 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02310EB0: .4byte 0x0100007F + arm_func_end ov00_02310E50 + + arm_func_start ov00_02310EB4 +ov00_02310EB4: @ 0x02310EB4 + stmdb sp!, {lr} + sub sp, sp, #0xc + mov r3, #8 + add r1, sp, #4 + add r2, sp, #0 + str r3, [sp] + bl ov00_022F514C + mvn r1, #0 + cmp r0, r1 + moveq r0, #0 + ldrhne r0, [sp, #6] + add sp, sp, #0xc + ldm sp!, {pc} + arm_func_end ov00_02310EB4 + + arm_func_start ov00_02310EE8 +ov00_02310EE8: @ 0x02310EE8 + bx lr + arm_func_end ov00_02310EE8 + + arm_func_start ov00_02310EEC +ov00_02310EEC: @ 0x02310EEC + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x68 + ldr r2, _02311220 @ =0x02328E4C + mov r6, #8 + ldr r3, [r2, #0xc] + str r6, [sp, #0x10] + mov r5, r0 + cmp r3, #0 + ldrne r0, [r2, #8] + mov r4, r1 + cmpne r0, #0 + ldrne r0, [r2, #4] + cmpne r0, #0 + ldrne r0, [r2, #0x18] + cmpne r0, #0 + ldrne r0, [r2] + cmpne r0, #0 + ldrne r0, [r2, #0x10] + cmpne r0, #0 + ldrne r0, [r2, #0x14] + cmpne r0, #0 + addne sp, sp, #0x68 + movne r0, #0 + popne {r4, r5, r6, r7, r8, pc} + mvn r0, #0 + cmp r5, r0 + beq _02311214 + mov r0, r5 + bl ov00_022F5320 + cmp r0, #0 + beq _02311214 +_02310F68: + add r0, sp, #0x14 + str r0, [sp] + add r6, sp, #0x10 + ldr r1, _02311224 @ =0x02328E98 + mov r0, r5 + mov r2, #0x200 + mov r3, #0 + str r6, [sp, #4] + bl ov00_022F509C + mov r7, r0 + mvn r0, #0 + cmp r7, r0 + beq _02311214 + ldr r0, _02311224 @ =0x02328E98 + ldr r1, _02311228 @ =0x0231BF24 + mov r2, #6 + bl FUN_02087348 + cmp r0, #0 + addne sp, sp, #0x68 + movne r0, #1 + popne {r4, r5, r6, r7, r8, pc} + ldr r6, _02311224 @ =0x02328E98 + cmp r7, #0x15 + ldrb r0, [r6, #7] + addlt sp, sp, #0x68 + movlt r0, #1 + poplt {r4, r5, r6, r7, r8, pc} + cmp r0, #2 + bne _0231106C + add r3, sp, #0x1c + mov r2, #0xa +_02310FE4: + ldrb r1, [r6] + ldrb r0, [r6, #1] + add r6, r6, #2 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + bne _02310FE4 + ldrb r0, [r6] + strb r0, [r3] + ldrb r0, [sp, #0x28] + cmp r0, #1 + beq _0231102C + cmp r0, #2 + beq _0231103C + cmp r0, #3 + beq _02311054 + b _023111F8 +_0231102C: + ldr r0, _02311220 @ =0x02328E4C + mov r1, #1 + str r1, [r0, #0xc] + b _023111F8 +_0231103C: + mov r1, #0 + ldr r0, _02311220 @ =0x02328E4C + str r1, [r4, #0x80] + mov r1, #1 + str r1, [r0, #8] + b _023111F8 +_02311054: + mov r1, #0 + ldr r0, _02311220 @ =0x02328E4C + str r1, [r4, #0x84] + mov r1, #1 + str r1, [r0, #4] + b _023111F8 +_0231106C: + cmp r0, #0xb + bne _023111F8 + add r3, sp, #0x1c + mov r2, #0xa +_0231107C: + ldrb r1, [r6] + ldrb r0, [r6, #1] + add r6, r6, #2 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + bne _0231107C + ldrb r0, [r6] + strb r0, [r3] + ldr r3, [sp, #0x24] + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + lsl r3, r3, #0x18 + orr r0, r1, r0 + and r2, r2, #0xff0000 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + str r0, [sp, #0x24] + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _02311130 +_023110E4: @ jump table + b _023110F4 @ case 0 + b _02311114 @ case 1 + b _02311124 @ case 2 + b _02311104 @ case 3 +_023110F4: + ldr r0, _02311220 @ =0x02328E4C + mov r1, #1 + str r1, [r0, #0x18] + b _02311130 +_02311104: + ldr r0, _02311220 @ =0x02328E4C + mov r1, #1 + str r1, [r0] + b _02311130 +_02311114: + ldr r0, _02311220 @ =0x02328E4C + mov r1, #1 + str r1, [r0, #0x10] + b _02311130 +_02311124: + ldr r0, _02311220 @ =0x02328E4C + mov r1, #1 + str r1, [r0, #0x14] +_02311130: + bl ov00_02310E50 + ldr r1, [sp, #0x24] + add r1, r4, r1, lsl #4 + str r0, [r1, #0x94] + mov r0, r5 + bl ov00_02310EB4 + mov r6, r0 + mov r0, r5 + bl ov00_02310EB4 + asr r2, r6, #8 + lsl r1, r0, #8 + ldr r0, [sp, #0x24] + and r2, r2, #0xff + and r1, r1, #0xff00 + orr r1, r2, r1 + add r0, r4, r0, lsl #4 + strh r1, [r0, #0x98] + add r6, sp, #0x2b + add r2, sp, #0x2f + ldrb r3, [r6] + add r0, sp, #0xc + ldrb r8, [r6, #1] + ldrb r7, [r6, #2] + ldrb r6, [r6, #3] + strb r3, [r0] + ldrb ip, [r2] + add lr, sp, #8 + ldrb r3, [r2, #1] + ldr r1, [sp, #0x24] + strb r8, [r0, #1] + strb r7, [r0, #2] + strb r6, [r0, #3] + add r0, r4, r1, lsl #4 + ldr r2, [sp, #0xc] + strb ip, [lr] + strb r3, [lr, #1] + str r2, [r0, #0x9c] + ldrh r2, [sp, #8] + ldr r0, [sp, #0x24] + add r1, r4, #0x94 + asr r3, r2, #8 + lsl r2, r2, #8 + and r3, r3, #0xff + and r2, r2, #0xff00 + orr r2, r3, r2 + add r0, r4, r0, lsl #4 + strh r2, [r0, #0xa0] + ldr r0, [sp, #0x24] + add r0, r1, r0, lsl #4 + bl ov00_02310EE8 +_023111F8: + mvn r0, #0 + cmp r5, r0 + beq _02311214 + mov r0, r5 + bl ov00_022F5320 + cmp r0, #0 + bne _02310F68 +_02311214: + mov r0, #1 + add sp, sp, #0x68 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02311220: .4byte 0x02328E4C +_02311224: .4byte 0x02328E98 +_02311228: .4byte 0x0231BF24 + arm_func_end ov00_02310EEC + + arm_func_start ov00_02310EEC +ov00_02310EEC: @ 0x0231122C + ldr ip, _02311234 @ =ov00_02310EEC + bx ip + .align 2, 0 +_02311234: .4byte ov00_02310EEC + arm_func_end ov00_02310EEC + + arm_func_start ov00_02311238 +ov00_02311238: @ 0x02311238 + push {r4, r5, r6, lr} + mov r6, r0 + mov r0, #6 + str r0, [r6, #0x8c] + mov r0, #4 + str r0, [r6, #0x88] + mov r0, #1 + str r0, [r6, #0xd4] + ldr r1, [r6, #0x9c] + cmp r1, #0 + ldrne r0, [r6, #0xac] + cmpne r0, #0 + ldrne r0, [r6, #0xbc] + cmpne r0, #0 + moveq r0, #0 + popeq {r4, r5, r6, pc} + ldr r4, [r6, #0x84] + cmp r4, #0 + ldreq r0, [r6, #0x80] + cmpeq r0, #0 + ldreq r0, [r6, #0x94] + cmpeq r1, r0 + moveq r0, #0 + streq r0, [r6, #0x8c] + beq _023113DC + ldr r0, [r6, #0x94] + cmp r1, r0 + moveq r0, #1 + streq r0, [r6, #0x8c] + beq _023113DC + ldr r5, [r6, #0x80] + cmp r5, #0 + cmpeq r4, #0 + bne _023112EC + ldrh r1, [r6, #0xc0] + ldrh r0, [r6, #0xb0] + sub r0, r1, r0 + bl FUN_0208655C + cmp r0, #1 + blt _023112EC + mov r0, #5 + str r0, [r6, #0x8c] + mov r0, #0 + str r0, [r6, #0x88] + b _023113DC +_023112EC: + cmp r5, #0 + beq _02311328 + cmp r4, #0 + bne _02311328 + ldrh r1, [r6, #0xc0] + ldrh r0, [r6, #0xb0] + sub r0, r1, r0 + bl FUN_0208655C + cmp r0, #1 + blt _02311328 + mov r0, #5 + str r0, [r6, #0x8c] + mov r0, #2 + str r0, [r6, #0x88] + b _023113DC +_02311328: + cmp r5, #0 + bne _02311364 + cmp r4, #0 + beq _02311364 + ldrh r1, [r6, #0xc0] + ldrh r0, [r6, #0xb0] + sub r0, r1, r0 + bl FUN_0208655C + cmp r0, #1 + blt _02311364 + mov r0, #5 + str r0, [r6, #0x8c] + mov r0, #3 + str r0, [r6, #0x88] + b _023113DC +_02311364: + cmp r5, #0 + cmpne r4, #0 + beq _0231139C + ldrh r1, [r6, #0xc0] + ldrh r0, [r6, #0xb0] + sub r0, r1, r0 + bl FUN_0208655C + cmp r0, #1 + blt _0231139C + mov r0, #5 + str r0, [r6, #0x8c] + mov r0, #1 + str r0, [r6, #0x88] + b _023113DC +_0231139C: + cmp r4, #0 + movne r0, #4 + strne r0, [r6, #0x8c] + bne _023113DC + cmp r5, #0 + beq _023113C4 + cmp r4, #0 + moveq r0, #3 + streq r0, [r6, #0x8c] + beq _023113DC +_023113C4: + cmp r5, #0 + cmpeq r4, #0 + moveq r0, #2 + streq r0, [r6, #0x8c] + movne r0, #6 + strne r0, [r6, #0x8c] +_023113DC: + ldrh r3, [r6, #0x98] + ldrh r2, [r6, #0xa0] + cmp r2, r3 + ldrheq r1, [r6, #0xb0] + ldrheq r0, [r6, #0xa8] + cmpeq r1, r0 + ldrheq r1, [r6, #0xc0] + ldrheq r0, [r6, #0xb8] + cmpeq r1, r0 + moveq r0, #1 + streq r0, [r6, #0x90] + beq _02311460 + ldrh r1, [r6, #0xb0] + cmp r2, r1 + ldrheq r0, [r6, #0xc0] + cmpeq r1, r0 + moveq r0, #2 + streq r0, [r6, #0x90] + beq _02311460 + cmp r2, r3 + ldrheq r0, [r6, #0xc0] + subeq r0, r0, r1 + cmpeq r0, #1 + moveq r0, #4 + streq r0, [r6, #0x90] + beq _02311460 + ldrh r0, [r6, #0xc0] + sub r0, r0, r1 + cmp r0, #1 + moveq r0, #3 + streq r0, [r6, #0x90] + movne r0, #0 + strne r0, [r6, #0x90] +_02311460: + ldrh r1, [r6, #0xd0] + cmp r1, #0 + ldrhne r0, [r6, #0xa0] + cmpne r0, r1 + movne r0, #0 + strne r0, [r6, #0xd4] + mov r0, #1 + pop {r4, r5, r6, pc} + arm_func_end ov00_02311238 + + arm_func_start ov00_02311480 +ov00_02311480: @ 0x02311480 + push {r4, r5, r6, lr} + ldr r1, _023114E4 @ =0x02329098 + mov r6, r0 + ldr r0, [r1] + cmp r0, #0 + moveq r0, #0 + popeq {r4, r5, r6, pc} + mov r5, #0 + bl ov00_022F47A0 + cmp r0, #0 + ble _023114DC + ldr r4, _023114E4 @ =0x02329098 +_023114B0: + ldr r0, [r4] + mov r1, r5 + bl ov00_022F47A8 + ldr r1, [r0, #8] + cmp r1, r6 + popeq {r4, r5, r6, pc} + ldr r0, [r4] + add r5, r5, #1 + bl ov00_022F47A0 + cmp r5, r0 + blt _023114B0 +_023114DC: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_023114E4: .4byte 0x02329098 + arm_func_end ov00_02311480 + + arm_func_start ov00_023114E8 +ov00_023114E8: @ 0x023114E8 + stmdb sp!, {lr} + sub sp, sp, #0x54 + mov r0, #0 + add ip, sp, #0 + mov r1, r0 + mov r2, r0 + mov r3, r0 + stm ip!, {r0, r1, r2, r3} + stm ip!, {r0, r1, r2, r3} + stm ip!, {r0, r1, r2, r3} + stm ip!, {r0, r1, r2, r3} + stm ip!, {r0, r1, r2, r3} + ldr r1, _02311574 @ =0x02329098 + str r0, [ip] + ldr r0, [r1] + cmp r0, #0 + bne _02311540 + mov r0, #0x54 + mov r1, #4 + bl ov00_022F4700 + ldr r1, _02311574 @ =0x02329098 + str r0, [r1] +_02311540: + ldr r0, _02311574 @ =0x02329098 + add r1, sp, #0 + ldr r0, [r0] + bl ov00_022F47D4 + ldr r0, _02311574 @ =0x02329098 + ldr r0, [r0] + bl ov00_022F47A0 + ldr r2, _02311574 @ =0x02329098 + sub r1, r0, #1 + ldr r0, [r2] + bl ov00_022F47A8 + add sp, sp, #0x54 + ldm sp!, {pc} + .align 2, 0 +_02311574: .4byte 0x02329098 + arm_func_end ov00_023114E8 + + arm_func_start ov00_02311578 +ov00_02311578: @ 0x02311578 + push {r4, r5, r6, lr} + ldr r1, _023115DC @ =0x02329098 + mov r6, r0 + ldr r0, [r1] + mov r5, #0 + bl ov00_022F47A0 + cmp r0, #0 + pople {r4, r5, r6, pc} + ldr r4, _023115DC @ =0x02329098 +_0231159C: + ldr r0, [r4] + mov r1, r5 + bl ov00_022F47A8 + cmp r6, r0 + bne _023115C4 + ldr r0, _023115DC @ =0x02329098 + mov r1, r5 + ldr r0, [r0] + bl ov00_022F48C4 + pop {r4, r5, r6, pc} +_023115C4: + ldr r0, [r4] + add r5, r5, #1 + bl ov00_022F47A0 + cmp r5, r0 + blt _0231159C + pop {r4, r5, r6, pc} + .align 2, 0 +_023115DC: .4byte 0x02329098 + arm_func_end ov00_02311578 + + arm_func_start ov00_023115E0 +ov00_023115E0: @ 0x023115E0 + push {r3, lr} + ldr r0, _02311608 @ =0x02329098 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl ov00_022F4758 + ldr r0, _02311608 @ =0x02329098 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_02311608: .4byte 0x02329098 + arm_func_end ov00_023115E0 + + arm_func_start ov00_0231160C +ov00_0231160C: @ 0x0231160C + push {r3, lr} + ldr r1, _0231162C @ =0x0231BF24 + mov r2, #6 + bl FUN_02087348 + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + pop {r3, pc} + .align 2, 0 +_0231162C: .4byte 0x0231BF24 + arm_func_end ov00_0231160C + + arm_func_start ov00_02311630 +ov00_02311630: @ 0x02311630 + push {r3, lr} + sub sp, sp, #0x10 + asr ip, r2, #8 + lsl r2, r2, #8 + str r1, [sp, #0xc] + mov r1, r3 + and r3, ip, #0xff + and r2, r2, #0xff00 + orr r2, r3, r2 + mov lr, #2 + strh r2, [sp, #0xa] + add r3, sp, #8 + strb lr, [sp, #9] + str r3, [sp] + mov ip, #8 + ldr r2, [sp, #0x18] + mov r3, #0 + str ip, [sp, #4] + bl ov00_022F50E0 + add sp, sp, #0x10 + pop {r3, pc} + arm_func_end ov00_02311630 + + arm_func_start ov00_02311684 +ov00_02311684: @ 0x02311684 + push {r3, r4, r5, r6, r7, lr} + mov r7, #0 + bl ov00_022F5370 + movs r6, r0 + moveq r0, r7 + popeq {r3, r4, r5, r6, r7, pc} + ldr r4, _023116E4 @ =0x0100007F + mov r5, r7 +_023116A4: + ldr r0, [r6, #0xc] + ldr r0, [r0, r5, lsl #2] + cmp r0, #0 + beq _023116DC + ldr r1, [r0] + cmp r1, r4 + beq _023116D4 + mov r7, r1 + bl ov00_022F53FC + cmp r0, #0 + movne r0, r7 + popne {r3, r4, r5, r6, r7, pc} +_023116D4: + add r5, r5, #1 + b _023116A4 +_023116DC: + mov r0, r7 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_023116E4: .4byte 0x0100007F + arm_func_end ov00_02311684 + + arm_func_start ov00_023116E8 +ov00_023116E8: @ 0x023116E8 + stmdb sp!, {lr} + sub sp, sp, #0xc + mov r3, #8 + add r1, sp, #4 + add r2, sp, #0 + str r3, [sp] + bl ov00_022F514C + mvn r1, #0 + cmp r0, r1 + moveq r0, #0 + ldrhne r0, [sp, #6] + add sp, sp, #0xc + ldm sp!, {pc} + arm_func_end ov00_023116E8 + + arm_func_start ov00_0231171C +ov00_0231171C: @ 0x0231171C + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x50 + ldr r1, _02311858 @ =0x0231BF24 + mov r2, #3 + ldrb sb, [r1] + ldrb r8, [r1, #1] + add sl, sp, #4 + ldrb r7, [r1, #2] + ldrb r6, [r1, #3] + ldrb r5, [r1, #4] + ldrb r3, [r1, #5] + mov r1, #0xd + strb r5, [sl, #4] + mov r4, r0 + strb sb, [sl] + strb r8, [sl, #1] + strb r7, [sl, #2] + strb r6, [sl, #3] + strb r2, [sp, #0xa] + strb r1, [sp, #0xb] + strb r3, [sl, #5] + ldr r3, [r4, #8] + add r5, sp, #0x13 + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + lsl r3, r3, #0x18 + orr r0, r1, r0 + and r2, r2, #0xff0000 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + ldr r1, _0231185C @ =0x0231BF18 + str r0, [sp, #0xc] + ldr r0, [r4, #0xc] + ldrb lr, [r1] + strb r0, [sp, #0x11] + ldr r0, [r4, #0x44] + ldrb ip, [r1, #1] + cmp r0, #0 + ldr r0, _02311860 @ =0x023290A0 + ldrb r3, [r1, #2] + ldrb r2, [r1, #3] + moveq r6, #1 + movne r6, #0 + ldrb sl, [r0] + add r1, sp, #0x17 + ldrb sb, [r0, #1] + ldrb r8, [r0, #2] + ldrb r7, [r0, #3] + ldr r0, _02311864 @ =0x02328804 + strb r6, [sp, #0x12] + strb lr, [r5] + strb ip, [r5, #1] + strb r3, [r5, #2] + strb r2, [r5, #3] + strb sl, [r1] + strb sb, [r1, #1] + strb r8, [r1, #2] + strb r7, [r1, #3] + bl FUN_02089678 + cmp r0, #0 + beq _02311830 + ldr r1, _02311864 @ =0x02328804 + add r0, sp, #0x1b + mov r2, #0x32 + bl FUN_0208729C +_02311830: + mov r0, #0x49 + str r0, [sp] + ldr r1, _02311868 @ =0x02329098 + ldr r0, [r4] + ldr r1, [r1, #0x28] + ldr r2, _0231186C @ =0x00006CFD + add r3, sp, #4 + bl ov00_02311630 + add sp, sp, #0x50 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_02311858: .4byte 0x0231BF24 +_0231185C: .4byte 0x0231BF18 +_02311860: .4byte 0x023290A0 +_02311864: .4byte 0x02328804 +_02311868: .4byte 0x02329098 +_0231186C: .4byte 0x00006CFD + arm_func_end ov00_0231171C + + arm_func_start ov00_02311870 +ov00_02311870: @ 0x02311870 + push {r4, lr} + mov r4, r0 + str r1, [r4, #0x44] + str r2, [r4, #0x48] + cmp r3, #0 + beq _023118B0 + add lr, r4, #0x4c + mov ip, #4 +_02311890: + ldrb r2, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + subs ip, ip, #1 + strb r2, [lr] + strb r0, [lr, #1] + add lr, lr, #2 + bne _02311890 +_023118B0: + sub r0, r1, #1 + cmp r0, #1 + bhi _023118E8 + mov r0, #3 + str r0, [r4, #0x10] + ldr r0, [r4, #0x44] + ldr r1, [r4, #0x48] + ldr r3, [r4, #0x40] + ldr ip, [r4, #0x3c] + add r2, r4, #0x4c + blx ip + ldr r0, [r4, #8] + bl ov00_02311FB0 + pop {r4, pc} +_023118E8: + mov r0, r4 + bl ov00_0231171C + mov r0, #5 + str r0, [r4, #0x10] + bl ov00_022F5594 + add r0, r0, #0x3e8 + str r0, [r4, #0x2c] + mov r0, #0 + str r0, [r4, #0x24] + mov r0, #5 + str r0, [r4, #0x28] + pop {r4, pc} + arm_func_end ov00_02311870 + + arm_func_start ov00_02311918 +ov00_02311918: @ 0x02311918 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x5c + ldr r2, _02311B80 @ =0x0231BF24 + mov r1, #0 + ldrb lr, [r2] + ldrb ip, [r2, #1] + add r5, sp, #4 + ldrb r8, [r2, #2] + ldrb r4, [r2, #4] + ldrb r3, [r2, #5] + ldrb r7, [r2, #3] + mov r2, #3 + mov r6, r0 + strb lr, [r5] + strb ip, [r5, #1] + strb r8, [r5, #2] + strb r4, [r5, #4] + strb r3, [r5, #5] + strb r2, [r5, #6] + strb r1, [r5, #7] + strb r7, [r5, #3] + ldr r7, [r6, #8] + sub r0, r1, #1 + lsr r3, r7, #0x18 + lsr r2, r7, #8 + lsl r4, r7, #8 + and r3, r3, #0xff + and r2, r2, #0xff00 + lsl r7, r7, #0x18 + orr r2, r3, r2 + and r4, r4, #0xff0000 + and r3, r7, #0xff000000 + orr r2, r4, r2 + orr r2, r3, r2 + str r2, [r5, #8] + ldr r2, [r6, #0xc] + strb r2, [r5, #0xd] + ldr r2, [r6, #4] + cmp r2, r0 + movne r1, #1 + strb r1, [r5, #0xe] + bl ov00_02311684 + mov r7, r0 + bl ov00_02311684 + mov r8, r0 + bl ov00_02311684 + mov r4, r0 + bl ov00_02311684 + mov r2, #0 + lsl r1, r7, #0x18 + and r7, r1, #0xff000000 + lsl r1, r8, #8 + lsr r0, r0, #8 + and r3, r1, #0xff0000 + lsr r1, r4, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + orr r0, r3, r0 + orr r3, r7, r0 + lsr r1, r3, #0x18 + strb r1, [sp, #0x13] + lsr r1, r3, #8 + lsr r0, r3, #0x10 + strb r1, [sp, #0x15] + strb r0, [sp, #0x14] + ldr r1, _02311B84 @ =0x02328804 + add r0, sp, #0x19 + strb r3, [sp, #0x16] + strb r2, [sp, #0x17] + strb r2, [sp, #0x18] + bl FUN_02089694 + ldr r0, _02311B84 @ =0x02328804 + bl FUN_02089678 + ldrb r1, [r5, #0xe] + add r4, r0, #0x16 + cmp r1, #0 + beq _02311A80 + ldr r0, [r6, #0x14] + cmp r0, #0 + bne _02311A80 + mov r0, #0 + strb r0, [r5, #0xc] + str r4, [sp] + ldr r1, _02311B88 @ =0x02329098 + ldr r0, [r6, #4] + ldr r1, [r1, #0x28] + ldr r2, _02311B8C @ =0x00006CFD + mov r3, r5 + bl ov00_02311630 +_02311A80: + ldr r0, [r6, #0x18] + cmp r0, #0 + bne _02311AB0 + mov r0, #1 + strb r0, [r5, #0xc] + str r4, [sp] + ldr r1, _02311B88 @ =0x02329098 + ldr r0, [r6] + ldr r1, [r1, #0x28] + ldr r2, _02311B8C @ =0x00006CFD + mov r3, r5 + bl ov00_02311630 +_02311AB0: + ldrb r0, [r5, #0xe] + cmp r0, #0 + ldrne r8, [r6, #4] + ldreq r8, [r6] + cmp r0, #0 + ldrne r0, [r6, #4] + ldreq r0, [r6] + bl ov00_023116E8 + mov r7, r0 + mov r0, r8 + bl ov00_023116E8 + asr r1, r7, #8 + lsl r0, r0, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + asr r0, r1, #8 + strb r1, [sp, #0x18] + strb r0, [sp, #0x17] + ldr r0, [r6, #0x1c] + cmp r0, #0 + bne _02311B34 + mov r0, #2 + strb r0, [r5, #0xc] + str r4, [sp] + ldr r1, _02311B88 @ =0x02329098 + ldr r0, [r6] + ldr r1, [r1, #0x24] + ldr r2, _02311B8C @ =0x00006CFD + mov r3, r5 + bl ov00_02311630 +_02311B34: + ldr r0, [r6, #0x20] + cmp r0, #0 + bne _02311B64 + mov r2, #3 + strb r2, [r5, #0xc] + str r4, [sp] + ldr r1, _02311B88 @ =0x02329098 + ldr r0, [r6] + ldr r1, [r1, #0x20] + mov r3, r5 + rsb r2, r2, #0x6d00 + bl ov00_02311630 +_02311B64: + bl ov00_022F5594 + add r0, r0, #0x1f4 + str r0, [r6, #0x2c] + mov r0, #0xa + str r0, [r6, #0x28] + add sp, sp, #0x5c + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02311B80: .4byte 0x0231BF24 +_02311B84: .4byte 0x02328804 +_02311B88: .4byte 0x02329098 +_02311B8C: .4byte 0x00006CFD + arm_func_end ov00_02311918 + + arm_func_start ov00_02311B90 +ov00_02311B90: @ 0x02311B90 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x50 + ldr r1, _02311CAC @ =0x0231BF24 + mov r2, #3 + ldrb r7, [r1] + ldrb r6, [r1, #1] + add r8, sp, #4 + ldrb r5, [r1, #2] + ldrb lr, [r1, #3] + ldrb ip, [r1, #4] + ldrb r3, [r1, #5] + mov r1, #7 + mov r4, r0 + strb r7, [r8] + strb r6, [r8, #1] + strb r5, [r8, #2] + strb lr, [r8, #3] + strb ip, [r8, #4] + strb r2, [sp, #0xa] + strb r1, [sp, #0xb] + strb r3, [r8, #5] + ldr r3, [r4, #8] + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + lsl r3, r3, #0x18 + orr r0, r1, r0 + and r2, r2, #0xff0000 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + str r0, [sp, #0xc] + ldr r0, [r4, #0x30] + add r3, sp, #4 + str r0, [sp, #0x10] + ldrh r0, [r4, #0x34] + asr r1, r0, #8 + lsl r0, r0, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + strh r0, [sp, #0x14] + ldrb r0, [r4, #0x36] + mvn r1, #0 + strb r0, [sp, #0x16] + ldr r0, [r4, #0x10] + cmp r0, #2 + movne r0, #1 + moveq r0, #0 + strb r0, [sp, #0x17] + ldr r0, [r4, #4] + cmp r0, r1 + ldreq r0, [r4] + mov r1, #0x14 + str r1, [sp] + ldrh r2, [r4, #0x34] + ldr r1, [r4, #0x30] + bl ov00_02311630 + bl ov00_022F5594 + add r0, r0, #0x2bc + str r0, [r4, #0x2c] + mov r0, #0xc + str r0, [r4, #0x28] + ldrb r0, [r4, #0x36] + cmp r0, #0 + movne r0, #1 + strbne r0, [r4, #0x37] + add sp, sp, #0x50 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02311CAC: .4byte 0x0231BF24 + arm_func_end ov00_02311B90 + + arm_func_start ov00_02311CB0 +ov00_02311CB0: @ 0x02311CB0 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0xcc + mov r4, #1 + mov r5, r0 + sub r0, r4, #2 + cmp r5, r0 + beq _02311DA4 + bl ov00_022F5594 + ldr r2, _02311DB0 @ =0x02329098 + ldr r1, _02311DB4 @ =0x00002710 + ldr r2, [r2, #0x10] + sub r0, r0, r2 + cmp r0, r1 + movhs r4, #0 + bhs _02311CFC + ldr r1, _02311DB8 @ =0x023290C4 + mov r0, r5 + bl ov00_02310EEC + mov r4, r0 +_02311CFC: + cmp r4, #0 + bne _02311DA4 + ldr r0, _02311DB8 @ =0x023290C4 + bl ov00_02311238 + sub r6, sp, #0xc + ldr r5, _02311DB8 @ =0x023290C4 + mov r7, r0 + mov lr, r6 + mov ip, #0xd +_02311D20: + ldm r5!, {r0, r1, r2, r3} + stm lr!, {r0, r1, r2, r3} + subs ip, ip, #1 + bne _02311D20 + ldm r5, {r0, r1} + stm lr, {r0, r1} + ldr r1, _02311DB0 @ =0x02329098 + mov r0, r7 + ldr ip, [r1, #0xc] + ldm r6, {r1, r2, r3} + blx ip + ldr r1, _02311DB8 @ =0x023290C4 + ldr r2, _02311DBC @ =0x0231BF18 + ldr r3, [r1, #0x8c] + ldr r0, _02311DB0 @ =0x02329098 + str r3, [r2] + ldr r3, [r1, #0x90] + mvn r1, #0 + str r3, [r0, #8] + ldr r0, [r2, #8] + cmp r0, r1 + beq _02311D7C + bl ov00_022F4FB4 +_02311D7C: + ldr r0, _02311DBC @ =0x0231BF18 + mvn r1, #0 + str r1, [r0, #8] + ldr r0, [r0, #4] + cmp r0, r1 + beq _02311D98 + bl ov00_022F4FB4 +_02311D98: + ldr r0, _02311DBC @ =0x0231BF18 + mvn r1, #0 + str r1, [r0, #4] +_02311DA4: + mov r0, r4 + add sp, sp, #0xcc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02311DB0: .4byte 0x02329098 +_02311DB4: .4byte 0x00002710 +_02311DB8: .4byte 0x023290C4 +_02311DBC: .4byte 0x0231BF18 + arm_func_end ov00_02311CB0 + + arm_func_start ov00_02311DC0 +ov00_02311DC0: @ 0x02311DC0 + push {r4, lr} + mov r4, r0 + bl ov00_022F5178 + mvn r1, #0 + cmp r0, r1 + popne {r4, pc} + mov r0, r4 + bl ov00_022CF3D4 + cmp r0, #0 + moveq r0, #0 + ldrne r0, [r0, #0xc] + ldrne r0, [r0] + ldrne r0, [r0] + pop {r4, pc} + arm_func_end ov00_02311DC0 + + arm_func_start ov00_02311DF8 +ov00_02311DF8: @ 0x02311DF8 + stmdb sp!, {lr} + sub sp, sp, #0x44 + cmp r0, #0 + bne _02311E24 + ldr r2, _02311E30 @ =0x0231BF2C + str r1, [sp] + ldr r3, _02311E34 @ =0x02328804 + add r0, sp, #4 + mov r1, #0x40 + bl FUN_0207911C + add r0, sp, #4 +_02311E24: + bl ov00_02311DC0 + add sp, sp, #0x44 + ldm sp!, {pc} + .align 2, 0 +_02311E30: .4byte 0x0231BF2C +_02311E34: .4byte 0x02328804 + arm_func_end ov00_02311DF8 + + arm_func_start ov00_02311E38 +ov00_02311E38: @ 0x02311E38 + push {r3, lr} + ldr r0, _02311ED0 @ =0x02329098 + ldr r1, [r0, #0x28] + cmp r1, #0 + bne _02311E60 + ldr r0, [r0, #4] + ldr r1, _02311ED4 @ =0x0231BF34 + bl ov00_02311DF8 + ldr r1, _02311ED0 @ =0x02329098 + str r0, [r1, #0x28] +_02311E60: + ldr r0, _02311ED0 @ =0x02329098 + ldr r1, [r0, #0x24] + cmp r1, #0 + bne _02311E84 + ldr r0, [r0, #0x18] + ldr r1, _02311ED8 @ =0x0231BF50 + bl ov00_02311DF8 + ldr r1, _02311ED0 @ =0x02329098 + str r0, [r1, #0x24] +_02311E84: + ldr r0, _02311ED0 @ =0x02329098 + ldr r1, [r0, #0x20] + cmp r1, #0 + bne _02311EA8 + ldr r0, [r0, #0x14] + ldr r1, _02311EDC @ =0x0231BF6C + bl ov00_02311DF8 + ldr r1, _02311ED0 @ =0x02329098 + str r0, [r1, #0x20] +_02311EA8: + ldr r0, _02311ED0 @ =0x02329098 + ldr r1, [r0, #0x28] + cmp r1, #0 + ldrne r1, [r0, #0x24] + cmpne r1, #0 + ldrne r0, [r0, #0x20] + cmpne r0, #0 + moveq r0, #0 + movne r0, #1 + pop {r3, pc} + .align 2, 0 +_02311ED0: .4byte 0x02329098 +_02311ED4: .4byte 0x0231BF34 +_02311ED8: .4byte 0x0231BF50 +_02311EDC: .4byte 0x0231BF6C + arm_func_end ov00_02311E38 + + arm_func_start ov00_02311EE0 +ov00_02311EE0: @ 0x02311EE0 + push {r4, r5, r6, r7, r8, lr} + ldr ip, _02311FAC @ =0x02328800 + mov r8, r0 + ldr r0, [ip] + mov r7, r1 + cmp r0, #1 + mov r6, r2 + mov r5, r3 + movne r0, #2 + popne {r4, r5, r6, r7, r8, pc} + bl ov00_02311E38 + cmp r0, #0 + moveq r0, #3 + popeq {r4, r5, r6, r7, r8, pc} + bl ov00_023114E8 + movs r4, r0 + moveq r0, #1 + popeq {r4, r5, r6, r7, r8, pc} + str r8, [r4, #4] + str r6, [r4, #0xc] + str r7, [r4, #8] + ldr r1, [sp, #0x18] + str r5, [r4, #0x38] + ldr r2, [sp, #0x1c] + str r1, [r4, #0x3c] + mov r0, #2 + str r2, [r4, #0x40] + mov r1, r0 + mov r2, #0 + bl ov00_022F4FA0 + str r0, [r4] + mov r0, #0 + str r0, [r4, #0x24] + strb r0, [r4, #0x36] + strb r0, [r4, #0x37] + str r0, [r4, #0x30] + strh r0, [r4, #0x34] + mov r2, #5 + str r0, [r4, #0x28] + str r2, [r4, #0x44] + ldr r1, [r4] + sub r0, r2, #6 + cmp r1, r0 + mov r0, r4 + bne _02311FA0 + bl ov00_02311578 + mov r0, #2 + pop {r4, r5, r6, r7, r8, pc} +_02311FA0: + bl ov00_02311918 + mov r0, #0 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02311FAC: .4byte 0x02328800 + arm_func_end ov00_02311EE0 + + arm_func_start ov00_02311FB0 +ov00_02311FB0: @ 0x02311FB0 + push {r4, lr} + bl ov00_02311480 + movs r4, r0 + popeq {r4, pc} + ldr r0, [r4] + mvn r1, #0 + cmp r0, r1 + beq _02311FD4 + bl ov00_022F4FB4 +_02311FD4: + mvn r0, #0 + str r0, [r4] + mov r0, #4 + str r0, [r4, #0x10] + pop {r4, pc} + arm_func_end ov00_02311FB0 + + arm_func_start ov00_02311FE8 +ov00_02311FE8: @ 0x02311FE8 + push {r3, r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x1c + ldr r1, _023122AC @ =0x02329098 + mov r2, #8 + ldr r1, [r1, #0x1c] + mov sb, r0 + str r2, [sp, #0x10] + cmp r1, #0 + beq _02312034 + ldr r0, _023122B0 @ =0x0231BF18 + ldr r0, [r0, #8] + bl ov00_02311CB0 + ldr r2, _023122AC @ =0x02329098 + ldr r1, _023122B0 @ =0x0231BF18 + str r0, [r2, #0x1c] + ldr r0, [r1, #4] + bl ov00_02311CB0 + ldr r1, _023122AC @ =0x02329098 + str r0, [r1, #0x1c] +_02312034: + cmp sb, #0 + addeq sp, sp, #0x1c + popeq {r3, r4, r5, r6, r7, r8, sb, sl, pc} + ldr r0, [sb, #0x10] + cmp r0, #4 + bne _0231205C + mov r0, sb + bl ov00_02311578 + add sp, sp, #0x1c + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} +_0231205C: + ldr r0, [sb] + mvn r1, #0 + cmp r0, r1 + beq _023120E4 + bl ov00_022F5320 + cmp r0, #0 + beq _023120E4 + ldr r6, _023122B4 @ =0x0232919C + add r8, sp, #0x14 + add r7, sp, #0x10 + mov r5, #0x200 + mov r4, #0 + mvn sl, #0 +_02312090: + str r8, [sp] + str r7, [sp, #4] + ldr r0, [sb] + mov r1, r6 + mov r2, r5 + mov r3, r4 + bl ov00_022F509C + mov r1, r0 + cmp r1, sl + beq _023120E4 + mov r0, r6 + mov r2, r8 + bl ov00_0231268C + ldr r0, [sb, #0x10] + cmp r0, #4 + ldrne r0, [sb] + cmpne r0, sl + beq _023120E4 + bl ov00_022F5320 + cmp r0, #0 + bne _02312090 +_023120E4: + ldr r0, [sb, #0x10] + cmp r0, #0 + cmpne r0, #2 + bne _02312170 + bl ov00_022F5594 + ldr r1, [sb, #0x2c] + cmp r0, r1 + bls _02312170 + ldr r1, [sb, #0x24] + ldr r0, [sb, #0x28] + cmp r1, r0 + ble _0231214C + ldr r0, [sb, #0x10] + mov r3, #0 + cmp r0, #0 + bne _02312138 + mov r1, #2 + mov r0, sb + sub r2, r1, #3 + bl ov00_02311870 + b _02312170 +_02312138: + mov r1, #3 + mov r0, sb + sub r2, r1, #4 + bl ov00_02311870 + b _02312170 +_0231214C: + add r0, r1, #1 + str r0, [sb, #0x24] + ldr r0, [sb, #0x10] + cmp r0, #0 + mov r0, sb + bne _0231216C + bl ov00_02311918 + b _02312170 +_0231216C: + bl ov00_02311B90 +_02312170: + ldr r0, [sb, #0x10] + cmp r0, #3 + bne _023121E8 + bl ov00_022F5594 + ldr r1, [sb, #0x2c] + cmp r0, r1 + bls _023121E8 + mov r0, #2 + strb r0, [sp, #9] + ldrh r1, [sb, #0x34] + sub r0, r0, #3 + add r3, sp, #8 + asr r2, r1, #8 + lsl r1, r1, #8 + and r2, r2, #0xff + and r1, r1, #0xff00 + orr r1, r2, r1 + strh r1, [sp, #0xa] + ldr r1, [sb, #0x30] + str r1, [sp, #0xc] + ldr r2, [sb, #4] + mov r1, #0 + cmp r2, r0 + bne _023121E0 + ldr r2, [sb] + mov r0, sb + bl ov00_02311870 + b _023121E8 +_023121E0: + mov r0, sb + bl ov00_02311870 +_023121E8: + ldr r0, [sb, #0x10] + cmp r0, #1 + bne _02312218 + bl ov00_022F5594 + ldr r1, [sb, #0x2c] + cmp r0, r1 + bls _02312218 + mov r1, #1 + mov r0, sb + sub r2, r1, #2 + mov r3, #0 + bl ov00_02311870 +_02312218: + ldr r0, [sb, #0x10] + cmp r0, #5 + addne sp, sp, #0x1c + popne {r3, r4, r5, r6, r7, r8, sb, sl, pc} + bl ov00_022F5594 + ldr r1, [sb, #0x2c] + cmp r0, r1 + addls sp, sp, #0x1c + popls {r3, r4, r5, r6, r7, r8, sb, sl, pc} + ldr r1, [sb, #0x24] + ldr r0, [sb, #0x28] + cmp r1, r0 + ble _02312284 + ldr r0, [sb, #0x44] + ldr r1, [sb, #0x48] + ldr r3, [sb, #0x40] + ldr r4, [sb, #0x3c] + add r2, sb, #0x4c + blx r4 + ldr r1, [sb, #4] + mvn r0, #0 + cmp r1, r0 + streq r0, [sb] + ldr r0, [sb, #8] + bl ov00_02311FB0 + add sp, sp, #0x1c + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} +_02312284: + mov r0, sb + bl ov00_0231171C + ldr r0, [sb, #0x24] + add r0, r0, #1 + str r0, [sb, #0x24] + bl ov00_022F5594 + add r0, r0, #0x3e8 + str r0, [sb, #0x2c] + add sp, sp, #0x1c + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_023122AC: .4byte 0x02329098 +_023122B0: .4byte 0x0231BF18 +_023122B4: .4byte 0x0232919C + arm_func_end ov00_02311FE8 + + arm_func_start ov00_023122B8 +ov00_023122B8: @ 0x023122B8 + push {r3, r4, r5, lr} + ldr r0, _02312318 @ =0x02329098 + ldr r0, [r0] + cmp r0, #0 + beq _023122D8 + bl ov00_022F47A0 + cmp r0, #0 + bne _023122E4 +_023122D8: + mov r0, #0 + bl ov00_02311FE8 + pop {r3, r4, r5, pc} +_023122E4: + ldr r0, _02312318 @ =0x02329098 + ldr r0, [r0] + bl ov00_022F47A0 + subs r5, r0, #1 + popmi {r3, r4, r5, pc} + ldr r4, _02312318 @ =0x02329098 +_023122FC: + ldr r0, [r4] + mov r1, r5 + bl ov00_022F47A8 + bl ov00_02311FE8 + subs r5, r5, #1 + bpl _023122FC + pop {r3, r4, r5, pc} + .align 2, 0 +_02312318: .4byte 0x02329098 + arm_func_end ov00_023122B8 + + arm_func_start ov00_0231231C +ov00_0231231C: @ 0x0231231C + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x50 + ldr r2, _023123E4 @ =0x0231BF24 + mov r4, #3 + ldrb r8, [r2] + ldrb r7, [r2, #1] + add r3, sp, #4 + ldrb r6, [r2, #2] + ldrb lr, [r2, #3] + ldrb ip, [r2, #4] + ldrb r5, [r2, #5] + mov r2, #6 + strb r2, [sp, #0xb] + strb r8, [r3] + strb r7, [r3, #1] + strb r6, [r3, #2] + strb lr, [r3, #3] + strb ip, [r3, #4] + strb r4, [sp, #0xa] + strb r5, [r3, #5] + ldr r5, [r0, #8] + mov r2, #0x15 + lsr lr, r5, #0x18 + lsr ip, r5, #8 + lsl r4, r5, #8 + lsl r5, r5, #0x18 + and lr, lr, #0xff + and ip, ip, #0xff00 + and r4, r4, #0xff0000 + orr ip, lr, ip + and r5, r5, #0xff000000 + orr r4, r4, ip + orr r4, r5, r4 + str r4, [sp, #0xc] + ldr ip, [r0, #0xc] + strb ip, [sp, #0x11] + ldrh lr, [r1, #2] + str r2, [sp] + asr ip, lr, #8 + lsl r2, lr, #8 + and ip, ip, #0xff + and r2, r2, #0xff00 + orr r2, ip, r2 + lsl r2, r2, #0x10 + ldr r0, [r0] + ldr r1, [r1, #4] + lsr r2, r2, #0x10 + bl ov00_02311630 + add sp, sp, #0x50 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_023123E4: .4byte 0x0231BF24 + arm_func_end ov00_0231231C + + arm_func_start ov00_023123E8 +ov00_023123E8: @ 0x023123E8 + push {r3, r4, r5, lr} + mov r5, r1 + ldrb r1, [r5, #0x13] + mov r4, r0 + cmp r1, #0 + bne _02312408 + mov r1, r2 + bl ov00_0231231C +_02312408: + ldr r0, [r4, #0x10] + cmp r0, #2 + popge {r3, r4, r5, pc} + ldrb r0, [r5, #0x13] + cmp r0, #0 + beq _0231244C + mov r1, #4 + cmp r0, #1 + moveq r1, #1 + beq _02312438 + cmp r0, #2 + moveq r1, #2 +_02312438: + mov r0, r4 + mvn r2, #0 + mov r3, #0 + bl ov00_02311870 + pop {r3, r4, r5, pc} +_0231244C: + ldr r1, [r5, #0xc] + mov r0, #2 + str r1, [r4, #0x30] + ldrh r2, [r5, #0x10] + mov r1, #0 + asr r3, r2, #8 + lsl r2, r2, #8 + and r3, r3, #0xff + and r2, r2, #0xff00 + orr r2, r3, r2 + strh r2, [r4, #0x34] + str r1, [r4, #0x24] + str r0, [r4, #0x10] + ldr r1, [r4, #0x40] + ldr r2, [r4, #0x38] + blx r2 + mov r0, r4 + bl ov00_02311B90 + pop {r3, r4, r5, pc} + arm_func_end ov00_023123E8 + + arm_func_start ov00_02312498 +ov00_02312498: @ 0x02312498 + push {r4, lr} + mov r4, r0 + ldr r3, [r4, #0x10] + cmp r3, #2 + poplt {r4, pc} + ldr ip, [r2, #4] + mov r3, #1 + str ip, [r4, #0x30] + ldrh r2, [r2, #2] + asr ip, r2, #8 + lsl r2, r2, #8 + and ip, ip, #0xff + and r2, r2, #0xff00 + orr r2, ip, r2 + strh r2, [r4, #0x34] + strb r3, [r4, #0x36] + ldrb r2, [r1, #0x12] + cmp r2, #0 + bne _023124EC + bl ov00_02311B90 + pop {r4, pc} +_023124EC: + ldr r2, [r4, #0x10] + cmp r2, #2 + bne _02312524 + ldrb r1, [r4, #0x37] + cmp r1, #0 + bne _02312508 + bl ov00_02311B90 +_02312508: + mov r0, #3 + str r0, [r4, #0x10] + bl ov00_022F5594 + add r0, r0, #0x388 + add r0, r0, #0x1000 + str r0, [r4, #0x2c] + pop {r4, pc} +_02312524: + ldrb r1, [r1, #0x13] + cmp r1, #0 + popne {r4, pc} + bl ov00_02311B90 + pop {r4, pc} + arm_func_end ov00_02312498 + + arm_func_start ov00_02312538 +ov00_02312538: @ 0x02312538 + push {r3, r4, lr} + sub sp, sp, #4 + mov r3, r1 + ldrb r1, [r3, #7] + mov r4, r0 + cmp r1, #1 + beq _0231256C + cmp r1, #2 + beq _02312608 + cmp r1, #0xe + beq _0231264C + add sp, sp, #4 + pop {r3, r4, pc} +_0231256C: + ldrb r0, [r3, #0xc] + cmp r0, #3 + addhi sp, sp, #4 + pophi {r3, r4, pc} + add r0, r4, r0, lsl #2 + mov r2, #1 + str r2, [r0, #0x14] + ldr r0, [r4, #0x10] + cmp r0, #0 + addne sp, sp, #4 + popne {r3, r4, pc} + ldr r0, [r4, #0x18] + cmp r0, #0 + ldrne r0, [r4, #0x1c] + cmpne r0, #0 + ldrne r0, [r4, #0x20] + cmpne r0, #0 + addeq sp, sp, #4 + popeq {r3, r4, pc} + ldr r1, [r4, #4] + sub r0, r2, #2 + cmp r1, r0 + beq _023125D8 + ldr r0, [r4, #0x14] + cmp r0, #0 + addeq sp, sp, #4 + popeq {r3, r4, pc} +_023125D8: + mov r0, #1 + str r0, [r4, #0x10] + bl ov00_022F5594 + add r0, r0, #0x710 + add r0, r0, #0x2000 + str r0, [r4, #0x2c] + ldr r0, [r4, #0x10] + ldr r1, [r4, #0x40] + ldr r2, [r4, #0x38] + blx r2 + add sp, sp, #4 + pop {r3, r4, pc} +_02312608: + mov r0, #3 + strb r0, [r3, #7] + ldrh r0, [r2, #2] + mov ip, #0x15 + asr r1, r0, #8 + lsl r0, r0, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + str ip, [sp] + orr r0, r1, r0 + lsl ip, r0, #0x10 + ldr r1, [r2, #4] + ldr r0, [r4] + lsr r2, ip, #0x10 + bl ov00_02311630 + add sp, sp, #4 + pop {r3, r4, pc} +_0231264C: + mov r0, #6 + str r0, [r4, #0x10] + ldr r0, [r4, #0x44] + ldr r1, [r4, #0x48] + ldr r3, [r4, #0x40] + ldr ip, [r4, #0x3c] + add r2, r4, #0x4c + blx ip + ldr r1, [r4, #4] + mvn r0, #0 + cmp r1, r0 + streq r0, [r4] + ldr r0, [r4, #8] + bl ov00_02311FB0 + add sp, sp, #4 + pop {r3, r4, pc} + arm_func_end ov00_02312538 + + arm_func_start ov00_0231268C +ov00_0231268C: @ 0x0231268C + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x4c + mov r6, r0 + mov r7, r1 + mov r5, r2 + bl ov00_0231160C + cmp r0, #0 + addeq sp, sp, #0x4c + popeq {r4, r5, r6, r7, pc} + ldrb r4, [r6, #7] + cmp r4, #5 + cmpne r4, #7 + bne _0231275C + cmp r7, #0x14 + addlt sp, sp, #0x4c + poplt {r4, r5, r6, r7, pc} + add r3, sp, #0 + mov r2, #0xa +_023126D4: + ldrb r1, [r6] + ldrb r0, [r6, #1] + add r6, r6, #2 + subs r2, r2, #1 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + bne _023126D4 + ldr r3, [sp, #8] + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + lsl r3, r3, #0x18 + orr r0, r1, r0 + and r2, r2, #0xff0000 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + bl ov00_02311480 + cmp r0, #0 + addeq sp, sp, #0x4c + popeq {r4, r5, r6, r7, pc} + cmp r4, #5 + add r1, sp, #0 + mov r2, r5 + bne _02312750 + bl ov00_023123E8 + add sp, sp, #0x4c + pop {r4, r5, r6, r7, pc} +_02312750: + bl ov00_02312498 + add sp, sp, #0x4c + pop {r4, r5, r6, r7, pc} +_0231275C: + cmp r7, #0x15 + addlt sp, sp, #0x4c + poplt {r4, r5, r6, r7, pc} + add r3, sp, #0 + mov r2, #0xa +_02312770: + ldrb r1, [r6] + ldrb r0, [r6, #1] + add r6, r6, #2 + subs r2, r2, #1 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + bne _02312770 + ldrb r0, [r6] + strb r0, [r3] + ldr r3, [sp, #8] + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + lsl r3, r3, #0x18 + orr r0, r1, r0 + and r2, r2, #0xff0000 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + bl ov00_02311480 + cmp r0, #0 + addeq sp, sp, #0x4c + popeq {r4, r5, r6, r7, pc} + add r1, sp, #0 + mov r2, r5 + bl ov00_02312538 + add sp, sp, #0x4c + pop {r4, r5, r6, r7, pc} + arm_func_end ov00_0231268C + + arm_func_start ov00_023127EC +ov00_023127EC: @ 0x023127EC + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x40 + movs r5, r0 + mov r8, r1 + mov r4, r2 + mov r7, r3 + ldreq r6, _02312998 @ =0x0231BF8C + beq _0231281C + ldr r0, _0231299C @ =0x00000D94 + bl ov00_022F5AE4 + mov r6, r0 + str r0, [r5] +_0231281C: + bl ov00_022F5594 + bl FUN_020895E4 + mov r1, r7 + add r0, r6, #4 + bl FUN_02089694 + ldr r1, [sp, #0x58] + add r0, r6, #0x44 + bl FUN_02089694 + str r4, [r6, #0xc0] + mov r5, #0 + str r5, [r6, #0xac] + str r5, [r6, #0xb0] + str r8, [r6] + mov r1, #1 + str r1, [r6, #0xb8] + ldr r0, [sp, #0x7c] + ldr r1, [sp, #0x64] + str r0, [r6, #0x10c] + str r1, [r6, #0x88] + ldr r0, [sp, #0x68] + ldr r1, [sp, #0x6c] + str r0, [r6, #0x8c] + str r1, [r6, #0x90] + ldr r0, [sp, #0x70] + ldr r1, [sp, #0x74] + str r0, [r6, #0x94] + ldr r0, [sp, #0x78] + str r1, [r6, #0x98] + str r0, [r6, #0x9c] + str r5, [r6, #0xa0] + str r5, [r6, #0xa4] + ldr r0, [sp, #0x5c] + str r5, [r6, #0xd4] + str r0, [r6, #0xbc] + ldr r0, [sp, #0x60] + str r5, [r6, #0xc4] + str r0, [r6, #0xc8] + str r5, [r6, #0x104] + add r0, r6, #0x100 + strh r5, [r0, #8] + str r5, [r6, #0xa8] + str r5, [r6, #0xb4] + ldr r4, _023129A0 @ =0x80808081 + strb r5, [r6, #0x110] + mov r8, #0xff +_023128D0: + bl FUN_020895B0 + smull r1, r2, r4, r0 + add r3, r6, r5 + add r5, r5, #1 + add r2, r0, r2 + lsr r1, r0, #0x1f + add r2, r1, r2, asr #7 + smull r1, r2, r8, r2 + sub r2, r0, r1 + strb r2, [r3, #0x84] + cmp r5, #4 + blt _023128D0 + mov r2, #0 + mvn r1, #0 +_02312908: + add r0, r6, r2, lsl #2 + add r2, r2, #1 + str r1, [r0, #0xd8] + cmp r2, #0xa + blt _02312908 + mov r1, #0 + add r0, r6, #0x114 + mov r2, #0xc80 + str r1, [r6, #0x100] + bl FUN_02087308 + bl ov00_02312DB0 + ldr r0, [sp, #0x5c] + cmp r0, #0 + beq _02312980 + ldr r0, _023129A4 @ =0x023293B4 + ldrsb r4, [r0] + cmp r4, #0 + bne _02312960 + ldr r1, _023129A8 @ =0x0231CD20 + add r0, sp, #0 + mov r2, r7 + bl FUN_020790DC +_02312960: + cmp r4, #0 + ldrne r0, _023129A4 @ =0x023293B4 + ldr r1, _023129AC @ =0x00006CFC + addeq r0, sp, #0 + add r2, r6, #0xcc + mov r3, #0 + bl ov00_02312E24 + b _02312984 +_02312980: + mov r0, #1 +_02312984: + cmp r0, #0 + moveq r0, #3 + movne r0, #0 + add sp, sp, #0x40 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02312998: .4byte 0x0231BF8C +_0231299C: .4byte 0x00000D94 +_023129A0: .4byte 0x80808081 +_023129A4: .4byte 0x023293B4 +_023129A8: .4byte 0x0231CD20 +_023129AC: .4byte 0x00006CFC + arm_func_end ov00_023127EC + + arm_func_start ov00_023129B0 +ov00_023129B0: @ 0x023129B0 + cmp r0, #0 + ldreq r0, _023129C4 @ =0x0231BF88 + ldreq r0, [r0] + str r1, [r0, #0xa0] + bx lr + .align 2, 0 +_023129C4: .4byte 0x0231BF88 + arm_func_end ov00_023129B0 + + arm_func_start ov00_023129C8 +ov00_023129C8: @ 0x023129C8 + cmp r0, #0 + ldreq r0, _023129DC @ =0x0231BF88 + ldreq r0, [r0] + str r1, [r0, #0xa4] + bx lr + .align 2, 0 +_023129DC: .4byte 0x0231BF88 + arm_func_end ov00_023129C8 + + arm_func_start ov00_023129E0 +ov00_023129E0: @ 0x023129E0 + cmp r0, #0 + ldreq r0, _023129F4 @ =0x0231BF88 + ldreq r0, [r0] + str r1, [r0, #0xa8] + bx lr + .align 2, 0 +_023129F4: .4byte 0x0231BF88 + arm_func_end ov00_023129E0 + + arm_func_start ov00_023129F8 +ov00_023129F8: @ 0x023129F8 + push {r4, lr} + movs r4, r0 + ldreq r0, _02312A30 @ =0x0231BF88 + ldreq r4, [r0] + ldr r0, [r4, #0xbc] + cmp r0, #0 + beq _02312A1C + mov r0, r4 + bl ov00_02312AE0 +_02312A1C: + mov r0, r4 + bl ov00_02312A34 + mov r0, r4 + bl ov00_02313D14 + pop {r4, pc} + .align 2, 0 +_02312A30: .4byte 0x0231BF88 + arm_func_end ov00_023129F8 + + arm_func_start ov00_02312A34 +ov00_02312A34: @ 0x02312A34 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x14 + mov r1, #8 + mov sl, r0 + str r1, [sp, #8] + ldr r0, [sl, #0xc4] + cmp r0, #0 + addeq sp, sp, #0x14 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [sl] + bl ov00_022F5320 + cmp r0, #0 + addeq sp, sp, #0x14 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r5, #0 + ldr r7, _02312ADC @ =0x023293F4 + add sb, sp, #0xc + add r8, sp, #8 + mov r6, #0xff + mov fp, r5 + mvn r4, #0 +_02312A88: + str sb, [sp] + str r8, [sp, #4] + ldr r0, [sl] + mov r1, r7 + mov r2, r6 + mov r3, fp + bl ov00_022F509C + mov r2, r0 + cmp r2, r4 + beq _02312AC4 + mov r0, sl + mov r1, r7 + mov r3, sb + strb r5, [r7, r2] + bl ov00_02313D58 +_02312AC4: + ldr r0, [sl] + bl ov00_022F5320 + cmp r0, #0 + bne _02312A88 + add sp, sp, #0x14 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02312ADC: .4byte 0x023293F4 + arm_func_end ov00_02312A34 + + arm_func_start ov00_02312AE0 +ov00_02312AE0: @ 0x02312AE0 + push {r4, lr} + mov r4, r0 + bl ov00_022F5594 + ldr r2, [r4] + mvn r1, #0 + cmp r2, r1 + popeq {r4, pc} + ldr r3, [r4, #0xb8] + cmp r3, #0 + ble _02312B60 + ldr r2, [r4, #0xac] + ldr r1, _02312BE4 @ =0x00002710 + sub r2, r0, r2 + cmp r2, r1 + bls _02312B60 + cmp r3, #4 + blt _02312B44 + mov r0, #0 + str r0, [r4, #0xb8] + ldr r2, [r4, #0x10c] + ldr r3, [r4, #0x9c] + ldr r1, _02312BE8 @ =0x0231CD40 + mov r0, #5 + blx r3 + pop {r4, pc} +_02312B44: + mov r0, r4 + mov r1, #3 + bl ov00_023141B8 + ldr r0, [r4, #0xb8] + add r0, r0, #1 + str r0, [r4, #0xb8] + b _02312BC0 +_02312B60: + ldr r1, [r4, #0xb4] + cmp r1, #0 + beq _02312B90 + ldr r2, [r4, #0xac] + ldr r1, _02312BE4 @ =0x00002710 + sub r2, r0, r2 + cmp r2, r1 + bls _02312B90 + mov r0, r4 + mov r1, #1 + bl ov00_023141B8 + b _02312BC0 +_02312B90: + ldr r3, [r4, #0xac] + ldr r1, _02312BEC @ =0x0000EA60 + sub r2, r0, r3 + cmp r2, r1 + bhi _02312BB4 + cmp r3, #0 + beq _02312BB4 + cmp r0, r3 + bhs _02312BC0 +_02312BB4: + mov r0, r4 + mov r1, #0 + bl ov00_023141B8 +_02312BC0: + bl ov00_022F5594 + ldr r2, [r4, #0xb0] + ldr r1, _02312BF0 @ =0x00004E20 + sub r0, r0, r2 + cmp r0, r1 + popls {r4, pc} + mov r0, r4 + bl ov00_02314158 + pop {r4, pc} + .align 2, 0 +_02312BE4: .4byte 0x00002710 +_02312BE8: .4byte 0x0231CD40 +_02312BEC: .4byte 0x0000EA60 +_02312BF0: .4byte 0x00004E20 + arm_func_end ov00_02312AE0 + + arm_func_start ov00_02312BF4 +ov00_02312BF4: @ 0x02312BF4 + push {r4, lr} + movs r4, r0 + ldreq r0, _02312C48 @ =0x0231BF88 + ldreq r4, [r0] + ldr r0, [r4, #0xbc] + cmp r0, #0 + popeq {r4, pc} + bl ov00_022F5594 + ldr r2, [r4, #0xac] + ldr r1, _02312C4C @ =0x00002710 + sub r0, r0, r2 + cmp r0, r1 + movlo r0, #1 + strlo r0, [r4, #0xb4] + poplo {r4, pc} + mov r0, r4 + mov r1, #1 + bl ov00_023141B8 + mov r0, #0 + str r0, [r4, #0xb4] + pop {r4, pc} + .align 2, 0 +_02312C48: .4byte 0x0231BF88 +_02312C4C: .4byte 0x00002710 + arm_func_end ov00_02312BF4 + + arm_func_start ov00_02312C50 +ov00_02312C50: @ 0x02312C50 + push {r4, lr} + movs r4, r0 + ldreq r0, _02312CCC @ =0x0231BF88 + ldreq r4, [r0] + ldr r0, [r4, #0xbc] + cmp r0, #0 + beq _02312C78 + mov r0, r4 + mov r1, #2 + bl ov00_023141B8 +_02312C78: + ldr r0, [r4] + mvn r1, #0 + cmp r0, r1 + ldrne r1, [r4, #0xc4] + cmpne r1, #0 + beq _02312C94 + bl ov00_022F4FB4 +_02312C94: + mvn r0, #0 + str r0, [r4] + mov r0, #0 + str r0, [r4, #0xac] + ldr r0, [r4, #0xc4] + cmp r0, #0 + beq _02312CB4 + bl ov00_022F5590 +_02312CB4: + ldr r0, _02312CD0 @ =0x0231BF8C + cmp r4, r0 + popeq {r4, pc} + mov r0, r4 + bl ov00_022F5B14 + pop {r4, pc} + .align 2, 0 +_02312CCC: .4byte 0x0231BF88 +_02312CD0: .4byte 0x0231BF8C + arm_func_end ov00_02312C50 + + arm_func_start ov00_02312CD4 +ov00_02312CD4: @ 0x02312CD4 + ldr r3, [r0, #0x100] + cmp r3, #0xfe + movge r0, #0 + bxge lr + cmp r1, #1 + blt _02312CF4 + cmp r1, #0xfe + ble _02312CFC +_02312CF4: + mov r0, #0 + bx lr +_02312CFC: + add r2, r3, #1 + str r2, [r0, #0x100] + strb r1, [r0, r3] + mov r0, #1 + bx lr + arm_func_end ov00_02312CD4 + + arm_func_start ov00_02312D10 +ov00_02312D10: @ 0x02312D10 + push {r3, r4, lr} + sub sp, sp, #0x14 + mov r2, r1 + mov r4, r0 + ldr r1, _02312D40 @ =0x0231CD78 + add r0, sp, #0 + bl FUN_020790DC + add r1, sp, #0 + mov r0, r4 + bl ov00_02312D44 + add sp, sp, #0x14 + pop {r3, r4, pc} + .align 2, 0 +_02312D40: .4byte 0x0231CD78 + arm_func_end ov00_02312D10 + + arm_func_start ov00_02312D44 +ov00_02312D44: @ 0x02312D44 + push {r4, r5, r6, lr} + mov r6, r1 + mov r4, r0 + mov r0, r6 + bl FUN_02089678 + ldr r3, [r4, #0x578] + ldr r1, _02312DAC @ =0x00000578 + add r5, r0, #1 + sub r0, r1, r3 + cmp r5, r0 + movgt r5, r0 + cmp r5, #0 + movle r0, #0 + pople {r4, r5, r6, pc} + mov r1, r6 + mov r2, r5 + add r0, r4, r3 + bl FUN_0208729C + ldr r0, [r4, #0x578] + mov r1, #0 + add r0, r0, r5 + str r0, [r4, #0x578] + sub r0, r0, #1 + strb r1, [r4, r0] + mov r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 +_02312DAC: .4byte 0x00000578 + arm_func_end ov00_02312D44 + + arm_func_start ov00_02312DB0 +ov00_02312DB0: @ 0x02312DB0 + push {r4, r5, r6, lr} + bl ov00_022F5370 + cmp r0, #0 + popeq {r4, r5, r6, pc} + ldr r1, _02312E1C @ =0x0232939C + mov r6, #0 + ldr ip, _02312E20 @ =0x023293A0 + str r6, [r1] +_02312DD0: + ldr r2, [r0, #0xc] + lsl r5, r6, #2 + ldr r4, [r2, r6, lsl #2] + cmp r4, #0 + popeq {r4, r5, r6, pc} + ldrb r3, [r4] + ldrb r2, [r4, #1] + add r6, r6, #1 + add lr, ip, r5 + strb r3, [ip, r5] + strb r2, [lr, #1] + ldrb r3, [r4, #2] + ldrb r2, [r4, #3] + cmp r6, #5 + strb r3, [lr, #2] + strb r2, [lr, #3] + str r6, [r1] + blt _02312DD0 + pop {r4, r5, r6, pc} + .align 2, 0 +_02312E1C: .4byte 0x0232939C +_02312E20: .4byte 0x023293A0 + arm_func_end ov00_02312DB0 + + arm_func_start ov00_02312E24 +ov00_02312E24: @ 0x02312E24 + push {r3, r4, r5, r6, r7, lr} + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + asr r4, r1, #8 + lsl r1, r1, #8 + mov r6, r2 + mov r5, #2 + and r2, r4, #0xff + and r1, r1, #0xff00 + strb r5, [r6, #1] + orr r1, r2, r1 + strh r1, [r6, #2] + mov r4, #0 + movs r7, r0 + mov r5, r3 + streq r4, [r6, #4] + beq _02312E70 + bl ov00_022F5178 + str r0, [r6, #4] +_02312E70: + ldr r1, [r6, #4] + mvn r0, #0 + cmp r1, r0 + bne _02312EB8 + ldr r1, _02312EC8 @ =0x0231CD7C + mov r0, r7 + bl FUN_0208982C + cmp r0, #0 + beq _02312EB8 + mov r0, r7 + bl ov00_022CF3D4 + movs r4, r0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldr r0, [r4, #0xc] + ldr r0, [r0] + ldr r0, [r0] + str r0, [r6, #4] +_02312EB8: + cmp r5, #0 + strne r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02312EC8: .4byte 0x0231CD7C + arm_func_end ov00_02312E24 + + arm_func_start ov00_02312ECC +ov00_02312ECC: @ 0x02312ECC + ldrb r3, [r0] + ldrb r2, [r1] + strb r2, [r0] + strb r3, [r1] + bx lr + arm_func_end ov00_02312ECC + + arm_func_start ov00_02312EE0 +ov00_02312EE0: @ 0x02312EE0 + cmp r0, #0x1a + addlo r0, r0, #0x41 + andlo r0, r0, #0xff + bxlo lr + cmp r0, #0x34 + addlo r0, r0, #0x47 + andlo r0, r0, #0xff + bxlo lr + cmp r0, #0x3e + sublo r0, r0, #4 + andlo r0, r0, #0xff + bxlo lr + moveq r0, #0x2b + bxeq lr + cmp r0, #0x3f + moveq r0, #0x2f + movne r0, #0 + bx lr + arm_func_end ov00_02312EE0 + + arm_func_start ov00_02312F28 +ov00_02312F28: @ 0x02312F28 + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #8 + mov r7, r1 + mov r8, r0 + mov r6, r2 + cmp r7, #0 + mov r4, #0 + ble _02312FDC +_02312F48: + mov r2, #0 + add r3, sp, #4 + mov r0, r2 +_02312F54: + cmp r4, r7 + ldrblt r1, [r8], #1 + add r2, r2, #1 + add r4, r4, #1 + strblt r1, [r3] + strbge r0, [r3] + cmp r2, #2 + add r3, r3, #1 + ble _02312F54 + ldrb r0, [sp, #4] + ldrb r5, [sp, #5] + ldrb r2, [sp, #6] + lsl r3, r0, #0x1e + asr r1, r5, #4 + add ip, r1, r3, lsr #26 + and r1, r2, #0x3f + lsl r3, r5, #0x1c + asr r2, r2, #6 + asr r0, r0, #2 + add r2, r2, r3, lsr #26 + add r5, sp, #0 + strb r0, [sp] + strb ip, [sp, #1] + strb r2, [sp, #2] + strb r1, [sp, #3] + mov sb, #0 +_02312FBC: + ldrb r0, [r5], #1 + bl ov00_02312EE0 + add sb, sb, #1 + cmp sb, #3 + strb r0, [r6], #1 + ble _02312FBC + cmp r4, r7 + blt _02312F48 +_02312FDC: + mov r0, #0 + strb r0, [r6] + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_02312F28 + + arm_func_start ov00_02312FEC +ov00_02312FEC: @ 0x02312FEC + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x104 + str r1, [sp] + add r4, sp, #4 + mov sl, r0 + mov sb, r2 + mov r8, r3 + mov r1, #0 +_0231300C: + add r0, r1, #1 + lsl r0, r0, #0x10 + strb r1, [r4], #1 + asr r1, r0, #0x10 + cmp r1, #0x100 + blt _0231300C + mov r4, #0 + add r6, sp, #4 + mov r5, r4 + mov r7, r4 + mov fp, r6 +_02313038: + ldrb r3, [r6] + ldrb r2, [sl, r4] + ldr r1, [sp] + add r0, r4, #1 + add r2, r3, r2 + add r2, r5, r2 + lsr r3, r2, #0x1f + rsb r2, r3, r2, lsl #24 + add r2, r3, r2, ror #24 + and r5, r2, #0xff + bl FUN_0208FEA4 + and r4, r1, #0xff + mov r0, r6 + add r1, fp, r5 + bl ov00_02312ECC + add r0, r7, #1 + lsl r0, r0, #0x10 + asr r7, r0, #0x10 + cmp r7, #0x100 + add r6, r6, #1 + blt _02313038 + mov r6, #0 + cmp r8, #0 + mov r7, r6 + mov r5, r6 + addle sp, sp, #0x104 + pople {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r4, sp, #4 +_023130A8: + ldrb r0, [sb, r5] + add r0, r6, r0 + add r0, r0, #1 + lsr r1, r0, #0x1f + rsb r0, r1, r0, lsl #24 + add r0, r1, r0, ror #24 + and r6, r0, #0xff + ldrb r1, [r4, r6] + add r0, r4, r6 + add r1, r1, r7 + lsr r2, r1, #0x1f + rsb r1, r2, r1, lsl #24 + add r1, r2, r1, ror #24 + and r7, r1, #0xff + add r1, r4, r7 + bl ov00_02312ECC + ldrb r3, [r4, r6] + ldrb r1, [r4, r7] + add r0, r5, #1 + lsl r2, r0, #0x10 + add r0, r3, r1 + lsr r1, r0, #0x1f + rsb r0, r1, r0, lsl #24 + add r0, r1, r0, ror #24 + and r0, r0, #0xff + ldrb r1, [sb, r5] + ldrb r0, [r4, r0] + cmp r8, r2, asr #16 + eor r0, r1, r0 + strb r0, [sb, r5] + asr r5, r2, #0x10 + bgt _023130A8 + add sp, sp, #0x104 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_02312FEC + + arm_func_start ov00_02313130 +ov00_02313130: @ 0x02313130 + strb r1, [r0] + ldrb ip, [r2] + ldrb r3, [r2, #1] + mov r1, #5 + strb ip, [r0, #1] + strb r3, [r0, #2] + ldrb r3, [r2, #2] + ldrb r2, [r2, #3] + strb r3, [r0, #3] + strb r2, [r0, #4] + str r1, [r0, #0x578] + bx lr + arm_func_end ov00_02313130 + + arm_func_start ov00_02313160 +ov00_02313160: @ 0x02313160 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x44 + mov r5, r3 + cmp r5, #1 + mov r6, r0 + mov r4, r1 + addlt sp, sp, #0x44 + poplt {r3, r4, r5, r6, pc} + cmp r5, #0x41 + addgt sp, sp, #0x44 + popgt {r3, r4, r5, r6, pc} + sub r0, r5, #1 + ldrsb r0, [r2, r0] + cmp r0, #0 + addne sp, sp, #0x44 + popne {r3, r4, r5, r6, pc} + add r0, sp, #0 + mov r1, r2 + bl FUN_02089694 + add r0, r6, #0x44 + bl FUN_02089678 + mov r1, r0 + add r2, sp, #0 + add r0, r6, #0x44 + sub r3, r5, #1 + bl ov00_02312FEC + ldr r2, [r4, #0x578] + sub r1, r5, #1 + add r0, sp, #0 + add r2, r4, r2 + bl ov00_02312F28 + ldr r0, [r4, #0x578] + add r0, r4, r0 + bl FUN_02089678 + ldr r1, [r4, #0x578] + add r0, r0, #1 + add r0, r1, r0 + str r0, [r4, #0x578] + add sp, sp, #0x44 + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_02313160 + + arm_func_start ov00_02313200 +ov00_02313200: @ 0x02313200 + push {r4, lr} + sub sp, sp, #8 + mov r4, r0 + mov r0, r1 + ldr r1, _023132AC @ =0x0231CD8C + add r2, sp, #4 + add r3, sp, #0 + bl FUN_02085338 + ldr r0, [sp, #4] + ldr lr, [sp] + lsr r2, r0, #0x18 + lsr r1, r0, #8 + lsl r3, r0, #8 + lsl ip, r0, #0x18 + and r2, r2, #0xff + and r1, r1, #0xff00 + orr r1, r2, r1 + and r3, r3, #0xff0000 + lsl r0, lr, #0x10 + and r2, ip, #0xff000000 + orr r1, r3, r1 + orrs r2, r2, r1 + lsr r1, r0, #0x10 + str r2, [sp, #4] + cmpne r1, #0 + addeq sp, sp, #8 + popeq {r4, pc} + ldr r0, [r4, #0x104] + cmp r0, r2 + addeq r0, r4, #0x100 + ldrheq r0, [r0, #8] + cmpeq r0, r1 + addeq sp, sp, #8 + popeq {r4, pc} + str r2, [r4, #0x104] + add r0, r4, #0x100 + strh r1, [r0, #8] + ldr r0, [sp, #4] + ldr r2, [r4, #0x10c] + ldr r3, [r4, #0xa8] + blx r3 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_023132AC: .4byte 0x0231CD8C + arm_func_end ov00_02313200 + + arm_func_start ov00_023132B0 +ov00_023132B0: @ 0x023132B0 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x10c + movs fp, r3 + mov r3, #0 + ldr r7, [sp, #0x130] + str r3, [sp, #0x108] + mov sl, r0 + mov sb, r1 + mov r8, r2 + addeq sp, sp, #0x10c + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + sub r0, r8, #1 + cmp r0, #1 + bhi _02313360 + ldr r1, [sb, #0x578] + ldr r0, _02313504 @ =0x00000578 + sub r0, r0, r1 + cmp r0, #2 + addlo sp, sp, #0x10c + poplo {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [sl, #0x10c] + ldr r2, [sl, #0x98] + mov r0, r8 + blx r2 + str r0, [sp] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r1, r0, #8 + lsl r0, r0, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + strh r0, [sp, #4] + add r0, sp, #4 + ldrb r1, [r0] + ldr r2, [sb, #0x578] + ldrb r0, [r0, #1] + add r3, sb, r2 + strb r1, [sb, r2] + strb r0, [r3, #1] + ldr r0, [sb, #0x578] + add r0, r0, #2 + str r0, [sb, #0x578] + b _02313368 +_02313360: + mov r0, #1 + str r0, [sp] +_02313368: + cmp fp, #0xff + bne _02313440 + ldr r2, [sl, #0x10c] + ldr r3, [sl, #0x94] + add r1, sp, #8 + mov r0, r8 + blx r3 + ldr r0, [sp, #0x108] + mov r5, #0 + cmp r0, #0 + ble _02313404 + ldr fp, _02313508 @ =0x0231CD98 + ldr r4, _0231350C @ =0x0231CF68 + add r7, sp, #8 +_023133A0: + ldrb r0, [r7] + ldr r1, [r4, r0, lsl #2] + mov r0, sb + cmp r1, #0 + moveq r1, fp + bl ov00_02312D44 + cmp r8, #0 + bne _023133F0 + ldrb r0, [r7] + ldr r2, [sl, #0x10c] + ldr r3, [sl, #0x88] + mov r1, sb + ldr r6, [sb, #0x578] + blx r3 + ldr r0, [sb, #0x578] + cmp r6, r0 + bne _023133F0 + ldr r1, _02313510 @ =0x0231CDA0 + mov r0, sb + bl ov00_02312D44 +_023133F0: + ldr r0, [sp, #0x108] + add r5, r5, #1 + cmp r5, r0 + add r7, r7, #1 + blt _023133A0 +_02313404: + ldr r1, [sb, #0x578] + ldr r0, _02313504 @ =0x00000578 + sub r0, r0, r1 + cmp r0, #1 + addlt sp, sp, #0x10c + poplt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, r1, #1 + str r0, [sb, #0x578] + mov r0, #0 + strb r0, [sb, r1] + ldr fp, [sp, #0x108] + cmp r8, #0 + add r7, sp, #8 + addeq sp, sp, #0x10c + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02313440: + ldr r0, [sp] + mov r4, #0 + cmp r0, #0 + addle sp, sp, #0x10c + pople {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02313454: + mov r5, #0 + cmp fp, #0 + ble _023134EC +_02313460: + cmp r8, #0 + ldr r6, [sb, #0x578] + bne _02313484 + ldrb r0, [r7, r5] + ldr r2, [sl, #0x10c] + ldr r3, [sl, #0x88] + mov r1, sb + blx r3 + b _023134C8 +_02313484: + cmp r8, #1 + bne _023134A8 + ldrb r0, [r7, r5] + ldr r3, [sl, #0x10c] + ldr ip, [sl, #0x8c] + mov r1, r4 + mov r2, sb + blx ip + b _023134C8 +_023134A8: + cmp r8, #2 + bne _023134C8 + ldrb r0, [r7, r5] + ldr r3, [sl, #0x10c] + ldr ip, [sl, #0x90] + mov r1, r4 + mov r2, sb + blx ip +_023134C8: + ldr r0, [sb, #0x578] + cmp r6, r0 + bne _023134E0 + ldr r1, _02313510 @ =0x0231CDA0 + mov r0, sb + bl ov00_02312D44 +_023134E0: + add r5, r5, #1 + cmp r5, fp + blt _02313460 +_023134EC: + ldr r0, [sp] + add r4, r4, #1 + cmp r4, r0 + blt _02313454 + add sp, sp, #0x10c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02313504: .4byte 0x00000578 +_02313508: .4byte 0x0231CD98 +_0231350C: .4byte 0x0231CF68 +_02313510: .4byte 0x0231CDA0 + arm_func_end ov00_023132B0 + + arm_func_start ov00_02313514 +ov00_02313514: @ 0x02313514 + push {r3, r4, r5, lr} + str r3, [sp] + mov r3, r2 + mov r2, #0 + mov r5, r0 + mov r4, r1 + bl ov00_023132B0 + ldr ip, [sp, #0x14] + ldr r3, [sp, #0x10] + mov r0, r5 + mov r1, r4 + mov r2, #1 + str ip, [sp] + bl ov00_023132B0 + ldr r0, [sp, #0x1c] + ldr r3, [sp, #0x18] + str r0, [sp] + mov r0, r5 + mov r1, r4 + mov r2, #2 + bl ov00_023132B0 + pop {r3, r4, r5, pc} + arm_func_end ov00_02313514 + + arm_func_start ov00_0231356C +ov00_0231356C: @ 0x0231356C + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov r8, r2 + ldr r2, [r8] + mov sl, r0 + cmp r2, #3 + mov sb, r1 + movge r0, #0 + popge {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [sb, #0x578] + ldr r0, _02313814 @ =0x00000578 + sub r0, r0, r1 + cmp r0, #0x20 + movlt r0, #0 + poplt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, _02313818 @ =0x0231CDA4 + mov r0, sb + bl ov00_02312D44 + ldr r0, [sb, #0x578] + str r0, [sp] + add r0, r0, #1 + str r0, [sb, #0x578] + ldr r1, [r8, #4] + add r0, r1, #1 + str r0, [r8, #4] + ldr r0, [sp] + strb r1, [sb, r0] + ldr r0, [r8] + cmp r0, #3 + bge _023137F8 +_023135E0: + ldr r0, [r8, #0x114] + cmp r0, #0 + bne _02313600 + ldr r0, [r8] + ldr r2, [sl, #0x10c] + ldr r3, [sl, #0x94] + add r1, r8, #0x14 + blx r3 +_02313600: + ldr r0, [r8, #0xc] + cmp r0, #0 + bne _02313628 + ldr r0, [r8] + cmp r0, #0 + beq _02313628 + ldr r1, [sl, #0x10c] + ldr r2, [sl, #0x98] + blx r2 + str r0, [r8, #0xc] +_02313628: + ldr r1, [sb, #0x578] + ldr r4, _02313814 @ =0x00000578 + sub r0, r4, r1 + cmp r0, #0x64 + movlt r0, #1 + poplt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, r1, #1 + str r0, [sb, #0x578] + ldr r0, [r8] + strb r0, [sb, r1] + ldr r1, [r8, #8] + ldr r0, [r8, #0x114] + cmp r1, r0 + bge _023137A8 + mov r5, #0 + ldr r6, _0231381C @ =0x0231CF68 + mov fp, r5 +_0231366C: + add r0, r8, r1 + ldrb r7, [r0, #0x14] + mov r0, sb + ldr r1, [r6, r7, lsl #2] + bl ov00_02312D44 + cmp r0, #0 + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r8] + cmp r0, #0 + bne _023136C4 + ldr r2, [sl, #0x10c] + ldr r3, [sl, #0x88] + mov r0, r7 + mov r1, sb + blx r3 + ldr r0, [sb, #0x578] + sub r0, r4, r0 + cmp r0, #1 + bge _02313788 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023136C4: + ldr r1, [sb, #0x578] + sub r0, r4, r1 + cmp r0, #1 + movlt r0, #1 + poplt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, r1 + add r0, r0, #1 + str r0, [sb, #0x578] + ldr r0, [r8, #0x10] + strb r0, [sb, r1] + ldr r1, [r8, #0x10] + ldr r0, [r8, #0xc] + cmp r1, r0 + bge _02313768 +_023136FC: + ldr r0, [r8] + cmp r0, #1 + bne _02313720 + ldr r3, [sl, #0x10c] + ldr ip, [sl, #0x8c] + mov r0, r7 + mov r2, sb + blx ip + b _0231373C +_02313720: + cmp r0, #2 + bne _0231373C + ldr r3, [sl, #0x10c] + ldr ip, [sl, #0x90] + mov r0, r7 + mov r2, sb + blx ip +_0231373C: + ldr r0, [sb, #0x578] + sub r0, r4, r0 + cmp r0, #1 + movlt r0, #1 + poplt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r8, #0x10] + add r1, r0, #1 + str r1, [r8, #0x10] + ldr r0, [r8, #0xc] + cmp r1, r0 + blt _023136FC +_02313768: + ldr r1, [sb, #0x578] + sub r0, r4, r1 + cmp r0, #0 + ble _02313788 + mov r0, r1 + add r0, r0, #1 + str r0, [sb, #0x578] + strb r5, [sb, r1] +_02313788: + ldr r0, [r8, #8] + add r0, r0, #1 + str r0, [r8, #8] + str fp, [r8, #0x10] + ldr r1, [r8, #8] + ldr r0, [r8, #0x114] + cmp r1, r0 + blt _0231366C +_023137A8: + ldr r1, [sb, #0x578] + ldr r0, _02313814 @ =0x00000578 + sub r0, r0, r1 + cmp r0, #0 + ble _023137CC + add r0, r1, #1 + str r0, [sb, #0x578] + mov r0, #0 + strb r0, [sb, r1] +_023137CC: + ldr r1, [r8] + mov r0, #0 + add r1, r1, #1 + str r1, [r8] + str r0, [r8, #8] + str r0, [r8, #0xc] + str r0, [r8, #0x10] + str r0, [r8, #0x114] + ldr r0, [r8] + cmp r0, #3 + blt _023135E0 +_023137F8: + ldr r0, [sp] + ldrb r1, [sb, r0] + mov r0, #1 + orr r2, r1, #0x80 + ldr r1, [sp] + strb r2, [sb, r1] + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02313814: .4byte 0x00000578 +_02313818: .4byte 0x0231CDA4 +_0231381C: .4byte 0x0231CF68 + arm_func_end ov00_0231356C + + arm_func_start ov00_02313820 +ov00_02313820: @ 0x02313820 + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x128 + mov ip, #0 + ldr r4, [sp, #0x148] + cmp r3, #3 + mov r6, r0 + mov r5, r1 + mov r7, ip + mov r8, ip + addlt sp, sp, #0x128 + mov lr, ip + poplt {r4, r5, r6, r7, r8, sb, sl, pc} + ldrb sb, [r2], #1 + sub r3, r3, #1 + cmp sb, #0 + cmpne sb, #0xff + movne r7, r2 + subne r3, r3, sb + addne r2, r2, sb + cmp r3, #2 + addlt sp, sp, #0x128 + poplt {r4, r5, r6, r7, r8, sb, sl, pc} + ldrb r1, [r2], #1 + sub r3, r3, #1 + cmp r1, #0 + cmpne r1, #0xff + movne lr, r2 + subne r3, r3, r1 + addne r2, r2, r1 + cmp r3, #1 + addlt sp, sp, #0x128 + poplt {r4, r5, r6, r7, r8, sb, sl, pc} + ldrb sl, [r2], #1 + sub r3, r3, #1 + cmp sl, #0 + cmpne sl, #0xff + movne r8, r2 + subne r3, r3, sl + addne r2, r2, sl + cmp r3, #0 + addlt sp, sp, #0x128 + poplt {r4, r5, r6, r7, r8, sb, sl, pc} + ldrbgt ip, [r2] + and r0, ip, #1 + cmp r0, #1 + bne _0231396C + mov r3, #0 + add r2, sp, #0x10 + mov r0, r6 + mov r1, r5 + str r3, [sp, #0x14] + str r3, [sp, #0x10] + str r3, [sp, #0x18] + str r3, [sp, #0x1c] + str r3, [sp, #0x20] + str r3, [sp, #0x124] + bl ov00_0231356C + cmp r0, #1 + addne sp, sp, #0x128 + popne {r4, r5, r6, r7, r8, sb, sl, pc} + add sl, sp, #0x10 + mov sb, #8 + mov r8, #0 + mov r7, #5 +_02313920: + stm sp, {r4, sb} + ldr r0, [r6] + ldr r2, [r5, #0x578] + mov r1, r5 + mov r3, r8 + bl ov00_022F50E0 + str r7, [r5, #0x578] + ldr r0, [sp, #0x14] + cmp r0, #7 + addgt sp, sp, #0x128 + popgt {r4, r5, r6, r7, r8, sb, sl, pc} + mov r0, r6 + mov r1, r5 + mov r2, sl + bl ov00_0231356C + cmp r0, #1 + beq _02313920 + add sp, sp, #0x128 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_0231396C: + stm sp, {r1, lr} + str sl, [sp, #8] + mov r0, r6 + mov r1, r5 + mov r2, sb + mov r3, r7 + str r8, [sp, #0xc] + bl ov00_02313514 + str r4, [sp] + mov r0, #8 + str r0, [sp, #4] + ldr r0, [r6] + ldr r2, [r5, #0x578] + mov r1, r5 + mov r3, #0 + bl ov00_022F50E0 + add sp, sp, #0x128 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end ov00_02313820 + + arm_func_start ov00_023139B4 +ov00_023139B4: @ 0x023139B4 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0xc + ldr ip, _02313AD8 @ =0x02318760 + mov r3, r0 + ldrb r4, [ip] + ldrb r0, [ip, #1] + ldrb lr, [ip, #2] + strb r4, [sp, #4] + strb r0, [sp, #5] + ldrb r0, [ip, #3] + cmp r2, #0xa + add r6, sp, #4 + strb lr, [sp, #6] + strb r0, [sp, #7] + ldrb lr, [ip, #4] + ldrb r0, [ip, #5] + mov r5, #1 + strb lr, [sp, #8] + strb r0, [sp, #9] + blt _02313A30 + mov r4, #0 +_02313A08: + ldrb ip, [r6] + ldrb r0, [r1, r4] + cmp ip, r0 + movne r5, #0 + bne _02313A34 + add r4, r4, #1 + cmp r4, #6 + add r6, r6, #1 + blt _02313A08 + b _02313A34 +_02313A30: + mov r5, #0 +_02313A34: + cmp r5, #0 + beq _02313AB0 + ldrb r2, [r1, #6] + ldrb r0, [r1, #7] + add ip, sp, #0 + strb r2, [ip] + strb r0, [ip, #1] + ldrb r2, [r1, #8] + ldrb r0, [r1, #9] + strb r0, [ip, #3] + strb r2, [ip, #2] + ldr r2, [r3, #0xa0] + cmp r2, #0 + addeq sp, sp, #0xc + popeq {r3, r4, r5, r6, pc} + ldr lr, [sp] + ldr r1, [r3, #0x10c] + lsr r3, lr, #0x18 + lsr r0, lr, #8 + lsl ip, lr, #8 + and r3, r3, #0xff + and r0, r0, #0xff00 + lsl lr, lr, #0x18 + orr r0, r3, r0 + and ip, ip, #0xff0000 + and r3, lr, #0xff000000 + orr r0, ip, r0 + orr r0, r3, r0 + blx r2 + add sp, sp, #0xc + pop {r3, r4, r5, r6, pc} +_02313AB0: + ldr ip, [r3, #0xa4] + cmp ip, #0 + addeq sp, sp, #0xc + popeq {r3, r4, r5, r6, pc} + mov r0, r1 + mov r1, r2 + ldr r2, [r3, #0x10c] + blx ip + add sp, sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_02313AD8: .4byte 0x02318760 + arm_func_end ov00_023139B4 + + arm_func_start ov00_02313ADC +ov00_02313ADC: @ 0x02313ADC + push {r4, lr} + mov r3, #0 +_02313AE4: + add r2, r0, r3, lsl #2 + ldr r2, [r2, #0xd8] + cmp r1, r2 + moveq r0, #1 + popeq {r4, pc} + add r3, r3, #1 + cmp r3, #0xa + blt _02313AE4 + ldr r2, [r0, #0x100] + ldr ip, _02313B3C @ =0x66666667 + add lr, r2, #1 + smull r3, r4, ip, lr + lsr r2, lr, #0x1f + add r4, r2, r4, asr #2 + mov ip, #0xa + smull r2, r3, ip, r4 + sub r4, lr, r2 + str r4, [r0, #0x100] + add r0, r0, r4, lsl #2 + str r1, [r0, #0xd8] + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_02313B3C: .4byte 0x66666667 + arm_func_end ov00_02313ADC + + arm_func_start ov00_02313B40 +ov00_02313B40: @ 0x02313B40 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0xc + mov sl, r0 + mov sb, r1 + mov r5, r2 + mov r4, #0 + bl ov00_022F5594 + ldrb r1, [sl, #0x110] + mov r7, r0 + mvn r8, #0 + tst r1, #0x80 + mov r1, r4 + bne _02313B88 + mov r0, sb + bl ov00_02312D10 + add sp, sp, #0xc + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02313B88: + ldr r0, [r5, #4] + mov r3, r8 +_02313B90: + cmp r8, r3 + addeq r2, sl, r4, lsl #4 + ldreq r2, [r2, #0x118] + add r6, sl, r4, lsl #4 + cmpeq r2, #0 + ldr r2, [r6, #0x118] + moveq r8, r4 + cmp r0, r2 + bne _02313BC8 + add r2, r6, #0x100 + ldrh r6, [r5, #2] + ldrh r2, [r2, #0x16] + cmp r6, r2 + addeq r1, r1, #1 +_02313BC8: + add r4, r4, #1 + cmp r4, #0xc8 + blt _02313B90 + cmp r1, #5 + addgt sp, sp, #0xc + movgt r0, #0 + popgt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + mvn r0, #0 + cmp r8, r0 + addeq sp, sp, #0xc + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r5] + ldr r0, [r5, #4] + add r2, sl, r8, lsl #4 + str r1, [r2, #0x114] + str r0, [r2, #0x118] + bl FUN_020895B0 + mov r6, r0 + bl FUN_020895B0 + mov r5, r0 + bl FUN_020895B0 + mov r4, r0 + bl FUN_020895B0 + mov fp, r0 + bl FUN_020895B0 + str r0, [sp] + bl FUN_020895B0 + str r0, [sp, #4] + bl FUN_020895B0 + str r0, [sp, #8] + bl FUN_020895B0 + orr r6, r5, r6, lsl #16 + orr r5, fp, r4, lsl #16 + ldr r2, [sp, #4] + ldr r1, [sp] + add r4, sl, r8, lsl #4 + orr r3, r2, r1, lsl #16 + lsl r1, r6, #0x18 + and r2, r1, #0xff000000 + lsl r1, r5, #8 + lsr r3, r3, #0x18 + and r5, r3, #0xff + ldr r3, [sp, #8] + and r1, r1, #0xff0000 + orr r0, r0, r3, lsl #16 + lsr r0, r0, #8 + and r0, r0, #0xff00 + orr r0, r5, r0 + orr r0, r1, r0 + orr r0, r2, r0 + str r0, [r4, #0x11c] + str r7, [r4, #0x120] + ldr r1, [r4, #0x11c] + mov r0, sb + bl ov00_02312D10 + mov r0, #1 + add sp, sp, #0xc + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_02313B40 + + arm_func_start ov00_02313CB4 +ov00_02313CB4: @ 0x02313CB4 + push {r4, r5, r6, lr} + ldr r6, [r1, #4] + mov r5, #0 +_02313CC0: + add r4, r0, r5, lsl #4 + ldr r3, [r4, #0x118] + cmp r6, r3 + bne _02313D00 + add r3, r4, #0x100 + ldrh lr, [r1, #2] + ldrh ip, [r3, #0x16] + cmp lr, ip + ldreq ip, [r4, #0x11c] + cmpeq r2, ip + bne _02313D00 + mov r0, #0 + str r0, [r4, #0x118] + strh r0, [r3, #0x16] + mov r0, #1 + pop {r4, r5, r6, pc} +_02313D00: + add r5, r5, #1 + cmp r5, #0xc8 + blt _02313CC0 + mov r0, #0 + pop {r4, r5, r6, pc} + arm_func_end ov00_02313CB4 + + arm_func_start ov00_02313D14 +ov00_02313D14: @ 0x02313D14 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, #0 + bl ov00_022F5594 + mov r1, r4 +_02313D28: + add r3, r5, r4, lsl #4 + ldr r2, [r3, #0x118] + cmp r2, #0 + beq _02313D48 + ldr r2, [r3, #0x120] + sub r2, r0, r2 + cmp r2, #0xfa0 + strhi r1, [r3, #0x118] +_02313D48: + add r4, r4, #1 + cmp r4, #0xc8 + blt _02313D28 + pop {r3, r4, r5, pc} + arm_func_end ov00_02313D14 + + arm_func_start ov00_02313D58 +ov00_02313D58: @ 0x02313D58 + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x18c + sub sp, sp, #0x400 + movs r8, r0 + mov r0, #0 + str r0, [sp, #0x588] + ldreq r0, _02314150 @ =0x0231BF88 + mov r7, r2 + ldreq r8, [r0] + ldrsb r0, [r1] + mov r6, r3 + cmp r0, #0x3b + bne _02313DBC + ldr r3, [r8, #0xd4] + cmp r3, #0 + addeq sp, sp, #0x18c + addeq sp, sp, #0x400 + popeq {r4, r5, r6, r7, r8, sb, pc} + mov r0, r1 + mov r1, r7 + mov r2, r6 + blx r3 + add sp, sp, #0x18c + add sp, sp, #0x400 + pop {r4, r5, r6, r7, r8, sb, pc} +_02313DBC: + cmp r7, #7 + addlt sp, sp, #0x18c + addlt sp, sp, #0x400 + poplt {r4, r5, r6, r7, r8, sb, pc} + and r0, r0, #0xff + cmp r0, #0xfe + ldrbeq r0, [r1, #1] + cmpeq r0, #0xfd + addne sp, sp, #0x18c + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, pc} + ldr r0, [r8, #0xb8] + add r4, r1, #3 + cmp r0, #0 + movgt r0, #0 + strgt r0, [r8, #0xb8] + ldrsb sb, [r1, #2] + add r5, r1, #7 + add r0, sp, #0x10 + mov r1, sb + mov r2, r4 + sub r7, r7, #7 + bl ov00_02313130 + cmp sb, #9 + addls pc, pc, sb, lsl #2 + b _02314118 +_02313E24: @ jump table + b _02313E70 @ case 0 + b _02313F04 @ case 1 + b _02313F8C @ case 2 + b _02314118 @ case 3 + b _02313FC4 @ case 4 + b _02314118 @ case 5 + b _02314048 @ case 6 + b _02314118 @ case 7 + b _02314118 @ case 8 + b _02313E4C @ case 9 +_02313E4C: + add r1, sp, #0x10 + mov r0, r8 + mov r2, r6 + bl ov00_02313B40 + cmp r0, #0 + bne _02314124 + add sp, sp, #0x18c + add sp, sp, #0x400 + pop {r4, r5, r6, r7, r8, sb, pc} +_02313E70: + ldrb r0, [r8, #0x110] + and r0, r0, #0x80 + cmp r0, #0x80 + bne _02313EE0 + cmp r7, #4 + addlt sp, sp, #0x18c + addlt sp, sp, #0x400 + poplt {r4, r5, r6, r7, r8, sb, pc} + ldr r4, [r5], #4 + mov r0, r8 + lsr r2, r4, #0x18 + lsr r1, r4, #8 + lsl r3, r4, #8 + lsl r4, r4, #0x18 + and r2, r2, #0xff + and r1, r1, #0xff00 + and r3, r3, #0xff0000 + orr r1, r2, r1 + orr r2, r3, r1 + and r4, r4, #0xff000000 + mov r1, r6 + orr r2, r4, r2 + sub r7, r7, #4 + bl ov00_02313CB4 + cmp r0, #0 + addeq sp, sp, #0x18c + addeq sp, sp, #0x400 + popeq {r4, r5, r6, r7, r8, sb, pc} +_02313EE0: + add r1, sp, #0x10 + mov r0, r8 + mov r2, r5 + mov r3, r7 + str r6, [sp] + bl ov00_02313820 + add sp, sp, #0x18c + add sp, sp, #0x400 + pop {r4, r5, r6, r7, r8, sb, pc} +_02313F04: + mov r2, #0 + str r2, [sp, #0xc] +_02313F0C: + add r0, r8, r2 + ldrsb r1, [r4, r2] + ldrsb r0, [r0, #0x84] + cmp r1, r0 + addne sp, sp, #0x18c + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, pc} + add r2, r2, #1 + str r2, [sp, #0xc] + cmp r2, #4 + blt _02313F0C + cmp r7, #0xf + blt _02313F74 + add r4, r5, r7 + ldr r1, _02314154 @ =0x0231CDB0 + add r2, sp, #8 + sub r0, r4, #0xf + bl FUN_02085338 + ldr r0, [sp, #8] + strb r0, [r8, #0x110] + ldr r0, [r8, #0xa8] + cmp r0, #0 + beq _02313F74 + mov r0, r8 + sub r1, r4, #0xd + bl ov00_02313200 +_02313F74: + add r1, sp, #0x10 + mov r0, r8 + mov r2, r5 + mov r3, r7 + bl ov00_02313160 + b _02314124 +_02313F8C: + ldr r0, [sp, #0x588] + cmp r7, #0x20 + movgt r7, #0x20 + add r3, sp, #0x10 + mov r4, #5 + mov r1, r5 + mov r2, r7 + add r0, r3, r0 + strb r4, [sp, #0x10] + bl FUN_0208729C + ldr r0, [sp, #0x588] + add r0, r0, r7 + str r0, [sp, #0x588] + b _02314124 +_02313FC4: + ldr r1, [r8, #0xb8] + mvn r0, #0 + cmp r1, r0 + addeq sp, sp, #0x18c + addeq sp, sp, #0x400 + popeq {r4, r5, r6, r7, r8, sb, pc} + mov r2, #0 + str r2, [sp, #0xc] +_02313FE4: + add r0, r8, r2 + ldrsb r1, [r4, r2] + ldrsb r0, [r0, #0x84] + cmp r1, r0 + addne sp, sp, #0x18c + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, pc} + add r2, r2, #1 + str r2, [sp, #0xc] + cmp r2, #4 + blt _02313FE4 + cmp r7, #2 + addlt sp, sp, #0x18c + addlt sp, sp, #0x400 + poplt {r4, r5, r6, r7, r8, sb, pc} + mvn r0, #0 + str r0, [r8, #0xb8] + ldrsb r0, [r5] + ldr r2, [r8, #0x10c] + ldr r3, [r8, #0x9c] + add r1, r5, #1 + blx r3 + add sp, sp, #0x18c + add sp, sp, #0x400 + pop {r4, r5, r6, r7, r8, sb, pc} +_02314048: + mov r2, #0 + str r2, [sp, #0xc] +_02314050: + add r0, r8, r2 + ldrsb r1, [r4, r2] + ldrsb r0, [r0, #0x84] + cmp r1, r0 + addne sp, sp, #0x18c + addne sp, sp, #0x400 + popne {r4, r5, r6, r7, r8, sb, pc} + add r2, r2, #1 + str r2, [sp, #0xc] + cmp r2, #4 + blt _02314050 + cmp r7, #4 + addlt sp, sp, #0x18c + addlt sp, sp, #0x400 + poplt {r4, r5, r6, r7, r8, sb, pc} + mov r0, #7 + strb r0, [sp, #0x10] + ldrb r1, [r5] + ldrb r0, [r5, #1] + ldr r2, [sp, #0x588] + add r4, sp, #0x10 + strb r1, [r4, r2] + add r4, r4, r2 + strb r0, [r4, #1] + ldrb r2, [r5, #2] + ldrb r1, [r5, #3] + add r3, sp, #0xc + mov r0, r8 + strb r2, [r4, #2] + strb r1, [r4, #3] + ldr r1, [sp, #0x588] + add r1, r1, #4 + str r1, [sp, #0x588] + ldrb r2, [r5] + ldrb r1, [r5, #1] + strb r2, [r3] + strb r1, [r3, #1] + ldrb r2, [r5, #2] + ldrb r1, [r5, #3] + strb r2, [r3, #2] + strb r1, [r3, #3] + ldr r1, [sp, #0xc] + bl ov00_02313ADC + cmp r0, #0 + bne _02314124 + mov r0, r8 + add r1, r5, #4 + sub r2, r7, #4 + bl ov00_023139B4 + b _02314124 +_02314118: + add sp, sp, #0x18c + add sp, sp, #0x400 + pop {r4, r5, r6, r7, r8, sb, pc} +_02314124: + str r6, [sp] + mov r0, #8 + str r0, [sp, #4] + ldr r0, [r8] + ldr r2, [sp, #0x588] + add r1, sp, #0x10 + mov r3, #0 + bl ov00_022F50E0 + add sp, sp, #0x18c + add sp, sp, #0x400 + pop {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_02314150: .4byte 0x0231BF88 +_02314154: .4byte 0x0231CDB0 + arm_func_end ov00_02313D58 + + arm_func_start ov00_02314158 +ov00_02314158: @ 0x02314158 + push {r3, r4, lr} + sub sp, sp, #0x184 + sub sp, sp, #0x400 + mov r4, r0 + mov r3, #0 + add r0, sp, #8 + add r2, r4, #0x84 + mov r1, #8 + str r3, [sp, #0x580] + bl ov00_02313130 + add r0, r4, #0xcc + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + ldr r0, [r4] + ldr r2, [sp, #0x580] + add r1, sp, #8 + mov r3, #0 + bl ov00_022F50E0 + bl ov00_022F5594 + str r0, [r4, #0xb0] + add sp, sp, #0x184 + add sp, sp, #0x400 + pop {r3, r4, pc} + arm_func_end ov00_02314158 + + arm_func_start ov00_023141B8 +ov00_023141B8: @ 0x023141B8 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x31c + sub sp, sp, #0x800 + mov sl, r0 + mov sb, r1 + mov r3, #0 + add r0, sp, #0x5a0 + add r2, sl, #0x84 + mov r1, #3 + str r3, [sp, #0xb18] + bl ov00_02313130 + ldr r4, _0231440C @ =0x0232939C + mov r8, #0 + ldr r0, [r4] + cmp r0, #0 + ble _02314248 + ldr fp, _02314410 @ =0x0231CDB8 + ldr r5, _02314414 @ =0x023293A0 + add r7, sp, #0x10 + add r6, sp, #0x5a0 +_02314208: + mov r0, r7 + mov r1, fp + mov r2, r8 + bl FUN_020790DC + mov r0, r6 + mov r1, r7 + bl ov00_02312D44 + ldr r0, [r5, r8, lsl #2] + bl ov00_022CF7F4 + mov r1, r0 + mov r0, r6 + bl ov00_02312D44 + add r8, r8, #1 + ldr r0, [r4] + cmp r8, r0 + blt _02314208 +_02314248: + ldr r1, _02314418 @ =0x0231CDC4 + add r0, sp, #0x5a0 + bl ov00_02312D44 + ldr r1, [sl, #0xc0] + add r0, sp, #0x5a0 + bl ov00_02312D10 + ldr r1, _0231441C @ =0x0231CDD0 + add r0, sp, #0x5a0 + bl ov00_02312D44 + ldr r0, [sl, #0xc8] + cmp r0, #0 + ldrne r1, _02314420 @ =0x0231CDD8 + add r0, sp, #0x5a0 + ldreq r1, _02314424 @ =0x0231CDDC + bl ov00_02312D44 + cmp sb, #0 + beq _023142A4 + ldr r1, _02314428 @ =0x0231CDE0 + add r0, sp, #0x5a0 + bl ov00_02312D44 + add r0, sp, #0x5a0 + mov r1, sb + bl ov00_02312D10 +_023142A4: + ldr r1, _0231442C @ =0x0231CDF0 + add r0, sp, #0x5a0 + bl ov00_02312D44 + add r0, sp, #0x5a0 + add r1, sl, #4 + bl ov00_02312D44 + ldr r0, [sl, #0xa8] + cmp r0, #0 + beq _023142FC + ldr r1, _02314430 @ =0x0231CDFC + add r0, sp, #0x5a0 + bl ov00_02312D44 + ldr r1, [sl, #0x104] + add r0, sp, #0x5a0 + bl ov00_02312D10 + ldr r1, _02314434 @ =0x0231CE08 + add r0, sp, #0x5a0 + bl ov00_02312D44 + add r0, sl, #0x100 + ldrh r1, [r0, #8] + add r0, sp, #0x5a0 + bl ov00_02312D10 +_023142FC: + cmp sb, #2 + beq _0231439C + ldr r2, [sp, #0xb18] + add r0, sp, #0x24 + add r1, sp, #0x5a0 + bl FUN_0208729C + ldr r0, [sp, #0xb18] + mov r2, #0xff + str r0, [sp, #0x59c] + str r2, [sp] + mov r3, #0 + str r3, [sp, #4] + str r2, [sp, #8] + add r1, sp, #0x24 + mov r0, sl + str r3, [sp, #0xc] + bl ov00_02313514 + ldr r1, [sp, #0x59c] + ldr r0, _02314438 @ =0x00000578 + sub r0, r0, r1 + cmp r0, #1 + bge _02314380 + ldr r0, [sp, #0xb18] + mov r3, #0 + str r0, [sp, #0x59c] + str r3, [sp] + str r3, [sp, #4] + str r3, [sp, #8] + add r1, sp, #0x24 + mov r0, sl + mov r2, #0xff + str r3, [sp, #0xc] + bl ov00_02313514 +_02314380: + ldr r2, [sp, #0x59c] + add r0, sp, #0x5a0 + add r1, sp, #0x24 + bl FUN_0208729C + ldr r0, [sp, #0x59c] + str r0, [sp, #0xb18] + b _023143C4 +_0231439C: + ldr r2, [sp, #0xb18] + ldr r0, _02314438 @ =0x00000578 + sub r0, r0, r2 + cmp r0, #1 + blt _023143C4 + add r1, r2, #1 + str r1, [sp, #0xb18] + add r0, sp, #0x5a0 + mov r1, #0 + strb r1, [r0, r2] +_023143C4: + add r0, sl, #0xcc + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + ldr r0, [sl] + ldr r2, [sp, #0xb18] + add r1, sp, #0x5a0 + mov r3, #0 + bl ov00_022F50E0 + bl ov00_022F5594 + str r0, [sl, #0xac] + str r0, [sl, #0xb0] + cmp sb, #0 + movne r0, #0 + strne r0, [sl, #0xb4] + add sp, sp, #0x31c + add sp, sp, #0x800 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0231440C: .4byte 0x0232939C +_02314410: .4byte 0x0231CDB8 +_02314414: .4byte 0x023293A0 +_02314418: .4byte 0x0231CDC4 +_0231441C: .4byte 0x0231CDD0 +_02314420: .4byte 0x0231CDD8 +_02314424: .4byte 0x0231CDDC +_02314428: .4byte 0x0231CDE0 +_0231442C: .4byte 0x0231CDF0 +_02314430: .4byte 0x0231CDFC +_02314434: .4byte 0x0231CE08 +_02314438: .4byte 0x00000578 + arm_func_end ov00_023141B8 + + arm_func_start ov00_0231443C +ov00_0231443C: @ 0x0231443C + push {r4, lr} + ldr r1, _02314480 @ =0x0231CF68 + mov r4, r0 + ldr r1, [r1, #0x7c] + bl FUN_0208982C + cmp r0, #0 + beq _02314470 + ldr r1, _02314480 @ =0x0231CF68 + mov r0, r4 + ldr r1, [r1, #0x80] + bl FUN_0208982C + cmp r0, #0 + bne _02314478 +_02314470: + mov r0, #1 + pop {r4, pc} +_02314478: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_02314480: .4byte 0x0231CF68 + arm_func_end ov00_0231443C + + arm_func_start ov00_02314484 +ov00_02314484: @ 0x02314484 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + ldr r7, [sp, #0x28] + ldr r6, [sp, #0x2c] + movs sb, r1 + mov sl, r0 + mov fp, r2 + mov r8, r3 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp sb, #1 + mov r4, #0 + mov r5, #1 + bls _023144C8 +_023144B8: + lsl r0, r5, #1 + add r5, r0, #1 + cmp r5, sb + blo _023144B8 +_023144C8: + ldr r2, [r6] + add r0, r2, #1 + str r0, [r6] + ldrb r1, [r7] + ldrb r0, [fp, r2] + ldrb r1, [sl, r1] + add r0, r1, r0 + strb r0, [r7] + ldr r0, [r6] + cmp r0, r8 + blo _02314508 + mov r0, #0 + str r0, [r6] + ldrb r0, [r7] + add r0, r0, r8 + strb r0, [r7] +_02314508: + ldrb r0, [r7] + add r4, r4, #1 + cmp r4, #0xb + and r0, r5, r0 + bls _02314528 + mov r1, sb + bl FUN_020900B0 + mov r0, r1 +_02314528: + cmp r0, sb + bhi _023144C8 + and r0, r0, #0xff + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_02314484 + + arm_func_start ov00_02314538 +ov00_02314538: @ 0x02314538 + mov r1, #1 + strb r1, [r0, #0x100] + mov r1, #3 + strb r1, [r0, #0x101] + mov r1, #5 + strb r1, [r0, #0x102] + mov r1, #7 + strb r1, [r0, #0x103] + mov r1, #0xb + strb r1, [r0, #0x104] + mov r1, #0 + mov r2, #0xff +_02314568: + strb r2, [r0, r1] + add r1, r1, #1 + cmp r1, #0x100 + sub r2, r2, #1 + blt _02314568 + bx lr + arm_func_end ov00_02314538 + + arm_func_start ov00_02314580 +ov00_02314580: @ 0x02314580 + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x10 + mov r7, r2 + mov sb, r0 + mov r8, r1 + cmp r7, #1 + bhs _023145A8 + bl ov00_02314538 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_023145A8: + mov r0, #0 +_023145AC: + strb r0, [sb, r0] + add r0, r0, #1 + cmp r0, #0x100 + blt _023145AC + mov r0, #0 + str r0, [sp, #0xc] + strb r0, [sp, #8] + mov r6, #0xff + add r5, sp, #8 + add r4, sp, #0xc +_023145D4: + str r5, [sp] + mov r0, sb + mov r1, r6 + mov r2, r8 + mov r3, r7 + str r4, [sp, #4] + bl ov00_02314484 + ldrb r2, [sb, r6] + ldrb r1, [sb, r0] + strb r1, [sb, r6] + strb r2, [sb, r0] + subs r6, r6, #1 + bpl _023145D4 + ldrb r1, [sb, #1] + mov r0, #0 + strb r1, [sb, #0x100] + ldrb r1, [sb, #3] + strb r1, [sb, #0x101] + ldrb r1, [sb, #5] + strb r1, [sb, #0x102] + ldrb r1, [sb, #7] + strb r1, [sb, #0x103] + ldrb r1, [sp, #8] + ldrb r1, [sb, r1] + strb r1, [sb, #0x104] + strb r0, [sp, #8] + str r0, [sp, #0xc] + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_02314580 + + arm_func_start ov00_02314648 +ov00_02314648: @ 0x02314648 + push {r4, lr} + ldrb r4, [r0, #0x100] + add r2, r4, #1 + strb r2, [r0, #0x100] + ldrb r3, [r0, #0x101] + ldrb r2, [r0, r4] + add r2, r3, r2 + strb r2, [r0, #0x101] + ldrb r3, [r0, #0x104] + and r2, r2, #0xff + ldrb r2, [r0, r2] + ldrb r4, [r0, r3] + strb r2, [r0, r3] + ldrb r3, [r0, #0x103] + ldrb r2, [r0, #0x101] + ldrb r3, [r0, r3] + strb r3, [r0, r2] + ldrb r3, [r0, #0x100] + ldrb r2, [r0, #0x103] + ldrb r3, [r0, r3] + strb r3, [r0, r2] + ldrb r2, [r0, #0x100] + strb r4, [r0, r2] + ldrb r3, [r0, #0x102] + ldrb r2, [r0, r4] + add r4, r3, r2 + strb r4, [r0, #0x102] + ldrb r3, [r0, #0x103] + ldrb r2, [r0, #0x104] + ldrb ip, [r0, #0x101] + ldrb lr, [r0, #0x100] + and r4, r4, #0xff + ldrb r3, [r0, r3] + ldrb r2, [r0, r2] + ldrb ip, [r0, ip] + ldrb r4, [r0, r4] + add r2, r3, r2 + ldrb r3, [r0, lr] + add r2, ip, r2 + and r2, r2, #0xff + add r3, r4, r3 + ldrb r2, [r0, r2] + and r3, r3, #0xff + ldrb r3, [r0, r3] + ldrb r2, [r0, r2] + eor r3, r1, r3 + eor r2, r3, r2 + strb r2, [r0, #0x103] + strb r1, [r0, #0x104] + ldrb r0, [r0, #0x103] + pop {r4, pc} + arm_func_end ov00_02314648 + + arm_func_start ov00_02314714 +ov00_02314714: @ 0x02314714 + push {r3, r4, r5, r6, r7, lr} + mov r5, r2 + mov r7, r0 + mov r6, r1 + mov r4, #0 + cmp r5, #0 + pople {r3, r4, r5, r6, r7, pc} +_02314730: + ldrb r1, [r6, r4] + mov r0, r7 + bl ov00_02314648 + strb r0, [r6, r4] + add r4, r4, #1 + cmp r4, r5 + blt _02314730 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_02314714 + + arm_func_start ov00_02314750 +ov00_02314750: @ 0x02314750 + ldr r2, [r0, #4] + cmp r2, #0 + strne r1, [r2, #0x24] + str r1, [r0, #4] + mov r2, #0 + str r2, [r1, #0x24] + ldr r2, [r0] + cmp r2, #0 + streq r1, [r0] + ldr r1, [r0, #8] + add r1, r1, #1 + str r1, [r0, #8] + bx lr + arm_func_end ov00_02314750 + + arm_func_start ov00_02314784 +ov00_02314784: @ 0x02314784 + ldr r2, [r0] + cmp r2, #0 + beq _023147B0 + ldr r1, [r2, #0x24] + str r1, [r0] + cmp r1, #0 + moveq r1, #0 + streq r1, [r0, #4] + ldr r1, [r0, #8] + sub r1, r1, #1 + str r1, [r0, #8] +_023147B0: + mov r0, r2 + bx lr + arm_func_end ov00_02314784 + + arm_func_start ov00_023147B8 +ov00_023147B8: @ 0x023147B8 + ldr r2, [r0] + mov r3, #0 + cmp r2, #0 + beq _0231481C +_023147C8: + cmp r2, r1 + bne _0231480C + cmp r3, #0 + ldrne r1, [r2, #0x24] + strne r1, [r3, #0x24] + ldr r1, [r0] + cmp r1, r2 + ldreq r1, [r2, #0x24] + streq r1, [r0] + ldr r1, [r0, #4] + cmp r1, r2 + streq r3, [r0, #4] + ldr r1, [r0, #8] + sub r1, r1, #1 + str r1, [r0, #8] + mov r0, #1 + bx lr +_0231480C: + mov r3, r2 + ldr r2, [r2, #0x24] + cmp r2, #0 + bne _023147C8 +_0231481C: + mov r0, #0 + bx lr + arm_func_end ov00_023147B8 + + arm_func_start ov00_02314824 +ov00_02314824: @ 0x02314824 + mov r1, #0 + str r1, [r0, #4] + str r1, [r0] + str r1, [r0, #8] + bx lr + arm_func_end ov00_02314824 + + arm_func_start ov00_02314838 +ov00_02314838: @ 0x02314838 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x114 + mov r2, #2 + mov r4, r1 + strb r2, [sp, #0xd] + mov r5, r0 + mov r6, #0 + bl ov00_022F5594 + str r0, [r4, #0x1c] + ldrb r1, [r4, #0x14] + tst r1, #0x20 + bne _02314AD0 + ldr r0, [r5] + cmp r0, #1 + bne _02314A00 + tst r1, #0x80 + beq _023148C0 + mov r2, #0xfe + mov r1, #0xfd + mov r0, #9 + strb r2, [sp, #0x14] + strb r1, [sp, #0x15] + strb r0, [sp, #0x16] + ldrb r1, [r4, #0x1c] + ldrb r0, [r4, #0x1d] + add r3, sp, #0x17 + mov r2, #7 + strb r1, [r3] + strb r0, [r3, #1] + ldrb r1, [r4, #0x1e] + ldrb r0, [r4, #0x1f] + strb r1, [r3, #2] + strb r0, [r3, #3] + b _02314A70 +_023148C0: + ldr r0, [r4, #0x20] + mov ip, r6 + lsr r3, r0, #0x18 + lsr r2, r0, #8 + lsl lr, r0, #8 + lsl r6, r0, #0x18 + mov r1, #0xfe + mov r0, #0xfd + strb r0, [sp, #0x15] + and r3, r3, #0xff + and r2, r2, #0xff00 + orr r2, r3, r2 + and lr, lr, #0xff0000 + and r3, r6, #0xff000000 + orr r2, lr, r2 + orrs r2, r3, r2 + str r2, [sp, #8] + strb r1, [sp, #0x14] + strb ip, [sp, #0x16] + ldrb r2, [r4, #0x1c] + ldrb r1, [r4, #0x1d] + add r3, sp, #0x17 + add r0, ip, #7 + strb r2, [r3] + strb r1, [r3, #1] + ldrb r2, [r4, #0x1e] + ldrb r1, [r4, #0x1f] + strb r2, [r3, #2] + strb r1, [r3, #3] + beq _02314968 + add ip, sp, #8 + ldrb r3, [ip] + ldrb r1, [ip, #1] + add lr, sp, #0x14 + strb r3, [lr, r0] + add r3, lr, r0 + strb r1, [r3, #1] + ldrb r2, [ip, #2] + ldrb r1, [ip, #3] + add r0, r0, #4 + strb r2, [r3, #2] + strb r1, [r3, #3] +_02314968: + ldrb r1, [r4, #0x14] + tst r1, #4 + beq _023149D0 + ldr r1, [r5, #0x40] + add r2, sp, #0x14 + strb r1, [r2, r0] + ldr r1, [r5, #0x40] + mov r3, #0 + add r0, r0, #1 + cmp r1, #0 + ble _023149B4 +_02314994: + add r1, r5, r3 + ldrb r1, [r1, #0x2c] + add r3, r3, #1 + strb r1, [r2, r0] + ldr r1, [r5, #0x40] + add r0, r0, #1 + cmp r3, r1 + blt _02314994 +_023149B4: + add r2, sp, #0x14 + mov r3, #0 + strb r3, [r2, r0] + add r1, r0, #1 + strb r3, [r2, r1] + add r2, r0, #2 + b _02314A70 +_023149D0: + add r3, sp, #0x14 + mov r2, #0xff + strb r2, [r3, r0] + add r1, r0, #1 + strb r2, [r3, r1] + add r1, r0, #2 + strb r2, [r3, r1] + add r1, r0, #3 + mov r2, #1 + strb r2, [r3, r1] + add r2, r0, #4 + b _02314A70 +_02314A00: + tst r1, #4 + add ip, sp, #0x14 + beq _02314A44 + ldr r3, _02314AF8 @ =0x0231D360 + mov r2, #6 +_02314A14: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + strb r1, [ip] + strb r0, [ip, #1] + add ip, ip, #2 + subs r2, r2, #1 + bne _02314A14 + ldrb r0, [r3] + mov r2, #0xd + strb r0, [ip] + b _02314A70 +_02314A44: + ldr r3, _02314AFC @ =0x0231D370 + mov r2, #4 +_02314A4C: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + strb r1, [ip] + strb r0, [ip, #1] + add ip, ip, #2 + subs r2, r2, #1 + bne _02314A4C + mov r2, #8 +_02314A70: + ldr r1, [r4] + ldr r0, [r5, #0x28] + cmp r1, r0 + bne _02314AA0 + ldrb r0, [r4, #0x15] + tst r0, #2 + beq _02314AA0 + ldr r0, [r4, #8] + str r0, [sp, #0x10] + ldrh r0, [r4, #0xc] + strh r0, [sp, #0xe] + b _02314AAC +_02314AA0: + str r1, [sp, #0x10] + ldrh r0, [r4, #4] + strh r0, [sp, #0xe] +_02314AAC: + add r1, sp, #0xc + str r1, [sp] + mov r0, #8 + str r0, [sp, #4] + ldr r0, [r5, #0x20] + add r1, sp, #0x14 + mov r3, #0 + bl ov00_022F50E0 + mov r6, #1 +_02314AD0: + cmp r6, #0 + moveq r0, #0 + addeq sp, sp, #0x114 + streq r0, [r4, #0x1c] + popeq {r3, r4, r5, r6, pc} + mov r1, r4 + add r0, r5, #8 + bl ov00_02314750 + add sp, sp, #0x114 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_02314AF8: .4byte 0x0231D360 +_02314AFC: .4byte 0x0231D370 + arm_func_end ov00_02314838 + + arm_func_start ov00_02314B00 +ov00_02314B00: @ 0x02314B00 + push {r4, lr} + mov r4, r0 + add r0, r4, #0x14 + bl ov00_02314824 + add r0, r4, #8 + bl ov00_02314824 + pop {r4, pc} + arm_func_end ov00_02314B00 + + arm_func_start ov00_02314B1C +ov00_02314B1C: @ 0x02314B1C + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #0x20] + bl ov00_022F4FB4 + mvn r1, #0 + add r0, r4, #0x14 + str r1, [r4, #0x20] + bl ov00_02314824 + add r0, r4, #8 + bl ov00_02314824 + pop {r4, pc} + arm_func_end ov00_02314B1C + + arm_func_start ov00_02314B48 +ov00_02314B48: @ 0x02314B48 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov r8, r2 + ldrsb r2, [r8] + mov sl, r0 + mov sb, r1 + cmp r2, #0 + mov r7, r3 + cmpne r2, #9 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrb r0, [sb, #0x14] + add r8, r8, #5 + sub r7, r7, #5 + tst r0, #0x80 + beq _02314BD0 + and r0, r0, #0x7f + strb r0, [sb, #0x14] + cmp r7, #0 + ble _02314CC0 + mov r0, r8 + bl FUN_0208B360 + str r0, [sb, #0x20] + mov r1, sb + add r0, sl, #8 + bl ov00_023147B8 + mov r0, sl + mov r1, sb + bl ov00_02314838 + ldr r3, [sl, #0x48] + ldr r4, [sl, #0x44] + mov r2, sb + mov r0, sl + mov r1, #3 + blx r4 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02314BD0: + tst r0, #4 + beq _02314C54 + ldr r0, [sl, #0x40] + mov r4, #0 + cmp r0, #0 + ble _02314C44 + ldr fp, _02314D04 @ =0x0231CF68 +_02314BEC: + mov r0, r8 + mov r1, r7 + bl ov00_0231604C + movs r5, r0 + bmi _02314C44 + add r6, sl, r4 + ldrb r0, [r6, #0x2c] + ldr r0, [fp, r0, lsl #2] + bl ov00_0231443C + cmp r0, #0 + bne _02314C2C + ldrb r1, [r6, #0x2c] + mov r0, sb + mov r2, r8 + ldr r1, [fp, r1, lsl #2] + bl ov00_0231518C +_02314C2C: + ldr r0, [sl, #0x40] + add r4, r4, #1 + cmp r4, r0 + add r8, r8, r5 + sub r7, r7, r5 + blt _02314BEC +_02314C44: + ldrb r0, [sb, #0x14] + orr r0, r0, #0x41 + strb r0, [sb, #0x14] + b _02314CC0 +_02314C54: + ldrsb r0, [r8] + cmp r0, #0 + beq _02314CA4 + ldr r0, _02314D08 @ =0x0231D37C + mov r1, r8 + mov r2, #8 + bl FUN_02089940 + cmp r0, #0 + bne _02314CA4 + mov r0, sb + mov r1, r8 + mov r2, r7 + bl ov00_023156D4 + ldrb r0, [sb, #0x28] + cmp r0, #0xff + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrb r0, [sb, #0x14] + orr r0, r0, #0x43 + strb r0, [sb, #0x14] + b _02314CC0 +_02314CA4: + mov r0, sb + mov r1, r8 + mov r2, r7 + bl ov00_023154E8 + ldrb r0, [sb, #0x14] + orr r0, r0, #0x43 + strb r0, [sb, #0x14] +_02314CC0: + ldrb r0, [sb, #0x14] + and r0, r0, #0xf3 + strb r0, [sb, #0x14] + bl ov00_022F5594 + ldr r2, [sb, #0x1c] + mov r1, sb + sub r0, r0, r2 + str r0, [sb, #0x1c] + add r0, sl, #8 + bl ov00_023147B8 + ldr r3, [sl, #0x48] + ldr r4, [sl, #0x44] + mov r0, sl + mov r2, sb + mov r1, #0 + blx r4 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02314D04: .4byte 0x0231CF68 +_02314D08: .4byte 0x0231D37C + arm_func_end ov00_02314B48 + + arm_func_start ov00_02314D0C +ov00_02314D0C: @ 0x02314D0C + push {r3, r4, r5, r6, r7, lr} + mov r4, r1 + mov r7, r2 + mov r5, r0 + ldr r1, _02314DA0 @ =0x0231D388 + mov r0, r7 + bl FUN_02089A70 + cmp r0, #0 + movne r6, #1 + moveq r6, #0 + mov r0, r4 + mov r1, r7 + bl ov00_02315458 + cmp r6, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldrb r0, [r4, #0x14] + tst r0, #4 + orrne r0, r0, #0x41 + orreq r0, r0, #0x42 + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + and r0, r0, #0xf3 + strb r0, [r4, #0x14] + bl ov00_022F5594 + ldr r2, [r4, #0x1c] + mov r1, r4 + sub r0, r0, r2 + str r0, [r4, #0x1c] + add r0, r5, #8 + bl ov00_023147B8 + ldr r3, [r5, #0x48] + ldr ip, [r5, #0x44] + mov r0, r5 + mov r2, r4 + mov r1, #0 + blx ip + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02314DA0: .4byte 0x0231D388 + arm_func_end ov00_02314D0C + + arm_func_start ov00_02314DA4 +ov00_02314DA4: @ 0x02314DA4 + mov r0, #1 + bx lr + arm_func_end ov00_02314DA4 + + arm_func_start ov00_02314DAC +ov00_02314DAC: @ 0x02314DAC + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x14 + sub sp, sp, #0x800 + movs r8, r1 + mov r1, #8 + mov sb, r0 + str r1, [sp, #8] + mov r7, #0 + ldreq r7, [sb, #0x20] + mov r0, r7 + bl ov00_022F5320 + cmp r0, #0 + addeq sp, sp, #0x14 + addeq sp, sp, #0x800 + popeq {r4, r5, r6, r7, r8, sb, pc} +_02314DE8: + add r0, sp, #0xc + str r0, [sp] + add r4, sp, #8 + ldr r2, _02314F3C @ =0x000007FF + add r1, sp, #0x14 + mov r0, r7 + mov r3, #0 + str r4, [sp, #4] + bl ov00_022F509C + mov r5, r0 + mvn r0, #0 + cmp r5, r0 + addeq sp, sp, #0x14 + addeq sp, sp, #0x800 + popeq {r4, r5, r6, r7, r8, sb, pc} + add r4, sp, #0x14 + mov r0, #0 + strb r0, [r4, r5] + ldr r6, [sb, #8] + cmp r6, #0 + beq _02314F20 +_02314E3C: + cmp r8, #0 + beq _02314E60 + ldrb r0, [r6, #0x15] + tst r0, #8 + beq _02314E60 + ldr r1, [r6, #0x10] + ldr r0, [sp, #0x10] + cmp r1, r0 + beq _02314EB8 +_02314E60: + ldr r3, [sp, #0x10] + ldr r2, [r6] + cmp r2, r3 + bne _02314E88 + ldrh r1, [r6, #4] + ldrh r0, [sp, #0xe] + cmp r1, r0 + beq _02314EB8 + cmp r8, #0 + bne _02314EB8 +_02314E88: + ldr r0, [sb, #0x28] + cmp r2, r0 + bne _02314F14 + ldrb r0, [r6, #0x15] + tst r0, #2 + beq _02314F14 + ldr r0, [r6, #8] + cmp r0, r3 + ldrheq r1, [r6, #0xc] + ldrheq r0, [sp, #0xe] + cmpeq r1, r0 + bne _02314F14 +_02314EB8: + cmp r8, #0 + beq _02314EE0 + mov r0, sb + mov r1, r6 + mov r2, r4 + mov r3, r5 + bl ov00_02314DA4 + cmp r0, #0 + bne _02314F20 + b _02314F14 +_02314EE0: + ldr r0, [sb] + add r2, sp, #0x14 + cmp r0, #1 + mov r0, sb + bne _02314F04 + mov r1, r6 + mov r3, r5 + bl ov00_02314B48 + b _02314F20 +_02314F04: + mov r1, r6 + mov r3, r5 + bl ov00_02314D0C + b _02314F20 +_02314F14: + ldr r6, [r6, #0x24] + cmp r6, #0 + bne _02314E3C +_02314F20: + mov r0, r7 + bl ov00_022F5320 + cmp r0, #0 + bne _02314DE8 + add sp, sp, #0x14 + add sp, sp, #0x800 + pop {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_02314F3C: .4byte 0x000007FF + arm_func_end ov00_02314DAC + + arm_func_start ov00_02314F40 +ov00_02314F40: @ 0x02314F40 + push {r3, r4, r5, r6, r7, lr} + mov r6, r0 + bl ov00_022F5594 + ldr r3, [r6, #8] + mov r5, r0 + cmp r3, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldr r4, _02314FCC @ =0x000009C4 + mov r7, #1 +_02314F64: + ldr r0, [r3, #0x1c] + add r0, r0, #0x1c4 + add r0, r0, #0x800 + cmp r5, r0 + popls {r3, r4, r5, r6, r7, pc} + ldrb r2, [r3, #0x15] + mov r0, r6 + mov r1, r7 + orr r2, r2, #0x10 + strb r2, [r3, #0x15] + ldr r2, [r6, #8] + str r4, [r2, #0x1c] + ldr r3, [r6, #8] + ldrb r2, [r3, #0x15] + and r2, r2, #0xd3 + strb r2, [r3, #0x15] + ldr r2, [r6, #8] + ldr r3, [r6, #0x48] + ldr ip, [r6, #0x44] + blx ip + add r0, r6, #8 + bl ov00_02314784 + ldr r3, [r6, #8] + cmp r3, #0 + bne _02314F64 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02314FCC: .4byte 0x000009C4 + arm_func_end ov00_02314F40 + + arm_func_start ov00_02314FD0 +ov00_02314FD0: @ 0x02314FD0 + push {r4, lr} + mov r4, r0 + b _02314FF0 +_02314FDC: + add r0, r4, #0x14 + bl ov00_02314784 + mov r1, r0 + mov r0, r4 + bl ov00_02314838 +_02314FF0: + ldr r1, [r4, #0x10] + ldr r0, [r4, #4] + cmp r1, r0 + popge {r4, pc} + ldr r0, [r4, #0x1c] + cmp r0, #0 + bgt _02314FDC + pop {r4, pc} + arm_func_end ov00_02314FD0 + + arm_func_start ov00_02315010 +ov00_02315010: @ 0x02315010 + push {r4, lr} + mov r4, r0 + ldr r1, [r4, #0x10] + cmp r1, #0 + popeq {r4, pc} + mov r1, #0 + bl ov00_02314DAC + mov r0, r4 + bl ov00_02314F40 + ldr r0, [r4, #0x1c] + cmp r0, #0 + ble _02315048 + mov r0, r4 + bl ov00_02314FD0 +_02315048: + ldr r0, [r4, #0x10] + cmp r0, #0 + popne {r4, pc} + ldr r3, [r4, #0x48] + ldr ip, [r4, #0x44] + mov r0, r4 + mov r1, #2 + mov r2, #0 + blx ip + pop {r4, pc} + arm_func_end ov00_02315010 + + arm_func_start ov00_02315070 +ov00_02315070: @ 0x02315070 + ldr r3, [r0, #0x40] + cmp r3, #0x14 + bxge lr + add r2, r3, #1 + str r2, [r0, #0x40] + add r0, r0, r3 + strb r1, [r0, #0x2c] + bx lr + arm_func_end ov00_02315070 +_02315090: + .byte 0x04, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x2C, 0x59, 0x31, 0x02 + .byte 0x08, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0xBC, 0xDE, 0x08, 0x02, 0x04, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0x14, 0x5B, 0x2F, 0x02 + + arm_func_start ov00_023150C4 +ov00_023150C4: @ 0x023150C4 + push {r3, lr} + sub sp, sp, #8 + ldr r0, _02315118 @ =0x023294F4 + ldr r0, [r0, #4] + cmp r0, #0 + bne _02315108 + ldr r0, _0231511C @ =0x023150A0 + ldr ip, _02315120 @ =0x023150B4 + str r0, [sp] + ldr r3, _02315124 @ =0x02315090 + mov r0, #8 + mov r1, #0x64 + mov r2, #2 + str ip, [sp, #4] + bl ov00_022F4BBC + ldr r1, _02315118 @ =0x023294F4 + str r0, [r1, #4] +_02315108: + ldr r0, _02315118 @ =0x023294F4 + ldr r0, [r0, #4] + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_02315118: .4byte 0x023294F4 +_0231511C: .4byte 0x023150A0 +_02315120: .4byte 0x023150B4 +_02315124: .4byte 0x02315090 + arm_func_end ov00_023150C4 + + arm_func_start ov00_02315128 +ov00_02315128: @ 0x02315128 + push {r3, lr} + ldr r0, _02315164 @ =0x023294F4 + ldr r0, [r0, #4] + cmp r0, #0 + popeq {r3, pc} + bl ov00_022F4C84 + cmp r0, #0 + popne {r3, pc} + ldr r0, _02315164 @ =0x023294F4 + ldr r0, [r0, #4] + bl ov00_022F4C38 + ldr r0, _02315164 @ =0x023294F4 + mov r1, #0 + str r1, [r0, #4] + pop {r3, pc} + .align 2, 0 +_02315164: .4byte 0x023294F4 + arm_func_end ov00_02315128 + + arm_func_start ov00_02315168 +ov00_02315168: @ 0x02315168 + push {r4, lr} + ldr r4, [r0] + ldr r0, [r4, #0x18] + bl ov00_022F4C38 + mov r1, #0 + mov r0, r4 + str r1, [r4, #0x18] + bl ov00_022F5B14 + pop {r4, pc} + arm_func_end ov00_02315168 + + arm_func_start ov00_0231518C +ov00_0231518C: @ 0x0231518C + push {r3, r4, r5, lr} + sub sp, sp, #8 + mov r5, r0 + mov r4, r2 + mov r0, #0 + bl ov00_02315F88 + str r0, [sp] + mov r1, r4 + mov r0, #0 + bl ov00_02315F88 + str r0, [sp, #4] + ldr r0, [r5, #0x18] + add r1, sp, #0 + bl ov00_022F4CD0 + add sp, sp, #8 + pop {r3, r4, r5, pc} + arm_func_end ov00_0231518C + + arm_func_start ov00_023151CC +ov00_023151CC: @ 0x023151CC + push {r4, r5, lr} + sub sp, sp, #0x14 + mov r4, r1 + mov r5, r0 + ldr r1, _02315200 @ =0x0231D3A0 + add r0, sp, #0 + bl FUN_020790DC + add r2, sp, #0 + mov r0, r5 + mov r1, r4 + bl ov00_0231518C + add sp, sp, #0x14 + pop {r4, r5, pc} + .align 2, 0 +_02315200: .4byte 0x0231D3A0 + arm_func_end ov00_023151CC + + arm_func_start ov00_02315204 +ov00_02315204: @ 0x02315204 + push {r3, r4, r5, lr} + sub sp, sp, #8 + cmp r0, #0 + mov r5, r2 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r3, r4, r5, pc} + str r1, [sp] + ldr r0, [r0, #0x18] + add r1, sp, #0 + bl ov00_022F4DCC + cmp r0, #0 + beq _0231524C + ldr r4, [r0, #4] + mov r0, r4 + bl FUN_02089678 + cmp r0, #0 + bne _02315258 +_0231524C: + add sp, sp, #8 + mov r0, r5 + pop {r3, r4, r5, pc} +_02315258: + mov r0, r4 + add sp, sp, #8 + pop {r3, r4, r5, pc} + arm_func_end ov00_02315204 + + arm_func_start ov00_02315264 +ov00_02315264: @ 0x02315264 + push {r4, r5, r6, lr} + movs r6, r0 + mov r4, r2 + mov r5, r1 + moveq r0, r4 + popeq {r4, r5, r6, pc} + ldr r1, _02315304 @ =0x0231D3A4 + mov r0, r5 + bl FUN_0208982C + cmp r0, #0 + mov r0, r6 + bne _0231529C + bl ov00_023159DC + pop {r4, r5, r6, pc} +_0231529C: + mov r1, r5 + mov r2, #0 + bl ov00_02315204 + cmp r0, #0 + moveq r0, r4 + popeq {r4, r5, r6, pc} + ldrsb r1, [r0] + cmp r1, #0x2d + movne r1, r0 + addeq r1, r0, #1 + ldrb r2, [r1] + cmp r2, #0 + blt _023152D8 + cmp r2, #0x80 + blt _023152E0 +_023152D8: + mov r1, #0 + b _023152F0 +_023152E0: + ldr r1, _02315308 @ =0x020AEDB0 + lsl r2, r2, #1 + ldrh r1, [r1, r2] + and r1, r1, #8 +_023152F0: + cmp r1, #0 + moveq r0, r4 + popeq {r4, r5, r6, pc} + bl FUN_0208B360 + pop {r4, r5, r6, pc} + .align 2, 0 +_02315304: .4byte 0x0231D3A4 +_02315308: .4byte 0x020AEDB0 + arm_func_end ov00_02315264 + + arm_func_start ov00_0231530C +ov00_0231530C: @ 0x0231530C + ldr r0, [r0] + bx lr + arm_func_end ov00_0231530C + + arm_func_start ov00_02315314 +ov00_02315314: @ 0x02315314 + ldrh r0, [r0, #4] + asr r1, r0, #8 + lsl r0, r0, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr + arm_func_end ov00_02315314 + + arm_func_start ov00_02315338 +ov00_02315338: @ 0x02315338 + ldrh r0, [r0, #4] + bx lr + arm_func_end ov00_02315338 + + arm_func_start ov00_02315340 +ov00_02315340: @ 0x02315340 + ldrb r0, [r0, #0x15] + and r0, r0, #2 + cmp r0, #2 + moveq r0, #1 + movne r0, #0 + bx lr + arm_func_end ov00_02315340 + + arm_func_start ov00_02315358 +ov00_02315358: @ 0x02315358 + ldr r0, [r0, #8] + bx lr + arm_func_end ov00_02315358 + + arm_func_start ov00_02315360 +ov00_02315360: @ 0x02315360 + ldrh r0, [r0, #0xc] + asr r1, r0, #8 + lsl r0, r0, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr + arm_func_end ov00_02315360 + + arm_func_start ov00_02315384 +ov00_02315384: @ 0x02315384 + str r1, [r0, #0x24] + bx lr + arm_func_end ov00_02315384 + + arm_func_start ov00_0231538C +ov00_0231538C: @ 0x0231538C + ldr r0, [r0, #0x24] + bx lr + arm_func_end ov00_0231538C + + arm_func_start ov00_02315394 +ov00_02315394: @ 0x02315394 + push {r4, r5, r6, lr} + sub sp, sp, #8 + ldr r1, _023153F0 @ =0x02318768 + add r4, sp, #0 + ldr r2, [r1] + ldr r1, [r1, #4] + mov r6, r0 + str r2, [sp] + str r1, [sp, #4] + mov r5, #0 +_023153BC: + ldr r1, [r4, r5, lsl #2] + mov r0, r6 + bl FUN_0208982C + cmp r0, #0 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r4, r5, r6, pc} + add r5, r5, #1 + cmp r5, #2 + blo _023153BC + mov r0, #1 + add sp, sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 +_023153F0: .4byte 0x02318768 + arm_func_end ov00_02315394 + + arm_func_start ov00_023153F4 +ov00_023153F4: @ 0x023153F4 + cmp r0, #0 + ldrne r2, _02315454 @ =0x023294F4 + strne r0, [r2] + ldr r2, _02315454 @ =0x023294F4 + ldr r0, [r2] + mov ip, r0 + b _02315418 +_02315410: + add ip, ip, #1 + str ip, [r2] +_02315418: + ldrsb r3, [ip] + cmp r3, #0 + cmpne r3, r1 + bne _02315410 + cmp ip, r0 + moveq r0, #0 + cmp r3, #0 + bxeq lr + ldr r1, _02315454 @ =0x023294F4 + mov r2, #0 + ldr r3, [r1] + strb r2, [ip] + add r2, r3, #1 + str r2, [r1] + bx lr + .align 2, 0 +_02315454: .4byte 0x023294F4 + arm_func_end ov00_023153F4 + + arm_func_start ov00_02315458 +ov00_02315458: @ 0x02315458 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sl, r0 + add r0, r1, #1 + mov r1, #0x5c + bl ov00_023153F4 + movs r8, r0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r4, #0 + mov fp, #0x5c + ldr r5, _023154E4 @ =0x0231D3AC + mov r7, r4 + mov r6, fp +_02315488: + mov r0, r7 + mov r1, r6 + bl ov00_023153F4 + movs sb, r0 + mov r0, r8 + moveq sb, r5 + bl ov00_02315394 + cmp r0, #0 + beq _023154CC + mov r0, r8 + bl ov00_0231443C + cmp r0, #0 + bne _023154CC + mov r0, sl + mov r1, r8 + mov r2, sb + bl ov00_0231518C +_023154CC: + mov r0, r4 + mov r1, fp + bl ov00_023153F4 + movs r8, r0 + bne _02315488 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_023154E4: .4byte 0x0231D3AC + arm_func_end ov00_02315458 + + arm_func_start ov00_023154E8 +ov00_023154E8: @ 0x023154E8 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x8c + mov sl, r1 + ldrsb r1, [sl] + mov fp, r0 + mov sb, r2 + cmp r1, #0 + beq _0231557C +_02315508: + mov r0, sl + mov r1, sb + bl ov00_0231604C + cmp r0, #0 + addlt sp, sp, #0x8c + poplt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r4, sl + sub sb, sb, r0 + add sl, sl, r0 + mov r0, sl + mov r1, sb + bl ov00_0231604C + cmp r0, #0 + addlt sp, sp, #0x8c + poplt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r5, sl + add sl, sl, r0 + sub sb, sb, r0 + mov r0, r4 + bl ov00_0231443C + cmp r0, #0 + bne _02315570 + mov r0, fp + mov r1, r4 + mov r2, r5 + bl ov00_0231518C +_02315570: + ldrsb r0, [sl] + cmp r0, #0 + bne _02315508 +_0231557C: + mov r0, #0 + add sl, sl, #1 + sub sb, sb, #1 + str r0, [sp] +_0231558C: + cmp sb, #2 + addlt sp, sp, #0x8c + poplt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrb r1, [sl] + ldrb r0, [sl, #1] + add r2, sp, #8 + add sl, sl, #2 + strb r1, [r2] + strb r0, [r2, #1] + ldrh r0, [sp, #8] + str sl, [sp, #4] + sub sb, sb, #2 + asr r1, r0, #8 + lsl r0, r0, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + strh r0, [sp, #8] + ldrsb r0, [sl] + mov r5, #0 + cmp r0, #0 + beq _0231561C +_023155E4: + mov r0, sl + mov r1, sb + bl ov00_0231604C + cmp r0, #0 + addlt sp, sp, #0x8c + poplt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r0, #0x64 + addgt sp, sp, #0x8c + popgt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrsb r1, [sl, r0]! + add r5, r5, #1 + sub sb, sb, r0 + cmp r1, #0 + bne _023155E4 +_0231561C: + ldrh r0, [sp, #8] + add sl, sl, #1 + sub sb, sb, #1 + cmp r0, #0 + mov r6, #0 + ble _023156B4 +_02315634: + ldr r8, [sp, #4] + mov r7, #0 + cmp r5, #0 + ble _023156A4 +_02315644: + mov r0, sl + mov r1, sb + bl ov00_0231604C + movs r4, r0 + addmi sp, sp, #0x8c + popmi {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, _023156D0 @ =0x0231D3B0 + add r0, sp, #0xa + mov r2, r8 + mov r3, r6 + bl FUN_020790DC + mov r0, fp + add r1, sp, #0xa + mov r2, sl + bl ov00_0231518C + mov r0, r8 + add sl, sl, r4 + sub sb, sb, r4 + bl FUN_02089678 + add r0, r0, #1 + add r7, r7, #1 + add r8, r8, r0 + cmp r7, r5 + blt _02315644 +_023156A4: + ldrh r0, [sp, #8] + add r6, r6, #1 + cmp r6, r0 + blt _02315634 +_023156B4: + ldr r0, [sp] + add r0, r0, #1 + str r0, [sp] + cmp r0, #2 + blt _0231558C + add sp, sp, #0x8c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_023156D0: .4byte 0x0231D3B0 + arm_func_end ov00_023154E8 + + arm_func_start ov00_023156D4 +ov00_023156D4: @ 0x023156D4 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x84 + mov sb, r1 + ldrsb r1, [sb] + mov sl, r0 + mov r8, r2 + cmp r1, #0 + mov r5, #0 + addeq sp, sp, #0x84 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, sb + mov r1, r8 + bl ov00_0231604C + cmp r0, #0 + addlt sp, sp, #0x84 + poplt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r4, sb + add sb, sb, r0 + sub r8, r8, r0 + ldr r0, _02315924 @ =0x0231D3B8 + bl FUN_02089678 + mov r2, r0 + ldr r0, _02315924 @ =0x0231D3B8 + mov r1, r4 + bl FUN_0208DEB0 + cmp r0, #0 + addne sp, sp, #0x84 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r8, #1 + addlt sp, sp, #0x84 + poplt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrb r2, [sb], #1 + sub r8, r8, #1 + and r0, r2, #0x80 + cmp r0, #0x80 + eoreq r2, r2, #0x80 + moveq r5, #1 + cmp r2, #7 + addhi sp, sp, #0x84 + pophi {r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r5, #1 + ldrbne r1, [sl, #0x28] + movne r0, #1 + orrne r0, r1, r0, lsl r2 + bne _0231579C + mov r0, #0xff + lsl r0, r0, r2 + ldrb r1, [sl, #0x28] + lsl r0, r0, #0x18 + orr r0, r1, r0, asr #24 +_0231579C: + cmp r8, #1 + addlt sp, sp, #0x84 + strb r0, [sl, #0x28] + poplt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r8, #0 + addle sp, sp, #0x84 + pople {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023157B8: + ldrsb r0, [sb], #1 + sub r8, r8, #1 + str r0, [sp] + cmp r0, #0 + addlt sp, sp, #0x84 + poplt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r0, #2 + addgt sp, sp, #0x84 + popgt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrsb r0, [sb] + cmp r0, #0 + beq _023158F8 + ldr fp, _02315928 @ =0x0231D3B0 + add r4, sp, #4 +_023157F0: + mov r0, sb + mov r1, r8 + bl ov00_0231604C + cmp r0, #0 + addlt sp, sp, #0x84 + poplt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [sp] + mov r6, sb + cmp r1, #0 + add sb, sb, r0 + sub r8, r8, r0 + bne _02315868 + mov r0, sb + mov r1, r8 + bl ov00_0231604C + cmp r0, #0 + addlt sp, sp, #0x84 + poplt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r5, sb + add sb, sb, r0 + sub r8, r8, r0 + mov r0, r6 + bl ov00_0231443C + cmp r0, #0 + bne _023158EC + mov r0, sl + mov r1, r6 + mov r2, r5 + bl ov00_0231518C + b _023158EC +_02315868: + cmp r8, #1 + addlt sp, sp, #0x84 + poplt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrsb r5, [sb] + ldrsb r0, [sb, #1]! + sub r8, r8, #1 + cmp r0, #0 + beq _023158E0 +_02315888: + mov r0, sb + mov r1, r8 + bl ov00_0231604C + cmp r0, #0 + addlt sp, sp, #0x84 + poplt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r7, sb + mov r1, fp + mov r2, r6 + mov r3, r5 + add sb, sb, r0 + sub r8, r8, r0 + mov r0, r4 + bl FUN_020790DC + mov r2, r7 + mov r0, sl + mov r1, r4 + bl ov00_0231518C + add r5, r5, #1 + ldrsb r0, [sb] + cmp r0, #0 + bne _02315888 +_023158E0: + cmp r8, #0 + addgt sb, sb, #1 + subgt r8, r8, #1 +_023158EC: + ldrsb r0, [sb] + cmp r0, #0 + bne _023157F0 +_023158F8: + cmp r8, #0 + ble _02315914 + cmp r0, #0 + addne sp, sp, #0x84 + popne {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add sb, sb, #1 + sub r8, r8, #1 +_02315914: + cmp r8, #0 + bgt _023157B8 + add sp, sp, #0x84 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02315924: .4byte 0x0231D3B8 +_02315928: .4byte 0x0231D3B0 + arm_func_end ov00_023156D4 +_0231592C: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0xD0, 0xE0, 0xD0, 0xE1, 0x00, 0xC0, 0xA0, 0xE3, 0x00, 0x00, 0x5E, 0xE3, 0x0A, 0x00, 0x00, 0x0A + .byte 0x34, 0x30, 0x9F, 0xE5, 0x34, 0x20, 0x9F, 0xE5, 0x00, 0x00, 0x5E, 0xE3, 0x02, 0x00, 0x00, 0xBA + .byte 0x80, 0x00, 0x5E, 0xE3, 0x00, 0x00, 0x00, 0xAA, 0x0E, 0xE0, 0xD3, 0xE7, 0x92, 0xEC, 0x2C, 0xE0 + .byte 0xD1, 0xE0, 0xF0, 0xE1, 0x00, 0x00, 0x5E, 0xE3, 0xF6, 0xFF, 0xFF, 0x1A, 0x0C, 0x00, 0xA0, 0xE1 + .byte 0xCE, 0xE9, 0xF5, 0xEB, 0x01, 0x00, 0xA0, 0xE1, 0x08, 0x80, 0xBD, 0xE8, 0xB0, 0xEC, 0x0A, 0x02 + .byte 0x19, 0x93, 0xCF, 0x9C, 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x10, 0x94, 0xE5 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x97, 0x01, 0x00, 0xEB, 0x04, 0x10, 0x94, 0xE5, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x94, 0x01, 0x00, 0xEB, 0x10, 0x80, 0xBD, 0xE8, 0x04, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x2C, 0x59, 0x31, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x00, 0x00, 0x90, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x10, 0x91, 0x15, 0x00, 0x00, 0x51, 0x13, 0x01, 0x00, 0xA0, 0x03 + .byte 0x08, 0x80, 0xBD, 0x08, 0x38, 0xE1, 0xF5, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov00_023159DC +ov00_023159DC: @ 0x023159DC + ldr r0, [r0, #0x1c] + bx lr + arm_func_end ov00_023159DC + + arm_func_start ov00_023159E4 +ov00_023159E4: @ 0x023159E4 + push {r4, r5, r6, lr} + sub sp, sp, #8 + mov r0, #0x2c + mov r6, r1 + mov r5, r2 + bl ov00_022F5AE4 + movs r4, r0 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r4, r5, r6, pc} + ldr r1, _02315A84 @ =0x023159B8 + ldr ip, _02315A88 @ =0x02315984 + str r1, [sp] + mov r0, #8 + ldr r3, _02315A8C @ =0x023159A8 + mov r1, r0 + mov r2, #4 + str ip, [sp, #4] + bl ov00_022F4BBC + str r0, [r4, #0x18] + cmp r0, #0 + bne _02315A50 + mov r0, r4 + bl ov00_022F5B14 + add sp, sp, #8 + mov r0, #0 + pop {r4, r5, r6, pc} +_02315A50: + mov r1, #0 + strb r1, [r4, #0x14] + strb r1, [r4, #0x15] + str r1, [r4, #0x24] + str r1, [r4, #0x1c] + str r1, [r4, #0x10] + str r6, [r4] + strh r5, [r4, #4] + str r1, [r4, #8] + mov r0, r4 + strh r1, [r4, #0xc] + add sp, sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 +_02315A84: .4byte 0x023159B8 +_02315A88: .4byte 0x02315984 +_02315A8C: .4byte 0x023159A8 + arm_func_end ov00_023159E4 + + arm_func_start ov00_02315A90 +ov00_02315A90: @ 0x02315A90 + strb r1, [r0, #0x15] + bx lr + arm_func_end ov00_02315A90 + + arm_func_start ov00_02315A98 +ov00_02315A98: @ 0x02315A98 + str r1, [r0, #8] + strh r2, [r0, #0xc] + bx lr + arm_func_end ov00_02315A98 + + arm_func_start ov00_02315AA4 +ov00_02315AA4: @ 0x02315AA4 + str r1, [r0, #0x10] + bx lr + arm_func_end ov00_02315AA4 + + arm_func_start ov00_02315AAC +ov00_02315AAC: @ 0x02315AAC + strb r1, [r0, #0x14] + bx lr + arm_func_end ov00_02315AAC + + arm_func_start ov00_02315AB4 +ov00_02315AB4: @ 0x02315AB4 + ldrb r0, [r0, #0x14] + bx lr + arm_func_end ov00_02315AB4 + + arm_func_start ov00_02315ABC +ov00_02315ABC: @ 0x02315ABC + ldr r1, _02315AD4 @ =0x023294F4 + ldr r1, [r1, #8] + cmp r0, r1 + moveq r0, #1 + movne r0, #0 + bx lr + .align 2, 0 +_02315AD4: .4byte 0x023294F4 + arm_func_end ov00_02315ABC + + arm_func_start ov00_02315AD8 +ov00_02315AD8: @ 0x02315AD8 + push {r4, lr} + mov r4, r0 + add r0, r4, #0x4c + bl ov00_023168E8 + mov r0, r4 + bl ov00_02314B1C + mov r0, r4 + bl ov00_022F5B14 + pop {r4, pc} + arm_func_end ov00_02315AD8 + + arm_func_start ov00_02315AFC +ov00_02315AFC: @ 0x02315AFC + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x108 + ldr r8, [sp, #0x130] + mov sl, r0 + str r1, [sp, #4] + add r4, sp, #8 + mov sb, r3 + mov r1, #0x40 + mov r0, #0 +_02315B20: + strb r0, [r4] + strb r0, [r4, #1] + strb r0, [r4, #2] + strb r0, [r4, #3] + add r4, r4, #4 + subs r1, r1, #1 + bne _02315B20 + mov r5, #0 + str r2, [sl, #0x828] + mov r6, r5 + str r5, [sl, #0x40] + cmp r8, #0 + ble _02315BA8 + ldr r4, _02315C24 @ =0x0231CF68 + add fp, sp, #8 +_02315B5C: + ldrb r0, [sb, r6] + ldr r7, [r4, r0, lsl #2] + mov r0, r7 + bl FUN_02089678 + add r0, r5, r0 + add r0, r0, #1 + cmp r0, #0x100 + bge _02315BA8 + ldr r1, _02315C28 @ =0x0231D3C4 + mov r2, r7 + add r0, fp, r5 + bl FUN_020790DC + add r5, r5, r0 + ldrb r1, [sb, r6] + mov r0, sl + bl ov00_02315070 + add r6, r6, #1 + cmp r6, r8 + blt _02315B5C +_02315BA8: + ldr r4, [sp, #0x13c] + ldr r2, [sp, #0x134] + ldr r3, [sp, #0x138] + add r1, sp, #8 + add r0, sl, #0x4c + str r4, [sp] + bl ov00_023165A0 + cmp r0, #0 + addne sp, sp, #0x108 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [sp, #4] + cmp r1, #0 + addne sp, sp, #0x108 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r4, #0xa + b _02315BF8 +_02315BE8: + mov r0, r4 + bl ov00_02079B14 + mov r0, sl + bl ov00_02315D00 +_02315BF8: + ldr r1, [sl, #0x4c] + cmp r1, #3 + beq _02315BE8 + ldr r1, [sl, #0x10] + cmp r1, #0 + addle sp, sp, #0x108 + pople {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r0, #0 + beq _02315BE8 + add sp, sp, #0x108 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02315C24: .4byte 0x0231CF68 +_02315C28: .4byte 0x0231D3C4 + arm_func_end ov00_02315AFC + + arm_func_start ov00_02315C2C +ov00_02315C2C: @ 0x02315C2C + push {r3, lr} + sub sp, sp, #0x10 + ldr lr, [sp, #0x18] + ldr ip, [sp, #0x1c] + str lr, [sp] + str ip, [sp, #4] + mov lr, #0x80 + ldr ip, [sp, #0x20] + str lr, [sp, #8] + str ip, [sp, #0xc] + bl ov00_02315AFC + add sp, sp, #0x10 + pop {r3, pc} + arm_func_end ov00_02315C2C + + arm_func_start ov00_02315C60 +ov00_02315C60: @ 0x02315C60 + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + mov r5, r0 + mov r6, r2 + mov r0, r1 + mov r4, r3 + bl ov00_022F5178 + asr r3, r6, #8 + lsl r2, r6, #8 + ldr ip, [sp, #0x18] + mov r1, r0 + str ip, [sp] + and r3, r3, #0xff + and r0, r2, #0xff00 + orr r0, r3, r0 + lsl r2, r0, #0x10 + mov r3, r4 + add r0, r5, #0x4c + lsr r2, r2, #0x10 + bl ov00_02317BF4 + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_02315C60 + + arm_func_start ov00_02315CB8 +ov00_02315CB8: @ 0x02315CB8 + push {r4, r5, r6, lr} + mov r5, r0 + mov r6, r2 + mov r0, r1 + mov r4, r3 + bl ov00_022F5178 + asr r3, r6, #8 + lsl r2, r6, #8 + mov r1, r0 + and r3, r3, #0xff + and r0, r2, #0xff00 + orr r0, r3, r0 + lsl r2, r0, #0x10 + mov r3, r4 + add r0, r5, #0x4c + lsr r2, r2, #0x10 + bl ov00_02317D1C + pop {r4, r5, r6, pc} + arm_func_end ov00_02315CB8 + + arm_func_start ov00_02315D00 +ov00_02315D00: @ 0x02315D00 + push {r4, lr} + mov r4, r0 + bl ov00_02315010 + add r0, r4, #0x4c + bl ov00_02317EF8 + pop {r4, pc} + arm_func_end ov00_02315D00 + + arm_func_start ov00_02315D18 +ov00_02315D18: @ 0x02315D18 + push {r4, lr} + mov r4, r0 + add r0, r4, #0x4c + bl ov00_02316884 + mov r0, r4 + bl ov00_02314B00 + pop {r4, pc} + arm_func_end ov00_02315D18 + + arm_func_start ov00_02315D34 +ov00_02315D34: @ 0x02315D34 + push {r4, lr} + mov r4, r0 + bl ov00_02315D18 + add r0, r4, #0x4c + bl ov00_02315F30 + pop {r4, pc} + arm_func_end ov00_02315D34 + + arm_func_start ov00_02315D4C +ov00_02315D4C: @ 0x02315D4C + ldr r1, [r0, #0x10] + cmp r1, #0 + movgt r0, #2 + bxgt lr + ldr r0, [r0, #0x4c] + cmp r0, #3 + cmpne r0, #0 + moveq r0, #1 + bxeq lr + cmp r0, #1 + moveq r0, #0 + movne r0, #3 + bx lr + arm_func_end ov00_02315D4C + + arm_func_start ov00_02315D80 +ov00_02315D80: @ 0x02315D80 + ldr ip, _02315D8C @ =ov00_02315EC4 + add r0, r0, #0x4c + bx ip + .align 2, 0 +_02315D8C: .4byte ov00_02315EC4 + arm_func_end ov00_02315D80 + + arm_func_start ov00_02315D90 +ov00_02315D90: @ 0x02315D90 + ldr r0, [r0, #0x6f0] + bx lr + arm_func_end ov00_02315D90 + + arm_func_start ov00_02315D98 +ov00_02315D98: @ 0x02315D98 + push {r0, r1, r2, r3} + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #4] + add r1, sp, #0xc + bl ov00_022F47D4 + ldr r2, [sp, #0xc] + ldr r3, [r4, #0x494] + ldr ip, [r4, #0x488] + mov r0, r4 + mov r1, #0 + blx ip + pop {r4, lr} + add sp, sp, #0x10 + bx lr + arm_func_end ov00_02315D98 + + arm_func_start ov00_02315DD4 +ov00_02315DD4: @ 0x02315DD4 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov sb, r0 + ldr r0, [sb, #4] + mov r8, r1 + mov r7, r2 + bl ov00_022F47A0 + mov r4, r0 + cmp r4, #0 + mov r6, #0 + ble _02315E3C +_02315DFC: + ldr r0, [sb, #4] + mov r1, r6 + bl ov00_022F47A8 + ldr r5, [r0] + mov r0, r5 + bl ov00_0231530C + cmp r8, r0 + bne _02315E30 + mov r0, r5 + bl ov00_02315338 + cmp r7, r0 + moveq r0, r6 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} +_02315E30: + add r6, r6, #1 + cmp r6, r4 + blt _02315DFC +_02315E3C: + mvn r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_02315DD4 + + arm_func_start ov00_02315E44 +ov00_02315E44: @ 0x02315E44 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + ldr r1, [r5, #0x7d8] + mov r0, r4 + cmp r1, #0 + bne _02315E6C + mov r1, #0 + bl ov00_02315384 + b _02315E70 +_02315E6C: + bl ov00_02315384 +_02315E70: + str r4, [r5, #0x7d8] + pop {r3, r4, r5, pc} + arm_func_end ov00_02315E44 + + arm_func_start ov00_02315E78 +ov00_02315E78: @ 0x02315E78 + push {r4, r5, r6, lr} + mov r6, r0 + ldr r0, [r6, #4] + mov r5, r1 + bl ov00_022F47A8 + ldr r4, [r0] + ldr r3, [r6, #0x494] + ldr ip, [r6, #0x488] + mov r0, r6 + mov r2, r4 + mov r1, #2 + blx ip + ldr r0, [r6, #4] + mov r1, r5 + bl ov00_022F491C + mov r0, r6 + mov r1, r4 + bl ov00_02315E44 + pop {r4, r5, r6, pc} + arm_func_end ov00_02315E78 + + arm_func_start ov00_02315EC4 +ov00_02315EC4: @ 0x02315EC4 + push {r3, lr} + ldr r0, [r0, #4] + bl ov00_022F47A8 + ldr r0, [r0] + pop {r3, pc} + arm_func_end ov00_02315EC4 + + arm_func_start ov00_02315ED8 +ov00_02315ED8: @ 0x02315ED8 + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + mov r6, r0 + ldr r5, [r6, #0x7d8] + cmp r5, #0 + addeq sp, sp, #4 + popeq {r3, r4, r5, r6, pc} + str r5, [sp] + beq _02315F20 + add r4, sp, #0 +_02315F00: + mov r0, r5 + bl ov00_0231538C + mov r5, r0 + mov r0, r4 + bl ov00_02315168 + str r5, [sp] + cmp r5, #0 + bne _02315F00 +_02315F20: + mov r0, #0 + str r0, [r6, #0x7d8] + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + arm_func_end ov00_02315ED8 + + arm_func_start ov00_02315F30 +ov00_02315F30: @ 0x02315F30 + push {r4, r5, r6, lr} + mov r6, r0 + ldr r0, [r6, #4] + bl ov00_022F47A0 + mov r5, r0 + cmp r5, #0 + mov r4, #0 + ble _02315F74 +_02315F50: + ldr r0, [r6, #4] + mov r1, r4 + bl ov00_022F47A8 + ldr r1, [r0] + mov r0, r6 + bl ov00_02315E44 + add r4, r4, #1 + cmp r4, r5 + blt _02315F50 +_02315F74: + ldr r0, [r6, #4] + bl ov00_022F4AAC + mov r0, r6 + bl ov00_02315ED8 + pop {r4, r5, r6, pc} + arm_func_end ov00_02315F30 + + arm_func_start ov00_02315F88 +ov00_02315F88: @ 0x02315F88 + push {r3, r4, r5, lr} + sub sp, sp, #8 + mov r4, r1 + mov r5, r0 + str r4, [sp] + bl ov00_023150C4 + add r1, sp, #0 + bl ov00_022F4DCC + cmp r0, #0 + beq _02315FC8 + ldr r1, [r0, #4] + add sp, sp, #8 + add r1, r1, #1 + str r1, [r0, #4] + ldr r0, [r0] + pop {r3, r4, r5, pc} +_02315FC8: + mov r0, r4 + bl ov00_022F5514 + str r0, [sp] + mov r1, #1 + mov r0, r5 + str r1, [sp, #4] + bl ov00_023150C4 + add r1, sp, #0 + bl ov00_022F4CD0 + ldr r0, [sp] + add sp, sp, #8 + pop {r3, r4, r5, pc} + arm_func_end ov00_02315F88 + + arm_func_start ov00_02315FF8 +ov00_02315FF8: @ 0x02315FF8 + push {r4, lr} + sub sp, sp, #8 + mov r4, r0 + str r1, [sp] + bl ov00_023150C4 + add r1, sp, #0 + bl ov00_022F4DCC + cmp r0, #0 + addeq sp, sp, #8 + popeq {r4, pc} + ldr r1, [r0, #4] + subs r1, r1, #1 + str r1, [r0, #4] + addne sp, sp, #8 + popne {r4, pc} + mov r0, r4 + bl ov00_023150C4 + add r1, sp, #0 + bl ov00_022F4D50 + add sp, sp, #8 + pop {r4, pc} + arm_func_end ov00_02315FF8 + + arm_func_start ov00_0231604C +ov00_0231604C: @ 0x0231604C + cmp r1, #0 + mov r3, #0 + ble _02316074 +_02316058: + ldrsb r2, [r0, r3] + cmp r2, #0 + addeq r0, r3, #1 + bxeq lr + add r3, r3, #1 + cmp r3, r1 + blt _02316058 +_02316074: + mvn r0, #0 + bx lr + arm_func_end ov00_0231604C + + arm_func_start ov00_0231607C +ov00_0231607C: @ 0x0231607C + push {r3, r4, r5, r6, r7, lr} + mov r4, r0 + ldr r5, [r4, #0x80] + cmp r5, #0 + ble _02316108 + ldr r0, _02316130 @ =0x0231D3C8 + ldr r6, [r0] + mov r0, r6 + bl FUN_02089678 + cmp r5, r0 + bls _02316108 + ldr r0, _02316130 @ =0x0231D3C8 + ldr r5, [r4, #0x7c] + ldr r7, [r0] + mov r0, r7 + bl FUN_02089678 + mov r2, r0 + mov r0, r5 + mov r1, r7 + bl FUN_02089940 + cmp r0, #0 + bne _02316108 + mov r0, r6 + bl FUN_02089678 + mov r1, r0 + mov r0, r4 + add r1, r5, r1 + bl ov00_02316FBC + ldr r0, _02316134 @ =0x023294FC + ldr r3, [r4, #0x494] + ldr r2, [r0] + ldr ip, [r4, #0x488] + mov r0, r4 + mov r1, #5 + blx ip +_02316108: + ldr r0, _02316134 @ =0x023294FC + ldr r3, [r4, #0x494] + ldr r2, [r0] + ldr ip, [r4, #0x488] + mov r0, r4 + mov r1, #4 + blx ip + mov r0, r4 + bl ov00_02316884 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02316130: .4byte 0x0231D3C8 +_02316134: .4byte 0x023294FC + arm_func_end ov00_0231607C + + arm_func_start ov00_02316138 +ov00_02316138: @ 0x02316138 + push {r3, lr} + ldrsb lr, [r0] + mov ip, #0 + cmp lr, #0 + beq _02316178 + ldr r3, _02316188 @ =0x020AECB0 + ldr r2, _0231618C @ =0x9CCF9319 +_02316154: + cmp lr, #0 + blt _02316168 + cmp lr, #0x80 + bge _02316168 + ldrb lr, [r3, lr] +_02316168: + mla ip, r2, ip, lr + ldrsb lr, [r0, #1]! + cmp lr, #0 + bne _02316154 +_02316178: + mov r0, ip + bl FUN_020900B0 + mov r0, r1 + pop {r3, pc} + .align 2, 0 +_02316188: .4byte 0x020AECB0 +_0231618C: .4byte 0x9CCF9319 + arm_func_end ov00_02316138 + + arm_func_start ov00_02316190 +ov00_02316190: @ 0x02316190 + push {r4, lr} + sub sp, sp, #0x88 + mov r4, r0 + add r0, r4, #0xc + mov r1, #0x14 + bl ov00_02316138 + ldr r1, _023162B0 @ =0x02329500 + mov r3, r0 + ldr r1, [r1] + add r0, sp, #8 + cmp r1, #0 + beq _023161C8 + bl FUN_02089694 + b _023161D4 +_023161C8: + ldr r1, _023162B4 @ =0x0231D3E0 + add r2, r4, #0xc + bl FUN_020790DC +_023161D4: + ldr r1, _023162B8 @ =0x0000EE70 + mov r2, #2 + add r0, sp, #8 + strb r2, [sp, #1] + strh r1, [sp, #2] + bl ov00_022F5178 + mvn r1, #0 + str r0, [sp, #4] + cmp r0, r1 + bne _02316240 + add r0, sp, #8 + bl ov00_022CF3D4 + cmp r0, #0 + addeq sp, sp, #0x88 + moveq r0, #2 + popeq {r4, pc} + ldr r0, [r0, #0xc] + add r3, sp, #4 + ldr r2, [r0] + ldrb r1, [r2] + ldrb r0, [r2, #1] + strb r1, [r3] + strb r0, [r3, #1] + ldrb r1, [r2, #2] + ldrb r0, [r2, #3] + strb r1, [r3, #2] + strb r0, [r3, #3] +_02316240: + ldr r0, [r4, #0x6b4] + mvn r1, #0 + cmp r0, r1 + bne _02316278 + mov r0, #2 + mov r1, #1 + mov r2, #0 + bl ov00_022F4FA0 + mvn r1, #0 + cmp r0, r1 + str r0, [r4, #0x6b4] + addeq sp, sp, #0x88 + moveq r0, #1 + popeq {r4, pc} +_02316278: + add r1, sp, #0 + mov r2, #8 + bl ov00_022F503C + cmp r0, #0 + addeq sp, sp, #0x88 + moveq r0, #0 + popeq {r4, pc} + ldr r0, [r4, #0x6b4] + bl ov00_022F4FB4 + mvn r0, #0 + str r0, [r4, #0x6b4] + mov r0, #3 + add sp, sp, #0x88 + pop {r4, pc} + .align 2, 0 +_023162B0: .4byte 0x02329500 +_023162B4: .4byte 0x0231D3E0 +_023162B8: .4byte 0x0000EE70 + arm_func_end ov00_02316190 + + arm_func_start ov00_023162BC +ov00_023162BC: @ 0x023162BC + push {r3, r4, r5, r6, r7, lr} + movs r7, r1 + ldreq r7, _02316308 @ =0x0231D3DC + mov r4, r0 + mov r0, r7 + mov r6, r2 + bl FUN_02089678 + add r5, r0, #1 + ldr r0, [r4] + mov r1, r7 + mov r2, r5 + bl FUN_0208729C + ldr r0, [r6] + add r0, r0, r5 + str r0, [r6] + ldr r0, [r4] + add r0, r0, r5 + str r0, [r4] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02316308: .4byte 0x0231D3DC + arm_func_end ov00_023162BC + + arm_func_start ov00_0231630C +ov00_0231630C: @ 0x0231630C + ldr r3, [r0] + strb r1, [r3] + ldr r1, [r2] + add r1, r1, #1 + str r1, [r2] + ldr r1, [r0] + add r1, r1, #1 + str r1, [r0] + bx lr + arm_func_end ov00_0231630C + + arm_func_start ov00_02316330 +ov00_02316330: @ 0x02316330 + push {r0, r1, r2, r3} + push {r3, lr} + add ip, sp, #0xc + ldrb r3, [ip] + ldrb r1, [ip, #1] + ldr lr, [r0] + strb r3, [lr] + strb r1, [lr, #1] + ldrb r3, [ip, #2] + ldrb r1, [ip, #3] + strb r3, [lr, #2] + strb r1, [lr, #3] + ldr r1, [r2] + add r1, r1, #4 + str r1, [r2] + ldr r1, [r0] + add r1, r1, #4 + str r1, [r0] + pop {r3, lr} + add sp, sp, #0x10 + bx lr + arm_func_end ov00_02316330 + + arm_func_start ov00_02316384 +ov00_02316384: @ 0x02316384 + push {r4, lr} + lsr ip, r1, #0x18 + lsr r3, r1, #8 + lsl lr, r1, #8 + lsl r4, r1, #0x18 + and ip, ip, #0xff + and r1, r3, #0xff00 + and r3, lr, #0xff0000 + orr r1, ip, r1 + and r4, r4, #0xff000000 + orr r1, r3, r1 + orr r4, r4, r1 + mov r1, #0 + orr r3, r1, r4, lsl #24 + and r1, r4, #0xff00 + orr r3, r3, r1, lsl #8 + and r1, r4, #0xff0000 + orr r3, r3, r1, lsr #8 + and r1, r4, #0xff000000 + orr r1, r3, r1, lsr #24 + bl ov00_02316330 + pop {r4, pc} + arm_func_end ov00_02316384 + + arm_func_start ov00_023163DC +ov00_023163DC: @ 0x023163DC + push {r4, r5, r6, lr} + mov r6, r0 + ldr r0, [r6] + mov r4, r3 + mov r5, r2 + bl FUN_0208729C + ldr r0, [r4] + add r0, r0, r5 + str r0, [r4] + ldr r0, [r6] + add r0, r0, r5 + str r0, [r6] + pop {r4, r5, r6, pc} + arm_func_end ov00_023163DC + + arm_func_start ov00_02316410 +ov00_02316410: @ 0x02316410 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sl, r0 + bl FUN_020895B0 + ldr r5, _023164F8 @ =0x2C0B02C1 + mov r8, #0 + smull r2, r4, r5, r0 + lsr r1, r0, #0x1f + add r4, r1, r4, asr #4 + mov r3, #0x5d + smull r1, r2, r3, r4 + sub r4, r0, r1 + add r0, r4, #0x21 + mov r7, #1 + strb r0, [sl, #0x74] + mov fp, r8 + mov r6, r7 + mov r4, r3 +_02316454: + add sb, sl, r7 + ldrsb r3, [sb, #0x73] + ldrsb r0, [sl, #0x74] + cmp r3, r0 + eor r3, r7, r3 + movlt r1, r6 + and r3, r3, #1 + movge r1, fp + cmp r0, #0x4f + movlt r2, #1 + and r0, r0, #1 + eor r3, r8, r3 + movge r2, #0 + eor r0, r0, r3 + eor r0, r0, r2 + eor r8, r0, r1 + bl FUN_020895B0 + smull r2, r3, r5, r0 + lsr r1, r0, #0x1f + add r3, r1, r3, asr #4 + smull r1, r2, r4, r3 + sub r3, r0, r1 + add r0, r3, #0x21 + cmp r8, #0 + strb r0, [sb, #0x74] + beq _023164C8 + ldrsb r0, [sb, #0x74] + tst r0, #1 + beq _023164DC +_023164C8: + cmp r8, #0 + ldrsbeq r0, [sb, #0x74] + andeq r0, r0, #1 + cmpeq r0, #1 + bne _023164E8 +_023164DC: + ldrsb r0, [sb, #0x74] + add r0, r0, #1 + strb r0, [sb, #0x74] +_023164E8: + add r7, r7, #1 + cmp r7, #8 + blt _02316454 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_023164F8: .4byte 0x2C0B02C1 + arm_func_end ov00_02316410 + + arm_func_start ov00_023164FC +ov00_023164FC: @ 0x023164FC + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sl, r0 + mov sb, r1 + mov r8, r2 + mov r7, #1 + mov fp, #2 + mov r5, #0 +_02316518: + ldr r0, [sl, #0x6b4] + mov r1, sb + mov r2, r8 + mov r3, r5 + sub r7, r7, #1 + bl ov00_022F50CC + mov r6, r0 + cmp r6, #0 + bgt _02316590 + cmp r7, #0 + blt _02316590 + ldr r0, [sl, #0x80] + cmp r0, #0 + bgt _02316590 + mov r0, sl + bl ov00_02316884 + mov r1, #0 + mov r2, r1 + mov r0, sl + mov r3, fp + str r2, [sp] + bl ov00_023165A0 + movs r4, r0 + beq _02316588 + mov r0, sl + bl ov00_0231607C + mov r0, r4 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02316588: + cmp r7, #0 + bge _02316518 +_02316590: + cmp r6, #0 + movle r0, #3 + movgt r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_023164FC + + arm_func_start ov00_023165A0 +ov00_023165A0: @ 0x023165A0 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x30c + movs r7, r1 + ldreq r7, _023167D8 @ =0x0231D3DC + mov r6, r2 + mov r5, r0 + cmp r6, #0 + ldreq r6, _023167D8 @ =0x0231D3DC + mov r0, r7 + mov r4, r3 + bl FUN_02089678 + cmp r0, #0x100 + addhi sp, sp, #0x30c + movhi r0, #6 + pophi {r4, r5, r6, r7, pc} + mov r0, r6 + bl FUN_02089678 + cmp r0, #0x100 + addhi sp, sp, #0x30c + movhi r0, #6 + pophi {r4, r5, r6, r7, pc} + mov r0, r5 + bl ov00_02316190 + cmp r0, #0 + addne sp, sp, #0x30c + popne {r4, r5, r6, r7, pc} + mov r0, r5 + str r4, [r5, #0x7c8] + bl ov00_02316410 + add r3, sp, #0xe + mov ip, #2 + add r0, sp, #4 + add r2, sp, #8 + mov r1, #0 + str ip, [sp, #8] + str r3, [sp, #4] + bl ov00_0231630C + add r0, sp, #4 + add r2, sp, #8 + mov r1, #1 + bl ov00_0231630C + add r0, sp, #4 + mov r1, #3 + add r2, sp, #8 + bl ov00_0231630C + ldr r1, [r5, #0x6bc] + add r0, sp, #4 + add r2, sp, #8 + bl ov00_02316384 + add r0, sp, #4 + add r1, r5, #0xc + add r2, sp, #8 + bl ov00_023162BC + add r0, sp, #4 + add r1, r5, #0x30 + add r2, sp, #8 + bl ov00_023162BC + add r0, sp, #4 + add r1, r5, #0x74 + mov r2, #8 + add r3, sp, #8 + bl ov00_023163DC + mov r1, r6 + add r0, sp, #4 + add r2, sp, #8 + bl ov00_023162BC + mov r1, r7 + add r0, sp, #4 + add r2, sp, #8 + bl ov00_023162BC + lsl r1, r4, #0x18 + and ip, r1, #0xff000000 + lsl r1, r4, #8 + and r3, r1, #0xff0000 + lsr r1, r4, #0x18 + and r2, r1, #0xff + lsr r1, r4, #8 + and r1, r1, #0xff00 + orr r1, r2, r1 + orr r1, r3, r1 + add r0, sp, #4 + orr r1, ip, r1 + add r2, sp, #8 + bl ov00_02316330 + ldr r0, [r5, #0x7c8] + tst r0, #8 + beq _0231670C + ldr r1, [r5, #0x6a8] + add r0, sp, #4 + add r2, sp, #8 + bl ov00_02316330 +_0231670C: + ldr r0, [r5, #0x7c8] + tst r0, #0x80 + beq _02316728 + ldr r1, [sp, #0x320] + add r0, sp, #4 + add r2, sp, #8 + bl ov00_02316384 +_02316728: + ldr r2, [sp, #8] + add r4, sp, #0 + lsl r0, r2, #0x10 + lsr r0, r0, #0x10 + asr r1, r0, #8 + lsl r0, r0, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + strh r0, [sp] + ldrb r3, [r4] + add r1, sp, #0xc + ldrb r0, [r4, #1] + strb r3, [r1] + mov r3, #0 + strb r0, [r1, #1] + ldr r0, [r5, #0x6b4] + bl ov00_022F50CC + cmp r0, #0 + bgt _0231678C + mov r0, r5 + bl ov00_02316884 + add sp, sp, #0x30c + mov r0, #3 + pop {r4, r5, r6, r7, pc} +_0231678C: + mov r0, #3 + str r0, [r5] + mov r0, #0 + str r0, [r5, #0x7cc] + ldr r0, [r5, #0x7c] + cmp r0, #0 + bne _023167CC + mov r0, #0x1000 + bl ov00_022F5AE4 + cmp r0, #0 + str r0, [r5, #0x7c] + addeq sp, sp, #0x30c + moveq r0, #5 + popeq {r4, r5, r6, r7, pc} + mov r0, #0 + str r0, [r5, #0x80] +_023167CC: + mov r0, #0 + add sp, sp, #0x30c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_023167D8: .4byte 0x0231D3DC + arm_func_end ov00_023165A0 + + arm_func_start ov00_023167DC +ov00_023167DC: @ 0x023167DC + push {r3, r4, r5, lr} + mov r5, r0 + ldr r0, [r5, #0x480] + mov r4, #0 + cmp r0, #0 + ble _02316814 +_023167F4: + add r0, r5, r4, lsl #2 + ldr r1, [r0, #0x84] + mov r0, r5 + bl ov00_02315FF8 + ldr r0, [r5, #0x480] + add r4, r4, #1 + cmp r4, r0 + blt _023167F4 +_02316814: + mov r0, #0 + str r0, [r5, #0x480] + pop {r3, r4, r5, pc} + arm_func_end ov00_023167DC + + arm_func_start ov00_02316820 +ov00_02316820: @ 0x02316820 + push {r3, r4, r5, lr} + mov r5, r0 + ldr r0, [r5, #8] + cmp r0, #0 + popeq {r3, r4, r5, pc} + mov r4, #0 + bl ov00_022F47A0 + cmp r0, #0 + ble _02316870 +_02316844: + ldr r0, [r5, #8] + mov r1, r4 + bl ov00_022F47A8 + ldr r1, [r0] + mov r0, r5 + bl ov00_02315FF8 + ldr r0, [r5, #8] + add r4, r4, #1 + bl ov00_022F47A0 + cmp r4, r0 + blt _02316844 +_02316870: + ldr r0, [r5, #8] + bl ov00_022F4758 + mov r0, #0 + str r0, [r5, #8] + pop {r3, r4, r5, pc} + arm_func_end ov00_02316820 + + arm_func_start ov00_02316884 +ov00_02316884: @ 0x02316884 + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #0x7c] + cmp r0, #0 + beq _0231689C + bl ov00_022F5B14 +_0231689C: + mov r1, #0 + str r1, [r4, #0x7c] + str r1, [r4, #0x80] + ldr r0, [r4, #0x6b4] + sub r1, r1, #1 + cmp r0, r1 + beq _023168BC + bl ov00_022F4FB4 +_023168BC: + mvn r1, #0 + mov r0, r4 + str r1, [r4, #0x6b4] + mov r1, #1 + str r1, [r4] + bl ov00_02316820 + mvn r1, #0 + mov r0, r4 + str r1, [r4, #0x484] + bl ov00_023167DC + pop {r4, pc} + arm_func_end ov00_02316884 + + arm_func_start ov00_023168E8 +ov00_023168E8: @ 0x023168E8 + push {r4, lr} + mov r4, r0 + bl ov00_02316884 + mov r0, r4 + bl ov00_02315F30 + mov r0, r4 + bl ov00_02315128 + ldr r0, [r4, #4] + cmp r0, #0 + beq _02316914 + bl ov00_022F4758 +_02316914: + mov r0, #0 + str r0, [r4, #4] + pop {r4, pc} + arm_func_end ov00_023168E8 + + arm_func_start ov00_02316920 +ov00_02316920: @ 0x02316920 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov sb, r0 + mov r7, r2 + add r0, sb, #0x54 + mov r8, r1 + bl FUN_02089678 + mov r5, r0 + cmp r7, #0 + add r6, sb, #0x54 + mov r4, #0 + ble _023169A8 +_0231694C: + mov r0, r4 + mov r1, r5 + bl FUN_0208FEA4 + ldrsb r1, [r6, r1] + lsr r2, r4, #0x1f + rsb r0, r2, r4, lsl #29 + mul r3, r4, r1 + lsr r1, r3, #0x1f + add r2, r2, r0, ror #29 + rsb r0, r1, r3, lsl #29 + add r2, sb, r2 + add r3, r1, r0, ror #29 + ldrsb r0, [r8, r4] + ldrsb r1, [r2, #0x74] + add r2, sb, r3 + add r4, r4, #1 + eor r0, r1, r0 + ldrsb r1, [r2, #0x74] + lsl r0, r0, #0x18 + cmp r4, r7 + eor r0, r1, r0, asr #24 + strb r0, [r2, #0x74] + blt _0231694C +_023169A8: + add r0, sb, #0x6c0 + add r1, sb, #0x74 + mov r2, #8 + bl ov00_02314580 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_02316920 + + arm_func_start ov00_023169BC +ov00_023169BC: @ 0x023169BC + mov r1, #5 + tst r0, #2 + addne r1, r1, #4 + tst r0, #8 + addne r1, r1, #4 + tst r0, #0x10 + addne r1, r1, #2 + tst r0, #0x20 + addne r1, r1, #2 + mov r0, r1 + bx lr + arm_func_end ov00_023169BC + + arm_func_start ov00_023169E8 +ov00_023169E8: @ 0x023169E8 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + b _02316A38 +_023169F8: + mov r0, r5 + mov r1, r4 + bl ov00_0231604C + cmp r0, #0 + movlt r0, #0 + poplt {r3, r4, r5, pc} + sub r4, r4, r0 + add r5, r5, r0 + mov r0, r5 + mov r1, r4 + bl ov00_0231604C + cmp r0, #0 + movlt r0, #0 + poplt {r3, r4, r5, pc} + add r5, r5, r0 + sub r4, r4, r0 +_02316A38: + cmp r4, #0 + ble _02316A4C + ldrsb r0, [r5] + cmp r0, #0 + bne _023169F8 +_02316A4C: + cmp r4, #0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + ldrsb r0, [r5] + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + pop {r3, r4, r5, pc} + arm_func_end ov00_023169E8 + + arm_func_start ov00_02316A6C +ov00_02316A6C: @ 0x02316A6C + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r8, r0 + ldr r0, [r8, #8] + mov r7, r1 + mov r6, r2 + bl ov00_022F47A0 + mov r4, r0 + cmp r4, #0 + mov r5, #0 + ble _02316B3C + mvn sb, #0 +_02316A98: + ldr r0, [r8, #8] + mov r1, r5 + bl ov00_022F47A8 + ldr r0, [r0, #4] + cmp r0, #0 + beq _02316ADC + cmp r0, #1 + beq _02316AC4 + cmp r0, #2 + beq _02316AD0 + b _02316B1C +_02316AC4: + add r7, r7, #1 + sub r6, r6, #1 + b _02316B24 +_02316AD0: + add r7, r7, #2 + sub r6, r6, #2 + b _02316B24 +_02316ADC: + cmp r6, #1 + movlt r0, #0 + poplt {r3, r4, r5, r6, r7, r8, sb, pc} + ldrb r0, [r7], #1 + sub r6, r6, #1 + cmp r0, #0xff + bne _02316B24 + mov r0, r7 + mov r1, r6 + bl ov00_0231604C + cmp r0, sb + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + add r7, r7, r0 + sub r6, r6, r0 + b _02316B24 +_02316B1C: + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_02316B24: + cmp r6, #0 + movlt r0, #0 + poplt {r3, r4, r5, r6, r7, r8, sb, pc} + add r5, r5, #1 + cmp r5, r4 + blt _02316A98 +_02316B3C: + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov00_02316A6C + + arm_func_start ov00_02316B44 +ov00_02316B44: @ 0x02316B44 + push {r4, lr} + cmp r2, #5 + poplt {r4, pc} + ldrb r4, [r1] + ldrb lr, [r1, #1] + ldrb ip, [r1, #2] + tst r4, #0x10 + strb lr, [r3] + strb ip, [r3, #1] + ldrb lr, [r1, #3] + ldrb ip, [r1, #4] + strb lr, [r3, #2] + strb ip, [r3, #3] + beq _02316BA0 + sub r0, r2, #5 + cmp r0, #2 + poplt {r4, pc} + ldrb r2, [r1, #5] + ldrb r0, [r1, #6] + ldr r1, [sp, #8] + strb r2, [r1] + strb r0, [r1, #1] + pop {r4, pc} +_02316BA0: + add r0, r0, #0x600 + ldrh r1, [r0, #0xac] + ldr r0, [sp, #8] + strh r1, [r0] + pop {r4, pc} + arm_func_end ov00_02316B44 + + arm_func_start ov00_02316BB4 +ov00_02316BB4: @ 0x02316BB4 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0xc + mov r8, r2 + ldrb r5, [r8], #5 + mov sb, r1 + mov sl, r0 + mov r7, r3 + mov r0, sb + mov r1, r5 + str r7, [sp] + ldr r6, [sp, #0x30] + bl ov00_02315A90 + tst r5, #0x10 + sub r7, r7, #5 + addne r8, r8, #2 + subne r7, r7, #2 + tst r5, #2 + moveq r0, #0 + streq r0, [sp, #8] + beq _02316C30 + ldrb r1, [r8] + ldrb r0, [r8, #1] + add r2, sp, #8 + sub r7, r7, #4 + strb r1, [r2] + strb r0, [r2, #1] + ldrb r1, [r8, #2] + ldrb r0, [r8, #3] + add r8, r8, #4 + strb r1, [r2, #2] + strb r0, [r2, #3] +_02316C30: + tst r5, #0x20 + addeq r0, sl, #0x600 + ldrheq r0, [r0, #0xac] + strheq r0, [sp, #4] + beq _02316C60 + ldrb r1, [r8] + ldrb r0, [r8, #1] + add r2, sp, #4 + add r8, r8, #2 + strb r1, [r2] + strb r0, [r2, #1] + sub r7, r7, #2 +_02316C60: + ldrh r2, [sp, #4] + ldr r1, [sp, #8] + mov r0, sb + bl ov00_02315A98 + tst r5, #8 + beq _02316CB0 + ldrb r2, [r8] + ldrb r1, [r8, #1] + add r3, sp, #8 + mov r0, sb + strb r2, [r3] + strb r1, [r3, #1] + ldrb r2, [r8, #2] + ldrb r1, [r8, #3] + add r8, r8, #4 + sub r7, r7, #4 + strb r2, [r3, #2] + strb r1, [r3, #3] + ldr r1, [sp, #8] + bl ov00_02315AA4 +_02316CB0: + tst r5, #0x40 + beq _02316DDC + ldr r0, [sl, #8] + bl ov00_022F47A0 + mov fp, r0 + cmp fp, #0 + mov r4, #0 + ble _02316DC4 +_02316CD0: + ldr r0, [sl, #8] + mov r1, r4 + bl ov00_022F47A8 + mov r1, r0 + ldr r0, [r1, #4] + cmp r0, #0 + beq _02316D64 + cmp r0, #1 + beq _02316D00 + cmp r0, #2 + beq _02316D18 + b _02316DB8 +_02316D00: + ldrb r2, [r8], #1 + ldr r1, [r1] + mov r0, sb + bl ov00_023151CC + sub r7, r7, #1 + b _02316DB8 +_02316D18: + ldrb ip, [r8] + ldrb r3, [r8, #1] + add r2, sp, #6 + mov r0, sb + strb ip, [r2] + strb r3, [r2, #1] + ldrh r3, [sp, #6] + ldr r1, [r1] + asr r2, r3, #8 + lsl r3, r3, #8 + and r2, r2, #0xff + and r3, r3, #0xff00 + orr r2, r2, r3 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + bl ov00_023151CC + add r8, r8, #2 + sub r7, r7, #2 + b _02316DB8 +_02316D64: + cmp r6, #0 + ldrbne r0, [r8], #1 + subne r7, r7, #1 + moveq r0, #0xff + cmp r0, #0xff + bne _02316DA4 + ldr r1, [r1] + mov r0, sb + mov r2, r8 + bl ov00_0231518C + mov r0, r8 + bl FUN_02089678 + add r0, r0, #1 + add r8, r8, r0 + sub r7, r7, r0 + b _02316DB8 +_02316DA4: + add r0, sl, r0, lsl #2 + ldr r1, [r1] + ldr r2, [r0, #0x84] + mov r0, sb + bl ov00_0231518C +_02316DB8: + add r4, r4, #1 + cmp r4, fp + blt _02316CD0 +_02316DC4: + mov r0, sb + bl ov00_02315AB4 + orr r1, r0, #1 + mov r0, sb + and r1, r1, #0xff + bl ov00_02315AAC +_02316DDC: + tst r5, #0x80 + beq _02316E54 + b _02316E24 +_02316DE8: + mov r0, r8 + mov r4, r8 + bl FUN_02089678 + add r3, r0, #1 + add r8, r8, r3 + mov r0, sb + mov r1, r4 + mov r2, r8 + sub r7, r7, r3 + bl ov00_0231518C + mov r0, r8 + bl FUN_02089678 + add r0, r0, #1 + add r8, r8, r0 + sub r7, r7, r0 +_02316E24: + ldrsb r0, [r8] + cmp r0, #0 + beq _02316E38 + cmp r7, #0 + bgt _02316DE8 +_02316E38: + mov r0, sb + sub r7, r7, #1 + bl ov00_02315AB4 + orr r1, r0, #2 + mov r0, sb + and r1, r1, #0xff + bl ov00_02315AAC +_02316E54: + mov r0, sb + bl ov00_02315AB4 + tst r5, #0xc0 + bne _02316E7C + tst r0, #3 + beq _02316E7C + and r1, r0, #0xfc + mov r0, sb + and r1, r1, #0xff + bl ov00_02315AAC +_02316E7C: + ldr r0, [sp] + sub r0, r0, r7 + add sp, sp, #0xc + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_02316BB4 + + arm_func_start ov00_02316E8C +ov00_02316E8C: @ 0x02316E8C + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0xc + mov r4, r2 + cmp r4, #1 + mov r6, r0 + mov r5, r1 + addlt sp, sp, #0xc + movlt r0, #0 + poplt {r3, r4, r5, r6, r7, r8, pc} + ldrb r8, [r5] + mov r0, r8 + bl ov00_023169BC + mov r7, r0 + cmp r4, r7 + addlt sp, sp, #0xc + movlt r0, #0 + poplt {r3, r4, r5, r6, r7, r8, pc} + tst r8, #0x40 + beq _02316EF8 + mov r0, r6 + add r1, r5, r7 + sub r2, r4, r7 + bl ov00_02316A6C + cmp r0, #0 + addeq sp, sp, #0xc + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, pc} +_02316EF8: + tst r8, #0x80 + beq _02316F1C + add r0, r5, r7 + sub r1, r4, r7 + bl ov00_023169E8 + cmp r0, #0 + addeq sp, sp, #0xc + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, pc} +_02316F1C: + ldr r1, _02316FB8 @ =0x0231D3FC + add r0, r5, #1 + mov r2, #4 + bl FUN_02087348 + cmp r0, #0 + addeq sp, sp, #0xc + mvneq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, pc} + add r7, sp, #4 + add r3, sp, #8 + mov r0, r6 + mov r1, r5 + mov r2, r4 + str r7, [sp] + bl ov00_02316B44 + ldrh r2, [sp, #4] + ldr r1, [sp, #8] + mov r0, r6 + bl ov00_023159E4 + mov r7, r0 + bl ov00_02315ABC + cmp r0, #0 + addne sp, sp, #0xc + mvnne r0, #1 + popne {r3, r4, r5, r6, r7, r8, pc} + mov ip, #1 + mov r0, r6 + mov r1, r7 + mov r2, r5 + mov r3, r4 + str ip, [sp] + bl ov00_02316BB4 + mov r4, r0 + mov r0, r6 + mov r1, r7 + bl ov00_02315D98 + mov r0, r4 + add sp, sp, #0xc + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02316FB8: .4byte 0x0231D3FC + arm_func_end ov00_02316E8C + + arm_func_start ov00_02316FBC +ov00_02316FBC: @ 0x02316FBC + str r1, [r0, #0x6b0] + bx lr + arm_func_end ov00_02316FBC + + arm_func_start ov00_02316FC4 +ov00_02316FC4: @ 0x02316FC4 + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #8 + mov r7, r0 + ldr r1, [r7, #0x7cc] + ldr r5, [r7, #0x7c] + ldr r6, [r7, #0x80] + cmp r1, #4 + addls pc, pc, r1, lsl #2 + b _023173B0 +_02316FE8: @ jump table + b _02316FFC @ case 0 + b _02317088 @ case 1 + b _02317188 @ case 2 + b _02317274 @ case 3 + b _02317320 @ case 4 +_02316FFC: + cmp r6, #1 + blt _023173B0 + ldrb r1, [r5] + eor r1, r1, #0xec + add r3, r1, #2 + cmp r6, r3 + blt _023173B0 + sub r1, r3, #1 + ldrb r1, [r5, r1] + eor r2, r1, #0xea + add r4, r3, r2 + cmp r6, r4 + blt _023173B0 + add r1, r5, r3 + bl ov00_02316920 + mov r0, #1 + str r0, [r7, #0x7cc] + ldrb r1, [r5, #1] + ldrb r0, [r5, #2] + add r3, r7, #0x700 + add r5, r5, r4 + strb r1, [r7, #0x7d0] + strb r0, [r7, #0x7d1] + ldrh r0, [r3, #0xd0] + sub r6, r6, r4 + mov r1, r5 + asr r2, r0, #8 + lsl r0, r0, #8 + and r2, r2, #0xff + and r0, r0, #0xff00 + orr r4, r2, r0 + mov r2, r6 + add r0, r7, #0x6c0 + strh r4, [r3, #0xd0] + bl ov00_02314714 +_02317088: + cmp r6, #6 + blt _023173B0 + ldrb r3, [r5] + ldrb r1, [r5, #1] + ldr r2, _023173E8 @ =0x023294FC + mov r0, r7 + strb r3, [r7, #0x6a4] + strb r1, [r7, #0x6a5] + ldrb r4, [r5, #2] + ldrb r3, [r5, #3] + mov r1, #6 + strb r4, [r7, #0x6a6] + strb r3, [r7, #0x6a7] + ldr r2, [r2] + ldr r3, [r7, #0x494] + ldr r4, [r7, #0x488] + blx r4 + ldrb r3, [r5, #4] + ldrb r2, [r5, #5] + add r0, r7, #0x600 + ldr r1, _023173EC @ =0x0000FFFF + strb r3, [r7, #0x6ac] + strb r2, [r7, #0x6ad] + ldrh r0, [r0, #0xac] + cmp r0, r1 + bne _0231713C + add r0, r5, #6 + sub r1, r6, #6 + bl ov00_0231604C + mvn r1, #0 + cmp r0, r1 + beq _023173B0 + mov r0, r7 + add r1, r5, #6 + bl ov00_02316FBC + ldr r0, _023173E8 @ =0x023294FC + ldr r3, [r7, #0x494] + ldr r2, [r0] + ldr r4, [r7, #0x488] + mov r0, r7 + mov r1, #5 + blx r4 + ldr r0, [r7, #0x7c] + cmp r0, #0 + beq _023173B0 +_0231713C: + ldr r0, [r7, #0x7c8] + add r5, r5, #6 + tst r0, #2 + sub r6, r6, #6 + bne _02317164 + add r0, r7, #0x600 + ldrh r1, [r0, #0xac] + ldr r0, _023173EC @ =0x0000FFFF + cmp r1, r0 + bne _02317178 +_02317164: + mov r0, #5 + str r0, [r7, #0x7cc] + mov r0, #2 + str r0, [r7] + b _023173B0 +_02317178: + mov r0, #2 + str r0, [r7, #0x7cc] + sub r0, r0, #3 + str r0, [r7, #0x484] +_02317188: + ldr r1, [r7, #0x484] + mvn r0, #0 + cmp r1, r0 + bne _023171D0 + cmp r6, #1 + blt _023173B0 + ldrb r1, [r5] + mov r0, #8 + mov r2, #0 + str r1, [r7, #0x484] + bl ov00_022F4700 + cmp r0, #0 + str r0, [r7, #8] + addeq sp, sp, #8 + moveq r0, #5 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + add r5, r5, #1 + sub r6, r6, #1 +_023171D0: + ldr r0, [r7, #8] + bl ov00_022F47A0 + ldr r1, [r7, #0x484] + cmp r1, r0 + ble _02317250 + add r8, sp, #0 + mvn r4, #0 +_023171EC: + cmp r6, #2 + blt _02317250 + add r0, r5, #1 + sub r1, r6, #1 + bl ov00_0231604C + mov sb, r0 + cmp sb, r4 + beq _02317250 + ldrb r2, [r5] + mov r0, r7 + add r1, r5, #1 + str r2, [sp, #4] + bl ov00_02315F88 + str r0, [sp] + ldr r0, [r7, #8] + mov r1, r8 + bl ov00_022F47D4 + add r1, sb, #1 + ldr r0, [r7, #8] + add r5, r5, r1 + sub r6, r6, r1 + bl ov00_022F47A0 + ldr r1, [r7, #0x484] + cmp r1, r0 + bgt _023171EC +_02317250: + ldr r0, [r7, #8] + bl ov00_022F47A0 + ldr r1, [r7, #0x484] + cmp r1, r0 + bgt _023173B0 + mov r0, #3 + str r0, [r7, #0x7cc] + sub r0, r0, #4 + str r0, [r7, #0x484] +_02317274: + ldr r1, [r7, #0x484] + mvn r0, #0 + cmp r1, r0 + bne _023172A0 + cmp r6, #1 + blt _023173B0 + ldrb r1, [r5], #1 + mov r0, #0 + sub r6, r6, #1 + str r1, [r7, #0x484] + str r0, [r7, #0x480] +_023172A0: + ldr r1, [r7, #0x484] + ldr r0, [r7, #0x480] + cmp r1, r0 + ble _02317308 + mvn r8, #0 +_023172B4: + mov r0, r5 + mov r1, r6 + bl ov00_0231604C + mov r4, r0 + cmp r4, r8 + beq _02317308 + mov r0, r7 + mov r1, r5 + bl ov00_02315F88 + ldr r1, [r7, #0x480] + add r5, r5, r4 + mov r2, r1 + add r1, r1, #1 + str r1, [r7, #0x480] + add r1, r7, r2, lsl #2 + str r0, [r1, #0x84] + ldr r1, [r7, #0x484] + ldr r0, [r7, #0x480] + sub r6, r6, r4 + cmp r1, r0 + bgt _023172B4 +_02317308: + ldr r1, [r7, #0x484] + ldr r0, [r7, #0x480] + cmp r1, r0 + bgt _023173B0 + mov r0, #4 + str r0, [r7, #0x7cc] +_02317320: + cmp r6, #5 + blt _023173B0 + mvn r4, #0 + sub r8, r4, #1 + mov sb, #0 +_02317334: + mov r0, r7 + mov r1, r5 + mov r2, r6 + bl ov00_02316E8C + cmp r0, r8 + addeq sp, sp, #8 + moveq r0, #5 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + cmp r0, r4 + bne _02317394 + mov r0, #5 + str r0, [r7, #0x7cc] + mov r0, #2 + str r0, [r7] + ldr r0, _023173E8 @ =0x023294FC + ldr r3, [r7, #0x494] + ldr r2, [r0] + ldr r4, [r7, #0x488] + mov r0, r7 + mov r1, #3 + sub r6, r6, #5 + add r5, r5, #5 + blx r4 + b _023173B0 +_02317394: + ldr r1, [r7, #0x7c] + add r5, r5, r0 + cmp r1, #0 + sub r6, r6, r0 + moveq r0, sb + cmp r0, #0 + bne _02317334 +_023173B0: + ldr r0, [r7, #0x7c] + cmp r0, #0 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + cmp r6, #0 + beq _023173D8 + mov r1, r5 + mov r2, r6 + bl FUN_020872BC +_023173D8: + str r6, [r7, #0x80] + mov r0, #0 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_023173E8: .4byte 0x023294FC +_023173EC: .4byte 0x0000FFFF + arm_func_end ov00_02316FC4 + + arm_func_start ov00_023173F0 +ov00_023173F0: @ 0x023173F0 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #8 + mov sl, r0 + ldr r3, [sl, #8] + mov sb, r1 + mov r8, r2 + cmp r3, #0 + sub r8, r8, #1 + ldrb r7, [sb], #1 + beq _0231741C + bl ov00_02316820 +_0231741C: + mov r1, r7 + mov r0, #8 + mov r2, #0 + bl ov00_022F4700 + cmp r0, #0 + str r0, [sl, #8] + addeq sp, sp, #8 + moveq r0, #5 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r7, #0 + mov r6, #0 + ble _023174C0 + add fp, sp, #0 + mvn r4, #0 +_02317454: + cmp r8, #2 + addlt sp, sp, #8 + movlt r0, #4 + poplt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, sb, #1 + sub r1, r8, #1 + bl ov00_0231604C + mov r5, r0 + cmp r5, r4 + addeq sp, sp, #8 + moveq r0, #4 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrb r2, [sb] + mov r0, sl + add r1, sb, #1 + str r2, [sp, #4] + bl ov00_02315F88 + str r0, [sp] + ldr r0, [sl, #8] + mov r1, fp + bl ov00_022F47D4 + add r0, r5, #1 + add r6, r6, #1 + cmp r6, r7 + add sb, sb, r0 + sub r8, r8, r0 + blt _02317454 +_023174C0: + mov r0, #0 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_023173F0 + + arm_func_start ov00_023174CC +ov00_023174CC: @ 0x023174CC + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x24 + mov r8, r2 + cmp r8, #2 + mov sl, r0 + mov sb, r1 + addlt sp, sp, #0x24 + movlt r0, #4 + poplt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrb r0, [sb, #1] + sub r8, r8, #2 + mov fp, #0 + str r0, [sp, #0xc] + ldrb r0, [sb], #2 + str r0, [sp, #0x14] + ldr r0, [sp, #0xc] + cmp r0, #0 + ble _02317648 + add r7, sp, #0x20 + add r6, sp, #0x1c + mvn r4, #0 +_02317520: + mov r0, sb + mov r1, r8 + str sb, [sp, #0x10] + bl ov00_0231604C + cmp r0, r4 + addeq sp, sp, #0x24 + moveq r0, #4 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + sub r3, r8, r0 + cmp r3, #0xb + add r2, sb, r0 + addlt sp, sp, #0x24 + movlt r0, #4 + poplt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrb r1, [r2] + ldrb r0, [r2, #1] + sub r8, r3, #0xa + add sb, r2, #0xa + strb r1, [r7] + strb r0, [r7, #1] + ldrb r5, [r2, #2] + ldrb r3, [r2, #3] + mov r0, sb + mov r1, r8 + strb r3, [r7, #3] + strb r5, [r7, #2] + ldrb ip, [r2, #4] + ldrb r5, [r2, #5] + add r3, sp, #0x18 + strb ip, [r3] + strb r5, [r3, #1] + ldrb r5, [r2, #6] + ldrb r3, [r2, #7] + strb r5, [r6] + strb r3, [r6, #1] + ldrb r3, [r2, #8] + ldrb r2, [r2, #9] + strb r3, [r6, #2] + strb r2, [r6, #3] + ldr ip, [sp, #0x1c] + lsl r2, ip, #0x18 + and r5, r2, #0xff000000 + lsl r2, ip, #8 + and r3, r2, #0xff0000 + lsr r2, ip, #0x18 + lsr ip, ip, #8 + and r2, r2, #0xff + and ip, ip, #0xff00 + orr r2, r2, ip + orr r2, r3, r2 + orr r2, r5, r2 + str r2, [sp, #0x1c] + bl ov00_0231604C + mov r5, r0 + cmp r5, r4 + addeq sp, sp, #0x24 + moveq r0, #4 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [sp, #0x1c] + mov r0, sl + stm sp, {r1, sb} + ldr r2, [sl, #0x494] + ldr r1, [sp, #0x10] + str r2, [sp, #8] + ldrh r3, [sp, #0x18] + ldr r2, [sp, #0x20] + ldr ip, [sl, #0x490] + blx ip + ldr r0, [sp, #0xc] + add fp, fp, #1 + cmp fp, r0 + add sb, sb, r5 + sub r8, r8, r5 + blt _02317520 +_02317648: + ldr r0, [sp, #0x14] + cmp r0, #0 + beq _0231767C + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + ldr r2, [sl, #0x494] + mov r0, sl + str r2, [sp, #8] + ldr r4, [sl, #0x490] + mov r2, r1 + mov r3, r1 + blx r4 +_0231767C: + mov r0, #0 + add sp, sp, #0x24 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_023174CC + + arm_func_start ov00_02317688 +ov00_02317688: @ 0x02317688 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x54 + mov r8, r2 + cmp r8, #0xb + mov sl, r0 + mov sb, r1 + addlt sp, sp, #0x54 + movlt r0, #4 + poplt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrb r2, [sb] + ldrb r1, [sb, #1] + add r3, sp, #0xc + add r4, sp, #8 + strb r2, [r3] + strb r1, [r3, #1] + ldrb r2, [sb, #2] + ldrb r1, [sb, #3] + strb r1, [r3, #3] + strb r2, [r3, #2] + ldrb r3, [sb, #4] + ldrb r2, [sb, #5] + ldr r1, [sp, #0xc] + strb r3, [r4] + strb r2, [r4, #1] + ldrh r2, [sp, #8] + bl ov00_02315DD4 + mov r1, r0 + mvn r0, #0 + cmp r1, r0 + addeq sp, sp, #0x54 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, sl + bl ov00_02315EC4 + ldrb r2, [sb, #6] + ldrb r1, [sb, #7] + add r3, sp, #0x10 + mov fp, r0 + strb r2, [r3] + strb r1, [r3, #1] + ldrb r1, [sb, #8] + ldrb r0, [sb, #9] + sub r8, r8, #0xb + mov r7, #0 + strb r1, [r3, #2] + strb r0, [r3, #3] + ldr r3, [sp, #0x10] + add r5, sp, #0x14 + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + lsl r3, r3, #0x18 + orr r0, r1, r0 + and r2, r2, #0xff0000 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + str r0, [sp, #0x10] + ldrb r6, [sb, #0xa] + add sb, sb, #0xb + mvn r4, #0 + b _023177BC +_02317788: + cmp r8, #1 + blt _023177C8 + mov r0, sb + mov r1, r8 + bl ov00_0231604C + cmp r0, r4 + addeq sp, sp, #0x54 + moveq r0, #4 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + str sb, [r5, r7, lsl #2] + add sb, sb, r0 + sub r8, r8, r0 + add r7, r7, #1 +_023177BC: + cmp r7, r6 + cmplt r7, #0x10 + blt _02317788 +_023177C8: + ldr r4, [sl, #0x48c] + cmp r4, #0 + addeq sp, sp, #0x54 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r1, sp, #0x14 + str r1, [sp] + ldr r2, [sl, #0x494] + mov r0, sl + str r2, [sp, #4] + ldr r2, [sp, #0x10] + mov r1, fp + mov r3, r7 + blx r4 + mov r0, #0 + add sp, sp, #0x54 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov00_02317688 + + arm_func_start ov00_0231780C +ov00_0231780C: @ 0x0231780C + push {r4, lr} + sub sp, sp, #8 + cmp r2, #6 + mov r4, r0 + addlt sp, sp, #8 + movlt r0, #4 + poplt {r4, pc} + ldrb r3, [r1] + ldrb r2, [r1, #1] + add lr, sp, #4 + add ip, sp, #0 + strb r3, [lr] + strb r2, [lr, #1] + ldrb r3, [r1, #2] + ldrb r2, [r1, #3] + strb r3, [lr, #2] + strb r2, [lr, #3] + ldrb r3, [r1, #4] + ldrb r2, [r1, #5] + ldr r1, [sp, #4] + strb r3, [ip] + strb r2, [ip, #1] + ldrh r2, [sp] + bl ov00_02315DD4 + mov r1, r0 + mvn r0, #0 + cmp r1, r0 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r4, pc} + mov r0, r4 + bl ov00_02315E78 + mov r0, #0 + add sp, sp, #8 + pop {r4, pc} + arm_func_end ov00_0231780C + + arm_func_start ov00_02317898 +ov00_02317898: @ 0x02317898 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0xc + mov r6, r2 + cmp r6, #5 + mov r8, r0 + mov r7, r1 + addlt sp, sp, #0xc + movlt r0, #4 + poplt {r3, r4, r5, r6, r7, r8, pc} + add r4, sp, #4 + add r3, sp, #8 + str r4, [sp] + bl ov00_02316B44 + ldrh r2, [sp, #4] + ldr r1, [sp, #8] + mov r0, r8 + bl ov00_02315DD4 + mov r5, r0 + mvn r0, #0 + cmp r5, r0 + bne _02317918 + ldrh r2, [sp, #4] + ldr r1, [sp, #8] + mov r0, r8 + bl ov00_023159E4 + mov r4, r0 + bl ov00_02315ABC + cmp r0, #0 + beq _02317928 + add sp, sp, #0xc + mov r0, #5 + pop {r3, r4, r5, r6, r7, r8, pc} +_02317918: + mov r0, r8 + mov r1, r5 + bl ov00_02315EC4 + mov r4, r0 +_02317928: + mov ip, #0 + mov r0, r8 + mov r1, r4 + mov r2, r7 + mov r3, r6 + str ip, [sp] + bl ov00_02316BB4 + cmp r0, #0 + addlt sp, sp, #0xc + movlt r0, #4 + poplt {r3, r4, r5, r6, r7, r8, pc} + mvn r0, #0 + cmp r5, r0 + bne _0231796C + mov r0, r8 + mov r1, r4 + bl ov00_02315D98 +_0231796C: + ldr r3, [r8, #0x494] + ldr r5, [r8, #0x488] + mov r0, r8 + mov r2, r4 + mov r1, #1 + blx r5 + mov r0, #0 + add sp, sp, #0xc + pop {r3, r4, r5, r6, r7, r8, pc} + arm_func_end ov00_02317898 + + arm_func_start ov00_02317990 +ov00_02317990: @ 0x02317990 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + ldr r0, [r7, #0x80] + mov r6, #0 + cmp r0, #3 + blt _02317AF8 + mov r4, r6 + add r5, sp, #0 +_023179B0: + ldr r0, [r7, #0x7c] + ldrb r1, [r0] + ldrb r0, [r0, #1] + strb r1, [r5] + strb r0, [r5, #1] + ldrh r0, [sp] + asr r1, r0, #8 + lsl r0, r0, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + strh r0, [sp] + ldrh r2, [sp] + cmp r2, #0x1000 + movhi r6, #4 + bhi _02317AF8 + ldr r0, [r7, #0x80] + cmp r0, r2 + movlt r0, #0 + poplt {r3, r4, r5, r6, r7, pc} + ldr r1, [r7, #0x7c] + ldrsb r0, [r1, #2] + cmp r0, #6 + addls pc, pc, r0, lsl #2 + b _02317AC0 +_02317A14: @ jump table + b _02317AC0 @ case 0 + b _02317A30 @ case 1 + b _02317A48 @ case 2 + b _02317A60 @ case 3 + b _02317A7C @ case 4 + b _02317A94 @ case 5 + b _02317AAC @ case 6 +_02317A30: + mov r0, r7 + add r1, r1, #3 + sub r2, r2, #3 + bl ov00_023173F0 + mov r6, r0 + b _02317AC0 +_02317A48: + mov r0, r7 + add r1, r1, #3 + sub r2, r2, #3 + bl ov00_02317898 + mov r6, r0 + b _02317AC0 +_02317A60: + ldr r0, [r7, #0x6b4] + mov r3, r4 + bl ov00_022F50CC + cmp r0, #0 + bgt _02317AC0 + mov r0, #3 + pop {r3, r4, r5, r6, r7, pc} +_02317A7C: + mov r0, r7 + add r1, r1, #3 + sub r2, r2, #3 + bl ov00_0231780C + mov r6, r0 + b _02317AC0 +_02317A94: + mov r0, r7 + add r1, r1, #3 + sub r2, r2, #3 + bl ov00_02317688 + mov r6, r0 + b _02317AC0 +_02317AAC: + mov r0, r7 + add r1, r1, #3 + sub r2, r2, #3 + bl ov00_023174CC + mov r6, r0 +_02317AC0: + ldrh r1, [sp] + ldr r0, [r7, #0x80] + subs r2, r0, r1 + str r2, [r7, #0x80] + ldrne r0, [r7, #0x7c] + cmpne r0, #0 + beq _02317AE4 + add r1, r0, r1 + bl FUN_020872BC +_02317AE4: + cmp r6, #0 + bne _02317AF8 + ldr r0, [r7, #0x80] + cmp r0, #3 + bge _023179B0 +_02317AF8: + cmp r6, #0 + beq _02317B08 + mov r0, r7 + bl ov00_0231607C +_02317B08: + mov r0, r6 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov00_02317990 + + arm_func_start ov00_02317B10 +ov00_02317B10: @ 0x02317B10 + push {r4, r5, r6, lr} + mov r6, r0 + ldr r0, [r6, #0x6b4] + bl ov00_022F5320 + cmp r0, #0 + moveq r0, #0 + popeq {r4, r5, r6, pc} + ldr r5, [r6, #0x80] + ldr r1, [r6, #0x7c] + ldr r0, [r6, #0x6b4] + add r1, r1, r5 + rsb r2, r5, #0x1000 + mov r3, #0 + bl ov00_022F5088 + add r1, r0, #1 + cmp r1, #1 + bhi _02317B64 + mov r0, r6 + bl ov00_0231607C + mov r0, #3 + pop {r4, r5, r6, pc} +_02317B64: + ldr r1, [r6, #0x80] + mov r4, #0 + add r0, r1, r0 + str r0, [r6, #0x80] + ldr r0, [r6] + cmp r0, #2 + beq _02317B8C + ldr r0, [r6, #0x7cc] + cmp r0, #0 + ble _02317BA4 +_02317B8C: + ldr r1, [r6, #0x7c] + ldr r2, [r6, #0x80] + add r0, r6, #0x6c0 + add r1, r1, r5 + sub r2, r2, r5 + bl ov00_02314714 +_02317BA4: + ldr r0, [r6] + cmp r0, #3 + bne _02317BBC + mov r0, r6 + bl ov00_02316FC4 + mov r4, r0 +_02317BBC: + cmp r4, #0 + movne r0, r4 + popne {r4, r5, r6, pc} + ldr r0, [r6] + cmp r0, #2 + bne _02317BEC + ldr r0, [r6, #0x80] + cmp r0, #0 + ble _02317BEC + mov r0, r6 + bl ov00_02317990 + pop {r4, r5, r6, pc} +_02317BEC: + mov r0, #0 + pop {r4, r5, r6, pc} + arm_func_end ov00_02317B10 + + arm_func_start ov00_02317BF4 +ov00_02317BF4: @ 0x02317BF4 + push {r0, r1, r2, r3} + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x18 + mov r5, r0 + ldr r1, [r5] + mov r4, r3 + cmp r1, #1 + bne _02317C28 + mov r1, #0 + mov r2, r1 + mov r3, #2 + str r1, [sp] + bl ov00_023165A0 +_02317C28: + ldr r0, [r5] + cmp r0, #1 + addeq sp, sp, #0x18 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + addeq sp, sp, #0x10 + bxeq lr + ldr r0, [sp, #0x50] + add r6, sp, #0x44 + add r0, r0, #9 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r2, r0, #8 + lsl r1, r0, #8 + and r2, r2, #0xff + and r1, r1, #0xff00 + orr r1, r2, r1 + strh r1, [sp, #4] + add r2, sp, #4 + ldrb r3, [r2] + add r0, sp, #0x48 + add r1, sp, #6 + ldrb r2, [r2, #1] + strb r3, [r1] + mov fp, #2 + strb r2, [r1, #1] + ldrb sb, [r6] + add sl, sp, #9 + ldrb r8, [r6, #1] + ldrb r7, [r6, #2] + ldrb r6, [r6, #3] + ldrb ip, [r0] + ldrb r3, [r0, #1] + add lr, sp, #0xd + mov r0, r5 + mov r2, #9 + strb fp, [sp, #8] + strb sb, [sl] + strb r8, [sl, #1] + strb r7, [sl, #2] + strb r6, [sl, #3] + strb ip, [lr] + strb r3, [lr, #1] + bl ov00_023164FC + cmp r0, #0 + addne sp, sp, #0x18 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + addne sp, sp, #0x10 + bxne lr + ldr r0, [r5, #0x6b4] + ldr r2, [sp, #0x50] + mov r1, r4 + mov r3, #0 + bl ov00_022F50CC + cmp r0, #0 + movlt r0, #3 + movge r0, #0 + add sp, sp, #0x18 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + add sp, sp, #0x10 + bx lr + arm_func_end ov00_02317BF4 + + arm_func_start ov00_02317D1C +ov00_02317D1C: @ 0x02317D1C + push {r0, r1, r2, r3} + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x10 + ldr r5, [sp, #0x44] + mov r7, #0xfd + lsr r4, r5, #0x18 + lsl r8, r5, #0x18 + lsr r3, r5, #8 + lsl r6, r5, #8 + and r5, r4, #0xff + and r4, r3, #0xff00 + orr sb, r5, r4 + and r3, r6, #0xff0000 + mov r6, #0xfc + mov r5, #0x1e + mov r4, #0x66 + mov lr, #0x6a + mov fp, #0xb2 + strb r4, [sp, #7] + and r8, r8, #0xff000000 + orr r3, r3, sb + orr r8, r8, r3 + add r3, sp, #0x44 + str r8, [sp, #0x44] + strb r7, [sp, #4] + ldrb sl, [r3] + add ip, sp, #0xa + ldrb sb, [r3, #1] + ldrb r8, [r3, #2] + ldrb r7, [r3, #3] + add r3, sp, #4 + strb r6, [sp, #5] + strb r5, [sp, #6] + strb lr, [sp, #8] + strb fp, [sp, #9] + strb sl, [ip] + strb sb, [ip, #1] + strb r8, [ip, #2] + strb r7, [ip, #3] + mov r4, #0xa + str r4, [sp] + bl ov00_02317BF4 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + add sp, sp, #0x10 + bx lr + arm_func_end ov00_02317D1C + + arm_func_start ov00_02317DD4 +ov00_02317DD4: @ 0x02317DD4 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x5f0 + mov r1, #8 + mov sl, r0 + str r1, [sp, #8] + ldr r0, [sl, #0x6b4] + bl ov00_022F5320 + cmp r0, #0 + beq _02317E9C + ldr r6, _02317EF0 @ =0x000005DB + add sb, sp, #0xc + add r8, sp, #8 + add r7, sp, #0x14 + mov fp, #0 + mvn r4, #0 +_02317E10: + str sb, [sp] + str r8, [sp, #4] + ldr r0, [sl, #0x6b4] + mov r1, r7 + mov r2, r6 + mov r3, fp + bl ov00_022F509C + cmp r0, r4 + beq _02317E8C + ldrh r2, [sp, #0xe] + ldr r1, [sp, #0x10] + mov r0, sl + bl ov00_02315DD4 + cmp r0, r4 + bne _02317E8C + ldrh r2, [sp, #0xe] + ldr r1, [sp, #0x10] + mov r0, sl + bl ov00_023159E4 + mov r5, r0 + bl ov00_02315ABC + cmp r0, #0 + addne sp, sp, #0x5f0 + movne r0, #5 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, r5 + mov r1, #0x11 + bl ov00_02315A90 + mov r0, sl + mov r1, r5 + bl ov00_02315D98 +_02317E8C: + ldr r0, [sl, #0x6b4] + bl ov00_022F5320 + cmp r0, #0 + bne _02317E10 +_02317E9C: + bl ov00_022F5594 + ldr r1, [sl, #0x6b8] + sub r0, r0, r1 + cmp r0, #0x7d0 + bls _02317EE4 + ldr r0, [sl, #0x6b4] + bl ov00_022F4FB4 + mvn r0, #0 + str r0, [sl, #0x6b4] + mov r0, #1 + str r0, [sl] + ldr r0, _02317EF4 @ =0x023294FC + ldr r3, [sl, #0x494] + ldr r2, [r0] + ldr r4, [sl, #0x488] + mov r0, sl + mov r1, #3 + blx r4 +_02317EE4: + mov r0, #0 + add sp, sp, #0x5f0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02317EF0: .4byte 0x000005DB +_02317EF4: .4byte 0x023294FC + arm_func_end ov00_02317DD4 + + arm_func_start ov00_02317EF8 +ov00_02317EF8: @ 0x02317EF8 + push {r4, lr} + mov r4, r0 + bl ov00_02315ED8 + ldr r0, [r4] + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _02317F3C +_02317F14: @ jump table + b _02317F30 @ case 0 + b _02317F3C @ case 1 + b _02317F24 @ case 2 + b _02317F24 @ case 3 +_02317F24: + mov r0, r4 + bl ov00_02317B10 + pop {r4, pc} +_02317F30: + mov r0, r4 + bl ov00_02317DD4 + pop {r4, pc} +_02317F3C: + mov r0, #0 + pop {r4, pc} + arm_func_end ov00_02317EF8 + @ 0x02317F44 diff --git a/asm/overlay_01.s b/asm/overlay_01.s index 0f227d06..f2b7c767 100644 --- a/asm/overlay_01.s +++ b/asm/overlay_01.s @@ -3,3 +3,16784 @@ .include "global.inc" .text + + arm_func_start ov01_02329520 +ov01_02329520: @ 0x02329520 + ldr r0, _0232952C @ =0x0233C0C0 + ldr r0, [r0, #8] + bx lr + .align 2, 0 +_0232952C: .4byte 0x0233C0C0 + arm_func_end ov01_02329520 + + arm_func_start ov01_02329530 +ov01_02329530: @ 0x02329530 + ldr r0, _02329540 @ =0x0233C0C0 + mov r1, #0 + str r1, [r0, #8] + bx lr + .align 2, 0 +_02329540: .4byte 0x0233C0C0 + arm_func_end ov01_02329530 + + arm_func_start ov01_02329544 +ov01_02329544: @ 0x02329544 + push {r3, lr} + ldr r0, _02329568 @ =0x0233C240 + mov r1, #3 + str r1, [r0, #0x7c] + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 + bl ov01_02329A38 + pop {r3, pc} + .align 2, 0 +_02329568: .4byte 0x0233C240 + arm_func_end ov01_02329544 + + arm_func_start ov01_0232956C +ov01_0232956C: @ 0x0232956C + ldr r0, _02329578 @ =0x0233C0C0 + ldr r0, [r0, #4] + bx lr + .align 2, 0 +_02329578: .4byte 0x0233C0C0 + arm_func_end ov01_0232956C + + arm_func_start ov01_0232957C +ov01_0232957C: @ 0x0232957C + ldr r0, _0232958C @ =0x0233C0C0 + mov r1, #0 + str r1, [r0, #4] + bx lr + .align 2, 0 +_0232958C: .4byte 0x0233C0C0 + arm_func_end ov01_0232957C + + arm_func_start ov01_02329590 +ov01_02329590: @ 0x02329590 + push {r3, lr} + mov r3, r0 + mov ip, #0x1e + ldr r0, _023295C0 @ =ov01_023295C4 + mov r1, #3 + mov r2, #0x11 + str ip, [sp] + bl FUN_022C1610 + cmp r0, #2 + moveq r0, #1 + movne r0, #0 + pop {r3, pc} + .align 2, 0 +_023295C0: .4byte ov01_023295C4 + arm_func_end ov01_02329590 + + arm_func_start ov01_023295C4 +ov01_023295C4: @ 0x023295C4 + push {r3, lr} + ldrh r1, [r0, #2] + cmp r1, #0 + beq _023295DC + bl ov01_0232AB88 + pop {r3, pc} +_023295DC: + ldr r1, _02329618 @ =0x0233C240 + ldrh r3, [r0, #0xa] + ldrh r2, [r1] + cmp r2, r3 + strhhi r3, [r1] + ldrhhi r2, [r0, #8] + strhhi r2, [r1, #6] + ldrh r0, [r0, #8] + bl ov01_0232961C + cmp r0, #0 + beq _02329610 + bl ov01_02329590 + pop {r3, pc} +_02329610: + bl ov01_0232AB88 + pop {r3, pc} + .align 2, 0 +_02329618: .4byte 0x0233C240 + arm_func_end ov01_023295C4 + + arm_func_start ov01_0232961C +ov01_0232961C: @ 0x0232961C + push {r4, lr} + mov r4, r0 + bl FUN_022BF640 + mov r2, #1 + b _02329640 +_02329630: + sub r1, r4, #1 + tst r0, r2, lsl r1 + movne r0, r4 + popne {r4, pc} +_02329640: + add r1, r4, #1 + lsl r1, r1, #0x10 + lsr r4, r1, #0x10 + cmp r4, #0xe + bls _02329630 + mov r0, #0 + pop {r4, pc} + arm_func_end ov01_0232961C + + arm_func_start ov01_0232965C +ov01_0232965C: @ 0x0232965C + push {r4, lr} + ldr r4, _02329828 @ =0x0233C0C0 + mov lr, #0 + str lr, [r4, #8] + ldr ip, _0232982C @ =0x0233C240 + str lr, [r4, #4] + str lr, [ip, #0x7c] + strh lr, [ip, #8] + strh r3, [ip, #4] + str r1, [ip, #0x30] + str lr, [ip, #0x14] + mov r4, r0 + str r2, [ip, #0xc] + str r4, [ip, #0x4c] + str lr, [ip, #0x74] + str lr, [ip, #0x2c] + mov r0, #0xf20 + mov r1, #8 + str lr, [ip, #0x18] + bl FUN_02001170 + ldr r2, _0232982C @ =0x0233C240 + mov r1, #8 + str r0, [r2, #0x10] + mov r0, #0x60 + bl FUN_02001170 + ldr r2, _0232982C @ =0x0233C240 + add r1, r0, #0x1f + str r0, [r2, #0x24] + bic r3, r1, #0x1f + mov r0, #0x40 + mov r1, #8 + str r3, [r2, #0x20] + bl FUN_02001170 + ldr r2, _0232982C @ =0x0233C240 + add r1, r0, #0x1f + str r0, [r2, #0x70] + bic r3, r1, #0x1f + mov r0, #0xe0 + mov r1, #8 + str r3, [r2, #0x28] + bl FUN_02001170 + ldr r1, _0232982C @ =0x0233C240 + add r2, r0, #0x1f + str r0, [r1, #0x38] + bic r0, r2, #0x1f + str r0, [r1, #0x6c] + ldr r0, [r1, #0x30] + cmp r0, #0 + beq _02329760 + mov r0, #0x840 + mov r1, #8 + bl FUN_02001170 + ldr r2, _0232982C @ =0x0233C240 + add r1, r0, #0x1f + str r0, [r2, #0x54] + bic r3, r1, #0x1f + mov r0, #0x220 + mov r1, #8 + str r3, [r2, #0x50] + bl FUN_02001170 + ldr r1, _0232982C @ =0x0233C240 + add r2, r0, #0x1f + str r0, [r1, #0x5c] + bic r0, r2, #0x1f + str r0, [r1, #0x58] +_02329760: + ldr r0, _0232982C @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x60] + ldrh r1, [r4, #0x34] + ldrh r0, [r4, #0x36] + ldr r2, _0232982C @ =0x0233C240 + add r1, r1, #0x23 + add r0, r0, #0x21 + bic r3, r1, #0x1f + bic r0, r0, #0x1f + cmp r3, r0 + movle r3, r0 + add r0, r3, #0x20 + mov r1, #8 + str r3, [r2, #0x34] + bl FUN_02001170 + ldr r1, _0232982C @ =0x0233C240 + add r2, r0, #0x1f + str r0, [r1, #0x40] + bic r0, r2, #0x1f + str r0, [r1, #0x3c] + ldrh r2, [r4, #0x36] + ldrh r0, [r4, #0x34] + ldrh r1, [r4, #0x10] + add r2, r2, #0xe + add r0, r0, #0x55 + mul r1, r2, r1 + add r1, r1, #0x29 + bic r1, r1, #0x1f + lsl r3, r1, #1 + bic r0, r0, #0x1f + cmp r3, r0, lsl #1 + lsl r0, r0, #1 + movle r3, r0 + ldr r2, _0232982C @ =0x0233C240 + add r0, r3, #0x20 + mov r1, #8 + str r3, [r2, #0x44] + bl FUN_02001170 + ldr r1, _0232982C @ =0x0233C240 + add r2, r0, #0x1f + str r0, [r1, #0x1c] + bic r0, r2, #0x1f + str r0, [r1, #0x48] + ldr r0, [r1, #0x10] + mov r1, #2 + add r0, r0, #0x1f + bic r0, r0, #0x1f + bl FUN_022BE964 + pop {r4, pc} + .align 2, 0 +_02329828: .4byte 0x0233C0C0 +_0232982C: .4byte 0x0233C240 + arm_func_end ov01_0232965C + + arm_func_start ov01_02329830 +ov01_02329830: @ 0x02329830 + push {r3, lr} + mov r1, #0 + mov r2, r1 + mov r0, #0xd + bl FUN_022BF308 + ldr r0, _023298E0 @ =0x0233C240 + ldr r0, [r0, #0x7c] + cmp r0, #0 + cmpne r0, #2 + popne {r3, pc} + bl FUN_022BEB74 + cmp r0, #0 + popne {r3, pc} + ldr r0, _023298E0 @ =0x0233C240 + ldr r0, [r0, #0x1c] + bl FUN_02001188 + ldr r0, _023298E0 @ =0x0233C240 + ldr r0, [r0, #0x40] + bl FUN_02001188 + ldr r0, _023298E0 @ =0x0233C240 + ldr r1, [r0, #0x30] + cmp r1, #0 + beq _023298A0 + ldr r0, [r0, #0x5c] + bl FUN_02001188 + ldr r0, _023298E0 @ =0x0233C240 + ldr r0, [r0, #0x54] + bl FUN_02001188 +_023298A0: + ldr r0, _023298E0 @ =0x0233C240 + ldr r0, [r0, #0x38] + bl FUN_02001188 + ldr r0, _023298E0 @ =0x0233C240 + ldr r0, [r0, #0x70] + bl FUN_02001188 + ldr r0, _023298E0 @ =0x0233C240 + ldr r0, [r0, #0x24] + bl FUN_02001188 + ldr r0, _023298E0 @ =0x0233C240 + ldr r0, [r0, #0x10] + bl FUN_02001188 + ldr r0, _023298E4 @ =0x0233C0C0 + mov r1, #0 + str r1, [r0, #4] + pop {r3, pc} + .align 2, 0 +_023298E0: .4byte 0x0233C240 +_023298E4: .4byte 0x0233C0C0 + arm_func_end ov01_02329830 + + arm_func_start ov01_023298E8 +ov01_023298E8: @ 0x023298E8 + push {r3, r4, r5, lr} + ldr r2, _02329994 @ =0x0233C0C0 + mov r3, #0 + mov r5, r0 + mov r4, r1 + str r3, [r2, #0x10] + bl FUN_022BF96C + ldr r2, _02329998 @ =0x0233C240 + ldr r1, _02329994 @ =0x0233C0C0 + strh r0, [r2, #2] + str r5, [r1, #0x14] + strh r4, [r1] + ldr r0, [r2, #0x7c] + cmp r0, #5 + addls pc, pc, r0, lsl #2 + pop {r3, r4, r5, pc} +_02329928: @ jump table + b _02329940 @ case 0 + b _02329958 @ case 1 + pop {r3, r4, r5, pc} @ case 2 + b _02329970 @ case 3 + pop {r3, r4, r5, pc} @ case 4 + b _0232997C @ case 5 +_02329940: + mov r0, #3 + str r0, [r2, #0x7c] + mov r0, #4 + str r0, [r2, #0x78] + bl ov01_0232AA8C + pop {r3, r4, r5, pc} +_02329958: + mov r0, #3 + str r0, [r2, #0x7c] + mov r0, #4 + str r0, [r2, #0x78] + bl ov01_0232AAEC + pop {r3, r4, r5, pc} +_02329970: + mov r0, #4 + str r0, [r2, #0x78] + pop {r3, r4, r5, pc} +_0232997C: + mov r0, #3 + str r0, [r2, #0x7c] + mov r0, #4 + str r0, [r2, #0x78] + bl ov01_0232AB88 + pop {r3, r4, r5, pc} + .align 2, 0 +_02329994: .4byte 0x0233C0C0 +_02329998: .4byte 0x0233C240 + arm_func_end ov01_023298E8 + + arm_func_start ov01_0232999C +ov01_0232999C: @ 0x0232999C + push {r3, lr} + ldr r1, _02329A30 @ =0x0233C0C0 + mov r2, #0 + str r0, [r1, #0xc] + ldr r0, _02329A34 @ =0x0233C240 + str r2, [r1, #0x10] + ldr r1, [r0, #0x7c] + cmp r1, #5 + addls pc, pc, r1, lsl #2 + pop {r3, pc} +_023299C4: @ jump table + b _023299DC @ case 0 + b _023299F4 @ case 1 + pop {r3, pc} @ case 2 + b _02329A0C @ case 3 + b _02329A18 @ case 4 + pop {r3, pc} @ case 5 +_023299DC: + mov r1, #3 + str r1, [r0, #0x7c] + mov r1, #5 + str r1, [r0, #0x78] + bl ov01_0232AA8C + pop {r3, pc} +_023299F4: + mov r1, #3 + str r1, [r0, #0x7c] + mov r1, #5 + str r1, [r0, #0x78] + bl ov01_0232AAEC + pop {r3, pc} +_02329A0C: + mov r1, #5 + str r1, [r0, #0x78] + pop {r3, pc} +_02329A18: + mov r1, #3 + str r1, [r0, #0x7c] + mov r1, #5 + str r1, [r0, #0x78] + bl ov01_0232AB88 + pop {r3, pc} + .align 2, 0 +_02329A30: .4byte 0x0233C0C0 +_02329A34: .4byte 0x0233C240 + arm_func_end ov01_0232999C + + arm_func_start ov01_02329A38 +ov01_02329A38: @ 0x02329A38 + push {r3, lr} + ldr r0, _02329AA4 @ =0x0233C240 + ldr r1, [r0, #0x7c] + cmp r1, #5 + addls pc, pc, r1, lsl #2 + pop {r3, pc} +_02329A50: @ jump table + pop {r3, pc} @ case 0 + b _02329A68 @ case 1 + pop {r3, pc} @ case 2 + b _02329A80 @ case 3 + b _02329A8C @ case 4 + b _02329A8C @ case 5 +_02329A68: + mov r1, #3 + str r1, [r0, #0x7c] + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AABC + pop {r3, pc} +_02329A80: + mov r1, #0 + str r1, [r0, #0x78] + pop {r3, pc} +_02329A8C: + mov r1, #3 + str r1, [r0, #0x7c] + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 + pop {r3, pc} + .align 2, 0 +_02329AA4: .4byte 0x0233C240 + arm_func_end ov01_02329A38 + + arm_func_start ov01_02329AA8 +ov01_02329AA8: @ 0x02329AA8 + push {r3, lr} + ldr r0, _02329B14 @ =0x0233C240 + ldr r1, [r0, #0x7c] + cmp r1, #5 + addls pc, pc, r1, lsl #2 + pop {r3, pc} +_02329AC0: @ jump table + b _02329AD8 @ case 0 + pop {r3, pc} @ case 1 + pop {r3, pc} @ case 2 + b _02329AF0 @ case 3 + b _02329AFC @ case 4 + b _02329AFC @ case 5 +_02329AD8: + mov r1, #3 + str r1, [r0, #0x7c] + mov r1, #1 + str r1, [r0, #0x78] + bl ov01_0232AA8C + pop {r3, pc} +_02329AF0: + mov r1, #1 + str r1, [r0, #0x78] + pop {r3, pc} +_02329AFC: + mov r1, #3 + str r1, [r0, #0x7c] + mov r1, #1 + str r1, [r0, #0x78] + bl ov01_0232AB88 + pop {r3, pc} + .align 2, 0 +_02329B14: .4byte 0x0233C240 + arm_func_end ov01_02329AA8 + + arm_func_start ov01_02329B18 +ov01_02329B18: @ 0x02329B18 + ldr r0, _02329B24 @ =0x0233C240 + ldr r0, [r0, #0x7c] + bx lr + .align 2, 0 +_02329B24: .4byte 0x0233C240 + arm_func_end ov01_02329B18 + + arm_func_start ov01_02329B28 +ov01_02329B28: @ 0x02329B28 + ldr r0, _02329B34 @ =0x0233C240 + ldrh r0, [r0, #8] + bx lr + .align 2, 0 +_02329B34: .4byte 0x0233C240 + arm_func_end ov01_02329B28 + + arm_func_start ov01_02329B38 +ov01_02329B38: @ 0x02329B38 + push {r3, lr} + ldr r2, _02329B6C @ =0x0233C240 + ldr r3, [r2, #0x20] + ldrh r3, [r3, #0x34] + cmp r1, r3 + pophi {r3, pc} + ldr r3, [r2, #0x74] + cmp r3, #0 + popeq {r3, pc} + mov r3, #0 + str r3, [r2, #0x74] + bl ov01_0232AD60 + pop {r3, pc} + .align 2, 0 +_02329B6C: .4byte 0x0233C240 + arm_func_end ov01_02329B38 + + arm_func_start ov01_02329B70 +ov01_02329B70: @ 0x02329B70 + push {r3, lr} + ldr r2, _02329BA4 @ =0x0233C240 + ldr r3, [r2, #0x4c] + ldrh r3, [r3, #0x36] + cmp r1, r3 + pophi {r3, pc} + ldr r3, [r2, #0x74] + cmp r3, #0 + popeq {r3, pc} + mov r3, #0 + str r3, [r2, #0x74] + bl ov01_0232AD60 + pop {r3, pc} + .align 2, 0 +_02329BA4: .4byte 0x0233C240 + arm_func_end ov01_02329B70 + + arm_func_start ov01_02329BA8 +ov01_02329BA8: @ 0x02329BA8 + ldr r1, _02329BB4 @ =0x0233C240 + str r0, [r1, #0x2c] + bx lr + .align 2, 0 +_02329BB4: .4byte 0x0233C240 + arm_func_end ov01_02329BA8 + + arm_func_start ov01_02329BB8 +ov01_02329BB8: @ 0x02329BB8 + ldr r1, _02329BC4 @ =0x0233C240 + str r0, [r1, #0x18] + bx lr + .align 2, 0 +_02329BC4: .4byte 0x0233C240 + arm_func_end ov01_02329BB8 + + arm_func_start ov01_02329BC8 +ov01_02329BC8: @ 0x02329BC8 + push {r3, lr} + ldr r1, _02329C2C @ =0x0233C240 + mov r2, #0x40 + ldr r0, [r1, #0x4c] + ldr r1, [r1, #0x20] + bl FUN_0207C330 + ldr r0, _02329C2C @ =0x0233C240 + ldrh r1, [r0, #6] + ldr r0, [r0, #0x20] + strh r1, [r0, #0x32] + bl FUN_022BF6F0 + ldr r2, _02329C2C @ =0x0233C240 + ldr r1, _02329C30 @ =0x0233C0C0 + ldr r3, [r2, #0x20] + strh r0, [r3, #0x18] + ldrh r3, [r2, #2] + ldr r0, [r2, #0x20] + strh r3, [r0, #0xc] + ldr r3, [r1, #0x14] + ldr r0, [r2, #0x20] + str r3, [r0] + ldrh r1, [r1] + ldr r0, [r2, #0x20] + strh r1, [r0, #4] + pop {r3, pc} + .align 2, 0 +_02329C2C: .4byte 0x0233C240 +_02329C30: .4byte 0x0233C0C0 + arm_func_end ov01_02329BC8 + + arm_func_start ov01_02329C34 +ov01_02329C34: @ 0x02329C34 + push {r3, lr} + ldr r0, _02329CA4 @ =0x0233C240 + ldr r2, [r0, #0x6c] + ldr r1, [r0, #0x28] + str r2, [r1] + ldr r1, [r0, #0x4c] + ldr r0, [r0, #0x28] + ldrh r1, [r1, #0x32] + strh r1, [r0, #4] + bl FUN_022BF780 + ldr r1, _02329CA4 @ =0x0233C240 + mov r2, #0xff + ldr r3, [r1, #0x28] + strh r0, [r3, #6] + ldr r0, [r1, #0x28] + strb r2, [r0, #8] + ldr r0, [r1, #0x28] + strb r2, [r0, #9] + ldr r0, [r1, #0x28] + strb r2, [r0, #0xa] + ldr r0, [r1, #0x28] + strb r2, [r0, #0xb] + ldr r0, [r1, #0x28] + strb r2, [r0, #0xc] + ldr r0, [r1, #0x28] + strb r2, [r0, #0xd] + bl ov01_02329CA8 + pop {r3, pc} + .align 2, 0 +_02329CA4: .4byte 0x0233C240 + arm_func_end ov01_02329C34 + + arm_func_start ov01_02329CA8 +ov01_02329CA8: @ 0x02329CA8 + push {r3, lr} + bl FUN_022BF640 + cmp r0, #0 + moveq r0, #0 + popeq {r3, pc} + ldr r1, _02329D28 @ =0x0233C240 + mov ip, #0 + ldr lr, [r1, #0x28] + mov r3, #1 + b _02329D18 +_02329CD0: + ldrh r1, [lr, #4] + add r1, r1, ip + lsr r2, r1, #0x1f + rsb r1, r2, r1, lsl #28 + add r1, r2, r1, ror #28 + tst r0, r3, lsl r1 + beq _02329D14 + ldr r0, _02329D28 @ =0x0233C240 + ldr r2, [r0, #0x28] + ldrh r0, [r2, #4] + add r0, r0, ip + lsr r1, r0, #0x1f + rsb r0, r1, r0, lsl #28 + add r0, r1, r0, ror #28 + add r0, r0, #1 + strh r0, [r2, #4] + b _02329D20 +_02329D14: + add ip, ip, #1 +_02329D18: + cmp ip, #0x10 + blt _02329CD0 +_02329D20: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_02329D28: .4byte 0x0233C240 + arm_func_end ov01_02329CA8 + + arm_func_start ov01_02329D2C +ov01_02329D2C: @ 0x02329D2C + push {r4, lr} + mov r4, r0 + bl FUN_0207B7E4 + ldrh r1, [r4, #2] + mov r4, r0 + cmp r1, #0 + bne _02329D90 + ldr r0, _02329DA8 @ =0x0233C240 + ldr r1, [r0, #0x78] + cmp r1, #5 + addls pc, pc, r1, lsl #2 + b _02329D9C +_02329D5C: @ jump table + b _02329D74 @ case 0 + b _02329D7C @ case 1 + b _02329D9C @ case 2 + b _02329D9C @ case 3 + b _02329D88 @ case 4 + b _02329D88 @ case 5 +_02329D74: + bl ov01_0232AABC + b _02329D9C +_02329D7C: + mov r1, #1 + str r1, [r0, #0x7c] + b _02329D9C +_02329D88: + bl ov01_0232AAEC + b _02329D9C +_02329D90: + ldr r0, _02329DA8 @ =0x0233C240 + mov r1, #2 + str r1, [r0, #0x7c] +_02329D9C: + mov r0, r4 + bl FUN_0207B7F8 + pop {r4, pc} + .align 2, 0 +_02329DA8: .4byte 0x0233C240 + arm_func_end ov01_02329D2C + + arm_func_start ov01_02329DAC +ov01_02329DAC: @ 0x02329DAC + push {r4, lr} + mov r4, r0 + bl FUN_0207B7E4 + ldrh r1, [r4, #2] + mov r4, r0 + cmp r1, #0 + bne _02329E44 + ldr r1, _02329E5C @ =0x0233C240 + ldr r0, [r1, #0x78] + cmp r0, #5 + addls pc, pc, r0, lsl #2 + b _02329E50 +_02329DDC: @ jump table + b _02329DF4 @ case 0 + b _02329E00 @ case 1 + b _02329E50 @ case 2 + b _02329E50 @ case 3 + b _02329E10 @ case 4 + b _02329E2C @ case 5 +_02329DF4: + mov r0, #0 + str r0, [r1, #0x7c] + b _02329E50 +_02329E00: + mov r0, #3 + str r0, [r1, #0x7c] + bl ov01_0232AA8C + b _02329E50 +_02329E10: + mov r2, #0 + ldr r0, _02329E60 @ =0x0233C0C0 + str r2, [r1, #0x7c] + ldrh r1, [r0] + ldr r0, [r0, #0x14] + bl ov01_023298E8 + b _02329E50 +_02329E2C: + mov r2, #0 + ldr r0, _02329E60 @ =0x0233C0C0 + str r2, [r1, #0x7c] + ldr r0, [r0, #0xc] + bl ov01_0232999C + b _02329E50 +_02329E44: + ldr r0, _02329E5C @ =0x0233C240 + mov r1, #2 + str r1, [r0, #0x7c] +_02329E50: + mov r0, r4 + bl FUN_0207B7F8 + pop {r4, pc} + .align 2, 0 +_02329E5C: .4byte 0x0233C240 +_02329E60: .4byte 0x0233C0C0 + arm_func_end ov01_02329DAC + + arm_func_start ov01_02329E64 +ov01_02329E64: @ 0x02329E64 + push {r4, lr} + mov r4, r0 + bl FUN_0207B7E4 + ldrh r1, [r4, #2] + mov r4, r0 + cmp r1, #0 + bne _02329FA8 + ldr r0, _02329FC0 @ =0x0233C240 + ldr r0, [r0, #0x78] + cmp r0, #5 + addls pc, pc, r0, lsl #2 + b _02329FB4 +_02329E94: @ jump table + b _02329EAC @ case 0 + b _02329EAC @ case 1 + b _02329FB4 @ case 2 + b _02329FB4 @ case 3 + b _02329EB4 @ case 4 + b _02329F34 @ case 5 +_02329EAC: + bl ov01_0232AB28 + b _02329FB4 +_02329EB4: + bl ov01_0232AB58 + cmp r0, #0 + beq _02329FB4 + ldr r1, _02329FC0 @ =0x0233C240 + ldr r0, [r1, #0x68] + cmp r0, #1 + mov r0, #0 + bne _02329F08 + str r0, [r1, #0x68] + strh r0, [r1, #6] + mov r2, #0x65 + strh r2, [r1] + bl ov01_0232961C + cmp r0, #0 + bne _02329EF8 + mov r0, #0 + bl ov01_0232961C +_02329EF8: + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl ov01_02329590 + mov r0, #1 +_02329F08: + cmp r0, #0 + popne {r4, pc} + bl ov01_02329BC8 + bl ov01_0232AC00 + cmp r0, #0 + bne _02329FB4 + ldr r0, _02329FC0 @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 + b _02329FB4 +_02329F34: + bl ov01_0232AB58 + cmp r0, #1 + bne _02329FB4 + ldr r0, _02329FC4 @ =0x0233C0C0 + ldr r0, [r0, #0x10] + cmp r0, #0 + bne _02329F88 + bl ov01_02329C34 + cmp r0, #0 + ldreq r0, _02329FC0 @ =0x0233C240 + moveq r1, #2 + streq r1, [r0, #0x7c] + beq _02329FB4 + bl ov01_0232AC2C + cmp r0, #0 + bne _02329FB4 + ldr r0, _02329FC0 @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 + b _02329FB4 +_02329F88: + bl ov01_0232AC78 + cmp r0, #0 + bne _02329FB4 + ldr r0, _02329FC0 @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 + b _02329FB4 +_02329FA8: + ldr r0, _02329FC0 @ =0x0233C240 + mov r1, #2 + str r1, [r0, #0x7c] +_02329FB4: + mov r0, r4 + bl FUN_0207B7F8 + pop {r4, pc} + .align 2, 0 +_02329FC0: .4byte 0x0233C240 +_02329FC4: .4byte 0x0233C0C0 + arm_func_end ov01_02329E64 + + arm_func_start ov01_02329FC8 +ov01_02329FC8: @ 0x02329FC8 + push {r4, lr} + mov r4, r0 + bl FUN_0207B7E4 + ldrh r1, [r4, #2] + mov r4, r0 + cmp r1, #0 + bne _0232A02C + ldr r0, _0232A044 @ =0x0233C240 + ldr r1, [r0, #0x78] + cmp r1, #5 + addls pc, pc, r1, lsl #2 + b _0232A038 +_02329FF8: @ jump table + b _0232A010 @ case 0 + b _0232A018 @ case 1 + b _0232A038 @ case 2 + b _0232A038 @ case 3 + b _0232A024 @ case 4 + b _0232A024 @ case 5 +_0232A010: + bl ov01_0232AABC + b _0232A038 +_0232A018: + mov r1, #1 + str r1, [r0, #0x7c] + b _0232A038 +_0232A024: + bl ov01_0232AAEC + b _0232A038 +_0232A02C: + ldr r0, _0232A044 @ =0x0233C240 + mov r1, #2 + str r1, [r0, #0x7c] +_0232A038: + mov r0, r4 + bl FUN_0207B7F8 + pop {r4, pc} + .align 2, 0 +_0232A044: .4byte 0x0233C240 + arm_func_end ov01_02329FC8 + + arm_func_start ov01_0232A048 +ov01_0232A048: @ 0x0232A048 + push {r4, lr} + mov r4, r0 + bl FUN_0207B7E4 + ldrh r1, [r4, #2] + cmp r1, #8 + ldreq r1, _0232A074 @ =0x0233C240 + moveq r2, #2 + streq r2, [r1, #0x78] + streq r2, [r1, #0x7c] + bl FUN_0207B7F8 + pop {r4, pc} + .align 2, 0 +_0232A074: .4byte 0x0233C240 + arm_func_end ov01_0232A048 + + arm_func_start ov01_0232A078 +ov01_0232A078: @ 0x0232A078 + push {r3, r4, r5, lr} + mov r5, r0 + bl FUN_0207B7E4 + ldrh r1, [r5, #2] + mov r4, r0 + cmp r1, #0 + bne _0232A174 + ldr r0, _0232A18C @ =0x0233C240 + mov r1, #0 + strh r1, [r0, #8] + ldr r1, [r0, #0x18] + cmp r1, #0 + beq _0232A0B4 + mov r0, r5 + blx r1 +_0232A0B4: + ldr r0, _0232A18C @ =0x0233C240 + ldr r0, [r0, #0x78] + cmp r0, #5 + addls pc, pc, r0, lsl #2 + b _0232A180 +_0232A0C8: @ jump table + b _0232A0E0 @ case 0 + b _0232A0E0 @ case 1 + b _0232A180 @ case 2 + b _0232A180 @ case 3 + b _0232A0E8 @ case 4 + b _0232A10C @ case 5 +_0232A0E0: + bl ov01_0232AB28 + b _0232A180 +_0232A0E8: + bl ov01_02329BC8 + bl ov01_0232AC00 + cmp r0, #0 + bne _0232A180 + ldr r0, _0232A18C @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 + b _0232A180 +_0232A10C: + ldr r0, _0232A190 @ =0x0233C0C0 + ldr r0, [r0, #0x10] + cmp r0, #0 + bne _0232A154 + bl ov01_02329C34 + cmp r0, #0 + ldreq r0, _0232A18C @ =0x0233C240 + moveq r1, #2 + streq r1, [r0, #0x7c] + beq _0232A180 + bl ov01_0232AC2C + cmp r0, #0 + bne _0232A180 + ldr r0, _0232A18C @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 + b _0232A180 +_0232A154: + bl ov01_0232AC78 + cmp r0, #0 + bne _0232A180 + ldr r0, _0232A18C @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 + b _0232A180 +_0232A174: + ldr r0, _0232A18C @ =0x0233C240 + mov r1, #2 + str r1, [r0, #0x7c] +_0232A180: + mov r0, r4 + bl FUN_0207B7F8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0232A18C: .4byte 0x0233C240 +_0232A190: .4byte 0x0233C0C0 + arm_func_end ov01_0232A078 + + arm_func_start ov01_0232A194 +ov01_0232A194: @ 0x0232A194 + push {r3, r4, r5, lr} + mov r5, r0 + bl FUN_0207B7E4 + ldrh r1, [r5, #2] + mov r4, r0 + cmp r1, #0 + bne _0232A218 + ldr r0, _0232A240 @ =0x0233C240 + ldr r1, [r0, #0x78] + cmp r1, #5 + addls pc, pc, r1, lsl #2 + b _0232A234 +_0232A1C4: @ jump table + b _0232A1DC @ case 0 + b _0232A1DC @ case 1 + b _0232A234 @ case 2 + b _0232A234 @ case 3 + b _0232A1E4 @ case 4 + b _0232A208 @ case 5 +_0232A1DC: + bl ov01_0232AB88 + b _0232A234 +_0232A1E4: + ldr r0, _0232A244 @ =ov01_0232A24C + bl FUN_022BFD9C + cmp r0, #2 + beq _0232A234 + ldr r0, _0232A240 @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 + b _0232A234 +_0232A208: + mov r1, #5 + str r1, [r0, #0x78] + bl ov01_0232AB88 + b _0232A234 +_0232A218: + ldr r0, _0232A240 @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + ldrh r1, [r5, #2] + ldr r0, _0232A248 @ =0x0233C0C0 + str r1, [r0, #4] + bl ov01_0232AB88 +_0232A234: + mov r0, r4 + bl FUN_0207B7F8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0232A240: .4byte 0x0233C240 +_0232A244: .4byte ov01_0232A24C +_0232A248: .4byte 0x0233C0C0 + arm_func_end ov01_0232A194 + + arm_func_start ov01_0232A24C +ov01_0232A24C: @ 0x0232A24C + push {r3, r4, r5, lr} + mov r5, r0 + bl FUN_0207B7E4 + ldrh r1, [r5, #2] + mov r4, r0 + cmp r1, #0 + bne _0232A35C + ldrh r0, [r5, #8] + cmp r0, #7 + bgt _0232A294 + bge _0232A318 + cmp r0, #2 + bgt _0232A36C + cmp r0, #0 + blt _0232A36C + beq _0232A2AC + cmp r0, #2 + b _0232A36C +_0232A294: + cmp r0, #9 + bgt _0232A2A4 + beq _0232A334 + b _0232A36C +_0232A2A4: + cmp r0, #0x1a + b _0232A36C +_0232A2AC: + ldr r0, _0232A378 @ =0x0233C240 + mov r1, #0 + strh r1, [r0, #8] + ldr r1, [r0, #0x78] + cmp r1, #5 + addls pc, pc, r1, lsl #2 + b _0232A36C +_0232A2C8: @ jump table + b _0232A2E0 @ case 0 + b _0232A2E0 @ case 1 + b _0232A36C @ case 2 + b _0232A36C @ case 3 + b _0232A2E8 @ case 4 + b _0232A308 @ case 5 +_0232A2E0: + bl ov01_0232AB88 + b _0232A36C +_0232A2E8: + bl ov01_0232ACD8 + cmp r0, #0 + bne _0232A36C + ldr r0, _0232A378 @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 + b _0232A36C +_0232A308: + mov r1, #5 + str r1, [r0, #0x78] + bl ov01_0232AB88 + b _0232A36C +_0232A318: + ldr r0, _0232A378 @ =0x0233C240 + ldr r1, [r0, #0x18] + cmp r1, #0 + beq _0232A36C + mov r0, r5 + blx r1 + b _0232A36C +_0232A334: + ldr r0, _0232A378 @ =0x0233C240 + ldr r1, [r0, #0x18] + cmp r1, #0 + beq _0232A34C + mov r0, r5 + blx r1 +_0232A34C: + ldr r0, _0232A37C @ =0x0233C0C0 + mov r1, #1 + str r1, [r0, #8] + b _0232A36C +_0232A35C: + ldr r0, _0232A378 @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 +_0232A36C: + mov r0, r4 + bl FUN_0207B7F8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0232A378: .4byte 0x0233C240 +_0232A37C: .4byte 0x0233C0C0 + arm_func_end ov01_0232A24C + + arm_func_start ov01_0232A380 +ov01_0232A380: @ 0x0232A380 + push {r3, r4, r5, lr} + mov r5, r0 + bl FUN_0207B7E4 + ldrh r1, [r5, #2] + mov r4, r0 + cmp r1, #0 + bne _0232A508 + ldr r1, _0232A524 @ =0x0233C240 + ldr r0, [r1, #0x78] + cmp r0, #5 + addls pc, pc, r0, lsl #2 + b _0232A518 +_0232A3B0: @ jump table + b _0232A3C8 @ case 0 + b _0232A3C8 @ case 1 + b _0232A518 @ case 2 + b _0232A518 @ case 3 + b _0232A3D0 @ case 4 + b _0232A3F0 @ case 5 +_0232A3C8: + bl ov01_0232AB88 + b _0232A518 +_0232A3D0: + bl ov01_0232AC58 + cmp r0, #0 + bne _0232A518 + ldr r0, _0232A524 @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 + b _0232A518 +_0232A3F0: + ldr r0, _0232A528 @ =0x0233C0C0 + ldr r0, [r0, #0x10] + cmp r0, #0 + bne _0232A518 + ldrh r0, [r5, #8] + cmp r0, #4 + beq _0232A4C4 + cmp r0, #5 + bne _0232A4F0 + ldr r0, [r1, #0x6c] + mov r1, #0xc0 + bl FUN_0207A2A4 + ldr r1, _0232A524 @ =0x0233C240 + ldr r0, [r1, #0x60] + cmp r0, #0 + ldr r0, [r1, #0x6c] + beq _0232A458 + bl FUN_020851AC + cmp r0, #0 + ldrne r0, _0232A524 @ =0x0233C240 + ldrne r1, [r0, #0x64] + cmpne r1, #0 + beq _0232A4C4 + ldr r0, [r0, #0x6c] + blx r1 + b _0232A4C4 +_0232A458: + ldrh r2, [r0, #0x3c] + cmp r2, #0x10 + blo _0232A4C4 + ldrh r2, [r0, #0x40] + cmp r2, #1 + ldreq r1, [r1, #0x4c] + ldreq r2, [r0, #0x44] + ldreq r1, [r1, #8] + cmpeq r2, r1 + bne _0232A4C4 + ldrb r1, [r0, #0x4b] + tst r1, #1 + ldrne r1, _0232A528 @ =0x0233C0C0 + ldrne r1, [r1, #0xc] + cmpne r1, #0 + beq _0232A4C4 + blx r1 + cmp r0, #0 + beq _0232A4C4 + bl ov01_0232AC58 + cmp r0, #0 + bne _0232A518 + ldr r0, _0232A524 @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 + b _0232A518 +_0232A4C4: + bl ov01_02329CA8 + cmp r0, #0 + beq _0232A518 + bl ov01_0232AC2C + cmp r0, #0 + bne _0232A518 + ldr r0, _0232A524 @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 + b _0232A518 +_0232A4F0: + mov r0, #3 + str r0, [r1, #0x7c] + mov r0, #0 + str r0, [r1, #0x78] + bl ov01_0232AB88 + b _0232A518 +_0232A508: + ldr r0, _0232A524 @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 +_0232A518: + mov r0, r4 + bl FUN_0207B7F8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0232A524: .4byte 0x0233C240 +_0232A528: .4byte 0x0233C0C0 + arm_func_end ov01_0232A380 + + arm_func_start ov01_0232A52C +ov01_0232A52C: @ 0x0232A52C + push {r4, lr} + mov r4, r0 + bl FUN_0207B7E4 + ldrh r1, [r4, #2] + mov r4, r0 + cmp r1, #0 + bne _0232A5C0 + ldr r0, _0232A5DC @ =0x0233C240 + ldr r0, [r0, #0x78] + cmp r0, #5 + addls pc, pc, r0, lsl #2 + b _0232A5D0 +_0232A55C: @ jump table + b _0232A574 @ case 0 + b _0232A574 @ case 1 + b _0232A5D0 @ case 2 + b _0232A5D0 @ case 3 + b _0232A57C @ case 4 + b _0232A5A0 @ case 5 +_0232A574: + bl ov01_0232AB28 + b _0232A5D0 +_0232A57C: + bl ov01_02329BC8 + bl ov01_0232AC00 + cmp r0, #0 + bne _0232A5D0 + ldr r0, _0232A5DC @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 + b _0232A5D0 +_0232A5A0: + bl ov01_0232AC78 + cmp r0, #0 + bne _0232A5D0 + ldr r0, _0232A5DC @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 + b _0232A5D0 +_0232A5C0: + ldr r0, _0232A5DC @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 +_0232A5D0: + mov r0, r4 + bl FUN_0207B7F8 + pop {r4, pc} + .align 2, 0 +_0232A5DC: .4byte 0x0233C240 + arm_func_end ov01_0232A52C + + arm_func_start ov01_0232A5E0 +ov01_0232A5E0: @ 0x0232A5E0 + push {r3, r4, r5, lr} + mov r5, r0 + bl FUN_0207B7E4 + ldrh r1, [r5, #2] + mov r4, r0 + cmp r1, #0 + bne _0232A6E8 + ldr r0, _0232A748 @ =0x0233C240 + ldr r1, [r0, #0x78] + cmp r1, #5 + addls pc, pc, r1, lsl #2 + b _0232A73C +_0232A610: @ jump table + b _0232A628 @ case 0 + b _0232A628 @ case 1 + b _0232A73C @ case 2 + b _0232A73C @ case 3 + b _0232A628 @ case 4 + b _0232A63C @ case 5 +_0232A628: + ldr r0, [r0, #0x7c] + cmp r0, #3 + beq _0232A73C + bl ov01_0232AB88 + b _0232A73C +_0232A63C: + ldrh r2, [r5, #8] + cmp r2, #9 + bgt _0232A664 + subs r1, r2, #6 + addpl pc, pc, r1, lsl #2 + b _0232A6CC +_0232A654: @ jump table + b _0232A73C @ case 0 + b _0232A670 @ case 1 + b _0232A73C @ case 2 + b _0232A6A4 @ case 3 +_0232A664: + cmp r2, #0x1a + beq _0232A73C + b _0232A6CC +_0232A670: + ldrh r1, [r5, #0xa] + strh r1, [r0, #8] + ldr r0, [r0, #0x7c] + cmp r0, #5 + beq _0232A73C + bl ov01_0232ACD8 + cmp r0, #0 + bne _0232A73C + ldr r0, _0232A748 @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 + b _0232A73C +_0232A6A4: + mov r1, #0 + str r1, [r0, #0x78] + ldr r0, [r0, #0x7c] + cmp r0, #3 + beq _0232A6BC + bl ov01_0232AB88 +_0232A6BC: + ldr r0, _0232A74C @ =0x0233C0C0 + mov r1, #1 + str r1, [r0, #8] + b _0232A73C +_0232A6CC: + ldr r0, _0232A748 @ =0x0233C240 + mov r1, #3 + str r1, [r0, #0x7c] + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 + b _0232A73C +_0232A6E8: + cmp r1, #0xb + bne _0232A708 + ldr r0, _0232A748 @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + ldrh r1, [r5, #2] + ldr r0, _0232A74C @ =0x0233C0C0 + str r1, [r0, #4] +_0232A708: + ldrh r0, [r5, #2] + cmp r0, #0xc + ldreq r0, _0232A748 @ =0x0233C240 + moveq r1, #5 + streq r1, [r0, #0x78] + beq _0232A738 + ldr r0, _0232A748 @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + ldrh r1, [r5, #2] + ldr r0, _0232A74C @ =0x0233C0C0 + str r1, [r0, #4] +_0232A738: + bl ov01_0232AB88 +_0232A73C: + mov r0, r4 + bl FUN_0207B7F8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0232A748: .4byte 0x0233C240 +_0232A74C: .4byte 0x0233C0C0 + arm_func_end ov01_0232A5E0 + + arm_func_start ov01_0232A750 +ov01_0232A750: @ 0x0232A750 + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + mov r6, r0 + bl FUN_0207B7E4 + ldrh r1, [r6, #2] + mov r4, r0 + cmp r1, #0 + bne _0232A87C + ldrh r0, [r6, #4] + mov r5, #0 + cmp r0, #0xa + beq _0232A78C + cmp r0, #0xb + cmpne r0, #0xc + b _0232A8A4 +_0232A78C: + ldr r0, _0232A8B4 @ =0x0233C240 + ldr r1, [r0, #0x78] + cmp r1, #5 + addls pc, pc, r1, lsl #2 + b _0232A8A4 +_0232A7A0: @ jump table + b _0232A7B8 @ case 0 + b _0232A7B8 @ case 1 + b _0232A8A4 @ case 2 + b _0232A8A4 @ case 3 + b _0232A7C0 @ case 4 + b _0232A7C0 @ case 5 +_0232A7B8: + bl ov01_0232AB88 + b _0232A8A4 +_0232A7C0: + ldr r1, [r0, #0x30] + cmp r1, #0 + beq _0232A844 + ldr r3, [r0, #0x4c] + ldrh r0, [r0, #4] + ldrh r1, [r3, #0x10] + mov ip, #1 + cmp r0, #1 + add r0, r1, #1 + lsl r0, ip, r0 + sub r0, r0, #1 + lsl r0, r0, #0x10 + movhi ip, r5 + lsr r2, r0, #0x10 + str ip, [sp] + ldr r0, _0232A8B4 @ =0x0233C240 + ldrh r3, [r3, #0x36] + ldr r0, [r0, #0x50] + mov r1, #0xc + bl FUN_022C0810 + cmp r0, #0 + movne r1, #0 + ldreq r0, _0232A8B4 @ =0x0233C240 + moveq r1, #1 + streq r1, [r0, #0x14] + cmp r1, #0 + movne r5, #1 + bne _0232A848 + ldr r0, _0232A8B4 @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 + b _0232A848 +_0232A844: + mov r5, #1 +_0232A848: + cmp r5, #0 + beq _0232A8A4 + ldr r0, _0232A8B4 @ =0x0233C240 + mov r1, #1 + str r1, [r0, #0x74] + ldr r1, [r0, #0x78] + str r1, [r0, #0x7c] + ldr r1, [r0, #0x18] + cmp r1, #0 + beq _0232A8A4 + mov r0, r6 + blx r1 + b _0232A8A4 +_0232A87C: + cmp r1, #9 + cmpne r1, #0xd + cmpne r1, #0xf + beq _0232A8A4 + ldr r0, _0232A8B4 @ =0x0233C240 + mov r1, #3 + str r1, [r0, #0x7c] + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 +_0232A8A4: + mov r0, r4 + bl FUN_0207B7F8 + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0232A8B4: .4byte 0x0233C240 + arm_func_end ov01_0232A750 + + arm_func_start ov01_0232A8B8 +ov01_0232A8B8: @ 0x0232A8B8 + push {r3, lr} + mov r1, r0 + ldr r0, _0232A8D8 @ =ov01_0232A8DC + bl FUN_022C1688 + cmp r0, #2 + moveq r0, #1 + movne r0, #0 + pop {r3, pc} + .align 2, 0 +_0232A8D8: .4byte ov01_0232A8DC + arm_func_end ov01_0232A8B8 + + arm_func_start ov01_0232A8DC +ov01_0232A8DC: @ 0x0232A8DC + push {r3, r4, r5, lr} + mov r5, r0 + bl FUN_0207B7E4 + ldrh r1, [r5, #2] + mov r4, r0 + cmp r1, #0 + bne _0232A914 + ldr r0, _0232A930 @ =0x0233C240 + ldr r1, [r0, #0x18] + cmp r1, #0 + beq _0232A924 + mov r0, r5 + blx r1 + b _0232A924 +_0232A914: + ldr r0, _0232A930 @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x78] + bl ov01_0232AB88 +_0232A924: + mov r0, r4 + bl FUN_0207B7F8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0232A930: .4byte 0x0233C240 + arm_func_end ov01_0232A8DC + + arm_func_start ov01_0232A934 +ov01_0232A934: @ 0x0232A934 + push {r3, r4, r5, lr} + mov r5, r0 + bl FUN_0207B7E4 + ldr r1, _0232A970 @ =0x0233C240 + mov r2, #1 + str r2, [r1, #0x74] + ldr r1, [r1, #0x18] + mov r4, r0 + cmp r1, #0 + beq _0232A964 + mov r0, r5 + blx r1 +_0232A964: + mov r0, r4 + bl FUN_0207B7F8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0232A970: .4byte 0x0233C240 + arm_func_end ov01_0232A934 + + arm_func_start ov01_0232A974 +ov01_0232A974: @ 0x0232A974 + push {r3, r4, r5, lr} + mov r5, r0 + bl FUN_0207B7E4 + ldrh r1, [r5, #2] + mov r4, r0 + cmp r1, #0 + bne _0232AA7C + ldrh r0, [r5, #4] + cmp r0, #0x15 + bgt _0232A9C0 + bge _0232A9C8 + cmp r0, #9 + bgt _0232AA7C + cmp r0, #7 + blt _0232AA7C + beq _0232AA7C + cmp r0, #9 + beq _0232AA24 + b _0232AA7C +_0232A9C0: + cmp r0, #0x1a + b _0232AA7C +_0232A9C8: + ldr r0, _0232AA88 @ =0x0233C240 + ldr r1, [r0, #0x7c] + cmp r1, #4 + beq _0232A9E4 + cmp r1, #5 + beq _0232AA04 + b _0232AA7C +_0232A9E4: + ldr r3, [r0, #0x2c] + cmp r3, #0 + beq _0232AA7C + ldrh r0, [r5, #0x12] + ldrh r2, [r5, #0x10] + ldr r1, [r5, #0xc] + blx r3 + b _0232AA7C +_0232AA04: + ldr r3, [r0, #0x2c] + cmp r3, #0 + beq _0232AA7C + ldrh r2, [r5, #0x10] + ldr r1, [r5, #0xc] + mov r0, #0 + blx r3 + b _0232AA7C +_0232AA24: + ldr r0, _0232AA88 @ =0x0233C240 + ldr r1, [r0, #0x7c] + cmp r1, #4 + beq _0232AA40 + cmp r1, #5 + beq _0232AA60 + b _0232AA7C +_0232AA40: + ldr r3, [r0, #0x2c] + cmp r3, #0 + beq _0232AA7C + ldrh r0, [r5, #0x12] + mov r1, #0 + mov r2, r1 + blx r3 + b _0232AA7C +_0232AA60: + ldr r3, [r0, #0x2c] + cmp r3, #0 + beq _0232AA7C + mov r0, #0 + mov r1, r0 + mov r2, r0 + blx r3 +_0232AA7C: + mov r0, r4 + bl FUN_0207B7F8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0232AA88: .4byte 0x0233C240 + arm_func_end ov01_0232A974 + + arm_func_start ov01_0232AA8C +ov01_0232AA8C: @ 0x0232AA8C + push {r3, lr} + ldr r0, _0232AAB4 @ =ov01_02329D2C + bl FUN_022BF9E0 + cmp r0, #2 + ldrne r0, _0232AAB8 @ =0x0233C240 + movne r1, #2 + strne r1, [r0, #0x7c] + movne r0, #0 + moveq r0, #1 + pop {r3, pc} + .align 2, 0 +_0232AAB4: .4byte ov01_02329D2C +_0232AAB8: .4byte 0x0233C240 + arm_func_end ov01_0232AA8C + + arm_func_start ov01_0232AABC +ov01_0232AABC: @ 0x0232AABC + push {r3, lr} + ldr r0, _0232AAE4 @ =ov01_02329DAC + bl FUN_022BFA54 + cmp r0, #2 + ldrne r0, _0232AAE8 @ =0x0233C240 + movne r1, #2 + strne r1, [r0, #0x7c] + movne r0, #0 + moveq r0, #1 + pop {r3, pc} + .align 2, 0 +_0232AAE4: .4byte ov01_02329DAC +_0232AAE8: .4byte 0x0233C240 + arm_func_end ov01_0232AABC + + arm_func_start ov01_0232AAEC +ov01_0232AAEC: @ 0x0232AAEC + push {r3, lr} + ldr r1, _0232AB20 @ =0x0233C240 + mov r2, #1 + ldr r0, _0232AB24 @ =ov01_02329E64 + str r2, [r1, #0x68] + bl FUN_022BFA94 + cmp r0, #2 + ldrne r0, _0232AB20 @ =0x0233C240 + movne r1, #2 + strne r1, [r0, #0x7c] + movne r0, #0 + moveq r0, #1 + pop {r3, pc} + .align 2, 0 +_0232AB20: .4byte 0x0233C240 +_0232AB24: .4byte ov01_02329E64 + arm_func_end ov01_0232AAEC + + arm_func_start ov01_0232AB28 +ov01_0232AB28: @ 0x0232AB28 + push {r3, lr} + ldr r0, _0232AB50 @ =ov01_02329FC8 + bl FUN_022BFAD4 + cmp r0, #2 + ldrne r0, _0232AB54 @ =0x0233C240 + movne r1, #2 + strne r1, [r0, #0x7c] + movne r0, #0 + moveq r0, #1 + pop {r3, pc} + .align 2, 0 +_0232AB50: .4byte ov01_02329FC8 +_0232AB54: .4byte 0x0233C240 + arm_func_end ov01_0232AB28 + + arm_func_start ov01_0232AB58 +ov01_0232AB58: @ 0x0232AB58 + push {r3, lr} + ldr r0, _0232AB80 @ =ov01_0232A048 + bl FUN_022BF2C4 + cmp r0, #0 + ldrne r0, _0232AB84 @ =0x0233C240 + movne r1, #2 + strne r1, [r0, #0x7c] + movne r0, #0 + moveq r0, #1 + pop {r3, pc} + .align 2, 0 +_0232AB80: .4byte ov01_0232A048 +_0232AB84: .4byte 0x0233C240 + arm_func_end ov01_0232AB58 + + arm_func_start ov01_0232AB88 +ov01_0232AB88: @ 0x0232AB88 + push {r3, lr} + ldr r0, _0232ABF8 @ =0x0233C240 + ldr r1, [r0, #0x14] + cmp r1, #0 + beq _0232ABBC + ldr r0, [r0, #0x50] + bl FUN_022C0A64 + cmp r0, #0 + movne r0, #0 + popne {r3, pc} + ldr r0, _0232ABF8 @ =0x0233C240 + mov r1, #0 + str r1, [r0, #0x14] +_0232ABBC: + ldr r0, _0232ABF8 @ =0x0233C240 + ldr r1, [r0, #0x7c] + cmp r1, #3 + cmpne r1, #2 + movne r1, #3 + strne r1, [r0, #0x7c] + ldr r0, _0232ABFC @ =ov01_0232A078 + bl FUN_022BFB9C + cmp r0, #2 + ldrne r0, _0232ABF8 @ =0x0233C240 + movne r1, #2 + strne r1, [r0, #0x7c] + movne r0, #0 + moveq r0, #1 + pop {r3, pc} + .align 2, 0 +_0232ABF8: .4byte 0x0233C240 +_0232ABFC: .4byte ov01_0232A078 + arm_func_end ov01_0232AB88 + + arm_func_start ov01_0232AC00 +ov01_0232AC00: @ 0x0232AC00 + push {r3, lr} + ldr r1, _0232AC24 @ =0x0233C240 + ldr r0, _0232AC28 @ =ov01_0232A194 + ldr r1, [r1, #0x20] + bl FUN_022BFC14 + cmp r0, #2 + moveq r0, #1 + movne r0, #0 + pop {r3, pc} + .align 2, 0 +_0232AC24: .4byte 0x0233C240 +_0232AC28: .4byte ov01_0232A194 + arm_func_end ov01_0232AC00 + + arm_func_start ov01_0232AC2C +ov01_0232AC2C: @ 0x0232AC2C + push {r3, lr} + ldr r1, _0232AC50 @ =0x0233C240 + ldr r0, _0232AC54 @ =ov01_0232A380 + ldr r1, [r1, #0x28] + bl FUN_022BFDEC + cmp r0, #2 + moveq r0, #1 + movne r0, #0 + pop {r3, pc} + .align 2, 0 +_0232AC50: .4byte 0x0233C240 +_0232AC54: .4byte ov01_0232A380 + arm_func_end ov01_0232AC2C + + arm_func_start ov01_0232AC58 +ov01_0232AC58: @ 0x0232AC58 + push {r3, lr} + ldr r0, _0232AC74 @ =ov01_0232A52C + bl FUN_022C0028 + cmp r0, #2 + moveq r0, #1 + movne r0, #0 + pop {r3, pc} + .align 2, 0 +_0232AC74: .4byte ov01_0232A52C + arm_func_end ov01_0232AC58 + + arm_func_start ov01_0232AC78 +ov01_0232AC78: @ 0x0232AC78 + push {r3, lr} + ldr r0, _0232ACCC @ =0x0233C0C0 + mov r2, #0 + ldr r1, [r0, #0x10] + mov r3, #1 + cmp r1, #0 + bne _0232ACAC + ldr r0, _0232ACD0 @ =0x0233C240 + str r2, [sp] + ldr r1, [r0, #0x6c] + ldr r0, _0232ACD4 @ =ov01_0232A5E0 + bl FUN_022C0068 + b _0232ACBC +_0232ACAC: + str r2, [sp] + ldr r1, [r0, #0x10] + ldr r0, _0232ACD4 @ =ov01_0232A5E0 + bl FUN_022C0068 +_0232ACBC: + cmp r0, #2 + movne r0, #0 + moveq r0, #1 + pop {r3, pc} + .align 2, 0 +_0232ACCC: .4byte 0x0233C0C0 +_0232ACD0: .4byte 0x0233C240 +_0232ACD4: .4byte ov01_0232A5E0 + arm_func_end ov01_0232AC78 + + arm_func_start ov01_0232ACD8 +ov01_0232ACD8: @ 0x0232ACD8 + push {r3, lr} + sub sp, sp, #8 + ldr r0, _0232AD54 @ =0x0233C240 + ldr r0, [r0, #0x30] + cmp r0, #0 + bne _0232AD0C + ldr r1, _0232AD58 @ =ov01_0232A974 + mov r0, #0xd + mov r2, #0 + bl FUN_022BF308 + cmp r0, #0 + movne r0, #0 + bne _0232AD4C +_0232AD0C: + ldr r3, _0232AD54 @ =0x0233C240 + mov r2, #1 + ldr r1, [r3, #0x34] + ldr r0, _0232AD5C @ =ov01_0232A750 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + stm sp, {r1, r2} + ldr r2, [r3, #0x44] + ldr r1, [r3, #0x48] + lsl r2, r2, #0x10 + ldr r3, [r3, #0x3c] + lsr r2, r2, #0x10 + bl FUN_022C0430 + cmp r0, #2 + movne r0, #0 + moveq r0, #1 +_0232AD4C: + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_0232AD54: .4byte 0x0233C240 +_0232AD58: .4byte ov01_0232A974 +_0232AD5C: .4byte ov01_0232A750 + arm_func_end ov01_0232ACD8 + + arm_func_start ov01_0232AD60 +ov01_0232AD60: @ 0x0232AD60 + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr r3, _0232ADB4 @ =0x0000FFFF + mov r2, r0 + str r3, [sp] + mov ip, #0xd + mov r3, r1 + str ip, [sp, #4] + mov ip, #2 + ldr r0, _0232ADB8 @ =ov01_0232A934 + mov r1, #0 + str ip, [sp, #8] + bl FUN_022C0498 + cmp r0, #2 + ldrne r0, _0232ADBC @ =0x0233C240 + movne r1, #1 + strne r1, [r0, #0x74] + movne r0, #0 + moveq r0, #1 + add sp, sp, #0xc + ldm sp!, {pc} + .align 2, 0 +_0232ADB4: .4byte 0x0000FFFF +_0232ADB8: .4byte ov01_0232A934 +_0232ADBC: .4byte 0x0233C240 + arm_func_end ov01_0232AD60 + + arm_func_start ov01_0232ADC0 +ov01_0232ADC0: @ 0x0232ADC0 + push {r4, lr} + mov r4, r0 + mov r0, #0x160 + mov r1, #0 + bl FUN_02001170 + ldr r2, _0232AEC0 @ =0x0233C0D8 + mov r1, #0x160 + str r0, [r2] + bl FUN_02003250 + ldr r0, _0232AEC4 @ =0x0233C580 + mov r1, #0x200 + bl FUN_02003250 + ldr r0, _0232AEC8 @ =0x0233C380 + mov r1, #0x200 + bl FUN_02003250 + ldr r2, _0232AEC0 @ =0x0233C0D8 + mov r3, #1 + ldr r1, [r2] + mov r0, #0 + add r1, r1, #0x100 + strh r3, [r1, #0x10] + ldr r1, [r2] + mov lr, #0x10 + str r0, [r1, #0x50] + ldr r1, [r2] + mov ip, #0x1e0 + str r0, [r1, #0x90] + ldr r1, [r2] + ldr r3, _0232AECC @ =0x00000708 + str r0, [r1, #0xd0] + ldr r1, [r2] + str r0, [r1, #0x14c] + ldr r1, [r2] + str lr, [r1, #0x150] + ldr r1, [r2] + str r0, [r1, #0x138] + ldr r1, [r2] + str r0, [r1, #0x148] + ldr r1, [r2] + str ip, [r1, #0x13c] + ldr r1, [r2] + str r3, [r1, #0x140] + ldr r1, [r2] + mov r3, r0 + str r0, [r1, #0x158] + b _0232AE88 +_0232AE78: + ldr r1, [r2] + add r1, r1, r0, lsl #2 + str r3, [r1, #0x114] + add r0, r0, #1 +_0232AE88: + cmp r0, #4 + blt _0232AE78 + bl ov01_0232C0CC + bl ov01_0232C2E4 + mov r0, r4 + bl ov01_0232C0A0 + ldr r2, _0232AED0 @ =0x0233C100 + mov r1, #0 + str r0, [r2, #8] + mov r0, r2 + mov r2, r1 + mov r3, #1 + bl ov01_0232965C + pop {r4, pc} + .align 2, 0 +_0232AEC0: .4byte 0x0233C0D8 +_0232AEC4: .4byte 0x0233C580 +_0232AEC8: .4byte 0x0233C380 +_0232AECC: .4byte 0x00000708 +_0232AED0: .4byte 0x0233C100 + arm_func_end ov01_0232ADC0 + + arm_func_start ov01_0232AED4 +ov01_0232AED4: @ 0x0232AED4 + push {r4, lr} + ldr r1, _0232AF38 @ =0x0233C0D8 + mov r4, r0 + ldr r1, [r1] + ldr r0, _0232AF3C @ =ov01_0232B600 + str r4, [r1, #0x18] + bl ov01_02329BB8 + cmp r4, #0 + bne _0232AF14 + ldr r2, _0232AF40 @ =ov01_0232B9E8 + mov r0, #0x100 + mov r1, #0x20 + bl FUN_022C2D60 + ldr r0, _0232AF44 @ =ov01_0232B8D0 + bl ov01_02329BA8 + b _0232AF24 +_0232AF14: + ldr r0, _0232AF40 @ =ov01_0232B9E8 + bl FUN_022C2E1C + ldr r0, _0232AF48 @ =ov01_0232B960 + bl ov01_02329BA8 +_0232AF24: + ldr r0, _0232AF38 @ =0x0233C0D8 + mov r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x15e] + pop {r4, pc} + .align 2, 0 +_0232AF38: .4byte 0x0233C0D8 +_0232AF3C: .4byte ov01_0232B600 +_0232AF40: .4byte ov01_0232B9E8 +_0232AF44: .4byte ov01_0232B8D0 +_0232AF48: .4byte ov01_0232B960 + arm_func_end ov01_0232AED4 + + arm_func_start ov01_0232AF4C +ov01_0232AF4C: @ 0x0232AF4C + push {r3, lr} + bl ov01_02329B18 + cmp r0, #5 + addls pc, pc, r0, lsl #2 + b _0232AFA8 +_0232AF60: @ jump table + b _0232AF78 @ case 0 + b _0232AF80 @ case 1 + b _0232AF88 @ case 2 + b _0232AF90 @ case 3 + b _0232AF98 @ case 4 + b _0232AFA0 @ case 5 +_0232AF78: + mov r0, #0 + pop {r3, pc} +_0232AF80: + mov r0, #1 + pop {r3, pc} +_0232AF88: + mov r0, #2 + pop {r3, pc} +_0232AF90: + mov r0, #3 + pop {r3, pc} +_0232AF98: + mov r0, #4 + pop {r3, pc} +_0232AFA0: + mov r0, #5 + pop {r3, pc} +_0232AFA8: + mov r0, #2 + pop {r3, pc} + arm_func_end ov01_0232AF4C + + arm_func_start ov01_0232AFB0 +ov01_0232AFB0: @ 0x0232AFB0 + ldr r0, _0232AFC0 @ =0x0233C0D8 + ldr r0, [r0] + ldrb r0, [r0, #0xf] + bx lr + .align 2, 0 +_0232AFC0: .4byte 0x0233C0D8 + arm_func_end ov01_0232AFB0 + + arm_func_start ov01_0232AFC4 +ov01_0232AFC4: @ 0x0232AFC4 + push {r3, lr} + ldr r0, _0232B008 @ =0x0233C0D8 + ldr r0, [r0] + ldr r0, [r0, #0x18] + cmp r0, #1 + bne _0232AFF8 + bl ov01_02329520 + cmp r0, #0 + ldrne r1, _0232B008 @ =0x0233C0D8 + movne r0, #1 + ldrne r1, [r1] + strbne r0, [r1, #0x11] + popne {r3, pc} +_0232AFF8: + ldr r0, _0232B008 @ =0x0233C0D8 + ldr r0, [r0] + ldrb r0, [r0, #0x11] + pop {r3, pc} + .align 2, 0 +_0232B008: .4byte 0x0233C0D8 + arm_func_end ov01_0232AFC4 + + arm_func_start ov01_0232B00C +ov01_0232B00C: @ 0x0232B00C + ldr r0, _0232B01C @ =0x0233C0D8 + ldr r0, [r0] + ldrb r0, [r0, #0x13] + bx lr + .align 2, 0 +_0232B01C: .4byte 0x0233C0D8 + arm_func_end ov01_0232B00C + + arm_func_start ov01_0232B020 +ov01_0232B020: @ 0x0232B020 + ldr r1, _0232B03C @ =0x0233C0D8 + mov r3, #0 + ldr r2, [r1] + strb r3, [r2, #0xe] + ldr r1, [r1] + str r0, [r1, #0x13c] + bx lr + .align 2, 0 +_0232B03C: .4byte 0x0233C0D8 + arm_func_end ov01_0232B020 + + arm_func_start ov01_0232B040 +ov01_0232B040: @ 0x0232B040 + push {r3, lr} + ldr r1, _0232B064 @ =0x0233C0D8 + mov r2, #0 + ldr r1, [r1] + cmp r0, #0 + strb r2, [r1, #0x11] + popeq {r3, pc} + bl ov01_02329530 + pop {r3, pc} + .align 2, 0 +_0232B064: .4byte 0x0233C0D8 + arm_func_end ov01_0232B040 + + arm_func_start ov01_0232B068 +ov01_0232B068: @ 0x0232B068 + ldr r0, _0232B07C @ =0x0233C0D8 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x13] + bx lr + .align 2, 0 +_0232B07C: .4byte 0x0233C0D8 + arm_func_end ov01_0232B068 + + arm_func_start ov01_0232B080 +ov01_0232B080: @ 0x0232B080 + push {r3, lr} + ldr r0, _0232B120 @ =0x0233C0D8 + mov r2, #0 + ldr r1, [r0] + strb r2, [r1, #8] + ldr r1, [r0] + strb r2, [r1, #9] + ldr r1, [r0] + strb r2, [r1, #0xa] + ldr r1, [r0] + strb r2, [r1, #0xb] + ldr r1, [r0] + strb r2, [r1, #0xc] + ldr r1, [r0] + strb r2, [r1, #0xd] + ldr r1, [r0] + strb r2, [r1, #0xe] + ldr r1, [r0] + strb r2, [r1, #0xf] + ldr r1, [r0] + strb r2, [r1, #0x10] + ldr r0, [r0] + strb r2, [r0, #0x11] + bl ov01_02329530 + ldr r0, _0232B120 @ =0x0233C0D8 + mov r2, #0 + ldr r1, [r0] + strb r2, [r1, #0x12] + ldr r1, [r0] + strb r2, [r1, #0x13] + ldr r0, [r0] + strb r2, [r0, #0x14] + bl ov01_0232957C + ldr r0, _0232B120 @ =0x0233C0D8 + mov r2, #0 + ldr r1, [r0] + strb r2, [r1, #0x15] + ldr r0, [r0] + strb r2, [r0, #0x16] + pop {r3, pc} + .align 2, 0 +_0232B120: .4byte 0x0233C0D8 + arm_func_end ov01_0232B080 + + arm_func_start ov01_0232B124 +ov01_0232B124: @ 0x0232B124 + push {r4, r5, r6, lr} + mov r6, r0 + mov r0, #2 + mov r5, r1 + mov r4, r2 + bl ov01_0232C1D8 + ldr r0, _0232B188 @ =0x0233C0D8 + ldr r0, [r0] + ldr r0, [r0, #0x18] + cmp r0, #0 + bne _0232B160 + mov r0, r6 + mov r1, r5 + bl ov01_023298E8 + b _0232B168 +_0232B160: + mov r0, r4 + bl ov01_0232999C +_0232B168: + ldr r0, _0232B188 @ =0x0233C0D8 + mov r3, #1 + ldr r2, [r0] + mov r1, #0x3c + strb r3, [r2, #0x10] + ldr r0, [r0] + str r1, [r0, #0x144] + pop {r4, r5, r6, pc} + .align 2, 0 +_0232B188: .4byte 0x0233C0D8 + arm_func_end ov01_0232B124 + + arm_func_start ov01_0232B18C +ov01_0232B18C: @ 0x0232B18C + push {r3, lr} + ldr r0, _0232B200 @ =0x0233C0D8 + ldr r1, [r0] + ldrb r0, [r1, #0x15e] + cmp r0, #0 + beq _0232B1E8 + ldr r0, [r1, #0x18] + cmp r0, #0 + bne _0232B1C8 + ldr r0, _0232B204 @ =0x0233C380 + mov r1, #0x100 + bl FUN_022C2F20 + ldr r0, _0232B208 @ =0x0000FFFF + bl FUN_022C324C + b _0232B1DC +_0232B1C8: + ldr r0, _0232B204 @ =0x0233C380 + mov r1, #0x20 + bl FUN_022C2F44 + mov r0, #1 + bl FUN_022C324C +_0232B1DC: + ldr r0, _0232B20C @ =0x0000044C + bl FUN_022C2FF0 + bl FUN_022C2EAC +_0232B1E8: + ldr r0, _0232B200 @ =0x0233C0D8 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x15e] + bl ov01_02329AA8 + pop {r3, pc} + .align 2, 0 +_0232B200: .4byte 0x0233C0D8 +_0232B204: .4byte 0x0233C380 +_0232B208: .4byte 0x0000FFFF +_0232B20C: .4byte 0x0000044C + arm_func_end ov01_0232B18C + + arm_func_start ov01_0232B210 +ov01_0232B210: @ 0x0232B210 + push {r4, lr} + ldr r1, _0232B264 @ =0x0233C0D8 + mov r4, r0 + ldr r1, [r1] + ldrb r0, [r1, #0x15e] + cmp r0, #0 + beq _0232B24C + ldr r0, [r1, #0x18] + cmp r0, #0 + bne _0232B244 + ldr r0, _0232B268 @ =0x0000FFFF + bl FUN_022C324C + b _0232B24C +_0232B244: + mov r0, #1 + bl FUN_022C324C +_0232B24C: + cmp r4, #0 + beq _0232B25C + bl ov01_02329544 + pop {r4, pc} +_0232B25C: + bl ov01_02329A38 + pop {r4, pc} + .align 2, 0 +_0232B264: .4byte 0x0233C0D8 +_0232B268: .4byte 0x0000FFFF + arm_func_end ov01_0232B210 + + arm_func_start ov01_0232B26C +ov01_0232B26C: @ 0x0232B26C + push {r3, lr} + sub sp, sp, #0x7d0 + add r0, sp, #0 + bl FUN_022BF3E0 + ldr r0, _0232B2C8 @ =0x0233C0D8 + ldr r0, [r0] + ldr r0, [r0, #0x18] + cmp r0, #0 + ldrheq r0, [sp] + cmpeq r0, #9 + beq _0232B2B4 + ldr r0, _0232B2C8 @ =0x0233C0D8 + ldr r0, [r0] + ldr r0, [r0, #0x18] + cmp r0, #1 + ldrheq r0, [sp] + cmpeq r0, #5 + bne _0232B2BC +_0232B2B4: + mov r0, #1 + b _0232B2C0 +_0232B2BC: + mov r0, #0 +_0232B2C0: + add sp, sp, #0x7d0 + pop {r3, pc} + .align 2, 0 +_0232B2C8: .4byte 0x0233C0D8 + arm_func_end ov01_0232B26C + + arm_func_start ov01_0232B2CC +ov01_0232B2CC: @ 0x0232B2CC + push {r3, lr} + ldr r0, _0232B370 @ =0x0233C0D8 + ldr r1, [r0] + ldrb r0, [r1, #0x15e] + cmp r0, #0 + beq _0232B30C + ldr r0, [r1, #0x18] + cmp r0, #0 + bne _0232B300 + ldr r0, _0232B374 @ =0x0233C380 + mov r1, #0x100 + bl FUN_022C2F20 + b _0232B30C +_0232B300: + ldr r0, _0232B374 @ =0x0233C380 + mov r1, #0x20 + bl FUN_022C2F44 +_0232B30C: + bl ov01_02329544 + ldr r0, _0232B370 @ =0x0233C0D8 + ldr r0, [r0] + ldrb r0, [r0, #0x15e] + cmp r0, #0 + beq _0232B338 + ldr r0, _0232B378 @ =0x0000FFFF + bl FUN_022C324C + ldr r0, _0232B37C @ =0x0000044C + bl FUN_022C2FF0 + bl FUN_022C2EAC +_0232B338: + ldr r0, _0232B370 @ =0x0233C0D8 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x15e] + bl ov01_02329830 + bl ov01_0232C370 + bl ov01_0232C10C + ldr r0, _0232B370 @ =0x0233C0D8 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0232B370 @ =0x0233C0D8 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0232B370: .4byte 0x0233C0D8 +_0232B374: .4byte 0x0233C380 +_0232B378: .4byte 0x0000FFFF +_0232B37C: .4byte 0x0000044C + arm_func_end ov01_0232B2CC + + arm_func_start ov01_0232B380 +ov01_0232B380: @ 0x0232B380 + push {r3, lr} + bl FUN_022BF660 + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _0232B3C4 +_0232B394: @ jump table + b _0232B3A4 @ case 0 + b _0232B3AC @ case 1 + b _0232B3B4 @ case 2 + b _0232B3BC @ case 3 +_0232B3A4: + mov r0, #0 + pop {r3, pc} +_0232B3AC: + mov r0, #1 + pop {r3, pc} +_0232B3B4: + mov r0, #2 + pop {r3, pc} +_0232B3BC: + mov r0, #3 + pop {r3, pc} +_0232B3C4: + mov r0, #0 + pop {r3, pc} + arm_func_end ov01_0232B380 + + arm_func_start ov01_0232B3CC +ov01_0232B3CC: @ 0x0232B3CC + push {r3, lr} + ldr r0, _0232B41C @ =0x0233C0D8 + ldr r0, [r0] + ldrb r0, [r0, #0x10] + cmp r0, #0 + popeq {r3, pc} + bl ov01_0232B380 + ldr r1, _0232B41C @ =0x0233C0D8 + ldr r2, [r1] + str r0, [r2, #0x14c] + ldr r0, [r1] + ldr r0, [r0, #0x14c] + add r0, r0, #2 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl ov01_0232C1D8 + mov r0, #0 + mov r1, r0 + bl ov01_0232C454 + pop {r3, pc} + .align 2, 0 +_0232B41C: .4byte 0x0233C0D8 + arm_func_end ov01_0232B3CC + + arm_func_start ov01_0232B420 +ov01_0232B420: @ 0x0232B420 + push {r4, r5, r6, lr} + sub sp, sp, #8 + movs r5, r2 + cmpeq r0, #0 + mov r4, r3 + moveq r0, #0 + beq _0232B528 + cmp r4, #0 + cmple r1, #0 + movle r0, #0 + ble _0232B528 + cmp r1, #0 + ble _0232B498 + ldr ip, _0232B530 @ =0x0233C0D8 + mov lr, #0 + ldr r3, [ip] + ldr r2, _0232B534 @ =0x0233AE78 + str r0, [r3] + ldr r6, [ip] + mov r3, r0 + add r0, r6, #0x100 + strh r1, [r0, #0x30] + stm sp, {r1, lr} + ldr r0, [ip] + ldr r1, _0232B538 @ =0x0000044C + add r0, r0, #0x1c + bl FUN_022C2FAC + tst r0, #0xff + moveq r0, #0 + beq _0232B528 +_0232B498: + cmp r4, #0 + ble _0232B4B8 + ldr r0, _0232B530 @ =0x0233C0D8 + ldr r1, [r0] + str r5, [r1, #4] + ldr r0, [r0] + add r0, r0, #0x100 + strh r4, [r0, #0x32] +_0232B4B8: + ldr r0, _0232B530 @ =0x0233C0D8 + ldr r1, [r0] + ldr r0, [r1, #0x18] + cmp r0, #0 + moveq r0, #1 + strbeq r0, [r1, #0xb] + beq _0232B528 + bl ov01_02329B28 + bl FUN_022C2EF0 + ldr r0, _0232B530 @ =0x0233C0D8 + ldr r1, _0232B53C @ =ov01_0232B9E8 + ldr r0, [r0] + add r0, r0, #0x100 + ldrh r0, [r0, #0x10] + bl FUN_022C3008 + cmp r0, #0 + beq _0232B518 + ldr r0, _0232B530 @ =0x0233C0D8 + mov r1, #1 + ldr r0, [r0] + strb r1, [r0, #0xb] + bl ov01_0232BD98 + mov r0, #1 + b _0232B528 +_0232B518: + mov r0, #1 + bl FUN_022C324C + bl FUN_022C2D18 + mov r0, #0 +_0232B528: + add sp, sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 +_0232B530: .4byte 0x0233C0D8 +_0232B534: .4byte 0x0233AE78 +_0232B538: .4byte 0x0000044C +_0232B53C: .4byte ov01_0232B9E8 + arm_func_end ov01_0232B420 + + arm_func_start ov01_0232B540 +ov01_0232B540: @ 0x0232B540 + push {r4, r5, lr} + sub sp, sp, #0xc + mov r5, r0 + mov r4, r1 + cmp r5, #4 + mov r0, #0 + bhs _0232B5C0 + ldr r1, _0232B5C8 @ =0x0233C0D8 + ldr r3, [r1] + ldrb r1, [r3, #0xb] + cmp r1, #0 + beq _0232B5C0 + ldrb r1, [r3, #0x13] + cmp r1, #0 + bne _0232B5C0 + cmp r4, #8 + bhi _0232B5C0 + mov r1, r2 + add r0, sp, #1 + mov r2, r4 + bl FUN_020032D4 + ldr r0, _0232B5C8 @ =0x0233C0D8 + add r1, r5, #1 + ldr r0, [r0] + strb r1, [sp] + add r0, r0, #0x100 + ldrh r0, [r0, #0x10] + ldr r3, _0232B5CC @ =0x0232B8A8 + add r1, sp, #0 + add r2, r4, #1 + bl FUN_022C31D4 + and r0, r0, #0xff +_0232B5C0: + add sp, sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_0232B5C8: .4byte 0x0233C0D8 +_0232B5CC: .4byte 0x0232B8A8 + arm_func_end ov01_0232B540 + + arm_func_start ov01_0232B5D0 +ov01_0232B5D0: @ 0x0232B5D0 + ldr r2, _0232B5FC @ =0x0233C0D8 + ldr r2, [r2] + cmp r2, #0 + beq _0232B5F4 + cmp r0, #4 + addlo r0, r2, r0, lsl #2 + strlo r1, [r0, #0x114] + movlo r0, #1 + bxlo lr +_0232B5F4: + mov r0, #0 + bx lr + .align 2, 0 +_0232B5FC: .4byte 0x0233C0D8 + arm_func_end ov01_0232B5D0 + + arm_func_start ov01_0232B600 +ov01_0232B600: @ 0x0232B600 + push {r4, lr} + mov r4, r0 + bl ov01_02329B18 + ldr r1, _0232B8A0 @ =0x0233C0D8 + ldr r3, [r1] + cmp r3, #0 + popeq {r4, pc} + ldrh r2, [r4] + cmp r2, #0xf + bgt _0232B64C + cmp r2, #0xe + blt _0232B640 + beq _0232B658 + cmp r2, #0xf + beq _0232B6A8 + b _0232B884 +_0232B640: + cmp r2, #8 + beq _0232B7B0 + b _0232B884 +_0232B64C: + cmp r2, #0x21 + beq _0232B828 + b _0232B884 +_0232B658: + ldrh r1, [r4, #4] + cmp r1, #7 + cmpne r1, #0xa + bne _0232B884 + cmp r0, #5 + bne _0232B884 + ldr r0, _0232B8A0 @ =0x0233C0D8 + mov r3, #1 + ldr r1, [r0] + mov r2, #0 + strb r3, [r1, #8] + ldr r1, [r0] + strb r3, [r1, #9] + ldr r1, [r0] + strb r3, [r1, #0xf] + ldr r1, [r0] + strb r2, [r1, #0x15c] + ldr r0, [r0] + strb r2, [r0, #0x15d] + b _0232B884 +_0232B6A8: + ldrh r2, [r4, #2] + cmp r2, #0 + beq _0232B6C8 + cmp r2, #9 + beq _0232B788 + cmp r2, #0xf + beq _0232B730 + b _0232B79C +_0232B6C8: + mov r2, #1 + strb r2, [r3, #0x15] + ldr r2, [r1] + mov r3, #0 + strb r3, [r2, #0xd] + ldr r2, [r1] + strb r3, [r2, #0x15c] + ldr r2, [r1] + ldrb r1, [r2, #0xb] + cmp r1, #1 + bne _0232B884 + ldrb r1, [r2, #0x15d] + cmp r1, #0 + beq _0232B884 + cmp r0, #4 + bne _0232B710 + bl ov01_0232BD54 + b _0232B71C +_0232B710: + cmp r0, #5 + bne _0232B71C + bl ov01_0232BD98 +_0232B71C: + ldr r0, _0232B8A0 @ =0x0233C0D8 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x15d] + b _0232B884 +_0232B730: + ldrb r1, [r3, #0xb] + cmp r1, #1 + bne _0232B75C + cmp r0, #4 + bne _0232B74C + bl ov01_0232BD54 + b _0232B884 +_0232B74C: + cmp r0, #5 + bne _0232B884 + bl ov01_0232BD98 + b _0232B884 +_0232B75C: + ldr r0, [r3, #0x18] + cmp r0, #0 + add r0, r3, #0x100 + ldrh r1, [r0, #0x2c] + bne _0232B77C + ldr r0, _0232B8A4 @ =0x0233C380 + bl ov01_02329B38 + b _0232B884 +_0232B77C: + ldr r0, _0232B8A4 @ =0x0233C380 + bl ov01_02329B70 + b _0232B884 +_0232B788: + str r2, [r3, #0x154] + ldr r0, [r1] + mov r1, #1 + strb r1, [r0, #0x14] + b _0232B884 +_0232B79C: + str r2, [r3, #0x154] + ldr r0, [r1] + mov r1, #1 + strb r1, [r0, #0x14] + b _0232B884 +_0232B7B0: + cmp r0, #4 + bne _0232B884 + ldrh r0, [r4, #8] + cmp r0, #7 + beq _0232B7D0 + cmp r0, #9 + beq _0232B7F0 + b _0232B884 +_0232B7D0: + mov r0, #0 + bl ov01_0232A8B8 + cmp r0, #0 + ldreq r0, _0232B8A0 @ =0x0233C0D8 + moveq r1, #0xc + ldreq r0, [r0] + streq r1, [r0, #0x158] + b _0232B884 +_0232B7F0: + mov ip, #1 + strb ip, [r3, #0x11] + ldr r0, [r1] + ldrh r2, [r4, #0x10] + add r0, r0, #0x100 + ldrh r3, [r0, #0x24] + mvn r2, ip, lsl r2 + and r2, r3, r2 + strh r2, [r0, #0x24] + ldr r0, [r1] + add r0, r0, #0x100 + ldrh r1, [r0, #0x24] + strh r1, [r0, #0x10] + b _0232B884 +_0232B828: + cmp r0, #4 + bne _0232B884 + mov lr, #1 + strb lr, [r3, #8] + ldr r0, [r1] + mov r2, #0 + strb lr, [r0, #9] + ldr r0, [r1] + strb lr, [r0, #0xf] + ldr r0, [r1] + ldrh r3, [r4, #0x10] + add r0, r0, #0x100 + ldrh ip, [r0, #0x24] + orr r3, ip, lr, lsl r3 + strh r3, [r0, #0x24] + ldr r0, [r1] + add r0, r0, #0x100 + ldrh r3, [r0, #0x24] + strh r3, [r0, #0x10] + ldr r0, [r1] + strb r2, [r0, #0x15c] + ldr r0, [r1] + strb r2, [r0, #0x15d] +_0232B884: + ldrh r0, [r4, #8] + cmp r0, #9 + ldreq r0, _0232B8A0 @ =0x0233C0D8 + moveq r1, #1 + ldreq r0, [r0] + strbeq r1, [r0, #0x11] + pop {r4, pc} + .align 2, 0 +_0232B8A0: .4byte 0x0233C0D8 +_0232B8A4: .4byte 0x0233C380 + arm_func_end ov01_0232B600 +_0232B8A8: + .byte 0x1C, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5 + .byte 0x00, 0x00, 0x52, 0xE3, 0x01, 0x10, 0xA0, 0x13, 0x15, 0x10, 0xC2, 0x15, 0x00, 0x00, 0x90, 0x15 + .byte 0x00, 0x10, 0xA0, 0x13, 0x0D, 0x10, 0xC0, 0x15, 0x1E, 0xFF, 0x2F, 0xE1, 0xD8, 0xC0, 0x33, 0x02 + + arm_func_start ov01_0232B8D0 +ov01_0232B8D0: @ 0x0232B8D0 + push {r3, lr} + ldr r3, _0232B958 @ =0x0233C0D8 + mov ip, r0 + ldr r3, [r3] + cmp r3, #0 + cmpne r1, #0 + popeq {r3, pc} + ldrb r0, [r3, #0xb] + cmp r0, #0 + beq _0232B92C + mov r0, r1 + mov r1, r2 + mov r2, ip + bl FUN_022C2F68 + ldr r0, _0232B958 @ =0x0233C0D8 + ldr r1, [r0] + ldrb r0, [r1, #0x15c] + cmp r0, #0 + movne r0, #1 + strbne r0, [r1, #0x15d] + popne {r3, pc} + bl ov01_0232BD54 + pop {r3, pc} +_0232B92C: + mov r0, #1 + strb r0, [r3, #0x12] + ldr r3, _0232B958 @ =0x0233C0D8 + cmp r2, #0x200 + ldr r3, [r3] + ldr r0, _0232B95C @ =0x0233C580 + movhi r2, #0x200 + add r3, r3, #0x100 + strh r2, [r3, #0x2e] + bl FUN_020032D4 + pop {r3, pc} + .align 2, 0 +_0232B958: .4byte 0x0233C0D8 +_0232B95C: .4byte 0x0233C580 + arm_func_end ov01_0232B8D0 + + arm_func_start ov01_0232B960 +ov01_0232B960: @ 0x0232B960 + push {r3, lr} + ldr r0, _0232B9E0 @ =0x0233C0D8 + ldr r3, [r0] + cmp r3, #0 + cmpne r1, #0 + popeq {r3, pc} + ldrb r0, [r3, #0xb] + cmp r0, #0 + beq _0232B9B4 + mov r0, r1 + mov r1, r2 + bl FUN_022C2F8C + ldr r0, _0232B9E0 @ =0x0233C0D8 + ldr r1, [r0] + ldrb r0, [r1, #0x15c] + cmp r0, #0 + movne r0, #1 + strbne r0, [r1, #0x15d] + popne {r3, pc} + bl ov01_0232BD98 + pop {r3, pc} +_0232B9B4: + mov r0, #1 + strb r0, [r3, #0x12] + ldr r3, _0232B9E0 @ =0x0233C0D8 + cmp r2, #0x200 + ldr r3, [r3] + ldr r0, _0232B9E4 @ =0x0233C580 + movhi r2, #0x200 + add r3, r3, #0x100 + strh r2, [r3, #0x2e] + bl FUN_020032D4 + pop {r3, pc} + .align 2, 0 +_0232B9E0: .4byte 0x0233C0D8 +_0232B9E4: .4byte 0x0233C580 + arm_func_end ov01_0232B960 + + arm_func_start ov01_0232B9E8 +ov01_0232B9E8: @ 0x0232B9E8 + push {r4, r5, lr} + sub sp, sp, #0xc + mov r5, r0 + ldrh r0, [r5, #0xa] + mov r4, #0 + bl FUN_022C2D3C + ldr r0, _0232BD3C @ =0x0233C0D8 + ldr r0, [r0] + cmp r0, #0 + beq _0232BD34 + mov r3, r4 + add r0, r0, #0x100 + mov r1, #1 + b _0232BA34 +_0232BA20: + ldrh r2, [r0, #0x10] + tst r2, r1, lsl r3 + movne r4, r3 + bne _0232BA3C + add r3, r3, #1 +_0232BA34: + cmp r3, #0x10 + blt _0232BA20 +_0232BA3C: + ldr r0, [r5, #4] + cmp r0, #0xb + addls pc, pc, r0, lsl #2 + b _0232BD34 +_0232BA4C: @ jump table + b _0232BD34 @ case 0 + b _0232BD34 @ case 1 + b _0232BD34 @ case 2 + b _0232BA7C @ case 3 + b _0232BD34 @ case 4 + b _0232BBE4 @ case 5 + b _0232BD34 @ case 6 + b _0232BB68 @ case 7 + b _0232BC8C @ case 8 + b _0232BD34 @ case 9 + b _0232BCB0 @ case 10 + b _0232BD34 @ case 11 +_0232BA7C: + ldr r0, _0232BD3C @ =0x0233C0D8 + ldr r3, [r0] + ldr r1, [r3, #0x18] + cmp r1, #1 + bne _0232BB28 + ldrsh r1, [r5, #0x14] + cmp r1, #0 + ble _0232BADC + ldr r2, _0232BD40 @ =0x0233C2C0 + add r1, r3, r4, lsl #2 + str r2, [r1, #0x50] + ldr r1, [r0] + ldr r3, _0232BD44 @ =ov01_0232B9E8 + add r0, r1, #0x100 + ldrh r0, [r0, #0x10] + add r2, r1, #0x50 + mov r1, #0 + bl FUN_022C306C + cmp r0, #0 + ldreq r0, _0232BD3C @ =0x0233C0D8 + moveq r1, #1 + ldreq r0, [r0] + strbeq r1, [r0, #0x14] + b _0232BD34 +_0232BADC: + add r0, r3, #0x100 + ldrh r1, [r0, #0x30] + cmp r1, #0 + beq _0232BD34 + mov r2, #0 + mov r1, #1 + strb r2, [sp, #0xa] + strb r1, [sp, #0xb] + ldrh r0, [r0, #0x10] + ldr r3, _0232BD48 @ =0x0232B8A8 + add r1, sp, #0xa + mov r2, #2 + bl FUN_022C31D4 + cmp r0, #0 + ldreq r0, _0232BD3C @ =0x0233C0D8 + moveq r1, #1 + ldreq r0, [r0] + strbeq r1, [r0, #0x14] + b _0232BD34 +_0232BB28: + ldr r2, _0232BD40 @ =0x0233C2C0 + add r1, r3, r4, lsl #2 + str r2, [r1, #0x50] + ldr r1, [r0] + ldr r3, _0232BD44 @ =ov01_0232B9E8 + add r0, r1, #0x100 + ldrh r0, [r0, #0x10] + add r2, r1, #0x50 + mov r1, #0 + bl FUN_022C306C + cmp r0, #0 + ldreq r0, _0232BD3C @ =0x0233C0D8 + moveq r1, #1 + ldreq r0, [r0] + strbeq r1, [r0, #0x14] + b _0232BD34 +_0232BB68: + ldr r0, _0232BD3C @ =0x0233C0D8 + ldr r3, _0232BD4C @ =0x0233C300 + ldr r2, [r0] + ldr r1, _0232BD44 @ =ov01_0232B9E8 + ldr r5, [r2, #4] + add r2, r2, r4, lsl #2 + str r5, [r2, #0x90] + ldr r2, [r0] + add r2, r2, r4, lsl #2 + str r3, [r2, #0xd0] + ldr r2, [r0] + add r2, r2, #0xd0 + str r2, [sp] + str r1, [sp, #4] + ldr r5, [r0] + add r0, r5, r4, lsl #2 + ldr r2, [r0, #0x50] + add r0, r5, #0x100 + ldm r2, {r1, r3} + ldrh r0, [r0, #0x10] + add r2, r5, #0x90 + bl FUN_022C3110 + cmp r0, #0 + bne _0232BD34 + ldr r1, _0232BD3C @ =0x0233C0D8 + ldr r0, _0232BD50 @ =0x0000044C + ldr r1, [r1] + mov r2, #1 + strb r2, [r1, #0x14] + bl FUN_022C2FF0 + b _0232BD34 +_0232BBE4: + ldr r1, _0232BD3C @ =0x0233C0D8 + ldr r3, [r1] + add r0, r3, r4, lsl #2 + ldr r2, [r0, #0x50] + add r0, r3, #0x100 + ldr r2, [r2, #4] + strh r2, [r0, #0x34] + ldr r1, [r1] + ldr r0, [r1, #0x18] + cmp r0, #1 + bne _0232BC80 + mov r2, #0 + add r0, r1, #0x100 + strb r2, [sp, #8] + ldrh r0, [r0, #0x30] + ldr r3, _0232BD48 @ =0x0232B8A8 + add r1, sp, #8 + cmp r0, #0 + ldr r0, _0232BD3C @ =0x0233C0D8 + movne r2, #1 + ldr r0, [r0] + strb r2, [sp, #9] + add r0, r0, #0x100 + ldrh r0, [r0, #0x10] + mov r2, #2 + bl FUN_022C31D4 + cmp r0, #0 + ldreq r0, _0232BD3C @ =0x0233C0D8 + moveq r1, #1 + ldreq r0, [r0] + strbeq r1, [r0, #0x14] + ldr r0, _0232BD3C @ =0x0233C0D8 + ldr r1, [r0] + add r0, r1, #0x100 + ldrh r0, [r0, #0x30] + cmp r0, #0 + moveq r0, #1 + strbeq r0, [r1, #0x13] + b _0232BD34 +_0232BC80: + mov r0, #1 + strb r0, [r1, #0x13] + b _0232BD34 +_0232BC8C: + ldr r0, [r5, #0x14] + bl FUN_022C2FF0 + ldr r0, _0232BD3C @ =0x0233C0D8 + ldr r1, [r0] + ldr r0, [r1, #0x18] + cmp r0, #1 + moveq r0, #1 + strbeq r0, [r1, #0x13] + b _0232BD34 +_0232BCB0: + ldrb r1, [r5, #0x14] + cmp r1, #0 + bne _0232BCF4 + ldrb r0, [r5, #0x15] + cmp r0, #0 + ldreq r0, _0232BD3C @ =0x0233C0D8 + moveq r1, #1 + ldreq r0, [r0] + strbeq r1, [r0, #0x13] + beq _0232BD34 + ldr r0, _0232BD3C @ =0x0233C0D8 + ldr r1, _0232BD44 @ =ov01_0232B9E8 + ldr r0, [r0] + add r0, r0, #0x100 + ldrh r0, [r0, #0x10] + bl FUN_022C3008 + b _0232BD34 +_0232BCF4: + cmp r1, #1 + blo _0232BD34 + cmp r1, #5 + bhs _0232BD34 + ldr r0, _0232BD3C @ =0x0233C0D8 + sub r1, r1, #1 + ldr r0, [r0] + add r0, r0, r1, lsl #2 + ldr r2, [r0, #0x114] + cmp r2, #0 + beq _0232BD34 + ldrb r0, [r5, #0x1d] + add r1, r5, #0x15 + sub r0, r0, #1 + and r0, r0, #0xff + blx r2 +_0232BD34: + add sp, sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_0232BD3C: .4byte 0x0233C0D8 +_0232BD40: .4byte 0x0233C2C0 +_0232BD44: .4byte ov01_0232B9E8 +_0232BD48: .4byte 0x0232B8A8 +_0232BD4C: .4byte 0x0233C300 +_0232BD50: .4byte 0x0000044C + arm_func_end ov01_0232B9E8 + + arm_func_start ov01_0232BD54 +ov01_0232BD54: @ 0x0232BD54 + push {r3, lr} + ldr r0, _0232BD90 @ =0x0233C0D8 + ldr r3, [r0] + cmp r3, #0 + popeq {r3, pc} + ldr r0, _0232BD94 @ =0x0233C380 + mov r2, #1 + mov r1, #0x100 + strb r2, [r3, #0x15c] + bl FUN_022C2F20 + lsl r1, r0, #0x10 + ldr r0, _0232BD94 @ =0x0233C380 + lsr r1, r1, #0x10 + bl ov01_02329B38 + pop {r3, pc} + .align 2, 0 +_0232BD90: .4byte 0x0233C0D8 +_0232BD94: .4byte 0x0233C380 + arm_func_end ov01_0232BD54 + + arm_func_start ov01_0232BD98 +ov01_0232BD98: @ 0x0232BD98 + push {r3, lr} + ldr r0, _0232BDD4 @ =0x0233C0D8 + ldr r3, [r0] + cmp r3, #0 + popeq {r3, pc} + ldr r0, _0232BDD8 @ =0x0233C380 + mov r2, #1 + mov r1, #0x20 + strb r2, [r3, #0x15c] + bl FUN_022C2F44 + lsl r1, r0, #0x10 + ldr r0, _0232BDD8 @ =0x0233C380 + lsr r1, r1, #0x10 + bl ov01_02329B70 + pop {r3, pc} + .align 2, 0 +_0232BDD4: .4byte 0x0233C0D8 +_0232BDD8: .4byte 0x0233C380 + arm_func_end ov01_0232BD98 + + arm_func_start ov01_0232BDDC +ov01_0232BDDC: @ 0x0232BDDC + ldr r0, _0232BDEC @ =0x0233C0D8 + ldr r0, [r0] + ldrb r0, [r0, #0xc] + bx lr + .align 2, 0 +_0232BDEC: .4byte 0x0233C0D8 + arm_func_end ov01_0232BDDC + + arm_func_start ov01_0232BDF0 +ov01_0232BDF0: @ 0x0232BDF0 + ldr r0, _0232BE04 @ =0x0233C0D8 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0xc] + bx lr + .align 2, 0 +_0232BE04: .4byte 0x0233C0D8 + arm_func_end ov01_0232BDF0 + + arm_func_start ov01_0232BE08 +ov01_0232BE08: @ 0x0232BE08 + push {r3, lr} + ldr r0, _0232BE48 @ =0x0233C0D8 + ldr r1, [r0] + ldrb r0, [r1, #0xc] + cmp r0, #0 + popne {r3, pc} + ldr r0, [r1, #0x148] + cmp r0, #0 + popgt {r3, pc} + bl ov01_0232B26C + cmp r0, #0 + ldrne r0, _0232BE48 @ =0x0233C0D8 + movne r1, #0x1e + ldrne r0, [r0] + strne r1, [r0, #0x148] + pop {r3, pc} + .align 2, 0 +_0232BE48: .4byte 0x0233C0D8 + arm_func_end ov01_0232BE08 + + arm_func_start ov01_0232BE4C +ov01_0232BE4C: @ 0x0232BE4C + push {r3, lr} + ldr r0, _0232BE94 @ =0x0233C0D8 + ldr r1, [r0] + ldrb r0, [r1, #0xc] + cmp r0, #0 + movne r0, #1 + popne {r3, pc} + ldr r0, [r1, #0x148] + cmp r0, #0 + ble _0232BE8C + cmp r0, #0x1e + bgt _0232BE8C + bl ov01_0232B26C + cmp r0, #0 + movne r0, #1 + popne {r3, pc} +_0232BE8C: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0232BE94: .4byte 0x0233C0D8 + arm_func_end ov01_0232BE4C + + arm_func_start ov01_0232BE98 +ov01_0232BE98: @ 0x0232BE98 + push {r3, lr} + ldr r0, _0232C004 @ =0x0233C0D8 + ldr r1, [r0] + cmp r1, #0 + popeq {r3, pc} + ldr r0, [r1, #0x158] + cmp r0, #0xa + popge {r3, pc} + ldr r0, [r1, #0x144] + cmp r0, #0 + subgt r0, r0, #1 + strgt r0, [r1, #0x144] + ldr r0, _0232C004 @ =0x0233C0D8 + ldr r3, [r0] + ldr r2, [r3, #0x148] + cmp r2, #0 + ble _0232BF24 + ldrb r1, [r3, #8] + cmp r1, #0 + bne _0232BF24 + sub r1, r2, #1 + str r1, [r3, #0x148] + ldr r0, [r0] + ldr r0, [r0, #0x148] + cmp r0, #0 + bgt _0232BF24 + bl ov01_0232B26C + cmp r0, #0 + beq _0232BF24 + ldr r0, _0232C004 @ =0x0233C0D8 + mov r2, #1 + ldr r1, [r0] + strb r2, [r1, #0xc] + ldr r0, [r0] + str r2, [r0, #0x158] +_0232BF24: + ldr r0, _0232C004 @ =0x0233C0D8 + ldr r3, [r0] + ldr r1, [r3, #0x158] + cmp r1, #2 + beq _0232BFF8 + ldrb r1, [r3, #9] + cmp r1, #0 + beq _0232BF80 + ldr r1, [r3, #0x138] + add r1, r1, #1 + str r1, [r3, #0x138] + ldr r3, [r0] + ldrb r1, [r3, #0xe] + cmp r1, #0 + bne _0232BFA8 + ldr r2, [r3, #0x13c] + sub r1, r2, #1 + str r1, [r3, #0x13c] + cmp r2, #0 + ldrlt r0, [r0] + movlt r1, #0xa + strlt r1, [r0, #0x158] + b _0232BFA8 +_0232BF80: + ldrb r1, [r3, #8] + cmp r1, #0 + bne _0232BFA8 + ldr r2, [r3, #0x140] + sub r1, r2, #1 + str r1, [r3, #0x140] + cmp r2, #0 + ldrlt r0, [r0] + movlt r1, #5 + strlt r1, [r0, #0x158] +_0232BFA8: + bl ov01_0232AFC4 + cmp r0, #0 + ldrne r0, _0232C004 @ =0x0233C0D8 + movne r1, #0xc + ldrne r0, [r0] + strne r1, [r0, #0x158] + bne _0232BFF8 + ldr r0, _0232C004 @ =0x0233C0D8 + ldr r1, [r0] + ldrb r0, [r1, #0x14] + cmp r0, #0 + movne r0, #0xc + strne r0, [r1, #0x158] + bne _0232BFF8 + bl ov01_0232956C + cmp r0, #0 + ldrne r0, _0232C004 @ =0x0233C0D8 + movne r1, #0xc + ldrne r0, [r0] + strne r1, [r0, #0x158] +_0232BFF8: + bl ov01_0232B3CC + bl ov01_0232C07C + pop {r3, pc} + .align 2, 0 +_0232C004: .4byte 0x0233C0D8 + arm_func_end ov01_0232BE98 + + arm_func_start ov01_0232C008 +ov01_0232C008: @ 0x0232C008 + ldr r0, _0232C020 @ =0x0233C0D8 + ldr r0, [r0] + cmp r0, #0 + moveq r0, #0 + ldrne r0, [r0, #0x158] + bx lr + .align 2, 0 +_0232C020: .4byte 0x0233C0D8 + arm_func_end ov01_0232C008 +_0232C024: + .byte 0x10, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x00, 0x00, 0x51, 0xE3 + .byte 0x00, 0x00, 0xA0, 0x13, 0x58, 0x01, 0x81, 0x15, 0x1E, 0xFF, 0x2F, 0xE1, 0xD8, 0xC0, 0x33, 0x02 + + arm_func_start ov01_0232C040 +ov01_0232C040: @ 0x0232C040 + ldr r1, _0232C078 @ =0x0233C0D8 + ldr r1, [r1] + cmp r1, #0 + bxeq lr + cmp r0, #0 + bne _0232C064 + ldr r0, [r1, #0x158] + cmp r0, #0xa + bxge lr +_0232C064: + ldr r0, _0232C078 @ =0x0233C0D8 + mov r1, #2 + ldr r0, [r0] + str r1, [r0, #0x158] + bx lr + .align 2, 0 +_0232C078: .4byte 0x0233C0D8 + arm_func_end ov01_0232C040 + + arm_func_start ov01_0232C07C +ov01_0232C07C: @ 0x0232C07C + ldr r0, _0232C09C @ =0x0233C0D8 + ldr r1, [r0] + cmp r1, #0 + bxeq lr + ldr r1, [r1, #0x158] + cmp r1, #0xa + strge r1, [r0, #4] + bx lr + .align 2, 0 +_0232C09C: .4byte 0x0233C0D8 + arm_func_end ov01_0232C07C + + arm_func_start ov01_0232C0A0 +ov01_0232C0A0: @ 0x0232C0A0 + push {r4, lr} + mov r4, r0 + bl FUN_020205B0 + mvn r1, #0 + cmp r0, r1 + ldr r1, _0232C0C8 @ =0x0233C0E0 + movne r0, #0 + add r1, r1, r4, lsl #3 + ldr r0, [r1, r0, lsl #2] + pop {r4, pc} + .align 2, 0 +_0232C0C8: .4byte 0x0233C0E0 + arm_func_end ov01_0232C0A0 + + arm_func_start ov01_0232C0CC +ov01_0232C0CC: @ 0x0232C0CC + push {r3, lr} + ldr r1, _0232C0FC @ =0x0233C140 + mov r2, #0 + strb r2, [r1, #1] + ldr r0, _0232C100 @ =0x020AFC68 + strb r2, [r1] + ldr r0, [r0] + ldr r1, _0232C104 @ =0x0233AEF8 + bl FUN_0201D3DC + ldr r1, _0232C108 @ =0x0233C780 + strh r0, [r1] + pop {r3, pc} + .align 2, 0 +_0232C0FC: .4byte 0x0233C140 +_0232C100: .4byte 0x020AFC68 +_0232C104: .4byte 0x0233AEF8 +_0232C108: .4byte 0x0233C780 + arm_func_end ov01_0232C0CC + + arm_func_start ov01_0232C10C +ov01_0232C10C: @ 0x0232C10C + push {r3, lr} + bl ov01_0232C2AC + ldr r0, _0232C13C @ =0x0233C780 + ldr r2, _0232C140 @ =0x020AFC68 + ldrsh r1, [r0] + ldr r0, [r2] + bl FUN_0201D72C + ldr r0, _0232C144 @ =0x0233C140 + mov r1, #0 + strb r1, [r0, #1] + strb r1, [r0] + pop {r3, pc} + .align 2, 0 +_0232C13C: .4byte 0x0233C780 +_0232C140: .4byte 0x020AFC68 +_0232C144: .4byte 0x0233C140 + arm_func_end ov01_0232C10C + + arm_func_start ov01_0232C148 +ov01_0232C148: @ 0x0232C148 + push {r4, r5, r6, lr} + sub sp, sp, #0x10 + mov r5, r0 + ldr r0, _0232C1CC @ =0x0233C800 + mov r4, r1 + mov r6, r2 + bl FUN_0201C0B0 + ldr r1, _0232C1D0 @ =0x0233C780 + ldr r0, _0232C1CC @ =0x0233C800 + ldrsh r1, [r1] + bl FUN_0201C0E8 + mov r1, r6 + mov r0, #0xc + str r0, [sp] + mov r2, #0 + str r2, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + str r2, [sp, #0xc] + ldr r0, _0232C1CC @ =0x0233C800 + mov r3, r2 + bl FUN_0201C2CC + ldr r1, _0232C1CC @ =0x0233C800 + mov r0, #0 + strh r0, [r1, #0x38] + strh r5, [r1, #0x1c] + ldr r0, _0232C1D4 @ =0x0233C140 + strh r4, [r1, #0x1e] + mov r1, #1 + strb r1, [r0] + strb r1, [r0, #1] + add sp, sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_0232C1CC: .4byte 0x0233C800 +_0232C1D0: .4byte 0x0233C780 +_0232C1D4: .4byte 0x0233C140 + arm_func_end ov01_0232C148 + + arm_func_start ov01_0232C1D8 +ov01_0232C1D8: @ 0x0232C1D8 + push {r3, lr} + sub sp, sp, #0x10 + ldr r2, _0232C23C @ =0x0233C140 + mov r1, r0 + ldrb r0, [r2, #1] + cmp r0, #0 + ldrne r0, _0232C240 @ =0x0233C800 + lslne r2, r1, #0x10 + ldrshne r3, [r0, #0x78] + cmpne r3, r2, asr #16 + beq _0232C234 + mov r3, #0xc + mov r2, #0 + str r3, [sp] + str r2, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r3, r2 + str r2, [sp, #0xc] + bl FUN_0201C2CC + ldr r0, _0232C23C @ =0x0233C140 + mov r1, #1 + strb r1, [r0] +_0232C234: + add sp, sp, #0x10 + pop {r3, pc} + .align 2, 0 +_0232C23C: .4byte 0x0233C140 +_0232C240: .4byte 0x0233C800 + arm_func_end ov01_0232C1D8 + + arm_func_start ov01_0232C244 +ov01_0232C244: @ 0x0232C244 + push {r4, lr} + ldr r0, _0232C2A0 @ =0x0233C140 + ldrb r1, [r0, #1] + cmp r1, #0 + popeq {r4, pc} + ldrb r0, [r0] + cmp r0, #0 + beq _0232C294 + ldr r4, _0232C2A4 @ =0x0233C800 + ldr lr, _0232C2A8 @ =0x0233C784 + mov ip, #7 +_0232C270: + ldm r4!, {r0, r1, r2, r3} + stm lr!, {r0, r1, r2, r3} + subs ip, ip, #1 + bne _0232C270 + ldm r4, {r0, r1, r2} + stm lr, {r0, r1, r2} + ldr r0, _0232C2A0 @ =0x0233C140 + mov r1, #0 + strb r1, [r0] +_0232C294: + ldr r0, _0232C2A8 @ =0x0233C784 + bl FUN_0201CF5C + pop {r4, pc} + .align 2, 0 +_0232C2A0: .4byte 0x0233C140 +_0232C2A4: .4byte 0x0233C800 +_0232C2A8: .4byte 0x0233C784 + arm_func_end ov01_0232C244 + + arm_func_start ov01_0232C2AC +ov01_0232C2AC: @ 0x0232C2AC + push {r3, lr} + ldr r0, _0232C2DC @ =0x0233C140 + ldrb r0, [r0, #1] + cmp r0, #0 + popeq {r3, pc} + ldr r0, _0232C2E0 @ =0x0233C800 + bl FUN_0201C138 + ldr r0, _0232C2DC @ =0x0233C140 + mov r1, #0 + strb r1, [r0, #1] + strb r1, [r0] + pop {r3, pc} + .align 2, 0 +_0232C2DC: .4byte 0x0233C140 +_0232C2E0: .4byte 0x0233C800 + arm_func_end ov01_0232C2AC + + arm_func_start ov01_0232C2E4 +ov01_0232C2E4: @ 0x0232C2E4 + push {r3, lr} + bl FUN_02055770 + ldr r1, _0232C360 @ =0x0233C144 + mov r2, #0 + strb r2, [r1, #1] + strb r2, [r1] + cmp r0, #0 + beq _0232C330 + ldrsh r0, [r0, #4] + bl FUN_020526EC + mov r3, #0 + ldr r1, _0232C364 @ =0x020AFC68 + str r3, [sp] + mov r2, r0 + ldr r0, [r1] + mov r1, #2 + bl FUN_0201D484 + ldr r1, _0232C368 @ =0x0233C87C + b _0232C358 +_0232C330: + ldr r0, _0232C36C @ =0x00000229 + bl FUN_020526EC + mov r3, #0 + ldr r1, _0232C364 @ =0x020AFC68 + str r3, [sp] + mov r2, r0 + ldr r0, [r1] + mov r1, #2 + bl FUN_0201D484 + ldr r1, _0232C368 @ =0x0233C87C +_0232C358: + strh r0, [r1] + pop {r3, pc} + .align 2, 0 +_0232C360: .4byte 0x0233C144 +_0232C364: .4byte 0x020AFC68 +_0232C368: .4byte 0x0233C87C +_0232C36C: .4byte 0x00000229 + arm_func_end ov01_0232C2E4 + + arm_func_start ov01_0232C370 +ov01_0232C370: @ 0x0232C370 + push {r3, lr} + bl ov01_0232C540 + ldr r0, _0232C3A0 @ =0x0233C87C + ldr r2, _0232C3A4 @ =0x020AFC68 + ldrsh r1, [r0] + ldr r0, [r2] + bl FUN_0201D72C + ldr r0, _0232C3A8 @ =0x0233C144 + mov r1, #0 + strb r1, [r0, #1] + strb r1, [r0] + pop {r3, pc} + .align 2, 0 +_0232C3A0: .4byte 0x0233C87C +_0232C3A4: .4byte 0x020AFC68 +_0232C3A8: .4byte 0x0233C144 + arm_func_end ov01_0232C370 + + arm_func_start ov01_0232C3AC +ov01_0232C3AC: @ 0x0232C3AC + push {r4, r5, r6, lr} + sub sp, sp, #0x10 + mov r5, r0 + ldr r0, _0232C448 @ =0x0233C8FC + mov r4, r1 + mov r6, r3 + bl FUN_0201C0B0 + ldr r1, _0232C44C @ =0x0233C87C + ldr r0, _0232C448 @ =0x0233C8FC + ldrsh r1, [r1] + bl FUN_0201C0E8 + mov r0, #0xd + str r0, [sp] + mov r1, #0 + str r1, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, _0232C448 @ =0x0233C8FC + lsr r3, r6, #0x1f + rsb r2, r3, r6, lsl #29 + add r2, r3, r2, ror #29 + mov r3, #0x20 + bl FUN_0201C2CC + mov r1, #0 + ldr r0, _0232C448 @ =0x0233C8FC + strh r1, [r0, #0x38] + strh r5, [r0, #0x1c] + strh r4, [r0, #0x1e] + ldrh r2, [r0, #2] + orr r2, r2, #0x20 + strh r2, [r0, #2] + bl FUN_0201D12C + ldr r0, _0232C450 @ =0x0233C144 + mov r1, #1 + strb r1, [r0] + strb r1, [r0, #1] + add sp, sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_0232C448: .4byte 0x0233C8FC +_0232C44C: .4byte 0x0233C87C +_0232C450: .4byte 0x0233C144 + arm_func_end ov01_0232C3AC + + arm_func_start ov01_0232C454 +ov01_0232C454: @ 0x0232C454 + push {r3, lr} + sub sp, sp, #0x10 + ldr r2, _0232C4D0 @ =0x0233C144 + mov lr, r0 + ldrb r0, [r2, #1] + cmp r0, #0 + beq _0232C4C8 + ldr r0, _0232C4D4 @ =0x0233C8FC + ldrsh r2, [r0, #0x76] + cmp r2, lr + ldrsheq r2, [r0, #0x78] + cmpeq r2, r1 + beq _0232C4C8 + mov ip, #0xd + lsr r3, r1, #0x1f + rsb r2, r3, r1, lsl #29 + str ip, [sp] + mov ip, #0 + str ip, [sp, #4] + mov r1, #1 + str r1, [sp, #8] + mov r1, lr + add r2, r3, r2, ror #29 + mov r3, #0x20 + str ip, [sp, #0xc] + bl FUN_0201C2CC + ldr r0, _0232C4D0 @ =0x0233C144 + mov r1, #1 + strb r1, [r0] +_0232C4C8: + add sp, sp, #0x10 + pop {r3, pc} + .align 2, 0 +_0232C4D0: .4byte 0x0233C144 +_0232C4D4: .4byte 0x0233C8FC + arm_func_end ov01_0232C454 + + arm_func_start ov01_0232C4D8 +ov01_0232C4D8: @ 0x0232C4D8 + push {r4, lr} + ldr r0, _0232C534 @ =0x0233C144 + ldrb r1, [r0, #1] + cmp r1, #0 + popeq {r4, pc} + ldrb r0, [r0] + cmp r0, #0 + beq _0232C528 + ldr r4, _0232C538 @ =0x0233C8FC + ldr lr, _0232C53C @ =0x0233C880 + mov ip, #7 +_0232C504: + ldm r4!, {r0, r1, r2, r3} + stm lr!, {r0, r1, r2, r3} + subs ip, ip, #1 + bne _0232C504 + ldm r4, {r0, r1, r2} + stm lr, {r0, r1, r2} + ldr r0, _0232C534 @ =0x0233C144 + mov r1, #0 + strb r1, [r0] +_0232C528: + ldr r0, _0232C53C @ =0x0233C880 + bl FUN_0201CF5C + pop {r4, pc} + .align 2, 0 +_0232C534: .4byte 0x0233C144 +_0232C538: .4byte 0x0233C8FC +_0232C53C: .4byte 0x0233C880 + arm_func_end ov01_0232C4D8 + + arm_func_start ov01_0232C540 +ov01_0232C540: @ 0x0232C540 + push {r3, lr} + ldr r0, _0232C570 @ =0x0233C144 + ldrb r0, [r0, #1] + cmp r0, #0 + popeq {r3, pc} + ldr r0, _0232C574 @ =0x0233C8FC + bl FUN_0201C138 + ldr r0, _0232C570 @ =0x0233C144 + mov r1, #0 + strb r1, [r0, #1] + strb r1, [r0] + pop {r3, pc} + .align 2, 0 +_0232C570: .4byte 0x0233C144 +_0232C574: .4byte 0x0233C8FC + arm_func_end ov01_0232C540 + + arm_func_start ov01_0232C578 +ov01_0232C578: @ 0x0232C578 + ldr r3, [r0] + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + lsl r3, r3, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + bx lr + arm_func_end ov01_0232C578 + + arm_func_start ov01_0232C5AC +ov01_0232C5AC: @ 0x0232C5AC + push {r4, lr} + mov r4, r0 + bl ov01_0232C578 + cmp r0, #0 + addne r0, r4, #4 + moveq r0, #0 + pop {r4, pc} + arm_func_end ov01_0232C5AC + + arm_func_start ov01_0232C5C8 +ov01_0232C5C8: @ 0x0232C5C8 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x18 + mov sl, r0 + mov r0, #0x3e8 + mov r6, r1 + mov r4, r2 + bl FUN_02002274 + lsl r2, r0, #0x10 + mov r0, sl + mov r1, #0xa4 + lsr sb, r2, #0x10 + bl FUN_02003250 + bl ov01_0232E22C + lsl r2, r4, #0x18 + lsl r1, r4, #8 + and r2, r2, #0xff000000 + and r1, r1, #0xff0000 + str r0, [sl] + orr r0, r2, r1 + str r0, [sl, #4] + bl FUN_020205A0 + mov r5, r0 + bl FUN_020205A0 + mov r4, r0 + bl FUN_020205A0 + mov r7, r0 + bl FUN_020205A0 + lsl r1, r7, #8 + and r3, r1, #0xff0000 + lsr r1, r4, #0x18 + and r2, r1, #0xff + lsr r1, r5, #8 + and r1, r1, #0xff00 + orr r1, r2, r1 + lsl r0, r0, #0x18 + orr r1, r3, r1 + and r0, r0, #0xff000000 + orr r0, r0, r1 + str r0, [sl, #8] + asr r0, sb, #8 + and r1, r0, #0xff + lsl r0, sb, #8 + and r0, r0, #0xff00 + orr r0, r1, r0 + strh r0, [sl, #0x5c] + add r0, sl, #0x48 + mov r1, #0x14 + bl FUN_02003250 + add r0, sp, #4 + bl FUN_02050B10 + cmp r6, #0 + add r1, sp, #4 + add r0, sl, #0x48 + beq _0232C6AC + mov r2, #0xa + bl FUN_02025404 + b _0232C6B0 +_0232C6AC: + bl FUN_02025100 +_0232C6B0: + bl FUN_022BD5C8 + cmp r0, #0 + beq _0232C7A8 + bl FUN_022BD5EC + mov r1, r0 + add r0, sl, #0xc + mov r2, #0x36 + bl FUN_020032D4 + bl FUN_022BD71C + mov r8, r0 + bl FUN_022BD708 + mov r7, r0 + bl FUN_022BD6E0 + mov r6, r0 + bl FUN_022BD6F4 + mov r5, r0 + bl FUN_022BD71C + mov r4, r0 + bl FUN_022BD708 + mov fp, r0 + bl FUN_022BD6E0 + str r0, [sp] + bl FUN_022BD6F4 + lsl r1, r5, #2 + lsl r2, r0, #2 + ldr r0, [sp] + orr r1, r1, r6, lsl #1 + orr r1, r1, r7, lsl #3 + orr r0, r2, r0, lsl #1 + orr r1, r8, r1 + orr r0, r0, fp, lsl #3 + lsl r1, r1, #0x10 + orr r0, r4, r0 + lsr r1, r1, #0x10 + lsl r0, r0, #0x10 + asr r1, r1, #8 + lsr r0, r0, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + strh r0, [sl, #0x44] + bl FUN_022BD660 + cmp r0, #0 + ldreq r4, _0232C8B0 @ =0x0000FFFF + beq _0232C76C + bl FUN_022BD690 + mov r4, r0 +_0232C76C: + bl FUN_022BD660 + cmp r0, #0 + ldreq r0, _0232C8B0 @ =0x0000FFFF + beq _0232C780 + bl FUN_022BD690 +_0232C780: + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + lsl r0, r4, #0x10 + asr r1, r1, #8 + lsr r0, r0, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + strh r0, [sl, #0x5e] + b _0232C7B4 +_0232C7A8: + mov r0, #0 + strh r0, [sl, #0x44] + strh r0, [sl, #0x5e] +_0232C7B4: + mov r6, #0 + mov r4, r6 + mov r5, r6 + mov r7, #1 +_0232C7C4: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl FUN_022BD13C + mov r8, r0 + cmp r8, #0 + ble _0232C850 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl FUN_022BD2C0 + cmp r0, #0 + beq _0232C850 + lsr r2, r8, #0x18 + lsr r1, r8, #8 + lsl r3, r8, #8 + lsl r0, r8, #0x18 + and r2, r2, #0xff + and r1, r1, #0xff00 + and r3, r3, #0xff0000 + orr r1, r2, r1 + and r2, r0, #0xff000000 + orr r0, r3, r1 + orr r1, r2, r0 + add r0, sl, r5, lsl #2 + str r1, [r0, #0x64] + bl FUN_022BD5C8 + cmp r0, #0 + beq _0232C84C + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl FUN_022BD284 + cmp r0, #0 + orrne r0, r6, r7, lsl r5 + lslne r0, r0, #0x10 + lsrne r6, r0, #0x10 +_0232C84C: + add r5, r5, #1 +_0232C850: + add r4, r4, #1 + cmp r4, #0x10 + blt _0232C7C4 + lsr r1, r5, #0x18 + lsr r0, r5, #8 + asr r7, r6, #8 + lsl r4, r6, #8 + lsl r2, r5, #8 + lsl r3, r5, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r5, r7, #0xff + and r4, r4, #0xff00 + orr r4, r5, r4 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + strh r4, [sl, #0x46] + orr r1, r1, r0 + mov r0, sb + str r1, [sl, #0x60] + add sp, sp, #0x18 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0232C8B0: .4byte 0x0000FFFF + arm_func_end ov01_0232C5C8 +_0232C8B4: + .byte 0x04, 0x30, 0x90, 0xE5, 0x23, 0x1C, 0xA0, 0xE1, 0x23, 0x04, 0xA0, 0xE1 + .byte 0x03, 0x24, 0xA0, 0xE1, 0x03, 0x3C, 0xA0, 0xE1, 0xFF, 0x10, 0x01, 0xE2, 0xFF, 0x0C, 0x00, 0xE2 + .byte 0xFF, 0x28, 0x02, 0xE2, 0x00, 0x00, 0x81, 0xE1, 0xFF, 0x14, 0x03, 0xE2, 0x00, 0x00, 0x82, 0xE1 + .byte 0x00, 0x00, 0x81, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov01_0232C8E8 +ov01_0232C8E8: @ 0x0232C8E8 + push {r3, r4, r5, r6, r7, lr} + mov r4, r1 + mov r5, r0 + mov r1, #0x98 + bl FUN_02003250 + bl ov01_0232E22C + str r0, [r5] + ldr r6, [r4, #0x14] + add r0, r5, #0x2c + lsr r2, r6, #0x18 + lsr r1, r6, #8 + lsl r3, r6, #8 + lsl r6, r6, #0x18 + and r6, r6, #0xff000000 + and r3, r3, #0xff0000 + and r2, r2, #0xff + and r1, r1, #0xff00 + orr r1, r2, r1 + orr r1, r3, r1 + orr r1, r6, r1 + str r1, [r5, #4] + ldr r6, [r4, #0x18] + add r1, r4, #0x32 + lsr r3, r6, #0x18 + lsr r2, r6, #8 + and r3, r3, #0xff + and r2, r2, #0xff00 + orr r2, r3, r2 + lsl r3, r6, #8 + lsl r6, r6, #0x18 + and r6, r6, #0xff000000 + and r3, r3, #0xff0000 + orr r2, r3, r2 + orr r2, r6, r2 + str r2, [r5, #8] + ldrb r7, [r4, #4] + mov r2, #0x12 + lsl r3, r7, #0x18 + and r6, r3, #0xff000000 + lsl r3, r7, #8 + and r3, r3, #0xff0000 + orr r3, r6, r3 + str r3, [r5, #0x1c] + ldrb r7, [r4, #5] + lsl r3, r7, #0x18 + and r6, r3, #0xff000000 + lsl r3, r7, #8 + and r3, r3, #0xff0000 + orr r3, r6, r3 + str r3, [r5, #0x20] + ldr r7, [r4, #8] + lsr r3, r7, #0x18 + and ip, r3, #0xff + lsl r3, r7, #0x18 + and r6, r3, #0xff000000 + lsl r3, r7, #8 + and lr, r3, #0xff0000 + lsr r3, r7, #8 + and r3, r3, #0xff00 + orr r3, ip, r3 + orr r3, lr, r3 + orr r3, r6, r3 + str r3, [r5, #0x24] + ldrb lr, [r4, #0xad] + lsl r3, lr, #0x18 + and ip, r3, #0xff000000 + lsl r3, lr, #8 + and r3, r3, #0xff0000 + orr r3, ip, r3 + str r3, [r5, #0x28] + bl ov01_0232E27C + add r0, r5, #0x50 + add r1, r4, #0x56 + mov r2, #0x24 + bl ov01_0232E27C + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov01_0232C8E8 +_0232CA18: + .byte 0x04, 0x20, 0x90, 0xE5, 0x08, 0xC0, 0x9F, 0xE5 + .byte 0x08, 0x10, 0x90, 0xE5, 0x02, 0x00, 0xA0, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1, 0xC4, 0xE1, 0x32, 0x02 + .byte 0xF8, 0x4F, 0x2D, 0xE9, 0x01, 0x90, 0xA0, 0xE1, 0x00, 0xA0, 0xA0, 0xE1, 0x02, 0x80, 0xA0, 0xE1 + .byte 0x98, 0x10, 0xA0, 0xE3, 0x03, 0xB0, 0xA0, 0xE1, 0x28, 0x70, 0x9D, 0xE5, 0x2C, 0x60, 0x9D, 0xE5 + .byte 0x30, 0x50, 0x9D, 0xE5, 0x34, 0x40, 0x9D, 0xE5, 0xFC, 0x59, 0xF3, 0xEB, 0xF2, 0x05, 0x00, 0xEB + .byte 0x00, 0x00, 0x8A, 0xE5, 0x09, 0x00, 0xA0, 0xE1, 0x08, 0x10, 0xA0, 0xE1, 0xD4, 0x05, 0x00, 0xEB + .byte 0x03, 0x00, 0x8A, 0xE9, 0x0B, 0x00, 0xA0, 0xE1, 0x07, 0x10, 0xA0, 0xE1, 0xD0, 0x05, 0x00, 0xEB + .byte 0x0C, 0x00, 0x8A, 0xE5, 0x26, 0x04, 0xA0, 0xE1, 0x10, 0x10, 0x8A, 0xE5, 0x26, 0x2C, 0xA0, 0xE1 + .byte 0x06, 0x14, 0xA0, 0xE1, 0x06, 0x3C, 0xA0, 0xE1, 0xFF, 0x64, 0x03, 0xE2, 0xFF, 0x38, 0x01, 0xE2 + .byte 0xFF, 0x10, 0x02, 0xE2, 0xFF, 0x0C, 0x00, 0xE2, 0x00, 0x00, 0x81, 0xE1, 0x00, 0x10, 0x83, 0xE1 + .byte 0x25, 0x2C, 0xA0, 0xE1, 0x25, 0x04, 0xA0, 0xE1, 0x05, 0x34, 0xA0, 0xE1, 0x01, 0x10, 0x86, 0xE1 + .byte 0x14, 0x10, 0x8A, 0xE5, 0x24, 0x1C, 0xA0, 0xE1, 0x05, 0x5C, 0xA0, 0xE1, 0xFF, 0x20, 0x02, 0xE2 + .byte 0xFF, 0x0C, 0x00, 0xE2, 0x00, 0x20, 0x82, 0xE1, 0xFF, 0x38, 0x03, 0xE2, 0x24, 0x04, 0xA0, 0xE1 + .byte 0x02, 0x30, 0x83, 0xE1, 0xFF, 0x54, 0x05, 0xE2, 0x03, 0x50, 0x85, 0xE1, 0x04, 0x24, 0xA0, 0xE1 + .byte 0xFF, 0x10, 0x01, 0xE2, 0xFF, 0x0C, 0x00, 0xE2, 0x04, 0x3C, 0xA0, 0xE1, 0x00, 0x00, 0x81, 0xE1 + .byte 0xFF, 0x28, 0x02, 0xE2, 0xFF, 0x14, 0x03, 0xE2, 0x00, 0x00, 0x82, 0xE1, 0x18, 0x50, 0x8A, 0xE5 + .byte 0x00, 0x00, 0x81, 0xE1, 0x1C, 0x00, 0x8A, 0xE5, 0xF8, 0x8F, 0xBD, 0xE8 + + arm_func_start ov01_0232CB1C +ov01_0232CB1C: @ 0x0232CB1C + ldr r3, [r0, #8] + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + lsl r3, r3, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + bx lr + arm_func_end ov01_0232CB1C + + arm_func_start ov01_0232CB50 +ov01_0232CB50: @ 0x0232CB50 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x128 + str r2, [sp, #8] + str r0, [sp] + str r1, [sp, #4] + str r3, [sp, #0xc] + mov r4, #0 + bl ov01_0232CB1C + ldr r1, [sp, #8] + mov r5, #0 + cmp r1, r0 + strhs r0, [sp, #8] + str r5, [sp, #0x124] + b _0232CE88 +_0232CB88: + ldr r0, [sp] + add r1, r0, #0xc + mov r0, #0xb4 + mla r7, r5, r0, r1 + ldr r1, [r7, #0x34] + ldr r8, [r7, #0x38] + lsr sb, r1, #0x18 + lsr r6, r1, #8 + lsl r0, r1, #8 + lsr r3, r8, #0x18 + lsr r2, r8, #8 + lsl r1, r1, #0x18 + and sb, sb, #0xff + and r6, r6, #0xff00 + orr sb, sb, r6 + lsl r6, r8, #8 + and r0, r0, #0xff0000 + lsl r8, r8, #0x18 + and r3, r3, #0xff + and r2, r2, #0xff00 + and r6, r6, #0xff0000 + orr r2, r3, r2 + orr r3, r6, r2 + ldr r2, [sp, #0xc] + and r8, r8, #0xff000000 + and r1, r1, #0xff000000 + orr r0, r0, sb + orr fp, r1, r0 + mov r0, #0 + cmp r2, #0 + orr r8, r8, r3 + str r0, [sp, #0x18] + bne _0232CC1C + and r0, fp, #0xff + bl FUN_0204D2F8 + cmp r0, r8 + blo _0232CE84 +_0232CC1C: + ldm r7, {r0, r1} + bl ov01_0232E1C4 + ldr r2, [r7, #8] + str r1, [sp, #0x14] + lsl r1, r2, #8 + mov sl, r0 + lsr r0, r2, #0x18 + and r6, r1, #0xff0000 + lsr r1, r2, #8 + and r3, r0, #0xff + and r1, r1, #0xff00 + lsl r0, r2, #0x18 + orr r1, r3, r1 + orr r1, r6, r1 + and r0, r0, #0xff000000 + orr r0, r0, r1 + str r0, [sp, #0x1c] + ldr r2, [r7, #0xc] + mov sb, #0 + lsl r0, r2, #0x18 + and r1, r0, #0xff000000 + lsl r0, r2, #8 + lsr r3, r2, #0x18 + lsr r2, r2, #8 + and r3, r3, #0xff + and r2, r2, #0xff00 + and r0, r0, #0xff0000 + orr r2, r3, r2 + orr r0, r0, r2 + orr r0, r1, r0 + str r0, [sp, #0x20] + add r6, sp, #0x24 + b _0232CCCC +_0232CCA0: + add r0, r6, sb, lsl #3 + add r1, sp, #0x1c + bl FUN_0205B554 + cmp r0, #0 + beq _0232CCC8 + ldr r1, [sp, #0x20] + ldr r0, _0232CEA0 @ =0x0233AF14 + ldr r2, [sp, #0x1c] + bl FUN_0200C1FC + b _0232CCDC +_0232CCC8: + add sb, sb, #1 +_0232CCCC: + ldr r0, [sp, #0x124] + cmp sb, r0 + blt _0232CCA0 + mvn sb, #0 +_0232CCDC: + mvn r0, #0 + cmp sb, r0 + mov r1, #0xb0 + beq _0232CD18 + ldr r0, [sp, #4] + mla r6, sb, r1, r0 + ldr r1, [r6, #0x10] + ldr r0, [sp, #0x14] + ldr r2, [r6, #0xc] + cmp r1, r0 + cmpeq r2, sl + bhs _0232CE84 + mov r0, #1 + str r0, [sp, #0x18] + b _0232CD20 +_0232CD18: + ldr r0, [sp, #4] + mla r6, r4, r1, r0 +_0232CD20: + ldr r0, [sp, #0x14] + str sl, [r6, #0xc] + str r0, [r6, #0x10] + ldr r1, [sp, #0x1c] + ldr r0, [sp, #0x20] + str r1, [r6, #0x14] + str r0, [r6, #0x18] + ldr r0, [sp, #0x124] + cmp r0, #0x20 + beq _0232CD80 + ldr r1, [r6, #0x18] + ldr r2, [r6, #0x14] + ldr r0, _0232CEA4 @ =0x0233AF3C + bl FUN_0200C1FC + ldr sb, [sp, #0x124] + add r3, sp, #0x24 + ldr r2, [r6, #0x14] + ldr r1, [r6, #0x18] + add r0, r3, sb, lsl #3 + str r2, [r3, sb, lsl #3] + str r1, [r0, #4] + ldr r0, [sp, #0x124] + add r0, r0, #1 + str r0, [sp, #0x124] +_0232CD80: + add r0, r6, #0x1d + mov r1, #0x14 + bl FUN_02003250 + add r0, r6, #0x1d + add r1, r7, #0x20 + mov r2, #0x14 + bl FUN_0202544C + strb fp, [r6, #4] + strb r8, [r6, #5] + ldr sb, [r7, #0x3c] + add r0, r6, #0x32 + lsl r2, sb, #8 + and r8, r2, #0xff0000 + lsr r2, sb, #0x18 + and r3, r2, #0xff + lsr r2, sb, #8 + and r2, r2, #0xff00 + lsl r1, sb, #0x18 + orr r2, r3, r2 + and r1, r1, #0xff000000 + orr r2, r8, r2 + orr r1, r1, r2 + str r1, [r6, #8] + ldr sl, [r7, #0x44] + mov r1, #0x24 + lsl r3, sl, #8 + and sb, r3, #0xff0000 + lsr r3, sl, #0x18 + and r8, r3, #0xff + lsr r3, sl, #8 + and r3, r3, #0xff00 + lsl r2, sl, #0x18 + orr r3, r8, r3 + and r2, r2, #0xff000000 + orr r3, sb, r3 + orr r2, r2, r3 + strb r2, [r6, #0x1c] + ldr sl, [r7, #0x40] + lsl r3, sl, #8 + and sb, r3, #0xff0000 + lsr r3, sl, #0x18 + and r8, r3, #0xff + lsr r3, sl, #8 + and r3, r3, #0xff00 + lsl r2, sl, #0x18 + orr r3, r8, r3 + and r2, r2, #0xff000000 + orr r3, sb, r3 + orr r2, r2, r3 + strb r2, [r6, #0xae] + bl FUN_02003250 + add r0, r6, #0x56 + mov r1, #0x48 + bl FUN_02003250 + add r0, r6, #0x32 + add r1, r7, #0x48 + mov r2, #0x12 + bl ov01_0232E2D8 + add r0, r6, #0x56 + add r1, r7, #0x6c + mov r2, #0x24 + bl ov01_0232E2D8 + ldr r0, [sp, #0x18] + cmp r0, #0 + addeq r4, r4, #1 +_0232CE84: + add r5, r5, #1 +_0232CE88: + ldr r0, [sp, #8] + cmp r5, r0 + blt _0232CB88 + mov r0, r4 + add sp, sp, #0x128 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0232CEA0: .4byte 0x0233AF14 +_0232CEA4: .4byte 0x0233AF3C + arm_func_end ov01_0232CB50 + + arm_func_start ov01_0232CEA8 +ov01_0232CEA8: @ 0x0232CEA8 + push {r4, r5, r6, lr} + mov r5, r1 + mov r6, r0 + mov r4, r2 + mov r1, #0xc + bl FUN_02003250 + bl ov01_0232E22C + str r0, [r6] + mov r0, r5 + mov r1, r4 + bl ov01_0232E1C4 + stmib r6, {r0, r1} + pop {r4, r5, r6, pc} + arm_func_end ov01_0232CEA8 +_0232CEDC: + .byte 0x04, 0x30, 0x90, 0xE5 + .byte 0x23, 0x1C, 0xA0, 0xE1, 0x23, 0x04, 0xA0, 0xE1, 0x03, 0x24, 0xA0, 0xE1, 0x03, 0x3C, 0xA0, 0xE1 + .byte 0xFF, 0x10, 0x01, 0xE2, 0xFF, 0x0C, 0x00, 0xE2, 0xFF, 0x28, 0x02, 0xE2, 0x00, 0x00, 0x81, 0xE1 + .byte 0xFF, 0x14, 0x03, 0xE2, 0x00, 0x00, 0x82, 0xE1, 0x00, 0x00, 0x81, 0xE1, 0xFF, 0x00, 0x00, 0xE2 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xB4, 0x30, 0x90, 0xE5, 0x23, 0x1C, 0xA0, 0xE1, 0x23, 0x04, 0xA0, 0xE1 + .byte 0x03, 0x24, 0xA0, 0xE1, 0x03, 0x3C, 0xA0, 0xE1, 0xFF, 0x10, 0x01, 0xE2, 0xFF, 0x0C, 0x00, 0xE2 + .byte 0xFF, 0x28, 0x02, 0xE2, 0x00, 0x00, 0x81, 0xE1, 0xFF, 0x14, 0x03, 0xE2, 0x00, 0x00, 0x82, 0xE1 + .byte 0x00, 0x00, 0x81, 0xE1, 0xFF, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1, 0xB8, 0x30, 0x90, 0xE5 + .byte 0x23, 0x1C, 0xA0, 0xE1, 0x23, 0x04, 0xA0, 0xE1, 0x03, 0x24, 0xA0, 0xE1, 0x03, 0x3C, 0xA0, 0xE1 + .byte 0xFF, 0x10, 0x01, 0xE2, 0xFF, 0x0C, 0x00, 0xE2, 0xFF, 0x28, 0x02, 0xE2, 0x00, 0x00, 0x81, 0xE1 + .byte 0xFF, 0x14, 0x03, 0xE2, 0x00, 0x00, 0x82, 0xE1, 0x00, 0x00, 0x81, 0xE1, 0xFF, 0x00, 0x00, 0xE2 + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov01_0232CF84 +ov01_0232CF84: @ 0x0232CF84 + push {r3, r4, r5, lr} + mov r5, r0 + ldr r3, [r5, #8] + mov r4, r1 + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + lsl r3, r3, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + str r0, [r4, #0x14] + ldr ip, [r5, #0xc] + add r0, r4, #0x1d + lsr r2, ip, #0x18 + lsr r1, ip, #8 + lsl r3, ip, #8 + lsl ip, ip, #0x18 + and r2, r2, #0xff + and r1, r1, #0xff00 + and r3, r3, #0xff0000 + orr r1, r2, r1 + and r2, ip, #0xff000000 + orr r1, r3, r1 + orr r2, r2, r1 + mov r1, #0x14 + str r2, [r4, #0x18] + bl FUN_02003250 + add r0, r4, #0x1d + add r1, r5, #0x20 + mov r2, #0x14 + bl FUN_0202544C + ldr r3, [r5, #0x34] + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + lsl r3, r3, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + strb r0, [r4, #4] + ldr r3, [r5, #0x38] + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + lsl r3, r3, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + strb r0, [r4, #5] + ldr r3, [r5, #0x3c] + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + lsl r3, r3, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + str r0, [r4, #8] + ldr r3, [r5, #0x44] + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + lsl r3, r3, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + strb r0, [r4, #0x1c] + ldr ip, [r5, #0xb4] + add r0, r4, #0x32 + lsr r2, ip, #0x18 + lsr r1, ip, #8 + lsl r3, ip, #8 + lsl ip, ip, #0x18 + and r2, r2, #0xff + and r1, r1, #0xff00 + and r3, r3, #0xff0000 + orr r1, r2, r1 + and r2, ip, #0xff000000 + orr r1, r3, r1 + orr r1, r2, r1 + strb r1, [r4, #0xad] + ldr lr, [r5, #0x40] + mov r1, #0x24 + lsr r3, lr, #0x18 + lsr r2, lr, #8 + lsl ip, lr, #8 + lsl lr, lr, #0x18 + and r3, r3, #0xff + and r2, r2, #0xff00 + and ip, ip, #0xff0000 + orr r2, r3, r2 + and r3, lr, #0xff000000 + orr r2, ip, r2 + orr r2, r3, r2 + strb r2, [r4, #0xae] + bl FUN_02003250 + add r0, r4, #0x56 + mov r1, #0x48 + bl FUN_02003250 + add r0, r4, #0x32 + add r1, r5, #0x48 + mov r2, #0x12 + bl ov01_0232E2D8 + add r0, r4, #0x56 + add r1, r5, #0x6c + mov r2, #0x24 + bl ov01_0232E2D8 + pop {r3, r4, r5, pc} + arm_func_end ov01_0232CF84 + + arm_func_start ov01_0232D188 +ov01_0232D188: @ 0x0232D188 + push {r4, r5, r6, lr} + mov r5, r1 + mov r6, r0 + mov r4, r2 + mov r1, #0xc + bl FUN_02003250 + bl ov01_0232E22C + str r0, [r6] + mov r0, r5 + mov r1, r4 + bl ov01_0232E1C4 + stmib r6, {r0, r1} + pop {r4, r5, r6, pc} + arm_func_end ov01_0232D188 +_0232D1BC: + .byte 0x04, 0x30, 0x90, 0xE5 + .byte 0x23, 0x1C, 0xA0, 0xE1, 0x23, 0x04, 0xA0, 0xE1, 0x03, 0x24, 0xA0, 0xE1, 0x03, 0x3C, 0xA0, 0xE1 + .byte 0xFF, 0x10, 0x01, 0xE2, 0xFF, 0x0C, 0x00, 0xE2, 0xFF, 0x28, 0x02, 0xE2, 0x00, 0x00, 0x81, 0xE1 + .byte 0xFF, 0x14, 0x03, 0xE2, 0x00, 0x00, 0x82, 0xE1, 0x00, 0x00, 0x81, 0xE1, 0xFF, 0x00, 0x00, 0xE2 + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov01_0232D1F4 +ov01_0232D1F4: @ 0x0232D1F4 + push {r3, r4, r5, lr} + mov r5, r0 + ldr r3, [r5, #8] + mov r4, r1 + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + lsl r3, r3, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + str r0, [r4, #0x14] + ldr ip, [r5, #0xc] + add r0, r4, #0x1d + lsr r2, ip, #0x18 + lsr r1, ip, #8 + lsl r3, ip, #8 + lsl ip, ip, #0x18 + and r2, r2, #0xff + and r1, r1, #0xff00 + and r3, r3, #0xff0000 + orr r1, r2, r1 + and r2, ip, #0xff000000 + orr r1, r3, r1 + orr r2, r2, r1 + mov r1, #0x14 + str r2, [r4, #0x18] + bl FUN_02003250 + add r0, r4, #0x1d + add r1, r5, #0x20 + mov r2, #0x14 + bl FUN_0202544C + ldr r3, [r5, #0x34] + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + lsl r3, r3, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + strb r0, [r4, #4] + ldr r3, [r5, #0x38] + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + lsl r3, r3, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + strb r0, [r4, #5] + ldr r3, [r5, #0x3c] + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + lsl r3, r3, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + str r0, [r4, #8] + ldr r3, [r5, #0x44] + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + lsl r3, r3, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + strb r0, [r4, #0x1c] + ldr ip, [r5, #0x40] + add r0, r4, #0x32 + lsr r2, ip, #0x18 + lsr r1, ip, #8 + lsl r3, ip, #8 + lsl ip, ip, #0x18 + and r2, r2, #0xff + and r1, r1, #0xff00 + and r3, r3, #0xff0000 + orr r1, r2, r1 + and r2, ip, #0xff000000 + orr r1, r3, r1 + orr r2, r2, r1 + mov r1, #0x24 + strb r2, [r4, #0xae] + bl FUN_02003250 + add r0, r4, #0x56 + mov r1, #0x48 + bl FUN_02003250 + add r0, r4, #0x32 + add r1, r5, #0x48 + mov r2, #0x12 + bl ov01_0232E2D8 + add r0, r4, #0x56 + add r1, r5, #0x6c + mov r2, #0x24 + bl ov01_0232E2D8 + pop {r3, r4, r5, pc} + arm_func_end ov01_0232D1F4 + + arm_func_start ov01_0232D3C4 +ov01_0232D3C4: @ 0x0232D3C4 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x14 + mov r5, r1 + mov r6, r0 + mov r1, #0xd4 + mov r4, r2 + bl FUN_02003250 + bl ov01_0232E22C + str r0, [r6] + ldr r0, [r5, #0xc] + ldr r1, [r5, #0x10] + bl ov01_0232E1C4 + stmib r6, {r0, r1} + ldr r8, [r5, #0xa4] + add r0, sp, #4 + lsl r1, r8, #0x18 + and r7, r1, #0xff000000 + lsl r1, r8, #8 + and r3, r1, #0xff0000 + lsr r1, r8, #0x18 + and r2, r1, #0xff + lsr r1, r8, #8 + and r1, r1, #0xff00 + orr r1, r2, r1 + orr r1, r3, r1 + orr r1, r7, r1 + str r1, [r6, #0xc] + ldr ip, [r5, #0xa8] + add r1, r6, #0x28 + lsl r3, ip, #8 + and r8, r3, #0xff0000 + lsr r3, ip, #0x18 + and r7, r3, #0xff + lsr r3, ip, #8 + and r3, r3, #0xff00 + lsl r2, ip, #0x18 + orr r3, r7, r3 + and r2, r2, #0xff000000 + orr r3, r8, r3 + orr r2, r2, r3 + str r2, [r6, #0x10] + ldrsh r7, [r5, #0xa2] + ldrh r3, [r5, #0xa0] + mov r2, #0x40 + orr r8, r3, r7, lsl #16 + lsl ip, r8, #8 + and r7, ip, #0xff0000 + lsr ip, r8, #0x18 + and lr, ip, #0xff + lsr ip, r8, #8 + and ip, ip, #0xff00 + lsl r3, r8, #0x18 + orr ip, lr, ip + and r3, r3, #0xff000000 + orr r7, r7, ip + orr r3, r3, r7 + str r3, [r6, #0x24] + bl FUN_02050990 + cmp r4, #0 + add r0, sp, #4 + beq _0232D4E0 + mov r2, #0xff + strb r2, [sp, #1] + add r1, sp, #1 + mov r2, #1 + bl FUN_020509C0 + ldrb r2, [r5, #0xad] + add r0, sp, #4 + mov r1, r4 + bl ov01_0232E334 + b _0232D4F4 +_0232D4E0: + mov r3, #0 + add r1, sp, #0 + mov r2, #1 + strb r3, [sp] + bl FUN_020509C0 +_0232D4F4: + add r0, sp, #4 + bl FUN_020509BC + add r0, r6, #0x68 + add r1, r5, #0x32 + mov r2, #0x12 + bl ov01_0232E27C + add r0, r6, #0x8c + add r1, r5, #0x56 + mov r2, #0x24 + bl ov01_0232E27C + add sp, sp, #0x14 + pop {r3, r4, r5, r6, r7, r8, pc} + arm_func_end ov01_0232D3C4 +_0232D524: + .byte 0x04, 0x30, 0x90, 0xE5, 0x23, 0x1C, 0xA0, 0xE1, 0x23, 0x04, 0xA0, 0xE1 + .byte 0x03, 0x24, 0xA0, 0xE1, 0x03, 0x3C, 0xA0, 0xE1, 0xFF, 0x10, 0x01, 0xE2, 0xFF, 0x0C, 0x00, 0xE2 + .byte 0xFF, 0x28, 0x02, 0xE2, 0x00, 0x00, 0x81, 0xE1, 0xFF, 0x14, 0x03, 0xE2, 0x00, 0x00, 0x82, 0xE1 + .byte 0x00, 0x00, 0x81, 0xE1, 0xFF, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov01_0232D55C +ov01_0232D55C: @ 0x0232D55C + push {r4, r5, r6, lr} + mov r5, r1 + mov r6, r0 + mov r4, r2 + mov r1, #0xc + bl FUN_02003250 + bl ov01_0232E22C + str r0, [r6] + mov r0, r5 + mov r1, r4 + bl ov01_0232E1C4 + stmib r6, {r0, r1} + pop {r4, r5, r6, pc} + arm_func_end ov01_0232D55C +_0232D590: + .byte 0x04, 0x30, 0x90, 0xE5, 0x23, 0x1C, 0xA0, 0xE1, 0x23, 0x04, 0xA0, 0xE1, 0x03, 0x24, 0xA0, 0xE1 + .byte 0x03, 0x3C, 0xA0, 0xE1, 0xFF, 0x10, 0x01, 0xE2, 0xFF, 0x0C, 0x00, 0xE2, 0xFF, 0x28, 0x02, 0xE2 + .byte 0x00, 0x00, 0x81, 0xE1, 0xFF, 0x14, 0x03, 0xE2, 0x00, 0x00, 0x82, 0xE1, 0x00, 0x00, 0x81, 0xE1 + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov01_0232D5C4 +ov01_0232D5C4: @ 0x0232D5C4 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x14 + mov r6, r0 + mov r5, r1 + add r0, sp, #4 + add r1, r6, #0x50 + mov r2, #0x40 + bl FUN_02050974 + add r0, sp, #4 + add r1, sp, #0 + mov r2, #1 + bl FUN_02050A40 + ldrb r0, [sp] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + ands r4, r0, #0xff + beq _0232D650 + ldr ip, [r6, #0x94] + add r0, sp, #4 + lsr r2, ip, #0x18 + lsr r1, ip, #8 + lsl r3, ip, #8 + and r2, r2, #0xff + and r1, r1, #0xff00 + lsl ip, ip, #0x18 + orr r1, r2, r1 + and r3, r3, #0xff0000 + and r2, ip, #0xff000000 + orr r1, r3, r1 + orr r1, r2, r1 + lsl r2, r1, #0x18 + mov r1, r5 + asr r2, r2, #0x18 + bl ov01_0232E58C +_0232D650: + add r0, sp, #4 + bl FUN_020509BC + mov r0, r4 + add sp, sp, #0x14 + pop {r3, r4, r5, r6, pc} + arm_func_end ov01_0232D5C4 + + arm_func_start ov01_0232D664 +ov01_0232D664: @ 0x0232D664 + push {r3, r4, r5, lr} + mov r5, r0 + ldr r3, [r5, #8] + mov r4, r1 + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + lsl r3, r3, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + str r0, [r4, #0xa4] + ldr ip, [r5, #0xc] + add r0, r4, #0x1d + lsr r2, ip, #0x18 + lsr r1, ip, #8 + lsl r3, ip, #8 + lsl ip, ip, #0x18 + and r2, r2, #0xff + and r1, r1, #0xff00 + and r3, r3, #0xff0000 + orr r1, r2, r1 + and r2, ip, #0xff000000 + orr r1, r3, r1 + orr r1, r2, r1 + str r1, [r4, #0xa8] + ldr lr, [r5, #0x20] + mov r1, #0x14 + lsr r3, lr, #0x18 + lsr r2, lr, #8 + lsl ip, lr, #8 + lsl lr, lr, #0x18 + and r3, r3, #0xff + and r2, r2, #0xff00 + and ip, ip, #0xff0000 + orr r2, r3, r2 + and r3, lr, #0xff000000 + orr r2, ip, r2 + orr r2, r3, r2 + str r2, [r4, #0x14] + ldr lr, [r5, #0x24] + lsr r3, lr, #0x18 + lsr r2, lr, #8 + lsl ip, lr, #8 + lsl lr, lr, #0x18 + and r3, r3, #0xff + and r2, r2, #0xff00 + and ip, ip, #0xff0000 + orr r2, r3, r2 + and r3, lr, #0xff000000 + orr r2, ip, r2 + orr r2, r3, r2 + str r2, [r4, #0x18] + bl FUN_02003250 + add r0, r4, #0x1d + add r1, r5, #0x38 + mov r2, #0x14 + bl FUN_0202544C + ldr r3, [r5, #0x4c] + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + lsl r3, r3, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r1, r1, r0 + lsr r0, r1, #0x10 + strh r0, [r4, #0xa2] + strh r1, [r4, #0xa0] + ldr r3, [r5, #0x94] + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + lsl r3, r3, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + strb r0, [r4, #0x1c] + ldr ip, [r5, #0x90] + add r0, r4, #0x32 + lsr r2, ip, #0x18 + lsr r1, ip, #8 + lsl r3, ip, #8 + lsl ip, ip, #0x18 + and r2, r2, #0xff + and r1, r1, #0xff00 + and r3, r3, #0xff0000 + orr r1, r2, r1 + and r2, ip, #0xff000000 + orr r1, r3, r1 + orr r2, r2, r1 + mov r1, #0x24 + strb r2, [r4, #0xae] + bl FUN_02003250 + add r0, r4, #0x56 + mov r1, #0x48 + bl FUN_02003250 + add r0, r4, #0x32 + add r1, r5, #0x98 + mov r2, #0x12 + bl ov01_0232E2D8 + add r0, r4, #0x56 + add r1, r5, #0xbc + mov r2, #0x24 + bl ov01_0232E2D8 + pop {r3, r4, r5, pc} + arm_func_end ov01_0232D664 + + arm_func_start ov01_0232D83C +ov01_0232D83C: @ 0x0232D83C + push {r4, r5, r6, lr} + mov r4, r1 + mov r5, r0 + mov r1, #0x7c + bl FUN_02003250 + bl ov01_0232E22C + str r0, [r5] + ldr r0, [r4, #0xc] + ldr r1, [r4, #0x10] + bl ov01_0232E1C4 + stmib r5, {r0, r1} + ldrsh r3, [r4, #0xa2] + ldrh r2, [r4, #0xa0] + add r0, r5, #0x10 + add r1, r4, #0x32 + orr r6, r2, r3, lsl #16 + lsl r2, r6, #0x18 + and lr, r2, #0xff000000 + lsl r2, r6, #8 + and ip, r2, #0xff0000 + lsr r2, r6, #0x18 + and r3, r2, #0xff + lsr r2, r6, #8 + and r2, r2, #0xff00 + orr r2, r3, r2 + orr r2, ip, r2 + orr r2, lr, r2 + str r2, [r5, #0xc] + mov r2, #0x12 + bl ov01_0232E27C + add r0, r5, #0x34 + add r1, r4, #0x56 + mov r2, #0x24 + bl ov01_0232E27C + pop {r4, r5, r6, pc} + arm_func_end ov01_0232D83C + + arm_func_start ov01_0232D8C8 +ov01_0232D8C8: @ 0x0232D8C8 + push {r4, r5, r6, lr} + mov r5, r1 + mov r6, r0 + mov r4, r2 + mov r1, #0xc + bl FUN_02003250 + bl ov01_0232E22C + str r0, [r6] + mov r0, r5 + mov r1, r4 + bl ov01_0232E1C4 + stmib r6, {r0, r1} + pop {r4, r5, r6, pc} + arm_func_end ov01_0232D8C8 +_0232D8FC: + .byte 0x04, 0x30, 0x90, 0xE5 + .byte 0x23, 0x1C, 0xA0, 0xE1, 0x23, 0x04, 0xA0, 0xE1, 0x03, 0x24, 0xA0, 0xE1, 0x03, 0x3C, 0xA0, 0xE1 + .byte 0xFF, 0x10, 0x01, 0xE2, 0xFF, 0x0C, 0x00, 0xE2, 0xFF, 0x28, 0x02, 0xE2, 0x00, 0x00, 0x81, 0xE1 + .byte 0xFF, 0x14, 0x03, 0xE2, 0x00, 0x00, 0x82, 0xE1, 0x00, 0x00, 0x81, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov01_0232D930 +ov01_0232D930: @ 0x0232D930 + push {r3, r4, r5, lr} + mov r5, r0 + ldr r3, [r5, #8] + mov r4, r1 + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + lsl r3, r3, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + str r0, [r4, #0x14] + ldr ip, [r5, #0xc] + add r0, r4, #0x32 + lsr r2, ip, #0x18 + lsr r1, ip, #8 + lsl r3, ip, #8 + lsl ip, ip, #0x18 + and r2, r2, #0xff + and r1, r1, #0xff00 + and r3, r3, #0xff0000 + orr r1, r2, r1 + and r2, ip, #0xff000000 + orr r1, r3, r1 + orr r1, r2, r1 + str r1, [r4, #0x18] + ldr lr, [r5, #0x20] + mov r1, #0x24 + lsr r3, lr, #0x18 + lsr r2, lr, #8 + lsl ip, lr, #8 + lsl lr, lr, #0x18 + and r3, r3, #0xff + and r2, r2, #0xff00 + and ip, ip, #0xff0000 + orr r2, r3, r2 + and r3, lr, #0xff000000 + orr r2, ip, r2 + orr r3, r3, r2 + lsr r2, r3, #0x10 + strh r2, [r4, #0xa2] + strh r3, [r4, #0xa0] + bl FUN_02003250 + add r0, r4, #0x56 + mov r1, #0x48 + bl FUN_02003250 + add r0, r4, #0x32 + add r1, r5, #0x24 + mov r2, #0x12 + bl ov01_0232E2D8 + add r0, r4, #0x56 + add r1, r5, #0x48 + mov r2, #0x24 + bl ov01_0232E2D8 + pop {r3, r4, r5, pc} + arm_func_end ov01_0232D930 + + arm_func_start ov01_0232DA1C +ov01_0232DA1C: @ 0x0232DA1C + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x68 + mov r5, r1 + mov r7, r0 + mov r1, #0x10c + mov r4, #1 + bl FUN_02003250 + bl ov01_0232E22C + str r0, [r7] + bl FUN_02050CD0 + mov sb, r0 + bl FUN_02050CD0 + mov r8, r0 + bl FUN_02050CD0 + mov r6, r0 + bl FUN_02050CD0 + lsl r2, r8, #8 + and r3, r2, #0xff0000 + lsr r2, r6, #0x18 + lsr r0, r0, #8 + lsl r1, sb, #0x18 + and r2, r2, #0xff + and r0, r0, #0xff00 + orr r0, r2, r0 + and r1, r1, #0xff000000 + orr r0, r3, r0 + orr r0, r1, r0 + str r0, [r7, #4] + lsl r0, r5, #0x18 + and r1, r0, #0xff000000 + lsl r0, r5, #8 + and r0, r0, #0xff0000 + orr r0, r1, r0 + str r0, [r7, #8] + add r1, r7, #0xc + add r0, sp, #0xc + mov r2, #0x100 + bl FUN_02050990 + add r0, sp, #2 + mov r1, #0 + bl FUN_02057030 + strb r0, [sp] + tst r0, #0xff + add r0, sp, #0xc + bne _0232DADC + bl FUN_020509BC + mov r0, #0 + b _0232DB8C +_0232DADC: + add r1, sp, #0 + mov r2, #3 + bl FUN_020509C0 + mov sl, #0 + add sb, sp, #2 + add r7, sp, #0x1c + add r6, sp, #0xc + b _0232DB74 +_0232DAFC: + lsl r0, sl, #1 + ldrsh r0, [sb, r0] + bl FUN_020555A8 + mov r8, r0 + mov r0, r7 + mov r1, r8 + bl FUN_02055E14 + mov r0, r6 + mov r1, r7 + mov r2, r5 + bl ov01_0232E334 + ldrsh r0, [r8, #4] + bl FUN_02062B64 + cmp r0, #0 + bne _0232DB68 + add r0, r8, #0x22 + bl FUN_02014EF8 + cmp r0, #0 + beq _0232DB68 + ldrb r0, [r8, #1] + cmp r0, #1 + blo _0232DB68 + cmp r0, #0x64 + bhi _0232DB68 + ldrb r0, [r8, #0x20] + cmp r0, #0xb + blo _0232DB70 +_0232DB68: + mov r4, #0 + b _0232DB80 +_0232DB70: + add sl, sl, #1 +_0232DB74: + ldrb r0, [sp] + cmp sl, r0 + blt _0232DAFC +_0232DB80: + add r0, sp, #0xc + bl FUN_020509BC + mov r0, r4 +_0232DB8C: + add sp, sp, #0x68 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end ov01_0232DA1C +_0232DB94: + .byte 0x04, 0x20, 0x90, 0xE5, 0x08, 0xC0, 0x9F, 0xE5, 0x08, 0x10, 0x90, 0xE5 + .byte 0x02, 0x00, 0xA0, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1, 0xC4, 0xE1, 0x32, 0x02, 0xF8, 0x4F, 0x2D, 0xE9 + .byte 0x01, 0x80, 0xA0, 0xE1, 0x18, 0x10, 0xA0, 0xE3, 0x00, 0x90, 0xA0, 0xE1, 0x02, 0x70, 0xA0, 0xE1 + .byte 0x03, 0x60, 0xA0, 0xE1, 0x28, 0x50, 0x9D, 0xE5, 0x2C, 0x40, 0x9D, 0xE5, 0x9F, 0x55, 0xF3, 0xEB + .byte 0x95, 0x01, 0x00, 0xEB, 0x28, 0xAC, 0xA0, 0xE1, 0x28, 0xC4, 0xA0, 0xE1, 0x08, 0xB4, 0xA0, 0xE1 + .byte 0x27, 0x2C, 0xA0, 0xE1, 0x27, 0x14, 0xA0, 0xE1, 0x00, 0x00, 0x89, 0xE5, 0x08, 0x0C, 0xA0, 0xE1 + .byte 0x07, 0xE4, 0xA0, 0xE1, 0xFF, 0x34, 0x00, 0xE2, 0xFF, 0x08, 0x0B, 0xE2, 0xFF, 0xA0, 0x0A, 0xE2 + .byte 0xFF, 0x8C, 0x0C, 0xE2, 0x08, 0x80, 0x8A, 0xE1, 0x26, 0xCC, 0xA0, 0xE1, 0x08, 0x00, 0x80, 0xE1 + .byte 0x26, 0x84, 0xA0, 0xE1, 0x00, 0x30, 0x83, 0xE1, 0x07, 0x0C, 0xA0, 0xE1, 0x06, 0x74, 0xA0, 0xE1 + .byte 0x04, 0x30, 0x89, 0xE5, 0x25, 0x3C, 0xA0, 0xE1, 0xFF, 0x04, 0x00, 0xE2, 0xFF, 0xE8, 0x0E, 0xE2 + .byte 0xFF, 0x20, 0x02, 0xE2, 0xFF, 0x1C, 0x01, 0xE2, 0x01, 0x10, 0x82, 0xE1, 0x25, 0x24, 0xA0, 0xE1 + .byte 0x01, 0x10, 0x8E, 0xE1, 0x06, 0xEC, 0xA0, 0xE1, 0x05, 0x64, 0xA0, 0xE1, 0x01, 0x00, 0x80, 0xE1 + .byte 0x24, 0x1C, 0xA0, 0xE1, 0x08, 0x00, 0x89, 0xE5, 0x24, 0x04, 0xA0, 0xE1, 0xFF, 0xE4, 0x0E, 0xE2 + .byte 0xFF, 0x78, 0x07, 0xE2, 0xFF, 0xC0, 0x0C, 0xE2, 0xFF, 0x8C, 0x08, 0xE2, 0x08, 0x80, 0x8C, 0xE1 + .byte 0x08, 0x70, 0x87, 0xE1, 0x05, 0x5C, 0xA0, 0xE1, 0x04, 0x84, 0xA0, 0xE1, 0x07, 0x70, 0x8E, 0xE1 + .byte 0x04, 0x4C, 0xA0, 0xE1, 0xFF, 0x30, 0x03, 0xE2, 0xFF, 0x2C, 0x02, 0xE2, 0xFF, 0x68, 0x06, 0xE2 + .byte 0x02, 0x20, 0x83, 0xE1, 0xFF, 0x10, 0x01, 0xE2, 0xFF, 0x0C, 0x00, 0xE2, 0xFF, 0x54, 0x05, 0xE2 + .byte 0x02, 0x30, 0x86, 0xE1, 0xFF, 0x28, 0x08, 0xE2, 0x00, 0x00, 0x81, 0xE1, 0x0C, 0x70, 0x89, 0xE5 + .byte 0x03, 0x30, 0x85, 0xE1, 0xFF, 0x14, 0x04, 0xE2, 0x00, 0x00, 0x82, 0xE1, 0x10, 0x30, 0x89, 0xE5 + .byte 0x00, 0x00, 0x81, 0xE1, 0x14, 0x00, 0x89, 0xE5, 0xF8, 0x8F, 0xBD, 0xE8 + + arm_func_start ov01_0232DCCC +ov01_0232DCCC: @ 0x0232DCCC + ldr r3, [r0, #8] + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + lsl r3, r3, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + bx lr + arm_func_end ov01_0232DCCC + + arm_func_start ov01_0232DD00 +ov01_0232DD00: @ 0x0232DD00 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x14 + mov r5, r3 + mov fp, r0 + mov r7, r1 + mov r6, r2 + bl ov01_0232DCCC + cmp r5, r0 + movhs r5, r0 + mov sb, #0 + b _0232DE64 +_0232DD2C: + mov r0, #0x124 + mul r1, sb, r0 + mov r0, #0x148 + mul r8, sb, r0 + add r2, fp, #0xc + mov r0, #0 + add sl, r2, r1 + str r0, [sp] + ldm sl, {r0, r1} + add r4, r7, r8 + bl ov01_0232E1C4 + str r0, [r6, sb, lsl #3] + add r0, r6, sb, lsl #3 + str r1, [r0, #4] + ldr ip, [sl, #0x20] + add r0, r4, #2 + lsl r2, ip, #0x18 + lsr r1, ip, #0x18 + and r3, r2, #0xff000000 + lsl r2, ip, #8 + lsr ip, ip, #8 + and r1, r1, #0xff + and ip, ip, #0xff00 + and r2, r2, #0xff0000 + orr r1, r1, ip + orr r1, r2, r1 + orr r1, r3, r1 + strb r1, [r7, r8] + ldr ip, [sl, #0x1c] + mov r1, #0x14 + lsl r3, ip, #0x18 + lsr r2, ip, #0x18 + and r8, r3, #0xff000000 + lsl r3, ip, #8 + lsr ip, ip, #8 + and r2, r2, #0xff + and ip, ip, #0xff00 + and r3, r3, #0xff0000 + orr r2, r2, ip + orr r2, r3, r2 + orr r2, r8, r2 + strb r2, [r4, #1] + bl FUN_02003250 + add r0, r4, #2 + add r1, sl, #8 + mov r2, #0x14 + bl FUN_0202544C + add r1, sl, #0x24 + add r0, sp, #4 + mov r2, #0x100 + bl FUN_02050974 + add r0, sp, #4 + add r1, sp, #0 + mov r2, #3 + bl FUN_02050A40 + mov sl, #0 + add r8, r4, #0x18 + b _0232DE2C +_0232DE14: + mov r0, #0x4c + mla r1, sl, r0, r8 + ldrsb r2, [r4] + add r0, sp, #4 + bl ov01_0232E58C + add sl, sl, #1 +_0232DE2C: + ldr r3, [sp] + cmp sl, r3 + blt _0232DE14 + mov r2, #0 + mov r0, #0x4c + b _0232DE50 +_0232DE44: + mla r1, r3, r0, r4 + strh r2, [r1, #0x20] + add r3, r3, #1 +_0232DE50: + cmp r3, #4 + blt _0232DE44 + add r0, sp, #4 + bl FUN_020509BC + add sb, sb, #1 +_0232DE64: + cmp sb, r5 + blt _0232DD2C + add sp, sp, #0x14 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov01_0232DD00 + + arm_func_start ov01_0232DE74 +ov01_0232DE74: @ 0x0232DE74 + push {r4, r5, r6, lr} + mov r5, r1 + mov r6, r0 + mov r4, r2 + mov r1, #0xc + bl FUN_02003250 + bl ov01_0232E22C + str r0, [r6] + mov r0, r5 + mov r1, r4 + bl ov01_0232E1C4 + stmib r6, {r0, r1} + pop {r4, r5, r6, pc} + arm_func_end ov01_0232DE74 +_0232DEA8: + .byte 0x04, 0x30, 0x90, 0xE5, 0x23, 0x1C, 0xA0, 0xE1 + .byte 0x23, 0x04, 0xA0, 0xE1, 0x03, 0x24, 0xA0, 0xE1, 0x03, 0x3C, 0xA0, 0xE1, 0xFF, 0x10, 0x01, 0xE2 + .byte 0xFF, 0x0C, 0x00, 0xE2, 0xFF, 0x28, 0x02, 0xE2, 0x00, 0x00, 0x81, 0xE1, 0xFF, 0x14, 0x03, 0xE2 + .byte 0x00, 0x00, 0x82, 0xE1, 0x00, 0x00, 0x81, 0xE1, 0xFF, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x24, 0x31, 0x90, 0xE5, 0x23, 0x1C, 0xA0, 0xE1, 0x23, 0x04, 0xA0, 0xE1, 0x03, 0x24, 0xA0, 0xE1 + .byte 0x03, 0x3C, 0xA0, 0xE1, 0xFF, 0x10, 0x01, 0xE2, 0xFF, 0x0C, 0x00, 0xE2, 0xFF, 0x28, 0x02, 0xE2 + .byte 0x00, 0x00, 0x81, 0xE1, 0xFF, 0x14, 0x03, 0xE2, 0x00, 0x00, 0x82, 0xE1, 0x00, 0x00, 0x81, 0xE1 + .byte 0xFF, 0x00, 0x00, 0xE2, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov01_0232DF18 +ov01_0232DF18: @ 0x0232DF18 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x14 + mov r2, #0 + mov r5, r0 + str r2, [sp] + ldr r3, [r5, #0x20] + mov r4, r1 + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + lsl r3, r3, #0x18 + orr r0, r1, r0 + and r2, r2, #0xff0000 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + strb r0, [r4] + ldr r6, [r5, #0x1c] + add r0, r4, #2 + lsr r2, r6, #0x18 + lsr r1, r6, #8 + lsl r3, r6, #8 + and r2, r2, #0xff + and r1, r1, #0xff00 + lsl r6, r6, #0x18 + orr r1, r2, r1 + and r3, r3, #0xff0000 + and r2, r6, #0xff000000 + orr r1, r3, r1 + orr r2, r2, r1 + mov r1, #0x14 + strb r2, [r4, #1] + bl FUN_02003250 + add r0, r4, #2 + add r1, r5, #8 + mov r2, #0x14 + bl FUN_0202544C + add r0, sp, #4 + add r1, r5, #0x24 + mov r2, #0x100 + bl FUN_02050974 + add r0, sp, #4 + add r1, sp, #0 + mov r2, #3 + bl FUN_02050A40 + mov r8, #0 + add r6, r4, #0x18 + add r7, sp, #4 + mov r5, #0x4c + b _0232DFFC +_0232DFE8: + mla r1, r8, r5, r6 + ldrsb r2, [r4] + mov r0, r7 + bl ov01_0232E58C + add r8, r8, #1 +_0232DFFC: + ldr r3, [sp] + cmp r8, r3 + blt _0232DFE8 + mov r2, #0 + mov r0, #0x4c + b _0232E020 +_0232E014: + mla r1, r3, r0, r4 + strh r2, [r1, #0x20] + add r3, r3, #1 +_0232E020: + cmp r3, #4 + blt _0232E014 + add r0, sp, #4 + bl FUN_020509BC + add sp, sp, #0x14 + pop {r3, r4, r5, r6, r7, r8, pc} + arm_func_end ov01_0232DF18 + + arm_func_start ov01_0232E038 +ov01_0232E038: @ 0x0232E038 + push {r4, r5, r6, lr} + mov r5, r1 + mov r6, r0 + mov r4, r2 + mov r1, #0xc + bl FUN_02003250 + bl ov01_0232E22C + str r0, [r6] + mov r0, r5 + mov r1, r4 + bl ov01_0232E1C4 + stmib r6, {r0, r1} + pop {r4, r5, r6, pc} + arm_func_end ov01_0232E038 +_0232E06C: + .byte 0x04, 0x30, 0x90, 0xE5 + .byte 0x23, 0x1C, 0xA0, 0xE1, 0x23, 0x04, 0xA0, 0xE1, 0x03, 0x24, 0xA0, 0xE1, 0x03, 0x3C, 0xA0, 0xE1 + .byte 0xFF, 0x10, 0x01, 0xE2, 0xFF, 0x0C, 0x00, 0xE2, 0xFF, 0x28, 0x02, 0xE2, 0x00, 0x00, 0x81, 0xE1 + .byte 0xFF, 0x14, 0x03, 0xE2, 0x00, 0x00, 0x82, 0xE1, 0x00, 0x00, 0x81, 0xE1, 0xFF, 0x00, 0x00, 0xE2 + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov01_0232E0A4 +ov01_0232E0A4: @ 0x0232E0A4 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x14 + mov r2, #0 + mov r5, r0 + str r2, [sp] + ldr r3, [r5, #0x20] + mov r4, r1 + lsr r1, r3, #0x18 + lsr r0, r3, #8 + lsl r2, r3, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + lsl r3, r3, #0x18 + orr r0, r1, r0 + and r2, r2, #0xff0000 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + strb r0, [r4] + ldr r6, [r5, #0x1c] + add r0, r4, #2 + lsr r2, r6, #0x18 + lsr r1, r6, #8 + lsl r3, r6, #8 + and r2, r2, #0xff + and r1, r1, #0xff00 + lsl r6, r6, #0x18 + orr r1, r2, r1 + and r3, r3, #0xff0000 + and r2, r6, #0xff000000 + orr r1, r3, r1 + orr r2, r2, r1 + mov r1, #0x14 + strb r2, [r4, #1] + bl FUN_02003250 + add r0, r4, #2 + add r1, r5, #8 + mov r2, #0x14 + bl FUN_0202544C + add r0, sp, #4 + add r1, r5, #0x24 + mov r2, #0x100 + bl FUN_02050974 + add r0, sp, #4 + add r1, sp, #0 + mov r2, #3 + bl FUN_02050A40 + mov r8, #0 + add r6, r4, #0x18 + add r7, sp, #4 + mov r5, #0x4c + b _0232E188 +_0232E174: + mla r1, r8, r5, r6 + ldrsb r2, [r4] + mov r0, r7 + bl ov01_0232E58C + add r8, r8, #1 +_0232E188: + ldr r3, [sp] + cmp r8, r3 + blt _0232E174 + mov r2, #0 + mov r0, #0x4c + b _0232E1AC +_0232E1A0: + mla r1, r3, r0, r4 + strh r2, [r1, #0x20] + add r3, r3, #1 +_0232E1AC: + cmp r3, #4 + blt _0232E1A0 + add r0, sp, #4 + bl FUN_020509BC + add sp, sp, #0x14 + pop {r3, r4, r5, r6, r7, r8, pc} + arm_func_end ov01_0232E0A4 + + arm_func_start ov01_0232E1C4 +ov01_0232E1C4: @ 0x0232E1C4 + push {r4, r5, r6, lr} + lsr r5, r0, #0x18 + lsr r4, r0, #8 + lsr r3, r1, #0x18 + lsr r2, r1, #8 + lsl r6, r0, #8 + lsl ip, r1, #8 + lsl r0, r0, #0x18 + lsl lr, r1, #0x18 + and r5, r5, #0xff + and r4, r4, #0xff00 + and r3, r3, #0xff + and r1, r2, #0xff00 + and r6, r6, #0xff0000 + orr r4, r5, r4 + and r2, ip, #0xff0000 + orr r1, r3, r1 + and r3, r0, #0xff000000 + orr r0, r6, r4 + orr r4, r3, r0 + and r3, lr, #0xff000000 + orr r0, r2, r1 + orr r0, r3, r0 + orr r1, r4, #0 + orr r0, r0, #0 + pop {r4, r5, r6, pc} + arm_func_end ov01_0232E1C4 + + arm_func_start ov01_0232E22C +ov01_0232E22C: @ 0x0232E22C + push {r4, r5, r6, lr} + bl FUN_022BCCC8 + mov r6, r0 + bl FUN_022BCCC8 + mov r5, r0 + bl FUN_022BCCC8 + mov r4, r0 + bl FUN_022BCCC8 + lsr r1, r4, #0x18 + lsr r0, r0, #8 + lsl r2, r5, #8 + lsl r3, r6, #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r1, r3, #0xff000000 + orr r0, r2, r0 + orr r0, r1, r0 + pop {r4, r5, r6, pc} + arm_func_end ov01_0232E22C + + arm_func_start ov01_0232E27C +ov01_0232E27C: @ 0x0232E27C + push {r4, lr} + mov r4, #0 + b _0232E2AC +_0232E288: + lsl lr, r4, #1 + ldrh r3, [r1, lr] + add r4, r4, #1 + asr ip, r3, #8 + lsl r3, r3, #8 + and ip, ip, #0xff + and r3, r3, #0xff00 + orr r3, ip, r3 + strh r3, [r0, lr] +_0232E2AC: + lsl r3, r4, #1 + ldrh r3, [r1, r3] + cmp r3, #0 + beq _0232E2C4 + cmp r4, r2 + blt _0232E288 +_0232E2C4: + cmp r4, r2 + lsllt r1, r4, #1 + movlt r2, #0 + strhlt r2, [r0, r1] + pop {r4, pc} + arm_func_end ov01_0232E27C + + arm_func_start ov01_0232E2D8 +ov01_0232E2D8: @ 0x0232E2D8 + push {r4, lr} + mov r4, #0 + b _0232E308 +_0232E2E4: + lsl lr, r4, #1 + ldrh r3, [r1, lr] + add r4, r4, #1 + asr ip, r3, #8 + lsl r3, r3, #8 + and ip, ip, #0xff + and r3, r3, #0xff00 + orr r3, ip, r3 + strh r3, [r0, lr] +_0232E308: + lsl r3, r4, #1 + ldrh r3, [r1, r3] + cmp r3, #0 + beq _0232E320 + cmp r4, r2 + blt _0232E2E4 +_0232E320: + cmp r4, r2 + lsllt r1, r4, #1 + movlt r2, #0 + strhlt r2, [r0, r1] + pop {r4, pc} + arm_func_end ov01_0232E2D8 + + arm_func_start ov01_0232E334 +ov01_0232E334: @ 0x0232E334 + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x24 + ldr r3, _0232E588 @ =0x0233AF10 + mov r5, r2 + ldrh r2, [r3] + mov r7, r0 + mov r6, r1 + strh r2, [sp, #8] + ldrh r4, [r3, #2] + mov r3, #0 + mov r2, #4 + strh r4, [sp, #0xa] + str r3, [sp, #4] + bl FUN_020509C0 + mov r0, r7 + add r1, r6, #4 + mov r2, #7 + bl FUN_020509C0 + mov r0, r7 + add r1, r6, #5 + bl FUN_020515C4 + mov r0, r7 + add r1, r6, #8 + mov r2, #0xb + bl FUN_020509C0 + mov r0, r7 + add r1, r6, #0xa + bl FUN_02059AF8 + mov r0, r7 + add r1, r6, #0xb + bl FUN_02059AF8 + mov r0, r7 + add r1, r6, #0xc + mov r2, #0xa + bl FUN_020509C0 + mov r0, r7 + add r1, r6, #0xe + mov r2, #0xa + bl FUN_020509C0 + mov r0, r7 + add r1, r6, #0x10 + mov r2, #8 + bl FUN_020509C0 + mov r0, r7 + add r1, r6, #0x11 + mov r2, #8 + bl FUN_020509C0 + mov r0, r7 + add r1, r6, #0x12 + mov r2, #8 + bl FUN_020509C0 + mov r0, r7 + add r1, r6, #0x13 + mov r2, #8 + bl FUN_020509C0 + mov r0, r7 + add r1, r6, #0x14 + mov r2, #0x18 + bl FUN_020509C0 + mov r0, r7 + add r1, r6, #0x18 + mov r2, #0x45 + bl FUN_020509C0 + mov r0, r7 + add r1, r6, #0x24 + mov r2, #4 + bl FUN_020509C0 + mov r0, r7 + add r1, sp, #4 + mov r2, #3 + bl FUN_020509C0 + mov r0, r7 + add r1, sp, #8 + bl FUN_0200DFE4 + mov r0, r7 + add r1, r6, #0x2a + bl FUN_02014ABC + add r0, sp, #0xc + mov r1, #0x18 + bl FUN_02003250 + cmp r5, #0 + mov r5, #0 + beq _0232E4FC + mov r0, #0x14 + mov r1, #0 + bl FUN_02001170 + add r1, r6, #0x42 + mov r2, #0xa + mov r4, r0 + bl FUN_02025404 + add r1, sp, #0xc + b _0232E4D4 +_0232E4A4: + lsl r3, r5, #1 + ldrh r0, [r4, r3] + asr r2, r0, #8 + lsl r0, r0, #8 + and r2, r2, #0xff + and r0, r0, #0xff00 + orr r0, r2, r0 + strh r0, [r1, r3] + ldrh r0, [r1, r3] + cmp r0, #0 + beq _0232E4DC + add r5, r5, #1 +_0232E4D4: + cmp r5, #0xa + blt _0232E4A4 +_0232E4DC: + cmp r5, #0xa + addne r0, sp, #0xc + lslne r1, r5, #1 + movne r2, #0 + strhne r2, [r0, r1] + mov r0, r4 + bl FUN_02001188 + b _0232E570 +_0232E4FC: + ldrsh r0, [r6, #8] + bl FUN_020526C8 + str r0, [sp] + add r6, sp, #0xc + add r4, sp, #0 + b _0232E54C +_0232E514: + mov r0, r4 + bl FUN_0202065C + mov sb, r0 + bl FUN_02025480 + mov r8, r0 + mov r0, sb + bl FUN_02025480 + asr r1, r0, #8 + lsl r0, r8, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + strh r0, [r6], #2 + add r5, r5, #1 +_0232E54C: + ldr r0, [sp] + ldrb r0, [r0] + cmp r0, #0 + beq _0232E564 + cmp r5, #0xa + blt _0232E514 +_0232E564: + cmp r5, #0xa + movlt r0, #0 + strhlt r0, [r6] +_0232E570: + add r1, sp, #0xc + mov r0, r7 + mov r2, #0xa0 + bl FUN_020509C0 + add sp, sp, #0x24 + pop {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0232E588: .4byte 0x0233AF10 + arm_func_end ov01_0232E334 + + arm_func_start ov01_0232E58C +ov01_0232E58C: @ 0x0232E58C + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x2c + mov r4, r2 + mov r5, r1 + mov r2, #4 + mov r6, r0 + bl FUN_02050A40 + ldrh r2, [r5] + mov r0, r6 + add r1, r5, #4 + and r3, r2, #1 + mov r2, #7 + strh r3, [r5] + bl FUN_02050A40 + mov r0, r6 + add r1, r5, #5 + bl FUN_020515EC + mov r0, r6 + add r1, r5, #8 + mov r2, #0xb + bl FUN_02050A40 + mov r0, r6 + add r1, r5, #0xa + bl FUN_02059AE8 + mov r0, r6 + add r1, r5, #0xb + bl FUN_02059AE8 + mov r0, r6 + add r1, r5, #0xc + mov r2, #0xa + bl FUN_02050A40 + mov r0, r6 + add r1, r5, #0xe + mov r2, #0xa + bl FUN_02050A40 + mov r0, r6 + add r1, r5, #0x10 + mov r2, #8 + bl FUN_02050A40 + mov r0, r6 + add r1, r5, #0x11 + mov r2, #8 + bl FUN_02050A40 + mov r0, r6 + add r1, r5, #0x12 + mov r2, #8 + bl FUN_02050A40 + mov r0, r6 + add r1, r5, #0x13 + mov r2, #8 + bl FUN_02050A40 + mov r0, r6 + add r1, r5, #0x14 + mov r2, #0x18 + bl FUN_02050A40 + mov r0, r6 + add r1, r5, #0x18 + mov r2, #0x45 + bl FUN_02050A40 + mov r0, r6 + add r1, r5, #0x24 + mov r2, #4 + bl FUN_02050A40 + mov r0, r6 + add r1, r5, #0x25 + mov r2, #3 + bl FUN_02050A40 + mov r0, r6 + add r1, r5, #0x26 + bl FUN_0200DFBC + mov r2, #0 + strh r2, [r5, #0x26] + mov r0, r6 + add r1, r5, #0x2a + strh r2, [r5, #0x28] + bl FUN_02014AEC + add r1, sp, #0 + mov r0, r6 + mov r2, #0xa0 + bl FUN_02050A40 + bl FUN_020205A0 + cmp r4, r0 + bne _0232E748 + mov r0, #0x14 + mov r1, #0 + bl FUN_02001170 + mov r4, r0 + mov ip, #0 + add r2, sp, #0 + b _0232E724 +_0232E6F4: + lsl r3, ip, #1 + ldrh r0, [r2, r3] + asr r1, r0, #8 + lsl r0, r0, #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + strh r0, [r4, r3] + ldrh r0, [r4, r3] + cmp r0, #0 + beq _0232E72C + add ip, ip, #1 +_0232E724: + cmp ip, #0xa + blt _0232E6F4 +_0232E72C: + mov r1, r4 + add r0, r5, #0x42 + mov r2, #0xa + bl FUN_0202544C + mov r0, r4 + bl FUN_02001188 + b _0232E760 +_0232E748: + ldrsh r0, [r5, #8] + bl FUN_020526C8 + mov r1, r0 + add r0, r5, #0x42 + mov r2, #0xa + bl FUN_02025314 +_0232E760: + add sp, sp, #0x2c + pop {r3, r4, r5, r6, pc} + arm_func_end ov01_0232E58C + + arm_func_start ov01_0232E768 +ov01_0232E768: @ 0x0232E768 + push {r3, r4, r5, lr} + mov r0, #0x54 + mov r1, #1 + bl FUN_02001170 + mov r5, r0 + ldr r0, _0232E7B8 @ =0x0233C148 + ldr r4, _0232E7BC @ =0x0233AF64 + str r5, [r0] + add lr, r5, #0x2c + mov ip, #2 +_0232E790: + ldm r4!, {r0, r1, r2, r3} + stm lr!, {r0, r1, r2, r3} + subs ip, ip, #1 + bne _0232E790 + ldr r1, [r4] + mov r0, #0 + str r1, [lr] + str r0, [r5, #0x50] + bl ov01_0232E7E8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0232E7B8: .4byte 0x0233C148 +_0232E7BC: .4byte 0x0233AF64 + arm_func_end ov01_0232E768 + + arm_func_start ov01_0232E7C0 +ov01_0232E7C0: @ 0x0232E7C0 + push {r3, lr} + bl ov01_0232E7E8 + ldr r0, _0232E7E4 @ =0x0233C148 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0232E7E4 @ =0x0233C148 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0232E7E4: .4byte 0x0233C148 + arm_func_end ov01_0232E7C0 + + arm_func_start ov01_0232E7E8 +ov01_0232E7E8: @ 0x0232E7E8 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x24 + ldr r0, _0232E8D0 @ =0x0233C148 + ldr r1, [r0] + ldr r0, [r1, #0x50] + add r4, r1, #0x2c + cmp r0, #2 + bne _0232E830 + ldr r0, _0232E8D4 @ =0x0233AF64 + mov r1, r4 + bl ov01_0232E8D8 + cmp r0, #0 + bne _0232E830 + ldr r1, [r4, #8] + cmp r1, #0 + beq _0232E830 + mov r0, #1 + blx r1 +_0232E830: + ldr r0, _0232E8D0 @ =0x0233C148 + mov r1, #0 + ldr r0, [r0] + ldr lr, _0232E8D4 @ =0x0233AF64 + add ip, sp, #0 + strb r1, [r0] + mov r5, #2 +_0232E84C: + ldm lr!, {r0, r1, r2, r3} + stm ip!, {r0, r1, r2, r3} + subs r5, r5, #1 + bne _0232E84C + ldr r0, _0232E8D0 @ =0x0233C148 + ldr r1, [lr] + ldr r6, [r0] + str r1, [ip] + add r5, sp, #0 + add lr, r6, #4 + mov ip, #2 +_0232E878: + ldm r5!, {r0, r1, r2, r3} + stm lr!, {r0, r1, r2, r3} + subs ip, ip, #1 + bne _0232E878 + ldr r1, [r5] + mov r0, #0 + str r1, [lr] + add lr, sp, #0 + strb r0, [r6, #0x28] + mov ip, #2 +_0232E8A0: + ldm lr!, {r0, r1, r2, r3} + stm r4!, {r0, r1, r2, r3} + subs ip, ip, #1 + bne _0232E8A0 + ldr r1, [lr] + ldr r0, _0232E8D0 @ =0x0233C148 + str r1, [r4] + ldr r0, [r0] + mov r1, #0 + str r1, [r0, #0x50] + add sp, sp, #0x24 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0232E8D0: .4byte 0x0233C148 +_0232E8D4: .4byte 0x0233AF64 + arm_func_end ov01_0232E7E8 + + arm_func_start ov01_0232E8D8 +ov01_0232E8D8: @ 0x0232E8D8 + cmp r0, #0 + ldreq r0, _0232E948 @ =0x0233AF64 + cmp r1, #0 + ldreq r1, _0232E948 @ =0x0233AF64 + ldr r3, [r0] + ldr r2, [r1] + cmp r3, r2 + ldreq r3, [r0, #4] + ldreq r2, [r1, #4] + cmpeq r3, r2 + ldreq r3, [r0, #8] + ldreq r2, [r1, #8] + cmpeq r3, r2 + ldreq r3, [r0, #0x18] + ldreq r2, [r1, #0x18] + cmpeq r3, r2 + ldreq r3, [r0, #0x14] + ldreq r2, [r1, #0x14] + cmpeq r3, r2 + ldreq r3, [r0, #0x1c] + ldreq r2, [r1, #0x1c] + cmpeq r3, r2 + ldreq r2, [r0, #0x20] + ldreq r0, [r1, #0x20] + cmpeq r2, r0 + moveq r0, #1 + movne r0, #0 + bx lr + .align 2, 0 +_0232E948: .4byte 0x0233AF64 + arm_func_end ov01_0232E8D8 + + arm_func_start ov01_0232E94C +ov01_0232E94C: @ 0x0232E94C + push {r3, lr} + ldr r0, _0232E998 @ =0x0233C148 + ldr r1, [r0] + ldrb r0, [r1] + cmp r0, #0 + ldrbeq r0, [r1, #0x28] + cmpeq r0, #0 + movne r0, #1 + popne {r3, pc} + ldr r0, [r1, #0x50] + cmp r0, #1 + moveq r0, #1 + popeq {r3, pc} + cmp r0, #2 + movne r0, #0 + popne {r3, pc} + ldr r0, [r1, #0x38] + blx r0 + pop {r3, pc} + .align 2, 0 +_0232E998: .4byte 0x0233C148 + arm_func_end ov01_0232E94C + + arm_func_start ov01_0232E99C +ov01_0232E99C: @ 0x0232E99C + push {r4, lr} + ldr r1, _0232EA2C @ =0x0233C148 + mov r4, r0 + ldr r1, [r1] + add r1, r1, #0x2c + bl ov01_0232E8D8 + cmp r0, #0 + bne _0232EA24 + ldr r0, _0232EA2C @ =0x0233C148 + ldr r2, [r0] + ldrb r1, [r2] + cmp r1, #0 + beq _0232E9E4 + mov r0, r4 + add r1, r2, #4 + bl ov01_0232E8D8 + mov r0, #0 + pop {r4, pc} +_0232E9E4: + mov r1, #1 + strb r1, [r2] + ldr r1, [r0] + mov r2, #0 + strb r2, [r1, #0x28] + ldr r0, [r0] + mov ip, #2 + add lr, r0, #4 +_0232EA04: + ldm r4!, {r0, r1, r2, r3} + stm lr!, {r0, r1, r2, r3} + subs ip, ip, #1 + bne _0232EA04 + ldr r1, [r4] + mov r0, #1 + str r1, [lr] + pop {r4, pc} +_0232EA24: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_0232EA2C: .4byte 0x0233C148 + arm_func_end ov01_0232E99C + + arm_func_start ov01_0232EA30 +ov01_0232EA30: @ 0x0232EA30 + push {r4, r5, lr} + sub sp, sp, #0x24 + ldr r0, _0232EC28 @ =0x0233C148 + ldr r1, [r0] + ldr r0, [r1, #0x50] + add r4, r1, #0x2c + cmp r0, #1 + beq _0232EC20 + cmp r0, #2 + bne _0232EB00 + add ip, sp, #0 + mov lr, r4 + mov r5, #2 +_0232EA64: + ldm lr!, {r0, r1, r2, r3} + stm ip!, {r0, r1, r2, r3} + subs r5, r5, #1 + bne _0232EA64 + ldr r0, [lr] + str r0, [ip] + ldr r0, [r4, #0x14] + blx r0 + cmp r0, #1 + bne _0232EB00 + add r1, sp, #0 + mov r0, r4 + bl ov01_0232E8D8 + cmp r0, #0 + beq _0232EB00 + ldr r0, _0232EC28 @ =0x0233C148 + mov r1, #3 + ldr r0, [r0] + str r1, [r0, #0x50] + ldr r1, [r4, #8] + cmp r1, #0 + beq _0232EAC4 + mov r0, #1 + blx r1 +_0232EAC4: + ldr r5, _0232EC2C @ =0x0233AF64 + mov lr, r4 + mov ip, #2 +_0232EAD0: + ldm r5!, {r0, r1, r2, r3} + stm lr!, {r0, r1, r2, r3} + subs ip, ip, #1 + bne _0232EAD0 + ldr r1, [r5] + ldr r0, _0232EC28 @ =0x0233C148 + str r1, [lr] + ldr r1, [r0] + mov r2, #0 + strb r2, [r1, #0x28] + ldr r0, [r0] + str r2, [r0, #0x50] +_0232EB00: + ldr r0, _0232EC28 @ =0x0233C148 + ldr r1, [r0] + ldrb r0, [r1] + cmp r0, #0 + beq _0232EBAC + ldr r0, _0232EC2C @ =0x0233AF64 + mov r1, r4 + bl ov01_0232E8D8 + cmp r0, #0 + bne _0232EB44 + ldr r1, [r4, #8] + cmp r1, #0 + beq _0232EB44 + mov r0, #0 + blx r1 + cmp r0, #0 + beq _0232EC20 +_0232EB44: + ldr r0, _0232EC28 @ =0x0233C148 + mov ip, #2 + ldr r5, [r0] + add lr, r5, #4 +_0232EB54: + ldm lr!, {r0, r1, r2, r3} + stm r4!, {r0, r1, r2, r3} + subs ip, ip, #1 + bne _0232EB54 + ldr r0, [lr] + mov r1, #0 + str r0, [r4] + ldr r0, _0232EC28 @ =0x0233C148 + strb r1, [r5] + ldr r5, [r0] + ldr lr, _0232EC2C @ =0x0233AF64 + add ip, r5, #4 + mov r4, #2 +_0232EB88: + ldm lr!, {r0, r1, r2, r3} + stm ip!, {r0, r1, r2, r3} + subs r4, r4, #1 + bne _0232EB88 + ldr r1, [lr] + mov r0, #1 + str r1, [ip] + str r0, [r5, #0x50] + b _0232EC20 +_0232EBAC: + ldrb r0, [r1, #0x28] + cmp r0, #0 + beq _0232EC20 + ldr r0, _0232EC2C @ =0x0233AF64 + mov r1, r4 + bl ov01_0232E8D8 + cmp r0, #0 + bne _0232EBE8 + ldr r1, [r4, #8] + cmp r1, #0 + beq _0232EBE8 + mov r0, #0 + blx r1 + cmp r0, #0 + beq _0232EC20 +_0232EBE8: + ldr lr, _0232EC2C @ =0x0233AF64 + mov ip, #2 +_0232EBF0: + ldm lr!, {r0, r1, r2, r3} + stm r4!, {r0, r1, r2, r3} + subs ip, ip, #1 + bne _0232EBF0 + ldr r1, [lr] + ldr r0, _0232EC28 @ =0x0233C148 + str r1, [r4] + ldr r1, [r0] + mov r2, #0 + strb r2, [r1, #0x28] + ldr r0, [r0] + str r2, [r0, #0x50] +_0232EC20: + add sp, sp, #0x24 + pop {r4, r5, pc} + .align 2, 0 +_0232EC28: .4byte 0x0233C148 +_0232EC2C: .4byte 0x0233AF64 + arm_func_end ov01_0232EA30 + + arm_func_start ov01_0232EC30 +ov01_0232EC30: @ 0x0232EC30 + push {r4, r5, r6, lr} + ldr r0, _0232ED54 @ =0x0233C148 + ldr lr, [r0] + ldr r0, [lr, #0x50] + add ip, lr, #0x2c + cmp r0, #2 + bne _0232EC60 + ldr r0, [ip, #0x18] + cmp r0, #0 + popeq {r4, r5, r6, pc} + blx r0 + pop {r4, r5, r6, pc} +_0232EC60: + cmp r0, #1 + popne {r4, r5, r6, pc} + ldrb r0, [lr] + cmp r0, #0 + beq _0232ECC4 + mov r5, ip + add r6, lr, #4 + mov r4, #2 +_0232EC80: + ldm r6!, {r0, r1, r2, r3} + stm r5!, {r0, r1, r2, r3} + subs r4, r4, #1 + bne _0232EC80 + ldr r0, [r6] + ldr r6, _0232ED58 @ =0x0233AF64 + str r0, [r5] + add r5, lr, #4 + mov r4, #2 +_0232ECA4: + ldm r6!, {r0, r1, r2, r3} + stm r5!, {r0, r1, r2, r3} + subs r4, r4, #1 + bne _0232ECA4 + ldr r1, [r6] + mov r0, #0 + str r1, [r5] + strb r0, [lr] +_0232ECC4: + ldr r0, _0232ED54 @ =0x0233C148 + ldr lr, [r0] + ldrb r0, [lr, #0x28] + cmp r0, #0 + beq _0232ED10 + ldr r5, _0232ED58 @ =0x0233AF64 + mov r4, #2 +_0232ECE0: + ldm r5!, {r0, r1, r2, r3} + stm ip!, {r0, r1, r2, r3} + subs r4, r4, #1 + bne _0232ECE0 + ldr r0, [r5] + mov r1, #0 + str r0, [ip] + ldr r0, _0232ED54 @ =0x0233C148 + strb r1, [lr, #0x28] + ldr r0, [r0] + str r1, [r0, #0x50] + pop {r4, r5, r6, pc} +_0232ED10: + ldr r0, [ip, #4] + cmp r0, #0 + beq _0232ED48 + blx r0 + cmp r0, #0 + ldreq r0, _0232ED54 @ =0x0233C148 + moveq r1, #3 + ldreq r0, [r0] + streq r1, [r0, #0x50] + ldrne r0, _0232ED54 @ =0x0233C148 + movne r1, #2 + ldrne r0, [r0] + strne r1, [r0, #0x50] + pop {r4, r5, r6, pc} +_0232ED48: + mov r0, #2 + str r0, [lr, #0x50] + pop {r4, r5, r6, pc} + .align 2, 0 +_0232ED54: .4byte 0x0233C148 +_0232ED58: .4byte 0x0233AF64 + arm_func_end ov01_0232EC30 + + arm_func_start ov01_0232ED5C +ov01_0232ED5C: @ 0x0232ED5C + push {r3, lr} + ldr r0, _0232ED80 @ =0x0233C148 + ldr r1, [r0] + ldr r0, [r1, #0x50] + cmp r0, #2 + popne {r3, pc} + ldr r0, [r1, #0x48] + blx r0 + pop {r3, pc} + .align 2, 0 +_0232ED80: .4byte 0x0233C148 + arm_func_end ov01_0232ED5C + + arm_func_start ov01_0232ED84 +ov01_0232ED84: @ 0x0232ED84 + push {r3, lr} + ldr r0, _0232EDA8 @ =0x0233C148 + ldr r1, [r0] + ldr r0, [r1, #0x50] + cmp r0, #2 + popne {r3, pc} + ldr r0, [r1, #0x4c] + blx r0 + pop {r3, pc} + .align 2, 0 +_0232EDA8: .4byte 0x0233C148 + arm_func_end ov01_0232ED84 + + arm_func_start ov01_0232EDAC +ov01_0232EDAC: @ 0x0232EDAC + ldr ip, _0232EDB8 @ =ov01_0232E99C + ldr r0, _0232EDBC @ =0x0233AF88 + bx ip + .align 2, 0 +_0232EDB8: .4byte ov01_0232E99C +_0232EDBC: .4byte 0x0233AF88 + arm_func_end ov01_0232EDAC + + arm_func_start ov01_0232EDC0 +ov01_0232EDC0: @ 0x0232EDC0 + push {r3, lr} + mov r0, #4 + mov r1, #0xf + bl FUN_02001170 + ldr r1, _0232EDE8 @ =0x0233C14C + mov r2, #0 + str r0, [r1] + str r2, [r0] + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0232EDE8: .4byte 0x0233C14C + arm_func_end ov01_0232EDC0 + + arm_func_start ov01_0232EDEC +ov01_0232EDEC: @ 0x0232EDEC + push {r3, lr} + cmp r0, #0 + bne _0232EE10 + ldr r0, _0232EE30 @ =0x0233C14C + ldr r0, [r0] + ldr r0, [r0] + cmp r0, #6 + movne r0, #0 + popne {r3, pc} +_0232EE10: + ldr r0, _0232EE30 @ =0x0233C14C + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0232EE30 @ =0x0233C14C + mov r1, #0 + str r1, [r0] + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0232EE30: .4byte 0x0233C14C + arm_func_end ov01_0232EDEC +_0232EE34: + .byte 0x18, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x06, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0xFF, 0x00, 0x00, 0xE2 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x4C, 0xC1, 0x33, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0xC0, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x05, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90 + .byte 0x29, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x1C, 0x00, 0x00, 0xEA, 0x26, 0x00, 0x00, 0xEA + .byte 0x21, 0x00, 0x00, 0xEA, 0x24, 0x00, 0x00, 0xEA, 0x1F, 0x00, 0x00, 0xEA, 0x06, 0x3E, 0xFE, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x20, 0x00, 0x00, 0x1A, 0x08, 0x3E, 0xFE, 0xEB, 0x01, 0x0C, 0x50, 0xE3 + .byte 0x7C, 0x00, 0x9F, 0x05, 0x04, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x90, 0x05, 0x00, 0x10, 0x80, 0x05 + .byte 0x19, 0x00, 0x00, 0x0A, 0x01, 0x3E, 0xFE, 0xEB, 0xFF, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1 + .byte 0x5C, 0x00, 0x9F, 0x05, 0x02, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x90, 0x05, 0x00, 0x10, 0x80, 0x05 + .byte 0x11, 0x00, 0x00, 0x0A, 0x10, 0x00, 0xA0, 0xE3, 0xD4, 0x3D, 0xFE, 0xEB, 0x40, 0x00, 0x9F, 0xE5 + .byte 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x0A, 0x00, 0x00, 0xEA + .byte 0xED, 0x3D, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x24, 0x00, 0x9F, 0x05, 0x02, 0x10, 0xA0, 0x03 + .byte 0x00, 0x00, 0x90, 0x05, 0x00, 0x10, 0x80, 0x05, 0x03, 0x00, 0x00, 0xEA, 0x06, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x81, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x08, 0x80, 0xBD, 0xE8, 0x4C, 0xC1, 0x33, 0x02, 0x18, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x02, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x50, 0x13, 0x01, 0x00, 0xA0, 0x03 + .byte 0x00, 0x00, 0xA0, 0x13, 0x1E, 0xFF, 0x2F, 0xE1, 0x4C, 0xC1, 0x33, 0x02, 0x08, 0x40, 0x2D, 0xE9 + .byte 0x4C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x02, 0x00, 0x50, 0xE3 + .byte 0x04, 0x00, 0x50, 0x13, 0x08, 0x80, 0xBD, 0x18, 0x01, 0x00, 0xA0, 0xE3, 0x02, 0x10, 0xA0, 0xE3 + .byte 0xFB, 0x67, 0xF3, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x03, 0x10, 0xA0, 0xE3, 0xF8, 0x67, 0xF3, 0xEB + .byte 0x1C, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x02, 0x00, 0x50, 0xE3 + .byte 0x03, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x81, 0x05, 0x05, 0x00, 0xA0, 0x13, 0x00, 0x00, 0x81, 0x15 + .byte 0x08, 0x80, 0xBD, 0xE8, 0x4C, 0xC1, 0x33, 0x02 + + arm_func_start FUN_0232EFA8 +FUN_0232EFA8: @ 0x0232EFA8 + push {r4, lr} + mov r4, r0 + ldr r0, _0232EFE0 @ =0x0233AFAC + bl ov01_0232E99C + cmp r0, #0 + ldrne r0, _0232EFE4 @ =0x0233C150 + strne r4, [r0, #4] + popne {r4, pc} + ldr r0, _0232EFE4 @ =0x0233C150 + ldr r1, [r0] + ldr r0, [r1, #8] + cmp r0, r4 + strne r4, [r1, #0x10] + pop {r4, pc} + .align 2, 0 +_0232EFE0: .4byte 0x0233AFAC +_0232EFE4: .4byte 0x0233C150 + arm_func_end FUN_0232EFA8 + + arm_func_start ov01_0232EFE8 +ov01_0232EFE8: @ 0x0232EFE8 + push {r3, lr} + mov r0, #0x18 + mov r1, #0xf + bl FUN_02001170 + ldr r1, _0232F034 @ =0x0233C150 + str r0, [r1] + bl ov01_0232F08C + mov r0, #0x10 + bl FUN_022BE64C + ldr r1, _0232F034 @ =0x0233C150 + mov r3, #0 + ldm r1, {r2, ip} + str ip, [r2, #0x10] + ldr r2, [r1] + mov r0, #1 + strb r3, [r2, #0x14] + ldr r1, [r1] + str r3, [r1, #4] + pop {r3, pc} + .align 2, 0 +_0232F034: .4byte 0x0233C150 + arm_func_end ov01_0232EFE8 + + arm_func_start ov01_0232F038 +ov01_0232F038: @ 0x0232F038 + push {r3, lr} + cmp r0, #0 + bne _0232F064 + ldr r0, _0232F088 @ =0x0233C150 + ldr r1, [r0] + ldr r0, [r1, #4] + cmp r0, #7 + movne r0, #1 + strbne r0, [r1, #0x14] + movne r0, #0 + popne {r3, pc} +_0232F064: + bl ov01_0232F08C + ldr r0, _0232F088 @ =0x0233C150 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0232F088 @ =0x0233C150 + mov r1, #0 + str r1, [r0] + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0232F088: .4byte 0x0233C150 + arm_func_end ov01_0232F038 + + arm_func_start ov01_0232F08C +ov01_0232F08C: @ 0x0232F08C + ldr r0, _0232F0BC @ =0x0233C150 + mov r3, #0 + ldr r1, [r0] + mov r2, #1 + strb r3, [r1] + ldr r1, [r0] + str r2, [r1, #4] + ldr r1, [r0] + strb r2, [r1, #0xc] + ldr r0, [r0] + str r3, [r0, #0x10] + bx lr + .align 2, 0 +_0232F0BC: .4byte 0x0233C150 + arm_func_end ov01_0232F08C +_0232F0C0: + .byte 0x14, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x00, 0x00, 0xD1, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x01, 0x00, 0xA0, 0x13, 0x0C, 0x00, 0xD1, 0x05, 0x1E, 0xFF, 0x2F, 0xE1, 0x50, 0xC1, 0x33, 0x02 + .byte 0x08, 0x40, 0x2D, 0xE9, 0x9C, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x00, 0x90, 0xE5 + .byte 0x07, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x60, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA + .byte 0x0F, 0x00, 0x00, 0xEA, 0x5D, 0x00, 0x00, 0xEA, 0x5C, 0x00, 0x00, 0xEA, 0x32, 0x00, 0x00, 0xEA + .byte 0x3C, 0x00, 0x00, 0xEA, 0x4E, 0x00, 0x00, 0xEA, 0x54, 0x00, 0x00, 0xEA, 0x62, 0x3D, 0xFE, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x5C, 0x01, 0x9F, 0x15, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0x15 + .byte 0x0C, 0x10, 0xC0, 0x15, 0x51, 0x00, 0x00, 0x1A, 0x48, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x04, 0x10, 0x80, 0xE5, 0x58, 0x3D, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x34, 0x01, 0x9F, 0x15 + .byte 0x01, 0x10, 0xA0, 0x13, 0x00, 0x00, 0x90, 0x15, 0x0C, 0x10, 0xC0, 0x15, 0x47, 0x00, 0x00, 0x1A + .byte 0x20, 0x01, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x14, 0x10, 0xD2, 0xE5, 0x00, 0x00, 0x51, 0xE3 + .byte 0x09, 0x00, 0x00, 0x0A, 0x10, 0x00, 0xA0, 0xE3, 0x2C, 0x3D, 0xFE, 0xEB, 0x04, 0x01, 0x9F, 0xE5 + .byte 0x01, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x06, 0x10, 0xA0, 0xE3, 0x0C, 0x30, 0xC2, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x38, 0x00, 0x00, 0xEA, 0x10, 0x10, 0x92, 0xE5 + .byte 0x00, 0x00, 0x51, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x0C, 0x00, 0xC2, 0x05, 0x33, 0x00, 0x00, 0x0A + .byte 0x08, 0x10, 0x82, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x01, 0x20, 0xA0, 0xE3, 0x0C, 0x20, 0xC1, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x10, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x02, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x80, 0xE5, 0x28, 0x00, 0x00, 0xEA, 0x32, 0x3D, 0xFE, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x9C, 0x00, 0x9F, 0x15, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x00, 0x90, 0x15 + .byte 0x0C, 0x10, 0xC0, 0x15, 0x21, 0x00, 0x00, 0x1A, 0x88, 0x00, 0x9F, 0xE5, 0x05, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x78, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5 + .byte 0x14, 0x00, 0xD1, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x10, 0x00, 0x91, 0x05, 0x00, 0x00, 0x50, 0x03 + .byte 0x00, 0x00, 0xA0, 0x03, 0x0C, 0x00, 0xC1, 0x05, 0x14, 0x00, 0x00, 0x0A, 0x10, 0x00, 0xA0, 0xE3 + .byte 0xFE, 0x3C, 0xFE, 0xEB, 0x4C, 0x00, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x01, 0x10, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x0C, 0x10, 0xC0, 0xE5 + .byte 0x0A, 0x00, 0x00, 0xEA, 0x14, 0x3D, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x1A + .byte 0x20, 0x00, 0x9F, 0xE5, 0x07, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5 + .byte 0x10, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x0C, 0x10, 0xC0, 0xE5 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8, 0x50, 0xC1, 0x33, 0x02 + + arm_func_start ov01_0232F28C +ov01_0232F28C: @ 0x0232F28C + push {r3, lr} + sub sp, sp, #8 + ldr r0, _0232F334 @ =0x0233C150 + ldr r1, [r0] + ldr r0, [r1, #4] + cmp r0, #2 + bne _0232F32C + mov r0, #1 + strb r0, [r1, #0xc] + bl ov01_0232F08C + ldr r0, _0232F334 @ =0x0233C150 + ldr r0, [r0] + ldr r0, [r0, #8] + ldr r0, [r0, #4] + cmp r0, #0 + beq _0232F2E8 + mov r1, #0 + mov r2, r1 + mov r3, r1 + str r1, [sp] + mov ip, #1 + str ip, [sp, #4] + bl FUN_02052060 +_0232F2E8: + ldr r0, _0232F334 @ =0x0233C150 + ldr r0, [r0] + ldr r0, [r0, #8] + ldr r0, [r0] + cmp r0, #0 + beq _0232F31C + mov r1, #0 + mov ip, #1 + str ip, [sp] + mov r2, r1 + mov r3, r1 + str ip, [sp, #4] + bl FUN_02052060 +_0232F31C: + ldr r0, _0232F334 @ =0x0233C150 + mov r1, #3 + ldr r0, [r0] + str r1, [r0, #4] +_0232F32C: + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_0232F334: .4byte 0x0233C150 + arm_func_end ov01_0232F28C + + arm_func_start ov01_0232F338 +ov01_0232F338: @ 0x0232F338 + push {r3, lr} + ldr r0, _0232F380 @ =0x0233C150 + ldr r3, [r0] + ldr r1, [r3, #4] + cmp r1, #3 + bne _0232F378 + mov r2, #1 + strb r2, [r3, #0xc] + ldr r1, [r0] + mov r0, #0x10 + strb r2, [r1] + bl FUN_022BE618 + ldr r0, _0232F380 @ =0x0233C150 + mov r1, #4 + ldr r0, [r0] + str r1, [r0, #4] +_0232F378: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0232F380: .4byte 0x0233C150 + arm_func_end ov01_0232F338 + + arm_func_start ov01_0232F384 +ov01_0232F384: @ 0x0232F384 + push {r3, lr} + ldr r0, _0232F3F0 @ =0x0233C150 + ldr r1, [r0] + ldrb r0, [r1] + cmp r0, #0 + popeq {r3, pc} + ldr r0, [r1, #8] + ldr r0, [r0, #4] + cmp r0, #0 + bne _0232F3B8 + mov r0, #1 + mov r1, #2 + bl FUN_02008F64 +_0232F3B8: + ldr r0, _0232F3F0 @ =0x0233C150 + ldr r0, [r0] + ldr r0, [r0, #8] + ldr r0, [r0] + cmp r0, #0 + bne _0232F3DC + mov r0, #1 + mov r1, #3 + bl FUN_02008F64 +_0232F3DC: + ldr r0, _0232F3F0 @ =0x0233C150 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0] + pop {r3, pc} + .align 2, 0 +_0232F3F0: .4byte 0x0233C150 + arm_func_end ov01_0232F384 + + arm_func_start ov01_0232F3F4 +ov01_0232F3F4: @ 0x0232F3F4 + ldr ip, _0232F400 @ =FUN_0232EFA8 + ldr r0, _0232F404 @ =0x0233AFD0 + bx ip + .align 2, 0 +_0232F400: .4byte FUN_0232EFA8 +_0232F404: .4byte 0x0233AFD0 + arm_func_end ov01_0232F3F4 + + arm_func_start ov01_0232F408 +ov01_0232F408: @ 0x0232F408 + ldr ip, _0232F414 @ =ov01_0232E99C + ldr r0, _0232F418 @ =0x0233AFFC + bx ip + .align 2, 0 +_0232F414: .4byte ov01_0232E99C +_0232F418: .4byte 0x0233AFFC + arm_func_end ov01_0232F408 + + arm_func_start ov01_0232F41C +ov01_0232F41C: @ 0x0232F41C + push {r3, lr} + mov r0, #0x14 + mov r1, #0xf + bl FUN_02001170 + ldr r1, _0232F474 @ =0x0233C158 + str r0, [r1] + bl ov01_0232F504 + mov r0, #0x10 + bl FUN_022BE64C + ldr r1, _0232F474 @ =0x0233C158 + mvn r3, #1 + ldr r2, [r1] + mov r0, #1 + strb r3, [r2, #8] + ldr r2, [r1] + mov r3, #0 + strb r0, [r2, #0x11] + ldr r2, [r1] + strb r3, [r2, #0x12] + ldr r1, [r1] + str r3, [r1, #4] + pop {r3, pc} + .align 2, 0 +_0232F474: .4byte 0x0233C158 + arm_func_end ov01_0232F41C + + arm_func_start ov01_0232F478 +ov01_0232F478: @ 0x0232F478 + push {r3, lr} + cmp r0, #0 + bne _0232F4A4 + ldr r0, _0232F500 @ =0x0233C158 + ldr r1, [r0] + ldr r0, [r1, #4] + cmp r0, #7 + movne r0, #1 + strbne r0, [r1, #0x12] + movne r0, #0 + popne {r3, pc} +_0232F4A4: + bl ov01_0232F504 + ldr r1, _0232F500 @ =0x0233C158 + mov r3, #7 + ldr r2, [r1] + sub r0, r3, #9 + str r3, [r2, #4] + ldr r1, [r1] + ldrsb r1, [r1, #8] + cmp r1, r0 + beq _0232F4E0 + bl ov01_02330FFC + ldr r0, _0232F500 @ =0x0233C158 + ldr r0, [r0] + ldrsb r0, [r0, #8] + bl FUN_0202F8FC +_0232F4E0: + ldr r0, _0232F500 @ =0x0233C158 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0232F500 @ =0x0233C158 + mov r1, #0 + str r1, [r0] + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0232F500: .4byte 0x0233C158 + arm_func_end ov01_0232F478 + + arm_func_start ov01_0232F504 +ov01_0232F504: @ 0x0232F504 + ldr r0, _0232F534 @ =0x0233C158 + mov r3, #0 + ldr r1, [r0] + mov r2, #1 + strb r3, [r1] + ldr r1, [r0] + str r2, [r1, #4] + ldr r1, [r0] + strb r2, [r1, #0x10] + ldr r0, [r0] + strb r3, [r0, #0x11] + bx lr + .align 2, 0 +_0232F534: .4byte 0x0233C158 + arm_func_end ov01_0232F504 +_0232F538: + .byte 0x14, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5 + .byte 0x00, 0x00, 0xD1, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x10, 0x00, 0xD1, 0x05 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x58, 0xC1, 0x33, 0x02, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov01_0232F55C +ov01_0232F55C: @ 0x0232F55C + push {r3, lr} + ldr r0, _0232F730 @ =0x0233C158 + ldr r0, [r0] + ldr r0, [r0, #4] + cmp r0, #7 + addls pc, pc, r0, lsl #2 + b _0232F728 +_0232F578: @ jump table + b _0232F598 @ case 0 + b _0232F5C0 @ case 1 + b _0232F728 @ case 2 + b _0232F728 @ case 3 + b _0232F684 @ case 4 + b _0232F6B0 @ case 5 + b _0232F6FC @ case 6 + b _0232F718 @ case 7 +_0232F598: + bl FUN_022BE6AC + cmp r0, #0 + ldrne r0, _0232F730 @ =0x0233C158 + mov r1, #1 + ldrne r0, [r0] + strbne r1, [r0, #0x10] + bne _0232F728 + ldr r0, _0232F730 @ =0x0233C158 + ldr r0, [r0] + str r1, [r0, #4] +_0232F5C0: + bl FUN_022BE6AC + cmp r0, #0 + ldrne r0, _0232F730 @ =0x0233C158 + movne r1, #1 + ldrne r0, [r0] + strbne r1, [r0, #0x10] + bne _0232F728 + ldr r0, _0232F730 @ =0x0233C158 + ldr r2, [r0] + ldrb r1, [r2, #0x12] + cmp r1, #0 + beq _0232F618 + mov r0, #0x10 + bl FUN_022BE630 + ldr r0, _0232F730 @ =0x0233C158 + mov r3, #1 + ldr r2, [r0] + mov r1, #6 + strb r3, [r2, #0x10] + ldr r0, [r0] + str r1, [r0, #4] + b _0232F728 +_0232F618: + ldrb r1, [r2, #0x11] + cmp r1, #0 + beq _0232F678 + mov r1, #1 + strb r1, [r2, #0x10] + ldr r1, [r0] + mov r2, #0 + strb r2, [r1, #0x11] + ldr r1, [r0] + sub r0, r2, #2 + ldrsb r1, [r1, #8] + cmp r1, r0 + bne _0232F664 + ldr r0, _0232F734 @ =0x0233AFEC + ldr r1, _0232F738 @ =ov01_0232F830 + bl FUN_0202F8C4 + ldr r1, _0232F730 @ =0x0233C158 + ldr r1, [r1] + strb r0, [r1, #8] +_0232F664: + ldr r0, _0232F730 @ =0x0233C158 + mov r1, #2 + ldr r0, [r0] + str r1, [r0, #4] + b _0232F728 +_0232F678: + mov r0, #0 + strb r0, [r2, #0x10] + b _0232F728 +_0232F684: + bl FUN_022BE6AC + cmp r0, #0 + ldrne r0, _0232F730 @ =0x0233C158 + movne r1, #1 + ldrne r0, [r0] + strbne r1, [r0, #0x10] + bne _0232F728 + ldr r0, _0232F730 @ =0x0233C158 + mov r1, #5 + ldr r0, [r0] + str r1, [r0, #4] +_0232F6B0: + ldr r0, _0232F730 @ =0x0233C158 + ldr r1, [r0] + ldrb r0, [r1, #0x12] + cmp r0, #0 + ldrbeq r0, [r1, #0x11] + cmpeq r0, #0 + moveq r0, #0 + strbeq r0, [r1, #0x10] + beq _0232F728 + mov r0, #0x10 + bl FUN_022BE630 + ldr r0, _0232F730 @ =0x0233C158 + mov r3, #0 + ldr r2, [r0] + mov r1, #1 + str r3, [r2, #4] + ldr r0, [r0] + strb r1, [r0, #0x10] + b _0232F728 +_0232F6FC: + bl FUN_022BE6AC + cmp r0, #0 + bne _0232F728 + ldr r0, _0232F730 @ =0x0233C158 + mov r1, #7 + ldr r0, [r0] + str r1, [r0, #4] +_0232F718: + ldr r0, _0232F730 @ =0x0233C158 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x10] +_0232F728: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0232F730: .4byte 0x0233C158 +_0232F734: .4byte 0x0233AFEC +_0232F738: .4byte ov01_0232F830 + arm_func_end ov01_0232F55C + + arm_func_start ov01_0232F73C +ov01_0232F73C: @ 0x0232F73C + push {r4, lr} + sub sp, sp, #8 + bl FUN_02055770 + ldr r1, _0232F7B4 @ =0x0233C158 + mov r4, r0 + ldr r1, [r1] + ldr r0, [r1, #4] + cmp r0, #2 + bne _0232F7AC + mov r0, #1 + strb r0, [r1, #0x10] + bl ov01_0232F504 + ldrsh r0, [r4, #4] + mov r1, #0x80 + mov r2, #0x60 + bl ov01_02330EB8 + mov r1, #0 + mov ip, #1 + str ip, [sp] + ldr r0, _0232F7B8 @ =0x0233B020 + mov r2, r1 + mov r3, r1 + str ip, [sp, #4] + bl FUN_02052060 + ldr r0, _0232F7B4 @ =0x0233C158 + mov r1, #3 + ldr r0, [r0] + str r1, [r0, #4] +_0232F7AC: + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_0232F7B4: .4byte 0x0233C158 +_0232F7B8: .4byte 0x0233B020 + arm_func_end ov01_0232F73C +_0232F7BC: + .byte 0x24, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x90, 0xE5, 0x04, 0x10, 0x92, 0xE5, 0x03, 0x00, 0x51, 0xE3, 0x01, 0x10, 0xA0, 0x03 + .byte 0x00, 0x10, 0xC2, 0x05, 0x00, 0x00, 0x90, 0x05, 0x04, 0x10, 0xA0, 0x03, 0x04, 0x10, 0x80, 0x05 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x58, 0xC1, 0x33, 0x02 + + arm_func_start ov01_0232F7EC +ov01_0232F7EC: @ 0x0232F7EC + push {r3, lr} + ldr r0, _0232F82C @ =0x0233C158 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0 + popeq {r3, pc} + mov r0, #1 + mov r1, #2 + bl FUN_02008F64 + ldr r0, _0232F82C @ =0x0233C158 + mov r2, #0 + ldr r1, [r0] + mov r0, #0x10 + strb r2, [r1] + bl FUN_022BE618 + pop {r3, pc} + .align 2, 0 +_0232F82C: .4byte 0x0233C158 + arm_func_end ov01_0232F7EC + + arm_func_start ov01_0232F830 +ov01_0232F830: @ 0x0232F830 + push {r4, r5, lr} + sub sp, sp, #0x54 + sub sp, sp, #0x400 + mov r5, r0 + bl FUN_02048C3C + mov r4, r0 + add r0, sp, #4 + bl FUN_02023690 + ldr r1, _0232F904 @ =0x00002710 + mov r0, r4 + bl FUN_020900B0 + ldr r1, _0232F904 @ =0x00002710 + bl FUN_020900B0 + str r1, [sp, #0x28] + ldr r1, _0232F904 @ =0x00002710 + mov r0, r4 + bl FUN_020900B0 + mov r0, r5 + str r1, [sp, #0x2c] + bl FUN_02027B1C + add r1, sp, #4 + str r1, [sp] + ldr r3, _0232F908 @ =0x0000C402 + add r0, sp, #0x54 + mov r1, #0x400 + mov r2, #0x20c + bl FUN_020235B8 + mov r0, r5 + mov r1, #0x1e + mov r2, #0x14 + add r3, sp, #0x54 + bl FUN_02026214 + mov r0, #0x16 + bl FUN_0204CA94 + cmp r0, #0 + beq _0232F8F0 + ldr r2, _0232F90C @ =0x00000226 + add ip, sp, #4 + ldr r3, _0232F908 @ =0x0000C402 + add r0, sp, #0x54 + mov r1, #0x100 + str ip, [sp] + bl FUN_020235B8 + add r3, sp, #0x54 + mov r0, r5 + mov r1, #0x5a + mov r2, #0 + bl FUN_02026214 +_0232F8F0: + mov r0, r5 + bl FUN_02027AF0 + add sp, sp, #0x54 + add sp, sp, #0x400 + pop {r4, r5, pc} + .align 2, 0 +_0232F904: .4byte 0x00002710 +_0232F908: .4byte 0x0000C402 +_0232F90C: .4byte 0x00000226 + arm_func_end ov01_0232F830 + + arm_func_start ov01_0232F910 +ov01_0232F910: @ 0x0232F910 + ldr ip, _0232F91C @ =ov01_0232E99C + ldr r0, _0232F920 @ =0x0233B034 + bx ip + .align 2, 0 +_0232F91C: .4byte ov01_0232E99C +_0232F920: .4byte 0x0233B034 + arm_func_end ov01_0232F910 + + arm_func_start ov01_0232F924 +ov01_0232F924: @ 0x0232F924 + push {r3, lr} + mov r0, #0xc + mov r1, #0xf + bl FUN_02001170 + ldr r1, _0232F97C @ =0x0233C15C + str r0, [r1] + bl ov01_0232F9FC + mov r0, #0x10 + bl FUN_022BE64C + ldr r1, _0232F97C @ =0x0233C15C + mvn r3, #1 + ldr r2, [r1] + mov r0, #1 + strb r3, [r2, #8] + ldr r2, [r1] + mov r3, #0 + strb r0, [r2, #0xa] + ldr r2, [r1] + strb r3, [r2, #0xb] + ldr r1, [r1] + str r3, [r1, #4] + pop {r3, pc} + .align 2, 0 +_0232F97C: .4byte 0x0233C15C + arm_func_end ov01_0232F924 + + arm_func_start ov01_0232F980 +ov01_0232F980: @ 0x0232F980 + push {r3, lr} + cmp r0, #0 + bne _0232F9AC + ldr r0, _0232F9F8 @ =0x0233C15C + ldr r1, [r0] + ldr r0, [r1, #4] + cmp r0, #8 + movne r0, #1 + strbne r0, [r1, #0xb] + movne r0, #0 + popne {r3, pc} +_0232F9AC: + bl ov01_0232F9FC + ldr r0, _0232F9F8 @ =0x0233C15C + mov r3, #8 + ldr r2, [r0] + sub r1, r3, #0xa + str r3, [r2, #4] + ldr r0, [r0] + ldrsb r0, [r0, #8] + cmp r0, r1 + beq _0232F9D8 + bl FUN_0202FED4 +_0232F9D8: + ldr r0, _0232F9F8 @ =0x0233C15C + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0232F9F8 @ =0x0233C15C + mov r1, #0 + str r1, [r0] + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0232F9F8: .4byte 0x0233C15C + arm_func_end ov01_0232F980 + + arm_func_start ov01_0232F9FC +ov01_0232F9FC: @ 0x0232F9FC + ldr r0, _0232FA2C @ =0x0233C15C + mov r3, #0 + ldr r1, [r0] + mov r2, #1 + strb r3, [r1] + ldr r1, [r0] + str r2, [r1, #4] + ldr r1, [r0] + strb r2, [r1, #9] + ldr r0, [r0] + strb r3, [r0, #0xa] + bx lr + .align 2, 0 +_0232FA2C: .4byte 0x0233C15C + arm_func_end ov01_0232F9FC +_0232FA30: + .byte 0x14, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x00, 0x00, 0xD1, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x01, 0x00, 0xA0, 0x13, 0x09, 0x00, 0xD1, 0x05, 0x1E, 0xFF, 0x2F, 0xE1, 0x5C, 0xC1, 0x33, 0x02 + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov01_0232FA54 +ov01_0232FA54: @ 0x0232FA54 + push {r3, lr} + ldr r0, _0232FC24 @ =0x0233C15C + ldr r0, [r0] + ldr r0, [r0, #4] + cmp r0, #8 + addls pc, pc, r0, lsl #2 + b _0232FC1C +_0232FA70: @ jump table + b _0232FA94 @ case 0 + b _0232FABC @ case 1 + b _0232FC1C @ case 2 + b _0232FC1C @ case 3 + b _0232FC1C @ case 4 + b _0232FB4C @ case 5 + b _0232FB78 @ case 6 + b _0232FBC4 @ case 7 + b _0232FC0C @ case 8 +_0232FA94: + bl FUN_022BE6AC + cmp r0, #0 + ldrne r0, _0232FC24 @ =0x0233C15C + mov r1, #1 + ldrne r0, [r0] + strbne r1, [r0, #9] + bne _0232FC1C + ldr r0, _0232FC24 @ =0x0233C15C + ldr r0, [r0] + str r1, [r0, #4] +_0232FABC: + bl FUN_022BE6AC + cmp r0, #0 + ldrne r0, _0232FC24 @ =0x0233C15C + movne r1, #1 + ldrne r0, [r0] + strbne r1, [r0, #9] + bne _0232FC1C + ldr r0, _0232FC24 @ =0x0233C15C + ldr r2, [r0] + ldrb r1, [r2, #0xb] + cmp r1, #0 + beq _0232FB14 + mov r0, #0x10 + bl FUN_022BE630 + ldr r0, _0232FC24 @ =0x0233C15C + mov r3, #1 + ldr r2, [r0] + mov r1, #7 + strb r3, [r2, #9] + ldr r0, [r0] + str r1, [r0, #4] + b _0232FC1C +_0232FB14: + ldrb r1, [r2, #0xa] + cmp r1, #0 + moveq r0, #0 + strbeq r0, [r2, #9] + beq _0232FC1C + mov r1, #1 + strb r1, [r2, #9] + ldr r1, [r0] + mov r2, #0 + strb r2, [r1, #0xa] + ldr r0, [r0] + mov r1, #2 + str r1, [r0, #4] + b _0232FC1C +_0232FB4C: + bl FUN_022BE6AC + cmp r0, #0 + ldrne r0, _0232FC24 @ =0x0233C15C + movne r1, #1 + ldrne r0, [r0] + strbne r1, [r0, #9] + bne _0232FC1C + ldr r0, _0232FC24 @ =0x0233C15C + mov r1, #6 + ldr r0, [r0] + str r1, [r0, #4] +_0232FB78: + ldr r0, _0232FC24 @ =0x0233C15C + ldr r1, [r0] + ldrb r0, [r1, #0xb] + cmp r0, #0 + ldrbeq r0, [r1, #0xa] + cmpeq r0, #0 + moveq r0, #0 + strbeq r0, [r1, #9] + beq _0232FC1C + mov r0, #0x10 + bl FUN_022BE630 + ldr r0, _0232FC24 @ =0x0233C15C + mov r3, #0 + ldr r2, [r0] + mov r1, #1 + str r3, [r2, #4] + ldr r0, [r0] + strb r1, [r0, #9] + b _0232FC1C +_0232FBC4: + bl FUN_022BE6AC + cmp r0, #0 + bne _0232FC1C + ldr r0, _0232FC24 @ =0x0233C15C + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #8] + cmp r0, r1 + beq _0232FBFC + bl FUN_0202FED4 + ldr r0, _0232FC24 @ =0x0233C15C + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #8] +_0232FBFC: + ldr r0, _0232FC24 @ =0x0233C15C + mov r1, #8 + ldr r0, [r0] + str r1, [r0, #4] +_0232FC0C: + ldr r0, _0232FC24 @ =0x0233C15C + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #9] +_0232FC1C: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0232FC24: .4byte 0x0233C15C + arm_func_end ov01_0232FA54 + + arm_func_start ov01_0232FC28 +ov01_0232FC28: @ 0x0232FC28 + push {r3, lr} + sub sp, sp, #8 + ldr r0, _0232FCF4 @ =0x0233C15C + ldr r3, [r0] + ldr r1, [r3, #4] + cmp r1, #2 + bne _0232FC94 + mov r2, #1 + strb r2, [r3, #9] + ldr r1, [r0] + sub r0, r2, #3 + ldrsb r1, [r1, #8] + cmp r1, r0 + bne _0232FC80 + mov r0, #0 + ldr r3, _0232FCF8 @ =0x00003FC9 + mov r1, r0 + mov r2, r0 + bl FUN_0202FE2C + ldr r1, _0232FCF4 @ =0x0233C15C + ldr r1, [r1] + strb r0, [r1, #8] +_0232FC80: + ldr r0, _0232FCF4 @ =0x0233C15C + mov r1, #3 + ldr r0, [r0] + str r1, [r0, #4] + b _0232FCEC +_0232FC94: + cmp r1, #3 + bne _0232FCEC + mov r1, #1 + strb r1, [r3, #9] + ldr r0, [r0] + ldrsb r0, [r0, #8] + bl FUN_0202FEF0 + cmp r0, #0 + bne _0232FCEC + bl ov01_0232F9FC + mov r1, #0 + mov ip, #1 + str ip, [sp] + ldr r0, _0232FCFC @ =0x0233B058 + mov r2, r1 + mov r3, r1 + str ip, [sp, #4] + bl FUN_02052060 + ldr r0, _0232FCF4 @ =0x0233C15C + mov r1, #4 + ldr r0, [r0] + str r1, [r0, #4] +_0232FCEC: + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_0232FCF4: .4byte 0x0233C15C +_0232FCF8: .4byte 0x00003FC9 +_0232FCFC: .4byte 0x0233B058 + arm_func_end ov01_0232FC28 +_0232FD00: + .byte 0x24, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x04, 0x10, 0x92, 0xE5, 0x04, 0x00, 0x51, 0xE3 + .byte 0x01, 0x10, 0xA0, 0x03, 0x00, 0x10, 0xC2, 0x05, 0x00, 0x00, 0x90, 0x05, 0x05, 0x10, 0xA0, 0x03 + .byte 0x04, 0x10, 0x80, 0x05, 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x5C, 0xC1, 0x33, 0x02 + + arm_func_start ov01_0232FD30 +ov01_0232FD30: @ 0x0232FD30 + push {r3, lr} + ldr r0, _0232FD70 @ =0x0233C15C + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0 + popeq {r3, pc} + mov r0, #1 + mov r1, #2 + bl FUN_02008F64 + ldr r0, _0232FD70 @ =0x0233C15C + mov r2, #0 + ldr r1, [r0] + mov r0, #0x10 + strb r2, [r1] + bl FUN_022BE618 + pop {r3, pc} + .align 2, 0 +_0232FD70: .4byte 0x0233C15C + arm_func_end ov01_0232FD30 + + arm_func_start ov01_0232FD74 +ov01_0232FD74: @ 0x0232FD74 + ldr r0, _0232FDA8 @ =0x0233C15C + ldr r1, [r0] + cmp r1, #0 + ldrne r0, [r1, #4] + cmpne r0, #7 + cmpne r0, #8 + beq _0232FDA0 + ldrb r0, [r1, #0xb] + cmp r0, #0 + moveq r0, #1 + bxeq lr +_0232FDA0: + mov r0, #0 + bx lr + .align 2, 0 +_0232FDA8: .4byte 0x0233C15C + arm_func_end ov01_0232FD74 + + arm_func_start ov01_0232FDAC +ov01_0232FDAC: @ 0x0232FDAC + ldr ip, _0232FDB8 @ =ov01_0232E99C + ldr r0, _0232FDBC @ =0x0233B06C + bx ip + .align 2, 0 +_0232FDB8: .4byte ov01_0232E99C +_0232FDBC: .4byte 0x0233B06C + arm_func_end ov01_0232FDAC + + arm_func_start ov01_0232FDC0 +ov01_0232FDC0: @ 0x0232FDC0 + push {r3, lr} + mov r0, #0xc + mov r1, #0xf + bl FUN_02001170 + ldr r1, _0232FE18 @ =0x0233C160 + str r0, [r1] + bl ov01_0232FE98 + mov r0, #0x10 + bl FUN_022BE64C + ldr r1, _0232FE18 @ =0x0233C160 + mvn r3, #1 + ldr r2, [r1] + mov r0, #1 + strb r3, [r2, #8] + ldr r2, [r1] + mov r3, #0 + strb r0, [r2, #0xa] + ldr r2, [r1] + strb r3, [r2, #0xb] + ldr r1, [r1] + str r3, [r1, #4] + pop {r3, pc} + .align 2, 0 +_0232FE18: .4byte 0x0233C160 + arm_func_end ov01_0232FDC0 + + arm_func_start ov01_0232FE1C +ov01_0232FE1C: @ 0x0232FE1C + push {r3, lr} + cmp r0, #0 + bne _0232FE48 + ldr r0, _0232FE94 @ =0x0233C160 + ldr r1, [r0] + ldr r0, [r1, #4] + cmp r0, #8 + movne r0, #1 + strbne r0, [r1, #0xb] + movne r0, #0 + popne {r3, pc} +_0232FE48: + bl ov01_0232FE98 + ldr r0, _0232FE94 @ =0x0233C160 + mov r3, #8 + ldr r2, [r0] + sub r1, r3, #0xa + str r3, [r2, #4] + ldr r0, [r0] + ldrsb r0, [r0, #8] + cmp r0, r1 + beq _0232FE74 + bl FUN_0202FED4 +_0232FE74: + ldr r0, _0232FE94 @ =0x0233C160 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0232FE94 @ =0x0233C160 + mov r1, #0 + str r1, [r0] + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0232FE94: .4byte 0x0233C160 + arm_func_end ov01_0232FE1C + + arm_func_start ov01_0232FE98 +ov01_0232FE98: @ 0x0232FE98 + ldr r0, _0232FEC8 @ =0x0233C160 + mov r3, #0 + ldr r1, [r0] + mov r2, #1 + strb r3, [r1] + ldr r1, [r0] + str r2, [r1, #4] + ldr r1, [r0] + strb r2, [r1, #9] + ldr r0, [r0] + strb r3, [r0, #0xa] + bx lr + .align 2, 0 +_0232FEC8: .4byte 0x0233C160 + arm_func_end ov01_0232FE98 +_0232FECC: + .byte 0x14, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x00, 0x00, 0xD1, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13 + .byte 0x09, 0x00, 0xD1, 0x05, 0x1E, 0xFF, 0x2F, 0xE1, 0x60, 0xC1, 0x33, 0x02, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov01_0232FEF0 +ov01_0232FEF0: @ 0x0232FEF0 + push {r3, lr} + ldr r0, _023300C0 @ =0x0233C160 + ldr r0, [r0] + ldr r0, [r0, #4] + cmp r0, #8 + addls pc, pc, r0, lsl #2 + b _023300B8 +_0232FF0C: @ jump table + b _0232FF30 @ case 0 + b _0232FF58 @ case 1 + b _023300B8 @ case 2 + b _023300B8 @ case 3 + b _023300B8 @ case 4 + b _0232FFE8 @ case 5 + b _02330014 @ case 6 + b _02330060 @ case 7 + b _023300A8 @ case 8 +_0232FF30: + bl FUN_022BE6AC + cmp r0, #0 + ldrne r0, _023300C0 @ =0x0233C160 + mov r1, #1 + ldrne r0, [r0] + strbne r1, [r0, #9] + bne _023300B8 + ldr r0, _023300C0 @ =0x0233C160 + ldr r0, [r0] + str r1, [r0, #4] +_0232FF58: + bl FUN_022BE6AC + cmp r0, #0 + ldrne r0, _023300C0 @ =0x0233C160 + movne r1, #1 + ldrne r0, [r0] + strbne r1, [r0, #9] + bne _023300B8 + ldr r0, _023300C0 @ =0x0233C160 + ldr r2, [r0] + ldrb r1, [r2, #0xb] + cmp r1, #0 + beq _0232FFB0 + mov r0, #0x10 + bl FUN_022BE630 + ldr r0, _023300C0 @ =0x0233C160 + mov r3, #1 + ldr r2, [r0] + mov r1, #7 + strb r3, [r2, #9] + ldr r0, [r0] + str r1, [r0, #4] + b _023300B8 +_0232FFB0: + ldrb r1, [r2, #0xa] + cmp r1, #0 + moveq r0, #0 + strbeq r0, [r2, #9] + beq _023300B8 + mov r1, #1 + strb r1, [r2, #9] + ldr r1, [r0] + mov r2, #0 + strb r2, [r1, #0xa] + ldr r0, [r0] + mov r1, #2 + str r1, [r0, #4] + b _023300B8 +_0232FFE8: + bl FUN_022BE6AC + cmp r0, #0 + ldrne r0, _023300C0 @ =0x0233C160 + movne r1, #1 + ldrne r0, [r0] + strbne r1, [r0, #9] + bne _023300B8 + ldr r0, _023300C0 @ =0x0233C160 + mov r1, #6 + ldr r0, [r0] + str r1, [r0, #4] +_02330014: + ldr r0, _023300C0 @ =0x0233C160 + ldr r1, [r0] + ldrb r0, [r1, #0xb] + cmp r0, #0 + ldrbeq r0, [r1, #0xa] + cmpeq r0, #0 + moveq r0, #0 + strbeq r0, [r1, #9] + beq _023300B8 + mov r0, #0x10 + bl FUN_022BE630 + ldr r0, _023300C0 @ =0x0233C160 + mov r3, #0 + ldr r2, [r0] + mov r1, #1 + str r3, [r2, #4] + ldr r0, [r0] + strb r1, [r0, #9] + b _023300B8 +_02330060: + bl FUN_022BE6AC + cmp r0, #0 + bne _023300B8 + ldr r0, _023300C0 @ =0x0233C160 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #8] + cmp r0, r1 + beq _02330098 + bl FUN_0202FED4 + ldr r0, _023300C0 @ =0x0233C160 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #8] +_02330098: + ldr r0, _023300C0 @ =0x0233C160 + mov r1, #8 + ldr r0, [r0] + str r1, [r0, #4] +_023300A8: + ldr r0, _023300C0 @ =0x0233C160 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #9] +_023300B8: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_023300C0: .4byte 0x0233C160 + arm_func_end ov01_0232FEF0 + + arm_func_start ov01_023300C4 +ov01_023300C4: @ 0x023300C4 + push {r3, lr} + sub sp, sp, #8 + ldr r0, _02330190 @ =0x0233C160 + ldr r3, [r0] + ldr r1, [r3, #4] + cmp r1, #2 + bne _02330130 + mov r2, #1 + strb r2, [r3, #9] + ldr r1, [r0] + sub r0, r2, #3 + ldrsb r1, [r1, #8] + cmp r1, r0 + bne _0233011C + mov r0, #0 + ldr r3, _02330194 @ =0x00000122 + mov r1, r0 + mov r2, r0 + bl FUN_0202FE2C + ldr r1, _02330190 @ =0x0233C160 + ldr r1, [r1] + strb r0, [r1, #8] +_0233011C: + ldr r0, _02330190 @ =0x0233C160 + mov r1, #3 + ldr r0, [r0] + str r1, [r0, #4] + b _02330188 +_02330130: + cmp r1, #3 + bne _02330188 + mov r1, #1 + strb r1, [r3, #9] + ldr r0, [r0] + ldrsb r0, [r0, #8] + bl FUN_0202FEF0 + cmp r0, #0 + bne _02330188 + bl ov01_0232FE98 + mov r1, #0 + mov ip, #1 + str ip, [sp] + ldr r0, _02330198 @ =0x0233B090 + mov r2, r1 + mov r3, r1 + str ip, [sp, #4] + bl FUN_02052060 + ldr r0, _02330190 @ =0x0233C160 + mov r1, #4 + ldr r0, [r0] + str r1, [r0, #4] +_02330188: + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_02330190: .4byte 0x0233C160 +_02330194: .4byte 0x00000122 +_02330198: .4byte 0x0233B090 + arm_func_end ov01_023300C4 +_0233019C: + .byte 0x24, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x90, 0xE5, 0x04, 0x10, 0x92, 0xE5, 0x04, 0x00, 0x51, 0xE3, 0x01, 0x10, 0xA0, 0x03 + .byte 0x00, 0x10, 0xC2, 0x05, 0x00, 0x00, 0x90, 0x05, 0x05, 0x10, 0xA0, 0x03, 0x04, 0x10, 0x80, 0x05 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x60, 0xC1, 0x33, 0x02 + + arm_func_start ov01_023301CC +ov01_023301CC: @ 0x023301CC + push {r3, lr} + ldr r0, _0233020C @ =0x0233C160 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0 + popeq {r3, pc} + mov r0, #1 + mov r1, #2 + bl FUN_02008F64 + ldr r0, _0233020C @ =0x0233C160 + mov r2, #0 + ldr r1, [r0] + mov r0, #0x10 + strb r2, [r1] + bl FUN_022BE618 + pop {r3, pc} + .align 2, 0 +_0233020C: .4byte 0x0233C160 + arm_func_end ov01_023301CC +_02330210: + .byte 0x04, 0xC0, 0x9F, 0xE5, 0x04, 0x00, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x9C, 0xE9, 0x32, 0x02 + .byte 0xE0, 0xB0, 0x33, 0x02 + + arm_func_start ov01_02330224 +ov01_02330224: @ 0x02330224 + push {r4, lr} + sub sp, sp, #0x10 + mov r0, #0x288 + mov r1, #0xf + bl FUN_02001170 + ldr r1, _02330584 @ =0x0233C164 + str r0, [r1] + bl ov01_02330644 + mov r0, #0x10 + bl FUN_022BE64C + ldr r1, _02330584 @ =0x0233C164 + mvn r3, #1 + ldr r0, [r1] + mov r2, #1 + strb r3, [r0, #8] + ldr r0, [r1] + mov r3, #0 + strb r2, [r0, #0x285] + ldr r2, [r1] + mov r0, #3 + strb r3, [r2, #0x286] + ldr r1, [r1] + str r3, [r1, #4] + bl FUN_02002274 + mov r4, r0 + ldr r0, _02330588 @ =0x020AFC68 + ldr r1, _0233058C @ =0x0233B104 + ldr r0, [r0] + mov r2, #0 + bl FUN_0201D3DC + ldr r1, _02330584 @ =0x0233C164 + ldr r2, _02330588 @ =0x020AFC68 + ldr r3, [r1] + ldr r1, _02330590 @ =0x0233C168 + strh r0, [r3, #0x90] + ldr r1, [r1, r4, lsl #2] + ldr r0, [r2] + mov r2, #0 + bl FUN_0201D3DC + ldr r1, _02330584 @ =0x0233C164 + ldr r2, [r1] + strh r0, [r2, #0x92] + ldr r0, [r1] + add r0, r0, #0x84 + bl FUN_0201C000 + ldr r0, _02330584 @ =0x0233C164 + ldr r2, [r0] + ldrh r1, [r2, #0x88] + bic r1, r1, #0xc00 + strh r1, [r2, #0x88] + ldr r2, [r0] + ldrh r1, [r2, #0x8e] + bic r1, r1, #0xc00 + strh r1, [r2, #0x8e] + ldr r0, [r0] + add r0, r0, #0x94 + bl FUN_0201C0B0 + ldr r0, _02330584 @ =0x0233C164 + ldr r2, [r0] + ldrh r1, [r2, #0x96] + orr r1, r1, #0x20 + strh r1, [r2, #0x96] + ldr r1, [r0] + add r0, r1, #0x94 + add r1, r1, #0x84 + bl FUN_0201D110 + ldr r0, _02330584 @ =0x0233C164 + ldr r1, [r0] + add r0, r1, #0x94 + ldrsh r1, [r1, #0x90] + bl FUN_0201C0E8 + mov r1, #4 + str r1, [sp] + mov r2, #0 + str r2, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + str r2, [sp, #0xc] + ldr r0, _02330584 @ =0x0233C164 + mov r3, r2 + ldr r0, [r0] + add r0, r0, #0x94 + bl FUN_0201C2CC + ldr r0, _02330584 @ =0x0233C164 + mov r2, #0x78 + ldr r1, [r0] + mov r3, #0x50 + strh r2, [r1, #0xb0] + ldr r1, [r0] + mov r2, #0 + strh r3, [r1, #0xb2] + ldr r1, [r0] + strh r2, [r1, #0xcc] + ldr r0, [r0] + add r0, r0, #0x110 + bl FUN_0201C0B0 + ldr r1, _02330584 @ =0x0233C164 + ldr r0, [r1] + add r0, r0, #0x100 + ldrh r2, [r0, #0x12] + orr r2, r2, #0x20 + strh r2, [r0, #0x12] + ldr r1, [r1] + add r0, r1, #0x110 + add r1, r1, #0x84 + bl FUN_0201D110 + ldr r0, _02330584 @ =0x0233C164 + ldr r0, [r0] + ldrsh r1, [r0, #0x90] + add r0, r0, #0x110 + bl FUN_0201C0E8 + mov r0, #5 + str r0, [sp] + mov r2, #0 + str r2, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + ldr r0, _02330584 @ =0x0233C164 + str r2, [sp, #0xc] + ldr r0, [r0] + mov r1, #8 + add r0, r0, #0x110 + mov r3, #0x100 + bl FUN_0201C2CC + mov ip, #0x78 + ldr r1, _02330584 @ =0x0233C164 + mov r3, #0x64 + ldr r0, [r1] + mov r2, #0 + add r0, r0, #0x100 + strh ip, [r0, #0x2c] + ldr r0, [r1] + add r0, r0, #0x100 + strh r3, [r0, #0x2e] + ldr r0, [r1] + add r0, r0, #0x100 + strh r2, [r0, #0x48] + ldr r0, [r1] + add r0, r0, #0x18c + bl FUN_0201C0B0 + ldr r1, _02330584 @ =0x0233C164 + ldr r0, [r1] + add r0, r0, #0x100 + ldrh r2, [r0, #0x8e] + orr r2, r2, #0x20 + strh r2, [r0, #0x8e] + ldr r1, [r1] + add r0, r1, #0x18c + add r1, r1, #0x84 + bl FUN_0201D110 + ldr r0, _02330584 @ =0x0233C164 + ldr r1, [r0] + add r0, r1, #0x18c + ldrsh r1, [r1, #0x90] + bl FUN_0201C0E8 + mov r0, #6 + str r0, [sp] + mov r2, #0 + str r2, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + str r2, [sp, #0xc] + ldr r0, _02330584 @ =0x0233C164 + mov r1, #8 + ldr r0, [r0] + mov r3, #0x200 + add r0, r0, #0x18c + bl FUN_0201C2CC + ldr r1, _02330584 @ =0x0233C164 + mov r3, #0x78 + ldr r0, [r1] + mov r2, #0 + add r0, r0, #0x100 + strh r3, [r0, #0xa8] + ldr r0, [r1] + add r0, r0, #0x100 + strh r3, [r0, #0xaa] + ldr r0, [r1] + add r0, r0, #0x100 + strh r2, [r0, #0xc4] + ldr r0, [r1] + add r0, r0, #0x208 + bl FUN_0201C0B0 + ldr r0, _02330584 @ =0x0233C164 + ldr r0, [r0] + ldrsh r1, [r0, #0x92] + add r0, r0, #0x208 + bl FUN_0201C0E8 + mov r0, #7 + str r0, [sp] + mov r2, #0 + str r2, [sp, #4] + mov r1, #1 + str r1, [sp, #8] + ldr r0, _02330584 @ =0x0233C164 + str r2, [sp, #0xc] + ldr r0, [r0] + mov r3, #0x300 + add r0, r0, #0x208 + bl FUN_0201C2CC + ldr r1, _02330584 @ =0x0233C164 + mov r2, #0x50 + ldr r0, [r1] + mov r3, #0x48 + add r0, r0, #0x200 + strh r2, [r0, #0x24] + ldr r0, [r1] + mov r2, #0 + add r0, r0, #0x200 + strh r3, [r0, #0x26] + ldr r1, [r1] + mov r0, #1 + add r1, r1, #0x200 + strh r2, [r1, #0x40] + add sp, sp, #0x10 + pop {r4, pc} + .align 2, 0 +_02330584: .4byte 0x0233C164 +_02330588: .4byte 0x020AFC68 +_0233058C: .4byte 0x0233B104 +_02330590: .4byte 0x0233C168 + arm_func_end ov01_02330224 + + arm_func_start ov01_02330594 +ov01_02330594: @ 0x02330594 + push {r3, lr} + cmp r0, #0 + bne _023305C0 + ldr r0, _0233063C @ =0x0233C164 + ldr r1, [r0] + ldr r0, [r1, #4] + cmp r0, #8 + movne r0, #1 + strbne r0, [r1, #0x286] + movne r0, #0 + popne {r3, pc} +_023305C0: + bl ov01_02330644 + ldr r0, _0233063C @ =0x0233C164 + mov r3, #8 + ldr r2, [r0] + sub r1, r3, #0xa + str r3, [r2, #4] + ldr r0, [r0] + ldrsb r0, [r0, #8] + cmp r0, r1 + beq _023305EC + bl FUN_0202FED4 +_023305EC: + ldr r0, _0233063C @ =0x0233C164 + ldr r1, _02330640 @ =0x020AFC68 + ldr r2, [r0] + ldr r0, [r1] + ldrsh r1, [r2, #0x90] + bl FUN_0201D72C + ldr r0, _0233063C @ =0x0233C164 + ldr r1, _02330640 @ =0x020AFC68 + ldr r2, [r0] + ldr r0, [r1] + ldrsh r1, [r2, #0x92] + bl FUN_0201D72C + ldr r0, _0233063C @ =0x0233C164 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0233063C @ =0x0233C164 + mov r1, #0 + str r1, [r0] + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0233063C: .4byte 0x0233C164 +_02330640: .4byte 0x020AFC68 + arm_func_end ov01_02330594 + + arm_func_start ov01_02330644 +ov01_02330644: @ 0x02330644 + push {r3, lr} + ldr r0, _023306D8 @ =0x0233C164 + mov r1, #0 + ldr r2, [r0] + mov r3, #1 + strb r1, [r2] + ldr r2, [r0] + str r3, [r2, #4] + ldr r2, [r0] + strb r3, [r2, #0x284] + ldr r2, [r0] + strb r1, [r2, #0x285] + ldr r2, [r0] + str r1, [r2, #0xc] + ldr r2, [r0] + str r1, [r2, #0x48] + ldr r0, [r0] + add r0, r0, #0x10 + bl FUN_0233D964 + ldr r0, _023306D8 @ =0x0233C164 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x4c + bl FUN_0233D964 + ldr r0, _023306D8 @ =0x0233C164 + mov r2, #0 + ldr r1, [r0] + strb r2, [r1, #0x44] + ldr r1, [r0] + strb r2, [r1, #0x80] + ldr r1, [r0] + strb r2, [r1, #0x81] + ldr r1, [r0] + strb r2, [r1, #0x82] + ldr r0, [r0] + strb r2, [r0, #0x83] + pop {r3, pc} + .align 2, 0 +_023306D8: .4byte 0x0233C164 + arm_func_end ov01_02330644 +_023306DC: + .byte 0x14, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x00, 0x00, 0xD1, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13 + .byte 0x84, 0x02, 0xD1, 0x05, 0x1E, 0xFF, 0x2F, 0xE1, 0x64, 0xC1, 0x33, 0x02, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov01_02330700 +ov01_02330700: @ 0x02330700 + push {r3, r4, r5, lr} + ldr r0, _023309F0 @ =0x0233C164 + ldr r0, [r0] + ldr r0, [r0, #4] + cmp r0, #8 + addls pc, pc, r0, lsl #2 + b _023309E8 +_0233071C: @ jump table + b _02330740 @ case 0 + b _02330768 @ case 1 + b _023309E8 @ case 2 + b _023309E8 @ case 3 + b _023309E8 @ case 4 + b _023307F8 @ case 5 + b _02330824 @ case 6 + b _02330990 @ case 7 + b _023309D8 @ case 8 +_02330740: + bl FUN_022BE6AC + cmp r0, #0 + ldrne r0, _023309F0 @ =0x0233C164 + mov r1, #1 + ldrne r0, [r0] + strbne r1, [r0, #0x284] + bne _023309E8 + ldr r0, _023309F0 @ =0x0233C164 + ldr r0, [r0] + str r1, [r0, #4] +_02330768: + bl FUN_022BE6AC + cmp r0, #0 + ldrne r0, _023309F0 @ =0x0233C164 + movne r1, #1 + ldrne r0, [r0] + strbne r1, [r0, #0x284] + bne _023309E8 + ldr r0, _023309F0 @ =0x0233C164 + ldr r2, [r0] + ldrb r1, [r2, #0x286] + cmp r1, #0 + beq _023307C0 + mov r0, #0x10 + bl FUN_022BE630 + ldr r0, _023309F0 @ =0x0233C164 + mov r3, #1 + ldr r2, [r0] + mov r1, #7 + strb r3, [r2, #0x284] + ldr r0, [r0] + str r1, [r0, #4] + b _023309E8 +_023307C0: + ldrb r1, [r2, #0x285] + cmp r1, #0 + moveq r0, #0 + strbeq r0, [r2, #0x284] + beq _023309E8 + mov r1, #1 + strb r1, [r2, #0x284] + ldr r1, [r0] + mov r2, #0 + strb r2, [r1, #0x285] + ldr r0, [r0] + mov r1, #2 + str r1, [r0, #4] + b _023309E8 +_023307F8: + bl FUN_022BE6AC + cmp r0, #0 + ldrne r0, _023309F0 @ =0x0233C164 + movne r1, #1 + ldrne r0, [r0] + strbne r1, [r0, #0x284] + bne _023309E8 + ldr r0, _023309F0 @ =0x0233C164 + mov r1, #6 + ldr r0, [r0] + str r1, [r0, #4] +_02330824: + ldr r0, _023309F0 @ =0x0233C164 + ldr r2, [r0] + ldrb r0, [r2, #0x286] + cmp r0, #0 + ldrbeq r0, [r2, #0x285] + cmpeq r0, #0 + beq _02330868 + mov r0, #0x10 + bl FUN_022BE630 + ldr r0, _023309F0 @ =0x0233C164 + mov r3, #0 + ldr r2, [r0] + mov r1, #1 + str r3, [r2, #4] + ldr r0, [r0] + strb r1, [r0, #0x284] + b _023309E8 +_02330868: + ldrb r0, [r2, #0x44] + cmp r0, #0 + beq _02330984 + ldr r1, [r2, #0x48] + ldr r0, [r2, #0xc] + mov ip, #3 + cmp r1, r0 + ldrbeq r1, [r2, #0x61] + ldrbeq r0, [r2, #0x25] + cmpeq r1, r0 + ldreq r1, [r2, #0x64] + ldreq r0, [r2, #0x28] + cmpeq r1, r0 + movne r0, #1 + strbne r0, [r2, #0x80] + ldr r0, _023309F0 @ =0x0233C164 + ldr r2, [r0] + ldr r1, [r2, #0x48] + ldr r0, [r2, #0xc] + cmp r1, r0 + ldrbeq r1, [r2, #0x62] + ldrbeq r0, [r2, #0x26] + cmpeq r1, r0 + ldreq r1, [r2, #0x68] + ldreq r0, [r2, #0x2c] + cmpeq r1, r0 + movne r0, #1 + strbne r0, [r2, #0x81] + ldr r0, _023309F0 @ =0x0233C164 + ldr r2, [r0] + ldr r1, [r2, #0x48] + ldr r0, [r2, #0xc] + cmp r1, r0 + ldrbeq r1, [r2, #0x60] + ldrbeq r0, [r2, #0x24] + cmpeq r1, r0 + ldreq r1, [r2, #0x7c] + ldreq r0, [r2, #0x40] + cmpeq r1, r0 + movne r0, #1 + strbne r0, [r2, #0x82] + ldr r0, _023309F0 @ =0x0233C164 + ldr r2, [r0] + ldr r1, [r2, #0x48] + ldr r0, [r2, #0xc] + cmp r1, r0 + ldrbeq r1, [r2, #0x60] + ldrbeq r0, [r2, #0x24] + cmpeq r1, r0 + movne r0, #1 + strbne r0, [r2, #0x83] + ldr r0, _023309F0 @ =0x0233C164 + ldr r2, [r0] + ldr r1, [r2, #0xc] + str r1, [r2, #0x48] + ldr r5, [r0] + add r4, r5, #0x10 + add lr, r5, #0x4c +_02330950: + ldm r4!, {r0, r1, r2, r3} + stm lr!, {r0, r1, r2, r3} + subs ip, ip, #1 + bne _02330950 + ldr r0, [r4] + mov r1, #0 + str r0, [lr] + ldr r0, _023309F0 @ =0x0233C164 + strb r1, [r5, #0x44] + ldr r0, [r0] + mov r1, #1 + strb r1, [r0, #0x284] + b _023309E8 +_02330984: + mov r0, #0 + strb r0, [r2, #0x284] + b _023309E8 +_02330990: + bl FUN_022BE6AC + cmp r0, #0 + bne _023309E8 + ldr r0, _023309F0 @ =0x0233C164 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #8] + cmp r0, r1 + beq _023309C8 + bl FUN_0202FED4 + ldr r0, _023309F0 @ =0x0233C164 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #8] +_023309C8: + ldr r0, _023309F0 @ =0x0233C164 + mov r1, #8 + ldr r0, [r0] + str r1, [r0, #4] +_023309D8: + ldr r0, _023309F0 @ =0x0233C164 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x284] +_023309E8: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_023309F0: .4byte 0x0233C164 + arm_func_end ov01_02330700 + + arm_func_start ov01_023309F4 +ov01_023309F4: @ 0x023309F4 + push {r3, lr} + sub sp, sp, #8 + ldr r0, _02330AC0 @ =0x0233C164 + ldr r3, [r0] + ldr r1, [r3, #4] + cmp r1, #2 + bne _02330A60 + mov r2, #1 + strb r2, [r3, #0x284] + ldr r1, [r0] + sub r0, r2, #3 + ldrsb r1, [r1, #8] + cmp r1, r0 + bne _02330A4C + mov r0, #0 + ldr r3, _02330AC4 @ =0x000004EE + mov r1, r0 + mov r2, r0 + bl FUN_0202FE2C + ldr r1, _02330AC0 @ =0x0233C164 + ldr r1, [r1] + strb r0, [r1, #8] +_02330A4C: + ldr r0, _02330AC0 @ =0x0233C164 + mov r1, #3 + ldr r0, [r0] + str r1, [r0, #4] + b _02330AB8 +_02330A60: + cmp r1, #3 + bne _02330AB8 + mov r1, #1 + strb r1, [r3, #0x284] + ldr r0, [r0] + ldrsb r0, [r0, #8] + bl FUN_0202FEF0 + cmp r0, #0 + bne _02330AB8 + bl ov01_02330644 + mov r1, #0 + mov ip, #1 + str ip, [sp] + ldr r0, _02330AC8 @ =0x0233B118 + mov r2, r1 + mov r3, r1 + str ip, [sp, #4] + bl FUN_02052060 + ldr r0, _02330AC0 @ =0x0233C164 + mov r1, #4 + ldr r0, [r0] + str r1, [r0, #4] +_02330AB8: + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_02330AC0: .4byte 0x0233C164 +_02330AC4: .4byte 0x000004EE +_02330AC8: .4byte 0x0233B118 + arm_func_end ov01_023309F4 + + arm_func_start ov01_02330ACC +ov01_02330ACC: @ 0x02330ACC + push {r3, lr} + sub sp, sp, #0x10 + ldr r0, _02330D54 @ =0x0233C164 + ldr r2, [r0] + ldr r1, [r2, #4] + cmp r1, #4 + moveq r1, #1 + strbeq r1, [r2] + ldreq r0, [r0] + moveq r1, #5 + streq r1, [r0, #4] + ldr r0, _02330D54 @ =0x0233C164 + ldr ip, [r0] + ldrb r0, [ip, #0x80] + cmp r0, #0 + beq _02330BA8 + ldrb r0, [ip, #0x61] + cmp r0, #0 + ldr r0, [ip, #0x64] + beq _02330B2C + cmp r0, #0 + movgt r1, #3 + movle r1, #4 + b _02330B38 +_02330B2C: + cmp r0, #0 + movgt r1, #5 + movle r1, #2 +_02330B38: + mov r2, #0 + mov r0, #4 + stm sp, {r0, r2} + mov r0, #1 + str r0, [sp, #8] + mov r3, r2 + add r0, ip, #0x94 + str r2, [sp, #0xc] + bl FUN_0201C2CC + ldr r0, _02330D54 @ =0x0233C164 + ldr r2, [r0] + ldr r1, [r2, #0x48] + cmp r1, #2 + bne _02330B84 + mov r1, #0xa0 + strh r1, [r2, #0xb0] + ldr r0, [r0] + mov r1, #0x16 + b _02330B94 +_02330B84: + mov r1, #0xe4 + strh r1, [r2, #0xb0] + ldr r0, [r0] + mov r1, #0x52 +_02330B94: + strh r1, [r0, #0xb2] + ldr r0, _02330D54 @ =0x0233C164 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x80] +_02330BA8: + ldr r0, _02330D54 @ =0x0233C164 + ldr r3, [r0] + ldrb r0, [r3, #0x81] + cmp r0, #0 + beq _02330C64 + ldrb r0, [r3, #0x62] + cmp r0, #0 + ldr r0, [r3, #0x68] + beq _02330BDC + cmp r0, #0 + movgt r1, #7 + movle r1, #8 + b _02330BE8 +_02330BDC: + cmp r0, #0 + movgt r1, #9 + movle r1, #6 +_02330BE8: + mov r0, #5 + str r0, [sp] + mov r2, #0 + str r2, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + add r0, r3, #0x110 + mov r3, #0x100 + str r2, [sp, #0xc] + bl FUN_0201C2CC + ldr r1, _02330D54 @ =0x0233C164 + ldr r2, [r1] + ldr r0, [r2, #0x48] + cmp r0, #2 + add r0, r2, #0x100 + bne _02330C3C + mov r2, #0xb4 + strh r2, [r0, #0x2c] + ldr r0, [r1] + mov r1, #0x16 + b _02330C4C +_02330C3C: + mov r2, #0xe4 + strh r2, [r0, #0x2c] + ldr r0, [r1] + mov r1, #0x60 +_02330C4C: + add r0, r0, #0x100 + strh r1, [r0, #0x2e] + ldr r0, _02330D54 @ =0x0233C164 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x81] +_02330C64: + ldr r0, _02330D54 @ =0x0233C164 + ldr r3, [r0] + ldrb r0, [r3, #0x82] + cmp r0, #0 + beq _02330CEC + ldrb r0, [r3, #0x24] + mov r2, #0 + cmp r0, #0 + mov r0, #6 + str r0, [sp] + movne r1, #1 + str r2, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + add r0, r3, #0x18c + moveq r1, #0 + mov r3, #0x200 + str r2, [sp, #0xc] + bl FUN_0201C2CC + ldr r2, _02330D54 @ =0x0233C164 + mov ip, #0x9c + ldr r1, [r2] + mov r3, #0 + ldr r0, [r1, #0x7c] + add r1, r1, #0x100 + add r0, r0, r0, lsr #31 + asr r0, r0, #1 + add r0, r0, #0x88 + strh r0, [r1, #0xa8] + ldr r0, [r2] + add r0, r0, #0x100 + strh ip, [r0, #0xaa] + ldr r0, [r2] + strb r3, [r0, #0x82] +_02330CEC: + ldr r0, _02330D54 @ =0x0233C164 + ldr r3, [r0] + ldrb r0, [r3, #0x83] + cmp r0, #0 + beq _02330D48 + ldrb r0, [r3, #0x24] + mov r2, #0 + cmp r0, #0 + mov r0, #7 + str r0, [sp] + moveq r1, #1 + str r2, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + add r0, r3, #0x208 + movne r1, #0 + mov r3, #0x300 + str r2, [sp, #0xc] + bl FUN_0201C2CC + ldr r0, _02330D54 @ =0x0233C164 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x83] +_02330D48: + mov r0, #0 + add sp, sp, #0x10 + pop {r3, pc} + .align 2, 0 +_02330D54: .4byte 0x0233C164 + arm_func_end ov01_02330ACC + + arm_func_start ov01_02330D58 +ov01_02330D58: @ 0x02330D58 + push {r3, lr} + ldr r0, _02330DFC @ =0x0233C164 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0 + beq _02330D94 + mov r0, #1 + mov r1, #2 + bl FUN_02008F64 + ldr r0, _02330DFC @ =0x0233C164 + mov r2, #0 + ldr r1, [r0] + mov r0, #0x10 + strb r2, [r1] + bl FUN_022BE618 +_02330D94: + ldr r0, _02330DFC @ =0x0233C164 + ldr r1, [r0] + ldr r0, [r1, #0x48] + cmp r0, #0 + beq _02330DC0 + add r0, r1, #0x94 + bl FUN_0201CF5C + ldr r0, _02330DFC @ =0x0233C164 + ldr r0, [r0] + add r0, r0, #0x110 + bl FUN_0201CF5C +_02330DC0: + ldr r0, _02330DFC @ =0x0233C164 + ldr r1, [r0] + ldr r0, [r1, #0x48] + cmp r0, #3 + popne {r3, pc} + add r0, r1, #0x208 + bl FUN_0201CF5C + ldr r0, _02330DFC @ =0x0233C164 + ldr r1, [r0] + ldr r0, [r1, #0x7c] + cmp r0, #0 + pople {r3, pc} + add r0, r1, #0x18c + bl FUN_0201CF5C + pop {r3, pc} + .align 2, 0 +_02330DFC: .4byte 0x0233C164 + arm_func_end ov01_02330D58 +_02330E00: + .byte 0x2C, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x04, 0x00, 0x91, 0x15 + .byte 0x07, 0x00, 0x50, 0x13, 0x08, 0x00, 0x50, 0x13, 0x03, 0x00, 0x00, 0x0A, 0x86, 0x02, 0xD1, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x1E, 0xFF, 0x2F, 0x01, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x64, 0xC1, 0x33, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x70, 0x20, 0x9F, 0xE5 + .byte 0x01, 0x40, 0xA0, 0xE1, 0x00, 0x10, 0x92, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x10, 0x80, 0xBD, 0x08 + .byte 0x01, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x81, 0x15, 0x00, 0x00, 0x54, 0xE3, 0x0A, 0x00, 0x00, 0x0A + .byte 0x4C, 0x00, 0x9F, 0xE5, 0x03, 0xC0, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x10, 0xE0, 0x80, 0xE2 + .byte 0x0F, 0x00, 0xB4, 0xE8, 0x0F, 0x00, 0xAE, 0xE8, 0x01, 0xC0, 0x5C, 0xE2, 0xFB, 0xFF, 0xFF, 0x1A + .byte 0x00, 0x00, 0x94, 0xE5, 0x00, 0x00, 0x8E, 0xE5, 0x04, 0x00, 0x00, 0xEA, 0x20, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x10, 0x00, 0x80, 0xE2, 0xB0, 0x32, 0x00, 0xEB + .byte 0x0C, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x44, 0x10, 0xC0, 0xE5 + .byte 0x10, 0x80, 0xBD, 0xE8, 0x64, 0xC1, 0x33, 0x02 + + arm_func_start ov01_02330EB8 +ov01_02330EB8: @ 0x02330EB8 + push {r3, r4, r5, lr} + sub sp, sp, #0x110 + ldr r3, _02330FE4 @ =0x0233C174 + mov ip, #0 + strb ip, [r3] + mov r5, r1 + mov r4, r2 + strb ip, [r3, #1] + bl FUN_02054BE0 + mov r3, #0 + ldr r2, _02330FE8 @ =0x0233B314 + b _02330F04 +_02330EE8: + cmp r0, r1 + addne r1, r1, #0x258 + cmpne r0, r1 + beq _02330F18 + add r1, r3, #1 + lsl r1, r1, #0x10 + asr r3, r1, #0x10 +_02330F04: + lsl r1, r3, #3 + ldrsh r1, [r2, r1] + cmp r1, #0 + bne _02330EE8 + mvn r3, #0 +_02330F18: + cmp r3, #0 + ldrlt r1, _02330FE4 @ =0x0233C174 + movlt r0, #0 + strhlt r0, [r1, #2] + blt _02330FDC + ldr r1, _02330FEC @ =0x0233B318 + add r0, sp, #0x10 + ldr r2, [r1, r3, lsl #3] + ldr r1, _02330FF0 @ =0x0233B504 + bl FUN_02089584 + ldr r0, _02330FF4 @ =0x020AFC68 + add r1, sp, #0x10 + ldr r0, [r0] + mov r2, #0 + bl FUN_0201D3DC + ldr r1, _02330FE4 @ =0x0233C174 + strh r0, [r1, #2] + ldrsh r0, [r1, #2] + cmp r0, #0 + moveq r0, #0 + beq _02330FDC + ldr r0, _02330FF8 @ =0x0233C978 + bl FUN_0201C0B0 + ldr r1, _02330FE4 @ =0x0233C174 + ldr r0, _02330FF8 @ =0x0233C978 + ldrsh r1, [r1, #2] + bl FUN_0201C0E8 + mov r3, #0xa + mov r1, #0 + str r3, [sp] + str r1, [sp, #4] + mov r2, #1 + str r2, [sp, #8] + ldr r0, _02330FF8 @ =0x0233C978 + str r2, [sp, #0xc] + mov r2, r1 + bl FUN_0201C2CC + ldr r2, _02330FF8 @ =0x0233C978 + mov r0, #0 + strh r0, [r2, #0x38] + strh r5, [r2, #0x1c] + strh r4, [r2, #0x1e] + ldrh r3, [r2, #2] + ldr r1, _02330FE4 @ =0x0233C174 + mov r0, #1 + bic r3, r3, #2 + strh r3, [r2, #2] + strb r0, [r1] + strb r0, [r1, #1] +_02330FDC: + add sp, sp, #0x110 + pop {r3, r4, r5, pc} + .align 2, 0 +_02330FE4: .4byte 0x0233C174 +_02330FE8: .4byte 0x0233B314 +_02330FEC: .4byte 0x0233B318 +_02330FF0: .4byte 0x0233B504 +_02330FF4: .4byte 0x020AFC68 +_02330FF8: .4byte 0x0233C978 + arm_func_end ov01_02330EB8 + + arm_func_start ov01_02330FFC +ov01_02330FFC: @ 0x02330FFC + push {r3, lr} + ldr r0, _02331034 @ =0x0233C174 + ldrsh r1, [r0, #2] + cmp r1, #0 + popeq {r3, pc} + ldr r0, _02331038 @ =0x020AFC68 + ldr r0, [r0] + bl FUN_0201D72C + ldr r0, _02331034 @ =0x0233C174 + mov r1, #0 + strh r1, [r0, #2] + strb r1, [r0] + strb r1, [r0, #1] + pop {r3, pc} + .align 2, 0 +_02331034: .4byte 0x0233C174 +_02331038: .4byte 0x020AFC68 + arm_func_end ov01_02330FFC + + arm_func_start ov01_0233103C +ov01_0233103C: @ 0x0233103C + push {r4, lr} + ldr r0, _023310AC @ =0x0233C174 + ldrsh r1, [r0, #2] + cmp r1, #0 + ldrbne r1, [r0] + cmpne r1, #0 + popeq {r4, pc} + ldrb r0, [r0, #1] + cmp r0, #0 + beq _02331094 + ldr r4, _023310B0 @ =0x0233C978 + ldr lr, _023310B4 @ =0x0233C9F4 + mov ip, #7 +_02331070: + ldm r4!, {r0, r1, r2, r3} + stm lr!, {r0, r1, r2, r3} + subs ip, ip, #1 + bne _02331070 + ldm r4, {r0, r1, r2} + stm lr, {r0, r1, r2} + ldr r0, _023310AC @ =0x0233C174 + mov r1, #0 + strb r1, [r0, #1] +_02331094: + ldr r0, _023310B4 @ =0x0233C9F4 + ldrh r1, [r0, #2] + tst r1, #2 + popne {r4, pc} + bl FUN_0201CF5C + pop {r4, pc} + .align 2, 0 +_023310AC: .4byte 0x0233C174 +_023310B0: .4byte 0x0233C978 +_023310B4: .4byte 0x0233C9F4 + arm_func_end ov01_0233103C + + arm_func_start ov01_023310B8 +ov01_023310B8: @ 0x023310B8 + push {r4, lr} + mov r4, r0 + ldr r0, _023310DC @ =0x0233B558 + bl FUN_020348E4 + cmp r0, #0 + ldrne r0, _023310E0 @ =0x0233C178 + movne r1, #0 + stmibne r0, {r1, r4} + pop {r4, pc} + .align 2, 0 +_023310DC: .4byte 0x0233B558 +_023310E0: .4byte 0x0233C178 + arm_func_end ov01_023310B8 + + arm_func_start ov01_023310E4 +ov01_023310E4: @ 0x023310E4 + push {r3, r4, r5, r6, r7, lr} + mov r0, #0x184 + mov r1, #8 + bl FUN_02001170 + ldr r7, _0233154C @ =0x0233C178 + mov r6, #0 + str r0, [r7] + str r6, [r0, #0x18] + ldr r0, [r7] + mov r4, #1 + str r6, [r0, #0x94] + ldr r0, [r7] + mov r5, r6 + str r6, [r0, #0x114] +_0233111C: + mov r0, r6 + bl FUN_0204C94C + cmp r0, #0 + beq _02331180 + ldr r2, [r7] + add r0, r6, #0x72 + ldr r1, [r2, #0x114] + add r2, r2, #0x11c + add r3, r2, r1, lsl #3 + str r6, [r3, #4] + lsl r1, r1, #3 + add r0, r0, #0x100 + strh r0, [r2, r1] + bl FUN_0204C8EC + cmp r6, r0 + ldr r1, [r7] + movne r2, r5 + ldr r0, [r1, #0x114] + moveq r2, r4 + add r0, r1, r0 + strb r2, [r0, #0x174] + ldr r1, [r7] + ldr r0, [r1, #0x114] + add r0, r0, #1 + str r0, [r1, #0x114] +_02331180: + add r6, r6, #1 + cmp r6, #5 + blt _0233111C + ldr r0, _0233154C @ =0x0233C178 + mvn r2, #0 + ldr r4, [r0] + ldr r1, _02331550 @ =0x000001E6 + ldr r3, [r4, #0x114] + add r4, r4, #0x11c + add r5, r4, r3, lsl #3 + str r2, [r5, #4] + lsl r2, r3, #3 + strh r1, [r4, r2] + ldr r3, [r0] + mov r2, #0 + ldr r1, [r3, #0x114] + add r1, r3, r1 + strb r2, [r1, #0x174] + ldr r2, [r0] + ldr r1, [r2, #0x114] + add r1, r1, #1 + str r1, [r2, #0x114] + ldr r0, [r0, #8] + cmp r0, #0x20 + bne _023311EC + bl FUN_0204C918 + b _023311F0 +_023311EC: + bl FUN_0204C8EC +_023311F0: + ldr r2, _0233154C @ =0x0233C178 + mov r4, #0 + ldr r3, [r2] + sub r1, r4, #1 + str r4, [r3, #0x118] + cmp r0, r1 + ldreq r0, [r2] + moveq r1, #1 + strbeq r1, [r0, #0x10e] + beq _0233124C + ldr r1, [r2] + strb r4, [r1, #0x10e] + ldr r3, [r2] + ldr r2, [r3, #0x114] + b _02331244 +_0233122C: + add r1, r3, r4, lsl #3 + ldr r1, [r1, #0x120] + cmp r0, r1 + streq r4, [r3, #0x118] + beq _0233124C + add r4, r4, #1 +_02331244: + cmp r4, r2 + blt _0233122C +_0233124C: + mov r4, #0 + bl FUN_0204FBC4 + cmp r0, #0 + beq _02331268 + mov r0, #2 + mov r1, #1 + bl ov01_02331630 +_02331268: + bl FUN_02048480 + cmp r0, #0 + beq _023313E4 + mov r4, #1 + bl FUN_0204E6A4 + cmp r0, #0 + bne _02331304 + bl FUN_0204E40C + cmp r0, #0 + beq _023312A0 + mov r0, #0xa + mov r1, r4 + bl ov01_02331558 + b _0233131C +_023312A0: + bl FUN_0204E210 + cmp r0, #2 + bne _023312BC + mov r0, #0xd + mov r1, r4 + bl ov01_02331558 + b _0233131C +_023312BC: + mvn r1, #0 + cmp r0, r1 + beq _023312D8 + mov r0, #0x1b + mov r1, r4 + bl ov01_02331558 + b _0233131C +_023312D8: + mov r1, r4 + mov r0, #0x1a + mov r4, #0 + bl ov01_02331558 + bl FUN_0204E644 + cmp r0, #0 + beq _0233131C + mov r0, #0xc + mov r1, #1 + bl ov01_02331558 + b _0233131C +_02331304: + mov r1, r4 + mov r0, #0xb + bl ov01_02331558 + mov r0, #0xe + mov r1, r4 + bl ov01_02331558 +_0233131C: + mov r0, #4 + bl FUN_0204CA94 + cmp r0, #0 + beq _02331338 + mov r0, #0xf + mov r1, #1 + bl ov01_02331558 +_02331338: + mov r0, #3 + bl FUN_0204CA94 + cmp r0, #0 + beq _02331354 + mov r0, #0x12 + mov r1, #1 + bl ov01_02331558 +_02331354: + mov r0, #4 + bl FUN_0204CA94 + cmp r0, #0 + beq _02331370 + mov r0, #0x11 + mov r1, #1 + bl ov01_02331558 +_02331370: + mov r0, #8 + bl FUN_0204CA94 + cmp r0, #0 + beq _0233138C + mov r0, #0x13 + mov r1, #1 + bl ov01_02331558 +_0233138C: + mov r0, #0x1a + bl FUN_0204CA94 + cmp r0, #0 + beq _023313A8 + mov r0, #0x14 + mov r1, #1 + bl ov01_02331630 +_023313A8: + mov r0, #1 + bl FUN_0204CA94 + mov r1, r0 + mov r0, #8 + bl ov01_02331630 + mov r0, #9 + mov r1, #1 + bl ov01_02331630 + mov r0, #0x18 + mov r1, #1 + bl ov01_02331630 + mov r0, #7 + mov r1, #1 + bl ov01_02331630 + b _023313FC +_023313E4: + mov r0, #0x18 + mov r1, #1 + bl ov01_02331630 + mov r0, #3 + mov r1, #1 + bl ov01_02331558 +_023313FC: + mov r0, #0x19 + mov r1, #1 + bl ov01_02331558 + mov r0, #0x10 + mov r1, #1 + bl ov01_02331630 + ldr r0, _0233154C @ =0x0233C178 + ldr r0, [r0] + ldr r0, [r0, #0x114] + cmp r0, #1 + ble _02331480 + bl FUN_0204C9A0 + cmp r0, #0 + beq _0233145C + cmp r4, #0 + beq _0233144C + mov r0, #0x1f + mov r1, #0 + bl ov01_02331558 + b _02331480 +_0233144C: + mov r0, #0x1d + mov r1, #1 + bl ov01_02331558 + b _02331480 +_0233145C: + cmp r4, #0 + beq _02331474 + mov r0, #0x1e + mov r1, #0 + bl ov01_02331558 + b _02331480 +_02331474: + mov r0, #0x1c + mov r1, #1 + bl ov01_02331558 +_02331480: + mov r0, #0x21 + mov r1, #1 + bl ov01_02331630 + ldr r2, _0233154C @ =0x0233C178 + mov r1, #0 + ldr r4, [r2] + mov r0, #1 + ldr r3, [r4, #0x18] + add r4, r4, #0x1c + add r5, r4, r3, lsl #3 + str r0, [r5, #4] + lsl r3, r3, #3 + strh r1, [r4, r3] + ldr r5, [r2] + ldr r4, _02331554 @ =0x000001EA + ldr r3, [r5, #0x94] + add r5, r5, #0x98 + add r6, r5, r3, lsl #3 + str r0, [r6, #4] + lsl r3, r3, #3 + strh r1, [r5, r3] + ldr r6, [r2] + sub r5, r1, #1 + ldr r3, [r6, #0x114] + add r6, r6, #0x11c + add r7, r6, r3, lsl #3 + str r5, [r7, #4] + lsl r3, r3, #3 + strh r4, [r6, r3] + str r5, [r7, #0xc] + strh r1, [r7, #8] + ldr r3, [r2] + sub r4, r4, #0x1ec + strb r4, [r3] + ldr r3, [r2] + strb r4, [r3, #1] + ldr r3, [r2] + strb r4, [r3, #2] + ldr r3, [r2] + strb r4, [r3, #3] + ldr r3, [r2] + strb r4, [r3, #4] + ldr r3, [r2] + str r5, [r3, #0x10] + ldr r3, [r2] + str r1, [r3, #8] + ldr r4, [r2, #8] + ldr r3, [r2] + str r4, [r3, #0xc] + str r1, [r2, #4] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0233154C: .4byte 0x0233C178 +_02331550: .4byte 0x000001E6 +_02331554: .4byte 0x000001EA + arm_func_end ov01_023310E4 + + arm_func_start ov01_02331558 +ov01_02331558: @ 0x02331558 + ldr r2, _023315EC @ =0x0233B5D0 + b _023315DC +_02331560: + ldr ip, [r2] + cmp ip, r0 + bne _023315D8 + ldr r0, _023315F0 @ =0x0233C178 + cmp r1, #0 + ldr r0, [r0] + ldr r1, [r0, #0x18] + add r3, r0, #0x1c + add r0, r3, r1, lsl #3 + str ip, [r0, #4] + ldrh r0, [r2, #4] + lsl r1, r1, #3 + movne ip, #0 + strh r0, [r3, r1] + ldr r0, _023315F0 @ =0x0233C178 + moveq ip, #3 + ldr r3, [r0] + ldr r1, [r3, #0x18] + add r1, r3, r1 + strb ip, [r1, #0x74] + ldr r3, [r0] + ldrh r2, [r2, #6] + ldr r1, [r3, #0x18] + add r1, r3, r1, lsl #1 + strh r2, [r1, #0x7e] + ldr r1, [r0] + ldr r0, [r1, #0x18] + add r0, r0, #1 + str r0, [r1, #0x18] + bx lr +_023315D8: + add r2, r2, #8 +_023315DC: + ldrh r3, [r2, #4] + cmp r3, #0 + bne _02331560 + bx lr + .align 2, 0 +_023315EC: .4byte 0x0233B5D0 +_023315F0: .4byte 0x0233C178 + arm_func_end ov01_02331558 + + arm_func_start ov01_023315F4 +ov01_023315F4: @ 0x023315F4 + ldr r1, _0233162C @ =0x0233C178 + mov r2, #0 + ldr r3, [r1] + ldr ip, [r3, #0x18] + b _0233161C +_02331608: + add r1, r3, r2, lsl #3 + ldr r1, [r1, #0x20] + cmp r1, r0 + bxeq lr + add r2, r2, #1 +_0233161C: + cmp r2, ip + blt _02331608 + mov r0, #2 + bx lr + .align 2, 0 +_0233162C: .4byte 0x0233C178 + arm_func_end ov01_023315F4 + + arm_func_start ov01_02331630 +ov01_02331630: @ 0x02331630 + ldr r2, _023316C4 @ =0x0233B588 + b _023316B4 +_02331638: + ldr ip, [r2] + cmp ip, r0 + bne _023316B0 + ldr r0, _023316C8 @ =0x0233C178 + cmp r1, #0 + ldr r0, [r0] + ldr r1, [r0, #0x94] + add r3, r0, #0x98 + add r0, r3, r1, lsl #3 + str ip, [r0, #4] + ldrh r0, [r2, #4] + lsl r1, r1, #3 + movne ip, #0 + strh r0, [r3, r1] + ldr r0, _023316C8 @ =0x0233C178 + moveq ip, #3 + ldr r3, [r0] + ldr r1, [r3, #0x94] + add r1, r3, r1 + strb ip, [r1, #0xf0] + ldr r3, [r0] + ldrh r2, [r2, #6] + ldr r1, [r3, #0x94] + add r1, r3, r1, lsl #1 + strh r2, [r1, #0xfa] + ldr r1, [r0] + ldr r0, [r1, #0x94] + add r0, r0, #1 + str r0, [r1, #0x94] + bx lr +_023316B0: + add r2, r2, #8 +_023316B4: + ldrh r3, [r2, #4] + cmp r3, #0 + bne _02331638 + bx lr + .align 2, 0 +_023316C4: .4byte 0x0233B588 +_023316C8: .4byte 0x0233C178 + arm_func_end ov01_02331630 + + arm_func_start ov01_023316CC +ov01_023316CC: @ 0x023316CC + push {r3, lr} + ldr r0, _02331780 @ =0x0233C178 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + ldrsb r0, [r0] + mvn r1, #1 + cmp r0, r1 + beq _023316F4 + bl FUN_0202AABC +_023316F4: + ldr r0, _02331780 @ =0x0233C178 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #1] + cmp r0, r1 + beq _02331710 + bl FUN_0202AABC +_02331710: + ldr r0, _02331780 @ =0x0233C178 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #2] + cmp r0, r1 + beq _0233172C + bl FUN_0202AABC +_0233172C: + ldr r0, _02331780 @ =0x0233C178 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #3] + cmp r0, r1 + beq _02331748 + bl FUN_0202BC44 +_02331748: + ldr r0, _02331780 @ =0x0233C178 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #4] + cmp r0, r1 + beq _02331764 + bl FUN_0202F148 +_02331764: + ldr r0, _02331780 @ =0x0233C178 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _02331780 @ =0x0233C178 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_02331780: .4byte 0x0233C178 + arm_func_end ov01_023316CC +_02331784: + .byte 0x30, 0x40, 0x2D, 0xE9, 0xC1, 0xDF, 0x4D, 0xE2, 0x74, 0x0D, 0x9F, 0xE5 + .byte 0x00, 0x40, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x08, 0x00, 0x91, 0xE5, 0x0D, 0x00, 0x50, 0xE3 + .byte 0x00, 0xF1, 0x8F, 0x90, 0x52, 0x03, 0x00, 0xEA, 0x0C, 0x00, 0x00, 0xEA, 0x17, 0x00, 0x00, 0xEA + .byte 0x25, 0x00, 0x00, 0xEA, 0xBE, 0x00, 0x00, 0xEA, 0x3A, 0x01, 0x00, 0xEA, 0x62, 0x01, 0x00, 0xEA + .byte 0x90, 0x01, 0x00, 0xEA, 0xBD, 0x01, 0x00, 0xEA, 0xDB, 0x01, 0x00, 0xEA, 0x1B, 0x02, 0x00, 0xEA + .byte 0x54, 0x02, 0x00, 0xEA, 0xBC, 0x02, 0x00, 0xEA, 0xDB, 0x02, 0x00, 0xEA, 0xD7, 0x02, 0x00, 0xEA + .byte 0x59, 0xF4, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x41, 0x03, 0x00, 0x1A, 0x14, 0x0D, 0x9F, 0xE5 + .byte 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x10, 0x80, 0xE5, 0x5C, 0xF9, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x1A, 0x67, 0xF5, 0xFF, 0xEB, 0x38, 0x03, 0x00, 0xEA + .byte 0x4D, 0xF4, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x35, 0x03, 0x00, 0x1A, 0x3B, 0xF8, 0xFF, 0xEB + .byte 0xE4, 0x0C, 0x9F, 0xE5, 0x21, 0xF6, 0xF3, 0xEB, 0xD8, 0x1C, 0x9F, 0xE5, 0x02, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x50, 0x91, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x04, 0x00, 0xC5, 0xE5, 0x00, 0x00, 0x91, 0xE5 + .byte 0x08, 0x30, 0x80, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x80, 0x21, 0x80, 0xE5, 0xB4, 0x0C, 0x9F, 0xE5 + .byte 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1 + .byte 0x0A, 0x00, 0x00, 0x0A, 0xB5, 0xE4, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x20, 0x03, 0x00, 0x1A + .byte 0x90, 0x0C, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x00, 0xD0, 0xE1, 0x8E, 0xE4, 0xF3, 0xEB + .byte 0x80, 0x0C, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x10, 0xC0, 0xE5 + .byte 0x70, 0x0C, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1 + .byte 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x0A, 0xA4, 0xE4, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x0F, 0x03, 0x00, 0x1A, 0x4C, 0x0C, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1 + .byte 0x7D, 0xE4, 0xF3, 0xEB, 0x3C, 0x0C, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x02, 0x10, 0xC0, 0xE5, 0x2C, 0x0C, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD3, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x0A, 0xF2, 0xE8, 0xF3, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0xFE, 0x02, 0x00, 0x1A, 0x08, 0x0C, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD3, 0x00, 0xD0, 0xE1, 0xCE, 0xE8, 0xF3, 0xEB, 0xF8, 0x0B, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x03, 0x10, 0xC0, 0xE5, 0xE8, 0x0B, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5 + .byte 0x80, 0x01, 0x91, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x40, 0xC2, 0x80, 0x01, 0x81, 0xC5 + .byte 0xEF, 0x02, 0x00, 0xCA, 0xD0, 0x00, 0xD1, 0xE1, 0x01, 0x20, 0xE0, 0xE3, 0x02, 0x00, 0x50, 0xE1 + .byte 0x55, 0x00, 0x00, 0x1A, 0x0C, 0xC0, 0x91, 0xE5, 0x00, 0x00, 0x5C, 0xE3, 0x24, 0x00, 0x00, 0x0A + .byte 0x1C, 0x00, 0x5C, 0xE3, 0x1D, 0x00, 0x5C, 0x13, 0x20, 0x00, 0x5C, 0x13, 0x0D, 0x00, 0x00, 0x1A + .byte 0x1C, 0x00, 0xA0, 0xE3, 0x22, 0xFF, 0xFF, 0xEB, 0x1C, 0x00, 0x50, 0xE3, 0x1C, 0x00, 0xA0, 0x03 + .byte 0x6C, 0x02, 0x8D, 0x05, 0x1D, 0x00, 0xA0, 0x13, 0x6C, 0x02, 0x8D, 0x15, 0x84, 0x0B, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x0C, 0x00, 0x91, 0xE5, 0x20, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13 + .byte 0x0C, 0x00, 0x81, 0x15, 0x20, 0x00, 0x00, 0xEA, 0x0C, 0x20, 0xA0, 0xE1, 0x94, 0x50, 0x91, 0xE5 + .byte 0x00, 0x30, 0xA0, 0xE3, 0x04, 0x00, 0x00, 0xEA, 0x83, 0x01, 0x81, 0xE0, 0x9C, 0x00, 0x90, 0xE5 + .byte 0x02, 0x00, 0x50, 0xE1, 0x03, 0x00, 0x00, 0x0A, 0x01, 0x30, 0x83, 0xE2, 0x05, 0x00, 0x53, 0xE1 + .byte 0xF8, 0xFF, 0xFF, 0xBA, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x00, 0x52, 0xE3, 0x6C, 0xC2, 0x8D, 0x05 + .byte 0x00, 0x00, 0xA0, 0x03, 0x0C, 0x00, 0x81, 0x05, 0x19, 0x00, 0xA0, 0x13, 0x6C, 0x02, 0x8D, 0x15 + .byte 0x0D, 0x00, 0x00, 0xEA, 0x16, 0x00, 0xA0, 0xE3, 0x6C, 0x02, 0x8D, 0xE5, 0xEB, 0x16, 0x00, 0xEB + .byte 0x01, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x0C, 0x00, 0xA0, 0xE3, 0xFC, 0xFE, 0xFF, 0xEB + .byte 0x6C, 0x02, 0x8D, 0xE5, 0x04, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A + .byte 0x0A, 0x00, 0xA0, 0xE3, 0xF6, 0xFE, 0xFF, 0xEB, 0x6C, 0x02, 0x8D, 0xE5, 0xE4, 0x0A, 0x9F, 0xE5 + .byte 0x00, 0x30, 0x90, 0xE5, 0x74, 0x10, 0x83, 0xE2, 0xCC, 0x12, 0x8D, 0xE5, 0x0C, 0x10, 0x93, 0xE5 + .byte 0x20, 0x00, 0x51, 0xE3, 0x06, 0x00, 0x00, 0x1A, 0x08, 0x10, 0xA0, 0xE3, 0x08, 0x10, 0x83, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x80, 0x11, 0x80, 0xE5, 0x01, 0x40, 0xA0, 0xE3 + .byte 0xA7, 0x02, 0x00, 0xEA, 0x00, 0x00, 0x51, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x04, 0x10, 0xA0, 0xE3 + .byte 0x08, 0x10, 0x83, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x80, 0x11, 0x80, 0xE5 + .byte 0x01, 0x40, 0xA0, 0xE3, 0x9E, 0x02, 0x00, 0xEA, 0x90, 0x0A, 0x9F, 0xE5, 0x90, 0x1A, 0x9F, 0xE5 + .byte 0x9B, 0x2F, 0x8D, 0xE2, 0x1C, 0x30, 0x83, 0xE2, 0xCF, 0xE2, 0xF3, 0xEB, 0x74, 0x1A, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x91, 0xE5, 0x00, 0x00, 0xC1, 0xE5, 0x00, 0x00, 0x00, 0xEA, 0xAC, 0xE3, 0xF3, 0xEB + .byte 0x60, 0x0A, 0x9F, 0xE5, 0x03, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x10, 0x80, 0xE5 + .byte 0x8F, 0x02, 0x00, 0xEA, 0xD0, 0x00, 0xD1, 0xE1, 0x30, 0xE4, 0xF3, 0xEB, 0x44, 0x1A, 0x9F, 0xE5 + .byte 0x00, 0x30, 0x91, 0xE5, 0x10, 0x20, 0x93, 0xE5, 0x00, 0x00, 0x52, 0xE1, 0x07, 0x00, 0x00, 0x0A + .byte 0x10, 0x00, 0x83, 0xE5, 0x00, 0x30, 0x91, 0xE5, 0x38, 0x1A, 0x9F, 0xE5, 0x80, 0x20, 0x83, 0xE0 + .byte 0xD4, 0x00, 0xD3, 0xE1, 0xBE, 0x27, 0xD2, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0xB0, 0xF5, 0xF3, 0xEB + .byte 0x10, 0x0A, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0x17, 0xE4, 0xF3, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x45, 0x00, 0x00, 0x1A, 0xF8, 0x09, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD0, 0x00, 0xD0, 0xE1, 0x25, 0xE4, 0xF3, 0xEB, 0x19, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x1A + .byte 0xE0, 0x09, 0x9F, 0xE5, 0x04, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x0A, 0x10, 0xA0, 0xE3 + .byte 0x08, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x40, 0xA0, 0xE3, 0x80, 0x11, 0x80, 0xE5 + .byte 0x6B, 0x02, 0x00, 0xEA, 0x1A, 0x00, 0x50, 0xE3, 0x12, 0x00, 0x00, 0x1A, 0xB4, 0x09, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x90, 0xE5, 0x0E, 0x11, 0xD2, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x05, 0x10, 0xA0, 0x13 + .byte 0x04, 0x10, 0x80, 0x15, 0x0A, 0x00, 0xA0, 0x13, 0x08, 0x00, 0x82, 0x15, 0x60, 0x02, 0x00, 0x1A + .byte 0x06, 0x10, 0xA0, 0xE3, 0x08, 0x10, 0x82, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x05, 0x20, 0xA0, 0xE3 + .byte 0x10, 0x21, 0x81, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x0A, 0x10, 0xA0, 0xE3, 0x80, 0x11, 0x80, 0xE5 + .byte 0x01, 0x40, 0xA0, 0xE3, 0x56, 0x02, 0x00, 0xEA, 0x1B, 0x00, 0x50, 0xE3, 0x0D, 0x00, 0x00, 0x1A + .byte 0x08, 0x00, 0x8D, 0xE2, 0xCC, 0x71, 0xF4, 0xEB, 0x08, 0x00, 0xDD, 0xE5, 0x03, 0x00, 0x50, 0xE3 + .byte 0x50, 0x09, 0x9F, 0x05, 0x06, 0x10, 0xA0, 0x03, 0x48, 0x09, 0x9F, 0x15, 0x05, 0x10, 0xA0, 0x13 + .byte 0x04, 0x10, 0x80, 0xE5, 0x3C, 0x09, 0x9F, 0xE5, 0x0A, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x08, 0x10, 0x80, 0xE5, 0x46, 0x02, 0x00, 0xEA, 0x1C, 0x10, 0x40, 0xE2, 0x01, 0x00, 0x51, 0xE3 + .byte 0x08, 0x00, 0x00, 0x8A, 0x1C, 0x09, 0x9F, 0xE5, 0x08, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x0A, 0x10, 0xA0, 0xE3, 0x08, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x40, 0xA0, 0xE3 + .byte 0x80, 0x11, 0x80, 0xE5, 0x3A, 0x02, 0x00, 0xEA, 0xF8, 0x18, 0x9F, 0xE5, 0x0A, 0x20, 0xA0, 0xE3 + .byte 0x04, 0x00, 0x81, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x08, 0x20, 0x80, 0xE5, 0x34, 0x02, 0x00, 0xEA + .byte 0x0A, 0x10, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0x6F, 0x51, 0xF3, 0xEB, 0xBA, 0x00, 0xDD, 0xE1 + .byte 0x02, 0x0C, 0x10, 0xE3, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0x0C, 0x00, 0x00, 0x0A + .byte 0x53, 0x5D, 0xF3, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE3, 0x50, 0x5D, 0xF3, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE3, 0x4D, 0x5D, 0xF3, 0xEB, 0xA4, 0x08, 0x9F, 0xE5 + .byte 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0x0C, 0xE5, 0xF3, 0xEB + .byte 0x1F, 0x02, 0x00, 0xEA, 0x4D, 0x5D, 0xF3, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE3 + .byte 0x4A, 0x5D, 0xF3, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE3, 0x47, 0x5D, 0xF3, 0xEB + .byte 0x70, 0x08, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1 + .byte 0xFF, 0xE4, 0xF3, 0xEB, 0x12, 0x02, 0x00, 0xEA, 0xD0, 0x00, 0xD1, 0xE1, 0x02, 0x10, 0x44, 0xE2 + .byte 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x0A, 0xA0, 0xE3, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x0B, 0x02, 0x00, 0x1A, 0x3C, 0x08, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1 + .byte 0x79, 0xE3, 0xF3, 0xEB, 0x2C, 0x08, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x00, 0x10, 0xC0, 0xE5, 0x1C, 0x08, 0x9F, 0xE5, 0x00, 0x30, 0x90, 0xE5, 0x80, 0x11, 0x93, 0xE5 + .byte 0x00, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x41, 0xC2, 0x80, 0x01, 0x83, 0xC5, 0xFC, 0x01, 0x00, 0xCA + .byte 0x0C, 0x20, 0x93, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0xD4, 0x21, 0x8D, 0xE5, 0x0C, 0x10, 0x83, 0xE5 + .byte 0x00, 0x30, 0x90, 0xE5, 0x00, 0x08, 0x9F, 0xE5, 0xF0, 0x50, 0x83, 0xE2, 0xFC, 0x17, 0x9F, 0xE5 + .byte 0x75, 0x2F, 0x8D, 0xE2, 0x98, 0x30, 0x83, 0xE2, 0x34, 0x52, 0x8D, 0xE5, 0x26, 0xE2, 0xF3, 0xEB + .byte 0xD0, 0x17, 0x9F, 0xE5, 0x05, 0x20, 0xA0, 0xE3, 0x00, 0x30, 0x91, 0xE5, 0x01, 0x00, 0xC3, 0xE5 + .byte 0x00, 0x00, 0x91, 0xE5, 0x08, 0x20, 0x80, 0xE5, 0xE9, 0x01, 0x00, 0xEA, 0xD1, 0x00, 0xD1, 0xE1 + .byte 0x8A, 0xE3, 0xF3, 0xEB, 0xAC, 0x17, 0x9F, 0xE5, 0x64, 0x30, 0x80, 0xE2, 0x00, 0x20, 0x91, 0xE5 + .byte 0x10, 0x00, 0x92, 0xE5, 0x03, 0x00, 0x50, 0xE1, 0x07, 0x00, 0x00, 0x0A, 0x10, 0x30, 0x82, 0xE5 + .byte 0x00, 0x00, 0x91, 0xE5, 0x9C, 0x17, 0x9F, 0xE5, 0x83, 0x20, 0x80, 0xE0, 0xD4, 0x00, 0xD0, 0xE1 + .byte 0xB2, 0x23, 0xD2, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0x09, 0xF5, 0xF3, 0xEB, 0x74, 0x07, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x00, 0xD0, 0xE1, 0x70, 0xE3, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0xD3, 0x01, 0x00, 0x1A, 0x5C, 0x07, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x00, 0xD0, 0xE1 + .byte 0x7E, 0xE3, 0xF3, 0xEB, 0x21, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x50, 0x13, 0x0B, 0x00, 0x00, 0x1A + .byte 0x40, 0x07, 0x9F, 0xE5, 0x02, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x0A, 0x30, 0xA0, 0xE3 + .byte 0x08, 0x20, 0x81, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x19, 0x10, 0xA0, 0xE3, 0x80, 0x31, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x01, 0x40, 0xA0, 0xE3, 0x0C, 0x10, 0x80, 0xE5, 0xC0, 0x01, 0x00, 0xEA + .byte 0x10, 0x17, 0x9F, 0xE5, 0x0A, 0x20, 0xA0, 0xE3, 0x04, 0x00, 0x81, 0xE5, 0x00, 0x00, 0x91, 0xE5 + .byte 0x08, 0x20, 0x80, 0xE5, 0xBA, 0x01, 0x00, 0xEA, 0xD0, 0x00, 0xD1, 0xE1, 0x02, 0x10, 0x44, 0xE2 + .byte 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x0A, 0x48, 0xE3, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0xB3, 0x01, 0x00, 0x1A, 0xDC, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1 + .byte 0x21, 0xE3, 0xF3, 0xEB, 0xCC, 0x06, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x00, 0x10, 0xC0, 0xE5, 0xBC, 0x06, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x80, 0x01, 0x91, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x40, 0xC2, 0x80, 0x01, 0x81, 0xC5, 0xA4, 0x01, 0x00, 0xCA + .byte 0x10, 0x51, 0x91, 0xE5, 0xB8, 0x16, 0x9F, 0xE5, 0xB8, 0x36, 0x9F, 0xE5, 0x4F, 0x2F, 0x8D, 0xE2 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x3C, 0x51, 0x8D, 0xE5, 0xD3, 0xE1, 0xF3, 0xEB, 0x84, 0x36, 0x9F, 0xE5 + .byte 0x90, 0x16, 0x9F, 0xE5, 0x00, 0x50, 0x93, 0xE5, 0x9C, 0x26, 0x9F, 0xE5, 0x02, 0x00, 0xC5, 0xE5 + .byte 0x00, 0x00, 0x93, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0xD4, 0x00, 0xD0, 0xE1, 0xC4, 0xF4, 0xF3, 0xEB + .byte 0x60, 0x06, 0x9F, 0xE5, 0x00, 0x30, 0xE0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x07, 0x10, 0xA0, 0xE3 + .byte 0x10, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x10, 0x80, 0xE5, 0x8C, 0x01, 0x00, 0xEA + .byte 0xD2, 0x00, 0xD1, 0xE1, 0x25, 0xE3, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x88, 0x01, 0x00, 0x1A + .byte 0x30, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x33, 0xE3, 0xF3, 0xEB + .byte 0x21, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x50, 0x13, 0x0B, 0x00, 0x00, 0x1A, 0x14, 0x06, 0x9F, 0xE5 + .byte 0x02, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x0A, 0x30, 0xA0, 0xE3, 0x08, 0x20, 0x81, 0xE5 + .byte 0x00, 0x20, 0x90, 0xE5, 0x1A, 0x10, 0xA0, 0xE3, 0x80, 0x31, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x01, 0x40, 0xA0, 0xE3, 0x0C, 0x10, 0x80, 0xE5, 0x75, 0x01, 0x00, 0xEA, 0xE4, 0x15, 0x9F, 0xE5 + .byte 0x0A, 0x20, 0xA0, 0xE3, 0x00, 0x30, 0x91, 0xE5, 0x10, 0x01, 0x83, 0xE5, 0x04, 0x00, 0x81, 0xE5 + .byte 0x00, 0x00, 0x91, 0xE5, 0x08, 0x20, 0x80, 0xE5, 0x6D, 0x01, 0x00, 0xEA, 0xD0, 0x00, 0xD1, 0xE1 + .byte 0x02, 0x10, 0x44, 0xE2, 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x0A, 0xFB, 0xE2, 0xF3, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x66, 0x01, 0x00, 0x1A, 0xA8, 0x05, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD0, 0x00, 0xD0, 0xE1, 0xD4, 0xE2, 0xF3, 0xEB, 0x98, 0x05, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0xC0, 0xE5, 0x88, 0x05, 0x9F, 0xE5, 0x00, 0x50, 0x90, 0xE5 + .byte 0x80, 0x01, 0x95, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x40, 0xC2, 0x80, 0x01, 0x85, 0xC5 + .byte 0x57, 0x01, 0x00, 0xCA, 0x18, 0x31, 0x95, 0xE5, 0x90, 0x25, 0x9F, 0xE5, 0x5D, 0x0F, 0x85, 0xE2 + .byte 0x10, 0x10, 0xA0, 0xE3, 0xA4, 0x30, 0x8D, 0xE5, 0xBC, 0x2A, 0xCD, 0xE1, 0xB0, 0x10, 0x8D, 0xE5 + .byte 0x04, 0x01, 0x8D, 0xE5, 0x14, 0x51, 0x95, 0xE5, 0x74, 0x05, 0x9F, 0xE5, 0x00, 0x50, 0x8D, 0xE5 + .byte 0x0A, 0x50, 0xA0, 0xE3, 0x6C, 0x15, 0x9F, 0xE5, 0x6C, 0x35, 0x9F, 0xE5, 0xA4, 0x20, 0x8D, 0xE2 + .byte 0x04, 0x50, 0x8D, 0xE5, 0x91, 0xE6, 0xF3, 0xEB, 0x28, 0x15, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 + .byte 0x03, 0x00, 0xC1, 0xE5, 0x97, 0x01, 0x00, 0xEB, 0x18, 0x15, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x91, 0xE5, 0x14, 0x00, 0xC2, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x14, 0x00, 0xD1, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x34, 0x25, 0x9F, 0x15, 0xD4, 0x00, 0xD1, 0xE1, 0x7A, 0x2F, 0xA0, 0x03 + .byte 0x02, 0x28, 0xA0, 0xE1, 0xFC, 0x14, 0x9F, 0xE5, 0x22, 0x28, 0xA0, 0xE1, 0x64, 0xF4, 0xF3, 0xEB + .byte 0xE0, 0x04, 0x9F, 0xE5, 0x00, 0x30, 0xE0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x09, 0x10, 0xA0, 0xE3 + .byte 0x10, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x10, 0x80, 0xE5, 0x2C, 0x01, 0x00, 0xEA + .byte 0x80, 0x01, 0x00, 0xEB, 0xBC, 0x14, 0x9F, 0xE5, 0x00, 0x30, 0x91, 0xE5, 0x14, 0x20, 0xD3, 0xE5 + .byte 0x00, 0x00, 0x52, 0xE1, 0x0B, 0x00, 0x00, 0x0A, 0x14, 0x00, 0xC3, 0xE5, 0x00, 0x10, 0x91, 0xE5 + .byte 0x00, 0x30, 0xA0, 0xE3, 0x14, 0x00, 0xD1, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xCC, 0x24, 0x9F, 0x15 + .byte 0xD4, 0x00, 0xD1, 0xE1, 0x7A, 0x2F, 0xA0, 0x03, 0x02, 0x28, 0xA0, 0xE1, 0x94, 0x14, 0x9F, 0xE5 + .byte 0x22, 0x28, 0xA0, 0xE1, 0x4A, 0xF4, 0xF3, 0xEB, 0x78, 0x04, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD3, 0x00, 0xD0, 0xE1, 0x10, 0xE7, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x14, 0x01, 0x00, 0x1A + .byte 0x60, 0x04, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD3, 0x00, 0xD0, 0xE1, 0x17, 0xE7, 0xF3, 0xEB + .byte 0x00, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x48, 0x14, 0x9F, 0x15, 0x00, 0x10, 0x91, 0x15 + .byte 0x80, 0x01, 0x81, 0x10, 0x20, 0x11, 0x90, 0x15, 0x00, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x51, 0xE1 + .byte 0x0B, 0x00, 0x00, 0x1A, 0x2C, 0x04, 0x9F, 0xE5, 0x02, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5 + .byte 0x0A, 0x30, 0xA0, 0xE3, 0x08, 0x20, 0x81, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x1C, 0x10, 0xA0, 0xE3 + .byte 0x80, 0x31, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x40, 0xA0, 0xE3, 0x0C, 0x10, 0x80, 0xE5 + .byte 0xFB, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE1, 0x06, 0x6A, 0xF4, 0xEB, 0xF4, 0x03, 0x9F, 0xE5 + .byte 0x04, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x80, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x0A, 0x10, 0xA0, 0xE3 + .byte 0x08, 0x10, 0x80, 0xE5, 0xF2, 0x00, 0x00, 0xEA, 0xD4, 0x00, 0xD1, 0xE1, 0x01, 0x50, 0xA0, 0xE3 + .byte 0x03, 0x10, 0x45, 0xE2, 0x01, 0x00, 0x50, 0xE1, 0x02, 0x00, 0x00, 0x0A, 0x0F, 0xF4, 0xF3, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0xEA, 0x00, 0x00, 0x1A, 0xB8, 0x03, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x0B, 0x00, 0x00, 0x0A + .byte 0x76, 0xE2, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x50, 0xA0, 0x13, 0x07, 0x00, 0x00, 0x1A + .byte 0x90, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0x4E, 0xE2, 0xF3, 0xEB + .byte 0x80, 0x03, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0xC0, 0xE5 + .byte 0x70, 0x03, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x00, 0xD0, 0xE1 + .byte 0x01, 0x00, 0x50, 0xE1, 0x0B, 0x00, 0x00, 0x0A, 0x64, 0xE2, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x00, 0x50, 0xA0, 0x13, 0x07, 0x00, 0x00, 0x1A, 0x48, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD1, 0x00, 0xD0, 0xE1, 0x3C, 0xE2, 0xF3, 0xEB, 0x38, 0x03, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x01, 0x10, 0xC0, 0xE5, 0x28, 0x03, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x0B, 0x00, 0x00, 0x0A + .byte 0x52, 0xE2, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x50, 0xA0, 0x13, 0x07, 0x00, 0x00, 0x1A + .byte 0x00, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x2A, 0xE2, 0xF3, 0xEB + .byte 0xF0, 0x02, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x02, 0x10, 0xC0, 0xE5 + .byte 0xE0, 0x02, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD3, 0x00, 0xD0, 0xE1 + .byte 0x01, 0x00, 0x50, 0xE1, 0x0B, 0x00, 0x00, 0x0A, 0x9F, 0xE6, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x00, 0x50, 0xA0, 0x13, 0x07, 0x00, 0x00, 0x1A, 0xB8, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD3, 0x00, 0xD0, 0xE1, 0x7A, 0xE6, 0xF3, 0xEB, 0xA8, 0x02, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x03, 0x10, 0xC0, 0xE5, 0x00, 0x00, 0x55, 0xE3, 0x94, 0x02, 0x9F, 0x15 + .byte 0x01, 0x10, 0xE0, 0x13, 0x00, 0x00, 0x90, 0x15, 0xD4, 0x00, 0xD0, 0x11, 0x01, 0x00, 0x50, 0x11 + .byte 0x0B, 0x00, 0x00, 0x0A, 0xBD, 0xF3, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x50, 0xA0, 0x13 + .byte 0x07, 0x00, 0x00, 0x1A, 0x6C, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD4, 0x00, 0xD0, 0xE1 + .byte 0xA8, 0xF3, 0xF3, 0xEB, 0x5C, 0x02, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x04, 0x10, 0xC0, 0xE5, 0x00, 0x00, 0x55, 0xE3, 0x48, 0x02, 0x9F, 0x15, 0x0B, 0x10, 0xA0, 0x13 + .byte 0x00, 0x00, 0x90, 0x15, 0x08, 0x10, 0x80, 0x15, 0x89, 0x00, 0x00, 0xEA, 0x9E, 0xF1, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x86, 0x00, 0x00, 0x1A, 0x28, 0x02, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5 + .byte 0x0F, 0x00, 0x40, 0xE2, 0x08, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x0E, 0x00, 0x00, 0xEA + .byte 0x07, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA + .byte 0x03, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA + .byte 0xFF, 0xFF, 0xFF, 0xEA, 0xA4, 0xF2, 0xFF, 0xEB, 0xE8, 0x01, 0x9F, 0xE5, 0x0D, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x08, 0x10, 0x80, 0xE5, 0x71, 0x00, 0x00, 0xEA, 0xD4, 0x01, 0x9F, 0xE5 + .byte 0x0C, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x10, 0x80, 0xE5, 0x6C, 0x00, 0x00, 0xEA + .byte 0x81, 0xF1, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x69, 0x00, 0x00, 0x1A, 0xB4, 0x01, 0x9F, 0xE5 + .byte 0xEC, 0x21, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE3, 0x90, 0x20, 0x8D, 0xE5, 0x00, 0x10, 0x90, 0xE5 + .byte 0x94, 0x40, 0x8D, 0xE5, 0x0E, 0x20, 0xA0, 0xE3, 0x08, 0x20, 0x81, 0xE5, 0x04, 0x00, 0x90, 0xE5 + .byte 0x18, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x56, 0x00, 0x00, 0xEA, 0x55, 0x00, 0x00, 0xEA + .byte 0x54, 0x00, 0x00, 0xEA, 0x3D, 0x00, 0x00, 0xEA, 0x14, 0x00, 0x00, 0xEA, 0x15, 0x00, 0x00, 0xEA + .byte 0x1F, 0x00, 0x00, 0xEA, 0x21, 0x00, 0x00, 0xEA, 0x1A, 0x00, 0x00, 0xEA, 0x3B, 0x00, 0x00, 0xEA + .byte 0x3D, 0x00, 0x00, 0xEA, 0x20, 0x00, 0x00, 0xEA, 0x25, 0x00, 0x00, 0xEA, 0x27, 0x00, 0x00, 0xEA + .byte 0x20, 0x00, 0x00, 0xEA, 0x27, 0x00, 0x00, 0xEA, 0x2A, 0x00, 0x00, 0xEA, 0x2D, 0x00, 0x00, 0xEA + .byte 0x26, 0x00, 0x00, 0xEA, 0x2F, 0x00, 0x00, 0xEA, 0x28, 0x00, 0x00, 0xEA, 0x39, 0x00, 0x00, 0xEA + .byte 0x40, 0x00, 0x00, 0xEA, 0x3B, 0x00, 0x00, 0xEA, 0x38, 0x00, 0x00, 0xEA, 0x3B, 0x00, 0x00, 0xEA + .byte 0x04, 0x40, 0xA0, 0xE3, 0x3C, 0x00, 0x00, 0xEA, 0x3F, 0x69, 0xF4, 0xEB, 0x00, 0x10, 0xE0, 0xE3 + .byte 0x01, 0x00, 0x50, 0xE1, 0x05, 0x40, 0xA0, 0x03, 0x37, 0x00, 0x00, 0x0A, 0x04, 0x00, 0xA0, 0xE3 + .byte 0xA4, 0x00, 0x00, 0xEB, 0x34, 0x00, 0x00, 0xEA, 0x03, 0x00, 0xA0, 0xE3, 0xA1, 0x00, 0x00, 0xEB + .byte 0x31, 0x00, 0x00, 0xEA, 0x04, 0x00, 0xA0, 0xE1, 0x9E, 0x00, 0x00, 0xEB, 0x2E, 0x00, 0x00, 0xEA + .byte 0x01, 0x00, 0xA0, 0xE3, 0x9B, 0x00, 0x00, 0xEB, 0x2B, 0x00, 0x00, 0xEA, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x98, 0x00, 0x00, 0xEB, 0x28, 0x00, 0x00, 0xEA, 0x02, 0x00, 0xA0, 0xE3, 0x95, 0x00, 0x00, 0xEB + .byte 0x25, 0x00, 0x00, 0xEA, 0x05, 0x00, 0xA0, 0xE3, 0x92, 0x00, 0x00, 0xEB, 0x22, 0x00, 0x00, 0xEA + .byte 0x0B, 0x40, 0xA0, 0xE3, 0x20, 0x00, 0x00, 0xEA, 0x0D, 0x40, 0xA0, 0xE3, 0x1E, 0x00, 0x00, 0xEA + .byte 0x73, 0x14, 0x00, 0xEB, 0x1C, 0x00, 0x00, 0xEA, 0x47, 0x14, 0x00, 0xEB, 0x1A, 0x00, 0x00, 0xEA + .byte 0x7C, 0x14, 0x00, 0xEB, 0x18, 0x00, 0x00, 0xEA, 0x25, 0x15, 0x00, 0xEB, 0x16, 0x00, 0x00, 0xEA + .byte 0x7C, 0x04, 0x00, 0xEB, 0x14, 0x00, 0x00, 0xEA, 0x54, 0x14, 0x00, 0xEB, 0x12, 0x00, 0x00, 0xEA + .byte 0x04, 0x00, 0xA0, 0xE1, 0x46, 0x13, 0x00, 0xEB, 0x0F, 0x00, 0x00, 0xEA, 0xA4, 0x30, 0x9F, 0xE5 + .byte 0x0C, 0x20, 0x8D, 0xE2, 0x01, 0x00, 0xA0, 0xE3, 0x01, 0x1C, 0xA0, 0xE3, 0x90, 0x30, 0x8D, 0xE5 + .byte 0x0B, 0x0E, 0xF4, 0xEB, 0x08, 0x00, 0x00, 0xEA, 0xFD, 0x2E, 0xFE, 0xEB, 0x06, 0x00, 0x00, 0xEA + .byte 0x4B, 0x14, 0x00, 0xEB, 0x04, 0x00, 0x00, 0xEA, 0x27, 0x05, 0x00, 0xEB, 0x02, 0x00, 0x00, 0xEA + .byte 0xEF, 0x2E, 0xFE, 0xEB, 0x00, 0x00, 0x00, 0xEA, 0x23, 0x05, 0x00, 0xEB, 0x00, 0x00, 0x54, 0xE3 + .byte 0x01, 0x00, 0x00, 0x0A, 0x04, 0x00, 0xA0, 0xE1, 0xEE, 0x2F, 0xFE, 0xEB, 0x04, 0x00, 0xA0, 0xE3 + .byte 0x02, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x54, 0xE3, 0xA3, 0xFC, 0xFF, 0x1A, 0x01, 0x00, 0xA0, 0xE3 + .byte 0xC1, 0xDF, 0x8D, 0xE2, 0x30, 0x80, 0xBD, 0xE8, 0x78, 0xC1, 0x33, 0x02, 0x38, 0xB5, 0x33, 0x02 + .byte 0x18, 0xB5, 0x33, 0x02, 0x31, 0x02, 0x40, 0x00, 0x04, 0x04, 0x00, 0x00, 0x28, 0xB5, 0x33, 0x02 + .byte 0x33, 0x02, 0x40, 0x00, 0x33, 0x00, 0x40, 0x00, 0x68, 0xB5, 0x33, 0x02, 0xDF, 0x01, 0x00, 0x00 + .byte 0xE1, 0x01, 0x00, 0x00, 0x48, 0xB5, 0x33, 0x02, 0x33, 0x0A, 0x40, 0x00, 0x80, 0x25, 0x33, 0x02 + .byte 0xE9, 0x01, 0x00, 0x00, 0x4C, 0x25, 0x33, 0x02, 0x70, 0x25, 0x33, 0x02, 0x08, 0x40, 0x2D, 0xE9 + .byte 0x00, 0x00, 0x51, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0x00, 0x00, 0xA0, 0xE3, 0xD5, 0xFA, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0x01, 0x00, 0xA0, 0xE1, 0xCE, 0x2F, 0xFE, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x04, 0xC0, 0x9F, 0xE5, 0x09, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0xB8, 0x10, 0x33, 0x02 + + arm_func_start ov01_02332580 +ov01_02332580: @ 0x02332580 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x54 + ldr r2, _0233262C @ =0x0233C178 + mov r5, r1 + ldr r2, [r2] + mvn r1, #0 + add r2, r2, r5, lsl #3 + ldr r7, [r2, #0x120] + mov r6, r0 + cmp r7, r1 + ldr r8, _02332630 @ =0x0233B670 + ldr r4, _02332634 @ =0x0233B678 + beq _023325E4 + mov r0, r7 + bl FUN_0204CA1C + cmp r0, #0 + ldrne r8, _02332638 @ =0x0233B6A4 + bne _023325D8 + mov r0, r7 + bl FUN_0204C9C8 + cmp r0, #0 + ldreq r8, _0233263C @ =0x0233B6B0 +_023325D8: + bl FUN_0204C8EC + cmp r7, r0 + ldreq r4, _02332640 @ =0x0233B6BC +_023325E4: + ldr r0, _0233262C @ =0x0233C178 + str r8, [sp, #0x3c] + ldr r0, [r0] + add r0, r0, r5, lsl #3 + add r0, r0, #0x100 + ldrh r0, [r0, #0x1c] + bl FUN_020258C4 + str r0, [sp, #0x40] + add r5, sp, #4 + ldr r3, _02332644 @ =0x0000C402 + mov r0, r6 + mov r2, r4 + mov r1, #0x400 + str r5, [sp] + bl FUN_020223F0 + mov r0, r6 + add sp, sp, #0x54 + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0233262C: .4byte 0x0233C178 +_02332630: .4byte 0x0233B670 +_02332634: .4byte 0x0233B678 +_02332638: .4byte 0x0233B6A4 +_0233263C: .4byte 0x0233B6B0 +_02332640: .4byte 0x0233B6BC +_02332644: .4byte 0x0000C402 + arm_func_end ov01_02332580 + + arm_func_start ov01_02332648 +ov01_02332648: @ 0x02332648 + push {r4, lr} + ldr r0, _02332694 @ =0x0233C178 + ldr r0, [r0] + ldrsb r0, [r0, #3] + bl FUN_0202BCFC + ldr r2, _02332694 @ =0x0233C178 + mvn r1, #0 + ldr r2, [r2] + add r0, r2, r0, lsl #3 + ldr r4, [r0, #0x120] + cmp r4, r1 + moveq r0, #0 + popeq {r4, pc} + bl FUN_0204C8EC + cmp r4, r0 + moveq r0, #1 + movne r0, #0 + and r0, r0, #0xff + pop {r4, pc} + .align 2, 0 +_02332694: .4byte 0x0233C178 + arm_func_end ov01_02332648 + + arm_func_start ov01_02332698 +ov01_02332698: @ 0x02332698 + push {r4, r5, lr} + sub sp, sp, #0xa4 + mov r5, r0 + mov r1, #0 + ldr r0, _023329C4 @ =0x0233B70C + str r1, [sp, #0xc] + bl FUN_020348E4 + cmp r0, #0 + beq _023329BC + ldr r0, _023329C8 @ =0x0233C184 + ldr r0, [r0] + cmp r0, #0 + bne _023326EC + mov r0, #0x630 + mov r1, #8 + bl FUN_02001170 + ldr r3, _023329C8 @ =0x0233C184 + mov r1, #0 + mov r2, #0x630 + str r0, [r3] + bl FUN_020032A4 +_023326EC: + ldr r0, _023329C8 @ =0x0233C184 + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #0x624] + bl FUN_0204E3C8 + ldr r1, _023329C8 @ =0x0233C184 + ldr r1, [r1] + strb r0, [r1, #0x61c] + bl FUN_0204E40C + ldr r1, _023329C8 @ =0x0233C184 + ldr r1, [r1] + strb r0, [r1, #0x61d] + bl FUN_0204E464 + ldr r1, _023329C8 @ =0x0233C184 + ldr r1, [r1] + strb r0, [r1, #0x61e] + bl FUN_0204E4BC + ldr r1, _023329C8 @ =0x0233C184 + ldr r1, [r1] + strb r0, [r1, #0x61f] + bl FUN_0204E4EC + ldr r1, _023329C8 @ =0x0233C184 + ldr r1, [r1] + strb r0, [r1, #0x620] + bl FUN_0204E530 + ldr r1, _023329C8 @ =0x0233C184 + ldr r2, [r1] + strb r0, [r2, #0x621] + ldr r3, [r1] + ldr r0, _023329CC @ =0x0233B798 + ldrb r1, [r3, #0x61f] + str r1, [sp] + ldrb r1, [r3, #0x620] + str r1, [sp, #4] + ldrb r1, [r3, #0x621] + str r1, [sp, #8] + ldrb r1, [r3, #0x61c] + ldrb r2, [r3, #0x61d] + ldrb r3, [r3, #0x61e] + bl FUN_0200C1FC + ldr r0, _023329C8 @ =0x0233C184 + mov r3, #0 + mvn r2, #1 +_02332798: + ldr r1, [r0] + add r1, r1, r3 + add r3, r3, #1 + strb r2, [r1, #0x60f] + cmp r3, #0xd + blt _02332798 + bl FUN_0204A1CC + bl FUN_022BCA80 + bl FUN_022BCCF4 + ldr r1, _023329C8 @ =0x0233C184 + ldr r1, [r1] + strb r0, [r1, #0x622] + mov r0, #1 + bl FUN_022BCBAC + ldr r0, _023329C8 @ =0x0233C184 + ldr r1, [r0] + str r5, [r1] + ldr r1, [r0] + str r5, [r1, #8] + ldr r0, [r0] + mov r1, #0x32 + ldr r0, [r0] + cmp r0, #1 + cmpne r0, #4 + mov r0, #0 + beq _02332810 + mov r2, r0 + bl FUN_0204B678 + ldr r1, _023329C8 @ =0x0233C184 + b _0233281C +_02332810: + mov r2, #1 + bl FUN_0204B678 + ldr r1, _023329C8 @ =0x0233C184 +_0233281C: + ldr r1, [r1] + str r0, [r1, #4] + ldr r0, _023329D0 @ =0x0233B71C + ldr r1, _023329D4 @ =0x02332EF4 + bl FUN_0202F8C4 + ldr r2, _023329C8 @ =0x0233C184 + mov r1, #0 + ldr r2, [r2] + strb r0, [r2, #0x60c] + ldr r0, _023329D8 @ =0x0233B72C + bl FUN_0202F8C4 + ldr r1, _023329C8 @ =0x0233C184 + ldr r2, [r1] + strb r0, [r2, #0x60d] + ldr r1, [r1] + ldr r0, [r1, #8] + cmp r0, #0xb + addls pc, pc, r0, lsl #2 + b _02332950 +_02332868: @ jump table + b _02332898 @ case 0 + b _02332898 @ case 1 + b _023328CC @ case 2 + b _023328F0 @ case 3 + b _02332910 @ case 4 + b _023328E0 @ case 5 + b _02332950 @ case 6 + b _02332950 @ case 7 + b _02332950 @ case 8 + b _02332950 @ case 9 + b _02332900 @ case 10 + b _02332944 @ case 11 +_02332898: + ldrb r0, [r1, #0x61d] + cmp r0, #0 + ldrne r4, _023329DC @ =0x00000203 + bne _02332950 + ldr r0, [r1, #4] + cmp r0, #0xa + moveq r4, #0x200 + beq _02332950 + ldrb r0, [r1, #0x61c] + cmp r0, #0 + ldrne r4, _023329E0 @ =0x00000201 + moveq r4, #0x200 + b _02332950 +_023328CC: + ldrb r0, [r1, #0x61c] + cmp r0, #0 + ldrne r4, _023329E4 @ =0x00000202 + moveq r4, #0x200 + b _02332950 +_023328E0: + mov r0, #1 + str r0, [sp, #0xc] + mov r4, #0x204 + b _02332950 +_023328F0: + mov r0, #1 + str r0, [sp, #0xc] + ldr r4, _023329E8 @ =0x00000206 + b _02332950 +_02332900: + mov r0, #1 + str r0, [sp, #0xc] + rsb r4, r0, #0x208 + b _02332950 +_02332910: + bl FUN_0204C8EC + mov r5, r0 + bl FUN_0204C918 + mvn r1, #0 + cmp r5, r1 + beq _02332950 + cmp r5, r0 + mov r0, #1 + streq r0, [sp, #0xc] + moveq r4, #0x208 + strne r0, [sp, #0xc] + addne r4, r0, #0x208 + b _02332950 +_02332944: + mov r0, #1 + ldr r4, _023329EC @ =0x0000020A + str r0, [sp, #0xc] +_02332950: + ldr r0, _023329C8 @ =0x0233C184 + ldr r0, [r0] + add r0, r0, #0x600 + ldrsb r0, [r0, #0xd] + bl FUN_02027B1C + ldr r0, _023329C8 @ =0x0233C184 + mov r1, #4 + ldr r0, [r0] + mov r2, r1 + add r0, r0, #0x600 + ldrsb r0, [r0, #0xd] + mov r3, r4 + bl FUN_02026268 + ldr r0, _023329C8 @ =0x0233C184 + ldr r0, [r0] + add r0, r0, #0x600 + ldrsb r0, [r0, #0xd] + bl FUN_02027AF0 + ldr r0, _023329F0 @ =0x0233B73C + ldr r3, _023329F4 @ =0x0233B74C + add r2, sp, #0xc + mov r1, #0x33 + bl FUN_0202A5CC + ldr r1, _023329C8 @ =0x0233C184 + ldr r1, [r1] + strb r0, [r1, #0x60e] + bl ov01_0232F408 +_023329BC: + add sp, sp, #0xa4 + pop {r4, r5, pc} + .align 2, 0 +_023329C4: .4byte 0x0233B70C +_023329C8: .4byte 0x0233C184 +_023329CC: .4byte 0x0233B798 +_023329D0: .4byte 0x0233B71C +_023329D4: .4byte 0x02332EF4 +_023329D8: .4byte 0x0233B72C +_023329DC: .4byte 0x00000203 +_023329E0: .4byte 0x00000201 +_023329E4: .4byte 0x00000202 +_023329E8: .4byte 0x00000206 +_023329EC: .4byte 0x0000020A +_023329F0: .4byte 0x0233B73C +_023329F4: .4byte 0x0233B74C + arm_func_end ov01_02332698 + + arm_func_start ov01_023329F8 +ov01_023329F8: @ 0x023329F8 + push {r3, lr} + ldr r0, _02332A7C @ =0x0233C184 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl ov01_02332A80 + bl FUN_0202737C + ldr r0, _02332A7C @ =0x0233C184 + mvn r1, #1 + ldr r0, [r0] + add r0, r0, #0x600 + ldrsb r2, [r0, #0xc] + cmp r2, r1 + beq _02332A60 + ldrsb r0, [r0, #0xe] + bl FUN_0202AABC + ldr r0, _02332A7C @ =0x0233C184 + ldr r0, [r0] + add r0, r0, #0x600 + ldrsb r0, [r0, #0xd] + bl FUN_0202F8FC + ldr r0, _02332A7C @ =0x0233C184 + ldr r0, [r0] + add r0, r0, #0x600 + ldrsb r0, [r0, #0xc] + bl FUN_0202F8FC +_02332A60: + ldr r0, _02332A7C @ =0x0233C184 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _02332A7C @ =0x0233C184 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_02332A7C: .4byte 0x0233C184 + arm_func_end ov01_023329F8 + + arm_func_start ov01_02332A80 +ov01_02332A80: @ 0x02332A80 + push {r4, r5, r6, lr} + ldr r5, _02332AC8 @ =0x0233C184 + mov r4, #0 + mvn r6, #1 +_02332A90: + ldr r0, [r5] + add r0, r0, r4 + add r0, r0, #0x600 + ldrsb r0, [r0, #0xf] + cmp r0, r6 + beq _02332AB8 + bl FUN_0202F8FC + ldr r0, [r5] + add r0, r0, r4 + strb r6, [r0, #0x60f] +_02332AB8: + add r4, r4, #1 + cmp r4, #0xd + blt _02332A90 + pop {r4, r5, r6, pc} + .align 2, 0 +_02332AC8: .4byte 0x0233C184 + arm_func_end ov01_02332A80 +_02332ACC: + .byte 0x10, 0x40, 0x2D, 0xE9 + .byte 0x98, 0xD0, 0x4D, 0xE2, 0x00, 0x04, 0x9F, 0xE5, 0x00, 0x30, 0x90, 0xE5, 0x24, 0x16, 0x93, 0xE5 + .byte 0x07, 0x00, 0x51, 0xE3, 0x01, 0xF1, 0x8F, 0x90, 0xF8, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA + .byte 0x16, 0x00, 0x00, 0xEA, 0x45, 0x00, 0x00, 0xEA, 0x4C, 0x00, 0x00, 0xEA, 0xF3, 0x00, 0x00, 0xEA + .byte 0xC2, 0x00, 0x00, 0xEA, 0xC1, 0x00, 0x00, 0xEA, 0xC0, 0x00, 0x00, 0xEA, 0x06, 0x0C, 0x83, 0xE2 + .byte 0xDE, 0x00, 0xD0, 0xE1, 0x11, 0xE0, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xEB, 0x00, 0x00, 0x1A + .byte 0xB4, 0x03, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x24, 0x26, 0x81, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x90, 0xE5, 0x03, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x50, 0x13 + .byte 0x04, 0x00, 0x50, 0x13, 0xE1, 0x00, 0x00, 0x0A, 0x97, 0xF0, 0xFF, 0xEB, 0xDF, 0x00, 0x00, 0xEA + .byte 0x06, 0x0C, 0x83, 0xE2, 0xDE, 0x00, 0xD0, 0xE1, 0xF8, 0xDF, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0xDA, 0x00, 0x00, 0x1A, 0x70, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x06, 0x0C, 0x80, 0xE2 + .byte 0xDE, 0x00, 0xD0, 0xE1, 0x0D, 0xE0, 0xF3, 0xEB, 0x5C, 0x13, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5 + .byte 0x2C, 0x06, 0x82, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x08, 0x00, 0x91, 0xE5, 0x03, 0x00, 0x50, 0xE3 + .byte 0x05, 0x00, 0x50, 0x13, 0x04, 0x00, 0x50, 0x13, 0x03, 0x00, 0xA0, 0x03, 0x24, 0x06, 0x81, 0x05 + .byte 0xCA, 0x00, 0x00, 0x0A, 0xB5, 0xFF, 0xFF, 0xEB, 0x2C, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x06, 0x0C, 0x80, 0xE2, 0xDE, 0x00, 0xD0, 0xE1, 0xBF, 0xDF, 0xF3, 0xEB, 0x18, 0x03, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x06, 0x0C, 0x80, 0xE2, 0xDD, 0x00, 0xD0, 0xE1, 0x4A, 0xF3, 0xF3, 0xEB + .byte 0x04, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x06, 0x0C, 0x80, 0xE2, 0xDC, 0x00, 0xD0, 0xE1 + .byte 0x45, 0xF3, 0xF3, 0xEB, 0xF0, 0x02, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5 + .byte 0x02, 0x30, 0xA0, 0xE3, 0x0C, 0x26, 0xC1, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x04, 0x10, 0xA0, 0xE3 + .byte 0x24, 0x36, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x28, 0x16, 0x80, 0xE5, 0xAF, 0x00, 0x00, 0xEA + .byte 0x28, 0x26, 0x93, 0xE5, 0x01, 0x10, 0x42, 0xE2, 0x28, 0x16, 0x83, 0xE5, 0x00, 0x00, 0x52, 0xE3 + .byte 0x00, 0x00, 0x90, 0x05, 0x03, 0x10, 0xA0, 0x03, 0x24, 0x16, 0x80, 0x05, 0xA7, 0x00, 0x00, 0xEA + .byte 0x04, 0x10, 0xA0, 0xE3, 0x24, 0x16, 0x83, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x2C, 0x16, 0x92, 0xE5 + .byte 0x02, 0x00, 0x51, 0xE3, 0x60, 0x00, 0x00, 0x1A, 0x08, 0x10, 0x92, 0xE5, 0x0B, 0x00, 0x51, 0xE3 + .byte 0x01, 0xF1, 0x8F, 0x90, 0x9D, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00, 0xEA, 0x12, 0x00, 0x00, 0xEA + .byte 0x1A, 0x00, 0x00, 0xEA, 0x2C, 0x00, 0x00, 0xEA, 0x3B, 0x00, 0x00, 0xEA, 0x1A, 0x00, 0x00, 0xEA + .byte 0x96, 0x00, 0x00, 0xEA, 0x95, 0x00, 0x00, 0xEA, 0x94, 0x00, 0x00, 0xEA, 0x23, 0x00, 0x00, 0xEA + .byte 0x31, 0x00, 0x00, 0xEA, 0x4C, 0x00, 0x00, 0xEA, 0x1D, 0x06, 0xD2, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x02, 0x00, 0x00, 0x0A, 0x09, 0x00, 0xA0, 0xE3, 0x02, 0x2E, 0xFE, 0xEB, 0x8B, 0x00, 0x00, 0xEA + .byte 0x06, 0x00, 0xA0, 0xE3, 0xFF, 0x2D, 0xFE, 0xEB, 0x88, 0x00, 0x00, 0xEA, 0x1D, 0x06, 0xD2, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x09, 0x00, 0xA0, 0xE3, 0xF9, 0x2D, 0xFE, 0xEB + .byte 0x82, 0x00, 0x00, 0xEA, 0x07, 0x00, 0xA0, 0xE3, 0xF6, 0x2D, 0xFE, 0xEB, 0x7F, 0x00, 0x00, 0xEA + .byte 0x0C, 0x00, 0xA0, 0xE3, 0xF3, 0x2D, 0xFE, 0xEB, 0x7C, 0x00, 0x00, 0xEA, 0x09, 0x10, 0xA0, 0xE3 + .byte 0x08, 0x10, 0x82, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x06, 0x20, 0xA0, 0xE3, 0x24, 0x26, 0x81, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x0A, 0x20, 0xA0, 0xE3, 0x28, 0x26, 0x81, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x06, 0x0C, 0x80, 0xE2, 0xDE, 0x00, 0xD0, 0xE1, 0x6B, 0xDF, 0xF3, 0xEB, 0x6F, 0x00, 0x00, 0xEA + .byte 0x0A, 0x00, 0xA0, 0xE3, 0xE3, 0x2D, 0xFE, 0xEB, 0x6C, 0x00, 0x00, 0xEA, 0x0A, 0x30, 0xA0, 0xE3 + .byte 0x08, 0x30, 0x82, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x05, 0x20, 0xA0, 0xE3, 0x24, 0x26, 0x81, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x28, 0x36, 0x81, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x06, 0x0C, 0x80, 0xE2 + .byte 0xDE, 0x00, 0xD0, 0xE1, 0x5C, 0xDF, 0xF3, 0xEB, 0x60, 0x00, 0x00, 0xEA, 0x08, 0x00, 0xA0, 0xE3 + .byte 0xD4, 0x2D, 0xFE, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x5D, 0x00, 0x00, 0xEA, 0xED, 0x66, 0xF4, 0xEB + .byte 0x2D, 0x67, 0xF4, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0F, 0x00, 0x00, 0x0A, 0x68, 0x01, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x06, 0x0C, 0x80, 0xE2, 0xDE, 0x00, 0xD0, 0xE1, 0x4E, 0xDF, 0xF3, 0xEB + .byte 0x54, 0x01, 0x9F, 0xE5, 0x0B, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x07, 0x30, 0xA0, 0xE3 + .byte 0x08, 0x20, 0x81, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x0A, 0x10, 0xA0, 0xE3, 0x24, 0x36, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x28, 0x16, 0x80, 0xE5, 0x48, 0x00, 0x00, 0xEA, 0x05, 0x00, 0xA0, 0xE3 + .byte 0xBC, 0x2D, 0xFE, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x45, 0x00, 0x00, 0xEA, 0x05, 0x00, 0xA0, 0xE3 + .byte 0xB8, 0x2D, 0xFE, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x41, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x92, 0xE5 + .byte 0x04, 0x00, 0x50, 0xE3, 0x0B, 0x00, 0x50, 0x13, 0x02, 0x00, 0x00, 0x1A, 0x20, 0x00, 0xA0, 0xE3 + .byte 0xB4, 0xF8, 0xFF, 0xEB, 0x07, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x50, 0x13 + .byte 0x02, 0x00, 0x00, 0x1A, 0x07, 0x00, 0xA0, 0xE3, 0xAE, 0xF8, 0xFF, 0xEB, 0x01, 0x00, 0x00, 0xEA + .byte 0x00, 0x00, 0xA0, 0xE3, 0xAB, 0xF8, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x30, 0x00, 0x00, 0xEA + .byte 0x28, 0x26, 0x93, 0xE5, 0x01, 0x10, 0x42, 0xE2, 0x28, 0x16, 0x83, 0xE5, 0x00, 0x00, 0x52, 0xE3 + .byte 0x2A, 0x00, 0x00, 0x1A, 0x00, 0x20, 0x90, 0xE5, 0x24, 0x06, 0x92, 0xE5, 0x05, 0x00, 0x50, 0xE3 + .byte 0x03, 0x00, 0x00, 0x0A, 0x06, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x07, 0x00, 0x50, 0xE3 + .byte 0x03, 0x00, 0x00, 0x0A, 0x94, 0x40, 0x9F, 0xE5, 0x02, 0x00, 0x00, 0xEA, 0x90, 0x40, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x00, 0xEA, 0x8C, 0x40, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x24, 0x16, 0x82, 0xE5 + .byte 0x74, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x8D, 0xE5 + .byte 0x06, 0x0C, 0x80, 0xE2, 0xDD, 0x00, 0xD0, 0xE1, 0x27, 0xD3, 0xF3, 0xEB, 0x58, 0x00, 0x9F, 0xE5 + .byte 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x20, 0xA0, 0xE1, 0x06, 0x0C, 0x80, 0xE2 + .byte 0xDD, 0x00, 0xD0, 0xE1, 0x04, 0x30, 0xA0, 0xE1, 0xF2, 0xCC, 0xF3, 0xEB, 0x38, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x06, 0x0C, 0x80, 0xE2, 0xDD, 0x00, 0xD0, 0xE1, 0x0F, 0xD3, 0xF3, 0xEB + .byte 0x34, 0x00, 0x9F, 0xE5, 0x34, 0x30, 0x9F, 0xE5, 0x00, 0x20, 0x8D, 0xE2, 0x33, 0x10, 0xA0, 0xE3 + .byte 0xC1, 0xDD, 0xF3, 0xEB, 0x10, 0x10, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x0E, 0x06, 0xC1, 0xE5 + .byte 0x01, 0x00, 0xA0, 0xE3, 0x98, 0xD0, 0x8D, 0xE2, 0x10, 0x80, 0xBD, 0xE8, 0x84, 0xC1, 0x33, 0x02 + .byte 0x07, 0x02, 0x00, 0x00, 0x05, 0x02, 0x00, 0x00, 0x0A, 0x02, 0x00, 0x00, 0x3C, 0xB7, 0x33, 0x02 + .byte 0x4C, 0xB7, 0x33, 0x02, 0xF0, 0x43, 0x2D, 0xE9, 0x94, 0xD0, 0x4D, 0xE2, 0x02, 0xDB, 0x4D, 0xE2 + .byte 0x14, 0x37, 0x9F, 0xE5, 0x08, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x40, 0xA0, 0xE1 + .byte 0xD4, 0xCC, 0xF3, 0xEB, 0x04, 0x37, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x08, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x20, 0xA0, 0xE3, 0xBA, 0xCC, 0xF3, 0xEB, 0xF4, 0x36, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x08, 0x10, 0xA0, 0xE3, 0x1C, 0x20, 0xA0, 0xE3, 0xCA, 0xCC, 0xF3, 0xEB, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x08, 0x10, 0xA0, 0xE3, 0x36, 0x20, 0xA0, 0xE3, 0x21, 0x3E, 0xA0, 0xE3, 0xC5, 0xCC, 0xF3, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE1, 0x08, 0x10, 0xA0, 0xE3, 0x43, 0x20, 0xA0, 0xE3, 0x95, 0x3F, 0x62, 0xE2 + .byte 0xC0, 0xCC, 0xF3, 0xEB, 0xBC, 0x06, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x1D, 0x06, 0xD1, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x13, 0x00, 0x00, 0x0A, 0xAC, 0x06, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5 + .byte 0xF4, 0x00, 0xD1, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x9C, 0x36, 0x9F, 0xE5 + .byte 0x04, 0x00, 0xA0, 0xE1, 0x08, 0x10, 0xA0, 0xE3, 0x50, 0x20, 0xA0, 0xE3, 0xB1, 0xCC, 0xF3, 0xEB + .byte 0x16, 0x00, 0x00, 0xEA, 0xF8, 0x04, 0xD1, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x13, 0x00, 0x00, 0x0A + .byte 0x7C, 0x36, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x08, 0x10, 0xA0, 0xE3, 0x50, 0x20, 0xA0, 0xE3 + .byte 0xA8, 0xCC, 0xF3, 0xEB, 0x0D, 0x00, 0x00, 0xEA, 0x1E, 0x06, 0xD1, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x22, 0x06, 0xD1, 0x15, 0x00, 0x00, 0x50, 0x13, 0x08, 0x00, 0x00, 0x0A, 0x00, 0x00, 0xA0, 0xE3 + .byte 0xEF, 0xA2, 0xF4, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x44, 0x36, 0x9F, 0xE5 + .byte 0x04, 0x00, 0xA0, 0xE1, 0x08, 0x10, 0xA0, 0xE3, 0x50, 0x20, 0xA0, 0xE3, 0x99, 0xCC, 0xF3, 0xEB + .byte 0x20, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x00, 0x50, 0xE3 + .byte 0x04, 0x00, 0x50, 0x13, 0x3D, 0x00, 0x00, 0x0A, 0x0F, 0x20, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x87, 0x3F, 0x62, 0xE2, 0x08, 0x10, 0xA0, 0xE3, 0x8E, 0xCC, 0xF3, 0xEB, 0x01, 0x0B, 0x8D, 0xE2 + .byte 0x04, 0x16, 0x9F, 0xE5, 0x94, 0x00, 0x80, 0xE2, 0x1E, 0xCA, 0xF3, 0xEB, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x01, 0x2B, 0x8D, 0xE2, 0xDC, 0x05, 0x9F, 0xE5, 0x00, 0x30, 0x8D, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x94, 0x20, 0x82, 0xE2, 0x0C, 0x00, 0x80, 0xE2, 0x01, 0x1C, 0xA0, 0xE3, 0xE3, 0xBC, 0xF3, 0xEB + .byte 0xC0, 0x15, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x00, 0x20, 0x91, 0xE5, 0x90, 0x10, 0xA0, 0xE3 + .byte 0x0C, 0x30, 0x82, 0xE2, 0x0F, 0x20, 0xA0, 0xE3, 0x65, 0xCC, 0xF3, 0xEB, 0xBB, 0x89, 0xF4, 0xEB + .byte 0x00, 0x50, 0xB0, 0xE1, 0x01, 0x0B, 0x8D, 0xE2, 0x94, 0x00, 0x80, 0xE2, 0x04, 0x00, 0x00, 0x1A + .byte 0xA8, 0x15, 0x9F, 0xE5, 0x07, 0xCA, 0xF3, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x21, 0x00, 0xCD, 0xE5 + .byte 0x05, 0x00, 0x00, 0xEA, 0x98, 0x15, 0x9F, 0xE5, 0x02, 0xCA, 0xF3, 0xEB, 0x21, 0x00, 0x8D, 0xE2 + .byte 0x3A, 0x10, 0x85, 0xE2, 0x0A, 0x20, 0xA0, 0xE3, 0x4D, 0xC8, 0xF3, 0xEB, 0x21, 0x00, 0x8D, 0xE2 + .byte 0x01, 0x1B, 0x8D, 0xE2, 0x7C, 0x04, 0x8D, 0xE5, 0x44, 0x10, 0x81, 0xE2, 0x00, 0x10, 0x8D, 0xE5 + .byte 0x50, 0x05, 0x9F, 0xE5, 0x01, 0x2B, 0x8D, 0xE2, 0x00, 0x00, 0x90, 0xE5, 0x94, 0x20, 0x82, 0xE2 + .byte 0x43, 0x0F, 0x80, 0xE2, 0x01, 0x1C, 0xA0, 0xE3, 0x00, 0x30, 0xA0, 0xE3, 0xBF, 0xBC, 0xF3, 0xEB + .byte 0x30, 0x15, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x00, 0x20, 0x91, 0xE5, 0x50, 0x10, 0xA0, 0xE3 + .byte 0x43, 0x3F, 0x82, 0xE2, 0x0F, 0x20, 0xA0, 0xE3, 0x41, 0xCC, 0xF3, 0xEB, 0x11, 0x00, 0x00, 0xEA + .byte 0xF5, 0x65, 0xF4, 0xEB, 0x00, 0x50, 0xA0, 0xE1, 0x28, 0x35, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x08, 0x10, 0xA0, 0xE3, 0x0F, 0x20, 0xA0, 0xE3, 0x4E, 0xCC, 0xF3, 0xEB, 0x00, 0x00, 0xE0, 0xE3 + .byte 0x00, 0x00, 0x55, 0xE1, 0x07, 0x00, 0x00, 0x0A, 0x72, 0x00, 0x85, 0xE2, 0x01, 0x0C, 0x80, 0xE2 + .byte 0x00, 0x18, 0xA0, 0xE1, 0x04, 0x00, 0xA0, 0xE1, 0x21, 0x38, 0xA0, 0xE1, 0x50, 0x10, 0xA0, 0xE3 + .byte 0x0F, 0x20, 0xA0, 0xE3, 0x43, 0xCC, 0xF3, 0xEB, 0xC8, 0x04, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5 + .byte 0x04, 0x10, 0x92, 0xE5, 0x0A, 0x00, 0x51, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0xD8, 0x14, 0x9F, 0xE5 + .byte 0x83, 0x0F, 0x82, 0xE2, 0xCF, 0xC9, 0xF3, 0xEB, 0x38, 0x00, 0x00, 0xEA, 0x21, 0x06, 0xD2, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x1B, 0x00, 0x00, 0x0A, 0x06, 0x00, 0x51, 0xE3, 0x03, 0x00, 0x00, 0x1A + .byte 0xB8, 0x14, 0x9F, 0xE5, 0x83, 0x0F, 0x82, 0xE2, 0xC6, 0xC9, 0xF3, 0xEB, 0x2F, 0x00, 0x00, 0xEA + .byte 0x01, 0x0B, 0x8D, 0xE2, 0x94, 0x00, 0x80, 0xE2, 0x7F, 0x1F, 0xA0, 0xE3, 0xC1, 0xC9, 0xF3, 0xEB + .byte 0x70, 0x04, 0x9F, 0xE5, 0x01, 0x2B, 0x8D, 0xE2, 0x00, 0x10, 0x90, 0xE5, 0xFD, 0x5F, 0x8D, 0xE2 + .byte 0x00, 0x00, 0x91, 0xE5, 0x94, 0x20, 0x82, 0xE2, 0x01, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x50, 0x13 + .byte 0x01, 0x07, 0xA0, 0x13, 0x04, 0x04, 0x8D, 0x15, 0x05, 0x08, 0xA0, 0x03, 0x04, 0x04, 0x8D, 0x05 + .byte 0x83, 0x0F, 0x81, 0xE2, 0x01, 0x1C, 0xA0, 0xE3, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x50, 0x8D, 0xE5 + .byte 0x7E, 0xBC, 0xF3, 0xEB, 0x19, 0x00, 0x00, 0xEA, 0x1C, 0x06, 0xD2, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x1D, 0x06, 0xD2, 0x05, 0x00, 0x00, 0x50, 0x03, 0x1E, 0x06, 0xD2, 0x05, 0x00, 0x00, 0x50, 0x03 + .byte 0x08, 0x00, 0x00, 0x0A, 0x10, 0x72, 0xF4, 0xEB, 0x08, 0x14, 0x9F, 0xE5, 0x00, 0x30, 0xD0, 0xE5 + .byte 0x00, 0x10, 0x91, 0xE5, 0x01, 0x20, 0xD0, 0xE5, 0x83, 0x0F, 0x81, 0xE2, 0x01, 0x18, 0x83, 0xE3 + .byte 0xE6, 0xC4, 0xF3, 0xEB, 0x09, 0x00, 0x00, 0xEA, 0x20, 0x06, 0xD2, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x03, 0x00, 0x00, 0x0A, 0x04, 0x14, 0x9F, 0xE5, 0x83, 0x0F, 0x82, 0xE2, 0x99, 0xC9, 0xF3, 0xEB + .byte 0x02, 0x00, 0x00, 0xEA, 0xF0, 0x13, 0x9F, 0xE5, 0x83, 0x0F, 0x82, 0xE2, 0x95, 0xC9, 0xF3, 0xEB + .byte 0xC0, 0x13, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x00, 0x20, 0x91, 0xE5, 0x50, 0x10, 0xA0, 0xE3 + .byte 0x83, 0x3F, 0x82, 0xE2, 0x1C, 0x20, 0xA0, 0xE3, 0xE5, 0xCB, 0xF3, 0xEB, 0xD7, 0x71, 0xF4, 0xEB + .byte 0xC8, 0x03, 0x8D, 0xE5, 0xE9, 0x1F, 0x8D, 0xE2, 0x00, 0x10, 0x8D, 0xE5, 0x94, 0x03, 0x9F, 0xE5 + .byte 0xBC, 0x23, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xB8, 0x33, 0x9F, 0xE5, 0xC3, 0x0F, 0x80, 0xE2 + .byte 0x01, 0x1C, 0xA0, 0xE3, 0x51, 0xBC, 0xF3, 0xEB, 0x78, 0x13, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x00, 0x20, 0x91, 0xE5, 0x50, 0x10, 0xA0, 0xE3, 0xC3, 0x3F, 0x82, 0xE2, 0x36, 0x20, 0xA0, 0xE3 + .byte 0xD3, 0xCB, 0xF3, 0xEB, 0x20, 0x68, 0xF4, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x18, 0x00, 0x00, 0x0A + .byte 0x1D, 0x68, 0xF4, 0xEB, 0x78, 0x03, 0x8D, 0xE5, 0x01, 0x0B, 0x8D, 0xE2, 0x78, 0x13, 0x9F, 0xE5 + .byte 0x94, 0x00, 0x80, 0xE2, 0x73, 0xC9, 0xF3, 0xEB, 0xD5, 0x1F, 0x8D, 0xE2, 0x00, 0x10, 0x8D, 0xE5 + .byte 0x30, 0x03, 0x9F, 0xE5, 0x01, 0x2B, 0x8D, 0xE2, 0x00, 0x00, 0x90, 0xE5, 0x94, 0x20, 0x82, 0xE2 + .byte 0x0C, 0x00, 0x80, 0xE2, 0x01, 0x0B, 0x80, 0xE2, 0x01, 0x1C, 0xA0, 0xE3, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x36, 0xBC, 0xF3, 0xEB, 0x0C, 0x13, 0x9F, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x00, 0x20, 0x91, 0xE5 + .byte 0x50, 0x10, 0xA0, 0xE3, 0x0C, 0x20, 0x82, 0xE2, 0x01, 0x3B, 0x82, 0xE2, 0x43, 0x20, 0xA0, 0xE3 + .byte 0xB7, 0xCB, 0xF3, 0xEB, 0xEC, 0x02, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x0C, 0x15, 0xC2, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x1D, 0x06, 0xD2, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x43, 0x00, 0x00, 0x0A, 0x07, 0x00, 0xA0, 0xE3, 0x87, 0xA1, 0xF4, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x73, 0x00, 0x00, 0x0A, 0xC0, 0x02, 0x9F, 0xE5, 0x00, 0x50, 0x90, 0xE5, 0xF4, 0x00, 0xD5, 0xE1 + .byte 0x00, 0x00, 0x50, 0xE3, 0x1A, 0x00, 0x00, 0x0A, 0xF4, 0x10, 0xD5, 0xE1, 0x81, 0x0F, 0x8D, 0xE2 + .byte 0x5E, 0x7C, 0xF4, 0xEB, 0x0C, 0x00, 0x8D, 0xE2, 0x3A, 0x10, 0x85, 0xE2, 0x0A, 0x20, 0xA0, 0xE3 + .byte 0x97, 0xC7, 0xF3, 0xEB, 0x01, 0x0B, 0x8D, 0xE2, 0x81, 0x3F, 0x8D, 0xE2, 0x0C, 0x20, 0x8D, 0xE2 + .byte 0x94, 0x00, 0x80, 0xE2, 0x85, 0x1F, 0xA0, 0xE3, 0x3C, 0x33, 0x8D, 0xE5, 0x40, 0x23, 0x8D, 0xE5 + .byte 0x40, 0xC9, 0xF3, 0xEB, 0xC1, 0x1F, 0x8D, 0xE2, 0x00, 0x10, 0x8D, 0xE5, 0x64, 0x02, 0x9F, 0xE5 + .byte 0x01, 0x2B, 0x8D, 0xE2, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x1C, 0xA0, 0xE3, 0x43, 0x0F, 0x80, 0xE2 + .byte 0x01, 0x0B, 0x80, 0xE2, 0x94, 0x20, 0x82, 0xE2, 0x00, 0x30, 0xA0, 0xE3, 0x03, 0xBC, 0xF3, 0xEB + .byte 0x53, 0x00, 0x00, 0xEA, 0xF8, 0x04, 0xD5, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x50, 0x00, 0x00, 0x0A + .byte 0x6D, 0x0F, 0x8D, 0xE2, 0xA5, 0xC0, 0xF3, 0xEB, 0x00, 0x10, 0xA0, 0xE3, 0x28, 0x02, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x8D, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x50, 0x22, 0x9F, 0xE5, 0xB4, 0x00, 0x8D, 0xE2 + .byte 0x44, 0x10, 0x81, 0xE2, 0x01, 0x30, 0xA0, 0xE3, 0xBC, 0x67, 0xF3, 0xEB, 0x01, 0x0B, 0x8D, 0xE2 + .byte 0xB4, 0x20, 0x8D, 0xE2, 0x38, 0x12, 0x9F, 0xE5, 0x94, 0x00, 0x80, 0xE2, 0xEC, 0x21, 0x8D, 0xE5 + .byte 0x20, 0xC9, 0xF3, 0xEB, 0x6D, 0x1F, 0x8D, 0xE2, 0x00, 0x10, 0x8D, 0xE5, 0xE4, 0x01, 0x9F, 0xE5 + .byte 0x01, 0x2B, 0x8D, 0xE2, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x1C, 0xA0, 0xE3, 0x43, 0x0F, 0x80, 0xE2 + .byte 0x01, 0x0B, 0x80, 0xE2, 0x94, 0x20, 0x82, 0xE2, 0x00, 0x30, 0xA0, 0xE3, 0xE3, 0xBB, 0xF3, 0xEB + .byte 0x33, 0x00, 0x00, 0xEA, 0x1E, 0x06, 0xD2, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x22, 0x06, 0xD2, 0x15 + .byte 0x00, 0x00, 0x50, 0x13, 0x2E, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x8D, 0xE2, 0xC8, 0xA1, 0xF4, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x2A, 0x00, 0x00, 0x0A, 0x64, 0x00, 0x8D, 0xE2, 0x7F, 0xC0, 0xF3, 0xEB + .byte 0x04, 0x60, 0x9D, 0xE5, 0x08, 0x50, 0x9D, 0xE5, 0xC8, 0x21, 0x9F, 0xE5, 0x06, 0x00, 0xA0, 0xE1 + .byte 0x05, 0x10, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3, 0x66, 0x72, 0xF5, 0xEB, 0x90, 0x00, 0x8D, 0xE5 + .byte 0xB0, 0x21, 0x9F, 0xE5, 0x06, 0x00, 0xA0, 0xE1, 0x05, 0x10, 0xA0, 0xE1, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x5D, 0x72, 0xF5, 0xEB, 0x9C, 0x21, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x5D, 0x72, 0xF5, 0xEB + .byte 0x8C, 0x00, 0x8D, 0xE5, 0x90, 0x21, 0x9F, 0xE5, 0x05, 0x10, 0xA0, 0xE1, 0x06, 0x00, 0xA0, 0xE1 + .byte 0x00, 0x30, 0xA0, 0xE3, 0x54, 0x72, 0xF5, 0xEB, 0x78, 0x21, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x54, 0x72, 0xF5, 0xEB, 0x88, 0x00, 0x8D, 0xE5, 0x01, 0x0B, 0x8D, 0xE2, 0x6C, 0x11, 0x9F, 0xE5 + .byte 0x94, 0x00, 0x80, 0xE2, 0xEB, 0xC8, 0xF3, 0xEB, 0x64, 0x10, 0x8D, 0xE2, 0x00, 0x10, 0x8D, 0xE5 + .byte 0x10, 0x01, 0x9F, 0xE5, 0x01, 0x2B, 0x8D, 0xE2, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x1C, 0xA0, 0xE3 + .byte 0x43, 0x0F, 0x80, 0xE2, 0x01, 0x0B, 0x80, 0xE2, 0x94, 0x20, 0x82, 0xE2, 0x00, 0x30, 0xA0, 0xE3 + .byte 0xAE, 0xBB, 0xF3, 0xEB, 0xEC, 0x00, 0x9F, 0xE5, 0x50, 0x10, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x04, 0x00, 0xA0, 0xE1, 0x43, 0x3F, 0x82, 0xE2, 0x01, 0x20, 0xA0, 0xE1, 0x01, 0x3B, 0x83, 0xE2 + .byte 0x2F, 0xCB, 0xF3, 0xEB, 0xCC, 0x90, 0x9F, 0xE5, 0x03, 0x80, 0xA0, 0xE3, 0x00, 0x00, 0x99, 0xE5 + .byte 0x00, 0x70, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x50, 0x13 + .byte 0x13, 0x00, 0x00, 0x0A, 0xF8, 0x60, 0x9F, 0xE5, 0x0E, 0x50, 0xA0, 0xE3, 0x01, 0x40, 0xE0, 0xE3 + .byte 0x07, 0x01, 0x96, 0xE7, 0x42, 0x65, 0xF4, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x0A + .byte 0x07, 0x00, 0xA0, 0xE1, 0x08, 0x10, 0xA0, 0xE1, 0x05, 0x20, 0xA0, 0xE1, 0x04, 0x30, 0xA0, 0xE1 + .byte 0x8F, 0xDB, 0xF3, 0xEB, 0x00, 0x10, 0x99, 0xE5, 0x02, 0x80, 0x88, 0xE2, 0x07, 0x10, 0x81, 0xE0 + .byte 0x0F, 0x06, 0xC1, 0xE5, 0x01, 0x70, 0x87, 0xE2, 0x0D, 0x00, 0x57, 0xE3, 0xEF, 0xFF, 0xFF, 0xBA + .byte 0x12, 0x00, 0x00, 0xEA, 0x5C, 0x40, 0x9F, 0xE5, 0x0E, 0x60, 0xA0, 0xE3, 0x01, 0x50, 0xE0, 0xE3 + .byte 0x07, 0x00, 0xA0, 0xE1, 0x10, 0x65, 0xF4, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x0A + .byte 0x07, 0x00, 0xA0, 0xE1, 0x08, 0x10, 0xA0, 0xE1, 0x06, 0x20, 0xA0, 0xE1, 0x05, 0x30, 0xA0, 0xE1 + .byte 0x85, 0xDB, 0xF3, 0xEB, 0x00, 0x10, 0x94, 0xE5, 0x02, 0x80, 0x88, 0xE2, 0x07, 0x10, 0x81, 0xE0 + .byte 0x0F, 0x06, 0xC1, 0xE5, 0x01, 0x70, 0x87, 0xE2, 0x05, 0x00, 0x57, 0xE3, 0xEF, 0xFF, 0xFF, 0xBA + .byte 0x94, 0xD0, 0x8D, 0xE2, 0x02, 0xDB, 0x8D, 0xE2, 0xF0, 0x83, 0xBD, 0xE8, 0x0B, 0x02, 0x00, 0x00 + .byte 0xBC, 0xB7, 0x33, 0x02, 0x0F, 0x02, 0x00, 0x00, 0x84, 0xC1, 0x33, 0x02, 0x5C, 0x0A, 0x0B, 0x02 + .byte 0x12, 0x02, 0x00, 0x00, 0x13, 0x02, 0x00, 0x00, 0x16, 0x02, 0x00, 0x00, 0xF9, 0x01, 0x00, 0x00 + .byte 0xFA, 0x01, 0x00, 0x00, 0xFB, 0x01, 0x00, 0x00, 0x0E, 0x02, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00 + .byte 0xFD, 0x01, 0x00, 0x00, 0xC4, 0xB7, 0x33, 0x02, 0x02, 0xC4, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x00 + .byte 0x00, 0xB7, 0x33, 0x02, 0x15, 0x02, 0x00, 0x00, 0x10, 0x27, 0x00, 0x00, 0x00, 0xE1, 0xF5, 0x05 + .byte 0x17, 0x02, 0x00, 0x00, 0x64, 0xB7, 0x33, 0x02 + + arm_func_start ov01_02333678 +ov01_02333678: @ 0x02333678 + push {r3, lr} + ldr r0, _02333698 @ =0x0233B7E0 + bl FUN_020348E4 + cmp r0, #0 + ldrne r0, _0233369C @ =0x0233C188 + movne r1, #0 + strbne r1, [r0] + pop {r3, pc} + .align 2, 0 +_02333698: .4byte 0x0233B7E0 +_0233369C: .4byte 0x0233C188 + arm_func_end ov01_02333678 + + arm_func_start ov01_023336A0 +ov01_023336A0: @ 0x023336A0 + push {r3, lr} + sub sp, sp, #0xa0 + mov r0, #0x24c + mov r1, #8 + bl FUN_02001170 + ldr r1, _02333754 @ =0x0233C188 + str r0, [r1, #4] + bl FUN_0204FFEC + mov r3, #0 + ldr r0, _02333754 @ =0x0233C188 + mov r2, r3 +_023336CC: + ldr r1, [r0, #4] + add r1, r1, r3, lsl #2 + add r3, r3, #1 + str r2, [r1, #0x12c] + cmp r3, #0x48 + blt _023336CC + ldr r0, _02333754 @ =0x0233C188 + ldr r2, _02333758 @ =0x00003FE9 + ldr r0, [r0, #4] + mov r1, #0x10 + add r0, r0, #0xdc + strh r2, [sp, #0x10] + str r1, [sp, #0x14] + bl FUN_02023690 + ldr r0, _02333754 @ =0x0233C188 + mov r2, #0 + ldr r1, [r0, #4] + mov ip, #0x48 + str r2, [r1, #4] + strb r2, [r0] + str ip, [sp] + mov ip, #8 + ldr r0, _0233375C @ =0x0233B7D0 + ldr r1, _02333760 @ =0x05001812 + ldr r3, _02333764 @ =ov01_0233382C + add r2, sp, #8 + str ip, [sp, #4] + bl FUN_0202BA20 + ldr r1, _02333754 @ =0x0233C188 + ldr r1, [r1, #4] + strb r0, [r1] + mov r0, #1 + add sp, sp, #0xa0 + pop {r3, pc} + .align 2, 0 +_02333754: .4byte 0x0233C188 +_02333758: .4byte 0x00003FE9 +_0233375C: .4byte 0x0233B7D0 +_02333760: .4byte 0x05001812 +_02333764: .4byte ov01_0233382C + arm_func_end ov01_023336A0 + + arm_func_start ov01_02333768 +ov01_02333768: @ 0x02333768 + push {r3, lr} + ldr r0, _02333790 @ =0x0233C188 + ldr r0, [r0, #4] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _02333790 @ =0x0233C188 + mov r1, #0 + str r1, [r0, #4] + pop {r3, pc} + .align 2, 0 +_02333790: .4byte 0x0233C188 + arm_func_end ov01_02333768 + + arm_func_start ov01_02333794 +ov01_02333794: @ 0x02333794 + push {r3, lr} + ldr r0, _02333828 @ =0x0233C188 + ldr r1, [r0, #4] + ldr r0, [r1, #4] + cmp r0, #0 + beq _023337C0 + cmp r0, #1 + beq _02333820 + cmp r0, #2 + beq _023337F8 + b _02333820 +_023337C0: + ldrsb r0, [r1] + bl FUN_0202BCBC + cmp r0, #0 + bne _02333820 + ldr r0, _02333828 @ =0x0233C188 + ldr r0, [r0, #4] + ldrsb r0, [r0] + bl FUN_0202BD10 + ldr r1, _02333828 @ =0x0233C188 + mov r2, #2 + strb r0, [r1] + ldr r0, [r1, #4] + str r2, [r0, #4] + b _02333820 +_023337F8: + ldrsb r0, [r1] + bl FUN_0202BC44 + ldr r0, _02333828 @ =0x0233C188 + mov r2, #3 + ldr r1, [r0, #4] + mov r0, #2 + str r2, [r1, #4] + bl ov01_023310B8 + mov r0, #4 + pop {r3, pc} +_02333820: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_02333828: .4byte 0x0233C188 + arm_func_end ov01_02333794 + + arm_func_start ov01_0233382C +ov01_0233382C: @ 0x0233382C + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x54 + mov r4, r1 + mov r5, r0 + mov r1, #0 + and r0, r4, #0xff + str r1, [sp, #0x28] + bl FUN_0204FBFC + cmp r0, #0 + addne r0, r4, #0xeb + addne r0, r0, #0x3f00 + lslne r0, r0, #0x10 + lsrne r6, r0, #0x10 + ldreq r6, _02333964 @ =0x00003FEA + cmp r4, #0xc + addls pc, pc, r4, lsl #2 + b _0233393C +_02333870: @ jump table + b _023338A4 @ case 0 + b _023338B0 @ case 1 + b _023338BC @ case 2 + b _023338C8 @ case 3 + b _023338D4 @ case 4 + b _023338E0 @ case 5 + b _023338EC @ case 6 + b _023338F8 @ case 7 + b _02333904 @ case 8 + b _02333910 @ case 9 + b _0233391C @ case 10 + b _02333928 @ case 11 + b _02333934 @ case 12 +_023338A4: + bl FUN_0204FD8C + str r0, [sp, #0x28] + b _0233393C +_023338B0: + bl FUN_0204FEB4 + str r0, [sp, #0x28] + b _0233393C +_023338BC: + bl FUN_0204FDA0 + str r0, [sp, #0x28] + b _0233393C +_023338C8: + bl FUN_020503CC + str r0, [sp, #0x28] + b _0233393C +_023338D4: + bl FUN_0204FC6C + str r0, [sp, #0x28] + b _0233393C +_023338E0: + bl FUN_020502EC + str r0, [sp, #0x28] + b _0233393C +_023338EC: + bl FUN_0204FCC8 + str r0, [sp, #0x28] + b _0233393C +_023338F8: + bl FUN_0204FD24 + str r0, [sp, #0x28] + b _0233393C +_02333904: + bl FUN_0204FD78 + str r0, [sp, #0x28] + b _0233393C +_02333910: + bl FUN_0204FDE8 + str r0, [sp, #0x28] + b _0233393C +_0233391C: + bl FUN_0204FF20 + str r0, [sp, #0x28] + b _0233393C +_02333928: + bl FUN_0204FF6C + str r0, [sp, #0x28] + b _0233393C +_02333934: + bl FUN_0204FFD8 + str r0, [sp, #0x28] +_0233393C: + ldr r3, _02333968 @ =0x0000C402 + add r4, sp, #4 + mov r0, r5 + mov r2, r6 + mov r1, #0x400 + str r4, [sp] + bl FUN_020235B8 + mov r0, r5 + add sp, sp, #0x54 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_02333964: .4byte 0x00003FEA +_02333968: .4byte 0x0000C402 + arm_func_end ov01_0233382C + + arm_func_start ov01_0233396C +ov01_0233396C: @ 0x0233396C + push {r3, lr} + ldr r0, _0233398C @ =0x0233B800 + bl FUN_020348E4 + cmp r0, #0 + ldrne r0, _02333990 @ =0x0233C190 + movne r1, #0 + strne r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233398C: .4byte 0x0233B800 +_02333990: .4byte 0x0233C190 + arm_func_end ov01_0233396C + + arm_func_start ov01_02333994 +ov01_02333994: @ 0x02333994 + push {r3, lr} + mov r0, #8 + mov r1, r0 + bl FUN_02001170 + ldr r1, _023339EC @ =0x0233C190 + ldr r3, _023339F0 @ =0x0233B810 + str r0, [r1, #4] + mov ip, #0xb + ldr r0, _023339F4 @ =0x0233B7F0 + mov r1, #0x13 + mov r2, #0 + str ip, [sp] + bl FUN_0202B0EC + ldr r1, _023339EC @ =0x0233C190 + mov r3, #0 + ldr r2, [r1, #4] + strb r0, [r2] + ldr r2, [r1, #4] + mov r0, #1 + str r3, [r2, #4] + str r3, [r1] + pop {r3, pc} + .align 2, 0 +_023339EC: .4byte 0x0233C190 +_023339F0: .4byte 0x0233B810 +_023339F4: .4byte 0x0233B7F0 + arm_func_end ov01_02333994 + + arm_func_start ov01_023339F8 +ov01_023339F8: @ 0x023339F8 + push {r3, lr} + ldr r0, _02333A30 @ =0x0233C190 + ldr r0, [r0, #4] + cmp r0, #0 + popeq {r3, pc} + ldrsb r0, [r0] + bl FUN_0202B4C4 + ldr r0, _02333A30 @ =0x0233C190 + ldr r0, [r0, #4] + bl FUN_02001188 + ldr r0, _02333A30 @ =0x0233C190 + mov r1, #0 + str r1, [r0, #4] + pop {r3, pc} + .align 2, 0 +_02333A30: .4byte 0x0233C190 + arm_func_end ov01_023339F8 + + arm_func_start ov01_02333A34 +ov01_02333A34: @ 0x02333A34 + push {r4, lr} + sub sp, sp, #0x98 + ldr r0, _02333BC8 @ =0x0233C190 + ldr r2, [r0, #4] + ldr r1, [r2, #4] + cmp r1, #0 + beq _02333A64 + cmp r1, #1 + beq _02333A84 + cmp r1, #2 + beq _02333ABC + b _02333BBC +_02333A64: + ldrsb r0, [r2] + bl FUN_0202B510 + cmp r0, #0 + ldreq r0, _02333BC8 @ =0x0233C190 + moveq r1, #1 + ldreq r0, [r0, #4] + streq r1, [r0, #4] + b _02333BBC +_02333A84: + ldrsb r0, [r2] + bl FUN_0202B4F0 + cmp r0, #0 + bne _02333BBC + ldr r0, _02333BC8 @ =0x0233C190 + ldr r0, [r0, #4] + ldrsb r0, [r0] + bl FUN_0202B57C + ldr r1, _02333BC8 @ =0x0233C190 + mov r2, #2 + str r0, [r1] + ldr r0, [r1, #4] + str r2, [r0, #4] + b _02333BBC +_02333ABC: + ldr r1, _02333BCC @ =0x02333BD0 + mov r4, #0 + str r1, [sp, #0x84] + str r4, [sp, #0x88] + mov r1, #3 + str r1, [r2, #4] + ldr r0, [r0] + cmp r0, #0xd + addls pc, pc, r0, lsl #2 + b _02333BA4 +_02333AE4: @ jump table + b _02333BA4 @ case 0 + b _02333B1C @ case 1 + b _02333B2C @ case 2 + b _02333B34 @ case 3 + b _02333B3C @ case 4 + b _02333B44 @ case 5 + b _02333B4C @ case 6 + b _02333B54 @ case 7 + b _02333B5C @ case 8 + b _02333B68 @ case 9 + b _02333B70 @ case 10 + b _02333B78 @ case 11 + b _02333B8C @ case 12 + b _02333BA0 @ case 13 +_02333B1C: + mov r0, #0x16 + bl ov01_023310B8 + mov r0, #4 + b _02333BC0 +_02333B2C: + mov r4, #0xf + b _02333BA4 +_02333B34: + mov r4, #0xe + b _02333BA4 +_02333B3C: + mov r4, #0x11 + b _02333BA4 +_02333B44: + mov r4, #0x10 + b _02333BA4 +_02333B4C: + mov r4, #0x12 + b _02333BA4 +_02333B54: + mov r4, #0x13 + b _02333BA4 +_02333B5C: + bl ov01_02333BF8 + mov r0, #4 + b _02333BC0 +_02333B68: + mov r4, r1 + b _02333BA4 +_02333B70: + bl FUN_022BE0B4 + b _02333BA4 +_02333B78: + add r1, sp, #0 + mov r0, #0x100 + bl FUN_02036324 + mov r0, #4 + b _02333BC0 +_02333B8C: + add r1, sp, #0 + mov r0, #0x100 + bl FUN_0203656C + mov r0, #4 + b _02333BC0 +_02333BA0: + mov r4, #0x14 +_02333BA4: + cmp r4, #0 + beq _02333BB4 + mov r0, r4 + bl FUN_022BE4A8 +_02333BB4: + mov r0, #4 + b _02333BC0 +_02333BBC: + mov r0, #1 +_02333BC0: + add sp, sp, #0x98 + pop {r4, pc} + .align 2, 0 +_02333BC8: .4byte 0x0233C190 +_02333BCC: .4byte 0x02333BD0 + arm_func_end ov01_02333A34 +_02333BD0: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x14, 0x00, 0x9F, 0xE5, 0x41, 0x03, 0xF4, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x0C, 0x00, 0x9F, 0x15, 0x00, 0x10, 0xA0, 0x13, 0x00, 0x10, 0x80, 0x15, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x00, 0xB8, 0x33, 0x02, 0x90, 0xC1, 0x33, 0x02 + + arm_func_start ov01_02333BF8 +ov01_02333BF8: @ 0x02333BF8 + push {r3, lr} + ldr r0, _02333C18 @ =0x0233B880 + bl FUN_020348E4 + cmp r0, #0 + ldrne r0, _02333C1C @ =0x0233C198 + movne r1, #0 + strne r1, [r0] + pop {r3, pc} + .align 2, 0 +_02333C18: .4byte 0x0233B880 +_02333C1C: .4byte 0x0233C198 + arm_func_end ov01_02333BF8 + + arm_func_start ov01_02333C20 +ov01_02333C20: @ 0x02333C20 + push {r3, lr} + mov r0, #8 + mov r1, r0 + bl FUN_02001170 + ldr r1, _02333C70 @ =0x0233C198 + ldr r3, _02333C74 @ =0x0233B890 + str r0, [r1, #4] + ldr r0, _02333C78 @ =0x0233B870 + mov r1, #0x13 + mov r2, #0 + bl FUN_0202A5CC + ldr r1, _02333C70 @ =0x0233C198 + mov r3, #0 + ldr r2, [r1, #4] + strb r0, [r2] + ldr r2, [r1, #4] + mov r0, #1 + str r3, [r2, #4] + str r3, [r1] + pop {r3, pc} + .align 2, 0 +_02333C70: .4byte 0x0233C198 +_02333C74: .4byte 0x0233B890 +_02333C78: .4byte 0x0233B870 + arm_func_end ov01_02333C20 + + arm_func_start ov01_02333C7C +ov01_02333C7C: @ 0x02333C7C + push {r3, lr} + ldr r0, _02333CB4 @ =0x0233C198 + ldr r0, [r0, #4] + cmp r0, #0 + popeq {r3, pc} + ldrsb r0, [r0] + bl FUN_0202AABC + ldr r0, _02333CB4 @ =0x0233C198 + ldr r0, [r0, #4] + bl FUN_02001188 + ldr r0, _02333CB4 @ =0x0233C198 + mov r1, #0 + str r1, [r0, #4] + pop {r3, pc} + .align 2, 0 +_02333CB4: .4byte 0x0233C198 + arm_func_end ov01_02333C7C + + arm_func_start ov01_02333CB8 +ov01_02333CB8: @ 0x02333CB8 + push {r3, lr} + sub sp, sp, #0x98 + ldr r1, _02333E48 @ =0x0233C198 + ldr r3, [r1, #4] + ldr r0, [r3, #4] + cmp r0, #0 + beq _02333CE8 + cmp r0, #1 + beq _02333D08 + cmp r0, #2 + beq _02333D40 + b _02333E3C +_02333CE8: + ldrsb r0, [r3] + bl FUN_0202AB60 + cmp r0, #0 + ldreq r0, _02333E48 @ =0x0233C198 + moveq r1, #1 + ldreq r0, [r0, #4] + streq r1, [r0, #4] + b _02333E3C +_02333D08: + ldrsb r0, [r3] + bl FUN_0202AB40 + cmp r0, #0 + bne _02333E3C + ldr r0, _02333E48 @ =0x0233C198 + ldr r0, [r0, #4] + ldrsb r0, [r0] + bl FUN_0202ABB0 + ldr r1, _02333E48 @ =0x0233C198 + mov r2, #2 + str r0, [r1] + ldr r0, [r1, #4] + str r2, [r0, #4] + b _02333E3C +_02333D40: + mov r0, #3 + str r0, [r3, #4] + ldr r2, _02333E4C @ =0x02333E50 + mov r0, #0 + str r2, [sp, #0x84] + str r0, [sp, #0x88] + ldr r1, [r1] + cmp r1, #7 + addls pc, pc, r1, lsl #2 + b _02333E24 +_02333D68: @ jump table + b _02333E24 @ case 0 + b _02333D94 @ case 1 + b _02333D9C @ case 2 + b _02333DA4 @ case 3 + b _02333E24 @ case 4 + b _02333DF8 @ case 5 + b _02333E0C @ case 6 + b _02333D88 @ case 7 +_02333D88: + bl ov01_023310B8 + mov r0, #4 + b _02333E40 +_02333D94: + bl FUN_02048454 + b _02333E24 +_02333D9C: + bl FUN_020484C0 + b _02333E24 +_02333DA4: + bl FUN_020485EC + mov r0, #3 + mov r1, #0x1c + mov r2, #0 + bl FUN_0204C618 + mov r0, #2 + mov r1, #6 + mov r2, #1 + mov r3, #0xa + bl FUN_0205B5A8 + mov r0, #2 + mov r1, #6 + mov r2, #1 + mov r3, #0xa + bl FUN_0205B5A8 + mov r0, #2 + mov r1, #6 + mov r2, #1 + mov r3, #0xa + bl FUN_0205B5A8 + b _02333E24 +_02333DF8: + add r2, sp, #0 + mov r1, #0x100 + bl FUN_02049D4C + mov r0, #4 + b _02333E40 +_02333E0C: + add r2, sp, #0 + mov r0, #1 + mov r1, #0x100 + bl FUN_02049D4C + mov r0, #4 + b _02333E40 +_02333E24: + add r2, sp, #0 + mov r0, #3 + mov r1, #0x100 + bl FUN_0204964C + mov r0, #4 + b _02333E40 +_02333E3C: + mov r0, #1 +_02333E40: + add sp, sp, #0x98 + pop {r3, pc} + .align 2, 0 +_02333E48: .4byte 0x0233C198 +_02333E4C: .4byte 0x02333E50 + arm_func_end ov01_02333CB8 +_02333E50: + .byte 0x04, 0xC0, 0x9F, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x48, 0x24, 0x00, 0x02 + + arm_func_start ov01_02333E60 +ov01_02333E60: @ 0x02333E60 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x64 + mov r4, r0 + ldr r0, _02334600 @ =0x00000998 + mov r1, #8 + bl FUN_02001170 + ldr r1, _02334604 @ =0x0233C1A0 + mov r2, #0 + str r0, [r1, #4] + str r4, [r0, #0x1b4] + ldr r0, [r1, #4] + str r2, [r0, #0x1b8] + ldr r0, [r1, #4] + str r2, [r0, #8] + ldr r1, [r1, #4] + str r2, [r1, #0xc] + add r0, r1, #0x1ac + str r2, [r1, #0x10] + bl FUN_020547C8 + ldr r0, _02334604 @ =0x0233C1A0 + mov r1, #0 + ldr r0, [r0, #4] + add r0, r0, #0x1ac + bl FUN_02054824 + ldr r0, _02334604 @ =0x0233C1A0 + mov r8, #0 + ldr r0, [r0, #4] + add r0, r0, #0x900 + strh r8, [r0, #0x8c] + b _023344E4 +_02333ED8: + ldr r0, _02334608 @ =0x020AF6B8 + ldr r1, [r0] + add r0, r1, r8, lsl #1 + add r0, r0, #0x300 + ldrsh r0, [r0, #0x8a] + cmp r0, #0 + beq _023344EC + cmp r0, #0xbb + mov r4, #1 + bgt _02333F0C + cmp r0, #0xbb + beq _02333F8C + b _02333F90 +_02333F0C: + sub r0, r0, #0x190 + cmp r0, #0x1b + addls pc, pc, r0, lsl #2 + b _02333F90 +_02333F1C: @ jump table + b _02333F8C @ case 0 + b _02333F8C @ case 1 + b _02333F8C @ case 2 + b _02333F8C @ case 3 + b _02333F8C @ case 4 + b _02333F8C @ case 5 + b _02333F8C @ case 6 + b _02333F8C @ case 7 + b _02333F8C @ case 8 + b _02333F8C @ case 9 + b _02333F8C @ case 10 + b _02333F8C @ case 11 + b _02333F8C @ case 12 + b _02333F8C @ case 13 + b _02333F8C @ case 14 + b _02333F8C @ case 15 + b _02333F8C @ case 16 + b _02333F8C @ case 17 + b _02333F8C @ case 18 + b _02333F8C @ case 19 + b _02333F8C @ case 20 + b _02333F8C @ case 21 + b _02333F8C @ case 22 + b _02333F8C @ case 23 + b _02333F8C @ case 24 + b _02333F8C @ case 25 + b _02333F8C @ case 26 + b _02333F8C @ case 27 +_02333F8C: + mov r4, #0 +_02333F90: + add r0, r1, r8, lsl #1 + add r0, r0, #0x300 + ldrsh r0, [r0, #0x8a] + bl FUN_0200EB30 + cmp r0, #0 + moveq r4, #0 + cmp r4, #0 + beq _023344D8 + ldr r2, _02334604 @ =0x0233C1A0 + ldr r1, [r2, #4] + add r0, r1, #0x900 + ldrsh r0, [r0, #0x8c] + cmp r0, #0 + bne _02333FFC + ldr r0, _02334608 @ =0x020AF6B8 + add r1, r1, #0x100 + ldr r0, [r0] + add r0, r0, r8, lsl #1 + add r0, r0, #0x300 + ldrsh r0, [r0, #0x8a] + strh r0, [r1, #0xbc] + ldr r0, [r2, #4] + add r0, r0, #0x900 + ldrsh r1, [r0, #0x8c] + add r1, r1, #1 + strh r1, [r0, #0x8c] + b _023344D8 +_02333FFC: + ldr r0, _02334608 @ =0x020AF6B8 + ldr r0, [r0] + add r0, r0, r8, lsl #1 + add r0, r0, #0x300 + ldrsh r0, [r0, #0x8a] + bl FUN_0200EB64 + lsl r0, r0, #0x10 + asr r7, r0, #0x10 + ldr r0, _0233460C @ =0x0000016E + mov sb, #1 + sub r4, r0, #1 + add fp, r0, #3 + add sl, r0, #1 + add r0, r0, #5 + str r0, [sp, #0xc] + ldr r0, _0233460C @ =0x0000016E + mov r6, #0 + add r0, r0, #4 + str r0, [sp, #8] + ldr r0, _0233460C @ =0x0000016E + ldr r5, _02334604 @ =0x0233C1A0 + add r0, r0, #9 + str r0, [sp, #0x18] + ldr r0, _0233460C @ =0x0000016E + add r0, r0, #8 + str r0, [sp, #0x14] + ldr r0, _0233460C @ =0x0000016E + add r0, r0, #7 + str r0, [sp, #0x10] + ldr r0, _0233460C @ =0x0000016E + add r0, r0, #0xc + str r0, [sp, #0x20] + ldr r0, _0233460C @ =0x0000016E + add r0, r0, #0xb + str r0, [sp, #0x1c] + ldr r0, _0233460C @ =0x0000016E + add r0, r0, #0xf + str r0, [sp, #0x28] + ldr r0, _0233460C @ =0x0000016E + add r0, r0, #0xd + str r0, [sp, #0x24] + ldr r0, _0233460C @ =0x0000016E + add r0, r0, #0x11 + str r0, [sp, #0x30] + ldr r0, _0233460C @ =0x0000016E + add r0, r0, #0x10 + str r0, [sp, #0x2c] + ldr r0, _0233460C @ =0x0000016E + add r0, r0, #0x15 + str r0, [sp, #0x3c] + ldr r0, _0233460C @ =0x0000016E + add r0, r0, #0x14 + str r0, [sp, #0x38] + ldr r0, _0233460C @ =0x0000016E + add r0, r0, #0x13 + str r0, [sp, #0x34] + ldr r0, _0233460C @ =0x0000016E + add r0, r0, #0x18 + str r0, [sp, #0x44] + ldr r0, _0233460C @ =0x0000016E + add r0, r0, #0x17 + str r0, [sp, #0x40] + ldr r0, _0233460C @ =0x0000016E + add r0, r0, #0x1b + str r0, [sp, #0x4c] + ldr r0, _0233460C @ =0x0000016E + add r0, r0, #0x19 + str r0, [sp, #0x48] + ldr r0, _0233460C @ =0x0000016E + add r0, r0, #0x1d + str r0, [sp, #0x54] + ldr r0, _0233460C @ =0x0000016E + add r0, r0, #0x1c + str r0, [sp, #0x50] + ldr r0, _0233460C @ =0x0000016E + add r0, r0, #0x21 + str r0, [sp, #0x60] + ldr r0, _0233460C @ =0x0000016E + add r0, r0, #0x20 + str r0, [sp, #0x5c] + ldr r0, _0233460C @ =0x0000016E + add r0, r0, #0x1f + str r0, [sp, #0x58] + b _02334444 +_0233414C: + add r0, r1, r6, lsl #1 + add r0, r0, #0x100 + ldrsh r0, [r0, #0xbc] + bl FUN_0200EB64 + ldr r1, _02334608 @ =0x020AF6B8 + lsl r0, r0, #0x10 + ldr r1, [r1] + add r1, r1, r8, lsl #1 + add r1, r1, #0x300 + ldrsh r1, [r1, #0x8a] + sub r1, r1, #0x16c + cmp r1, #0x23 + addls pc, pc, r1, lsl #2 + b _02334420 +_02334184: @ jump table + b _02334214 @ case 0 + b _02334214 @ case 1 + b _02334214 @ case 2 + b _0233423C @ case 3 + b _0233423C @ case 4 + b _0233423C @ case 5 + b _02334260 @ case 6 + b _02334260 @ case 7 + b _02334260 @ case 8 + b _0233428C @ case 9 + b _0233428C @ case 10 + b _0233428C @ case 11 + b _023342BC @ case 12 + b _023342BC @ case 13 + b _023342BC @ case 14 + b _023342E8 @ case 15 + b _023342E8 @ case 16 + b _023342E8 @ case 17 + b _02334314 @ case 18 + b _02334314 @ case 19 + b _02334314 @ case 20 + b _02334340 @ case 21 + b _02334340 @ case 22 + b _02334340 @ case 23 + b _02334370 @ case 24 + b _02334370 @ case 25 + b _02334370 @ case 26 + b _0233439C @ case 27 + b _0233439C @ case 28 + b _0233439C @ case 29 + b _023343C8 @ case 30 + b _023343C8 @ case 31 + b _023343C8 @ case 32 + b _023343F4 @ case 33 + b _023343F4 @ case 34 + b _023343F4 @ case 35 +_02334214: + ldr r1, [r5, #4] + add r1, r1, r6, lsl #1 + add r1, r1, #0x100 + ldrsh r2, [r1, #0xbc] + cmp r2, #0x16c + cmpne r2, r4 + ldrne r1, _0233460C @ =0x0000016E + cmpne r2, r1 + moveq sb, #0 + b _02334420 +_0233423C: + ldr r1, [r5, #4] + add r1, r1, r6, lsl #1 + add r1, r1, #0x100 + ldrsh r1, [r1, #0xbc] + cmp r1, sl + cmpne r1, #0x170 + cmpne r1, fp + moveq sb, #0 + b _02334420 +_02334260: + ldr r1, [r5, #4] + add r1, r1, r6, lsl #1 + add r1, r1, #0x100 + ldrsh r2, [r1, #0xbc] + ldr r1, [sp, #8] + cmp r2, r1 + ldrne r1, [sp, #0xc] + cmpne r2, r1 + cmpne r2, #0x174 + moveq sb, #0 + b _02334420 +_0233428C: + ldr r1, [r5, #4] + ldr r2, [sp, #0x10] + add r1, r1, r6, lsl #1 + add r1, r1, #0x100 + ldrsh r1, [r1, #0xbc] + cmp r1, r2 + ldrne r2, [sp, #0x14] + cmpne r1, r2 + ldrne r2, [sp, #0x18] + cmpne r1, r2 + moveq sb, #0 + b _02334420 +_023342BC: + ldr r1, [r5, #4] + add r1, r1, r6, lsl #1 + add r1, r1, #0x100 + ldrsh r2, [r1, #0xbc] + cmp r2, #0x178 + ldrne r1, [sp, #0x1c] + cmpne r2, r1 + ldrne r1, [sp, #0x20] + cmpne r2, r1 + moveq sb, #0 + b _02334420 +_023342E8: + ldr r1, [r5, #4] + add r1, r1, r6, lsl #1 + add r1, r1, #0x100 + ldrsh r2, [r1, #0xbc] + ldr r1, [sp, #0x24] + cmp r2, r1 + cmpne r2, #0x17c + ldrne r1, [sp, #0x28] + cmpne r2, r1 + moveq sb, #0 + b _02334420 +_02334314: + ldr r1, [r5, #4] + add r1, r1, r6, lsl #1 + add r1, r1, #0x100 + ldrsh r2, [r1, #0xbc] + ldr r1, [sp, #0x2c] + cmp r2, r1 + ldrne r1, [sp, #0x30] + cmpne r2, r1 + cmpne r2, #0x180 + moveq sb, #0 + b _02334420 +_02334340: + ldr r1, [r5, #4] + ldr r2, [sp, #0x34] + add r1, r1, r6, lsl #1 + add r1, r1, #0x100 + ldrsh r1, [r1, #0xbc] + cmp r1, r2 + ldrne r2, [sp, #0x38] + cmpne r1, r2 + ldrne r2, [sp, #0x3c] + cmpne r1, r2 + moveq sb, #0 + b _02334420 +_02334370: + ldr r1, [r5, #4] + add r1, r1, r6, lsl #1 + add r1, r1, #0x100 + ldrsh r2, [r1, #0xbc] + cmp r2, #0x184 + ldrne r1, [sp, #0x40] + cmpne r2, r1 + ldrne r1, [sp, #0x44] + cmpne r2, r1 + moveq sb, #0 + b _02334420 +_0233439C: + ldr r1, [r5, #4] + add r1, r1, r6, lsl #1 + add r1, r1, #0x100 + ldrsh r2, [r1, #0xbc] + ldr r1, [sp, #0x48] + cmp r2, r1 + cmpne r2, #0x188 + ldrne r1, [sp, #0x4c] + cmpne r2, r1 + moveq sb, #0 + b _02334420 +_023343C8: + ldr r1, [r5, #4] + add r1, r1, r6, lsl #1 + add r1, r1, #0x100 + ldrsh r2, [r1, #0xbc] + ldr r1, [sp, #0x50] + cmp r2, r1 + ldrne r1, [sp, #0x54] + cmpne r2, r1 + cmpne r2, #0x18c + moveq sb, #0 + b _02334420 +_023343F4: + ldr r1, [r5, #4] + ldr r2, [sp, #0x58] + add r1, r1, r6, lsl #1 + add r1, r1, #0x100 + ldrsh r1, [r1, #0xbc] + cmp r1, r2 + ldrne r2, [sp, #0x5c] + cmpne r1, r2 + ldrne r2, [sp, #0x60] + cmpne r1, r2 + moveq sb, #0 +_02334420: + cmp sb, #0 + beq _02334458 + cmp r7, r0, asr #16 + moveq sb, #0 + beq _02334458 + blt _02334458 + add r0, r6, #1 + lsl r0, r0, #0x10 + asr r6, r0, #0x10 +_02334444: + ldr r1, [r5, #4] + add r0, r1, #0x900 + ldrsh r0, [r0, #0x8c] + cmp r6, r0 + blt _0233414C +_02334458: + cmp sb, #0 + beq _023344D8 + ldr r2, _02334604 @ =0x0233C1A0 + ldr r0, [r2, #4] + add r0, r0, #0x900 + ldrsh r4, [r0, #0x8c] + b _02334494 +_02334474: + ldr r0, [r2, #4] + sub r1, r4, #1 + add r0, r0, r4, lsl #1 + add r0, r0, #0x100 + ldrsh r3, [r0, #0xba] + lsl r1, r1, #0x10 + asr r4, r1, #0x10 + strh r3, [r0, #0xbc] +_02334494: + cmp r4, r6 + bgt _02334474 + ldr r0, _02334608 @ =0x020AF6B8 + ldr r1, _02334604 @ =0x0233C1A0 + ldr r0, [r0] + ldr r2, [r1, #4] + add r0, r0, r8, lsl #1 + add r0, r0, #0x300 + ldrsh r3, [r0, #0x8a] + add r0, r2, r6, lsl #1 + add r0, r0, #0x100 + strh r3, [r0, #0xbc] + ldr r0, [r1, #4] + add r0, r0, #0x900 + ldrsh r1, [r0, #0x8c] + add r1, r1, #1 + strh r1, [r0, #0x8c] +_023344D8: + add r0, r8, #1 + lsl r0, r0, #0x10 + asr r8, r0, #0x10 +_023344E4: + cmp r8, #0x3e8 + blt _02333ED8 +_023344EC: + ldr r0, _02334610 @ =0x0233B8E8 + bl FUN_0202F0B0 + ldr r2, _02334604 @ =0x0233C1A0 + mov r1, #0xff + ldr r3, [r2, #4] + strb r0, [r3, #1] + ldr r0, [r2, #4] + add r0, r0, #0xac + bl FUN_020258B8 + ldr r0, _02334604 @ =0x0233C1A0 + ldr r1, _02334614 @ =0x00000404 + ldr r2, [r0, #4] + mov r3, #0 + ldrsb r0, [r2, #1] + add r2, r2, #0xac + bl FUN_0202F23C + ldr r0, _02334618 @ =0x0233B8C8 + ldr r1, _0233461C @ =ov01_02334F2C + bl FUN_0202F8C4 + ldr r1, _02334604 @ =0x0233C1A0 + mov r4, #0 + ldr r2, [r1, #4] + mov r3, #0xfe + strb r0, [r2, #2] + ldr r0, [r1, #4] + mov r2, #0x10 + str r4, [r0, #0x14] + ldr r0, [r1, #4] + strh r3, [r0, #0x1c] + ldr r0, [r1, #4] + str r2, [r0, #0x20] + ldr r0, [r1, #4] + str r4, [r0, #0x78] + ldr r0, [r1, #4] + str r4, [r0, #0x7c] + bl ov01_02335280 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + ldr r2, _02334604 @ =0x0233C1A0 + ldr r0, _02334620 @ =0x0233B8D8 + ldr r2, [r2, #4] + ldr r1, _02334624 @ =0x80401859 + ldr r3, _02334628 @ =ov01_023355DC + add r2, r2, #0x14 + bl FUN_0202BA20 + ldr r1, _02334604 @ =0x0233C1A0 + mov r2, r4 + ldr r3, [r1, #4] + strb r0, [r3] + ldr r3, [r1, #4] + mov r0, #0x12 + str r2, [r3, #0xc] + str r2, [r3, #0x10] + str r2, [r3, #4] + ldr r1, [r1, #4] + str r2, [r1, #0x1b8] + bl ov01_02335728 + ldr r1, _02334604 @ =0x0233C1A0 + ldr r1, [r1, #4] + str r0, [r1, #0x990] + mov r0, #0x24 + bl ov01_02335728 + ldr r1, _02334604 @ =0x0233C1A0 + ldr r1, [r1, #4] + str r0, [r1, #0x994] + mov r0, #1 + add sp, sp, #0x64 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02334600: .4byte 0x00000998 +_02334604: .4byte 0x0233C1A0 +_02334608: .4byte 0x020AF6B8 +_0233460C: .4byte 0x0000016E +_02334610: .4byte 0x0233B8E8 +_02334614: .4byte 0x00000404 +_02334618: .4byte 0x0233B8C8 +_0233461C: .4byte ov01_02334F2C +_02334620: .4byte 0x0233B8D8 +_02334624: .4byte 0x80401859 +_02334628: .4byte ov01_023355DC + arm_func_end ov01_02333E60 + + arm_func_start ov01_0233462C +ov01_0233462C: @ 0x0233462C + push {r3, lr} + ldr r0, _023346B8 @ =0x0233C1A0 + ldr r0, [r0, #4] + cmp r0, #0 + popeq {r3, pc} + add r0, r0, #0x194 + add r0, r0, #0x800 + bl ov01_023357C4 + ldr r0, _023346B8 @ =0x0233C1A0 + ldr r0, [r0, #4] + add r0, r0, #0x990 + bl ov01_023357C4 + ldr r0, _023346B8 @ =0x0233C1A0 + ldr r0, [r0, #4] + ldrsb r0, [r0] + bl FUN_0202BC44 + ldr r0, _023346B8 @ =0x0233C1A0 + ldr r0, [r0, #4] + ldrsb r0, [r0, #2] + bl FUN_0202F8FC + ldr r0, _023346B8 @ =0x0233C1A0 + ldr r0, [r0, #4] + ldrsb r0, [r0, #1] + bl FUN_0202F148 + ldr r0, _023346B8 @ =0x0233C1A0 + ldr r0, [r0, #4] + add r0, r0, #0x1ac + bl FUN_020547D8 + ldr r0, _023346B8 @ =0x0233C1A0 + ldr r0, [r0, #4] + bl FUN_02001188 + ldr r0, _023346B8 @ =0x0233C1A0 + mov r1, #0 + str r1, [r0, #4] + pop {r3, pc} + .align 2, 0 +_023346B8: .4byte 0x0233C1A0 + arm_func_end ov01_0233462C +_023346BC: + .byte 0x38, 0x40, 0x2D, 0xE9 + .byte 0xB0, 0xD0, 0x4D, 0xE2, 0xC4, 0x04, 0x9F, 0xE5, 0x04, 0x10, 0x90, 0xE5, 0x04, 0x00, 0x91, 0xE5 + .byte 0x03, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x29, 0x01, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA + .byte 0x09, 0x01, 0x00, 0xEA, 0x21, 0x01, 0x00, 0xEA, 0x23, 0x01, 0x00, 0xEA, 0x0C, 0x00, 0x8D, 0xE2 + .byte 0x08, 0x10, 0xA0, 0xE3, 0x86, 0xF4, 0xF3, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0x8D, 0xE2 + .byte 0xB0, 0x00, 0xCD, 0xE1, 0xB2, 0x00, 0xCD, 0xE1, 0xD3, 0x46, 0xF3, 0xEB, 0x02, 0x10, 0x8D, 0xE2 + .byte 0x00, 0x00, 0xA0, 0xE3, 0xB4, 0x46, 0xF3, 0xEB, 0xB2, 0x00, 0xDD, 0xE1, 0x02, 0x0B, 0x10, 0xE3 + .byte 0x0F, 0x00, 0x00, 0x0A, 0xB0, 0x00, 0xDD, 0xE1, 0xC0, 0x00, 0x10, 0xE3, 0x0C, 0x00, 0x00, 0x0A + .byte 0x00, 0x00, 0xA0, 0xE3, 0x64, 0x8D, 0xF3, 0xEB, 0xB8, 0x01, 0x00, 0xEB, 0x4C, 0x04, 0x9F, 0xE5 + .byte 0x04, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0xF7, 0x01, 0x00, 0xEB, 0x3C, 0x04, 0x9F, 0xE5 + .byte 0x04, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0x32, 0xDD, 0xF3, 0xEB, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x08, 0x01, 0x00, 0xEA, 0x24, 0x04, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1 + .byte 0x05, 0xDF, 0xF3, 0xEB, 0x01, 0x07, 0x10, 0xE3, 0x01, 0x00, 0x00, 0x1A, 0x02, 0x07, 0x10, 0xE3 + .byte 0x0A, 0x00, 0x00, 0x0A, 0xA5, 0x01, 0x00, 0xEB, 0x00, 0x04, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5 + .byte 0xD2, 0x00, 0xD0, 0xE1, 0xE4, 0x01, 0x00, 0xEB, 0xF0, 0x03, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5 + .byte 0xD0, 0x00, 0xD0, 0xE1, 0x1F, 0xDD, 0xF3, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0xF5, 0x00, 0x00, 0xEA + .byte 0xD8, 0x03, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0x3E, 0xDD, 0xF3, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x7C, 0x00, 0x00, 0x1A, 0xC0, 0x03, 0x9F, 0xE5, 0x04, 0x40, 0x90, 0xE5 + .byte 0xD0, 0x00, 0xD4, 0xE1, 0x4D, 0xDD, 0xF3, 0xEB, 0xC0, 0x2F, 0xA0, 0xE1, 0x0C, 0x00, 0x84, 0xE5 + .byte 0x10, 0x20, 0x84, 0xE5, 0x00, 0x10, 0xE0, 0xE3, 0x0C, 0x00, 0x94, 0xE5, 0x01, 0x00, 0x52, 0xE1 + .byte 0x01, 0x00, 0x50, 0x01, 0x02, 0x00, 0x00, 0x1A, 0x01, 0x00, 0xA0, 0xE3, 0x32, 0x8D, 0xF3, 0xEB + .byte 0x6B, 0x00, 0x00, 0xEA, 0xE2, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A + .byte 0x01, 0x00, 0x50, 0xE3, 0x40, 0x00, 0x00, 0x0A, 0x02, 0x00, 0x50, 0xE3, 0x4C, 0x00, 0x00, 0x0A + .byte 0x63, 0x00, 0x00, 0xEA, 0x64, 0x03, 0x9F, 0xE5, 0x04, 0x20, 0x90, 0xE5, 0x08, 0x00, 0x92, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x50, 0xE3, 0x17, 0x00, 0x00, 0x0A + .byte 0x2C, 0x00, 0x00, 0xEA, 0x10, 0x00, 0x92, 0xE5, 0x0C, 0x10, 0x92, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x00, 0x00, 0x51, 0x03, 0x00, 0x00, 0xA0, 0xE3, 0x07, 0x00, 0x00, 0x1A, 0x20, 0x10, 0xA0, 0xE3 + .byte 0x30, 0x10, 0xCD, 0xE5, 0x31, 0x00, 0xCD, 0xE5, 0x32, 0x00, 0xCD, 0xE5, 0x90, 0x09, 0x92, 0xE5 + .byte 0x30, 0x10, 0x8D, 0xE2, 0xEE, 0x00, 0x00, 0xEB, 0x1E, 0x00, 0x00, 0xEA, 0x90, 0x29, 0x92, 0xE5 + .byte 0x30, 0x00, 0x8D, 0xE2, 0xA6, 0x02, 0x00, 0xEB, 0x00, 0x23, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x04, 0x00, 0x92, 0xE5, 0x90, 0x09, 0x90, 0xE5, 0xE5, 0x00, 0x00, 0xEB, 0x15, 0x00, 0x00, 0xEA + .byte 0x10, 0x00, 0x92, 0xE5, 0x0C, 0x10, 0x92, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x51, 0x03 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x07, 0x00, 0x00, 0x1A, 0x20, 0x10, 0xA0, 0xE3, 0x30, 0x10, 0xCD, 0xE5 + .byte 0x31, 0x00, 0xCD, 0xE5, 0x32, 0x00, 0xCD, 0xE5, 0x94, 0x09, 0x92, 0xE5, 0x30, 0x10, 0x8D, 0xE2 + .byte 0xD7, 0x00, 0x00, 0xEB, 0x07, 0x00, 0x00, 0xEA, 0x94, 0x29, 0x92, 0xE5, 0x30, 0x00, 0x8D, 0xE2 + .byte 0x8F, 0x02, 0x00, 0xEB, 0xA4, 0x22, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1, 0x04, 0x00, 0x92, 0xE5 + .byte 0x94, 0x09, 0x90, 0xE5, 0xCE, 0x00, 0x00, 0xEB, 0x90, 0x02, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5 + .byte 0xD2, 0x00, 0xD0, 0xE1, 0x88, 0x01, 0x00, 0xEB, 0x80, 0x02, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5 + .byte 0xD0, 0x00, 0xD0, 0xE1, 0xB5, 0xDC, 0xF3, 0xEB, 0x25, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3 + .byte 0xE9, 0x8C, 0xF3, 0xEB, 0xF6, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x20, 0x00, 0x00, 0xBA + .byte 0x58, 0x02, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x7A, 0x01, 0x00, 0xEB + .byte 0x48, 0x02, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0xA7, 0xDC, 0xF3, 0xEB + .byte 0x17, 0x00, 0x00, 0xEA, 0x34, 0x02, 0x9F, 0xE5, 0x04, 0x10, 0x90, 0xE5, 0x90, 0x09, 0x91, 0xE5 + .byte 0x0C, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x94, 0x09, 0x91, 0x15, 0x0C, 0x00, 0x90, 0x15 + .byte 0x00, 0x00, 0x50, 0x13, 0x0B, 0x00, 0x00, 0x1A, 0x00, 0x00, 0xA0, 0xE3, 0xD2, 0x8C, 0xF3, 0xEB + .byte 0x26, 0x01, 0x00, 0xEB, 0x04, 0x02, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1 + .byte 0x65, 0x01, 0x00, 0xEB, 0xF4, 0x01, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1 + .byte 0x92, 0xDC, 0xF3, 0xEB, 0x02, 0x00, 0x00, 0xEA, 0x04, 0x00, 0xA0, 0xE3, 0xC6, 0x8C, 0xF3, 0xEB + .byte 0x14, 0x02, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x72, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x08, 0x10, 0x8D, 0xE2, 0xB8, 0x00, 0xCD, 0xE1, 0xB6, 0x00, 0xCD, 0xE1, 0xB4, 0x00, 0xCD, 0xE1 + .byte 0x21, 0x46, 0xF3, 0xEB, 0x06, 0x10, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0x84, 0x46, 0xF3, 0xEB + .byte 0x04, 0x10, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xFF, 0x45, 0xF3, 0xEB, 0xB4, 0x00, 0xDD, 0xE1 + .byte 0x02, 0x0B, 0x10, 0xE3, 0x0E, 0x00, 0x00, 0x0A, 0xB8, 0x00, 0xDD, 0xE1, 0x10, 0x00, 0x10, 0xE3 + .byte 0x04, 0x00, 0x00, 0x0A, 0x03, 0x00, 0xA0, 0xE3, 0xAF, 0x8C, 0xF3, 0xEB, 0x01, 0x00, 0xA0, 0xE3 + .byte 0xCF, 0x01, 0x00, 0xEB, 0x2F, 0x00, 0x00, 0xEA, 0x20, 0x00, 0x10, 0xE3, 0x2D, 0x00, 0x00, 0x0A + .byte 0x03, 0x00, 0xA0, 0xE3, 0xA8, 0x8C, 0xF3, 0xEB, 0x00, 0x00, 0xE0, 0xE3, 0xC8, 0x01, 0x00, 0xEB + .byte 0x28, 0x00, 0x00, 0xEA, 0xB8, 0x00, 0xDD, 0xE1, 0x02, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A + .byte 0x08, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x20, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x9D, 0x8C, 0xF3, 0xEB, 0xAA, 0x00, 0x00, 0xEB, 0x1E, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x99, 0x8C, 0xF3, 0xEB, 0x24, 0x01, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1 + .byte 0xA1, 0xDC, 0xF3, 0xEB, 0x00, 0x08, 0xA0, 0xE1, 0x40, 0x18, 0xA0, 0xE1, 0x41, 0x01, 0xA0, 0xE1 + .byte 0xA0, 0x0E, 0x81, 0xE0, 0xC0, 0x01, 0xA0, 0xE1, 0x01, 0x00, 0x80, 0xE2, 0x80, 0x01, 0xA0, 0xE1 + .byte 0x01, 0x00, 0x40, 0xE2, 0x00, 0x48, 0xA0, 0xE1, 0x44, 0x58, 0xA0, 0xE1, 0xF7, 0x01, 0x00, 0xEB + .byte 0x44, 0x08, 0x50, 0xE1, 0x03, 0x00, 0x00, 0xCA, 0xF4, 0x01, 0x00, 0xEB, 0x01, 0x00, 0x40, 0xE2 + .byte 0x00, 0x08, 0xA0, 0xE1, 0x40, 0x58, 0xA0, 0xE1, 0xD0, 0x00, 0x9F, 0xE5, 0x05, 0x10, 0xA0, 0xE1 + .byte 0x04, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0x9E, 0xDC, 0xF3, 0xEB, 0x01, 0x00, 0x00, 0xEA + .byte 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x50, 0xE3 + .byte 0x07, 0x00, 0x00, 0x0A, 0xA4, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1 + .byte 0x0D, 0x01, 0x00, 0xEB, 0x94, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1 + .byte 0x48, 0xDC, 0xF3, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x1E, 0x00, 0x00, 0xEA, 0xD0, 0x00, 0xD1, 0xE1 + .byte 0x69, 0xDC, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x0D, 0x00, 0x00, 0x1A + .byte 0x68, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0xD1, 0x00, 0xD0, 0xE1, 0x93, 0xE9, 0xF3, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x06, 0x00, 0x00, 0x1A, 0x4C, 0x00, 0x9F, 0xE5 + .byte 0x04, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x13, 0xEC, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x00, 0x00, 0xA0, 0x13, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x50, 0xE3, 0x2C, 0x00, 0x9F, 0x15 + .byte 0x02, 0x10, 0xA0, 0x13, 0x04, 0x00, 0x90, 0x15, 0x04, 0x10, 0x80, 0x15, 0x04, 0x00, 0x00, 0xEA + .byte 0x03, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x81, 0xE5, 0x01, 0x00, 0x00, 0xEA, 0xB8, 0x01, 0x91, 0xE5 + .byte 0x00, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3, 0xB0, 0xD0, 0x8D, 0xE2, 0x38, 0x80, 0xBD, 0xE8 + .byte 0xA0, 0xC1, 0x33, 0x02 + + arm_func_start ov01_02334B94 +ov01_02334B94: @ 0x02334B94 + push {r4, lr} + mov r4, r0 + bl ov01_02335280 + sub r1, r0, #1 + cmp r4, r1 + lsrne r2, r4, #0x1f + rsbne r1, r2, r4, lsl #29 + addne r1, r2, r1, ror #29 + cmpne r1, #7 + moveq r0, #2 + popeq {r4, pc} + sub r0, r0, #2 + cmp r4, r0 + cmpne r1, #6 + moveq r0, #1 + movne r0, #0 + pop {r4, pc} + arm_func_end ov01_02334B94 + + arm_func_start ov01_02334BD8 +ov01_02334BD8: @ 0x02334BD8 + push {r3, r4, r5, r6, r7, lr} + mov r5, #0 + mov r7, r0 + mov r6, r1 + mov r4, r5 + b _02334C04 +_02334BF0: + ldr r0, [r7, #4] + ldr r0, [r0, r4, lsl #2] + bl ov01_02335654 + add r5, r5, r0 + add r4, r4, #1 +_02334C04: + ldr r0, [r7, #0xc] + cmp r4, r0 + blt _02334BF0 + mov r0, r6 + bl ov01_02335654 + ldr r1, [r7, #0x1c] + add r0, r5, r0 + cmp r0, r1 + movle r0, #1 + movgt r0, #0 + and r0, r0, #0xff + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov01_02334BD8 + + arm_func_start ov01_02334C34 +ov01_02334C34: @ 0x02334C34 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + mov r6, r1 + bl ov01_02334BD8 + cmp r0, #0 + bne _02334C5C + mov r0, #2 + bl FUN_02017CCC + ldr r0, [r7, #0xc] + pop {r3, r4, r5, r6, r7, pc} +_02334C5C: + ldr r5, [r7, #0x10] + ldr r0, [r7, #0xc] + ldr r4, [r7, #0x14] + cmp r0, r5 + beq _02334C9C + mov r3, #0 + b _02334C94 +_02334C78: + ldr r2, [r7] + lsl r1, r3, #8 + ldrb r0, [r2, r3, lsl #8] + cmp r0, #0 + addeq r5, r2, r1 + beq _02334CA0 + add r3, r3, #1 +_02334C94: + cmp r3, r5 + blt _02334C78 +_02334C9C: + mov r5, #0 +_02334CA0: + mov r0, r5 + mov r1, r6 + bl FUN_02089694 + ldr r2, [r7, #0xc] + cmp r2, r4 + beq _02334CD8 + b _02334CD0 +_02334CBC: + ldr r1, [r7, #4] + add r0, r1, r2, lsl #2 + ldr r0, [r0, #-4] + str r0, [r1, r2, lsl #2] + sub r2, r2, #1 +_02334CD0: + cmp r2, r4 + bgt _02334CBC +_02334CD8: + ldr r1, [r7, #0xc] + mov r0, #0 + add r1, r1, #1 + str r1, [r7, #0xc] + ldr r1, [r7, #4] + str r5, [r1, r4, lsl #2] + bl FUN_02017CCC + mov r0, #1 + bl ov01_02335154 + ldr r0, [r7, #0xc] + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov01_02334C34 + + arm_func_start ov01_02334D04 +ov01_02334D04: @ 0x02334D04 + push {r3, lr} + ldr r0, _02334D6C @ =0x0233C1A0 + ldr r2, [r0, #4] + ldr r0, [r2, #0x990] + ldr r1, [r0, #0xc] + cmp r1, #0 + ldreq r1, [r2, #0x994] + ldreq r1, [r1, #0xc] + cmpeq r1, #0 + bne _02334D38 + bl ov01_02335208 + mvn r0, #0 + pop {r3, pc} +_02334D38: + ldr r1, [r2, #8] + cmp r1, #0 + beq _02334D50 + cmp r1, #1 + beq _02334D58 + b _02334D64 +_02334D50: + bl ov01_02334D70 + pop {r3, pc} +_02334D58: + ldr r0, [r2, #0x994] + bl ov01_02334D70 + pop {r3, pc} +_02334D64: + mvn r0, #0 + pop {r3, pc} + .align 2, 0 +_02334D6C: .4byte 0x0233C1A0 + arm_func_end ov01_02334D04 + + arm_func_start ov01_02334D70 +ov01_02334D70: @ 0x02334D70 + push {r4, lr} + ldr r3, [r0, #0xc] + mov r1, #0 + cmp r3, #0 + moveq r0, r1 + popeq {r4, pc} + ldr r2, [r0, #0x14] + mov ip, #0 + cmp r2, r3 + ldr r3, [r0, #4] + subeq r2, r2, #1 + ldr r3, [r3, r2, lsl #2] + moveq r1, #1 + strb ip, [r3] + ldr r3, [r0, #0xc] + cmp r3, r2 + beq _02334DF0 + sub r3, r3, #1 + str r3, [r0, #0xc] + b _02334DD4 +_02334DC0: + ldr ip, [r0, #4] + add r3, ip, r2, lsl #2 + ldr r3, [r3, #4] + str r3, [ip, r2, lsl #2] + add r2, r2, #1 +_02334DD4: + ldr r3, [r0, #0xc] + cmp r2, r3 + blt _02334DC0 + ldr r3, [r0, #4] + mov ip, #0 + str ip, [r3, r2, lsl #2] + b _02334E04 +_02334DF0: + ldr r3, [r0, #4] + str ip, [r3, r2, lsl #2] + ldr r2, [r0, #0xc] + sub r2, r2, #1 + str r2, [r0, #0xc] +_02334E04: + cmp r1, #0 + ldr r4, [r0, #0xc] + beq _02334E18 + mvn r0, #0 + bl ov01_02335154 +_02334E18: + mov r0, r4 + pop {r4, pc} + arm_func_end ov01_02334D70 +_02334E20: + .byte 0x24, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0x90, 0xE5, 0x08, 0x00, 0x91, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13, 0x08, 0x00, 0x81, 0xE5, 0x08, 0x00, 0x9F, 0xE5 + .byte 0x04, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x90, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xA0, 0xC1, 0x33, 0x02 + + arm_func_start ov01_02334E50 +ov01_02334E50: @ 0x02334E50 + push {r3, r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #4 + mov r7, #0 + mov sl, r0 + mov sb, r1 + mov r8, r7 + mov r6, r7 + mov r5, #0x100 + mov r4, #0x400 + b _02334E9C +_02334E78: + str r6, [sp] + ldr r0, [sb, #4] + mov r1, r5 + ldr r2, [r0, r8, lsl #2] + mov r3, r4 + add r0, sl, r7 + bl FUN_020223F0 + add r7, r7, r0 + add r8, r8, #1 +_02334E9C: + ldr r0, [sb, #0xc] + cmp r8, r0 + blt _02334E78 + mov r0, r7 + add sp, sp, #4 + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end ov01_02334E50 + + arm_func_start ov01_02334EB4 +ov01_02334EB4: @ 0x02334EB4 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x104 + ldr r2, [r1, #0xc] + mov r5, r0 + cmp r2, #0 + movle r0, #0 + strble r0, [sp, #4] + ble _02334EDC + add r0, sp, #4 + bl ov01_02334E50 +_02334EDC: + add r0, sp, #4 + mov r4, #0 + str r0, [sp] + add r6, sp, #0 + b _02334F04 +_02334EF0: + mov r0, r6 + bl FUN_0202065C + lsl r1, r4, #1 + strh r0, [r5, r1] + add r4, r4, #1 +_02334F04: + ldr r0, [sp] + ldrb r0, [r0] + cmp r0, #0 + bne _02334EF0 + lsl r1, r4, #1 + mov r2, #0 + mov r0, r4 + strh r2, [r5, r1] + add sp, sp, #0x104 + pop {r3, r4, r5, r6, pc} + arm_func_end ov01_02334EB4 + + arm_func_start ov01_02334F2C +ov01_02334F2C: @ 0x02334F2C + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x204 + mov sl, r0 + bl FUN_02027B1C + ldr r1, _02335084 @ =0x0233C1A0 + add r0, sp, #4 + ldr r1, [r1, #4] + ldr r1, [r1, #0x990] + bl ov01_02334EB4 + mov sb, r0 + cmp sb, #0 + add r7, sp, #4 + mov r8, #0 + ble _02334FA4 + mov r6, #0x17 + mov r5, r8 + mov r4, #0xc + b _02334F9C +_02334F74: + ldrh r3, [r7] + cmp r3, #0x20 + beq _02334F94 + mul r1, r8, r4 + mov r0, sl + mov r2, r5 + str r6, [sp] + bl FUN_0202676C +_02334F94: + add r8, r8, #1 + add r7, r7, #2 +_02334F9C: + cmp r8, sb + blt _02334F74 +_02334FA4: + mov r4, #0x17 + mov r0, sl + mov r1, #0 + mov r2, #0xc + mov r3, #0xd8 + str r4, [sp] + bl FUN_02025D50 + ldr r1, _02335084 @ =0x0233C1A0 + add r0, sp, #4 + ldr r1, [r1, #4] + ldr r1, [r1, #0x994] + bl ov01_02334EB4 + mov r6, #0 + add sb, sp, #4 + mov r5, r6 + mov fp, sb + b _02335064 +_02334FE8: + mov r7, #0 + mov r8, r7 + lsl r4, r5, #4 + b _02335048 +_02334FF8: + ldrh r3, [sb] + cmp r3, #0 + moveq r7, #1 + beq _02335050 + lsl r0, r6, #1 + ldrh r0, [fp, r0] + cmp r0, #0x20 + beq _02335034 + mov r0, #0xc + mul r1, r8, r0 + mov r0, #0x17 + str r0, [sp] + mov r0, sl + add r2, r4, #0x14 + bl FUN_0202676C +_02335034: + add r0, r6, #1 + lsl r0, r0, #0x10 + asr r6, r0, #0x10 + add r8, r8, #1 + add sb, sb, #2 +_02335048: + cmp r8, #0x12 + blt _02334FF8 +_02335050: + cmp r7, #0 + bne _0233506C + add r0, r5, #1 + lsl r0, r0, #0x10 + asr r5, r0, #0x10 +_02335064: + cmp r5, #2 + blt _02334FE8 +_0233506C: + mov r0, sl + bl ov01_02335088 + mov r0, sl + bl FUN_02027AF0 + add sp, sp, #0x204 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02335084: .4byte 0x0233C1A0 + arm_func_end ov01_02334F2C + + arm_func_start ov01_02335088 +ov01_02335088: @ 0x02335088 + push {r4, r5, r6, lr} + ldr r1, _02335150 @ =0x0233C1A0 + mov r4, r0 + ldr r2, [r1, #4] + ldr r1, [r2, #8] + cmp r1, #0 + beq _023350B0 + cmp r1, #1 + beq _023350EC + pop {r4, r5, r6, pc} +_023350B0: + ldr r1, [r2, #0x990] + mov r3, #0x74 + ldr r2, [r1, #0x18] + cmp r2, #0x12 + bge _023350DC + mov r1, #0xc + mul r1, r2, r1 + add r2, r1, #0x14 + mov r1, #5 + bl FUN_020288FC + pop {r4, r5, r6, pc} +_023350DC: + mov r1, #5 + mov r2, #0xe0 + bl FUN_020288FC + pop {r4, r5, r6, pc} +_023350EC: + ldr r1, [r2, #0x994] + ldr r5, [r1, #0x18] + cmp r5, #0x24 + bge _0233513C + mov r0, r5 + mov r1, #0x12 + bl FUN_0208FEA4 + mov r6, r1 + mov r0, r5 + mov r1, #0x12 + bl FUN_0208FEA4 + mov r1, #0xc + mul r2, r6, r1 + lsl r1, r0, #4 + add r3, r1, #0x84 + mov r0, r4 + add r2, r2, #0x14 + mov r1, #5 + bl FUN_020288FC + pop {r4, r5, r6, pc} +_0233513C: + mov r1, #5 + mov r2, #0xe0 + mov r3, #0x94 + bl FUN_020288FC + pop {r4, r5, r6, pc} + .align 2, 0 +_02335150: .4byte 0x0233C1A0 + arm_func_end ov01_02335088 + + arm_func_start ov01_02335154 +ov01_02335154: @ 0x02335154 + push {r3, r4, r5, r6, r7, lr} + ldr r1, _02335204 @ =0x0233C1A0 + ldr r2, [r1, #4] + ldr r1, [r2, #8] + cmp r1, #0 + beq _02335178 + cmp r1, #1 + beq _02335184 + pop {r3, r4, r5, r6, r7, pc} +_02335178: + ldr r4, [r2, #0x990] + ldr r2, [r4, #0xc] + b _0233518C +_02335184: + ldr r4, [r2, #0x994] + ldr r2, [r4, #0xc] +_0233518C: + ldr r1, [r4, #0x14] + adds r0, r1, r0 + str r0, [r4, #0x14] + movmi r0, #0 + strmi r0, [r4, #0x14] + bmi _023351AC + cmp r0, r2 + strgt r2, [r4, #0x14] +_023351AC: + ldr r5, [r4, #0x14] + ldr r0, [r4, #0xc] + mov r7, #0 + cmp r5, r0 + movgt r5, r0 + mov r6, #0 + b _023351E4 +_023351C8: + ldr r0, [r4, #4] + ldr r0, [r0, r6, lsl #2] + cmp r0, #0 + beq _023351EC + bl ov01_02335654 + add r7, r7, r0 + add r6, r6, #1 +_023351E4: + cmp r6, r5 + blt _023351C8 +_023351EC: + ldr r0, _02335204 @ =0x0233C1A0 + str r7, [r4, #0x18] + ldr r0, [r0, #4] + ldrsb r0, [r0, #2] + bl ov01_02335088 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02335204: .4byte 0x0233C1A0 + arm_func_end ov01_02335154 + + arm_func_start ov01_02335208 +ov01_02335208: @ 0x02335208 + push {r3, lr} + ldr r0, _0233527C @ =0x0233C1A0 + ldr r0, [r0, #4] + ldrsb r0, [r0] + bl FUN_0202BC60 + ldr r0, _0233527C @ =0x0233C1A0 + ldr r0, [r0, #4] + ldrsb r0, [r0, #2] + bl FUN_0202F954 + ldr r0, _0233527C @ =0x0233C1A0 + ldr r0, [r0, #4] + ldrsb r0, [r0, #1] + bl FUN_0202F334 + ldr r0, _0233527C @ =0x0233C1A0 + mov r2, #1 + ldr r1, [r0, #4] + str r2, [r1, #4] + ldr r1, [r0, #4] + ldr r0, [r1, #0x990] + ldr r0, [r0, #0xc] + cmp r0, #0 + ldrne r0, [r1, #0x994] + ldrne r0, [r0, #0xc] + cmpne r0, #0 + movne r0, #2 + strne r0, [r1, #0x1b8] + moveq r0, #1 + streq r0, [r1, #0x1b8] + pop {r3, pc} + .align 2, 0 +_0233527C: .4byte 0x0233C1A0 + arm_func_end ov01_02335208 + + arm_func_start ov01_02335280 +ov01_02335280: @ 0x02335280 + push {r4, r5, r6, lr} + ldr r0, _023352E8 @ =0x0233C1A0 + mov r1, #6 + ldr r2, [r0, #4] + add r0, r2, #0x100 + ldrsh r3, [r0, #0xac] + add r0, r2, #0x900 + ldrsh r2, [r0, #0x8c] + add r0, r3, #0xfc + lsl r0, r0, #0x10 + add r0, r2, r0, asr #16 + lsl r0, r0, #0x10 + asr r4, r0, #0x10 + mov r0, r4 + bl FUN_0208FEA4 + movs r6, r1 + movne r5, #2 + mov r0, r4 + mov r1, #6 + moveq r5, #0 + bl FUN_0208FEA4 + add r0, r6, r0, lsl #3 + add r0, r0, r5 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_023352E8: .4byte 0x0233C1A0 + arm_func_end ov01_02335280 +_023352EC: + .byte 0x0C, 0x10, 0x9F, 0xE5 + .byte 0x0C, 0xC0, 0x9F, 0xE5, 0x04, 0x10, 0x91, 0xE5, 0x90, 0x19, 0x91, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0xA0, 0xC1, 0x33, 0x02, 0x50, 0x4E, 0x33, 0x02, 0x0C, 0x10, 0x9F, 0xE5, 0x0C, 0xC0, 0x9F, 0xE5 + .byte 0x04, 0x10, 0x91, 0xE5, 0x94, 0x19, 0x91, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0xA0, 0xC1, 0x33, 0x02 + .byte 0x50, 0x4E, 0x33, 0x02 + + arm_func_start ov01_02335324 +ov01_02335324: @ 0x02335324 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x54 + mov r4, r1 + mov r7, r0 + mov r0, r4 + mov r6, r2 + bl ov01_02334B94 + cmp r0, #0 + beq _0233535C + cmp r0, #1 + beq _0233554C + cmp r0, #2 + beq _0233555C + b _023355B8 +_0233535C: + asr r0, r4, #2 + lsr r2, r4, #0x1f + add r0, r4, r0, lsr #29 + rsb r1, r2, r4, lsl #29 + asr r3, r0, #3 + add r1, r2, r1, ror #29 + mov r0, #6 + mla r5, r3, r0, r1 + cmp r5, #0xfc + bge _0233540C + ldr r0, _023355C4 @ =0x0233C1A0 + lsl r1, r5, #1 + ldr r0, [r0] + ldrh r0, [r0, r1] + bl FUN_020258C4 + mov r4, r0 + mov r0, r6 + mov r1, r4 + bl ov01_02334BD8 + cmp r0, #0 + bne _023353F8 + ldr r0, _023355C4 @ =0x0233C1A0 + lsl r1, r5, #1 + ldr r0, [r0] + ldrh r0, [r0, r1] + cmp r0, #1 + bne _023353E4 + mov r0, #0xfd + bl FUN_020258C4 + mov r2, r0 + ldr r1, _023355C8 @ =0x0233BAF0 + mov r0, r7 + bl ov01_0233562C + b _023355B8 +_023353E4: + ldr r1, _023355CC @ =0x0233BAF4 + mov r0, r7 + mov r2, r4 + bl ov01_0233562C + b _023355B8 +_023353F8: + ldr r1, _023355C8 @ =0x0233BAF0 + mov r0, r7 + mov r2, r4 + bl ov01_0233562C + b _023355B8 +_0233540C: + ldr r0, _023355C4 @ =0x0233C1A0 + ldr r2, [r0, #4] + add r0, r2, #0x100 + ldrsh r0, [r0, #0xac] + add r1, r0, #0xfc + cmp r5, r1 + bge _02335488 + bl FUN_02025888 + ldr r1, _023355C4 @ =0x0233C1A0 + sub r2, r5, #0xfc + ldr r3, [r1, #4] + lsl r1, r2, #1 + ldr r2, [r3, #0x1b0] + mov r4, r0 + ldrsh r1, [r2, r1] + bl FUN_02052394 + mov r0, r6 + mov r1, r4 + bl ov01_02334BD8 + cmp r0, #0 + bne _02335474 + ldr r1, _023355CC @ =0x0233BAF4 + mov r0, r7 + mov r2, r4 + bl ov01_0233562C + b _023355B8 +_02335474: + ldr r1, _023355C8 @ =0x0233BAF0 + mov r0, r7 + mov r2, r4 + bl ov01_0233562C + b _023355B8 +_02335488: + add r0, r2, #0x900 + ldrsh r0, [r0, #0x8c] + add r0, r1, r0 + cmp r5, r0 + bge _023355B8 + sub r0, r5, r1 + add r0, r2, r0, lsl #1 + add r0, r0, #0x100 + ldrsh r1, [r0, #0xbc] + add r0, sp, #0 + mov r2, #0 + bl FUN_0200D214 + ldrb r0, [sp] + mov r4, #0 + cmp r0, #0x5b + bne _02335508 + mov r2, r4 + add r1, sp, #0 + b _02335500 +_023354D4: + ldrb r0, [r1, r2] + cmp r0, #0 + beq _02335508 + cmp r0, #0x5d + addeq r0, r2, #1 + lsleq r0, r0, #0x10 + asreq r4, r0, #0x10 + beq _02335508 + add r0, r2, #1 + lsl r0, r0, #0x10 + asr r2, r0, #0x10 +_02335500: + cmp r2, #0x51 + blt _023354D4 +_02335508: + add r1, sp, #0 + mov r0, r6 + add r1, r1, r4 + bl ov01_02334BD8 + cmp r0, #0 + add r2, sp, #0 + bne _02335538 + ldr r1, _023355CC @ =0x0233BAF4 + mov r0, r7 + add r2, r2, r4 + bl ov01_0233562C + b _023355B8 +_02335538: + ldr r1, _023355C8 @ =0x0233BAF0 + mov r0, r7 + add r2, r2, r4 + bl ov01_0233562C + b _023355B8 +_0233554C: + ldr r1, _023355D0 @ =0x00000102 + mov r0, r7 + bl FUN_020258B8 + b _023355B8 +_0233555C: + ldr r0, _023355C4 @ =0x0233C1A0 + ldr r1, [r0, #4] + ldr r0, [r1, #0x990] + ldr r0, [r0, #0xc] + cmp r0, #0 + ldrgt r0, [r1, #0x994] + ldrgt r0, [r0, #0xc] + cmpgt r0, #0 + ble _02335590 + ldr r1, _023355D4 @ =0x00000103 + mov r0, r7 + bl FUN_020258B8 + b _023355B8 +_02335590: + ldr r0, [r1, #8] + cmp r0, #0 + bne _023355AC + ldr r1, _023355D8 @ =0x00000101 + mov r0, r7 + bl FUN_020258B8 + b _023355B8 +_023355AC: + mov r0, r7 + mov r1, #0x100 + bl FUN_020258B8 +_023355B8: + mov r0, r7 + add sp, sp, #0x54 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_023355C4: .4byte 0x0233C1A0 +_023355C8: .4byte 0x0233BAF0 +_023355CC: .4byte 0x0233BAF4 +_023355D0: .4byte 0x00000102 +_023355D4: .4byte 0x00000103 +_023355D8: .4byte 0x00000101 + arm_func_end ov01_02335324 + + arm_func_start ov01_023355DC +ov01_023355DC: @ 0x023355DC + push {r4, lr} + ldr r2, _02335628 @ =0x0233C1A0 + mov r4, r0 + ldr r3, [r2, #4] + ldr r2, [r3, #8] + cmp r2, #0 + bne _02335604 + ldr r2, [r3, #0x990] + bl ov01_02335324 + b _02335620 +_02335604: + cmp r2, #1 + bne _02335618 + ldr r2, [r3, #0x994] + bl ov01_02335324 + b _02335620 +_02335618: + mov r0, #0 + pop {r4, pc} +_02335620: + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_02335628: .4byte 0x0233C1A0 + arm_func_end ov01_023355DC + + arm_func_start ov01_0233562C +ov01_0233562C: @ 0x0233562C + push {r0, r1, r2, r3} + push {r3, lr} + add r2, sp, #0xc + bic r2, r2, #3 + ldr r1, [sp, #0xc] + add r2, r2, #4 + bl FUN_02089544 + pop {r3, lr} + add sp, sp, #0x10 + bx lr + arm_func_end ov01_0233562C + + arm_func_start ov01_02335654 +ov01_02335654: @ 0x02335654 + push {r3, r4, r5, lr} + mov r4, r0 + str r4, [sp] + ldrb r1, [r4] + mov r5, #0 + cmp r1, #0x5b + bne _0233569C + ldr r1, _02335720 @ =0x0233BB04 + bl FUN_0208982C + cmp r0, #0 + beq _02335694 + ldr r1, _02335724 @ =0x0233BB0C + mov r0, r4 + bl FUN_0208982C + cmp r0, #0 + bne _0233569C +_02335694: + mov r0, #1 + pop {r3, r4, r5, pc} +_0233569C: + add r4, sp, #0 + b _02335708 +_023356A4: + mov r0, r4 + bl FUN_0202065C + cmp r0, #0x5b + bne _02335704 + ldr r1, [sp] + ldrb r0, [r1] + cmp r0, #0x46 + ldrbeq r0, [r1, #1] + cmpeq r0, #0x3a + bne _023356E8 + add r1, r1, #3 + b _023356D8 +_023356D4: + add r1, r1, #1 +_023356D8: + ldrb r0, [r1] + cmp r0, #0x5d + bne _023356D4 + b _02335704 +_023356E8: + mov r0, r4 + bl FUN_0202065C + cmp r0, #0 + beq _02335708 + cmp r0, #0x5d + bne _023356E8 + b _02335708 +_02335704: + add r5, r5, #1 +_02335708: + ldr r0, [sp] + ldrb r0, [r0] + cmp r0, #0 + bne _023356A4 + mov r0, r5 + pop {r3, r4, r5, pc} + .align 2, 0 +_02335720: .4byte 0x0233BB04 +_02335724: .4byte 0x0233BB0C + arm_func_end ov01_02335654 + + arm_func_start ov01_02335728 +ov01_02335728: @ 0x02335728 + push {r3, r4, r5, lr} + mov r5, r0 + mov r0, #0x20 + mov r1, #8 + bl FUN_02001170 + mov r4, r0 + lsl r0, r5, #8 + mov r1, #8 + bl FUN_02001170 + str r0, [r4] + lsl r0, r5, #1 + mov r1, #8 + bl FUN_02001170 + str r0, [r4, #8] + lsl r0, r5, #2 + mov r1, #8 + bl FUN_02001170 + mov r3, #0 + str r0, [r4, #4] + mov r2, r3 + b _0233579C +_0233577C: + ldr r1, [r4] + lsl r0, r3, #1 + strb r2, [r1, r3, lsl #8] + ldr r1, [r4, #8] + strh r2, [r1, r0] + ldr r0, [r4, #4] + str r2, [r0, r3, lsl #2] + add r3, r3, #1 +_0233579C: + cmp r3, r5 + blt _0233577C + mov r1, #0 + str r1, [r4, #0xc] + str r5, [r4, #0x10] + str r1, [r4, #0x18] + str r5, [r4, #0x1c] + mov r0, r4 + str r1, [r4, #0x14] + pop {r3, r4, r5, pc} + arm_func_end ov01_02335728 + + arm_func_start ov01_023357C4 +ov01_023357C4: @ 0x023357C4 + push {r4, lr} + mov r4, r0 + ldr r0, [r4] + cmp r0, #0 + popeq {r4, pc} + ldr r0, [r0] + bl FUN_02001188 + ldr r0, [r4] + ldr r0, [r0, #8] + bl FUN_02001188 + ldr r0, [r4] + ldr r0, [r0, #4] + bl FUN_02001188 + ldr r0, [r4] + bl FUN_02001188 + mov r0, #0 + str r0, [r4] + pop {r4, pc} + arm_func_end ov01_023357C4 + + arm_func_start ov01_0233580C +ov01_0233580C: @ 0x0233580C + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r0, #0xe8 + mov r1, #8 + mov r4, r2 + bl FUN_02001170 + ldr r2, _02335844 @ =0x0233C1A8 + mov r1, r4 + str r0, [r2] + str r6, [r0, #0xd8] + mov r0, r5 + bl ov01_02335930 + pop {r4, r5, r6, pc} + .align 2, 0 +_02335844: .4byte 0x0233C1A8 + arm_func_end ov01_0233580C + + arm_func_start ov01_02335848 +ov01_02335848: @ 0x02335848 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov r7, r0 + mov sl, r1 + mov r0, #0xe8 + mov r1, #8 + mov fp, r2 + mov r4, r3 + bl FUN_02001170 + mov r5, #0 + ldr r1, _0233592C @ =0x0233C1A8 + mov r2, #0x3e8 + str r0, [r1] + str r7, [r0, #0xd8] + mov r0, r4 + asr r1, r4, #0x1f + mov r3, r5 + mov r6, #0x64 + mov sb, r5 + bl FUN_0208FE48 + mov r7, r0 + mov r8, r1 + mov r4, r5 + b _0233590C +_023358A4: + mov r0, r7 + mov r1, r8 + mov r2, r6 + mov r3, sb + bl FUN_0208FE3C + ldr r1, _0233592C @ =0x0233C1A8 + mov r3, sb + ldr r2, [r1] + mov r1, r8 + add r2, r2, r5 + strb r0, [r2, #0xe0] + mov r0, r7 + mov r2, r6 + bl FUN_0208FE48 + mov r7, r0 + mov r8, r1 + mov r0, r6 + mov r1, sb + mov r2, #0xa + mov r3, #0 + bl FUN_0208FE3C + mov r6, r0 + add r0, r5, #1 + lsl r0, r0, #0x10 + mov sb, r1 + asr r5, r0, #0x10 +_0233590C: + mov r0, #0 + cmp sb, r0 + cmpeq r6, r4 + bne _023358A4 + mov r0, sl + mov r1, fp + bl ov01_02335930 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0233592C: .4byte 0x0233C1A8 + arm_func_end ov01_02335848 + + arm_func_start ov01_02335930 +ov01_02335930: @ 0x02335930 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x208 + ldr r7, _02335F58 @ =0x0233C1A8 + ldr r2, [r7] + ldr r2, [r2, #0xd8] + cmp r2, #4 + addls pc, pc, r2, lsl #2 + b _02335AE8 +_02335950: @ jump table + b _02335AE8 @ case 0 + b _02335AE8 @ case 1 + b _02335AE8 @ case 2 + b _02335964 @ case 3 + b _02335A24 @ case 4 +_02335964: + mov r4, #0xc + ldr r8, _02335F5C @ =0x0233BC14 + mov sb, #0 + mov r2, #4 + mov r3, #0xe + mov sl, r4 +_0233597C: + smulbb r5, sb, sl + ldr r6, [r8, sb, lsl #2] + ldr fp, [r7] + add r5, r5, #6 + add fp, fp, r6, lsl #3 + strh r5, [fp, #0x16] + ldr fp, [r7] + add r5, sb, #1 + add sb, fp, r6, lsl #3 + strh r2, [sb, #0x18] + ldr sb, [r7] + lsl r5, r5, #0x10 + add sb, sb, r6, lsl #3 + strh r4, [sb, #0x1a] + ldr fp, [r7] + asr sb, r5, #0x10 + add r5, fp, r6, lsl #3 + strh r3, [r5, #0x1c] + cmp sb, #4 + blt _0233597C + ldr r5, _02335F5C @ =0x0233BC14 + ldr r6, _02335F58 @ =0x0233C1A8 + mov r3, #0 +_023359D8: + ldr r4, [r5, r2, lsl #2] + ldr r7, [r6] + add r2, r2, #1 + add r7, r7, r4, lsl #3 + strh r3, [r7, #0x16] + ldr r7, [r6] + lsl r2, r2, #0x10 + add r7, r7, r4, lsl #3 + strh r3, [r7, #0x18] + ldr r7, [r6] + asr r2, r2, #0x10 + add r7, r7, r4, lsl #3 + strh r3, [r7, #0x1a] + ldr r7, [r6] + cmp r2, #0xc + add r4, r7, r4, lsl #3 + strh r3, [r4, #0x1c] + blt _023359D8 + b _02335B60 +_02335A24: + mov sb, #0xc + ldr r3, _02335F5C @ =0x0233BC14 + mov r5, #0 + mov r4, #4 + mov r8, #0xe + mov r6, sb +_02335A3C: + add r2, r5, #5 + mul fp, r2, r6 + ldr r2, [r3, r5, lsl #2] + ldr sl, [r7] + add fp, fp, #0x1e + add sl, sl, r2, lsl #3 + strh fp, [sl, #0x16] + ldr sl, [r7] + add r5, r5, #1 + add sl, sl, r2, lsl #3 + strh r4, [sl, #0x18] + ldr sl, [r7] + lsl r5, r5, #0x10 + add sl, sl, r2, lsl #3 + strh sb, [sl, #0x1a] + ldr sl, [r7] + asr r5, r5, #0x10 + add r2, sl, r2, lsl #3 + strh r8, [r2, #0x1c] + cmp r5, #4 + blt _02335A3C + ldr r5, _02335F5C @ =0x0233BC14 + ldr r6, _02335F58 @ =0x0233C1A8 + mov r2, #0 +_02335A9C: + ldr r3, [r5, r4, lsl #2] + ldr r7, [r6] + add r4, r4, #1 + add r7, r7, r3, lsl #3 + strh r2, [r7, #0x16] + ldr r7, [r6] + lsl r4, r4, #0x10 + add r7, r7, r3, lsl #3 + strh r2, [r7, #0x18] + ldr r7, [r6] + asr r4, r4, #0x10 + add r7, r7, r3, lsl #3 + strh r2, [r7, #0x1a] + ldr r7, [r6] + cmp r4, #0xc + add r3, r7, r3, lsl #3 + strh r2, [r3, #0x1c] + blt _02335A9C + b _02335B60 +_02335AE8: + mov r8, #0xc + ldr r3, _02335F5C @ =0x0233BC14 + ldr r6, _02335F58 @ =0x0233C1A8 + mov r4, #0 + mov sb, #4 + mov r7, #0xe + mov r5, r8 +_02335B04: + asr r2, r4, #1 + add r2, r4, r2, lsr #30 + add r2, r4, r2, asr #2 + mul fp, r2, r5 + ldr r2, [r3, r4, lsl #2] + ldr sl, [r6] + add fp, fp, #6 + add sl, sl, r2, lsl #3 + strh fp, [sl, #0x16] + ldr sl, [r6] + add r4, r4, #1 + add sl, sl, r2, lsl #3 + strh sb, [sl, #0x18] + ldr sl, [r6] + lsl r4, r4, #0x10 + add sl, sl, r2, lsl #3 + strh r8, [sl, #0x1a] + ldr sl, [r6] + asr r4, r4, #0x10 + add r2, sl, r2, lsl #3 + strh r7, [r2, #0x1c] + cmp r4, #0xc + blt _02335B04 +_02335B60: + ldr r4, _02335F60 @ =0x0233BC44 + ldr r6, _02335F58 @ =0x0233C1A8 + mov r5, #0 + mov r2, #0xc + mov r8, #0xe +_02335B74: + ldr r3, [r4, r5, lsl #2] + ldr r7, [r6] + lsl sb, r5, #4 + add sb, sb, #0x10 + add r7, r7, r3, lsl #3 + strh sb, [r7, #0x16] + ldr r7, [r6] + add r5, r5, #1 + add r7, r7, r3, lsl #3 + strh r2, [r7, #0x18] + ldr r7, [r6] + lsl r5, r5, #0x10 + add r7, r7, r3, lsl #3 + strh r2, [r7, #0x1a] + ldr r7, [r6] + asr r5, r5, #0x10 + add r3, r7, r3, lsl #3 + strh r8, [r3, #0x1c] + cmp r5, #0xb + blt _02335B74 + ldr r4, _02335F58 @ =0x0233C1A8 + mov r5, #0x24 + ldr r3, [r4] + mov r2, #0 + strh r5, [r3, #0xca] + ldr r5, [r4] + mov r6, #0xa + ldrsh r3, [r5, #0xc8] + sub r3, r3, #9 + strh r3, [r5, #0xc8] + ldr r5, [r4] + ldrsh r3, [r5, #0xc6] + strh r3, [r5, #0xce] + ldr r5, [r4] + ldrsh r3, [r5, #0xc8] + add r3, r3, #0x10 + strh r3, [r5, #0xd0] + ldr r5, [r4] + ldrsh r3, [r5, #0xca] + strh r3, [r5, #0xd2] + ldr r5, [r4] + ldrsh r3, [r5, #0xcc] + strh r3, [r5, #0xd4] +_02335C20: + add r3, r2, #1 + ldr r5, [r4] + lsl r3, r3, #0x10 + add r5, r5, r2 + asr r2, r3, #0x10 + strb r6, [r5, #8] + cmp r2, #0xc + blt _02335C20 + ldr r2, _02335F64 @ =0xD4A51000 + cmp r1, #0xe8 + cmpeq r0, r2 + beq _02335D2C + ldr r2, _02335F58 @ =0x0233C1A8 + ldr r2, [r2] + ldr r2, [r2, #0xd8] + cmp r2, #4 + addls pc, pc, r2, lsl #2 + b _02335C88 +_02335C68: @ jump table + b _02335C88 @ case 0 + b _02335C88 @ case 1 + b _02335C88 @ case 2 + b _02335C7C @ case 3 + b _02335C7C @ case 4 +_02335C7C: + mov r5, #0x3e8 + mov sb, #0 + b _02335C90 +_02335C88: + ldr r5, _02335F68 @ =0x4876E800 + mov sb, #0x17 +_02335C90: + mov r4, #0xa + umull r2, r3, r5, r4 + mla r3, sb, r4, r3 + mov r7, #0 + bl FUN_0208FE48 + mov r6, r0 + mov r8, r1 + ldr sl, _02335F58 @ =0x0233C1A8 + mov fp, r7 + mov r4, r7 + b _02335D20 +_02335CBC: + mov r0, r6 + mov r1, r8 + mov r2, r5 + mov r3, sb + bl FUN_0208FE3C + ldr r2, [sl] + mov r1, r8 + add r2, r2, r7 + strb r0, [r2, #8] + mov r0, r6 + mov r2, r5 + mov r3, sb + bl FUN_0208FE48 + mov r6, r0 + mov r8, r1 + mov r0, r5 + mov r1, sb + mov r2, #0xa + mov r3, #0 + bl FUN_0208FE3C + mov r5, r0 + add r0, r7, #1 + lsl r0, r0, #0x10 + mov sb, r1 + asr r7, r0, #0x10 +_02335D20: + cmp sb, fp + cmpeq r5, r4 + bne _02335CBC +_02335D2C: + ldr r0, _02335F58 @ =0x0233C1A8 + mov r4, #0 + ldr r2, [r0] + ldr r1, _02335F6C @ =0x0233CA70 + strb r4, [r2, #0x15] + ldr r3, [r0] + sub r2, r4, #1 + strb r4, [r3, #0x14] + ldr r3, [r0] + ldr r0, _02335F70 @ =0x0233BB58 + str r4, [r3, #0xdc] + str r2, [r1] + str r2, [r1, #4] + bl FUN_0202F0B0 + ldr r2, _02335F58 @ =0x0233C1A8 + mov r1, #0x104 + ldr r2, [r2] + strb r0, [r2] + add r0, sp, #8 + bl FUN_020258B8 + ldr r0, _02335F58 @ =0x0233C1A8 + ldr r1, _02335F74 @ =0x00000404 + ldr r0, [r0] + add r2, sp, #8 + ldrsb r0, [r0] + mov r3, r4 + bl FUN_0202F23C + ldr r0, _02335F58 @ =0x0233C1A8 + ldr r0, [r0] + ldr r0, [r0, #0xd8] + cmp r0, #4 + addls pc, pc, r0, lsl #2 + b _02335E1C +_02335DB0: @ jump table + b _02335E1C @ case 0 + b _02335E1C @ case 1 + b _02335E1C @ case 2 + b _02335DC4 @ case 3 + b _02335DF0 @ case 4 +_02335DC4: + mov r2, r4 + str r2, [sp] + ldr r0, _02335F78 @ =0x0233BB48 + ldr r3, _02335F7C @ =ov01_02336664 + mov r1, #0x400000 + str r2, [sp, #4] + bl FUN_020305B4 + ldr r1, _02335F58 @ =0x0233C1A8 + ldr r1, [r1] + strb r0, [r1, #1] + b _02335E44 +_02335DF0: + mov r2, r4 + str r2, [sp] + ldr r0, _02335F80 @ =0x0233BB18 + ldr r3, _02335F84 @ =ov01_02336730 + mov r1, #0x400000 + str r2, [sp, #4] + bl FUN_020305B4 + ldr r1, _02335F58 @ =0x0233C1A8 + ldr r1, [r1] + strb r0, [r1, #1] + b _02335E44 +_02335E1C: + mov r2, #0 + str r2, [sp] + ldr r0, _02335F80 @ =0x0233BB18 + ldr r3, _02335F88 @ =ov01_02336540 + mov r1, #0x400000 + str r2, [sp, #4] + bl FUN_020305B4 + ldr r1, _02335F58 @ =0x0233C1A8 + ldr r1, [r1] + strb r0, [r1, #1] +_02335E44: + mov r2, #0 + str r2, [sp] + ldr r0, _02335F8C @ =0x0233BB68 + ldr r3, _02335F90 @ =ov01_02336890 + mov r1, #0x400000 + str r2, [sp, #4] + bl FUN_020305B4 + ldr r1, _02335F58 @ =0x0233C1A8 + ldr r1, [r1] + strb r0, [r1, #2] + ldr r0, _02335F94 @ =0x0233BB78 + bl FUN_0202F0B0 + ldr r1, _02335F58 @ =0x0233C1A8 + ldr r2, [r1] + strb r0, [r2, #3] + ldr r3, [r1] + ldr r0, [r3, #0xd8] + cmp r0, #4 + addls pc, pc, r0, lsl #2 + b _02335EF8 +_02335E94: @ jump table + b _02335EA8 @ case 0 + b _02335EB8 @ case 1 + b _02335EC8 @ case 2 + b _02335ED8 @ case 3 + b _02335EE8 @ case 4 +_02335EA8: + ldr r1, _02335F98 @ =0x00000105 + add r0, sp, #8 + bl FUN_020258B8 + b _02335F0C +_02335EB8: + ldr r1, _02335F9C @ =0x00000106 + add r0, sp, #8 + bl FUN_020258B8 + b _02335F0C +_02335EC8: + ldr r1, _02335FA0 @ =0x00000109 + add r0, sp, #8 + bl FUN_020258B8 + b _02335F0C +_02335ED8: + ldr r1, _02335FA4 @ =0x00000107 + add r0, sp, #8 + bl FUN_020258B8 + b _02335F0C +_02335EE8: + add r0, sp, #8 + mov r1, #0x108 + bl FUN_020258B8 + b _02335F0C +_02335EF8: + ldr r1, _02335F98 @ =0x00000105 + mov r2, #0 + add r0, sp, #8 + str r2, [r3, #0xd8] + bl FUN_020258B8 +_02335F0C: + ldr r0, _02335F58 @ =0x0233C1A8 + ldr r1, _02335F74 @ =0x00000404 + ldr r0, [r0] + add r2, sp, #8 + ldrsb r0, [r0, #3] + mov r3, #0 + bl FUN_0202F23C + ldr r1, _02335F58 @ =0x0233C1A8 + mov r4, #0 + ldr r0, [r1] + sub r2, r4, #1 + str r4, [r0, #4] + ldr r3, [r1] + mov r0, #1 + str r4, [r3, #0xdc] + ldr r1, [r1] + strh r2, [r1, #0xe4] + add sp, sp, #0x208 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02335F58: .4byte 0x0233C1A8 +_02335F5C: .4byte 0x0233BC14 +_02335F60: .4byte 0x0233BC44 +_02335F64: .4byte 0xD4A51000 +_02335F68: .4byte 0x4876E800 +_02335F6C: .4byte 0x0233CA70 +_02335F70: .4byte 0x0233BB58 +_02335F74: .4byte 0x00000404 +_02335F78: .4byte 0x0233BB48 +_02335F7C: .4byte ov01_02336664 +_02335F80: .4byte 0x0233BB18 +_02335F84: .4byte ov01_02336730 +_02335F88: .4byte ov01_02336540 +_02335F8C: .4byte 0x0233BB68 +_02335F90: .4byte ov01_02336890 +_02335F94: .4byte 0x0233BB78 +_02335F98: .4byte 0x00000105 +_02335F9C: .4byte 0x00000106 +_02335FA0: .4byte 0x00000109 +_02335FA4: .4byte 0x00000107 + arm_func_end ov01_02335930 + + arm_func_start ov01_02335FA8 +ov01_02335FA8: @ 0x02335FA8 + push {r3, lr} + ldr r0, _02336010 @ =0x0233C1A8 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + ldrsb r0, [r0] + bl FUN_0202F148 + ldr r0, _02336010 @ =0x0233C1A8 + ldr r0, [r0] + ldrsb r0, [r0, #1] + bl FUN_020308A0 + ldr r0, _02336010 @ =0x0233C1A8 + ldr r0, [r0] + ldrsb r0, [r0, #2] + bl FUN_020308A0 + ldr r0, _02336010 @ =0x0233C1A8 + ldr r0, [r0] + ldrsb r0, [r0, #3] + bl FUN_0202F148 + ldr r0, _02336010 @ =0x0233C1A8 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _02336010 @ =0x0233C1A8 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_02336010: .4byte 0x0233C1A8 + arm_func_end ov01_02335FA8 +_02336014: + .byte 0xF8, 0x4F, 0x2D, 0xE9, 0x08, 0xD0, 0x4D, 0xE2, 0x10, 0x05, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x90, 0xE5, 0x04, 0x10, 0x92, 0xE5, 0x04, 0x00, 0x51, 0xE3, 0x01, 0xF1, 0x8F, 0x90 + .byte 0x3C, 0x01, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA, 0xB5, 0x00, 0x00, 0xEA, 0x14, 0x01, 0x00, 0xEA + .byte 0x33, 0x01, 0x00, 0xEA, 0x35, 0x01, 0x00, 0xEA, 0xD8, 0x00, 0x92, 0xE5, 0x04, 0x00, 0x50, 0xE3 + .byte 0x00, 0xF1, 0x8F, 0x90, 0x22, 0x00, 0x00, 0xEA, 0x21, 0x00, 0x00, 0xEA, 0x20, 0x00, 0x00, 0xEA + .byte 0x1F, 0x00, 0x00, 0xEA, 0x0F, 0x00, 0x00, 0xEA, 0xFF, 0xFF, 0xFF, 0xEA, 0x34, 0x02, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0xB4, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x28, 0x01, 0x00, 0x0A, 0xA8, 0x04, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x00, 0xD0, 0xE1 + .byte 0xA6, 0x01, 0x00, 0xEB, 0x98, 0x04, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1 + .byte 0xFA, 0x01, 0x00, 0xEB, 0x1F, 0x01, 0x00, 0xEA, 0x25, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x02, 0x00, 0x00, 0x1A, 0xA5, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x19, 0x01, 0x00, 0x0A + .byte 0x6C, 0x04, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x00, 0xD0, 0xE1, 0x64, 0x01, 0x00, 0xEB + .byte 0x5C, 0x04, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0xEB, 0x01, 0x00, 0xEB + .byte 0x10, 0x01, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3, 0x06, 0x10, 0x8D, 0xE2, 0xB6, 0x00, 0xCD, 0xE1 + .byte 0xB4, 0x00, 0xCD, 0xE1, 0xB2, 0x00, 0xCD, 0xE1, 0xB0, 0x00, 0xCD, 0xE1, 0x56, 0x40, 0xF3, 0xEB + .byte 0x04, 0x10, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xB9, 0x40, 0xF3, 0xEB, 0x02, 0x10, 0x8D, 0xE2 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x78, 0x40, 0xF3, 0xEB, 0x00, 0x10, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x31, 0x40, 0xF3, 0xEB, 0xB6, 0x00, 0xDD, 0xE1, 0x02, 0x00, 0x10, 0xE3, 0x02, 0x00, 0x00, 0x0A + .byte 0xE1, 0x03, 0x00, 0xEB, 0x01, 0x20, 0xA0, 0xE3, 0x67, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x10, 0xE3 + .byte 0x02, 0x00, 0x00, 0x0A, 0xB2, 0x03, 0x00, 0xEB, 0x01, 0x20, 0xA0, 0xE3, 0x62, 0x00, 0x00, 0xEA + .byte 0x08, 0x00, 0x10, 0xE3, 0x07, 0x00, 0x00, 0x0A, 0x00, 0x00, 0xA0, 0xE3, 0xDA, 0x86, 0xF3, 0xEB + .byte 0xCC, 0x03, 0x9F, 0xE5, 0x0B, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x20, 0xA0, 0xE3 + .byte 0x14, 0x10, 0xC0, 0xE5, 0x58, 0x00, 0x00, 0xEA, 0xB4, 0x00, 0xDD, 0xE1, 0x20, 0x00, 0x10, 0xE3 + .byte 0x01, 0x00, 0x00, 0x1A, 0x40, 0x00, 0x10, 0xE3, 0x26, 0x00, 0x00, 0x0A, 0xB0, 0x00, 0xDD, 0xE1 + .byte 0x01, 0x0C, 0x10, 0xE3, 0x15, 0x00, 0x00, 0x0A, 0x94, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD5, 0x01, 0xD0, 0xE1, 0x01, 0x00, 0x40, 0xE2, 0x00, 0x0C, 0xA0, 0xE1, 0x40, 0x4C, 0xB0, 0xE1 + .byte 0x0B, 0x40, 0xA0, 0x43, 0x04, 0x00, 0xA0, 0xE1, 0xED, 0x03, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x03, 0x00, 0x00, 0x1A, 0x02, 0x00, 0xA0, 0xE3, 0xBF, 0x86, 0xF3, 0xEB, 0x00, 0x20, 0xA0, 0xE3 + .byte 0x41, 0x00, 0x00, 0xEA, 0x58, 0x13, 0x9F, 0xE5, 0x03, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0x91, 0xE5 + .byte 0x15, 0x40, 0xC1, 0xE5, 0xB8, 0x86, 0xF3, 0xEB, 0x01, 0x20, 0xA0, 0xE3, 0x3A, 0x00, 0x00, 0xEA + .byte 0x03, 0x00, 0xA0, 0xE3, 0xB4, 0x86, 0xF3, 0xEB, 0x34, 0x03, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5 + .byte 0xD4, 0x11, 0xD2, 0xE1, 0x01, 0x10, 0x41, 0xE2, 0x14, 0x10, 0xC2, 0xE5, 0x00, 0x10, 0x90, 0xE5 + .byte 0x01, 0x20, 0xA0, 0xE3, 0xD4, 0x01, 0xD1, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x0B, 0x00, 0xA0, 0xB3 + .byte 0x14, 0x00, 0xC1, 0xB5, 0x2C, 0x00, 0x00, 0xEA, 0x10, 0x00, 0x10, 0xE3, 0x01, 0x00, 0x00, 0x1A + .byte 0x80, 0x00, 0x10, 0xE3, 0x27, 0x00, 0x00, 0x0A, 0xB0, 0x00, 0xDD, 0xE1, 0x01, 0x0C, 0x10, 0xE3 + .byte 0x16, 0x00, 0x00, 0x0A, 0xE8, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD5, 0x01, 0xD0, 0xE1 + .byte 0x01, 0x00, 0x80, 0xE2, 0x00, 0x0C, 0xA0, 0xE1, 0x40, 0x4C, 0xA0, 0xE1, 0x0C, 0x00, 0x54, 0xE3 + .byte 0x00, 0x40, 0xA0, 0xA3, 0x04, 0x00, 0xA0, 0xE1, 0xC1, 0x03, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x03, 0x00, 0x00, 0x1A, 0x02, 0x00, 0xA0, 0xE3, 0x93, 0x86, 0xF3, 0xEB, 0x00, 0x20, 0xA0, 0xE3 + .byte 0x15, 0x00, 0x00, 0xEA, 0xA8, 0x12, 0x9F, 0xE5, 0x03, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0x91, 0xE5 + .byte 0x15, 0x40, 0xC1, 0xE5, 0x8C, 0x86, 0xF3, 0xEB, 0x01, 0x20, 0xA0, 0xE3, 0x0E, 0x00, 0x00, 0xEA + .byte 0x03, 0x00, 0xA0, 0xE3, 0x88, 0x86, 0xF3, 0xEB, 0x84, 0x02, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5 + .byte 0xD4, 0x11, 0xD2, 0xE1, 0x01, 0x10, 0x81, 0xE2, 0x14, 0x10, 0xC2, 0xE5, 0x00, 0x10, 0x90, 0xE5 + .byte 0x01, 0x20, 0xA0, 0xE3, 0xD4, 0x01, 0xD1, 0xE1, 0x0C, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0xA3 + .byte 0x14, 0x00, 0xC1, 0xA5, 0x00, 0x00, 0x00, 0xEA, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x00, 0x52, 0xE3 + .byte 0x02, 0x00, 0x00, 0x1A, 0x19, 0x02, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x8D, 0x00, 0x00, 0x0A + .byte 0x3C, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x00, 0xD0, 0xE1, 0x8F, 0x00, 0x00, 0xEB + .byte 0x2C, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x5F, 0x01, 0x00, 0xEB + .byte 0x84, 0x00, 0x00, 0xEA, 0xF4, 0x1E, 0xD2, 0xE1, 0x00, 0x00, 0x51, 0xE3, 0x05, 0x00, 0x00, 0xBA + .byte 0x01, 0x10, 0x81, 0xE2, 0xB4, 0x1E, 0xC2, 0xE1, 0x00, 0x20, 0x90, 0xE5, 0xF4, 0x0E, 0xD2, 0xE1 + .byte 0x06, 0x00, 0x50, 0xE3, 0x7B, 0x00, 0x00, 0xBA, 0xD0, 0x00, 0xD2, 0xE1, 0xFC, 0xE3, 0xF3, 0xEB + .byte 0xEC, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD3, 0x00, 0xD0, 0xE1, 0xF8, 0xE3, 0xF3, 0xEB + .byte 0xDC, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x00, 0xD0, 0xE1, 0x4A, 0xE9, 0xF3, 0xEB + .byte 0xCC, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x46, 0xE9, 0xF3, 0xEB + .byte 0xBC, 0x01, 0x9F, 0xE5, 0x02, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0xB4, 0x21, 0x9F, 0xE5 + .byte 0x04, 0x30, 0x81, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x00, 0x40, 0xA0, 0xE3, 0xD8, 0x30, 0x91, 0xE5 + .byte 0xD3, 0x20, 0x92, 0xE1, 0x06, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x81, 0xE0, 0x08, 0x00, 0xD0, 0xE5 + .byte 0x0A, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x2A, 0x01, 0x00, 0x84, 0xE2, 0x00, 0x08, 0xA0, 0xE1 + .byte 0x40, 0x48, 0xA0, 0xE1, 0x02, 0x00, 0x54, 0xE1, 0xF6, 0xFF, 0xFF, 0xBA, 0x74, 0x61, 0x9F, 0xE5 + .byte 0xD3, 0x00, 0x96, 0xE1, 0x00, 0x00, 0x54, 0xE1, 0x29, 0x00, 0x00, 0xBA, 0x02, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x70, 0xA0, 0xE3, 0xDC, 0x00, 0x81, 0xE5, 0x5C, 0x31, 0x9F, 0xE5, 0x50, 0x01, 0x9F, 0xE5 + .byte 0x00, 0x70, 0x83, 0xE5, 0x04, 0x70, 0x83, 0xE5, 0x07, 0xA0, 0xA0, 0xE1, 0x00, 0x90, 0x90, 0xE5 + .byte 0x01, 0x80, 0xA0, 0xE3, 0x07, 0xB0, 0xA0, 0xE1, 0x0A, 0x20, 0xA0, 0xE3, 0x15, 0x00, 0x00, 0xEA + .byte 0x01, 0x00, 0x40, 0xE2, 0x0A, 0x00, 0x40, 0xE0, 0x00, 0x00, 0x89, 0xE0, 0x08, 0xE0, 0xD0, 0xE5 + .byte 0x98, 0x02, 0x81, 0xE0, 0x98, 0x1B, 0x21, 0xE0, 0xCE, 0xCF, 0xA0, 0xE1, 0x98, 0x5E, 0x84, 0xE0 + .byte 0x98, 0x4C, 0x24, 0xE0, 0x97, 0x4E, 0x24, 0xE0, 0x00, 0x80, 0xA0, 0xE1, 0x00, 0xC0, 0x93, 0xE5 + .byte 0x04, 0x00, 0x93, 0xE5, 0x05, 0x50, 0x9C, 0xE0, 0x04, 0x00, 0xA0, 0xE0, 0x00, 0x50, 0x83, 0xE5 + .byte 0x04, 0x00, 0x83, 0xE5, 0x97, 0x12, 0x21, 0xE0, 0x01, 0x70, 0xA0, 0xE1, 0x01, 0x00, 0x8A, 0xE2 + .byte 0x00, 0x08, 0xA0, 0xE1, 0x40, 0xA8, 0xA0, 0xE1, 0xD8, 0x00, 0x99, 0xE5, 0xD0, 0x00, 0x96, 0xE1 + .byte 0x00, 0x00, 0x5A, 0xE1, 0xE5, 0xFF, 0xFF, 0xBA, 0x00, 0x00, 0xA0, 0xE3, 0x16, 0x86, 0xF3, 0xEB + .byte 0x2C, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0xDC, 0x00, 0x81, 0xE5, 0x12, 0x86, 0xF3, 0xEB + .byte 0xB4, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xE0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x04, 0x10, 0x80, 0xE5 + .byte 0x24, 0x00, 0x00, 0xEA, 0xD0, 0x00, 0xD2, 0xE1, 0x38, 0xE3, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x00, 0x00, 0xA0, 0x13, 0x14, 0x00, 0x00, 0x1A, 0x84, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD1, 0x00, 0xD0, 0xE1, 0x02, 0xE9, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13 + .byte 0x0D, 0x00, 0x00, 0x1A, 0x68, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD3, 0x00, 0xD0, 0xE1 + .byte 0x2A, 0xE3, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x06, 0x00, 0x00, 0x1A + .byte 0x4C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0xF4, 0xE8, 0xF3, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x50, 0xE3 + .byte 0x2C, 0x00, 0x9F, 0x15, 0x03, 0x10, 0xA0, 0x13, 0x00, 0x00, 0x90, 0x15, 0x04, 0x10, 0x80, 0x15 + .byte 0x04, 0x00, 0x00, 0xEA, 0x04, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x82, 0xE5, 0x01, 0x00, 0x00, 0xEA + .byte 0xDC, 0x00, 0x92, 0xE5, 0x00, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3, 0x08, 0xD0, 0x8D, 0xE2 + .byte 0xF8, 0x8F, 0xBD, 0xE8, 0xA8, 0xC1, 0x33, 0x02, 0xA4, 0xBC, 0x33, 0x02, 0x70, 0xCA, 0x33, 0x02 + + arm_func_start ov01_02336540 +ov01_02336540: @ 0x02336540 + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x10 + mov r8, r0 + bl FUN_02027B1C + ldr r5, _02336654 @ =0x0233BBB4 + ldr r4, _02336658 @ =0x0233BC74 + ldr sb, _0233665C @ =0x0233C1A8 + mov r7, #0 + add r6, sp, #0 +_02336564: + ldr r1, [sb] + mov r0, r6 + add r1, r1, r7 + ldrb r1, [r1, #8] + lsl r1, r1, #1 + ldrh r1, [r5, r1] + bl FUN_020258B8 + ldr r2, [r4, r7, lsl #2] + ldr r1, [sb] + mov r0, r8 + add r2, r1, r2, lsl #3 + ldrsh r1, [r2, #0x16] + ldrsh r2, [r2, #0x18] + mov r3, r6 + bl FUN_02026214 + add r0, r7, #1 + lsl r0, r0, #0x10 + asr r7, r0, #0x10 + cmp r7, #0xc + blt _02336564 + ldr r1, _02336660 @ =0x00000117 + add r0, sp, #0 + bl FUN_020258B8 + ldr r0, _0233665C @ =0x0233C1A8 + add r3, sp, #0 + ldr r2, [r0] + mov r0, r8 + ldrsh r1, [r2, #0x2e] + ldrsh r2, [r2, #0x30] + add r1, r1, #0xc + bl FUN_02026214 + ldr r0, _0233665C @ =0x0233C1A8 + add r3, sp, #0 + ldr r2, [r0] + mov r0, r8 + ldrsh r1, [r2, #0x4e] + ldrsh r2, [r2, #0x50] + add r1, r1, #0xc + bl FUN_02026214 + ldr r0, _0233665C @ =0x0233C1A8 + ldr r1, _02336658 @ =0x0233BC74 + ldr r0, [r0] + ldrsb r2, [r0, #0x15] + ldr r0, _0233665C @ =0x0233C1A8 + cmp r2, #0 + movlt r2, #0 + ldr r2, [r1, r2, lsl #2] + ldr r1, [r0] + mov r0, r8 + add r1, r1, r2, lsl #3 + ldrsh r2, [r1, #0x16] + ldrsh r3, [r1, #0x18] + mov r1, #5 + add r2, r2, #2 + add r3, r3, #0x12 + bl FUN_02030978 + mov r0, r8 + bl FUN_02027AF0 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_02336654: .4byte 0x0233BBB4 +_02336658: .4byte 0x0233BC74 +_0233665C: .4byte 0x0233C1A8 +_02336660: .4byte 0x00000117 + arm_func_end ov01_02336540 + + arm_func_start ov01_02336664 +ov01_02336664: @ 0x02336664 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r8, r0 + bl FUN_02027B1C + ldr r5, _02336724 @ =0x0233BB88 + ldr r4, _02336728 @ =0x0233BB28 + ldr sb, _0233672C @ =0x0233C1A8 + mov r7, #0 + add r6, sp, #0 +_02336684: + ldr r1, [sb] + mov r0, r6 + add r1, r1, r7 + ldrb r1, [r1, #8] + lsl r1, r1, #1 + ldrh r1, [r5, r1] + bl FUN_020258B8 + ldr r2, [r4, r7, lsl #2] + ldr r1, [sb] + mov r0, r8 + add r2, r1, r2, lsl #3 + ldrsh r1, [r2, #0x16] + ldrsh r2, [r2, #0x18] + mov r3, r6 + bl FUN_02026214 + add r0, r7, #1 + lsl r0, r0, #0x10 + asr r7, r0, #0x10 + cmp r7, #4 + blt _02336684 + ldr r0, _0233672C @ =0x0233C1A8 + ldr r1, _02336728 @ =0x0233BB28 + ldr r0, [r0] + ldrsb r2, [r0, #0x15] + ldr r0, _0233672C @ =0x0233C1A8 + cmp r2, #0 + movlt r2, #0 + ldr r2, [r1, r2, lsl #2] + ldr r1, [r0] + mov r0, r8 + add r1, r1, r2, lsl #3 + ldrsh r2, [r1, #0x16] + ldrsh r3, [r1, #0x18] + mov r1, #5 + add r2, r2, #2 + add r3, r3, #0x12 + bl FUN_02030978 + mov r0, r8 + bl FUN_02027AF0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_02336724: .4byte 0x0233BB88 +_02336728: .4byte 0x0233BB28 +_0233672C: .4byte 0x0233C1A8 + arm_func_end ov01_02336664 + + arm_func_start ov01_02336730 +ov01_02336730: @ 0x02336730 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r4, r0 + bl FUN_02027B1C + ldr r6, _02336880 @ =0x0233BB9E + ldr r5, _02336884 @ =0x0233BB38 + ldr sb, _02336888 @ =0x0233C1A8 + mov r8, #0 + add r7, sp, #0 +_02336750: + ldr r1, [sb] + mov r0, r7 + add r1, r1, r8 + ldrb r1, [r1, #8] + lsl r1, r1, #1 + ldrh r1, [r6, r1] + bl FUN_020258B8 + ldr r2, [r5, r8, lsl #2] + ldr r1, [sb] + mov r0, r4 + add r2, r1, r2, lsl #3 + ldrsh r1, [r2, #0x16] + ldrsh r2, [r2, #0x18] + mov r3, r7 + bl FUN_02026214 + add r0, r8, #1 + lsl r0, r0, #0x10 + asr r8, r0, #0x10 + cmp r8, #4 + blt _02336750 + ldr r0, _02336888 @ =0x0233C1A8 + ldr r1, _02336884 @ =0x0233BB38 + ldr r0, [r0] + ldrsb r2, [r0, #0x15] + ldr r0, _02336888 @ =0x0233C1A8 + cmp r2, #0 + movlt r2, #0 + ldr r2, [r1, r2, lsl #2] + ldr r1, [r0] + mov r0, r4 + add r1, r1, r2, lsl #3 + ldrsh r2, [r1, #0x16] + ldrsh r3, [r1, #0x18] + mov r1, #5 + add r2, r2, #2 + add r3, r3, #0x12 + bl FUN_02030978 + ldr r1, _0233688C @ =0x00000117 + add r0, sp, #0 + bl FUN_020258B8 + ldr r0, _02336888 @ =0x0233C1A8 + add r3, sp, #0 + ldr r2, [r0] + mov r0, r4 + ldrsh r1, [r2, #0x16] + ldrsh r2, [r2, #0x18] + sub r1, r1, #0xc + bl FUN_02026214 + ldr r5, _02336880 @ =0x0233BB9E + ldr sb, _02336888 @ =0x0233C1A8 + mov r7, #0 + add r6, sp, #0 + mov r8, #0xc +_02336824: + ldr r1, [sb] + mov r0, r6 + add r1, r1, r7 + ldrb r1, [r1, #0xe0] + lsl r1, r1, #1 + ldrh r1, [r5, r1] + bl FUN_020258B8 + ldr r2, [sb] + mov r0, r4 + ldrsh r1, [r2, #0x16] + ldrsh r2, [r2, #0x18] + mov r3, r6 + sub r1, r1, #0x30 + smlabb r1, r7, r8, r1 + bl FUN_02026214 + add r0, r7, #1 + lsl r0, r0, #0x10 + asr r7, r0, #0x10 + cmp r7, #3 + blt _02336824 + mov r0, r4 + bl FUN_02027AF0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_02336880: .4byte 0x0233BB9E +_02336884: .4byte 0x0233BB38 +_02336888: .4byte 0x0233C1A8 +_0233688C: .4byte 0x00000117 + arm_func_end ov01_02336730 + + arm_func_start ov01_02336890 +ov01_02336890: @ 0x02336890 + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x10 + mov r8, r0 + bl FUN_02027B1C + ldr r5, _02336938 @ =0x0233BBCA + ldr r4, _0233693C @ =0x0233BBE4 + ldr sb, _02336940 @ =0x0233C1A8 + mov r7, #0 + add r6, sp, #0 +_023368B4: + lsl r0, r7, #1 + ldrh r1, [r5, r0] + mov r0, r6 + bl FUN_020258B8 + ldr r2, [r4, r7, lsl #2] + ldr r1, [sb] + mov r0, r8 + add r2, r1, r2, lsl #3 + ldrsh r1, [r2, #0x16] + ldrsh r2, [r2, #0x18] + mov r3, r6 + bl FUN_02026214 + add r0, r7, #1 + lsl r0, r0, #0x10 + asr r7, r0, #0x10 + cmp r7, #0xc + blt _023368B4 + ldr r0, _02336940 @ =0x0233C1A8 + ldr r2, _0233693C @ =0x0233BBE4 + ldr r4, [r0] + mov r0, r8 + ldrsb r3, [r4, #0x14] + mov r1, #3 + ldr r2, [r2, r3, lsl #2] + add r3, r4, r2, lsl #3 + ldrsh r2, [r3, #0x16] + ldrsh r3, [r3, #0x18] + sub r2, r2, #8 + bl FUN_02030978 + mov r0, r8 + bl FUN_02027AF0 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_02336938: .4byte 0x0233BBCA +_0233693C: .4byte 0x0233BBE4 +_02336940: .4byte 0x0233C1A8 + arm_func_end ov01_02336890 + + arm_func_start ov01_02336944 +ov01_02336944: @ 0x02336944 + push {r4, lr} + sub sp, sp, #8 + mov r0, #0 + add r1, sp, #6 + strh r0, [sp, #6] + strh r0, [sp, #4] + strh r0, [sp, #2] + strh r0, [sp] + bl FUN_0200625C + add r1, sp, #4 + mov r0, #0 + bl FUN_020063F4 + add r1, sp, #2 + mov r0, #0 + bl FUN_020062FC + add r1, sp, #0 + mov r0, #0 + bl FUN_020061EC + ldrh r0, [sp, #6] + tst r0, #2 + beq _023369A4 + bl ov01_023370BC + mov r0, #1 + b _02336B44 +_023369A4: + tst r0, #1 + beq _023369B8 + bl ov01_02337014 + mov r0, #1 + b _02336B44 +_023369B8: + tst r0, #8 + beq _023369E0 + mov r0, #0 + bl FUN_02017CCC + ldr r0, _02336B4C @ =0x0233C1A8 + mov r2, #0xb + ldr r1, [r0] + mov r0, #1 + strb r2, [r1, #0x14] + b _02336B44 +_023369E0: + ldrh r0, [sp, #4] + tst r0, #0x20 + bne _023369F4 + tst r0, #0x40 + beq _02336A90 +_023369F4: + ldrh r0, [sp] + tst r0, #0x100 + beq _02336A58 + ldr r0, _02336B4C @ =0x0233C1A8 + ldr r0, [r0] + ldrsb r0, [r0, #0x15] + sub r0, r0, #1 + lsl r0, r0, #0x18 + asrs r4, r0, #0x18 + movmi r4, #3 + mov r0, r4 + bl ov01_02337174 + cmp r0, #0 + bne _02336A3C + mov r0, #2 + bl FUN_02017CCC + mov r0, #0 + b _02336B44 +_02336A3C: + ldr r1, _02336B4C @ =0x0233C1A8 + mov r0, #3 + ldr r1, [r1] + strb r4, [r1, #0x15] + bl FUN_02017CCC + mov r0, #1 + b _02336B44 +_02336A58: + mov r0, #3 + bl FUN_02017CCC + ldr r0, _02336B4C @ =0x0233C1A8 + ldr r2, [r0] + ldrsb r1, [r2, #0x14] + sub r1, r1, #1 + strb r1, [r2, #0x14] + ldr r1, [r0] + ldrsb r0, [r1, #0x14] + cmp r0, #0 + movlt r0, #0xb + strblt r0, [r1, #0x14] + mov r0, #1 + b _02336B44 +_02336A90: + tst r0, #0x10 + bne _02336AA0 + tst r0, #0x80 + beq _02336B40 +_02336AA0: + ldrh r0, [sp] + tst r0, #0x100 + beq _02336B08 + ldr r0, _02336B4C @ =0x0233C1A8 + ldr r0, [r0] + ldrsb r0, [r0, #0x15] + add r0, r0, #1 + lsl r0, r0, #0x18 + asr r4, r0, #0x18 + cmp r4, #4 + movge r4, #0 + mov r0, r4 + bl ov01_02337174 + cmp r0, #0 + bne _02336AEC + mov r0, #2 + bl FUN_02017CCC + mov r0, #0 + b _02336B44 +_02336AEC: + ldr r1, _02336B4C @ =0x0233C1A8 + mov r0, #3 + ldr r1, [r1] + strb r4, [r1, #0x15] + bl FUN_02017CCC + mov r0, #1 + b _02336B44 +_02336B08: + mov r0, #3 + bl FUN_02017CCC + ldr r0, _02336B4C @ =0x0233C1A8 + ldr r2, [r0] + ldrsb r1, [r2, #0x14] + add r1, r1, #1 + strb r1, [r2, #0x14] + ldr r1, [r0] + ldrsb r0, [r1, #0x14] + cmp r0, #0xc + movge r0, #0 + strbge r0, [r1, #0x14] + mov r0, #1 + b _02336B44 +_02336B40: + mov r0, #0 +_02336B44: + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_02336B4C: .4byte 0x0233C1A8 + arm_func_end ov01_02336944 + + arm_func_start ov01_02336B50 +ov01_02336B50: @ 0x02336B50 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x2c + ldr r0, _02337008 @ =0x0233C1A8 + ldr r2, [r0] + ldrsh r1, [r2, #0xe4] + cmp r1, #0 + addge r1, r1, #1 + strhge r1, [r2, #0xe4] + ldrge r1, [r0] + ldrshge r0, [r1, #0xe4] + cmpge r0, #6 + mvnge r0, #0 + strhge r0, [r1, #0xe4] + bl FUN_0204AE60 + cmp r0, #0 + moveq r0, #0 + beq _02337000 + add r0, sp, #8 + bl FUN_02006C1C + ldrh r1, [sp, #8] + ldr r0, _0233700C @ =0x00000408 + tst r1, r0 + moveq r0, #0 + beq _02337000 + ldr r0, _02337008 @ =0x0233C1A8 + ldr sb, [r0] + ldrsh r0, [sb, #0xe4] + cmp r0, #0 + movge r0, #0 + bge _02337000 + mov fp, #0x16 + ldr lr, [sp, #0xc] + ldr r8, [sp, #0x10] + mov r4, #0 + mov sl, #0x27 + mov ip, #0x5f + mov r3, fp + b _02336D30 +_02336BE8: + ldr r1, [sb, #0xd8] + sub r0, r1, #3 + cmp r0, #1 + bhi _02336C1C + cmp r4, #4 + cmpne r4, #5 + cmpne r4, #6 + cmpne r4, #7 + cmpne r4, #8 + cmpne r4, #9 + cmpne r4, #0xa + cmpne r4, #0xb + beq _02336D24 +_02336C1C: + cmp r4, #0x17 + addls pc, pc, r4, lsl #2 + b _02336CD8 +_02336C28: @ jump table + b _02336C88 @ case 0 + b _02336C88 @ case 1 + b _02336C88 @ case 2 + b _02336C88 @ case 3 + b _02336C88 @ case 4 + b _02336C88 @ case 5 + b _02336C88 @ case 6 + b _02336C88 @ case 7 + b _02336C88 @ case 8 + b _02336C88 @ case 9 + b _02336C88 @ case 10 + b _02336C88 @ case 11 + b _02336CCC @ case 12 + b _02336CCC @ case 13 + b _02336CCC @ case 14 + b _02336CCC @ case 15 + b _02336CCC @ case 16 + b _02336CCC @ case 17 + b _02336CCC @ case 18 + b _02336CCC @ case 19 + b _02336CCC @ case 20 + b _02336CCC @ case 21 + b _02336CCC @ case 22 + b _02336CCC @ case 23 +_02336C88: + cmp r1, #4 + addls pc, pc, r1, lsl #2 + b _02336CC0 +_02336C94: @ jump table + b _02336CC0 @ case 0 + b _02336CC0 @ case 1 + b _02336CC0 @ case 2 + b _02336CA8 @ case 3 + b _02336CB4 @ case 4 +_02336CA8: + mov r5, ip + mov r6, r3 + b _02336CE0 +_02336CB4: + mov r5, sl + mov r6, fp + b _02336CE0 +_02336CC0: + mov r5, #0x27 + mov r6, #0x16 + b _02336CE0 +_02336CCC: + mov r5, #0xf + mov r6, #0x4e + b _02336CE0 +_02336CD8: + mov r5, #0 + mov r6, r5 +_02336CE0: + add r1, sb, r4, lsl #3 + ldrsh r0, [r1, #0x16] + add r2, r5, r0 + cmp lr, r2 + blt _02336D24 + ldrsh r0, [r1, #0x1a] + add r0, r2, r0 + cmp lr, r0 + bgt _02336D24 + ldrsh r0, [r1, #0x18] + add r0, r6, r0 + cmp r8, r0 + blt _02336D24 + ldrsh r1, [r1, #0x1c] + add r0, r0, r1 + cmp r8, r0 + ble _02336D38 +_02336D24: + add r0, r4, #1 + lsl r0, r0, #0x10 + asr r4, r0, #0x10 +_02336D30: + cmp r4, #0x18 + blt _02336BE8 +_02336D38: + cmp r4, #0x18 + movge r0, #0 + bge _02337000 + mov r1, #0 + strh r1, [sb, #0xe4] + ldr r0, _02337008 @ =0x0233C1A8 + ldr r1, _02337010 @ =0x0233BB14 + ldr r2, [r0] + mov r0, #0x40 + str r1, [sp] + str r0, [sp, #4] + add r3, r2, r4, lsl #3 + ldrsh r1, [r3, #0x16] + ldrsh r0, [r3, #0x18] + ldrsh r2, [r3, #0x1a] + add r5, r5, r1 + add r1, r6, r0 + lsl r0, r5, #0x10 + lsl r1, r1, #0x10 + ldrsh r3, [r3, #0x1c] + asr r0, r0, #0x10 + asr r1, r1, #0x10 + bl FUN_0202A2A4 + cmp r4, #0x17 + addls pc, pc, r4, lsl #2 + b _02336FFC +_02336DA0: @ jump table + b _02336E00 @ case 0 + b _02336E00 @ case 1 + b _02336E00 @ case 2 + b _02336E00 @ case 3 + b _02336E00 @ case 4 + b _02336E00 @ case 5 + b _02336E00 @ case 6 + b _02336E00 @ case 7 + b _02336E00 @ case 8 + b _02336E00 @ case 9 + b _02336E00 @ case 10 + b _02336E00 @ case 11 + b _02336ECC @ case 12 + b _02336ECC @ case 13 + b _02336ECC @ case 14 + b _02336ECC @ case 15 + b _02336ECC @ case 16 + b _02336ECC @ case 17 + b _02336ECC @ case 18 + b _02336ECC @ case 19 + b _02336ECC @ case 20 + b _02336ECC @ case 21 + b _02336ECC @ case 22 + b _02336ECC @ case 23 +_02336E00: + cmp r4, #0xb + addls pc, pc, r4, lsl #2 + b _02336E98 +_02336E0C: @ jump table + b _02336E3C @ case 0 + b _02336E44 @ case 1 + b _02336E4C @ case 2 + b _02336E54 @ case 3 + b _02336E5C @ case 4 + b _02336E64 @ case 5 + b _02336E6C @ case 6 + b _02336E74 @ case 7 + b _02336E7C @ case 8 + b _02336E84 @ case 9 + b _02336E8C @ case 10 + b _02336E94 @ case 11 +_02336E3C: + mov r7, #0 + b _02336E98 +_02336E44: + mov r7, #1 + b _02336E98 +_02336E4C: + mov r7, #2 + b _02336E98 +_02336E54: + mov r7, #3 + b _02336E98 +_02336E5C: + mov r7, #4 + b _02336E98 +_02336E64: + mov r7, #5 + b _02336E98 +_02336E6C: + mov r7, #6 + b _02336E98 +_02336E74: + mov r7, #7 + b _02336E98 +_02336E7C: + mov r7, #8 + b _02336E98 +_02336E84: + mov r7, #9 + b _02336E98 +_02336E8C: + mov r7, #0xa + b _02336E98 +_02336E94: + mov r7, #0xb +_02336E98: + mov r0, r7 + bl ov01_02337174 + cmp r0, #0 + beq _02336EC0 + ldr r1, _02337008 @ =0x0233C1A8 + mov r0, #7 + ldr r1, [r1] + strb r7, [r1, #0x15] + bl FUN_02017CCC + b _02336FFC +_02336EC0: + mov r0, #2 + bl FUN_02017CCC + b _02336FFC +_02336ECC: + sub r0, r4, #0xc + cmp r0, #0xb + addls pc, pc, r0, lsl #2 + b _02336FF8 +_02336EDC: @ jump table + b _02336F0C @ case 0 + b _02336F20 @ case 1 + b _02336F34 @ case 2 + b _02336F48 @ case 3 + b _02336F5C @ case 4 + b _02336F70 @ case 5 + b _02336F84 @ case 6 + b _02336F98 @ case 7 + b _02336FAC @ case 8 + b _02336FC0 @ case 9 + b _02336FD4 @ case 10 + b _02336FE8 @ case 11 +_02336F0C: + ldr r0, _02337008 @ =0x0233C1A8 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x14] + b _02336FF8 +_02336F20: + ldr r0, _02337008 @ =0x0233C1A8 + mov r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x14] + b _02336FF8 +_02336F34: + ldr r0, _02337008 @ =0x0233C1A8 + mov r1, #2 + ldr r0, [r0] + strb r1, [r0, #0x14] + b _02336FF8 +_02336F48: + ldr r0, _02337008 @ =0x0233C1A8 + mov r1, #3 + ldr r0, [r0] + strb r1, [r0, #0x14] + b _02336FF8 +_02336F5C: + ldr r0, _02337008 @ =0x0233C1A8 + mov r1, #4 + ldr r0, [r0] + strb r1, [r0, #0x14] + b _02336FF8 +_02336F70: + ldr r0, _02337008 @ =0x0233C1A8 + mov r1, #5 + ldr r0, [r0] + strb r1, [r0, #0x14] + b _02336FF8 +_02336F84: + ldr r0, _02337008 @ =0x0233C1A8 + mov r1, #6 + ldr r0, [r0] + strb r1, [r0, #0x14] + b _02336FF8 +_02336F98: + ldr r0, _02337008 @ =0x0233C1A8 + mov r1, #7 + ldr r0, [r0] + strb r1, [r0, #0x14] + b _02336FF8 +_02336FAC: + ldr r0, _02337008 @ =0x0233C1A8 + mov r1, #8 + ldr r0, [r0] + strb r1, [r0, #0x14] + b _02336FF8 +_02336FC0: + ldr r0, _02337008 @ =0x0233C1A8 + mov r1, #9 + ldr r0, [r0] + strb r1, [r0, #0x14] + b _02336FF8 +_02336FD4: + ldr r0, _02337008 @ =0x0233C1A8 + mov r1, #0xa + ldr r0, [r0] + strb r1, [r0, #0x14] + b _02336FF8 +_02336FE8: + ldr r0, _02337008 @ =0x0233C1A8 + mov r1, #0xb + ldr r0, [r0] + strb r1, [r0, #0x14] +_02336FF8: + bl ov01_02337014 +_02336FFC: + mov r0, #1 +_02337000: + add sp, sp, #0x2c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02337008: .4byte 0x0233C1A8 +_0233700C: .4byte 0x00000408 +_02337010: .4byte 0x0233BB14 + arm_func_end ov01_02336B50 + + arm_func_start ov01_02337014 +ov01_02337014: @ 0x02337014 + push {r3, lr} + ldr r0, _023370A4 @ =0x0233C1A8 + ldr r1, [r0] + ldrsb r0, [r1, #0x14] + cmp r0, #0xa + bge _02337090 + mov r0, #0 + bl FUN_02017CCC + ldr r0, _023370A4 @ =0x0233C1A8 + ldr r2, _023370A8 @ =0x0233BCA4 + ldr ip, [r0] + ldrsb r1, [ip, #0x15] + ldrsb r3, [ip, #0x14] + add r1, ip, r1 + strb r3, [r1, #8] + ldr r3, [r0] + ldrsb r1, [r3, #0x15] + add r1, r1, #1 + strb r1, [r3, #0x15] + ldr ip, [r0] + ldr r3, [ip, #0xd8] + ldrsb r1, [ip, #0x15] + ldrsb r2, [r2, r3] + cmp r1, r2 + poplt {r3, pc} + sub r1, r2, #1 + strb r1, [ip, #0x15] + ldr r0, [r0] + mov r1, #0xb + strb r1, [r0, #0x14] + pop {r3, pc} +_02337090: + movne r0, #1 + strne r0, [r1, #4] + popne {r3, pc} + bl ov01_023370BC + pop {r3, pc} + .align 2, 0 +_023370A4: .4byte 0x0233C1A8 +_023370A8: .4byte 0x0233BCA4 + arm_func_end ov01_02337014 +_023370AC: + .byte 0x04, 0x10, 0x9F, 0xE5 + .byte 0x03, 0x00, 0x91, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x70, 0xCA, 0x33, 0x02 + + arm_func_start ov01_023370BC +ov01_023370BC: @ 0x023370BC + push {r3, lr} + ldr r0, _02337170 @ =0x0233C1A8 + ldr r2, [r0] + ldrsb r1, [r2, #0x15] + add r0, r2, r1 + ldrb r0, [r0, #8] + cmp r0, #0xa + subeq r0, r1, #1 + strbeq r0, [r2, #0x15] + ldr r0, _02337170 @ =0x0233C1A8 + ldr r3, [r0] + ldrsb r0, [r3, #0x15] + cmp r0, #0 + bge _0233714C + mov r2, #0 + mov r1, r2 + b _02337118 +_02337100: + add r0, r3, r1 + ldrb r0, [r0, #8] + cmp r0, #0xa + movne r2, #1 + bne _02337120 + add r1, r1, #1 +_02337118: + cmp r1, #0xc + blt _02337100 +_02337120: + cmp r2, #0 + moveq r0, #1 + streq r0, [r3, #4] + popeq {r3, pc} + mov r0, #2 + bl FUN_02017CCC + ldr r0, _02337170 @ =0x0233C1A8 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x15] + pop {r3, pc} +_0233714C: + mov r0, #1 + bl FUN_02017CCC + ldr r0, _02337170 @ =0x0233C1A8 + mov r1, #0xa + ldr r2, [r0] + ldrsb r0, [r2, #0x15] + add r0, r2, r0 + strb r1, [r0, #8] + pop {r3, pc} + .align 2, 0 +_02337170: .4byte 0x0233C1A8 + arm_func_end ov01_023370BC + + arm_func_start ov01_02337174 +ov01_02337174: @ 0x02337174 + cmp r0, #0 + moveq r0, #1 + bxeq lr + ldr r1, _023371B0 @ =0x0233C1A8 + sub r2, r0, #1 + ldr r3, [r1] + add r1, r3, r2 + ldrb r1, [r1, #8] + cmp r1, #0xa + addeq r0, r3, r0 + ldrbeq r0, [r0, #8] + cmpeq r0, #0xa + movne r0, #1 + moveq r0, #0 + bx lr + .align 2, 0 +_023371B0: .4byte 0x0233C1A8 + arm_func_end ov01_02337174 + + arm_func_start ov01_023371B4 +ov01_023371B4: @ 0x023371B4 + push {r4, lr} + mov r4, r0 + ldr r0, _023371D4 @ =0x0233BCAC + bl FUN_020348E4 + cmp r0, #0 + ldrne r0, _023371D8 @ =0x0233CA78 + strne r4, [r0] + pop {r4, pc} + .align 2, 0 +_023371D4: .4byte 0x0233BCAC +_023371D8: .4byte 0x0233CA78 + arm_func_end ov01_023371B4 + + arm_func_start ov01_023371DC +ov01_023371DC: @ 0x023371DC + push {r3, lr} + mov r0, #0x4c + mov r1, #8 + bl FUN_02001170 + ldr r1, _0233720C @ =0x0233C1AC + mov r2, #0 + str r0, [r1] + strb r2, [r0, #8] + ldr r1, [r1] + mov r0, #1 + str r2, [r1] + pop {r3, pc} + .align 2, 0 +_0233720C: .4byte 0x0233C1AC + arm_func_end ov01_023371DC + + arm_func_start ov01_02337210 +ov01_02337210: @ 0x02337210 + push {r3, lr} + ldr r0, _02337238 @ =0x0233C1AC + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _02337238 @ =0x0233C1AC + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_02337238: .4byte 0x0233C1AC + arm_func_end ov01_02337210 +_0233723C: + .byte 0x10, 0x40, 0x2D, 0xE9 + .byte 0x98, 0xD0, 0x4D, 0xE2, 0x04, 0x03, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x00, 0x00, 0x91, 0xE5 + .byte 0x0B, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0xB9, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00, 0xEA + .byte 0x13, 0x00, 0x00, 0xEA, 0x3B, 0x00, 0x00, 0xEA, 0x74, 0x00, 0x00, 0xEA, 0xB4, 0x00, 0x00, 0xEA + .byte 0xB3, 0x00, 0x00, 0xEA, 0x2A, 0x00, 0x00, 0xEA, 0xAB, 0x00, 0x00, 0xEA, 0xB0, 0x00, 0x00, 0xEA + .byte 0x75, 0x00, 0x00, 0xEA, 0x7C, 0x00, 0x00, 0xEA, 0x90, 0x00, 0x00, 0xEA, 0xC0, 0x02, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x1A, 0xC2, 0xE2, 0xFF, 0xEB + .byte 0xA8, 0x02, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5 + .byte 0xA3, 0x00, 0x00, 0xEA, 0xA4, 0xDD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xA0, 0x00, 0x00, 0x1A + .byte 0x8C, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x0F, 0x00, 0x00, 0x1A + .byte 0x78, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x09, 0x00, 0x80, 0xE2, 0x0B, 0x66, 0xF4, 0xEB + .byte 0x68, 0x02, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x39, 0x00, 0x81, 0xE2, 0x09, 0x10, 0x81, 0xE2 + .byte 0x82, 0xB7, 0xF3, 0xEB, 0x54, 0x12, 0x9F, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x30, 0x91, 0xE5 + .byte 0x00, 0x20, 0xA0, 0xE1, 0x09, 0x10, 0x83, 0xE2, 0x39, 0x30, 0x83, 0xE2, 0x37, 0xFD, 0xF3, 0xEB + .byte 0x38, 0x02, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5 + .byte 0x87, 0x00, 0x00, 0xEA, 0xA0, 0xE2, 0xFF, 0xEB, 0x20, 0x12, 0x9F, 0xE5, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x30, 0x91, 0xE5, 0x00, 0x20, 0xA0, 0xE1, 0x19, 0x10, 0x83, 0xE2, 0x39, 0x30, 0x83, 0xE2 + .byte 0x2A, 0xFD, 0xF3, 0xEB, 0x04, 0x02, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x00, 0x10, 0x80, 0xE5, 0x7A, 0x00, 0x00, 0xEA, 0x7B, 0xDD, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x77, 0x00, 0x00, 0x1A, 0x5A, 0xFE, 0xF3, 0xEB, 0x03, 0x00, 0x50, 0xE3, 0x74, 0x00, 0x00, 0x1A + .byte 0xDC, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x1D, 0x00, 0x00, 0x1A + .byte 0x1B, 0xE0, 0xFF, 0xEB, 0x74, 0x00, 0xF4, 0xEB, 0xC0, 0x11, 0x9F, 0xE5, 0x0A, 0x20, 0xA0, 0xE3 + .byte 0x00, 0x10, 0x91, 0xE5, 0x09, 0x10, 0x81, 0xE2, 0x83, 0xB7, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x05, 0x00, 0x00, 0x0A, 0x6C, 0x00, 0xF4, 0xEB, 0xF9, 0x65, 0xF4, 0xEB, 0x9C, 0x01, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x09, 0x00, 0x80, 0xE2, 0xD4, 0x65, 0xF4, 0xEB, 0x8C, 0x01, 0x9F, 0xE5 + .byte 0x0A, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x39, 0x00, 0x81, 0xE2, 0x09, 0x10, 0x81, 0xE2 + .byte 0x75, 0xB7, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x70, 0x01, 0x9F, 0x15, 0x01, 0x10, 0xA0, 0x13 + .byte 0x00, 0x00, 0x90, 0x15, 0x08, 0x10, 0xC0, 0x15, 0x60, 0x01, 0x9F, 0x05, 0x00, 0x10, 0xA0, 0x03 + .byte 0x00, 0x00, 0x90, 0x05, 0x08, 0x10, 0xC0, 0x05, 0x57, 0x00, 0xF4, 0xEB, 0x4C, 0x11, 0x9F, 0xE5 + .byte 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5, 0x04, 0x10, 0xA0, 0xE1, 0x29, 0x00, 0x80, 0xE2 + .byte 0x10, 0x20, 0xA0, 0xE3, 0x76, 0xB7, 0xF3, 0xEB, 0x30, 0x01, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE1 + .byte 0x00, 0x00, 0x90, 0xE5, 0x19, 0x00, 0x80, 0xE2 + + arm_func_start ov01_02337428 +ov01_02337428: @ 0x02337428 + bl FUN_02025100 + ldr r0, _02337550 @ =0x0233C1AC + mov r1, #3 + ldr r0, [r0] + str r1, [r0] + b _02337544 +_02337440: + .byte 0x08, 0x00, 0xF4, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x01, 0x9F, 0x15, 0x09, 0x10, 0xA0, 0x13 + .byte 0x00, 0x00, 0x90, 0x15, 0x00, 0x10, 0x80, 0x15, 0x39, 0x00, 0x00, 0xEA, 0x29, 0x00, 0x81, 0xE2 + .byte 0x0D, 0x07, 0xF4, 0xEB, 0xA6, 0x07, 0xF4, 0xEB, 0xE0, 0x00, 0x9F, 0xE5, 0x0A, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x31, 0x00, 0x00, 0xEA, 0xA6, 0x07, 0xF4, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x1A, 0xC0, 0x00, 0x9F, 0xE5, 0x07, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x90, 0xE5, 0x0B, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x04, 0x10, 0x80, 0xE5, 0x26, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x50, 0xE3, 0x24, 0x00, 0x00, 0x1A + .byte 0x98, 0x00, 0x9F, 0xE5, 0x07, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x06, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x1C, 0x00, 0x00, 0xEA + .byte 0x08, 0x00, 0xD1, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x0A, 0x74, 0xC0, 0x9F, 0xE5 + .byte 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x8D, 0xE2, 0x02, 0x00, 0xA0, 0xE3, 0x01, 0x1C, 0xA0, 0xE3 + .byte 0x84, 0xC0, 0x8D, 0xE5, 0x88, 0x30, 0x8D, 0xE5, 0x53, 0x48, 0xF4, 0xEB, 0x08, 0x00, 0x00, 0xEA + .byte 0x4C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A + .byte 0x08, 0x00, 0xA0, 0xE3, 0xE7, 0xE6, 0xFF, 0xEB, 0x01, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3 + .byte 0xE4, 0xE6, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x06, 0x00, 0x00, 0xEA, 0x39, 0x07, 0xF4, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x14, 0x00, 0x9F, 0x15, 0x00, 0x10, 0x90, 0x15, 0x04, 0x00, 0x91, 0x15 + .byte 0x00, 0x00, 0x81, 0x15 +_02337544: + mov r0, #1 + add sp, sp, #0x98 + pop {r4, pc} + .align 2, 0 +_02337550: .4byte 0x0233C1AC + arm_func_end ov01_02337428 +_02337554: + .byte 0x78, 0xCA, 0x33, 0x02, 0x5C, 0x75, 0x33, 0x02 + + arm_func_start ov01_0233755C +ov01_0233755C: @ 0x0233755C + push {r3, lr} + ldr r0, _02337588 @ =0x0233CA78 + ldr r0, [r0] + cmp r0, #0 + bne _0233757C + mov r0, #8 + bl ov01_023310B8 + pop {r3, pc} +_0233757C: + mov r0, #0 + bl ov01_023310B8 + pop {r3, pc} + .align 2, 0 +_02337588: .4byte 0x0233CA78 + arm_func_end ov01_0233755C + + arm_func_start ov01_0233758C +ov01_0233758C: @ 0x0233758C + ldr ip, _02337598 @ =FUN_020348E4 + ldr r0, _0233759C @ =0x0233BCBC + bx ip + .align 2, 0 +_02337598: .4byte FUN_020348E4 +_0233759C: .4byte 0x0233BCBC + arm_func_end ov01_0233758C + + arm_func_start ov01_023375A0 +ov01_023375A0: @ 0x023375A0 + ldr r0, _023375AC @ =0x0233C1B0 + ldr r0, [r0] + bx lr + .align 2, 0 +_023375AC: .4byte 0x0233C1B0 + arm_func_end ov01_023375A0 +_023375B0: + .byte 0x04, 0x10, 0x9F, 0xE5, 0x00, 0x00, 0x81, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0xB0, 0xC1, 0x33, 0x02 + .byte 0x04, 0x10, 0x9F, 0xE5, 0xD0, 0x00, 0x91, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xB8, 0xC1, 0x33, 0x02 + .byte 0x04, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0xC2, 0xE7, 0x1E, 0xFF, 0x2F, 0xE1, 0xB8, 0xC1, 0x33, 0x02 + + arm_func_start ov01_023375E0 +ov01_023375E0: @ 0x023375E0 + ldr ip, _023375EC @ =FUN_020348E4 + ldr r0, _023375F0 @ =0x0233BCCC + bx ip + .align 2, 0 +_023375EC: .4byte FUN_020348E4 +_023375F0: .4byte 0x0233BCCC + arm_func_end ov01_023375E0 + + arm_func_start ov01_023375F4 +ov01_023375F4: @ 0x023375F4 + push {r3, lr} + ldr r0, _02337610 @ =0x0233BCDC + bl FUN_020348E4 + cmp r0, #0 + popeq {r3, pc} + bl ov01_0232F3F4 + pop {r3, pc} + .align 2, 0 +_02337610: .4byte 0x0233BCDC + arm_func_end ov01_023375F4 +_02337614: + .byte 0x04, 0x10, 0x9F, 0xE5, 0xD0, 0x00, 0x91, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xD4, 0xC1, 0x33, 0x02, 0x04, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0xC2, 0xE7, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xD4, 0xC1, 0x33, 0x02 + + arm_func_start ov01_02337634 +ov01_02337634: @ 0x02337634 + ldr ip, _02337640 @ =FUN_020348E4 + ldr r0, _02337644 @ =0x0233BCEC + bx ip + .align 2, 0 +_02337640: .4byte FUN_020348E4 +_02337644: .4byte 0x0233BCEC + arm_func_end ov01_02337634 +_02337648: + .byte 0x04, 0x10, 0x9F, 0xE5, 0xD0, 0x00, 0x91, 0xE1 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xE0, 0xC1, 0x33, 0x02, 0x04, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0xC2, 0xE7 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xE0, 0xC1, 0x33, 0x02 + + arm_func_start ov01_02337668 +ov01_02337668: @ 0x02337668 + ldr ip, _02337674 @ =FUN_020348E4 + ldr r0, _02337678 @ =0x0233BCFC + bx ip + .align 2, 0 +_02337674: .4byte FUN_020348E4 +_02337678: .4byte 0x0233BCFC + arm_func_end ov01_02337668 +_0233767C: + .byte 0x04, 0x10, 0x9F, 0xE5 + .byte 0xD0, 0x00, 0x91, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0xE8, 0xC1, 0x33, 0x02, 0x04, 0x20, 0x9F, 0xE5 + .byte 0x00, 0x10, 0xC2, 0xE7, 0x1E, 0xFF, 0x2F, 0xE1, 0xE8, 0xC1, 0x33, 0x02, 0x08, 0x40, 0x2D, 0xE9 + .byte 0xA8, 0x00, 0xA0, 0xE3, 0x08, 0x10, 0xA0, 0xE3, 0xB0, 0x26, 0xF3, 0xEB, 0x24, 0x20, 0x9F, 0xE5 + .byte 0xA8, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x82, 0xE5, 0xE4, 0x2E, 0xF3, 0xEB, 0x14, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x00, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x04, 0x20, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0xF4, 0xC1, 0x33, 0x02, 0x08, 0x40, 0x2D, 0xE9 + .byte 0x2C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x08 + .byte 0x01, 0x00, 0xA0, 0xE3, 0x2C, 0x15, 0xFE, 0xEB, 0x14, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xA0, 0x26, 0xF3, 0xEB, 0x08, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5 + .byte 0x08, 0x80, 0xBD, 0xE8, 0xF4, 0xC1, 0x33, 0x02, 0x38, 0x40, 0x2D, 0xE9, 0xC4, 0x01, 0x9F, 0xE5 + .byte 0x00, 0x40, 0x90, 0xE5, 0x00, 0x10, 0x94, 0xE5, 0x01, 0x0A, 0x51, 0xE3, 0x08, 0x00, 0x00, 0xCA + .byte 0x1B, 0x00, 0x00, 0xAA, 0x01, 0x00, 0x51, 0xE3, 0x68, 0x00, 0x00, 0xCA, 0x00, 0x00, 0x51, 0xE3 + .byte 0x66, 0x00, 0x00, 0xBA, 0x06, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x51, 0xE3, 0x0D, 0x00, 0x00, 0x0A + .byte 0x62, 0x00, 0x00, 0xEA, 0x90, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x51, 0xE1, 0x16, 0x00, 0x00, 0x0A + .byte 0x5E, 0x00, 0x00, 0xEA, 0x84, 0x11, 0x9F, 0xE5, 0x1C, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3 + .byte 0x1C, 0x3D, 0xF4, 0xEB, 0x6C, 0x01, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x00, 0x10, 0x80, 0xE5, 0x55, 0x00, 0x00, 0xEA, 0x5B, 0x00, 0x00, 0xEB, 0x01, 0x00, 0x50, 0xE3 + .byte 0x50, 0x01, 0x9F, 0x05, 0x01, 0x1A, 0xA0, 0x03, 0x00, 0x00, 0x90, 0x05, 0x00, 0x10, 0x80, 0x05 + .byte 0x4E, 0x00, 0x00, 0xEA, 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x10, 0x84, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x34, 0x11, 0x9F, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x48, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x94, 0xE5 + .byte 0x04, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x37, 0x00, 0x00, 0xEA, 0x03, 0x00, 0x00, 0xEA + .byte 0x09, 0x00, 0x00, 0xEA, 0x13, 0x00, 0x00, 0xEA, 0x2A, 0x00, 0x00, 0xEA, 0x2E, 0x00, 0x00, 0xEA + .byte 0xE6, 0x17, 0xFE, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x04, 0x11, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE1 + .byte 0xFC, 0x3C, 0xF4, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x84, 0xE5, 0x3E, 0x00, 0x00, 0xEB + .byte 0x01, 0x00, 0x50, 0xE3, 0x28, 0x00, 0x00, 0x1A, 0xE0, 0x00, 0xA0, 0xE3, 0x88, 0x10, 0xA0, 0xE3 + .byte 0x01, 0x20, 0xA0, 0xE3, 0xDB, 0xC9, 0xF3, 0xEB, 0x02, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x84, 0xE5 + .byte 0xDB, 0x30, 0xF3, 0xEB, 0x20, 0x00, 0x00, 0xEA, 0x03, 0x00, 0xA0, 0xE3, 0xD4, 0x45, 0xF4, 0xEB + .byte 0x00, 0x50, 0xA0, 0xE1, 0xE3, 0x30, 0xF3, 0xEB, 0xDF, 0xC9, 0xF3, 0xEB, 0x00, 0x00, 0x55, 0xE3 + .byte 0x06, 0x00, 0x00, 0x1A, 0x1C, 0x00, 0xA0, 0xE3, 0x8F, 0x1F, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3 + .byte 0xE4, 0x3C, 0xF4, 0xEB, 0x03, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x84, 0xE5, 0x12, 0x00, 0x00, 0xEA + .byte 0x01, 0x00, 0x55, 0xE3, 0x03, 0x00, 0xA0, 0x03, 0x10, 0x00, 0x00, 0x0A, 0x84, 0x10, 0x9F, 0xE5 + .byte 0x1C, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0xDA, 0x3C, 0xF4, 0xEB, 0x04, 0x00, 0xA0, 0xE3 + .byte 0x04, 0x00, 0x84, 0xE5, 0x08, 0x00, 0x00, 0xEA, 0x1B, 0x00, 0x00, 0xEB, 0x01, 0x00, 0x50, 0xE3 + .byte 0x05, 0x00, 0x00, 0x1A, 0x01, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x00, 0xEA, 0x16, 0x00, 0x00, 0xEB + .byte 0x01, 0x00, 0x50, 0xE3, 0x02, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x01, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x1A, 0x00, 0x00, 0xA0, 0xE3, 0x68, 0x16, 0xFE, 0xEB + .byte 0x03, 0x00, 0xA0, 0xE3, 0x38, 0x80, 0xBD, 0xE8, 0x03, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03 + .byte 0x38, 0x80, 0xBD, 0x08, 0x02, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x38, 0x80, 0xBD, 0x08 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x38, 0x80, 0xBD, 0xE8, 0xF4, 0xC1, 0x33, 0x02, 0x01, 0x10, 0x00, 0x00 + .byte 0x60, 0x37, 0x00, 0x00, 0x3B, 0x02, 0x00, 0x00, 0x39, 0x02, 0x00, 0x00, 0x08, 0x40, 0x2D, 0xE9 + .byte 0xDC, 0x3C, 0xF4, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03 + .byte 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov01_02337914 +ov01_02337914: @ 0x02337914 + ldr ip, _02337920 @ =FUN_020348E4 + ldr r0, _02337924 @ =0x0233BD0C + bx ip + .align 2, 0 +_02337920: .4byte FUN_020348E4 +_02337924: .4byte 0x0233BD0C + arm_func_end ov01_02337914 +_02337928: + .byte 0x04, 0x10, 0x9F, 0xE5, 0xD0, 0x00, 0x91, 0xE1 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF8, 0xC1, 0x33, 0x02, 0x04, 0x20, 0x9F, 0xE5, 0x00, 0x10, 0xC2, 0xE7 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0xF8, 0xC1, 0x33, 0x02 + + arm_func_start ov01_02337948 +ov01_02337948: @ 0x02337948 + push {r4, lr} + bl FUN_02046B04 + mov r4, r0 + mvn r1, #1 + cmp r4, r1 + moveq r4, #1 + beq _02337980 + sub r0, r1, #1 + cmp r4, r0 + moveq r4, #1 + beq _02337980 + add r0, r1, #1 + cmp r4, r0 + moveq r4, #0 +_02337980: + bl FUN_02046BA0 + ldr r1, _02337994 @ =0x0233C210 + strb r0, [r1] + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_02337994: .4byte 0x0233C210 + arm_func_end ov01_02337948 + + arm_func_start ov01_02337998 +ov01_02337998: @ 0x02337998 + push {r3, r4, r5, r6, r7, lr} + mov r5, r1 + cmp r3, #0 + movne r1, #0 + moveq r1, #0x1c + lsl r1, r1, #0x10 + sub r0, r0, #4 + mov r4, r2 + cmp r0, #0xa + lsr r6, r1, #0x10 + mov r7, #0 + addls pc, pc, r0, lsl #2 + b _02337AC4 +_023379CC: @ jump table + b _023379F8 @ case 0 + b _02337A00 @ case 1 + b _02337A10 @ case 2 + b _02337A20 @ case 3 + b _02337A30 @ case 4 + b _02337A40 @ case 5 + b _02337A50 @ case 6 + b _02337A60 @ case 7 + b _02337A78 @ case 8 + b _02337AA8 @ case 9 + b _02337AB8 @ case 10 +_023379F8: + mov r0, r7 + pop {r3, r4, r5, r6, r7, pc} +_02337A00: + ldr r0, _02337AE4 @ =0x0233BD34 + bl FUN_0200C1FC + ldr r7, _02337AE8 @ =0x000036DA + b _02337AC4 +_02337A10: + ldr r0, _02337AEC @ =0x0233BD48 + bl FUN_0200C1FC + mov r0, r7 + pop {r3, r4, r5, r6, r7, pc} +_02337A20: + ldr r0, _02337AF0 @ =0x0233BD5C + bl FUN_0200C1FC + ldr r7, _02337AF4 @ =0x000036DB + b _02337AC4 +_02337A30: + ldr r0, _02337AF8 @ =0x0233BD70 + bl FUN_0200C1FC + ldr r7, _02337AFC @ =0x000036E2 + b _02337AC4 +_02337A40: + ldr r0, _02337B00 @ =0x0233BD90 + bl FUN_0200C1FC + ldr r7, _02337B04 @ =0x000036DC + b _02337AC4 +_02337A50: + ldr r0, _02337B08 @ =0x0233BDAC + bl FUN_0200C1FC + ldr r7, _02337B0C @ =0x000036E3 + b _02337AC4 +_02337A60: + ldr r0, _02337B10 @ =0x0233BDC8 + bl FUN_0200C1FC + cmp r5, #0 + ldrne r7, _02337B14 @ =0x000036DD + ldreq r7, _02337B18 @ =0x000036DE + b _02337AC4 +_02337A78: + ldr r0, _02337B1C @ =0x0233BDDC + bl FUN_0200C1FC + cmp r5, #0 + beq _02337AA0 + cmp r4, #2 + ldreq r7, _02337B20 @ =0x000036DF + beq _02337AC4 + cmp r4, #3 + ldreq r7, _02337B24 @ =0x000036E0 + b _02337AC4 +_02337AA0: + ldr r7, _02337B28 @ =0x000036E1 + b _02337AC4 +_02337AA8: + ldr r0, _02337B2C @ =0x0233BDF4 + bl FUN_0200C1FC + ldr r7, _02337B30 @ =0x000036E4 + b _02337AC4 +_02337AB8: + ldr r0, _02337B34 @ =0x0233BE0C + bl FUN_0200C1FC + ldr r7, _02337B38 @ =0x000036E5 +_02337AC4: + cmp r7, #0 + beq _02337ADC + mov r0, r6 + mov r1, r7 + mov r2, #0 + bl FUN_02046BE8 +_02337ADC: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02337AE4: .4byte 0x0233BD34 +_02337AE8: .4byte 0x000036DA +_02337AEC: .4byte 0x0233BD48 +_02337AF0: .4byte 0x0233BD5C +_02337AF4: .4byte 0x000036DB +_02337AF8: .4byte 0x0233BD70 +_02337AFC: .4byte 0x000036E2 +_02337B00: .4byte 0x0233BD90 +_02337B04: .4byte 0x000036DC +_02337B08: .4byte 0x0233BDAC +_02337B0C: .4byte 0x000036E3 +_02337B10: .4byte 0x0233BDC8 +_02337B14: .4byte 0x000036DD +_02337B18: .4byte 0x000036DE +_02337B1C: .4byte 0x0233BDDC +_02337B20: .4byte 0x000036DF +_02337B24: .4byte 0x000036E0 +_02337B28: .4byte 0x000036E1 +_02337B2C: .4byte 0x0233BDF4 +_02337B30: .4byte 0x000036E4 +_02337B34: .4byte 0x0233BE0C +_02337B38: .4byte 0x000036E5 + arm_func_end ov01_02337998 + + arm_func_start ov01_02337B3C +ov01_02337B3C: @ 0x02337B3C + mov ip, #0 + mov r3, ip + b _02337B58 +_02337B48: + ldrb r2, [r0, r3] + add r3, r3, #1 + add r2, ip, r2 + and ip, r2, #0xff +_02337B58: + cmp r3, r1 + blt _02337B48 + mov r0, ip + bx lr + arm_func_end ov01_02337B3C + + arm_func_start ov01_02337B68 +ov01_02337B68: @ 0x02337B68 + push {r4, lr} + mov r4, r0 + add r0, r4, #4 + mov r1, #0x14 + bl ov01_02337B3C + ldrb r1, [r4] + cmp r1, #0x11 + movne r0, #2 + popne {r4, pc} + ldrb r1, [r4, #3] + cmp r0, r1 + movne r0, #3 + moveq r0, #1 + pop {r4, pc} + arm_func_end ov01_02337B68 + + arm_func_start ov01_02337BA0 +ov01_02337BA0: @ 0x02337BA0 + push {r3, r4, r5, lr} + mov r4, r0 + mov r0, #0x60 + mov r1, #8 + bl FUN_02001170 + ldr r2, _02337C50 @ =0x0233C210 + mov r1, #0x60 + str r0, [r2, #4] + bl FUN_02003250 + ldr r0, _02337C50 @ =0x0233C210 + mov r2, #0 + ldr r1, [r0, #4] + mov ip, #2 + str r2, [r1] + ldr r1, [r0, #4] + str r2, [r1, #0x30] + ldr r5, [r0, #4] + add lr, r5, #8 +_02337BE8: + ldm r4!, {r0, r1, r2, r3} + stm lr!, {r0, r1, r2, r3} + subs ip, ip, #1 + bne _02337BE8 + ldr r1, [r4] + mov r0, #1 + str r1, [lr] + mov r4, #0 + ldr r1, _02337C50 @ =0x0233C210 + str r4, [r5, #4] + ldr r3, [r1, #4] + sub r2, r0, #2 + strb r0, [r3, #0x3c] + ldr r3, [r1, #4] + strb r4, [r3, #0x3e] + ldr r3, [r1, #4] + str r4, [r3, #0x40] + ldr r3, [r1, #4] + str r4, [r3, #0x44] + ldr r3, [r1, #4] + str r4, [r3, #0x48] + ldr r3, [r1, #4] + str r4, [r3, #0x4c] + ldr r1, [r1, #4] + str r2, [r1, #0x50] + pop {r3, r4, r5, pc} + .align 2, 0 +_02337C50: .4byte 0x0233C210 + arm_func_end ov01_02337BA0 + + arm_func_start ov01_02337C54 +ov01_02337C54: @ 0x02337C54 + push {r3, lr} + ldr r0, _02337C8C @ =0x0233C210 + ldr r0, [r0, #4] + cmp r0, #0 + popeq {r3, pc} + bl ov01_0233893C + bl ov01_02338978 + ldr r0, _02337C8C @ =0x0233C210 + ldr r0, [r0, #4] + bl FUN_02001188 + ldr r0, _02337C8C @ =0x0233C210 + mov r1, #0 + str r1, [r0, #4] + pop {r3, pc} + .align 2, 0 +_02337C8C: .4byte 0x0233C210 + arm_func_end ov01_02337C54 +_02337C90: + .byte 0x10, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x30, 0x00, 0x90, 0x15 + .byte 0x00, 0x00, 0xA0, 0x03, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0xC2, 0x33, 0x02, 0x10, 0x40, 0x2D, 0xE9 + .byte 0x28, 0x00, 0x9F, 0xE5, 0x04, 0x40, 0x90, 0xE5, 0x00, 0x00, 0x54, 0xE3, 0x10, 0x80, 0xBD, 0x08 + .byte 0x2C, 0x00, 0x94, 0xE5, 0x0B, 0x00, 0x50, 0xE3, 0x10, 0x80, 0xBD, 0x18, 0x1E, 0x0E, 0xA0, 0xE3 + .byte 0xD2, 0xCC, 0xFF, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x2C, 0x00, 0x84, 0xE5, 0x10, 0x80, 0xBD, 0xE8 + .byte 0x10, 0xC2, 0x33, 0x02 + + arm_func_start ov01_02337CE4 +ov01_02337CE4: @ 0x02337CE4 + ldr r0, _02337CFC @ =0x0233C210 + ldr r0, [r0, #4] + cmp r0, #0 + ldrbne r0, [r0, #0x3c] + moveq r0, #1 + bx lr + .align 2, 0 +_02337CFC: .4byte 0x0233C210 + arm_func_end ov01_02337CE4 + + arm_func_start ov01_02337D00 +ov01_02337D00: @ 0x02337D00 + ldr r1, _02337D14 @ =0x0233C210 + ldr r1, [r1, #4] + cmp r1, #0 + strbne r0, [r1, #0x3c] + bx lr + .align 2, 0 +_02337D14: .4byte 0x0233C210 + arm_func_end ov01_02337D00 +_02337D18: + .byte 0x0C, 0x10, 0x9F, 0xE5, 0x04, 0x10, 0x91, 0xE5 + .byte 0x00, 0x00, 0x51, 0xE3, 0x3E, 0x00, 0xC1, 0x15, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0xC2, 0x33, 0x02 + .byte 0x08, 0x40, 0x2D, 0xE9, 0x90, 0x10, 0x9F, 0xE5, 0x04, 0x00, 0x91, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x08, 0x80, 0xBD, 0x08, 0x00, 0xC0, 0xA0, 0xE3, 0x30, 0xC0, 0x80, 0xE5, 0x04, 0x00, 0x91, 0xE5 + .byte 0x01, 0x30, 0xA0, 0xE3, 0x04, 0xC0, 0x80, 0xE5, 0x04, 0x00, 0x91, 0xE5, 0x02, 0x20, 0x43, 0xE2 + .byte 0x3C, 0x30, 0xC0, 0xE5, 0x04, 0x30, 0x91, 0xE5, 0x1E, 0x0E, 0xA0, 0xE3, 0x3E, 0xC0, 0xC3, 0xE5 + .byte 0x04, 0x30, 0x91, 0xE5, 0x40, 0xC0, 0x83, 0xE5, 0x04, 0x30, 0x91, 0xE5, 0x44, 0xC0, 0x83, 0xE5 + .byte 0x04, 0x30, 0x91, 0xE5, 0x48, 0xC0, 0x83, 0xE5, 0x04, 0x30, 0x91, 0xE5, 0x4C, 0xC0, 0x83, 0xE5 + .byte 0x04, 0x10, 0x91, 0xE5, 0x50, 0x20, 0x81, 0xE5, 0xA0, 0xCC, 0xFF, 0xEB, 0x01, 0x00, 0xA0, 0xE3 + .byte 0xB6, 0xCC, 0xFF, 0xEB, 0x9E, 0xD0, 0xFF, 0xEB, 0x1C, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5 + .byte 0x18, 0x00, 0x90, 0xE5, 0x46, 0xCC, 0xFF, 0xEB, 0x0C, 0x00, 0x9F, 0xE5, 0x03, 0x10, 0xA0, 0xE3 + .byte 0x04, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x10, 0xC2, 0x33, 0x02 + .byte 0x30, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0x90, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x30, 0x00, 0x91, 0xE5, 0x04, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x50, 0x13, 0x06, 0x00, 0xA0, 0x03 + .byte 0x30, 0x00, 0x81, 0x05, 0x0C, 0x00, 0x9F, 0xE5, 0x09, 0x10, 0xA0, 0xE3, 0x04, 0x00, 0x90, 0xE5 + .byte 0x00, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x10, 0xC2, 0x33, 0x02 + + arm_func_start ov01_02337E0C +ov01_02337E0C: @ 0x02337E0C + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x14 + ldr r0, _02338844 @ =0x0233C210 + ldr sb, [r0, #4] + ldr r0, [sb] + cmp r0, #0xc + addls pc, pc, r0, lsl #2 + b _02338838 +_02337E2C: @ jump table + b _02337E60 @ case 0 + b _02337E7C @ case 1 + b _02337EFC @ case 2 + b _02337F28 @ case 3 + b _02337F44 @ case 4 + b _02337F58 @ case 5 + b _02337FAC @ case 6 + b _02338674 @ case 7 + b _0233868C @ case 8 + b _023386F4 @ case 9 + b _02338710 @ case 10 + b _02338768 @ case 11 + b _02338828 @ case 12 +_02337E60: + ldr r0, [sb, #0x28] + bl ov01_0232ADC0 + ldr r0, [sb, #0x18] + bl ov01_0232AED4 + mov r0, #1 + str r0, [sb] + b _02338838 +_02337E7C: + ldrb r0, [sb, #0x3e] + mov r1, #0xa0 + mov r2, #0 + cmp r0, #0 + mov r0, #0xe0 + bne _02337ED8 + bl ov01_0232C148 + mov r0, #0xec + mov r1, #0x1c + mov r2, #7 + mov r3, #6 + bl ov01_0232C3AC + ldr r1, _02338844 @ =0x0233C210 + mov r0, #0 + ldrsb r4, [r1] + ldr r2, _02338848 @ =0x0233BD1C + ldr r3, _0233884C @ =0x000036D8 + mov r1, r0 + str r4, [sp] + bl FUN_02046A9C + mov r0, #2 + str r0, [sb] + b _02338838 +_02337ED8: + bl ov01_0232C148 + mov r0, #0xec + mov r1, #0x1c + mov r2, #7 + mov r3, #6 + bl ov01_0232C3AC + mov r0, #3 + str r0, [sb] + b _02338838 +_02337EFC: + bl ov01_02337948 + cmp r0, #2 + moveq r0, #3 + streq r0, [sb] + beq _02338838 + cmp r0, #3 + cmpne r0, #1 + bne _02338838 + bl ov01_0232B2CC + mov r0, #1 + b _0233883C +_02337F28: + mov r0, #0 + ldr r1, _02338850 @ =0x000036D9 + mov r2, r0 + bl FUN_02046BE8 + mov r0, #4 + str r0, [sb] + b _02338838 +_02337F44: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #5 + strne r0, [sb] + b _02338838 +_02337F58: + bl FUN_02003B94 + ldr r0, _02338844 @ =0x0233C210 + ldr r1, _02338854 @ =ov01_02338864 + ldr r2, [r0, #4] + mov r0, #0 + str r0, [r2, #0x2c] + bl ov01_0232B5D0 + ldr r0, _02338844 @ =0x0233C210 + mov r3, #0 + ldr r1, [r0, #4] + ldr r2, _02338858 @ =0x023389D4 + str r3, [r1, #0x34] + ldr r1, [r0, #4] + str r3, [r1, #0x38] + ldr r0, [r0, #4] + ldrh r1, [r0, #0x24] + ldr r0, [r0, #0x20] + bl ov01_0232B124 + mov r0, #6 + str r0, [sb] + b _02338838 +_02337FAC: + ldr r0, [sb, #4] + mov r5, #0 + add r0, sb, r0, lsl #2 + ldr r7, [r0, #0xc] + bl ov01_0232AF4C + mov r6, r0 + bl ov01_0232AFC4 + cmp r0, #0 + beq _0233800C + mov r0, r5 + bl ov01_0232B040 + ldr r0, _02338844 @ =0x0233C210 + ldr r1, [r0, #4] + ldr r0, [r1, #0x2c] + cmp r0, #5 + blt _02338000 + cmp r0, #0xb + ldrbne r0, [r1, #0x3d] + cmpne r0, #0 + movne r5, #1 + bne _02338580 +_02338000: + mov r0, #0xa + str r0, [sb, #0x2c] + b _0233809C +_0233800C: + bl ov01_0232BE4C + cmp r0, #0 + bne _02338060 + bl ov01_02337CE4 + cmp r0, #0 + beq _02338060 + add r1, sp, #0xc + mov r0, r5 + bl FUN_0200625C + ldrh r0, [sp, #0xc] + tst r0, #2 + bne _02338054 + bl FUN_020467F0 + cmp r0, #0 + bne _02338054 + bl FUN_02003B5C + cmp r0, #0 + beq _02338060 +_02338054: + bl ov01_0232BE08 + mov r0, #9 + str r0, [sb, #0x2c] +_02338060: + cmp r6, #5 + addls pc, pc, r6, lsl #2 + b _0233808C +_0233806C: @ jump table + b _0233808C @ case 0 + b _0233808C @ case 1 + b _02338084 @ case 2 + b _0233808C @ case 3 + b _0233808C @ case 4 + b _0233808C @ case 5 +_02338084: + mov r0, #0xa + str r0, [sb, #0x2c] +_0233808C: + bl ov01_0232C008 + cmp r0, #0xa + movge r0, #0xa + strge r0, [sb, #0x2c] +_0233809C: + sub fp, r6, #4 + b _02338574 +_023380A4: + ldr r0, [sb, #0x2c] + mov r5, #1 + cmp r0, #0xb + addls pc, pc, r0, lsl #2 + b _02338574 +_023380B8: @ jump table + b _023380E8 @ case 0 + b _02338104 @ case 1 + b _02338254 @ case 2 + b _023382A8 @ case 3 + b _023383DC @ case 4 + b _02338438 @ case 5 + b _02338474 @ case 6 + b _023384D4 @ case 7 + b _023384E8 @ case 8 + b _023384EC @ case 9 + b _02338528 @ case 10 + b _02338560 @ case 11 +_023380E8: + cmp r6, #0 + beq _023380F8 + cmp fp, #1 + bhi _02338574 +_023380F8: + mov r0, #1 + str r0, [sb, #0x2c] + b _02338574 +_02338104: + ldr r0, _02338844 @ =0x0233C210 + ldr sl, [r7] + ldr r0, [r0, #4] + add r1, sl, #0x21 + ldr r0, [r0, #0x40] + bic r8, r1, #0x1f + cmp r0, #0 + ldr r0, [r7, #4] + str r0, [sp, #4] + bne _023381F0 + mov r0, r8 + mov r1, #0xf + bl FUN_02001170 + mov r4, r0 + mov r0, r8 + mov r1, #8 + bl FUN_02001170 + ldr ip, _02338844 @ =0x0233C210 + ldr r1, [sp, #4] + ldr r3, [ip, #4] + mov r2, sl + str r0, [r3, #0x40] + ldr r3, [ip, #4] + add r0, r4, #2 + str r8, [r3, #0x44] + bl FUN_020032D4 + add r0, sl, #2 + sub r1, r8, sl + add r0, r4, r0 + sub r1, r1, #2 + bl FUN_02003250 + mov r3, #0 + mov r0, r3 + sub r2, r8, #2 + b _023381B0 +_02338190: + add r1, r4, r0 + ldrb sl, [r1, #3] + ldrb r1, [r1, #2] + add r0, r0, #2 + orr r1, r1, sl, lsl #8 + add r1, r3, r1 + lsl r1, r1, #0x10 + lsr r3, r1, #0x10 +_023381B0: + cmp r0, r2 + blo _02338190 + and r0, r3, #0xff + add r0, r0, r3, asr #8 + and r0, r0, #0xff + add r1, r4, #2 + strh r3, [r4] + bl FUN_0204E02C + ldr r0, _02338844 @ =0x0233C210 + mov r1, r4 + ldr r0, [r0, #4] + mov r2, r8 + ldr r0, [r0, #0x40] + bl FUN_0204DF54 + mov r0, r4 + bl FUN_02001188 +_023381F0: + ldr r0, _02338844 @ =0x0233C210 + ldr r1, [r7, #8] + ldr r0, [r0, #4] + add r1, r1, #0x21 + ldr r0, [r0, #0x48] + bic r4, r1, #0x1f + cmp r0, #0 + bne _02338230 + mov r0, r4 + mov r1, #8 + bl FUN_02001170 + ldr r1, _02338844 @ =0x0233C210 + ldr r2, [r1, #4] + str r0, [r2, #0x48] + ldr r0, [r1, #4] + str r4, [r0, #0x4c] +_02338230: + mov r1, #0 + strb r1, [sb, #0x54] + ldr r0, [sb, #0x18] + cmp r0, #1 + moveq r1, #0xa + str r1, [sb, #0x5c] + mov r0, #2 + str r0, [sb, #0x2c] + b _02338574 +_02338254: + bl ov01_0232AFB0 + cmp r0, #0 + beq _02338574 + ldr r0, [sb, #0x5c] + sub r0, r0, #1 + str r0, [sb, #0x5c] + cmp r0, #0 + bgt _02338574 + mov r0, #0 + bl ov01_02337D00 + bl ov01_0232B068 + ldr r1, [r7] + ldr r2, [r7, #0xc] + ldmib r7, {r0, r3} + bl ov01_0232B420 + cmp r0, #0 + movne r0, #0x258 + strne r0, [sb, #0x50] + movne r0, #3 + strne r0, [sb, #0x2c] + b _02338574 +_023382A8: + ldr r0, [sb, #0x50] + sub r0, r0, #1 + str r0, [sb, #0x50] + bl ov01_0232B00C + cmp r0, #0 + beq _023383AC + bl ov01_0232B068 + ldr r8, [r7, #8] + ldr r2, [sb, #0x4c] + ldr r4, [sb, #0x48] + mov r0, r8 + mov r1, #0xf + str r2, [sp, #8] + ldr sl, [r7, #0xc] + bl FUN_02001170 + mov r1, r4 + mov r4, r0 + mov r2, r8 + bl FUN_0204DFB0 + ldrb r3, [r4] + ldrb r0, [r4, #1] + add r1, r4, #2 + sub r2, r8, #2 + add r0, r3, r0 + and r0, r0, #0xff + bl FUN_0204E0A0 + mov r1, #0 + mov r0, r1 + sub r2, r8, #2 + b _02338340 +_02338320: + add r3, r4, r0 + ldrb r8, [r3, #3] + ldrb r3, [r3, #2] + add r0, r0, #2 + orr r3, r3, r8, lsl #8 + add r1, r1, r3 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 +_02338340: + cmp r0, r2 + blo _02338320 + ldrh r0, [r4] + cmp r1, r0 + beq _02338360 + mov r0, r4 + bl FUN_02001188 + b _02338378 +_02338360: + ldr r2, [sp, #8] + mov r0, sl + mov r1, r4 + bl FUN_020032D4 + mov r0, r4 + bl FUN_02001188 +_02338378: + ldr r1, [r7, #0x10] + cmp r1, #0 + moveq r0, #1 + beq _02338390 + ldr r0, [r7, #0xc] + blx r1 +_02338390: + str r0, [sb, #0x34] + mov r0, #0 + str r0, [sb, #0x38] + strb r0, [sb, #0x3d] + mov r0, #4 + str r0, [sb, #0x2c] + b _02338574 +_023383AC: + ldr r0, [sb, #0x50] + cmp r0, #0 + bgt _02338574 + ldrb r0, [sb, #0x54] + cmp r0, #0 + moveq r0, r5 + strbeq r0, [sb, #0x54] + moveq r0, #2 + streq r0, [sb, #0x2c] + beq _02338574 + mov r5, #4 + b _02338580 +_023383DC: + ldr r0, [sb, #0x18] + cmp r0, #0 + bne _02338424 + ldr r0, [sb, #0x34] + add r2, sp, #0xe + strb r0, [sp, #0xe] + ldr r3, [sb, #0x38] + mov r0, #0 + mov r1, #3 + strb r3, [sp, #0xf] + strb r0, [sp, #0x10] + bl ov01_0232B540 + cmp r0, #0 + movne r0, #0x258 + strne r0, [sb, #0x50] + movne r0, #5 + strne r0, [sb, #0x2c] + b _02338574 +_02338424: + mov r0, #0x258 + str r0, [sb, #0x50] + mov r0, #5 + str r0, [sb, #0x2c] + b _02338574 +_02338438: + ldr r0, [sb, #0x50] + sub r0, r0, #1 + str r0, [sb, #0x50] + ldrb r0, [sb, #0x3d] + cmp r0, #0 + movne r0, #6 + strne r0, [sb, #0x2c] + movne r0, #0x3c + strne r0, [sb, #0x58] + bne _02338574 + ldr r0, [sb, #0x50] + cmp r0, #0 + bgt _02338574 + mov r5, #4 + b _02338580 +_02338474: + ldr r0, [sb, #0x58] + mov r1, #0xa + bl FUN_0208FEA4 + cmp r1, #0 + bne _023384B8 + ldr r0, _02338844 @ =0x0233C210 + add r2, sp, #0x11 + ldr r4, [r0, #4] + mov r3, r5 + ldr r1, [r4, #0x34] + mov r0, #0 + strb r1, [sp, #0x11] + ldr r4, [r4, #0x38] + mov r1, #3 + strb r4, [sp, #0x12] + strb r3, [sp, #0x13] + bl ov01_0232B540 +_023384B8: + ldr r0, [sb, #0x58] + sub r0, r0, #1 + str r0, [sb, #0x58] + cmp r0, #0 + movle r0, #7 + strle r0, [sb, #0x2c] + b _02338574 +_023384D4: + ldr r0, _0233885C @ =0x0233BE24 + bl FUN_0200C1FC + mov r0, #8 + str r0, [sb, #0x2c] + b _02338574 +_023384E8: + b _02338580 +_023384EC: + bl ov01_0232BDDC + cmp r0, #0 + beq _02338504 + bl ov01_0232BDF0 + mov r5, #2 + b _02338580 +_02338504: + bl ov01_0232BE4C + cmp r0, #0 + beq _0233851C + bl ov01_0232AFB0 + cmp r0, #0 + beq _02338574 +_0233851C: + mov r0, #0 + str r0, [sb, #0x2c] + b _02338574 +_02338528: + ldr r0, _02338860 @ =0x0233BE48 + bl FUN_0200C1FC + bl ov01_0232C008 + cmp r0, #0xa + beq _02338548 + cmp r0, #0xc + beq _02338550 + b _02338558 +_02338548: + mov r5, #4 + b _02338580 +_02338550: + mov r5, #3 + b _02338580 +_02338558: + mov r5, #3 + b _02338580 +_02338560: + bl FUN_02003B5C + cmp r0, #0 + movne r5, #3 + moveq r5, #5 + b _02338580 +_02338574: + cmp r5, #0 + beq _023380A4 + mov r5, #0 +_02338580: + cmp r5, #1 + bne _023385FC + bl ov01_0233893C + bl ov01_02338978 + ldr r1, [sb, #4] + ldr r0, [sb, #8] + add r1, r1, #1 + cmp r1, r0 + blo _023385DC + mov r0, #0 + bl ov01_0232C040 + mov r0, #4 + str r0, [sb, #0x30] + bl ov01_023389B4 + cmp r0, #1 + bne _023385D0 + ldrb r0, [sb, #0x26] + cmp r0, #0 + movne r0, #7 + bne _023385D4 +_023385D0: + mov r0, #9 +_023385D4: + str r0, [sb] + b _023385EC +_023385DC: + mov r0, #0xe10 + bl ov01_0232B020 + mov r0, #0xb + str r0, [sb, #0x2c] +_023385EC: + ldr r0, [sb, #4] + add r0, r0, #1 + str r0, [sb, #4] + b _02338838 +_023385FC: + cmp r5, #5 + moveq r0, #0xf + beq _0233883C + cmp r5, #2 + bne _0233862C + bl ov01_0233893C + bl ov01_02338978 + mov r0, #5 + str r0, [sb, #0x30] + mov r0, #9 + str r0, [sb] + b _02338838 +_0233862C: + cmp r5, #4 + bne _02338650 + bl ov01_0233893C + bl ov01_02338978 + mov r0, #7 + str r0, [sb, #0x30] + mov r0, #9 + str r0, [sb] + b _02338838 +_02338650: + cmp r5, #3 + bne _02338838 + bl ov01_0233893C + bl ov01_02338978 + mov r0, #8 + str r0, [sb, #0x30] + mov r0, #9 + str r0, [sb] + b _02338838 +_02338674: + bl ov01_0232B18C + mov r0, #8 + str r0, [sb] + mov r0, #0x258 + str r0, [sb, #0x50] + b _02338838 +_0233868C: + bl ov01_0232AF4C + cmp r0, #2 + cmpne r0, #0 + beq _023386AC + cmp r0, #1 + movne r0, #0 + moveq r0, #1 + b _023386B4 +_023386AC: + bl ov01_0232B2CC + mov r0, #1 +_023386B4: + cmp r0, #0 + movne r0, #0xb + strne r0, [sb] + bne _02338838 + ldr r1, [sb, #0x50] + sub r0, r1, #1 + str r0, [sb, #0x50] + cmp r1, #0 + bge _02338838 + mov r0, #1 + bl ov01_0232B210 + mov r0, #0x258 + str r0, [sb, #0x50] + mov r0, #0xa + str r0, [sb] + b _02338838 +_023386F4: + mov r0, #0 + bl ov01_0232B210 + mov r0, #0xa + str r0, [sb] + mov r0, #0x258 + str r0, [sb, #0x50] + b _02338838 +_02338710: + bl ov01_0232AF4C + cmp r0, #2 + cmpne r0, #0 + movne r0, #0 + bne _0233872C + bl ov01_0232B2CC + mov r0, #1 +_0233872C: + cmp r0, #0 + beq _02338740 + bl FUN_02003BC8 + mov r0, #0xb + str r0, [sb] +_02338740: + ldr r1, [sb, #0x50] + sub r0, r1, #1 + str r0, [sb, #0x50] + cmp r1, #0 + bge _02338838 + mov r0, #1 + bl ov01_0232B210 + mov r0, #0x258 + str r0, [sb, #0x50] + b _02338838 +_02338768: + ldr r0, [sb, #0x30] + ldr r4, [sb, #0x20] + cmp r0, #4 + bne _023387F8 + bl ov01_023389B4 + cmp r0, #7 + addls pc, pc, r0, lsl #2 + b _02338804 +_02338788: @ jump table + b _02338804 @ case 0 + b _023387A8 @ case 1 + b _023387B0 @ case 2 + b _023387BC @ case 3 + b _023387C8 @ case 4 + b _023387D4 @ case 5 + b _023387E0 @ case 6 + b _023387EC @ case 7 +_023387A8: + mov r0, #4 + b _0233883C +_023387B0: + mov r0, #9 + str r0, [sb, #0x30] + b _02338804 +_023387BC: + mov r0, #0xa + str r0, [sb, #0x30] + b _02338804 +_023387C8: + mov r0, #0xb + str r0, [sb, #0x30] + b _02338804 +_023387D4: + mov r0, #0xc + str r0, [sb, #0x30] + b _02338804 +_023387E0: + mov r0, #0xd + str r0, [sb, #0x30] + b _02338804 +_023387EC: + mov r0, #0xe + str r0, [sb, #0x30] + b _02338804 +_023387F8: + cmp r0, #6 + moveq r0, #6 + beq _0233883C +_02338804: + bl FUN_02046BB4 + ldrb r1, [sb, #0x1c] + ldrb r2, [r4] + ldrb r3, [sb, #0x3e] + ldr r0, [sb, #0x30] + bl ov01_02337998 + mov r0, #0xc + str r0, [sb] + b _02338838 +_02338828: + bl FUN_02046C78 + cmp r0, #0 + ldrne r0, [sb, #0x30] + bne _0233883C +_02338838: + mov r0, #0 +_0233883C: + add sp, sp, #0x14 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02338844: .4byte 0x0233C210 +_02338848: .4byte 0x0233BD1C +_0233884C: .4byte 0x000036D8 +_02338850: .4byte 0x000036D9 +_02338854: .4byte ov01_02338864 +_02338858: .4byte 0x023389D4 +_0233885C: .4byte 0x0233BE24 +_02338860: .4byte 0x0233BE48 + arm_func_end ov01_02337E0C + + arm_func_start ov01_02338864 +ov01_02338864: @ 0x02338864 + push {r3, r4, lr} + sub sp, sp, #4 + ldr r2, _02338938 @ =0x0233C210 + mov r4, r1 + ldr r2, [r2, #4] + mov r0, #0 + ldr r1, [r2, #0x34] + strb r1, [sp] + ldr r1, [r2, #0x38] + strb r0, [sp, #2] + strb r1, [sp, #1] + ldrb r1, [r4] + ldr r3, [r2, #0x38] + cmp r3, r1 + ldrbeq r1, [r4, #1] + ldreq r3, [r2, #0x34] + cmpeq r3, r1 + beq _023388F0 + ldr r0, _02338938 @ =0x0233C210 + mov r1, #0 + str r1, [r0, #8] + ldrb r1, [r4] + ldr r0, [r2, #0x38] + cmp r0, r1 + strne r1, [r2, #0x38] + add r2, sp, #0 + mov r0, #0 + mov r1, #3 + bl ov01_0232B540 + cmp r0, #0 + ldreq r0, _02338938 @ =0x0233C210 + moveq r1, #0xa + ldreq r0, [r0, #4] + streq r1, [r0, #0x2c] + b _02338930 +_023388F0: + ldrb r1, [r2, #0x3d] + cmp r1, #0 + bne _02338930 + mov r1, #1 + strb r1, [r2, #0x3d] + strb r1, [sp, #2] + add r2, sp, #0 + mov r1, #3 + bl ov01_0232B540 + ldrb r1, [r4, #2] + cmp r1, #0 + cmpeq r0, #0 + ldreq r0, _02338938 @ =0x0233C210 + moveq r1, #0xa + ldreq r0, [r0, #4] + streq r1, [r0, #0x2c] +_02338930: + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02338938: .4byte 0x0233C210 + arm_func_end ov01_02338864 + + arm_func_start ov01_0233893C +ov01_0233893C: @ 0x0233893C + push {r3, lr} + ldr r0, _02338974 @ =0x0233C210 + ldr r0, [r0, #4] + ldr r0, [r0, #0x40] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _02338974 @ =0x0233C210 + mov r2, #0 + ldr r1, [r0, #4] + str r2, [r1, #0x40] + ldr r0, [r0, #4] + str r2, [r0, #0x44] + pop {r3, pc} + .align 2, 0 +_02338974: .4byte 0x0233C210 + arm_func_end ov01_0233893C + + arm_func_start ov01_02338978 +ov01_02338978: @ 0x02338978 + push {r3, lr} + ldr r0, _023389B0 @ =0x0233C210 + ldr r0, [r0, #4] + ldr r0, [r0, #0x48] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _023389B0 @ =0x0233C210 + mov r2, #0 + ldr r1, [r0, #4] + str r2, [r1, #0x48] + ldr r0, [r0, #4] + str r2, [r0, #0x4c] + pop {r3, pc} + .align 2, 0 +_023389B0: .4byte 0x0233C210 + arm_func_end ov01_02338978 + + arm_func_start ov01_023389B4 +ov01_023389B4: @ 0x023389B4 + ldr r0, _023389D0 @ =0x0233C210 + ldr r1, [r0, #4] + ldr r0, [r1, #0x34] + ldr r1, [r1, #0x38] + cmp r0, r1 + movlt r0, r1 + bx lr + .align 2, 0 +_023389D0: .4byte 0x0233C210 + arm_func_end ov01_023389B4 +_023389D4: + .byte 0x44, 0x10, 0x9F, 0xE5, 0x4A, 0x20, 0xD0, 0xE5, 0x04, 0x10, 0x91, 0xE5 + .byte 0x00, 0x00, 0x52, 0xE3, 0x20, 0x20, 0x91, 0xE5, 0x00, 0x00, 0xA0, 0x03, 0x1E, 0xFF, 0x2F, 0x01 + .byte 0x51, 0x10, 0xD0, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x01, 0x10, 0xD2, 0x15, 0x00, 0x00, 0x51, 0x13 + .byte 0x00, 0x00, 0xA0, 0x13, 0x1E, 0xFF, 0x2F, 0x11, 0x50, 0x10, 0xD0, 0xE5, 0x00, 0x00, 0xD2, 0xE5 + .byte 0x00, 0x00, 0x51, 0xE1, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0xA0, 0x13, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x10, 0xC2, 0x33, 0x02 + + arm_func_start ov01_02338A24 +ov01_02338A24: @ 0x02338A24 + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr r0, _02338B00 @ =0x00005004 + mov r1, #8 + bl FUN_02001170 + ldr r2, _02338B04 @ =0x0233C21C + ldr r1, _02338B00 @ =0x00005004 + str r0, [r2, #4] + bl FUN_02003250 + ldr r2, _02338B04 @ =0x0233C21C + mov r1, #0 + ldr r3, [r2, #4] + add r0, sp, #0 + str r1, [r3] + ldr r3, [r2, #4] + str r1, [r3, #0xc] + ldr r3, [r2, #4] + strb r1, [r3, #0x10] + ldr r3, [r2, #4] + strb r1, [r3, #0x11] + ldr r3, [r2, #4] + strb r1, [r3, #0x12] + ldr r3, [r2, #4] + str r1, [r3, #0x30] + ldr r3, [r2, #4] + strb r1, [r3, #0x28] + ldr r3, [r2, #4] + strb r1, [r3, #0x29] + ldr r3, [r2, #4] + strb r1, [r3, #0x2a] + ldr r3, [r2, #4] + strb r1, [r3, #0x2b] + ldr r3, [r2, #4] + strb r1, [r3, #0x2c] + ldr r3, [r2, #4] + str r1, [r3, #0x38] + ldr r3, [r2, #4] + str r1, [r3, #0x3c] + ldr r3, [r2, #4] + strb r1, [r3, #0x34] + ldr r2, [r2, #4] + add r2, r2, #0x4000 + str r1, [r2, #0xb5c] + bl FUN_02050B10 + ldr r0, _02338B04 @ =0x0233C21C + add r1, sp, #0 + ldr r0, [r0, #4] + mov r2, #0xa + add r0, r0, #0x14 + bl FUN_02025404 + bl ov01_0233A840 + bl ov01_0232C0CC + bl ov01_0232C2E4 + add sp, sp, #0xc + ldm sp!, {pc} + .align 2, 0 +_02338B00: .4byte 0x00005004 +_02338B04: .4byte 0x0233C21C + arm_func_end ov01_02338A24 + + arm_func_start ov01_02338B08 +ov01_02338B08: @ 0x02338B08 + push {r3, r4, r5, lr} + sub sp, sp, #0x50 + ldr r0, _02338BE8 @ =0x0233C21C + ldr r0, [r0, #4] + cmp r0, #0 + beq _02338BDC + bl FUN_022BD274 + cmp r0, #0 + bne _02338BBC + mov r5, #0 + add r4, sp, #0 +_02338B34: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl FUN_022BD2C0 + strb r0, [r4, r5] + add r5, r5, #1 + cmp r5, #0x10 + blt _02338B34 + ldr r0, _02338BE8 @ =0x0233C21C + mov r1, r4 + ldr r0, [r0, #4] + mov r2, #0x10 + add r0, r0, #0x71 + add r0, r0, #0x4f00 + bl FUN_022BD1D4 + cmp r0, #0 + moveq r0, #1 + beq _02338BAC + add r0, sp, #0x10 + mov r1, #0x10 + bl FUN_022BD1A0 + ldr r0, _02338BE8 @ =0x0233C21C + add r1, sp, #0x10 + ldr r0, [r0, #4] + mov r2, #0x10 + add r0, r0, #0x384 + add r0, r0, #0x4c00 + bl FUN_022BD21C + cmp r0, #0 + moveq r0, #1 + movne r0, #0 +_02338BAC: + cmp r0, #0 + beq _02338BBC + mov r0, #1 + bl FUN_022BD264 +_02338BBC: + bl ov01_0232C370 + bl ov01_0232C10C + ldr r0, _02338BE8 @ =0x0233C21C + ldr r0, [r0, #4] + bl FUN_02001188 + ldr r0, _02338BE8 @ =0x0233C21C + mov r1, #0 + str r1, [r0, #4] +_02338BDC: + bl FUN_022BD274 + add sp, sp, #0x50 + pop {r3, r4, r5, pc} + .align 2, 0 +_02338BE8: .4byte 0x0233C21C + arm_func_end ov01_02338B08 +_02338BEC: + .byte 0x00, 0x00, 0x50, 0xE3 + .byte 0x2C, 0x00, 0x9F, 0x15, 0x0D, 0x20, 0xA0, 0x13, 0x24, 0x00, 0x9F, 0x05, 0x0B, 0x20, 0xA0, 0x03 + .byte 0x04, 0xC0, 0x90, 0x05, 0x00, 0x30, 0x9C, 0x05, 0x04, 0x30, 0x8C, 0x05, 0x04, 0x00, 0x90, 0xE5 + .byte 0x00, 0x20, 0x80, 0xE5, 0x08, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x40, 0x10, 0xC0, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x1C, 0xC2, 0x33, 0x02, 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0xEC, 0x8B, 0x33, 0x02, 0x0C, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x00, 0x90, 0xE5 + .byte 0x12, 0x10, 0xC0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x1C, 0xC2, 0x33, 0x02, 0x38, 0x40, 0x2D, 0xE9 + .byte 0x01, 0x50, 0xA0, 0xE1, 0x0D, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x51, 0x00, 0x00, 0xEA + .byte 0x0C, 0x00, 0x00, 0xEA, 0x10, 0x00, 0x00, 0xEA, 0x14, 0x00, 0x00, 0xEA, 0x18, 0x00, 0x00, 0xEA + .byte 0x1C, 0x00, 0x00, 0xEA, 0x20, 0x00, 0x00, 0xEA, 0x24, 0x00, 0x00, 0xEA, 0x28, 0x00, 0x00, 0xEA + .byte 0x2C, 0x00, 0x00, 0xEA, 0x30, 0x00, 0x00, 0xEA, 0x34, 0x00, 0x00, 0xEA, 0x38, 0x00, 0x00, 0xEA + .byte 0x3C, 0x00, 0x00, 0xEA, 0x40, 0x00, 0x00, 0xEA, 0x40, 0x41, 0x9F, 0xE5, 0x09, 0x10, 0xFE, 0xEB + .byte 0x00, 0x10, 0xA0, 0xE1, 0xA4, 0x30, 0xA0, 0xE3, 0x3E, 0x00, 0x00, 0xEA, 0x30, 0x41, 0x9F, 0xE5 + .byte 0x04, 0x10, 0xFE, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x98, 0x30, 0xA0, 0xE3, 0x39, 0x00, 0x00, 0xEA + .byte 0x20, 0x41, 0x9F, 0xE5, 0xFF, 0x0F, 0xFE, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x20, 0x30, 0xA0, 0xE3 + .byte 0x34, 0x00, 0x00, 0xEA, 0x10, 0x41, 0x9F, 0xE5, 0xFA, 0x0F, 0xFE, 0xEB, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x0C, 0x30, 0xA0, 0xE3, 0x2F, 0x00, 0x00, 0xEA, 0x00, 0x41, 0x9F, 0xE5, 0xF5, 0x0F, 0xFE, 0xEB + .byte 0x00, 0x10, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE3, 0x2A, 0x00, 0x00, 0xEA, 0xF0, 0x40, 0x9F, 0xE5 + .byte 0xF0, 0x0F, 0xFE, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0xD4, 0x30, 0xA0, 0xE3, 0x25, 0x00, 0x00, 0xEA + .byte 0xE0, 0x40, 0x9F, 0xE5, 0xEB, 0x0F, 0xFE, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE3 + .byte 0x20, 0x00, 0x00, 0xEA, 0xD0, 0x40, 0x9F, 0xE5, 0xE6, 0x0F, 0xFE, 0xEB, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x7C, 0x30, 0xA0, 0xE3, 0x1B, 0x00, 0x00, 0xEA, 0xC0, 0x40, 0x9F, 0xE5, 0xE1, 0x0F, 0xFE, 0xEB + .byte 0x00, 0x10, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE3, 0x16, 0x00, 0x00, 0xEA, 0xB0, 0x40, 0x9F, 0xE5 + .byte 0xDC, 0x0F, 0xFE, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x43, 0x3F, 0xA0, 0xE3, 0x11, 0x00, 0x00, 0xEA + .byte 0xA0, 0x40, 0x9F, 0xE5, 0xD7, 0x0F, 0xFE, 0xEB, 0x00, 0x10, 0xA0, 0xE1, 0x18, 0x30, 0xA0, 0xE3 + .byte 0x0C, 0x00, 0x00, 0xEA, 0x90, 0x40, 0x9F, 0xE5, 0xD2, 0x0F, 0xFE, 0xEB, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x0C, 0x30, 0xA0, 0xE3, 0x07, 0x00, 0x00, 0xEA, 0x80, 0x40, 0x9F, 0xE5, 0xCD, 0x0F, 0xFE, 0xEB + .byte 0x00, 0x10, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE3, 0x02, 0x00, 0x00, 0xEA, 0x70, 0x40, 0x9F, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x30, 0xA0, 0xE3, 0x00, 0xC0, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x05, 0x20, 0xA0, 0xE1, 0x00, 0xC0, 0x8D, 0xE5, 0xA7, 0x04, 0x00, 0xEB, 0x01, 0x00, 0x50, 0xE3 + .byte 0x00, 0x00, 0xA0, 0x13, 0x38, 0x80, 0xBD, 0x18, 0x48, 0x00, 0x9F, 0xE5, 0x11, 0x20, 0xA0, 0xE3 + .byte 0x04, 0x10, 0x90, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0x81, 0xE5, 0x38, 0x80, 0xBD, 0xE8 + .byte 0x88, 0xBE, 0x33, 0x02, 0xA4, 0xBE, 0x33, 0x02, 0xC4, 0xBE, 0x33, 0x02, 0xE0, 0xBE, 0x33, 0x02 + .byte 0xFC, 0xBE, 0x33, 0x02, 0x18, 0xBF, 0x33, 0x02, 0x38, 0xBF, 0x33, 0x02, 0x54, 0xBF, 0x33, 0x02 + .byte 0x74, 0xBF, 0x33, 0x02, 0x94, 0xBF, 0x33, 0x02, 0xB0, 0xBF, 0x33, 0x02, 0xC8, 0xBF, 0x33, 0x02 + .byte 0xE0, 0xBF, 0x33, 0x02, 0xF8, 0xBF, 0x33, 0x02, 0x1C, 0xC2, 0x33, 0x02, 0x00, 0x00, 0x50, 0xE3 + .byte 0x1C, 0x10, 0x9F, 0x15, 0x04, 0x10, 0x91, 0x15, 0x54, 0x1B, 0x91, 0x15, 0x00, 0x10, 0x80, 0x15 + .byte 0x0C, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0xD6, 0x0F, 0x80, 0xE2, 0x02, 0x0B, 0x80, 0xE2 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x1C, 0xC2, 0x33, 0x02, 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0x18, 0xA3, 0x33, 0x02, 0x08, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x48, 0x00, 0x90, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x1C, 0xC2, 0x33, 0x02, 0x3C, 0x20, 0x9F, 0xE5, 0x04, 0x30, 0x92, 0xE5 + .byte 0x48, 0x20, 0x93, 0xE5, 0x02, 0x00, 0x50, 0xE1, 0x00, 0x00, 0xA0, 0xA3, 0x1E, 0xFF, 0x2F, 0xA1 + .byte 0x00, 0x00, 0x51, 0xE3, 0xB0, 0x20, 0xA0, 0x13, 0x90, 0x32, 0x22, 0x10, 0xFC, 0x20, 0x92, 0x15 + .byte 0x00, 0x20, 0x81, 0x15, 0x10, 0x10, 0x9F, 0xE5, 0x04, 0x10, 0x91, 0xE5, 0xD6, 0x1F, 0x81, 0xE2 + .byte 0x02, 0x1B, 0x81, 0xE2, 0x00, 0x05, 0x81, 0xE0, 0x1E, 0xFF, 0x2F, 0xE1, 0x1C, 0xC2, 0x33, 0x02 + .byte 0x08, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x2C, 0x00, 0xD0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x1C, 0xC2, 0x33, 0x02, 0x30, 0x40, 0x2D, 0xE9, 0x77, 0xDF, 0x4D, 0xE2, 0x30, 0x09, 0x9F, 0xE5 + .byte 0x04, 0x40, 0x90, 0xE5, 0xBF, 0x02, 0x00, 0xEB, 0x02, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x00, 0x1A + .byte 0x00, 0x00, 0x94, 0xE5, 0x0A, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x12, 0x00, 0xC4, 0x05 + .byte 0x00, 0x00, 0x94, 0xE5, 0x1A, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0xBA, 0x1F, 0x00, 0x50, 0xE3 + .byte 0x03, 0x00, 0x00, 0xDA, 0x00, 0x10, 0x94, 0xE5, 0x1A, 0x00, 0xA0, 0xE3, 0x08, 0x10, 0x84, 0xE5 + .byte 0x00, 0x00, 0x84, 0xE5, 0x34, 0x00, 0xD4, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x0A + .byte 0x51, 0x13, 0xFE, 0xEB, 0x06, 0x00, 0x80, 0xE2, 0x00, 0x08, 0xA0, 0xE1, 0x20, 0x08, 0xA0, 0xE1 + .byte 0xA8, 0xCC, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0x44, 0xCD, 0xFF, 0xEB + .byte 0x12, 0x00, 0xD4, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0xA0, 0x13, 0x2A, 0x02, 0x00, 0x1A + .byte 0x00, 0x00, 0x94, 0xE5, 0x21, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x25, 0x02, 0x00, 0xEA + .byte 0x20, 0x00, 0x00, 0xEA, 0x62, 0x00, 0x00, 0xEA, 0x6B, 0x00, 0x00, 0xEA, 0x7A, 0x00, 0x00, 0xEA + .byte 0x91, 0x00, 0x00, 0xEA, 0x9D, 0x00, 0x00, 0xEA, 0xA6, 0x00, 0x00, 0xEA, 0xAF, 0x00, 0x00, 0xEA + .byte 0xB3, 0x00, 0x00, 0xEA, 0xB8, 0x00, 0x00, 0xEA, 0xBC, 0x00, 0x00, 0xEA, 0xBD, 0x00, 0x00, 0xEA + .byte 0xC6, 0x00, 0x00, 0xEA, 0xDB, 0x00, 0x00, 0xEA, 0xE2, 0x00, 0x00, 0xEA, 0xE6, 0x00, 0x00, 0xEA + .byte 0xF0, 0x00, 0x00, 0xEA, 0xFA, 0x00, 0x00, 0xEA, 0x0A, 0x01, 0x00, 0xEA, 0x1A, 0x01, 0x00, 0xEA + .byte 0x21, 0x01, 0x00, 0xEA, 0x3E, 0x01, 0x00, 0xEA, 0x7A, 0x01, 0x00, 0xEA, 0x84, 0x01, 0x00, 0xEA + .byte 0x8B, 0x01, 0x00, 0xEA, 0x8F, 0x01, 0x00, 0xEA, 0x93, 0x01, 0x00, 0xEA, 0xD5, 0x01, 0x00, 0xEA + .byte 0xD9, 0x01, 0x00, 0xEA, 0xDD, 0x01, 0x00, 0xEA, 0xE6, 0x01, 0x00, 0xEA, 0xF9, 0x01, 0x00, 0xEA + .byte 0xFC, 0x01, 0x00, 0xEA, 0xFF, 0x01, 0x00, 0xEA, 0x77, 0x44, 0xF4, 0xEB, 0xA3, 0x0E, 0xFE, 0xEB + .byte 0x03, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0x1A, 0x0E, 0x00, 0xA0, 0xE3, 0x38, 0x00, 0x84, 0xE5 + .byte 0x01, 0x00, 0xA0, 0xE3, 0x3C, 0x00, 0x84, 0xE5, 0x08, 0x00, 0xA0, 0xE3, 0x30, 0x00, 0x84, 0xE5 + .byte 0x1A, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x84, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x08, 0x00, 0x84, 0xE5 + .byte 0xF4, 0x01, 0x00, 0xEA, 0xE0, 0x00, 0xA0, 0xE3, 0xA0, 0x10, 0xA0, 0xE3, 0x01, 0x20, 0xA0, 0xE3 + .byte 0x44, 0xCC, 0xFF, 0xEB, 0xEC, 0x00, 0xA0, 0xE3, 0x1C, 0x10, 0xA0, 0xE3, 0x07, 0x20, 0xA0, 0xE3 + .byte 0x06, 0x30, 0xA0, 0xE3, 0xD8, 0xCC, 0xFF, 0xEB, 0x17, 0x0F, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x0A, 0x00, 0x00, 0x1A, 0xA8, 0x07, 0x9F, 0xE5, 0xA8, 0x27, 0x9F, 0xE5, 0xD1, 0x50, 0xD0, 0xE1 + .byte 0xA4, 0x37, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x08, 0x10, 0xA0, 0xE3, 0x00, 0x50, 0x8D, 0xE5 + .byte 0x89, 0x36, 0xF4, 0xEB, 0x02, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x84, 0xE5, 0xDD, 0x01, 0x00, 0xEA + .byte 0x1B, 0x0F, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0E, 0x00, 0x00, 0x1A, 0x01, 0x00, 0xA0, 0xE3 + .byte 0xA4, 0x00, 0x8D, 0xE5, 0x6C, 0x17, 0x9F, 0xE5, 0x70, 0x07, 0x9F, 0xE5, 0x00, 0x10, 0x8D, 0xE5 + .byte 0x04, 0x00, 0x8D, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0xA4, 0x30, 0x8D, 0xE2, 0x08, 0x10, 0xA0, 0xE3 + .byte 0x33, 0x20, 0xA0, 0xE3, 0x08, 0x00, 0x8D, 0xE5, 0x58, 0x36, 0xF4, 0xEB, 0x03, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x84, 0xE5, 0xCB, 0x01, 0x00, 0xEA, 0x34, 0x17, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3 + .byte 0xD0, 0x50, 0xD1, 0xE1, 0x2C, 0x27, 0x9F, 0xE5, 0x34, 0x37, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x00, 0x50, 0x8D, 0xE5, 0x6C, 0x36, 0xF4, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x84, 0xE5 + .byte 0xC0, 0x01, 0x00, 0xEA, 0xCF, 0x01, 0x00, 0xEB, 0x02, 0x00, 0x50, 0xE3, 0x05, 0x00, 0xA0, 0x03 + .byte 0x00, 0x00, 0x84, 0x05, 0xBB, 0x01, 0x00, 0x0A, 0x03, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x50, 0x13 + .byte 0x20, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x84, 0x05, 0xB6, 0x01, 0x00, 0xEA, 0xCF, 0x01, 0x00, 0xEB + .byte 0x02, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x1A, 0xF1, 0x0F, 0x84, 0xE2, 0x13, 0x0B, 0x80, 0xE2 + .byte 0xF6, 0x0E, 0xFE, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x11, 0x00, 0xC4, 0xE5, 0x05, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x84, 0xE5, 0xAB, 0x01, 0x00, 0xEA, 0x03, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x50, 0x13 + .byte 0x20, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x84, 0x05, 0xA6, 0x01, 0x00, 0xEA, 0x68, 0x36, 0xF4, 0xEB + .byte 0x10, 0x02, 0x00, 0xEB, 0x02, 0x00, 0x50, 0xE3, 0x0E, 0x00, 0x00, 0x1A, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x0C, 0x00, 0x8D, 0xE5, 0x8C, 0x16, 0x9F, 0xE5, 0x98, 0x06, 0x9F, 0xE5, 0x00, 0x10, 0x8D, 0xE5 + .byte 0x04, 0x00, 0x8D, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x0C, 0x30, 0x8D, 0xE2, 0x08, 0x10, 0xA0, 0xE3 + .byte 0x33, 0x20, 0xA0, 0xE3, 0x08, 0x00, 0x8D, 0xE5, 0x20, 0x36, 0xF4, 0xEB, 0x04, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x84, 0xE5, 0x93, 0x01, 0x00, 0xEA, 0x03, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x50, 0x13 + .byte 0x20, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x84, 0x05, 0x8E, 0x01, 0x00, 0xEA, 0x50, 0x36, 0xF4, 0xEB + .byte 0xF8, 0x01, 0x00, 0xEB, 0x02, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x10, 0x00, 0xC4, 0x05 + .byte 0x05, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x84, 0x05, 0x86, 0x01, 0x00, 0x0A, 0x03, 0x00, 0x50, 0xE3 + .byte 0x01, 0x00, 0x50, 0x13, 0x20, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x84, 0x05, 0x81, 0x01, 0x00, 0xEA + .byte 0x00, 0x00, 0xA0, 0xE3, 0x20, 0x16, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE1, 0x79, 0x36, 0xF4, 0xEB + .byte 0x01, 0x00, 0xA0, 0xE3, 0x34, 0x00, 0xC4, 0xE5, 0x61, 0x2A, 0xF3, 0xEB, 0x06, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x84, 0xE5, 0x77, 0x01, 0x00, 0xEA, 0x96, 0x36, 0xF4, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x74, 0x01, 0x00, 0x0A, 0xD8, 0x05, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE3, 0x04, 0x10, 0x90, 0xE5 + .byte 0x07, 0x00, 0xA0, 0xE3, 0x0C, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x84, 0xE5, 0x6D, 0x01, 0x00, 0xEA + .byte 0x2A, 0x00, 0xD4, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0xA0, 0x13, 0x00, 0x00, 0x84, 0x15 + .byte 0x68, 0x01, 0x00, 0xEA, 0xC4, 0x15, 0x9F, 0xE5, 0x1C, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3 + .byte 0x60, 0x36, 0xF4, 0xEB, 0x09, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x84, 0xE5, 0x81, 0x36, 0xF4, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0xA0, 0x13, 0x00, 0x00, 0x84, 0x15, 0x5D, 0x01, 0x00, 0xEA + .byte 0x04, 0x00, 0xA0, 0xE3, 0x5C, 0x01, 0x00, 0xEA, 0x78, 0x25, 0x9F, 0xE5, 0x01, 0x50, 0xA0, 0xE3 + .byte 0x8C, 0x35, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x08, 0x10, 0xA0, 0xE3, 0x00, 0x50, 0x8D, 0xE5 + .byte 0xFD, 0x35, 0xF4, 0xEB, 0x0C, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x84, 0xE5, 0x51, 0x01, 0x00, 0xEA + .byte 0x13, 0x36, 0xF4, 0xEB, 0xBB, 0x01, 0x00, 0xEB, 0x02, 0x00, 0x50, 0xE3, 0x0D, 0x00, 0xA0, 0x03 + .byte 0x00, 0x00, 0x84, 0x05, 0x4B, 0x01, 0x00, 0x0A, 0x03, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x50, 0x13 + .byte 0x48, 0x01, 0x00, 0x1A, 0x9F, 0x01, 0x00, 0xEB, 0x04, 0x00, 0x94, 0xE5, 0x11, 0x00, 0x40, 0xE2 + .byte 0x01, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x8A, 0x61, 0x00, 0x84, 0xE2, 0x4B, 0x1C, 0x80, 0xE2 + .byte 0x01, 0x0B, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x4C, 0x36, 0xF4, 0xEB, 0x04, 0x00, 0x94, 0xE5 + .byte 0x00, 0x00, 0x84, 0xE5, 0x3B, 0x01, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3, 0x14, 0x15, 0x9F, 0xE5 + .byte 0x00, 0x20, 0xA0, 0xE1, 0x33, 0x36, 0xF4, 0xEB, 0x18, 0x03, 0x00, 0xEB, 0x0E, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x84, 0xE5, 0x33, 0x01, 0x00, 0xEA, 0x52, 0x36, 0xF4, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x0F, 0x00, 0xA0, 0x13, 0x00, 0x00, 0x84, 0x15, 0x2E, 0x01, 0x00, 0xEA, 0x28, 0x00, 0xD4, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x2B, 0x01, 0x00, 0x1A, 0x1C, 0x00, 0xA0, 0xE3, 0xDE, 0x1D, 0x60, 0xE2 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x23, 0x36, 0xF4, 0xEB, 0x1A, 0x2A, 0xF3, 0xEB, 0x10, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x84, 0xE5, 0x23, 0x01, 0x00, 0xEA, 0x42, 0x36, 0xF4, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x20, 0x01, 0x00, 0x0A, 0x40, 0x00, 0xD4, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x21, 0x00, 0xA0, 0xE3 + .byte 0x04, 0x00, 0x84, 0x15, 0x13, 0x00, 0xA0, 0x13, 0x00, 0x00, 0x84, 0x15, 0x00, 0x00, 0x84, 0x05 + .byte 0x18, 0x01, 0x00, 0xEA, 0x0C, 0x00, 0x94, 0xE5, 0x09, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0xA0, 0x03 + .byte 0x00, 0x00, 0x84, 0x05, 0x13, 0x01, 0x00, 0x0A, 0x50, 0x01, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x10, 0x01, 0x00, 0x0A, 0x5B, 0x01, 0x00, 0xEB, 0x61, 0x00, 0x84, 0xE2, 0x4B, 0x0C, 0x80, 0xE2 + .byte 0x01, 0x1B, 0xA0, 0xE3, 0x5E, 0x36, 0xF4, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x05, 0xFE, 0xFF, 0xEB, 0x07, 0x01, 0x00, 0xEA, 0x0C, 0x00, 0x94, 0xE5, 0x09, 0x00, 0x50, 0xE3 + .byte 0x0A, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x84, 0x05, 0x02, 0x01, 0x00, 0x0A, 0x3F, 0x01, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0xFF, 0x00, 0x00, 0x0A, 0x4A, 0x01, 0x00, 0xEB, 0x61, 0x00, 0x84, 0xE2 + .byte 0x4B, 0x0C, 0x80, 0xE2, 0x01, 0x1B, 0xA0, 0xE3, 0x4D, 0x36, 0xF4, 0xEB, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x10, 0xA0, 0xE1, 0xF4, 0xFD, 0xFF, 0xEB, 0xF6, 0x00, 0x00, 0xEA, 0xD7, 0x10, 0xFE, 0xEB + .byte 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x14, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE1, 0xED, 0x35, 0xF4, 0xEB + .byte 0x14, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x84, 0xE5, 0xEE, 0x00, 0x00, 0xEA, 0x0D, 0x36, 0xF4, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0xEB, 0x00, 0x00, 0x0A, 0x34, 0x00, 0xD4, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x02, 0x00, 0x00, 0x0A, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE1, 0xFC, 0xCB, 0xFF, 0xEB + .byte 0xE0, 0x00, 0xA0, 0xE3, 0x88, 0x10, 0xA0, 0xE3, 0x01, 0x20, 0xA0, 0xE3, 0xC5, 0xC2, 0xF3, 0xEB + .byte 0x15, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x84, 0xE5, 0x10, 0x00, 0xD4, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x0B, 0x00, 0x00, 0x0A, 0xDA, 0x0F, 0xFE, 0xEB, 0xDF, 0x88, 0xF4, 0xEB, 0x00, 0x00, 0xA0, 0xE3 + .byte 0xB9, 0x88, 0xF4, 0xEB, 0x00, 0x10, 0xA0, 0xE3, 0x0C, 0x10, 0x80, 0xE5, 0x10, 0x10, 0x80, 0xE5 + .byte 0x01, 0x00, 0xA0, 0xE1, 0x0C, 0x7F, 0xF4, 0xEB, 0x0F, 0x10, 0xFE, 0xEB, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x10, 0x00, 0xC4, 0xE5, 0x03, 0x00, 0xA0, 0xE3, 0xB1, 0x3E, 0xF4, 0xEB, 0x00, 0x50, 0xA0, 0xE1 + .byte 0xBD, 0xC2, 0xF3, 0xEB, 0x00, 0x00, 0x55, 0xE3, 0x0B, 0x00, 0x00, 0x1A, 0x11, 0x10, 0xD4, 0xE5 + .byte 0x1C, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x00, 0x51, 0xE3, 0x00, 0x00, 0xA0, 0x13 + .byte 0x8F, 0x1F, 0xA0, 0xE3, 0x11, 0x00, 0xC4, 0x15, 0xBE, 0x35, 0xF4, 0xEB, 0xD3, 0x04, 0x00, 0xEB + .byte 0x16, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x84, 0xE5, 0xBE, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x55, 0xE3 + .byte 0x0C, 0x00, 0x94, 0xE5, 0x12, 0x00, 0x00, 0x1A, 0x06, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x1A + .byte 0x10, 0x00, 0xA0, 0xE3, 0x38, 0x00, 0x84, 0xE5, 0x07, 0x00, 0xA0, 0xE3, 0x3C, 0x00, 0x84, 0xE5 + .byte 0x08, 0x00, 0xA0, 0xE3, 0x30, 0x00, 0x84, 0xE5, 0x1A, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x84, 0xE5 + .byte 0xB0, 0x00, 0x00, 0xEA, 0x01, 0x0B, 0xA0, 0xE3, 0x8E, 0x1F, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3 + .byte 0xA8, 0x35, 0xF4, 0xEB, 0xFD, 0xCB, 0xFF, 0xEB, 0x19, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x84, 0xE5 + .byte 0xA8, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x1A, 0x0F, 0x00, 0xA0, 0xE3 + .byte 0x38, 0x00, 0x84, 0xE5, 0x06, 0x00, 0xA0, 0xE3, 0x3C, 0x00, 0x84, 0xE5, 0x08, 0x00, 0xA0, 0xE3 + .byte 0x30, 0x00, 0x84, 0xE5, 0x1A, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x84, 0xE5, 0x9D, 0x00, 0x00, 0xEA + .byte 0x11, 0x10, 0xD4, 0xE5, 0x1C, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x00, 0x51, 0xE3 + .byte 0x98, 0x12, 0x9F, 0xE5, 0x00, 0x00, 0xA0, 0x13, 0x92, 0x35, 0xF4, 0xEB, 0x18, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x84, 0xE5, 0x93, 0x00, 0x00, 0xEA, 0xB2, 0x35, 0xF4, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x90, 0x00, 0x00, 0x0A, 0x48, 0x02, 0x9F, 0xE5, 0x3C, 0x20, 0xA0, 0xE3, 0x04, 0x00, 0x90, 0xE5 + .byte 0x17, 0x10, 0xA0, 0xE3, 0x01, 0x09, 0x80, 0xE2, 0x5C, 0x2B, 0x80, 0xE5, 0x00, 0x10, 0x84, 0xE5 + .byte 0x88, 0x00, 0x00, 0xEA, 0x01, 0x09, 0x84, 0xE2, 0x5C, 0x1B, 0x90, 0xE5, 0x01, 0x10, 0x41, 0xE2 + .byte 0x5C, 0x1B, 0x80, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x04, 0x00, 0x94, 0xD5, 0x00, 0x00, 0x84, 0xD5 + .byte 0x80, 0x00, 0x00, 0xEA, 0x9F, 0x35, 0xF4, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x7D, 0x00, 0x00, 0x0A + .byte 0x08, 0x00, 0xA0, 0xE3, 0x7C, 0x00, 0x00, 0xEA, 0x9A, 0x35, 0xF4, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x78, 0x00, 0x00, 0x0A, 0xDE, 0x29, 0xF3, 0xEB, 0xFE, 0xFF, 0xFF, 0xEA, 0x63, 0x0F, 0x8D, 0xE2 + .byte 0x1A, 0xA8, 0xF3, 0xEB, 0x38, 0x00, 0x94, 0xE5, 0x00, 0x00, 0x60, 0xE2, 0xB0, 0x01, 0x8D, 0xE5 + .byte 0x5F, 0x35, 0xF4, 0xEB, 0x3C, 0x00, 0x94, 0xE5, 0x07, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90 + .byte 0x6C, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA + .byte 0x11, 0x00, 0x00, 0xEA, 0x10, 0x00, 0x00, 0xEA, 0x0F, 0x00, 0x00, 0xEA, 0x0E, 0x00, 0x00, 0xEA + .byte 0x21, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x94, 0xE5, 0x00, 0x00, 0x84, 0xE5, 0x61, 0x00, 0x00, 0xEA + .byte 0xEB, 0x11, 0xFE, 0xEB, 0x38, 0x00, 0x94, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x8C, 0x04, 0x00, 0xEB + .byte 0x00, 0x10, 0xA0, 0xE1, 0x63, 0x2F, 0x8D, 0xE2, 0x1C, 0x00, 0xA0, 0xE3, 0x55, 0x35, 0xF4, 0xEB + .byte 0x1B, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x84, 0xE5, 0x56, 0x00, 0x00, 0xEA, 0x37, 0x02, 0x00, 0xEB + .byte 0x11, 0x00, 0xD4, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0xF1, 0x0F, 0x84, 0xE2 + .byte 0x13, 0x0B, 0x80, 0xE2, 0x9C, 0x0D, 0xFE, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x11, 0x00, 0xC4, 0xE5 + .byte 0xD7, 0x11, 0xFE, 0xEB, 0x38, 0x00, 0x94, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x78, 0x04, 0x00, 0xEB + .byte 0x00, 0x10, 0xA0, 0xE1, 0x63, 0x2F, 0x8D, 0xE2, 0x1C, 0x00, 0xA0, 0xE3, 0x41, 0x35, 0xF4, 0xEB + .byte 0x1C, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x84, 0xE5, 0x42, 0x00, 0x00, 0xEA, 0x38, 0x00, 0x94, 0xE5 + .byte 0x01, 0x10, 0xA0, 0xE3, 0x10, 0x00, 0x50, 0xE3, 0x01, 0x5B, 0xA0, 0x03, 0x1C, 0x50, 0xA0, 0x13 + .byte 0x6B, 0x04, 0x00, 0xEB, 0x05, 0x38, 0xA0, 0xE1, 0x00, 0x10, 0xA0, 0xE1, 0x63, 0x2F, 0x8D, 0xE2 + .byte 0x23, 0x08, 0xA0, 0xE1, 0x33, 0x35, 0xF4, 0xEB, 0x88, 0xCB, 0xFF, 0xEB, 0x1E, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x84, 0xE5, 0x33, 0x00, 0x00, 0xEA, 0x52, 0x35, 0xF4, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x08, 0x00, 0x94, 0x15, 0x00, 0x00, 0x84, 0x15, 0x2E, 0x00, 0x00, 0xEA, 0x4D, 0x35, 0xF4, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x1D, 0x00, 0xA0, 0x13, 0x00, 0x00, 0x84, 0x15, 0x29, 0x00, 0x00, 0xEA + .byte 0x28, 0x00, 0xD4, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x26, 0x00, 0x00, 0x1A, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x11, 0x0D, 0xFE, 0xEB, 0x17, 0x29, 0xF3, 0xEB, 0x30, 0x00, 0x94, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x08, 0x00, 0xA0, 0x03, 0x20, 0x00, 0x00, 0xEA, 0x3E, 0x35, 0xF4, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x1C, 0x00, 0x00, 0x0A, 0x38, 0x00, 0x94, 0xE5, 0x10, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x1A + .byte 0x7F, 0x29, 0xF3, 0xEB, 0xFE, 0xFF, 0xFF, 0xEA, 0x4F, 0x0F, 0x8D, 0xE2, 0xBB, 0xA7, 0xF3, 0xEB + .byte 0x38, 0x00, 0x94, 0xE5, 0x88, 0x10, 0x9F, 0xE5, 0x00, 0x30, 0x60, 0xE2, 0x4F, 0x2F, 0x8D, 0xE2 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x60, 0x31, 0x8D, 0xE5, 0x0A, 0x35, 0xF4, 0xEB, 0x1F, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x84, 0xE5, 0x0B, 0x00, 0x00, 0xEA, 0x2A, 0x35, 0xF4, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x08, 0x00, 0x00, 0x0A, 0xFE, 0xFF, 0xFF, 0xEA, 0x00, 0x00, 0xA0, 0xE3, 0xF2, 0x0C, 0xFE, 0xEB + .byte 0x01, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3, 0xEE, 0x0C, 0xFE, 0xEB + .byte 0x06, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3, 0x77, 0xDF, 0x8D, 0xE2 + .byte 0x30, 0x80, 0xBD, 0xE8, 0x1C, 0xC2, 0x33, 0x02, 0x70, 0xBE, 0x33, 0x02, 0x5D, 0x37, 0x00, 0x00 + .byte 0x5E, 0x37, 0x00, 0x00, 0x5C, 0x37, 0x00, 0x00, 0x5F, 0x37, 0x00, 0x00, 0x61, 0x37, 0x00, 0x00 + .byte 0x65, 0x37, 0x00, 0x00, 0x62, 0x37, 0x00, 0x00, 0x63, 0x37, 0x00, 0x00, 0x3B, 0x02, 0x00, 0x00 + .byte 0x39, 0x02, 0x00, 0x00, 0x85, 0x37, 0x00, 0x00, 0x10, 0x40, 0x2D, 0xE9, 0xB0, 0x34, 0xF4, 0xEB + .byte 0x58, 0x00, 0x00, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0xD4, 0x34, 0xF4, 0xEB, 0x08, 0x10, 0x9F, 0xE5 + .byte 0x00, 0x00, 0xC1, 0xE5, 0x04, 0x00, 0xA0, 0xE1, 0x10, 0x80, 0xBD, 0xE8, 0x1C, 0xC2, 0x33, 0x02 + .byte 0x10, 0x40, 0x2D, 0xE9, 0xA6, 0x34, 0xF4, 0xEB, 0x4E, 0x00, 0x00, 0xEB, 0x00, 0x40, 0xA0, 0xE1 + .byte 0xCA, 0x34, 0xF4, 0xEB, 0x08, 0x10, 0x9F, 0xE5, 0x01, 0x00, 0xC1, 0xE5, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x10, 0x80, 0xBD, 0xE8, 0x1C, 0xC2, 0x33, 0x02, 0x0C, 0xC0, 0x9F, 0xE5, 0x0C, 0x10, 0x9F, 0xE5 + .byte 0x1C, 0x00, 0xA0, 0xE3, 0x00, 0x20, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0xE8, 0x6B, 0x04, 0x02 + .byte 0x73, 0x37, 0x00, 0x00, 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x78, 0x6C, 0x04, 0x02 + .byte 0x34, 0x20, 0x9F, 0xE5, 0x04, 0x30, 0x92, 0xE5, 0x00, 0x20, 0x93, 0xE5, 0x0A, 0x00, 0x52, 0xE3 + .byte 0x00, 0x00, 0xA0, 0x13, 0x1E, 0xFF, 0x2F, 0x11, 0x38, 0x00, 0x83, 0xE5, 0x3C, 0x10, 0x83, 0xE5 + .byte 0x08, 0x10, 0xA0, 0xE3, 0x1A, 0x00, 0xA0, 0xE3, 0x30, 0x10, 0x83, 0xE5, 0x00, 0x00, 0x83, 0xE5 + .byte 0x08, 0x00, 0x83, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1, 0x1C, 0xC2, 0x33, 0x02 + .byte 0x08, 0x40, 0x2D, 0xE9, 0x00, 0x10, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0x56, 0x32, 0xF3, 0xEB + .byte 0xB0, 0x00, 0xDD, 0xE1, 0x02, 0x00, 0x10, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0xB7, 0x33, 0xF4, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x01, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8, 0x20, 0x10, 0x9F, 0xE5, 0x20, 0x30, 0x9F, 0xE5 + .byte 0x04, 0x00, 0x91, 0xE5, 0x01, 0x20, 0xA0, 0xE3, 0x01, 0x09, 0x80, 0xE2, 0x58, 0x3B, 0x80, 0xE5 + .byte 0x04, 0x00, 0x91, 0xE5, 0x01, 0x09, 0x80, 0xE2, 0x60, 0x2B, 0xC0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x1C, 0xC2, 0x33, 0x02, 0x30, 0x2A, 0x00, 0x00, 0x20, 0x10, 0x9F, 0xE5, 0x20, 0x30, 0x9F, 0xE5 + .byte 0x04, 0x00, 0x91, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x01, 0x09, 0x80, 0xE2, 0x58, 0x3B, 0x80, 0xE5 + .byte 0x04, 0x00, 0x91, 0xE5, 0x01, 0x09, 0x80, 0xE2, 0x60, 0x2B, 0xC0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x1C, 0xC2, 0x33, 0x02, 0x20, 0x1C, 0x00, 0x00, 0x10, 0x00, 0x9F, 0xE5, 0x10, 0x10, 0x9F, 0xE5 + .byte 0x04, 0x00, 0x90, 0xE5, 0x01, 0x09, 0x80, 0xE2, 0x58, 0x1B, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x1C, 0xC2, 0x33, 0x02, 0x30, 0x2A, 0x00, 0x00, 0x01, 0x20, 0xE0, 0xE3, 0x02, 0x00, 0x50, 0xE1 + .byte 0x01, 0x00, 0xA0, 0x03, 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0x10, 0x42, 0xE2, 0x01, 0x00, 0x50, 0xE1 + .byte 0x01, 0x00, 0xA0, 0x03, 0x1E, 0xFF, 0x2F, 0x01, 0x01, 0x10, 0x82, 0xE2, 0x01, 0x00, 0x50, 0xE1 + .byte 0x00, 0x00, 0xA0, 0x03, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov01_023399D8 +ov01_023399D8: @ 0x023399D8 + push {r3, r4, lr} + sub sp, sp, #0x4c + ldr r0, _02339F78 @ =0x0233C21C + ldr r4, [r0, #4] + ldr r0, [r4, #0xc] + cmp r0, #0xc + addls pc, pc, r0, lsl #2 + b _02339F6C +_023399F8: @ jump table + b _02339F6C @ case 0 + b _02339A2C @ case 1 + b _02339A3C @ case 2 + b _02339AA4 @ case 3 + b _02339ABC @ case 4 + b _02339AE8 @ case 5 + b _02339B54 @ case 6 + b _02339C14 @ case 7 + b _02339C98 @ case 8 + b _02339CDC @ case 9 + b _02339D74 @ case 10 + b _02339EB0 @ case 11 + b _02339F54 @ case 12 +_02339A2C: + bl FUN_022BD798 + mov r0, #2 + str r0, [r4, #0xc] + b _02339F6C +_02339A3C: + bl FUN_022BD7B8 + cmp r0, #0 + beq _02339F6C + bl FUN_022BD7E8 + cmp r0, #4 + beq _02339A68 + bl ov01_0233A7FC + mov r0, #8 + str r0, [r4, #0x30] + mov r0, #2 + b _02339F70 +_02339A68: + ldrb r0, [r4, #0x10] + cmp r0, #0 + beq _02339A90 + add r0, r4, #0x3c4 + add r0, r0, #0x4c00 + bl FUN_022BCD10 + mov r0, #1 + bl FUN_022BCC30 + mov r0, #1 + strb r0, [r4, #0x11] +_02339A90: + mov r0, #1 + strb r0, [r4, #0x28] + mov r0, #4 + str r0, [r4, #0xc] + b _02339F6C +_02339AA4: + bl FUN_022BD7D8 + cmp r0, #0 + movne r0, #0 + strbne r0, [r4, #0x28] + strne r0, [r4, #0xc] + b _02339F6C +_02339ABC: + add r0, r4, #0x14 + bl FUN_022BD870 + cmp r0, #0 + bne _02339AE0 + bl ov01_0233A7FC + mov r0, #8 + str r0, [r4, #0x30] + mov r0, #2 + b _02339F70 +_02339AE0: + mov r0, #5 + str r0, [r4, #0xc] +_02339AE8: + bl FUN_022BD8FC + bl ov01_0233A7FC + cmp r0, #0 + movne r0, #2 + bne _02339F70 + bl FUN_022BD908 + cmp r0, #0 + beq _02339F6C + bl FUN_022BCC90 + cmp r0, #0 + beq _02339B48 + ldrb r0, [r4, #0x11] + ldr r1, _02339F7C @ =0x00002A30 + cmp r0, #0 + movne r0, #8 + moveq r0, #7 + str r0, [r4, #4] + add r0, r4, #0x4000 + str r1, [r0, #0xb58] + mov r0, #0x13 + str r0, [r4] + mov r0, #6 + str r0, [r4, #0xc] + b _02339F6C +_02339B48: + mov r0, #7 + str r0, [r4, #0xc] + b _02339F6C +_02339B54: + bl FUN_022BD8FC + bl ov01_0233A7FC + cmp r0, #0 + movne r0, #2 + bne _02339F70 + ldr r0, [r4] + cmp r0, #7 + moveq r0, #7 + streq r0, [r4, #0xc] + ldr r0, [r4] + cmp r0, #0x16 + cmpne r0, #0x17 + cmpne r0, #0x18 + cmpne r0, #9 + bne _02339F6C + add r1, sp, #2 + mov r0, #0 + bl FUN_020061EC + bl FUN_0204AE60 + cmp r0, #0 + moveq r0, #0 + beq _02339BC4 + add r0, sp, #0x28 + bl FUN_02006C1C + add r0, sp, #0x28 + mov r1, #1 + mov r2, #0 + bl FUN_02006C8C +_02339BC4: + ldrh r1, [sp, #2] + cmp r1, #0 + cmpeq r0, #0 + ldrne r1, _02339F7C @ =0x00002A30 + addne r0, r4, #0x4000 + strne r1, [r0, #0xb58] + add r0, r4, #0x4000 + ldr r1, [r0, #0xb58] + cmp r1, #0 + subgt r1, r1, #1 + strgt r1, [r0, #0xb58] + bgt _02339F6C + mov r0, #0x12 + str r0, [r4, #0x38] + mov r0, #6 + str r0, [r4, #0x3c] + mov r0, #8 + str r0, [r4, #0x30] + mov r0, #2 + b _02339F70 +_02339C14: + bl FUN_022BD8FC + bl ov01_0233A7FC + cmp r0, #0 + movne r0, #2 + bne _02339F70 + ldr r0, [r4] + cmp r0, #7 + bne _02339F6C + bl FUN_022BD918 + cmp r0, #2 + bne _02339C60 + mov r0, #3 + str r0, [r4, #0x38] + mov r0, #6 + str r0, [r4, #0x3c] + mov r0, #8 + str r0, [r4, #0x30] + mov r0, #2 + b _02339F70 +_02339C60: + bl FUN_022BD480 + cmp r0, #0 + mov r0, #1 + strbne r0, [r4, #0x29] + movne r0, #8 + strne r0, [r4, #0xc] + bne _02339F6C + str r0, [r4, #0x38] + mov r0, #6 + str r0, [r4, #0x3c] + mov r0, #8 + str r0, [r4, #0x30] + mov r0, #2 + b _02339F70 +_02339C98: + bl FUN_022BD8FC + bl ov01_0233A7FC + cmp r0, #0 + movne r0, #2 + bne _02339F70 + bl FUN_022BD4DC + cmp r0, #0 + beq _02339F6C + mov r0, #1 + strb r0, [r4, #0x2c] + ldr r1, _02339F7C @ =0x00002A30 + strb r0, [r4, #0x2a] + add r0, r4, #0x4000 + str r1, [r0, #0xb58] + mov r0, #9 + str r0, [r4, #0xc] + b _02339F6C +_02339CDC: + bl FUN_022BD8FC + bl ov01_0233A7FC + cmp r0, #0 + movne r0, #2 + bne _02339F70 + add r1, sp, #0 + mov r0, #0 + bl FUN_020061EC + bl FUN_0204AE60 + cmp r0, #0 + moveq r0, #0 + beq _02339D24 + add r0, sp, #4 + bl FUN_02006C1C + add r0, sp, #4 + mov r1, #1 + mov r2, #0 + bl FUN_02006C8C +_02339D24: + ldrh r1, [sp] + cmp r1, #0 + cmpeq r0, #0 + ldrne r1, _02339F7C @ =0x00002A30 + addne r0, r4, #0x4000 + strne r1, [r0, #0xb58] + add r0, r4, #0x4000 + ldr r1, [r0, #0xb58] + cmp r1, #0 + subgt r1, r1, #1 + strgt r1, [r0, #0xb58] + bgt _02339F6C + mov r0, #0x12 + str r0, [r4, #0x38] + mov r0, #6 + str r0, [r4, #0x3c] + mov r0, #8 + str r0, [r4, #0x30] + mov r0, #2 + b _02339F70 +_02339D74: + bl FUN_022BD8FC + bl ov01_0233A130 + cmp r0, #4 + bne _02339E20 + ldr r1, _02339F7C @ =0x00002A30 + add r0, r4, #0x4000 + str r1, [r0, #0xb58] + mov r1, #9 + ldr r0, _02339F78 @ =0x0233C21C + str r1, [r4, #0xc] + ldr r0, [r0, #4] + add r0, r0, #0x358 + add r0, r0, #0x800 + bl ov01_0232C578 + sub r0, r0, #6 + cmp r0, #4 + addls pc, pc, r0, lsl #2 + b _02339E00 +_02339DBC: @ jump table + b _02339DD0 @ case 0 + b _02339DDC @ case 1 + b _02339DE8 @ case 2 + b _02339DF4 @ case 3 + b _02339E00 @ case 4 +_02339DD0: + mov r0, #7 + str r0, [r4, #0x38] + b _02339E08 +_02339DDC: + mov r0, #8 + str r0, [r4, #0x38] + b _02339E08 +_02339DE8: + mov r0, #9 + str r0, [r4, #0x38] + b _02339E08 +_02339DF4: + mov r0, #0xa + str r0, [r4, #0x38] + b _02339E08 +_02339E00: + mov r0, #0xb + str r0, [r4, #0x38] +_02339E08: + mov r0, #6 + str r0, [r4, #0x3c] + mov r0, #8 + str r0, [r4, #0x30] + mov r0, #2 + b _02339F70 +_02339E20: + cmp r0, #5 + bne _02339E48 + mov r0, #0x11 + str r0, [r4, #0x38] + mov r0, #6 + str r0, [r4, #0x3c] + mov r0, #8 + str r0, [r4, #0x30] + mov r0, #2 + b _02339F70 +_02339E48: + cmp r0, #6 + bne _02339E70 + mov r0, #0x12 + str r0, [r4, #0x38] + mov r0, #6 + str r0, [r4, #0x3c] + mov r0, #8 + str r0, [r4, #0x30] + mov r0, #2 + b _02339F70 +_02339E70: + cmp r0, #0 + beq _02339E9C + ldr r1, _02339F7C @ =0x00002A30 + add r0, r4, #0x4000 + str r1, [r0, #0xb58] + mov r0, #9 + str r0, [r4, #0xc] + ldrb r0, [r4, #0x2b] + cmp r0, #0 + beq _02339E9C + bl ov01_02339F80 +_02339E9C: + bl ov01_0233A7FC + cmp r0, #0 + beq _02339F6C + mov r0, #2 + b _02339F70 +_02339EB0: + bl FUN_022BD8FC + bl ov01_0233A390 + cmp r0, #1 + bne _02339EE8 + ldr r1, _02339F7C @ =0x00002A30 + add r0, r4, #0x4000 + str r1, [r0, #0xb58] + mov r0, #9 + str r0, [r4, #0xc] + ldrb r0, [r4, #0x2b] + cmp r0, #0 + beq _02339F40 + bl ov01_02339F80 + b _02339F40 +_02339EE8: + cmp r0, #2 + bne _02339F18 + mov r0, #0x11 + str r0, [r4, #0x38] + mov r0, #6 + str r0, [r4, #0x3c] + mov r0, #8 + str r0, [r4, #0x30] + mov r0, #0xc + str r0, [r4, #0xc] + mov r0, #2 + b _02339F70 +_02339F18: + cmp r0, #3 + bne _02339F40 + mov r0, #0x12 + str r0, [r4, #0x38] + mov r0, #6 + str r0, [r4, #0x3c] + mov r0, #8 + str r0, [r4, #0x30] + mov r0, #2 + b _02339F70 +_02339F40: + bl ov01_0233A7FC + cmp r0, #0 + beq _02339F6C + mov r0, #2 + b _02339F70 +_02339F54: + ldrb r0, [r4, #0x2b] + cmp r0, #0 + beq _02339F64 + bl ov01_02339F80 +_02339F64: + mov r0, #2 + b _02339F70 +_02339F6C: + mov r0, #0 +_02339F70: + add sp, sp, #0x4c + pop {r3, r4, pc} + .align 2, 0 +_02339F78: .4byte 0x0233C21C +_02339F7C: .4byte 0x00002A30 + arm_func_end ov01_023399D8 + + arm_func_start ov01_02339F80 +ov01_02339F80: @ 0x02339F80 + push {r3, lr} + ldr r1, _0233A024 @ =0x0233C21C + mov r3, #0 + ldr r0, [r1, #4] + mov r2, #1 + add r0, r0, #0x4000 + strb r3, [r0, #0xb60] + ldr r0, [r1, #4] + strb r2, [r0, #0x2b] + ldr r1, [r1, #4] + ldr r0, [r1, #0xc] + cmp r0, #0xc + addls pc, pc, r0, lsl #2 + pop {r3, pc} +_02339FB8: @ jump table + pop {r3, pc} @ case 0 + b _02339FEC @ case 1 + b _02339FEC @ case 2 + pop {r3, pc} @ case 3 + b _02339FF8 @ case 4 + b _02339FF8 @ case 5 + b _02339FF8 @ case 6 + b _02339FF8 @ case 7 + b _02339FF8 @ case 8 + b _02339FF8 @ case 9 + b _0233A000 @ case 10 + b _0233A008 @ case 11 + b _0233A010 @ case 12 +_02339FEC: + mov r0, #3 + str r0, [r1, #0xc] + pop {r3, pc} +_02339FF8: + bl ov01_0233A028 + pop {r3, pc} +_0233A000: + bl FUN_022BDA74 + pop {r3, pc} +_0233A008: + bl FUN_022BDBA8 + pop {r3, pc} +_0233A010: + bl FUN_022BDBA8 + cmp r0, #0 + popeq {r3, pc} + bl ov01_0233A028 + pop {r3, pc} + .align 2, 0 +_0233A024: .4byte 0x0233C21C + arm_func_end ov01_02339F80 + + arm_func_start ov01_0233A028 +ov01_0233A028: @ 0x0233A028 + push {r3, lr} + bl FUN_022BD95C + ldr r0, _0233A058 @ =0x0233C21C + mov r3, #0 + ldr r2, [r0, #4] + mov r1, #3 + strb r3, [r2, #0x29] + ldr r2, [r0, #4] + strb r3, [r2, #0x2a] + ldr r0, [r0, #4] + str r1, [r0, #0xc] + pop {r3, pc} + .align 2, 0 +_0233A058: .4byte 0x0233C21C + arm_func_end ov01_0233A028 + + arm_func_start ov01_0233A05C +ov01_0233A05C: @ 0x0233A05C + push {r3, r4, r5, r6, r7, lr} + ldr ip, _0233A11C @ =0x0233C21C + mov r7, r0 + ldr r0, [ip, #4] + mov r6, r1 + ldr r0, [r0, #0xc] + mov r5, r2 + cmp r0, #9 + mov r4, r3 + movne r0, #2 + popne {r3, r4, r5, r6, r7, pc} + bl FUN_022BD968 + ldr r0, _0233A120 @ =0x0233C01C + mov r1, r7 + bl FUN_0200C1FC + ldr r0, _0233A124 @ =0x0233C030 + mov r1, r6 + bl FUN_0200C1FC + ldr r0, _0233A128 @ =0x0233C03C + mov r1, r4 + bl FUN_0200C1FC + ldr ip, [sp, #0x18] + mov r0, r7 + mov r1, r6 + mov r2, r5 + mov r3, r4 + str ip, [sp] + bl FUN_022BD99C + cmp r0, #1 + cmpne r0, #2 + cmpne r0, #3 + bne _0233A0E4 + mov r0, #3 + pop {r3, r4, r5, r6, r7, pc} +_0233A0E4: + ldr r1, _0233A11C @ =0x0233C21C + ldr r2, _0233A12C @ =0x00001C20 + ldr r0, [r1, #4] + mov r3, #0xa + add r0, r0, #0x4000 + str r2, [r0, #0xb58] + ldr r0, [r1, #4] + mov r2, #0 + str r3, [r0, #0xc] + ldr r1, [r1, #4] + mov r0, #1 + add r1, r1, #0x4000 + strb r2, [r1, #0xb60] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0233A11C: .4byte 0x0233C21C +_0233A120: .4byte 0x0233C01C +_0233A124: .4byte 0x0233C030 +_0233A128: .4byte 0x0233C03C +_0233A12C: .4byte 0x00001C20 + arm_func_end ov01_0233A05C + + arm_func_start ov01_0233A130 +ov01_0233A130: @ 0x0233A130 + push {r4, lr} + sub sp, sp, #0x28 + ldr r0, _0233A308 @ =0x0233C21C + ldr r0, [r0, #4] + add r0, r0, #0x4000 + ldrb r0, [r0, #0xb60] + cmp r0, #0 + beq _0233A1E4 + add r1, sp, #0 + mov r0, #0 + bl FUN_020061EC + bl FUN_0204AE60 + cmp r0, #0 + moveq r0, #0 + beq _0233A184 + add r0, sp, #4 + bl FUN_02006C1C + add r0, sp, #4 + mov r1, #1 + mov r2, #0 + bl FUN_02006C8C +_0233A184: + ldrh r1, [sp] + cmp r1, #0 + cmpeq r0, #0 + ldrne r0, _0233A308 @ =0x0233C21C + ldrne r1, _0233A30C @ =0x00002A30 + ldrne r0, [r0, #4] + addne r0, r0, #0x4000 + strne r1, [r0, #0xb58] + ldr r1, _0233A308 @ =0x0233C21C + ldr r0, [r1, #4] + add r0, r0, #0x4000 + ldr r2, [r0, #0xb58] + cmp r2, #0 + ble _0233A1DC + sub r2, r2, #1 + str r2, [r0, #0xb58] + ldr r0, [r1, #4] + add r0, r0, #0x4000 + ldr r0, [r0, #0xb58] + cmp r0, #0 + movle r0, #6 + ble _0233A300 +_0233A1DC: + mov r0, #0 + b _0233A300 +_0233A1E4: + bl FUN_022BD9E8 + mov r1, r0 + cmp r1, #8 + addls pc, pc, r1, lsl #2 + b _0233A2B8 +_0233A1F8: @ jump table + b _0233A21C @ case 0 + b _0233A21C @ case 1 + b _0233A2B8 @ case 2 + b _0233A2B8 @ case 3 + b _0233A2B8 @ case 4 + b _0233A2B8 @ case 5 + b _0233A2B8 @ case 6 + b _0233A2B8 @ case 7 + b _0233A238 @ case 8 +_0233A21C: + ldr r0, _0233A308 @ =0x0233C21C + mov r1, #0 + ldr r0, [r0, #4] + str r1, [r0, #0xb54] + bl FUN_022BD980 + mov r0, #8 + b _0233A300 +_0233A238: + ldr r0, _0233A308 @ =0x0233C21C + ldr r0, [r0, #4] + add r0, r0, #0x354 + add r0, r0, #0x800 + bl FUN_022BDA68 + ldr r2, _0233A308 @ =0x0233C21C + mov r1, r0 + ldr r2, [r2, #4] + add r0, r2, #0x358 + ldr r2, [r2, #0xb54] + add r0, r0, #0x800 + bl FUN_020032D4 + bl FUN_022BD980 + ldr r0, _0233A308 @ =0x0233C21C + ldr r0, [r0, #4] + add r0, r0, #0x358 + add r0, r0, #0x800 + bl ov01_0232C578 + movs r4, r0 + moveq r0, #7 + beq _0233A300 + ldr r0, _0233A308 @ =0x0233C21C + ldr r0, [r0, #4] + add r0, r0, #0x358 + add r0, r0, #0x800 + bl ov01_0232C5AC + mov r2, r0 + ldr r0, _0233A310 @ =0x0233C050 + mov r1, r4 + bl FUN_0200C1FC + mov r0, #4 + b _0233A300 +_0233A2B8: + ldr r2, _0233A308 @ =0x0233C21C + ldr r0, [r2, #4] + add r0, r0, #0x4000 + ldr r3, [r0, #0xb58] + cmp r3, #0 + ble _0233A2FC + sub r3, r3, #1 + str r3, [r0, #0xb58] + ldr r0, [r2, #4] + add r0, r0, #0x4000 + ldr r0, [r0, #0xb58] + cmp r0, #0 + bgt _0233A2FC + ldr r0, _0233A314 @ =0x0233C068 + bl FUN_0200C1FC + mov r0, #5 + b _0233A300 +_0233A2FC: + mov r0, #0 +_0233A300: + add sp, sp, #0x28 + pop {r4, pc} + .align 2, 0 +_0233A308: .4byte 0x0233C21C +_0233A30C: .4byte 0x00002A30 +_0233A310: .4byte 0x0233C050 +_0233A314: .4byte 0x0233C068 + arm_func_end ov01_0233A130 + + arm_func_start ov01_0233A318 +ov01_0233A318: @ 0x0233A318 + push {r4, lr} + ldr r1, _0233A388 @ =0x0233C21C + mov r4, r0 + ldr r0, [r1, #4] + ldr r0, [r0, #0xc] + cmp r0, #9 + movne r0, #0 + popne {r4, pc} + bl FUN_022BDA94 + ldr r2, _0233A388 @ =0x0233C21C + mov r3, #0xb + ldr r0, [r2, #4] + mov r1, #0x12 + str r4, [r0, #0xb50] + ldr r0, [r2, #4] + ldr r4, _0233A38C @ =0x00001C20 + str r3, [r0, #0xc] + ldr r0, [r2, #4] + mov r3, #0 + str r1, [r0] + ldr r1, [r2, #4] + mov r0, #1 + add r1, r1, #0x4000 + str r4, [r1, #0xb58] + ldr r1, [r2, #4] + add r1, r1, #0x4000 + strb r3, [r1, #0xb60] + pop {r4, pc} + .align 2, 0 +_0233A388: .4byte 0x0233C21C +_0233A38C: .4byte 0x00001C20 + arm_func_end ov01_0233A318 + + arm_func_start ov01_0233A390 +ov01_0233A390: @ 0x0233A390 + push {r4, lr} + sub sp, sp, #0x28 + ldr r0, _0233A7F0 @ =0x0233C21C + ldr r1, [r0, #4] + add r0, r1, #0x4000 + ldrb r0, [r0, #0xb60] + cmp r0, #0 + beq _0233A44C + add r1, sp, #0 + mov r0, #0 + bl FUN_020061EC + bl FUN_0204AE60 + cmp r0, #0 + moveq r0, #0 + beq _0233A3E4 + add r0, sp, #4 + bl FUN_02006C1C + add r0, sp, #4 + mov r1, #1 + mov r2, #0 + bl FUN_02006C8C +_0233A3E4: + ldrh r1, [sp] + cmp r1, #0 + cmpeq r0, #0 + ldrne r0, _0233A7F0 @ =0x0233C21C + ldrne r1, _0233A7F4 @ =0x00002A30 + ldrne r0, [r0, #4] + addne r0, r0, #0x4000 + strne r1, [r0, #0xb58] + ldr r1, _0233A7F0 @ =0x0233C21C + ldr r0, [r1, #4] + add r0, r0, #0x4000 + ldr r2, [r0, #0xb58] + cmp r2, #0 + ble _0233A444 + sub r2, r2, #1 + str r2, [r0, #0xb58] + ldr r0, [r1, #4] + add r1, r0, #0x4000 + ldr r0, [r1, #0xb58] + cmp r0, #0 + ldrle r2, _0233A7F8 @ =0x00001C20 + movle r0, #3 + strle r2, [r1, #0xb58] + ble _0233A7E8 +_0233A444: + mov r0, #0 + b _0233A7E8 +_0233A44C: + ldr r0, [r1, #0x44] + cmp r0, #4 + addls pc, pc, r0, lsl #2 + b _0233A7E4 +_0233A45C: @ jump table + b _0233A470 @ case 0 + b _0233A53C @ case 1 + b _0233A60C @ case 2 + b _0233A6DC @ case 3 + b _0233A7B8 @ case 4 +_0233A470: + bl FUN_022BDACC + cmp r0, #1 + bne _0233A4F0 + ldr r0, _0233A7F0 @ =0x0233C21C + ldr r1, [r0, #4] + ldrb r0, [r1, #0x2b] + cmp r0, #0 + movne r0, #4 + strne r0, [r1, #0x44] + movne r0, #0 + bne _0233A7E8 + ldr r0, [r1, #0xb50] + bl FUN_022BDADC + ldr r0, _0233A7F0 @ =0x0233C21C + ldr r0, [r0, #4] + add r0, r0, #0x48 + bl FUN_022BDB04 + cmp r0, #0 + ldreq r0, _0233A7F0 @ =0x0233C21C + moveq r1, #4 + ldreq r0, [r0, #4] + streq r1, [r0, #0x44] + beq _0233A7E4 + ldr r1, _0233A7F0 @ =0x0233C21C + ldr r3, _0233A7F8 @ =0x00001C20 + ldr r0, [r1, #4] + mov r2, #1 + add r0, r0, #0x4000 + str r3, [r0, #0xb58] + ldr r0, [r1, #4] + str r2, [r0, #0x44] + b _0233A7E4 +_0233A4F0: + ldr r1, _0233A7F0 @ =0x0233C21C + ldr r0, [r1, #4] + add r0, r0, #0x4000 + ldr r2, [r0, #0xb58] + cmp r2, #0 + ble _0233A7E4 + sub r2, r2, #1 + str r2, [r0, #0xb58] + ldr r0, [r1, #4] + add r0, r0, #0x4000 + ldr r0, [r0, #0xb58] + cmp r0, #0 + bgt _0233A7E4 + bl FUN_022BDBA8 + ldr r0, _0233A7F0 @ =0x0233C21C + mov r1, #4 + ldr r0, [r0, #4] + str r1, [r0, #0x44] + b _0233A7E4 +_0233A53C: + bl FUN_022BDACC + cmp r0, #1 + bne _0233A5C0 + ldr r0, _0233A7F0 @ =0x0233C21C + ldr r1, [r0, #4] + ldrb r0, [r1, #0x2b] + cmp r0, #0 + movne r0, #4 + strne r0, [r1, #0x44] + bne _0233A7E4 + ldr r2, [r1, #0x48] + cmp r2, #0 + movle r0, #4 + strle r0, [r1, #0x44] + ble _0233A7E4 + add r0, r1, #0x50 + mov r1, #0 + bl FUN_022BDB38 + cmp r0, #0 + ldreq r0, _0233A7F0 @ =0x0233C21C + moveq r1, #4 + ldreq r0, [r0, #4] + streq r1, [r0, #0x44] + beq _0233A7E4 + ldr r1, _0233A7F0 @ =0x0233C21C + ldr r3, _0233A7F8 @ =0x00001C20 + ldr r0, [r1, #4] + mov r2, #2 + add r0, r0, #0x4000 + str r3, [r0, #0xb58] + ldr r0, [r1, #4] + str r2, [r0, #0x44] + b _0233A7E4 +_0233A5C0: + ldr r1, _0233A7F0 @ =0x0233C21C + ldr r0, [r1, #4] + add r0, r0, #0x4000 + ldr r2, [r0, #0xb58] + cmp r2, #0 + ble _0233A7E4 + sub r2, r2, #1 + str r2, [r0, #0xb58] + ldr r0, [r1, #4] + add r0, r0, #0x4000 + ldr r0, [r0, #0xb58] + cmp r0, #0 + bgt _0233A7E4 + bl FUN_022BDBA8 + ldr r0, _0233A7F0 @ =0x0233C21C + mov r1, #4 + ldr r0, [r0, #4] + str r1, [r0, #0x44] + b _0233A7E4 +_0233A60C: + bl FUN_022BDACC + cmp r0, #1 + bne _0233A690 + ldr r0, _0233A7F0 @ =0x0233C21C + mov r2, #0 + ldr r1, [r0, #4] + str r2, [r1, #0x4c] + ldr r3, [r0, #4] + ldrb r0, [r3, #0x2b] + cmp r0, #0 + movne r0, #4 + strne r0, [r3, #0x44] + bne _0233A7E4 + add r1, r3, #0x358 + ldr r2, [r3, #0xfc] + add r0, r3, #0x50 + add r1, r1, #0x800 + bl FUN_022BDB6C + cmp r0, #0 + ldreq r0, _0233A7F0 @ =0x0233C21C + moveq r1, #4 + ldreq r0, [r0, #4] + streq r1, [r0, #0x44] + beq _0233A7E4 + ldr r1, _0233A7F0 @ =0x0233C21C + ldr r3, _0233A7F8 @ =0x00001C20 + ldr r0, [r1, #4] + mov r2, #3 + add r0, r0, #0x4000 + str r3, [r0, #0xb58] + ldr r0, [r1, #4] + str r2, [r0, #0x44] + b _0233A7E4 +_0233A690: + ldr r1, _0233A7F0 @ =0x0233C21C + ldr r0, [r1, #4] + add r0, r0, #0x4000 + ldr r2, [r0, #0xb58] + cmp r2, #0 + ble _0233A7E4 + sub r2, r2, #1 + str r2, [r0, #0xb58] + ldr r0, [r1, #4] + add r0, r0, #0x4000 + ldr r0, [r0, #0xb58] + cmp r0, #0 + bgt _0233A7E4 + bl FUN_022BDBA8 + ldr r0, _0233A7F0 @ =0x0233C21C + mov r1, #4 + ldr r0, [r0, #4] + str r1, [r0, #0x44] + b _0233A7E4 +_0233A6DC: + bl FUN_022BDACC + cmp r0, #1 + bne _0233A76C + ldr r0, _0233A7F0 @ =0x0233C21C + ldr r2, [r0, #4] + ldr r1, [r2, #0x4c] + add r1, r1, #1 + str r1, [r2, #0x4c] + ldr r2, [r0, #4] + ldrb r0, [r2, #0x2b] + ldr r4, [r2, #0x4c] + cmp r0, #0 + movne r0, #4 + strne r0, [r2, #0x44] + bne _0233A7E4 + ldr r0, [r2, #0x48] + cmp r4, r0 + movge r0, #4 + strge r0, [r2, #0x44] + bge _0233A7E4 + mov r0, #0xb0 + mul lr, r4, r0 + add r0, r2, #0x358 + add r1, r2, lr + add ip, r2, #0x50 + add r3, r0, #0x800 + ldr r2, [r1, #0xfc] + add r0, ip, lr + add r1, r3, r4, lsl #10 + bl FUN_022BDB6C + cmp r0, #0 + ldreq r0, _0233A7F0 @ =0x0233C21C + moveq r1, #4 + ldreq r0, [r0, #4] + streq r1, [r0, #0x44] + b _0233A7E4 +_0233A76C: + ldr r1, _0233A7F0 @ =0x0233C21C + ldr r0, [r1, #4] + add r0, r0, #0x4000 + ldr r2, [r0, #0xb58] + cmp r2, #0 + ble _0233A7E4 + sub r2, r2, #1 + str r2, [r0, #0xb58] + ldr r0, [r1, #4] + add r0, r0, #0x4000 + ldr r0, [r0, #0xb58] + cmp r0, #0 + bgt _0233A7E4 + bl FUN_022BDBA8 + ldr r0, _0233A7F0 @ =0x0233C21C + mov r1, #4 + ldr r0, [r0, #4] + str r1, [r0, #0x44] + b _0233A7E4 +_0233A7B8: + bl FUN_022BDBE4 + cmp r0, #0 + beq _0233A7E4 + ldr r0, _0233A7F0 @ =0x0233C21C + ldr r0, [r0, #4] + add r0, r0, #0x4000 + ldr r0, [r0, #0xb58] + cmp r0, #0 + movgt r0, #1 + movle r0, #2 + b _0233A7E8 +_0233A7E4: + mov r0, #0 +_0233A7E8: + add sp, sp, #0x28 + pop {r4, pc} + .align 2, 0 +_0233A7F0: .4byte 0x0233C21C +_0233A7F4: .4byte 0x00002A30 +_0233A7F8: .4byte 0x00001C20 + arm_func_end ov01_0233A390 + + arm_func_start ov01_0233A7FC +ov01_0233A7FC: @ 0x0233A7FC + push {r4, lr} + sub sp, sp, #8 + ldr r2, _0233A83C @ =0x0233C21C + add r0, sp, #4 + add r1, sp, #0 + ldr r4, [r2, #4] + bl FUN_022BDCB8 + cmp r0, #0 + ldrne r1, [sp, #4] + moveq r0, #0 + strne r1, [r4, #0x38] + ldrne r1, [sp] + movne r0, #1 + strne r1, [r4, #0x3c] + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_0233A83C: .4byte 0x0233C21C + arm_func_end ov01_0233A7FC + + arm_func_start ov01_0233A840 +ov01_0233A840: @ 0x0233A840 + push {r3, r4, r5, lr} + ldr r4, _0233A8B0 @ =0x0233C21C + mov r5, #0 +_0233A84C: + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + bl FUN_022BD0A0 + ldr r1, [r4, #4] + lsl r2, r5, #0x10 + add r1, r1, r5 + add r1, r1, #0x4000 + strb r0, [r1, #0xf61] + lsr r0, r2, #0x10 + bl FUN_022BD2C0 + ldr r1, [r4, #4] + lsl r2, r5, #0x10 + add r1, r1, r5 + add r1, r1, #0x4000 + strb r0, [r1, #0xf71] + lsr r0, r2, #0x10 + bl FUN_022BD170 + ldr r1, [r4, #4] + add r1, r1, r5, lsl #2 + add r1, r1, #0x4000 + add r5, r5, #1 + str r0, [r1, #0xf84] + cmp r5, #0x10 + blt _0233A84C + pop {r3, r4, r5, pc} + .align 2, 0 +_0233A8B0: .4byte 0x0233C21C + arm_func_end ov01_0233A840 +_0233A8B4: + .byte 0x38, 0x40, 0x2D, 0xE9, 0x00, 0x50, 0xA0, 0xE1, 0x01, 0x40, 0xA0, 0xE1 + .byte 0x00, 0x00, 0x55, 0xE3, 0x3F, 0x00, 0x00, 0xDA, 0x14, 0x00, 0x55, 0xE3, 0x05, 0xF1, 0x8F, 0x90 + .byte 0x03, 0x01, 0x00, 0xEA, 0x02, 0x01, 0x00, 0xEA, 0x12, 0x00, 0x00, 0xEA, 0x13, 0x00, 0x00, 0xEA + .byte 0x14, 0x00, 0x00, 0xEA, 0x15, 0x00, 0x00, 0xEA, 0x16, 0x00, 0x00, 0xEA, 0x17, 0x00, 0x00, 0xEA + .byte 0x18, 0x00, 0x00, 0xEA, 0x19, 0x00, 0x00, 0xEA, 0x1A, 0x00, 0x00, 0xEA, 0x1B, 0x00, 0x00, 0xEA + .byte 0x1C, 0x00, 0x00, 0xEA, 0x1D, 0x00, 0x00, 0xEA, 0x1E, 0x00, 0x00, 0xEA, 0x1F, 0x00, 0x00, 0xEA + .byte 0x20, 0x00, 0x00, 0xEA, 0x21, 0x00, 0x00, 0xEA, 0x22, 0x00, 0x00, 0xEA, 0x23, 0x00, 0x00, 0xEA + .byte 0x24, 0x00, 0x00, 0xEA, 0x25, 0x00, 0x00, 0xEA, 0xBC, 0x03, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8 + .byte 0xB8, 0x03, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8, 0xB4, 0x03, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8 + .byte 0xB0, 0x03, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8, 0xAC, 0x03, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8 + .byte 0xA8, 0x03, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8, 0xA4, 0x03, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8 + .byte 0xA0, 0x03, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8, 0x9C, 0x03, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8 + .byte 0x98, 0x03, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8, 0x94, 0x03, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8 + .byte 0x90, 0x03, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8, 0x8C, 0x03, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8 + .byte 0x88, 0x03, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8, 0x84, 0x03, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8 + .byte 0x8E, 0x0F, 0xA0, 0xE3, 0x38, 0x80, 0xBD, 0xE8, 0x78, 0x03, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8 + .byte 0x74, 0x03, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8, 0x70, 0x03, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8 + .byte 0x6C, 0x03, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8, 0xC5, 0x00, 0x00, 0xAA, 0x64, 0x03, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x55, 0xE1, 0x02, 0x00, 0x00, 0xCA, 0x63, 0x00, 0x40, 0xE2, 0x00, 0x00, 0x55, 0xE1 + .byte 0x2F, 0x00, 0x00, 0xAA, 0x50, 0x13, 0x9F, 0xE5, 0x01, 0x00, 0x55, 0xE1, 0x2C, 0x00, 0x00, 0x0A + .byte 0x02, 0x00, 0x41, 0xE2, 0x00, 0x00, 0x55, 0xE1, 0x02, 0x00, 0x00, 0xCA, 0x07, 0x00, 0x41, 0xE2 + .byte 0x00, 0x00, 0x55, 0xE1, 0x26, 0x00, 0x00, 0xAA, 0x30, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1 + .byte 0x23, 0x00, 0x00, 0x0A, 0x02, 0x00, 0x40, 0xE2, 0x00, 0x00, 0x55, 0xE1, 0x02, 0x00, 0x00, 0xCA + .byte 0x1C, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0x1D, 0x00, 0x00, 0xAA, 0x14, 0x03, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x55, 0xE1, 0x02, 0x00, 0x00, 0xCA, 0x5F, 0x00, 0x40, 0xE2, 0x00, 0x00, 0x55, 0xE1 + .byte 0x17, 0x00, 0x00, 0xAA, 0x00, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0x02, 0x00, 0x00, 0xCA + .byte 0x5F, 0x00, 0x40, 0xE2, 0x00, 0x00, 0x55, 0xE1, 0x11, 0x00, 0x00, 0xAA, 0xEC, 0x02, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x55, 0xE1, 0x02, 0x00, 0x00, 0xCA, 0x5F, 0x00, 0x40, 0xE2, 0x00, 0x00, 0x55, 0xE1 + .byte 0x0B, 0x00, 0x00, 0xAA, 0xD8, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0x02, 0x00, 0x00, 0xCA + .byte 0x63, 0x00, 0x40, 0xE2, 0x00, 0x00, 0x55, 0xE1, 0x05, 0x00, 0x00, 0xAA, 0xC4, 0x02, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x55, 0xE1, 0x04, 0x00, 0x00, 0xCA, 0xBC, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1 + .byte 0x01, 0x00, 0x00, 0xBA, 0xB4, 0x02, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8, 0xB0, 0x02, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x55, 0xE1, 0xAC, 0x02, 0x9F, 0x05, 0x38, 0x80, 0xBD, 0x08, 0x02, 0x00, 0x40, 0xE2 + .byte 0x00, 0x00, 0x55, 0xE1, 0xA0, 0x02, 0x9F, 0x05, 0x38, 0x80, 0xBD, 0x08, 0x9C, 0x02, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x55, 0xE1, 0x02, 0x00, 0x00, 0xCA, 0x66, 0x00, 0x40, 0xE2, 0x00, 0x00, 0x55, 0xE1 + .byte 0x0B, 0x00, 0x00, 0xAA, 0x88, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0x02, 0x00, 0x00, 0xCA + .byte 0x5F, 0x00, 0x40, 0xE2, 0x00, 0x00, 0x55, 0xE1, 0x05, 0x00, 0x00, 0xAA, 0x74, 0x02, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x55, 0xE1, 0x04, 0x00, 0x00, 0xCA, 0x63, 0x00, 0x40, 0xE2, 0x00, 0x00, 0x55, 0xE1 + .byte 0x01, 0x00, 0x00, 0xBA, 0x60, 0x02, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8, 0x5C, 0x02, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x55, 0xE1, 0x02, 0x00, 0x00, 0xCA, 0x03, 0x00, 0x40, 0xE2, 0x00, 0x00, 0x55, 0xE1 + .byte 0x0B, 0x00, 0x00, 0xAA, 0x48, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0x02, 0x00, 0x00, 0xCA + .byte 0x03, 0x00, 0x40, 0xE2, 0x00, 0x00, 0x55, 0xE1, 0x05, 0x00, 0x00, 0xAA, 0x34, 0x02, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x55, 0xE1, 0x04, 0x00, 0x00, 0xCA, 0x03, 0x00, 0x40, 0xE2, 0x00, 0x00, 0x55, 0xE1 + .byte 0x01, 0x00, 0x00, 0xBA, 0x20, 0x02, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8, 0x1C, 0x02, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x55, 0xE1, 0x18, 0x02, 0x9F, 0x05, 0x38, 0x80, 0xBD, 0x08, 0x14, 0x02, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x55, 0xE1, 0x03, 0x00, 0x00, 0xCA, 0x63, 0x00, 0x40, 0xE2, 0x00, 0x00, 0x55, 0xE1 + .byte 0x04, 0x02, 0x9F, 0xA5, 0x38, 0x80, 0xBD, 0xA8, 0x00, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1 + .byte 0x05, 0x00, 0x00, 0x0A, 0xF8, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0x04, 0x00, 0x00, 0xCA + .byte 0xF0, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0x01, 0x00, 0x00, 0xBA, 0xE8, 0x01, 0x9F, 0xE5 + .byte 0x38, 0x80, 0xBD, 0xE8, 0x32, 0x0B, 0xA0, 0xE3, 0x00, 0x00, 0x60, 0xE2, 0x00, 0x00, 0x55, 0xE1 + .byte 0x03, 0x00, 0x00, 0xCA, 0x63, 0x00, 0x40, 0xE2, 0x00, 0x00, 0x55, 0xE1, 0xDE, 0x0D, 0xA0, 0xA3 + .byte 0x38, 0x80, 0xBD, 0xA8, 0xC4, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0xC0, 0x01, 0x9F, 0x05 + .byte 0x38, 0x80, 0xBD, 0x08, 0xBC, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0x02, 0x00, 0x00, 0xCA + .byte 0xB4, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0x1A, 0x00, 0x00, 0xAA, 0xAC, 0x01, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x55, 0xE1, 0x02, 0x00, 0x00, 0xCA, 0xA4, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1 + .byte 0x14, 0x00, 0x00, 0xAA, 0x9C, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0x02, 0x00, 0x00, 0xCA + .byte 0x94, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0x0E, 0x00, 0x00, 0xAA, 0x8C, 0x01, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x55, 0xE1, 0x02, 0x00, 0x00, 0xCA, 0x63, 0x00, 0x40, 0xE2, 0x00, 0x00, 0x55, 0xE1 + .byte 0x08, 0x00, 0x00, 0xAA, 0x78, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0x11, 0x00, 0x00, 0xCA + .byte 0x70, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0x0E, 0x00, 0x00, 0xBA, 0x3C, 0x01, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x55, 0xE1, 0x0B, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x54, 0xE3, 0x58, 0x01, 0x9F, 0x15 + .byte 0x38, 0x80, 0xBD, 0x18, 0x3C, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0x03, 0x00, 0x00, 0xCA + .byte 0x34, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0x40, 0x01, 0x9F, 0xA5, 0x38, 0x80, 0xBD, 0xA8 + .byte 0x3C, 0x01, 0x9F, 0xE5, 0x38, 0x80, 0xBD, 0xE8, 0x38, 0x01, 0x9F, 0xE5, 0x05, 0x10, 0xA0, 0xE1 + .byte 0x51, 0x45, 0xF3, 0xEB, 0x00, 0x00, 0x54, 0xE3, 0x1C, 0x01, 0x9F, 0x15, 0x38, 0x80, 0xBD, 0x18 + .byte 0x00, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x55, 0xE1, 0x03, 0x00, 0x00, 0xCA, 0xF8, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x55, 0xE1, 0x04, 0x01, 0x9F, 0xA5, 0x38, 0x80, 0xBD, 0xA8, 0x00, 0x01, 0x9F, 0xE5 + .byte 0x38, 0x80, 0xBD, 0xE8, 0x00, 0x00, 0xA0, 0xE3, 0x38, 0x80, 0xBD, 0xE8, 0x66, 0x37, 0x00, 0x00 + .byte 0x67, 0x37, 0x00, 0x00, 0x68, 0x37, 0x00, 0x00, 0x69, 0x37, 0x00, 0x00, 0x6A, 0x37, 0x00, 0x00 + .byte 0x6B, 0x37, 0x00, 0x00, 0x6C, 0x37, 0x00, 0x00, 0x6D, 0x37, 0x00, 0x00, 0x6E, 0x37, 0x00, 0x00 + .byte 0x6F, 0x37, 0x00, 0x00, 0x70, 0x37, 0x00, 0x00, 0x71, 0x37, 0x00, 0x00, 0x72, 0x37, 0x00, 0x00 + .byte 0x73, 0x37, 0x00, 0x00, 0x39, 0x02, 0x00, 0x00, 0x74, 0x37, 0x00, 0x00, 0x75, 0x37, 0x00, 0x00 + .byte 0x76, 0x37, 0x00, 0x00, 0x77, 0x37, 0x00, 0x00, 0xE0, 0xB1, 0xFF, 0xFF, 0x7C, 0xB1, 0xFF, 0xFF + .byte 0x73, 0xB1, 0xFF, 0xFF, 0xF9, 0xAD, 0xFF, 0xFF, 0xDC, 0x34, 0xFF, 0xFF, 0x78, 0x34, 0xFF, 0xFF + .byte 0x14, 0x34, 0xFF, 0xFF, 0xB4, 0x33, 0xFF, 0xFF, 0xF8, 0x30, 0xFF, 0xFF, 0xCD, 0x2F, 0xFF, 0xFF + .byte 0x78, 0x37, 0x00, 0x00, 0x74, 0xB1, 0xFF, 0xFF, 0x79, 0x37, 0x00, 0x00, 0x7A, 0x37, 0x00, 0x00 + .byte 0xC8, 0x38, 0xFF, 0xFF, 0x60, 0x38, 0xFF, 0xFF, 0x9C, 0x37, 0xFF, 0xFF, 0x7B, 0x37, 0x00, 0x00 + .byte 0xE0, 0x34, 0xFF, 0xFF, 0x7C, 0x34, 0xFF, 0xFF, 0x18, 0x34, 0xFF, 0xFF, 0x7C, 0x37, 0x00, 0x00 + .byte 0x61, 0x38, 0xFF, 0xFF, 0x7D, 0x37, 0x00, 0x00, 0xB0, 0x3C, 0xFF, 0xFF, 0x7E, 0x37, 0x00, 0x00 + .byte 0x7B, 0xB1, 0xFF, 0xFF, 0x28, 0xA6, 0xFF, 0xFF, 0x41, 0xA2, 0xFF, 0xFF, 0x7F, 0x37, 0x00, 0x00 + .byte 0xD2, 0xC5, 0xFE, 0xFF, 0x84, 0x37, 0x00, 0x00, 0x40, 0xA2, 0xFF, 0xFF, 0x59, 0x9E, 0xFF, 0xFF + .byte 0x58, 0x9E, 0xFF, 0xFF, 0x71, 0x9A, 0xFF, 0xFF, 0xE8, 0x86, 0xFF, 0xFF, 0x01, 0x83, 0xFF, 0xFF + .byte 0x10, 0x2D, 0xFF, 0xFF, 0xA0, 0x15, 0xFF, 0xFF, 0x61, 0x79, 0xFE, 0xFF, 0x81, 0x37, 0x00, 0x00 + .byte 0x83, 0x37, 0x00, 0x00, 0x82, 0x37, 0x00, 0x00, 0x88, 0xC0, 0x33, 0x02, 0x0C, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x7C, 0xCA, 0x33, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x50, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x0A + .byte 0x0C, 0x00, 0x00, 0xEA, 0x97, 0xFA, 0xFF, 0xEB, 0x30, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x10, 0x80, 0xE5, 0x07, 0x00, 0x00, 0xEA, 0x99, 0xFA, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x04, 0x00, 0x00, 0x0A, 0xB5, 0x2F, 0xF4, 0xEB, 0x17, 0x00, 0xA0, 0xE3, 0x95, 0x0D, 0xFE, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8, 0x01, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x7C, 0xCA, 0x33, 0x02 + + arm_func_start ov01_0233AE64 +ov01_0233AE64: @ 0x0233AE64 + ldr ip, _0233AE70 @ =FUN_020348E4 + ldr r0, _0233AE74 @ =0x0233C0A4 + bx ip + .align 2, 0 +_0233AE70: .4byte FUN_020348E4 +_0233AE74: .4byte 0x0233C0A4 + arm_func_end ov01_0233AE64 + @ 0x0233AE78 diff --git a/asm/overlay_02.s b/asm/overlay_02.s index e43842a4..c36a9c47 100644 --- a/asm/overlay_02.s +++ b/asm/overlay_02.s @@ -3,3 +3,41209 @@ .include "global.inc" .text + + arm_func_start ov02_02329520 +ov02_02329520: @ 0x02329520 + push {r4, lr} + bl FUN_022E0A70 + bl FUN_022BDC5C + ldr r0, _0232955C @ =0x00040020 + mov r1, #8 + bl FUN_02001170 + mov r4, r0 + add r0, r4, #0x1f + bic r0, r0, #0x1f + mov r1, #1 + mov r2, #0 + bl ov02_023388B4 + mov r0, r4 + bl FUN_02001188 + pop {r4, pc} + .align 2, 0 +_0232955C: .4byte 0x00040020 + arm_func_end ov02_02329520 + + arm_func_start ov02_02329560 +ov02_02329560: @ 0x02329560 + mov r2, #0 + str r2, [r0] + str r2, [r0, #4] + strh r2, [r0, #8] + strh r1, [r0, #0xa] + bx lr + arm_func_end ov02_02329560 + + arm_func_start ov02_02329578 +ov02_02329578: @ 0x02329578 + ldrh r3, [r0, #0xa] + mov r2, #0 + add ip, r1, r3 + str r2, [ip, #4] + str r2, [r1, r3] + str r1, [r0] + str r1, [r0, #4] + ldrh r1, [r0, #8] + add r1, r1, #1 + strh r1, [r0, #8] + bx lr + arm_func_end ov02_02329578 + + arm_func_start ov02_023295A4 +ov02_023295A4: @ 0x023295A4 + push {r3, lr} + ldr r2, [r0] + cmp r2, #0 + bne _023295BC + bl ov02_02329578 + pop {r3, pc} +_023295BC: + ldrh ip, [r0, #0xa] + ldr r3, [r0, #4] + mov r2, #0 + str r3, [r1, ip] + add r3, r1, ip + str r2, [r3, #4] + ldrh r2, [r0, #0xa] + ldr r3, [r0, #4] + add r2, r3, r2 + str r1, [r2, #4] + str r1, [r0, #4] + ldrh r1, [r0, #8] + add r1, r1, #1 + strh r1, [r0, #8] + pop {r3, pc} + arm_func_end ov02_023295A4 + + arm_func_start ov02_023295F8 +ov02_023295F8: @ 0x023295F8 + push {r3, lr} + ldr r2, [r0] + cmp r2, #0 + bne _02329610 + bl ov02_02329578 + pop {r3, pc} +_02329610: + ldrh r3, [r0, #0xa] + mov r2, #0 + str r2, [r1, r3] + ldr r2, [r0] + add r3, r1, r3 + str r2, [r3, #4] + ldrh r2, [r0, #0xa] + ldr r3, [r0] + str r1, [r3, r2] + str r1, [r0] + ldrh r1, [r0, #8] + add r1, r1, #1 + strh r1, [r0, #8] + pop {r3, pc} + arm_func_end ov02_023295F8 + + arm_func_start ov02_02329648 +ov02_02329648: @ 0x02329648 + push {r3, lr} + cmp r1, #0 + bne _02329660 + mov r1, r2 + bl ov02_023295A4 + pop {r3, pc} +_02329660: + ldr r3, [r0] + cmp r1, r3 + bne _02329678 + mov r1, r2 + bl ov02_023295F8 + pop {r3, pc} +_02329678: + ldrh lr, [r0, #0xa] + ldr r3, [r1, lr] + add ip, r2, lr + str r3, [r2, lr] + str r1, [ip, #4] + add r3, r3, lr + str r2, [r3, #4] + ldrh r3, [r0, #0xa] + str r2, [r1, r3] + ldrh r1, [r0, #8] + add r1, r1, #1 + strh r1, [r0, #8] + pop {r3, pc} + arm_func_end ov02_02329648 + + arm_func_start ov02_023296AC +ov02_023296AC: @ 0x023296AC + push {r3, lr} + ldrh ip, [r0, #0xa] + ldr r3, [r1, ip] + add lr, r1, ip + cmp r3, #0 + ldreq r1, [lr, #4] + streq r1, [r0] + ldrne r2, [lr, #4] + addne r1, r3, ip + strne r2, [r1, #4] + ldr r3, [lr, #4] + cmp r3, #0 + ldreq r1, [lr] + streq r1, [r0, #4] + ldrhne r1, [r0, #0xa] + ldrne r2, [lr] + strne r2, [r3, r1] + mov r1, #0 + str r1, [lr] + str r1, [lr, #4] + ldrh r1, [r0, #8] + sub r1, r1, #1 + strh r1, [r0, #8] + pop {r3, pc} + arm_func_end ov02_023296AC + + arm_func_start ov02_0232970C +ov02_0232970C: @ 0x0232970C + cmp r1, #0 + ldreq r0, [r0] + ldrhne r0, [r0, #0xa] + addne r0, r1, r0 + ldrne r0, [r0, #4] + bx lr + arm_func_end ov02_0232970C + + arm_func_start ov02_02329724 +ov02_02329724: @ 0x02329724 + cmp r1, #0 + ldreq r0, [r0, #4] + ldrhne r0, [r0, #0xa] + ldrne r0, [r1, r0] + bx lr + arm_func_end ov02_02329724 + + arm_func_start ov02_02329738 +ov02_02329738: @ 0x02329738 + push {r4, r5, r6, lr} + mov r5, r1 + mov r1, #0 + mov r6, r0 + bl ov02_0232970C + movs r4, r0 + beq _02329798 +_02329754: + ldr r0, [r4, #0x18] + cmp r0, r5 + bhi _02329784 + ldr r0, [r4, #0x1c] + cmp r5, r0 + bhs _02329784 + mov r1, r5 + add r0, r4, #0xc + bl ov02_02329738 + cmp r0, #0 + moveq r0, r4 + pop {r4, r5, r6, pc} +_02329784: + mov r0, r6 + mov r1, r4 + bl ov02_0232970C + movs r4, r0 + bne _02329754 +_02329798: + mov r0, #0 + pop {r4, r5, r6, pc} + arm_func_end ov02_02329738 + + arm_func_start ov02_023297A0 +ov02_023297A0: @ 0x023297A0 + push {r4, lr} + ldr r4, _023297C4 @ =0x023544C4 + mov r1, r0 + mov r0, r4 + bl ov02_02329738 + cmp r0, #0 + addne r4, r0, #0xc + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_023297C4: .4byte 0x023544C4 + arm_func_end ov02_023297A0 + + arm_func_start ov02_023297C8 +ov02_023297C8: @ 0x023297C8 + push {r4, lr} + mov r4, r0 + ldrh r0, [sp, #8] + str r1, [r4] + mov ip, #0 + str r2, [r4, #0x18] + bic r1, ip, #0xff + and r0, r0, #0xff + orr r2, r1, r0 + str r3, [r4, #0x1c] + add r0, r4, #0xc + mov r1, #4 + str r2, [r4, #0x20] + bl ov02_02329560 + ldr r0, _0232983C @ =0x023544C0 + ldr r0, [r0] + cmp r0, #0 + bne _02329828 + ldr r0, _02329840 @ =0x023544C4 + mov r1, #4 + bl ov02_02329560 + ldr r0, _0232983C @ =0x023544C0 + mov r1, #1 + str r1, [r0] +_02329828: + mov r0, r4 + bl ov02_023297A0 + mov r1, r4 + bl ov02_023295A4 + pop {r4, pc} + .align 2, 0 +_0232983C: .4byte 0x023544C0 +_02329840: .4byte 0x023544C4 + arm_func_end ov02_023297C8 + + arm_func_start ov02_02329844 +ov02_02329844: @ 0x02329844 + push {r4, lr} + mov r4, r0 + bl ov02_023297A0 + mov r1, r4 + bl ov02_023296AC + pop {r4, pc} + arm_func_end ov02_02329844 + + arm_func_start ov02_0232985C +ov02_0232985C: @ 0x0232985C + ldrh r2, [r1, #2] + add r3, r1, #0x10 + asr r2, r2, #8 + and r2, r2, #0x7f + lsl r2, r2, #0x10 + sub r2, r1, r2, lsr #16 + str r2, [r0] + ldr r1, [r1, #4] + add r1, r1, r3 + str r1, [r0, #4] + bx lr + arm_func_end ov02_0232985C + + arm_func_start ov02_02329888 +ov02_02329888: @ 0x02329888 + ldr r2, [r1, #8] + ldr r1, [r1, #0xc] + cmp r2, #0 + strne r1, [r2, #0xc] + streq r1, [r0] + cmp r1, #0 + strne r2, [r1, #8] + streq r2, [r0, #4] + mov r0, r2 + bx lr + arm_func_end ov02_02329888 + + arm_func_start ov02_023298B0 +ov02_023298B0: @ 0x023298B0 + str r2, [r1, #8] + cmp r2, #0 + ldrne r3, [r2, #0xc] + strne r1, [r2, #0xc] + ldreq r3, [r0] + streq r1, [r0] + str r3, [r1, #0xc] + cmp r3, #0 + strne r1, [r3, #8] + streq r1, [r0, #4] + mov r0, r1 + bx lr + arm_func_end ov02_023298B0 + + arm_func_start ov02_023298E0 +ov02_023298E0: @ 0x023298E0 + ldr r3, [r0] + mov r2, #0 + strh r1, [r3] + strh r2, [r3, #2] + ldr r1, [r0, #4] + add r0, r3, #0x10 + sub r0, r1, r0 + stmib r3, {r0, r2} + mov r0, r3 + str r2, [r3, #0xc] + bx lr + arm_func_end ov02_023298E0 + + arm_func_start ov02_0232990C +ov02_0232990C: @ 0x0232990C + push {r3, r4, lr} + sub sp, sp, #0xc + mov r3, r1 + mov r4, r0 + str r2, [sp] + ldr r1, _02329978 @ =0x45585048 + add r2, r4, #0x38 + bl ov02_023297C8 + mov r0, #0 + strh r0, [r4, #0x34] + bic r0, r0, #1 + strh r0, [r4, #0x36] + ldr r1, [r4, #0x18] + add r0, sp, #4 + str r1, [sp, #4] + ldr r2, [r4, #0x1c] + ldr r1, _0232997C @ =0x00004652 + str r2, [sp, #8] + bl ov02_023298E0 + str r0, [r4, #0x24] + str r0, [r4, #0x28] + mov r1, #0 + str r1, [r4, #0x2c] + mov r0, r4 + str r1, [r4, #0x30] + add sp, sp, #0xc + pop {r3, r4, pc} + .align 2, 0 +_02329978: .4byte 0x45585048 +_0232997C: .4byte 0x00004652 + arm_func_end ov02_0232990C + + arm_func_start ov02_02329980 +ov02_02329980: @ 0x02329980 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x18 + mov r7, r0 + add r0, sp, #0x10 + mov r8, r1 + mov r6, r2 + mov r4, r3 + bl ov02_0232985C + ldr r3, [sp, #0x14] + sub r5, r6, #0x10 + add r2, r4, r6 + mov r0, r7 + mov r1, r8 + str r5, [sp, #0x14] + str r3, [sp, #0xc] + str r2, [sp, #8] + bl ov02_02329888 + ldr r2, [sp, #0x10] + ldr r1, [sp, #0x14] + mov r4, r0 + sub r0, r1, r2 + cmp r0, #0x14 + strlo r2, [sp, #0x14] + blo _02329A00 + ldr r1, _02329AF8 @ =0x00004652 + add r0, sp, #0x10 + bl ov02_023298E0 + mov r1, r0 + mov r0, r7 + mov r2, r4 + bl ov02_023298B0 + mov r4, r0 +_02329A00: + ldr r1, [sp, #0xc] + ldr r0, [sp, #8] + sub r0, r1, r0 + cmp r0, #0x14 + strlo r1, [sp, #8] + blo _02329A34 + ldr r1, _02329AF8 @ =0x00004652 + add r0, sp, #8 + bl ov02_023298E0 + mov r1, r0 + mov r0, r7 + mov r2, r4 + bl ov02_023298B0 +_02329A34: + ldr r0, [r7, #-4] + ldr r1, [sp, #0x14] + ldr r2, [sp, #8] + and r0, r0, #0xff + tst r0, #1 + sub r2, r2, r1 + beq _02329A58 + mov r0, #0 + bl FUN_0207C314 +_02329A58: + ldr r2, [sp, #8] + ldr r1, _02329AFC @ =0x00005544 + add r0, sp, #0 + str r5, [sp] + str r2, [sp, #4] + bl ov02_023298E0 + mov r1, r0 + ldrh r3, [r1, #2] + ldrh r2, [sp, #0x30] + add r0, r7, #8 + bic r3, r3, #0x8000 + strh r3, [r1, #2] + ldrh r3, [r1, #2] + lsl r2, r2, #0x1f + orr r2, r3, r2, lsr #16 + strh r2, [r1, #2] + ldrh r2, [r1, #2] + ldr r3, [sp, #0x14] + bic r2, r2, #0x7f00 + strh r2, [r1, #2] + sub r2, r1, r3 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + ldrh r3, [r1, #2] + lsl r2, r2, #0x19 + orr r2, r3, r2, lsr #17 + strh r2, [r1, #2] + ldrh r2, [r1, #2] + ldrh r3, [r7, #0x10] + bic r2, r2, #0xff + strh r2, [r1, #2] + ldrh r2, [r1, #2] + and r3, r3, #0xff + orr r2, r2, r3 + strh r2, [r1, #2] + ldr r2, [r7, #0xc] + bl ov02_023298B0 + mov r0, r6 + add sp, sp, #0x18 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02329AF8: .4byte 0x00004652 +_02329AFC: .4byte 0x00005544 + arm_func_end ov02_02329980 + + arm_func_start ov02_02329B00 +ov02_02329B00: @ 0x02329B00 + push {r3, r4, r5, r6, r7, r8, sb, lr} + ldrh r4, [r0, #0x36] + mov r3, r1 + ldr ip, [r0, #0x24] + and r1, r4, #1 + lsl r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r1, #0 + moveq r6, #1 + movne r6, #0 + mov r4, r1 + cmp ip, #0 + sub lr, r1, #1 + beq _02329B90 + sub r2, r2, #1 + mvn r5, r2 +_02329B40: + add r8, ip, #0x10 + add r7, r2, r8 + and sb, r5, r7 + sub r7, sb, r8 + ldr r8, [ip, #4] + add r7, r3, r7 + cmp r8, r7 + blo _02329B84 + cmp lr, r8 + bls _02329B84 + mov r1, ip + mov lr, r8 + mov r4, sb + cmp r6, #0 + bne _02329B90 + cmp r8, r3 + beq _02329B90 +_02329B84: + ldr ip, [ip, #0xc] + cmp ip, #0 + bne _02329B40 +_02329B90: + cmp r1, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + mov r5, #0 + mov r2, r4 + add r0, r0, #0x24 + str r5, [sp] + bl ov02_02329980 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov02_02329B00 + + arm_func_start ov02_02329BB4 +ov02_02329BB4: @ 0x02329BB4 + push {r3, r4, r5, r6, r7, r8, sb, lr} + ldrh r4, [r0, #0x36] + mov r3, r1 + ldr ip, [r0, #0x28] + and r1, r4, #1 + lsl r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov r1, #0 + moveq r5, #1 + movne r5, #0 + mov r4, r1 + cmp ip, #0 + sub lr, r1, #1 + beq _02329C40 + sub r2, r2, #1 + mvn r2, r2 +_02329BF4: + ldr r8, [ip, #4] + add sb, ip, #0x10 + add r6, r8, sb + sub r6, r6, r3 + and r7, r2, r6 + subs r6, r7, sb + bmi _02329C34 + cmp lr, r8 + bls _02329C34 + mov r1, ip + mov lr, r8 + mov r4, r7 + cmp r5, #0 + bne _02329C40 + cmp r8, r3 + beq _02329C40 +_02329C34: + ldr ip, [ip, #8] + cmp ip, #0 + bne _02329BF4 +_02329C40: + cmp r1, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + mov r5, #1 + mov r2, r4 + add r0, r0, #0x24 + str r5, [sp] + bl ov02_02329980 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov02_02329BB4 + + arm_func_start ov02_02329C64 +ov02_02329C64: @ 0x02329C64 + push {r4, r5, r6, lr} + sub sp, sp, #8 + mov r5, r1 + ldr r2, [r5] + ldr r1, [r5, #4] + mov r6, r0 + str r2, [sp] + str r1, [sp, #4] + ldr r1, [r6] + mov r4, #0 + cmp r1, #0 + beq _02329CD8 + ldr r0, [r5] +_02329C98: + cmp r1, r0 + movlo r4, r1 + blo _02329CCC + ldr r0, [r5, #4] + cmp r1, r0 + bne _02329CD8 + ldr r2, [r1, #4] + add r0, r1, #0x10 + add r2, r2, r0 + mov r0, r6 + str r2, [sp, #4] + bl ov02_02329888 + b _02329CD8 +_02329CCC: + ldr r1, [r1, #0xc] + cmp r1, #0 + bne _02329C98 +_02329CD8: + cmp r4, #0 + beq _02329D0C + ldr r2, [r4, #4] + add r1, r4, #0x10 + ldr r0, [r5] + add r1, r2, r1 + cmp r1, r0 + bne _02329D0C + mov r0, r6 + mov r1, r4 + str r4, [sp] + bl ov02_02329888 + mov r4, r0 +_02329D0C: + ldr r1, [sp, #4] + ldr r0, [sp] + sub r0, r1, r0 + cmp r0, #0x10 + addlo sp, sp, #8 + movlo r0, #0 + poplo {r4, r5, r6, pc} + ldr r1, _02329D50 @ =0x00004652 + add r0, sp, #0 + bl ov02_023298E0 + mov r1, r0 + mov r0, r6 + mov r2, r4 + bl ov02_023298B0 + mov r0, #1 + add sp, sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 +_02329D50: .4byte 0x00004652 + arm_func_end ov02_02329C64 + + arm_func_start ov02_02329D54 +ov02_02329D54: @ 0x02329D54 + push {r3, lr} + add r1, r1, r0 + add r0, r0, #3 + bic r1, r1, #3 + bic r0, r0, #3 + cmp r0, r1 + bhi _02329D7C + sub r3, r1, r0 + cmp r3, #0x4c + bhs _02329D84 +_02329D7C: + mov r0, #0 + pop {r3, pc} +_02329D84: + bl ov02_0232990C + pop {r3, pc} + arm_func_end ov02_02329D54 + + arm_func_start ov02_02329844 +ov02_02329844: @ 0x02329D8C + ldr ip, _02329D94 @ =ov02_02329844 + bx ip + .align 2, 0 +_02329D94: .4byte ov02_02329844 + arm_func_end ov02_02329844 + + arm_func_start ov02_02329D98 +ov02_02329D98: @ 0x02329D98 + push {r3, lr} + cmp r1, #0 + moveq r1, #1 + add r1, r1, #3 + cmp r2, #0 + bic r1, r1, #3 + blt _02329DBC + bl ov02_02329B00 + pop {r3, pc} +_02329DBC: + rsb r2, r2, #0 + bl ov02_02329BB4 + pop {r3, pc} + arm_func_end ov02_02329D98 + + arm_func_start ov02_02329DC8 +ov02_02329DC8: @ 0x02329DC8 + push {r3, r4, r5, lr} + sub sp, sp, #8 + sub r4, r1, #0x10 + mov r5, r0 + add r0, sp, #0 + mov r1, r4 + bl ov02_0232985C + mov r1, r4 + add r0, r5, #0x2c + bl ov02_02329888 + add r1, sp, #0 + add r0, r5, #0x24 + bl ov02_02329C64 + add sp, sp, #8 + pop {r3, r4, r5, pc} + arm_func_end ov02_02329DC8 + + arm_func_start ov02_02329E04 +ov02_02329E04: @ 0x02329E04 + push {r3, r4, lr} + sub sp, sp, #4 + mov r3, r1 + mov r4, r0 + str r2, [sp] + ldr r1, _02329E48 @ =0x46524D48 + add r2, r4, #0x30 + bl ov02_023297C8 + ldr r0, [r4, #0x18] + mov r1, #0 + str r0, [r4, #0x24] + ldr r2, [r4, #0x1c] + mov r0, r4 + str r2, [r4, #0x28] + str r1, [r4, #0x2c] + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02329E48: .4byte 0x46524D48 + arm_func_end ov02_02329E04 + + arm_func_start ov02_02329E4C +ov02_02329E4C: @ 0x02329E4C + push {r4, r5, r6, lr} + mov r4, r0 + ldr r3, [r4] + sub r0, r2, #1 + mvn r2, r0 + add r0, r0, r3 + and r5, r2, r0 + ldr r0, [r4, #4] + add r6, r1, r5 + cmp r6, r0 + movhi r0, #0 + pophi {r4, r5, r6, pc} + ldr r0, [r4, #-4] + sub r2, r6, r3 + and r0, r0, #0xff + tst r0, #1 + beq _02329E9C + mov r1, r3 + mov r0, #0 + bl FUN_0207C314 +_02329E9C: + mov r0, r5 + str r6, [r4] + pop {r4, r5, r6, pc} + arm_func_end ov02_02329E4C + + arm_func_start ov02_02329EA8 +ov02_02329EA8: @ 0x02329EA8 + push {r3, r4, r5, lr} + mov r4, r0 + ldr r3, [r4, #4] + sub r0, r2, #1 + mvn r2, r0 + sub r1, r3, r1 + ldr r0, [r4] + and r5, r2, r1 + cmp r5, r0 + movlo r0, #0 + poplo {r3, r4, r5, pc} + ldr r0, [r4, #-4] + sub r2, r3, r5 + and r0, r0, #0xff + tst r0, #1 + beq _02329EF4 + mov r1, r5 + mov r0, #0 + bl FUN_0207C314 +_02329EF4: + mov r0, r5 + str r5, [r4, #4] + pop {r3, r4, r5, pc} + arm_func_end ov02_02329EA8 + + arm_func_start ov02_02329F00 +ov02_02329F00: @ 0x02329F00 + ldr r2, [r0, #0x18] + mov r1, #0 + str r2, [r0, #0x24] + str r1, [r0, #0x2c] + bx lr + arm_func_end ov02_02329F00 + + arm_func_start ov02_02329F14 +ov02_02329F14: @ 0x02329F14 + ldr r2, [r0, #0x2c] + cmp r2, #0 + beq _02329F34 +_02329F20: + ldr r1, [r0, #0x1c] + str r1, [r2, #8] + ldr r2, [r2, #0xc] + cmp r2, #0 + bne _02329F20 +_02329F34: + ldr r1, [r0, #0x1c] + str r1, [r0, #0x28] + bx lr + arm_func_end ov02_02329F14 + + arm_func_start ov02_02329F40 +ov02_02329F40: @ 0x02329F40 + push {r3, lr} + add r1, r1, r0 + add r0, r0, #3 + bic r1, r1, #3 + bic r0, r0, #3 + cmp r0, r1 + bhi _02329F68 + sub r3, r1, r0 + cmp r3, #0x30 + bhs _02329F70 +_02329F68: + mov r0, #0 + pop {r3, pc} +_02329F70: + bl ov02_02329E04 + pop {r3, pc} + arm_func_end ov02_02329F40 + + arm_func_start ov02_02329844 +ov02_02329844: @ 0x02329F78 + ldr ip, _02329F80 @ =ov02_02329844 + bx ip + .align 2, 0 +_02329F80: .4byte ov02_02329844 + arm_func_end ov02_02329844 + + arm_func_start ov02_02329F84 +ov02_02329F84: @ 0x02329F84 + push {r3, lr} + cmp r1, #0 + moveq r1, #1 + add r1, r1, #3 + cmp r2, #0 + bic r1, r1, #3 + add r0, r0, #0x24 + blt _02329FAC + bl ov02_02329E4C + pop {r3, pc} +_02329FAC: + rsb r2, r2, #0 + bl ov02_02329EA8 + pop {r3, pc} + arm_func_end ov02_02329F84 + + arm_func_start ov02_02329FB8 +ov02_02329FB8: @ 0x02329FB8 + push {r3, r4, r5, lr} + mov r4, r1 + mov r5, r0 + tst r4, #1 + beq _02329FD0 + bl ov02_02329F00 +_02329FD0: + tst r4, #2 + popeq {r3, r4, r5, pc} + mov r0, r5 + bl ov02_02329F14 + pop {r3, r4, r5, pc} + arm_func_end ov02_02329FB8 + + arm_func_start ov02_02329FE4 +ov02_02329FE4: @ 0x02329FE4 + ldrh r2, [r0, #0xc] + ldrh ip, [r0, #0xe] + mov r3, #0 + add r0, r0, r2 + cmp ip, #0 + bls _0232A024 +_02329FFC: + ldr r2, [r0] + cmp r2, r1 + bxeq lr + add r2, r3, #1 + lsl r2, r2, #0x10 + ldr r3, [r0, #4] + cmp ip, r2, lsr #16 + add r0, r0, r3 + lsr r3, r2, #0x10 + bhi _02329FFC +_0232A024: + mov r0, #0 + bx lr + arm_func_end ov02_02329FE4 + + arm_func_start ov02_0232A02C +ov02_0232A02C: @ 0x0232A02C + push {r3, lr} + ldrh r3, [r0, #4] + ldr r2, _0232A0F0 @ =0x0000FFFF + cmp r3, #0 + beq _0232A054 + cmp r3, #1 + beq _0232A070 + cmp r3, #2 + beq _0232A084 + b _0232A0E8 +_0232A054: + ldrh r2, [r0] + ldrh r3, [r0, #0xc] + sub r0, r1, r2 + add r0, r3, r0 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + b _0232A0E8 +_0232A070: + ldrh r2, [r0] + sub r1, r1, r2 + add r0, r0, r1, lsl #1 + ldrh r2, [r0, #0xc] + b _0232A0E8 +_0232A084: + ldrh r3, [r0, #0xc] + add ip, r0, #0xe + sub r0, r3, #1 + add lr, ip, r0, lsl #2 + cmp ip, lr + bhi _0232A0E8 +_0232A09C: + sub r3, lr, ip + asr r0, r3, #1 + add r0, r3, r0, lsr #30 + asr r0, r0, #2 + add r0, r0, r0, lsr #31 + asr r3, r0, #1 + lsl r0, r3, #2 + ldrh r0, [ip, r0] + add r3, ip, r3, lsl #2 + cmp r0, r1 + addlo ip, r3, #4 + blo _0232A0E0 + cmp r1, r0 + sublo lr, r3, #4 + blo _0232A0E0 + ldrh r2, [r3, #2] + b _0232A0E8 +_0232A0E0: + cmp ip, lr + bls _0232A09C +_0232A0E8: + mov r0, r2 + pop {r3, pc} + .align 2, 0 +_0232A0F0: .4byte 0x0000FFFF + arm_func_end ov02_0232A02C + + arm_func_start ov02_0232A0F4 +ov02_0232A0F4: @ 0x0232A0F4 + push {r4, lr} + mov r4, r0 + mov r0, r1 + mov r1, r4 + bl ov02_0232BA74 + ldr r0, _0232A114 @ =0x0232BD04 + str r0, [r4, #4] + pop {r4, pc} + .align 2, 0 +_0232A114: .4byte 0x0232BD04 + arm_func_end ov02_0232A0F4 + + arm_func_start ov02_0232A118 +ov02_0232A118: @ 0x0232A118 + push {r3, lr} + ldr r0, [r0] + ldr r0, [r0, #0x10] + cmp r0, #0 + beq _0232A154 +_0232A12C: + ldrh r2, [r0] + cmp r2, r1 + ldrhls r2, [r0, #2] + cmpls r1, r2 + bhi _0232A148 + bl ov02_0232A02C + pop {r3, pc} +_0232A148: + ldr r0, [r0, #8] + cmp r0, #0 + bne _0232A12C +_0232A154: + ldr r0, _0232A15C @ =0x0000FFFF + pop {r3, pc} + .align 2, 0 +_0232A15C: .4byte 0x0000FFFF + arm_func_end ov02_0232A118 + + arm_func_start ov02_0232A160 +ov02_0232A160: @ 0x0232A160 + ldr ip, [r0] + ldr r3, [ip, #0xc] + cmp r3, #0 + beq _0232A1A4 +_0232A170: + ldrh r2, [r3] + cmp r2, r1 + ldrhls r0, [r3, #2] + cmpls r1, r0 + bhi _0232A198 + sub r0, r1, r2 + add r1, r3, #8 + add r0, r0, r0, lsl #1 + add r0, r1, r0 + bx lr +_0232A198: + ldr r3, [r3, #4] + cmp r3, #0 + bne _0232A170 +_0232A1A4: + add r0, ip, #4 + bx lr + arm_func_end ov02_0232A160 + + arm_func_start ov02_0232A1AC +ov02_0232A1AC: @ 0x0232A1AC + push {r3, r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #4 + mov r8, r0 + str r2, [sp] + ldr r5, [r8, #4] + add r0, sp, #0 + mov r7, r1 + mov r6, r3 + mov r4, #0 + blx r5 + movs r1, r0 + beq _0232A228 + ldr sb, _0232A254 @ =0x0000FFFF + add sl, sp, #0 +_0232A1E4: + cmp r1, #0xa + beq _0232A228 + mov r0, r8 + bl ov02_0232A118 + mov r1, r0 + cmp r1, sb + ldreq r0, [r8] + ldrheq r1, [r0, #2] + mov r0, r8 + bl ov02_0232A160 + ldrsb r1, [r0, #2] + mov r0, sl + add r1, r7, r1 + add r4, r4, r1 + blx r5 + movs r1, r0 + bne _0232A1E4 +_0232A228: + cmp r6, #0 + beq _0232A240 + cmp r1, #0xa + ldreq r0, [sp] + movne r0, #0 + str r0, [r6] +_0232A240: + cmp r4, #0 + subgt r4, r4, r7 + mov r0, r4 + add sp, sp, #4 + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0232A254: .4byte 0x0000FFFF + arm_func_end ov02_0232A1AC + + arm_func_start ov02_0232A258 +ov02_0232A258: @ 0x0232A258 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0xc + add r4, sp, #0 + mov r3, #0 + mov r8, r0 + str r2, [sp, #8] + str r3, [r4] + str r3, [r4, #4] + ldr r7, [r8, #4] + add r0, sp, #8 + mov r4, r1 + mov r6, #1 + blx r7 + cmp r0, #0 + beq _0232A2B0 + add r5, sp, #8 +_0232A298: + cmp r0, #0xa + mov r0, r5 + addeq r6, r6, #1 + blx r7 + cmp r0, #0 + bne _0232A298 +_0232A2B0: + ldr r0, [r8] + ldrsb r0, [r0, #1] + add r0, r4, r0 + mul r0, r6, r0 + sub r0, r0, r4 + add sp, sp, #0xc + pop {r3, r4, r5, r6, r7, r8, pc} + arm_func_end ov02_0232A258 + + arm_func_start ov02_0232A2CC +ov02_0232A2CC: @ 0x0232A2CC + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #8 + mov r6, r2 + ldr r2, [sp, #0x28] + add sb, sp, #0 + mov r4, #0 + mov r8, r0 + mov r7, r1 + mov r5, r3 + str r4, [sb] + str r4, [sb, #4] + cmp r2, #0 + mov r4, #1 + beq _0232A334 + add sb, sp, #0x28 +_0232A308: + mov r0, r7 + mov r1, r6 + mov r3, sb + bl ov02_0232A1AC + ldr r1, [sp] + ldr r2, [sp, #0x28] + cmp r0, r1 + strgt r0, [sp] + add r4, r4, #1 + cmp r2, #0 + bne _0232A308 +_0232A334: + ldr r0, [r7] + sub r2, r4, #1 + ldrsb r1, [r0, #1] + ldr r0, [sp] + add r1, r5, r1 + mul r1, r2, r1 + sub r1, r1, r5 + str r1, [sp, #4] + stm r8, {r0, r1} + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov02_0232A2CC + + arm_func_start ov02_0232A360 +ov02_0232A360: @ 0x0232A360 + push {r4, r5, r6, r7, r8, sb, sl, lr} + mov sl, #3 + ldr r7, [sp, #0x20] + ldr r6, [sp, #0x24] + ldr r8, _0232A454 @ =0x0234FBF8 + mov r5, #0 + mov sb, sl + mvn r4, #0 +_0232A380: + and ip, r3, r4, lsl r6 + cmp ip, r1 + and lr, r2, r4, lsl r7 + bhi _0232A3C4 + mla r5, r2, ip, r5 + cmp lr, r0 + bhi _0232A3B4 + sub r3, r3, ip + mla r5, lr, r3, r5 + sub r0, r0, lr + sub r1, r1, ip + sub r2, r2, lr + b _0232A40C +_0232A3B4: + mov r2, lr + sub r1, r1, ip + sub r3, r3, ip + b _0232A40C +_0232A3C4: + cmp lr, r0 + mvn r3, r4, lsl r6 + bhi _0232A3E4 + mla r5, lr, ip, r5 + mov r3, ip + sub r0, r0, lr + sub r2, r2, lr + b _0232A40C +_0232A3E4: + and r2, r1, r4, lsl r6 + mla r5, lr, r2, r5 + and r2, r0, r4, lsl r7 + mvn r4, r4, lsl r7 + add r2, r5, r2, lsl r6 + and r1, r1, r3 + add r1, r2, r1, lsl r7 + and r0, r0, r4 + add r0, r1, r0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_0232A40C: + cmp r2, #8 + movge r6, sl + movlt r6, r2 + clzlt r6, r6 + rsblt r6, r6, #0x1f + cmp r3, #8 + movge r7, sb + movlt r7, r3 + clzlt r7, r7 + rsblt r7, r7, #0x1f + add r7, r8, r7, lsl #3 + add ip, r7, r6, lsl #1 + ldrb r7, [r7, r6, lsl #1] + ldrb r6, [ip, #1] + str r7, [sp, #0x20] + str r6, [sp, #0x24] + b _0232A380 +_0232A450: + .byte 0xF0, 0x87, 0xBD, 0xE8 +_0232A454: .4byte 0x0234FBF8 + arm_func_end ov02_0232A360 + + arm_func_start ov02_0232A458 +ov02_0232A458: @ 0x0232A458 + ldrb r3, [r0, #1] + ldr r2, _0232A470 @ =0x0234FC18 + ldrb r1, [r0] + add r0, r2, r3, lsl #4 + ldr r0, [r0, r1, lsl #2] + bx lr + .align 2, 0 +_0232A470: .4byte 0x0234FC18 + arm_func_end ov02_0232A458 + + arm_func_start ov02_0232A474 +ov02_0232A474: @ 0x0232A474 + push {r3, r4, r5, lr} + cmp r3, #8 + ldreq r4, [sp, #0x10] + mov ip, r0 + ldr r0, [sp, #0x14] + cmpeq r4, #8 + bne _0232A4A4 + ldr r2, [sp, #0x18] + mov r1, ip + lsl r2, r2, #3 + bl FUN_0207C358 + pop {r3, r4, r5, pc} +_0232A4A4: + ldr r4, [sp, #0x18] + cmp r4, #4 + bne _0232A504 + lsl r5, r1, #2 + add r4, r5, r3, lsl #2 + mvn r3, #0 + rsb r4, r4, #0x20 + lsr r3, r3, r5 + add r1, r4, r1, lsl #2 + lsl r3, r3, r1 + ldr r1, [sp, #0x10] + add r2, ip, r2, lsl #2 + add r5, r2, r1, lsl #2 + and r1, r0, r3, lsr r4 + mvn r3, r3, lsr r4 + cmp r2, r5 + pophs {r3, r4, r5, pc} +_0232A4E8: + ldr r0, [r2] + and r0, r0, r3 + orr r0, r1, r0 + str r0, [r2], #4 + cmp r2, r5 + blo _0232A4E8 + pop {r3, r4, r5, pc} +_0232A504: + lsl r1, r1, #3 + mvn r4, #0 + add r3, r1, r3, lsl #3 + rsb r3, r3, #0x40 + lsr r5, r4, r1 + cmp r3, #0x20 + lsllo r5, r5, r1 + blo _0232A534 + sub lr, r3, #0x20 + add r4, r1, lr + lsl r4, r5, r4 + lsr r5, r4, lr +_0232A534: + mvn lr, #0 + lsl r4, lr, r3 + cmp r1, #0x20 + lsrlo r3, r4, r3 + blo _0232A558 + sub lr, r1, #0x20 + add r1, lr, r3 + lsr r1, r4, r1 + lsl r3, r1, lr +_0232A558: + ldr r1, [sp, #0x10] + add r4, ip, r2, lsl #3 + add ip, r4, r1, lsl #3 + and r1, r0, r5 + and r2, r0, r3 + mvn r5, r5 + mvn r3, r3 + cmp r4, ip + pophs {r3, r4, r5, pc} +_0232A57C: + ldr r0, [r4] + and r0, r0, r5 + orr r0, r1, r0 + str r0, [r4] + ldr r0, [r4, #4] + and r0, r0, r3 + orr r0, r2, r0 + str r0, [r4, #4] + add r4, r4, #8 + cmp r4, ip + blo _0232A57C + pop {r3, r4, r5, pc} + arm_func_end ov02_0232A474 + + arm_func_start ov02_0232A5AC +ov02_0232A5AC: @ 0x0232A5AC + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x28 + ldr r5, [r0, #8] + ldr r4, [r0, #0xc] + cmp r5, #0 + strge r5, [sp] + movlt r1, #0 + strlt r1, [sp] + ldr r1, [r0, #0x10] + cmp r4, #0 + add sl, r5, r1 + ldr r1, [r0, #0x14] + movge r2, r4 + movlt r2, #0 + cmp sl, #8 + add r3, r4, r1 + movge sl, #8 + cmp r3, #8 + movge r3, #8 + cmp r4, #0 + movgt r4, #0 + cmp r5, #0 + ldr r7, [r0, #0x20] + movgt r5, #0 + rsb r1, r4, #0 + mul r6, sl, r7 + ldr r8, [r0, #0x1c] + rsb r4, r5, #0 + mul sb, r8, r4 + ldr r4, [r0, #0x18] + mov sl, r6 + str r4, [sp, #0x10] + ldr r4, [sp] + cmp r7, #4 + mul r5, r4, r7 + ldr r4, [sp, #0x10] + str r5, [sp] + mla r4, r1, r4, sb + ldr r1, [r0, #4] + str r1, [sp, #0x14] + ldr r1, [r0] + bne _0232A71C + ldr r7, [r0, #0x24] + add r0, r1, r2, lsl #2 + str r0, [sp, #0xc] + add r0, r1, r3, lsl #2 + ldr r1, [sp, #0xc] + str r0, [sp, #8] + cmp r1, r0 + addhs sp, sp, #0x28 + pophs {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov fp, #0xf + add r5, sp, #0x20 +_0232A680: + ldr r0, [sp, #0xc] + lsr r1, r4, #0x1f + ldr sb, [r0] + ldr r0, [sp, #0x14] + rsb r2, r1, r4, lsl #29 + add r0, r0, r4, lsr #3 + str r0, [sp, #0x20] + mov r0, #0 + strb r0, [sp, #0x24] + strb r0, [sp, #0x25] + mov r0, r5 + add r1, r1, r2, ror #29 + bl ov02_0232BCA4 + ldr r6, [sp] + mov r0, r6 + cmp r0, sl + bhs _0232A6F4 +_0232A6C4: + mov r0, r5 + mov r1, r8 + bl ov02_0232BCA4 + cmp r0, #0 + beq _0232A6E8 + add r0, r7, r0 + mvn r1, fp, lsl r6 + and r1, sb, r1 + orr sb, r1, r0, lsl r6 +_0232A6E8: + add r6, r6, #4 + cmp r6, sl + blo _0232A6C4 +_0232A6F4: + ldr r1, [sp, #0xc] + ldr r0, [sp, #8] + str sb, [r1], #4 + cmp r1, r0 + ldr r0, [sp, #0x10] + str r1, [sp, #0xc] + add r4, r4, r0 + blo _0232A680 + add sp, sp, #0x28 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0232A71C: + ldr r5, [r0, #0x24] + add r0, r1, r3, lsl #3 + add fp, r1, r2, lsl #3 + str r0, [sp, #4] + cmp fp, r0 + addhs sp, sp, #0x28 + pophs {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0232A738: + lsr r1, r4, #0x1f + rsb r0, r1, r4, lsl #29 + add r1, r1, r0, ror #29 + ldr r0, [sp, #0x14] + ldm fp, {r6, r7} + mov r2, #0 + add r0, r0, r4, lsr #3 + str r0, [sp, #0x18] + add r0, sp, #0x18 + strb r2, [sp, #0x1c] + strb r2, [sp, #0x1d] + bl ov02_0232BCA4 + ldr sb, [sp] + mov r0, sb + cmp r0, sl + bhs _0232A7C8 +_0232A778: + add r0, sp, #0x18 + mov r1, r8 + bl ov02_0232BCA4 + cmp r0, #0 + beq _0232A7BC + add r1, r5, r0 + cmp sb, #0x20 + mov r0, #0xff + bhs _0232A7AC + mvn r0, r0, lsl sb + and r0, r6, r0 + orr r6, r0, r1, lsl sb + b _0232A7BC +_0232A7AC: + sub r2, sb, #0x20 + mvn r0, r0, lsl r2 + and r0, r7, r0 + orr r7, r0, r1, lsl r2 +_0232A7BC: + add sb, sb, #8 + cmp sb, sl + blo _0232A778 +_0232A7C8: + ldr r0, [sp, #4] + stm fp, {r6, r7} + add fp, fp, #8 + cmp fp, r0 + ldr r0, [sp, #0x10] + add r4, r4, r0 + blo _0232A738 + add sp, sp, #0x28 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov02_0232A5AC + + arm_func_start ov02_0232A7EC +ov02_0232A7EC: @ 0x0232A7EC + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x2c + ldr r4, [sp, #0x54] + ldrb r6, [r0, #0xc] + str r4, [sp, #0x54] + ldr r4, [r4] + ldr r5, [r1] + lsl r7, r6, #6 + ldrb r4, [r4, #1] + asr r6, r7, #2 + add r6, r7, r6, lsr #29 + cmp r4, #0 + ldr r5, [r5, #8] + mov sl, r2 + mov sb, r3 + asr r8, r6, #3 + addeq sp, sp, #0x2c + ldmib r0, {fp, ip} + ldr lr, [r0] + ldrb r2, [r5, #1] + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + adds r7, sl, r4 + addmi sp, sp, #0x2c + popmi {r4, r5, r6, r7, r8, sb, sl, fp, pc} + adds r3, sb, r2 + addmi sp, sp, #0x2c + popmi {r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp sl, #0 + movle r5, #0 + lsrgt r5, sl, #3 + cmp sb, #0 + movle r6, #0 + add r7, r7, #7 + lsrgt r6, sb, #3 + cmp fp, r7, lsr #3 + lsr r7, r7, #3 + add r3, r3, #7 + movls r7, fp + lsr fp, r3, #3 + cmp ip, r3, lsr #3 + movls fp, ip + subs r3, r7, r5 + sub fp, fp, r6 + addmi sp, sp, #0x2c + popmi {r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp fp, #0 + addlt sp, sp, #0x2c + poplt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r7, [r0, #0x10] + cmp sl, #0 + mla r6, r7, r6, r5 + sub r5, r7, r3 + mul r5, r8, r5 + str r5, [sp] + ldr r5, [sp, #0x54] + mla r7, r8, r6, lr + ldr ip, [r5, #4] + ldr r6, [sp, #0x50] + str ip, [sp, #8] + sub r5, r6, #1 + str r4, [sp, #0x14] + str r5, [sp, #0x28] + str r2, [sp, #0x18] + ldr r2, [r1] + andge sl, sl, #7 + ldr r2, [r2, #8] + cmp sb, #0 + ldrb r2, [r2, #6] + andge sb, sb, #7 + sub fp, sb, fp, lsl #3 + str r2, [sp, #0x20] + ldrb r0, [r0, #0xc] + cmp sb, fp + sub r6, sl, r3, lsl #3 + str r0, [sp, #0x24] + ldr r0, [r1] + ldr r0, [r0, #8] + ldrb r0, [r0] + smulbb r0, r2, r0 + str r0, [sp, #0x1c] + addle sp, sp, #0x2c + pople {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r4, sp, #4 +_0232A938: + mov r5, sl + str sb, [sp, #0x10] + cmp sl, r6 + ble _0232A968 +_0232A948: + mov r0, r4 + str r7, [sp, #4] + str r5, [sp, #0xc] + bl ov02_0232A5AC + sub r5, r5, #8 + cmp r5, r6 + add r7, r7, r8 + bgt _0232A948 +_0232A968: + ldr r0, [sp] + sub sb, sb, #8 + cmp sb, fp + add r7, r7, r0 + bgt _0232A938 + add sp, sp, #0x2c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov02_0232A7EC + + arm_func_start ov02_0232A984 +ov02_0232A984: @ 0x0232A984 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x4c + ldr r6, [sp, #0x74] + ldrb r5, [r0, #0xc] + ldr r4, [r6] + ldr r7, [r1] + lsl r8, r5, #6 + ldrb r4, [r4, #1] + asr r5, r8, #2 + add r5, r8, r5, lsr #29 + ldr r7, [r7, #8] + str r2, [sp, #8] + str r3, [sp, #0xc] + cmp r4, #0 + asr sb, r5, #3 + addeq sp, sp, #0x4c + ldmib r0, {r3, r5} + ldrb r2, [r7, #1] + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r7, [sp, #8] + adds r7, r7, r4 + addmi sp, sp, #0x4c + popmi {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r8, [sp, #0xc] + adds r8, r8, r2 + addmi sp, sp, #0x4c + popmi {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr sl, [sp, #8] + add r7, r7, #7 + cmp sl, #0 + movle sl, #0 + strle sl, [sp, #0x10] + lsrgt sl, sl, #3 + strgt sl, [sp, #0x10] + ldr sl, [sp, #0xc] + cmp sl, #0 + movle sl, #0 + lsrgt sl, sl, #3 + cmp r3, r7, lsr #3 + lsr r7, r7, #3 + movls r7, r3 + add r3, r8, #7 + cmp r5, r3, lsr #3 + lsr r8, r3, #3 + ldr r3, [sp, #0x10] + movls r8, r5 + subs r5, r7, r3 + sub r7, r8, sl + addmi sp, sp, #0x4c + popmi {r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r7, #0 + addlt sp, sp, #0x4c + poplt {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r3, [sp, #8] + ldr fp, [r0] + cmp r3, #0 + andge r3, r3, #7 + strge r3, [sp, #8] + ldr r3, [sp, #0xc] + ldr r8, [sp, #8] + ldr r6, [r6, #4] + cmp r3, #0 + andge r3, r3, #7 + strge r3, [sp, #0xc] + ldr r3, [sp, #0x70] + sub r5, r8, r5, lsl #3 + ldr r8, [sp, #0xc] + sub r3, r3, #1 + str r3, [sp, #0x48] + sub r7, r8, r7, lsl #3 + str r2, [sp, #0x38] + str r6, [sp, #0x28] + str r4, [sp, #0x34] + ldr r4, [r1] + mov r3, r8 + mov r2, r7 + cmp r3, r2 + ldr r2, [r4, #8] + str r7, [sp, #0x1c] + ldrb r3, [r2, #6] + str r3, [sp, #0x40] + ldrb r2, [r0, #0xc] + str r2, [sp, #0x44] + ldr r1, [r1] + ldr r1, [r1, #8] + ldrb r1, [r1] + smulbb r1, r3, r1 + str r1, [sp, #0x3c] + ldr r3, [r0, #0x10] + ldr r1, [r0, #4] + ldr r0, [r0, #8] + str r1, [sp, #0x14] + lsl r2, r3, #0x18 + lsl r1, r3, #0x10 + str r3, [sp, #0x20] + str r0, [sp, #0x18] + lsr r8, r2, #0x18 + lsr r7, r1, #0x18 + addle sp, sp, #0x4c + pople {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0232AB14: + ldr r0, [sp, #0xc] + ldr r6, [sp, #0x10] + str r0, [sp, #0x30] + ldr r0, [sp, #8] + cmp r0, r5 + mov r4, r0 + ble _0232AB70 +_0232AB30: + ldr r2, [sp, #0x14] + str r8, [sp] + ldr r3, [sp, #0x18] + mov r0, r6 + mov r1, sl + str r7, [sp, #4] + bl ov02_0232A360 + mla r1, r0, sb, fp + add r0, sp, #0x24 + str r4, [sp, #0x2c] + str r1, [sp, #0x24] + bl ov02_0232A5AC + sub r4, r4, #8 + add r6, r6, #1 + cmp r4, r5 + bgt _0232AB30 +_0232AB70: + ldr r0, [sp, #0xc] + add sl, sl, #1 + sub r1, r0, #8 + ldr r0, [sp, #0x1c] + str r1, [sp, #0xc] + cmp r1, r0 + bgt _0232AB14 + add sp, sp, #0x4c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov02_0232A984 + + arm_func_start ov02_0232AB94 +ov02_0232AB94: @ 0x0232AB94 + push {r3, lr} + mov r3, r0 + ldrb r2, [r3, #0xc] + ldr ip, [r3, #4] + cmp r2, #4 + orreq r0, r1, r1, lsl #4 + orreq r0, r0, r0, lsl #8 + orrne r0, r1, r1, lsl #8 + orr r1, r0, r0, lsl #16 + ldr r0, [r3, #8] + lsl r2, r2, #6 + mul lr, ip, r0 + asr r0, r2, #2 + add r0, r2, r0, lsr #29 + asr r2, r0, #3 + mov r0, r1 + mul r2, lr, r2 + ldr r1, [r3] + bl FUN_0207C358 + pop {r3, pc} + arm_func_end ov02_0232AB94 + + arm_func_start ov02_0232ABE4 +ov02_0232ABE4: @ 0x0232ABE4 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r7, r0 + ldrb r2, [r7, #0xc] + mov r6, r1 + ldr sb, [r7] + cmp r2, #4 + orreq r0, r6, r6, lsl #4 + orreq r0, r0, r0, lsl #8 + orrne r0, r6, r6, lsl #8 + lsl r1, r2, #6 + orr r6, r0, r0, lsl #16 + asr r0, r1, #2 + add r0, r1, r0, lsr #29 + asr r3, r0, #3 + ldr r2, [r7, #0x10] + ldr r1, [r7, #4] + ldr r0, [r7, #8] + mul r5, r3, r2 + mul r4, r3, r1 + mov r8, #0 + cmp r0, #0 + pople {r3, r4, r5, r6, r7, r8, sb, pc} +_0232AC3C: + mov r0, r6 + mov r1, sb + mov r2, r4 + bl FUN_0207C358 + ldr r0, [r7, #8] + add r8, r8, #1 + cmp r8, r0 + add sb, sb, r5 + blt _0232AC3C + pop {r3, r4, r5, r6, r7, r8, sb, pc} + arm_func_end ov02_0232ABE4 + + arm_func_start ov02_0232AC64 +ov02_0232AC64: @ 0x0232AC64 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x30 + ldr r4, [sp, #0x58] + mov sb, r2 + ldrb fp, [r0, #0xc] + mov sl, r1 + add r1, sb, r4 + str r1, [sp, #0x28] + ldr r2, [sp, #0x5c] + mov r1, r3 + add r1, r1, r2 + cmp fp, #4 + str r1, [sp, #0x24] + orreq r1, sl, sl, lsl #4 + orreq r1, r1, r1, lsl #8 + orrne r1, sl, sl, lsl #8 + str r3, [sp, #0xc] + orr sl, r1, r1, lsl #16 + ldr r1, [sp, #0xc] + lsl r6, fp, #6 + bic r1, r1, #7 + asr r4, r6, #2 + asr r2, r1, #2 + str r1, [sp, #0x2c] + add r1, r1, r2, lsr #29 + ldr r2, [r0, #0x10] + asr r3, r1, #3 + mul r1, r3, r2 + bic r3, sb, #7 + asr r5, r3, #2 + add r4, r6, r4, lsr #29 + str r3, [sp, #0x18] + add r5, r3, r5, lsr #29 + asr r3, r4, #3 + str r3, [sp, #0x14] + add r4, r1, r5, asr #3 + ldr r3, [sp, #0x24] + ldr r5, [r0] + ldr r1, [sp, #0x14] + ldr r0, [sp, #0x28] + mla r4, r1, r4, r5 + add r3, r3, #7 + bic r1, r3, #7 + str r1, [sp, #0x20] + ldr r1, [sp, #0x14] + add r0, r0, #7 + mul r1, r2, r1 + str r1, [sp, #0x10] + ldr r2, [sp, #0x2c] + ldr r1, [sp, #0x20] + str r4, [sp, #0x1c] + cmp r2, r1 + bic r6, r0, #7 + addge sp, sp, #0x30 + popge {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0232AD40: + ldr r1, [sp, #0x2c] + ldr r0, [sp, #0xc] + cmp r1, r0 + movge r8, #0 + bge _0232AD60 + mov r1, r0 + ldr r0, [sp, #0x2c] + sub r8, r1, r0 +_0232AD60: + ldr r1, [sp, #0x24] + ldr r0, [sp, #0x2c] + ldr r7, [sp, #0x1c] + sub r0, r1, r0 + cmp r0, #8 + movgt r0, #8 + sub r5, r0, r8 + ldr r0, [sp, #0x18] + cmp r0, r6 + mov r4, r0 + bge _0232ADD0 +_0232AD8C: + ldr r0, [sp, #0x28] + cmp r4, sb + sublt r1, sb, r4 + sub r0, r0, r4 + movge r1, #0 + cmp r0, #8 + movgt r0, #8 + sub r3, r0, r1 + mov r0, r7 + mov r2, r8 + stm sp, {r5, sl, fp} + bl ov02_0232A474 + ldr r0, [sp, #0x14] + add r4, r4, #8 + add r7, r7, r0 + cmp r4, r6 + blt _0232AD8C +_0232ADD0: + ldr r1, [sp, #0x1c] + ldr r0, [sp, #0x10] + add r0, r1, r0 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x2c] + add r1, r0, #8 + ldr r0, [sp, #0x20] + str r1, [sp, #0x2c] + cmp r1, r0 + blt _0232AD40 + add sp, sp, #0x30 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov02_0232AC64 + + arm_func_start ov02_0232AE00 +ov02_0232AE00: @ 0x0232AE00 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x48 + ldrb r4, [r0, #0xc] + mov sl, r2 + mov fp, r1 + str r4, [sp, #0x10] + ldr r1, [sp, #0x10] + ldr r4, [sp, #0x70] + cmp r1, #4 + add r1, sl, r4 + str r1, [sp, #0x3c] + ldr r2, [sp, #0x74] + mov r1, r3 + add r1, r1, r2 + bic r2, sl, #7 + str r1, [sp, #0x38] + str r3, [sp, #0xc] + str r2, [sp, #0x28] + ldr r2, [sp, #0xc] + orreq r1, fp, fp, lsl #4 + bic r2, r2, #7 + str r2, [sp, #0x40] + ldr r2, [sp, #0x10] + orreq r1, r1, r1, lsl #8 + lsl r5, r2, #6 + ldr r2, [sp, #0x38] + asr r3, r5, #2 + add r6, r2, #7 + ldr r2, [sp, #0x28] + add r3, r5, r3, lsr #29 + asr r4, r2, #2 + ldr r2, [sp, #0x40] + orrne r1, fp, fp, lsl #8 + asr r5, r2, #2 + bic r2, r6, #7 + str r2, [sp, #0x34] + asr r2, r3, #3 + str r2, [sp, #0x14] + ldr r2, [sp, #0x28] + orr fp, r1, r1, lsl #16 + add r2, r2, r4, lsr #29 + asr r2, r2, #3 + str r2, [sp, #0x2c] + ldr r2, [sp, #0x40] + ldr r1, [r0, #0x10] + add r2, r2, r5, lsr #29 + asr r8, r2, #3 + ldr r3, [sp, #0x40] + ldr r2, [sp, #0x34] + str r1, [sp, #0x44] + cmp r3, r2 + ldr r2, [sp, #0x3c] + add r2, r2, #7 + bic r7, r2, #7 + ldr r2, [r0, #4] + str r2, [sp, #0x18] + ldr r2, [r0, #8] + ldr r0, [r0] + str r2, [sp, #0x1c] + str r0, [sp, #0x30] + lsl r0, r1, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x20] + lsl r0, r1, #0x10 + lsr r0, r0, #0x18 + str r0, [sp, #0x24] + addge sp, sp, #0x48 + popge {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0232AF10: + ldr r1, [sp, #0x40] + ldr r0, [sp, #0xc] + cmp r1, r0 + movge sb, #0 + bge _0232AF30 + mov r1, r0 + ldr r0, [sp, #0x40] + sub sb, r1, r0 +_0232AF30: + ldr r1, [sp, #0x38] + ldr r0, [sp, #0x40] + ldr r6, [sp, #0x2c] + sub r0, r1, r0 + cmp r0, #8 + movgt r0, #8 + sub r5, r0, sb + ldr r0, [sp, #0x28] + cmp r0, r7 + mov r4, r0 + bge _0232AFD0 +_0232AF5C: + ldr r0, [sp, #0x20] + ldr r2, [sp, #0x18] + str r0, [sp] + ldr r0, [sp, #0x24] + ldr r3, [sp, #0x1c] + str r0, [sp, #4] + mov r0, r6 + mov r1, r8 + bl ov02_0232A360 + ldr r2, [sp, #0x3c] + cmp r4, sl + sublt r1, sl, r4 + sub r2, r2, r4 + movge r1, #0 + cmp r2, #8 + movgt r2, #8 + stm sp, {r5, fp} + sub r3, r2, r1 + ldr r2, [sp, #0x10] + ldr ip, [sp, #0x14] + str r2, [sp, #8] + ldr r2, [sp, #0x30] + mla r0, ip, r0, r2 + mov r2, sb + bl ov02_0232A474 + add r4, r4, #8 + add r6, r6, #1 + cmp r4, r7 + blt _0232AF5C +_0232AFD0: + ldr r0, [sp, #0x40] + add r8, r8, #1 + add r1, r0, #8 + ldr r0, [sp, #0x34] + str r1, [sp, #0x40] + cmp r1, r0 + blt _0232AF10 + add sp, sp, #0x48 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov02_0232AE00 + + arm_func_start ov02_0232AFF4 +ov02_0232AFF4: @ 0x0232AFF4 + str r2, [r0, #4] + ldr r2, [sp] + str r3, [r0, #8] + strb r2, [r0, #0xc] + ldr r2, [sp, #4] + str r1, [r0] + ldr r1, [sp, #8] + str r2, [r0, #0x14] + str r1, [r0, #0x10] + bx lr + arm_func_end ov02_0232AFF4 + + arm_func_start ov02_0232B01C +ov02_0232B01C: @ 0x0232B01C + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x10 + mov r7, r1 + ldrh r1, [sp, #0x2c] + mov r8, r0 + mov r0, r7 + mov r6, r2 + mov r5, r3 + bl ov02_0232A118 + ldr r1, _0232B13C @ =0x0000FFFF + mov r4, r0 + cmp r4, r1 + ldreq r0, [r7] + ldrheq r4, [r0, #2] + mov r0, r7 + mov r1, r4 + bl ov02_0232A160 + str r0, [sp, #8] + ldr r1, [r7] + ldr r2, [r1, #8] + ldrh r1, [r2, #2] + add r2, r2, #8 + mla r1, r4, r1, r2 + str r1, [sp, #0xc] + ldr r1, [r7] + ldr r3, [r1, #8] + ldrb r1, [r3, #7] + cmp r1, #7 + addls pc, pc, r1, lsl #2 + b _0232B100 +_0232B094: @ jump table + b _0232B0B4 @ case 0 + b _0232B0C0 @ case 1 + b _0232B0C0 @ case 2 + b _0232B0D4 @ case 3 + b _0232B0D4 @ case 4 + b _0232B0F0 @ case 5 + b _0232B0F0 @ case 6 + b _0232B0B4 @ case 7 +_0232B0B4: + ldrsb r0, [r0] + add r6, r6, r0 + b _0232B100 +_0232B0C0: + ldrb r1, [r3] + ldrsb r0, [r0] + sub r6, r6, r1 + add r5, r5, r0 + b _0232B100 +_0232B0D4: + ldrsb r2, [r0] + ldrb r1, [r0, #1] + ldrb r0, [r3, #1] + add r1, r2, r1 + sub r6, r6, r1 + sub r5, r5, r0 + b _0232B100 +_0232B0F0: + ldrsb r1, [r0] + ldrb r0, [r3, #1] + add r0, r1, r0 + sub r5, r5, r0 +_0232B100: + ldr r1, [sp, #0x28] + add r0, sp, #8 + str r1, [sp] + str r0, [sp, #4] + ldr r1, [r8, #0x14] + mov r0, r8 + ldr r4, [r1] + mov r1, r7 + mov r2, r6 + mov r3, r5 + blx r4 + ldr r0, [sp, #8] + ldrsb r0, [r0, #2] + add sp, sp, #0x10 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0232B13C: .4byte 0x0000FFFF + arm_func_end ov02_0232B01C + + arm_func_start ov02_0232B140 +ov02_0232B140: @ 0x0232B140 + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr lr, [sp, #0x10] + ldr ip, _0232B168 @ =0x0234FBE0 + str lr, [sp] + str ip, [sp, #4] + str r2, [sp, #8] + bl ov02_0232AFF4 + add sp, sp, #0xc + ldm sp!, {pc} + .align 2, 0 +_0232B168: .4byte 0x0234FBE0 + arm_func_end ov02_0232B140 + + arm_func_start ov02_0232B16C +ov02_0232B16C: @ 0x0232B16C + push {r3, r4, r5, lr} + sub sp, sp, #0x10 + cmp r2, #8 + movlt r4, r2 + movge ip, #3 + clzlt r4, r4 + rsblt ip, r4, #0x1f + cmp r3, #8 + movlt r4, r3 + movge r5, #3 + clzlt r4, r4 + rsblt r5, r4, #0x1f + ldr r4, _0232B1EC @ =0x0234FBF8 + ldr lr, [sp, #0xc] + add r5, r4, r5, lsl #3 + add r4, r5, ip, lsl #1 + ldrb ip, [r5, ip, lsl #1] + bic r5, lr, #0xff + ldrb r4, [r4, #1] + ldr lr, [sp, #0x20] + orr r5, r5, ip + str lr, [sp] + ldr ip, _0232B1F0 @ =0x0234FBEC + bic lr, r5, #0xff00 + lsl r4, r4, #0x18 + orr r4, lr, r4, lsr #16 + str ip, [sp, #4] + str r4, [sp, #0xc] + str r4, [sp, #8] + bl ov02_0232AFF4 + add sp, sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_0232B1EC: .4byte 0x0234FBF8 +_0232B1F0: .4byte 0x0234FBEC + arm_func_end ov02_0232B16C + + arm_func_start ov02_0232B1F4 +ov02_0232B1F4: @ 0x0232B1F4 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + ldr r5, [sp, #0x24] + ldr lr, [sp, #0x20] + cmp r5, #0x20 + ldr ip, [sp, #0x28] + bgt _0232B230 + mla r4, r5, lr, r3 + ldr lr, [sp, #0x2c] + mov r3, r5 + add r0, r0, r4, lsl #1 + stm sp, {ip, lr} + bl ov02_0232B2A4 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} +_0232B230: + add r6, lr, r2 + ldr r4, [sp, #0x2c] + cmp lr, r6 + add r5, r3, r1 + addge sp, sp, #8 + lsl r1, r4, #0x1c + popge {r4, r5, r6, r7, r8, pc} +_0232B24C: + cmp lr, #0x20 + movlt r2, lr + addge r2, lr, #0x20 + mov r7, r3 + cmp r3, r5 + add r8, r0, r2, lsl #6 + bge _0232B290 +_0232B268: + cmp r7, #0x20 + movlt r2, r7 + addge r2, r7, #0x3e0 + orr r4, ip, r1, lsr #16 + lsl r2, r2, #1 + add r7, r7, #1 + strh r4, [r8, r2] + cmp r7, r5 + add ip, ip, #1 + blt _0232B268 +_0232B290: + add lr, lr, #1 + cmp lr, r6 + blt _0232B24C + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov02_0232B1F4 + + arm_func_start ov02_0232B2A4 +ov02_0232B2A4: @ 0x0232B2A4 + push {r4, r5, r6, r7, r8, lr} + ldr r4, [sp, #0x1c] + ldr r8, [sp, #0x18] + mov r6, #0 + cmp r2, #0 + lsl ip, r4, #0x1c + pople {r4, r5, r6, r7, r8, pc} + mov r4, r6 +_0232B2C4: + mov r7, r0 + mov r5, r4 + cmp r1, #0 + ble _0232B2EC +_0232B2D4: + orr lr, r8, ip, lsr #16 + add r5, r5, #1 + cmp r5, r1 + add r8, r8, #1 + strh lr, [r7], #2 + blt _0232B2D4 +_0232B2EC: + add r6, r6, #1 + cmp r6, r2 + add r0, r0, r3, lsl #1 + blt _0232B2C4 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov02_0232B2A4 + + arm_func_start ov02_0232B300 +ov02_0232B300: @ 0x0232B300 + push {r3, r4, r5, lr} + lsr r3, r0, #3 + lsr r5, r1, #3 + mov r2, #0 + mla lr, r3, r5, r2 + and r4, r0, #2 + and r2, r0, #1 + add r2, r2, r4, lsr #1 + and r0, r0, #4 + lsl ip, r2, #1 + add ip, ip, r0, lsr #2 + mla ip, r5, ip, lr + and r4, r1, #2 + and lr, r1, #1 + add r4, lr, r4, lsr #1 + and lr, r1, #4 + lsl r1, r4, #1 + add r1, r1, lr, lsr #2 + mla ip, r3, r1, ip + add r1, r2, r0, lsr #2 + add r0, r4, lr, lsr #2 + mla r0, r1, r0, ip + pop {r3, r4, r5, pc} + arm_func_end ov02_0232B300 + + arm_func_start ov02_0232B35C +ov02_0232B35C: @ 0x0232B35C + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x38 + mov r7, r0 + mov r0, r1 + cmp r0, #8 + ldr r0, [sp, #0x60] + str r1, [sp, #0x10] + str r0, [sp, #0x60] + str r2, [sp, #0x14] + ldrlt r0, [sp, #0x10] + str r3, [sp, #0x34] + ldr r6, [sp, #0x64] + ldr r5, [sp, #0x68] + ldr r4, [sp, #0x6c] + movge r2, #3 + clzlt r0, r0 + rsblt r2, r0, #0x1f + ldr r0, [sp, #0x14] + cmp r0, #8 + ldrlt r0, [sp, #0x14] + movge r1, #3 + clzlt r0, r0 + rsblt r1, r0, #0x1f + ldr r0, _0232B648 @ =0x0234FBF8 + mvn r3, #0 + add r1, r0, r1, lsl #3 + add r0, r1, r2, lsl #1 + ldrb fp, [r1, r2, lsl #1] + ldrb r1, [r0, #1] + ldr r2, [sp, #0x14] + cmp r6, #0 + str r1, [sp, #0x30] + ldr r1, [sp, #0x10] + and r1, r1, r3, lsl fp + str r1, [sp, #0x2c] + ldr r1, [sp, #0x30] + and r1, r2, r3, lsl r1 + str r1, [sp, #0x28] + moveq r1, #1 + streq r1, [sp, #0x18] + movne r1, #2 + strne r1, [sp, #0x18] + mov r1, #0 + str r1, [sp, #0x24] + bl ov02_0232A458 + ldr r1, [sp, #0x10] + ldr r2, [sp, #0x14] + asr sb, r1, fp + ldr r1, [sp, #0x30] + asr r1, r2, r1 + str r1, [sp, #0x20] + ldr r1, [sp, #0x18] + lsl r2, r1, fp + ldr r1, [sp, #0x30] + lsl r8, r2, r1 + mov r1, #0 + str r1, [sp, #0x1c] + b _0232B4DC +_0232B444: + ldr r2, [sp, #0x1c] + ldr r1, [sp, #0x30] + mov sl, #0 + lsl r2, r2, r1 + ldr r1, [sp, #0x60] + add r1, r1, r2, lsl #3 + mov r2, #0x400 + and r3, r1, #0xff + rsb r2, r2, #0 + b _0232B4C8 +_0232B46C: + lsl ip, sl, fp + ldr r1, [sp, #0x34] + add sl, sl, #1 + add r1, r1, ip, lsl #3 + lsl lr, r1, #0x17 + ldr ip, [r7] + ldr r1, _0232B64C @ =0xFE00FF00 + and r1, ip, r1 + orr r1, r1, r3 + orr ip, r1, lr, lsr #7 + ldr r1, _0232B650 @ =0x3FFF3FFF + and r1, ip, r1 + orr r1, r1, r0 + str r1, [r7] + ldrh r1, [r7, #4] + and r1, r1, r2 + orr r1, r1, r5 + strh r1, [r7, #4] + ldr r1, [r7] + add r5, r5, r8, asr r4 + bic r1, r1, #0x2000 + orr r1, r1, r6, lsl #13 + str r1, [r7], #8 +_0232B4C8: + cmp sl, sb + blt _0232B46C + ldr r1, [sp, #0x1c] + add r1, r1, #1 + str r1, [sp, #0x1c] +_0232B4DC: + ldr r2, [sp, #0x1c] + ldr r1, [sp, #0x20] + cmp r2, r1 + blt _0232B444 + ldr r0, [sp, #0x24] + mla r0, sb, r1, r0 + str r0, [sp, #0x24] + ldr r1, [sp, #0x2c] + ldr r0, [sp, #0x10] + cmp r1, r0 + bhs _0232B564 + ldr r0, [sp, #0x60] + ldr r1, [sp, #0x10] + stm sp, {r0, r6} + ldr r0, [sp, #0x2c] + ldr r2, [sp, #0x2c] + sub r8, r1, r0 + ldr r1, [sp, #0x34] + str r5, [sp, #8] + add r3, r1, r2, lsl #3 + ldr r2, [sp, #0x28] + mov r0, r7 + mov r1, r8 + str r4, [sp, #0xc] + bl ov02_0232B35C + ldr r1, [sp, #0x18] + add r7, r7, r0, lsl #3 + mul r2, r1, r8 + ldr r1, [sp, #0x28] + mul r2, r1, r2 + ldr r1, [sp, #0x24] + add r5, r5, r2, lsr r4 + add r0, r1, r0 + str r0, [sp, #0x24] +_0232B564: + ldr r1, [sp, #0x28] + ldr r0, [sp, #0x14] + cmp r1, r0 + bhs _0232B5D0 + ldr r1, [sp, #0x60] + ldr r0, [sp, #0x28] + ldr r3, [sp, #0x34] + add r0, r1, r0, lsl #3 + stm sp, {r0, r6} + str r5, [sp, #8] + ldr r1, [sp, #0x14] + ldr r0, [sp, #0x28] + str r4, [sp, #0xc] + sub r8, r1, r0 + ldr r1, [sp, #0x2c] + mov r0, r7 + mov r2, r8 + bl ov02_0232B35C + ldr r2, [sp, #0x18] + ldr r1, [sp, #0x2c] + add r7, r7, r0, lsl #3 + mul r1, r2, r1 + mul r1, r8, r1 + add r5, r5, r1, lsr r4 + ldr r1, [sp, #0x24] + add r0, r1, r0 + str r0, [sp, #0x24] +_0232B5D0: + ldr r1, [sp, #0x2c] + ldr r0, [sp, #0x10] + cmp r1, r0 + ldrlo r1, [sp, #0x28] + ldrlo r0, [sp, #0x14] + cmplo r1, r0 + bhs _0232B63C + ldr r1, [sp, #0x60] + ldr r0, [sp, #0x28] + ldr r2, [sp, #0x10] + add r0, r1, r0, lsl #3 + stm sp, {r0, r6} + str r5, [sp, #8] + ldr r1, [sp, #0x2c] + ldr r3, [sp, #0x14] + sub r1, r2, r1 + ldr r2, [sp, #0x28] + ldr r5, [sp, #0x2c] + sub r2, r3, r2 + ldr r3, [sp, #0x34] + mov r0, r7 + add r3, r3, r5, lsl #3 + str r4, [sp, #0xc] + bl ov02_0232B35C + ldr r1, [sp, #0x24] + add r0, r1, r0 + str r0, [sp, #0x24] +_0232B63C: + ldr r0, [sp, #0x24] + add sp, sp, #0x38 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0232B648: .4byte 0x0234FBF8 +_0232B64C: .4byte 0xFE00FF00 +_0232B650: .4byte 0x3FFF3FFF + arm_func_end ov02_0232B35C + + arm_func_start ov02_0232B654 +ov02_0232B654: @ 0x0232B654 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x10 + mov fp, r0 + ldr r4, [fp, #8] + ldr r5, [fp, #4] + ldr r6, [sp, #0x38] + add r0, sp, #0xc + str r6, [sp, #0xc] + ldr r6, [r5, #4] + mov sl, r1 + mov sb, r2 + str r3, [sp, #8] + ldrsb r8, [sp, #0x41] + blx r6 + cmp r0, #0 + beq _0232B6DC + ldrsb r7, [sp, #0x40] +_0232B698: + cmp r0, #0xa + beq _0232B6DC + ldr r1, [sp, #8] + mov r2, sl + str r1, [sp] + str r0, [sp, #4] + ldr r0, [fp] + mov r1, r5 + mov r3, sb + bl ov02_0232B01C + add r0, r4, r0 + mla sl, r0, r7, sl + mla sb, r0, r8, sb + add r0, sp, #0xc + blx r6 + cmp r0, #0 + bne _0232B698 +_0232B6DC: + ldr r1, [sp, #0x3c] + cmp r1, #0 + addeq sp, sp, #0x10 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r0, #0xa + ldreq r1, [sp, #0xc] + ldr r0, [sp, #0x3c] + movne r1, #0 + str r1, [r0] + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov02_0232B654 + + arm_func_start ov02_0232B708 +ov02_0232B708: @ 0x0232B708 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x34 + mov sl, r0 + ldr r0, [sl, #4] + ldr r4, [sp, #0x60] + ldr r0, [r0] + ldrsb r8, [sp, #0x65] + ldrsb r0, [r0, #1] + ldr r5, [sl, #0xc] + ldrsb sb, [sp, #0x64] + add r5, r5, r0 + rsb r0, r8, #0 + mul r0, r5, r0 + str r0, [sp, #0x20] + mul r0, r5, sb + str r0, [sp, #0x1c] + ldr r0, [sp, #0x58] + str r1, [sp, #0xc] + str r2, [sp, #0x10] + mov fp, r3 + str r4, [sp, #0x30] + cmp r4, #0 + str r0, [sp, #0x58] + addeq sp, sp, #0x34 + popeq {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r2, [sp, #0x5c] + mov r6, #0 + and r0, r2, #0x800 + add r1, fp, #1 + str r0, [sp, #0x18] + add r0, r1, r1, lsr #31 + str r0, [sp, #0x2c] + and r0, r2, #0x400 + str r0, [sp, #0x14] + ldrb r0, [sp, #0x64] + mov r7, r6 + str r0, [sp, #0x24] + ldrb r0, [sp, #0x65] + str r0, [sp, #0x28] +_0232B7A4: + ldr r0, [sp, #0x18] + cmp r0, #0 + ldr r0, [sp, #0xc] + add r4, r0, r6 + ldr r0, [sp, #0x10] + add r5, r0, r7 + beq _0232B7E0 + ldr r2, [sp, #0x30] + mov r3, #0 + ldmib sl, {r0, r1} + bl ov02_0232A1AC + sub r0, fp, r0 + mla r4, r0, sb, r4 + mla r5, r0, r8, r5 + b _0232B818 +_0232B7E0: + ldr r0, [sp, #0x14] + cmp r0, #0 + beq _0232B818 + ldr r2, [sp, #0x30] + mov r3, #0 + ldmib sl, {r0, r1} + bl ov02_0232A1AC + add r0, r0, #1 + add r0, r0, r0, lsr #31 + asr r1, r0, #1 + ldr r0, [sp, #0x2c] + rsb r0, r1, r0, asr #1 + mla r4, r0, sb, r4 + mla r5, r0, r8, r5 +_0232B818: + ldr r3, [sp, #0x30] + mov r1, r4 + str r3, [sp] + add r3, sp, #0x30 + str r3, [sp, #4] + ldr r3, [sp, #0x24] + mov r2, r5 + strb r3, [sp, #8] + ldr r3, [sp, #0x28] + mov r0, sl + strb r3, [sp, #9] + ldr r3, [sp, #0x58] + bl ov02_0232B654 + ldr r0, [sp, #0x20] + add r6, r6, r0 + ldr r0, [sp, #0x1c] + add r7, r7, r0 + ldr r0, [sp, #0x30] + cmp r0, #0 + bne _0232B7A4 + add sp, sp, #0x34 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov02_0232B708 + + arm_func_start ov02_0232B870 +ov02_0232B870: @ 0x0232B870 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x28 + ldr r4, [sp, #0x44] + mov r8, r0 + str r4, [sp] + add r0, sp, #0x18 + mov r7, r1 + mov r6, r2 + mov r5, r3 + ldmib r8, {r1, r2, r3} + ldr r4, [sp, #0x40] + bl ov02_0232A2CC + ldr r2, [sp, #0x18] + ldr r0, [sp, #0x1c] + str r2, [sp, #0x10] + str r0, [sp, #0x14] + str r2, [sp, #0x20] + str r0, [sp, #0x24] + tst r4, #0x10 + beq _0232B8E4 + add r0, r2, #1 + rsb r0, r0, #0 + add r0, r0, r0, lsr #31 + ldrsb r1, [sp, #0x48] + asr r2, r0, #1 + ldrsb r0, [sp, #0x49] + mla r7, r2, r1, r7 + mla r6, r2, r0, r6 + b _0232B900 +_0232B8E4: + tst r4, #0x20 + beq _0232B900 + ldrsb r1, [sp, #0x48] + ldrsb r0, [sp, #0x49] + rsb r2, r2, #0 + mla r7, r2, r1, r7 + mla r6, r2, r0, r6 +_0232B900: + tst r4, #2 + beq _0232B934 + ldr r0, [sp, #0x24] + ldrsb r2, [sp, #0x49] + add r0, r0, #1 + rsb r0, r0, #0 + add r0, r0, r0, lsr #31 + ldrsb r1, [sp, #0x48] + asr r3, r0, #1 + rsb r0, r2, #0 + mla r7, r3, r0, r7 + mla r6, r3, r1, r6 + b _0232B958 +_0232B934: + tst r4, #4 + beq _0232B958 + ldrsb r1, [sp, #0x49] + ldr r2, [sp, #0x24] + ldrsb r0, [sp, #0x48] + rsb r2, r2, #0 + rsb r1, r1, #0 + mla r7, r2, r1, r7 + mla r6, r2, r0, r6 +_0232B958: + str r5, [sp] + ldr r1, [sp, #0x44] + str r4, [sp, #4] + ldrb r0, [sp, #0x48] + str r1, [sp, #8] + ldrb r4, [sp, #0x49] + strb r0, [sp, #0xc] + ldr r3, [sp, #0x20] + mov r0, r8 + mov r1, r7 + mov r2, r6 + strb r4, [sp, #0xd] + bl ov02_0232B708 + add sp, sp, #0x28 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov02_0232B870 + + arm_func_start ov02_0232B994 +ov02_0232B994: @ 0x0232B994 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x10 + ldr ip, [sp, #0x30] + mov r7, r0 + mov r6, r1 + mov r5, r2 + mov r4, r3 + tst ip, #0x100 + beq _0232B9E8 + ldr r0, [r7, #4] + ldr r1, [r7, #0xc] + ldr r2, [sp, #0x34] + bl ov02_0232A258 + ldrsb r2, [sp, #0x39] + ldr r3, [sp, #0x28] + ldrsb r1, [sp, #0x38] + sub r3, r3, r0 + rsb r0, r2, #0 + mla r6, r3, r0, r6 + mla r5, r3, r1, r5 + b _0232BA30 +_0232B9E8: + tst ip, #0x80 + beq _0232BA30 + ldr r0, [r7, #4] + ldr r1, [r7, #0xc] + ldr r2, [sp, #0x34] + bl ov02_0232A258 + ldr r1, [sp, #0x28] + add r0, r0, #1 + ldrsb r3, [sp, #0x39] + add ip, r1, #1 + add r1, r0, r0, lsr #31 + ldrsb r2, [sp, #0x38] + add r0, ip, ip, lsr #31 + asr r1, r1, #1 + rsb r1, r1, r0, asr #1 + rsb r0, r3, #0 + mla r6, r1, r0, r6 + mla r5, r1, r2, r5 +_0232BA30: + ldr r1, [sp, #0x2c] + ldr r0, [sp, #0x30] + str r1, [sp] + ldr r1, [sp, #0x34] + str r0, [sp, #4] + ldrb r0, [sp, #0x38] + str r1, [sp, #8] + ldrb ip, [sp, #0x39] + strb r0, [sp, #0xc] + mov r0, r7 + mov r1, r6 + mov r2, r5 + mov r3, r4 + strb ip, [sp, #0xd] + bl ov02_0232B708 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov02_0232B994 + + arm_func_start ov02_0232BA74 +ov02_0232BA74: @ 0x0232BA74 + push {r4, r5, r6, lr} + movs r6, r0 + mov r5, r1 + mov r4, #0 + beq _0232BAEC + cmp r6, #0 + beq _0232BAA4 + ldr r1, [r6] + ldr r0, _0232BBBC @ =0x4E465452 + cmp r1, r0 + moveq r0, #1 + beq _0232BAA8 +_0232BAA4: + mov r0, #0 +_0232BAA8: + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + cmp r0, #0 + beq _0232BAF0 + cmp r6, #0 + beq _0232BAD8 + ldrh r1, [r6, #6] + ldr r0, _0232BBC0 @ =0x00000101 + cmp r1, r0 + movhs r0, #1 + bhs _0232BADC +_0232BAD8: + mov r0, #0 +_0232BADC: + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + b _0232BAF0 +_0232BAEC: + mov r0, r4 +_0232BAF0: + cmp r0, #0 + bne _0232BB70 + cmp r6, #0 + beq _0232BB5C + beq _0232BB18 + ldr r1, [r6] + ldr r0, _0232BBBC @ =0x4E465452 + cmp r1, r0 + moveq r0, #1 + beq _0232BB1C +_0232BB18: + mov r0, #0 +_0232BB1C: + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + cmp r0, #0 + beq _0232BB60 + cmp r6, #0 + beq _0232BB48 + ldrh r0, [r6, #6] + cmp r0, #0x100 + movhs r0, #1 + bhs _0232BB4C +_0232BB48: + mov r0, #0 +_0232BB4C: + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + b _0232BB60 +_0232BB5C: + mov r0, #0 +_0232BB60: + cmp r0, #0 + bne _0232BB6C + bl FUN_0207BC20 +_0232BB6C: + mov r4, #1 +_0232BB70: + mov r0, r6 + bl ov02_0232BBC8 + ldr r1, _0232BBC4 @ =0x46494E46 + mov r0, r6 + bl ov02_02329FE4 + cmp r0, #0 + moveq r0, #0 + streq r0, [r5] + popeq {r4, r5, r6, pc} + add r0, r0, #8 + str r0, [r5] + cmp r4, #0 + beq _0232BBB4 + ldr r0, [r5] + mov r1, #0 + ldr r0, [r0, #8] + strb r1, [r0, #7] +_0232BBB4: + mov r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 +_0232BBBC: .4byte 0x4E465452 +_0232BBC0: .4byte 0x00000101 +_0232BBC4: .4byte 0x46494E46 + arm_func_end ov02_0232BA74 + + arm_func_start ov02_0232BBC8 +ov02_0232BBC8: @ 0x0232BBC8 + push {r4, r5, r6, lr} + ldrh r1, [r0, #0xc] + ldrh r3, [r0, #0xe] + mov r2, #0 + add r1, r0, r1 + cmp r3, #0 + pople {r4, r5, r6, pc} + ldr r3, _0232BC94 @ =0x46494E46 + ldr ip, _0232BC98 @ =0x43574448 + ldr r4, _0232BC9C @ =0x434D4150 + ldr lr, _0232BCA0 @ =0x43474C50 +_0232BBF4: + ldr r5, [r1] + cmp r5, r4 + bhi _0232BC0C + bhs _0232BC68 + cmp r5, lr + b _0232BC78 +_0232BC0C: + cmp r5, ip + bhi _0232BC1C + beq _0232BC54 + b _0232BC78 +_0232BC1C: + cmp r5, r3 + bne _0232BC78 + ldr r5, [r1, #0x10] + add r5, r5, r0 + str r5, [r1, #0x10] + ldr r5, [r1, #0x14] + cmp r5, #0 + addne r5, r5, r0 + strne r5, [r1, #0x14] + ldr r5, [r1, #0x18] + cmp r5, #0 + addne r5, r5, r0 + strne r5, [r1, #0x18] + b _0232BC78 +_0232BC54: + ldr r5, [r1, #0xc] + cmp r5, #0 + addne r5, r5, r0 + strne r5, [r1, #0xc] + b _0232BC78 +_0232BC68: + ldr r5, [r1, #0x10] + cmp r5, #0 + addne r5, r5, r0 + strne r5, [r1, #0x10] +_0232BC78: + ldrh r5, [r0, #0xe] + ldr r6, [r1, #4] + add r2, r2, #1 + cmp r2, r5 + add r1, r1, r6 + blt _0232BBF4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0232BC94: .4byte 0x46494E46 +_0232BC98: .4byte 0x43574448 +_0232BC9C: .4byte 0x434D4150 +_0232BCA0: .4byte 0x43474C50 + arm_func_end ov02_0232BBC8 + + arm_func_start ov02_0232BCA4 +ov02_0232BCA4: @ 0x0232BCA4 + push {r4, r5, r6, lr} + ldrsb r3, [r0, #4] + ldrb r4, [r0, #5] + mov r5, r1 + cmp r3, r5 + subge r1, r3, r5 + lsrge r2, r4, r1 + strbge r1, [r0, #4] + bge _0232BCF4 + ldr r2, [r0] + sub r6, r5, r3 + add r1, r2, #1 + str r1, [r0] + ldrb r3, [r2] + mov r1, r6 + mov r2, #8 + strb r3, [r0, #5] + strb r2, [r0, #4] + bl ov02_0232BCA4 + orr r2, r0, r4, lsl r6 +_0232BCF4: + rsb r0, r5, #8 + mov r1, #0xff + and r0, r2, r1, asr r0 + pop {r4, r5, r6, pc} + arm_func_end ov02_0232BCA4 +_0232BD04: + .byte 0x00, 0x10, 0x90, 0xE5, 0xB2, 0x20, 0xD1, 0xE0, 0x00, 0x10, 0x80, 0xE5 + .byte 0x02, 0x00, 0xA0, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov02_0232BD18 +ov02_0232BD18: @ 0x0232BD18 + push {r3, lr} + ldr r0, _0232BD8C @ =0x023544E0 + ldr r1, [r0, #0xc] + cmp r1, #0 + popne {r3, pc} + mov r1, #1 + str r1, [r0, #0xc] + bl FUN_0207CC10 + ldr r0, _0232BD90 @ =ov02_0232BDD0 + ldr r1, _0232BD8C @ =0x023544E0 + mov r2, #0 + str r0, [r1, #0x10] + ldr r0, _0232BD94 @ =0x0232BE08 + str r2, [r1, #0x14] + str r0, [r1, #0x1c] + ldr r0, _0232BD98 @ =0x023544F0 + str r2, [r1, #0x20] + bl FUN_0208260C + ldr r0, _0232BD9C @ =0x023544FC + bl FUN_02082624 + bl ov02_0232BE80 + bl ov02_0232C84C + bl ov02_0232C038 + ldr r0, _0232BD8C @ =0x023544E0 + mvn r1, #0 + strb r1, [r0] + mov r1, #1 + str r1, [r0, #4] + pop {r3, pc} + .align 2, 0 +_0232BD8C: .4byte 0x023544E0 +_0232BD90: .4byte ov02_0232BDD0 +_0232BD94: .4byte 0x0232BE08 +_0232BD98: .4byte 0x023544F0 +_0232BD9C: .4byte 0x023544FC + arm_func_end ov02_0232BD18 +_0232BDA0: + .byte 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE3, 0x04, 0x00, 0xA0, 0xE1, 0xE4, 0x43, 0xF5, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0xFB, 0xFF, 0xFF, 0x1A, 0xCB, 0x00, 0x00, 0xEB, 0xA8, 0x02, 0x00, 0xEB + .byte 0xF2, 0x06, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x51, 0x44, 0xF5, 0xEB, 0x10, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0232BDD0 +ov02_0232BDD0: @ 0x0232BDD0 + push {r4, lr} + bl ov02_0232C9DC + mov r0, #0 + mov r1, r0 + mov r2, r0 + mov r3, r0 + bl FUN_0207C8E0 + bl FUN_0207D13C + mov r4, r0 + mov r0, #1 + bl FUN_0207CF14 + mov r0, r4 + bl FUN_0207D0D0 + pop {r4, pc} + arm_func_end ov02_0232BDD0 +_0232BE08: + .byte 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0x3C, 0xCA, 0x32, 0x02 + + arm_func_start ov02_0232BE14 +ov02_0232BE14: @ 0x0232BE14 + push {r4, lr} + movs r4, r0 + popeq {r4, pc} + mov r1, #0 + bl FUN_0207C9E4 + ldr r0, _0232BE40 @ =0x023568E0 + mvn r1, r4 + ldr r2, [r0, #8] + and r1, r2, r1 + str r1, [r0, #8] + pop {r4, pc} + .align 2, 0 +_0232BE40: .4byte 0x023568E0 + arm_func_end ov02_0232BE14 + + arm_func_start ov02_0232BE44 +ov02_0232BE44: @ 0x0232BE44 + ldr r1, _0232BE5C @ =0x023568E0 + mvn r0, r0 + ldr r2, [r1] + and r0, r2, r0 + str r0, [r1] + bx lr + .align 2, 0 +_0232BE5C: .4byte 0x023568E0 + arm_func_end ov02_0232BE44 + + arm_func_start ov02_0232BE60 +ov02_0232BE60: @ 0x0232BE60 + ldr r1, _0232BE7C @ =0x023568E0 + mov r2, #1 + mvn r0, r2, lsl r0 + ldr r2, [r1, #4] + and r0, r2, r0 + str r0, [r1, #4] + bx lr + .align 2, 0 +_0232BE7C: .4byte 0x023568E0 + arm_func_end ov02_0232BE60 + + arm_func_start ov02_0232BE80 +ov02_0232BE80: @ 0x0232BE80 + ldr r0, _0232BE98 @ =0x023568E0 + mov r1, #0 + str r1, [r0, #8] + str r1, [r0] + str r1, [r0, #4] + bx lr + .align 2, 0 +_0232BE98: .4byte 0x023568E0 + arm_func_end ov02_0232BE80 + + arm_func_start ov02_0232BE9C +ov02_0232BE9C: @ 0x0232BE9C + mov r2, #0x24 + mul r2, r0, r2 + lsl r0, r1, #0x10 + ldr r1, _0232BEB8 @ =0x02356D5C + lsr r0, r0, #0x10 + str r0, [r1, r2] + bx lr + .align 2, 0 +_0232BEB8: .4byte 0x02356D5C + arm_func_end ov02_0232BE9C + + arm_func_start ov02_0232BEBC +ov02_0232BEBC: @ 0x0232BEBC + mov r2, #0x24 + mul r2, r0, r2 + ldr r0, _0232BED0 @ =0x02356D60 + str r1, [r0, r2] + bx lr + .align 2, 0 +_0232BED0: .4byte 0x02356D60 + arm_func_end ov02_0232BEBC + + arm_func_start ov02_0232BED4 +ov02_0232BED4: @ 0x0232BED4 + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + mov r5, r2 + mov r6, r0 + mov r0, r1 + mov r3, #0 + ldr r2, _0232BF60 @ =ov02_0232C5F4 + add r1, r5, #0x14 + str r3, [sp] + bl ov02_0232CFB4 + movs r4, r0 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, r5, r6, pc} + mov r2, #0 + str r2, [r4, #0xc] + str r6, [r4, #0x10] + mov r1, r5 + add r0, r4, #0x14 + str r2, [r4, #8] + bl ov02_0232CE70 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, r5, r6, pc} + ldr r2, _0232BF64 @ =0x02356D44 + mov r1, #0x24 + mla r2, r6, r1, r2 + str r0, [r4, #8] + mov r1, r4 + add r0, r2, #0xc + bl ov02_023295A4 + mov r0, #1 + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0232BF60: .4byte ov02_0232C5F4 +_0232BF64: .4byte 0x02356D44 + arm_func_end ov02_0232BED4 + + arm_func_start FUN_0232BF68 +FUN_0232BF68: @ 0x0232BF68 + ldr ip, _0232BF74 @ =FUN_0232C344 + ldr r0, [r0] + bx ip + .align 2, 0 +_0232BF74: .4byte FUN_0232C344 + arm_func_end FUN_0232BF68 + + arm_func_start ov02_0232BF78 +ov02_0232BF78: @ 0x0232BF78 + mov r1, #0 + str r1, [r0] + bx lr + arm_func_end ov02_0232BF78 + + arm_func_start ov02_0232BF84 +ov02_0232BF84: @ 0x0232BF84 + ldr r1, [r0] + cmp r1, #0 + bxeq lr + ldr r1, [r0] + mov r2, #0 + str r2, [r1] + str r2, [r0] + bx lr + arm_func_end ov02_0232BF84 + + arm_func_start FUN_0232BFA4 +FUN_0232BFA4: @ 0x0232BFA4 + ldr r2, [r0] + cmp r2, #0 + ldrne r0, [r0] + strbne r1, [r0, #0x41] + bx lr + arm_func_end FUN_0232BFA4 + + arm_func_start ov02_0232BFB8 +ov02_0232BFB8: @ 0x0232BFB8 + ldr r2, [r0] + cmp r2, #0 + ldrne r0, [r0] + strbne r1, [r0, #0x40] + bx lr + arm_func_end ov02_0232BFB8 + + arm_func_start ov02_0232BFCC +ov02_0232BFCC: @ 0x0232BFCC + push {r3, lr} + ldr r2, [r0] + cmp r2, #0 + popeq {r3, pc} + ldr r0, [r0] + ldrb r0, [r0, #0x3c] + bl FUN_0207C85C + pop {r3, pc} + arm_func_end ov02_0232BFCC + + arm_func_start ov02_0232BFEC +ov02_0232BFEC: @ 0x0232BFEC + push {r3, lr} + ldr r3, [r0] + cmp r3, #0 + popeq {r3, pc} + ldr r0, [r0] + ldrb r0, [r0, #0x3c] + bl FUN_0207C874 + pop {r3, pc} + arm_func_end ov02_0232BFEC + + arm_func_start ov02_0232C00C +ov02_0232C00C: @ 0x0232C00C + ldr r3, [r0] + cmp r3, #0 + bxeq lr + ldr r3, [r0] + mov ip, #2 + strh ip, [r3, #0x34] + ldr r3, [r0] + strh r1, [r3, #0x38] + ldr r0, [r0] + strh r2, [r0, #0x3a] + bx lr + arm_func_end ov02_0232C00C + + arm_func_start ov02_0232C038 +ov02_0232C038: @ 0x0232C038 + push {r4, r5, r6, r7, r8, sb, sl, lr} + ldr r0, _0232C0DC @ =0x023568F8 + mov r1, #0x14 + bl ov02_02329560 + ldr r0, _0232C0E0 @ =0x023568EC + mov r1, #0x14 + bl ov02_02329560 + mov r6, #0 + ldr r7, _0232C0E4 @ =0x02356904 + ldr r4, _0232C0E0 @ =0x023568EC + mov r5, r6 +_0232C064: + strb r5, [r7, #0x2c] + mov r0, r4 + mov r1, r7 + strb r6, [r7, #0x3c] + bl ov02_023295A4 + add r6, r6, #1 + cmp r6, #0x10 + add r7, r7, #0x44 + blt _0232C064 + mov sl, #0 + ldr sb, _0232C0E8 @ =0x02356D44 + mov r8, #0xc + mov r7, sl + mov r6, #0x7f + mov r5, #1 + mov r4, sl +_0232C0A4: + mov r0, sb + mov r1, r8 + bl ov02_02329560 + mov r1, r7 + add r0, sb, #0xc + bl ov02_02329560 + strb r6, [sb, #0x20] + str r5, [sb, #0x18] + add sl, sl, #1 + str r4, [sb, #0x1c] + cmp sl, #0x20 + add sb, sb, #0x24 + blt _0232C0A4 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0232C0DC: .4byte 0x023568F8 +_0232C0E0: .4byte 0x023568EC +_0232C0E4: .4byte 0x02356904 +_0232C0E8: .4byte 0x02356D44 + arm_func_end ov02_0232C038 + + arm_func_start ov02_0232C0EC +ov02_0232C0EC: @ 0x0232C0EC + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + bl FUN_0207D444 + mov fp, r0 + ldr r0, _0232C244 @ =0x023568F8 + mov r1, #0 + bl ov02_0232970C + movs r6, r0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r4, #0x8000 + ldr r5, _0232C248 @ =0x020AE224 + rsb r4, r4, #0 +_0232C118: + ldr r0, _0232C244 @ =0x023568F8 + mov r1, r6 + bl ov02_0232970C + ldrb r1, [r6, #0x2d] + mov r7, r0 + cmp r1, #0 + bne _0232C148 + ldr r0, [r6, #0x30] + bl FUN_0207D168 + cmp r0, #0 + movne r0, #1 + strbne r0, [r6, #0x2d] +_0232C148: + ldrb r0, [r6, #0x2d] + cmp r0, #0 + beq _0232C170 + ldrb r1, [r6, #0x3c] + mov r0, #1 + tst fp, r0, lsl r1 + bne _0232C170 + mov r0, r6 + bl ov02_0232C570 + b _0232C234 +_0232C170: + add r0, r6, #0x1c + bl ov02_0232DD3C + ldr r0, [r6, #4] + ldrb r2, [r6, #0x41] + ldrb r0, [r0, #0x20] + ldrb r1, [r6, #0x40] + lsl r2, r2, #1 + lsl r0, r0, #1 + lsl r1, r1, #1 + ldrsh sl, [r5, r0] + add r0, r6, #0x1c + ldrsh r8, [r5, r2] + ldrsh sb, [r5, r1] + bl ov02_0232DD08 + asr r0, r0, #8 + lsl r0, r0, #1 + add r1, sb, r8 + ldrsh r0, [r5, r0] + add r1, sl, r1 + add r8, r0, r1 + cmp r8, r4 + movlt r8, r4 + blt _0232C1D8 + ldr r0, _0232C24C @ =0x00007FFF + cmp r8, r0 + movgt r8, r0 +_0232C1D8: + ldrsh r0, [r6, #0x3e] + cmp r8, r0 + beq _0232C1F4 + ldrb r0, [r6, #0x3c] + mov r1, r8 + bl FUN_0207C844 + strh r8, [r6, #0x3e] +_0232C1F4: + ldrb r0, [r6, #0x2c] + cmp r0, #2 + bne _0232C218 + add r0, r6, #0x1c + bl ov02_0232DD54 + cmp r0, #0 + beq _0232C218 + mov r0, r6 + bl ov02_0232C4D0 +_0232C218: + ldrb r0, [r6, #0x2f] + cmp r0, #0 + beq _0232C234 + ldrb r0, [r6, #0x3c] + bl FUN_0207C824 + mov r0, #0 + strb r0, [r6, #0x2f] +_0232C234: + mov r6, r7 + cmp r7, #0 + bne _0232C118 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 + arm_func_end ov02_0232C0EC +_0232C244: .4byte 0x023568F8 +_0232C248: .4byte 0x020AE224 +_0232C24C: .4byte 0x00007FFF + + arm_func_start ov02_0232C250 +ov02_0232C250: @ 0x0232C250 + push {r3, r4, r5, r6, r7, lr} + ldr ip, _0232C2E4 @ =0x02356D44 + mov r3, #0x24 + mov r4, r0 + ldr r5, [r4] + mla r6, r1, r3, ip + mov r7, r2 + cmp r5, #0 + beq _0232C278 + bl ov02_0232BF84 +_0232C278: + ldrh r1, [r6, #8] + ldr r0, [r6, #0x18] + cmp r1, r0 + blo _0232C2B4 + mov r0, r6 + mov r1, #0 + bl ov02_0232970C + cmp r0, #0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldrb r1, [r0, #0x3d] + cmp r7, r1 + movlt r0, #0 + poplt {r3, r4, r5, r6, r7, pc} + bl ov02_0232C4D0 +_0232C2B4: + mov r0, r7 + bl ov02_0232C508 + movs r5, r0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + mov r0, r6 + mov r1, r5 + bl ov02_0232C42C + str r4, [r5] + mov r0, r5 + str r5, [r4] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0232C2E4: .4byte 0x02356D44 + arm_func_end ov02_0232C250 + + arm_func_start ov02_0232C570 +ov02_0232C570: @ 0x0232C2E8 + ldr ip, _0232C2F0 @ =ov02_0232C570 + bx ip + .align 2, 0 +_0232C2F0: .4byte ov02_0232C570 + arm_func_end ov02_0232C570 + + arm_func_start ov02_0232C2F4 +ov02_0232C2F4: @ 0x0232C2F4 + push {r3, r4, r5, lr} + mov r5, r0 + ldrb r0, [r5, #0x3c] + ldr r4, [r5, #4] + bl FUN_0207C7FC + ldr r2, [r4, #0x1c] + cmp r2, #0 + beq _0232C320 + ldrb r0, [r5, #0x3c] + ldr r1, _0232C340 @ =0x0000FFFF + bl FUN_0207C890 +_0232C320: + mov r0, r5 + bl ov02_0232C3E4 + bl FUN_0207D13C + str r0, [r5, #0x30] + mov r0, #1 + strb r0, [r5, #0x2f] + strb r0, [r5, #0x2c] + pop {r3, r4, r5, pc} + .align 2, 0 +_0232C340: .4byte 0x0000FFFF + arm_func_end ov02_0232C2F4 + + arm_func_start FUN_0232C344 +FUN_0232C344: @ 0x0232C344 + push {r4, lr} + movs r4, r0 + mov r2, r1 + ldrbne r1, [r4, #0x2c] + cmpne r1, #0 + popeq {r4, pc} + cmp r2, #0 + bne _0232C36C + bl ov02_0232C4D0 + pop {r4, pc} +_0232C36C: + add r0, r4, #0x1c + mov r1, #0 + bl ov02_0232DCE0 + mov r0, r4 + mov r1, #0 + bl ov02_0232C644 + mov r0, #2 + strb r0, [r4, #0x2c] + pop {r4, pc} + arm_func_end FUN_0232C344 + + arm_func_start ov02_0232C390 +ov02_0232C390: @ 0x0232C390 + push {r4, r5, r6, lr} + ldr r3, _0232C3E0 @ =0x02356D44 + mov r2, #0x24 + mla r5, r0, r2, r3 + mov r6, r1 + add r0, r5, #0xc + mov r1, #0 + bl ov02_0232970C + movs r4, r0 + moveq r0, #0 + popeq {r4, r5, r6, pc} + mov r1, r4 + add r0, r5, #0xc + bl ov02_023296AC + str r6, [r4, #0xc] + str r4, [r6, #8] + ldr r0, [r4, #8] + bl ov02_0232CEF8 + ldr r0, [r4, #8] + pop {r4, r5, r6, pc} + .align 2, 0 +_0232C3E0: .4byte 0x02356D44 + arm_func_end ov02_0232C390 + + arm_func_start ov02_0232C3E4 +ov02_0232C3E4: @ 0x0232C3E4 + push {r4, lr} + mov r4, r0 + mov r0, #0 + strb r0, [r4, #0x2e] + strb r0, [r4, #0x2d] + strb r0, [r4, #0x2f] + strh r0, [r4, #0x34] + strh r0, [r4, #0x3e] + mov r1, #0x7f + strb r1, [r4, #0x40] + add r0, r4, #0x1c + strb r1, [r4, #0x41] + bl ov02_0232DCC8 + add r0, r4, #0x1c + mov r1, #0x7f00 + mov r2, #1 + bl ov02_0232DCE0 + pop {r4, pc} + arm_func_end ov02_0232C3E4 + + arm_func_start ov02_0232C42C +ov02_0232C42C: @ 0x0232C42C + push {r3, r4, r5, lr} + mov r4, r1 + mov r1, #0 + mov r5, r0 + bl ov02_0232970C + movs r1, r0 + beq _0232C468 +_0232C448: + ldrb r2, [r4, #0x3d] + ldrb r0, [r1, #0x3d] + cmp r2, r0 + blo _0232C468 + mov r0, r5 + bl ov02_0232970C + movs r1, r0 + bne _0232C448 +_0232C468: + mov r0, r5 + mov r2, r4 + bl ov02_02329648 + str r5, [r4, #4] + pop {r3, r4, r5, pc} + arm_func_end ov02_0232C42C + + arm_func_start ov02_0232C47C +ov02_0232C47C: @ 0x0232C47C + push {r3, r4, r5, lr} + mov r5, r0 + ldr r0, _0232C4CC @ =0x023568F8 + mov r1, #0 + bl ov02_0232970C + movs r1, r0 + beq _0232C4BC + ldr r4, _0232C4CC @ =0x023568F8 +_0232C49C: + ldrb r2, [r5, #0x3d] + ldrb r0, [r1, #0x3d] + cmp r2, r0 + blo _0232C4BC + mov r0, r4 + bl ov02_0232970C + movs r1, r0 + bne _0232C49C +_0232C4BC: + ldr r0, _0232C4CC @ =0x023568F8 + mov r2, r5 + bl ov02_02329648 + pop {r3, r4, r5, pc} + .align 2, 0 +_0232C4CC: .4byte 0x023568F8 + arm_func_end ov02_0232C47C + + arm_func_start ov02_0232C4D0 +ov02_0232C4D0: @ 0x0232C4D0 + push {r4, lr} + mov r4, r0 + arm_func_end ov02_0232C4D0 + + arm_func_start ov02_0232C4D8 +ov02_0232C4D8: @ 0x0232C4D8 + ldrb r0, [r4, #0x2c] + cmp r0, #2 + bne _0232C4F0 + ldrb r0, [r4, #0x3c] + ldr r1, _0232C504 @ =0xFFFFFD2D + bl FUN_0207C844 +_0232C4F0: + ldrb r0, [r4, #0x3c] + bl FUN_0207C7DC + mov r0, r4 + bl ov02_0232C570 + pop {r4, pc} + .align 2, 0 +_0232C504: .4byte 0xFFFFFD2D + arm_func_end ov02_0232C4D8 + + arm_func_start ov02_0232C508 +ov02_0232C508: @ 0x0232C508 + push {r3, r4, r5, lr} + mov r5, r0 + ldr r0, _0232C568 @ =0x023568EC + mov r1, #0 + bl ov02_0232970C + movs r4, r0 + bne _0232C548 + ldr r0, _0232C56C @ =0x023568F8 + mov r1, #0 + bl ov02_0232970C + mov r4, r0 + ldrb r1, [r4, #0x3d] + cmp r5, r1 + movlt r0, #0 + poplt {r3, r4, r5, pc} + bl ov02_0232C4D0 +_0232C548: + ldr r0, _0232C568 @ =0x023568EC + mov r1, r4 + bl ov02_023296AC + mov r0, r4 + strb r5, [r4, #0x3d] + bl ov02_0232C47C + mov r0, r4 + pop {r3, r4, r5, pc} + .align 2, 0 +_0232C568: .4byte 0x023568EC +_0232C56C: .4byte 0x023568F8 + arm_func_end ov02_0232C508 + + arm_func_start ov02_0232C570 +ov02_0232C570: @ 0x0232C570 + push {r3, r4, r5, lr} + mov r4, r0 + ldr r1, [r4] + cmp r1, #0 + movne r0, #0 + strne r0, [r1] + strne r0, [r4] + ldr r5, [r4, #4] + mov r1, r4 + mov r0, r5 + bl ov02_023296AC + mov r0, #0 + str r0, [r4, #4] + ldr r1, [r4, #8] + cmp r1, #0 + beq _0232C5C8 + add r0, r5, #0xc + bl ov02_023295A4 + ldr r0, [r4, #8] + mov r1, #0 + str r1, [r0, #0xc] + str r1, [r4, #8] +_0232C5C8: + ldr r0, _0232C5EC @ =0x023568F8 + mov r1, r4 + bl ov02_023296AC + ldr r0, _0232C5F0 @ =0x023568EC + mov r1, r4 + bl ov02_023295A4 + mov r0, #0 + strb r0, [r4, #0x2c] + pop {r3, r4, r5, pc} + .align 2, 0 +_0232C5EC: .4byte 0x023568F8 +_0232C5F0: .4byte 0x023568EC + arm_func_end ov02_0232C570 + + arm_func_start ov02_0232C5F4 +ov02_0232C5F4: @ 0x0232C5F4 + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #8] + cmp r0, #0 + popeq {r4, pc} + bl ov02_0232CEE0 + ldr r1, [r4, #0xc] + cmp r1, #0 + movne r0, #0 + strne r0, [r1, #8] + popne {r4, pc} + ldr r1, [r4, #0x10] + ldr r2, _0232C640 @ =0x02356D44 + mov r0, #0x24 + mla r0, r1, r0, r2 + mov r1, r4 + add r0, r0, #0xc + bl ov02_023296AC + pop {r4, pc} + .align 2, 0 +_0232C640: .4byte 0x02356D44 + arm_func_end ov02_0232C5F4 + + arm_func_start ov02_0232C644 +ov02_0232C644: @ 0x0232C644 + push {r4, r5, r6, lr} + mov r6, r0 + ldr r4, [r6, #4] + mov r5, r1 + cmp r4, #0 + beq _0232C670 + mov r0, r4 + mov r1, r6 + bl ov02_023296AC + mov r0, #0 + str r0, [r6, #4] +_0232C670: + ldr r0, _0232C6A0 @ =0x023568F8 + mov r1, r6 + bl ov02_023296AC + strb r5, [r6, #0x3d] + cmp r4, #0 + beq _0232C694 + mov r0, r4 + mov r1, r6 + bl ov02_0232C42C +_0232C694: + mov r0, r6 + bl ov02_0232C47C + pop {r4, r5, r6, pc} + .align 2, 0 +_0232C6A0: .4byte 0x023568F8 + arm_func_end ov02_0232C644 + + arm_func_start ov02_0232C6A4 +ov02_0232C6A4: @ 0x0232C6A4 + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #0x44] + cmp r0, #0 + popeq {r4, pc} + bl ov02_0232BE14 + mov r0, #0 + str r0, [r4, #0x44] + str r0, [r4, #0x48] + pop {r4, pc} + arm_func_end ov02_0232C6A4 + + arm_func_start ov02_0232C6CC +ov02_0232C6CC: @ 0x0232C6CC + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #0x40] + mov r2, #1 + mov r1, #0 + lsl r2, r2, r0 + ldr r0, [r4, #0x44] + mov r3, r1 + bl FUN_0207C8B8 + ldr r0, [r4, #0x24] + lsl r0, r0, #0x1e + asrs r0, r0, #0x1f + popne {r4, pc} + add r0, r4, #8 + bl FUN_0208260C + add r0, r4, #0x14 + bl FUN_02082624 + ldr r0, [r4, #0x24] + orr r0, r0, #2 + str r0, [r4, #0x24] + pop {r4, pc} + arm_func_end ov02_0232C6CC + + arm_func_start ov02_0232C720 +ov02_0232C720: @ 0x0232C720 + push {r3, lr} + ldr r1, [r0, #0x24] + lsl r1, r1, #0x1f + asrs r1, r1, #0x1f + popeq {r3, pc} + bl ov02_0232C7A8 + pop {r3, pc} + arm_func_end ov02_0232C720 + + arm_func_start ov02_0232C73C +ov02_0232C73C: @ 0x0232C73C + push {r4, r5, r6, r7, r8, lr} + mov r7, r0 + str r1, [r7, #0x3c] + ldr r0, [r7, #0x48] + mov r6, #0 + cmp r0, #0 + pople {r4, r5, r6, r7, r8, pc} + ldr r4, _0232C7A4 @ =0x02357214 + mov r8, #1 +_0232C760: + add r0, r7, r6 + ldrb r5, [r0, #0x4c] + ldr r1, [r7, #0x3c] + add r0, r4, r5, lsl #3 + ldr r0, [r0, #4] + add r0, r1, r0 + bl FUN_0207D540 + mov r2, r0 + lsl r0, r8, r5 + and r1, r2, #0xff + asr r2, r2, #8 + bl FUN_0207CA24 + ldr r0, [r7, #0x48] + add r6, r6, #1 + cmp r6, r0 + blt _0232C760 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0232C7A4: .4byte 0x02357214 + arm_func_end ov02_0232C73C + + arm_func_start ov02_0232C7A8 +ov02_0232C7A8: @ 0x0232C7A8 + push {r3, r4, r5, lr} + mov r4, r0 + ldr r0, [r4, #0x24] + lsl r0, r0, #0x1e + asrs r0, r0, #0x1f + beq _0232C810 + ldr r0, [r4, #0x40] + mov r2, #1 + mov r1, #0 + lsl r2, r2, r0 + ldr r0, [r4, #0x44] + mov r3, r1 + bl FUN_0207C8E0 + add r0, r4, #8 + bl FUN_0208263C + add r0, r4, #0x14 + bl FUN_02082654 + ldr r0, [r4, #0x24] + bic r0, r0, #2 + str r0, [r4, #0x24] + bl FUN_0207D13C + mov r5, r0 + mov r0, #1 + bl FUN_0207CF14 + mov r0, r5 + bl FUN_0207D0D0 +_0232C810: + mov r0, r4 + bl ov02_0232C81C + pop {r3, r4, r5, pc} + arm_func_end ov02_0232C7A8 + + arm_func_start ov02_0232C81C +ov02_0232C81C: @ 0x0232C81C + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #0x40] + bl ov02_0232BE60 + ldr r0, _0232C848 @ =0x023571C8 + mov r1, r4 + bl ov02_023296AC + ldr r0, [r4, #0x24] + bic r0, r0, #1 + str r0, [r4, #0x24] + pop {r4, pc} + .align 2, 0 +_0232C848: .4byte 0x023571C8 + arm_func_end ov02_0232C81C + + arm_func_start ov02_0232C84C +ov02_0232C84C: @ 0x0232C84C + ldr r0, _0232C860 @ =0x02357294 + mov r1, #0 + str r1, [r0] + str r1, [r0, #0x48] + bx lr + .align 2, 0 +_0232C860: .4byte 0x02357294 + arm_func_end ov02_0232C84C + + arm_func_start ov02_0232C864 +ov02_0232C864: @ 0x0232C864 + push {r3, r4, r5, lr} + ldr r0, _0232C8E4 @ =0x02357294 + ldr r4, _0232C8E8 @ =0x023572DC + ldr r0, [r0, #0x48] + cmp r0, #0 + popeq {r3, r4, r5, pc} + ldr r0, [r4, #4] + cmp r0, #0 + popne {r3, r4, r5, pc} + add r0, r4, #0x3c + bl ov02_0232DD3C + ldr r0, [r4, #0x4c] + cmp r0, #0 + beq _0232C8B4 + add r0, r4, #0x3c + bl ov02_0232DD54 + cmp r0, #0 + beq _0232C8B4 + bl ov02_0232C8EC + pop {r3, r4, r5, pc} +_0232C8B4: + add r0, r4, #0x3c + bl ov02_0232DD08 + ldr r1, [r4, #0x50] + asr r5, r0, #8 + cmp r5, r1 + popeq {r3, r4, r5, pc} + ldr r0, [r4, #0x24] + mov r1, r5 + mov r2, #0 + bl FUN_0207CA24 + str r5, [r4, #0x50] + pop {r3, r4, r5, pc} + .align 2, 0 +_0232C8E4: .4byte 0x02357294 +_0232C8E8: .4byte 0x023572DC + arm_func_end ov02_0232C864 + + arm_func_start ov02_0232C8EC +ov02_0232C8EC: @ 0x0232C8EC + push {r3, r4, r5, r6, r7, lr} + ldr r0, _0232C9D0 @ =0x02357294 + ldr r4, _0232C9D4 @ =0x023572DC + ldr r0, [r0, #0x48] + cmp r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldr r1, [r4, #0x2c] + mov r3, #0 + cmp r1, #0 + movge r7, #1 + movlt r7, #0 + cmp r7, #0 + movne r0, #1 + lslne r2, r0, r1 + ldr r0, [r4, #0x24] + ldr r1, [r4, #0x28] + moveq r2, #0 + bl FUN_0207C8E0 + cmp r7, #0 + beq _0232C974 + bl FUN_0207D13C + mov r5, r0 + mov r0, #1 + bl FUN_0207CF14 + mov r0, r5 + bl FUN_0207D0D0 + ldr r6, _0232C9D8 @ =0x0235729C + mov r5, #0 +_0232C95C: + mov r0, r6 + mov r1, r5 + mov r2, r5 + bl FUN_02079E74 + cmp r0, #0 + bne _0232C95C +_0232C974: + ldr r0, [r4, #0x28] + cmp r0, #0 + beq _0232C984 + bl ov02_0232BE44 +_0232C984: + ldr r0, [r4, #0x20] + cmp r0, #0 + beq _0232C994 + bl ov02_0232BE14 +_0232C994: + cmp r7, #0 + beq _0232C9A4 + ldr r0, [r4, #0x2c] + bl ov02_0232BE60 +_0232C9A4: + ldr r0, [r4, #4] + cmp r0, #1 + bne _0232C9C4 + mov r0, #0 + mov r1, r0 + mov r2, r0 + mov r3, r0 + bl FUN_0207CB54 +_0232C9C4: + mov r0, #0 + str r0, [r4] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0232C9D0: .4byte 0x02357294 +_0232C9D4: .4byte 0x023572DC +_0232C9D8: .4byte 0x0235729C + arm_func_end ov02_0232C8EC + + arm_func_start ov02_0232C9DC +ov02_0232C9DC: @ 0x0232C9DC + push {r4, lr} + ldr r0, _0232CA34 @ =0x02357294 + ldr r3, _0232CA38 @ =0x023572DC + ldr r0, [r0, #0x48] + cmp r0, #0 + popeq {r4, pc} + ldr r1, [r3, #0x2c] + cmp r1, #0 + movge r0, #1 + lslge r2, r0, r1 + ldr r0, [r3, #0x24] + ldr r1, [r3, #0x28] + movlt r2, #0 + mov r3, #0 + bl FUN_0207C8E0 + bl FUN_0207D13C + mov r4, r0 + mov r0, #1 + bl FUN_0207CF14 + mov r0, r4 + bl FUN_0207D0D0 + pop {r4, pc} + .align 2, 0 +_0232CA34: .4byte 0x02357294 +_0232CA38: .4byte 0x023572DC + arm_func_end ov02_0232C9DC +_0232CA3C: + .byte 0x10, 0x40, 0x2D, 0xE9 + .byte 0x70, 0x00, 0x9F, 0xE5, 0x70, 0x40, 0x9F, 0xE5, 0x48, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x10, 0x80, 0xBD, 0x08, 0x0C, 0x10, 0x94, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0x14, 0x20, 0x94, 0xE5 + .byte 0x1C, 0x00, 0x84, 0xE5, 0x2A, 0x3E, 0xF5, 0xEB, 0x10, 0x10, 0x94, 0xE5, 0x14, 0x20, 0x94, 0xE5 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x26, 0x3E, 0xF5, 0xEB, 0x0C, 0x00, 0x94, 0xE5, 0x14, 0x10, 0x94, 0xE5 + .byte 0x15, 0x36, 0xF5, 0xEB, 0x10, 0x00, 0x94, 0xE5, 0x14, 0x10, 0x94, 0xE5, 0x12, 0x36, 0xF5, 0xEB + .byte 0x2C, 0x10, 0x94, 0xE5, 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x00, 0x51, 0xE3, 0x01, 0x00, 0xA0, 0xA3 + .byte 0x10, 0x21, 0xA0, 0xA1, 0x24, 0x00, 0x94, 0xE5, 0x28, 0x10, 0x94, 0xE5, 0x00, 0x20, 0xA0, 0xB3 + .byte 0x80, 0x3F, 0xF5, 0xEB, 0x10, 0x80, 0xBD, 0xE8, 0x94, 0x72, 0x35, 0x02, 0xDC, 0x72, 0x35, 0x02 + + arm_func_start ov02_0232CAC0 +ov02_0232CAC0: @ 0x0232CAC0 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + mov r0, r4 + mov r1, r5 + mov r2, #0x30 + bl FUN_0207C330 + ldr r0, [r5, #0x18] + mov r3, #0 + cmp r0, #0 + moveq r0, #0 + addne r0, r4, r0 + str r0, [r5, #0x8c] + ldr r0, [r5, #0x20] + cmp r0, #0 + moveq r0, #0 + addne r0, r4, r0 + str r0, [r5, #0x84] + ldr r0, [r5, #0x10] + cmp r0, #0 + moveq r0, #0 + addne r0, r4, r0 + str r0, [r5, #0x88] + str r3, [r5, #0x90] + ldr r2, [r5, #0x84] + ldr r0, [r2, #8] + cmp r0, #0 + bls _0232CB6C + mov ip, r3 + mov r1, r3 +_0232CB38: + add r2, r2, #0xc + ldr r0, [r2, ip] + add r2, r2, ip + cmp r0, #0 + moveq r0, r1 + addne r0, r4, r0 + str r0, [r2, #8] + ldr r2, [r5, #0x84] + add r3, r3, #1 + ldr r0, [r2, #8] + add ip, ip, #0x10 + cmp r3, r0 + blo _0232CB38 +_0232CB6C: + mov r1, #0 + ldr r0, _0232CB80 @ =0x02357890 + str r1, [r5, #0x30] + str r5, [r0] + pop {r3, r4, r5, pc} + .align 2, 0 +_0232CB80: .4byte 0x02357890 + arm_func_end ov02_0232CAC0 + + arm_func_start ov02_0232CB84 +ov02_0232CB84: @ 0x0232CB84 + ldr r1, _0232CB98 @ =0x02357890 + ldr r2, [r1] + str r0, [r1] + mov r0, r2 + bx lr + .align 2, 0 +_0232CB98: .4byte 0x02357890 + arm_func_end ov02_0232CB84 + + arm_func_start ov02_0232CB9C +ov02_0232CB9C: @ 0x0232CB9C + ldr r0, _0232CBA8 @ =0x02357890 + ldr r0, [r0] + bx lr + .align 2, 0 +_0232CBA8: .4byte 0x02357890 + arm_func_end ov02_0232CB9C + + arm_func_start ov02_0232CBAC +ov02_0232CBAC: @ 0x0232CBAC + ldr r1, _0232CC0C @ =0x02357890 + ldr r3, [r1] + ldr r2, [r3, #0x8c] + ldr r1, [r2, #0xc] + cmp r1, #0 + moveq r2, #0 + addne r2, r2, r1 + cmp r2, #0 + moveq r0, #0 + bxeq lr + cmp r0, #0 + movlt r0, #0 + bxlt lr + ldr r1, [r2] + cmp r0, r1 + movhs r0, #0 + bxhs lr + add r0, r2, r0, lsl #2 + ldr r1, [r0, #4] + ldr r0, [r3, #0x8c] + cmp r1, #0 + moveq r0, #0 + addne r0, r0, r1 + bx lr + .align 2, 0 +_0232CC0C: .4byte 0x02357890 + arm_func_end ov02_0232CBAC + + arm_func_start ov02_0232CC10 +ov02_0232CC10: @ 0x0232CC10 + ldr r1, _0232CC70 @ =0x02357890 + ldr r3, [r1] + ldr r2, [r3, #0x8c] + ldr r1, [r2, #0x10] + cmp r1, #0 + moveq r2, #0 + addne r2, r2, r1 + cmp r2, #0 + moveq r0, #0 + bxeq lr + cmp r0, #0 + movlt r0, #0 + bxlt lr + ldr r1, [r2] + cmp r0, r1 + movhs r0, #0 + bxhs lr + add r0, r2, r0, lsl #2 + ldr r1, [r0, #4] + ldr r0, [r3, #0x8c] + cmp r1, #0 + moveq r0, #0 + addne r0, r0, r1 + bx lr + .align 2, 0 +_0232CC70: .4byte 0x02357890 + arm_func_end ov02_0232CC10 + + arm_func_start ov02_0232CC74 +ov02_0232CC74: @ 0x0232CC74 + ldr r1, _0232CCD4 @ =0x02357890 + ldr r3, [r1] + ldr r2, [r3, #0x8c] + ldr r1, [r2, #0x14] + cmp r1, #0 + moveq r2, #0 + addne r2, r2, r1 + cmp r2, #0 + moveq r0, #0 + bxeq lr + cmp r0, #0 + movlt r0, #0 + bxlt lr + ldr r1, [r2] + cmp r0, r1 + movhs r0, #0 + bxhs lr + add r0, r2, r0, lsl #2 + ldr r1, [r0, #4] + ldr r0, [r3, #0x8c] + cmp r1, #0 + moveq r0, #0 + addne r0, r0, r1 + bx lr + .align 2, 0 +_0232CCD4: .4byte 0x02357890 + arm_func_end ov02_0232CC74 + + arm_func_start ov02_0232CCD8 +ov02_0232CCD8: @ 0x0232CCD8 + ldr r1, _0232CD38 @ =0x02357890 + ldr r3, [r1] + ldr r2, [r3, #0x8c] + ldr r1, [r2, #0x18] + cmp r1, #0 + moveq r2, #0 + addne r2, r2, r1 + cmp r2, #0 + moveq r0, #0 + bxeq lr + cmp r0, #0 + movlt r0, #0 + bxlt lr + ldr r1, [r2] + cmp r0, r1 + movhs r0, #0 + bxhs lr + add r0, r2, r0, lsl #2 + ldr r1, [r0, #4] + ldr r0, [r3, #0x8c] + cmp r1, #0 + moveq r0, #0 + addne r0, r0, r1 + bx lr + .align 2, 0 +_0232CD38: .4byte 0x02357890 + arm_func_end ov02_0232CCD8 + + arm_func_start ov02_0232CD3C +ov02_0232CD3C: @ 0x0232CD3C + ldr r1, _0232CD60 @ =0x02357890 + ldr r1, [r1] + ldr r2, [r1, #0x84] + ldr r1, [r2, #8] + cmp r0, r1 + movhs r0, #0 + addlo r0, r2, r0, lsl #4 + ldrlo r0, [r0, #0x10] + bx lr + .align 2, 0 +_0232CD60: .4byte 0x02357890 + arm_func_end ov02_0232CD3C + + arm_func_start ov02_0232CD64 +ov02_0232CD64: @ 0x0232CD64 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + ldr r4, _0232CE28 @ =0x02357890 + mov sb, r2 + ldr r7, [r4] + mov sl, r1 + ldr r2, [r7, #0x84] + mov r8, r3 + ldr r1, [r2, #8] + cmp r0, r1 + mvnhs r0, #0 + pophs {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r5, [r7, #0x90] + add r1, r2, #0xc + cmp r5, #0 + moveq r5, sb + add fp, r1, r0, lsl #4 + cmp sb, #0 + mov r4, #0 + ble _0232CE20 +_0232CDB0: + ldr r0, [fp, #4] + sub r6, sb, r4 + cmp r6, r5 + movgt r6, r5 + sub r0, r0, r8 + cmp r6, r0 + movhi r6, r0 + cmp r6, #0 + beq _0232CE20 + ldr r1, [fp] + mov r2, #0 + add r0, r7, #0x34 + add r1, r1, r8 + bl FUN_0207F828 + cmp r0, #0 + mvneq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r1, sl + mov r2, r6 + add r0, r7, #0x34 + bl FUN_0207F818 + cmp r0, #0 + poplt {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r4, r4, r0 + cmp r4, sb + add r8, r8, r0 + add sl, sl, r0 + blt _0232CDB0 +_0232CE20: + mov r0, r4 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0232CE28: .4byte 0x02357890 + arm_func_end ov02_0232CD64 + + arm_func_start ov02_0232CE2C +ov02_0232CE2C: @ 0x0232CE2C + ldr r1, _0232CE50 @ =0x02357890 + ldr r1, [r1] + ldr r2, [r1, #0x84] + ldr r1, [r2, #8] + cmp r0, r1 + movhs r0, #0 + addlo r0, r2, r0, lsl #4 + ldrlo r0, [r0, #0x14] + bx lr + .align 2, 0 +_0232CE50: .4byte 0x02357890 + arm_func_end ov02_0232CE2C + + arm_func_start ov02_0232CE54 +ov02_0232CE54: @ 0x0232CE54 + ldr r2, _0232CE6C @ =0x02357890 + ldr r2, [r2] + ldr r2, [r2, #0x84] + add r0, r2, r0, lsl #4 + str r1, [r0, #0x14] + bx lr + .align 2, 0 +_0232CE6C: .4byte 0x02357890 + arm_func_end ov02_0232CE54 + + arm_func_start ov02_0232CE70 +ov02_0232CE70: @ 0x0232CE70 + push {r3, r4, r5, lr} + add r2, r0, #3 + add r0, r0, r1 + bic r5, r2, #3 + cmp r5, r0 + movhi r0, #0 + pophi {r3, r4, r5, pc} + sub r1, r0, r5 + cmp r1, #0x10 + movlo r0, #0 + poplo {r3, r4, r5, pc} + add r0, r5, #0x10 + sub r1, r1, #0x10 + mov r2, #0 + bl ov02_02329F40 + movs r4, r0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + mov r0, r5 + mov r1, r4 + bl ov02_0232D02C + cmp r0, #0 + movne r0, r5 + popne {r3, r4, r5, pc} + mov r0, r4 + bl ov02_02329844 + mov r0, #0 + pop {r3, r4, r5, pc} + arm_func_end ov02_0232CE70 + + arm_func_start ov02_0232CEE0 +ov02_0232CEE0: @ 0x0232CEE0 + push {r4, lr} + mov r4, r0 + bl ov02_0232CEF8 + ldr r0, [r4] + bl ov02_02329844 + pop {r4, pc} + arm_func_end ov02_0232CEE0 + + arm_func_start ov02_0232CEF8 +ov02_0232CEF8: @ 0x0232CEF8 + push {r4, r5, r6, r7, r8, sb, sl, lr} + mov r8, r0 + mov r6, #0 + mov r1, r6 + add r0, r8, #4 + bl ov02_02329724 + movs r5, r0 + beq _0232CF90 + mov sl, #1 + mov sb, r6 + mov r4, r6 +_0232CF24: + mov r0, r5 + mov r1, r4 + bl ov02_02329724 + movs r7, r0 + beq _0232CF70 +_0232CF38: + ldr ip, [r7, #0xc] + cmp ip, #0 + beq _0232CF5C + ldr r1, [r7, #8] + ldr r2, [r7, #0x10] + ldr r3, [r7, #0x14] + add r0, r7, #0x20 + blx ip + mov r6, sl +_0232CF5C: + mov r0, r5 + mov r1, r7 + bl ov02_02329724 + movs r7, r0 + bne _0232CF38 +_0232CF70: + mov r1, r5 + add r0, r8, #4 + bl ov02_023296AC + mov r1, sb + add r0, r8, #4 + bl ov02_02329724 + movs r5, r0 + bne _0232CF24 +_0232CF90: + ldr r0, [r8] + mov r1, #3 + bl ov02_02329FB8 + cmp r6, #0 + beq _0232CFA8 + bl ov02_0232D09C +_0232CFA8: + mov r0, r8 + bl ov02_0232D060 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end ov02_0232CEF8 + + arm_func_start ov02_0232CFB4 +ov02_0232CFB4: @ 0x0232CFB4 + push {r4, r5, r6, r7, r8, lr} + mov r7, r1 + mov r8, r0 + add r0, r7, #0x1f + bic r1, r0, #0x1f + mov r6, r2 + ldr r0, [r8] + add r1, r1, #0x20 + mov r2, #0x20 + mov r5, r3 + bl ov02_02329F84 + movs r4, r0 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, pc} + add r0, r8, #4 + mov r1, #0 + bl ov02_02329724 + str r7, [r4, #8] + str r6, [r4, #0xc] + ldr r2, [sp, #0x18] + str r5, [r4, #0x10] + mov r1, r4 + str r2, [r4, #0x14] + bl ov02_023295A4 + add r0, r4, #0x20 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov02_0232CFB4 + + arm_func_start ov02_0232D01C +ov02_0232D01C: @ 0x0232D01C + ldr ip, _0232D028 @ =ov02_02329560 + mov r1, #0 + bx ip + .align 2, 0 +_0232D028: .4byte ov02_02329560 + arm_func_end ov02_0232D01C + + arm_func_start ov02_0232D02C +ov02_0232D02C: @ 0x0232D02C + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + add r0, r5, #4 + mov r1, #0xc + bl ov02_02329560 + mov r0, r5 + str r4, [r5] + bl ov02_0232D060 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, r4, r5, pc} + arm_func_end ov02_0232D02C + + arm_func_start ov02_0232D060 +ov02_0232D060: @ 0x0232D060 + push {r3, r4, r5, lr} + mov r5, r0 + ldr r0, [r5] + mov r1, #0x14 + mov r2, #4 + bl ov02_02329F84 + movs r4, r0 + moveq r0, #0 + popeq {r3, r4, r5, pc} + bl ov02_0232D01C + mov r1, r4 + add r0, r5, #4 + bl ov02_023295A4 + mov r0, #1 + pop {r3, r4, r5, pc} + arm_func_end ov02_0232D060 + + arm_func_start ov02_0232D09C +ov02_0232D09C: @ 0x0232D09C + push {r4, lr} + bl FUN_0207D13C + mov r4, r0 + mov r0, #1 + bl FUN_0207CF14 + mov r0, r4 + bl FUN_0207D0D0 + pop {r4, pc} + arm_func_end ov02_0232D09C + + arm_func_start ov02_0232D0BC +ov02_0232D0BC: @ 0x0232D0BC + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #8 + mov sl, r1 + mov sb, r2 + mov fp, r3 + bl ov02_0232CC10 + movs r5, r0 + addeq sp, sp, #8 + moveq r0, #4 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + tst sl, #2 + ldr r0, [r5] + beq _0232D110 + mov r1, sb + mov r2, fp + bl ov02_0232D328 + movs r6, r0 + bne _0232D118 + add sp, sp, #8 + mov r0, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0232D110: + bl ov02_0232CE2C + mov r6, r0 +_0232D118: + and r8, sl, #4 + mov r7, #0 +_0232D120: + add r0, r5, r7, lsl #1 + ldrh r0, [r0, #4] + ldr r1, _0232D1F8 @ =0x0000FFFF + cmp r0, r1 + beq _0232D1D4 + bl ov02_0232CC74 + movs r4, r0 + addeq sp, sp, #8 + moveq r0, #5 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, sp, #4 + str r0, [sp] + add r0, r5, r7, lsl #1 + ldrh r0, [r0, #4] + mov r1, sl + mov r2, sb + mov r3, fp + bl ov02_0232D1FC + cmp r0, #0 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r4] + lsr r0, r0, #0x18 + tst r0, #1 + cmpne r8, #0 + beq _0232D1B8 + str sb, [sp] + ldr r1, [r4] + ldr r0, [sp, #4] + lsl r3, r1, #8 + mov r1, r6 + mov r2, r7 + lsr r3, r3, #8 + bl ov02_0232D6F0 + cmp r0, #0 + addeq sp, sp, #8 + moveq r0, #9 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0232D1B8: + cmp r6, #0 + ldrne r2, [sp, #4] + cmpne r2, #0 + beq _0232D1D4 + mov r0, r6 + mov r1, r7 + bl FUN_0207D5B0 +_0232D1D4: + add r7, r7, #1 + cmp r7, #4 + blt _0232D120 + ldr r0, [sp, #0x30] + cmp r0, #0 + strne r6, [r0] + mov r0, #0 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0232D1F8: .4byte 0x0000FFFF + arm_func_end ov02_0232D0BC + + arm_func_start ov02_0232D1FC +ov02_0232D1FC: @ 0x0232D1FC + push {r4, r5, r6, lr} + mov r6, r1 + mov r5, r2 + mov r4, r3 + bl ov02_0232CC74 + cmp r0, #0 + moveq r0, #5 + popeq {r4, r5, r6, pc} + tst r6, #4 + ldr r0, [r0] + beq _0232D268 + lsr r1, r0, #0x18 + tst r1, #1 + lsl r0, r0, #8 + mov r1, r5 + beq _0232D24C + mov r2, r4 + lsr r0, r0, #8 + bl ov02_0232D400 + b _0232D258 +_0232D24C: + mov r2, r4 + lsr r0, r0, #8 + bl ov02_0232D394 +_0232D258: + cmp r0, #0 + bne _0232D274 + mov r0, #9 + pop {r4, r5, r6, pc} +_0232D268: + lsl r0, r0, #8 + lsr r0, r0, #8 + bl ov02_0232CE2C +_0232D274: + ldr r1, [sp, #0x10] + cmp r1, #0 + strne r0, [r1] + mov r0, #0 + pop {r4, r5, r6, pc} + arm_func_end ov02_0232D1FC + + arm_func_start ov02_0232D288 +ov02_0232D288: @ 0x0232D288 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #4 + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r4, r3 + bl ov02_0232CD3C + movs r5, r0 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, pc} + ldr r0, [sp, #0x20] + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, pc} + mov r2, r7 + mov r3, r6 + add r1, r5, #0x20 + str r4, [sp] + bl ov02_0232CFB4 + movs r4, r0 + addeq sp, sp, #4 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, pc} + mov r0, r8 + mov r1, r4 + mov r2, r5 + mov r3, #0 + bl ov02_0232CD64 + cmp r5, r0 + addne sp, sp, #4 + movne r0, #0 + popne {r3, r4, r5, r6, r7, r8, pc} + mov r0, r4 + mov r1, r5 + bl FUN_0207A2C0 + mov r0, r4 + add sp, sp, #4 + pop {r3, r4, r5, r6, r7, r8, pc} + arm_func_end ov02_0232D288 + + arm_func_start ov02_0232D328 +ov02_0232D328: @ 0x0232D328 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + mov r6, r1 + mov r5, r2 + bl ov02_0232CE2C + movs r4, r0 + bne _0232D388 + cmp r5, #0 + moveq r2, #0 + beq _0232D358 + bl ov02_0232CB9C + mov r2, r0 +_0232D358: + ldr r1, _0232D390 @ =ov02_0232D560 + mov r0, r7 + mov r3, r7 + str r6, [sp] + bl ov02_0232D288 + mov r4, r0 + cmp r5, #0 + cmpne r4, #0 + beq _0232D388 + mov r0, r7 + mov r1, r4 + bl ov02_0232CE54 +_0232D388: + mov r0, r4 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0232D390: .4byte ov02_0232D560 + arm_func_end ov02_0232D328 + + arm_func_start ov02_0232D394 +ov02_0232D394: @ 0x0232D394 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + mov r6, r1 + mov r5, r2 + bl ov02_0232CE2C + movs r4, r0 + bne _0232D3F4 + cmp r5, #0 + moveq r2, #0 + beq _0232D3C4 + bl ov02_0232CB9C + mov r2, r0 +_0232D3C4: + ldr r1, _0232D3FC @ =ov02_0232D590 + mov r0, r7 + mov r3, r7 + str r6, [sp] + bl ov02_0232D288 + mov r4, r0 + cmp r5, #0 + cmpne r4, #0 + beq _0232D3F4 + mov r0, r7 + mov r1, r4 + bl ov02_0232CE54 +_0232D3F4: + mov r0, r4 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0232D3FC: .4byte ov02_0232D590 + arm_func_end ov02_0232D394 + + arm_func_start ov02_0232D400 +ov02_0232D400: @ 0x0232D400 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov sb, r0 + mov r8, r1 + mov r7, r2 + bl ov02_0232CE2C + movs r5, r0 + bne _0232D4F4 + ldr r1, _0232D4FC @ =0x02357894 + mov r0, sb + mov r2, #0x3c + mov r3, #0 + bl ov02_0232CD64 + cmp r0, #0x3c + movne r0, #0 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + ldr r0, _0232D500 @ =0x02357894 + cmp r8, #0 + ldr r0, [r0, #0x38] + lsl r6, r0, #2 + lsl r4, r6, #1 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + cmp r7, #0 + moveq r3, #0 + beq _0232D46C + bl ov02_0232CB9C + mov r3, r0 +_0232D46C: + ldr r2, _0232D504 @ =ov02_0232D5C0 + mov r0, r8 + add r1, r4, #0x5c + str sb, [sp] + bl ov02_0232CFB4 + movs r5, r0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + mov r0, sb + mov r1, r5 + add r2, r6, #0x3c + mov r3, #0 + bl ov02_0232CD64 + add r1, r6, #0x3c + cmp r0, r1 + movne r0, #0 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + ldr r1, [r5, #0x38] + add r0, r5, #0x3c + mov r2, r6 + add r1, r0, r1, lsl #2 + bl FUN_0207C4C8 + mov r2, r6 + add r0, r5, #0x3c + mov r1, #0 + bl FUN_0207C40C + mov r0, r5 + add r1, r4, #0x3c + bl FUN_0207A2C0 + cmp r7, #0 + beq _0232D4F4 + mov r0, sb + mov r1, r5 + bl ov02_0232CE54 +_0232D4F4: + mov r0, r5 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0232D4FC: .4byte 0x02357894 +_0232D500: .4byte 0x02357894 +_0232D504: .4byte ov02_0232D5C0 + arm_func_end ov02_0232D400 + + arm_func_start ov02_0232D508 +ov02_0232D508: @ 0x0232D508 + push {r3, r4, r5, r6, r7, lr} + movs r4, r1 + mov r7, r0 + mov r6, r2 + popeq {r3, r4, r5, r6, r7, pc} + bl FUN_0207B7E4 + mov r5, r0 + mov r0, r4 + bl ov02_0232CB84 + mov r4, r0 + mov r0, r6 + bl ov02_0232CE2C + cmp r7, r0 + bne _0232D54C + mov r0, r6 + mov r1, #0 + bl ov02_0232CE54 +_0232D54C: + mov r0, r4 + bl ov02_0232CB84 + mov r0, r5 + bl FUN_0207B7F8 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov02_0232D508 + + arm_func_start ov02_0232D560 +ov02_0232D560: @ 0x0232D560 + push {r3, r4, r5, lr} + mov r4, r1 + mov r1, r2 + mov r5, r0 + mov r2, r3 + bl ov02_0232D508 + mov r0, r5 + add r1, r5, r4 + bl FUN_0207CB14 + mov r0, r5 + bl FUN_0207D67C + pop {r3, r4, r5, pc} + arm_func_end ov02_0232D560 + + arm_func_start ov02_0232D590 +ov02_0232D590: @ 0x0232D590 + push {r3, r4, r5, lr} + mov r4, r1 + mov r1, r2 + mov r5, r0 + mov r2, r3 + bl ov02_0232D508 + mov r0, r5 + add r1, r5, r4 + bl FUN_0207CB34 + mov r0, r5 + bl FUN_0207D714 + pop {r3, r4, r5, pc} + arm_func_end ov02_0232D590 + + arm_func_start ov02_0232D5C0 +ov02_0232D5C0: @ 0x0232D5C0 + push {r4, lr} + mov r1, r2 + mov r4, r0 + mov r2, r3 + bl ov02_0232D508 + mov r0, r4 + bl FUN_0207D714 + pop {r4, pc} + arm_func_end ov02_0232D5C0 + + arm_func_start ov02_0232D5E0 +ov02_0232D5E0: @ 0x0232D5E0 + push {r3, r4, r5, r6, r7, lr} + mov r5, r2 + mov r7, r0 + mov r4, r3 + mov r6, r1 + mov r0, r5 + mov r1, r4 + bl FUN_0207D968 + cmp r7, r0 + bne _0232D618 + mov r0, r5 + mov r1, r4 + mov r2, #0 + bl FUN_0207D934 +_0232D618: + mov r0, r7 + add r1, r7, r6 + bl FUN_0207CB34 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov02_0232D5E0 + + arm_func_start ov02_0232D628 +ov02_0232D628: @ 0x0232D628 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, r3 + bl FUN_0207D968 + cmp r0, #0 + movne r0, #1 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + mov r0, r8 + bl FUN_0207D92C + ldr r1, [r8, #0x38] + sub r0, r0, #1 + add r1, r1, r7 + add r1, r8, r1, lsl #2 + cmp r7, r0 + ldrlo r0, [r1, #0x40] + ldr r4, [r1, #0x3c] + ldrhs r0, [r8, #8] + cmp r5, #0 + sub sb, r0, r4 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + ldr r2, _0232D6EC @ =ov02_0232D5E0 + mov r0, r5 + mov r3, r8 + add r1, sb, #0x20 + str r7, [sp] + bl ov02_0232CFB4 + movs r5, r0 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, pc} + mov r0, r6 + mov r1, r5 + mov r2, sb + mov r3, r4 + bl ov02_0232CD64 + cmp sb, r0 + movne r0, #0 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + mov r0, r5 + mov r1, sb + bl FUN_0207A2C0 + mov r0, r8 + mov r1, r7 + mov r2, r5 + bl FUN_0207D934 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0232D6EC: .4byte ov02_0232D5E0 + arm_func_end ov02_0232D628 + + arm_func_start ov02_0232D6F0 +ov02_0232D6F0: @ 0x0232D6F0 + push {r3, r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x1c + mov r8, r0 + add r0, sp, #0 + mov r7, r1 + mov r6, r2 + mov r5, r3 + ldr r4, [sp, #0x40] + bl FUN_0207D75C + ldr r1, [sp] + ldr r0, [sp, #4] + str r1, [sp, #8] + str r0, [sp, #0xc] + cmp r7, #0 + add r2, sp, #8 + addeq sp, sp, #0x1c + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, pc} + add r1, sp, #0x10 + mov r0, r7 + bl FUN_0207D77C + cmp r0, #0 + beq _0232D7A4 + add sl, sp, #0x10 + add sb, sp, #8 +_0232D754: + ldrb r0, [sp, #0x10] + cmp r0, #1 + ldrheq r0, [sp, #0x14] + cmpeq r6, r0 + bne _0232D78C + ldrh r1, [sp, #0x12] + mov r0, r8 + mov r2, r5 + mov r3, r4 + bl ov02_0232D628 + cmp r0, #0 + addeq sp, sp, #0x1c + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, pc} +_0232D78C: + mov r0, r7 + mov r1, sl + mov r2, sb + bl FUN_0207D77C + cmp r0, #0 + bne _0232D754 +_0232D7A4: + mov r0, #1 + add sp, sp, #0x1c + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end ov02_0232D6F0 + + arm_func_start ov02_0232D7B0 +ov02_0232D7B0: @ 0x0232D7B0 + push {r4, r5, r6, r7, r8, lr} + mov r4, r0 + bl ov02_0232CB9C + mov r6, #0 + mov r5, r6 +_0232D7C4: + mov r0, r6 + bl ov02_0232CCD8 + movs r7, r0 + beq _0232D838 + ldrb r1, [r7] + mov r0, r6 + bl ov02_0232BE9C + ldrh r1, [r7, #2] + mov r0, r6 + bl ov02_0232BEBC + ldr r0, [r7, #4] + cmp r0, #0 + cmpne r4, #0 + beq _0232D838 + ldrb r0, [r7] + mov r8, r5 + cmp r0, #0 + ble _0232D838 +_0232D80C: + ldr r2, [r7, #4] + mov r0, r6 + mov r1, r4 + bl ov02_0232BED4 + cmp r0, #0 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, pc} + ldrb r0, [r7] + add r8, r8, #1 + cmp r8, r0 + blt _0232D80C +_0232D838: + add r6, r6, #1 + cmp r6, #0x20 + blt _0232D7C4 + mov r0, #1 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov02_0232D7B0 + + arm_func_start ov02_0232D84C +ov02_0232D84C: @ 0x0232D84C + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x10 + mov r6, r1 + mov r7, r0 + mov r0, r6 + mov r5, r2 + bl ov02_0232CBAC + cmp r0, #0 + addeq sp, sp, #0x10 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldr r0, [r0] + bl ov02_0232CE2C + movs r4, r0 + addeq sp, sp, #0x10 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + mov r1, r5 + bl ov02_0232DC88 + cmp r0, #0 + addeq sp, sp, #0x10 + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + stm sp, {r0, r4, r6} + str r5, [sp, #0xc] + ldrb r1, [r0, #9] + ldrh r2, [r0, #4] + ldrb r3, [r0, #8] + mov r0, r7 + bl ov02_0232D8CC + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov02_0232D84C + + arm_func_start ov02_0232D8CC +ov02_0232D8CC: @ 0x0232D8CC + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + mov r7, r2 + mov r2, r3 + ldr r6, [sp, #0x20] + mov r4, r0 + mov r8, r1 + bl ov02_0232C250 + movs r5, r0 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r4, r5, r6, r7, r8, pc} + mov r0, r8 + mov r1, r5 + bl ov02_0232C390 + add ip, sp, #4 + mov r2, r0 + mov r0, r7 + mov r1, #6 + mov r3, #0 + str ip, [sp] + bl ov02_0232D0BC + cmp r0, #0 + beq _0232D940 + mov r0, r5 + bl ov02_0232C570 + add sp, sp, #8 + mov r0, #0 + pop {r4, r5, r6, r7, r8, pc} +_0232D940: + ldr ip, [sp, #0x24] + ldr r2, [r6] + ldr r1, [ip, #0x18] + ldr r3, [sp, #4] + mov r0, r5 + add r1, ip, r1 + bl ov02_0232C2F4 + ldrb r1, [r6, #6] + mov r0, r4 + bl ov02_0232BFB8 + ldrb r1, [r6, #7] + mov r0, r4 + bl ov02_0232BFCC + ldr r1, [sp, #0x28] + ldr r2, [sp, #0x2c] + mov r0, r4 + bl ov02_0232C00C + mov r0, #1 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov02_0232D8CC + + arm_func_start ov02_0232D990 +ov02_0232D990: @ 0x0232D990 + push {r3, r4, r5, r6, r7, lr} + ldr r7, _0232DA98 @ =0x02357F6C + ldr r4, _0232DA9C @ =0x020AE224 + mov r5, #0 +_0232D9A0: + ldr r1, [r7, #0x110] + lsl r0, r1, #0x1f + asrs r0, r0, #0x1f + beq _0232DA84 + ldr r0, [r7, #0x114] + cmp r0, #0 + bne _0232D9C8 + mov r0, r7 + bl ov02_0232DACC + b _0232DA84 +_0232D9C8: + lsl r0, r1, #0x1d + asrs r0, r0, #0x1f + ldrne r0, [r7, #0x118] + cmpne r0, #0 + beq _0232D9F4 + mov r0, r7 + bl ov02_0232C6CC + ldr r0, [r7, #0x110] + orr r0, r0, #2 + bic r0, r0, #4 + str r0, [r7, #0x110] +_0232D9F4: + ldr r0, [r7, #0x110] + lsl r0, r0, #0x1e + asrs r0, r0, #0x1f + beq _0232DA84 + add r0, r7, #0xe8 + bl ov02_0232DD3C + ldr r1, [r7, #0x154] + add r0, r7, #0xe8 + lsl r1, r1, #1 + ldrsh r6, [r4, r1] + bl ov02_0232DD08 + asr r0, r0, #8 + ldr r1, [r7, #0x158] + lsl r0, r0, #1 + lsl r2, r1, #1 + ldrsh r1, [r4, r0] + ldrsh r2, [r4, r2] + ldr r0, [r7, #0x15c] + add r1, r1, r6 + add r6, r2, r1 + cmp r6, r0 + beq _0232DA5C + mov r0, r7 + mov r1, r6 + bl ov02_0232C73C + str r6, [r7, #0x15c] +_0232DA5C: + ldr r0, [r7, #0x110] + lsl r0, r0, #0x1c + asrs r0, r0, #0x1f + beq _0232DA84 + add r0, r7, #0xe8 + bl ov02_0232DD54 + cmp r0, #0 + beq _0232DA84 + mov r0, r7 + bl ov02_0232DACC +_0232DA84: + add r5, r5, #1 + cmp r5, #4 + add r7, r7, #0x174 + blt _0232D9A0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0232DA98: .4byte 0x02357F6C +_0232DA9C: .4byte 0x020AE224 + arm_func_end ov02_0232D990 + + arm_func_start ov02_0232DAA0 +ov02_0232DAA0: @ 0x0232DAA0 + ldr r2, [r0, #0x14c] + cmp r2, #0 + movne r1, #0 + strne r1, [r2] + strne r1, [r0, #0x14c] + ldr r1, [r0, #0x110] + bic r2, r1, #1 + bic r1, r2, #4 + bic r1, r1, #2 + str r1, [r0, #0x110] + bx lr + arm_func_end ov02_0232DAA0 + + arm_func_start ov02_0232DACC +ov02_0232DACC: @ 0x0232DACC + push {r4, lr} + mov r4, r0 + ldr r0, _0232DB5C @ =0x02357F48 + bl FUN_0207A048 + ldr r0, _0232DB60 @ =0x023578D0 + ldr r0, [r0, #4] + cmp r0, #0 + beq _0232DAF8 + add r0, r0, #0xc8 + add r0, r0, #0x400 + bl FUN_0207A048 +_0232DAF8: + ldr r0, [r4, #0x110] + lsl r0, r0, #0x1e + asrs r0, r0, #0x1f + beq _0232DB10 + mov r0, r4 + bl ov02_0232C720 +_0232DB10: + ldr r0, [r4, #0x110] + lsl r0, r0, #0x1f + asrs r0, r0, #0x1f + beq _0232DB2C + ldr r1, [r4, #0x170] + mov r0, r4 + blx r1 +_0232DB2C: + mov r0, r4 + bl ov02_0232DB64 + ldr r0, _0232DB5C @ =0x02357F48 + bl FUN_0207A0CC + ldr r0, _0232DB60 @ =0x023578D0 + ldr r0, [r0, #4] + cmp r0, #0 + popeq {r4, pc} + add r0, r0, #0xc8 + add r0, r0, #0x400 + bl FUN_0207A0CC + pop {r4, pc} + .align 2, 0 +_0232DB5C: .4byte 0x02357F48 +_0232DB60: .4byte 0x023578D0 + arm_func_end ov02_0232DACC + + arm_func_start ov02_0232DB64 +ov02_0232DB64: @ 0x0232DB64 + push {r4, lr} + mov r4, r0 + ldr r1, [r4, #0x110] + lsl r1, r1, #0x1f + asrs r1, r1, #0x1f + popeq {r4, pc} + bl ov02_0232DBC8 + ldr r1, [r4, #0x168] + mov r0, r4 + blx r1 + ldr r0, _0232DBC0 @ =0x02357F60 + mov r1, r4 + bl ov02_0232DBEC + ldr r0, _0232DBC4 @ =0x023578D0 + ldr r0, [r0, #4] + cmp r0, #0 + beq _0232DBB4 + mov r1, r4 + add r0, r0, #0x4e0 + bl ov02_0232DBEC +_0232DBB4: + mov r0, r4 + bl ov02_0232DAA0 + pop {r4, pc} + .align 2, 0 +_0232DBC0: .4byte 0x02357F60 +_0232DBC4: .4byte 0x023578D0 + arm_func_end ov02_0232DB64 + + arm_func_start ov02_0232DBC8 +ov02_0232DBC8: @ 0x0232DBC8 + push {r3, lr} + ldr r1, [r0, #0x120] + cmp r1, #0 + popeq {r3, pc} + subs r1, r1, #1 + str r1, [r0, #0x120] + popne {r3, pc} + bl ov02_0232C6A4 + pop {r3, pc} + arm_func_end ov02_0232DBC8 + + arm_func_start ov02_0232DBEC +ov02_0232DBEC: @ 0x0232DBEC + push {r4, r5, r6, r7, r8, lr} + mov r8, r0 + mov r7, r1 + bl FUN_0207B7E4 + mov r4, r0 + mov r0, r8 + mov r1, #0 + bl ov02_0232970C + movs r5, r0 + beq _0232DC50 +_0232DC14: + mov r0, r8 + mov r1, r5 + bl ov02_0232970C + ldr r1, [r5, #8] + mov r6, r0 + cmp r1, r7 + bne _0232DC44 + mov r0, r8 + mov r1, r5 + bl ov02_023296AC + mov r0, r5 + bl ov02_0232DC5C +_0232DC44: + mov r5, r6 + cmp r6, #0 + bne _0232DC14 +_0232DC50: + mov r0, r4 + bl FUN_0207B7F8 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov02_0232DBEC + + arm_func_start ov02_0232DC5C +ov02_0232DC5C: @ 0x0232DC5C + push {r3, r4, r5, lr} + mov r5, r0 + bl FUN_0207B7E4 + mov r4, r0 + ldr r0, _0232DC84 @ =0x023578DC + mov r1, r5 + bl ov02_023295A4 + mov r0, r4 + bl FUN_0207B7F8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0232DC84: .4byte 0x023578DC + arm_func_end ov02_0232DC5C + + arm_func_start ov02_0232DC88 +ov02_0232DC88: @ 0x0232DC88 + cmp r1, #0 + movlt r0, #0 + bxlt lr + ldr r2, [r0, #0x1c] + cmp r1, r2 + movhs r0, #0 + bxhs lr + mov r2, #0xc + mul r3, r1, r2 + add ip, r0, #0x20 + ldr r1, [ip, r3] + sub r0, r2, #0xd + cmp r1, r0 + add r0, ip, r3 + moveq r0, #0 + bx lr + arm_func_end ov02_0232DC88 + + arm_func_start ov02_0232DCC8 +ov02_0232DCC8: @ 0x0232DCC8 + mov r1, #0 + str r1, [r0, #4] + str r1, [r0] + str r1, [r0, #0xc] + str r1, [r0, #8] + bx lr + arm_func_end ov02_0232DCC8 + + arm_func_start ov02_0232DCE0 +ov02_0232DCE0: @ 0x0232DCE0 + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl ov02_0232DD08 + stm r6, {r0, r5} + str r4, [r6, #0xc] + mov r0, #0 + str r0, [r6, #8] + pop {r4, r5, r6, pc} + arm_func_end ov02_0232DCE0 + + arm_func_start ov02_0232DD08 +ov02_0232DD08: @ 0x0232DD08 + push {r4, lr} + ldr r1, [r0, #0xc] + ldr r2, [r0, #8] + cmp r2, r1 + ldrge r0, [r0, #4] + popge {r4, pc} + ldr r4, [r0] + ldr r0, [r0, #4] + sub r0, r0, r4 + mul r0, r2, r0 + bl FUN_0208FEA4 + add r0, r4, r0 + pop {r4, pc} + arm_func_end ov02_0232DD08 + + arm_func_start ov02_0232DD3C +ov02_0232DD3C: @ 0x0232DD3C + ldr r2, [r0, #8] + ldr r1, [r0, #0xc] + cmp r2, r1 + addlt r1, r2, #1 + strlt r1, [r0, #8] + bx lr + arm_func_end ov02_0232DD3C + + arm_func_start ov02_0232DD54 +ov02_0232DD54: @ 0x0232DD54 + ldr r1, [r0, #8] + ldr r0, [r0, #0xc] + cmp r1, r0 + movge r0, #1 + movlt r0, #0 + bx lr + arm_func_end ov02_0232DD54 + + arm_func_start ov02_0232DD6C +ov02_0232DD6C: @ 0x0232DD6C + stmdbmi r2, {r3, r8, sl, ip, sp, pc} + strmi r6, [r8, sb, lsl #16] + strbmi fp, [r0], r8, lsl #26 + eorseq sb, r5, #32, #6 + arm_func_end ov02_0232DD6C + + arm_func_start ov02_0232DD7C +ov02_0232DD7C: @ 0x0232DD7C + stmdbmi r2, {r3, r8, sl, ip, sp, pc} + strmi r6, [r8, sb, lsl #16] + strbmi fp, [r0], r8, lsl #26 + eorseq sb, r5, #44, #6 + arm_func_end ov02_0232DD7C + + thumb_func_start ov02_0232DD8C +ov02_0232DD8C: @ 0x0232DD8C + push {r4, lr} + ldr r2, _0232DE60 @ =0x00000106 + adds r4, r0, #0 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq FUN_0232DDDC + movs r1, #0 + mvns r1, r1 + cmp r0, r1 + blt FUN_0232DDDC + adds r0, r2, #2 + ldrsh r0, [r4, r0] + cmp r0, r1 + blt FUN_0232DDDC + adds r0, r2, #4 + ldrsh r0, [r4, r0] + cmp r0, #0 + beq FUN_0232DDDC + cmp r0, r1 + blt FUN_0232DDDC + adds r0, r2, #6 + ldrsh r0, [r4, r0] + cmp r0, r1 + blt FUN_0232DDDC + adds r0, r2, #0 + adds r0, #8 + ldrsh r0, [r4, r0] + cmp r0, r1 + blt FUN_0232DDDC + ldrh r1, [r4, #4] + cmp r1, #0 + beq FUN_0232DDDC + subs r0, r2, #6 + cmp r1, r0 + bhi FUN_0232DDDC + subs r0, r1, #1 + adds r0, r4, r0 + ldrb r0, [r0, #6] + cmp r0, #0 + beq FUN_0232DDE2 + movs r1, #0 + mvns r1, r1 + thumb_func_end ov02_0232DD8C +_0232DDE0: + .byte 0x00, 0xE0, 0x00, 0x21, 0x1F, 0x48, 0x00, 0x68, 0x00, 0x28, 0x03, 0xD0, 0x1E, 0x48, 0x00, 0x68 + .byte 0x00, 0x28, 0x01, 0xD1, 0x00, 0x21, 0xC9, 0x43, 0x00, 0x20, 0xC0, 0x43, 0x81, 0x42, 0x07, 0xD1 + .byte 0x1A, 0x48, 0x0F, 0x21, 0x21, 0x54, 0x00, 0xF0, 0x51, 0xFD, 0x00, 0x20, 0xC0, 0x43, 0x10, 0xBD + .byte 0x17, 0x48, 0xFF, 0xF7, 0xAB, 0xFF, 0x17, 0x49, 0x00, 0x28, 0x48, 0x61, 0x07, 0xD1, 0x13, 0x48 + .byte 0x0F, 0x21, 0x21, 0x54, 0x00, 0xF0, 0x42, 0xFD, 0x00, 0x20, 0xC0, 0x43, 0x10, 0xBD, 0x00, 0x20 + .byte 0xC0, 0x43, 0x00, 0xF0, 0x0F, 0xFF, 0x20, 0x1C, 0x00, 0xF0, 0x20, 0xF8, 0x04, 0x1C, 0x0D, 0x48 + .byte 0x40, 0x69, 0xFF, 0xF7, 0x9B, 0xFF, 0x00, 0xF0, 0x31, 0xFD, 0x0B, 0x48, 0x00, 0x21, 0x00, 0x68 + .byte 0xC9, 0x43, 0x88, 0x42, 0x01, 0xD0, 0x02, 0xF0, 0x1F, 0xF8, 0x20, 0x1C, 0x10, 0xBD, 0xC0, 0x46 + .byte 0x06, 0x01, 0x00, 0x00, 0x20, 0x93, 0x35, 0x02, 0x2C, 0x93, 0x35, 0x02, 0x16, 0x01, 0x00, 0x00 + .byte 0xF8, 0x05, 0x00, 0x00, 0x3C, 0x85, 0x35, 0x02, 0x64, 0x2F, 0x35, 0x02 + + arm_func_start ov02_0232DE7C +ov02_0232DE7C: @ 0x0232DE7C + ldrshtlt fp, [r2], r8 + ldrdls r4, r5, [r2], -r3 + stmdahi sb, {r1, r3, fp, pc} ^ + strhi sl, [r2], -fp, lsl #16 + andhs r8, r0, r1, asr #12 + andhi sl, r8, r6, lsl sb + subhi sb, r8, sb + andsls r2, r5, r1 + stmdbls sb, {r0, r3, fp, ip, pc} + andls sb, r7, r4, lsl r0 + andshs sl, r8, #44, #16 + arm_func_end ov02_0232DE7C +_0232DEA8: + .byte 0x01, 0xF0, 0xA8, 0xFF, 0xC9, 0x49, 0x02, 0x98 + .byte 0x40, 0x5E, 0x0B, 0xA9, 0x08, 0x86, 0x30, 0x20, 0x0A, 0x5E, 0x31, 0x38, 0x82, 0x42, 0x01, 0xD1 + .byte 0x0A, 0x20, 0x08, 0x86, 0xC4, 0x49, 0x02, 0x98, 0x40, 0x5E, 0x0B, 0xA9, 0x88, 0x85, 0x2C, 0x20 + .byte 0x0A, 0x5E, 0x2D, 0x38, 0x82, 0x42, 0x01, 0xD1, 0x0A, 0x20, 0x88, 0x85, 0x42, 0x21, 0x02, 0x98 + .byte 0x89, 0x00, 0x40, 0x5E, 0x0B, 0xA9, 0x48, 0x86, 0x32, 0x20, 0x0A, 0x5E, 0x33, 0x38, 0x82, 0x42 + .byte 0x01, 0xD1, 0x64, 0x20, 0x48, 0x86, 0x43, 0x21, 0x02, 0x98, 0x89, 0x00, 0x40, 0x5E, 0x0B, 0xA9 + .byte 0xC8, 0x85, 0x2E, 0x20, 0x0A, 0x5E, 0x2F, 0x38, 0x82, 0x42, 0x01, 0xD1, 0x64, 0x20, 0xC8, 0x85 + .byte 0xB2, 0x49, 0x02, 0x98, 0x40, 0x5E, 0x00, 0x21, 0xC9, 0x43, 0x03, 0x90, 0x88, 0x42, 0x02, 0xD1 + .byte 0x7D, 0x20, 0x00, 0x01, 0x03, 0x90, 0x02, 0x98, 0x00, 0xF0, 0xD6, 0xFC, 0xAC, 0x48, 0xC1, 0x6A + .byte 0x01, 0x20, 0x08, 0x40, 0x01, 0x28, 0x0C, 0xD0, 0x13, 0x20, 0x00, 0xF0, 0xF9, 0xFC, 0xA9, 0x49 + .byte 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0, 0xB1, 0xFC, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43 + .byte 0xF8, 0xBD, 0x00, 0x24, 0x20, 0x1C, 0x00, 0xF0, 0x7D, 0xFE, 0x0B, 0xA9, 0x32, 0x20, 0x0E, 0x5E + .byte 0x30, 0x20, 0x0F, 0x5E, 0x9E, 0x4D, 0x68, 0x68, 0x00, 0x28, 0x03, 0xD0, 0xFF, 0xF7, 0x06, 0xFF + .byte 0x00, 0x20, 0x68, 0x60, 0x9C, 0x48, 0x02, 0xF0, 0x5D, 0xF9, 0x00, 0x21, 0xC9, 0x43, 0x88, 0x42 + .byte 0x09, 0xD1, 0x98, 0x49, 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0, 0x8F, 0xFC, 0x00, 0x20 + .byte 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x68, 0x68, 0x00, 0xF0, 0xE4, 0xFD, 0x04, 0x28, 0x09, 0xD1 + .byte 0x90, 0x49, 0x02, 0x98, 0x02, 0x22, 0x42, 0x54, 0x00, 0xF0, 0x80, 0xFC, 0x00, 0x20, 0x32, 0xB0 + .byte 0xC0, 0x43, 0xF8, 0xBD, 0x00, 0x28, 0x12, 0xD0, 0xBC, 0x42, 0x09, 0xDB, 0x89, 0x49, 0x02, 0x98 + .byte 0x01, 0x22, 0x42, 0x54, 0x00, 0xF0, 0x72, 0xFC, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD + .byte 0x30, 0x1C, 0x02, 0xF0, 0xD3, 0xFA, 0x60, 0x1C, 0x00, 0x04, 0x04, 0x14, 0xC3, 0xE7, 0x01, 0x20 + .byte 0x00, 0xF0, 0x38, 0xFE, 0x1D, 0xA8, 0x00, 0x21, 0x3C, 0x22, 0x01, 0xF0, 0x07, 0xFF, 0x1D, 0xA8 + .byte 0x00, 0xF0, 0xF6, 0xFD, 0x00, 0x28, 0x09, 0xD0, 0x7A, 0x49, 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54 + .byte 0x00, 0xF0, 0x54, 0xFC, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x58, 0x20, 0xFF, 0xF7 + .byte 0xAD, 0xFE, 0x73, 0x49, 0x00, 0x28, 0xC8, 0x60, 0x09, 0xD1, 0x72, 0x49, 0x02, 0x98, 0x0F, 0x22 + .byte 0x42, 0x54, 0x00, 0xF0, 0x43, 0xFC, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x00, 0x21 + .byte 0x58, 0x22, 0x01, 0xF0, 0xE3, 0xFE, 0x0B, 0xA9, 0x30, 0x20, 0x0D, 0x5E, 0x00, 0x24, 0x00, 0x2D + .byte 0x21, 0xDD, 0x67, 0x4F, 0xF9, 0x68, 0x1D, 0xA8, 0x02, 0xF0, 0xB0, 0xF9, 0x00, 0x21, 0xC9, 0x43 + .byte 0x88, 0x42, 0x09, 0xD1, 0x63, 0x49, 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0, 0x26, 0xFC + .byte 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x00, 0x28, 0x04, 0xD1, 0x0B, 0xD1, 0xF8, 0x68 + .byte 0x00, 0x68, 0x01, 0x28, 0x07, 0xD0, 0x30, 0x1C, 0x02, 0xF0, 0x80, 0xFA, 0x60, 0x1C, 0x00, 0x04 + .byte 0x04, 0x14, 0xAC, 0x42, 0xDE, 0xDB, 0x0B, 0xA8, 0x30, 0x21, 0x40, 0x5E, 0x84, 0x42, 0x09, 0xD1 + .byte 0x02, 0x98, 0x0F, 0x22, 0xE6, 0x31, 0x42, 0x54, 0x00, 0xF0, 0x08, 0xFC, 0x00, 0x20, 0x32, 0xB0 + .byte 0xC0, 0x43, 0xF8, 0xBD, 0x51, 0x48, 0xFF, 0x21, 0xC9, 0x43, 0x02, 0x1C, 0x01, 0xF0, 0x50, 0xFE + .byte 0x00, 0x28, 0x0C, 0xD0, 0x0C, 0x20, 0x00, 0xF0, 0x3B, 0xFC, 0x4A, 0x49, 0x02, 0x98, 0x0F, 0x22 + .byte 0x42, 0x54, 0x00, 0xF0, 0xF3, 0xFB, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x00, 0xF0 + .byte 0xED, 0xFB, 0x11, 0x23, 0x02, 0x9A, 0x1B, 0x01, 0x03, 0x20, 0x2C, 0xA9, 0xD2, 0x18, 0x00, 0xF0 + .byte 0xA1, 0xFD, 0x02, 0x20, 0x01, 0x1C, 0x00, 0x22, 0x01, 0xF0, 0xCC, 0xFE, 0x40, 0x49, 0x00, 0x28 + .byte 0x08, 0x60, 0x09, 0xDA, 0x3B, 0x49, 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0, 0xD6, 0xFB + .byte 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x04, 0x21, 0x00, 0x91, 0x39, 0x49, 0x01, 0x22 + .byte 0x15, 0xAB, 0x01, 0xF0, 0xB5, 0xFE, 0x00, 0x28, 0x0C, 0xDA, 0x0B, 0x20, 0x00, 0xF0, 0x08, 0xFC + .byte 0x30, 0x49, 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0, 0xC0, 0xFB, 0x00, 0x20, 0x32, 0xB0 + .byte 0xC0, 0x43, 0xF8, 0xBD, 0x0B, 0xA8, 0x00, 0x21, 0x08, 0x22, 0x01, 0xF0, 0x5F, 0xFE, 0x02, 0x21 + .byte 0x0B, 0xA8, 0x41, 0x70, 0x29, 0x48, 0x01, 0xF0, 0xAB, 0xFE, 0x0C, 0x90, 0x2A, 0x48, 0x01, 0xF0 + .byte 0xBB, 0xFE, 0x0B, 0xA9, 0x48, 0x80, 0x26, 0x48, 0x0B, 0xA9, 0x00, 0x68, 0x08, 0x22, 0x01, 0xF0 + .byte 0x95, 0xFE, 0x00, 0x28, 0x09, 0xDA, 0x1F, 0x49, 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0 + .byte 0x9D, 0xFB, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x19, 0x48, 0x00, 0x21, 0x40, 0x69 + .byte 0x14, 0x22, 0x06, 0x90, 0x18, 0xA8, 0x01, 0xF0, 0x39, 0xFE, 0x18, 0x48, 0xFA, 0x21, 0x1C, 0x90 + .byte 0x64, 0x38, 0x18, 0x90, 0x03, 0x98, 0x89, 0x00, 0x61, 0xF5, 0x84, 0xEE, 0x05, 0x90, 0xFA, 0x21 + .byte 0x03, 0x98, 0x89, 0x00, 0x61, 0xF5, 0x7E, 0xEE, 0xFA, 0x20, 0x80, 0x00, 0x48, 0x43, 0x04, 0x90 + .byte 0x30, 0x21, 0x0B, 0xA8, 0x47, 0x5E, 0x0A, 0x4D, 0x09, 0x98, 0x01, 0x28, 0x04, 0xD1, 0x0F, 0x49 + .byte 0x1C, 0x20, 0x08, 0x56, 0x01, 0x28, 0x00, 0xD1, 0x3C, 0xE1, 0x09, 0x48, 0x18, 0xE0, 0xC0, 0x46 + .byte 0x58, 0xFC, 0x34, 0x02, 0x06, 0x01, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x00, 0x0E, 0x01, 0x00, 0x00 + .byte 0x3C, 0x85, 0x35, 0x02, 0x16, 0x01, 0x00, 0x00, 0x40, 0x85, 0x35, 0x02, 0x65, 0x0B, 0xA8, 0xC0 + .byte 0x64, 0x2F, 0x35, 0x02, 0xFF, 0xFF, 0x00, 0x00, 0x90, 0x57, 0x00, 0x00, 0x5C, 0x85, 0x35, 0x02 + .byte 0x00, 0x21, 0x00, 0x68, 0xC9, 0x43, 0x88, 0x42, 0x01, 0xD0, 0x01, 0xF0, 0x45, 0xFE, 0x00, 0x21 + .byte 0xCB, 0x48, 0xC9, 0x43, 0x01, 0x60, 0x01, 0xF0, 0xC7, 0xFD, 0x00, 0x28, 0x09, 0xD0, 0xC9, 0x49 + .byte 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0, 0x41, 0xFB, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43 + .byte 0xF8, 0xBD, 0x58, 0x20, 0xFF, 0xF7, 0x9A, 0xFD, 0x68, 0x60, 0x00, 0x28, 0x09, 0xD1, 0xC1, 0x49 + .byte 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0, 0x31, 0xFB, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43 + .byte 0xF8, 0xBD, 0x68, 0x68, 0x00, 0x28, 0x03, 0xD0, 0xFF, 0xF7, 0x90, 0xFD, 0x00, 0x20, 0x68, 0x60 + .byte 0xB9, 0x48, 0x01, 0xF0, 0xE7, 0xFF, 0x00, 0x21, 0xC9, 0x43, 0x0A, 0x90, 0x88, 0x42, 0x09, 0xD1 + .byte 0xB4, 0x49, 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0, 0x18, 0xFB, 0x00, 0x20, 0x32, 0xB0 + .byte 0xC0, 0x43, 0xF8, 0xBD, 0x68, 0x68, 0x00, 0xF0, 0x6D, 0xFC, 0x04, 0x28, 0x09, 0xD1, 0xAD, 0x49 + .byte 0x02, 0x98, 0x02, 0x22, 0x42, 0x54, 0x00, 0xF0, 0x09, 0xFB, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43 + .byte 0xF8, 0xBD, 0x00, 0x28, 0x12, 0xD0, 0xBC, 0x42, 0x09, 0xDB, 0xA6, 0x49, 0x02, 0x98, 0x01, 0x22 + .byte 0x42, 0x54, 0x00, 0xF0, 0xFB, 0xFA, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x30, 0x1C + .byte 0x02, 0xF0, 0x5C, 0xF9, 0x60, 0x1C, 0x00, 0x04, 0x04, 0x14, 0xC2, 0xE7, 0x00, 0x20, 0x0A, 0x99 + .byte 0xC0, 0x43, 0x81, 0x42, 0x09, 0xD1, 0x9B, 0x49, 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0 + .byte 0xE5, 0xFA, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x58, 0x20, 0xFF, 0xF7, 0x3E, 0xFD + .byte 0xE8, 0x60, 0x00, 0x28, 0x09, 0xD1, 0x93, 0x49, 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0 + .byte 0xD5, 0xFA, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x00, 0x21, 0x58, 0x22, 0x01, 0xF0 + .byte 0x75, 0xFD, 0x00, 0x24, 0x00, 0x2F, 0x20, 0xDD, 0xE9, 0x68, 0x1D, 0xA8, 0x02, 0xF0, 0x46, 0xF8 + .byte 0x00, 0x21, 0xC9, 0x43, 0x88, 0x42, 0x09, 0xD1, 0x86, 0x49, 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54 + .byte 0x00, 0xF0, 0xBC, 0xFA, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x00, 0x28, 0x04, 0xD1 + .byte 0x0B, 0xD1, 0xE8, 0x68, 0x00, 0x68, 0x01, 0x28, 0x07, 0xD0, 0x30, 0x1C, 0x02, 0xF0, 0x16, 0xF9 + .byte 0x60, 0x1C, 0x00, 0x04, 0x04, 0x14, 0xBC, 0x42, 0xDE, 0xDB, 0xBC, 0x42, 0x09, 0xD1, 0x79, 0x49 + .byte 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0, 0xA1, 0xFA, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43 + .byte 0xF8, 0xBD, 0x68, 0x6B, 0xA9, 0x6B, 0x00, 0xF0, 0x8D, 0xFA, 0xA9, 0x6B, 0x02, 0x1C, 0x07, 0x90 + .byte 0x01, 0xF0, 0xE6, 0xFC, 0x00, 0x28, 0x0C, 0xD0, 0x0C, 0x20, 0x00, 0xF0, 0xD1, 0xFA, 0x6D, 0x49 + .byte 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0, 0x89, 0xFA, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43 + .byte 0xF8, 0xBD, 0x6A, 0x48, 0x01, 0x21, 0x01, 0x77, 0x00, 0xF0, 0x80, 0xFA, 0x02, 0x20, 0x01, 0x1C + .byte 0x00, 0x22, 0x01, 0xF0, 0x67, 0xFD, 0x62, 0x49, 0x00, 0x28, 0x08, 0x60, 0x09, 0xDA, 0x61, 0x49 + .byte 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0, 0x71, 0xFA, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43 + .byte 0xF8, 0xBD, 0x04, 0x21, 0x00, 0x91, 0x5E, 0x49, 0x01, 0x22, 0x15, 0xAB, 0x01, 0xF0, 0x50, 0xFD + .byte 0x00, 0x28, 0x0C, 0xDA, 0x0B, 0x20, 0x00, 0xF0, 0xA3, 0xFA, 0x56, 0x49, 0x02, 0x98, 0x0F, 0x22 + .byte 0x42, 0x54, 0x00, 0xF0, 0x5B, 0xFA, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x0B, 0xA8 + .byte 0x00, 0x21, 0x08, 0x22, 0x01, 0xF0, 0xFA, 0xFC, 0x02, 0x21, 0x0B, 0xA8, 0x41, 0x70, 0x07, 0x98 + .byte 0x01, 0xF0, 0x46, 0xFD, 0x0C, 0x90, 0x4F, 0x48, 0x01, 0xF0, 0x56, 0xFD, 0x0B, 0xA9, 0x48, 0x80 + .byte 0x47, 0x48, 0x0B, 0xA9, 0x00, 0x68, 0x08, 0x22, 0x01, 0xF0, 0x30, 0xFD, 0x00, 0x28, 0x09, 0xDA + .byte 0x44, 0x49, 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0, 0x38, 0xFA, 0x00, 0x20, 0x32, 0xB0 + .byte 0xC0, 0x43, 0xF8, 0xBD, 0x3E, 0x4B, 0x09, 0x98, 0x1B, 0x68, 0x18, 0xA9, 0x2C, 0xAA, 0x01, 0xF0 + .byte 0x73, 0xF8, 0x00, 0x21, 0xC9, 0x43, 0x88, 0x42, 0x0F, 0xD1, 0x01, 0x21, 0x09, 0x98, 0x09, 0x03 + .byte 0x40, 0x18, 0x00, 0xF0, 0x65, 0xFA, 0x37, 0x49, 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0 + .byte 0x1D, 0xFA, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x06, 0x98, 0x36, 0x4A, 0x00, 0x21 + .byte 0x01, 0xF0, 0xBC, 0xFC, 0x0F, 0xA8, 0x01, 0xF0, 0x8D, 0xFD, 0x2D, 0x48, 0x0F, 0xA9, 0x00, 0x68 + .byte 0x01, 0xF0, 0x8E, 0xFD, 0x05, 0x98, 0x00, 0x22, 0x0D, 0x90, 0x04, 0x98, 0x0F, 0xA9, 0x0E, 0x90 + .byte 0x0D, 0xA8, 0x00, 0x90, 0x26, 0x48, 0x13, 0x1C, 0x00, 0x68, 0x40, 0x1C, 0x01, 0xF0, 0xB6, 0xFC + .byte 0x00, 0x28, 0x1F, 0xDC, 0x14, 0x98, 0x0B, 0xA9, 0x42, 0x1C, 0x14, 0x92, 0x2C, 0x20, 0x08, 0x5E + .byte 0x82, 0x42, 0x12, 0xDD, 0x09, 0x98, 0x00, 0x28, 0x03, 0xD1, 0x0F, 0x20, 0x00, 0xF0, 0x30, 0xFA + .byte 0x08, 0xE0, 0x01, 0x28, 0x03, 0xD1, 0x10, 0x20, 0x00, 0xF0, 0x2A, 0xFA, 0x02, 0xE0, 0x11, 0x20 + .byte 0x00, 0xF0, 0x26, 0xFA, 0x00, 0x25, 0xED, 0x43, 0x73, 0xE1, 0x2E, 0x20, 0x08, 0x5E, 0x02, 0xF0 + .byte 0x45, 0xF8, 0x61, 0xE6, 0x08, 0x20, 0x11, 0x90, 0x12, 0xA8, 0x00, 0x90, 0x11, 0xA8, 0x01, 0x90 + .byte 0x0F, 0x48, 0x06, 0x99, 0x00, 0x68, 0x15, 0x4A, 0x0C, 0x31, 0x00, 0x23, 0x01, 0xF0, 0x7C, 0xFC + .byte 0x0B, 0x49, 0x00, 0x04, 0x0A, 0x68, 0x06, 0x99, 0x00, 0x0C, 0x0A, 0x60, 0x01, 0xF0, 0xF4, 0xFC + .byte 0x06, 0x99, 0x14, 0xAA, 0x48, 0x60, 0x06, 0x48, 0x2C, 0xAB, 0x00, 0x68, 0x00, 0x90, 0x09, 0x98 + .byte 0x00, 0xF0, 0xA6, 0xFB, 0x08, 0x90, 0x64, 0x28, 0x12, 0xD1, 0x00, 0x25, 0x49, 0xE1, 0xC0, 0x46 + .byte 0x64, 0x2F, 0x35, 0x02, 0x16, 0x01, 0x00, 0x00, 0x40, 0x85, 0x35, 0x02, 0x5C, 0x85, 0x35, 0x02 + .byte 0xFF, 0xFF, 0x00, 0x00, 0x90, 0x57, 0x00, 0x00, 0xF8, 0x05, 0x00, 0x00, 0xDC, 0x05, 0x00, 0x00 + .byte 0x00, 0x25, 0xED, 0x43, 0xA8, 0x42, 0x00, 0xD1, 0x33, 0xE1, 0x09, 0x99, 0x81, 0x42, 0x00, 0xD1 + .byte 0x10, 0xE1, 0x02, 0x28, 0x00, 0xD0, 0x0A, 0xE1, 0xC0, 0x48, 0x00, 0x68, 0xA8, 0x42, 0x01, 0xD0 + .byte 0x01, 0xF0, 0x8A, 0xFC, 0x00, 0x21, 0xBD, 0x48, 0xC9, 0x43, 0x01, 0x60, 0x01, 0xF0, 0x0C, 0xFC + .byte 0x00, 0x28, 0x09, 0xD0, 0xBA, 0x49, 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0, 0x86, 0xF9 + .byte 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x04, 0x20, 0x00, 0x24, 0x00, 0xF0, 0x52, 0xFB + .byte 0x0B, 0xA9, 0x30, 0x20, 0x0F, 0x5E, 0xB3, 0x4D, 0x68, 0x68, 0x00, 0x28, 0x03, 0xD0, 0xFF, 0xF7 + .byte 0xDD, 0xFB, 0x00, 0x20, 0x68, 0x60, 0xB0, 0x48, 0x01, 0xF0, 0x34, 0xFE, 0x00, 0x21, 0xC9, 0x43 + .byte 0x88, 0x42, 0x09, 0xD1, 0xAA, 0x49, 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0, 0x66, 0xF9 + .byte 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x68, 0x68, 0x00, 0xF0, 0xBB, 0xFA, 0x04, 0x28 + .byte 0x09, 0xD1, 0xA3, 0x49, 0x02, 0x98, 0x02, 0x22, 0x42, 0x54, 0x00, 0xF0, 0x57, 0xF9, 0x00, 0x20 + .byte 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x00, 0x28, 0x12, 0xD0, 0xBC, 0x42, 0x09, 0xDB, 0x9C, 0x49 + .byte 0x02, 0x98, 0x01, 0x22, 0x42, 0x54, 0x00, 0xF0, 0x49, 0xF9, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43 + .byte 0xF8, 0xBD, 0x30, 0x1C, 0x01, 0xF0, 0xAA, 0xFF, 0x60, 0x1C, 0x00, 0x04, 0x04, 0x14, 0xC3, 0xE7 + .byte 0x58, 0x20, 0xFF, 0xF7, 0x9B, 0xFB, 0x93, 0x49, 0x00, 0x28, 0xC8, 0x60, 0x09, 0xD1, 0x90, 0x49 + .byte 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0, 0x31, 0xF9, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43 + .byte 0xF8, 0xBD, 0x00, 0x21, 0x58, 0x22, 0x01, 0xF0, 0xD1, 0xFB, 0x0B, 0xA9, 0x30, 0x20, 0x0D, 0x5E + .byte 0x00, 0x24, 0x00, 0x2D, 0x21, 0xDD, 0x87, 0x4F, 0xF9, 0x68, 0x1D, 0xA8, 0x01, 0xF0, 0x9E, 0xFE + .byte 0x00, 0x21, 0xC9, 0x43, 0x88, 0x42, 0x09, 0xD1, 0x81, 0x49, 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54 + .byte 0x00, 0xF0, 0x14, 0xF9, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x00, 0x28, 0x04, 0xD1 + .byte 0x0B, 0xD1, 0xF8, 0x68, 0x00, 0x68, 0x01, 0x28, 0x07, 0xD0, 0x30, 0x1C, 0x01, 0xF0, 0x6E, 0xFF + .byte 0x60, 0x1C, 0x00, 0x04, 0x04, 0x14, 0xAC, 0x42, 0xDE, 0xDB, 0x0B, 0xA8, 0x30, 0x21, 0x40, 0x5E + .byte 0x84, 0x42, 0x09, 0xD1, 0x02, 0x98, 0x0F, 0x22, 0xE6, 0x31, 0x42, 0x54, 0x00, 0xF0, 0xF6, 0xF8 + .byte 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x6E, 0x49, 0x07, 0x98, 0x89, 0x6B, 0x02, 0x1C + .byte 0x01, 0xF0, 0x3E, 0xFB, 0x00, 0x28, 0x0C, 0xD0, 0x0C, 0x20, 0x00, 0xF0, 0x29, 0xF9, 0x68, 0x49 + .byte 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0, 0xE1, 0xF8, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43 + .byte 0xF8, 0xBD, 0x00, 0xF0, 0xDB, 0xF8, 0x02, 0x20, 0x01, 0x1C, 0x00, 0x22, 0x01, 0xF0, 0xC2, 0xFB + .byte 0x5E, 0x49, 0x00, 0x28, 0x08, 0x60, 0x09, 0xDA, 0x5D, 0x49, 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54 + .byte 0x00, 0xF0, 0xCC, 0xF8, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x04, 0x21, 0x00, 0x91 + .byte 0x5A, 0x49, 0x01, 0x22, 0x15, 0xAB, 0x01, 0xF0, 0xAB, 0xFB, 0x00, 0x28, 0x0C, 0xDA, 0x0B, 0x20 + .byte 0x00, 0xF0, 0xFE, 0xF8, 0x52, 0x49, 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0, 0xB6, 0xF8 + .byte 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x0B, 0xA8, 0x00, 0x21, 0x08, 0x22, 0x01, 0xF0 + .byte 0x55, 0xFB, 0x02, 0x21, 0x0B, 0xA8, 0x41, 0x70, 0x07, 0x98, 0x01, 0xF0, 0xA1, 0xFB, 0x0C, 0x90 + .byte 0x4B, 0x48, 0x01, 0xF0, 0xB1, 0xFB, 0x0B, 0xA9 + + arm_func_start ov02_0232E768 +ov02_0232E768: @ 0x0232E768 + stmdami r4, {r3, r6, pc} ^ + stmdavs r0, {r0, r1, r3, r8, fp, sp, pc} + arm_func_end ov02_0232E768 +_0232E770: + .byte 0x08, 0x22, 0x01, 0xF0, 0x8B, 0xFB, 0x00, 0x28, 0x09, 0xDA, 0x41, 0x49, 0x02, 0x98, 0x0F, 0x22 + .byte 0x42, 0x54, 0x00, 0xF0, 0x93, 0xF8, 0x00, 0x20, 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x08, 0x98 + .byte 0x09, 0x90, 0xF2, 0xE4, 0x09, 0x90, 0x0B, 0xA9, 0x2C, 0x20, 0x08, 0x5E, 0x14, 0x9A, 0x82, 0x42 + .byte 0x12, 0xDD, 0x08, 0x98, 0x00, 0x28, 0x03, 0xD1, 0x0F, 0x20, 0x00, 0xF0, 0xC1, 0xF8, 0x08, 0xE0 + .byte 0x01, 0x28, 0x03, 0xD1, 0x10, 0x20, 0x00, 0xF0, 0xBB, 0xF8, 0x02, 0xE0, 0x11, 0x20, 0x00, 0xF0 + + arm_func_start ov02_0232E7C0 +ov02_0232E7C0: @ 0x0232E7C0 + strhs pc, [r0, #-0x8b7] + and r4, r4, sp, ror #7 + .word 0x5E08202E + .word 0xFED6F001 + stmdami sl!, {r0, r1, r4, r6, r7, sl, sp, lr, pc} + stmdavs r0, {r8, sp} + addmi r4, r8, #0x24000003 + arm_func_end ov02_0232E7C0 +_0232E7DC: + .byte 0x01, 0xD0, 0x01, 0xF0 + .byte 0x5B, 0xFB, 0x00, 0x21, 0x25, 0x48, 0xC9, 0x43 + + arm_func_start ov02_0232E7E8 +ov02_0232E7E8: @ 0x0232E7E8 + arm_func_end ov02_0232E7E8 +_0232E7E8: + .byte 0x01, 0x60, 0x01, 0xF0, 0xDD, 0xFA, 0x00, 0x28 + .byte 0x09, 0xD0, 0x23, 0x49, 0x02, 0x98, 0x0F, 0x22, 0x42, 0x54, 0x00, 0xF0, 0x57, 0xF8, 0x00, 0x20 + .byte 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x00, 0x2D, 0x25, 0xD0, 0x00, 0xF0, 0x97, 0xF8, 0x0F, 0x38 + .byte 0x06, 0x28, 0x16, 0xD8, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88, 0x00, 0x04, 0x00, 0x14, 0x87, 0x44 + .byte 0x0C, 0x00, 0x10, 0x00, 0x14, 0x00, 0x20, 0x00, 0x20, 0x00, 0x18, 0x00, 0x1C, 0x00, 0x03, 0x22 + .byte 0x08, 0xE0, 0x04, 0x22, 0x06, 0xE0, 0x05, 0x22, 0x04, 0xE0, 0x07, 0x22, 0x02, 0xE0, 0x08, 0x22 + .byte 0x00, 0xE0, 0x0F, 0x22, 0x0E, 0x49, 0x02, 0x98, 0x42, 0x54, 0x00, 0xF0, 0x2F, 0xF8, 0x00, 0x20 + .byte 0x32, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x02, 0x98, 0x00, 0xF0, 0x76, 0xF8, 0x00, 0x28, 0x09, 0xD0 + .byte 0x07, 0x49, 0x02, 0x98, 0x06, 0x22, 0x42, 0x54, 0x00, 0xF0, 0x20, 0xF8, 0x00, 0x20, 0x32, 0xB0 + .byte 0xC0, 0x43, 0xF8, 0xBD, 0x00, 0x20, 0x32, 0xB0, 0xF8, 0xBD, 0xC0, 0x46, 0x64, 0x2F, 0x35, 0x02 + .byte 0x16, 0x01, 0x00, 0x00, 0x3C, 0x85, 0x35, 0x02, 0x40, 0x85, 0x35, 0x02, 0xFF, 0xFF, 0x00, 0x00 + .byte 0x90, 0x57, 0x00, 0x00 + + arm_func_start ov02_0232E894 +ov02_0232E894: @ 0x0232E894 + andmi r1, sl, r2, lsl #24 + andmi r4, r8, sb, asr #7 + tstmi r0, #64, #24 + addmi r4, r8, #0x44000000 + andhs sp, r1, r1, lsl #6 + arm_func_end ov02_0232E894 +_0232E8A8: + .byte 0x10, 0x43, 0x70, 0x47 + + arm_func_start ov02_0232E8AC +ov02_0232E8AC: @ 0x0232E8AC + stmdami sb, {r3, r8, sl, ip, sp, pc} + stmdahs r0, {r6, r7, fp, sp, lr} + arm_func_end ov02_0232E8AC +_0232E8B4: + .byte 0x04, 0xD0, 0xFF, 0xF7, 0x61, 0xFA, 0x06, 0x48, 0x00, 0x21, 0xC1, 0x60 + .byte 0x04, 0x48, 0x40, 0x68, 0x00, 0x28, 0x04, 0xD0, 0xFF, 0xF7, 0x58, 0xFA, 0x01, 0x48, 0x00, 0x21 + .byte 0x41, 0x60, 0x08, 0xBD, 0x3C, 0x85, 0x35, 0x02 + + arm_func_start ov02_0232E8D8 +ov02_0232E8D8: @ 0x0232E8D8 + arm_func_end ov02_0232E8D8 +_0232E8D8: + .byte 0x10, 0xB5, 0x04, 0x1C, 0x0F, 0x48, 0x00, 0x21 + .byte 0x08, 0x22, 0x01, 0xF0, 0x8B, 0xFA, 0x0E, 0x48, 0x01, 0x21, 0x01, 0x61, 0x0D, 0x48, 0x00, 0x21 + .byte 0x1C, 0x22, 0x01, 0xF0, 0x83, 0xFA, 0x0A, 0x49, 0xA0, 0x1D, 0x48, 0x62, 0xA0, 0x88, 0x00, 0x23 + .byte 0x88, 0x62, 0x22, 0x88, 0x0F, 0x20, 0x10, 0x40, 0xC8, 0x62, 0xA2, 0x78, 0x06, 0x48, 0x42, 0x77 + .byte 0x06, 0x4A, 0x0B, 0x63, 0x4A, 0x63, 0x03, 0x77, 0x10, 0xBD, 0xC0, 0x46, 0x9C, 0x92, 0x35, 0x02 + .byte 0x3C, 0x85, 0x35, 0x02, 0x60, 0x85, 0x35, 0x02, 0x5C, 0x85, 0x35, 0x02, 0x01, 0x0B, 0xA8, 0xC0 + + arm_func_start ov02_0232E930 +ov02_0232E930: @ 0x0232E930 + arm_func_end ov02_0232E930 +_0232E930: + .byte 0x01, 0x49, 0x08, 0x61, 0x70, 0x47, 0xC0, 0x46, 0x3C, 0x85, 0x35, 0x02 + + arm_func_start ov02_0232E93C +ov02_0232E93C: @ 0x0232E93C + stmdbvs r0, {r0, fp, lr} + uxtab16mi r4, r0, r0, ror #8 + eorseq r8, r5, #60, #10 + strdlt fp, ip, [r2], r8 + ldmdami r4!, {r0, r1, r2, sl, fp, ip} ^ + andls r4, r1, r4, ror sl + ldmne ip!, {r2, r4, r5, r6, fp, lr} + ldclmi p14, c4, [r5, #-0x1d0]! + mrsle sb, apsr + andlt r2, r2, r0 + ldcllt p3, c4, [r8, #0x300]! + eorslo r4, sp, #0x1c8000 + blvs FUN_02589494 + eorshi r4, r8, r8 + arm_func_end ov02_0232E93C +_0232E974: + .byte 0x20, 0x1C, 0x00, 0x21, 0x01, 0xF0, 0x40, 0xFA, 0x39, 0x88, 0x01, 0x20 + .byte 0x08, 0x42, 0x30, 0xD0, 0x31, 0x1C, 0x72, 0x68, 0x20, 0x1C, 0x30, 0x31, 0x01, 0xF0, 0x2E, 0xFA + .byte 0x31, 0x1C, 0x72, 0x68, 0xA0, 0x1D, 0x70, 0x31, 0x01, 0xF0, 0x28, 0xFA, 0x20, 0x1C, 0x31, 0x1C + .byte 0x72, 0x68, 0x0C, 0x30, 0xB0, 0x31, 0x01, 0xF0, 0x21, 0xFA, 0x20, 0x1C, 0x31, 0x1C, 0x72, 0x68 + .byte 0x12, 0x30, 0xF0, 0x31, 0x01, 0xF0, 0x1A, 0xFA, 0x30, 0x1C, 0x08, 0x30, 0x01, 0xF0, 0xB0, 0xFA + .byte 0x01, 0x1C, 0x30, 0x1C, 0x08, 0x30, 0x00, 0xF0, 0xBB, 0xF8, 0x00, 0x28, 0x00, 0xD0, 0x9D, 0xE0 + .byte 0x30, 0x1C, 0x08, 0x30, 0x01, 0xF0, 0xA4, 0xFA, 0x02, 0x1C, 0x20, 0x1C, 0x08, 0x36, 0x18, 0x30 + .byte 0x31, 0x1C, 0x01, 0xF0, 0x03, 0xFA, 0x39, 0x88, 0x02, 0x20, 0x08, 0x42, 0x31, 0xD0, 0x20, 0x1C + .byte 0x29, 0x1C, 0x6A, 0x68, 0x39, 0x30, 0x30, 0x31, 0x01, 0xF0, 0xF8, 0xF9, 0x20, 0x1C, 0x29, 0x1C + .byte 0x6A, 0x68, 0x47, 0x30, 0x70, 0x31, 0x01, 0xF0, 0xF1, 0xF9, 0x20, 0x1C, 0x29, 0x1C, 0x6A, 0x68 + .byte 0x55, 0x30, 0xB0, 0x31, 0x01, 0xF0, 0xEA, 0xF9, 0x20, 0x1C, 0x29, 0x1C, 0x6A, 0x68, 0x63, 0x30 + .byte 0xF0, 0x31, 0x01, 0xF0, 0xE3, 0xF9, 0x28, 0x1C, 0x08, 0x30, 0x01, 0xF0, 0x79, 0xFA, 0x01, 0x1C + + arm_func_start ov02_0232EA30 +ov02_0232EA30: @ 0x0232EA30 + andlo r1, r8, r8, lsr #24 + arm_func_end ov02_0232EA30 +_0232EA34: + .byte 0x00, 0xF0, 0x84, 0xF8, 0x00, 0x28, 0x67, 0xD1, 0x28, 0x1C, 0x08, 0x30 + .byte 0x01, 0xF0, 0x6E, 0xFA, 0x02, 0x1C, 0x20, 0x1C, 0x08, 0x35, 0x71, 0x30, 0x29, 0x1C, 0x01, 0xF0 + .byte 0xCD, 0xF9, 0x39, 0x88, 0x04, 0x20, 0x08, 0x42, 0x27, 0xD0, 0x01, 0x99, 0x01, 0x98, 0x49, 0x68 + .byte 0x30, 0x30, 0x49, 0x1E, 0x00, 0xF0, 0x6C, 0xF8, 0x00, 0x28, 0x4F, 0xD1, 0x01, 0x9A, 0x01, 0x99 + .byte 0x20, 0x1C, 0x52, 0x68, 0x92, 0x30, 0x30, 0x31, 0x01, 0xF0, 0xB8, 0xF9, 0x01, 0x98, 0x08, 0x30 + .byte 0x01, 0xF0, 0x4E, 0xFA, 0x01, 0x1C, 0x01, 0x98, 0x08, 0x30, 0x00, 0xF0, 0x59, 0xF8, 0x00, 0x28 + .byte 0x3C, 0xD1, 0x01, 0x98, 0x08, 0x30, 0x01, 0xF0, 0x43, 0xFA, 0x01, 0x99, 0x02, 0x1C, 0x20, 0x1C + .byte 0x08, 0x31, 0xD2, 0x30, 0x01, 0x91, 0x01, 0xF0, 0xA1, 0xF9, 0x39, 0x88, 0x08, 0x20, 0x08, 0x42 + .byte 0x27, 0xD0, 0x00, 0x99, 0x00, 0x98, 0x49, 0x68, 0x30, 0x30, 0x49, 0x1E, 0x00, 0xF0, 0x40, 0xF8 + .byte 0x00, 0x28, 0x23, 0xD1, 0x00, 0x9A, 0x00, 0x99, 0x20, 0x1C, 0x52, 0x68, 0xF3, 0x30, 0x30, 0x31 + .byte 0x01, 0xF0, 0x8C, 0xF9, 0x00, 0x98, 0x08, 0x30, 0x01, 0xF0, 0x22, 0xFA, 0x01, 0x1C, 0x00, 0x98 + .byte 0x08, 0x30, 0x00, 0xF0, 0x2D, 0xF8, 0x00, 0x28, 0x10, 0xD1, 0x00, 0x98, 0x08, 0x30, 0x01, 0xF0 + .byte 0x17, 0xFA, 0x02, 0x1C, 0x10, 0x48, 0x00, 0x99, 0x20, 0x18, 0x08, 0x31, 0x00, 0x91, 0x01, 0xF0 + .byte 0x75, 0xF9, 0x0E, 0x49, 0x00, 0x20, 0x02, 0xB0, 0x78, 0x54, 0xF8, 0xBD, 0x55, 0x22, 0x20, 0x1C + .byte 0x00, 0x21, 0x92, 0x00, 0x01, 0xF0, 0x72, 0xF9, 0x00, 0x20, 0xC0, 0x43, 0x02, 0xB0, 0xF8, 0xBD + .byte 0x64, 0x8E, 0x35, 0x02, 0x17, 0x01, 0x00, 0x00, 0xD4, 0x8E, 0x35, 0x02, 0x04, 0x8C, 0x35, 0x02 + .byte 0x34, 0x8D, 0x35, 0x02, 0x3C, 0x85, 0x35, 0x02, 0x33, 0x01, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00 + .byte 0x00, 0x23, 0x00, 0x29, 0x0B, 0xDD, 0x02, 0x78, 0x40, 0x1C, 0x20, 0x2A, 0x01, 0xD3, 0x7F, 0x2A + .byte 0x02, 0xD9, 0x00, 0x20, 0xC0, 0x43, 0x70, 0x47, 0x5B, 0x1C, 0x8B, 0x42, 0xF3, 0xDB, 0x00, 0x20 + .byte 0x70, 0x47, 0x00, 0x00 + + arm_func_start ov02_0232EB64 +ov02_0232EB64: @ 0x0232EB64 + strdlt fp, ip, [r2], r8 + stmdavs r8!, {r0, r2, sl, fp, ip} + strls r2, [r1], #-0x400 + stmdahs r0, {ip, pc} + andlt sp, r2, r2, lsl #2 + ldcllt p0, c2, [r8, #0x14]! + stmdble r1, {r6, fp, sp} + andls r2, r0, r0, asr #32 + strhs sb, [r0, -r0, lsl #16] + ldcle p8, c2, [ip, #-0] + strlo r1, [r8], -lr, lsr #24 + andhs r6, r1, sb, ror #26 + andsle r4, r0, r8, lsl #4 + arm_func_end ov02_0232EB64 +_0232EB98: + .byte 0x10, 0x48, 0x01, 0xF0, 0xC1, 0xF9, 0x69, 0x68 + .byte 0x81, 0x42, 0x0A, 0xD1, 0x0D, 0x48, 0x01, 0xF0, 0xBB, 0xF9, 0x02, 0x1C, 0x0B, 0x49, 0x30, 0x1C + .byte 0x01, 0xF0, 0x0C, 0xF9, 0x00, 0x28, 0x00, 0xD1, 0x64, 0x1C, 0x00, 0x98, 0x7F, 0x1C, 0x54, 0x35 + .byte 0x54, 0x36, 0x87, 0x42, 0xE4, 0xDB, 0x01, 0x2C, 0x01, 0xDD, 0x04, 0x20, 0x01, 0x90, 0x00, 0x2C + .byte 0x01, 0xD1, 0x05, 0x20, 0x01, 0x90, 0x01, 0x98, 0x02, 0xB0, 0xF8, 0xBD, 0xC4, 0x2F, 0x35, 0x02 + + arm_func_start ov02_0232EBE0 +ov02_0232EBE0: @ 0x0232EBE0 + arm_func_end ov02_0232EBE0 +_0232EBE0: + .byte 0x10, 0xB5, 0x04, 0x1C, 0x0D, 0x48, 0x01, 0xF0, 0x9B, 0xF9, 0x20, 0x60, 0x0B, 0x49, 0x22, 0x68 + .byte 0x20, 0x1D, 0x01, 0xF0, 0xFB, 0xF8, 0x01, 0x20, 0x60, 0x62, 0x09, 0x48, 0x01, 0xF0, 0x90, 0xF9 + .byte 0x02, 0x1C, 0xA0, 0x62, 0x0D, 0x2A, 0x02, 0xD9, 0x00, 0x20, 0xC0, 0x43, 0x10, 0xBD, 0x2C, 0x34 + .byte 0x03, 0x49, 0x20, 0x1C, 0x01, 0xF0, 0xEA, 0xF8, 0x00, 0x20, 0x10, 0xBD, 0xC4, 0x2F, 0x35, 0x02 + .byte 0xD0, 0x2F, 0x35, 0x02 + + arm_func_start ov02_0232EC24 +ov02_0232EC24: @ 0x0232EC24 + arm_func_end ov02_0232EC24 +_0232EC24: + .byte 0xF8, 0xB5, 0x06, 0x1C, 0x0D, 0x1C, 0x17, 0x1C, 0x00, 0x24, 0x00, 0x2E + + arm_func_start ov02_0232EC30 +ov02_0232EC30: @ 0x0232EC30 + stcne p13, c13, [r8], #-0x3c + andhs r1, r6, #0x3900 + arm_func_end ov02_0232EC30 +_0232EC38: + .byte 0x01, 0xF0, 0xD8, 0xF8, 0x01, 0xF0, 0x7A, 0xF9 + .byte 0xE8, 0x80, 0xE8, 0x88, 0x01, 0xF0, 0x40, 0xF9, 0xE8, 0x80, 0x64, 0x1C, 0x08, 0x35, 0xB4, 0x42 + .byte 0xEF, 0xDB, 0xF8, 0xBD + + arm_func_start ov02_0232EC54 +ov02_0232EC54: @ 0x0232EC54 + arm_func_end ov02_0232EC54 +_0232EC54: + .byte 0x08, 0xB5, 0x00, 0x21, 0xC9, 0x43, 0x88, 0x42, 0x03, 0xD1, 0x07, 0x49 + .byte 0x48, 0x60, 0x00, 0x20, 0x08, 0xBD, 0x05, 0x49, 0x4A, 0x68, 0x82, 0x42, 0x03, 0xD0, 0x48, 0x60 + .byte 0x01, 0xF0, 0x88, 0xFC, 0x08, 0xBD, 0x00, 0x20, 0x08, 0xBD, 0xC0, 0x46, 0x64, 0x2F, 0x35, 0x02 + + arm_func_start ov02_0232EC80 +ov02_0232EC80: @ 0x0232EC80 + arm_func_end ov02_0232EC80 +_0232EC80: + .byte 0xF8, 0xB5, 0x0E, 0x1C, 0x05, 0x1C, 0xB0, 0x89, 0x37, 0x1C, 0x14, 0x1C, 0x00, 0x93, 0x0C, 0x37 + .byte 0x01, 0xF0, 0x3A, 0xF9, 0x01, 0x28, 0x04, 0xD2, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x28, 0x1C + .byte 0xF8, 0xBD, 0xF8, 0x7B, 0x11, 0x28, 0x04, 0xD0, 0x20, 0x68, 0x40, 0x1C, 0x20, 0x60, 0x28, 0x1C + .byte 0xF8, 0xBD, 0x30, 0x1C, 0x0C, 0x30, 0x00, 0xF0, 0x5F, 0xF9, 0x00, 0x28, 0x04, 0xDD, 0x20, 0x68 + .byte 0x40, 0x1C, 0x20, 0x60, 0x28, 0x1C, 0xF8, 0xBD, 0xF8, 0x88, 0x01, 0xF0, 0x1D, 0xF9, 0x11, 0x49 + .byte 0x88, 0x42, 0x06, 0xD0, 0x10, 0x49, 0x88, 0x42, 0x0B, 0xD0, 0x10, 0x49, 0x88, 0x42, 0x10, 0xD0 + .byte 0x16, 0xE0, 0x00, 0x9B, 0x28, 0x1C, 0x31, 0x1C, 0x22, 0x1C, 0x00, 0xF0, 0x19, 0xF8, 0x05, 0x1C + .byte 0x0E, 0xE0, 0x00, 0x9B, 0x28, 0x1C, 0x31, 0x1C, 0x22, 0x1C, 0x00, 0xF0, 0x7F, 0xF8, 0x05, 0x1C + .byte 0x06, 0xE0, 0x00, 0x9B, 0x28, 0x1C, 0x31, 0x1C, 0x22, 0x1C, 0x00, 0xF0, 0xE3, 0xF8, 0x05, 0x1C + .byte 0x28, 0x1C, 0xF8, 0xBD, 0x10, 0x10, 0x00, 0x00, 0x10, 0x20, 0x00, 0x00, 0x10, 0x30, 0x00, 0x00 + + arm_func_start ov02_0232ED20 +ov02_0232ED20: @ 0x0232ED20 + arm_func_end ov02_0232ED20 +_0232ED20: + .byte 0xF8, 0xB5, 0x06, 0x1C, 0x15, 0x1C, 0x00, 0x2E, 0x03, 0xD0, 0x29, 0x68, 0x49, 0x1C, 0x29, 0x60 + .byte 0xF8, 0xBD, 0x0F, 0x1C, 0x0C, 0x37, 0x0C, 0x1C, 0x39, 0x1C, 0x18, 0x1C, 0x10, 0x31, 0x24, 0x34 + .byte 0x00, 0xF0, 0xB6, 0xF9, 0x00, 0x28, 0x04, 0xDA, 0x28, 0x68, 0x40, 0x1C, 0x28, 0x60, 0x30, 0x1C + .byte 0xF8, 0xBD, 0x60, 0x88, 0x01, 0xF0, 0xD8, 0xF8, 0x00, 0x28, 0x04, 0xD1 + + arm_func_start ov02_0232ED5C +ov02_0232ED5C: @ 0x0232ED5C + mcrrne p8, #2, r6, r0, c8 + ldcne p0, c6, [r0], #-0xa0 + stmdavc r0!, {r3, r4, r5, r6, r7, r8, sl, fp, ip, sp, pc} + tstle fp, r7, lsl #16 + arm_func_end ov02_0232ED5C +_0232ED6C: + .byte 0x60, 0x68, 0x01, 0xF0 + .byte 0xB7, 0xF8, 0x01, 0x21, 0xC9, 0x43, 0x88, 0x42, 0x03, 0xD1, 0x14, 0x20, 0xFF, 0xF7, 0xD8, 0xFD + .byte 0x0D, 0xE0, 0x60, 0x68 + + arm_func_start ov02_0232ED84 +ov02_0232ED84: @ 0x0232ED84 + arm_func_end ov02_0232ED84 +_0232ED84: + .byte 0x01, 0xF0, 0xAC, 0xF8, 0x02, 0x21, 0xC9, 0x43, 0x88, 0x42, 0x03, 0xD1 + .byte 0x15, 0x20, 0xFF, 0xF7, 0xCD, 0xFD, 0x02, 0xE0, 0x18, 0x20, 0xFF, 0xF7, 0xC9, 0xFD, 0x00, 0x20 + .byte 0xC0, 0x43, 0xF8, 0xBD, 0x01, 0x28, 0x04, 0xD0, 0x28, 0x68, 0x40, 0x1C, 0x28, 0x60, 0x30, 0x1C + .byte 0xF8, 0xBD, 0x10, 0x49, 0x20, 0x1D, 0x00, 0xF0, 0xA1, 0xF9, 0x00, 0x28, 0x0E, 0xDA, 0x01, 0x21 + .byte 0xC9, 0x43, 0x88, 0x42, 0x05, 0xD1, 0x16, 0x20, 0xFF, 0xF7, 0xB2, 0xFD, 0x00, 0x20, 0xC0, 0x43 + .byte 0xF8, 0xBD, 0x28, 0x68, 0x40, 0x1C, 0x28, 0x60, 0x30, 0x1C, 0xF8, 0xBD, 0xB8, 0x89, 0x01, 0xF0 + .byte 0x93, 0xF8, 0x00, 0xF0, 0xA1, 0xFB, 0x04, 0x49, 0x08, 0x60, 0x00, 0x20, 0x28, 0x60, 0x01, 0x20 + .byte 0xF8, 0xBD, 0xC0, 0x46, 0x7C, 0x85, 0x35, 0x02, 0x3C, 0x85, 0x35, 0x02 + + arm_func_start ov02_0232EDFC +ov02_0232EDFC: @ 0x0232EDFC + arm_func_end ov02_0232EDFC +_0232EDFC: + .byte 0xF8, 0xB5, 0x06, 0x1C + .byte 0x15, 0x1C, 0x01, 0x2E, 0x03, 0xD0, 0x29, 0x68, 0x49, 0x1C, 0x29, 0x60, 0xF8, 0xBD, 0x0F, 0x1C + .byte 0x0C, 0x37, 0x0C, 0x1C, 0x08, 0x33, 0x39, 0x1C, 0x18, 0x1C, 0x10, 0x31, 0x24, 0x34, 0x00, 0xF0 + .byte 0x47, 0xF9, 0x00, 0x28, 0x04, 0xDA, 0x28, 0x68, 0x40, 0x1C, 0x28, 0x60, 0x30, 0x1C, 0xF8, 0xBD + .byte 0x60, 0x88, 0x01, 0xF0, 0x69, 0xF8, 0x00, 0x28, 0x04, 0xD1, 0x28, 0x68, 0x40, 0x1C, 0x28, 0x60 + .byte 0x30, 0x1C, 0xF8, 0xBD, 0x20, 0x78, 0x07, 0x28, 0x1B, 0xD1, 0x60, 0x68, 0x01, 0xF0, 0x48, 0xF8 + .byte 0x01, 0x21, 0xC9, 0x43, 0x88, 0x42, 0x03, 0xD1, 0x14, 0x20, 0xFF, 0xF7, 0x69, 0xFD, 0x0D, 0xE0 + .byte 0x60, 0x68, 0x01, 0xF0, 0x3D, 0xF8, 0x02, 0x21, 0xC9, 0x43, 0x88, 0x42, 0x03, 0xD1, 0x15, 0x20 + .byte 0xFF, 0xF7, 0x5E, 0xFD, 0x02, 0xE0, 0x18, 0x20, 0xFF, 0xF7, 0x5A, 0xFD, 0x00, 0x20, 0xC0, 0x43 + .byte 0xF8, 0xBD, 0x6A, 0x22, 0x10, 0x48, 0x00, 0x21, 0x12, 0x01, 0x00, 0xF0, 0xB7, 0xFF, 0x78, 0x89 + .byte 0x01, 0xF0, 0x3A, 0xF8, 0x02, 0x1C, 0x0D, 0x48, 0x0B, 0x4B, 0x00, 0x90, 0x00, 0x20, 0x21, 0x1C + .byte 0x00, 0xF0, 0xBA, 0xFA, 0x00, 0x28, 0x04, 0xDA, 0x28, 0x68, 0x40, 0x1C, 0x28, 0x60, 0x30, 0x1C + .byte 0xF8, 0xBD, 0x07, 0x48, 0x01, 0x6B, 0xC0, 0x6A, 0x08, 0x42, 0x01, 0xD1, 0x30, 0x1C, 0xF8, 0xBD + .byte 0x00, 0x20, 0x28, 0x60, 0x02, 0x20, 0xF8, 0xBD, 0xFC, 0x8B, 0x35, 0x02, 0x7C, 0x85, 0x35, 0x02 + .byte 0x3C, 0x85, 0x35, 0x02 + + arm_func_start ov02_0232EED4 +ov02_0232EED4: @ 0x0232EED4 + arm_func_end ov02_0232EED4 +_0232EED4: + .byte 0x70, 0xB5, 0x06, 0x1C, 0x15, 0x1C, 0x02, 0x2E, 0x03, 0xD0, 0x29, 0x68 + .byte 0x49, 0x1C, 0x29, 0x60, 0x70, 0xBD, 0x0C, 0x1C, 0x10, 0x33, 0x0C, 0x31, 0x18, 0x1C, 0x10, 0x31 + .byte 0x24, 0x34, 0x00, 0xF0, 0xDD, 0xF8, 0x00, 0x28, 0x04, 0xDA, 0x28, 0x68, 0x40, 0x1C, 0x28, 0x60 + .byte 0x30, 0x1C, 0x70, 0xBD, 0x20, 0x78, 0x07, 0x28, 0x04, 0xD0, 0x28, 0x68, 0x40, 0x1C, 0x28, 0x60 + .byte 0x30, 0x1C, 0x70, 0xBD, 0x60, 0x88, 0x00, 0xF0, 0xF7, 0xFF, 0x00, 0x28, 0x04, 0xD1, 0x28, 0x68 + .byte 0x40, 0x1C, 0x28, 0x60, 0x30, 0x1C, 0x70, 0xBD, 0x60, 0x68, 0x00, 0xF0, 0xD9, 0xFF, 0x00, 0x28 + .byte 0x01, 0xD1, 0x64, 0x20, 0x70, 0xBD, 0x60, 0x68, 0x00, 0xF0, 0xD2, 0xFF, 0x01, 0x21, 0xC9, 0x43 + .byte 0x88, 0x42, 0x05, 0xD1, 0x14, 0x20, 0xFF, 0xF7, 0xF3, 0xFC, 0x00, 0x20, 0xC0, 0x43, 0x70, 0xBD + .byte 0x60, 0x68, 0x00, 0xF0, 0xC5, 0xFF, 0x02, 0x21, 0xC9, 0x43, 0x88, 0x42, 0x05, 0xD1, 0x15, 0x20 + .byte 0xFF, 0xF7, 0xE6, 0xFC, 0x00, 0x20, 0xC0, 0x43, 0x70, 0xBD, 0x18, 0x20, 0xFF, 0xF7, 0xE0, 0xFC + .byte 0x00, 0x20, 0xC0, 0x43, 0x70, 0xBD, 0x00, 0x00 + + arm_func_start ov02_0232EF78 +ov02_0232EF78: @ 0x0232EF78 + strdlt fp, ip, [r5], r0 + stcne p12, c1, [sb], #-0x14 + stmdage r3, {r2, r3, r5, sl, fp, ip} + andhs r3, r8, #16, #2 + arm_func_end ov02_0232EF78 +_0232EF88: + .byte 0x18, 0x34, 0x00, 0xF0, 0x2F, 0xFF, 0x35, 0x48 + .byte 0x00, 0xF0, 0xC6, 0xFF, 0x03, 0x1C, 0x33, 0x4A, 0x03, 0xA8, 0x08, 0x21, 0x00, 0xF0, 0x42, 0xFE + .byte 0x00, 0x21, 0xC9, 0x43, 0x88, 0x42, 0x06, 0xD1, 0x02, 0x20, 0xFF, 0xF7, 0xC1, 0xFC, 0x63, 0x20 + .byte 0x05, 0xB0, 0xC0, 0x43, 0xF0, 0xBD, 0xE8, 0x88, 0x00, 0xF0, 0xA6, 0xFF, 0x03, 0xA9, 0x00, 0xF0 + .byte 0x55, 0xF8, 0x00, 0x28, 0x4B, 0xD1, 0xE8, 0x88, 0x00, 0xF0, 0x9E, 0xFF, 0x01, 0x21, 0x09, 0x03 + .byte 0x88, 0x42, 0x04, 0xD1, 0x24, 0x48, 0x03, 0xA9, 0x08, 0x22, 0x00, 0xF0, 0x07, 0xFF, 0xA8, 0x89 + .byte 0x00, 0xF0, 0x92, 0xFF, 0x0F, 0x21, 0x08, 0x42, 0x02, 0xD1, 0x05, 0xB0, 0x00, 0x20, 0xF0, 0xBD + .byte 0x20, 0x88, 0x00, 0xF0, 0x89, 0xFF, 0x06, 0x1C, 0xFE, 0xF7, 0xB8, 0xFE, 0x07, 0x1C, 0x05, 0xD1 + .byte 0x02, 0x20, 0xFF, 0xF7, 0x95, 0xFC, 0x05, 0xB0, 0x64, 0x20, 0xF0, 0xBD, 0xA0, 0x1C, 0x00, 0x90 + .byte 0x15, 0x48, 0x39, 0x1C, 0x01, 0x90, 0x08, 0x20, 0x02, 0x90, 0xAB, 0x7B, 0x20, 0x1D, 0x32, 0x1C + .byte 0x00, 0xF0, 0x08, 0xFD, 0x00, 0x28, 0x0C, 0xDA, 0x38, 0x1C, 0xFE, 0xF7, 0xA7, 0xFE, 0xFF, 0xF7 + .byte 0x85, 0xFC, 0x02, 0x28, 0x02, 0xD1, 0x05, 0xB0, 0x64, 0x20, 0xF0, 0xBD, 0x05, 0xB0, 0xC8, 0x20 + .byte 0xF0, 0xBD, 0x20, 0x1C, 0x39, 0x1C, 0x32, 0x1C, 0x00, 0xF0, 0xD0, 0xFE, 0x30, 0x04, 0x00, 0x0C + .byte 0x00, 0xF0, 0x3A, 0xFF, 0x68, 0x81, 0x38, 0x1C, 0xFE, 0xF7, 0x90, 0xFE, 0x00, 0x20, 0x05, 0xB0 + .byte 0xF0, 0xBD, 0xC0, 0x46, 0xD0, 0x2F, 0x35, 0x02, 0x9C, 0x92, 0x35, 0x02 + + arm_func_start ov02_0232F06C +ov02_0232F06C: @ 0x0232F06C + strhs fp, [r0], #-0x570 + stcne p14, c4, [r5], #-0x38 + ldmdavc r2!, {r0, r1, r5, sl, fp, ip} + andle r2, r1, r0, lsl #20 + and r2, r3, r1, lsl #10 + ldclne p12, c1, [r6], #-0x16c + blle FUN_020B9CA4 + andle r2, r7, r0, lsl #26 + andhs r4, r6, #0x70000 + .word 0xFE9CF000 + andle r2, r6, r0, lsl #16 + and r2, r4, r1, lsl #8 + movweq r2, #0x9101 + andle r4, r0, r8, lsl #5 + stcne p4, c2, [r0], #-8 + uxtab16mi fp, r0, r0, ror #24 + eorseq sb, r5, #156, #4 + arm_func_end ov02_0232F06C + + arm_func_start ov02_0232F0B0 +ov02_0232F0B0: @ 0x0232F0B0 + arm_func_end ov02_0232F0B0 +_0232F0B0: + .byte 0x70, 0xB5, 0x06, 0x1C, 0x10, 0x48, 0x0D, 0x1C, 0x00, 0x24, 0x00, 0xF0, 0x31, 0xFF, 0x03, 0x1C + .byte 0x0D, 0x4A, 0x28, 0x1C, 0x08, 0x21, 0x00, 0xF0, 0xAD, 0xFD, 0x30, 0x1C, 0x29, 0x1C, 0x06, 0x22 + .byte 0x00, 0xF0, 0x7C, 0xFE, 0x00, 0x28, 0x01, 0xD0, 0x64, 0x1E, 0x0A, 0xE0, 0xF0, 0x88, 0x00, 0xF0 + .byte 0x13, 0xFF, 0x06, 0x1C, 0xE8, 0x88, 0x00, 0xF0, 0x0F, 0xFF, 0x71, 0x1C, 0x81, 0x42, 0x00, 0xD0 + .byte 0xA4, 0x1E, 0x20, 0x1C, 0x70, 0xBD, 0xC0, 0x46, 0xD0, 0x2F, 0x35, 0x02, 0xF8, 0xB5, 0x0D, 0x1C + .byte 0x41, 0x22, 0x06, 0x1C, 0x28, 0x1C, 0x00, 0x21, 0x92, 0x00, 0x00, 0xF0, 0x77, 0xFE, 0x2F, 0x1C + .byte 0x34, 0x1C, 0x80, 0x37, 0x60, 0x88, 0x00, 0xF0, 0xF7, 0xFE, 0x02, 0x1C, 0x00, 0x2A, 0x02, 0xDC + .byte 0x00, 0x20, 0xC0, 0x43, 0xF8, 0xBD, 0x20, 0x78, 0x06, 0x28, 0x37, 0xD8, 0x00, 0x18, 0x78, 0x44 + .byte 0xC0, 0x88, 0x00, 0x04, 0x00, 0x14, 0x87, 0x44, 0x0C, 0x00, 0x16, 0x00, 0x20, 0x00, 0x2E, 0x00 + .byte 0x2E, 0x00, 0x3E, 0x00, 0x50, 0x00, 0x28, 0x1C, 0xA1, 0x1D, 0x00, 0xF0, 0x4F, 0xFE, 0x28, 0xE0 + .byte 0x38, 0x1C, 0xA1, 0x1D, 0x00, 0xF0, 0x4A, 0xFE, 0x23, 0xE0, 0x01, 0x20, 0x00, 0x02, 0x28, 0x18 + .byte 0xA1, 0x1D, 0x00, 0xF0, 0x43, 0xFE, 0x1C, 0xE0, 0xA0, 0x79, 0x00, 0xF0, 0xCD, 0xFE, 0x00, 0x28 + .byte 0x17, 0xDC, 0x01, 0x20, 0xC0, 0x43, 0xF8, 0xBD, 0xA0, 0x1D, 0x11, 0x1C, 0x00, 0xF0, 0x1C, 0xF8 + .byte 0x00, 0xF0, 0xAE, 0xFE, 0x0B, 0x49, 0x48, 0x63, 0x0B, 0xE0, 0xA0, 0x1D, 0x11, 0x1C, 0x00, 0xF0 + .byte 0x13, 0xF8, 0x00, 0xF0, 0xA5, 0xFE, 0x07, 0x49, 0x88, 0x63, 0x02, 0xE0, 0x00, 0x20, 0xC0, 0x43 + .byte 0xF8, 0xBD, 0xA0, 0x88, 0x00, 0x28, 0x03, 0xD0, 0x00, 0xF0, 0xAE, 0xFE, 0x34, 0x18, 0xB1, 0xE7 + .byte 0x00, 0x20, 0xF8, 0xBD, 0x3C, 0x85, 0x35, 0x02, 0x30, 0xB4, 0x00, 0x23, 0x4A, 0x1E, 0x85, 0x18 + .byte 0x1C, 0x1C, 0x00, 0x29, 0x06, 0xDD, 0x28, 0x78, 0x1A, 0x02, 0x64, 0x1C, 0x6D, 0x1E, 0x13, 0x18 + .byte 0x8C, 0x42, 0xF8, 0xDB, 0x18, 0x1C, 0x30, 0xBC, 0x70, 0x47, 0x00, 0x00 + + arm_func_start ov02_0232F1DC +ov02_0232F1DC: @ 0x0232F1DC + strdlt fp, ip, [r5], r0 + stcne p12, c1, [r5, #0x38] + andls r1, r3, r0, lsr ip + andls r3, r3, r8 + andls r1, r2, r0, lsr ip + strdls r3, r4, [r2], -r0 + andls r1, r1, r0, lsr ip + strhls r3, [r1], -r0 + andls r1, r0, r0, lsr ip + ldcne p0, c3, [r7], #-0x1c0 + ldrlo sb, [r0, -r0]! + stmdahi r8!, {r2, r8, sl, ip, pc} ^ + .word 0xFE7CF000 + stmdavc r8!, {r2, sl, fp, ip} + arm_func_end ov02_0232F1DC +_0232F214: + .byte 0x21, 0x28, 0x14, 0xDC, 0x22, 0xDA, 0x15, 0x28, 0x0E, 0xDC, 0x01, 0x1C + .byte 0x10, 0x39, 0x29, 0xD4, 0x49, 0x18, 0x79, 0x44, 0xC9, 0x88, 0x09, 0x04, 0x09, 0x14, 0x8F, 0x44 + .byte 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x46, 0x00, 0x3A, 0x00, 0x20, 0x28, 0x0F, 0xD0 + .byte 0x1A, 0xE0, 0x23, 0x28, 0x03, 0xDC, 0x0B, 0xDA, 0x22, 0x28, 0x09, 0xD0, 0x14, 0xE0, 0x25, 0x28 + .byte 0x0C, 0xD0, 0x11, 0xE0, 0x05, 0x2C, 0x0F, 0xD9, 0x00, 0x20, 0x05, 0xB0, 0xC0, 0x43, 0xF0, 0xBD + .byte 0x0D, 0x2C, 0x09, 0xD9, 0x00, 0x20, 0x05, 0xB0, 0xC0, 0x43, 0xF0, 0xBD, 0x21, 0x2C, 0x03, 0xD9 + .byte 0x00, 0x20, 0x05, 0xB0, 0xC0, 0x43, 0xF0, 0xBD, 0x21, 0x28, 0x14, 0xDC, 0x23, 0xDA, 0x15, 0x28 + .byte 0x0E, 0xDC, 0x01, 0x1C, 0x10, 0x39, 0x43, 0xD4, 0x49, 0x18, 0x79, 0x44, 0xC9, 0x88, 0x09, 0x04 + .byte 0x09, 0x14, 0x8F, 0x44, 0x22, 0x00, 0x30, 0x00, 0x3E, 0x00, 0x4C, 0x00, 0x7A, 0x00, 0x5A, 0x00 + .byte 0x20, 0x28, 0x09, 0xD0, 0x34, 0xE0, 0x23, 0x28, 0x03, 0xDC, 0x1A, 0xDA, 0x22, 0x28, 0x11, 0xD0 + .byte 0x2E, 0xE0, 0x25, 0x28, 0x1C, 0xD0, 0x2B, 0xE0, 0x38, 0x1C, 0xA9, 0x1D, 0x22, 0x1C, 0x00, 0xF0 + .byte 0x95, 0xFD, 0x74, 0x60, 0x28, 0xE0, 0x00, 0x98, 0xA9, 0x1D, 0x22, 0x1C, 0x00, 0xF0, 0x8E, 0xFD + .byte 0x74, 0x60, 0x21, 0xE0, 0x01, 0x98, 0xA9, 0x1D, 0x22, 0x1C, 0x00, 0xF0, 0x87, 0xFD, 0x74, 0x60 + .byte 0x1A, 0xE0, 0x02, 0x98, 0xA9, 0x1D, 0x22, 0x1C, 0x00, 0xF0, 0x80, 0xFD, 0x74, 0x60, 0x13, 0xE0 + .byte 0x00, 0x2C, 0x07, 0xD0, 0x28, 0x19, 0x40, 0x79, 0x00, 0x28, 0x03, 0xD0, 0x00, 0x20, 0x05, 0xB0 + .byte 0xC0, 0x43, 0xF0, 0xBD, 0x03, 0x98, 0xA9, 0x1D, 0x22, 0x1C, 0x00, 0xF0, 0x6F, 0xFD, 0x03, 0xE0 + .byte 0x00, 0x20, 0x05, 0xB0, 0xC0, 0x43, 0xF0, 0xBD, 0xA8, 0x88, 0x00, 0x28, 0x04, 0xD0, 0x00, 0xF0 + .byte 0xF3, 0xFD, 0x04, 0x99, 0x0D, 0x18, 0x70, 0xE7, 0x00, 0x20, 0x05, 0xB0, 0xF0, 0xBD, 0x00, 0x00 + + arm_func_start ov02_0232F330 +ov02_0232F330: @ 0x0232F330 + strdlt fp, ip, [r2], r8 + stcne p12, c1, [r4, #0x38] + andls r1, r0, r0, lsr ip + ldcne p0, c3, [r7], #-0x20 + ldrlo sb, [r0, -r0]! + stmdahi r0!, {r0, sl, ip, pc} ^ + .word 0xFDDEF000 + stmdavc r0!, {r0, r2, sl, fp, ip} + arm_func_end ov02_0232F330 +_0232F350: + .byte 0x35, 0x28, 0x03, 0xDC, 0x0F, 0xDA, 0x30, 0x28, 0x07, 0xD0, 0x12, 0xE0, 0x40, 0x28, 0x01, 0xDC + .byte 0x03, 0xD0, 0x0E, 0xE0, 0x45, 0x28, 0x06, 0xD0, 0x0B, 0xE0, 0x40, 0x2D, 0x09, 0xD9, 0x00, 0x20 + .byte 0x02, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x21, 0x2D, 0x03, 0xD9, 0x00, 0x20, 0x02, 0xB0, 0xC0, 0x43 + .byte 0xF8, 0xBD, 0x35, 0x28, 0x03, 0xDC, 0x10, 0xDA, 0x30, 0x28, 0x07, 0xD0, 0x1D, 0xE0, 0x40, 0x28 + .byte 0x01, 0xDC, 0x03, 0xD0, 0x19, 0xE0, 0x45, 0x28, 0x07, 0xD0, 0x16, 0xE0, 0x38, 0x1C, 0xA1, 0x1D + .byte 0x2A, 0x1C, 0x00, 0xF0, 0x23, 0xFD, 0x75, 0x60, 0x13, 0xE0, 0x00, 0x2D, 0x07, 0xD0, 0x60, 0x19 + .byte 0x40, 0x79, 0x00, 0x28, 0x03, 0xD0, 0x00, 0x20, 0x02, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x00, 0x98 + .byte 0xA1, 0x1D, 0x2A, 0x1C, 0x00, 0xF0, 0x12, 0xFD, 0x03, 0xE0, 0x00, 0x20, 0x02, 0xB0, 0xC0, 0x43 + .byte 0xF8, 0xBD, 0xA0, 0x88, 0x00, 0x28, 0x04, 0xD0, 0x00, 0xF0, 0x96, 0xFD, 0x01, 0x99, 0x0C, 0x18 + .byte 0xB1, 0xE7, 0x00, 0x20, 0x02, 0xB0, 0xF8, 0xBD + + arm_func_start ov02_0232F3E8 +ov02_0232F3E8: @ 0x0232F3E8 + stcne p5, c11, [r4, #0xe0] + arm_func_end ov02_0232F3E8 +_0232F3EC: + .byte 0x60, 0x88, 0x0D, 0x1C + .byte 0x00, 0xF0, 0x8A, 0xFD, 0x02, 0x1C, 0x00, 0x2A, 0x02, 0xDC, 0x00, 0x20, 0xC0, 0x43, 0x38, 0xBD + .byte 0x20, 0x78, 0x70, 0x28, 0x02, 0xD0, 0x00, 0x20, 0xC0, 0x43, 0x38, 0xBD, 0x28, 0x1C, 0xA1, 0x1D + .byte 0x00, 0xF0, 0xEC, 0xFC, 0x00, 0x20, 0x38, 0xBD + + arm_func_start ov02_0232F418 +ov02_0232F418: @ 0x0232F418 + strdlt fp, ip, [r5], r0 + andls r1, r0, r6, lsl ip + strhs r1, [r0, #-0xc0c] + .word 0x2E009301 + andlt sp, r5, r2, lsl #24 + ldcllt p14, c1, [r0, #0x2a0]! + bls _02343124 + ldcpl p8, c7, [sl], #0x80 + addsmi r1, r0, #0x2100 + stmdahi r0!, {r0, r1, r3, ip, lr, pc} ^ + .word 0xFD62F000 + bne _030B684C + .word 0x2E001824 + strdhs sp, lr, [r3], -r1 + bicmi fp, r0, #5 + stmdahi r8, {r4, r5, r6, r7, r8, sl, fp, ip, sp, pc} ^ + arm_func_end ov02_0232F418 +_0232F458: + .byte 0x24, 0x1D, 0x00, 0xF0, 0x55, 0xFD, 0x07, 0x1C + .byte 0x35, 0x21, 0x00, 0x98, 0x09, 0x01, 0x41, 0x43, 0x01, 0x98, 0x46, 0x18, 0x0A, 0x98, 0x02, 0x90 + .byte 0x00, 0x98, 0xC0, 0x1C, 0xC0, 0x01, 0x03, 0x90, 0x30, 0x1C, 0x04, 0x90, 0x08, 0x30, 0x04, 0x90 + .byte 0x20, 0x78, 0x0A, 0x28, 0x39, 0xD8, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88, 0x00, 0x04, 0x00, 0x14 + .byte 0x87, 0x44, 0x66, 0x00, 0x66, 0x00, 0x66, 0x00, 0x14, 0x00, 0x22, 0x00, 0x34, 0x00, 0x46, 0x00 + .byte 0x66, 0x00, 0x66, 0x00, 0x66, 0x00, 0x58, 0x00, 0x04, 0x99, 0x20, 0x1C, 0xFF, 0xF7, 0x96, 0xFE + .byte 0x01, 0x21, 0x0D, 0x43, 0x23, 0xE0, 0x4E, 0x21, 0x89, 0x00, 0x20, 0x1C, 0x71, 0x18, 0xFF, 0xF7 + .byte 0x8D, 0xFE, 0x02, 0x21, 0x0D, 0x43, 0x1A, 0xE0, 0x9A, 0x21, 0x89, 0x00, 0x20, 0x1C, 0x71, 0x18 + .byte 0xFF, 0xF7, 0x2E, 0xFF, 0x04, 0x21, 0x0D, 0x43, 0x11, 0xE0, 0xB6, 0x21, 0x89, 0x00, 0x20, 0x1C + .byte 0x71, 0x18, 0xFF, 0xF7, 0x25, 0xFF, 0x08, 0x21, 0x0D, 0x43, 0x08, 0xE0, 0x02, 0x9A, 0x03, 0x99 + .byte 0x20, 0x1C, 0x51, 0x18, 0xFF, 0xF7, 0x78, 0xFF, 0x01, 0xE0, 0x02, 0x20, 0xC0, 0x43, 0x00, 0x28 + .byte 0x0C, 0xD1, 0x60, 0x88, 0x00, 0xF0, 0x00, 0xFD, 0x00, 0x1D, 0x3F, 0x1A, 0x24, 0x18, 0x00, 0x2F + .byte 0xB6, 0xDC, 0x04, 0x48, 0x01, 0x6B, 0x29, 0x43, 0x01, 0x63, 0x00, 0x20, 0x05, 0xB0, 0xF0, 0xBD + .byte 0x60, 0x2F, 0x35, 0x02, 0x3C, 0x85, 0x35, 0x02, 0x10, 0x21, 0x00, 0x22, 0x08, 0x42, 0x00, 0xD0 + .byte 0x01, 0x22, 0x10, 0x1C, 0x70, 0x47, 0x00, 0x00 + + arm_func_start ov02_0232F538 +ov02_0232F538: @ 0x0232F538 + arm_func_end ov02_0232F538 +_0232F538: + .byte 0x70, 0xB5, 0x0D, 0x1C, 0x14, 0x1C, 0x1E, 0x1C + .byte 0x00, 0x28, 0x04, 0xD0, 0x01, 0x28, 0x0B, 0xD0, 0x02, 0x28, 0x12, 0xD0, 0x1A, 0xE0, 0x02, 0x20 + .byte 0xFF, 0xF7, 0x80, 0xFB, 0x28, 0x1C, 0x21, 0x1C, 0x32, 0x1C, 0x00, 0xF0, 0x17, 0xF8, 0x70, 0xBD + .byte 0x03, 0x20, 0xFF, 0xF7, 0x77, 0xFB, 0x28, 0x1C, 0x21, 0x1C, 0x32, 0x1C, 0x00, 0xF0, 0xB0, 0xF8 + .byte 0x70, 0xBD, 0x05, 0x20, 0xFF, 0xF7, 0x6E, 0xFB, 0x28, 0x1C, 0x21, 0x1C, 0x32, 0x1C, 0x00, 0xF0 + .byte 0x15, 0xF9, 0x70, 0xBD, 0x00, 0x20, 0xC0, 0x43, 0x70, 0xBD, 0x00, 0x00 + + arm_func_start ov02_0232F58C +ov02_0232F58C: @ 0x0232F58C + strdlt fp, ip, [r8], r8 + arm_func_end ov02_0232F58C +_0232F590: + .byte 0x0F, 0x1C, 0x00, 0x21, 0x04, 0xA8, 0x01, 0x70, 0x81, 0x80, 0x41, 0x80, 0x48, 0x48, 0x03, 0x92 + .byte 0x45, 0x69, 0x48, 0x4A, 0x28, 0x1C, 0x00, 0xF0, 0x29, 0xFC, 0x21, 0x20, 0x00, 0x01, 0xFE, 0xF7 + .byte 0xDD, 0xFB, 0x04, 0x1C, 0x06, 0xD1, 0x02, 0x20, 0xFF, 0xF7, 0xBA, 0xF9, 0x00, 0x20, 0x08, 0xB0 + .byte 0xC0, 0x43, 0xF8, 0xBD, 0x21, 0x22, 0x00, 0x21, 0x12, 0x01, 0x00, 0xF0, 0x17, 0xFC, 0x2E, 0x1C + .byte 0x3D, 0x48, 0x39, 0x1C, 0x08, 0x22, 0x18, 0x36, 0x00, 0xF0, 0x08, 0xFC, 0x05, 0xA8, 0x3A, 0x49 + .byte 0x02, 0x30, 0x08, 0x22, 0x00, 0xF0, 0x02, 0xFC, 0x20, 0x1D, 0x00, 0xF0, 0x15, 0xF9, 0x04, 0xA9 + .byte 0x88, 0x80, 0x04, 0x20, 0x08, 0x5E, 0x00, 0x28, 0x0B, 0xDA, 0x03, 0x20, 0xFF, 0xF7, 0x98, 0xF9 + .byte 0x00, 0x2C, 0x02, 0xD0, 0x20, 0x1C, 0xFE, 0xF7, 0xB9, 0xFB, 0x00, 0x20, 0x08, 0xB0, 0xC0, 0x43 + .byte 0xF8, 0xBD, 0x00, 0x20, 0x20, 0x70, 0x88, 0x88, 0x00, 0xF0, 0x56, 0xFC, 0x60, 0x80, 0x04, 0xA9 + .byte 0x04, 0x20, 0x08, 0x5E, 0x22, 0x1C, 0x05, 0xAB, 0x00, 0x1D, 0x88, 0x80, 0x04, 0xA8, 0x02, 0x30 + .byte 0x00, 0x90, 0x04, 0xA8, 0x01, 0x90, 0x00, 0x20, 0x31, 0x1C, 0x00, 0xF0, 0x33, 0xF9, 0x04, 0xA9 + .byte 0x02, 0x20, 0x0A, 0x5E, 0x10, 0x20, 0x06, 0x23, 0x10, 0x43, 0x48, 0x80, 0x05, 0xA8, 0x1F, 0x4A + .byte 0x02, 0x30, 0x08, 0x21, 0x00, 0xF0, 0xE6, 0xFA, 0x00, 0x28, 0x0B, 0xD0, 0x02, 0x20, 0xFF, 0xF7 + .byte 0x67, 0xF9, 0x00, 0x2C, 0x02, 0xD0, 0x20, 0x1C, 0xFE, 0xF7, 0x88, 0xFB, 0x00, 0x20, 0x08, 0xB0 + .byte 0xC0, 0x43, 0xF8, 0xBD, 0x04, 0xAB, 0x00, 0x20, 0x18, 0x56, 0x01, 0x21, 0x04, 0x22, 0x00, 0x90 + .byte 0x11, 0x20, 0x01, 0x90, 0x05, 0xA8, 0x02, 0x30, 0x02, 0x90, 0x02, 0x26, 0x9A, 0x5E, 0x9B, 0x5F + .byte 0x28, 0x1C, 0x09, 0x03, 0x00, 0xF0, 0x30, 0xF9, 0x04, 0xAA, 0x04, 0x21, 0x50, 0x5E, 0x03, 0x9B + .byte 0x18, 0x30, 0x90, 0x80, 0x51, 0x5E, 0x28, 0x1C, 0xFF, 0x22, 0x00, 0xF0, 0x51, 0xF9, 0x00, 0x2C + .byte 0x02, 0xD0, 0x20, 0x1C, 0xFE, 0xF7, 0x62, 0xFB, 0x00, 0x20, 0x08, 0xB0, 0xF8, 0xBD, 0xC0, 0x46 + .byte 0x3C, 0x85, 0x35, 0x02, 0xDC, 0x05, 0x00, 0x00, 0x9C, 0x92, 0x35, 0x02, 0xD0, 0x2F, 0x35, 0x02 + + arm_func_start ov02_0232F6D0 +ov02_0232F6D0: @ 0x0232F6D0 + addlt fp, sb, r8, ror r5 + arm_func_end ov02_0232F6D0 +_0232F6D4: + .byte 0x0D, 0x1C, 0x00, 0x21, 0x03, 0xA8, 0x01, 0x70, 0x81, 0x80, 0x41, 0x80 + .byte 0x2F, 0x48, 0x16, 0x1C, 0x44, 0x69, 0x05, 0xA8, 0x08, 0x22, 0x00, 0xF0, 0x87, 0xFB, 0x2D, 0x4A + .byte 0x20, 0x1C, 0x00, 0x21, 0x00, 0xF0, 0x82, 0xFB, 0x02, 0x21, 0x03, 0xA8, 0x01, 0x72, 0x00, 0x21 + .byte 0x41, 0x72, 0x04, 0x20, 0x00, 0xF0, 0xE0, 0xFB, 0x03, 0xA9, 0x48, 0x81, 0x24, 0x48, 0xC0, 0x6A + .byte 0x06, 0x90, 0x00, 0xF0, 0xC5, 0xFB, 0x06, 0x90, 0x08, 0x21, 0x03, 0xA8, 0x81, 0x80, 0x03, 0xA8 + .byte 0x02, 0x30, 0x00, 0x90, 0x03, 0xA8, 0x01, 0x90, 0x1D, 0x48, 0x21, 0x1C, 0x00, 0x68, 0x18, 0x31 + .byte 0x05, 0xAA, 0x04, 0xAB, 0x00, 0xF0, 0xB6, 0xF8, 0x08, 0x35, 0x07, 0xA8, 0x29, 0x1C, 0x08, 0x22 + .byte 0x00, 0xF0, 0x54, 0xFB, 0x18, 0x4A, 0x07, 0xA8, 0x08, 0x21, 0x06, 0x23, 0x00, 0xF0, 0x6A, 0xFA + .byte 0x00, 0x28, 0x06, 0xD0, 0x02, 0x20, 0xFF, 0xF7, 0xEB, 0xF8, 0x00, 0x20, 0x09, 0xB0, 0xC0, 0x43 + .byte 0x78, 0xBD, 0x03, 0xAB, 0x00, 0x20, 0x18, 0x56, 0x02, 0x21, 0x04, 0x22, 0x00, 0x90, 0x11, 0x20 + .byte 0x01, 0x90, 0x07, 0xA8, 0x02, 0x90, 0x02, 0x25, 0x9A, 0x5E, 0x5B, 0x5F, 0x20, 0x1C, 0x09, 0x03 + .byte 0x00, 0xF0, 0xBA, 0xF8, 0x03, 0xAA, 0x04, 0x21, 0x50, 0x5E, 0x33, 0x1C, 0x18, 0x30, 0x90, 0x80 + .byte 0x51, 0x5E, 0x20, 0x1C, 0x00, 0x22, 0x00, 0xF0, 0xDB, 0xF8, 0x00, 0x20, 0x09, 0xB0, 0x78, 0xBD + .byte 0x3C, 0x85, 0x35, 0x02, 0xDC, 0x05, 0x00, 0x00, 0xD0, 0x2F, 0x35, 0x02 + + arm_func_start ov02_0232F7AC +ov02_0232F7AC: @ 0x0232F7AC + addlt fp, r5, r8, ror r5 + arm_func_end ov02_0232F7AC +_0232F7B0: + .byte 0x16, 0x48, 0x16, 0x1C, 0x44, 0x69, 0x16, 0x4A, 0x0D, 0x1C, 0x20, 0x1C, 0x00, 0x21, 0x00, 0xF0 + .byte 0x1D, 0xFB, 0x10, 0x35, 0x03, 0xA8, 0x29, 0x1C, 0x08, 0x22, 0x00, 0xF0, 0x0F, 0xFB, 0x11, 0x48 + .byte 0x00, 0xF0, 0xA6, 0xFB, 0x03, 0x1C, 0x0F, 0x4A, 0x03, 0xA8, 0x08, 0x21, 0x00, 0xF0, 0x22, 0xFA + .byte 0x00, 0x22, 0x03, 0x21, 0x00, 0x92, 0x11, 0x20, 0x01, 0x90, 0x03, 0xA8, 0x02, 0x90, 0x20, 0x1C + .byte 0x09, 0x03, 0x13, 0x1C, 0x00, 0xF0, 0x80, 0xF8, 0x20, 0x1C, 0x18, 0x21, 0x00, 0x22, 0x33, 0x1C + .byte 0x00, 0xF0, 0xA6, 0xF8, 0x00, 0x20, 0x05, 0xB0, 0x78, 0xBD, 0xC0, 0x46, 0x3C, 0x85, 0x35, 0x02 + .byte 0xDC, 0x05, 0x00, 0x00, 0xD0, 0x2F, 0x35, 0x02 + + arm_func_start ov02_0232F818 +ov02_0232F818: @ 0x0232F818 + stmdbmi r0!, {r3, r4, r5, r6, r7, r8, sl, ip, sp, pc} + andshs r1, sp, r5, lsl #24 + ldmdbmi pc, {r3, sb, sl, ip, lr} + eorvc r2, r8, r0, lsl #12 + rsbvc r2, r8, r1 + bvs _0358A254 + strne r0, [r4], #-0x400 + stcne p13, c1, [r2], #-0x2a0 + blx FUN_0196B840 + arm_func_end ov02_0232F818 +_0232F83C: + .byte 0x20, 0x04, 0x00, 0x0C + .byte 0x00, 0xF0, 0x42, 0xFB, 0x68, 0x80, 0xA0, 0x1D, 0x00, 0x04, 0x00, 0x14, 0x41, 0x1C, 0xC8, 0x0F + .byte 0x08, 0x18, 0x40, 0x10, 0x40, 0x04, 0x07, 0x14, 0x38, 0x04, 0x00, 0x0C, 0x00, 0xF0, 0x34, 0xFB + .byte 0xA8, 0x80, 0xF0, 0x19, 0x00, 0x04, 0x06, 0x14, 0x60, 0x20, 0xE8, 0x55, 0xEC, 0x19, 0x00, 0x20 + .byte 0x60, 0x70, 0x00, 0xF0, 0x29, 0xFB, 0xA0, 0x80, 0x0E, 0x20, 0x00, 0xF0, 0x11, 0xFB, 0x00, 0x90 + .byte 0xA0, 0x1D, 0x00, 0xA9, 0x04, 0x22, 0x00, 0xF0, 0xB1, 0xFA, 0x04, 0x20, 0x00, 0xF0, 0x1C, 0xFB + .byte 0x0A, 0x36, 0x60, 0x80, 0x30, 0x04, 0x00, 0x14, 0xF8, 0xBD, 0xC0, 0x46, 0x5C, 0x85, 0x35, 0x02 + .byte 0x3C, 0x85, 0x35, 0x02 + + arm_func_start ov02_0232F8A4 +ov02_0232F8A4: @ 0x0232F8A4 + addlt fp, r3, r0, lsr r5 + arm_func_end ov02_0232F8A4 +_0232F8A8: + .byte 0x0D, 0x1C, 0x1C, 0x1C, 0x01, 0x28, 0x19, 0xD1 + .byte 0x06, 0x98, 0x01, 0x21, 0x01, 0x80, 0xA8, 0x1C, 0x00, 0x90, 0x0E, 0x48, 0x07, 0x9B, 0x01, 0x90 + .byte 0x08, 0x20, 0x02, 0x90, 0x10, 0x1C, 0x00, 0x22, 0xA2, 0x5E, 0x29, 0x1D, 0x00, 0xF0, 0x74, 0xF8 + .byte 0x20, 0x88, 0x00, 0xF0, 0xF9, 0xFA, 0x28, 0x80, 0x00, 0x20, 0x20, 0x5E, 0x03, 0xB0, 0x00, 0x1D + .byte 0x20, 0x80, 0x30, 0xBD, 0x11, 0x1C, 0x00, 0x22, 0xA2, 0x5E, 0x28, 0x1C, 0x00, 0xF0, 0x7E, 0xFA + .byte 0x03, 0xB0, 0x30, 0xBD, 0x9C, 0x92, 0x35, 0x02 + + arm_func_start ov02_0232F8F8 +ov02_0232F8F8: @ 0x0232F8F8 + arm_func_end ov02_0232F8F8 +_0232F8F8: + .byte 0xF8, 0xB5, 0x05, 0x1C, 0x01, 0x20, 0x0C, 0x1C + .byte 0x16, 0x1C, 0x1F, 0x1C, 0x00, 0xF0, 0xE0, 0xFA, 0x28, 0x80, 0x00, 0x20, 0x68, 0x80, 0xA8, 0x80 + .byte 0x20, 0x04, 0x00, 0x0C, 0x00, 0xF0, 0xD8, 0xFA, 0xE8, 0x80, 0x00, 0x20, 0x28, 0x81, 0x30, 0x04 + .byte 0x00, 0x0C, 0x00, 0xF0, 0xD1, 0xFA, 0x68, 0x81, 0x38, 0x04, 0x00, 0x0C, 0x00, 0xF0, 0xCC, 0xFA + .byte 0xA8, 0x81, 0x02, 0xA9, 0x10, 0x20, 0x08, 0x56, 0x08, 0x22, 0xA8, 0x73, 0x14, 0x20, 0x08, 0x56 + .byte 0x08, 0x99, 0xE8, 0x73, 0x10, 0x35, 0x28, 0x1C, 0x00, 0xF0, 0x50, 0xFA, 0xF8, 0xBD, 0x00, 0x00 + + arm_func_start ov02_0232F950 +ov02_0232F950: @ 0x0232F950 + strdlt fp, ip, [r4], r8 + arm_func_end ov02_0232F950 +_0232F954: + .byte 0x05, 0x1C, 0x0E, 0x1C, 0x14, 0x1C, 0x02, 0xA8, 0x00, 0x21, 0x08, 0x22 + .byte 0x1F, 0x1C, 0x00, 0xF0, 0x4B, 0xFA, 0x02, 0x21, 0x02, 0xA8, 0x41, 0x70, 0x0F, 0x48, 0x00, 0xF0 + .byte 0xAB, 0xFA, 0x02, 0xA9, 0x48, 0x80, 0x0E, 0x48, 0x40, 0x6B, 0x00, 0xF0, 0x91, 0xFA, 0x03, 0x90 + .byte 0xFF, 0x2C, 0x04, 0xD0, 0x0B, 0x49, 0x1C, 0x20, 0x08, 0x56, 0x00, 0x28, 0x02, 0xD1, 0x00, 0x20 + .byte 0xC0, 0x43, 0x03, 0x90, 0x02, 0xA8, 0x00, 0x90, 0x08, 0x20, 0x01, 0x90, 0x38, 0x1C, 0x29, 0x1C + .byte 0x32, 0x1C, 0x00, 0x23, 0x00, 0xF0, 0x64, 0xFA, 0x04, 0xB0, 0xF8, 0xBD, 0x90, 0x57, 0x00, 0x00 + .byte 0x3C, 0x85, 0x35, 0x02, 0x5C, 0x85, 0x35, 0x02 + + arm_func_start ov02_0232F9B8 +ov02_0232F9B8: @ 0x0232F9B8 + strdlt fp, ip, [r5], r0 + arm_func_end ov02_0232F9B8 +_0232F9BC: + .byte 0x15, 0x1C, 0x0F, 0x1C + .byte 0x1C, 0x1C, 0x29, 0x1C, 0x06, 0x1C, 0x00, 0xF0, 0xE1, 0xF8, 0x20, 0x70, 0x28, 0x1C, 0xFE, 0xF7 + .byte 0xCD, 0xF9, 0x03, 0x90, 0x00, 0x28, 0x03, 0xD1, 0x00, 0x20, 0x05, 0xB0, 0xC0, 0x43, 0xF0, 0xBD + .byte 0x00, 0xF0, 0xA8, 0xFA, 0x00, 0xA9, 0x08, 0x80, 0x0A, 0x98, 0x00, 0xA9, 0x02, 0x22, 0x00, 0xF0 + .byte 0xFD, 0xF9, 0x0E, 0x48, 0x0A, 0x99, 0x02, 0x22, 0x00, 0xF0, 0xF8, 0xF9, 0x0C, 0x48, 0x0B, 0x99 + .byte 0x0C, 0x9A, 0x00, 0xF0, 0xF3, 0xF9, 0x0C, 0x9A, 0x08, 0x49, 0x01, 0xA8, 0x92, 0x1C, 0x2B, 0x1C + .byte 0x00, 0xF0, 0x54, 0xF8, 0x01, 0xA8, 0x39, 0x1C, 0x32, 0x1C, 0x2B, 0x1C, 0x00, 0xF0, 0x80, 0xF8 + .byte 0x03, 0x98, 0xFE, 0xF7, 0xAB, 0xF9, 0x00, 0x20, 0x05, 0xB0, 0xF0, 0xBD, 0xA4, 0x92, 0x35, 0x02 + .byte 0xA6, 0x92, 0x35, 0x02 + + arm_func_start ov02_0232FA34 +ov02_0232FA34: @ 0x0232FA34 + strdlt fp, ip, [r4], r8 + arm_func_end ov02_0232FA34 +_0232FA38: + .byte 0x14, 0x1C, 0x07, 0x1C, 0x20, 0x1C, 0x0D, 0x1C + .byte 0x1E, 0x1C, 0xFE, 0xF7, 0x93, 0xF9, 0x02, 0x90, 0x00, 0x28, 0x06, 0xD1, 0x02, 0x20, 0xFE, 0xF7 + .byte 0x6F, 0xFF, 0x00, 0x20, 0x04, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x16, 0x48, 0x0A, 0x99, 0x02, 0x22 + .byte 0x00, 0xF0, 0xC4, 0xF9, 0x14, 0x48, 0x0B, 0x99, 0x0C, 0x9A, 0x00, 0xF0, 0xBF, 0xF9, 0x0C, 0x9A + .byte 0x10, 0x49, 0x00, 0xA8, 0x92, 0x1C, 0x23, 0x1C, 0x00, 0xF0, 0x20, 0xF8, 0x00, 0xA8, 0x29, 0x1C + .byte 0x3A, 0x1C, 0x23, 0x1C, 0x00, 0xF0, 0x4C, 0xF8, 0x28, 0x1C, 0x21, 0x1C, 0x00, 0xF0, 0x7E, 0xF8 + .byte 0xB0, 0x42, 0x09, 0xD0, 0x12, 0x20, 0xFE, 0xF7, 0x4B, 0xFF, 0x02, 0x98, 0xFE, 0xF7, 0x6E, 0xF9 + .byte 0x00, 0x20, 0x04, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x02, 0x98, 0xFE, 0xF7, 0x67, 0xF9, 0x00, 0x20 + .byte 0x04, 0xB0, 0xF8, 0xBD, 0xA4, 0x92, 0x35, 0x02, 0xA6, 0x92, 0x35, 0x02 + + arm_func_start ov02_0232FABC +ov02_0232FABC: @ 0x0232FABC + strdlt fp, ip, [r4], r8 + mrsls sb, apsr + stmdbls r0, {r2, r7, fp, sp, lr} + subvs r2, r8, r0 + andvs sb, r8, r2, lsl #4 + sbcvs r1, sl, sl, lsl ip + arm_func_end ov02_0232FABC +_0232FAD4: + .byte 0x03, 0x93, 0x19, 0x1C, 0x04, 0xD0, 0x03, 0x99, 0x20, 0x54, 0x40, 0x1C + .byte 0x88, 0x42, 0xFA, 0xD3, 0x03, 0x98, 0x00, 0x21, 0x0E, 0x1C, 0x0D, 0x1C, 0x00, 0x28, 0x14, 0xD9 + .byte 0x01, 0x98, 0x67, 0x5D, 0x80, 0x5D, 0x08, 0x18, 0x00, 0x99, 0x38, 0x18, 0xC9, 0x68, 0x60, 0xF5 + .byte 0xD8, 0xEA, 0x60, 0x5C, 0x76, 0x1C, 0x67, 0x54, 0x60, 0x55, 0x02, 0x98, 0x86, 0x42, 0x00, 0xD3 + .byte 0x00, 0x26, 0x03, 0x98, 0x6D, 0x1C, 0x85, 0x42, 0xEA, 0xD3, 0x04, 0xB0, 0xF8, 0xBD, 0x00, 0x00 + + arm_func_start ov02_0232FB20 +ov02_0232FB20: @ 0x0232FB20 + strdls fp, ip, [r0], -r8 + arm_func_end ov02_0232FB20 +_0232FB24: + .byte 0x0D, 0x1C, 0x16, 0x1C, 0x1F, 0x1C, 0x07, 0x4C, 0x0A, 0xD0, 0x00, 0x98 + .byte 0x00, 0xF0, 0x0C, 0xF8, 0x00, 0x06, 0x01, 0x0E, 0x30, 0x5D, 0x48, 0x40, 0x28, 0x55, 0x64, 0x1C + .byte 0xBC, 0x42, 0xF4, 0xD3, 0xF8, 0xBD, 0xC0, 0x46, 0x00, 0x00, 0x00, 0x00 + + arm_func_start ov02_0232FB4C +ov02_0232FB4C: @ 0x0232FB4C + arm_func_end ov02_0232FB4C +_0232FB4C: + .byte 0xF8, 0xB5, 0x05, 0x1C + .byte 0xE8, 0x68, 0xAC, 0x68, 0x00, 0x90, 0x28, 0x68, 0x00, 0x99, 0x40, 0x1C, 0x60, 0xF5, 0xA8, 0xEA + .byte 0x08, 0x06, 0x07, 0x0E, 0xE6, 0x5D, 0x68, 0x68, 0x00, 0x99, 0x30, 0x18, 0x60, 0xF5, 0xA0, 0xEA + .byte 0x08, 0x06, 0x01, 0x0E, 0x60, 0x5C, 0x2F, 0x60, 0x69, 0x60, 0x66, 0x54, 0xE0, 0x55, 0xE9, 0x68 + .byte 0x30, 0x18, 0x60, 0xF5, 0x96, 0xEA, 0x60, 0x5C, 0xF8, 0xBD, 0x00, 0x00 + + arm_func_start ov02_0232FB8C +ov02_0232FB8C: @ 0x0232FB8C + arm_func_end ov02_0232FB8C +_0232FB8C: + .byte 0x08, 0xB5, 0x03, 0x1C + .byte 0x07, 0x48, 0x0A, 0x1C, 0x00, 0x90, 0x00, 0x20, 0x19, 0x1C, 0xC0, 0x43, 0x00, 0x23, 0x00, 0xF0 + .byte 0x09, 0xF8, 0x00, 0x21, 0xC9, 0x43, 0x48, 0x40, 0x00, 0x06, 0x00, 0x0E, 0x08, 0xBD, 0xC0, 0x46 + .byte 0xFC, 0x87, 0x35, 0x02 + + arm_func_start ov02_0232FBB4 +ov02_0232FBB4: @ 0x0232FBB4 + arm_func_end ov02_0232FBB4 +_0232FBB4: + .byte 0xF8, 0xB5, 0x05, 0x1C, 0x0F, 0x1C, 0x14, 0x1C, 0x06, 0x9E, 0x00, 0x2B + .byte 0x03, 0xD1, 0x18, 0x1C, 0x31, 0x1C, 0x00, 0xF0, 0x11, 0xF8, 0x00, 0x21, 0x00, 0x2C, 0x0A, 0xDD + .byte 0x7A, 0x5C, 0x28, 0x0A, 0x49, 0x1C, 0x6A, 0x40, 0x12, 0x06, 0x92, 0x0D, 0xB2, 0x58, 0x05, 0x1C + .byte 0x55, 0x40, 0xA1, 0x42, 0xF4, 0xDB, 0x28, 0x1C, 0xF8, 0xBD, 0x00, 0x00 + + arm_func_start ov02_0232FBEC +ov02_0232FBEC: @ 0x0232FBEC + strhs fp, [r1, #-0x4f0] + arm_func_end ov02_0232FBEC +_0232FBF0: + .byte 0x2B, 0x1C, 0x0B, 0x4C, 0x00, 0x20, 0xFF, 0x33, 0x07, 0x1C, 0x00, 0x22, 0x3E, 0x1C, 0x2E, 0x42 + .byte 0x03, 0xD0, 0x7E, 0x08, 0x37, 0x1C, 0x67, 0x40, 0x00, 0xE0, 0x7F, 0x08, 0x52, 0x1C, 0x08, 0x2A + .byte 0xF4, 0xDB, 0x40, 0x1C, 0x80, 0xC1, 0x98, 0x42, 0xEE, 0xDB, 0xF0, 0xBC, 0x70, 0x47, 0xC0, 0x46 + .byte 0x20, 0x83, 0xB8, 0xED + + arm_func_start ov02_0232FC24 +ov02_0232FC24: @ 0x0232FC24 + strdlt fp, ip, [r4], r8 + arm_func_end ov02_0232FC24 +_0232FC28: + .byte 0x0D, 0x1C, 0x07, 0x1C, 0xE8, 0x0F, 0x28, 0x18 + .byte 0x40, 0x10, 0x01, 0x92, 0x02, 0x93, 0xFE, 0xF7, 0x99, 0xF8, 0x06, 0x1C, 0x03, 0xD1, 0x00, 0x20 + .byte 0x04, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x28, 0x1C, 0xFE, 0xF7, 0x90, 0xF8, 0x03, 0x90, 0x00, 0x28 + .byte 0x06, 0xD1, 0x30, 0x1C, 0xFE, 0xF7, 0x92, 0xF8, 0x00, 0x20, 0x04, 0xB0, 0xC0, 0x43, 0xF8, 0xBD + .byte 0x00, 0x24, 0x02, 0x98, 0x01, 0x9B, 0x00, 0x90, 0x20, 0x1C, 0x31, 0x1C, 0x2A, 0x1C, 0x00, 0xF0 + .byte 0x17, 0xF8, 0x30, 0x1C, 0x39, 0x1C, 0x2A, 0x1C, 0x00, 0xF0, 0x2C, 0xF8, 0x03, 0x9A, 0x38, 0x1C + .byte 0x29, 0x1C, 0x00, 0xF0, 0x39, 0xF8, 0x64, 0x1C, 0x02, 0x2C, 0xEA, 0xDB, 0x30, 0x1C, 0xFE, 0xF7 + .byte 0x75, 0xF8, 0x03, 0x98, 0xFE, 0xF7, 0x72, 0xF8, 0x00, 0x20, 0x04, 0xB0, 0xF8, 0xBD, 0x00, 0x00 + + arm_func_start ov02_0232FCA0 +ov02_0232FCA0: @ 0x0232FCA0 + arm_func_end ov02_0232FCA0 +_0232FCA0: + .byte 0xF8, 0xB5, 0x0D, 0x1C, 0xD1, 0x0F, 0x51, 0x18, 0x06, 0x9E, 0x4C, 0x10, 0x31, 0x1C, 0x1F, 0x1C + .byte 0x60, 0xF5, 0xF8, 0xE8, 0x00, 0x20, 0x00, 0x2C, 0x0B, 0xDD, 0x28, 0x54, 0x7A, 0x56, 0x2B, 0x56 + .byte 0x49, 0x1C, 0x5A, 0x40, 0x2A, 0x54, 0xB1, 0x42, 0x00, 0xDB, 0x00, 0x21, 0x40, 0x1C, 0xA0, 0x42 + .byte 0xF3, 0xDB, 0xF8, 0xBD + + arm_func_start ov02_0232FCD4 +ov02_0232FCD4: @ 0x0232FCD4 + svceq #0xd3b430 + ldrsbne r1, [ip], #-0x83 + arm_func_end ov02_0232FCD4 +_0232FCDC: + .byte 0x00, 0x23, 0x00, 0x2C + .byte 0x08, 0xDD, 0x0D, 0x19, 0xC1, 0x56, 0x2A, 0x78, 0x5B, 0x1C, 0x51, 0x40, 0x29, 0x70, 0x6D, 0x1C + .byte 0xA3, 0x42, 0xF7, 0xDB, 0x30, 0xBC, 0x70, 0x47 + + arm_func_start ov02_0232FCF8 +ov02_0232FCF8: @ 0x0232FCF8 + arm_func_end ov02_0232FCF8 +_0232FCF8: + .byte 0xF8, 0xB5, 0x0E, 0x1C, 0x05, 0x1C, 0xF0, 0x0F + .byte 0x30, 0x18, 0x47, 0x10, 0x14, 0x1C, 0x20, 0x1C, 0xE9, 0x19, 0x3A, 0x1C, 0x00, 0xF0, 0x6E, 0xF8 + .byte 0xE0, 0x19, 0x29, 0x1C, 0x3A, 0x1C, 0x00, 0xF0, 0x69, 0xF8, 0x28, 0x1C, 0x21, 0x1C, 0x32, 0x1C + .byte 0x00, 0xF0, 0x64, 0xF8, 0xF8, 0xBD, 0x00, 0x00, 0x08, 0xB5, 0x00, 0x29, 0x04, 0xDD, 0x08, 0x1C + .byte 0x02, 0x49, 0x09, 0x68, 0x88, 0x47, 0x08, 0xBD, 0x00, 0x20, 0x08, 0xBD, 0x20, 0x93, 0x35, 0x02 + .byte 0x08, 0xB5, 0x08, 0x1C, 0x01, 0x49, 0x09, 0x68, 0x88, 0x47, 0x08, 0xBD, 0x2C, 0x93, 0x35, 0x02 + + arm_func_start ov02_0232FD50 +ov02_0232FD50: @ 0x0232FD50 + arm_func_end ov02_0232FD50 +_0232FD50: + .byte 0x38, 0xB5, 0x0D, 0x1C, 0x14, 0x1C, 0x00, 0xF0, 0xA3, 0xF8, 0x10, 0x49, 0x88, 0x61, 0x28, 0x1C + .byte 0x00, 0xF0, 0x9E, 0xF8, 0x0D, 0x49, 0xC8, 0x61, 0x20, 0x1C, 0x00, 0xF0, 0x99, 0xF8, 0x0B, 0x49 + .byte 0x08, 0x62, 0x0B, 0x48, 0x9F, 0xF7, 0x7E, 0xEC, 0x00, 0x28, 0x02, 0xDA, 0x00, 0x20, 0xC0, 0x43 + .byte 0x38, 0xBD, 0x08, 0x4D, 0x28, 0x68, 0x00, 0x28, 0x06, 0xD1, 0x64, 0x24, 0x20, 0x1C, 0x49, 0xF5 + .byte 0xC2, 0xEE, 0x28, 0x68, 0x00, 0x28, 0xF9, 0xD0, 0x00, 0x20, 0x38, 0xBD, 0x64, 0x2F, 0x35, 0x02 + .byte 0x6C, 0x2F, 0x35, 0x02, 0xC8, 0x50, 0x32, 0x02 + + arm_func_start ov02_0232FDA8 +ov02_0232FDA8: @ 0x0232FDA8 + arm_func_end ov02_0232FDA8 +_0232FDA8: + .byte 0x08, 0xB5, 0x9F, 0xF7, 0x1E, 0xED, 0x00, 0x28 + .byte 0x02, 0xDA, 0x00, 0x20, 0xC0, 0x43, 0x08, 0xBD, 0x00, 0xF0, 0x20, 0xFA, 0x00, 0x28, 0x01, 0xD0 + .byte 0x01, 0x20, 0x00, 0xE0, 0x00, 0x20, 0x40, 0x42, 0x08, 0xBD, 0x00, 0x00 + + arm_func_start ov02_0232FDCC +ov02_0232FDCC: @ 0x0232FDCC + movwhs fp, #0x418 + mcrrne p0, #0, lr, r0, c1 + arm_func_end ov02_0232FDCC +_0232FDD4: + .byte 0x49, 0x1C, 0x14, 0x1C, 0x52, 0x1E, 0x00, 0x2C, 0x03, 0xDD, 0x04, 0x78 + .byte 0x0B, 0x78, 0xE3, 0x1A, 0xF5, 0xD0, 0x18, 0x1C, 0x18, 0xBC, 0x70, 0x47 + + arm_func_start ov02_0232FDEC +ov02_0232FDEC: @ 0x0232FDEC + arm_func_end ov02_0232FDEC +_0232FDEC: + .byte 0x03, 0x1C, 0x08, 0x1C + .byte 0x19, 0x1C, 0x01, 0x4B, 0x18, 0x47, 0xC0, 0x46, 0xC8, 0xC4, 0x07, 0x02 + + arm_func_start ov02_0232FDFC +ov02_0232FDFC: @ 0x0232FDFC + streq r4, [sb], -r1, lsl #22 + ldrmi r0, [r8, -sb, lsl #28] + andeq ip, r7, #12, #8 + arm_func_end ov02_0232FDFC + + arm_func_start ov02_0232FE08 +ov02_0232FE08: @ 0x0232FE08 + arm_func_end ov02_0232FE08 +_0232FE08: + .byte 0x38, 0xB5, 0x05, 0x9C, 0x25, 0x68, 0x04, 0x9C + .byte 0x25, 0x70, 0x00, 0x94, 0x9F, 0xF7, 0x36, 0xEA, 0x38, 0xBD, 0x00, 0x00 + + arm_func_start ov02_0232FE1C +ov02_0232FE1C: @ 0x0232FE1C + addlt fp, r2, r0, ror r5 + stmdavs r8, {r1, r3, fp, sp, lr} ^ + andls sb, r0, #0x180 + stmdavs r8!, {r0, ip, pc} + bmi _026F8E34 + stcne p7, c1, [r3], #-0x304 + stmda r6!, {r5, r6, r8, sl, ip, sp, lr, pc} + streq r0, [sl], r3, lsl #19 + stmibeq r8, {r0, r1, r4, r8, sb, lr} + smlalttmi r1, r4, r6, r8 + bmi _02589FEC + movwhs r1, #0x7c1 + ldmda sl, {r5, r6, r8, sl, ip, sp, lr, pc} + streq r0, [sl], r3, lsl #19 + stmibeq r8, {r0, r1, r4, r8, sb, lr} + strdmi r1, r2, [r4, #-0x82] + mrshs sl, apsr + arm_func_end ov02_0232FE1C +_0232FE60: + .byte 0x23, 0x1C, 0x9F, 0xF7, 0x5A, 0xED, 0x02, 0xB0, 0x70, 0xBD, 0xC0, 0x46, 0x10, 0x62, 0xFF, 0x01 + + arm_func_start ov02_0232FE70 +ov02_0232FE70: @ 0x0232FE70 + stcls p5, c11, [r5, #-0xe0] + eorvc sb, r5, r4, lsl #24 + arm_func_end ov02_0232FE70 +_0232FE78: + .byte 0x00, 0x94, 0x9F, 0xF7, 0x5E, 0xEA, 0x38, 0xBD + + arm_func_start ov02_0232FE80 +ov02_0232FE80: @ 0x0232FE80 + andeq r4, r0, r0, ror r7 + arm_func_end ov02_0232FE80 + + arm_func_start ov02_022CF1AC +ov02_022CF1AC: @ 0x0232FE84 + ldrmi r4, [r8, -r0, lsl #22] + eoreq pc, ip, #172, #2 + arm_func_end ov02_022CF1AC + + arm_func_start ov02_0232FE8C +ov02_0232FE8C: @ 0x0232FE8C + andvc r4, sl, r1, lsl #22 + arm_func_end ov02_0232FE8C +_0232FE90: + .byte 0x18, 0x47, 0xC0, 0x46, 0xD8, 0xF1, 0x2C, 0x02 + + arm_func_start ov02_022CE8D4 +ov02_022CE8D4: @ 0x0232FE98 + ldrmi r4, [r8, -r0, lsl #22] + eoreq pc, ip, #200, #6 + arm_func_end ov02_022CE8D4 + + arm_func_start ov02_0232FEA0 +ov02_0232FEA0: @ 0x0232FEA0 + arm_func_end ov02_0232FEA0 +_0232FEA0: + .byte 0x30, 0xB4, 0xFF, 0x23, 0x01, 0x06, 0x1B, 0x06, 0x0A, 0x1C, 0x04, 0x02, 0x19, 0x0A, 0x21, 0x40 + .byte 0x04, 0x0E, 0x24, 0x06, 0x25, 0x0E, 0x04, 0x0A, 0x18, 0x0C, 0x20, 0x40, 0x28, 0x43, 0x1A, 0x40 + .byte 0x08, 0x43, 0x10, 0x43, 0x30, 0xBC, 0x70, 0x47 + + arm_func_start ov02_0232FEC8 +ov02_0232FEC8: @ 0x0232FEC8 + streq r1, [sb], -r1, lsl #4 + andeq r0, r1, #10, #28 + andeq r2, r0, #0xff + tstmi r0, #8 + arm_func_end ov02_0232FEC8 +_0232FED8: + .byte 0x00, 0x04, 0x00, 0x0C, 0x70, 0x47, 0x00, 0x00 + + arm_func_start ov02_0232FEE0 +ov02_0232FEE0: @ 0x0232FEE0 + arm_func_end ov02_0232FEE0 +_0232FEE0: + .byte 0x30, 0xB4, 0xFF, 0x23, 0x01, 0x06, 0x1B, 0x06, 0x0A, 0x1C, 0x04, 0x02, 0x19, 0x0A, 0x21, 0x40 + .byte 0x04, 0x0E, 0x24, 0x06, 0x25, 0x0E, 0x04, 0x0A, 0x18, 0x0C, 0x20, 0x40, 0x28, 0x43, 0x1A, 0x40 + .byte 0x08, 0x43, 0x10, 0x43, 0x30, 0xBC, 0x70, 0x47 + + arm_func_start ov02_0232FF08 +ov02_0232FF08: @ 0x0232FF08 + streq r1, [sb], -r1, lsl #4 + andeq r0, r1, #10, #28 + andeq r2, r0, #0xff + tstmi r0, #8 + arm_func_end ov02_0232FF08 +_0232FF18: + .byte 0x00, 0x04, 0x00, 0x0C, 0x70, 0x47, 0x00, 0x00 + + arm_func_start ov02_0232FF20 +ov02_0232FF20: @ 0x0232FF20 + strpl r2, [r1], r0, lsl #4 + andle r2, r3, r0, lsl #18 + pkhtbpl r1, r1, r2, asr #0x18 + arm_func_end ov02_0232FF20 +_0232FF2C: + .byte 0x00, 0x29, 0xFB, 0xD1 + .byte 0x10, 0x1C, 0x70, 0x47 + + arm_func_start ov02_0232FF34 +ov02_0232FF34: @ 0x0232FF34 + addlt fp, r3, r8, lsl r5 + stmvs r0, {r1, r2, r4, fp, lr} + tstle sl, r0, lsl #16 + stmdage r0, {sl, sp} + andhs r1, ip, #0x2100 + arm_func_end ov02_0232FF34 +_0232FF48: + .byte 0xFF, 0xF7, 0x58, 0xFF, 0x00, 0xA8, 0x52, 0xF5 + .byte 0x52, 0xEC, 0x00, 0x28, 0x07, 0xD1, 0x00, 0x98, 0x80, 0x02, 0x21, 0x18, 0x01, 0x98, 0xC0, 0x00 + .byte 0x09, 0x18, 0x02, 0x98, 0x0C, 0x18, 0x0B, 0x48, 0x0B, 0x49, 0x84, 0x61, 0xC1, 0x61, 0x0B, 0x49 + .byte 0x01, 0x62, 0x01, 0x21, 0x81, 0x60, 0x07, 0x48, 0xC2, 0x69, 0x81, 0x69, 0x03, 0x6A, 0x51, 0x43 + .byte 0x59, 0x18, 0x81, 0x61, 0x06, 0x48, 0x09, 0x0C, 0x48, 0x43, 0x00, 0x0C, 0x00, 0x04, 0x00, 0x0C + .byte 0x03, 0xB0, 0x18, 0xBD, 0x3C, 0x85, 0x35, 0x02, 0x65, 0x8B, 0x58, 0x5D, 0xC3, 0x9E, 0x26, 0x00 + .byte 0xFF, 0x7F, 0x00, 0x00 + + arm_func_start ov02_0232FFA4 +ov02_0232FFA4: @ 0x0232FFA4 + andvs r2, r1, r0, lsl #2 + sbchi r8, r1, r1, lsl #1 + andeq r4, r0, r0, ror r7 + arm_func_end ov02_0232FFA4 + + arm_func_start ov02_0232FFB0 +ov02_0232FFB0: @ 0x0232FFB0 + andhs r6, r1, r8 + ldrbmi r8, [r0, -r8, lsl #1]! + arm_func_end ov02_0232FFB0 + + arm_func_start ov02_0232FFB8 +ov02_0232FFB8: @ 0x0232FFB8 + arm_func_end ov02_0232FFB8 +_0232FFB8: + .byte 0xF8, 0xB5, 0x05, 0x1C, 0x68, 0x89, 0x0C, 0x1C + .byte 0x21, 0x1D, 0x20, 0x60, 0x28, 0x1C, 0x0C, 0x30, 0x20, 0x22, 0x4C, 0xF5, 0x8A, 0xE9, 0xE8, 0x8E + .byte 0x21, 0x1C, 0x30, 0x31, 0x60, 0x62, 0x28, 0x1D, 0x06, 0x22, 0x4C, 0xF5, 0x82, 0xE9, 0x00, 0x21 + .byte 0x17, 0x4A, 0x08, 0x1C, 0x80, 0x26, 0x2F, 0x8E, 0x13, 0x88, 0x3B, 0x42, 0x10, 0xD0, 0x97, 0x78 + .byte 0x63, 0x18, 0x3C, 0x33, 0x1F, 0x70, 0xEF, 0x8D, 0x13, 0x88, 0x3B, 0x42, 0x07, 0xD0, 0x63, 0x18 + .byte 0x3C, 0x33, 0x1B, 0x78, 0x1F, 0x1C, 0x63, 0x18, 0x37, 0x43, 0x3C, 0x33, 0x1F, 0x70, 0x49, 0x1C + .byte 0x40, 0x1C, 0x12, 0x1D, 0x0C, 0x28, 0xE6, 0xDB, 0xA1, 0x63, 0x68, 0x8E, 0xE0, 0x64, 0xA9, 0x8D + .byte 0x03, 0x20, 0x08, 0x40, 0x01, 0x28, 0x02, 0xD1, 0x01, 0x20, 0x20, 0x65, 0xF8, 0xBD, 0x02, 0x28 + .byte 0x02, 0xD1, 0x02, 0x20, 0x20, 0x65, 0xF8, 0xBD, 0x00, 0x20, 0x20, 0x65, 0xF8, 0xBD, 0xC0, 0x46 + .byte 0xD8, 0x2F, 0x35, 0x02 + + arm_func_start ov02_02330044 +ov02_02330044: @ 0x02330044 + arm_func_end ov02_02330044 +_02330044: + .byte 0x38, 0xB5, 0x05, 0x1C, 0x0C, 0x1C, 0x00, 0x20, 0x0C, 0x31, 0x20, 0x22 + .byte 0x4C, 0xF5, 0x32, 0xE9, 0x28, 0x68, 0x21, 0x1C, 0x60, 0x81, 0x62, 0x89, 0x28, 0x1D, 0x0C, 0x31 + .byte 0x4C, 0xF5, 0x32, 0xEA, 0x38, 0xBD, 0x00, 0x00 + + arm_func_start ov02_02330068 +ov02_02330068: @ 0x02330068 + arm_func_end ov02_02330068 +_02330068: + .byte 0x03, 0x1C, 0x08, 0x1C, 0x1A, 0x60, 0x19, 0x1D + .byte 0x00, 0x4B, 0x18, 0x47, 0xB9, 0xFF, 0x32, 0x02, 0x02, 0x4B, 0x01, 0x1C, 0x02, 0x48, 0x00, 0x22 + .byte 0x18, 0x47, 0xC0, 0x46, 0xE0, 0x9D, 0x07, 0x02, 0x40, 0x93, 0x35, 0x02, 0x02, 0x4B, 0x01, 0x1C + .byte 0x02, 0x48, 0x00, 0x22, 0x18, 0x47, 0xC0, 0x46, 0xE0, 0x9D, 0x07, 0x02, 0x40, 0x93, 0x35, 0x02 + + thumb_func_start ov02_023300A0 +ov02_023300A0: @ 0x023300A0 + thumb_func_end ov02_023300A0 +_023300A0: + .byte 0xF8, 0xB5, 0x05, 0x1C, 0x0E, 0x1C, 0x2A, 0x48, 0x2A, 0x49, 0x04, 0x22, 0x01, 0x24, 0x49, 0xF5 + .byte 0x84, 0xEE, 0x00, 0x2D, 0x01, 0xD0, 0x00, 0x2E, 0x02, 0xD1, 0x00, 0x20, 0xC0, 0x43, 0xF8, 0xBD + .byte 0x4B, 0xF5, 0x90, 0xEB, 0x24, 0x49, 0x0D, 0x60, 0xCE, 0x60, 0x4B, 0xF5, 0x96, 0xEB, 0x22, 0x49 + .byte 0x22, 0x48, 0x09, 0x68, 0x88, 0x47, 0x01, 0x1C, 0x1F, 0x48, 0x81, 0x60, 0x01, 0xD1, 0xA0, 0x1E + .byte 0xF8, 0xBD, 0x1F, 0x48, 0x1D, 0x4A, 0x00, 0xF0, 0x29, 0xFD, 0x00, 0x28, 0x00, 0xD1, 0x00, 0x24 + .byte 0x00, 0x2C, 0x25, 0xD0, 0x16, 0x4D, 0x00, 0xAE, 0x01, 0x27, 0x28, 0x1C, 0x31, 0x1C, 0x3A, 0x1C + .byte 0x49, 0xF5, 0xB8, 0xEE, 0x00, 0x98, 0x0F, 0x28, 0x17, 0xD8, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88 + .byte 0x00, 0x04, 0x00, 0x14, 0x87, 0x44, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x24, 0x00 + .byte 0x24, 0x00, 0x1E, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00 + .byte 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x00, 0x20, 0xF8, 0xBD, 0x00, 0x24, 0x00, 0x2C, 0xDC, 0xD1 + .byte 0x05, 0x49, 0x88, 0x68, 0xC9, 0x68, 0x88, 0x47, 0x00, 0x20, 0xC0, 0x43, 0xF8, 0xBD, 0xC0, 0x46 + .byte 0x40, 0x93, 0x35, 0x02, 0x30, 0x93, 0x35, 0x02, 0x20, 0x93, 0x35, 0x02, 0x90, 0x58, 0x00, 0x00 + .byte 0x79, 0x00, 0x33, 0x02 + + thumb_func_start ov02_02330164 +ov02_02330164: @ 0x02330164 + push {r3, r4, r5, r6, r7, lr} + ldr r0, _023301F4 @ =0x02359320 + movs r4, #1 + ldr r0, [r0, #0xc] + subs r5, r4, #2 + cmp r0, #0 + bne FUN_02330176 + adds r0, r5, #0 + thumb_func_end ov02_02330164 +_02330174: + .byte 0xF8, 0xBD, 0x00, 0xF0, 0x73, 0xFC, 0x00, 0x28, 0x01, 0xD1, 0xA0, 0x1E + .byte 0xF8, 0xBD, 0x1D, 0x4F, 0x1B, 0x4E, 0x38, 0x1C, 0x00, 0xA9, 0x01, 0x22, 0x49, 0xF5, 0x72, 0xEE + .byte 0x00, 0x98, 0x14, 0x28, 0x20, 0xD8, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88, 0x00, 0x04, 0x00, 0x14 + .byte 0x87, 0x44, 0x34, 0x00, 0x34, 0x00, 0x34, 0x00, 0x34, 0x00, 0x36, 0x00, 0x36, 0x00, 0x34, 0x00 + .byte 0x34, 0x00, 0x34, 0x00, 0x34, 0x00, 0x34, 0x00, 0x34, 0x00, 0x34, 0x00, 0x34, 0x00, 0x34, 0x00 + .byte 0x34, 0x00, 0x34, 0x00, 0x34, 0x00, 0x34, 0x00, 0x34, 0x00, 0x28, 0x00, 0xB0, 0x68, 0x00, 0x24 + .byte 0xF1, 0x68, 0x25, 0x1C, 0x88, 0x47, 0x00, 0xE0, 0x00, 0x24, 0x00, 0x2C, 0xD3, 0xD1, 0x4B, 0xF5 + .byte 0x02, 0xEB, 0x04, 0x49, 0x00, 0x22, 0x0A, 0x60, 0xCA, 0x60, 0x4B, 0xF5, 0x06, 0xEB, 0x28, 0x1C + .byte 0xF8, 0xBD, 0xC0, 0x46, 0x20, 0x93, 0x35, 0x02, 0x40, 0x93, 0x35, 0x02 + + arm_func_start ov02_023301FC +ov02_023301FC: @ 0x023301FC + strhs fp, [r0, #-0x5f8] + arm_func_end ov02_023301FC +_02330200: + .byte 0xED, 0x43, 0x00, 0xF0, 0x11, 0xFC, 0x00, 0x28, 0x10, 0xD0, 0x09, 0x4C, 0x00, 0xAE, 0x01, 0x27 + .byte 0x20, 0x1C, 0x31, 0x1C, 0x3A, 0x1C, 0x49, 0xF5, 0x2E, 0xEE, 0x00, 0x98, 0x0E, 0x28, 0x02, 0xD1 + .byte 0x00, 0x20, 0x05, 0x1C, 0x00, 0xE0, 0x00, 0x20, 0x00, 0x28, 0xF1, 0xD1, 0x28, 0x1C, 0xF8, 0xBD + .byte 0x40, 0x93, 0x35, 0x02 + + arm_func_start ov02_02330234 +ov02_02330234: @ 0x02330234 + ldrshlt fp, [r1], r0 + andhs sb, r0, r1 + andls r4, r4, r0, asr #7 + andls r2, r3, r1 + ldmdami r4, {sb, sl, sp} ^ + stmdavs r1, {r0, r1, r2, r4, r5, sl, fp, ip} + stmdbhs r0, {r0, r2, r4, r5, sl, fp, ip} + stmvs r0, {r1, ip, lr, pc} ^ + mrsle r2, apsr + andslt r2, r1, r0 + ldcllt p3, c4, [r0, #0x300]! + movweq r2, #3 + arm_func_end ov02_02330234 +_02330264: + .byte 0x88, 0x47, 0x04, 0x1C, 0x02, 0xD1, 0x11, 0xB0, 0x70, 0x1E, 0xF0, 0xBD + .byte 0x30, 0x1C, 0x4A, 0x4B, 0x01, 0x1C, 0x02, 0x1C, 0x02, 0x94, 0x00, 0xF0, 0x3F, 0xFB, 0x00, 0x28 + .byte 0x00, 0xD1, 0x81, 0xE0, 0x06, 0xA8, 0x4A, 0xF5, 0xDC, 0xEE, 0x13, 0x20, 0x00, 0x90, 0x44, 0x49 + .byte 0x44, 0x4B, 0x06, 0xA8, 0x32, 0x1C, 0x4A, 0xF5, 0x72, 0xEF, 0x43, 0x48, 0x05, 0xA9, 0x01, 0x22 + .byte 0x49, 0xF5, 0xE8, 0xED, 0x05, 0x98, 0x13, 0x28, 0x61, 0xD8, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88 + .byte 0x00, 0x04, 0x00, 0x14, 0x87, 0x44, 0xB6, 0x00, 0xB6, 0x00, 0xB6, 0x00, 0xB6, 0x00, 0x6C, 0x00 + .byte 0x44, 0x00, 0xB6, 0x00, 0xB6, 0x00, 0x6C, 0x00, 0xB6, 0x00, 0x66, 0x00, 0xB6, 0x00, 0xB6, 0x00 + .byte 0xB6, 0x00, 0xB6, 0x00, 0xB6, 0x00, 0xB6, 0x00, 0xB6, 0x00, 0x6C, 0x00, 0x26, 0x00, 0x00, 0x2E + .byte 0x20, 0xD1, 0x00, 0x2D, 0x04, 0xD0, 0x20, 0x1C, 0x40, 0x21, 0x00, 0xF0, 0xE5, 0xFA, 0x07, 0x1C + .byte 0x00, 0xF0, 0x7C, 0xFB, 0x00, 0x28, 0x3A, 0xD0, 0x01, 0x26, 0x13, 0xE0, 0x00, 0x2E, 0x11, 0xD1 + .byte 0x08, 0x2D, 0x01, 0xDA, 0x6D, 0x1C, 0x0D, 0xE0, 0x20, 0x1C, 0x40, 0x21, 0x00, 0xF0, 0xD4, 0xFA + .byte 0x07, 0x1C, 0x00, 0xF0, 0x6B, 0xFB, 0x00, 0x28, 0x29, 0xD0, 0x01, 0x26, 0x02, 0xE0, 0x00, 0x20 + .byte 0x03, 0x90, 0x04, 0x90, 0x03, 0x98, 0x00, 0x28, 0xB7, 0xD1, 0x00, 0x2F, 0x09, 0xD0, 0x79, 0x1E + .byte 0x54, 0x20, 0x48, 0x43, 0x18, 0x49, 0x58, 0x30, 0x09, 0x68, 0x88, 0x47, 0x00, 0x28, 0x06, 0xD1 + .byte 0x15, 0xE0, 0x15, 0x49, 0x58, 0x20, 0x09, 0x68, 0x88, 0x47, 0x00, 0x28, 0x0F, 0xD0, 0x01, 0x99 + .byte 0x00, 0x26, 0x08, 0x60, 0x07, 0x60, 0x00, 0x2F, 0x09, 0xDD, 0x05, 0x1D, 0x20, 0x1C, 0x29, 0x1C + .byte 0xFF, 0xF7, 0x2A, 0xFE, 0x76, 0x1C, 0xC0, 0x34, 0x54, 0x35, 0xBE, 0x42, 0xF6, 0xDB, 0x06, 0xA8 + .byte 0x4A, 0xF5, 0x3A, 0xEF, 0x0C, 0x4D, 0x05, 0xAC, 0x00, 0x26, 0x28, 0x1C, 0x21, 0x1C, 0x32, 0x1C + .byte 0x49, 0xF5, 0x78, 0xED, 0x01, 0x28, 0xF8, 0xD0, 0x03, 0x49, 0x02, 0x98, 0xC9, 0x68, 0x88, 0x47 + .byte 0x04, 0x98, 0x11, 0xB0, 0xF0, 0xBD, 0xC0, 0x46, 0x20, 0x93, 0x35, 0x02, 0xFE, 0xBF, 0x30, 0x00 + .byte 0x42, 0xEC, 0x3F, 0x00, 0x8D, 0x00, 0x33, 0x02, 0x40, 0x93, 0x35, 0x02 + + arm_func_start ov02_023303AC +ov02_023303AC: @ 0x023303AC + ldrshlt fp, [r0], r8 + arm_func_end ov02_023303AC +_023303B0: + .byte 0x01, 0x24, 0x07, 0x1C, 0xA0, 0x1E, 0x03, 0x90, 0x78, 0x6A, 0x00, 0x26, 0x01, 0x91, 0x00, 0x28 + .byte 0x01, 0xD1, 0xE5, 0x04, 0x03, 0xE0, 0x01, 0x28, 0x01, 0xD1, 0x03, 0x25, 0xAD, 0x04, 0x03, 0x20 + .byte 0x00, 0x04, 0x05, 0x43, 0x62, 0x48, 0x00, 0x21, 0x60, 0x22, 0x4C, 0xF5, 0x18, 0xE8, 0xB8, 0x6A + .byte 0x05, 0x28, 0x03, 0xD1, 0x5E, 0x48, 0x01, 0x21, 0x01, 0x70, 0x0F, 0xE0, 0x0D, 0x28, 0x03, 0xD1 + .byte 0x5B, 0x48, 0x02, 0x21, 0x01, 0x70, 0x09, 0xE0, 0x10, 0x28, 0x03, 0xD1, 0x58, 0x48, 0x03, 0x21 + .byte 0x01, 0x70, 0x03, 0xE0, 0x00, 0x20, 0x10, 0xB0, 0xC0, 0x43, 0xF8, 0xBD, 0x14, 0x21, 0x54, 0x4A + .byte 0x71, 0x43, 0x89, 0x1C, 0x38, 0x1C, 0x56, 0x70, 0x51, 0x18, 0xBA, 0x6A, 0x2C, 0x30, 0x4C, 0xF5 + .byte 0x54, 0xE8, 0xA6, 0xF7, 0xDC, 0xEB, 0x3A, 0x68, 0x4E, 0x4B, 0x00, 0x20, 0x39, 0x1D, 0x00, 0xF0 + .byte 0x65, 0xFA, 0x00, 0x28, 0x00, 0xD1, 0x86, 0xE0, 0x00, 0x20, 0x02, 0x90, 0x05, 0xA8, 0x4A, 0xF5 + .byte 0x00, 0xEE, 0x12, 0x20, 0x00, 0x90, 0x48, 0x49, 0x48, 0x4B, 0x05, 0xA8, 0x00, 0x22, 0x4A, 0xF5 + .byte 0x96, 0xEE, 0x69, 0xE0, 0x46, 0x48, 0x04, 0xA9, 0x01, 0x22, 0x49, 0xF5, 0x0C, 0xED, 0x04, 0x98 + .byte 0x13, 0x28, 0x60, 0xD8, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88, 0x00, 0x04, 0x00, 0x14, 0x87, 0x44 + .byte 0xB4, 0x00, 0xB4, 0x00, 0xB4, 0x00, 0xB4, 0x00, 0xB6, 0x00, 0x2E, 0x00, 0xB4, 0x00, 0xB4, 0x00 + .byte 0xB6, 0x00, 0xB4, 0x00, 0x74, 0x00, 0xB4, 0x00, 0x8E, 0x00, 0x94, 0x00, 0xB4, 0x00, 0xB4, 0x00 + .byte 0xB4, 0x00, 0xB4, 0x00, 0x26, 0x00, 0x2C, 0x00, 0x00, 0x2E, 0x45, 0xD1, 0x00, 0x24, 0x43, 0xE0 + .byte 0x00, 0x2E, 0x41, 0xD1, 0x05, 0xA8, 0x4A, 0xF5, 0xA0, 0xEE, 0x32, 0x48, 0x01, 0x21, 0x00, 0xF0 + .byte 0x03, 0xFA, 0x01, 0x28, 0x01, 0xD0, 0x00, 0x24, 0x36, 0xE0, 0x2E, 0x49, 0x38, 0x1C, 0xFF, 0xF7 + .byte 0xC1, 0xFD, 0x2D, 0x49, 0x00, 0x20, 0x49, 0x89, 0x00, 0xE0, 0x40, 0x1C, 0x88, 0x42, 0xFC, 0xDB + .byte 0x28, 0x48, 0x23, 0x49, 0x2A, 0x1C, 0x00, 0xF0, 0xEF, 0xFA, 0x00, 0x28, 0x01, 0xD1, 0x00, 0x24 + .byte 0x22, 0xE0, 0x01, 0x26, 0x20, 0xE0, 0x23, 0x49, 0x38, 0x1C, 0xFF, 0xF7, 0xAB, 0xFD, 0x21, 0x48 + .byte 0x1B, 0x49, 0x2A, 0x1C, 0x00, 0xF0, 0xE0, 0xFA, 0x00, 0x28, 0x15, 0xD1, 0x00, 0x24, 0x13, 0xE0 + .byte 0x00, 0x24, 0x03, 0x94, 0x10, 0xE0, 0x02, 0x98, 0x40, 0x1C, 0x02, 0x90, 0x03, 0x28, 0x08, 0xDA + .byte 0x18, 0x48, 0x13, 0x49, 0x2A, 0x1C, 0x00, 0xF0, 0xCF, 0xFA, 0x00, 0x28, 0x04, 0xD1, 0x00, 0x24 + .byte 0x02, 0xE0, 0x00, 0x24, 0x00, 0xE0, 0x00, 0x24, 0x00, 0x2C, 0x93, 0xD1, 0x05, 0xA8, 0x4A, 0xF5 + .byte 0x5C, 0xEE, 0x0F, 0x4D, 0x04, 0xAC, 0x00, 0x26, 0x28, 0x1C, 0x21, 0x1C, 0x32, 0x1C, 0x49, 0xF5 + .byte 0x9A, 0xEC, 0x01, 0x28, 0xF8, 0xD0, 0x03, 0x98, 0x00, 0x28, 0x01, 0xD1, 0x01, 0x22, 0x00, 0xE0 + .byte 0x00, 0x22, 0x01, 0x98, 0x07, 0x49, 0xFF, 0xF7, 0x87, 0xFD, 0x03, 0x98, 0x10, 0xB0, 0xF8, 0xBD + .byte 0x20, 0x94, 0x35, 0x02, 0xFE, 0xBF, 0x30, 0x00, 0x42, 0xEC, 0x3F, 0x00, 0x8D, 0x00, 0x33, 0x02 + .byte 0x40, 0x93, 0x35, 0x02, 0x60, 0x93, 0x35, 0x02, 0x60, 0x93, 0x35, 0x02 + + arm_func_start ov02_02079B14 +ov02_02079B14: @ 0x0233057C + ldrmi r4, [r8, -r0, lsl #22] + andeq sb, r7, #20, #22 + arm_func_end ov02_02079B14 + + arm_func_start ov02_02330584 +ov02_02330584: @ 0x02330584 + stmdbmi r3, {r3, r8, sl, ip, sp, pc} + stmdbhs r0, {r0, r3, r6, fp, sp, lr} + strmi sp, [r8, r0] + stclt p0, c2, [r8, #-0] + eorseq sb, r5, #32, #6 + stmdahs r0, {r3, r8, sl, ip, sp, pc} + cmp r3, r0, lsl #2 + .word 0x5E422100 + stmdble r0, {r0, r1, r2, sb, fp, sp} + ldmne r2, {r0, r1, r2, r6, r8, sp, lr, pc} + ldmhi r2, {r1, r3, r4, r5, r6, sl, lr} ^ + ldrne r0, [r2], #-0x412 + addeq r4, r2, #0x97000000 + eorseq r0, r6, #0xe + rscseq r0, r2, lr, lsl #1 + orrseq r0, r2, r0, asr #1 + andhs r0, r2, #0xe0000006 + stmdahs r0, {r7, sb, sl, fp, ip, lr} + bmi _00B24A98 + stmdahs r4, {r4, r7, r8, fp, sp, lr} + andhs sp, r3, r7, lsl #2 + ldmibvs r2, {r4, r7, r8, sp, lr} ^ + eorle r2, lr, r0, lsl #20 + ldrmi r2, [r0, r6] + stmdahs r6, {r3, r8, sl, fp, ip, sp, pc} + ldmdbvs r0, {r4, r8, ip, lr, pc} + ldmdavs r2, {r0, r4, r6, r8, fp, sp, lr} ^ + ldcl p7, c15, [r0], #-0x290 + eorle r2, r2, r3, lsl #16 + .word 0x21034894 + stmibvs r2, {r0, r7, r8, sp, lr} ^ + andsle r2, ip, r0, lsl #20 + arm_func_end ov02_02330584 +_02330604: + .byte 0x02, 0x20, 0x00, 0x21, 0x90, 0x47, 0x08, 0xBD, 0x08, 0x28, 0x16, 0xD1 + .byte 0x10, 0x6A, 0x51, 0x6A, 0xD2, 0x68, 0xA4, 0xF7, 0x7C, 0xED, 0x03, 0x28, 0x0F, 0xD0, 0x8B, 0x48 + .byte 0x03, 0x21, 0x81, 0x61, 0xC2, 0x69, 0x00, 0x2A, 0x09, 0xD0, 0x02, 0x20, 0x00, 0x21, 0x90, 0x47 + .byte 0x08, 0xBD, 0x86, 0x48, 0x01, 0x23, 0x83, 0x61, 0xC3, 0x69, 0x00, 0x2B, 0x00, 0xD1, 0x03, 0xE1 + .byte 0x10, 0x1C, 0x98, 0x47, 0x08, 0xBD, 0x02, 0x22, 0x80, 0x5E, 0x00, 0x28, 0x0B, 0xD1, 0x7F, 0x48 + .byte 0x82, 0x69, 0x06, 0x2A, 0x75, 0xD1, 0x05, 0x22, 0x82, 0x61, 0xC2, 0x69, 0x00, 0x2A, 0x70, 0xD0 + .byte 0x08, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x79, 0x48, 0x03, 0x22, 0x82, 0x61, 0xC2, 0x69, 0x00, 0x2A + .byte 0x67, 0xD0, 0x09, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x02, 0x22, 0x80, 0x5E, 0x00, 0x28, 0x0B, 0xD1 + .byte 0x72, 0x48, 0x82, 0x69, 0x08, 0x2A, 0x5C, 0xD1, 0x07, 0x22, 0x82, 0x61, 0xC2, 0x69, 0x00, 0x2A + .byte 0x57, 0xD0, 0x0C, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x6C, 0x48, 0x03, 0x22, 0x82, 0x61, 0xC2, 0x69 + .byte 0x00, 0x2A, 0x4E, 0xD0, 0x0D, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x02, 0x22, 0x80, 0x5E, 0x00, 0x28 + .byte 0x41, 0xD1, 0x66, 0x4A, 0x90, 0x69, 0x04, 0x28, 0x07, 0xD1, 0x03, 0x20, 0x90, 0x61, 0xD2, 0x69 + .byte 0x00, 0x2A, 0x3E, 0xD0, 0x0A, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x06, 0x28, 0x10, 0xD1, 0x10, 0x69 + .byte 0x51, 0x69, 0x52, 0x68, 0xA4, 0xF7, 0xFE, 0xEB, 0x03, 0x28, 0x32, 0xD0, 0x5B, 0x48, 0x03, 0x21 + .byte 0x81, 0x61, 0xC2, 0x69, 0x00, 0x2A, 0x2C, 0xD0, 0x02, 0x20, 0x00, 0x21, 0x90, 0x47, 0x08, 0xBD + .byte 0x02, 0x28, 0x0D, 0xD1, 0xA4, 0xF7, 0x76, 0xEB, 0x03, 0x28, 0x22, 0xD0, 0x53, 0x48, 0x03, 0x21 + .byte 0x81, 0x61, 0xC2, 0x69, 0x00, 0x2A, 0x1C, 0xD0, 0x02, 0x20, 0x00, 0x21, 0x90, 0x47, 0x08, 0xBD + .byte 0x08, 0x28, 0x16, 0xD1, 0x10, 0x6A, 0x51, 0x6A, 0xD2, 0x68, 0xA4, 0xF7, 0xFA, 0xEC, 0x03, 0x28 + .byte 0x0F, 0xD0, 0x4A, 0x48, 0x03, 0x21, 0x81, 0x61, 0xC2, 0x69, 0x00, 0x2A, 0x09, 0xD0, 0x02, 0x20 + .byte 0x00, 0x21, 0x90, 0x47, 0x08, 0xBD, 0x45, 0x48, 0x03, 0x22, 0x82, 0x61, 0xC2, 0x69, 0x00, 0x2A + .byte 0x00, 0xD1, 0x81, 0xE0, 0x0B, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x02, 0x22, 0x80, 0x5E, 0x00, 0x28 + .byte 0x44, 0xD1, 0x3E, 0x4A, 0x90, 0x69, 0x04, 0x28, 0x07, 0xD1, 0x03, 0x20, 0x90, 0x61, 0xD2, 0x69 + .byte 0x00, 0x2A, 0x71, 0xD0, 0x0E, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x06, 0x28, 0x10, 0xD1, 0x10, 0x69 + .byte 0x51, 0x69, 0x52, 0x68, 0xA4, 0xF7, 0xAE, 0xEB, 0x03, 0x28, 0x65, 0xD0, 0x33, 0x48, 0x03, 0x21 + .byte 0x81, 0x61, 0xC2, 0x69, 0x00, 0x2A, 0x5F, 0xD0, 0x02, 0x20, 0x00, 0x21, 0x90, 0x47, 0x08, 0xBD + .byte 0x02, 0x28, 0x0D, 0xD1, 0xA4, 0xF7, 0x26, 0xEB, 0x03, 0x28, 0x55, 0xD0, 0x2B, 0x48, 0x03, 0x21 + .byte 0x81, 0x61, 0xC2, 0x69, 0x00, 0x2A, 0x4F, 0xD0, 0x02, 0x20, 0x00, 0x21, 0x90, 0x47, 0x08, 0xBD + .byte 0x08, 0x28, 0x10, 0xD1, 0x10, 0x6A, 0x51, 0x6A, 0xD2, 0x68, 0xA4, 0xF7, 0xAA, 0xEC, 0x03, 0x28 + .byte 0x42, 0xD0, 0x22, 0x48, 0x03, 0x21, 0x81, 0x61, 0xC2, 0x69, 0x00, 0x2A, 0x3C, 0xD0, 0x02, 0x20 + .byte 0x00, 0x21, 0x90, 0x47, 0x08, 0xBD, 0x03, 0x20, 0x90, 0x61, 0x08, 0xBD, 0x1B, 0x48, 0x03, 0x22 + .byte 0x82, 0x61, 0xC2, 0x69, 0x00, 0x2A, 0x2F, 0xD0, 0x0F, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x02, 0x22 + .byte 0x80, 0x5E, 0x00, 0x28, 0x0E, 0xD1, 0x15, 0x48, 0x80, 0x69, 0x02, 0x28, 0x24, 0xD1, 0xA4, 0xF7 + .byte 0xC4, 0xE9, 0x12, 0x48, 0x00, 0x21, 0x81, 0x61, 0xC2, 0x69, 0x00, 0x2A, 0x1C, 0xD0, 0x14, 0x20 + .byte 0x90, 0x47, 0x08, 0xBD, 0x0D, 0x48, 0x03, 0x23, 0x83, 0x61, 0xC3, 0x69, 0x00, 0x2B, 0x13, 0xD0 + .byte 0x10, 0x1C, 0x98, 0x47, 0x08, 0xBD, 0x09, 0x48, 0x82, 0x69, 0x05, 0x2A, 0x0C, 0xD1, 0xC2, 0x69 + .byte 0x00, 0x2A, 0x09, 0xD0, 0x05, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x04, 0x48, 0xC2, 0x69, 0x00, 0x2A + .byte 0x02, 0xD0, 0x01, 0x20, 0x00, 0x21, 0x90, 0x47, 0x08, 0xBD, 0xC0, 0x46, 0x80, 0x94, 0x35, 0x02 + + arm_func_start ov02_02330850 +ov02_02330850: @ 0x02330850 + ldmdbmi r7, {r3, r8, sl, ip, sp, pc} + stmdahs r8, {r3, r7, r8, fp, sp, lr} + stmdane r0, {r0, r2, r5, fp, ip, lr, pc} + stmhi r0, {r3, r4, r5, r6, sl, lr} ^ + strne r0, [r0], #-0x400 + eorseq r4, lr, r7, lsl #9 + eorseq r0, lr, lr, lsr #32 + eorseq r0, lr, lr, lsr r0 + eorseq r0, lr, r0, lsl r0 + eorseq r0, lr, r2, lsr #32 + arm_func_end ov02_02330850 +_02330878: + .byte 0x00, 0x20, 0x01, 0x1C, 0x02, 0x1C, 0xA4, 0xF7 + .byte 0x2A, 0xEB, 0x03, 0x28, 0x11, 0xD0, 0x00, 0x20, 0x08, 0xBD, 0xA4, 0xF7, 0x44, 0xED, 0x03, 0x28 + .byte 0x0B, 0xD0, 0x00, 0x20, 0x08, 0xBD, 0x88, 0x68, 0x06, 0x49, 0xA4, 0xF7, 0xA2, 0xE9, 0x03, 0x28 + .byte 0x03, 0xD0, 0x00, 0x20, 0x08, 0xBD, 0x00, 0x20, 0x08, 0xBD, 0x01, 0x20, 0x08, 0xBD, 0xC0, 0x46 + .byte 0x80, 0x94, 0x35, 0x02, 0x99, 0x05, 0x33, 0x02 + + arm_func_start ov02_023308B8 +ov02_023308B8: @ 0x023308B8 + arm_func_end ov02_023308B8 +_023308B8: + .byte 0xF8, 0xB5, 0x05, 0x1C, 0x01, 0x20, 0x0F, 0x1C + .byte 0xA6, 0xF7, 0xE2, 0xE9, 0xA6, 0xF7, 0xB4, 0xE9, 0x06, 0x1C, 0x00, 0x2E, 0x10, 0xDD, 0x00, 0x24 + .byte 0x00, 0x2E, 0x0D, 0xDD, 0xBC, 0x42, 0x0B, 0xDA, 0x20, 0x04, 0x00, 0x0C, 0xA6, 0xF7, 0x12, 0xEA + .byte 0x29, 0x1C, 0xC0, 0x22, 0x4B, 0xF5, 0x24, 0xED, 0x64, 0x1C, 0xC0, 0x35, 0xB4, 0x42, 0xF1, 0xDB + .byte 0x00, 0x20, 0xA6, 0xF7, 0xCA, 0xE9, 0x30, 0x1C, 0xF8, 0xBD, 0x00, 0x00 + + arm_func_start ov02_023308FC +ov02_023308FC: @ 0x023308FC + movwls fp, #0x5f8 + arm_func_end ov02_023308FC +_02330900: + .byte 0x05, 0x1C, 0x0C, 0x1C, 0x16, 0x1C, 0x4A, 0xF5, 0x6E, 0xEF, 0x07, 0x1C, 0x32, 0x49, 0x00, 0x98 + .byte 0x00, 0x2D, 0x48, 0x60, 0x0C, 0xD0, 0x31, 0x4A, 0x00, 0x21, 0x28, 0x78, 0x49, 0x1C, 0x6D, 0x1C + .byte 0x10, 0x70, 0x52, 0x1C, 0x06, 0x29, 0xF8, 0xDB, 0x2C, 0x49, 0x2B, 0x48, 0x01, 0x61, 0x07, 0xE0 + .byte 0x2A, 0x48, 0xFF, 0x21, 0x06, 0x22, 0x4B, 0xF5, 0x6A, 0xED, 0x29, 0x49, 0x26, 0x48, 0x01, 0x61 + .byte 0x00, 0x2C, 0x1C, 0xD0, 0x00, 0x2E, 0x1A, 0xDD, 0x20, 0x2E, 0x18, 0xDC, 0x00, 0x20, 0x00, 0x2E + .byte 0x07, 0xDD, 0x24, 0x4A, 0x21, 0x78, 0x40, 0x1C, 0x64, 0x1C, 0x11, 0x70, 0x52, 0x1C, 0xB0, 0x42 + .byte 0xF8, 0xDB, 0x20, 0x28, 0x07, 0xDA, 0x1F, 0x49, 0x0A, 0x18, 0x00, 0x21, 0x40, 0x1C, 0x11, 0x70 + .byte 0x52, 0x1C, 0x20, 0x28, 0xFA, 0xDB, 0x1B, 0x49, 0x17, 0x48, 0x41, 0x61, 0x07, 0xE0, 0x19, 0x48 + .byte 0xFF, 0x21, 0x20, 0x22, 0x4B, 0xF5, 0x42, 0xED, 0x17, 0x49, 0x13, 0x48, 0x41, 0x61, 0x12, 0x4A + .byte 0x90, 0x69, 0x03, 0x28, 0x0E, 0xD1, 0x10, 0x69, 0x51, 0x69, 0x52, 0x68, 0xA4, 0xF7, 0x9A, 0xEA + .byte 0x03, 0x28, 0x13, 0xD1, 0x0C, 0x48, 0x06, 0x21, 0x81, 0x61, 0x38, 0x1C, 0x4A, 0xF5, 0x24, 0xEF + .byte 0x01, 0x20, 0xF8, 0xBD, 0xFF, 0xF7, 0x4C, 0xFF, 0x01, 0x28, 0x07, 0xD1, 0x06, 0x48, 0x06, 0x21 + .byte 0x81, 0x61, 0x38, 0x1C, 0x4A, 0xF5, 0x18, 0xEF, 0x01, 0x20, 0xF8, 0xBD, 0x38, 0x1C, 0x4A, 0xF5 + .byte 0x14, 0xEF, 0x00, 0x20, 0xF8, 0xBD, 0xC0, 0x46, 0x80, 0x94, 0x35, 0x02, 0xA8, 0x94, 0x35, 0x02 + .byte 0x58, 0x81, 0x31, 0x02, 0xB0, 0x94, 0x35, 0x02, 0x60, 0x81, 0x31, 0x02 + + arm_func_start ov02_023309EC +ov02_023309EC: @ 0x023309EC + arm_func_end ov02_023309EC +_023309EC: + .byte 0x10, 0xB5, 0x4A, 0xF5 + .byte 0xFA, 0xEE, 0x04, 0x1C, 0x0B, 0x48, 0x80, 0x69, 0x05, 0x28, 0x0E, 0xD1, 0x00, 0x20, 0x01, 0x1C + .byte 0x02, 0x1C, 0xA4, 0xF7, 0x68, 0xEA, 0x03, 0x28, 0x07, 0xD1, 0x06, 0x48, 0x04, 0x21, 0x81, 0x61 + .byte 0x20, 0x1C, 0x4A, 0xF5, 0xF2, 0xEE, 0x01, 0x20, 0x10, 0xBD, 0x20, 0x1C, 0x4A, 0xF5, 0xEC, 0xEE + .byte 0x00, 0x20, 0x10, 0xBD, 0x80, 0x94, 0x35, 0x02 + + arm_func_start ov02_02330A28 +ov02_02330A28: @ 0x02330A28 + arm_func_end ov02_02330A28 +_02330A28: + .byte 0x10, 0xB5, 0x4A, 0xF5, 0xDC, 0xEE, 0x04, 0x1C + .byte 0x0A, 0x48, 0x80, 0x69, 0x07, 0x28, 0x0B, 0xD1, 0xA4, 0xF7, 0x6C, 0xEC, 0x03, 0x28, 0x07, 0xD1 + .byte 0x06, 0x48, 0x04, 0x21, 0x81, 0x61, 0x20, 0x1C, 0x4A, 0xF5, 0xD6, 0xEE, 0x01, 0x20, 0x10, 0xBD + .byte 0x20, 0x1C, 0x4A, 0xF5, 0xD2, 0xEE, 0x00, 0x20, 0x10, 0xBD, 0xC0, 0x46, 0x80, 0x94, 0x35, 0x02 + + arm_func_start ov02_02330A60 +ov02_02330A60: @ 0x02330A60 + arm_func_end ov02_02330A60 +_02330A60: + .byte 0x10, 0xB5, 0x4A, 0xF5, 0xC0, 0xEE, 0x04, 0x1C, 0x12, 0x48, 0x80, 0x69, 0x03, 0x28, 0x10, 0xD1 + .byte 0xA4, 0xF7, 0xB8, 0xE9, 0x03, 0x28, 0x04, 0xD0, 0x20, 0x1C, 0x4A, 0xF5, 0xBE, 0xEE, 0x00, 0x20 + .byte 0x10, 0xBD, 0x0C, 0x48, 0x02, 0x21, 0x81, 0x61, 0x20, 0x1C, 0x4A, 0xF5, 0xB6, 0xEE, 0x01, 0x20 + .byte 0x10, 0xBD, 0xFF, 0xF7, 0xDD, 0xFE, 0x01, 0x28, 0x07, 0xD1, 0x06, 0x48, 0x02, 0x21, 0x81, 0x61 + .byte 0x20, 0x1C, 0x4A, 0xF5, 0xAA, 0xEE, 0x01, 0x20, 0x10, 0xBD, 0x20, 0x1C, 0x4A, 0xF5, 0xA4, 0xEE + .byte 0x00, 0x20, 0x10, 0xBD, 0x80, 0x94, 0x35, 0x02 + + arm_func_start ov02_02330AB8 +ov02_02330AB8: @ 0x02330AB8 + arm_func_end ov02_02330AB8 +_02330AB8: + .byte 0xF8, 0xB5, 0x07, 0x1C, 0x0D, 0x1C, 0x16, 0x1C + .byte 0x4A, 0xF5, 0x90, 0xEE, 0x1C, 0x49, 0x04, 0x1C, 0xCE, 0x60, 0x00, 0x2D, 0x05, 0xD0, 0x49, 0x6A + .byte 0x28, 0x1C, 0x50, 0x22, 0x4B, 0xF5, 0xF8, 0xEC, 0x04, 0xE0, 0x48, 0x6A, 0x00, 0x21, 0x50, 0x22 + .byte 0x4B, 0xF5, 0x94, 0xEC, 0x14, 0x49, 0x38, 0x1C, 0x09, 0x6A, 0xC0, 0x22, 0x4B, 0xF5, 0x20, 0xEC + .byte 0xFF, 0xF7, 0xAE, 0xFE, 0x01, 0x28, 0x07, 0xD1, 0x0F, 0x48, 0x08, 0x21, 0x81, 0x61, 0x20, 0x1C + .byte 0x4A, 0xF5, 0x7A, 0xEE, 0x01, 0x20, 0xF8, 0xBD, 0x0B, 0x4A, 0x90, 0x69, 0x03, 0x28, 0x0E, 0xD1 + .byte 0x10, 0x6A, 0x51, 0x6A, 0xD2, 0x68, 0xA4, 0xF7, 0xFC, 0xEA, 0x03, 0x28, 0x07, 0xD1, 0x06, 0x48 + .byte 0x08, 0x21, 0x81, 0x61, 0x20, 0x1C, 0x4A, 0xF5, 0x68, 0xEE, 0x01, 0x20, 0xF8, 0xBD, 0x20, 0x1C + .byte 0x4A, 0xF5, 0x62, 0xEE, 0x00, 0x20, 0xF8, 0xBD, 0x80, 0x94, 0x35, 0x02 + + arm_func_start ov02_02330B3C +ov02_02330B3C: @ 0x02330B3C + arm_func_end ov02_02330B3C +_02330B3C: + .byte 0xF8, 0xB5, 0x0D, 0x1C + .byte 0x07, 0x1C, 0x00, 0x92, 0x4A, 0xF5, 0x4E, 0xEE, 0x04, 0x1C, 0x28, 0x1C, 0x26, 0x4A, 0x53, 0x30 + .byte 0x03, 0x21, 0x88, 0x43, 0x06, 0x1C, 0x55, 0x62, 0x2F, 0x36, 0x1F, 0x21, 0x23, 0x4B, 0x90, 0x60 + .byte 0x8E, 0x43, 0x16, 0x60, 0xF6, 0x18, 0x8E, 0x43, 0x16, 0x62, 0xDF, 0x36, 0x8E, 0x43, 0x46, 0x60 + .byte 0x00, 0x99, 0x90, 0x68, 0x6D, 0x18, 0x41, 0x68, 0x69, 0x1A, 0x81, 0x60, 0x90, 0x68, 0x00, 0x21 + .byte 0xC1, 0x60, 0x90, 0x68, 0x03, 0x21, 0x01, 0x60, 0xD7, 0x61, 0x90, 0x69, 0x00, 0x28, 0x0E, 0xD1 + .byte 0x1F, 0x3B, 0x10, 0x68, 0x19, 0x1C, 0xA3, 0xF7, 0x6C, 0xEF, 0x00, 0x28, 0x04, 0xD0, 0x20, 0x1C + .byte 0x4A, 0xF5, 0x2A, 0xEE, 0x00, 0x20, 0xF8, 0xBD, 0x0F, 0x48, 0x01, 0x21, 0x81, 0x61, 0x0E, 0x48 + .byte 0x81, 0x69, 0x01, 0x29, 0x12, 0xD1, 0x80, 0x68, 0x0D, 0x49, 0xA4, 0xF7, 0x12, 0xE8, 0x03, 0x28 + .byte 0x04, 0xD0, 0x20, 0x1C, 0x4A, 0xF5, 0x18, 0xEE, 0x00, 0x20, 0xF8, 0xBD, 0x06, 0x48, 0x04, 0x21 + .byte 0x81, 0x61, 0x20, 0x1C, 0x4A, 0xF5, 0x10, 0xEE, 0x01, 0x20, 0xF8, 0xBD, 0x20, 0x1C, 0x4A, 0xF5 + .byte 0x0C, 0xEE, 0x00, 0x20, 0xF8, 0xBD, 0xC0, 0x46, 0x80, 0x94, 0x35, 0x02, 0x1F, 0x23, 0x00, 0x00 + .byte 0x99, 0x05, 0x33, 0x02, 0x08, 0xB5, 0x00, 0x28, 0x00, 0xD1, 0x7C, 0xE1, 0x00, 0x21, 0x42, 0x5E + .byte 0x09, 0x2A, 0x00, 0xD9, 0x70, 0xE1, 0x92, 0x18, 0x7A, 0x44, 0xD2, 0x88, 0x12, 0x04, 0x12, 0x14 + .byte 0x97, 0x44, 0xD4, 0x02, 0x12, 0x00, 0x62, 0x02, 0x98, 0x00, 0x06, 0x01, 0xD0, 0x00, 0xAE, 0x01 + .byte 0x9E, 0x02, 0xB4, 0x02, 0xC2, 0x02, 0x02, 0x22, 0x80, 0x5E, 0x00, 0x28, 0x34, 0xD1, 0xB2, 0x4A + .byte 0xD0, 0x6A, 0x04, 0x28, 0x08, 0xD1, 0x03, 0x20, 0xD0, 0x62, 0xB0, 0x48, 0x02, 0x68, 0x00, 0x2A + .byte 0x4C, 0xD0, 0x06, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x06, 0x28, 0x11, 0xD1, 0x50, 0x6C, 0x91, 0x6C + .byte 0x12, 0x6E, 0xA4, 0xF7, 0x40, 0xE9, 0x03, 0x28, 0x40, 0xD0, 0xA7, 0x48, 0x03, 0x21, 0xC1, 0x62 + .byte 0xA6, 0x48, 0x02, 0x68, 0x00, 0x2A, 0x39, 0xD0, 0x02, 0x20, 0x00, 0x21, 0x90, 0x47, 0x08, 0xBD + .byte 0x08, 0x28, 0x33, 0xD1, 0xD0, 0x6C, 0x91, 0x6A, 0x92, 0x6D, 0xA4, 0xF7, 0x4A, 0xEA, 0x03, 0x28 + .byte 0x2C, 0xD0, 0x9D, 0x48, 0x03, 0x21, 0xC1, 0x62, 0x9C, 0x48, 0x02, 0x68, 0x00, 0x2A, 0x25, 0xD0 + .byte 0x02, 0x20, 0x00, 0x21, 0x90, 0x47, 0x08, 0xBD, 0x97, 0x48, 0x01, 0x23, 0xC3, 0x62, 0x97, 0x48 + .byte 0x03, 0x68, 0x00, 0x2B, 0x1A, 0xD0, 0x10, 0x1C, 0x98, 0x47, 0x08, 0xBD, 0x02, 0x22, 0x80, 0x5E + .byte 0x00, 0x28, 0x0C, 0xD1, 0x90, 0x48, 0xC2, 0x6A, 0x06, 0x2A, 0x0F, 0xD1, 0x05, 0x22, 0xC2, 0x62 + .byte 0x8E, 0x48, 0x02, 0x68, 0x00, 0x2A, 0x09, 0xD0, 0x08, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x8A, 0x48 + .byte 0x03, 0x22, 0xC2, 0x62, 0x89, 0x48, 0x02, 0x68, 0x00, 0x2A, 0x00, 0xD1, 0x0B, 0xE1, 0x09, 0x20 + .byte 0x90, 0x47, 0x08, 0xBD, 0x02, 0x22, 0x80, 0x5E, 0x00, 0x28, 0x0C, 0xD1, 0x82, 0x48, 0xC2, 0x6A + .byte 0x08, 0x2A, 0x74, 0xD1, 0x07, 0x22, 0xC2, 0x62, 0x80, 0x48, 0x02, 0x68, 0x00, 0x2A, 0x6E, 0xD0 + .byte 0x0C, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x7C, 0x48, 0x03, 0x22, 0xC2, 0x62, 0x7B, 0x48, 0x02, 0x68 + .byte 0x00, 0x2A, 0x64, 0xD0, 0x0D, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x02, 0x22, 0x80, 0x5E, 0x00, 0x28 + .byte 0x45, 0xD1, 0x75, 0x4A, 0xD0, 0x6A, 0x04, 0x28, 0x08, 0xD1, 0x03, 0x20, 0xD0, 0x62, 0x73, 0x48 + .byte 0x02, 0x68, 0x00, 0x2A, 0x53, 0xD0, 0x0A, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x06, 0x28, 0x11, 0xD1 + .byte 0x50, 0x6C, 0x91, 0x6C, 0x12, 0x6E, 0xA4, 0xF7, 0xC6, 0xE8, 0x03, 0x28, 0x47, 0xD0, 0x6A, 0x48 + .byte 0x03, 0x21, 0xC1, 0x62, 0x69, 0x48, 0x02, 0x68, 0x00, 0x2A, 0x40, 0xD0, 0x02, 0x20, 0x00, 0x21 + .byte 0x90, 0x47, 0x08, 0xBD, 0x02, 0x28, 0x0E, 0xD1, 0xA4, 0xF7, 0x3C, 0xE8, 0x03, 0x28, 0x36, 0xD0 + .byte 0x61, 0x48, 0x03, 0x21, 0xC1, 0x62, 0x61, 0x48, 0x02, 0x68, 0x00, 0x2A, 0x2F, 0xD0, 0x02, 0x20 + .byte 0x00, 0x21, 0x90, 0x47, 0x08, 0xBD, 0x08, 0x28, 0x29, 0xD1, 0xD0, 0x6C, 0x91, 0x6A, 0x92, 0x6D + .byte 0xA4, 0xF7, 0xBE, 0xE9, 0x03, 0x28, 0x22, 0xD0, 0x57, 0x48, 0x03, 0x21, 0xC1, 0x62, 0x57, 0x48 + .byte 0x02, 0x68, 0x00, 0x2A, 0x1B, 0xD0, 0x02, 0x20, 0x00, 0x21, 0x90, 0x47, 0x08, 0xBD, 0x52, 0x48 + .byte 0x03, 0x22, 0xC2, 0x62, 0x51, 0x48, 0x02, 0x68, 0x00, 0x2A, 0x10, 0xD0, 0x0B, 0x20, 0x90, 0x47 + .byte 0x08, 0xBD, 0x02, 0x22, 0x80, 0x5E, 0x00, 0x28, 0x4B, 0xD1, 0x4B, 0x4A, 0xD0, 0x6A, 0x04, 0x28 + .byte 0x09, 0xD1, 0x03, 0x20, 0xD0, 0x62, 0x49, 0x48, 0x02, 0x68, 0x00, 0x2A, 0x00, 0xD1, 0x8A, 0xE0 + .byte 0x0E, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x06, 0x28, 0x11, 0xD1, 0x50, 0x6C, 0x91, 0x6C, 0x12, 0x6E + .byte 0xA4, 0xF7, 0x70, 0xE8, 0x03, 0x28, 0x7E, 0xD0, 0x3F, 0x48, 0x03, 0x21, 0xC1, 0x62, 0x3F, 0x48 + .byte 0x02, 0x68, 0x00, 0x2A, 0x77, 0xD0, 0x02, 0x20, 0x00, 0x21, 0x90, 0x47, 0x08, 0xBD, 0x02, 0x28 + .byte 0x0E, 0xD1, 0xA3, 0xF7, 0xE8, 0xEF, 0x03, 0x28, 0x6D, 0xD0, 0x37, 0x48, 0x03, 0x21, 0xC1, 0x62 + .byte 0x36, 0x48, 0x02, 0x68, 0x00, 0x2A, 0x66, 0xD0, 0x02, 0x20, 0x00, 0x21, 0x90, 0x47, 0x08, 0xBD + .byte 0x08, 0x28, 0x11, 0xD1, 0xD0, 0x6C, 0x91, 0x6A, 0x92, 0x6D, 0xA4, 0xF7, 0x6A, 0xE9, 0x03, 0x28 + .byte 0x59, 0xD0, 0x2D, 0x48, 0x03, 0x21, 0xC1, 0x62, 0x2C, 0x48, 0x02, 0x68, 0x00, 0x2A, 0x52, 0xD0 + .byte 0x02, 0x20, 0x00, 0x21, 0x90, 0x47, 0x08, 0xBD, 0x07, 0x28, 0x4C, 0xD1, 0x03, 0x20, 0xD0, 0x62 + .byte 0x08, 0xBD, 0x25, 0x48, 0x03, 0x22, 0xC2, 0x62, 0x24, 0x48, 0x02, 0x68, 0x00, 0x2A, 0x42, 0xD0 + .byte 0x0F, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x02, 0x22, 0x80, 0x5E, 0x00, 0x28, 0x0F, 0xD1, 0x1E, 0x48 + .byte 0xC0, 0x6A, 0x02, 0x28, 0x37, 0xD1, 0xA3, 0xF7, 0x80, 0xEE, 0x1B, 0x48, 0x00, 0x21, 0xC1, 0x62 + .byte 0x1A, 0x48, 0x02, 0x68, 0x00, 0x2A, 0x2E, 0xD0, 0x14, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x16, 0x48 + .byte 0x03, 0x23, 0xC3, 0x62, 0x15, 0x48, 0x03, 0x68, 0x00, 0x2B, 0x24, 0xD0, 0x10, 0x1C, 0x98, 0x47 + .byte 0x08, 0xBD, 0x11, 0x48, 0xC0, 0x6A, 0x05, 0x28, 0x1D, 0xD1, 0x10, 0x48, 0x02, 0x68, 0x00, 0x2A + .byte 0x19, 0xD0, 0x05, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x0C, 0x48, 0x02, 0x68, 0x00, 0x2A, 0x12, 0xD0 + .byte 0x04, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x08, 0x48, 0xC1, 0x62, 0x08, 0x48, 0x02, 0x68, 0x00, 0x2A + .byte 0x09, 0xD0, 0x03, 0x20, 0x90, 0x47, 0x08, 0xBD, 0x04, 0x48, 0x02, 0x68, 0x00, 0x2A, 0x02, 0xD0 + .byte 0x01, 0x20, 0x00, 0x21, 0x90, 0x47, 0x08, 0xBD, 0xD0, 0x94, 0x35, 0x02, 0x50, 0x95, 0x35, 0x02 + + arm_func_start ov02_02330F00 +ov02_02330F00: @ 0x02330F00 + ldmdbmi r7, {r3, r8, sl, ip, sp, pc} + stmdahs r8, {r3, r6, r7, sb, fp, sp, lr} + stmdane r0, {r0, r2, r5, fp, ip, lr, pc} + stmhi r0, {r3, r4, r5, r6, sl, lr} ^ + strne r0, [r0], #-0x400 + eorseq r4, lr, r7, lsl #9 + eorseq r0, lr, lr, lsr #32 + eorseq r0, lr, lr, lsr r0 + eorseq r0, lr, r0, lsl r0 + eorseq r0, lr, r2, lsr #32 + arm_func_end ov02_02330F00 +_02330F28: + .byte 0x00, 0x20, 0x01, 0x1C, 0x02, 0x1C, 0xA3, 0xF7 + .byte 0xD2, 0xEF, 0x03, 0x28, 0x11, 0xD0, 0x00, 0x20, 0x08, 0xBD, 0xA4, 0xF7, 0xEC, 0xE9, 0x03, 0x28 + .byte 0x0B, 0xD0, 0x00, 0x20, 0x08, 0xBD, 0x88, 0x68, 0x06, 0x49, 0xA3, 0xF7, 0x4A, 0xEE, 0x03, 0x28 + .byte 0x03, 0xD0, 0x00, 0x20, 0x08, 0xBD, 0x00, 0x20, 0x08, 0xBD, 0x01, 0x20, 0x08, 0xBD, 0xC0, 0x46 + .byte 0xD0, 0x94, 0x35, 0x02, 0xF5, 0x0B, 0x33, 0x02 + + arm_func_start ov02_02330F68 +ov02_02330F68: @ 0x02330F68 + arm_func_end ov02_02330F68 +_02330F68: + .byte 0xF8, 0xB5, 0x05, 0x1C, 0x01, 0x20, 0x0F, 0x1C + .byte 0xA5, 0xF7, 0x8A, 0xEE, 0xA5, 0xF7, 0x5C, 0xEE, 0x06, 0x1C, 0x00, 0x2E, 0x10, 0xDD, 0x00, 0x24 + .byte 0x00, 0x2E, 0x0D, 0xDD, 0xBC, 0x42, 0x0B, 0xDA, 0x20, 0x04, 0x00, 0x0C, 0xA5, 0xF7, 0xBA, 0xEE + .byte 0x29, 0x1C, 0xC0, 0x22, 0x4B, 0xF5, 0xCC, 0xE9, 0x64, 0x1C, 0xC0, 0x35, 0xB4, 0x42, 0xF1, 0xDB + .byte 0x00, 0x20, 0xA5, 0xF7, 0x72, 0xEE, 0x30, 0x1C, 0xF8, 0xBD, 0x00, 0x00 + + arm_func_start ov02_02330FAC +ov02_02330FAC: @ 0x02330FAC + movwls fp, #0x5f8 + arm_func_end ov02_02330FAC +_02330FB0: + .byte 0x05, 0x1C, 0x0C, 0x1C, 0x16, 0x1C, 0x4A, 0xF5, 0x16, 0xEC, 0x07, 0x1C, 0x30, 0x49, 0x00, 0x98 + .byte 0x00, 0x2D, 0x08, 0x66, 0x2F, 0x48, 0x48, 0x64, 0x08, 0xD0, 0x00, 0x22, 0x29, 0x78, 0x52, 0x1C + .byte 0x6D, 0x1C, 0x01, 0x70, 0x40, 0x1C, 0x06, 0x2A, 0xF8, 0xDB, 0x06, 0xE0, 0xFF, 0x21, 0x06, 0x22 + .byte 0x4B, 0xF5, 0x14, 0xEA, 0x28, 0x49, 0x26, 0x48, 0x41, 0x64, 0x28, 0x4A, 0x24, 0x48, 0x00, 0x2C + .byte 0x82, 0x64, 0x18, 0xD0, 0x00, 0x2E, 0x16, 0xDD, 0x20, 0x2E, 0x14, 0xDA, 0x00, 0x20, 0x00, 0x2E + .byte 0x06, 0xDD, 0x21, 0x78, 0x40, 0x1C, 0x64, 0x1C, 0x11, 0x70, 0x52, 0x1C, 0xB0, 0x42, 0xF8, 0xDB + .byte 0x20, 0x28, 0x10, 0xDA, 0x1D, 0x49, 0x0A, 0x18, 0x00, 0x21, 0x40, 0x1C, 0x11, 0x70, 0x52, 0x1C + .byte 0x20, 0x28, 0xFA, 0xDB, 0x07, 0xE0, 0x19, 0x48, 0xFF, 0x21, 0x20, 0x22, 0x4B, 0xF5, 0xEE, 0xE9 + .byte 0x17, 0x49, 0x13, 0x48, 0x81, 0x64, 0x12, 0x4A, 0xD0, 0x6A, 0x03, 0x28 + + arm_func_start ov02_0233103C +ov02_0233103C: @ 0x0233103C + ldcvs p1, c13, [r1], {0xe} + mrcvs p8, #0, r4, c2, c0, #0 + svc #0x46f7a3 + tstle r3, r3, lsl #16 + arm_func_end ov02_0233103C +_0233104C: + .byte 0x0C, 0x48, 0x06, 0x21 + .byte 0xC1, 0x62, 0x38, 0x1C, 0x4A, 0xF5, 0xD0, 0xEB, 0x01, 0x20, 0xF8, 0xBD, 0xFF, 0xF7, 0x50, 0xFF + .byte 0x01, 0x28, 0x07, 0xD1, 0x06, 0x48, 0x06, 0x21, 0xC1, 0x62, 0x38, 0x1C, 0x4A, 0xF5, 0xC4, 0xEB + .byte 0x01, 0x20, 0xF8, 0xBD, 0x38, 0x1C, 0x4A, 0xF5, 0xC0, 0xEB, 0x00, 0x20, 0xF8, 0xBD, 0xC0, 0x46 + .byte 0xD0, 0x94, 0x35, 0x02, 0x88, 0x99, 0x35, 0x02, 0x58, 0x81, 0x31, 0x02, 0xC0, 0x99, 0x35, 0x02 + .byte 0x60, 0x81, 0x31, 0x02 + + arm_func_start ov02_02331094 +ov02_02331094: @ 0x02331094 + arm_func_end ov02_02331094 +_02331094: + .byte 0x10, 0xB5, 0x4A, 0xF5, 0xA6, 0xEB, 0x04, 0x1C, 0x0A, 0x48, 0xC0, 0x6A + .byte 0x07, 0x28, 0x0B, 0xD1, 0xA4, 0xF7, 0x36, 0xE9, 0x03, 0x28, 0x07, 0xD1, 0x06, 0x48, 0x04, 0x21 + .byte 0xC1, 0x62, 0x20, 0x1C, 0x4A, 0xF5, 0xA0, 0xEB + + arm_func_start ov02_023310B8 +ov02_023310B8: @ 0x023310B8 + ldclt p0, c2, [r0, #-4] + arm_func_end ov02_023310B8 +_023310BC: + .byte 0x20, 0x1C, 0x4A, 0xF5 + .byte 0x9C, 0xEB, 0x00, 0x20, 0x10, 0xBD, 0xC0, 0x46, 0xD0, 0x94, 0x35, 0x02 + + arm_func_start ov02_023310CC +ov02_023310CC: @ 0x023310CC + arm_func_end ov02_023310CC +_023310CC: + .byte 0x10, 0xB5, 0x4A, 0xF5 + .byte 0x8A, 0xEB, 0x04, 0x1C, 0x12, 0x48, 0xC0, 0x6A, 0x03, 0x28, 0x10, 0xD1, 0xA3, 0xF7, 0x82, 0xEE + .byte 0x03, 0x28, 0x04, 0xD0, 0x20, 0x1C, 0x4A, 0xF5, 0x88, 0xEB, 0x00, 0x20, 0x10, 0xBD, 0x0C, 0x48 + .byte 0x02, 0x21, 0xC1, 0x62, 0x20, 0x1C, 0x4A, 0xF5, 0x80, 0xEB, 0x01, 0x20, 0x10, 0xBD, 0xFF, 0xF7 + .byte 0xFF, 0xFE, 0x01, 0x28, 0x07, 0xD1, 0x06, 0x48, 0x02, 0x21, 0xC1, 0x62, 0x20, 0x1C, 0x4A, 0xF5 + .byte 0x74, 0xEB, 0x01, 0x20, 0x10, 0xBD, 0x20, 0x1C, 0x4A, 0xF5, 0x6E, 0xEB, 0x00, 0x20, 0x10, 0xBD + .byte 0xD0, 0x94, 0x35, 0x02 + + arm_func_start ov02_02331124 +ov02_02331124: @ 0x02331124 + arm_func_end ov02_02331124 +_02331124: + .byte 0xF8, 0xB5, 0x07, 0x1C, 0x0D, 0x1C, 0x16, 0x1C, 0x4A, 0xF5, 0x5A, 0xEB + .byte 0x1C, 0x49, 0x04, 0x1C, 0x8E, 0x65, 0x00, 0x2D, 0x05, 0xD0, 0x89, 0x6A, 0x28, 0x1C, 0x60, 0x22 + .byte 0x4B, 0xF5, 0xC2, 0xE9, 0x04, 0xE0, 0x88, 0x6A, 0x00, 0x21, 0x60, 0x22, 0x4B, 0xF5, 0x5E, 0xE9 + .byte 0x14, 0x49, 0x38, 0x1C, 0xC9, 0x6C, 0xC0, 0x22, 0x4B, 0xF5, 0xEA, 0xE8, 0xFF, 0xF7, 0xD0, 0xFE + .byte 0x01, 0x28, 0x07, 0xD1, 0x0F, 0x48, 0x08, 0x21, 0xC1, 0x62, 0x20, 0x1C, 0x4A, 0xF5, 0x44, 0xEB + .byte 0x01, 0x20, 0xF8, 0xBD, 0x0B, 0x4A, 0xD0, 0x6A, 0x03, 0x28, 0x0E, 0xD1, 0xD0, 0x6C, 0x91, 0x6A + .byte 0x92, 0x6D, 0xA3, 0xF7, 0xC6, 0xEF, 0x03, 0x28, 0x07, 0xD1, 0x06, 0x48, 0x08, 0x21, 0xC1, 0x62 + .byte 0x20, 0x1C, 0x4A, 0xF5, 0x32, 0xEB, 0x01, 0x20, 0xF8, 0xBD, 0x20, 0x1C, 0x4A, 0xF5, 0x2C, 0xEB + .byte 0x00, 0x20, 0xF8, 0xBD, 0xD0, 0x94, 0x35, 0x02 + + arm_func_start ov02_023311A8 +ov02_023311A8: @ 0x023311A8 + arm_func_end ov02_023311A8 +_023311A8: + .byte 0xF8, 0xB5, 0x0D, 0x1C, 0x07, 0x1C, 0x00, 0x92 + .byte 0x4A, 0xF5, 0x18, 0xEB, 0x04, 0x1C, 0x28, 0x1C, 0x26, 0x4A, 0x63, 0x30, 0x03, 0x21, 0x88, 0x43 + .byte 0x06, 0x1C, 0x95, 0x62, 0x2F, 0x36, 0x1F, 0x21, 0x23, 0x4B, 0x90, 0x60, 0x8E, 0x43, 0xD6, 0x63 + .byte 0xF6, 0x18, 0x8E, 0x43, 0xD6, 0x64, 0xDF, 0x36, 0x8E, 0x43, 0x46, 0x60, 0x00, 0x99, 0x90, 0x68 + .byte 0x6D, 0x18, 0x41, 0x68, 0x69, 0x1A, 0x81, 0x60, 0x90, 0x68, 0x00, 0x21, 0xC1, 0x60, 0x90, 0x68 + .byte 0x03, 0x21, 0x01, 0x60, 0x19, 0x48, 0x07, 0x60, 0xD0, 0x6A, 0x00, 0x28, 0x0E, 0xD1, 0x1F, 0x3B + .byte 0xD0, 0x6B, 0x19, 0x1C, 0xA3, 0xF7, 0x34, 0xEC, 0x00, 0x28, 0x04, 0xD0, 0x20, 0x1C, 0x4A, 0xF5 + .byte 0xF4, 0xEA, 0x00, 0x20, 0xF8, 0xBD, 0x0F, 0x48, 0x01, 0x21, 0xC1, 0x62, 0x0D, 0x48, 0xC1, 0x6A + .byte 0x01, 0x29, 0x12, 0xD1, 0x80, 0x68, 0x0E, 0x49, 0xA3, 0xF7, 0xDA, 0xEC, 0x03, 0x28, 0x04, 0xD0 + .byte 0x20, 0x1C, 0x4A, 0xF5, 0xE2, 0xEA, 0x00, 0x20, 0xF8, 0xBD, 0x06, 0x48, 0x04, 0x21, 0xC1, 0x62 + .byte 0x20, 0x1C, 0x4A, 0xF5, 0xDA, 0xEA, 0x01, 0x20, 0xF8, 0xBD, 0x20, 0x1C, 0x4A, 0xF5, 0xD4, 0xEA + .byte 0x00, 0x20, 0xF8, 0xBD, 0xD0, 0x94, 0x35, 0x02, 0x1F, 0x23, 0x00, 0x00, 0x50, 0x95, 0x35, 0x02 + .byte 0xF5, 0x0B, 0x33, 0x02 + + arm_func_start ov02_02331264 +ov02_02331264: @ 0x02331264 + bvs _01343270 + uxtab16mi r4, r0, r0, ror #8 + eorseq sb, r5, #208, #8 + arm_func_end ov02_02331264 + + arm_func_start ov02_02331270 +ov02_02331270: @ 0x02331270 + arm_func_end ov02_02331270 +_02331270: + .byte 0x10, 0xB5, 0x0C, 0x1C, 0x00, 0x2C, 0x0C, 0xDD, 0x07, 0x48, 0x48, 0xF5, 0xE6, 0xEE, 0x07, 0x49 + .byte 0x20, 0x1C, 0x49, 0x68, 0x88, 0x47, 0x04, 0x1C, 0x03, 0x48, 0x48, 0xF5, 0x20, 0xEF, 0x20, 0x1C + .byte 0x10, 0xBD, 0x00, 0x20, 0x10, 0xBD, 0xC0, 0x46, 0x64, 0x95, 0x35, 0x02, 0xD0, 0x94, 0x35, 0x02 + + arm_func_start ov02_023312A0 +ov02_023312A0: @ 0x023312A0 + arm_func_end ov02_023312A0 +_023312A0: + .byte 0x10, 0xB5, 0x0C, 0x1C, 0x0B, 0xD0, 0x00, 0x2A, 0x09, 0xDD, 0x05, 0x48, 0x48, 0xF5, 0xCC, 0xEE + .byte 0x04, 0x49, 0x20, 0x1C, 0xC9, 0x68, 0x88, 0x47, 0x01, 0x48, 0x48, 0xF5, 0x08, 0xEF, 0x10, 0xBD + .byte 0x64, 0x95, 0x35, 0x02, 0xD0, 0x94, 0x35, 0x02 + + arm_func_start ov02_023312C8 +ov02_023312C8: @ 0x023312C8 + arm_func_end ov02_023312C8 +_023312C8: + .byte 0x08, 0xB5, 0x4A, 0xF5, 0x8C, 0xEA, 0x06, 0x49 + .byte 0x00, 0x22, 0x8A, 0x66, 0xCA, 0x66, 0x05, 0x4B, 0x11, 0x1C, 0x52, 0x1C, 0x02, 0xC3, 0x04, 0x2A + .byte 0xFB, 0xDB, 0x4A, 0xF5, 0x8A, 0xEA, 0x08, 0xBD, 0xD0, 0x94, 0x35, 0x02, 0x54, 0x95, 0x35, 0x02 + + arm_func_start ov02_023312F0 +ov02_023312F0: @ 0x023312F0 + arm_func_end ov02_023312F0 +_023312F0: + .byte 0x38, 0xB5, 0x4A, 0xF5, 0x78, 0xEA, 0x0A, 0x49, 0xCD, 0x6E, 0x8A, 0x6E, 0xAA, 0x42, 0x01, 0xD1 + .byte 0x00, 0x24, 0x08, 0xE0, 0x07, 0x4A, 0xAB, 0x00, 0xD4, 0x58, 0x6A, 0x1C, 0xCA, 0x66, 0x04, 0x2A + .byte 0x01, 0xDB, 0x00, 0x22, 0xCA, 0x66, 0x4A, 0xF5, 0x70, 0xEA, 0x20, 0x1C, 0x38, 0xBD, 0xC0, 0x46 + .byte 0xD0, 0x94, 0x35, 0x02, 0x54, 0x95, 0x35, 0x02, 0x18, 0xB4, 0x09, 0x49, 0x8B, 0x6E, 0xCA, 0x6E + .byte 0x5C, 0x1C, 0x94, 0x42, 0x0A, 0xD0, 0xD2, 0x1C, 0x93, 0x42, 0x07, 0xD0, 0x05, 0x4A, 0x9B, 0x00 + .byte 0xD0, 0x50, 0x8C, 0x66, 0x04, 0x2C, 0x01, 0xDB, 0x00, 0x20, 0x88, 0x66, 0x18, 0xBC, 0x70, 0x47 + .byte 0xD0, 0x94, 0x35, 0x02, 0x54, 0x95, 0x35, 0x02, 0x01, 0x4B, 0x00, 0x21, 0x18, 0x47, 0xC0, 0x46 + .byte 0x29, 0x13, 0x33, 0x02 + + arm_func_start ov02_02331364 +ov02_02331364: @ 0x02331364 + arm_func_end ov02_02331364 +_02331364: + .byte 0xF8, 0xB5, 0x06, 0x1C, 0x23, 0x48, 0x01, 0x24, 0x06, 0x67, 0xFF, 0xF7 + .byte 0xAB, 0xFF, 0xD0, 0x20, 0x37, 0x1C, 0x47, 0x43, 0x20, 0x48, 0x39, 0x18, 0xC0, 0x20, 0x70, 0x43 + .byte 0x08, 0x18, 0x1D, 0x49, 0x49, 0x68, 0x88, 0x47, 0x1B, 0x4E, 0x00, 0x28, 0x70, 0x65, 0x01, 0xD1 + .byte 0xA0, 0x1E, 0xF8, 0xBD, 0x1F, 0x21, 0x42, 0x18, 0x08, 0x1C, 0x3F, 0x38, 0x13, 0x1C, 0x03, 0x40 + .byte 0x17, 0x48, 0x33, 0x64, 0x3A, 0x18, 0x98, 0x18, 0x40, 0x18, 0x3F, 0x39, 0x08, 0x40, 0xF0, 0x65 + .byte 0x14, 0x48, 0x19, 0x1C, 0xFF, 0xF7, 0xF8, 0xFE, 0x00, 0x28, 0x01, 0xD1, 0xE0, 0x1E, 0xF8, 0xBD + .byte 0x00, 0x26, 0x27, 0x1C, 0x0A, 0x20, 0x48, 0xF5, 0xA6, 0xEB, 0xFF, 0xF7, 0x91, 0xFF, 0x00, 0x28 + .byte 0x0E, 0xD0, 0x04, 0x28, 0x08, 0xD0, 0x05, 0x28, 0x06, 0xD0, 0x06, 0x28, 0x02, 0xD1, 0x34, 0x1C + .byte 0x3D, 0x1C, 0x01, 0xE0, 0x00, 0x24, 0xA5, 0x1E, 0xFF, 0xF7, 0x82, 0xFF, 0x00, 0x28, 0xF0, 0xD1 + .byte 0x00, 0x2C, 0xE7, 0xD1, 0x28, 0x1C, 0xF8, 0xBD, 0xD0, 0x94, 0x35, 0x02, 0xD0, 0x24, 0x00, 0x00 + .byte 0x90, 0x24, 0x00, 0x00, 0x29, 0x13, 0x33, 0x02 + + arm_func_start ov02_02331408 +ov02_02331408: @ 0x02331408 + strhs fp, [r1, #-0x5f8] + .word 0xFE5EF7FF + andsle r2, r8, r0, lsl #16 + ldcne p6, c2, [r4], #-0 + ldcne p7, c2, [r8], #-0x28 + bl FUN_041EE944 + arm_func_end ov02_02331408 +_02331420: + .byte 0xFF, 0xF7, 0x66, 0xFF, 0x00, 0x28, 0x0C, 0xD0, 0x04, 0x28, 0x06, 0xD0, 0x05, 0x28, 0x04, 0xD0 + .byte 0x14, 0x28, 0x01, 0xD1, 0x25, 0x1C, 0x00, 0xE0, 0x35, 0x1C, 0xFF, 0xF7, 0x59, 0xFF, 0x00, 0x28 + .byte 0xF2, 0xD1, 0x00, 0x2D, 0xE9, 0xD1, 0x05, 0x49, 0x48, 0x6D, 0x00, 0x28, 0x04, 0xD0, 0xC9, 0x68 + .byte 0x88, 0x47, 0x02, 0x48, 0x00, 0x21, 0x41, 0x65, 0x01, 0x20, 0xF8, 0xBD, 0xD0, 0x94, 0x35, 0x02 + + arm_func_start ov02_02331460 +ov02_02331460: @ 0x02331460 + strdlt fp, ip, [ip], r8 + strhs r4, [r1], #-0x842 + stmibvs r0, {r0, r1, r6, r7, r8, sl, fp, sp, lr} + arm_func_end ov02_02331460 +_0233146C: + .byte 0xC0, 0x22, 0x01, 0x1C + .byte 0x51, 0x43, 0xE5, 0x1E, 0x5E, 0x18, 0x02, 0xD1, 0x0C, 0xB0, 0x00, 0x20, 0xF8, 0xBD, 0x30, 0x1C + .byte 0x00, 0x21, 0x92, 0x02, 0xFF, 0xF7, 0x4E, 0xFE, 0x00, 0x28, 0x02, 0xD1, 0x0C, 0xB0, 0xE0, 0x1E + .byte 0xF8, 0xBD, 0x01, 0xA8, 0x49, 0xF5, 0xD4, 0xED, 0x12, 0x20, 0x00, 0x90, 0x35, 0x49, 0x36, 0x4B + .byte 0x01, 0xA8, 0x00, 0x22, 0x49, 0xF5, 0x6A, 0xEE, 0x00, 0x27, 0x02, 0xF0, 0x49, 0xFE, 0x33, 0x49 + .byte 0xC9, 0x68, 0x88, 0x42, 0x02, 0xD3, 0x02, 0x25, 0xED, 0x43, 0x3F, 0xE0, 0x2C, 0x48, 0x00, 0x69 + .byte 0x00, 0x28, 0x02, 0xD0, 0x07, 0x25, 0xED, 0x43, 0x38, 0xE0, 0x0A, 0x20, 0x48, 0xF5, 0x22, 0xEB + .byte 0xFF, 0xF7, 0x0E, 0xFF, 0x00, 0x28, 0x2F, 0xD0, 0x0C, 0x28, 0x08, 0xDC, 0x11, 0xDA, 0x05, 0x28 + .byte 0x25, 0xDC, 0x04, 0x28, 0x23, 0xDB, 0x23, 0xD0, 0x05, 0x28, 0x21, 0xD0, 0x1F, 0xE0, 0x13, 0x28 + .byte 0x1D, 0xDC, 0x0D, 0x28, 0x1B, 0xDB, 0x07, 0xD0, 0x12, 0x28, 0x19, 0xD0, 0x13, 0x28, 0x17, 0xD0 + .byte 0x15, 0xE0, 0x3C, 0x1C, 0x01, 0x25, 0x13, 0xE0, 0x19, 0x48, 0x00, 0x69, 0x00, 0x28, 0x03, 0xD0 + .byte 0x00, 0x24, 0x25, 0x1C, 0x08, 0x3D, 0x0B, 0xE0, 0x03, 0x22, 0x30, 0x1C, 0x00, 0x21, 0x12, 0x04 + .byte 0xFF, 0xF7, 0x00, 0xFE, 0x00, 0x28, 0x03, 0xD1, 0x0C, 0xB0, 0x28, 0x1C, 0xF8, 0xBD, 0x00, 0x24 + .byte 0xFF, 0xF7, 0xDE, 0xFE, 0x00, 0x28, 0xCF, 0xD1, 0x00, 0x2C, 0xB6, 0xD1, 0x01, 0xA8, 0x49, 0xF5 + .byte 0x54, 0xEE, 0xFF, 0xF7, 0xD5, 0xFE, 0x00, 0x28, 0xFB, 0xD1, 0x00, 0x2D, 0x0D, 0xDD, 0x08, 0x48 + .byte 0x01, 0x21, 0x01, 0x62, 0x0A, 0x48, 0x9E, 0xF7, 0x8E, 0xE8, 0x00, 0x28, 0x02, 0xDA, 0x01, 0x25 + .byte 0xED, 0x43, 0x02, 0xE0, 0x02, 0x48, 0x01, 0x21, 0x41, 0x62, 0x28, 0x1C, 0x0C, 0xB0, 0xF8, 0xBD + .byte 0xD0, 0x94, 0x35, 0x02, 0x42, 0xEC, 0x3F, 0x00, 0x59, 0x13, 0x33, 0x02, 0x08, 0x30, 0x35, 0x02 + .byte 0x1C, 0x30, 0x35, 0x02 + + arm_func_start ov02_02331584 +ov02_02331584: @ 0x02331584 + ldmdami r7, {r3, r4, r5, r6, r7, r8, sl, ip, sp, pc} + bvs _0233A994 + andsle r2, pc, r0, lsl #16 + .word 0xFD80F7FF + andsle r2, r8, r0, lsl #16 + ldcne p6, c2, [r4], #-0 + ldcne p7, c2, [r8], #-0x28 + b _0116EAC8 + arm_func_end ov02_02331584 +_023315A4: + .byte 0xFF, 0xF7, 0xA4, 0xFE, 0x00, 0x28, 0x0C, 0xD0, 0x04, 0x28, 0x06, 0xD0 + .byte 0x05, 0x28, 0x04, 0xD0, 0x0E, 0x28, 0x01, 0xD1, 0x25, 0x1C, 0x00, 0xE0, 0x35, 0x1C, 0xFF, 0xF7 + .byte 0x97, 0xFE, 0x00, 0x28, 0xF2, 0xD1, 0x00, 0x2D, 0xE9, 0xD1, 0x06, 0x48, 0x00, 0x21, 0x01, 0x62 + .byte 0x04, 0x48, 0x41, 0x6A, 0x00, 0x29, 0x03, 0xD0, 0x00, 0x21, 0x41, 0x62, 0x9E, 0xF7, 0x04, 0xE9 + .byte 0xF8, 0xBD, 0xC0, 0x46, 0xD0, 0x94, 0x35, 0x02 + + arm_func_start ov02_023315E8 +ov02_023315E8: @ 0x023315E8 + ldrshlt fp, [fp], r0 + andhs sb, r0, r0 + andls sb, r7, r8 + mrsls sb, apsr + arm_func_end ov02_023315E8 +_023315F8: + .byte 0x06, 0x1D, 0x08, 0x1C, 0x04, 0x1D, 0x08, 0x98 + .byte 0x02, 0x92, 0x03, 0x90, 0x00, 0x98, 0x00, 0x68, 0x00, 0x28, 0x57, 0xD9, 0x12, 0xAA, 0x02, 0x32 + .byte 0x22, 0x21, 0x00, 0x20, 0x10, 0x70, 0x52, 0x1C, 0x49, 0x1E, 0xFB, 0xD1, 0x12, 0xA8, 0x02, 0x30 + .byte 0x31, 0x1D, 0x20, 0x22, 0x55, 0xF5, 0x3A, 0xEE, 0x12, 0xA8, 0x31, 0x68, 0x00, 0x27, 0x02, 0x30 + .byte 0x47, 0x54, 0x01, 0x98, 0x00, 0x68, 0x04, 0x90, 0x00, 0x28, 0x31, 0xD9, 0x30, 0x1C, 0x09, 0x90 + .byte 0x28, 0x30, 0x35, 0x68, 0x09, 0x90, 0x00, 0x2D, 0x2A, 0xD0, 0x20, 0x2D, 0x28, 0xD8, 0x01, 0x2D + .byte 0x04, 0xD1, 0x30, 0x79, 0x00, 0x28, 0x23, 0xD0, 0x20, 0x28, 0x21, 0xD0, 0x12, 0xA8, 0x02, 0x30 + .byte 0x58, 0xF5, 0x0A, 0xE8, 0x02, 0x1C, 0x12, 0xA8, 0x02, 0x30, 0x21, 0x1D, 0x55, 0xF5, 0x6C, 0xEE + .byte 0x00, 0x28, 0x10, 0xD1, 0x21, 0x1C, 0x09, 0x98, 0x28, 0x31, 0x06, 0x22, 0x55, 0xF5, 0x64, 0xEE + .byte 0x00, 0x28, 0x08, 0xD1, 0xF1, 0x8D, 0xE0, 0x8D, 0x81, 0x42, 0x04, 0xD0, 0x00, 0x29, 0x02, 0xD1 + .byte 0x01, 0x20, 0x08, 0x90, 0x04, 0xE0, 0x04, 0x98, 0x7F, 0x1C, 0x30, 0x34, 0x87, 0x42, 0xD2, 0xD3 + .byte 0x08, 0x98, 0x00, 0x28, 0x0A, 0xD1, 0x01, 0x98, 0x30, 0x36, 0x04, 0x1D, 0x03, 0x98, 0x40, 0x1C + .byte 0x03, 0x90, 0x00, 0x98, 0x01, 0x68, 0x03, 0x98, 0x88, 0x42, 0xA7, 0xD3, 0x08, 0x98, 0x00, 0x28 + .byte 0x6A, 0xD1, 0x0A, 0xAA, 0x22, 0x21, 0x00, 0x20, 0x10, 0x70, 0x52, 0x1C, 0x49, 0x1E, 0xFB, 0xD1 + .byte 0x00, 0x20, 0x06, 0x90, 0x05, 0x90, 0x00, 0x98, 0x06, 0x9E, 0x04, 0x1D, 0x01, 0x98, 0x05, 0x1D + .byte 0x00, 0x68, 0x00, 0x28, 0x1E, 0xD9, 0x0A, 0xAF, 0x38, 0x1C, 0x29, 0x1D, 0x20, 0x22, 0x55, 0xF5 + .byte 0xD6, 0xED, 0x29, 0x68, 0x00, 0x20, 0x78, 0x54, 0x2D, 0x48, 0x57, 0xF5, 0xBE, 0xEF, 0x02, 0x1C + .byte 0x2B, 0x49, 0x38, 0x1C, 0x55, 0xF5, 0x20, 0xEE, 0x00, 0x28, 0x05, 0xD1, 0xE8, 0x8D, 0x00, 0x28 + .byte 0x02, 0xD1, 0x01, 0x20, 0x05, 0x90, 0x05, 0xE0, 0x01, 0x98, 0x76, 0x1C, 0x00, 0x68, 0x30, 0x35 + .byte 0x86, 0x42, 0xE1, 0xD3, 0x00, 0x20, 0x03, 0x90, 0x00, 0x98, 0x00, 0x68, 0x00, 0x28, 0x2B, 0xD9 + .byte 0x1F, 0x4F, 0x0A, 0xAD, 0x28, 0x1C, 0x21, 0x1D, 0x20, 0x22, 0x55, 0xF5, 0xB0, 0xED, 0x21, 0x68 + .byte 0x00, 0x20, 0x68, 0x54, 0x28, 0x1C, 0x57, 0xF5, 0x98, 0xEF, 0x06, 0x1C, 0x38, 0x1C, 0x57, 0xF5 + .byte 0x94, 0xEF, 0x86, 0x42, 0x0F, 0xD1, 0x38, 0x1C, 0x57, 0xF5, 0x8E, 0xEF, 0x02, 0x1C, 0x28, 0x1C + .byte 0x39, 0x1C, 0x55, 0xF5, 0xF2, 0xED, 0x00, 0x28, 0x05, 0xD1, 0xE0, 0x8D, 0x00, 0x28, 0x02, 0xD1 + .byte 0x01, 0x20, 0x06, 0x90, 0x08, 0xE0, 0x03, 0x98, 0x30, 0x34, 0x40, 0x1C, 0x03, 0x90, 0x00, 0x98 + .byte 0x01, 0x68, 0x03, 0x98, 0x88, 0x42, 0xD5, 0xD3, 0x06, 0x98, 0x00, 0x28, 0x04, 0xD0, 0x05, 0x98 + .byte 0x00, 0x28, 0x01, 0xD1, 0x01, 0x20, 0x08, 0x90, 0x08, 0x98, 0x00, 0x28, 0x04, 0xD0, 0x03, 0x99 + .byte 0x02, 0x98, 0x01, 0x60, 0x01, 0x20, 0x07, 0x90, 0x07, 0x98, 0x1B, 0xB0, 0xF0, 0xBD, 0xC0, 0x46 + .byte 0x74, 0x30, 0x35, 0x02 + + arm_func_start ov02_023317B4 +ov02_023317B4: @ 0x023317B4 + ldrshlt fp, [ip], r8 + andls r2, r2, r0 + ldmmi fp, {r3, ip, pc} + svcvs #0x12400 + movtmi r2, #0x8030 + eorslo sb, r4, r4 + stmdbls r4, {r2, ip, pc} + arm_func_end ov02_023317B4 +_023317D0: + .byte 0x01, 0x20, 0xE4, 0x43, 0x02, 0xF0, 0xC2, 0xFC, 0x03, 0x90, 0x00, 0x28, 0x06, 0xD0, 0x04, 0x99 + .byte 0x01, 0x20, 0x02, 0xF0, 0xBB, 0xFC, 0x02, 0x90, 0x00, 0x28, 0x00, 0xD1, 0x11, 0xE1, 0x00, 0x20 + .byte 0x07, 0x90, 0xF2, 0xE0, 0x02, 0xF0, 0xA4, 0xFC, 0x8D, 0x49, 0xC9, 0x68, 0x88, 0x42, 0x6E, 0xD2 + .byte 0x00, 0x20, 0x8C, 0x4B, 0x01, 0x1C, 0x02, 0x1C, 0xFF, 0xF7, 0xD0, 0xFB, 0x00, 0x28, 0x02, 0xD1 + .byte 0x01, 0x24, 0xE4, 0x43, 0xFD, 0xE0, 0x09, 0xA8, 0x49, 0xF5, 0x12, 0xEC, 0x13, 0x20, 0x00, 0x90 + .byte 0x85, 0x49, 0x86, 0x4B, 0x09, 0xA8, 0x00, 0x22, 0x49, 0xF5, 0xA8, 0xEC, 0x7F, 0x4F, 0x01, 0x25 + .byte 0x00, 0x24, 0x09, 0xAE, 0x0A, 0x20, 0x48, 0xF5, 0x6E, 0xE9, 0x02, 0xF0, 0x81, 0xFC, 0x7C, 0x49 + .byte 0xC9, 0x68, 0x88, 0x42, 0x40, 0xD2, 0x38, 0x69, 0x00, 0x28, 0x3D, 0xD1, 0xFF, 0xF7, 0x50, 0xFD + .byte 0x00, 0x28, 0x37, 0xD0, 0x13, 0x28, 0x30, 0xD8, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88, 0x00, 0x04 + .byte 0x00, 0x14, 0x87, 0x44, 0x54, 0x00, 0x54, 0x00, 0x54, 0x00, 0x54, 0x00, 0x56, 0x00, 0x2A, 0x00 + .byte 0x54, 0x00, 0x54, 0x00, 0x56, 0x00, 0x54, 0x00, 0x50, 0x00, 0x54, 0x00, 0x54, 0x00, 0x54, 0x00 + .byte 0x54, 0x00, 0x54, 0x00, 0x54, 0x00, 0x54, 0x00, 0x56, 0x00, 0x26, 0x00, 0x00, 0x25, 0x15, 0xE0 + .byte 0xF8, 0x6D, 0x39, 0x6F, 0xFF, 0xF7, 0x68, 0xFB, 0xA0, 0x42, 0x0F, 0xDD, 0x04, 0x1C, 0x30, 0x1C + .byte 0x49, 0xF5, 0xA2, 0xEC, 0x13, 0x20, 0x00, 0x90, 0x63, 0x49, 0x64, 0x4B, 0x30, 0x1C, 0x00, 0x22 + .byte 0x49, 0xF5, 0x64, 0xEC, 0x02, 0xE0, 0x00, 0x25, 0x00, 0xE0, 0x00, 0x25, 0xFF, 0xF7, 0x18, 0xFD + .byte 0x00, 0x28, 0xC7, 0xD1, 0x00, 0x2D, 0xB5, 0xD1, 0x09, 0xA8, 0x49, 0xF5, 0x8E, 0xEC, 0xFF, 0xF7 + .byte 0x0F, 0xFD, 0x00, 0x28, 0xFB, 0xD1, 0x55, 0x49, 0x08, 0x69, 0x00, 0x28, 0x00, 0xD0, 0x84, 0xE0 + .byte 0x00, 0x20, 0x05, 0x90, 0x08, 0x6F, 0x84, 0x42, 0x02, 0xDB, 0x05, 0x98, 0x84, 0x1F, 0x90, 0xE0 + .byte 0x05, 0x98, 0xCD, 0x6D, 0x06, 0x90, 0x00, 0x2C, 0x35, 0xDD, 0x34, 0xDD, 0x03, 0x98, 0x03, 0x9F + .byte 0x01, 0x90, 0x08, 0x30, 0x3E, 0x1C, 0x01, 0x90, 0x2C, 0x36, 0x29, 0x1C, 0x01, 0x98, 0x0C, 0x31 + .byte 0x20, 0x22, 0x55, 0xF5, 0xC4, 0xEC, 0x68, 0x89, 0x78, 0x60, 0x68, 0x89, 0x39, 0x18, 0x00, 0x20 + .byte 0x08, 0x72, 0xA9, 0x8D, 0x10, 0x20, 0x08, 0x42, 0x01, 0xD0, 0x01, 0x20, 0x00, 0xE0, 0x00, 0x20 + .byte 0x78, 0x86, 0x28, 0x79, 0x30, 0x37, 0x30, 0x70, 0x68, 0x79, 0x70, 0x70, 0xA8, 0x79, 0xB0, 0x70 + .byte 0xE8, 0x79, 0xF0, 0x70, 0x28, 0x7A, 0x30, 0x71, 0x68, 0x7A, 0xC0, 0x35, 0x70, 0x71, 0x01, 0x98 + .byte 0x30, 0x36, 0x30, 0x30, 0x01, 0x90, 0x05, 0x98, 0x40, 0x1C, 0x05, 0x90, 0x06, 0x98, 0x40, 0x1C + .byte 0x06, 0x90, 0xA0, 0x42, 0xD1, 0xDB, 0x03, 0x98, 0x04, 0x60, 0x30, 0x48, 0x80, 0x6B, 0x01, 0x28 + .byte 0x26, 0xD0, 0x03, 0x98, 0x02, 0x99, 0x08, 0xAA, 0xFF, 0xF7, 0x36, 0xFE, 0x00, 0x28, 0x1F, 0xD0 + .byte 0x03, 0x98, 0x08, 0x9A, 0x01, 0x1D, 0x30, 0x20, 0x50, 0x43, 0x0C, 0x18, 0x27, 0x48, 0x21, 0x1D + .byte 0x82, 0x61, 0x2B, 0x48, 0x57, 0xF5, 0x7E, 0xEE, 0x20, 0x1C, 0x28, 0x34, 0x22, 0x78, 0x29, 0x49 + .byte 0x28, 0x30, 0x0A, 0x70, 0x42, 0x78, 0x4A, 0x70, 0x82, 0x78, 0x8A, 0x70, 0xC2, 0x78, 0xCA, 0x70 + .byte 0x02, 0x79, 0x0A, 0x71, 0x40, 0x79, 0x48, 0x71, 0x14, 0xA8, 0x02, 0xF0, 0x03, 0xFC, 0x14, 0xE0 + .byte 0x02, 0x98, 0x03, 0x99, 0x04, 0x9A, 0x55, 0xF5, 0x6A, 0xEC, 0x18, 0x48, 0x02, 0x21, 0x81, 0x63 + .byte 0x02, 0xF0, 0xF6, 0xFC, 0x07, 0x98, 0x40, 0x1C, 0x07, 0x90, 0x07, 0x98, 0x1E, 0x28, 0x04, 0xDA + .byte 0x12, 0x48, 0x00, 0x69, 0x00, 0x28, 0x00, 0xD1, 0x04, 0xE7, 0x07, 0x98, 0x1E, 0x28, 0x05, 0xDA + .byte 0x02, 0xF0, 0xA6, 0xFB, 0x0E, 0x49, 0xC9, 0x68, 0x88, 0x42, 0x02, 0xD9, 0x02, 0x24, 0xE4, 0x43 + .byte 0x07, 0xE0, 0x0A, 0x48, 0x00, 0x69, 0x00, 0x28, 0x02, 0xD0, 0x07, 0x24, 0xE4, 0x43, 0x00, 0xE0 + .byte 0x01, 0x24, 0x03, 0x98, 0x00, 0x28, 0x01, 0xD0, 0x02, 0xF0, 0xB2, 0xFB, 0x02, 0x98, 0x00, 0x28 + .byte 0x01, 0xD0, 0x02, 0xF0, 0xAD, 0xFB, 0x20, 0x1C, 0x1C, 0xB0, 0xF8, 0xBD, 0xD0, 0x94, 0x35, 0x02 + .byte 0x08, 0x30, 0x35, 0x02, 0xFE, 0xBF, 0x30, 0x00, 0x10, 0xFB, 0x0F, 0x00, 0x59, 0x13, 0x33, 0x02 + .byte 0xE0, 0x99, 0x35, 0x02, 0x80, 0x99, 0x35, 0x02 + + arm_func_start ov02_02331A48 +ov02_02331A48: @ 0x02331A48 + bls _023DEE70 + arm_func_end ov02_02331A48 +_02331A4C: + .byte 0x00, 0x91, 0x19, 0x1C + .byte 0x00, 0x23, 0x9D, 0xF7, 0x72, 0xEC, 0x00, 0x28, 0x01, 0xDA, 0x03, 0x20, 0xC0, 0x43, 0x08, 0xBD + + arm_func_start ov02_02331A60 +ov02_02331A60: @ 0x02331A60 + addlt fp, r4, r0, ror r5 + arm_func_end ov02_02331A60 +_02331A64: + .byte 0x05, 0x1C, 0x0E, 0x1C, 0x08, 0x21, 0x01, 0xA8, 0x01, 0x71, 0x02, 0x21 + .byte 0x41, 0x71, 0xC9, 0x1E, 0x03, 0x91, 0x08, 0x49, 0x14, 0x1C, 0xC1, 0x80, 0x9D, 0xF7, 0x48, 0xEA + .byte 0x01, 0xA9, 0x9D, 0xF7, 0x3A, 0xEF, 0x28, 0x1C, 0x02, 0xA9, 0x01, 0xAA, 0x33, 0x1C, 0x00, 0x94 + .byte 0xFF, 0xF7, 0xDA, 0xFF, 0x04, 0xB0, 0x70, 0xBD, 0xE6, 0x01, 0x00, 0x00 + + arm_func_start ov02_02331A9C +ov02_02331A9C: @ 0x02331A9C + arm_func_end ov02_02331A9C +_02331A9C: + .byte 0x11, 0x1C, 0x1A, 0x1C + .byte 0x00, 0x4B, 0x18, 0x47, 0x61, 0x1A, 0x33, 0x02 + + arm_func_start ov02_02331AA8 +ov02_02331AA8: @ 0x02331AA8 + stmdahi r5, {r3, r4, r5, r6, sl, ip, sp, pc} + eorne r2, ip, #0, #6 + .word 0x0E260624 + ldrbhs r0, [pc, #0x22c]! + eormi r0, ip, sp, lsr #4 + strteq r4, [r4], #-0x334 + andvs r0, ip, r4, lsr #24 + eorsne r8, r1, #0x460000 + .word 0x0E0C0609 + eormi r0, sb, r1, lsr r2 + streq r4, [sb], #-0x321 + stcne p12, c0, [r1, #0x30] + stmdbne sl, {r2, r4, sp, lr} + addsmi r1, r0, #4, #24 + stmdavc r1!, {r2, sb, ip, lr, pc} + ldmdane fp, {r2, r5, r6, sl, fp, ip} ^ + arm_func_end ov02_02331AA8 +_02331AE8: + .byte 0x94, 0x42, 0xFA, 0xD3, 0x15, 0x88, 0x19, 0x04 + .byte 0x09, 0x0C, 0x2A, 0x12, 0x12, 0x06, 0x14, 0x0E, 0xFF, 0x22, 0x2B, 0x02, 0x12, 0x02, 0x1A, 0x40 + .byte 0x22, 0x43, 0x12, 0x04, 0x12, 0x0C, 0x91, 0x42, 0x02, 0xD0, 0x00, 0x20, 0x78, 0xBC, 0x70, 0x47 + .byte 0x80, 0x1D, 0x78, 0xBC, 0x70, 0x47, 0x00, 0x00 + + arm_func_start ov02_02331B18 +ov02_02331B18: @ 0x02331B18 + arm_func_end ov02_02331B18 +_02331B18: + .byte 0x78, 0xB4, 0x04, 0x1C, 0x20, 0x68, 0x88, 0x42 + .byte 0x02, 0xD3, 0x00, 0x20, 0x78, 0xBC, 0x70, 0x47, 0x05, 0x88, 0x29, 0x12, 0x09, 0x06, 0x0E, 0x0E + .byte 0x29, 0x02, 0xFF, 0x25, 0x2D, 0x02, 0x29, 0x40, 0x31, 0x43, 0x09, 0x04, 0x09, 0x0C, 0x11, 0x60 + .byte 0x46, 0x88, 0x00, 0x1D, 0x31, 0x12, 0x09, 0x06, 0x0A, 0x0E, 0x31, 0x02, 0x29, 0x40, 0x11, 0x43 + .byte 0x09, 0x04, 0x0A, 0x0C, 0x1A, 0x60, 0x0B, 0x32, 0x07, 0x21, 0x8A, 0x43, 0x11, 0x1F, 0x41, 0x18 + .byte 0x21, 0x60, 0x78, 0xBC, 0x70, 0x47, 0x00, 0x00 + + arm_func_start ov02_02331B68 +ov02_02331B68: @ 0x02331B68 + addlt fp, r1, r8, ror r5 + strlo r1, [r8, #-0xc05] + arm_func_end ov02_02331B68 +_02331B70: + .byte 0x00, 0x95, 0x13, 0x1C, 0x02, 0x88, 0x0C, 0x1C, 0x00, 0xA8, 0x11, 0x12, 0x16, 0x02, 0xFF, 0x22 + .byte 0x09, 0x06, 0x12, 0x02, 0x09, 0x0E, 0x32, 0x40, 0x11, 0x43, 0x09, 0x04, 0x09, 0x0C, 0x69, 0x18 + .byte 0x22, 0x1C, 0xFF, 0xF7, 0xC1, 0xFF, 0x01, 0xB0, 0x78, 0xBD, 0x00, 0x00 + + arm_func_start ov02_02331B9C +ov02_02331B9C: @ 0x02331B9C + strdlt fp, ip, [r2], r8 + arm_func_end ov02_02331B9C +_02331BA0: + .byte 0x1F, 0x1C, 0x06, 0x1C, 0x38, 0x1C, 0x08, 0x38, 0x01, 0x91, 0x00, 0x04, 0x11, 0x1C, 0x00, 0x25 + .byte 0x0D, 0x70, 0x00, 0x0C, 0x4D, 0x70, 0x02, 0x12, 0x8D, 0x70, 0x12, 0x06, 0xCD, 0x70, 0x13, 0x0E + .byte 0x02, 0x02, 0xFF, 0x20, 0x0D, 0x71, 0x00, 0x02, 0x4D, 0x71, 0x10, 0x40, 0x8D, 0x71, 0x18, 0x43 + .byte 0xCD, 0x71, 0x08, 0x9B, 0x34, 0x1C, 0x08, 0x80, 0x00, 0x2B, 0x07, 0xD0, 0x10, 0x20, 0x00, 0x90 + .byte 0xB0, 0x1D, 0x3A, 0x1C, 0x00, 0xF0, 0xFA, 0xFD, 0x08, 0x37, 0x03, 0xE0, 0xB0, 0x1D, 0x3A, 0x1C + .byte 0x55, 0xF5, 0x54, 0xEB, 0x00, 0x20, 0x30, 0x70, 0x70, 0x70, 0xB0, 0x70, 0xF0, 0x70, 0x30, 0x71 + .byte 0x70, 0x71, 0x01, 0x98, 0x00, 0x04, 0x01, 0x0C, 0x08, 0x12, 0x00, 0x06, 0x02, 0x0E, 0xFF, 0x20 + .byte 0x09, 0x02, 0x00, 0x02, 0x01, 0x40, 0x11, 0x43, 0x31, 0x80, 0x39, 0x04, 0x0A, 0x0C, 0x11, 0x12 + .byte 0x09, 0x06, 0x12, 0x02, 0x09, 0x0E, 0x10, 0x40, 0x08, 0x43, 0x70, 0x80, 0xA0, 0x1D, 0xC4, 0x19 + .byte 0x31, 0x1C, 0xA6, 0x42, 0x04, 0xD2, 0x08, 0x78, 0x49, 0x1C, 0x2D, 0x18, 0xA1, 0x42, 0xFA, 0xD3 + .byte 0x28, 0x04, 0x01, 0x0C, 0x08, 0x12, 0x00, 0x06, 0x02, 0x0E, 0xFF, 0x20, 0x09, 0x02, 0x00, 0x02 + .byte 0x08, 0x40, 0x10, 0x43, 0x20, 0x80, 0xA0, 0x1C, 0x80, 0x1B, 0x02, 0xB0, 0xF8, 0xBD, 0x00, 0x00 + + arm_func_start ov02_02331C60 +ov02_02331C60: @ 0x02331C60 + arm_func_end ov02_02331C60 +_02331C60: + .byte 0xF8, 0xB5, 0x05, 0x1C, 0x08, 0x04, 0x1C, 0x1C, 0x00, 0x23, 0x00, 0x0C, 0x17, 0x1C, 0x2B, 0x70 + .byte 0x01, 0x12, 0x02, 0x02, 0xFF, 0x20, 0x6B, 0x70, 0x09, 0x06, 0x00, 0x02, 0xAB, 0x70, 0x09, 0x0E + .byte 0x02, 0x40, 0x11, 0x43, 0xEB, 0x70, 0x22, 0x1C, 0x29, 0x80, 0x0B, 0x32, 0x07, 0x21, 0x8A, 0x43 + .byte 0x21, 0x04, 0x16, 0x1F, 0x0A, 0x0C, 0x11, 0x12, 0x09, 0x06, 0x12, 0x02, 0x10, 0x40, 0x09, 0x0E + .byte 0x08, 0x43, 0x68, 0x80, 0x2D, 0x1D, 0x28, 0x1C, 0x19, 0x1C, 0x32, 0x1C, 0x55, 0xF5, 0x2C, 0xEB + .byte 0x28, 0x1C, 0x39, 0x1C, 0x22, 0x1C, 0x55, 0xF5, 0xF2, 0xEA, 0xA8, 0x19, 0xF8, 0xBD, 0x00, 0x00 + + arm_func_start ov02_02331CC0 +ov02_02331CC0: @ 0x02331CC0 + arm_func_end ov02_02331CC0 +_02331CC0: + .byte 0x10, 0xB5, 0x04, 0x1C, 0x00, 0x20, 0x20, 0x70, 0x60, 0x70, 0xA0, 0x70, 0xE0, 0x70, 0x20, 0x71 + .byte 0x60, 0x71, 0xA0, 0x71, 0xE0, 0x71, 0x20, 0x1C, 0x08, 0x30, 0xFF, 0xF7, 0xC1, 0xFF, 0x00, 0x1B + .byte 0x01, 0x1C, 0x08, 0x39, 0x21, 0x80, 0x10, 0xBD + + arm_func_start ov02_02331CE8 +ov02_02331CE8: @ 0x02331CE8 + strdlt fp, ip, [r7], r0 + stmdbge r6, {r8, ip, pc} + arm_func_end ov02_02331CE8 +_02331CF0: + .byte 0x05, 0xAA, 0xFF, 0xF7, 0xD9, 0xFE, 0x00, 0x26, 0x05, 0x1C, 0x37, 0x1C, 0x02, 0x95, 0x01, 0x96 + .byte 0x00, 0x2D, 0x02, 0xD1, 0x07, 0xB0, 0x30, 0x1C, 0xF0, 0xBD, 0x06, 0x98, 0x01, 0x28, 0x02, 0xD0 + .byte 0x07, 0xB0, 0x30, 0x1C, 0xF0, 0xBD, 0x05, 0x9C, 0x28, 0x1C, 0x08, 0x30, 0x02, 0x90, 0x02, 0xA8 + .byte 0x29, 0x19, 0x04, 0xAA, 0x03, 0xAB, 0xFF, 0xF7, 0xF7, 0xFE, 0x00, 0x28, 0x33, 0xD0, 0x04, 0x99 + .byte 0x01, 0x29, 0x04, 0xD0, 0x02, 0x29, 0x0E, 0xD0, 0x05, 0x29, 0x19, 0xD0, 0x23, 0xE0, 0x01, 0x88 + .byte 0x08, 0x12, 0x00, 0x06, 0x02, 0x0E, 0xFF, 0x20, 0x09, 0x02, 0x00, 0x02, 0x08, 0x40, 0x10, 0x43 + .byte 0x00, 0x04, 0x06, 0x0C, 0x17, 0xE0, 0x01, 0x88, 0x08, 0x12, 0x0A, 0x02, 0xFF, 0x21, 0x00, 0x06 + .byte 0x09, 0x02, 0x00, 0x0E, 0x11, 0x40, 0x08, 0x43, 0x00, 0x04, 0x00, 0x0C, 0x01, 0x90, 0x0A, 0xE0 + .byte 0x01, 0x88, 0x08, 0x12, 0x00, 0x06, 0x02, 0x0E, 0xFF, 0x20, 0x09, 0x02, 0x00, 0x02, 0x08, 0x40 + .byte 0x10, 0x43, 0x00, 0x04, 0x07, 0x0C, 0x02, 0xA8, 0x29, 0x19, 0x04, 0xAA, 0x03, 0xAB, 0xFF, 0xF7 + .byte 0xC3, 0xFE, 0x00, 0x28, 0xCB, 0xD1, 0x01, 0x2E, 0x02, 0xD1, 0x01, 0x98, 0x01, 0x28, 0x02, 0xD0 + .byte 0x07, 0xB0, 0x00, 0x20, 0xF0, 0xBD, 0x01, 0x2F, 0x02, 0xDB, 0x01, 0x21, 0x00, 0x98, 0x01, 0xE0 + .byte 0x00, 0x98, 0x00, 0x21, 0x01, 0x60, 0x01, 0x20, 0x07, 0xB0, 0xF0, 0xBD + + arm_func_start ov02_02331DBC +ov02_02331DBC: @ 0x02331DBC + addlt fp, r3, r8, ror r5 + arm_func_end ov02_02331DBC +_02331DC0: + .byte 0x0D, 0x1C, 0x16, 0x1C, 0x02, 0xA9, 0x01, 0xAA, 0x1C, 0x1C, 0xFF, 0xF7, 0x6D, 0xFE, 0x01, 0x1C + .byte 0x02, 0xD1, 0x03, 0xB0, 0x00, 0x20, 0x78, 0xBD, 0x02, 0x98, 0xA8, 0x42, 0x02, 0xD0, 0x03, 0xB0 + .byte 0x00, 0x20, 0x78, 0xBD, 0x00, 0x2C, 0x0A, 0xD0, 0x10, 0x20, 0x00, 0x90, 0x01, 0x9A, 0x30, 0x1C + .byte 0x23, 0x1C, 0x00, 0xF0, 0xCF, 0xFD, 0x01, 0x98, 0x08, 0x38, 0x01, 0x90, 0x03, 0xE0, 0x01, 0x9A + .byte 0x30, 0x1C, 0x55, 0xF5, 0x4C, 0xEA, 0x01, 0x98, 0x03, 0xB0, 0x78, 0xBD + + arm_func_start ov02_02331E0C +ov02_02331E0C: @ 0x02331E0C + addlt fp, r4, r0, lsl r5 + arm_func_end ov02_02331E0C +_02331E10: + .byte 0x01, 0x21, 0x04, 0x1C, 0x01, 0xAA, 0x09, 0x02, 0x01, 0xA8, 0x01, 0x80, 0x1D, 0x4B, 0x02, 0x32 + .byte 0x07, 0x21, 0x18, 0x78, 0x5B, 0x1C, 0x10, 0x70, 0x52, 0x1C, 0x49, 0x1E, 0xF9, 0xD1, 0x1A, 0x48 + .byte 0x01, 0x21, 0x00, 0x68, 0x01, 0xAA, 0x02, 0x23, 0xFF, 0xF7, 0x12, 0xFF, 0x02, 0x21, 0x01, 0xAA + .byte 0x0B, 0x1C, 0xFF, 0xF7, 0x0D, 0xFF, 0x15, 0x49, 0x09, 0x6D, 0x00, 0x29, 0x04, 0xD0, 0x05, 0x21 + .byte 0x01, 0xAA, 0x02, 0x23, 0xFF, 0xF7, 0x04, 0xFF, 0x01, 0xAA, 0x03, 0x21, 0x02, 0x32, 0x07, 0x23 + .byte 0xFF, 0xF7, 0xFE, 0xFE, 0x0D, 0x49, 0x03, 0x1C, 0x09, 0x6D, 0x00, 0x29, 0x05, 0xD0, 0x0C, 0x4A + .byte 0x04, 0x21, 0x06, 0x23, 0xFF, 0xF7, 0xF4, 0xFE, 0x03, 0x1C, 0x00, 0x20, 0x00, 0x90, 0x20, 0x1C + .byte 0x05, 0x4C, 0x08, 0x4A, 0x24, 0x68, 0x02, 0x21, 0x1B, 0x1B, 0x08, 0x33, 0xFF, 0xF7, 0x86, 0xFE + .byte 0x04, 0xB0, 0x10, 0xBD, 0x5C, 0xFC, 0x34, 0x02, 0x08, 0x30, 0x35, 0x02, 0xD0, 0x94, 0x35, 0x02 + .byte 0x78, 0x99, 0x35, 0x02, 0x04, 0x9A, 0x35, 0x02 + + arm_func_start ov02_02331EA8 +ov02_02331EA8: @ 0x02331EA8 + arm_func_end ov02_02331EA8 +_02331EA8: + .byte 0x08, 0xB5, 0x49, 0xF5, 0xA0, 0xED, 0x01, 0x20 + .byte 0x08, 0xBD, 0x00, 0x00 + + arm_func_start ov02_02331EB4 +ov02_02331EB4: @ 0x02331EB4 + addslt fp, r3, r8, lsl r5 + arm_func_end ov02_02331EB4 +_02331EB8: + .byte 0x39, 0x49, 0x04, 0x1C, 0x08, 0x78, 0x22, 0x1C + .byte 0x0C, 0x32, 0x20, 0x73, 0x48, 0x78, 0x50, 0x70, 0x88, 0x78, 0x90, 0x70, 0xC8, 0x78, 0x01, 0xA9 + .byte 0x02, 0x31, 0xD0, 0x70, 0x33, 0x48, 0x02, 0x78, 0x0A, 0x70, 0x42, 0x78, 0x4A, 0x70, 0x82, 0x78 + .byte 0x8A, 0x70, 0xC2, 0x78, 0xCA, 0x70, 0x02, 0x79, 0x40, 0x79, 0x0A, 0x71, 0x48, 0x71, 0x00, 0xA9 + .byte 0x8A, 0x79, 0xFD, 0x20, 0x10, 0x40, 0x88, 0x71, 0x00, 0xA8, 0xFF, 0xF7, 0xD5, 0xFF, 0x00, 0xA9 + .byte 0x0A, 0x78, 0x29, 0x48, 0x02, 0x70, 0x4A, 0x78, 0x42, 0x70, 0x8A, 0x78, 0x82, 0x70, 0xCA, 0x78 + .byte 0xC2, 0x70, 0x0A, 0x79, 0x02, 0x71, 0x4A, 0x79, 0x42, 0x71, 0x01, 0xA8, 0x02, 0x30, 0x06, 0x22 + .byte 0x55, 0xF5, 0x12, 0xEA, 0x00, 0x28, 0x0F, 0xDC, 0x00, 0xA9, 0x08, 0x78, 0x20, 0x70, 0x48, 0x78 + .byte 0x60, 0x70, 0x88, 0x78, 0xA0, 0x70, 0xC8, 0x78, 0xE0, 0x70, 0x08, 0x79, 0x20, 0x71, 0x48, 0x79 + .byte 0x01, 0xA9, 0x02, 0x31, 0x60, 0x71, 0x0E, 0xE0, 0x01, 0xA9, 0x02, 0x31, 0x08, 0x78, 0x20, 0x70 + .byte 0x48, 0x78, 0x60, 0x70, 0x88, 0x78, 0xA0, 0x70, 0xC8, 0x78, 0xE0, 0x70, 0x08, 0x79, 0x20, 0x71 + .byte 0x48, 0x79, 0x00, 0xA9, 0x60, 0x71, 0x08, 0x78, 0xA0, 0x71, 0x48, 0x78, 0xE0, 0x71, 0x88, 0x78 + .byte 0x20, 0x72, 0xC8, 0x78, 0x60, 0x72, 0x08, 0x79, 0xA0, 0x72, 0x48, 0x79, 0xE0, 0x72, 0x0B, 0x48 + .byte 0x40, 0x68, 0x00, 0x28, 0x08, 0xD0, 0x0B, 0xA8, 0x00, 0xA9, 0x02, 0xF0, 0x1B, 0xF9, 0x01, 0xA9 + .byte 0x03, 0xA8, 0x02, 0x31, 0x02, 0xF0, 0x16, 0xF9, 0x01, 0x20, 0x13, 0xB0, 0x18, 0xBD, 0xC0, 0x46 + .byte 0xC8, 0x30, 0x35, 0x02, 0x80, 0x99, 0x35, 0x02, 0x78, 0x99, 0x35, 0x02, 0x08, 0x30, 0x35, 0x02 + + arm_func_start ov02_02331FB0 +ov02_02331FB0: @ 0x02331FB0 + strdlt fp, ip, [r6], r8 + mrsls r1, apsr + mrsls r3, apsr + arm_func_end ov02_02331FB0 +_02331FBC: + .byte 0x05, 0x91, 0x00, 0x21 + .byte 0x00, 0x91, 0x01, 0x88, 0x03, 0xAB, 0x08, 0x12, 0x00, 0x06, 0x02, 0x0E, 0xFF, 0x20, 0x09, 0x02 + .byte 0x00, 0x02, 0x08, 0x40, 0x10, 0x43, 0x00, 0x04, 0x00, 0x0C, 0x02, 0x90, 0x01, 0x9A, 0x02, 0x99 + .byte 0x05, 0xA8, 0x51, 0x18, 0x04, 0xAA, 0xFF, 0xF7, 0x97, 0xFD, 0x05, 0x1C, 0x00, 0xD1, 0xB7, 0xE0 + .byte 0x04, 0x9A, 0x5D, 0x48, 0x11, 0x1A, 0x09, 0x29, 0x41, 0xD8, 0x49, 0x18, 0x79, 0x44, 0xC9, 0x88 + .byte 0x09, 0x04, 0x09, 0x14, 0x8F, 0x44, 0x12, 0x00, 0x32, 0x00, 0x4E, 0x00, 0x78, 0x00, 0xA2, 0x00 + .byte 0xBE, 0x00, 0xBE, 0x00, 0xBE, 0x00, 0xBE, 0x00, 0x1E, 0x01, 0x54, 0x4B, 0x00, 0x20, 0x1A, 0x1C + .byte 0x01, 0x1C, 0x03, 0xC2, 0x03, 0xC2, 0x03, 0xC2, 0x03, 0xC2, 0x03, 0x9A, 0x18, 0x1C, 0x29, 0x1C + .byte 0x55, 0xF5, 0x34, 0xE9, 0x01, 0x20, 0x00, 0x90, 0x87, 0xE0, 0x29, 0x88, 0x08, 0x12, 0x00, 0x06 + .byte 0x02, 0x0E, 0xFF, 0x20, 0x09, 0x02, 0x00, 0x02, 0x08, 0x40, 0x10, 0x43, 0x00, 0x04, 0x01, 0x0C + .byte 0x47, 0x48, 0x01, 0x60, 0x79, 0xE0, 0x2B, 0x88, 0x46, 0x49, 0x00, 0x20, 0x1A, 0x12, 0x12, 0x06 + .byte 0x14, 0x0E, 0xFF, 0x22, 0x1B, 0x02, 0x12, 0x02, 0x1A, 0x40, 0x22, 0x43, 0x12, 0x04, 0x13, 0x0C + .byte 0x57, 0x22, 0x92, 0x00, 0x40, 0x1C, 0x8B, 0x50, 0x28, 0x31, 0x04, 0x28, 0xFA, 0xDB, 0x64, 0xE0 + .byte 0x2B, 0x88, 0x3C, 0x48, 0x00, 0x21, 0x1A, 0x12, 0x12, 0x06, 0x14, 0x0E, 0xFF, 0x22, 0x1B, 0x02 + .byte 0x12, 0x02, 0x1A, 0x40, 0x22, 0x43, 0x12, 0x04, 0x13, 0x0C, 0x16, 0x22, 0x12, 0x01, 0x49, 0x1C + .byte 0x83, 0x50, 0x28, 0x30, 0x04, 0x29, 0xFA, 0xDB, 0x4F, 0xE0, 0x29, 0x88, 0x08, 0x12, 0x00, 0x06 + .byte 0x02, 0x0E, 0xFF, 0x20, 0x09, 0x02, 0x00, 0x02, 0x08, 0x40, 0x10, 0x43, 0x00, 0x04, 0x01, 0x0C + .byte 0x2B, 0x48, 0x41, 0x60, 0x41, 0xE0, 0x40, 0x1D, 0x12, 0x1A, 0x28, 0x20, 0x50, 0x43, 0x2A, 0x49 + .byte 0x20, 0x22, 0x08, 0x18, 0x00, 0x21, 0x55, 0xF5, 0x18, 0xE9, 0x25, 0x48, 0x27, 0x49, 0x00, 0x6B + .byte 0x01, 0x28, 0x15, 0xD1, 0x04, 0x9A, 0x24, 0x48, 0x52, 0x1A, 0x28, 0x21, 0x51, 0x43, 0x44, 0x18 + .byte 0x03, 0x98, 0x00, 0x26, 0x00, 0x28, 0x28, 0xDD, 0x37, 0x1C, 0xE9, 0x57, 0x20, 0x1C, 0x6D, 0x1C + .byte 0x02, 0xF0, 0x46, 0xF8, 0x24, 0x18, 0x03, 0x98, 0x76, 0x1C, 0x86, 0x42, 0xF5, 0xDB, 0x1C, 0xE0 + .byte 0x04, 0x9A, 0x19, 0x48, 0x52, 0x1A, 0x28, 0x21, 0x51, 0x43, 0x40, 0x18, 0x03, 0x9A, 0x29, 0x1C + .byte 0x55, 0xF5, 0xBC, 0xE8, 0x11, 0xE0, 0x16, 0x4B, 0x00, 0x20, 0x1A, 0x1C, 0x01, 0x1C, 0x03, 0xC2 + .byte 0x03, 0xC2, 0x03, 0xC2, 0x03, 0xC2, 0x03, 0xC2, 0x03, 0xC2, 0x03, 0xC2, 0x03, 0xC2, 0x03, 0xC2 + .byte 0x03, 0x9A, 0x18, 0x1C, 0x29, 0x1C, 0x55, 0xF5, 0xAA, 0xE8, 0x01, 0x9A, 0x02, 0x99, 0x05, 0xA8 + .byte 0x51, 0x18, 0x04, 0xAA, 0x03, 0xAB, 0xFF, 0xF7, 0xDF, 0xFC, 0x05, 0x1C, 0x00, 0xD0, 0x47, 0xE7 + .byte 0x00, 0x98, 0x06, 0xB0, 0xF8, 0xBD, 0xC0, 0x46, 0x01, 0x02, 0x00, 0x00, 0x24, 0x98, 0x35, 0x02 + .byte 0x50, 0x98, 0x35, 0x02, 0x24, 0x97, 0x35, 0x02, 0x88, 0x98, 0x35, 0x02, 0x06, 0x02, 0x00, 0x00 + .byte 0x20, 0x99, 0x35, 0x02 + + arm_func_start ov02_02332184 +ov02_02332184: @ 0x02332184 + arm_func_end ov02_02332184 +_02332184: + .byte 0xF0, 0xB4, 0x14, 0x1C, 0x00, 0x22, 0x0D, 0x1C, 0x13, 0x1C, 0x00, 0x2C + .byte 0x4F, 0xDD, 0x1F, 0x27, 0xE9, 0x56, 0x63, 0x29, 0x27, 0xDC, 0x32, 0xDA, 0x61, 0x29, 0x21, 0xDC + .byte 0x2F, 0xDA, 0x0E, 0x1C, 0x30, 0x3E, 0x16, 0x2E, 0x31, 0xD8, 0xB6, 0x19, 0x7E, 0x44, 0xF6, 0x88 + .byte 0x36, 0x04, 0x36, 0x14, 0xB7, 0x44, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00 + .byte 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x56, 0x00, 0x56, 0x00, 0x56, 0x00 + .byte 0x56, 0x00, 0x56, 0x00, 0x56, 0x00, 0x56, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00 + .byte 0x50, 0x00, 0x50, 0x00, 0x62, 0x29, 0x0C, 0xD0, 0x11, 0xE0, 0x65, 0x29, 0x03, 0xDC, 0x08, 0xDA + .byte 0x64, 0x29, 0x06, 0xD0, 0x0B, 0xE0, 0x66, 0x29, 0x03, 0xD0, 0x08, 0xE0, 0x30, 0x39, 0x52, 0x18 + .byte 0x08, 0xE0, 0x57, 0x39, 0x52, 0x18, 0x05, 0xE0, 0x37, 0x39, 0x52, 0x18, 0x02, 0xE0, 0x00, 0x20 + .byte 0xF0, 0xBC, 0x70, 0x47, 0xDE, 0x0F, 0xD9, 0x07, 0x89, 0x1B, 0xF9, 0x41, 0x71, 0x18, 0x01, 0xD1 + .byte 0x12, 0x01, 0x03, 0xE0, 0x9E, 0x19, 0x71, 0x10, 0x42, 0x54, 0x00, 0x22, 0x5B, 0x1C, 0xA3, 0x42 + .byte 0xB0, 0xDB, 0x01, 0x20, 0xF0, 0xBC, 0x70, 0x47 + + arm_func_start ov02_02332238 +ov02_02332238: @ 0x02332238 + strdlt fp, ip, [sl], r8 + andls r2, r0, r1 + ldmdbmi r8, {r0, r1, r2, r4, r6, fp, lr} ^ + b _02CEF7A8 + arm_func_end ov02_02332238 +_02332248: + .byte 0x57, 0x49, 0x08, 0x68, 0x03, 0x28, 0x00, 0xD9 + .byte 0x9F, 0xE0, 0x00, 0x18, 0x78, 0x44, 0xC0, 0x88, 0x00, 0x04, 0x00, 0x14, 0x87, 0x44, 0x06, 0x00 + .byte 0x0E, 0x00, 0x06, 0x01, 0x1C, 0x01, 0x51, 0x48, 0x00, 0x21, 0xC1, 0x60, 0x94, 0xE0, 0x49, 0x68 + .byte 0x00, 0x29, 0x03, 0xD1, 0x06, 0x20, 0xC0, 0x43, 0x00, 0x90, 0x8D, 0xE0, 0x4B, 0x48, 0x4C, 0x4E + .byte 0x4C, 0x4D, 0x01, 0x61, 0x00, 0x27, 0x01, 0xAC, 0x01, 0xA8, 0x31, 0x1C, 0x20, 0x22, 0x55, 0xF5 + .byte 0x06, 0xE8, 0x00, 0x21, 0x09, 0xA8, 0x01, 0x70, 0x01, 0xA8, 0x57, 0xF5, 0xEE, 0xE9, 0x10, 0x28 + .byte 0x0E, 0xD8, 0x0A, 0x28, 0x05, 0xD3, 0x20, 0xD0, 0x0D, 0x28, 0x27, 0xD0, 0x10, 0x28, 0x3B, 0xD0 + .byte 0x50, 0xE0, 0x00, 0x28, 0x01, 0xD8, 0x50, 0xD0, 0x4C, 0xE0, 0x05, 0x28, 0x07, 0xD0, 0x49, 0xE0 + .byte 0x1A, 0x28, 0x01, 0xD8, 0x27, 0xD0, 0x45, 0xE0, 0x20, 0x28, 0x3A, 0xD0, 0x42, 0xE0, 0x37, 0x48 + .byte 0x01, 0x21, 0xC1, 0x60, 0x20, 0x78, 0x28, 0x70, 0x60, 0x78, 0x68, 0x70, 0xA0, 0x78, 0xA8, 0x70 + .byte 0xE0, 0x78, 0xE8, 0x70, 0x20, 0x79, 0x28, 0x71, 0x37, 0xE0, 0x30, 0x48, 0x01, 0x21, 0xC1, 0x60 + .byte 0x28, 0x1C, 0x21, 0x1C, 0x0A, 0x22, 0xFF, 0xF7, 0x45, 0xFF, 0x2E, 0xE0, 0x2B, 0x48, 0x02, 0x21 + .byte 0xC1, 0x60, 0x23, 0x1C, 0x2A, 0x1C, 0x0D, 0x21, 0x18, 0x78, 0x5B, 0x1C, 0x10, 0x70, 0x52, 0x1C + .byte 0x49, 0x1E, 0xF9, 0xD1, 0x21, 0xE0, 0x25, 0x48, 0x02, 0x21, 0xC1, 0x60, 0x28, 0x1C, 0x21, 0x1C + .byte 0x1A, 0x22, 0xFF, 0xF7, 0x2F, 0xFF, 0x18, 0xE0, 0x20, 0x48, 0x03, 0x21, 0xC1, 0x60, 0x23, 0x1C + .byte 0x2A, 0x1C, 0x10, 0x21, 0x18, 0x78, 0x5B, 0x1C, 0x10, 0x70, 0x52, 0x1C, 0x49, 0x1E, 0xF9, 0xD1 + .byte 0x0B, 0xE0, 0x1A, 0x48, 0x03, 0x21, 0xC1, 0x60, 0x28, 0x1C, 0x21, 0x1C, 0x20, 0x22, 0xFF, 0xF7 + .byte 0x19, 0xFF, 0x02, 0xE0, 0x06, 0x20, 0xC0, 0x43, 0x00, 0x90, 0x7F, 0x1C, 0x28, 0x36, 0x20, 0x35 + .byte 0x04, 0x2F, 0x91, 0xDB, 0x18, 0xE0, 0x11, 0x48, 0x04, 0x21, 0x13, 0x4C, 0x13, 0x4B, 0xC1, 0x60 + .byte 0x08, 0x22, 0x03, 0xCB, 0x03, 0xC4, 0x52, 0x1E, 0xFB, 0xD1, 0x0D, 0xE0, 0x0B, 0x48, 0x05, 0x21 + .byte 0x0D, 0x4C, 0x0E, 0x4B, 0xC1, 0x60, 0x08, 0x22, 0x03, 0xCB, 0x03, 0xC4, 0x52, 0x1E, 0xFB, 0xD1 + .byte 0x02, 0xE0, 0x06, 0x20, 0xC0, 0x43, 0x00, 0x90, 0x00, 0x98, 0x0A, 0xB0, 0xF8, 0xBD, 0xC0, 0x46 + .byte 0x3C, 0x96, 0x35, 0x02, 0x24, 0x98, 0x35, 0x02, 0x50, 0x98, 0x35, 0x02, 0x50, 0x96, 0x35, 0x02 + .byte 0x88, 0x98, 0x35, 0x02, 0x64, 0x96, 0x35, 0x02, 0xE4, 0x96, 0x35, 0x02, 0x20, 0x99, 0x35, 0x02 + + arm_func_start ov02_023323C0 +ov02_023323C0: @ 0x023323C0 + strdlt fp, ip, [fp], r0 + svcne #0x602400 + stmmi pc, {r1, ip, pc} ^ + strls r2, [r3], #-0x101 + stcne p4, c9, [r6], #-4 + bic r6, ip, r1, asr #3 + addeq r2, r0, sp, ror r0 + bl FUN_009EF900 + stmibvs r0, {r0, r3, r6, r7, fp, lr} ^ + stmdble r0, {r1, r3, fp, sp} + stmdane r0, {r0, r1, r6, r7, r8, sp, lr, pc} + stmhi r0, {r3, r4, r5, r6, sl, lr} ^ + strne r0, [r0], #-0x400 + cmneq sl, #0x87000000 + eorseq r0, r4, r4, lsl r0 + addseq r0, r8, sl, asr #32 + arm_func_end ov02_023323C0 +_02332400: + .byte 0x00, 0x01, 0x24, 0x01, 0xCE, 0x01, 0x2A, 0x02, 0xB2, 0x02, 0x50, 0x03, 0xFF, 0xF7, 0xD2, 0xF9 + .byte 0x02, 0x90, 0x01, 0x28, 0x01, 0xD0, 0x01, 0x26, 0xAB, 0xE1, 0xBB, 0x48, 0x03, 0x21, 0x81, 0x63 + .byte 0x01, 0xF0, 0xCE, 0xFF, 0xB8, 0x48, 0x02, 0x21, 0xC1, 0x61, 0xA2, 0xE1, 0xFF, 0xF7, 0x18, 0xF8 + .byte 0x02, 0x90, 0x01, 0x28, 0x01, 0xD0, 0x01, 0x26, 0x9B, 0xE1, 0xB3, 0x48, 0x03, 0x21, 0xC1, 0x61 + .byte 0x97, 0xE1, 0x02, 0x20, 0x01, 0x1C, 0x00, 0x22, 0x9C, 0xF7, 0xB0, 0xEE, 0x04, 0x1C, 0x04, 0xD5 + .byte 0x01, 0x20, 0xC0, 0x43, 0x02, 0x90, 0x01, 0x26, 0x8B, 0xE1, 0x09, 0xAD, 0x00, 0x21, 0x29, 0x60 + .byte 0x69, 0x60, 0x08, 0x23, 0x04, 0xAA, 0x13, 0x75, 0x02, 0x23, 0x53, 0x75, 0xA7, 0x4B, 0xD3, 0x82 + .byte 0x0A, 0x91, 0x29, 0x1C, 0x9C, 0xF7, 0xB0, 0xEE, 0x02, 0x90, 0x00, 0x28, 0x04, 0xDA, 0x01, 0x20 + .byte 0xC0, 0x43, 0x02, 0x90, 0x01, 0x26, 0x74, 0xE1, 0x9F, 0x48, 0x04, 0x21, 0xC1, 0x61, 0x70, 0xE1 + .byte 0x01, 0xF0, 0x56, 0xFE, 0x9E, 0x49, 0xC9, 0x68, 0x88, 0x42, 0x07, 0xD3, 0x20, 0x1C, 0x9C, 0xF7 + .byte 0x94, 0xEF, 0x02, 0x20, 0xC0, 0x43, 0x02, 0x90, 0x01, 0x26, 0x62, 0xE1, 0x08, 0x21, 0x04, 0xA8 + .byte 0x01, 0x73, 0x98, 0x48, 0x07, 0xA9, 0xFF, 0xF7, 0xFD, 0xFC, 0x07, 0xA8, 0x02, 0x22, 0x00, 0x90 + .byte 0x95, 0x49, 0x20, 0x1C, 0x92, 0x02, 0x04, 0x23, 0x9C, 0xF7, 0xDC, 0xEE, 0x00, 0x28, 0x6C, 0xDD + .byte 0x91, 0x48, 0x92, 0x49, 0xFF, 0xF7, 0x08, 0xFC, 0x00, 0x28, 0x66, 0xD0, 0x01, 0xF0, 0x30, 0xFE + .byte 0x8F, 0x49, 0x41, 0x18, 0x8A, 0x48, 0xC1, 0x60, 0x87, 0x48, 0x05, 0x21, 0xC1, 0x61, 0x04, 0x21 + .byte 0x81, 0x63, 0x01, 0xF0, 0x65, 0xFF, 0x3C, 0xE1, 0x87, 0x48, 0xFF, 0xF7, 0x87, 0xFC, 0x03, 0x1C + .byte 0x81, 0x48, 0x85, 0x4A, 0x43, 0x61, 0x20, 0x1C, 0x07, 0xA9, 0xFF, 0xF7, 0xC7, 0xFA, 0x01, 0xF0 + .byte 0x17, 0xFE, 0x03, 0x90, 0x7C, 0x48, 0x06, 0x21, 0xC1, 0x61, 0x2A, 0xE1, 0x01, 0xF0, 0x10, 0xFE + .byte 0x7B, 0x49, 0xC9, 0x68, 0x88, 0x42, 0x07, 0xD3, 0x20, 0x1C, 0x9C, 0xF7, 0x4E, 0xEF, 0x03, 0x20 + .byte 0xC0, 0x43, 0x02, 0x90, 0x01, 0x26, 0x1C, 0xE1, 0x07, 0xA8, 0x02, 0x22, 0x00, 0x90, 0x76, 0x49 + .byte 0x20, 0x1C, 0x92, 0x02, 0x04, 0x23, 0x9C, 0xF7, 0x9E, 0xEE, 0x00, 0x28, 0x2E, 0xDD, 0x72, 0x48 + .byte 0x74, 0x4A, 0x70, 0x4B, 0x03, 0x21, 0xFF, 0xF7, 0x31, 0xFC, 0x00, 0x28, 0x26, 0xD0, 0x71, 0x48 + .byte 0x06, 0xA9, 0x05, 0xAA, 0xFF, 0xF7, 0x00, 0xFB, 0x05, 0x1C, 0x06, 0x99, 0x6E, 0x48, 0x81, 0x42 + .byte 0x1B, 0xD1, 0x01, 0xF0, 0xE5, 0xFD, 0x6D, 0x4A, 0x04, 0x90, 0x08, 0x21, 0x28, 0x78, 0x6D, 0x1C + .byte 0x10, 0x70, 0x52, 0x1C, 0x49, 0x1E, 0xF9, 0xD1, 0x69, 0x48, 0x04, 0xA9, 0x04, 0x22, 0x01, 0xF0 + .byte 0xC3, 0xFD, 0x00, 0x20, 0x01, 0x90, 0x5C, 0x48, 0x07, 0x21, 0xC1, 0x61, 0x05, 0x21, 0x81, 0x63 + .byte 0x5B, 0x48, 0x89, 0x1F, 0xC1, 0x60, 0x01, 0xF0, 0x0B, 0xFF, 0xE2, 0xE0, 0x01, 0xF0, 0xC8, 0xFD + .byte 0xFA, 0x22, 0x03, 0x99, 0x92, 0x00, 0x89, 0x18, 0x88, 0x42, 0x00, 0xD2, 0xD9, 0xE0, 0x52, 0x48 + .byte 0x05, 0x21, 0xC1, 0x61, 0xD5, 0xE0, 0x57, 0x48, 0x5A, 0x49, 0x59, 0x4A, 0x08, 0x23, 0xFF, 0xF7 + .byte 0x77, 0xFB, 0x4D, 0x4B, 0x53, 0x4A, 0x58, 0x63, 0x4E, 0x48, 0x04, 0x21, 0x00, 0x90, 0x4E, 0x48 + .byte 0x5B, 0x6B, 0xFF, 0xF7, 0xDB, 0xFA, 0x03, 0x1C, 0x47, 0x48, 0x4B, 0x4A, 0x43, 0x61, 0x20, 0x1C + .byte 0x07, 0xA9, 0xFF, 0xF7, 0x53, 0xFA, 0x01, 0xF0, 0xA3, 0xFD, 0x03, 0x90, 0x00, 0x20, 0x12, 0x25 + .byte 0x4D, 0x4F, 0x01, 0x1C, 0x02, 0x1C, 0x03, 0x1C, 0xAC, 0x46, 0x0F, 0xC7, 0x65, 0x46, 0x6D, 0x1E + .byte 0x0F, 0xC7, 0xAC, 0x46, 0xF9, 0xD1, 0x0F, 0xC7, 0x38, 0x60, 0x3B, 0x48, 0x08, 0x21, 0xC1, 0x61 + .byte 0xA7, 0xE0, 0x07, 0xA8, 0x02, 0x22, 0x00, 0x90, 0x3B, 0x49, 0x20, 0x1C, 0x92, 0x02, 0x04, 0x23 + .byte 0x9C, 0xF7, 0x28, 0xEE, 0x00, 0x28, 0x1F, 0xDD, 0x37, 0x48, 0x3A, 0x4A, 0x3B, 0x4B, 0x05, 0x21 + .byte 0xFF, 0xF7, 0xBC, 0xFB, 0x30, 0x49, 0x00, 0x28, 0x48, 0x63, 0x15, 0xD0, 0x35, 0x48, 0xFF, 0xF7 + .byte 0xAF, 0xFC, 0x00, 0x28, 0x10, 0xD0, 0x39, 0x49, 0x14, 0x20, 0x08, 0x56, 0x00, 0x28, 0x02, 0xD0 + .byte 0x01, 0x21, 0x29, 0x48, 0x01, 0xE0, 0x28, 0x48, 0x00, 0x21, 0x01, 0x70, 0x00, 0x20, 0x01, 0x90 + .byte 0x25, 0x48, 0x09, 0x21, 0xC1, 0x61, 0x7C, 0xE0, 0x01, 0xF0, 0x62, 0xFD, 0xFA, 0x22, 0x03, 0x99 + .byte 0x92, 0x00, 0x89, 0x18, 0x88, 0x42, 0x74, 0xD3, 0x01, 0x98, 0x40, 0x1C, 0x01, 0x90, 0x0A, 0x28 + .byte 0x07, 0xDB, 0x20, 0x1C, 0x9C, 0xF7, 0x98, 0xEE, 0x01, 0x20, 0xC0, 0x43, 0x02, 0x90, 0x01, 0x26 + .byte 0x67, 0xE0, 0x19, 0x48, 0x07, 0x21, 0xC1, 0x61, 0x63, 0xE0, 0x1E, 0x48, 0x24, 0x49, 0x25, 0x4A + .byte 0x01, 0x23, 0xFF, 0xF7, 0x05, 0xFB, 0x14, 0x4B, 0x1A, 0x4A, 0x58, 0x63, 0x1B, 0x48, 0x06, 0x21 + .byte 0x00, 0x90, 0x15, 0x48, 0x5B, 0x6B, 0xFF, 0xF7, 0x69, 0xFA, 0x0F, 0x49, 0x48, 0x61, 0xFE, 0xF7 + .byte 0xC9, 0xFD, 0x07, 0x28, 0x0A, 0xD0, 0x01, 0xF0, 0x33, 0xFD, 0xFA, 0x21, 0x89, 0x00, 0x40, 0x18 + .byte 0x03, 0x90, 0x0A, 0x20, 0x08, 0x49, 0x01, 0x90, 0xC8, 0x61, 0x42, 0xE0, 0x06, 0x4B, 0x0A, 0x4A + .byte 0x5B, 0x69, 0x20, 0x1C, 0x07, 0xA9, 0xFF, 0xF7, 0xD1, 0xF9, 0x01, 0xF0, 0x21, 0xFD, 0x03, 0x90 + .byte 0x01, 0x48, 0x0A, 0x21, 0xC1, 0x61, 0x34, 0xE0, 0xD0, 0x94, 0x35, 0x02, 0xE6, 0x01, 0x00, 0x00 + .byte 0x08, 0x30, 0x35, 0x02, 0x90, 0x99, 0x35, 0x02, 0x04, 0xA2, 0x35, 0x02, 0x20, 0x95, 0x35, 0x02 + .byte 0x30, 0x75, 0x00, 0x00, 0x04, 0x9A, 0x35, 0x02, 0x01, 0x01, 0x00, 0x00, 0xA0, 0x99, 0x35, 0x02 + .byte 0xA8, 0x99, 0x35, 0x02, 0x02, 0x01, 0x00, 0x00, 0x24, 0x97, 0x35, 0x02, 0x10, 0x98, 0x35, 0x02 + .byte 0x01, 0x03, 0x00, 0x00, 0xD0, 0x94, 0x35, 0x02, 0x01, 0xF0, 0xFA, 0xFC, 0xFA, 0x22, 0x03, 0x99 + .byte 0x92, 0x00, 0x89, 0x18, 0x88, 0x42, 0x0C, 0xD3, 0x01, 0x98, 0x40, 0x1C, 0x01, 0x90, 0x0A, 0x28 + .byte 0x04, 0xDB, 0x01, 0x26, 0xFF, 0xF7, 0x68, 0xFD, 0x02, 0x90, 0x02, 0xE0, 0x0C, 0x48, 0x09, 0x21 + .byte 0xC1, 0x61, 0x00, 0x2E, 0x04, 0xD1, 0x0A, 0x48, 0x00, 0x69, 0x00, 0x28, 0x00, 0xD1, 0x2B, 0xE6 + .byte 0x00, 0x2C, 0x02, 0xD0, 0x20, 0x1C, 0x9C, 0xF7, 0x20, 0xEE, 0x05, 0x48, 0x00, 0x69, 0x00, 0x28 + .byte 0x02, 0xD0, 0x07, 0x20, 0xC0, 0x43, 0x02, 0x90, 0x02, 0x98, 0x0B, 0xB0, 0xF0, 0xBD, 0xC0, 0x46 + .byte 0xD0, 0x94, 0x35, 0x02, 0x10, 0xB5, 0xFF, 0xF7, 0x0B, 0xFE, 0x04, 0x1C, 0x09, 0x48, 0x84, 0x67 + .byte 0xFE, 0xF7, 0xE8, 0xFE, 0x01, 0x2C, 0x02, 0xD1, 0x06, 0x21, 0x06, 0x48, 0x01, 0xE0, 0x05, 0x48 + .byte 0x07, 0x21, 0x81, 0x63, 0x00, 0x21, 0x04, 0x48, 0xC9, 0x43, 0xC1, 0x60, 0x01, 0xF0, 0xF8, 0xFD + .byte 0x10, 0xBD, 0xC0, 0x46, 0xD0, 0x94, 0x35, 0x02, 0x08, 0x30, 0x35, 0x02 + + arm_func_start ov02_023327DC +ov02_023327DC: @ 0x023327DC + arm_func_end ov02_023327DC +_023327DC: + .byte 0xF8, 0xB5, 0xEA, 0xB0 + .byte 0x00, 0x90, 0x6B, 0x48, 0x14, 0x1C, 0x0D, 0x1C, 0x12, 0x90, 0x13, 0x90, 0x07, 0x20, 0x21, 0x1C + .byte 0x01, 0x42, 0x02, 0xD1, 0x70, 0x9A, 0x10, 0x42, 0x02, 0xD0, 0x6A, 0xB0, 0x00, 0x20, 0xF8, 0xBD + .byte 0xE0, 0x08, 0x05, 0x90, 0x02, 0x28, 0x02, 0xDA, 0x6A, 0xB0, 0x00, 0x20, 0xF8, 0xBD, 0x1A, 0xA8 + .byte 0x19, 0x1C, 0xD2, 0x00, 0x00, 0xF0, 0xBE, 0xF9, 0x07, 0x90, 0x00, 0x98, 0x29, 0x1C, 0x08, 0x30 + .byte 0x22, 0x1C, 0x54, 0xF5, 0x3C, 0xED, 0x16, 0xAB, 0x12, 0xAA, 0x08, 0x21, 0x10, 0x78, 0x52, 0x1C + .byte 0x18, 0x70, 0x5B, 0x1C, 0x49, 0x1E, 0xF9, 0xD1, 0x00, 0x20, 0x08, 0x90, 0x05, 0x98, 0xC0, 0x17 + .byte 0x06, 0x90, 0x05, 0x98, 0x01, 0x24, 0x01, 0x28, 0x00, 0xDA, 0x8D, 0xE0, 0x08, 0x9A, 0x06, 0x99 + .byte 0xD3, 0x17, 0x5D, 0xF5, 0x18, 0xEB, 0x03, 0x90, 0x00, 0x20, 0x02, 0x91, 0x0A, 0x90, 0x00, 0x20 + .byte 0x00, 0x21, 0x0C, 0x90, 0x08, 0x1C, 0x08, 0x43, 0x10, 0x90, 0x00, 0x98, 0xE1, 0x00, 0x45, 0x18 + .byte 0x2B, 0x1C, 0x18, 0xAA, 0x08, 0x21, 0x18, 0x78, 0x5B, 0x1C, 0x10, 0x70, 0x52, 0x1C, 0x49, 0x1E + .byte 0xF9, 0xD1, 0x16, 0xAA, 0x07, 0x99, 0x1A, 0xA8, 0x13, 0x1C, 0x00, 0xF0, 0xA7, 0xFB, 0x03, 0x98 + .byte 0xE1, 0x17, 0x23, 0x18, 0x02, 0x98, 0x41, 0x41, 0xFF, 0x20, 0x00, 0x06, 0x08, 0x40, 0x00, 0x0E + .byte 0x09, 0x90, 0xFF, 0x20, 0x00, 0x04, 0x08, 0x40, 0x00, 0x0A, 0x0B, 0x90, 0xFF, 0x20, 0x00, 0x02 + .byte 0x00, 0x22, 0x08, 0x40, 0x1A, 0x40, 0x06, 0x02, 0x12, 0x0E, 0x0D, 0x92, 0x32, 0x43, 0x00, 0x0E + .byte 0x0D, 0x92, 0x0E, 0x90, 0xFF, 0x20, 0x00, 0x22, 0x08, 0x40, 0x1A, 0x40, 0x06, 0x06, 0x12, 0x0A + .byte 0x11, 0x92, 0x32, 0x43, 0x00, 0x0A, 0x11, 0x92, 0x0F, 0x90, 0x00, 0x20, 0x0A, 0x1C, 0x02, 0x40 + .byte 0xFF, 0x20, 0x00, 0x06, 0x18, 0x40, 0x06, 0x0E, 0x00, 0x02, 0x84, 0x46, 0x00, 0x20, 0x01, 0x40 + .byte 0xFF, 0x20, 0x00, 0x04, 0x12, 0x02, 0x18, 0x40, 0x32, 0x43, 0x06, 0x0A, 0x07, 0x06, 0xFF, 0x20 + .byte 0x09, 0x06, 0x18, 0x40, 0x31, 0x43, 0x06, 0x06, 0xFF, 0x20, 0x00, 0x02, 0x18, 0x40, 0x00, 0x02 + .byte 0x30, 0x43, 0x01, 0x43, 0x10, 0x98, 0x3B, 0x1C, 0x03, 0x43, 0x60, 0x46, 0x11, 0x43, 0x02, 0x1C + .byte 0x0F, 0x98, 0x1A, 0x43, 0x01, 0x43, 0x11, 0x98, 0x02, 0x43, 0x0E, 0x98, 0x01, 0x43, 0x0D, 0x98 + .byte 0x02, 0x43, 0x0C, 0x98, 0x01, 0x43, 0x0B, 0x98, 0x02, 0x43, 0x0A, 0x98, 0x01, 0x43, 0x09, 0x98 + .byte 0x15, 0x91, 0x10, 0x43, 0x14, 0x90, 0x16, 0xA8, 0x14, 0xA9, 0x02, 0x1C, 0x00, 0xF0, 0xFE, 0xF8 + .byte 0x18, 0xAA, 0x08, 0x21, 0x10, 0x78, 0x52, 0x1C, 0x28, 0x70, 0x6D, 0x1C, 0x49, 0x1E, 0xF9, 0xD1 + .byte 0x05, 0x98, 0x64, 0x1C, 0x84, 0x42, 0x80, 0xDD, 0x08, 0x98, 0x40, 0x1C, 0x08, 0x90, 0x06, 0x28 + .byte 0x00, 0xDA, 0x66, 0xE7, 0x16, 0xAB, 0x08, 0x22, 0x19, 0x78, 0x00, 0x98, 0x5B, 0x1C, 0x01, 0x70 + .byte 0x40, 0x1C, 0x00, 0x90, 0x52, 0x1E, 0xF7, 0xD1, 0x01, 0x20, 0x6A, 0xB0, 0xF8, 0xBD, 0xC0, 0x46 + .byte 0xA6, 0xA6, 0xA6, 0xA6 + + arm_func_start ov02_02332994 +ov02_02332994: @ 0x02332994 + arm_func_end ov02_02332994 +_02332994: + .byte 0xF8, 0xB5, 0xEA, 0xB0, 0x00, 0x90, 0x01, 0x20, 0x07, 0x90, 0x6A, 0x48 + .byte 0x14, 0x1C, 0x0D, 0x1C, 0x12, 0x90, 0x13, 0x90, 0x07, 0x20, 0x21, 0x1C, 0x01, 0x42, 0x02, 0xD1 + .byte 0x70, 0x9A, 0x10, 0x42, 0x02, 0xD0, 0x6A, 0xB0, 0x00, 0x20, 0xF8, 0xBD, 0x60, 0x1E, 0xC0, 0x08 + .byte 0x05, 0x90, 0x02, 0x28, 0x02, 0xDA, 0x6A, 0xB0, 0x00, 0x20, 0xF8, 0xBD, 0x1A, 0xA8, 0x19, 0x1C + .byte 0xD2, 0x00, 0x00, 0xF0, 0x3B, 0xFA, 0x08, 0x90, 0x16, 0xAB, 0x2A, 0x1C, 0x08, 0x21, 0x10, 0x78 + .byte 0x52, 0x1C, 0x18, 0x70, 0x5B, 0x1C, 0x49, 0x1E, 0xF9, 0xD1, 0x08, 0x35, 0x00, 0x98, 0x29, 0x1C + .byte 0x62, 0x1E, 0x54, 0xF5, 0x54, 0xEC, 0x05, 0x20, 0x09, 0x90, 0x05, 0x98, 0xC0, 0x17, 0x06, 0x90 + .byte 0x05, 0x9C, 0x20, 0x1C, 0x00, 0x28, 0x00, 0xDC, 0x8C, 0xE0, 0x09, 0x9A, 0x06, 0x99, 0xD3, 0x17 + .byte 0x5D, 0xF5, 0x38, 0xEA, 0x03, 0x90, 0x00, 0x20, 0x02, 0x91, 0x0B, 0x90, 0x00, 0x20, 0x00, 0x21 + .byte 0x0D, 0x90, 0x08, 0x1C, 0x08, 0x43, 0x10, 0x90, 0x03, 0x98, 0xE1, 0x17, 0x25, 0x18, 0x02, 0x98 + .byte 0x41, 0x41, 0xFF, 0x20, 0x00, 0x06, 0x08, 0x40, 0x00, 0x0E, 0x0A, 0x90, 0xFF, 0x20, 0x00, 0x04 + .byte 0x08, 0x40, 0x00, 0x0A, 0x0C, 0x90, 0xFF, 0x20, 0x00, 0x02, 0x0A, 0x1C, 0x02, 0x40, 0x00, 0x20 + .byte 0x2B, 0x1C, 0x03, 0x40, 0x10, 0x02, 0x1B, 0x0E, 0x03, 0x43, 0x10, 0x0E, 0x0E, 0x90, 0xFF, 0x20 + .byte 0x00, 0x22, 0x08, 0x40, 0x2A, 0x40, 0x06, 0x06, 0x12, 0x0A, 0x11, 0x92, 0x32, 0x43, 0x00, 0x0A + .byte 0x11, 0x92, 0x0F, 0x90, 0x00, 0x20, 0x0A, 0x1C, 0x02, 0x40, 0xFF, 0x20, 0x00, 0x06, 0x28, 0x40 + .byte 0x06, 0x0E, 0x00, 0x02, 0x84, 0x46, 0x00, 0x20, 0x01, 0x40, 0xFF, 0x20, 0x00, 0x04, 0x12, 0x02 + .byte 0x28, 0x40, 0x32, 0x43, 0x06, 0x0A, 0x07, 0x06, 0xFF, 0x20, 0x09, 0x06, 0x28, 0x40, 0x31, 0x43 + .byte 0x06, 0x06, 0xFF, 0x20, 0x00, 0x02, 0x28, 0x40, 0x00, 0x02, 0x30, 0x43, 0x01, 0x43, 0x10, 0x98 + .byte 0x3D, 0x1C, 0x05, 0x43, 0x60, 0x46, 0x11, 0x43, 0x02, 0x1C, 0x0F, 0x98, 0x2A, 0x43, 0x01, 0x43 + .byte 0x11, 0x98, 0x02, 0x43, 0x0E, 0x98, 0x1A, 0x43, 0x01, 0x43, 0x0D, 0x98, 0x01, 0x43, 0x0C, 0x98 + .byte 0x02, 0x43, 0x0B, 0x98, 0x01, 0x43, 0x0A, 0x98, 0x15, 0x91, 0x10, 0x43, 0x14, 0x90, 0x16, 0xA8 + .byte 0x14, 0xA9, 0x02, 0x1C, 0x00, 0xF0, 0x32, 0xF8, 0x60, 0x1E, 0xC1, 0x00, 0x00, 0x98, 0x18, 0xAA + .byte 0x45, 0x18, 0x2B, 0x1C, 0x08, 0x21, 0x18, 0x78, 0x5B, 0x1C, 0x10, 0x70, 0x52, 0x1C, 0x49, 0x1E + .byte 0xF9, 0xD1, 0x16, 0xAA, 0x08, 0x99, 0x1A, 0xA8, 0x13, 0x1C, 0x00, 0xF0, 0x45, 0xFC, 0x18, 0xAA + .byte 0x08, 0x21, 0x10, 0x78, 0x52, 0x1C, 0x28, 0x70, 0x6D, 0x1C, 0x49, 0x1E, 0xF9, 0xD1, 0x64, 0x1E + .byte 0x00, 0x2C, 0x81, 0xDC, 0x09, 0x98, 0x40, 0x1E, 0x09, 0x90, 0x00, 0xD4, 0x68, 0xE7, 0x12, 0xA8 + .byte 0x16, 0xA9, 0x08, 0x22, 0x54, 0xF5, 0x08, 0xEC, 0x00, 0x28, 0x01, 0xD0, 0x00, 0x20, 0x07, 0x90 + .byte 0x07, 0x98, 0x6A, 0xB0, 0xF8, 0xBD, 0xC0, 0x46, 0xA6, 0xA6, 0xA6, 0xA6 + + arm_func_start ov02_02332B4C +ov02_02332B4C: @ 0x02332B4C + stmdavc r4, {r3, r4, sl, ip, sp, pc} + rsbmi r7, r3, fp, lsl #16 + stmdavc r4, {r0, r1, r4, ip, sp, lr} ^ + rsbmi r7, r3, fp, asr #16 + stmvc r4, {r0, r1, r4, r6, ip, sp, lr} + rsbmi r7, r3, fp, lsl #17 + stmvc r4, {r0, r1, r4, r7, ip, sp, lr} ^ + rsbmi r7, r3, fp, asr #17 + stmdbvc r4, {r0, r1, r4, r6, r7, ip, sp, lr} + rsbmi r7, r3, fp, lsl #18 + stmdbvc r4, {r0, r1, r4, r8, ip, sp, lr} ^ + rsbmi r7, r3, fp, asr #18 + stmibvc r4, {r0, r1, r4, r6, r8, ip, sp, lr} + rsbmi r7, r3, fp, lsl #19 + stmibvc r3, {r0, r1, r4, r7, r8, ip, sp, lr} ^ + subsmi r7, r8, r8, asr #19 + arm_func_end ov02_02332B4C +_02332B8C: + .byte 0xD0, 0x71, 0x18, 0xBC + .byte 0x70, 0x47, 0x00, 0x00 + + arm_func_start ov02_02332B94 +ov02_02332B94: @ 0x02332B94 + strdlt fp, ip, [r6], r8 + arm_func_end ov02_02332B94 +_02332B98: + .byte 0x0B, 0x1C, 0x11, 0x1C, 0x00, 0x22, 0x00, 0x92 + .byte 0x9A, 0x78, 0x5E, 0x78, 0xDD, 0x78, 0x14, 0x02, 0x1A, 0x78, 0x36, 0x04, 0x12, 0x06, 0x72, 0x40 + .byte 0x62, 0x40, 0x6A, 0x40, 0x02, 0x60, 0x9A, 0x79, 0x5E, 0x79, 0xDD, 0x79, 0x14, 0x02, 0x1A, 0x79 + .byte 0x36, 0x04, 0x12, 0x06, 0x72, 0x40, 0x62, 0x40, 0x6A, 0x40, 0x42, 0x60, 0x9A, 0x7A, 0x5E, 0x7A + .byte 0xDD, 0x7A, 0x14, 0x02, 0x1A, 0x7A, 0x36, 0x04, 0x12, 0x06, 0x72, 0x40, 0x62, 0x40, 0x6A, 0x40 + .byte 0x82, 0x60, 0x9A, 0x7B, 0x5E, 0x7B, 0xDD, 0x7B, 0x14, 0x02, 0x1A, 0x7B, 0x36, 0x04, 0x12, 0x06 + .byte 0x72, 0x40, 0x62, 0x40, 0x6A, 0x40, 0xC2, 0x60, 0x80, 0x29, 0x3D, 0xD1, 0x91, 0x4D, 0x92, 0x4A + .byte 0xC4, 0x68, 0x2B, 0x68, 0x21, 0x0E, 0x89, 0x00, 0x51, 0x58, 0x2D, 0x1D, 0x09, 0x06, 0x09, 0x0E + .byte 0x02, 0x91, 0x21, 0x06, 0x89, 0x0D, 0x56, 0x58, 0xFF, 0x21, 0x09, 0x02, 0x37, 0x1C, 0x0F, 0x40 + .byte 0x01, 0x68, 0x01, 0x91, 0x21, 0x0C, 0x09, 0x06, 0x89, 0x0D, 0x56, 0x58, 0xFF, 0x21, 0x09, 0x06 + .byte 0x24, 0x0A, 0x0E, 0x40, 0x01, 0x99, 0x24, 0x06, 0xA4, 0x0D, 0x71, 0x40, 0x16, 0x59, 0xFF, 0x24 + .byte 0x24, 0x04, 0x34, 0x40, 0x61, 0x40, 0x3C, 0x1C, 0x4C, 0x40, 0x02, 0x99, 0x61, 0x40, 0x4B, 0x40 + .byte 0x03, 0x61, 0x41, 0x68, 0x4B, 0x40, 0x43, 0x61, 0x81, 0x68, 0x4B, 0x40, 0x83, 0x61, 0xC1, 0x68 + .byte 0x59, 0x40, 0xC1, 0x61, 0x00, 0x99, 0x49, 0x1C, 0x00, 0x91, 0x0A, 0x29, 0x02, 0xDB, 0x06, 0xB0 + .byte 0x0A, 0x20, 0xF8, 0xBD, 0x10, 0x30, 0xC3, 0xE7, 0x9A, 0x7C, 0x5E, 0x7C, 0xDD, 0x7C, 0x14, 0x02 + .byte 0x1A, 0x7C, 0x36, 0x04, 0x12, 0x06, 0x72, 0x40, 0x62, 0x40, 0x6A, 0x40, 0x02, 0x61, 0x9A, 0x7D + .byte 0x5E, 0x7D, 0xDD, 0x7D, 0x14, 0x02, 0x1A, 0x7D, 0x36, 0x04, 0x12, 0x06, 0x72, 0x40, 0x62, 0x40 + .byte 0x6A, 0x40, 0x42, 0x61, 0xC0, 0x29, 0x45, 0xD1, 0x66, 0x4D, 0x67, 0x4B, 0x44, 0x69, 0x2E, 0x68 + .byte 0x21, 0x0E, 0x89, 0x00, 0x59, 0x58, 0x2D, 0x1D, 0x09, 0x06, 0x09, 0x0E, 0x03, 0x91, 0x21, 0x06 + .byte 0x89, 0x0D, 0x5A, 0x58, 0xFF, 0x21, 0x09, 0x02, 0x17, 0x1C, 0x0F, 0x40, 0x01, 0x68, 0x8E, 0x46 + .byte 0x21, 0x0C, 0x09, 0x06, 0x89, 0x0D, 0x5A, 0x58, 0xFF, 0x21, 0x09, 0x06, 0x11, 0x40, 0x72, 0x46 + .byte 0x51, 0x40, 0x22, 0x0A, 0x12, 0x06, 0x92, 0x0D, 0x9C, 0x58, 0xFF, 0x22, 0x12, 0x04, 0x22, 0x40 + .byte 0x51, 0x40, 0x3A, 0x1C, 0x4A, 0x40, 0x03, 0x99, 0x51, 0x40, 0x32, 0x1C, 0x4A, 0x40, 0x82, 0x61 + .byte 0x41, 0x68, 0x4A, 0x40, 0xC2, 0x61, 0x81, 0x68, 0x4A, 0x40, 0x02, 0x62, 0xC1, 0x68, 0x51, 0x40 + .byte 0x41, 0x62, 0x00, 0x99, 0x49, 0x1C, 0x00, 0x91, 0x08, 0x29, 0x02, 0xDB, 0x06, 0xB0, 0x0C, 0x20 + .byte 0xF8, 0xBD, 0x02, 0x69, 0x41, 0x6A, 0x4A, 0x40, 0x82, 0x62, 0x41, 0x69, 0x51, 0x40, 0xC1, 0x62 + .byte 0x18, 0x30, 0xBB, 0xE7, 0x9A, 0x7E, 0x5E, 0x7E, 0xDD, 0x7E, 0x14, 0x02, 0x1A, 0x7E, 0x36, 0x04 + .byte 0x12, 0x06, 0x72, 0x40, 0x62, 0x40, 0x6A, 0x40, 0x82, 0x61, 0x9A, 0x7F, 0xDD, 0x7F, 0x14, 0x02 + .byte 0x1A, 0x7F, 0x5B, 0x7F, 0x12, 0x06, 0x1B, 0x04, 0x5A, 0x40, 0x62, 0x40, 0x6A, 0x40, 0xC2, 0x61 + .byte 0x01, 0x22, 0x12, 0x02, 0x91, 0x42, 0x6A, 0xD1, 0x36, 0x4D, 0x37, 0x4B, 0xC4, 0x69, 0x2E, 0x68 + .byte 0x21, 0x0E, 0x89, 0x00, 0x59, 0x58, 0x2D, 0x1D, 0x09, 0x06, 0x09, 0x0E, 0x04, 0x91, 0x21, 0x06 + .byte 0x89, 0x0D, 0x5A, 0x58, 0xFF, 0x21, 0x09, 0x02, 0x17, 0x1C, 0x0F, 0x40, 0x01, 0x68, 0x8C, 0x46 + .byte 0x21, 0x0C, 0x09, 0x06, 0x89, 0x0D, 0x5A, 0x58, 0xFF, 0x21, 0x09, 0x06, 0x11, 0x40, 0x62, 0x46 + .byte 0x51, 0x40, 0x22, 0x0A, 0x12, 0x06, 0x92, 0x0D, 0x9C, 0x58, 0xFF, 0x22, 0x12, 0x04, 0x22, 0x40 + .byte 0x51, 0x40, 0x3A, 0x1C, 0x4A, 0x40, 0x04, 0x99, 0x51, 0x40, 0x32, 0x1C, 0x4A, 0x40, 0x02, 0x62 + .byte 0x41, 0x68, 0x4A, 0x40, 0x42, 0x62, 0x81, 0x68, 0x4A, 0x40, 0x82, 0x62, 0xC1, 0x68, 0x51, 0x40 + .byte 0xC1, 0x62, 0x00, 0x99, 0x49, 0x1C, 0x00, 0x91, 0x07, 0x29, 0x02, 0xDB, 0x06, 0xB0, 0x0E, 0x20 + .byte 0xF8, 0xBD, 0xC6, 0x6A, 0x07, 0x69, 0x31, 0x06, 0x89, 0x0D, 0x59, 0x58, 0x09, 0x06, 0x0C, 0x0E + .byte 0x31, 0x0A, 0x09, 0x06, 0x89, 0x0D, 0x5A, 0x58, 0xFF, 0x21, 0x09, 0x02, 0x11, 0x40, 0x05, 0x91 + .byte 0x31, 0x0E, 0x89, 0x00, 0x5A, 0x58, 0xFF, 0x21, 0x09, 0x06, 0x11, 0x40, 0x32, 0x0C, 0x12, 0x06 + .byte 0x92, 0x0D, 0x9E, 0x58, 0xFF, 0x22, 0x12, 0x04, 0x79, 0x40, 0x32, 0x40, 0x4A, 0x40, 0x05, 0x99 + .byte 0x51, 0x40, 0x22, 0x1C, 0x4A, 0x40, 0x02, 0x63, 0x41, 0x69, 0x4A, 0x40, 0x42, 0x63, 0x81, 0x69 + .byte 0x4A, 0x40, 0x82, 0x63, 0xC1, 0x69, 0x51, 0x40, 0xC1, 0x63, 0x20, 0x30, 0x96, 0xE7, 0x00, 0x98 + .byte 0x06, 0xB0, 0xF8, 0xBD, 0x64, 0xFC, 0x34, 0x02, 0x8C, 0x18, 0x35, 0x02 + + arm_func_start ov02_02332E4C +ov02_02332E4C: @ 0x02332E4C + arm_func_end ov02_02332E4C +_02332E4C: + .byte 0xF8, 0xB5, 0x04, 0x1C + .byte 0xFF, 0xF7, 0xA0, 0xFE, 0x84, 0x46, 0x61, 0x46, 0x8E, 0x00, 0x00, 0x20, 0x00, 0x2E, 0x18, 0xDD + .byte 0xB2, 0x00, 0x21, 0x1C, 0xA2, 0x18, 0x0D, 0x68, 0x13, 0x68, 0x00, 0x1D, 0x0B, 0x60, 0x15, 0x60 + .byte 0x4D, 0x68, 0x53, 0x68, 0x36, 0x1F, 0x4B, 0x60, 0x55, 0x60, 0x8D, 0x68, 0x93, 0x68, 0x8B, 0x60 + .byte 0x95, 0x60, 0xCD, 0x68, 0xD3, 0x68, 0xCB, 0x60, 0xD5, 0x60, 0x10, 0x31, 0x10, 0x3A, 0xB0, 0x42 + .byte 0xE9, 0xDB, 0x01, 0x20, 0x00, 0x90, 0x60, 0x46, 0x01, 0x28, 0x00, 0xDC, 0x91, 0xE0, 0x4A, 0x4A + .byte 0x4A, 0x4F, 0x10, 0x34, 0x23, 0x68, 0x18, 0x06, 0x80, 0x0D, 0x10, 0x58, 0x00, 0x06, 0x80, 0x0D + .byte 0x39, 0x58, 0x18, 0x0A, 0x00, 0x06, 0x80, 0x0D, 0x10, 0x58, 0x00, 0x06, 0x85, 0x0D, 0x44, 0x48 + .byte 0x46, 0x59, 0x18, 0x0E, 0x80, 0x00, 0x1B, 0x0C, 0x10, 0x58, 0x1B, 0x06, 0x9B, 0x0D, 0x00, 0x06 + .byte 0xD3, 0x58, 0x85, 0x0D, 0x3F, 0x48, 0x1B, 0x06, 0x40, 0x59, 0x9D, 0x0D, 0x3E, 0x4B, 0x5B, 0x59 + .byte 0x58, 0x40, 0x70, 0x40, 0x48, 0x40, 0x20, 0x60, 0x63, 0x68, 0x18, 0x06, 0x80, 0x0D, 0x10, 0x58 + .byte 0x00, 0x06, 0x80, 0x0D, 0x39, 0x58, 0x18, 0x0A, 0x00, 0x06, 0x80, 0x0D, 0x10, 0x58, 0x00, 0x06 + .byte 0x85, 0x0D, 0x33, 0x48, 0x46, 0x59, 0x18, 0x0E, 0x80, 0x00, 0x1B, 0x0C, 0x10, 0x58, 0x1B, 0x06 + .byte 0x9B, 0x0D, 0x00, 0x06, 0xD3, 0x58, 0x85, 0x0D, 0x2E, 0x48, 0x1B, 0x06, 0x40, 0x59, 0x9D, 0x0D + .byte 0x2D, 0x4B, 0x5B, 0x59, 0x58, 0x40, 0x70, 0x40, 0x48, 0x40, 0x60, 0x60, 0xA3, 0x68, 0x18, 0x06 + .byte 0x80, 0x0D, 0x10, 0x58, 0x00, 0x06, 0x80, 0x0D, 0x39, 0x58, 0x18, 0x0A, 0x00, 0x06, 0x80, 0x0D + .byte 0x10, 0x58, 0x00, 0x06, 0x85, 0x0D, 0x22, 0x48, 0x46, 0x59, 0x18, 0x0E, 0x80, 0x00, 0x1B, 0x0C + .byte 0x10, 0x58, 0x1B, 0x06, 0x9B, 0x0D, 0x00, 0x06, 0xD3, 0x58, 0x85, 0x0D, 0x1D, 0x48, 0x1B, 0x06 + .byte 0x40, 0x59, 0x9D, 0x0D, 0x1C, 0x4B, 0x5B, 0x59, 0x58, 0x40, 0x70, 0x40, 0x48, 0x40, 0xA0, 0x60 + .byte 0xE3, 0x68, 0x18, 0x06, 0x80, 0x0D, 0x10, 0x58, 0x00, 0x06, 0x80, 0x0D, 0x39, 0x58, 0x18, 0x0A + .byte 0x00, 0x06, 0x80, 0x0D, 0x10, 0x58, 0x00, 0x06, 0x85, 0x0D, 0x11, 0x48, 0x46, 0x59, 0x18, 0x0E + .byte 0x80, 0x00, 0x1B, 0x0C, 0x10, 0x58, 0x1B, 0x06, 0x9B, 0x0D, 0x00, 0x06, 0xD3, 0x58, 0x85, 0x0D + .byte 0x0C, 0x48, 0x1B, 0x06, 0x40, 0x59, 0x9D, 0x0D, 0x0B, 0x4B, 0x5B, 0x59, 0x58, 0x40, 0x70, 0x40 + .byte 0x48, 0x40, 0xE0, 0x60, 0x00, 0x98, 0x41, 0x1C, 0x60, 0x46, 0x00, 0x91, 0x81, 0x42, 0x00, 0xDA + .byte 0x6F, 0xE7, 0x60, 0x46, 0xF8, 0xBD, 0xC0, 0x46, 0x8C, 0x18, 0x35, 0x02, 0x8C, 0x00, 0x35, 0x02 + .byte 0x8C, 0xFC, 0x34, 0x02, 0x8C, 0x1C, 0x35, 0x02, 0x8C, 0x20, 0x35, 0x02 + + arm_func_start ov02_02332FDC +ov02_02332FDC: @ 0x02332FDC + ldrshlt fp, [r3], r0 + arm_func_end ov02_02332FDC +_02332FE0: + .byte 0x0F, 0x1C, 0x11, 0x1C, 0x8A, 0x78, 0x00, 0x93, 0x4E, 0x78, 0x13, 0x02, 0x0A, 0x78, 0xCC, 0x78 + .byte 0x36, 0x04, 0x12, 0x06, 0x72, 0x40, 0x5A, 0x40, 0x62, 0x40, 0x05, 0x68, 0x4E, 0x79, 0x6A, 0x40 + .byte 0x03, 0x92, 0x8A, 0x79, 0xCC, 0x79, 0x36, 0x04, 0x13, 0x02, 0x0A, 0x79, 0x45, 0x68, 0x12, 0x06 + .byte 0x72, 0x40, 0x5A, 0x40, 0x62, 0x40, 0x6A, 0x40, 0x02, 0x92, 0x8A, 0x7A, 0x4E, 0x7A, 0xCC, 0x7A + .byte 0x13, 0x02, 0x0A, 0x7A, 0x36, 0x04, 0x85, 0x68, 0x12, 0x06, 0x72, 0x40, 0x5A, 0x40, 0x62, 0x40 + .byte 0x55, 0x40, 0x8A, 0x7B, 0xCC, 0x7B, 0xC6, 0x68, 0x13, 0x02, 0x0A, 0x7B, 0x49, 0x7B, 0x12, 0x06 + .byte 0x09, 0x04, 0x51, 0x40, 0x59, 0x40, 0x61, 0x40, 0x4E, 0x40, 0x79, 0x10, 0x01, 0x91, 0x31, 0x06 + .byte 0x8A, 0x0D, 0xCC, 0x49, 0x04, 0x69, 0x8B, 0x58, 0x29, 0x0A, 0x09, 0x06, 0x8A, 0x0D, 0xCA, 0x49 + .byte 0x89, 0x58, 0x10, 0x91, 0x03, 0x99, 0x09, 0x0E, 0x8A, 0x00, 0xC8, 0x49, 0x8F, 0x58, 0x02, 0x99 + .byte 0x09, 0x0C, 0x09, 0x06, 0x8A, 0x0D, 0xC6, 0x49, 0x89, 0x58, 0x3A, 0x1C, 0x4A, 0x40, 0x10, 0x99 + .byte 0x51, 0x40, 0x59, 0x40, 0x61, 0x40, 0x04, 0x91, 0x03, 0x99, 0x44, 0x69, 0x09, 0x06, 0x8A, 0x0D + .byte 0xBC, 0x49, 0x8B, 0x58, 0x31, 0x0A, 0x09, 0x06, 0x8A, 0x0D, 0xBB, 0x49, 0x89, 0x58, 0x12, 0x91 + .byte 0x02, 0x99, 0x09, 0x0E, 0x8A, 0x00, 0xB9, 0x49, 0x8F, 0x58, 0x29, 0x0C, 0x09, 0x06, 0x8A, 0x0D + .byte 0xB7, 0x49, 0x89, 0x58, 0x3A, 0x1C, 0x4A, 0x40, 0x12, 0x99, 0x51, 0x40, 0x59, 0x40, 0x61, 0x40 + .byte 0x11, 0x91, 0x02, 0x99, 0x84, 0x69, 0x09, 0x06, 0x8A, 0x0D, 0xAE, 0x49, 0x8B, 0x58, 0x03, 0x99 + .byte 0x09, 0x0A, 0x09, 0x06, 0x8A, 0x0D, 0xAC, 0x49, 0x89, 0x58, 0x05, 0x91, 0x29, 0x0E, 0x8A, 0x00 + .byte 0xAA, 0x49, 0x8F, 0x58, 0x31, 0x0C, 0x09, 0x06, 0x8A, 0x0D, 0xA9, 0x49, 0x89, 0x58, 0x3A, 0x1C + .byte 0x4A, 0x40, 0x05, 0x99, 0xC7, 0x69, 0x51, 0x40, 0x59, 0x40, 0x22, 0x1C, 0x4A, 0x40, 0x29, 0x06 + .byte 0x8B, 0x0D, 0xA0, 0x49, 0x20, 0x30, 0xCB, 0x58, 0x02, 0x99, 0x09, 0x0A, 0x09, 0x06, 0x8C, 0x0D + .byte 0x9D, 0x49, 0x09, 0x59, 0x34, 0x0E, 0xA5, 0x00, 0x9C, 0x4C, 0x66, 0x59, 0x03, 0x9C, 0x24, 0x0C + .byte 0x24, 0x06, 0xA5, 0x0D, 0x9A, 0x4C, 0x64, 0x59, 0x74, 0x40, 0x61, 0x40, 0x59, 0x40, 0x01, 0x9B + .byte 0x79, 0x40, 0x5B, 0x1E, 0x01, 0x93, 0x6F, 0xD0, 0x0B, 0x06, 0x9D, 0x0D, 0x91, 0x4B, 0x04, 0x68 + .byte 0x5B, 0x59, 0x15, 0x0A, 0x2D, 0x06, 0xAE, 0x0D, 0x8F, 0x4D, 0xAF, 0x59, 0x04, 0x9D, 0x2D, 0x0E + .byte 0xAE, 0x00, 0x8E, 0x4D, 0xAD, 0x59, 0x06, 0x95, 0x11, 0x9D, 0x2D, 0x0C, 0x2D, 0x06, 0xAE, 0x0D + .byte 0x8B, 0x4D, 0xAE, 0x59, 0x06, 0x9D, 0x75, 0x40, 0x7D, 0x40, 0x6B, 0x40, 0x63, 0x40, 0x03, 0x93 + .byte 0x04, 0x9B, 0x44, 0x68, 0x1B, 0x06, 0x9D, 0x0D, 0x82, 0x4B, 0x5B, 0x59, 0x0D, 0x0A, 0x2D, 0x06 + .byte 0xAE, 0x0D, 0x81, 0x4D, 0xAF, 0x59, 0x11, 0x9D, 0x2D, 0x0E, 0xAE, 0x00, 0x7F, 0x4D, 0xAD, 0x59 + .byte 0x07, 0x95, 0x15, 0x0C, 0x2D, 0x06, 0xAE, 0x0D, 0x7D, 0x4D, 0xAE, 0x59, 0x07, 0x9D, 0x75, 0x40 + .byte 0x7D, 0x40, 0x6B, 0x40, 0x63, 0x40, 0x02, 0x93, 0x11, 0x9B, 0x86, 0x68, 0x1B, 0x06, 0x9C, 0x0D + .byte 0x74, 0x4B, 0x1D, 0x59, 0x04, 0x9B, 0x1B, 0x0A, 0x1B, 0x06, 0x9C, 0x0D, 0x72, 0x4B, 0x1B, 0x59 + .byte 0x08, 0x93, 0x13, 0x0E, 0x9C, 0x00, 0x71, 0x4B, 0x12, 0x06, 0x1F, 0x59, 0x0B, 0x0C, 0x1B, 0x06 + .byte 0x9C, 0x0D, 0x6F, 0x4B, 0x09, 0x0E, 0x1B, 0x59, 0x3C, 0x1C, 0x5C, 0x40, 0x08, 0x9B, 0xC7, 0x68 + .byte 0x63, 0x40, 0x6B, 0x40, 0x35, 0x1C, 0x5D, 0x40, 0x93, 0x0D, 0x66, 0x4A, 0xD3, 0x58, 0x11, 0x9A + .byte 0x12, 0x0A, 0x12, 0x06, 0x94, 0x0D, 0x64, 0x4A, 0x12, 0x59, 0x8C, 0x00, 0x63, 0x49, 0x0E, 0x59 + .byte 0x04, 0x99, 0x09, 0x0C, 0x09, 0x06, 0x8C, 0x0D, 0x61, 0x49, 0x09, 0x59, 0x71, 0x40, 0x51, 0x40 + .byte 0x59, 0x40, 0x3E, 0x1C, 0x4E, 0x40, 0x1A, 0xE7, 0x03, 0x68, 0xFF, 0x26, 0x09, 0x93, 0x0B, 0x06 + .byte 0x9C, 0x0D, 0x5C, 0x4B, 0x36, 0x04, 0x1C, 0x59, 0x24, 0x06, 0x24, 0x0E, 0x0A, 0x94, 0x14, 0x0A + .byte 0x24, 0x06, 0xA4, 0x0D, 0x1D, 0x59, 0xFF, 0x24, 0x24, 0x02, 0x2C, 0x40, 0x0B, 0x94, 0x04, 0x9C + .byte 0x24, 0x0E, 0xA4, 0x00, 0x1D, 0x59, 0xFF, 0x24, 0x24, 0x06, 0x25, 0x40, 0x11, 0x9C, 0x24, 0x0C + .byte 0x24, 0x06, 0xA4, 0x0D, 0x1C, 0x59, 0x34, 0x40, 0x65, 0x40, 0x0B, 0x9C, 0x65, 0x40, 0x0A, 0x9C + .byte 0x65, 0x40, 0x09, 0x9C, 0x6C, 0x40, 0x00, 0x9D, 0x26, 0x0E, 0x2E, 0x70, 0x26, 0x0C, 0x6E, 0x70 + .byte 0x26, 0x0A, 0xAE, 0x70, 0xEC, 0x70, 0x44, 0x68, 0xFF, 0x26, 0x0C, 0x94, 0x04, 0x9C, 0x36, 0x04 + .byte 0x24, 0x06, 0xA4, 0x0D, 0x1C, 0x59, 0x24, 0x06, 0x24, 0x0E, 0x0D, 0x94, 0x0C, 0x0A, 0x24, 0x06 + .byte 0xA4, 0x0D, 0x1D, 0x59, 0xFF, 0x24, 0x24, 0x02, 0x2C, 0x40, 0x0E, 0x94, 0x11, 0x9C, 0x24, 0x0E + .byte 0xA4, 0x00, 0x1D, 0x59, 0xFF, 0x24, 0x24, 0x06, 0x25, 0x40, 0x14, 0x0C, 0x24, 0x06, 0xA4, 0x0D + .byte 0x1C, 0x59, 0x34, 0x40, 0x65, 0x40, 0x0E, 0x9C, 0x65, 0x40, 0x0D, 0x9C, 0x65, 0x40, 0x0C, 0x9C + .byte 0x6C, 0x40, 0x00, 0x9D, 0x26, 0x0E, 0x2E, 0x71, 0x26, 0x0C, 0x6E, 0x71, 0x26, 0x0A, 0xAE, 0x71 + .byte 0xEC, 0x71, 0x84, 0x68, 0x0F, 0x94, 0x11, 0x9C, 0x24, 0x06, 0xA4, 0x0D, 0x1C, 0x59, 0x24, 0x06 + .byte 0x24, 0x0E, 0xA6, 0x46, 0x04, 0x9C, 0x24, 0x0A, 0x24, 0x06, 0xA4, 0x0D, 0x1D, 0x59, 0xFF, 0x24 + .byte 0x24, 0x02, 0x2C, 0x40, 0xA4, 0x46, 0x14, 0x0E, 0xA4, 0x00, 0x1D, 0x59, 0xFF, 0x24, 0x24, 0x06 + .byte 0x2E, 0x1C, 0x26, 0x40, 0x0C, 0x0C, 0x24, 0x06, 0xA4, 0x0D, 0x1D, 0x59, 0xFF, 0x24, 0x24, 0x04 + .byte 0x2C, 0x40, 0x74, 0x40, 0x65, 0x46, 0x65, 0x40, 0x74, 0x46, 0x65, 0x40, 0x0F, 0x9C, 0x6C, 0x40 + .byte 0x00, 0x9D, 0x26, 0x0E, 0x2E, 0x72, 0x26, 0x0C, 0x6E, 0x72, 0x26, 0x0A, 0xAE, 0x72, 0xEC, 0x72 + .byte 0xC5, 0x68, 0x10, 0x06, 0x80, 0x0D, 0x18, 0x58, 0x00, 0x06, 0x04, 0x0E, 0x11, 0x98, 0x00, 0x0A + .byte 0x00, 0x06, 0x80, 0x0D, 0x1A, 0x58, 0xFF, 0x20, 0x00, 0x02, 0x02, 0x40, 0x08, 0x0E, 0x80, 0x00 + .byte 0x19, 0x58, 0xFF, 0x20, 0x00, 0x06, 0x08, 0x40, 0x04, 0x99, 0x09, 0x0C, 0x09, 0x06, 0x89, 0x0D + .byte 0x5B, 0x58, 0xFF, 0x21, 0x09, 0x04, 0x19, 0x40, 0x48, 0x40, 0x50, 0x40, 0x60, 0x40, 0x68, 0x40 + .byte 0x00, 0x99, 0x02, 0x0E, 0x0A, 0x73, 0x02, 0x0C, 0x4A, 0x73, 0x02, 0x0A, 0x8A, 0x73, 0xC8, 0x73 + .byte 0x13, 0xB0, 0xF0, 0xBD, 0x8C, 0x14, 0x35, 0x02, 0x8C, 0x10, 0x35, 0x02, 0x8C, 0x08, 0x35, 0x02 + .byte 0x8C, 0x0C, 0x35, 0x02, 0x8C, 0x18, 0x35, 0x02 + + arm_func_start ov02_02333398 +ov02_02333398: @ 0x02333398 + ldrshlt fp, [r2], r8 + arm_func_end ov02_02333398 +_0233339C: + .byte 0x0F, 0x1C, 0x11, 0x1C + .byte 0x8A, 0x78, 0x00, 0x93, 0x4E, 0x78, 0x13, 0x02, 0x0A, 0x78, 0xCC, 0x78, 0x36, 0x04, 0x12, 0x06 + .byte 0x72, 0x40, 0x5A, 0x40, 0x62, 0x40, 0x05, 0x68, 0x4E, 0x79, 0x6A, 0x40, 0x03, 0x92, 0x8A, 0x79 + .byte 0xCC, 0x79, 0x36, 0x04, 0x13, 0x02, 0x0A, 0x79, 0x45, 0x68, 0x12, 0x06, 0x72, 0x40, 0x5A, 0x40 + .byte 0x62, 0x40, 0x6A, 0x40, 0x02, 0x92, 0x8A, 0x7A, 0x4E, 0x7A, 0xCC, 0x7A, 0x13, 0x02, 0x0A, 0x7A + .byte 0x36, 0x04, 0x85, 0x68, 0x12, 0x06, 0x72, 0x40, 0x5A, 0x40, 0x62, 0x40, 0x6A, 0x40, 0x10, 0x92 + .byte 0x8A, 0x7B, 0xC5, 0x68, 0xCC, 0x7B, 0x13, 0x02, 0x0A, 0x7B, 0x49, 0x7B, 0x2E, 0x1C, 0x12, 0x06 + .byte 0x09, 0x04, 0x51, 0x40, 0x59, 0x40, 0x61, 0x40, 0x4E, 0x40, 0x79, 0x10, 0x01, 0x91, 0x02, 0x99 + .byte 0x05, 0x69, 0x09, 0x06, 0x8A, 0x0D, 0xCA, 0x49, 0x8C, 0x58, 0x10, 0x99, 0x09, 0x0A, 0x09, 0x06 + .byte 0x8A, 0x0D, 0xC8, 0x49, 0x8B, 0x58, 0x03, 0x99, 0x09, 0x0E, 0x8A, 0x00, 0xC6, 0x49, 0x8F, 0x58 + .byte 0x31, 0x0C, 0x09, 0x06, 0x8A, 0x0D, 0xC5, 0x49, 0x89, 0x58, 0x79, 0x40, 0x59, 0x40, 0x61, 0x40 + .byte 0x69, 0x40, 0x04, 0x91, 0x10, 0x99, 0x45, 0x69, 0x09, 0x06, 0x8A, 0x0D, 0xBC, 0x49, 0x8C, 0x58 + .byte 0x31, 0x0A, 0x09, 0x06, 0x8A, 0x0D, 0xBB, 0x49, 0x8B, 0x58, 0x02, 0x99, 0x09, 0x0E, 0x8A, 0x00 + .byte 0xB9, 0x49, 0x8F, 0x58, 0x03, 0x99, 0x09, 0x0C, 0x09, 0x06, 0x8A, 0x0D, 0xB7, 0x49, 0x89, 0x58 + .byte 0x79, 0x40, 0x59, 0x40, 0x61, 0x40, 0x69, 0x40, 0x11, 0x91, 0x31, 0x06, 0x8A, 0x0D, 0xB0, 0x49 + .byte 0x83, 0x69, 0x8A, 0x58, 0x03, 0x99, 0x09, 0x0A, 0x09, 0x06, 0x8C, 0x0D, 0xAD, 0x49, 0x09, 0x59 + .byte 0x05, 0x91, 0x10, 0x99, 0x09, 0x0E, 0x8C, 0x00, 0xAB, 0x49, 0x09, 0x59, 0x02, 0x9C, 0x24, 0x0C + .byte 0x24, 0x06, 0xA5, 0x0D, 0xA9, 0x4C, 0x64, 0x59, 0x4C, 0x40, 0x05, 0x99, 0x61, 0x40, 0x51, 0x40 + .byte 0x1A, 0x1C, 0x4A, 0x40, 0x03, 0x99, 0xC3, 0x69, 0x09, 0x06, 0x8C, 0x0D, 0xA0, 0x49, 0x20, 0x30 + .byte 0x09, 0x59, 0x02, 0x9C, 0x24, 0x0A, 0x24, 0x06, 0xA5, 0x0D, 0x9E, 0x4C, 0x67, 0x59, 0x34, 0x0E + .byte 0xA5, 0x00, 0x9D, 0x4C, 0x66, 0x59, 0x10, 0x9C, 0x24, 0x0C, 0x24, 0x06, 0xA5, 0x0D, 0x9B, 0x4C + .byte 0x64, 0x59, 0x74, 0x40, 0x7C, 0x40, 0x61, 0x40, 0x59, 0x40, 0x01, 0x9B, 0x5B, 0x1E, 0x01, 0x93 + .byte 0x6F, 0xD0, 0x11, 0x9B, 0x04, 0x68, 0x1B, 0x06, 0x9D, 0x0D, 0x91, 0x4B, 0x5B, 0x59, 0x15, 0x0A + .byte 0x2D, 0x06, 0xAE, 0x0D, 0x8F, 0x4D, 0xAF, 0x59, 0x04, 0x9D, 0x2D, 0x0E, 0xAE, 0x00, 0x8E, 0x4D + .byte 0xAD, 0x59, 0x06, 0x95, 0x0D, 0x0C, 0x2D, 0x06, 0xAE, 0x0D, 0x8C, 0x4D, 0xAE, 0x59, 0x06, 0x9D + .byte 0x75, 0x40, 0x7D, 0x40, 0x6B, 0x40, 0x63, 0x40, 0x03, 0x93, 0x13, 0x06, 0x9D, 0x0D, 0x84, 0x4B + .byte 0x44, 0x68, 0x5B, 0x59, 0x0D, 0x0A, 0x2D, 0x06, 0xAE, 0x0D, 0x82, 0x4D, 0xAF, 0x59, 0x11, 0x9D + .byte 0x2D, 0x0E, 0xAE, 0x00, 0x80, 0x4D, 0xAD, 0x59, 0x07, 0x95, 0x04, 0x9D, 0x2D, 0x0C, 0x2D, 0x06 + .byte 0xAE, 0x0D, 0x7E, 0x4D, 0xAE, 0x59, 0x07, 0x9D, 0x75, 0x40, 0x7D, 0x40, 0x6B, 0x40, 0x63, 0x40 + .byte 0x02, 0x93, 0x0B, 0x06, 0x9C, 0x0D, 0x76, 0x4B, 0x86, 0x68, 0x1D, 0x59, 0x04, 0x9B, 0x09, 0x0E + .byte 0x1B, 0x0A, 0x1B, 0x06, 0x9C, 0x0D, 0x73, 0x4B, 0x1B, 0x59, 0x08, 0x93, 0x13, 0x0E, 0x9C, 0x00 + .byte 0x71, 0x4B, 0x12, 0x0C, 0x1F, 0x59, 0x11, 0x9B, 0x12, 0x06, 0x1B, 0x0C, 0x1B, 0x06, 0x9C, 0x0D + .byte 0x6E, 0x4B, 0x1B, 0x59, 0x3C, 0x1C, 0x5C, 0x40, 0x08, 0x9B, 0x63, 0x40, 0x6B, 0x40, 0x73, 0x40 + .byte 0x10, 0x93, 0x04, 0x9B, 0xC5, 0x68, 0x1B, 0x06, 0x9C, 0x0D, 0x65, 0x4B, 0x1C, 0x59, 0x11, 0x9B + .byte 0x1B, 0x0A, 0x1B, 0x06, 0x9E, 0x0D, 0x63, 0x4B, 0x9B, 0x59, 0x8E, 0x00, 0x62, 0x49, 0x89, 0x59 + .byte 0x96, 0x0D, 0x62, 0x4A, 0x92, 0x59, 0x2E, 0x1C, 0x51, 0x40, 0x59, 0x40, 0x61, 0x40, 0x4E, 0x40 + .byte 0x1D, 0xE7, 0x03, 0x68, 0xFF, 0x26, 0x09, 0x93, 0x11, 0x9B, 0x36, 0x04, 0x1B, 0x06, 0x9C, 0x0D + .byte 0x5B, 0x4B, 0x1C, 0x59, 0x24, 0x06, 0x24, 0x0E, 0x0A, 0x94, 0x14, 0x0A, 0x24, 0x06, 0xA4, 0x0D + .byte 0x1D, 0x59, 0xFF, 0x24, 0x24, 0x02, 0x2C, 0x40, 0x0B, 0x94, 0x04, 0x9C, 0x24, 0x0E, 0xA4, 0x00 + .byte 0x1D, 0x59, 0xFF, 0x24, 0x24, 0x06, 0x25, 0x40, 0x0C, 0x0C, 0x24, 0x06, 0xA4, 0x0D, 0x1C, 0x59 + .byte 0x34, 0x40, 0x65, 0x40, 0x0B, 0x9C, 0x65, 0x40, 0x0A, 0x9C, 0x65, 0x40, 0x09, 0x9C, 0x6C, 0x40 + .byte 0x00, 0x9D, 0x26, 0x0E, 0x2E, 0x70, 0x26, 0x0C, 0x6E, 0x70, 0x26, 0x0A, 0xAE, 0x70, 0xEC, 0x70 + .byte 0x44, 0x68, 0xFF, 0x26, 0x0C, 0x94, 0x14, 0x06, 0xA4, 0x0D, 0x1C, 0x59, 0x36, 0x04, 0x24, 0x06 + .byte 0x24, 0x0E, 0x0D, 0x94, 0x0C, 0x0A, 0x24, 0x06, 0xA4, 0x0D, 0x1D, 0x59, 0xFF, 0x24, 0x24, 0x02 + .byte 0x2C, 0x40, 0x0E, 0x94, 0x11, 0x9C, 0x24, 0x0E, 0xA4, 0x00, 0x1D, 0x59, 0xFF, 0x24, 0x24, 0x06 + .byte 0x25, 0x40, 0x04, 0x9C, 0x24, 0x0C, 0x24, 0x06, 0xA4, 0x0D, 0x1C, 0x59, 0x34, 0x40, 0x65, 0x40 + .byte 0x0E, 0x9C, 0x65, 0x40, 0x0D, 0x9C, 0x65, 0x40, 0x0C, 0x9C, 0x6C, 0x40, 0x00, 0x9D, 0x26, 0x0E + .byte 0x2E, 0x71, 0x26, 0x0C, 0x6E, 0x71, 0x26, 0x0A, 0xAE, 0x71, 0xEC, 0x71, 0x84, 0x68, 0x0F, 0x94 + .byte 0x0C, 0x06, 0xA4, 0x0D, 0x1C, 0x59, 0x24, 0x06, 0x24, 0x0E, 0xA6, 0x46, 0x04, 0x9C, 0x24, 0x0A + .byte 0x24, 0x06, 0xA4, 0x0D, 0x1D, 0x59, 0xFF, 0x24, 0x24, 0x02, 0x2C, 0x40, 0xA4, 0x46, 0x14, 0x0E + .byte 0xA4, 0x00, 0x1D, 0x59, 0xFF, 0x24, 0x24, 0x06, 0x2E, 0x1C, 0x26, 0x40, 0x11, 0x9C, 0x24, 0x0C + .byte 0x24, 0x06, 0xA4, 0x0D, 0x1D, 0x59, 0xFF, 0x24, 0x24, 0x04, 0x2C, 0x40, 0x74, 0x40, 0x65, 0x46 + .byte 0x65, 0x40, 0x74, 0x46, 0x65, 0x40, 0x0F, 0x9C, 0x6C, 0x40, 0x00, 0x9D, 0x26, 0x0E, 0x2E, 0x72 + .byte 0x26, 0x0C, 0x6E, 0x72, 0x26, 0x0A, 0xAE, 0x72, 0xEC, 0x72, 0xC5, 0x68, 0x04, 0x98, 0x12, 0x0C + .byte 0x00, 0x06, 0x80, 0x0D, 0x18, 0x58, 0x09, 0x0E, 0x00, 0x06, 0x04, 0x0E, 0x11, 0x98, 0x12, 0x06 + .byte 0x00, 0x0A, 0x00, 0x06, 0x80, 0x0D, 0x1E, 0x58, 0xFF, 0x20, 0x00, 0x02, 0x89, 0x00, 0x30, 0x40 + .byte 0xFF, 0x26, 0x92, 0x0D, 0x59, 0x58, 0x9B, 0x58, 0xFF, 0x22, 0x36, 0x06, 0x12, 0x04, 0x31, 0x40 + .byte 0x1A, 0x40, 0x51, 0x40, 0x48, 0x40, 0x60, 0x40, 0x68, 0x40, 0x00, 0x99, 0x02, 0x0E, 0x0A, 0x73 + .byte 0x02, 0x0C, 0x4A, 0x73, 0x02, 0x0A, 0x8A, 0x73, 0xC8, 0x73, 0x12, 0xB0, 0xF8, 0xBD, 0xC0, 0x46 + .byte 0x8C, 0x00, 0x35, 0x02, 0x8C, 0xFC, 0x34, 0x02, 0x8C, 0x1C, 0x35, 0x02, 0x8C, 0x20, 0x35, 0x02 + .byte 0x8C, 0x04, 0x35, 0x02 + + arm_func_start ov02_02333754 +ov02_02333754: @ 0x02333754 + mrsvs r2, spsr + stmdbmi r4, {r0, r8, sp, lr} + stmdbmi r4, {r0, sp, lr} + stmdbmi r4, {r0, r6, sp, lr} + stmdbmi r4, {r0, r7, sp, lr} + ldrbmi r6, [r0, -r1, asr #1]! + strbvs r2, [r5, -r1, lsl #6] + svc #0xcdab89 + ldmls sl!, {r1, r2, r3, r4, r5, r6, r7, sl, fp, ip, lr, pc} + eorsne r5, r2, r6, ror r4 + arm_func_end ov02_02333754 + + arm_func_start ov02_0233377C +ov02_0233377C: @ 0x0233377C + arm_func_end ov02_0233377C +_0233377C: + .byte 0xF8, 0xB5, 0x05, 0x1C + .byte 0x0F, 0x1C, 0x29, 0x69, 0x16, 0x1C, 0xCA, 0x08, 0x3F, 0x20, 0x10, 0x40, 0xF2, 0x00, 0x89, 0x18 + .byte 0x29, 0x61, 0x91, 0x42, 0x02, 0xD2, 0x69, 0x69, 0x49, 0x1C, 0x69, 0x61, 0x6A, 0x69, 0x71, 0x0F + .byte 0x51, 0x18, 0x69, 0x61, 0x40, 0x21, 0x0C, 0x1A, 0xA6, 0x42, 0x1A, 0xD3, 0x29, 0x1C, 0x18, 0x31 + .byte 0x08, 0x18, 0x39, 0x1C, 0x22, 0x1C, 0x00, 0xF0, 0x97, 0xFC, 0x29, 0x1C, 0x28, 0x1C, 0x18, 0x31 + .byte 0x00, 0xF0, 0x42, 0xF8, 0x20, 0x1C, 0x3F, 0x30, 0xB0, 0x42, 0x08, 0xD2, 0x28, 0x1C, 0x39, 0x19 + .byte 0x00, 0xF0, 0x3A, 0xF8, 0x40, 0x34, 0x20, 0x1C, 0x3F, 0x30, 0xB0, 0x42, 0xF6, 0xD3, 0x00, 0x20 + .byte 0x00, 0xE0, 0x00, 0x24, 0x18, 0x35, 0x28, 0x18, 0x39, 0x19, 0x32, 0x1B, 0x00, 0xF0, 0x7C, 0xFC + .byte 0xF8, 0xBD, 0x00, 0x00 + + arm_func_start ov02_023337F4 +ov02_023337F4: @ 0x023337F4 + addlt fp, r2, r8, lsr r5 + arm_func_end ov02_023337F4 +_023337F8: + .byte 0x05, 0x1C, 0x0C, 0x1C, 0x00, 0xA8, 0x10, 0x31 + .byte 0x08, 0x22, 0x00, 0xF0, 0x45, 0xFC, 0x20, 0x69, 0xC1, 0x08, 0x3F, 0x20, 0x01, 0x40, 0x38, 0x29 + .byte 0x01, 0xD2, 0x38, 0x20, 0x00, 0xE0, 0x78, 0x20, 0x42, 0x1A, 0x0A, 0x49, 0x20, 0x1C, 0xFF, 0xF7 + .byte 0xAD, 0xFF, 0x20, 0x1C, 0x00, 0xA9, 0x08, 0x22, 0xFF, 0xF7, 0xA8, 0xFF, 0x28, 0x1C, 0x21, 0x1C + .byte 0x10, 0x22, 0x00, 0xF0, 0x2D, 0xFC, 0x20, 0x1C, 0x00, 0x21, 0x58, 0x22, 0x00, 0xF0, 0x60, 0xFC + .byte 0x02, 0xB0, 0x38, 0xBD, 0x88, 0x30, 0x35, 0x02 + + arm_func_start ov02_02333848 +ov02_02333848: @ 0x02333848 + arm_func_end ov02_02333848 +_02333848: + .byte 0xF0, 0xB5, 0xA1, 0xB0, 0x07, 0x1C, 0x38, 0x68 + .byte 0x40, 0x22, 0x00, 0x90, 0x11, 0xA8, 0x7C, 0x68, 0xBD, 0x68, 0xFE, 0x68, 0x00, 0xF0, 0x2E, 0xFC + .byte 0x11, 0x98, 0x21, 0x1C, 0x01, 0x90, 0xE0, 0x43, 0x29, 0x40, 0x30, 0x40, 0x01, 0x43, 0x01, 0x98 + .byte 0x41, 0x18, 0xEB, 0x48, 0x09, 0x1A, 0x00, 0x98, 0x40, 0x18, 0xC1, 0x01, 0x40, 0x0E, 0x08, 0x43 + .byte 0x03, 0x19, 0x12, 0x98, 0xD9, 0x43, 0x02, 0x90, 0x18, 0x1C, 0x20, 0x40, 0x29, 0x40, 0x01, 0x43 + .byte 0x02, 0x98, 0x41, 0x18, 0xE3, 0x48, 0x08, 0x1A, 0x30, 0x18, 0x01, 0x03, 0x00, 0x0D, 0x08, 0x43 + .byte 0xC2, 0x18, 0x13, 0x98, 0xD1, 0x43, 0x03, 0x90, 0x10, 0x1C, 0x18, 0x40, 0x21, 0x40, 0x01, 0x43 + .byte 0x03, 0x98, 0x41, 0x18, 0xDC, 0x48, 0x08, 0x18, 0x28, 0x18, 0x41, 0x04, 0xC0, 0x0B, 0x08, 0x43 + .byte 0x81, 0x18, 0x14, 0x98, 0xCD, 0x43, 0x04, 0x90, 0x08, 0x1C, 0x10, 0x40, 0x1D, 0x40, 0x05, 0x43 + .byte 0x04, 0x98, 0x45, 0x19, 0xD5, 0x48, 0x28, 0x1A, 0x20, 0x18, 0x84, 0x05, 0x80, 0x0A, 0x20, 0x43 + .byte 0x15, 0x9C, 0x40, 0x18, 0x05, 0x94, 0x04, 0x1C, 0xC5, 0x43, 0x0C, 0x40, 0x15, 0x40, 0x25, 0x43 + .byte 0x05, 0x9C, 0x65, 0x19, 0xCE, 0x4C, 0x2C, 0x1B, 0x1B, 0x19, 0xDC, 0x01, 0x5B, 0x0E, 0x23, 0x43 + .byte 0x16, 0x9C, 0x1B, 0x18, 0x06, 0x94, 0x1C, 0x1C, 0xDD, 0x43, 0x04, 0x40, 0x0D, 0x40, 0x25, 0x43 + .byte 0x06, 0x9C, 0x65, 0x19, 0xC7, 0x4C, 0x2C, 0x19, 0x12, 0x19, 0x14, 0x03, 0x12, 0x0D, 0x22, 0x43 + .byte 0x17, 0x9C, 0xD2, 0x18, 0x07, 0x94, 0x14, 0x1C, 0xD5, 0x43, 0x1C, 0x40, 0x05, 0x40, 0x25, 0x43 + .byte 0x07, 0x9C, 0x65, 0x19, 0xC0, 0x4C, 0x2C, 0x1B, 0x09, 0x19, 0x4C, 0x04, 0xC9, 0x0B, 0x21, 0x43 + .byte 0x18, 0x9C, 0x89, 0x18, 0x08, 0x94, 0x0C, 0x1C, 0xCD, 0x43, 0x14, 0x40, 0x1D, 0x40, 0x25, 0x43 + .byte 0x08, 0x9C, 0x65, 0x19, 0xB9, 0x4C, 0x2C, 0x1B, 0x00, 0x19, 0x84, 0x05, 0x80, 0x0A, 0x20, 0x43 + .byte 0x19, 0x9C, 0x40, 0x18, 0x09, 0x94, 0x04, 0x1C, 0xC5, 0x43, 0x0C, 0x40, 0x15, 0x40, 0x25, 0x43 + .byte 0x09, 0x9C, 0x65, 0x19, 0xB2, 0x4C, 0x2C, 0x19, 0x1B, 0x19, 0xDC, 0x01, 0x5B, 0x0E, 0x23, 0x43 + .byte 0x1A, 0x9C, 0x1B, 0x18, 0x0A, 0x94, 0x1C, 0x1C, 0xDD, 0x43, 0x04, 0x40, 0x0D, 0x40, 0x25, 0x43 + .byte 0x0A, 0x9C, 0x65, 0x19, 0xAB, 0x4C, 0x2C, 0x1B, 0x12, 0x19, 0x14, 0x03, 0x12, 0x0D, 0x22, 0x43 + .byte 0x1B, 0x9C, 0xD2, 0x18, 0x0B, 0x94, 0x14, 0x1C, 0xD5, 0x43, 0x1C, 0x40, 0x05, 0x40, 0x25, 0x43 + .byte 0x0B, 0x9C, 0x65, 0x19, 0xA4, 0x4C, 0x2C, 0x1B, 0x09, 0x19, 0x4C, 0x04, 0xC9, 0x0B, 0x21, 0x43 + .byte 0x1C, 0x9C, 0x89, 0x18, 0x0C, 0x94, 0x0C, 0x1C, 0xCD, 0x43, 0x14, 0x40, 0x1D, 0x40, 0x25, 0x43 + .byte 0x0C, 0x9C, 0x65, 0x19, 0x9D, 0x4C, 0x2C, 0x1B, 0x00, 0x19, 0x84, 0x05, 0x80, 0x0A, 0x20, 0x43 + .byte 0x40, 0x18, 0x1D, 0x9C, 0xC5, 0x43, 0x0D, 0x94, 0x04, 0x1C, 0x0C, 0x40, 0x15, 0x40, 0x25, 0x43 + .byte 0x0D, 0x9C, 0x65, 0x19, 0x96, 0x4C, 0x2C, 0x19, 0x1B, 0x19, 0xDC, 0x01, 0x5B, 0x0E, 0x23, 0x43 + .byte 0x1C, 0x18, 0x1E, 0x9B, 0xE5, 0x43, 0x0E, 0x93, 0x23, 0x1C, 0x03, 0x40, 0x0D, 0x40, 0x1D, 0x43 + .byte 0x0E, 0x9B, 0x5D, 0x19, 0x8F, 0x4B, 0xEB, 0x1A, 0xD2, 0x18, 0x13, 0x03, 0x12, 0x0D, 0x1A, 0x43 + .byte 0x13, 0x19, 0xDA, 0x43, 0x0F, 0x92, 0x1F, 0x9A, 0x0F, 0x9D, 0x10, 0x92, 0x1A, 0x1C, 0x22, 0x40 + .byte 0x05, 0x40, 0x15, 0x43, 0x10, 0x9A, 0x55, 0x19, 0x87, 0x4A, 0xAA, 0x1A, 0x89, 0x18, 0x4A, 0x04 + .byte 0xC9, 0x0B, 0x11, 0x43, 0xCA, 0x18, 0x20, 0x99, 0x15, 0x1C, 0xD6, 0x43, 0x8C, 0x46, 0x31, 0x1C + .byte 0x1D, 0x40, 0x21, 0x40, 0x0D, 0x43, 0x61, 0x46, 0x4D, 0x19, 0x80, 0x49, 0x69, 0x18, 0x40, 0x18 + .byte 0x81, 0x05, 0x80, 0x0A, 0x08, 0x43, 0x81, 0x18, 0x0F, 0x9D, 0x08, 0x1C, 0x18, 0x40, 0x15, 0x40 + .byte 0x05, 0x43, 0x02, 0x98, 0x45, 0x19, 0x7A, 0x48, 0x28, 0x1A, 0x20, 0x18, 0x44, 0x01, 0xC0, 0x0E + .byte 0x20, 0x43, 0x40, 0x18, 0x04, 0x1C, 0x0D, 0x1C, 0x14, 0x40, 0x95, 0x43, 0x25, 0x43, 0x07, 0x9C + .byte 0x65, 0x19, 0x74, 0x4C, 0x2C, 0x1B, 0x1B, 0x19, 0x5C, 0x02, 0xDB, 0x0D, 0x23, 0x43, 0x1B, 0x18 + .byte 0x1C, 0x1C, 0xCD, 0x43, 0x0C, 0x40, 0x05, 0x40, 0x25, 0x43, 0x0C, 0x9C, 0x65, 0x19, 0x6E, 0x4C + .byte 0x2C, 0x19, 0x12, 0x19, 0x94, 0x03, 0x92, 0x0C, 0x22, 0x43, 0xD2, 0x18, 0x14, 0x1C, 0xC5, 0x43 + .byte 0x04, 0x40, 0x1D, 0x40, 0x25, 0x43, 0x01, 0x9C, 0x65, 0x19, 0x68, 0x4C, 0x2C, 0x1B, 0x09, 0x19 + .byte 0x0C, 0x05, 0x09, 0x0B, 0x21, 0x43, 0x89, 0x18, 0x0C, 0x1C, 0xDD, 0x43, 0x1C, 0x40, 0x15, 0x40 + .byte 0x25, 0x43, 0x06, 0x9C, 0x65, 0x19, 0x62, 0x4C, 0x2C, 0x1B, 0x00, 0x19, 0x44, 0x01, 0xC0, 0x0E + .byte 0x20, 0x43, 0x44, 0x18, 0x20, 0x1C, 0xD5, 0x43, 0x10, 0x40, 0x0D, 0x40, 0x05, 0x43, 0x0B, 0x98 + .byte 0x45, 0x19, 0x5C, 0x48, 0x28, 0x18, 0x18, 0x18, 0x43, 0x02, 0xC0, 0x0D, 0x18, 0x43, 0x03, 0x19 + .byte 0x18, 0x1C, 0xCD, 0x43, 0x08, 0x40, 0x25, 0x40, 0x05, 0x43, 0x60, 0x46, 0x45, 0x19, 0x56, 0x48 + .byte 0x28, 0x1A, 0x10, 0x18, 0x82, 0x03, 0x80, 0x0C, 0x10, 0x43, 0xC0, 0x18, 0x02, 0x1C, 0xE5, 0x43 + .byte 0x22, 0x40, 0x1D, 0x40, 0x15, 0x43, 0x05, 0x9A, 0x55, 0x19, 0x50, 0x4A, 0xAA, 0x1A, 0x89, 0x18 + .byte 0x0A, 0x05, 0x09, 0x0B, 0x11, 0x43, 0x0D, 0x18, 0x29, 0x1C, 0xDA, 0x43, 0x19, 0x40, 0x02, 0x40 + .byte 0x0A, 0x43, 0x0A, 0x99, 0x8A, 0x18, 0x4A, 0x49, 0x51, 0x18, 0x61, 0x18, 0x4A, 0x01, 0xC9, 0x0E + .byte 0x11, 0x43, 0x4A, 0x19, 0x11, 0x1C, 0xC4, 0x43, 0x01, 0x40, 0x2C, 0x40, 0x0C, 0x43, 0x10, 0x99 + .byte 0x0C, 0x19, 0x44, 0x49, 0x61, 0x1A, 0x59, 0x18, 0x4B, 0x02, 0xC9, 0x0D, 0x19, 0x43, 0x89, 0x18 + .byte 0x0B, 0x1C, 0xEC, 0x43, 0x2B, 0x40, 0x14, 0x40, 0x1C, 0x43, 0x04, 0x9B, 0x1C, 0x19, 0x3E, 0x4B + .byte 0xE3, 0x1A, 0xC0, 0x18, 0x83, 0x03, 0x80, 0x0C, 0x18, 0x43, 0x44, 0x18, 0x20, 0x1C, 0xD3, 0x43 + .byte 0x10, 0x40, 0x0B, 0x40, 0x03, 0x43, 0x09, 0x98, 0xC3, 0x18, 0x38, 0x48, 0x18, 0x18, 0x28, 0x18 + .byte 0x03, 0x05, 0x00, 0x0B, 0x18, 0x43, 0x03, 0x19, 0x18, 0x1C, 0xCD, 0x43, 0x08, 0x40, 0x25, 0x40 + .byte 0x05, 0x43, 0x0E, 0x98, 0x45, 0x19, 0x32, 0x48, 0x28, 0x1A, 0x10, 0x18, 0x42, 0x01, 0xC0, 0x0E + .byte 0x10, 0x43, 0xC0, 0x18, 0x02, 0x1C, 0xE5, 0x43, 0x22, 0x40, 0x1D, 0x40, 0x15, 0x43, 0x03, 0x9A + .byte 0x55, 0x19, 0x2C, 0x4A, 0xAA, 0x1A, 0x89, 0x18, 0x4A, 0x02, 0xC9, 0x0D, 0x11, 0x43, 0x0D, 0x18 + .byte 0x29, 0x1C, 0xDA, 0x43, 0x19, 0x40, 0x02, 0x40, 0x0A, 0x43, 0x08, 0x99, 0x8A, 0x18, 0x26, 0x49 + .byte 0x51, 0x18, 0x61, 0x18, 0x8A, 0x03, 0x89, 0x0C, 0x11, 0x43, 0x4A, 0x19, 0x11, 0x1C, 0xC4, 0x43 + .byte 0x01, 0x40, 0x2C, 0x40, 0x0C, 0x43, 0x0D, 0x99, 0x0C, 0x19, 0x20, 0x49, 0x40, 0xE0, 0xC0, 0x46 + .byte 0x88, 0x5B, 0x95, 0x28, 0xAA, 0x48, 0x38, 0x17, 0xDB, 0x70, 0x20, 0x24, 0x12, 0x31, 0x42, 0x3E + .byte 0x51, 0xF0, 0x83, 0x0A, 0x2A, 0xC6, 0x87, 0x47, 0xED, 0xB9, 0xCF, 0x57, 0xFF, 0x6A, 0xB9, 0x02 + .byte 0xD8, 0x98, 0x80, 0x69, 0x51, 0x08, 0xBB, 0x74, 0x4F, 0xA4, 0x00, 0x00, 0x42, 0x28, 0xA3, 0x76 + .byte 0x22, 0x11, 0x90, 0x6B, 0x6D, 0x8E, 0x67, 0x02, 0x72, 0xBC, 0x86, 0x59, 0x21, 0x08, 0xB4, 0x49 + .byte 0x9E, 0xDA, 0xE1, 0x09, 0xC0, 0x4C, 0xBF, 0x3F, 0x51, 0x5A, 0x5E, 0x26, 0x56, 0x38, 0x49, 0x16 + .byte 0xA3, 0xEF, 0xD0, 0x29, 0x53, 0x14, 0x44, 0x02, 0x7F, 0x19, 0x5E, 0x27, 0x38, 0x04, 0x2C, 0x18 + .byte 0xE6, 0xCD, 0xE1, 0x21, 0x2A, 0xF8, 0xC8, 0x3C, 0x79, 0xF2, 0x2A, 0x0B, 0xED, 0x14, 0x5A, 0x45 + .byte 0xFB, 0x16, 0x1C, 0x56, 0x08, 0x5C, 0x10, 0x03, 0xD9, 0x02, 0x6F, 0x67, 0x76, 0xB3, 0xD5, 0x72 + .byte 0x61, 0x1A, 0x59, 0x18, 0x0B, 0x05, 0x09, 0x0B, 0x19, 0x43, 0x89, 0x18, 0x0B, 0x1C, 0x53, 0x40 + .byte 0x2C, 0x1C, 0x5C, 0x40, 0x06, 0x9B, 0x1C, 0x19, 0xD5, 0x4B, 0xE3, 0x1A, 0xC0, 0x18, 0x03, 0x01 + .byte 0x00, 0x0F, 0x18, 0x43, 0x44, 0x18, 0x20, 0x1C, 0x48, 0x40, 0x13, 0x1C, 0x43, 0x40, 0x09, 0x98 + .byte 0xC3, 0x18, 0xD0, 0x48, 0x18, 0x1A, 0x28, 0x18, 0xC3, 0x02, 0x40, 0x0D, 0x18, 0x43, 0x03, 0x19 + .byte 0x18, 0x1C, 0x60, 0x40, 0x0D, 0x1C, 0x45, 0x40, 0x0C, 0x98, 0x45, 0x19, 0xCA, 0x48, 0x28, 0x18 + .byte 0x10, 0x18, 0x02, 0x04, 0x00, 0x0C, 0x10, 0x43, 0xC0, 0x18, 0x02, 0x1C, 0x5A, 0x40, 0x25, 0x1C + .byte 0x55, 0x40, 0x10, 0x9A, 0x55, 0x19, 0xC5, 0x4A, 0xAA, 0x1A, 0x89, 0x18, 0xCA, 0x05, 0x49, 0x0A + .byte 0x11, 0x43, 0x0D, 0x18, 0x29, 0x1C, 0x41, 0x40, 0x1A, 0x1C, 0x4A, 0x40, 0x02, 0x99, 0x8A, 0x18 + .byte 0xBF, 0x49, 0x51, 0x1A, 0x61, 0x18, 0x0A, 0x01, 0x09, 0x0F, 0x11, 0x43, 0x4A, 0x19, 0x11, 0x1C + .byte 0x69, 0x40, 0x04, 0x1C, 0x4C, 0x40, 0x05, 0x99, 0x0C, 0x19, 0xBA, 0x49, 0x61, 0x18, 0x59, 0x18 + .byte 0xCB, 0x02, 0x49, 0x0D, 0x19, 0x43, 0x89, 0x18, 0x0B, 0x1C, 0x53, 0x40, 0x2C, 0x1C, 0x5C, 0x40 + .byte 0x08, 0x9B, 0x1C, 0x19, 0xB4, 0x4B, 0xE3, 0x1A, 0xC0, 0x18, 0x03, 0x04, 0x00, 0x0C, 0x18, 0x43 + .byte 0x44, 0x18, 0x20, 0x1C, 0x48, 0x40, 0x13, 0x1C, 0x43, 0x40, 0x0B, 0x98, 0xC3, 0x18, 0xAF, 0x48 + .byte 0x18, 0x1A, 0x28, 0x18, 0xC3, 0x05, 0x40, 0x0A, 0x18, 0x43, 0x03, 0x19, 0x18, 0x1C, 0x60, 0x40 + .byte 0x0D, 0x1C, 0x45, 0x40, 0x0E, 0x98, 0x45, 0x19, 0xA9, 0x48, 0x28, 0x18, 0x10, 0x18, 0x02, 0x01 + .byte 0x00, 0x0F, 0x10, 0x43, 0xC0, 0x18, 0x02, 0x1C, 0x5A, 0x40, 0x25, 0x1C, 0x55, 0x40, 0x01, 0x9A + .byte 0x55, 0x19, 0xA4, 0x4A, 0xAA, 0x1A, 0x89, 0x18, 0xCA, 0x02, 0x49, 0x0D, 0x11, 0x43, 0x0D, 0x18 + .byte 0x29, 0x1C, 0x41, 0x40, 0x1A, 0x1C, 0x4A, 0x40, 0x04, 0x99, 0x8A, 0x18, 0x9E, 0x49, 0x51, 0x1A + .byte 0x61, 0x18, 0x0A, 0x04, 0x09, 0x0C, 0x11, 0x43, 0x4A, 0x19, 0x11, 0x1C, 0x69, 0x40, 0x04, 0x1C + .byte 0x4C, 0x40, 0x07, 0x99, 0x0C, 0x19, 0x99, 0x49, 0x61, 0x18, 0x59, 0x18, 0xCB, 0x05, 0x49, 0x0A + .byte 0x19, 0x43, 0x89, 0x18, 0x0B, 0x1C, 0x53, 0x40, 0x2C, 0x1C, 0x5C, 0x40, 0x0A, 0x9B, 0x1C, 0x19 + .byte 0x93, 0x4B, 0xE3, 0x1A, 0xC0, 0x18, 0x03, 0x01, 0x00, 0x0F, 0x18, 0x43, 0x44, 0x18, 0x20, 0x1C + .byte 0x48, 0x40, 0x13, 0x1C, 0x43, 0x40, 0x0D, 0x98, 0xC3, 0x18, 0x8E, 0x48, 0x18, 0x1A, 0x28, 0x18 + .byte 0xC3, 0x02, 0x40, 0x0D, 0x18, 0x43, 0x03, 0x19, 0x18, 0x1C, 0x60, 0x40, 0x0D, 0x1C, 0x45, 0x40 + .byte 0x60, 0x46, 0x45, 0x19, 0x88, 0x48, 0x28, 0x18, 0x10, 0x18, 0x02, 0x04, 0x00, 0x0C, 0x10, 0x43 + .byte 0xC0, 0x18, 0x02, 0x1C, 0x5A, 0x40, 0x25, 0x1C, 0x55, 0x40, 0x03, 0x9A, 0x55, 0x19, 0x83, 0x4A + .byte 0xAA, 0x1A, 0x89, 0x18, 0xCA, 0x05, 0x49, 0x0A, 0x11, 0x43, 0x0D, 0x18, 0xD9, 0x43, 0x29, 0x43 + .byte 0x02, 0x1C, 0x4A, 0x40, 0x01, 0x99, 0x8A, 0x18, 0x7D, 0x49, 0x51, 0x1A, 0x61, 0x18, 0x8A, 0x01 + .byte 0x89, 0x0E, 0x11, 0x43, 0x4A, 0x19, 0xC1, 0x43, 0x11, 0x43, 0x2C, 0x1C, 0x4C, 0x40, 0x08, 0x99 + .byte 0x0C, 0x19, 0x78, 0x49, 0x61, 0x18, 0x59, 0x18, 0x8B, 0x02, 0x89, 0x0D, 0x19, 0x43, 0x89, 0x18 + .byte 0xEB, 0x43, 0x0B, 0x43, 0x14, 0x1C, 0x5C, 0x40, 0x10, 0x9B, 0x1C, 0x19, 0x72, 0x4B, 0xE3, 0x1A + .byte 0xC0, 0x18, 0xC3, 0x03, 0x40, 0x0C, 0x18, 0x43, 0x44, 0x18, 0xD0, 0x43, 0x20, 0x43, 0x0B, 0x1C + .byte 0x43, 0x40, 0x06, 0x98, 0xC3, 0x18, 0x6D, 0x48, 0x18, 0x1A, 0x28, 0x18, 0x43, 0x05, 0xC0, 0x0A + .byte 0x18, 0x43, 0x03, 0x19, 0xC8, 0x43, 0x18, 0x43, 0x25, 0x1C, 0x45, 0x40, 0x0D, 0x98, 0x45, 0x19 + .byte 0x67, 0x48, 0x28, 0x18, 0x10, 0x18, 0x82, 0x01, 0x80, 0x0E, 0x10, 0x43, 0xC0, 0x18, 0xE2, 0x43 + .byte 0x02, 0x43, 0x1D, 0x1C, 0x55, 0x40, 0x04, 0x9A, 0x55, 0x19, 0x62, 0x4A, 0xAA, 0x1A, 0x89, 0x18 + .byte 0x8A, 0x02, 0x89, 0x0D, 0x11, 0x43, 0x0D, 0x18, 0xD9, 0x43, 0x29, 0x43, 0x02, 0x1C, 0x4A, 0x40 + .byte 0x0B, 0x99, 0x8A, 0x18, 0x5C, 0x49, 0x51, 0x1A, 0x61, 0x18, 0xCA, 0x03, 0x49, 0x0C, 0x11, 0x43 + .byte 0x4A, 0x19, 0xC1, 0x43, 0x11, 0x43, 0x2C, 0x1C, 0x4C, 0x40, 0x02, 0x99, 0x0C, 0x19, 0x57, 0x49 + .byte 0x61, 0x1A, 0x59, 0x18, 0x4B, 0x05, 0xC9, 0x0A, 0x19, 0x43, 0x89, 0x18, 0xEB, 0x43, 0x0B, 0x43 + .byte 0x14, 0x1C, 0x5C, 0x40, 0x09, 0x9B, 0x1C, 0x19, 0x51, 0x4B, 0xE3, 0x18, 0xC0, 0x18, 0x83, 0x01 + .byte 0x80, 0x0E, 0x18, 0x43, 0x43, 0x18, 0xD0, 0x43, 0x18, 0x43, 0x48, 0x40, 0x64, 0x46, 0x24, 0x18 + .byte 0x4C, 0x48, 0x20, 0x1A, 0x28, 0x18, 0x84, 0x02, 0x80, 0x0D, 0x20, 0x43, 0xC0, 0x18, 0xCC, 0x43 + .byte 0x04, 0x43, 0x1D, 0x1C, 0x65, 0x40, 0x07, 0x9C, 0x65, 0x19, 0x47, 0x4C, 0x2C, 0x1B, 0x12, 0x19 + .byte 0xD4, 0x03, 0x52, 0x0C, 0x22, 0x43, 0x14, 0x18, 0xDA, 0x43, 0x22, 0x43, 0x05, 0x1C, 0x55, 0x40 + .byte 0x0E, 0x9A, 0x55, 0x19, 0x41, 0x4A, 0xAA, 0x18, 0x89, 0x18, 0x4A, 0x05, 0xC9, 0x0A, 0x11, 0x43 + .byte 0x0A, 0x19, 0xC1, 0x43, 0x11, 0x43, 0x25, 0x1C, 0x4D, 0x40, 0x05, 0x99, 0x4D, 0x19, 0x3C, 0x49 + .byte 0x69, 0x1A, 0x59, 0x18, 0x8B, 0x01, 0x89, 0x0E, 0x19, 0x43, 0x89, 0x18, 0xE3, 0x43, 0x0B, 0x43 + .byte 0x15, 0x1C, 0x5D, 0x40, 0x0C, 0x9B, 0x5D, 0x19, 0x36, 0x4B, 0xEB, 0x1A, 0xC0, 0x18, 0x83, 0x02 + .byte 0x80, 0x0D, 0x18, 0x43, 0x45, 0x18, 0xD0, 0x43, 0x28, 0x43, 0x0B, 0x1C, 0x43, 0x40, 0x03, 0x98 + .byte 0xC3, 0x18, 0x31, 0x48, 0x18, 0x18, 0x20, 0x18, 0xC3, 0x03, 0x40, 0x0C, 0x18, 0x43, 0x43, 0x19 + .byte 0xC8, 0x43, 0x18, 0x43, 0x2C, 0x1C, 0x44, 0x40, 0x0A, 0x98, 0x04, 0x19, 0x2B, 0x48, 0x20, 0x1A + .byte 0x10, 0x18, 0x42, 0x05, 0xC0, 0x0A, 0x10, 0x43, 0x3A, 0x68, 0xC0, 0x18, 0x51, 0x18, 0x39, 0x60 + .byte 0x79, 0x68, 0x40, 0x22, 0x08, 0x18, 0x78, 0x60, 0xB8, 0x68, 0x00, 0x21, 0xC0, 0x18, 0xB8, 0x60 + .byte 0xF8, 0x68, 0x40, 0x19, 0xF8, 0x60, 0x11, 0xA8, 0x00, 0xF0, 0x7A, 0xF8, 0x21, 0xB0, 0xF0, 0xBD + .byte 0xBE, 0xC6, 0x05, 0x00, 0x7F, 0x09, 0x8E, 0x78, 0x22, 0x61, 0x9D, 0x6D, 0xF4, 0xC7, 0x1A, 0x02 + .byte 0xBC, 0x15, 0x41, 0x5B, 0xA9, 0xCF, 0xDE, 0x4B, 0xA0, 0xB4, 0x44, 0x09, 0x90, 0x43, 0x40, 0x41 + .byte 0xC6, 0x7E, 0x9B, 0x28, 0x06, 0xD8, 0x5E, 0x15, 0x7B, 0xCF, 0x10, 0x2B, 0x05, 0x1D, 0x88, 0x04 + .byte 0xC7, 0x2F, 0x2B, 0x26, 0x1B, 0x66, 0x24, 0x19, 0xF8, 0x7C, 0xA2, 0x1F, 0x9B, 0xA9, 0x53, 0x3B + .byte 0xBC, 0xDD, 0xD6, 0x0B, 0x97, 0xFF, 0x2A, 0x43, 0x59, 0xDC, 0x6B, 0x54, 0xC7, 0x5F, 0x6C, 0x03 + .byte 0xC3, 0x59, 0x5B, 0x65, 0x6E, 0x33, 0xF3, 0x70, 0x83, 0x0B, 0x10, 0x00, 0x2F, 0xA2, 0x7B, 0x7A + .byte 0x4F, 0x7E, 0xA8, 0x6F, 0x20, 0x19, 0xD3, 0x01, 0xEC, 0xBC, 0xFE, 0x5C, 0xA1, 0x11, 0x08, 0x4E + .byte 0x7E, 0x81, 0xAC, 0x08, 0xCB, 0x0D, 0xC5, 0x42, 0xBB, 0xD2, 0xD7, 0x2A, 0x6F, 0x2C, 0x79, 0x14 + + arm_func_start ov02_02334090 +ov02_02334090: @ 0x02334090 + strhs fp, [r0], #-0x430 + stmdble pc, {sb, fp, sp} + stmdbne r3, {r0, r2, r3, fp, sp, lr} + stmdavs sp, {r0, r2, r8, sl, ip, lr} + beq _02E7B538 + stmdavs sp, {r0, r2, r3, r4, r6, ip, sp, lr} + addsvc r0, sp + stcne p8, c6, [sb, #-0x34] + sbcsvc r0, sp, sp, lsr #28 + arm_func_end ov02_02334090 +_023340B4: + .byte 0x94, 0x42, 0xEF, 0xD3, 0x30, 0xBC, 0x70, 0x47 + + arm_func_start ov02_023340BC +ov02_023340BC: @ 0x023340BC + arm_func_end ov02_023340BC +_023340BC: + .byte 0xF0, 0xB4, 0x00, 0x27 + .byte 0x00, 0x2A, 0x0E, 0xD9, 0xCE, 0x19, 0xF3, 0x78, 0x1D, 0x06, 0xB3, 0x78, 0x76, 0x78, 0x1C, 0x04 + .byte 0xCB, 0x5D, 0x36, 0x02, 0x3F, 0x1D, 0x33, 0x43, 0x23, 0x43, 0x2B, 0x43, 0x08, 0xC0, 0x97, 0x42 + .byte 0xF0, 0xD3, 0xF0, 0xBC, 0x70, 0x47, 0x00, 0x00 + + arm_func_start ov02_023340E8 +ov02_023340E8: @ 0x023340E8 + strhs fp, [r0], #-0x418 + stmdble r4, {sb, fp, sp} + strpl r5, [r3, #-0xd0b] + addsmi r1, r4, #100, #24 + arm_func_end ov02_023340E8 +_023340F8: + .byte 0xFA, 0xD3, 0x18, 0xBC, 0x70, 0x47, 0x00, 0x00 + + arm_func_start ov02_02334100 +ov02_02334100: @ 0x02334100 + bhs _0233CD08 + streq sp, [sb], -r6, lsl #18 + mrrcne p6, #0, r1, fp, c9 + mcrrne p0, #0, r7, r0, c1 + arm_func_end ov02_02334100 +_02334110: + .byte 0x93, 0x42, 0xFA, 0xD3, 0x70, 0x47, 0x00, 0x00 + + arm_func_start ov02_02334118 +ov02_02334118: @ 0x02334118 + addslt fp, r6, r0, ror r5 + arm_func_end ov02_02334118 +_0233411C: + .byte 0x05, 0x1C, 0x0C, 0x1C + .byte 0x16, 0x1C, 0x00, 0xA8, 0xFF, 0xF7, 0x16, 0xFB, 0x00, 0xA8, 0x21, 0x1C, 0x32, 0x1C, 0xFF, 0xF7 + .byte 0x25, 0xFB, 0x28, 0x1C, 0x00, 0xA9, 0xFF, 0xF7, 0x5D, 0xFB, 0x16, 0xB0, 0x70, 0xBD, 0x00, 0x00 + + arm_func_start ov02_02334140 +ov02_02334140: @ 0x02334140 + arm_func_end ov02_02334140 +_02334140: + .byte 0x08, 0xB5, 0x46, 0xF5, 0x80, 0xEE, 0x82, 0x0E, 0x89, 0x01, 0x11, 0x43, 0x02, 0x4A, 0x80, 0x01 + .byte 0x00, 0x23, 0x5B, 0xF5, 0x74, 0xEE, 0x08, 0xBD, 0xEA, 0x82, 0x00, 0x00 + + arm_func_start ov02_0233415C +ov02_0233415C: @ 0x0233415C + arm_func_end ov02_0233415C +_0233415C: + .byte 0x38, 0xB5, 0x04, 0x1C + .byte 0x4C, 0x43, 0x06, 0x49, 0x20, 0x1C, 0x49, 0x68, 0x88, 0x47, 0x05, 0x1C, 0x03, 0xD0, 0x00, 0x21 + .byte 0x22, 0x1C, 0x53, 0xF5, 0xCA, 0xE8, 0x28, 0x1C, 0x38, 0xBD, 0xC0, 0x46, 0xD0, 0x94, 0x35, 0x02 + + arm_func_start ov02_02334180 +ov02_02334180: @ 0x02334180 + stmdbmi r2, {r3, r8, sl, ip, sp, pc} + strmi r6, [r8, sb, asr #17] + strbmi fp, [r0], r8, lsl #26 + eorseq sb, r5, #208, #8 + arm_func_end ov02_02334180 + + arm_func_start ov02_02334190 +ov02_02334190: @ 0x02334190 + arm_func_end ov02_02334190 +_02334190: + .byte 0x30, 0xB4, 0x09, 0x06, 0x0B, 0x0E, 0xF0, 0x21, 0x19, 0x40, 0x0D, 0x11, 0x0F, 0x21, 0x02, 0x1C + .byte 0x00, 0x24, 0x19, 0x40, 0x09, 0x2D, 0x01, 0xDC, 0x30, 0x35, 0x00, 0xE0, 0x37, 0x35, 0x64, 0x1C + .byte 0x15, 0x70, 0x52, 0x1C, 0x0D, 0x1C, 0x02, 0x2C, 0xF4, 0xDB, 0x00, 0x21, 0x11, 0x70, 0x10, 0x1A + .byte 0x30, 0xBC, 0x70, 0x47 + + arm_func_start ov02_023341C4 +ov02_023341C4: @ 0x023341C4 + strdls fp, ip, [r0], -r8 + arm_func_end ov02_023341C4 +_023341C8: + .byte 0x0E, 0x1C, 0x04, 0x1C, 0x00, 0x25, 0x3A, 0x27 + .byte 0x00, 0x21, 0x71, 0x56, 0x20, 0x1C, 0x76, 0x1C, 0xFF, 0xF7, 0xDA, 0xFF, 0x20, 0x18, 0x04, 0x1C + .byte 0x05, 0x2D, 0x01, 0xDA, 0x44, 0x1C, 0x07, 0x70, 0x6D, 0x1C, 0x06, 0x2D, 0xF0, 0xDB, 0x00, 0x20 + .byte 0x20, 0x70, 0x00, 0x98, 0x20, 0x1A, 0xF8, 0xBD + + thumb_func_start ov02_023341F8 +ov02_023341F8: @ 0x023341F8 + push {r4, r5, r6, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r0, _023342C8 @ =0x023594D0 + ldr r0, [r0, #0x38] + cmp r0, #1 + blt FUN_02334212 + cmp r0, #5 + bgt FUN_02334212 + movs r0, #9 + add sp, #8 + mvns r0, r0 + pop {r4, r5, r6, pc} + ldr r5, _023342CC @ =0x02353008 + ldr r0, _023342C8 @ =0x023594D0 + movs r6, #7 + str r1, [r5, #0x10] + str r6, [r0, #0x38] + str r2, [r0, #0x7c] + ldr r2, [sp, #0x18] + str r3, [r0, #4] + str r2, [r0, #0xc] + ldr r0, [sp, #0x1c] + str r0, [r5, #8] + thumb_func_end ov02_023341F8 +_02334228: + .byte 0x08, 0x1C, 0xFD, 0xF7, 0x9B, 0xF8, 0x01, 0x22 + .byte 0x25, 0x49, 0x00, 0x28, 0x4A, 0x67, 0x02, 0xDA, 0x88, 0x67, 0x02, 0xB0, 0x70, 0xBD, 0x28, 0x1C + .byte 0x80, 0x68, 0x49, 0x68, 0x88, 0x47, 0x20, 0x49, 0x00, 0x28, 0x08, 0x63, 0x04, 0xD1, 0x30, 0x1C + .byte 0x08, 0x38, 0x88, 0x67, 0x02, 0xB0, 0x70, 0xBD, 0x45, 0xF5, 0x7A, 0xE9, 0x01, 0x28, 0x05, 0xD0 + .byte 0x30, 0x1C, 0x19, 0x49, 0x10, 0x38, 0x88, 0x67, 0x02, 0xB0, 0x70, 0xBD, 0x28, 0x1C, 0x83, 0x68 + .byte 0x17, 0x48, 0x00, 0x93, 0x01, 0x94, 0x14, 0x4C, 0x16, 0x49, 0x25, 0x6B, 0x07, 0x24, 0xA3, 0x43 + .byte 0x00, 0x22, 0xEB, 0x18, 0x45, 0xF5, 0x6C, 0xE9, 0x0F, 0x48, 0x01, 0x21, 0x81, 0x63, 0xFF, 0xF7 + .byte 0x57, 0xFF, 0x11, 0x49, 0x11, 0x4D, 0x41, 0x18, 0x0C, 0x48, 0x34, 0x1C, 0xC1, 0x60, 0x00, 0x20 + .byte 0x09, 0x49, 0x02, 0x1C, 0x08, 0x61, 0x01, 0x1C, 0x03, 0x1C, 0x0F, 0xC5, 0x0F, 0xC5, 0x64, 0x1E + .byte 0xFB, 0xD1, 0x03, 0xC5, 0x00, 0xF0, 0x84, 0xF8, 0x05, 0x48, 0x45, 0xF5, 0x42, 0xEB, 0x02, 0x49 + .byte 0x01, 0x20, 0x48, 0x66, 0x02, 0xB0, 0x70, 0xBD, 0xD0, 0x94, 0x35, 0x02, 0x08, 0x30, 0x35, 0x02 + .byte 0x7C, 0x95, 0x35, 0x02, 0xA5, 0x27, 0x33, 0x02, 0x60, 0xEA, 0x00, 0x00, 0x3C, 0x96, 0x35, 0x02 + + thumb_func_start ov02_023342E0 +ov02_023342E0: @ 0x023342E0 + push {r4, r5, r6, lr} + ldr r4, _0233436C @ =0x023594D0 + ldr r0, [r4, #0x64] + cmp r0, #0 + beq FUN_02334350 + ldr r6, [r4, #0x38] + thumb_func_end ov02_023342E0 +_023342EC: + .byte 0x01, 0x20, 0x20, 0x61 + .byte 0x64, 0x25, 0x02, 0xE0, 0x28, 0x1C, 0x45, 0xF5, 0x0E, 0xEC, 0xA0, 0x6B, 0x01, 0x28, 0x01, 0xDB + .byte 0x05, 0x28, 0xF7, 0xDD, 0x7D, 0x20, 0x80, 0x00, 0x45, 0xF5, 0x04, 0xEC, 0x18, 0x48, 0x45, 0xF5 + .byte 0x90, 0xEA, 0x00, 0x28, 0x0B, 0xD1, 0x16, 0x4C, 0x20, 0x1C, 0x45, 0xF5, 0x12, 0xEB, 0x20, 0x1C + .byte 0x45, 0xF5, 0x6E, 0xEA, 0x20, 0x1C, 0x45, 0xF5, 0x84, 0xEA, 0x00, 0x28, 0xF4, 0xD0, 0x0F, 0x49 + .byte 0x08, 0x6B, 0x00, 0x28, 0x04, 0xD0, 0xC9, 0x68, 0x88, 0x47, 0x0C, 0x48, 0x00, 0x21, 0x01, 0x63 + .byte 0x0A, 0x48, 0x00, 0x21, 0x41, 0x66, 0x80, 0x6B, 0x86, 0x42, 0x01, 0xD0, 0x00, 0xF0, 0x38, 0xF8 + .byte 0x06, 0x48, 0x40, 0x6F, 0x00, 0x28, 0x05, 0xDD, 0xFD, 0xF7, 0x56, 0xF8, 0x03, 0x49, 0x00, 0x22 + .byte 0x4A, 0x67, 0x70, 0xBD, 0x09, 0x20, 0xC0, 0x43, 0x70, 0xBD, 0xC0, 0x46, 0xD0, 0x94, 0x35, 0x02 + .byte 0x7C, 0x95, 0x35, 0x02 + + arm_func_start ov02_02334374 +ov02_02334374: @ 0x02334374 + arm_func_end ov02_02334374 +_02334374: + .byte 0x10, 0xB5, 0x04, 0x1C, 0x0A, 0x48, 0x80, 0x6B, 0x20, 0x60, 0x0A, 0x48 + .byte 0xC1, 0x68, 0x00, 0x20, 0xC0, 0x43, 0x81, 0x42, 0x00, 0xD1, 0x04, 0xE0, 0xFF, 0xF7, 0xD8, 0xFE + .byte 0x05, 0x49, 0xC9, 0x68, 0x08, 0x1A, 0x60, 0x60, 0x02, 0x48, 0x80, 0x6F, 0xA0, 0x60, 0x01, 0x20 + .byte 0x10, 0xBD, 0xC0, 0x46, 0xD0, 0x94, 0x35, 0x02, 0x08, 0x30, 0x35, 0x02 + + thumb_func_start ov02_023343AC +ov02_023343AC: @ 0x023343AC + push {r3, lr} + ldr r1, _023343BC @ =0x0235963C + thumb_func_end ov02_023343AC +_023343B0: + .byte 0xE8, 0x22, 0x52, 0xF5, 0x74, 0xEF, 0x01, 0x20, 0x08, 0xBD, 0xC0, 0x46, 0x3C, 0x96, 0x35, 0x02 + + arm_func_start ov02_023343C0 +ov02_023343C0: @ 0x023343C0 + addlt fp, r3, r0, lsl #10 + arm_func_end ov02_023343C0 +_023343C4: + .byte 0x00, 0xA8, 0xFF, 0xF7, 0xD5, 0xFF, 0x03, 0x49, 0x00, 0xA8, 0xC9, 0x6F + .byte 0x88, 0x47, 0x03, 0xB0, 0x00, 0xBD, 0xC0, 0x46, 0xD0, 0x94, 0x35, 0x02 + + arm_func_start ov02_023343DC +ov02_023343DC: @ 0x023343DC + push {r4, r5, r6, lr} + mov r4, r0 + mov r0, #0xc + mov r1, #4 + bl ov02_0234E7B4 + ldr r2, _0233449C @ =0x0235AA04 + mov r1, #0x47 + str r0, [r2] + strb r4, [r0, #8] + mov r0, #0 + bl ov02_0234D6AC + ldr lr, _0233449C @ =0x0235AA04 + ldr r1, _023344A0 @ =0x0235248C + ldr r2, [lr] + ldrb r4, [r1, r4] + str r0, [r2, #4] + ldr r0, [lr] + ldr ip, _023344A4 @ =0xFE00FF00 + ldr r5, [r0, #4] + ldr r1, _023344A8 @ =ov02_023344E8 + ldrh r3, [r5, #4] + mov r0, #1 + mov r2, #0 + bic r3, r3, #0xc00 + orr r3, r3, #0x400 + strh r3, [r5, #4] + ldr r5, [lr] + mov r3, #0x78 + ldr r6, [r5, #4] + ldr r5, [r6] + bic r5, r5, #0xc00 + str r5, [r6] + ldrh r5, [r6, #4] + bic r5, r5, #0xf000 + orr r4, r5, r4, lsl #12 + strh r4, [r6, #4] + ldr r4, [lr] + ldr r4, [r4, #4] + ldr lr, [r4] + and ip, lr, ip + orr ip, ip, #0x8b + orr ip, ip, #0xe60000 + str ip, [r4] + bl ov02_0234FA98 + ldr r1, _0233449C @ =0x0235AA04 + ldr r1, [r1] + str r0, [r1] + pop {r4, r5, r6, pc} + .align 2, 0 +_0233449C: .4byte 0x0235AA04 +_023344A0: .4byte 0x0235248C +_023344A4: .4byte 0xFE00FF00 +_023344A8: .4byte ov02_023344E8 + arm_func_end ov02_023343DC + + arm_func_start ov02_023344AC +ov02_023344AC: @ 0x023344AC + push {r3, lr} + ldr r1, _023344E0 @ =0x0235AA04 + mov r0, #1 + ldr r1, [r1] + ldr r1, [r1] + bl ov02_0234FB6C + ldr r0, _023344E0 @ =0x0235AA04 + ldr r0, [r0] + ldr r0, [r0, #4] + bl ov02_0234F2C0 + ldr r0, _023344E4 @ =0x0235AA04 + bl ov02_0234E7D8 + pop {r3, pc} + .align 2, 0 +_023344E0: .4byte 0x0235AA04 +_023344E4: .4byte 0x0235AA04 + arm_func_end ov02_023344AC + + arm_func_start ov02_023344E8 +ov02_023344E8: @ 0x023344E8 + push {r3, lr} + ldr r0, _023345A8 @ =0x0235AA04 + mov r1, #0x28 + ldr r0, [r0] + ldrb r0, [r0, #9] + add r0, r0, #1 + bl FUN_02075C38 + ldr r2, _023345A8 @ =0x0235AA04 + mov r1, #5 + ldr r3, [r2] + strb r0, [r3, #9] + ldr r0, [r2] + ldrb r0, [r0, #9] + bl FUN_02075BFC + ldr r2, _023345A8 @ =0x0235AA04 + add r1, r0, #0x47 + ldr r2, [r2] + mov r0, #0 + ldr r2, [r2, #4] + bl ov02_0234D618 + ldr r1, _023345A8 @ =0x0235AA04 + ldr ip, _023345AC @ =0x0235248C + ldr r2, [r1] + ldr r0, _023345B0 @ =0xFE00FF00 + ldr r3, [r2, #4] + ldrh r2, [r3, #4] + bic r2, r2, #0xc00 + orr r2, r2, #0x400 + strh r2, [r3, #4] + ldr r2, [r1] + ldrb lr, [r2, #8] + ldr r3, [r2, #4] + ldr r2, [r3] + ldrb ip, [ip, lr] + bic r2, r2, #0xc00 + str r2, [r3] + ldrh r2, [r3, #4] + bic r2, r2, #0xf000 + orr r2, r2, ip, lsl #12 + strh r2, [r3, #4] + ldr r1, [r1] + ldr r2, [r1, #4] + ldr r1, [r2] + and r0, r1, r0 + orr r0, r0, #0x8b + orr r0, r0, #0xe60000 + str r0, [r2] + pop {r3, pc} + .align 2, 0 +_023345A8: .4byte 0x0235AA04 +_023345AC: .4byte 0x0235248C +_023345B0: .4byte 0xFE00FF00 + arm_func_end ov02_023344E8 + + arm_func_start ov02_023345B4 +ov02_023345B4: @ 0x023345B4 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + ldr r2, _0233469C @ =0x023524BC + mov r5, r0 + mov r0, #0x1c + mov r1, #4 + ldrb r8, [r2, r5] + bl ov02_0234E7B4 + ldr r4, _023346A0 @ =0x0235AA08 + mvn r7, #1 + str r0, [r4] + strb r7, [r0, #0x16] + ldr r0, [r4] + cmp r8, #0 + strb r5, [r0, #0x17] + mov sb, #0 + ble _02334640 + ldr r0, _023346A4 @ =0x023524A0 + mov r6, sb + add sl, r0, r5, lsl #1 + mov r5, #1 + mov fp, r5 +_02334608: + ldrb r1, [sl], #1 + mov r0, r6 + mov r2, r5 + bl ov02_0234D6D8 + ldr r1, [r4] + mov r2, fp + str r0, [r1, sb, lsl #2] + ldr r0, [r4] + add r1, r7, #1 + ldr r0, [r0, sb, lsl #2] + bl ov02_0234D530 + add sb, sb, #1 + cmp sb, r8 + blt _02334608 +_02334640: + mov r1, #1 + mov r2, r1 + mov r0, #0 + bl ov02_0234D6D8 + ldr r3, _023346A0 @ =0x0235AA08 + mvn r1, #0 + ldr r4, [r3] + mov r2, #1 + str r0, [r4, #8] + ldr r0, [r3] + ldr r0, [r0, #8] + bl ov02_0234D530 + mov r0, #0xc0 + bl ov02_02334780 + mov r0, #0 + ldr r1, _023346A8 @ =ov02_02334814 + mov r2, r0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _023346A0 @ =0x0235AA08 + ldr r1, [r1] + str r0, [r1, #0xc] + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0233469C: .4byte 0x023524BC +_023346A0: .4byte 0x0235AA08 +_023346A4: .4byte 0x023524A0 +_023346A8: .4byte ov02_02334814 + arm_func_end ov02_023345B4 + + arm_func_start ov02_023346AC +ov02_023346AC: @ 0x023346AC + ldr r0, _023346D0 @ =0x0235AA08 + mov r3, #1 + ldr r2, [r0] + ldr ip, _023346D4 @ =ov02_0234FB38 + strb r3, [r2, #0x19] + ldr r0, [r0] + ldr r1, _023346D8 @ =ov02_02334A5C + ldr r0, [r0, #0xc] + bx ip + .align 2, 0 +_023346D0: .4byte 0x0235AA08 +_023346D4: .4byte ov02_0234FB38 +_023346D8: .4byte ov02_02334A5C + arm_func_end ov02_023346AC + + arm_func_start ov02_023346DC +ov02_023346DC: @ 0x023346DC + ldr r0, _023346EC @ =0x0235AA08 + ldr r0, [r0] + ldrsb r0, [r0, #0x16] + bx lr + .align 2, 0 +_023346EC: .4byte 0x0235AA08 + arm_func_end ov02_023346DC + + arm_func_start ov02_023346F0 +ov02_023346F0: @ 0x023346F0 + ldr r2, _0233470C @ =0x0235AA08 + mvn r1, #0 + ldr r3, [r2] + ldrsb r2, [r3, #0x16] + cmp r2, r1 + strbeq r0, [r3, #0x16] + bx lr + .align 2, 0 +_0233470C: .4byte 0x0235AA08 + arm_func_end ov02_023346F0 + + arm_func_start ov02_02334710 +ov02_02334710: @ 0x02334710 + ldr r1, _02334720 @ =0x0235AA08 + ldr r1, [r1] + strb r0, [r1, #0x16] + bx lr + .align 2, 0 +_02334720: .4byte 0x0235AA08 + arm_func_end ov02_02334710 + + arm_func_start ov02_02334724 +ov02_02334724: @ 0x02334724 + ldr r0, _0233474C @ =0x0235AA08 + ldr r0, [r0] + cmp r0, #0 + moveq r0, #1 + bxeq lr + ldrb r0, [r0, #0x19] + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + bx lr + .align 2, 0 +_0233474C: .4byte 0x0235AA08 + arm_func_end ov02_02334724 + + arm_func_start ov02_02334750 +ov02_02334750: @ 0x02334750 + ldr r0, _02334764 @ =0x0235AA08 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x18] + bx lr + .align 2, 0 +_02334764: .4byte 0x0235AA08 + arm_func_end ov02_02334750 + + arm_func_start ov02_02334768 +ov02_02334768: @ 0x02334768 + ldr r0, _0233477C @ =0x0235AA08 + mov r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x18] + bx lr + .align 2, 0 +_0233477C: .4byte 0x0235AA08 + arm_func_end ov02_02334768 + + arm_func_start ov02_02334780 +ov02_02334780: @ 0x02334780 + push {r4, r5, r6, r7, r8, sb, sl, lr} + ldr r1, _02334804 @ =0x0235AA08 + mov r8, r0 + ldr r0, [r1] + ldr r1, _02334808 @ =0x023524BC + ldrb r2, [r0, #0x17] + ldr r0, [r0, #8] + mov r3, r8 + ldrb r6, [r1, r2] + mvn r1, #0 + mov r2, #0 + bl ov02_0234D440 + mov r7, #0 + cmp r6, #0 + pople {r4, r5, r6, r7, r8, sb, sl, pc} + ldr r4, _0233480C @ =0x023524AE + ldr sl, _02334810 @ =0x02352498 + ldr sb, _02334804 @ =0x0235AA08 + mvn r5, #0 +_023347CC: + ldr r0, [sb] + mov r1, r5 + ldrb r2, [r0, #0x17] + ldr r0, [r0, r7, lsl #2] + add r3, r8, #4 + add r2, r4, r2, lsl #1 + ldrb r2, [r7, r2] + lsl r2, r2, #2 + ldrh r2, [sl, r2] + bl ov02_0234D440 + add r7, r7, #1 + cmp r7, r6 + blt _023347CC + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_02334804: .4byte 0x0235AA08 +_02334808: .4byte 0x023524BC +_0233480C: .4byte 0x023524AE +_02334810: .4byte 0x02352498 + arm_func_end ov02_02334780 + + arm_func_start ov02_02334814 +ov02_02334814: @ 0x02334814 + push {r4, lr} + sub sp, sp, #8 + ldr r1, _02334878 @ =0x0235AA08 + mov r4, r0 + ldr r0, [r1] + add r2, sp, #4 + ldr r0, [r0, #8] + add r3, sp, #0 + mov r1, #0 + bl ov02_0234D590 + ldr r0, [sp] + sub r0, r0, #4 + str r0, [sp] + bl ov02_02334780 + ldr r0, [sp] + cmp r0, #0xa8 + addgt sp, sp, #8 + popgt {r4, pc} + mov r0, #0xa8 + bl ov02_02334780 + ldr r1, _0233487C @ =ov02_02334880 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_02334878: .4byte 0x0235AA08 +_0233487C: .4byte ov02_02334880 + arm_func_end ov02_02334814 + + arm_func_start ov02_02334880 +ov02_02334880: @ 0x02334880 + push {r3, lr} + ldr r1, _023348C8 @ =0x0235AA08 + mvn r3, #0 + ldr r2, [r1] + strb r3, [r2, #0x16] + ldr r3, [r1] + ldrh r2, [r3, #0x14] + add r2, r2, #1 + strh r2, [r3, #0x14] + ldr r3, [r1] + ldrh r1, [r3, #0x14] + cmp r1, #4 + poplo {r3, pc} + ldr r1, _023348CC @ =ov02_023348D0 + mov r2, #0 + strh r2, [r3, #0x14] + bl ov02_0234FB38 + pop {r3, pc} + .align 2, 0 +_023348C8: .4byte 0x0235AA08 +_023348CC: .4byte ov02_023348D0 + arm_func_end ov02_02334880 + + arm_func_start ov02_023348D0 +ov02_023348D0: @ 0x023348D0 + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #8 + ldr r8, _02334A3C @ =0x0235AA08 + ldr r1, _02334A40 @ =0x023524BC + ldr r3, [r8] + ldrb r2, [r3, #0x17] + ldrb r0, [r3, #0x18] + ldrb r6, [r1, r2] + cmp r0, #0 + bne _02334A24 + ldrsb r1, [r3, #0x16] + mvn r0, #0 + cmp r1, r0 + addne sp, sp, #8 + popne {r4, r5, r6, r7, r8, sb, sl, pc} + cmp r6, #0 + mov r7, #0 + ble _02334A24 + ldr r5, _02334A44 @ =0x02352498 + ldr r4, _02334A48 @ =0x023524AE + ldr sl, _02334A4C @ =0x02352494 + add sb, sp, #0 +_02334928: + ldr r0, [r8] + mov r1, sl + ldrb r0, [r0, #0x17] + mov r2, sb + add r0, r4, r0, lsl #1 + ldrb r0, [r7, r0] + add r0, r5, r0, lsl #2 + bl ov02_0234E39C + mov r0, sb + bl ov02_0234ED04 + cmp r0, #0 + beq _02334A18 + ldr r0, _02334A3C @ =0x0235AA08 + ldr r3, [r0] + ldr r0, [r3, #0x10] + cmp r0, #0 + bne _02334A24 + ldrb r2, [r3, #0x17] + ldr r1, _02334A50 @ =0x023524A0 + ldr r0, [r3, r7, lsl #2] + add r1, r1, r2, lsl #1 + ldrb r4, [r7, r1] + mov r1, #0 + bl ov02_0234D308 + mov r2, r0 + add r1, r4, #1 + mov r0, #0 + bl ov02_0234D618 + ldr r0, _02334A3C @ =0x0235AA08 + ldr r1, _02334A48 @ =0x023524AE + ldr r0, [r0] + ldr r2, _02334A44 @ =0x02352498 + ldrb r4, [r0, #0x17] + ldr r3, _02334A54 @ =0x0235249A + ldr r0, [r0, r7, lsl #2] + add r1, r1, r4, lsl #1 + ldrb r4, [r7, r1] + mvn r1, #0 + lsl r4, r4, #2 + ldrh r2, [r2, r4] + ldrh r3, [r3, r4] + bl ov02_0234D440 + ldr r0, _02334A3C @ =0x0235AA08 + mvn r1, #0 + ldr r0, [r0] + mov r2, #1 + ldr r0, [r0, r7, lsl #2] + bl ov02_0234D530 + mov r0, #0 + ldr r1, _02334A58 @ =ov02_02334B38 + mov r2, r0 + mov r3, #0x6e + bl ov02_0234FA98 + ldr r1, _02334A3C @ =0x0235AA08 + add sp, sp, #8 + ldr r2, [r1] + str r0, [r2, #0x10] + ldr r0, [r1] + strb r7, [r0, #0x16] + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_02334A18: + add r7, r7, #1 + cmp r7, r6 + blt _02334928 +_02334A24: + ldr r0, _02334A3C @ =0x0235AA08 + mvn r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x16] + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_02334A3C: .4byte 0x0235AA08 +_02334A40: .4byte 0x023524BC +_02334A44: .4byte 0x02352498 +_02334A48: .4byte 0x023524AE +_02334A4C: .4byte 0x02352494 +_02334A50: .4byte 0x023524A0 +_02334A54: .4byte 0x0235249A +_02334A58: .4byte ov02_02334B38 + arm_func_end ov02_023348D0 + + arm_func_start ov02_02334A5C +ov02_02334A5C: @ 0x02334A5C + push {r4, lr} + sub sp, sp, #8 + ldr r1, _02334AB8 @ =0x0235AA08 + mov r4, r0 + ldr r0, [r1] + add r2, sp, #4 + ldr r0, [r0, #8] + add r3, sp, #0 + mov r1, #0 + bl ov02_0234D590 + ldr r0, [sp] + add r0, r0, #4 + str r0, [sp] + bl ov02_02334780 + ldr r0, [sp] + cmp r0, #0xc0 + addlt sp, sp, #8 + poplt {r4, pc} + ldr r1, _02334ABC @ =ov02_02334AC0 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_02334AB8: .4byte 0x0235AA08 +_02334ABC: .4byte ov02_02334AC0 + arm_func_end ov02_02334A5C + + arm_func_start ov02_02334AC0 +ov02_02334AC0: @ 0x02334AC0 + push {r3, r4, r5, lr} + mov r1, r0 + mov r0, #0 + bl ov02_0234FB40 + ldr r0, _02334B30 @ =0x0235AA08 + ldr r0, [r0] + ldr r1, [r0, #0x10] + cmp r1, #0 + beq _02334AEC + mov r0, #0 + bl ov02_0234FB40 +_02334AEC: + ldr r4, _02334B30 @ =0x0235AA08 + mov r5, #0 +_02334AF4: + ldr r0, [r4] + ldr r0, [r0, r5, lsl #2] + cmp r0, #0 + beq _02334B08 + bl ov02_0234D288 +_02334B08: + add r5, r5, #1 + cmp r5, #2 + blt _02334AF4 + ldr r0, _02334B30 @ =0x0235AA08 + ldr r0, [r0] + ldr r0, [r0, #8] + bl ov02_0234D288 + ldr r0, _02334B34 @ =0x0235AA08 + bl ov02_0234E7D8 + pop {r3, r4, r5, pc} + .align 2, 0 +_02334B30: .4byte 0x0235AA08 +_02334B34: .4byte 0x0235AA08 + arm_func_end ov02_02334AC0 + + arm_func_start ov02_02334B38 +ov02_02334B38: @ 0x02334B38 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + ldr r4, _02334C1C @ =0x0235AA08 + str r0, [sp] + ldr r1, [r4] + ldrh r0, [r1, #0x14] + add r0, r0, #1 + strh r0, [r1, #0x14] + ldr r1, [r4] + ldrh r0, [r1, #0x14] + cmp r0, #0x10 + poplo {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldrb r1, [r1, #0x17] + ldr r0, _02334C20 @ =0x023524BC + mov sb, #0 + ldrb r8, [r0, r1] + cmp r8, #0 + ble _02334BD8 + ldr r7, _02334C24 @ =0x023524A0 + mov r6, sb + mov fp, sb + mvn r5, #0 +_02334B8C: + ldr r0, [r4] + mov r1, r6 + ldrb r2, [r0, #0x17] + ldr r0, [r0, sb, lsl #2] + add r2, r7, r2, lsl #1 + ldrb sl, [sb, r2] + bl ov02_0234D308 + mov r2, r0 + mov r1, sl + mov r0, fp + bl ov02_0234D618 + ldr r0, [r4] + mov r1, r5 + ldr r0, [r0, sb, lsl #2] + mov r2, #1 + bl ov02_0234D530 + add sb, sb, #1 + cmp sb, r8 + blt _02334B8C +_02334BD8: + mov r0, #0xa8 + bl ov02_02334780 + ldr r1, _02334C1C @ =0x0235AA08 + mov r0, #0 + ldr r2, [r1] + sub r3, r0, #1 + strh r0, [r2, #0x14] + ldr r2, [r1] + strb r3, [r2, #0x16] + ldr r2, [r1] + ldr r1, [r2, #0x10] + cmp r1, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [sp] + str r0, [r2, #0x10] + bl ov02_0234FB40 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02334C1C: .4byte 0x0235AA08 +_02334C20: .4byte 0x023524BC +_02334C24: .4byte 0x023524A0 + arm_func_end ov02_02334B38 + + arm_func_start ov02_02334C28 +ov02_02334C28: @ 0x02334C28 + ldr r0, _02334C38 @ =0x0235AA0C + mov r1, #0 + strb r1, [r0] + bx lr + .align 2, 0 +_02334C38: .4byte 0x0235AA0C + arm_func_end ov02_02334C28 + + arm_func_start ov02_02334C3C +ov02_02334C3C: @ 0x02334C3C + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x10 + ldr r3, _02334CF8 @ =0x0235AA0C + mov r7, r0 + ldrb r0, [r3] + mov r6, r1 + mov r5, r2 + cmp r0, #0 + addne sp, sp, #0x10 + movne r0, #0 + popne {r3, r4, r5, r6, r7, pc} + ldr r0, _02334CFC @ =0x023530D0 + ldr r1, _02334D00 @ =0x02077FB0 + bl ov02_02334DA8 + ldr r3, _02334D04 @ =0x01920000 + ldr r2, _02334D08 @ =0x04001010 + mov r0, #1 + mov r1, #0 + str r3, [r2] + bl ov02_0234DDC8 + ldr r1, _02334D0C @ =0x0235AA98 + mov r4, r0 + ldr r0, [r1] + mov r1, r7 + mov r2, r6 + mov r3, r5 + bl ov02_02338F74 + mov r5, r0 + bl ov02_02334FA0 + mov r1, #0x40 + str r1, [sp] + mov r1, #2 + str r1, [sp, #4] + str r0, [sp, #8] + str r5, [sp, #0xc] + mov r0, r4 + mov r1, #0x14 + mov r2, #0 + mov r3, #0xd8 + bl ov02_0234E1E8 + mov r0, r4 + bl ov02_0234E354 + mov r0, #1 + ldr r1, _02334CF8 @ =0x0235AA0C + strb r0, [r1] + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02334CF8: .4byte 0x0235AA0C +_02334CFC: .4byte 0x023530D0 +_02334D00: .4byte 0x02077FB0 +_02334D04: .4byte 0x01920000 +_02334D08: .4byte 0x04001010 +_02334D0C: .4byte 0x0235AA98 + arm_func_end ov02_02334C3C + + arm_func_start ov02_02334D10 +ov02_02334D10: @ 0x02334D10 + push {r3, lr} + ldr r0, _02334D44 @ =0x0235AA0C + ldrb r0, [r0] + cmp r0, #0 + moveq r0, #0 + popeq {r3, pc} + mov r0, #1 + bl ov02_0234E02C + ldr r0, _02334D44 @ =0x0235AA0C + mov r1, #0 + strb r1, [r0] + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_02334D44: .4byte 0x0235AA0C + arm_func_end ov02_02334D10 + + arm_func_start ov02_02334D48 +ov02_02334D48: @ 0x02334D48 + push {r4, lr} + mov r4, r0 + ldr r0, _02334DA0 @ =0x0235AA10 + mov r1, r4 + mov r2, #0x3f + bl FUN_0208975C + ldrb r0, [r4, #5] + cmp r0, #0x78 + ldreq r0, _02334DA0 @ =0x0235AA10 + popeq {r4, pc} + bl ov02_02338DF0 + ldrb r1, [r4, #5] + cmp r1, #0x79 + bne _02334D8C + cmp r0, #0 + ldrne r0, _02334DA0 @ =0x0235AA10 + popne {r4, pc} +_02334D8C: + ldr r1, _02334DA4 @ =0x0235250C + ldrb r1, [r1, r0] + ldr r0, _02334DA0 @ =0x0235AA10 + strb r1, [r0, #5] + pop {r4, pc} + .align 2, 0 +_02334DA0: .4byte 0x0235AA10 +_02334DA4: .4byte 0x0235250C + arm_func_end ov02_02334D48 + + arm_func_start ov02_02334DA8 +ov02_02334DA8: @ 0x02334DA8 + push {r3, r4, r5, lr} + mov r5, r1 + bl ov02_02334D48 + add r1, sp, #0 + mov r2, #4 + bl ov02_0234CE84 + ldr r1, [sp] + mov r4, r0 + bl FUN_0207A2DC + ldr r2, [sp] + mov r0, r4 + mov r1, #0 + blx r5 + mov r0, r4 + bl ov02_0234CF78 + pop {r3, r4, r5, pc} + arm_func_end ov02_02334DA8 + + arm_func_start ov02_02334DE8 +ov02_02334DE8: @ 0x02334DE8 + push {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + add r0, sp, #0 + mov r1, #0 + bl ov02_02338D8C + ldr r0, [sp] + cmp r0, #1 + bne _02334E1C + mov r0, r4 + bl ov02_02348174 + add sp, sp, #4 + pop {r3, r4, pc} +_02334E1C: + cmp r0, #2 + addne sp, sp, #4 + popne {r3, r4, pc} + mov r0, r4 + bl ov02_02348708 + add sp, sp, #4 + pop {r3, r4, pc} + arm_func_end ov02_02334DE8 + + arm_func_start ov02_02334E38 +ov02_02334E38: @ 0x02334E38 + push {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + add r1, sp, #0 + mov r0, #0 + bl ov02_02338D8C + ldr r0, [sp] + cmp r0, #1 + addne sp, sp, #4 + popne {r3, r4, pc} + mov r0, r4 + bl ov02_023345B4 + add sp, sp, #4 + pop {r3, r4, pc} + arm_func_end ov02_02334E38 + + arm_func_start ov02_02334E70 +ov02_02334E70: @ 0x02334E70 + push {r3, r4, r5, lr} + sub sp, sp, #0x10 + mov r4, r0 + mov r0, #0 + mov r1, r0 + bl ov02_0234DDC8 + ldr r1, _02334EE0 @ =0x0235AA98 + mov r5, r0 + ldr r0, [r1] + mov r1, r4 + bl ov02_02338F5C + mov r4, r0 + bl ov02_02334FA0 + mov r1, #0x70 + str r1, [sp] + mov r1, #2 + str r1, [sp, #4] + str r0, [sp, #8] + str r4, [sp, #0xc] + mov r0, r5 + mov r1, #0xd + mov r2, #0x28 + mov r3, #0xe6 + bl ov02_0234E1E8 + mov r0, r5 + bl ov02_0234E354 + add sp, sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_02334EE0: .4byte 0x0235AA98 + arm_func_end ov02_02334E70 + + arm_func_start ov02_02334EE4 +ov02_02334EE4: @ 0x02334EE4 + push {r4, r5, r6, lr} + sub sp, sp, #0x10 + mov r5, r0 + mov r0, #0 + mov r6, r1 + mov r1, r0 + bl ov02_0234DDC8 + ldr r1, _02334F90 @ =0x0235AA98 + mov r4, r0 + ldr r0, [r1] + mov r1, r6 + bl ov02_02338F5C + mov r6, r0 + bl ov02_02334FA0 + mov r1, #0x5e + str r1, [sp] + mov r1, #2 + str r1, [sp, #4] + str r0, [sp, #8] + mov r0, r4 + mov r1, #0xd + mov r2, #0x3c + mov r3, #0xe6 + str r6, [sp, #0xc] + bl ov02_0234E1E8 + bl ov02_02338DF0 + mov r6, r0 + bl ov02_02338DF0 + ldr r1, _02334F94 @ =0x00000209 + lsl r3, r0, #2 + stm sp, {r1, r5} + ldr r2, _02334F98 @ =0x023524F2 + ldr r1, _02334F9C @ =0x023524F0 + lsl ip, r6, #2 + ldrh r2, [r2, r3] + ldrh r1, [r1, ip] + mov r0, r4 + mov r3, #2 + bl ov02_0234E050 + mov r0, r4 + bl ov02_0234E354 + add sp, sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_02334F90: .4byte 0x0235AA98 +_02334F94: .4byte 0x00000209 +_02334F98: .4byte 0x023524F2 +_02334F9C: .4byte 0x023524F0 + arm_func_end ov02_02334EE4 + + arm_func_start ov02_02334FA0 +ov02_02334FA0: @ 0x02334FA0 + push {r3, lr} + bl ov02_02338DF0 + ldr r1, _02334FB4 @ =0x023524D4 + ldr r0, [r1, r0, lsl #2] + pop {r3, pc} + .align 2, 0 +_02334FB4: .4byte 0x023524D4 + arm_func_end ov02_02334FA0 + + arm_func_start ov02_02334FB8 +ov02_02334FB8: @ 0x02334FB8 + push {r3, lr} + mov r0, #0x10 + mov r1, #4 + bl ov02_0234E7B4 + ldr r1, _02334FD4 @ =0x0235AA50 + str r0, [r1] + pop {r3, pc} + .align 2, 0 +_02334FD4: .4byte 0x0235AA50 + arm_func_end ov02_02334FB8 + + arm_func_start ov02_02334FD8 +ov02_02334FD8: @ 0x02334FD8 + push {r3, lr} + bl ov02_0233519C + ldr r0, _02334FEC @ =0x0235AA50 + bl ov02_0234E7D8 + pop {r3, pc} + .align 2, 0 +_02334FEC: .4byte 0x0235AA50 + arm_func_end ov02_02334FD8 + + arm_func_start ov02_02334FF0 +ov02_02334FF0: @ 0x02334FF0 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #8 + mov r4, r0 + str r1, [sp] + str r2, [sp, #4] + mov fp, r3 + bl ov02_0233519C + ldr r0, _023350A4 @ =0x02352514 + mov sb, #0 + add sl, r0, r4, lsl #1 + mov r7, #1 + ldr r4, _023350A8 @ =0x0235AA50 + mov r8, sb + mvn r6, #0 + mov r5, r7 +_0233502C: + ldrb r1, [sl], #1 + mov r0, r8 + mov r2, r7 + bl ov02_0234D6D8 + ldr r2, [r4] + mov r1, r6 + str r0, [r2, sb, lsl #2] + ldr r0, [r4] + mov r2, r5 + ldr r0, [r0, sb, lsl #2] + bl ov02_0234D530 + add sb, sb, #1 + cmp sb, #2 + blt _0233502C + ldr r0, _023350A8 @ =0x0235AA50 + ldr r2, [sp] + ldr r0, [r0] + mov r3, fp + ldr r0, [r0] + mvn r1, #0 + bl ov02_0234D440 + ldr r0, _023350A8 @ =0x0235AA50 + ldr r2, [sp, #4] + ldr r0, [r0] + mov r3, fp + ldr r0, [r0, #4] + mvn r1, #0 + bl ov02_0234D440 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_023350A4: .4byte 0x02352514 +_023350A8: .4byte 0x0235AA50 + arm_func_end ov02_02334FF0 + + arm_func_start ov02_023350AC +ov02_023350AC: @ 0x023350AC + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0xc + mov fp, r0 + str r1, [sp] + str r2, [sp, #4] + str r3, [sp, #8] + mov sb, #6 + bl ov02_0233519C + mov sl, #0 + mov r7, #1 + ldr r4, _02335198 @ =0x0235AA50 + mov r8, sl + mvn r6, #0 + mov r5, r7 +_023350E4: + mov r0, r8 + mov r1, sb + mov r2, r7 + bl ov02_0234D6D8 + ldr r2, [r4] + mov r1, r6 + str r0, [r2, sl, lsl #2] + ldr r0, [r4] + mov r2, r5 + ldr r0, [r0, sl, lsl #2] + bl ov02_0234D530 + add sl, sl, #1 + cmp sl, #4 + add sb, sb, #1 + blt _023350E4 + ldr r0, _02335198 @ =0x0235AA50 + ldr r3, [sp, #4] + ldr r0, [r0] + mov r2, fp + ldr r0, [r0] + mvn r1, #0 + bl ov02_0234D440 + ldr r0, _02335198 @ =0x0235AA50 + ldr r2, [sp] + ldr r0, [r0] + ldr r3, [sp, #4] + ldr r0, [r0, #4] + mvn r1, #0 + bl ov02_0234D440 + ldr r0, _02335198 @ =0x0235AA50 + ldr r3, [sp, #8] + ldr r0, [r0] + mov r2, fp + ldr r0, [r0, #8] + mvn r1, #0 + bl ov02_0234D440 + ldr r0, _02335198 @ =0x0235AA50 + ldr r2, [sp] + ldr r0, [r0] + ldr r3, [sp, #8] + ldr r0, [r0, #0xc] + mvn r1, #0 + bl ov02_0234D440 + add sp, sp, #0xc + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02335198: .4byte 0x0235AA50 + arm_func_end ov02_023350AC + + arm_func_start ov02_0233519C +ov02_0233519C: @ 0x0233519C + push {r4, r5, r6, lr} + mov r6, #0 + ldr r4, _023351D8 @ =0x0235AA50 + mov r5, r6 +_023351AC: + ldr r0, [r4] + ldr r0, [r0, r6, lsl #2] + cmp r0, #0 + beq _023351C8 + bl ov02_0234D288 + ldr r0, [r4] + str r5, [r0, r6, lsl #2] +_023351C8: + add r6, r6, #1 + cmp r6, #4 + blt _023351AC + pop {r4, r5, r6, pc} + .align 2, 0 +_023351D8: .4byte 0x0235AA50 + arm_func_end ov02_0233519C + + arm_func_start ov02_023351DC +ov02_023351DC: @ 0x023351DC + push {r3, lr} + mov r0, #0xc0 + mov r1, #4 + bl ov02_0234E7B4 + ldr r2, _02335240 @ =0x0235AA54 + ldr r1, _02335244 @ =0x02078250 + str r0, [r2] + ldr r0, _02335248 @ =0x02353304 + bl ov02_02334DA8 + bl ov02_02338E00 + cmp r0, #0 + beq _02335218 + cmp r0, #1 + beq _0233522C + pop {r3, pc} +_02335218: + ldr r0, _0233524C @ =0x023532B4 + ldr r1, _02335250 @ =FUN_02078010 + ldr r0, [r0] + bl ov02_02334DA8 + pop {r3, pc} +_0233522C: + ldr r0, _0233524C @ =0x023532B4 + ldr r1, _02335250 @ =FUN_02078010 + ldr r0, [r0, #4] + bl ov02_02334DA8 + pop {r3, pc} + .align 2, 0 +_02335240: .4byte 0x0235AA54 +_02335244: .4byte 0x02078250 +_02335248: .4byte 0x02353304 +_0233524C: .4byte 0x023532B4 +_02335250: .4byte FUN_02078010 + arm_func_end ov02_023351DC + + arm_func_start ov02_02335254 +ov02_02335254: @ 0x02335254 + ldr ip, _02335260 @ =ov02_0234E7D8 + ldr r0, _02335264 @ =0x0235AA54 + bx ip + .align 2, 0 +_02335260: .4byte ov02_0234E7D8 +_02335264: .4byte 0x0235AA54 + arm_func_end ov02_02335254 + + arm_func_start ov02_02335268 +ov02_02335268: @ 0x02335268 + push {r4, lr} + ldr r1, _023352B8 @ =0x023532B4 + ldr r0, [r1, r0, lsl #2] + bl ov02_02334D48 + mov r1, #0 + mov r2, #4 + bl ov02_0234CE84 + ldr r1, _023352BC @ =0x0235AA54 + mov r4, r0 + ldr r1, [r1] + mov r2, #0xc0 + bl FUN_0207C3B4 + mov r0, r4 + bl ov02_0234CF78 + mov r0, #1 + ldr r1, _023352C0 @ =ov02_023352F4 + mov r2, #0 + mov r3, #0x78 + bl ov02_0234FA98 + pop {r4, pc} + .align 2, 0 +_023352B8: .4byte 0x023532B4 +_023352BC: .4byte 0x0235AA54 +_023352C0: .4byte ov02_023352F4 + arm_func_end ov02_02335268 + + arm_func_start ov02_023352C4 +ov02_023352C4: @ 0x023352C4 + push {r3, lr} + bl ov02_02347518 + ldrb r0, [r0, #0xf4] + add r0, r0, #5 + bl ov02_02335268 + pop {r3, pc} + arm_func_end ov02_023352C4 + + arm_func_start ov02_023352DC +ov02_023352DC: @ 0x023352DC + push {r3, lr} + bl ov02_02347518 + ldrb r0, [r0, #0xf4] + add r0, r0, #2 + bl ov02_02335268 + pop {r3, pc} + arm_func_end ov02_023352DC + + arm_func_start ov02_023352F4 +ov02_023352F4: @ 0x023352F4 + push {r4, lr} + ldr r1, _02335330 @ =0x0235AA54 + mov r4, r0 + ldr r0, [r1] + mov r1, #0xc0 + bl FUN_0207A2DC + ldr r0, _02335330 @ =0x0235AA54 + mov r1, #0 + ldr r0, [r0] + mov r2, #0xc0 + bl FUN_02078010 + mov r1, r4 + mov r0, #1 + bl ov02_0234FB40 + pop {r4, pc} + .align 2, 0 +_02335330: .4byte 0x0235AA54 + arm_func_end ov02_023352F4 + + arm_func_start ov02_02335334 +ov02_02335334: @ 0x02335334 + push {r3, r4, r5, lr} + ldr r1, _023353DC @ =0x0235AA58 + mov r4, r0 + ldr r0, [r1] + cmp r0, #0 + popne {r3, r4, r5, pc} + mov r0, #0xc + mov r1, #4 + bl ov02_0234E7B4 + ldr r1, _023353E0 @ =0x02352520 + ldr r2, _023353DC @ =0x0235AA58 + ldrb r1, [r1, r4, lsl #2] + str r0, [r2] + strb r4, [r0, #8] + mov r0, #0 + bl ov02_0234D6AC + ldr lr, _023353DC @ =0x0235AA58 + ldr ip, _023353E4 @ =0xFE00FF00 + ldr r2, [lr] + ldr r1, _023353E8 @ =ov02_02335430 + str r0, [r2] + ldr r2, [lr] + mov r0, #0 + ldr r5, [r2] + mov r2, r0 + ldr r4, [r5] + mov r3, #0x78 + and r4, r4, ip + orr r4, r4, #0x26 + orr r4, r4, #0xe50000 + str r4, [r5] + ldr ip, [lr] + ldr lr, [ip] + ldrh ip, [lr, #4] + bic ip, ip, #0xc00 + orr ip, ip, #0x800 + strh ip, [lr, #4] + bl ov02_0234FA98 + ldr r1, _023353DC @ =0x0235AA58 + ldr r1, [r1] + str r0, [r1, #4] + pop {r3, r4, r5, pc} + .align 2, 0 +_023353DC: .4byte 0x0235AA58 +_023353E0: .4byte 0x02352520 +_023353E4: .4byte 0xFE00FF00 +_023353E8: .4byte ov02_02335430 + arm_func_end ov02_02335334 + + arm_func_start ov02_023353EC +ov02_023353EC: @ 0x023353EC + push {r3, lr} + ldr r0, _02335428 @ =0x0235AA58 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + ldr r1, [r0, #4] + mov r0, #0 + bl ov02_0234FB6C + ldr r0, _02335428 @ =0x0235AA58 + ldr r0, [r0] + ldr r0, [r0] + bl ov02_0234F2C0 + ldr r0, _0233542C @ =0x0235AA58 + bl ov02_0234E7D8 + pop {r3, pc} + .align 2, 0 +_02335428: .4byte 0x0235AA58 +_0233542C: .4byte 0x0235AA58 + arm_func_end ov02_023353EC + + arm_func_start ov02_02335430 +ov02_02335430: @ 0x02335430 + push {r3, r4, r5, lr} + ldr r0, _023354C8 @ =0x04000208 + mov r4, #0 + ldrh r5, [r0] + strh r4, [r0] + bl FUN_022BF640 + cmp r0, #0x8000 + beq _02335458 + bl FUN_022BF660 + mov r4, r0 +_02335458: + ldr r2, _023354C8 @ =0x04000208 + ldr r1, _023354CC @ =0x0235AA58 + ldrh r0, [r2] + ldr r3, _023354D0 @ =0x02352520 + mov r0, #0 + strh r5, [r2] + ldr r2, [r1] + ldrsb r1, [r2, #8] + ldr r2, [r2] + add r1, r3, r1, lsl #2 + ldrb r1, [r4, r1] + bl ov02_0234D618 + ldr r1, _023354CC @ =0x0235AA58 + ldr r0, _023354D4 @ =0xFE00FF00 + ldr r2, [r1] + ldr r3, [r2] + ldr r2, [r3] + and r0, r2, r0 + orr r0, r0, #0x26 + orr r0, r0, #0xe50000 + str r0, [r3] + ldr r0, [r1] + ldr r1, [r0] + ldrh r0, [r1, #4] + bic r0, r0, #0xc00 + orr r0, r0, #0x800 + strh r0, [r1, #4] + pop {r3, r4, r5, pc} + .align 2, 0 +_023354C8: .4byte 0x04000208 +_023354CC: .4byte 0x0235AA58 +_023354D0: .4byte 0x02352520 +_023354D4: .4byte 0xFE00FF00 + arm_func_end ov02_02335430 + + arm_func_start ov02_023354D8 +ov02_023354D8: @ 0x023354D8 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x24 + add r5, sp, #0x1c + mov r4, #0 + strh r4, [r5, #4] + mov r3, #0x11 + strh r4, [r5, #6] + mov r2, #0x12 + mov r0, #0x128 + mov r1, #4 + strh r4, [r5] + strh r4, [r5, #2] + strh r3, [sp, #0x20] + strh r2, [sp, #0x22] + bl ov02_0234E7B4 + ldr r8, _02335824 @ =0x0235AA5C + mov r1, #0xff + str r0, [r8] + strb r1, [r0, #0x11c] + ldr r0, [r8] + mov r6, r4 + strb r6, [r0, #0x121] + mov r5, r4 + ldr r0, [r8] + mov r1, #1 + strb r1, [r0, #0x123] + ldr r0, [r8] + ldr r7, _02335828 @ =0xC1FFFCFF + strb r1, [r0, #0x124] + mov r4, #0x34 +_02335550: + mov r0, r5 + mov r1, r4 + bl ov02_0234D6AC + ldr r1, [r8] + add r1, r1, r6, lsl #2 + str r0, [r1, #0x30] + ldr r0, [r8] + add r0, r0, r6, lsl #2 + ldr r1, [r0, #0x30] + ldr r0, [r1] + and r0, r0, r7 + orr r0, r0, #0x200 + str r0, [r1] + ldr r0, [r8] + add r0, r0, r6, lsl #2 + ldr r1, [r0, #0x30] + add r6, r6, #1 + ldrh r0, [r1, #4] + cmp r6, #0x2f + bic r0, r0, #0xc00 + orr r0, r0, #0xc00 + strh r0, [r1, #4] + blt _02335550 + mov r6, #0 + ldr r5, _0233582C @ =0x02352538 + ldr r8, _02335824 @ =0x0235AA5C + ldr r7, _02335828 @ =0xC1FFFCFF + mov r4, r6 +_023355C0: + ldrb r1, [r5], #1 + mov r0, r4 + bl ov02_0234D6AC + ldr r1, [r8] + add r1, r1, r6, lsl #2 + str r0, [r1, #0xec] + ldr r0, [r8] + add r0, r0, r6, lsl #2 + ldr r1, [r0, #0xec] + ldr r0, [r1] + and r0, r0, r7 + orr r0, r0, #0x200 + str r0, [r1] + ldr r0, [r8] + add r0, r0, r6, lsl #2 + ldr r1, [r0, #0xec] + add r6, r6, #1 + ldrh r0, [r1, #4] + cmp r6, #4 + bic r0, r0, #0xc00 + orr r0, r0, #0xc00 + strh r0, [r1, #4] + blt _023355C0 + mov sl, #0 + ldr sb, _02335830 @ =0x02352530 + ldr r4, _02335824 @ =0x0235AA5C + mov r8, sl + mov r7, #1 + mvn r6, #0 + mov r5, #0x200 + mov fp, sl +_0233563C: + ldrb r1, [sb], #1 + mov r0, r8 + mov r2, r7 + bl ov02_0234D6D8 + ldr r2, [r4] + mov r1, r6 + add r2, r2, sl, lsl #2 + str r0, [r2, #0xfc] + ldr r0, [r4] + mov r2, r5 + add r0, r0, sl, lsl #2 + ldr r0, [r0, #0xfc] + mov r3, fp + bl ov02_0234D31C + ldr r0, [r4] + mov r1, r6 + add r0, r0, sl, lsl #2 + ldr r0, [r0, #0xfc] + mov r2, #3 + bl ov02_0234D530 + add sl, sl, #1 + cmp sl, #2 + blt _0233563C + mov sl, #0 + strh sl, [sp, #0x16] +_023356A0: + mov sb, #0 + ldr r6, _02335834 @ =0x02353324 + ldr r4, _02335824 @ =0x0235AA5C + str sb, [sp, #0x10] + mov fp, #2 +_023356B4: + add r0, sp, #0x18 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + mov r1, #0x1c + mov r2, #2 + mov r3, r0 + bl ov02_0234DCC0 + ldr r1, [r4] + lsl r2, sb, #2 + add r1, r1, sl, lsl #4 + str r0, [r1, sb, lsl #2] + mov r0, #0 + ldr r7, [sp, #0x10] + strh r0, [sp, #0x1c] + mov r8, r0 + add r5, r2, sl, lsl #4 +_023356F8: + ldr r1, [r6, sl, lsl #2] + lsl r0, r7, #1 + ldrh r1, [r1, r0] + ldrh r0, [sp, #0x22] + strh r1, [sp, #0x14] + stm sp, {r0, fp} + mov r0, #0x480 + str r0, [sp, #8] + add r0, sp, #0x14 + str r0, [sp, #0xc] + ldr r0, [r4] + ldrh r1, [sp, #0x1c] + ldrh r2, [sp, #0x1e] + ldrh r3, [sp, #0x20] + ldr r0, [r0, r5] + bl ov02_0234E1E8 + ldrh r0, [sp, #0x1c] + add r8, r8, #1 + cmp r8, #0xc + add r0, r0, #0x12 + add r7, r7, #1 + strh r0, [sp, #0x1c] + blt _023356F8 + cmp sl, #0 + bne _02335778 + ldr r1, [sp, #0x18] + mov r0, #0 + mov r2, #1 + bl ov02_0234D12C + ldr r1, [r4] + add r1, r1, sb, lsl #2 + str r0, [r1, #0x104] +_02335778: + ldr r0, [sp, #0x10] + add sb, sb, #1 + add r0, r0, #0xc + str r0, [sp, #0x10] + cmp sb, #4 + blt _023356B4 + add sl, sl, #1 + cmp sl, #3 + blt _023356A0 + mov r0, #0 + mov r1, #0x40 + mov r2, #1 + bl ov02_0234D6D8 + ldr r3, _02335824 @ =0x0235AA5C + mvn r1, #0 + ldr r4, [r3] + mov r2, #0x200 + str r0, [r4, #0x114] + ldr r0, [r3] + mov r3, #0 + ldr r0, [r0, #0x114] + bl ov02_0234D31C + ldr r0, _02335824 @ =0x0235AA5C + mvn r1, #0 + ldr r0, [r0] + mov r2, #2 + ldr r0, [r0, #0x114] + bl ov02_0234D530 + mov r0, #0 + ldr r1, _02335838 @ =ov02_023358C8 + mov r2, r0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r3, _02335824 @ =0x0235AA5C + mov r1, #0 + ldr r4, [r3] + mov r2, #0xc0 + str r0, [r4, #0x118] + ldr r0, [r3] + ldrb r0, [r0, #0x11d] + bl ov02_02336574 + add sp, sp, #0x24 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02335824: .4byte 0x0235AA5C +_02335828: .4byte 0xC1FFFCFF +_0233582C: .4byte 0x02352538 +_02335830: .4byte 0x02352530 +_02335834: .4byte 0x02353324 +_02335838: .4byte ov02_023358C8 + arm_func_end ov02_023354D8 + + arm_func_start ov02_0233583C +ov02_0233583C: @ 0x0233583C + push {r3, lr} + ldr r0, _02335868 @ =0x0235AA5C + ldr r0, [r0] + ldr r0, [r0, #0x114] + bl ov02_0234D288 + ldr r0, _02335868 @ =0x0235AA5C + ldr r1, _0233586C @ =ov02_02336E50 + ldr r0, [r0] + ldr r0, [r0, #0x118] + bl ov02_0234FB38 + pop {r3, pc} + .align 2, 0 +_02335868: .4byte 0x0235AA5C +_0233586C: .4byte ov02_02336E50 + arm_func_end ov02_0233583C + + arm_func_start ov02_02335870 +ov02_02335870: @ 0x02335870 + ldr r0, _02335880 @ =0x0235AA5C + ldr r0, [r0] + ldrb r0, [r0, #0x11c] + bx lr + .align 2, 0 +_02335880: .4byte 0x0235AA5C + arm_func_end ov02_02335870 + + arm_func_start ov02_02335884 +ov02_02335884: @ 0x02335884 + ldr r1, _02335894 @ =0x0235AA5C + ldr r1, [r1] + strb r0, [r1, #0x123] + bx lr + .align 2, 0 +_02335894: .4byte 0x0235AA5C + arm_func_end ov02_02335884 + + arm_func_start ov02_02335898 +ov02_02335898: @ 0x02335898 + ldr r1, _023358A8 @ =0x0235AA5C + ldr r1, [r1] + strb r0, [r1, #0x124] + bx lr + .align 2, 0 +_023358A8: .4byte 0x0235AA5C + arm_func_end ov02_02335898 + + arm_func_start ov02_023358AC +ov02_023358AC: @ 0x023358AC + ldr r0, _023358C4 @ =0x0235AA5C + ldr r0, [r0] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + bx lr + .align 2, 0 +_023358C4: .4byte 0x0235AA5C + arm_func_end ov02_023358AC + + arm_func_start ov02_023358C8 +ov02_023358C8: @ 0x023358C8 + push {r4, lr} + sub sp, sp, #8 + ldr r2, _02335950 @ =0x0235AA5C + mov r4, r0 + ldr r3, [r2] + ldr r1, _02335954 @ =0x01FF0000 + ldr r0, [r3, #0x30] + ldr r0, [r0] + and r1, r0, r1 + and r0, r0, #0xff + sub r2, r0, #0xc + lsr r0, r1, #0x10 + str r0, [sp, #4] + str r2, [sp] + cmp r2, #0x51 + ldrb r0, [r3, #0x11d] + mov r1, #0 + ble _0233591C + bl ov02_02336574 + add sp, sp, #8 + pop {r4, pc} +_0233591C: + mov r2, #0x51 + bl ov02_02336574 + ldr r0, _02335950 @ =0x0235AA5C + mov r1, #1 + ldr r0, [r0] + mov r2, #0xc0 + ldrb r0, [r0, #0x11d] + bl ov02_02336574 + ldr r1, _02335958 @ =ov02_0233595C + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_02335950: .4byte 0x0235AA5C +_02335954: .4byte 0x01FF0000 +_02335958: .4byte ov02_0233595C + arm_func_end ov02_023358C8 + + arm_func_start ov02_0233595C +ov02_0233595C: @ 0x0233595C + push {r4, lr} + sub sp, sp, #8 + ldr r2, _023359E4 @ =0x0235AA5C + mov r4, r0 + ldr r3, [r2] + ldr r1, _023359E8 @ =0x01FF0000 + ldr r0, [r3, #0x60] + ldr r0, [r0] + and r1, r0, r1 + and r0, r0, #0xff + sub r2, r0, #0xc + lsr r0, r1, #0x10 + str r0, [sp, #4] + str r2, [sp] + cmp r2, #0x67 + ldrb r0, [r3, #0x11d] + mov r1, #1 + ble _023359B0 + bl ov02_02336574 + add sp, sp, #8 + pop {r4, pc} +_023359B0: + mov r2, #0x67 + bl ov02_02336574 + ldr r0, _023359E4 @ =0x0235AA5C + mov r1, #2 + ldr r0, [r0] + mov r2, #0xc0 + ldrb r0, [r0, #0x11d] + bl ov02_02336574 + ldr r1, _023359EC @ =ov02_023359F0 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_023359E4: .4byte 0x0235AA5C +_023359E8: .4byte 0x01FF0000 +_023359EC: .4byte ov02_023359F0 + arm_func_end ov02_0233595C + + arm_func_start ov02_023359F0 +ov02_023359F0: @ 0x023359F0 + push {r4, lr} + sub sp, sp, #8 + ldr r2, _02335A78 @ =0x0235AA5C + mov r4, r0 + ldr r3, [r2] + ldr r1, _02335A7C @ =0x01FF0000 + ldr r0, [r3, #0x90] + ldr r0, [r0] + and r1, r0, r1 + and r0, r0, #0xff + sub r2, r0, #0xc + lsr r0, r1, #0x10 + str r0, [sp, #4] + str r2, [sp] + cmp r2, #0x7d + ldrb r0, [r3, #0x11d] + mov r1, #2 + ble _02335A44 + bl ov02_02336574 + add sp, sp, #8 + pop {r4, pc} +_02335A44: + mov r2, #0x7d + bl ov02_02336574 + ldr r0, _02335A78 @ =0x0235AA5C + mov r1, #3 + ldr r0, [r0] + mov r2, #0xc0 + ldrb r0, [r0, #0x11d] + bl ov02_02336574 + ldr r1, _02335A80 @ =ov02_02335A84 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_02335A78: .4byte 0x0235AA5C +_02335A7C: .4byte 0x01FF0000 +_02335A80: .4byte ov02_02335A84 + arm_func_end ov02_023359F0 + + arm_func_start ov02_02335A84 +ov02_02335A84: @ 0x02335A84 + push {r4, lr} + sub sp, sp, #8 + ldr r2, _02335B0C @ =0x0235AA5C + mov r4, r0 + ldr r3, [r2] + ldr r1, _02335B10 @ =0x01FF0000 + ldr r0, [r3, #0xc0] + ldr r0, [r0] + and r1, r0, r1 + and r0, r0, #0xff + sub r2, r0, #0xc + lsr r0, r1, #0x10 + str r0, [sp, #4] + str r2, [sp] + cmp r2, #0x93 + ldrb r0, [r3, #0x11d] + mov r1, #3 + ble _02335AD8 + bl ov02_02336574 + add sp, sp, #8 + pop {r4, pc} +_02335AD8: + mov r2, #0x93 + bl ov02_02336574 + ldr r0, _02335B0C @ =0x0235AA5C + mov r1, #4 + ldr r0, [r0] + mov r2, #0xc0 + ldrb r0, [r0, #0x11d] + bl ov02_02336574 + ldr r1, _02335B14 @ =ov02_02335B18 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_02335B0C: .4byte 0x0235AA5C +_02335B10: .4byte 0x01FF0000 +_02335B14: .4byte ov02_02335B18 + arm_func_end ov02_02335A84 + + arm_func_start ov02_02335B18 +ov02_02335B18: @ 0x02335B18 + push {r4, lr} + sub sp, sp, #8 + ldr r1, _02335B9C @ =0x0235AA5C + mov r4, r0 + ldr r0, [r1] + add r2, sp, #4 + ldr r0, [r0, #0xfc] + add r3, sp, #0 + mov r1, #0 + bl ov02_0234D590 + ldr r0, [sp] + mov r1, #4 + sub r2, r0, #0xc + str r2, [sp] + cmp r2, #0xaa + ble _02335B70 + ldr r0, _02335B9C @ =0x0235AA5C + ldr r0, [r0] + ldrb r0, [r0, #0x11d] + bl ov02_02336574 + add sp, sp, #8 + pop {r4, pc} +_02335B70: + ldr r0, _02335B9C @ =0x0235AA5C + mov r2, #0xaa + ldr r0, [r0] + ldrb r0, [r0, #0x11d] + bl ov02_02336574 + bl ov02_0233693C + ldr r1, _02335BA0 @ =0x02335BA4 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_02335B9C: .4byte 0x0235AA5C +_02335BA0: .4byte 0x02335BA4 + arm_func_end ov02_02335B18 +_02335BA4: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x03, 0x00, 0x00, 0xEB, 0x7C, 0x00, 0x00, 0xEB + .byte 0x4D, 0x01, 0x00, 0xEB, 0xE2, 0x01, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_02335BBC +ov02_02335BBC: @ 0x02335BBC + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + ldr r0, _02335D80 @ =0x02352F34 + bl ov02_0234ED04 + cmp r0, #0 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, pc} + ldr r0, _02335D84 @ =0x0235AA5C + mvn r1, #0 + ldr r0, [r0] + ldr r7, _02335D88 @ =0x02352588 + ldr r6, _02335D8C @ =0x02352544 + strb r1, [r0, #0x11e] + mov r4, #0 + add r5, sp, #0 +_02335BF8: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl ov02_0234E39C + mov r0, r5 + bl ov02_0234ED04 + cmp r0, #0 + beq _02335C58 + ldr r0, _02335D84 @ =0x0235AA5C + ldr r0, [r0] + ldrb r0, [r0, #0x124] + cmp r0, #0 + bne _02335C3C + mov r0, #9 + bl ov02_023480E0 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_02335C3C: + mov r0, #0 + bl ov02_023480E0 + ldr r0, _02335D84 @ =0x0235AA5C + add sp, sp, #8 + ldr r0, [r0] + strb r4, [r0, #0x11e] + pop {r3, r4, r5, r6, r7, pc} +_02335C58: + add r4, r4, #1 + cmp r4, #0x2f + add r7, r7, #4 + blt _02335BF8 + ldr r6, _02335D90 @ =0x02352570 + ldr r7, _02335D94 @ =0x02352560 + mov r4, #0 + add r5, sp, #0 +_02335C78: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl ov02_0234E39C + mov r0, r5 + bl ov02_0234ED04 + cmp r0, #0 + beq _02335D04 + cmp r4, #3 + bne _02335CB4 + ldr r0, _02335D84 @ =0x0235AA5C + ldr r0, [r0] + ldrb r0, [r0, #0x123] + cmp r0, #0 + beq _02335CD0 +_02335CB4: + cmp r4, #2 + bne _02335CE0 + ldr r0, _02335D84 @ =0x0235AA5C + ldr r0, [r0] + ldrb r0, [r0, #0x124] + cmp r0, #0 + bne _02335CE0 +_02335CD0: + mov r0, #9 + bl ov02_023480E0 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_02335CE0: + ldr r0, _02335D98 @ =0x02353330 + ldr r0, [r0, r4, lsl #2] + bl ov02_023480E0 + ldr r0, _02335D84 @ =0x0235AA5C + add r1, r4, #0x2f + ldr r0, [r0] + add sp, sp, #8 + strb r1, [r0, #0x11e] + pop {r3, r4, r5, r6, r7, pc} +_02335D04: + add r4, r4, #1 + cmp r4, #4 + add r6, r6, #4 + add r7, r7, #4 + blt _02335C78 + ldr r6, _02335D9C @ =0x02352558 + ldr r5, _02335DA0 @ =0x02352540 + mov r7, #0 + add r4, sp, #0 +_02335D28: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov02_0234E39C + mov r0, r4 + bl ov02_0234ED04 + cmp r0, #0 + beq _02335D68 + mov r0, #0 + bl ov02_023480E0 + ldr r0, _02335D84 @ =0x0235AA5C + add r1, r7, #0x33 + ldr r0, [r0] + add sp, sp, #8 + strb r1, [r0, #0x11e] + pop {r3, r4, r5, r6, r7, pc} +_02335D68: + add r7, r7, #1 + cmp r7, #2 + add r6, r6, #4 + blt _02335D28 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02335D80: .4byte 0x02352F34 +_02335D84: .4byte 0x0235AA5C +_02335D88: .4byte 0x02352588 +_02335D8C: .4byte 0x02352544 +_02335D90: .4byte 0x02352570 +_02335D94: .4byte 0x02352560 +_02335D98: .4byte 0x02353330 +_02335D9C: .4byte 0x02352558 +_02335DA0: .4byte 0x02352540 + arm_func_end ov02_02335BBC + + arm_func_start ov02_02335DA4 +ov02_02335DA4: @ 0x02335DA4 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + ldr r1, _02336050 @ =0x0235AA5C + ldr r0, _02336054 @ =0x02352F34 + ldr r1, [r1] + mov r2, #0 + strb r2, [r1, #0x11c] + bl ov02_0234EE14 + cmp r0, #0 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, pc} + ldr r7, _02336058 @ =0x02352588 + ldr r6, _0233605C @ =0x02352544 + mov r4, #0 + add r5, sp, #0 +_02335DE0: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl ov02_0234E39C + mov r0, r5 + bl ov02_0234EE14 + cmp r0, #0 + beq _02335E60 + ldr r1, _02336050 @ =0x0235AA5C + ldr r3, [r1] + add r0, r3, #0x100 + ldrsb r0, [r0, #0x1e] + cmp r0, r4 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} + ldrb r2, [r3, #0x11d] + ldr r0, _02336060 @ =0x02353318 + ldr r0, [r0, r2, lsl #2] + ldrb r0, [r0, r4] + strb r0, [r3, #0x11c] + ldr r0, [r1] + ldrb r0, [r0, #0x11d] + cmp r0, #1 + bne _02335E48 + mov r0, #0 + bl ov02_023367F0 +_02335E48: + ldr r0, _02336050 @ =0x0235AA5C + ldr r0, [r0] + strb r4, [r0, #0x121] + bl ov02_0233693C + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_02335E60: + add r4, r4, #1 + cmp r4, #0x2f + add r7, r7, #4 + blt _02335DE0 + ldr r6, _02336064 @ =0x02352578 + ldr r7, _02336068 @ =0x02352568 + mov r4, #2 + add r5, sp, #0 +_02335E80: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl ov02_0234E39C + mov r0, r5 + bl ov02_0234EE14 + cmp r0, #0 + beq _02335F00 + ldr r1, _02336050 @ =0x0235AA5C + add r2, r4, #0x2f + ldr r3, [r1] + add r0, r3, #0x100 + ldrsb r0, [r0, #0x1e] + cmp r0, r2 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} + ldr r0, _0233606C @ =0x02352580 + ldrb r0, [r0, r4] + strb r0, [r3, #0x11c] + ldr r0, [r1] + ldrb r0, [r0, #0x11d] + cmp r0, #1 + bne _02335EE4 + mov r0, #0 + bl ov02_023367F0 +_02335EE4: + ldr r0, _02336050 @ =0x0235AA5C + add r1, r4, #0x2f + ldr r0, [r0] + strb r1, [r0, #0x121] + bl ov02_0233693C + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_02335F00: + add r4, r4, #1 + cmp r4, #4 + add r6, r6, #4 + add r7, r7, #4 + blt _02335E80 + ldr r7, _02336070 @ =0x02352558 + ldr r6, _02336074 @ =0x02352540 + mov r4, #0 + add r5, sp, #0 +_02335F24: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl ov02_0234E39C + mov r0, r5 + bl ov02_0234EE14 + cmp r0, #0 + beq _02335F84 + ldr r1, _02336050 @ =0x0235AA5C + add r2, r4, #0x33 + ldr r3, [r1] + add r0, r3, #0x100 + ldrsb r0, [r0, #0x1e] + cmp r0, r2 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} + ldr r0, _02336078 @ =0x02352534 + ldrb r0, [r0, r4] + strb r0, [r3, #0x11c] + ldr r0, [r1] + strb r2, [r0, #0x121] + bl ov02_0233693C + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_02335F84: + add r4, r4, #1 + cmp r4, #2 + add r7, r7, #4 + blt _02335F24 + ldr r0, _0233607C @ =0x02352560 + ldr r1, _02336080 @ =0x02352570 + add r2, sp, #0 + bl ov02_0234E39C + add r0, sp, #0 + bl ov02_0234EE14 + cmp r0, #0 + beq _02335FF0 + ldr r0, _02336050 @ =0x0235AA5C + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x1e] + cmp r0, #0x2f + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} + bl ov02_0233608C + ldr r0, _02336050 @ =0x0235AA5C + mov r1, #0x2f + ldr r0, [r0] + strb r1, [r0, #0x121] + bl ov02_0233693C + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_02335FF0: + ldr r0, _02336084 @ =0x02352564 + ldr r1, _02336088 @ =0x02352574 + add r2, sp, #0 + bl ov02_0234E39C + add r0, sp, #0 + bl ov02_0234EE14 + cmp r0, #0 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, pc} + ldr r0, _02336050 @ =0x0235AA5C + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x1e] + cmp r0, #0x30 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} + bl ov02_023360BC + ldr r0, _02336050 @ =0x0235AA5C + mov r1, #0x30 + ldr r0, [r0] + strb r1, [r0, #0x121] + bl ov02_0233693C + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02336050: .4byte 0x0235AA5C +_02336054: .4byte 0x02352F34 +_02336058: .4byte 0x02352588 +_0233605C: .4byte 0x02352544 +_02336060: .4byte 0x02353318 +_02336064: .4byte 0x02352578 +_02336068: .4byte 0x02352568 +_0233606C: .4byte 0x02352580 +_02336070: .4byte 0x02352558 +_02336074: .4byte 0x02352540 +_02336078: .4byte 0x02352534 +_0233607C: .4byte 0x02352560 +_02336080: .4byte 0x02352570 +_02336084: .4byte 0x02352564 +_02336088: .4byte 0x02352574 + arm_func_end ov02_02335DA4 + + arm_func_start ov02_0233608C +ov02_0233608C: @ 0x0233608C + push {r3, lr} + ldr r0, _023360B8 @ =0x0235AA5C + ldr r0, [r0] + ldrb r0, [r0, #0x11d] + cmp r0, #2 + moveq r0, #0 + movne r0, #2 + bl ov02_023367F0 + mov r0, #1 + bl ov02_023480E0 + pop {r3, pc} + .align 2, 0 +_023360B8: .4byte 0x0235AA5C + arm_func_end ov02_0233608C + + arm_func_start ov02_023360BC +ov02_023360BC: @ 0x023360BC + push {r3, lr} + ldr r0, _023360E8 @ =0x0235AA5C + ldr r0, [r0] + ldrb r0, [r0, #0x11d] + cmp r0, #1 + movne r0, #1 + moveq r0, #0 + bl ov02_023367F0 + mov r0, #1 + bl ov02_023480E0 + pop {r3, pc} + .align 2, 0 +_023360E8: .4byte 0x0235AA5C + arm_func_end ov02_023360BC + + arm_func_start ov02_023360EC +ov02_023360EC: @ 0x023360EC + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + ldr r0, _023362D0 @ =0x02352F34 + bl ov02_0234EC7C + cmp r0, #0 + beq _023362B0 + ldr r7, _023362D4 @ =0x02352588 + ldr r5, _023362D8 @ =0x02352544 + mov r6, #0 + add r4, sp, #0 +_02336114: + mov r0, r7 + mov r1, r5 + mov r2, r4 + bl ov02_0234E39C + mov r0, r4 + bl ov02_0234EC7C + cmp r0, #0 + beq _02336158 + ldr r0, _023362DC @ =0x0235AA5C + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x1e] + cmp r0, r6 + bne _023362B0 + mov r0, r6 + bl ov02_023362F0 + b _023362B8 +_02336158: + add r6, r6, #1 + cmp r6, #0x2f + add r7, r7, #4 + blt _02336114 + ldr r6, _023362E0 @ =0x02352578 + ldr r7, _023362E4 @ =0x02352568 + mov r4, #2 + add r5, sp, #0 +_02336178: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl ov02_0234E39C + mov r0, r5 + bl ov02_0234EC7C + cmp r0, #0 + beq _02336238 + ldr r1, _023362DC @ =0x0235AA5C + add r0, r4, #0x2f + ldr r1, [r1] + add r1, r1, #0x100 + ldrsb r1, [r1, #0x1e] + cmp r1, r0 + bne _023362B0 + bl ov02_023362F0 + cmp r4, #3 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} + ldr r0, _023362DC @ =0x0235AA5C + ldr r2, [r0] + ldrb r1, [r2, #0x122] + add r1, r1, #1 + strb r1, [r2, #0x122] + ldr r2, [r0] + ldrb r1, [r2, #0x122] + cmp r1, #0x28 + addlo sp, sp, #8 + poplo {r3, r4, r5, r6, r7, pc} + ldrb r1, [r2, #0x123] + cmp r1, #0 + bne _02336218 + mov r0, #9 + bl ov02_023480E0 + ldr r0, _023362DC @ =0x0235AA5C + mvn r1, #0 + ldr r0, [r0] + add sp, sp, #8 + strb r1, [r0, #0x11e] + pop {r3, r4, r5, r6, r7, pc} +_02336218: + mov r1, #0x80 + strb r1, [r2, #0x11c] + ldr r1, [r0] + add sp, sp, #8 + ldrb r0, [r1, #0x122] + sub r0, r0, #7 + strb r0, [r1, #0x122] + pop {r3, r4, r5, r6, r7, pc} +_02336238: + add r4, r4, #1 + cmp r4, #4 + add r6, r6, #4 + add r7, r7, #4 + blt _02336178 + ldr r6, _023362E8 @ =0x02352558 + ldr r5, _023362EC @ =0x02352540 + mov r7, #0 + add r4, sp, #0 +_0233625C: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov02_0234E39C + mov r0, r4 + bl ov02_0234EC7C + cmp r0, #0 + beq _023362A0 + ldr r1, _023362DC @ =0x0235AA5C + add r0, r7, #0x33 + ldr r1, [r1] + add r1, r1, #0x100 + ldrsb r1, [r1, #0x1e] + cmp r1, r0 + bne _023362B0 + bl ov02_023362F0 + b _023362B8 +_023362A0: + add r7, r7, #1 + cmp r7, #2 + add r6, r6, #4 + blt _0233625C +_023362B0: + mvn r0, #0 + bl ov02_023362F0 +_023362B8: + ldr r0, _023362DC @ =0x0235AA5C + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x122] + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_023362D0: .4byte 0x02352F34 +_023362D4: .4byte 0x02352588 +_023362D8: .4byte 0x02352544 +_023362DC: .4byte 0x0235AA5C +_023362E0: .4byte 0x02352578 +_023362E4: .4byte 0x02352568 +_023362E8: .4byte 0x02352558 +_023362EC: .4byte 0x02352540 + arm_func_end ov02_023360EC + + arm_func_start ov02_023362F0 +ov02_023362F0: @ 0x023362F0 + push {r4, lr} + ldr r1, _02336340 @ =0x0235AA5C + mov r4, r0 + ldr r1, [r1] + add r1, r1, #0x100 + ldrsb r1, [r1, #0x1f] + cmp r4, r1 + popeq {r4, pc} + mov r1, #1 + bl ov02_02336874 + ldr r0, _02336340 @ =0x0235AA5C + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x1f] + bl ov02_02336874 + ldr r0, _02336340 @ =0x0235AA5C + ldr r0, [r0] + strb r4, [r0, #0x11f] + pop {r4, pc} + .align 2, 0 +_02336340: .4byte 0x0235AA5C + arm_func_end ov02_023362F0 + + arm_func_start ov02_02336344 +ov02_02336344: @ 0x02336344 + push {r4, lr} + mov r0, #0x20 + bl ov02_0234EBFC + cmp r0, #0 + beq _02336360 + mov r0, #0 + bl ov02_02336A18 +_02336360: + mov r0, #0x40 + bl ov02_0234EBFC + cmp r0, #0 + beq _02336378 + mov r0, #1 + bl ov02_02336A18 +_02336378: + mov r0, #0x10 + bl ov02_0234EBFC + cmp r0, #0 + beq _02336390 + mov r0, #2 + bl ov02_02336A18 +_02336390: + mov r0, #0x80 + bl ov02_0234EBFC + cmp r0, #0 + beq _023363A8 + mov r0, #3 + bl ov02_02336A18 +_023363A8: + mov r0, #1 + bl ov02_0234EBBC + cmp r0, #0 + beq _023364C0 + ldr r2, _02336564 @ =0x0235AA5C + ldr r0, [r2] + add r1, r0, #0x100 + ldrsb r4, [r1, #0x21] + cmp r4, #0x2f + bge _02336418 + ldrb r1, [r0, #0x124] + cmp r1, #0 + bne _023363E8 + mov r0, #9 + bl ov02_023480E0 + pop {r4, pc} +_023363E8: + ldrb r3, [r0, #0x11d] + ldr r1, _02336568 @ =0x02353318 + ldr r1, [r1, r3, lsl #2] + ldrb r1, [r1, r4] + strb r1, [r0, #0x11c] + ldr r0, [r2] + ldrb r0, [r0, #0x11d] + cmp r0, #1 + popne {r4, pc} + mov r0, #0 + bl ov02_023367F0 + pop {r4, pc} +_02336418: + sub r1, r4, #0x2f + cmp r1, #4 + bge _023364B0 + cmp r1, #3 + addls pc, pc, r1, lsl #2 + b _02336480 +_02336430: @ jump table + b _02336440 @ case 0 + b _02336448 @ case 1 + b _02336450 @ case 2 + b _02336468 @ case 3 +_02336440: + bl ov02_0233608C + pop {r4, pc} +_02336448: + bl ov02_023360BC + pop {r4, pc} +_02336450: + ldrb r1, [r0, #0x124] + cmp r1, #0 + bne _02336480 + mov r0, #9 + bl ov02_023480E0 + pop {r4, pc} +_02336468: + ldrb r1, [r0, #0x123] + cmp r1, #0 + bne _02336480 + mov r0, #9 + bl ov02_023480E0 + pop {r4, pc} +_02336480: + ldrb r0, [r0, #0x11d] + cmp r0, #1 + bne _02336494 + mov r0, #0 + bl ov02_023367F0 +_02336494: + ldr r1, _0233656C @ =0x02352580 + sub r2, r4, #0x2f + ldr r0, _02336564 @ =0x0235AA5C + ldrb r1, [r1, r2] + ldr r0, [r0] + strb r1, [r0, #0x11c] + pop {r4, pc} +_023364B0: + ldr r1, _02336570 @ =0x02352534 + sub r2, r4, #0x33 + ldrb r1, [r1, r2] + strb r1, [r0, #0x11c] +_023364C0: + mov r0, #2 + bl ov02_0234EBFC + cmp r0, #0 + beq _02336518 + ldr r0, _02336564 @ =0x0235AA5C + ldr r1, [r0] + ldrb r0, [r1, #0x123] + cmp r0, #0 + bne _0233650C + ldrb r0, [r1, #0x125] + cmp r0, #0 + popne {r4, pc} + mov r0, #9 + bl ov02_023480E0 + ldr r0, _02336564 @ =0x0235AA5C + mov r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x125] + pop {r4, pc} +_0233650C: + mov r0, #0x80 + strb r0, [r1, #0x11c] + b _02336538 +_02336518: + mov r0, #2 + bl ov02_0234EC3C + cmp r0, #0 + beq _02336538 + ldr r0, _02336564 @ =0x0235AA5C + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x125] +_02336538: + mov r0, #0x400 + bl ov02_0234EBBC + cmp r0, #0 + beq _0233654C + bl ov02_0233608C +_0233654C: + mov r0, #0x800 + bl ov02_0234EBBC + cmp r0, #0 + popeq {r4, pc} + bl ov02_023360BC + pop {r4, pc} + .align 2, 0 +_02336564: .4byte 0x0235AA5C +_02336568: .4byte 0x02353318 +_0233656C: .4byte 0x02352580 +_02336570: .4byte 0x02352534 + arm_func_end ov02_02336344 + + arm_func_start ov02_02336574 +ov02_02336574: @ 0x02336574 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x18 + ldr r3, _023367D4 @ =0x0235253C + mov sl, r1 + ldrb r5, [r3, #0x11] + ldrb r4, [r3, #0x12] + mov r1, #0xc + mul r1, sl, r1 + strb r5, [sp, #0x12] + strb r4, [sp, #0x13] + ldrb r4, [r3, #0x14] + ldrb r5, [r3, #0x13] + str r1, [sp, #4] + strb r4, [sp, #0x15] + strb r5, [sp, #0x14] + ldrb r1, [r3, #0x15] + mov sb, r2 + add r4, sp, #0x12 + strb r1, [sp, #0x16] + ldrb r1, [r4, sl] + ldrb r6, [r3, #0x16] + ldrb r2, [r3, #0x17] + cmp r1, #0 + ldr r5, [sp, #4] + strb r6, [sp, #0xd] + strb r2, [sp, #0xe] + ldrb r7, [r3, #0x18] + ldrb r2, [r3, #0x19] + mov r6, #0 + strb r7, [sp, #0xf] + strb r2, [sp, #0x10] + ldrb r1, [r3, #0x1a] + strb r1, [sp, #0x11] + ldrb r2, [r3, #0xc] + ldrb r1, [r3, #0xd] + strb r2, [sp, #8] + strb r1, [sp, #9] + ldrb r2, [r3, #0xe] + ldrb r1, [r3, #0xf] + strb r2, [sp, #0xa] + strb r1, [sp, #0xb] + ldrb r1, [r3, #0x10] + strb r1, [sp, #0xc] + ble _02336690 + ldr r1, _023367D8 @ =0x02352588 + ldr fp, _023367DC @ =0x0235AA5C + ldr lr, _023367E0 @ =0xC1FFFCFF + ldr r8, _023367E4 @ =0xFE00FF00 + and r7, sb, #0xff +_02336638: + ldr r2, [fp] + lsl r3, r5, #2 + add r2, r2, r5, lsl #2 + ldr r2, [r2, #0x30] + ldrh r3, [r1, r3] + ldr ip, [r2] + add r6, r6, #1 + and ip, ip, lr + str ip, [r2] + lsl r2, r3, #0x17 + ldr r3, [fp] + add r3, r3, r5, lsl #2 + ldr r3, [r3, #0x30] + add r5, r5, #1 + ldr ip, [r3] + and ip, ip, r8 + orr ip, ip, r7 + orr r2, ip, r2, lsr #7 + str r2, [r3] + ldrb r2, [r4, sl] + cmp r6, r2 + blt _02336638 +_02336690: + cmp sl, #4 + bge _023366D0 + ldr r1, _023367DC @ =0x0235AA5C + ldr r3, _023367D8 @ =0x02352588 + ldr r4, [r1] + ldr r1, [sp, #4] + mov r2, #2 + lsl r1, r1, #2 + str r2, [sp] + add r0, r4, r0, lsl #4 + add r2, r4, sl, lsl #2 + ldrh r1, [r3, r1] + ldr r3, [r2, #0x104] + ldr r0, [r0, sl, lsl #2] + mov r2, sb + bl ov02_0234E2BC +_023366D0: + add r0, sl, #3 + mov r1, #4 + bl FUN_02075C38 + add r3, sp, #0xd + ldrb r1, [r3, sl] + mov r5, #0 + cmp r1, #0 + ble _02336758 + ldr r2, _023367E8 @ =0x02352560 + lsl r1, r0, #2 + ldrh r0, [r2, r1] + ldr r8, _023367DC @ =0x0235AA5C + ldr r6, _023367E0 @ =0xC1FFFCFF + ldr r7, _023367E4 @ =0xFE00FF00 + and r4, sb, #0xff + lsl r2, r0, #0x17 +_02336710: + ldr r0, [r8] + add r5, r5, #1 + add r0, r1, r0 + ldr fp, [r0, #0xec] + ldr r0, [fp] + and r0, r0, r6 + str r0, [fp] + ldr r0, [r8] + add r0, r1, r0 + ldr r0, [r0, #0xec] + ldr fp, [r0] + and fp, fp, r7 + orr fp, fp, r4 + orr fp, fp, r2, lsr #7 + str fp, [r0] + ldrb r0, [r3, sl] + cmp r5, r0 + blt _02336710 +_02336758: + add r7, sp, #8 + ldrb r0, [r7, sl] + mov r8, #0 + cmp r0, #0 + addle sp, sp, #0x18 + pople {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r5, _023367EC @ =0x02352558 + ldr r4, _023367DC @ =0x0235AA5C + mvn r6, #0 + mov fp, r8 +_02336780: + ldr r0, [r4] + mov r1, r6 + add r0, r0, r8, lsl #2 + ldr r0, [r0, #0xfc] + mov r2, fp + mov r3, fp + bl ov02_0234D31C + ldr r0, [r4] + lsl r1, r8, #2 + add r0, r0, r8, lsl #2 + ldr r0, [r0, #0xfc] + ldrh r2, [r5, r1] + mov r1, r6 + mov r3, sb + bl ov02_0234D440 + ldrb r0, [r7, sl] + add r8, r8, #1 + cmp r8, r0 + blt _02336780 + add sp, sp, #0x18 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_023367D4: .4byte 0x0235253C +_023367D8: .4byte 0x02352588 +_023367DC: .4byte 0x0235AA5C +_023367E0: .4byte 0xC1FFFCFF +_023367E4: .4byte 0xFE00FF00 +_023367E8: .4byte 0x02352560 +_023367EC: .4byte 0x02352558 + arm_func_end ov02_02336574 + + arm_func_start ov02_023367F0 +ov02_023367F0: @ 0x023367F0 + push {r3, r4, r5, r6, r7, r8, sb, lr} + ldr r1, _0233686C @ =0x0235AA5C + mov r5, #0 + ldr r1, [r1] + mov r8, r0 + ldr sb, _02336870 @ =0x02352588 + mov r6, r5 + mov r4, r5 + mov r7, r5 + strb r8, [r1, #0x11d] +_02336818: + add r0, sb, r7, lsl #2 + ldrh r2, [r0, #2] + mov r0, r8 + mov r1, r4 + bl ov02_02336574 + add r4, r4, #1 + cmp r4, #4 + add r7, r7, #0xc + blt _02336818 + cmp r8, #2 + moveq r5, #1 + beq _02336850 + cmp r8, #1 + moveq r6, #1 +_02336850: + mov r1, r5 + mov r0, #0x2f + bl ov02_02336874 + mov r1, r6 + mov r0, #0x30 + bl ov02_02336874 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0233686C: .4byte 0x0235AA5C +_02336870: .4byte 0x02352588 + arm_func_end ov02_023367F0 + + arm_func_start ov02_02336874 +ov02_02336874: @ 0x02336874 + push {r3, lr} + cmp r0, #0 + poplt {r3, pc} + cmp r0, #0x2f + bge _023368C0 + ldr r2, _02336930 @ =0x0235AA5C + ldr r3, _02336934 @ =0x02352528 + ldr r2, [r2] + ldrb r1, [r3, r1] + add r0, r2, r0, lsl #2 + ldr r2, [r0, #0x30] + ldr r0, [r2] + bic r0, r0, #0xc00 + str r0, [r2] + ldrh r0, [r2, #4] + bic r0, r0, #0xf000 + orr r0, r0, r1, lsl #12 + strh r0, [r2, #4] + pop {r3, pc} +_023368C0: + sub ip, r0, #0x2f + cmp ip, #4 + bge _02336904 + ldr r0, _02336930 @ =0x0235AA5C + ldr r2, _02336934 @ =0x02352528 + ldr r3, [r0] + ldrb r0, [r2, r1] + add r1, r3, ip, lsl #2 + ldr r2, [r1, #0xec] + ldr r1, [r2] + bic r1, r1, #0xc00 + str r1, [r2] + ldrh r1, [r2, #4] + bic r1, r1, #0xf000 + orr r0, r1, r0, lsl #12 + strh r0, [r2, #4] + pop {r3, pc} +_02336904: + ldr r2, _02336930 @ =0x0235AA5C + ldr r3, _02336938 @ =0x0235252C + ldr r2, [r2] + sub r0, r0, #0x33 + add r0, r2, r0, lsl #2 + ldrb r3, [r3, r1] + ldr r0, [r0, #0xfc] + mvn r1, #0 + mov r2, #0 + bl ov02_0234D3C0 + pop {r3, pc} + .align 2, 0 +_02336930: .4byte 0x0235AA5C +_02336934: .4byte 0x02352528 +_02336938: .4byte 0x0235252C + arm_func_end ov02_02336874 + + arm_func_start ov02_0233693C +ov02_0233693C: @ 0x0233693C + push {r4, lr} + ldr r0, _02336A0C @ =0x0235AA5C + ldr r1, [r0] + add r0, r1, #0x100 + ldrsb r0, [r0, #0x21] + sub r0, r0, #0x2f + cmp r0, #5 + addls pc, pc, r0, lsl #2 + b _023369A0 +_02336960: @ jump table + b _02336978 @ case 0 + b _02336980 @ case 1 + b _02336988 @ case 2 + b _02336990 @ case 3 + b _02336998 @ case 4 + b _02336998 @ case 5 +_02336978: + mov r4, #0x42 + b _023369A4 +_02336980: + mov r4, #0x41 + b _023369A4 +_02336988: + mov r4, #0x43 + b _023369A4 +_02336990: + mov r4, #0x41 + b _023369A4 +_02336998: + mov r4, #0x45 + b _023369A4 +_023369A0: + mov r4, #0x40 +_023369A4: + ldr r0, [r1, #0x114] + mov r1, #0 + bl ov02_0234D308 + mov r2, r0 + mov r1, r4 + mov r0, #0 + bl ov02_0234D618 + ldr r0, _02336A0C @ =0x0235AA5C + mvn r1, #0 + ldr r0, [r0] + mov r2, #2 + ldr r0, [r0, #0x114] + bl ov02_0234D530 + ldr r0, _02336A0C @ =0x0235AA5C + ldr r2, _02336A10 @ =0x02352644 + ldr r3, [r0] + mvn r1, #0 + add r0, r3, #0x100 + ldrsb ip, [r0, #0x21] + ldr r0, [r3, #0x114] + ldr r3, _02336A14 @ =0x02352646 + lsl ip, ip, #2 + ldrh r2, [r2, ip] + ldrh r3, [r3, ip] + bl ov02_0234D440 + pop {r4, pc} + .align 2, 0 +_02336A0C: .4byte 0x0235AA5C +_02336A10: .4byte 0x02352644 +_02336A14: .4byte 0x02352646 + arm_func_end ov02_0233693C + + arm_func_start ov02_02336A18 +ov02_02336A18: @ 0x02336A18 + push {r3, lr} + ldr r2, _02336E48 @ =0x0235AA5C + ldr r3, _02336E4C @ =0x02352718 + ldr ip, [r2] + add r1, ip, #0x100 + ldrsb lr, [r1, #0x21] + add r1, r3, lr, lsl #2 + ldrsb r1, [r0, r1] + strb r1, [ip, #0x121] + ldr r1, [r2] + add r2, r1, #0x100 + ldrsb r3, [r2, #0x21] + cmp r3, #0x2e + cmpeq r0, #3 + strbeq lr, [r1, #0x120] + beq _02336E38 + cmp r3, #0x33 + bne _02336A70 + cmp r0, #1 + cmpne r0, #3 + strbeq lr, [r1, #0x120] + beq _02336E38 +_02336A70: + cmp r3, #0x34 + bne _02336A90 + cmp r0, #1 + cmpne r0, #3 + bne _02336A90 + cmp lr, #0x2e + strbne lr, [r1, #0x120] + b _02336E38 +_02336A90: + mvn r2, #0 + cmp r3, r2 + bne _02336AC0 + add r0, r1, #0x100 + ldrsb r0, [r0, #0x20] + cmp r0, #0x23 + cmpne r0, #0x32 + moveq r0, #0x23 + strbeq r0, [r1, #0x121] + movne r0, #0x22 + strbne r0, [r1, #0x121] + b _02336E38 +_02336AC0: + sub r0, r2, #1 + cmp r3, r0 + bne _02336B80 + add r0, r1, #0x100 + ldrsb r0, [r0, #0x20] + cmp r0, #0x26 + bgt _02336B18 + bge _02336B50 + cmp r0, #5 + bgt _02336B0C + cmp r0, #0 + addge pc, pc, r0, lsl #2 + b _02336B74 +_02336AF4: @ jump table + b _02336B38 @ case 0 + b _02336B44 @ case 1 + b _02336B74 @ case 2 + b _02336B50 @ case 3 + b _02336B5C @ case 4 + b _02336B68 @ case 5 +_02336B0C: + cmp r0, #0x24 + beq _02336B44 + b _02336B74 +_02336B18: + cmp r0, #0x28 + bgt _02336B30 + bge _02336B68 + cmp r0, #0x27 + beq _02336B5C + b _02336B74 +_02336B30: + cmp r0, #0x31 + bne _02336B74 +_02336B38: + mov r0, #0x31 + strb r0, [r1, #0x121] + b _02336E38 +_02336B44: + mov r0, #0x24 + strb r0, [r1, #0x121] + b _02336E38 +_02336B50: + mov r0, #0x26 + strb r0, [r1, #0x121] + b _02336E38 +_02336B5C: + mov r0, #0x27 + strb r0, [r1, #0x121] + b _02336E38 +_02336B68: + mov r0, #0x28 + strb r0, [r1, #0x121] + b _02336E38 +_02336B74: + mov r0, #0x25 + strb r0, [r1, #0x121] + b _02336E38 +_02336B80: + sub r0, r2, #2 + cmp r3, r0 + bne _02336C78 + add r0, r1, #0x100 + ldrsb r0, [r0, #0x20] + cmp r0, #0x23 + bgt _02336BF0 + bge _02336C60 + cmp r0, #0xb + bgt _02336BE4 + cmp r0, #0 + addge pc, pc, r0, lsl #2 + b _02336C6C +_02336BB4: @ jump table + b _02336C6C @ case 0 + b _02336C6C @ case 1 + b _02336C6C @ case 2 + b _02336C6C @ case 3 + b _02336C6C @ case 4 + b _02336C6C @ case 5 + b _02336C30 @ case 6 + b _02336C3C @ case 7 + b _02336C6C @ case 8 + b _02336C48 @ case 9 + b _02336C54 @ case 10 + b _02336C60 @ case 11 +_02336BE4: + cmp r0, #0x22 + beq _02336C60 + b _02336C6C +_02336BF0: + cmp r0, #0x2a + bgt _02336C08 + bge _02336C3C + cmp r0, #0x29 + beq _02336C30 + b _02336C6C +_02336C08: + cmp r0, #0x32 + bgt _02336C6C + cmp r0, #0x2c + blt _02336C6C + beq _02336C48 + cmp r0, #0x2d + beq _02336C54 + cmp r0, #0x32 + beq _02336C60 + b _02336C6C +_02336C30: + mov r0, #0x29 + strb r0, [r1, #0x121] + b _02336E38 +_02336C3C: + mov r0, #0x2a + strb r0, [r1, #0x121] + b _02336E38 +_02336C48: + mov r0, #0x2c + strb r0, [r1, #0x121] + b _02336E38 +_02336C54: + mov r0, #0x2d + strb r0, [r1, #0x121] + b _02336E38 +_02336C60: + mov r0, #0x2e + strb r0, [r1, #0x121] + b _02336E38 +_02336C6C: + mov r0, #0x2b + strb r0, [r1, #0x121] + b _02336E38 +_02336C78: + sub r0, r2, #3 + cmp r3, r0 + bne _02336D38 + add r0, r1, #0x100 + ldrsb r0, [r0, #0x20] + cmp r0, #0x26 + bgt _02336CD0 + bge _02336D08 + cmp r0, #5 + bgt _02336CC4 + cmp r0, #0 + addge pc, pc, r0, lsl #2 + b _02336D2C +_02336CAC: @ jump table + b _02336CF0 @ case 0 + b _02336CFC @ case 1 + b _02336D2C @ case 2 + b _02336D08 @ case 3 + b _02336D14 @ case 4 + b _02336D20 @ case 5 +_02336CC4: + cmp r0, #0x24 + beq _02336CFC + b _02336D2C +_02336CD0: + cmp r0, #0x28 + bgt _02336CE8 + bge _02336D20 + cmp r0, #0x27 + beq _02336D14 + b _02336D2C +_02336CE8: + cmp r0, #0x31 + bne _02336D2C +_02336CF0: + mov r0, #0 + strb r0, [r1, #0x121] + b _02336E38 +_02336CFC: + mov r0, #1 + strb r0, [r1, #0x121] + b _02336E38 +_02336D08: + mov r0, #3 + strb r0, [r1, #0x121] + b _02336E38 +_02336D14: + mov r0, #4 + strb r0, [r1, #0x121] + b _02336E38 +_02336D20: + mov r0, #5 + strb r0, [r1, #0x121] + b _02336E38 +_02336D2C: + mov r0, #2 + strb r0, [r1, #0x121] + b _02336E38 +_02336D38: + sub r0, r2, #4 + cmp r3, r0 + bne _02336E38 + add r0, r1, #0x100 + ldrsb r0, [r0, #0x20] + cmp r0, #0x23 + bgt _02336DA8 + bge _02336E24 + cmp r0, #0xb + bgt _02336D9C + cmp r0, #0 + addge pc, pc, r0, lsl #2 + b _02336E30 +_02336D6C: @ jump table + b _02336E30 @ case 0 + b _02336E30 @ case 1 + b _02336E30 @ case 2 + b _02336E30 @ case 3 + b _02336E30 @ case 4 + b _02336E30 @ case 5 + b _02336DE8 @ case 6 + b _02336DF4 @ case 7 + b _02336E30 @ case 8 + b _02336E00 @ case 9 + b _02336E0C @ case 10 + b _02336E18 @ case 11 +_02336D9C: + cmp r0, #0x22 + beq _02336E18 + b _02336E30 +_02336DA8: + cmp r0, #0x2a + bgt _02336DC0 + bge _02336DF4 + cmp r0, #0x29 + beq _02336DE8 + b _02336E30 +_02336DC0: + cmp r0, #0x32 + bgt _02336E30 + cmp r0, #0x2c + blt _02336E30 + beq _02336E00 + cmp r0, #0x2d + beq _02336E0C + cmp r0, #0x32 + beq _02336E24 + b _02336E30 +_02336DE8: + mov r0, #6 + strb r0, [r1, #0x121] + b _02336E38 +_02336DF4: + mov r0, #7 + strb r0, [r1, #0x121] + b _02336E38 +_02336E00: + mov r0, #9 + strb r0, [r1, #0x121] + b _02336E38 +_02336E0C: + mov r0, #0xa + strb r0, [r1, #0x121] + b _02336E38 +_02336E18: + mov r0, #0xb + strb r0, [r1, #0x121] + b _02336E38 +_02336E24: + mov r0, #0x32 + strb r0, [r1, #0x121] + b _02336E38 +_02336E30: + mov r0, #8 + strb r0, [r1, #0x121] +_02336E38: + bl ov02_0233693C + mov r0, #8 + bl ov02_023480E0 + pop {r3, pc} + .align 2, 0 +_02336E48: .4byte 0x0235AA5C +_02336E4C: .4byte 0x02352718 + arm_func_end ov02_02336A18 + + arm_func_start ov02_02336E50 +ov02_02336E50: @ 0x02336E50 + push {r4, lr} + sub sp, sp, #8 + ldr r1, _02336EC8 @ =0x0235AA5C + mov r4, r0 + ldr r0, [r1] + mov r1, #0 + ldr r0, [r0, #0xfc] + bl ov02_0234D308 + ldr r3, [r0] + ldr r1, _02336EC8 @ =0x0235AA5C + ldr r0, _02336ECC @ =0x01FF0000 + and r2, r3, #0xff + and r0, r3, r0 + lsr r3, r0, #0x10 + ldr r1, [r1] + add r2, r2, #0xc + ldrb r0, [r1, #0x11d] + str r2, [sp] + mov r1, #4 + str r3, [sp, #4] + bl ov02_02336574 + ldr r0, [sp] + cmp r0, #0xc0 + addlt sp, sp, #8 + poplt {r4, pc} + ldr r1, _02336ED0 @ =ov02_02336ED4 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_02336EC8: .4byte 0x0235AA5C +_02336ECC: .4byte 0x01FF0000 +_02336ED0: .4byte ov02_02336ED4 + arm_func_end ov02_02336E50 + + arm_func_start ov02_02336ED4 +ov02_02336ED4: @ 0x02336ED4 + push {r4, lr} + sub sp, sp, #8 + ldr r1, _02336F3C @ =0x0235AA5C + ldr r2, _02336F40 @ =0x01FF0000 + ldr r3, [r1] + mov r4, r0 + ldr r1, [r3, #0xc0] + ldrb r0, [r3, #0x11d] + ldr ip, [r1] + mov r1, #3 + and r3, ip, #0xff + and ip, ip, r2 + add r2, r3, #0xc + lsr r3, ip, #0x10 + str r2, [sp] + str r3, [sp, #4] + bl ov02_02336574 + ldr r0, [sp] + cmp r0, #0xc0 + addlt sp, sp, #8 + poplt {r4, pc} + ldr r1, _02336F44 @ =ov02_02336F48 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_02336F3C: .4byte 0x0235AA5C +_02336F40: .4byte 0x01FF0000 +_02336F44: .4byte ov02_02336F48 + arm_func_end ov02_02336ED4 + + arm_func_start ov02_02336F48 +ov02_02336F48: @ 0x02336F48 + push {r4, lr} + sub sp, sp, #8 + ldr r1, _02336FB0 @ =0x0235AA5C + ldr r2, _02336FB4 @ =0x01FF0000 + ldr r3, [r1] + mov r4, r0 + ldr r1, [r3, #0x90] + ldrb r0, [r3, #0x11d] + ldr ip, [r1] + mov r1, #2 + and r3, ip, #0xff + and ip, ip, r2 + add r2, r3, #0xc + lsr r3, ip, #0x10 + str r2, [sp] + str r3, [sp, #4] + bl ov02_02336574 + ldr r0, [sp] + cmp r0, #0xc0 + addlt sp, sp, #8 + poplt {r4, pc} + ldr r1, _02336FB8 @ =ov02_02336FBC + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_02336FB0: .4byte 0x0235AA5C +_02336FB4: .4byte 0x01FF0000 +_02336FB8: .4byte ov02_02336FBC + arm_func_end ov02_02336F48 + + arm_func_start ov02_02336FBC +ov02_02336FBC: @ 0x02336FBC + push {r4, lr} + sub sp, sp, #8 + ldr r1, _02337024 @ =0x0235AA5C + ldr r2, _02337028 @ =0x01FF0000 + ldr r3, [r1] + mov r4, r0 + ldr r1, [r3, #0x60] + ldrb r0, [r3, #0x11d] + ldr ip, [r1] + mov r1, #1 + and r3, ip, #0xff + and ip, ip, r2 + add r2, r3, #0xc + lsr r3, ip, #0x10 + str r2, [sp] + str r3, [sp, #4] + bl ov02_02336574 + ldr r0, [sp] + cmp r0, #0xc0 + addlt sp, sp, #8 + poplt {r4, pc} + ldr r1, _0233702C @ =ov02_02337030 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_02337024: .4byte 0x0235AA5C +_02337028: .4byte 0x01FF0000 +_0233702C: .4byte ov02_02337030 + arm_func_end ov02_02336FBC + + arm_func_start ov02_02337030 +ov02_02337030: @ 0x02337030 + push {r4, lr} + sub sp, sp, #8 + ldr r1, _02337098 @ =0x0235AA5C + ldr r2, _0233709C @ =0x01FF0000 + ldr r3, [r1] + mov r4, r0 + ldr r1, [r3, #0x30] + ldrb r0, [r3, #0x11d] + ldr ip, [r1] + mov r1, #0 + and r3, ip, #0xff + and ip, ip, r2 + add r2, r3, #0xc + lsr r3, ip, #0x10 + str r2, [sp] + str r3, [sp, #4] + bl ov02_02336574 + ldr r0, [sp] + cmp r0, #0xc0 + addlt sp, sp, #8 + poplt {r4, pc} + ldr r1, _023370A0 @ =ov02_023370A4 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_02337098: .4byte 0x0235AA5C +_0233709C: .4byte 0x01FF0000 +_023370A0: .4byte ov02_023370A4 + arm_func_end ov02_02337030 + + arm_func_start ov02_023370A4 +ov02_023370A4: @ 0x023370A4 + push {r3, r4, r5, r6, r7, lr} + mov r1, r0 + mov r0, #0 + bl ov02_0234FB40 + mov r5, #0 + ldr r7, _0233717C @ =0x0235AA5C + mov r4, r5 +_023370C0: + mov r6, r4 +_023370C4: + ldr r0, [r7] + add r0, r0, r5, lsl #4 + ldr r0, [r0, r6, lsl #2] + bl ov02_0234DD9C + cmp r5, #0 + bne _023370EC + ldr r0, [r7] + add r0, r0, r6, lsl #2 + ldr r0, [r0, #0x104] + bl ov02_0234D288 +_023370EC: + add r6, r6, #1 + cmp r6, #4 + blt _023370C4 + add r5, r5, #1 + cmp r5, #3 + blt _023370C0 + ldr r4, _0233717C @ =0x0235AA5C + mov r5, #0 +_0233710C: + ldr r0, [r4] + add r0, r0, r5, lsl #2 + ldr r0, [r0, #0xfc] + bl ov02_0234D288 + add r5, r5, #1 + cmp r5, #2 + blt _0233710C + ldr r4, _0233717C @ =0x0235AA5C + mov r5, #0 +_02337130: + ldr r0, [r4] + add r0, r0, r5, lsl #2 + ldr r0, [r0, #0xec] + bl ov02_0234F2C0 + add r5, r5, #1 + cmp r5, #4 + blt _02337130 + ldr r4, _0233717C @ =0x0235AA5C + mov r5, #0 +_02337154: + ldr r0, [r4] + add r0, r0, r5, lsl #2 + ldr r0, [r0, #0x30] + bl ov02_0234F2C0 + add r5, r5, #1 + cmp r5, #0x2f + blt _02337154 + ldr r0, _02337180 @ =0x0235AA5C + bl ov02_0234E7D8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0233717C: .4byte 0x0235AA5C +_02337180: .4byte 0x0235AA5C + arm_func_end ov02_023370A4 + + arm_func_start ov02_02337184 +ov02_02337184: @ 0x02337184 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x24 + ldr r0, _023374A4 @ =0x02352804 + mov r3, #0x1c + ldrh r5, [r0, #0x20] + ldrh r4, [r0, #0x22] + mov r2, #0x14 + mov r0, #0x6c + mov r1, #4 + strh r5, [sp, #0x1c] + strh r4, [sp, #0x1e] + strh r3, [sp, #0x20] + strh r2, [sp, #0x22] + bl ov02_0234E7B4 + ldr r8, _023374A8 @ =0x0235AA60 + mov r6, #0 + mov r1, #0x1f + str r0, [r8] + strb r1, [r0, #0x60] + ldr r0, [r8] + mov r1, #1 + strb r6, [r0, #0x63] + ldr r0, [r8] + ldr r7, _023374AC @ =0xC1FFFCFF + strb r1, [r0, #0x66] + ldr r0, [r8] + mov r5, r6 + strb r1, [r0, #0x67] + ldr r0, [r8] + mov r4, #0x36 + strb r1, [r0, #0x68] +_02337200: + mov r0, r5 + mov r1, r4 + bl ov02_0234D6AC + ldr r1, [r8] + add r1, r1, r6, lsl #2 + str r0, [r1, #0x10] + ldr r0, [r8] + add r0, r0, r6, lsl #2 + ldr r1, [r0, #0x10] + ldr r0, [r1] + and r0, r0, r7 + orr r0, r0, #0x200 + str r0, [r1] + ldr r0, [r8] + add r0, r0, r6, lsl #2 + ldr r1, [r0, #0x10] + add r6, r6, #1 + ldrh r0, [r1, #4] + cmp r6, #0xa + bic r0, r0, #0xc00 + orr r0, r0, #0xc00 + strh r0, [r1, #4] + blt _02337200 + mov r6, #0 + ldr r5, _023374B0 @ =0x023527F0 + ldr r8, _023374A8 @ =0x0235AA60 + ldr r7, _023374AC @ =0xC1FFFCFF + mov r4, r6 +_02337270: + ldrb r1, [r5], #1 + mov r0, r4 + bl ov02_0234D6AC + ldr r1, [r8] + add r1, r1, r6, lsl #2 + str r0, [r1, #0x38] + ldr r0, [r8] + add r0, r0, r6, lsl #2 + ldr r1, [r0, #0x38] + ldr r0, [r1] + and r0, r0, r7 + orr r0, r0, #0x200 + str r0, [r1] + ldr r0, [r8] + add r0, r0, r6, lsl #2 + ldr r1, [r0, #0x38] + add r6, r6, #1 + ldrh r0, [r1, #4] + cmp r6, #2 + bic r0, r0, #0xc00 + orr r0, r0, #0xc00 + strh r0, [r1, #4] + blt _02337270 + mov sl, #0 + ldr sb, _023374B4 @ =0x023527F4 + ldr r4, _023374A8 @ =0x0235AA60 + mov r8, sl + mov r7, #1 + mvn r6, #0 + mov r5, #0x200 + mov fp, sl +_023372EC: + ldrb r1, [sb], #1 + mov r0, r8 + mov r2, r7 + bl ov02_0234D6D8 + ldr r2, [r4] + mov r1, r6 + add r2, r2, sl, lsl #2 + str r0, [r2, #0x40] + ldr r0, [r4] + mov r2, r5 + add r0, r0, sl, lsl #2 + ldr r0, [r0, #0x40] + mov r3, fp + bl ov02_0234D31C + ldr r0, [r4] + mov r1, r6 + add r0, r0, sl, lsl #2 + ldr r0, [r0, #0x40] + mov r2, #3 + bl ov02_0234D530 + add sl, sl, #1 + cmp sl, #2 + blt _023372EC + mov sl, #0 + str sl, [sp, #0x10] + strh sl, [sp, #0x16] +_02337354: + add r1, sp, #0x18 + mov r0, #0 + str r1, [sp] + mov r3, r0 + mov r1, #0xc + mov r2, #4 + str r0, [sp, #4] + bl ov02_0234DCC0 + ldr fp, _023374A8 @ =0x0235AA60 + mov sb, #0 + ldr r1, [fp] + ldr r8, [sp, #0x10] + ldr r7, _023374B8 @ =0x0235283C + str r0, [r1, sl, lsl #2] + strh sb, [sp, #0x1c] + mov r6, #2 + mov r5, #0x480 + add r4, sp, #0x14 +_0233739C: + lsl r0, r8, #1 + ldrh r2, [r7, r0] + ldrh r0, [sp, #0x22] + ldrh r1, [sp, #0x1c] + strh r2, [sp, #0x14] + stm sp, {r0, r6} + str r5, [sp, #8] + str r4, [sp, #0xc] + ldr r0, [fp] + ldrh r2, [sp, #0x1e] + ldrh r3, [sp, #0x20] + ldr r0, [r0, sl, lsl #2] + bl ov02_0234E1E8 + ldrh r0, [sp, #0x1c] + add sb, sb, #1 + cmp sb, #3 + add r0, r0, #0x20 + strh r0, [sp, #0x1c] + add r8, r8, #1 + blt _0233739C + mov r0, #0 + ldr r1, [sp, #0x18] + mov r2, r0 + bl ov02_0234D12C + ldr r1, [sp, #0x10] + ldr r2, _023374A8 @ =0x0235AA60 + add r1, r1, #3 + str r1, [sp, #0x10] + ldr r1, [r2] + add r1, r1, sl, lsl #2 + add sl, sl, #1 + str r0, [r1, #0x48] + cmp sl, #4 + blt _02337354 + mov r0, #0 + arm_func_end ov02_02337184 + + arm_func_start ov02_02337428 +ov02_02337428: @ 0x02337428 + mov r1, #0x44 + mov r2, #1 + bl ov02_0234D6D8 + ldr r3, _023374A8 @ =0x0235AA60 + mvn r1, #0 + ldr r4, [r3] + mov r2, #0x200 + str r0, [r4, #0x58] + ldr r0, [r3] + mov r3, #0 + ldr r0, [r0, #0x58] + bl ov02_0234D31C + ldr r0, _023374A8 @ =0x0235AA60 + mvn r1, #0 + ldr r0, [r0] + mov r2, #2 + ldr r0, [r0, #0x58] + bl ov02_0234D530 + mov r0, #0 + ldr r1, _023374BC @ =ov02_02337560 + mov r2, r0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r2, _023374A8 @ =0x0235AA60 + mov r1, #0xc0 + ldr r2, [r2] + str r0, [r2, #0x5c] + mov r0, #0 + bl ov02_02337F80 + add sp, sp, #0x24 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_023374A4: .4byte 0x02352804 +_023374A8: .4byte 0x0235AA60 +_023374AC: .4byte 0xC1FFFCFF +_023374B0: .4byte 0x023527F0 +_023374B4: .4byte 0x023527F4 +_023374B8: .4byte 0x0235283C +_023374BC: .4byte ov02_02337560 + arm_func_end ov02_02337428 + + arm_func_start ov02_023374C0 +ov02_023374C0: @ 0x023374C0 + push {r3, lr} + ldr r0, _023374EC @ =0x0235AA60 + ldr r0, [r0] + ldr r0, [r0, #0x58] + bl ov02_0234D288 + ldr r0, _023374EC @ =0x0235AA60 + ldr r1, _023374F0 @ =ov02_023383E0 + ldr r0, [r0] + ldr r0, [r0, #0x5c] + bl ov02_0234FB38 + pop {r3, pc} + .align 2, 0 +_023374EC: .4byte 0x0235AA60 +_023374F0: .4byte ov02_023383E0 + arm_func_end ov02_023374C0 + + arm_func_start ov02_023374F4 +ov02_023374F4: @ 0x023374F4 + ldr r0, _02337504 @ =0x0235AA60 + ldr r0, [r0] + ldrb r0, [r0, #0x60] + bx lr + .align 2, 0 +_02337504: .4byte 0x0235AA60 + arm_func_end ov02_023374F4 + + arm_func_start ov02_02337508 +ov02_02337508: @ 0x02337508 + ldr r1, _02337518 @ =0x0235AA60 + ldr r1, [r1] + strb r0, [r1, #0x66] + bx lr + .align 2, 0 +_02337518: .4byte 0x0235AA60 + arm_func_end ov02_02337508 + + arm_func_start ov02_0233751C +ov02_0233751C: @ 0x0233751C + ldr r1, _0233752C @ =0x0235AA60 + ldr r1, [r1] + strb r0, [r1, #0x67] + bx lr + .align 2, 0 +_0233752C: .4byte 0x0235AA60 + arm_func_end ov02_0233751C + + arm_func_start ov02_02337530 +ov02_02337530: @ 0x02337530 + ldr r1, _02337540 @ =0x0235AA60 + ldr r1, [r1] + strb r0, [r1, #0x68] + bx lr + .align 2, 0 +_02337540: .4byte 0x0235AA60 + arm_func_end ov02_02337530 + + arm_func_start ov02_02337544 +ov02_02337544: @ 0x02337544 + ldr r0, _0233755C @ =0x0235AA60 + ldr r0, [r0] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + bx lr + .align 2, 0 +_0233755C: .4byte 0x0235AA60 + arm_func_end ov02_02337544 + + arm_func_start ov02_02337560 +ov02_02337560: @ 0x02337560 + push {r4, lr} + sub sp, sp, #8 + ldr r2, _023375D8 @ =0x0235AA60 + mov r4, r0 + ldr r2, [r2] + ldr r1, _023375DC @ =0x01FF0000 + ldr r0, [r2, #0x10] + ldr r0, [r0] + and r2, r0, r1 + and r0, r0, #0xff + sub r1, r0, #0xc + lsr r0, r2, #0x10 + str r0, [sp, #4] + str r1, [sp] + cmp r1, #0x4c + mov r0, #0 + ble _023375B0 + bl ov02_02337F80 + add sp, sp, #8 + pop {r4, pc} +_023375B0: + mov r1, #0x4c + bl ov02_02337F80 + mov r0, #1 + mov r1, #0xc0 + bl ov02_02337F80 + ldr r1, _023375E0 @ =ov02_023375E4 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_023375D8: .4byte 0x0235AA60 +_023375DC: .4byte 0x01FF0000 +_023375E0: .4byte ov02_023375E4 + arm_func_end ov02_02337560 + + arm_func_start ov02_023375E4 +ov02_023375E4: @ 0x023375E4 + push {r4, lr} + sub sp, sp, #8 + ldr r2, _0233765C @ =0x0235AA60 + mov r4, r0 + ldr r2, [r2] + ldr r1, _02337660 @ =0x01FF0000 + ldr r0, [r2, #0x1c] + ldr r0, [r0] + and r2, r0, r1 + and r0, r0, #0xff + sub r1, r0, #0xc + lsr r0, r2, #0x10 + str r0, [sp, #4] + str r1, [sp] + cmp r1, #0x63 + mov r0, #1 + ble _02337634 + bl ov02_02337F80 + add sp, sp, #8 + pop {r4, pc} +_02337634: + mov r1, #0x63 + bl ov02_02337F80 + mov r0, #2 + mov r1, #0xc0 + bl ov02_02337F80 + ldr r1, _02337664 @ =ov02_02337668 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_0233765C: .4byte 0x0235AA60 +_02337660: .4byte 0x01FF0000 +_02337664: .4byte ov02_02337668 + arm_func_end ov02_023375E4 + + arm_func_start ov02_02337668 +ov02_02337668: @ 0x02337668 + push {r4, lr} + sub sp, sp, #8 + ldr r2, _023376E0 @ =0x0235AA60 + mov r4, r0 + ldr r2, [r2] + ldr r1, _023376E4 @ =0x01FF0000 + ldr r0, [r2, #0x28] + ldr r0, [r0] + and r2, r0, r1 + and r0, r0, #0xff + sub r1, r0, #0xc + lsr r0, r2, #0x10 + str r0, [sp, #4] + str r1, [sp] + cmp r1, #0x7a + mov r0, #2 + ble _023376B8 + bl ov02_02337F80 + add sp, sp, #8 + pop {r4, pc} +_023376B8: + mov r1, #0x7a + bl ov02_02337F80 + mov r0, #3 + mov r1, #0xc0 + bl ov02_02337F80 + ldr r1, _023376E8 @ =ov02_023376EC + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_023376E0: .4byte 0x0235AA60 +_023376E4: .4byte 0x01FF0000 +_023376E8: .4byte ov02_023376EC + arm_func_end ov02_02337668 + + arm_func_start ov02_023376EC +ov02_023376EC: @ 0x023376EC + push {r4, lr} + sub sp, sp, #8 + ldr r2, _02337764 @ =0x0235AA60 + mov r4, r0 + ldr r2, [r2] + ldr r1, _02337768 @ =0x01FF0000 + ldr r0, [r2, #0x34] + ldr r0, [r0] + and r2, r0, r1 + and r0, r0, #0xff + sub r1, r0, #0xc + lsr r0, r2, #0x10 + str r0, [sp, #4] + str r1, [sp] + cmp r1, #0x91 + mov r0, #3 + ble _0233773C + bl ov02_02337F80 + add sp, sp, #8 + pop {r4, pc} +_0233773C: + mov r1, #0x91 + bl ov02_02337F80 + mov r0, #4 + mov r1, #0xc0 + bl ov02_02337F80 + ldr r1, _0233776C @ =ov02_02337770 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_02337764: .4byte 0x0235AA60 +_02337768: .4byte 0x01FF0000 +_0233776C: .4byte ov02_02337770 + arm_func_end ov02_023376EC + + arm_func_start ov02_02337770 +ov02_02337770: @ 0x02337770 + push {r4, lr} + sub sp, sp, #8 + ldr r1, _023377DC @ =0x0235AA60 + mov r4, r0 + ldr r0, [r1] + add r2, sp, #4 + ldr r0, [r0, #0x40] + add r3, sp, #0 + mov r1, #0 + bl ov02_0234D590 + ldr r0, [sp] + sub r1, r0, #0xc + str r1, [sp] + cmp r1, #0xaa + mov r0, #4 + ble _023377BC + bl ov02_02337F80 + add sp, sp, #8 + pop {r4, pc} +_023377BC: + mov r1, #0xaa + bl ov02_02337F80 + bl ov02_023382A8 + ldr r1, _023377E0 @ =0x023377E4 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_023377DC: .4byte 0x0235AA60 +_023377E0: .4byte 0x023377E4 + arm_func_end ov02_02337770 +_023377E4: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x03, 0x00, 0x00, 0xEB, 0x79, 0x00, 0x00, 0xEB + .byte 0xEC, 0x00, 0x00, 0xEB, 0x7A, 0x01, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_023377FC +ov02_023377FC: @ 0x023377FC + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + ldr r0, _023379B8 @ =0x02352F34 + bl ov02_0234ED04 + cmp r0, #0 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, pc} + ldr r0, _023379BC @ =0x0235AA60 + mvn r1, #0 + ldr r0, [r0] + ldr r7, _023379C0 @ =0x02352856 + ldr r6, _023379C4 @ =0x02352804 + strb r1, [r0, #0x61] + mov r4, #0 + add r5, sp, #0 +_02337838: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl ov02_0234E39C + mov r0, r5 + bl ov02_0234ED04 + cmp r0, #0 + beq _02337898 + ldr r0, _023379BC @ =0x0235AA60 + ldr r0, [r0] + ldrb r0, [r0, #0x67] + cmp r0, #0 + bne _0233787C + mov r0, #9 + bl ov02_023480E0 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_0233787C: + mov r0, #0 + bl ov02_023480E0 + ldr r0, _023379BC @ =0x0235AA60 + add sp, sp, #8 + ldr r0, [r0] + strb r4, [r0, #0x61] + pop {r3, r4, r5, r6, r7, pc} +_02337898: + add r4, r4, #1 + cmp r4, #0xa + add r7, r7, #4 + blt _02337838 + ldr r7, _023379C8 @ =0x0235282C + ldr r6, _023379CC @ =0x0235280C + mov r4, #0 + add r5, sp, #0 +_023378B8: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl ov02_0234E39C + mov r0, r5 + bl ov02_0234ED04 + cmp r0, #0 + beq _02337940 + cmp r4, #0 + bne _023378F4 + ldr r0, _023379BC @ =0x0235AA60 + ldr r0, [r0] + ldrb r0, [r0, #0x66] + cmp r0, #0 + beq _02337910 +_023378F4: + cmp r4, #1 + bne _02337920 + ldr r0, _023379BC @ =0x0235AA60 + ldr r0, [r0] + ldrb r0, [r0, #0x68] + cmp r0, #0 + bne _02337920 +_02337910: + mov r0, #9 + arm_func_end ov02_023377FC + + arm_func_start ov02_02337914 +ov02_02337914: @ 0x02337914 + bl ov02_023480E0 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_02337920: + mov r0, #0 + bl ov02_023480E0 + ldr r0, _023379BC @ =0x0235AA60 + add r1, r4, #0xa + ldr r0, [r0] + add sp, sp, #8 + strb r1, [r0, #0x61] + pop {r3, r4, r5, r6, r7, pc} +_02337940: + add r4, r4, #1 + cmp r4, #2 + add r7, r7, #4 + blt _023378B8 + ldr r6, _023379D0 @ =0x02352834 + ldr r5, _023379D4 @ =0x02352810 + mov r7, #0 + add r4, sp, #0 +_02337960: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov02_0234E39C + mov r0, r4 + bl ov02_0234ED04 + cmp r0, #0 + beq _023379A0 + mov r0, #0 + bl ov02_023480E0 + ldr r0, _023379BC @ =0x0235AA60 + add r1, r7, #0xc + ldr r0, [r0] + add sp, sp, #8 + strb r1, [r0, #0x61] + pop {r3, r4, r5, r6, r7, pc} +_023379A0: + add r7, r7, #1 + cmp r7, #2 + add r6, r6, #4 + blt _02337960 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_023379B8: .4byte 0x02352F34 +_023379BC: .4byte 0x0235AA60 +_023379C0: .4byte 0x02352856 +_023379C4: .4byte 0x02352804 +_023379C8: .4byte 0x0235282C +_023379CC: .4byte 0x0235280C +_023379D0: .4byte 0x02352834 +_023379D4: .4byte 0x02352810 + arm_func_end ov02_02337914 + + arm_func_start ov02_023379D8 +ov02_023379D8: @ 0x023379D8 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + ldr r1, _02337B7C @ =0x0235AA60 + ldr r0, _02337B80 @ =0x02352F34 + ldr r1, [r1] + mov r2, #0 + strb r2, [r1, #0x60] + bl ov02_0234EE14 + cmp r0, #0 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, pc} + ldr r7, _02337B84 @ =0x02352856 + ldr r6, _02337B88 @ =0x02352804 + mov r4, #0 + add r5, sp, #0 +_02337A14: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl ov02_0234E39C + mov r0, r5 + bl ov02_0234EE14 + cmp r0, #0 + beq _02337A6C + ldr r0, _02337B7C @ =0x0235AA60 + ldr r2, [r0] + ldrsb r1, [r2, #0x61] + cmp r1, r4 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} + ldr r1, _02337B8C @ =0x023528F0 + ldrb r1, [r1, r4] + strb r1, [r2, #0x60] + ldr r0, [r0] + strb r4, [r0, #0x63] + bl ov02_023382A8 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_02337A6C: + add r4, r4, #1 + cmp r4, #0xa + add r7, r7, #4 + blt _02337A14 + ldr r7, _02337B90 @ =0x0235282C + ldr r6, _02337B94 @ =0x0235280C + mov r4, #0 + add r5, sp, #0 +_02337A8C: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl ov02_0234E39C + mov r0, r5 + bl ov02_0234EE14 + cmp r0, #0 + beq _02337AE8 + ldr r0, _02337B7C @ =0x0235AA60 + add r2, r4, #0xa + ldr r3, [r0] + ldrsb r1, [r3, #0x61] + cmp r1, r2 + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} + ldr r1, _02337B98 @ =0x02352800 + ldrb r1, [r1, r4] + strb r1, [r3, #0x60] + ldr r0, [r0] + strb r2, [r0, #0x63] + bl ov02_023382A8 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_02337AE8: + add r4, r4, #1 + cmp r4, #2 + add r7, r7, #4 + blt _02337A8C + ldr r7, _02337B9C @ =0x02352834 + ldr r6, _02337BA0 @ =0x02352810 + mov r4, #0 + add r5, sp, #0 +_02337B08: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl ov02_0234E39C + mov r0, r5 + bl ov02_0234EE14 + cmp r0, #0 + beq _02337B64 + ldr r0, _02337B7C @ =0x0235AA60 + add r2, r4, #0xc + ldr r3, [r0] + ldrsb r1, [r3, #0x61] + cmp r1, r2 + arm_func_end ov02_023379D8 + + arm_func_start ov02_02337B3C +ov02_02337B3C: @ 0x02337B3C + addne sp, sp, #8 + popne {r3, r4, r5, r6, r7, pc} + ldr r1, _02337BA4 @ =0x023527FC + ldrb r1, [r1, r4] + strb r1, [r3, #0x60] + ldr r0, [r0] + strb r2, [r0, #0x63] + bl ov02_023382A8 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_02337B64: + add r4, r4, #1 + cmp r4, #2 + add r7, r7, #4 + blt _02337B08 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02337B7C: .4byte 0x0235AA60 +_02337B80: .4byte 0x02352F34 +_02337B84: .4byte 0x02352856 +_02337B88: .4byte 0x02352804 +_02337B8C: .4byte 0x023528F0 +_02337B90: .4byte 0x0235282C +_02337B94: .4byte 0x0235280C +_02337B98: .4byte 0x02352800 +_02337B9C: .4byte 0x02352834 +_02337BA0: .4byte 0x02352810 +_02337BA4: .4byte 0x023527FC + arm_func_end ov02_02337B3C + + arm_func_start ov02_02337BA8 +ov02_02337BA8: @ 0x02337BA8 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + ldr r0, _02337D78 @ =0x02352F34 + bl ov02_0234EC7C + cmp r0, #0 + beq _02337D58 + ldr r7, _02337D7C @ =0x02352856 + ldr r5, _02337D80 @ =0x02352804 + mov r6, #0 + add r4, sp, #0 +_02337BD0: + mov r0, r7 + mov r1, r5 + mov r2, r4 + bl ov02_0234E39C + mov r0, r4 + bl ov02_0234EC7C + cmp r0, #0 + beq _02337C10 + ldr r0, _02337D84 @ =0x0235AA60 + ldr r0, [r0] + ldrsb r0, [r0, #0x61] + cmp r0, r6 + bne _02337D58 + mov r0, r6 + bl ov02_02337D98 + b _02337D60 +_02337C10: + add r6, r6, #1 + cmp r6, #0xa + add r7, r7, #4 + blt _02337BD0 + ldr r6, _02337D88 @ =0x0235282C + ldr r5, _02337D8C @ =0x0235280C + mov r7, #0 + add r4, sp, #0 +_02337C30: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov02_0234E39C + mov r0, r4 + bl ov02_0234EC7C + cmp r0, #0 + beq _02337CE8 + ldr r1, _02337D84 @ =0x0235AA60 + arm_func_end ov02_02337BA8 + + arm_func_start ov02_02337C54 +ov02_02337C54: @ 0x02337C54 + add r0, r7, #0xa + ldr r1, [r1] + ldrsb r1, [r1, #0x61] + cmp r1, r0 + bne _02337D58 + bl ov02_02337D98 + cmp r7, #0 + bne _02337D60 + ldr r0, _02337D84 @ =0x0235AA60 + ldr r2, [r0] + ldrb r1, [r2, #0x65] + add r1, r1, #1 + strb r1, [r2, #0x65] + ldr r2, [r0] + ldrb r1, [r2, #0x65] + cmp r1, #0x28 + addlo sp, sp, #8 + poplo {r3, r4, r5, r6, r7, pc} + ldrb r1, [r2, #0x66] + cmp r1, #0 + bne _02337CC8 + mov r0, #9 + bl ov02_023480E0 + ldr r0, _02337D84 @ =0x0235AA60 + mvn r1, #0 + ldr r0, [r0] + add sp, sp, #8 + strb r1, [r0, #0x61] + pop {r3, r4, r5, r6, r7, pc} +_02337CC8: + mov r1, #0x10 + strb r1, [r2, #0x60] + ldr r1, [r0] + add sp, sp, #8 + ldrb r0, [r1, #0x65] + sub r0, r0, #7 + strb r0, [r1, #0x65] + pop {r3, r4, r5, r6, r7, pc} +_02337CE8: + add r7, r7, #1 + cmp r7, #2 + add r6, r6, #4 + blt _02337C30 + ldr r6, _02337D90 @ =0x02352834 + ldr r5, _02337D94 @ =0x02352810 + mov r7, #0 + add r4, sp, #0 +_02337D08: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov02_0234E39C + mov r0, r4 + bl ov02_0234EC7C + cmp r0, #0 + beq _02337D48 + ldr r1, _02337D84 @ =0x0235AA60 + add r0, r7, #0xc + ldr r1, [r1] + ldrsb r1, [r1, #0x61] + cmp r1, r0 + bne _02337D58 + bl ov02_02337D98 + b _02337D60 +_02337D48: + add r7, r7, #1 + cmp r7, #2 + add r6, r6, #4 + blt _02337D08 +_02337D58: + mvn r0, #0 + bl ov02_02337D98 +_02337D60: + ldr r0, _02337D84 @ =0x0235AA60 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x65] + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02337D78: .4byte 0x02352F34 +_02337D7C: .4byte 0x02352856 +_02337D80: .4byte 0x02352804 +_02337D84: .4byte 0x0235AA60 +_02337D88: .4byte 0x0235282C +_02337D8C: .4byte 0x0235280C +_02337D90: .4byte 0x02352834 +_02337D94: .4byte 0x02352810 + arm_func_end ov02_02337C54 + + arm_func_start ov02_02337D98 +ov02_02337D98: @ 0x02337D98 + push {r4, lr} + ldr r1, _02337DE0 @ =0x0235AA60 + mov r4, r0 + ldr r1, [r1] + ldrsb r1, [r1, #0x62] + cmp r4, r1 + popeq {r4, pc} + mov r1, #1 + bl ov02_023381E0 + ldr r0, _02337DE0 @ =0x0235AA60 + mov r1, #0 + ldr r0, [r0] + ldrsb r0, [r0, #0x62] + bl ov02_023381E0 + ldr r0, _02337DE0 @ =0x0235AA60 + ldr r0, [r0] + strb r4, [r0, #0x62] + pop {r4, pc} + .align 2, 0 +_02337DE0: .4byte 0x0235AA60 + arm_func_end ov02_02337D98 + + arm_func_start ov02_02337DE4 +ov02_02337DE4: @ 0x02337DE4 + push {r3, lr} + mov r0, #0x20 + bl ov02_0234EBFC + cmp r0, #0 + beq _02337E00 + mov r0, #0 + bl ov02_02338334 +_02337E00: + mov r0, #0x40 + bl ov02_0234EBFC + cmp r0, #0 + arm_func_end ov02_02337DE4 + + arm_func_start ov02_02337E0C +ov02_02337E0C: @ 0x02337E0C + beq _02337E18 + mov r0, #1 + bl ov02_02338334 +_02337E18: + mov r0, #0x10 + bl ov02_0234EBFC + cmp r0, #0 + beq _02337E30 + mov r0, #2 + bl ov02_02338334 +_02337E30: + mov r0, #0x80 + bl ov02_0234EBFC + cmp r0, #0 + beq _02337E48 + mov r0, #3 + bl ov02_02338334 +_02337E48: + mov r0, #1 + bl ov02_0234EBBC + cmp r0, #0 + beq _02337EF4 + ldr r0, _02337F70 @ =0x0235AA60 + ldr r0, [r0] + ldrsb r2, [r0, #0x63] + cmp r2, #0xa + bge _02337E94 + ldrb r1, [r0, #0x67] + cmp r1, #0 + beq _02337E88 + ldr r1, _02337F74 @ =0x023528F0 + ldrb r1, [r1, r2] + strb r1, [r0, #0x60] + pop {r3, pc} +_02337E88: + mov r0, #9 + bl ov02_023480E0 + pop {r3, pc} +_02337E94: + sub r1, r2, #0xa + cmp r1, #2 + bge _02337EE4 + cmp r1, #0 + ldrbeq r1, [r0, #0x66] + cmpeq r1, #0 + beq _02337EC4 + sub r1, r2, #0xa + cmp r1, #1 + ldrbeq r1, [r0, #0x68] + cmpeq r1, #0 + bne _02337ED0 +_02337EC4: + mov r0, #9 + bl ov02_023480E0 + pop {r3, pc} +_02337ED0: + ldr r1, _02337F78 @ =0x02352800 + sub r2, r2, #0xa + ldrb r1, [r1, r2] + strb r1, [r0, #0x60] + pop {r3, pc} +_02337EE4: + ldr r1, _02337F7C @ =0x023527FC + sub r2, r2, #0xc + ldrb r1, [r1, r2] + strb r1, [r0, #0x60] +_02337EF4: + mov r0, #2 + bl ov02_0234EBFC + cmp r0, #0 + beq _02337F4C + ldr r0, _02337F70 @ =0x0235AA60 + ldr r1, [r0] + ldrb r0, [r1, #0x66] + cmp r0, #0 + bne _02337F40 + ldrb r0, [r1, #0x69] + cmp r0, #0 + popne {r3, pc} + mov r0, #9 + bl ov02_023480E0 + ldr r0, _02337F70 @ =0x0235AA60 + mov r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x69] + pop {r3, pc} +_02337F40: + mov r0, #0x10 + strb r0, [r1, #0x60] + pop {r3, pc} +_02337F4C: + mov r0, #2 + bl ov02_0234EC3C + cmp r0, #0 + popeq {r3, pc} + ldr r0, _02337F70 @ =0x0235AA60 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x69] + pop {r3, pc} + .align 2, 0 +_02337F70: .4byte 0x0235AA60 +_02337F74: .4byte 0x023528F0 +_02337F78: .4byte 0x02352800 +_02337F7C: .4byte 0x023527FC + arm_func_end ov02_02337E0C + + arm_func_start ov02_02337F80 +ov02_02337F80: @ 0x02337F80 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x14 + ldr r2, _023381C4 @ =0x02352804 + mov sl, r0 + ldrb r3, [r2, #0x15] + ldrb r0, [r2, #0x16] + ldrb r4, [r2, #0x17] + strb r3, [sp, #0xe] + strb r0, [sp, #0xf] + ldrb r0, [r2, #0x18] + mov sb, r1 + add r3, sp, #0xe + strb r4, [sp, #0x10] + strb r0, [sp, #0x11] + ldrb r0, [r2, #0x19] + add lr, sl, sl, lsl #1 + mov r4, lr + strb r0, [sp, #0x12] + ldrb r6, [r2, #0x1a] + ldrb r1, [r2, #0x1b] + ldrb r0, [r3, sl] + mov r5, #0 + strb r6, [sp, #9] + strb r1, [sp, #0xa] + ldrb r6, [r2, #0x1c] + ldrb r1, [r2, #0x1d] + cmp r0, #0 + strb r6, [sp, #0xb] + strb r1, [sp, #0xc] + ldrb r0, [r2, #0x1e] + strb r0, [sp, #0xd] + ldrb r1, [r2, #0x10] + ldrb r0, [r2, #0x11] + strb r1, [sp, #4] + strb r0, [sp, #5] + ldrb r1, [r2, #0x12] + ldrb r0, [r2, #0x13] + strb r1, [sp, #6] + strb r0, [sp, #7] + ldrb r0, [r2, #0x14] + strb r0, [sp, #8] + ble _02338094 + ldr r0, _023381C8 @ =0x02352856 + ldr fp, _023381CC @ =0x0235AA60 + ldr r7, _023381D0 @ =0xC1FFFCFF + ldr r8, _023381D4 @ =0xFE00FF00 + and r6, sb, #0xff +_0233803C: + ldr r1, [fp] + lsl r2, r4, #2 + add r1, r1, r4, lsl #2 + ldr r1, [r1, #0x10] + ldrh r2, [r0, r2] + ldr ip, [r1] + add r5, r5, #1 + and ip, ip, r7 + str ip, [r1] + ldr ip, [fp] + lsl r1, r2, #0x17 + add r2, ip, r4, lsl #2 + ldr r2, [r2, #0x10] + add r4, r4, #1 + ldr ip, [r2] + and ip, ip, r8 + orr ip, ip, r6 + orr r1, ip, r1, lsr #7 + str r1, [r2] + ldrb r1, [r3, sl] + cmp r5, r1 + blt _0233803C +_02338094: + cmp sl, #4 + bge _023380CC + ldr r0, _023381CC @ =0x0235AA60 + ldr r1, _023381C8 @ =0x02352856 + ldr r3, [r0] + lsl r0, lr, #2 + mov r2, #2 + str r2, [sp] + add r2, r3, sl, lsl #2 + ldrh r1, [r1, r0] + ldr r0, [r3, sl, lsl #2] + ldr r3, [r2, #0x48] + mov r2, sb + bl ov02_0234E2BC +_023380CC: + add r3, sp, #9 + ldrb r0, [r3, sl] + mov r5, #0 + cmp r0, #0 + ble _02338148 + ldr r0, _023381D8 @ =0x0235282C + ldr r8, _023381CC @ =0x0235AA60 + ldr r6, _023381D0 @ =0xC1FFFCFF + ldr r7, _023381D4 @ =0xFE00FF00 + and r4, sb, #0xff +_023380F4: + ldr r1, [r8] + lsl r2, r5, #2 + add r1, r1, r5, lsl #2 + ldr fp, [r1, #0x38] + ldrh r1, [r0, r2] + ldr r2, [fp] + and r2, r2, r6 + str r2, [fp] + ldr r2, [r8] + lsl r1, r1, #0x17 + add r2, r2, r5, lsl #2 + ldr r2, [r2, #0x38] + add r5, r5, #1 + ldr fp, [r2] + and fp, fp, r7 + orr fp, fp, r4 + orr r1, fp, r1, lsr #7 + str r1, [r2] + ldrb r1, [r3, sl] + cmp r5, r1 + blt _023380F4 +_02338148: + add r7, sp, #4 + ldrb r0, [r7, sl] + mov r8, #0 + cmp r0, #0 + addle sp, sp, #0x14 + pople {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r5, _023381DC @ =0x02352834 + ldr r4, _023381CC @ =0x0235AA60 + mvn r6, #0 + mov fp, r8 +_02338170: + ldr r0, [r4] + mov r1, r6 + add r0, r0, r8, lsl #2 + ldr r0, [r0, #0x40] + mov r2, fp + mov r3, fp + bl ov02_0234D31C + ldr r0, [r4] + lsl r1, r8, #2 + add r0, r0, r8, lsl #2 + ldr r0, [r0, #0x40] + ldrh r2, [r5, r1] + mov r1, r6 + mov r3, sb + bl ov02_0234D440 + ldrb r0, [r7, sl] + add r8, r8, #1 + cmp r8, r0 + blt _02338170 + add sp, sp, #0x14 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_023381C4: .4byte 0x02352804 +_023381C8: .4byte 0x02352856 +_023381CC: .4byte 0x0235AA60 +_023381D0: .4byte 0xC1FFFCFF +_023381D4: .4byte 0xFE00FF00 +_023381D8: .4byte 0x0235282C +_023381DC: .4byte 0x02352834 + arm_func_end ov02_02337F80 + + arm_func_start ov02_023381E0 +ov02_023381E0: @ 0x023381E0 + push {r3, lr} + cmp r0, #0 + poplt {r3, pc} + cmp r0, #0xa + bge _0233822C + ldr r2, _0233829C @ =0x0235AA60 + ldr r3, _023382A0 @ =0x023527F8 + ldr r2, [r2] + ldrb r1, [r3, r1] + add r0, r2, r0, lsl #2 + ldr r2, [r0, #0x10] + ldr r0, [r2] + bic r0, r0, #0xc00 + str r0, [r2] + ldrh r0, [r2, #4] + bic r0, r0, #0xf000 + orr r0, r0, r1, lsl #12 + strh r0, [r2, #4] + pop {r3, pc} +_0233822C: + sub ip, r0, #0xa + cmp ip, #2 + bge _02338270 + ldr r0, _0233829C @ =0x0235AA60 + ldr r2, _023382A0 @ =0x023527F8 + ldr r3, [r0] + ldrb r0, [r2, r1] + add r1, r3, ip, lsl #2 + ldr r2, [r1, #0x38] + ldr r1, [r2] + bic r1, r1, #0xc00 + str r1, [r2] + ldrh r1, [r2, #4] + bic r1, r1, #0xf000 + orr r0, r1, r0, lsl #12 + strh r0, [r2, #4] + pop {r3, pc} +_02338270: + ldr r2, _0233829C @ =0x0235AA60 + ldr r3, _023382A4 @ =0x023527EC + ldr r2, [r2] + sub r0, r0, #0xc + add r0, r2, r0, lsl #2 + ldrb r3, [r3, r1] + ldr r0, [r0, #0x40] + mvn r1, #0 + mov r2, #0 + bl ov02_0234D3C0 + pop {r3, pc} + .align 2, 0 +_0233829C: .4byte 0x0235AA60 +_023382A0: .4byte 0x023527F8 +_023382A4: .4byte 0x023527EC + arm_func_end ov02_023381E0 + + arm_func_start ov02_023382A8 +ov02_023382A8: @ 0x023382A8 + push {r4, lr} + ldr r0, _02338328 @ =0x0235AA60 + ldr r1, [r0] + ldrsb r0, [r1, #0x63] + cmp r0, #0xb + movle r4, #0x44 + ldr r0, [r1, #0x58] + movgt r4, #0x45 + mov r1, #0 + bl ov02_0234D308 + mov r2, r0 + mov r1, r4 + mov r0, #0 + bl ov02_0234D618 + ldr r0, _02338328 @ =0x0235AA60 + mvn r1, #0 + ldr r0, [r0] + mov r2, #2 + ldr r0, [r0, #0x58] + bl ov02_0234D530 + ldr r0, _02338328 @ =0x0235AA60 + ldr r2, _0233832C @ =0x0235287E + ldr r0, [r0] + ldr r3, _02338330 @ =0x02352880 + ldrsb ip, [r0, #0x63] + ldr r0, [r0, #0x58] + mvn r1, #0 + lsl ip, ip, #2 + ldrh r2, [r2, ip] + ldrh r3, [r3, ip] + bl ov02_0234D440 + pop {r4, pc} + .align 2, 0 +_02338328: .4byte 0x0235AA60 +_0233832C: .4byte 0x0235287E +_02338330: .4byte 0x02352880 + arm_func_end ov02_023382A8 + + arm_func_start ov02_02338334 +ov02_02338334: @ 0x02338334 + push {r3, lr} + ldr r1, _023383D8 @ =0x0235AA60 + ldr r2, _023383DC @ =0x023528B6 + ldr r3, [r1] + ldrsb ip, [r3, #0x63] + add r2, r2, ip, lsl #2 + ldrsb r2, [r0, r2] + strb r2, [r3, #0x63] + ldr r2, [r1] + ldrsb r1, [r2, #0x63] + cmp r1, #0xd + bne _02338374 + cmp r0, #1 + cmpne r0, #3 + strbeq ip, [r2, #0x64] + beq _023383C8 +_02338374: + mvn r0, #0 + cmp r1, r0 + bne _023383A0 + ldrsb r0, [r2, #0x64] + cmp r0, #1 + cmpne r0, #0xa + moveq r0, #0xa + strbeq r0, [r2, #0x63] + movne r0, #0xb + strbne r0, [r2, #0x63] + b _023383C8 +_023383A0: + sub r0, r0, #1 + cmp r1, r0 + bne _023383C8 + ldrsb r0, [r2, #0x64] + cmp r0, #1 + cmpne r0, #0xa + moveq r0, #1 + strbeq r0, [r2, #0x63] + movne r0, #2 + strbne r0, [r2, #0x63] +_023383C8: + bl ov02_023382A8 + mov r0, #8 + bl ov02_023480E0 + pop {r3, pc} + .align 2, 0 +_023383D8: .4byte 0x0235AA60 +_023383DC: .4byte 0x023528B6 + arm_func_end ov02_02338334 + + arm_func_start ov02_023383E0 +ov02_023383E0: @ 0x023383E0 + push {r4, lr} + sub sp, sp, #8 + ldr r1, _0233844C @ =0x0235AA60 + mov r4, r0 + ldr r0, [r1] + mov r1, #0 + ldr r0, [r0, #0x40] + bl ov02_0234D308 + ldr r2, [r0] + ldr r0, _02338450 @ =0x01FF0000 + and r1, r2, #0xff + and r0, r2, r0 + lsr r2, r0, #0x10 + add r1, r1, #0xc + str r1, [sp] + mov r0, #4 + str r2, [sp, #4] + bl ov02_02337F80 + ldr r0, [sp] + cmp r0, #0xc0 + addlt sp, sp, #8 + poplt {r4, pc} + ldr r1, _02338454 @ =ov02_02338458 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_0233844C: .4byte 0x0235AA60 +_02338450: .4byte 0x01FF0000 +_02338454: .4byte ov02_02338458 + arm_func_end ov02_023383E0 + + arm_func_start ov02_02338458 +ov02_02338458: @ 0x02338458 + push {r4, lr} + sub sp, sp, #8 + ldr r1, _023384BC @ =0x0235AA60 + mov r4, r0 + ldr r0, [r1] + ldr r1, _023384C0 @ =0x01FF0000 + ldr r2, [r0, #0x34] + mov r0, #3 + ldr r3, [r2] + and r2, r3, #0xff + and r3, r3, r1 + add r1, r2, #0xc + lsr r2, r3, #0x10 + str r1, [sp] + str r2, [sp, #4] + bl ov02_02337F80 + ldr r0, [sp] + cmp r0, #0xc0 + addlt sp, sp, #8 + poplt {r4, pc} + ldr r1, _023384C4 @ =ov02_023384C8 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_023384BC: .4byte 0x0235AA60 +_023384C0: .4byte 0x01FF0000 +_023384C4: .4byte ov02_023384C8 + arm_func_end ov02_02338458 + + arm_func_start ov02_023384C8 +ov02_023384C8: @ 0x023384C8 + push {r4, lr} + sub sp, sp, #8 + ldr r1, _0233852C @ =0x0235AA60 + mov r4, r0 + ldr r0, [r1] + ldr r1, _02338530 @ =0x01FF0000 + ldr r2, [r0, #0x28] + mov r0, #2 + ldr r3, [r2] + and r2, r3, #0xff + and r3, r3, r1 + add r1, r2, #0xc + lsr r2, r3, #0x10 + str r1, [sp] + str r2, [sp, #4] + bl ov02_02337F80 + ldr r0, [sp] + cmp r0, #0xc0 + addlt sp, sp, #8 + poplt {r4, pc} + ldr r1, _02338534 @ =ov02_02338538 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_0233852C: .4byte 0x0235AA60 +_02338530: .4byte 0x01FF0000 +_02338534: .4byte ov02_02338538 + arm_func_end ov02_023384C8 + + arm_func_start ov02_02338538 +ov02_02338538: @ 0x02338538 + push {r4, lr} + sub sp, sp, #8 + ldr r1, _0233859C @ =0x0235AA60 + mov r4, r0 + ldr r0, [r1] + ldr r1, _023385A0 @ =0x01FF0000 + ldr r2, [r0, #0x1c] + mov r0, #1 + ldr r3, [r2] + and r2, r3, #0xff + and r3, r3, r1 + add r1, r2, #0xc + lsr r2, r3, #0x10 + str r1, [sp] + str r2, [sp, #4] + bl ov02_02337F80 + ldr r0, [sp] + cmp r0, #0xc0 + addlt sp, sp, #8 + poplt {r4, pc} + ldr r1, _023385A4 @ =ov02_023385A8 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_0233859C: .4byte 0x0235AA60 +_023385A0: .4byte 0x01FF0000 +_023385A4: .4byte ov02_023385A8 + arm_func_end ov02_02338538 + + arm_func_start ov02_023385A8 +ov02_023385A8: @ 0x023385A8 + push {r4, lr} + sub sp, sp, #8 + ldr r1, _0233860C @ =0x0235AA60 + mov r4, r0 + ldr r0, [r1] + ldr r1, _02338610 @ =0x01FF0000 + ldr r2, [r0, #0x10] + mov r0, #0 + ldr r3, [r2] + and r2, r3, #0xff + and r3, r3, r1 + add r1, r2, #0xc + lsr r2, r3, #0x10 + str r1, [sp] + str r2, [sp, #4] + bl ov02_02337F80 + ldr r0, [sp] + cmp r0, #0xc0 + addlt sp, sp, #8 + poplt {r4, pc} + ldr r1, _02338614 @ =ov02_02338618 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_0233860C: .4byte 0x0235AA60 +_02338610: .4byte 0x01FF0000 +_02338614: .4byte ov02_02338618 + arm_func_end ov02_023385A8 + + arm_func_start ov02_02338618 +ov02_02338618: @ 0x02338618 + push {r3, r4, r5, lr} + mov r1, r0 + mov r0, #0 + bl ov02_0234FB40 + ldr r4, _023386D0 @ =0x0235AA60 + mov r5, #0 +_02338630: + ldr r0, [r4] + add r0, r0, r5, lsl #2 + ldr r0, [r0, #0x48] + bl ov02_0234D288 + ldr r0, [r4] + ldr r0, [r0, r5, lsl #2] + bl ov02_0234DD9C + add r5, r5, #1 + cmp r5, #4 + blt _02338630 + ldr r4, _023386D0 @ =0x0235AA60 + mov r5, #0 +_02338660: + ldr r0, [r4] + add r0, r0, r5, lsl #2 + ldr r0, [r0, #0x40] + bl ov02_0234D288 + add r5, r5, #1 + cmp r5, #2 + blt _02338660 + ldr r4, _023386D0 @ =0x0235AA60 + mov r5, #0 +_02338684: + ldr r0, [r4] + add r0, r0, r5, lsl #2 + ldr r0, [r0, #0x38] + bl ov02_0234F2C0 + add r5, r5, #1 + cmp r5, #2 + blt _02338684 + ldr r4, _023386D0 @ =0x0235AA60 + mov r5, #0 +_023386A8: + ldr r0, [r4] + add r0, r0, r5, lsl #2 + ldr r0, [r0, #0x10] + bl ov02_0234F2C0 + add r5, r5, #1 + cmp r5, #0xa + blt _023386A8 + ldr r0, _023386D4 @ =0x0235AA60 + bl ov02_0234E7D8 + pop {r3, r4, r5, pc} + .align 2, 0 +_023386D0: .4byte 0x0235AA60 +_023386D4: .4byte 0x0235AA60 + arm_func_end ov02_02338618 + + arm_func_start ov02_023386D8 +ov02_023386D8: @ 0x023386D8 + stmdb sp!, {lr} + sub sp, sp, #0x104 + mov r0, #0x26c + mov r1, #4 + bl ov02_0234E7B4 + ldr r3, _023387D8 @ =0x0235AA64 + add r1, sp, #0 + str r0, [r3, #4] + mov r0, #0 + mov r2, #0x104 + strb r0, [r3] + bl FUN_0207C2B8 + mov r3, #0x50 + mov r2, #0xc + ldr r0, _023387DC @ =0x023528FC + add r1, sp, #4 + strb r3, [sp] + strh r2, [sp, #2] + bl FUN_0207C4C8 + ldr r0, _023387D8 @ =0x0235AA64 + mov r2, #3 + ldr r1, [r0, #4] + add ip, sp, #0 + strh r2, [r1] + ldr lr, [r0, #4] + mov r2, #0x41 + add r3, lr, #2 +_02338744: + ldrh r1, [ip] + ldrh r0, [ip, #2] + add ip, ip, #4 + subs r2, r2, #1 + strh r1, [r3] + strh r0, [r3, #2] + add r3, r3, #4 + bne _02338744 + ldr r1, _023387D8 @ =0x0235AA64 + mov r3, #1 + add r0, lr, #0x100 + strh r3, [r0, #6] + ldr r0, [r1, #4] + sub r2, r3, #2 + add r0, r0, #0x100 + strh r2, [r0, #8] + ldr r0, [r1, #4] + add r0, r0, #0x100 + strh r3, [r0, #0xa] + ldr r0, [r1, #4] + add r0, r0, #0x100 + strh r2, [r0, #0xc] + ldr r0, [r1, #4] + add r0, r0, #0x100 + strh r2, [r0, #0xe] + ldr r0, [r1, #4] + add r0, r0, #0x110 + bl FUN_0207B9EC + ldr r0, _023387E0 @ =0x02338898 + ldr r1, _023387E4 @ =0x023388A8 + blx ov02_023300A0 + cmp r0, #0 + addeq sp, sp, #0x104 + ldmeq sp!, {pc} + bl FUN_0207BC20 + add sp, sp, #0x104 + ldm sp!, {pc} + .align 2, 0 +_023387D8: .4byte 0x0235AA64 +_023387DC: .4byte 0x023528FC +_023387E0: .4byte 0x02338898 +_023387E4: .4byte 0x023388A8 + arm_func_end ov02_023386D8 + + arm_func_start ov02_023387E8 +ov02_023387E8: @ 0x023387E8 + push {r4, lr} + mov r4, r0 + blx ov02_02330164 + cmp r4, #0 + beq _02338824 + ldr r0, _02338830 @ =0x0235AA64 + ldr r2, [r0, #4] + ldrb r1, [r2, #0x116] + cmp r1, #0 + ldrbeq r0, [r0] + cmpeq r0, #1 + bne _02338824 + add r0, r2, #0x17 + add r0, r0, #0x100 + bl ov02_02347C0C +_02338824: + ldr r0, _02338834 @ =0x0235AA68 + bl ov02_0234E7D8 + pop {r4, pc} + .align 2, 0 +_02338830: .4byte 0x0235AA64 +_02338834: .4byte 0x0235AA68 + arm_func_end ov02_023387E8 + + arm_func_start ov02_02338838 +ov02_02338838: @ 0x02338838 + push {r3, lr} + ldr r0, _02338894 @ =0x0235AA64 + ldr r0, [r0, #4] + blx ov02_0232DD8C + cmp r0, #0 + bne _02338860 + ldr r1, _02338894 @ =0x0235AA64 + mov r0, #1 + strb r0, [r1] + pop {r3, pc} +_02338860: + ldr r0, _02338894 @ =0x0235AA64 + ldr r0, [r0, #4] + ldrb r0, [r0, #0x116] + cmp r0, #1 + beq _02338884 + add r0, r0, #0xfd + and r0, r0, #0xff + cmp r0, #2 + bhi _0233888C +_02338884: + mov r0, #0 + pop {r3, pc} +_0233888C: + mov r0, #2 + pop {r3, pc} + .align 2, 0 +_02338894: .4byte 0x0235AA64 + arm_func_end ov02_02338838 +_02338898: + .byte 0x04, 0xC0, 0x9F, 0xE5, 0x20, 0x10, 0xA0, 0xE3 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0xB4, 0xE7, 0x34, 0x02, 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0x1C, 0xE8, 0x34, 0x02 + + arm_func_start ov02_023388B4 +ov02_023388B4: @ 0x023388B4 + push {r4, r5, r6, lr} + ldr r3, _02338950 @ =0x0235AA6C + str r0, [r3, #4] + mov r0, r1 + mov r1, r2 + bl ov02_0233895C + cmp r0, #0 + mvneq r0, #0 + popeq {r4, r5, r6, pc} + bl FUN_022DBC94 + mov r6, r0 + ldr r0, _02338954 @ =0x023534FC + bl FUN_022DBC84 + ldr r0, _02338950 @ =0x0235AA6C + mov r1, #0 + strb r1, [r0, #1] + bl ov02_023389D8 + bl ov02_02338AA0 + bl ov02_02348024 + ldr r0, _02338958 @ =ov02_0233963C + bl ov02_02338D68 + ldr r4, _02338950 @ =0x0235AA6C + mov r5, #0 +_02338910: + bl ov02_0234E90C + ldr r0, [r4, #0xc] + blx r0 + mov r0, r5 + bl ov02_0234F9E8 + bl ov02_0234EF6C + bl ov02_0234F850 + bl FUN_0207B860 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02338910 + bl ov02_02338D18 + mov r0, r6 + bl FUN_022DBC84 + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_02338950: .4byte 0x0235AA6C +_02338954: .4byte 0x023534FC +_02338958: .4byte ov02_0233963C + arm_func_end ov02_023388B4 + + arm_func_start ov02_0233895C +ov02_0233895C: @ 0x0233895C + ldr r2, _023389D4 @ =0x0235AA6C + cmp r0, #0 + strb r0, [r2] + str r1, [r2, #8] + blt _02338978 + cmp r0, #6 + ble _02338980 +_02338978: + mov r0, #0 + bx lr +_02338980: + lsl r2, r1, #0x1c + lsr r2, r2, #0x1c + cmp r2, #1 + movhi r0, #0 + bxhi lr + lsr r1, r1, #4 + tst r1, #2 + movne r0, #0 + bxne lr + cmp r0, #0 + beq _023389B8 + tst r1, #1 + movne r0, #0 + bxne lr +_023389B8: + cmp r0, #0 + bne _023389CC + tst r1, #1 + moveq r0, #0 + bxeq lr +_023389CC: + mov r0, #1 + bx lr + .align 2, 0 +_023389D4: .4byte 0x0235AA6C + arm_func_end ov02_0233895C + + arm_func_start ov02_023389D8 +ov02_023389D8: @ 0x023389D8 + push {r3, lr} + ldr r2, _02338A94 @ =0x04000208 + mov r0, #0 + ldrh r1, [r2] + strh r0, [r2] + bl FUN_0207621C + ldr r1, _02338A98 @ =0x04001000 + ldr r0, [r1] + bic r0, r0, #0x10000 + str r0, [r1] + bl FUN_0207ADCC + cmp r0, #0 + bne _02338A10 + bl FUN_0207BC20 +_02338A10: + bl FUN_0207B030 + cmp r0, #0 + bne _02338A20 + bl FUN_0207BC20 +_02338A20: + mov r0, #0 + bl FUN_020761E8 + bl FUN_02076070 + mvn r0, #0 + bl FUN_0207F3BC + bl FUN_020811EC + bl FUN_0208266C + bl FUN_0207621C + ldr r1, _02338A98 @ =0x04001000 + ldr r0, [r1] + bic r0, r0, #0x10000 + str r0, [r1] + bl ov02_0234F610 + ldr r0, _02338A9C @ =0x0235AA6C + ldr r0, [r0, #4] + bl ov02_0234E704 + bl ov02_0234EFE8 + bl ov02_0234F88C + bl ov02_0234CB8C + bl ov02_0234E858 + bl ov02_0234D860 + mov r0, #0x700 + mov r1, #0x20 + bl ov02_0234E7B4 + str r0, [sp] + bl FUN_022EE018 + add r0, sp, #0 + bl ov02_0234E7D8 + pop {r3, pc} + .align 2, 0 +_02338A94: .4byte 0x04000208 +_02338A98: .4byte 0x04001000 +_02338A9C: .4byte 0x0235AA6C + arm_func_end ov02_023389D8 + + arm_func_start ov02_02338AA0 +ov02_02338AA0: @ 0x02338AA0 + push {r4, lr} + mov r0, #0 + bl FUN_020761E8 + mov r0, #1 + bl FUN_02076464 + mov r0, #2 + bl FUN_020766F4 + mov r1, #0 + mov r2, r1 + mov r0, #1 + bl FUN_020762A0 + mov r3, #0x4000000 + ldr r1, [r3] + add r0, r3, #0x6c + bic r1, r1, #0x1f00 + str r1, [r3] + ldr r2, [r3] + mov r1, #0 + bic r2, r2, #0xe000 + str r2, [r3] + bl FUN_02076324 + mov r3, #0x4000000 + ldr r2, [r3] + ldr r0, _02338D04 @ =0xFFCFFFEF + ldr r1, _02338D08 @ =0x00200010 + and r0, r2, r0 + orr r0, r0, #0x10 + add ip, r1, #0x3e00000 + orr r0, r0, #0x200000 + str r0, [r3] + ldrh r1, [r3, #8] + mov lr, #0 + add r0, r3, #0x50 + bic r1, r1, #0x40 + strh r1, [r3, #8] + ldrh r4, [r3, #0xa] + mov r1, #0x3f + mov r2, #0x10 + bic r4, r4, #0x40 + strh r4, [r3, #0xa] + ldrh r4, [r3, #0xc] + bic r4, r4, #0x40 + strh r4, [r3, #0xc] + ldrh r4, [r3, #0xe] + bic r4, r4, #0x40 + strh r4, [r3, #0xe] + str lr, [ip] + str lr, [r3, #0x14] + str lr, [r3, #0x18] + str lr, [r3, #0x1c] + bl FUN_02077704 + mov r0, #0x80 + bl FUN_02076EB0 + mov r0, #0x100 + bl FUN_02076F58 + mov r0, #0 + bl FUN_02076308 + ldr r1, _02338D0C @ =0x04001000 + ldr r0, [r1] + bic r0, r0, #0x1f00 + str r0, [r1] + ldr r0, [r1] + bic r0, r0, #0xe000 + str r0, [r1] + add r0, r1, #0x6c + mov r1, #0 + bl FUN_02076324 + ldr r3, _02338D0C @ =0x04001000 + ldr r0, _02338D04 @ =0xFFCFFFEF + ldr r1, [r3] + mov ip, #0 + and r0, r1, r0 + orr r0, r0, #0x10 + str r0, [r3] + ldrh r2, [r3, #8] + add r0, r3, #0x50 + mov r1, #0x3f + bic r2, r2, #0x40 + strh r2, [r3, #8] + ldrh lr, [r3, #0xa] + mov r2, #0x10 + bic lr, lr, #0x40 + strh lr, [r3, #0xa] + ldrh lr, [r3, #0xc] + bic lr, lr, #0x40 + strh lr, [r3, #0xc] + ldrh lr, [r3, #0xe] + bic lr, lr, #0x40 + strh lr, [r3, #0xe] + str ip, [r3, #0x10] + str ip, [r3, #0x14] + str ip, [r3, #0x18] + str ip, [r3, #0x1c] + bl FUN_02077704 + ldr r2, _02338D10 @ =0x04000008 + ldr r3, _02338D14 @ =0x0400100A + ldrh r0, [r2] + add r1, r2, #0x1000 + and r0, r0, #0x43 + orr r0, r0, #0xc00 + strh r0, [r2] + ldrh r0, [r2, #2] + and r0, r0, #0x43 + orr r0, r0, #0x108 + orr r0, r0, #0xc00 + strh r0, [r2, #2] + ldrh r0, [r2, #4] + and r0, r0, #0x43 + orr r0, r0, #0xe10 + strh r0, [r2, #4] + ldrh r0, [r2, #6] + and r0, r0, #0x43 + orr r0, r0, #0xf10 + strh r0, [r2, #6] + ldrh r0, [r1] + and r0, r0, #0x43 + orr r0, r0, #0xc00 + strh r0, [r1] + ldrh r0, [r3] + and r0, r0, #0x43 + orr r0, r0, #0xd00 + strh r0, [r3] + ldrh r0, [r3, #2] + and r0, r0, #0x43 + orr r0, r0, #0xe00 + strh r0, [r3, #2] + ldrh r0, [r3, #4] + mov r2, #0x4000000 + add r1, r2, #0x304 + and r0, r0, #0x43 + orr r0, r0, #0xf00 + strh r0, [r3, #4] + ldr r0, [r2] + bic r0, r0, #0x38000000 + str r0, [r2] + ldr r0, [r2] + bic r0, r0, #0x7000000 + str r0, [r2] + ldrh r0, [r1] + bic r0, r0, #0x8000 + strh r0, [r1] + bl ov02_0234DB70 + bl ov02_0234F190 + bl ov02_0234F324 + bl ov02_0234D004 + bl FUN_02076258 + ldr r2, _02338D0C @ =0x04001000 + mov r0, #1 + ldr r1, [r2] + orr r1, r1, #0x10000 + str r1, [r2] + bl FUN_020761E8 + pop {r4, pc} + .align 2, 0 +_02338D04: .4byte 0xFFCFFFEF +_02338D08: .4byte 0x00200010 +_02338D0C: .4byte 0x04001000 +_02338D10: .4byte 0x04000008 +_02338D14: .4byte 0x0400100A + arm_func_end ov02_02338AA0 + + arm_func_start ov02_02338D18 +ov02_02338D18: @ 0x02338D18 + push {r3, lr} + bl FUN_0207621C + ldr r1, _02338D64 @ =0x04001000 + ldr r0, [r1] + bic r0, r0, #0x10000 + str r0, [r1] + bl ov02_0234F87C + bl ov02_0234E8D4 + bl ov02_0234F05C + bl ov02_023480B4 + bl ov02_0234D0D8 + bl ov02_0234F274 + bl ov02_0234DC74 + bl ov02_0234D8A8 + bl ov02_0234CD3C + bl ov02_0234F9A0 + bl ov02_0234E744 + bl ov02_0234F6C4 + pop {r3, pc} + .align 2, 0 +_02338D64: .4byte 0x04001000 + arm_func_end ov02_02338D18 + + arm_func_start ov02_02338D68 +ov02_02338D68: @ 0x02338D68 + ldr r1, _02338D74 @ =0x0235AA6C + str r0, [r1, #0xc] + bx lr + .align 2, 0 +_02338D74: .4byte 0x0235AA6C + arm_func_end ov02_02338D68 + + arm_func_start ov02_02338D78 +ov02_02338D78: @ 0x02338D78 + ldr r2, _02338D88 @ =0x0235AA6C + str r0, [r2, #0x10] + str r1, [r2, #0x14] + bx lr + .align 2, 0 +_02338D88: .4byte 0x0235AA6C + arm_func_end ov02_02338D78 + + arm_func_start ov02_02338D8C +ov02_02338D8C: @ 0x02338D8C + cmp r0, #0 + ldrne r2, _02338DB0 @ =0x0235AA6C + ldrne r2, [r2, #0x10] + strne r2, [r0] + cmp r1, #0 + ldrne r0, _02338DB0 @ =0x0235AA6C + ldrne r0, [r0, #0x14] + strne r0, [r1] + bx lr + .align 2, 0 +_02338DB0: .4byte 0x0235AA6C + arm_func_end ov02_02338D8C + + arm_func_start ov02_02338DB4 +ov02_02338DB4: @ 0x02338DB4 + ldr r2, _02338DC4 @ =0x0235AA6C + str r0, [r2, #0x18] + str r1, [r2, #0x1c] + bx lr + .align 2, 0 +_02338DC4: .4byte 0x0235AA6C + arm_func_end ov02_02338DB4 + + arm_func_start ov02_02338DC8 +ov02_02338DC8: @ 0x02338DC8 + cmp r0, #0 + ldrne r2, _02338DEC @ =0x0235AA6C + ldrne r2, [r2, #0x18] + strne r2, [r0] + cmp r1, #0 + ldrne r0, _02338DEC @ =0x0235AA6C + ldrne r0, [r0, #0x1c] + strne r0, [r1] + bx lr + .align 2, 0 +_02338DEC: .4byte 0x0235AA6C + arm_func_end ov02_02338DC8 + + arm_func_start ov02_02338DF0 +ov02_02338DF0: @ 0x02338DF0 + ldr r0, _02338DFC @ =0x0235AA6C + ldrb r0, [r0] + bx lr + .align 2, 0 +_02338DFC: .4byte 0x0235AA6C + arm_func_end ov02_02338DF0 + + arm_func_start ov02_02338E00 +ov02_02338E00: @ 0x02338E00 + ldr r0, _02338E14 @ =0x0235AA6C + ldr r0, [r0, #8] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + bx lr + .align 2, 0 +_02338E14: .4byte 0x0235AA6C + arm_func_end ov02_02338E00 + + arm_func_start ov02_02338E18 +ov02_02338E18: @ 0x02338E18 + ldr r1, _02338E30 @ =0x0235AA6C + ldr r1, [r1, #8] + tst r0, r1, lsr #4 + movne r0, #1 + moveq r0, #0 + bx lr + .align 2, 0 +_02338E30: .4byte 0x0235AA6C + arm_func_end ov02_02338E18 + + arm_func_start ov02_02338E34 +ov02_02338E34: @ 0x02338E34 + ldr r0, _02338E44 @ =0x0235AA6C + mov r1, #1 + strb r1, [r0, #1] + bx lr + .align 2, 0 +_02338E44: .4byte 0x0235AA6C + arm_func_end ov02_02338E34 + + arm_func_start ov02_02338E48 +ov02_02338E48: @ 0x02338E48 + ldr r0, _02338E84 @ =0x0235AA6C + ldrb r1, [r0] + cmp r1, #6 + moveq r0, #0x38 + bxeq lr + cmp r1, #1 + bne _02338E78 + ldr r0, [r0, #8] + lsr r0, r0, #4 + tst r0, #2 + moveq r0, #0x37 + bxeq lr +_02338E78: + add r0, r1, #0x31 + and r0, r0, #0xff + bx lr + .align 2, 0 +_02338E84: .4byte 0x0235AA6C + arm_func_end ov02_02338E48 + + arm_func_start ov02_02338E88 +ov02_02338E88: @ 0x02338E88 + push {r3, lr} + mov r0, #0x64 + mov r1, #4 + bl ov02_0234E7B4 + mov r1, r0 + ldr r3, _02338EC0 @ =0x0235AA8C + mov r0, #8 + mov r2, #0xc + str r1, [r3] + bl ov02_0234D754 + ldr r1, _02338EC0 @ =0x0235AA8C + ldr r1, [r1] + str r0, [r1, #0x60] + pop {r3, pc} + .align 2, 0 +_02338EC0: .4byte 0x0235AA8C + arm_func_end ov02_02338E88 + + arm_func_start ov02_02338EC4 +ov02_02338EC4: @ 0x02338EC4 + ldr ip, _02338ED0 @ =ov02_0234E7D8 + ldr r0, _02338ED4 @ =0x0235AA8C + bx ip + .align 2, 0 +_02338ED0: .4byte ov02_0234E7D8 +_02338ED4: .4byte 0x0235AA8C + arm_func_end ov02_02338EC4 + + arm_func_start ov02_02338ED8 +ov02_02338ED8: @ 0x02338ED8 + push {r3, r4, r5, lr} + ldr r1, _02338F2C @ =0x0235AA8C + mov r5, r0 + ldr r0, [r1] + ldr r0, [r0, #0x60] + bl ov02_0234D808 + mov r4, r0 + add r1, sp, #0 + mov r0, r5 + mov r2, #4 + bl ov02_0234CE84 + add r2, r0, #0x20 + str r0, [r4, #8] + add r0, r2, #0x10 + str r0, [r4] + ldr r1, [r2, #4] + mov r0, r4 + add r1, r2, r1 + add r1, r1, #8 + str r1, [r4, #4] + pop {r3, r4, r5, pc} + .align 2, 0 +_02338F2C: .4byte 0x0235AA8C + arm_func_end ov02_02338ED8 + + arm_func_start ov02_02338F30 +ov02_02338F30: @ 0x02338F30 + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #8] + bl ov02_0234CF78 + ldr r0, _02338F58 @ =0x0235AA8C + mov r1, r4 + ldr r0, [r0] + ldr r0, [r0, #0x60] + bl ov02_0234D7B0 + pop {r4, pc} + .align 2, 0 +_02338F58: .4byte 0x0235AA8C + arm_func_end ov02_02338F30 + + arm_func_start ov02_02338F5C +ov02_02338F5C: @ 0x02338F5C + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + ldm r0, {r2, r3} + ldr r0, [r2, r1, lsl #2] + add r0, r3, r0 + bx lr + arm_func_end ov02_02338F5C + + arm_func_start ov02_02338F74 +ov02_02338F74: @ 0x02338F74 + push {r3, lr} + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + ldm r0, {ip, lr} + ldr r0, [ip, r1, lsl #2] + cmp r2, #0 + add r0, lr, r0 + addge r3, r3, #0x30 + lslge r1, r2, #1 + strhge r3, [r0, r1] + pop {r3, pc} + arm_func_end ov02_02338F74 + + arm_func_start ov02_02338FA0 +ov02_02338FA0: @ 0x02338FA0 + push {r3, r4, lr} + sub sp, sp, #0x1c + mov r4, r0 + ldr r0, _02339078 @ =0x0001E2A4 + mov r1, #0x20 + bl ov02_0234E7B4 + ldr r2, _0233907C @ =0x0235AA90 + add r1, r0, #0x1e000 + str r0, [r2] + str r4, [r1, #0x298] + ldr r0, [r2] + mov r4, #0 + add r0, r0, #0x1e000 + strb r4, [r0, #0x2a0] + ldr r0, [r2] + ldr lr, _02339080 @ =0x02353560 + add r0, r0, #0x1e000 + strb r4, [r0, #0x2a1] + add ip, sp, #0 + ldm lr!, {r0, r1, r2, r3} + stm ip!, {r0, r1, r2, r3} + ldm lr, {r0, r1, r2} + stm ip, {r0, r1, r2} + ldr r0, _02339084 @ =0x0235AA98 + mov r1, r4 + ldr r0, [r0] + bl ov02_02338F5C + ldr r1, _02339084 @ =0x0235AA98 + str r0, [sp, #4] + ldr r0, [r1] + mov r1, #1 + bl ov02_02338F5C + str r0, [sp, #8] + bl ov02_02338E48 + strb r0, [sp, #0x18] + ldr r0, _0233907C @ =0x0235AA90 + add r1, sp, #0 + ldr r0, [r0] + bl ov02_0234BD34 + bl ov02_0234BF80 + cmp r0, #0 + bne _0233904C + bl FUN_0207BC20 +_0233904C: + mov r0, #0 + ldr r1, _02339088 @ =ov02_02339140 + mov r2, r0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _0233907C @ =0x0235AA90 + ldr r1, [r1] + add r1, r1, #0x1e000 + str r0, [r1, #0x29c] + add sp, sp, #0x1c + pop {r3, r4, pc} + .align 2, 0 +_02339078: .4byte 0x0001E2A4 +_0233907C: .4byte 0x0235AA90 +_02339080: .4byte 0x02353560 +_02339084: .4byte 0x0235AA98 +_02339088: .4byte ov02_02339140 + arm_func_end ov02_02338FA0 + + arm_func_start ov02_0233908C +ov02_0233908C: @ 0x0233908C + ldr ip, _023390A4 @ =ov02_0234FA98 + mov r0, #0 + ldr r1, _023390A8 @ =ov02_023390AC + mov r2, r0 + mov r3, #0x78 + bx ip + .align 2, 0 +_023390A4: .4byte ov02_0234FA98 +_023390A8: .4byte ov02_023390AC + arm_func_end ov02_0233908C + + arm_func_start ov02_023390AC +ov02_023390AC: @ 0x023390AC + push {r4, lr} + mov r4, r0 + bl ov02_0234BE24 + cmp r0, #0 + popeq {r4, pc} + ldr r0, _023390E4 @ =0x0235AA90 + mov r1, r4 + ldr r0, [r0] + mov r3, #1 + add r2, r0, #0x1e000 + mov r0, #0 + strb r3, [r2, #0x2a1] + bl ov02_0234FB40 + pop {r4, pc} + .align 2, 0 +_023390E4: .4byte 0x0235AA90 + arm_func_end ov02_023390AC + + arm_func_start ov02_023390E8 +ov02_023390E8: @ 0x023390E8 + ldr r0, _02339100 @ =0x0235AA90 + ldr r0, [r0] + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + bx lr + .align 2, 0 +_02339100: .4byte 0x0235AA90 + arm_func_end ov02_023390E8 + + arm_func_start ov02_02339104 +ov02_02339104: @ 0x02339104 + ldr r1, _02339118 @ =0x0235AA90 + ldr r1, [r1] + add r1, r1, #0x1e000 + str r0, [r1, #0x298] + bx lr + .align 2, 0 +_02339118: .4byte 0x0235AA90 + arm_func_end ov02_02339104 + + arm_func_start ov02_0234BFC8 +ov02_0234BFC8: @ 0x0233911C + ldr ip, _02339124 @ =ov02_0234BFC8 + bx ip + .align 2, 0 +_02339124: .4byte ov02_0234BFC8 + arm_func_end ov02_0234BFC8 + + arm_func_start ov02_02339128 +ov02_02339128: @ 0x02339128 + ldr r0, _0233913C @ =0x0235AA90 + ldr r0, [r0] + add r0, r0, #0x2280 + add r0, r0, #0x1c000 + bx lr + .align 2, 0 +_0233913C: .4byte 0x0235AA90 + arm_func_end ov02_02339128 + + arm_func_start ov02_02339140 +ov02_02339140: @ 0x02339140 + push {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + bl ov02_0234BFFC + ldr r0, _023393D8 @ =0x0235AA90 + ldr r0, [r0] + add r0, r0, #0x1e000 + ldrb r1, [r0, #0x2a0] + cmp r1, #0 + beq _02339194 + ldrb r1, [r0, #0x2a1] + cmp r1, #0 + bne _02339194 + ldr r1, [r0, #0x298] + cmp r1, #0 + addeq sp, sp, #4 + popeq {r3, r4, pc} + mov r0, #0 + blx r1 + add sp, sp, #4 + pop {r3, r4, pc} +_02339194: + add r0, sp, #1 + add r1, sp, #0 + bl ov02_0234C380 + ldrb r0, [sp, #1] + cmp r0, #0x1a + bgt _02339228 + bge _02339334 + cmp r0, #0x14 + bgt _02339218 + cmp r0, #0 + addge pc, pc, r0, lsl #2 + b _023393D0 +_023391C4: @ jump table + b _023393D0 @ case 0 + b _023393D0 @ case 1 + b _023393D0 @ case 2 + b _023393D0 @ case 3 + b _023393D0 @ case 4 + b _0233924C @ case 5 + b _023393D0 @ case 6 + b _023393D0 @ case 7 + b _023393D0 @ case 8 + b _023393D0 @ case 9 + b _023393D0 @ case 10 + b _023393D0 @ case 11 + b _02339378 @ case 12 + b _023392AC @ case 13 + b _023393D0 @ case 14 + b _023393D0 @ case 15 + b _023393D0 @ case 16 + b _023393D0 @ case 17 + b _023393D0 @ case 18 + b _023393D0 @ case 19 + b _023392F0 @ case 20 +_02339218: + cmp r0, #0x17 + beq _023392F0 + add sp, sp, #4 + pop {r3, r4, pc} +_02339228: + cmp r0, #0x1d + bgt _0233923C + beq _02339334 + add sp, sp, #4 + pop {r3, r4, pc} +_0233923C: + cmp r0, #0x22 + beq _023393BC + add sp, sp, #4 + pop {r3, r4, pc} +_0233924C: + ldrb r0, [sp] + cmp r0, #0 + addeq sp, sp, #4 + popeq {r3, r4, pc} + ldr r0, _023393D8 @ =0x0235AA90 + ldr r0, [r0] + add r4, r0, #0x2280 + bl ov02_0234C3C4 + add r1, r4, #0x1c000 + mov r2, #0x16 + bl FUN_0207C2E0 + ldr r0, _023393D8 @ =0x0235AA90 + ldr r0, [r0] + add r0, r0, #0x1e000 + ldr r1, [r0, #0x298] + cmp r1, #0 + moveq r1, #1 + strbeq r1, [r0, #0x2a0] + addeq sp, sp, #4 + popeq {r3, r4, pc} + mov r0, #0 + blx r1 + add sp, sp, #4 + pop {r3, r4, pc} +_023392AC: + ldrb r0, [sp] + cmp r0, #0 + addeq sp, sp, #4 + popeq {r3, r4, pc} + ldr r0, _023393D8 @ =0x0235AA90 + ldr r0, [r0] + add r0, r0, #0x1e000 + ldr r1, [r0, #0x298] + cmp r1, #0 + moveq r1, #1 + strbeq r1, [r0, #0x2a0] + addeq sp, sp, #4 + popeq {r3, r4, pc} + mov r0, #1 + blx r1 + add sp, sp, #4 + pop {r3, r4, pc} +_023392F0: + ldrb r0, [sp] + cmp r0, #0 + addeq sp, sp, #4 + popeq {r3, r4, pc} + ldr r0, _023393D8 @ =0x0235AA90 + ldr r0, [r0] + add r0, r0, #0x1e000 + ldr r1, [r0, #0x298] + cmp r1, #0 + moveq r1, #1 + strbeq r1, [r0, #0x2a0] + addeq sp, sp, #4 + popeq {r3, r4, pc} + mov r0, #3 + blx r1 + add sp, sp, #4 + pop {r3, r4, pc} +_02339334: + ldrb r0, [sp] + cmp r0, #0 + addeq sp, sp, #4 + popeq {r3, r4, pc} + ldr r0, _023393D8 @ =0x0235AA90 + ldr r0, [r0] + add r0, r0, #0x1e000 + ldr r1, [r0, #0x298] + cmp r1, #0 + moveq r1, #1 + strbeq r1, [r0, #0x2a0] + addeq sp, sp, #4 + popeq {r3, r4, pc} + mov r0, #4 + blx r1 + add sp, sp, #4 + pop {r3, r4, pc} +_02339378: + ldrb r0, [sp] + cmp r0, #0 + addeq sp, sp, #4 + popeq {r3, r4, pc} + ldr r0, _023393D8 @ =0x0235AA90 + ldr r0, [r0] + add r0, r0, #0x1e000 + ldr r1, [r0, #0x298] + cmp r1, #0 + moveq r1, #1 + strbeq r1, [r0, #0x2a0] + addeq sp, sp, #4 + popeq {r3, r4, pc} + mov r0, #2 + blx r1 + add sp, sp, #4 + pop {r3, r4, pc} +_023393BC: + mov r1, r4 + mov r0, #0 + bl ov02_0234FB40 + ldr r0, _023393DC @ =0x0235AA90 + bl ov02_0234E7D8 +_023393D0: + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_023393D8: .4byte 0x0235AA90 +_023393DC: .4byte 0x0235AA90 + arm_func_end ov02_02339140 + + arm_func_start ov02_023393E0 +ov02_023393E0: @ 0x023393E0 + push {r3, lr} + sub sp, sp, #8 + mov r0, #0xc + sub r1, r0, #0x10 + bl ov02_0234E7B4 + ldr r1, _0233943C @ =0x0235AA94 + ldr ip, _02339440 @ =0x02339580 + str r0, [r1] + ldr r2, _02339444 @ =0x02339558 + ldr r3, _02339448 @ =0x02339570 + str ip, [sp] + mov ip, #0x800 + mov r0, #0xf + mov r1, #0x40 + str ip, [sp, #4] + blx ov02_023341F8 + cmp r0, #1 + beq _0233942C + bl FUN_0207BC20 +_0233942C: + mov r0, #0xa + bl FUN_02079B14 + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_0233943C: .4byte 0x0235AA94 +_02339440: .4byte 0x02339580 +_02339444: .4byte 0x02339558 +_02339448: .4byte 0x02339570 + arm_func_end ov02_023393E0 + + arm_func_start ov02_0233944C +ov02_0233944C: @ 0x0233944C + push {r3, lr} + blx ov02_023342E0 + cmp r0, #1 + beq _02339460 + bl FUN_0207BC20 +_02339460: + ldr r0, _0233946C @ =0x0235AA94 + bl ov02_0234E7D8 + pop {r3, pc} + .align 2, 0 +_0233946C: .4byte 0x0235AA94 + arm_func_end ov02_0233944C + + arm_func_start ov02_02339470 +ov02_02339470: @ 0x02339470 + push {r3, lr} + sub sp, sp, #0xe8 + ldr r1, _02339528 @ =0x0235AA94 + ldr r1, [r1] + ldr r1, [r1] + cmp r1, #7 + addls pc, pc, r1, lsl #2 + b _02339520 +_02339490: @ jump table + b _023394B0 @ case 0 + b _023394B0 @ case 1 + b _023394BC @ case 2 + b _023394B0 @ case 3 + b _023394C8 @ case 4 + b _023394B0 @ case 5 + b _023394D4 @ case 6 + b _0233951C @ case 7 +_023394B0: + add sp, sp, #0xe8 + mov r0, #0 + pop {r3, pc} +_023394BC: + add sp, sp, #0xe8 + mov r0, #1 + pop {r3, pc} +_023394C8: + add sp, sp, #0xe8 + mov r0, #2 + pop {r3, pc} +_023394D4: + add r0, sp, #0 + blx ov02_023343AC + cmp r0, #1 + beq _023394E8 + bl FUN_0207BC20 +_023394E8: + ldr r0, [sp, #0x20] + cmp r0, #0 + blt _02339510 + cmp r0, #3 + bgt _02339510 + ldr r0, [sp, #0x24] + cmp r0, #1 + addeq sp, sp, #0xe8 + moveq r0, #3 + popeq {r3, pc} +_02339510: + add sp, sp, #0xe8 + mov r0, #5 + pop {r3, pc} +_0233951C: + mov r0, #4 +_02339520: + add sp, sp, #0xe8 + pop {r3, pc} + .align 2, 0 +_02339528: .4byte 0x0235AA94 + arm_func_end ov02_02339470 + + arm_func_start ov02_0233952C +ov02_0233952C: @ 0x0233952C + push {r3, lr} + sub sp, sp, #0xe8 + add r0, sp, #0 + blx ov02_023343AC + cmp r0, #1 + beq _02339548 + bl FUN_0207BC20 +_02339548: + add r0, sp, #0 + bl ov02_02347AF8 + add sp, sp, #0xe8 + pop {r3, pc} + arm_func_end ov02_0233952C +_02339558: + .byte 0x0C, 0x30, 0x9F, 0xE5, 0x07, 0x00, 0x90, 0xE8 + .byte 0x00, 0x30, 0x93, 0xE5, 0x07, 0x00, 0x83, 0xE8, 0x1E, 0xFF, 0x2F, 0xE1, 0x94, 0xAA, 0x35, 0x02 + .byte 0x04, 0xC0, 0x9F, 0xE5, 0x20, 0x10, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0xB4, 0xE7, 0x34, 0x02 + .byte 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1, 0x1C, 0xE8, 0x34, 0x02 + + arm_func_start ov02_0233958C +ov02_0233958C: @ 0x0233958C + push {r3, lr} + mov r0, #3 + mov r1, #1 + mov r2, #0x3f + mov r3, #0x14 + bl ov02_0234D8E0 + mov r0, #3 + mov r1, #0 + mov r2, #0x3f + mov r3, #0x14 + bl ov02_0234D8E0 + ldr r0, _023395C4 @ =ov02_023395C8 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023395C4: .4byte ov02_023395C8 + arm_func_end ov02_0233958C + + arm_func_start ov02_023395C8 +ov02_023395C8: @ 0x023395C8 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + mov r1, r0 + bl ov02_0234FBB0 + mov r0, #1 + mov r1, #0 + bl ov02_0234FBB0 + mov r0, #1 + bl ov02_0234D5F0 + mov r0, #0 + bl ov02_0234D5F0 + bl ov02_02335254 + bl ov02_02334FD8 + ldr r0, _02339638 @ =0x0235AA98 + ldr r0, [r0] + bl ov02_02338F30 + bl ov02_02338EC4 + bl ov02_02347504 + bl ov02_02338E34 + pop {r3, pc} + .align 2, 0 +_02339638: .4byte 0x0235AA98 + arm_func_end ov02_023395C8 + + arm_func_start ov02_0233963C +ov02_0233963C: @ 0x0233963C + push {r3, lr} + bl ov02_023474C0 + bl ov02_02338E88 + bl ov02_02334FB8 + bl ov02_023351DC + bl ov02_02334C28 + bl ov02_02338DF0 + cmp r0, #1 + bne _02339684 + mov r0, #2 + bl ov02_02338E18 + cmp r0, #0 + beq _02339684 + ldr r0, _023397B4 @ =0x02353608 + bl ov02_02338ED8 + ldr r1, _023397B8 @ =0x0235AA98 + str r0, [r1] + b _0233969C +_02339684: + bl ov02_02338DF0 + ldr r1, _023397BC @ =0x023535EC + ldr r0, [r1, r0, lsl #2] + bl ov02_02338ED8 + ldr r1, _023397B8 @ =0x0235AA98 + str r0, [r1] +_0233969C: + ldr r0, _023397C0 @ =0x02353618 + bl ov02_02334D48 + mov r1, r0 + mov r0, #1 + bl ov02_0234D5C0 + ldr r0, _023397C4 @ =0x0235362C + bl ov02_02334D48 + mov r1, r0 + mov r0, #0 + bl ov02_0234D5C0 + ldr r0, _023397C8 @ =0x02353640 + ldr r1, _023397CC @ =0x020782B0 + bl ov02_02334DA8 + ldr r0, _023397D0 @ =0x02353654 + ldr r1, _023397D4 @ =0x02077D4C + bl ov02_02334DA8 + ldr r0, _023397D8 @ =0x02353668 + ldr r1, _023397DC @ =0x02077F58 + bl ov02_02334DA8 + ldr r0, _023397E0 @ =0x02353680 + ldr r1, _023397E4 @ =0x02077DFC + bl ov02_02334DA8 + ldr r0, _023397E8 @ =0x02353698 + ldr r1, _023397EC @ =0x02078310 + bl ov02_02334DA8 + ldr r0, _023397F0 @ =0x023536B0 + ldr r1, _023397F4 @ =FUN_02077CF8 + bl ov02_02334DA8 + ldr r0, _023397F8 @ =0x023536C8 + ldr r1, _023397FC @ =0x02077F00 + bl ov02_02334DA8 + ldr r0, _02339800 @ =0x023536E0 + ldr r1, _02339804 @ =0x02077DA4 + bl ov02_02334DA8 + bl ov02_02338E00 + cmp r0, #0 + beq _0233973C + cmp r0, #1 + beq _0233974C + b _02339758 +_0233973C: + ldr r0, _02339808 @ =0x023536F8 + ldr r1, _0233980C @ =FUN_02078070 + bl ov02_02334DA8 + b _02339758 +_0233974C: + ldr r0, _02339810 @ =0x0235370C + ldr r1, _0233980C @ =FUN_02078070 + bl ov02_02334DA8 +_02339758: + ldr ip, _02339814 @ =0x0400100A + mov r0, #1 + ldrh r2, [ip] + sub r3, ip, #0x1000 + mov r1, #2 + bic r2, r2, #3 + orr r2, r2, #3 + strh r2, [ip] + ldrh r2, [r3] + bic r2, r2, #3 + orr r2, r2, #3 + strh r2, [r3] + ldrh r2, [r3] + bic r2, r2, #3 + orr r2, r2, #3 + strh r2, [r3] + bl ov02_0234E3D0 + mov r0, #0 + mov r1, #2 + bl ov02_0234E3D0 + ldr r0, _02339818 @ =ov02_0233981C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023397B4: .4byte 0x02353608 +_023397B8: .4byte 0x0235AA98 +_023397BC: .4byte 0x023535EC +_023397C0: .4byte 0x02353618 +_023397C4: .4byte 0x0235362C +_023397C8: .4byte 0x02353640 +_023397CC: .4byte 0x020782B0 +_023397D0: .4byte 0x02353654 +_023397D4: .4byte 0x02077D4C +_023397D8: .4byte 0x02353668 +_023397DC: .4byte 0x02077F58 +_023397E0: .4byte 0x02353680 +_023397E4: .4byte 0x02077DFC +_023397E8: .4byte 0x02353698 +_023397EC: .4byte 0x02078310 +_023397F0: .4byte 0x023536B0 +_023397F4: .4byte FUN_02077CF8 +_023397F8: .4byte 0x023536C8 +_023397FC: .4byte 0x02077F00 +_02339800: .4byte 0x023536E0 +_02339804: .4byte 0x02077DA4 +_02339808: .4byte 0x023536F8 +_0233980C: .4byte FUN_02078070 +_02339810: .4byte 0x0235370C +_02339814: .4byte 0x0400100A +_02339818: .4byte ov02_0233981C + arm_func_end ov02_0233963C + + arm_func_start ov02_0233981C +ov02_0233981C: @ 0x0233981C + push {r3, lr} + mov r0, #2 + mov r2, r0 + mov r1, #1 + mov r3, #0x14 + bl ov02_0234D8E0 + mov r0, #2 + mov r2, r0 + mov r1, #0 + mov r3, #0x14 + bl ov02_0234D8E0 + ldr r0, _02339854 @ =ov02_02339858 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02339854: .4byte ov02_02339858 + arm_func_end ov02_0233981C + + arm_func_start ov02_02339858 +ov02_02339858: @ 0x02339858 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_02338E00 + cmp r0, #0 + beq _02339894 + cmp r0, #1 + beq _023398AC + pop {r3, pc} +_02339894: + mov r0, #0 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _023398C4 @ =ov02_023398CC + bl ov02_02338D68 + pop {r3, pc} +_023398AC: + mov r0, #1 + mov r1, r0 + bl ov02_02338D78 + ldr r0, _023398C8 @ =ov02_02343DB0 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023398C4: .4byte ov02_023398CC +_023398C8: .4byte ov02_02343DB0 + arm_func_end ov02_02339858 + + arm_func_start ov02_023398CC +ov02_023398CC: @ 0x023398CC + push {r3, lr} + bl ov02_02339948 + mov r0, #0 + bl ov02_02335268 + mov r0, #0x2e + sub r1, r0, #0x2f + mov r2, #0 + bl ov02_02334C3C + mov r0, #4 + bl ov02_02348C1C + ldr r0, _02339930 @ =0x0235AA9C + ldr r3, _02339934 @ =0x0235291A + ldrb r0, [r0] + ldr r1, _02339938 @ =0x0235291E + ldr r2, _0233993C @ =0x0235291C + lsl ip, r0, #3 + ldrh r0, [r3, ip] + ldrh r1, [r1, ip] + ldrh r2, [r2, ip] + ldr r3, _02339940 @ =0x02352920 + ldrh r3, [r3, ip] + bl ov02_023350AC + ldr r0, _02339944 @ =ov02_02339A34 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02339930: .4byte 0x0235AA9C +_02339934: .4byte 0x0235291A +_02339938: .4byte 0x0235291E +_0233993C: .4byte 0x0235291C +_02339940: .4byte 0x02352920 +_02339944: .4byte ov02_02339A34 + arm_func_end ov02_023398CC + + arm_func_start ov02_02339948 +ov02_02339948: @ 0x02339948 + push {r3, lr} + sub sp, sp, #0x18 + ldr ip, _02339A0C @ =0x0235292A + add r3, sp, #0 + mov r2, #0xb +_0233995C: + ldrb r1, [ip] + ldrb r0, [ip, #1] + add ip, ip, #2 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + bne _0233995C + ldr r0, _02339A10 @ =0x02353720 + ldr r1, _02339A14 @ =0x02078310 + bl ov02_02334DA8 + ldr r0, _02339A18 @ =0x02353738 + ldr r1, _02339A1C @ =FUN_02077CF8 + bl ov02_02334DA8 + ldr r0, _02339A20 @ =0x02353750 + ldr r1, _02339A24 @ =FUN_020780D0 + bl ov02_02334DA8 + add r0, sp, #0 + bl ov02_02334D48 + mov r1, #0 + mov r2, #4 + bl ov02_0234CE84 + ldr r1, _02339A28 @ =0x0235AA9C + ldr r2, _02339A2C @ =0x04001008 + str r0, [r1, #4] + ldrh r0, [r2] + ldr r1, _02339A30 @ =0x0400000A + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r2, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2, #2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + add sp, sp, #0x18 + pop {r3, pc} + .align 2, 0 +_02339A0C: .4byte 0x0235292A +_02339A10: .4byte 0x02353720 +_02339A14: .4byte 0x02078310 +_02339A18: .4byte 0x02353738 +_02339A1C: .4byte FUN_02077CF8 +_02339A20: .4byte 0x02353750 +_02339A24: .4byte FUN_020780D0 +_02339A28: .4byte 0x0235AA9C +_02339A2C: .4byte 0x04001008 +_02339A30: .4byte 0x0400000A + arm_func_end ov02_02339948 + + arm_func_start ov02_02339A34 +ov02_02339A34: @ 0x02339A34 + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #2 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #2 + mov r1, #0 + mov r2, #0x14 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #1 + mov r1, r0 + bl ov02_0234E3D0 + mov r0, #0 + mov r1, #0x14 + bl ov02_0234E3D0 + ldr r0, _02339A84 @ =ov02_02339A88 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02339A84: .4byte ov02_02339A88 + arm_func_end ov02_02339A34 + + arm_func_start ov02_02339A88 +ov02_02339A88: @ 0x02339A88 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_02334E38 + ldr r0, _02339AC0 @ =0x02339AC4 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02339AC0: .4byte 0x02339AC4 + arm_func_end ov02_02339A88 +_02339AC4: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x03, 0xEB, 0xFF, 0xEB, 0x01, 0x10, 0xE0, 0xE3 + .byte 0x01, 0x00, 0x50, 0xE1, 0x08, 0x80, 0xBD, 0x08, 0x1C, 0xEB, 0xFF, 0xEB, 0x04, 0x00, 0x9F, 0xE5 + .byte 0xA0, 0xFC, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0xEC, 0x9A, 0x33, 0x02, 0x08, 0x40, 0x2D, 0xE9 + .byte 0x02, 0x00, 0x00, 0xEB, 0x4C, 0x00, 0x00, 0xEB, 0x4C, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_02339B00 +ov02_02339B00: @ 0x02339B00 + push {r3, r4, r5, lr} + ldr r5, _02339C14 @ =0x0235290A + mov r4, #0 +_02339B0C: + mov r0, r5 + bl ov02_0234ED04 + cmp r0, #0 + beq _02339B5C + mov r0, #1 + bl ov02_023346F0 + and r1, r4, #0xff + lsl lr, r1, #3 + ldr r0, _02339C18 @ =0x0235291A + ldr r1, _02339C1C @ =0x0235291E + ldr r2, _02339C20 @ =0x0235291C + ldr r3, _02339C24 @ =0x02352920 + ldr ip, _02339C28 @ =0x0235AA9C + ldrh r0, [r0, lr] + ldrh r1, [r1, lr] + ldrh r2, [r2, lr] + ldrh r3, [r3, lr] + strb r4, [ip] + bl ov02_023350AC + pop {r3, r4, r5, pc} +_02339B5C: + add r4, r4, #1 + cmp r4, #2 + add r5, r5, #8 + blo _02339B0C + mov r0, #1 + bl ov02_0234EBBC + cmp r0, #0 + beq _02339B88 + mov r0, #1 + bl ov02_023346F0 + pop {r3, r4, r5, pc} +_02339B88: + mov r0, #2 + bl ov02_0234EBBC + cmp r0, #0 + beq _02339BA4 + mov r0, #0 + bl ov02_023346F0 + pop {r3, r4, r5, pc} +_02339BA4: + mov r0, #0x40 + bl ov02_0234EBFC + cmp r0, #0 + beq _02339BC0 + mov r0, #1 + bl ov02_02339D94 + pop {r3, r4, r5, pc} +_02339BC0: + mov r0, #0x80 + bl ov02_0234EBFC + cmp r0, #0 + beq _02339BDC + mov r0, #3 + bl ov02_02339D94 + pop {r3, r4, r5, pc} +_02339BDC: + mov r0, #0x20 + bl ov02_0234EBFC + cmp r0, #0 + beq _02339BF8 + mov r0, #0 + bl ov02_02339D94 + pop {r3, r4, r5, pc} +_02339BF8: + mov r0, #0x10 + bl ov02_0234EBFC + cmp r0, #0 + popeq {r3, r4, r5, pc} + mov r0, #2 + bl ov02_02339D94 + pop {r3, r4, r5, pc} + .align 2, 0 +_02339C14: .4byte 0x0235290A +_02339C18: .4byte 0x0235291A +_02339C1C: .4byte 0x0235291E +_02339C20: .4byte 0x0235291C +_02339C24: .4byte 0x02352920 +_02339C28: .4byte 0x0235AA9C + arm_func_end ov02_02339B00 + + arm_func_start ov02_02339C2C +ov02_02339C2C: @ 0x02339C2C + bx lr + arm_func_end ov02_02339C2C + + arm_func_start ov02_02339C30 +ov02_02339C30: @ 0x02339C30 + push {r3, lr} + bl ov02_023346DC + cmp r0, #0 + beq _02339C4C + cmp r0, #1 + beq _02339C60 + pop {r3, pc} +_02339C4C: + mov r0, #7 + bl ov02_023480E0 + ldr r0, _02339C78 @ =ov02_0233958C + bl ov02_02338D68 + pop {r3, pc} +_02339C60: + mov r0, #6 + bl ov02_023480E0 + bl ov02_02339E04 + ldr r0, _02339C7C @ =0x02339C80 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02339C78: .4byte ov02_0233958C +_02339C7C: .4byte 0x02339C80 + arm_func_end ov02_02339C30 +_02339C80: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xB7, 0xEA, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE3, 0x93, 0x4F, 0x00, 0xEB + .byte 0x04, 0x00, 0x9F, 0xE5, 0x33, 0xFC, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0xA0, 0x9C, 0x33, 0x02 + + arm_func_start ov02_02339CA0 +ov02_02339CA0: @ 0x02339CA0 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #3 + mov r1, #0 + mov r2, #0x16 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _02339CE8 @ =ov02_02339CEC + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02339CE8: .4byte ov02_02339CEC + arm_func_end ov02_02339CA0 + + arm_func_start ov02_02339CEC +ov02_02339CEC: @ 0x02339CEC + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_0233519C + bl ov02_02334D10 + ldr r0, _02339D88 @ =0x0235AA9C + ldr r0, [r0, #4] + bl ov02_0234CF78 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 + mov r0, #0 + mov r1, #0x14 + bl ov02_0234E424 + ldr r0, _02339D88 @ =0x0235AA9C + ldrb r0, [r0] + cmp r0, #0 + beq _02339D58 + cmp r0, #1 + beq _02339D70 + pop {r3, pc} +_02339D58: + mov r0, #1 + mov r1, #0 + bl ov02_02338D78 + ldr r0, _02339D8C @ =ov02_02343DB0 + bl ov02_02338D68 + pop {r3, pc} +_02339D70: + mov r0, #0 + mov r1, r0 + bl ov02_02338D78 + ldr r0, _02339D90 @ =ov02_0233A904 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02339D88: .4byte 0x0235AA9C +_02339D8C: .4byte ov02_02343DB0 +_02339D90: .4byte ov02_0233A904 + arm_func_end ov02_02339CEC + + arm_func_start ov02_02339D94 +ov02_02339D94: @ 0x02339D94 + push {r3, lr} + cmp r0, #1 + cmpne r0, #3 + popeq {r3, pc} + ldr r1, _02339DF0 @ =0x0235AA9C + mov r0, #8 + ldrb r2, [r1] + eor r2, r2, #1 + strb r2, [r1] + bl ov02_023480E0 + ldr r0, _02339DF0 @ =0x0235AA9C + ldr ip, _02339DF4 @ =0x0235291A + ldrb r0, [r0] + ldr r1, _02339DF8 @ =0x0235291E + ldr r2, _02339DFC @ =0x0235291C + lsl lr, r0, #3 + ldr r3, _02339E00 @ =0x02352920 + ldrh r0, [ip, lr] + ldrh r1, [r1, lr] + ldrh r2, [r2, lr] + ldrh r3, [r3, lr] + bl ov02_023350AC + pop {r3, pc} + .align 2, 0 +_02339DF0: .4byte 0x0235AA9C +_02339DF4: .4byte 0x0235291A +_02339DF8: .4byte 0x0235291E +_02339DFC: .4byte 0x0235291C +_02339E00: .4byte 0x02352920 + arm_func_end ov02_02339D94 + + arm_func_start ov02_02339E04 +ov02_02339E04: @ 0x02339E04 + push {r3, lr} + ldr r1, _02339E3C @ =0x02352908 + ldr r0, _02339E40 @ =0x0235AA9C + ldrb r3, [r1] + ldrb r2, [r1, #1] + ldrb r1, [r0] + add ip, sp, #0 + strb r3, [sp] + strb r2, [sp, #1] + ldrb r1, [ip, r1] + ldr r0, [r0, #4] + mov r2, r1 + bl ov02_023468A0 + pop {r3, pc} + .align 2, 0 +_02339E3C: .4byte 0x02352908 +_02339E40: .4byte 0x0235AA9C + arm_func_end ov02_02339E04 + + arm_func_start ov02_02339E44 +ov02_02339E44: @ 0x02339E44 + push {r3, lr} + ldr r0, _02339E84 @ =0x0235AAA4 + mov r1, #0 + strb r1, [r0] + bl ov02_02339E8C + mov r0, #0x12 + bl ov02_02335268 + mov r0, #0x3b + sub r1, r0, #0x3c + mov r2, #0 + bl ov02_02334C3C + mov r0, #0x17 + bl ov02_02334E70 + ldr r0, _02339E88 @ =ov02_02339F0C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02339E84: .4byte 0x0235AAA4 +_02339E88: .4byte ov02_02339F0C + arm_func_end ov02_02339E44 + + arm_func_start ov02_02339E8C +ov02_02339E8C: @ 0x02339E8C + push {r3, lr} + ldr r0, _02339EFC @ =0x02353764 + ldr r1, _02339F00 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _02339F04 @ =0x04001008 + ldr r1, _02339F08 @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_02339EFC: .4byte 0x02353764 +_02339F00: .4byte FUN_020780D0 +_02339F04: .4byte 0x04001008 +_02339F08: .4byte 0x0400000A + arm_func_end ov02_02339E8C + + arm_func_start ov02_02339F0C +ov02_02339F0C: @ 0x02339F0C + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #2 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #1 + mov r1, r0 + bl ov02_0234E3D0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _02339F5C @ =ov02_02339F60 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02339F5C: .4byte ov02_02339F60 + arm_func_end ov02_02339F0C + + arm_func_start ov02_02339F60 +ov02_02339F60: @ 0x02339F60 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #3 + bl ov02_02334E38 + ldr r0, _02339F98 @ =0x02339F9C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02339F98: .4byte 0x02339F9C + arm_func_end ov02_02339F60 +_02339F9C: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0xCD, 0xE9, 0xFF, 0xEB, 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x08, 0x80, 0xBD, 0x08 + .byte 0xE6, 0xE9, 0xFF, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0x6A, 0xFB, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0xC4, 0x9F, 0x33, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x02, 0x00, 0x00, 0xEB, 0x0F, 0x00, 0x00, 0xEB + .byte 0x0F, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_02339FD8 +ov02_02339FD8: @ 0x02339FD8 + push {r3, lr} + mov r0, #1 + bl ov02_0234EBBC + cmp r0, #0 + beq _02339FF4 + mov r0, #1 + bl ov02_023346F0 +_02339FF4: + mov r0, #2 + bl ov02_0234EBBC + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} + arm_func_end ov02_02339FD8 + + arm_func_start ov02_0233A010 +ov02_0233A010: @ 0x0233A010 + bx lr + arm_func_end ov02_0233A010 + + arm_func_start ov02_0233A014 +ov02_0233A014: @ 0x0233A014 + push {r3, lr} + bl ov02_023346DC + cmp r0, #0 + beq _0233A030 + cmp r0, #1 + beq _0233A044 + pop {r3, pc} +_0233A030: + mov r0, #7 + bl ov02_023480E0 + ldr r0, _0233A074 @ =0x0233A07C + bl ov02_02338D68 + pop {r3, pc} +_0233A044: + mov r0, #6 + bl ov02_023480E0 + mov r2, #1 + mov r1, #0 + sub r3, r2, #2 + mov r0, #0x18 + str r1, [sp] + bl ov02_02349394 + bl ov02_02334768 + ldr r0, _0233A078 @ =ov02_0233A1B8 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233A074: .4byte 0x0233A07C +_0233A078: .4byte ov02_0233A1B8 + arm_func_end ov02_0233A014 +_0233A07C: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0xB8, 0xE9, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE3, 0x94, 0x4E, 0x00, 0xEB, 0x04, 0x00, 0x9F, 0xE5 + .byte 0x34, 0xFB, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x9C, 0xA0, 0x33, 0x02 + + arm_func_start ov02_0233A09C +ov02_0233A09C: @ 0x0233A09C + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_023346AC + ldr r0, _0233A0F8 @ =0x0235AAA4 + ldrb r0, [r0] + cmp r0, #0 + bne _0233A0D8 + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 +_0233A0D8: + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _0233A0FC @ =ov02_0233A100 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233A0F8: .4byte 0x0235AAA4 +_0233A0FC: .4byte ov02_0233A100 + arm_func_end ov02_0233A09C + + arm_func_start ov02_0233A100 +ov02_0233A100: @ 0x0233A100 + push {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + ldr r0, _0233A1AC @ =0x0235AAA4 + ldrb r0, [r0] + cmp r0, #0 + bne _0233A134 + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} +_0233A134: + bl ov02_02334724 + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_0234E02C + ldr r0, _0233A1AC @ =0x0235AAA4 + ldrb r0, [r0] + cmp r0, #0 + bne _0233A168 + bl ov02_02334D10 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 +_0233A168: + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + ldr r0, _0233A1AC @ =0x0235AAA4 + mov r1, #1 + ldrb r0, [r0] + cmp r0, #0 + mov r0, #0 + bne _0233A19C + bl ov02_02338D78 + ldr r0, _0233A1B0 @ =ov02_0233A904 + bl ov02_02338D68 + pop {r3, pc} +_0233A19C: + bl ov02_02338D78 + ldr r0, _0233A1B4 @ =0x0233A228 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233A1AC: .4byte 0x0235AAA4 +_0233A1B0: .4byte ov02_0233A904 +_0233A1B4: .4byte 0x0233A228 + arm_func_end ov02_0233A100 + + arm_func_start ov02_0233A1B8 +ov02_0233A1B8: @ 0x0233A1B8 + push {r3, lr} + bl ov02_02349704 + cmp r0, #0 + beq _0233A1E8 + cmp r0, #1 + popne {r3, pc} + mov r0, #0xe + bl ov02_023480E0 + ldr r0, _0233A200 @ =0x0235AAA4 + mov r1, #1 + strb r1, [r0] + b _0233A1F0 +_0233A1E8: + mov r0, #7 + bl ov02_023480E0 +_0233A1F0: + bl ov02_023496C0 + ldr r0, _0233A204 @ =0x0233A208 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233A200: .4byte 0x0235AAA4 +_0233A204: .4byte 0x0233A208 + arm_func_end ov02_0233A1B8 +_0233A208: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x41, 0x3D, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18, 0x04, 0x00, 0x9F, 0xE5, 0xD1, 0xFA, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0x7C, 0xA0, 0x33, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x06, 0x00, 0x00, 0xEB + .byte 0x19, 0x00, 0xA0, 0xE3, 0x0D, 0xEB, 0xFF, 0xEB, 0xCA, 0x36, 0x00, 0xEB, 0x04, 0x00, 0x9F, 0xE5 + .byte 0xC8, 0xFA, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0xCC, 0xA2, 0x33, 0x02 + + arm_func_start ov02_0233A24C +ov02_0233A24C: @ 0x0233A24C + push {r3, lr} + ldr r0, _0233A2BC @ =0x02353778 + ldr r1, _0233A2C0 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _0233A2C4 @ =0x04001008 + ldr r1, _0233A2C8 @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_0233A2BC: .4byte 0x02353778 +_0233A2C0: .4byte FUN_020780D0 +_0233A2C4: .4byte 0x04001008 +_0233A2C8: .4byte 0x0400000A + arm_func_end ov02_0233A24C + + arm_func_start ov02_0233A2CC +ov02_0233A2CC: @ 0x0233A2CC + push {r3, lr} + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _0233A2FC @ =ov02_0233A300 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233A2FC: .4byte ov02_0233A300 + arm_func_end ov02_0233A2CC + + arm_func_start ov02_0233A300 +ov02_0233A300: @ 0x0233A300 + push {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #5 + bl ov02_02334E38 + ldr r0, _0233A328 @ =0x0233A32C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233A328: .4byte 0x0233A32C + arm_func_end ov02_0233A300 +_0233A32C: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0xE9, 0xE8, 0xFF, 0xEB, 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x08, 0x80, 0xBD, 0x08 + .byte 0x02, 0xE9, 0xFF, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0x86, 0xFA, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x54, 0xA3, 0x33, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x02, 0x00, 0x00, 0xEB, 0x09, 0x00, 0x00, 0xEB + .byte 0x09, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0233A368 +ov02_0233A368: @ 0x0233A368 + push {r3, lr} + mov r0, #1 + bl ov02_0234EBBC + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} + arm_func_end ov02_0233A368 + + arm_func_start ov02_0233A388 +ov02_0233A388: @ 0x0233A388 + bx lr + arm_func_end ov02_0233A388 + + arm_func_start ov02_0233A38C +ov02_0233A38C: @ 0x0233A38C + push {r3, lr} + bl ov02_023346DC + cmp r0, #0 + popne {r3, pc} + mov r0, #6 + bl ov02_023480E0 + ldr r0, _0233A3B0 @ =0x0233A3B4 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233A3B0: .4byte 0x0233A3B4 + arm_func_end ov02_0233A38C +_0233A3B4: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xEA, 0xE8, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE3 + .byte 0xC6, 0x4D, 0x00, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0x66, 0xFA, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0xD4, 0xA3, 0x33, 0x02 + + arm_func_start ov02_0233A3D4 +ov02_0233A3D4: @ 0x0233A3D4 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #3 + mov r1, #1 + mov r2, #0x3f + mov r3, #0x40 + bl ov02_0234D8E0 + mov r0, #3 + mov r1, #0 + mov r2, #0x3f + mov r3, #0x40 + bl ov02_0234D8E0 + ldr r0, _0233A41C @ =ov02_0233A420 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233A41C: .4byte ov02_0233A420 + arm_func_end ov02_0233A3D4 + + arm_func_start ov02_0233A420 +ov02_0233A420: @ 0x0233A420 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0x1000000 + bl FUN_0207B854 + bl FUN_0208200C + pop {r3, pc} + arm_func_end ov02_0233A420 + + arm_func_start ov02_0233A454 +ov02_0233A454: @ 0x0233A454 + push {r3, lr} + bl ov02_0233A488 + mov r0, #0x11 + bl ov02_02335268 + mov r0, #0x3a + sub r1, r0, #0x3b + mov r2, #0 + bl ov02_02334C3C + bl ov02_0233A508 + ldr r0, _0233A484 @ =ov02_0233A70C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233A484: .4byte ov02_0233A70C + arm_func_end ov02_0233A454 + + arm_func_start ov02_0233A488 +ov02_0233A488: @ 0x0233A488 + push {r3, lr} + ldr r0, _0233A4F8 @ =0x0235378C + ldr r1, _0233A4FC @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _0233A500 @ =0x04001008 + ldr r1, _0233A504 @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_0233A4F8: .4byte 0x0235378C +_0233A4FC: .4byte FUN_020780D0 +_0233A500: .4byte 0x04001008 +_0233A504: .4byte 0x0400000A + arm_func_end ov02_0233A488 + + arm_func_start ov02_0233A508 +ov02_0233A508: @ 0x0233A508 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x7c + mov r0, #0 + mov r1, r0 + bl ov02_0234DDC8 + mov fp, r0 + add r0, sp, #0x14 + bl FUN_0207B9EC + ldrb r1, [sp, #0x15] + ldr r2, _0233A6FC @ =0x023537A0 + add r0, sp, #0x1a + str r1, [sp] + ldrb r3, [sp, #0x16] + mov r1, #0x14 + str r3, [sp, #4] + ldrb r3, [sp, #0x17] + str r3, [sp, #8] + ldrb r3, [sp, #0x18] + str r3, [sp, #0xc] + ldrb r3, [sp, #0x19] + str r3, [sp, #0x10] + ldrb r3, [sp, #0x14] + bl FUN_0207911C + add r0, sp, #0x2e + add r1, sp, #0x1a + mov r2, #0x14 + bl ov02_0234F5C8 + mov r0, #0x1c + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x480 + str r0, [sp, #8] + add r1, sp, #0x2e + str r1, [sp, #0xc] + mov r0, fp + mov r1, #8 + mov r2, #0x40 + mov r3, #0xf0 + bl ov02_0234E1E8 + add r0, sp, #0x68 + bl FUN_022ED468 + ldr sl, [sp, #0x6c] + ldr r8, [sp, #0x68] + cmp sl, #0 + mov r3, #0 + cmpeq r8, #0 + beq _0233A698 + mov r0, r8 + mov r1, sl + mov r2, #0xa + bl FUN_0208FE48 + mov r1, #0x3e8 + umull r4, r1, r0, r1 + mov r0, r8 + mov r1, sl + mov r3, #0 + mov r2, #0xa + str r4, [sp, #0x64] + bl FUN_0208FE3C + mov sb, #0 + ldr r7, _0233A700 @ =0x00002710 + mov r8, r0 + mov sl, r1 + mov r6, sb + add r5, sp, #0x58 + mov r4, sb +_0233A614: + mov r0, r8 + mov r1, sl + mov r2, r7 + mov r3, r6 + bl FUN_0208FE48 + rsb r1, sb, #2 + str r0, [r5, r1, lsl #2] + mov r0, r8 + mov r1, sl + mov r2, r7 + mov r3, r4 + bl FUN_0208FE3C + mov r8, r0 + mov sl, r1 + add sb, sb, #1 + cmp sb, #3 + blt _0233A614 + ldr r1, [sp, #0x5c] + ldr r0, [sp, #0x60] + str r1, [sp] + str r0, [sp, #4] + ldr r4, [sp, #0x64] + ldr r3, [sp, #0x58] + ldr r2, _0233A704 @ =0x023537C0 + add r0, sp, #0x1a + mov r1, #0x14 + str r4, [sp, #8] + bl FUN_0207911C + add r0, sp, #0x2e + add r1, sp, #0x1a + mov r2, #0x14 + bl ov02_0234F5C8 + b _0233A6B8 +_0233A698: + ldr r2, _0233A708 @ =0x023537D4 + add r0, sp, #0x1a + mov r1, #0x14 + bl FUN_0207911C + add r0, sp, #0x2e + add r1, sp, #0x1a + mov r2, #0x14 + bl ov02_0234F5C8 +_0233A6B8: + mov r0, #0x1c + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x480 + str r0, [sp, #8] + add r4, sp, #0x2e + mov r0, fp + mov r1, #8 + mov r2, #0x78 + mov r3, #0xf0 + str r4, [sp, #0xc] + bl ov02_0234E1E8 + mov r0, fp + bl ov02_0234E354 + add sp, sp, #0x7c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0233A6FC: .4byte 0x023537A0 +_0233A700: .4byte 0x00002710 +_0233A704: .4byte 0x023537C0 +_0233A708: .4byte 0x023537D4 + arm_func_end ov02_0233A508 + + arm_func_start ov02_0233A70C +ov02_0233A70C: @ 0x0233A70C + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #2 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #1 + mov r1, r0 + bl ov02_0234E3D0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _0233A75C @ =ov02_0233A760 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233A75C: .4byte ov02_0233A760 + arm_func_end ov02_0233A70C + + arm_func_start ov02_0233A760 +ov02_0233A760: @ 0x0233A760 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #2 + bl ov02_02334E38 + ldr r0, _0233A798 @ =0x0233A79C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233A798: .4byte 0x0233A79C + arm_func_end ov02_0233A760 +_0233A79C: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0xCD, 0xE7, 0xFF, 0xEB, 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x08, 0x80, 0xBD, 0x08 + .byte 0xE6, 0xE7, 0xFF, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0x6A, 0xF9, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0xC4, 0xA7, 0x33, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x02, 0x00, 0x00, 0xEB, 0x09, 0x00, 0x00, 0xEB + .byte 0x09, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0233A7D8 +ov02_0233A7D8: @ 0x0233A7D8 + push {r3, lr} + mov r0, #2 + bl ov02_0234EBBC + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} + arm_func_end ov02_0233A7D8 + + arm_func_start ov02_0233A7F8 +ov02_0233A7F8: @ 0x0233A7F8 + bx lr + arm_func_end ov02_0233A7F8 + + arm_func_start ov02_0233A7FC +ov02_0233A7FC: @ 0x0233A7FC + push {r3, lr} + bl ov02_023346DC + cmp r0, #0 + popne {r3, pc} + mov r0, #7 + bl ov02_023480E0 + ldr r0, _0233A820 @ =0x0233A824 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233A820: .4byte 0x0233A824 + arm_func_end ov02_0233A7FC +_0233A824: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xCE, 0xE7, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE3 + .byte 0xAA, 0x4C, 0x00, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0x4A, 0xF9, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x44, 0xA8, 0x33, 0x02 + + arm_func_start ov02_0233A844 +ov02_0233A844: @ 0x0233A844 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_023346AC + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _0233A890 @ =ov02_0233A894 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233A890: .4byte ov02_0233A894 + arm_func_end ov02_0233A844 + + arm_func_start ov02_0233A894 +ov02_0233A894: @ 0x0233A894 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_02334724 + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_0234E02C + bl ov02_02334D10 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + mov r0, #0 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _0233A900 @ =ov02_0233A904 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233A900: .4byte ov02_0233A904 + arm_func_end ov02_0233A894 + + arm_func_start ov02_0233A904 +ov02_0233A904: @ 0x0233A904 + push {r4, lr} + ldr r0, _0233A9B0 @ =0x0235AAA8 + mov r1, #0 + strb r1, [r0, #1] + bl ov02_0233A9CC + mov r0, #0x10 + bl ov02_02335268 + mov r0, #3 + bl ov02_02348C1C + mov r0, #0x39 + sub r1, r0, #0x3a + mov r2, #0 + bl ov02_02334C3C + mov r0, #0 + mov r1, #0x5b + bl ov02_0234D6AC + ldr r2, _0233A9B0 @ =0x0235AAA8 + ldr r1, _0233A9B4 @ =0xFE00FF00 + str r0, [r2, #8] + ldr r3, [r0] + ldr lr, _0233A9B8 @ =0x0235298E + and r1, r3, r1 + orr r1, r1, #0x84 + orr r1, r1, #0xe00000 + str r1, [r0] + ldr r4, [r2, #8] + ldr r1, _0233A9BC @ =0x02352992 + ldrh r0, [r4, #4] + ldr ip, _0233A9C0 @ =0x02352990 + ldr r3, _0233A9C4 @ =0x02352994 + bic r0, r0, #0xc00 + orr r0, r0, #0xc00 + strh r0, [r4, #4] + ldrb r0, [r2] + lsl r4, r0, #3 + ldrh r0, [lr, r4] +_0233A994: + ldrh r1, [r1, r4] + ldrh r2, [ip, r4] + ldrh r3, [r3, r4] + bl ov02_023350AC + ldr r0, _0233A9C8 @ =ov02_0233AB68 + bl ov02_02338D68 + pop {r4, pc} + .align 2, 0 +_0233A9B0: .4byte 0x0235AAA8 +_0233A9B4: .4byte 0xFE00FF00 +_0233A9B8: .4byte 0x0235298E +_0233A9BC: .4byte 0x02352992 +_0233A9C0: .4byte 0x02352990 +_0233A9C4: .4byte 0x02352994 +_0233A9C8: .4byte ov02_0233AB68 + arm_func_end ov02_0233A904 + + arm_func_start ov02_0233A9CC +ov02_0233A9CC: @ 0x0233A9CC + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x44 + ldr r4, _0233AB44 @ =0x02352948 + add r3, sp, #0x2b + mov r2, #0xb +_0233A9E0: + ldrb r1, [r4] + ldrb r0, [r4, #1] + add r4, r4, #2 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + bne _0233A9E0 + ldr r4, _0233AB48 @ =0x0235295E + add r3, sp, #0x14 + mov r2, #0xb +_0233AA0C: + ldrb r1, [r4] + ldrb r0, [r4, #1] + add r4, r4, #2 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + bne _0233AA0C + ldrb r2, [r4] + ldr r0, _0233AB4C @ =0x023537E8 + ldr r1, _0233AB50 @ =0x02078310 + strb r2, [r3] + bl ov02_02334DA8 + ldr r0, _0233AB54 @ =0x02353800 + ldr r1, _0233AB58 @ =FUN_020780D0 + bl ov02_02334DA8 + add r0, sp, #0x14 + bl ov02_02334D48 + mov r1, #0 + mov r2, #4 + bl ov02_0234CE84 + ldr r1, _0233AB5C @ =0x0235AAA8 + str r0, [r1, #4] + add r0, sp, #0x2b + bl ov02_02334D48 + mov r1, #0 + mov r2, #4 + bl ov02_0234CE84 + mov r8, r0 + add r0, sp, #0 + bl FUN_022ED468 + ldr r0, [sp, #4] + ldr r1, [sp] + cmp r0, #0 + mov r7, #0 + cmpeq r1, #0 + bne _0233AAD0 + add r5, r8, #0xc0 + add r6, r8, #0x40 + mov r4, #0x20 +_0233AAAC: + mov r0, r5 + mov r1, r6 + mov r2, r4 + bl FUN_0207C4C8 + add r7, r7, #1 + cmp r7, #2 + add r5, r5, #0x20 + add r6, r6, #0x20 + blt _0233AAAC +_0233AAD0: + mov r0, r8 + mov r1, #0x200 + bl FUN_0207A2DC + mov r0, r8 + mov r1, #0 + mov r2, #0x200 + bl FUN_02077CF8 + mov r0, r8 + bl ov02_0234CF78 + ldr r2, _0233AB60 @ =0x04001008 + ldr r1, _0233AB64 @ =0x0400000A + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r2, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2, #2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + add sp, sp, #0x44 + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0233AB44: .4byte 0x02352948 +_0233AB48: .4byte 0x0235295E +_0233AB4C: .4byte 0x023537E8 +_0233AB50: .4byte 0x02078310 +_0233AB54: .4byte 0x02353800 +_0233AB58: .4byte FUN_020780D0 +_0233AB5C: .4byte 0x0235AAA8 +_0233AB60: .4byte 0x04001008 +_0233AB64: .4byte 0x0400000A + arm_func_end ov02_0233A9CC + + arm_func_start ov02_0233AB68 +ov02_0233AB68: @ 0x0233AB68 + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #2 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #2 + mov r1, #0 + mov r2, #0x14 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #1 + mov r1, r0 + bl ov02_0234E3D0 + mov r0, #0 + mov r1, #0x14 + bl ov02_0234E3D0 + ldr r0, _0233ABB8 @ =ov02_0233ABBC + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233ABB8: .4byte ov02_0233ABBC + arm_func_end ov02_0233AB68 + + arm_func_start ov02_0233ABBC +ov02_0233ABBC: @ 0x0233ABBC + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_02334E38 + ldr r0, _0233ABF4 @ =0x0233ABF8 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233ABF4: .4byte 0x0233ABF8 + arm_func_end ov02_0233ABBC +_0233ABF8: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xB6, 0xE6, 0xFF, 0xEB + .byte 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x08, 0x80, 0xBD, 0x08, 0xCF, 0xE6, 0xFF, 0xEB + .byte 0x04, 0x00, 0x9F, 0xE5, 0x53, 0xF8, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x20, 0xAC, 0x33, 0x02 + .byte 0x08, 0x40, 0x2D, 0xE9, 0x02, 0x00, 0x00, 0xEB, 0x3E, 0x00, 0x00, 0xEB, 0x3E, 0x00, 0x00, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0233AC34 +ov02_0233AC34: @ 0x0233AC34 + push {r3, r4, r5, lr} + ldr r5, _0233AD10 @ =0x02352976 + mov r4, #0 +_0233AC40: + mov r0, r5 + bl ov02_0234ED04 + cmp r0, #0 + beq _0233AC90 + mov r0, #1 + bl ov02_023346F0 + and r1, r4, #0xff + lsl lr, r1, #3 + ldr r0, _0233AD14 @ =0x0235298E + ldr r1, _0233AD18 @ =0x02352992 + ldr r2, _0233AD1C @ =0x02352990 + ldr r3, _0233AD20 @ =0x02352994 + ldr ip, _0233AD24 @ =0x0235AAA8 + ldrh r0, [r0, lr] + ldrh r1, [r1, lr] + ldrh r2, [r2, lr] + ldrh r3, [r3, lr] + strb r4, [ip] + bl ov02_023350AC + pop {r3, r4, r5, pc} +_0233AC90: + add r4, r4, #1 + cmp r4, #3 + add r5, r5, #8 + blo _0233AC40 + mov r0, #1 + bl ov02_0234EBBC + cmp r0, #0 + beq _0233ACBC + mov r0, #1 + bl ov02_023346F0 + pop {r3, r4, r5, pc} +_0233ACBC: + mov r0, #2 + bl ov02_0234EBBC + cmp r0, #0 + beq _0233ACD8 + mov r0, #0 + bl ov02_023346F0 + pop {r3, r4, r5, pc} +_0233ACD8: + mov r0, #0x40 + bl ov02_0234EBFC + cmp r0, #0 + beq _0233ACF4 + mov r0, #1 + bl ov02_0233AF60 + pop {r3, r4, r5, pc} +_0233ACF4: + mov r0, #0x80 + bl ov02_0234EBFC + cmp r0, #0 + popeq {r3, r4, r5, pc} + mov r0, #3 + bl ov02_0233AF60 + pop {r3, r4, r5, pc} + .align 2, 0 +_0233AD10: .4byte 0x02352976 +_0233AD14: .4byte 0x0235298E +_0233AD18: .4byte 0x02352992 +_0233AD1C: .4byte 0x02352990 +_0233AD20: .4byte 0x02352994 +_0233AD24: .4byte 0x0235AAA8 + arm_func_end ov02_0233AC34 + + arm_func_start ov02_0233AD28 +ov02_0233AD28: @ 0x0233AD28 + bx lr + arm_func_end ov02_0233AD28 + + arm_func_start ov02_0233AD2C +ov02_0233AD2C: @ 0x0233AD2C + stmdb sp!, {lr} + sub sp, sp, #0x14 + bl ov02_023346DC + cmp r0, #0 + beq _0233AD50 + cmp r0, #1 + beq _0233AD5C + add sp, sp, #0x14 + ldm sp!, {pc} +_0233AD50: + mov r0, #7 + bl ov02_023480E0 + b _0233ADB8 +_0233AD5C: + add r0, sp, #0 + bl FUN_022ED468 + ldr r0, _0233ADC8 @ =0x0235AAA8 + ldrb r0, [r0] + cmp r0, #0 + beq _0233ADA0 + ldr r0, [sp, #4] + ldr r1, [sp] + cmp r0, #0 + cmpeq r1, #0 + bne _0233ADA0 + mov r0, #9 + bl ov02_023480E0 + mvn r0, #0 + bl ov02_02334710 + add sp, sp, #0x14 + ldm sp!, {pc} +_0233ADA0: + mov r0, #6 + bl ov02_023480E0 + bl ov02_0233AFF0 + ldr r0, _0233ADC8 @ =0x0235AAA8 + mov r1, #1 + strb r1, [r0, #1] +_0233ADB8: + ldr r0, _0233ADCC @ =0x0233ADD0 + bl ov02_02338D68 + add sp, sp, #0x14 + ldm sp!, {pc} + .align 2, 0 +_0233ADC8: .4byte 0x0235AAA8 +_0233ADCC: .4byte 0x0233ADD0 +_0233ADD0: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x63, 0xE6, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE3, 0x3F, 0x4B, 0x00, 0xEB + .byte 0x04, 0x00, 0x9F, 0xE5, 0xDF, 0xF7, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 +_0233ADEC: .4byte ov02_0233ADF0 + arm_func_end ov02_0233AD2C + + arm_func_start ov02_0233ADF0 +ov02_0233ADF0: @ 0x0233ADF0 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + ldr r0, _0233AE4C @ =0x0235AAA8 + ldrb r0, [r0, #1] + cmp r0, #0 + beq _0233AE18 + bl ov02_023346AC +_0233AE18: + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #3 + mov r1, #0 + mov r2, #0x14 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _0233AE50 @ =ov02_0233AE54 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233AE4C: .4byte 0x0235AAA8 +_0233AE50: .4byte ov02_0233AE54 + arm_func_end ov02_0233ADF0 + + arm_func_start ov02_0233AE54 +ov02_0233AE54: @ 0x0233AE54 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + arm_func_end ov02_0233AE54 + + arm_func_start ov02_0233AE64 +ov02_0233AE64: @ 0x0233AE64 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_02334724 + cmp r0, #0 + popeq {r3, pc} + ldr r0, _0233AF4C @ =0x0235AAA8 + ldr r0, [r0, #8] + bl ov02_0234F2C0 + bl ov02_0233519C + bl ov02_02334D10 + ldr r0, _0233AF4C @ =0x0235AAA8 + ldr r0, [r0, #4] + bl ov02_0234CF78 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 + mov r0, #0 + mov r1, #0x14 + bl ov02_0234E424 + ldr r0, _0233AF4C @ =0x0235AAA8 + ldrb r1, [r0, #1] + cmp r1, #0 + bne _0233AEE4 + mov r0, #0 + mov r1, r0 + bl ov02_02338D78 + ldr r0, _0233AF50 @ =ov02_023398CC + bl ov02_02338D68 + pop {r3, pc} +_0233AEE4: + ldrb r0, [r0] + cmp r0, #0 + beq _0233AF04 + cmp r0, #1 + beq _0233AF1C + cmp r0, #2 + beq _0233AF34 + pop {r3, pc} +_0233AF04: + mov r0, #0 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _0233AF54 @ =ov02_0233A454 + bl ov02_02338D68 + pop {r3, pc} +_0233AF1C: + mov r0, #0 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _0233AF58 @ =ov02_02339E44 + bl ov02_02338D68 + pop {r3, pc} +_0233AF34: + mov r0, #0 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _0233AF5C @ =ov02_0233B6D0 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233AF4C: .4byte 0x0235AAA8 +_0233AF50: .4byte ov02_023398CC +_0233AF54: .4byte ov02_0233A454 +_0233AF58: .4byte ov02_02339E44 +_0233AF5C: .4byte ov02_0233B6D0 + arm_func_end ov02_0233AE64 + + arm_func_start ov02_0233AF60 +ov02_0233AF60: @ 0x0233AF60 + push {r3, lr} + cmp r0, #1 + mov r1, #3 + bne _0233AF88 + ldr r0, _0233AFDC @ =0x0235AAA8 + ldrb r0, [r0] + add r0, r0, #2 + bl FUN_02075C38 + ldr r1, _0233AFDC @ =0x0235AAA8 + b _0233AF9C +_0233AF88: + ldr r0, _0233AFDC @ =0x0235AAA8 + ldrb r0, [r0] + add r0, r0, #1 + bl FUN_02075C38 + ldr r1, _0233AFDC @ =0x0235AAA8 +_0233AF9C: + strb r0, [r1] + mov r0, #8 + bl ov02_023480E0 + ldr r0, _0233AFDC @ =0x0235AAA8 + ldr ip, _0233AFE0 @ =0x0235298E + ldrb r0, [r0] + ldr r1, _0233AFE4 @ =0x02352992 + ldr r2, _0233AFE8 @ =0x02352990 + lsl lr, r0, #3 + ldr r3, _0233AFEC @ =0x02352994 + ldrh r0, [ip, lr] + ldrh r1, [r1, lr] + ldrh r2, [r2, lr] + ldrh r3, [r3, lr] + bl ov02_023350AC + pop {r3, pc} + .align 2, 0 +_0233AFDC: .4byte 0x0235AAA8 +_0233AFE0: .4byte 0x0235298E +_0233AFE4: .4byte 0x02352992 +_0233AFE8: .4byte 0x02352990 +_0233AFEC: .4byte 0x02352994 + arm_func_end ov02_0233AF60 + + arm_func_start ov02_0233AFF0 +ov02_0233AFF0: @ 0x0233AFF0 + ldr r0, _0233B010 @ =0x0235AAA8 + ldr r1, _0233B014 @ =0x02352940 + ldrb r2, [r0] + ldr ip, _0233B018 @ =ov02_023468A0 + ldr r0, [r0, #4] + ldrb r1, [r1, r2] + mov r2, r1 + bx ip + .align 2, 0 +_0233B010: .4byte 0x0235AAA8 +_0233B014: .4byte 0x02352940 +_0233B018: .4byte ov02_023468A0 + arm_func_end ov02_0233AFF0 + + arm_func_start ov02_0233B01C +ov02_0233B01C: @ 0x0233B01C + push {r3, lr} + bl ov02_0233B054 + mov r0, #0x1e + bl ov02_02334E70 + mov r0, #0 + bl ov02_023343DC + mov r0, #1 + bl ov02_02335334 + mov r0, #0xb + bl ov02_023480E0 + ldr r0, _0233B050 @ =ov02_0233B0D4 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B050: .4byte ov02_0233B0D4 + arm_func_end ov02_0233B01C + + arm_func_start ov02_0233B054 +ov02_0233B054: @ 0x0233B054 + push {r3, lr} + ldr r0, _0233B0C4 @ =0x02353818 + ldr r1, _0233B0C8 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _0233B0CC @ =0x04001008 + ldr r1, _0233B0D0 @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_0233B0C4: .4byte 0x02353818 +_0233B0C8: .4byte FUN_020780D0 +_0233B0CC: .4byte 0x04001008 +_0233B0D0: .4byte 0x0400000A + arm_func_end ov02_0233B054 + + arm_func_start ov02_0233B0D4 +ov02_0233B0D4: @ 0x0233B0D4 + push {r3, lr} + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _0233B104 @ =ov02_0233B108 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B104: .4byte ov02_0233B108 + arm_func_end ov02_0233B0D4 + + arm_func_start ov02_0233B108 +ov02_0233B108: @ 0x0233B108 + push {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + ldr r0, _0233B130 @ =ov02_0233B20C + bl ov02_02339104 + ldr r0, _0233B134 @ =0x0233B138 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B130: .4byte ov02_0233B20C +_0233B134: .4byte 0x0233B138 + arm_func_end ov02_0233B108 +_0233B138: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x01, 0x00, 0x00, 0xEB + .byte 0x01, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0233B148 +ov02_0233B148: @ 0x0233B148 + bx lr + arm_func_end ov02_0233B148 + + arm_func_start ov02_0233B14C +ov02_0233B14C: @ 0x0233B14C + bx lr + arm_func_end ov02_0233B14C + + arm_func_start ov02_0233B150 +ov02_0233B150: @ 0x0233B150 + push {r3, lr} + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _0233B174 @ =ov02_0233B178 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B174: .4byte ov02_0233B178 + arm_func_end ov02_0233B150 + + arm_func_start ov02_0233B178 +ov02_0233B178: @ 0x0233B178 + push {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_023390E8 + cmp r0, #0 + popeq {r3, pc} + bl ov02_023353EC + bl ov02_023344AC + mov r0, #0 + bl ov02_0234E02C + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + mov r0, #0 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _0233B1FC @ =0x0235AAB4 + ldrb r0, [r0] + cmp r0, #0 + bne _0233B1DC + ldr r0, _0233B200 @ =ov02_0233BC04 + bl ov02_02338D68 + pop {r3, pc} +_0233B1DC: + cmp r0, #2 + bne _0233B1F0 + ldr r0, _0233B204 @ =ov02_0233BA1C + bl ov02_02338D68 + pop {r3, pc} +_0233B1F0: + ldr r0, _0233B208 @ =0x0233B294 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B1FC: .4byte 0x0235AAB4 +_0233B200: .4byte ov02_0233BC04 +_0233B204: .4byte ov02_0233BA1C +_0233B208: .4byte 0x0233B294 + arm_func_end ov02_0233B178 + + arm_func_start ov02_0233B20C +ov02_0233B20C: @ 0x0233B20C + push {r3, lr} + cmp r0, #2 + bne _0233B238 + bl ov02_02347D68 + ldr r0, _0233B28C @ =0x0235AAB4 + mov r1, #1 + strb r1, [r0] + bl ov02_02348148 + mov r0, #0x10 + bl ov02_023480E0 + b _0233B274 +_0233B238: + cmp r0, #3 + bne _0233B25C + ldr r0, _0233B28C @ =0x0235AAB4 + mov r1, #2 + strb r1, [r0] + bl ov02_02348148 + mov r0, #0x12 + bl ov02_023480E0 + b _0233B274 +_0233B25C: + ldr r0, _0233B28C @ =0x0235AAB4 + mov r1, #0 + strb r1, [r0] + bl ov02_02348148 + mov r0, #0x12 + bl ov02_023480E0 +_0233B274: + mov r0, #0 + bl ov02_02339104 + bl ov02_0233908C + ldr r0, _0233B290 @ =ov02_0233B150 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B28C: .4byte 0x0235AAB4 +_0233B290: .4byte ov02_0233B150 + arm_func_end ov02_0233B20C +_0233B294: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x05, 0x00, 0x00, 0xEB, 0x1F, 0x00, 0xA0, 0xE3 + .byte 0xF2, 0xE6, 0xFF, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0xAE, 0xF6, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x1C, 0xB3, 0x33, 0x02 + + arm_func_start ov02_0233B2B4 +ov02_0233B2B4: @ 0x0233B2B4 + ldr r3, _0233B314 @ =0x04001008 + ldr r1, _0233B318 @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + bx lr + .align 2, 0 +_0233B314: .4byte 0x04001008 +_0233B318: .4byte 0x0400000A + arm_func_end ov02_0233B2B4 + + arm_func_start ov02_0233B31C +ov02_0233B31C: @ 0x0233B31C + push {r3, lr} + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _0233B34C @ =ov02_0233B350 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B34C: .4byte ov02_0233B350 + arm_func_end ov02_0233B31C + + arm_func_start ov02_0233B350 +ov02_0233B350: @ 0x0233B350 + push {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #5 + bl ov02_02334E38 + ldr r0, _0233B378 @ =0x0233B37C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B378: .4byte 0x0233B37C + arm_func_end ov02_0233B350 +_0233B37C: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0xD5, 0xE4, 0xFF, 0xEB, 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x08, 0x80, 0xBD, 0x08 + .byte 0xEE, 0xE4, 0xFF, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0x72, 0xF6, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0xA4, 0xB3, 0x33, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x02, 0x00, 0x00, 0xEB, 0x09, 0x00, 0x00, 0xEB + .byte 0x09, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0233B3B8 +ov02_0233B3B8: @ 0x0233B3B8 + push {r3, lr} + mov r0, #1 + bl ov02_0234EBBC + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} + arm_func_end ov02_0233B3B8 + + arm_func_start ov02_0233B3D8 +ov02_0233B3D8: @ 0x0233B3D8 + bx lr + arm_func_end ov02_0233B3D8 + + arm_func_start ov02_0233B3DC +ov02_0233B3DC: @ 0x0233B3DC + push {r3, lr} + bl ov02_023346DC + cmp r0, #0 + popne {r3, pc} + mov r0, #6 + bl ov02_023480E0 + ldr r0, _0233B400 @ =0x0233B404 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B400: .4byte 0x0233B404 + arm_func_end ov02_0233B3DC +_0233B404: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xD6, 0xE4, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE3 + .byte 0xB2, 0x49, 0x00, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0x52, 0xF6, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x24, 0xB4, 0x33, 0x02 + + arm_func_start ov02_0233B424 +ov02_0233B424: @ 0x0233B424 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #3 + mov r1, #1 + mov r2, #0x3f + mov r3, #0x40 + bl ov02_0234D8E0 + mov r0, #3 + mov r1, #0 + mov r2, #0x3f + mov r3, #0x40 + bl ov02_0234D8E0 + ldr r0, _0233B46C @ =ov02_0233B470 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B46C: .4byte ov02_0233B470 + arm_func_end ov02_0233B424 + + arm_func_start ov02_0233B470 +ov02_0233B470: @ 0x0233B470 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0x1000000 + bl FUN_0207B854 + bl FUN_0208200C + pop {r3, pc} + arm_func_end ov02_0233B470 + + arm_func_start ov02_0233B4A4 +ov02_0233B4A4: @ 0x0233B4A4 + push {r3, lr} + bl ov02_0233B4C4 + mov r0, #0x1a + bl ov02_02334E70 + ldr r0, _0233B4C0 @ =ov02_0233B52C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B4C0: .4byte ov02_0233B52C + arm_func_end ov02_0233B4A4 + + arm_func_start ov02_0233B4C4 +ov02_0233B4C4: @ 0x0233B4C4 + ldr r3, _0233B524 @ =0x04001008 + ldr r1, _0233B528 @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + bx lr + .align 2, 0 +_0233B524: .4byte 0x04001008 +_0233B528: .4byte 0x0400000A + arm_func_end ov02_0233B4C4 + + arm_func_start ov02_0233B52C +ov02_0233B52C: @ 0x0233B52C + push {r3, lr} + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _0233B55C @ =ov02_0233B560 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B55C: .4byte ov02_0233B560 + arm_func_end ov02_0233B52C + + arm_func_start ov02_0233B560 +ov02_0233B560: @ 0x0233B560 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #4 + bl ov02_02334E38 + ldr r0, _0233B598 @ =0x0233B59C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B598: .4byte 0x0233B59C + arm_func_end ov02_0233B560 +_0233B59C: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0x4D, 0xE4, 0xFF, 0xEB, 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x08, 0x80, 0xBD, 0x08 + .byte 0x66, 0xE4, 0xFF, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0xEA, 0xF5, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0xC4, 0xB5, 0x33, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x02, 0x00, 0x00, 0xEB, 0x09, 0x00, 0x00, 0xEB + .byte 0x09, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0233B5D8 +ov02_0233B5D8: @ 0x0233B5D8 + push {r3, lr} + mov r0, #1 + bl ov02_0234EBBC + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} + arm_func_end ov02_0233B5D8 + + arm_func_start ov02_0233B5F8 +ov02_0233B5F8: @ 0x0233B5F8 + bx lr + arm_func_end ov02_0233B5F8 + + arm_func_start ov02_0233B5FC +ov02_0233B5FC: @ 0x0233B5FC + push {r3, lr} + bl ov02_023346DC + cmp r0, #0 + popne {r3, pc} + mov r0, #6 + bl ov02_023480E0 + ldr r0, _0233B620 @ =0x0233B624 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B620: .4byte 0x0233B624 + arm_func_end ov02_0233B5FC +_0233B624: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x4E, 0xE4, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE3 + .byte 0x2A, 0x49, 0x00, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0xCA, 0xF5, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x44, 0xB6, 0x33, 0x02 + + arm_func_start ov02_0233B644 +ov02_0233B644: @ 0x0233B644 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_023346AC + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _0233B67C @ =ov02_0233B680 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B67C: .4byte ov02_0233B680 + arm_func_end ov02_0233B644 + + arm_func_start ov02_0233B680 +ov02_0233B680: @ 0x0233B680 + push {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_02334724 + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_0234E02C + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + mov r0, #0 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _0233B6CC @ =ov02_0233C364 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B6CC: .4byte ov02_0233C364 + arm_func_end ov02_0233B680 + + arm_func_start ov02_0233B6D0 +ov02_0233B6D0: @ 0x0233B6D0 + push {r3, lr} + ldr r0, _0233B710 @ =0x0235AAB8 + mov r1, #0 + strb r1, [r0] + bl ov02_0233B718 + mov r0, #0x13 + bl ov02_02335268 + mov r0, #0x3c + sub r1, r0, #0x3d + mov r2, #0 + bl ov02_02334C3C + mov r0, #0x1b + bl ov02_02334E70 + ldr r0, _0233B714 @ =ov02_0233B798 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B710: .4byte 0x0235AAB8 +_0233B714: .4byte ov02_0233B798 + arm_func_end ov02_0233B6D0 + + arm_func_start ov02_0233B718 +ov02_0233B718: @ 0x0233B718 + push {r3, lr} + ldr r0, _0233B788 @ =0x0235382C + ldr r1, _0233B78C @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _0233B790 @ =0x04001008 + ldr r1, _0233B794 @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_0233B788: .4byte 0x0235382C +_0233B78C: .4byte FUN_020780D0 +_0233B790: .4byte 0x04001008 +_0233B794: .4byte 0x0400000A + arm_func_end ov02_0233B718 + + arm_func_start ov02_0233B798 +ov02_0233B798: @ 0x0233B798 + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #2 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #1 + mov r1, r0 + bl ov02_0234E3D0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _0233B7E8 @ =ov02_0233B7EC + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B7E8: .4byte ov02_0233B7EC + arm_func_end ov02_0233B798 + + arm_func_start ov02_0233B7EC +ov02_0233B7EC: @ 0x0233B7EC + push {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #3 + bl ov02_02334E38 + ldr r0, _0233B814 @ =0x0233B818 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B814: .4byte 0x0233B818 + arm_func_end ov02_0233B7EC +_0233B818: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xAE, 0xE3, 0xFF, 0xEB + .byte 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x08, 0x80, 0xBD, 0x08, 0xC7, 0xE3, 0xFF, 0xEB + .byte 0x04, 0x00, 0x9F, 0xE5, 0x4B, 0xF5, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x40, 0xB8, 0x33, 0x02 + .byte 0x08, 0x40, 0x2D, 0xE9, 0x02, 0x00, 0x00, 0xEB, 0x0F, 0x00, 0x00, 0xEB, 0x0F, 0x00, 0x00, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0233B854 +ov02_0233B854: @ 0x0233B854 + push {r3, lr} + mov r0, #1 + bl ov02_0234EBBC + cmp r0, #0 + beq _0233B870 + mov r0, #1 + bl ov02_023346F0 +_0233B870: + mov r0, #2 + bl ov02_0234EBBC + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} + arm_func_end ov02_0233B854 + + arm_func_start ov02_0233B88C +ov02_0233B88C: @ 0x0233B88C + bx lr + arm_func_end ov02_0233B88C + + arm_func_start ov02_0233B890 +ov02_0233B890: @ 0x0233B890 + push {r3, lr} + bl ov02_023346DC + cmp r0, #0 + beq _0233B8AC + cmp r0, #1 + beq _0233B8B8 + pop {r3, pc} +_0233B8AC: + mov r0, #7 + bl ov02_023480E0 + b _0233B8CC +_0233B8B8: + mov r0, #6 + bl ov02_023480E0 + ldr r0, _0233B8D8 @ =0x0235AAB8 + mov r1, #1 + strb r1, [r0] +_0233B8CC: + ldr r0, _0233B8DC @ =0x0233B8E0 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B8D8: .4byte 0x0235AAB8 +_0233B8DC: .4byte 0x0233B8E0 + arm_func_end ov02_0233B890 +_0233B8E0: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x9F, 0xE3, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE3, 0x7B, 0x48, 0x00, 0xEB + .byte 0x04, 0x00, 0x9F, 0xE5, 0x1B, 0xF5, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x00, 0xB9, 0x33, 0x02 + + arm_func_start ov02_0233B900 +ov02_0233B900: @ 0x0233B900 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_023346AC + ldr r0, _0233B95C @ =0x0235AAB8 + ldrb r0, [r0] + cmp r0, #0 + bne _0233B93C + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 +_0233B93C: + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _0233B960 @ =ov02_0233B964 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233B95C: .4byte 0x0235AAB8 +_0233B960: .4byte ov02_0233B964 + arm_func_end ov02_0233B900 + + arm_func_start ov02_0233B964 +ov02_0233B964: @ 0x0233B964 + push {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + ldr r0, _0233BA10 @ =0x0235AAB8 + ldrb r0, [r0] + cmp r0, #0 + bne _0233B998 + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} +_0233B998: + bl ov02_02334724 + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_0234E02C + ldr r0, _0233BA10 @ =0x0235AAB8 + ldrb r0, [r0] + cmp r0, #0 + bne _0233B9CC + bl ov02_02334D10 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 +_0233B9CC: + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + ldr r0, _0233BA10 @ =0x0235AAB8 + mov r1, #1 + ldrb r0, [r0] + cmp r0, #0 + mov r0, #0 + bne _0233BA00 + bl ov02_02338D78 + ldr r0, _0233BA14 @ =ov02_0233A904 + bl ov02_02338D68 + pop {r3, pc} +_0233BA00: + bl ov02_02338D78 + ldr r0, _0233BA18 @ =ov02_0233B4A4 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233BA10: .4byte 0x0235AAB8 +_0233BA14: .4byte ov02_0233A904 +_0233BA18: .4byte ov02_0233B4A4 + arm_func_end ov02_0233B964 + + arm_func_start ov02_0233BA1C +ov02_0233BA1C: @ 0x0233BA1C + push {r3, lr} + ldr r0, _0233BA44 @ =0x0235AABC + mov r1, #0 + strb r1, [r0] + bl ov02_0233BA4C + mov r0, #0x21 + bl ov02_02334E70 + ldr r0, _0233BA48 @ =ov02_0233BAB8 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233BA44: .4byte 0x0235AABC +_0233BA48: .4byte ov02_0233BAB8 + arm_func_end ov02_0233BA1C + + arm_func_start ov02_0233BA4C +ov02_0233BA4C: @ 0x0233BA4C + push {r3, lr} + ldr r0, _0233BAA8 @ =0x02353840 + ldr r1, _0233BAAC @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r2, _0233BAB0 @ =0x04001008 + ldr r1, _0233BAB4 @ =0x0400000A + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r2, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2, #2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_0233BAA8: .4byte 0x02353840 +_0233BAAC: .4byte FUN_020780D0 +_0233BAB0: .4byte 0x04001008 +_0233BAB4: .4byte 0x0400000A + arm_func_end ov02_0233BA4C + + arm_func_start ov02_0233BAB8 +ov02_0233BAB8: @ 0x0233BAB8 + push {r3, lr} + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _0233BAE8 @ =ov02_0233BAEC + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233BAE8: .4byte ov02_0233BAEC + arm_func_end ov02_0233BAB8 + + arm_func_start ov02_0233BAEC +ov02_0233BAEC: @ 0x0233BAEC + push {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_023390E8 + cmp r0, #0 + popeq {r3, pc} + ldr r0, _0233BB18 @ =0x0233BB1C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233BB18: .4byte 0x0233BB1C + arm_func_end ov02_0233BAEC +_0233BB1C: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0x2A, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0233BB2C +ov02_0233BB2C: @ 0x0233BB2C + bx lr + arm_func_end ov02_0233BB2C + + arm_func_start ov02_0233BB30 +ov02_0233BB30: @ 0x0233BB30 + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _0233BB68 @ =ov02_0233BB6C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233BB68: .4byte ov02_0233BB6C + arm_func_end ov02_0233BB30 + + arm_func_start ov02_0233BB6C +ov02_0233BB6C: @ 0x0233BB6C + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234E02C + bl ov02_02334D10 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + mov r0, #0 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _0233BBCC @ =ov02_0233A904 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233BBCC: .4byte ov02_0233A904 + arm_func_end ov02_0233BB6C + + arm_func_start ov02_0233BBD0 +ov02_0233BBD0: @ 0x0233BBD0 + push {r3, lr} + ldr r0, _0233BBFC @ =0x0235AABC + ldrb r1, [r0] + add r2, r1, #1 + and r1, r2, #0xff + strb r2, [r0] + cmp r1, #0x78 + poplo {r3, pc} + ldr r0, _0233BC00 @ =ov02_0233BB30 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233BBFC: .4byte 0x0235AABC +_0233BC00: .4byte ov02_0233BB30 + arm_func_end ov02_0233BBD0 + + arm_func_start ov02_0233BC04 +ov02_0233BC04: @ 0x0233BC04 + push {r3, lr} + bl ov02_0233BC40 + mov r0, #0x20 + bl ov02_02334E70 + mov r0, #0x3c + sub r1, r0, #0x3d + mov r2, #0 + bl ov02_02334C3C + ldr r1, _0233BC38 @ =0x0235AAC0 + strb r0, [r1] + ldr r0, _0233BC3C @ =ov02_0233BCC0 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233BC38: .4byte 0x0235AAC0 +_0233BC3C: .4byte ov02_0233BCC0 + arm_func_end ov02_0233BC04 + + arm_func_start ov02_0233BC40 +ov02_0233BC40: @ 0x0233BC40 + push {r3, lr} + ldr r0, _0233BCB0 @ =0x02353854 + ldr r1, _0233BCB4 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _0233BCB8 @ =0x04001008 + ldr r1, _0233BCBC @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_0233BCB0: .4byte 0x02353854 +_0233BCB4: .4byte FUN_020780D0 +_0233BCB8: .4byte 0x04001008 +_0233BCBC: .4byte 0x0400000A + arm_func_end ov02_0233BC40 + + arm_func_start ov02_0233BCC0 +ov02_0233BCC0: @ 0x0233BCC0 + push {r3, lr} + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _0233BD20 @ =0x0235AAC0 + ldrb r0, [r0] + cmp r0, #0 + beq _0233BD14 + mov r1, #1 + mov r2, r1 + mov r0, #2 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #1 + mov r1, r0 + bl ov02_0234E3D0 +_0233BD14: + ldr r0, _0233BD24 @ =ov02_0233BD28 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233BD20: .4byte 0x0235AAC0 +_0233BD24: .4byte ov02_0233BD28 + arm_func_end ov02_0233BCC0 + + arm_func_start ov02_0233BD28 +ov02_0233BD28: @ 0x0233BD28 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #3 + bl ov02_02334E38 + ldr r0, _0233BD60 @ =ov02_0233BD64 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233BD60: .4byte ov02_0233BD64 + arm_func_end ov02_0233BD28 + + arm_func_start ov02_0233BD64 +ov02_0233BD64: @ 0x0233BD64 + push {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + popeq {r3, pc} + bl ov02_023390E8 + cmp r0, #0 + popeq {r3, pc} + bl ov02_02334750 + ldr r0, _0233BD94 @ =0x0233BD98 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233BD94: .4byte 0x0233BD98 + arm_func_end ov02_0233BD64 +_0233BD98: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x02, 0x00, 0x00, 0xEB + .byte 0x0F, 0x00, 0x00, 0xEB, 0x0F, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0233BDAC +ov02_0233BDAC: @ 0x0233BDAC + push {r3, lr} + mov r0, #1 + bl ov02_0234EBBC + cmp r0, #0 + beq _0233BDC8 + mov r0, #1 + bl ov02_023346F0 +_0233BDC8: + mov r0, #2 + bl ov02_0234EBBC + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} + arm_func_end ov02_0233BDAC + + arm_func_start ov02_0233BDE4 +ov02_0233BDE4: @ 0x0233BDE4 + bx lr + arm_func_end ov02_0233BDE4 + + arm_func_start ov02_0233BDE8 +ov02_0233BDE8: @ 0x0233BDE8 + push {r3, lr} + bl ov02_023346DC + cmp r0, #0 + beq _0233BE18 + cmp r0, #1 + popne {r3, pc} + ldr r1, _0233BE38 @ =0x0235AAC0 + mov r2, #1 + mov r0, #6 + strb r2, [r1, #1] + bl ov02_023480E0 + b _0233BE2C +_0233BE18: + ldr r1, _0233BE38 @ =0x0235AAC0 + mov r2, #0 + mov r0, #7 + strb r2, [r1, #1] + bl ov02_023480E0 +_0233BE2C: + ldr r0, _0233BE3C @ =0x0233BE40 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233BE38: .4byte 0x0235AAC0 +_0233BE3C: .4byte 0x0233BE40 + arm_func_end ov02_0233BDE8 +_0233BE40: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x47, 0xE2, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE3, 0x23, 0x47, 0x00, 0xEB + .byte 0x04, 0x00, 0x9F, 0xE5, 0xC3, 0xF3, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x60, 0xBE, 0x33, 0x02 + + arm_func_start ov02_0233BE60 +ov02_0233BE60: @ 0x0233BE60 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_023346AC + ldr r0, _0233BEBC @ =0x0235AAC0 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _0233BE9C + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 +_0233BE9C: + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _0233BEC0 @ =ov02_0233BEC4 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233BEBC: .4byte 0x0235AAC0 +_0233BEC0: .4byte ov02_0233BEC4 + arm_func_end ov02_0233BE60 + + arm_func_start ov02_0233BEC4 +ov02_0233BEC4: @ 0x0233BEC4 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_02334724 + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_0234E02C + ldr r0, _0233BF60 @ =0x0235AAC0 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _0233BF1C + bl ov02_02334D10 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 +_0233BF1C: + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + ldr r0, _0233BF60 @ =0x0235AAC0 + mov r1, #1 + ldrb r0, [r0, #1] + cmp r0, #0 + mov r0, #0 + bne _0233BF50 + bl ov02_02338D78 + ldr r0, _0233BF64 @ =ov02_0233A904 + bl ov02_02338D68 + pop {r3, pc} +_0233BF50: + bl ov02_02338D78 + ldr r0, _0233BF68 @ =ov02_0233C364 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233BF60: .4byte 0x0235AAC0 +_0233BF64: .4byte ov02_0233A904 +_0233BF68: .4byte ov02_0233C364 + arm_func_end ov02_0233BEC4 + + arm_func_start ov02_0233BF6C +ov02_0233BF6C: @ 0x0233BF6C + push {r3, r4, r5, lr} + sub sp, sp, #0x28 + bl ov02_02339128 + mov r5, r0 + mov r0, #0 + mov r1, r0 + bl ov02_0234DDC8 + ldr r1, _0233C030 @ =0x0235AAC4 + mov r2, #0 + strb r2, [r1, #1] + mov r4, r0 + strb r2, [r1] + bl ov02_0233C03C + mov r0, #0 + add r1, sp, #0x10 + mov r2, #0x16 + bl FUN_0207C2B8 + ldrb r2, [r5, #1] + add r0, r5, #2 + add r1, sp, #0x10 + lsl r2, r2, #1 + bl FUN_0207C2E0 + mov r0, #0x1c + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x480 + str r0, [sp, #8] + add r1, sp, #0x10 + str r1, [sp, #0xc] + mov r0, r4 + mov r1, #8 + mov r2, #0x35 + mov r3, #0xf0 + bl ov02_0234E1E8 + mov r0, r4 + bl ov02_0234E354 + ldr r0, _0233C034 @ =0x0233C330 + bl ov02_02339104 + mov r1, #4 + mov r2, #0 + mov r0, #0x1d + sub r3, r1, #5 + str r2, [sp] + bl ov02_02349394 + ldr r0, _0233C038 @ =ov02_0233C0BC + bl ov02_02338D68 + add sp, sp, #0x28 + pop {r3, r4, r5, pc} + .align 2, 0 +_0233C030: .4byte 0x0235AAC4 +_0233C034: .4byte 0x0233C330 +_0233C038: .4byte ov02_0233C0BC + arm_func_end ov02_0233BF6C + + arm_func_start ov02_0233C03C +ov02_0233C03C: @ 0x0233C03C + push {r3, lr} + ldr r0, _0233C0AC @ =0x02353868 + ldr r1, _0233C0B0 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _0233C0B4 @ =0x04001008 + ldr r1, _0233C0B8 @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_0233C0AC: .4byte 0x02353868 +_0233C0B0: .4byte FUN_020780D0 +_0233C0B4: .4byte 0x04001008 +_0233C0B8: .4byte 0x0400000A + arm_func_end ov02_0233C03C + + arm_func_start ov02_0233C0BC +ov02_0233C0BC: @ 0x0233C0BC + push {r3, lr} + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _0233C0EC @ =0x0233C0F0 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233C0EC: .4byte 0x0233C0F0 + arm_func_end ov02_0233C0BC +_0233C0F0: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x00, 0x00, 0xA0, 0xE3, 0xEF, 0x45, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x08, 0x80, 0xBD, 0x18, 0x04, 0x00, 0x9F, 0xE5, 0x16, 0xF3, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x14, 0xC1, 0x33, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x79, 0x35, 0x00, 0xEB, 0x01, 0x10, 0xE0, 0xE3 + .byte 0x01, 0x00, 0x50, 0xE1, 0x08, 0x80, 0xBD, 0x08, 0x04, 0x00, 0x9F, 0xE5, 0x0D, 0xF3, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0x38, 0xC1, 0x33, 0x02 + + arm_func_start ov02_0233C138 +ov02_0233C138: @ 0x0233C138 + push {r3, lr} + bl ov02_0233C1A8 + bl ov02_0233C1AC + bl ov02_02349704 + cmp r0, #0 + beq _0233C15C + cmp r0, #1 + beq _0233C174 + pop {r3, pc} +_0233C15C: + ldr r1, _0233C1A0 @ =0x0235AAC4 + mov r2, #0 + mov r0, #7 + strb r2, [r1, #1] + bl ov02_023480E0 + b _0233C188 +_0233C174: + ldr r1, _0233C1A0 @ =0x0235AAC4 + mov r2, #1 + mov r0, #0xe + strb r2, [r1, #1] + bl ov02_023480E0 +_0233C188: + mov r0, #0 + bl ov02_02339104 + bl ov02_023496C0 + ldr r0, _0233C1A4 @ =ov02_0233C1B0 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233C1A0: .4byte 0x0235AAC4 +_0233C1A4: .4byte ov02_0233C1B0 + arm_func_end ov02_0233C138 + + arm_func_start ov02_0233C1A8 +ov02_0233C1A8: @ 0x0233C1A8 + bx lr + arm_func_end ov02_0233C1A8 + + arm_func_start ov02_0233C1AC +ov02_0233C1AC: @ 0x0233C1AC + bx lr + arm_func_end ov02_0233C1AC + + arm_func_start ov02_0233C1B0 +ov02_0233C1B0: @ 0x0233C1B0 + push {r3, lr} + bl ov02_02349718 + cmp r0, #0 + popne {r3, pc} + ldr r0, _0233C204 @ =0x0235AAC4 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _0233C1E4 + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 +_0233C1E4: + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _0233C208 @ =ov02_0233C20C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233C204: .4byte 0x0235AAC4 +_0233C208: .4byte ov02_0233C20C + arm_func_end ov02_0233C1B0 + + arm_func_start ov02_0233C20C +ov02_0233C20C: @ 0x0233C20C + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + ldr r0, _0233C260 @ =0x0235AAC4 + ldrb r1, [r0] + cmp r1, #0 + ldrbeq r0, [r0, #1] + cmpeq r0, #1 + bne _0233C250 + bl ov02_0234BFC8 + b _0233C254 +_0233C250: + bl ov02_0233908C +_0233C254: + ldr r0, _0233C264 @ =ov02_0233C268 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233C260: .4byte 0x0235AAC4 +_0233C264: .4byte ov02_0233C268 + arm_func_end ov02_0233C20C + + arm_func_start ov02_0233C268 +ov02_0233C268: @ 0x0233C268 + push {r3, lr} + ldr r0, _0233C320 @ =0x0235AAC4 + ldrb r1, [r0] + cmp r1, #0 + bne _0233C288 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _0233C294 +_0233C288: + bl ov02_023390E8 + cmp r0, #0 + popeq {r3, pc} +_0233C294: + mov r0, #0 + bl ov02_0234E02C + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + ldr r0, _0233C320 @ =0x0235AAC4 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _0233C2C8 + bl ov02_02334D10 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 +_0233C2C8: + mov r0, #0 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _0233C320 @ =0x0235AAC4 + ldrb r1, [r0] + cmp r1, #0 + beq _0233C2F0 + ldr r0, _0233C324 @ =ov02_0233BC04 + bl ov02_02338D68 + pop {r3, pc} +_0233C2F0: + ldrb r0, [r0, #1] + cmp r0, #0 + bne _0233C314 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 + ldr r0, _0233C328 @ =ov02_0233A904 + bl ov02_02338D68 + pop {r3, pc} +_0233C314: + ldr r0, _0233C32C @ =ov02_0233B01C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233C320: .4byte 0x0235AAC4 +_0233C324: .4byte ov02_0233BC04 +_0233C328: .4byte ov02_0233A904 +_0233C32C: .4byte ov02_0233B01C + arm_func_end ov02_0233C268 +_0233C330: + .byte 0x08, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0xC0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0xC4, 0xAA, 0x35, 0x02 + + arm_func_start ov02_0233C344 +ov02_0233C344: @ 0x0233C344 + ldr r0, _0233C360 @ =0x027FFFA8 + ldrh r0, [r0] + and r0, r0, #0x8000 + asrs r0, r0, #0xf + movne r0, #1 + moveq r0, #0 + bx lr + .align 2, 0 +_0233C360: .4byte 0x027FFFA8 + arm_func_end ov02_0233C344 + + arm_func_start ov02_0233C364 +ov02_0233C364: @ 0x0233C364 + push {r3, lr} + ldr r0, _0233C3A4 @ =ov02_0233C6E0 + bl ov02_02338FA0 + ldr r0, _0233C3A8 @ =0x0235AAC8 + mov r1, #0 + strb r1, [r0] + bl ov02_0233C3B0 + mov r0, #0x1c + bl ov02_02334E70 + mov r0, #0 + bl ov02_023343DC + mov r0, #0xb + bl ov02_023480E0 + ldr r0, _0233C3AC @ =ov02_0233C430 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233C3A4: .4byte ov02_0233C6E0 +_0233C3A8: .4byte 0x0235AAC8 +_0233C3AC: .4byte ov02_0233C430 + arm_func_end ov02_0233C364 + + arm_func_start ov02_0233C3B0 +ov02_0233C3B0: @ 0x0233C3B0 + push {r3, lr} + ldr r0, _0233C420 @ =0x0235387C + ldr r1, _0233C424 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _0233C428 @ =0x04001008 + ldr r1, _0233C42C @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_0233C420: .4byte 0x0235387C +_0233C424: .4byte FUN_020780D0 +_0233C428: .4byte 0x04001008 +_0233C42C: .4byte 0x0400000A + arm_func_end ov02_0233C3B0 + + arm_func_start ov02_0233C430 +ov02_0233C430: @ 0x0233C430 + push {r3, lr} + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _0233C460 @ =ov02_0233C464 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233C460: .4byte ov02_0233C464 + arm_func_end ov02_0233C430 + + arm_func_start ov02_0233C464 +ov02_0233C464: @ 0x0233C464 + push {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #1 + bl ov02_02334E38 + ldr r0, _0233C48C @ =0x0233C490 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233C48C: .4byte 0x0233C490 + arm_func_end ov02_0233C464 +_0233C490: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x90, 0xE0, 0xFF, 0xEB, 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1 + .byte 0x08, 0x80, 0xBD, 0x08, 0x04, 0x00, 0x9F, 0xE5, 0x2E, 0xF2, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0xB4, 0xC4, 0x33, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x02, 0x00, 0x00, 0xEB, 0x0F, 0x00, 0x00, 0xEB + .byte 0x0F, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0233C4C8 +ov02_0233C4C8: @ 0x0233C4C8 + push {r3, lr} + mov r0, #2 + bl ov02_0234EBBC + cmp r0, #0 + beq _0233C4E8 + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} +_0233C4E8: + bl ov02_0233C344 + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} + arm_func_end ov02_0233C4C8 + + arm_func_start ov02_0233C500 +ov02_0233C500: @ 0x0233C500 + bx lr + arm_func_end ov02_0233C500 + + arm_func_start ov02_0233C504 +ov02_0233C504: @ 0x0233C504 + push {r3, lr} + bl ov02_023346DC + cmp r0, #0 + popne {r3, pc} + bl ov02_02348148 + mov r0, #7 + bl ov02_023480E0 + ldr r0, _0233C52C @ =ov02_0233C530 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233C52C: .4byte ov02_0233C530 + arm_func_end ov02_0233C504 + + arm_func_start ov02_0233C530 +ov02_0233C530: @ 0x0233C530 + push {r3, lr} + ldr r0, _0233C560 @ =0x0235AAC8 + ldrb r0, [r0] + cmp r0, #0 + bne _0233C548 + bl ov02_0233908C +_0233C548: + bl ov02_02334768 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _0233C564 @ =ov02_0233C568 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233C560: .4byte 0x0235AAC8 +_0233C564: .4byte ov02_0233C568 + arm_func_end ov02_0233C530 + + arm_func_start ov02_0233C568 +ov02_0233C568: @ 0x0233C568 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + ldr r0, _0233C5E0 @ =0x0235AAC8 + ldrb r0, [r0] + cmp r0, #0 + bne _0233C598 + bl ov02_023390E8 + cmp r0, #0 + popeq {r3, pc} +_0233C598: + bl ov02_023346AC + ldr r0, _0233C5E0 @ =0x0235AAC8 + ldrb r0, [r0] + cmp r0, #0 + bne _0233C5C0 + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 +_0233C5C0: + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _0233C5E4 @ =ov02_0233C5E8 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233C5E0: .4byte 0x0235AAC8 +_0233C5E4: .4byte ov02_0233C5E8 + arm_func_end ov02_0233C568 + + arm_func_start ov02_0233C5E8 +ov02_0233C5E8: @ 0x0233C5E8 + push {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + ldr r0, _0233C6D0 @ =0x0235AAC8 + ldrb r0, [r0] + cmp r0, #0 + bne _0233C61C + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} +_0233C61C: + bl ov02_02334724 + cmp r0, #0 + popeq {r3, pc} + ldr r0, _0233C6D0 @ =0x0235AAC8 + ldrb r0, [r0] + cmp r0, #0 + bne _0233C644 + bl ov02_023390E8 + cmp r0, #0 + popeq {r3, pc} +_0233C644: + bl ov02_023344AC + mov r0, #0 + bl ov02_0234E02C + ldr r0, _0233C6D0 @ =0x0235AAC8 + ldrb r0, [r0] + cmp r0, #0 + bne _0233C670 + bl ov02_02334D10 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 +_0233C670: + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + ldr r0, _0233C6D0 @ =0x0235AAC8 + mov r1, #1 + ldrb r0, [r0] + cmp r0, #0 + bne _0233C6A4 + mov r0, #0 + bl ov02_02338D78 + ldr r0, _0233C6D4 @ =ov02_0233A904 + bl ov02_02338D68 + pop {r3, pc} +_0233C6A4: + cmp r0, #2 + mov r0, #0 + bne _0233C6C0 + bl ov02_02338D78 + ldr r0, _0233C6D8 @ =ov02_0233BC04 + bl ov02_02338D68 + pop {r3, pc} +_0233C6C0: + bl ov02_02338D78 + ldr r0, _0233C6DC @ =ov02_0233BF6C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233C6D0: .4byte 0x0235AAC8 +_0233C6D4: .4byte ov02_0233A904 +_0233C6D8: .4byte ov02_0233BC04 +_0233C6DC: .4byte ov02_0233BF6C + arm_func_end ov02_0233C5E8 + + arm_func_start ov02_0233C6E0 +ov02_0233C6E0: @ 0x0233C6E0 + push {r4, lr} + mov r4, r0 + bl ov02_02348148 + cmp r4, #0 + bne _0233C70C + ldr r1, _0233C734 @ =0x0235AAC8 + mov r2, #1 + mov r0, #0x10 + strb r2, [r1] + bl ov02_023480E0 + b _0233C720 +_0233C70C: + ldr r1, _0233C734 @ =0x0235AAC8 + mov r2, #2 + mov r0, #0x12 + strb r2, [r1] + bl ov02_023480E0 +_0233C720: + mov r0, #0 + bl ov02_02339104 + ldr r0, _0233C738 @ =ov02_0233C530 + bl ov02_02338D68 + pop {r4, pc} + .align 2, 0 +_0233C734: .4byte 0x0235AAC8 +_0233C738: .4byte ov02_0233C530 + arm_func_end ov02_0233C6E0 + + arm_func_start ov02_0233C73C +ov02_0233C73C: @ 0x0233C73C + ldr r0, _0233C758 @ =0x027FFFA8 + ldrh r0, [r0] + and r0, r0, #0x8000 + asrs r0, r0, #0xf + movne r0, #1 + moveq r0, #0 + bx lr + .align 2, 0 +_0233C758: .4byte 0x027FFFA8 + arm_func_end ov02_0233C73C + + arm_func_start ov02_0233C75C +ov02_0233C75C: @ 0x0233C75C + push {r3, lr} + ldr r0, _0233C7B4 @ =0x0235AACC + mov r1, #0 + strh r1, [r0, #2] + bl ov02_0233C7BC + bl ov02_023352C4 + mov r0, #0x36 + sub r1, r0, #0x37 + mov r2, #0 + bl ov02_02334C3C + mov r0, #2 + bl ov02_02334DE8 + mov r0, #0x22 + bl ov02_02334E70 + mov r0, #0 + bl ov02_023343DC + bl ov02_023386D8 + mov r0, #0xb + bl ov02_023480E0 + ldr r0, _0233C7B8 @ =ov02_0233C864 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233C7B4: .4byte 0x0235AACC +_0233C7B8: .4byte ov02_0233C864 + arm_func_end ov02_0233C75C + + arm_func_start ov02_0233C7BC +ov02_0233C7BC: @ 0x0233C7BC + push {r3, lr} + ldr r0, _0233C844 @ =0x02353890 + ldr r1, _0233C848 @ =0x02078310 + bl ov02_02334DA8 + ldr r0, _0233C84C @ =0x023538A8 + ldr r1, _0233C850 @ =FUN_02077CF8 + bl ov02_02334DA8 + ldr r0, _0233C854 @ =0x023538C0 + ldr r1, _0233C858 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _0233C85C @ =0x04001008 + ldr r1, _0233C860 @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_0233C844: .4byte 0x02353890 +_0233C848: .4byte 0x02078310 +_0233C84C: .4byte 0x023538A8 +_0233C850: .4byte FUN_02077CF8 +_0233C854: .4byte 0x023538C0 +_0233C858: .4byte FUN_020780D0 +_0233C85C: .4byte 0x04001008 +_0233C860: .4byte 0x0400000A + arm_func_end ov02_0233C7BC + + arm_func_start ov02_0233C864 +ov02_0233C864: @ 0x0233C864 + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #2 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #1 + mov r1, r0 + bl ov02_0234E3D0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _0233C8B4 @ =ov02_0233C8B8 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233C8B4: .4byte ov02_0233C8B8 + arm_func_end ov02_0233C864 + + arm_func_start ov02_0233C8B8 +ov02_0233C8B8: @ 0x0233C8B8 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #1 + bl ov02_02334E38 + ldr r0, _0233C8F0 @ =ov02_0233C8F4 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233C8F0: .4byte ov02_0233C8F4 + arm_func_end ov02_0233C8B8 + + arm_func_start ov02_0233C8F4 +ov02_0233C8F4: @ 0x0233C8F4 + push {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + popeq {r3, pc} + ldr r1, _0233C930 @ =0x0233CC14 + mov r0, #1 + mov r2, #0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _0233C934 @ =0x0235AACC + str r0, [r1, #4] + ldr r0, _0233C938 @ =ov02_0233C93C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233C930: .4byte 0x0233CC14 +_0233C934: .4byte 0x0235AACC +_0233C938: .4byte ov02_0233C93C + arm_func_end ov02_0233C8F4 + + arm_func_start ov02_0233C93C +ov02_0233C93C: @ 0x0233C93C + push {r3, lr} + bl ov02_0233CA10 + bl ov02_0233CA48 + bl ov02_0233CA4C + bl ov02_02338838 + cmp r0, #0 + popeq {r3, pc} + cmp r0, #1 + beq _0233C96C + cmp r0, #2 + beq _0233C9A0 + pop {r3, pc} +_0233C96C: + ldr r2, _0233CA04 @ =0x0235AACC + ldr r1, [r2, #4] + cmp r1, #0 + popeq {r3, pc} + mov r0, #1 + strb r0, [r2] + bl ov02_0234FB6C + ldr r1, _0233CA04 @ =0x0235AACC + mov r2, #0 + ldr r0, _0233CA08 @ =ov02_0233CC7C + str r2, [r1, #4] + bl ov02_02338D68 + pop {r3, pc} +_0233C9A0: + ldr r0, _0233CA04 @ =0x0235AACC + ldr r0, [r0, #4] + cmp r0, #0 + popeq {r3, pc} + bl ov02_02348148 + mov r1, #1 + mov ip, #0 + mov r2, r1 + sub r3, r1, #2 + mov r0, #0xc + str ip, [sp] + bl ov02_02349394 + mov r0, #9 + bl ov02_023480E0 + bl ov02_02334768 + ldr r1, _0233CA04 @ =0x0235AACC + mov r0, #1 + ldr r1, [r1, #4] + bl ov02_0234FB6C + ldr r1, _0233CA04 @ =0x0235AACC + mov r2, #0 + ldr r0, _0233CA0C @ =ov02_0233CC30 + str r2, [r1, #4] + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233CA04: .4byte 0x0235AACC +_0233CA08: .4byte ov02_0233CC7C +_0233CA0C: .4byte ov02_0233CC30 + arm_func_end ov02_0233C93C + + arm_func_start ov02_0233CA10 +ov02_0233CA10: @ 0x0233CA10 + push {r3, lr} + mov r0, #2 + bl ov02_0234EBBC + cmp r0, #0 + beq _0233CA30 + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} +_0233CA30: + bl ov02_0233C73C + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} + arm_func_end ov02_0233CA10 + + arm_func_start ov02_0233CA48 +ov02_0233CA48: @ 0x0233CA48 + bx lr + arm_func_end ov02_0233CA48 + + arm_func_start ov02_0233CA4C +ov02_0233CA4C: @ 0x0233CA4C + push {r3, lr} + bl ov02_023346DC + cmp r0, #0 + popne {r3, pc} + ldr r0, _0233CA90 @ =0x0235AACC + ldr r1, [r0, #4] + cmp r1, #0 + popeq {r3, pc} + mov r0, #1 + bl ov02_0234FB40 + ldr r0, _0233CA90 @ =0x0235AACC + mov r1, #0 + str r1, [r0, #4] + bl ov02_02334768 + ldr r0, _0233CA94 @ =ov02_0233CCC8 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233CA90: .4byte 0x0235AACC +_0233CA94: .4byte ov02_0233CCC8 + arm_func_end ov02_0233CA4C + + arm_func_start ov02_0233CA98 +ov02_0233CA98: @ 0x0233CA98 + push {r3, lr} + bl ov02_02334768 + ldr r0, _0233CACC @ =0x0235AACC + ldr r1, [r0, #4] + arm_func_end ov02_0233CA98 + + arm_func_start ov02_0233CAA8 +ov02_0233CAA8: @ 0x0233CAA8 + cmp r1, #0 + beq _0233CAB8 + mov r0, #1 + bl ov02_0234FB6C +_0233CAB8: + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _0233CAD0 @ =ov02_0233CAD4 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233CACC: .4byte 0x0235AACC +_0233CAD0: .4byte ov02_0233CAD4 + arm_func_end ov02_0233CAA8 + + arm_func_start ov02_0233CAD4 +ov02_0233CAD4: @ 0x0233CAD4 + push {r3, lr} + arm_func_end ov02_0233CAD4 + + arm_func_start ov02_0233CAD8 +ov02_0233CAD8: @ 0x0233CAD8 + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_023346AC + ldr r0, _0233CB30 @ =0x0235AACC + ldrb r0, [r0] + cmp r0, #0 + bne _0233CB10 + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 + arm_func_end ov02_0233CAD8 +_0233CB10: + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _0233CB34 @ =ov02_0233CB38 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233CB30: .4byte 0x0235AACC +_0233CB34: .4byte ov02_0233CB38 + + arm_func_start ov02_0233CB38 +ov02_0233CB38: @ 0x0233CB38 + push {r3, lr} + arm_func_end ov02_0233CB38 + + arm_func_start ov02_0233CB3C +ov02_0233CB3C: @ 0x0233CB3C + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + ldr r0, _0233CC08 @ =0x0235AACC + ldrb r0, [r0] + cmp r0, #0 + bne _0233CB6C + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} +_0233CB6C: + bl ov02_02334724 + cmp r0, #0 + popeq {r3, pc} + ldr r0, _0233CC08 @ =0x0235AACC + ldrb r0, [r0] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + bl ov02_023387E8 + bl ov02_023344AC + mov r0, #0 + bl ov02_0234E02C + ldr r0, _0233CC08 @ =0x0235AACC + ldrb r0, [r0] + cmp r0, #0 + bne _0233CBBC + bl ov02_02334D10 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 +_0233CBBC: + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + ldr r0, _0233CC08 @ =0x0235AACC + ldrb r0, [r0] + cmp r0, #0 + bne _0233CBF0 + mov r0, #2 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _0233CC0C @ =ov02_02344AF0 + bl ov02_02338D68 + pop {r3, pc} +_0233CBF0: + mov r0, #0 + mov r1, r0 + bl ov02_02338D78 + ldr r0, _0233CC10 @ =ov02_0233CCF8 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233CC08: .4byte 0x0235AACC +_0233CC0C: .4byte ov02_02344AF0 +_0233CC10: .4byte ov02_0233CCF8 + arm_func_end ov02_0233CB3C +_0233CC14: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x3B, 0x47, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x70, 0x4B, 0x00, 0xEB, 0x79, 0xFF, 0xFF, 0xEB, 0x87, 0xFF, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0233CC30 +ov02_0233CC30: @ 0x0233CC30 + push {r3, lr} + bl ov02_02349704 + cmp r0, #0 + popne {r3, pc} + mov r0, #6 + bl ov02_023480E0 + bl ov02_023496C0 + ldr r0, _0233CC58 @ =0x0233CC5C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233CC58: .4byte 0x0233CC5C + arm_func_end ov02_0233CC30 +_0233CC5C: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0xAC, 0x32, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18, 0x04, 0x00, 0x9F, 0xE5 + .byte 0x3C, 0xF0, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x98, 0xCA, 0x33, 0x02 + + arm_func_start ov02_0233CC7C +ov02_0233CC7C: @ 0x0233CC7C + push {r3, lr} + bl ov02_0233CA10 + bl ov02_0233CA48 + bl ov02_0233CA4C + ldr r1, _0233CCBC @ =0x0235AACC + ldr r0, _0233CCC0 @ =0x00000438 + ldrh r2, [r1, #2] + add r2, r2, #1 + strh r2, [r1, #2] + ldrh r1, [r1, #2] + cmp r1, r0 + poplo {r3, pc} + bl ov02_02348148 + ldr r0, _0233CCC4 @ =ov02_0233CA98 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233CCBC: .4byte 0x0235AACC +_0233CCC0: .4byte 0x00000438 +_0233CCC4: .4byte ov02_0233CA98 + arm_func_end ov02_0233CC7C + + arm_func_start ov02_0233CCC8 +ov02_0233CCC8: @ 0x0233CCC8 + push {r3, lr} + bl ov02_02348148 + mov r0, #7 + bl ov02_023480E0 + ldr r1, _0233CCF0 @ =0x0235AACC + mov r2, #0 + ldr r0, _0233CCF4 @ =ov02_0233CA98 + strb r2, [r1] + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233CCF0: .4byte 0x0235AACC +_0233CCF4: .4byte ov02_0233CA98 + arm_func_end ov02_0233CCC8 + + arm_func_start ov02_0233CCF8 +ov02_0233CCF8: @ 0x0233CCF8 + push {r3, lr} + ldr r0, _0233CD2C @ =0x0235AAD4 + mov r1, #0 + strb r1, [r0] +_0233CD08: + bl ov02_0233CD34 + bl ov02_023352C4 + mov r0, #0x23 + bl ov02_02334E70 + mov r0, #0x10 + bl ov02_023480E0 + ldr r0, _0233CD30 @ =ov02_0233CDA0 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233CD2C: .4byte 0x0235AAD4 +_0233CD30: .4byte ov02_0233CDA0 + arm_func_end ov02_0233CCF8 + + arm_func_start ov02_0233CD34 +ov02_0233CD34: @ 0x0233CD34 + push {r3, lr} + ldr r0, _0233CD90 @ =0x023538D4 + ldr r1, _0233CD94 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r2, _0233CD98 @ =0x04001008 + ldr r1, _0233CD9C @ =0x0400000A + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r2, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2, #2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_0233CD90: .4byte 0x023538D4 +_0233CD94: .4byte FUN_020780D0 +_0233CD98: .4byte 0x04001008 +_0233CD9C: .4byte 0x0400000A + arm_func_end ov02_0233CD34 + + arm_func_start ov02_0233CDA0 +ov02_0233CDA0: @ 0x0233CDA0 + push {r3, lr} + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _0233CDD0 @ =0x0233CDD4 + arm_func_end ov02_0233CDA0 + + arm_func_start ov02_0233CDC8 +ov02_0233CDC8: @ 0x0233CDC8 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233CDD0: .4byte 0x0233CDD4 + arm_func_end ov02_0233CDC8 +_0233CDD4: + .byte 0x08, 0x40, 0x2D, 0xE9 + + arm_func_start ov02_0233CDD8 +ov02_0233CDD8: @ 0x0233CDD8 + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + arm_func_end ov02_0233CDD8 + + arm_func_start ov02_0233CDE4 +ov02_0233CDE4: @ 0x0233CDE4 + popne {r3, pc} + ldr r0, _0233CDF4 @ =0x0233CDF8 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233CDF4: .4byte 0x0233CDF8 + arm_func_end ov02_0233CDE4 +_0233CDF8: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x2D, 0x00, 0x00, 0xEB + .byte 0x00, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0233CE08 +ov02_0233CE08: @ 0x0233CE08 + bx lr + arm_func_end ov02_0233CE08 + + arm_func_start ov02_0233CE0C +ov02_0233CE0C: @ 0x0233CE0C + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _0233CE44 @ =ov02_0233CE48 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233CE44: .4byte ov02_0233CE48 + arm_func_end ov02_0233CE0C + + arm_func_start ov02_0233CE48 +ov02_0233CE48: @ 0x0233CE48 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234E02C + bl ov02_02334D10 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + mov r0, #0 + mov r1, r0 + bl ov02_02338D78 + mov r0, #0 + mov r1, #1 + bl ov02_02338DB4 + ldr r0, _0233CEB4 @ =ov02_02345968 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233CEB4: .4byte ov02_02345968 + arm_func_end ov02_0233CE48 + + arm_func_start ov02_0233CEB8 +ov02_0233CEB8: @ 0x0233CEB8 + push {r3, lr} + ldr r0, _0233CEE4 @ =0x0235AAD4 + ldrb r1, [r0] + add r2, r1, #1 + and r1, r2, #0xff + strb r2, [r0] + cmp r1, #0x78 + poplo {r3, pc} + ldr r0, _0233CEE8 @ =ov02_0233CE0C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233CEE4: .4byte 0x0235AAD4 +_0233CEE8: .4byte ov02_0233CE0C + arm_func_end ov02_0233CEB8 + + arm_func_start ov02_0233CEEC +ov02_0233CEEC: @ 0x0233CEEC + push {r3, lr} + mov r0, #0x5c + mov r1, #4 + bl ov02_0234E7B4 + ldr r2, _0233CFB8 @ =0x0235AAD8 + mov r1, #0 + str r0, [r2, #4] + add r0, sp, #0 + bl ov02_02338DC8 + ldr r0, [sp] + cmp r0, #0 + bne _0233CF2C + ldr r0, _0233CFB8 @ =0x0235AAD8 + mov r1, #0 + strb r1, [r0] + strh r1, [r0, #2] +_0233CF2C: + ldr r0, _0233CFB8 @ =0x0235AAD8 + ldr r0, [r0, #4] + bl ov02_0234722C + ldr r1, _0233CFB8 @ =0x0235AAD8 + ldr r1, [r1, #4] + strb r0, [r1, #0x51] + bl ov02_0233CFC4 + bl ov02_023352C4 + mov r0, #0x34 + sub r1, r0, #0x35 + mov r2, #0 + bl ov02_02334C3C + mov r0, #2 + bl ov02_02334DE8 + bl ov02_0233D118 + bl ov02_0233D1C0 + mov r0, #0 + mov r1, r0 + bl ov02_0234DDC8 + ldr r2, _0233CFB8 @ =0x0235AAD8 + ldr r1, _0233CFBC @ =ov02_0233E118 + ldr r3, [r2, #4] + mov r2, #0 + str r0, [r3, #0xc] + mov r0, #1 + mov r3, #0x6e + bl ov02_0234FA98 + ldr r1, _0233CFB8 @ =0x0235AAD8 + ldr r1, [r1, #4] + str r0, [r1, #0x3c] + bl ov02_0233DC5C + bl ov02_0233E174 + ldr r0, _0233CFC0 @ =ov02_0233D334 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233CFB8: .4byte 0x0235AAD8 +_0233CFBC: .4byte ov02_0233E118 +_0233CFC0: .4byte ov02_0233D334 + arm_func_end ov02_0233CEEC + + arm_func_start ov02_0233CFC4 +ov02_0233CFC4: @ 0x0233CFC4 + push {r3, lr} + sub sp, sp, #0x30 + ldr r3, _0233D0FC @ =0x023529BF + add lr, sp, #0x16 + mov r2, #0xc +_0233CFD8: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + strb r1, [lr] + strb r0, [lr, #1] + add lr, lr, #2 + subs r2, r2, #1 + bne _0233CFD8 + ldrb r0, [r3] + ldr ip, _0233D100 @ =0x023529A9 + add r3, sp, #0 + strb r0, [lr] + mov r2, #0xb +_0233D00C: + ldrb r1, [ip] + ldrb r0, [ip, #1] + add ip, ip, #2 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + bne _0233D00C + ldr r0, _0233D104 @ =0x023538E8 + ldr r1, _0233D108 @ =0x02078130 + bl ov02_02334DA8 + add r0, sp, #0x16 + bl ov02_02334D48 + mov r1, #0 + mov r2, #4 + bl ov02_0234CE84 + ldr r1, _0233D10C @ =0x0235AAD8 + ldr r2, [r1, #4] + str r0, [r2, #4] + ldr r0, [r1, #4] + ldr r0, [r0, #4] + bl ov02_02346750 + bl ov02_023467DC + add r0, sp, #0 + bl ov02_02334D48 + mov r1, #0 + mov r2, #4 + bl ov02_0234CE84 + ldr r1, _0233D10C @ =0x0235AAD8 + ldr r3, _0233D110 @ =0x04001008 + ldr r1, [r1, #4] + sub r2, r3, #0x1000 + str r0, [r1, #8] + ldrh r0, [r3] + ldr r1, _0233D114 @ =0x0400000A + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #2 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + ldrh r0, [r1, #4] + bic r0, r0, #3 + orr r0, r0, #2 + strh r0, [r1, #4] + add sp, sp, #0x30 + pop {r3, pc} + .align 2, 0 +_0233D0FC: .4byte 0x023529BF +_0233D100: .4byte 0x023529A9 +_0233D104: .4byte 0x023538E8 +_0233D108: .4byte 0x02078130 +_0233D10C: .4byte 0x0235AAD8 +_0233D110: .4byte 0x04001008 +_0233D114: .4byte 0x0400000A + arm_func_end ov02_0233CFC4 + + arm_func_start ov02_0233D118 +ov02_0233D118: @ 0x0233D118 + push {r3, r4, lr} + sub sp, sp, #4 + ldr r2, _0233D1BC @ =0x0235AAD8 + mov r1, #0x1c + ldr ip, [r2, #4] + mov r0, #0 + ldrb r3, [ip, #0x51] + sub r3, r3, #4 + mul r1, r3, r1 + strh r1, [ip, #0x40] + ldr r2, [r2, #4] + ldrb r1, [r2, #0x51] + cmp r1, #4 + movls r4, r0 + strbls r0, [r2, #0x53] + bls _0233D178 + cmp r1, #8 + movhi r1, #0x37 + strbhi r1, [r2, #0x53] + movhi r4, #2 + bhi _0233D178 + mov r1, #0x1f + strb r1, [r2, #0x53] + mov r4, #1 +_0233D178: + cmp r4, #0 + beq _0233D19C + ldr r0, _0233D1BC @ =0x0235AAD8 + ldr r1, [r0, #4] + ldrh r2, [r0, #2] + ldrb r0, [r1, #0x53] + ldrh r1, [r1, #0x40] + mul r0, r2, r0 + bl FUN_02075BFC +_0233D19C: + str r0, [sp] + mov r0, r4 + mov r1, #0x55 + mov r2, #0xec + mov r3, #0x3f + bl ov02_02346964 + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0233D1BC: .4byte 0x0235AAD8 + arm_func_end ov02_0233D118 + + arm_func_start ov02_0233D1C0 +ov02_0233D1C0: @ 0x0233D1C0 + push {r4, r5, r6, r7, r8, sb, sl, lr} + ldr r0, _0233D324 @ =0x0235AAD8 + mov sb, #0 + ldr r0, [r0, #4] + ldrb r8, [r0, #0x51] + cmp r8, #5 + movgt r8, #5 + cmp r8, #0 + ble _0233D234 + ldr sl, _0233D324 @ =0x0235AAD8 + mov r7, sb + mov r6, #0x2e + mov r5, sb + mov r4, #0x18 +_0233D1F8: + mov r0, r7 + mov r1, r6 + bl ov02_0234D6AC + ldr r2, [sl, #4] + mov r1, r4 + add r2, r2, sb, lsl #2 + str r0, [r2, #0x10] + mov r0, r5 + bl ov02_0234D6AC + ldr r1, [sl, #4] + add r1, r1, sb, lsl #2 + add sb, sb, #1 + str r0, [r1, #0x24] + cmp sb, r8 + blt _0233D1F8 +_0233D234: + mov r6, #0 + ldr r5, _0233D328 @ =0x02352A28 + ldr sb, _0233D324 @ =0x0235AAD8 + ldr r7, _0233D32C @ =0x000003FF + mov r4, r6 +_0233D248: + ldr r0, [sb, #4] + ldrb r1, [r5], #1 + ldr r2, [r0, #0x10] + mov r0, r4 + bl ov02_0234D618 + ldr r0, [sb, #4] + ldr r1, [r0, #0x10] + add r0, r0, r6, lsl #1 + ldrh r1, [r1, #4] + add r6, r6, #1 + cmp r6, #3 + and r1, r1, r7 + strh r1, [r0, #0x42] + blo _0233D248 + mov r6, #0 + ldr r5, _0233D330 @ =0x02352A2C + ldr sb, _0233D324 @ =0x0235AAD8 + ldr r7, _0233D32C @ =0x000003FF + mov r4, r6 +_0233D294: + ldr r0, [sb, #4] + ldrb r1, [r5], #1 + ldr r2, [r0, #0x24] + mov r0, r4 + bl ov02_0234D618 + ldr r0, [sb, #4] + ldr r1, [r0, #0x24] + add r0, r0, r6, lsl #1 + ldrh r1, [r1, #4] + add r6, r6, #1 + cmp r6, #4 + and r1, r1, r7 + strh r1, [r0, #0x48] + blo _0233D294 + cmp r8, #0 + mov r0, #0 + pople {r4, r5, r6, r7, r8, sb, sl, pc} + ldr r1, _0233D324 @ =0x0235AAD8 +_0233D2DC: + ldr r2, [r1, #4] + add r2, r2, r0, lsl #2 + ldr r3, [r2, #0x10] + ldrh r2, [r3, #4] + bic r2, r2, #0xc00 + orr r2, r2, #0xc00 + strh r2, [r3, #4] + ldr r2, [r1, #4] + add r2, r2, r0, lsl #2 + ldr r3, [r2, #0x24] + add r0, r0, #1 + ldrh r2, [r3, #4] + cmp r0, r8 + bic r2, r2, #0xc00 + orr r2, r2, #0xc00 + strh r2, [r3, #4] + blt _0233D2DC + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0233D324: .4byte 0x0235AAD8 +_0233D328: .4byte 0x02352A28 +_0233D32C: .4byte 0x000003FF +_0233D330: .4byte 0x02352A2C + arm_func_end ov02_0233D1C0 + + arm_func_start ov02_0233D334 +ov02_0233D334: @ 0x0233D334 + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #2 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #2 + mov r1, #0 + mov r2, #0x1d + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #1 + mov r1, r0 + bl ov02_0234E3D0 + mov r0, #0 + mov r1, #0x1d + bl ov02_0234E3D0 + ldr r0, _0233D384 @ =ov02_0233D388 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233D384: .4byte ov02_0233D388 + arm_func_end ov02_0233D334 + + arm_func_start ov02_0233D388 +ov02_0233D388: @ 0x0233D388 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_02334E38 + ldr r0, _0233D3C0 @ =0x0233D3C4 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233D3C0: .4byte 0x0233D3C4 + arm_func_end ov02_0233D388 +_0233D3C4: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xC3, 0xDC, 0xFF, 0xEB, 0x01, 0x10, 0xE0, 0xE3 + .byte 0x01, 0x00, 0x50, 0xE1, 0x08, 0x80, 0xBD, 0x08, 0xDC, 0xDC, 0xFF, 0xEB, 0x04, 0x00, 0x9F, 0xE5 + .byte 0x60, 0xEE, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0xEC, 0xD3, 0x33, 0x02, 0x08, 0x40, 0x2D, 0xE9 + .byte 0x02, 0x00, 0x00, 0xEB, 0x96, 0x00, 0x00, 0xEB, 0x31, 0x01, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0233D400 +ov02_0233D400: @ 0x0233D400 + push {r3, r4, r5, lr} + ldr r0, _0233D648 @ =0x0235AAD8 + ldr r1, [r0, #4] + ldr r0, [r1, #0x38] + cmp r0, #0 + ldrbeq r0, [r1, #0x57] + cmpeq r0, #0 + popne {r3, r4, r5, pc} + ldr r0, _0233D64C @ =0x02352F34 + bl ov02_0234ED04 + cmp r0, #0 + beq _0233D498 + ldr r0, _0233D648 @ =0x0235AAD8 + mvn r1, #0 + ldr r0, [r0, #4] + ldr r5, _0233D650 @ =0x023529D8 + strb r1, [r0, #0x50] + mov r4, #0 +_0233D448: + mov r0, r5 + bl ov02_0234ED04 + cmp r0, #0 + beq _0233D488 + cmp r4, #4 + bge _0233D470 + ldr r0, _0233D648 @ =0x0235AAD8 + ldr r0, [r0, #4] + strb r4, [r0, #0x50] + b _0233D498 +_0233D470: + mov r0, #1 + bl ov02_023346F0 + ldr r0, _0233D648 @ =0x0235AAD8 + strb r4, [r0] + bl ov02_0233E174 + pop {r3, r4, r5, pc} +_0233D488: + add r4, r4, #1 + cmp r4, #5 + add r5, r5, #8 + blo _0233D448 +_0233D498: + ldr r0, _0233D64C @ =0x02352F34 + bl ov02_0234EE14 + cmp r0, #0 + beq _0233D514 + ldr r4, _0233D650 @ =0x023529D8 + mov r5, #0 +_0233D4B0: + mov r0, r4 + bl ov02_0234EE14 + cmp r0, #0 + beq _0233D504 + ldr r0, _0233D648 @ =0x0235AAD8 + ldr r1, [r0, #4] + ldrsb r0, [r1, #0x50] + cmp r0, r5 + bne _0233D514 + ldrb r0, [r1, #0x51] + cmp r5, r0 + blt _0233D4EC + mov r0, #9 + bl ov02_023480E0 + b _0233D514 +_0233D4EC: + mov r0, #1 + bl ov02_023346F0 + ldr r0, _0233D648 @ =0x0235AAD8 + strb r5, [r0] + bl ov02_0233E174 + pop {r3, r4, r5, pc} +_0233D504: + add r5, r5, #1 + cmp r5, #4 + add r4, r4, #8 + blt _0233D4B0 +_0233D514: + mov r0, #1 + bl ov02_0234EBBC + cmp r0, #0 + beq _0233D534 + mov r0, #1 + bl ov02_023346F0 + bl ov02_02346AC4 + pop {r3, r4, r5, pc} +_0233D534: + mov r0, #2 + bl ov02_0234EBBC + cmp r0, #0 + beq _0233D550 + mov r0, #0 + bl ov02_023346F0 + pop {r3, r4, r5, pc} +_0233D550: + mov r0, #0x200 + bl ov02_0234EBFC + cmp r0, #0 + beq _0233D568 + bl ov02_0233E380 + pop {r3, r4, r5, pc} +_0233D568: + mov r0, #0x200 + bl ov02_0234EC3C + cmp r0, #0 + beq _0233D58C + ldr r0, _0233D648 @ =0x0235AAD8 + mov r1, #0 + ldr r0, [r0, #4] + strb r1, [r0, #0x59] + pop {r3, r4, r5, pc} +_0233D58C: + mov r0, #0x100 + bl ov02_0234EBFC + cmp r0, #0 + beq _0233D5A4 + bl ov02_0233E30C + pop {r3, r4, r5, pc} +_0233D5A4: + mov r0, #0x100 + bl ov02_0234EC3C + cmp r0, #0 + beq _0233D5C8 + ldr r0, _0233D648 @ =0x0235AAD8 + mov r1, #0 + ldr r0, [r0, #4] + strb r1, [r0, #0x59] + pop {r3, r4, r5, pc} +_0233D5C8: + mov r0, #0x40 + bl ov02_0234EBFC + cmp r0, #0 + beq _0233D5E4 + mov r0, #1 + bl ov02_0233E1C0 + pop {r3, r4, r5, pc} +_0233D5E4: + mov r0, #0x40 + bl ov02_0234EC3C + cmp r0, #0 + beq _0233D608 + ldr r0, _0233D648 @ =0x0235AAD8 + mov r1, #0 + ldr r0, [r0, #4] + strb r1, [r0, #0x59] + pop {r3, r4, r5, pc} +_0233D608: + mov r0, #0x80 + bl ov02_0234EBFC + cmp r0, #0 + beq _0233D624 + mov r0, #3 + bl ov02_0233E1C0 + pop {r3, r4, r5, pc} +_0233D624: + mov r0, #0x80 + bl ov02_0234EC3C + cmp r0, #0 + popeq {r3, r4, r5, pc} + ldr r0, _0233D648 @ =0x0235AAD8 + mov r1, #0 + ldr r0, [r0, #4] + strb r1, [r0, #0x59] + pop {r3, r4, r5, pc} + .align 2, 0 +_0233D648: .4byte 0x0235AAD8 +_0233D64C: .4byte 0x02352F34 +_0233D650: .4byte 0x023529D8 + arm_func_end ov02_0233D400 + + arm_func_start ov02_0233D654 +ov02_0233D654: @ 0x0233D654 + push {r3, lr} + ldr r0, _0233D8B8 @ =0x0235AAD8 + ldr r1, [r0, #4] + ldr r0, [r1, #0x38] + cmp r0, #0 + popne {r3, pc} + ldrb r0, [r1, #0x55] + cmp r0, #0 + subne r0, r0, #1 + strbne r0, [r1, #0x55] + bl ov02_02346A8C + cmp r0, #7 + addls pc, pc, r0, lsl #2 + pop {r3, pc} +_0233D68C: @ jump table + pop {r3, pc} @ case 0 + b _0233D6AC @ case 1 + b _0233D6C4 @ case 2 + b _0233D718 @ case 3 + b _0233D7C4 @ case 4 + b _0233D8A4 @ case 5 + b _0233D82C @ case 6 + b _0233D8A4 @ case 7 +_0233D6AC: + ldr r0, _0233D8B8 @ =0x0235AAD8 + mov r1, #1 + ldr r0, [r0, #4] + strb r1, [r0, #0x57] + bl ov02_02334768 + pop {r3, pc} +_0233D6C4: + ldr r0, _0233D8B8 @ =0x0235AAD8 + ldr r0, [r0, #4] + ldrb r0, [r0, #0x55] + cmp r0, #0 + popne {r3, pc} + bl ov02_0233519C + bl ov02_02346A78 + ldr r1, _0233D8B8 @ =0x0235AAD8 + ldr r1, [r1, #4] + ldrh r2, [r1, #0x40] + ldrb r1, [r1, #0x53] + mul r0, r2, r0 + bl FUN_02075BFC + ldr r1, _0233D8B8 @ =0x0235AAD8 + strh r0, [r1, #2] + bl ov02_0233DC5C + ldr r0, _0233D8B8 @ =0x0235AAD8 + mov r1, #4 + ldr r0, [r0, #4] + strb r1, [r0, #0x55] + pop {r3, pc} +_0233D718: + ldr r0, _0233D8B8 @ =0x0235AAD8 + mov r1, #0 + ldr r0, [r0, #4] + strb r1, [r0, #0x57] + bl ov02_02334750 + bl ov02_02346A78 + ldr r1, _0233D8B8 @ =0x0235AAD8 + ldr r1, [r1, #4] + ldrh r2, [r1, #0x40] + ldrb r1, [r1, #0x53] + mul r0, r2, r0 + bl FUN_02075BFC + ldr r1, _0233D8B8 @ =0x0235AAD8 + strh r0, [r1, #2] + mov r0, #0x13 + bl ov02_023480E0 + bl ov02_0233DC5C + ldr r0, _0233D8B8 @ =0x0235AAD8 + mov r1, #0x1c + ldrh r0, [r0, #2] + bl FUN_02075C38 + cmp r0, #0 + bne _0233D77C + bl ov02_0233E174 + pop {r3, pc} +_0233D77C: + cmp r0, #0xe + mov r0, #0 + mov r3, #0x78 + bge _0233D7A8 + ldr r1, _0233D8BC @ =ov02_0233DFC4 + mov r2, r0 + bl ov02_0234FA98 + ldr r1, _0233D8B8 @ =0x0235AAD8 + ldr r1, [r1, #4] + str r0, [r1, #0x38] + pop {r3, pc} +_0233D7A8: + ldr r1, _0233D8C0 @ =ov02_0233E080 + mov r2, r0 + bl ov02_0234FA98 + ldr r1, _0233D8B8 @ =0x0235AAD8 + ldr r1, [r1, #4] + str r0, [r1, #0x38] + pop {r3, pc} +_0233D7C4: + ldr r0, _0233D8B8 @ =0x0235AAD8 + ldrh r1, [r0, #2] + cmp r1, #0 + bne _0233D800 + ldr r0, [r0, #4] + ldrb r0, [r0, #0x58] + cmp r0, #0 + popne {r3, pc} + mov r0, #9 + bl ov02_023480E0 + ldr r0, _0233D8B8 @ =0x0235AAD8 + mov r1, #1 + ldr r0, [r0, #4] + strb r1, [r0, #0x58] + pop {r3, pc} +_0233D800: + mov r0, #0x13 + bl ov02_023480E0 + mov r0, #0 + ldr r1, _0233D8BC @ =ov02_0233DFC4 + mov r2, r0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _0233D8B8 @ =0x0235AAD8 + ldr r1, [r1, #4] + str r0, [r1, #0x38] + pop {r3, pc} +_0233D82C: + ldr r0, _0233D8B8 @ =0x0235AAD8 + ldr r2, [r0, #4] + ldrb r1, [r2, #0x51] + cmp r1, #4 + bls _0233D850 + ldrh r1, [r0, #2] + ldrh r0, [r2, #0x40] + cmp r1, r0 + bne _0233D878 +_0233D850: + ldrb r0, [r2, #0x58] + cmp r0, #0 + popne {r3, pc} + mov r0, #9 + bl ov02_023480E0 + ldr r0, _0233D8B8 @ =0x0235AAD8 + mov r1, #1 + ldr r0, [r0, #4] + strb r1, [r0, #0x58] + pop {r3, pc} +_0233D878: + mov r0, #0x13 + bl ov02_023480E0 + mov r0, #0 + ldr r1, _0233D8C0 @ =ov02_0233E080 + mov r2, r0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _0233D8B8 @ =0x0235AAD8 + ldr r1, [r1, #4] + str r0, [r1, #0x38] + pop {r3, pc} +_0233D8A4: + ldr r0, _0233D8B8 @ =0x0235AAD8 + mov r1, #0 + ldr r0, [r0, #4] + strb r1, [r0, #0x58] + pop {r3, pc} + .align 2, 0 +_0233D8B8: .4byte 0x0235AAD8 +_0233D8BC: .4byte ov02_0233DFC4 +_0233D8C0: .4byte ov02_0233E080 + arm_func_end ov02_0233D654 + + arm_func_start ov02_0233D8C4 +ov02_0233D8C4: @ 0x0233D8C4 + push {r3, lr} + ldr r0, _0233D9C4 @ =0x0235AAD8 + ldr r1, [r0, #4] + ldr r0, [r1, #0x38] + cmp r0, #0 + ldrbeq r0, [r1, #0x57] + cmpeq r0, #0 + popne {r3, pc} + bl ov02_023346DC + cmp r0, #0 + beq _0233D8FC + cmp r0, #1 + beq _0233D908 + pop {r3, pc} +_0233D8FC: + mov r0, #7 + bl ov02_023480E0 + b _0233D9B8 +_0233D908: + ldr r0, _0233D9C4 @ =0x0235AAD8 + ldrb r1, [r0] + cmp r1, #4 + bne _0233D934 + ldr r1, [r0, #4] + mov r2, #1 + mov r0, #6 + strb r2, [r1, #0x54] + bl ov02_023480E0 + bl ov02_0233E404 + b _0233D9B8 +_0233D934: + ldrh r0, [r0, #2] + mov r1, #0x1c + bl FUN_02075BFC + ldr r2, _0233D9C4 @ =0x0235AAD8 + mov r1, #0x2a + ldrb lr, [r2] + ldr ip, [r2, #4] + ldr r3, [ip] + add lr, lr, r0 + mla r0, lr, r1, r3 + ldrb r0, [r0, #0x28] + cmp r0, #2 + bne _0233D9A0 + mov r0, #9 + bl ov02_023480E0 + bl ov02_02346AC4 + bl ov02_02334768 + mov r1, #1 + mov r0, #0 + str r0, [sp] + mov r2, r1 + mov r0, #0xe + sub r3, r1, #2 + bl ov02_02349394 + ldr r0, _0233D9C8 @ =ov02_0233E434 + bl ov02_02338D68 + pop {r3, pc} +_0233D9A0: + mov r0, #1 + strb r0, [ip, #0x54] + ldr r1, [r2, #4] + mov r0, #6 + strb lr, [r1, #0x52] + bl ov02_023480E0 +_0233D9B8: + ldr r0, _0233D9CC @ =0x0233D9D0 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233D9C4: .4byte 0x0235AAD8 +_0233D9C8: .4byte ov02_0233E434 +_0233D9CC: .4byte 0x0233D9D0 + arm_func_end ov02_0233D8C4 +_0233D9D0: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x63, 0xDB, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE3, 0x3F, 0x40, 0x00, 0xEB + .byte 0x04, 0x00, 0x9F, 0xE5, 0xDF, 0xEC, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0xF0, 0xD9, 0x33, 0x02 + + arm_func_start ov02_0233D9F0 +ov02_0233D9F0: @ 0x0233D9F0 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + ldr r0, _0233DA58 @ =0x0235AAD8 + ldr r0, [r0, #4] + ldrb r0, [r0, #0x54] + cmp r0, #0 + beq _0233DA20 + bl ov02_023346AC + b _0233DA24 +_0233DA20: + bl ov02_02334768 +_0233DA24: + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #3 + mov r1, #0 + mov r2, #0x1d + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _0233DA5C @ =ov02_0233DA60 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233DA58: .4byte 0x0235AAD8 +_0233DA5C: .4byte ov02_0233DA60 + arm_func_end ov02_0233D9F0 + + arm_func_start ov02_0233DA60 +ov02_0233DA60: @ 0x0233DA60 + push {r3, r4, r5, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, r4, r5, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, r4, r5, pc} + bl ov02_02334724 + cmp r0, #0 + popeq {r3, r4, r5, pc} + ldr r1, _0233DC40 @ =0x0235AAD8 + mov r0, #1 + ldr r1, [r1, #4] + ldr r1, [r1, #0x3c] + bl ov02_0234FB6C + ldr r4, _0233DC40 @ =0x0235AAD8 + mov r5, #0 +_0233DAAC: + ldr r0, [r4, #4] + add r0, r0, r5, lsl #2 + ldr r0, [r0, #0x10] + cmp r0, #0 + beq _0233DAC4 + bl ov02_0234F2C0 +_0233DAC4: + ldr r0, [r4, #4] + add r0, r0, r5, lsl #2 + ldr r0, [r0, #0x24] + cmp r0, #0 + beq _0233DADC + bl ov02_0234F2C0 +_0233DADC: + add r5, r5, #1 + cmp r5, #5 + blt _0233DAAC + ldr r0, _0233DC40 @ =0x0235AAD8 + ldr r0, [r0, #4] + ldr r0, [r0, #0xc] + bl ov02_0234DFC8 + bl ov02_02346A3C + bl ov02_0233519C + bl ov02_02334D10 + bl ov02_023467B0 + ldr r0, _0233DC40 @ =0x0235AAD8 + ldr r0, [r0, #4] + ldr r0, [r0, #4] + bl ov02_0234CF78 + ldr r0, _0233DC40 @ =0x0235AAD8 + ldr r0, [r0, #4] + ldr r0, [r0, #8] + bl ov02_0234CF78 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 + mov r0, #0 + mov r1, #0x1d + bl ov02_0234E424 + mov r2, #0 + ldr r1, _0233DC44 @ =0x04000010 + ldr r0, _0233DC40 @ =0x0235AAD8 + str r2, [r1] + str r2, [r1, #8] + ldr r2, [r0, #4] + ldrb r1, [r2, #0x54] + cmp r1, #0 + bne _0233DB8C + bl ov02_0234705C + bl ov02_02347518 + ldrb r0, [r0, #0xf4] + bl ov02_0234793C + mov r0, #2 + mov r1, #0 + bl ov02_02338D78 + ldr r0, _0233DC48 @ =ov02_02344AF0 + bl ov02_02338D68 + b _0233DC34 +_0233DB8C: + ldrb r0, [r0] + cmp r0, #4 + bne _0233DBB4 + bl ov02_0234705C + mov r0, #0 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _0233DC4C @ =ov02_023438CC + bl ov02_02338D68 + b _0233DC34 +_0233DBB4: + ldrb r1, [r2, #0x52] + ldr r2, [r2] + mov r0, #0x2a + mla r0, r1, r0, r2 + bl ov02_02347554 + mov r0, #0 + mov r1, r0 + bl ov02_02338D78 + ldr r1, _0233DC40 @ =0x0235AAD8 + mov r0, #0x2a + ldr r2, [r1, #4] + ldrb r1, [r2, #0x52] + ldr r2, [r2] + mla r0, r1, r0, r2 + ldrb r0, [r0, #0x28] + mov r1, #1 + cmp r0, #0 + mov r0, #0 + beq _0233DC1C + bl ov02_02338D78 + mov r0, #1 + mov r1, r0 + bl ov02_02338DB4 + ldr r0, _0233DC50 @ =ov02_0233E488 + bl ov02_02338D68 + b _0233DC34 +_0233DC1C: + bl ov02_02338D78 + mov r0, #0 + mov r1, #1 + bl ov02_02338DB4 + ldr r0, _0233DC54 @ =ov02_02345968 + bl ov02_02338D68 +_0233DC34: + ldr r0, _0233DC58 @ =0x0235AADC + bl ov02_0234E7D8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0233DC40: .4byte 0x0235AAD8 +_0233DC44: .4byte 0x04000010 +_0233DC48: .4byte ov02_02344AF0 +_0233DC4C: .4byte ov02_023438CC +_0233DC50: .4byte ov02_0233E488 +_0233DC54: .4byte ov02_02345968 +_0233DC58: .4byte 0x0235AADC + arm_func_end ov02_0233DA60 + + arm_func_start ov02_0233DC5C +ov02_0233DC5C: @ 0x0233DC5C + push {r3, r4, r5, r6, r7, lr} + ldr r0, _0233DD00 @ =0x0235AAD8 + mov r1, #0x1c + ldrh r0, [r0, #2] + bl FUN_02075BFC + ldr r1, _0233DD00 @ =0x0235AAD8 + mov r7, r0 + ldr r0, [r1, #4] + mov r1, #0 + ldrb r4, [r0, #0x51] + ldr r0, [r0, #0xc] + bl ov02_0234E2A8 + cmp r4, #5 + movgt r4, #5 + mov r5, r7 + cmp r4, #0 + mov r6, #0 + ble _0233DCC0 +_0233DCA4: + mov r0, r5 + mov r1, r6 + bl ov02_0233DD04 + add r6, r6, #1 + cmp r6, r4 + add r5, r5, #1 + blt _0233DCA4 +_0233DCC0: + cmp r4, #0 + mov r5, #0 + ble _0233DCE8 +_0233DCCC: + mov r0, r7 + mov r1, r5 + bl ov02_0233DE7C + add r5, r5, #1 + cmp r5, r4 + add r7, r7, #1 + blt _0233DCCC +_0233DCE8: + ldr r0, _0233DD00 @ =0x0235AAD8 + ldr r0, [r0, #4] + ldr r0, [r0, #0xc] + bl ov02_0234E354 + bl ov02_0233DF08 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0233DD00: .4byte 0x0235AAD8 + arm_func_end ov02_0233DC5C + + arm_func_start ov02_0233DD04 +ov02_0233DD04: @ 0x0233DD04 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x30 + mov r7, r0 + mov r0, #0x2a + ldr r2, _0233DE78 @ =0x0235AAD8 + mul r6, r7, r0 + ldr r0, [r2, #4] + mov r4, r1 + ldr r0, [r0] + mov r1, #0x20 + add r0, r0, r6 + bl ov02_0234F59C + ldr r2, _0233DE78 @ =0x0235AAD8 + mov r1, #0x1c + mul r5, r4, r1 + ldr r2, [r2, #4] + mov r4, r0 + ldrb r1, [r2, #0x51] + cmp r7, r1 + addge sp, sp, #0x30 + popge {r3, r4, r5, r6, r7, pc} + add r0, sp, #0xc + cmp r4, #0x10 + mov r1, #0 + mov r2, #0x22 + addle r5, r5, #6 + bl FUN_0207C40C + cmp r4, #0x10 + movle ip, r4 + movgt ip, #0x10 + cmp ip, #0 + mov r3, #0 + ble _0233DDB4 + ldr r0, _0233DE78 @ =0x0235AAD8 + ldr r7, [r0, #4] + add r0, sp, #0xc +_0233DD94: + ldr r2, [r7] + lsl r1, r3, #1 + add r2, r6, r2 + ldrb r2, [r3, r2] + add r3, r3, #1 + cmp r3, ip + strh r2, [r0, r1] + blt _0233DD94 +_0233DDB4: + mov r1, #0xa + add r0, sp, #0xc + str r1, [sp] + str r0, [sp, #4] + mov r2, #1 + str r2, [sp, #8] + ldr r0, _0233DE78 @ =0x0235AAD8 + mov r2, r5 + ldr r0, [r0, #4] + mov r3, #2 + ldr r0, [r0, #0xc] + bl ov02_0234E13C + cmp r4, #0x10 + addle sp, sp, #0x30 + pople {r3, r4, r5, r6, r7, pc} + add r0, sp, #0xc + mov r1, #0 + mov r2, #0x22 + bl FUN_0207C40C + sub r3, r4, #0x10 + cmp r3, #0 + mov r7, #0 + ble _0233DE40 + ldr r0, _0233DE78 @ =0x0235AAD8 + ldr r4, [r0, #4] + add r0, sp, #0xc +_0233DE1C: + ldr r2, [r4] + lsl r1, r7, #1 + add r2, r6, r2 + add r2, r7, r2 + ldrb r2, [r2, #0x10] + add r7, r7, #1 + cmp r7, r3 + strh r2, [r0, r1] + blt _0233DE1C +_0233DE40: + mov r1, #0xa + add r0, sp, #0xc + str r1, [sp] + str r0, [sp, #4] + mov r2, #1 + str r2, [sp, #8] + ldr r0, _0233DE78 @ =0x0235AAD8 + add r2, r5, #0xc + ldr r0, [r0, #4] + mov r3, #2 + ldr r0, [r0, #0xc] + bl ov02_0234E13C + add sp, sp, #0x30 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0233DE78: .4byte 0x0235AAD8 + arm_func_end ov02_0233DD04 + + arm_func_start ov02_0233DE7C +ov02_0233DE7C: @ 0x0233DE7C + push {r4, lr} + ldr r3, _0233DF04 @ =0x0235AAD8 + ldr lr, [r3, #4] + ldrb r2, [lr, #0x51] + cmp r0, r2 + popge {r4, pc} + mov r2, #0x2a + mul r2, r0, r2 + ldr r0, [lr] + add r4, lr, r1, lsl #2 + add r0, r0, r2 + ldrb ip, [r0, #0x28] + ldr r4, [r4, #0x10] + mov r0, #0x400 + add ip, lr, ip, lsl #1 + ldrh lr, [r4, #4] + rsb r0, r0, #0 + ldrh ip, [ip, #0x42] + and lr, lr, r0 + orr ip, lr, ip + strh ip, [r4, #4] + ldr lr, [r3, #4] + ldr r3, [lr] + add ip, lr, r1, lsl #2 + add r1, r3, r2 + ldrh r1, [r1, #0x26] + ldr r3, [ip, #0x24] + add r1, lr, r1, lsl #1 + ldrh r2, [r3, #4] + ldrh r1, [r1, #0x48] + and r0, r2, r0 + orr r0, r0, r1 + strh r0, [r3, #4] + pop {r4, pc} + .align 2, 0 +_0233DF04: .4byte 0x0235AAD8 + arm_func_end ov02_0233DE7C + + arm_func_start ov02_0233DF08 +ov02_0233DF08: @ 0x0233DF08 + push {r4, r5, r6, lr} + ldr r0, _0233DFBC @ =0x0235AAD8 + mov r1, #0x1c + ldrh r0, [r0, #2] + bl FUN_02075C38 + ldr r1, _0233DFBC @ =0x0235AAD8 + rsb r0, r0, #0x36 + ldr r1, [r1, #4] + mov r2, #0 + ldrb r1, [r1, #0x51] + cmp r1, #5 + movgt r1, #5 + cmp r1, #0 + ble _0233DFA8 + ldr ip, _0233DFBC @ =0x0235AAD8 + ldr r3, _0233DFC0 @ =0xFE00FF00 +_0233DF48: + ldr r5, [ip, #4] + sub r4, r0, #2 + add r5, r5, r2, lsl #2 + ldr r6, [r5, #0x10] + add lr, r0, #1 + ldr r5, [r6] + and r4, r4, #0xff + and r5, r5, r3 + orr r4, r5, r4 + orr r4, r4, #0xb30000 + str r4, [r6] + ldr r4, [ip, #4] + and lr, lr, #0xff + add r4, r4, r2, lsl #2 + ldr r5, [r4, #0x24] + add r2, r2, #1 + ldr r4, [r5] + cmp r2, r1 + and r4, r4, r3 + orr r4, r4, lr + orr r4, r4, #0xd20000 + str r4, [r5] + add r0, r0, #0x1c + blt _0233DF48 +_0233DFA8: + ldr r0, _0233DFBC @ =0x0235AAD8 + mov r1, #1 + ldr r0, [r0, #4] + strb r1, [r0, #0x56] + pop {r4, r5, r6, pc} + .align 2, 0 +_0233DFBC: .4byte 0x0235AAD8 +_0233DFC0: .4byte 0xFE00FF00 + arm_func_end ov02_0233DF08 + + arm_func_start ov02_0233DFC4 +ov02_0233DFC4: @ 0x0233DFC4 + push {r3, r4, r5, lr} + mov r4, r0 + bl ov02_02346AC4 + bl ov02_0233519C + ldr r0, _0233E07C @ =0x0235AAD8 + ldrh r1, [r0, #2] + cmp r1, #4 + subhi r1, r1, #4 + movls r1, #0 + strh r1, [r0, #2] + ldr r0, _0233E07C @ =0x0235AAD8 + mov r1, #0x1c + ldrh r0, [r0, #2] + bl FUN_02075C38 + mov r5, r0 + cmp r5, #0x18 + bne _0233E010 + bl ov02_0233DC5C + pop {r3, r4, r5, pc} +_0233E010: + ble _0233E02C + ldr r0, _0233E07C @ =0x0235AAD8 + rsb r1, r5, #0x1c + ldrh r2, [r0, #2] + mov r5, #0 + add r1, r2, r1 + strh r1, [r0, #2] +_0233E02C: + bl ov02_0233DF08 + cmp r5, #0 + popne {r3, r4, r5, pc} + ldr r0, _0233E07C @ =0x0235AAD8 + ldr r1, [r0, #4] + ldrh r2, [r0, #2] + ldrb r0, [r1, #0x53] + ldrh r1, [r1, #0x40] + mul r0, r2, r0 + bl FUN_02075BFC + bl ov02_02346FEC + bl ov02_02346AAC + bl ov02_0233E174 + ldr r0, _0233E07C @ =0x0235AAD8 + mov r1, r4 + ldr r2, [r0, #4] + mov r0, #0 + str r0, [r2, #0x38] + bl ov02_0234FB40 + pop {r3, r4, r5, pc} + .align 2, 0 +_0233E07C: .4byte 0x0235AAD8 + arm_func_end ov02_0233DFC4 + + arm_func_start ov02_0233E080 +ov02_0233E080: @ 0x0233E080 + push {r4, lr} + mov r4, r0 + bl ov02_02346AC4 + bl ov02_0233519C + ldr r0, _0233E114 @ =0x0235AAD8 + mov r1, #0x1c + ldrh r2, [r0, #2] + add r2, r2, #4 + strh r2, [r0, #2] + ldrh r0, [r0, #2] + bl FUN_02075C38 + cmp r0, #4 + blt _0233E0BC + bl ov02_0233DF08 + pop {r4, pc} +_0233E0BC: + ldr r1, _0233E114 @ =0x0235AAD8 + ldrh r2, [r1, #2] + sub r0, r2, r0 + strh r0, [r1, #2] + bl ov02_0233DC5C + ldr r0, _0233E114 @ =0x0235AAD8 + ldr r1, [r0, #4] + ldrh r2, [r0, #2] + ldrb r0, [r1, #0x53] + ldrh r1, [r1, #0x40] + mul r0, r2, r0 + bl FUN_02075BFC + bl ov02_02346FEC + bl ov02_02346AAC + bl ov02_0233E174 + ldr r0, _0233E114 @ =0x0235AAD8 + mov r1, r4 + ldr r2, [r0, #4] + mov r0, #0 + str r0, [r2, #0x38] + bl ov02_0234FB40 + pop {r4, pc} + .align 2, 0 +_0233E114: .4byte 0x0235AAD8 + arm_func_end ov02_0233E080 + + arm_func_start ov02_0233E118 +ov02_0233E118: @ 0x0233E118 + push {r3, lr} + ldr r0, _0233E168 @ =0x0235AAD8 + ldr r1, [r0, #4] + ldrb r1, [r1, #0x56] + cmp r1, #0 + popeq {r3, pc} + ldrh r0, [r0, #2] + mov r1, #0x1c + bl FUN_02075C38 + ldr r1, _0233E16C @ =0x01FF0000 + sub r0, r0, #0x32 + ldr r2, _0233E170 @ =0x04000010 + and r1, r1, r0, lsl #16 + str r1, [r2] + ldr r0, _0233E168 @ =0x0235AAD8 + str r1, [r2, #8] + ldr r0, [r0, #4] + mov r1, #0 + strb r1, [r0, #0x56] + pop {r3, pc} + .align 2, 0 +_0233E168: .4byte 0x0235AAD8 +_0233E16C: .4byte 0x01FF0000 +_0233E170: .4byte 0x04000010 + arm_func_end ov02_0233E118 + + arm_func_start ov02_0233E174 +ov02_0233E174: @ 0x0233E174 + push {r3, lr} + ldr r0, _0233E1B0 @ =0x0235AAD8 + ldr r1, _0233E1B4 @ =0x02352A00 + ldrb r2, [r0] + ldr r3, _0233E1B8 @ =0x02352A02 + lsl ip, r2, #3 + cmp r2, #4 + ldr r2, _0233E1BC @ =0x02352A04 + movlo r0, #2 + ldrh r1, [r1, ip] + ldrh r2, [r2, ip] + ldrh r3, [r3, ip] + movhs r0, #3 + bl ov02_02334FF0 + pop {r3, pc} + .align 2, 0 +_0233E1B0: .4byte 0x0235AAD8 +_0233E1B4: .4byte 0x02352A00 +_0233E1B8: .4byte 0x02352A02 +_0233E1BC: .4byte 0x02352A04 + arm_func_end ov02_0233E174 + + arm_func_start ov02_0233E1C0 +ov02_0233E1C0: @ 0x0233E1C0 + push {r4, lr} + ldr r1, _0233E304 @ =0x0235AAD8 + mov r4, #1 + ldrb r3, [r1] + cmp r3, #4 + addls pc, pc, r3, lsl #2 + b _0233E2BC +_0233E1DC: @ jump table + b _0233E1F0 @ case 0 + b _0233E254 @ case 1 + b _0233E254 @ case 2 + b _0233E280 @ case 3 + b _0233E298 @ case 4 +_0233E1F0: + cmp r0, #1 + bne _0233E238 + ldrh r0, [r1, #2] + cmp r0, #0 + moveq r0, #4 + strbeq r0, [r1] + beq _0233E2BC + mov r0, #0x13 + bl ov02_023480E0 + mov r0, #0 + ldr r1, _0233E308 @ =ov02_0233DFC4 + mov r2, r0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _0233E304 @ =0x0235AAD8 + ldr r1, [r1, #4] + str r0, [r1, #0x38] + pop {r4, pc} +_0233E238: + ldr r0, [r1, #4] + ldrb r0, [r0, #0x51] + cmp r0, #1 + addhi r0, r3, #1 + strbhi r0, [r1] + movls r4, #0 + b _0233E2BC +_0233E254: + cmp r0, #1 + subeq r0, r3, #1 + strbeq r0, [r1] + beq _0233E2BC + ldr r2, [r1, #4] + add r0, r3, #1 + ldrb r2, [r2, #0x51] + cmp r2, r0 + strbgt r0, [r1] + movle r4, #0 + b _0233E2BC +_0233E280: + cmp r0, #1 + subeq r0, r3, #1 + strbeq r0, [r1] + beq _0233E2BC + bl ov02_0233E380 + pop {r4, pc} +_0233E298: + cmp r0, #1 + moveq r4, #0 + beq _0233E2BC + mov r0, #0 + strh r0, [r1, #2] + strb r0, [r1] + bl ov02_0233DC5C + mov r0, #0 + bl ov02_02346FEC +_0233E2BC: + cmp r4, #0 + bne _0233E2F4 + ldr r0, _0233E304 @ =0x0235AAD8 + ldr r0, [r0, #4] + ldrb r0, [r0, #0x59] + cmp r0, #0 + popne {r4, pc} + mov r0, #9 + bl ov02_023480E0 + ldr r0, _0233E304 @ =0x0235AAD8 + mov r1, #1 + ldr r0, [r0, #4] + strb r1, [r0, #0x59] + pop {r4, pc} +_0233E2F4: + mov r0, #8 + bl ov02_023480E0 + bl ov02_0233E174 + pop {r4, pc} + .align 2, 0 +_0233E304: .4byte 0x0235AAD8 +_0233E308: .4byte ov02_0233DFC4 + arm_func_end ov02_0233E1C0 + + arm_func_start ov02_0233E30C +ov02_0233E30C: @ 0x0233E30C + push {r3, lr} + ldr r0, _0233E378 @ =0x0235AAD8 + ldrh r1, [r0, #2] + cmp r1, #0 + bne _0233E34C + ldr r0, [r0, #4] + ldrb r0, [r0, #0x59] + cmp r0, #0 + popne {r3, pc} + mov r0, #9 + bl ov02_023480E0 + ldr r0, _0233E378 @ =0x0235AAD8 + mov r1, #1 + ldr r0, [r0, #4] + strb r1, [r0, #0x59] + pop {r3, pc} +_0233E34C: + mov r0, #0x13 + bl ov02_023480E0 + mov r0, #0 + ldr r1, _0233E37C @ =ov02_0233DFC4 + mov r2, r0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _0233E378 @ =0x0235AAD8 + ldr r1, [r1, #4] + str r0, [r1, #0x38] + pop {r3, pc} + .align 2, 0 +_0233E378: .4byte 0x0235AAD8 +_0233E37C: .4byte ov02_0233DFC4 + arm_func_end ov02_0233E30C + + arm_func_start ov02_0233E380 +ov02_0233E380: @ 0x0233E380 + push {r3, lr} + ldr r0, _0233E3FC @ =0x0235AAD8 + ldr r2, [r0, #4] + ldrh r1, [r0, #2] + ldrh r0, [r2, #0x40] + cmp r1, r0 + beq _0233E3A8 + ldrb r0, [r2, #0x51] + cmp r0, #4 + bhi _0233E3D0 +_0233E3A8: + ldrb r0, [r2, #0x59] + cmp r0, #0 + popne {r3, pc} + mov r0, #9 + bl ov02_023480E0 + ldr r0, _0233E3FC @ =0x0235AAD8 + mov r1, #1 + ldr r0, [r0, #4] + strb r1, [r0, #0x59] + pop {r3, pc} +_0233E3D0: + mov r0, #0x13 + bl ov02_023480E0 + mov r0, #0 + ldr r1, _0233E400 @ =ov02_0233E080 + mov r2, r0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _0233E3FC @ =0x0235AAD8 + ldr r1, [r1, #4] + str r0, [r1, #0x38] + pop {r3, pc} + .align 2, 0 +_0233E3FC: .4byte 0x0235AAD8 +_0233E400: .4byte ov02_0233E080 + arm_func_end ov02_0233E380 + + arm_func_start ov02_0233E404 +ov02_0233E404: @ 0x0233E404 + push {r3, lr} + ldr r1, _0233E42C @ =0x023529A8 + ldr r0, _0233E430 @ =0x0235AAD8 + ldrb r1, [r1] + ldr r0, [r0, #4] + ldr r0, [r0, #8] + mov r2, r1 + strb r1, [sp] + bl ov02_023468A0 + pop {r3, pc} + .align 2, 0 +_0233E42C: .4byte 0x023529A8 +_0233E430: .4byte 0x0235AAD8 + arm_func_end ov02_0233E404 + + arm_func_start ov02_0233E434 +ov02_0233E434: @ 0x0233E434 + push {r3, lr} + bl ov02_02349704 + cmp r0, #0 + popne {r3, pc} + mov r0, #6 + bl ov02_023480E0 + bl ov02_023496C0 + ldr r0, _0233E45C @ =0x0233E460 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233E45C: .4byte 0x0233E460 + arm_func_end ov02_0233E434 +_0233E460: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xAB, 0x2C, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18 + .byte 0xB6, 0xD8, 0xFF, 0xEB, 0x8C, 0x21, 0x00, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0x39, 0xEA, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0xEC, 0xD3, 0x33, 0x02 + + arm_func_start ov02_0233E488 +ov02_0233E488: @ 0x0233E488 + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr r1, _0233E5B0 @ =0x02352A30 + mov r0, #0x2c + ldrb r3, [r1] + ldrb r2, [r1, #1] + mov r1, #4 + strb r3, [sp] + strb r2, [sp, #1] + bl ov02_0234E7B4 + ldr r2, _0233E5B4 @ =0x0235AAE0 + add r1, sp, #4 + str r0, [r2] + add r0, sp, #8 + bl ov02_02338DC8 + ldr r0, [sp, #8] + cmp r0, #0 + bne _0233E500 + ldr r0, _0233E5B4 @ =0x0235AAE0 + ldr r0, [r0] + add r0, r0, #8 + bl ov02_023477B4 + ldr r0, _0233E5B4 @ =0x0235AAE0 + mov r1, #0x20 + ldr r0, [r0] + add r0, r0, #8 + bl ov02_0234F59C + ldr r1, _0233E5B4 @ =0x0235AAE0 + ldr r1, [r1] + strb r0, [r1, #0x29] +_0233E500: + bl ov02_0233E5BC + ldr r0, [sp, #8] + add r0, r0, #9 + bl ov02_02335268 + ldr r0, [sp, #4] + cmp r0, #1 + bne _0233E530 + mov r0, #0x35 + sub r1, r0, #0x36 + mov r2, #0 + bl ov02_02334C3C + b _0233E548 +_0233E530: + ldr r2, [sp, #8] + add r0, sp, #0 + ldrb r0, [r0, r2] + mvn r1, #0 + mov r2, #0 + bl ov02_02334C3C +_0233E548: + mov r0, #2 + bl ov02_02334DE8 + mov r0, #0 + mov r1, r0 + bl ov02_0234DDC8 + ldr r2, _0233E5B4 @ =0x0235AAE0 + mov r1, #0x3e + ldr r2, [r2] + str r0, [r2] + mov r0, #0 + bl ov02_0234D6AC + ldr r1, _0233E5B4 @ =0x0235AAE0 + ldr r2, [r1] + str r0, [r2, #4] + ldr r0, [r1] + ldr r1, [r0, #4] + ldrh r0, [r1, #4] + bic r0, r0, #0xc00 + orr r0, r0, #0xc00 + strh r0, [r1, #4] + bl ov02_0233EC58 + bl ov02_0233EB64 + ldr r0, _0233E5B8 @ =ov02_0233E678 + bl ov02_02338D68 + add sp, sp, #0xc + ldm sp!, {pc} + .align 2, 0 +_0233E5B0: .4byte 0x02352A30 +_0233E5B4: .4byte 0x0235AAE0 +_0233E5B8: .4byte ov02_0233E678 + arm_func_end ov02_0233E488 + + arm_func_start ov02_0233E5BC +ov02_0233E5BC: @ 0x0233E5BC + push {r3, lr} + ldr r0, _0233E650 @ =0x02353900 + ldr r1, _0233E654 @ =0x02077DA4 + bl ov02_02334DA8 + ldr r0, _0233E658 @ =0x02353914 + ldr r1, _0233E65C @ =0x02078310 + bl ov02_02334DA8 + ldr r0, _0233E660 @ =0x0235392C + ldr r1, _0233E664 @ =FUN_02077CF8 + bl ov02_02334DA8 + ldr r0, _0233E668 @ =0x02353944 + ldr r1, _0233E66C @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _0233E670 @ =0x04001008 + ldr r1, _0233E674 @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #2 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_0233E650: .4byte 0x02353900 +_0233E654: .4byte 0x02077DA4 +_0233E658: .4byte 0x02353914 +_0233E65C: .4byte 0x02078310 +_0233E660: .4byte 0x0235392C +_0233E664: .4byte FUN_02077CF8 +_0233E668: .4byte 0x02353944 +_0233E66C: .4byte FUN_020780D0 +_0233E670: .4byte 0x04001008 +_0233E674: .4byte 0x0400000A + arm_func_end ov02_0233E5BC + + arm_func_start ov02_0233E678 +ov02_0233E678: @ 0x0233E678 + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #2 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #1 + mov r1, r0 + bl ov02_0234E3D0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _0233E6C8 @ =ov02_0233E6CC + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233E6C8: .4byte ov02_0233E6CC + arm_func_end ov02_0233E678 + + arm_func_start ov02_0233E6CC +ov02_0233E6CC: @ 0x0233E6CC + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_023354D8 + mov r0, #0x14 + bl ov02_023480E0 + ldr r0, _0233E740 @ =0x0235AAE0 + ldr r0, [r0] + ldrb r0, [r0, #0x29] + cmp r0, #0 + bne _0233E718 + mov r0, #0 + bl ov02_02335884 +_0233E718: + ldr r0, _0233E740 @ =0x0235AAE0 + ldr r0, [r0] + ldrb r0, [r0, #0x29] + cmp r0, #0x20 + bne _0233E734 + mov r0, #0 + bl ov02_02335898 +_0233E734: + ldr r0, _0233E744 @ =0x0233E748 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233E740: .4byte 0x0235AAE0 +_0233E744: .4byte 0x0233E748 + arm_func_end ov02_0233E6CC +_0233E748: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x47, 0xDC, 0xFF, 0xEB + .byte 0xFF, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x08, 0x04, 0x00, 0x9F, 0xE5, 0x81, 0xE9, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0x68, 0xE7, 0x33, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x01, 0x00, 0x00, 0xEB + .byte 0x70, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0233E778 +ov02_0233E778: @ 0x0233E778 + push {r4, lr} + bl ov02_02335870 + mov r4, r0 + cmp r4, #0x83 + bgt _0233E7B8 + cmp r4, #0x80 + blt _0233E7AC + beq _0233E7C4 + cmp r4, #0x82 + beq _0233E828 + cmp r4, #0x83 + beq _0233E84C + b _0233E8B8 +_0233E7AC: + cmp r4, #0 + beq _0233E91C + b _0233E8B8 +_0233E7B8: + ldr r0, _0233E928 @ =0x0000E01D + cmp r4, r0 + b _0233E8B8 +_0233E7C4: + ldr r0, _0233E92C @ =0x0235AAE0 + ldr r0, [r0] + ldrb r0, [r0, #0x29] + cmp r0, #0 + beq _0233E91C + mov r0, #3 + bl ov02_023480E0 + ldr r1, _0233E92C @ =0x0235AAE0 + mov r0, #0 + ldr r3, [r1] + ldrb r2, [r3, #0x29] + sub r2, r2, #1 + strb r2, [r3, #0x29] + ldr r3, [r1] + ldrb r2, [r3, #0x29] + add r2, r3, r2 + strb r0, [r2, #8] + ldr r1, [r1] + ldrb r1, [r1, #0x29] + cmp r1, #0 + bne _0233E81C + bl ov02_02335884 +_0233E81C: + mov r0, #1 + bl ov02_02335898 + b _0233E91C +_0233E828: + mov r0, #7 + bl ov02_023480E0 + ldr r1, _0233E92C @ =0x0235AAE0 + ldr r0, _0233E930 @ =ov02_0233E93C + ldr r1, [r1] + mov r2, #0 + strb r2, [r1, #0x2a] + bl ov02_02338D68 + pop {r4, pc} +_0233E84C: + bl ov02_0233EDCC + cmp r0, #0 + beq _0233E874 + mov r0, #6 + bl ov02_023480E0 + ldr r0, _0233E92C @ =0x0235AAE0 + mov r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x2a] + b _0233E88C +_0233E874: + ldr r0, _0233E92C @ =0x0235AAE0 + mov r2, #2 + ldr r1, [r0] + mov r0, #9 + strb r2, [r1, #0x2a] + bl ov02_023480E0 +_0233E88C: + ldr r0, _0233E92C @ =0x0235AAE0 + ldr r1, _0233E934 @ =0xC1FFFCFF + ldr r2, [r0] + ldr r0, _0233E930 @ =ov02_0233E93C + ldr r3, [r2, #4] + ldr r2, [r3] + and r1, r2, r1 + orr r1, r1, #0x200 + str r1, [r3] + bl ov02_02338D68 + pop {r4, pc} +_0233E8B8: + ldr r0, _0233E92C @ =0x0235AAE0 + ldr r0, [r0] + ldrb r0, [r0, #0x29] + cmp r0, #0x20 + beq _0233E91C + mov r0, #1 + bl ov02_023480E0 + ldr r1, _0233E92C @ =0x0235AAE0 + mov r0, #1 + ldr r3, [r1] + ldrb r2, [r3, #0x29] + add r2, r3, r2 + strb r4, [r2, #8] + ldr r2, [r1] + ldrb r1, [r2, #0x29] + add r1, r1, #1 + strb r1, [r2, #0x29] + bl ov02_02335884 + ldr r0, _0233E92C @ =0x0235AAE0 + ldr r0, [r0] + ldrb r0, [r0, #0x29] + cmp r0, #0x20 + bne _0233E91C + mov r0, #0 + bl ov02_02335898 +_0233E91C: + bl ov02_0233EB64 + bl ov02_0233EC58 + pop {r4, pc} + .align 2, 0 +_0233E928: .4byte 0x0000E01D +_0233E92C: .4byte 0x0235AAE0 +_0233E930: .4byte ov02_0233E93C +_0233E934: .4byte 0xC1FFFCFF + arm_func_end ov02_0233E778 + + arm_func_start ov02_0233E938 +ov02_0233E938: @ 0x0233E938 + bx lr + arm_func_end ov02_0233E938 + + arm_func_start ov02_0233E93C +ov02_0233E93C: @ 0x0233E93C + push {r3, lr} + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _0233E954 @ =ov02_0233E958 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233E954: .4byte ov02_0233E958 + arm_func_end ov02_0233E93C + + arm_func_start ov02_0233E958 +ov02_0233E958: @ 0x0233E958 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_0233583C + mov r0, #0x15 + bl ov02_023480E0 + ldr r0, _0233E984 @ =ov02_0233E988 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233E984: .4byte ov02_0233E988 + arm_func_end ov02_0233E958 + + arm_func_start ov02_0233E988 +ov02_0233E988: @ 0x0233E988 + push {r3, lr} + sub sp, sp, #0x10 + ldr r0, _0233EA4C @ =0x02352A30 + ldr r1, [r0, #8] + ldr r0, [r0, #0xc] + str r1, [sp, #8] + str r0, [sp, #0xc] + bl ov02_023358AC + cmp r0, #0 + addne sp, sp, #0x10 + popne {r3, pc} + ldr r0, _0233EA50 @ =0x0235AAE0 + ldr r0, [r0] + ldrb r0, [r0, #0x2a] + cmp r0, #0 + bne _0233E9D8 + ldr r0, _0233EA54 @ =ov02_0233EA60 + bl ov02_02338D68 + add sp, sp, #0x10 + pop {r3, pc} +_0233E9D8: + cmp r0, #2 + bne _0233EA0C + mov r2, #1 + mov ip, #0 + sub r3, r2, #2 + mov r0, #6 + mov r1, #3 + str ip, [sp] + bl ov02_02349394 + ldr r0, _0233EA58 @ =ov02_0233EF58 + bl ov02_02338D68 + add sp, sp, #0x10 + pop {r3, pc} +_0233EA0C: + add r1, sp, #4 + mov r0, #0 + bl ov02_02338DC8 + mov r0, #0 + str r0, [sp] + mov r2, #1 + ldr r1, [sp, #4] + add r0, sp, #8 + ldr r0, [r0, r1, lsl #2] + sub r3, r2, #2 + mov r1, #2 + bl ov02_02349394 + ldr r0, _0233EA5C @ =ov02_0233ECC0 + bl ov02_02338D68 + add sp, sp, #0x10 + pop {r3, pc} + .align 2, 0 +_0233EA4C: .4byte 0x02352A30 +_0233EA50: .4byte 0x0235AAE0 +_0233EA54: .4byte ov02_0233EA60 +_0233EA58: .4byte ov02_0233EF58 +_0233EA5C: .4byte ov02_0233ECC0 + arm_func_end ov02_0233E988 + + arm_func_start ov02_0233EA60 +ov02_0233EA60: @ 0x0233EA60 + push {r3, lr} + sub sp, sp, #8 + bl ov02_02334D10 + ldr r0, _0233EB48 @ =0x0235AAE0 + ldr r0, [r0] + ldr r0, [r0, #4] + bl ov02_0234F2C0 + mov r0, #0 + bl ov02_0234E02C + ldr r0, _0233EB4C @ =0x02353958 + ldr r1, _0233EB50 @ =0x02077DA4 + bl ov02_02334DA8 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + add r0, sp, #4 + add r1, sp, #0 + bl ov02_02338DC8 + ldr r0, [sp] + cmp r0, #0 + bne _0233EAE4 + mov r0, #2 + mov r1, #1 + bl ov02_02338D78 + ldr r1, [sp, #4] + mov r0, #0 + bl ov02_02338DB4 + ldr r0, _0233EB54 @ =ov02_023402CC + bl ov02_02338D68 + b _0233EB38 +_0233EAE4: + ldr r0, _0233EB48 @ =0x0235AAE0 + ldr r0, [r0] + ldrb r0, [r0, #0x2a] + cmp r0, #0 + mov r0, #0 + bne _0233EB1C + mov r1, #1 + bl ov02_02338D78 + mov r0, #1 + mov r1, #0 + bl ov02_02338DB4 + ldr r0, _0233EB58 @ =ov02_0233CEEC + bl ov02_02338D68 + b _0233EB38 +_0233EB1C: + mov r1, r0 + bl ov02_02338D78 + mov r0, #0 + mov r1, #1 + bl ov02_02338DB4 + ldr r0, _0233EB5C @ =ov02_02345968 + bl ov02_02338D68 +_0233EB38: + ldr r0, _0233EB60 @ =0x0235AAE0 + bl ov02_0234E7D8 + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_0233EB48: .4byte 0x0235AAE0 +_0233EB4C: .4byte 0x02353958 +_0233EB50: .4byte 0x02077DA4 +_0233EB54: .4byte ov02_023402CC +_0233EB58: .4byte ov02_0233CEEC +_0233EB5C: .4byte ov02_02345968 +_0233EB60: .4byte 0x0235AAE0 + arm_func_end ov02_0233EA60 + + arm_func_start ov02_0233EB64 +ov02_0233EB64: @ 0x0233EB64 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x1c + ldr r0, _0233EC4C @ =0x0235AAE0 + add r5, sp, #0x14 + mov r1, #0 + strh r1, [r5, #2] + mov r4, #0x20 + strh r1, [r5, #4] + mov r3, #0xe + strh r1, [r5, #6] + mov r2, #0x10 + ldr r0, [r0] + strh r1, [r5] + strh r4, [sp, #0x16] + strh r3, [sp, #0x18] + strh r2, [sp, #0x1a] + ldr r0, [r0] + bl ov02_0234E2A8 + mov sl, #0 + ldr r7, _0233EC50 @ =0x0000E01D + ldr r6, _0233EC54 @ =0x02352A4C + mov sb, sl + strh sl, [sp, #0x12] + mov r8, #0x31 + mov r5, #2 + mov r4, #0x480 + add fp, sp, #0x10 +_0233EBD0: + ldr r0, _0233EC4C @ =0x0235AAE0 + cmp sl, #0x10 + ldr r0, [r0] + moveq sb, #0 + strheq r8, [sp, #0x16] + add r1, r0, sl + ldrb r1, [r1, #8] + ldrb r2, [r6, sb] + cmp r1, #0x20 + strheq r7, [sp, #0x10] + strhne r1, [sp, #0x10] + ldrh r1, [sp, #0x1a] + strh r2, [sp, #0x14] + stm sp, {r1, r5} + str r4, [sp, #8] + str fp, [sp, #0xc] + ldrh r1, [sp, #0x14] + ldrh r2, [sp, #0x16] + ldrh r3, [sp, #0x18] + ldr r0, [r0] + bl ov02_0234E1E8 + add sl, sl, #1 + cmp sl, #0x20 + add sb, sb, #1 + blt _0233EBD0 + ldr r0, _0233EC4C @ =0x0235AAE0 + ldr r0, [r0] + ldr r0, [r0] + bl ov02_0234E354 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0233EC4C: .4byte 0x0235AAE0 +_0233EC50: .4byte 0x0000E01D +_0233EC54: .4byte 0x02352A4C + arm_func_end ov02_0233EB64 + + arm_func_start ov02_0233EC58 +ov02_0233EC58: @ 0x0233EC58 + push {r3, lr} + ldr r0, _0233ECB0 @ =0x0235AAE0 + ldr r1, [r0] + ldrb r0, [r1, #0x29] + ldr ip, [r1, #4] + ldr r1, _0233ECB4 @ =0x02352A48 + cmp r0, #0x20 + and r2, r0, #0xf + asr lr, r0, #4 + movhs lr, #1 + ldr r0, _0233ECB8 @ =0x02352A4C + movhs r2, #0xf + ldrb r3, [r0, r2] + ldr r2, [ip] + ldr r0, _0233ECBC @ =0xFE00FF00 + ldrb r1, [r1, lr] + and r0, r2, r0 + lsl r2, r3, #0x17 + orr r0, r0, r1 + orr r0, r0, r2, lsr #7 + str r0, [ip] + pop {r3, pc} + .align 2, 0 +_0233ECB0: .4byte 0x0235AAE0 +_0233ECB4: .4byte 0x02352A48 +_0233ECB8: .4byte 0x02352A4C +_0233ECBC: .4byte 0xFE00FF00 + arm_func_end ov02_0233EC58 + + arm_func_start ov02_0233ECC0 +ov02_0233ECC0: @ 0x0233ECC0 + push {r3, lr} + bl ov02_02349704 + ldr r1, _0233ED14 @ =0x0235AAE0 + ldr r2, [r1] + strb r0, [r2, #0x2a] + ldr r0, [r1] + ldrb r0, [r0, #0x2a] + cmp r0, #0 + beq _0233ECF0 + cmp r0, #1 + beq _0233ECFC + pop {r3, pc} +_0233ECF0: + mov r0, #7 + bl ov02_023480E0 + b _0233ED04 +_0233ECFC: + mov r0, #0xe + bl ov02_023480E0 +_0233ED04: + bl ov02_023496C0 + ldr r0, _0233ED18 @ =ov02_0233ED1C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233ED14: .4byte 0x0235AAE0 +_0233ED18: .4byte ov02_0233ED1C + arm_func_end ov02_0233ECC0 + + arm_func_start ov02_0233ED1C +ov02_0233ED1C: @ 0x0233ED1C + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr r0, _0233EDB8 @ =0x02352A30 + ldr r1, [r0, #0x10] + ldr r0, [r0, #0x14] + str r1, [sp, #4] + str r0, [sp, #8] + bl ov02_02349718 + cmp r0, #0 + addne sp, sp, #0xc + ldmne sp!, {pc} + ldr r0, _0233EDBC @ =0x0235AAE0 + ldr r1, [r0] + ldrb r0, [r1, #0x2a] + cmp r0, #0 + bne _0233ED80 + ldr r3, [r1, #4] + ldr r1, _0233EDC0 @ =0xC1FFFCFF + ldr r2, [r3] + ldr r0, _0233EDC4 @ =ov02_0233E6CC + and r1, r2, r1 + str r1, [r3] + bl ov02_02338D68 + add sp, sp, #0xc + ldm sp!, {pc} +_0233ED80: + add r0, sp, #0 + mov r1, #0 + bl ov02_02338DC8 + ldr r0, _0233EDBC @ =0x0235AAE0 + ldr r2, [sp] + add r1, sp, #4 + ldr r0, [r0] + ldr r1, [r1, r2, lsl #2] + add r0, r0, #8 + blx r1 + ldr r0, _0233EDC8 @ =ov02_0233EA60 + bl ov02_02338D68 + add sp, sp, #0xc + ldm sp!, {pc} + .align 2, 0 +_0233EDB8: .4byte 0x02352A30 +_0233EDBC: .4byte 0x0235AAE0 +_0233EDC0: .4byte 0xC1FFFCFF +_0233EDC4: .4byte ov02_0233E6CC +_0233EDC8: .4byte ov02_0233EA60 + arm_func_end ov02_0233ED1C + + arm_func_start ov02_0233EDCC +ov02_0233EDCC: @ 0x0233EDCC + push {r3, lr} + sub sp, sp, #8 + add r0, sp, #4 + add r1, sp, #0 + bl ov02_02338DC8 + ldr r0, [sp] + cmp r0, #1 + bne _0233EDFC + mov r0, #0x35 + sub r1, r0, #0x36 + mov r2, #0 + bl ov02_02334C3C +_0233EDFC: + add r0, sp, #4 + add r1, sp, #0 + bl ov02_02338DC8 + ldr r0, [sp, #4] + cmp r0, #0 + bne _0233EE34 + ldr r0, _0233EF54 @ =0x0235AAE0 + add sp, sp, #8 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, pc} +_0233EE34: + ldr r0, [sp] + cmp r0, #1 + bne _0233EE5C + ldr r0, _0233EF54 @ =0x0235AAE0 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + addeq sp, sp, #8 + moveq r0, #0 + popeq {r3, pc} +_0233EE5C: + ldr r0, _0233EF54 @ =0x0235AAE0 + mov r1, #0x20 + ldr r0, [r0] + add r0, r0, #8 + bl ov02_0234F59C + cmp r0, #0x10 + bgt _0233EEB0 + cmp r0, #0xa + blt _0233EE94 + beq _0233EED8 + cmp r0, #0xd + cmpne r0, #0x10 + beq _0233EECC + b _0233EF48 +_0233EE94: + cmp r0, #0 + bgt _0233EEA4 + beq _0233EECC + b _0233EF48 +_0233EEA4: + cmp r0, #5 + beq _0233EECC + b _0233EF48 +_0233EEB0: + cmp r0, #0x1a + bgt _0233EEC0 + beq _0233EED8 + b _0233EF48 +_0233EEC0: + cmp r0, #0x20 + beq _0233EED8 + b _0233EF48 +_0233EECC: + add sp, sp, #8 + mov r0, #1 + pop {r3, pc} +_0233EED8: + cmp r0, #0 + mov r2, #0 + ble _0233EF3C + ldr r1, _0233EF54 @ =0x0235AAE0 + ldr r3, [r1] +_0233EEEC: + ldrb r1, [r3, #8] + cmp r1, #0x30 + blo _0233EF00 + cmp r1, #0x39 + bls _0233EF2C +_0233EF00: + cmp r1, #0x41 + blo _0233EF10 + cmp r1, #0x46 + bls _0233EF2C +_0233EF10: + cmp r1, #0x61 + blo _0233EF20 + cmp r1, #0x66 + bls _0233EF2C +_0233EF20: + add sp, sp, #8 + mov r0, #0 + pop {r3, pc} +_0233EF2C: + add r2, r2, #1 + cmp r2, r0 + add r3, r3, #1 + blt _0233EEEC +_0233EF3C: + add sp, sp, #8 + mov r0, #1 + pop {r3, pc} +_0233EF48: + mov r0, #0 + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_0233EF54: .4byte 0x0235AAE0 + arm_func_end ov02_0233EDCC + + arm_func_start ov02_0233EF58 +ov02_0233EF58: @ 0x0233EF58 + push {r3, lr} + bl ov02_02349704 + cmp r0, #0 + popne {r3, pc} + mov r0, #6 + bl ov02_023480E0 + bl ov02_023496C0 + ldr r0, _0233EF80 @ =ov02_0233EF84 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233EF80: .4byte ov02_0233EF84 + arm_func_end ov02_0233EF58 + + arm_func_start ov02_0233EF84 +ov02_0233EF84: @ 0x0233EF84 + push {r3, lr} + bl ov02_02349718 + cmp r0, #0 + popne {r3, pc} + ldr r0, _0233EFBC @ =0x0235AAE0 + ldr r1, _0233EFC0 @ =0xC1FFFCFF + ldr r2, [r0] + ldr r0, _0233EFC4 @ =ov02_0233E6CC + ldr r3, [r2, #4] + ldr r2, [r3] + and r1, r2, r1 + str r1, [r3] + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233EFBC: .4byte 0x0235AAE0 +_0233EFC0: .4byte 0xC1FFFCFF +_0233EFC4: .4byte ov02_0233E6CC + arm_func_end ov02_0233EF84 + + arm_func_start ov02_0233EFC8 +ov02_0233EFC8: @ 0x0233EFC8 + push {r3, r4, r5, lr} + sub sp, sp, #0x20 + ldr r4, _0233F128 @ =0x02352A74 + ldr ip, _0233F12C @ =0x02352A5C + ldm r4!, {r0, r1, r2, r3} + add r5, sp, #0xc + stm r5!, {r0, r1, r2, r3} + ldr r4, [r4] + ldrb lr, [ip, #0xa] + str r4, [r5] + ldrb r5, [ip, #8] + ldrb r4, [ip, #9] + ldrb r3, [ip, #0xb] + ldrb r2, [ip, #0xc] + mov r0, #0x18 + mov r1, #4 + strb r5, [sp, #4] + strb r4, [sp, #5] + strb lr, [sp, #6] + strb r3, [sp, #7] + strb r2, [sp, #8] + bl ov02_0234E7B4 + ldr r2, _0233F130 @ =0x0235AAE4 + mov r1, #0 + str r0, [r2] + add r0, sp, #0 + bl ov02_02338DC8 + ldr r0, _0233F130 @ =0x0235AAE4 + ldr r2, [sp] + add r1, sp, #0xc + ldr r0, [r0] + ldr r1, [r1, r2, lsl #2] + add r0, r0, #8 + blx r1 + ldr r0, _0233F130 @ =0x0235AAE4 + ldr r1, _0233F134 @ =0x02353970 + ldr r4, [r0] + mov r2, #3 + add r0, r4, #8 + bl FUN_02087348 + cmp r0, #0 + movne r0, #3 + strbne r0, [r4, #0x14] + bne _0233F098 + add r0, r4, #8 + mov r1, #0 + mov r2, #0xc + bl FUN_0207C40C + ldr r0, _0233F130 @ =0x0235AAE4 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x14] +_0233F098: + bl ov02_0233F13C + ldr r0, [sp] + add r0, r0, #0xb + bl ov02_02335268 + ldr r2, [sp] + add r0, sp, #4 + ldrb r0, [r0, r2] + mvn r1, #0 + mov r2, #0 + bl ov02_02334C3C + mov r0, #2 + bl ov02_02334DE8 + mov r0, #0 + mov r1, r0 + bl ov02_0234DDC8 + ldr r2, _0233F130 @ =0x0235AAE4 + mov r1, #0x3f + ldr r2, [r2] + str r0, [r2] + mov r0, #0 + bl ov02_0234D6AC + ldr r1, _0233F130 @ =0x0235AAE4 + ldr r2, [r1] + str r0, [r2, #4] + ldr r0, [r1] + ldr r1, [r0, #4] + ldrh r0, [r1, #4] + bic r0, r0, #0xc00 + orr r0, r0, #0xc00 + strh r0, [r1, #4] + bl ov02_0233F8F0 + bl ov02_0233F82C + ldr r0, _0233F138 @ =ov02_0233F1F8 + bl ov02_02338D68 + add sp, sp, #0x20 + pop {r3, r4, r5, pc} + .align 2, 0 +_0233F128: .4byte 0x02352A74 +_0233F12C: .4byte 0x02352A5C +_0233F130: .4byte 0x0235AAE4 +_0233F134: .4byte 0x02353970 +_0233F138: .4byte ov02_0233F1F8 + arm_func_end ov02_0233EFC8 + + arm_func_start ov02_0233F13C +ov02_0233F13C: @ 0x0233F13C + push {r3, lr} + ldr r0, _0233F1D0 @ =0x02353974 + ldr r1, _0233F1D4 @ =0x02077DA4 + bl ov02_02334DA8 + ldr r0, _0233F1D8 @ =0x02353988 + ldr r1, _0233F1DC @ =0x02078310 + bl ov02_02334DA8 + ldr r0, _0233F1E0 @ =0x023539A0 + ldr r1, _0233F1E4 @ =FUN_02077CF8 + bl ov02_02334DA8 + ldr r0, _0233F1E8 @ =0x023539B8 + ldr r1, _0233F1EC @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _0233F1F0 @ =0x04001008 + ldr r1, _0233F1F4 @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #2 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_0233F1D0: .4byte 0x02353974 +_0233F1D4: .4byte 0x02077DA4 +_0233F1D8: .4byte 0x02353988 +_0233F1DC: .4byte 0x02078310 +_0233F1E0: .4byte 0x023539A0 +_0233F1E4: .4byte FUN_02077CF8 +_0233F1E8: .4byte 0x023539B8 +_0233F1EC: .4byte FUN_020780D0 +_0233F1F0: .4byte 0x04001008 +_0233F1F4: .4byte 0x0400000A + arm_func_end ov02_0233F13C + + arm_func_start ov02_0233F1F8 +ov02_0233F1F8: @ 0x0233F1F8 + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #2 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #1 + mov r1, r0 + bl ov02_0234E3D0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _0233F248 @ =ov02_0233F24C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233F248: .4byte ov02_0233F24C + arm_func_end ov02_0233F1F8 + + arm_func_start ov02_0233F24C +ov02_0233F24C: @ 0x0233F24C + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_02337184 + mov r0, #0x14 + bl ov02_023480E0 + ldr r0, _0233F2D0 @ =0x0235AAE4 + ldr r0, [r0] + ldrb r0, [r0, #0x14] + cmp r0, #0 + bne _0233F2A4 + mov r0, #0 + bl ov02_02337508 + mov r0, #0 + bl ov02_02337530 + b _0233F2C4 +_0233F2A4: + mov r0, #0x1a + bl ov02_0233F618 + cmp r0, #0 + beq _0233F2BC + mov r0, #0 + bl ov02_0233751C +_0233F2BC: + mov r0, #0 + bl ov02_02337530 +_0233F2C4: + ldr r0, _0233F2D4 @ =0x0233F2D8 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233F2D0: .4byte 0x0235AAE4 +_0233F2D4: .4byte 0x0233F2D8 + arm_func_end ov02_0233F24C +_0233F2D8: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x84, 0xE0, 0xFF, 0xEB + .byte 0x1F, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x08, 0x04, 0x00, 0x9F, 0xE5, 0x9D, 0xE6, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0xF8, 0xF2, 0x33, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x01, 0x00, 0x00, 0xEB + .byte 0xE9, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0233F308 +ov02_0233F308: @ 0x0233F308 + push {r3, r4, r5, lr} + bl ov02_023374F4 + mov r4, r0 + cmp r4, #0 + bgt _0233F324 + popeq {r3, r4, r5, pc} + b _0233F4E8 +_0233F324: + sub r0, r4, #0x10 + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _0233F4E8 +_0233F334: @ jump table + b _0233F348 @ case 0 + b _0233F3F0 @ case 1 + b _0233F444 @ case 2 + b _0233F468 @ case 3 + pop {r3, r4, r5, pc} @ case 4 +_0233F348: + ldr r0, _0233F60C @ =0x0235AAE4 + ldr r1, [r0] + ldrb r0, [r1, #0x14] + cmp r0, #0 + ldrbeq r0, [r1, #0xa] + cmpeq r0, #0 + beq _0233F600 + mov r0, #3 + bl ov02_023480E0 + ldr r0, _0233F60C @ =0x0235AAE4 + ldr r2, [r0] + ldrb r1, [r2, #0x14] + add r0, r1, r1, lsl #1 + add r0, r0, #2 + add r0, r2, r0 + ldrb r0, [r0, #8] + cmp r0, #0 + subeq r0, r1, #1 + strbeq r0, [r2, #0x14] + ldr r0, _0233F60C @ =0x0235AAE4 + mov r1, #0 + ldr r3, [r0] + mov r2, #3 + ldrb r0, [r3, #0x14] + add r3, r3, #8 + add r0, r0, r0, lsl #1 + add r0, r3, r0 + bl FUN_0207C40C + ldr r0, _0233F60C @ =0x0235AAE4 + ldr r1, [r0] + ldrb r0, [r1, #0x14] + cmp r0, #0 + ldrbeq r0, [r1, #0xa] + cmpeq r0, #0 + bne _0233F3DC + mov r0, #0 + bl ov02_02337508 +_0233F3DC: + mov r0, #1 + bl ov02_0233751C + mov r0, #0 + bl ov02_02337530 + b _0233F600 +_0233F3F0: + ldr r0, _0233F60C @ =0x0235AAE4 + ldr r1, [r0] + ldrb r0, [r1, #0x14] + cmp r0, #3 + bhs _0233F600 + add r0, r0, r0, lsl #1 + add r0, r0, #2 + add r0, r1, r0 + ldrb r0, [r0, #8] + cmp r0, #0 + beq _0233F600 + mov r0, #1 + bl ov02_023480E0 + ldr r1, _0233F60C @ =0x0235AAE4 + mov r0, #0 + ldr r2, [r1] + ldrb r1, [r2, #0x14] + add r1, r1, #1 + strb r1, [r2, #0x14] + bl ov02_02337530 + b _0233F600 +_0233F444: + ldr r0, _0233F60C @ =0x0235AAE4 + mov r2, #0 + ldr r1, [r0] + mov r0, #7 + strb r2, [r1, #0x15] + bl ov02_023480E0 + ldr r0, _0233F610 @ =ov02_0233F6B0 + bl ov02_02338D68 + pop {r3, r4, r5, pc} +_0233F468: + bl ov02_0233FACC + cmp r0, #0 + beq _0233F490 + mov r0, #6 + bl ov02_023480E0 + ldr r0, _0233F60C @ =0x0235AAE4 + mov r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x15] + b _0233F4A8 +_0233F490: + ldr r0, _0233F60C @ =0x0235AAE4 + mov r2, #2 + ldr r1, [r0] + mov r0, #9 + strb r2, [r1, #0x15] + bl ov02_023480E0 +_0233F4A8: + ldr r1, _0233F60C @ =0x0235AAE4 + mov r3, #3 + ldr r2, [r1] + ldr r0, _0233F614 @ =0xC1FFFCFF + strb r3, [r2, #0x14] + ldr r1, [r1] + ldr r2, [r1, #4] + ldr r1, [r2] + and r0, r1, r0 + orr r0, r0, #0x200 + str r0, [r2] + bl ov02_0233F8F0 + bl ov02_0233FA54 + ldr r0, _0233F610 @ =ov02_0233F6B0 + bl ov02_02338D68 + pop {r3, r4, r5, pc} +_0233F4E8: + ldr r0, _0233F60C @ =0x0235AAE4 + ldr r0, [r0] + ldrb r0, [r0, #0x14] + cmp r0, #3 + bne _0233F50C + mov r0, #0x1a + bl ov02_0233F618 + cmp r0, #0 + bne _0233F600 +_0233F50C: + mov r0, #1 + bl ov02_023480E0 + ldr r0, _0233F60C @ =0x0235AAE4 + ldr r2, [r0] + ldrb r1, [r2, #0x14] + add r5, r2, #8 + add lr, r1, r1, lsl #1 + add ip, lr, #2 + ldrb r3, [r5, ip] + cmp r3, #0 + strbeq r4, [r5, ip] + beq _0233F5A4 + add r2, lr, #1 + ldrb r1, [r5, r2] + cmp r1, #0 + bne _0233F580 + strb r3, [r5, r2] + mov r0, #0x1a + strb r4, [r5, ip] + bl ov02_0233F618 + cmp r0, #0 + beq _0233F5A4 + ldr r0, _0233F60C @ =0x0235AAE4 + ldr r1, [r0] + ldrb r0, [r1, #0x14] + cmp r0, #3 + addlo r0, r0, #1 + strblo r0, [r1, #0x14] + b _0233F5A4 +_0233F580: + strb r1, [r5, lr] + ldrb r1, [r5, ip] + strb r1, [r5, r2] + strb r4, [r5, ip] + ldr r1, [r0] + ldrb r0, [r1, #0x14] + cmp r0, #3 + addlo r0, r0, #1 + strblo r0, [r1, #0x14] +_0233F5A4: + mov r0, #1 + bl ov02_02337508 + ldr r0, _0233F60C @ =0x0235AAE4 + ldr r0, [r0] + ldrb r0, [r0, #0x14] + cmp r0, #3 + bhs _0233F5CC + mov r0, #1 + bl ov02_02337530 + b _0233F5D4 +_0233F5CC: + mov r0, #0 + bl ov02_02337530 +_0233F5D4: + ldr r0, _0233F60C @ =0x0235AAE4 + ldr r0, [r0] + ldrb r0, [r0, #0x14] + cmp r0, #3 + bne _0233F600 + mov r0, #0x1a + bl ov02_0233F618 + cmp r0, #0 + beq _0233F600 + mov r0, #0 + bl ov02_0233751C +_0233F600: + bl ov02_0233F82C + bl ov02_0233F8F0 + pop {r3, r4, r5, pc} + .align 2, 0 +_0233F60C: .4byte 0x0235AAE4 +_0233F610: .4byte ov02_0233F6B0 +_0233F614: .4byte 0xC1FFFCFF + arm_func_end ov02_0233F308 + + arm_func_start ov02_0233F618 +ov02_0233F618: @ 0x0233F618 + push {r3, r4, lr} + sub sp, sp, #4 + ldr r1, _0233F6A8 @ =0x0235AAE4 + mov r4, r0 + ldr r1, [r1] + ldrb r0, [r1, #0x14] + add r3, r1, #8 + add r2, r0, r0, lsl #1 + ldrb r0, [r3, r2] + cmp r0, #0 + cmpne r0, #0x20 + addne sp, sp, #4 + movne r0, #1 + popne {r3, r4, pc} + add r0, r3, r2 + add r1, sp, #0 + mov r2, #3 + bl FUN_0207C4C8 + mov r2, #0 + add r3, sp, #0 + strb r2, [sp, #3] + mov r0, #0x20 +_0233F670: + ldrb r1, [r3] + cmp r1, #0 + bne _0233F68C + add r2, r2, #1 + cmp r2, #3 + strb r0, [r3], #1 + blt _0233F670 +_0233F68C: + add r0, sp, #0 + bl FUN_0208B360 + cmp r0, r4 + movge r0, #1 + movlt r0, #0 + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0233F6A8: .4byte 0x0235AAE4 + arm_func_end ov02_0233F618 + + arm_func_start ov02_0233F6AC +ov02_0233F6AC: @ 0x0233F6AC + bx lr + arm_func_end ov02_0233F6AC + + arm_func_start ov02_0233F6B0 +ov02_0233F6B0: @ 0x0233F6B0 + push {r3, lr} + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _0233F6C8 @ =ov02_0233F6CC + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233F6C8: .4byte ov02_0233F6CC + arm_func_end ov02_0233F6B0 + + arm_func_start ov02_0233F6CC +ov02_0233F6CC: @ 0x0233F6CC + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_023374C0 + mov r0, #0x15 + bl ov02_023480E0 + ldr r0, _0233F6F8 @ =ov02_0233F6FC + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233F6F8: .4byte ov02_0233F6FC + arm_func_end ov02_0233F6CC + + arm_func_start ov02_0233F6FC +ov02_0233F6FC: @ 0x0233F6FC + push {r3, lr} + bl ov02_02337544 + cmp r0, #0 + popne {r3, pc} + ldr r0, _0233F778 @ =0x0235AAE4 + ldr r0, [r0] + ldrb r0, [r0, #0x15] + cmp r0, #0 + bne _0233F72C + ldr r0, _0233F77C @ =ov02_0233F788 + bl ov02_02338D68 + pop {r3, pc} +_0233F72C: + mov r2, #1 + cmp r0, #2 + mov ip, #0 + sub r3, r2, #2 + bne _0233F75C + mov r0, #6 + mov r1, #3 + str ip, [sp] + bl ov02_02349394 + ldr r0, _0233F780 @ =ov02_0233FC20 + bl ov02_02338D68 + pop {r3, pc} +_0233F75C: + mov r0, #0x47 + mov r1, #2 + str ip, [sp] + bl ov02_02349394 + ldr r0, _0233F784 @ =ov02_0233F944 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233F778: .4byte 0x0235AAE4 +_0233F77C: .4byte ov02_0233F788 +_0233F780: .4byte ov02_0233FC20 +_0233F784: .4byte ov02_0233F944 + arm_func_end ov02_0233F6FC + + arm_func_start ov02_0233F788 +ov02_0233F788: @ 0x0233F788 + push {r3, lr} + bl ov02_02334D10 + ldr r0, _0233F818 @ =0x0235AAE4 + ldr r0, [r0] + ldr r0, [r0, #4] + bl ov02_0234F2C0 + mov r0, #0 + bl ov02_0234E02C + ldr r0, _0233F81C @ =0x023539D0 + ldr r1, _0233F820 @ =0x02077DA4 + bl ov02_02334DA8 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + add r0, sp, #0 + mov r1, #0 + bl ov02_02338DC8 + ldr r0, [sp] + mov r1, #1 + cmp r0, #3 + addge r0, r0, #1 + strge r0, [sp] + mov r0, #2 + bl ov02_02338D78 + ldr r1, [sp] + mov r0, #0 + add r1, r1, #3 + bl ov02_02338DB4 + ldr r0, _0233F824 @ =ov02_023402CC + bl ov02_02338D68 + ldr r0, _0233F828 @ =0x0235AAE4 + bl ov02_0234E7D8 + pop {r3, pc} + .align 2, 0 +_0233F818: .4byte 0x0235AAE4 +_0233F81C: .4byte 0x023539D0 +_0233F820: .4byte 0x02077DA4 +_0233F824: .4byte ov02_023402CC +_0233F828: .4byte 0x0235AAE4 + arm_func_end ov02_0233F788 + + arm_func_start ov02_0233F82C +ov02_0233F82C: @ 0x0233F82C + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x1c + ldr r0, _0233F8E4 @ =0x0235AAE4 + ldr r1, _0233F8E8 @ =0x02352A5C + ldr r0, [r0] + ldrh r5, [r1, #0xe] + ldrh r4, [r1, #0x10] + mov r3, #0xb + mov r2, #0x10 + ldr r0, [r0] + mov r1, #0 + strh r5, [sp, #0x14] + strh r4, [sp, #0x16] + strh r3, [sp, #0x18] + strh r2, [sp, #0x1a] + bl ov02_0234E2A8 + mov r4, #0 + ldr r5, _0233F8EC @ =0x02352A9C + ldr r6, _0233F8E4 @ =0x0235AAE4 + strh r4, [sp, #0x12] + mov sb, #2 + mov r8, #0x480 + add r7, sp, #0x10 +_0233F888: + ldr ip, [r6] + ldrb r1, [r5], #1 + add r0, ip, r4 + ldrb r3, [r0, #8] + ldrh r0, [sp, #0x1a] + ldrh r2, [sp, #0x16] + strh r3, [sp, #0x10] + stm sp, {r0, sb} + str r8, [sp, #8] + str r7, [sp, #0xc] + ldrh r3, [sp, #0x18] + ldr r0, [ip] + strh r1, [sp, #0x14] + bl ov02_0234E1E8 + add r4, r4, #1 + cmp r4, #0xc + blt _0233F888 + ldr r0, _0233F8E4 @ =0x0235AAE4 + ldr r0, [r0] + ldr r0, [r0] + bl ov02_0234E354 + add sp, sp, #0x1c + pop {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0233F8E4: .4byte 0x0235AAE4 +_0233F8E8: .4byte 0x02352A5C +_0233F8EC: .4byte 0x02352A9C + arm_func_end ov02_0233F82C + + arm_func_start ov02_0233F8F0 +ov02_0233F8F0: @ 0x0233F8F0 + ldr r0, _0233F938 @ =0x0235AAE4 + ldr r2, [r0] + ldrb r0, [r2, #0x14] + ldr r3, [r2, #4] + cmp r0, #3 + movgt r0, #3 + add r1, r0, r0, lsl #1 + ldr r0, _0233F93C @ =0x02352A9C + add r1, r1, #2 + ldrb r2, [r0, r1] + ldr r1, [r3] + ldr r0, _0233F940 @ =0xFE00FF00 + lsl r2, r2, #0x17 + and r0, r1, r0 + orr r0, r0, #0x28 + orr r0, r0, r2, lsr #7 + str r0, [r3] + bx lr + .align 2, 0 +_0233F938: .4byte 0x0235AAE4 +_0233F93C: .4byte 0x02352A9C +_0233F940: .4byte 0xFE00FF00 + arm_func_end ov02_0233F8F0 + + arm_func_start ov02_0233F944 +ov02_0233F944: @ 0x0233F944 + push {r3, lr} + bl ov02_02349704 + ldr r1, _0233F998 @ =0x0235AAE4 + ldr r2, [r1] + strb r0, [r2, #0x15] + ldr r0, [r1] + ldrb r0, [r0, #0x15] + cmp r0, #0 + beq _0233F974 + cmp r0, #1 + beq _0233F980 + pop {r3, pc} +_0233F974: + mov r0, #7 + bl ov02_023480E0 + b _0233F988 +_0233F980: + mov r0, #0xe + bl ov02_023480E0 +_0233F988: + bl ov02_023496C0 + ldr r0, _0233F99C @ =ov02_0233F9A0 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233F998: .4byte 0x0235AAE4 +_0233F99C: .4byte ov02_0233F9A0 + arm_func_end ov02_0233F944 + + arm_func_start ov02_0233F9A0 +ov02_0233F9A0: @ 0x0233F9A0 + push {r3, lr} + sub sp, sp, #0x18 + ldr lr, _0233FA40 @ =0x02352A88 + add ip, sp, #4 + ldm lr!, {r0, r1, r2, r3} + stm ip!, {r0, r1, r2, r3} + ldr r0, [lr] + str r0, [ip] + bl ov02_02349718 + cmp r0, #0 + addne sp, sp, #0x18 + popne {r3, pc} + ldr r0, _0233FA44 @ =0x0235AAE4 + ldr r1, [r0] + ldrb r0, [r1, #0x15] + cmp r0, #0 + bne _0233FA08 + ldr r3, [r1, #4] + ldr r1, _0233FA48 @ =0xC1FFFCFF + ldr r2, [r3] + ldr r0, _0233FA4C @ =ov02_0233F24C + and r1, r2, r1 + str r1, [r3] + bl ov02_02338D68 + add sp, sp, #0x18 + pop {r3, pc} +_0233FA08: + add r0, sp, #0 + mov r1, #0 + bl ov02_02338DC8 + ldr r0, _0233FA44 @ =0x0235AAE4 + ldr r2, [sp] + add r1, sp, #4 + ldr r0, [r0] + ldr r1, [r1, r2, lsl #2] + add r0, r0, #8 + blx r1 + ldr r0, _0233FA50 @ =ov02_0233F788 + bl ov02_02338D68 + add sp, sp, #0x18 + pop {r3, pc} + .align 2, 0 +_0233FA40: .4byte 0x02352A88 +_0233FA44: .4byte 0x0235AAE4 +_0233FA48: .4byte 0xC1FFFCFF +_0233FA4C: .4byte ov02_0233F24C +_0233FA50: .4byte ov02_0233F788 + arm_func_end ov02_0233F9A0 + + arm_func_start ov02_0233FA54 +ov02_0233FA54: @ 0x0233FA54 + push {r4, r5, r6, lr} + mov r4, #0 + ldr r0, _0233FAC8 @ =0x0235AAE4 + mov r6, r4 + mov r1, #0x20 + mov r2, #0x30 + mov ip, r4 +_0233FA70: + ldr r3, [r0] + mov r5, ip + add r3, r3, #8 + add lr, r3, r6 +_0233FA80: + ldrb r3, [lr, r5] + cmp r3, #0x30 + cmpne r3, #0x20 + cmpne r3, #0 + bne _0233FAB0 + cmp r5, #2 + moveq r3, r2 + movne r3, r1 + strb r3, [lr, r5] + add r5, r5, #1 + cmp r5, #3 + blt _0233FA80 +_0233FAB0: + add r4, r4, #1 + cmp r4, #4 + add r6, r6, #3 + blt _0233FA70 + bl ov02_0233F82C + pop {r4, r5, r6, pc} + .align 2, 0 +_0233FAC8: .4byte 0x0235AAE4 + arm_func_end ov02_0233FA54 + + arm_func_start ov02_0233FACC +ov02_0233FACC: @ 0x0233FACC + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0xc + ldr r2, _0233FC18 @ =0x02352A5C + mov r0, #0 + ldrb ip, [r2] + ldrb r3, [r2, #1] + ldr r1, _0233FC1C @ =0x0235AAE4 + strb ip, [sp, #8] + strb r3, [sp, #9] + ldrb ip, [r2, #2] + ldrb r3, [r2, #3] + ldr r2, [r1] + add r4, sp, #8 + strb ip, [sp, #0xa] + mov r7, r0 + strb r3, [sp, #0xb] + add lr, r2, #8 + mov ip, r0 +_0233FB14: + ldrb r1, [lr, r7] + add r5, lr, r7 + cmp r1, #0x20 + beq _0233FB58 + mov r6, ip + mov r8, r4 +_0233FB2C: + ldrb r3, [r5, r6] + ldrb r1, [r8] + cmp r3, r1 + addhi sp, sp, #0xc + movhi r0, #0 + pophi {r3, r4, r5, r6, r7, r8, pc} + blo _0233FB58 + add r6, r6, #1 + cmp r6, #3 + add r8, r8, #1 + blt _0233FB2C +_0233FB58: + add r0, r0, #1 + cmp r0, #4 + add r7, r7, #3 + blt _0233FB14 + add r1, sp, #0 + add r0, r2, #8 + bl ov02_02347F80 + add r0, sp, #4 + mov r1, #0 + bl ov02_02338DC8 + ldr r0, [sp, #4] + cmp r0, #1 + bne _0233FBFC + mov r4, #0 + mov r1, #1 + add r5, sp, #0 + mov r6, r4 + mov r2, r1 + mov ip, r4 +_0233FBA4: + ldrb r3, [r5] + mov r7, ip +_0233FBAC: + cmp r4, #0 + rsb r0, r7, #7 + beq _0233FBCC + tst r3, r2, lsl r0 + beq _0233FBD4 + add sp, sp, #0xc + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, pc} +_0233FBCC: + tst r3, r1, lsl r0 + moveq r4, r1 +_0233FBD4: + add r7, r7, #1 + cmp r7, #8 + blt _0233FBAC + add r6, r6, #1 + cmp r6, #4 + add r5, r5, #1 + blt _0233FBA4 + add sp, sp, #0xc + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, pc} +_0233FBFC: + add r0, sp, #0 + bl FUN_022ED8C0 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + add sp, sp, #0xc + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0233FC18: .4byte 0x02352A5C +_0233FC1C: .4byte 0x0235AAE4 + arm_func_end ov02_0233FACC + + arm_func_start ov02_0233FC20 +ov02_0233FC20: @ 0x0233FC20 + push {r3, lr} + bl ov02_02349704 + cmp r0, #0 + popne {r3, pc} + mov r0, #6 + bl ov02_023480E0 + bl ov02_023496C0 + ldr r0, _0233FC48 @ =ov02_0233FC4C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233FC48: .4byte ov02_0233FC4C + arm_func_end ov02_0233FC20 + + arm_func_start ov02_0233FC4C +ov02_0233FC4C: @ 0x0233FC4C + push {r3, lr} + bl ov02_02349718 + cmp r0, #0 + popne {r3, pc} + ldr r0, _0233FC84 @ =0x0235AAE4 + ldr r1, _0233FC88 @ =0xC1FFFCFF + ldr r2, [r0] + ldr r0, _0233FC8C @ =ov02_0233F24C + ldr r3, [r2, #4] + ldr r2, [r3] + and r1, r2, r1 + str r1, [r3] + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0233FC84: .4byte 0x0235AAE4 +_0233FC88: .4byte 0xC1FFFCFF +_0233FC8C: .4byte ov02_0233F24C + arm_func_end ov02_0233FC4C +_0233FC90: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x04, 0x00, 0x00, 0xEB, 0x23, 0x00, 0x00, 0xEB, 0x04, 0x00, 0x9F, 0xE5 + .byte 0x30, 0xE4, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0xA0, 0x00, 0x34, 0x02 + + arm_func_start ov02_0233FCAC +ov02_0233FCAC: @ 0x0233FCAC + push {r3, lr} + ldr r0, _0233FD1C @ =0x023539E8 + ldr r1, _0233FD20 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _0233FD24 @ =0x04001008 + ldr r1, _0233FD28 @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_0233FD1C: .4byte 0x023539E8 +_0233FD20: .4byte FUN_020780D0 +_0233FD24: .4byte 0x04001008 +_0233FD28: .4byte 0x0400000A + arm_func_end ov02_0233FCAC + + arm_func_start ov02_0233FD2C +ov02_0233FD2C: @ 0x0233FD2C + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x2c + add r1, sp, #0x18 + mov r0, #0 + bl ov02_02338DC8 + ldr r0, _02340074 @ =0x0235AAE8 + ldr r2, _02340078 @ =0xFFFFB17D + ldr r1, [r0] + cmp r1, r2 + movge r6, #0 + bge _0233FF88 + sub r0, r2, #1 + cmp r1, r0 + movge r6, #2 + bge _0233FF88 + sub r0, r2, #2 + cmp r1, r0 + movge r6, #0x13 + bge _0233FF88 + sub r0, r2, #8 + cmp r1, r0 + movge r6, #2 + bge _0233FF88 + sub r0, r2, #9 + cmp r1, r0 + movge r6, #0x12 + bge _0233FF88 + sub r0, r2, #0xa + cmp r1, r0 + movge r6, #2 + bge _0233FF88 + sub r0, r2, #0xb + cmp r1, r0 + movge r6, #3 + bge _0233FF88 + sub r0, r2, #0x384 + cmp r1, r0 + movge r6, #2 + bge _0233FF88 + ldr r0, _0234007C @ =0xFFFFA629 + cmp r1, r0 + movge r6, #0 + bge _0233FF88 + sub r0, r0, #0x3e8 + cmp r1, r0 + movge r6, #0x13 + bge _0233FF88 + ldr r0, _02340080 @ =0xFFFF3CB1 + cmp r1, r0 + movge r6, #0 + bge _0233FF88 + sub r2, r0, #3 + cmp r1, r2 + movge r6, #7 + bge _0233FF88 + sub r2, r0, #4 + cmp r1, r2 + movge r6, #5 + bge _0233FF88 + sub r2, r0, #0x63 + cmp r1, r2 + movge r6, #0 + bge _0233FF88 + sub r2, r0, #0x64 + cmp r1, r2 + blt _0233FE48 + ldr r0, [sp, #0x18] + cmp r0, #2 + moveq r6, #5 + movne r6, #7 + b _0233FF88 +_0233FE48: + ldr r3, _02340084 @ =0xFFFF3866 + cmp r1, r3 + movge r6, #0 + bge _0233FF88 + sub r2, r3, #1 + cmp r1, r2 + blt _0233FE78 + ldr r0, [sp, #0x18] + cmp r0, #2 + moveq r6, #5 + movne r6, #8 + b _0233FF88 +_0233FE78: + sub r2, r3, #4 + cmp r1, r2 + movge r6, #9 + bge _0233FF88 + sub r2, r3, #5 + cmp r1, r2 + movge r6, #5 + bge _0233FF88 + sub r2, r3, #0x65 + cmp r1, r2 + movge r6, #0 + bge _0233FF88 + sub r2, r3, #0xc9 + cmp r1, r2 + movge r6, #0x14 + bge _0233FF88 + sub r2, r3, #0xcc + cmp r1, r2 + movge r6, #0x15 + bge _0233FF88 + sub r2, r3, #0xcd + cmp r1, r2 + movge r6, #4 + bge _0233FF88 + sub r0, r0, #0x7d0 + cmp r1, r0 + movge r6, #0 + bge _0233FF88 + sub r0, r3, #0x388 + cmp r1, r0 + movge r6, #0xa + bge _0233FF88 + ldr r2, _02340088 @ =0xFFFF34DD + cmp r1, r2 + movge r6, #0x16 + bge _0233FF88 + sub r0, r2, #0x60 + cmp r1, r0 + movge r6, #0 + bge _0233FF88 + sub r0, r2, #0x64 + cmp r1, r0 + movge r6, #0xb + bge _0233FF88 + sub r0, r2, #0xc4 + cmp r1, r0 + movge r6, #0 + bge _0233FF88 + sub r0, r2, #0xc8 + cmp r1, r0 + movge r6, #0xb + bge _0233FF88 + sub r0, r2, #0x128 + cmp r1, r0 + movge r6, #0 + bge _0233FF88 + sub r0, r2, #0x18c + cmp r1, r0 + movge r6, #2 + bge _0233FF88 + sub r0, r2, #0x3e4 + cmp r1, r0 + movge r6, #0 + bge _0233FF88 + sub r0, r2, #0x510 + cmp r1, r0 + movge r6, #2 + movlt r6, #0 +_0233FF88: + bl ov02_02338DF0 + mov r2, r0 + ldr r1, _0234008C @ =0x02352AA8 + mov r0, #0 + ldrb r1, [r1, r2] + bl ov02_0234DDC8 + ldr r1, _02340090 @ =0x0235AA98 + mov r5, r0 + ldr r0, [r1] + mov r1, r6 + bl ov02_02338F5C + ldr r3, _02340074 @ =0x0235AAE8 + mov r4, r0 + ldr r3, [r3] + ldr r2, _02340094 @ =0x023539FC + add r0, sp, #0x10 + mov r1, #8 + rsb r3, r3, #0 + bl FUN_0207911C + add r0, sp, #0x1c + add r1, sp, #0x10 + mov r2, #8 + bl ov02_0234F5C8 + bl ov02_02338DF0 + lsl r1, r0, #2 + ldr r0, _02340098 @ =0x02352ABA + ldrh r7, [r0, r1] + bl ov02_02338DF0 + lsl r3, r0, #2 + ldr r1, _0234009C @ =0x02352AB8 + mov r0, #0xa + ldrh r1, [r1, r3] + str r0, [sp] + add r3, sp, #0x1c + str r3, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + mov r2, r7 + mov r0, r5 + mov r3, #2 + bl ov02_0234E13C + cmp r6, #0 + beq _02340064 + bl ov02_02334FA0 + mov r1, #0x5e + str r1, [sp] + mov r1, #2 + str r1, [sp, #4] + str r0, [sp, #8] + mov r0, r5 + mov r1, #0xd + mov r2, #0x3c + mov r3, #0xe6 + str r4, [sp, #0xc] + bl ov02_0234E1E8 +_02340064: + mov r0, r5 + bl ov02_0234E354 + add sp, sp, #0x2c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02340074: .4byte 0x0235AAE8 +_02340078: .4byte 0xFFFFB17D +_0234007C: .4byte 0xFFFFA629 +_02340080: .4byte 0xFFFF3CB1 +_02340084: .4byte 0xFFFF3866 +_02340088: .4byte 0xFFFF34DD +_0234008C: .4byte 0x02352AA8 +_02340090: .4byte 0x0235AA98 +_02340094: .4byte 0x023539FC +_02340098: .4byte 0x02352ABA +_0234009C: .4byte 0x02352AB8 + arm_func_end ov02_0233FD2C + + arm_func_start ov02_023400A0 +ov02_023400A0: @ 0x023400A0 + push {r3, lr} + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _023400D0 @ =ov02_023400D4 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023400D0: .4byte ov02_023400D4 + arm_func_end ov02_023400A0 + + arm_func_start ov02_023400D4 +ov02_023400D4: @ 0x023400D4 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #4 + bl ov02_02334E38 + ldr r0, _0234010C @ =0x02340110 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0234010C: .4byte 0x02340110 + arm_func_end ov02_023400D4 +_02340110: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x70, 0xD1, 0xFF, 0xEB, 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1 + .byte 0x08, 0x80, 0xBD, 0x08, 0x89, 0xD1, 0xFF, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0x0D, 0xE3, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0x38, 0x01, 0x34, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x02, 0x00, 0x00, 0xEB + .byte 0x09, 0x00, 0x00, 0xEB, 0x09, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0234014C +ov02_0234014C: @ 0x0234014C + push {r3, lr} + mov r0, #1 + bl ov02_0234EBBC + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} + arm_func_end ov02_0234014C + + arm_func_start ov02_0234016C +ov02_0234016C: @ 0x0234016C + bx lr + arm_func_end ov02_0234016C + + arm_func_start ov02_02340170 +ov02_02340170: @ 0x02340170 + push {r3, lr} + bl ov02_023346DC + cmp r0, #0 + popne {r3, pc} + mov r0, #6 + bl ov02_023480E0 + ldr r0, _02340194 @ =0x02340198 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02340194: .4byte 0x02340198 + arm_func_end ov02_02340170 +_02340198: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x71, 0xD1, 0xFF, 0xEB + .byte 0x08, 0x00, 0xA0, 0xE3, 0x4D, 0x36, 0x00, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0xED, 0xE2, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0xB8, 0x01, 0x34, 0x02 + + arm_func_start ov02_023401B8 +ov02_023401B8: @ 0x023401B8 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_023346AC + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _02340204 @ =ov02_02340208 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02340204: .4byte ov02_02340208 + arm_func_end ov02_023401B8 + + arm_func_start ov02_02340208 +ov02_02340208: @ 0x02340208 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_02334724 + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_0234E02C + bl ov02_02334D10 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + add r1, sp, #0 + mov r0, #0 + bl ov02_02338DC8 + ldr r0, [sp] + cmp r0, #0 + mov r0, #2 + beq _0234028C + mov r1, #1 + bl ov02_02338D78 + ldr r0, _023402B4 @ =ov02_02343DB0 + bl ov02_02338D68 + pop {r3, pc} +_0234028C: + mov r1, #0 + bl ov02_02338D78 + mov r0, #0 + mov r1, r0 + bl ov02_02338DB4 + mov r0, #0 + bl ov02_02342798 + ldr r0, _023402B8 @ =ov02_023402CC + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023402B4: .4byte ov02_02343DB0 +_023402B8: .4byte ov02_023402CC + arm_func_end ov02_02340208 + + arm_func_start ov02_023402BC +ov02_023402BC: @ 0x023402BC + ldr r1, _023402C8 @ =0x0235AAE8 + str r0, [r1] + bx lr + .align 2, 0 +_023402C8: .4byte 0x0235AAE8 + arm_func_end ov02_023402BC + + arm_func_start ov02_023402CC +ov02_023402CC: @ 0x023402CC + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #4 + bl ov02_02347518 + mov r4, r0 + mov r0, #0x48 + mov r1, #4 + bl ov02_0234E7B4 + ldr r1, _023404B0 @ =0x0235AAEC + mov r2, #0xc + str r0, [r1, #8] + ldrb r3, [r4, #0xf6] + strb r3, [r0, #0x43] + ldr r0, [r1, #8] + strb r2, [r0, #0x42] + bl ov02_023406DC + bl ov02_023404C8 + ldr r0, _023404B0 @ =0x0235AAEC + ldrb r0, [r0, #1] + cmp r0, #0 + bne _0234033C + bl ov02_02338DF0 + ldr r1, _023404B4 @ =0x02352BB0 + ldrb r2, [r4, #0xf4] + ldrsb r1, [r1, r0] + mov r0, #0x30 + add r2, r2, #1 + bl ov02_02334C3C + b _0234034C +_0234033C: + mov r0, #0x45 + sub r1, r0, #0x46 + mov r2, #0 + bl ov02_02334C3C +_0234034C: + mov r0, #1 + bl ov02_02334DE8 + bl ov02_023352DC + ldr r0, _023404B0 @ =0x0235AAEC + mov r1, #0x37 + ldrh r3, [r0, #4] + ldr r2, _023404B8 @ =0xE1FC780F + mov r0, #2 + mul r5, r3, r1 + smull r1, r3, r2, r5 + add r3, r5, r3 + lsr r1, r5, #0x1f + add r3, r1, r3, asr #7 + str r3, [sp] + mov r1, #0x55 + mov r2, #0xf1 + mov r3, #0x41 + bl ov02_02346964 + mov r0, #0 + mov r1, #1 + bl ov02_0234DDC8 + ldr r6, _023404B0 @ =0x0235AAEC + mov r5, #0 + ldr r1, [r6, #8] + mov r8, r5 + str r0, [r1, #0x14] + mov r7, #0x29 +_023403B8: + mov r0, r8 + mov r1, r7 + bl ov02_0234D6AC + ldr r1, [r6, #8] + add r1, r1, r5, lsl #2 + add r5, r5, #1 + str r0, [r1, #0x18] + cmp r5, #7 + blt _023403B8 + ldrb r0, [r4, #0xe7] + cmp r0, #1 + beq _023403F4 + cmp r0, #2 + beq _02340428 + b _02340458 +_023403F4: + mov r0, #0 + mov r1, #0x50 + bl ov02_0234D6AC + ldr r1, _023404B0 @ =0x0235AAEC + ldr r2, [r1, #8] + str r0, [r2, #0x34] + ldr r0, [r1, #8] + ldr r1, [r0, #0x34] + ldrh r0, [r1, #4] + bic r0, r0, #0xc00 + orr r0, r0, #0xc00 + strh r0, [r1, #4] + b _02340458 +_02340428: + mov r0, #0 + mov r1, #0x51 + bl ov02_0234D6AC + ldr r1, _023404B0 @ =0x0235AAEC + ldr r2, [r1, #8] + str r0, [r2, #0x34] + ldr r0, [r1, #8] + ldr r1, [r0, #0x34] + ldrh r0, [r1, #4] + bic r0, r0, #0xc00 + orr r0, r0, #0xc00 + strh r0, [r1, #4] +_02340458: + ldr r1, _023404BC @ =ov02_02342020 + mov r0, #1 + mov r2, #0 + mov r3, #0x6e + bl ov02_0234FA98 + ldr r2, _023404B0 @ =0x0235AAEC + ldr r1, _023404C0 @ =ov02_02342580 + ldr r2, [r2, #8] + mov r3, #0x78 + str r0, [r2, #0x3c] + mov r0, #0 + mov r2, r0 + bl ov02_0234FA98 + ldr r1, _023404B0 @ =0x0235AAEC + ldr r1, [r1, #8] + str r0, [r1] + bl ov02_02341294 + bl ov02_023420A4 + ldr r0, _023404C4 @ =ov02_02340718 + bl ov02_02338D68 + add sp, sp, #4 + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_023404B0: .4byte 0x0235AAEC +_023404B4: .4byte 0x02352BB0 +_023404B8: .4byte 0xE1FC780F +_023404BC: .4byte ov02_02342020 +_023404C0: .4byte ov02_02342580 +_023404C4: .4byte ov02_02340718 + arm_func_end ov02_023402CC + + arm_func_start ov02_023404C8 +ov02_023404C8: @ 0x023404C8 + stmdb sp!, {lr} + sub sp, sp, #0x44 + ldr r3, _0234069C @ =0x02352B4F + add ip, sp, #0x2b + mov r2, #0xb +_023404DC: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + strb r1, [ip] + strb r0, [ip, #1] + add ip, ip, #2 + subs r2, r2, #1 + bne _023404DC + ldrb r0, [r3] + ldr r3, _023406A0 @ =0x02352B24 + add lr, sp, #0x16 + strb r0, [ip] + mov r2, #0xa +_02340510: + ldrb r1, [r3] + ldrb r0, [r3, #1] + add r3, r3, #2 + strb r1, [lr] + strb r0, [lr, #1] + add lr, lr, #2 + subs r2, r2, #1 + bne _02340510 + ldrb r0, [r3] + ldr ip, _023406A4 @ =0x02352B39 + add r3, sp, #0 + strb r0, [lr] + mov r2, #0xb +_02340544: + ldrb r1, [ip] + ldrb r0, [ip, #1] + add ip, ip, #2 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + bne _02340544 + ldr r3, _023406A8 @ =0x0400000C + ldr r0, _023406AC @ =0x02353A00 + ldrh r2, [r3] + ldr r1, _023406B0 @ =0x02077DA4 + and r2, r2, #0x43 + orr r2, r2, #0x218 + orr r2, r2, #0xc00 + strh r2, [r3] + bl ov02_02334DA8 + ldr r0, _023406B4 @ =0x02353A14 + ldr r1, _023406B8 @ =0x02078370 + bl ov02_02334DA8 + ldr r0, _023406BC @ =0x02353A2C + ldr r1, _023406C0 @ =0x02078310 + bl ov02_02334DA8 + ldr r1, _023406C4 @ =FUN_02077CF8 + add r0, sp, #0x16 + bl ov02_02334DA8 + ldr r0, _023406C8 @ =0x02353A44 + ldr r1, _023406CC @ =0x02078130 + bl ov02_02334DA8 + add r0, sp, #0x2b + bl ov02_02334D48 + mov r1, #0 + mov r2, #4 + bl ov02_0234CE84 + ldr r1, _023406D0 @ =0x0235AAEC + ldr r2, [r1, #8] + str r0, [r2, #8] + ldr r0, [r1, #8] + ldr r0, [r0, #8] + bl ov02_02346750 + bl ov02_023467DC + add r0, sp, #0x16 + bl ov02_02334D48 + mov r1, #0 + mov r2, #4 + bl ov02_0234CE84 + ldr r1, _023406D0 @ =0x0235AAEC + ldr r1, [r1, #8] + str r0, [r1, #0xc] + add r0, sp, #0 + bl ov02_02334D48 + mov r1, #0 + mov r2, #4 + bl ov02_0234CE84 + ldr r1, _023406D0 @ =0x0235AAEC + ldr r2, _023406D4 @ =0x04001008 + ldr r1, [r1, #8] + str r0, [r1, #0x10] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r2, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2, #2] + sub r2, r2, #0x1000 + ldrh r0, [r2] + ldr r1, _023406D8 @ =0x0400000A + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #2 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + ldrh r0, [r1, #4] + bic r0, r0, #3 + orr r0, r0, #2 + strh r0, [r1, #4] + add sp, sp, #0x44 + ldm sp!, {pc} + .align 2, 0 +_0234069C: .4byte 0x02352B4F +_023406A0: .4byte 0x02352B24 +_023406A4: .4byte 0x02352B39 +_023406A8: .4byte 0x0400000C +_023406AC: .4byte 0x02353A00 +_023406B0: .4byte 0x02077DA4 +_023406B4: .4byte 0x02353A14 +_023406B8: .4byte 0x02078370 +_023406BC: .4byte 0x02353A2C +_023406C0: .4byte 0x02078310 +_023406C4: .4byte FUN_02077CF8 +_023406C8: .4byte 0x02353A44 +_023406CC: .4byte 0x02078130 +_023406D0: .4byte 0x0235AAEC +_023406D4: .4byte 0x04001008 +_023406D8: .4byte 0x0400000A + arm_func_end ov02_023404C8 + + arm_func_start ov02_023406DC +ov02_023406DC: @ 0x023406DC + push {r3, lr} + bl ov02_02347518 + add r1, sp, #0 + mov r0, #0 + bl ov02_02338DC8 + ldr r0, [sp] + cmp r0, #0 + popne {r3, pc} + ldr r0, _02340714 @ =0x0235AAEC + mov r1, #0 + strh r1, [r0, #4] + strb r1, [r0] + strb r1, [r0, #2] + pop {r3, pc} + .align 2, 0 +_02340714: .4byte 0x0235AAEC + arm_func_end ov02_023406DC + + arm_func_start ov02_02340718 +ov02_02340718: @ 0x02340718 + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #2 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #2 + mov r1, #0 + mov r2, #0x1d + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #1 + mov r1, r0 + bl ov02_0234E3D0 + mov r0, #0 + mov r1, #0x1d + bl ov02_0234E3D0 + ldr r0, _02340768 @ =ov02_0234076C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02340768: .4byte ov02_0234076C + arm_func_end ov02_02340718 + + arm_func_start ov02_0234076C +ov02_0234076C: @ 0x0234076C + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + ldr r0, _0234079C @ =0x023407A0 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0234079C: .4byte 0x023407A0 + arm_func_end ov02_0234076C +_023407A0: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x01, 0x00, 0x00, 0xEB, 0x4A, 0x01, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_023407B0 +ov02_023407B0: @ 0x023407B0 + push {r3, lr} + ldr r0, _02340A20 @ =0x0235AAEC + ldr r1, [r0, #8] + ldr r0, [r1, #0x38] + cmp r0, #0 + ldrbeq r0, [r1, #0x45] + cmpeq r0, #0 + popne {r3, pc} + bl ov02_02340A30 + cmp r0, #0 + popne {r3, pc} + mov r0, #1 + bl ov02_0234EBBC + cmp r0, #0 + beq _023407FC + ldr r0, _02340A20 @ =0x0235AAEC + ldrb r0, [r0] + bl ov02_02340AB4 + pop {r3, pc} +_023407FC: + mov r0, #2 + bl ov02_0234EBBC + cmp r0, #0 + beq _02340830 + mov r0, #7 + bl ov02_023480E0 + ldr r1, _02340A20 @ =0x0235AAEC + ldr r0, _02340A24 @ =0x02340F34 + ldr r1, [r1, #8] + mov r2, #0xd + strb r2, [r1, #0x40] + bl ov02_02338D68 + pop {r3, pc} +_02340830: + mov r0, #0x200 + bl ov02_0234EBFC + cmp r0, #0 + beq _023408A8 + ldr r0, _02340A20 @ =0x0235AAEC + ldrh r1, [r0, #4] + cmp r1, #0x91 + bne _0234087C + ldr r0, [r0, #8] + ldrb r0, [r0, #0x47] + cmp r0, #0 + popne {r3, pc} + mov r0, #9 + bl ov02_023480E0 + ldr r0, _02340A20 @ =0x0235AAEC + mov r1, #1 + ldr r0, [r0, #8] + strb r1, [r0, #0x47] + pop {r3, pc} +_0234087C: + mov r0, #0x13 + bl ov02_023480E0 + mov r0, #0 + ldr r1, _02340A28 @ =ov02_02341F7C + mov r2, r0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _02340A20 @ =0x0235AAEC + ldr r1, [r1, #8] + str r0, [r1, #0x38] + pop {r3, pc} +_023408A8: + mov r0, #0x200 + bl ov02_0234EC3C + cmp r0, #0 + beq _023408CC + ldr r0, _02340A20 @ =0x0235AAEC + mov r1, #0 + ldr r0, [r0, #8] + strb r1, [r0, #0x47] + pop {r3, pc} +_023408CC: + mov r0, #0x100 + bl ov02_0234EBFC + cmp r0, #0 + beq _02340944 + ldr r0, _02340A20 @ =0x0235AAEC + ldrh r1, [r0, #4] + cmp r1, #0 + bne _02340918 + ldr r0, [r0, #8] + ldrb r0, [r0, #0x47] + cmp r0, #0 + popne {r3, pc} + mov r0, #9 + bl ov02_023480E0 + ldr r0, _02340A20 @ =0x0235AAEC + mov r1, #1 + ldr r0, [r0, #8] + strb r1, [r0, #0x47] + pop {r3, pc} +_02340918: + mov r0, #0x13 + bl ov02_023480E0 + mov r0, #0 + ldr r1, _02340A2C @ =ov02_02341EB4 + mov r2, r0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _02340A20 @ =0x0235AAEC + ldr r1, [r1, #8] + str r0, [r1, #0x38] + pop {r3, pc} +_02340944: + mov r0, #0x100 + bl ov02_0234EC3C + cmp r0, #0 + beq _02340968 + ldr r0, _02340A20 @ =0x0235AAEC + mov r1, #0 + ldr r0, [r0, #8] + strb r1, [r0, #0x47] + pop {r3, pc} +_02340968: + mov r0, #0x40 + bl ov02_0234EBFC + cmp r0, #0 + beq _02340984 + mov r0, #1 + bl ov02_0234225C + pop {r3, pc} +_02340984: + mov r0, #0x40 + bl ov02_0234EC3C + cmp r0, #0 + beq _023409A8 + ldr r0, _02340A20 @ =0x0235AAEC + mov r1, #0 + ldr r0, [r0, #8] + strb r1, [r0, #0x47] + pop {r3, pc} +_023409A8: + mov r0, #0x80 + bl ov02_0234EBFC + cmp r0, #0 + beq _023409C4 + mov r0, #3 + bl ov02_0234225C + pop {r3, pc} +_023409C4: + mov r0, #0x80 + bl ov02_0234EC3C + cmp r0, #0 + beq _023409E8 + ldr r0, _02340A20 @ =0x0235AAEC + mov r1, #0 + ldr r0, [r0, #8] + strb r1, [r0, #0x47] + pop {r3, pc} +_023409E8: + mov r0, #0x20 + bl ov02_0234EBFC + cmp r0, #0 + beq _02340A04 + mov r0, #0 + bl ov02_0234225C + pop {r3, pc} +_02340A04: + mov r0, #0x10 + bl ov02_0234EBFC + cmp r0, #0 + popeq {r3, pc} + mov r0, #2 + bl ov02_0234225C + pop {r3, pc} + .align 2, 0 +_02340A20: .4byte 0x0235AAEC +_02340A24: .4byte 0x02340F34 +_02340A28: .4byte ov02_02341F7C +_02340A2C: .4byte ov02_02341EB4 + arm_func_end ov02_023407B0 + + arm_func_start ov02_02340A30 +ov02_02340A30: @ 0x02340A30 + push {r4, lr} + bl ov02_02347518 + bl ov02_02341BD8 + mov r4, r0 + cmp r4, #0xe + moveq r0, #0 + popeq {r4, pc} + bl ov02_02341644 + cmp r0, #0 + bne _02340A68 + mov r0, #9 + bl ov02_023480E0 + mov r0, #1 + pop {r4, pc} +_02340A68: + mov r0, r4 + bl ov02_0234222C + cmp r4, #8 + addls pc, pc, r4, lsl #2 + b _02340AA4 +_02340A7C: @ jump table + b _02340AA4 @ case 0 + b _02340AA4 @ case 1 + b _02340AA0 @ case 2 + b _02340AA0 @ case 3 + b _02340AA4 @ case 4 + b _02340AA4 @ case 5 + b _02340AA4 @ case 6 + b _02340AA0 @ case 7 + b _02340AA0 @ case 8 +_02340AA0: + bl ov02_023425D4 +_02340AA4: + mov r0, r4 + bl ov02_02340AB4 + mov r0, #1 + pop {r4, pc} + arm_func_end ov02_02340A30 + + arm_func_start ov02_02340AB4 +ov02_02340AB4: @ 0x02340AB4 + push {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + bl ov02_02341644 + cmp r0, #0 + bne _02340ADC + mov r0, #9 + bl ov02_023480E0 + add sp, sp, #4 + pop {r3, r4, pc} +_02340ADC: + cmp r4, #8 + addls pc, pc, r4, lsl #2 + b _02340B54 +_02340AE8: @ jump table + b _02340B54 @ case 0 + b _02340B54 @ case 1 + b _02340B0C @ case 2 + b _02340B0C @ case 3 + b _02340B54 @ case 4 + b _02340B54 @ case 5 + b _02340B54 @ case 6 + b _02340B30 @ case 7 + b _02340B30 @ case 8 +_02340B0C: + mov r0, #6 + bl ov02_023480E0 + sub r0, r4, #2 + teq r0, #1 + movne r0, #1 + moveq r0, #0 + bl ov02_02340C34 + add sp, sp, #4 + pop {r3, r4, pc} +_02340B30: + mov r0, #6 + bl ov02_023480E0 + sub r0, r4, #7 + teq r0, #1 + movne r0, #1 + moveq r0, #0 + bl ov02_02340CA0 + add sp, sp, #4 + pop {r3, r4, pc} +_02340B54: + ldr r0, _02340C24 @ =0x0235AAEC + sub r1, r4, #0xb + ldr r0, [r0, #8] + cmp r1, #1 + strb r4, [r0, #0x40] + bhi _02340BD0 + bl ov02_0234254C + bl ov02_02342698 + cmp r0, #0 + bne _02340BB0 + mov r0, #9 + bl ov02_023480E0 + mov r1, #1 + mov ip, #0 + mov r2, r1 + sub r3, r1, #2 + mov r0, #6 + str ip, [sp] + bl ov02_02349394 + ldr r0, _02340C28 @ =ov02_02342738 + bl ov02_02338D68 + add sp, sp, #4 + pop {r3, r4, pc} +_02340BB0: + cmp r4, #0xb + bne _02340BC4 + mov r0, #6 + bl ov02_023480E0 + b _02340C10 +_02340BC4: + mov r0, #0xe + bl ov02_023480E0 + b _02340C10 +_02340BD0: + cmp r4, #0xd + bne _02340BE8 + bl ov02_0234254C + mov r0, #7 + bl ov02_023480E0 + b _02340C10 +_02340BE8: + mov r0, #6 + bl ov02_023480E0 + ldr r0, _02340C2C @ =0x02352BD0 + ldrb r0, [r0, r4] + bl ov02_02341E4C + mov r2, r0 + mov r0, #0 + mov r1, #1 + bl ov02_023416D8 + bl ov02_023419C8 +_02340C10: + bl ov02_02346AC4 + ldr r0, _02340C30 @ =0x02340F34 + bl ov02_02338D68 + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02340C24: .4byte 0x0235AAEC +_02340C28: .4byte ov02_02342738 +_02340C2C: .4byte 0x02352BD0 +_02340C30: .4byte 0x02340F34 + arm_func_end ov02_02340AB4 + + arm_func_start ov02_02340C34 +ov02_02340C34: @ 0x02340C34 + push {r3, r4, r5, lr} + mov r4, r0 + bl ov02_02347518 + ldrb r1, [r0, #0xf5] + cmp r1, r4 + popeq {r3, r4, r5, pc} + cmp r4, #0 + beq _02340C70 + ldr r0, _02340C9C @ =0x0235AAEC + ldr r0, [r0, #8] + ldrb r0, [r0, #0x43] + cmp r0, #0 + movne r5, #1 + moveq r5, #0 + b _02340C84 +_02340C70: + ldr r1, _02340C9C @ =0x0235AAEC + ldrb r2, [r0, #0xf6] + ldr r0, [r1, #8] + mov r5, #0 + strb r2, [r0, #0x43] +_02340C84: + mov r0, r4 + bl ov02_0234752C + mov r0, r5 + bl ov02_02347540 + bl ov02_02341294 + pop {r3, r4, r5, pc} + .align 2, 0 +_02340C9C: .4byte 0x0235AAEC + arm_func_end ov02_02340C34 + + arm_func_start ov02_02340CA0 +ov02_02340CA0: @ 0x02340CA0 + push {r4, lr} + mov r4, r0 + bl ov02_02347518 + ldrb r0, [r0, #0xf6] + cmp r0, r4 + popeq {r4, pc} + ldr r1, _02340CD4 @ =0x0235AAEC + mov r0, r4 + ldr r1, [r1, #8] + strb r4, [r1, #0x43] + bl ov02_02347540 + bl ov02_02341294 + pop {r4, pc} + .align 2, 0 +_02340CD4: .4byte 0x0235AAEC + arm_func_end ov02_02340CA0 + + arm_func_start ov02_02340CD8 +ov02_02340CD8: @ 0x02340CD8 + push {r3, lr} + ldr r0, _02340F24 @ =0x0235AAEC + ldr r1, [r0, #8] + ldr r0, [r1, #0x38] + cmp r0, #0 + popne {r3, pc} + ldrb r0, [r1, #0x41] + cmp r0, #0 + subne r0, r0, #1 + strbne r0, [r1, #0x41] + bl ov02_02346A8C + cmp r0, #7 + addls pc, pc, r0, lsl #2 + pop {r3, pc} +_02340D10: @ jump table + pop {r3, pc} @ case 0 + b _02340D30 @ case 1 + b _02340D44 @ case 2 + b _02340D98 @ case 3 + b _02340E40 @ case 4 + b _02340F10 @ case 5 + b _02340EA8 @ case 6 + b _02340F10 @ case 7 +_02340D30: + ldr r0, _02340F24 @ =0x0235AAEC + mov r1, #1 + ldr r0, [r0, #8] + strb r1, [r0, #0x45] + pop {r3, pc} +_02340D44: + ldr r0, _02340F24 @ =0x0235AAEC + ldr r0, [r0, #8] + ldrb r0, [r0, #0x41] + cmp r0, #0 + popne {r3, pc} + bl ov02_0233519C + bl ov02_02346A78 + mov r1, #0x91 + mul r1, r0, r1 + ldr r2, _02340F28 @ =0x094F2095 + lsr r0, r1, #0x1f + smull r1, r3, r2, r1 + ldr r1, _02340F24 @ =0x0235AAEC + add r3, r0, r3, asr #1 + strh r3, [r1, #4] + bl ov02_02341294 + ldr r0, _02340F24 @ =0x0235AAEC + mov r1, #4 + ldr r0, [r0, #8] + strb r1, [r0, #0x41] + pop {r3, pc} +_02340D98: + ldr r0, _02340F24 @ =0x0235AAEC + mov r1, #0 + ldr r0, [r0, #8] + strb r1, [r0, #0x45] + bl ov02_02346A78 + mov r1, #0x91 + mul r1, r0, r1 + ldr r2, _02340F28 @ =0x094F2095 + lsr r0, r1, #0x1f + smull r1, r3, r2, r1 + ldr r1, _02340F24 @ =0x0235AAEC + add r3, r0, r3, asr #1 + mov r0, #0x13 + strh r3, [r1, #4] + bl ov02_023480E0 + bl ov02_02341294 + ldr r0, _02340F24 @ =0x0235AAEC + mov r1, #0x1d + ldrh r0, [r0, #4] + bl FUN_02075C38 + cmp r0, #0 + bne _02340DF8 + bl ov02_0234217C + pop {r3, pc} +_02340DF8: + cmp r0, #0x10 + mov r0, #0 + mov r3, #0x78 + bge _02340E24 + ldr r1, _02340F2C @ =ov02_02341EB4 + mov r2, r0 + bl ov02_0234FA98 + ldr r1, _02340F24 @ =0x0235AAEC + ldr r1, [r1, #8] + str r0, [r1, #0x38] + pop {r3, pc} +_02340E24: + ldr r1, _02340F30 @ =ov02_02341F7C + mov r2, r0 + bl ov02_0234FA98 + ldr r1, _02340F24 @ =0x0235AAEC + ldr r1, [r1, #8] + str r0, [r1, #0x38] + pop {r3, pc} +_02340E40: + ldr r0, _02340F24 @ =0x0235AAEC + ldrh r1, [r0, #4] + cmp r1, #0 + bne _02340E7C + ldr r0, [r0, #8] + ldrb r0, [r0, #0x46] + cmp r0, #0 + popne {r3, pc} + mov r0, #9 + bl ov02_023480E0 + ldr r0, _02340F24 @ =0x0235AAEC + mov r1, #1 + ldr r0, [r0, #8] + strb r1, [r0, #0x46] + pop {r3, pc} +_02340E7C: + mov r0, #0x13 + bl ov02_023480E0 + mov r0, #0 + ldr r1, _02340F2C @ =ov02_02341EB4 + mov r2, r0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _02340F24 @ =0x0235AAEC + ldr r1, [r1, #8] + str r0, [r1, #0x38] + pop {r3, pc} +_02340EA8: + ldr r0, _02340F24 @ =0x0235AAEC + ldrh r1, [r0, #4] + cmp r1, #0x91 + bne _02340EE4 + ldr r0, [r0, #8] + ldrb r0, [r0, #0x46] + cmp r0, #0 + popne {r3, pc} + mov r0, #9 + bl ov02_023480E0 + ldr r0, _02340F24 @ =0x0235AAEC + mov r1, #1 + ldr r0, [r0, #8] + strb r1, [r0, #0x46] + pop {r3, pc} +_02340EE4: + mov r0, #0x13 + bl ov02_023480E0 + mov r0, #0 + ldr r1, _02340F30 @ =ov02_02341F7C + mov r2, r0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _02340F24 @ =0x0235AAEC + ldr r1, [r1, #8] + str r0, [r1, #0x38] + pop {r3, pc} +_02340F10: + ldr r0, _02340F24 @ =0x0235AAEC + mov r1, #0 + ldr r0, [r0, #8] + strb r1, [r0, #0x46] + pop {r3, pc} + .align 2, 0 +_02340F24: .4byte 0x0235AAEC +_02340F28: .4byte 0x094F2095 +_02340F2C: .4byte ov02_02341EB4 +_02340F30: .4byte ov02_02341F7C + arm_func_end ov02_02340CD8 +_02340F34: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xE1, 0x16, 0x00, 0xEB, 0x08, 0x00, 0xA0, 0xE3 + .byte 0xE6, 0x32, 0x00, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0x86, 0xDF, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x54, 0x0F, 0x34, 0x02 + + arm_func_start ov02_02340F54 +ov02_02340F54: @ 0x02340F54 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #3 + mov r1, #0 + mov r2, #0x1d + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _02340F9C @ =ov02_02340FA0 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02340F9C: .4byte ov02_02340FA0 + arm_func_end ov02_02340F54 + + arm_func_start ov02_02340FA0 +ov02_02340FA0: @ 0x02340FA0 + push {r3, r4, r5, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, r4, r5, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, r4, r5, pc} + ldr r1, _02341268 @ =0x0235AAEC + mov r0, #0 + ldr r1, [r1, #8] + ldr r1, [r1] + bl ov02_0234FB6C + ldr r1, _02341268 @ =0x0235AAEC + mov r0, #1 + ldr r1, [r1, #8] + ldr r1, [r1, #0x3c] + bl ov02_0234FB6C + ldr r4, _02341268 @ =0x0235AAEC + mov r5, #0 +_02340FF4: + ldr r0, [r4, #8] + add r0, r0, r5, lsl #2 + ldr r0, [r0, #0x18] + bl ov02_0234F2C0 + add r5, r5, #1 + cmp r5, #7 + blt _02340FF4 + ldr r0, _02341268 @ =0x0235AAEC + ldr r0, [r0, #8] + ldr r0, [r0, #0x34] + cmp r0, #0 + beq _02341028 + bl ov02_0234F2C0 +_02341028: + bl ov02_02346A3C + mov r0, #0 + bl ov02_0234E02C + bl ov02_0233519C + ldr r0, _02341268 @ =0x0235AAEC + ldr r0, [r0, #8] + ldrb r0, [r0, #0x40] + cmp r0, #0xc + beq _02341050 + bl ov02_02334D10 +_02341050: + bl ov02_023467B0 + ldr r0, _02341268 @ =0x0235AAEC + ldr r0, [r0, #8] + ldr r0, [r0, #8] + bl ov02_0234CF78 + ldr r4, _02341268 @ =0x0235AAEC + mov r5, #0 +_0234106C: + ldr r0, [r4, #8] + add r0, r0, r5, lsl #2 + ldr r0, [r0, #0xc] + bl ov02_0234CF78 + add r5, r5, #1 + cmp r5, #2 + blt _0234106C + ldr r0, _0234126C @ =0x02353A58 + ldr r1, _02341270 @ =0x02077DA4 + bl ov02_02334DA8 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 + mov r0, #0 + mov r1, #0x1d + bl ov02_0234E424 + ldr r0, _02341274 @ =0x04000010 + mov r1, #0 + str r1, [r0] + sub r3, r0, #4 + str r1, [r0, #8] + ldrh r0, [r3] + ldr r2, _02341268 @ =0x0235AAEC + and r0, r0, #0x43 + orr r0, r0, #0xe10 + strh r0, [r3] + ldr r0, [r2, #8] + ldrb r0, [r0, #0x40] + cmp r0, #0xd + addls pc, pc, r0, lsl #2 + b _0234125C +_023410E8: @ jump table + b _02341120 @ case 0 + b _02341120 @ case 1 + b _0234125C @ case 2 + b _0234125C @ case 3 + b _0234113C @ case 4 + b _0234113C @ case 5 + b _0234113C @ case 6 + b _0234125C @ case 7 + b _0234125C @ case 8 + b _0234113C @ case 9 + b _0234113C @ case 10 + b _0234116C @ case 11 + b _02341204 @ case 12 + b _02341218 @ case 13 +_02341120: + bl ov02_02338DB4 + mov r0, #2 + mov r1, #0 + bl ov02_02338D78 + ldr r0, _02341278 @ =ov02_0233E488 + bl ov02_02338D68 + b _0234125C +_0234113C: + sub r4, r0, #4 + cmp r0, #9 + subhs r4, r4, #2 + mov r0, #2 + mov r1, #0 + bl ov02_02338D78 + mov r0, r4 + mov r1, #0 + bl ov02_02338DB4 + ldr r0, _0234127C @ =ov02_0233EFC8 + bl ov02_02338D68 + b _0234125C +_0234116C: + bl ov02_02347518 + mov r4, r0 + add r0, r4, #0xf0 + bl FUN_022ED7C0 + strb r0, [r4, #0xd0] + ldrb r0, [r4, #0xf5] + cmp r0, #0 + beq _023411C4 + add r0, r4, #0xc0 + mov r1, #0 + mov r2, #4 + bl FUN_0207C40C + add r0, r4, #0xc4 + mov r1, #0 + mov r2, #4 + bl FUN_0207C40C + add r0, r4, #0xf0 + mov r1, #0 + mov r2, #4 + bl FUN_0207C40C + mov r0, #0 + strb r0, [r4, #0xd0] +_023411C4: + ldrb r0, [r4, #0xf6] + cmp r0, #0 + beq _023411E0 + add r0, r4, #0xc8 + mov r1, #0 + mov r2, #8 + bl FUN_0207C40C +_023411E0: + mov r0, #2 + mov r1, #0 + bl ov02_02338D78 + mov r0, #0 + mov r1, r0 + bl ov02_02338DB4 + ldr r0, _02341280 @ =ov02_023452A8 + bl ov02_02338D68 + b _0234125C +_02341204: + mov r0, r1 + bl ov02_02338D78 + ldr r0, _02341284 @ =0x023427A8 + bl ov02_02338D68 + b _0234125C +_02341218: + ldrb r0, [r2, #1] + cmp r0, #0 + bne _0234123C + mov r0, #2 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _02341288 @ =ov02_02343DB0 + bl ov02_02338D68 + b _0234125C +_0234123C: + bl ov02_02347518 + ldrb r0, [r0, #0xf4] + bl ov02_0234793C + mov r0, #0 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _0234128C @ =ov02_02344AF0 + bl ov02_02338D68 +_0234125C: + ldr r0, _02341290 @ =0x0235AAF4 + bl ov02_0234E7D8 + pop {r3, r4, r5, pc} + .align 2, 0 +_02341268: .4byte 0x0235AAEC +_0234126C: .4byte 0x02353A58 +_02341270: .4byte 0x02077DA4 +_02341274: .4byte 0x04000010 +_02341278: .4byte ov02_0233E488 +_0234127C: .4byte ov02_0233EFC8 +_02341280: .4byte ov02_023452A8 +_02341284: .4byte 0x023427A8 +_02341288: .4byte ov02_02343DB0 +_0234128C: .4byte ov02_02344AF0 +_02341290: .4byte 0x0235AAF4 + arm_func_end ov02_02340FA0 + + arm_func_start ov02_02341294 +ov02_02341294: @ 0x02341294 + push {r4, r5, r6, lr} + ldr r0, _0234134C @ =0x0235AAEC + mov r1, #0x1d + ldrh r0, [r0, #4] + bl FUN_02075BFC + ldr r1, _0234134C @ =0x0235AAEC + mov r4, r0 + ldr r0, [r1, #8] + mov r1, #0 + ldr r0, [r0, #0x14] + bl ov02_0234E2A8 + mov r5, r4 + mov r6, #0 +_023412C8: + mov r0, r5 + mov r1, r6 + bl ov02_02341354 + add r6, r6, #1 + cmp r6, #5 + add r5, r5, #1 + blt _023412C8 + ldr r0, _0234134C @ =0x0235AAEC + ldr r1, _02341350 @ =0x02352B12 + lsl r2, r4, #1 + ldr r3, [r0, #8] + ldrh r0, [r1, r2] + ldr r2, [r3, #8] + mov r1, #0 + add r0, r2, r0, lsl #1 + mov r2, #0x1e + mov r3, #0x13 + bl ov02_023467F4 + mov r5, #0 +_02341314: + mov r0, r4 + mov r1, r5 + bl ov02_023414F0 + add r5, r5, #1 + cmp r5, #5 + add r4, r4, #1 + blt _02341314 + bl ov02_023467DC + ldr r0, _0234134C @ =0x0235AAEC + ldr r0, [r0, #8] + ldr r0, [r0, #0x14] + bl ov02_0234E354 + bl ov02_023419C8 + pop {r4, r5, r6, pc} + .align 2, 0 +_0234134C: .4byte 0x0235AAEC +_02341350: .4byte 0x02352B12 + arm_func_end ov02_02341294 + + arm_func_start ov02_02341354 +ov02_02341354: @ 0x02341354 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x24 + mov r6, r0 + mov r5, r1 + bl ov02_02347518 + cmp r6, #8 + addls pc, pc, r6, lsl #2 + b _023414E8 +_02341374: @ jump table + b _02341398 @ case 0 + b _023413AC @ case 1 + b _023414E8 @ case 2 + b _0234143C @ case 3 + b _02341460 @ case 4 + b _02341484 @ case 5 + b _023414E8 @ case 6 + b _023414A8 @ case 7 + b _023414CC @ case 8 +_02341398: + mov r1, r5 + add r0, r0, #0x40 + bl ov02_023417DC + add sp, sp, #0x24 + pop {r3, r4, r5, r6, pc} +_023413AC: + ldrb r1, [r0, #0xe6] + lsl r1, r1, #0x1e + lsr r1, r1, #0x1e + cmp r1, #3 + addls pc, pc, r1, lsl #2 + b _023413F0 +_023413C4: @ jump table + b _023413D4 @ case 0 + b _023413DC @ case 1 + b _023413E4 @ case 2 + b _023413EC @ case 3 +_023413D4: + add sp, sp, #0x24 + pop {r3, r4, r5, r6, pc} +_023413DC: + mov r4, #0xa + b _023413F0 +_023413E4: + mov r4, #0x1a + b _023413F0 +_023413EC: + mov r4, #0x20 +_023413F0: + ldrb r0, [r0, #0xe6] + mov r1, #0 + mov r2, #0x21 + lsl r0, r0, #0x18 + lsr r0, r0, #0x1a + cmp r0, #1 + addeq r0, r4, r4, lsr #31 + asreq r4, r0, #1 + add r0, sp, #0 + bl FUN_0207C40C + add r0, sp, #0 + mov r2, r4 + mov r1, #0x2a + bl FUN_02087308 + add r0, sp, #0 + mov r1, r5 + bl ov02_023417DC + add sp, sp, #0x24 + pop {r3, r4, r5, r6, pc} +_0234143C: + ldrb r1, [r0, #0xf5] + cmp r1, #0 + addne sp, sp, #0x24 + popne {r3, r4, r5, r6, pc} + mov r1, r5 + add r0, r0, #0xc0 + bl ov02_02341930 + add sp, sp, #0x24 + pop {r3, r4, r5, r6, pc} +_02341460: + ldrb r1, [r0, #0xf5] + cmp r1, #0 + addne sp, sp, #0x24 + popne {r3, r4, r5, r6, pc} + mov r1, r5 + add r0, r0, #0xf0 + bl ov02_02341930 + add sp, sp, #0x24 + pop {r3, r4, r5, r6, pc} +_02341484: + ldrb r1, [r0, #0xf5] + cmp r1, #0 + addne sp, sp, #0x24 + popne {r3, r4, r5, r6, pc} + mov r1, r5 + add r0, r0, #0xc4 + bl ov02_02341930 + add sp, sp, #0x24 + pop {r3, r4, r5, r6, pc} +_023414A8: + ldrb r1, [r0, #0xf6] + cmp r1, #0 + addne sp, sp, #0x24 + popne {r3, r4, r5, r6, pc} + mov r1, r5 + add r0, r0, #0xc8 + bl ov02_02341930 + add sp, sp, #0x24 + pop {r3, r4, r5, r6, pc} +_023414CC: + ldrb r1, [r0, #0xf6] + cmp r1, #0 + addne sp, sp, #0x24 + popne {r3, r4, r5, r6, pc} + mov r1, r5 + add r0, r0, #0xcc + bl ov02_02341930 +_023414E8: + add sp, sp, #0x24 + pop {r3, r4, r5, r6, pc} + arm_func_end ov02_02341354 + + arm_func_start ov02_023414F0 +ov02_023414F0: @ 0x023414F0 + push {r4, r5, r6, lr} + mov r4, r0 + mov r6, r1 + bl ov02_02347518 + cmp r4, #8 + addls pc, pc, r4, lsl #2 + b _02341624 +_0234150C: @ jump table + b _02341530 @ case 0 + b _02341530 @ case 1 + b _0234154C @ case 2 + b _02341598 @ case 3 + b _02341598 @ case 4 + b _02341598 @ case 5 + b _023415B0 @ case 6 + b _0234160C @ case 7 + b _0234160C @ case 8 +_02341530: + mov r4, #0 + mov r0, r4 + mov r5, r4 + bl ov02_02341644 + cmp r0, #0 + moveq r5, #2 + b _0234162C +_0234154C: + ldr r2, _02341640 @ =0x0235AAEC + ldrb r0, [r0, #0xf5] + ldr r3, [r2, #8] + mov r1, #0 + ldrb r2, [r3, #4] + cmp r0, #0 + movne r4, #1 + movne r0, #4 + moveq r4, #2 + moveq r0, #3 + cmp r2, #0 + mov r5, r1 + ldrb r2, [r3, #5] + movne r5, #1 + cmp r2, #0 + movne r1, #1 + mov r2, r6 + bl ov02_023416D8 + b _0234162C +_02341598: + ldrb r0, [r0, #0xf5] + mov r4, #0 + cmp r0, #0 + movne r5, #2 + moveq r5, r4 + b _0234162C +_023415B0: + ldrb r2, [r0, #0xf6] + mov r1, #0 + mov r5, r1 + cmp r2, #0 + movne r4, #1 + movne r0, #4 + bne _023415E0 + ldrb r0, [r0, #0xf5] + mov r4, #2 + cmp r0, #0 + moveq r5, #2 + mov r0, #3 +_023415E0: + ldr r2, _02341640 @ =0x0235AAEC + ldr r3, [r2, #8] + ldrb r2, [r3, #6] + cmp r2, #0 + ldrb r2, [r3, #7] + movne r5, #1 + cmp r2, #0 + movne r1, #1 + mov r2, r6 + bl ov02_023416D8 + b _0234162C +_0234160C: + ldrb r0, [r0, #0xf6] + mov r4, #0 + cmp r0, #0 + movne r5, #2 + moveq r5, r4 + b _0234162C +_02341624: + mov r4, #0 + mov r5, #2 +_0234162C: + mov r0, r4 + mov r1, r5 + mov r2, r6 + bl ov02_023416D8 + pop {r4, r5, r6, pc} + .align 2, 0 +_02341640: .4byte 0x0235AAEC + arm_func_end ov02_023414F0 + + arm_func_start ov02_02341644 +ov02_02341644: @ 0x02341644 + push {r4, lr} + mov r4, r0 + bl ov02_02347518 + cmp r4, #0xa + mov r1, #1 + addls pc, pc, r4, lsl #2 + b _023416D0 +_02341660: @ jump table + b _0234169C @ case 0 + b _0234169C @ case 1 + b _023416D0 @ case 2 + b _023416D0 @ case 3 + b _023416B4 @ case 4 + b _023416B4 @ case 5 + b _023416B4 @ case 6 + b _0234168C @ case 7 + b _023416D0 @ case 8 + b _023416C4 @ case 9 + b _023416C4 @ case 10 +_0234168C: + ldrb r0, [r0, #0xf5] + cmp r0, #0 + moveq r1, #0 + b _023416D0 +_0234169C: + ldrb r0, [r0, #0xe7] + add r0, r0, #0xff + and r0, r0, #0xff + cmp r0, #1 + movls r1, #0 + b _023416D0 +_023416B4: + ldrb r0, [r0, #0xf5] + cmp r0, #0 + movne r1, #0 + b _023416D0 +_023416C4: + ldrb r0, [r0, #0xf6] + cmp r0, #0 + movne r1, #0 +_023416D0: + mov r0, r1 + pop {r4, pc} + arm_func_end ov02_02341644 + + arm_func_start ov02_023416D8 +ov02_023416D8: @ 0x023416D8 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0xc + ldr r3, _023417D0 @ =0x0235AAEC + mov ip, #0xc0 + ldr r3, [r3, #8] + mov r6, r0 + mov r4, #0x8f + add r3, r3, #0x18 + sub r0, r6, #1 + mov lr, #0xcc + mov r5, r1 + strh lr, [sp] + strh ip, [sp, #2] + strh ip, [sp, #4] + strh r4, [sp, #6] + strh r4, [sp, #8] + cmp r0, #1 + add r4, r3, r2, lsl #2 + bhi _0234174C + mov r0, r2 + bl ov02_02341E90 + cmp r0, #2 + ldrne r0, _023417D0 @ =0x0235AAEC + ldrne r0, [r0, #8] + addne r4, r0, #0x30 + bne _0234174C + ldr r0, _023417D0 @ =0x0235AAEC + ldr r0, [r0, #8] + add r4, r0, #0x2c +_0234174C: + ldr r0, _023417D4 @ =0x02352B02 + add r1, r6, r6, lsl #1 + add r0, r0, r1 + ldrb r1, [r5, r0] + ldr r2, [r4] + cmp r1, #0 + beq _023417B4 + mov r0, #0 + bl ov02_0234D618 + add r0, sp, #0 + lsl r1, r6, #1 + ldrh r2, [r0, r1] + ldr r3, [r4] + ldr r0, _023417D8 @ =0xFE00FF00 + ldr r1, [r3] + lsl r2, r2, #0x17 + and r0, r1, r0 + orr r0, r0, r2, lsr #7 + str r0, [r3] + ldr r1, [r4] + add sp, sp, #0xc + ldrh r0, [r1, #4] + bic r0, r0, #0xc00 + orr r0, r0, #0xc00 + strh r0, [r1, #4] + pop {r3, r4, r5, r6, pc} +_023417B4: + ldr r0, _023417D8 @ =0xFE00FF00 + ldr r1, [r2] + and r0, r1, r0 + orr r0, r0, #0x1000000 + str r0, [r2] + add sp, sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_023417D0: .4byte 0x0235AAEC +_023417D4: .4byte 0x02352B02 +_023417D8: .4byte 0xFE00FF00 + arm_func_end ov02_023416D8 + + arm_func_start ov02_023417DC +ov02_023417DC: @ 0x023417DC + push {r4, r5, r6, lr} + sub sp, sp, #0x30 + mov r6, r0 + mov r5, r1 + add r0, sp, #0xc + mov r1, #0 + mov r2, #0x22 + bl FUN_0207C40C + mov r0, r6 + mov r1, #0x20 + bl ov02_0234F59C + mov r4, r0 + cmp r4, #0x10 + movle lr, r4 + movgt lr, #0x10 + cmp lr, #0 + mov ip, #0 + ble _0234184C + ldr r2, _02341928 @ =0x0000E01D + add r1, sp, #0xc +_0234182C: + ldrb r3, [r6, ip] + lsl r0, ip, #1 + add ip, ip, #1 + cmp r3, #0x20 + strheq r2, [r1, r0] + strhne r3, [r1, r0] + cmp ip, lr + blt _0234182C +_0234184C: + mov r0, #0x1d + mul r0, r5, r0 + mov r1, #8 + add r5, r0, #2 + str r1, [sp] + add r0, sp, #0xc + str r0, [sp, #4] + mov r1, #1 + str r1, [sp, #8] + ldr r0, _0234192C @ =0x0235AAEC + cmp r4, #0x10 + ldr r0, [r0, #8] + addle r5, r5, #5 + ldr r0, [r0, #0x14] + mov r2, r5 + mov r1, #0x48 + mov r3, #2 + bl ov02_0234E13C + cmp r4, #0x10 + addle sp, sp, #0x30 + pople {r4, r5, r6, pc} + add r0, sp, #0xc + mov r1, #0 + mov r2, #0x22 + bl FUN_0207C40C + sub r4, r4, #0x10 + cmp r4, #0 + mov ip, #0 + ble _023418EC + ldr r2, _02341928 @ =0x0000E01D + add r1, sp, #0xc +_023418C8: + add r0, r6, ip + ldrb r3, [r0, #0x10] + lsl r0, ip, #1 + add ip, ip, #1 + cmp r3, #0x20 + strheq r2, [r1, r0] + strhne r3, [r1, r0] + cmp ip, r4 + blt _023418C8 +_023418EC: + mov r1, #8 + str r1, [sp] + add r0, sp, #0xc + str r0, [sp, #4] + mov r1, #1 + str r1, [sp, #8] + ldr r0, _0234192C @ =0x0235AAEC + add r2, r5, #0xc + ldr r0, [r0, #8] + mov r1, #0x48 + ldr r0, [r0, #0x14] + mov r3, #2 + bl ov02_0234E13C + add sp, sp, #0x30 + pop {r4, r5, r6, pc} + .align 2, 0 +_02341928: .4byte 0x0000E01D +_0234192C: .4byte 0x0235AAEC + arm_func_end ov02_023417DC + + arm_func_start ov02_02341930 +ov02_02341930: @ 0x02341930 + push {r3, r4, lr} + sub sp, sp, #0x3c + mov ip, r0 + ldrb r2, [ip, #1] + mov r4, r1 + add r0, sp, #0xc + str r2, [sp] + ldrb r3, [ip, #2] + ldr r2, _023419C0 @ =0x02353A70 + mov r1, #0x10 + str r3, [sp, #4] + ldrb r3, [ip, #3] + str r3, [sp, #8] + ldrb r3, [ip] + bl FUN_0207911C + add r0, sp, #0x1c + add r1, sp, #0xc + mov r2, #0x10 + bl ov02_0234F5C8 + mov r2, #7 + mov r0, #0x1d + mul r1, r4, r0 + str r2, [sp] + add r0, sp, #0x1c + str r0, [sp, #4] + mov r2, #1 + str r2, [sp, #8] + ldr r0, _023419C4 @ =0x0235AAEC + add r2, r1, #8 + ldr r0, [r0, #8] + mov r1, #0x5f + ldr r0, [r0, #0x14] + mov r3, #2 + bl ov02_0234E13C + add sp, sp, #0x3c + pop {r3, r4, pc} + .align 2, 0 +_023419C0: .4byte 0x02353A70 +_023419C4: .4byte 0x0235AAEC + arm_func_end ov02_02341930 + + arm_func_start ov02_023419C8 +ov02_023419C8: @ 0x023419C8 + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #8 + ldr r0, _02341BCC @ =0x0235AAEC + mov r1, #0x1d + ldrh r0, [r0, #4] + bl FUN_02075BFC + ldr r1, _02341BCC @ =0x0235AAEC + mov r4, r0 + ldrh r0, [r1, #4] + mov r1, #0x1d + bl FUN_02075C38 + ldr r1, _02341BCC @ =0x0235AAEC + rsb ip, r0, #0x34 + ldr r1, [r1, #8] + ldr r0, [r1, #0x34] + cmp r0, #0 + beq _02341A48 + ldr r5, [r1, #0x34] + cmp r4, #0 + moveq r0, #0x26 + streq r0, [sp, #4] + movne r0, #0x100 + strne r0, [sp, #4] + ldr r2, [r5] + ldr r0, _02341BD0 @ =0xFE00FF00 + ldr r3, [sp, #4] + and r0, r2, r0 + and r1, ip, #0xff + lsl r2, r3, #0x17 + orr r0, r0, r1 + orr r0, r0, r2, lsr #7 + str r0, [r5] +_02341A48: + ldr r8, _02341BCC @ =0x0235AAEC + ldr r6, _02341BD4 @ =0x01FF0000 + ldr r7, _02341BD0 @ =0xFE00FF00 + mov lr, ip + mov r5, #0 +_02341A5C: + ldr r0, [r8, #8] + and sb, lr, #0xff + add r0, r0, r5, lsl #2 + ldr r3, [r0, #0x18] + add r5, r5, #1 + ldr r1, [r3] + cmp r5, #5 + mov r0, r1 + and r2, r1, r6 + and sl, r0, r7 + lsr r2, r2, #0x10 + lsl r0, r2, #0x17 + orr sb, sl, sb + orr r0, sb, r0, lsr #7 + str r0, [r3] + and r0, r1, #0xff + add lr, lr, #0x1d + blt _02341A5C + str r0, [sp] + str r2, [sp, #4] + cmp r4, #2 + bgt _02341B0C + ldr r0, _02341BCC @ =0x0235AAEC + rsb r2, r4, #2 + ldr r0, [r0, #8] + mov r1, #0x1d + ldr r0, [r0, #0x2c] + mla r3, r2, r1, ip + ldr r2, [r0] + ldr r1, _02341BD4 @ =0x01FF0000 + and r6, r2, #0xff + and r1, r2, r1 + lsr r7, r1, #0x10 + mov r5, r2 + ldr r1, _02341BD0 @ =0xFE00FF00 + and r2, r3, #0xff + and r1, r5, r1 + lsl r3, r7, #0x17 + orr r1, r1, r2 + orr r1, r1, r3, lsr #7 + str r7, [sp, #4] + str r6, [sp] + str r1, [r0] + b _02341B2C +_02341B0C: + ldr r1, _02341BCC @ =0x0235AAEC + ldr r0, _02341BD0 @ =0xFE00FF00 + ldr r1, [r1, #8] + ldr r2, [r1, #0x2c] + ldr r1, [r2] + and r0, r1, r0 + orr r0, r0, #0x1000000 + str r0, [r2] +_02341B2C: + cmp r4, #2 + blt _02341B94 + cmp r4, #6 + bgt _02341B94 + ldr r0, _02341BCC @ =0x0235AAEC + rsb r2, r4, #6 + ldr r0, [r0, #8] + mov r1, #0x1d + ldr r0, [r0, #0x30] + mla r3, r2, r1, ip + ldr r2, [r0] + ldr r1, _02341BD4 @ =0x01FF0000 + and r5, r2, #0xff + and r1, r2, r1 + lsr r6, r1, #0x10 + mov r4, r2 + ldr r1, _02341BD0 @ =0xFE00FF00 + and r2, r3, #0xff + and r1, r4, r1 + lsl r3, r6, #0x17 + orr r1, r1, r2 + orr r1, r1, r3, lsr #7 + str r6, [sp, #4] + str r5, [sp] + str r1, [r0] + b _02341BB4 +_02341B94: + ldr r1, _02341BCC @ =0x0235AAEC + ldr r0, _02341BD0 @ =0xFE00FF00 + ldr r1, [r1, #8] + ldr r2, [r1, #0x30] + ldr r1, [r2] + and r0, r1, r0 + orr r0, r0, #0x1000000 + str r0, [r2] +_02341BB4: + ldr r0, _02341BCC @ =0x0235AAEC + mov r1, #1 + ldr r0, [r0, #8] + strb r1, [r0, #0x44] + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_02341BCC: .4byte 0x0235AAEC +_02341BD0: .4byte 0xFE00FF00 +_02341BD4: .4byte 0x01FF0000 + arm_func_end ov02_023419C8 + + arm_func_start ov02_02341BD8 +ov02_02341BD8: @ 0x02341BD8 + push {r4, r5, r6, lr} + sub sp, sp, #8 + ldr r0, _02341E38 @ =0x02352F34 + bl ov02_0234ED04 + cmp r0, #0 + addeq sp, sp, #8 + moveq r0, #0xe + popeq {r4, r5, r6, pc} + ldr r0, _02341E3C @ =0x0235AAEC + mov r1, #0x1d + ldrh r0, [r0, #4] + bl FUN_02075BFC + ldr r1, _02341E40 @ =0x02352AD8 + mov r5, r0 + ldrh r3, [r1, #4] + ldrh r2, [r1, #6] + add r4, sp, #0 + strh r3, [sp] + strh r2, [sp, #2] + ldrh r2, [r1, #8] + ldrh r0, [r1, #0xa] + mov r6, #0 + strh r2, [sp, #4] + strh r0, [sp, #6] +_02341C38: + cmp r5, #2 + cmpne r5, #6 + beq _02341C60 + mov r0, r4 + bl ov02_0234EE9C + cmp r0, #0 + ldrne r0, _02341E44 @ =0x02352BB8 + addne sp, sp, #8 + ldrbne r0, [r0, r5] + popne {r4, r5, r6, pc} +_02341C60: + ldrh r0, [sp, #2] + add r6, r6, #1 + cmp r6, #4 + add r0, r0, #0x1d + strh r0, [sp, #2] + add r5, r5, #1 + blt _02341C38 + ldr r0, _02341E3C @ =0x0235AAEC + mov r1, #0x1d + ldrh r0, [r0, #4] + bl FUN_02075BFC + mov r3, #0 +_02341C90: + cmp r0, #2 + bne _02341D2C + ldr r1, _02341E40 @ =0x02352AD8 + mov r0, #0x1d + ldrh r5, [r1, #0x16] + ldrh r2, [r1, #0x14] + mul r4, r3, r0 + strh r2, [sp] + strh r5, [sp, #2] + ldrh r3, [r1, #0x18] + ldrh r2, [r1, #0x1a] + add r1, r5, r4 + add r0, sp, #0 + strh r3, [sp, #4] + strh r2, [sp, #6] + strh r1, [sp, #2] + bl ov02_0234EE9C + cmp r0, #0 + addne sp, sp, #8 + movne r0, #2 + popne {r4, r5, r6, pc} + ldr r1, _02341E40 @ =0x02352AD8 + add r0, sp, #0 + ldrh r5, [r1, #0xe] + ldrh r2, [r1, #0xc] + strh r5, [sp, #2] + strh r2, [sp] + ldrh r3, [r1, #0x10] + ldrh r2, [r1, #0x12] + add r1, r5, r4 + strh r3, [sp, #4] + strh r2, [sp, #6] + strh r1, [sp, #2] + bl ov02_0234EE9C + cmp r0, #0 + beq _02341D3C + add sp, sp, #8 + mov r0, #3 + pop {r4, r5, r6, pc} +_02341D2C: + add r3, r3, #1 + cmp r3, #4 + add r0, r0, #1 + blt _02341C90 +_02341D3C: + ldr r0, _02341E3C @ =0x0235AAEC + mov r1, #0x1d + ldrh r0, [r0, #4] + bl FUN_02075BFC + mov r3, #0 +_02341D50: + cmp r0, #6 + bne _02341DEC + ldr r1, _02341E40 @ =0x02352AD8 + mov r0, #0x1d + ldrh r5, [r1, #0x16] + ldrh r2, [r1, #0x14] + mul r4, r3, r0 + strh r2, [sp] + strh r5, [sp, #2] + ldrh r3, [r1, #0x18] + ldrh r2, [r1, #0x1a] + add r1, r5, r4 + add r0, sp, #0 + strh r3, [sp, #4] + strh r2, [sp, #6] + strh r1, [sp, #2] + bl ov02_0234EE9C + cmp r0, #0 + addne sp, sp, #8 + movne r0, #7 + popne {r4, r5, r6, pc} + ldr r1, _02341E40 @ =0x02352AD8 + add r0, sp, #0 + ldrh r5, [r1, #0xe] + ldrh r2, [r1, #0xc] + strh r5, [sp, #2] + strh r2, [sp] + ldrh r3, [r1, #0x10] + ldrh r2, [r1, #0x12] + add r1, r5, r4 + strh r3, [sp, #4] + strh r2, [sp, #6] + strh r1, [sp, #2] + bl ov02_0234EE9C + cmp r0, #0 + beq _02341DFC + add sp, sp, #8 + mov r0, #8 + pop {r4, r5, r6, pc} +_02341DEC: + add r3, r3, #1 + cmp r3, #4 + add r0, r0, #1 + blt _02341D50 +_02341DFC: + ldr r4, _02341E48 @ =0x02352B66 + mov r5, #0 +_02341E04: + mov r0, r4 + bl ov02_0234ED04 + cmp r0, #0 + addne sp, sp, #8 + addne r0, r5, #0xb + popne {r4, r5, r6, pc} + add r5, r5, #1 + cmp r5, #3 + add r4, r4, #8 + blt _02341E04 + mov r0, #0xe + add sp, sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 +_02341E38: .4byte 0x02352F34 +_02341E3C: .4byte 0x0235AAEC +_02341E40: .4byte 0x02352AD8 +_02341E44: .4byte 0x02352BB8 +_02341E48: .4byte 0x02352B66 + arm_func_end ov02_02341BD8 + + arm_func_start ov02_02341E4C +ov02_02341E4C: @ 0x02341E4C + push {r4, lr} + ldr r1, _02341E8C @ =0x0235AAEC + mov r4, r0 + ldrh r0, [r1, #4] + mov r1, #0x1d + bl FUN_02075BFC + mov r1, #0 +_02341E68: + cmp r0, r4 + moveq r0, r1 + popeq {r4, pc} + add r1, r1, #1 + cmp r1, #4 + add r0, r0, #1 + blt _02341E68 + mvn r0, #0 + pop {r4, pc} + .align 2, 0 +_02341E8C: .4byte 0x0235AAEC + arm_func_end ov02_02341E4C + + arm_func_start ov02_02341E90 +ov02_02341E90: @ 0x02341E90 + push {r4, lr} + ldr r1, _02341EB0 @ =0x0235AAEC + mov r4, r0 + ldrh r0, [r1, #4] + mov r1, #0x1d + bl FUN_02075BFC + add r0, r0, r4 + pop {r4, pc} + .align 2, 0 +_02341EB0: .4byte 0x0235AAEC + arm_func_end ov02_02341E90 + + arm_func_start ov02_02341EB4 +ov02_02341EB4: @ 0x02341EB4 + push {r3, r4, r5, lr} + mov r4, r0 + bl ov02_02346AC4 + bl ov02_0233519C + ldr r0, _02341F74 @ =0x0235AAEC + ldrh r1, [r0, #4] + cmp r1, #6 + subhi r1, r1, #6 + movls r1, #0 + strh r1, [r0, #4] + ldr r0, _02341F74 @ =0x0235AAEC + mov r1, #0x1d + ldrh r0, [r0, #4] + bl FUN_02075C38 + mov r5, r0 + cmp r5, #0x17 + bne _02341F00 + bl ov02_02341294 + pop {r3, r4, r5, pc} +_02341F00: + ble _02341F1C + ldr r0, _02341F74 @ =0x0235AAEC + rsb r1, r5, #0x1d + ldrh r2, [r0, #4] + mov r5, #0 + add r1, r2, r1 + strh r1, [r0, #4] +_02341F1C: + bl ov02_023419C8 + cmp r5, #0 + popne {r3, r4, r5, pc} + ldr r1, _02341F74 @ =0x0235AAEC + mov r0, #0x37 + ldrh r1, [r1, #4] + ldr r2, _02341F78 @ =0xE1FC780F + mul r3, r1, r0 + smull r1, r0, r2, r3 + add r0, r3, r0 + lsr r1, r3, #0x1f + add r0, r1, r0, asr #7 + bl ov02_02346FEC + bl ov02_02346AAC + bl ov02_0234217C + ldr r0, _02341F74 @ =0x0235AAEC + mov r1, r4 + ldr r2, [r0, #8] + mov r0, #0 + str r0, [r2, #0x38] + bl ov02_0234FB40 + pop {r3, r4, r5, pc} + .align 2, 0 +_02341F74: .4byte 0x0235AAEC +_02341F78: .4byte 0xE1FC780F + arm_func_end ov02_02341EB4 + + arm_func_start ov02_02341F7C +ov02_02341F7C: @ 0x02341F7C + push {r4, lr} + mov r4, r0 + bl ov02_02346AC4 + bl ov02_0233519C + ldr r0, _02342018 @ =0x0235AAEC + mov r1, #0x1d + ldrh r2, [r0, #4] + add r2, r2, #6 + strh r2, [r0, #4] + ldrh r0, [r0, #4] + bl FUN_02075C38 + cmp r0, #6 + blt _02341FB8 + bl ov02_023419C8 + pop {r4, pc} +_02341FB8: + ldr r1, _02342018 @ =0x0235AAEC + ldrh r2, [r1, #4] + sub r0, r2, r0 + strh r0, [r1, #4] + bl ov02_02341294 + ldr r1, _02342018 @ =0x0235AAEC + mov r0, #0x37 + ldrh r1, [r1, #4] + ldr r2, _0234201C @ =0xE1FC780F + mul r3, r1, r0 + smull r1, r0, r2, r3 + add r0, r3, r0 + lsr r1, r3, #0x1f + add r0, r1, r0, asr #7 + bl ov02_02346FEC + bl ov02_02346AAC + bl ov02_0234217C + ldr r0, _02342018 @ =0x0235AAEC + mov r1, r4 + ldr r2, [r0, #8] + mov r0, #0 + str r0, [r2, #0x38] + bl ov02_0234FB40 + pop {r4, pc} + .align 2, 0 +_02342018: .4byte 0x0235AAEC +_0234201C: .4byte 0xE1FC780F + arm_func_end ov02_02341F7C + + arm_func_start ov02_02342020 +ov02_02342020: @ 0x02342020 + push {r4, lr} + ldr r0, _02342094 @ =0x0235AAEC + ldr r1, [r0, #8] + ldrb r1, [r1, #0x44] + cmp r1, #0 + popeq {r4, pc} + ldrh r0, [r0, #4] + mov r1, #0x1d + bl FUN_02075BFC + ldr r1, _02342094 @ =0x0235AAEC + mov r4, r0 + ldrh r0, [r1, #4] + mov r1, #0x1d + bl FUN_02075C38 + ldr r2, _02342098 @ =0x02352BC4 + ldr r1, _0234209C @ =0x01FF0000 + sub ip, r0, #0x33 + ldrb r0, [r2, r4] + ldr r2, _023420A0 @ =0x04000010 + and r3, r1, ip, lsl #16 + add r0, ip, r0 + str r3, [r2] + and r1, r1, r0, lsl #16 + ldr r0, _02342094 @ =0x0235AAEC + str r1, [r2, #8] + ldr r0, [r0, #8] + mov r1, #0 + strb r1, [r0, #0x44] + pop {r4, pc} + .align 2, 0 +_02342094: .4byte 0x0235AAEC +_02342098: .4byte 0x02352BC4 +_0234209C: .4byte 0x01FF0000 +_023420A0: .4byte 0x04000010 + arm_func_end ov02_02342020 + + arm_func_start ov02_023420A4 +ov02_023420A4: @ 0x023420A4 + push {r3, lr} + sub sp, sp, #0x18 + ldr ip, _02342168 @ =0x02352AF4 + add r3, sp, #8 + mov r2, #7 +_023420B8: + ldrb r1, [ip] + ldrb r0, [ip, #1] + add ip, ip, #2 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + bne _023420B8 + ldr r0, _0234216C @ =0x0235AAEC + add r1, sp, #8 + ldrb r2, [r0] + ldrb r2, [r1, r2] + cmp r2, #3 + blt _0234211C + lsl r3, r2, #3 + ldr r1, _02342170 @ =0x02352B7E + ldr r2, _02342174 @ =0x02352B82 + ldr r0, _02342178 @ =0x02352B80 + ldrh r1, [r1, r3] + ldrh r2, [r2, r3] + ldrh r3, [r0, r3] + mov r0, #3 + bl ov02_02334FF0 + add sp, sp, #0x18 + pop {r3, pc} +_0234211C: + ldr r1, _02342170 @ =0x02352B7E + lsl lr, r2, #3 + add ip, r1, r2, lsl #3 + ldrb r2, [r0, #2] + ldrh r3, [ip, #2] + mov r0, #0x1d + ldrh r1, [r1, lr] + mla r0, r2, r0, r3 + strh r0, [sp, #2] + ldrh r2, [ip, #4] + ldrh ip, [ip, #6] + ldrh r3, [sp, #2] + mov r0, #1 + strh r1, [sp] + strh r2, [sp, #4] + strh ip, [sp, #6] + bl ov02_02334FF0 + add sp, sp, #0x18 + pop {r3, pc} + .align 2, 0 +_02342168: .4byte 0x02352AF4 +_0234216C: .4byte 0x0235AAEC +_02342170: .4byte 0x02352B7E +_02342174: .4byte 0x02352B82 +_02342178: .4byte 0x02352B80 + arm_func_end ov02_023420A4 + + arm_func_start ov02_0234217C +ov02_0234217C: @ 0x0234217C + push {r4, lr} + ldr r0, _02342224 @ =0x0235AAEC + ldrb r0, [r0] + add r0, r0, #0xf5 + and r0, r0, #0xff + cmp r0, #2 + bhi _023421A0 + bl ov02_023420A4 + pop {r4, pc} +_023421A0: + bl ov02_02347518 + ldr r1, _02342224 @ =0x0235AAEC + mov r4, r0 + ldrh r0, [r1, #4] + mov r1, #0x1d + bl FUN_02075BFC + ldr r1, _02342224 @ =0x0235AAEC + ldrb r2, [r1, #2] + add r2, r2, r0 + cmp r2, #2 + beq _023421D8 + cmp r2, #6 + beq _023421F4 + b _02342210 +_023421D8: + ldrb r0, [r4, #0xf5] + cmp r0, #0 + movne r0, #2 + strbne r0, [r1] + moveq r0, #3 + strbeq r0, [r1] + b _0234221C +_023421F4: + ldrb r0, [r4, #0xf6] + cmp r0, #0 + movne r0, #7 + strbne r0, [r1] + moveq r0, #8 + strbeq r0, [r1] + b _0234221C +_02342210: + ldr r0, _02342228 @ =0x02352BB8 + ldrb r0, [r0, r2] + strb r0, [r1] +_0234221C: + bl ov02_023420A4 + pop {r4, pc} + .align 2, 0 +_02342224: .4byte 0x0235AAEC +_02342228: .4byte 0x02352BB8 + arm_func_end ov02_0234217C + + arm_func_start ov02_0234222C +ov02_0234222C: @ 0x0234222C + push {r3, lr} + ldr r1, _02342254 @ =0x0235AAEC + ldr r2, _02342258 @ =0x02352BD0 + strb r0, [r1] + ldrb r0, [r2, r0] + bl ov02_02341E4C + ldr r1, _02342254 @ =0x0235AAEC + strb r0, [r1, #2] + bl ov02_023420A4 + pop {r3, pc} + .align 2, 0 +_02342254: .4byte 0x0235AAEC +_02342258: .4byte 0x02352BD0 + arm_func_end ov02_0234222C + + arm_func_start ov02_0234225C +ov02_0234225C: @ 0x0234225C + push {r3, r4, r5, lr} + mov r5, r0 + bl ov02_02347518 + ldr r1, _02342540 @ =0x0235AAEC + mov r4, #0 + ldrb r2, [r1] + cmp r2, #8 + ldrbeq r0, [r0, #0xf5] + cmpeq r0, #0 + bne _02342290 + cmp r5, #0 + cmpne r5, #2 + popeq {r3, r4, r5, pc} +_02342290: + cmp r2, #0 + bgt _023422A0 + beq _023422C0 + b _02342424 +_023422A0: + sub r0, r2, #0xa + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _02342424 +_023422B0: @ jump table + b _023422F8 @ case 0 + b _02342334 @ case 1 + b _0234239C @ case 2 + b _0234239C @ case 3 +_023422C0: + cmp r5, #1 + bne _023422D8 + ldr r0, _02342540 @ =0x0235AAEC + mov r1, #0xb + strb r1, [r0] + b _02342520 +_023422D8: + cmp r5, #3 + movne r4, #2 + bne _02342520 + ldr r0, _02342540 @ =0x0235AAEC + ldrb r1, [r0, #2] + add r1, r1, #1 + strb r1, [r0, #2] + b _02342520 +_023422F8: + cmp r5, #1 + bne _02342314 + ldr r0, _02342540 @ =0x0235AAEC + ldrb r1, [r0, #2] + sub r1, r1, #1 + strb r1, [r0, #2] + b _02342520 +_02342314: + cmp r5, #3 + movne r4, #2 + bne _02342520 + ldr r0, _02342540 @ =0x0235AAEC + ldr r1, [r0, #8] + ldrb r1, [r1, #0x42] + strb r1, [r0] + b _02342520 +_02342334: + cmp r5, #1 + bne _0234236C + ldr r0, _02342540 @ =0x0235AAEC + ldr r0, [r0, #8] + ldrb r0, [r0, #0x47] + cmp r0, #0 + popne {r3, r4, r5, pc} + mov r0, #9 + bl ov02_023480E0 + ldr r0, _02342540 @ =0x0235AAEC + mov r1, #1 + ldr r0, [r0, #8] + strb r1, [r0, #0x47] + pop {r3, r4, r5, pc} +_0234236C: + cmp r5, #3 + movne r4, #2 + bne _02342520 + ldr r0, _02342540 @ =0x0235AAEC + mov r1, #0 + strb r1, [r0] + strb r1, [r0, #2] + strh r1, [r0, #4] + bl ov02_02341294 + mov r0, #0 + bl ov02_02346FEC + b _02342520 +_0234239C: + ldr r0, _02342540 @ =0x0235AAEC + cmp r5, #1 + ldr r1, [r0, #8] + strb r2, [r1, #0x42] + bne _023423D8 + mov r1, #0xa + strb r1, [r0] + mov r1, #3 + strb r1, [r0, #2] + mov r1, #0x91 + strh r1, [r0, #4] + bl ov02_02341294 + mov r0, #0x37 + bl ov02_02346FEC + b _02342520 +_023423D8: + cmp r5, #3 + bne _0234240C + ldr r0, [r0, #8] + ldrb r0, [r0, #0x47] + cmp r0, #0 + popne {r3, r4, r5, pc} + mov r0, #9 + bl ov02_023480E0 + ldr r0, _02342540 @ =0x0235AAEC + mov r1, #1 + ldr r0, [r0, #8] + strb r1, [r0, #0x47] + pop {r3, r4, r5, pc} +_0234240C: + cmp r2, #0xc + moveq r1, #0xd + strbeq r1, [r0] + movne r1, #0xc + strbne r1, [r0] + b _02342520 +_02342424: + cmp r5, #1 + bne _02342470 + ldr r0, _02342540 @ =0x0235AAEC + ldrb r1, [r0, #2] + cmp r1, #0 + subne r1, r1, #1 + strbne r1, [r0, #2] + bne _02342520 + mov r0, #0x13 + bl ov02_023480E0 + mov r0, #0 + ldr r1, _02342544 @ =ov02_02341EB4 + mov r2, r0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _02342540 @ =0x0235AAEC + ldr r1, [r1, #8] + str r0, [r1, #0x38] + pop {r3, r4, r5, pc} +_02342470: + cmp r5, #3 + bne _023424BC + ldr r0, _02342540 @ =0x0235AAEC + ldrb r1, [r0, #2] + cmp r1, #3 + addlo r1, r1, #1 + strblo r1, [r0, #2] + blo _02342520 + mov r0, #0x13 + bl ov02_023480E0 + mov r0, #0 + ldr r1, _02342548 @ =ov02_02341F7C + mov r2, r0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _02342540 @ =0x0235AAEC + ldr r1, [r1, #8] + str r0, [r1, #0x38] + pop {r3, r4, r5, pc} +_023424BC: + cmp r2, #2 + mov r4, #2 + bne _023424D8 + ldr r0, _02342540 @ =0x0235AAEC + mov r1, #3 + strb r1, [r0] + b _02342514 +_023424D8: + cmp r2, #3 + ldreq r0, _02342540 @ =0x0235AAEC + strbeq r4, [r0] + beq _02342514 + cmp r2, #7 + bne _02342500 + ldr r0, _02342540 @ =0x0235AAEC + mov r1, #8 + strb r1, [r0] + b _02342514 +_02342500: + cmp r2, #8 + bne _02342520 + ldr r0, _02342540 @ =0x0235AAEC + mov r1, #7 + strb r1, [r0] +_02342514: + mov r0, #8 + bl ov02_023480E0 + bl ov02_023420A4 +_02342520: + cmp r4, #2 + popeq {r3, r4, r5, pc} + mov r0, #8 + bl ov02_023480E0 + cmp r4, #0 + popne {r3, r4, r5, pc} + bl ov02_0234217C + pop {r3, r4, r5, pc} + .align 2, 0 +_02342540: .4byte 0x0235AAEC +_02342544: .4byte ov02_02341EB4 +_02342548: .4byte ov02_02341F7C + arm_func_end ov02_0234225C + + arm_func_start ov02_0234254C +ov02_0234254C: @ 0x0234254C + ldr r0, _02342574 @ =0x0235AAEC + ldr r1, _02342578 @ =0x02352AD4 + ldrb r2, [r0] + ldr r0, [r0, #8] + ldr ip, _0234257C @ =ov02_023468A0 + sub r2, r2, #0xb + ldrb r1, [r1, r2] + ldr r0, [r0, #0x10] + mov r2, r1 + bx ip + .align 2, 0 +_02342574: .4byte 0x0235AAEC +_02342578: .4byte 0x02352AD4 +_0234257C: .4byte ov02_023468A0 + arm_func_end ov02_0234254C + + arm_func_start ov02_02342580 +ov02_02342580: @ 0x02342580 + push {r3, r4, r5, lr} + ldr r5, _023425D0 @ =0x0235AAEC + mov r4, #0 +_0234258C: + ldr r0, [r5, #8] + add r1, r0, r4 + ldrb r0, [r1, #4] + cmp r0, #0 + beq _023425C0 + sub r0, r0, #1 + strb r0, [r1, #4] + ldr r0, [r5, #8] + add r0, r0, r4 + ldrb r0, [r0, #4] + cmp r0, #0 + bne _023425C0 + bl ov02_02341294 +_023425C0: + add r4, r4, #1 + cmp r4, #4 + blt _0234258C + pop {r3, r4, r5, pc} + .align 2, 0 +_023425D0: .4byte 0x0235AAEC + arm_func_end ov02_02342580 + + arm_func_start ov02_023425D4 +ov02_023425D4: @ 0x023425D4 + stmdb sp!, {r3} + sub sp, sp, #4 + ldr r1, _02342690 @ =0x02352AD8 + ldr r0, _02342694 @ =0x0235AAEC + ldrb r3, [r1] + ldrb r2, [r1, #1] + ldrb ip, [r0] + strb r3, [sp] + strb r2, [sp, #1] + ldrb r2, [r1, #2] + ldrb r0, [r1, #3] + add r1, sp, #0 + mov r3, #0 + strb r2, [sp, #2] + strb r0, [sp, #3] +_02342610: + ldrb r0, [r1] + cmp ip, r0 + bne _02342674 + ldr r0, _02342694 @ =0x0235AAEC + mov r2, #0x14 + ldr r1, [r0, #8] + tst r3, #1 + add r1, r1, r3 + strb r2, [r1, #4] + ldr r1, [r0, #8] + beq _02342658 + sub r0, r3, #1 + add r0, r1, r0 + mov r1, #0 + strb r1, [r0, #4] + add sp, sp, #4 + ldm sp!, {r3} + bx lr +_02342658: + add r0, r3, #1 + add r0, r1, r0 + mov r1, #0 + strb r1, [r0, #4] + add sp, sp, #4 + ldm sp!, {r3} + bx lr +_02342674: + add r3, r3, #1 + cmp r3, #4 + add r1, r1, #1 + blt _02342610 + add sp, sp, #4 + ldm sp!, {r3} + bx lr + .align 2, 0 +_02342690: .4byte 0x02352AD8 +_02342694: .4byte 0x0235AAEC + arm_func_end ov02_023425D4 + + arm_func_start ov02_02342698 +ov02_02342698: @ 0x02342698 + push {r4, lr} + bl ov02_02347518 + mov r4, r0 + ldrb r0, [r4, #0x40] + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} + ldrb r0, [r4, #0xf6] + cmp r0, #0 + bne _023426E4 + add r0, r4, #0xc8 + bl FUN_022ED8C0 + cmp r0, #0 + bne _023426E4 + add r0, r4, #0xcc + bl FUN_022ED8C0 + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} +_023426E4: + ldrb r0, [r4, #0xf5] + cmp r0, #0 + bne _02342730 + add r0, r4, #0xc0 + bl FUN_022ED8C0 + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} + add r0, r4, #0xc4 + bl FUN_022ED8C0 + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} + add r0, r4, #0xc0 + add r1, r4, #0xf0 + bl FUN_022ED85C + cmp r0, #0 + moveq r0, #0 + popeq {r4, pc} +_02342730: + mov r0, #1 + pop {r4, pc} + arm_func_end ov02_02342698 + + arm_func_start ov02_02342738 +ov02_02342738: @ 0x02342738 + push {r3, lr} + bl ov02_02349704 + cmp r0, #0 + popne {r3, pc} + mov r0, #6 + bl ov02_023480E0 + bl ov02_023496C0 + ldr r0, _02342770 @ =0x0235AAEC + ldr r0, [r0, #8] + ldr r0, [r0, #0xc] + bl ov02_02346908 + ldr r0, _02342774 @ =0x02342778 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02342770: .4byte 0x0235AAEC +_02342774: .4byte 0x02342778 + arm_func_end ov02_02342738 +_02342778: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xE5, 0x1B, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18, 0x04, 0x00, 0x9F, 0xE5, 0x75, 0xD9, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0xA0, 0x07, 0x34, 0x02 + + arm_func_start ov02_02342798 +ov02_02342798: @ 0x02342798 + ldr r1, _023427A4 @ =0x0235AAEC + strb r0, [r1, #1] + bx lr + .align 2, 0 +_023427A4: .4byte 0x0235AAEC + arm_func_end ov02_02342798 +_023427A8: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x05, 0x00, 0x00, 0xEB + .byte 0xC3, 0xCA, 0xFF, 0xEB, 0x98, 0x14, 0x00, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0x69, 0xD9, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0x5C, 0x28, 0x34, 0x02 + + arm_func_start ov02_023427C8 +ov02_023427C8: @ 0x023427C8 + push {r3, lr} + ldr r0, _0234283C @ =0x02353A80 + ldr r1, _02342840 @ =0x02078310 + bl ov02_02334DA8 + ldr r0, _02342844 @ =0x02353A98 + ldr r1, _02342848 @ =FUN_02077CF8 + bl ov02_02334DA8 + ldr r0, _0234284C @ =0x02353AB0 + ldr r1, _02342850 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r2, _02342854 @ =0x04001008 + ldr r1, _02342858 @ =0x0400000A + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r2, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2, #2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_0234283C: .4byte 0x02353A80 +_02342840: .4byte 0x02078310 +_02342844: .4byte 0x02353A98 +_02342848: .4byte FUN_02077CF8 +_0234284C: .4byte 0x02353AB0 +_02342850: .4byte FUN_020780D0 +_02342854: .4byte 0x04001008 +_02342858: .4byte 0x0400000A + arm_func_end ov02_023427C8 + + arm_func_start ov02_0234285C +ov02_0234285C: @ 0x0234285C + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #2 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #2 + mov r1, #0 + mov r2, #0x14 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #1 + mov r1, r0 + bl ov02_0234E3D0 + mov r0, #0 + mov r1, #0x14 + bl ov02_0234E3D0 + ldr r0, _023428AC @ =ov02_023428B0 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023428AC: .4byte ov02_023428B0 + arm_func_end ov02_0234285C + + arm_func_start ov02_023428B0 +ov02_023428B0: @ 0x023428B0 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r2, #1 + mov ip, #0 + sub r3, r2, #2 + mov r0, #0x44 + mov r1, #5 + str ip, [sp] + bl ov02_02349394 + ldr r0, _023428FC @ =0x02342900 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023428FC: .4byte 0x02342900 + arm_func_end ov02_023428B0 +_02342900: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x07, 0x00, 0x00, 0xEB, 0x07, 0x00, 0x00, 0xEB, 0x81, 0x1B, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18, 0x04, 0x00, 0x9F, 0xE5, 0x11, 0xD9, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0x30, 0x29, 0x34, 0x02 + + arm_func_start ov02_02342928 +ov02_02342928: @ 0x02342928 + bx lr + arm_func_end ov02_02342928 + + arm_func_start ov02_0234292C +ov02_0234292C: @ 0x0234292C + bx lr + arm_func_end ov02_0234292C + + arm_func_start ov02_02342930 +ov02_02342930: @ 0x02342930 + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #3 + mov r1, #0 + mov r2, #0x14 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _02342968 @ =ov02_0234296C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02342968: .4byte ov02_0234296C + arm_func_end ov02_02342930 + + arm_func_start ov02_0234296C +ov02_0234296C: @ 0x0234296C + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_02334D10 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 + mov r0, #0 + mov r1, #0x14 + bl ov02_0234E424 + mov r0, #2 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _023429C4 @ =ov02_02343DB0 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023429C4: .4byte ov02_02343DB0 + arm_func_end ov02_0234296C + + arm_func_start ov02_023429C8 +ov02_023429C8: @ 0x023429C8 + ldr r0, _023429E4 @ =0x027FFFA8 + ldrh r0, [r0] + and r0, r0, #0x8000 + asrs r0, r0, #0xf + movne r0, #1 + moveq r0, #0 + bx lr + .align 2, 0 +_023429E4: .4byte 0x027FFFA8 + arm_func_end ov02_023429C8 + + arm_func_start ov02_023429E8 +ov02_023429E8: @ 0x023429E8 + push {r3, lr} + ldr r0, _02342A1C @ =0x0235AAF8 + mov r1, #0 + strb r1, [r0] + bl ov02_02342A24 + bl ov02_023352C4 + mov r0, #0x25 + bl ov02_02334E70 + mov r0, #1 + bl ov02_023343DC + ldr r0, _02342A20 @ =ov02_02342AA4 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02342A1C: .4byte 0x0235AAF8 +_02342A20: .4byte ov02_02342AA4 + arm_func_end ov02_023429E8 + + arm_func_start ov02_02342A24 +ov02_02342A24: @ 0x02342A24 + push {r3, lr} + ldr r0, _02342A94 @ =0x02353AC4 + ldr r1, _02342A98 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _02342A9C @ =0x04001008 + ldr r1, _02342AA0 @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_02342A94: .4byte 0x02353AC4 +_02342A98: .4byte FUN_020780D0 +_02342A9C: .4byte 0x04001008 +_02342AA0: .4byte 0x0400000A + arm_func_end ov02_02342A24 + + arm_func_start ov02_02342AA4 +ov02_02342AA4: @ 0x02342AA4 + push {r3, lr} + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _02342AD4 @ =ov02_02342AD8 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02342AD4: .4byte ov02_02342AD8 + arm_func_end ov02_02342AA4 + + arm_func_start ov02_02342AD8 +ov02_02342AD8: @ 0x02342AD8 + push {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #1 + bl ov02_02334E38 + ldr r0, _02342B00 @ =0x02342B04 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02342B00: .4byte 0x02342B04 + arm_func_end ov02_02342AD8 +_02342B04: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xF3, 0xC6, 0xFF, 0xEB, 0x01, 0x10, 0xE0, 0xE3 + .byte 0x01, 0x00, 0x50, 0xE1, 0x08, 0x80, 0xBD, 0x08, 0x0C, 0xC7, 0xFF, 0xEB, 0x04, 0x00, 0x9F, 0xE5 + .byte 0x90, 0xD8, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x2C, 0x2B, 0x34, 0x02, 0x08, 0x40, 0x2D, 0xE9 + .byte 0x0A, 0x00, 0xA0, 0xE3, 0xF6, 0xDB, 0xF4, 0xEB, 0x74, 0x00, 0x00, 0xEB, 0x02, 0x00, 0x00, 0xEB + .byte 0x0F, 0x00, 0x00, 0xEB, 0x0F, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_02342B4C +ov02_02342B4C: @ 0x02342B4C + push {r3, lr} + mov r0, #2 + bl ov02_0234EBBC + cmp r0, #0 + beq _02342B6C + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} +_02342B6C: + bl ov02_023429C8 + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} + arm_func_end ov02_02342B4C + + arm_func_start ov02_02342B84 +ov02_02342B84: @ 0x02342B84 + bx lr + arm_func_end ov02_02342B84 + + arm_func_start ov02_02342B88 +ov02_02342B88: @ 0x02342B88 + push {r3, lr} + bl ov02_023346DC + cmp r0, #0 + popne {r3, pc} + bl ov02_02348148 + mov r0, #7 + bl ov02_023480E0 + ldr r0, _02342BB0 @ =0x02342BB4 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02342BB0: .4byte 0x02342BB4 + arm_func_end ov02_02342B88 +_02342BB4: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xEA, 0xC6, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE3 + .byte 0xC6, 0x2B, 0x00, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0x66, 0xD8, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0xD4, 0x2B, 0x34, 0x02 + + arm_func_start ov02_02342BD4 +ov02_02342BD4: @ 0x02342BD4 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + ldr r0, _02342C40 @ =0x0235AAF8 + ldrb r0, [r0] + cmp r0, #0 + bne _02342BFC + bl ov02_023346AC +_02342BFC: + ldr r0, _02342C40 @ =0x0235AAF8 + ldrb r0, [r0] + cmp r0, #0 + bne _02342C20 + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 +_02342C20: + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _02342C44 @ =ov02_02342C48 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02342C40: .4byte 0x0235AAF8 +_02342C44: .4byte ov02_02342C48 + arm_func_end ov02_02342BD4 + + arm_func_start ov02_02342C48 +ov02_02342C48: @ 0x02342C48 + push {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + ldr r0, _02342D04 @ =0x0235AAF8 + ldrb r0, [r0] + cmp r0, #0 + bne _02342C7C + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} +_02342C7C: + bl ov02_02334724 + cmp r0, #0 + popeq {r3, pc} + bl ov02_023344AC + mov r0, #0 + bl ov02_0234E02C + ldr r0, _02342D04 @ =0x0235AAF8 + ldrb r0, [r0] + cmp r0, #0 + bne _02342CB4 + bl ov02_02334D10 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 +_02342CB4: + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + ldr r0, _02342D04 @ =0x0235AAF8 + ldrb r0, [r0] + cmp r0, #0 + bne _02342CEC + bl ov02_0233944C + mov r0, #2 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _02342D08 @ =ov02_02344AF0 + bl ov02_02338D68 + pop {r3, pc} +_02342CEC: + mov r0, #0 + mov r1, r0 + bl ov02_02338D78 + ldr r0, _02342D0C @ =ov02_02342E00 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02342D04: .4byte 0x0235AAF8 +_02342D08: .4byte ov02_02344AF0 +_02342D0C: .4byte ov02_02342E00 + arm_func_end ov02_02342C48 + + arm_func_start ov02_02342D10 +ov02_02342D10: @ 0x02342D10 + push {r3, lr} + bl ov02_02339470 + cmp r0, #2 + beq _02342D2C + cmp r0, #4 + beq _02342D44 + pop {r3, pc} +_02342D2C: + ldr r1, _02342D88 @ =0x0235AAF8 + mov r2, #1 + ldr r0, _02342D8C @ =0x02342BB4 + strb r2, [r1] + bl ov02_02338D68 + pop {r3, pc} +_02342D44: + ldr r0, _02342D88 @ =0x0235AAF8 + mov r1, #0 + strb r1, [r0] + bl ov02_02348148 + mov r0, #9 + bl ov02_023480E0 + mov r1, #1 + mov ip, #0 + mov r2, r1 + sub r3, r1, #2 + mov r0, #0xd + str ip, [sp] + bl ov02_02349394 + bl ov02_02334768 + ldr r0, _02342D90 @ =ov02_02342D94 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02342D88: .4byte 0x0235AAF8 +_02342D8C: .4byte 0x02342BB4 +_02342D90: .4byte ov02_02342D94 + arm_func_end ov02_02342D10 + + arm_func_start ov02_02342D94 +ov02_02342D94: @ 0x02342D94 + push {r3, lr} + bl ov02_02349704 + cmp r0, #0 + popne {r3, pc} + mov r0, #6 + bl ov02_023480E0 + bl ov02_023496C0 + ldr r0, _02342DBC @ =0x02342DC0 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02342DBC: .4byte 0x02342DC0 + arm_func_end ov02_02342D94 +_02342DC0: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x53, 0x1A, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18 + .byte 0x04, 0x00, 0x9F, 0xE5, 0xE3, 0xD7, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0xB4, 0x2B, 0x34, 0x02 + + arm_func_start ov02_02342DE0 +ov02_02342DE0: @ 0x02342DE0 + ldr r0, _02342DFC @ =0x027FFFA8 + ldrh r0, [r0] + and r0, r0, #0x8000 + asrs r0, r0, #0xf + movne r0, #1 + moveq r0, #0 + bx lr + .align 2, 0 +_02342DFC: .4byte 0x027FFFA8 + arm_func_end ov02_02342DE0 + + arm_func_start ov02_02342E00 +ov02_02342E00: @ 0x02342E00 + push {r3, lr} + ldr r0, _02342E34 @ =0x0235AAFC + mov r1, #0 + strb r1, [r0] + bl ov02_02342E3C + bl ov02_023352C4 + mov r0, #0x2a + bl ov02_02334E70 + mov r0, #2 + bl ov02_023343DC + ldr r0, _02342E38 @ =ov02_02342EBC + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02342E34: .4byte 0x0235AAFC +_02342E38: .4byte ov02_02342EBC + arm_func_end ov02_02342E00 + + arm_func_start ov02_02342E3C +ov02_02342E3C: @ 0x02342E3C + push {r3, lr} + ldr r0, _02342EAC @ =0x02353AD8 + ldr r1, _02342EB0 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _02342EB4 @ =0x04001008 + ldr r1, _02342EB8 @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_02342EAC: .4byte 0x02353AD8 +_02342EB0: .4byte FUN_020780D0 +_02342EB4: .4byte 0x04001008 +_02342EB8: .4byte 0x0400000A + arm_func_end ov02_02342E3C + + arm_func_start ov02_02342EBC +ov02_02342EBC: @ 0x02342EBC + push {r3, lr} + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _02342EEC @ =ov02_02342EF0 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02342EEC: .4byte ov02_02342EF0 + arm_func_end ov02_02342EBC + + arm_func_start ov02_02342EF0 +ov02_02342EF0: @ 0x02342EF0 + push {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #1 + bl ov02_02334E38 + ldr r0, _02342F18 @ =0x02342F1C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02342F18: .4byte 0x02342F1C + arm_func_end ov02_02342EF0 +_02342F1C: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0xED, 0xC5, 0xFF, 0xEB, 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x08, 0x80, 0xBD, 0x08 + .byte 0x06, 0xC6, 0xFF, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0x8A, 0xD7, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x44, 0x2F, 0x34, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x0A, 0x00, 0xA0, 0xE3, 0xF0, 0xDA, 0xF4, 0xEB + .byte 0x6D, 0x00, 0x00, 0xEB, 0x02, 0x00, 0x00, 0xEB, 0x0F, 0x00, 0x00, 0xEB, 0x0F, 0x00, 0x00, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_02342F64 +ov02_02342F64: @ 0x02342F64 + push {r3, lr} + mov r0, #2 + bl ov02_0234EBBC + cmp r0, #0 + beq _02342F84 + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} +_02342F84: + bl ov02_02342DE0 + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} + arm_func_end ov02_02342F64 + + arm_func_start ov02_02342F9C +ov02_02342F9C: @ 0x02342F9C + bx lr + arm_func_end ov02_02342F9C + + arm_func_start ov02_02342FA0 +ov02_02342FA0: @ 0x02342FA0 + push {r3, lr} + bl ov02_023346DC + cmp r0, #0 + popne {r3, pc} + bl ov02_02348148 + mov r0, #7 + bl ov02_023480E0 + ldr r0, _02342FC8 @ =0x02342FCC + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02342FC8: .4byte 0x02342FCC + arm_func_end ov02_02342FA0 +_02342FCC: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0xE4, 0xC5, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE3, 0xC0, 0x2A, 0x00, 0xEB, 0x04, 0x00, 0x9F, 0xE5 + .byte 0x60, 0xD7, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0xEC, 0x2F, 0x34, 0x02 + + arm_func_start ov02_02342FEC +ov02_02342FEC: @ 0x02342FEC + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_023346AC + ldr r0, _02343048 @ =0x0235AAFC + ldrb r0, [r0] + cmp r0, #0 + bne _02343028 + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 +_02343028: + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _0234304C @ =ov02_02343050 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02343048: .4byte 0x0235AAFC +_0234304C: .4byte ov02_02343050 + arm_func_end ov02_02342FEC + + arm_func_start ov02_02343050 +ov02_02343050: @ 0x02343050 + push {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + ldr r0, _02343100 @ =0x0235AAFC + ldrb r0, [r0] + cmp r0, #0 + bne _02343084 + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} +_02343084: + bl ov02_02334724 + cmp r0, #0 + popeq {r3, pc} + bl ov02_023344AC + mov r0, #0 + bl ov02_0234E02C + ldr r0, _02343100 @ =0x0235AAFC + ldrb r0, [r0] + cmp r0, #0 + bne _023430BC + bl ov02_02334D10 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 +_023430BC: + bl ov02_0233944C + ldr r0, _02343100 @ =0x0235AAFC + ldrb r0, [r0] + cmp r0, #0 + bne _023430E8 + mov r0, #2 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _02343104 @ =ov02_02344AF0 + bl ov02_02338D68 + pop {r3, pc} +_023430E8: + mov r0, #0 + mov r1, r0 + bl ov02_02338D78 + ldr r0, _02343108 @ =ov02_02343230 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02343100: .4byte 0x0235AAFC +_02343104: .4byte ov02_02344AF0 +_02343108: .4byte ov02_02343230 + arm_func_end ov02_02343050 + + arm_func_start ov02_0234310C +ov02_0234310C: @ 0x0234310C + push {r3, lr} + bl ov02_02339470 + cmp r0, #3 + beq _02343130 + cmp r0, #4 + beq _02343150 +_02343124: + cmp r0, #5 + beq _02343194 + pop {r3, pc} +_02343130: + ldr r0, _023431D8 @ =0x0235AAFC + mov r1, #1 + strb r1, [r0] + bl ov02_02348148 + bl ov02_0233952C + ldr r0, _023431DC @ =0x02342FCC + bl ov02_02338D68 + pop {r3, pc} +_02343150: + ldr r0, _023431D8 @ =0x0235AAFC + mov r1, #0 + strb r1, [r0] + bl ov02_02348148 + mov r0, #9 + bl ov02_023480E0 + mov r1, #1 + mov ip, #0 + mov r2, r1 + sub r3, r1, #2 + mov r0, #0xd + str ip, [sp] + bl ov02_02349394 + bl ov02_02334768 + ldr r0, _023431E0 @ =ov02_023431E4 + bl ov02_02338D68 + pop {r3, pc} +_02343194: + ldr r0, _023431D8 @ =0x0235AAFC + mov r1, #0 + strb r1, [r0] + bl ov02_02348148 + mov r0, #0x12 + bl ov02_023480E0 + mov r1, #1 + mov ip, #0 + mov r2, r1 + sub r3, r1, #2 + mov r0, #0xe + str ip, [sp] + bl ov02_02349394 + bl ov02_02334768 + ldr r0, _023431E0 @ =ov02_023431E4 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023431D8: .4byte 0x0235AAFC +_023431DC: .4byte 0x02342FCC +_023431E0: .4byte ov02_023431E4 + arm_func_end ov02_0234310C + + arm_func_start ov02_023431E4 +ov02_023431E4: @ 0x023431E4 + push {r3, lr} + bl ov02_02349704 + cmp r0, #0 + popne {r3, pc} + mov r0, #6 + bl ov02_023480E0 + bl ov02_023496C0 + ldr r0, _0234320C @ =0x02343210 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0234320C: .4byte 0x02343210 + arm_func_end ov02_023431E4 +_02343210: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x3F, 0x19, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18 + .byte 0x04, 0x00, 0x9F, 0xE5, 0xCF, 0xD6, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0xCC, 0x2F, 0x34, 0x02 + + arm_func_start ov02_02343230 +ov02_02343230: @ 0x02343230 + push {r3, lr} + ldr r0, _02343264 @ =0x0235AB00 + mov r1, #0 + strb r1, [r0] + bl ov02_0234326C + bl ov02_023352C4 + mov r0, #0x26 + bl ov02_02334E70 + mov r0, #0x10 + bl ov02_023480E0 + ldr r0, _02343268 @ =ov02_023432EC + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02343264: .4byte 0x0235AB00 +_02343268: .4byte ov02_023432EC + arm_func_end ov02_02343230 + + arm_func_start ov02_0234326C +ov02_0234326C: @ 0x0234326C + push {r3, lr} + ldr r0, _023432DC @ =0x02353AEC + ldr r1, _023432E0 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _023432E4 @ =0x04001008 + ldr r1, _023432E8 @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_023432DC: .4byte 0x02353AEC +_023432E0: .4byte FUN_020780D0 +_023432E4: .4byte 0x04001008 +_023432E8: .4byte 0x0400000A + arm_func_end ov02_0234326C + + arm_func_start ov02_023432EC +ov02_023432EC: @ 0x023432EC + push {r3, lr} + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _0234331C @ =0x02343320 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0234331C: .4byte 0x02343320 + arm_func_end ov02_023432EC +_02343320: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x00, 0x00, 0xA0, 0xE3, 0x63, 0x29, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x08, 0x80, 0xBD, 0x18, 0x04, 0x00, 0x9F, 0xE5, 0x8A, 0xD6, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x44, 0x33, 0x34, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x2D, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x00, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_02343354 +ov02_02343354: @ 0x02343354 + bx lr + arm_func_end ov02_02343354 + + arm_func_start ov02_02343358 +ov02_02343358: @ 0x02343358 + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _02343390 @ =ov02_02343394 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02343390: .4byte ov02_02343394 + arm_func_end ov02_02343358 + + arm_func_start ov02_02343394 +ov02_02343394: @ 0x02343394 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234E02C + bl ov02_02334D10 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + mov r0, #0 + mov r1, r0 + bl ov02_02338D78 + mov r0, #0 + mov r1, #1 + bl ov02_02338DB4 + ldr r0, _02343400 @ =ov02_02345968 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02343400: .4byte ov02_02345968 + arm_func_end ov02_02343394 + + arm_func_start ov02_02343404 +ov02_02343404: @ 0x02343404 + push {r3, lr} + ldr r0, _02343430 @ =0x0235AB00 + ldrb r1, [r0] + add r2, r1, #1 + and r1, r2, #0xff + strb r2, [r0] + cmp r1, #0x78 + poplo {r3, pc} + ldr r0, _02343434 @ =ov02_02343358 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02343430: .4byte 0x0235AB00 +_02343434: .4byte ov02_02343358 + arm_func_end ov02_02343404 + + arm_func_start ov02_02343438 +ov02_02343438: @ 0x02343438 + ldr r0, _02343454 @ =0x027FFFA8 + ldrh r0, [r0] + and r0, r0, #0x8000 + asrs r0, r0, #0xf + movne r0, #1 + moveq r0, #0 + bx lr + .align 2, 0 +_02343454: .4byte 0x027FFFA8 + arm_func_end ov02_02343438 + + arm_func_start ov02_02343458 +ov02_02343458: @ 0x02343458 + push {r3, lr} + ldr r0, _023434AC @ =0x0235AB04 + mov r1, #0 + strb r1, [r0] + bl ov02_023434B4 + bl ov02_023352C4 + mov r0, #0x37 + sub r1, r0, #0x38 + mov r2, #0 + bl ov02_02334C3C + mov r0, #2 + bl ov02_02334DE8 + mov r0, #0x24 + bl ov02_02334E70 + mov r0, #0 + bl ov02_023343DC + mov r0, #0xb + bl ov02_023480E0 + ldr r0, _023434B0 @ =ov02_0234355C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023434AC: .4byte 0x0235AB04 +_023434B0: .4byte ov02_0234355C + arm_func_end ov02_02343458 + + arm_func_start ov02_023434B4 +ov02_023434B4: @ 0x023434B4 + push {r3, lr} + ldr r0, _0234353C @ =0x02353B00 + ldr r1, _02343540 @ =0x02078310 + bl ov02_02334DA8 + ldr r0, _02343544 @ =0x02353B18 + ldr r1, _02343548 @ =FUN_02077CF8 + bl ov02_02334DA8 + ldr r0, _0234354C @ =0x02353B30 + ldr r1, _02343550 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _02343554 @ =0x04001008 + ldr r1, _02343558 @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_0234353C: .4byte 0x02353B00 +_02343540: .4byte 0x02078310 +_02343544: .4byte 0x02353B18 +_02343548: .4byte FUN_02077CF8 +_0234354C: .4byte 0x02353B30 +_02343550: .4byte FUN_020780D0 +_02343554: .4byte 0x04001008 +_02343558: .4byte 0x0400000A + arm_func_end ov02_023434B4 + + arm_func_start ov02_0234355C +ov02_0234355C: @ 0x0234355C + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #2 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #1 + mov r1, r0 + bl ov02_0234E3D0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _023435AC @ =ov02_023435B0 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023435AC: .4byte ov02_023435B0 + arm_func_end ov02_0234355C + + arm_func_start ov02_023435B0 +ov02_023435B0: @ 0x023435B0 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_023393E0 + mov r0, #1 + bl ov02_02334E38 + ldr r0, _023435EC @ =0x023435F0 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023435EC: .4byte 0x023435F0 + arm_func_end ov02_023435B0 +_023435F0: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x38, 0xC4, 0xFF, 0xEB, 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1 + .byte 0x08, 0x80, 0xBD, 0x08, 0x51, 0xC4, 0xFF, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0xD5, 0xD5, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0x18, 0x36, 0x34, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x0A, 0x00, 0xA0, 0xE3 + .byte 0x3B, 0xD9, 0xF4, 0xEB, 0x74, 0x00, 0x00, 0xEB, 0x02, 0x00, 0x00, 0xEB, 0x0F, 0x00, 0x00, 0xEB + .byte 0x0F, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_02343638 +ov02_02343638: @ 0x02343638 + push {r3, lr} + mov r0, #2 + bl ov02_0234EBBC + cmp r0, #0 + beq _02343658 + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} +_02343658: + bl ov02_02343438 + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} + arm_func_end ov02_02343638 + + arm_func_start ov02_02343670 +ov02_02343670: @ 0x02343670 + bx lr + arm_func_end ov02_02343670 + + arm_func_start ov02_02343674 +ov02_02343674: @ 0x02343674 + push {r3, lr} + bl ov02_023346DC + cmp r0, #0 + popne {r3, pc} + bl ov02_02348148 + mov r0, #7 + bl ov02_023480E0 + ldr r0, _0234369C @ =0x023436A0 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0234369C: .4byte 0x023436A0 + arm_func_end ov02_02343674 +_023436A0: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x2F, 0xC4, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE3, 0x0B, 0x29, 0x00, 0xEB + .byte 0x04, 0x00, 0x9F, 0xE5, 0xAB, 0xD5, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0xC0, 0x36, 0x34, 0x02 + + arm_func_start ov02_023436C0 +ov02_023436C0: @ 0x023436C0 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + ldr r0, _0234372C @ =0x0235AB04 + ldrb r0, [r0] + cmp r0, #0 + bne _023436E8 + bl ov02_023346AC +_023436E8: + ldr r0, _0234372C @ =0x0235AB04 + ldrb r0, [r0] + cmp r0, #0 + bne _0234370C + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 +_0234370C: + mov r0, #3 + mov r1, #0 + mov r2, #0x14 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _02343730 @ =ov02_02343734 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0234372C: .4byte 0x0235AB04 +_02343730: .4byte ov02_02343734 + arm_func_end ov02_023436C0 + + arm_func_start ov02_02343734 +ov02_02343734: @ 0x02343734 + push {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + ldr r0, _023437F0 @ =0x0235AB04 + ldrb r0, [r0] + cmp r0, #0 + bne _02343768 + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} +_02343768: + bl ov02_02334724 + cmp r0, #0 + popeq {r3, pc} + bl ov02_023344AC + mov r0, #0 + bl ov02_0234E02C + ldr r0, _023437F0 @ =0x0235AB04 + ldrb r0, [r0] + cmp r0, #0 + bne _023437A0 + bl ov02_02334D10 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 +_023437A0: + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + ldr r0, _023437F0 @ =0x0235AB04 + ldrb r0, [r0] + cmp r0, #0 + bne _023437D8 + bl ov02_0233944C + mov r0, #2 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _023437F4 @ =ov02_02344AF0 + bl ov02_02338D68 + pop {r3, pc} +_023437D8: + mov r0, #0 + mov r1, r0 + bl ov02_02338D78 + ldr r0, _023437F8 @ =ov02_023429E8 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023437F0: .4byte 0x0235AB04 +_023437F4: .4byte ov02_02344AF0 +_023437F8: .4byte ov02_023429E8 + arm_func_end ov02_02343734 + + arm_func_start ov02_023437FC +ov02_023437FC: @ 0x023437FC + push {r3, lr} + bl ov02_02339470 + cmp r0, #1 + beq _02343818 + cmp r0, #4 + beq _02343830 + pop {r3, pc} +_02343818: + ldr r1, _02343874 @ =0x0235AB04 + mov r2, #1 + ldr r0, _02343878 @ =0x023436A0 + strb r2, [r1] + bl ov02_02338D68 + pop {r3, pc} +_02343830: + ldr r0, _02343874 @ =0x0235AB04 + mov r1, #0 + strb r1, [r0] + bl ov02_02348148 + mov r0, #9 + bl ov02_023480E0 + mov r1, #1 + mov ip, #0 + mov r2, r1 + sub r3, r1, #2 + mov r0, #0xd + str ip, [sp] + bl ov02_02349394 + bl ov02_02334768 + ldr r0, _0234387C @ =ov02_02343880 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02343874: .4byte 0x0235AB04 +_02343878: .4byte 0x023436A0 +_0234387C: .4byte ov02_02343880 + arm_func_end ov02_023437FC + + arm_func_start ov02_02343880 +ov02_02343880: @ 0x02343880 + push {r3, lr} + bl ov02_02349704 + cmp r0, #0 + popne {r3, pc} + mov r0, #6 + bl ov02_023480E0 + bl ov02_023496C0 + ldr r0, _023438A8 @ =0x023438AC + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023438A8: .4byte 0x023438AC + arm_func_end ov02_02343880 +_023438AC: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0x98, 0x17, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18, 0x04, 0x00, 0x9F, 0xE5 + .byte 0x28, 0xD5, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0xA0, 0x36, 0x34, 0x02 + + arm_func_start ov02_023438CC +ov02_023438CC: @ 0x023438CC + push {r3, lr} + ldr r0, _0234392C @ =0x0235AB08 + mov r1, #0 + strh r1, [r0, #2] + strb r1, [r0] + bl ov02_02343934 + mov r0, #0x33 + sub r1, r0, #0x34 + mov r2, #0 + bl ov02_02334C3C + bl ov02_023352C4 + mov r0, #2 + bl ov02_02334DE8 + mov r0, #0x33 + bl ov02_02334E70 + mov r0, #0 + bl ov02_023343DC + bl ov02_02347028 + bl ov02_02347090 + mov r0, #0xa + bl ov02_023480E0 + ldr r0, _02343930 @ =ov02_023439DC + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0234392C: .4byte 0x0235AB08 +_02343930: .4byte ov02_023439DC + arm_func_end ov02_023438CC + + arm_func_start ov02_02343934 +ov02_02343934: @ 0x02343934 + push {r3, lr} + ldr r0, _023439BC @ =0x02353B44 + ldr r1, _023439C0 @ =0x02078310 + bl ov02_02334DA8 + ldr r0, _023439C4 @ =0x02353B5C + ldr r1, _023439C8 @ =FUN_02077CF8 + bl ov02_02334DA8 + ldr r0, _023439CC @ =0x02353B74 + ldr r1, _023439D0 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _023439D4 @ =0x04001008 + ldr r1, _023439D8 @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_023439BC: .4byte 0x02353B44 +_023439C0: .4byte 0x02078310 +_023439C4: .4byte 0x02353B5C +_023439C8: .4byte FUN_02077CF8 +_023439CC: .4byte 0x02353B74 +_023439D0: .4byte FUN_020780D0 +_023439D4: .4byte 0x04001008 +_023439D8: .4byte 0x0400000A + arm_func_end ov02_02343934 + + arm_func_start ov02_023439DC +ov02_023439DC: @ 0x023439DC + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #2 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #1 + mov r1, r0 + bl ov02_0234E3D0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _02343A2C @ =ov02_02343A30 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02343A2C: .4byte ov02_02343A30 + arm_func_end ov02_023439DC + + arm_func_start ov02_02343A30 +ov02_02343A30: @ 0x02343A30 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #1 + bl ov02_02334E38 + ldr r0, _02343A68 @ =0x02343A6C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02343A68: .4byte 0x02343A6C + arm_func_end ov02_02343A30 +_02343A6C: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0x19, 0xC3, 0xFF, 0xEB, 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x08, 0x80, 0xBD, 0x08 + .byte 0x32, 0xC3, 0xFF, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0xB6, 0xD4, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x94, 0x3A, 0x34, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x4D, 0x00, 0x00, 0xEB, 0x55, 0x00, 0x00, 0xEB + .byte 0x55, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_02343AAC +ov02_02343AAC: @ 0x02343AAC + push {r3, lr} + sub sp, sp, #8 + ldr r0, _02343BC8 @ =0x0235AB08 + ldrh r1, [r0, #2] + add r1, r1, #1 + strh r1, [r0, #2] + ldrh r0, [r0, #2] + cmp r0, #0x12c + addlo sp, sp, #8 + poplo {r3, pc} + bl ov02_02348148 + add r0, sp, #4 + bl ov02_0234722C + cmp r0, #0 + bne _02343B2C + ldr r0, _02343BC8 @ =0x0235AB08 + mov r1, #1 + mov r3, #2 + strb r3, [r0] + mov ip, #0 + mov r2, r1 + sub r3, r1, #2 + mov r0, #0xf + str ip, [sp] + bl ov02_02349394 + mov r0, #0x12 + bl ov02_023480E0 + bl ov02_02334768 + ldr r0, _02343BCC @ =ov02_02343D64 + bl ov02_02338D68 + add sp, sp, #8 + pop {r3, pc} +_02343B2C: + cmp r0, #0 + mov r2, #0 + ble _02343B58 + ldr r3, [sp, #4] +_02343B3C: + ldrb r1, [r3, #0x28] + cmp r1, #2 + bne _02343B58 + add r2, r2, #1 + cmp r2, r0 + add r3, r3, #0x2a + blt _02343B3C +_02343B58: + cmp r2, r0 + bne _02343BA4 + ldr r0, _02343BC8 @ =0x0235AB08 + mov r1, #1 + mov r3, #3 + strb r3, [r0] + mov ip, #0 + mov r2, r1 + sub r3, r1, #2 + mov r0, #0xe + str ip, [sp] + bl ov02_02349394 + mov r0, #0x12 + bl ov02_023480E0 + bl ov02_02334768 + ldr r0, _02343BCC @ =ov02_02343D64 + bl ov02_02338D68 + add sp, sp, #8 + pop {r3, pc} +_02343BA4: + ldr r1, _02343BC8 @ =0x0235AB08 + mov r2, #1 + mov r0, #0xf + strb r2, [r1] + bl ov02_023480E0 + ldr r0, _02343BD0 @ =0x02343C28 + bl ov02_02338D68 + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_02343BC8: .4byte 0x0235AB08 +_02343BCC: .4byte ov02_02343D64 +_02343BD0: .4byte 0x02343C28 + arm_func_end ov02_02343AAC + + arm_func_start ov02_02343BD4 +ov02_02343BD4: @ 0x02343BD4 + push {r3, lr} + mov r0, #2 + bl ov02_0234EBBC + cmp r0, #0 + popeq {r3, pc} + bl ov02_02348148 + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} + arm_func_end ov02_02343BD4 + + arm_func_start ov02_02343BF8 +ov02_02343BF8: @ 0x02343BF8 + bx lr + arm_func_end ov02_02343BF8 + + arm_func_start ov02_02343BFC +ov02_02343BFC: @ 0x02343BFC + push {r3, lr} + bl ov02_023346DC + cmp r0, #0 + popne {r3, pc} + bl ov02_02348148 + mov r0, #7 + bl ov02_023480E0 + ldr r0, _02343C24 @ =0x02343C28 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02343C24: .4byte 0x02343C28 + arm_func_end ov02_02343BFC +_02343C28: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xCD, 0xC2, 0xFF, 0xEB + .byte 0x08, 0x00, 0xA0, 0xE3, 0xA9, 0x27, 0x00, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0x49, 0xD4, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0x48, 0x3C, 0x34, 0x02 + + arm_func_start ov02_02343C48 +ov02_02343C48: @ 0x02343C48 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_023346AC + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _02343C94 @ =ov02_02343C98 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02343C94: .4byte ov02_02343C98 + arm_func_end ov02_02343C48 + + arm_func_start ov02_02343C98 +ov02_02343C98: @ 0x02343C98 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_02334724 + cmp r0, #0 + popeq {r3, pc} +_02343CC8: + bl ov02_02347190 + cmp r0, #0 + beq _02343CC8 + bl ov02_023344AC + mov r0, #0 + bl ov02_0234E02C + bl ov02_02334D10 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + ldr r0, _02343D58 @ =0x0235AB08 + ldrb r0, [r0] + cmp r0, #1 + beq _02343D34 + bl ov02_0234705C + bl ov02_02347518 + ldrb r0, [r0, #0xf4] + bl ov02_0234793C + mov r0, #2 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _02343D5C @ =ov02_02344AF0 + bl ov02_02338D68 + pop {r3, pc} +_02343D34: + mov r0, #0 + mov r1, #1 + bl ov02_02338D78 + mov r0, #0 + mov r1, r0 + bl ov02_02338DB4 + ldr r0, _02343D60 @ =ov02_0233CEEC + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02343D58: .4byte 0x0235AB08 +_02343D5C: .4byte ov02_02344AF0 +_02343D60: .4byte ov02_0233CEEC + arm_func_end ov02_02343C98 + + arm_func_start ov02_02343D64 +ov02_02343D64: @ 0x02343D64 + push {r3, lr} + bl ov02_02349704 + cmp r0, #0 + popne {r3, pc} + mov r0, #6 + bl ov02_023480E0 + bl ov02_023496C0 + ldr r0, _02343D8C @ =0x02343D90 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02343D8C: .4byte 0x02343D90 + arm_func_end ov02_02343D64 +_02343D90: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x5F, 0x16, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18 + .byte 0x04, 0x00, 0x9F, 0xE5, 0xEF, 0xD3, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x28, 0x3C, 0x34, 0x02 + + arm_func_start ov02_02343DB0 +ov02_02343DB0: @ 0x02343DB0 + push {r3, lr} + mov r0, #0x20 + mov r1, #4 + bl ov02_0234E7B4 + ldr r1, _02343E08 @ =0x0235AB0C + mov r2, #0 + str r0, [r1, #4] + strb r2, [r0, #0x1d] + bl ov02_02343E10 + mov r0, #1 + bl ov02_02335268 + mov r0, #0x2f + sub r1, r0, #0x30 + mov r2, #0 + bl ov02_02334C3C + mov r0, #0 + bl ov02_02334DE8 + bl ov02_02343F20 + bl ov02_02344590 + ldr r0, _02343E0C @ =ov02_02344028 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02343E08: .4byte 0x0235AB0C +_02343E0C: .4byte ov02_02344028 + arm_func_end ov02_02343DB0 + + arm_func_start ov02_02343E10 +ov02_02343E10: @ 0x02343E10 + push {r3, lr} + sub sp, sp, #0x18 + ldr ip, _02343EF0 @ =0x02352BE8 + add r3, sp, #0 + mov r2, #0xb +_02343E24: + ldrb r1, [ip] + ldrb r0, [ip, #1] + add ip, ip, #2 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + bne _02343E24 + ldr r0, _02343EF4 @ =0x02353B88 + ldr r1, _02343EF8 @ =0x02077DA4 + bl ov02_02334DA8 + ldr r0, _02343EFC @ =0x02353B9C + ldr r1, _02343F00 @ =0x02078310 + bl ov02_02334DA8 + ldr r0, _02343F04 @ =0x02353BB4 + ldr r1, _02343F08 @ =FUN_02077CF8 + bl ov02_02334DA8 + ldr r0, _02343F0C @ =0x02353BCC + ldr r1, _02343F10 @ =FUN_020780D0 + bl ov02_02334DA8 + add r0, sp, #0 + bl ov02_02334D48 + mov r1, #0 + mov r2, #4 + bl ov02_0234CE84 + ldr r2, _02343F14 @ =0x0235AB0C + mov r1, #0x10 + ldr r2, [r2, #4] + str r0, [r2] + mov r0, #1 + bl ov02_0234E3D0 + ldr r2, _02343F18 @ =0x04001008 + ldr r1, _02343F1C @ =0x0400000A + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r2, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2, #2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + add sp, sp, #0x18 + pop {r3, pc} + .align 2, 0 +_02343EF0: .4byte 0x02352BE8 +_02343EF4: .4byte 0x02353B88 +_02343EF8: .4byte 0x02077DA4 +_02343EFC: .4byte 0x02353B9C +_02343F00: .4byte 0x02078310 +_02343F04: .4byte 0x02353BB4 +_02343F08: .4byte FUN_02077CF8 +_02343F0C: .4byte 0x02353BCC +_02343F10: .4byte FUN_020780D0 +_02343F14: .4byte 0x0235AB0C +_02343F18: .4byte 0x04001008 +_02343F1C: .4byte 0x0400000A + arm_func_end ov02_02343E10 + + arm_func_start ov02_02343F20 +ov02_02343F20: @ 0x02343F20 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sl, #0 + ldr r6, _0234401C @ =0x02352BFE + ldr r5, _02344020 @ =0x02352BDC + ldr r4, _02344024 @ =0x0235AB0C + mov fp, sl + mvn r7, #0 + mov r8, #3 +_02343F40: + mov r0, sl + bl ov02_02347924 + mov sb, r0 + cmp sb, #0xff + moveq sb, r8 + beq _02343FB4 + mov r0, fp + mov r1, #0x11 + mov r2, #1 + bl ov02_0234D6D8 + ldr r1, [r4, #4] + add r3, sl, #3 + add r1, r1, sl, lsl #2 + str r0, [r1, #0x10] + lsl r2, r3, #2 + ldr r0, [r4, #4] + add r3, r6, r3, lsl #2 + add r0, r0, sl, lsl #2 + ldrh r2, [r6, r2] + ldrh r3, [r3, #2] + ldr r0, [r0, #0x10] + mov r1, r7 + bl ov02_0234D440 + ldr r0, [r4, #4] + mov r1, r7 + add r0, r0, sl, lsl #2 + ldr r0, [r0, #0x10] + mov r2, #3 + bl ov02_0234D530 +_02343FB4: + ldrb r1, [r5, sb] + mov r0, #0 + mov r2, #1 + bl ov02_0234D6D8 + ldr r1, [r4, #4] + lsl r2, sl, #2 + add r1, r1, sl, lsl #2 + str r0, [r1, #4] + ldr r0, [r4, #4] + add r3, r6, sl, lsl #2 + add r0, r0, sl, lsl #2 + ldrh r2, [r6, r2] + ldrh r3, [r3, #2] + ldr r0, [r0, #4] + mov r1, r7 + bl ov02_0234D440 + ldr r0, [r4, #4] + mov r1, r7 + add r0, r0, sl, lsl #2 + ldr r0, [r0, #4] + mov r2, #3 + bl ov02_0234D530 + add sl, sl, #1 + cmp sl, #3 + blt _02343F40 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0234401C: .4byte 0x02352BFE +_02344020: .4byte 0x02352BDC +_02344024: .4byte 0x0235AB0C + arm_func_end ov02_02343F20 + + arm_func_start ov02_02344028 +ov02_02344028: @ 0x02344028 + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #2 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #2 + mov r1, #0 + mov r2, #0x14 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #1 + mov r1, r0 + bl ov02_0234E3D0 + mov r0, #0 + mov r1, #0x14 + bl ov02_0234E3D0 + ldr r0, _02344078 @ =ov02_0234407C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02344078: .4byte ov02_0234407C + arm_func_end ov02_02344028 + + arm_func_start ov02_0234407C +ov02_0234407C: @ 0x0234407C + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_02334E38 + ldr r0, _023440B4 @ =ov02_023440B8 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023440B4: .4byte ov02_023440B8 + arm_func_end ov02_0234407C + + arm_func_start ov02_023440B8 +ov02_023440B8: @ 0x023440B8 + push {r3, lr} + bl ov02_023346DC + mvn r1, #1 + cmp r0, r1 + popeq {r3, pc} + bl ov02_023487D0 + cmp r0, #1 + popeq {r3, pc} + bl ov02_02334750 + ldr r0, _023440E8 @ =0x023440EC + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023440E8: .4byte 0x023440EC + arm_func_end ov02_023440B8 +_023440EC: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0x02, 0x00, 0x00, 0xEB, 0x3E, 0x00, 0x00, 0xEB, 0x3E, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_02344100 +ov02_02344100: @ 0x02344100 + push {r3, r4, r5, lr} + ldr r5, _023441EC @ =0x02352C16 + mov r4, #0 +_0234410C: + mov r0, r5 + bl ov02_0234ED04 + cmp r0, #0 + beq _02344134 + mov r0, #1 + bl ov02_023346F0 + ldr r0, _023441F0 @ =0x0235AB0C + strb r4, [r0] + bl ov02_02344590 + pop {r3, r4, r5, pc} +_02344134: + add r4, r4, #1 + cmp r4, #7 + add r5, r5, #8 + blo _0234410C + mov r0, #1 + bl ov02_0234EBBC + cmp r0, #0 + beq _02344160 + mov r0, #1 + bl ov02_023346F0 + pop {r3, r4, r5, pc} +_02344160: + mov r0, #2 + bl ov02_0234EBBC + cmp r0, #0 + beq _0234417C + mov r0, #0 + bl ov02_023346F0 + pop {r3, r4, r5, pc} +_0234417C: + mov r0, #0x40 + bl ov02_0234EBFC + cmp r0, #0 + beq _02344198 + mov r0, #1 + bl ov02_0234460C + pop {r3, r4, r5, pc} +_02344198: + mov r0, #0x80 + bl ov02_0234EBFC + cmp r0, #0 + beq _023441B4 + mov r0, #3 + bl ov02_0234460C + pop {r3, r4, r5, pc} +_023441B4: + mov r0, #0x20 + bl ov02_0234EBFC + cmp r0, #0 + beq _023441D0 + mov r0, #0 + bl ov02_0234460C + pop {r3, r4, r5, pc} +_023441D0: + mov r0, #0x10 + bl ov02_0234EBFC + cmp r0, #0 + popeq {r3, r4, r5, pc} + mov r0, #2 + bl ov02_0234460C + pop {r3, r4, r5, pc} + .align 2, 0 +_023441EC: .4byte 0x02352C16 +_023441F0: .4byte 0x0235AB0C + arm_func_end ov02_02344100 + + arm_func_start ov02_023441F4 +ov02_023441F4: @ 0x023441F4 + bx lr + arm_func_end ov02_023441F4 + + arm_func_start ov02_023441F8 +ov02_023441F8: @ 0x023441F8 + push {r3, r4, lr} + sub sp, sp, #4 + bl ov02_023346DC + cmp r0, #0 + beq _0234421C + cmp r0, #1 + beq _02344264 + add sp, sp, #4 + pop {r3, r4, pc} +_0234421C: + bl ov02_02338E00 + cmp r0, #0 + beq _02344234 + cmp r0, #1 + beq _02344250 + b _02344308 +_02344234: + mov r0, #7 + bl ov02_023480E0 + ldr r0, _02344318 @ =0x0235AB0C + mov r1, #2 + ldr r0, [r0, #4] + strb r1, [r0, #0x1d] + b _02344308 +_02344250: + bl ov02_02334768 + ldr r0, _0234431C @ =ov02_0233958C + bl ov02_02338D68 + add sp, sp, #4 + pop {r3, r4, pc} +_02344264: + ldr r0, _02344318 @ =0x0235AB0C + mov r2, #1 + ldr r1, [r0, #4] + strb r2, [r1, #0x1d] + ldrb r0, [r0] + cmp r0, #4 + blo _023442F0 + sub r4, r0, #4 + mov r0, r4 + bl ov02_02347924 + cmp r0, #0xff + bne _023442AC + mov r0, #9 + bl ov02_023480E0 + mvn r0, #0 + bl ov02_02334710 + add sp, sp, #4 + pop {r3, r4, pc} +_023442AC: + mov r0, #6 + bl ov02_023480E0 + bl ov02_02338DF0 + ldr r1, _02344320 @ =0x02352C88 + add ip, r4, #1 + ldrsb r3, [r1, r0] + mov r0, #0x46 + mov r1, #0 + mov r2, #1 + str ip, [sp] + bl ov02_02349394 + bl ov02_02344800 + bl ov02_02334768 + ldr r0, _02344324 @ =ov02_02344890 + bl ov02_02338D68 + add sp, sp, #4 + pop {r3, r4, pc} +_023442F0: + cmp r0, #2 + bhi _023442FC + bl ov02_0234793C +_023442FC: + mov r0, #6 + bl ov02_023480E0 + bl ov02_02344A20 +_02344308: + ldr r0, _02344328 @ =ov02_0234432C + bl ov02_02338D68 + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02344318: .4byte 0x0235AB0C +_0234431C: .4byte ov02_0233958C +_02344320: .4byte 0x02352C88 +_02344324: .4byte ov02_02344890 +_02344328: .4byte ov02_0234432C + arm_func_end ov02_023441F8 + + arm_func_start ov02_0234432C +ov02_0234432C: @ 0x0234432C + push {r3, lr} + ldr r0, _02344360 @ =0x0235AB0C + ldr r0, [r0, #4] + ldrb r0, [r0, #0x1d] + cmp r0, #2 + bne _02344348 + bl ov02_023486C8 +_02344348: + bl ov02_02334768 + mov r0, #8 + bl ov02_0234DAE0 + ldr r0, _02344364 @ =ov02_02344368 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02344360: .4byte 0x0235AB0C +_02344364: .4byte ov02_02344368 + arm_func_end ov02_0234432C + + arm_func_start ov02_02344368 +ov02_02344368: @ 0x02344368 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + ldr r0, _023443E4 @ =0x0235AB0C + ldr r1, [r0, #4] + ldrb r1, [r1, #0x1d] + cmp r1, #1 + bne _023443B0 + ldrb r0, [r0] + cmp r0, #3 + beq _023443AC + bl ov02_02347518 + ldrb r0, [r0, #0xe7] + cmp r0, #0xff + beq _023443B0 +_023443AC: + bl ov02_023346AC +_023443B0: + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #3 + mov r1, #0 + mov r2, #0x14 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _023443E8 @ =ov02_023443EC + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023443E4: .4byte 0x0235AB0C +_023443E8: .4byte ov02_023443EC + arm_func_end ov02_02344368 + + arm_func_start ov02_023443EC +ov02_023443EC: @ 0x023443EC + push {r3, r4, r5, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, r4, r5, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, r4, r5, pc} + bl ov02_02348BF0 + cmp r0, #0 + popeq {r3, r4, r5, pc} + bl ov02_02334724 + cmp r0, #0 + popeq {r3, r4, r5, pc} + ldr r4, _02344570 @ =0x0235AB0C + mov r5, #0 +_02344430: + ldr r0, [r4, #4] + add r0, r0, r5, lsl #2 + ldr r0, [r0, #4] + cmp r0, #0 + beq _02344448 + bl ov02_0234D288 +_02344448: + add r5, r5, #1 + cmp r5, #3 + blo _02344430 + ldr r4, _02344570 @ =0x0235AB0C + mov r5, #0 +_0234445C: + ldr r0, [r4, #4] + add r0, r0, r5, lsl #2 + ldr r0, [r0, #0x10] + cmp r0, #0 + beq _02344474 + bl ov02_0234D288 +_02344474: + add r5, r5, #1 + cmp r5, #3 + blo _0234445C + bl ov02_0233519C + bl ov02_02334D10 + ldr r0, _02344570 @ =0x0235AB0C + ldr r0, [r0, #4] + ldr r0, [r0] + bl ov02_0234CF78 + ldr r0, _02344574 @ =0x02353BE0 + ldr r1, _02344578 @ =0x02077DA4 + bl ov02_02334DA8 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 + mov r0, #0 + mov r1, #0x14 + bl ov02_0234E424 + ldr r0, _02344570 @ =0x0235AB0C + ldr r1, [r0, #4] + ldrb r1, [r1, #0x1d] + cmp r1, #2 + bne _023444E8 + mov r0, #0 + mov r1, r0 + bl ov02_02338D78 + ldr r0, _0234457C @ =ov02_023398CC + bl ov02_02338D68 + b _02344564 +_023444E8: + ldrb r0, [r0] + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _02344564 +_023444F8: @ jump table + b _02344508 @ case 0 + b _02344508 @ case 1 + b _02344508 @ case 2 + b _02344550 @ case 3 +_02344508: + mov r0, #2 + mov r1, #0 + bl ov02_02338D78 + bl ov02_02347518 + ldrb r0, [r0, #0xe7] + cmp r0, #0xff + bne _02344530 + ldr r0, _02344580 @ =ov02_02344AF0 + bl ov02_02338D68 + b _02344564 +_02344530: + mov r0, #0 + mov r1, r0 + bl ov02_02338DB4 + mov r0, #0 + bl ov02_02342798 + ldr r0, _02344584 @ =ov02_023402CC + bl ov02_02338D68 + b _02344564 +_02344550: + mov r0, #2 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _02344588 @ =ov02_02345DC8 + bl ov02_02338D68 +_02344564: + ldr r0, _0234458C @ =0x0235AB10 + bl ov02_0234E7D8 + pop {r3, r4, r5, pc} + .align 2, 0 +_02344570: .4byte 0x0235AB0C +_02344574: .4byte 0x02353BE0 +_02344578: .4byte 0x02077DA4 +_0234457C: .4byte ov02_023398CC +_02344580: .4byte ov02_02344AF0 +_02344584: .4byte ov02_023402CC +_02344588: .4byte ov02_02345DC8 +_0234458C: .4byte 0x0235AB10 + arm_func_end ov02_023443EC + + arm_func_start ov02_02344590 +ov02_02344590: @ 0x02344590 + push {r3, lr} + ldr r0, _023445F8 @ =0x0235AB0C + ldrb r2, [r0] + cmp r2, #4 + bhs _023445D0 + lsl ip, r2, #3 + ldr r0, _023445FC @ =0x02352C4E + ldr r1, _02344600 @ =0x02352C52 + ldr r2, _02344604 @ =0x02352C50 + ldr r3, _02344608 @ =0x02352C54 + ldrh r0, [r0, ip] + ldrh r1, [r1, ip] + ldrh r2, [r2, ip] + ldrh r3, [r3, ip] + bl ov02_023350AC + pop {r3, pc} +_023445D0: + ldr r1, _023445FC @ =0x02352C4E + lsl r3, r2, #3 + ldr r2, _02344600 @ =0x02352C52 + ldr r0, _02344604 @ =0x02352C50 + ldrh r1, [r1, r3] + ldrh r2, [r2, r3] + ldrh r3, [r0, r3] + mov r0, #0 + bl ov02_02334FF0 + pop {r3, pc} + .align 2, 0 +_023445F8: .4byte 0x0235AB0C +_023445FC: .4byte 0x02352C4E +_02344600: .4byte 0x02352C52 +_02344604: .4byte 0x02352C50 +_02344608: .4byte 0x02352C54 + arm_func_end ov02_02344590 + + arm_func_start ov02_0234460C +ov02_0234460C: @ 0x0234460C + push {r3, lr} + ldr r2, _023447FC @ =0x0235AB0C + mov r1, #1 + ldrb r3, [r2] + cmp r3, #6 + addls pc, pc, r3, lsl #2 + b _023447E4 +_02344628: @ jump table + b _02344644 @ case 0 + b _02344684 @ case 1 + b _023446C4 @ case 2 + b _02344704 @ case 3 + b _0234472C @ case 4 + b _0234476C @ case 5 + b _023447A8 @ case 6 +_02344644: + ldr r3, [r2, #4] + mov ip, #0 + cmp r0, #0 + strb ip, [r3, #0x1c] + moveq r0, #2 + strbeq r0, [r2] + beq _023447E4 + cmp r0, #2 + strbeq r1, [r2] + beq _023447E4 + cmp r0, #1 + moveq r0, #3 + strbeq r0, [r2] + movne r0, #4 + strbne r0, [r2] + b _023447E4 +_02344684: + ldr r3, [r2, #4] + cmp r0, #0 + strb r1, [r3, #0x1c] + moveq r0, #0 + strbeq r0, [r2] + beq _023447E4 + cmp r0, #2 + moveq r0, #2 + strbeq r0, [r2] + beq _023447E4 + cmp r0, #1 + moveq r0, #3 + strbeq r0, [r2] + movne r0, #5 + strbne r0, [r2] + b _023447E4 +_023446C4: + ldr r3, [r2, #4] + mov ip, #2 + strb ip, [r3, #0x1c] + cmp r0, #0 + strbeq r1, [r2] + beq _023447E4 + cmp r0, #2 + moveq r0, #0 + strbeq r0, [r2] + beq _023447E4 + cmp r0, #1 + moveq r0, #3 + strbeq r0, [r2] + movne r0, #6 + strbne r0, [r2] + b _023447E4 +_02344704: + ldr r3, [r2, #4] + cmp r0, #1 + ldrb ip, [r3, #0x1c] + add r3, ip, #4 + strbeq r3, [r2] + beq _023447E4 + cmp r0, #3 + strbeq ip, [r2] + movne r1, #0 + b _023447E4 +_0234472C: + ldr r3, [r2, #4] + mov ip, #0 + cmp r0, #0 + strb ip, [r3, #0x1c] + moveq r0, #6 + strbeq r0, [r2] + beq _023447E4 + cmp r0, #2 + moveq r0, #5 + strbeq r0, [r2] + beq _023447E4 + cmp r0, #1 + strbeq ip, [r2] + movne r0, #3 + strbne r0, [r2] + b _023447E4 +_0234476C: + ldr r3, [r2, #4] + cmp r0, #0 + strb r1, [r3, #0x1c] + moveq r0, #4 + strbeq r0, [r2] + beq _023447E4 + cmp r0, #2 + moveq r0, #6 + strbeq r0, [r2] + beq _023447E4 + cmp r0, #1 + strbeq r1, [r2] + movne r0, #3 + strbne r0, [r2] + b _023447E4 +_023447A8: + ldr r3, [r2, #4] + mov ip, #2 + cmp r0, #0 + strb ip, [r3, #0x1c] + moveq r0, #5 + strbeq r0, [r2] + beq _023447E4 + cmp r0, #2 + moveq r0, #4 + strbeq r0, [r2] + beq _023447E4 + cmp r0, #1 + strbeq ip, [r2] + movne r0, #3 + strbne r0, [r2] +_023447E4: + cmp r1, #0 + popeq {r3, pc} + mov r0, #8 + bl ov02_023480E0 + bl ov02_02344590 + pop {r3, pc} + .align 2, 0 +_023447FC: .4byte 0x0235AB0C + arm_func_end ov02_0234460C + + arm_func_start ov02_02344800 +ov02_02344800: @ 0x02344800 + push {r4, lr} + ldr r0, _02344884 @ =0x0235AB0C + mov r1, #0 + ldrb r2, [r0] + ldr r0, [r0, #4] + sub r4, r2, #4 + add r0, r0, r4, lsl #2 + ldr r0, [r0, #0x10] + bl ov02_0234D308 + mov r2, r0 + mov r0, #0 + mov r1, #0x32 + bl ov02_0234D618 + ldr r0, _02344884 @ =0x0235AB0C + add r3, r4, #3 + ldr r2, [r0, #4] + ldr r1, _02344888 @ =0x02352BFE + lsl r3, r3, #2 + ldr r0, _0234488C @ =0x02352C00 + add ip, r2, r4, lsl #2 + ldrh r2, [r1, r3] + ldrh r3, [r0, r3] + ldr r0, [ip, #0x10] + mvn r1, #0 + bl ov02_0234D440 + ldr r0, _02344884 @ =0x0235AB0C + mvn r1, #0 + ldr r0, [r0, #4] + mov r2, #3 + add r0, r0, r4, lsl #2 + ldr r0, [r0, #0x10] + bl ov02_0234D530 + pop {r4, pc} + .align 2, 0 +_02344884: .4byte 0x0235AB0C +_02344888: .4byte 0x02352BFE +_0234488C: .4byte 0x02352C00 + arm_func_end ov02_02344800 + + arm_func_start ov02_02344890 +ov02_02344890: @ 0x02344890 + push {r4, lr} + ldr r0, _023449EC @ =0x0235AB0C + ldrb r0, [r0] + sub r4, r0, #4 + bl ov02_02349704 + cmp r0, #0 + beq _02344960 + cmp r0, #1 + popne {r4, pc} + mov r0, #0xe + bl ov02_023480E0 + mov r0, r4 + bl ov02_02347D2C + ldr r0, _023449EC @ =0x0235AB0C + mov r1, #0 + ldr r0, [r0, #4] + add r0, r0, r4, lsl #2 + ldr r0, [r0, #4] + bl ov02_0234D308 + mov r2, r0 + mov r0, #0 + mov r1, #0x56 + bl ov02_0234D618 + ldr r0, _023449EC @ =0x0235AB0C + lsl ip, r4, #2 + ldr r0, [r0, #4] + mvn r1, #0 + add r0, r0, r4, lsl #2 + ldr r0, [r0, #4] + ldr r2, _023449F0 @ =0x02352BFE + ldr r3, _023449F4 @ =0x02352C00 + ldrh r2, [r2, ip] + ldrh r3, [r3, ip] + bl ov02_0234D440 + ldr r0, _023449EC @ =0x0235AB0C + mvn r1, #0 + ldr r0, [r0, #4] + mov r2, #3 + add r0, r0, r4, lsl #2 + ldr r0, [r0, #4] + bl ov02_0234D530 + ldr r0, _023449EC @ =0x0235AB0C + ldr r0, [r0, #4] + add r0, r0, r4, lsl #2 + ldr r0, [r0, #0x10] + bl ov02_0234D288 + mov r1, #0 + ldr r0, _023449EC @ =0x0235AB0C + ldr r0, [r0, #4] + add r0, r0, r4, lsl #2 + str r1, [r0, #0x10] + b _023449DC +_02344960: + mov r0, #7 + bl ov02_023480E0 + ldr r0, _023449EC @ =0x0235AB0C + mov r1, #0 + ldr r0, [r0, #4] + add r0, r0, r4, lsl #2 + ldr r0, [r0, #0x10] + bl ov02_0234D308 + mov r2, r0 + mov r0, #0 + mov r1, #0x11 + bl ov02_0234D618 + ldr r0, _023449EC @ =0x0235AB0C + add r1, r4, #3 + ldr r0, [r0, #4] + lsl ip, r1, #2 + ldr r2, _023449F0 @ =0x02352BFE + ldr r3, _023449F4 @ =0x02352C00 + add r0, r0, r4, lsl #2 + ldrh r2, [r2, ip] + ldrh r3, [r3, ip] + ldr r0, [r0, #0x10] + mvn r1, #0 + bl ov02_0234D440 + ldr r0, _023449EC @ =0x0235AB0C + mvn r1, #0 + ldr r0, [r0, #4] + mov r2, #3 + add r0, r0, r4, lsl #2 + ldr r0, [r0, #0x10] + bl ov02_0234D530 +_023449DC: + bl ov02_023496C0 + ldr r0, _023449F8 @ =0x023449FC + bl ov02_02338D68 + pop {r4, pc} + .align 2, 0 +_023449EC: .4byte 0x0235AB0C +_023449F0: .4byte 0x02352BFE +_023449F4: .4byte 0x02352C00 +_023449F8: .4byte 0x023449FC + arm_func_end ov02_02344890 +_023449FC: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0x44, 0x13, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18, 0x4F, 0xBF, 0xFF, 0xEB + .byte 0x04, 0x00, 0x9F, 0xE5, 0xD3, 0xD0, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0xEC, 0x40, 0x34, 0x02 + + arm_func_start ov02_02344A20 +ov02_02344A20: @ 0x02344A20 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #8 + ldr r1, _02344AE8 @ =0x02352BE0 + ldr r0, _02344AEC @ =0x0235AB0C + ldrb r7, [r1] + ldrb r6, [r1, #1] + ldrb r5, [r1, #2] + ldrb r4, [r1, #3] + ldrb lr, [r1, #4] + ldrb ip, [r1, #5] + ldrb r3, [r1, #6] + ldrb r2, [r1, #7] + ldrb r1, [r0] + strb r7, [sp, #4] + strb r2, [sp, #3] + strb r6, [sp, #5] + strb r5, [sp, #6] + strb r4, [sp, #7] + strb lr, [sp] + strb ip, [sp, #1] + strb r3, [sp, #2] + cmp r1, #3 + add r2, sp, #4 + addhi sp, sp, #8 + pophi {r3, r4, r5, r6, r7, pc} + ldrb r1, [r2, r1] + ldr r0, [r0, #4] + ldr r0, [r0] + mov r2, r1 + bl ov02_023468A0 + ldr r0, _02344AEC @ =0x0235AB0C + ldrb r0, [r0] + cmp r0, #3 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, pc} + bl ov02_02347924 + ldr r1, _02344AEC @ =0x0235AB0C + cmp r0, #2 + ldrb ip, [r1] + ldr r1, [r1, #4] + movgt r0, #3 + add r2, sp, #0 + ldrb r3, [r2, r0] + add r0, r1, ip, lsl #2 + ldr r0, [r0, #4] + mvn r1, #0 + mov r2, #0 + bl ov02_0234D3C0 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02344AE8: .4byte 0x02352BE0 +_02344AEC: .4byte 0x0235AB0C + arm_func_end ov02_02344A20 + + arm_func_start ov02_02344AF0 +ov02_02344AF0: @ 0x02344AF0 + push {r4, r5, r6, lr} + bl ov02_02347518 + ldr r1, _02344BF8 @ =0x0235AB14 + mov r2, #0 + strb r2, [r1, #2] + ldrsb r2, [r1] + mov r4, r0 + cmp r2, #0 + moveq r0, #1 + strbeq r0, [r1] + bl ov02_02338DF0 + cmp r0, #0 + beq _02344B4C + ldr r0, _02344BF8 @ =0x0235AB14 + ldrsb r1, [r0, #1] + cmp r1, #2 + moveq r1, #0 + strbeq r1, [r0, #1] + ldr r0, _02344BF8 @ =0x0235AB14 + ldrsb r1, [r0] + cmp r1, #2 + moveq r1, #1 + strbeq r1, [r0] +_02344B4C: + bl ov02_02344C14 + bl ov02_023352C4 + bl ov02_02338DF0 + mov r5, r0 + ldrb r1, [r4, #0xf4] + mov r0, #0x32 + ldr r3, _02344BFC @ =0x02352CCC + add r2, r1, #1 + ldrsb r1, [r3, r5] + bl ov02_02334C3C + mov r0, #1 + bl ov02_02334DE8 + mov r0, #1 + bl ov02_02338E18 + mov r6, r0 + mov r0, #1 + bl ov02_02338E18 + mov r5, r0 + mov r0, #1 + bl ov02_02338E18 + mov r4, r0 + mov r0, #1 + bl ov02_02338E18 + mov r3, r0 + ldr r1, _02344C00 @ =0x02352D14 + ldr r0, _02344BF8 @ =0x0235AB14 + add ip, r1, r6, lsl #5 + ldrsb lr, [r0, #1] + ldr r1, _02344C04 @ =0x02352D18 + ldr r0, _02344C08 @ =0x02352D16 + add r1, r1, r5, lsl #5 + add r2, r0, r4, lsl #5 + lsl r5, lr, #3 + ldrh r0, [r5, ip] + ldrh r1, [r5, r1] + ldrh r2, [r5, r2] + ldr r4, _02344C0C @ =0x02352D1A + add r3, r4, r3, lsl #5 + ldrh r3, [r5, r3] + bl ov02_023350AC + ldr r0, _02344C10 @ =ov02_02344D00 + bl ov02_02338D68 + pop {r4, r5, r6, pc} + .align 2, 0 +_02344BF8: .4byte 0x0235AB14 +_02344BFC: .4byte 0x02352CCC +_02344C00: .4byte 0x02352D14 +_02344C04: .4byte 0x02352D18 +_02344C08: .4byte 0x02352D16 +_02344C0C: .4byte 0x02352D1A +_02344C10: .4byte ov02_02344D00 + arm_func_end ov02_02344AF0 + + arm_func_start ov02_02344C14 +ov02_02344C14: @ 0x02344C14 + push {r3, lr} + sub sp, sp, #0x18 + ldr ip, _02344CD8 @ =0x02352C94 + add r3, sp, #0 + mov r2, #0xb +_02344C28: + ldrb r1, [ip] + ldrb r0, [ip, #1] + add ip, ip, #2 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + subs r2, r2, #1 + bne _02344C28 + ldr r0, _02344CDC @ =0x02353BF8 + ldr r1, _02344CE0 @ =0x02078310 + bl ov02_02334DA8 + ldr r0, _02344CE4 @ =0x02353C10 + ldr r1, _02344CE8 @ =FUN_02077CF8 + bl ov02_02334DA8 + ldr r0, _02344CEC @ =0x02353C28 + ldr r1, _02344CF0 @ =FUN_020780D0 + bl ov02_02334DA8 + add r0, sp, #0 + bl ov02_02334D48 + mov r1, #0 + mov r2, #4 + bl ov02_0234CE84 + ldr r1, _02344CF4 @ =0x0235AB14 + ldr r2, _02344CF8 @ =0x04001008 + str r0, [r1, #4] + ldrh r0, [r2] + ldr r1, _02344CFC @ =0x0400000A + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r2, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2, #2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + add sp, sp, #0x18 + pop {r3, pc} + .align 2, 0 +_02344CD8: .4byte 0x02352C94 +_02344CDC: .4byte 0x02353BF8 +_02344CE0: .4byte 0x02078310 +_02344CE4: .4byte 0x02353C10 +_02344CE8: .4byte FUN_02077CF8 +_02344CEC: .4byte 0x02353C28 +_02344CF0: .4byte FUN_020780D0 +_02344CF4: .4byte 0x0235AB14 +_02344CF8: .4byte 0x04001008 +_02344CFC: .4byte 0x0400000A + arm_func_end ov02_02344C14 + + arm_func_start ov02_02344D00 +ov02_02344D00: @ 0x02344D00 + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #2 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #2 + mov r1, #0 + mov r2, #0x14 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #1 + mov r1, r0 + bl ov02_0234E3D0 + mov r0, #0 + mov r1, #0x14 + bl ov02_0234E3D0 + ldr r0, _02344D50 @ =ov02_02344D54 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02344D50: .4byte ov02_02344D54 + arm_func_end ov02_02344D00 + + arm_func_start ov02_02344D54 +ov02_02344D54: @ 0x02344D54 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_02334E38 + ldr r0, _02344D8C @ =0x02344D90 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02344D8C: .4byte 0x02344D90 + arm_func_end ov02_02344D54 +_02344D90: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x50, 0xBE, 0xFF, 0xEB, 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1 + .byte 0x08, 0x80, 0xBD, 0x08, 0x69, 0xBE, 0xFF, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0xED, 0xCF, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0xB8, 0x4D, 0x34, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x02, 0x00, 0x00, 0xEB + .byte 0x62, 0x00, 0x00, 0xEB, 0x62, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_02344DCC +ov02_02344DCC: @ 0x02344DCC + push {r3, r4, r5, r6, r7, lr} + mov r6, #0 + ldr r4, _02344F38 @ =0x02352CD4 + mov r7, r6 + mov r5, #1 +_02344DE0: + mov r0, r5 + bl ov02_02338E18 + add r0, r4, r0, lsl #5 + add r0, r0, r7 + bl ov02_0234ED04 + cmp r0, #0 + beq _02344E80 + mov r0, #1 + bl ov02_023346F0 + ldr r1, _02344F3C @ =0x0235AB14 + mov r0, #1 + strb r6, [r1, #1] + bl ov02_02338E18 + mov r6, r0 + mov r0, #1 + bl ov02_02338E18 + mov r5, r0 + mov r0, #1 + bl ov02_02338E18 + mov r4, r0 + mov r0, #1 + bl ov02_02338E18 + mov r3, r0 + ldr r0, _02344F3C @ =0x0235AB14 + ldr r1, _02344F40 @ =0x02352D14 + ldrsb lr, [r0, #1] + ldr r0, _02344F44 @ =0x02352D16 + add ip, r1, r6, lsl #5 + ldr r1, _02344F48 @ =0x02352D18 + add r2, r0, r4, lsl #5 + ldr r4, _02344F4C @ =0x02352D1A + add r1, r1, r5, lsl #5 + lsl r5, lr, #3 + add r3, r4, r3, lsl #5 + ldrh r0, [r5, ip] + ldrh r1, [r5, r1] + ldrh r2, [r5, r2] + ldrh r3, [r5, r3] + bl ov02_023350AC + pop {r3, r4, r5, r6, r7, pc} +_02344E80: + add r6, r6, #1 + cmp r6, #4 + add r7, r7, #8 + blo _02344DE0 + mov r0, #1 + bl ov02_0234EBBC + cmp r0, #0 + beq _02344EAC + mov r0, #1 + bl ov02_023346F0 + pop {r3, r4, r5, r6, r7, pc} +_02344EAC: + mov r0, #2 + bl ov02_0234EBBC + cmp r0, #0 + beq _02344EC8 + mov r0, #0 + bl ov02_023346F0 + pop {r3, r4, r5, r6, r7, pc} +_02344EC8: + mov r0, #0x40 + bl ov02_0234EBFC + cmp r0, #0 + beq _02344EE4 + mov r0, #1 + bl ov02_0234515C + pop {r3, r4, r5, r6, r7, pc} +_02344EE4: + mov r0, #0x80 + bl ov02_0234EBFC + cmp r0, #0 + beq _02344F00 + mov r0, #3 + bl ov02_0234515C + pop {r3, r4, r5, r6, r7, pc} +_02344F00: + mov r0, #0x20 + bl ov02_0234EBFC + cmp r0, #0 + beq _02344F1C + mov r0, #0 + bl ov02_0234515C + pop {r3, r4, r5, r6, r7, pc} +_02344F1C: + mov r0, #0x10 + bl ov02_0234EBFC + cmp r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + mov r0, #2 + bl ov02_0234515C + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02344F38: .4byte 0x02352CD4 +_02344F3C: .4byte 0x0235AB14 +_02344F40: .4byte 0x02352D14 +_02344F44: .4byte 0x02352D16 +_02344F48: .4byte 0x02352D18 +_02344F4C: .4byte 0x02352D1A + arm_func_end ov02_02344DCC + + arm_func_start ov02_02344F50 +ov02_02344F50: @ 0x02344F50 + bx lr + arm_func_end ov02_02344F50 + + arm_func_start ov02_02344F54 +ov02_02344F54: @ 0x02344F54 + push {r3, lr} + bl ov02_023346DC + cmp r0, #0 + beq _02344F70 + cmp r0, #1 + beq _02344F7C + pop {r3, pc} +_02344F70: + mov r0, #7 + bl ov02_023480E0 + b _02344F94 +_02344F7C: + mov r0, #6 + bl ov02_023480E0 + bl ov02_02345250 + ldr r0, _02344FA0 @ =0x0235AB14 + mov r1, #1 + strb r1, [r0, #2] +_02344F94: + ldr r0, _02344FA4 @ =0x02344FA8 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02344FA0: .4byte 0x0235AB14 +_02344FA4: .4byte 0x02344FA8 + arm_func_end ov02_02344F54 +_02344FA8: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xED, 0xBD, 0xFF, 0xEB + .byte 0x08, 0x00, 0xA0, 0xE3, 0xC9, 0x22, 0x00, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0x69, 0xCF, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0xC8, 0x4F, 0x34, 0x02 + + arm_func_start ov02_02344FC8 +ov02_02344FC8: @ 0x02344FC8 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + ldr r0, _02345024 @ =0x0235AB14 + ldrb r0, [r0, #2] + cmp r0, #0 + beq _02344FF0 + bl ov02_023346AC +_02344FF0: + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #3 + mov r1, #0 + mov r2, #0x14 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _02345028 @ =ov02_0234502C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02345024: .4byte 0x0235AB14 +_02345028: .4byte ov02_0234502C + arm_func_end ov02_02344FC8 + + arm_func_start ov02_0234502C +ov02_0234502C: @ 0x0234502C + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_02334724 + cmp r0, #0 + popeq {r3, pc} + bl ov02_0233519C + bl ov02_02334D10 + ldr r0, _02345144 @ =0x0235AB14 + ldr r0, [r0, #4] + bl ov02_0234CF78 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 + mov r0, #0 + mov r1, #0x14 + bl ov02_0234E424 + ldr r0, _02345144 @ =0x0235AB14 + ldrb r1, [r0, #2] + cmp r1, #0 + bne _023450B0 + mov r0, #2 + mov r1, #0 + bl ov02_02338D78 + ldr r0, _02345148 @ =ov02_02343DB0 + bl ov02_02338D68 + pop {r3, pc} +_023450B0: + ldrsb r0, [r0, #1] + cmp r0, #3 + addls pc, pc, r0, lsl #2 + pop {r3, pc} +_023450C0: @ jump table + b _023450D0 @ case 0 + b _023450E8 @ case 1 + b _02345100 @ case 2 + b _02345118 @ case 3 +_023450D0: + mov r0, #2 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _0234514C @ =ov02_023438CC + bl ov02_02338D68 + pop {r3, pc} +_023450E8: + mov r0, #2 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _02345150 @ =ov02_0233C75C + bl ov02_02338D68 + pop {r3, pc} +_02345100: + mov r0, #2 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _02345154 @ =ov02_02343458 + bl ov02_02338D68 + pop {r3, pc} +_02345118: + mov r0, #2 + mov r1, #0 + bl ov02_02338D78 + mov r0, #0 + mov r1, r0 + bl ov02_02338DB4 + mov r0, #1 + bl ov02_02342798 + ldr r0, _02345158 @ =ov02_023402CC + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02345144: .4byte 0x0235AB14 +_02345148: .4byte ov02_02343DB0 +_0234514C: .4byte ov02_023438CC +_02345150: .4byte ov02_0233C75C +_02345154: .4byte ov02_02343458 +_02345158: .4byte ov02_023402CC + arm_func_end ov02_0234502C + + arm_func_start ov02_0234515C +ov02_0234515C: @ 0x0234515C + push {r4, r5, r6, lr} + ldr r1, _02345238 @ =0x0235AB14 + mov r5, r0 + mov r0, #1 + ldrsb r4, [r1, #1] + bl ov02_02338E18 + ldr r2, _0234523C @ =0x02352CAA + mvn r1, #0 + add r0, r2, r0, lsl #4 + add r0, r0, r4, lsl #2 + ldrsb r2, [r5, r0] + cmp r2, r1 + popeq {r4, r5, r6, pc} + cmp r2, #0 + ldreq r0, _02345238 @ =0x0235AB14 + strbeq r4, [r0] + mvn r0, #1 + cmp r2, r0 + ldrne r0, _02345238 @ =0x0235AB14 + strbne r2, [r0, #1] + bne _023451BC + ldr r0, _02345238 @ =0x0235AB14 + ldrsb r1, [r0] + strb r1, [r0, #1] +_023451BC: + mov r0, #8 + bl ov02_023480E0 + mov r0, #1 + bl ov02_02338E18 + mov r6, r0 + mov r0, #1 + bl ov02_02338E18 + mov r5, r0 + mov r0, #1 + bl ov02_02338E18 + mov r4, r0 + mov r0, #1 + bl ov02_02338E18 + mov r3, r0 + ldr r1, _02345240 @ =0x02352D14 + ldr r0, _02345238 @ =0x0235AB14 + add ip, r1, r6, lsl #5 + ldrsb lr, [r0, #1] + ldr r1, _02345244 @ =0x02352D18 + ldr r0, _02345248 @ =0x02352D16 + add r1, r1, r5, lsl #5 + add r2, r0, r4, lsl #5 + lsl r5, lr, #3 + ldrh r0, [r5, ip] + ldrh r1, [r5, r1] + ldrh r2, [r5, r2] + ldr r4, _0234524C @ =0x02352D1A + add r3, r4, r3, lsl #5 + ldrh r3, [r5, r3] + bl ov02_023350AC + pop {r4, r5, r6, pc} + .align 2, 0 +_02345238: .4byte 0x0235AB14 +_0234523C: .4byte 0x02352CAA +_02345240: .4byte 0x02352D14 +_02345244: .4byte 0x02352D18 +_02345248: .4byte 0x02352D16 +_0234524C: .4byte 0x02352D1A + arm_func_end ov02_0234515C + + arm_func_start ov02_02345250 +ov02_02345250: @ 0x02345250 + push {r3, r4, lr} + sub sp, sp, #4 + ldr r1, _023452A0 @ =0x02352C90 + ldr r0, _023452A4 @ =0x0235AB14 + ldrb lr, [r1] + ldrb ip, [r1, #1] + ldrb r3, [r1, #2] + ldrb r2, [r1, #3] + ldrsb r1, [r0, #1] + add r4, sp, #0 + strb lr, [sp] + strb ip, [sp, #1] + strb r3, [sp, #2] + strb r2, [sp, #3] + ldrb r1, [r4, r1] + ldr r0, [r0, #4] + mov r2, r1 + bl ov02_023468A0 + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_023452A0: .4byte 0x02352C90 +_023452A4: .4byte 0x0235AB14 + arm_func_end ov02_02345250 + + arm_func_start ov02_023452A8 +ov02_023452A8: @ 0x023452A8 + push {r3, lr} + ldr r0, _0234532C @ =0x0235AB1C + mov r1, #0 + strb r1, [r0] + bl ov02_02345334 + add r1, sp, #0 + mov r0, #0 + bl ov02_02338DC8 + ldr r0, [sp] + cmp r0, #0 + bne _023452E4 + mov r0, #0x31 + sub r1, r0, #0x32 + mov r2, #0 + bl ov02_02334C3C +_023452E4: + mov r0, #2 + bl ov02_02334DE8 + ldr r0, [sp] + cmp r0, #0 + bne _023452FC + bl ov02_023352C4 +_023452FC: + mov r0, #0x2c + bl ov02_02334E70 + mov r0, #0 + bl ov02_023343DC + bl ov02_023453DC + mov r0, #0 + bl ov02_02335334 + mov r0, #0xc + bl ov02_023480E0 + ldr r0, _02345330 @ =ov02_0234547C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0234532C: .4byte 0x0235AB1C +_02345330: .4byte ov02_0234547C + arm_func_end ov02_023452A8 + + arm_func_start ov02_02345334 +ov02_02345334: @ 0x02345334 + push {r3, lr} + ldr r0, _023453BC @ =0x02353C3C + ldr r1, _023453C0 @ =0x02078310 + bl ov02_02334DA8 + ldr r0, _023453C4 @ =0x02353C54 + ldr r1, _023453C8 @ =FUN_02077CF8 + bl ov02_02334DA8 + ldr r0, _023453CC @ =0x02353C6C + ldr r1, _023453D0 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _023453D4 @ =0x04001008 + ldr r1, _023453D8 @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_023453BC: .4byte 0x02353C3C +_023453C0: .4byte 0x02078310 +_023453C4: .4byte 0x02353C54 +_023453C8: .4byte FUN_02077CF8 +_023453CC: .4byte 0x02353C6C +_023453D0: .4byte FUN_020780D0 +_023453D4: .4byte 0x04001008 +_023453D8: .4byte 0x0400000A + arm_func_end ov02_02345334 + + arm_func_start ov02_023453DC +ov02_023453DC: @ 0x023453DC + push {r4, lr} + sub sp, sp, #0x10 + bl ov02_02347518 + mov r4, r0 + ldr r0, _02345470 @ =0x02352D54 + add r1, sp, #4 + mov r2, #0xc + bl FUN_0207C330 + add r1, sp, #0 + mov r0, #0 + bl ov02_02338DC8 + ldr r0, [sp] + cmp r0, #2 + moveq r0, #4 + strbeq r0, [sp, #0xe] + ldrbne r0, [r4, #0xf4] + addne r0, r0, #1 + strbne r0, [sp, #0xe] + add r0, sp, #4 + bl FUN_022D75EC + ldr r1, _02345474 @ =0x0235AB1C + cmp r0, #0 + str r0, [r1, #4] + beq _02345454 + ldr r0, [sp] + cmp r0, #0 + bne _02345454 + ldrb r0, [r4, #0xf4] + mov r1, r4 + bl FUN_022D7AB0 +_02345454: + mov r0, #0 + ldr r1, _02345478 @ =ov02_0234562C + mov r2, r0 + mov r3, #0x78 + bl ov02_0234FA98 + add sp, sp, #0x10 + pop {r4, pc} + .align 2, 0 +_02345470: .4byte 0x02352D54 +_02345474: .4byte 0x0235AB1C +_02345478: .4byte ov02_0234562C + arm_func_end ov02_023453DC + + arm_func_start ov02_0234547C +ov02_0234547C: @ 0x0234547C + push {r3, lr} + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + add r1, sp, #0 + mov r0, #0 + bl ov02_02338DC8 + ldr r0, [sp] + cmp r0, #0 + bne _023454D8 + mov r1, #1 + mov r2, r1 + mov r0, #2 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #1 + mov r1, r0 + bl ov02_0234E3D0 +_023454D8: + ldr r0, _023454E4 @ =ov02_023454E8 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023454E4: .4byte ov02_023454E8 + arm_func_end ov02_0234547C + + arm_func_start ov02_023454E8 +ov02_023454E8: @ 0x023454E8 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + ldr r0, _02345518 @ =0x0234551C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02345518: .4byte 0x0234551C + arm_func_end ov02_023454E8 +_0234551C: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0x02, 0x00, 0x00, 0xEB, 0x02, 0x00, 0x00, 0xEB, 0x02, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_02345530 +ov02_02345530: @ 0x02345530 + bx lr + arm_func_end ov02_02345530 + + arm_func_start ov02_02345534 +ov02_02345534: @ 0x02345534 + bx lr + arm_func_end ov02_02345534 + + arm_func_start ov02_02345538 +ov02_02345538: @ 0x02345538 + bx lr + arm_func_end ov02_02345538 + + arm_func_start ov02_0234553C +ov02_0234553C: @ 0x0234553C + push {r3, lr} + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _02345560 @ =0x02345564 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02345560: .4byte 0x02345564 + arm_func_end ov02_0234553C +_02345564: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x00, 0x00, 0xA0, 0xE3, 0xD2, 0x20, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18, 0x04, 0x00, 0x9F, 0xE5, 0xF9, 0xCD, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0x88, 0x55, 0x34, 0x02 + + arm_func_start ov02_02345588 +ov02_02345588: @ 0x02345588 + push {r4, lr} + bl ov02_02347D1C + ldr r1, _02345620 @ =0x0235AB1C + mov r4, r0 + ldr r0, [r1, #4] + cmp r0, #0 + beq _023455B0 + bl FUN_022D7958 + cmp r0, #0 + popeq {r4, pc} +_023455B0: + bl FUN_022EE00C + add r1, r4, #0xf0 + mov r2, #0xe + bl FUN_0207C4C8 + bl FUN_022EE00C + add r1, r4, #0x1f0 + mov r2, #0xe + bl FUN_0207C4C8 + bl ov02_023344AC + mov r0, #0 + bl ov02_0234E02C + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + ldr r0, _02345620 @ =0x0235AB1C + mov r1, #1 + ldrb r0, [r0] + cmp r0, #0 + mov r0, #0 + bne _02345610 + bl ov02_02338D78 + ldr r0, _02345624 @ =0x0233FC90 + bl ov02_02338D68 + pop {r4, pc} +_02345610: + bl ov02_02338D78 + ldr r0, _02345628 @ =ov02_023456F4 + bl ov02_02338D68 + pop {r4, pc} + .align 2, 0 +_02345620: .4byte 0x0235AB1C +_02345624: .4byte 0x0233FC90 +_02345628: .4byte ov02_023456F4 + arm_func_end ov02_02345588 + + arm_func_start ov02_0234562C +ov02_0234562C: @ 0x0234562C + push {r3, r4, r5, lr} + ldr r1, _023456C4 @ =0x0235AB1C + mov r4, r0 + ldr r0, [r1, #4] + cmp r0, #0 + beq _02345650 + bl FUN_022D7794 + movs r5, r0 + popeq {r3, r4, r5, pc} +_02345650: + bl ov02_023353EC + bl ov02_02348148 + ldr r1, _023456C4 @ =0x0235AB1C + ldr r0, [r1, #4] + cmp r0, #0 + beq _02345684 + cmp r5, #0 + ble _02345684 + mov r2, #1 + mov r0, #0x11 + strb r2, [r1] + bl ov02_023480E0 + b _023456AC +_02345684: + cmp r0, #0 + ldreq r0, _023456C8 @ =0xFFFF3BE9 + beq _02345694 + bl FUN_022D7864 +_02345694: + mvn r1, #9 + cmp r0, r1 + ldrge r0, _023456C8 @ =0xFFFF3BE9 + bl ov02_023402BC + mov r0, #0x12 + bl ov02_023480E0 +_023456AC: + ldr r0, _023456CC @ =ov02_0234553C + bl ov02_02338D68 + mov r1, r4 + mov r0, #0 + bl ov02_0234FB40 + pop {r3, r4, r5, pc} + .align 2, 0 +_023456C4: .4byte 0x0235AB1C +_023456C8: .4byte 0xFFFF3BE9 +_023456CC: .4byte ov02_0234553C + arm_func_end ov02_0234562C +_023456D0: + .byte 0x08, 0xC0, 0x9F, 0xE5, 0x01, 0x00, 0xA0, 0xE1, 0x20, 0x10, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0xB4, 0xE7, 0x34, 0x02, 0x04, 0xC0, 0x9F, 0xE5, 0x01, 0x00, 0xA0, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0x1C, 0xE8, 0x34, 0x02 + + arm_func_start ov02_023456F4 +ov02_023456F4: @ 0x023456F4 + push {r3, lr} + ldr r0, _0234571C @ =0x0235AB24 + mov r1, #0 + strb r1, [r0] + bl ov02_02345724 + mov r0, #0x2d + bl ov02_02334E70 + ldr r0, _02345720 @ =ov02_02345790 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0234571C: .4byte 0x0235AB24 +_02345720: .4byte ov02_02345790 + arm_func_end ov02_023456F4 + + arm_func_start ov02_02345724 +ov02_02345724: @ 0x02345724 + push {r3, lr} + ldr r0, _02345780 @ =0x02353C80 + ldr r1, _02345784 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r2, _02345788 @ =0x04001008 + ldr r1, _0234578C @ =0x0400000A + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r2, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2, #2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_02345780: .4byte 0x02353C80 +_02345784: .4byte FUN_020780D0 +_02345788: .4byte 0x04001008 +_0234578C: .4byte 0x0400000A + arm_func_end ov02_02345724 + + arm_func_start ov02_02345790 +ov02_02345790: @ 0x02345790 + push {r3, lr} + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _023457C0 @ =0x023457C4 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023457C0: .4byte 0x023457C4 + arm_func_end ov02_02345790 +_023457C4: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x00, 0x00, 0xA0, 0xE3, 0x3A, 0x20, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18, 0x04, 0x00, 0x9F, 0xE5, 0x61, 0xCD, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0xE8, 0x57, 0x34, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x41, 0x00, 0x00, 0xEB + .byte 0x00, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_023457F8 +ov02_023457F8: @ 0x023457F8 + bx lr + arm_func_end ov02_023457F8 + + arm_func_start ov02_023457FC +ov02_023457FC: @ 0x023457FC + push {r3, lr} + add r1, sp, #0 + mov r0, #0 + bl ov02_02338DC8 + ldr r0, [sp] + cmp r0, #0 + beq _0234581C + bl ov02_023486C8 +_0234581C: + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _02345850 @ =ov02_02345854 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02345850: .4byte ov02_02345854 + arm_func_end ov02_023457FC + + arm_func_start ov02_02345854 +ov02_02345854: @ 0x02345854 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_02348BF0 + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_0234E02C + bl ov02_02334D10 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + mov r0, #2 + mov r1, #1 + bl ov02_02338D78 + add r1, sp, #0 + mov r0, #0 + bl ov02_02338DC8 + ldr r0, [sp] + cmp r0, #0 + bne _023458E4 + mov r0, #0 + mov r1, r0 + bl ov02_02338DB4 + ldr r0, _023458F0 @ =ov02_023402CC + bl ov02_02338D68 + pop {r3, pc} +_023458E4: + ldr r0, _023458F4 @ =ov02_023398CC + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023458F0: .4byte ov02_023402CC +_023458F4: .4byte ov02_023398CC + arm_func_end ov02_02345854 + + arm_func_start ov02_023458F8 +ov02_023458F8: @ 0x023458F8 + push {r3, lr} + ldr r0, _0234595C @ =0x0235AB24 + ldrb r1, [r0] + add r2, r1, #1 + and r1, r2, #0xff + strb r2, [r0] + cmp r1, #0xb4 + poplo {r3, pc} + add r1, sp, #0 + mov r0, #0 + bl ov02_02338DC8 + bl ov02_02338E00 + cmp r0, #0 + beq _02345950 + cmp r0, #1 + bne _02345950 + ldr r0, [sp] + cmp r0, #0 + beq _02345950 + ldr r0, _02345960 @ =ov02_0233958C + bl ov02_02338D68 + pop {r3, pc} +_02345950: + ldr r0, _02345964 @ =ov02_023457FC + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0234595C: .4byte 0x0235AB24 +_02345960: .4byte ov02_0233958C +_02345964: .4byte ov02_023457FC + arm_func_end ov02_023458F8 + + arm_func_start ov02_02345968 +ov02_02345968: @ 0x02345968 + push {r3, lr} + bl ov02_0234705C + add r1, sp, #0 + mov r0, #0 + bl ov02_02338DC8 + bl ov02_023459C0 + mov r0, #0x31 + sub r1, r0, #0x32 + mov r2, #0 + bl ov02_02334C3C + ldr r0, [sp] + cmp r0, #2 + beq _023459A0 + bl ov02_023352C4 +_023459A0: + ldr r0, [sp] + cmp r0, #1 + bne _023459B0 + bl ov02_02347A1C +_023459B0: + ldr r0, _023459BC @ =ov02_02345A2C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023459BC: .4byte ov02_02345A2C + arm_func_end ov02_02345968 + + arm_func_start ov02_023459C0 +ov02_023459C0: @ 0x023459C0 + push {r3, lr} + ldr r0, _02345A1C @ =0x02353C94 + ldr r1, _02345A20 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r2, _02345A24 @ =0x04001008 + ldr r1, _02345A28 @ =0x0400000A + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r2, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2, #2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_02345A1C: .4byte 0x02353C94 +_02345A20: .4byte FUN_020780D0 +_02345A24: .4byte 0x04001008 +_02345A28: .4byte 0x0400000A + arm_func_end ov02_023459C0 + + arm_func_start ov02_02345A2C +ov02_02345A2C: @ 0x02345A2C + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #2 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #2 + mov r1, #0 + mov r2, #0x14 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #1 + mov r1, r0 + bl ov02_0234E3D0 + mov r0, #0 + mov r1, #0x14 + bl ov02_0234E3D0 + ldr r0, _02345A7C @ =ov02_02345A80 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02345A7C: .4byte ov02_02345A80 + arm_func_end ov02_02345A2C + + arm_func_start ov02_02345A80 +ov02_02345A80: @ 0x02345A80 + stmdb sp!, {lr} + sub sp, sp, #0x14 + ldr r0, _02345B00 @ =0x02352D60 + add r3, sp, #8 + ldm r0, {r0, r1, r2} + stm r3, {r0, r1, r2} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + addne sp, sp, #0x14 + ldmne sp!, {pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + addne sp, sp, #0x14 + ldmne sp!, {pc} + add r1, sp, #4 + mov r0, #0 + bl ov02_02338DC8 + mov r0, #0 + str r0, [sp] + mov r1, #1 + ldr r3, [sp, #4] + add r0, sp, #8 + ldr r0, [r0, r3, lsl #2] + mov r2, r1 + sub r3, r1, #2 + bl ov02_02349394 + ldr r0, _02345B04 @ =ov02_02345B08 + bl ov02_02338D68 + add sp, sp, #0x14 + ldm sp!, {pc} + .align 2, 0 +_02345B00: .4byte 0x02352D60 +_02345B04: .4byte ov02_02345B08 + arm_func_end ov02_02345A80 + + arm_func_start ov02_02345B08 +ov02_02345B08: @ 0x02345B08 + push {r3, lr} + bl ov02_02345B44 + bl ov02_02345B48 + bl ov02_02349704 + cmp r0, #0 + popne {r3, pc} + mov r0, #6 + bl ov02_023480E0 + bl ov02_023496C0 + mov r0, #6 + bl ov02_023480E0 + ldr r0, _02345B40 @ =ov02_02345B4C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02345B40: .4byte ov02_02345B4C + arm_func_end ov02_02345B08 + + arm_func_start ov02_02345B44 +ov02_02345B44: @ 0x02345B44 + bx lr + arm_func_end ov02_02345B44 + + arm_func_start ov02_02345B48 +ov02_02345B48: @ 0x02345B48 + bx lr + arm_func_end ov02_02345B48 + + arm_func_start ov02_02345B4C +ov02_02345B4C: @ 0x02345B4C + push {r3, lr} + bl ov02_02349718 + cmp r0, #0 + popne {r3, pc} + mov r0, #3 + mov r1, #0 + mov r2, #0x14 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _02345B7C @ =ov02_02345B80 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02345B7C: .4byte ov02_02345B80 + arm_func_end ov02_02345B4C + + arm_func_start ov02_02345B80 +ov02_02345B80: @ 0x02345B80 + push {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + mov r1, #0x14 + bl ov02_0234E424 + mov r0, #0 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _02345BB8 @ =ov02_023452A8 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02345BB8: .4byte ov02_023452A8 + arm_func_end ov02_02345B80 + + arm_func_start ov02_02345BBC +ov02_02345BBC: @ 0x02345BBC + push {r3, lr} + ldr r0, _02345BF4 @ =0x0235AB28 + mov r1, #0 + strb r1, [r0] + bl ov02_02345BFC + mov r0, #8 + bl ov02_02335268 + mov r0, #0x29 + bl ov02_02334E70 + mov r0, #0x10 + bl ov02_023480E0 + ldr r0, _02345BF8 @ =ov02_02345C7C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02345BF4: .4byte 0x0235AB28 +_02345BF8: .4byte ov02_02345C7C + arm_func_end ov02_02345BBC + + arm_func_start ov02_02345BFC +ov02_02345BFC: @ 0x02345BFC + push {r3, lr} + ldr r0, _02345C6C @ =0x02353CA8 + ldr r1, _02345C70 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _02345C74 @ =0x04001008 + ldr r1, _02345C78 @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_02345C6C: .4byte 0x02353CA8 +_02345C70: .4byte FUN_020780D0 +_02345C74: .4byte 0x04001008 +_02345C78: .4byte 0x0400000A + arm_func_end ov02_02345BFC + + arm_func_start ov02_02345C7C +ov02_02345C7C: @ 0x02345C7C + push {r3, lr} + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _02345CAC @ =0x02345CB0 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02345CAC: .4byte 0x02345CB0 + arm_func_end ov02_02345C7C +_02345CB0: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x00, 0x00, 0xA0, 0xE3, 0xFF, 0x1E, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x08, 0x80, 0xBD, 0x18, 0x04, 0x00, 0x9F, 0xE5, 0x26, 0xCC, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0xD4, 0x5C, 0x34, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x2D, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x00, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_02345CE4 +ov02_02345CE4: @ 0x02345CE4 + bx lr + arm_func_end ov02_02345CE4 + + arm_func_start ov02_02345CE8 +ov02_02345CE8: @ 0x02345CE8 + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _02345D20 @ =ov02_02345D24 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02345D20: .4byte ov02_02345D24 + arm_func_end ov02_02345CE8 + + arm_func_start ov02_02345D24 +ov02_02345D24: @ 0x02345D24 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234E02C + bl ov02_02334D10 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + mov r0, #0 + mov r1, r0 + bl ov02_02338D78 + mov r0, #0 + mov r1, #2 + bl ov02_02338DB4 + ldr r0, _02345D90 @ =ov02_02345968 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02345D90: .4byte ov02_02345968 + arm_func_end ov02_02345D24 + + arm_func_start ov02_02345D94 +ov02_02345D94: @ 0x02345D94 + push {r3, lr} + ldr r0, _02345DC0 @ =0x0235AB28 + ldrb r1, [r0] + add r2, r1, #1 + and r1, r2, #0xff + strb r2, [r0] + cmp r1, #0x78 + poplo {r3, pc} + ldr r0, _02345DC4 @ =ov02_02345CE8 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02345DC0: .4byte 0x0235AB28 +_02345DC4: .4byte ov02_02345CE8 + arm_func_end ov02_02345D94 + + arm_func_start ov02_02345DC8 +ov02_02345DC8: @ 0x02345DC8 + push {r3, lr} + ldr r0, _02345E10 @ =0x0235AB2C + mov r1, #0 + strb r1, [r0] + bl ov02_02345E18 + mov r0, #8 + bl ov02_02335268 + mov r0, #0x38 + sub r1, r0, #0x39 + mov r2, #0 + bl ov02_02334C3C + mov r0, #1 + bl ov02_02334DE8 + mov r0, #0x27 + bl ov02_02334E70 + ldr r0, _02345E14 @ =ov02_02345EC0 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02345E10: .4byte 0x0235AB2C +_02345E14: .4byte ov02_02345EC0 + arm_func_end ov02_02345DC8 + + arm_func_start ov02_02345E18 +ov02_02345E18: @ 0x02345E18 + push {r3, lr} + ldr r0, _02345EA0 @ =0x02353CBC + ldr r1, _02345EA4 @ =0x02078310 + bl ov02_02334DA8 + ldr r0, _02345EA8 @ =0x02353CD4 + ldr r1, _02345EAC @ =FUN_02077CF8 + bl ov02_02334DA8 + ldr r0, _02345EB0 @ =0x02353CEC + ldr r1, _02345EB4 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _02345EB8 @ =0x04001008 + ldr r1, _02345EBC @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_02345EA0: .4byte 0x02353CBC +_02345EA4: .4byte 0x02078310 +_02345EA8: .4byte 0x02353CD4 +_02345EAC: .4byte FUN_02077CF8 +_02345EB0: .4byte 0x02353CEC +_02345EB4: .4byte FUN_020780D0 +_02345EB8: .4byte 0x04001008 +_02345EBC: .4byte 0x0400000A + arm_func_end ov02_02345E18 + + arm_func_start ov02_02345EC0 +ov02_02345EC0: @ 0x02345EC0 + push {r3, lr} + mov r1, #1 + mov r2, r1 + mov r0, #2 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #1 + mov r1, r0 + bl ov02_0234E3D0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _02345F10 @ =ov02_02345F14 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02345F10: .4byte ov02_02345F14 + arm_func_end ov02_02345EC0 + + arm_func_start ov02_02345F14 +ov02_02345F14: @ 0x02345F14 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #6 + bl ov02_02334E38 + ldr r0, _02345F4C @ =0x02345F50 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02345F4C: .4byte 0x02345F50 + arm_func_end ov02_02345F14 +_02345F50: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xE0, 0xB9, 0xFF, 0xEB, 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1 + .byte 0x08, 0x80, 0xBD, 0x08, 0xF9, 0xB9, 0xFF, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0x7D, 0xCB, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0x78, 0x5F, 0x34, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x02, 0x00, 0x00, 0xEB + .byte 0x0F, 0x00, 0x00, 0xEB, 0x0F, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_02345F8C +ov02_02345F8C: @ 0x02345F8C + push {r3, lr} + mov r0, #1 + bl ov02_0234EBBC + cmp r0, #0 + beq _02345FA8 + mov r0, #1 + bl ov02_023346F0 +_02345FA8: + mov r0, #2 + bl ov02_0234EBBC + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} + arm_func_end ov02_02345F8C + + arm_func_start ov02_02345FC4 +ov02_02345FC4: @ 0x02345FC4 + bx lr + arm_func_end ov02_02345FC4 + + arm_func_start ov02_02345FC8 +ov02_02345FC8: @ 0x02345FC8 + push {r3, lr} + bl ov02_023346DC + cmp r0, #0 + beq _02345FE4 + cmp r0, #1 + beq _02345FF0 + pop {r3, pc} +_02345FE4: + mov r0, #7 + bl ov02_023480E0 + b _02346004 +_02345FF0: + mov r0, #6 + bl ov02_023480E0 + ldr r0, _02346010 @ =0x0235AB2C + mov r1, #1 + strb r1, [r0] +_02346004: + ldr r0, _02346014 @ =0x02346018 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02346010: .4byte 0x0235AB2C +_02346014: .4byte 0x02346018 + arm_func_end ov02_02345FC8 +_02346018: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xD1, 0xB9, 0xFF, 0xEB + .byte 0x08, 0x00, 0xA0, 0xE3, 0xAD, 0x1E, 0x00, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0x4D, 0xCB, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0x38, 0x60, 0x34, 0x02 + + arm_func_start ov02_02346038 +ov02_02346038: @ 0x02346038 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_023346AC + ldr r0, _02346094 @ =0x0235AB2C + ldrb r0, [r0] + cmp r0, #0 + bne _02346074 + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 +_02346074: + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _02346098 @ =ov02_0234609C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02346094: .4byte 0x0235AB2C +_02346098: .4byte ov02_0234609C + arm_func_end ov02_02346038 + + arm_func_start ov02_0234609C +ov02_0234609C: @ 0x0234609C + push {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + ldr r0, _02346148 @ =0x0235AB2C + ldrb r0, [r0] + cmp r0, #0 + bne _023460D0 + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} +_023460D0: + bl ov02_02334724 + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_0234E02C + ldr r0, _02346148 @ =0x0235AB2C + ldrb r0, [r0] + cmp r0, #0 + bne _02346104 + bl ov02_02334D10 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 +_02346104: + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + ldr r0, _02346148 @ =0x0235AB2C + mov r1, #1 + ldrb r0, [r0] + cmp r0, #0 + mov r0, #2 + bne _02346138 + bl ov02_02338D78 + ldr r0, _0234614C @ =ov02_02343DB0 + bl ov02_02338D68 + pop {r3, pc} +_02346138: + bl ov02_02338D78 + ldr r0, _02346150 @ =ov02_02346174 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02346148: .4byte 0x0235AB2C +_0234614C: .4byte ov02_02343DB0 +_02346150: .4byte ov02_02346174 + arm_func_end ov02_0234609C + + arm_func_start ov02_02346154 +ov02_02346154: @ 0x02346154 + ldr r0, _02346170 @ =0x027FFFA8 + ldrh r0, [r0] + and r0, r0, #0x8000 + asrs r0, r0, #0xf + movne r0, #1 + moveq r0, #0 + bx lr + .align 2, 0 +_02346170: .4byte 0x027FFFA8 + arm_func_end ov02_02346154 + + arm_func_start ov02_02346174 +ov02_02346174: @ 0x02346174 + stmdb sp!, {lr} + sub sp, sp, #0x6c + ldr r0, _023461FC @ =0x0235AB30 + mov r1, #0 + strb r1, [r0] + bl ov02_02346208 + mov r0, #8 + bl ov02_02335268 + mov r0, #2 + bl ov02_02334DE8 + add r0, sp, #0x16 + bl FUN_0207BA08 + add r1, sp, #0 + mov r0, #0 + mov r2, #0x16 + bl FUN_0207C2B8 + ldrh r2, [sp, #0x30] + add r0, sp, #0x1a + add r1, sp, #0 + lsl r2, r2, #1 + bl FUN_0207C2E0 + add r0, sp, #0 + mov r1, #0x28 + bl ov02_02334EE4 + mov r0, #0 + bl ov02_023343DC + ldr r0, _02346200 @ =0x02346554 + bl ov02_02348CB0 + mov r0, #0xb + bl ov02_023480E0 + ldr r0, _02346204 @ =ov02_023462B0 + bl ov02_02338D68 + add sp, sp, #0x6c + ldm sp!, {pc} + .align 2, 0 +_023461FC: .4byte 0x0235AB30 +_02346200: .4byte 0x02346554 +_02346204: .4byte ov02_023462B0 + arm_func_end ov02_02346174 + + arm_func_start ov02_02346208 +ov02_02346208: @ 0x02346208 + push {r3, lr} + ldr r0, _02346290 @ =0x02353D00 + ldr r1, _02346294 @ =0x02078310 + bl ov02_02334DA8 + ldr r0, _02346298 @ =0x02353D18 + ldr r1, _0234629C @ =FUN_02077CF8 + bl ov02_02334DA8 + ldr r0, _023462A0 @ =0x02353D30 + ldr r1, _023462A4 @ =FUN_020780D0 + bl ov02_02334DA8 + ldr r3, _023462A8 @ =0x04001008 + ldr r1, _023462AC @ =0x0400000A + ldrh r0, [r3] + sub r2, r3, #0x1000 + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3] + ldrh r0, [r3, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r3, #2] + ldrh r0, [r2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r2] + ldrh r0, [r1] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1] + ldrh r0, [r1, #2] + bic r0, r0, #3 + orr r0, r0, #3 + strh r0, [r1, #2] + pop {r3, pc} + .align 2, 0 +_02346290: .4byte 0x02353D00 +_02346294: .4byte 0x02078310 +_02346298: .4byte 0x02353D18 +_0234629C: .4byte FUN_02077CF8 +_023462A0: .4byte 0x02353D30 +_023462A4: .4byte FUN_020780D0 +_023462A8: .4byte 0x04001008 +_023462AC: .4byte 0x0400000A + arm_func_end ov02_02346208 + + arm_func_start ov02_023462B0 +ov02_023462B0: @ 0x023462B0 + push {r3, lr} + mov r0, #2 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E3D0 + ldr r0, _023462E0 @ =ov02_023462E4 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023462E0: .4byte ov02_023462E4 + arm_func_end ov02_023462B0 + + arm_func_start ov02_023462E4 +ov02_023462E4: @ 0x023462E4 + push {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + mov r0, #2 + bl ov02_02334E38 + ldr r0, _0234630C @ =0x02346310 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_0234630C: .4byte 0x02346310 + arm_func_end ov02_023462E4 +_02346310: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xF0, 0xB8, 0xFF, 0xEB, 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1 + .byte 0x08, 0x80, 0xBD, 0x08, 0x09, 0xB9, 0xFF, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0x8D, 0xCA, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0x38, 0x63, 0x34, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0x02, 0x00, 0x00, 0xEB + .byte 0x0F, 0x00, 0x00, 0xEB, 0x0F, 0x00, 0x00, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0234634C +ov02_0234634C: @ 0x0234634C + push {r3, lr} + mov r0, #2 + bl ov02_0234EBBC + cmp r0, #0 + beq _0234636C + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} +_0234636C: + bl ov02_02346154 + cmp r0, #0 + popeq {r3, pc} + mov r0, #0 + bl ov02_023346F0 + pop {r3, pc} + arm_func_end ov02_0234634C + + arm_func_start ov02_02346384 +ov02_02346384: @ 0x02346384 + bx lr + arm_func_end ov02_02346384 + + arm_func_start ov02_02346388 +ov02_02346388: @ 0x02346388 + push {r3, lr} + ldr r0, _023463CC @ =0x0235AB30 + ldrb r0, [r0] + cmp r0, #0 + popne {r3, pc} + bl ov02_023346DC + cmp r0, #0 + popne {r3, pc} + ldr r0, _023463CC @ =0x0235AB30 + mov r1, #2 + strb r1, [r0] + bl ov02_02348148 + mov r0, #7 + bl ov02_023480E0 + ldr r0, _023463D0 @ =0x023463D4 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023463CC: .4byte 0x0235AB30 +_023463D0: .4byte 0x023463D4 + arm_func_end ov02_02346388 +_023463D4: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xE2, 0xB8, 0xFF, 0xEB, 0x08, 0x00, 0xA0, 0xE3 + .byte 0xBE, 0x1D, 0x00, 0xEB, 0x04, 0x00, 0x9F, 0xE5, 0x5E, 0xCA, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0xF4, 0x63, 0x34, 0x02 + + arm_func_start ov02_023463F4 +ov02_023463F4: @ 0x023463F4 + push {r3, lr} + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + bl ov02_023346AC + ldr r0, _02346458 @ =0x0235AB30 + ldrb r0, [r0] + add r0, r0, #0xfe + and r0, r0, #0xff + cmp r0, #1 + bhi _02346438 + mov r1, #1 + mov r2, r1 + mov r0, #3 + mov r3, #8 + bl ov02_0234D8E0 +_02346438: + mov r0, #3 + mov r1, #0 + mov r2, #0x15 + mov r3, #8 + bl ov02_0234D8E0 + ldr r0, _0234645C @ =ov02_02346460 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02346458: .4byte 0x0235AB30 +_0234645C: .4byte ov02_02346460 + arm_func_end ov02_023463F4 + + arm_func_start ov02_02346460 +ov02_02346460: @ 0x02346460 + push {r3, lr} + mov r0, #0 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} + ldr r0, _02346544 @ =0x0235AB30 + ldrb r0, [r0] + cmp r0, #2 + bne _02346494 + mov r0, #1 + bl ov02_0234D8BC + cmp r0, #0 + popne {r3, pc} +_02346494: + bl ov02_02334724 + cmp r0, #0 + popeq {r3, pc} + bl ov02_02348E68 + bl ov02_023344AC + mov r0, #0 + bl ov02_0234E02C + ldr r0, _02346544 @ =0x0235AB30 + ldrb r0, [r0] + add r0, r0, #0xfe + and r0, r0, #0xff + cmp r0, #1 + bhi _023464D8 + bl ov02_02334D10 + mov r0, #1 + mov r1, r0 + bl ov02_0234E424 +_023464D8: + mov r0, #0 + mov r1, #0x15 + bl ov02_0234E424 + ldr r0, _02346544 @ =0x0235AB30 + ldrb r0, [r0] + cmp r0, #2 + bne _0234650C + mov r0, #2 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _02346548 @ =ov02_02343DB0 + bl ov02_02338D68 + pop {r3, pc} +_0234650C: + cmp r0, #3 + bne _0234652C + mov r0, #2 + mov r1, #1 + bl ov02_02338D78 + ldr r0, _0234654C @ =ov02_02345DC8 + bl ov02_02338D68 + pop {r3, pc} +_0234652C: + mov r0, #0 + mov r1, r0 + bl ov02_02338D78 + ldr r0, _02346550 @ =ov02_02345BBC + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02346544: .4byte 0x0235AB30 +_02346548: .4byte ov02_02343DB0 +_0234654C: .4byte ov02_02345DC8 +_02346550: .4byte ov02_02345BBC + arm_func_end ov02_02346460 +_02346554: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xD0, 0x10, 0x9F, 0xE5, 0x00, 0x20, 0xD1, 0xE5 + .byte 0x00, 0x00, 0x52, 0xE3, 0x08, 0x80, 0xBD, 0x18, 0x03, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90 + .byte 0x08, 0x80, 0xBD, 0xE8, 0x02, 0x00, 0x00, 0xEA, 0x11, 0x00, 0x00, 0xEA, 0x16, 0x00, 0x00, 0xEA + .byte 0x22, 0x00, 0x00, 0xEA, 0x03, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0xC1, 0xE5, 0xED, 0x06, 0x00, 0xEB + .byte 0x12, 0x00, 0xA0, 0xE3, 0xD1, 0x06, 0x00, 0xEB, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0xC0, 0xA0, 0xE3 + .byte 0x01, 0x20, 0xA0, 0xE1, 0x02, 0x30, 0x41, 0xE2, 0x10, 0x00, 0xA0, 0xE3, 0x00, 0xC0, 0x8D, 0xE5 + .byte 0x77, 0x0B, 0x00, 0xEB, 0x6B, 0xB8, 0xFF, 0xEB, 0x74, 0x00, 0x9F, 0xE5, 0xE9, 0xC9, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0xC1, 0xE5, 0xDD, 0x06, 0x00, 0xEB + .byte 0x60, 0x00, 0x9F, 0xE5, 0xE3, 0xC9, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0xD9, 0x06, 0x00, 0xEB + .byte 0x00, 0x00, 0xA0, 0xE3, 0x58, 0x0A, 0x00, 0xEB, 0x01, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0xA0, 0xE3 + .byte 0x02, 0x30, 0x42, 0xE2, 0x11, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0x8D, 0xE5, 0x64, 0x0B, 0x00, 0xEB + .byte 0x58, 0xB8, 0xFF, 0xEB, 0x30, 0x00, 0x9F, 0xE5, 0xD6, 0xC9, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x02, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0xC1, 0xE5, 0xCA, 0x06, 0x00, 0xEB, 0x09, 0x00, 0xA0, 0xE3 + .byte 0xAE, 0x06, 0x00, 0xEB, 0x0C, 0x00, 0x9F, 0xE5, 0xCE, 0xC9, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x30, 0xAB, 0x35, 0x02, 0x40, 0x66, 0x34, 0x02, 0xD4, 0x63, 0x34, 0x02, 0x8C, 0x66, 0x34, 0x02 + + arm_func_start ov02_02346640 +ov02_02346640: @ 0x02346640 + push {r3, lr} + bl ov02_02349704 + cmp r0, #0 + popne {r3, pc} + mov r0, #6 + bl ov02_023480E0 + bl ov02_023496C0 + ldr r0, _02346668 @ =0x0234666C + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02346668: .4byte 0x0234666C + arm_func_end ov02_02346640 +_0234666C: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0x28, 0x0C, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18, 0x04, 0x00, 0x9F, 0xE5 + .byte 0xB8, 0xC9, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0xD4, 0x63, 0x34, 0x02 + + arm_func_start ov02_0234668C +ov02_0234668C: @ 0x0234668C + push {r3, lr} + bl ov02_02349704 + cmp r0, #0 + beq _023466BC + cmp r0, #1 + popne {r3, pc} + ldr r1, _023466E0 @ =0x0235AB30 + mov r2, #3 + mov r0, #6 + strb r2, [r1] + bl ov02_023480E0 + b _023466D0 +_023466BC: + ldr r1, _023466E0 @ =0x0235AB30 + mov r2, #1 + mov r0, #7 + strb r2, [r1] + bl ov02_023480E0 +_023466D0: + bl ov02_023496C0 + ldr r0, _023466E4 @ =ov02_023466E8 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_023466E0: .4byte 0x0235AB30 +_023466E4: .4byte ov02_023466E8 + arm_func_end ov02_0234668C + + arm_func_start ov02_023466E8 +ov02_023466E8: @ 0x023466E8 + push {r3, lr} + bl ov02_02349718 + cmp r0, #0 + popne {r3, pc} + ldr r0, _02346740 @ =0x0235AB30 + ldrb r0, [r0] + cmp r0, #1 + bne _02346714 + ldr r0, _02346744 @ =0x023463D4 + bl ov02_02338D68 + pop {r3, pc} +_02346714: + mov r0, #0xb + bl ov02_023480E0 + bl ov02_02334750 + ldr r1, _02346740 @ =0x0235AB30 + mov r2, #0 + ldr r0, _02346748 @ =0x02346554 + strb r2, [r1] + bl ov02_02348F4C + ldr r0, _0234674C @ =0x02346338 + bl ov02_02338D68 + pop {r3, pc} + .align 2, 0 +_02346740: .4byte 0x0235AB30 +_02346744: .4byte 0x023463D4 +_02346748: .4byte 0x02346554 +_0234674C: .4byte 0x02346338 + arm_func_end ov02_023466E8 + + arm_func_start ov02_02346750 +ov02_02346750: @ 0x02346750 + push {r4, lr} + mov r4, r0 + ldr r0, _023467A4 @ =0x00000608 + mov r1, #4 + bl ov02_0234E7B4 + mov ip, r0 + ldr r3, _023467A8 @ =0x0235AB34 + mov r0, r4 + add r1, ip, #4 + mov r2, #0x600 + str ip, [r3] + bl FUN_0207C3B4 + ldr r1, _023467AC @ =ov02_0234684C + mov r0, #1 + mov r2, #0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _023467A8 @ =0x0235AB34 + ldr r1, [r1] + str r0, [r1] + pop {r4, pc} + .align 2, 0 +_023467A4: .4byte 0x00000608 +_023467A8: .4byte 0x0235AB34 +_023467AC: .4byte ov02_0234684C + arm_func_end ov02_02346750 + + arm_func_start ov02_023467B0 +ov02_023467B0: @ 0x023467B0 + push {r3, lr} + ldr r1, _023467D4 @ =0x0235AB34 + mov r0, #1 + ldr r1, [r1] + ldr r1, [r1] + bl ov02_0234FB6C + ldr r0, _023467D8 @ =0x0235AB34 + bl ov02_0234E7D8 + pop {r3, pc} + .align 2, 0 +_023467D4: .4byte 0x0235AB34 +_023467D8: .4byte 0x0235AB34 + arm_func_end ov02_023467B0 + + arm_func_start ov02_023467DC +ov02_023467DC: @ 0x023467DC + ldr r0, _023467F0 @ =0x0235AB34 + mov r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x604] + bx lr + .align 2, 0 +_023467F0: .4byte 0x0235AB34 + arm_func_end ov02_023467DC + + arm_func_start ov02_023467F4 +ov02_023467F4: @ 0x023467F4 + push {r4, r5, r6, r7, r8, lr} + ldr ip, _02346848 @ =0x0235AB34 + mov r7, r3 + ldr r3, [ip] + mov r8, r0 + add r0, r3, #4 + add r4, r0, r1, lsl #1 + mov r5, #0 + cmp r7, #0 + pople {r4, r5, r6, r7, r8, pc} + lsl r6, r2, #1 +_02346820: + mov r0, r8 + mov r1, r4 + mov r2, r6 + bl FUN_0207C2E0 + add r5, r5, #1 + cmp r5, r7 + add r8, r8, #0x40 + add r4, r4, #0x40 + blt _02346820 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02346848: .4byte 0x0235AB34 + arm_func_end ov02_023467F4 + + arm_func_start ov02_0234684C +ov02_0234684C: @ 0x0234684C + push {r3, lr} + ldr r0, _0234689C @ =0x0235AB34 + ldr r1, [r0] + ldrb r0, [r1, #0x604] + cmp r0, #0 + popeq {r3, pc} + add r0, r1, #4 + mov r1, #0x600 + bl FUN_0207A2DC + ldr r0, _0234689C @ =0x0235AB34 + mov r1, #0 + ldr r0, [r0] + mov r2, #0x600 + add r0, r0, #4 + bl FUN_020780D0 + ldr r0, _0234689C @ =0x0235AB34 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x604] + pop {r3, pc} + .align 2, 0 +_0234689C: .4byte 0x0235AB34 + arm_func_end ov02_0234684C + + arm_func_start ov02_023468A0 +ov02_023468A0: @ 0x023468A0 + push {r3, lr} + ldr ip, _023468D4 @ =0x0235AB34 + add r3, r0, r1, lsl #5 + lsl r0, r2, #5 + ldr r1, _023468D8 @ =ov02_023468DC + str r3, [ip, #4] + add lr, r0, #0x5000000 + mov r0, #1 + mov r2, #0 + mov r3, #0x78 + str lr, [ip, #8] + bl ov02_0234FA98 + pop {r3, pc} + .align 2, 0 +_023468D4: .4byte 0x0235AB34 +_023468D8: .4byte ov02_023468DC + arm_func_end ov02_023468A0 + + arm_func_start ov02_023468DC +ov02_023468DC: @ 0x023468DC + push {r4, lr} + ldr r1, _02346904 @ =0x0235AB34 + mov r4, r0 + mov r2, #0x20 + ldmib r1, {r0, r1} + bl FUN_0207C2E0 + mov r1, r4 + mov r0, #1 + bl ov02_0234FB40 + pop {r4, pc} + .align 2, 0 +_02346904: .4byte 0x0235AB34 + arm_func_end ov02_023468DC + + arm_func_start ov02_02346908 +ov02_02346908: @ 0x02346908 + ldr r2, _02346928 @ =0x0235AB34 + ldr ip, _0234692C @ =ov02_0234FA98 + str r0, [r2, #4] + ldr r1, _02346930 @ =ov02_02346934 + mov r0, #1 + mov r2, #0 + mov r3, #0x78 + bx ip + .align 2, 0 +_02346928: .4byte 0x0235AB34 +_0234692C: .4byte ov02_0234FA98 +_02346930: .4byte ov02_02346934 + arm_func_end ov02_02346908 + + arm_func_start ov02_02346934 +ov02_02346934: @ 0x02346934 + push {r4, lr} + ldr r1, _02346960 @ =0x0235AB34 + mov r4, r0 + ldr r0, [r1, #4] + mov r1, #0x5000000 + mov r2, #0x200 + bl FUN_0207C2E0 + mov r1, r4 + mov r0, #1 + bl ov02_0234FB40 + pop {r4, pc} + .align 2, 0 +_02346960: .4byte 0x0235AB34 + arm_func_end ov02_02346934 + + arm_func_start ov02_02346964 +ov02_02346964: @ 0x02346964 + push {r3, r4, r5, r6, r7, lr} + mov r6, r0 + mov r7, r1 + mov r0, #0x20 + mov r1, #4 + mov r5, r2 + mov r4, r3 + bl ov02_0234E7B4 + ldr r2, _02346A30 @ =0x0235AB40 + ldr ip, [sp, #0x18] + str r0, [r2] + strb r6, [r0, #0x1b] + ldr r1, [r2] + mov r0, r5 + strb r7, [r1, #0x19] + ldr r3, [r2] + mov r1, r4 + strb ip, [r3, #0x1a] + ldr r2, [r2] + add r2, r2, #0x10 + bl ov02_0234E378 + ldr r1, _02346A34 @ =0x02352D6C + mov r0, #0 + ldrb r1, [r1, r6] + mov r2, #1 + bl ov02_0234D6D8 + mov r2, r5 + ldr r5, _02346A30 @ =0x0235AB40 + ldr r3, [sp, #0x18] + ldr r6, [r5] + mvn r1, #0 + str r0, [r6] + ldr r0, [r5] + add r3, r4, r3 + ldr r0, [r0] + bl ov02_0234D440 + mov r0, r5 + ldr r0, [r0] + mvn r1, #0 + ldr r0, [r0] + mov r2, #1 + bl ov02_0234D530 + mov r0, #0 + ldr r1, _02346A38 @ =ov02_02346ADC + mov r2, r0 + mov r3, #0x80 + bl ov02_0234FA98 + mov r1, r5 + ldr r1, [r1] + str r0, [r1, #0xc] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02346A30: .4byte 0x0235AB40 +_02346A34: .4byte 0x02352D6C +_02346A38: .4byte ov02_02346ADC + arm_func_end ov02_02346964 + + arm_func_start ov02_02346A3C +ov02_02346A3C: @ 0x02346A3C + push {r3, lr} + ldr r1, _02346A70 @ =0x0235AB40 + mov r0, #0 + ldr r1, [r1] + ldr r1, [r1, #0xc] + bl ov02_0234FB6C + ldr r0, _02346A70 @ =0x0235AB40 + ldr r0, [r0] + ldr r0, [r0] + bl ov02_0234D288 + ldr r0, _02346A74 @ =0x0235AB40 + bl ov02_0234E7D8 + pop {r3, pc} + .align 2, 0 +_02346A70: .4byte 0x0235AB40 +_02346A74: .4byte 0x0235AB40 + arm_func_end ov02_02346A3C + + arm_func_start ov02_02346A78 +ov02_02346A78: @ 0x02346A78 + ldr r0, _02346A88 @ =0x0235AB40 + ldr r0, [r0] + ldrb r0, [r0, #0x1a] + bx lr + .align 2, 0 +_02346A88: .4byte 0x0235AB40 + arm_func_end ov02_02346A78 + + arm_func_start ov02_02346A8C +ov02_02346A8C: @ 0x02346A8C + ldr r0, _02346A9C @ =0x0235AB40 + ldr r0, [r0] + ldrb r0, [r0, #0x1d] + bx lr + .align 2, 0 +_02346A9C: .4byte 0x0235AB40 + arm_func_end ov02_02346A8C + + arm_func_start ov02_02346FEC +ov02_02346FEC: @ 0x02346AA0 + ldr ip, _02346AA8 @ =ov02_02346FEC + bx ip + .align 2, 0 +_02346AA8: .4byte ov02_02346FEC + arm_func_end ov02_02346FEC + + arm_func_start ov02_02346AAC +ov02_02346AAC: @ 0x02346AAC + ldr r0, _02346AC0 @ =0x0235AB40 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x1e] + bx lr + .align 2, 0 +_02346AC0: .4byte 0x0235AB40 + arm_func_end ov02_02346AAC + + arm_func_start ov02_02346AC4 +ov02_02346AC4: @ 0x02346AC4 + ldr r0, _02346AD8 @ =0x0235AB40 + mov r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x1e] + bx lr + .align 2, 0 +_02346AD8: .4byte 0x0235AB40 + arm_func_end ov02_02346AC4 + + arm_func_start ov02_02346ADC +ov02_02346ADC: @ 0x02346ADC + push {r3, lr} + ldr r0, _02346C5C @ =0x0235AB40 + mov r2, #0 + ldr r1, [r0] + strb r2, [r1, #0x1d] + ldr r1, [r0] + ldrb r0, [r1, #0x1c] + cmp r0, #3 + addls pc, pc, r0, lsl #2 + pop {r3, pc} +_02346B04: @ jump table + b _02346B14 @ case 0 + b _02346BC4 @ case 1 + b _02346BCC @ case 2 + b _02346C14 @ case 3 +_02346B14: + ldrb r0, [r1, #0x1e] + cmp r0, #0 + popne {r3, pc} + bl ov02_02346E3C + cmp r0, #4 + addls pc, pc, r0, lsl #2 + pop {r3, pc} +_02346B30: @ jump table + pop {r3, pc} @ case 0 + b _02346B44 @ case 1 + b _02346BA4 @ case 2 + b _02346BB0 @ case 3 + b _02346BBC @ case 4 +_02346B44: + ldr r0, _02346C5C @ =0x0235AB40 + ldr r0, [r0] + ldrb r0, [r0, #0x1b] + cmp r0, #0 + popeq {r3, pc} + mov r0, #0x16 + bl ov02_023480E0 + mov r0, #0 + bl ov02_02348104 + ldr r0, _02346C5C @ =0x0235AB40 + mov r2, #1 + ldr r1, [r0] + strb r2, [r1, #0x1d] + ldr r0, [r0] + add r0, r0, #0x14 + bl ov02_0234EF04 + ldr r0, _02346C5C @ =0x0235AB40 + mov r1, #1 + ldr r3, [r0] + ldrb r2, [r3, #0x1a] + strb r2, [r3, #0x18] + ldr r0, [r0] + strb r1, [r0, #0x1c] + pop {r3, pc} +_02346BA4: + mov r0, #2 + bl ov02_02346DA8 + pop {r3, pc} +_02346BB0: + mov r0, #3 + bl ov02_02346DA8 + pop {r3, pc} +_02346BBC: + bl ov02_02346DD4 + pop {r3, pc} +_02346BC4: + bl ov02_02346C60 + pop {r3, pc} +_02346BCC: + mov r0, #2 + bl ov02_02346EC8 + cmp r0, #2 + beq _02346BFC + ldr r0, _02346C5C @ =0x0235AB40 + mov r3, #5 + ldr r2, [r0] + mov r1, #0 + strb r3, [r2, #0x1d] + ldr r0, [r0] + strb r1, [r0, #0x1c] + pop {r3, pc} +_02346BFC: + bl ov02_02346E3C + cmp r0, #2 + popne {r3, pc} + mov r0, #2 + bl ov02_02346DA8 + pop {r3, pc} +_02346C14: + mov r0, #3 + bl ov02_02346EC8 + cmp r0, #3 + beq _02346C44 + ldr r0, _02346C5C @ =0x0235AB40 + mov r3, #7 + ldr r2, [r0] + mov r1, #0 + strb r3, [r2, #0x1d] + ldr r0, [r0] + strb r1, [r0, #0x1c] + pop {r3, pc} +_02346C44: + bl ov02_02346E3C + cmp r0, #3 + popne {r3, pc} + mov r0, #3 + bl ov02_02346DA8 + pop {r3, pc} + .align 2, 0 +_02346C5C: .4byte 0x0235AB40 + arm_func_end ov02_02346ADC + + arm_func_start ov02_02346C60 +ov02_02346C60: @ 0x02346C60 + push {r3, r4, lr} + sub sp, sp, #4 + ldr r0, _02346D24 @ =0x02352F34 + bl ov02_0234EC7C + cmp r0, #0 + beq _02346CFC + add r0, sp, #0 + bl ov02_0234EF04 + ldr r0, _02346D28 @ =0x0235AB40 + ldrh r1, [sp] + ldr r3, [r0] + ldrh r0, [r3, #0x10] + sub r0, r0, #0x1e + cmp r1, r0 + blt _02346CFC + ldrh r1, [sp, #2] + ldrh r0, [r3, #0x16] + ldrb r2, [r3, #0x18] + sub r0, r1, r0 + adds r4, r2, r0 + movmi r4, #0 + bmi _02346CD4 + ldrb r1, [r3, #0x1b] + ldr r0, _02346D2C @ =0x02352D70 + ldrb r2, [r3, #0x19] + ldrb r0, [r0, r1] + sub r0, r2, r0 + cmp r4, r0 + movge r4, r0 +_02346CD4: + mov r0, r4 + bl ov02_02346D30 + mov r0, r4 + bl ov02_02346FEC + ldr r0, _02346D28 @ =0x0235AB40 + mov r1, #2 + ldr r0, [r0] + add sp, sp, #4 + strb r1, [r0, #0x1d] + pop {r3, r4, pc} +_02346CFC: + bl ov02_02348148 + ldr r0, _02346D28 @ =0x0235AB40 + mov r3, #0 + ldr r2, [r0] + mov r1, #3 + strb r3, [r2, #0x1c] + ldr r0, [r0] + strb r1, [r0, #0x1d] + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02346D24: .4byte 0x02352F34 +_02346D28: .4byte 0x0235AB40 +_02346D2C: .4byte 0x02352D70 + arm_func_end ov02_02346C60 + + arm_func_start ov02_02346D30 +ov02_02346D30: @ 0x02346D30 + push {r4, lr} + ldr r1, _02346DA0 @ =0x0235AB40 + ldr r1, [r1] + ldrb r1, [r1, #0x1a] + subs r4, r1, r0 + rsbmi r4, r4, #0 + cmp r4, #2 + movlt r0, #0 + blt _02346D68 + cmp r4, #6 + mov r0, #0x7f + bge _02346D68 + rsb r1, r4, #6 + bl FUN_02075BFC +_02346D68: + bl ov02_02348104 + cmp r4, #2 + mvnlt r1, #0xff + blt _02346D94 + cmp r4, #6 + movge r1, #0x100 + bge _02346D94 + rsb r1, r4, #6 + mov r0, #0x200 + bl FUN_02075BFC + sub r1, r0, #0x100 +_02346D94: + ldr r0, _02346DA4 @ =0x0000FFFF + bl ov02_02348124 + pop {r4, pc} + .align 2, 0 +_02346DA0: .4byte 0x0235AB40 +_02346DA4: .4byte 0x0000FFFF + arm_func_end ov02_02346D30 + + arm_func_start ov02_02346DA8 +ov02_02346DA8: @ 0x02346DA8 + ldr r1, _02346DD0 @ =0x0235AB40 + cmp r0, #2 + ldr r1, [r1] + strb r0, [r1, #0x1c] + ldr r0, _02346DD0 @ =0x0235AB40 + moveq r1, #4 + ldr r0, [r0] + movne r1, #6 + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 +_02346DD0: .4byte 0x0235AB40 + arm_func_end ov02_02346DA8 + + arm_func_start ov02_02346DD4 +ov02_02346DD4: @ 0x02346DD4 + push {r3, lr} + add r0, sp, #0 + bl ov02_0234EF04 + ldr r0, _02346E34 @ =0x0235AB40 + ldr r2, _02346E38 @ =0x02352D70 + ldr ip, [r0] + ldrh r1, [sp, #2] + ldrb r3, [ip, #0x1b] + ldrh r0, [ip, #0x12] + ldrb r2, [r2, r3] + sub r0, r1, r0 + subs r0, r0, r2, lsr #1 + movmi r0, #0 + bmi _02346E1C + ldrb r1, [ip, #0x19] + sub r1, r1, r2 + cmp r0, r1 + movge r0, r1 +_02346E1C: + bl ov02_02346FEC + ldr r0, _02346E34 @ =0x0235AB40 + mov r1, #3 + ldr r0, [r0] + strb r1, [r0, #0x1d] + pop {r3, pc} + .align 2, 0 +_02346E34: .4byte 0x0235AB40 +_02346E38: .4byte 0x02352D70 + arm_func_end ov02_02346DD4 + + arm_func_start ov02_02346E3C +ov02_02346E3C: @ 0x02346E3C + push {r3, r4, r5, lr} + sub sp, sp, #8 + add r1, sp, #0 + mov r0, #1 + bl ov02_02346F14 + add r0, sp, #0 + bl ov02_0234ED8C + cmp r0, #0 + addne sp, sp, #8 + movne r0, #1 + popne {r3, r4, r5, pc} + mov r5, #2 + add r4, sp, #0 +_02346E70: + mov r0, r5 + mov r1, r4 + bl ov02_02346F14 + mov r0, r4 + bl ov02_0234ED8C + cmp r0, #0 + addne sp, sp, #8 + movne r0, r5 + popne {r3, r4, r5, pc} + add r5, r5, #1 + cmp r5, #3 + ble _02346E70 + add r1, sp, #0 + mov r0, #4 + bl ov02_02346F14 + add r0, sp, #0 + bl ov02_0234ED04 + cmp r0, #0 + movne r0, #4 + moveq r0, #0 + add sp, sp, #8 + pop {r3, r4, r5, pc} + arm_func_end ov02_02346E3C + + arm_func_start ov02_02346EC8 +ov02_02346EC8: @ 0x02346EC8 + push {r3, r4, r5, lr} + sub sp, sp, #8 + mov r5, #2 + add r4, sp, #0 +_02346ED8: + mov r0, r5 + mov r1, r4 + bl ov02_02346F14 + mov r0, r4 + bl ov02_0234EC7C + cmp r0, #0 + addne sp, sp, #8 + movne r0, r5 + popne {r3, r4, r5, pc} + add r5, r5, #1 + cmp r5, #3 + ble _02346ED8 + mov r0, #0 + add sp, sp, #8 + pop {r3, r4, r5, pc} + arm_func_end ov02_02346EC8 + + arm_func_start ov02_02346F14 +ov02_02346F14: @ 0x02346F14 + ldr r2, _02346FE4 @ =0x0235AB40 + cmp r0, #4 + ldr r3, [r2] + ldrh r3, [r3, #0x10] + strh r3, [r1] + add r3, r3, #0xc + strh r3, [r1, #4] + addls pc, pc, r0, lsl #2 + bx lr +_02346F38: @ jump table + bx lr @ case 0 + b _02346F4C @ case 1 + b _02346F80 @ case 2 + b _02346FA0 @ case 3 + b _02346FC4 @ case 4 +_02346F4C: + ldr r3, [r2] + ldr r0, _02346FE8 @ =0x02352D70 + ldrh ip, [r3, #0x12] + ldrb r3, [r3, #0x1a] + add r3, ip, r3 + strh r3, [r1, #2] + ldr r2, [r2] + ldrh r3, [r1, #2] + ldrb r2, [r2, #0x1b] + ldrb r0, [r0, r2] + add r0, r3, r0 + strh r0, [r1, #6] + bx lr +_02346F80: + ldr r0, [r2] + ldrh r0, [r0, #0x12] + sub r0, r0, #0xd + strh r0, [r1, #2] + ldr r0, [r2] + ldrh r0, [r0, #0x12] + strh r0, [r1, #6] + bx lr +_02346FA0: + ldr r0, [r2] + ldrh r2, [r0, #0x12] + ldrb r0, [r0, #0x19] + add r0, r2, r0 + strh r0, [r1, #2] + ldrh r0, [r1, #2] + add r0, r0, #0xd + strh r0, [r1, #6] + bx lr +_02346FC4: + ldr r0, [r2] + ldrh r3, [r0, #0x12] + strh r3, [r1, #2] + ldr r0, [r2] + ldrb r0, [r0, #0x19] + add r0, r3, r0 + strh r0, [r1, #6] + bx lr + .align 2, 0 +_02346FE4: .4byte 0x0235AB40 +_02346FE8: .4byte 0x02352D70 + arm_func_end ov02_02346F14 + + arm_func_start ov02_02346FEC +ov02_02346FEC: @ 0x02346FEC + push {r4, lr} + ldr r1, _02347024 @ =0x0235AB40 + mov r4, r0 + ldr r0, [r1] + mvn r1, #0 + ldrh r3, [r0, #0x12] + ldrh r2, [r0, #0x10] + ldr r0, [r0] + add r3, r4, r3 + bl ov02_0234D440 + ldr r0, _02347024 @ =0x0235AB40 + ldr r0, [r0] + strb r4, [r0, #0x1a] + pop {r4, pc} + .align 2, 0 +_02347024: .4byte 0x0235AB40 + arm_func_end ov02_02346FEC + + arm_func_start ov02_02347028 +ov02_02347028: @ 0x02347028 + push {r3, lr} + ldr r0, _02347054 @ =0x0235AB44 + ldr r0, [r0] + cmp r0, #0 + popne {r3, pc} + ldr r0, _02347058 @ =0x00001E60 + mov r1, #0x20 + bl ov02_0234E7B4 + ldr r1, _02347054 @ =0x0235AB44 + str r0, [r1] + pop {r3, pc} + .align 2, 0 +_02347054: .4byte 0x0235AB44 +_02347058: .4byte 0x00001E60 + arm_func_end ov02_02347028 + + arm_func_start ov02_0234705C +ov02_0234705C: @ 0x0234705C + push {r3, lr} + ldr r0, _02347088 @ =0x0235AB44 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} +_02347070: + bl FUN_022BF640 + cmp r0, #0x8000 + bne _02347070 + ldr r0, _0234708C @ =0x0235AB44 + bl ov02_0234E7D8 + pop {r3, pc} + .align 2, 0 +_02347088: .4byte 0x0235AB44 +_0234708C: .4byte 0x0235AB44 + arm_func_end ov02_0234705C + + arm_func_start ov02_02347090 +ov02_02347090: @ 0x02347090 + push {r3, r4, r5, lr} + ldr r1, _02347150 @ =0x0235AB44 + mov r0, #0 + ldr r1, [r1] + mov r2, #0x348 + add r1, r1, #0x1300 + bl FUN_0207C2B8 + ldr r0, _02347150 @ =0x0235AB44 + ldr r1, _02347154 @ =ov02_02347288 + ldr r0, [r0] + mov r2, #3 + bl FUN_022BFB14 + cmp r0, #2 + movne r0, #0 + popne {r3, r4, r5, pc} + ldr r4, _02347150 @ =0x0235AB44 +_023470D0: + ldr r0, [r4] + add r0, r0, #0x28c + add r0, r0, #0x1400 + bl FUN_022BF3E0 + ldr ip, [r4] + add r0, ip, #0x1600 + ldrh r0, [r0, #0x8c] + cmp r0, #2 + bne _023470D0 + add r0, ip, #0x248 + ldr r5, _02347158 @ =0x02352D80 + add lr, r0, #0x1400 + arm_func_end ov02_02347090 + + arm_func_start ov02_02347100 +ov02_02347100: @ 0x02347100 + mov r4, #4 +_02347104: + ldm r5!, {r0, r1, r2, r3} + stm lr!, {r0, r1, r2, r3} + subs r4, r4, #1 + bne _02347104 + ldr r0, [r5] + add r1, ip, #0xf00 + str r0, [lr] + add r0, ip, #0x1000 + str r1, [r0, #0x648] + bl FUN_022BF780 + ldr r1, _02347150 @ =0x0235AB44 + ldr r1, [r1] + add r1, r1, #0x1600 + strh r0, [r1, #0x50] + bl ov02_0234715C + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_02347150: .4byte 0x0235AB44 +_02347154: .4byte ov02_02347288 +_02347158: .4byte 0x02352D80 + arm_func_end ov02_02347100 + + arm_func_start ov02_0234715C +ov02_0234715C: @ 0x0234715C + push {r3, lr} + ldr r1, _02347188 @ =0x0235AB44 + ldr r0, _0234718C @ =ov02_02347288 + ldr r1, [r1] + add r1, r1, #0x248 + add r1, r1, #0x1400 + bl FUN_022BFED8 + cmp r0, #2 + moveq r0, #1 + movne r0, #0 + pop {r3, pc} + .align 2, 0 +_02347188: .4byte 0x0235AB44 +_0234718C: .4byte ov02_02347288 + arm_func_end ov02_0234715C + + arm_func_start ov02_02347190 +ov02_02347190: @ 0x02347190 + push {r4, lr} + ldr r1, _02347224 @ =0x0235AB44 + mov r2, #1 + ldr r0, [r1] + add r0, r0, #0x1000 + strb r2, [r0, #0xe5c] + ldr r0, [r1] + add r0, r0, #0x28c + add r0, r0, #0x1400 + bl FUN_022BF3E0 + ldr r0, _02347224 @ =0x0235AB44 + ldr r0, [r0] + add r0, r0, #0x1600 + ldrh r0, [r0, #0x8c] + cmp r0, #2 + beq _0234720C + ldr r0, _02347228 @ =ov02_02347288 + bl FUN_022BFB9C + cmp r0, #2 + movne r0, #0 + popne {r4, pc} + ldr r4, _02347224 @ =0x0235AB44 +_023471E8: + ldr r0, [r4] + add r0, r0, #0x28c + add r0, r0, #0x1400 + bl FUN_022BF3E0 + ldr r0, [r4] + add r0, r0, #0x1600 + ldrh r0, [r0, #0x8c] + cmp r0, #2 + bne _023471E8 +_0234720C: + ldr r0, _02347228 @ =ov02_02347288 + bl FUN_022BFBD4 + cmp r0, #2 + movne r0, #0 + moveq r0, #1 + pop {r4, pc} + .align 2, 0 +_02347224: .4byte 0x0235AB44 +_02347228: .4byte ov02_02347288 + arm_func_end ov02_02347190 + + arm_func_start ov02_0234722C +ov02_0234722C: @ 0x0234722C + push {r4, r5, r6, r7, r8, lr} + ldr r1, _02347280 @ =0x0235AB44 + mov r6, #0 + ldr r1, [r1] + ldr r5, _02347284 @ =0x02352D78 + add r8, r1, #0x1300 + mov r7, r6 + str r8, [r0] + mov r4, #6 +_02347250: + mov r1, r5 + mov r2, r4 + add r0, r8, #0x20 + bl FUN_02087348 + cmp r0, #0 + add r7, r7, #1 + addne r6, r6, #1 + cmp r7, #0x14 + add r8, r8, #0x2a + blt _02347250 + mov r0, r6 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02347280: .4byte 0x0235AB44 +_02347284: .4byte 0x02352D78 + arm_func_end ov02_0234722C + + arm_func_start ov02_02347288 +ov02_02347288: @ 0x02347288 + push {r3, lr} + ldrh r1, [r0, #2] + cmp r1, #0 + popne {r3, pc} + ldr r1, _023472E8 @ =0x0235AB44 + ldr r1, [r1] + add r1, r1, #0x1000 + ldrb r1, [r1, #0xe5c] + cmp r1, #0 + ldrheq r1, [r0] + cmpeq r1, #0x26 + popne {r3, pc} + ldrh r1, [r0, #8] + cmp r1, #4 + beq _023472D8 + cmp r1, #5 + bne _023472E0 + bl ov02_023472EC + bl ov02_0234715C + pop {r3, pc} +_023472D8: + bl ov02_0234715C + pop {r3, pc} +_023472E0: + bl FUN_0207BC20 + pop {r3, pc} + .align 2, 0 +_023472E8: .4byte 0x0235AB44 + arm_func_end ov02_02347288 + + arm_func_start ov02_023472EC +ov02_023472EC: @ 0x023472EC + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x88 + ldr r1, _023474B4 @ =0x0235AB44 + mov fp, r0 + ldr r2, [r1] + mov r1, #0x400 + add r0, r2, #0xf00 + add r2, r2, #0x1300 + str r2, [sp] + bl FUN_0207A2A4 + ldrh r0, [fp, #0xe] + mov sl, #0 + cmp r0, #0 + addle sp, sp, #0x88 + pople {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02347328: + add r0, fp, sl, lsl #2 + ldr r4, [r0, #0x10] + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0234749C + ldrh r0, [r4, #0x3c] + cmp r0, #0 + bne _0234749C + ldr r7, [sp] + mov r5, #0 + mov r6, #6 +_02347354: + mov r2, r6 + add r0, r4, #4 + add r1, r7, #0x20 + bl FUN_02087348 + cmp r0, #0 + beq _0234737C + add r5, r5, #1 + cmp r5, #0x14 + add r7, r7, #0x2a + blt _02347354 +_0234737C: + cmp r5, #0x14 + bne _023473C8 + ldr r8, [sp] + ldr r7, _023474B8 @ =0x02352D78 + mov r5, #0 + mov r6, #6 +_02347394: + mov r1, r7 + mov r2, r6 + add r0, r8, #0x20 + bl FUN_02087348 + cmp r0, #0 + beq _023473BC + add r5, r5, #1 + cmp r5, #0x14 + add r8, r8, #0x2a + blt _02347394 +_023473BC: + cmp r5, #0x14 + addeq sp, sp, #0x88 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023473C8: + ldr r0, [sp] + mov r1, #0x2a + mla sb, r5, r1, r0 + add r0, r4, #4 + add r1, sb, #0x20 + mov r2, #6 + bl FUN_0207C4C8 + mov r1, sb + add r0, r4, #0xc + mov r2, #0x20 + bl FUN_0207C4C8 + add r0, fp, sl, lsl #1 + ldrh r0, [r0, #0x50] + strh r0, [sb, #0x26] + ldrh r0, [r4, #0x2c] + tst r0, #0x10 + moveq r0, #0 + strbeq r0, [sb, #0x28] + beq _0234749C + mov r2, #1 + add r0, sp, #4 + mov r1, r4 + strb r2, [sb, #0x28] + bl FUN_022BF814 + ldrb r8, [sp, #4] + mov r7, #0 + cmp r8, #0 + ble _0234749C + ldr r5, _023474BC @ =0x02352D74 + mov r4, #4 + add r6, sp, #4 +_02347444: + add r1, r6, r7, lsl #3 + ldrb r0, [r1, #4] + cmp r0, #0x30 + moveq r0, #2 + strbeq r0, [sb, #0x28] + beq _0234749C + cmp r0, #0xdd + bne _02347490 + ldrb r0, [r1, #5] + cmp r0, #4 + blo _02347490 + ldr r0, [r1, #8] + mov r1, r5 + mov r2, r4 + bl FUN_02087348 + cmp r0, #0 + moveq r0, #2 + strbeq r0, [sb, #0x28] + beq _0234749C +_02347490: + add r7, r7, #1 + cmp r7, r8 + blt _02347444 +_0234749C: + ldrh r0, [fp, #0xe] + add sl, sl, #1 + cmp sl, r0 + blt _02347328 + add sp, sp, #0x88 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_023474B4: .4byte 0x0235AB44 +_023474B8: .4byte 0x02352D78 +_023474BC: .4byte 0x02352D74 + arm_func_end ov02_023472EC + + arm_func_start ov02_023474C0 +ov02_023474C0: @ 0x023474C0 + push {r3, lr} + ldr r0, _023474F8 @ =0x000006F8 + mov r1, #0x20 + bl ov02_0234E7B4 + ldr r1, _023474FC @ =0x0235AB48 + add r2, r0, #0xf8 + str r0, [r1] + ldr r1, _02347500 @ =0x0000A001 + add r0, r2, #0x400 + bl FUN_02085030 + ldr r0, _023474FC @ =0x0235AB48 + ldr r0, [r0] + bl FUN_022ED660 + pop {r3, pc} + .align 2, 0 +_023474F8: .4byte 0x000006F8 +_023474FC: .4byte 0x0235AB48 +_02347500: .4byte 0x0000A001 + arm_func_end ov02_023474C0 + + arm_func_start ov02_02347504 +ov02_02347504: @ 0x02347504 + ldr ip, _02347510 @ =ov02_0234E7D8 + ldr r0, _02347514 @ =0x0235AB48 + bx ip + .align 2, 0 +_02347510: .4byte ov02_0234E7D8 +_02347514: .4byte 0x0235AB48 + arm_func_end ov02_02347504 + + arm_func_start ov02_02347518 +ov02_02347518: @ 0x02347518 + ldr r0, _02347528 @ =0x0235AB48 + ldr r0, [r0] + add r0, r0, #0x400 + bx lr + .align 2, 0 +_02347528: .4byte 0x0235AB48 + arm_func_end ov02_02347518 + + arm_func_start ov02_0234752C +ov02_0234752C: @ 0x0234752C + ldr r1, _0234753C @ =0x0235AB48 + ldr r1, [r1] + strb r0, [r1, #0x4f5] + bx lr + .align 2, 0 +_0234753C: .4byte 0x0235AB48 + arm_func_end ov02_0234752C + + arm_func_start ov02_02347540 +ov02_02347540: @ 0x02347540 + ldr r1, _02347550 @ =0x0235AB48 + ldr r1, [r1] + strb r0, [r1, #0x4f6] + bx lr + .align 2, 0 +_02347550: .4byte 0x0235AB48 + arm_func_end ov02_02347540 + + arm_func_start ov02_02347554 +ov02_02347554: @ 0x02347554 + push {r3, lr} + ldr r1, _02347580 @ =0x0235AB48 + mov r2, #0x20 + ldr r1, [r1] + add r1, r1, #0x440 + bl FUN_0207C4C8 + ldr r0, _02347580 @ =0x0235AB48 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x4e7] + pop {r3, pc} + .align 2, 0 +_02347580: .4byte 0x0235AB48 + arm_func_end ov02_02347554 + + arm_func_start ov02_02347584 +ov02_02347584: @ 0x02347584 + push {r3, r4, r5, r6, r7, r8, sb, lr} + ldr r1, _02347718 @ =0x0235AB48 + mov r6, r0 + ldr r0, [r1] + mov r1, #0 + add r0, r0, #0x480 + mov r2, #0x10 + bl FUN_0207C40C + mov r0, r6 + mov r1, #0x20 + bl ov02_0234F59C + mov r5, r0 + cmp r5, #0xa + bgt _023475CC + bge _023475E4 + cmp r5, #0 + beq _023475E4 + b _0234763C +_023475CC: + cmp r5, #0x1a + bgt _023475DC + beq _023475E4 + b _0234763C +_023475DC: + cmp r5, #0x20 + bne _0234763C +_023475E4: + ldr r0, _02347718 @ =0x0235AB48 + cmp r5, #0 + ldr r2, [r0] + mov r4, #0 + ldrb r1, [r2, #0x4e6] + bic r1, r1, #0xfc + strb r1, [r2, #0x4e6] + ldr r0, [r0] + add r8, r0, #0x480 + ble _02347668 +_0234760C: + ldrb r0, [r6, r4] + add sb, r6, r4 + bl ov02_02348008 + mov r7, r0 + ldrb r0, [sb, #1] + bl ov02_02348008 + add r0, r0, r7, lsl #4 + add r4, r4, #2 + cmp r4, r5 + strb r0, [r8], #1 + blt _0234760C + b _02347668 +_0234763C: + ldr r1, _02347718 @ =0x0235AB48 + mov r0, r6 + ldr r4, [r1] + mov r2, #0x10 + ldrb r3, [r4, #0x4e6] + bic r3, r3, #0xfc + orr r3, r3, #4 + strb r3, [r4, #0x4e6] + ldr r1, [r1] + add r1, r1, #0x480 + bl FUN_0207C4C8 +_02347668: + cmp r5, #5 + bgt _02347680 + bge _023476C4 + cmp r5, #0 + beq _023476AC + b _023476FC +_02347680: + cmp r5, #0xd + bgt _023476A0 + cmp r5, #0xa + blt _023476FC + beq _023476C4 + cmp r5, #0xd + beq _023476E0 + b _023476FC +_023476A0: + cmp r5, #0x1a + beq _023476E0 + b _023476FC +_023476AC: + ldr r0, _02347718 @ =0x0235AB48 + ldr r1, [r0] + ldrb r0, [r1, #0x4e6] + bic r0, r0, #3 + strb r0, [r1, #0x4e6] + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_023476C4: + ldr r0, _02347718 @ =0x0235AB48 + ldr r1, [r0] + ldrb r0, [r1, #0x4e6] + bic r0, r0, #3 + orr r0, r0, #1 + strb r0, [r1, #0x4e6] + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_023476E0: + ldr r0, _02347718 @ =0x0235AB48 + ldr r1, [r0] + ldrb r0, [r1, #0x4e6] + bic r0, r0, #3 + orr r0, r0, #2 + strb r0, [r1, #0x4e6] + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_023476FC: + ldr r0, _02347718 @ =0x0235AB48 + ldr r1, [r0] + ldrb r0, [r1, #0x4e6] + bic r0, r0, #3 + orr r0, r0, #3 + strb r0, [r1, #0x4e6] + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_02347718: .4byte 0x0235AB48 + arm_func_end ov02_02347584 +_0234771C: + .byte 0x0C, 0x10, 0x9F, 0xE5 + .byte 0x0C, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x13, 0x1D, 0x81, 0xE2, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0x48, 0xAB, 0x35, 0x02, 0x80, 0x7F, 0x34, 0x02, 0x0C, 0x10, 0x9F, 0xE5, 0x0C, 0xC0, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x91, 0xE5, 0x4F, 0x1E, 0x81, 0xE2, 0x1C, 0xFF, 0x2F, 0xE1, 0x48, 0xAB, 0x35, 0x02 + .byte 0x80, 0x7F, 0x34, 0x02, 0x10, 0x10, 0x9F, 0xE5, 0x10, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 + .byte 0xC4, 0x10, 0x81, 0xE2, 0x01, 0x1B, 0x81, 0xE2, 0x1C, 0xFF, 0x2F, 0xE1, 0x48, 0xAB, 0x35, 0x02 + .byte 0x80, 0x7F, 0x34, 0x02, 0x10, 0x10, 0x9F, 0xE5, 0x10, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 + .byte 0xC8, 0x10, 0x81, 0xE2, 0x01, 0x1B, 0x81, 0xE2, 0x1C, 0xFF, 0x2F, 0xE1, 0x48, 0xAB, 0x35, 0x02 + .byte 0x80, 0x7F, 0x34, 0x02, 0x10, 0x10, 0x9F, 0xE5, 0x10, 0xC0, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 + .byte 0xCC, 0x10, 0x81, 0xE2, 0x01, 0x1B, 0x81, 0xE2, 0x1C, 0xFF, 0x2F, 0xE1, 0x48, 0xAB, 0x35, 0x02 + .byte 0x80, 0x7F, 0x34, 0x02 + + arm_func_start ov02_023477B4 +ov02_023477B4: @ 0x023477B4 + ldr r2, _023477D0 @ =0x0235AB48 + mov r1, r0 + ldr r0, [r2] + ldr ip, _023477D4 @ =FUN_0207C4C8 + mov r2, #0x20 + add r0, r0, #0x440 + bx ip + .align 2, 0 +_023477D0: .4byte 0x0235AB48 +_023477D4: .4byte FUN_0207C4C8 + arm_func_end ov02_023477B4 + + arm_func_start ov02_023477D8 +ov02_023477D8: @ 0x023477D8 + push {r3, lr} + sub sp, sp, #8 + ldr r2, _02347810 @ =0x0235AB48 + ldr r1, _02347814 @ =0x02353D44 + ldr r3, [r2] + ldrb r2, [r3, #0x4c2] + str r2, [sp] + ldrb r2, [r3, #0x4c3] + str r2, [sp, #4] + ldrb r2, [r3, #0x4c0] + ldrb r3, [r3, #0x4c1] + bl FUN_020790DC + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_02347810: .4byte 0x0235AB48 +_02347814: .4byte 0x02353D44 + arm_func_end ov02_023477D8 + + arm_func_start ov02_02347818 +ov02_02347818: @ 0x02347818 + push {r3, lr} + sub sp, sp, #8 + ldr r2, _02347850 @ =0x0235AB48 + ldr r1, _02347854 @ =0x02353D44 + ldr r3, [r2] + ldrb r2, [r3, #0x4f2] + str r2, [sp] + ldrb r2, [r3, #0x4f3] + str r2, [sp, #4] + ldrb r2, [r3, #0x4f0] + ldrb r3, [r3, #0x4f1] + bl FUN_020790DC + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_02347850: .4byte 0x0235AB48 +_02347854: .4byte 0x02353D44 + arm_func_end ov02_02347818 + + arm_func_start ov02_02347858 +ov02_02347858: @ 0x02347858 + push {r3, lr} + sub sp, sp, #8 + ldr r2, _02347894 @ =0x0235AB48 + ldr r1, _02347898 @ =0x02353D44 + ldr ip, [r2] + add r3, ip, #0xc4 + ldrb r2, [r3, #0x402] + str r2, [sp] + ldrb r2, [r3, #0x403] + str r2, [sp, #4] + ldrb r2, [ip, #0x4c4] + ldrb r3, [r3, #0x401] + bl FUN_020790DC + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_02347894: .4byte 0x0235AB48 +_02347898: .4byte 0x02353D44 + arm_func_end ov02_02347858 + + arm_func_start ov02_0234789C +ov02_0234789C: @ 0x0234789C + push {r3, lr} + sub sp, sp, #8 + ldr r2, _023478D8 @ =0x0235AB48 + ldr r1, _023478DC @ =0x02353D44 + ldr ip, [r2] + add r3, ip, #0xc8 + ldrb r2, [r3, #0x402] + str r2, [sp] + ldrb r2, [r3, #0x403] + str r2, [sp, #4] + ldrb r2, [ip, #0x4c8] + ldrb r3, [r3, #0x401] + bl FUN_020790DC + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_023478D8: .4byte 0x0235AB48 +_023478DC: .4byte 0x02353D44 + arm_func_end ov02_0234789C + + arm_func_start ov02_023478E0 +ov02_023478E0: @ 0x023478E0 + push {r3, lr} + sub sp, sp, #8 + ldr r2, _0234791C @ =0x0235AB48 + ldr r1, _02347920 @ =0x02353D44 + ldr ip, [r2] + add r3, ip, #0xcc + ldrb r2, [r3, #0x402] + str r2, [sp] + ldrb r2, [r3, #0x403] + str r2, [sp, #4] + ldrb r2, [ip, #0x4cc] + ldrb r3, [r3, #0x401] + bl FUN_020790DC + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_0234791C: .4byte 0x0235AB48 +_02347920: .4byte 0x02353D44 + arm_func_end ov02_023478E0 + + arm_func_start ov02_02347924 +ov02_02347924: @ 0x02347924 + ldr r1, _02347938 @ =0x0235AB48 + ldr r1, [r1] + add r0, r1, r0, lsl #8 + ldrb r0, [r0, #0xe7] + bx lr + .align 2, 0 +_02347938: .4byte 0x0235AB48 + arm_func_end ov02_02347924 + + arm_func_start ov02_0234793C +ov02_0234793C: @ 0x0234793C + push {r3, r4, r5, lr} + ldr r1, _02347A14 @ =0x0235AB48 + mov r3, #0x78 + ldr r5, [r1] + add r4, r5, r0, lsl #8 + mov lr, r4 + add ip, r5, #0x400 +_02347958: + ldrb r2, [lr] + ldrb r1, [lr, #1] + add lr, lr, #2 + subs r3, r3, #1 + strb r2, [ip] + strb r1, [ip, #1] + add ip, ip, #2 + bne _02347958 + ldr r1, _02347A18 @ =0x02352DC4 + strb r0, [r5, #0x4f4] + add r0, r4, #0xc0 + mov r2, #4 + bl FUN_02087348 + cmp r0, #0 + ldrne r0, _02347A14 @ =0x0235AB48 + movne r1, #0 + ldreq r0, _02347A14 @ =0x0235AB48 + moveq r1, #1 + ldr r0, [r0] + mov r2, #4 + strb r1, [r0, #0x4f5] + ldr r1, _02347A18 @ =0x02352DC4 + add r0, r4, #0xc8 + bl FUN_02087348 + cmp r0, #0 + bne _023479D8 + ldr r1, _02347A18 @ =0x02352DC4 + add r0, r4, #0xcc + mov r2, #4 + bl FUN_02087348 + cmp r0, #0 + beq _023479EC +_023479D8: + ldr r0, _02347A14 @ =0x0235AB48 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x4f6] + b _023479FC +_023479EC: + ldr r0, _02347A14 @ =0x0235AB48 + mov r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x4f6] +_023479FC: + ldr r1, _02347A14 @ =0x0235AB48 + ldrb r0, [r4, #0xd0] + ldr r1, [r1] + add r1, r1, #0x4f0 + bl FUN_022ED804 + pop {r3, r4, r5, pc} + .align 2, 0 +_02347A14: .4byte 0x0235AB48 +_02347A18: .4byte 0x02352DC4 + arm_func_end ov02_0234793C + + arm_func_start ov02_02347A1C +ov02_02347A1C: @ 0x02347A1C + push {r3, r4, r5, lr} + ldr r0, _02347AF4 @ =0x0235AB48 + mov r2, #0x78 + ldr r1, [r0] + add r4, r1, #0x400 + ldrb r0, [r4, #0xf4] + mov ip, r4 + add r5, r1, r0, lsl #8 + mov r3, r5 +_02347A40: + ldrb r1, [ip] + ldrb r0, [ip, #1] + add ip, ip, #2 + subs r2, r2, #1 + strb r1, [r3] + strb r0, [r3, #1] + add r3, r3, #2 + bne _02347A40 + ldrb r0, [r4, #0xf5] + mov r2, #4 + cmp r0, #0 + beq _02347A94 + add r0, r5, #0xc0 + mov r1, #0 + bl FUN_0207C40C + add r0, r5, #0xc4 + mov r1, #0 + mov r2, #4 + bl FUN_0207C40C + mov r0, #0 + b _02347AB8 +_02347A94: + add r0, r4, #0xc0 + add r1, r5, #0xc0 + bl FUN_0207C4C8 + add r0, r4, #0xc4 + add r1, r5, #0xc4 + mov r2, #4 + bl FUN_0207C4C8 + add r0, r4, #0xf0 + bl FUN_022ED7C0 +_02347AB8: + strb r0, [r5, #0xd0] + ldrb r0, [r4, #0xf6] + mov r2, #8 + cmp r0, #0 + beq _02347ADC + add r0, r5, #0xc8 + mov r1, #0 + bl FUN_0207C40C + b _02347AE8 +_02347ADC: + add r0, r4, #0xc8 + add r1, r5, #0xc8 + bl FUN_0207C4C8 +_02347AE8: + ldrb r0, [r4, #0xf4] + bl ov02_02347E18 + pop {r3, r4, r5, pc} + .align 2, 0 +_02347AF4: .4byte 0x0235AB48 + arm_func_end ov02_02347A1C + + arm_func_start ov02_02347AF8 +ov02_02347AF8: @ 0x02347AF8 + push {r4, r5, r6, r7, r8, lr} + ldr r1, _02347C08 @ =0x0235AB48 + mov r6, r0 + ldr r4, [r1] + mov r1, #0 + add r0, r4, #0x400 + mov r2, #0xef + bl FUN_0207C40C + mov r0, r6 + add r1, r4, #0x440 + mov r2, #0x20 + bl FUN_0207C4C8 + ldr r0, [r6, #0x20] + cmp r0, #1 + beq _02347B48 + cmp r0, #2 + beq _02347B60 + cmp r0, #3 + beq _02347B78 + b _02347B90 +_02347B48: + ldrb r0, [r4, #0x4e6] + mov r5, #5 + bic r0, r0, #3 + orr r0, r0, #1 + strb r0, [r4, #0x4e6] + b _02347BA0 +_02347B60: + ldrb r0, [r4, #0x4e6] + mov r5, #0xd + bic r0, r0, #3 + orr r0, r0, #2 + strb r0, [r4, #0x4e6] + b _02347BA0 +_02347B78: + ldrb r0, [r4, #0x4e6] + mov r5, #0x10 + bic r0, r0, #3 + orr r0, r0, #3 + strb r0, [r4, #0x4e6] + b _02347BA0 +_02347B90: + ldrb r0, [r4, #0x4e6] + mov r5, #0 + bic r0, r0, #3 + strb r0, [r4, #0x4e6] +_02347BA0: + ldrb r0, [r4, #0x4e6] + add r8, r6, #0x28 + add r7, r4, #0x480 + bic r0, r0, #0xfc + strb r0, [r4, #0x4e6] + mov r6, #0 +_02347BB8: + mov r0, r8 + mov r1, r7 + mov r2, r5 + bl FUN_0207C4C8 + add r6, r6, #1 + cmp r6, #4 + add r7, r7, #0x10 + add r8, r8, #0x20 + blt _02347BB8 + mov r3, #2 + add r0, r4, #0x4f0 + mov r1, #0 + mov r2, #4 + strb r3, [r4, #0x4e7] + bl FUN_0207C40C + mov r0, #1 + strb r0, [r4, #0x4f5] + strb r0, [r4, #0x4f6] + bl ov02_02347A1C + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02347C08: .4byte 0x0235AB48 + arm_func_end ov02_02347AF8 + + arm_func_start ov02_02347C0C +ov02_02347C0C: @ 0x02347C0C + push {r3, r4, r5, lr} + ldr r1, _02347D18 @ =0x0235AB48 + mov r5, r0 + ldr r0, [r1] + mov r1, #0 + add r4, r0, #0x400 + mov r0, r4 + mov r2, #0xef + bl FUN_0207C40C + mov r0, r5 + add r1, r4, #0xd1 + mov r2, #5 + bl FUN_0207C4C8 + add r0, r5, #6 + add r1, r4, #0xd6 + mov r2, #5 + bl FUN_0207C4C8 + add r0, r5, #0xc + add r1, r4, #0xdb + mov r2, #5 + bl FUN_0207C4C8 + add r0, r5, #0x12 + add r1, r4, #0xe0 + mov r2, #5 + bl FUN_0207C4C8 + add r0, r5, #0x18 + add r1, r4, #0x60 + mov r2, #0x20 + bl FUN_0207C4C8 + add r0, r5, #0x39 + add r1, r4, #0x80 + mov r2, #0xd + bl FUN_0207C4C8 + add r0, r5, #0x47 + add r1, r4, #0x90 + mov r2, #0xd + bl FUN_0207C4C8 + add r0, r5, #0x55 + add r1, r4, #0xa0 + mov r2, #0xd + bl FUN_0207C4C8 + add r0, r5, #0x63 + add r1, r4, #0xb0 + mov r2, #0xd + bl FUN_0207C4C8 + add r0, r5, #0x71 + add r1, r4, #0x40 + mov r2, #0x20 + bl FUN_0207C4C8 + ldrb r2, [r4, #0xe6] + mov r1, #1 + add r0, r4, #0xf0 + bic r2, r2, #3 + orr r2, r2, #2 + strb r2, [r4, #0xe6] + and r2, r2, #0xff + bic r2, r2, #0xfc + strb r2, [r4, #0xe6] + strb r1, [r4, #0xe7] + mov r1, #0 + mov r2, #4 + bl FUN_0207C40C + mov r0, #1 + strb r0, [r4, #0xf5] + strb r0, [r4, #0xf6] + bl ov02_02347A1C + pop {r3, r4, r5, pc} + .align 2, 0 +_02347D18: .4byte 0x0235AB48 + arm_func_end ov02_02347C0C + + arm_func_start ov02_02347D1C +ov02_02347D1C: @ 0x02347D1C + ldr r0, _02347D28 @ =0x0235AB48 + ldr r0, [r0] + bx lr + .align 2, 0 +_02347D28: .4byte 0x0235AB48 + arm_func_end ov02_02347D1C + + arm_func_start ov02_02347D2C +ov02_02347D2C: @ 0x02347D2C + push {r3, r4, r5, lr} + ldr r1, _02347D64 @ =0x0235AB48 + mov r5, r0 + ldr r0, [r1] + mov r1, #0 + add r4, r0, r5, lsl #8 + mov r0, r4 + mov r2, #0xef + bl FUN_0207C40C + mov r1, #0xff + mov r0, r5 + strb r1, [r4, #0xe7] + bl ov02_02347E18 + pop {r3, r4, r5, pc} + .align 2, 0 +_02347D64: .4byte 0x0235AB48 + arm_func_end ov02_02347D2C + + arm_func_start ov02_02347D68 +ov02_02347D68: @ 0x02347D68 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x14 + ldr r1, _02347E14 @ =0x0235AB48 + mov r0, #0 + ldr r1, [r1] + mov r2, #0x400 + bl FUN_0207C2B8 + ldr r0, _02347E14 @ =0x0235AB48 + mov r3, #0 + mov r2, #0xff +_02347D90: + ldr r1, [r0] + add r1, r1, r3, lsl #8 + add r3, r3, #1 + strb r2, [r1, #0xe7] + cmp r3, #3 + blt _02347D90 + add r0, sp, #0 + bl FUN_022EE650 + add r0, sp, #0 + bl FUN_022EDF4C + mov r8, #0 + ldr r4, _02347E14 @ =0x0235AB48 + mov r6, r0 + mov r7, r8 + mov r5, #0xe +_02347DCC: + ldr r1, [r4] + mov r0, r6 + add r1, r1, r7 + mov r2, r5 + add r1, r1, #0xf0 + bl FUN_0207C4C8 + add r8, r8, #1 + cmp r8, #2 + add r7, r7, #0x100 + blt _02347DCC + mov r4, #0 +_02347DF8: + mov r0, r4 + bl ov02_02347E18 + add r4, r4, #1 + cmp r4, #4 + blt _02347DF8 + add sp, sp, #0x14 + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02347E14: .4byte 0x0235AB48 + arm_func_end ov02_02347D68 + + arm_func_start ov02_02347E18 +ov02_02347E18: @ 0x02347E18 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x14 + ldr r1, _02347F7C @ =0x0235AB48 + mov r7, r0 + ldr r0, [r1] + mov r6, #0 + add r2, r0, r7, lsl #8 + ldrb r5, [r2, #0xe7] + add r0, sp, #4 + mov r1, r6 + mov r2, #0x10 + mov r4, #1 + bl FUN_0207C40C + add r0, sp, #4 + mov r2, r4 + str r2, [r0, r7, lsl #2] + cmp r7, #2 + bgt _02347EF4 + ldr r0, _02347F7C @ =0x0235AB48 + ldr r0, [r0] + ldrb r1, [r0, #0xef] + tst r1, r4, lsl r7 + movne r6, r2 + cmp r5, #0xff + bne _02347EB8 + cmp r6, #0 + beq _02347EB8 + ldrb r1, [r0, #0xef] + mvn r3, r4, lsl r7 + and r2, r1, r3 + ldr r1, _02347F7C @ =0x0235AB48 + strb r2, [r0, #0xef] + ldr r2, [r1] + mov r0, #1 + ldrb r1, [r2, #0x1ef] + and r1, r1, r3 + strb r1, [r2, #0x1ef] + str r0, [sp, #8] + str r0, [sp, #4] + b _02347EF4 +_02347EB8: + cmp r5, #0xff + beq _02347EF4 + cmp r6, #0 + bne _02347EF4 + ldrb r3, [r0, #0xef] + ldr r1, _02347F7C @ =0x0235AB48 + mov r2, #1 + orr r3, r3, r4, lsl r7 + strb r3, [r0, #0xef] + ldr r1, [r1] + ldrb r0, [r1, #0x1ef] + orr r0, r0, r4, lsl r7 + strb r0, [r1, #0x1ef] + str r2, [sp, #8] + str r2, [sp, #4] +_02347EF4: + mov r6, #0 + ldr r8, _02347F7C @ =0x0235AB48 + mov r7, r6 + mov r4, #0xfe + add r5, sp, #4 +_02347F08: + ldr r0, [r5, r6, lsl #2] + cmp r0, #0 + beq _02347F38 + ldr r1, [r8] + mov r2, r4 + add r0, r1, #0xf8 + add r0, r0, #0x400 + add r1, r1, r7 + bl FUN_02085158 + ldr r1, [r8] + add r1, r1, r6, lsl #8 + strh r0, [r1, #0xfe] +_02347F38: + add r6, r6, #1 + cmp r6, #4 + add r7, r7, #0x100 + blt _02347F08 + mov r0, #0x100 + mov r1, #0x20 + bl ov02_0234E7B4 + mov r2, r0 + ldr r0, _02347F7C @ =0x0235AB48 + add r1, sp, #4 + ldr r0, [r0] + str r2, [sp] + bl FUN_022ED68C + add r0, sp, #0 + bl ov02_0234E7D8 + add sp, sp, #0x14 + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02347F7C: .4byte 0x0235AB48 + arm_func_end ov02_02347E18 + + arm_func_start ov02_02347F80 +ov02_02347F80: @ 0x02347F80 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sl, r0 + mov sb, r1 + add r0, sp, #0 + mov r1, #0 + mov r2, #4 + bl FUN_0207C40C + mov r7, #0 + mov r8, r7 + mov r4, #0x20 + add r6, sp, #0 + mov r5, #3 + mov fp, r7 +_02347FB4: + mov r1, r6 + mov r2, r5 + add r0, sl, r8 + bl FUN_0207C4C8 + mov r1, fp + mov r2, r6 +_02347FCC: + ldrb r0, [r2] + cmp r0, #0 + bne _02347FE8 + add r1, r1, #1 + cmp r1, #3 + strb r4, [r2], #1 + blt _02347FCC +_02347FE8: + mov r0, r6 + bl FUN_0208B360 + strb r0, [sb, r7] + add r7, r7, #1 + cmp r7, #4 + add r8, r8, #3 + blt _02347FB4 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov02_02347F80 + + arm_func_start ov02_02348008 +ov02_02348008: @ 0x02348008 + cmp r0, #0x39 + subls r0, r0, #0x30 + bxls lr + cmp r0, #0x46 + subls r0, r0, #0x37 + subhi r0, r0, #0x57 + bx lr + arm_func_end ov02_02348008 + + arm_func_start ov02_02348024 +ov02_02348024: @ 0x02348024 + push {r3, lr} + mov r0, #0xa0 + mov r1, #4 + bl ov02_0234E7B4 + ldr r2, _023480A8 @ =0x0235AB4C + add r1, sp, #0 + str r0, [r2] + ldr r0, _023480AC @ =0x02353D54 + mov r2, #0x20 + bl ov02_0234CE84 + ldr r1, _023480A8 @ =0x0235AB4C + ldr r1, [r1] + str r0, [r1, #0x98] + bl ov02_0232BD18 + ldr r0, _023480A8 @ =0x0235AB4C + ldr r0, [r0] + ldr r1, [r0, #0x98] + bl ov02_0232CAC0 + mov r0, #0 + bl ov02_0232D7B0 + ldr r0, _023480A8 @ =0x0235AB4C + ldr r0, [r0] + add r0, r0, #0x94 + bl ov02_0232BF78 + mov r0, #0 + ldr r1, _023480B0 @ =0x02348168 + mov r2, r0 + mov r3, #0xc8 + bl ov02_0234FA98 + ldr r1, _023480A8 @ =0x0235AB4C + ldr r1, [r1] + str r0, [r1, #0x9c] + pop {r3, pc} + .align 2, 0 +_023480A8: .4byte 0x0235AB4C +_023480AC: .4byte 0x02353D54 +_023480B0: .4byte 0x02348168 + arm_func_end ov02_02348024 + + arm_func_start ov02_023480B4 +ov02_023480B4: @ 0x023480B4 + push {r3, lr} + ldr r1, _023480D8 @ =0x0235AB4C + mov r0, #0 + ldr r1, [r1] + ldr r1, [r1, #0x9c] + bl ov02_0234FB40 + ldr r0, _023480DC @ =0x0235AB4C + bl ov02_0234E7D8 + pop {r3, pc} + .align 2, 0 +_023480D8: .4byte 0x0235AB4C +_023480DC: .4byte 0x0235AB4C + arm_func_end ov02_023480B4 + + arm_func_start ov02_023480E0 +ov02_023480E0: @ 0x023480E0 + ldr r1, _023480FC @ =0x0235AB4C + mov r2, r0 + ldr r0, [r1] + ldr ip, _02348100 @ =ov02_0232D84C + mov r1, #0 + add r0, r0, #0x94 + bx ip + .align 2, 0 +_023480FC: .4byte 0x0235AB4C +_02348100: .4byte ov02_0232D84C + arm_func_end ov02_023480E0 + + arm_func_start ov02_02348104 +ov02_02348104: @ 0x02348104 + ldr r2, _0234811C @ =0x0235AB4C + mov r1, r0 + ldr r0, [r2] + ldr ip, _02348120 @ =FUN_0232BFA4 + add r0, r0, #0x94 + bx ip + .align 2, 0 +_0234811C: .4byte 0x0235AB4C +_02348120: .4byte FUN_0232BFA4 + arm_func_end ov02_02348104 + + arm_func_start ov02_02348124 +ov02_02348124: @ 0x02348124 + ldr r2, _02348140 @ =0x0235AB4C + ldr ip, _02348144 @ =ov02_0232BFEC + ldr r3, [r2] + mov r2, r1 + mov r1, r0 + add r0, r3, #0x94 + bx ip + .align 2, 0 +_02348140: .4byte 0x0235AB4C +_02348144: .4byte ov02_0232BFEC + arm_func_end ov02_02348124 + + arm_func_start ov02_02348148 +ov02_02348148: @ 0x02348148 + ldr r0, _02348160 @ =0x0235AB4C + ldr ip, _02348164 @ =FUN_0232BF68 + ldr r0, [r0] + mov r1, #0 + add r0, r0, #0x94 + bx ip + .align 2, 0 +_02348160: .4byte 0x0235AB4C +_02348164: .4byte FUN_0232BF68 + arm_func_end ov02_02348148 +_02348168: + .byte 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0xA0, 0xBD, 0x32, 0x02 + + arm_func_start ov02_02348174 +ov02_02348174: @ 0x02348174 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + str r0, [sp] + mov r0, #0x1c + mov r1, #4 + bl ov02_0234E7B4 + ldr r1, [sp] + ldr r4, _0234825C @ =0x0235AB50 + add r3, r1, r1, lsl #2 + ldr r2, _02348260 @ =0x02352DC8 + ldr r1, _02348264 @ =0x02352DD7 + mov r8, #0 + mvn r7, #0 + ldr r5, _02348268 @ =0x02352DE6 + str r0, [r4, #4] + add sb, r2, r3 + add sl, r1, r3 + sub r6, r7, #0x29 + mov fp, r8 +_023481BC: + ldrb r1, [sb], #1 + mov r0, #1 + mov r2, r0 + bl ov02_0234D6D8 + ldr r2, [r4, #4] + mov r1, r7 + str r0, [r2, r8, lsl #2] + ldr r0, [r4, #4] + mov r2, fp + ldr r0, [r0, r8, lsl #2] + bl ov02_0234D530 + ldr r0, [r4, #4] + add r3, r5, r8, lsl #2 + ldrh r3, [r3, #2] + ldr r0, [r0, r8, lsl #2] + mov r1, r7 + mov r2, r6 + bl ov02_0234D440 + ldr r0, [r4, #4] + ldrb r3, [sl], #1 + ldr r0, [r0, r8, lsl #2] + mov r1, r7 + mov r2, #0 + bl ov02_0234D3C0 + add r8, r8, #1 + cmp r8, #5 + blt _023481BC + mov r0, #0 + ldr r1, _0234826C @ =ov02_02348270 + mov r2, r0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _0234825C @ =0x0235AB50 + ldr r1, [r1, #4] + str r0, [r1, #0x14] + ldr r0, [sp] + bl ov02_02348C1C + mov r0, #0xd + bl ov02_023480E0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0234825C: .4byte 0x0235AB50 +_02348260: .4byte 0x02352DC8 +_02348264: .4byte 0x02352DD7 +_02348268: .4byte 0x02352DE6 +_0234826C: .4byte ov02_02348270 + arm_func_end ov02_02348174 + + arm_func_start ov02_02348270 +ov02_02348270: @ 0x02348270 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + ldr r1, _02348348 @ =0x0235AB50 + mov r4, r0 + ldr r0, [r1, #4] + add r2, sp, #4 + ldr r0, [r0] + add r3, sp, #0 + mov r1, #0 + bl ov02_0234D590 + ldr r0, [sp, #4] + add r0, r0, #8 + str r0, [sp, #4] + cmp r0, #0x20 + blt _023482B4 + cmp r0, #0x100 + ble _023482F4 +_023482B4: + ldr r5, _0234834C @ =0x02352DE6 + ldr r4, _02348348 @ =0x0235AB50 + mov r7, #0 + mvn r6, #0 +_023482C4: + add r0, r5, r7, lsl #2 + ldr r1, [r4, #4] + ldrh r3, [r0, #2] + ldr r0, [r1, r7, lsl #2] + ldr r2, [sp, #4] + mov r1, r6 + bl ov02_0234D440 + add r7, r7, #1 + cmp r7, #5 + blt _023482C4 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} +_023482F4: + mov r0, #0x20 + ldr r6, _0234834C @ =0x02352DE6 + ldr r5, _02348348 @ =0x0235AB50 + str r0, [sp, #4] + mov r8, #0 + mvn r7, #0 +_0234830C: + add r0, r6, r8, lsl #2 + ldr r1, [r5, #4] + ldrh r3, [r0, #2] + ldr r0, [r1, r8, lsl #2] + ldr r2, [sp, #4] + mov r1, r7 + bl ov02_0234D440 + add r8, r8, #1 + cmp r8, #5 + blt _0234830C + ldr r1, _02348350 @ =ov02_02348354 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02348348: .4byte 0x0235AB50 +_0234834C: .4byte 0x02352DE6 +_02348350: .4byte ov02_02348354 + arm_func_end ov02_02348270 + + arm_func_start ov02_02348354 +ov02_02348354: @ 0x02348354 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + ldr r1, _0234842C @ =0x0235AB50 + mov r4, r0 + ldr r0, [r1, #4] + add r2, sp, #4 + ldr r0, [r0, #4] + add r3, sp, #0 + mov r1, #0 + bl ov02_0234D590 + ldr r0, [sp, #4] + add r0, r0, #8 + str r0, [sp, #4] + cmp r0, #0x50 + blt _02348398 + cmp r0, #0x100 + ble _023483D8 +_02348398: + ldr r5, _02348430 @ =0x02352DE6 + ldr r4, _0234842C @ =0x0235AB50 + mov r7, #1 + mvn r6, #0 +_023483A8: + add r0, r5, r7, lsl #2 + ldr r1, [r4, #4] + ldrh r3, [r0, #2] + ldr r0, [r1, r7, lsl #2] + ldr r2, [sp, #4] + mov r1, r6 + bl ov02_0234D440 + add r7, r7, #1 + cmp r7, #5 + blt _023483A8 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} +_023483D8: + mov r0, #0x50 + ldr r6, _02348430 @ =0x02352DE6 + ldr r5, _0234842C @ =0x0235AB50 + str r0, [sp, #4] + mov r8, #1 + mvn r7, #0 +_023483F0: + add r0, r6, r8, lsl #2 + ldr r1, [r5, #4] + ldrh r3, [r0, #2] + ldr r0, [r1, r8, lsl #2] + ldr r2, [sp, #4] + mov r1, r7 + bl ov02_0234D440 + add r8, r8, #1 + cmp r8, #5 + blt _023483F0 + ldr r1, _02348434 @ =ov02_02348438 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0234842C: .4byte 0x0235AB50 +_02348430: .4byte 0x02352DE6 +_02348434: .4byte ov02_02348438 + arm_func_end ov02_02348354 + + arm_func_start ov02_02348438 +ov02_02348438: @ 0x02348438 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + ldr r1, _02348510 @ =0x0235AB50 + mov r4, r0 + ldr r0, [r1, #4] + add r2, sp, #4 + ldr r0, [r0, #8] + add r3, sp, #0 + mov r1, #0 + bl ov02_0234D590 + ldr r0, [sp, #4] + add r0, r0, #8 + str r0, [sp, #4] + cmp r0, #0x68 + blt _0234847C + cmp r0, #0x100 + ble _023484BC +_0234847C: + ldr r5, _02348514 @ =0x02352DE6 + ldr r4, _02348510 @ =0x0235AB50 + mov r7, #2 + mvn r6, #0 +_0234848C: + add r0, r5, r7, lsl #2 + ldr r1, [r4, #4] + ldrh r3, [r0, #2] + ldr r0, [r1, r7, lsl #2] + ldr r2, [sp, #4] + mov r1, r6 + bl ov02_0234D440 + add r7, r7, #1 + cmp r7, #5 + blt _0234848C + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} +_023484BC: + mov r0, #0x68 + ldr r6, _02348514 @ =0x02352DE6 + ldr r5, _02348510 @ =0x0235AB50 + str r0, [sp, #4] + mov r8, #2 + mvn r7, #0 +_023484D4: + add r0, r6, r8, lsl #2 + ldr r1, [r5, #4] + ldrh r3, [r0, #2] + ldr r0, [r1, r8, lsl #2] + ldr r2, [sp, #4] + mov r1, r7 + bl ov02_0234D440 + add r8, r8, #1 + cmp r8, #5 + blt _023484D4 + ldr r1, _02348518 @ =ov02_0234851C + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02348510: .4byte 0x0235AB50 +_02348514: .4byte 0x02352DE6 +_02348518: .4byte ov02_0234851C + arm_func_end ov02_02348438 + + arm_func_start ov02_0234851C +ov02_0234851C: @ 0x0234851C + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + ldr r1, _023485F4 @ =0x0235AB50 + mov r4, r0 + ldr r0, [r1, #4] + add r2, sp, #4 + ldr r0, [r0, #0xc] + add r3, sp, #0 + mov r1, #0 + bl ov02_0234D590 + ldr r0, [sp, #4] + add r0, r0, #8 + str r0, [sp, #4] + cmp r0, #0x98 + blt _02348560 + cmp r0, #0x100 + ble _023485A0 +_02348560: + ldr r5, _023485F8 @ =0x02352DE6 + ldr r4, _023485F4 @ =0x0235AB50 + mov r7, #3 + mvn r6, #0 +_02348570: + add r0, r5, r7, lsl #2 + ldr r1, [r4, #4] + ldrh r3, [r0, #2] + ldr r0, [r1, r7, lsl #2] + ldr r2, [sp, #4] + mov r1, r6 + bl ov02_0234D440 + add r7, r7, #1 + cmp r7, #5 + blt _02348570 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} +_023485A0: + mov r0, #0x98 + ldr r6, _023485F8 @ =0x02352DE6 + ldr r5, _023485F4 @ =0x0235AB50 + str r0, [sp, #4] + mov r8, #3 + mvn r7, #0 +_023485B8: + add r0, r6, r8, lsl #2 + ldr r1, [r5, #4] + ldrh r3, [r0, #2] + ldr r0, [r1, r8, lsl #2] + ldr r2, [sp, #4] + mov r1, r7 + bl ov02_0234D440 + add r8, r8, #1 + cmp r8, #5 + blt _023485B8 + ldr r1, _023485FC @ =ov02_02348600 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_023485F4: .4byte 0x0235AB50 +_023485F8: .4byte 0x02352DE6 +_023485FC: .4byte ov02_02348600 + arm_func_end ov02_0234851C + + arm_func_start ov02_02348600 +ov02_02348600: @ 0x02348600 + push {r4, lr} + sub sp, sp, #8 + ldr r1, _02348698 @ =0x0235AB50 + mov r4, r0 + ldr r0, [r1, #4] + add r2, sp, #4 + ldr r0, [r0, #0x10] + add r3, sp, #0 + mov r1, #0 + bl ov02_0234D590 + ldr r0, [sp, #4] + add r2, r0, #8 + str r2, [sp, #4] + cmp r2, #0xb0 + blt _02348644 + cmp r2, #0x100 + ble _02348664 +_02348644: + ldr r0, _02348698 @ =0x0235AB50 + mvn r1, #0 + ldr r0, [r0, #4] + mov r3, #0x21 + ldr r0, [r0, #0x10] + bl ov02_0234D440 + add sp, sp, #8 + pop {r4, pc} +_02348664: + ldr r0, _02348698 @ =0x0235AB50 + mov r2, #0xb0 + ldr r0, [r0, #4] + str r2, [sp, #4] + ldr r0, [r0, #0x10] + sub r1, r2, #0xb1 + mov r3, #0x21 + bl ov02_0234D440 + ldr r1, _0234869C @ =0x023486A0 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_02348698: .4byte 0x0235AB50 +_0234869C: .4byte 0x023486A0 + arm_func_end ov02_02348600 +_023486A0: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0xA0, 0xE3, 0x23, 0x1D, 0x00, 0xEB + .byte 0x0C, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x04, 0x00, 0x90, 0xE5, 0x14, 0x10, 0x80, 0xE5 + .byte 0x08, 0x80, 0xBD, 0xE8, 0x50, 0xAB, 0x35, 0x02 + + arm_func_start ov02_023486C8 +ov02_023486C8: @ 0x023486C8 + push {r3, lr} + ldr r1, _02348700 @ =0x0235AB50 + mov r0, #0 + ldr ip, [r1, #4] + mov lr, #1 + ldr r1, _02348704 @ =ov02_023487F0 + mov r2, r0 + mov r3, #0x78 + strb lr, [ip, #0x18] + bl ov02_0234FA98 + ldr r1, _02348700 @ =0x0235AB50 + ldr r1, [r1, #4] + str r0, [r1, #0x14] + pop {r3, pc} + .align 2, 0 +_02348700: .4byte 0x0235AB50 +_02348704: .4byte ov02_023487F0 + arm_func_end ov02_023486C8 + + arm_func_start ov02_02348708 +ov02_02348708: @ 0x02348708 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + str r0, [sp] + add r2, r0, r0, lsl #2 + ldr r1, _023487C0 @ =0x02352DC8 + ldr r0, _023487C4 @ =0x02352DD7 + mov r8, #0 + ldr r5, _023487C8 @ =0x02352DE6 + ldr r4, _023487CC @ =0x0235AB50 + add sb, r1, r2 + add sl, r0, r2 + mov r7, r8 + mov fp, #1 + mvn r6, #0 +_0234873C: + ldr r0, [r4, #4] + mov r1, r7 + ldr r0, [r0, r8, lsl #2] + bl ov02_0234D308 + mov r2, r0 + ldrb r1, [sb], #2 + mov r0, fp + bl ov02_0234D618 + ldr r0, [r4, #4] + mov r1, r6 + ldr r0, [r0, r8, lsl #2] + mov r2, #0 + bl ov02_0234D530 + ldr r0, [r4, #4] + lsl r1, r8, #2 + add r3, r5, r8, lsl #2 + ldrh r2, [r5, r1] + ldrh r3, [r3, #2] + ldr r0, [r0, r8, lsl #2] + mov r1, r6 + bl ov02_0234D440 + ldr r0, [r4, #4] + ldrb r3, [sl], #2 + ldr r0, [r0, r8, lsl #2] + mov r1, r6 + mov r2, #0 + bl ov02_0234D3C0 + add r8, r8, #2 + cmp r8, #5 + blt _0234873C + ldr r0, [sp] + bl ov02_02348C1C + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_023487C0: .4byte 0x02352DC8 +_023487C4: .4byte 0x02352DD7 +_023487C8: .4byte 0x02352DE6 +_023487CC: .4byte 0x0235AB50 + arm_func_end ov02_02348708 + + arm_func_start ov02_023487D0 +ov02_023487D0: @ 0x023487D0 + ldr r0, _023487EC @ =0x0235AB50 + ldr r0, [r0, #4] + ldr r0, [r0, #0x14] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + bx lr + .align 2, 0 +_023487EC: .4byte 0x0235AB50 + arm_func_end ov02_023487D0 + + arm_func_start ov02_023487F0 +ov02_023487F0: @ 0x023487F0 + push {r4, lr} + sub sp, sp, #8 + ldr r1, _0234887C @ =0x0235AB50 + mov r4, r0 + ldr r0, [r1, #4] + add r2, sp, #4 + ldr r0, [r0, #0x10] + add r3, sp, #0 + mov r1, #0 + bl ov02_0234D590 + ldr r0, [sp, #4] + mov r3, #0x21 + sub r2, r0, #8 + str r2, [sp, #4] + cmp r2, #0x98 + ble _0234884C + ldr r0, _0234887C @ =0x0235AB50 + mvn r1, #0 + ldr r0, [r0, #4] + ldr r0, [r0, #0x10] + bl ov02_0234D440 + add sp, sp, #8 + pop {r4, pc} +_0234884C: + ldr r0, _0234887C @ =0x0235AB50 + mov r2, #0x98 + ldr r0, [r0, #4] + str r2, [sp, #4] + ldr r0, [r0, #0x10] + sub r1, r2, #0x99 + bl ov02_0234D440 + ldr r1, _02348880 @ =ov02_02348884 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_0234887C: .4byte 0x0235AB50 +_02348880: .4byte ov02_02348884 + arm_func_end ov02_023487F0 + + arm_func_start ov02_02348884 +ov02_02348884: @ 0x02348884 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + ldr r1, _02348954 @ =0x0235AB50 + mov r4, r0 + ldr r0, [r1, #4] + add r2, sp, #4 + ldr r0, [r0, #0xc] + add r3, sp, #0 + mov r1, #0 + bl ov02_0234D590 + ldr r0, [sp, #4] + sub r0, r0, #8 + str r0, [sp, #4] + cmp r0, #0x68 + ble _02348900 + ldr r5, _02348958 @ =0x02352DE6 + ldr r4, _02348954 @ =0x0235AB50 + mov r7, #3 + mvn r6, #0 +_023488D0: + add r0, r5, r7, lsl #2 + ldr r1, [r4, #4] + ldrh r3, [r0, #2] + ldr r0, [r1, r7, lsl #2] + ldr r2, [sp, #4] + mov r1, r6 + bl ov02_0234D440 + add r7, r7, #1 + cmp r7, #5 + blt _023488D0 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} +_02348900: + mov r0, #0x68 + ldr r6, _02348958 @ =0x02352DE6 + ldr r5, _02348954 @ =0x0235AB50 + str r0, [sp, #4] + mov r8, #3 + mvn r7, #0 +_02348918: + add r0, r6, r8, lsl #2 + ldr r1, [r5, #4] + ldrh r3, [r0, #2] + ldr r0, [r1, r8, lsl #2] + ldr r2, [sp, #4] + mov r1, r7 + bl ov02_0234D440 + add r8, r8, #1 + cmp r8, #5 + blt _02348918 + ldr r1, _0234895C @ =ov02_02348960 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02348954: .4byte 0x0235AB50 +_02348958: .4byte 0x02352DE6 +_0234895C: .4byte ov02_02348960 + arm_func_end ov02_02348884 + + arm_func_start ov02_02348960 +ov02_02348960: @ 0x02348960 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + ldr r1, _02348A30 @ =0x0235AB50 + mov r4, r0 + ldr r0, [r1, #4] + add r2, sp, #4 + ldr r0, [r0, #8] + add r3, sp, #0 + mov r1, #0 + bl ov02_0234D590 + ldr r0, [sp, #4] + sub r0, r0, #8 + str r0, [sp, #4] + cmp r0, #0x50 + ble _023489DC + ldr r5, _02348A34 @ =0x02352DE6 + ldr r4, _02348A30 @ =0x0235AB50 + mov r7, #2 + mvn r6, #0 +_023489AC: + add r0, r5, r7, lsl #2 + ldr r1, [r4, #4] + ldrh r3, [r0, #2] + ldr r0, [r1, r7, lsl #2] + ldr r2, [sp, #4] + mov r1, r6 + bl ov02_0234D440 + add r7, r7, #1 + cmp r7, #5 + blt _023489AC + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} +_023489DC: + mov r0, #0x50 + ldr r6, _02348A34 @ =0x02352DE6 + ldr r5, _02348A30 @ =0x0235AB50 + str r0, [sp, #4] + mov r8, #2 + mvn r7, #0 +_023489F4: + add r0, r6, r8, lsl #2 + ldr r1, [r5, #4] + ldrh r3, [r0, #2] + ldr r0, [r1, r8, lsl #2] + ldr r2, [sp, #4] + mov r1, r7 + bl ov02_0234D440 + add r8, r8, #1 + cmp r8, #5 + blt _023489F4 + ldr r1, _02348A38 @ =ov02_02348A3C + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02348A30: .4byte 0x0235AB50 +_02348A34: .4byte 0x02352DE6 +_02348A38: .4byte ov02_02348A3C + arm_func_end ov02_02348960 + + arm_func_start ov02_02348A3C +ov02_02348A3C: @ 0x02348A3C + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + ldr r1, _02348B0C @ =0x0235AB50 + mov r4, r0 + ldr r0, [r1, #4] + add r2, sp, #4 + ldr r0, [r0, #4] + add r3, sp, #0 + mov r1, #0 + bl ov02_0234D590 + ldr r0, [sp, #4] + sub r0, r0, #8 + str r0, [sp, #4] + cmp r0, #0x20 + ble _02348AB8 + ldr r5, _02348B10 @ =0x02352DE6 + ldr r4, _02348B0C @ =0x0235AB50 + mov r7, #1 + mvn r6, #0 +_02348A88: + add r0, r5, r7, lsl #2 + ldr r1, [r4, #4] + ldrh r3, [r0, #2] + ldr r0, [r1, r7, lsl #2] + ldr r2, [sp, #4] + mov r1, r6 + bl ov02_0234D440 + add r7, r7, #1 + cmp r7, #5 + blt _02348A88 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} +_02348AB8: + mov r0, #0x20 + ldr r6, _02348B10 @ =0x02352DE6 + ldr r5, _02348B0C @ =0x0235AB50 + str r0, [sp, #4] + mov r8, #1 + mvn r7, #0 +_02348AD0: + add r0, r6, r8, lsl #2 + ldr r1, [r5, #4] + ldrh r3, [r0, #2] + ldr r0, [r1, r8, lsl #2] + ldr r2, [sp, #4] + mov r1, r7 + bl ov02_0234D440 + add r8, r8, #1 + cmp r8, #5 + blt _02348AD0 + ldr r1, _02348B14 @ =ov02_02348B18 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02348B0C: .4byte 0x0235AB50 +_02348B10: .4byte 0x02352DE6 +_02348B14: .4byte ov02_02348B18 + arm_func_end ov02_02348A3C + + arm_func_start ov02_02348B18 +ov02_02348B18: @ 0x02348B18 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + ldr r1, _02348BE0 @ =0x0235AB50 + mov r5, r0 + ldr r0, [r1, #4] + add r2, sp, #4 + ldr r0, [r0] + add r3, sp, #0 + mov r1, #0 + bl ov02_0234D590 + ldr r0, [sp, #4] + ldr r7, _02348BE4 @ =0x02352DE6 + sub r0, r0, #8 + ldr r6, _02348BE0 @ =0x0235AB50 + mov r4, #0 + str r0, [sp, #4] + mvn r8, #0 +_02348B5C: + add r0, r7, r4, lsl #2 + ldr r1, [r6, #4] + ldrh r3, [r0, #2] + ldr r0, [r1, r4, lsl #2] + ldr r2, [sp, #4] + mov r1, r8 + bl ov02_0234D440 + add r4, r4, #1 + cmp r4, #5 + blt _02348B5C + ldr r1, [sp, #4] + ldr r0, _02348BE8 @ =0x000001D6 + cmp r1, r0 + addgt sp, sp, #8 + popgt {r4, r5, r6, r7, r8, pc} + cmp r1, #0x100 + addlt sp, sp, #8 + poplt {r4, r5, r6, r7, r8, pc} + mov r1, r5 + mov r0, #0 + bl ov02_0234FB40 + ldr r4, _02348BE0 @ =0x0235AB50 + mov r5, #0 +_02348BB8: + ldr r0, [r4, #4] + ldr r0, [r0, r5, lsl #2] + bl ov02_0234D288 + add r5, r5, #1 + cmp r5, #5 + blt _02348BB8 + ldr r0, _02348BEC @ =0x0235AB54 + bl ov02_0234E7D8 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02348BE0: .4byte 0x0235AB50 +_02348BE4: .4byte 0x02352DE6 +_02348BE8: .4byte 0x000001D6 +_02348BEC: .4byte 0x0235AB54 + arm_func_end ov02_02348B18 + + arm_func_start ov02_02348BF0 +ov02_02348BF0: @ 0x02348BF0 + ldr r0, _02348C18 @ =0x0235AB50 + ldr r0, [r0, #4] + cmp r0, #0 + moveq r0, #1 + bxeq lr + ldrb r0, [r0, #0x18] + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + bx lr + .align 2, 0 +_02348C18: .4byte 0x0235AB50 + arm_func_end ov02_02348BF0 + + arm_func_start ov02_02348C1C +ov02_02348C1C: @ 0x02348C1C + push {r3, lr} + ldr r1, _02348C58 @ =0x02353DD0 + ldr r0, [r1, r0, lsl #2] + bl ov02_02334D48 + mov r1, #0 + mov r2, #4 + bl ov02_0234CE84 + ldr r2, _02348C5C @ =0x0235AB50 + ldr r1, _02348C60 @ =ov02_02348C64 + str r0, [r2] + mov r0, #1 + mov r2, #0 + mov r3, #0x78 + bl ov02_0234FA98 + pop {r3, pc} + .align 2, 0 +_02348C58: .4byte 0x02353DD0 +_02348C5C: .4byte 0x0235AB50 +_02348C60: .4byte ov02_02348C64 + arm_func_end ov02_02348C1C + + arm_func_start ov02_02348C64 +ov02_02348C64: @ 0x02348C64 + push {r4, lr} + ldr r1, _02348CAC @ =0x0235AB50 + mov r4, r0 + ldr r0, [r1] + mov r1, #0x600 + bl FUN_0207A2DC + ldr r0, _02348CAC @ =0x0235AB50 + mov r1, #0 + ldr r0, [r0] + mov r2, #0x600 + bl FUN_02078070 + ldr r0, _02348CAC @ =0x0235AB50 + ldr r0, [r0] + bl ov02_0234CF78 + mov r1, r4 + mov r0, #1 + bl ov02_0234FB40 + pop {r4, pc} + .align 2, 0 +_02348CAC: .4byte 0x0235AB50 + arm_func_end ov02_02348C64 + + arm_func_start ov02_02348CB0 +ov02_02348CB0: @ 0x02348CB0 + push {r4, r5, lr} + sub sp, sp, #0x54 + mov r4, r0 + ldr r0, _02348E18 @ =0x00001BA0 + mov r1, #0x20 + bl ov02_0234E7B4 + ldr r2, _02348E1C @ =0x0235AB58 + add r1, r0, #0x1000 + str r0, [r2] + str r4, [r1, #0x370] + bl FUN_0207AE44 + ldr r4, _02348E1C @ =0x0235AB58 + mov r2, #3 + ldr r3, [r4] + add r3, r3, #0x1000 + str r0, [r3, #0xb88] + str r1, [r3, #0xb8c] + ldr r0, [r4] + ldr r1, _02348E20 @ =ov02_02348F64 + bl FUN_022BFB14 + cmp r0, #2 + bne _02348E04 +_02348D08: + ldr r0, [r4] + add r0, r0, #0x3b8 + add r0, r0, #0x1000 + bl FUN_022BF3E0 + ldr ip, [r4] + add r0, ip, #0x1300 + ldrh r0, [r0, #0xb8] + cmp r0, #2 + bne _02348D08 + add r0, ip, #0x374 + ldr r5, _02348E24 @ =0x02352E10 + add lr, r0, #0x1000 + mov r4, #4 +_02348D3C: + ldm r5!, {r0, r1, r2, r3} + stm lr!, {r0, r1, r2, r3} + subs r4, r4, #1 + bne _02348D3C + ldr r0, [r5] + add r1, ip, #0xf00 + str r0, [lr] + add r0, ip, #0x1000 + str r1, [r0, #0x374] + bl FUN_022BF780 + ldr r1, _02348E1C @ =0x0235AB58 + ldr r1, [r1] + add r1, r1, #0x1300 + strh r0, [r1, #0x7c] + add r0, sp, #0 + bl FUN_0207BA08 + ldr r1, _02348E1C @ =0x0235AB58 + ldr r0, _02348E28 @ =0x02352E04 + ldr r1, [r1] + mov r2, #8 + add r1, r1, #0x388 + add r1, r1, #0x1000 + bl FUN_0207C4C8 + ldr r2, _02348E1C @ =0x0235AB58 + mov r3, #1 + ldr r1, [r2] + add r0, sp, #4 + add r1, r1, #0x1000 + strb r3, [r1, #0x391] + ldr r1, [r2] + ldrh r2, [sp, #0x1a] + add r1, r1, #0x394 + add r1, r1, #0x1000 + lsl r2, r2, #1 + bl FUN_0207C4C8 + bl ov02_02348E34 + cmp r0, #0 + beq _02348E04 + mov r0, #0 + ldr r1, _02348E2C @ =ov02_02349258 + mov r2, r0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _02348E1C @ =0x0235AB58 + add sp, sp, #0x54 + ldr r1, [r1] + add r1, r1, #0x1000 + str r0, [r1, #0xb90] + mov r0, #1 + pop {r4, r5, pc} +_02348E04: + ldr r0, _02348E30 @ =0x0235AB58 + bl ov02_0234E7D8 + mov r0, #0 + add sp, sp, #0x54 + pop {r4, r5, pc} + .align 2, 0 +_02348E18: .4byte 0x00001BA0 +_02348E1C: .4byte 0x0235AB58 +_02348E20: .4byte ov02_02348F64 +_02348E24: .4byte 0x02352E10 +_02348E28: .4byte 0x02352E04 +_02348E2C: .4byte ov02_02349258 +_02348E30: .4byte 0x0235AB58 + arm_func_end ov02_02348CB0 + + arm_func_start ov02_02348E34 +ov02_02348E34: @ 0x02348E34 + push {r3, lr} + ldr r1, _02348E60 @ =0x0235AB58 + ldr r0, _02348E64 @ =ov02_02348F64 + ldr r1, [r1] + add r1, r1, #0x374 + add r1, r1, #0x1000 + bl FUN_022BFED8 + cmp r0, #2 + moveq r0, #1 + movne r0, #0 + pop {r3, pc} + .align 2, 0 +_02348E60: .4byte 0x0235AB58 +_02348E64: .4byte ov02_02348F64 + arm_func_end ov02_02348E34 + + arm_func_start ov02_02348E68 +ov02_02348E68: @ 0x02348E68 + push {r4, lr} + ldr r1, _02348F40 @ =0x0235AB58 + mov r2, #1 + ldr r0, [r1] + add r0, r0, #0x1000 + strb r2, [r0, #0xb94] + ldr r0, [r1] + add r0, r0, #0x3b8 + add r0, r0, #0x1000 + bl FUN_022BF3E0 + ldr r0, _02348F40 @ =0x0235AB58 + ldr r0, [r0] + add r0, r0, #0x1300 + ldrh r0, [r0, #0xb8] + cmp r0, #2 + beq _02348EE4 + ldr r0, _02348F44 @ =ov02_02348F64 + bl FUN_022BFB9C + cmp r0, #2 + movne r0, #0 + popne {r4, pc} + ldr r4, _02348F40 @ =0x0235AB58 +_02348EC0: + ldr r0, [r4] + add r0, r0, #0x3b8 + add r0, r0, #0x1000 + bl FUN_022BF3E0 + ldr r0, [r4] + add r0, r0, #0x1300 + ldrh r0, [r0, #0xb8] + cmp r0, #2 + bne _02348EC0 +_02348EE4: + ldr r0, _02348F44 @ =ov02_02348F64 + bl FUN_022BFBD4 + cmp r0, #2 + movne r0, #0 + popne {r4, pc} + ldr r0, _02348F40 @ =0x0235AB58 + ldr r0, [r0] + add r0, r0, #0x1000 + ldr r1, [r0, #0xb90] + cmp r1, #0 + beq _02348F18 + mov r0, #0 + bl ov02_0234FB6C +_02348F18: + ldr r0, _02348F40 @ =0x0235AB58 + ldr r0, [r0] + add r0, r0, #0x1000 +_02348F24: + ldrb r1, [r0, #0xb94] + cmp r1, #2 + bne _02348F24 + ldr r0, _02348F48 @ =0x0235AB58 + bl ov02_0234E7D8 + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_02348F40: .4byte 0x0235AB58 +_02348F44: .4byte ov02_02348F64 +_02348F48: .4byte 0x0235AB58 + arm_func_end ov02_02348E68 + + arm_func_start ov02_02348F4C +ov02_02348F4C: @ 0x02348F4C + ldr r1, _02348F60 @ =0x0235AB58 + ldr r1, [r1] + add r1, r1, #0x1000 + str r0, [r1, #0x370] + bx lr + .align 2, 0 +_02348F60: .4byte 0x0235AB58 + arm_func_end ov02_02348F4C + + arm_func_start ov02_02348F64 +ov02_02348F64: @ 0x02348F64 + push {r3, lr} + ldrh r1, [r0, #2] + cmp r1, #0 + popne {r3, pc} + ldr r1, _02348FF0 @ =0x0235AB58 + ldr r1, [r1] + add r1, r1, #0x1000 + ldrb r2, [r1, #0xb94] + cmp r2, #0 + beq _02348FA0 + ldrh r0, [r0] + cmp r0, #2 + moveq r0, #2 + strbeq r0, [r1, #0xb94] + pop {r3, pc} +_02348FA0: + ldrh r2, [r0] + cmp r2, #0x26 + popne {r3, pc} + ldrh r2, [r0, #8] + cmp r2, #4 + beq _02348FE0 + cmp r2, #5 + bne _02348FE8 + ldrb r1, [r1, #0xb96] + cmp r1, #0 + beq _02348FD4 + bl ov02_0234914C + b _02348FD8 +_02348FD4: + bl ov02_02348FF4 +_02348FD8: + bl ov02_02348E34 + pop {r3, pc} +_02348FE0: + bl ov02_02348E34 + pop {r3, pc} +_02348FE8: + bl FUN_0207BC20 + pop {r3, pc} + .align 2, 0 +_02348FF0: .4byte 0x0235AB58 + arm_func_end ov02_02348F64 + + arm_func_start ov02_02348FF4 +ov02_02348FF4: @ 0x02348FF4 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov fp, r0 + ldrh r0, [fp, #0xe] + mov r7, #0 + cmp r0, #0 + pople {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0234900C: + add r0, fp, r7, lsl #2 + ldr r6, [r0, #0x10] + mov r1, #0xc0 + mov r0, r6 + bl FUN_0207A2A4 + ldr r1, _02349140 @ =0x02352E04 + add r0, r6, #0xc + mov r2, #8 + bl FUN_02087348 + cmp r0, #0 + bne _0234912C + ldr r0, _02349144 @ =0x0235AB58 + mov r5, #0 + ldr sb, [r0] + mov r4, #6 + add r8, sb, #0x1300 +_0234904C: + mov r1, r8 + mov r2, r4 + add r0, r6, #4 + bl FUN_02087348 + cmp r0, #0 + bne _023490A4 + rsb r0, r5, r5, lsl #3 + add r0, sb, r0 + add r0, r0, #0x1000 + ldrb r0, [r0, #0x306] + cmp r0, #0 + bne _0234912C + ldrb r0, [r6, #0x15] + tst r0, #1 + beq _0234912C + add r0, sb, #0x1000 + ldr r1, [r0, #0x370] + cmp r1, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, #1 + blx r1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_023490A4: + add r5, r5, #1 + cmp r5, #0x10 + add r8, r8, #7 + blt _0234904C + ldr r5, _02349148 @ =0x02352DFC + add r8, sb, #0x1300 + mov sl, #0 + mov r4, #6 +_023490C4: + mov r0, r8 + mov r1, r5 + mov r2, r4 + bl FUN_02087348 + cmp r0, #0 + bne _0234911C + rsb r4, sl, sl, lsl #3 + add r1, sb, #0x1300 + add r0, r6, #4 + add r1, r1, r4 + mov r2, #6 + bl FUN_0207C4C8 + ldrb r0, [r6, #0x15] + tst r0, #1 + ldr r0, _02349144 @ =0x0235AB58 + movne r1, #1 + ldr r0, [r0] + moveq r1, #0 + add r0, r0, r4 + add r0, r0, #0x1000 + strb r1, [r0, #0x306] + b _0234912C +_0234911C: + add sl, sl, #1 + cmp sl, #0x10 + add r8, r8, #7 + blt _023490C4 +_0234912C: + ldrh r0, [fp, #0xe] + add r7, r7, #1 + cmp r7, r0 + blt _0234900C + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02349140: .4byte 0x02352E04 +_02349144: .4byte 0x0235AB58 +_02349148: .4byte 0x02352DFC + arm_func_end ov02_02348FF4 + + arm_func_start ov02_0234914C +ov02_0234914C: @ 0x0234914C + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + ldr r1, _02349250 @ =0x0235AB58 + mov sl, r0 + ldr r2, [r1] + add r1, r2, #0x1000 + ldrb r0, [r1, #0xb95] + cmp r0, #0 + beq _02349180 + ldr r1, [r1, #0x370] + cmp r1, #0 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + blx r1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02349180: + add r0, r2, #0xf00 + mov r1, #0x400 + bl FUN_0207A2A4 + ldrh fp, [sl, #0xe] + mov r6, #0 + cmp fp, #0 + pople {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, _02349250 @ =0x0235AB58 + mov r4, #6 + ldr sb, [r0] +_023491A8: + add r0, sl, r6, lsl #2 + ldr r5, [r0, #0x10] + ldr r1, _02349254 @ =0x02352E04 + mov r2, #8 + add r0, r5, #0xc + bl FUN_02087348 + cmp r0, #0 + bne _02349240 + ldrb r0, [r5, #0x15] + tst r0, #1 + beq _02349240 + mov r7, #0 + add r8, sb, #0x1300 +_023491DC: + mov r1, r8 + mov r2, r4 + add r0, r5, #4 + bl FUN_02087348 + cmp r0, #0 + bne _02349230 + rsb r0, r7, r7, lsl #3 + add r0, sb, r0 + add r0, r0, #0x1000 + ldrb r0, [r0, #0x306] + cmp r0, #0 + bne _02349240 + add r0, sb, #0x1000 + ldr r1, [r0, #0x370] + cmp r1, #0 + moveq r1, #1 + strbeq r1, [r0, #0xb95] + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, #1 + blx r1 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02349230: + add r7, r7, #1 + cmp r7, #0x10 + add r8, r8, #7 + blt _023491DC +_02349240: + add r6, r6, #1 + cmp r6, fp + blt _023491A8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02349250: .4byte 0x0235AB58 +_02349254: .4byte 0x02352E04 + arm_func_end ov02_0234914C + + arm_func_start ov02_02349258 +ov02_02349258: @ 0x02349258 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + str r0, [sp] + bl FUN_0207AE44 + ldr r2, _02349388 @ =0x0235AB58 + ldr r3, _0234938C @ =0x0017F898 + ldr sl, [r2] + mov r7, #0 + add r2, sl, #0x1000 + ldr r4, [r2, #0xb88] + ldr r2, [r2, #0xb8c] + adds r3, r4, r3 + adc r2, r2, #0 + cmp r1, r2 + cmpeq r0, r3 + poplo {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r4, _02349390 @ =0x02352DFC + mov r6, r7 + mov r5, r7 + mov sb, sl + add r8, sl, #0x1300 + mov fp, #6 +_023492AC: + mov r0, r8 + mov r1, r4 + mov r2, fp + bl FUN_02087348 + cmp r0, #0 + beq _023492D8 + add r0, sb, #0x1000 + ldrb r0, [r0, #0x306] + cmp r0, #0 + movne r6, #1 + moveq r7, #1 +_023492D8: + add r5, r5, #1 + cmp r5, #0x10 + add r8, r8, #7 + add sb, sb, #7 + blt _023492AC + cmp r6, #0 + cmpne r7, #0 + beq _02349314 + add r0, sl, #0x1000 + ldr r1, [r0, #0x370] + cmp r1, #0 + beq _02349358 + mov r0, #2 + blx r1 + b _02349358 +_02349314: + cmp r6, #0 + beq _02349338 + add r0, sl, #0x1000 + ldr r1, [r0, #0x370] + cmp r1, #0 + beq _02349358 + mov r0, #1 + blx r1 + b _02349358 +_02349338: + cmp r7, #0 + bne _02349358 + add r0, sl, #0x1000 + ldr r1, [r0, #0x370] + cmp r1, #0 + beq _02349358 + mov r0, #0 + blx r1 +_02349358: + ldr r3, _02349388 @ =0x0235AB58 + mov r0, #0 + ldr r2, [r3] + ldr r1, [sp] + add r2, r2, #0x1000 + str r0, [r2, #0xb90] + ldr r2, [r3] + mov r3, #1 + add r2, r2, #0x1000 + strb r3, [r2, #0xb96] + bl ov02_0234FB40 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02349388: .4byte 0x0235AB58 +_0234938C: .4byte 0x0017F898 +_02349390: .4byte 0x02352DFC + arm_func_end ov02_02349258 + + arm_func_start ov02_02349394 +ov02_02349394: @ 0x02349394 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x24 + ldr r5, _02349690 @ =0x02352E54 + ldr r4, _02349694 @ =0x0235AA98 + ldrb sl, [r5, #4] + ldrb sb, [r5, #5] + ldrb r8, [r5, #6] + ldrb r7, [r5, #7] + ldrb r6, [r5, #8] + ldrb r5, [r5, #9] + strb sl, [sp, #0x1c] + mov fp, r0 + str r2, [sp, #0x10] + mov r2, r3 + mov sl, r1 + ldr r0, [r4] + ldr r3, [sp, #0x48] + mov r1, fp + strb sb, [sp, #0x1d] + strb r8, [sp, #0x1e] + strb r7, [sp, #0x1f] + strb r6, [sp, #0x20] + strb r5, [sp, #0x21] + bl ov02_02338F74 + str r0, [sp, #0x14] + mov r0, #0x20 + mov r1, #4 + bl ov02_0234E7B4 + ldr r1, _02349698 @ =0x0235AB5C + mvn r3, #1 + str r0, [r1] + strb sl, [r0, #0x1c] + ldr r2, [r1] + ldr r0, _0234969C @ =0x04000050 + strb r3, [r2, #0x1b] + ldr r3, [r1] + ldr r2, [sp, #0x10] + mov r1, #0x1f + strb r2, [r3, #0x1e] + mov r2, #0 + bl FUN_02077704 + ldr r1, _023496A0 @ =0x02352F08 + mov r0, #0 + ldrb r1, [r1, sl] + mov r2, r0 + bl ov02_0234D6D8 + ldr r3, _02349698 @ =0x0235AB5C + mvn r1, #0 + ldr r4, [r3] + mov r2, #0x100 + str r0, [r4] + ldr r0, [r3] + mov r3, #0 + ldr r0, [r0] + bl ov02_0234D440 + ldr r0, _02349698 @ =0x0235AB5C + mvn r1, #0 + ldr r0, [r0] + mov r2, #0 + ldr r0, [r0] + bl ov02_0234D530 + ldr r7, _023496A4 @ =0x02352F10 + mov r8, #0 + ldrb r0, [r7, sl] + cmp r0, #0 + ble _02349514 + ldr r0, _023496A8 @ =0x02352E7A + ldr r4, _02349698 @ =0x0235AB5C + add sb, r0, sl, lsl #1 + mvn r6, #0 + mov r5, #0x100 + mov fp, r8 +_023494B4: + ldrb r1, [sb], #1 + mov r0, #0 + mov r2, r0 + bl ov02_0234D6D8 + ldr r2, [r4] + mov r1, r6 + add r2, r2, r8, lsl #2 + str r0, [r2, #8] + ldr r0, [r4] + mov r2, r5 + add r0, r0, r8, lsl #2 + ldr r0, [r0, #8] + mov r3, fp + bl ov02_0234D440 + ldr r0, [r4] + mov r1, r6 + add r0, r0, r8, lsl #2 + ldr r0, [r0, #8] + mov r2, #0 + bl ov02_0234D530 + ldrb r0, [r7, sl] + add r8, r8, #1 + cmp r8, r0 + blt _023494B4 +_02349514: + add r1, sp, #0x18 + str r1, [sp] + mov r0, #0 + mov r1, #0x20 + mov r2, #0xc + mov r3, #1 + str r0, [sp, #4] + bl ov02_0234DCC0 + ldr r1, _02349698 @ =0x0235AB5C + ldr r1, [r1] + str r0, [r1, #0x10] + mov r0, #0 + ldr r1, [sp, #0x18] + mov r2, r0 + bl ov02_0234D12C + ldr r1, _02349698 @ =0x0235AB5C + ldr r1, [r1] + str r0, [r1, #4] + bl ov02_02334FA0 + ldr r1, _023496AC @ =0x02352E9A + lsl r5, sl, #2 + ldrh r4, [r1, r5] + mov r3, #2 + ldr r2, _02349698 @ =0x0235AB5C + str r4, [sp] + str r3, [sp, #4] + str r0, [sp, #8] + ldr r0, [sp, #0x14] + ldr r3, _023496B0 @ =0x02352E98 + str r0, [sp, #0xc] + ldr r0, [r2] + mov r1, #0 + ldrh r3, [r3, r5] + ldr r0, [r0, #0x10] + mov r2, r1 + bl ov02_0234E1E8 + ldr r0, _02349698 @ =0x0235AB5C + mov r2, #0 + ldr r3, [r0] + mov r1, #0x100 + str r2, [sp] + ldr r0, [r3, #0x10] + ldr r3, [r3, #4] + bl ov02_0234E2BC + mov r0, #0 + mov r1, r0 + mov r2, #0x1f + mov r3, r0 + bl ov02_0234E598 + ldr r3, _02349698 @ =0x0235AB5C + add r4, sp, #0x1c + ldr r3, [r3] + mov r0, #0 + ldrb r3, [r3, #0x1c] + mov r1, #1 + mov r2, #0x1f + ldrb r3, [r4, r3] + bl ov02_0234E598 + mov r0, #0 + mov r1, #3 + mov r2, #0x1f + mov r3, #1 + bl ov02_0234E598 + ldr r2, _023496B4 @ =0x02352E5E + mov r0, #0 + mov r1, #1 + bl ov02_0234E480 + mov r0, #0xc0 + bl ov02_02349A30 + mov r2, #0x4000000 + ldr r0, [sp, #0x10] + ldr r1, [r2] + cmp r0, #0 + bic r0, r1, #0xe000 + orr r0, r0, #0x6000 + str r0, [r2] + mov r0, #1 + mov r2, #0 + beq _02349670 + ldr r1, _023496B8 @ =ov02_02349734 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _02349698 @ =0x0235AB5C + add sp, sp, #0x24 + ldr r1, [r1] + str r0, [r1, #0x14] + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02349670: + ldr r1, _023496BC @ =ov02_02349794 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _02349698 @ =0x0235AB5C + ldr r1, [r1] + str r0, [r1, #0x14] + add sp, sp, #0x24 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02349690: .4byte 0x02352E54 +_02349694: .4byte 0x0235AA98 +_02349698: .4byte 0x0235AB5C +_0234969C: .4byte 0x04000050 +_023496A0: .4byte 0x02352F08 +_023496A4: .4byte 0x02352F10 +_023496A8: .4byte 0x02352E7A +_023496AC: .4byte 0x02352E9A +_023496B0: .4byte 0x02352E98 +_023496B4: .4byte 0x02352E5E +_023496B8: .4byte ov02_02349734 +_023496BC: .4byte ov02_02349794 + arm_func_end ov02_02349394 + + arm_func_start ov02_023496C0 +ov02_023496C0: @ 0x023496C0 + push {r3, lr} + ldr r1, _023496FC @ =0x0235AB5C + mov r0, #0 + ldr r1, [r1] + ldr r1, [r1, #0x14] + bl ov02_0234FB40 + ldr r1, _02349700 @ =ov02_02349D24 + mov r0, #1 + mov r2, #0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _023496FC @ =0x0235AB5C + ldr r1, [r1] + str r0, [r1, #0x14] + pop {r3, pc} + .align 2, 0 +_023496FC: .4byte 0x0235AB5C +_02349700: .4byte ov02_02349D24 + arm_func_end ov02_023496C0 + + arm_func_start ov02_02349704 +ov02_02349704: @ 0x02349704 + ldr r0, _02349714 @ =0x0235AB5C + ldr r0, [r0] + ldrsb r0, [r0, #0x1b] + bx lr + .align 2, 0 +_02349714: .4byte 0x0235AB5C + arm_func_end ov02_02349704 + + arm_func_start ov02_02349718 +ov02_02349718: @ 0x02349718 + ldr r0, _02349730 @ =0x0235AB5C + ldr r0, [r0] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + bx lr + .align 2, 0 +_02349730: .4byte 0x0235AB5C + arm_func_end ov02_02349718 + + arm_func_start ov02_02349734 +ov02_02349734: @ 0x02349734 + push {r4, lr} + ldr r1, _02349788 @ =0x0235AB5C + mov r4, r0 + ldr r3, [r1] + ldr r0, _0234978C @ =0x04000050 + ldrsb r2, [r3, #0x1a] + sub r2, r2, #1 + strb r2, [r3, #0x1a] + ldr r1, [r1] + ldrsb r1, [r1, #0x1a] + bl FUN_0207772C + ldr r1, _02349788 @ =0x0235AB5C + mvn r0, #0xb + ldr r1, [r1] + ldrsb r1, [r1, #0x1a] + cmp r1, r0 + popgt {r4, pc} + ldr r1, _02349790 @ =ov02_02349794 + mov r0, r4 + bl ov02_0234FB38 + pop {r4, pc} + .align 2, 0 +_02349788: .4byte 0x0235AB5C +_0234978C: .4byte 0x04000050 +_02349790: .4byte ov02_02349794 + arm_func_end ov02_02349734 + + arm_func_start ov02_02349794 +ov02_02349794: @ 0x02349794 + push {r4, lr} + sub sp, sp, #8 + ldr r1, _02349858 @ =0x0235AB5C + mov r4, r0 + ldr r0, [r1] + add r2, sp, #4 + ldr r0, [r0] + add r3, sp, #0 + mov r1, #0 + bl ov02_0234D590 + ldr r0, [sp] + ldr r1, _02349858 @ =0x0235AB5C + sub r0, r0, #0xc + ldr r1, [r1] + str r0, [sp] + ldrb r2, [r1, #0x1c] + ldr r1, _0234985C @ =0x02352EB2 + lsl r2, r2, #2 + ldrh r1, [r1, r2] + cmp r0, r1 + ble _023497F4 + bl ov02_02349A30 + add sp, sp, #8 + pop {r4, pc} +_023497F4: + mov r0, r1 + bl ov02_02349A30 + ldr r0, _02349858 @ =0x0235AB5C + mov r3, #0x78 + ldr r0, [r0] + ldrb r0, [r0, #0x1c] + cmp r0, #5 + mov r0, #0 + bne _0234982C + ldr r1, _02349860 @ =ov02_023499C4 + mov r2, r0 + bl ov02_0234FA98 + ldr r1, _02349858 @ =0x0235AB5C + b _0234983C +_0234982C: + ldr r1, _02349864 @ =ov02_02349868 + mov r2, r0 + bl ov02_0234FA98 + ldr r1, _02349858 @ =0x0235AB5C +_0234983C: + ldr r1, [r1] + str r0, [r1, #0x14] + mov r1, r4 + mov r0, #1 + bl ov02_0234FB40 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_02349858: .4byte 0x0235AB5C +_0234985C: .4byte 0x02352EB2 +_02349860: .4byte ov02_023499C4 +_02349864: .4byte ov02_02349868 + arm_func_end ov02_02349794 + + arm_func_start ov02_02349868 +ov02_02349868: @ 0x02349868 + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #8 + ldr r4, _023499A8 @ =0x0235AB5C + ldr sb, _023499AC @ =0x02352F10 + ldr r0, [r4] + mov sl, #0 + ldrb r1, [r0, #0x1c] + ldrb r0, [sb, r1] + cmp r0, #0 + ble _023498F4 + ldr r8, _023499B0 @ =0x02352EE0 + ldr r7, _023499B4 @ =0x02352E66 + ldr r6, _023499B8 @ =0x02352E84 + add r5, sp, #0 +_023498A0: + add r0, r7, r1, lsl #1 + ldrb r0, [sl, r0] + add r3, r8, r1, lsl #3 + mov r2, r5 + add r0, r3, r0, lsl #2 + add r1, r6, r1, lsl #2 + bl ov02_0234E39C + mov r0, r5 + bl ov02_0234ED04 + cmp r0, #0 + beq _023498DC + ldr r0, _023499A8 @ =0x0235AB5C + ldr r0, [r0] + strb sl, [r0, #0x1b] + b _023498F4 +_023498DC: + ldr r0, [r4] + add sl, sl, #1 + ldrb r1, [r0, #0x1c] + ldrb r0, [sb, r1] + cmp sl, r0 + blt _023498A0 +_023498F4: + mov r0, #1 + bl ov02_0234EBBC + cmp r0, #0 + beq _02349920 + ldr r0, _023499A8 @ =0x0235AB5C + ldr r1, _023499BC @ =0x02352E70 + ldr r2, [r0] + ldrb r0, [r2, #0x1c] + lsl r0, r0, #1 + ldrsb r0, [r1, r0] + strb r0, [r2, #0x1b] +_02349920: + mov r0, #2 + bl ov02_0234EBBC + cmp r0, #0 + beq _0234994C + ldr r0, _023499A8 @ =0x0235AB5C + ldr r1, _023499C0 @ =0x02352E71 + ldr r2, [r0] + ldrb r0, [r2, #0x1c] + lsl r0, r0, #1 + ldrsb r0, [r1, r0] + strb r0, [r2, #0x1b] +_0234994C: + ldr r0, _023499A8 @ =0x0235AB5C + ldr r2, _023499AC @ =0x02352F10 + ldr r4, [r0] + mov r0, #0 + ldrb r1, [r4, #0x1c] + ldrb r1, [r2, r1] + cmp r1, #0 + ble _02349998 + ldrsb r3, [r4, #0x1b] +_02349970: + cmp r0, r3 + bne _02349984 + bl ov02_02349C64 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_02349984: + ldrb r1, [r4, #0x1c] + add r0, r0, #1 + ldrb r1, [r2, r1] + cmp r0, r1 + blt _02349970 +_02349998: + mvn r0, #0 + strb r0, [r4, #0x1b] + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_023499A8: .4byte 0x0235AB5C +_023499AC: .4byte 0x02352F10 +_023499B0: .4byte 0x02352EE0 +_023499B4: .4byte 0x02352E66 +_023499B8: .4byte 0x02352E84 +_023499BC: .4byte 0x02352E70 +_023499C0: .4byte 0x02352E71 + arm_func_end ov02_02349868 + + arm_func_start ov02_023499C4 +ov02_023499C4: @ 0x023499C4 + push {r3, lr} + ldr r2, _02349A28 @ =0x0235AB5C + mvn ip, #0 + ldr r3, [r2] + mov r1, r0 + strb ip, [r3, #0x1b] + ldr r3, [r2] + ldrh r0, [r3, #0x18] + add r0, r0, #1 + strh r0, [r3, #0x18] + ldr r0, [r2] + ldrh r0, [r0, #0x18] + cmp r0, #0x78 + poplo {r3, pc} + mov r0, #0 + bl ov02_0234FB40 + ldr r1, _02349A2C @ =ov02_02349D24 + mov r0, #1 + mov r2, #0 + mov r3, #0x78 + bl ov02_0234FA98 + ldr r1, _02349A28 @ =0x0235AB5C + ldr r1, [r1] + str r0, [r1, #0x14] + pop {r3, pc} + .align 2, 0 +_02349A28: .4byte 0x0235AB5C +_02349A2C: .4byte ov02_02349D24 + arm_func_end ov02_023499C4 + + arm_func_start ov02_02349A30 +ov02_02349A30: @ 0x02349A30 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0xc + ldr r1, _02349BBC @ =0x0235AB5C + mov sl, r0 + ldr r0, [r1] + ldr r1, _02349BC0 @ =0x02352EB0 + ldrb r2, [r0, #0x1c] + ldr r0, [r0] + mov r3, sl + lsl r2, r2, #2 + ldrh r2, [r1, r2] + mvn r1, #0 + bl ov02_0234D440 + ldr r0, _02349BBC @ =0x0235AB5C + ldr r2, _02349BC0 @ =0x02352EB0 + ldr r0, [r0] + add r3, sl, #8 + ldrb r4, [r0, #0x1c] + ldr r0, [r0, #4] + mvn r1, #0 + lsl r4, r4, #2 + ldrh r2, [r2, r4] + add r2, r2, #8 + bl ov02_0234D440 + ldr r0, _02349BBC @ =0x0235AB5C + mov r1, sl + ldr r0, [r0] + ldr r0, [r0] + bl ov02_02349BD8 + ldr r0, _02349BBC @ =0x0235AB5C + mov r1, sl + ldr r0, [r0] + ldr r0, [r0, #4] + bl ov02_02349BD8 + ldr r4, _02349BBC @ =0x0235AB5C + ldr r8, _02349BC4 @ =0x02352F10 + ldr r0, [r4] + mov sb, #0 + ldrb r0, [r0, #0x1c] + ldrb r1, [r8, r0] + cmp r1, #0 + ble _02349B54 + ldr r7, _02349BC8 @ =0x02352E66 + ldr r5, _02349BCC @ =0x02352EE0 + ldr fp, _02349BC0 @ =0x02352EB0 + mvn r6, #0 +_02349AE8: + add r1, r7, r0, lsl #1 + ldrb ip, [sb, r1] + add r2, r5, r0, lsl #3 + add r3, fp, r0, lsl #2 + add r0, r2, ip, lsl #2 + ldr r1, [r4] + lsl ip, ip, #2 + ldrh r2, [ip, r2] + ldrh r0, [r0, #2] + add r1, r1, sb, lsl #2 + ldrh r3, [r3, #2] + add ip, sl, r0 + ldr r0, [r1, #8] + mov r1, r6 + sub r3, ip, r3 + bl ov02_0234D440 + ldr r0, [r4] + mov r1, sl + add r0, r0, sb, lsl #2 + ldr r0, [r0, #8] + bl ov02_02349BD8 + ldr r0, [r4] + add sb, sb, #1 + ldrb r0, [r0, #0x1c] + ldrb r1, [r8, r0] + cmp sb, r1 + blt _02349AE8 +_02349B54: + and r1, sl, #0xff + cmp r1, #0xc0 + movge r3, #0 + movge r1, r3 + bge _02349B78 + ldr r2, _02349BD0 @ =0x02352ECA + lsl r3, r0, #2 + ldrh r2, [r2, r3] + add r3, r1, r2 +_02349B78: + ldr r4, _02349BC0 @ =0x02352EB0 + lsl r5, r0, #2 + ldr r2, _02349BD4 @ =0x02352EC8 + ldrh r0, [r4, r5] + ldrh r2, [r2, r5] + cmp r3, #0xc0 + add r4, sp, #4 + movgt r3, #0xc0 + add r2, r0, r2 + str r4, [sp] + bl ov02_0234E384 + mov r0, #0 + mov r2, r4 + mov r1, r0 + bl ov02_0234E480 + add sp, sp, #0xc + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02349BBC: .4byte 0x0235AB5C +_02349BC0: .4byte 0x02352EB0 +_02349BC4: .4byte 0x02352F10 +_02349BC8: .4byte 0x02352E66 +_02349BCC: .4byte 0x02352EE0 +_02349BD0: .4byte 0x02352ECA +_02349BD4: .4byte 0x02352EC8 + arm_func_end ov02_02349A30 + + arm_func_start ov02_02349BD8 +ov02_02349BD8: @ 0x02349BD8 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #8 + mov sl, r0 + mov sb, r1 + bl ov02_0234D314 + mov r7, r0 + cmp r7, #0 + mov r8, #0 + addle sp, sp, #8 + pople {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov fp, #0x200 + mov r4, r8 + add r6, sp, #4 + add r5, sp, #0 +_02349C10: + mov r0, sl + mov r1, r8 + mov r2, r6 + mov r3, r5 + bl ov02_0234D590 + ldr r0, [sp] + cmp r0, sb + blt _02349C3C + cmp r0, #0xc0 + movlt r2, r4 + blt _02349C40 +_02349C3C: + mov r2, fp +_02349C40: + mov r0, sl + mov r1, r8 + mov r3, #0 + bl ov02_0234D31C + add r8, r8, #1 + cmp r8, r7 + blt _02349C10 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov02_02349BD8 + + arm_func_start ov02_02349C64 +ov02_02349C64: @ 0x02349C64 + push {r4, lr} + ldr r1, _02349D10 @ =0x0235AB5C + mov r4, r0 + ldr r0, [r1] + mov r1, #0 + add r0, r0, r4, lsl #2 + ldr r0, [r0, #8] + bl ov02_0234D308 + ldr r1, _02349D10 @ =0x0235AB5C + mov r2, r0 + ldr r0, [r1] + ldr r1, _02349D14 @ =0x02352E7A + ldrb r3, [r0, #0x1c] + mov r0, #0 + add r1, r1, r3, lsl #1 + ldrb r1, [r4, r1] + add r1, r1, #1 + bl ov02_0234D618 + ldr r0, _02349D10 @ =0x0235AB5C + ldr r2, _02349D18 @ =0x02352E66 + ldr r0, [r0] + ldr r1, _02349D1C @ =0x02352EE0 + ldrb lr, [r0, #0x1c] + add r0, r0, r4, lsl #2 + ldr r0, [r0, #8] + add r2, r2, lr, lsl #1 + ldrb r3, [r4, r2] + add r2, r1, lr, lsl #3 + mvn r1, #0 + lsl ip, r3, #2 + ldrh r2, [ip, r2] + ldr r3, _02349D20 @ =0x02352EE2 + add r3, r3, lr, lsl #3 + ldrh r3, [ip, r3] + bl ov02_0234D440 + ldr r0, _02349D10 @ =0x0235AB5C + mvn r1, #0 + ldr r0, [r0] + mov r2, #0 + add r0, r0, r4, lsl #2 + ldr r0, [r0, #8] + bl ov02_0234D530 + pop {r4, pc} + .align 2, 0 +_02349D10: .4byte 0x0235AB5C +_02349D14: .4byte 0x02352E7A +_02349D18: .4byte 0x02352E66 +_02349D1C: .4byte 0x02352EE0 +_02349D20: .4byte 0x02352EE2 + arm_func_end ov02_02349C64 + + arm_func_start ov02_02349D24 +ov02_02349D24: @ 0x02349D24 + push {r3, lr} + ldr r1, _02349D58 @ =0x0235AB5C + ldr r3, [r1] + ldrb r2, [r3, #0x1d] + add r2, r2, #1 + strb r2, [r3, #0x1d] + ldr r1, [r1] + ldrb r1, [r1, #0x1d] + cmp r1, #8 + poplo {r3, pc} + ldr r1, _02349D5C @ =ov02_02349D60 + bl ov02_0234FB38 + pop {r3, pc} + .align 2, 0 +_02349D58: .4byte 0x0235AB5C +_02349D5C: .4byte ov02_02349D60 + arm_func_end ov02_02349D24 + + arm_func_start ov02_02349D60 +ov02_02349D60: @ 0x02349D60 + push {r4, lr} + sub sp, sp, #8 + ldr r1, _02349DE4 @ =0x0235AB5C + mov r4, r0 + ldr r0, [r1] + add r2, sp, #4 + ldr r0, [r0] + add r3, sp, #0 + mov r1, #0 + bl ov02_0234D590 + ldr r0, [sp] + add r0, r0, #0xc + str r0, [sp] + bl ov02_02349A30 + ldr r0, [sp] + cmp r0, #0xc0 + addlt sp, sp, #8 + poplt {r4, pc} + ldr r0, _02349DE4 @ =0x0235AB5C + ldr r0, [r0] + ldrb r0, [r0, #0x1e] + cmp r0, #0 + beq _02349DD0 + ldr r1, _02349DE8 @ =ov02_02349DF0 + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} +_02349DD0: + ldr r1, _02349DEC @ =ov02_02349E4C + mov r0, r4 + bl ov02_0234FB38 + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_02349DE4: .4byte 0x0235AB5C +_02349DE8: .4byte ov02_02349DF0 +_02349DEC: .4byte ov02_02349E4C + arm_func_end ov02_02349D60 + + arm_func_start ov02_02349DF0 +ov02_02349DF0: @ 0x02349DF0 + push {r4, lr} + ldr r1, _02349E40 @ =0x0235AB5C + mov r4, r0 + ldr r3, [r1] + ldr r0, _02349E44 @ =0x04000050 + ldrsb r2, [r3, #0x1a] + add r2, r2, #1 + strb r2, [r3, #0x1a] + ldr r1, [r1] + ldrsb r1, [r1, #0x1a] + bl FUN_0207772C + ldr r0, _02349E40 @ =0x0235AB5C + ldr r0, [r0] + ldrsb r0, [r0, #0x1a] + cmp r0, #0 + poplt {r4, pc} + ldr r1, _02349E48 @ =ov02_02349E4C + mov r0, r4 + bl ov02_0234FB38 + pop {r4, pc} + .align 2, 0 +_02349E40: .4byte 0x0235AB5C +_02349E44: .4byte 0x04000050 +_02349E48: .4byte ov02_02349E4C + arm_func_end ov02_02349DF0 + + arm_func_start ov02_02349E4C +ov02_02349E4C: @ 0x02349E4C + push {r3, r4, r5, r6, r7, lr} + mov r3, #0x4000000 + ldr r2, [r3] + ldr r1, _02349EF0 @ =0x0235AB5C + bic r2, r2, #0xe000 + str r2, [r3] + ldr r1, [r1] + mov r6, r0 + ldr r0, [r1] + bl ov02_0234D288 + ldr r0, _02349EF0 @ =0x0235AB5C + ldr r0, [r0] + ldr r0, [r0, #4] + bl ov02_0234D288 + ldr r7, _02349EF0 @ =0x0235AB5C + ldr r4, _02349EF4 @ =0x02352F10 + ldr r1, [r7] + mov r5, #0 + ldrb r0, [r1, #0x1c] + ldrb r0, [r4, r0] + cmp r0, #0 + ble _02349ED0 +_02349EA4: + add r0, r1, r5, lsl #2 + ldr r0, [r0, #8] + cmp r0, #0 + beq _02349EB8 + bl ov02_0234D288 +_02349EB8: + ldr r1, [r7] + add r5, r5, #1 + ldrb r0, [r1, #0x1c] + ldrb r0, [r4, r0] + cmp r5, r0 + blt _02349EA4 +_02349ED0: + ldr r0, [r1, #0x10] + bl ov02_0234DD9C + mov r1, r6 + mov r0, #1 + bl ov02_0234FB40 + ldr r0, _02349EF8 @ =0x0235AB5C + bl ov02_0234E7D8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02349EF0: .4byte 0x0235AB5C +_02349EF4: .4byte 0x02352F10 +_02349EF8: .4byte 0x0235AB5C + arm_func_end ov02_02349E4C + + arm_func_start ov02_02349EFC +ov02_02349EFC: @ 0x02349EFC + push {r3, lr} + ldr r2, _02349F38 @ =0x0235AB60 + add r1, r0, #0x160 + str r0, [r2] + add r0, r1, #0x1b000 + bl ov02_0234AB94 + ldr r1, _02349F38 @ =0x0235AB60 + mov r2, #0 + ldr r0, [r1] + add r0, r0, #0x1b000 + str r2, [r0, #0x140] + ldr r0, [r1] + add r0, r0, #0x1b000 + str r2, [r0, #0x144] + pop {r3, pc} + .align 2, 0 +_02349F38: .4byte 0x0235AB60 + arm_func_end ov02_02349EFC + + arm_func_start FUN_02349F3C +FUN_02349F3C: @ 0x02349F3C + push {r4, r5, lr} + sub sp, sp, #0x7c + mov r5, r0 + add r0, sp, #0x28 + mov r4, r1 + bl FUN_0207BA08 + ldrb r2, [sp, #0x12] + ldrb r1, [sp, #0x29] + ldrh r3, [sp, #0x42] + bic r2, r2, #0xf + and r1, r1, #0xf + orr r2, r2, r1 + strb r2, [sp, #0x12] + add r0, sp, #0x2c + add r1, sp, #0x14 + lsl r2, r3, #1 + strb r3, [sp, #0x13] + bl FUN_0207C4C8 + ldrb r2, [sp, #0x12] + ldr r0, _0234A054 @ =0x0235AB60 + add lr, sp, #4 + mov r1, #0 + ldr r0, [r0] + bic r2, r2, #0xf0 + mov ip, r0 + strb r2, [sp, #0x12] + strh r1, [lr] + strh r1, [lr, #2] + strh r1, [lr, #4] + strh r1, [lr, #6] + strh r1, [lr, #8] + strh r1, [lr, #0xa] + strh r1, [lr, #0xc] + mov r3, #3 +_02349FC4: + ldrh r2, [lr] + ldrh r1, [lr, #2] + add lr, lr, #4 + subs r3, r3, #1 + strh r2, [ip] + strh r1, [ip, #2] + add ip, ip, #4 + bne _02349FC4 + ldrh r2, [lr] + add r1, r0, #0x40 + add r1, r1, #0x10000 + strh r2, [ip] + add r0, r0, #0x1b000 + str r1, [r0, #0x140] + mov r1, #2 + str r1, [sp] + ldr r0, _0234A054 @ =0x0235AB60 + add r1, sp, #0x12 + ldr r0, [r0] + mov r2, r5 + add r0, r0, #0x1b000 + ldr r0, [r0, #0x140] + mov r3, r4 + bl FUN_022C6EFC + cmp r0, #0 + beq _0234A030 + bl FUN_0207BC20 +_0234A030: + mov r0, #0x100 + mov r1, #1 + bl FUN_022C7150 + ldr r0, _0234A058 @ =0x0234A64C + bl FUN_022C3270 + mov r0, #1 + bl ov02_0234A970 + add sp, sp, #0x7c + pop {r4, r5, pc} + .align 2, 0 +_0234A054: .4byte 0x0235AB60 +_0234A058: .4byte 0x0234A64C + arm_func_end FUN_02349F3C + + arm_func_start ov02_0234A05C +ov02_0234A05C: @ 0x0234A05C + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + mov r0, #2 + bl ov02_0234A970 + mov r0, r4 + bl FUN_022C74A0 + cmp r0, #0 + beq _0234A08C + mov r0, #7 + bl ov02_0234A970 + pop {r3, r4, r5, pc} +_0234A08C: + mov r0, r5 + bl ov02_0234A0A4 + cmp r0, #0 + popne {r3, r4, r5, pc} + bl FUN_0207BC20 + pop {r3, r4, r5, pc} + arm_func_end ov02_0234A05C + + arm_func_start ov02_0234A0A4 +ov02_0234A0A4: @ 0x0234A0A4 + push {r4, r5, r6, lr} + sub sp, sp, #0x48 + mov r6, r0 + ldr r0, [r6] + mov r5, #0 + cmp r0, #0 + moveq r4, r5 + beq _0234A0EC + add r0, sp, #0 + bl FUN_0207F3E4 + ldr r1, [r6] + add r0, sp, #0 + bl FUN_0207F6C4 + cmp r0, #0 + addeq sp, sp, #0x48 + moveq r0, r5 + popeq {r4, r5, r6, pc} + add r4, sp, #0 +_0234A0EC: + mov r0, r4 + bl FUN_022C4698 + cmp r0, #0 + beq _0234A158 + ldr r1, _0234A174 @ =0x0235AB60 + ldr r0, [r1] + add r2, r0, #0x2c + add r0, r0, #0x1b000 + str r2, [r0, #0x144] + ldr r0, [r1] + add r0, r0, #0x1b000 + ldr r1, [r0, #0x144] + cmp r1, #0 + beq _0234A158 + mov r0, r4 + mov r2, #0x10000 + bl FUN_022C4718 + cmp r0, #0 + beq _0234A158 + ldr r1, _0234A174 @ =0x0235AB60 + mov r0, r6 + ldr r1, [r1] + add r1, r1, #0x1b000 + ldr r1, [r1, #0x144] + bl FUN_022C4C08 + cmp r0, #0 + movne r5, #1 +_0234A158: + add r0, sp, #0 + cmp r4, r0 + bne _0234A168 + bl FUN_0207F70C +_0234A168: + mov r0, r5 + add sp, sp, #0x48 + pop {r4, r5, r6, pc} + .align 2, 0 +_0234A174: .4byte 0x0235AB60 + arm_func_end ov02_0234A0A4 + + arm_func_start ov02_0234A178 +ov02_0234A178: @ 0x0234A178 + push {r3, r4, r5, lr} + mov r1, #1 + mov r4, r0 + bl FUN_022C33BC + cmp r0, #0 + popne {r3, r4, r5, pc} + mov r0, #1 + mvn r0, r0, lsl r4 + lsl r5, r0, #0x10 + bl FUN_0207B7E4 + ldr r1, _0234A214 @ =0x0235AB60 + ldr r3, [r1] + ldrh r2, [r3, #2] + and r2, r2, r5, lsr #16 + strh r2, [r3, #2] + ldr r3, [r1] + ldrh r2, [r3, #4] + and r2, r2, r5, lsr #16 + strh r2, [r3, #4] + ldr r3, [r1] + ldrh r2, [r3, #6] + and r2, r2, r5, lsr #16 + strh r2, [r3, #6] + ldr r3, [r1] + ldrh r2, [r3, #8] + and r2, r2, r5, lsr #16 + strh r2, [r3, #8] + ldr r3, [r1] + ldrh r2, [r3, #0xa] + and r2, r2, r5, lsr #16 + strh r2, [r3, #0xa] + ldr r2, [r1] + ldrh r1, [r2, #0xc] + and r1, r1, r5, lsr #16 + strh r1, [r2, #0xc] + bl FUN_0207B7F8 + mov r0, r4 + bl FUN_022C75D8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0234A214: .4byte 0x0235AB60 + arm_func_end ov02_0234A178 + + arm_func_start ov02_0234A218 +ov02_0234A218: @ 0x0234A218 + push {r3, r4, r5, lr} + mov r1, #0 + mov r4, r0 + bl FUN_022C33BC + cmp r0, #0 + bne _0234A2B4 + mov r0, #1 + mvn r0, r0, lsl r4 + lsl r5, r0, #0x10 + bl FUN_0207B7E4 + ldr r1, _0234A2EC @ =0x0235AB60 + ldr r3, [r1] + ldrh r2, [r3, #2] + and r2, r2, r5, lsr #16 + strh r2, [r3, #2] + ldr r3, [r1] + ldrh r2, [r3, #4] + and r2, r2, r5, lsr #16 + strh r2, [r3, #4] + ldr r3, [r1] + ldrh r2, [r3, #6] + and r2, r2, r5, lsr #16 + strh r2, [r3, #6] + ldr r3, [r1] + ldrh r2, [r3, #8] + and r2, r2, r5, lsr #16 + strh r2, [r3, #8] + ldr r3, [r1] + ldrh r2, [r3, #0xa] + and r2, r2, r5, lsr #16 + strh r2, [r3, #0xa] + ldr r2, [r1] + ldrh r1, [r2, #0xc] + and r1, r1, r5, lsr #16 + strh r1, [r2, #0xc] + bl FUN_0207B7F8 + mov r0, r4 + bl FUN_022C75D8 + pop {r3, r4, r5, pc} +_0234A2B4: + bl FUN_0207B7E4 + ldr r1, _0234A2EC @ =0x0235AB60 + mov r2, #1 + ldr r3, [r1] + mvn r4, r2, lsl r4 + ldrh r2, [r3, #4] + and r2, r2, r4 + strh r2, [r3, #4] + ldr r2, [r1] + ldrh r1, [r2, #2] + and r1, r1, r4 + strh r1, [r2, #2] + bl FUN_0207B7F8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0234A2EC: .4byte 0x0235AB60 + arm_func_end ov02_0234A218 + + arm_func_start ov02_0234A2F0 +ov02_0234A2F0: @ 0x0234A2F0 + push {r3, r4, r5, lr} + mov r1, #2 + mov r4, r0 + bl FUN_022C33BC + cmp r0, #0 + bne _0234A38C + mov r0, #1 + mvn r0, r0, lsl r4 + lsl r5, r0, #0x10 + bl FUN_0207B7E4 + ldr r1, _0234A3C4 @ =0x0235AB60 + ldr r3, [r1] + ldrh r2, [r3, #2] + and r2, r2, r5, lsr #16 + strh r2, [r3, #2] + ldr r3, [r1] + ldrh r2, [r3, #4] + and r2, r2, r5, lsr #16 + strh r2, [r3, #4] + ldr r3, [r1] + ldrh r2, [r3, #6] + and r2, r2, r5, lsr #16 + strh r2, [r3, #6] + ldr r3, [r1] + ldrh r2, [r3, #8] + and r2, r2, r5, lsr #16 + strh r2, [r3, #8] + ldr r3, [r1] + ldrh r2, [r3, #0xa] + and r2, r2, r5, lsr #16 + strh r2, [r3, #0xa] + ldr r2, [r1] + ldrh r1, [r2, #0xc] + and r1, r1, r5, lsr #16 + strh r1, [r2, #0xc] + bl FUN_0207B7F8 + mov r0, r4 + bl FUN_022C75D8 + pop {r3, r4, r5, pc} +_0234A38C: + bl FUN_0207B7E4 + ldr r1, _0234A3C4 @ =0x0235AB60 + mov ip, #1 + ldr r5, [r1] + mvn r2, ip, lsl r4 + ldrh r3, [r5, #6] + and r2, r3, r2 + strh r2, [r5, #6] + ldr r2, [r1] + ldrh r1, [r2, #8] + orr r1, r1, ip, lsl r4 + strh r1, [r2, #8] + bl FUN_0207B7F8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0234A3C4: .4byte 0x0235AB60 + arm_func_end ov02_0234A2F0 + + arm_func_start ov02_0234A3C8 +ov02_0234A3C8: @ 0x0234A3C8 + push {r3, r4, r5, r6, r7, lr} + mov r0, #3 + bl ov02_0234A970 + mov r5, #1 + ldr r7, _0234A4A4 @ =0x0235AB60 + mov r4, r5 +_0234A3E0: + ldr r1, [r7] + ldrh r0, [r1, #2] + tst r0, r4, lsl r5 + beq _0234A48C + ldrh r0, [r1, #4] + tst r0, r4, lsl r5 + bne _0234A48C + ldrh r0, [r1, #6] + tst r0, r4, lsl r5 + bne _0234A484 + mvn r0, r4, lsl r5 + lsl r6, r0, #0x10 + bl FUN_0207B7E4 + ldr r2, [r7] + ldrh r1, [r2, #2] + and r1, r1, r6, lsr #16 + strh r1, [r2, #2] + ldr r2, [r7] + ldrh r1, [r2, #4] + and r1, r1, r6, lsr #16 + strh r1, [r2, #4] + ldr r2, [r7] + ldrh r1, [r2, #6] + and r1, r1, r6, lsr #16 + strh r1, [r2, #6] + ldr r2, [r7] + ldrh r1, [r2, #8] + and r1, r1, r6, lsr #16 + strh r1, [r2, #8] + ldr r2, [r7] + ldrh r1, [r2, #0xa] + and r1, r1, r6, lsr #16 + strh r1, [r2, #0xa] + ldr r2, [r7] + ldrh r1, [r2, #0xc] + and r1, r1, r6, lsr #16 + strh r1, [r2, #0xc] + bl FUN_0207B7F8 + mov r0, r5 + bl FUN_022C75D8 + b _0234A48C +_0234A484: + mov r0, r5 + bl ov02_0234A2F0 +_0234A48C: + add r0, r5, #1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #0x10 + blo _0234A3E0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0234A4A4: .4byte 0x0235AB60 + arm_func_end ov02_0234A3C8 + + arm_func_start ov02_0234A4A8 +ov02_0234A4A8: @ 0x0234A4A8 + push {r4, r5, r6, lr} + ldr r4, _0234A50C @ =0x0235AB60 + ldr r0, [r4] + ldrh r0, [r0, #2] + cmp r0, #0 + moveq r0, #0 + popeq {r4, r5, r6, pc} + mov r6, #1 + mov r5, r6 +_0234A4CC: + ldr r0, [r4] + ldrh r0, [r0, #2] + tst r0, r5, lsl r6 + beq _0234A4F0 + mov r0, r6 + bl FUN_022C3368 + cmp r0, #0 + moveq r0, #0 + popeq {r4, r5, r6, pc} +_0234A4F0: + add r0, r6, #1 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + cmp r6, #0x10 + blo _0234A4CC + mov r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 +_0234A50C: .4byte 0x0235AB60 + arm_func_end ov02_0234A4A8 + + arm_func_start ov02_0234A510 +ov02_0234A510: @ 0x0234A510 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r7, #1 + ldr r4, _0234A604 @ =0x0235AB60 + mov r8, #0 + mov r5, #3 + mov r6, r7 +_0234A528: + ldr r0, [r4] + ldrh r0, [r0, #0xa] + tst r0, r6, lsl r7 + beq _0234A5D0 + mov r0, r7 + mov r1, r5 + bl FUN_022C33BC + cmp r0, #0 + orrne r0, r8, r6, lsl r7 + lslne r0, r0, #0x10 + lsrne r8, r0, #0x10 + bne _0234A5D0 + mvn r0, r6, lsl r7 + lsl sb, r0, #0x10 + bl FUN_0207B7E4 + ldr r2, [r4] + ldrh r1, [r2, #2] + and r1, r1, sb, lsr #16 + strh r1, [r2, #2] + ldr r2, [r4] + ldrh r1, [r2, #4] + and r1, r1, sb, lsr #16 + strh r1, [r2, #4] + ldr r2, [r4] + ldrh r1, [r2, #6] + and r1, r1, sb, lsr #16 + strh r1, [r2, #6] + ldr r2, [r4] + ldrh r1, [r2, #8] + and r1, r1, sb, lsr #16 + strh r1, [r2, #8] + ldr r2, [r4] + ldrh r1, [r2, #0xa] + and r1, r1, sb, lsr #16 + strh r1, [r2, #0xa] + ldr r2, [r4] + ldrh r1, [r2, #0xc] + and r1, r1, sb, lsr #16 + strh r1, [r2, #0xc] + bl FUN_0207B7F8 + mov r0, r7 + bl FUN_022C75D8 +_0234A5D0: + add r0, r7, #1 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + cmp r7, #0x10 + blo _0234A528 + cmp r8, #0 + bne _0234A5F8 + mov r0, #7 + bl ov02_0234A970 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_0234A5F8: + mov r0, #4 + bl ov02_0234A970 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0234A604: .4byte 0x0235AB60 + arm_func_end ov02_0234A510 + + arm_func_start ov02_0234A608 +ov02_0234A608: @ 0x0234A608 + push {r3, lr} + mov r0, #6 + bl ov02_0234A970 + bl FUN_022C759C + pop {r3, pc} + arm_func_end ov02_0234A608 + + arm_func_start ov02_0234A61C +ov02_0234A61C: @ 0x0234A61C + push {r3, lr} + ldr r0, _0234A648 @ =0x0235AB60 + ldr r2, [r0] + ldrh r0, [r2] + cmp r0, #4 + ldrheq r1, [r2, #2] + ldrheq r0, [r2, #0xc] + cmpeq r1, r0 + popne {r3, pc} + bl FUN_022C759C + pop {r3, pc} + .align 2, 0 +_0234A648: .4byte 0x0235AB60 + arm_func_end ov02_0234A61C +_0234A64C: + .byte 0x70, 0x40, 0x2D, 0xE9 + .byte 0x00, 0x50, 0xA0, 0xE1, 0x02, 0x40, 0xA0, 0xE1, 0x0E, 0x00, 0x51, 0xE3, 0x01, 0xF1, 0x8F, 0x90 + .byte 0xBF, 0x00, 0x00, 0xEA, 0xBE, 0x00, 0x00, 0xEA, 0x70, 0x80, 0xBD, 0xE8, 0x0B, 0x00, 0x00, 0xEA + .byte 0x2C, 0x00, 0x00, 0xEA, 0x70, 0x80, 0xBD, 0xE8, 0x70, 0x80, 0xBD, 0xE8, 0x70, 0x80, 0xBD, 0xE8 + .byte 0x77, 0x00, 0x00, 0xEA, 0x70, 0x80, 0xBD, 0xE8, 0x81, 0x00, 0x00, 0xEA, 0x48, 0x00, 0x00, 0xEA + .byte 0x70, 0x80, 0xBD, 0xE8, 0x8B, 0x00, 0x00, 0xEA, 0xA1, 0x00, 0x00, 0xEA, 0x5F, 0x00, 0x00, 0xEA + .byte 0xB7, 0x00, 0x00, 0xEB, 0x02, 0x00, 0x50, 0xE3, 0x70, 0x80, 0xBD, 0x18, 0xB8, 0x02, 0x9F, 0xE5 + .byte 0x00, 0x60, 0x90, 0xE5, 0x4A, 0xC4, 0xF4, 0xEB, 0xB2, 0x20, 0xD6, 0xE1, 0x01, 0x10, 0xA0, 0xE3 + .byte 0x11, 0x15, 0x82, 0xE1, 0xB2, 0x10, 0xC6, 0xE1, 0x4A, 0xC4, 0xF4, 0xEB, 0x98, 0x12, 0x9F, 0xE5 + .byte 0x01, 0x30, 0x45, 0xE2, 0x1E, 0x00, 0xA0, 0xE3, 0x93, 0x00, 0x00, 0xE0, 0x00, 0x20, 0x91, 0xE5 + .byte 0x24, 0x30, 0x82, 0xE2, 0x0A, 0x20, 0xD4, 0xE5, 0x00, 0xC0, 0x83, 0xE0, 0x00, 0x20, 0xC3, 0xE7 + .byte 0x0B, 0x20, 0xD4, 0xE5, 0x01, 0x20, 0xCC, 0xE5, 0x0C, 0x20, 0xD4, 0xE5, 0x02, 0x20, 0xCC, 0xE5 + .byte 0x0D, 0x20, 0xD4, 0xE5, 0x03, 0x20, 0xCC, 0xE5, 0x0E, 0x20, 0xD4, 0xE5, 0x04, 0x20, 0xCC, 0xE5 + .byte 0x0F, 0x20, 0xD4, 0xE5, 0x05, 0x20, 0xCC, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x00, 0x00, 0x81, 0xE0 + .byte 0xBA, 0x52, 0xC0, 0xE1, 0x70, 0x80, 0xBD, 0xE8, 0xB0, 0x00, 0x00, 0xEB, 0x06, 0x00, 0x50, 0xE3 + .byte 0x70, 0x80, 0xBD, 0x08, 0x01, 0x00, 0xA0, 0xE3, 0x10, 0x05, 0xE0, 0xE1, 0x00, 0x48, 0xA0, 0xE1 + .byte 0x27, 0xC4, 0xF4, 0xEB, 0x20, 0x12, 0x9F, 0xE5, 0x00, 0x30, 0x91, 0xE5, 0xB2, 0x20, 0xD3, 0xE1 + .byte 0x24, 0x28, 0x02, 0xE0, 0xB2, 0x20, 0xC3, 0xE1, 0x00, 0x30, 0x91, 0xE5, 0xB4, 0x20, 0xD3, 0xE1 + .byte 0x24, 0x28, 0x02, 0xE0, 0xB4, 0x20, 0xC3, 0xE1, 0x00, 0x30, 0x91, 0xE5, 0xB6, 0x20, 0xD3, 0xE1 + .byte 0x24, 0x28, 0x02, 0xE0, 0xB6, 0x20, 0xC3, 0xE1, 0x00, 0x30, 0x91, 0xE5, 0xB8, 0x20, 0xD3, 0xE1 + .byte 0x24, 0x28, 0x02, 0xE0, 0xB8, 0x20, 0xC3, 0xE1, 0x00, 0x30, 0x91, 0xE5, 0xBA, 0x20, 0xD3, 0xE1 + .byte 0x24, 0x28, 0x02, 0xE0, 0xBA, 0x20, 0xC3, 0xE1, 0x00, 0x20, 0x91, 0xE5, 0xBC, 0x10, 0xD2, 0xE1 + .byte 0x24, 0x18, 0x01, 0xE0, 0xBC, 0x10, 0xC2, 0xE1, 0x12, 0xC4, 0xF4, 0xEB, 0x9A, 0xFF, 0xFF, 0xEB + .byte 0x70, 0x80, 0xBD, 0xE8, 0x72, 0x00, 0x00, 0xEB, 0x02, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A + .byte 0x05, 0x00, 0xA0, 0xE1, 0x93, 0xFE, 0xFF, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x98, 0x01, 0x9F, 0xE5 + .byte 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x90, 0xE5, 0x05, 0x00, 0xA0, 0xE1, 0xB4, 0x20, 0xD3, 0xE1 + .byte 0x11, 0x15, 0x82, 0xE1, 0xB4, 0x10, 0xC3, 0xE1, 0x62, 0xFE, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE1 + .byte 0xBB, 0xE2, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x70, 0x80, 0xBD, 0x08, 0x68, 0x11, 0x9F, 0xE5 + .byte 0x01, 0x20, 0x45, 0xE2, 0x00, 0x30, 0x91, 0xE5, 0x1E, 0x10, 0xA0, 0xE3, 0x0E, 0x30, 0x83, 0xE2 + .byte 0x92, 0x31, 0x21, 0xE0, 0x16, 0x20, 0xA0, 0xE3, 0x2A, 0xC7, 0xF4, 0xEB, 0x70, 0x80, 0xBD, 0xE8 + .byte 0x44, 0x01, 0x9F, 0xE5, 0x01, 0x40, 0xA0, 0xE3, 0x00, 0x30, 0x90, 0xE5, 0x14, 0x15, 0xE0, 0xE1 + .byte 0xB4, 0x20, 0xD3, 0xE1, 0x01, 0x10, 0x02, 0xE0, 0xB4, 0x10, 0xC3, 0xE1, 0x00, 0x10, 0x90, 0xE5 + .byte 0xB6, 0x00, 0xD1, 0xE1, 0x14, 0x05, 0x80, 0xE1, 0xB6, 0x00, 0xC1, 0xE1, 0x4C, 0x00, 0x00, 0xEB + .byte 0x03, 0x00, 0x50, 0xE3, 0x70, 0x80, 0xBD, 0x18, 0x05, 0x00, 0xA0, 0xE1, 0xA3, 0xFE, 0xFF, 0xEB + .byte 0x70, 0x80, 0xBD, 0xE8, 0x00, 0x01, 0x9F, 0xE5, 0x01, 0x40, 0xA0, 0xE3, 0x00, 0x30, 0x90, 0xE5 + .byte 0x14, 0x15, 0xE0, 0xE1, 0xB8, 0x20, 0xD3, 0xE1, 0x01, 0x10, 0x02, 0xE0, 0xB8, 0x10, 0xC3, 0xE1 + .byte 0x00, 0x10, 0x90, 0xE5, 0xBA, 0x00, 0xD1, 0xE1, 0x14, 0x05, 0x80, 0xE1, 0xBA, 0x00, 0xC1, 0xE1 + .byte 0x70, 0x80, 0xBD, 0xE8, 0xD0, 0x00, 0x9F, 0xE5, 0x01, 0x40, 0xA0, 0xE3, 0x00, 0x30, 0x90, 0xE5 + .byte 0x14, 0x15, 0xE0, 0xE1, 0xBA, 0x20, 0xD3, 0xE1, 0x01, 0x10, 0x02, 0xE0, 0xBA, 0x10, 0xC3, 0xE1 + .byte 0x00, 0x10, 0x90, 0xE5, 0xBC, 0x00, 0xD1, 0xE1, 0x14, 0x05, 0x80, 0xE1, 0xBC, 0x00, 0xC1, 0xE1 + .byte 0x55, 0xFF, 0xFF, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x2D, 0x00, 0x00, 0xEB, 0x04, 0x00, 0x50, 0xE3 + .byte 0x02, 0x00, 0x00, 0x1A, 0x05, 0x00, 0xA0, 0xE3, 0x24, 0x00, 0x00, 0xEB, 0x01, 0x00, 0x00, 0xEA + .byte 0x00, 0x00, 0xA0, 0xE3, 0x21, 0x00, 0x00, 0xEB, 0x7C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x1B, 0x0A, 0x80, 0xE2, 0x44, 0x11, 0x90, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x00, 0x10, 0xA0, 0x13 + .byte 0x44, 0x11, 0x80, 0x15, 0x60, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x1B, 0x0A, 0x80, 0xE2 + .byte 0x40, 0x11, 0x90, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x00, 0x10, 0xA0, 0x13, 0x40, 0x11, 0x80, 0x15 + .byte 0x70, 0x80, 0xBD, 0xE8, 0xB0, 0x00, 0xD4, 0xE1, 0x08, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0xCA + .byte 0x70, 0x80, 0xBD, 0xA8, 0x02, 0x00, 0x50, 0xE3, 0x70, 0x80, 0xBD, 0xC8, 0x01, 0x00, 0x50, 0xE3 + .byte 0x70, 0x80, 0xBD, 0xB8, 0x02, 0x00, 0x50, 0x13, 0x02, 0x00, 0x00, 0x0A, 0x70, 0x80, 0xBD, 0xE8 + .byte 0x09, 0x00, 0x50, 0xE3, 0x70, 0x80, 0xBD, 0x18, 0x07, 0x00, 0xA0, 0xE3, 0x03, 0x00, 0x00, 0xEB + .byte 0x70, 0x80, 0xBD, 0xE8, 0xAD, 0xC4, 0xF4, 0xEB, 0x70, 0x80, 0xBD, 0xE8, 0x60, 0xAB, 0x35, 0x02 + + arm_func_start ov02_0234A970 +ov02_0234A970: @ 0x0234A970 + ldr r1, _0234A980 @ =0x0235AB60 + ldr r1, [r1] + strh r0, [r1] + bx lr + .align 2, 0 +_0234A980: .4byte 0x0235AB60 + arm_func_end ov02_0234A970 + + arm_func_start ov02_0234A984 +ov02_0234A984: @ 0x0234A984 + ldr r0, _0234A994 @ =0x0235AB60 + ldr r0, [r0] + ldrh r0, [r0] + bx lr + .align 2, 0 +_0234A994: .4byte 0x0235AB60 + arm_func_end ov02_0234A984 + + arm_func_start ov02_0234A998 +ov02_0234A998: @ 0x0234A998 + ldr r2, _0234A9E4 @ =0x0235AB60 + ldr r1, _0234A9E8 @ =0x02353E54 + ldr ip, [r2] + ldr r2, _0234A9EC @ =0x02353E54 + add r3, ip, #2 + str r3, [r1] + add r3, ip, #4 + str r3, [r1, #4] + add r3, ip, #6 + str r3, [r1, #8] + add r3, ip, #8 + str r3, [r1, #0xc] + add r3, ip, #0xa + str r3, [r1, #0x10] + add r3, ip, #0xc + str r3, [r1, #0x14] + ldr r0, [r2, r0, lsl #2] + ldrh r0, [r0] + bx lr + .align 2, 0 +_0234A9E4: .4byte 0x0235AB60 +_0234A9E8: .4byte 0x02353E54 +_0234A9EC: .4byte 0x02353E54 + arm_func_end ov02_0234A998 + + arm_func_start ov02_0234A9F0 +ov02_0234A9F0: @ 0x0234A9F0 + push {r3, r4, r5, lr} + sub sp, sp, #0x10 + mov r4, r0 + bl FUN_0207B7E4 + ldr r1, _0234AAB4 @ =0x0235AB60 + mov r3, #1 + ldr r2, [r1] + lsl r3, r3, r4 + ldrh r1, [r2, #2] + lsl r4, r3, #0x10 + mov r5, r0 + tst r1, r4, lsr #16 + bne _0234AA34 + bl FUN_0207B7F8 + add sp, sp, #0x10 + mov r0, #0 + pop {r3, r4, r5, pc} +_0234AA34: + mov r0, r2 + add r1, sp, #0 + mov r2, #0xe + bl FUN_0207C4C8 + mov r0, r5 + bl FUN_0207B7F8 + ldrh r0, [sp, #4] + tst r0, r4, lsr #16 + addne sp, sp, #0x10 + movne r0, #2 + popne {r3, r4, r5, pc} + ldrh r0, [sp, #6] + tst r0, r4, lsr #16 + addne sp, sp, #0x10 + movne r0, #3 + popne {r3, r4, r5, pc} + ldrh r0, [sp, #8] + tst r0, r4, lsr #16 + addne sp, sp, #0x10 + movne r0, #4 + popne {r3, r4, r5, pc} + ldrh r0, [sp, #0xa] + tst r0, r4, lsr #16 + addne sp, sp, #0x10 + movne r0, #5 + popne {r3, r4, r5, pc} + ldrh r0, [sp, #0xc] + tst r0, r4, lsr #16 + movne r0, #6 + moveq r0, #1 + add sp, sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_0234AAB4: .4byte 0x0235AB60 + arm_func_end ov02_0234A9F0 + + arm_func_start ov02_0234AAB8 +ov02_0234AAB8: @ 0x0234AAB8 + ldr r1, _0234AAE8 @ =0x0235AB60 + mov r2, #1 + ldr r3, [r1] + ldrh r1, [r3, #2] + tst r1, r2, lsl r0 + moveq r0, #0 + bxeq lr + sub r1, r0, #1 + add r2, r3, #0xe + mov r0, #0x1e + mla r0, r1, r0, r2 + bx lr + .align 2, 0 +_0234AAE8: .4byte 0x0235AB60 + arm_func_end ov02_0234AAB8 + + arm_func_start ov02_0234AAEC +ov02_0234AAEC: @ 0x0234AAEC + push {r4, r5, r6, r7, r8, lr} + ldr r1, _0234AB90 @ =0x0235AB60 + mov lr, #1 + ldr r5, [r1] + mov ip, lr + ldrh r4, [r5, #2] + add r1, r5, #0x24 + mov r6, #0x1e +_0234AB0C: + tst r4, ip, lsl lr + beq _0234AB74 + sub r2, lr, #1 + mul r3, r2, r6 + ldrb r8, [r0] + ldrb r7, [r1, r3] + add r2, r1, r3 + cmp r8, r7 + ldrbeq r8, [r0, #1] + ldrbeq r7, [r2, #1] + cmpeq r8, r7 + ldrbeq r8, [r0, #2] + ldrbeq r7, [r2, #2] + cmpeq r8, r7 + ldrbeq r8, [r0, #3] + ldrbeq r7, [r2, #3] + cmpeq r8, r7 + ldrbeq r8, [r0, #4] + ldrbeq r7, [r2, #4] + cmpeq r8, r7 + ldrbeq r7, [r0, #5] + ldrbeq r2, [r2, #5] + cmpeq r7, r2 + addeq r0, r5, r3 + ldrheq r0, [r0, #0x2a] + popeq {r4, r5, r6, r7, r8, pc} +_0234AB74: + add r2, lr, #1 + lsl r2, r2, #0x10 + lsr lr, r2, #0x10 + cmp lr, #2 + blo _0234AB0C + mov r0, #0 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0234AB90: .4byte 0x0235AB60 + arm_func_end ov02_0234AAEC + + arm_func_start ov02_0234AB94 +ov02_0234AB94: @ 0x0234AB94 + ldr r1, _0234ABCC @ =0x0235AB64 + mov r2, #0 + str r0, [r1, #4] + str r2, [r0, #0x40] + ldr r0, [r1, #4] + add r0, r0, #0x1000 + str r2, [r0, #0x3a8] + ldr r0, [r1, #4] + add r0, r0, #0x1000 + str r2, [r0, #0x3ac] + ldr r0, [r1, #4] + add r0, r0, #0x1000 + str r2, [r0, #0x3b0] + bx lr + .align 2, 0 +_0234ABCC: .4byte 0x0235AB64 + arm_func_end ov02_0234AB94 + + arm_func_start ov02_0234ABD0 +ov02_0234ABD0: @ 0x0234ABD0 + push {r4, lr} + ldr r1, _0234AC3C @ =0x0235AB64 + mov r4, r0 + ldr r3, [r1] + cmp r3, #0 + beq _0234AC04 + ldr r1, [r1, #4] + ldr r0, _0234AC40 @ =0x0235420C + ldr r2, [r1, #0x40] + ldr r1, _0234AC44 @ =0x02354234 + ldr r2, [r0, r2, lsl #2] + mov r0, #0x8000000 + blx r3 +_0234AC04: + ldr r0, _0234AC3C @ =0x0235AB64 + ldr r1, [r0, #4] + str r4, [r1, #0x40] + ldr r3, [r0] + cmp r3, #0 + popeq {r4, pc} + ldr r1, [r0, #4] + ldr r0, _0234AC40 @ =0x0235420C + ldr r2, [r1, #0x40] + ldr r1, _0234AC48 @ =0x0235423C + ldr r2, [r0, r2, lsl #2] + mov r0, #0x8000000 + blx r3 + pop {r4, pc} + .align 2, 0 +_0234AC3C: .4byte 0x0235AB64 +_0234AC40: .4byte 0x0235420C +_0234AC44: .4byte 0x02354234 +_0234AC48: .4byte 0x0235423C + arm_func_end ov02_0234ABD0 + + arm_func_start ov02_0234AC4C +ov02_0234AC4C: @ 0x0234AC4C + ldr r1, _0234AC68 @ =0x0235AB64 + ldr r2, [r1, #4] + ldr r1, [r2, #0x40] + sub r1, r1, #9 + cmp r1, #1 + strhi r0, [r2, #0x54] + bx lr + .align 2, 0 +_0234AC68: .4byte 0x0235AB64 + arm_func_end ov02_0234AC4C + + arm_func_start ov02_0234AC6C +ov02_0234AC6C: @ 0x0234AC6C + push {r3, lr} + mov r0, #3 + bl ov02_0234ABD0 + ldr r1, _0234ACA8 @ =0x0235AB64 + ldr r0, _0234ACAC @ =ov02_0234ACB0 + ldr r1, [r1, #4] + bl FUN_022BFC14 + cmp r0, #2 + moveq r0, #1 + popeq {r3, pc} + bl ov02_0234AC4C + mov r0, #9 + bl ov02_0234ABD0 + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0234ACA8: .4byte 0x0235AB64 +_0234ACAC: .4byte ov02_0234ACB0 + arm_func_end ov02_0234AC6C + + arm_func_start ov02_0234ACB0 +ov02_0234ACB0: @ 0x0234ACB0 + push {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + beq _0234ACD0 + bl ov02_0234AC4C + mov r0, #9 + bl ov02_0234ABD0 + pop {r3, pc} +_0234ACD0: + ldr r0, _0234AD18 @ =0x0235AB64 + ldr r0, [r0, #4] + add r0, r0, #0x1000 + ldr r0, [r0, #0x3ac] + cmp r0, #0 + beq _0234AD00 + bl ov02_0234AD1C + cmp r0, #0 + popne {r3, pc} + mov r0, #9 + bl ov02_0234ABD0 + pop {r3, pc} +_0234AD00: + bl ov02_0234ADB8 + cmp r0, #0 + popne {r3, pc} + mov r0, #9 + bl ov02_0234ABD0 + pop {r3, pc} + .align 2, 0 +_0234AD18: .4byte 0x0235AB64 + arm_func_end ov02_0234ACB0 + + arm_func_start ov02_0234AD1C +ov02_0234AD1C: @ 0x0234AD1C + push {r3, lr} + mov r0, #3 + bl ov02_0234ABD0 + ldr r0, _0234AD78 @ =0x0235AB64 + ldr r1, [r0, #4] + add r0, r1, #0x1000 + ldr r2, [r0, #0x3ac] + add r0, r1, #0x13c0 + blx r2 + ldr r2, _0234AD78 @ =0x0235AB64 + mov r1, r0 + ldr r2, [r2, #4] + ldr r0, _0234AD7C @ =ov02_0234AD80 + add r2, r2, #0x13c0 + bl FUN_022C13B8 + cmp r0, #2 + moveq r0, #1 + popeq {r3, pc} + bl ov02_0234AC4C + mov r0, #9 + bl ov02_0234ABD0 + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0234AD78: .4byte 0x0235AB64 +_0234AD7C: .4byte ov02_0234AD80 + arm_func_end ov02_0234AD1C + + arm_func_start ov02_0234AD80 +ov02_0234AD80: @ 0x0234AD80 + push {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + beq _0234ADA0 + bl ov02_0234AC4C + mov r0, #9 + bl ov02_0234ABD0 + pop {r3, pc} +_0234ADA0: + bl ov02_0234ADB8 + cmp r0, #0 + popne {r3, pc} + mov r0, #9 + bl ov02_0234ABD0 + pop {r3, pc} + arm_func_end ov02_0234AD80 + + arm_func_start ov02_0234ADB8 +ov02_0234ADB8: @ 0x0234ADB8 + push {r3, lr} + ldr r0, _0234AE14 @ =0x0235AB64 + ldr r0, [r0, #4] + ldr r0, [r0, #0x40] + sub r0, r0, #4 + cmp r0, #2 + movls r0, #1 + popls {r3, pc} + ldr r0, _0234AE18 @ =ov02_0234AE1C + bl FUN_022BFD9C + cmp r0, #2 + beq _0234ADF4 + bl ov02_0234AC4C + mov r0, #0 + pop {r3, pc} +_0234ADF4: + ldr r1, _0234AE14 @ =0x0235AB64 + mov r3, #0 + ldr r2, [r1, #4] + mov r0, #1 + strh r3, [r2, #0x50] + ldr r1, [r1, #4] + strh r0, [r1, #0x52] + pop {r3, pc} + .align 2, 0 +_0234AE14: .4byte 0x0235AB64 +_0234AE18: .4byte ov02_0234AE1C + arm_func_end ov02_0234ADB8 + + arm_func_start ov02_0234AE1C +ov02_0234AE1C: @ 0x0234AE1C + push {r3, r4, r5, lr} + mov r4, r0 + ldrh r2, [r4, #0x10] + ldrh r0, [r4, #2] + mov r1, #1 + lsl r1, r1, r2 + cmp r0, #0 + lsl r5, r1, #0x10 + beq _0234AE50 + bl ov02_0234AC4C + mov r0, #9 + bl ov02_0234ABD0 + pop {r3, r4, r5, pc} +_0234AE50: + ldrh ip, [r4, #8] + cmp ip, #7 + bgt _0234AE80 + bge _0234AE8C + cmp ip, #2 + bgt _0234AF58 + cmp ip, #0 + blt _0234AF58 + beq _0234AF40 + cmp ip, #2 + popeq {r3, r4, r5, pc} + b _0234AF58 +_0234AE80: + cmp ip, #9 + beq _0234AF08 + b _0234AF58 +_0234AE8C: + ldr r0, _0234AF7C @ =0x0235AB64 + ldr r3, [r0] + cmp r3, #0 + beq _0234AEA8 + ldr r1, _0234AF80 @ =0x02354240 + mov r0, #0x8000000 + blx r3 +_0234AEA8: + ldr r0, _0234AF7C @ =0x0235AB64 + ldr r0, [r0, #4] + ldr r1, [r0, #0x4c] + cmp r1, #0 + beq _0234AEF0 + mov r0, r4 + blx r1 + cmp r0, #0 + bne _0234AEF0 + ldrh r1, [r4, #0x10] + mov r0, #0 + bl FUN_022C0134 + cmp r0, #2 + popeq {r3, r4, r5, pc} + bl ov02_0234AC4C + mov r0, #9 + bl ov02_0234ABD0 + pop {r3, r4, r5, pc} +_0234AEF0: + ldr r0, _0234AF7C @ =0x0235AB64 + ldr r1, [r0, #4] + ldrh r0, [r1, #0x52] + orr r0, r0, r5, lsr #16 + strh r0, [r1, #0x52] + pop {r3, r4, r5, pc} +_0234AF08: + ldr r0, _0234AF7C @ =0x0235AB64 + ldr r3, [r0] + cmp r3, #0 + beq _0234AF24 + ldr r1, _0234AF84 @ =0x0235426C + mov r0, #0x8000000 + blx r3 +_0234AF24: + ldr r0, _0234AF7C @ =0x0235AB64 + mvn r1, r5, lsr #16 + ldr r2, [r0, #4] + ldrh r0, [r2, #0x52] + and r0, r0, r1 + strh r0, [r2, #0x52] + pop {r3, r4, r5, pc} +_0234AF40: + bl ov02_0234AF8C + cmp r0, #0 + popne {r3, r4, r5, pc} + mov r0, #9 + bl ov02_0234ABD0 + pop {r3, r4, r5, pc} +_0234AF58: + ldr r0, _0234AF7C @ =0x0235AB64 + ldr r3, [r0] + cmp r3, #0 + popeq {r3, r4, r5, pc} + ldr r1, _0234AF88 @ =0x02354298 + mov r2, ip + mov r0, #0x8000000 + blx r3 + pop {r3, r4, r5, pc} + .align 2, 0 +_0234AF7C: .4byte 0x0235AB64 +_0234AF80: .4byte 0x02354240 +_0234AF84: .4byte 0x0235426C +_0234AF88: .4byte 0x02354298 + arm_func_end ov02_0234AE1C + + arm_func_start ov02_0234AF8C +ov02_0234AF8C: @ 0x0234AF8C + push {r3, lr} + sub sp, sp, #8 + ldr r0, _0234B01C @ =0x0235AB64 + ldr r0, [r0, #4] + ldr r0, [r0, #0x40] + sub r0, r0, #4 + cmp r0, #2 + addls sp, sp, #8 + movls r0, #1 + popls {r3, pc} + mov r0, #4 + bl ov02_0234ABD0 + ldr r0, _0234B01C @ =0x0235AB64 + mov ip, #1 + ldr lr, [r0, #4] + ldr r0, _0234B020 @ =ov02_0234B024 + add r3, lr, #0x1000 + ldr r1, [r3, #0x2a0] + add r2, lr, #0x60 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + stm sp, {r1, ip} + ldr r3, [r3, #0x2a4] + add r1, r2, #0x1000 + lsl r2, r3, #0x10 + lsr r2, r2, #0x10 + add r3, lr, #0xf80 + bl FUN_022C0430 + cmp r0, #2 + addeq sp, sp, #8 + moveq r0, #1 + popeq {r3, pc} + bl ov02_0234AC4C + mov r0, #0 + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_0234B01C: .4byte 0x0235AB64 +_0234B020: .4byte ov02_0234B024 + arm_func_end ov02_0234AF8C + + arm_func_start ov02_0234B024 +ov02_0234B024: @ 0x0234B024 + push {r3, lr} + ldrh r1, [r0, #2] + cmp r1, #0 + beq _0234B048 + mov r0, r1 + bl ov02_0234AC4C + mov r0, #9 + bl ov02_0234ABD0 + pop {r3, pc} +_0234B048: + ldrh r2, [r0, #4] + sub r0, r2, #0xa + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _0234B124 +_0234B05C: @ jump table + b _0234B06C @ case 0 + pop {r3, pc} @ case 1 + b _0234B124 @ case 2 + b _0234B124 @ case 3 +_0234B06C: + ldr r0, _0234B144 @ =0x0235AB64 + ldr r1, [r0, #4] + ldr r0, [r1, #0x44] + cmp r0, #2 + bne _0234B0CC + ldr r0, [r1, #0x40] + cmp r0, #4 + bne _0234B0C0 + bl ov02_0234B150 + cmp r0, #0 + popne {r3, pc} + ldr r0, _0234B144 @ =0x0235AB64 + ldr r2, [r0] + cmp r2, #0 + beq _0234B0B4 + ldr r1, _0234B148 @ =0x023542B8 + mov r0, #0x8000000 + blx r2 +_0234B0B4: + mov r0, #9 + bl ov02_0234ABD0 + pop {r3, pc} +_0234B0C0: + cmp r0, #6 + bne _0234B118 + pop {r3, pc} +_0234B0CC: + cmp r0, #4 + bne _0234B118 + add r0, r1, #0x3e0 + mov ip, #1 + add r0, r0, #0x1000 + mov r1, #0xd + mov r2, #7 + mov r3, #0x44 + str ip, [sp] + bl FUN_022C0810 + cmp r0, #0 + beq _0234B10C + bl ov02_0234AC4C + mov r0, #9 + bl ov02_0234ABD0 + pop {r3, pc} +_0234B10C: + mov r0, #5 + bl ov02_0234ABD0 + pop {r3, pc} +_0234B118: + mov r0, #4 + bl ov02_0234ABD0 + pop {r3, pc} +_0234B124: + ldr r0, _0234B144 @ =0x0235AB64 + ldr r3, [r0] + cmp r3, #0 + popeq {r3, pc} + ldr r1, _0234B14C @ =0x02354298 + mov r0, #0x8000000 + blx r3 + pop {r3, pc} + .align 2, 0 +_0234B144: .4byte 0x0235AB64 +_0234B148: .4byte 0x023542B8 +_0234B14C: .4byte 0x02354298 + arm_func_end ov02_0234B024 + + arm_func_start ov02_0234B150 +ov02_0234B150: @ 0x0234B150 + push {r3, lr} + mov r0, #6 + bl ov02_0234ABD0 + ldr r0, _0234B188 @ =0x0235AB64 + mov r1, #0xd + ldr r0, [r0, #4] + add r0, r0, #0x1e00 + bl FUN_022C1390 + cmp r0, #2 + moveq r0, #1 + popeq {r3, pc} + bl ov02_0234AC4C + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0234B188: .4byte 0x0235AB64 + arm_func_end ov02_0234B150 + + arm_func_start ov02_0234B18C +ov02_0234B18C: @ 0x0234B18C + push {r3, lr} + ldr r0, _0234B1B8 @ =0x0235AB64 + ldr r0, [r0, #4] + add r0, r0, #0x1e00 + bl FUN_022C13AC + cmp r0, #2 + moveq r0, #1 + popeq {r3, pc} + bl ov02_0234AC4C + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0234B1B8: .4byte 0x0235AB64 + arm_func_end ov02_0234B18C + + arm_func_start ov02_0234B1BC +ov02_0234B1BC: @ 0x0234B1BC + push {r3, lr} + mov r0, #3 + bl ov02_0234ABD0 + ldr r0, _0234B1E8 @ =ov02_0234B1EC + bl FUN_022C05C8 + cmp r0, #2 + moveq r0, #1 + popeq {r3, pc} + bl ov02_0234AC4C + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0234B1E8: .4byte ov02_0234B1EC + arm_func_end ov02_0234B1BC + + arm_func_start ov02_0234B1EC +ov02_0234B1EC: @ 0x0234B1EC + push {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + beq _0234B208 + bl ov02_0234AC4C + bl ov02_0234BBC0 + pop {r3, pc} +_0234B208: + bl ov02_0234B240 + cmp r0, #0 + popne {r3, pc} + ldr r0, _0234B238 @ =0x0235AB64 + ldr r2, [r0] + cmp r2, #0 + beq _0234B230 + ldr r1, _0234B23C @ =0x023542E8 + mov r0, #0x8000000 + blx r2 +_0234B230: + bl ov02_0234BBC0 + pop {r3, pc} + .align 2, 0 +_0234B238: .4byte 0x0235AB64 +_0234B23C: .4byte 0x023542E8 + arm_func_end ov02_0234B1EC + + arm_func_start ov02_0234B240 +ov02_0234B240: @ 0x0234B240 + push {r3, lr} + ldr r0, _0234B264 @ =0x0234B268 + bl FUN_022BFDAC + cmp r0, #2 + moveq r0, #1 + popeq {r3, pc} + bl ov02_0234AC4C + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0234B264: .4byte 0x0234B268 + arm_func_end ov02_0234B240 +_0234B268: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xB2, 0x00, 0xD0, 0xE1 + .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x73, 0xFE, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x01, 0x00, 0xA0, 0xE3, 0x51, 0xFE, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0234B28C +ov02_0234B28C: @ 0x0234B28C + push {r3, lr} + ldr r0, _0234B2D8 @ =0x0235AB64 + ldr r0, [r0, #4] + ldr r0, [r0, #0x40] + cmp r0, #6 + movne r0, #0 + popne {r3, pc} + mov r0, #3 + bl ov02_0234ABD0 + ldr r0, _0234B2D8 @ =0x0235AB64 + ldr r0, [r0, #4] + add r0, r0, #0x1e00 + bl FUN_022C13AC + cmp r0, #2 + moveq r0, #1 + popeq {r3, pc} + bl ov02_0234AC4C + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0234B2D8: .4byte 0x0235AB64 + arm_func_end ov02_0234B28C + + arm_func_start ov02_0234B2DC +ov02_0234B2DC: @ 0x0234B2DC + push {r3, lr} + mov r0, #3 + bl ov02_0234ABD0 + ldr r0, _0234B308 @ =ov02_0234B30C + bl FUN_022C05C8 + cmp r0, #2 + moveq r0, #1 + popeq {r3, pc} + bl ov02_0234AC4C + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0234B308: .4byte ov02_0234B30C + arm_func_end ov02_0234B2DC + + arm_func_start ov02_0234B30C +ov02_0234B30C: @ 0x0234B30C + push {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + beq _0234B328 + bl ov02_0234AC4C + bl ov02_0234BBDC + pop {r3, pc} +_0234B328: + bl ov02_0234B340 + cmp r0, #0 + popne {r3, pc} + mov r0, #9 + bl ov02_0234ABD0 + pop {r3, pc} + arm_func_end ov02_0234B30C + + arm_func_start ov02_0234B340 +ov02_0234B340: @ 0x0234B340 + push {r3, lr} + mov r0, #3 + bl ov02_0234ABD0 + ldr r0, _0234B374 @ =0x0234B378 + mov r1, #0 + bl FUN_022C0134 + cmp r0, #2 + moveq r0, #1 + popeq {r3, pc} + bl ov02_0234AC4C + bl ov02_0234BBC0 + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0234B374: .4byte 0x0234B378 + arm_func_end ov02_0234B340 +_0234B378: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xB2, 0x00, 0xD0, 0xE1 + .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x2F, 0xFE, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x01, 0x00, 0xA0, 0xE3, 0x0D, 0xFE, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0234B39C +ov02_0234B39C: @ 0x0234B39C + push {r3, lr} + mov r0, #3 + bl ov02_0234ABD0 + ldr r0, _0234B3C8 @ =ov02_0234B3CC + bl FUN_022BFB9C + cmp r0, #2 + moveq r0, #1 + popeq {r3, pc} + bl ov02_0234AC4C + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0234B3C8: .4byte ov02_0234B3CC + arm_func_end ov02_0234B39C + + arm_func_start ov02_0234B3CC +ov02_0234B3CC: @ 0x0234B3CC + push {r4, lr} + mov r4, r0 + ldrh r0, [r4, #2] + cmp r0, #0 + beq _0234B3F4 + mov r0, #9 + bl ov02_0234ABD0 + ldrh r0, [r4, #2] + bl ov02_0234AC4C + pop {r4, pc} +_0234B3F4: + mov r0, #1 + bl ov02_0234ABD0 + pop {r4, pc} + arm_func_end ov02_0234B3CC + + arm_func_start ov02_0234B400 +ov02_0234B400: @ 0x0234B400 + push {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + beq _0234B41C + mov r0, #0xa + bl ov02_0234ABD0 + pop {r3, pc} +_0234B41C: + mov r0, #0 + bl ov02_0234ABD0 + pop {r3, pc} + arm_func_end ov02_0234B400 + + arm_func_start ov02_0234B428 +ov02_0234B428: @ 0x0234B428 + ldr r1, _0234B438 @ =0x0235AB64 + ldr r1, [r1, #4] + str r0, [r1, #8] + bx lr + .align 2, 0 +_0234B438: .4byte 0x0235AB64 + arm_func_end ov02_0234B428 + + arm_func_start ov02_0234B43C +ov02_0234B43C: @ 0x0234B43C + ldr r0, _0234B44C @ =0x0235AB64 + ldr r0, [r0, #4] + ldrh r0, [r0, #0x52] + bx lr + .align 2, 0 +_0234B44C: .4byte 0x0235AB64 + arm_func_end ov02_0234B43C + + arm_func_start ov02_0234B450 +ov02_0234B450: @ 0x0234B450 + ldr r0, _0234B460 @ =0x0235AB64 + ldr r0, [r0, #4] + ldr r0, [r0, #0x40] + bx lr + .align 2, 0 +_0234B460: .4byte 0x0235AB64 + arm_func_end ov02_0234B450 + + arm_func_start ov02_0234B464 +ov02_0234B464: @ 0x0234B464 + push {r3, lr} + sub sp, sp, #8 + add r0, sp, #0 + bl FUN_0207B9EC + ldr r2, _0234B530 @ =0x027FFC3C + ldrh r0, [sp] + ldr r3, [r2] + ldrh r2, [sp, #2] + add r0, r0, r3 + ldr r1, _0234B534 @ =0x0235AB64 + add r2, r2, r0 + ldrh r3, [sp, #4] + ldr r0, [r1, #4] + add r2, r3, r2 + str r2, [r0, #0x58] + ldr ip, [r1, #4] + ldr r0, _0234B538 @ =0x00010DCD + ldr r2, [ip, #0x58] + mov r3, #0 + mul r0, r2, r0 + add r0, r0, #0x39 + add r0, r0, #0x3000 + str r0, [ip, #0x58] + ldr r0, [r1, #4] + mov r2, #0x65 + strh r3, [r0, #0x5c] + ldr r1, [r1, #4] + mov r0, #3 + strh r2, [r1, #0x5e] + bl ov02_0234ABD0 + mov r0, #1 + bl ov02_0234B53C + cmp r0, #0x18 + bne _0234B508 + mov r0, #0x18 + bl ov02_0234AC4C + mov r0, #9 + bl ov02_0234ABD0 + add sp, sp, #8 + mov r0, #0 + pop {r3, pc} +_0234B508: + cmp r0, #2 + addeq sp, sp, #8 + moveq r0, #1 + popeq {r3, pc} + bl ov02_0234AC4C + mov r0, #9 + bl ov02_0234ABD0 + mov r0, #0 + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_0234B530: .4byte 0x027FFC3C +_0234B534: .4byte 0x0235AB64 +_0234B538: .4byte 0x00010DCD + arm_func_end ov02_0234B464 + + arm_func_start ov02_0234B53C +ov02_0234B53C: @ 0x0234B53C + push {r4, lr} + mov r4, r0 + bl FUN_022BF640 + cmp r0, #0x8000 + bne _0234B568 + mov r0, #3 + bl ov02_0234AC4C + mov r0, #9 + bl ov02_0234ABD0 + mov r0, #3 + pop {r4, pc} +_0234B568: + cmp r0, #0 + bne _0234B588 + mov r0, #0x16 + bl ov02_0234AC4C + mov r0, #9 + bl ov02_0234ABD0 + mov r0, #0x18 + pop {r4, pc} +_0234B588: + sub r1, r4, #1 + mov r2, #1 + tst r0, r2, lsl r1 + bne _0234B5BC +_0234B598: + add r1, r4, #1 + lsl r1, r1, #0x10 + lsr r4, r1, #0x10 + cmp r4, #0x10 + movhi r0, #0x18 + pophi {r4, pc} + sub r1, r4, #1 + tst r0, r2, lsl r1 + beq _0234B598 +_0234B5BC: + ldr r0, _0234B5D4 @ =ov02_0234B5D8 + mov r1, r4 + bl ov02_0234B6B0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + pop {r4, pc} + .align 2, 0 +_0234B5D4: .4byte ov02_0234B5D8 + arm_func_end ov02_0234B53C + + arm_func_start ov02_0234B5D8 +ov02_0234B5D8: @ 0x0234B5D8 + push {r4, lr} + mov r4, r0 + ldrh r0, [r4, #2] + cmp r0, #0 + beq _0234B5FC + bl ov02_0234AC4C + mov r0, #9 + bl ov02_0234ABD0 + pop {r4, pc} +_0234B5FC: + ldr r0, _0234B6A8 @ =0x0235AB64 + ldr ip, [r0] + cmp ip, #0 + beq _0234B620 + ldrh r2, [r4, #8] + ldrh r3, [r4, #0xa] + ldr r1, _0234B6AC @ =0x02354340 + mov r0, #0x8000000 + blx ip +_0234B620: + ldr r0, _0234B6A8 @ =0x0235AB64 + ldrh r2, [r4, #0xa] + ldr r3, [r0, #4] + ldrh ip, [r4, #8] + ldrh r1, [r3, #0x5e] + cmp r1, r2 + bls _0234B658 + strh r2, [r3, #0x5e] + sub r1, ip, #1 + mov r2, #1 + lsl r1, r2, r1 + ldr r0, [r0, #4] + strh r1, [r0, #0x60] + b _0234B670 +_0234B658: + bne _0234B670 + ldrh r2, [r3, #0x60] + sub r0, ip, #1 + mov r1, #1 + orr r0, r2, r1, lsl r0 + strh r0, [r3, #0x60] +_0234B670: + add r0, ip, #1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl ov02_0234B53C + cmp r0, #0x18 + bne _0234B694 + mov r0, #7 + bl ov02_0234ABD0 + pop {r4, pc} +_0234B694: + cmp r0, #2 + popeq {r4, pc} + mov r0, #9 + bl ov02_0234ABD0 + pop {r4, pc} + .align 2, 0 +_0234B6A8: .4byte 0x0235AB64 +_0234B6AC: .4byte 0x02354340 + arm_func_end ov02_0234B5D8 + + arm_func_start ov02_0234B6B0 +ov02_0234B6B0: @ 0x0234B6B0 + push {r3, lr} + mov r3, r1 + mov ip, #0x1e + mov r1, #3 + mov r2, #0x11 + str ip, [sp] + bl FUN_022C1610 + pop {r3, pc} + arm_func_end ov02_0234B6B0 + + arm_func_start ov02_0234B6D0 +ov02_0234B6D0: @ 0x0234B6D0 + push {r3, lr} + ldr r0, _0234B740 @ =0x0235AB64 + ldr r0, [r0, #4] + ldr r0, [r0, #0x40] + cmp r0, #7 + beq _0234B6EC + bl FUN_0207BC20 +_0234B6EC: + mov r0, #1 + bl ov02_0234ABD0 + ldr r0, _0234B740 @ =0x0235AB64 + ldr r0, [r0, #4] + ldrh r0, [r0, #0x60] + bl ov02_0234B748 + ldr r1, _0234B740 @ =0x0235AB64 + ldr r2, [r1, #4] + strh r0, [r2, #0x5c] + ldr r3, [r1] + cmp r3, #0 + beq _0234B730 + ldr r0, [r1, #4] + ldr r1, _0234B744 @ =0x02354358 + ldrh r2, [r0, #0x5c] + mov r0, #0x8000000 + blx r3 +_0234B730: + ldr r0, _0234B740 @ =0x0235AB64 + ldr r0, [r0, #4] + ldrh r0, [r0, #0x5c] + pop {r3, pc} + .align 2, 0 +_0234B740: .4byte 0x0235AB64 +_0234B744: .4byte 0x02354358 + arm_func_end ov02_0234B6D0 + + arm_func_start ov02_0234B748 +ov02_0234B748: @ 0x0234B748 + push {r4, lr} + mov r3, #0 + mov r1, r3 + mov ip, r3 + mov r4, #1 +_0234B75C: + tst r0, r4, lsl ip + beq _0234B77C + add r3, ip, #1 + add r2, r1, #1 + lsl r1, r3, #0x10 + lsl r2, r2, #0x10 + asr r3, r1, #0x10 + lsr r1, r2, #0x10 +_0234B77C: + add r2, ip, #1 + lsl r2, r2, #0x10 + asr ip, r2, #0x10 + cmp ip, #0x10 + blt _0234B75C + cmp r1, #1 + movls r0, r3 + popls {r4, pc} + ldr ip, _0234B828 @ =0x0235AB64 + ldr r3, _0234B82C @ =0x00010DCD + ldr r4, [ip, #4] + mov r2, #0 + ldr lr, [r4, #0x58] + mul r3, lr, r3 + add r3, r3, #0x39 + add r3, r3, #0x3000 + str r3, [r4, #0x58] + ldr r3, [ip, #4] + ldr r3, [r3, #0x58] + and r3, r3, #0xff + mul r3, r1, r3 + lsl r1, r3, #8 + lsr r3, r1, #0x10 +_0234B7D8: + tst r0, #1 + beq _0234B804 + cmp r3, #0 + bne _0234B7F8 + add r0, r2, #1 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + pop {r4, pc} +_0234B7F8: + sub r1, r3, #1 + lsl r1, r1, #0x10 + lsr r3, r1, #0x10 +_0234B804: + add r1, r2, #1 + lsl r1, r1, #0x10 + lsl r0, r0, #0xf + asr r2, r1, #0x10 + cmp r2, #0x10 + lsr r0, r0, #0x10 + blt _0234B7D8 + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_0234B828: .4byte 0x0235AB64 +_0234B82C: .4byte 0x00010DCD + arm_func_end ov02_0234B748 + + arm_func_start ov02_0234B830 +ov02_0234B830: @ 0x0234B830 + push {r3, lr} + ldr r2, _0234B8A4 @ =0x0235AB64 + mov r0, #0 + ldr r1, [r2, #4] + mov r3, #1 + add r1, r1, #0x1000 + str r0, [r1, #0x2a4] + ldr r1, [r2, #4] + add r1, r1, #0x1000 + str r0, [r1, #0x2a0] + ldr r1, [r2, #4] + str r0, [r1, #0x48] + ldr r1, [r2, #4] + strh r0, [r1, #0x50] + ldr r1, [r2, #4] + strh r3, [r1, #0x52] + ldr r1, [r2, #4] + str r0, [r1, #0x54] + ldr r1, [r2, #4] + str r0, [r1] + ldr r1, [r2, #4] + strh r0, [r1, #4] + ldr r1, [r2, #4] + str r0, [r1, #0x4c] + bl ov02_0234B8C8 + cmp r0, #0 + moveq r0, #0 + movne r0, #1 + pop {r3, pc} + .align 2, 0 +_0234B8A4: .4byte 0x0235AB64 + arm_func_end ov02_0234B830 +_0234B8A8: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xB2, 0x00, 0xD0, 0xE1 + .byte 0x08, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18, 0x09, 0x00, 0xA0, 0xE3, 0xC3, 0xFC, 0xFF, 0xEB + .byte 0xD6, 0xC0, 0xF4, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov02_0234B8C8 +ov02_0234B8C8: @ 0x0234B8C8 + push {r3, lr} + mov r0, #3 + bl ov02_0234ABD0 + ldr r0, _0234B90C @ =0x0235AB64 + ldr r1, _0234B910 @ =ov02_0234B914 + ldr r0, [r0, #4] + mov r2, #2 + add r0, r0, #0x80 + bl FUN_022BFB14 + cmp r0, #2 + moveq r0, #1 + popeq {r3, pc} + bl ov02_0234AC4C + mov r0, #0xa + bl ov02_0234ABD0 + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0234B90C: .4byte 0x0235AB64 +_0234B910: .4byte ov02_0234B914 + arm_func_end ov02_0234B8C8 + + arm_func_start ov02_0234B914 +ov02_0234B914: @ 0x0234B914 + push {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + beq _0234B934 + bl ov02_0234AC4C + mov r0, #0xa + bl ov02_0234ABD0 + pop {r3, pc} +_0234B934: + ldr r0, _0234B960 @ =0x0234B8A8 + bl FUN_022BF2C4 + cmp r0, #0 + beq _0234B954 + bl ov02_0234AC4C + mov r0, #0xa + bl ov02_0234ABD0 + pop {r3, pc} +_0234B954: + mov r0, #1 + bl ov02_0234ABD0 + pop {r3, pc} + .align 2, 0 +_0234B960: .4byte 0x0234B8A8 + arm_func_end ov02_0234B914 + + arm_func_start ov02_0234B964 +ov02_0234B964: @ 0x0234B964 + push {r4, r5, r6, lr} + ldr r3, _0234BACC @ =0x0235AB64 + mov r6, r0 + ldr r0, [r3, #4] + mov r5, r1 + ldr r0, [r0, #0x40] + mov r4, r2 + cmp r0, #1 + beq _0234B990 + bl FUN_0207BC20 + movs r0, #0 +_0234B990: + ldr r1, _0234BACC @ =0x0235AB64 + mov r3, #0x180 + ldr r0, [r1, #4] + mov r2, #0xe0 + add r0, r0, #0x1000 + str r3, [r0, #0x2a4] + ldr r0, [r1, #4] + add r0, r0, #0x1000 + str r2, [r0, #0x2a0] + ldr r3, [r1] + cmp r3, #0 + beq _0234B9D8 + ldr r0, [r1, #4] + ldr r1, _0234BAD0 @ =0x02354310 + add r0, r0, #0x1000 + ldr r2, [r0, #0x2a4] + mov r0, #0x8000000 + blx r3 +_0234B9D8: + ldr r0, _0234BACC @ =0x0235AB64 + ldr r3, [r0] + cmp r3, #0 + beq _0234BA00 + ldr r0, [r0, #4] + ldr r1, _0234BAD4 @ =0x02354328 + add r0, r0, #0x1000 + ldr r2, [r0, #0x2a0] + mov r0, #0x8000000 + blx r3 +_0234BA00: + ldr r1, _0234BACC @ =0x0235AB64 + mov r0, #3 + ldr r1, [r1, #4] + str r6, [r1, #0x44] + bl ov02_0234ABD0 + ldr r0, _0234BACC @ =0x0235AB64 + ldr r1, [r0, #4] + strh r5, [r1, #0xc] + ldr r0, [r0, #4] + strh r4, [r0, #0x32] + bl FUN_022BF6F0 + ldr r1, _0234BACC @ =0x0235AB64 + mov r2, #0xd0 + ldr r3, [r1, #4] + mov r4, #0x44 + strh r0, [r3, #0x18] + ldr r0, [r1, #4] + mov r3, #2 + strh r2, [r0, #0x34] + ldr r0, [r1, #4] + mov r2, #0 + strh r4, [r0, #0x36] + ldr r0, [r1, #4] + mov r4, #1 + strh r3, [r0, #0x10] + ldr r0, [r1, #4] + cmp r6, #2 + strh r2, [r0, #0x16] + ldr r0, [r1, #4] + strh r2, [r0, #0x12] + ldr r0, [r1, #4] + strh r4, [r0, #0xe] + ldr r0, _0234BACC @ =0x0235AB64 + movne r4, r2 + ldr r1, [r0, #4] + cmp r6, #0 + cmpne r6, #2 + strh r4, [r1, #0x14] + cmpne r6, #4 + bne _0234BAA8 + bl ov02_0234AC6C + pop {r4, r5, r6, pc} +_0234BAA8: + ldr r3, [r0] + cmp r3, #0 + beq _0234BAC4 + ldr r1, _0234BAD8 @ =0x02354370 + mov r2, r6 + mov r0, #0x8000000 + blx r3 +_0234BAC4: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_0234BACC: .4byte 0x0235AB64 +_0234BAD0: .4byte 0x02354310 +_0234BAD4: .4byte 0x02354328 +_0234BAD8: .4byte 0x02354370 + arm_func_end ov02_0234B964 + + arm_func_start ov02_0234BADC +ov02_0234BADC: @ 0x0234BADC + ldr r1, _0234BAEC @ =0x0235AB64 + ldr r1, [r1, #4] + str r0, [r1, #0x4c] + bx lr + .align 2, 0 +_0234BAEC: .4byte 0x0235AB64 + arm_func_end ov02_0234BADC + + arm_func_start ov02_0234BAF0 +ov02_0234BAF0: @ 0x0234BAF0 + ldr r1, _0234BB10 @ =0x0235AB64 + ldr ip, _0234BB14 @ =FUN_022C130C + ldr r1, [r1, #4] + mov r2, r0 + add r0, r1, #0x3e0 + add r0, r0, #0x1000 + add r1, r1, #0x1c00 + bx ip + .align 2, 0 +_0234BB10: .4byte 0x0235AB64 +_0234BB14: .4byte FUN_022C130C + arm_func_end ov02_0234BAF0 + + arm_func_start ov02_0234BB18 +ov02_0234BB18: @ 0x0234BB18 + push {r4, lr} + ldr r2, _0234BBB4 @ =0x0235AB64 + mov r1, r0 + ldr r2, [r2, #4] + add r0, r2, #0x3e0 + add r0, r0, #0x1000 + add r2, r2, #0x1c00 + bl FUN_022C0AAC + mov r4, r0 + cmp r4, #7 + bne _0234BB68 + ldr r0, _0234BBB4 @ =0x0235AB64 + ldr r2, [r0] + cmp r2, #0 + beq _0234BB60 + ldr r1, _0234BBB8 @ =0x0235438C + mov r0, #0x8000000 + blx r2 +_0234BB60: + mov r0, #0 + pop {r4, pc} +_0234BB68: + cmp r4, #5 + bne _0234BB9C + ldr r0, _0234BBB4 @ =0x0235AB64 + ldr r2, [r0] + cmp r2, #0 + beq _0234BB8C + ldr r1, _0234BBBC @ =0x023543BC + mov r0, #0x8000000 + blx r2 +_0234BB8C: + mov r0, r4 + bl ov02_0234AC4C + mov r0, #0 + pop {r4, pc} +_0234BB9C: + cmp r4, #0 + moveq r0, #1 + popeq {r4, pc} + bl ov02_0234AC4C + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_0234BBB4: .4byte 0x0235AB64 +_0234BBB8: .4byte 0x0235438C +_0234BBBC: .4byte 0x023543BC + arm_func_end ov02_0234BB18 + + arm_func_start ov02_0234BBC0 +ov02_0234BBC0: @ 0x0234BBC0 + push {r3, lr} + bl ov02_0234B39C + cmp r0, #0 + popne {r3, pc} + mov r0, #0xa + bl ov02_0234ABD0 + pop {r3, pc} + arm_func_end ov02_0234BBC0 + + arm_func_start ov02_0234BBDC +ov02_0234BBDC: @ 0x0234BBDC + push {r3, lr} + ldr r0, _0234BCD8 @ =0x0235AB64 + ldr r1, [r0, #4] + ldr r2, [r1, #0x40] + cmp r2, #1 + bne _0234BC10 + ldr r2, [r0] + cmp r2, #0 + popeq {r3, pc} + ldr r1, _0234BCDC @ =0x023543F0 + mov r0, #0x8000000 + blx r2 + pop {r3, pc} +_0234BC10: + ldr r3, [r0] + cmp r3, #0 + beq _0234BC28 + ldr r1, _0234BCE0 @ =0x02354414 + mov r0, #0x8000000 + blx r3 +_0234BC28: + ldr r0, _0234BCD8 @ =0x0235AB64 + ldr r0, [r0, #4] + ldr r0, [r0, #0x40] + cmp r0, #6 + cmpne r0, #5 + cmpne r0, #4 + mov r0, #3 + beq _0234BC54 + bl ov02_0234ABD0 + bl ov02_0234BBC0 + pop {r3, pc} +_0234BC54: + bl ov02_0234ABD0 + ldr r0, _0234BCD8 @ =0x0235AB64 + ldr r0, [r0, #4] + ldr r0, [r0, #0x44] + cmp r0, #5 + addls pc, pc, r0, lsl #2 + pop {r3, pc} +_0234BC70: @ jump table + b _0234BCC4 @ case 0 + b _0234BC9C @ case 1 + b _0234BCB0 @ case 2 + b _0234BC88 @ case 3 + b _0234BCC4 @ case 4 + b _0234BC9C @ case 5 +_0234BC88: + bl ov02_0234B28C + cmp r0, #0 + popne {r3, pc} + bl ov02_0234BBC0 + pop {r3, pc} +_0234BC9C: + bl ov02_0234B2DC + cmp r0, #0 + popne {r3, pc} + bl ov02_0234BBC0 + pop {r3, pc} +_0234BCB0: + bl ov02_0234B18C + cmp r0, #0 + popne {r3, pc} + bl ov02_0234BBC0 + pop {r3, pc} +_0234BCC4: + bl ov02_0234B1BC + cmp r0, #0 + popne {r3, pc} + bl ov02_0234BBC0 + pop {r3, pc} + .align 2, 0 +_0234BCD8: .4byte 0x0235AB64 +_0234BCDC: .4byte 0x023543F0 +_0234BCE0: .4byte 0x02354414 + arm_func_end ov02_0234BBDC + + arm_func_start ov02_0234BCE4 +ov02_0234BCE4: @ 0x0234BCE4 + push {r3, lr} + ldr r0, _0234BD2C @ =0x0235AB64 + ldr r0, [r0, #4] + ldr r0, [r0, #0x40] + cmp r0, #1 + beq _0234BD00 + bl FUN_0207BC20 +_0234BD00: + mov r0, #3 + bl ov02_0234ABD0 + ldr r0, _0234BD30 @ =ov02_0234B400 + bl FUN_022BFBD4 + cmp r0, #2 + moveq r0, #1 + popeq {r3, pc} + mov r0, #9 + bl ov02_0234ABD0 + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0234BD2C: .4byte 0x0235AB64 +_0234BD30: .4byte ov02_0234B400 + arm_func_end ov02_0234BCE4 + + arm_func_start ov02_0234BD34 +ov02_0234BD34: @ 0x0234BD34 + push {r4, lr} + ldr r2, _0234BE20 @ =0x0235AB6C + mov r4, r1 + str r0, [r2] + add r0, r0, #0xb00 + bl ov02_02349EFC + ldr r1, _0234BE20 @ =0x0235AB6C + mov r3, #0 + ldr r0, [r1] + mov r2, #1 + add r0, r0, #0x600 + strh r3, [r0, #0x48] + ldr r0, [r1] + add r0, r0, #0x600 + strh r3, [r0, #0x4a] + ldr r0, [r1] + strb r2, [r0, #0xa90] + ldr r0, [r1] + strb r2, [r0, #0xa91] + ldr r0, [r1] + str r3, [r0, #0xa9c] + bl ov02_0234C8E4 + ldr r0, _0234BE20 @ =0x0235AB6C + ldr r3, [r4] + ldr r2, [r0] + mov r1, #2 + str r3, [r2, #0xab4] + ldr r3, [r4, #4] + ldr r2, [r0] + str r3, [r2, #0xab8] + ldr r3, [r4, #8] + ldr r2, [r0] + str r3, [r2, #0xabc] + ldr r3, [r4, #0xc] + ldr r2, [r0] + str r3, [r2, #0xac0] + ldr r3, [r4, #0x10] + ldr r2, [r0] + str r3, [r2, #0xac4] + ldr r3, [r4, #0x14] + ldr r2, [r0] + str r3, [r2, #0xac8] + ldrb r3, [r4, #0x18] + ldr r2, [r0] + strb r3, [r2, #0xa92] + ldr r0, [r0] + strb r1, [r0, #0xacc] + bl FUN_0207AE44 + ldr r0, _0234BE20 @ =0x0235AB6C + ldr r0, [r0] + add r0, r0, #0x24c + add r0, r0, #0x400 + bl FUN_022ED660 + bl FUN_0207AE44 + bl ov02_02347D1C + ldr r1, _0234BE20 @ =0x0235AB6C + ldr r1, [r1] + str r0, [r1, #0xaa4] + pop {r4, pc} + .align 2, 0 +_0234BE20: .4byte 0x0235AB6C + arm_func_end ov02_0234BD34 + + arm_func_start ov02_0234BE24 +ov02_0234BE24: @ 0x0234BE24 + push {r3, lr} + ldr r0, _0234BEFC @ =0x0235AB6C + ldr r2, [r0] + ldrb r1, [r2, #0xa90] + cmp r1, #1 + cmpne r1, #0x14 + cmpne r1, #0x17 + cmpne r1, #0x1a + cmpne r1, #0x1d + bne _0234BE6C + mov r1, #0x22 + strb r1, [r2, #0xa90] + ldr r0, _0234BEFC @ =0x0235AB6C + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0xaac] + mov r0, #1 + pop {r3, pc} +_0234BE6C: + cmp r1, #4 + cmpne r1, #5 + cmpne r1, #6 + cmpne r1, #0xd + bne _0234BEC0 + cmp r1, #4 + bne _0234BE98 + ldr r0, [r2, #0xa98] + cmp r0, #6 + movlo r0, #0 + poplo {r3, pc} +_0234BE98: + bl FUN_022C759C + ldr r0, _0234BEFC @ =0x0235AB6C + mov r3, #0x10 + ldr r1, [r0] + mov r2, #2 + strb r3, [r1, #0xa90] + ldr r1, [r0] + mov r0, #1 + strb r2, [r1, #0xaac] + pop {r3, pc} +_0234BEC0: + add r0, r1, #0xf7 + and r0, r0, #0xff + cmp r0, #1 + bhi _0234BEE0 + mov r0, #0x20 + strb r0, [r2, #0xa90] + mov r0, #1 + pop {r3, pc} +_0234BEE0: + cmp r1, #0xc + movne r0, #0 + popne {r3, pc} + mov r0, #0x22 + strb r0, [r2, #0xa90] + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0234BEFC: .4byte 0x0235AB6C + arm_func_end ov02_0234BE24 + + arm_func_start ov02_0234BF00 +ov02_0234BF00: @ 0x0234BF00 + push {r3, lr} + ldr r0, _0234BF7C @ =0x0235AB6C + ldr r0, [r0] + ldr r0, [r0, #0xac8] + bl ov02_0234B428 + ldr r0, _0234BF7C @ =0x0235AB6C + mov r1, #1 + ldr r0, [r0] + strb r1, [r0, #0xa90] + bl FUN_022BF96C + ldr r3, _0234BF7C @ =0x0235AB6C + mov r2, #0x40 + ldr r1, [r3] + add r1, r1, #0x600 + strh r0, [r1, #0x48] + ldr r1, [r3] + ldr r0, [r1, #0xaa4] + add r1, r1, #0xa50 + bl FUN_0207C4C8 + ldr r0, _0234BF7C @ =0x0235AB6C + mov r2, #0 + ldr r1, [r0] + strb r2, [r1, #0xa93] + ldr r1, [r0] + str r2, [r1, #0x204] + ldr r0, [r0] + add r0, r0, #0x600 + ldrh r1, [r0, #0x48] + add r1, r1, #1 + strh r1, [r0, #0x48] + pop {r3, pc} + .align 2, 0 +_0234BF7C: .4byte 0x0235AB6C + arm_func_end ov02_0234BF00 + + arm_func_start ov02_0234BF80 +ov02_0234BF80: @ 0x0234BF80 + push {r3, lr} + ldr r0, _0234BFC4 @ =0x0235AB6C + ldr r0, [r0] + ldrb r0, [r0, #0xa90] + cmp r0, #1 + cmpne r0, #0x1a + cmpne r0, #0x1d + movne r0, #0 + popne {r3, pc} + bl ov02_0234BF00 + bl ov02_0234B830 + ldr r0, _0234BFC4 @ =0x0235AB6C + mov r2, #2 + ldr r1, [r0] + mov r0, #1 + strb r2, [r1, #0xa90] + pop {r3, pc} + .align 2, 0 +_0234BFC4: .4byte 0x0235AB6C + arm_func_end ov02_0234BF80 + + arm_func_start ov02_0234BFC8 +ov02_0234BFC8: @ 0x0234BFC8 + push {r3, lr} + ldr r0, _0234BFF8 @ =0x0235AB6C + ldr r1, [r0] + ldrb r0, [r1, #0xa90] + cmp r0, #5 + movne r0, #0 + popne {r3, pc} + mov r0, #6 + strb r0, [r1, #0xa90] + bl ov02_0234A3C8 + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0234BFF8: .4byte 0x0235AB6C + arm_func_end ov02_0234BFC8 + + arm_func_start ov02_0234BFFC +ov02_0234BFFC: @ 0x0234BFFC + push {r3, lr} + ldr r1, _0234C378 @ =0x0235AB6C + ldr r0, [r1] + ldrb r2, [r0, #0xa90] + cmp r2, #0x22 + addls pc, pc, r2, lsl #2 + pop {r3, pc} +_0234C018: @ jump table + pop {r3, pc} @ case 0 + b _0234C0A4 @ case 1 + b _0234C0E0 @ case 2 + b _0234C0E8 @ case 3 + b _0234C100 @ case 4 + b _0234C114 @ case 5 + b _0234C114 @ case 6 + b _0234C11C @ case 7 + b _0234C124 @ case 8 + b _0234C124 @ case 9 + b _0234C124 @ case 10 + b _0234C12C @ case 11 + pop {r3, pc} @ case 12 + pop {r3, pc} @ case 13 + pop {r3, pc} @ case 14 + pop {r3, pc} @ case 15 + b _0234C134 @ case 16 + b _0234C14C @ case 17 + b _0234C168 @ case 18 + b _0234C18C @ case 19 + pop {r3, pc} @ case 20 + b _0234C1C4 @ case 21 + b _0234C1E8 @ case 22 + pop {r3, pc} @ case 23 + b _0234C220 @ case 24 + b _0234C244 @ case 25 + pop {r3, pc} @ case 26 + b _0234C27C @ case 27 + b _0234C2A0 @ case 28 + pop {r3, pc} @ case 29 + b _0234C370 @ case 30 + pop {r3, pc} @ case 31 + b _0234C314 @ case 32 + b _0234C338 @ case 33 + pop {r3, pc} @ case 34 +_0234C0A4: + ldrb r2, [r0, #0xaac] + cmp r2, #1 + bne _0234C0C0 + mov r1, #0 + strb r1, [r0, #0xaac] + bl ov02_0234BF80 + pop {r3, pc} +_0234C0C0: + cmp r2, #2 + popne {r3, pc} + mov r2, #0 + strb r2, [r0, #0xaac] + ldr r0, [r1] + mov r1, #0x22 + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C0E0: + bl ov02_0234C3D4 + pop {r3, pc} +_0234C0E8: + bl ov02_0234C47C + ldr r0, _0234C378 @ =0x0235AB6C + mov r1, #4 + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C100: + ldr r1, [r0, #0xa98] + add r1, r1, #1 + str r1, [r0, #0xa98] + bl ov02_0234C4A0 + pop {r3, pc} +_0234C114: + bl ov02_0234C4A0 + pop {r3, pc} +_0234C11C: + bl ov02_0234C658 + pop {r3, pc} +_0234C124: + bl ov02_0234C684 + pop {r3, pc} +_0234C12C: + bl ov02_0234C860 + pop {r3, pc} +_0234C134: + mov r2, #0 + str r2, [r0, #0xa9c] + ldr r0, [r1] + mov r1, #0x11 + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C14C: + ldr r2, [r0, #0xa9c] + add r1, r2, #1 + str r1, [r0, #0xa9c] + cmp r2, #0x1e + popls {r3, pc} + bl ov02_0234C878 + pop {r3, pc} +_0234C168: + bl FUN_022C759C + ldr r0, _0234C378 @ =0x0235AB6C + mov r3, #0 + ldr r2, [r0] + mov r1, #0x16 + str r3, [r2, #0xa9c] + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C18C: + ldr r2, [r0, #0xa9c] + add r1, r2, #1 + str r1, [r0, #0xa9c] + cmp r2, #0x1e + popls {r3, pc} + bl ov02_0234B450 + cmp r0, #1 + popne {r3, pc} + bl ov02_0234BCE4 + ldr r0, _0234C378 @ =0x0235AB6C + mov r1, #0x14 + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C1C4: + bl ov02_0234BBDC + ldr r0, _0234C378 @ =0x0235AB6C + mov r3, #0 + ldr r2, [r0] + mov r1, #0x16 + str r3, [r2, #0xa9c] + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C1E8: + ldr r2, [r0, #0xa9c] + add r1, r2, #1 + str r1, [r0, #0xa9c] + cmp r2, #0x1e + popls {r3, pc} + bl ov02_0234B450 + cmp r0, #1 + popne {r3, pc} + bl ov02_0234BCE4 + ldr r0, _0234C378 @ =0x0235AB6C + mov r1, #0x17 + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C220: + bl ov02_0234BBDC + ldr r0, _0234C378 @ =0x0235AB6C + mov r3, #0 + ldr r2, [r0] + mov r1, #0x19 + str r3, [r2, #0xa9c] + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C244: + ldr r2, [r0, #0xa9c] + add r1, r2, #1 + str r1, [r0, #0xa9c] + cmp r2, #0x1e + popls {r3, pc} + bl ov02_0234B450 + cmp r0, #1 + popne {r3, pc} + bl ov02_0234BCE4 + ldr r0, _0234C378 @ =0x0235AB6C + mov r1, #0x1a + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C27C: + bl ov02_0234BBDC + ldr r0, _0234C378 @ =0x0235AB6C + mov r3, #0 + ldr r2, [r0] + mov r1, #0x1c + str r3, [r2, #0xa9c] + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C2A0: + ldr r2, [r0, #0xa9c] + add r1, r2, #1 + str r1, [r0, #0xa9c] + cmp r2, #0x1e + popls {r3, pc} + bl ov02_0234B450 + cmp r0, #1 + bne _0234C2D8 + bl ov02_0234BCE4 + ldr r0, _0234C378 @ =0x0235AB6C + mov r1, #0x1d + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C2D8: + ldr r1, _0234C378 @ =0x0235AB6C + ldr r0, _0234C37C @ =0x88888889 + ldr r1, [r1] + mov r2, #0x1e + ldr r3, [r1, #0xa9c] + umull r0, r1, r3, r0 + lsr r1, r1, #4 + umull r0, r1, r2, r1 + sub r1, r3, r0 + cmp r1, #1 + popne {r3, pc} + cmp r3, #0x37 + popls {r3, pc} + bl ov02_0234BBDC + pop {r3, pc} +_0234C314: + bl ov02_0234BBDC + ldr r0, _0234C378 @ =0x0235AB6C + mov r3, #0 + ldr r2, [r0] + mov r1, #0x21 + str r3, [r2, #0xa9c] + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C338: + ldr r2, [r0, #0xa9c] + add r1, r2, #1 + str r1, [r0, #0xa9c] + cmp r2, #0x1e + popls {r3, pc} + bl ov02_0234B450 + cmp r0, #1 + popne {r3, pc} + bl ov02_0234BCE4 + ldr r0, _0234C378 @ =0x0235AB6C + mov r1, #0x22 + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C370: + bl ov02_0234BBDC + pop {r3, pc} + .align 2, 0 +_0234C378: .4byte 0x0235AB6C +_0234C37C: .4byte 0x88888889 + arm_func_end ov02_0234BFFC + + arm_func_start ov02_0234C380 +ov02_0234C380: @ 0x0234C380 + ldr r2, _0234C3C0 @ =0x0235AB6C + ldr r3, [r2] + ldrb r3, [r3, #0xa90] + strb r3, [r0] + ldr r0, [r2] + ldrb r2, [r0, #0xa90] + ldrb r0, [r0, #0xa91] + cmp r2, r0 + movne r0, #1 + moveq r0, #0 + strb r0, [r1] + ldr r0, _0234C3C0 @ =0x0235AB6C + ldr r1, [r0] + ldrb r0, [r1, #0xa90] + strb r0, [r1, #0xa91] + bx lr + .align 2, 0 +_0234C3C0: .4byte 0x0235AB6C + arm_func_end ov02_0234C380 + + arm_func_start ov02_0234C3C4 +ov02_0234C3C4: @ 0x0234C3C4 + ldr ip, _0234C3D0 @ =FUN_022C32E4 + mov r0, #1 + bx ip + .align 2, 0 +_0234C3D0: .4byte FUN_022C32E4 + arm_func_end ov02_0234C3C4 + + arm_func_start ov02_0234C3D4 +ov02_0234C3D4: @ 0x0234C3D4 + push {r3, lr} + bl ov02_0234B450 + cmp r0, #9 + addls pc, pc, r0, lsl #2 + b _0234C470 +_0234C3E8: @ jump table + b _0234C448 @ case 0 + b _0234C410 @ case 1 + b _0234C470 @ case 2 + pop {r3, pc} @ case 3 + b _0234C470 @ case 4 + b _0234C470 @ case 5 + b _0234C470 @ case 6 + b _0234C418 @ case 7 + b _0234C470 @ case 8 + b _0234C468 @ case 9 +_0234C410: + bl ov02_0234B464 + pop {r3, pc} +_0234C418: + bl ov02_0234B6D0 + ldr r2, _0234C478 @ =0x0235AB6C + mov ip, #0 + ldr r1, [r2] + mov r3, #3 + add r1, r1, #0x600 + strh r0, [r1, #0x4a] + ldr r0, [r2] + str ip, [r0, #0xa98] + ldr r0, [r2] + strb r3, [r0, #0xa90] + pop {r3, pc} +_0234C448: + ldr r0, _0234C478 @ =0x0235AB6C + mov r3, #0 + ldr r2, [r0] + mov r1, #3 + str r3, [r2, #0xa98] + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C468: + bl ov02_0234BBC0 + pop {r3, pc} +_0234C470: + bl FUN_0207BC20 + pop {r3, pc} + .align 2, 0 +_0234C478: .4byte 0x0235AB6C + arm_func_end ov02_0234C3D4 + + arm_func_start ov02_0234C47C +ov02_0234C47C: @ 0x0234C47C + ldr r0, _0234C498 @ =0x0235AB6C + ldr ip, _0234C49C @ =FUN_02349F3C + ldr r2, [r0] + add r0, r2, #0x600 + ldrh r1, [r0, #0x48] + ldr r0, [r2, #0xac8] + bx ip + .align 2, 0 +_0234C498: .4byte 0x0235AB6C +_0234C49C: .4byte FUN_02349F3C + arm_func_end ov02_0234C47C + + arm_func_start ov02_0234C4A0 +ov02_0234C4A0: @ 0x0234C4A0 + push {r3, lr} + bl ov02_0234A984 + cmp r0, #7 + addls pc, pc, r0, lsl #2 + pop {r3, pc} +_0234C4B4: @ jump table + b _0234C604 @ case 0 + b _0234C4D4 @ case 1 + b _0234C4F4 @ case 2 + b _0234C584 @ case 3 + pop {r3, pc} @ case 4 + b _0234C5D8 @ case 5 + pop {r3, pc} @ case 6 + b _0234C5EC @ case 7 +_0234C4D4: + ldr r0, _0234C654 @ =0x0235AB6C + ldr r2, [r0] + add r0, r2, #0x600 + ldrh r1, [r0, #0x4a] + add r0, r2, #0x2b4 + add r0, r0, #0x800 + bl ov02_0234A05C + pop {r3, pc} +_0234C4F4: + mov r0, #2 + bl ov02_0234A998 + cmp r0, #0 + beq _0234C518 + ldr r0, _0234C654 @ =0x0235AB6C + mov r1, #5 + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C518: + mov r0, #3 + bl ov02_0234A998 + cmp r0, #0 + bne _0234C538 + mov r0, #4 + bl ov02_0234A998 + cmp r0, #0 + beq _0234C54C +_0234C538: + ldr r0, _0234C654 @ =0x0235AB6C + mov r1, #6 + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C54C: + ldr r0, _0234C654 @ =0x0235AB6C + ldr r0, [r0] + ldrb r0, [r0, #0xa90] + cmp r0, #5 + popne {r3, pc} + mov r0, #2 + bl ov02_0234A998 + cmp r0, #0 + popne {r3, pc} + ldr r0, _0234C654 @ =0x0235AB6C + mov r1, #0xd + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C584: + bl ov02_0234A4A8 + cmp r0, #0 + beq _0234C598 + bl ov02_0234A510 + pop {r3, pc} +_0234C598: + ldr r0, _0234C654 @ =0x0235AB6C + ldr r0, [r0] + ldrb r0, [r0, #0xa90] + add r0, r0, #0xfa + and r0, r0, #0xff + cmp r0, #1 + pophi {r3, pc} + mov r0, #3 + bl ov02_0234A998 + cmp r0, #0 + popne {r3, pc} + ldr r0, _0234C654 @ =0x0235AB6C + mov r1, #0x12 + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C5D8: + ldr r0, _0234C654 @ =0x0235AB6C + mov r1, #7 + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C5EC: + bl ov02_0234A608 + ldr r0, _0234C654 @ =0x0235AB6C + mov r1, #1 + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C604: + bl ov02_0234B450 + cmp r0, #0 + beq _0234C62C + cmp r0, #1 + beq _0234C624 + cmp r0, #3 + popeq {r3, pc} + b _0234C640 +_0234C624: + bl ov02_0234BCE4 + pop {r3, pc} +_0234C62C: + ldr r0, _0234C654 @ =0x0235AB6C + mov r1, #0x1f + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C640: + ldr r0, _0234C654 @ =0x0235AB6C + mov r1, #0x1f + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} + .align 2, 0 +_0234C654: .4byte 0x0235AB6C + arm_func_end ov02_0234C4A0 + + arm_func_start ov02_0234C658 +ov02_0234C658: @ 0x0234C658 + push {r3, lr} + bl ov02_0234C8E4 + ldr r0, _0234C67C @ =ov02_0234C8A8 + bl ov02_0234BADC + ldr r0, _0234C680 @ =0x0235AB6C + mov r1, #8 + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} + .align 2, 0 +_0234C67C: .4byte ov02_0234C8A8 +_0234C680: .4byte 0x0235AB6C + arm_func_end ov02_0234C658 + + arm_func_start ov02_0234C684 +ov02_0234C684: @ 0x0234C684 + push {r3, lr} + bl ov02_0234B450 + cmp r0, #6 + addls pc, pc, r0, lsl #2 + pop {r3, pc} +_0234C698: @ jump table + pop {r3, pc} @ case 0 + b _0234C6B4 @ case 1 + pop {r3, pc} @ case 2 + pop {r3, pc} @ case 3 + b _0234C6E0 @ case 4 + b _0234C6E0 @ case 5 + b _0234C6E0 @ case 6 +_0234C6B4: + ldr r1, _0234C85C @ =0x0235AB6C + mov r0, #4 + ldr r1, [r1] + add r1, r1, #0x600 + ldrh r3, [r1, #0x48] + ldrh r2, [r1, #0x4a] + add r1, r3, #1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl ov02_0234B964 + pop {r3, pc} +_0234C6E0: + ldr r1, _0234C85C @ =0x0235AB6C + mov r0, #0 + ldr r2, [r1] + add r1, r2, #0x200 + ldrh r1, [r1] + ldr ip, [r2, #0xaa4] + lsr r3, r1, #0x1f + rsb r2, r3, r1, lsl #28 + add r2, r3, r2, ror #28 + add r2, ip, r2, lsl #6 + bl ov02_0234C928 + bl ov02_0234CA90 + ldr r0, _0234C85C @ =0x0235AB6C + ldr r1, [r0] + ldrb r0, [r1, #0xa90] + cmp r0, #0x1b + popeq {r3, pc} + ldr r0, [r1, #0x204] + cmp r0, #0x1e0 + movhi r0, #0x1b + strbhi r0, [r1, #0xa90] + pophi {r3, pc} + bl ov02_0234CB74 + cmp r0, #0x10 + beq _0234C750 + bl ov02_0234CB74 + cmp r0, #0x20 + bne _0234C768 +_0234C750: + bl ov02_0234CB74 + ldr r0, _0234C85C @ =0x0235AB6C + mov r1, #0xa + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C768: + bl ov02_0234CB74 + cmp r0, #0x40 + bne _0234C788 + ldr r0, _0234C85C @ =0x0235AB6C + mov r1, #0xb + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C788: + bl ov02_0234CB74 + cmp r0, #0xff + bne _0234C7A8 + ldr r0, _0234C85C @ =0x0235AB6C + mov r1, #0x1b + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C7A8: + bl ov02_0234CB74 + cmp r0, #0x50 + bne _0234C7C8 + ldr r0, _0234C85C @ =0x0235AB6C + mov r1, #0x15 + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C7C8: + bl ov02_0234CB74 + cmp r0, #0x60 + bne _0234C7E8 + ldr r0, _0234C85C @ =0x0235AB6C + mov r1, #0x18 + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C7E8: + bl ov02_0234CB74 + cmp r0, #0x70 + bne _0234C808 + ldr r0, _0234C85C @ =0x0235AB6C + mov r1, #0x1b + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C808: + bl ov02_0234CB74 + cmp r0, #0 + bne _0234C828 + ldr r0, _0234C85C @ =0x0235AB6C + mov r1, #8 + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C828: + bl ov02_0234CB74 + cmp r0, #0xbd + bne _0234C848 + ldr r0, _0234C85C @ =0x0235AB6C + mov r1, #9 + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} +_0234C848: + ldr r0, _0234C85C @ =0x0235AB6C + mov r1, #0x1f + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, pc} + .align 2, 0 +_0234C85C: .4byte 0x0235AB6C + arm_func_end ov02_0234C684 + + arm_func_start ov02_0234C860 +ov02_0234C860: @ 0x0234C860 + ldr r0, _0234C874 @ =0x0235AB6C + mov r1, #0xc + ldr r0, [r0] + strb r1, [r0, #0xa90] + bx lr + .align 2, 0 +_0234C874: .4byte 0x0235AB6C + arm_func_end ov02_0234C860 + + arm_func_start ov02_0234C878 +ov02_0234C878: @ 0x0234C878 + push {r3, lr} + bl ov02_0234B450 + cmp r0, #1 + movne r0, #0 + popne {r3, pc} + bl ov02_0234BCE4 + ldr r1, _0234C8A4 @ =0x0235AB6C + mov r0, #1 + ldr r1, [r1] + strb r0, [r1, #0xa90] + pop {r3, pc} + .align 2, 0 +_0234C8A4: .4byte 0x0235AB6C + arm_func_end ov02_0234C878 + + arm_func_start ov02_0234C8A8 +ov02_0234C8A8: @ 0x0234C8A8 + push {r4, lr} + add r0, r0, #0xa + bl ov02_0234AAEC + movs r4, r0 + moveq r0, #0 + popeq {r4, pc} + bl ov02_0234AAB8 + ldr r1, _0234C8E0 @ =0x0235AB6C + sub r2, r4, #1 + ldr r1, [r1] + add r1, r1, r2, lsl #2 + str r0, [r1, #0xaa0] + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_0234C8E0: .4byte 0x0235AB6C + arm_func_end ov02_0234C8A8 + + arm_func_start ov02_0234C8E4 +ov02_0234C8E4: @ 0x0234C8E4 + push {r3, lr} + ldr r0, _0234C924 @ =0x0235AB6C + mov r1, #0 + ldr r0, [r0] + mov r2, #0x100 + add r0, r0, #0x100 + bl FUN_0207C40C + ldr r0, _0234C924 @ =0x0235AB6C + mov r1, #0 + ldr r0, [r0] + mov r2, #0x100 + bl FUN_0207C40C + ldr r0, _0234C924 @ =0x0235AB6C + ldr r0, [r0] + str r0, [r0, #0xab0] + pop {r3, pc} + .align 2, 0 +_0234C924: .4byte 0x0235AB6C + arm_func_end ov02_0234C8E4 + + arm_func_start ov02_0234C928 +ov02_0234C928: @ 0x0234C928 + push {r3, r4, r5, r6, r7, r8, sb, lr} + ldr r3, _0234CA8C @ =0x0235AB6C + ldr r5, [r3] + ldrb r4, [r5, #0xa93] + cmp r4, #1 + bne _0234C970 + ldr r4, [r5, #0xab0] + strh r0, [r4] + ldr r4, [r3] + mov r0, r2 + ldr r4, [r4, #0xab0] + mov r2, #0x40 + strh r1, [r4, #2] + ldr r1, [r3] + ldr r1, [r1, #0xab0] + add r1, r1, #4 + bl FUN_0207C4C8 + b _0234C99C +_0234C970: + ldr r0, [r5, #0x204] + mov r1, #0xbc + add r0, r0, #1 + str r0, [r5, #0x204] + ldr r0, [r3] + ldr r0, [r0, #0xab0] + strh r1, [r0] + ldr r0, [r3] + ldrb r1, [r0, #0xa92] + ldr r0, [r0, #0xab0] + strb r1, [r0, #4] +_0234C99C: + bl ov02_0234B450 + cmp r0, #5 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + ldr r0, _0234CA8C @ =0x0235AB6C + ldr r0, [r0] + bl ov02_0234BB18 + cmp r0, #0 + bne _0234C9D4 + ldr r0, _0234CA8C @ =0x0235AB6C + ldr r1, [r0] + ldr r0, [r1, #0x204] + add r0, r0, #4 + str r0, [r1, #0x204] + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_0234C9D4: + ldr r0, _0234CA8C @ =0x0235AB6C + ldr r1, [r0] + ldrb r0, [r1, #0xa93] + cmp r0, #0 + bne _0234C9F8 + ldr r0, [r1, #0x204] + add r0, r0, #1 + str r0, [r1, #0x204] + b _0234CA20 +_0234C9F8: + mov r0, #0 + str r0, [r1, #0x204] + bl ov02_0234B43C + cmp r0, #3 + beq _0234CA20 + ldr r0, _0234CA8C @ =0x0235AB6C + mov r1, #0x1b + ldr r0, [r0] + strb r1, [r0, #0xa90] + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_0234CA20: + mov r7, #0 + mov r6, #0x44 + ldr sb, _0234CA8C @ =0x0235AB6C + mov r4, r7 + mov r5, #1 + mov r8, r6 +_0234CA38: + mov r0, r7 + bl ov02_0234BAF0 + cmp r0, #0 + ldreq r0, [sb] + addeq r0, r0, r7, lsl #2 + streq r4, [r0, #0x208] + beq _0234CA74 + ldr r1, [sb] + mov r2, r6 + add r1, r1, #0x100 + mla r1, r7, r8, r1 + bl FUN_0207C4C8 + ldr r0, [sb] + add r0, r0, r7, lsl #2 + str r5, [r0, #0x208] +_0234CA74: + add r0, r7, #1 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + cmp r7, #2 + blo _0234CA38 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0234CA8C: .4byte 0x0235AB6C + arm_func_end ov02_0234C928 + + arm_func_start ov02_0234CA90 +ov02_0234CA90: @ 0x0234CA90 + push {r4, r5, r6, r7, r8, lr} + mov ip, #0 + ldr r4, _0234CB70 @ =0x0235AB6C + mov r0, #1 + mov r5, ip + mov r1, #0xbc + mov r2, ip + mov lr, #0x44 +_0234CAB0: + ldr r3, [r4] + add r6, r3, ip, lsl #2 + ldr r6, [r6, #0x208] + cmp r6, #0 + beq _0234CB60 + mul r7, ip, lr + cmp ip, #1 + add r8, r3, #0x100 + bne _0234CB60 + ldrb r6, [r3, #0xa93] + cmp r6, #1 + bne _0234CB30 + ldrh r6, [r8, r7] + cmp r6, #0x10 + popne {r4, r5, r6, r7, r8, pc} + ldr r6, [r3, #0xa94] + add r6, r6, #1 + str r6, [r3, #0xa94] + ldr r6, [r4] + ldr r3, [r6, #0xa94] + tst r3, #1 + bne _0234CB60 + add r3, r6, #0x200 + ldrh r6, [r3] + add r6, r6, #1 + strh r6, [r3] + ldr r3, [r4] + add r3, r3, #0x200 + ldrh r6, [r3] + cmp r6, #0x24 + strhhs r2, [r3] + b _0234CB60 +_0234CB30: + add r3, r3, #0x200 + strh r1, [r3, #2] + ldrh r3, [r8, r7] + cmp r3, #0xbd + bne _0234CB60 + ldr r3, [r4] + strb r0, [r3, #0xa93] + ldr r3, [r4] + add r3, r3, #0x200 + strh r5, [r3] + ldr r3, [r4] + str r5, [r3, #0xa94] +_0234CB60: + add ip, ip, #1 + cmp ip, #0x10 + blt _0234CAB0 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0234CB70: .4byte 0x0235AB6C + arm_func_end ov02_0234CA90 + + arm_func_start ov02_0234CB74 +ov02_0234CB74: @ 0x0234CB74 + ldr r0, _0234CB88 @ =0x0235AB6C + ldr r0, [r0] + add r0, r0, #0x100 + ldrh r0, [r0, #0x44] + bx lr + .align 2, 0 +_0234CB88: .4byte 0x0235AB6C + arm_func_end ov02_0234CB74 + + arm_func_start ov02_0234CB8C +ov02_0234CB8C: @ 0x0234CB8C + push {r4, lr} + sub sp, sp, #0xe8 + mov r0, #0xe8 + mov r1, #4 + bl ov02_0234E7B4 + ldr r1, _0234CD1C @ =0x0235AB70 + str r0, [r1] + add r0, sp, #0xa0 + bl FUN_0207F3E4 + ldr r1, _0234CD20 @ =0x02354438 + add r0, sp, #0xa0 + bl FUN_0207F6C4 + cmp r0, #0 + bne _0234CBC8 + bl FUN_0207BC20 +_0234CBC8: + bl FUN_0207902C + ldr r2, _0234CD1C @ =0x0235AB70 + add r1, sp, #0x18 + ldr r3, [r2] + mov r2, #8 + strh r0, [r3, #0xe4] + add r0, sp, #0xa0 + ldr r4, [sp, #0xc4] + bl FUN_0207F818 + add r0, sp, #0xa0 + add r1, sp, #0x10 + mov r2, #8 + bl FUN_0207F818 + add r0, sp, #0xa0 + bl FUN_0207F70C + ldr r0, _0234CD1C @ =0x0235AB70 + ldr r0, [r0] + add r0, r0, #0x88 + bl FUN_0207ED88 + ldr r0, _0234CD1C @ =0x0235AB70 + ldr r1, _0234CD24 @ =0x02352F18 + ldr r0, [r0] + mov r2, #3 + add r0, r0, #0x88 + bl FUN_0207EDF4 + cmp r0, #0 + bne _0234CC38 + bl FUN_0207BC20 +_0234CC38: + ldr r0, _0234CD1C @ =0x0235AB70 + ldr r1, _0234CD28 @ =ov02_0234CDC8 + ldr r0, [r0] + ldr r2, _0234CD2C @ =0x00000602 + add r0, r0, #0x88 + bl FUN_0207F318 + ldr r0, [sp, #0x18] + ldr r1, _0234CD30 @ =ov02_0234CE2C + str r0, [sp] + ldr r2, [sp, #0x1c] + ldr r0, _0234CD34 @ =0x0234CE7C + str r2, [sp, #4] + str r1, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _0234CD1C @ =0x0235AB70 + ldr r2, [sp, #0x10] + ldr r0, [r0] + ldr r3, [sp, #0x14] + mov r1, r4 + add r0, r0, #0x88 + bl FUN_0207EF2C + cmp r0, #0 + bne _0234CC98 + bl FUN_0207BC20 +_0234CC98: + ldr r0, _0234CD1C @ =0x0235AB70 + mov r1, #0 + ldr r0, [r0] + mov r2, r1 + add r0, r0, #0x88 + bl FUN_0207F05C + mov r1, #4 + mov r4, r0 + bl ov02_0234E7B4 + ldr r1, _0234CD1C @ =0x0235AB70 + mov r2, r4 + ldr r3, [r1] + str r0, [r3] + ldr r0, [r1] + ldr r1, [r0], #0x88 + bl FUN_0207F05C + ldr r1, _0234CD1C @ =0x0235AB70 + mov r0, #0x20 + ldr r1, [r1] + mov r2, #4 + add r1, r1, #4 + bl ov02_0234D754 + ldr r2, _0234CD1C @ =0x0235AB70 + ldr r1, _0234CD38 @ =0x02354450 + ldr r3, [r2] + ldr r2, _0234CD24 @ =0x02352F18 + str r0, [r3, #0x84] + add r0, sp, #0x20 + bl FUN_020790DC + add r0, sp, #0x20 + bl FUN_0207F894 + add sp, sp, #0xe8 + pop {r4, pc} + .align 2, 0 +_0234CD1C: .4byte 0x0235AB70 +_0234CD20: .4byte 0x02354438 +_0234CD24: .4byte 0x02352F18 +_0234CD28: .4byte ov02_0234CDC8 +_0234CD2C: .4byte 0x00000602 +_0234CD30: .4byte ov02_0234CE2C +_0234CD34: .4byte 0x0234CE7C +_0234CD38: .4byte 0x02354450 + arm_func_end ov02_0234CB8C + + arm_func_start ov02_0234CD3C +ov02_0234CD3C: @ 0x0234CD3C + push {r3, lr} + ldr r0, _0234CDBC @ =0x02354458 + bl FUN_0207F894 + ldr r0, _0234CDC0 @ =0x0235AB70 + ldr r0, [r0] + add r0, r0, #0x88 + bl FUN_0207F180 + ldr r0, _0234CDC0 @ =0x0235AB70 + ldr r0, [r0] + add r0, r0, #0x88 + bl FUN_0207EF9C + ldr r0, _0234CDC0 @ =0x0235AB70 + ldr r0, [r0] + add r0, r0, #0x88 + bl FUN_0207EEA8 + ldr r0, _0234CDC0 @ =0x0235AB70 + ldr r0, [r0] + ldrh r0, [r0, #0xe4] + bl FUN_02079094 + ldr r0, _0234CDC0 @ =0x0235AB70 + mov r2, #0 + ldr r1, [r0] + strh r2, [r1, #0xe4] + ldr r0, [r0] + bl ov02_0234E7D8 + ldr r1, _0234CDC0 @ =0x0235AB70 + ldr r0, _0234CDC4 @ =0x0235AB70 + ldr r1, [r1] + mov r2, #0 + str r2, [r1] + bl ov02_0234E7D8 + pop {r3, pc} + .align 2, 0 +_0234CDBC: .4byte 0x02354458 +_0234CDC0: .4byte 0x0235AB70 +_0234CDC4: .4byte 0x0235AB70 + arm_func_end ov02_0234CD3C + + arm_func_start ov02_0234CDC8 +ov02_0234CDC8: @ 0x0234CDC8 + push {r3, lr} + cmp r1, #1 + beq _0234CE18 + cmp r1, #9 + beq _0234CDE8 + cmp r1, #0xa + beq _0234CE00 + b _0234CE20 +_0234CDE8: + ldr r0, _0234CE28 @ =0x0235AB70 + ldr r0, [r0] + ldrh r0, [r0, #0xe4] + bl FUN_02083434 + mov r0, #0 + pop {r3, pc} +_0234CE00: + ldr r0, _0234CE28 @ =0x0235AB70 + ldr r0, [r0] + ldrh r0, [r0, #0xe4] + bl FUN_02083450 + mov r0, #0 + pop {r3, pc} +_0234CE18: + mov r0, #4 + pop {r3, pc} +_0234CE20: + mov r0, #8 + pop {r3, pc} + .align 2, 0 +_0234CE28: .4byte 0x0235AB70 + arm_func_end ov02_0234CDC8 + + arm_func_start ov02_0234CE2C +ov02_0234CE2C: @ 0x0234CE2C + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr ip, _0234CE68 @ =0x0234CE6C + mov lr, r1 + str ip, [sp] + mov ip, #1 + stmib sp, {r0, ip} + ldr r0, [r0, #0x28] + add r1, r2, r0 + mov r2, lr + sub r0, ip, #2 + bl FUN_0208420C + mov r0, #6 + add sp, sp, #0xc + ldm sp!, {pc} + .align 2, 0 +_0234CE68: .4byte 0x0234CE6C +_0234CE6C: + .byte 0x04, 0xC0, 0x9F, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1 +_0234CE78: .4byte FUN_0207F338 + arm_func_end ov02_0234CE2C +_0234CE7C: + .byte 0x01, 0x00, 0xA0, 0xE3 + .byte 0x1E, 0xFF, 0x2F, 0xE1 + + arm_func_start ov02_0234CE84 +ov02_0234CE84: @ 0x0234CE84 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x4c + ldr r3, _0234CF70 @ =0x0235AB70 + mov r6, r0 + ldr r0, [r3] + mov r5, r1 + ldr r0, [r0, #0x84] + mov r4, r2 + bl ov02_0234D808 + add r0, sp, #4 + bl FUN_0207F3E4 + add r0, sp, #4 + mov r1, r6 + bl FUN_0207F6C4 + cmp r0, #0 + bne _0234CEC8 + bl FUN_0207BC20 +_0234CEC8: + ldr r1, [sp, #0x2c] + ldr r0, [sp, #0x28] + mov r2, #2 + sub r7, r1, r0 + cmp r5, #0 + ldr r1, _0234CF74 @ =0x02354460 + mov r0, r6 + strne r7, [r5] + bl ov02_0234CFAC + cmp r0, #0 + mvnne r6, #3 + moveq r6, r4 + mov r0, r7 + mov r1, r6 + bl ov02_0234E7B4 + mov r1, r0 + add r0, sp, #4 + mov r2, r7 + str r1, [sp] + bl FUN_0207F818 + add r0, sp, #4 + bl FUN_0207F70C + cmp r6, #0 + ldrgt r0, [sp] + addgt sp, sp, #0x4c + popgt {r4, r5, r6, r7, pc} + ldr r0, [sp] + cmp r5, #0 + ldr r0, [r0] + mov r1, r4 + lsr r0, r0, #8 + strne r0, [r5] + bl ov02_0234E7B4 + mov r4, r0 + ldr r0, [sp] + mov r1, r4 + bl FUN_0207C650 + add r0, sp, #0 + bl ov02_0234E7D8 + mov r0, r4 + add sp, sp, #0x4c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0234CF70: .4byte 0x0235AB70 +_0234CF74: .4byte 0x02354460 + arm_func_end ov02_0234CE84 + + arm_func_start ov02_0234CF78 +ov02_0234CF78: @ 0x0234CF78 + push {r0, r1, r2, r3} + push {r3, lr} + add r0, sp, #8 + bl ov02_0234E7D8 + ldr r0, _0234CFA8 @ =0x0235AB70 + ldr r1, [sp, #8] + ldr r0, [r0] + ldr r0, [r0, #0x84] + bl ov02_0234D7B0 + pop {r3, lr} + add sp, sp, #0x10 + bx lr + .align 2, 0 +_0234CFA8: .4byte 0x0235AB70 + arm_func_end ov02_0234CF78 + + arm_func_start ov02_0234CFAC +ov02_0234CFAC: @ 0x0234CFAC + push {r3, r4, r5, r6, r7, lr} + mov r6, r1 + mov r7, r0 + mov r5, r2 + bl FUN_02089678 + mov r4, r0 + mov r0, r6 + bl FUN_02089678 + cmp r4, r5 + cmpge r0, r5 + movlt r0, #0 + poplt {r3, r4, r5, r6, r7, pc} + sub r1, r0, r5 + sub r3, r4, r5 + mov r2, r5 + add r0, r7, r3 + add r1, r6, r1 + bl FUN_02087348 + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov02_0234CFAC + + arm_func_start ov02_0234D004 +ov02_0234D004: @ 0x0234D004 + push {r4, r5, r6, r7, r8, sb, sl, lr} + mov r0, #0x450 + mov r1, #4 + bl ov02_0234E7B4 + ldr sl, _0234D0D4 @ =0x0235AB74 + mov r8, #0 + mov sb, r8 + str r0, [sl] + mov r7, #0x20 + mov r6, #0x10 + mov r5, #0x40 + mov r4, #0x7f +_0234D034: + ldr r1, [sl] + mov r0, r7 + mov r2, r6 + add r1, r1, sb + bl ov02_0234D754 + ldr r1, [sl] + add r1, r1, sb + str r0, [r1, #0x224] + bl ov02_0234F0C0 + ldr r2, [sl] + mov r1, r5 + add r2, r2, sb + str r0, [r2, #0x220] + mov r0, r8 + bl ov02_0234F30C + ldr r2, [sl] + mov r1, r4 + add r2, r2, sb + str r0, [r2, #0x208] + mov r0, r8 + bl ov02_0234F30C + add r1, r0, #8 + ldr r0, [sl] + add r0, r0, sb + str r1, [r0, #0x218] + ldr r0, [sl] + add r1, r0, sb + ldr r0, [r1, #0x220] + add r1, r1, #0x200 + bl ov02_0234F180 + ldr r0, [sl] + add r1, r0, sb + ldr r0, [r1, #0x220] + add r1, r1, #0x210 + bl ov02_0234F170 + add sb, sb, #0x228 + add r8, r8, #1 + cmp r8, #2 + blt _0234D034 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0234D0D4: .4byte 0x0235AB74 + arm_func_end ov02_0234D004 + + arm_func_start ov02_0234D0D8 +ov02_0234D0D8: @ 0x0234D0D8 + push {r4, r5, r6, lr} + mov r5, #0 + ldr r4, _0234D124 @ =0x0235AB74 + mov r6, r5 +_0234D0E8: + ldr r0, [r4] + add r0, r0, r6 + ldr r0, [r0, #0x220] + bl ov02_0234F0EC + ldr r0, [r4] + add r0, r0, r6 + ldr r0, [r0, #0x224] + bl ov02_0234D794 + add r5, r5, #1 + cmp r5, #2 + add r6, r6, #0x228 + blt _0234D0E8 + ldr r0, _0234D128 @ =0x0235AB74 + bl ov02_0234E7D8 + pop {r4, r5, r6, pc} + .align 2, 0 +_0234D124: .4byte 0x0235AB74 +_0234D128: .4byte 0x0235AB74 + arm_func_end ov02_0234D0D8 + + arm_func_start ov02_0234D12C +ov02_0234D12C: @ 0x0234D12C + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov sb, r0 + mov r0, #0x228 + mul r7, sb, r0 + ldr r0, _0234D284 @ =0x0235AB74 + mov r8, r1 + ldr r0, [r0] + mov r5, r2 + add r0, r0, r7 + ldr r0, [r0, #0x224] + bl ov02_0234D808 + mov r4, r0 + mov r0, #1 + bl FUN_02078C98 + mov r6, r0 + cmp r5, #0 + mov r0, #0x228 + beq _0234D1F0 + ldr r1, _0234D284 @ =0x0235AB74 + ldr r1, [r1] + mla r0, sb, r0, r1 + add r5, r0, #0x200 + add r0, r0, #0x210 + cmp r5, r0 + beq _0234D1D0 + add r0, r1, r7 + add r1, r0, #0x210 +_0234D198: + ldrb r3, [r5, #0xc] + ldmib r5, {r0, sb} + add sb, sb, r3, lsl #3 + ldr r2, [r0, #8] + add r3, sb, r8, lsl #3 + cmp r3, r2 + bhi _0234D1C4 + mov r1, r4 + str sb, [r4, #8] + bl ov02_0234F140 + b _0234D1D0 +_0234D1C4: + mov r5, r0 + cmp r0, r1 + bne _0234D198 +_0234D1D0: + ldr r0, _0234D284 @ =0x0235AB74 + ldr r0, [r0] + add r0, r0, r7 + add r0, r0, #0x210 + cmp r5, r0 + bne _0234D270 + bl FUN_0207BC20 + b _0234D270 +_0234D1F0: + ldr r1, _0234D284 @ =0x0235AB74 + ldr r1, [r1] + mla r0, sb, r0, r1 + add r5, r0, #0x210 + add r0, r0, #0x200 + cmp r5, r0 + beq _0234D254 + add r0, r1, r7 + add r0, r0, #0x200 +_0234D214: + ldr sb, [r5] + ldr r3, [r5, #8] + ldrb r1, [sb, #0xc] + ldr r2, [sb, #8] + sub r3, r3, r8, lsl #3 + add r1, r2, r1, lsl #3 + cmp r3, r1 + blo _0234D248 + mov r0, r5 + mov r1, r4 + str r3, [r4, #8] + bl ov02_0234F140 + b _0234D254 +_0234D248: + mov r5, sb + cmp sb, r0 + bne _0234D214 +_0234D254: + ldr r0, _0234D284 @ =0x0235AB74 + ldr r0, [r0] + add r0, r0, r7 + add r0, r0, #0x200 + cmp r5, r0 + bne _0234D270 + bl FUN_0207BC20 +_0234D270: + mov r0, r6 + bl FUN_02078C68 + mov r0, r4 + strb r8, [r4, #0xc] + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0234D284: .4byte 0x0235AB74 + arm_func_end ov02_0234D12C + + arm_func_start ov02_0234D288 +ov02_0234D288: @ 0x0234D288 + push {r3, r4, r5, lr} + mov r5, r0 + ldrb r0, [r5, #0xc] + mov r4, #0 + mov r3, r4 + cmp r0, #0 + ldr r2, [r5, #8] + ble _0234D2CC + ldr r0, _0234D300 @ =0xC1FFFCFF +_0234D2AC: + ldr r1, [r2] + add r3, r3, #1 + and r1, r1, r0 + orr r1, r1, #0x200 + str r1, [r2], #8 + ldrb r1, [r5, #0xc] + cmp r3, r1 + blt _0234D2AC +_0234D2CC: + mov r0, r5 + bl ov02_0234F108 + ldr r0, _0234D304 @ =0x0235AB74 + ldr r1, [r0] + add r0, r1, #0x228 + cmp r5, r0 + movhs r4, #1 + mov r0, #0x228 + mla r0, r4, r0, r1 + ldr r0, [r0, #0x224] + mov r1, r5 + bl ov02_0234D7B0 + pop {r3, r4, r5, pc} + .align 2, 0 +_0234D300: .4byte 0xC1FFFCFF +_0234D304: .4byte 0x0235AB74 + arm_func_end ov02_0234D288 + + arm_func_start ov02_0234D308 +ov02_0234D308: @ 0x0234D308 + ldr r0, [r0, #8] + add r0, r0, r1, lsl #3 + bx lr + arm_func_end ov02_0234D308 + + arm_func_start ov02_0234D314 +ov02_0234D314: @ 0x0234D314 + ldrb r0, [r0, #0xc] + bx lr + arm_func_end ov02_0234D314 + + arm_func_start ov02_0234D31C +ov02_0234D31C: @ 0x0234D31C + push {r4, lr} + cmp r1, #0 + ldr ip, [r0, #8] + blt _0234D368 + cmp r2, #0x100 + cmpne r2, #0x300 + ldr r0, _0234D3BC @ =0xC1FFFCFF + beq _0234D350 + ldr r3, [ip, r1, lsl #3] + and r0, r3, r0 + orr r0, r0, r2 + str r0, [ip, r1, lsl #3] + pop {r4, pc} +_0234D350: + ldr r4, [ip, r1, lsl #3] + and r0, r4, r0 + orr r0, r0, r2 + orr r0, r0, r3, lsl #25 + str r0, [ip, r1, lsl #3] + pop {r4, pc} +_0234D368: + ldrb r4, [r0, #0xc] + mov r1, #0 + cmp r4, #0 + pople {r4, pc} + ldr lr, _0234D3BC @ =0xC1FFFCFF +_0234D37C: + cmp r2, #0x100 + cmpne r2, #0x300 + ldr r4, [ip, r1, lsl #3] + beq _0234D398 + and r4, r4, lr + orr r4, r4, r2 + b _0234D3A4 +_0234D398: + and r4, r4, lr + orr r4, r4, r2 + orr r4, r4, r3, lsl #25 +_0234D3A4: + str r4, [ip, r1, lsl #3] + ldrb r4, [r0, #0xc] + add r1, r1, #1 + cmp r1, r4 + blt _0234D37C + pop {r4, pc} + .align 2, 0 +_0234D3BC: .4byte 0xC1FFFCFF + arm_func_end ov02_0234D31C + + arm_func_start ov02_0234D3C0 +ov02_0234D3C0: @ 0x0234D3C0 + push {r4, lr} + cmp r1, #0 + ldr ip, [r0, #8] + blt _0234D3F8 + ldr r0, [ip, r1, lsl #3] + add lr, ip, r1, lsl #3 + bic r0, r0, #0xc00 + orr r0, r0, r2, lsl #10 + str r0, [ip, r1, lsl #3] + ldrh r0, [lr, #4] + bic r0, r0, #0xf000 + orr r0, r0, r3, lsl #12 + strh r0, [lr, #4] + pop {r4, pc} +_0234D3F8: + ldrb r1, [r0, #0xc] + mov r4, #0 + cmp r1, #0 + pople {r4, pc} +_0234D408: + ldr r1, [ip, r4, lsl #3] + add lr, ip, r4, lsl #3 + bic r1, r1, #0xc00 + orr r1, r1, r2, lsl #10 + str r1, [ip, r4, lsl #3] + ldrh r1, [lr, #4] + add r4, r4, #1 + bic r1, r1, #0xf000 + orr r1, r1, r3, lsl #12 + strh r1, [lr, #4] + ldrb r1, [r0, #0xc] + cmp r4, r1 + blt _0234D408 + pop {r4, pc} + arm_func_end ov02_0234D3C0 + + arm_func_start ov02_0234D440 +ov02_0234D440: @ 0x0234D440 + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x10 + cmp r1, #0 + ldr r5, [r0, #8] + blt _0234D47C + ldr r4, [r5, r1, lsl #3] + ldr r0, _0234D528 @ =0xFE00FF00 + and r3, r3, #0xff + and r0, r4, r0 + lsl r2, r2, #0x17 + orr r0, r0, r3 + orr r0, r0, r2, lsr #7 + add sp, sp, #0x10 + str r0, [r5, r1, lsl #3] + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_0234D47C: + ldr r1, [r5] + ldr ip, _0234D528 @ =0xFE00FF00 + and r6, r3, #0xff + and r7, r1, ip + mov sb, r1 + ldr r1, _0234D52C @ =0x01FF0000 + lsl r8, r2, #0x17 + orr r6, r7, r6 + orr r6, r6, r8, lsr #7 + str r6, [r5] + ldrb r6, [r0, #0xc] + and r4, sb, r1 + and lr, sb, #0xff + lsr r7, r4, #0x10 + str r7, [sp, #0xc] + cmp r6, #1 + str lr, [sp, #8] + sub r6, r2, r4, lsr #16 + sub r7, r3, lr + mov r4, #1 + addle sp, sp, #0x10 + pople {r4, r5, r6, r7, r8, sb, sl, pc} +_0234D4D4: + ldr r2, [r5, r4, lsl #3] + and r3, r2, #0xff + mov sb, r2 + and lr, r2, r1 + add r8, r3, r7 + add r2, r6, lr, lsr #16 + and sb, sb, ip + and r8, r8, #0xff + lsl sl, r2, #0x17 + orr r2, sb, r8 + orr r2, r2, sl, lsr #7 + str r2, [r5, r4, lsl #3] + ldrb r2, [r0, #0xc] + add r4, r4, #1 + lsr r8, lr, #0x10 + cmp r4, r2 + blt _0234D4D4 + str r3, [sp] + str r8, [sp, #4] + add sp, sp, #0x10 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0234D528: .4byte 0xFE00FF00 +_0234D52C: .4byte 0x01FF0000 + arm_func_end ov02_0234D440 + + arm_func_start ov02_0234D530 +ov02_0234D530: @ 0x0234D530 + push {r3, lr} + cmp r1, #0 + ldr ip, [r0, #8] + blt _0234D558 + add r1, ip, r1, lsl #3 + ldrh r0, [r1, #4] + bic r0, r0, #0xc00 + orr r0, r0, r2, lsl #10 + strh r0, [r1, #4] + pop {r3, pc} +_0234D558: + ldrb r1, [r0, #0xc] + mov lr, #0 + cmp r1, #0 + pople {r3, pc} +_0234D568: + add r3, ip, lr, lsl #3 + ldrh r1, [r3, #4] + add lr, lr, #1 + bic r1, r1, #0xc00 + orr r1, r1, r2, lsl #10 + strh r1, [r3, #4] + ldrb r1, [r0, #0xc] + cmp lr, r1 + blt _0234D568 + pop {r3, pc} + arm_func_end ov02_0234D530 + + arm_func_start ov02_0234D590 +ov02_0234D590: @ 0x0234D590 + push {r3, lr} + ldr lr, [r0, #8] + ldr r0, _0234D5BC @ =0x01FF0000 + ldr ip, [lr, r1, lsl #3] + and r0, ip, r0 + lsr r0, r0, #0x10 + str r0, [r2] + ldr r0, [lr, r1, lsl #3] + and r0, r0, #0xff + str r0, [r3] + pop {r3, pc} + .align 2, 0 +_0234D5BC: .4byte 0x01FF0000 + arm_func_end ov02_0234D590 + + arm_func_start ov02_0234D5C0 +ov02_0234D5C0: @ 0x0234D5C0 + push {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + mov r0, r1 + add r1, sp, #0 + mov r2, #4 + bl ov02_0234CE84 + ldr r1, _0234D5EC @ =0x0235AB78 + str r0, [r1, r4, lsl #2] + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0234D5EC: .4byte 0x0235AB78 + arm_func_end ov02_0234D5C0 + + arm_func_start ov02_0234D5F0 +ov02_0234D5F0: @ 0x0234D5F0 + push {r4, lr} + ldr r1, _0234D614 @ =0x0235AB78 + mov r4, r0 + ldr r0, [r1, r4, lsl #2] + bl ov02_0234CF78 + ldr r0, _0234D614 @ =0x0235AB78 + mov r1, #0 + str r1, [r0, r4, lsl #2] + pop {r4, pc} + .align 2, 0 +_0234D614: .4byte 0x0235AB78 + arm_func_end ov02_0234D5F0 + + arm_func_start ov02_0234D618 +ov02_0234D618: @ 0x0234D618 + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #8 + ldr r3, _0234D6A8 @ =0x0235AB78 + mov r5, r2 + ldr r6, [r3, r0, lsl #2] + lsl r2, r1, #3 + add r0, r6, r1, lsl #3 + ldr r3, [r0, #4] + ldrh r4, [r6, r2] + add r1, sp, #0 + mov r0, #0 + mov r2, #8 + add sb, r6, r3 + bl FUN_0207C314 + cmp r4, #0 + mov sl, #0 + addle sp, sp, #8 + pople {r4, r5, r6, r7, r8, sb, sl, pc} + add r8, sp, #0 + mov r7, #6 + mov r6, #8 +_0234D66C: + mov r0, sb + mov r1, r8 + mov r2, r7 + bl FUN_0207C2E0 + mov r0, r8 + mov r1, r5 + mov r2, r6 + bl FUN_0207C330 + add sl, sl, #1 + cmp sl, r4 + add sb, sb, #6 + add r5, r5, #8 + blt _0234D66C + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0234D6A8: .4byte 0x0235AB78 + arm_func_end ov02_0234D618 + + arm_func_start ov02_0234D6AC +ov02_0234D6AC: @ 0x0234D6AC + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + bl ov02_0234F2A0 + mov r4, r0 + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl ov02_0234D618 + mov r0, r4 + pop {r4, r5, r6, pc} + arm_func_end ov02_0234D6AC + + arm_func_start ov02_0234D6D8 +ov02_0234D6D8: @ 0x0234D6D8 + push {r4, r5, r6, lr} + ldr r3, _0234D71C @ =0x0235AB78 + mov r6, r0 + mov r5, r1 + ldr r3, [r3, r6, lsl #2] + lsl r1, r5, #3 + ldrh r1, [r3, r1] + bl ov02_0234D12C + mov r1, #0 + mov r4, r0 + bl ov02_0234D308 + mov r2, r0 + mov r0, r6 + mov r1, r5 + bl ov02_0234D618 + mov r0, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0234D71C: .4byte 0x0235AB78 + arm_func_end ov02_0234D6D8 + + arm_func_start ov02_0234D720 +ov02_0234D720: @ 0x0234D720 + push {r4, lr} + mov r4, r0 + add r0, r4, #1 + lsl r0, r0, #2 + add r0, r0, #8 + mov r1, #4 + bl ov02_0234E7B4 + add r1, r4, #1 + strh r1, [r0] + mov r1, #0 + strb r1, [r0, #2] + strb r1, [r0, #3] + pop {r4, pc} + arm_func_end ov02_0234D720 + + arm_func_start ov02_0234D754 +ov02_0234D754: @ 0x0234D754 + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl ov02_0234D720 + cmp r6, #0 + mov r2, #0 + ble _0234D78C +_0234D774: + add r1, r0, r2, lsl #2 + add r2, r2, #1 + str r5, [r1, #4] + cmp r2, r6 + add r5, r5, r4 + blt _0234D774 +_0234D78C: + strb r6, [r0, #3] + pop {r4, r5, r6, pc} + arm_func_end ov02_0234D754 + + arm_func_start ov02_0234D794 +ov02_0234D794: @ 0x0234D794 + push {r0, r1, r2, r3} + push {r3, lr} + add r0, sp, #8 + bl ov02_0234E7D8 + pop {r3, lr} + add sp, sp, #0x10 + bx lr + arm_func_end ov02_0234D794 + + arm_func_start ov02_0234D7B0 +ov02_0234D7B0: @ 0x0234D7B0 + push {r3, r4, r5, r6, r7, lr} + mov r5, r0 + mov r0, #1 + mov r4, r1 + bl FUN_02078C98 + ldrb r2, [r5, #3] + mov r6, r0 + ldrh r1, [r5] + add r0, r2, #1 + bl FUN_02075C38 + ldrb r1, [r5, #2] + mov r7, r0 + cmp r7, r1 + bne _0234D7EC + bl FUN_0207BC20 +_0234D7EC: + ldrb r1, [r5, #3] + mov r0, r6 + add r1, r5, r1, lsl #2 + str r4, [r1, #4] + strb r7, [r5, #3] + bl FUN_02078C68 + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov02_0234D7B0 + + arm_func_start ov02_0234D808 +ov02_0234D808: @ 0x0234D808 + push {r4, r5, r6, lr} + mov r6, r0 + mov r0, #1 + mov r4, #0 + bl FUN_02078C98 + ldrb r2, [r6, #3] + ldrb r1, [r6, #2] + mov r5, r0 + cmp r1, r2 + beq _0234D850 + ldrh r1, [r6] + add r0, r2, r1 + sub r0, r0, #1 + bl FUN_02075C38 + and r1, r0, #0xff + strb r0, [r6, #3] + add r0, r6, r1, lsl #2 + ldr r4, [r0, #4] +_0234D850: + mov r0, r5 + bl FUN_02078C68 + mov r0, r4 + pop {r4, r5, r6, pc} + arm_func_end ov02_0234D808 + + arm_func_start ov02_0234D860 +ov02_0234D860: @ 0x0234D860 + push {r3, lr} + mov r0, #0x18 + mov r1, #4 + bl ov02_0234E7B4 + ldr r2, _0234D89C @ =0x0235AB80 + mov r1, #0x3f + str r0, [r2] + ldr r0, _0234D8A0 @ =0x04000050 + mov r2, #0x10 + bl FUN_02077704 + ldr r0, _0234D8A4 @ =0x04001050 + mov r1, #0x3f + mov r2, #0x10 + bl FUN_02077704 + pop {r3, pc} + .align 2, 0 +_0234D89C: .4byte 0x0235AB80 +_0234D8A0: .4byte 0x04000050 +_0234D8A4: .4byte 0x04001050 + arm_func_end ov02_0234D860 + + arm_func_start ov02_0234D8A8 +ov02_0234D8A8: @ 0x0234D8A8 + ldr ip, _0234D8B4 @ =ov02_0234E7D8 + ldr r0, _0234D8B8 @ =0x0235AB80 + bx ip + .align 2, 0 +_0234D8B4: .4byte ov02_0234E7D8 +_0234D8B8: .4byte 0x0235AB80 + arm_func_end ov02_0234D8A8 + + arm_func_start ov02_0234D8BC +ov02_0234D8BC: @ 0x0234D8BC + cmp r0, #1 + ldreq r0, _0234D8DC @ =0x0235AB80 + ldreq r0, [r0] + ldrne r0, _0234D8DC @ =0x0235AB80 + ldrne r0, [r0] + addne r0, r0, #0xc + ldrb r0, [r0, #9] + bx lr + .align 2, 0 +_0234D8DC: .4byte 0x0235AB80 + arm_func_end ov02_0234D8BC + + arm_func_start ov02_0234D8E0 +ov02_0234D8E0: @ 0x0234D8E0 + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + ldr r4, _0234D9A4 @ =0x02352F1C + mov r5, r0 + ldrb r0, [r4, #0xb] + ldrb r6, [r4, #8] + ldrb lr, [r4, #9] + strb r0, [sp, #3] + cmp r1, #1 + ldreq r0, _0234D9A8 @ =0x0235AB80 + strb r6, [sp] + ldreq r6, [r0] + ldrne r0, _0234D9A8 @ =0x0235AB80 + ldrb ip, [r4, #0xa] + ldrne r0, [r0] + mov r4, r3 + addne r6, r0, #0xc + ldrb r0, [r6, #9] + strb lr, [sp, #1] + strb ip, [sp, #2] + cmp r0, #0 + addne sp, sp, #4 + movne r0, #0 + popne {r3, r4, r5, r6, pc} + cmp r1, #1 + add r0, sp, #0 + mov r1, r2 + bne _0234D960 + ldrsb r2, [r0, r5] + ldr r0, _0234D9AC @ =0x04001050 + bl FUN_02077704 + b _0234D96C +_0234D960: + ldrsb r2, [r0, r5] + ldr r0, _0234D9B0 @ =0x04000050 + bl FUN_02077704 +_0234D96C: + ldr r1, _0234D9B4 @ =ov02_0234D9B8 + mov r2, r6 + mov r0, #1 + mov r3, #0xc8 + bl ov02_0234FA98 + str r0, [r6] + mov r0, #0 + strh r0, [r6, #4] + strb r5, [r6, #8] + strh r4, [r6, #6] + mov r0, #1 + strb r0, [r6, #9] + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0234D9A4: .4byte 0x02352F1C +_0234D9A8: .4byte 0x0235AB80 +_0234D9AC: .4byte 0x04001050 +_0234D9B0: .4byte 0x04000050 +_0234D9B4: .4byte ov02_0234D9B8 + arm_func_end ov02_0234D8E0 + + arm_func_start ov02_0234D9B8 +ov02_0234D9B8: @ 0x0234D9B8 + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #8 + ldr r2, _0234DAD0 @ =0x02352F1C + mov r4, r1 + ldrsh r1, [r4, #4] + ldrb sb, [r2, #4] + ldrb r8, [r2, #5] + ldrb r7, [r2, #6] + ldrb r6, [r2, #7] + ldrb lr, [r2] + ldrb ip, [r2, #1] + ldrb r3, [r2, #2] + ldrb r2, [r2, #3] + add r1, r1, #1 + mov r5, r0 + strh r1, [r4, #4] + ldrsh r0, [r4, #4] + ldrh r1, [r4, #6] + strb sb, [sp, #4] + lsl r0, r0, #4 + strb r8, [sp, #5] + strb r7, [sp, #6] + strb r6, [sp, #7] + strb lr, [sp] + strb ip, [sp, #1] + strb r3, [sp, #2] + strb r2, [sp, #3] + bl FUN_02075BFC + ldrb r3, [r4, #8] + add r2, sp, #4 + mov r1, r0 + ldrb r0, [r2, r3] + tst r0, #1 + rsbne r1, r1, #0x10 + tst r0, #0x10 + ldr r0, _0234DAD4 @ =0x0235AB80 + rsbne r1, r1, #0 + ldr r0, [r0] + cmp r4, r0 + bne _0234DA64 + ldr r0, _0234DAD8 @ =0x04001050 + bl FUN_0207772C + b _0234DA6C +_0234DA64: + ldr r0, _0234DADC @ =0x04000050 + bl FUN_0207772C +_0234DA6C: + ldrsh r1, [r4, #4] + ldrh r0, [r4, #6] + cmp r1, r0 + addlt sp, sp, #8 + poplt {r3, r4, r5, r6, r7, r8, sb, pc} + ldr r0, _0234DAD4 @ =0x0235AB80 + ldrb r2, [r4, #8] + ldr r0, [r0] + add r1, sp, #0 + cmp r4, r0 + bne _0234DAA8 + ldrsb r1, [r1, r2] + ldr r0, _0234DAD8 @ =0x04001050 + bl FUN_0207772C + b _0234DAB4 +_0234DAA8: + ldrsb r1, [r1, r2] + ldr r0, _0234DADC @ =0x04000050 + bl FUN_0207772C +_0234DAB4: + mov r2, #0 + mov r1, r5 + mov r0, #1 + strb r2, [r4, #9] + bl ov02_0234FB40 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0234DAD0: .4byte 0x02352F1C +_0234DAD4: .4byte 0x0235AB80 +_0234DAD8: .4byte 0x04001050 +_0234DADC: .4byte 0x04000050 + arm_func_end ov02_0234D9B8 + + arm_func_start ov02_0234DAE0 +ov02_0234DAE0: @ 0x0234DAE0 + push {r3, r4, r5, lr} + ldr r1, _0234DB30 @ =0x0235AB80 + mov r5, r0 + ldr r4, [r1] + ldrb r0, [r4, #9] + cmp r0, #0 + movne r0, #0 + popne {r3, r4, r5, pc} + ldr r1, _0234DB34 @ =ov02_0234DB38 + mov r2, r4 + mov r0, #1 + mov r3, #0xc8 + bl ov02_0234FA98 + str r0, [r4] + mov r0, #0 + strh r0, [r4, #4] + strh r5, [r4, #6] + mov r0, #1 + strb r0, [r4, #9] + pop {r3, r4, r5, pc} + .align 2, 0 +_0234DB30: .4byte 0x0235AB80 +_0234DB34: .4byte ov02_0234DB38 + arm_func_end ov02_0234DAE0 + + arm_func_start ov02_0234DB38 +ov02_0234DB38: @ 0x0234DB38 + push {r3, lr} + ldrsh r2, [r1, #4] + add r2, r2, #1 + strh r2, [r1, #4] + ldrsh r3, [r1, #4] + ldrh r2, [r1, #6] + cmp r3, r2 + poplt {r3, pc} + mov r2, #0 + strb r2, [r1, #9] + mov r1, r0 + mov r0, #1 + bl ov02_0234FB40 + pop {r3, pc} + arm_func_end ov02_0234DB38 + + arm_func_start ov02_0234DB70 +ov02_0234DB70: @ 0x0234DB70 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r0, #0x680 + mov r1, #4 + bl ov02_0234E7B4 + mov r4, r0 + ldr r3, _0234DC68 @ =0x0235AB84 + add r1, r4, #0x10 + mov r0, #0x20 + mov r2, #0x30 + str r4, [r3] + bl ov02_0234D754 + ldr r1, _0234DC68 @ =0x0235AB84 + ldr r1, [r1] + str r0, [r1, #0x670] + bl ov02_02338DF0 + cmp r0, #6 + mov r4, #4 + bne _0234DC10 + mov r7, #0 + ldr r6, _0234DC6C @ =0x02354464 + ldr sb, _0234DC68 @ =0x0235AB84 + mov r8, r7 + mov r5, r7 +_0234DBCC: + ldr r0, [r6, r7, lsl #2] + mov r1, r5 + mov r2, r4 + bl ov02_0234CE84 + ldr r1, [sb] + add r1, r1, r7, lsl #2 + str r0, [r1, #0x674] + ldr r2, [sb] + add r0, r2, r7, lsl #2 + ldr r1, [r0, #0x674] + add r0, r2, r8 + bl ov02_0232A0F4 + add r7, r7, #1 + cmp r7, #2 + add r8, r8, #8 + blt _0234DBCC + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_0234DC10: + mov r8, #0 + ldr r6, _0234DC70 @ =0x0235446C + ldr sb, _0234DC68 @ =0x0235AB84 + mov r7, r8 + mov r5, r8 +_0234DC24: + ldr r0, [r6, r8, lsl #2] + mov r1, r5 + mov r2, r4 + bl ov02_0234CE84 + ldr r1, [sb] + add r1, r1, r8, lsl #2 + str r0, [r1, #0x674] + ldr r2, [sb] + add r0, r2, r8, lsl #2 + ldr r1, [r0, #0x674] + add r0, r2, r7 + bl ov02_0232A0F4 + add r8, r8, #1 + cmp r8, #2 + add r7, r7, #8 + blt _0234DC24 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0234DC68: .4byte 0x0235AB84 +_0234DC6C: .4byte 0x02354464 +_0234DC70: .4byte 0x0235446C + arm_func_end ov02_0234DB70 + + arm_func_start ov02_0234DC74 +ov02_0234DC74: @ 0x0234DC74 + push {r3, r4, r5, lr} + ldr r4, _0234DCB8 @ =0x0235AB84 + mov r5, #0 +_0234DC80: + ldr r0, [r4] + add r0, r0, r5, lsl #2 + ldr r0, [r0, #0x674] + bl ov02_0234CF78 + add r5, r5, #1 + cmp r5, #2 + blt _0234DC80 + ldr r0, _0234DCB8 @ =0x0235AB84 + ldr r0, [r0] + ldr r0, [r0, #0x670] + bl ov02_0234D794 + ldr r0, _0234DCBC @ =0x0235AB84 + bl ov02_0234E7D8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0234DCB8: .4byte 0x0235AB84 +_0234DCBC: .4byte 0x0235AB84 + arm_func_end ov02_0234DC74 + + arm_func_start ov02_0234DCC0 +ov02_0234DCC0: @ 0x0234DCC0 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + ldr r4, _0234DD98 @ =0x0235AB84 + mov r7, r0 + ldr r0, [r4] + mov r6, r1 + ldr r0, [r0, #0x670] + mov r5, r2 + mov r8, r3 + bl ov02_0234D808 + mov r4, r0 + strb r6, [r4, #0x2e] + mul r1, r6, r5 + mov r2, r8 + strb r5, [r4, #0x2f] + mov r0, r7 + add r3, sp, #4 + bl ov02_0234F3E4 + str r0, [r4, #0x28] + ldr r1, [sp, #4] + mov r0, r6 + strh r1, [r4, #0x2c] + mov r1, r5 + bl ov02_0232B300 + ldr r1, [sp, #0x20] + cmp r7, #1 + str r0, [r1] + moveq ip, #0x6600000 + ldr r7, [sp, #4] + mov r1, #4 + movne ip, #0x6400000 + str r1, [sp] + mov r0, r4 + mov r2, r6 + mov r3, r5 + add r1, ip, r7, lsl #7 + bl ov02_0232B16C + ldr r1, [r4, #0x14] + mov r0, r4 + ldr r2, [r1, #4] + mov r1, #0 + blx r2 + ldr r0, _0234DD98 @ =0x0235AB84 + ldr r2, [sp, #0x24] + ldr r0, [r0] + mov r1, #1 + str r4, [r4, #0x18] + add r0, r0, r2, lsl #3 + str r0, [r4, #0x1c] + str r1, [r4, #0x20] + mov r0, r4 + str r1, [r4, #0x24] + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0234DD98: .4byte 0x0235AB84 + arm_func_end ov02_0234DCC0 + + arm_func_start ov02_0234DD9C +ov02_0234DD9C: @ 0x0234DD9C + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #0x28] + bl ov02_0234F55C + ldr r0, _0234DDC4 @ =0x0235AB84 + mov r1, r4 + ldr r0, [r0] + ldr r0, [r0, #0x670] + bl ov02_0234D7B0 + pop {r4, pc} + .align 2, 0 +_0234DDC4: .4byte 0x0235AB84 + arm_func_end ov02_0234DD9C + + arm_func_start ov02_0234DDC8 +ov02_0234DDC8: @ 0x0234DDC8 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x10 + mov r8, r0 + ldr r0, _0234DF24 @ =0x0235AB84 + ldr r3, _0234DF28 @ =0x02352F2E + lsl r4, r8, #2 + ldr r2, _0234DF2C @ =0x02352F2C + ldr r0, [r0] + ldrh r5, [r3, r4] + ldrh r6, [r2, r4] + add r3, r0, #0x610 + mov r0, #0x30 + mul r2, r6, r5 + mov r7, r1 + mla r4, r8, r0, r3 + lsl r0, r2, #5 + mov r1, #0x20 + bl ov02_0234E7B4 + str r0, [r4, #0x28] + cmp r8, #1 + bne _0234DE40 + ldr r1, _0234DF30 @ =0x04001008 + ldrh r0, [r1] + bic r0, r0, #0x40 + strh r0, [r1] + ldrh r0, [r1] + and r0, r0, #0x43 + orr r0, r0, #0xc00 + strh r0, [r1] + b _0234DE60 +_0234DE40: + ldr r1, _0234DF34 @ =0x04000008 + ldrh r0, [r1] + bic r0, r0, #0x40 + strh r0, [r1] + ldrh r0, [r1] + and r0, r0, #0x43 + orr r0, r0, #0xc00 + strh r0, [r1] +_0234DE60: + mov r0, #4 + str r0, [sp] + ldr r1, [r4, #0x28] + mov r0, r4 + mov r2, r6 + mov r3, r5 + bl ov02_0232B140 + ldr r0, _0234DF24 @ =0x0235AB84 + mov r1, #1 + ldr r0, [r0] + cmp r8, #1 + str r4, [r4, #0x18] + add r0, r0, r7, lsl #3 + str r0, [r4, #0x1c] + str r1, [r4, #0x20] + str r1, [r4, #0x24] + bne _0234DEAC + bl FUN_0207741C + b _0234DEB0 +_0234DEAC: + bl FUN_020773E8 +_0234DEB0: + ldr r1, _0234DF38 @ =0x02352F28 + lsl r2, r8, #1 + mov r3, #0 + ldrh r7, [r1, r2] + str r3, [sp] + mov r1, #0x20 + str r1, [sp, #4] + mov r1, r6 + mov r2, r5 + str r7, [sp, #8] + mov r5, #0xf + str r5, [sp, #0xc] + bl ov02_0232B1F4 + mov r0, r4 + mov r1, #0 + bl ov02_0234E2A8 + ldr r0, _0234DF24 @ =0x0235AB84 + ldr r1, _0234DF3C @ =ov02_0234DF40 + ldr r2, [r0] + mov r0, #1 + add r2, r2, #0x27c + add r2, r2, #0x400 + add r2, r2, r8 + mov r3, #0xc8 + bl ov02_0234FA98 + str r0, [r4, #0x2c] + mov r0, r4 + add sp, sp, #0x10 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0234DF24: .4byte 0x0235AB84 +_0234DF28: .4byte 0x02352F2E +_0234DF2C: .4byte 0x02352F2C +_0234DF30: .4byte 0x04001008 +_0234DF34: .4byte 0x04000008 +_0234DF38: .4byte 0x02352F28 +_0234DF3C: .4byte ov02_0234DF40 + arm_func_end ov02_0234DDC8 + + arm_func_start ov02_0234DF40 +ov02_0234DF40: @ 0x0234DF40 + push {r4, lr} + mov r4, r1 + ldrb r0, [r4] + cmp r0, #0 + popeq {r4, pc} + ldr r0, _0234DFC4 @ =0x0235AB84 + ldr r1, [r0] + add r0, r1, #0x27c + add r0, r0, #0x400 + cmp r4, r0 + bne _0234DF94 + ldr r0, [r1, #0x638] + mov r1, #0x6000 + bl FUN_0207A2DC + ldr r0, _0234DFC4 @ =0x0235AB84 + mov r1, #0 + ldr r0, [r0] + mov r2, #0x6000 + ldr r0, [r0, #0x638] + bl FUN_02078190 + b _0234DFB8 +_0234DF94: + ldr r0, [r1, #0x668] + mov r1, #0x3000 + bl FUN_0207A2DC + ldr r0, _0234DFC4 @ =0x0235AB84 + mov r1, #0x3000 + ldr r0, [r0] + mov r2, r1 + ldr r0, [r0, #0x668] + bl FUN_020781F0 +_0234DFB8: + mov r0, #0 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_0234DFC4: .4byte 0x0235AB84 + arm_func_end ov02_0234DF40 + + arm_func_start ov02_0234DFC8 +ov02_0234DFC8: @ 0x0234DFC8 + push {r4, lr} + mov r4, r0 + ldr r1, [r4, #0x2c] + mov r0, #1 + bl ov02_0234FB6C + ldr r0, _0234E028 @ =0x0235AB84 + ldr r0, [r0] + add r0, r0, #0x610 + cmp r4, r0 + bne _0234E008 + bl FUN_02077598 + mov r1, r0 + mov r0, #0 + mov r2, #0x6000 + bl FUN_0207C2B8 + b _0234E01C +_0234E008: + bl FUN_02077598 + mov r1, r0 + mov r0, #0 + mov r2, #0x3000 + bl FUN_0207C2B8 +_0234E01C: + add r0, r4, #0x28 + bl ov02_0234E7D8 + pop {r4, pc} + .align 2, 0 +_0234E028: .4byte 0x0235AB84 + arm_func_end ov02_0234DFC8 + + arm_func_start ov02_0234E02C +ov02_0234E02C: @ 0x0234E02C + ldr r2, _0234E048 @ =0x0235AB84 + mov r1, #0x30 + ldr r2, [r2] + ldr ip, _0234E04C @ =ov02_0234DFC8 + add r2, r2, #0x610 + mla r0, r1, r0, r2 + bx ip + .align 2, 0 +_0234E048: .4byte 0x0235AB84 +_0234E04C: .4byte ov02_0234DFC8 + arm_func_end ov02_0234E02C + + arm_func_start ov02_0234E050 +ov02_0234E050: @ 0x0234E050 + push {r4, lr} + sub sp, sp, #0x10 + ldr r4, [r0, #0x1c] + add ip, sp, #0xc + mov lr, #0 + strb lr, [ip] + strb lr, [ip, #1] + ldr ip, [r4] + ldr ip, [ip, #8] + ldrb ip, [ip, #7] + cmp ip, #7 + addls pc, pc, ip, lsl #2 + b _0234E0D0 +_0234E084: @ jump table + b _0234E0A4 @ case 0 + b _0234E0B0 @ case 1 + b _0234E0B0 @ case 2 + b _0234E0BC @ case 3 + b _0234E0BC @ case 4 + b _0234E0C8 @ case 5 + b _0234E0C8 @ case 6 + b _0234E0A4 @ case 7 +_0234E0A4: + mov ip, #1 + strb ip, [sp, #0xc] + b _0234E0D0 +_0234E0B0: + mov ip, #1 + strb ip, [sp, #0xd] + b _0234E0D0 +_0234E0BC: + sub ip, lr, #1 + strb ip, [sp, #0xc] + b _0234E0D0 +_0234E0C8: + sub ip, lr, #1 + strb ip, [sp, #0xd] +_0234E0D0: + ldr lr, [sp, #0x18] + ldr ip, [sp, #0x1c] + str lr, [sp] + str ip, [sp, #4] + ldrb lr, [sp, #0xc] + ldrb ip, [sp, #0xd] + add r0, r0, #0x18 + strb lr, [sp, #8] + strb ip, [sp, #9] + bl ov02_0232B870 + add sp, sp, #0x10 + pop {r4, pc} + arm_func_end ov02_0234E050 + + arm_func_start ov02_0234E100 +ov02_0234E100: @ 0x0234E100 + push {r3, lr} + sub sp, sp, #8 + ldrh ip, [sp, #0x10] + str r3, [sp] + ldr r3, _0234E138 @ =0x0235AB84 + str ip, [sp, #4] + ldr lr, [r3] + ldr ip, [sp, #0x14] + mov r3, r2 + mov r2, r1 + add r1, lr, ip, lsl #3 + bl ov02_0232B01C + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_0234E138: .4byte 0x0235AB84 + arm_func_end ov02_0234E100 + + arm_func_start ov02_0234E13C +ov02_0234E13C: @ 0x0234E13C + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #8 + ldr r6, [sp, #0x34] + mov sb, r1 + ldrh r1, [r6] + ldr r7, [sp, #0x30] + ldr r5, [sp, #0x38] + cmp r1, #0 + mov sl, r0 + mov r8, r2 + mov fp, r3 + addeq sp, sp, #8 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0234E170: + ldr r0, _0234E1E0 @ =0x0235AB84 + ldr r0, [r0] + add r4, r0, r5, lsl #3 + mov r0, r4 + bl ov02_0232A118 + mov r1, r0 + ldr r0, _0234E1E4 @ =0x0000FFFF + cmp r1, r0 + ldreq r0, [r4] + ldrheq r1, [r0, #2] + mov r0, r4 + bl ov02_0232A160 + ldrh r1, [r6] + mov r2, r0 + mov r0, sl + stm sp, {r1, r5} + ldrsb r1, [r2, #2] + mov r2, r8 + mov r3, fp + sub r1, r7, r1 + add r1, sb, r1, asr #1 + bl ov02_0234E100 + ldrh r1, [r6, #2]! + add sb, sb, r7 + cmp r1, #0 + bne _0234E170 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0234E1E0: .4byte 0x0235AB84 +_0234E1E4: .4byte 0x0000FFFF + arm_func_end ov02_0234E13C + + arm_func_start ov02_0234E1E8 +ov02_0234E1E8: @ 0x0234E1E8 + push {r4, lr} + sub sp, sp, #0x18 + ldr r4, [r0, #0x1c] + add ip, sp, #0x14 + mov lr, #0 + strb lr, [ip] + strb lr, [ip, #1] + ldr ip, [r4] + ldr ip, [ip, #8] + ldrb ip, [ip, #7] + cmp ip, #7 + addls pc, pc, ip, lsl #2 + b _0234E268 +_0234E21C: @ jump table + b _0234E23C @ case 0 + b _0234E248 @ case 1 + b _0234E248 @ case 2 + b _0234E254 @ case 3 + b _0234E254 @ case 4 + b _0234E260 @ case 5 + b _0234E260 @ case 6 + b _0234E23C @ case 7 +_0234E23C: + mov ip, #1 + strb ip, [sp, #0x14] + b _0234E268 +_0234E248: + mov ip, #1 + strb ip, [sp, #0x15] + b _0234E268 +_0234E254: + sub ip, lr, #1 + strb ip, [sp, #0x14] + b _0234E268 +_0234E260: + sub ip, lr, #1 + strb ip, [sp, #0x15] +_0234E268: + ldr lr, [sp, #0x20] + ldr ip, [sp, #0x24] + str lr, [sp] + ldr lr, [sp, #0x28] + str ip, [sp, #4] + ldr ip, [sp, #0x2c] + str lr, [sp, #8] + str ip, [sp, #0xc] + ldrb lr, [sp, #0x14] + ldrb ip, [sp, #0x15] + add r0, r0, #0x18 + strb lr, [sp, #0x10] + strb ip, [sp, #0x11] + bl ov02_0232B994 + add sp, sp, #0x18 + pop {r4, pc} + arm_func_end ov02_0234E1E8 + + arm_func_start ov02_0234E2A8 +ov02_0234E2A8: @ 0x0234E2A8 + push {r3, lr} + ldr r2, [r0, #0x14] + ldr r2, [r2, #4] + blx r2 + pop {r3, pc} + arm_func_end ov02_0234E2A8 + + arm_func_start ov02_0234E2BC +ov02_0234E2BC: @ 0x0234E2BC + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x10 + mov r6, r3 + mov r4, r0 + mov r8, r1 + mov r0, r6 + mov r1, #0 + mov r7, r2 + bl ov02_0234D308 + mov r2, #0 + mov r5, r0 + mov r0, r6 + mvn r1, #0 + mov r3, r2 + bl ov02_0234D31C + mov r0, r6 + mvn r1, #0 + mov r2, #0 + mov r3, #0xf + bl ov02_0234D3C0 + mov r0, r6 + mvn r1, #0 + ldr r2, [sp, #0x28] + bl ov02_0234D530 + str r7, [sp] + mov r0, r5 + mov r3, r8 + mov r1, #0 + str r1, [sp, #4] + ldrh r2, [r4, #0x2c] + mov r1, #2 + str r2, [sp, #8] + str r1, [sp, #0xc] + ldrb r1, [r4, #0x2e] + ldrb r2, [r4, #0x2f] + bl ov02_0232B35C + add sp, sp, #0x10 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov02_0234E2BC + + arm_func_start ov02_0234E354 +ov02_0234E354: @ 0x0234E354 + ldr r1, _0234E374 @ =0x0235AB84 + ldr r2, [r1] + add r1, r2, #0x610 + cmp r0, r1 + mov r0, #1 + strbeq r0, [r2, #0x67c] + strbne r0, [r2, #0x67d] + bx lr + .align 2, 0 +_0234E374: .4byte 0x0235AB84 + arm_func_end ov02_0234E354 + + arm_func_start ov02_0234E378 +ov02_0234E378: @ 0x0234E378 + strh r0, [r2] + strh r1, [r2, #2] + bx lr + arm_func_end ov02_0234E378 + + arm_func_start ov02_0234E384 +ov02_0234E384: @ 0x0234E384 + ldr ip, [sp] + strh r0, [ip] + strh r1, [ip, #2] + strh r2, [ip, #4] + strh r3, [ip, #6] + bx lr + arm_func_end ov02_0234E384 + + arm_func_start ov02_0234E39C +ov02_0234E39C: @ 0x0234E39C + ldrh r3, [r0] + strh r3, [r2] + ldrh r3, [r0, #2] + strh r3, [r2, #2] + ldrh ip, [r0] + ldrh r3, [r1] + add r3, ip, r3 + strh r3, [r2, #4] + ldrh r3, [r0, #2] + ldrh r0, [r1, #2] + add r0, r3, r0 + strh r0, [r2, #6] + bx lr + arm_func_end ov02_0234E39C + + arm_func_start ov02_0234E3D0 +ov02_0234E3D0: @ 0x0234E3D0 + cmp r0, #1 + bne _0234E3FC + ldr r3, _0234E420 @ =0x04001000 + ldr r2, [r3] + ldr r0, [r3] + and ip, r2, #0x1f00 + bic r2, r0, #0x1f00 + orr r0, r1, ip, lsr #8 + orr r0, r2, r0, lsl #8 + str r0, [r3] + bx lr +_0234E3FC: + mov r3, #0x4000000 + ldr r2, [r3] + ldr r0, [r3] + and ip, r2, #0x1f00 + bic r2, r0, #0x1f00 + orr r0, r1, ip, lsr #8 + orr r0, r2, r0, lsl #8 + str r0, [r3] + bx lr + .align 2, 0 +_0234E420: .4byte 0x04001000 + arm_func_end ov02_0234E3D0 + + arm_func_start ov02_0234E424 +ov02_0234E424: @ 0x0234E424 + cmp r0, #1 + bne _0234E454 + ldr r3, _0234E47C @ =0x04001000 + mvn r0, r1 + ldr r2, [r3] + ldr r1, [r3] + and r2, r2, #0x1f00 + bic r1, r1, #0x1f00 + and r0, r0, r2, lsr #8 + orr r0, r1, r0, lsl #8 + str r0, [r3] + bx lr +_0234E454: + mov r3, #0x4000000 + ldr r0, [r3] + ldr r2, [r3] + and ip, r0, #0x1f00 + mvn r0, r1 + bic r1, r2, #0x1f00 + and r0, r0, ip, lsr #8 + orr r0, r1, r0, lsl #8 + str r0, [r3] + bx lr + .align 2, 0 +_0234E47C: .4byte 0x04001000 + arm_func_end ov02_0234E424 + + arm_func_start ov02_0234E480 +ov02_0234E480: @ 0x0234E480 + cmp r0, #1 + bne _0234E508 + cmp r1, #0 + ldrh r0, [r2] + ldrh r3, [r2, #2] + bne _0234E4D0 + ldrh r1, [r2, #4] + ldrh ip, [r2, #6] + lsl r2, r0, #8 + lsl r0, r3, #8 + and r3, r2, #0xff00 + and r1, r1, #0xff + orr r3, r3, r1 + ldr r2, _0234E588 @ =0x04001040 + and r1, r0, #0xff00 + and r0, ip, #0xff + strh r3, [r2] + orr r0, r1, r0 + strh r0, [r2, #4] + bx lr +_0234E4D0: + ldrh r1, [r2, #4] + ldrh ip, [r2, #6] + lsl r2, r0, #8 + lsl r0, r3, #8 + and r3, r2, #0xff00 + and r1, r1, #0xff + orr r3, r3, r1 + ldr r2, _0234E58C @ =0x04001042 + and r1, r0, #0xff00 + and r0, ip, #0xff + strh r3, [r2] + orr r0, r1, r0 + strh r0, [r2, #4] + bx lr +_0234E508: + cmp r1, #0 + ldrh r0, [r2] + ldrh r3, [r2, #2] + bne _0234E550 + ldrh r1, [r2, #4] + ldrh ip, [r2, #6] + lsl r2, r0, #8 + lsl r0, r3, #8 + and r3, r2, #0xff00 + and r1, r1, #0xff + orr r3, r3, r1 + ldr r2, _0234E590 @ =0x04000040 + and r1, r0, #0xff00 + and r0, ip, #0xff + strh r3, [r2] + orr r0, r1, r0 + strh r0, [r2, #4] + bx lr +_0234E550: + ldrh r1, [r2, #4] + ldrh ip, [r2, #6] + lsl r2, r0, #8 + lsl r0, r3, #8 + and r3, r2, #0xff00 + and r1, r1, #0xff + orr r3, r3, r1 + ldr r2, _0234E594 @ =0x04000042 + and r1, r0, #0xff00 + and r0, ip, #0xff + strh r3, [r2] + orr r0, r1, r0 + strh r0, [r2, #4] + bx lr + .align 2, 0 +_0234E588: .4byte 0x04001040 +_0234E58C: .4byte 0x04001042 +_0234E590: .4byte 0x04000040 +_0234E594: .4byte 0x04000042 + arm_func_end ov02_0234E480 + + arm_func_start ov02_0234E598 +ov02_0234E598: @ 0x0234E598 + cmp r1, #3 + addls pc, pc, r1, lsl #2 + bx lr +_0234E5A4: @ jump table + b _0234E5B4 @ case 0 + b _0234E604 @ case 1 + b _0234E654 @ case 2 + b _0234E6A4 @ case 3 +_0234E5B4: + cmp r0, #1 + bne _0234E5E0 + ldr r0, _0234E6F4 @ =0x04001048 + cmp r3, #0 + ldrh r0, [r0] + bic r0, r0, #0x3f + orr r1, r0, r2 + ldr r0, _0234E6F4 @ =0x04001048 + orrne r1, r1, #0x20 + strh r1, [r0] + bx lr +_0234E5E0: + ldr r0, _0234E6F8 @ =0x04000048 + cmp r3, #0 + ldrh r0, [r0] + bic r0, r0, #0x3f + orr r1, r0, r2 + ldr r0, _0234E6F8 @ =0x04000048 + orrne r1, r1, #0x20 + strh r1, [r0] + bx lr +_0234E604: + cmp r0, #1 + bne _0234E630 + ldr r0, _0234E6F4 @ =0x04001048 + cmp r3, #0 + ldrh r0, [r0] + bic r0, r0, #0x3f00 + orr r1, r0, r2, lsl #8 + ldr r0, _0234E6F4 @ =0x04001048 + orrne r1, r1, #0x2000 + strh r1, [r0] + bx lr +_0234E630: + ldr r0, _0234E6F8 @ =0x04000048 + cmp r3, #0 + ldrh r0, [r0] + bic r0, r0, #0x3f00 + orr r1, r0, r2, lsl #8 + ldr r0, _0234E6F8 @ =0x04000048 + orrne r1, r1, #0x2000 + strh r1, [r0] + bx lr +_0234E654: + cmp r0, #1 + bne _0234E680 + ldr r0, _0234E6FC @ =0x0400104A + cmp r3, #0 + ldrh r0, [r0] + bic r0, r0, #0x3f00 + orr r1, r0, r2, lsl #8 + ldr r0, _0234E6FC @ =0x0400104A + orrne r1, r1, #0x2000 + strh r1, [r0] + bx lr +_0234E680: + ldr r0, _0234E700 @ =0x0400004A + cmp r3, #0 + ldrh r0, [r0] + bic r0, r0, #0x3f00 + orr r1, r0, r2, lsl #8 + ldr r0, _0234E700 @ =0x0400004A + orrne r1, r1, #0x2000 + strh r1, [r0] + bx lr +_0234E6A4: + cmp r0, #1 + bne _0234E6D0 + ldr r0, _0234E6FC @ =0x0400104A + cmp r3, #0 + ldrh r0, [r0] + bic r0, r0, #0x3f + orr r1, r0, r2 + ldr r0, _0234E6FC @ =0x0400104A + orrne r1, r1, #0x20 + strh r1, [r0] + bx lr +_0234E6D0: + ldr r0, _0234E700 @ =0x0400004A + cmp r3, #0 + ldrh r0, [r0] + bic r0, r0, #0x3f + orr r1, r0, r2 + ldr r0, _0234E700 @ =0x0400004A + orrne r1, r1, #0x20 + strh r1, [r0] + bx lr + .align 2, 0 +_0234E6F4: .4byte 0x04001048 +_0234E6F8: .4byte 0x04000048 +_0234E6FC: .4byte 0x0400104A +_0234E700: .4byte 0x0400004A + arm_func_end ov02_0234E598 + + arm_func_start ov02_0234E704 +ov02_0234E704: @ 0x0234E704 + push {r4, lr} + mov r4, r0 + mov r1, #0 + mov r2, #0x40000 + bl FUN_0207C40C + mov r0, r4 + mov r1, #0x40000 + mov r2, #0 + bl ov02_02329D54 + ldr r1, _0234E740 @ =0x0235AB88 + cmp r0, #0 + str r0, [r1] + popne {r4, pc} + bl FUN_0207BC20 + pop {r4, pc} + .align 2, 0 +_0234E740: .4byte 0x0235AB88 + arm_func_end ov02_0234E704 + + arm_func_start ov02_0234E744 +ov02_0234E744: @ 0x0234E744 + push {r3, lr} + ldr r0, _0234E764 @ =0x0235AB88 + ldr r0, [r0] + bl ov02_02329844 + ldr r0, _0234E764 @ =0x0235AB88 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0234E764: .4byte 0x0235AB88 + arm_func_end ov02_0234E744 + + arm_func_start ov02_0234E768 +ov02_0234E768: @ 0x0234E768 + push {r4, r5, r6, lr} + mov r6, r0 + mov r0, #1 + mov r4, r1 + bl FUN_02078C98 + ldr r1, _0234E7B0 @ =0x0235AB88 + mov r5, r0 + ldr r0, [r1] + mov r1, r6 + mov r2, r4 + bl ov02_02329D98 + movs r4, r0 + bne _0234E7A0 + bl FUN_0207BC20 +_0234E7A0: + mov r0, r5 + bl FUN_02078C68 + mov r0, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0234E7B0: .4byte 0x0235AB88 + arm_func_end ov02_0234E768 + + arm_func_start ov02_0234E7B4 +ov02_0234E7B4: @ 0x0234E7B4 + push {r4, lr} + mov r4, r0 + bl ov02_0234E768 + mov r2, r4 + mov r1, #0 + mov r4, r0 + bl FUN_0207C40C + mov r0, r4 + pop {r4, pc} + arm_func_end ov02_0234E7B4 + + arm_func_start ov02_0234E7D8 +ov02_0234E7D8: @ 0x0234E7D8 + push {r3, r4, r5, lr} + mov r5, r0 + mov r0, #1 + bl FUN_02078C98 + ldr r1, [r5] + mov r4, r0 + cmp r1, #0 + popeq {r3, r4, r5, pc} + ldr r0, _0234E818 @ =0x0235AB88 + ldr r0, [r0] + bl ov02_02329DC8 + mov r0, r4 + bl FUN_02078C68 + mov r0, #0 + str r0, [r5] + pop {r3, r4, r5, pc} + .align 2, 0 +_0234E818: .4byte 0x0235AB88 + arm_func_end ov02_0234E7D8 +_0234E81C: + .byte 0x38, 0x40, 0x2D, 0xE9 + .byte 0x00, 0x50, 0xA0, 0xE1, 0x01, 0x00, 0xA0, 0xE3, 0x1A, 0xA9, 0xF4, 0xEB, 0x00, 0x40, 0xA0, 0xE1 + .byte 0x00, 0x00, 0x55, 0xE3, 0x38, 0x80, 0xBD, 0x08, 0x14, 0x00, 0x9F, 0xE5, 0x05, 0x10, 0xA0, 0xE1 + .byte 0x00, 0x00, 0x90, 0xE5, 0x5F, 0x6D, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x05, 0xA9, 0xF4, 0xEB + .byte 0x38, 0x80, 0xBD, 0xE8, 0x88, 0xAB, 0x35, 0x02 + + arm_func_start ov02_0234E858 +ov02_0234E858: @ 0x0234E858 + push {r3, lr} + sub sp, sp, #8 + mov r0, #0x3a + mov r1, #4 + bl ov02_0234E7B4 + ldr r1, _0234E8D0 @ =0x0235AB8C + str r0, [r1, #4] + add r0, sp, #0 + bl FUN_02081264 + cmp r0, #0 + bne _0234E888 + bl FUN_0207BC20 +_0234E888: + add r0, sp, #0 + bl FUN_020812F8 + ldr r1, _0234E8D0 @ =0x0235AB8C + mov r0, #0 + ldr r2, [r1, #4] + mov r1, #4 + mov r3, #5 + bl FUN_0208151C + mov r0, #2 + bl FUN_020819D4 + mov r0, #2 + bl FUN_020819EC + cmp r0, #0 + beq _0234E8C4 + bl FUN_0207BC20 +_0234E8C4: + bl ov02_0234E90C + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_0234E8D0: .4byte 0x0235AB8C + arm_func_end ov02_0234E858 + + arm_func_start ov02_0234E8D4 +ov02_0234E8D4: @ 0x0234E8D4 + push {r3, r4, r5, lr} + mov r5, #4 + mov r4, r5 +_0234E8E0: + bl FUN_0208161C + mov r0, r5 + bl FUN_020819D4 + mov r0, r4 + bl FUN_020819EC + cmp r0, #0 + bne _0234E8E0 + ldr r0, _0234E908 @ =0x0235AB90 + bl ov02_0234E7D8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0234E908: .4byte 0x0235AB90 + arm_func_end ov02_0234E8D4 + + arm_func_start ov02_0234E90C +ov02_0234E90C: @ 0x0234E90C + push {r3, lr} + bl ov02_0234E91C + bl ov02_0234EA20 + pop {r3, pc} + arm_func_end ov02_0234E90C + + arm_func_start ov02_0234E91C +ov02_0234E91C: @ 0x0234E91C + push {r3, r4, r5, r6, r7, lr} + ldr r1, _0234EA0C @ =0x04000130 + ldr r0, _0234EA10 @ =0x027FFFA8 + ldrh r2, [r1] + ldrh r1, [r0] + ldr r4, _0234EA14 @ =0x0235AB8C + ldr r0, _0234EA18 @ =0x00002FFF + orr r1, r2, r1 + eor r1, r1, r0 + and r0, r1, r0 + ldr r5, [r4, #4] + lsl r0, r0, #0x10 + ldrh r1, [r5, #0x30] + lsr ip, r0, #0x10 + ldr r3, _0234EA1C @ =0x0235AB94 + eor r1, r1, r0, lsr #16 + and r1, r1, r0, lsr #16 + strh r1, [r5, #0x32] + ldrh r5, [r5, #0x30] + ldr r1, [r4, #4] + mov r2, #0 + eor r0, r5, r0, lsr #16 + and r0, r5, r0 + strh r0, [r1, #0x36] + ldr r0, [r4, #4] + mov r5, #0x28 + strh ip, [r0, #0x30] + ldr r1, [r4, #4] + ldrh r0, [r1, #0x32] + strh r0, [r1, #0x34] + mov r0, r2 + mov r1, #1 +_0234E99C: + lsl r6, r1, r2 + lsl lr, r6, #0x10 + tst ip, lr, lsr #16 + strbeq r0, [r3] + beq _0234E9F8 + ldrb r6, [r3] + add r7, r6, #1 + and r6, r7, #0xff + strb r7, [r3] + cmp r6, #0x28 + bne _0234E9DC + ldr r7, [r4, #4] + ldrh r6, [r7, #0x34] + orr r6, r6, lr, lsr #16 + strh r6, [r7, #0x34] + b _0234E9F8 +_0234E9DC: + cmp r6, #0x2f + bne _0234E9F8 + ldr r7, [r4, #4] + ldrh r6, [r7, #0x34] + orr r6, r6, lr, lsr #16 + strh r6, [r7, #0x34] + strb r5, [r3] +_0234E9F8: + add r2, r2, #1 + cmp r2, #0xe + add r3, r3, #1 + blt _0234E99C + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0234EA0C: .4byte 0x04000130 +_0234EA10: .4byte 0x027FFFA8 +_0234EA14: .4byte 0x0235AB8C +_0234EA18: .4byte 0x00002FFF +_0234EA1C: .4byte 0x0235AB94 + arm_func_end ov02_0234E91C + + arm_func_start ov02_0234EA20 +ov02_0234EA20: @ 0x0234EA20 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #8 + ldr r0, _0234EBB8 @ =0x0235AB8C + mov r5, #0 + ldr r0, [r0, #4] + ldrb r0, [r0, #0x38] + lsl r0, r0, #0x1f + lsrs r0, r0, #0x1f + movne r6, #1 + moveq r6, #0 + bl FUN_020816B4 + ldr r7, _0234EBB8 @ =0x0235AB8C + mov r4, r5 + ldr r3, [r7, #4] + mov r8, #5 + ldrh r2, [r3, #0x28] + ldrh r1, [r3, #0x2a] + strh r2, [r3, #0x2c] + strh r1, [r3, #0x2e] +_0234EA6C: + ldr r1, [r7, #4] + add r1, r1, r0, lsl #3 + ldrh r2, [r1, #4] + cmp r2, #1 + ldrheq r2, [r1, #6] + cmpeq r2, #0 + bne _0234EAB0 + add r0, sp, #0 + mov r5, #1 + bl FUN_020818B0 + ldr r1, _0234EBB8 @ =0x0235AB8C + ldrh r0, [sp] + ldr r2, [r1, #4] + ldrh r1, [sp, #2] + add r2, r2, #0x28 + bl ov02_0234E378 + b _0234EAC8 +_0234EAB0: + mov r1, r8 + add r4, r4, #1 + add r0, r0, #4 + bl FUN_02075C38 + cmp r4, #4 + blt _0234EA6C +_0234EAC8: + ldr r0, _0234EBB8 @ =0x0235AB8C + eor r7, r5, r6 + ldr r4, [r0, #4] + and r1, r5, r7 + ldrb r3, [r4, #0x38] + and r2, r1, #0xff + and r1, r6, r7 + bic r3, r3, #2 + lsl r2, r2, #0x1f + orr r2, r3, r2, lsr #30 + strb r2, [r4, #0x38] + ldr r4, [r0, #4] + and r1, r1, #0xff + ldrb r3, [r4, #0x38] + lsl r2, r1, #0x1f + cmp r5, #0 + bic r3, r3, #8 + orr r2, r3, r2, lsr #28 + strb r2, [r4, #0x38] + ldr r3, [r0, #4] + and r1, r5, #1 + ldrb r2, [r3, #0x38] + addeq sp, sp, #8 + bic r2, r2, #1 + orr r1, r2, r1 + strb r1, [r3, #0x38] + ldr r3, [r0, #4] + ldrb r2, [r3, #0x38] + lsl r1, r2, #0x1e + lsr r1, r1, #0x1f + bic r2, r2, #4 + lsl r1, r1, #0x1f + orr r1, r2, r1, lsr #29 + strb r1, [r3, #0x38] + moveq r1, #0 + strbeq r1, [r0, #1] + popeq {r4, r5, r6, r7, r8, pc} + ldrb r1, [r0, #1] + add r2, r1, #1 + and r1, r2, #0xff + strb r2, [r0, #1] + cmp r1, #0x28 + bne _0234EB8C + ldr r1, [r0, #4] + add sp, sp, #8 + ldrb r0, [r1, #0x38] + orr r0, r0, #4 + strb r0, [r1, #0x38] + pop {r4, r5, r6, r7, r8, pc} +_0234EB8C: + cmp r1, #0x2f + addne sp, sp, #8 + popne {r4, r5, r6, r7, r8, pc} + ldr r3, [r0, #4] + mov r1, #0x28 + ldrb r2, [r3, #0x38] + orr r2, r2, #4 + strb r2, [r3, #0x38] + strb r1, [r0, #1] + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0234EBB8: .4byte 0x0235AB8C + arm_func_end ov02_0234EA20 + + arm_func_start ov02_0234EBBC +ov02_0234EBBC: @ 0x0234EBBC + ldr r1, _0234EBF4 @ =0x027FFFA8 + ldrh r1, [r1] + and r1, r1, #0x8000 + asrs r1, r1, #0xf + movne r0, #0 + bxne lr + ldr r1, _0234EBF8 @ =0x0235AB8C + ldr r1, [r1, #4] + ldrh r1, [r1, #0x32] + and r1, r0, r1 + cmp r0, r1 + moveq r0, #1 + movne r0, #0 + bx lr + .align 2, 0 +_0234EBF4: .4byte 0x027FFFA8 +_0234EBF8: .4byte 0x0235AB8C + arm_func_end ov02_0234EBBC + + arm_func_start ov02_0234EBFC +ov02_0234EBFC: @ 0x0234EBFC + ldr r1, _0234EC34 @ =0x027FFFA8 + ldrh r1, [r1] + and r1, r1, #0x8000 + asrs r1, r1, #0xf + movne r0, #0 + bxne lr + ldr r1, _0234EC38 @ =0x0235AB8C + ldr r1, [r1, #4] + ldrh r1, [r1, #0x34] + and r1, r0, r1 + cmp r0, r1 + moveq r0, #1 + movne r0, #0 + bx lr + .align 2, 0 +_0234EC34: .4byte 0x027FFFA8 +_0234EC38: .4byte 0x0235AB8C + arm_func_end ov02_0234EBFC + + arm_func_start ov02_0234EC3C +ov02_0234EC3C: @ 0x0234EC3C + ldr r1, _0234EC74 @ =0x027FFFA8 + ldrh r1, [r1] + and r1, r1, #0x8000 + asrs r1, r1, #0xf + movne r0, #0 + bxne lr + ldr r1, _0234EC78 @ =0x0235AB8C + ldr r1, [r1, #4] + ldrh r1, [r1, #0x36] + and r1, r0, r1 + cmp r0, r1 + moveq r0, #1 + movne r0, #0 + bx lr + .align 2, 0 +_0234EC74: .4byte 0x027FFFA8 +_0234EC78: .4byte 0x0235AB8C + arm_func_end ov02_0234EC3C + + arm_func_start ov02_0234EC7C +ov02_0234EC7C: @ 0x0234EC7C + ldr r1, _0234ECFC @ =0x027FFFA8 + ldrh r1, [r1] + and r1, r1, #0x8000 + asrs r1, r1, #0xf + movne r0, #0 + bxne lr + ldr r1, _0234ED00 @ =0x0235AB8C + ldr r3, [r1, #4] + ldrb r1, [r3, #0x38] + lsl r1, r1, #0x1f + lsrs r1, r1, #0x1f + moveq r0, #0 + bxeq lr + ldrh r2, [r3, #0x28] + ldrh r1, [r0] + cmp r1, r2 + movhi r0, #0 + bxhi lr + ldrh r1, [r0, #4] + cmp r1, r2 + movlo r0, #0 + bxlo lr + ldrh r2, [r3, #0x2a] + ldrh r1, [r0, #2] + cmp r1, r2 + movhi r0, #0 + bxhi lr + ldrh r0, [r0, #6] + cmp r0, r2 + movhs r0, #1 + movlo r0, #0 + bx lr + .align 2, 0 +_0234ECFC: .4byte 0x027FFFA8 +_0234ED00: .4byte 0x0235AB8C + arm_func_end ov02_0234EC7C + + arm_func_start ov02_0234ED04 +ov02_0234ED04: @ 0x0234ED04 + ldr r1, _0234ED84 @ =0x027FFFA8 + ldrh r1, [r1] + and r1, r1, #0x8000 + asrs r1, r1, #0xf + movne r0, #0 + bxne lr + ldr r1, _0234ED88 @ =0x0235AB8C + ldr r3, [r1, #4] + ldrb r1, [r3, #0x38] + lsl r1, r1, #0x1e + lsrs r1, r1, #0x1f + moveq r0, #0 + bxeq lr + ldrh r2, [r3, #0x28] + ldrh r1, [r0] + cmp r1, r2 + movhi r0, #0 + bxhi lr + ldrh r1, [r0, #4] + cmp r1, r2 + movlo r0, #0 + bxlo lr + ldrh r2, [r3, #0x2a] + ldrh r1, [r0, #2] + cmp r1, r2 + movhi r0, #0 + bxhi lr + ldrh r0, [r0, #6] + cmp r0, r2 + movhs r0, #1 + movlo r0, #0 + bx lr + .align 2, 0 +_0234ED84: .4byte 0x027FFFA8 +_0234ED88: .4byte 0x0235AB8C + arm_func_end ov02_0234ED04 + + arm_func_start ov02_0234ED8C +ov02_0234ED8C: @ 0x0234ED8C + ldr r1, _0234EE0C @ =0x027FFFA8 + ldrh r1, [r1] + and r1, r1, #0x8000 + asrs r1, r1, #0xf + movne r0, #0 + bxne lr + ldr r1, _0234EE10 @ =0x0235AB8C + ldr r3, [r1, #4] + ldrb r1, [r3, #0x38] + lsl r1, r1, #0x1d + lsrs r1, r1, #0x1f + moveq r0, #0 + bxeq lr + ldrh r2, [r3, #0x28] + ldrh r1, [r0] + cmp r1, r2 + movhi r0, #0 + bxhi lr + ldrh r1, [r0, #4] + cmp r1, r2 + movlo r0, #0 + bxlo lr + ldrh r2, [r3, #0x2a] + ldrh r1, [r0, #2] + cmp r1, r2 + movhi r0, #0 + bxhi lr + ldrh r0, [r0, #6] + cmp r0, r2 + movhs r0, #1 + movlo r0, #0 + bx lr + .align 2, 0 +_0234EE0C: .4byte 0x027FFFA8 +_0234EE10: .4byte 0x0235AB8C + arm_func_end ov02_0234ED8C + + arm_func_start ov02_0234EE14 +ov02_0234EE14: @ 0x0234EE14 + ldr r1, _0234EE94 @ =0x027FFFA8 + ldrh r1, [r1] + and r1, r1, #0x8000 + asrs r1, r1, #0xf + movne r0, #0 + bxne lr + ldr r1, _0234EE98 @ =0x0235AB8C + ldr r3, [r1, #4] + ldrb r1, [r3, #0x38] + lsl r1, r1, #0x1c + lsrs r1, r1, #0x1f + moveq r0, #0 + bxeq lr + ldrh r2, [r3, #0x28] + ldrh r1, [r0] + cmp r1, r2 + movhi r0, #0 + bxhi lr + ldrh r1, [r0, #4] + cmp r1, r2 + movlo r0, #0 + bxlo lr + ldrh r2, [r3, #0x2a] + ldrh r1, [r0, #2] + cmp r1, r2 + movhi r0, #0 + bxhi lr + ldrh r0, [r0, #6] + cmp r0, r2 + movhs r0, #1 + movlo r0, #0 + bx lr + .align 2, 0 +_0234EE94: .4byte 0x027FFFA8 +_0234EE98: .4byte 0x0235AB8C + arm_func_end ov02_0234EE14 + + arm_func_start ov02_0234EE9C +ov02_0234EE9C: @ 0x0234EE9C + push {r3, lr} + sub sp, sp, #8 + ldr r1, _0234EF00 @ =0x027FFFA8 + ldrh r1, [r1] + and r1, r1, #0x8000 + asrs r1, r1, #0xf + addne sp, sp, #8 + movne r0, #0 + popne {r3, pc} + ldrh r1, [r0] + strh r1, [sp] + ldrh r1, [r0, #2] + strh r1, [sp, #2] + ldrh r2, [r0] + ldrh r1, [r0, #4] + add r1, r2, r1 + strh r1, [sp, #4] + ldrh r2, [r0, #2] + ldrh r1, [r0, #6] + add r0, sp, #0 + add r1, r2, r1 + strh r1, [sp, #6] + bl ov02_0234ED04 + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_0234EF00: .4byte 0x027FFFA8 + arm_func_end ov02_0234EE9C + + arm_func_start ov02_0234EF04 +ov02_0234EF04: @ 0x0234EF04 + ldr r1, _0234EF64 @ =0x027FFFA8 + ldrh r1, [r1] + and r1, r1, #0x8000 + asrs r1, r1, #0xf + movne r0, #0 + bxne lr + ldr r1, _0234EF68 @ =0x0235AB8C + ldr r3, [r1, #4] + ldrb r1, [r3, #0x38] + lsl r1, r1, #0x1f + lsrs r1, r1, #0x1f + bne _0234EF4C + ldrh r2, [r3, #0x2c] + ldrh r1, [r3, #0x2e] + strh r2, [r0] + strh r1, [r0, #2] + mov r0, #0 + bx lr +_0234EF4C: + ldrh r2, [r3, #0x28] + ldrh r1, [r3, #0x2a] + strh r2, [r0] + strh r1, [r0, #2] + mov r0, #1 + bx lr + .align 2, 0 +_0234EF64: .4byte 0x027FFFA8 +_0234EF68: .4byte 0x0235AB8C + arm_func_end ov02_0234EF04 + + arm_func_start ov02_0234EF6C +ov02_0234EF6C: @ 0x0234EF6C + push {r3, lr} + ldr r0, _0234EFE0 @ =0x0235AB8C + ldrb r0, [r0] + cmp r0, #0 + ldr r0, _0234EFE4 @ =0x027FFFA8 + beq _0234EFB4 + ldrh r0, [r0] + and r0, r0, #0x8000 + asrs r0, r0, #0xf + popne {r3, pc} + mov r0, #1 + bl FUN_02082420 + cmp r0, #0 + popeq {r3, pc} + ldr r0, _0234EFE0 @ =0x0235AB8C + mov r1, #0 + strb r1, [r0] + pop {r3, pc} +_0234EFB4: + ldrh r0, [r0] + and r0, r0, #0x8000 + asrs r0, r0, #0xf + popeq {r3, pc} + mov r0, #0 + bl FUN_02082420 + cmp r0, #0 + ldrne r0, _0234EFE0 @ =0x0235AB8C + movne r1, #1 + strbne r1, [r0] + pop {r3, pc} + .align 2, 0 +_0234EFE0: .4byte 0x0235AB8C +_0234EFE4: .4byte 0x027FFFA8 + arm_func_end ov02_0234EF6C + + arm_func_start ov02_0234EFE8 +ov02_0234EFE8: @ 0x0234EFE8 + push {r3, lr} + ldr r0, _0234F048 @ =0x04000210 + ldr r1, _0234F04C @ =0x0235ABA4 + ldr r2, [r0] + ldr r0, _0234F050 @ =0x00040018 + str r2, [r1, #4] + bl FUN_02078C3C + mov r0, #1 + bl FUN_02078C68 + mov r0, #1 + bl FUN_02078B20 + ldr r2, _0234F04C @ =0x0235ABA4 + ldr r1, _0234F054 @ =0x0234F098 + str r0, [r2] + mov r0, #1 + bl FUN_02078A98 + mov r0, #1 + bl FUN_02078CC8 + ldr r2, _0234F058 @ =0x04000208 + mov r0, #1 + ldrh r1, [r2] + strh r0, [r2] + bl FUN_0207B7D0 + pop {r3, pc} + .align 2, 0 +_0234F048: .4byte 0x04000210 +_0234F04C: .4byte 0x0235ABA4 +_0234F050: .4byte 0x00040018 +_0234F054: .4byte 0x0234F098 +_0234F058: .4byte 0x04000208 + arm_func_end ov02_0234EFE8 + + arm_func_start ov02_0234F05C +ov02_0234F05C: @ 0x0234F05C + push {r3, lr} + ldr r2, _0234F090 @ =0x04000208 + mov r1, #0 + ldrh r0, [r2] + ldr r0, _0234F094 @ =0x0235ABA4 + strh r1, [r2] + ldr r0, [r0, #4] + bl FUN_02078C3C + ldr r1, _0234F094 @ =0x0235ABA4 + mov r0, #1 + ldr r1, [r1] + bl FUN_02078A98 + pop {r3, pc} + .align 2, 0 +_0234F090: .4byte 0x04000208 +_0234F094: .4byte 0x0235ABA4 + arm_func_end ov02_0234F05C +_0234F098: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x50, 0x02, 0x00, 0xEB, 0x10, 0x00, 0x9F, 0xE5, 0x03, 0x0A, 0x80, 0xE2, 0xF8, 0x1F, 0x90, 0xE5 + .byte 0x01, 0x10, 0x81, 0xE3, 0xF8, 0x1F, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x00, 0x00, 0x7E, 0x02 + + arm_func_start ov02_0234F0C0 +ov02_0234F0C0: @ 0x0234F0C0 + push {r3, lr} + mov r0, #0x10 + mov r1, #4 + bl ov02_0234E7B4 + mov r2, #0 + str r2, [r0] + add r1, r0, #8 + str r1, [r0, #4] + str r0, [r0, #8] + str r2, [r0, #0xc] + pop {r3, pc} + arm_func_end ov02_0234F0C0 + + arm_func_start ov02_0234F0EC +ov02_0234F0EC: @ 0x0234F0EC + push {r0, r1, r2, r3} + push {r3, lr} + add r0, sp, #8 + bl ov02_0234E7D8 + pop {r3, lr} + add sp, sp, #0x10 + bx lr + arm_func_end ov02_0234F0EC + + arm_func_start ov02_0234F108 +ov02_0234F108: @ 0x0234F108 + push {r4, lr} + mov r4, r0 + mov r0, #1 + bl FUN_02078C98 + ldm r4, {r2, r3} + str r3, [r2, #4] + ldr r3, [r4] + ldr r2, [r4, #4] + mov r1, #0 + str r3, [r2] + str r1, [r4, #4] + str r1, [r4] + bl FUN_02078C68 + pop {r4, pc} + arm_func_end ov02_0234F108 + + arm_func_start ov02_0234F140 +ov02_0234F140: @ 0x0234F140 + push {r3, r4, r5, lr} + mov r5, r0 + mov r0, #1 + mov r4, r1 + bl FUN_02078C98 + ldr r1, [r5] + str r4, [r1, #4] + ldr r1, [r5] + stm r4, {r1, r5} + str r4, [r5] + bl FUN_02078C68 + pop {r3, r4, r5, pc} + arm_func_end ov02_0234F140 + + arm_func_start ov02_0234F170 +ov02_0234F170: @ 0x0234F170 + ldr ip, _0234F17C @ =ov02_0234F140 + add r0, r0, #8 + bx ip + .align 2, 0 +_0234F17C: .4byte ov02_0234F140 + arm_func_end ov02_0234F170 + + arm_func_start ov02_0234F180 +ov02_0234F180: @ 0x0234F180 + ldr ip, _0234F18C @ =ov02_0234F140 + ldr r0, [r0, #4] + bx ip + .align 2, 0 +_0234F18C: .4byte ov02_0234F140 + arm_func_end ov02_0234F180 + + arm_func_start ov02_0234F190 +ov02_0234F190: @ 0x0234F190 + push {r4, r5, r6, r7, r8, lr} + ldr r0, _0234F220 @ =0x0000080C + mov r1, #4 + bl ov02_0234E7B4 + mov r1, r0 + ldr r3, _0234F224 @ =0x0235ABAC + mov r0, #0x200 + mov r2, #0x800 + str r1, [r3] + bl FUN_0207C358 + mov r5, #0 + ldr r7, _0234F224 @ =0x0235ABAC + mov r6, r5 + mov r4, #0x40 + mov r8, #8 +_0234F1CC: + ldr r1, [r7] + mov r0, r4 + mov r2, r8 + add r1, r1, r6 + bl ov02_0234D754 + ldr r1, [r7] + add r6, r6, #0x400 + add r1, r1, r5, lsl #2 + add r5, r5, #1 + str r0, [r1, #0x800] + cmp r5, #2 + blt _0234F1CC + ldr r1, _0234F228 @ =ov02_0234F22C + mov r0, #1 + mov r2, #0 + mov r3, #0xc8 + bl ov02_0234FA98 + ldr r1, _0234F224 @ =0x0235ABAC + ldr r1, [r1] + str r0, [r1, #0x808] + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0234F220: .4byte 0x0000080C +_0234F224: .4byte 0x0235ABAC +_0234F228: .4byte ov02_0234F22C + arm_func_end ov02_0234F190 + + arm_func_start ov02_0234F22C +ov02_0234F22C: @ 0x0234F22C + push {r3, lr} + ldr r0, _0234F270 @ =0x0235ABAC + mov r1, #0x800 + ldr r0, [r0] + bl FUN_0207A2DC + ldr r0, _0234F270 @ =0x0235ABAC + mov r1, #0 + ldr r0, [r0] + mov r2, #0x400 + bl FUN_02077E54 + ldr r0, _0234F270 @ =0x0235ABAC + mov r1, #0 + ldr r0, [r0] + mov r2, #0x400 + add r0, r0, #0x400 + bl FUN_02077EA8 + pop {r3, pc} + .align 2, 0 +_0234F270: .4byte 0x0235ABAC + arm_func_end ov02_0234F22C + + arm_func_start ov02_0234F274 +ov02_0234F274: @ 0x0234F274 + push {r3, lr} + ldr r1, _0234F298 @ =0x0235ABAC + mov r0, #1 + ldr r1, [r1] + ldr r1, [r1, #0x808] + bl ov02_0234FB6C + ldr r0, _0234F29C @ =0x0235ABAC + bl ov02_0234E7D8 + pop {r3, pc} + .align 2, 0 +_0234F298: .4byte 0x0235ABAC +_0234F29C: .4byte 0x0235ABAC + arm_func_end ov02_0234F274 + + arm_func_start ov02_0234F2A0 +ov02_0234F2A0: @ 0x0234F2A0 + ldr r1, _0234F2B8 @ =0x0235ABAC + ldr ip, _0234F2BC @ =ov02_0234D808 + ldr r1, [r1] + add r0, r1, r0, lsl #2 + ldr r0, [r0, #0x800] + bx ip + .align 2, 0 +_0234F2B8: .4byte 0x0235ABAC +_0234F2BC: .4byte ov02_0234D808 + arm_func_end ov02_0234F2A0 + + arm_func_start ov02_0234F2C0 +ov02_0234F2C0: @ 0x0234F2C0 + mov r1, r0 + ldr r3, [r1] + ldr r0, _0234F300 @ =0xC1FFFCFF + ldr r2, _0234F304 @ =0x0235ABAC + and r0, r3, r0 + orr r0, r0, #0x200 + str r0, [r1] + ldr r3, [r2] + mov r2, #0 + add r0, r3, #0x400 + cmp r1, r0 + movhs r2, #1 + add r0, r3, r2, lsl #2 + ldr ip, _0234F308 @ =ov02_0234D7B0 + ldr r0, [r0, #0x800] + bx ip + .align 2, 0 +_0234F300: .4byte 0xC1FFFCFF +_0234F304: .4byte 0x0235ABAC +_0234F308: .4byte ov02_0234D7B0 + arm_func_end ov02_0234F2C0 + + arm_func_start ov02_0234F30C +ov02_0234F30C: @ 0x0234F30C + ldr r2, _0234F320 @ =0x0235ABAC + ldr r2, [r2] + add r0, r2, r0, lsl #10 + add r0, r0, r1, lsl #3 + bx lr + .align 2, 0 +_0234F320: .4byte 0x0235ABAC + arm_func_end ov02_0234F30C + + arm_func_start ov02_0234F324 +ov02_0234F324: @ 0x0234F324 + push {r4, r5, r6, r7, r8, sb, sl, lr} + mov r0, #0x340 + mov r1, #4 + bl ov02_0234E7B4 + ldr r4, _0234F3E0 @ =0x0235ABB0 + mov sb, #0 + mov sl, sb + str r0, [r4] + mov r8, #0x20 + mov r7, #0xc + mov r6, #0x300 + mov r5, #0x400 +_0234F354: + ldr r1, [r4] + mov r0, r8 + mov r2, r7 + add r1, r1, sl + bl ov02_0234D754 + ldr r1, [r4] + add r1, r1, sl + str r0, [r1, #0x19c] + bl ov02_0234F0C0 + ldr r1, [r4] + add r1, r1, sl + str r0, [r1, #0x198] + ldr r0, [r4] + add r0, r0, sl + add r0, r0, #0x100 + strh r6, [r0, #0x88] + ldr r0, [r4] + add r0, r0, sl + add r0, r0, #0x100 + strh r5, [r0, #0x94] + ldr r0, [r4] + add r1, r0, sl + ldr r0, [r1, #0x198] + add r1, r1, #0x180 + bl ov02_0234F180 + ldr r0, [r4] + add r1, r0, sl + ldr r0, [r1, #0x198] + add r1, r1, #0x18c + bl ov02_0234F170 + add sb, sb, #1 + cmp sb, #2 + add sl, sl, #0x1a0 + blt _0234F354 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0234F3E0: .4byte 0x0235ABB0 + arm_func_end ov02_0234F324 + + arm_func_start ov02_0234F3E4 +ov02_0234F3E4: @ 0x0234F3E4 + push {r4, r5, r6, r7, r8, sb, sl, lr} + mov r5, r0 + mov r0, #0x1a0 + mul sb, r5, r0 + ldr r0, _0234F558 @ =0x0235ABB0 + mov r6, r1 + ldr r0, [r0] + mov sl, r2 + add r0, r0, sb + ldr r0, [r0, #0x19c] + mov r4, r3 + bl ov02_0234D808 + add r1, r6, #3 + bic r1, r1, #3 + mov r6, r0 + asr r8, r1, #2 + mov r0, #1 + strh r8, [r6, #0xa] + bl FUN_02078C98 + mov r7, r0 + cmp sl, #0 + mov r0, #0x1a0 + beq _0234F4C0 + ldr r1, _0234F558 @ =0x0235ABB0 + ldr r1, [r1] + mla r0, r5, r0, r1 + add r5, r0, #0x180 + add r0, r0, #0x18c + cmp r5, r0 + beq _0234F4A0 + add r0, r1, sb + add r1, r0, #0x18c +_0234F464: + ldr r0, [r5, #4] + ldrh sl, [r5, #8] + ldrh r3, [r5, #0xa] + ldrh r2, [r0, #8] + add sl, sl, r3 + add r3, sl, r8 + cmp r3, r2 + bgt _0234F494 + mov r1, r6 + strh sl, [r6, #8] + bl ov02_0234F140 + b _0234F4A0 +_0234F494: + mov r5, r0 + cmp r0, r1 + bne _0234F464 +_0234F4A0: + ldr r0, _0234F558 @ =0x0235ABB0 + ldr r0, [r0] + add r0, r0, sb + add r0, r0, #0x18c + cmp r5, r0 + bne _0234F540 + bl FUN_0207BC20 + b _0234F540 +_0234F4C0: + ldr r1, _0234F558 @ =0x0235ABB0 + ldr r1, [r1] + mla r0, r5, r0, r1 + add r5, r0, #0x18c + add r0, r0, #0x180 + cmp r5, r0 + beq _0234F524 + add r0, r1, sb + add r0, r0, #0x180 +_0234F4E4: + ldr sl, [r5] + ldrh r3, [r5, #8] + ldrh r2, [sl, #8] + ldrh r1, [sl, #0xa] + sub r3, r3, r8 + add r1, r2, r1 + cmp r3, r1 + blt _0234F518 + mov r0, r5 + mov r1, r6 + strh r3, [r6, #8] + bl ov02_0234F140 + b _0234F524 +_0234F518: + mov r5, sl + cmp sl, r0 + bne _0234F4E4 +_0234F524: + ldr r0, _0234F558 @ =0x0235ABB0 + ldr r0, [r0] + add r0, r0, sb + add r0, r0, #0x180 + cmp r5, r0 + bne _0234F540 + bl FUN_0207BC20 +_0234F540: + ldrh r1, [r6, #8] + mov r0, r7 + str r1, [r4] + bl FUN_02078C68 + mov r0, r6 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0234F558: .4byte 0x0235ABB0 + arm_func_end ov02_0234F3E4 + + arm_func_start ov02_0234F55C +ov02_0234F55C: @ 0x0234F55C + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, #0 + bl ov02_0234F108 + ldr r0, _0234F598 @ =0x0235ABB0 + ldr r1, [r0] + add r0, r1, #0x1a0 + cmp r5, r0 + movhs r4, #1 + mov r0, #0x1a0 + mla r0, r4, r0, r1 + ldr r0, [r0, #0x19c] + mov r1, r5 + bl ov02_0234D7B0 + pop {r3, r4, r5, pc} + .align 2, 0 +_0234F598: .4byte 0x0235ABB0 + arm_func_end ov02_0234F55C + + arm_func_start ov02_0234F59C +ov02_0234F59C: @ 0x0234F59C + cmp r1, #0 + mov r3, #0 + ble _0234F5C0 +_0234F5A8: + ldrb r2, [r0, r3] + cmp r2, #0 + beq _0234F5C0 + add r3, r3, #1 + cmp r3, r1 + blt _0234F5A8 +_0234F5C0: + mov r0, r3 + bx lr + arm_func_end ov02_0234F59C + + arm_func_start ov02_0234F5C8 +ov02_0234F5C8: @ 0x0234F5C8 + push {r3, lr} + sub ip, r2, #1 + cmp ip, #0 + mov lr, #0 + ble _0234F5FC +_0234F5DC: + ldrb r3, [r1, lr] + cmp r3, #0 + beq _0234F5FC + lsl r2, lr, #1 + add lr, lr, #1 + strh r3, [r0, r2] + cmp lr, ip + blt _0234F5DC +_0234F5FC: + lsl r1, lr, #1 + mov r2, #0 + strh r2, [r0, r1] + mov r0, lr + pop {r3, pc} + arm_func_end ov02_0234F5C8 + + arm_func_start ov02_0234F610 +ov02_0234F610: @ 0x0234F610 + push {r3, lr} + bl FUN_0207729C + ldr r1, _0234F6C0 @ =0x0235ABB4 + str r0, [r1] + bl FUN_020772B0 + ldr r1, _0234F6C0 @ =0x0235ABB4 + str r0, [r1, #4] + bl FUN_020772C4 + ldr r1, _0234F6C0 @ =0x0235ABB4 + str r0, [r1, #8] + bl FUN_020772E8 + ldr r1, _0234F6C0 @ =0x0235ABB4 + str r0, [r1, #0xc] + bl FUN_0207730C + ldr r1, _0234F6C0 @ =0x0235ABB4 + str r0, [r1, #0x10] + bl FUN_02077320 + ldr r1, _0234F6C0 @ =0x0235ABB4 + str r0, [r1, #0x14] + bl FUN_02077334 + ldr r1, _0234F6C0 @ =0x0235ABB4 + str r0, [r1, #0x18] + bl FUN_02077370 + ldr r1, _0234F6C0 @ =0x0235ABB4 + str r0, [r1, #0x1c] + bl FUN_02077384 + ldr r1, _0234F6C0 @ =0x0235ABB4 + str r0, [r1, #0x20] + bl FUN_02077398 + ldr r1, _0234F6C0 @ =0x0235ABB4 + str r0, [r1, #0x24] + bl FUN_020773C0 + ldr r1, _0234F6C0 @ =0x0235ABB4 + str r0, [r1, #0x28] + bl FUN_02077348 + ldr r1, _0234F6C0 @ =0x0235ABB4 + str r0, [r1, #0x2c] + bl FUN_0207735C + ldr r1, _0234F6C0 @ =0x0235ABB4 + str r0, [r1, #0x30] + ldr r0, [r1, #0x2c] + bl FUN_02076DE4 + bl ov02_0234F7CC + pop {r3, pc} + .align 2, 0 +_0234F6C0: .4byte 0x0235ABB4 + arm_func_end ov02_0234F610 + + arm_func_start ov02_0234F6C4 +ov02_0234F6C4: @ 0x0234F6C4 + push {r4, lr} + bl FUN_0207729C + bl FUN_020772B0 + bl FUN_02077370 + bl FUN_02077384 + bl ov02_0234F7CC + ldr r0, _0234F7C0 @ =0x0235ABB4 + ldr r0, [r0] + bl FUN_02076464 + ldr r0, _0234F7C0 @ =0x0235ABB4 + ldr r0, [r0, #4] + bl FUN_020766F4 + ldr r0, _0234F7C0 @ =0x0235ABB4 + ldr r0, [r0, #8] + bl FUN_02076844 + ldr r0, _0234F7C0 @ =0x0235ABB4 + ldr r0, [r0, #0xc] + bl FUN_02076944 + ldr r0, _0234F7C0 @ =0x0235ABB4 + ldr r0, [r0, #0x10] + bl FUN_020769F0 + ldr r0, _0234F7C0 @ =0x0235ABB4 + ldr r0, [r0, #0x14] + bl FUN_02076BC8 + ldr r0, _0234F7C0 @ =0x0235ABB4 + ldr r0, [r0, #0x18] + bl FUN_02076CB0 + ldr r0, _0234F7C0 @ =0x0235ABB4 + ldr r0, [r0, #0x1c] + bl FUN_02076EB0 + ldr r0, _0234F7C0 @ =0x0235ABB4 + ldr r0, [r0, #0x20] + bl FUN_02076F58 + ldr r0, _0234F7C0 @ =0x0235ABB4 + ldr r0, [r0, #0x24] + bl FUN_02076FC8 + ldr r0, _0234F7C0 @ =0x0235ABB4 + ldr r0, [r0, #0x28] + bl FUN_02077048 + ldr r0, _0234F7C0 @ =0x0235ABB4 + ldr r0, [r0, #0x30] + bl FUN_02076E90 + mov r3, #0 + ldr r2, _0234F7C4 @ =0x04000050 + ldr r0, _0234F7C8 @ =0x04001014 + strh r3, [r2] + add r1, r2, #0x1000 + strh r3, [r1] + str r3, [r2, #-0x40] + str r3, [r2, #-0x3c] + str r3, [r2, #-0x38] + str r3, [r2, #-0x34] + str r3, [r2, #0xfc0] + str r3, [r0] + str r3, [r0, #4] + str r3, [r0, #8] + bl FUN_0207B7E4 + mov r4, r0 + mov r0, #1 + bl FUN_02082420 + mov r0, r4 + bl FUN_0207B7F8 + pop {r4, pc} + .align 2, 0 +_0234F7C0: .4byte 0x0235ABB4 +_0234F7C4: .4byte 0x04000050 +_0234F7C8: .4byte 0x04001014 + arm_func_end ov02_0234F6C4 + + arm_func_start ov02_0234F7CC +ov02_0234F7CC: @ 0x0234F7CC + push {r3, lr} + ldr r0, _0234F840 @ =0x000001F3 + bl FUN_02076E90 + mov r0, #0 + mov r1, #0x6800000 + mov r2, #0x40000 + bl FUN_0207C358 + ldr r1, _0234F844 @ =0x06880000 + mov r0, #0 + mov r2, #0x24000 + bl FUN_0207C358 + bl FUN_0207735C + mov r0, #0x200 + mov r1, #0x7000000 + mov r2, #0x400 + bl FUN_0207C358 + mov r0, #0 + mov r1, #0x5000000 + mov r2, #0x400 + bl FUN_0207C358 + mov r0, #0x200 + ldr r1, _0234F848 @ =0x07000400 + mov r2, #0x400 + bl FUN_0207C358 + mov r0, #0 + ldr r1, _0234F84C @ =0x05000400 + mov r2, #0x400 + bl FUN_0207C358 + pop {r3, pc} + .align 2, 0 +_0234F840: .4byte 0x000001F3 +_0234F844: .4byte 0x06880000 +_0234F848: .4byte 0x07000400 +_0234F84C: .4byte 0x05000400 + arm_func_end ov02_0234F7CC + + arm_func_start ov02_0234F850 +ov02_0234F850: @ 0x0234F850 + push {r3, lr} + add r0, sp, #0 + bl FUN_02082514 + cmp r0, #0 + popne {r3, pc} + ldr r0, [sp] + cmp r0, #0xf + popeq {r3, pc} + mov r0, #0xf + bl FUN_020824A4 + pop {r3, pc} + arm_func_end ov02_0234F850 + + arm_func_start ov02_0234F87C +ov02_0234F87C: @ 0x0234F87C + ldr ip, _0234F888 @ =FUN_020824A4 + mov r0, #1 + bx ip + .align 2, 0 +_0234F888: .4byte FUN_020824A4 + arm_func_end ov02_0234F87C + + arm_func_start ov02_0234F88C +ov02_0234F88C: @ 0x0234F88C + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov r0, #0x80 + mov r1, #4 + bl ov02_0234E7B4 + mov r8, #0 + ldr r4, _0234F998 @ =0x0235ABE8 + ldr sb, _0234F99C @ =0x02352F3C + mov sl, r8 + str r0, [r4] + mov r7, r8 + mov r6, #0xff + mov r5, #1 + mov fp, #0x14 +_0234F8C0: + ldr r0, [r4] + ldrb r2, [sb] + add r0, r0, r8, lsl #6 + mov r1, #4 + str r2, [r0, #0x34] + ldrb r2, [sb] + mul r0, r2, fp + bl ov02_0234E7B4 + ldr r1, [r4] + mov r2, #0x14 + add r1, r1, r8, lsl #6 + str r0, [r1, #0x3c] + ldr r1, [r4] + ldrb r0, [sb] + add r1, r1, r8, lsl #6 + ldr r1, [r1, #0x3c] + bl ov02_0234D754 + ldr r1, [r4] + str r0, [r1, r8, lsl #6] + ldrb r0, [sb], #1 + bl ov02_0234D720 + ldr r1, [r4] + add r1, r1, r8, lsl #6 + str r0, [r1, #4] + bl ov02_0234F0C0 + ldr r1, [r4] + add r1, r1, r8, lsl #6 + str r0, [r1, #8] + ldr r0, [r4] + add r0, r0, r8, lsl #6 + strb r7, [r0, #0x1c] + ldr r0, [r4] + add r0, r0, r8, lsl #6 + strb r6, [r0, #0x30] + ldr r1, [r4] + add r0, r1, r8, lsl #6 + add r1, r1, sl + ldr r0, [r0, #8] + add r1, r1, #0xc + bl ov02_0234F180 + ldr r1, [r4] + add r0, r1, r8, lsl #6 + add r1, r1, sl + ldr r0, [r0, #8] + add r1, r1, #0x20 + bl ov02_0234F170 + ldr r0, [r4] + add sl, sl, #0x40 + add r0, r0, r8, lsl #6 + add r8, r8, #1 + strb r5, [r0, #0x38] + cmp r8, #2 + blt _0234F8C0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0234F998: .4byte 0x0235ABE8 +_0234F99C: .4byte 0x02352F3C + arm_func_end ov02_0234F88C + + arm_func_start ov02_0234F9A0 +ov02_0234F9A0: @ 0x0234F9A0 + push {r3, r4, r5, lr} + ldr r4, _0234F9E0 @ =0x0235ABE8 + mov r5, #0 +_0234F9AC: + ldr r0, [r4] + add r0, r0, r5, lsl #6 + ldr r0, [r0, #8] + bl ov02_0234F0EC + ldr r0, [r4] + ldr r0, [r0, r5, lsl #6] + bl ov02_0234D794 + add r5, r5, #1 + cmp r5, #2 + blt _0234F9AC + ldr r0, _0234F9E4 @ =0x0235ABE8 + bl ov02_0234E7D8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0234F9E0: .4byte 0x0235ABE8 +_0234F9E4: .4byte 0x0235ABE8 + arm_func_end ov02_0234F9A0 + + arm_func_start ov02_0234F9E8 +ov02_0234F9E8: @ 0x0234F9E8 + push {r3, r4, r5, r6, r7, lr} + ldr r5, _0234FA94 @ =0x0235ABE8 + mov r6, r0 + ldr r0, [r5] + add r2, r0, r6, lsl #6 + ldrb r1, [r2, #0x38] + cmp r1, #0 + popeq {r3, r4, r5, r6, r7, pc} + ldr r4, [r2, #0x10] + add r1, r2, #0x20 + cmp r4, r1 + beq _0234FA40 +_0234FA18: + ldr r1, [r4, #0xc] + ldr r2, [r4, #8] + mov r0, r4 + blx r2 + ldr r0, [r5] + ldr r4, [r4, #4] + add r1, r0, r6, lsl #6 + add r1, r1, #0x20 + cmp r4, r1 + bne _0234FA18 +_0234FA40: + add r1, r0, r6, lsl #6 + ldr r1, [r1, #0x34] + lsl r4, r6, #6 + mov r5, #0 + cmp r1, #0 + pople {r3, r4, r5, r6, r7, pc} + ldr r7, _0234FA94 @ =0x0235ABE8 +_0234FA5C: + add r0, r4, r0 + ldr r0, [r0, #4] + bl ov02_0234D808 + movs r1, r0 + popeq {r3, r4, r5, r6, r7, pc} + mov r0, r6 + bl ov02_0234FB6C + ldr r0, [r7] + add r5, r5, #1 + add r1, r4, r0 + ldr r1, [r1, #0x34] + cmp r5, r1 + blt _0234FA5C + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0234FA94: .4byte 0x0235ABE8 + arm_func_end ov02_0234F9E8 + + arm_func_start ov02_0234FA98 +ov02_0234FA98: @ 0x0234FA98 + push {r3, lr} + mov ip, #0 + str ip, [sp] + bl ov02_0234FAAC + pop {r3, pc} + arm_func_end ov02_0234FA98 + + arm_func_start ov02_0234FAAC +ov02_0234FAAC: @ 0x0234FAAC + push {r4, r5, r6, r7, r8, lr} + ldr r4, _0234FB34 @ =0x0235ABE8 + mov r7, r0 + ldr r0, [r4] + mov r8, r1 + ldr r0, [r0, r7, lsl #6] + mov r5, r2 + mov r6, r3 + bl ov02_0234D808 + mov r4, r0 + str r8, [r4, #8] + str r5, [r4, #0xc] + ldrb r1, [sp, #0x18] + strb r6, [r4, #0x10] + mov r0, #1 + strb r1, [r4, #0x11] + bl FUN_02078C98 + ldr r1, _0234FB34 @ =0x0235ABE8 + mov r5, r0 + ldr r0, [r1] + add r0, r0, r7, lsl #6 + ldr r0, [r0, #0x10] +_0234FB04: + ldrb r1, [r0, #0x10] + cmp r6, r1 + bhs _0234FB1C + mov r1, r4 + bl ov02_0234F140 + b _0234FB24 +_0234FB1C: + ldr r0, [r0, #4] + b _0234FB04 +_0234FB24: + mov r0, r5 + bl FUN_02078C68 + mov r0, r4 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0234FB34: .4byte 0x0235ABE8 + arm_func_end ov02_0234FAAC + + arm_func_start ov02_0234FB38 +ov02_0234FB38: @ 0x0234FB38 + str r1, [r0, #8] + bx lr + arm_func_end ov02_0234FB38 + + arm_func_start ov02_0234FB40 +ov02_0234FB40: @ 0x0234FB40 + ldr r2, _0234FB58 @ =0x0235ABE8 + ldr ip, _0234FB5C @ =ov02_0234D7B0 + ldr r2, [r2] + add r0, r2, r0, lsl #6 + ldr r0, [r0, #4] + bx ip + .align 2, 0 +_0234FB58: .4byte 0x0235ABE8 +_0234FB5C: .4byte ov02_0234D7B0 + arm_func_end ov02_0234FB40 + + arm_func_start ov02_0234FB6C +ov02_0234FB6C: @ 0x0234FB60 + ldr ip, _0234FB68 @ =ov02_0234FB6C + bx ip + .align 2, 0 +_0234FB68: .4byte ov02_0234FB6C + arm_func_end ov02_0234FB6C + + arm_func_start ov02_0234FB6C +ov02_0234FB6C: @ 0x0234FB6C + push {r3, r4, r5, lr} + mov r4, r1 + ldrb r1, [r4, #0x11] + mov r5, r0 + cmp r1, #0 + beq _0234FB8C + add r0, r4, #0xc + bl ov02_0234E7D8 +_0234FB8C: + mov r0, r4 + bl ov02_0234F108 + ldr r0, _0234FBAC @ =0x0235ABE8 + mov r1, r4 + ldr r0, [r0] + ldr r0, [r0, r5, lsl #6] + bl ov02_0234D7B0 + pop {r3, r4, r5, pc} + .align 2, 0 +_0234FBAC: .4byte 0x0235ABE8 + arm_func_end ov02_0234FB6C + + arm_func_start ov02_0234FBB0 +ov02_0234FBB0: @ 0x0234FBB0 + ldr r2, _0234FBC4 @ =0x0235ABE8 + ldr r2, [r2] + add r0, r2, r0, lsl #6 + strb r1, [r0, #0x38] + bx lr + .align 2, 0 +_0234FBC4: .4byte 0x0235ABE8 + @ 0x0234FBC8 diff --git a/asm/overlay_03.s b/asm/overlay_03.s index d39633c9..41ef59e9 100644 --- a/asm/overlay_03.s +++ b/asm/overlay_03.s @@ -3,3 +3,11128 @@ .include "global.inc" .text + + arm_func_start ov03_0233CA80 +ov03_0233CA80: @ 0x0233CA80 + ldr ip, _0233CA90 @ =FUN_02003250 + ldr r0, _0233CA94 @ =0x02346BE0 + mov r1, #0x10 + bx ip + .align 2, 0 +_0233CA90: .4byte FUN_02003250 +_0233CA94: .4byte 0x02346BE0 + arm_func_end ov03_0233CA80 + + arm_func_start ov03_0233CA98 +ov03_0233CA98: @ 0x0233CA98 + ldr r1, _0233CAA4 @ =0x02346BE0 + str r0, [r1] + bx lr + .align 2, 0 +_0233CAA4: .4byte 0x02346BE0 + arm_func_end ov03_0233CA98 + + arm_func_start ov03_0233CAA8 +ov03_0233CAA8: @ 0x0233CAA8 + ldr r1, _0233CAB4 @ =0x02346BE0 + str r0, [r1, #4] + bx lr + .align 2, 0 +_0233CAB4: .4byte 0x02346BE0 + arm_func_end ov03_0233CAA8 + + arm_func_start ov03_0233CAB8 +ov03_0233CAB8: @ 0x0233CAB8 + ldr r0, _0233CAC4 @ =0x02346BE0 + ldr r0, [r0, #4] + bx lr + .align 2, 0 +_0233CAC4: .4byte 0x02346BE0 + arm_func_end ov03_0233CAB8 + + arm_func_start ov03_0233CAC8 +ov03_0233CAC8: @ 0x0233CAC8 + ldr r1, _0233CAD4 @ =0x02346BE0 + str r0, [r1, #8] + bx lr + .align 2, 0 +_0233CAD4: .4byte 0x02346BE0 + arm_func_end ov03_0233CAC8 + + arm_func_start ov03_0233CAD8 +ov03_0233CAD8: @ 0x0233CAD8 + ldr r0, _0233CAE4 @ =0x02346BE0 + ldr r0, [r0, #8] + bx lr + .align 2, 0 +_0233CAE4: .4byte 0x02346BE0 + arm_func_end ov03_0233CAD8 + + arm_func_start ov03_0233CAE8 +ov03_0233CAE8: @ 0x0233CAE8 + ldr r1, _0233CAF4 @ =0x02346BE0 + str r0, [r1, #0xc] + bx lr + .align 2, 0 +_0233CAF4: .4byte 0x02346BE0 + arm_func_end ov03_0233CAE8 + + arm_func_start ov03_0233CAF8 +ov03_0233CAF8: @ 0x0233CAF8 + ldr r0, _0233CB04 @ =0x02346BE0 + ldr r0, [r0, #0xc] + bx lr + .align 2, 0 +_0233CB04: .4byte 0x02346BE0 + arm_func_end ov03_0233CAF8 + + arm_func_start ov03_0233CB08 +ov03_0233CB08: @ 0x0233CB08 + push {r3, lr} + mov r0, #0xb8 + arm_func_end ov03_0233CB08 + + arm_func_start ov03_0233CB10 +ov03_0233CB10: @ 0x0233CB10 + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233CB90 @ =0x02346BF0 + mov r1, #0xb8 + str r0, [r2] + bl FUN_02003250 + mov r2, #0 + ldr r0, _0233CB90 @ =0x02346BF0 + mov ip, r2 +_0233CB34: + ldr r1, [r0] + add r1, r1, r2 + arm_func_end ov03_0233CB10 + + arm_func_start ov03_0233CB3C +ov03_0233CB3C: @ 0x0233CB3C + add r2, r2, #1 + strb ip, [r1, #0x14] + cmp r2, #6 + blt _0233CB34 + ldr r0, _0233CB90 @ =0x02346BF0 + mov r1, #0x10 + ldr r3, [r0] + add r2, r3, #0x14 + str r2, [r3, #0x7c] + ldr r2, [r0] + str ip, [r2, #0x10] + ldr r0, [r0] + bl FUN_02003250 + ldr r0, _0233CB90 @ =0x02346BF0 + mov r1, #0 + str r1, [r0, #4] + bl FUN_02046D20 + mov r0, #0 + bl FUN_023375B0 + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0233CB90: .4byte 0x02346BF0 + arm_func_end ov03_0233CB3C + + arm_func_start ov03_0233CB94 +ov03_0233CB94: @ 0x0233CB94 + push {r4, lr} + sub sp, sp, #8 + ldr r0, _0233CF74 @ =0x02346BF0 + ldr r1, _0233CF78 @ =0x00002001 + ldr r0, [r0] + ldr r2, [r0, #0x10] + cmp r2, r1 + bgt _0233CC0C + bge _0233CE68 + cmp r2, #0x1000 + bgt _0233CBEC + bge _0233CDE0 + cmp r2, #2 + bgt _0233CF68 + cmp r2, #0 + blt _0233CF68 + beq _0233CC58 + cmp r2, #1 + beq _0233CD18 + cmp r2, #2 + beq _0233CDC4 + b _0233CF68 +_0233CBEC: + sub r0, r1, #0x1000 + cmp r2, r0 + bgt _0233CC00 + beq _0233CE00 + b _0233CF68 +_0233CC00: + cmp r2, #0x2000 + beq _0233CE48 + b _0233CF68 +_0233CC0C: + cmp r2, #0x4000 + bgt _0233CC38 + bge _0233CF0C + cmp r2, #0x3000 + bgt _0233CC28 + beq _0233CEB0 + b _0233CF68 +_0233CC28: + add r0, r1, #0x1000 + cmp r2, r0 + beq _0233CED0 + b _0233CF68 +_0233CC38: + add r0, r1, #0x2000 + cmp r2, r0 + bgt _0233CC4C + beq _0233CF30 + b _0233CF68 +_0233CC4C: + cmp r2, r1, lsl #1 + beq _0233CF48 + b _0233CF68 +_0233CC58: + bl FUN_0232E94C + cmp r0, #0 + bne _0233CF68 + bl FUN_0232F3F4 + bl ov03_0233CA80 + mov r0, #1 + mov r1, #0 + bl FUN_0205B97C + cmp r0, #0 + bne _0233CCA0 + mov r0, #5 + mov r1, #0 + bl FUN_0205B97C + cmp r0, #0 + ldreq r0, _0233CF74 @ =0x02346BF0 + moveq r1, #3 + ldreq r0, [r0] + strbeq r1, [r0, #0x15] +_0233CCA0: + mov r0, #0x12 + bl FUN_02067584 + cmp r0, #0 + ldrne r0, _0233CF74 @ =0x02346BF0 + movne r1, #3 + ldreq r0, _0233CF74 @ =0x02346BF0 + moveq r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x16] + mov r0, #0xb + bl FUN_023375C0 + ldr r2, _0233CF7C @ =0x02346A38 + ldr r1, _0233CF74 @ =0x02346BF0 + ldr r2, [r2, r0, lsl #3] + ldr r0, [r1] + ldr r3, _0233CF80 @ =0x02346A34 + str r2, [r0, #0x1c] + ldr r2, _0233CF84 @ =0x00003832 + str r3, [sp] + str r2, [sp, #4] + ldr r3, [r1] + mov r0, #0 + ldr r2, _0233CF88 @ =0x00000233 + mov r1, r0 + add r3, r3, #0x1c + bl FUN_020663DC + ldr r0, _0233CF74 @ =0x02346BF0 + mov r1, #1 + ldr r0, [r0] + str r1, [r0, #0x10] +_0233CD18: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0xb + bl FUN_023375D0 + cmp r4, #1 + bne _0233CD58 + ldr r0, _0233CF74 @ =0x02346BF0 + mov r2, #0x1000 + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x10] + bl ov03_0233CA98 + b _0233CF68 +_0233CD58: + cmp r4, #2 + bne _0233CD7C + ldr r0, _0233CF74 @ =0x02346BF0 + mov r2, #0x2000 + ldr r1, [r0] + mov r0, #1 + str r2, [r1, #0x10] + bl ov03_0233CA98 + b _0233CF68 +_0233CD7C: + cmp r4, #3 + ldreq r0, _0233CF74 @ =0x02346BF0 + moveq r1, #0x3000 + ldreq r0, [r0] + streq r1, [r0, #0x10] + beq _0233CF68 + cmp r4, #4 + ldreq r0, _0233CF74 @ =0x02346BF0 + moveq r1, #0x4000 + ldreq r0, [r0] + streq r1, [r0, #0x10] + beq _0233CF68 + cmp r4, #0x1f + ldreq r0, _0233CF74 @ =0x02346BF0 + moveq r1, #2 + ldreq r0, [r0] + streq r1, [r0, #0x10] + b _0233CF68 +_0233CDC4: + bl FUN_0232E94C + arm_func_end ov03_0233CB94 + + arm_func_start ov03_0233CDC8 +ov03_0233CDC8: @ 0x0233CDC8 + cmp r0, #0 + bne _0233CF68 + mov r0, #0xf + bl FUN_023310B8 + arm_func_end ov03_0233CDC8 + + arm_func_start ov03_0233CDD8 +ov03_0233CDD8: @ 0x0233CDD8 + mov r0, #3 + b _0233CF6C +_0233CDE0: + bl FUN_0232E94C + arm_func_end ov03_0233CDD8 + + arm_func_start ov03_0233CDE4 +ov03_0233CDE4: @ 0x0233CDE4 + cmp r0, #0 + bne _0233CF68 + bl ov03_0233D674 + ldr r0, _0233CF74 @ =0x02346BF0 + ldr r1, _0233CF8C @ =0x00001001 + ldr r0, [r0] + str r1, [r0, #0x10] +_0233CE00: + bl FUN_02003BFC + bl ov03_0233D6E4 + cmp r0, #1 + bne _0233CE30 + bl ov03_0233D6B8 + bl ov03_0233CAF8 + bl FUN_023375B0 + ldr r0, _0233CF74 @ =0x02346BF0 + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #0x10] + b _0233CF68 +_0233CE30: + cmp r0, #2 + bne _0233CF68 + bl ov03_0233D6B8 + bl FUN_0204A018 + mov r0, #3 + b _0233CF6C +_0233CE48: + bl FUN_0232E94C + cmp r0, #0 + bne _0233CF68 + bl ov03_0233D018 + ldr r0, _0233CF74 @ =0x02346BF0 + ldr r1, _0233CF78 @ =0x00002001 + ldr r0, [r0] + str r1, [r0, #0x10] +_0233CE68: + bl FUN_02003BFC + bl ov03_0233D088 + cmp r0, #1 + bne _0233CE98 + bl ov03_0233D05C + bl ov03_0233CAF8 + bl FUN_023375B0 + ldr r0, _0233CF74 @ =0x02346BF0 + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #0x10] + b _0233CF68 +_0233CE98: + cmp r0, #2 + bne _0233CF68 + bl ov03_0233D05C + bl FUN_0204A018 + mov r0, #3 + b _0233CF6C +_0233CEB0: + bl FUN_0232E94C + cmp r0, #0 + bne _0233CF68 + bl ov03_0234442C + ldr r0, _0233CF74 @ =0x02346BF0 + ldr r1, _0233CF90 @ =0x00003001 + ldr r0, [r0] + str r1, [r0, #0x10] +_0233CED0: + bl ov03_02344464 + cmp r0, #1 + bne _0233CEF4 + bl ov03_02344700 + ldr r0, _0233CF74 @ =0x02346BF0 + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #0x10] + b _0233CF68 +_0233CEF4: + cmp r0, #2 + bne _0233CF68 + bl ov03_02344700 + bl FUN_0204A018 + mov r0, #3 + b _0233CF6C +_0233CF0C: + bl FUN_0232E94C + cmp r0, #0 + bne _0233CF68 + ldr r0, _0233CF74 @ =0x02346BF0 + ldr r1, _0233CF94 @ =0x00004001 + ldr r0, [r0] + str r1, [r0, #0x10] + bl FUN_02046D20 + b _0233CF68 +_0233CF30: + bl ov03_0234472C + ldr r0, _0233CF74 @ =0x02346BF0 + ldr r1, _0233CF98 @ =0x00004002 + ldr r0, [r0] + str r1, [r0, #0x10] + b _0233CF68 +_0233CF48: + bl ov03_023447B8 + cmp r0, #0 + beq _0233CF68 + bl ov03_0234478C + ldr r0, _0233CF74 @ =0x02346BF0 + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #0x10] +_0233CF68: + mov r0, #1 +_0233CF6C: + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_0233CF74: .4byte 0x02346BF0 +_0233CF78: .4byte 0x00002001 +_0233CF7C: .4byte 0x02346A38 +_0233CF80: .4byte 0x02346A34 +_0233CF84: .4byte 0x00003832 +_0233CF88: .4byte 0x00000233 +_0233CF8C: .4byte 0x00001001 +_0233CF90: .4byte 0x00003001 +_0233CF94: .4byte 0x00004001 +_0233CF98: .4byte 0x00004002 + arm_func_end ov03_0233CDE4 + + arm_func_start ov03_0233CF9C +ov03_0233CF9C: @ 0x0233CF9C + push {r3, lr} + ldr r0, _0233CFD0 @ =0x02346BF0 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02046D20 + ldr r0, _0233CFD0 @ =0x02346BF0 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0233CFD0 @ =0x02346BF0 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233CFD0: .4byte 0x02346BF0 + arm_func_end ov03_0233CF9C + + arm_func_start ov03_0233CFD4 +ov03_0233CFD4: @ 0x0233CFD4 + push {r3, lr} + bl FUN_0204E6A4 + cmp r0, #0 + bne _0233D010 + bl FUN_0204E40C + cmp r0, #0 + bne _0233D010 + bl FUN_0204E210 + mvn r1, #0 + cmp r0, r1 + bne _0233D010 + bl FUN_0204E644 + cmp r0, #0 + movne r0, #1 + popne {r3, pc} +_0233D010: + mov r0, #0 + pop {r3, pc} + arm_func_end ov03_0233CFD4 + + arm_func_start ov03_0233D018 +ov03_0233D018: @ 0x0233D018 + push {r3, lr} + mov r0, #0xc4 + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233D058 @ =0x02346BB8 + mov r1, #0xc4 + str r0, [r2] + bl FUN_02003250 + ldr r0, _0233D058 @ =0x02346BB8 + mov r2, #0 + ldr r1, [r0] + str r2, [r1] + ldr r1, [r0] + add r0, r1, #0x20 + str r0, [r1, #0x84] + pop {r3, pc} + .align 2, 0 +_0233D058: .4byte 0x02346BB8 + arm_func_end ov03_0233D018 + + arm_func_start ov03_0233D05C +ov03_0233D05C: @ 0x0233D05C + push {r3, lr} + ldr r0, _0233D084 @ =0x02346BB8 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0233D084 @ =0x02346BB8 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233D084: .4byte 0x02346BB8 + arm_func_end ov03_0233D05C + + arm_func_start ov03_0233D088 +ov03_0233D088: @ 0x0233D088 + push {r3, r4, r5, lr} + sub sp, sp, #8 + ldr r0, _0233D630 @ =0x02346BB8 + ldr r1, [r0] + ldr r2, [r1] + cmp r2, #0x300 + bgt _0233D104 + bge _0233D43C + ldr r0, _0233D634 @ =0x00000101 + cmp r2, r0 + bgt _0233D0E4 + bge _0233D39C + cmp r2, #1 + bgt _0233D0D8 + cmp r2, #0 + blt _0233D624 + beq _0233D160 + cmp r2, #1 + beq _0233D204 + b _0233D624 +_0233D0D8: + cmp r2, #0x100 + beq _0233D328 + b _0233D624 +_0233D0E4: + cmp r2, #0x200 + bgt _0233D0F4 + beq _0233D29C + b _0233D624 +_0233D0F4: + add r0, r0, #0x100 + cmp r2, r0 + beq _0233D2E4 + b _0233D624 +_0233D104: + ldr r1, _0233D638 @ =0x00000402 + cmp r2, r1 + bgt _0233D134 + bge _0233D510 + ldr r0, _0233D63C @ =0x00000301 + cmp r2, r0 + bgt _0233D128 + beq _0233D480 + b _0233D624 +_0233D128: + cmp r2, #0x400 + beq _0233D4CC + b _0233D624 +_0233D134: + add r0, r1, #0xff + cmp r2, r0 + bgt _0233D150 + bge _0233D5B8 + cmp r2, #0x500 + beq _0233D574 + b _0233D624 +_0233D150: + ldr r0, _0233D640 @ =0x0000FFFF + cmp r2, r0 + beq _0233D61C + b _0233D624 +_0233D160: + add r0, r1, #0x20 + mov r1, #3 + bl FUN_02003250 + bl FUN_0204E464 + cmp r0, #0 + bne _0233D190 + ldr r0, _0233D630 @ =0x02346BB8 + mov r2, #3 + ldr r1, [r0] + strb r2, [r1, #0x20] + ldr r0, [r0] + strb r2, [r0, #0x21] +_0233D190: + mov r0, #5 + mov r1, #0 + bl FUN_0205B97C + cmp r0, #0 + ldreq r0, _0233D630 @ =0x02346BB8 + moveq r1, #3 + ldreq r0, [r0] + strbeq r1, [r0, #0x22] + mov r0, #0xe + bl FUN_023375C0 + ldr r2, _0233D644 @ =0x02346930 + ldr r1, _0233D630 @ =0x02346BB8 + ldr r2, [r2, r0, lsl #3] + ldr r0, [r1] + ldr r3, _0233D648 @ =0x0234692C + str r2, [r0, #0x24] + ldr r2, _0233D64C @ =0x0000383C + str r3, [sp] + str r2, [sp, #4] + ldr r3, [r1] + mov r0, #0 + ldr r2, _0233D650 @ =0x00000233 + mov r1, r0 + add r3, r3, #0x24 + bl FUN_020663DC + ldr r0, _0233D630 @ =0x02346BB8 + mov r1, #1 + ldr r0, [r0] + str r1, [r0] +_0233D204: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0xe + bl FUN_023375D0 + cmp r4, #9 + bne _0233D244 + mov r0, #0 + bl ov03_0233CAA8 + ldr r0, _0233D630 @ =0x02346BB8 + mov r1, #0x200 + ldr r0, [r0] + str r1, [r0] + b _0233D624 +_0233D244: + cmp r4, #0xa + bne _0233D268 + mov r0, #3 + bl ov03_0233CAA8 + ldr r0, _0233D630 @ =0x02346BB8 + mov r1, #0x100 + ldr r0, [r0] + str r1, [r0] + b _0233D624 +_0233D268: + cmp r4, #0xb + bne _0233D28C + mov r0, #4 + bl ov03_0233CAA8 + ldr r0, _0233D630 @ =0x02346BB8 + mov r1, #0x200 + ldr r0, [r0] + str r1, [r0] + b _0233D624 +_0233D28C: + cmp r4, #0x1f + bne _0233D624 + mov r0, #1 + b _0233D628 +_0233D29C: + bl ov03_0233CAB8 + cmp r0, #0 + mov r3, #0x100 + bne _0233D2C8 + ldr r0, _0233D630 @ =0x02346BB8 + mov r1, #0 + ldr r2, [r0] + str r3, [r2] + ldr r0, [r0] + strb r1, [r0, #0xbc] + b _0233D624 +_0233D2C8: + ldr r0, _0233D630 @ =0x02346BB8 + mov r1, #1 + ldr r2, [r0] + str r3, [r2] + ldr r0, [r0] + strb r1, [r0, #0xbc] + b _0233D624 +_0233D2E4: + bl FUN_02066A44 + movs r5, r0 + beq _0233D624 + bl FUN_020674CC + mov r4, r0 + bl FUN_02067664 + cmp r5, #1 + bne _0233D320 + ldr r0, _0233D630 @ =0x02346BB8 + mov r2, #0x100 + ldr r1, [r0] + str r2, [r1] + ldr r0, [r0] + strb r4, [r0, #0xbc] + b _0233D624 +_0233D320: + mov r0, #1 + b _0233D628 +_0233D328: + mov r4, #0 + bl ov03_0233CAB8 + cmp r0, #0 + ldreq r4, _0233D654 @ =0x00003849 + beq _0233D358 + bl ov03_0233CAB8 + cmp r0, #3 + ldreq r4, _0233D658 @ =0x0000384C + beq _0233D358 + bl ov03_0233CAB8 + cmp r0, #4 + ldreq r4, _0233D65C @ =0x0000384D +_0233D358: + mov r0, #0xf + bl FUN_023375C0 + ldr r1, _0233D660 @ =0x02346958 + ldr r3, _0233D664 @ =0x02346B20 + ldr r1, [r1, r0, lsl #3] + ldr r0, _0233D668 @ =0x02346954 + str r1, [r3] + str r0, [sp] + ldr r0, _0233D66C @ =0x0234673C + ldr r2, _0233D650 @ =0x00000233 + mov r1, #0 + str r4, [sp, #4] + bl FUN_020663DC + ldr r0, _0233D630 @ =0x02346BB8 + ldr r1, _0233D634 @ =0x00000101 + ldr r0, [r0] + str r1, [r0] +_0233D39C: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0xf + bl FUN_023375D0 + cmp r4, #0xc + bne _0233D3DC + mov r0, #0 + bl ov03_0233CAC8 + ldr r0, _0233D630 @ =0x02346BB8 + mov r1, #0x300 + ldr r0, [r0] + str r1, [r0] + b _0233D624 +_0233D3DC: + cmp r4, #0xd + bne _0233D400 + mov r0, #1 + bl ov03_0233CAC8 + ldr r0, _0233D630 @ =0x02346BB8 + mov r1, #0x400 + ldr r0, [r0] + str r1, [r0] + b _0233D624 +_0233D400: + cmp r4, #0xe + bne _0233D424 + mov r0, #2 + bl ov03_0233CAC8 + ldr r0, _0233D630 @ =0x02346BB8 + mov r1, #0x500 + ldr r0, [r0] + str r1, [r0] + b _0233D624 +_0233D424: + cmp r4, #0x1f + ldreq r0, _0233D630 @ =0x02346BB8 + moveq r1, #0 + ldreq r0, [r0] + streq r1, [r0] + b _0233D624 +_0233D43C: + bl ov03_0233CAB8 + cmp r0, #0 + beq _0233D454 + bl ov03_0233CAB8 + cmp r0, #4 + bne _0233D468 +_0233D454: + ldr r0, _0233D630 @ =0x02346BB8 + ldr r0, [r0] + ldrsb r0, [r0, #0xbc] + bl ov03_0233F310 + b _0233D470 +_0233D468: + mov r0, #0 + bl ov03_0233F310 +_0233D470: + ldr r0, _0233D630 @ =0x02346BB8 + ldr r1, _0233D63C @ =0x00000301 + ldr r0, [r0] + str r1, [r0] +_0233D480: + bl ov03_0233F3A4 + movs r4, r0 + beq _0233D624 + bl ov03_0233F378 + cmp r4, #1 + ldreq r0, _0233D630 @ =0x02346BB8 + moveq r1, #0x100 + ldreq r0, [r0] + streq r1, [r0] + beq _0233D624 + cmp r4, #3 + moveq r0, #2 + beq _0233D628 + cmp r4, #2 + ldreq r0, _0233D630 @ =0x02346BB8 + ldreq r1, _0233D640 @ =0x0000FFFF + ldreq r0, [r0] + streq r1, [r0] + b _0233D624 +_0233D4CC: + bl ov03_0233CAB8 + cmp r0, #0 + beq _0233D4E4 + bl ov03_0233CAB8 + cmp r0, #4 + bne _0233D4F8 +_0233D4E4: + ldr r0, _0233D630 @ =0x02346BB8 + ldr r0, [r0] + ldrsb r0, [r0, #0xbc] + bl ov03_0233DDE8 + b _0233D4FC +_0233D4F8: + bl ov03_0233DDA0 +_0233D4FC: + ldr r0, _0233D630 @ =0x02346BB8 + ldr r1, _0233D638 @ =0x00000402 + ldr r0, [r0] + str r1, [r0] + b _0233D624 +_0233D510: + bl ov03_0233DE58 + movs r4, r0 + beq _0233D624 + bl ov03_0233DE2C + cmp r4, #1 + ldreq r0, _0233D630 @ =0x02346BB8 + moveq r1, #0x100 + ldreq r0, [r0] + streq r1, [r0] + beq _0233D624 + cmp r4, #2 + ldreq r0, _0233D630 @ =0x02346BB8 + moveq r1, #0 + ldreq r0, [r0] + streq r1, [r0] + beq _0233D624 + cmp r4, #4 + moveq r0, #2 + beq _0233D628 + cmp r4, #3 + ldreq r0, _0233D630 @ =0x02346BB8 + ldreq r1, _0233D640 @ =0x0000FFFF + ldreq r0, [r0] + streq r1, [r0] + b _0233D624 +_0233D574: + bl ov03_0233CAB8 + cmp r0, #0 + beq _0233D58C + bl ov03_0233CAB8 + cmp r0, #4 + bne _0233D5A0 +_0233D58C: + ldr r0, _0233D630 @ =0x02346BB8 + ldr r0, [r0] + ldrsb r0, [r0, #0xbc] + bl ov03_02340B28 + b _0233D5A8 +_0233D5A0: + mov r0, #0 + bl ov03_02340B28 +_0233D5A8: + ldr r0, _0233D630 @ =0x02346BB8 + ldr r1, _0233D670 @ =0x00000501 + ldr r0, [r0] + str r1, [r0] +_0233D5B8: + bl ov03_02340CD8 + movs r4, r0 + beq _0233D624 + bl ov03_02340C9C + cmp r4, #1 + ldreq r0, _0233D630 @ =0x02346BB8 + moveq r1, #0x100 + ldreq r0, [r0] + streq r1, [r0] + beq _0233D624 + cmp r4, #2 + ldreq r0, _0233D630 @ =0x02346BB8 + moveq r1, #0 + ldreq r0, [r0] + streq r1, [r0] + beq _0233D624 + cmp r4, #4 + moveq r0, #2 + beq _0233D628 + cmp r4, #3 + ldreq r0, _0233D630 @ =0x02346BB8 + ldreq r1, _0233D640 @ =0x0000FFFF + ldreq r0, [r0] + streq r1, [r0] + b _0233D624 +_0233D61C: + mov r0, #1 + b _0233D628 +_0233D624: + mov r0, #0 +_0233D628: + add sp, sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0233D630: .4byte 0x02346BB8 +_0233D634: .4byte 0x00000101 +_0233D638: .4byte 0x00000402 +_0233D63C: .4byte 0x00000301 +_0233D640: .4byte 0x0000FFFF +_0233D644: .4byte 0x02346930 +_0233D648: .4byte 0x0234692C +_0233D64C: .4byte 0x0000383C +_0233D650: .4byte 0x00000233 +_0233D654: .4byte 0x00003849 +_0233D658: .4byte 0x0000384C +_0233D65C: .4byte 0x0000384D +_0233D660: .4byte 0x02346958 +_0233D664: .4byte 0x02346B20 +_0233D668: .4byte 0x02346954 +_0233D66C: .4byte 0x0234673C +_0233D670: .4byte 0x00000501 + arm_func_end ov03_0233D088 + + arm_func_start ov03_0233D674 +ov03_0233D674: @ 0x0233D674 + push {r3, lr} + mov r0, #0x154 + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233D6B4 @ =0x02346BBC + mov r1, #0x154 + str r0, [r2] + bl FUN_02003250 + ldr r0, _0233D6B4 @ =0x02346BBC + mov r2, #0 + ldr r1, [r0] + str r2, [r1] + ldr r1, [r0] + add r0, r1, #4 + str r0, [r1, #0x68] + pop {r3, pc} + .align 2, 0 +_0233D6B4: .4byte 0x02346BBC + arm_func_end ov03_0233D674 + + arm_func_start ov03_0233D6B8 +ov03_0233D6B8: @ 0x0233D6B8 + push {r3, lr} + ldr r0, _0233D6E0 @ =0x02346BBC + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0233D6E0 @ =0x02346BBC + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233D6E0: .4byte 0x02346BBC + arm_func_end ov03_0233D6B8 + + arm_func_start ov03_0233D6E4 +ov03_0233D6E4: @ 0x0233D6E4 + push {r4, lr} + sub sp, sp, #8 + ldr r0, _0233DD50 @ =0x02346BBC + ldr r1, [r0] + ldr r2, [r1] + cmp r2, #0x300 + bgt _0233D768 + bge _0233DA60 + ldr r0, _0233DD54 @ =0x00000101 + cmp r2, r0 + bgt _0233D748 + bge _0233D9A4 + cmp r2, #2 + bgt _0233D73C + cmp r2, #0 + blt _0233DD44 + beq _0233D7C4 + cmp r2, #1 + beq _0233D844 + cmp r2, #2 + beq _0233D914 + b _0233DD44 +_0233D73C: + cmp r2, #0x100 + beq _0233D930 + b _0233DD44 +_0233D748: + cmp r2, #0x200 + bgt _0233D758 + beq _0233DAD4 + b _0233DD44 +_0233D758: + add r0, r0, #0x100 + cmp r2, r0 + beq _0233DB4C + b _0233DD44 +_0233D768: + ldr r1, _0233DD58 @ =0x00000401 + cmp r2, r1 + bgt _0233D798 + bge _0233DBD4 + sub r0, r1, #0x100 + cmp r2, r0 + bgt _0233D78C + beq _0233DA80 + b _0233DD44 +_0233D78C: + cmp r2, #0x400 + beq _0233DB98 + b _0233DD44 +_0233D798: + add r0, r1, #0x100 + cmp r2, r0 + bgt _0233D7B4 + bge _0233DCB8 + cmp r2, #0x500 + beq _0233DC40 + b _0233DD44 +_0233D7B4: + rsb r0, r1, #0x10400 + cmp r2, r0 + beq _0233DD38 + b _0233DD44 +_0233D7C4: + add r0, r1, #4 + mov r1, #3 + bl FUN_02003250 + mov r0, #4 + mov r1, #0 + bl FUN_0205B97C + cmp r0, #0 + ldreq r0, _0233DD50 @ =0x02346BBC + moveq r1, #3 + ldreq r0, [r0] + strbeq r1, [r0, #5] + mov r0, #0xc + bl FUN_023375C0 + ldr r2, _0233DD5C @ =0x02346908 + ldr r1, _0233DD50 @ =0x02346BBC + ldr r3, [r2, r0, lsl #3] + ldr r0, [r1] + ldr r2, _0233DD60 @ =0x02346904 + str r3, [r0, #8] + str r2, [sp] + ldr r0, _0233DD64 @ =0x00003837 + ldr r2, _0233DD68 @ =0x00000233 + str r0, [sp, #4] + ldr r1, [r1] + ldr r0, _0233DD6C @ =0x0234674C + add r3, r1, #8 + mov r1, #0 + bl FUN_020663DC + ldr r0, _0233DD50 @ =0x02346BBC + mov r1, #1 + ldr r0, [r0] + str r1, [r0] +_0233D844: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0xc + bl FUN_023375D0 + cmp r4, #6 + bne _0233D8B4 + mov r0, #1 + bl FUN_0205B9C8 + cmp r0, #0x1e + bge _0233D894 + mov r0, #1 + bl ov03_0233CAA8 + ldr r0, _0233DD50 @ =0x02346BBC + mov r1, #0x100 + ldr r0, [r0] + str r1, [r0] + b _0233DD44 +_0233D894: + ldr r1, _0233DD70 @ =0x0000387E + mov r0, #0x1c + bl FUN_02066468 + ldr r0, _0233DD50 @ =0x02346BBC + mov r1, #2 + ldr r0, [r0] + str r1, [r0] + b _0233DD44 +_0233D8B4: + cmp r4, #7 + bne _0233D8D8 + mov r0, #2 + bl ov03_0233CAA8 + ldr r0, _0233DD50 @ =0x02346BBC + mov r1, #0x300 + ldr r0, [r0] + str r1, [r0] + b _0233DD44 +_0233D8D8: + cmp r4, #8 + bne _0233D8FC + mov r0, #5 + bl ov03_0233CAA8 + ldr r0, _0233DD50 @ =0x02346BBC + mov r1, #0x100 + ldr r0, [r0] + str r1, [r0] + b _0233DD44 +_0233D8FC: + cmp r4, #0x1f + ldreq r0, _0233DD50 @ =0x02346BBC + ldreq r1, _0233DD74 @ =0x0000FFFF + ldreq r0, [r0] + streq r1, [r0] + b _0233DD44 +_0233D914: + bl FUN_02066494 + cmp r0, #0x1f + ldreq r0, _0233DD50 @ =0x02346BBC + ldreq r1, _0233DD74 @ =0x0000FFFF + ldreq r0, [r0] + streq r1, [r0] + b _0233DD44 +_0233D930: + mov r4, #0 + bl ov03_0233CAB8 + cmp r0, #1 + ldreq r4, _0233DD78 @ =0x0000384A + beq _0233D960 + bl ov03_0233CAB8 + cmp r0, #2 + ldreq r4, _0233DD7C @ =0x0000384B + beq _0233D960 + bl ov03_0233CAB8 + cmp r0, #5 + ldreq r4, _0233DD80 @ =0x0000384E +_0233D960: + mov r0, #0xd + arm_func_end ov03_0233D6E4 + + arm_func_start ov03_0233D964 +ov03_0233D964: @ 0x0233D964 + bl FUN_023375C0 + ldr r1, _0233DD84 @ =0x02346958 + ldr r3, _0233DD88 @ =0x02346B20 + ldr r1, [r1, r0, lsl #3] + ldr r0, _0233DD8C @ =0x02346954 + str r1, [r3] + str r0, [sp] + ldr r0, _0233DD90 @ =0x0234673C + ldr r2, _0233DD68 @ =0x00000233 + mov r1, #0 + str r4, [sp, #4] + bl FUN_020663DC + ldr r0, _0233DD50 @ =0x02346BBC + ldr r1, _0233DD54 @ =0x00000101 + ldr r0, [r0] + str r1, [r0] +_0233D9A4: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0xd + bl FUN_023375D0 + cmp r4, #0xc + bne _0233D9E4 + mov r0, #0 + bl ov03_0233CAC8 + ldr r0, _0233DD50 @ =0x02346BBC + mov r1, #0x200 + ldr r0, [r0] + str r1, [r0] + b _0233DD44 +_0233D9E4: + cmp r4, #0xd + bne _0233DA08 + mov r0, #1 + bl ov03_0233CAC8 + ldr r0, _0233DD50 @ =0x02346BBC + mov r1, #0x400 + ldr r0, [r0] + str r1, [r0] + b _0233DD44 +_0233DA08: + cmp r4, #0xe + bne _0233DA2C + mov r0, #2 + bl ov03_0233CAC8 + ldr r0, _0233DD50 @ =0x02346BBC + mov r1, #0x500 + ldr r0, [r0] + str r1, [r0] + b _0233DD44 +_0233DA2C: + cmp r4, #0x1f + bne _0233DD44 + bl ov03_0233CAB8 + cmp r0, #2 + ldreq r0, _0233DD50 @ =0x02346BBC + moveq r1, #0x300 + ldreq r0, [r0] + streq r1, [r0] + ldrne r0, _0233DD50 @ =0x02346BBC + movne r1, #0 + ldrne r0, [r0] + strne r1, [r0] + b _0233DD44 +_0233DA60: + bl FUN_020664AC + mov r0, #4 + bl FUN_020668B4 + ldr r0, _0233DD50 @ =0x02346BBC + ldr r1, _0233DD94 @ =0x00000301 + ldr r0, [r0] + str r1, [r0] + b _0233DD44 +_0233DA80: + bl FUN_02066A44 + cmp r0, #0 + beq _0233DD44 + cmp r0, #1 + bne _0233DABC + bl FUN_020674CC + mov r4, r0 + bl FUN_02067664 + ldr r0, _0233DD50 @ =0x02346BBC + mov r2, #0x100 + ldr r1, [r0] + str r2, [r1] + ldr r0, [r0] + strb r4, [r0, #0x150] + b _0233DD44 +_0233DABC: + bl FUN_02067664 + ldr r0, _0233DD50 @ =0x02346BBC + mov r1, #0 + ldr r0, [r0] + str r1, [r0] + b _0233DD44 +_0233DAD4: + bl ov03_0233CAB8 + cmp r0, #0 + beq _0233DAEC + bl ov03_0233CAB8 + cmp r0, #3 + bne _0233DAF8 +_0233DAEC: + mov r0, #0 + bl ov03_0233F310 + b _0233DB3C +_0233DAF8: + bl ov03_0233CAB8 + cmp r0, #2 + bne _0233DB1C + ldr r0, _0233DD50 @ =0x02346BBC + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x50] + bl ov03_0233F310 + b _0233DB3C +_0233DB1C: + bl ov03_0233CAB8 + cmp r0, #4 + bne _0233DB34 + mov r0, #1 + bl ov03_0233F310 + b _0233DB3C +_0233DB34: + mov r0, #0 + bl ov03_0233F310 +_0233DB3C: + ldr r0, _0233DD50 @ =0x02346BBC + ldr r1, _0233DD98 @ =0x00000201 + ldr r0, [r0] + str r1, [r0] +_0233DB4C: + bl ov03_0233F3A4 + movs r4, r0 + beq _0233DD44 + bl ov03_0233F378 + cmp r4, #1 + ldreq r0, _0233DD50 @ =0x02346BBC + moveq r1, #0x100 + ldreq r0, [r0] + streq r1, [r0] + beq _0233DD44 + cmp r4, #3 + moveq r0, #2 + beq _0233DD48 + cmp r4, #2 + ldreq r0, _0233DD50 @ =0x02346BBC + ldreq r1, _0233DD74 @ =0x0000FFFF + ldreq r0, [r0] + streq r1, [r0] + b _0233DD44 +_0233DB98: + bl ov03_0233CAB8 + cmp r0, #2 + bne _0233DBBC + ldr r0, _0233DD50 @ =0x02346BBC + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x50] + bl ov03_0233DDE8 + b _0233DBC0 +_0233DBBC: + bl ov03_0233DDA0 +_0233DBC0: + ldr r0, _0233DD50 @ =0x02346BBC + ldr r1, _0233DD58 @ =0x00000401 + ldr r0, [r0] + str r1, [r0] + b _0233DD44 +_0233DBD4: + bl ov03_0233DE58 + movs r4, r0 + beq _0233DD44 + bl ov03_0233DE2C + cmp r4, #1 + ldreq r0, _0233DD50 @ =0x02346BBC + moveq r1, #0x100 + ldreq r0, [r0] + streq r1, [r0] + beq _0233DD44 + cmp r4, #2 + bne _0233DC30 + bl ov03_0233CAB8 + cmp r0, #2 + ldreq r0, _0233DD50 @ =0x02346BBC + moveq r1, #0x300 + ldreq r0, [r0] + streq r1, [r0] + ldrne r0, _0233DD50 @ =0x02346BBC + movne r1, #0 + ldrne r0, [r0] + strne r1, [r0] + b _0233DD44 +_0233DC30: + cmp r4, #4 + moveq r0, #2 + movne r0, #1 + b _0233DD48 +_0233DC40: + bl ov03_0233CAB8 + cmp r0, #0 + beq _0233DC58 + bl ov03_0233CAB8 + cmp r0, #3 + bne _0233DC64 +_0233DC58: + mov r0, #0 + bl ov03_02340B28 + b _0233DCA8 +_0233DC64: + bl ov03_0233CAB8 + cmp r0, #2 + bne _0233DC88 + ldr r0, _0233DD50 @ =0x02346BBC + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x50] + bl ov03_02340B28 + b _0233DCA8 +_0233DC88: + bl ov03_0233CAB8 + cmp r0, #4 + bne _0233DCA0 + mov r0, #1 + bl ov03_02340B28 + b _0233DCA8 +_0233DCA0: + mvn r0, #0 + bl ov03_02340B28 +_0233DCA8: + ldr r0, _0233DD50 @ =0x02346BBC + ldr r1, _0233DD9C @ =0x00000501 + ldr r0, [r0] + str r1, [r0] +_0233DCB8: + bl ov03_02340CD8 + movs r4, r0 + beq _0233DD44 + bl ov03_02340C9C + cmp r4, #1 + ldreq r0, _0233DD50 @ =0x02346BBC + moveq r1, #0x100 + ldreq r0, [r0] + streq r1, [r0] + beq _0233DD44 + cmp r4, #2 + bne _0233DD14 + bl ov03_0233CAB8 + cmp r0, #2 + ldreq r0, _0233DD50 @ =0x02346BBC + moveq r1, #0x300 + ldreq r0, [r0] + streq r1, [r0] + ldrne r0, _0233DD50 @ =0x02346BBC + movne r1, #0 + ldrne r0, [r0] + strne r1, [r0] + b _0233DD44 +_0233DD14: + cmp r4, #4 + moveq r0, #2 + beq _0233DD48 + cmp r4, #3 + ldreq r0, _0233DD50 @ =0x02346BBC + ldreq r1, _0233DD74 @ =0x0000FFFF + ldreq r0, [r0] + streq r1, [r0] + b _0233DD44 +_0233DD38: + bl ov03_0233D6B8 + mov r0, #1 + b _0233DD48 +_0233DD44: + mov r0, #0 +_0233DD48: + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_0233DD50: .4byte 0x02346BBC +_0233DD54: .4byte 0x00000101 +_0233DD58: .4byte 0x00000401 +_0233DD5C: .4byte 0x02346908 +_0233DD60: .4byte 0x02346904 +_0233DD64: .4byte 0x00003837 +_0233DD68: .4byte 0x00000233 +_0233DD6C: .4byte 0x0234674C +_0233DD70: .4byte 0x0000387E +_0233DD74: .4byte 0x0000FFFF +_0233DD78: .4byte 0x0000384A +_0233DD7C: .4byte 0x0000384B +_0233DD80: .4byte 0x0000384E +_0233DD84: .4byte 0x02346958 +_0233DD88: .4byte 0x02346B20 +_0233DD8C: .4byte 0x02346954 +_0233DD90: .4byte 0x0234673C +_0233DD94: .4byte 0x00000301 +_0233DD98: .4byte 0x00000201 +_0233DD9C: .4byte 0x00000501 + arm_func_end ov03_0233D964 + + arm_func_start ov03_0233DDA0 +ov03_0233DDA0: @ 0x0233DDA0 + push {r3, lr} + mov r0, #0x14c + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233DDE4 @ =0x02346BC0 + mov r1, #0x14c + str r0, [r2] + bl FUN_02003250 + ldr r0, _0233DDE4 @ =0x02346BC0 + mov r2, #0 + ldr r1, [r0] + str r2, [r1] + ldr r1, [r0] + strb r2, [r1, #0xd0] + ldr r0, [r0] + strb r2, [r0, #0x149] + pop {r3, pc} + .align 2, 0 +_0233DDE4: .4byte 0x02346BC0 + arm_func_end ov03_0233DDA0 + + arm_func_start ov03_0233DDE8 +ov03_0233DDE8: @ 0x0233DDE8 + push {r4, lr} + mov r4, r0 + mov r0, #0x14c + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233DE28 @ =0x02346BC0 + mov r1, #0x14c + str r0, [r2] + bl FUN_02003250 + ldr r0, _0233DE28 @ =0x02346BC0 + mov r2, #0 + ldr r1, [r0] + str r2, [r1] + ldr r0, [r0] + strb r4, [r0, #0xd0] + pop {r4, pc} + .align 2, 0 +_0233DE28: .4byte 0x02346BC0 + arm_func_end ov03_0233DDE8 + + arm_func_start ov03_0233DE2C +ov03_0233DE2C: @ 0x0233DE2C + push {r3, lr} + ldr r0, _0233DE54 @ =0x02346BC0 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0233DE54 @ =0x02346BC0 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233DE54: .4byte 0x02346BC0 + arm_func_end ov03_0233DE2C + + arm_func_start ov03_0233DE58 +ov03_0233DE58: @ 0x0233DE58 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x6c + ldr r4, _0233EE08 @ =0x02346BC0 + ldr r0, _0233EE0C @ =0x000003F2 + ldr r2, [r4] + ldr r1, [r2] + cmp r1, r0 + bgt _0233DFB0 + bge _0233F210 + sub r3, r0, #0xd1 + cmp r1, r3 + bgt _0233DF38 + bge _0233E704 + sub r3, r0, #0xef + cmp r1, r3 + bgt _0233DED4 + bge _0233E340 + cmp r1, #2 + bgt _0233DEC4 + cmp r1, #0 + blt _0233F2C4 + beq _0233E094 + cmp r1, #1 + beq _0233E0EC + cmp r1, #2 + beq _0233E114 + b _0233F2C4 +_0233DEC4: + sub r0, r0, #0xf0 + cmp r1, r0 + beq _0233E388 + b _0233F2C4 +_0233DED4: + sub r0, r0, #0xdf + cmp r1, r0 + bgt _0233DF2C + subs r0, r1, #0x304 + addpl pc, pc, r0, lsl #2 + b _0233F2C4 +_0233DEEC: @ jump table + b _0233F26C @ case 0 + b _0233F2C4 @ case 1 + b _0233F2C4 @ case 2 + b _0233F274 @ case 3 + b _0233F2C4 @ case 4 + b _0233F2C4 @ case 5 + b _0233F2C4 @ case 6 + b _0233F2C4 @ case 7 + b _0233F2C4 @ case 8 + b _0233F2C4 @ case 9 + b _0233F2C4 @ case 10 + b _0233F2B4 @ case 11 + b _0233E4E4 @ case 12 + b _0233E5F8 @ case 13 + b _0233E65C @ case 14 + b _0233E698 @ case 15 +_0233DF2C: + cmp r1, #0x320 + beq _0233E6AC + b _0233F2C4 +_0233DF38: + sub r3, r0, #0x9d + cmp r1, r3 + bgt _0233DF90 + bge _0233EE98 + sub r3, r0, #0xcf + cmp r1, r3 + bgt _0233DF64 + sub r0, r0, #0xcf + cmp r1, r0 + beq _0233E77C + b _0233F2C4 +_0233DF64: + sub r0, r1, #0x324 + cmp r0, #6 + addls pc, pc, r0, lsl #2 + b _0233F2C4 +_0233DF74: @ jump table + b _0233ED84 @ case 0 + b _0233EEB4 @ case 1 + b _0233EFA4 @ case 2 + b _0233F2C4 @ case 3 + b _0233F2C4 @ case 4 + b _0233F2C4 @ case 5 + b _0233F168 @ case 6 +_0233DF90: + cmp r1, #0x3f0 + bgt _0233DFA0 + beq _0233F17C + b _0233F2C4 +_0233DFA0: + ldr r0, _0233EE10 @ =0x000003F1 + cmp r1, r0 + beq _0233F210 + b _0233F2C4 +_0233DFB0: + cmp r1, #0x400 + bgt _0233E01C + bge _0233EFC8 + add r2, r0, #3 + cmp r1, r2 + bgt _0233DFF4 + bge _0233F210 + add r2, r0, #1 + cmp r1, r2 + bgt _0233DFE8 + add r0, r0, #1 + cmp r1, r0 + beq _0233F210 + b _0233F2C4 +_0233DFE8: + cmp r1, #0x3f4 + beq _0233F258 + b _0233F2C4 +_0233DFF4: + add r2, r0, #4 + cmp r1, r2 + bgt _0233E010 + add r0, r0, #4 + cmp r1, r0 + beq _0233F258 + b _0233F2C4 +_0233E010: + add r0, r0, #0xd + cmp r1, r0 + b _0233F2C4 +_0233E01C: + add r3, r0, #0x12 + cmp r1, r3 + bgt _0233E074 + add r2, r0, #0x11 + cmp r1, r2 + blt _0233E048 + beq _0233F154 + add r0, r0, #0x12 + cmp r1, r0 + beq _0233F0C4 + b _0233F2C4 +_0233E048: + add r2, r0, #0xf + cmp r1, r2 + bgt _0233E064 + add r0, r0, #0xf + cmp r1, r0 + beq _0233EFE4 + b _0233F2C4 +_0233E064: + add r0, r0, #0x10 + cmp r1, r0 + beq _0233F018 + b _0233F2C4 +_0233E074: + cmp r1, #0x1000 + bgt _0233E084 + beq _0233E3D8 + b _0233F2C4 +_0233E084: + ldr r0, _0233EE14 @ =0x00001001 + cmp r1, r0 + beq _0233E400 + b _0233F2C4 +_0233E094: + bl FUN_0204A1CC + bl FUN_022BCA80 + mov r4, r0 + bl FUN_022BCCF4 + ldr r1, _0233EE08 @ =0x02346BC0 + cmp r4, #3 + ldr r1, [r1] + strb r0, [r1, #0x148] + bne _0233E0D0 + bl FUN_02339888 + ldr r0, _0233EE08 @ =0x02346BC0 + mov r1, #1 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233E0D0: + mov r0, #1 + bl FUN_022BCBAC + ldr r0, _0233EE08 @ =0x02346BC0 + mov r1, #2 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233E0EC: + bl FUN_023398A4 + cmp r0, #0 + beq _0233F2C4 + mov r0, #1 + bl FUN_022BCBAC + mov r0, r4 + ldr r0, [r0] + mov r1, #2 + str r1, [r0] + b _0233F2C4 +_0233E114: + add r0, r2, #0x10c + mov r1, #0x36 + bl FUN_02003250 + bl ov03_0233CAB8 + cmp r0, #0 + bne _0233E194 + mov r0, r4 + ldr r0, [r0] + ldrsb r1, [r0, #0xd0] + add r0, r0, #0x20 + bl FUN_0205B794 + mov r0, r4 + ldr r1, [r0] + mov r2, #0 + strh r2, [r1, #0xc2] + ldr r0, [r0] + strh r2, [r0, #0xc0] + bl FUN_020205A0 + mov r1, r4 + ldr r2, [r1] + strb r0, [r2, #0x3c] + ldr r0, [r1] + add r0, r0, #0x3d + bl FUN_02050B10 + ldr r1, _0233EE18 @ =0x00003869 + mov r0, #0x1c + bl FUN_02066468 + mov r0, r4 + ldr r1, _0233EE1C @ =0x00000302 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233E194: + bl ov03_0233CAB8 + cmp r0, #3 + bne _0233E1C0 + ldr r1, _0233EE20 @ =0x0000384F + mov r0, #0x1c + bl FUN_02066468 + mov r0, r4 + ldr r1, _0233EE1C @ =0x00000302 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233E1C0: + bl ov03_0233CAB8 + cmp r0, #4 + bne _0233E228 + mov r0, r4 + ldr r0, [r0] + ldrsb r1, [r0, #0xd0] + add r0, r0, #0x20 + bl FUN_0205B794 + mov r0, r4 + ldr r1, [r0] + mov r2, #0 + strh r2, [r1, #0xc2] + ldr r0, [r0] + strh r2, [r0, #0xc0] + bl FUN_020205A0 + mov r1, r4 + ldr r2, [r1] + strb r0, [r2, #0x3c] + ldr r0, [r1] + add r0, r0, #0x3d + bl FUN_02050B10 + mov r0, r4 + ldr r0, [r0] + mov r1, #0x1000 + str r1, [r0] + b _0233F2C4 +_0233E228: + bl ov03_0233CAB8 + cmp r0, #1 + bne _0233E254 + ldr r1, _0233EE24 @ =0x00003881 + mov r0, #0x1c + bl FUN_02066468 + mov r0, r4 + ldr r1, _0233EE1C @ =0x00000302 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233E254: + bl ov03_0233CAB8 + cmp r0, #2 + bne _0233E314 + mov r0, r4 + ldr r0, [r0] + ldrsb r1, [r0, #0xd0] + add r0, r0, #0x20 + bl FUN_0205B794 + mov r0, r4 + ldr r1, [r0] + mov r2, #0 + strh r2, [r1, #0xc2] + ldr r0, [r0] + strh r2, [r0, #0xc0] + bl FUN_020205A0 + mov r1, r4 + ldr r2, [r1] + strb r0, [r2, #0x3c] + ldr r0, [r1] + add r0, r0, #0x3d + bl FUN_02050B10 + mov r0, r4 + ldr r1, [r0] + ldrb r0, [r1, #0x148] + cmp r0, #0 + beq _0233E300 + add r0, r1, #0x20 + bl FUN_0205B6CC + cmp r0, #0 + beq _0233E300 + mov r0, #0x10 + bl FUN_023375C0 + str r0, [sp] + mov r0, #0 + ldr r2, _0233EE28 @ =0x023467EC + ldr r3, _0233EE2C @ =0x00003850 + mov r1, r0 + bl FUN_020663C8 + mov r0, r4 + ldr r1, _0233EE30 @ =0x00000303 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233E300: + ldr r0, _0233EE08 @ =0x02346BC0 + mov r1, #0x1000 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233E314: + bl ov03_0233CAB8 + cmp r0, #5 + bne _0233F2C4 + ldr r1, _0233EE34 @ =0x0000388D + mov r0, #0x1c + bl FUN_02066468 + mov r0, r4 + ldr r1, _0233EE1C @ =0x00000302 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233E340: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x10 + bl FUN_023375D0 + cmp r4, #0x1d + ldreq r0, _0233EE08 @ =0x02346BC0 + moveq r1, #0x1000 + ldreq r0, [r0] + streq r1, [r0] + beq _0233F2C4 + sub r0, r4, #0x1e + cmp r0, #1 + bhi _0233F2C4 + mov r0, #1 + b _0233F2C8 +_0233E388: + bl FUN_02066494 + cmp r0, #0x1f + bne _0233F2C4 + bl ov03_0233CAB8 + cmp r0, #0 + cmpne r0, #2 + cmpne r0, #4 + ldreq r0, _0233EE08 @ =0x02346BC0 + moveq r1, #0x310 + ldreq r0, [r0] + streq r1, [r0] + beq _0233F2C4 + cmp r0, #1 + cmpne r0, #3 + cmpne r0, #5 + ldreq r0, _0233EE08 @ =0x02346BC0 + moveq r1, #0x320 + ldreq r0, [r0] + streq r1, [r0] + b _0233F2C4 +_0233E3D8: + mov r1, #0 + strb r1, [r2, #0x149] + ldr r0, [r4] + add r0, r0, #0x20 + bl ov03_023449C4 + mov r0, r4 + ldr r1, _0233EE14 @ =0x00001001 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233E400: + bl ov03_02344AB8 + mvn r1, #0 + cmp r0, r1 + bne _0233E41C + bl ov03_02344A58 + mov r0, #1 + b _0233F2C8 +_0233E41C: + cmp r0, #2 + bne _0233E430 + bl ov03_02344A58 + mov r0, #2 + b _0233F2C8 +_0233E430: + cmp r0, #3 + bne _0233E444 + bl ov03_02344A58 + mov r0, #4 + b _0233F2C8 +_0233E444: + cmp r0, #1 + bne _0233F2C4 + bl ov03_02344AA4 + mov r1, r4 + ldr r1, [r1] + strb r0, [r1, #0x149] + bl ov03_02344A58 + bl ov03_0233CAB8 + cmp r0, #0 + bne _0233E48C + ldr r1, _0233EE18 @ =0x00003869 + mov r0, #0x1c + bl FUN_02066468 + mov r0, r4 + ldr r1, _0233EE1C @ =0x00000302 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233E48C: + bl ov03_0233CAB8 + cmp r0, #2 + bne _0233E4B8 + ldr r1, _0233EE38 @ =0x0000386A + mov r0, #0x1c + bl FUN_02066468 + mov r0, r4 + ldr r1, _0233EE1C @ =0x00000302 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233E4B8: + bl ov03_0233CAB8 + cmp r0, #4 + bne _0233F2C4 + ldr r1, _0233EE3C @ =0x0000388E + mov r0, #0x1c + bl FUN_02066468 + mov r0, r4 + ldr r1, _0233EE1C @ =0x00000302 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233E4E4: + bl ov03_0233CAB8 + cmp r0, #0 + bne _0233E540 + mov r1, r4 + ldr r1, [r1] + add r0, sp, #0x34 + add r1, r1, #0x20 + bl FUN_0204DCA0 + ldr r4, _0233EE40 @ =0x00000121 + mov r0, #0 + add r3, sp, #0x34 + sub r1, r0, #1 + mov r2, #6 + str r4, [sp] + bl FUN_02037570 + ldr r0, _0233EE08 @ =0x02346BC0 + ldr r1, _0233EE44 @ =0x00003868 + ldr r2, [r0] + add r3, r4, #0x1f0 + mov r0, #0 + str r3, [r2] + bl FUN_02066468 + b _0233F2C4 +_0233E540: + bl ov03_0233CAB8 + cmp r0, #2 + bne _0233E59C + mov r1, r4 + ldr r1, [r1] + add r0, sp, #0x34 + add r1, r1, #0x20 + bl FUN_0204DCA0 + ldr r4, _0233EE40 @ =0x00000121 + mov r0, #0 + add r3, sp, #0x34 + sub r1, r0, #1 + mov r2, #6 + str r4, [sp] + bl FUN_02037570 + ldr r0, _0233EE08 @ =0x02346BC0 + ldr r1, _0233EE48 @ =0x0000386B + ldr r2, [r0] + add r3, r4, #0x1f0 + mov r0, #0 + str r3, [r2] + bl FUN_02066468 + b _0233F2C4 +_0233E59C: + bl ov03_0233CAB8 + cmp r0, #4 + bne _0233F2C4 + mov r1, r4 + ldr r1, [r1] + add r0, sp, #0x34 + add r1, r1, #0x20 + bl FUN_0204DCA0 + ldr r4, _0233EE40 @ =0x00000121 + mov r0, #0 + add r3, sp, #0x34 + sub r1, r0, #1 + mov r2, #6 + str r4, [sp] + bl FUN_02037570 + ldr r0, _0233EE08 @ =0x02346BC0 + ldr r1, _0233EE4C @ =0x0000388F + ldr r2, [r0] + add r3, r4, #0x1f0 + mov r0, #0 + str r3, [r2] + bl FUN_02066468 + b _0233F2C4 +_0233E5F8: + add r1, sp, #6 + mov r0, #0 + bl FUN_0200625C + bl FUN_0204AE60 + cmp r0, #0 + add r0, sp, #0x10 + beq _0233E61C + bl FUN_02006C1C + b _0233E620 +_0233E61C: + bl FUN_02006BFC +_0233E620: + ldrh r0, [sp, #6] + tst r0, #1 + bne _0233E644 + add r0, sp, #0x10 + mov r1, #2 + mov r2, #0 + bl FUN_02006C8C + cmp r0, #0 + beq _0233F2C4 +_0233E644: + bl FUN_02046D20 + ldr r0, _0233EE08 @ =0x02346BC0 + ldr r1, _0233EE50 @ =0x00000312 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233E65C: + bl FUN_020376EC + cmp r0, #1 + bne _0233F2C4 + mov r0, r4 + ldr r0, [r0] + ldrb r0, [r0, #0x149] + cmp r0, #0 + beq _0233E690 + bl FUN_0204FF80 + mov r0, r4 + ldr r0, [r0] + mov r1, #0 + strb r1, [r0, #0x149] +_0233E690: + mov r0, #3 + b _0233F2C8 +_0233E698: + bl FUN_02066494 + cmp r0, #0x1f + bne _0233F2C4 + mov r0, #3 + b _0233F2C8 +_0233E6AC: + bl ov03_0233CAB8 + cmp r0, #1 + beq _0233E6D0 + bl ov03_0233CAB8 + cmp r0, #3 + beq _0233E6D0 + bl ov03_0233CAB8 + cmp r0, #5 + bne _0233F2C4 +_0233E6D0: + ldr r0, _0233EE08 @ =0x02346BC0 + mov r2, #0 + ldr r0, [r0] + mov r3, r2 + add r1, r0, #0x10c + mov r0, #5 + bl FUN_020367F0 + ldr r0, _0233EE08 @ =0x02346BC0 + ldr r1, _0233EE54 @ =0x00000321 + ldr r0, [r0] + str r1, [r0] + bl FUN_02046D20 + b _0233F2C4 +_0233E704: + bl FUN_02036CD4 + mov r1, r4 + ldr r2, [r1] + str r0, [r2, #0x108] + ldr r1, [r1] + ldr r0, [r1, #0x108] + cmp r0, #3 + bne _0233E754 + bl FUN_0203755C + mov r2, r4 + mov r1, r0 + ldr r0, [r2] + mov r2, #0x36 + add r0, r0, #0x10c + bl FUN_020032D4 + mov r0, r4 + ldr r1, _0233EE58 @ =0x00000323 + ldr r0, [r0] + str r1, [r0] + b _0233E760 +_0233E754: + cmp r0, #2 + ldreq r0, _0233EE58 @ =0x00000323 + streq r0, [r1] +_0233E760: + bl FUN_02066494 + cmp r0, #0x1f + ldreq r0, _0233EE08 @ =0x02346BC0 + ldreq r1, _0233EE58 @ =0x00000323 + ldreq r0, [r0] + streq r1, [r0] + b _0233F2C4 +_0233E77C: + bl FUN_02037468 + cmp r0, #1 + bne _0233F2C4 + mov r0, r4 + ldr r0, [r0] + ldr r0, [r0, #0x108] + cmp r0, #3 + bne _0233ED7C + bl ov03_0233CAB8 + mov r1, r4 + ldr r4, [r1] + mov r5, r0 + add r0, r4, #0x10c + add r1, r4, #0x20 + bl FUN_0204DBA0 + cmp r0, #0 + moveq r7, #3 + beq _0233EA74 + cmp r5, #1 + beq _0233E7E0 + cmp r5, #3 + beq _0233E85C + cmp r5, #5 + beq _0233E954 + b _0233EA70 +_0233E7E0: + ldrb r0, [r4, #0x20] + cmp r0, #1 + movne r7, #4 + bne _0233EA74 + add r1, r4, #0x34 + mov r0, #2 + bl FUN_0205B918 + cmp r0, #0 + bne _0233E83C + add r1, r4, #0x34 + mov r0, #4 + bl FUN_0205B918 + cmp r0, #0 + bne _0233E83C + add r1, r4, #0x34 + mov r0, #6 + bl FUN_0205B918 + cmp r0, #0 + bne _0233E83C + add r0, r4, #0x34 + bl FUN_0205B8CC + cmp r0, #0 + beq _0233E844 +_0233E83C: + mov r7, #8 + b _0233EA74 +_0233E844: + bl FUN_0205B690 + mvn r1, #0 + cmp r0, r1 + moveq r7, #7 + movne r7, #0 + b _0233EA74 +_0233E85C: + ldrb r0, [r4, #0x20] + cmp r0, #4 + movne r7, #5 + bne _0233EA74 + ldrsh r0, [r4, #0xc2] + cmp r0, #0 + beq _0233E938 + ldrsh r0, [r4, #0xc2] + bl FUN_0200EB58 + cmp r0, #0 + beq _0233E89C + add r0, r4, #0x20 + mov r1, #0 + bl FUN_02062E34 + cmp r0, #0 + bne _0233E8A4 +_0233E89C: + mov r7, #9 + b _0233EA74 +_0233E8A4: + ldrsh r0, [r4, #0xc2] + bl FUN_0200E808 + cmp r0, #0xc + bgt _0233E8D4 + bge _0233E90C + cmp r0, #1 + bgt _0233E938 + cmp r0, #0 + blt _0233E938 + cmpne r0, #1 + beq _0233E8F0 + b _0233E938 +_0233E8D4: + cmp r0, #0xe + bgt _0233E938 + cmp r0, #0xd + blt _0233E938 + cmpne r0, #0xe + beq _0233E90C + b _0233E938 +_0233E8F0: + ldrh r0, [r4, #0xc0] + cmp r0, #0 + beq _0233E904 + cmp r0, #0x64 + blo _0233E938 +_0233E904: + mov r7, #9 + b _0233EA74 +_0233E90C: + ldrsh r0, [r4, #0xc0] + bl FUN_0200EB58 + cmp r0, #0 + beq _0233E930 + add r0, r4, #0x20 + mov r1, #1 + bl FUN_02062E34 + cmp r0, #0 + bne _0233E938 +_0233E930: + mov r7, #9 + b _0233EA74 +_0233E938: + add r1, r4, #0x34 + mov r0, #1 + bl FUN_0205B918 + cmp r0, #0 + moveq r7, #9 + movne r7, #1 + b _0233EA74 +_0233E954: + add r0, sp, #8 + bl FUN_0205B584 + ldrb r0, [r4, #0x20] + cmp r0, #5 + movne r7, #6 + bne _0233EA74 + ldrsh r0, [r4, #0xc2] + cmp r0, #0 + beq _0233EA38 + ldrsh r0, [r4, #0xc2] + bl FUN_0200EB58 + cmp r0, #0 + beq _0233E99C + add r0, r4, #0x20 + mov r1, #0 + bl FUN_02062E34 + cmp r0, #0 + bne _0233E9A4 +_0233E99C: + mov r7, #0xa + b _0233EA74 +_0233E9A4: + ldrsh r0, [r4, #0xc2] + bl FUN_0200E808 + cmp r0, #0xc + bgt _0233E9D4 + bge _0233EA0C + cmp r0, #1 + bgt _0233EA38 + cmp r0, #0 + blt _0233EA38 + cmpne r0, #1 + beq _0233E9F0 + b _0233EA38 +_0233E9D4: + cmp r0, #0xe + bgt _0233EA38 + cmp r0, #0xd + blt _0233EA38 + cmpne r0, #0xe + beq _0233EA0C + b _0233EA38 +_0233E9F0: + ldrh r0, [r4, #0xc0] + cmp r0, #0 + beq _0233EA04 + cmp r0, #0x64 + blo _0233EA38 +_0233EA04: + mov r7, #0xa + b _0233EA74 +_0233EA0C: + ldrsh r0, [r4, #0xc0] + bl FUN_0200EB58 + cmp r0, #0 + beq _0233EA30 + add r0, r4, #0x20 + mov r1, #1 + bl FUN_02062E34 + cmp r0, #0 + bne _0233EA38 +_0233EA30: + mov r7, #0xa + b _0233EA74 +_0233EA38: + add r1, r4, #0x34 + mov r0, #4 + bl FUN_0205B918 + cmp r0, #0 + beq _0233EA60 + add r1, sp, #8 + add r0, r4, #0xc4 + bl FUN_0205B554 + cmp r0, #0 + bne _0233EA68 +_0233EA60: + mov r7, #0xa + b _0233EA74 +_0233EA68: + mov r7, #2 + b _0233EA74 +_0233EA70: + mov r7, #0xb +_0233EA74: + ldr r0, _0233EE5C @ =0x02346A64 + bl FUN_0200C1FC + ldr r5, _0233EE60 @ =0x02346A68 + ldr r4, _0233EE08 @ =0x02346BC0 + mov r6, #0 +_0233EA88: + ldr r1, [r4] + mov r0, r5 + add r1, r1, r6 + ldrb r1, [r1, #0x10c] + bl FUN_0200C1FC + add r6, r6, #1 + cmp r6, #0x36 + blt _0233EA88 + ldr r0, _0233EE5C @ =0x02346A64 + bl FUN_0200C1FC + cmp r7, #0xa + addls pc, pc, r7, lsl #2 + b _0233F2C4 +_0233EABC: @ jump table + b _0233EAE8 @ case 0 + b _0233EB40 @ case 1 + b _0233EC04 @ case 2 + b _0233EC8C @ case 3 + b _0233ECC0 @ case 4 + b _0233ECC0 @ case 5 + b _0233ECC0 @ case 6 + b _0233ECD4 @ case 7 + b _0233ED08 @ case 8 + b _0233ED28 @ case 9 + b _0233ED5C @ case 10 +_0233EAE8: + mov r0, #0x1c + mov r1, #0x3880 + bl FUN_02066468 + ldr r0, _0233EE08 @ =0x02346BC0 + mov r2, #0x324 + ldr r1, [r0] + str r2, [r1] + ldr r0, [r0] + add r0, r0, #0x34 + bl FUN_0205B890 + ldr r0, _0233EE08 @ =0x02346BC0 + mov r2, #2 + ldr r1, [r0] + strb r2, [r1, #0x20] + ldr r0, [r0] + add r0, r0, #0x20 + bl FUN_0205B6EC + ldr r0, _0233EE08 @ =0x02346BC0 + ldr r0, [r0] + add r0, r0, #0x20 + bl FUN_02069790 + b _0233F2C4 +_0233EB40: + ldr r1, _0233EE64 @ =0x00003853 + mov r0, #0x1c + bl FUN_02066468 + ldr r1, _0233EE08 @ =0x02346BC0 + mov r3, #0x324 + ldr r2, [r1] + mov r0, #1 + str r3, [r2] + ldr r1, [r1] + add r1, r1, #0x34 + bl FUN_0205BA0C + lsl r0, r0, #0x18 + asr r0, r0, #0x18 + bl FUN_0205B77C + mov r4, r0 + mov r0, #0 + mov r2, #7 + mov r1, r0 + strb r2, [r4] + bl FUN_0205BC30 + ldr r0, _0233EE08 @ =0x02346BC0 + ldr r1, [r0] + ldrsh r0, [r1, #0xc2] + cmp r0, #0 + beq _0233EBB0 + add r0, r1, #0xbe + bl FUN_0205BCC4 + b _0233EBB8 +_0233EBB0: + mov r0, #0 + bl FUN_0205BCC4 +_0233EBB8: + ldr r0, _0233EE08 @ =0x02346BC0 + mov r2, #5 + ldr r1, [r0] + ldrb r1, [r1, #0xce] + strb r1, [r4, #0xae] + ldr r1, [r0] + strb r2, [r1, #0x20] + ldr r0, [r0] + add r0, r0, #0x20 + bl FUN_0205B738 + ldr r0, _0233EE08 @ =0x02346BC0 + ldr r0, [r0] + add r0, r0, #0x20 + bl FUN_02069790 + ldr r0, _0233EE08 @ =0x02346BC0 + mov r1, #0x324 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233EC04: + ldr r1, _0233EE68 @ =0x00003891 + mov r0, #0x1c + bl FUN_02066468 + ldr r1, _0233EE08 @ =0x02346BC0 + mov r3, #0x324 + ldr r2, [r1] + mov r0, #4 + str r3, [r2] + ldr r1, [r1] + add r1, r1, #0x34 + bl FUN_0205BA0C + ldr r1, _0233EE08 @ =0x02346BC0 + lsl r0, r0, #0x18 + ldr r1, [r1] + mov r2, #6 + asr r0, r0, #0x18 + strb r2, [r1, #0x20] + bl FUN_0205B77C + ldr r1, _0233EE08 @ =0x02346BC0 + mov lr, r0 + ldr r5, [r1] + mov r4, #0xb + add ip, r5, #0x20 +_0233EC60: + ldm ip!, {r0, r1, r2, r3} + stm lr!, {r0, r1, r2, r3} + subs r4, r4, #1 + bne _0233EC60 + ldr r2, [r5, #0x34] + ldr r1, [r5, #0x38] + add r0, r5, #0x20 + str r2, [r5, #0x100] + str r1, [r5, #0x104] + bl FUN_02069790 + b _0233F2C4 +_0233EC8C: + mov r0, #0x11 + bl FUN_023375C0 + str r0, [sp] + mov r0, #0 + ldr r2, _0233EE6C @ =0x023467D4 + ldr r3, _0233EE70 @ =0x000038A0 + mov r1, r0 + bl FUN_020663C8 + ldr r0, _0233EE08 @ =0x02346BC0 + ldr r1, _0233EE0C @ =0x000003F2 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233ECC0: + ldr r0, _0233EE08 @ =0x02346BC0 + mov r1, #0x3f0 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233ECD4: + mov r0, #0x11 + bl FUN_023375C0 + str r0, [sp] + mov r0, #0 + ldr r2, _0233EE6C @ =0x023467D4 + ldr r3, _0233EE74 @ =0x000038A5 + mov r1, r0 + bl FUN_020663C8 + ldr r0, _0233EE08 @ =0x02346BC0 + ldr r1, _0233EE78 @ =0x000003F3 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233ED08: + ldr r1, _0233EE7C @ =0x000038A1 + mov r0, #0x1c + bl FUN_02066468 + ldr r0, _0233EE08 @ =0x02346BC0 + mov r1, #0x3f4 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233ED28: + mov r0, #0x11 + bl FUN_023375C0 + str r0, [sp] + mov r0, #0 + ldr r2, _0233EE6C @ =0x023467D4 + ldr r3, _0233EE80 @ =0x000038A3 + mov r1, r0 + bl FUN_020663C8 + ldr r0, _0233EE08 @ =0x02346BC0 + ldr r1, _0233EE84 @ =0x000003F5 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233ED5C: + mov r0, #0x1c + rsb r1, r0, #0x38c0 + bl FUN_02066468 + ldr r0, _0233EE08 @ =0x02346BC0 + ldr r1, _0233EE88 @ =0x000003F6 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233ED7C: + mov r0, #1 + b _0233F2C8 +_0233ED84: + bl FUN_02066494 + mov r4, r0 + bl FUN_020698B8 + cmp r4, #0x1f + bne _0233F2C4 + bl FUN_02069904 + bl ov03_0233CAB8 + cmp r0, #3 + bne _0233EDDC + ldr r0, _0233EE08 @ =0x02346BC0 + ldr r0, [r0] + ldrsh r0, [r0, #0xc2] + cmp r0, #0 + beq _0233EDDC + ldr r1, _0233EE8C @ =0x00003851 + mov r0, #0x1c + bl FUN_02066468 + ldr r0, _0233EE08 @ =0x02346BC0 + ldr r1, _0233EE90 @ =0x00000355 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233EDDC: + bl ov03_0233CAB8 + cmp r0, #5 + ldreq r0, _0233EE08 @ =0x02346BC0 + ldreq r1, _0233EE94 @ =0x00000325 + ldreq r0, [r0] + streq r1, [r0] + ldrne r0, _0233EE08 @ =0x02346BC0 + movne r1, #0x400 + ldrne r0, [r0] + strne r1, [r0] + b _0233F2C4 + .align 2, 0 +_0233EE08: .4byte 0x02346BC0 +_0233EE0C: .4byte 0x000003F2 +_0233EE10: .4byte 0x000003F1 +_0233EE14: .4byte 0x00001001 +_0233EE18: .4byte 0x00003869 +_0233EE1C: .4byte 0x00000302 +_0233EE20: .4byte 0x0000384F +_0233EE24: .4byte 0x00003881 +_0233EE28: .4byte 0x023467EC +_0233EE2C: .4byte 0x00003850 +_0233EE30: .4byte 0x00000303 +_0233EE34: .4byte 0x0000388D +_0233EE38: .4byte 0x0000386A +_0233EE3C: .4byte 0x0000388E +_0233EE40: .4byte 0x00000121 +_0233EE44: .4byte 0x00003868 +_0233EE48: .4byte 0x0000386B +_0233EE4C: .4byte 0x0000388F +_0233EE50: .4byte 0x00000312 +_0233EE54: .4byte 0x00000321 +_0233EE58: .4byte 0x00000323 +_0233EE5C: .4byte 0x02346A64 +_0233EE60: .4byte 0x02346A68 +_0233EE64: .4byte 0x00003853 +_0233EE68: .4byte 0x00003891 +_0233EE6C: .4byte 0x023467D4 +_0233EE70: .4byte 0x000038A0 +_0233EE74: .4byte 0x000038A5 +_0233EE78: .4byte 0x000003F3 +_0233EE7C: .4byte 0x000038A1 +_0233EE80: .4byte 0x000038A3 +_0233EE84: .4byte 0x000003F5 +_0233EE88: .4byte 0x000003F6 +_0233EE8C: .4byte 0x00003851 +_0233EE90: .4byte 0x00000355 +_0233EE94: .4byte 0x00000325 +_0233EE98: + bl FUN_02066494 + cmp r0, #0x1f + moveq r0, r4 + ldreq r0, [r0] + moveq r1, #0x400 + streq r1, [r0] + b _0233F2C4 +_0233EEB4: + add r0, r2, #0xd4 + bl FUN_0206351C + mov r1, r4 + ldr r2, [r1] + mov r3, #2 + strb r3, [r2, #0xd6] + ldr r1, [r1] + mov r0, #6 + add r1, r1, #0x34 + bl FUN_0205BA0C + lsl r0, r0, #0x18 + asr r0, r0, #0x18 + bl FUN_0205B77C + ldrsh ip, [r0, #0xa2] + add r2, sp, #4 + mov r1, #0 + cmp ip, #0 + beq _0233EF40 + mov r3, r4 + ldr r4, [r3] + strh ip, [r4, #0xe8] + ldrh r4, [r0, #0xa0] + ldr r3, [r3] + add r0, r0, #4 + strh r4, [r3, #0xe6] + bl FUN_020630A4 + ldr r0, _0233EE08 @ =0x02346BC0 + ldrsh r1, [sp, #4] + ldr r0, [r0] + mov r2, #0 + add r0, r0, #0xea + bl FUN_0200CF58 + ldr r0, _0233EE08 @ =0x02346BC0 + mov r1, #2 + b _0233EF68 +_0233EF40: + add r0, r0, #4 + bl FUN_020630A4 + mov r0, r4 + ldr r0, [r0] + ldrsh r1, [sp, #4] + mov r2, #0 + add r0, r0, #0xe4 + bl FUN_0200CF58 + mov r0, r4 + mov r1, #1 +_0233EF68: + ldr r0, [r0] + mov r2, #0x10 + str r1, [r0, #0xe0] + ldr r0, _0233EE08 @ =0x02346BC0 + mov r1, #0 + ldr r3, [r0] + str r1, [r3, #0xfc] + ldr r0, [r0] + add r0, r0, #0xd4 + bl FUN_0203D438 + ldr r0, _0233EE08 @ =0x02346BC0 + ldr r1, _0233F2D0 @ =0x00000326 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233EFA4: + bl FUN_0203D538 + cmp r0, #1 + bne _0233F2C4 + bl FUN_0203EFD4 + mov r0, r4 + ldr r0, [r0] + mov r1, #0x400 + str r1, [r0] + b _0233F2C4 +_0233EFC8: + ldr r1, _0233F2D4 @ =0x0000023B + mov r0, #0 + bl FUN_02066468 + mov r0, r4 + ldr r1, _0233F2D8 @ =0x00000401 + ldr r0, [r0] + str r1, [r0] +_0233EFE4: + bl FUN_02066494 + cmp r0, #0x1f + bne _0233F2C4 + mov r0, #0xe0 + mov r1, #0x88 + mov r2, #1 + bl FUN_02029F88 + ldr r0, _0233EE08 @ =0x02346BC0 + ldr r1, _0233F2DC @ =0x00000402 + ldr r0, [r0] + str r1, [r0] + bl FUN_02003B94 + b _0233F2C4 +_0233F018: + mov r0, #3 + bl FUN_02048F84 + mov r4, r0 + bl FUN_02029FBC + bl FUN_02003BC8 + cmp r4, #0 + bne _0233F098 + bl ov03_0233CAB8 + cmp r0, #1 + bne _0233F04C + mov r0, #1 + bl ov03_0233CAE8 + b _0233F078 +_0233F04C: + bl ov03_0233CAB8 + cmp r0, #3 + bne _0233F064 + mov r0, #2 + bl ov03_0233CAE8 + b _0233F078 +_0233F064: + bl ov03_0233CAB8 + cmp r0, #5 + bne _0233F078 + mov r0, #3 + bl ov03_0233CAE8 +_0233F078: + mov r0, #0x1c + mov r1, #0x23c + bl FUN_02066468 + ldr r0, _0233EE08 @ =0x02346BC0 + ldr r1, _0233F2E0 @ =0x00000404 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233F098: + cmp r4, #1 + moveq r0, #4 + beq _0233F2C8 + ldr r1, _0233F2E4 @ =0x00000239 + mov r0, #0x1c + bl FUN_02066468 + ldr r0, _0233EE08 @ =0x02346BC0 + ldr r1, _0233F2E8 @ =0x00000403 + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233F0C4: + bl FUN_02066494 + cmp r0, #0x1f + bne _0233F2C4 + bl ov03_0233CAB8 + cmp r0, #1 + bne _0233F114 + bl ov03_0233CFD4 + cmp r0, #0 + mov r0, #0x1c + beq _0233F0F8 + ldr r1, _0233F2EC @ =0x00003882 + bl FUN_02066468 + b _0233F100 +_0233F0F8: + ldr r1, _0233F2F0 @ =0x00003883 + bl FUN_02066468 +_0233F100: + ldr r0, _0233EE08 @ =0x02346BC0 + ldr r1, _0233F2F4 @ =0x0000032A + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233F114: + bl ov03_0233CAB8 + cmp r0, #3 + bne _0233F140 + ldr r1, _0233F2F8 @ =0x00003857 + mov r0, #0x1c + bl FUN_02066468 + mov r0, r4 + ldr r1, _0233F2F4 @ =0x0000032A + ldr r0, [r0] + str r1, [r0] + b _0233F2C4 +_0233F140: + bl ov03_0233CAB8 + cmp r0, #5 + bne _0233F2C4 + mov r0, #3 + b _0233F2C8 +_0233F154: + bl FUN_02066494 + cmp r0, #0x1f + bne _0233F2C4 + mov r0, #1 + b _0233F2C8 +_0233F168: + bl FUN_02066494 + cmp r0, #0x1f + bne _0233F2C4 + mov r0, #3 + b _0233F2C8 +_0233F17C: + bl ov03_0233CAB8 + cmp r0, #1 + bne _0233F1AC + mov r0, #0x11 + bl FUN_023375C0 + str r0, [sp] + mov r0, #0 + ldr r2, _0233F2FC @ =0x0234678C + ldr r3, _0233F300 @ =0x000038A8 + mov r1, r0 + bl FUN_020663C8 + b _0233F200 +_0233F1AC: + cmp r0, #3 + bne _0233F1D8 + mov r0, #0x11 + bl FUN_023375C0 + str r0, [sp] + mov r0, #0 + ldr r2, _0233F2FC @ =0x0234678C + ldr r3, _0233F304 @ =0x000038A9 + mov r1, r0 + bl FUN_020663C8 + b _0233F200 +_0233F1D8: + cmp r0, #5 + bne _0233F200 + mov r0, #0x11 + bl FUN_023375C0 + str r0, [sp] + mov r0, #0 + ldr r2, _0233F2FC @ =0x0234678C + ldr r3, _0233F308 @ =0x000038AA + mov r1, r0 + bl FUN_020663C8 +_0233F200: + ldr r0, _0233EE08 @ =0x02346BC0 + ldr r1, _0233EE10 @ =0x000003F1 + ldr r0, [r0] + str r1, [r0] +_0233F210: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x11 + bl FUN_023375D0 + cmp r4, #0x1d + ldreq r0, _0233EE08 @ =0x02346BC0 + moveq r1, #0x320 + ldreq r0, [r0] + streq r1, [r0] + beq _0233F2C4 + sub r0, r4, #0x1e + cmp r0, #1 + bhi _0233F2C4 + mov r0, #1 + b _0233F2C8 +_0233F258: + bl FUN_02066494 + cmp r0, #0x1f + bne _0233F2C4 + mov r0, #1 + b _0233F2C8 +_0233F26C: + bl FUN_02066494 + b _0233F2C4 +_0233F274: + bl FUN_02066434 + cmp r0, #0x1d + bne _0233F2A0 + ldr r1, _0233F30C @ =0x02346A6C + mov r0, #0x1c + bl FUN_02066478 + mov r0, r4 + ldr r0, [r0] + mov r1, #0x304 + str r1, [r0] + b _0233F2C4 +_0233F2A0: + sub r0, r0, #0x1e + cmp r0, #1 + bhi _0233F2C4 + mov r0, #1 + b _0233F2C8 +_0233F2B4: + bl FUN_02066494 + cmp r0, #0x1f + moveq r0, #3 + beq _0233F2C8 +_0233F2C4: + mov r0, #0 +_0233F2C8: + add sp, sp, #0x6c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0233F2D0: .4byte 0x00000326 +_0233F2D4: .4byte 0x0000023B +_0233F2D8: .4byte 0x00000401 +_0233F2DC: .4byte 0x00000402 +_0233F2E0: .4byte 0x00000404 +_0233F2E4: .4byte 0x00000239 +_0233F2E8: .4byte 0x00000403 +_0233F2EC: .4byte 0x00003882 +_0233F2F0: .4byte 0x00003883 +_0233F2F4: .4byte 0x0000032A +_0233F2F8: .4byte 0x00003857 +_0233F2FC: .4byte 0x0234678C +_0233F300: .4byte 0x000038A8 +_0233F304: .4byte 0x000038A9 +_0233F308: .4byte 0x000038AA +_0233F30C: .4byte 0x02346A6C + arm_func_end ov03_0233DE58 + + arm_func_start ov03_0233F310 +ov03_0233F310: @ 0x0233F310 + push {r4, lr} + mov r4, r0 + mov r0, #0x284 + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233F374 @ =0x02346BC4 + mov r1, #0x284 + str r0, [r2] + bl FUN_02003250 + ldr r0, _0233F374 @ =0x02346BC4 + mov r3, #0xa000 + ldr r1, [r0] + mov r2, #0 + str r3, [r1] + ldr r1, [r0] + strb r4, [r1, #4] + ldr r3, [r0] + add r1, r3, #0x47 + bic r1, r1, #0x1f + str r1, [r3, #0x24] + ldr r1, [r0] + strb r2, [r1, #0x281] + ldr r0, [r0] + strb r2, [r0, #0x283] + pop {r4, pc} + .align 2, 0 +_0233F374: .4byte 0x02346BC4 + arm_func_end ov03_0233F310 + + arm_func_start ov03_0233F378 +ov03_0233F378: @ 0x0233F378 + push {r3, lr} + ldr r0, _0233F3A0 @ =0x02346BC4 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0233F3A0 @ =0x02346BC4 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233F3A0: .4byte 0x02346BC4 + arm_func_end ov03_0233F378 + + arm_func_start ov03_0233F3A4 +ov03_0233F3A4: @ 0x0233F3A4 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0xf4 + ldr r5, _02340318 @ =0x02346BC4 + ldr r3, _0234031C @ =0x00003070 + ldr r4, [r5] + ldr r0, [r4] + cmp r0, r3 + bgt _0233F498 + bge _02340230 + ldr r2, _02340320 @ =0x00000603 + cmp r0, r2 + bgt _0233F42C + bge _0234048C + cmp r0, #0x500 + bgt _0233F404 + bge _0233FC40 + cmp r0, #2 + bgt _023406AC + cmp r0, #0 + blt _023406AC + beq _0233F5A0 + cmp r0, #2 + beq _0233FA18 + b _023406AC +_0233F404: + ldr r2, _02340324 @ =0x00000502 + cmp r0, r2 + bgt _023406AC + sub r1, r2, #1 + cmp r0, r1 + blt _023406AC + beq _0233FDAC + cmp r0, r2 + beq _023403C8 + b _023406AC +_0233F42C: + add r1, r2, #6 + cmp r0, r1 + bgt _0233F474 + add r1, r2, #2 + cmp r0, r1 + blt _0233F464 + beq _023404C4 + add r1, r2, #3 + cmp r0, r1 + beq _023405C0 + add r1, r2, #6 + cmp r0, r1 + beq _0234069C + b _023406AC +_0233F464: + add r1, r2, #1 + cmp r0, r1 + beq _023404A8 + b _023406AC +_0233F474: + ldr r1, _02340328 @ =0x00001004 + cmp r0, r1 + bgt _0233F488 + beq _0233FA74 + b _023406AC +_0233F488: + add r1, r1, #1 + cmp r0, r1 + beq _0233FA94 + b _023406AC +_0233F498: + ldr r2, _0234032C @ =0x00004001 + cmp r0, r2 + bgt _0233F4E8 + bge _0233FB70 + add r1, r3, #2 + cmp r0, r1 + bgt _0233F4C8 + bge _02340388 + sub r1, r2, #0xf90 + cmp r0, r1 + beq _023402D8 + b _023406AC +_0233F4C8: + add r1, r3, #3 + cmp r0, r1 + bgt _0233F4DC + beq _0234039C + b _023406AC +_0233F4DC: + cmp r0, #0x4000 + beq _0233FB24 + b _023406AC +_0233F4E8: + cmp r0, r2, lsl #1 + bgt _0233F500 + bge _023405FC + cmp r0, #0x8000 + beq _023405E4 + b _023406AC +_0233F500: + cmp r0, #0xa000 + bgt _0233F510 + beq _0233F520 + b _023406AC +_0233F510: + add r1, r2, #0x6000 + cmp r0, r1 + beq _0233F578 + b _023406AC +_0233F520: + bl FUN_0204A1CC + bl FUN_022BCA80 + mov r4, r0 + bl FUN_022BCCF4 + mov r1, r5 + ldr r1, [r1] + cmp r4, #3 + strb r0, [r1, #0x280] + bne _0233F55C + bl FUN_02339888 + mov r0, r5 + ldr r1, _02340330 @ =0x0000A001 + ldr r0, [r0] + str r1, [r0] + b _023406AC +_0233F55C: + mov r0, #1 + bl FUN_022BCBAC + mov r0, r5 + ldr r0, [r0] + mov r1, #0 + str r1, [r0] + b _023406AC +_0233F578: + bl FUN_023398A4 + cmp r0, #0 + beq _023406AC + mov r0, #1 + bl FUN_022BCBAC + mov r0, r5 + ldr r0, [r0] + mov r1, #0 + str r1, [r0] + b _023406AC +_0233F5A0: + bl ov03_0233CAB8 + cmp r0, #1 + beq _0233F5C4 + bl ov03_0233CAB8 + cmp r0, #5 + beq _0233F5C4 + bl ov03_0233CAB8 + cmp r0, #3 + bne _0233F684 +_0233F5C4: + ldr r0, _02340318 @ =0x02346BC4 + ldr r1, [r0] + cmp r1, #0 + movne r0, #1 + strne r0, [r1, #0x1c] + ldr r0, _02340318 @ =0x02346BC4 + mov r1, #0x118 + ldr r0, [r0] + add r0, r0, #0x68 + bl FUN_02003250 + ldr r0, _02340318 @ =0x02346BC4 + mov r1, #0x18 + ldr r0, [r0] + add r0, r0, #0x180 + bl FUN_02003250 + ldr r0, _02340318 @ =0x02346BC4 + mov r3, #0x18 + ldr r1, [r0] + mov r2, #0x118 + str r3, [r1, #0x1c4] + ldr r3, [r0] + mov r4, #0 + add r1, r3, #0x180 + str r1, [r3, #0x1c8] + ldr r1, [r0] + ldr r3, _02340334 @ =ov03_023406DC + str r2, [r1, #0x1cc] + ldr r5, [r0] + mov r2, #1 + add r1, r5, #0x68 + str r1, [r5, #0x1d0] + ldr r1, [r0] + strb r4, [r1, #0x1d8] + ldr r1, [r0] + str r3, [r1, #0x1d4] + ldr r1, [r0] + strb r2, [r1, #0x20] + ldr r0, [r0] + add r0, r0, #0x184 + bl FUN_02050B10 + bl ov03_0233CAB8 + cmp r0, #1 + ldr r0, _02340318 @ =0x02346BC4 + moveq r1, #0x4000 + ldr r0, [r0] + movne r1, #0x500 + str r1, [r0] + b _023406AC +_0233F684: + bl ov03_0233CAB8 + cmp r0, #2 + bne _0233F898 + mov r0, r5 + ldr r1, [r0] + cmp r1, #0 + movne r0, #0 + strne r0, [r1, #0x1c] + ldr r0, _02340318 @ =0x02346BC4 + mov r1, #0x118 + ldr r0, [r0] + add r0, r0, #0x68 + bl FUN_02003250 + ldr r0, _02340318 @ =0x02346BC4 + mov r1, #0x18 + ldr r0, [r0] + add r0, r0, #0x180 + bl FUN_02003250 + ldr r0, _02340318 @ =0x02346BC4 + mov r2, #0x118 + ldr r1, [r0] + mov r4, #0x18 + str r2, [r1, #0x1c4] + ldr r2, [r0] + mov r3, #0 + add r1, r2, #0x68 + str r1, [r2, #0x1c8] + ldr r1, [r0] + ldr r2, _02340338 @ =0x02337B68 + str r4, [r1, #0x1cc] + ldr r4, [r0] + add r1, r4, #0x180 + str r1, [r4, #0x1d0] + ldr r1, [r0] + strb r3, [r1, #0x1d8] + ldr r1, [r0] + str r2, [r1, #0x1d4] + ldr r1, [r0] + strb r3, [r1, #0x20] + ldr r0, [r0] + add r0, r0, #0x6c + bl FUN_02050B10 + ldr r0, _02340318 @ =0x02346BC4 + ldr r1, [r0] + ldrb r0, [r1, #0x6c] + cmp r0, #0 + bne _0233F748 + add r0, r1, #0x6c + bl FUN_020250E4 +_0233F748: + ldr r0, _02340318 @ =0x02346BC4 + ldr r0, [r0] + ldrsb r1, [r0, #4] + add r0, r0, #0x80 + bl FUN_0205B794 + ldr r0, _02340318 @ =0x02346BC4 + mov r1, #0x24 + ldr r3, [r0] + ldrb r2, [r3, #0x12e] + strb r2, [r3, #0x282] + ldr r0, [r0] + add r0, r0, #0xb2 + bl FUN_02003250 + ldr r0, _02340318 @ =0x02346BC4 + mov r1, #0x48 + ldr r0, [r0] + add r0, r0, #0xd6 + bl FUN_02003250 + ldr r0, _02340318 @ =0x02346BC4 + mov r2, #0x14 + ldr r1, [r0] + add r0, r1, #0x9d + add r1, r1, #0x6c + bl FUN_020032D4 + ldr r1, _02340318 @ =0x02346BC4 + mov r3, #1 + ldr r0, [r1] + mov r2, #0 + strb r3, [r0, #0x12d] + ldr r0, [r1] + add r0, r0, #0x100 + strh r2, [r0, #0x22] + ldr r0, [r1] + add r0, r0, #0x100 + strh r2, [r0, #0x20] + ldr r0, [r1] + ldr r0, [r0, #0x88] + bl FUN_0205BD90 + ldr r1, _02340318 @ =0x02346BC4 + ldr r2, [r1] + strb r0, [r2, #0x12e] + ldr r0, [r1] + ldrb r0, [r0, #0x282] + bl FUN_0205BD40 + cmp r0, #0 + ldrne r0, _02340318 @ =0x02346BC4 + ldrne r1, [r0] + ldrbne r0, [r1, #0x12e] + andne r0, r0, #1 + strbne r0, [r1, #0x12e] + ldr r0, _02340318 @ =0x02346BC4 + ldr r1, [r0] + ldrb r0, [r1, #0x280] + cmp r0, #0 + beq _0233F874 + add r0, r1, #0x80 + bl FUN_0205B6CC + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + tst r0, #0xff + beq _0233F874 + mov r0, #0x12 + bl FUN_023375C0 + str r0, [sp] + mov r0, #0 + ldr r2, _0234033C @ =0x023467EC + ldr r3, _02340340 @ =0x00003850 + mov r1, r0 + bl FUN_020663C8 + ldr r0, _02340318 @ =0x02346BC4 + mov r1, #2 + ldr r0, [r0] + str r1, [r0] + b _023406AC +_0233F874: + ldr r0, _02340318 @ =0x02346BC4 + mov r2, #1 + ldr r3, [r0] + mov r1, #0 + str r2, [r3, #0x8c] + ldr r0, _02340328 @ =0x00001004 + str r1, [r3, #0x90] + str r0, [r3] + b _023406AC +_0233F898: + bl ov03_0233CAB8 + cmp r0, #0 + beq _0233F8B0 + bl ov03_0233CAB8 + cmp r0, #4 + bne _023406AC +_0233F8B0: + ldr r0, _02340318 @ =0x02346BC4 + ldr r1, [r0] + cmp r1, #0 + movne r0, #0 + strne r0, [r1, #0x1c] + ldr r0, _02340318 @ =0x02346BC4 + mov r1, #0x118 + ldr r0, [r0] + add r0, r0, #0x68 + bl FUN_02003250 + ldr r0, _02340318 @ =0x02346BC4 + mov r1, #0x18 + ldr r0, [r0] + add r0, r0, #0x180 + bl FUN_02003250 + ldr r0, _02340318 @ =0x02346BC4 + mov r2, #0x118 + ldr r1, [r0] + mov r4, #0x18 + str r2, [r1, #0x1c4] + ldr r2, [r0] + mov r3, #0 + add r1, r2, #0x68 + str r1, [r2, #0x1c8] + ldr r1, [r0] + ldr r2, _02340338 @ =0x02337B68 + str r4, [r1, #0x1cc] + ldr r4, [r0] + add r1, r4, #0x180 + str r1, [r4, #0x1d0] + ldr r1, [r0] + strb r3, [r1, #0x1d8] + ldr r1, [r0] + str r2, [r1, #0x1d4] + ldr r1, [r0] + strb r3, [r1, #0x20] + ldr r0, [r0] + add r0, r0, #0x6c + bl FUN_02050B10 + ldr r0, _02340318 @ =0x02346BC4 + ldr r0, [r0] + ldrsb r1, [r0, #4] + add r0, r0, #0x80 + bl FUN_0205B794 + ldr r0, _02340318 @ =0x02346BC4 + mov r1, #0x24 + ldr r3, [r0] + ldrb r2, [r3, #0x12e] + strb r2, [r3, #0x282] + ldr r0, [r0] + add r0, r0, #0xb2 + bl FUN_02003250 + ldr r0, _02340318 @ =0x02346BC4 + mov r1, #0x48 + ldr r0, [r0] + add r0, r0, #0xd6 + bl FUN_02003250 + ldr r0, _02340318 @ =0x02346BC4 + mov r2, #0x14 + ldr r1, [r0] + add r0, r1, #0x9d + add r1, r1, #0x6c + bl FUN_020032D4 + ldr r1, _02340318 @ =0x02346BC4 + mov r3, #1 + ldr r0, [r1] + mov r2, #0 + strb r3, [r0, #0x12d] + ldr r0, [r1] + add r0, r0, #0x100 + strh r2, [r0, #0x22] + ldr r0, [r1] + add r0, r0, #0x100 + strh r2, [r0, #0x20] + ldr r0, [r1] + str r3, [r0, #0x8c] + str r2, [r0, #0x90] + ldrb r0, [r0, #0x282] + bl FUN_0205BD40 + cmp r0, #0 + ldrne r0, _02340318 @ =0x02346BC4 + ldrne r1, [r0] + ldrbne r0, [r1, #0x12e] + andne r0, r0, #1 + strbne r0, [r1, #0x12e] + ldr r0, _02340318 @ =0x02346BC4 + ldr r1, _02340328 @ =0x00001004 + ldr r0, [r0] + str r1, [r0] + b _023406AC +_0233FA18: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x12 + bl FUN_023375D0 + cmp r4, #0x1d + bne _0233FA60 + mov r0, r5 + ldr r3, [r0] + mov r2, #1 + mov r1, #0 + str r2, [r3, #0x8c] + ldr r0, _02340328 @ =0x00001004 + str r1, [r3, #0x90] + str r0, [r3] + b _023406AC +_0233FA60: + sub r0, r4, #0x1e + cmp r0, #1 + bhi _023406AC + mov r0, #1 + b _023406B0 +_0233FA74: + add r0, r4, #0x80 + add r1, r4, #0x130 + bl ov03_023449C4 + mov r0, r5 + ldr r1, _02340344 @ =0x00001005 + ldr r0, [r0] + str r1, [r0] + b _023406AC +_0233FA94: + bl ov03_02344AB8 + mvn r1, #0 + cmp r0, r1 + bne _0233FAB0 + bl ov03_02344A58 + mov r0, #1 + b _023406B0 +_0233FAB0: + cmp r0, #2 + bne _0233FAC4 + bl ov03_02344A58 + mov r0, #1 + b _023406B0 +_0233FAC4: + cmp r0, #3 + bne _0233FAD8 + bl ov03_02344A58 + mov r0, #3 + b _023406B0 +_0233FAD8: + cmp r0, #1 + bne _023406AC + bl ov03_02344AA4 + mov r1, r5 + ldr r1, [r1] + strb r0, [r1, #0x283] + bl ov03_02344A90 + mov r1, r5 + ldr r1, [r1] + strb r0, [r1, #0x17c] + bl ov03_02344A58 + bl ov03_0233CAB8 + cmp r0, #0 + ldr r0, _02340318 @ =0x02346BC4 + moveq r1, #0x4000 + ldr r0, [r0] + movne r1, #0x500 + str r1, [r0] + b _023406AC +_0233FB24: + bl ov03_0233CAB8 + cmp r0, #0 + ldreq r4, _02340348 @ =0x000038C1 + ldreq r5, _0234034C @ =0x023468A4 + ldrne r4, _02340350 @ =0x000038C5 + ldrne r5, _02340354 @ =0x023468C4 + mov r0, #0x13 + bl FUN_023375C0 + str r0, [sp] + mov r0, #0 + mov r1, r0 + mov r2, r5 + mov r3, r4 + bl FUN_020663C8 + ldr r0, _02340318 @ =0x02346BC4 + ldr r1, _0234032C @ =0x00004001 + ldr r0, [r0] + str r1, [r0] + b _023406AC +_0233FB70: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x13 + bl FUN_023375D0 + cmp r4, #0x1b + bne _0233FBD0 + bl ov03_0233CAB8 + cmp r0, #0 + moveq r0, r5 + ldreq r1, [r0] + mov r3, #0 + ldrbeq r0, [r1, #0x282] + andeq r0, r0, #1 + strbeq r0, [r1, #0x12e] + ldr r0, _02340318 @ =0x02346BC4 + mov r1, #0x500 + ldr r2, [r0] + strb r3, [r2, #0x281] + ldr r0, [r0] + str r1, [r0] + b _023406AC +_0233FBD0: + cmp r4, #0x1c + bne _0233FC10 + bl ov03_0233CAB8 + cmp r0, #0 + moveq r0, r5 + ldreq r1, [r0] + mov r3, #1 + ldrbeq r0, [r1, #0x282] + strbeq r0, [r1, #0x12e] + ldr r0, _02340318 @ =0x02346BC4 + mov r1, #0x500 + ldr r2, [r0] + strb r3, [r2, #0x281] + ldr r0, [r0] + str r1, [r0] + b _023406AC +_0233FC10: + sub r0, r4, #0x1e + cmp r0, #1 + bhi _023406AC + bl ov03_0233CAB8 + cmp r0, #0 + moveq r0, r5 + ldreq r1, _02340328 @ =0x00001004 + ldreq r0, [r0] + streq r1, [r0] + beq _023406AC + mov r0, #1 + b _023406B0 +_0233FC40: + add r5, r4, #0x180 + ldr r6, [r4, #0x24] + bl ov03_0233CAB8 + cmp r0, #0 + beq _0233FC60 + bl ov03_0233CAB8 + cmp r0, #1 + bne _0233FC9C +_0233FC60: + ldr r0, _02340318 @ =0x02346BC4 + ldr r0, [r0] + ldrb r0, [r0, #0x281] + cmp r0, #0 + movne r0, #7 + strbne r0, [r6] + movne r0, #0 + moveq r0, #1 + strbeq r0, [r6] + strb r0, [r6, #1] + mov r0, #2 + strb r0, [r4, #0x68] + mov r0, #0x11 + strb r0, [r5] + b _0233FD10 +_0233FC9C: + bl ov03_0233CAB8 + cmp r0, #2 + beq _0233FCB4 + bl ov03_0233CAB8 + cmp r0, #3 + bne _0233FCD8 +_0233FCB4: + mov r0, #2 + strb r0, [r6] + mov r0, #4 + strb r0, [r4, #0x68] + mov r0, #0x11 + strb r0, [r5] + mov r0, #0 + strb r0, [r6, #1] + b _0233FD10 +_0233FCD8: + bl ov03_0233CAB8 + cmp r0, #4 + beq _0233FCF0 + bl ov03_0233CAB8 + cmp r0, #5 + bne _0233FD10 +_0233FCF0: + mov r0, #3 + strb r0, [r6] + mov r0, #8 + strb r0, [r4, #0x68] + mov r0, #0x11 + strb r0, [r5] + mov r0, #0 + strb r0, [r6, #1] +_0233FD10: + bl FUN_020205A0 + strb r0, [r5, #2] + ldrsb r2, [r5, #2] + add r0, r4, #0x6c + mov r1, #0x114 + strb r2, [r4, #0x6a] + bl FUN_02337B3C + strb r0, [r4, #0x6b] + add r0, r5, #4 + mov r1, #0x14 + bl FUN_02337B3C + ldr r1, _02340318 @ =0x02346BC4 + strb r0, [r5, #3] + ldr r3, [r1] + mov r4, #1 + add r0, r3, #0x1c4 + str r0, [sp, #0x34] + str r4, [sp, #0x30] + ldr r1, [r3, #0x1c] + mov r0, #0x20 + str r1, [sp, #0x40] + ldrb r2, [r3, #0x20] + mov r1, #0 + strb r2, [sp, #0x44] + ldr r2, [r3, #0x24] + str r2, [sp, #0x48] + strb r1, [sp, #0x4e] + strh r0, [sp, #0x4c] + ldrb r0, [r3, #0x281] + cmp r0, #0 + moveq r4, r1 + add r0, sp, #0x30 + str r4, [sp, #0x50] + bl FUN_02337BA0 + ldr r0, _02340318 @ =0x02346BC4 + ldr r1, _02340358 @ =0x00000501 + ldr r0, [r0] + str r1, [r0] + b _023406AC +_0233FDAC: + bl FUN_02337E0C + movs r6, r0 + beq _023406AC + mov r0, r5 + ldr r0, [r0] + add r4, r0, #0x68 + add r5, r0, #0x180 + bl FUN_02337C54 + add r0, sp, #0xa4 + bl FUN_02023690 + add r0, sp, #6 + mov r1, #0x2a + bl FUN_02003250 + cmp r6, #0xe + addls pc, pc, r6, lsl #2 + b _023406AC +_0233FDEC: @ jump table + b _023406AC @ case 0 + b _023401AC @ case 1 + b _023406AC @ case 2 + b _023406AC @ case 3 + b _0233FE28 @ case 4 + b _023401D8 @ case 5 + b _023401D8 @ case 6 + b _023401D8 @ case 7 + b _023401D8 @ case 8 + b _023401D8 @ case 9 + b _023401D8 @ case 10 + b _023401D8 @ case 11 + b _023401D8 @ case 12 + b _023401D8 @ case 13 + b _023401D8 @ case 14 +_0233FE28: + ldr r0, _02340318 @ =0x02346BC4 + ldr r0, [r0] + ldrb r0, [r0, #0x283] + cmp r0, #0 + beq _0233FE50 + bl FUN_0204FF80 + ldr r0, _02340318 @ =0x02346BC4 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x283] +_0233FE50: + bl ov03_0233CAB8 + cmp r0, #1 + bne _0233FEC4 + bl FUN_020205A0 + ldrsb r1, [r4, #2] + cmp r1, r0 + add r0, sp, #6 + bne _0233FE80 + add r1, r4, #4 + mov r2, #0x14 + bl FUN_020251F4 + b _0233FE88 +_0233FE80: + ldr r1, _0234035C @ =0x000038C9 + bl FUN_020258B8 +_0233FE88: + ldr r1, _02340360 @ =0x0000387F + add r3, sp, #6 + add r2, sp, #0xa4 + mov r0, #0x1c + str r3, [sp, #0xdc] + bl FUN_02066488 + add r0, r4, #0x2c + bl FUN_0205B890 + mov r1, #2 + add r0, r4, #0x18 + strb r1, [r4, #0x18] + bl FUN_0205B6EC + add r0, r4, #0x18 + bl FUN_02069790 + b _02340198 +_0233FEC4: + bl ov03_0233CAB8 + cmp r0, #0 + bne _0233FF18 + bl FUN_020205A0 + ldrsb r1, [r5, #2] + cmp r1, r0 + add r0, sp, #6 + bne _0233FEF4 + add r1, r5, #4 + mov r2, #0x14 + bl FUN_020251F4 + b _0233FEFC +_0233FEF4: + ldr r1, _0234035C @ =0x000038C9 + bl FUN_020258B8 +_0233FEFC: + ldr r1, _02340364 @ =0x0000385D + add r3, sp, #6 + add r2, sp, #0xa4 + mov r0, #0x1c + str r3, [sp, #0xdc] + bl FUN_02066488 + b _02340198 +_0233FF18: + bl ov03_0233CAB8 + cmp r0, #3 + bne _0234005C + mov r5, #0 + bl FUN_020205A0 + ldrsb r1, [r4, #2] + cmp r1, r0 + add r0, sp, #6 + bne _0233FF4C + add r1, r4, #4 + mov r2, #0x14 + bl FUN_020251F4 + b _0233FF54 +_0233FF4C: + ldr r1, _0234035C @ =0x000038C9 + bl FUN_020258B8 +_0233FF54: + ldr r1, _02340368 @ =0x00003854 + add r3, sp, #6 + add r2, sp, #0xa4 + mov r0, #0x1c + str r3, [sp, #0xdc] + bl FUN_02066488 + add r1, r4, #0x2c + mov r0, #1 + bl FUN_0205BA0C + lsl r0, r0, #0x18 + asr r0, r0, #0x18 + bl FUN_0205B77C + mov r1, #7 + strb r1, [r0] + ldrb r2, [r4, #0xc6] + mov r1, #5 + strb r2, [r0, #0xae] + add r0, r4, #0x18 + strb r1, [r4, #0x18] + bl FUN_0205B738 + ldr r0, _02340318 @ =0x02346BC4 + ldr r1, [r0] + add r0, r1, #0x100 + ldrsh r0, [r0, #0x22] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + tst r0, #0xff + beq _0233FFE0 + add r0, r4, #0xb6 + bl FUN_0205BCC4 + mov r0, #0 + mov r1, r0 + bl FUN_0205BC30 + b _02340048 +_0233FFE0: + ldrb r0, [r1, #0x17c] + cmp r0, #0 + beq _02340034 + add r0, r1, #0x100 + ldrh r1, [r0, #0x30] + and r1, r1, #1 + strh r1, [r0, #0x30] + ldrb r0, [r4, #0xc6] + bl FUN_0205BD5C + ldr r2, _02340318 @ =0x02346BC4 + mov r1, r0 + ldr r0, [r2] + add r0, r0, #0x130 + bl FUN_0205BC30 + mov r0, #0 + bl FUN_0205BCC4 + ldr r0, _02340318 @ =0x02346BC4 + ldr r0, [r0] + add r0, r0, #0x100 + ldrsh r5, [r0, #0x38] + b _02340048 +_02340034: + mov r0, #0 + bl FUN_0205BCC4 + mov r0, #0 + mov r1, r0 + bl FUN_0205BC30 +_02340048: + add r0, r4, #0x18 + bl FUN_02069790 + mov r0, r5 + bl FUN_02069940 + b _02340198 +_0234005C: + bl ov03_0233CAB8 + cmp r0, #2 + bne _023400B0 + bl FUN_020205A0 + ldrsb r1, [r5, #2] + cmp r1, r0 + add r0, sp, #6 + bne _0234008C + add r1, r5, #4 + mov r2, #0x14 + bl FUN_020251F4 + b _02340094 +_0234008C: + ldr r1, _0234035C @ =0x000038C9 + bl FUN_020258B8 +_02340094: + ldr r1, _0234036C @ =0x0000386C + add r3, sp, #6 + add r2, sp, #0xa4 + mov r0, #0x1c + str r3, [sp, #0xdc] + bl FUN_02066488 + b _02340198 +_023400B0: + bl ov03_0233CAB8 + cmp r0, #5 + bne _02340148 + bl FUN_020205A0 + ldrsb r1, [r4, #2] + cmp r1, r0 + add r0, sp, #6 + bne _023400E0 + add r1, r4, #4 + mov r2, #0x14 + bl FUN_020251F4 + b _023400E8 +_023400E0: + ldr r1, _0234035C @ =0x000038C9 + bl FUN_020258B8 +_023400E8: + ldr r1, _02340370 @ =0x00003892 + add r3, sp, #6 + add r2, sp, #0xa4 + mov r0, #0x1c + str r3, [sp, #0xdc] + bl FUN_02066488 + add r1, r4, #0x2c + mov r0, #4 + bl FUN_0205BA0C + lsl r0, r0, #0x18 + mov r1, #6 + asr r0, r0, #0x18 + strb r1, [r4, #0x18] + bl FUN_0205B77C + mov ip, r0 + add r6, r4, #0x18 + mov r5, #0xb +_0234012C: + ldm r6!, {r0, r1, r2, r3} + stm ip!, {r0, r1, r2, r3} + subs r5, r5, #1 + bne _0234012C + add r0, r4, #0x18 + bl FUN_02069790 + b _02340198 +_02340148: + bl ov03_0233CAB8 + cmp r0, #4 + bne _02340198 + bl FUN_020205A0 + ldrsb r1, [r5, #2] + cmp r1, r0 + add r0, sp, #6 + bne _02340178 + add r1, r5, #4 + mov r2, #0x14 + bl FUN_020251F4 + b _02340180 +_02340178: + ldr r1, _0234035C @ =0x000038C9 + bl FUN_020258B8 +_02340180: + ldr r1, _02340374 @ =0x0000389B + add r3, sp, #6 + add r2, sp, #0xa4 + mov r0, #0x1c + str r3, [sp, #0xdc] + bl FUN_02066488 +_02340198: + ldr r0, _02340318 @ =0x02346BC4 + ldr r1, _02340324 @ =0x00000502 + ldr r0, [r0] + str r1, [r0] + b _023406AC +_023401AC: + bl ov03_0233CAB8 + cmp r0, #0 + beq _023401C4 + bl ov03_0233CAB8 + cmp r0, #1 + bne _023401D8 +_023401C4: + ldr r0, _02340318 @ =0x02346BC4 + mov r1, #0x4000 + ldr r0, [r0] + str r1, [r0] + b _023406AC +_023401D8: + bl ov03_0233CAB8 + cmp r0, #0 + beq _023401FC + bl ov03_0233CAB8 + cmp r0, #2 + beq _023401FC + bl ov03_0233CAB8 + cmp r0, #4 + bne _02340228 +_023401FC: + ldr r0, _02340318 @ =0x02346BC4 + ldr r1, [r0] + add r0, r1, #0x100 + ldrsh r0, [r0, #0x22] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + tst r0, #0xff + ldrne r0, _0234031C @ =0x00003070 + strne r0, [r1] + bne _023406AC +_02340228: + mov r0, #1 + b _023406B0 +_02340230: + mov r0, #0x100 + mov r1, #0xf + bl FUN_02001170 + mov r4, r0 + add r0, sp, #0x54 + bl FUN_02023690 + mov r0, r5 + ldr r1, [r0] + ldrb r0, [r1, #0x283] + cmp r0, #0 + beq _02340280 + add r0, r1, #0x1e + add r0, r0, #0x100 + mov r1, #0xb4 + mov r2, #0 + bl FUN_0200CF58 + mov r0, r5 + ldr r0, [r0] + mov r1, #0 + strb r1, [r0, #0x283] +_02340280: + mov r1, #0 + ldr r0, _02340318 @ =0x02346BC4 + str r1, [sp] + ldr r0, [r0] + ldr r2, _02340378 @ =0x02346A84 + add r1, r0, #0x1e + mov r0, r4 + add r1, r1, #0x100 + mov r3, #1 + bl FUN_0200D310 + ldr r1, _0234037C @ =0x000038A6 + add r2, sp, #0x54 + mov r0, #0x1c + str r4, [sp, #0x8c] + bl FUN_02066488 + mov r0, r4 + bl FUN_02001188 + ldr r0, _02340318 @ =0x02346BC4 + ldr r1, _02340380 @ =0x00003071 + ldr r0, [r0] + str r1, [r0] + b _023406AC +_023402D8: + bl FUN_02066494 + cmp r0, #0x1f + bne _023406AC + mov r0, r5 + ldr r0, [r0] + add r4, r0, #0x80 + add r0, r4, #0x9e + bl FUN_020103AC + mov r1, #0 + strh r1, [r4, #0xa2] + strh r1, [r4, #0xa0] + mov r0, r5 + ldr r0, [r0] + ldr r1, _02340384 @ =0x00003072 + str r1, [r0] + b _023406AC + .align 2, 0 +_02340318: .4byte 0x02346BC4 +_0234031C: .4byte 0x00003070 +_02340320: .4byte 0x00000603 +_02340324: .4byte 0x00000502 +_02340328: .4byte 0x00001004 +_0234032C: .4byte 0x00004001 +_02340330: .4byte 0x0000A001 +_02340334: .4byte ov03_023406DC +_02340338: .4byte 0x02337B68 +_0234033C: .4byte 0x023467EC +_02340340: .4byte 0x00003850 +_02340344: .4byte 0x00001005 +_02340348: .4byte 0x000038C1 +_0234034C: .4byte 0x023468A4 +_02340350: .4byte 0x000038C5 +_02340354: .4byte 0x023468C4 +_02340358: .4byte 0x00000501 +_0234035C: .4byte 0x000038C9 +_02340360: .4byte 0x0000387F +_02340364: .4byte 0x0000385D +_02340368: .4byte 0x00003854 +_0234036C: .4byte 0x0000386C +_02340370: .4byte 0x00003892 +_02340374: .4byte 0x0000389B +_02340378: .4byte 0x02346A84 +_0234037C: .4byte 0x000038A6 +_02340380: .4byte 0x00003071 +_02340384: .4byte 0x00003072 +_02340388: + mov r0, #0 + str r0, [r4, #0x27c] + ldr r0, [r5] + add r1, r3, #3 + str r1, [r0] +_0234039C: + bl ov03_02340A28 + cmp r0, #1 + moveq r0, #1 + beq _023406B0 + cmp r0, #3 + moveq r0, #3 + beq _023406B0 + cmp r0, #2 + bne _023406AC + mov r0, #1 + b _023406B0 +_023403C8: + bl FUN_02066494 + mov r4, r0 + bl FUN_020698B8 + cmp r4, #0x1f + bne _023406AC + bl FUN_02069904 + bl ov03_0233CAB8 + cmp r0, #3 + bne _02340464 + mov r0, r5 + ldr r1, [r0] + add r0, r1, #0x100 + ldrsh r0, [r0, #0x22] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + tst r0, #0xff + beq _02340430 + ldr r1, _023406B8 @ =0x00003851 + mov r0, #0x1c + bl FUN_02066468 + ldr r0, _02340318 @ =0x02346BC4 + ldr r1, _02340320 @ =0x00000603 + ldr r0, [r0] + str r1, [r0] + b _023406AC +_02340430: + ldrb r0, [r1, #0x17c] + cmp r0, #0 + moveq r0, #0x8000 + streq r0, [r1] + beq _023406AC + ldr r1, _023406BC @ =0x00003852 + mov r0, #0x1c + bl FUN_02066468 + ldr r0, _02340318 @ =0x02346BC4 + ldr r1, _023406C0 @ =0x00000604 + ldr r0, [r0] + str r1, [r0] + b _023406AC +_02340464: + bl ov03_0233CAB8 + cmp r0, #5 + mov r0, r5 + ldreq r1, _023406C4 @ =0x00000605 + ldreq r0, [r0] + streq r1, [r0] + ldrne r0, [r0] + movne r1, #0x8000 + strne r1, [r0] + b _023406AC +_0234048C: + bl FUN_02066494 + cmp r0, #0x1f + moveq r0, r5 + ldreq r0, [r0] + moveq r1, #0x8000 + streq r1, [r0] + b _023406AC +_023404A8: + bl FUN_02066494 + cmp r0, #0x1f + moveq r0, r5 + ldreq r0, [r0] + moveq r1, #0x8000 + streq r1, [r0] + b _023406AC +_023404C4: + add r0, r4, #0x198 + bl FUN_0206351C + mov r1, r5 + ldr r2, [r1] + mov r3, #2 + strb r3, [r2, #0x19a] + ldr r1, [r1] + mov r0, #6 + add r1, r1, #0x94 + bl FUN_0205BA0C + lsl r0, r0, #0x18 + asr r0, r0, #0x18 + bl FUN_0205B77C + ldrsh r5, [r0, #0xa2] + add r2, sp, #4 + mov r1, #0 + cmp r5, #0 + beq _0234055C + ldr r4, _02340318 @ =0x02346BC4 + ldr r3, [r4] + add r3, r3, #0x100 + strh r5, [r3, #0xac] + ldrh r5, [r0, #0xa0] + ldr r3, [r4] + add r0, r0, #4 + add r3, r3, #0x100 + strh r5, [r3, #0xaa] + bl FUN_020630A4 + mov r0, r4 + ldr r0, [r0] + ldrsh r1, [sp, #4] + add r0, r0, #0xae + mov r2, #0 + add r0, r0, #0x100 + bl FUN_0200CF58 + mov r0, r4 + mov r1, #2 + b _02340584 +_0234055C: + add r0, r0, #4 + bl FUN_020630A4 + ldr r0, _02340318 @ =0x02346BC4 + ldrsh r1, [sp, #4] + ldr r0, [r0] + mov r2, #0 + add r0, r0, #0x1a8 + bl FUN_0200CF58 + ldr r0, _02340318 @ =0x02346BC4 + mov r1, #1 +_02340584: + ldr r0, [r0] + mov r2, #0x10 + str r1, [r0, #0x1a4] + ldr r0, _02340318 @ =0x02346BC4 + mov r1, #0 + ldr r3, [r0] + str r1, [r3, #0x1c0] + ldr r0, [r0] + add r0, r0, #0x198 + bl FUN_0203D438 + ldr r0, _02340318 @ =0x02346BC4 + ldr r1, _023406C8 @ =0x00000606 + ldr r0, [r0] + str r1, [r0] + b _023406AC +_023405C0: + bl FUN_0203D538 + cmp r0, #1 + bne _023406AC + bl FUN_0203EFD4 + mov r0, r5 + ldr r0, [r0] + mov r1, #0x8000 + str r1, [r0] + b _023406AC +_023405E4: + mov r0, #0 + str r0, [r4, #0x27c] + ldr r0, [r5] + lsl r1, r2, #1 + str r1, [r0] + b _023406AC +_023405FC: + bl ov03_02340A28 + cmp r0, #1 + bne _02340680 + bl ov03_0233CAB8 + cmp r0, #1 + bne _0234064C + bl ov03_0233CFD4 + cmp r0, #0 + mov r0, #0x1c + beq _02340630 + ldr r1, _023406CC @ =0x00003882 + bl FUN_02066468 + b _02340638 +_02340630: + ldr r1, _023406D0 @ =0x00003883 + bl FUN_02066468 +_02340638: + ldr r0, _02340318 @ =0x02346BC4 + ldr r1, _023406D4 @ =0x00000609 + ldr r0, [r0] + str r1, [r0] + b _023406AC +_0234064C: + bl ov03_0233CAB8 + cmp r0, #3 + bne _02340678 + ldr r1, _023406D8 @ =0x00003857 + mov r0, #0x1c + bl FUN_02066468 + mov r0, r5 + ldr r1, _023406D4 @ =0x00000609 + ldr r0, [r0] + str r1, [r0] + b _023406AC +_02340678: + mov r0, #2 + b _023406B0 +_02340680: + cmp r0, #3 + moveq r0, #3 + beq _023406B0 + cmp r0, #2 + bne _023406AC + mov r0, #1 + b _023406B0 +_0234069C: + bl FUN_02066494 + cmp r0, #0x1f + moveq r0, #2 + beq _023406B0 +_023406AC: + mov r0, #0 +_023406B0: + add sp, sp, #0xf4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_023406B8: .4byte 0x00003851 +_023406BC: .4byte 0x00003852 +_023406C0: .4byte 0x00000604 +_023406C4: .4byte 0x00000605 +_023406C8: .4byte 0x00000606 +_023406CC: .4byte 0x00003882 +_023406D0: .4byte 0x00003883 +_023406D4: .4byte 0x00000609 +_023406D8: .4byte 0x00003857 + arm_func_end ov03_0233F3A4 + + arm_func_start ov03_023406DC +ov03_023406DC: @ 0x023406DC + push {r4, lr} + sub sp, sp, #8 + mov r4, r0 + bl ov03_0233CAB8 + cmp r0, #1 + beq _0234070C + bl ov03_0233CAB8 + cmp r0, #3 + beq _0234070C + bl ov03_0233CAB8 + cmp r0, #5 + bne _02340A1C +_0234070C: + add r0, r4, #4 + mov r1, #0x114 + bl FUN_02337B3C + ldrb r1, [r4, #3] + cmp r0, r1 + movne r0, #3 + bne _02340A20 + bl ov03_0233CAB8 + cmp r0, #1 + bne _02340794 + ldrb r0, [r4] + cmp r0, #2 + mov r0, #2 + bne _02340A20 + add r1, r4, #0x2c + bl FUN_0205B918 + cmp r0, #0 + bne _0234078C + add r1, r4, #0x2c + mov r0, #4 + bl FUN_0205B918 + cmp r0, #0 + bne _0234078C + add r1, r4, #0x2c + mov r0, #6 + bl FUN_0205B918 + cmp r0, #0 + bne _0234078C + add r0, r4, #0x2c + bl FUN_0205B8CC + cmp r0, #0 + beq _02340A14 +_0234078C: + mov r0, #4 + b _02340A20 +_02340794: + bl ov03_0233CAB8 + cmp r0, #3 + bne _023408F4 + ldrb r0, [r4] + cmp r0, #4 + movne r0, #2 + bne _02340A20 + ldrsh r0, [r4, #0xba] + cmp r0, #0 + beq _0234087C + ldrsh r0, [r4, #0xba] + bl FUN_0200EB58 + cmp r0, #0 + beq _023407E0 + add r0, r4, #0x18 + mov r1, #0 + bl FUN_02062E34 + cmp r0, #0 + bne _023407E8 +_023407E0: + mov r0, #6 + b _02340A20 +_023407E8: + ldrsh r0, [r4, #0xba] + bl FUN_0200E808 + cmp r0, #0xc + bgt _02340818 + bge _02340850 + cmp r0, #1 + bgt _0234087C + cmp r0, #0 + blt _0234087C + cmpne r0, #1 + beq _02340834 + b _0234087C +_02340818: + cmp r0, #0xe + bgt _0234087C + cmp r0, #0xd + blt _0234087C + cmpne r0, #0xe + beq _02340850 + b _0234087C +_02340834: + ldrh r0, [r4, #0xb8] + cmp r0, #0 + beq _02340848 + cmp r0, #0x64 + blo _0234087C +_02340848: + mov r0, #6 + b _02340A20 +_02340850: + ldrsh r0, [r4, #0xb8] + bl FUN_0200EB58 + cmp r0, #0 + beq _02340874 + add r0, r4, #0x18 + mov r1, #1 + bl FUN_02062E34 + cmp r0, #0 + bne _0234087C +_02340874: + mov r0, #6 + b _02340A20 +_0234087C: + ldrb r0, [r4, #0x114] + cmp r0, #0 + beq _023408D8 + ldrsh r0, [r4, #0xd0] + bl FUN_02062B64 + cmp r0, #0 + bne _023408D0 + ldrb r0, [r4, #0xc6] + ldrsh r1, [r4, #0xd0] + add r2, r4, #0xf2 + bl FUN_0205C700 + cmp r0, #0 + beq _023408D0 + ldrb r0, [r4, #0xcc] + cmp r0, #1 + blo _023408D0 + cmp r0, #0x64 + bhi _023408D0 + ldrb r0, [r4, #0xec] + cmp r0, #0xb + blo _023408D8 +_023408D0: + mov r0, #6 + b _02340A20 +_023408D8: + add r1, r4, #0x2c + mov r0, #1 + bl FUN_0205B918 + cmp r0, #0 + bne _02340A14 + mov r0, #5 + b _02340A20 +_023408F4: + bl ov03_0233CAB8 + cmp r0, #5 + bne _02340A14 + ldrb r0, [r4] + cmp r0, #8 + movne r0, #2 + bne _02340A20 + ldrsh r0, [r4, #0xba] + cmp r0, #0 + beq _023409DC + ldrsh r0, [r4, #0xba] + bl FUN_0200EB58 + cmp r0, #0 + beq _02340940 + add r0, r4, #0x18 + mov r1, #0 + bl FUN_02062E34 + cmp r0, #0 + bne _02340948 +_02340940: + mov r0, #6 + b _02340A20 +_02340948: + ldrsh r0, [r4, #0xba] + bl FUN_0200E808 + cmp r0, #0xc + bgt _02340978 + bge _023409B0 + cmp r0, #1 + bgt _023409DC + cmp r0, #0 + blt _023409DC + cmpne r0, #1 + beq _02340994 + b _023409DC +_02340978: + cmp r0, #0xe + bgt _023409DC + cmp r0, #0xd + blt _023409DC + cmpne r0, #0xe + beq _023409B0 + b _023409DC +_02340994: + ldrh r0, [r4, #0xb8] + cmp r0, #0 + beq _023409A8 + cmp r0, #0x64 + blo _023409DC +_023409A8: + mov r0, #6 + b _02340A20 +_023409B0: + ldrsh r0, [r4, #0xb8] + bl FUN_0200EB58 + cmp r0, #0 + beq _023409D4 + add r0, r4, #0x18 + mov r1, #1 + bl FUN_02062E34 + cmp r0, #0 + bne _023409DC +_023409D4: + mov r0, #6 + b _02340A20 +_023409DC: + add r0, sp, #0 + bl FUN_0205B584 + add r1, r4, #0x2c + mov r0, #4 + bl FUN_0205B918 + cmp r0, #0 + beq _02340A0C + add r1, sp, #0 + add r0, r4, #0xbc + bl FUN_0205B554 + cmp r0, #0 + bne _02340A14 +_02340A0C: + mov r0, #5 + b _02340A20 +_02340A14: + mov r0, #1 + b _02340A20 +_02340A1C: + mov r0, #0 +_02340A20: + add sp, sp, #8 + pop {r4, pc} + arm_func_end ov03_023406DC + + arm_func_start ov03_02340A28 +ov03_02340A28: @ 0x02340A28 + push {r3, r4, r5, lr} + ldr r0, _02340B1C @ =0x02346BC4 + ldr r4, [r0] + ldr r0, [r4, #0x27c] + cmp r0, #4 + addls pc, pc, r0, lsl #2 + b _02340B14 +_02340A44: @ jump table + b _02340A58 @ case 0 + b _02340A6C @ case 1 + b _02340A98 @ case 2 + b _02340AF0 @ case 3 + b _02340B04 @ case 4 +_02340A58: + ldr r1, _02340B20 @ =0x0000023B + mov r0, #0 + bl FUN_02066468 + mov r0, #1 + str r0, [r4, #0x27c] +_02340A6C: + bl FUN_02066494 + cmp r0, #0x1f + bne _02340B14 + mov r0, #0xe0 + mov r1, #0x88 + mov r2, #1 + bl FUN_02029F88 + mov r0, #2 + str r0, [r4, #0x27c] + bl FUN_02003B94 + b _02340B14 +_02340A98: + mov r0, #3 + bl FUN_02048F84 + mov r5, r0 + bl FUN_02003BC8 + bl FUN_02029FBC + cmp r5, #0 + bne _02340ACC + mov r0, #0x1c + mov r1, #0x23c + bl FUN_02066468 + mov r0, #3 + str r0, [r4, #0x27c] + b _02340B14 +_02340ACC: + cmp r5, #1 + moveq r0, #3 + popeq {r3, r4, r5, pc} + ldr r1, _02340B24 @ =0x00000239 + mov r0, #0x1c + bl FUN_02066468 + mov r0, #4 + str r0, [r4, #0x27c] + b _02340B14 +_02340AF0: + bl FUN_02066494 + cmp r0, #0x1f + bne _02340B14 + mov r0, #1 + pop {r3, r4, r5, pc} +_02340B04: + bl FUN_02066494 + cmp r0, #0x1f + moveq r0, #2 + popeq {r3, r4, r5, pc} +_02340B14: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_02340B1C: .4byte 0x02346BC4 +_02340B20: .4byte 0x0000023B +_02340B24: .4byte 0x00000239 + arm_func_end ov03_02340A28 + + arm_func_start ov03_02340B28 +ov03_02340B28: @ 0x02340B28 + push {r3, r4, r5, r6, r7, lr} + mov r4, r0 + ldr r0, _02340C94 @ =0x00001AEC + mov r1, #8 + bl FUN_02001170 + ldr r2, _02340C98 @ =0x02346BC8 + ldr r1, _02340C94 @ =0x00001AEC + str r0, [r2] + bl FUN_02003250 + ldr r1, _02340C98 @ =0x02346BC8 + mov r3, #0 + ldr r0, [r1] + sub r2, r3, #2 + str r3, [r0] + ldr r0, [r1] + add r0, r0, #0x1000 + strb r4, [r0, #0x610] + ldr r0, [r1] + add r0, r0, #0x1000 + strb r3, [r0, #0x660] + ldr r0, [r1] + str r3, [r0, #8] + ldr r0, [r1] + add r0, r0, #0x1000 + strb r2, [r0, #0x661] + bl ov03_0233CAB8 + cmp r0, #5 + bne _02340C04 + mov r4, #0 + ldr r7, _02340C98 @ =0x02346BC8 + mov r5, r4 + mov r6, #0xb0 +_02340BA8: + lsl r0, r4, #0x18 + asr r0, r0, #0x18 + bl FUN_0205B77C + ldrb r1, [r0] + cmp r1, #4 + bne _02340BE8 + bl FUN_0205B6CC + cmp r0, #0 + beq _02340BE8 + ldr r0, [r7] + lsl r1, r4, #0x18 + add r0, r0, #0x10 + mla r0, r5, r6, r0 + asr r1, r1, #0x18 + bl FUN_0205B794 + add r5, r5, #1 +_02340BE8: + add r4, r4, #1 + cmp r4, #0x20 + blt _02340BA8 + ldr r0, _02340C98 @ =0x02346BC8 + ldr r0, [r0] + str r5, [r0, #0xc] + b _02340C30 +_02340C04: + ldr r0, _02340C98 @ =0x02346BC8 + mov r2, #1 + ldr r1, [r0] + cmp r4, #0 + str r2, [r1, #0xc] + blt _02340C30 + ldr r2, [r0] + add r0, r2, #0x1600 + ldrsb r1, [r0, #0x10] + add r0, r2, #0x10 + bl FUN_0205B794 +_02340C30: + ldr r2, _02340C98 @ =0x02346BC8 + mov r0, #0 + ldr r1, [r2] + add r1, r1, #0x1000 + strb r0, [r1, #0xae9] + ldr r1, [r2] + add r1, r1, #0x1000 + ldrb r3, [r1, #0xae9] + strb r3, [r1, #0xaea] + ldr r1, [r2] + add r1, r1, #0x1000 + strb r0, [r1, #0x9dc] + ldr r4, [r2] + add r1, r4, #0x338 + add r1, r1, #0x1400 + add r1, r1, #0x1f + bic r3, r1, #0x1f + add r1, r4, #0x1000 + str r3, [r1, #0x958] + ldr r1, [r2] + str r0, [r1, #4] + ldr r1, [r2] + add r1, r1, #0x1000 + str r0, [r1, #0xae4] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02340C94: .4byte 0x00001AEC +_02340C98: .4byte 0x02346BC8 + arm_func_end ov03_02340B28 + + arm_func_start ov03_02340C9C +ov03_02340C9C: @ 0x02340C9C + push {r3, lr} + ldr r0, _02340CD4 @ =0x02346BC8 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + mov r0, #1 + bl FUN_022BCBAC + ldr r0, _02340CD4 @ =0x02346BC8 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _02340CD4 @ =0x02346BC8 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_02340CD4: .4byte 0x02346BC8 + arm_func_end ov03_02340C9C + + arm_func_start ov03_02340CD8 +ov03_02340CD8: @ 0x02340CD8 + push {r3, lr} + ldr r0, _02340DAC @ =0x02346BC8 + ldr r0, [r0] + ldr r0, [r0, #4] + cmp r0, #0 + bne _02340D5C + bl ov03_02340DB4 + cmp r0, #1 + bne _02340D28 + bl FUN_022BD274 + cmp r0, #0 + beq _02340D20 + ldr r0, _02340DAC @ =0x02346BC8 + mov r1, #0xf000 + ldr r0, [r0] + str r1, [r0, #4] + bl FUN_0233769C + b _02340DA4 +_02340D20: + mov r0, #1 + pop {r3, pc} +_02340D28: + cmp r0, #2 + popne {r3, pc} + bl FUN_022BD274 + cmp r0, #0 + beq _02340D54 + ldr r0, _02340DAC @ =0x02346BC8 + ldr r1, _02340DB0 @ =0x0000F001 + ldr r0, [r0] + str r1, [r0, #4] + bl FUN_0233769C + b _02340DA4 +_02340D54: + mov r0, #2 + pop {r3, pc} +_02340D5C: + bl FUN_02337718 + cmp r0, #1 + cmpne r0, #3 + bne _02340D90 + bl FUN_023376DC + ldr r1, _02340DAC @ =0x02346BC8 + ldr r0, _02340DB0 @ =0x0000F001 + ldr r1, [r1] + ldr r1, [r1, #4] + cmp r1, r0 + moveq r0, #2 + movne r0, #1 + pop {r3, pc} +_02340D90: + cmp r0, #2 + bne _02340DA4 + bl FUN_023376DC + mov r0, #4 + pop {r3, pc} +_02340DA4: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_02340DAC: .4byte 0x02346BC8 +_02340DB0: .4byte 0x0000F001 + arm_func_end ov03_02340CD8 + + arm_func_start ov03_02340DB4 +ov03_02340DB4: @ 0x02340DB4 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x310 + ldr r4, _02341D00 @ =0x02346BC8 + ldr r1, _02341D04 @ =0x00005011 + ldr r5, [r4] + ldr r2, [r5] + cmp r2, r1 + bgt _02340FA4 + bge _02343720 + ldr r3, _02341D08 @ =0x00004002 + cmp r2, r3 + bgt _02340EC0 + bge _02341A38 + ldr r1, _02341D0C @ =0x00003070 + cmp r2, r1 + bgt _02340E7C + bge _02341920 + ldr r1, _02341D10 @ =0x00001001 + cmp r2, r1 + bgt _02340E30 + bge _02341518 + cmp r2, #2 + bgt _02344184 + cmp r2, #0 + blt _02344184 + beq _02341134 + cmp r2, #1 + beq _0234116C + cmp r2, #2 + beq _02341188 + b _02344184 +_02340E30: + add r0, r1, #1 + cmp r2, r0 + bgt _02340E44 + beq _02341704 + b _02344184 +_02340E44: + add r0, r1, #4 + cmp r2, r0 + bgt _02344184 + add r0, r1, #2 + cmp r2, r0 + blt _02344184 + beq _0234174C + add r0, r1, #3 + cmp r2, r0 + beq _023417B0 + add r0, r1, #4 + cmp r2, r0 + beq _0234180C + b _02344184 +_02340E7C: + add r0, r1, #2 + cmp r2, r0 + bgt _02340E9C + bge _023419E0 + add r0, r1, #1 + cmp r2, r0 + beq _023419AC + b _02344184 +_02340E9C: + add r0, r1, #3 + cmp r2, r0 + bgt _02340EB0 + beq _023419F4 + b _02344184 +_02340EB0: + sub r0, r3, #1 + cmp r2, r0 + beq _02341A20 + b _02344184 +_02340EC0: + sub r0, r1, #0xe + cmp r2, r0 + bgt _02340F4C + bge _023431EC + add r0, r3, #2 + cmp r2, r0 + bgt _02340EF0 + bge _02341C88 + add r0, r3, #1 + cmp r2, r0 + beq _02341B80 + b _02344184 +_02340EF0: + add r0, r3, #0xe + cmp r2, r0 + bgt _02340F3C + add r0, r3, #3 + subs r0, r2, r0 + addpl pc, pc, r0, lsl #2 + b _02344184 +_02340F0C: @ jump table + b _023421F4 @ case 0 + b _0234258C @ case 1 + b _023427CC @ case 2 + b _023428C0 @ case 3 + b _02344184 @ case 4 + b _02344184 @ case 5 + b _02344184 @ case 6 + b _02344184 @ case 7 + b _02344184 @ case 8 + b _02344184 @ case 9 + b _02344184 @ case 10 + b _0234290C @ case 11 +_02340F3C: + ldr r0, _02341D14 @ =0x00005001 + cmp r2, r0 + beq _02342EFC + b _02344184 +_02340F4C: + sub r0, r1, #0xa + cmp r2, r0 + bgt _02340F80 + bge _0234338C + sub r0, r1, #0xd + cmp r2, r0 + bgt _02340F70 + beq _0234321C + b _02344184 +_02340F70: + sub r0, r1, #0xb + cmp r2, r0 + beq _02343368 + b _02344184 +_02340F80: + sub r0, r1, #9 + cmp r2, r0 + bgt _02340F94 + beq _023435FC + b _02344184 +_02340F94: + sub r0, r1, #1 + cmp r2, r0 + beq _02343678 + b _02344184 +_02340FA4: + ldr r0, _02341D18 @ =0x00006002 + cmp r2, r0 + bgt _02341084 + bge _02343DA4 + add r3, r1, #0xf8 + cmp r2, r3 + bgt _02341038 + bge _02343540 + sub r3, r0, #0xfb0 + cmp r2, r3 + bgt _02341014 + bge _02343074 + add r3, r1, #5 + cmp r2, r3 + bgt _02344184 + sub r3, r0, #0xff0 + cmp r2, r3 + blt _02344184 + sub r0, r0, #0xff0 + cmp r2, r0 + beq _02343920 + add r0, r1, #2 + cmp r2, r0 + beq _02343AC4 + add r0, r1, #5 + cmp r2, r0 + beq _023432F4 + b _02344184 +_02341014: + add r0, r1, #0x42 + cmp r2, r0 + bgt _02341028 + beq _0234319C + b _02344184 +_02341028: + add r0, r1, #0xf7 + cmp r2, r0 + beq _023433E4 + b _02344184 +_02341038: + sub r3, r0, #0xef0 + cmp r2, r3 + bgt _02341060 + sub r0, r0, #0xef0 + cmp r2, r0 + bge _02343778 + add r0, r1, #0xff + cmp r2, r0 + beq _023435D0 + b _02344184 +_02341060: + ldr r1, _02341D1C @ =0x0000511A + cmp r2, r1 + bgt _02341074 + beq _023437E0 + b _02344184 +_02341074: + sub r0, r0, #1 + cmp r2, r0 + beq _02343D88 + b _02344184 +_02341084: + ldr r3, _02341D20 @ =0x00007001 + cmp r2, r3 + bgt _023410DC + bge _023440F4 + add r1, r0, #3 + cmp r2, r1 + bgt _023410B4 + bge _02343DEC + add r0, r0, #2 + cmp r2, r0 + beq _02343DC0 + b _02344184 +_023410B4: + add r1, r0, #4 + cmp r2, r1 + bgt _023410D0 + add r0, r0, #4 + cmp r2, r0 + beq _02343F08 + b _02344184 +_023410D0: + cmp r2, #0x7000 + beq _023440E0 + b _02344184 +_023410DC: + add r1, r0, #0x2000 + cmp r2, r1 + bgt _02341114 + add r0, r0, #0x2000 + cmp r2, r0 + bge _02343C14 + add r0, r3, #1 + cmp r2, r0 + bgt _02341108 + beq _02344108 + b _02344184 +_02341108: + cmp r2, #0x8000 + beq _02343BFC + b _02344184 +_02341114: + cmp r2, #0xe000 + bgt _02341124 + beq _0234411C + b _02344184 +_02341124: + add r0, r3, #0x7000 + cmp r2, r0 + beq _02344130 + b _02344184 +_02341134: + bl FUN_0204A1CC + bl FUN_022BCA80 + cmp r0, #3 + movne r0, r4 + ldrne r0, [r0] + movne r1, #2 + strne r1, [r0] + bne _02344184 + bl FUN_02339888 + mov r0, r4 + ldr r0, [r0] + mov r1, #1 + str r1, [r0] + b _02344184 +_0234116C: + bl FUN_023398A4 + cmp r0, #0 + movne r0, r4 + ldrne r0, [r0] + movne r1, #2 + strne r1, [r0] + b _02344184 +_02341188: + bl ov03_0233CAB8 + cmp r0, #1 + bne _02341224 + bl ov03_023441A0 + bl FUN_022BD338 + cmp r0, #0 + beq _023411B0 + bl FUN_022BCCF4 + cmp r0, #0 + bne _023411C4 +_023411B0: + ldr r0, _02341D00 @ =0x02346BC8 + mov r1, #3 + ldr r0, [r0] + add r0, r0, #0x1000 + strb r1, [r0, #0x700] +_023411C4: + mov r0, #0x14 + bl FUN_023375C0 + ldr r1, _02341D00 @ =0x02346BC8 + ldr r3, _02341D24 @ =0x023469A8 + ldr r2, [r1] + ldr r4, [r3, r0, lsl #3] + add r0, r2, #0x1000 + ldr r3, _02341D28 @ =0x023469A4 + str r4, [r0, #0x668] + mov r0, #0 + ldr r2, _02341D2C @ =0x00003879 + str r3, [sp] + str r2, [sp, #4] + ldr r1, [r1] + ldr r2, _02341D30 @ =0x00000233 + add r3, r1, #0x268 + mov r1, r0 + add r3, r3, #0x1400 + bl FUN_020663DC + ldr r0, _02341D00 @ =0x02346BC8 + ldr r1, _02341D14 @ =0x00005001 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341224: + bl ov03_0233CAB8 + cmp r0, #3 + bne _0234129C + add r0, r5, #0x10 + bl FUN_0205B6CC + cmp r0, #0 + bne _02341260 + ldr r1, _02341D34 @ =0x00003858 + mov r0, #0x1c + bl FUN_02066468 + mov r0, r4 + ldr r0, [r0] + mov r1, #0x7000 + str r1, [r0] + b _02344184 +_02341260: + bl FUN_022BCCF4 + cmp r0, #0 + movne r0, r4 + ldrne r1, _02341D38 @ =0x00004001 + ldrne r0, [r0] + strne r1, [r0] + bne _02344184 + ldr r1, _02341D3C @ =0x00003859 + mov r0, #0x1c + bl FUN_02066468 + mov r0, r4 + ldr r0, [r0] + mov r1, #0x7000 + str r1, [r0] + b _02344184 +_0234129C: + bl ov03_0233CAB8 + cmp r0, #5 + bne _02341318 + mov r0, r4 + ldr r0, [r0] + ldr r0, [r0, #0xc] + cmp r0, #0 + bgt _023412DC + ldr r1, _02341D40 @ =0x00003895 + mov r0, #0x1c + bl FUN_02066468 + mov r0, r4 + ldr r0, [r0] + mov r1, #0x7000 + str r1, [r0] + b _02344184 +_023412DC: + bl FUN_022BCCF4 + cmp r0, #0 + movne r0, r4 + ldrne r1, _02341D38 @ =0x00004001 + ldrne r0, [r0] + strne r1, [r0] + bne _02344184 + ldr r1, _02341D44 @ =0x00003896 + mov r0, #0x1c + bl FUN_02066468 + mov r0, r4 + ldr r0, [r0] + mov r1, #0x7000 + str r1, [r0] + b _02344184 +_02341318: + bl ov03_0233CAB8 + cmp r0, #0 + bne _023413D8 + add r0, r5, #0x42 + mov r1, #0x24 + bl FUN_02003250 + add r0, r5, #0x66 + mov r1, #0x48 + bl FUN_02003250 + mov r0, #0 + strh r0, [r5, #0xb2] + strh r0, [r5, #0xb0] + bl ov03_023441A0 + bl FUN_022BD338 + cmp r0, #0 + beq _02341364 + bl FUN_022BCCF4 + cmp r0, #0 + bne _02341378 +_02341364: + ldr r0, _02341D00 @ =0x02346BC8 + mov r1, #3 + ldr r0, [r0] + add r0, r0, #0x1000 + strb r1, [r0, #0x700] +_02341378: + mov r0, #0x15 + bl FUN_023375C0 + ldr r1, _02341D00 @ =0x02346BC8 + ldr r3, _02341D48 @ =0x02346848 + ldr r2, [r1] + ldr r4, [r3, r0, lsl #3] + add r0, r2, #0x1000 + ldr r3, _02341D4C @ =0x02346844 + str r4, [r0, #0x668] + mov r0, #0 + ldr r2, _02341D50 @ =0x0000385E + str r3, [sp] + str r2, [sp, #4] + ldr r1, [r1] + ldr r2, _02341D30 @ =0x00000233 + add r3, r1, #0x268 + mov r1, r0 + add r3, r3, #0x1400 + bl FUN_020663DC + ldr r0, _02341D00 @ =0x02346BC8 + ldr r1, _02341D10 @ =0x00001001 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023413D8: + bl ov03_0233CAB8 + cmp r0, #2 + bne _02341478 + add r0, r5, #0x10 + bl FUN_0205B6CC + cmp r0, #0 + bne _02341414 + ldr r1, _02341D54 @ =0x0000386F + mov r0, #0x1c + bl FUN_02066468 + mov r0, r4 + ldr r1, _02341D20 @ =0x00007001 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341414: + bl FUN_022BCCF4 + cmp r0, #0 + bne _02341440 + ldr r1, _02341D58 @ =0x00003870 + mov r0, #0x1c + bl FUN_02066468 + mov r0, r4 + ldr r1, _02341D20 @ =0x00007001 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341440: + add r0, r5, #0x42 + mov r1, #0x24 + bl FUN_02003250 + add r0, r5, #0x66 + mov r1, #0x48 + bl FUN_02003250 + mov r1, #0 + strh r1, [r5, #0xb2] + strh r1, [r5, #0xb0] + mov r0, r4 + ldr r0, [r0] + ldr r1, _02341D5C @ =0x00001004 + str r1, [r0] + b _02344184 +_02341478: + bl ov03_0233CAB8 + cmp r0, #4 + bne _02344184 + add r0, r5, #0x10 + bl FUN_0205B6CC + cmp r0, #0 + bne _023414B4 + mov r0, #0x1c + add r1, r0, #0x3880 + bl FUN_02066468 + mov r0, r4 + ldr r1, _02341D20 @ =0x00007001 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023414B4: + bl FUN_022BCCF4 + cmp r0, #0 + bne _023414E0 + ldr r1, _02341D60 @ =0x0000389D + mov r0, #0x1c + bl FUN_02066468 + mov r0, r4 + ldr r1, _02341D20 @ =0x00007001 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023414E0: + add r0, r5, #0x42 + mov r1, #0x24 + bl FUN_02003250 + add r0, r5, #0x66 + mov r1, #0x48 + bl FUN_02003250 + mov r1, #0 + strh r1, [r5, #0xb2] + strh r1, [r5, #0xb0] + mov r0, r4 + ldr r0, [r0] + ldr r1, _02341D5C @ =0x00001004 + str r1, [r0] + b _02344184 +_02341518: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x15 + bl FUN_023375D0 + cmp r4, #0x1d + bne _02341614 + bl FUN_022BCCF4 + cmp r0, #0 + beq _02341580 + add r0, r5, #0x10 + bl FUN_0205B6CC + cmp r0, #0 + ldrbne r0, [r5, #0xbd] + cmpne r0, #0 + beq _02341580 + ldr r1, _02341D64 @ =0x00003860 + mov r0, #0x1c + bl FUN_02066468 + ldr r0, _02341D00 @ =0x02346BC8 + mov r1, #0x7000 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341580: + bl FUN_022BCCF4 + cmp r0, #0 + beq _023415F0 + add r0, r5, #0x10 + bl FUN_0205B6CC + cmp r0, #0 + beq _023415F0 + ldrb r0, [r5, #0xbd] + cmp r0, #0 + bne _023415F0 + ldr r0, _02341D00 @ =0x02346BC8 + mov r2, #1 + ldr r1, [r0] + mov r0, #0x16 + add r1, r1, #0x1000 + strb r2, [r1, #0xae9] + bl FUN_023375C0 + str r0, [sp] + ldr r2, _02341D68 @ =0x0234675C + ldr r3, _02341D6C @ =0x00003861 + mov r0, #0 + mov r1, #8 + bl FUN_020663C8 + ldr r0, _02341D00 @ =0x02346BC8 + ldr r1, _02341D70 @ =0x00001002 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023415F0: + ldr r1, _02341D00 @ =0x02346BC8 + mov r3, #1 + ldr r0, [r1] + ldr r2, _02341D5C @ =0x00001004 + add r0, r0, #0x1000 + strb r3, [r0, #0xae9] + ldr r0, [r1] + str r2, [r0] + b _02344184 +_02341614: + cmp r4, #0x1e + bne _023416F4 + bl FUN_022BCCF4 + cmp r0, #0 + beq _02341664 + add r0, r5, #0x10 + bl FUN_0205B6CC + cmp r0, #0 + beq _02341664 + ldrb r0, [r5, #0xbd] + cmp r0, #0 + bne _02341664 + ldr r1, _02341D74 @ =0x00003863 + mov r0, #0x1c + bl FUN_02066468 + ldr r0, _02341D00 @ =0x02346BC8 + mov r1, #0x7000 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341664: + bl FUN_022BCCF4 + cmp r0, #0 + beq _023416D0 + add r0, r5, #0x10 + bl FUN_0205B6CC + cmp r0, #0 + ldrbne r0, [r5, #0xbd] + cmpne r0, #0 + beq _023416D0 + ldr r0, _02341D00 @ =0x02346BC8 + mov r2, #0 + ldr r1, [r0] + mov r0, #0x16 + add r1, r1, #0x1000 + strb r2, [r1, #0xae9] + bl FUN_023375C0 + str r0, [sp] + ldr r2, _02341D68 @ =0x0234675C + ldr r3, _02341D78 @ =0x00003864 + mov r0, #0 + mov r1, #8 + bl FUN_020663C8 + ldr r0, _02341D00 @ =0x02346BC8 + ldr r1, _02341D70 @ =0x00001002 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023416D0: + ldr r1, _02341D00 @ =0x02346BC8 + mov r3, #0 + ldr r0, [r1] + ldr r2, _02341D5C @ =0x00001004 + add r0, r0, #0x1000 + strb r3, [r0, #0xae9] + ldr r0, [r1] + str r2, [r0] + b _02344184 +_023416F4: + cmp r4, #0x1f + bne _02344184 + mov r0, #1 + b _02344188 +_02341704: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x16 + bl FUN_023375D0 + cmp r4, #0x1d + ldreq r0, _02341D00 @ =0x02346BC8 + ldreq r1, _02341D5C @ =0x00001004 + ldreq r0, [r0] + streq r1, [r0] + beq _02344184 + sub r0, r4, #0x1e + cmp r0, #1 + bhi _02344184 + mov r0, #1 + b _02344188 +_0234174C: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x1a + bl FUN_023375D0 + cmp r4, #0x1d + bne _02341794 + ldr r1, _02341D00 @ =0x02346BC8 + ldr r2, _02341D38 @ =0x00004001 + ldr r0, [r1] + add r0, r0, #0x1000 + ldrb r0, [r0, #0xae9] + strb r0, [r5, #0xbd] + ldr r0, [r1] + str r2, [r0] + b _02344184 +_02341794: + sub r0, r4, #0x1e + cmp r0, #1 + ldrls r0, _02341D00 @ =0x02346BC8 + ldrls r1, _02341D5C @ =0x00001004 + ldrls r0, [r0] + strls r1, [r0] + b _02344184 +_023417B0: + bl ov03_0233CAB8 + cmp r0, #0 + bne _023417E0 + mov r1, r4 + ldr r0, [r1] + ldrb r2, [r5, #0xbd] + add r0, r0, #0x1000 + strb r2, [r0, #0xaea] + ldr r0, [r1] + add r0, r0, #0x1000 + ldrb r0, [r0, #0xae9] + strb r0, [r5, #0xbd] +_023417E0: + ldr r1, _02341D00 @ =0x02346BC8 + add r0, r5, #0x10 + ldr r1, [r1] + add r1, r1, #0x214 + add r1, r1, #0x1400 + bl ov03_023449C4 + ldr r0, _02341D00 @ =0x02346BC8 + ldr r1, _02341D7C @ =0x00001005 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_0234180C: + bl ov03_02344AB8 + movs r4, r0 + beq _02344184 + bl ov03_0233CAB8 + cmp r0, #0 + ldreq r0, _02341D00 @ =0x02346BC8 + ldreq r0, [r0] + addeq r0, r0, #0x1000 + ldrbeq r0, [r0, #0xaea] + strbeq r0, [r5, #0xbd] + mvn r0, #0 + cmp r4, r0 + bne _02341868 + bl ov03_02344A58 + bl ov03_0233CAB8 + cmp r0, #0 + ldreq r0, _02341D00 @ =0x02346BC8 + moveq r1, #2 + ldreq r0, [r0] + streq r1, [r0] + beq _02344184 + mov r0, #1 + b _02344188 +_02341868: + cmp r4, #2 + bne _0234187C + bl ov03_02344A58 + mov r0, #2 + b _02344188 +_0234187C: + cmp r4, #3 + bne _02341890 + bl ov03_02344A58 + mov r0, #4 + b _02344188 +_02341890: + cmp r4, #1 + bne _02344184 + bl ov03_02344A90 + ldr r1, _02341D00 @ =0x02346BC8 + ldr r1, [r1] + add r1, r1, #0x1000 + strb r0, [r1, #0x660] + bl ov03_02344AA4 + ldr r1, _02341D00 @ =0x02346BC8 + ldr r1, [r1] + add r1, r1, #0x1000 + strb r0, [r1, #0xae8] + bl ov03_02344A58 + bl ov03_0233CAB8 + cmp r0, #0 + beq _023418EC + cmp r0, #2 + cmpne r0, #4 + ldreq r0, _02341D00 @ =0x02346BC8 + ldreq r1, _02341D38 @ =0x00004001 + ldreq r0, [r0] + streq r1, [r0] + b _02344184 +_023418EC: + mov r0, #0x1a + bl FUN_023375C0 + str r0, [sp] + mov r0, #0 + ldr r2, _02341D68 @ =0x0234675C + ldr r3, _02341D80 @ =0x00003865 + mov r1, r0 + bl FUN_020663C8 + ldr r0, _02341D00 @ =0x02346BC8 + ldr r1, _02341D84 @ =0x00001003 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341920: + mov r0, #0x100 + mov r1, #0xf + bl FUN_02001170 + mov r6, r0 + add r0, sp, #0x2c0 + bl FUN_02023690 + mov r0, r4 + ldr r0, [r0] + add r0, r0, #0x1000 + ldrb r0, [r0, #0xae8] + cmp r0, #0 + beq _02341960 + add r0, r5, #0xae + mov r1, #0xb4 + mov r2, #0 + bl FUN_0200CF58 +_02341960: + ldr r2, _02341D88 @ =0x02346A90 + mov r4, #0 + mov r0, r6 + add r1, r5, #0xae + mov r3, #1 + str r4, [sp] + bl FUN_0200D310 + ldr r1, _02341D8C @ =0x000038A6 + add r2, sp, #0x2c0 + mov r0, #0x1c + str r6, [sp, #0x2f8] + bl FUN_02066488 + mov r0, r6 + bl FUN_02001188 + ldr r0, _02341D00 @ =0x02346BC8 + ldr r1, _02341D90 @ =0x00003071 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023419AC: + bl FUN_02066494 + cmp r0, #0x1f + bne _02344184 + add r0, r5, #0xae + bl FUN_020103AC + mov r1, #0 + strh r1, [r5, #0xb2] + strh r1, [r5, #0xb0] + mov r0, r4 + ldr r0, [r0] + ldr r1, _02341D94 @ =0x00003072 + str r1, [r0] + b _02344184 +_023419E0: + bl ov03_023442D0 + mov r0, r4 + ldr r1, _02341D98 @ =0x00003073 + ldr r0, [r0] + str r1, [r0] +_023419F4: + bl ov03_02344300 + cmp r0, #1 + moveq r0, #1 + beq _02344188 + cmp r0, #3 + moveq r0, #4 + beq _02344188 + cmp r0, #2 + bne _02344184 + mov r0, #1 + b _02344188 +_02341A20: + bl FUN_02338A24 + mov r0, r4 + ldr r1, _02341D08 @ =0x00004002 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341A38: + bl FUN_02338EC4 + cmp r0, #1 + beq _02341B40 + cmp r0, #4 + beq _02341A58 + cmp r0, #8 + beq _02341B40 + b _02344184 +_02341A58: + bl ov03_0233CAB8 + cmp r0, #5 + addls pc, pc, r0, lsl #2 + b _02344184 +_02341A68: @ jump table + b _02341A80 @ case 0 + b _02341AE0 @ case 1 + b _02341AA0 @ case 2 + b _02341B00 @ case 3 + b _02341AC0 @ case 4 + b _02341B20 @ case 5 +_02341A80: + ldr r1, _02341D9C @ =0x00003866 + mov r0, #0 + bl FUN_02066468 + mov r0, r4 + ldr r1, _02341DA0 @ =0x00004003 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341AA0: + ldr r1, _02341DA4 @ =0x00003873 + mov r0, #0 + bl FUN_02066468 + mov r0, r4 + ldr r1, _02341DA0 @ =0x00004003 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341AC0: + ldr r1, _02341DA8 @ =0x0000389E + mov r0, #0 + bl FUN_02066468 + mov r0, r4 + ldr r1, _02341DA0 @ =0x00004003 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341AE0: + ldr r1, _02341DAC @ =0x00003884 + mov r0, #0 + bl FUN_02066468 + mov r0, r4 + ldr r1, _02341DA0 @ =0x00004003 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341B00: + ldr r1, _02341DB0 @ =0x0000385A + mov r0, #0 + bl FUN_02066468 + mov r0, r4 + ldr r1, _02341DA0 @ =0x00004003 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341B20: + ldr r1, _02341DB4 @ =0x00003897 + mov r0, #0 + bl FUN_02066468 + mov r0, r4 + ldr r1, _02341DA0 @ =0x00004003 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341B40: + bl FUN_02338B08 + bl ov03_0233CAB8 + cmp r0, #2 + beq _02341B5C + bl ov03_0233CAB8 + cmp r0, #4 + bne _02341B78 +_02341B5C: + ldrsh r0, [r5, #0xb2] + cmp r0, #0 + ldrne r0, _02341D00 @ =0x02346BC8 + ldrne r1, _02341D0C @ =0x00003070 + ldrne r0, [r0] + strne r1, [r0] + bne _02344184 +_02341B78: + mov r0, #1 + b _02344188 +_02341B80: + bl FUN_02066494 + mov r4, r0 + bl FUN_02338EC4 + cmp r0, #5 + bne _02341BB0 + bl FUN_02046D20 + bl FUN_02338C34 + ldr r0, _02341D00 @ =0x02346BC8 + ldr r1, _02341DB8 @ =0x00004008 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341BB0: + cmp r4, #0x1f + bne _02344184 + ldrb r0, [r5, #0xbd] + cmp r0, #0 + beq _02341C08 + bl ov03_0233CAB8 + cmp r0, #0 + bne _02341C08 + bl FUN_022BD338 + cmp r0, #0 + beq _02341BE8 + bl FUN_022BCCF4 + cmp r0, #0 + bne _02341C08 +_02341BE8: + mov r0, #0x13 + mov r1, #6 + bl FUN_023398B0 + ldr r0, _02341D00 @ =0x02346BC8 + ldr r1, _02341DB8 @ =0x00004008 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341C08: + bl ov03_0233CAB8 + cmp r0, #0 + beq _02341C24 + cmp r0, #2 + cmpne r0, #4 + beq _02341C2C + b _02341C3C +_02341C24: + ldrb r2, [r5, #0xbe] + b _02341C44 +_02341C2C: + ldr r0, [r5, #0x18] + bl FUN_0205BD90 + mov r2, r0 + b _02341C44 +_02341C3C: + bl FUN_0205BD78 + mov r2, r0 +_02341C44: + ldr r0, _02341D00 @ =0x02346BC8 + mov r1, #1 + ldr r0, [r0] + add r0, r0, #0x1000 + ldr r0, [r0, #0x958] + bl FUN_0232C5C8 + ldr r1, _02341D00 @ =0x02346BC8 + mov r0, #0 + ldr r1, [r1] + add r1, r1, #0x1000 + ldr r1, [r1, #0x958] + bl FUN_02338C4C + ldr r0, _02341D00 @ =0x02346BC8 + ldr r1, _02341DBC @ =0x00004004 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341C88: + bl FUN_02338EC4 + cmp r0, #4 + bne _023421A8 + bl ov03_0233CAB8 + cmp r0, #5 + addls pc, pc, r0, lsl #2 + b _02344184 +_02341CA4: @ jump table + b _02341CBC @ case 0 + b _02341F9C @ case 1 + b _02341DC4 @ case 2 + b _0234210C @ case 3 + b _02341EFC @ case 4 + b _02342154 @ case 5 +_02341CBC: + mov r0, r4 + ldr r1, [r0] + add r0, r1, #0x1000 + ldr r0, [r0, #0x958] + add r1, r1, #0x10 + bl FUN_0232C8E8 + mov r1, r4 + ldr r1, [r1] + mov r0, #1 + add r1, r1, #0x1000 + ldr r1, [r1, #0x958] + bl FUN_02338C4C + mov r0, r4 + ldr r1, _02341DC0 @ =0x00004006 + ldr r0, [r0] + str r1, [r0] + b _02344184 + .align 2, 0 +_02341D00: .4byte 0x02346BC8 +_02341D04: .4byte 0x00005011 +_02341D08: .4byte 0x00004002 +_02341D0C: .4byte 0x00003070 +_02341D10: .4byte 0x00001001 +_02341D14: .4byte 0x00005001 +_02341D18: .4byte 0x00006002 +_02341D1C: .4byte 0x0000511A +_02341D20: .4byte 0x00007001 +_02341D24: .4byte 0x023469A8 +_02341D28: .4byte 0x023469A4 +_02341D2C: .4byte 0x00003879 +_02341D30: .4byte 0x00000233 +_02341D34: .4byte 0x00003858 +_02341D38: .4byte 0x00004001 +_02341D3C: .4byte 0x00003859 +_02341D40: .4byte 0x00003895 +_02341D44: .4byte 0x00003896 +_02341D48: .4byte 0x02346848 +_02341D4C: .4byte 0x02346844 +_02341D50: .4byte 0x0000385E +_02341D54: .4byte 0x0000386F +_02341D58: .4byte 0x00003870 +_02341D5C: .4byte 0x00001004 +_02341D60: .4byte 0x0000389D +_02341D64: .4byte 0x00003860 +_02341D68: .4byte 0x0234675C +_02341D6C: .4byte 0x00003861 +_02341D70: .4byte 0x00001002 +_02341D74: .4byte 0x00003863 +_02341D78: .4byte 0x00003864 +_02341D7C: .4byte 0x00001005 +_02341D80: .4byte 0x00003865 +_02341D84: .4byte 0x00001003 +_02341D88: .4byte 0x02346A90 +_02341D8C: .4byte 0x000038A6 +_02341D90: .4byte 0x00003071 +_02341D94: .4byte 0x00003072 +_02341D98: .4byte 0x00003073 +_02341D9C: .4byte 0x00003866 +_02341DA0: .4byte 0x00004003 +_02341DA4: .4byte 0x00003873 +_02341DA8: .4byte 0x0000389E +_02341DAC: .4byte 0x00003884 +_02341DB0: .4byte 0x0000385A +_02341DB4: .4byte 0x00003897 +_02341DB8: .4byte 0x00004008 +_02341DBC: .4byte 0x00004004 +_02341DC0: .4byte 0x00004006 +_02341DC4: + mov r0, r4 + ldr r0, [r0] + add r0, r0, #0x2d + bl FUN_02050B10 + mov r0, r4 + ldr r0, [r0] + ldrb r0, [r0, #0xbe] + bl FUN_0205BD5C + mov r2, r4 + mov r1, r0 + ldr r0, [r2] + add r0, r0, #0xae + bl ov03_023441EC + cmp r0, #0 + bne _02341E80 + mov r0, r4 + ldr r2, [r0] + add r0, r2, #0x1000 + ldrb r0, [r0, #0x660] + cmp r0, #0 + beq _02341EA0 + add r0, r2, #0x1600 + ldrsh r0, [r0, #0x1c] + bl FUN_02062B64 + cmp r0, #0 + bne _02341E80 + mov r0, r4 + ldr r2, [r0] + add r1, r2, #0x1600 + ldrb r0, [r2, #0xbe] + add r2, r2, #0x3e + ldrsh r1, [r1, #0x1c] + add r2, r2, #0x1600 + bl FUN_0205C700 + cmp r0, #0 + beq _02341E80 + mov r0, r4 + ldr r2, [r0] + add r0, r2, #0x1000 + ldrb r1, [r0, #0x618] + cmp r1, #1 + blo _02341E80 + cmp r1, #0x64 + bhi _02341E80 + ldrb r0, [r0, #0x638] + cmp r0, #0xb + blo _02341EA0 +_02341E80: + mov r0, #2 + mov r1, #6 + bl FUN_023398B0 + ldr r0, _02341D00 @ =0x02346BC8 + ldr r1, _02341DB8 @ =0x00004008 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341EA0: + add r0, r2, #0x1000 + ldrb r0, [r0, #0x660] + cmp r0, #0 + addne r0, r2, #0x214 + addne r2, r0, #0x1400 + ldr r0, _02341D00 @ =0x02346BC8 + moveq r2, #0 + ldr r1, [r0] + add r0, r1, #0x1000 + ldr r0, [r0, #0x958] + add r1, r1, #0x10 + bl FUN_0232D3C4 + ldr r1, _02341D00 @ =0x02346BC8 + mov r0, #5 + ldr r1, [r1] + add r1, r1, #0x1000 + ldr r1, [r1, #0x958] + bl FUN_02338C4C + ldr r0, _02341D00 @ =0x02346BC8 + ldr r1, _02341DC0 @ =0x00004006 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341EFC: + mov r0, r4 + ldr r0, [r0] + add r0, r0, #0x2d + bl FUN_02050B10 + mov r0, r4 + ldr r0, [r0] + ldrb r0, [r0, #0xbe] + bl FUN_0205BD5C + mov r2, r4 + mov r1, r0 + ldr r0, [r2] + add r0, r0, #0xae + bl ov03_023441EC + cmp r0, #0 + beq _02341F58 + mov r0, #2 + mov r1, #6 + bl FUN_023398B0 + mov r0, r4 + ldr r1, _02341DB8 @ =0x00004008 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341F58: + mov r0, r4 + ldr r1, [r0] + add r0, r1, #0x1000 + ldr r0, [r0, #0x958] + add r1, r1, #0x10 + bl FUN_0232D83C + mov r1, r4 + ldr r1, [r1] + mov r0, #7 + add r1, r1, #0x1000 + ldr r1, [r1, #0x958] + bl FUN_02338C4C + mov r0, r4 + ldr r1, _02341DC0 @ =0x00004006 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341F9C: + mov r0, r4 + ldr r2, [r0] + add r0, r2, #0x1000 + ldr r1, [r0, #0x95c] + cmp r1, #0 + bge _02341FF0 + ldr r1, [r2, #0x1c] + ldr r0, [r0, #0x958] + ldr r2, [r2, #0x20] + bl FUN_0232CEA8 + mov r1, r4 + ldr r1, [r1] + mov r0, #3 + add r1, r1, #0x1000 + ldr r1, [r1, #0x958] + bl FUN_02338C4C + mov r0, r4 + ldr r1, _02342F70 @ =0x00005108 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02341FF0: + beq _02342094 + mov r5, #0 + mov r4, r5 + mov r7, r5 + mov r6, r5 + mov sl, r5 + mov sb, #1 + mov r8, r5 +_02342010: + and r0, sl, #0xff + bl FUN_0204D2F8 + cmp r0, #0 + beq _0234203C + lsl r1, r8, sl + rsb r0, sl, #0x20 + orr r1, r1, sb, lsr r0 + sub r0, sl, #0x20 + orr r1, r1, sb, lsl r0 + orr r7, r7, sb, lsl sl + orr r6, r6, r1 +_0234203C: + add sl, sl, #1 + cmp sl, #0x40 + blt _02342010 + mov sl, #0 + mov sb, #1 + mov r8, sl +_02342054: + add r0, sl, #0x40 + and r0, r0, #0xff + bl FUN_0204D2F8 + cmp r0, #0 + beq _02342084 + lsl r1, r8, sl + rsb r0, sl, #0x20 + orr r1, r1, sb, lsr r0 + sub r0, sl, #0x20 + orr r1, r1, sb, lsl r0 + orr r5, r5, sb, lsl sl + orr r4, r4, r1 +_02342084: + add sl, sl, #1 + cmp sl, #0x74 + blt _02342054 + b _023420A4 +_02342094: + mvn r5, #0 + mov r4, r5 + mov r7, r5 + mov r6, r5 +_023420A4: + ldr r0, _02341D00 @ =0x02346BC8 + mov r1, #0 + ldr r2, [r0] + mov r0, #0x20 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r2, #0x1000 + ldr r1, [r0, #0x95c] + mov r3, r7 + str r1, [sp, #0xc] + str r6, [sp] + ldr r0, [r0, #0x958] + mov r1, r5 + mov r2, r4 + bl FUN_0232CA30 + ldr r1, _02341D00 @ =0x02346BC8 + mov r0, #2 + ldr r1, [r1] + add r1, r1, #0x1000 + ldr r1, [r1, #0x958] + bl FUN_02338C4C + ldr r0, _02341D00 @ =0x02346BC8 + ldr r1, _02342F74 @ =0x00005052 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_0234210C: + mov r0, r4 + ldr r2, [r0] + add r0, r2, #0x1000 + ldr r1, [r2, #0x1c] + ldr r0, [r0, #0x958] + ldr r2, [r2, #0x20] + bl FUN_0232D55C + mov r1, r4 + ldr r1, [r1] + mov r0, #6 + add r1, r1, #0x1000 + ldr r1, [r1, #0x958] + bl FUN_02338C4C + mov r0, r4 + ldr r1, _02342F78 @ =0x00004005 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02342154: + mov r0, r4 + ldr r2, [r0] + mov r1, #0xb0 + ldr r3, [r2, #8] + add r0, r2, #0x1000 + mla r2, r3, r1, r2 + ldr r1, [r2, #0x1c] + ldr r0, [r0, #0x958] + ldr r2, [r2, #0x20] + bl FUN_0232D8C8 + mov r1, r4 + ldr r1, [r1] + mov r0, #8 + add r1, r1, #0x1000 + ldr r1, [r1, #0x958] + bl FUN_02338C4C + mov r0, r4 + ldr r1, _02342F78 @ =0x00004005 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023421A8: + cmp r0, #8 + cmpne r0, #6 + bne _02344184 + bl FUN_02338B08 + bl ov03_0233CAB8 + cmp r0, #2 + beq _023421D0 + bl ov03_0233CAB8 + cmp r0, #4 + bne _023421EC +_023421D0: + ldrsh r0, [r5, #0xb2] + cmp r0, #0 + ldrne r0, _02341D00 @ =0x02346BC8 + ldrne r1, _02341D0C @ =0x00003070 + ldrne r0, [r0] + strne r1, [r0] + bne _02344184 +_023421EC: + mov r0, #2 + b _02344188 +_023421F4: + bl FUN_02338EC4 + cmp r0, #4 + bne _02342574 + bl ov03_0233CAB8 + cmp r0, #3 + beq _02342218 + cmp r0, #5 + beq _0234241C + b _02344184 +_02342218: + mov r0, #0 + bl FUN_02338E1C + mov r4, r0 + bl FUN_0232D590 + cmp r0, #0x64 + bne _023423E4 + ldr r1, _02341D00 @ =0x02346BC8 + mov r0, r4 + ldr r1, [r1] + add r1, r1, #0x10 + bl FUN_0232D664 + add r0, sp, #0xb4 + mov r1, #0x2a + bl FUN_02003250 + ldr r0, _02341D00 @ =0x02346BC8 + ldr r6, [r0] + bl FUN_020205A0 + ldrsb r1, [r6, #0x2c] + cmp r1, r0 + add r0, sp, #0xb4 + bne _0234227C + add r1, r6, #0x2d + mov r2, #0x14 + bl FUN_020251F4 + b _02342284 +_0234227C: + ldr r1, _02342F7C @ =0x000038C9 + bl FUN_020258B8 +_02342284: + mov r0, #5 + strb r0, [r5, #0x10] + ldr r1, _02341D00 @ =0x02346BC8 + mov r0, r4 + ldr r2, [r1] + ldrb r2, [r2, #0xbe] + strb r2, [r5, #0xbe] + ldr r1, [r1] + add r1, r1, #0x214 + add r1, r1, #0x1400 + bl FUN_0232D5C4 + ldr r1, _02341D00 @ =0x02346BC8 + mov r4, r0 + ldr r0, [r1] + add r0, r0, #0x1000 + strb r4, [r0, #0x660] + ldrb r0, [r5, #0xbe] + bl FUN_0205BD5C + mov r1, r0 + add r0, r5, #0xae + bl ov03_023441EC + cmp r0, #0 + movne r0, #0 + strhne r0, [r5, #0xb2] + ldr r0, _02341D00 @ =0x02346BC8 + ldr r1, [r0] + add r0, r1, #0x1000 + ldrb r0, [r0, #0x660] + cmp r0, #0 + beq _02342378 + add r0, r1, #0x1600 + ldrsh r0, [r0, #0x1c] + bl FUN_02062B64 + cmp r0, #0 + bne _02342364 + ldr r1, _02341D00 @ =0x02346BC8 + ldrb r0, [r5, #0xbe] + ldr r2, [r1] + add r1, r2, #0x1600 + ldrsh r1, [r1, #0x1c] + add r2, r2, #0x3e + add r2, r2, #0x1600 + bl FUN_0205C700 + cmp r0, #0 + beq _02342364 + ldr r0, _02341D00 @ =0x02346BC8 + ldr r0, [r0] + add r0, r0, #0x1000 + ldrb r1, [r0, #0x618] + cmp r1, #1 + blo _02342364 + cmp r1, #0x64 + bhi _02342364 + ldrb r0, [r0, #0x638] + cmp r0, #0xb + blo _02342378 +_02342364: + ldr r0, _02341D00 @ =0x02346BC8 + mov r4, #0 + ldr r0, [r0] + add r0, r0, #0x1000 + strb r4, [r0, #0x660] +_02342378: + add r0, sp, #0x270 + bl FUN_02023690 + add r3, sp, #0xb4 + ldr r1, _02342F80 @ =0x00003855 + add r2, sp, #0x270 + mov r0, #0x1c + str r3, [sp, #0x2a8] + bl FUN_02066488 + ldr r1, _02341D00 @ =0x02346BC8 + ldr r3, _02342F84 @ =0x00002A30 + ldr r0, [r1] + ldr r2, _02342F88 @ =0x00004007 + add r0, r0, #0x1000 + str r3, [r0, #0xae0] + ldr r0, [r1] + str r2, [r0] + ldr r0, [r1] + add r0, r0, #0x10 + bl FUN_02069790 + cmp r4, #0 + beq _02344184 + ldr r0, _02341D00 @ =0x02346BC8 + ldr r0, [r0] + add r0, r0, #0x1600 + ldrsh r0, [r0, #0x1c] + bl FUN_02069940 + b _02344184 +_023423E4: + ldr r1, _02342F8C @ =0x00003856 + mov r0, #0x1c + bl FUN_02066468 + mov r0, #0 + ldr r1, _02341D00 @ =0x02346BC8 + strb r0, [r5, #0x10] + ldr r0, [r1] + ldr r2, _02342F84 @ =0x00002A30 + add r0, r0, #0x1000 + str r2, [r0, #0xae0] + ldr r0, [r1] + ldr r1, _02342F88 @ =0x00004007 + str r1, [r0] + b _02344184 +_0234241C: + mov r0, #0 + bl FUN_02338E1C + mov r4, r0 + bl FUN_0232D8FC + cmp r0, #1 + bne _02342484 + ldr r0, _02341D00 @ =0x02346BC8 + mov r1, #0xb0 + ldr r3, [r0] + mov r0, r4 + ldr r2, [r3, #8] + add r5, r3, #0x10 + mul r4, r2, r1 + add r6, r5, r4 + mov r1, r6 + bl FUN_0232D930 + mov r0, #6 + strb r0, [r5, r4] + ldrb r0, [r6, #0xae] + bl FUN_0205BD5C + mov r1, r0 + add r0, r6, #0x9e + bl ov03_023441EC + cmp r0, #0 + movne r0, #0 + strhne r0, [r6, #0xa2] +_02342484: + ldr r0, _02341D00 @ =0x02346BC8 + ldr r2, [r0] + ldr r1, [r2, #8] + add r1, r1, #1 + str r1, [r2, #8] + ldr r3, [r0] + mov r0, #0xb0 + ldr r5, [r3, #0xc] + ldr r1, [r3, #8] + cmp r1, r5 + blt _02342530 + mov r2, #0 + mov r4, r2 + b _023424D0 +_023424BC: + mla r1, r2, r0, r3 + ldrb r1, [r1, #0x10] + add r2, r2, #1 + cmp r1, #6 + addeq r4, r4, #1 +_023424D0: + cmp r2, r5 + blt _023424BC + cmp r4, #0 + ble _02342500 + add r0, sp, #0x220 + bl FUN_02023690 + ldr r1, _02342F90 @ =0x00003893 + add r2, sp, #0x220 + mov r0, #0x1c + str r4, [sp, #0x244] + bl FUN_02066488 + b _0234250C +_02342500: + ldr r1, _02342F94 @ =0x00003894 + mov r0, #0x1c + bl FUN_02066468 +_0234250C: + ldr r1, _02341D00 @ =0x02346BC8 + ldr r3, _02342F84 @ =0x00002A30 + ldr r0, [r1] + ldr r2, _02342F88 @ =0x00004007 + add r0, r0, #0x1000 + str r3, [r0, #0xae0] + ldr r0, [r1] + str r2, [r0] + b _02344184 +_02342530: + mla r2, r1, r0, r3 + add r0, r3, #0x1000 + ldr r1, [r2, #0x1c] + ldr r0, [r0, #0x958] + ldr r2, [r2, #0x20] + bl FUN_0232D8C8 + ldr r1, _02341D00 @ =0x02346BC8 + mov r0, #8 + ldr r1, [r1] + add r1, r1, #0x1000 + ldr r1, [r1, #0x958] + bl FUN_02338C4C + ldr r0, _02341D00 @ =0x02346BC8 + ldr r1, _02342F78 @ =0x00004005 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02342574: + cmp r0, #8 + cmpne r0, #6 + bne _02344184 + bl FUN_02338B08 + mov r0, #2 + b _02344188 +_0234258C: + bl FUN_02338EC4 + cmp r0, #4 + bne _02342780 + bl ov03_0233CAB8 + cmp r0, #0 + beq _023425B8 + cmp r0, #2 + beq _023425EC + cmp r0, #4 + beq _02342718 + b _02344184 +_023425B8: + mov r0, #0 + bl FUN_02338E1C + bl FUN_0232CA18 + str r0, [r5, #0x1c] + str r1, [r5, #0x20] + mov r0, #1 + mov r1, #0 + bl FUN_02338BEC + mov r0, r4 + ldr r1, _02342F98 @ =0x00004010 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023425EC: + mov r0, #0 + bl FUN_02338E1C + bl FUN_0232D524 + cmp r0, #0 + beq _02342668 + ldr r1, _02342F9C @ =0x00003874 + mov r0, #0x1c + bl FUN_02066468 + mov r1, #0 + mov r0, r4 + strh r1, [r5, #0xb2] + ldr r0, [r0] + add r0, r0, #0x1000 + ldrb r0, [r0, #0xae8] + cmp r0, #0 + beq _02342644 + bl FUN_0204FF80 + mov r0, r4 + ldr r0, [r0] + mov r1, #0 + add r0, r0, #0x1000 + strb r1, [r0, #0xae8] +_02342644: + ldr r1, _02341D00 @ =0x02346BC8 + ldr r3, _02342F84 @ =0x00002A30 + ldr r0, [r1] + ldr r2, _02342F88 @ =0x00004007 + add r0, r0, #0x1000 + str r3, [r0, #0xae0] + ldr r0, [r1] + str r2, [r0] + b _02344184 +_02342668: + ldrsh r0, [r5, #0xb2] + cmp r0, #0 + mov r0, #0x1c + beq _023426EC + ldr r1, _02342FA0 @ =0x00003876 + bl FUN_02066468 + mov r0, r4 + ldr r0, [r0] + add r0, r0, #0x1000 + ldrb r0, [r0, #0xae8] + cmp r0, #0 + beq _023426A8 + add r0, r5, #0xae + mov r1, #0xb4 + mov r2, #0 + bl FUN_0200CF58 +_023426A8: + add r0, r5, #0xae + bl FUN_020103AC + mov r2, #0 + strh r2, [r5, #0xb2] + ldr r1, _02341D00 @ =0x02346BC8 + strh r2, [r5, #0xb0] + ldr r0, [r1] + ldr r3, _02342F84 @ =0x00002A30 + add r0, r0, #0x1000 + strb r2, [r0, #0xae8] + ldr r0, [r1] + ldr r2, _02342F88 @ =0x00004007 + add r0, r0, #0x1000 + str r3, [r0, #0xae0] + ldr r0, [r1] + str r2, [r0] + b _02344184 +_023426EC: + ldr r1, _02342FA4 @ =0x00003875 + bl FUN_02066468 + mov r1, r4 + ldr r0, [r1] + ldr r3, _02342F84 @ =0x00002A30 + add r0, r0, #0x1000 + str r3, [r0, #0xae0] + ldr r2, _02342F88 @ =0x00004007 + ldr r0, [r1] + str r2, [r0] + b _02344184 +_02342718: + ldr r1, _02342FA8 @ =0x0000389F + mov r0, #0x1c + bl FUN_02066468 + mov r1, #0 + mov r0, r4 + strh r1, [r5, #0xb2] + ldr r0, [r0] + add r0, r0, #0x1000 + ldrb r0, [r0, #0xae8] + cmp r0, #0 + beq _0234275C + bl FUN_0204FF80 + mov r0, r4 + ldr r0, [r0] + mov r1, #0 + add r0, r0, #0x1000 + strb r1, [r0, #0xae8] +_0234275C: + ldr r1, _02341D00 @ =0x02346BC8 + ldr r3, _02342F84 @ =0x00002A30 + ldr r0, [r1] + ldr r2, _02342F88 @ =0x00004007 + add r0, r0, #0x1000 + str r3, [r0, #0xae0] + ldr r0, [r1] + str r2, [r0] + b _02344184 +_02342780: + cmp r0, #8 + cmpne r0, #6 + bne _02344184 + bl FUN_02338B08 + bl ov03_0233CAB8 + cmp r0, #2 + beq _023427A8 + bl ov03_0233CAB8 + cmp r0, #4 + bne _023427C4 +_023427A8: + ldrsh r0, [r5, #0xb2] + cmp r0, #0 + ldrne r0, _02341D00 @ =0x02346BC8 + ldrne r1, _02341D0C @ =0x00003070 + ldrne r0, [r0] + strne r1, [r0] + bne _02344184 +_023427C4: + mov r0, #2 + b _02344188 +_023427CC: + bl FUN_02339988 + bl FUN_02338EC4 + mov r5, r0 + bl FUN_02066494 + mov r4, r0 + bl FUN_020698B8 + add r1, sp, #0x14 + mov r0, #0 + bl FUN_020061EC + bl FUN_0204AE60 + cmp r0, #0 + moveq r0, #0 + beq _02342818 + add r0, sp, #0x90 + bl FUN_02006C1C + add r0, sp, #0x90 + mov r1, #1 + mov r2, #0 + bl FUN_02006C8C +_02342818: + ldrh r1, [sp, #0x14] + cmp r1, #0 + cmpeq r0, #0 + ldrne r0, _02341D00 @ =0x02346BC8 + ldrne r1, _02342F84 @ =0x00002A30 + ldrne r0, [r0] + addne r0, r0, #0x1000 + strne r1, [r0, #0xae0] + ldr r0, _02341D00 @ =0x02346BC8 + ldr r0, [r0] + add r0, r0, #0x1000 + ldr r1, [r0, #0xae0] + cmp r1, #0 + subgt r1, r1, #1 + strgt r1, [r0, #0xae0] + cmp r5, #5 + bne _0234287C + bl FUN_02069904 + bl FUN_02046D20 + bl FUN_02338C34 + ldr r0, _02341D00 @ =0x02346BC8 + ldr r1, _02341DB8 @ =0x00004008 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_0234287C: + cmp r4, #0x1f + beq _0234289C + ldr r0, _02341D00 @ =0x02346BC8 + ldr r0, [r0] + add r0, r0, #0x1000 + ldr r0, [r0, #0xae0] + cmp r0, #0 + bgt _02344184 +_0234289C: + bl FUN_02069904 + mov r0, #1 + mov r1, #0 + bl FUN_02338BEC + ldr r0, _02341D00 @ =0x02346BC8 + ldr r1, _02342F98 @ =0x00004010 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023428C0: + bl FUN_02338EC4 + cmp r0, #0 + beq _02344184 + bl FUN_02338B08 + bl ov03_0233CAB8 + cmp r0, #2 + beq _023428E8 + bl ov03_0233CAB8 + cmp r0, #4 + bne _02342904 +_023428E8: + ldrsh r0, [r5, #0xb2] + cmp r0, #0 + ldrne r0, _02341D00 @ =0x02346BC8 + ldrne r1, _02341D0C @ =0x00003070 + ldrne r0, [r0] + strne r1, [r0] + bne _02344184 +_02342904: + mov r0, #2 + b _02344188 +_0234290C: + bl FUN_02338EC4 + cmp r0, #6 + bne _02342EE8 + bl FUN_02338B08 + bl ov03_0233CAB8 + cmp r0, #5 + addls pc, pc, r0, lsl #2 + b _02342ED4 +_0234292C: @ jump table + b _02342E8C @ case 0 + b _02342944 @ case 1 + b _02342EC0 @ case 2 + b _02342B68 @ case 3 + b _02342EC0 @ case 4 + b _02342D5C @ case 5 +_02342944: + ldr r5, [r4] + add r1, r5, #0x1000 + ldr r0, [r1, #0x95c] + cmp r0, #0 + bge _02342A98 + ldr r0, [r1, #0x960] + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _02344184 +_02342968: @ jump table + b _02342978 @ case 0 + b _02342A30 @ case 1 + b _02342A64 @ case 2 + b _02342A30 @ case 3 +_02342978: + add r1, r5, #0x24 + mov r0, #2 + bl FUN_0205B918 + cmp r0, #0 + bne _023429C4 + add r1, r5, #0x24 + mov r0, #4 + bl FUN_0205B918 + cmp r0, #0 + bne _023429C4 + add r1, r5, #0x24 + mov r0, #6 + bl FUN_0205B918 + cmp r0, #0 + bne _023429C4 + add r0, r5, #0x24 + bl FUN_0205B8CC + cmp r0, #0 + beq _023429E4 +_023429C4: + ldr r1, _02342FAC @ =0x000038A1 + mov r0, #0x1c + bl FUN_02066468 + ldr r0, _02341D00 @ =0x02346BC8 + ldr r1, _02341D20 @ =0x00007001 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023429E4: + add r0, r5, #0x24 + bl FUN_0205B890 + mov r0, #2 + strb r0, [r5, #0x10] + ldrb r0, [r5, #0x14] + bl FUN_02051380 + strb r0, [r5, #0xbc] + add r0, r5, #0x10 + bl FUN_0205B6EC + ldr r1, _02342FB0 @ =0x00003889 + mov r0, #0x1c + bl FUN_02066468 + mov r0, r4 + ldr r1, [r0] + ldr r2, _02342FB4 @ =0x00005110 + add r0, r5, #0x10 + str r2, [r1] + bl FUN_02069790 + b _02344184 +_02342A30: + mov r0, #0x17 + bl FUN_023375C0 + str r0, [sp] + mov r0, #0 + ldr r2, _02342FB8 @ =0x02346774 + ldr r3, _02342FBC @ =0x00003887 + mov r1, r0 + bl FUN_020663C8 + mov r0, r4 + ldr r1, _02342FC0 @ =0x00005008 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02342A64: + mov r0, #0x17 + bl FUN_023375C0 + str r0, [sp] + mov r0, #0 + ldr r2, _02342FB8 @ =0x02346774 + ldr r3, _02342FC4 @ =0x00003888 + mov r1, r0 + bl FUN_020663C8 + mov r0, r4 + ldr r1, _02342FC0 @ =0x00005008 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02342A98: + ldr r0, [r5, #0xc] + cmp r0, #0 + bne _02342AD8 + mov r0, #0x18 + bl FUN_023375C0 + str r0, [sp] + mov r0, #0 + ldr r2, _02342FB8 @ =0x02346774 + ldr r3, _02342FC8 @ =0x00003886 + mov r1, r0 + bl FUN_020663C8 + mov r0, r4 + ldr r1, _02342FCC @ =0x00005016 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02342AD8: + add r0, r5, #0x1900 + ldrsh r0, [r0, #0x64] + cmp r0, #0 + moveq r0, #2 + beq _02344188 + ldrb r0, [r1, #0x9d4] + cmp r0, #0 + beq _02342B60 + mov r5, #0 + mov r6, #0xb0 + b _02342B40 +_02342B04: + ldr r1, [r4] + add r0, r1, r5, lsl #1 + add r0, r0, #0x1900 + ldrsh r0, [r0, #0x68] + add r2, r1, #0x10 + smulbb r1, r0, r6 + ldrb r0, [r2, r1] + add r7, r2, r1 + cmp r0, #2 + bne _02342B3C + add r0, r7, #0x14 + bl FUN_0205B890 + mov r0, r7 + bl FUN_0205B6EC +_02342B3C: + add r5, r5, #1 +_02342B40: + ldr r1, [r4] + add r0, r1, #0x1900 + ldrsh r0, [r0, #0x64] + cmp r5, r0 + blt _02342B04 + mov r0, #0x8000 + str r0, [r1] + b _02344184 +_02342B60: + mov r0, #2 + b _02344188 +_02342B68: + mov r0, r4 + ldr r1, [r0] + ldrb r0, [r1, #0x10] + cmp r0, #0 + moveq r0, #2 + beq _02344188 + ldrb r0, [r1, #0xbe] + bl FUN_0205BD5C + mov r2, r4 + mov r1, r0 + ldr r0, [r2] + add r0, r0, #0xae + bl ov03_023441EC + cmp r0, #0 + movne r0, r4 + ldrne r0, [r0] + movne r1, #0 + strhne r1, [r0, #0xb2] + ldr r0, _02341D00 @ =0x02346BC8 + ldr r1, [r0] + add r0, r1, #0x1000 + ldrb r0, [r0, #0x660] + cmp r0, #0 + beq _02342C44 + add r0, r1, #0x1600 + ldrsh r0, [r0, #0x1c] + bl FUN_02062B64 + cmp r0, #0 + bne _02342C30 + ldr r0, _02341D00 @ =0x02346BC8 + ldr r2, [r0] + add r1, r2, #0x1600 + ldrb r0, [r2, #0xbe] + add r2, r2, #0x3e + ldrsh r1, [r1, #0x1c] + add r2, r2, #0x1600 + bl FUN_0205C700 + cmp r0, #0 + beq _02342C30 + ldr r0, _02341D00 @ =0x02346BC8 + ldr r0, [r0] + add r0, r0, #0x1000 + ldrb r1, [r0, #0x618] + cmp r1, #1 + blo _02342C30 + cmp r1, #0x64 + bhi _02342C30 + ldrb r0, [r0, #0x638] + cmp r0, #0xb + blo _02342C44 +_02342C30: + ldr r0, _02341D00 @ =0x02346BC8 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x1000 + strb r1, [r0, #0x660] +_02342C44: + ldr r1, _02342FD0 @ =0x02346BC8 + mov r0, #1 + ldr r1, [r1] + add r1, r1, #0x24 + bl FUN_0205BA0C + lsl r0, r0, #0x18 + asr r0, r0, #0x18 + bl FUN_0205B77C + mov r2, #7 + ldr r1, _02342FD0 @ =0x02346BC8 + strb r2, [r0] + ldr r2, [r1] + ldrb r2, [r2, #0xbe] + strb r2, [r0, #0xae] + ldr r0, [r1] + add r0, r0, #0x10 + bl FUN_0205B738 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, [r0] + ldrsh r0, [r1, #0xb2] + cmp r0, #0 + beq _02342CD8 + mov r0, #0 + mov r1, r0 + bl FUN_0205BC30 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r0, [r0] + add r0, r0, #0xae + bl FUN_0205BCC4 + ldr r1, _02342FD4 @ =0x00003851 + mov r0, #0x1c + bl FUN_02066468 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02342FD8 @ =0x00006001 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02342CD8: + add r0, r1, #0x1000 + ldrb r0, [r0, #0x660] + cmp r0, #0 + mov r0, #0 + beq _02342D38 + bl FUN_0205BCC4 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r0, [r0] + ldrb r0, [r0, #0xbe] + bl FUN_0205BD5C + ldr r2, _02342FD0 @ =0x02346BC8 + mov r1, r0 + ldr r0, [r2] + add r0, r0, #0x214 + add r0, r0, #0x1400 + bl FUN_0205BC30 + ldr r1, _02342FDC @ =0x00003852 + mov r0, #0x1c + bl FUN_02066468 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02342FE0 @ =0x00006002 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02342D38: + bl FUN_0205BCC4 + mov r0, #0 + mov r1, r0 + bl FUN_0205BC30 + ldr r0, _02342FD0 @ =0x02346BC8 + mov r1, #0x8000 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02342D5C: + mov r1, r4 + ldr r0, [r1] + mov r4, #0 + str r4, [r0, #8] + mov r6, r4 + mov r7, r4 + mov r0, #0xb0 + b _02342DAC +_02342D7C: + mul r5, r6, r0 + add r2, r3, r5 + ldrb r2, [r2, #0x10] + cmp r2, #6 + bne _02342DA8 + cmp r4, #0 + ldreq r3, [r1] + add r7, r7, #1 + addeq r2, r3, #0x10 + streq r6, [r3, #8] + addeq r4, r2, r5 +_02342DA8: + add r6, r6, #1 +_02342DAC: + ldr r3, [r1] + ldr r2, [r3, #0xc] + cmp r6, r2 + blt _02342D7C + cmp r7, #0 + ble _02342E84 + add r0, sp, #0x1d0 + bl FUN_02023690 + add r1, r4, #0x14 + mov r0, #4 + bl FUN_0205BA0C + lsl r0, r0, #0x18 + asr r0, r0, #0x18 + bl FUN_0205B77C + mov r5, r0 + ldrb r0, [r4, #0xae] + bl FUN_0205BD5C + mov r1, r0 + add r0, r4, #0x9e + bl ov03_023441EC + cmp r0, #0 + movne r0, #0 + strhne r0, [r4, #0xa2] + mov r0, r5 + mov r1, r4 + mov r2, #0xb0 + bl FUN_020032D4 + add r0, sp, #0x64 + mov r1, #0x2a + bl FUN_02003250 + bl FUN_020205A0 + ldrsb r1, [r4, #0x1c] + cmp r1, r0 + add r0, sp, #0x64 + bne _02342E48 + add r1, r4, #0x1d + mov r2, #0x14 + bl FUN_020251F4 + b _02342E50 +_02342E48: + ldr r1, _02342F7C @ =0x000038C9 + bl FUN_020258B8 +_02342E50: + ldr r1, _02342FE4 @ =0x00003890 + add r3, sp, #0x64 + add r2, sp, #0x1d0 + mov r0, #0x1c + str r3, [sp, #0x208] + bl FUN_02066488 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r2, _02342FE8 @ =0x00006004 + ldr r1, [r0] + mov r0, r4 + str r2, [r1] + bl FUN_02069790 + b _02344184 +_02342E84: + mov r0, #2 + b _02344188 +_02342E8C: + mov r0, r4 + ldr r0, [r0] + add r0, r0, #0x1600 + ldrsb r0, [r0, #0x10] + bl FUN_0205B77C + add r1, r5, #0x10 + mov r2, #0xb0 + bl FUN_020032D4 + mov r0, r4 + ldr r0, [r0] + mov r1, #0x8000 + str r1, [r0] + b _02344184 +_02342EC0: + mov r0, r4 + ldr r0, [r0] + mov r1, #0x8000 + str r1, [r0] + b _02344184 +_02342ED4: + ldr r0, _02342FD0 @ =0x02346BC8 + mov r1, #0x8000 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02342EE8: + cmp r0, #8 + bne _02344184 + bl FUN_02338B08 + mov r0, #2 + b _02344188 +_02342EFC: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x14 + bl FUN_023375D0 + cmp r4, #0x17 + bne _02342F44 + ldr r1, _02342FD0 @ =0x02346BC8 + mov r3, #0 + ldr r0, [r1] + ldr r2, _02342FEC @ =0x00004001 + add r0, r0, #0x1000 + str r3, [r0, #0x95c] + ldr r0, [r1] + str r2, [r0] + b _02344184 +_02342F44: + cmp r4, #0x18 + bne _02342FF0 + ldr r1, _02342FD0 @ =0x02346BC8 + mov r3, #1 + ldr r0, [r1] + add r2, r3, #0x4000 + add r0, r0, #0x1000 + str r3, [r0, #0x95c] + ldr r0, [r1] + str r2, [r0] + b _02344184 + .align 2, 0 +_02342F70: .4byte 0x00005108 +_02342F74: .4byte 0x00005052 +_02342F78: .4byte 0x00004005 +_02342F7C: .4byte 0x000038C9 +_02342F80: .4byte 0x00003855 +_02342F84: .4byte 0x00002A30 +_02342F88: .4byte 0x00004007 +_02342F8C: .4byte 0x00003856 +_02342F90: .4byte 0x00003893 +_02342F94: .4byte 0x00003894 +_02342F98: .4byte 0x00004010 +_02342F9C: .4byte 0x00003874 +_02342FA0: .4byte 0x00003876 +_02342FA4: .4byte 0x00003875 +_02342FA8: .4byte 0x0000389F +_02342FAC: .4byte 0x000038A1 +_02342FB0: .4byte 0x00003889 +_02342FB4: .4byte 0x00005110 +_02342FB8: .4byte 0x02346774 +_02342FBC: .4byte 0x00003887 +_02342FC0: .4byte 0x00005008 +_02342FC4: .4byte 0x00003888 +_02342FC8: .4byte 0x00003886 +_02342FCC: .4byte 0x00005016 +_02342FD0: .4byte 0x02346BC8 +_02342FD4: .4byte 0x00003851 +_02342FD8: .4byte 0x00006001 +_02342FDC: .4byte 0x00003852 +_02342FE0: .4byte 0x00006002 +_02342FE4: .4byte 0x00003890 +_02342FE8: .4byte 0x00006004 +_02342FEC: .4byte 0x00004001 +_02342FF0: + cmp r4, #0x19 + bne _0234301C + ldr r1, _02342FD0 @ =0x02346BC8 + mov r3, #2 + ldr r0, [r1] + ldr r2, _02342FEC @ =0x00004001 + add r0, r0, #0x1000 + str r3, [r0, #0x95c] + ldr r0, [r1] + str r2, [r0] + b _02344184 +_0234301C: + cmp r4, #0x1a + bne _02343064 + ldr r1, _02342FD0 @ =0x02346BC8 + mvn r3, #0 + ldr r0, [r1] + ldr r2, _02343F70 @ =0xD4A51000 + add r0, r0, #0x1000 + str r3, [r0, #0x95c] + ldr r0, [r1] + mov r1, #0xe8 + str r2, [r0, #0x1c] + str r1, [r0, #0x20] + bl FUN_02046D20 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02343F74 @ =0x00005006 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02343064: + cmp r4, #0x1f + bne _02344184 + mov r0, #1 + b _02344188 +_02343074: + bl FUN_02338EC4 + cmp r0, #4 + bne _02343184 + mov r0, #0 + bl FUN_02338E1C + mov r4, r0 + bl FUN_0232CB1C + ldr r1, _02342FD0 @ =0x02346BC8 + ldr r2, [r1] + str r0, [r2, #0xc] + ldr r2, [r1] + ldr r0, [r2, #0xc] + cmp r0, #0 + bne _023430CC + mov r0, #1 + mov r1, #0 + bl FUN_02338BEC + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02342F98 @ =0x00004010 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023430CC: + add r0, r2, #0x1000 + ldr r1, [r0, #0x95c] + add r0, r2, #0xdd + cmp r1, #0 + moveq r3, #1 + movne r3, #0 + add r5, r0, #0x1900 + add r1, r2, #0x10 + mov r0, r4 + and r3, r3, #0xff + mov r2, #0x20 + bl FUN_0232CB50 + ldr r1, _02342FD0 @ =0x02346BC8 + cmp r0, #0 + ldr r1, [r1] + str r0, [r1, #0xc] + bne _02343130 + mov r0, #1 + mov r1, #0 + bl FUN_02338BEC + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02342F98 @ =0x00004010 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02343130: + add r0, sp, #0x180 + bl FUN_02023690 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r2, _02343F78 @ =0x02346BCC + ldr r1, [r0] + mov r0, r5 + add r1, r1, #0x1000 + ldr r1, [r1, #0x95c] + lsl r1, r1, #1 + ldrh r1, [r2, r1] + bl FUN_020258B8 + ldr r1, _02343F7C @ =0x00003885 + add r2, sp, #0x180 + mov r0, #0x1c + str r5, [sp, #0x1b8] + bl FUN_02066488 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02343F80 @ =0x00005053 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02343184: + cmp r0, #8 + cmpne r0, #6 + bne _02344184 + bl FUN_02338B08 + mov r0, #2 + b _02344188 +_0234319C: + bl FUN_02338EC4 + mov r4, r0 + bl FUN_02066494 + cmp r4, #5 + bne _023431CC + bl FUN_02046D20 + bl FUN_02338C34 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02343F84 @ =0x00004008 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023431CC: + cmp r0, #0x1f + bne _02344184 + bl FUN_02046D20 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02343F88 @ =0x00005003 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023431EC: + mov r0, #0 + mov r1, #1 + bl FUN_0205B97C + mov r3, r0 + ldr r2, [r5, #0xc] + add r1, r5, #0x10 + mov r0, #0x13 + bl FUN_02066990 + mov r0, r4 + ldr r1, _02343F8C @ =0x00005004 + ldr r0, [r0] + str r1, [r0] +_0234321C: + bl FUN_02338EC4 + mov r4, r0 + bl FUN_02066A44 + cmp r4, #5 + bne _0234324C + bl FUN_02067664 + bl FUN_02338C34 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02343F84 @ =0x00004008 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_0234324C: + mvn r1, #0 + cmp r0, r1 + bne _02343290 + bl FUN_02067664 + mov r0, #0x19 + bl FUN_023375C0 + str r0, [sp] + mov r0, #0 + ldr r2, _02343F90 @ =0x0234675C + ldr r3, _02343F94 @ =0x000038A7 + mov r1, r0 + bl FUN_020663C8 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02343F98 @ =0x00005010 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02343290: + cmp r0, #2 + bne _02344184 + bl FUN_020674E8 + ldr r3, _02342FD0 @ =0x02346BC8 + mov r4, #0 + ldr r2, [r3] + mov r1, #0x20 + add r2, r2, #0x1900 + strh r0, [r2, #0x64] + ldr r0, [r3] + add r0, r0, #0x1900 + strh r4, [r0, #0x66] + ldr r0, [r3] + add r0, r0, #0x168 + add r0, r0, #0x1800 + bl FUN_02067524 + bl FUN_02067664 + ldr r1, _02342FB0 @ =0x00003889 + mov r0, #0x1c + bl FUN_02066468 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02343F9C @ =0x00005011 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023432F4: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x18 + bl FUN_023375D0 + cmp r4, #0x1d + bne _02343358 + bl FUN_022BD274 + cmp r0, #0 + ldreq r0, _02342FD0 @ =0x02346BC8 + moveq r1, #2 + ldreq r0, [r0] + streq r1, [r0] + beq _02344184 + ldr r0, _02342FD0 @ =0x02346BC8 + mov r3, #0xe000 + ldr r2, [r0] + mov r1, #0 + str r3, [r2] + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #0xae4] + b _02344184 +_02343358: + cmp r4, #0x1f + bne _02344184 + mov r0, #2 + b _02344188 +_02343368: + ldr r1, [r5, #0x1c] + ldr r2, [r5, #0x20] + mov r0, #1 + bl FUN_0233580C + mov r0, r4 + ldr r1, _02343FA0 @ =0x00005007 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_0234338C: + bl FUN_02336014 + cmp r0, #2 + bne _023433C4 + bl FUN_023370AC + mov r2, r4 + ldr r2, [r2] + str r0, [r2, #0x1c] + str r1, [r2, #0x20] + bl FUN_02335FA8 + mov r0, r4 + ldr r1, _02342FEC @ =0x00004001 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023433C4: + cmp r0, #1 + bne _02344184 + bl FUN_02335FA8 + mov r0, r4 + ldr r0, [r0] + mov r1, #2 + str r1, [r0] + b _02344184 +_023433E4: + bl FUN_02338EC4 + cmp r0, #4 + bne _02343528 + mov r0, #0 + bl FUN_02338E1C + mov r4, r0 + bl FUN_0232CEDC + mov r6, r0 + mov r0, r4 + bl FUN_0232CF4C + mov r5, r0 + mov r0, r4 + bl FUN_0232CF14 + cmp r6, #0 + bne _02343460 + ldr r2, _02342FD0 @ =0x02346BC8 + mov r1, #0 + ldr r3, [r2] + mov r0, #1 + strb r1, [r3, #0x10] + ldr r3, [r2] + strb r1, [r3, #0xbd] + ldr r2, [r2] + add r2, r2, #0x1000 + str r0, [r2, #0x960] + bl FUN_02338BEC + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02342F98 @ =0x00004010 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02343460: + cmp r5, #0 + bne _023434B8 + ldr r1, _02342FD0 @ =0x02346BC8 + mov r3, #0 + ldr r2, [r1] + cmp r0, #0 + strb r3, [r2, #0x10] + ldr r2, [r1] + strb r0, [r2, #0xbd] + ldr r0, [r1] + movne r1, #2 + moveq r1, #3 + add r0, r0, #0x1000 + str r1, [r0, #0x960] + mov r0, #1 + mov r1, #0 + bl FUN_02338BEC + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02342F98 @ =0x00004010 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023434B8: + ldr r1, _02342FD0 @ =0x02346BC8 + mov r3, #2 + ldr r2, [r1] + strb r3, [r2, #0x10] + ldr r2, [r1] + strb r0, [r2, #0xbd] + ldr r1, [r1] + mov r0, r4 + add r1, r1, #0x10 + bl FUN_0232CF84 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r2, [r0] + add r0, r2, #0x1000 + ldr r0, [r0, #0x958] + ldr r1, [r2, #0x1c] + ldr r2, [r2, #0x20] + bl FUN_0232D188 + ldr r1, _02342FD0 @ =0x02346BC8 + mov r0, #4 + ldr r1, [r1] + add r1, r1, #0x1000 + ldr r1, [r1, #0x958] + bl FUN_02338C4C + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02343FA4 @ =0x00005109 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02343528: + cmp r0, #8 + cmpne r0, #6 + bne _02344184 + bl FUN_02338B08 + mov r0, #2 + b _02344188 +_02343540: + bl FUN_02338EC4 + cmp r0, #4 + bne _023435B8 + mov r0, #0 + bl FUN_02338E1C + mov r4, r0 + bl FUN_0232D1BC + cmp r0, #0 + ldreq r0, _02342FD0 @ =0x02346BC8 + moveq r1, #3 + ldreq r0, [r0] + addeq r0, r0, #0x1000 + streq r1, [r0, #0x960] + beq _02343598 + ldr r1, _02342FD0 @ =0x02346BC8 + mov r0, r4 + ldr r1, [r1] + mov r3, #0 + add r2, r1, #0x1000 + add r1, r1, #0x10 + str r3, [r2, #0x960] + bl FUN_0232D1F4 +_02343598: + mov r0, #1 + mov r1, #0 + bl FUN_02338BEC + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02342F98 @ =0x00004010 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023435B8: + cmp r0, #8 + cmpne r0, #6 + bne _02344184 + bl FUN_02338B08 + mov r0, #2 + b _02344188 +_023435D0: + bl FUN_02066494 + mov r4, r0 + bl FUN_020698B8 + cmp r4, #0x1f + bne _02344184 + bl FUN_02069904 + ldr r0, _02342FD0 @ =0x02346BC8 + mov r1, #0x8000 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023435FC: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x17 + bl FUN_023375D0 + cmp r4, #0x1d + bne _02343668 + bl FUN_022BD274 + cmp r0, #0 + beq _02343650 + ldr r0, _02342FD0 @ =0x02346BC8 + mov r3, #0xe000 + ldr r2, [r0] + mov r1, #1 + str r3, [r2] + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #0xae4] + b _02344184 +_02343650: + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02343F74 @ =0x00005006 + ldr r0, [r0] + str r1, [r0] + bl FUN_02046D20 + b _02344184 +_02343668: + cmp r4, #0x1f + bne _02344184 + mov r0, #2 + b _02344188 +_02343678: + bl FUN_02338EC4 + mov r5, r0 + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x19 + bl FUN_023375D0 + cmp r5, #5 + bne _023436C4 + bl FUN_02046BB4 + bl FUN_02046D20 + bl FUN_02338C34 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02343F84 @ =0x00004008 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023436C4: + cmp r4, #0x1d + bne _023436FC + mov r0, #1 + mov r1, #0 + bl FUN_02338BEC + ldr r1, _02342FD0 @ =0x02346BC8 + mov r3, #0 + ldr r0, [r1] + ldr r2, _02342F98 @ =0x00004010 + add r0, r0, #0x1900 + strh r3, [r0, #0x64] + ldr r0, [r1] + str r2, [r0] + b _02344184 +_023436FC: + sub r0, r4, #0x1e + cmp r0, #1 + bhi _02344184 + bl FUN_02046D20 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02343F88 @ =0x00005003 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02343720: + bl FUN_02338EC4 + mov r4, r0 + bl FUN_02066494 + cmp r4, #5 + bne _02343750 + bl FUN_02046D20 + bl FUN_02338C34 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02343F84 @ =0x00004008 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02343750: + cmp r0, #0x1f + bne _02344184 + ldr r1, _02343FA8 @ =0x0000388A + mov r0, #0 + bl FUN_02066468 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02343FAC @ =0x00005112 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02343778: + bl FUN_02338EC4 + mov r4, r0 + bl FUN_02066494 + cmp r4, #5 + bne _023437A8 + bl FUN_02046D20 + bl FUN_02338C34 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02343F84 @ =0x00004008 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023437A8: + cmp r0, #0x1f + bne _02344184 + ldr r1, _02342FD0 @ =0x02346BC8 + mov r3, #0 + ldr r0, [r1] + ldr r2, _02343FB0 @ =0x0000511A + add r0, r0, #0x1000 + strb r3, [r0, #0x9d4] + ldr r0, [r1] + add r0, r0, #0x1000 + strb r3, [r0, #0x9d5] + ldr r0, [r1] + str r2, [r0] + b _02344184 +_023437E0: + mov r8, #0 + sub r5, r1, #0x108 + mov fp, #2 + mov r7, r8 + mov r6, #1 +_023437F4: + ldr r3, [r4] + mov r0, #2 + add r1, r3, #0x1900 + ldrsh r1, [r1, #0x66] + add r2, r3, #0x10 + add r1, r3, r1, lsl #1 + add r1, r1, #0x1900 + ldrsh r3, [r1, #0x68] + mov r1, #0xb0 + smulbb sl, r3, r1 + add sb, r2, sl + add r1, sb, #0x14 + bl FUN_0205B918 + cmp r0, #0 + bne _02343868 + mov r0, #4 + add r1, sb, #0x14 + bl FUN_0205B918 + cmp r0, #0 + bne _02343868 + mov r0, #6 + add r1, sb, #0x14 + bl FUN_0205B918 + cmp r0, #0 + bne _02343868 + add r0, sb, #0x14 + bl FUN_0205B8CC + cmp r0, #0 + beq _023438D8 +_02343868: + strb r7, [sb] + ldr r0, [r4] + add r0, r0, #0x1000 + strb r6, [r0, #0x9d5] + ldr r0, [r4] + add r0, r0, #0x1900 + ldrsh r1, [r0, #0x66] + add r1, r1, #1 + strh r1, [r0, #0x66] + ldr r0, [r4] + add r0, r0, #0x1900 + ldrsh r1, [r0, #0x66] + ldrsh r0, [r0, #0x64] + cmp r1, r0 + blt _02343918 + ldr r1, _02343FB4 @ =0x000038A2 + mov r0, #0x1c + bl FUN_02066468 + ldr r1, _02342FD0 @ =0x02346BC8 + ldr r3, _02342F84 @ =0x00002A30 + ldr r0, [r1] + ldr r2, _02343FB8 @ =0x00005013 + add r0, r0, #0x1000 + str r3, [r0, #0xae0] + ldr r1, [r1] + mov r0, #0 + str r2, [r1] + b _02344188 +_023438D8: + strb fp, [sb] + ldr r0, [r4] + add r2, r0, sl + add r0, r0, #0x1000 + ldr r1, [r2, #0x1c] + ldr r0, [r0, #0x958] + ldr r2, [r2, #0x20] + bl FUN_0232D188 + ldr r1, [r4] + mov r0, #4 + add r1, r1, #0x1000 + ldr r1, [r1, #0x958] + bl FUN_02338C4C + ldr r0, [r4] + mov r8, #1 + str r5, [r0] +_02343918: + cmp r8, #0 + beq _023437F4 +_02343920: + bl FUN_02338EC4 + cmp r0, #4 + bne _02343AAC + mov r0, #0 + bl FUN_02338E1C + ldr r1, _02342FD0 @ =0x02346BC8 + mov r2, #0xb0 + ldr r5, [r1] + mov r4, r0 + add r1, r5, #0x1900 + ldrsh r1, [r1, #0x66] + add r3, r5, #0x10 + add r1, r5, r1, lsl #1 + add r1, r1, #0x1900 + ldrsh r1, [r1, #0x68] + smlabb r5, r1, r2, r3 + bl FUN_0232D1BC + cmp r0, #0 + beq _023439C4 + mov r0, r4 + mov r1, r5 + bl FUN_0232D1F4 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r0, [r0] + add r0, r0, #0x1000 + ldr r0, [r0, #0x95c] + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + strb r0, [r5, #0xad] + mov r0, #2 + strb r0, [r5] + ldrb r0, [r5, #4] + bl FUN_02051380 + ldr r1, _02342FD0 @ =0x02346BC8 + strb r0, [r5, #0xac] + ldr r0, [r1] + mov r1, #1 + add r0, r0, #0x1000 + strb r1, [r0, #0x9d4] + b _023439CC +_023439C4: + mov r0, #0 + strb r0, [r5] +_023439CC: + ldr r1, _02342FD0 @ =0x02346BC8 + ldr r0, [r1] + add r0, r0, #0x1900 + ldrsh r2, [r0, #0x66] + add r2, r2, #1 + strh r2, [r0, #0x66] + ldr r2, [r1] + add r0, r2, #0x1900 + ldrsh r1, [r0, #0x66] + ldrsh r0, [r0, #0x64] + cmp r1, r0 + ldrlt r0, _02343FB0 @ =0x0000511A + strlt r0, [r2] + blt _02344184 + add r0, r2, #0x1000 + ldrb r1, [r0, #0x9d5] + cmp r1, #0 + beq _02343A44 + ldr r1, _02343FB4 @ =0x000038A2 + mov r0, #0x1c + bl FUN_02066468 + ldr r1, _02342FD0 @ =0x02346BC8 + ldr r3, _02342F84 @ =0x00002A30 + ldr r0, [r1] + ldr r2, _02343FB8 @ =0x00005013 + add r0, r0, #0x1000 + str r3, [r0, #0xae0] + ldr r0, [r1] + str r2, [r0] + b _02344184 +_02343A44: + ldrb r0, [r0, #0x9d4] + cmp r0, #0 + mov r0, #0x1c + beq _02343A80 + ldr r1, _02343FBC @ =0x0000388B + bl FUN_02066468 + ldr r1, _02342FD0 @ =0x02346BC8 + ldr r3, _02342F84 @ =0x00002A30 + ldr r0, [r1] + ldr r2, _02342F88 @ =0x00004007 + add r0, r0, #0x1000 + str r3, [r0, #0xae0] + ldr r0, [r1] + str r2, [r0] + b _02344184 +_02343A80: + ldr r1, _02343FC0 @ =0x0000388C + bl FUN_02066468 + ldr r1, _02342FD0 @ =0x02346BC8 + ldr r3, _02342F84 @ =0x00002A30 + ldr r0, [r1] + ldr r2, _02342F88 @ =0x00004007 + add r0, r0, #0x1000 + str r3, [r0, #0xae0] + ldr r0, [r1] + str r2, [r0] + b _02344184 +_02343AAC: + cmp r0, #8 + cmpne r0, #6 + bne _02344184 + bl FUN_02338B08 + mov r0, #2 + b _02344188 +_02343AC4: + bl FUN_02338EC4 + mov r5, r0 + bl FUN_02066494 + mov r4, r0 + add r1, sp, #0x12 + mov r0, #0 + bl FUN_020061EC + bl FUN_0204AE60 + cmp r0, #0 + moveq r0, #0 + beq _02343B08 + add r0, sp, #0x40 + bl FUN_02006C1C + add r0, sp, #0x40 + mov r1, #1 + mov r2, #0 + bl FUN_02006C8C +_02343B08: + ldrh r1, [sp, #0x12] + cmp r1, #0 + cmpeq r0, #0 + ldrne r0, _02342FD0 @ =0x02346BC8 + ldrne r1, _02342F84 @ =0x00002A30 + ldrne r0, [r0] + addne r0, r0, #0x1000 + strne r1, [r0, #0xae0] + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r0, [r0] + add r0, r0, #0x1000 + ldr r1, [r0, #0xae0] + cmp r1, #0 + subgt r1, r1, #1 + strgt r1, [r0, #0xae0] + cmp r5, #5 + bne _02343B68 + bl FUN_02046D20 + bl FUN_02338C34 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02343F84 @ =0x00004008 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02343B68: + cmp r4, #0x1f + beq _02343B88 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r0, [r0] + add r0, r0, #0x1000 + ldr r0, [r0, #0xae0] + cmp r0, #0 + bgt _02344184 +_02343B88: + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r0, [r0] + add r0, r0, #0x1000 + ldrb r0, [r0, #0x9d4] + cmp r0, #0 + mov r0, #0x1c + beq _02343BD0 + ldr r1, _02343FBC @ =0x0000388B + bl FUN_02066468 + ldr r1, _02342FD0 @ =0x02346BC8 + ldr r3, _02342F84 @ =0x00002A30 + ldr r0, [r1] + ldr r2, _02342F88 @ =0x00004007 + add r0, r0, #0x1000 + str r3, [r0, #0xae0] + ldr r0, [r1] + str r2, [r0] + b _02344184 +_02343BD0: + ldr r1, _02343FC0 @ =0x0000388C + bl FUN_02066468 + ldr r1, _02342FD0 @ =0x02346BC8 + ldr r3, _02342F84 @ =0x00002A30 + ldr r0, [r1] + ldr r2, _02342F88 @ =0x00004007 + add r0, r0, #0x1000 + str r3, [r0, #0xae0] + ldr r0, [r1] + str r2, [r0] + b _02344184 +_02343BFC: + bl ov03_023442D0 + mov r0, r4 + ldr r1, _02343FC4 @ =0x00008002 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02343C14: + bl ov03_02344300 + cmp r0, #1 + bne _02343D6C + bl ov03_0233CAB8 + cmp r0, #1 + bne _02343C64 + bl ov03_0233CFD4 + cmp r0, #0 + mov r0, #0x1c + beq _02343C48 + ldr r1, _02343FC8 @ =0x00003882 + bl FUN_02066468 + b _02343C50 +_02343C48: + ldr r1, _02343FCC @ =0x00003883 + bl FUN_02066468 +_02343C50: + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02343FD0 @ =0x00007002 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02343C64: + bl ov03_0233CAB8 + cmp r0, #3 + bne _02343C90 + ldr r1, _02343FD4 @ =0x00003857 + mov r0, #0x1c + bl FUN_02066468 + mov r0, r4 + ldr r1, _02343FD0 @ =0x00007002 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02343C90: + bl ov03_0233CAB8 + cmp r0, #0 + bne _02343D64 + mov r1, r4 + ldr r1, [r1] + add r0, sp, #0x130 + add r1, r1, #0xdd + ldr r6, [r5, #0x1c] + add r7, r1, #0x1900 + ldr r4, [r5, #0x20] + bl FUN_02023690 + ldrb r0, [r5, #0xbd] + cmp r0, #0 + ldrne r0, _02343FD8 @ =0x0000385F + ldreq r0, _02343FDC @ =0x00003862 + lsl r1, r0, #0x10 + mov r0, r7 + lsr r1, r1, #0x10 + bl FUN_020258B8 + ldr r2, _02343FE0 @ =0x00002710 + mov r0, r6 + mov r1, r4 + mov r3, #0 + bl FUN_0208FE48 + str r0, [sp, #0x15c] + ldr r2, _02343FE0 @ =0x00002710 + mov r0, r6 + mov r1, r4 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _02343FE0 @ =0x00002710 + mov r3, #0 + bl FUN_0208FE48 + str r0, [sp, #0x158] + ldr r2, _02343FE4 @ =0x05F5E100 + mov r1, r4 + mov r0, r6 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _02343FE0 @ =0x00002710 + mov r3, #0 + bl FUN_0208FE48 + str r0, [sp, #0x154] + ldr r1, _02343FE8 @ =0x00003867 + mov r0, #0x1c + add r2, sp, #0x130 + str r7, [sp, #0x168] + bl FUN_02066488 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02343FD0 @ =0x00007002 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02343D64: + mov r0, #3 + b _02344188 +_02343D6C: + cmp r0, #3 + moveq r0, #4 + beq _02344188 + cmp r0, #2 + bne _02344184 + mov r0, #1 + b _02344188 +_02343D88: + bl FUN_02066494 + cmp r0, #0x1f + moveq r0, r4 + ldreq r0, [r0] + moveq r1, #0x8000 + streq r1, [r0] + b _02344184 +_02343DA4: + bl FUN_02066494 + cmp r0, #0x1f + moveq r0, r4 + ldreq r0, [r0] + moveq r1, #0x8000 + streq r1, [r0] + b _02344184 +_02343DC0: + bl FUN_02066494 + mov r4, r0 + bl FUN_020698B8 + cmp r4, #0x1f + bne _02344184 + bl FUN_02069904 + ldr r0, _02342FD0 @ =0x02346BC8 + ldr r1, _02343FEC @ =0x00006005 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02343DEC: + add r0, r5, #0x1a8 + add r0, r0, #0x1800 + bl FUN_0206351C + mov r2, r4 + ldr r0, [r2] + mov r3, #2 + add r0, r0, #0x1000 + strb r3, [r0, #0x9aa] + ldr r3, [r2] + mov r1, #0xb0 + ldr r2, [r3, #8] + add r3, r3, #0x24 + mla r1, r2, r1, r3 + mov r0, #6 + bl FUN_0205BA0C + lsl r0, r0, #0x18 + asr r0, r0, #0x18 + bl FUN_0205B77C + ldrsh r5, [r0, #0xa2] + add r2, sp, #0x10 + mov r1, #0 + cmp r5, #0 + beq _02343E94 + ldr r3, [r4] + add r3, r3, #0x1900 + strh r5, [r3, #0xbc] + ldrh r5, [r0, #0xa0] + ldr r3, [r4] + add r0, r0, #4 + add r3, r3, #0x1900 + strh r5, [r3, #0xba] + bl FUN_020630A4 + mov r0, r4 + ldr r0, [r0] + ldrsh r1, [sp, #0x10] + add r0, r0, #0xbe + mov r2, #0 + add r0, r0, #0x1900 + bl FUN_0200CF58 + mov r0, r4 + mov r1, #2 + b _02343EC0 +_02343E94: + add r0, r0, #4 + bl FUN_020630A4 + mov r0, r4 + ldr r0, [r0] + ldrsh r1, [sp, #0x10] + add r0, r0, #0x1b8 + mov r2, #0 + add r0, r0, #0x1800 + bl FUN_0200CF58 + mov r0, r4 + mov r1, #1 +_02343EC0: + ldr r0, [r0] + ldr r3, _02343FF0 @ =0x02346BC8 + add r0, r0, #0x1000 + str r1, [r0, #0x9b4] + ldr r0, [r3] + mov r1, #0 + add r0, r0, #0x1000 + str r1, [r0, #0x9d0] + ldr r0, [r3] + mov r2, #0x10 + add r0, r0, #0x1a8 + add r0, r0, #0x1800 + bl FUN_0203D438 + ldr r0, _02343FF0 @ =0x02346BC8 + ldr r1, _02343FF4 @ =0x00006006 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_02343F08: + bl FUN_0203D538 + cmp r0, #1 + bne _02344184 + mov r4, #0 + bl FUN_0203EFD4 + ldr r0, _02343FF0 @ =0x02346BC8 + ldr r2, [r0] + ldr r1, [r2, #8] + add r1, r1, #1 + str r1, [r2, #8] + ldr r6, [r0] + mov r0, #0xb0 + ldr r3, [r6, #8] + ldr r5, [r6, #0xc] + b _02343FFC +_02343F44: + mul r2, r3, r0 + add r1, r6, r2 + ldrb r1, [r1, #0x10] + cmp r1, #6 + bne _02343FF8 + ldr r0, _02343FF0 @ =0x02346BC8 + ldr r1, [r0] + add r0, r1, #0x10 + str r3, [r1, #8] + add r4, r0, r2 + b _02344004 + .align 2, 0 +_02343F70: .4byte 0xD4A51000 +_02343F74: .4byte 0x00005006 +_02343F78: .4byte 0x02346BCC +_02343F7C: .4byte 0x00003885 +_02343F80: .4byte 0x00005053 +_02343F84: .4byte 0x00004008 +_02343F88: .4byte 0x00005003 +_02343F8C: .4byte 0x00005004 +_02343F90: .4byte 0x0234675C +_02343F94: .4byte 0x000038A7 +_02343F98: .4byte 0x00005010 +_02343F9C: .4byte 0x00005011 +_02343FA0: .4byte 0x00005007 +_02343FA4: .4byte 0x00005109 +_02343FA8: .4byte 0x0000388A +_02343FAC: .4byte 0x00005112 +_02343FB0: .4byte 0x0000511A +_02343FB4: .4byte 0x000038A2 +_02343FB8: .4byte 0x00005013 +_02343FBC: .4byte 0x0000388B +_02343FC0: .4byte 0x0000388C +_02343FC4: .4byte 0x00008002 +_02343FC8: .4byte 0x00003882 +_02343FCC: .4byte 0x00003883 +_02343FD0: .4byte 0x00007002 +_02343FD4: .4byte 0x00003857 +_02343FD8: .4byte 0x0000385F +_02343FDC: .4byte 0x00003862 +_02343FE0: .4byte 0x00002710 +_02343FE4: .4byte 0x05F5E100 +_02343FE8: .4byte 0x00003867 +_02343FEC: .4byte 0x00006005 +_02343FF0: .4byte 0x02346BC8 +_02343FF4: .4byte 0x00006006 +_02343FF8: + add r3, r3, #1 +_02343FFC: + cmp r3, r5 + blt _02343F44 +_02344004: + cmp r4, #0 + beq _023440CC + add r0, sp, #0xe0 + bl FUN_02023690 + add r1, r4, #0x14 + mov r0, #4 + bl FUN_0205BA0C + lsl r0, r0, #0x18 + asr r0, r0, #0x18 + bl FUN_0205B77C + mov r5, r0 + ldrb r0, [r4, #0xae] + bl FUN_0205BD5C + mov r1, r0 + add r0, r4, #0x9e + bl ov03_023441EC + cmp r0, #0 + movne r0, #0 + strhne r0, [r4, #0xa2] + mov r0, r5 + mov r1, r4 + mov r2, #0xb0 + bl FUN_020032D4 + add r0, sp, #0x16 + mov r1, #0x2a + bl FUN_02003250 + bl FUN_020205A0 + ldrsb r1, [r4, #0x1c] + cmp r1, r0 + add r0, sp, #0x16 + bne _02344090 + add r1, r4, #0x1d + mov r2, #0x14 + bl FUN_020251F4 + b _02344098 +_02344090: + ldr r1, _02344190 @ =0x000038C9 + bl FUN_020258B8 +_02344098: + ldr r1, _02344194 @ =0x00003890 + add r3, sp, #0x16 + add r2, sp, #0xe0 + mov r0, #0x1c + str r3, [sp, #0x118] + bl FUN_02066488 + ldr r0, _02343FF0 @ =0x02346BC8 + ldr r2, _02344198 @ =0x00006004 + ldr r1, [r0] + mov r0, r4 + str r2, [r1] + bl FUN_02069790 + b _02344184 +_023440CC: + ldr r0, _02343FF0 @ =0x02346BC8 + mov r1, #0x8000 + ldr r0, [r0] + str r1, [r0] + b _02344184 +_023440E0: + bl FUN_02066494 + cmp r0, #0x1f + bne _02344184 + mov r0, #2 + b _02344188 +_023440F4: + bl FUN_02066494 + cmp r0, #0x1f + bne _02344184 + mov r0, #1 + b _02344188 +_02344108: + bl FUN_02066494 + cmp r0, #0x1f + bne _02344184 + mov r0, #3 + b _02344188 +_0234411C: + bl FUN_0233769C + mov r0, r4 + ldr r1, _0234419C @ =0x0000E001 + ldr r0, [r0] + str r1, [r0] +_02344130: + bl FUN_02337718 + sub r0, r0, #1 + cmp r0, #2 + bhi _02344184 + bl FUN_023376DC + ldr r0, _02343FF0 @ =0x02346BC8 + ldr r1, [r0] + add r0, r1, #0x1000 + ldr r0, [r0, #0xae4] + cmp r0, #1 + movne r0, #2 + strne r0, [r1] + bne _02344170 + ldr r0, _02343F74 @ =0x00005006 + str r0, [r1] + bl FUN_02046D20 +_02344170: + ldr r0, _02343FF0 @ =0x02346BC8 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #0xae4] +_02344184: + mov r0, #0 +_02344188: + add sp, sp, #0x310 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02344190: .4byte 0x000038C9 +_02344194: .4byte 0x00003890 +_02344198: .4byte 0x00006004 +_0234419C: .4byte 0x0000E001 + arm_func_end ov03_02340DB4 + + arm_func_start ov03_023441A0 +ov03_023441A0: @ 0x023441A0 + push {r3, lr} + ldr r0, _023441E8 @ =0x02346BC8 + mov r1, #0x98 + ldr r0, [r0] + add r0, r0, #0x268 + add r0, r0, #0x1400 + bl FUN_02003250 + ldr r0, _023441E8 @ =0x02346BC8 + mov r1, #6 + ldr r0, [r0] + add r0, r0, #0x1700 + bl FUN_02003250 + ldr r0, _023441E8 @ =0x02346BC8 + ldr r0, [r0] + add r1, r0, #0x1700 + add r0, r0, #0x1000 + str r1, [r0, #0x6c8] + pop {r3, pc} + .align 2, 0 +_023441E8: .4byte 0x02346BC8 + arm_func_end ov03_023441A0 + + arm_func_start ov03_023441EC +ov03_023441EC: @ 0x023441EC + push {r3, r4, r5, lr} + mov r5, r0 + ldrsh r0, [r5, #4] + mov r4, r1 + cmp r0, #0 + beq _023442C8 + bl FUN_0200EB58 + cmp r0, #0 + beq _02344224 + ldrsh r0, [r5, #4] + mov r1, r4 + bl FUN_02062DDC + cmp r0, #0 + bne _0234422C +_02344224: + mov r0, #1 + pop {r3, r4, r5, pc} +_0234422C: + ldrsh r0, [r5, #4] + bl FUN_0200E808 + cmp r0, #0xc + bgt _0234425C + bge _02344294 + cmp r0, #1 + bgt _023442C0 + cmp r0, #0 + blt _023442C0 + cmpne r0, #1 + beq _02344278 + b _023442C0 +_0234425C: + cmp r0, #0xe + bgt _023442C0 + cmp r0, #0xd + blt _023442C0 + cmpne r0, #0xe + beq _02344294 + b _023442C0 +_02344278: + ldrh r0, [r5, #2] + cmp r0, #0 + beq _0234428C + cmp r0, #0x64 + blo _023442C8 +_0234428C: + mov r0, #1 + pop {r3, r4, r5, pc} +_02344294: + ldrsh r0, [r5, #2] + bl FUN_0200EB58 + cmp r0, #0 + beq _023442B8 + ldrsh r0, [r5, #2] + mov r1, r4 + bl FUN_02062DDC + cmp r0, #0 + bne _023442C8 +_023442B8: + mov r0, #1 + pop {r3, r4, r5, pc} +_023442C0: + mov r0, #0 + pop {r3, r4, r5, pc} +_023442C8: + mov r0, #0 + pop {r3, r4, r5, pc} + arm_func_end ov03_023441EC + + arm_func_start ov03_023442D0 +ov03_023442D0: @ 0x023442D0 + ldr r2, _023442F8 @ =0x02346BC8 + mov r0, #0 + ldr r1, [r2] + ldr ip, _023442FC @ =FUN_022BD264 + add r1, r1, #0x1000 + str r0, [r1, #0x9d8] + ldr r1, [r2] + add r1, r1, #0x1000 + strb r0, [r1, #0x9dc] + bx ip + .align 2, 0 +_023442F8: .4byte 0x02346BC8 +_023442FC: .4byte FUN_022BD264 + arm_func_end ov03_023442D0 + + arm_func_start ov03_02344300 +ov03_02344300: @ 0x02344300 + push {r3, r4, r5, lr} + ldr r0, _02344420 @ =0x02346BC8 + ldr r5, [r0] + add r0, r5, #0x1000 + ldr r0, [r0, #0x9d8] + cmp r0, #4 + addls pc, pc, r0, lsl #2 + b _02344418 +_02344320: @ jump table + b _02344334 @ case 0 + b _02344350 @ case 1 + b _02344380 @ case 2 + b _023443F4 @ case 3 + b _02344408 @ case 4 +_02344334: + bl FUN_022BD780 + ldr r1, _02344424 @ =0x0000023B + mov r0, #0 + bl FUN_02066468 + add r0, r5, #0x1000 + mov r1, #1 + str r1, [r0, #0x9d8] +_02344350: + bl FUN_02066494 + cmp r0, #0x1f + bne _02344418 + mov r0, #0xe0 + mov r1, #0x88 + mov r2, #1 + bl FUN_02029F88 + add r0, r5, #0x1000 + mov r1, #2 + str r1, [r0, #0x9d8] + bl FUN_02003B94 + b _02344418 +_02344380: + mov r0, #3 + bl FUN_02048F84 + mov r4, r0 + bl FUN_02003BC8 + bl FUN_02029FBC + cmp r4, #0 + bne _023443CC + mov r0, #0x1c + mov r1, #0x23c + bl FUN_02066468 + add r0, r5, #0x1000 + mov r2, #3 + ldr r1, _02344420 @ =0x02346BC8 + str r2, [r0, #0x9d8] + ldr r0, [r1] + mov r1, #1 + add r0, r0, #0x1000 + strb r1, [r0, #0x9dc] + b _02344418 +_023443CC: + cmp r4, #1 + moveq r0, #3 + popeq {r3, r4, r5, pc} + ldr r1, _02344428 @ =0x00000239 + mov r0, #0x1c + bl FUN_02066468 + add r0, r5, #0x1000 + mov r1, #4 + str r1, [r0, #0x9d8] + b _02344418 +_023443F4: + bl FUN_02066494 + cmp r0, #0x1f + bne _02344418 + mov r0, #1 + pop {r3, r4, r5, pc} +_02344408: + bl FUN_02066494 + cmp r0, #0x1f + moveq r0, #2 + popeq {r3, r4, r5, pc} +_02344418: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_02344420: .4byte 0x02346BC8 +_02344424: .4byte 0x0000023B +_02344428: .4byte 0x00000239 + arm_func_end ov03_02344300 + + arm_func_start ov03_0234442C +ov03_0234442C: @ 0x0234442C + push {r3, lr} + mov r0, #4 + mov r1, #8 + bl FUN_02001170 + ldr r2, _02344460 @ =0x02346BD4 + mov r1, #4 + str r0, [r2] + bl FUN_02003250 + ldr r0, _02344460 @ =0x02346BD4 + mov r1, #0 + ldr r0, [r0] + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_02344460: .4byte 0x02346BD4 + arm_func_end ov03_0234442C + + arm_func_start ov03_02344464 +ov03_02344464: @ 0x02344464 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x44 + ldr r0, _023446E8 @ =0x02346BD4 + ldr r4, [r0] + ldr r0, [r4] + cmp r0, #0xb + addls pc, pc, r0, lsl #2 + b _023446DC +_02344484: @ jump table + b _023444B4 @ case 0 + b _023444CC @ case 1 + b _023444E0 @ case 2 + b _023444F8 @ case 3 + b _02344574 @ case 4 + b _02344588 @ case 5 + b _023445A0 @ case 6 + b _023445CC @ case 7 + b _02344634 @ case 8 + b _02344660 @ case 9 + b _02344674 @ case 10 + b _023446A0 @ case 11 +_023444B4: + ldr r1, _023446EC @ =0x000038BD + mov r0, #0x1c + bl FUN_02066468 + mov r0, #1 + str r0, [r4] + b _023446DC +_023444CC: + bl FUN_02066494 + cmp r0, #0x1f + moveq r0, #2 + streq r0, [r4] + b _023446DC +_023444E0: + bl FUN_02046D20 + mov r0, #0x12 + bl FUN_020668B4 + mov r0, #3 + str r0, [r4] + b _023446DC +_023444F8: + bl FUN_02066A44 + cmp r0, #0 + beq _023446DC + bl FUN_020674E8 + mov r6, r0 + cmp r6, #0 + ble _02344568 + add r0, sp, #4 + mov r1, #0x20 + bl FUN_02067524 + mov r7, #0 + add r5, sp, #4 + b _02344544 +_0234452C: + lsl r0, r7, #1 + ldrsh r0, [r5, r0] + lsl r0, r0, #0x18 + asr r0, r0, #0x18 + bl FUN_0205B7C8 + add r7, r7, #1 +_02344544: + cmp r7, r6 + blt _0234452C + bl FUN_02067664 + ldr r1, _023446F0 @ =0x000038BE + mov r0, #0x1c + bl FUN_02066468 + mov r0, #4 + str r0, [r4] + b _023446DC +_02344568: + bl FUN_02067664 + mov r0, #1 + b _023446E0 +_02344574: + bl FUN_02066494 + cmp r0, #0x1f + moveq r0, #5 + streq r0, [r4] + b _023446DC +_02344588: + ldr r1, _023446F4 @ =0x0000023B + mov r0, #0 + bl FUN_02066468 + mov r0, #6 + str r0, [r4] + b _023446DC +_023445A0: + bl FUN_02066494 + cmp r0, #0x1f + bne _023446DC + mov r0, #0xe0 + mov r1, #0x88 + mov r2, #1 + bl FUN_02029F88 + mov r0, #7 + str r0, [r4] + bl FUN_02003B94 + b _023446DC +_023445CC: + mov r0, #3 + bl FUN_02048F84 + mov r4, r0 + bl FUN_02003BC8 + bl FUN_02029FBC + cmp r4, #0 + bne _02344608 + mov r0, #0x1c + mov r1, #0x23c + bl FUN_02066468 + ldr r0, _023446E8 @ =0x02346BD4 + mov r1, #8 + ldr r0, [r0] + str r1, [r0] + b _023446DC +_02344608: + cmp r4, #1 + moveq r0, #2 + beq _023446E0 + ldr r1, _023446F8 @ =0x00000239 + mov r0, #0x1c + bl FUN_02066468 + ldr r0, _023446E8 @ =0x02346BD4 + mov r1, #9 + ldr r0, [r0] + str r1, [r0] + b _023446DC +_02344634: + bl FUN_02066494 + cmp r0, #0x1f + bne _023446DC + mov r0, #0x12 + bl FUN_02067584 + cmp r0, #0 + movne r0, #1 + bne _023446E0 + mov r0, #0xa + str r0, [r4] + b _023446DC +_02344660: + bl FUN_02066494 + cmp r0, #0x1f + bne _023446DC + mov r0, #1 + b _023446E0 +_02344674: + mov r0, #8 + bl FUN_023375C0 + str r0, [sp] + mov r0, #0 + ldr r2, _023446FC @ =0x023467A4 + mov r1, r0 + mov r3, #0x38c0 + bl FUN_020663C8 + mov r0, #0xb + str r0, [r4] + b _023446DC +_023446A0: + bl FUN_02066434 + mov r5, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #8 + bl FUN_023375D0 + cmp r5, #0x1d + moveq r0, #2 + streq r0, [r4] + beq _023446DC + sub r0, r5, #0x1e + cmp r0, #1 + movls r0, #1 + bls _023446E0 +_023446DC: + mov r0, #0 +_023446E0: + add sp, sp, #0x44 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_023446E8: .4byte 0x02346BD4 +_023446EC: .4byte 0x000038BD +_023446F0: .4byte 0x000038BE +_023446F4: .4byte 0x0000023B +_023446F8: .4byte 0x00000239 +_023446FC: .4byte 0x023467A4 + arm_func_end ov03_02344464 + + arm_func_start ov03_02344700 +ov03_02344700: @ 0x02344700 + push {r3, lr} + ldr r0, _02344728 @ =0x02346BD4 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _02344728 @ =0x02346BD4 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_02344728: .4byte 0x02346BD4 + arm_func_end ov03_02344700 + + arm_func_start ov03_0234472C +ov03_0234472C: @ 0x0234472C + push {r3, lr} + mov r0, #0xc + mov r1, #8 + bl FUN_02001170 + ldr r2, _02344788 @ =0x02346BD8 + mov r1, #0xc + str r0, [r2] + bl FUN_02003250 + ldr r1, _02344788 @ =0x02346BD8 + mov r2, #0 + ldr r0, [r1] + sub r3, r2, #2 + str r2, [r0] + ldr r2, [r1] + mov r0, #0xa + strb r3, [r2, #4] + ldr r1, [r1] + strb r3, [r1, #5] + bl FUN_023375C0 + ldr r1, _02344788 @ =0x02346BD8 + ldr r1, [r1] + str r0, [r1, #8] + pop {r3, pc} + .align 2, 0 +_02344788: .4byte 0x02346BD8 + arm_func_end ov03_0234472C + + arm_func_start ov03_0234478C +ov03_0234478C: @ 0x0234478C + push {r3, lr} + ldr r0, _023447B4 @ =0x02346BD8 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _023447B4 @ =0x02346BD8 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_023447B4: .4byte 0x02346BD8 + arm_func_end ov03_0234478C + + arm_func_start ov03_023447B8 +ov03_023447B8: @ 0x023447B8 + push {r3, r4, r5, lr} + sub sp, sp, #0x138 + ldr r0, _02344934 @ =0x02346BD8 + ldr r4, [r0] + ldr r0, [r4] + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _02344928 +_023447D8: @ jump table + b _023447E8 @ case 0 + b _02344838 @ case 1 + b _023448A0 @ case 2 + b _023448F4 @ case 3 +_023447E8: + ldr r1, _02344938 @ =0x00003C4F + mov r0, #0x10 + strh r1, [sp, #0xa8] + str r0, [sp, #0xac] + ldr r0, [r4, #8] + str r0, [sp, #0xa0] + bl FUN_02046D20 + mov r0, #0xa + str r0, [sp] + mov r5, #8 + ldr r0, _0234493C @ =0x02346AAC + ldr r1, _02344940 @ =0x00041833 + ldr r3, _02344944 @ =0x02344954 + add r2, sp, #0xa0 + str r5, [sp, #4] + bl FUN_0202BA20 + strb r0, [r4, #4] + mov r0, #1 + str r0, [r4] + b _02344928 +_02344838: + ldrsb r0, [r4, #4] + bl FUN_0202BCFC + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0xa + bl FUN_023375D0 + ldrsb r0, [r4, #4] + bl FUN_0202BCBC + cmp r0, #0 + bne _02344928 + ldrsb r0, [r4, #4] + bl FUN_0202BD10 + mov r5, r0 + ldrsb r0, [r4, #4] + bl FUN_0202836C + ldrsb r0, [r4, #4] + bl FUN_0202BC44 + mvn r0, #1 + strb r0, [r4, #4] + cmp r5, #0 + movlt r0, #1 + blt _0234492C + str r5, [r4, #8] + mov r0, #2 + str r0, [r4] + b _02344928 +_023448A0: + mov r0, #0x10 + str r0, [sp, #0x14] + ldr r0, [r4, #8] + mov r1, #0xa + add r0, r0, #0xc50 + add r0, r0, #0x3000 + strh r0, [sp, #0x10] + ldr r0, [r4, #8] + mov ip, #1 + str r0, [sp, #8] + str r1, [sp] + ldr r0, _02344948 @ =0x02346A9C + ldr r1, _0234494C @ =0x00009833 + ldr r3, _02344950 @ =ov03_02344970 + add r2, sp, #8 + str ip, [sp, #4] + bl FUN_020305B4 + strb r0, [r4, #5] + mov r0, #3 + str r0, [r4] + b _02344928 +_023448F4: + ldrsb r0, [r4, #5] + bl FUN_020308C4 + cmp r0, #0 + bne _02344928 + ldrsb r0, [r4, #5] + bl FUN_02030A18 + str r0, [r4, #8] + ldrsb r0, [r4, #5] + bl FUN_020308A0 + mvn r0, #1 + strb r0, [r4, #5] + mov r0, #0 + str r0, [r4] +_02344928: + mov r0, #0 +_0234492C: + add sp, sp, #0x138 + pop {r3, r4, r5, pc} + .align 2, 0 +_02344934: .4byte 0x02346BD8 +_02344938: .4byte 0x00003C4F +_0234493C: .4byte 0x02346AAC +_02344940: .4byte 0x00041833 +_02344944: .4byte 0x02344954 +_02344948: .4byte 0x02346A9C +_0234494C: .4byte 0x00009833 +_02344950: .4byte ov03_02344970 + arm_func_end ov03_023447B8 +_02344954: + .byte 0xC5, 0x0E, 0x81, 0xE2, 0x03, 0x0A, 0x80, 0xE2, 0x00, 0x08, 0xA0, 0xE1 + .byte 0x04, 0xC0, 0x9F, 0xE5, 0x20, 0x08, 0xA0, 0xE1, 0x1C, 0xFF, 0x2F, 0xE1, 0xC4, 0x58, 0x02, 0x02 + + arm_func_start ov03_02344970 +ov03_02344970: @ 0x02344970 + push {r3, r4, r5, lr} + mov r4, r0 + bl FUN_02030A18 + mov r5, r0 + add r0, r5, #0xc50 + add r0, r0, #0x3000 + lsl r1, r0, #0x10 + mov r0, r4 + lsr r1, r1, #0x10 + bl FUN_02030A2C + add r0, r5, #0x5a + add r0, r0, #0x3c00 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_020258C4 + mov r3, r0 + mov r0, r4 + mov r1, #4 + mov r2, #0x10 + bl FUN_02026214 + pop {r3, r4, r5, pc} + arm_func_end ov03_02344970 + + arm_func_start ov03_023449C4 +ov03_023449C4: @ 0x023449C4 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + mov r0, #0x14c + mov r1, #8 + bl FUN_02001170 + ldr r1, _02344A50 @ =0x02346BDC + str r0, [r1] + bl FUN_02044094 + bl FUN_020440DC + bl FUN_02043218 + ldr r0, _02344A50 @ =0x02346BDC + mov r1, #0x14c + ldr r0, [r0] + bl FUN_02003250 + mov ip, #0 + ldr r0, _02344A50 @ =0x02346BDC + ldr r2, _02344A54 @ =0x00001004 + ldr r1, [r0] + sub r3, ip, #1 + str r2, [r1] + ldr r1, [r0] + sub r2, ip, #2 + strb ip, [r1, #0xc] + ldr r1, [r0] + str r3, [r1, #0x10] + ldr r1, [r0] + strb r2, [r1, #0x14] + ldr r1, [r0] + str r5, [r1, #4] + ldr r1, [r0] + str r4, [r1, #8] + ldr r0, [r0] + strb ip, [r0, #0x149] + pop {r3, r4, r5, pc} + .align 2, 0 +_02344A50: .4byte 0x02346BDC +_02344A54: .4byte 0x00001004 + arm_func_end ov03_023449C4 + + arm_func_start ov03_02344A58 +ov03_02344A58: @ 0x02344A58 + push {r3, lr} + ldr r0, _02344A8C @ =0x02346BDC + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_020440B8 + ldr r0, _02344A8C @ =0x02346BDC + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _02344A8C @ =0x02346BDC + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_02344A8C: .4byte 0x02346BDC + arm_func_end ov03_02344A58 + + arm_func_start ov03_02344A90 +ov03_02344A90: @ 0x02344A90 + ldr r0, _02344AA0 @ =0x02346BDC + ldr r0, [r0] + ldrb r0, [r0, #0xc] + bx lr + .align 2, 0 +_02344AA0: .4byte 0x02346BDC + arm_func_end ov03_02344A90 + + arm_func_start ov03_02344AA4 +ov03_02344AA4: @ 0x02344AA4 + ldr r0, _02344AB4 @ =0x02346BDC + ldr r0, [r0] + ldrb r0, [r0, #0x149] + bx lr + .align 2, 0 +_02344AB4: .4byte 0x02346BDC + arm_func_end ov03_02344AA4 + + arm_func_start ov03_02344AB8 +ov03_02344AB8: @ 0x02344AB8 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x3b4 + ldr r3, _02345A5C @ =0x02346BDC + ldr r4, [r3] + ldm r4, {r1, r7} + cmp r1, #0x3500 + bgt _02344C48 + bge _02345F68 + ldr r0, _02345A60 @ =0x00003032 + cmp r1, r0 + bgt _02344BA0 + bge _023457F4 + ldr r3, _02345A64 @ =0x00002010 + cmp r1, r3 + bgt _02344B68 + bge _023456AC + sub r0, r3, #0xe + cmp r1, r0 + bgt _02344B30 + bge _0234557C + ldr r2, _02345A68 @ =0x00001005 + cmp r1, r2 + bgt _02346640 + sub r0, r2, #1 + cmp r1, r0 + blt _02346640 + beq _02344D40 + cmp r1, r2 + beq _02345250 + b _02346640 +_02344B30: + sub r0, r3, #0xb + cmp r1, r0 + bgt _02346640 + sub r0, r3, #0xd + cmp r1, r0 + blt _02346640 + beq _023455F0 + sub r0, r3, #0xc + cmp r1, r0 + beq _02345618 + sub r0, r3, #0xb + cmp r1, r0 + beq _02345690 + b _02346640 +_02344B68: + sub r2, r0, #0x31 + cmp r1, r2 + bgt _02344B90 + sub r0, r0, #0x31 + cmp r1, r0 + bge _02345758 + add r0, r3, #1 + cmp r1, r0 + beq _023456C8 + b _02346640 +_02344B90: + sub r0, r0, #1 + cmp r1, r0 + beq _023457C8 + b _02346640 +_02344BA0: + add r2, r0, #0x22 + cmp r1, r2 + bgt _02344C08 + bge _02345D00 + add r2, r0, #4 + cmp r1, r2 + bgt _02344BF8 + add r2, r0, #2 + cmp r1, r2 + blt _02344BE8 + beq _02345898 + add r2, r0, #3 + cmp r1, r2 + beq _023459F8 + add r0, r0, #4 + cmp r1, r0 + beq _02345C64 + b _02346640 +_02344BE8: + add r0, r0, #1 + cmp r1, r0 + beq _02345818 + b _02346640 +_02344BF8: + add r0, r0, #0x21 + cmp r1, r0 + beq _02345C88 + b _02346640 +_02344C08: + add r2, r0, #0x34 + cmp r1, r2 + bgt _02344C28 + bge _02345D30 + add r2, r0, #0x23 + cmp r1, r2 + beq _02345D1C + b _02346640 +_02344C28: + cmp r1, #0x3100 + bgt _02344C38 + beq _02345B80 + b _02346640 +_02344C38: + add r0, r0, #0xcf + cmp r1, r0 + beq _02345C10 + b _02346640 +_02344C48: + ldr r2, _02345A6C @ =0x00003536 + cmp r1, r2 + bgt _02344CC8 + bge _02346588 + sub r0, r2, #0x24 + cmp r1, r0 + bgt _02344C98 + bge _02346628 + sub r0, r2, #0x32 + cmp r1, r0 + bgt _02344C88 + bge _02346010 + sub r0, r2, #0x35 + cmp r1, r0 + beq _02345FE4 + b _02346640 +_02344C88: + sub r0, r2, #0x25 + cmp r1, r0 + beq _023465AC + b _02346640 +_02344C98: + sub r0, r2, #2 + cmp r1, r0 + bgt _02344CB8 + bge _02346098 + sub r0, r2, #3 + cmp r1, r0 + beq _02346034 + b _02346640 +_02344CB8: + sub r0, r2, #1 + cmp r1, r0 + beq _023461B0 + b _02346640 +_02344CC8: + ldr r2, _02345A70 @ =0x00003701 + cmp r1, r2 + bgt _02344D00 + bge _023463FC + sub r0, r2, #0x100 + cmp r1, r0 + bgt _02344CF4 + bge _02346374 + cmp r1, #0x3600 + beq _02346324 + b _02346640 +_02344CF4: + cmp r1, #0x3700 + beq _023463AC + b _02346640 +_02344D00: + add r0, r2, #0x10 + cmp r1, r0 + bgt _02344D20 + bge _023464C8 + add r0, r2, #0xf + cmp r1, r0 + beq _0234647C + b _02346640 +_02344D20: + cmp r1, #0x3800 + bgt _02344D30 + beq _02346524 + b _02346640 +_02344D30: + add r0, r2, #0x100 + cmp r1, r0 + beq _02346560 + b _02346640 +_02344D40: + bl ov03_0233CAB8 + cmp r0, #0 + beq _02344D60 + cmp r0, #2 + beq _02344E08 + cmp r0, #4 + beq _02345080 + b _02345240 +_02344D60: + bl ov03_0233CAD8 + cmp r0, #0 + beq _02344D88 + cmp r0, #1 + beq _02344D80 + cmp r0, #2 + beq _02344DC8 + b _02345240 +_02344D80: + mov r0, #1 + b _02346644 +_02344D88: + mov r0, #0 + bl FUN_023375C0 + cmp r0, #3 + blt _02344DA4 + mov r0, #0 + mov r1, r0 + bl FUN_023375D0 +_02344DA4: + mov r0, #0 + bl FUN_023375C0 + str r0, [sp] + mov r0, #0 + ldr r2, _02345A74 @ =0x02346864 + ldr r3, _02345A78 @ =0x0000385B + mov r1, r0 + bl FUN_020663C8 + b _02345240 +_02344DC8: + mov r0, #0 + bl FUN_023375C0 + cmp r0, #3 + blt _02344DE4 + mov r0, #0 + mov r1, r0 + bl FUN_023375D0 +_02344DE4: + mov r0, #0 + bl FUN_023375C0 + str r0, [sp] + mov r0, #0 + ldr r2, _02345A74 @ =0x02346864 + ldr r3, _02345A7C @ =0x0000385C + mov r1, r0 + bl FUN_020663C8 + b _02345240 +_02344E08: + mov r4, #0 + bl ov03_0233CAD8 + cmp r0, #0 + beq _02344EF0 + cmp r0, #1 + beq _02344E2C + cmp r0, #2 + beq _02344EF0 + b _02345038 +_02344E2C: + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345A80 @ =0x02346804 + ldr r0, [r0] + mov r2, #0x20 + add r0, r0, #0xb8 + bl FUN_020032D4 + ldrsh r0, [r7, #0xa2] + cmp r0, #0 + beq _02344E68 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345A84 @ =0x00003846 + ldr r2, [r0] + mov r0, #0x11 + strh r1, [r2, #0xb8] + str r0, [r2, #0xbc] +_02344E68: + bl ov03_023466A4 + ldr r1, _02345A5C @ =0x02346BDC + ldrb r0, [r7, #4] + ldr r4, [r1] + bl FUN_02051340 + cmp r0, #0 + beq _02344EC4 + ldr r0, _02345A5C @ =0x02346BDC + ldr r0, [r0] + ldr r0, [r0, #4] + ldrb r0, [r0, #0xae] + bl FUN_0205BD40 + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + and r0, r0, #0xff + bl FUN_0204316C + bl FUN_02043320 + cmp r0, #0 + beq _02344ECC + ldrsh r0, [r7, #0xa2] + cmp r0, #0 + bne _02344ECC +_02344EC4: + mov r0, #3 + strb r0, [r4, #0xb0] +_02344ECC: + mov r0, #0 + ldr r4, _02345A88 @ =0x00003872 + bl FUN_023375C0 + cmp r0, #3 + blt _02345038 + mov r0, #0 + mov r1, r0 + bl FUN_023375D0 + b _02345038 +_02344EF0: + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345A8C @ =0x02346A04 + ldr r0, [r0] + mov r2, #0x30 + add r0, r0, #0xb8 + bl FUN_020032D4 + ldrsh r0, [r7, #0xa2] + cmp r0, #0 + beq _02344F2C + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345A84 @ =0x00003846 + ldr r2, [r0] + mov r0, #0x11 + strh r1, [r2, #0xc0] + str r0, [r2, #0xc4] +_02344F2C: + ldr r0, _02345A5C @ =0x02346BDC + ldr r2, [r0] + ldrb r0, [r2, #0xc] + cmp r0, #0 + ldrne r1, _02345A90 @ =0x00003848 + movne r0, #0x13 + strhne r1, [r2, #0xc8] + strne r0, [r2, #0xcc] + bl ov03_023466A4 + ldr r1, _02345A5C @ =0x02346BDC + ldrb r0, [r7, #4] + ldr r4, [r1] + bl FUN_02051340 + cmp r0, #0 + beq _02344FA8 + ldr r0, _02345A5C @ =0x02346BDC + ldr r0, [r0] + ldr r0, [r0, #4] + ldrb r0, [r0, #0xae] + bl FUN_0205BD40 + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + and r0, r0, #0xff + bl FUN_0204316C + bl FUN_02043320 + cmp r0, #0 + beq _02344FB0 + ldrsh r0, [r7, #0xa2] + cmp r0, #0 + bne _02344FB0 +_02344FA8: + mov r0, #3 + strb r0, [r4, #0xb1] +_02344FB0: + ldrb r0, [r7, #4] + bl FUN_02051398 + cmp r0, #0 + beq _02344FF4 + ldr r0, _02345A5C @ =0x02346BDC + ldr r0, [r0] + ldr r0, [r0, #4] + ldrb r0, [r0, #0xae] + bl FUN_0205BD40 + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + and r0, r0, #0xff + bl FUN_0203C774 + bl FUN_0203AD68 + cmp r0, #0 + beq _0234500C +_02344FF4: + ldr r0, _02345A5C @ =0x02346BDC + ldr r0, [r0] + ldrb r0, [r0, #0xc] + cmp r0, #0 + moveq r0, #3 + strbeq r0, [r4, #0xb2] +_0234500C: + bl ov03_0233CAD8 + cmp r0, #0 + ldreq r4, _02345A94 @ =0x0000386E + mov r0, #0 + ldrne r4, _02345A98 @ =0x00003871 + bl FUN_023375C0 + cmp r0, #5 + blt _02345038 + mov r0, #0 + mov r1, r0 + bl FUN_023375D0 +_02345038: + ldr r1, _02345A5C @ =0x02346BDC + mov r0, #0 + ldr r5, [r1] + bl FUN_023375C0 + add r0, r5, r0, lsl #3 + ldr r1, [r0, #0xbc] + ldr r0, _02345A5C @ =0x02346BDC + str r1, [r5, #0x18] + ldr r3, [r0] + mov r0, #0 + add r1, r3, #0xb8 + str r1, [sp] + ldr r2, _02345A9C @ =0x00000233 + mov r1, r0 + add r3, r3, #0x18 + str r4, [sp, #4] + bl FUN_020663DC + b _02345240 +_02345080: + mov r4, #0 + bl ov03_0233CAD8 + cmp r0, #0 + beq _0234514C + cmp r0, #1 + beq _023450A4 + cmp r0, #2 + beq _0234514C + b _023451FC +_023450A4: + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345AA0 @ =0x02346884 + ldr r0, [r0] + mov r2, #0x20 + add r0, r0, #0xb8 + bl FUN_020032D4 + ldrsh r0, [r7, #0xa2] + cmp r0, #0 + beq _023450E0 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345A84 @ =0x00003846 + ldr r2, [r0] + mov r0, #0x11 + strh r1, [r2, #0xb8] + str r0, [r2, #0xbc] +_023450E0: + bl ov03_023466A4 + ldr r0, _02345A5C @ =0x02346BDC + ldr r4, [r0] + ldr r0, [r4, #4] + ldrb r0, [r0, #0xae] + bl FUN_0205BD40 + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + and r0, r0, #0xff + bl FUN_0204316C + bl FUN_02043320 + cmp r0, #0 + beq _02345128 + ldrsh r0, [r7, #0xa2] + cmp r0, #0 + moveq r0, #3 + strbeq r0, [r4, #0xb0] +_02345128: + mov r0, #0 + ldr r4, _02345AA4 @ =0x0000389A + bl FUN_023375C0 + cmp r0, #3 + blt _023451FC + mov r0, #0 + mov r1, r0 + bl FUN_023375D0 + b _023451FC +_0234514C: + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345AA8 @ =0x0234697C + ldr r0, [r0] + mov r2, #0x28 + add r0, r0, #0xb8 + bl FUN_020032D4 + ldrsh r0, [r7, #0xa2] + cmp r0, #0 + beq _02345188 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345A84 @ =0x00003846 + ldr r2, [r0] + mov r0, #0x11 + strh r1, [r2, #0xc0] + str r0, [r2, #0xc4] +_02345188: + bl ov03_023466A4 + ldr r0, _02345A5C @ =0x02346BDC + ldr r4, [r0] + ldr r0, [r4, #4] + ldrb r0, [r0, #0xae] + bl FUN_0205BD40 + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + and r0, r0, #0xff + bl FUN_0204316C + bl FUN_02043320 + cmp r0, #0 + beq _023451D0 + ldrsh r0, [r7, #0xa2] + cmp r0, #0 + moveq r0, #3 + strbeq r0, [r4, #0xb1] +_023451D0: + bl ov03_0233CAD8 + cmp r0, #0 + ldreq r4, _02345AAC @ =0x00003898 + mov r0, #0 + ldrne r4, _02345AB0 @ =0x00003899 + bl FUN_023375C0 + cmp r0, #4 + blt _023451FC + mov r0, #0 + mov r1, r0 + bl FUN_023375D0 +_023451FC: + ldr r1, _02345A5C @ =0x02346BDC + mov r0, #0 + ldr r5, [r1] + bl FUN_023375C0 + add r0, r5, r0, lsl #3 + ldr r1, [r0, #0xbc] + ldr r0, _02345A5C @ =0x02346BDC + str r1, [r5, #0x18] + ldr r3, [r0] + mov r0, #0 + add r1, r3, #0xb8 + str r1, [sp] + ldr r2, _02345A9C @ =0x00000233 + mov r1, r0 + add r3, r3, #0x18 + str r4, [sp, #4] + bl FUN_020663DC +_02345240: + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345A68 @ =0x00001005 + ldr r0, [r0] + str r1, [r0] +_02345250: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0 + bl FUN_023375D0 + cmp r4, #0xf + bne _023452CC + ldrb r0, [r7, #0xad] + cmp r0, #0 + bne _02345298 + bl FUN_02046D20 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345A64 @ =0x00002010 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02345298: + mov r0, #5 + bl FUN_023375C0 + str r0, [sp] + mov r0, #0 + ldr r2, _02345AB4 @ =0x02346824 + ldr r3, _02345AB8 @ =0x0000386D + mov r1, r0 + bl FUN_020663C8 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345ABC @ =0x00002002 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_023452CC: + cmp r4, #0x10 + bne _0234533C + ldr r0, _02345A5C @ =0x02346BDC + ldr r0, [r0] + ldrb r0, [r0, #0xc] + cmp r0, #0 + beq _0234531C + mov r0, #6 + bl FUN_023375C0 + str r0, [sp] + mov r0, #0 + ldr r2, _02345AC0 @ =0x023467BC + ldr r3, _02345AC4 @ =0x000038AB + mov r1, r0 + bl FUN_020663C8 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345AC8 @ =0x00003001 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_0234531C: + ldr r1, _02345ACC @ =0x000038AD + mov r0, #0x1c + bl FUN_02066468 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345A60 @ =0x00003032 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_0234533C: + cmp r4, #0x11 + bne _023453E4 + mov r0, #0x100 + mov r1, #0xf + bl FUN_02001170 + mov r4, r0 + add r0, sp, #0x2cc + bl FUN_02023690 + mov r5, #0 + ldr r2, _02345AD0 @ =0x02346ABC + mov r0, r4 + add r1, r7, #0x9e + mov r3, #1 + str r5, [sp] + bl FUN_0200D310 + add r0, sp, #0x31c + mov r1, #0x98 + str r4, [sp, #0x304] + bl FUN_02003250 + mov r0, #1 + bl FUN_023375C0 + ldr r2, _02345AD4 @ =0x023467C0 + ldr r1, _02345AC0 @ =0x023467BC + ldr r2, [r2, r0, lsl #3] + ldr r0, _02345AD8 @ =0x000038B1 + str r2, [sp, #0x31c] + str r1, [sp] + str r0, [sp, #4] + add r1, sp, #0x2cc + mov r0, r5 + str r1, [sp, #8] + mov r1, r0 + mov r2, #0x33 + add r3, sp, #0x31c + bl FUN_02066408 + mov r0, r4 + bl FUN_02001188 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345ADC @ =0x00003053 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_023453E4: + cmp r4, #0x12 + bne _0234544C + ldrsh r0, [r7, #0xa2] + cmp r0, #0 + beq _0234542C + mov r0, #7 + bl FUN_023375C0 + str r0, [sp] + mov r0, #0 + ldr r2, _02345AC0 @ =0x023467BC + ldr r3, _02345AE0 @ =0x000038AC + mov r1, r0 + bl FUN_020663C8 + ldr r0, _02345A5C @ =0x02346BDC + mov r1, #0x3500 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_0234542C: + ldr r1, _02345AE4 @ =0x000038AE + mov r0, #0x1c + bl FUN_02066468 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345AE8 @ =0x00003504 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_0234544C: + cmp r4, #0x13 + bne _023454D0 + add r0, sp, #0x27c + bl FUN_02023690 + ldr r1, _02345A5C @ =0x02346BDC + add r0, sp, #0x1e4 + ldr r2, [r1] + mov r1, #0x98 + ldr r2, [r2, #8] + ldrsh r2, [r2, #8] + str r2, [sp, #0x27c] + bl FUN_02003250 + mov r0, #2 + bl FUN_023375C0 + ldr r1, _02345AD4 @ =0x023467C0 + ldr r2, _02345AC0 @ =0x023467BC + ldr r0, [r1, r0, lsl #3] + ldr r1, _02345AEC @ =0x000038B3 + str r0, [sp, #0x1e4] + str r2, [sp] + mov r0, #0 + str r1, [sp, #4] + add r2, sp, #0x27c + str r2, [sp, #8] + mov r1, r0 + mov r2, #0x33 + add r3, sp, #0x1e4 + bl FUN_02066408 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345AF0 @ =0x00003511 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_023454D0: + cmp r4, #9 + moveq r0, #1 + beq _02346644 + cmp r4, #7 + bne _02345524 + ldrsh r0, [r7, #0xa2] + cmp r0, #0 + beq _0234551C + ldr r0, _02345A5C @ =0x02346BDC + ldr r0, [r0] + ldr r0, [r0, #0x10] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_02010154 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345AF4 @ =0x00003055 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_0234551C: + mov r0, #1 + b _02346644 +_02345524: + cmp r4, #0xb + bne _0234556C + ldrsh r0, [r7, #0xa2] + cmp r0, #0 + beq _02345564 + ldr r0, _02345A5C @ =0x02346BDC + ldr r0, [r0] + ldr r0, [r0, #0x10] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_02010154 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345AF4 @ =0x00003055 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02345564: + mov r0, #1 + b _02346644 +_0234556C: + cmp r4, #0x1f + bne _02346640 + mvn r0, #0 + b _02346644 +_0234557C: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #5 + bl FUN_023375D0 + cmp r4, #0x1d + bne _023455B8 + bl FUN_02046D20 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345AF8 @ =0x00002003 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_023455B8: + cmp r4, #0x1e + bne _023455D8 + bl FUN_02046D20 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345A64 @ =0x00002010 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_023455D8: + cmp r4, #0x1f + ldreq r0, _02345A5C @ =0x02346BDC + ldreq r1, _02345AFC @ =0x00001004 + ldreq r0, [r0] + streq r1, [r0] + b _02346640 +_023455F0: + mov r2, #0 + mov r3, r2 + add r1, r4, #0xe8 + mov r0, #7 + bl FUN_020367F0 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345B00 @ =0x00002004 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02345618: + bl FUN_02036CD4 + cmp r0, #3 + bne _02345678 + bl FUN_0203755C + mov r4, r0 + mov r1, r4 + add r0, r7, #0x32 + mov r2, #0x12 + bl FUN_02025404 + add r0, r7, #0x56 + add r1, r4, #0x12 + mov r2, #0x24 + bl FUN_02025404 + ldr r0, _02345A5C @ =0x02346BDC + mov r1, r4 + ldr r0, [r0] + mov r2, #0x38 + add r0, r0, #0xe8 + bl FUN_020032D4 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345B04 @ =0x00002005 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02345678: + cmp r0, #2 + ldreq r0, _02345A5C @ =0x02346BDC + ldreq r1, _02345B04 @ =0x00002005 + ldreq r0, [r0] + streq r1, [r0] + b _02346640 +_02345690: + bl FUN_02037468 + cmp r0, #1 + ldreq r0, _02345A5C @ =0x02346BDC + ldreq r1, _02345AFC @ =0x00001004 + ldreq r0, [r0] + streq r1, [r0] + b _02346640 +_023456AC: + mov r0, #0 + bl FUN_02333E60 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345B08 @ =0x00002011 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_023456C8: + bl FUN_023346BC + cmp r0, #2 + bne _02345738 + add r0, sp, #0xe4 + bl FUN_023352EC + add r1, sp, #0xe4 + add r0, r7, #0x32 + mov r2, #0x12 + mov r3, #1 + bl FUN_0202561C + add r0, sp, #0xe4 + bl FUN_02335308 + add r1, sp, #0xe4 + add r0, r7, #0x56 + mov r2, #0x24 + mov r3, #1 + bl FUN_0202561C + bl FUN_0233462C + ldr r0, _02345A5C @ =0x02346BDC + mov r1, #0x38 + ldr r0, [r0] + add r0, r0, #0xe8 + bl FUN_02003250 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345AFC @ =0x00001004 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02345738: + cmp r0, #1 + bne _02346640 + bl FUN_0233462C + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345AFC @ =0x00001004 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02345758: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #6 + bl FUN_023375D0 + cmp r4, #0x1d + bne _023457AC + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345B0C @ =0x000038B4 + ldr r2, [r0] + mov r3, #0 + mov r0, #0x1c + strb r3, [r2, #0xc] + bl FUN_02066468 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345B10 @ =0x00003031 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_023457AC: + sub r0, r4, #0x1e + cmp r0, #1 + ldrls r0, _02345A5C @ =0x02346BDC + ldrls r1, _02345AFC @ =0x00001004 + ldrls r0, [r0] + strls r1, [r0] + b _02346640 +_023457C8: + bl FUN_02066494 + cmp r0, #0x1f + bne _02346640 + ldr r1, _02345ACC @ =0x000038AD + mov r0, #0x1c + bl FUN_02066468 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345A60 @ =0x00003032 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_023457F4: + bl FUN_02066494 + cmp r0, #0x1f + bne _02346640 + bl FUN_02046D20 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345B14 @ =0x00003033 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02345818: + bl FUN_020433E0 + cmp r0, #0 + bne _02345874 + ldr r0, _02345B18 @ =0x0233C1B4 + ldrsh r0, [r0] + bl FUN_0204322C + ldr r0, _02345A5C @ =0x02346BDC + ldr r0, [r0] + ldr r0, [r0, #4] + ldrb r0, [r0, #0xae] + bl FUN_0205BD40 + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + and r0, r0, #0xff + bl FUN_0204316C + mov r1, #0 + mov r2, #8 + bl FUN_02042CF0 + ldr r1, _02345A5C @ =0x02346BDC + ldr r1, [r1] + strb r0, [r1, #0x14] + b _02345878 +_02345874: + bl FUN_020433C0 +_02345878: + ldr r0, _02345A5C @ =0x02346BDC + mov r3, #0 + ldr r2, [r0] + ldr r1, _02345B1C @ =0x00003034 + strb r3, [r2, #0x148] + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02345898: + bl FUN_02043468 + mov r4, r0 + bl FUN_02043400 + cmp r0, #0 + bne _0234598C + mvn r0, #0 + cmp r4, r0 + bne _023458DC + bl FUN_0204317C + ldr r0, _02345A5C @ =0x02346BDC + mvn r3, #1 + ldr r2, [r0] + ldr r1, _02345AFC @ =0x00001004 + strb r3, [r2, #0x14] + ldr r0, [r0] + str r1, [r0] + b _02346640 +_023458DC: + mov r0, r4 + bl FUN_02043254 + ldr r1, _02345A5C @ =0x02346BDC + ldr r2, _02345B18 @ =0x0233C1B4 + ldr r1, [r1] + strh r0, [r2] + str r4, [r1, #0x10] + bl ov03_023466A4 + ldr r1, _02345A5C @ =0x02346BDC + lsl r0, r4, #0x10 + ldr r5, [r1] + asr r0, r0, #0x10 + bl FUN_02010044 + ldr r1, [r5, #4] + mov r4, r0 + ldrb r0, [r1, #0xae] + bl FUN_0205BD5C + mov r1, r0 + mov r0, r4 + bl FUN_02062DDC + cmp r0, #0 + moveq r0, #3 + strbeq r0, [r5, #0xb0] + mov r0, #3 + bl FUN_023375C0 + ldr r1, _02345B20 @ =0x023468E8 + ldr r2, _02345A5C @ =0x02346BDC + ldr r3, [r1, r0, lsl #3] + ldr r1, [r2] + ldr r0, _02345B24 @ =0x023468E4 + str r3, [r1, #0x18] + str r0, [sp] + mov r1, #0 + str r1, [sp, #4] + ldr r3, [r2] + ldr r0, _02345B28 @ =0x02346AD8 + ldr r2, _02345A9C @ =0x00000233 + add r3, r3, #0x18 + bl FUN_020663DC + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345B2C @ =0x00003035 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_0234598C: + bl FUN_02043434 + cmp r0, #0 + beq _02346640 + add r1, sp, #0xe + mov r0, #0 + bl FUN_0200625C + ldrh r0, [sp, #0xe] + tst r0, #8 + beq _02346640 + mov r0, #0 + bl FUN_02017CCC + mov r0, r4 + bl FUN_02043254 + ldr r1, _02345A5C @ =0x02346BDC + ldr r2, _02345B18 @ =0x0233C1B4 + ldr r1, [r1] + strh r0, [r2] + str r4, [r1, #0x10] + bl FUN_0204317C + ldr r0, _02345A5C @ =0x02346BDC + mvn r3, #1 + ldr r2, [r0] + mov r1, #0x3100 + strb r3, [r2, #0x14] + ldr r0, [r0] + str r1, [r0] + b _02346640 +_023459F8: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #3 + bl FUN_023375D0 + cmp r4, #0x10 + bne _02345B30 + ldr r0, _02345A5C @ =0x02346BDC + add r1, r7, #0x9e + ldr r0, [r0] + ldr r0, [r0, #0x10] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_0200FFF4 + bl FUN_0204317C + ldr r0, _02345A5C @ =0x02346BDC + mvn r3, #1 + ldr r2, [r0] + ldr r1, _02345AFC @ =0x00001004 + strb r3, [r2, #0x14] + ldr r0, [r0] + str r1, [r0] + b _02346640 + .align 2, 0 +_02345A5C: .4byte 0x02346BDC +_02345A60: .4byte 0x00003032 +_02345A64: .4byte 0x00002010 +_02345A68: .4byte 0x00001005 +_02345A6C: .4byte 0x00003536 +_02345A70: .4byte 0x00003701 +_02345A74: .4byte 0x02346864 +_02345A78: .4byte 0x0000385B +_02345A7C: .4byte 0x0000385C +_02345A80: .4byte 0x02346804 +_02345A84: .4byte 0x00003846 +_02345A88: .4byte 0x00003872 +_02345A8C: .4byte 0x02346A04 +_02345A90: .4byte 0x00003848 +_02345A94: .4byte 0x0000386E +_02345A98: .4byte 0x00003871 +_02345A9C: .4byte 0x00000233 +_02345AA0: .4byte 0x02346884 +_02345AA4: .4byte 0x0000389A +_02345AA8: .4byte 0x0234697C +_02345AAC: .4byte 0x00003898 +_02345AB0: .4byte 0x00003899 +_02345AB4: .4byte 0x02346824 +_02345AB8: .4byte 0x0000386D +_02345ABC: .4byte 0x00002002 +_02345AC0: .4byte 0x023467BC +_02345AC4: .4byte 0x000038AB +_02345AC8: .4byte 0x00003001 +_02345ACC: .4byte 0x000038AD +_02345AD0: .4byte 0x02346ABC +_02345AD4: .4byte 0x023467C0 +_02345AD8: .4byte 0x000038B1 +_02345ADC: .4byte 0x00003053 +_02345AE0: .4byte 0x000038AC +_02345AE4: .4byte 0x000038AE +_02345AE8: .4byte 0x00003504 +_02345AEC: .4byte 0x000038B3 +_02345AF0: .4byte 0x00003511 +_02345AF4: .4byte 0x00003055 +_02345AF8: .4byte 0x00002003 +_02345AFC: .4byte 0x00001004 +_02345B00: .4byte 0x00002004 +_02345B04: .4byte 0x00002005 +_02345B08: .4byte 0x00002011 +_02345B0C: .4byte 0x000038B4 +_02345B10: .4byte 0x00003031 +_02345B14: .4byte 0x00003033 +_02345B18: .4byte 0x0233C1B4 +_02345B1C: .4byte 0x00003034 +_02345B20: .4byte 0x023468E8 +_02345B24: .4byte 0x023468E4 +_02345B28: .4byte 0x02346AD8 +_02345B2C: .4byte 0x00003035 +_02345B30: + cmp r4, #4 + bne _02345B5C + bl FUN_0204317C + ldr r0, _02345A5C @ =0x02346BDC + mvn r3, #1 + ldr r2, [r0] + mov r1, #0x3100 + strb r3, [r2, #0x14] + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02345B5C: + sub r0, r4, #0x1e + cmp r0, #1 + bhi _02346640 + bl FUN_02046D20 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345B14 @ =0x00003033 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02345B80: + ldrsb r1, [r4, #0x14] + mvn r0, #1 + cmp r1, r0 + bne _02345BFC + ldr r0, [r4, #0x10] + add r1, sp, #0x18 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_0200FFAC + add r0, sp, #0x94 + bl FUN_02023690 + ldrsh r2, [sp, #0x18] + ldrh r1, [sp, #0x1a] + add r4, sp, #0x94 + add r0, r2, #0xd1 + add r0, r0, #0x2900 + lsl r0, r0, #0x10 + str r2, [sp, #0xa4] + str r1, [sp, #0xb8] + str r4, [sp] + lsr r0, r0, #0x10 + str r0, [sp, #4] + ldr r0, _0234664C @ =0x02346AC8 + ldr r1, _02346650 @ =0x00001013 + ldr r3, _02346654 @ =0x000008E4 + mov r2, #0 + str r4, [sp, #8] + bl FUN_0202E3CC + ldr r1, _02345A5C @ =0x02346BDC + ldr r1, [r1] + strb r0, [r1, #0x14] +_02345BFC: + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02346658 @ =0x00003101 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02345C10: + ldrsb r0, [r4, #0x14] + bl FUN_0202E6E4 + cmp r0, #0 + bne _02346640 + ldr r0, _02345A5C @ =0x02346BDC + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #0x14] + cmp r0, r1 + beq _02345C4C + bl FUN_0202E6C8 + ldr r0, _02345A5C @ =0x02346BDC + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x14] +_02345C4C: + bl FUN_02046D20 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345B14 @ =0x00003033 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02345C64: + bl FUN_02066494 + cmp r0, #0x1f + bne _02346640 + bl FUN_02046D20 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345B14 @ =0x00003033 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02345C88: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #1 + bl FUN_023375D0 + cmp r4, #0x1d + bne _02345CE4 + add r0, r7, #0x9e + bl FUN_0200D81C + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _0234665C @ =0x000038B2 + ldr r2, [r0] + mvn r3, #0 + mov r0, #0x1c + str r3, [r2, #0x10] + bl FUN_02066468 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02346660 @ =0x00003054 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02345CE4: + sub r0, r4, #0x1e + cmp r0, #1 + ldrls r0, _02345A5C @ =0x02346BDC + ldrls r1, _02345AFC @ =0x00001004 + ldrls r0, [r0] + strls r1, [r0] + b _02346640 +_02345D00: + bl FUN_02066494 + cmp r0, #0x1f + ldreq r0, _02345A5C @ =0x02346BDC + ldreq r1, _02345AFC @ =0x00001004 + ldreq r0, [r0] + streq r1, [r0] + b _02346640 +_02345D1C: + mov r1, #0 + str r1, [r4, #0x144] + ldr r1, [r3] + add r0, r0, #0x34 + str r0, [r1] +_02345D30: + ldr r0, _02345A5C @ =0x02346BDC + ldr r4, [r0] + ldr r0, [r4, #0x144] + cmp r0, #4 + addls pc, pc, r0, lsl #2 + b _02345E28 +_02345D48: @ jump table + b _02345D5C @ case 0 + b _02345D80 @ case 1 + b _02345DAC @ case 2 + b _02345E04 @ case 3 + b _02345E18 @ case 4 +_02345D5C: + bl ov03_0233CAD8 + cmp r0, #2 + bne _02345D6C + bl FUN_022BD780 +_02345D6C: + ldr r1, _02346664 @ =0x0000023B + mov r0, #0 + bl FUN_02066468 + mov r0, #1 + str r0, [r4, #0x144] +_02345D80: + bl FUN_02066494 + cmp r0, #0x1f + bne _02345E28 + mov r0, #0xe0 + mov r1, #0x88 + mov r2, #1 + bl FUN_02029F88 + mov r0, #2 + str r0, [r4, #0x144] + bl FUN_02003B94 + b _02345E28 +_02345DAC: + mov r0, #3 + bl FUN_02048F84 + mov r5, r0 + bl FUN_02003BC8 + bl FUN_02029FBC + cmp r5, #0 + bne _02345DE0 + mov r0, #0x1c + mov r1, #0x23c + bl FUN_02066468 + mov r0, #3 + str r0, [r4, #0x144] + b _02345E28 +_02345DE0: + cmp r5, #1 + moveq r0, #3 + beq _02345E2C + ldr r1, _02346668 @ =0x00000239 + mov r0, #0x1c + bl FUN_02066468 + mov r0, #4 + str r0, [r4, #0x144] + b _02345E28 +_02345E04: + bl FUN_02066494 + cmp r0, #0x1f + bne _02345E28 + mov r0, #1 + b _02345E2C +_02345E18: + bl FUN_02066494 + cmp r0, #0x1f + moveq r0, #2 + beq _02345E2C +_02345E28: + mov r0, #0 +_02345E2C: + cmp r0, #1 + bne _02345F00 + ldrsh r0, [r7, #0xa2] + cmp r0, #0xb4 + bne _02345EF8 + ldr r1, _02345A5C @ =0x02346BDC + add r0, sp, #0x10 + ldr r2, [r1] + ldr r1, _0234666C @ =0x02346AF8 + ldr r3, [r2, #4] + ldr r2, _02346670 @ =0x0000030F + ldrb r8, [r3, #0xae] + bl FUN_02008C3C + mov r5, #0 + mov fp, r5 + mov r4, #1 + mov r6, #0x400 +_02345E70: + ldr r1, [sp, #0x10] + mov r0, r6 + add sl, r1, #2 + ldrsh sb, [r1] + bl FUN_02002274 + b _02345E9C +_02345E88: + ldrsh r1, [sl] + cmp r0, r1 + blt _02345EA4 + add sl, sl, #4 + sub sb, sb, #1 +_02345E9C: + cmp sb, #1 + bgt _02345E88 +_02345EA4: + ldrsh r1, [sl, #2] + mov r2, r5 + add r0, r7, #0x9e + bl FUN_0200CF58 + mov r0, r8 + bl FUN_0205BD40 + cmp r0, #0 + moveq r0, r4 + movne r0, fp + tst r0, #0xff + bne _02345EE0 + ldrsh r0, [r7, #0xa2] + bl FUN_0200EB30 + cmp r0, #0 + beq _02345E70 +_02345EE0: + add r0, sp, #0x10 + bl FUN_02008BD4 + ldr r0, _02345A5C @ =0x02346BDC + mov r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x149] +_02345EF8: + mov r0, #1 + b _02346644 +_02345F00: + cmp r0, #3 + bne _02345F34 + add r0, r7, #0x9e + bl FUN_020103AC + mov r1, #0 + strh r1, [r7, #0xa2] + ldr r0, _02345A5C @ =0x02346BDC + strh r1, [r7, #0xa0] + ldr r0, [r0] + sub r1, r1, #1 + str r1, [r0, #0x10] + mov r0, #3 + b _02346644 +_02345F34: + cmp r0, #2 + bne _02346640 + add r0, r7, #0x9e + bl FUN_020103AC + mov r1, #0 + strh r1, [r7, #0xa2] + ldr r0, _02345A5C @ =0x02346BDC + strh r1, [r7, #0xa0] + ldr r0, [r0] + sub r1, r1, #1 + str r1, [r0, #0x10] + mov r0, #2 + b _02346644 +_02345F68: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #7 + bl FUN_023375D0 + cmp r4, #0x1d + bne _02345FC8 + mov r1, #0 + strh r1, [r7, #0xa2] + ldr r0, _02345A5C @ =0x02346BDC + strh r1, [r7, #0xa0] + ldr r2, [r0] + sub r3, r1, #1 + ldr r1, _0234665C @ =0x000038B2 + mov r0, #0x1c + str r3, [r2, #0x10] + bl FUN_02066468 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02346674 @ =0x00003501 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02345FC8: + sub r0, r4, #0x1e + cmp r0, #1 + ldrls r0, _02345A5C @ =0x02346BDC + ldrls r1, _02345AFC @ =0x00001004 + ldrls r0, [r0] + strls r1, [r0] + b _02346640 +_02345FE4: + bl FUN_02066494 + cmp r0, #0x1f + bne _02346640 + ldr r1, _02345AE4 @ =0x000038AE + mov r0, #0x1c + bl FUN_02066468 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345AE8 @ =0x00003504 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02346010: + bl FUN_02066494 + cmp r0, #0x1f + bne _02346640 + bl FUN_02046D20 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02346678 @ =0x00003533 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02346034: + bl FUN_0203A998 + cmp r0, #0 + bne _02346074 + ldr r0, _02345A5C @ =0x02346BDC + ldr r0, [r0] + ldr r0, [r0, #4] + ldrb r0, [r0, #0xae] + bl FUN_0205BD40 + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + and r0, r0, #0xff + bl FUN_0203C774 + mov r1, #0 + bl FUN_02039C2C + b _02346078 +_02346074: + bl FUN_0203A638 +_02346078: + ldr r0, _02345A5C @ =0x02346BDC + ldr r3, _0234667C @ =0x00003534 + ldr r2, [r0] + mov r1, #0 + str r3, [r2] + ldr r0, [r0] + strb r1, [r0, #0x148] + b _02346640 +_02346098: + bl FUN_0203A5A8 + cmp r0, #0 + beq _023460F8 + bl FUN_0203A9EC + cmp r0, #0 + beq _02346640 + add r1, sp, #0xc + mov r0, #0 + bl FUN_0200625C + ldrh r0, [sp, #0xc] + tst r0, #8 + beq _02346640 + bl FUN_0203AA20 + ldr r1, _02345A5C @ =0x02346BDC + ldr r1, [r1] + str r0, [r1, #0x10] + mov r0, #0 + bl FUN_02017CCC + bl FUN_0203A51C + ldr r0, _02345A5C @ =0x02346BDC + mov r1, #0x3600 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_023460F8: + bl FUN_0203AA20 + mov r5, r0 + mvn r0, #0 + cmp r5, r0 + bne _02346124 + bl FUN_0203A51C + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345AFC @ =0x00001004 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02346124: + ldr r0, _02345A5C @ =0x02346BDC + ldr r0, [r0] + str r5, [r0, #0x10] + bl ov03_023466A4 + ldr r0, _02345A5C @ =0x02346BDC + ldr r4, [r0] + bl FUN_02055650 + cmp r5, r0 + beq _02346154 + bl FUN_0205567C + cmp r5, r0 + bne _0234615C +_02346154: + mov r0, #3 + strb r0, [r4, #0xb0] +_0234615C: + mov r0, #4 + bl FUN_023375C0 + ldr r1, _02346680 @ =0x023469D8 + ldr r2, _02345A5C @ =0x02346BDC + ldr r3, [r1, r0, lsl #3] + ldr r1, [r2] + ldr r0, _02346684 @ =0x023469D4 + str r3, [r1, #0x18] + str r0, [sp] + mov r1, #0 + str r1, [sp, #4] + ldr r3, [r2] + ldr r0, _02346688 @ =0x02346AE8 + ldr r2, _02345A9C @ =0x00000233 + add r3, r3, #0x18 + bl FUN_020663DC + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _0234668C @ =0x00003535 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_023461B0: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #4 + bl FUN_023375D0 + cmp r4, #0x12 + bne _023462A0 + ldr r0, _02345A5C @ =0x02346BDC + mov r1, #1 + ldr r2, [r0] + ldr r0, [r2, #0x10] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + strb r1, [r2, #0xc] + bl FUN_020555A8 + ldr r2, _02345A5C @ =0x02346BDC + mov r1, r0 + ldr r0, [r2] + ldr r0, [r0, #8] + bl FUN_02055E14 + ldr r0, _02345A5C @ =0x02346BDC + ldr r0, [r0] + ldr r0, [r0, #4] + ldrb r0, [r0, #0xae] + bl FUN_0205BD40 + cmp r0, #0 + beq _02346288 + ldr r0, _02345A5C @ =0x02346BDC + ldr r0, [r0] + ldr r0, [r0, #8] + ldrb r0, [r0, #5] + bl FUN_02051798 + ldr r1, _02345A5C @ =0x02346BDC + ldr r2, [r1] + ldr r2, [r2, #8] + strb r0, [r2, #5] + ldr r0, [r1] + ldr r1, [r0, #8] + ldrb r0, [r1, #5] + cmp r0, #0xff + beq _02346280 + bl ov03_0233CAD8 + cmp r0, #2 + bne _02346288 + ldr r0, _02345A5C @ =0x02346BDC + ldr r0, [r0] + ldr r1, [r0, #8] + ldrb r0, [r1, #5] + cmp r0, #0x80 + blo _02346288 +_02346280: + mov r0, #0x69 + strb r0, [r1, #5] +_02346288: + bl FUN_0203A51C + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345AFC @ =0x00001004 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_023462A0: + cmp r4, #0x14 + bne _023462C0 + bl FUN_0203A51C + ldr r0, _02345A5C @ =0x02346BDC + mov r1, #0x3600 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_023462C0: + cmp r4, #0x15 + bne _023462E0 + bl FUN_0203A51C + ldr r0, _02345A5C @ =0x02346BDC + mov r1, #0x3700 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_023462E0: + cmp r4, #0x16 + bne _02346300 + bl FUN_0203A51C + ldr r0, _02345A5C @ =0x02346BDC + mov r1, #0x3800 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02346300: + sub r0, r4, #0x1e + cmp r0, #1 + bhi _02346640 + bl FUN_02046D20 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02346678 @ =0x00003533 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02346324: + ldrsb r1, [r4, #0x14] + mvn r0, #1 + cmp r1, r0 + bne _02346360 + ldr r1, [r4, #0x10] + add r0, sp, #0x1c + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + bl FUN_0205B028 + add r0, sp, #0x1c + mov r1, #3 + bl FUN_0203F150 + ldr r1, _02345A5C @ =0x02346BDC + ldr r1, [r1] + strb r0, [r1, #0x14] +_02346360: + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02346690 @ =0x00003601 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02346374: + bl FUN_0203F398 + cmp r0, #1 + bne _02346640 + bl FUN_0203F990 + ldr r0, _02345A5C @ =0x02346BDC + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x14] + bl FUN_02046D20 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02346678 @ =0x00003533 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_023463AC: + ldrsb r1, [r4, #0x14] + mvn r0, #1 + cmp r1, r0 + bne _023463E8 + ldr r0, [r4, #0x10] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_0203FA64 + mov r1, #0 + mov r2, r1 + mov r0, #9 + bl FUN_0204018C + ldr r1, _02345A5C @ =0x02346BDC + ldr r1, [r1] + strb r0, [r1, #0x14] +_023463E8: + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02345A70 @ =0x00003701 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_023463FC: + bl FUN_020407EC + cmp r0, #1 + bne _02346424 + bl ov03_023466E8 + bl FUN_02046D20 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02346678 @ =0x00003533 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02346424: + cmp r0, #2 + cmpne r0, #7 + bne _02346640 + bl FUN_0203FD38 + ldr r2, _02345A5C @ =0x02346BDC + mov r1, r0 + ldr r0, [r2] + mov r2, #0x20 + add r0, r0, #0x22 + add r0, r0, #0x100 + bl FUN_020032D4 + bl FUN_02041094 + ldr r1, _02345A5C @ =0x02346BDC + ldr r1, [r1] + add r1, r1, #0x100 + strh r0, [r1, #0x20] + bl ov03_023466E8 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02346694 @ =0x00003710 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_0234647C: + ldrsb r1, [r4, #0x14] + mvn r0, #1 + cmp r1, r0 + bne _023464B4 + add r0, r4, #0x100 + ldrsh r2, [r0, #0x20] + add r0, r4, #0x22 + add r0, r0, #0x100 + mov r1, #4 + mov r3, #1 + bl FUN_020417A8 + ldr r1, _02345A5C @ =0x02346BDC + ldr r1, [r1] + strb r0, [r1, #0x14] +_023464B4: + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02346698 @ =0x00003711 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_023464C8: + bl FUN_02041A18 + cmp r0, #1 + bne _02346640 + ldr r1, _02345A5C @ =0x02346BDC + mvn r0, #1 + ldr r1, [r1] + ldrsb r1, [r1, #0x14] + cmp r1, r0 + beq _02346510 + bl FUN_02041A00 + ldr r0, _02345A5C @ =0x02346BDC + ldr r0, [r0] + ldrsb r0, [r0, #0x14] + bl FUN_0202E6C8 + ldr r0, _02345A5C @ =0x02346BDC + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x14] +_02346510: + ldr r0, _02345A5C @ =0x02346BDC + mov r1, #0x3700 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02346524: + ldr r0, [r4, #0x10] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_020555A8 + mov r1, r0 + ldrsh r0, [r1, #4] + ldrsh r2, [r1, #8] + add r1, r1, #0x14 + mov r3, #0 + bl FUN_02041A40 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _0234669C @ =0x00003801 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02346560: + bl FUN_02041B7C + cmp r0, #1 + bne _02346640 + bl FUN_020420F4 + bl FUN_02046D20 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02346678 @ =0x00003533 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_02346588: + bl FUN_02066494 + cmp r0, #0x1f + bne _02346640 + bl FUN_02046D20 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _02346678 @ =0x00003533 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_023465AC: + bl FUN_02066434 + mov r4, r0 + bl FUN_0206645C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #2 + bl FUN_023375D0 + cmp r4, #0x1d + bne _0234660C + ldr r0, _02345A5C @ =0x02346BDC + mov r3, #0 + ldr r2, [r0] + ldr r1, _02345B0C @ =0x000038B4 + strb r3, [r2, #0xc] + ldr r2, [r0] + sub r3, r3, #1 + mov r0, #0x1c + str r3, [r2, #0x10] + bl FUN_02066468 + ldr r0, _02345A5C @ =0x02346BDC + ldr r1, _023466A0 @ =0x00003512 + ldr r0, [r0] + str r1, [r0] + b _02346640 +_0234660C: + sub r0, r4, #0x1e + cmp r0, #1 + ldrls r0, _02345A5C @ =0x02346BDC + ldrls r1, _02345AFC @ =0x00001004 + ldrls r0, [r0] + strls r1, [r0] + b _02346640 +_02346628: + bl FUN_02066494 + cmp r0, #0x1f + ldreq r0, _02345A5C @ =0x02346BDC + ldreq r1, _02345AFC @ =0x00001004 + ldreq r0, [r0] + streq r1, [r0] +_02346640: + mov r0, #0 +_02346644: + add sp, sp, #0x3b4 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0234664C: .4byte 0x02346AC8 +_02346650: .4byte 0x00001013 +_02346654: .4byte 0x000008E4 +_02346658: .4byte 0x00003101 +_0234665C: .4byte 0x000038B2 +_02346660: .4byte 0x00003054 +_02346664: .4byte 0x0000023B +_02346668: .4byte 0x00000239 +_0234666C: .4byte 0x02346AF8 +_02346670: .4byte 0x0000030F +_02346674: .4byte 0x00003501 +_02346678: .4byte 0x00003533 +_0234667C: .4byte 0x00003534 +_02346680: .4byte 0x023469D8 +_02346684: .4byte 0x023469D4 +_02346688: .4byte 0x02346AE8 +_0234668C: .4byte 0x00003535 +_02346690: .4byte 0x00003601 +_02346694: .4byte 0x00003710 +_02346698: .4byte 0x00003711 +_0234669C: .4byte 0x00003801 +_023466A0: .4byte 0x00003512 + arm_func_end ov03_02344AB8 + + arm_func_start ov03_023466A4 +ov03_023466A4: @ 0x023466A4 + push {r3, lr} + ldr r0, _023466E4 @ =0x02346BDC + mov r1, #0x98 + ldr r0, [r0] + add r0, r0, #0x18 + bl FUN_02003250 + ldr r0, _023466E4 @ =0x02346BDC + mov r1, #6 + ldr r0, [r0] + add r0, r0, #0xb0 + bl FUN_02003250 + ldr r0, _023466E4 @ =0x02346BDC + ldr r1, [r0] + add r0, r1, #0xb0 + str r0, [r1, #0x78] + pop {r3, pc} + .align 2, 0 +_023466E4: .4byte 0x02346BDC + arm_func_end ov03_023466A4 + + arm_func_start ov03_023466E8 +ov03_023466E8: @ 0x023466E8 + push {r3, lr} + ldr r1, _02346734 @ =0x02346BDC + mvn r0, #1 + ldr r2, [r1] + ldrsb r1, [r2, #0x14] + cmp r1, r0 + popeq {r3, pc} + ldr r0, [r2, #0x10] + bl FUN_0203FD80 + bl FUN_020407C0 + ldr r0, _02346734 @ =0x02346BDC + ldr r0, [r0] + ldrsb r0, [r0, #0x14] + bl FUN_020308A0 + ldr r0, _02346734 @ =0x02346BDC + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x14] + pop {r3, pc} + .align 2, 0 +_02346734: .4byte 0x02346BDC + arm_func_end ov03_023466E8 + @ 0x02346738 diff --git a/asm/overlay_04.s b/asm/overlay_04.s index 2749a9d0..413e2575 100644 --- a/asm/overlay_04.s +++ b/asm/overlay_04.s @@ -3,3 +3,3121 @@ .include "global.inc" .text + + arm_func_start ov04_0233CA80 +ov04_0233CA80: @ 0x0233CA80 + ldr ip, _0233CA90 @ =FUN_02003250 + ldr r0, _0233CA94 @ =0x0233F660 + mov r1, #0x10 + bx ip + .align 2, 0 +_0233CA90: .4byte FUN_02003250 +_0233CA94: .4byte 0x0233F660 + arm_func_end ov04_0233CA80 + + arm_func_start ov04_0233CA98 +ov04_0233CA98: @ 0x0233CA98 + ldr r1, _0233CAA4 @ =0x0233F660 + str r0, [r1] + bx lr + .align 2, 0 +_0233CAA4: .4byte 0x0233F660 + arm_func_end ov04_0233CA98 + + arm_func_start ov04_0233CAA8 +ov04_0233CAA8: @ 0x0233CAA8 + ldr r0, _0233CAB4 @ =0x0233F660 + ldr r0, [r0] + bx lr + .align 2, 0 +_0233CAB4: .4byte 0x0233F660 + arm_func_end ov04_0233CAA8 + + arm_func_start ov04_0233CAB8 +ov04_0233CAB8: @ 0x0233CAB8 + ldr r1, _0233CAC4 @ =0x0233F660 + str r0, [r1, #4] + bx lr + .align 2, 0 +_0233CAC4: .4byte 0x0233F660 + arm_func_end ov04_0233CAB8 + + arm_func_start ov04_0233CAC8 +ov04_0233CAC8: @ 0x0233CAC8 + ldr r0, _0233CAD4 @ =0x0233F660 + ldr r0, [r0, #4] + bx lr + .align 2, 0 +_0233CAD4: .4byte 0x0233F660 + arm_func_end ov04_0233CAC8 + + arm_func_start ov04_0233CAD8 +ov04_0233CAD8: @ 0x0233CAD8 + ldr r1, _0233CAE4 @ =0x0233F660 + strb r0, [r1, #0xc] + bx lr + .align 2, 0 +_0233CAE4: .4byte 0x0233F660 + arm_func_end ov04_0233CAD8 + + arm_func_start ov04_0233CAE8 +ov04_0233CAE8: @ 0x0233CAE8 + ldr r0, _0233CAF4 @ =0x0233F660 + ldrb r0, [r0, #0xc] + bx lr + .align 2, 0 +_0233CAF4: .4byte 0x0233F660 + arm_func_end ov04_0233CAE8 + + arm_func_start ov04_0233CAF8 +ov04_0233CAF8: @ 0x0233CAF8 + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr ip, [sp, #0x10] + ldrh lr, [sp, #0x14] + str ip, [sp] + mov ip, #0 + arm_func_end ov04_0233CAF8 + + arm_func_start ov04_0233CB10 +ov04_0233CB10: @ 0x0233CB10 + str lr, [sp, #4] + str ip, [sp, #8] + bl FUN_02046A20 + add sp, sp, #0xc + ldm sp!, {pc} + arm_func_end ov04_0233CB10 + + arm_func_start ov04_0233CB24 +ov04_0233CB24: @ 0x0233CB24 + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr ip, [sp, #0x10] + ldrh lr, [sp, #0x14] + str ip, [sp] + ldr ip, [sp, #0x18] + arm_func_end ov04_0233CB24 + + arm_func_start ov04_0233CB3C +ov04_0233CB3C: @ 0x0233CB3C + str lr, [sp, #4] + str ip, [sp, #8] + bl FUN_02046A20 + add sp, sp, #0xc + ldm sp!, {pc} + arm_func_end ov04_0233CB3C + + arm_func_start ov04_0233CB50 +ov04_0233CB50: @ 0x0233CB50 + push {r3, lr} + bl FUN_02046B04 + mvn r1, #1 + cmp r0, r1 + moveq r0, #8 + popeq {r3, pc} + add r1, r1, #1 + cmp r0, r1 + moveq r0, #0 + pop {r3, pc} + arm_func_end ov04_0233CB50 + + arm_func_start ov04_02046BA0 +ov04_02046BA0: @ 0x0233CB78 + ldr ip, _0233CB80 @ =FUN_02046BA0 + bx ip + .align 2, 0 +_0233CB80: .4byte FUN_02046BA0 + arm_func_end ov04_02046BA0 + + arm_func_start ov04_0233CB84 +ov04_0233CB84: @ 0x0233CB84 + ldr ip, _0233CB90 @ =FUN_02046BE8 + mov r2, #0 + bx ip + .align 2, 0 +_0233CB90: .4byte FUN_02046BE8 + arm_func_end ov04_0233CB84 + + arm_func_start ov04_02046BE8 +ov04_02046BE8: @ 0x0233CB94 + ldr ip, _0233CB9C @ =FUN_02046BE8 + bx ip + .align 2, 0 +_0233CB9C: .4byte FUN_02046BE8 + arm_func_end ov04_02046BE8 + + arm_func_start ov04_0233CBA0 +ov04_0233CBA0: @ 0x0233CBA0 + push {r3, lr} + bl FUN_02046C78 + cmp r0, #0 + movne r0, #8 + moveq r0, #0 + pop {r3, pc} + arm_func_end ov04_0233CBA0 + + arm_func_start ov04_0233CBB8 +ov04_0233CBB8: @ 0x0233CBB8 + push {r3, lr} + mov r0, #0xb8 + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233CC44 @ =0x0233F670 + mov r1, #0xb8 + str r0, [r2] + bl FUN_02003250 + mov r2, #0 + ldr r0, _0233CC44 @ =0x0233F670 + mov ip, r2 +_0233CBE4: + ldr r1, [r0] + add r1, r1, r2 + add r2, r2, #1 + strb ip, [r1, #0x14] + cmp r2, #3 + blt _0233CBE4 + ldr r0, _0233CC44 @ =0x0233F670 + mov r1, #0x10 + ldr r3, [r0] + add r2, r3, #0x14 + str r2, [r3, #0x78] + ldr r2, [r0] + str ip, [r2, #0x10] + ldr r0, [r0] + bl FUN_02003250 + ldr r0, _0233CC44 @ =0x0233F670 + mov r1, #0 + str r1, [r0, #4] + bl FUN_02046D20 + ldr r0, _0233CC48 @ =0x0233F640 + mov r1, #0 + str r1, [r0] + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0233CC44: .4byte 0x0233F670 +_0233CC48: .4byte 0x0233F640 + arm_func_end ov04_0233CBB8 + + arm_func_start ov04_0233CC4C +ov04_0233CC4C: @ 0x0233CC4C + push {r4, lr} + sub sp, sp, #8 + ldr r0, _0233D154 @ =0x0233F670 + ldr r0, [r0] + ldr r1, [r0, #0x10] + cmp r1, #0x2000 + bgt _0233CCC4 + bge _0233CFE0 + cmp r1, #0x1000 + bgt _0233CCA0 + bge _0233CE28 + cmp r1, #2 + bgt _0233D148 + cmp r1, #0 + blt _0233D148 + beq _0233CD04 + cmp r1, #1 + beq _0233CD8C + cmp r1, #2 + beq _0233CE0C + b _0233D148 +_0233CCA0: + ldr r0, _0233D158 @ =0x00001001 + cmp r1, r0 + bgt _0233CCB4 + beq _0233CED8 + b _0233D148 +_0233CCB4: + add r0, r0, #1 + cmp r1, r0 + beq _0233CFC4 + b _0233D148 +_0233CCC4: + ldr r0, _0233D15C @ =0x00002002 + cmp r1, r0 + bgt _0233CCE4 + bge _0233D064 + sub r0, r0, #1 + cmp r1, r0 + beq _0233D000 + b _0233D148 +_0233CCE4: + cmp r1, #0x3000 + bgt _0233CCF4 + beq _0233D0CC + b _0233D148 +_0233CCF4: + ldr r0, _0233D160 @ =0x00003001 + cmp r1, r0 + beq _0233D0EC + b _0233D148 +_0233CD04: + bl FUN_0232E94C + cmp r0, #0 + bne _0233D148 + bl FUN_0232F3F4 + bl ov04_0233CA80 + mov r3, #0 + ldr r1, _0233D154 @ =0x0233F670 + mov r0, r3 +_0233CD24: + ldr r2, [r1] + add r2, r2, r3 + add r3, r3, #1 + strb r0, [r2, #0x14] + cmp r3, #3 + blt _0233CD24 + bl FUN_02337648 + ldr r2, _0233D164 @ =0x0233F5BC + ldr r1, _0233D154 @ =0x0233F670 + ldr r2, [r2, r0, lsl #3] + ldr r0, [r1] + ldr r3, _0233D168 @ =0x0233F5B8 + str r2, [r0, #0x18] + mov r0, #0 + ldr r2, _0233D16C @ =0x000037B9 + str r3, [sp] + str r2, [sp, #4] + ldr r3, [r1] + ldr r2, _0233D170 @ =0x00000233 + mov r1, r0 + add r3, r3, #0x18 + bl ov04_0233CAF8 + ldr r0, _0233D154 @ =0x0233F670 + mov r1, #1 + ldr r0, [r0] + str r1, [r0, #0x10] +_0233CD8C: + bl ov04_0233CB50 + mov r4, r0 + bl ov04_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0 + bl FUN_02337658 + cmp r4, #1 + bne _0233CDCC + mov r0, #1 + bl ov04_0233CAB8 + ldr r0, _0233D154 @ =0x0233F670 + mov r1, #0x1000 + ldr r0, [r0] + str r1, [r0, #0x10] + arm_func_end ov04_0233CC4C + + arm_func_start ov04_0233CDC8 +ov04_0233CDC8: @ 0x0233CDC8 + b _0233D148 +_0233CDCC: + cmp r4, #2 + bne _0233CDF0 + mov r0, #0 + arm_func_end ov04_0233CDC8 + + arm_func_start ov04_0233CDD8 +ov04_0233CDD8: @ 0x0233CDD8 + bl ov04_0233CAB8 + ldr r0, _0233D154 @ =0x0233F670 + mov r1, #0x1000 + arm_func_end ov04_0233CDD8 + + arm_func_start ov04_0233CDE4 +ov04_0233CDE4: @ 0x0233CDE4 + ldr r0, [r0] + str r1, [r0, #0x10] + b _0233D148 +_0233CDF0: + sub r0, r4, #7 + cmp r0, #1 + ldrls r0, _0233D154 @ =0x0233F670 + movls r1, #2 + ldrls r0, [r0] + strls r1, [r0, #0x10] + b _0233D148 +_0233CE0C: + bl FUN_0232E94C + cmp r0, #0 + bne _0233D148 + mov r0, #0x11 + bl FUN_023310B8 + mov r0, #3 + b _0233D14C +_0233CE28: + bl ov04_0233CAC8 + cmp r0, #0 + ldreq r0, _0233D174 @ =0x000037BE + ldrne r0, _0233D178 @ =0x000037BD + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + bl ov04_0233CAC8 + cmp r0, #1 + moveq r0, #1 + movne r0, #0 + and r0, r0, #0xff + bl FUN_0204316C + bl FUN_02043320 + cmp r0, #0 + ldrne r0, _0233D154 @ =0x0233F670 + movne r1, #3 + ldreq r0, _0233D154 @ =0x0233F670 + moveq r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x14] + mov r0, #1 + bl FUN_02337648 + ldr r2, _0233D17C @ =0x0233F59C + ldr r1, _0233D154 @ =0x0233F670 + ldr r2, [r2, r0, lsl #3] + ldr r1, [r1] + mov r0, #0 + str r2, [r1, #0x18] + bl ov04_0233CAD8 + ldr r1, _0233D180 @ =0x0233F598 + mov r0, #0 + str r1, [sp] + ldr r1, _0233D154 @ =0x0233F670 + str r4, [sp, #4] + ldr r3, [r1] + ldr r2, _0233D170 @ =0x00000233 + mov r1, r0 + add r3, r3, #0x18 + bl ov04_0233CAF8 + ldr r0, _0233D154 @ =0x0233F670 + ldr r1, _0233D158 @ =0x00001001 + ldr r0, [r0] + str r1, [r0, #0x10] + b _0233D148 +_0233CED8: + bl ov04_0233CB50 + mov r4, r0 + bl ov04_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #1 + bl FUN_02337658 + cmp r4, #3 + bne _0233CF18 + mov r0, #0 + bl ov04_0233CA98 + ldr r0, _0233D154 @ =0x0233F670 + mov r1, #0x3000 + ldr r0, [r0] + str r1, [r0, #0x10] + b _0233D148 +_0233CF18: + cmp r4, #4 + bne _0233CFA8 + bl ov04_0233CAC8 + cmp r0, #1 + moveq r0, #6 + beq _0233CF48 + bl ov04_0233CAC8 + cmp r0, #1 + moveq r0, #1 + movne r0, #0 + and r0, r0, #0xff + bl FUN_0204316C +_0233CF48: + bl FUN_02043380 + cmp r0, #0 + beq _0233CF74 + ldr r1, _0233D184 @ =0x000037BF + mov r0, #0x1c + bl ov04_0233CB84 + ldr r0, _0233D154 @ =0x0233F670 + ldr r1, _0233D188 @ =0x00001002 + ldr r0, [r0] + str r1, [r0, #0x10] + b _0233D148 +_0233CF74: + mov r0, #1 + bl ov04_0233CA98 + bl ov04_0233CAC8 + cmp r0, #0 + ldreq r0, _0233D154 @ =0x0233F670 + moveq r1, #0x2000 + ldreq r0, [r0] + streq r1, [r0, #0x10] + ldrne r0, _0233D154 @ =0x0233F670 + movne r1, #0x3000 + ldrne r0, [r0] + strne r1, [r0, #0x10] + b _0233D148 +_0233CFA8: + sub r0, r4, #7 + cmp r0, #1 + ldrls r0, _0233D154 @ =0x0233F670 + movls r1, #0 + ldrls r0, [r0] + strls r1, [r0, #0x10] + b _0233D148 +_0233CFC4: + bl ov04_0233CBA0 + cmp r0, #8 + ldreq r0, _0233D154 @ =0x0233F670 + moveq r1, #2 + ldreq r0, [r0] + streq r1, [r0, #0x10] + b _0233D148 +_0233CFE0: + ldr r1, _0233D18C @ =0x000037D6 + mov r0, #0x1c + bl ov04_0233CB84 + ldr r0, _0233D154 @ =0x0233F670 + ldr r1, _0233D190 @ =0x00002001 + ldr r0, [r0] + str r1, [r0, #0x10] + b _0233D148 +_0233D000: + bl ov04_0233CBA0 + cmp r0, #8 + bne _0233D148 + mov r0, #2 + bl FUN_02337648 + ldr r2, _0233D194 @ =0x0233F584 + ldr r1, _0233D154 @ =0x0233F670 + ldr r2, [r2, r0, lsl #3] + ldr r0, [r1] + ldr r3, _0233D198 @ =0x0233F580 + str r2, [r0, #0x18] + mov r0, #0 + ldr r2, _0233D19C @ =0x000037D7 + str r3, [sp] + str r2, [sp, #4] + ldr r2, [r1] + mov r1, r0 + add r3, r2, #0x18 + mov r2, #0x33 + bl ov04_0233CAF8 + ldr r0, _0233D154 @ =0x0233F670 + ldr r1, _0233D15C @ =0x00002002 + ldr r0, [r0] + str r1, [r0, #0x10] + b _0233D148 +_0233D064: + bl ov04_0233CB50 + mov r4, r0 + bl ov04_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #2 + bl FUN_02337658 + cmp r4, #6 + bne _0233D0A4 + mov r0, #1 + bl ov04_0233CAD8 + ldr r0, _0233D154 @ =0x0233F670 + mov r1, #0x3000 + ldr r0, [r0] + str r1, [r0, #0x10] + b _0233D148 +_0233D0A4: + sub r0, r4, #7 + cmp r0, #1 + bhi _0233D148 + mov r0, #0 + bl ov04_0233CAD8 + ldr r0, _0233D154 @ =0x0233F670 + mov r1, #0x3000 + ldr r0, [r0] + str r1, [r0, #0x10] + b _0233D148 +_0233D0CC: + bl FUN_0232E94C + cmp r0, #0 + bne _0233D148 + bl ov04_0233D1D8 + ldr r0, _0233D154 @ =0x0233F670 + ldr r1, _0233D160 @ =0x00003001 + ldr r0, [r0] + str r1, [r0, #0x10] +_0233D0EC: + bl FUN_02003BFC + bl ov04_0233D2F8 + cmp r0, #1 + bne _0233D114 + bl ov04_0233D2B4 + ldr r0, _0233D154 @ =0x0233F670 + mov r1, #0x1000 + ldr r0, [r0] + str r1, [r0, #0x10] + b _0233D148 +_0233D114: + cmp r0, #2 + bne _0233D130 + bl ov04_0233D2B4 + mov r0, #0x11 + bl FUN_023310B8 + mov r0, #3 + b _0233D14C +_0233D130: + cmp r0, #3 + bne _0233D148 + bl ov04_0233D2B4 + bl FUN_0204A018 + mov r0, #3 + b _0233D14C +_0233D148: + mov r0, #1 +_0233D14C: + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_0233D154: .4byte 0x0233F670 +_0233D158: .4byte 0x00001001 +_0233D15C: .4byte 0x00002002 +_0233D160: .4byte 0x00003001 +_0233D164: .4byte 0x0233F5BC +_0233D168: .4byte 0x0233F5B8 +_0233D16C: .4byte 0x000037B9 +_0233D170: .4byte 0x00000233 +_0233D174: .4byte 0x000037BE +_0233D178: .4byte 0x000037BD +_0233D17C: .4byte 0x0233F59C +_0233D180: .4byte 0x0233F598 +_0233D184: .4byte 0x000037BF +_0233D188: .4byte 0x00001002 +_0233D18C: .4byte 0x000037D6 +_0233D190: .4byte 0x00002001 +_0233D194: .4byte 0x0233F584 +_0233D198: .4byte 0x0233F580 +_0233D19C: .4byte 0x000037D7 + arm_func_end ov04_0233CDE4 + + arm_func_start ov04_0233D1A0 +ov04_0233D1A0: @ 0x0233D1A0 + push {r3, lr} + ldr r0, _0233D1D4 @ =0x0233F670 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02046D20 + ldr r0, _0233D1D4 @ =0x0233F670 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0233D1D4 @ =0x0233F670 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233D1D4: .4byte 0x0233F670 + arm_func_end ov04_0233D1A0 + + arm_func_start ov04_0233D1D8 +ov04_0233D1D8: @ 0x0233D1D8 + push {r3, lr} + sub sp, sp, #8 + bl FUN_02044094 + bl FUN_020440DC + bl FUN_02043218 + ldr r0, _0233D2A4 @ =0x00001D28 + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233D2A8 @ =0x0233F644 + ldr r1, _0233D2A4 @ =0x00001D28 + str r0, [r2] + bl FUN_02003250 + ldr r0, _0233D2A8 @ =0x0233F644 + mov r3, #0 + ldr r1, [r0] + sub r2, r3, #2 + str r3, [r1] + ldr r1, [r0] + strb r2, [r1, #8] + ldr r1, [r0] + add r0, r1, #0x37 + bic r0, r0, #0x1f + str r0, [r1, #0x14] + bl ov04_0233CAC8 + cmp r0, #1 + ldr r3, _0233D2A8 @ =0x0233F644 + moveq r2, #1 + ldr r1, [r3] + movne r2, #0 + add r1, r1, #0x1000 + strb r2, [r1, #0x928] + ldr r2, [r3] + mov ip, #0 + add r2, r2, #0x1000 + strb ip, [r2, #0xd24] + ldr r3, [r3] + ldr r1, _0233D2AC @ =0x0233F624 + add r3, r3, #0x1000 + ldr r2, _0233D2B0 @ =0x0000030F + add r0, sp, #0 + strb ip, [r3, #0x92d] + bl FUN_02008C3C + ldr r0, _0233D2A8 @ =0x0233F644 + ldr r2, [sp] + ldr r0, [r0] + ldr r1, [sp, #4] + add r0, r0, #0x1000 + str r2, [r0, #0xd1c] + str r1, [r0, #0xd20] + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_0233D2A4: .4byte 0x00001D28 +_0233D2A8: .4byte 0x0233F644 +_0233D2AC: .4byte 0x0233F624 +_0233D2B0: .4byte 0x0000030F + arm_func_end ov04_0233D1D8 + + arm_func_start ov04_0233D2B4 +ov04_0233D2B4: @ 0x0233D2B4 + push {r3, lr} + ldr r0, _0233D2F4 @ =0x0233F644 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + add r0, r0, #0x11c + add r0, r0, #0x1c00 + bl FUN_02008BD4 + ldr r0, _0233D2F4 @ =0x0233F644 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0233D2F4 @ =0x0233F644 + mov r1, #0 + str r1, [r0] + bl FUN_020440B8 + pop {r3, pc} + .align 2, 0 +_0233D2F4: .4byte 0x0233F644 + arm_func_end ov04_0233D2B4 + + arm_func_start ov04_0233D2F8 +ov04_0233D2F8: @ 0x0233D2F8 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0xa4 + sub sp, sp, #0x400 + ldr r0, _0233E25C @ =0x0233F644 + ldr r2, _0233E260 @ =0x00002020 + ldr r4, [r0] + ldr r0, [r4] + cmp r0, r2 + bgt _0233D414 + bge _0233E9D4 + sub r1, r2, #0x1f + cmp r0, r1 + bgt _0233D3B0 + bge _0233DFC8 + ldr r2, _0233E264 @ =0x00001001 + cmp r0, r2 + bgt _0233D370 + bge _0233D820 + cmp r0, #2 + bgt _0233D364 + cmp r0, #0 + blt _0233EEB4 + beq _0233D4FC + cmp r0, #1 + cmpne r0, #2 + beq _0233D7F0 + b _0233EEB4 +_0233D364: + cmp r0, #0x1000 + beq _0233D804 + b _0233EEB4 +_0233D370: + add r1, r2, #6 + cmp r0, r1 + bgt _0233D3A4 + add r1, r2, #1 + subs r1, r0, r1 + addpl pc, pc, r1, lsl #2 + b _0233EEB4 +_0233D38C: @ jump table + b _0233D874 @ case 0 + b _0233DAC4 @ case 1 + b _0233DCCC @ case 2 + b _0233DD54 @ case 3 + b _0233DDA8 @ case 4 + b _0233DDC4 @ case 5 +_0233D3A4: + cmp r0, #0x2000 + beq _0233DDF4 + b _0233EEB4 +_0233D3B0: + sub r1, r2, #0xd + cmp r0, r1 + bgt _0233D3E4 + bge _0233E560 + sub r1, r2, #0xf + cmp r0, r1 + bgt _0233D3D4 + beq _0233E23C + b _0233EEB4 +_0233D3D4: + sub r1, r2, #0xe + cmp r0, r1 + beq _0233E43C + b _0233EEB4 +_0233D3E4: + sub r1, r2, #0xb + cmp r0, r1 + bgt _0233D404 + bge _0233E74C + sub r1, r2, #0xc + cmp r0, r1 + beq _0233E670 + b _0233EEB4 +_0233D404: + sub r1, r2, #0xa + cmp r0, r1 + beq _0233E774 + b _0233EEB4 +_0233D414: + ldr r2, _0233E268 @ =0x00005001 + cmp r0, r2 + bgt _0233D47C + bge _0233ECB4 + ldr r1, _0233E26C @ =0x00003002 + cmp r0, r1 + bgt _0233D454 + bge _0233EB98 + cmp r0, #0x3000 + bgt _0233D444 + beq _0233EA00 + b _0233EEB4 +_0233D444: + sub r1, r1, #1 + cmp r0, r1 + beq _0233EB20 + b _0233EEB4 +_0233D454: + cmp r0, #0x4000 + bgt _0233D470 + bge _0233EBD8 + add r1, r1, #1 + cmp r0, r1 + beq _0233EBAC + b _0233EEB4 +_0233D470: + cmp r0, #0x5000 + beq _0233EBEC + b _0233EEB4 +_0233D47C: + add r1, r2, #3 + cmp r0, r1 + bgt _0233D4B0 + bge _0233ED70 + add r1, r2, #1 + cmp r0, r1 + bgt _0233D4A0 + beq _0233ED0C + b _0233EEB4 +_0233D4A0: + add r1, r2, #2 + cmp r0, r1 + beq _0233ED28 + b _0233EEB4 +_0233D4B0: + add r1, r2, #5 + cmp r0, r1 + bgt _0233D4D0 + bge _0233EDB0 + add r1, r2, #4 + cmp r0, r1 + beq _0233ED90 + b _0233EEB4 +_0233D4D0: + add r1, r2, #7 + cmp r0, r1 + bgt _0233EEB4 + add r1, r2, #6 + cmp r0, r1 + blt _0233EEB4 + beq _0233EDD4 + add r1, r2, #7 + cmp r0, r1 + beq _0233EE90 + b _0233EEB4 +_0233D4FC: + bl ov04_0233CAC8 + cmp r0, #0 + bne _0233D648 + bl ov04_0233CAA8 + cmp r0, #1 + bne _0233D5AC + ldr r0, _0233E25C @ =0x0233F644 + ldr r1, [r0] + cmp r1, #0 + movne r0, #1 + strne r0, [r1, #4] + add r0, r4, #0x58 + mov r1, #0x1e + bl FUN_02003250 + add r0, r4, #0x3ec + add r0, r0, #0x1400 + mov r1, #0x18 + bl FUN_02003250 + add r0, r4, #0x3ec + add r1, r4, #0x1000 + mov r3, #0x18 + str r3, [r1, #0x838] + add r0, r0, #0x1400 + str r0, [r1, #0x83c] + mov r0, #0x1e + str r0, [r1, #0x840] + add r0, r4, #0x58 + str r0, [r1, #0x844] + mov r3, #0 + ldr r0, _0233E270 @ =ov04_0233EF8C + strb r3, [r1, #0x84c] + str r0, [r1, #0x848] + mov r0, #1 + strb r0, [r1, #0x850] + add r2, r4, #0x7f0 + add r0, r2, #0x1000 + strb r3, [r1, #0x851] + bl FUN_02050B10 + ldr r1, _0233E274 @ =0x000037C1 + mov r0, #0x1c + bl ov04_0233CB84 + mov r0, #1 + str r0, [r4] + b _0233EEB4 +_0233D5AC: + bl ov04_0233CAA8 + cmp r0, #0 + bne _0233EEB4 + ldr r0, _0233E25C @ =0x0233F644 + ldr r1, [r0] + cmp r1, #0 + movne r0, #0 + strne r0, [r1, #4] + add r0, r4, #0x58 + mov r1, #0x1e + bl FUN_02003250 + add r0, r4, #0x3ec + add r0, r0, #0x1400 + mov r1, #0x18 + bl FUN_02003250 + add r0, r4, #0x3ec + add r1, r4, #0x1000 + mov r2, #0x1e + str r2, [r1, #0x838] + add r2, r4, #0x58 + str r2, [r1, #0x83c] + mov r2, #0x18 + str r2, [r1, #0x840] + add r0, r0, #0x1400 + str r0, [r1, #0x844] + mov r2, #0 + ldr r0, _0233E278 @ =0x02337B68 + strb r2, [r1, #0x84c] + str r0, [r1, #0x848] + strb r2, [r1, #0x850] + add r0, r4, #0x5c + strb r2, [r1, #0x851] + bl FUN_02050B10 + ldr r1, _0233E27C @ =0x000037C2 + mov r0, #0x1c + bl ov04_0233CB84 + mov r0, #0x1000 + str r0, [r4] + b _0233EEB4 +_0233D648: + bl ov04_0233CAA8 + cmp r0, #1 + bne _0233D734 + ldr r0, _0233E25C @ =0x0233F644 + ldr r1, [r0] + cmp r1, #0 + movne r0, #1 + strne r0, [r1, #4] + ldr r1, _0233E280 @ =0x00001776 + add r0, r4, #0x76 + bl FUN_02003250 + add r0, r4, #4 + add r0, r0, #0x1800 + mov r1, #0x1a + bl FUN_02003250 + add r0, r4, #0x3ec + add r6, r0, #0x1400 + add r1, r4, #4 + add r0, r4, #0x7f0 + add r2, r4, #0x1000 + mov r7, #0x18 + str r7, [r2, #0x820] + str r6, [r2, #0x824] + mov r3, #0x1a + str r3, [r2, #0x828] + add r1, r1, #0x1800 + str r1, [r2, #0x82c] + mov r5, #1 + ldr r1, _0233E284 @ =ov04_0233F0A8 + strb r5, [r2, #0x834] + str r1, [r2, #0x830] + str r7, [r2, #0x838] + ldr r1, _0233E280 @ =0x00001776 + str r6, [r2, #0x83c] + str r1, [r2, #0x840] + add r1, r4, #0x76 + str r1, [r2, #0x844] + mov r3, #0 + ldr r1, _0233E288 @ =ov04_0233F0E0 + strb r3, [r2, #0x84c] + str r1, [r2, #0x848] + strb r5, [r2, #0x850] + add r0, r0, #0x1000 + strb r3, [r2, #0x851] + bl FUN_02050B10 + add r0, sp, #0xec + bl FUN_02023690 + bl FUN_0200FD48 + mov r5, r0 + bl FUN_0200FD78 + sub r0, r5, r0 + str r0, [sp, #0x110] + mov r0, #0x1c + mov r1, #0x37c0 + add r2, sp, #0xec + bl ov04_02046BE8 + mov r0, #2 + str r0, [r4] + b _0233EEB4 +_0233D734: + bl ov04_0233CAA8 + cmp r0, #0 + bne _0233EEB4 + ldr r0, _0233E25C @ =0x0233F644 + ldr r1, [r0] + cmp r1, #0 + movne r0, #0 + strne r0, [r1, #4] + add r0, r4, #0x3ec + add r0, r0, #0x1400 + mov r1, #0x18 + bl FUN_02003250 + add r0, r4, #4 + add r1, r4, #0x3ec + add r5, r1, #0x1400 + add r2, r4, #0x1000 + mov r3, #0x1a + str r3, [r2, #0x820] + add r0, r0, #0x1800 + str r0, [r2, #0x824] + mov r6, #0x18 + str r6, [r2, #0x828] + add r0, r4, #8 + str r5, [r2, #0x82c] + mov r1, #1 + strb r1, [r2, #0x834] + ldr r3, _0233E278 @ =0x02337B68 + ldr r1, _0233E280 @ =0x00001776 + str r3, [r2, #0x830] + str r1, [r2, #0x838] + add r1, r4, #0x76 + str r1, [r2, #0x83c] + str r6, [r2, #0x840] + str r5, [r2, #0x844] + mov r1, #0 + strb r1, [r2, #0x84c] + str r3, [r2, #0x848] + strb r1, [r2, #0x850] + add r0, r0, #0x1800 + strb r1, [r2, #0x851] + bl FUN_02050B10 + ldr r1, _0233E27C @ =0x000037C2 + mov r0, #0x1c + bl ov04_0233CB84 + mov r0, #0x1000 + str r0, [r4] + b _0233EEB4 +_0233D7F0: + bl ov04_0233CBA0 + cmp r0, #8 + moveq r0, #0x2000 + streq r0, [r4] + b _0233EEB4 +_0233D804: + bl ov04_0233CBA0 + cmp r0, #8 + bne _0233EEB4 + bl FUN_02046D20 + ldr r0, _0233E264 @ =0x00001001 + str r0, [r4] + b _0233EEB4 +_0233D820: + bl ov04_0233CAC8 + cmp r0, #0 + movne r5, #6 + bne _0233D848 + ldr r0, _0233E25C @ =0x0233F644 + ldr r0, [r0] + add r0, r0, #0x1000 + ldrb r0, [r0, #0x928] + bl FUN_0204316C + mov r5, r0 +_0233D848: + ldr r0, _0233E28C @ =0x0233C1DC + ldrsh r0, [r0] + bl FUN_0204322C + mov r0, r5 + mov r1, #0 + mov r2, #8 + bl FUN_02042CF0 + ldr r1, _0233E290 @ =0x00001002 + strb r0, [r4, #8] + str r1, [r4] + b _0233EEB4 +_0233D874: + bl FUN_02043468 + mov r5, r0 + bl FUN_02043400 + cmp r0, #0 + bne _0233DA6C + mvn r0, #0 + cmp r5, r0 + bne _0233D8A8 + bl FUN_0204317C + mvn r0, #1 + strb r0, [r4, #8] + mov r0, #1 + b _0233EEB8 +_0233D8A8: + bl FUN_020434FC + mov r6, r0 + mov r0, r5 + bl FUN_02043254 + ldr r1, _0233E28C @ =0x0233C1DC + cmp r6, #1 + strh r0, [r1] + ble _0233D9A4 + add r0, r4, #0x84 + add r0, r0, #0x1800 + mov r1, #0x98 + str r5, [r4, #0xc] + bl FUN_02003250 + mov r1, #0 + mov r5, r1 +_0233D8E4: + add r0, r4, r1 + add r0, r0, #0x1000 + add r1, r1, #1 + strb r5, [r0, #0x91c] + cmp r1, #5 + blt _0233D8E4 + add r0, r4, #0x11c + add r7, r0, #0x1800 + add r6, r4, #0x1000 + str r7, [r6, #0x8e4] + mov r0, #3 + strb r0, [r7, #1] + b _0233D954 +_0233D918: + lsl r0, r5, #0x10 + asr r0, r0, #0x10 + bl FUN_02043568 + tst r0, #1 + beq _0233D950 + mov r0, r5 + bl FUN_0204329C + bl FUN_02010044 + ldrb r1, [r6, #0x928] + bl FUN_02062DDC + cmp r0, #0 + moveq r0, #3 + strbeq r0, [r7] + beq _0233D95C +_0233D950: + add r5, r5, #1 +_0233D954: + cmp r5, #0x3e8 + blt _0233D918 +_0233D95C: + mov r0, #3 + bl FUN_02337648 + arm_func_end ov04_0233D2F8 + + arm_func_start ov04_0233D964 +ov04_0233D964: @ 0x0233D964 + ldr r1, _0233E294 @ =0x0233F5DC + add r3, r4, #0x84 + ldr r2, [r1, r0, lsl #3] + add r0, r4, #0x1000 + ldr r1, _0233E298 @ =0x0233F5D8 + str r2, [r0, #0x884] + ldr r0, _0233E29C @ =0x0233F604 + ldr r2, _0233E2A0 @ =0x00000233 + str r1, [sp] + mov r1, #0 + add r3, r3, #0x1800 + str r1, [sp, #4] + bl ov04_0233CAF8 + ldr r0, _0233E2A4 @ =0x00001003 + str r0, [r4] + b _0233EEB4 +_0233D9A4: + cmp r6, #1 + bne _0233D9B4 + bl FUN_0204352C + b _0233D9B8 +_0233D9B4: + bl FUN_02043468 +_0233D9B8: + mov r5, r0 + add r0, r4, #0x84 + add r0, r0, #0x1800 + mov r1, #0x98 + str r5, [r4, #0xc] + bl FUN_02003250 + mov r2, #0 + mov r1, r2 +_0233D9D8: + add r0, r4, r2 + add r0, r0, #0x1000 + add r2, r2, #1 + strb r1, [r0, #0x91c] + cmp r2, #5 + blt _0233D9D8 + add r0, r4, #0x11c + lsl r2, r5, #0x10 + add r5, r0, #0x1800 + add r1, r4, #0x1000 + asr r0, r2, #0x10 + str r5, [r1, #0x8e4] + bl FUN_02010044 + add r1, r4, #0x1000 + ldrb r1, [r1, #0x928] + bl FUN_02062DDC + cmp r0, #0 + moveq r0, #3 + strbeq r0, [r5] + mov r0, #3 + bl FUN_02337648 + ldr r1, _0233E294 @ =0x0233F5DC + add r3, r4, #0x84 + ldr r2, [r1, r0, lsl #3] + add r0, r4, #0x1000 + str r2, [r0, #0x884] + ldr r1, _0233E298 @ =0x0233F5D8 + ldr r0, _0233E29C @ =0x0233F604 + str r1, [sp] + mov r1, #0 + ldr r2, _0233E2A0 @ =0x00000233 + add r3, r3, #0x1800 + str r1, [sp, #4] + bl ov04_0233CAF8 + ldr r0, _0233E2A4 @ =0x00001003 + str r0, [r4] + b _0233EEB4 +_0233DA6C: + bl FUN_02043434 + cmp r0, #0 + beq _0233EEB4 + add r1, sp, #0x10 + mov r0, #0 + bl FUN_0200625C + ldrh r0, [sp, #0x10] + tst r0, #8 + beq _0233EEB4 + mov r0, #0 + bl FUN_02017CCC + mov r0, r5 + bl FUN_02043254 + ldr r1, _0233E28C @ =0x0233C1DC + strh r0, [r1] + str r5, [r4, #0xc] + bl FUN_0204317C + mvn r1, #1 + ldr r0, _0233E2A8 @ =0x00001004 + strb r1, [r4, #8] + str r0, [r4] + b _0233EEB4 +_0233DAC4: + bl ov04_0233CB50 + mov r5, r0 + bl ov04_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #3 + bl FUN_02337658 + cmp r5, #3 + bne _0233DC88 + bl FUN_020434FC + mov r3, #0 + ldr r5, [r4, #0xc] + mov r2, r3 + b _0233DB0C +_0233DAFC: + add r1, r4, r3 + add r1, r1, #0x1000 + strb r2, [r1, #0x92e] + add r3, r3, #1 +_0233DB0C: + cmp r3, r0 + blt _0233DAFC + add r1, r4, #0x1000 + mov r8, #0 + str r8, [r1, #0xd18] + cmp r0, #0 + ble _0233DBD4 + add r0, r4, #0x118 + mov sb, r8 + add r5, r0, #0x1c00 + add r7, r4, #0x7c + mov r6, #1 + mov fp, #6 +_0233DB40: + lsl r0, sb, #0x10 + asr r0, r0, #0x10 + bl FUN_02043568 + tst r0, #1 + beq _0233DBB0 + mul sl, r8, fp + lsl r0, sb, #0x10 + asr r0, r0, #0x10 + add r1, r7, sl + bl FUN_0200FFF4 + cmp r0, #0 + beq _0233DBB0 + lsl r0, sb, #0x10 + asr r0, r0, #0x10 + bl FUN_020101A0 + add r0, r4, sl + ldrsh r0, [r0, #0x80] + cmp r0, #0xb4 + bne _0233DBAC + add r0, r7, sl + bl ov04_0233F4B0 + add r0, r4, r8 + add r0, r0, #0x1000 + strb r6, [r0, #0x92e] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] +_0233DBAC: + add r8, r8, #1 +_0233DBB0: + add sb, sb, #1 + cmp sb, #0x3e8 + blt _0233DB40 + bl FUN_0201007C + strh r8, [r4, #0x7a] + ldrh r1, [r4, #0x7a] + add r0, r4, #0x1800 + strh r1, [r0, #0x1c] + b _0233DC70 +_0233DBD4: + bl ov04_0233CAC8 + cmp r0, #0 + lsl r0, r5, #0x10 + asr r0, r0, #0x10 + bne _0233DC20 + add r1, r4, #0x70 + bl FUN_0200FFF4 + ldrsh r0, [r4, #0x74] + cmp r0, #0xb4 + bne _0233DC64 + add r0, r4, #0x70 + bl ov04_0233F4B0 + add r0, r4, #0x1000 + mov r1, #1 + strb r1, [r0, #0x92e] + ldr r1, [r0, #0xd18] + add r1, r1, #1 + str r1, [r0, #0xd18] + b _0233DC64 +_0233DC20: + add r1, r4, #0x7c + bl FUN_0200FFF4 + mov r1, #1 + strh r1, [r4, #0x7a] + add r0, r4, #0x1800 + strh r1, [r0, #0x1c] + ldrsh r0, [r4, #0x80] + cmp r0, #0xb4 + bne _0233DC64 + add r0, r4, #0x7c + bl ov04_0233F4B0 + add r0, r4, #0x1000 + mov r1, #1 + strb r1, [r0, #0x92e] + ldr r1, [r0, #0xd18] + add r1, r1, #1 + str r1, [r0, #0xd18] +_0233DC64: + lsl r0, r5, #0x10 + asr r0, r0, #0x10 + bl FUN_02010154 +_0233DC70: + bl FUN_0204317C + mvn r1, #1 + ldr r0, _0233E2AC @ =0x00001006 + strb r1, [r4, #8] + str r0, [r4] + b _0233EEB4 +_0233DC88: + cmp r5, #5 + bne _0233DCA8 + bl FUN_0204317C + mvn r1, #1 + ldr r0, _0233E2A8 @ =0x00001004 + strb r1, [r4, #8] + str r0, [r4] + b _0233EEB4 +_0233DCA8: + sub r0, r5, #7 + cmp r0, #1 + bhi _0233EEB4 + bl FUN_020433C0 + mvn r1, #0 + ldr r0, _0233E290 @ =0x00001002 + str r1, [r4, #0xc] + str r0, [r4] + b _0233EEB4 +_0233DCCC: + ldrsb r1, [r4, #8] + mvn r0, #1 + cmp r1, r0 + bne _0233DD48 + ldr r0, [r4, #0xc] + add r1, sp, #0x12 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_0200FFAC + add r0, sp, #0x9c + bl FUN_02023690 + ldrsh r2, [sp, #0x12] + ldrh r1, [sp, #0x14] + add r5, sp, #0x9c + add r0, r2, #0xd1 + add r0, r0, #0x2900 + lsl r0, r0, #0x10 + str r2, [sp, #0xac] + str r1, [sp, #0xc0] + str r5, [sp] + lsr r0, r0, #0x10 + str r0, [sp, #4] + ldr r0, _0233E2B0 @ =0x0233F614 + ldr r1, _0233E2B4 @ =0x00001013 + ldr r3, _0233E2B8 @ =0x000008E4 + mov r2, #0 + str r5, [sp, #8] + bl FUN_0202E3CC + ldr r1, _0233E25C @ =0x0233F644 + ldr r1, [r1] + strb r0, [r1, #8] +_0233DD48: + ldr r0, _0233E2BC @ =0x00001005 + str r0, [r4] + b _0233EEB4 +_0233DD54: + ldrsb r0, [r4, #8] + bl FUN_0202E6E4 + cmp r0, #0 + bne _0233EEB4 + ldr r0, _0233E25C @ =0x0233F644 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #8] + cmp r0, r1 + beq _0233DD90 + bl FUN_0202E6C8 + ldr r0, _0233E25C @ =0x0233F644 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #8] +_0233DD90: + mvn r0, #0 + str r0, [r4, #0xc] + bl FUN_02046D20 + ldr r0, _0233E264 @ =0x00001001 + str r0, [r4] + b _0233EEB4 +_0233DDA8: + mov r0, #0 + bl ov04_0233F294 + ldr r0, _0233E25C @ =0x0233F644 + ldr r1, _0233E2C0 @ =0x00001007 + ldr r0, [r0] + str r1, [r0] + b _0233EEB4 +_0233DDC4: + bl ov04_0233F2BC + cmp r0, #1 + moveq r0, #0x2000 + streq r0, [r4] + beq _0233EEB4 + cmp r0, #3 + moveq r0, #3 + beq _0233EEB8 + cmp r0, #2 + bne _0233EEB4 + mov r0, #2 + b _0233EEB8 +_0233DDF4: + bl ov04_0233CAC8 + cmp r0, #0 + bne _0233DED4 + ldr r2, [r4, #0x14] + mov r0, #5 + strb r0, [r2] + mov r1, #1 + strb r1, [r2, #1] + mov r1, #0xf + add r0, r4, #0x3ec + strb r1, [r4, #0x58] + add r1, r4, #0x1000 + mov r2, #0x11 + strb r2, [r1, #0x7ec] + add r5, r0, #0x1400 + bl FUN_020205A0 + strb r0, [r5, #2] + ldrsb r2, [r5, #2] + add r0, r4, #0x5c + mov r1, #0x1a + strb r2, [r4, #0x5a] + bl FUN_02337B3C + strb r0, [r4, #0x5b] + add r0, r5, #4 + mov r1, #0x14 + bl FUN_02337B3C + add r1, r4, #0x38 + strb r0, [r5, #3] + add r0, r1, #0x1800 + mov r1, #1 + str r0, [sp, #0x7c] + str r1, [sp, #0x78] + ldr r1, [r4, #4] + add r0, r4, #0x1000 + str r1, [sp, #0x88] + ldrb r1, [r0, #0x850] + mov r0, #0x20 + strb r1, [sp, #0x8c] + ldr r1, [r4, #0x14] + str r1, [sp, #0x90] + strh r0, [sp, #0x94] + bl ov04_0233CAA8 + cmp r0, #1 + moveq r0, #1 + movne r0, #0 + mov r2, #0 + strb r0, [sp, #0x96] + str r2, [sp, #0x98] + add r0, r4, #0x1900 + strh r2, [r0, #0x2a] + add r0, r4, #0x1000 + strb r2, [r0, #0x92c] + ldr r1, _0233E2C4 @ =0x00002001 + strb r2, [r0, #0x92d] + str r1, [r4] + b _0233DFB0 +_0233DED4: + ldr r1, [r4, #0x14] + mov r0, #8 + strb r0, [r1] + mov r0, #0 + strb r0, [r1, #1] + mov r2, #0x13 + strb r2, [r4, #0x76] + add r1, r4, #0x3ec + add r0, r4, #4 + add r2, r4, #0x1000 + mov r3, #0x14 + strb r3, [r2, #0x804] + mov r3, #0x11 + strb r3, [r2, #0x7ec] + add r6, r1, #0x1400 + add r5, r0, #0x1800 + bl FUN_020205A0 + strb r0, [r6, #2] + ldrsb r2, [r6, #2] + ldr r1, _0233E2C8 @ =0x00001772 + add r0, r4, #0x7a + strb r2, [r5, #2] + strb r2, [r4, #0x78] + bl FUN_02337B3C + strb r0, [r4, #0x79] + add r0, r5, #4 + mov r1, #0x16 + bl FUN_02337B3C + strb r0, [r5, #3] + add r0, r6, #4 + mov r1, #0x14 + bl FUN_02337B3C + add r1, r4, #0x820 + add r2, r4, #0x38 + strb r0, [r6, #3] + add r0, r2, #0x1800 + mov r2, #2 + add r1, r1, #0x1000 + str r2, [sp, #0x78] + str r0, [sp, #0x80] + str r1, [sp, #0x7c] + ldr r1, [r4, #4] + add r0, r4, #0x1000 + str r1, [sp, #0x88] + ldrb r0, [r0, #0x850] + mov r2, #0x20 + mov r1, #1 + strb r0, [sp, #0x8c] + ldr r3, [r4, #0x14] + ldr r0, _0233E2CC @ =0x00002011 + str r3, [sp, #0x90] + strh r2, [sp, #0x94] + strb r1, [sp, #0x96] + str r1, [sp, #0x98] + str r0, [r4] +_0233DFB0: + add r0, sp, #0x78 + add r1, r4, #0x1000 + mov r2, #0 + strb r2, [r1, #0x853] + bl FUN_02337BA0 + b _0233EEB4 +_0233DFC8: + bl FUN_02337E0C + movs r5, r0 + beq _0233EEB4 + add r0, sp, #0x400 + add r1, r4, #0x3ec + add r0, r0, #0x54 + add r7, r1, #0x1400 + bl FUN_02023690 + cmp r5, #0xe + addls pc, pc, r5, lsl #2 + b _0233EEB4 +_0233DFF4: @ jump table + b _0233EEB4 @ case 0 + b _0233E1B4 @ case 1 + b _0233EEB4 @ case 2 + b _0233EEB4 @ case 3 + b _0233E030 @ case 4 + b _0233E1B4 @ case 5 + b _0233E1B4 @ case 6 + b _0233E1B4 @ case 7 + b _0233E1B4 @ case 8 + b _0233E1B4 @ case 9 + b _0233E1B4 @ case 10 + b _0233E1B4 @ case 11 + b _0233E1B4 @ case 12 + b _0233E1B4 @ case 13 + b _0233E1B4 @ case 14 +_0233E030: + mov r0, #0x100 + mov r1, #0xf + bl FUN_02001170 + mov r5, r0 + mov r0, #0x100 + mov r1, #0xf + bl FUN_02001170 + mov r6, r0 + bl ov04_0233CAA8 + cmp r0, #0 + bne _0233E114 + bl ov04_0233F534 + add r0, r4, #0x1000 + ldrb r0, [r0, #0x92e] + cmp r0, #0 + beq _0233E084 + add r0, sp, #0x1c + mov r1, #0xb4 + mov r2, #0 + bl FUN_0200CF58 + b _0233E09C +_0233E084: + ldrh r0, [r4, #0x70] + strh r0, [sp, #0x1c] + ldrh r0, [r4, #0x72] + strh r0, [sp, #0x1e] + ldrh r0, [r4, #0x74] + strh r0, [sp, #0x20] +_0233E09C: + bl FUN_02337C54 + bl FUN_020205A0 + ldrsb r1, [r7, #2] + cmp r1, r0 + bne _0233E0C4 + mov r0, r5 + add r1, r7, #4 + mov r2, #0x14 + bl FUN_020251F4 + b _0233E0D0 +_0233E0C4: + ldr r1, _0233E2D0 @ =0x000038C9 + mov r0, r5 + bl FUN_020258B8 +_0233E0D0: + ldr r2, _0233E2D4 @ =0x0233F5F8 + mov r7, #0 + add r1, sp, #0x1c + mov r0, r6 + mov r3, #1 + str r7, [sp] + bl FUN_0200D310 + add r2, sp, #0x400 + ldr r1, _0233E2D8 @ =0x000037CC + add r2, r2, #0x54 + mov r0, #0x1c + str r5, [sp, #0x48c] + str r6, [sp, #0x490] + bl ov04_02046BE8 + mov r0, #0x4000 + str r0, [r4] + b _0233E1A0 +_0233E114: + bl ov04_0233CAA8 + cmp r0, #1 + bne _0233E1A0 + bl FUN_020205A0 + ldrsb r1, [r4, #0x5a] + cmp r1, r0 + bne _0233E144 + mov r0, r5 + add r1, r4, #0x5c + mov r2, #0x14 + bl FUN_020251F4 + b _0233E150 +_0233E144: + ldr r1, _0233E2D0 @ =0x000038C9 + mov r0, r5 + bl FUN_020258B8 +_0233E150: + mov r1, #0 + str r1, [sp] + ldr r2, _0233E2D4 @ =0x0233F5F8 + mov r0, r6 + add r1, r4, #0x70 + mov r3, #1 + bl FUN_0200D310 + add r2, sp, #0x400 + str r5, [sp, #0x48c] + str r6, [sp, #0x490] + add r0, r4, #0x1000 + mov r3, #1 + strb r3, [r0, #0x851] + mov r0, #0 + ldr r1, _0233E2DC @ =0x000037CE + add r2, r2, #0x54 + str r0, [r4, #0x10] + bl ov04_02046BE8 + mov r0, #0x5000 + str r0, [r4] +_0233E1A0: + mov r0, r5 + bl FUN_02001188 + mov r0, r6 + bl FUN_02001188 + b _0233EEB4 +_0233E1B4: + bl FUN_02337C54 + bl ov04_0233CAA8 + cmp r0, #0 + moveq r0, #0x3000 + streq r0, [r4] + beq _0233EEB4 + add r0, r4, #0x1900 + ldrh r0, [r0, #0x2a] + cmp r0, #0 + beq _0233E234 + add r0, sp, #0x400 + add r0, r0, #4 + bl FUN_02023690 + add r0, r4, #0x1900 + ldrh r1, [r0, #0x2a] + add r0, r4, #0x1000 + str r1, [sp, #0x428] + ldrb r1, [r0, #0x92c] + cmp r1, #0 + ldrne r1, _0233E2E0 @ =0x000037D3 + bne _0233E218 + ldrb r0, [r0, #0x92d] + cmp r0, #0 + ldrne r1, _0233E2E4 @ =0x000037D2 + ldreq r1, _0233E2E8 @ =0x000037D1 +_0233E218: + add r2, sp, #0x400 + add r2, r2, #4 + mov r0, #0x1c + bl ov04_02046BE8 + ldr r0, _0233E2EC @ =0x00005008 + str r0, [r4] + b _0233EEB4 +_0233E234: + mov r0, #1 + b _0233EEB8 +_0233E23C: + add r0, r4, #0x1000 + ldrb r0, [r0, #0x850] + cmp r0, #0 + mov r0, #1 + bne _0233E2FC + ldr r1, _0233E2F0 @ =0x0233EF28 + bl FUN_0232B5D0 + b _0233E304 + .align 2, 0 +_0233E25C: .4byte 0x0233F644 +_0233E260: .4byte 0x00002020 +_0233E264: .4byte 0x00001001 +_0233E268: .4byte 0x00005001 +_0233E26C: .4byte 0x00003002 +_0233E270: .4byte ov04_0233EF8C +_0233E274: .4byte 0x000037C1 +_0233E278: .4byte 0x02337B68 +_0233E27C: .4byte 0x000037C2 +_0233E280: .4byte 0x00001776 +_0233E284: .4byte ov04_0233F0A8 +_0233E288: .4byte ov04_0233F0E0 +_0233E28C: .4byte 0x0233C1DC +_0233E290: .4byte 0x00001002 +_0233E294: .4byte 0x0233F5DC +_0233E298: .4byte 0x0233F5D8 +_0233E29C: .4byte 0x0233F604 +_0233E2A0: .4byte 0x00000233 +_0233E2A4: .4byte 0x00001003 +_0233E2A8: .4byte 0x00001004 +_0233E2AC: .4byte 0x00001006 +_0233E2B0: .4byte 0x0233F614 +_0233E2B4: .4byte 0x00001013 +_0233E2B8: .4byte 0x000008E4 +_0233E2BC: .4byte 0x00001005 +_0233E2C0: .4byte 0x00001007 +_0233E2C4: .4byte 0x00002001 +_0233E2C8: .4byte 0x00001772 +_0233E2CC: .4byte 0x00002011 +_0233E2D0: .4byte 0x000038C9 +_0233E2D4: .4byte 0x0233F5F8 +_0233E2D8: .4byte 0x000037CC +_0233E2DC: .4byte 0x000037CE +_0233E2E0: .4byte 0x000037D3 +_0233E2E4: .4byte 0x000037D2 +_0233E2E8: .4byte 0x000037D1 +_0233E2EC: .4byte 0x00005008 +_0233E2F0: .4byte 0x0233EF28 +_0233E2F4: .4byte ov04_0233EF54 +_0233E2F8: .4byte 0x00002012 +_0233E2FC: + ldr r1, _0233E2F4 @ =ov04_0233EF54 + bl FUN_0232B5D0 +_0233E304: + bl FUN_02337E0C + cmp r0, #0xf + bne _0233E37C + add r0, r4, #0x1000 + ldrb r0, [r0, #0x850] + cmp r0, #0 + ldreq r0, _0233E2F8 @ =0x00002012 + streq r0, [r4] + beq _0233EEB4 + add r0, sp, #0x3b4 + bl FUN_02023690 + add r0, sp, #0x4c + mov r1, #0x2a + bl FUN_02003250 + add r1, r4, #8 + add r0, sp, #0x4c + add r1, r1, #0x1800 + mov r2, #0xa + bl FUN_020251F4 + add r3, sp, #0x4c + ldr r1, _0233EEC4 @ =0x000037C9 + add r2, sp, #0x3b4 + mov r0, #0 + str r3, [sp, #0x3ec] + bl ov04_02046BE8 + mov r0, #0 + bl FUN_02337D00 + ldr r0, _0233EEC8 @ =0x00002014 + str r0, [r4] + b _0233EEB4 +_0233E37C: + cmp r0, #0 + beq _0233EEB4 + cmp r0, #0xe + addls pc, pc, r0, lsl #2 + b _0233EEB4 +_0233E390: @ jump table + b _0233EEB4 @ case 0 + b _0233E41C @ case 1 + b _0233EEB4 @ case 2 + b _0233EEB4 @ case 3 + b _0233E3CC @ case 4 + b _0233E41C @ case 5 + b _0233E41C @ case 6 + b _0233E41C @ case 7 + b _0233E41C @ case 8 + b _0233E41C @ case 9 + b _0233E41C @ case 10 + b _0233E41C @ case 11 + b _0233E41C @ case 12 + b _0233E41C @ case 13 + b _0233E41C @ case 14 +_0233E3CC: + add r0, r4, #0x1000 + ldrb r1, [r0, #0x852] + cmp r1, #0 + bne _0233E40C + ldrb r0, [r0, #0x850] + cmp r0, #0 + mov r0, #0x1c + beq _0233E3F8 + ldr r1, _0233EECC @ =0x000037CB + bl ov04_0233CB84 + b _0233E400 +_0233E3F8: + ldr r1, _0233EED0 @ =0x000037CA + bl ov04_0233CB84 +_0233E400: + ldr r0, _0233EED4 @ =0x00002015 + str r0, [r4] + b _0233EEB4 +_0233E40C: + bl FUN_02337DD0 + ldr r0, _0233EED8 @ =0x00002016 + str r0, [r4] + b _0233EEB4 +_0233E41C: + bl FUN_02337C54 + bl ov04_0233CAA8 + cmp r0, #0 + moveq r0, #0x3000 + streq r0, [r4] + beq _0233EEB4 + mov r0, #1 + b _0233EEB8 +_0233E43C: + bl FUN_02337C90 + cmp r0, #0 + bne _0233E4E4 + add r0, r4, #0x1000 + ldrb r0, [r0, #0x853] + cmp r0, #0 + beq _0233E4E4 + add r0, sp, #0x364 + bl FUN_02023690 + add r0, sp, #0x22 + mov r1, #0x2a + bl FUN_02003250 + add r1, r4, #0x7f0 + add r0, sp, #0x22 + add r1, r1, #0x1000 + mov r2, #0x14 + bl FUN_020251F4 + add r1, sp, #0x22 + str r1, [sp, #0x39c] + add r0, sp, #0x2cc + mov r1, #0x98 + bl FUN_02003250 + mov r0, #4 + bl FUN_02337648 + ldr r2, _0233EEDC @ =0x0233F56C + ldr r1, _0233EEE0 @ =0x0233F568 + ldr r2, [r2, r0, lsl #3] + ldr r0, _0233EEE4 @ =0x000037C6 + str r2, [sp, #0x2cc] + str r1, [sp] + str r0, [sp, #4] + add r1, sp, #0x364 + mov r0, #0 + str r1, [sp, #8] + mov r1, r0 + mov r2, #0x31 + add r3, sp, #0x2cc + bl ov04_0233CB24 + mov r0, #0 + bl FUN_02337D00 + ldr r0, _0233EEE8 @ =0x00002013 + str r0, [r4] +_0233E4E4: + bl FUN_02337E0C + movs r5, r0 + cmpne r5, #0xf + beq _0233EEB4 + bl FUN_02337C54 + cmp r5, #0xf + addls pc, pc, r5, lsl #2 + b _0233EEB4 +_0233E504: @ jump table + b _0233EEB4 @ case 0 + b _0233E544 @ case 1 + b _0233EEB4 @ case 2 + b _0233EEB4 @ case 3 + b _0233EEB4 @ case 4 + b _0233E544 @ case 5 + b _0233E544 @ case 6 + b _0233E544 @ case 7 + b _0233E544 @ case 8 + b _0233E544 @ case 9 + b _0233E544 @ case 10 + b _0233E544 @ case 11 + b _0233E544 @ case 12 + b _0233E544 @ case 13 + b _0233E544 @ case 14 + b _0233EEB4 @ case 15 +_0233E544: + bl ov04_0233CAA8 + cmp r0, #0 + moveq r0, #0x3000 + streq r0, [r4] + beq _0233EEB4 + mov r0, #1 + b _0233EEB8 +_0233E560: + bl FUN_02337C90 + cmp r0, #0 + bne _0233E5F4 + bl ov04_0233CB50 + mov r5, r0 + bl ov04_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #4 + bl FUN_02337658 + cmp r5, #3 + bne _0233E5BC + mov r0, #1 + add r2, sp, #0xe + mov r1, r0 + strb r0, [sp, #0xe] + add r3, r4, #0x1000 + strb r0, [r3, #0x852] + bl FUN_0232B540 + bl FUN_02337CAC + ldr r0, _0233E2CC @ =0x00002011 + str r0, [r4] + b _0233E5F4 +_0233E5BC: + sub r0, r5, #7 + cmp r0, #1 + bhi _0233E5F4 + mov r5, #0 + mov r0, #1 + add r2, sp, #0xd + mov r1, r0 + strb r5, [sp, #0xd] + add r3, r4, #0x1000 + strb r5, [r3, #0x852] + bl FUN_0232B540 + bl FUN_02337CAC + ldr r0, _0233E2CC @ =0x00002011 + str r0, [r4] +_0233E5F4: + bl FUN_02337E0C + movs r5, r0 + cmpne r5, #0xf + beq _0233EEB4 + bl FUN_02337C54 + cmp r5, #0xf + addls pc, pc, r5, lsl #2 + b _0233EEB4 +_0233E614: @ jump table + b _0233EEB4 @ case 0 + b _0233E654 @ case 1 + b _0233EEB4 @ case 2 + b _0233EEB4 @ case 3 + b _0233EEB4 @ case 4 + b _0233E654 @ case 5 + b _0233E654 @ case 6 + b _0233E654 @ case 7 + b _0233E654 @ case 8 + b _0233E654 @ case 9 + b _0233E654 @ case 10 + b _0233E654 @ case 11 + b _0233E654 @ case 12 + b _0233E654 @ case 13 + b _0233E654 @ case 14 + b _0233EEB4 @ case 15 +_0233E654: + bl ov04_0233CAA8 + cmp r0, #0 + moveq r0, #0x3000 + streq r0, [r4] + beq _0233EEB4 + mov r0, #1 + b _0233EEB8 +_0233E670: + bl FUN_02337C90 + cmp r0, #0 + bne _0233E6D4 + bl ov04_0233CBA0 + cmp r0, #8 + bne _0233E6D4 + bl FUN_0200FD48 + mov r5, r0 + bl FUN_0200FD78 + add r1, r4, #0x1800 + ldrh r1, [r1, #0x1c] + sub r0, r5, r0 + add r2, sp, #0xc + cmp r1, r0 + movle r1, #0 + strble r1, [sp, #0xc] + movgt r1, #1 + strbgt r1, [sp, #0xc] + add r0, r4, #0x1000 + strb r1, [r0, #0x854] + mov r0, #1 + mov r1, r0 + bl FUN_0232B540 + cmp r0, #0 + beq _0233EEB4 +_0233E6D4: + bl FUN_02337E0C + movs r5, r0 + cmpne r5, #0xf + beq _0233EEB4 + bl FUN_02337C54 + cmp r5, #0xe + addls pc, pc, r5, lsl #2 + b _0233EEB4 +_0233E6F4: @ jump table + b _0233EEB4 @ case 0 + b _0233E730 @ case 1 + b _0233EEB4 @ case 2 + b _0233EEB4 @ case 3 + b _0233EEB4 @ case 4 + b _0233E730 @ case 5 + b _0233E730 @ case 6 + b _0233E730 @ case 7 + b _0233E730 @ case 8 + b _0233E730 @ case 9 + b _0233E730 @ case 10 + b _0233E730 @ case 11 + b _0233E730 @ case 12 + b _0233E730 @ case 13 + b _0233E730 @ case 14 +_0233E730: + bl ov04_0233CAA8 + cmp r0, #0 + moveq r0, #0x3000 + streq r0, [r4] + beq _0233EEB4 + mov r0, #1 + b _0233EEB8 +_0233E74C: + bl ov04_0233CBA0 + cmp r0, #8 + bne _0233EEB4 + bl FUN_02337D30 + add r0, r4, #0x1000 + mov r2, #0 + ldr r1, _0233E2CC @ =0x00002011 + strb r2, [r0, #0x853] + str r1, [r4] + b _0233EEB4 +_0233E774: + bl FUN_02337E0C + cmp r0, #0 + beq _0233EEB4 + bl FUN_02337C54 + add r0, r4, #0x1000 + ldrb r1, [r0, #0x854] + cmp r1, #0 + beq _0233E828 + ldrb r0, [r0, #0x850] + cmp r0, #0 + beq _0233E7B0 + ldr r1, _0233EEEC @ =0x000037D0 + mov r0, #0x1c + bl ov04_0233CB84 + b _0233E81C +_0233E7B0: + add r0, sp, #0x27c + bl FUN_02023690 + mov r0, #0x100 + mov r1, #0xf + bl FUN_02001170 + mov r5, r0 + bl FUN_020205A0 + add r1, r4, #0x1700 + ldrsb r1, [r1, #0xee] + cmp r1, r0 + bne _0233E7F4 + add r1, r4, #0x7f0 + mov r0, r5 + add r1, r1, #0x1000 + mov r2, #0x14 + bl FUN_020251F4 + b _0233E800 +_0233E7F4: + ldr r1, _0233E2D0 @ =0x000038C9 + mov r0, r5 + bl FUN_020258B8 +_0233E800: + ldr r1, _0233EEF0 @ =0x000037D4 + add r2, sp, #0x27c + mov r0, #0x1c + str r5, [sp, #0x2b4] + bl ov04_02046BE8 + mov r0, r5 + bl FUN_02001188 +_0233E81C: + ldr r0, _0233E260 @ =0x00002020 + str r0, [r4] + b _0233EEB4 +_0233E828: + add r1, r4, #4 + add r2, r4, #0x3ec + add r0, sp, #0x22c + add r7, r1, #0x1800 + add r8, r2, #0x1400 + bl FUN_02023690 + mov r0, #0x100 + mov r1, #0xf + bl FUN_02001170 + mov r5, r0 + mov r0, #0x100 + mov r1, #0xf + bl FUN_02001170 + add r1, r4, #0x1000 + ldrb r2, [r1, #0x850] + mov r6, r0 + cmp r2, #0 + bne _0233E938 + ldrb r0, [r1, #0x92e] + cmp r0, #0 + beq _0233E890 + add r0, sp, #0x16 + mov r1, #0xb4 + mov r2, #0 + bl FUN_0200CF58 + b _0233E8A8 +_0233E890: + ldrh r0, [r4, #0x7c] + strh r0, [sp, #0x16] + ldrh r0, [r4, #0x7e] + strh r0, [sp, #0x18] + ldrh r0, [r4, #0x80] + strh r0, [sp, #0x1a] +_0233E8A8: + bl FUN_020205A0 + ldrsb r1, [r8, #2] + cmp r1, r0 + bne _0233E8CC + mov r0, r5 + add r1, r8, #4 + mov r2, #0x14 + bl FUN_020251F4 + b _0233E8D8 +_0233E8CC: + ldr r1, _0233E2D0 @ =0x000038C9 + mov r0, r5 + bl FUN_020258B8 +_0233E8D8: + mov r3, #0 + str r3, [sp] + ldr r2, _0233E2D4 @ =0x0233F5F8 + add r1, sp, #0x16 + mov r0, r6 + mov r3, #1 + bl FUN_0200D310 + str r5, [sp, #0x264] + str r6, [sp, #0x268] + ldrh r0, [r4, #0x7a] + add r2, sp, #0x22c + str r0, [sp, #0x250] + ldrh r0, [r4, #0x7a] + cmp r0, #1 + ldrhi r0, _0233EEF4 @ =0x000037CD + ldrls r0, _0233E2D8 @ =0x000037CC + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + mov r0, #0x1c + bl ov04_02046BE8 + bl ov04_0233F534 + mov r0, #0x4000 + str r0, [r4] + b _0233E9C0 +_0233E938: + bl FUN_020205A0 + ldrsb r1, [r7, #2] + cmp r1, r0 + bne _0233E95C + mov r0, r5 + add r1, r7, #4 + mov r2, #0x14 + bl FUN_020251F4 + b _0233E968 +_0233E95C: + ldr r1, _0233E2D0 @ =0x000038C9 + mov r0, r5 + bl FUN_020258B8 +_0233E968: + mov r1, #0 + str r1, [sp] + ldr r2, _0233E2D4 @ =0x0233F5F8 + mov r0, r6 + add r1, r4, #0x7c + mov r3, #1 + bl FUN_0200D310 + str r5, [sp, #0x264] + str r6, [sp, #0x268] + ldrh r0, [r4, #0x7a] + add r2, sp, #0x22c + str r0, [sp, #0x250] + ldrh r0, [r4, #0x7a] + cmp r0, #1 + ldrhi r0, _0233EEF8 @ =0x000037CF + ldrls r0, _0233E2DC @ =0x000037CE + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + mov r0, #0x1c + bl ov04_02046BE8 + mov r0, #0x5000 + str r0, [r4] +_0233E9C0: + mov r0, r5 + bl FUN_02001188 + mov r0, r6 + bl FUN_02001188 + b _0233EEB4 +_0233E9D4: + bl ov04_0233CBA0 + cmp r0, #8 + bne _0233EEB4 + add r0, r4, #0x1000 + ldrb r0, [r0, #0x850] + cmp r0, #0 + movne r0, #1 + bne _0233EEB8 + mov r0, #0x3000 + str r0, [r4] + b _0233EEB4 +_0233EA00: + mov r0, #0x100 + mov r1, #0xf + bl FUN_02001170 + mov r8, r0 + add r0, sp, #0x1dc + bl FUN_02023690 + bl ov04_0233CAC8 + cmp r0, #0 + bne _0233EA78 + add r0, r4, #0x1000 + ldrb r0, [r0, #0x92e] + cmp r0, #0 + beq _0233EA44 + add r0, r4, #0x70 + mov r1, #0xb4 + mov r2, #0 + bl FUN_0200CF58 +_0233EA44: + ldr r2, _0233E2D4 @ =0x0233F5F8 + mov r5, #0 + mov r0, r8 + add r1, r4, #0x70 + mov r3, #1 + str r5, [sp] + bl FUN_0200D310 + ldr r1, _0233EEFC @ =0x000038A6 + add r2, sp, #0x1dc + mov r0, #0x1c + str r8, [sp, #0x214] + bl ov04_02046BE8 + b _0233EB0C +_0233EA78: + mov sb, #0 + add r7, r4, #0x7c + mov r6, #0xb4 + mov r5, sb + mov sl, #6 + b _0233EAB8 +_0233EA90: + add r0, r4, sb + add r0, r0, #0x1000 + ldrb r0, [r0, #0x92e] + cmp r0, #0 + beq _0233EAB4 + mla r0, sb, sl, r7 + mov r1, r6 + mov r2, r5 + bl FUN_0200CF58 +_0233EAB4: + add sb, sb, #1 +_0233EAB8: + ldrh r0, [r4, #0x7a] + cmp sb, r0 + blt _0233EA90 + cmp r0, #1 + bls _0233EADC + ldr r1, _0233EF00 @ =0x000037D5 + mov r0, #0x1c + bl ov04_0233CB84 + b _0233EB0C +_0233EADC: + ldr r2, _0233E2D4 @ =0x0233F5F8 + mov r5, #0 + mov r0, r8 + add r1, r4, #0x7c + mov r3, #1 + str r5, [sp] + bl FUN_0200D310 + ldr r1, _0233EEFC @ =0x000038A6 + add r2, sp, #0x1dc + mov r0, #0x1c + str r8, [sp, #0x214] + bl ov04_02046BE8 +_0233EB0C: + mov r0, r8 + bl FUN_02001188 + ldr r0, _0233EF04 @ =0x00003001 + str r0, [r4] + b _0233EEB4 +_0233EB20: + bl ov04_0233CBA0 + cmp r0, #8 + bne _0233EEB4 + bl ov04_0233CAC8 + cmp r0, #0 + bne _0233EB50 + add r0, r4, #0x70 + bl FUN_020103AC + mov r0, #0 + strh r0, [r4, #0x74] + strh r0, [r4, #0x72] + b _0233EB8C +_0233EB50: + mov r8, #0 + add r7, r4, #0x7c + mov r6, r8 + mov r5, #6 + b _0233EB80 +_0233EB64: + mul sb, r8, r5 + add r0, r7, sb + bl FUN_020103AC + add r0, r4, sb + strh r6, [r0, #0x80] + strh r6, [r0, #0x7e] + add r8, r8, #1 +_0233EB80: + ldrh r0, [r4, #0x7a] + cmp r8, r0 + blt _0233EB64 +_0233EB8C: + ldr r0, _0233E26C @ =0x00003002 + str r0, [r4] + b _0233EEB4 +_0233EB98: + mov r0, #0 + bl ov04_0233F294 + ldr r0, _0233EF08 @ =0x00003003 + str r0, [r4] + b _0233EEB4 +_0233EBAC: + bl ov04_0233F2BC + cmp r0, #1 + moveq r0, #1 + beq _0233EEB8 + cmp r0, #3 + moveq r0, #3 + beq _0233EEB8 + cmp r0, #2 + bne _0233EEB4 + mov r0, #2 + b _0233EEB8 +_0233EBD8: + bl ov04_0233CBA0 + cmp r0, #8 + bne _0233EEB4 + mov r0, #2 + b _0233EEB8 +_0233EBEC: + bl ov04_0233CBA0 + mov r5, r0 + bl ov04_0233CAC8 + cmp r0, #0 + bne _0233EC44 + ldr r0, [r4, #0x10] + add r0, r0, #1 + str r0, [r4, #0x10] + cmp r0, #0xb4 + ble _0233EEB4 + bl ov04_0233CAE8 + cmp r0, #0 + beq _0233EC38 + ldrsh r0, [r4, #0x74] + bl FUN_0200D8E4 + cmp r0, #0 + ldrne r0, _0233EF0C @ =0x00005003 + strne r0, [r4] + bne _0233EEB4 +_0233EC38: + ldr r0, _0233EF10 @ =0x00005005 + str r0, [r4] + b _0233EEB4 +_0233EC44: + cmp r5, #8 + bne _0233EEB4 + add r0, sp, #0x18c + bl FUN_02023690 + ldrh r3, [r4, #0x7a] + ldr r1, _0233E2E8 @ =0x000037D1 + add r2, sp, #0x18c + mov r0, #0x1c + str r3, [sp, #0x1b0] + bl ov04_02046BE8 + mov r7, #0 + add r6, r4, #0x7c + mov r5, #6 + b _0233EC88 +_0233EC7C: + mla r0, r7, r5, r6 + bl FUN_020103AC + add r7, r7, #1 +_0233EC88: + ldrh r0, [r4, #0x7a] + cmp r7, r0 + blt _0233EC7C + add r0, r4, #0x1000 + mov r1, #1 + strb r1, [r0, #0x851] + mov r1, #0 + ldr r0, _0233E2EC @ =0x00005008 + str r1, [r4, #0x10] + str r0, [r4] + b _0233EEB4 +_0233ECB4: + add r0, r4, #0x58 + add r0, r0, #0x1800 + bl FUN_0206351C + add r3, r4, #0x1000 + mov r0, #2 + strb r0, [r3, #0x85a] + ldrsh r2, [r4, #0x74] + add r1, r4, #0x1800 + add r0, r4, #0x58 + strh r2, [r1, #0x6c] + ldrh r5, [r4, #0x72] + mov r2, #1 + add r0, r0, #0x1800 + strh r5, [r1, #0x6a] + str r2, [r3, #0x864] + mov r1, #0 + mov r2, #0x10 + str r1, [r3, #0x880] + bl FUN_0203D438 + ldr r0, _0233EF14 @ =0x00005002 + str r0, [r4] + b _0233EEB4 +_0233ED0C: + bl FUN_0203D538 + cmp r0, #1 + bne _0233EEB4 + bl FUN_0203EFD4 + ldr r0, _0233EF18 @ =0x00005006 + str r0, [r4] + b _0233EEB4 +_0233ED28: + add r0, sp, #0x13c + bl FUN_02023690 + ldrsh r0, [r4, #0x74] + str r0, [sp, #0x14c] + ldrsh r0, [r4, #0x74] + bl FUN_0200D8E4 + strh r0, [r4, #0x74] + ldrsh r3, [r4, #0x74] + ldr r1, _0233EF1C @ =0x000037DA + add r2, sp, #0x13c + mov r0, #0 + str r3, [sp, #0x150] + bl ov04_02046BE8 + ldr r1, _0233EF20 @ =0x00005004 + mov r0, #0 + str r1, [r4] + str r0, [r4, #0x10] + b _0233EEB4 +_0233ED70: + bl ov04_0233CBA0 + ldr r0, [r4, #0x10] + add r0, r0, #1 + str r0, [r4, #0x10] + cmp r0, #0xb4 + ldrgt r0, _0233EF10 @ =0x00005005 + strgt r0, [r4] + b _0233EEB4 +_0233ED90: + add r0, r4, #0x70 + bl FUN_020103AC + add r0, r4, #0x1900 + ldrh r2, [r0, #0x2a] + ldr r1, _0233EF18 @ =0x00005006 + add r2, r2, #1 + strh r2, [r0, #0x2a] + str r1, [r4] +_0233EDB0: + bl ov04_0233CAC8 + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + and r0, r0, #0xff + bl ov04_0233F294 + ldr r0, _0233EF24 @ =0x00005007 + str r0, [r4] + b _0233EEB4 +_0233EDD4: + bl ov04_0233F2BC + cmp r0, #1 + bne _0233EE74 + bl ov04_0233CAC8 + cmp r0, #0 + bne _0233EE6C + ldr r0, _0233E25C @ =0x0233F644 + ldr r0, [r0] + add r0, r0, #0x1000 + ldrb r0, [r0, #0x928] + bl FUN_0204316C + bl FUN_02043380 + cmp r0, #0 + beq _0233EE28 + bl FUN_02337DD0 + mov r1, #1 + add r0, r4, #0x1000 + strb r1, [r0, #0x92c] + add r0, r1, #0x2000 + str r0, [r4] + b _0233EEB4 +_0233EE28: + bl FUN_02003B5C + cmp r0, #0 + beq _0233EE50 + bl FUN_02337DD0 + ldr r0, _0233E25C @ =0x0233F644 + mov r1, #1 + ldr r0, [r0] + add r0, r0, #0x1000 + strb r1, [r0, #0x92d] + b _0233EE60 +_0233EE50: + bl FUN_02337D30 + add r0, r4, #0x1000 + mov r1, #0 + strb r1, [r0, #0x853] +_0233EE60: + ldr r0, _0233E2C4 @ =0x00002001 + str r0, [r4] + b _0233EEB4 +_0233EE6C: + mov r0, #2 + b _0233EEB8 +_0233EE74: + cmp r0, #3 + moveq r0, #3 + beq _0233EEB8 + cmp r0, #2 + bne _0233EEB4 + mov r0, #2 + b _0233EEB8 +_0233EE90: + bl ov04_0233CBA0 + cmp r0, #8 + bne _0233EEB4 + bl ov04_0233CAC8 + cmp r0, #0 + moveq r0, #2 + beq _0233EEB8 + ldr r0, _0233EF18 @ =0x00005006 + str r0, [r4] +_0233EEB4: + mov r0, #0 +_0233EEB8: + add sp, sp, #0xa4 + add sp, sp, #0x400 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0233EEC4: .4byte 0x000037C9 +_0233EEC8: .4byte 0x00002014 +_0233EECC: .4byte 0x000037CB +_0233EED0: .4byte 0x000037CA +_0233EED4: .4byte 0x00002015 +_0233EED8: .4byte 0x00002016 +_0233EEDC: .4byte 0x0233F56C +_0233EEE0: .4byte 0x0233F568 +_0233EEE4: .4byte 0x000037C6 +_0233EEE8: .4byte 0x00002013 +_0233EEEC: .4byte 0x000037D0 +_0233EEF0: .4byte 0x000037D4 +_0233EEF4: .4byte 0x000037CD +_0233EEF8: .4byte 0x000037CF +_0233EEFC: .4byte 0x000038A6 +_0233EF00: .4byte 0x000037D5 +_0233EF04: .4byte 0x00003001 +_0233EF08: .4byte 0x00003003 +_0233EF0C: .4byte 0x00005003 +_0233EF10: .4byte 0x00005005 +_0233EF14: .4byte 0x00005002 +_0233EF18: .4byte 0x00005006 +_0233EF1C: .4byte 0x000037DA +_0233EF20: .4byte 0x00005004 +_0233EF24: .4byte 0x00005007 + arm_func_end ov04_0233D964 +_0233EF28: + .byte 0x20, 0x20, 0x9F, 0xE5, 0x00, 0x30, 0xD1, 0xE5 + .byte 0x00, 0x00, 0x92, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x01, 0x0A, 0x80, 0xE2, 0x54, 0x38, 0xC0, 0xE5 + .byte 0x00, 0x00, 0x92, 0xE5, 0x01, 0x0A, 0x80, 0xE2, 0x53, 0x18, 0xC0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x44, 0xF6, 0x33, 0x02 + + arm_func_start ov04_0233EF54 +ov04_0233EF54: @ 0x0233EF54 + push {r4, lr} + mov r4, r1 + bl FUN_02337CAC + ldr r1, _0233EF84 @ =0x0233F644 + ldrb r3, [r4] + ldr r0, [r1] + ldr r2, _0233EF88 @ =0x00002011 + add r0, r0, #0x1000 + strb r3, [r0, #0x852] + ldr r0, [r1] + str r2, [r0] + pop {r4, pc} + .align 2, 0 +_0233EF84: .4byte 0x0233F644 +_0233EF88: .4byte 0x00002011 + arm_func_end ov04_0233EF54 + + arm_func_start ov04_0233EF8C +ov04_0233EF8C: @ 0x0233EF8C + push {r4, lr} + mov r4, r0 + bl ov04_0233CAA8 + cmp r0, #1 + bne _0233F0A0 + add r0, r4, #4 + mov r1, #0x1a + bl FUN_02337B3C + ldrb r1, [r4, #3] + cmp r0, r1 + movne r0, #3 + popne {r4, pc} + ldrb r0, [r4] + cmp r0, #0xf + movne r0, #2 + popne {r4, pc} + ldrsh r0, [r4, #0x1c] + cmp r0, #0 + beq _0233F098 + ldrsh r0, [r4, #0x1c] + bl FUN_0200EB58 + cmp r0, #0 + beq _0233EFFC + ldrsh r0, [r4, #0x1c] + mov r1, #0 + bl FUN_02062DDC + cmp r0, #0 + bne _0233F004 +_0233EFFC: + mov r0, #6 + pop {r4, pc} +_0233F004: + ldrsh r0, [r4, #0x1c] + bl FUN_0200E808 + cmp r0, #0xc + bgt _0233F034 + bge _0233F06C + cmp r0, #1 + bgt _0233F098 + cmp r0, #0 + blt _0233F098 + cmpne r0, #1 + beq _0233F050 + b _0233F098 +_0233F034: + cmp r0, #0xe + bgt _0233F098 + cmp r0, #0xd + blt _0233F098 + cmpne r0, #0xe + beq _0233F06C + b _0233F098 +_0233F050: + ldrh r0, [r4, #0x1a] + cmp r0, #0 + beq _0233F064 + cmp r0, #0x64 + blo _0233F098 +_0233F064: + mov r0, #6 + pop {r4, pc} +_0233F06C: + ldrsh r0, [r4, #0x1a] + bl FUN_0200EB58 + cmp r0, #0 + beq _0233F090 + ldrsh r0, [r4, #0x1a] + mov r1, #0 + bl FUN_02062DDC + cmp r0, #0 + bne _0233F098 +_0233F090: + mov r0, #6 + pop {r4, pc} +_0233F098: + mov r0, #1 + pop {r4, pc} +_0233F0A0: + mov r0, #0 + pop {r4, pc} + arm_func_end ov04_0233EF8C + + arm_func_start ov04_0233F0A8 +ov04_0233F0A8: @ 0x0233F0A8 + push {r4, lr} + mov r4, r0 + add r0, r4, #4 + mov r1, #0x16 + bl FUN_02337B3C + ldrb r1, [r4] + cmp r1, #0x14 + movne r0, #2 + popne {r4, pc} + ldrb r1, [r4, #3] + cmp r0, r1 + movne r0, #3 + moveq r0, #1 + pop {r4, pc} + arm_func_end ov04_0233F0A8 + + arm_func_start ov04_0233F0E0 +ov04_0233F0E0: @ 0x0233F0E0 + push {r3, r4, r5, r6, r7, r8, sb, lr} + mov r5, r0 + bl ov04_0233CAA8 + cmp r0, #1 + bne _0233F284 + ldr r1, _0233F28C @ =0x00001772 + add r0, r5, #4 + bl FUN_02337B3C + ldrb r1, [r5, #3] + cmp r0, r1 + movne r0, #3 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + ldrb r0, [r5] + cmp r0, #0x13 + movne r0, #2 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + ldrh r0, [r5, #4] + cmp r0, #0x3e8 + movhi r0, #6 + pophi {r3, r4, r5, r6, r7, r8, sb, pc} + ldr r0, _0233F290 @ =0x0233F644 + ldr r0, [r0] + add r0, r0, #0x1000 + ldrb r1, [r0, #0x852] + cmp r1, #0 + beq _0233F154 + ldrb r0, [r0, #0x854] + cmp r0, #0 + beq _0233F188 +_0233F154: + mov r3, #0 + mov r2, r3 + mov r0, #6 + b _0233F170 +_0233F164: + mla r1, r3, r0, r5 + strh r2, [r1, #0xa] + add r3, r3, #1 +_0233F170: + ldrh r1, [r5, #4] + cmp r3, r1 + blt _0233F164 + mov r0, #0 + strh r0, [r5, #4] + b _0233F27C +_0233F188: + mov r8, #1 + mov r4, #0 + mov r7, r8 + mov r6, #6 + b _0233F270 +_0233F19C: + mla sb, r4, r6, r5 + ldrsh r0, [sb, #0xa] + cmp r0, #0 + beq _0233F26C + ldrsh r0, [sb, #0xa] + bl FUN_0200EB58 + cmp r0, #0 + beq _0233F1D0 + ldrsh r0, [sb, #0xa] + mov r1, r8 + bl FUN_02062DDC + cmp r0, #0 + bne _0233F1D8 +_0233F1D0: + mov r0, #6 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_0233F1D8: + ldrsh r0, [sb, #0xa] + bl FUN_0200E808 + cmp r0, #0xc + bgt _0233F208 + bge _0233F240 + cmp r0, #1 + bgt _0233F26C + cmp r0, #0 + blt _0233F26C + cmpne r0, #1 + beq _0233F224 + b _0233F26C +_0233F208: + cmp r0, #0xe + bgt _0233F26C + cmp r0, #0xd + blt _0233F26C + cmpne r0, #0xe + beq _0233F240 + b _0233F26C +_0233F224: + ldrh r0, [sb, #8] + cmp r0, #0 + beq _0233F238 + cmp r0, #0x64 + blo _0233F26C +_0233F238: + mov r0, #6 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_0233F240: + ldrsh r0, [sb, #8] + bl FUN_0200EB58 + cmp r0, #0 + beq _0233F264 + ldrsh r0, [sb, #8] + mov r1, r7 + bl FUN_02062DDC + cmp r0, #0 + bne _0233F26C +_0233F264: + mov r0, #6 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_0233F26C: + add r4, r4, #1 +_0233F270: + ldrh r0, [r5, #4] + cmp r4, r0 + blt _0233F19C +_0233F27C: + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_0233F284: + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0233F28C: .4byte 0x00001772 +_0233F290: .4byte 0x0233F644 + arm_func_end ov04_0233F0E0 + + arm_func_start ov04_0233F294 +ov04_0233F294: @ 0x0233F294 + ldr r2, _0233F2B8 @ =0x0233F644 + mov r3, #0 + ldr r1, [r2] + add r1, r1, #0x1000 + strb r0, [r1, #0x921] + ldr r0, [r2] + add r0, r0, #0x1000 + str r3, [r0, #0x924] + bx lr + .align 2, 0 +_0233F2B8: .4byte 0x0233F644 + arm_func_end ov04_0233F294 + + arm_func_start ov04_0233F2BC +ov04_0233F2BC: @ 0x0233F2BC + push {r3, r4, r5, lr} + ldr r0, _0233F4A4 @ =0x0233F644 + ldr r5, [r0] + add r0, r5, #0x1000 + ldr r0, [r0, #0x924] + cmp r0, #4 + addls pc, pc, r0, lsl #2 + b _0233F49C +_0233F2DC: @ jump table + b _0233F2F0 @ case 0 + b _0233F308 @ case 1 + b _0233F360 @ case 2 + b _0233F424 @ case 3 + b _0233F460 @ case 4 +_0233F2F0: + ldr r1, _0233F4A8 @ =0x0000023B + mov r0, #0 + bl ov04_0233CB84 + add r0, r5, #0x1000 + mov r1, #1 + str r1, [r0, #0x924] +_0233F308: + bl ov04_0233CBA0 + cmp r0, #8 + bne _0233F49C + mov r0, #0xe0 + mov r1, #0x88 + mov r2, #1 + bl FUN_02029F88 + bl FUN_02003BEC + ldr r2, _0233F4A4 @ =0x0233F644 + ldr r1, [r2] + add r1, r1, #0x1000 + strb r0, [r1, #0xd24] + ldr r0, [r2] + add r0, r0, #0x1000 + ldrb r0, [r0, #0xd24] + cmp r0, #0 + beq _0233F350 + bl FUN_02003B94 +_0233F350: + add r0, r5, #0x1000 + mov r1, #2 + str r1, [r0, #0x924] + b _0233F49C +_0233F360: + mov r0, #3 + bl FUN_02048F84 + ldr r1, _0233F4A4 @ =0x0233F644 + mov r4, r0 + ldr r0, [r1] + add r0, r0, #0x1000 + ldrb r0, [r0, #0xd24] + cmp r0, #0 + beq _0233F39C + bl FUN_02003BC8 + ldr r0, _0233F4A4 @ =0x0233F644 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x1000 + strb r1, [r0, #0xd24] +_0233F39C: + bl FUN_02029FBC + cmp r4, #0 + bne _0233F3E0 + mov r1, #0 + str r1, [r5, #0x10] + add r0, r5, #0x1000 + ldrb r0, [r0, #0x921] + cmp r0, #0 + moveq r1, #0x1c + lsl r0, r1, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x23c + bl ov04_0233CB84 + add r0, r5, #0x1000 + mov r1, #3 + str r1, [r0, #0x924] + b _0233F49C +_0233F3E0: + cmp r4, #1 + moveq r0, #3 + popeq {r3, r4, r5, pc} + mov r1, #0 + str r1, [r5, #0x10] + add r0, r5, #0x1000 + ldrb r0, [r0, #0x921] + cmp r0, #0 + moveq r1, #0x1c + lsl r0, r1, #0x10 + ldr r1, _0233F4AC @ =0x00000239 + lsr r0, r0, #0x10 + bl ov04_0233CB84 + add r0, r5, #0x1000 + mov r1, #4 + str r1, [r0, #0x924] + b _0233F49C +_0233F424: + bl ov04_0233CBA0 + add r1, r5, #0x1000 + ldrb r1, [r1, #0x921] + cmp r1, #0 + cmpeq r0, #8 + beq _0233F458 + cmp r1, #0 + beq _0233F49C + ldr r0, [r5, #0x10] + add r0, r0, #1 + str r0, [r5, #0x10] + cmp r0, #0xb4 + ble _0233F49C +_0233F458: + mov r0, #1 + pop {r3, r4, r5, pc} +_0233F460: + bl ov04_0233CBA0 + add r1, r5, #0x1000 + ldrb r1, [r1, #0x921] + cmp r1, #0 + cmpeq r0, #8 + beq _0233F494 + cmp r1, #0 + beq _0233F49C + ldr r0, [r5, #0x10] + add r0, r0, #1 + str r0, [r5, #0x10] + cmp r0, #0xb4 + ble _0233F49C +_0233F494: + mov r0, #2 + pop {r3, r4, r5, pc} +_0233F49C: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_0233F4A4: .4byte 0x0233F644 +_0233F4A8: .4byte 0x0000023B +_0233F4AC: .4byte 0x00000239 + arm_func_end ov04_0233F2BC + + arm_func_start ov04_0233F4B0 +ov04_0233F4B0: @ 0x0233F4B0 + push {r3, r4, r5, r6, r7, r8, sb, lr} + ldr r5, _0233F530 @ =0x0233F644 + mov r4, r0 + mov r6, #0 + mov r7, #0x400 +_0233F4C4: + ldr r1, [r5] + mov r0, r7 + add r1, r1, #0x1000 + ldr r1, [r1, #0xd1c] + add r8, r1, #2 + ldrsh sb, [r1] + bl FUN_02002274 + b _0233F4F8 +_0233F4E4: + ldrsh r1, [r8] + cmp r0, r1 + blt _0233F500 + add r8, r8, #4 + sub sb, sb, #1 +_0233F4F8: + cmp sb, #1 + bgt _0233F4E4 +_0233F500: + ldrsh r1, [r8, #2] + mov r0, r4 + mov r2, r6 + bl FUN_0200CF58 + bl ov04_0233CAC8 + cmp r0, #0 + popne {r3, r4, r5, r6, r7, r8, sb, pc} + ldrsh r0, [r4, #4] + bl FUN_0200EB30 + cmp r0, #0 + beq _0233F4C4 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0233F530: .4byte 0x0233F644 + arm_func_end ov04_0233F4B0 + + arm_func_start ov04_0233F534 +ov04_0233F534: @ 0x0233F534 + push {r3, r4, r5, lr} + mov r5, #0 + ldr r4, _0233F564 @ =0x0233F644 + b _0233F54C +_0233F544: + bl FUN_0204FF80 + add r5, r5, #1 +_0233F54C: + ldr r0, [r4] + add r0, r0, #0x1000 + ldr r0, [r0, #0xd18] + cmp r5, r0 + blt _0233F544 + pop {r3, r4, r5, pc} + .align 2, 0 +_0233F564: .4byte 0x0233F644 + arm_func_end ov04_0233F534 + @ 0x0233F568 diff --git a/asm/overlay_05.s b/asm/overlay_05.s index 5793a472..2eba8c4b 100644 --- a/asm/overlay_05.s +++ b/asm/overlay_05.s @@ -3,3 +3,3522 @@ .include "global.inc" .text + + arm_func_start ov05_0233CA80 +ov05_0233CA80: @ 0x0233CA80 + ldr ip, _0233CA90 @ =FUN_02003250 + ldr r0, _0233CA94 @ =0x0233FCC0 + mov r1, #0xc + bx ip + .align 2, 0 +_0233CA90: .4byte FUN_02003250 +_0233CA94: .4byte 0x0233FCC0 + arm_func_end ov05_0233CA80 + + arm_func_start ov05_0233CA98 +ov05_0233CA98: @ 0x0233CA98 + ldr r1, _0233CAA4 @ =0x0233FCC0 + str r0, [r1] + bx lr + .align 2, 0 +_0233CAA4: .4byte 0x0233FCC0 + arm_func_end ov05_0233CA98 + + arm_func_start ov05_0233CAA8 +ov05_0233CAA8: @ 0x0233CAA8 + ldr r0, _0233CAB4 @ =0x0233FCC0 + ldr r0, [r0] + bx lr + .align 2, 0 +_0233CAB4: .4byte 0x0233FCC0 + arm_func_end ov05_0233CAA8 + + arm_func_start ov05_0233CAB8 +ov05_0233CAB8: @ 0x0233CAB8 + ldr r1, _0233CAC4 @ =0x0233FCC0 + str r0, [r1, #4] + bx lr + .align 2, 0 +_0233CAC4: .4byte 0x0233FCC0 + arm_func_end ov05_0233CAB8 + + arm_func_start ov05_0233CAC8 +ov05_0233CAC8: @ 0x0233CAC8 + push {r3, lr} + ldrsb ip, [sp, #8] + str ip, [sp] + bl FUN_02046A9C + arm_func_end ov05_0233CAC8 + + arm_func_start ov05_0233CAD8 +ov05_0233CAD8: @ 0x0233CAD8 + pop {r3, pc} + arm_func_end ov05_0233CAD8 + + arm_func_start ov05_0233CADC +ov05_0233CADC: @ 0x0233CADC + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr ip, [sp, #0x10] + ldrh lr, [sp, #0x14] + str ip, [sp] + mov ip, #0 + str lr, [sp, #4] + str ip, [sp, #8] + bl FUN_02046A20 + add sp, sp, #0xc + ldm sp!, {pc} + arm_func_end ov05_0233CADC + + arm_func_start ov05_0233CB08 +ov05_0233CB08: @ 0x0233CB08 + stmdb sp!, {lr} + sub sp, sp, #0xc + arm_func_end ov05_0233CB08 + + arm_func_start ov05_0233CB10 +ov05_0233CB10: @ 0x0233CB10 + ldr ip, [sp, #0x10] + ldrh lr, [sp, #0x14] + str ip, [sp] + ldr ip, [sp, #0x18] + str lr, [sp, #4] + str ip, [sp, #8] + bl FUN_02046A20 + add sp, sp, #0xc + ldm sp!, {pc} + arm_func_end ov05_0233CB10 + + arm_func_start ov05_0233CB34 +ov05_0233CB34: @ 0x0233CB34 + push {r3, lr} + bl FUN_02046B04 + arm_func_end ov05_0233CB34 + + arm_func_start ov05_0233CB3C +ov05_0233CB3C: @ 0x0233CB3C + mvn r1, #1 + cmp r0, r1 + moveq r0, #0xd + popeq {r3, pc} + add r1, r1, #1 + cmp r0, r1 + moveq r0, #0 + pop {r3, pc} + arm_func_end ov05_0233CB3C + + arm_func_start ov05_02046BA0 +ov05_02046BA0: @ 0x0233CB5C + ldr ip, _0233CB64 @ =FUN_02046BA0 + bx ip + .align 2, 0 +_0233CB64: .4byte FUN_02046BA0 + arm_func_end ov05_02046BA0 + + arm_func_start ov05_0233CB68 +ov05_0233CB68: @ 0x0233CB68 + ldr ip, _0233CB74 @ =FUN_02046BE8 + mov r2, #0 + bx ip + .align 2, 0 +_0233CB74: .4byte FUN_02046BE8 + arm_func_end ov05_0233CB68 + + arm_func_start ov05_02046BE8 +ov05_02046BE8: @ 0x0233CB78 + ldr ip, _0233CB80 @ =FUN_02046BE8 + bx ip + .align 2, 0 +_0233CB80: .4byte FUN_02046BE8 + arm_func_end ov05_02046BE8 + + arm_func_start ov05_0233CB84 +ov05_0233CB84: @ 0x0233CB84 + push {r3, lr} + bl FUN_02046C78 + cmp r0, #0 + movne r0, #0xd + moveq r0, #0 + pop {r3, pc} + arm_func_end ov05_0233CB84 + + arm_func_start ov05_0233CB9C +ov05_0233CB9C: @ 0x0233CB9C + push {r3, lr} + mov r0, #0xb4 + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233CC08 @ =0x0233FCCC + mov r1, #0xb4 + str r0, [r2, #4] + bl FUN_02003250 + ldr r0, _0233CC08 @ =0x0233FCCC + mov r3, #0 + ldr r2, [r0, #4] + mov r1, #0xc + str r3, [r2, #0xc] + ldr r3, [r0, #4] + add r2, r3, #0x10 + str r2, [r3, #0x74] + ldr r0, [r0, #4] + bl FUN_02003250 + ldr r0, _0233CC08 @ =0x0233FCCC + mov r1, #0 + str r1, [r0] + bl FUN_02046D20 + ldr r0, _0233CC0C @ =0x0233FCA0 + mov r1, #0 + str r1, [r0] + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0233CC08: .4byte 0x0233FCCC +_0233CC0C: .4byte 0x0233FCA0 + arm_func_end ov05_0233CB9C + + arm_func_start ov05_0233CC10 +ov05_0233CC10: @ 0x0233CC10 + push {r3, r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x18c + ldr r0, _0233D344 @ =0x0233FCCC + ldr r1, _0233D348 @ =0x00002001 + ldr r0, [r0, #4] + ldr r2, [r0, #0xc] + cmp r2, r1 + bgt _0233CC98 + bge _0233D10C + sub r0, r1, #0x1000 + cmp r2, r0 + bgt _0233CC78 + bge _0233CF98 + cmp r2, #2 + bgt _0233CC6C + cmp r2, #0 + blt _0233D338 + beq _0233CCE8 + cmp r2, #1 + beq _0233CDA0 + cmp r2, #2 + beq _0233CE2C + b _0233D338 +_0233CC6C: + cmp r2, #0x1000 + beq _0233CE48 + b _0233D338 +_0233CC78: + ldr r0, _0233D34C @ =0x00001002 + cmp r2, r0 + bgt _0233CC8C + beq _0233D018 + b _0233D338 +_0233CC8C: + cmp r2, #0x2000 + beq _0233D034 + b _0233D338 +_0233CC98: + add r0, r1, #0x1000 + cmp r2, r0 + bgt _0233CCC8 + bge _0233D220 + add r0, r1, #1 + cmp r2, r0 + bgt _0233CCBC + beq _0233D18C + b _0233D338 +_0233CCBC: + cmp r2, #0x3000 + beq _0233D20C + b _0233D338 +_0233CCC8: + cmp r2, #0x4000 + bgt _0233CCD8 + beq _0233D2A4 + b _0233D338 +_0233CCD8: + add r0, r1, #0x2000 + cmp r2, r0 + beq _0233D2B8 + b _0233D338 +_0233CCE8: + bl FUN_0232E94C + cmp r0, #0 + bne _0233D338 + bl FUN_0232F3F4 + bl ov05_0233CA80 + ldr r0, _0233D344 @ =0x0233FCCC + mov r1, #3 + ldr r0, [r0, #4] + add r0, r0, #0x10 + bl FUN_02003250 + bl FUN_0204E210 + cmp r0, #0 + bne _0233CD3C + bl FUN_0204FA5C + ldrb r0, [r0] + cmp r0, #0xbe + ldreq r0, _0233D344 @ =0x0233FCCC + moveq r1, #3 + ldreq r0, [r0, #4] + strbeq r1, [r0, #0x11] + beq _0233CD4C +_0233CD3C: + ldr r0, _0233D344 @ =0x0233FCCC + mov r1, #0 + ldr r0, [r0, #4] + strb r1, [r0, #0x11] +_0233CD4C: + mov r0, #0 + bl FUN_0233767C + ldr r2, _0233D350 @ =0x0233FBD8 + ldr r1, _0233D344 @ =0x0233FCCC + ldr r2, [r2, r0, lsl #3] + ldr r0, [r1, #4] + ldr r3, _0233D354 @ =0x0233FBD4 + str r2, [r0, #0x14] + mov r0, #0 + ldr r2, _0233D358 @ =0x000037E1 + str r3, [sp] + str r2, [sp, #4] + ldr r3, [r1, #4] + ldr r2, _0233D35C @ =0x00000233 + mov r1, r0 + add r3, r3, #0x14 + bl ov05_0233CADC + ldr r0, _0233D344 @ =0x0233FCCC + mov r1, #1 + ldr r0, [r0, #4] + str r1, [r0, #0xc] +_0233CDA0: + bl ov05_0233CB34 + mov r4, r0 + bl ov05_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0 + bl FUN_0233768C + cmp r4, #1 + bne _0233CDE0 + mov r0, #0 + arm_func_end ov05_0233CC10 + + arm_func_start ov05_0233CDC8 +ov05_0233CDC8: @ 0x0233CDC8 + bl ov05_0233CA98 + ldr r0, _0233D344 @ =0x0233FCCC + mov r1, #0x1000 + ldr r0, [r0, #4] + arm_func_end ov05_0233CDC8 + + arm_func_start ov05_0233CDD8 +ov05_0233CDD8: @ 0x0233CDD8 + str r1, [r0, #0xc] + b _0233D338 +_0233CDE0: + cmp r4, #2 + arm_func_end ov05_0233CDD8 + + arm_func_start ov05_0233CDE4 +ov05_0233CDE4: @ 0x0233CDE4 + bne _0233CE10 + mov r0, #1 + bl ov05_0233CA98 + ldr r0, _0233D344 @ =0x0233FCCC + mov r3, #0 + ldr r2, [r0, #4] + mov r1, #0x2000 + strb r3, [r2, #0xb1] + ldr r0, [r0, #4] + str r1, [r0, #0xc] + b _0233D338 +_0233CE10: + sub r0, r4, #0xc + cmp r0, #1 + ldrls r0, _0233D344 @ =0x0233FCCC + movls r1, #2 + ldrls r0, [r0, #4] + strls r1, [r0, #0xc] + b _0233D338 +_0233CE2C: + bl FUN_0232E94C + cmp r0, #0 + bne _0233D338 + mov r0, #0x13 + bl FUN_023310B8 + mov r0, #3 + b _0233D33C +_0233CE48: + bl FUN_0232E94C + cmp r0, #0 + bne _0233D338 + bl FUN_0204E5E4 + cmp r0, #0 + bne _0233CE80 + ldr r1, _0233D360 @ =0x000037E3 + mov r0, #0x1c + bl ov05_0233CB68 + ldr r0, _0233D344 @ =0x0233FCCC + ldr r1, _0233D34C @ =0x00001002 + ldr r0, [r0, #4] + str r1, [r0, #0xc] + b _0233D338 +_0233CE80: + add r0, sp, #0x13c + mov r7, #0 + bl FUN_02023690 + add r0, sp, #0xc + bl FUN_02057010 + mov r6, r0 + mov r5, r7 + add r4, sp, #0xc + mov sb, #6 + mvn sl, #0 + b _0233CF20 +_0233CEAC: + lsl r0, r5, #1 + ldrsh r0, [r4, r0] + bl FUN_020555A8 + mov r8, r0 + ldrsh r0, [r8, #4] + cmp r0, #0x218 + beq _0233CEE4 + ldrsh r0, [r8, #4] + bl FUN_02054F18 + cmp r0, #0 + ldrshne r0, [r8, #4] + movne r7, #1 + strne r0, [sp, #0x13c] + bne _0233CF28 +_0233CEE4: + add r0, r8, #0x22 + bl FUN_02015024 + cmp r0, sl + beq _0233CF1C + mla r1, r0, sb, r8 + ldrh r0, [r1, #0x24] + cmp r0, #0x1d4 + bne _0233CF1C + ldrsh r0, [r8, #4] + mov r7, #2 + str r0, [sp, #0x13c] + ldrh r0, [r1, #0x24] + str r0, [sp, #0x14c] + b _0233CF28 +_0233CF1C: + add r5, r5, #1 +_0233CF20: + cmp r5, r6 + blt _0233CEAC +_0233CF28: + cmp r7, #0 + bne _0233CF64 + mov r0, #1 + bl FUN_0233767C + str r0, [sp] + mov r0, #0 + ldr r2, _0233D364 @ =0x0233FB94 + ldr r3, _0233D368 @ =0x000037E2 + mov r1, r0 + bl ov05_0233CAC8 + ldr r0, _0233D344 @ =0x0233FCCC + ldr r1, _0233D36C @ =0x00001001 + ldr r0, [r0, #4] + str r1, [r0, #0xc] + b _0233D338 +_0233CF64: + cmp r7, #2 + ldreq r0, _0233D370 @ =0x000037E5 + add r2, sp, #0x13c + ldrne r0, _0233D374 @ =0x000037E4 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + mov r0, #0x1c + bl ov05_02046BE8 + ldr r0, _0233D344 @ =0x0233FCCC + ldr r1, _0233D34C @ =0x00001002 + ldr r0, [r0, #4] + str r1, [r0, #0xc] + b _0233D338 +_0233CF98: + bl ov05_0233CB34 + mov r4, r0 + bl ov05_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #1 + bl FUN_0233768C + cmp r4, #3 + bne _0233CFD8 + mov r0, #0 + bl ov05_0233CAB8 + ldr r0, _0233D344 @ =0x0233FCCC + mov r1, #0x3000 + ldr r0, [r0, #4] + str r1, [r0, #0xc] + b _0233D338 +_0233CFD8: + cmp r4, #4 + bne _0233CFFC + mov r0, #1 + bl ov05_0233CAB8 + ldr r0, _0233D344 @ =0x0233FCCC + mov r1, #0x4000 + ldr r0, [r0, #4] + str r1, [r0, #0xc] + b _0233D338 +_0233CFFC: + sub r0, r4, #0xc + cmp r0, #1 + ldrls r0, _0233D344 @ =0x0233FCCC + movls r1, #0 + ldrls r0, [r0, #4] + strls r1, [r0, #0xc] + b _0233D338 +_0233D018: + bl ov05_0233CB84 + cmp r0, #0xd + ldreq r0, _0233D344 @ =0x0233FCCC + moveq r1, #0 + ldreq r0, [r0, #4] + streq r1, [r0, #0xc] + b _0233D338 +_0233D034: + bl FUN_0232E94C + cmp r0, #0 + bne _0233D338 + bl FUN_02058FA4 + cmp r0, #0 + beq _0233D0D8 + ldr r0, _0233D344 @ =0x0233FCCC + ldr r0, [r0, #4] + ldrb r0, [r0, #0xb1] + cmp r0, #0 + bne _0233D0D8 + add r0, sp, #0xec + bl FUN_02023690 + add r0, sp, #0x14 + bl FUN_02059060 + add r2, sp, #0x14 + add r0, sp, #0x54 + mov r1, #0x98 + str r2, [sp, #0x124] + bl FUN_02003250 + mov r0, #3 + bl FUN_0233767C + ldr r2, _0233D378 @ =0x0233FB68 + ldr r1, _0233D37C @ =0x0233FB64 + ldr r2, [r2, r0, lsl #3] + ldr r0, _0233D380 @ =0x000037EC + str r2, [sp, #0x54] + str r1, [sp] + str r0, [sp, #4] + add r1, sp, #0xec + str r1, [sp, #8] + mov r0, #0 + mov r1, #8 + mov r2, #0x33 + add r3, sp, #0x54 + bl ov05_0233CB08 + ldr r0, _0233D344 @ =0x0233FCCC + ldr r1, _0233D384 @ =0x00002002 + ldr r0, [r0, #4] + str r1, [r0, #0xc] + b _0233D338 +_0233D0D8: + mov r0, #2 + bl FUN_0233767C + str r0, [sp] + mov r0, #0 + ldr r2, _0233D388 @ =0x0233FBB4 + ldr r3, _0233D38C @ =0x000037E9 + mov r1, r0 + bl ov05_0233CAC8 + ldr r0, _0233D344 @ =0x0233FCCC + ldr r1, _0233D348 @ =0x00002001 + ldr r0, [r0, #4] + str r1, [r0, #0xc] + b _0233D338 +_0233D10C: + bl ov05_0233CB34 + mov r4, r0 + bl ov05_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #2 + bl FUN_0233768C + cmp r4, #3 + bne _0233D14C + mov r0, #0 + bl ov05_0233CAB8 + ldr r0, _0233D344 @ =0x0233FCCC + mov r1, #0x3000 + ldr r0, [r0, #4] + str r1, [r0, #0xc] + b _0233D338 +_0233D14C: + cmp r4, #4 + bne _0233D170 + mov r0, #1 + bl ov05_0233CAB8 + ldr r0, _0233D344 @ =0x0233FCCC + mov r1, #0x4000 + ldr r0, [r0, #4] + str r1, [r0, #0xc] + b _0233D338 +_0233D170: + sub r0, r4, #0xc + cmp r0, #1 + ldrls r0, _0233D344 @ =0x0233FCCC + movls r1, #0 + ldrls r0, [r0, #4] + strls r1, [r0, #0xc] + b _0233D338 +_0233D18C: + bl ov05_0233CB34 + mov r4, r0 + bl ov05_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #3 + bl FUN_0233768C + cmp r4, #0xb + bne _0233D1F0 + mov r0, #2 + bl FUN_0233767C + str r0, [sp] + mov r0, #0 + ldr r2, _0233D388 @ =0x0233FBB4 + ldr r3, _0233D38C @ =0x000037E9 + mov r1, r0 + bl ov05_0233CAC8 + ldr r0, _0233D344 @ =0x0233FCCC + mov r3, #1 + ldr r2, [r0, #4] + add r1, r3, #0x2000 + strb r3, [r2, #0xb1] + ldr r0, [r0, #4] + str r1, [r0, #0xc] + b _0233D338 +_0233D1F0: + sub r0, r4, #0xc + cmp r0, #1 + ldrls r0, _0233D344 @ =0x0233FCCC + movls r1, #0 + ldrls r0, [r0, #4] + strls r1, [r0, #0xc] + b _0233D338 +_0233D20C: + bl ov05_0233D3D0 + ldr r0, _0233D344 @ =0x0233FCCC + ldr r1, _0233D390 @ =0x00003001 + ldr r0, [r0, #4] + str r1, [r0, #0xc] +_0233D220: + bl ov05_0233D450 + mov r4, r0 + bl FUN_02003BFC + cmp r4, #1 + bne _0233D270 + bl ov05_0233D424 + bl ov05_0233CAA8 + cmp r0, #1 + ldreq r0, _0233D344 @ =0x0233FCCC + moveq r1, #0x2000 + ldreq r0, [r0, #4] + streq r1, [r0, #0xc] + beq _0233D338 + bl ov05_0233CAA8 + cmp r0, #0 + ldreq r0, _0233D344 @ =0x0233FCCC + moveq r1, #0x1000 + ldreq r0, [r0, #4] + streq r1, [r0, #0xc] + b _0233D338 +_0233D270: + cmp r4, #3 + bne _0233D288 + bl ov05_0233D424 + bl FUN_0204A018 + mov r0, #3 + b _0233D33C +_0233D288: + cmp r4, #2 + bne _0233D338 + bl ov05_0233D424 + mov r0, #0x13 + bl FUN_023310B8 + mov r0, #3 + b _0233D33C +_0233D2A4: + bl ov05_0233DB1C + ldr r0, _0233D344 @ =0x0233FCCC + ldr r1, _0233D394 @ =0x00004001 + ldr r0, [r0, #4] + str r1, [r0, #0xc] +_0233D2B8: + bl FUN_02003BFC + bl ov05_0233DBDC + cmp r0, #1 + bne _0233D304 + bl ov05_0233DBA0 + bl ov05_0233CAA8 + cmp r0, #1 + ldreq r0, _0233D344 @ =0x0233FCCC + moveq r1, #0x2000 + ldreq r0, [r0, #4] + streq r1, [r0, #0xc] + beq _0233D338 + bl ov05_0233CAA8 + cmp r0, #0 + ldreq r0, _0233D344 @ =0x0233FCCC + moveq r1, #0x1000 + ldreq r0, [r0, #4] + streq r1, [r0, #0xc] + b _0233D338 +_0233D304: + cmp r0, #3 + bne _0233D31C + bl ov05_0233DBA0 + bl FUN_0204A018 + mov r0, #3 + b _0233D33C +_0233D31C: + cmp r0, #2 + bne _0233D338 + bl ov05_0233DBA0 + mov r0, #0x13 + bl FUN_023310B8 + mov r0, #3 + b _0233D33C +_0233D338: + mov r0, #1 +_0233D33C: + add sp, sp, #0x18c + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0233D344: .4byte 0x0233FCCC +_0233D348: .4byte 0x00002001 +_0233D34C: .4byte 0x00001002 +_0233D350: .4byte 0x0233FBD8 +_0233D354: .4byte 0x0233FBD4 +_0233D358: .4byte 0x000037E1 +_0233D35C: .4byte 0x00000233 +_0233D360: .4byte 0x000037E3 +_0233D364: .4byte 0x0233FB94 +_0233D368: .4byte 0x000037E2 +_0233D36C: .4byte 0x00001001 +_0233D370: .4byte 0x000037E5 +_0233D374: .4byte 0x000037E4 +_0233D378: .4byte 0x0233FB68 +_0233D37C: .4byte 0x0233FB64 +_0233D380: .4byte 0x000037EC +_0233D384: .4byte 0x00002002 +_0233D388: .4byte 0x0233FBB4 +_0233D38C: .4byte 0x000037E9 +_0233D390: .4byte 0x00003001 +_0233D394: .4byte 0x00004001 + arm_func_end ov05_0233CDE4 + + arm_func_start ov05_0233D398 +ov05_0233D398: @ 0x0233D398 + push {r3, lr} + ldr r0, _0233D3CC @ =0x0233FCCC + ldr r0, [r0, #4] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02046D20 + ldr r0, _0233D3CC @ =0x0233FCCC + ldr r0, [r0, #4] + bl FUN_02001188 + ldr r0, _0233D3CC @ =0x0233FCCC + mov r1, #0 + str r1, [r0, #4] + pop {r3, pc} + .align 2, 0 +_0233D3CC: .4byte 0x0233FCCC + arm_func_end ov05_0233D398 + + arm_func_start ov05_0233D3D0 +ov05_0233D3D0: @ 0x0233D3D0 + push {r3, lr} + mov r0, #0x1dc + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233D420 @ =0x0233FCA4 + mov r1, #0x1dc + str r0, [r2] + bl FUN_02003250 + ldr r0, _0233D420 @ =0x0233FCA4 + mov r3, #0 + ldr r1, [r0] + sub r2, r3, #2 + str r3, [r1] + ldr r1, [r0] + strb r2, [r1, #8] + ldr r1, [r0] + add r0, r1, #0x33 + bic r0, r0, #0x1f + str r0, [r1, #0x10] + pop {r3, pc} + .align 2, 0 +_0233D420: .4byte 0x0233FCA4 + arm_func_end ov05_0233D3D0 + + arm_func_start ov05_0233D424 +ov05_0233D424: @ 0x0233D424 + push {r3, lr} + ldr r0, _0233D44C @ =0x0233FCA4 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0233D44C @ =0x0233FCA4 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233D44C: .4byte 0x0233FCA4 + arm_func_end ov05_0233D424 + + arm_func_start ov05_0233D450 +ov05_0233D450: @ 0x0233D450 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x17c + ldr r0, _0233D9FC @ =0x0233FCA4 + ldr r4, [r0] + ldr r2, [r4] + cmp r2, #0x4000 + bgt _0233D4A4 + bge _0233D884 + cmp r2, #0 + bgt _0233D480 + beq _0233D4E8 + b _0233D9F0 +_0233D480: + ldr r0, _0233DA00 @ =0x00001001 + cmp r2, r0 + bgt _0233D9F0 + cmp r2, #0x1000 + blt _0233D9F0 + beq _0233D688 + cmp r2, r0 + beq _0233D730 + b _0233D9F0 +_0233D4A4: + cmp r2, #0x5000 + bgt _0233D4B4 + beq _0233D898 + b _0233D9F0 +_0233D4B4: + ldr r1, _0233DA04 @ =0x00005005 + cmp r2, r1 + bgt _0233D9F0 + sub r0, r1, #2 + cmp r2, r0 + blt _0233D9F0 + beq _0233D8AC + sub r0, r1, #1 + cmp r2, r0 + beq _0233D8C0 + cmp r2, r1 + beq _0233D9E0 + b _0233D9F0 +_0233D4E8: + bl ov05_0233CAA8 + cmp r0, #1 + bne _0233D56C + ldr r0, _0233D9FC @ =0x0233FCA4 + ldr r1, [r0] + cmp r1, #0 + movne r0, #1 + strne r0, [r1, #4] + add r0, r4, #0x54 + mov r1, #0x150 + bl FUN_02003250 + add r0, r4, #0x1bc + mov r1, #0x18 + bl FUN_02003250 + mov r0, #0x18 + str r0, [r4, #0x1a4] + add r0, r4, #0x1bc + str r0, [r4, #0x1a8] + mov r0, #0x150 + str r0, [r4, #0x1ac] + add r0, r4, #0x54 + str r0, [r4, #0x1b0] + mov r1, #0 + strb r1, [r4, #0x1b8] + ldr r0, _0233DA08 @ =ov05_0233DA2C + mov r1, #1 + str r0, [r4, #0x1b4] + add r0, r4, #0x1c0 + strb r1, [r4, #0x1d4] + bl FUN_02050B10 + mov r0, #0x1000 + str r0, [r4] + b _0233D9F0 +_0233D56C: + bl ov05_0233CAA8 + cmp r0, #0 + bne _0233D9F0 + ldr r0, _0233D9FC @ =0x0233FCA4 + ldr r1, [r0] + cmp r1, #0 + movne r0, #0 + strne r0, [r1, #4] + add r0, r4, #0x54 + mov r1, #0x150 + bl FUN_02003250 + add r0, r4, #0x1bc + mov r1, #0x18 + bl FUN_02003250 + mov r0, #0x150 + str r0, [r4, #0x1a4] + add r0, r4, #0x54 + str r0, [r4, #0x1a8] + mov r0, #0x18 + str r0, [r4, #0x1ac] + add r0, r4, #0x1bc + str r0, [r4, #0x1b0] + mov r1, #0 + ldr r0, _0233DA0C @ =0x02337B68 + strb r1, [r4, #0x1b8] + str r0, [r4, #0x1b4] + add r0, r4, #0x5a + strb r1, [r4, #0x1d4] + bl FUN_02050B10 + add r0, sp, #0 + mov r1, #0 + bl FUN_02057030 + mov sb, r0 + mov r8, #0 + add r6, r4, #0x70 + mov r5, #0xf8 + add r7, sp, #0 + mov fp, #0x4c + b _0233D63C +_0233D608: + mul sl, r8, fp + lsl r0, r8, #1 + ldrsh r0, [r7, r0] + bl FUN_020555A8 + mov r1, r0 + add r0, r6, sl + bl FUN_02055E14 + add sl, r4, sl + ldrb r0, [sl, #0x75] + bl FUN_02051798 + cmp r0, #0xff + strbeq r5, [sl, #0x75] + add r8, r8, #1 +_0233D63C: + cmp r8, sb + blt _0233D608 + mov r3, sb + mov r2, #0 + mov r0, #0x4c + b _0233D660 +_0233D654: + mla r1, r3, r0, r4 + strh r2, [r1, #0x78] + add r3, r3, #1 +_0233D660: + cmp r3, #4 + blt _0233D654 + bl FUN_020205A0 + strb r0, [r4, #0x58] + bl FUN_02050CD0 + strb r0, [r4, #0x59] + str sb, [r4, #0x1a0] + mov r0, #0x1000 + str r0, [r4] + b _0233D9F0 +_0233D688: + ldr r1, [r4, #0x10] + mov r0, #6 + strb r0, [r1] + mov r0, #0 + strb r0, [r1, #1] + mov r0, #0x10 + strb r0, [r4, #0x54] + mov r0, #0x11 + strb r0, [r4, #0x1bc] + add r5, r4, #0x1bc + bl FUN_020205A0 + strb r0, [r5, #2] + ldrsb r2, [r5, #2] + add r0, r4, #0x58 + mov r1, #0x14c + strb r2, [r4, #0x56] + bl FUN_02337B3C + strb r0, [r4, #0x57] + add r0, r5, #4 + mov r1, #0x14 + bl FUN_02337B3C + strb r0, [r5, #3] + add r0, r4, #0x1a4 + mov r1, #1 + str r0, [sp, #0xc] + str r1, [sp, #8] + ldr r1, [r4, #4] + add r0, sp, #8 + str r1, [sp, #0x18] + ldrb r3, [r4, #0x1d4] + mov r2, #0x20 + mov r1, #0 + strb r3, [sp, #0x1c] + ldr r3, [r4, #0x10] + str r3, [sp, #0x20] + strh r2, [sp, #0x24] + strb r1, [sp, #0x26] + str r1, [sp, #0x28] + bl FUN_02337BA0 + ldr r0, _0233DA00 @ =0x00001001 + str r0, [r4] + b _0233D9F0 +_0233D730: + bl FUN_02337E0C + movs r6, r0 + beq _0233D9F0 + add r0, sp, #0x2c + add r5, r4, #0x54 + add r7, r4, #0x1bc + bl FUN_02023690 + bl FUN_02337C54 + cmp r6, #0xe + addls pc, pc, r6, lsl #2 + b _0233D9F0 +_0233D75C: @ jump table + b _0233D9F0 @ case 0 + b _0233D87C @ case 1 + b _0233D9F0 @ case 2 + b _0233D9F0 @ case 3 + b _0233D798 @ case 4 + b _0233D87C @ case 5 + b _0233D87C @ case 6 + b _0233D87C @ case 7 + b _0233D87C @ case 8 + b _0233D87C @ case 9 + b _0233D87C @ case 10 + b _0233D87C @ case 11 + b _0233D87C @ case 12 + b _0233D87C @ case 13 + b _0233D87C @ case 14 +_0233D798: + bl ov05_0233CAA8 + cmp r0, #0 + bne _0233D7F4 + bl FUN_020205A0 + ldrsb r1, [r7, #2] + cmp r1, r0 + add r0, sp, #0x7c + bne _0233D7C8 + add r1, r7, #4 + mov r2, #0x14 + bl FUN_020251F4 + b _0233D7D0 +_0233D7C8: + ldr r1, _0233DA10 @ =0x000038C9 + bl FUN_020258B8 +_0233D7D0: + ldr r1, _0233DA14 @ =0x000037ED + add r3, sp, #0x7c + add r2, sp, #0x2c + mov r0, #0x1c + str r3, [sp, #0x64] + bl ov05_02046BE8 + mov r0, #0x4000 + str r0, [r4] + b _0233D9F0 +_0233D7F4: + bl ov05_0233CAA8 + cmp r0, #1 + bne _0233D9F0 + bl FUN_020205A0 + ldrsb r1, [r5, #2] + cmp r1, r0 + add r0, sp, #0x7c + bne _0233D824 + add r1, r5, #6 + mov r2, #0x14 + bl FUN_020251F4 + b _0233D82C +_0233D824: + ldr r1, _0233DA10 @ =0x000038C9 + bl FUN_020258B8 +_0233D82C: + add r0, sp, #0x7c + str r0, [sp, #0x64] + mov r3, #0 + mov r0, #0x4c +_0233D83C: + mla r2, r3, r0, r5 + ldrh r1, [r2, #0x1c] + add r3, r3, #1 + cmp r3, #4 + and r1, r1, #1 + strh r1, [r2, #0x1c] + blt _0233D83C + add r0, r5, #4 + bl FUN_02058FCC + ldr r1, _0233DA18 @ =0x000037EE + add r2, sp, #0x2c + mov r0, #0x1c + bl ov05_02046BE8 + mov r0, #0x5000 + str r0, [r4] + b _0233D9F0 +_0233D87C: + mov r0, #1 + b _0233D9F4 +_0233D884: + bl ov05_0233CB84 + cmp r0, #0xd + bne _0233D9F0 + mov r0, #2 + b _0233D9F4 +_0233D898: + bl ov05_0233CB84 + cmp r0, #0xd + ldreq r0, _0233DA1C @ =0x00005004 + streq r0, [r4] + b _0233D9F0 +_0233D8AC: + mov r0, #0 + str r0, [r4, #0x1d8] + sub r0, r1, #1 + str r0, [r4] + b _0233D9F0 +_0233D8C0: + ldr r0, [r4, #0x1d8] + cmp r0, #4 + addls pc, pc, r0, lsl #2 + b _0233D9A0 +_0233D8D0: @ jump table + b _0233D8E4 @ case 0 + b _0233D8F8 @ case 1 + b _0233D924 @ case 2 + b _0233D97C @ case 3 + b _0233D990 @ case 4 +_0233D8E4: + ldr r1, _0233DA20 @ =0x0000023B + mov r0, #0 + bl ov05_0233CB68 + mov r0, #1 + str r0, [r4, #0x1d8] +_0233D8F8: + bl ov05_0233CB84 + cmp r0, #0xd + bne _0233D9A0 + mov r0, #0xe0 + mov r1, #0x88 + mov r2, #1 + bl FUN_02029F88 + mov r0, #2 + str r0, [r4, #0x1d8] + bl FUN_02003B94 + b _0233D9A0 +_0233D924: + mov r0, #3 + bl FUN_02048F84 + mov r5, r0 + bl FUN_02003BC8 + bl FUN_02029FBC + cmp r5, #0 + bne _0233D958 + mov r0, #0x1c + mov r1, #0x23c + bl ov05_0233CB68 + mov r0, #3 + str r0, [r4, #0x1d8] + b _0233D9A0 +_0233D958: + cmp r5, #1 + moveq r0, #3 + beq _0233D9A4 + arm_func_end ov05_0233D450 + + arm_func_start ov05_0233D964 +ov05_0233D964: @ 0x0233D964 + ldr r1, _0233DA24 @ =0x00000239 + mov r0, #0x1c + bl ov05_0233CB68 + mov r0, #4 + str r0, [r4, #0x1d8] + b _0233D9A0 +_0233D97C: + bl ov05_0233CB84 + cmp r0, #0xd + bne _0233D9A0 + mov r0, #1 + b _0233D9A4 +_0233D990: + bl ov05_0233CB84 + cmp r0, #0xd + moveq r0, #2 + beq _0233D9A4 +_0233D9A0: + mov r0, #0 +_0233D9A4: + cmp r0, #1 + bne _0233D9C4 + ldr r1, _0233DA28 @ =0x000037EF + mov r0, #0x1c + bl ov05_0233CB68 + ldr r0, _0233DA04 @ =0x00005005 + str r0, [r4] + b _0233D9F0 +_0233D9C4: + cmp r0, #3 + moveq r0, #3 + beq _0233D9F4 + cmp r0, #2 + bne _0233D9F0 + mov r0, #2 + b _0233D9F4 +_0233D9E0: + bl ov05_0233CB84 + cmp r0, #0xd + moveq r0, #2 + beq _0233D9F4 +_0233D9F0: + mov r0, #0 +_0233D9F4: + add sp, sp, #0x17c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0233D9FC: .4byte 0x0233FCA4 +_0233DA00: .4byte 0x00001001 +_0233DA04: .4byte 0x00005005 +_0233DA08: .4byte ov05_0233DA2C +_0233DA0C: .4byte 0x02337B68 +_0233DA10: .4byte 0x000038C9 +_0233DA14: .4byte 0x000037ED +_0233DA18: .4byte 0x000037EE +_0233DA1C: .4byte 0x00005004 +_0233DA20: .4byte 0x0000023B +_0233DA24: .4byte 0x00000239 +_0233DA28: .4byte 0x000037EF + arm_func_end ov05_0233D964 + + arm_func_start ov05_0233DA2C +ov05_0233DA2C: @ 0x0233DA2C + push {r4, r5, r6, r7, r8, sb, sl, lr} + mov r8, r0 + add r5, r8, #4 + bl ov05_0233CAA8 + cmp r0, #1 + bne _0233DB14 + mov r0, r5 + mov r1, #0x14c + bl FUN_02337B3C + ldrb r1, [r8, #3] + cmp r0, r1 + movne r0, #3 + popne {r4, r5, r6, r7, r8, sb, sl, pc} + ldrb r0, [r8] + cmp r0, #0x10 + movne r0, #2 + popne {r4, r5, r6, r7, r8, sb, sl, pc} + ldr r0, [r8, #0x14c] + cmp r0, #0 + beq _0233DA84 + cmp r0, #4 + bls _0233DA8C +_0233DA84: + mov r0, #6 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_0233DA8C: + mov r6, #0 + add r4, r5, #0x42 + mov sb, #0x4c + b _0233DB00 +_0233DA9C: + mul sl, r6, sb + add r7, r5, sl + ldrsh r0, [r7, #0x20] + bl FUN_02062B64 + cmp r0, #0 + bne _0233DAF4 + ldrsh r0, [r7, #0x20] + bl FUN_02054F18 + cmp r0, #0 + bne _0233DAF4 + add r0, r4, sl + bl FUN_02014EF8 + cmp r0, #0 + beq _0233DAF4 + ldrb r0, [r7, #0x1c] + cmp r0, #1 + blo _0233DAF4 + cmp r0, #0x64 + bhi _0233DAF4 + ldrb r0, [r7, #0x3c] + cmp r0, #0xb + blo _0233DAFC +_0233DAF4: + mov r0, #6 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_0233DAFC: + add r6, r6, #1 +_0233DB00: + ldr r0, [r8, #0x14c] + cmp r6, r0 + blo _0233DA9C + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_0233DB14: + mov r0, #0 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + arm_func_end ov05_0233DA2C + + arm_func_start ov05_0233DB1C +ov05_0233DB1C: @ 0x0233DB1C + push {r3, lr} + ldr r0, _0233DB98 @ =0x0000188C + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233DB9C @ =0x0233FCA8 + ldr r1, _0233DB98 @ =0x0000188C + str r0, [r2] + bl FUN_02003250 + mov r0, #0 + ldr r2, _0233DB9C @ =0x0233FCA8 + sub ip, r0, #2 + ldr r1, [r2] + sub r3, r0, #1 + str r0, [r1] + ldr lr, [r2] + add r1, lr, #0xc1 + bic r1, r1, #0x1f + str r1, [lr, #0x2c4] + ldr r1, [r2] + add r1, r1, #0x1000 + strb ip, [r1, #0x7dc] + ldr r1, [r2] + add r1, r1, #0x1000 + str r3, [r1, #0x7d8] + ldr r1, [r2] + add r1, r1, #0x1000 + strb r0, [r1, #0x880] + ldr r1, [r2] + add r1, r1, #0x1000 + str r0, [r1, #0x888] + pop {r3, pc} + .align 2, 0 +_0233DB98: .4byte 0x0000188C +_0233DB9C: .4byte 0x0233FCA8 + arm_func_end ov05_0233DB1C + + arm_func_start ov05_0233DBA0 +ov05_0233DBA0: @ 0x0233DBA0 + push {r3, lr} + ldr r0, _0233DBD8 @ =0x0233FCA8 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + mov r0, #1 + bl FUN_022BCBAC + ldr r0, _0233DBD8 @ =0x0233FCA8 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0233DBD8 @ =0x0233FCA8 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233DBD8: .4byte 0x0233FCA8 + arm_func_end ov05_0233DBA0 + + arm_func_start ov05_0233DBDC +ov05_0233DBDC: @ 0x0233DBDC + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x348 + ldr r1, _0233EB00 @ =0x0233FCA8 + ldr r0, _0233EB04 @ =0x00003023 + ldr r4, [r1] + ldr r1, [r4] + cmp r1, r0 + bgt _0233DD20 + bge _0233E888 + ldr r2, _0233EB08 @ =0x00002001 + cmp r1, r2 + bgt _0233DC74 + bge _0233E2E4 + sub r0, r2, #0x1000 + cmp r1, r0 + bgt _0233DC54 + bge _0233E18C + cmp r1, #2 + bgt _0233DC48 + cmp r1, #0 + blt _0233F854 + beq _0233DE0C + cmp r1, #1 + beq _0233DE44 + cmp r1, #2 + beq _0233DE60 + b _0233F854 +_0233DC48: + cmp r1, #0x1000 + beq _0233E09C + b _0233F854 +_0233DC54: + ldr r0, _0233EB0C @ =0x00001002 + cmp r1, r0 + bgt _0233DC68 + beq _0233E1C0 + b _0233F854 +_0233DC68: + cmp r1, #0x2000 + beq _0233E218 + b _0233F854 +_0233DC74: + sub r2, r0, #0x12 + cmp r1, r2 + bgt _0233DCF0 + sub r0, r0, #0x21 + subs r0, r1, r0 + addpl pc, pc, r0, lsl #2 + b _0233DCD0 +_0233DC90: @ jump table + b _0233E424 @ case 0 + b _0233E4EC @ case 1 + b _0233E64C @ case 2 + b _0233F854 @ case 3 + b _0233F13C @ case 4 + b _0233F248 @ case 5 + b _0233F854 @ case 6 + b _0233F854 @ case 7 + b _0233F854 @ case 8 + b _0233F854 @ case 9 + b _0233F854 @ case 10 + b _0233F854 @ case 11 + b _0233F854 @ case 12 + b _0233F224 @ case 13 + b _0233EEB8 @ case 14 + b _0233EFC0 @ case 15 +_0233DCD0: + cmp r1, #0x3000 + bgt _0233DCE0 + beq _0233E364 + b _0233F854 +_0233DCE0: + ldr r0, _0233EB10 @ =0x00003001 + cmp r1, r0 + beq _0233E37C + b _0233F854 +_0233DCF0: + sub r2, r0, #2 + cmp r1, r2 + bgt _0233DD10 + bge _0233E7A4 + sub r0, r0, #3 + cmp r1, r0 + beq _0233E6B8 + b _0233F854 +_0233DD10: + sub r0, r0, #1 + cmp r1, r0 + beq _0233E7F4 + b _0233F854 +_0233DD20: + ldr r3, _0233EB14 @ =0x00004002 + cmp r1, r3 + bgt _0233DDB4 + bge _0233F4A4 + add r2, r0, #5 + cmp r1, r2 + bgt _0233DD94 + add r2, r0, #3 + cmp r1, r2 + blt _0233DD68 + beq _0233EBB4 + add r2, r0, #4 + cmp r1, r2 + beq _0233ED24 + add r0, r0, #5 + cmp r1, r0 + beq _0233EE0C + b _0233F854 +_0233DD68: + add r2, r0, #1 + cmp r1, r2 + bgt _0233DD84 + add r0, r0, #1 + cmp r1, r0 + beq _0233E9A4 + b _0233F854 +_0233DD84: + add r0, r0, #2 + cmp r1, r0 + beq _0233EA78 + b _0233F854 +_0233DD94: + cmp r1, #0x4000 + bgt _0233DDA4 + beq _0233F40C + b _0233F854 +_0233DDA4: + sub r0, r3, #1 + cmp r1, r0 + beq _0233F440 + b _0233F854 +_0233DDB4: + cmp r1, #0x9000 + bgt _0233DDE0 + bge _0233F760 + cmp r1, #0x8000 + bgt _0233DDD0 + beq _0233F508 + b _0233F854 +_0233DDD0: + add r0, r3, #0x4000 + cmp r1, r0 + beq _0233F534 + b _0233F854 +_0233DDE0: + ldr r0, _0233EB18 @ =0x00009011 + cmp r1, r0 + bgt _0233DE00 + bge _0233F7E8 + sub r0, r0, #1 + cmp r1, r0 + beq _0233F7D4 + b _0233F854 +_0233DE00: + cmp r1, #0xf000 + beq _0233F74C + b _0233F854 +_0233DE0C: + bl FUN_0204A1CC + bl FUN_022BCA80 + cmp r0, #3 + ldrne r0, _0233EB00 @ =0x0233FCA8 + movne r1, #2 + ldrne r0, [r0] + strne r1, [r0] + bne _0233F854 + bl FUN_02339888 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #1 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233DE44: + bl FUN_023398A4 + cmp r0, #0 + ldrne r0, _0233EB00 @ =0x0233FCA8 + movne r1, #2 + ldrne r0, [r0] + strne r1, [r0] + b _0233F854 +_0233DE60: + bl ov05_0233CAA8 + cmp r0, #1 + bne _0233DEF0 + bl ov05_0233F93C + bl FUN_022BD338 + cmp r0, #0 + beq _0233DE88 + bl FUN_022BCCF4 + cmp r0, #0 + bne _0233DE98 +_0233DE88: + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #3 + ldr r0, [r0] + strb r1, [r0, #0x9c] +_0233DE98: + mov r0, #4 + bl FUN_0233767C + ldr r2, _0233EB1C @ =0x0233FC18 + ldr r1, _0233EB00 @ =0x0233FCA8 + ldr r2, [r2, r0, lsl #3] + ldr r0, [r1] + ldr r3, _0233EB20 @ =0x0233FC14 + str r2, [r0, #4] + mov r0, #0 + ldr r2, _0233EB24 @ =0x000037F0 + str r3, [sp] + str r2, [sp, #4] + ldr r3, [r1] + ldr r2, _0233EB28 @ =0x00000233 + mov r1, r0 + add r3, r3, #4 + bl ov05_0233CADC + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #0x1000 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233DEF0: + bl ov05_0233CAA8 + cmp r0, #0 + bne _0233F854 + bl FUN_022BCCF4 + cmp r0, #0 + beq _0233E018 + bl FUN_020590C0 + cmp r1, #0 + cmpeq r0, #2 + bls _0233E018 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r0, [r0] + add r0, r0, #0x1000 + ldrb r0, [r0, #0x880] + cmp r0, #0 + bne _0233E018 + bl FUN_020590C0 + mov r4, r0 + add r0, sp, #0x2f8 + mov r5, r1 + bl FUN_02023690 + bl ov05_0233F93C + ldr r1, _0233EB00 @ =0x0233FCA8 + mov r3, #0xc + ldr r2, [r1] + mov r0, r4 + str r3, [r2, #4] + ldr r2, _0233EB2C @ =0x00002710 + mov r1, r5 + mov r3, #0 + bl FUN_0208FE48 + str r0, [sp, #0x324] + ldr r2, _0233EB2C @ =0x00002710 + mov r0, r4 + mov r1, r5 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _0233EB2C @ =0x00002710 + mov r3, #0 + bl FUN_0208FE48 + str r0, [sp, #0x320] + ldr r2, _0233EB30 @ =0x05F5E100 + mov r1, r5 + mov r0, r4 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _0233EB2C @ =0x00002710 + mov r3, #0 + bl FUN_0208FE48 + str r0, [sp, #0x31c] + mov r0, #5 + bl FUN_0233767C + ldr r2, _0233EB34 @ =0x0233FB80 + ldr r1, _0233EB00 @ =0x0233FCA8 + ldr r3, [r2, r0, lsl #3] + ldr r2, [r1] + ldr r0, _0233EB38 @ =0x0233FB7C + str r3, [r2, #4] + str r0, [sp] + ldr r2, _0233EB3C @ =0x00003801 + add r0, sp, #0x2f8 + str r2, [sp, #4] + str r0, [sp, #8] + ldr r1, [r1] + mov r0, #0 + add r3, r1, #4 + mov r1, r0 + mov r2, #0x33 + bl ov05_0233CB08 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #0x2000 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E018: + bl ov05_0233F93C + bl FUN_022BD338 + cmp r0, #0 + beq _0233E034 + bl FUN_022BCCF4 + cmp r0, #0 + bne _0233E044 +_0233E034: + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #3 + ldr r0, [r0] + strb r1, [r0, #0x9c] +_0233E044: + mov r0, #6 + bl FUN_0233767C + ldr r2, _0233EB40 @ =0x0233FBF8 + ldr r1, _0233EB00 @ =0x0233FCA8 + ldr r2, [r2, r0, lsl #3] + ldr r0, [r1] + ldr r3, _0233EB44 @ =0x0233FBF4 + str r2, [r0, #4] + mov r0, #0 + ldr r2, _0233EB48 @ =0x00003802 + str r3, [sp] + str r2, [sp, #4] + ldr r3, [r1] + ldr r2, _0233EB28 @ =0x00000233 + mov r1, r0 + add r3, r3, #4 + bl ov05_0233CADC + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB08 @ =0x00002001 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E09C: + add r0, r4, #0x1000 + mov r1, #0 + str r1, [r0, #0x888] + bl ov05_0233CB34 + mov r4, r0 + bl ov05_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #4 + bl FUN_0233768C + cmp r4, #6 + bne _0233E0EC + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r3, #0 + ldr r2, [r0] + mov r1, #0x3000 + str r3, [r2, #0x2cc] + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E0EC: + cmp r4, #7 + bne _0233E114 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r3, #1 + ldr r2, [r0] + mov r1, #0x3000 + str r3, [r2, #0x2cc] + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E114: + cmp r4, #8 + bne _0233E13C + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r3, #2 + ldr r2, [r0] + mov r1, #0x3000 + str r3, [r2, #0x2cc] + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E13C: + cmp r4, #9 + bne _0233E178 + ldr r0, _0233EB00 @ =0x0233FCA8 + mvn r3, #0 + ldr r2, [r0] + ldr r1, _0233EB4C @ =0xD4A51000 + str r3, [r2, #0x2cc] + ldr r2, [r0] + mov r0, #0xe8 + str r1, [r2, #0x2d0] + str r0, [r2, #0x2d4] + rsb r0, r3, #0x1000 + str r0, [r2] + bl FUN_02046D20 + b _0233F854 +_0233E178: + sub r0, r4, #0xc + cmp r0, #1 + bhi _0233F854 + mov r0, #1 + b _0233F858 +_0233E18C: + ldr r1, [r4, #0x2d0] + ldr r2, [r4, #0x2d4] + mov r0, #2 + bl FUN_0233580C + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r3, _0233EB0C @ =0x00001002 + ldr r2, [r0] + mov r1, #0 + str r3, [r2] + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #0x888] + b _0233F854 +_0233E1C0: + bl FUN_02336014 + cmp r0, #2 + bne _0233E1F8 + bl FUN_023370AC + ldr r2, _0233EB00 @ =0x0233FCA8 + ldr r2, [r2] + str r0, [r2, #0x2d0] + str r1, [r2, #0x2d4] + bl FUN_02335FA8 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #0x3000 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E1F8: + cmp r0, #1 + bne _0233F854 + bl FUN_02335FA8 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #2 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E218: + bl ov05_0233CB34 + mov r4, r0 + bl ov05_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #5 + bl FUN_0233768C + cmp r4, #0xb + bne _0233E2D0 + bl ov05_0233F93C + bl FUN_022BD338 + cmp r0, #0 + beq _0233E258 + bl FUN_022BCCF4 + cmp r0, #0 + bne _0233E268 +_0233E258: + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #3 + ldr r0, [r0] + strb r1, [r0, #0x9c] +_0233E268: + mov r0, #6 + bl FUN_0233767C + ldr r2, _0233EB40 @ =0x0233FBF8 + ldr r1, _0233EB00 @ =0x0233FCA8 + ldr r2, [r2, r0, lsl #3] + ldr r0, [r1] + ldr r3, _0233EB44 @ =0x0233FBF4 + str r2, [r0, #4] + mov r0, #0 + ldr r2, _0233EB48 @ =0x00003802 + str r3, [sp] + str r2, [sp, #4] + ldr r3, [r1] + ldr r2, _0233EB28 @ =0x00000233 + mov r1, r0 + add r3, r3, #4 + bl ov05_0233CADC + ldr r1, _0233EB00 @ =0x0233FCA8 + mov r3, #1 + ldr r0, [r1] + add r2, r3, #0x2000 + add r0, r0, #0x1000 + strb r3, [r0, #0x880] + ldr r0, [r1] + str r2, [r0] + b _0233F854 +_0233E2D0: + sub r0, r4, #0xc + cmp r0, #1 + bhi _0233F854 + mov r0, #1 + b _0233F858 +_0233E2E4: + bl ov05_0233CB34 + mov r4, r0 + bl ov05_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #6 + bl FUN_0233768C + cmp r4, #6 + bne _0233E328 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r3, #1 + ldr r2, [r0] + mov r1, #0x3000 + strb r3, [r2, #0x2c8] + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E328: + cmp r4, #0xa + bne _0233E350 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r3, #0 + ldr r2, [r0] + mov r1, #0x3000 + strb r3, [r2, #0x2c8] + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E350: + sub r0, r4, #0xc + cmp r0, #1 + bhi _0233F854 + mov r0, #1 + b _0233F858 +_0233E364: + bl FUN_02338A24 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB10 @ =0x00003001 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E37C: + bl FUN_02338EC4 + cmp r0, #1 + beq _0233E3F4 + cmp r0, #4 + beq _0233E39C + cmp r0, #8 + beq _0233E40C + b _0233F854 +_0233E39C: + bl ov05_0233CAA8 + cmp r0, #1 + bne _0233E3C8 + ldr r1, _0233EB50 @ =0x000037F6 + mov r0, #0 + bl ov05_0233CB68 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB54 @ =0x00003002 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E3C8: + bl ov05_0233CAA8 + cmp r0, #0 + bne _0233F854 + ldr r1, _0233EB58 @ =0x00003806 + mov r0, #0 + bl ov05_0233CB68 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB54 @ =0x00003002 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E3F4: + bl FUN_02338B08 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #2 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E40C: + bl FUN_02338B08 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #0x9000 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E424: + bl ov05_0233CB84 + mov r4, r0 + bl FUN_02338EC4 + cmp r0, #5 + bne _0233E454 + bl FUN_02046D20 + bl FUN_02338C34 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB5C @ =0x0000300F + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E454: + cmp r4, #0xd + bne _0233F854 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r0, [r0] + ldrb r0, [r0, #0x2c8] + cmp r0, #0 + beq _0233E4A8 + bl FUN_022BD338 + cmp r0, #0 + beq _0233E488 + bl FUN_022BCCF4 + cmp r0, #0 + bne _0233E4A8 +_0233E488: + mov r0, #0x14 + mov r1, #6 + bl FUN_023398B0 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB5C @ =0x0000300F + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E4A8: + bl FUN_0205BD78 + ldr r1, _0233EB00 @ =0x0233FCA8 + mov r2, r0 + ldr r0, [r1] + mov r1, #1 + ldr r0, [r0, #0x2c4] + bl FUN_0232C5C8 + ldr r1, _0233EB00 @ =0x0233FCA8 + mov r0, #0 + ldr r1, [r1] + ldr r1, [r1, #0x2c4] + bl FUN_02338C4C + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB60 @ =0x00003003 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E4EC: + bl FUN_02338EC4 + cmp r0, #4 + bne _0233E628 + bl ov05_0233CAA8 + cmp r0, #0 + bne _0233E568 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r0, [r0] + ldrb r1, [r0, #0x2c8] + ldr r0, [r0, #0x2c4] + bl FUN_0232DA1C + cmp r0, #0 + beq _0233E548 + ldr r1, _0233EB00 @ =0x0233FCA8 + mov r0, #9 + ldr r1, [r1] + ldr r1, [r1, #0x2c4] + bl FUN_02338C4C + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB64 @ =0x00003004 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E548: + mov r0, #2 + mov r1, #6 + bl FUN_023398B0 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB5C @ =0x0000300F + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E568: + bl ov05_0233CAA8 + cmp r0, #1 + bne _0233F854 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r2, [r0] + ldr r3, [r2, #0x2cc] + cmp r3, #0 + bge _0233E5C0 + ldr r0, [r2, #0x2c4] + ldr r1, [r2, #0x2d0] + ldr r2, [r2, #0x2d4] + bl FUN_0232DE74 + ldr r1, _0233EB00 @ =0x0233FCA8 + mov r0, #0xb + ldr r1, [r1] + ldr r1, [r1, #0x2c4] + bl FUN_02338C4C + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB68 @ =0x00003010 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E5C0: + cmp r3, #2 + movne r1, #0 + movne r2, #8 + bne _0233E5E0 + bl FUN_02050CD0 + mov r2, r0 + mov r1, r2 + mov r3, #1 +_0233E5E0: + mov r0, #0x10 + str r0, [sp] + ldr r0, _0233EB00 @ =0x0233FCA8 + str r3, [sp, #4] + ldr r0, [r0] + mov r3, #0 + ldr r0, [r0, #0x2c4] + bl FUN_0232DBAC + ldr r1, _0233EB00 @ =0x0233FCA8 + mov r0, #0xa + ldr r1, [r1] + ldr r1, [r1, #0x2c4] + bl FUN_02338C4C + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB6C @ =0x00003020 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E628: + cmp r0, #8 + cmpne r0, #6 + bne _0233F854 + bl FUN_02338B08 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #0x9000 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E64C: + bl FUN_02338EC4 + cmp r0, #4 + bne _0233E694 + mov r0, #0 + bl FUN_02338E1C + bl FUN_0232DB94 + ldr r2, _0233EB00 @ =0x0233FCA8 + ldr r2, [r2] + str r0, [r2, #0x2d0] + str r1, [r2, #0x2d4] + mov r0, #1 + mov r1, #0 + bl FUN_02338C28 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB70 @ =0x00003007 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E694: + cmp r0, #8 + cmpne r0, #6 + bne _0233F854 + bl FUN_02338B08 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #0x9000 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E6B8: + bl FUN_02338EC4 + cmp r0, #4 + bne _0233E780 + mov r0, #0 + bl FUN_02338E1C + mov r4, r0 + bl FUN_0232DCCC + ldr r2, _0233EB00 @ =0x0233FCA8 + ldr r1, [r2] + add r1, r1, #0x1000 + str r0, [r1, #0x7d4] + ldr r2, [r2] + add r0, r2, #0x1000 + ldr r0, [r0, #0x7d4] + cmp r0, #0 + bne _0233E718 + mov r0, #1 + mov r1, #0 + bl FUN_02338C28 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB70 @ =0x00003007 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E718: + add r1, r2, #0x350 + mov r0, r4 + add r2, r2, #0x2d0 + mov r3, #0x10 + bl FUN_0232DD00 + add r0, sp, #0x2a8 + bl FUN_02023690 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB74 @ =0x0233FC44 + ldr r2, [r0] + add r0, sp, #0x1a8 + ldr r2, [r2, #0x2cc] + lsl r2, r2, #1 + ldrh r1, [r1, r2] + bl FUN_020258B8 + add r3, sp, #0x1a8 + ldr r1, _0233EB78 @ =0x000037F9 + add r2, sp, #0x2a8 + mov r0, #0x1c + str r3, [sp, #0x2e0] + bl ov05_02046BE8 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB7C @ =0x00003021 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E780: + cmp r0, #8 + cmpne r0, #6 + bne _0233F854 + bl FUN_02338B08 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #0x9000 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E7A4: + bl FUN_02338EC4 + mov r4, r0 + bl ov05_0233CB84 + cmp r4, #5 + bne _0233E7D4 + bl FUN_02046D20 + bl FUN_02338C34 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB5C @ =0x0000300F + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E7D4: + cmp r0, #0xd + bne _0233F854 + bl FUN_02046D20 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB80 @ =0x00003022 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E7F4: + add r0, r4, #0x1700 + ldrsb r0, [r0, #0xdc] + mvn r1, #1 + cmp r0, r1 + bne _0233E874 + add r0, r4, #0x1000 + ldr r0, [r0, #0x7d8] + add r1, r4, #0x1000 + cmp r0, #0 + movlt r0, #0 + str r0, [r1, #0x7e0] + mov r3, #0x10 + ldr r2, _0233EB84 @ =0x000037FA + str r3, [r1, #0x7ec] + add r0, r4, #0x1700 + strh r2, [r0, #0xe8] + str r3, [r1, #0x7ec] + mov r0, #0xd + str r0, [r1, #0x7e4] + ldr r5, [r1, #0x7d4] + add r2, r4, #0x7e0 + str r5, [sp] + mov r5, #8 + ldr r0, _0233EB88 @ =0x0233FC4C + ldr r1, _0233EB8C @ =0x00441C33 + ldr r3, _0233EB90 @ =ov05_0233F9C4 + add r2, r2, #0x1000 + str r5, [sp, #4] + bl FUN_0202BA20 + add r1, r4, #0x1000 + strb r0, [r1, #0x7dc] + b _0233E878 +_0233E874: + bl FUN_0202BBF0 +_0233E878: + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB04 @ =0x00003023 + ldr r0, [r0] + str r1, [r0] +_0233E888: + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r0, [r0] + add r0, r0, #0x1700 + ldrsb r0, [r0, #0xdc] + bl FUN_0202BCFC + ldr r1, _0233EB00 @ =0x0233FCA8 + ldr r1, [r1] + add r1, r1, #0x1000 + str r0, [r1, #0x7d8] + bl FUN_02338EC4 + cmp r0, #5 + bne _0233E8D4 + bl ov05_0233F980 + bl FUN_02338C34 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB5C @ =0x0000300F + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E8D4: + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r0, [r0] + add r0, r0, #0x1700 + ldrsb r0, [r0, #0xdc] + bl FUN_0202BCBC + cmp r0, #0 + bne _0233F854 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r0, [r0] + add r0, r0, #0x1700 + ldrsb r0, [r0, #0xdc] + bl FUN_0202BD10 + mov r4, r0 + bl ov05_0233F980 + cmp r4, #0 + bge _0233E948 + mov r0, #7 + bl FUN_0233767C + str r0, [sp] + mov r0, #0 + ldr r2, _0233EB38 @ =0x0233FB7C + ldr r3, _0233EB94 @ =0x000037FC + mov r1, r0 + bl ov05_0233CAC8 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB98 @ =0x00003028 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E948: + ldr r3, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB9C @ =0x0233FC5C + ldr r0, [r3] + ldr r2, _0233EBA0 @ =ov05_0233FA74 + add r0, r0, #0x1000 + str r4, [r0, #0x7d8] + ldr r0, [r3] + add r0, r0, #0x78 + add r0, r0, #0x1800 + bl FUN_0204707C + mov r0, #8 + bl FUN_0233767C + str r0, [sp] + mov r0, #0 + ldr r2, _0233EB38 @ =0x0233FB7C + ldr r3, _0233EBA4 @ =0x000037FB + mov r1, r0 + bl ov05_0233CAC8 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EBA8 @ =0x00003024 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233E9A4: + bl FUN_02338EC4 + mov r5, r0 + bl ov05_0233CB34 + mov r4, r0 + bl ov05_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #8 + bl FUN_0233768C + cmp r5, #5 + bne _0233EA04 + bl FUN_02046BB4 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r0, [r0] + add r0, r0, #0x78 + add r0, r0, #0x1800 + bl FUN_02047150 + bl FUN_02046D20 + bl FUN_02338C34 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB5C @ =0x0000300F + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233EA04: + cmp r4, #0xb + bne _0233EA40 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r0, [r0] + add r0, r0, #0x78 + add r0, r0, #0x1800 + bl FUN_02047150 + ldr r1, _0233EB50 @ =0x000037F6 + mov r0, #0 + bl ov05_0233CB68 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EBAC @ =0x00003025 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233EA40: + sub r0, r4, #0xc + cmp r0, #1 + bhi _0233F854 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r0, [r0] + add r0, r0, #0x78 + add r0, r0, #0x1800 + bl FUN_02047150 + bl FUN_02046D20 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB80 @ =0x00003022 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233EA78: + bl FUN_02338EC4 + mov r4, r0 + bl ov05_0233CB84 + cmp r4, #5 + bne _0233EAAC + bl FUN_02046BB4 + bl FUN_02046D20 + bl FUN_02338C34 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB5C @ =0x0000300F + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233EAAC: + cmp r0, #0xd + bne _0233F854 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r2, [r0] + add r0, r2, #0x1000 + ldr r1, [r0, #0x7d8] + ldr r0, [r2, #0x2c4] + add r2, r2, r1, lsl #3 + ldr r1, [r2, #0x2d0] + ldr r2, [r2, #0x2d4] + bl FUN_0232E038 + ldr r1, _0233EB00 @ =0x0233FCA8 + mov r0, #0xc + ldr r1, [r1] + ldr r1, [r1, #0x2c4] + bl FUN_02338C4C + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EBB0 @ =0x00003026 + ldr r0, [r0] + str r1, [r0] + b _0233F854 + .align 2, 0 +_0233EB00: .4byte 0x0233FCA8 +_0233EB04: .4byte 0x00003023 +_0233EB08: .4byte 0x00002001 +_0233EB0C: .4byte 0x00001002 +_0233EB10: .4byte 0x00003001 +_0233EB14: .4byte 0x00004002 +_0233EB18: .4byte 0x00009011 +_0233EB1C: .4byte 0x0233FC18 +_0233EB20: .4byte 0x0233FC14 +_0233EB24: .4byte 0x000037F0 +_0233EB28: .4byte 0x00000233 +_0233EB2C: .4byte 0x00002710 +_0233EB30: .4byte 0x05F5E100 +_0233EB34: .4byte 0x0233FB80 +_0233EB38: .4byte 0x0233FB7C +_0233EB3C: .4byte 0x00003801 +_0233EB40: .4byte 0x0233FBF8 +_0233EB44: .4byte 0x0233FBF4 +_0233EB48: .4byte 0x00003802 +_0233EB4C: .4byte 0xD4A51000 +_0233EB50: .4byte 0x000037F6 +_0233EB54: .4byte 0x00003002 +_0233EB58: .4byte 0x00003806 +_0233EB5C: .4byte 0x0000300F +_0233EB60: .4byte 0x00003003 +_0233EB64: .4byte 0x00003004 +_0233EB68: .4byte 0x00003010 +_0233EB6C: .4byte 0x00003020 +_0233EB70: .4byte 0x00003007 +_0233EB74: .4byte 0x0233FC44 +_0233EB78: .4byte 0x000037F9 +_0233EB7C: .4byte 0x00003021 +_0233EB80: .4byte 0x00003022 +_0233EB84: .4byte 0x000037FA +_0233EB88: .4byte 0x0233FC4C +_0233EB8C: .4byte 0x00441C33 +_0233EB90: .4byte ov05_0233F9C4 +_0233EB94: .4byte 0x000037FC +_0233EB98: .4byte 0x00003028 +_0233EB9C: .4byte 0x0233FC5C +_0233EBA0: .4byte ov05_0233FA74 +_0233EBA4: .4byte 0x000037FB +_0233EBA8: .4byte 0x00003024 +_0233EBAC: .4byte 0x00003025 +_0233EBB0: .4byte 0x00003026 +_0233EBB4: + bl FUN_02338EC4 + cmp r0, #4 + bne _0233ED00 + mov r0, #0 + bl FUN_02338E1C + ldr r1, _0233EB00 @ =0x0233FCA8 + mov r2, #0x148 + ldr r3, [r1] + mov r4, r0 + add r1, r3, #0x1000 + ldr r1, [r1, #0x7d8] + add r3, r3, #0x350 + mla r5, r1, r2, r3 + mov r7, #0 + bl FUN_0232E06C + cmp r0, #0 + beq _0233EC04 + mov r0, r4 + mov r1, r5 + bl FUN_0232E0A4 +_0233EC04: + mov r8, #0 + mov r6, r8 + add r4, r5, #0x42 + mov fp, #0x4c +_0233EC14: + mul sb, r6, fp + add sl, r5, sb + ldrh r0, [sl, #0x18] + tst r0, #1 + movne r0, #1 + moveq r0, #0 + tst r0, #0xff + beq _0233EC8C + ldrsh r0, [sl, #0x20] + add r8, r8, #1 + bl FUN_02062B64 + cmp r0, #0 + bne _0233EC88 + ldrsh r0, [sl, #0x20] + bl FUN_02054F18 + cmp r0, #0 + bne _0233EC88 + add r0, r4, sb + bl FUN_02014EF8 + cmp r0, #0 + beq _0233EC88 + ldrb r0, [sl, #0x1c] + cmp r0, #1 + blo _0233EC88 + cmp r0, #0x64 + bhi _0233EC88 + ldrb r0, [sl, #0x3c] + cmp r0, #0xb + blo _0233EC8C +_0233EC88: + mov r7, #1 +_0233EC8C: + add r6, r6, #1 + cmp r6, #4 + blt _0233EC14 + cmp r8, #0 + moveq r7, #1 + cmp r7, #0 + bne _0233ECE0 + mov r0, r5 + bl FUN_02058FCC + ldr r1, _0233F860 @ =0x000037FD + mov r0, #0x1c + bl ov05_0233CB68 + ldr r1, _0233EB00 @ =0x0233FCA8 + ldr r3, _0233F864 @ =0x00002A30 + ldr r0, [r1] + ldr r2, _0233F868 @ =0x00003027 + add r0, r0, #0x1000 + str r3, [r0, #0x884] + ldr r0, [r1] + str r2, [r0] + b _0233F854 +_0233ECE0: + mov r0, #2 + mov r1, #6 + bl FUN_023398B0 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB5C @ =0x0000300F + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233ED00: + cmp r0, #8 + cmpne r0, #6 + bne _0233F854 + bl FUN_02338B08 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #0x9000 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233ED24: + bl FUN_02339988 + bl FUN_02338EC4 + mov r4, r0 + bl ov05_0233CB84 + mov r5, r0 + add r1, sp, #0xe + mov r0, #0 + bl FUN_020061EC + bl FUN_0204AE60 + cmp r0, #0 + moveq r0, #0 + beq _0233ED6C + add r0, sp, #0x34 + bl FUN_02006C1C + add r0, sp, #0x34 + mov r1, #1 + mov r2, #0 + bl FUN_02006C8C +_0233ED6C: + ldrh r1, [sp, #0xe] + cmp r1, #0 + cmpeq r0, #0 + ldrne r0, _0233EB00 @ =0x0233FCA8 + ldrne r1, _0233F864 @ =0x00002A30 + ldrne r0, [r0] + addne r0, r0, #0x1000 + strne r1, [r0, #0x884] + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r0, [r0] + add r0, r0, #0x1000 + ldr r1, [r0, #0x884] + cmp r1, #0 + subgt r1, r1, #1 + strgt r1, [r0, #0x884] + cmp r4, #5 + bne _0233EDCC + bl FUN_02046D20 + bl FUN_02338C34 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB5C @ =0x0000300F + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233EDCC: + cmp r5, #0xd + beq _0233EDEC + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r0, [r0] + add r0, r0, #0x1000 + ldr r0, [r0, #0x884] + cmp r0, #0 + bgt _0233F854 +_0233EDEC: + mov r0, #1 + mov r1, #0 + bl FUN_02338C28 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB70 @ =0x00003007 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233EE0C: + bl FUN_02338EC4 + mov r5, r0 + bl ov05_0233CB34 + mov r4, r0 + bl ov05_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #7 + bl FUN_0233768C + cmp r5, #5 + bne _0233EE58 + bl FUN_02046BB4 + bl FUN_02046D20 + bl FUN_02338C34 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB5C @ =0x0000300F + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233EE58: + cmp r4, #0xb + bne _0233EE94 + ldr r0, _0233EB00 @ =0x0233FCA8 + mvn r3, #0 + ldr r1, [r0] + mov r0, #1 + add r2, r1, #0x1000 + mov r1, #0 + str r3, [r2, #0x7d8] + bl FUN_02338C28 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB70 @ =0x00003007 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233EE94: + sub r0, r4, #0xc + cmp r0, #1 + bhi _0233F854 + bl FUN_02046D20 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB80 @ =0x00003022 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233EEB8: + bl FUN_02338EC4 + cmp r0, #4 + bne _0233EF9C + mov r0, #0 + bl FUN_02338E1C + mov r5, r0 + bl FUN_0232DEA8 + mov r4, r0 + mov r0, r5 + bl FUN_0232DEE0 + cmp r4, #0 + bne _0233EF40 + mov r4, #0 + ldr r3, _0233EB00 @ =0x0233FCA8 + mov r1, r4 + mov r0, #0x4c +_0233EEF8: + ldr r2, [r3] + mla r2, r4, r0, r2 + add r2, r2, #0x300 + add r4, r4, #1 + strh r1, [r2, #0x70] + cmp r4, #4 + blt _0233EEF8 + ldr r2, _0233EB00 @ =0x0233FCA8 + mov r0, #1 + ldr r2, [r2] + add r2, r2, #0x1000 + str r0, [r2, #0x7d0] + bl FUN_02338C28 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB70 @ =0x00003007 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233EF40: + ldr r1, _0233EB00 @ =0x0233FCA8 + ldr r2, [r1] + strb r0, [r2, #0x2c8] + ldr r1, [r1] + mov r0, r5 + add r1, r1, #0x350 + bl FUN_0232DF18 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r2, [r0] + ldr r0, [r2, #0x2c4] + ldr r1, [r2, #0x2d0] + ldr r2, [r2, #0x2d4] + bl FUN_0232E038 + ldr r1, _0233EB00 @ =0x0233FCA8 + mov r0, #0xc + ldr r1, [r1] + ldr r1, [r1, #0x2c4] + bl FUN_02338C4C + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233F86C @ =0x00003011 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233EF9C: + cmp r0, #8 + cmpne r0, #6 + bne _0233F854 + bl FUN_02338B08 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #0x9000 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233EFC0: + bl FUN_02338EC4 + cmp r0, #4 + bne _0233F118 + mov r0, #0 + bl FUN_02338E1C + mov r4, r0 + mov r5, #0 + bl FUN_0232E06C + cmp r0, #0 + beq _0233F0AC + ldr r1, _0233EB00 @ =0x0233FCA8 + mov r0, r4 + ldr r1, [r1] + mov r3, r5 + add r8, r1, #0x350 + add r2, r1, #0x1000 + mov r1, r8 + str r3, [r2, #0x7d0] + bl FUN_0232E0A4 + mov r7, r5 + mov r6, r7 + add r4, r8, #0x42 + mov fp, #0x4c +_0233F01C: + mul sb, r6, fp + add sl, r8, sb + ldrh r0, [sl, #0x18] + tst r0, #1 + movne r0, #1 + moveq r0, #0 + tst r0, #0xff + beq _0233F094 + ldrsh r0, [sl, #0x20] + add r7, r7, #1 + bl FUN_02062B64 + cmp r0, #0 + bne _0233F090 + ldrsh r0, [sl, #0x20] + bl FUN_02054F18 + cmp r0, #0 + bne _0233F090 + add r0, r4, sb + bl FUN_02014EF8 + cmp r0, #0 + beq _0233F090 + ldrb r0, [sl, #0x1c] + cmp r0, #1 + blo _0233F090 + cmp r0, #0x64 + bhi _0233F090 + ldrb r0, [sl, #0x3c] + cmp r0, #0xb + blo _0233F094 +_0233F090: + mov r5, #1 +_0233F094: + add r6, r6, #1 + cmp r6, #4 + blt _0233F01C + cmp r7, #0 + moveq r5, #1 + b _0233F0D0 +_0233F0AC: + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, [r0] + ldrb r0, [r1, #0x2c8] + cmp r0, #0 + add r0, r1, #0x1000 + movne r1, #2 + strne r1, [r0, #0x7d0] + moveq r1, #3 + streq r1, [r0, #0x7d0] +_0233F0D0: + cmp r5, #0 + bne _0233F0F8 + mov r0, #1 + mov r1, #0 + bl FUN_02338C28 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB70 @ =0x00003007 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233F0F8: + mov r0, #2 + mov r1, #6 + bl FUN_023398B0 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB5C @ =0x0000300F + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233F118: + cmp r0, #8 + cmpne r0, #6 + bne _0233F854 + bl FUN_02338B08 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #0x9000 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233F13C: + bl FUN_02339988 + bl FUN_02338EC4 + mov r4, r0 + bl ov05_0233CB84 + mov r5, r0 + add r1, sp, #0xc + mov r0, #0 + bl FUN_020061EC + bl FUN_0204AE60 + cmp r0, #0 + moveq r0, #0 + beq _0233F184 + add r0, sp, #0x10 + bl FUN_02006C1C + add r0, sp, #0x10 + mov r1, #1 + mov r2, #0 + bl FUN_02006C8C +_0233F184: + ldrh r1, [sp, #0xc] + cmp r1, #0 + cmpeq r0, #0 + ldrne r0, _0233EB00 @ =0x0233FCA8 + ldrne r1, _0233F864 @ =0x00002A30 + ldrne r0, [r0] + addne r0, r0, #0x1000 + strne r1, [r0, #0x884] + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r0, [r0] + add r0, r0, #0x1000 + ldr r1, [r0, #0x884] + cmp r1, #0 + subgt r1, r1, #1 + strgt r1, [r0, #0x884] + cmp r4, #5 + bne _0233F1E4 + bl FUN_02046D20 + bl FUN_02338C34 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB5C @ =0x0000300F + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233F1E4: + cmp r5, #0xd + beq _0233F204 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r0, [r0] + add r0, r0, #0x1000 + ldr r0, [r0, #0x884] + cmp r0, #0 + bgt _0233F854 +_0233F204: + mov r0, #1 + mov r1, #0 + bl FUN_02338C28 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB70 @ =0x00003007 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233F224: + bl FUN_02338EC4 + cmp r0, #0 + beq _0233F854 + bl FUN_02338B08 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #0x9000 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233F248: + bl FUN_02338EC4 + cmp r0, #6 + bne _0233F3EC + bl FUN_02338B08 + bl ov05_0233CAA8 + cmp r0, #1 + bne _0233F3B8 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r2, [r0] + ldr r0, [r2, #0x2cc] + cmp r0, #0 + add r0, r2, #0x1000 + bge _0233F35C + ldr r0, [r0, #0x7d0] + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _0233F854 +_0233F28C: @ jump table + b _0233F29C @ case 0 + b _0233F2F4 @ case 1 + b _0233F328 @ case 2 + b _0233F2F4 @ case 3 +_0233F29C: + add r0, r2, #0x350 + bl FUN_02058FCC + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233F870 @ =0x000037FF + ldr r0, [r0] + mov r3, #0 + add r2, r0, #0x1000 + mov r0, #0x1c + str r3, [r2, #0x7d8] + bl ov05_0233CB68 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB9C @ =0x0233FC5C + ldr r0, [r0] + ldr r2, _0233EBA0 @ =ov05_0233FA74 + add r0, r0, #0x78 + add r0, r0, #0x1800 + bl FUN_0204707C + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #0x4000 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233F2F4: + mov r0, #9 + bl FUN_0233767C + str r0, [sp] + mov r0, #0 + ldr r2, _0233F874 @ =0x0233FB4C + ldr r3, _0233F878 @ =0x000037F7 + mov r1, r0 + bl ov05_0233CAC8 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233F87C @ =0x00004001 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233F328: + mov r0, #9 + bl FUN_0233767C + str r0, [sp] + mov r0, #0 + ldr r2, _0233F874 @ =0x0233FB4C + ldr r3, _0233F880 @ =0x000037F8 + mov r1, r0 + bl ov05_0233CAC8 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233F87C @ =0x00004001 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233F35C: + ldr r1, [r0, #0x7d4] + cmp r1, #0 + bne _0233F39C + mov r0, #0xa + bl FUN_0233767C + str r0, [sp] + mov r0, #0 + ldr r2, _0233F874 @ =0x0233FB4C + ldr r3, _0233F884 @ =0x000037FE + mov r1, r0 + bl ov05_0233CAC8 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB14 @ =0x00004002 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233F39C: + ldr r0, [r0, #0x7d8] + cmp r0, #0 + movlt r0, #0x9000 + strlt r0, [r2] + movge r0, #0x8000 + strge r0, [r2] + b _0233F854 +_0233F3B8: + bl ov05_0233CAA8 + cmp r0, #0 + bne _0233F854 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, [r0] + ldr r0, [r1, #0x2d0] + ldr r1, [r1, #0x2d4] + bl FUN_020590DC + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #0x8000 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233F3EC: + cmp r0, #8 + bne _0233F854 + bl FUN_02338B08 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #0x9000 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233F40C: + bl ov05_0233CB84 + cmp r0, #0xd + bne _0233F854 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r0, [r0] + add r0, r0, #0x78 + add r0, r0, #0x1800 + bl FUN_02047150 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #0x8000 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233F440: + bl ov05_0233CB34 + mov r4, r0 + bl ov05_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #9 + bl FUN_0233768C + cmp r4, #0xb + bne _0233F488 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r3, #0x9000 + ldr r2, [r0] + mov r1, #2 + str r3, [r2] + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #0x888] + b _0233F854 +_0233F488: + sub r0, r4, #0xc + cmp r0, #1 + ldrls r0, _0233EB00 @ =0x0233FCA8 + movls r1, #0x9000 + ldrls r0, [r0] + strls r1, [r0] + b _0233F854 +_0233F4A4: + bl ov05_0233CB34 + mov r4, r0 + bl ov05_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0xa + bl FUN_0233768C + cmp r4, #0xb + bne _0233F4EC + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r3, #0x9000 + ldr r2, [r0] + mov r1, #1 + str r3, [r2] + ldr r0, [r0] + add r0, r0, #0x1000 + str r1, [r0, #0x888] + b _0233F854 +_0233F4EC: + sub r0, r4, #0xc + cmp r0, #1 + ldrls r0, _0233EB00 @ =0x0233FCA8 + movls r1, #0x9000 + ldrls r0, [r0] + strls r1, [r0] + b _0233F854 +_0233F508: + mov r0, #0 + bl FUN_022BD264 + ldr r1, _0233EB00 @ =0x0233FCA8 + mov r3, #0 + ldr r0, [r1] + ldr r2, _0233F888 @ =0x00008002 + add r0, r0, #0x1000 + str r3, [r0, #0x87c] + ldr r0, [r1] + str r2, [r0] + b _0233F854 +_0233F534: + add r0, r4, #0x1000 + ldr r0, [r0, #0x87c] + cmp r0, #4 + addls pc, pc, r0, lsl #2 + b _0233F62C +_0233F548: @ jump table + b _0233F55C @ case 0 + b _0233F578 @ case 1 + b _0233F5A8 @ case 2 + b _0233F608 @ case 3 + b _0233F61C @ case 4 +_0233F55C: + bl FUN_022BD780 + ldr r1, _0233F88C @ =0x0000023B + mov r0, #0 + bl ov05_0233CB68 + add r0, r4, #0x1000 + mov r1, #1 + str r1, [r0, #0x87c] +_0233F578: + bl ov05_0233CB84 + cmp r0, #0xd + bne _0233F62C + mov r0, #0xe0 + mov r1, #0x88 + mov r2, #1 + bl FUN_02029F88 + add r0, r4, #0x1000 + mov r1, #2 + str r1, [r0, #0x87c] + bl FUN_02003B94 + b _0233F62C +_0233F5A8: + mov r0, #3 + bl FUN_02048F84 + mov r5, r0 + bl FUN_02003BC8 + bl FUN_02029FBC + cmp r5, #0 + bne _0233F5E0 + mov r0, #0x1c + mov r1, #0x23c + bl ov05_0233CB68 + add r0, r4, #0x1000 + mov r1, #3 + str r1, [r0, #0x87c] + b _0233F62C +_0233F5E0: + cmp r5, #1 + moveq r0, #3 + beq _0233F630 + ldr r1, _0233F890 @ =0x00000239 + mov r0, #0x1c + bl ov05_0233CB68 + add r0, r4, #0x1000 + mov r1, #4 + str r1, [r0, #0x87c] + b _0233F62C +_0233F608: + bl ov05_0233CB84 + cmp r0, #0xd + bne _0233F62C + mov r0, #1 + b _0233F630 +_0233F61C: + bl ov05_0233CB84 + cmp r0, #0xd + moveq r0, #2 + beq _0233F630 +_0233F62C: + mov r0, #0 +_0233F630: + cmp r0, #1 + bne _0233F730 + bl ov05_0233CAA8 + cmp r0, #1 + bne _0233F664 + mov r0, #0x1c + mov r1, #0x3800 + bl ov05_0233CB68 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #0xf000 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233F664: + ldr r1, _0233EB00 @ =0x0233FCA8 + add r0, sp, #0x158 + ldr r1, [r1] + ldr r5, [r1, #0x2d0] + ldr r4, [r1, #0x2d4] + bl FUN_02023690 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r0, [r0] + ldrb r0, [r0, #0x2c8] + cmp r0, #0 + ldrne r0, _0233F894 @ =0x00003803 + ldreq r0, _0233F898 @ =0x00003804 + lsl r1, r0, #0x10 + add r0, sp, #0x58 + lsr r1, r1, #0x10 + bl FUN_020258B8 + ldr r2, _0233EB2C @ =0x00002710 + mov r0, r5 + mov r1, r4 + mov r3, #0 + bl FUN_0208FE48 + str r0, [sp, #0x184] + ldr r2, _0233EB2C @ =0x00002710 + mov r0, r5 + mov r1, r4 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _0233EB2C @ =0x00002710 + mov r3, #0 + bl FUN_0208FE48 + str r0, [sp, #0x180] + ldr r2, _0233EB30 @ =0x05F5E100 + mov r1, r4 + mov r0, r5 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _0233EB2C @ =0x00002710 + mov r3, #0 + bl FUN_0208FE48 + add r1, sp, #0x58 + str r1, [sp, #0x190] + str r0, [sp, #0x17c] + ldr r1, _0233F89C @ =0x00003807 + mov r0, #0x1c + add r2, sp, #0x158 + bl ov05_02046BE8 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #0xf000 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233F730: + cmp r0, #3 + moveq r0, #3 + beq _0233F858 + cmp r0, #2 + bne _0233F854 + mov r0, #1 + b _0233F858 +_0233F74C: + bl ov05_0233CB84 + cmp r0, #0xd + bne _0233F854 + mov r0, #2 + b _0233F858 +_0233F760: + bl FUN_022BD274 + cmp r0, #0 + ldrne r0, _0233EB00 @ =0x0233FCA8 + ldrne r1, _0233F8A0 @ =0x00009010 + ldrne r0, [r0] + strne r1, [r0] + bne _0233F854 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r0, [r0] + add r0, r0, #0x1000 + ldr r0, [r0, #0x888] + cmp r0, #1 + bne _0233F7AC + bl ov05_0233F8A8 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #0x1000 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233F7AC: + cmp r0, #2 + bne _0233F7CC + bl FUN_02046D20 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233F8A4 @ =0x00001001 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233F7CC: + mov r0, #1 + b _0233F858 +_0233F7D4: + bl FUN_0233769C + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233EB18 @ =0x00009011 + ldr r0, [r0] + str r1, [r0] +_0233F7E8: + bl FUN_02337718 + cmp r0, #1 + cmpne r0, #3 + bne _0233F854 + bl FUN_023376DC + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r0, [r0] + add r0, r0, #0x1000 + ldr r0, [r0, #0x888] + cmp r0, #1 + bne _0233F82C + bl ov05_0233F8A8 + ldr r0, _0233EB00 @ =0x0233FCA8 + mov r1, #0x1000 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233F82C: + cmp r0, #2 + bne _0233F84C + bl FUN_02046D20 + ldr r0, _0233EB00 @ =0x0233FCA8 + ldr r1, _0233F8A4 @ =0x00001001 + ldr r0, [r0] + str r1, [r0] + b _0233F854 +_0233F84C: + mov r0, #1 + b _0233F858 +_0233F854: + mov r0, #0 +_0233F858: + add sp, sp, #0x348 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0233F860: .4byte 0x000037FD +_0233F864: .4byte 0x00002A30 +_0233F868: .4byte 0x00003027 +_0233F86C: .4byte 0x00003011 +_0233F870: .4byte 0x000037FF +_0233F874: .4byte 0x0233FB4C +_0233F878: .4byte 0x000037F7 +_0233F87C: .4byte 0x00004001 +_0233F880: .4byte 0x000037F8 +_0233F884: .4byte 0x000037FE +_0233F888: .4byte 0x00008002 +_0233F88C: .4byte 0x0000023B +_0233F890: .4byte 0x00000239 +_0233F894: .4byte 0x00003803 +_0233F898: .4byte 0x00003804 +_0233F89C: .4byte 0x00003807 +_0233F8A0: .4byte 0x00009010 +_0233F8A4: .4byte 0x00001001 + arm_func_end ov05_0233DBDC + + arm_func_start ov05_0233F8A8 +ov05_0233F8A8: @ 0x0233F8A8 + push {r3, lr} + sub sp, sp, #8 + bl ov05_0233F93C + bl FUN_022BD338 + cmp r0, #0 + beq _0233F8CC + bl FUN_022BCCF4 + cmp r0, #0 + bne _0233F8DC +_0233F8CC: + ldr r0, _0233F928 @ =0x0233FCA8 + mov r1, #3 + ldr r0, [r0] + strb r1, [r0, #0x9c] +_0233F8DC: + mov r0, #4 + bl FUN_0233767C + ldr r2, _0233F92C @ =0x0233FC18 + ldr r1, _0233F928 @ =0x0233FCA8 + ldr r2, [r2, r0, lsl #3] + ldr r0, [r1] + ldr r3, _0233F930 @ =0x0233FC14 + str r2, [r0, #4] + mov r0, #0 + ldr r2, _0233F934 @ =0x000037F0 + str r3, [sp] + str r2, [sp, #4] + ldr r3, [r1] + ldr r2, _0233F938 @ =0x00000233 + mov r1, r0 + add r3, r3, #4 + bl ov05_0233CADC + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_0233F928: .4byte 0x0233FCA8 +_0233F92C: .4byte 0x0233FC18 +_0233F930: .4byte 0x0233FC14 +_0233F934: .4byte 0x000037F0 +_0233F938: .4byte 0x00000233 + arm_func_end ov05_0233F8A8 + + arm_func_start ov05_0233F93C +ov05_0233F93C: @ 0x0233F93C + push {r3, lr} + ldr r0, _0233F97C @ =0x0233FCA8 + mov r1, #0x98 + ldr r0, [r0] + add r0, r0, #4 + bl FUN_02003250 + ldr r0, _0233F97C @ =0x0233FCA8 + mov r1, #6 + ldr r0, [r0] + add r0, r0, #0x9c + bl FUN_02003250 + ldr r0, _0233F97C @ =0x0233FCA8 + ldr r1, [r0] + add r0, r1, #0x9c + str r0, [r1, #0x64] + pop {r3, pc} + .align 2, 0 +_0233F97C: .4byte 0x0233FCA8 + arm_func_end ov05_0233F93C + + arm_func_start ov05_0233F980 +ov05_0233F980: @ 0x0233F980 + push {r4, lr} + ldr r0, _0233F9C0 @ =0x0233FCA8 + mvn r1, #1 + ldr r4, [r0] + add r0, r4, #0x1700 + ldrsb r0, [r0, #0xdc] + cmp r0, r1 + popeq {r4, pc} + bl FUN_0202836C + add r0, r4, #0x1700 + ldrsb r0, [r0, #0xdc] + bl FUN_0202BC44 + add r0, r4, #0x1000 + mvn r1, #1 + strb r1, [r0, #0x7dc] + pop {r4, pc} + .align 2, 0 +_0233F9C0: .4byte 0x0233FCA8 + arm_func_end ov05_0233F980 + + arm_func_start ov05_0233F9C4 +ov05_0233F9C4: @ 0x0233F9C4 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x94 + ldr r2, _0233FA68 @ =0x0233FCA8 + mov r6, r0 + add r0, sp, #0x44 + mov r7, r1 + ldr r4, [r2] + bl FUN_02023690 + mov r0, #0x148 + mul r5, r7, r0 + bl FUN_020205A0 + add r1, r4, r5 + add r1, r1, #0x300 + ldrsb r1, [r1, #0x50] + cmp r1, r0 + bne _0233FA20 + add r0, r4, #0x52 + add r1, r0, #0x300 + add r0, sp, #4 + add r1, r1, r5 + mov r2, #0x14 + bl FUN_020251F4 + b _0233FA2C +_0233FA20: + ldr r1, _0233FA6C @ =0x00000235 + add r0, sp, #4 + bl FUN_020258B8 +_0233FA2C: + add r1, sp, #4 + add r0, r4, r5 + str r1, [sp, #0x7c] + ldrb r0, [r0, #0x351] + ldr r2, _0233FA70 @ =0x0233FC6C + add r4, sp, #0x44 + str r0, [sp, #0x54] + mov r0, r6 + mov r1, #0x100 + mov r3, #0 + str r4, [sp] + bl FUN_020223F0 + mov r0, r6 + add sp, sp, #0x94 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0233FA68: .4byte 0x0233FCA8 +_0233FA6C: .4byte 0x00000235 +_0233FA70: .4byte 0x0233FC6C + arm_func_end ov05_0233F9C4 + + arm_func_start ov05_0233FA74 +ov05_0233FA74: @ 0x0233FA74 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x194 + ldr r1, _0233FB40 @ =0x0233FCA8 + mov r6, r0 + ldr r4, [r1] + add r0, sp, #0x144 + bl FUN_02023690 + add r0, r4, #0x1000 + ldr r1, [r0, #0x7d8] + mov r0, #0x148 + mul r5, r1, r0 + bl FUN_020205A0 + add r1, r4, r5 + add r1, r1, #0x300 + ldrsb r1, [r1, #0x50] + cmp r1, r0 + bne _0233FAD4 + add r0, r4, #0x52 + add r1, r0, #0x300 + add r0, sp, #4 + add r1, r1, r5 + mov r2, #0x14 + bl FUN_020251F4 + b _0233FAE0 +_0233FAD4: + ldr r1, _0233FB44 @ =0x00000235 + add r0, sp, #4 + bl FUN_020258B8 +_0233FAE0: + add r1, sp, #4 + add r0, r4, #0x1000 + str r1, [sp, #0x17c] + ldr r1, [r0, #0x7d8] + mov r0, #0x148 + mla r0, r1, r0, r4 + ldrb r1, [r0, #0x351] + ldr r2, _0233FB48 @ =0x0233FC6C + add r4, sp, #0x144 + str r1, [sp, #0x154] + add r0, sp, #0x44 + mov r1, #0x100 + mov r3, #0 + str r4, [sp] + bl FUN_020223F0 + add r3, sp, #0x44 + mov r0, r6 + mov r1, #4 + mov r2, #2 + bl FUN_02026214 + mov r0, r6 + bl FUN_02027AF0 + add sp, sp, #0x194 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0233FB40: .4byte 0x0233FCA8 +_0233FB44: .4byte 0x00000235 +_0233FB48: .4byte 0x0233FC6C + arm_func_end ov05_0233FA74 + @ 0x0233FB4C diff --git a/asm/overlay_06.s b/asm/overlay_06.s index 74e9420e..1b2575b0 100644 --- a/asm/overlay_06.s +++ b/asm/overlay_06.s @@ -3,3 +3,2385 @@ .include "global.inc" .text + + arm_func_start ov06_0233CA80 +ov06_0233CA80: @ 0x0233CA80 + ldr ip, _0233CA90 @ =FUN_02003250 + ldr r0, _0233CA94 @ =0x0233EEE0 + mov r1, #0xc + bx ip + .align 2, 0 +_0233CA90: .4byte FUN_02003250 +_0233CA94: .4byte 0x0233EEE0 + arm_func_end ov06_0233CA80 + + arm_func_start ov06_0233CA98 +ov06_0233CA98: @ 0x0233CA98 + ldr r1, _0233CAA4 @ =0x0233EEE0 + str r0, [r1] + bx lr + .align 2, 0 +_0233CAA4: .4byte 0x0233EEE0 + arm_func_end ov06_0233CA98 + + arm_func_start ov06_0233CAA8 +ov06_0233CAA8: @ 0x0233CAA8 + ldr r0, _0233CAB4 @ =0x0233EEE0 + ldr r0, [r0] + bx lr + .align 2, 0 +_0233CAB4: .4byte 0x0233EEE0 + arm_func_end ov06_0233CAA8 + + arm_func_start ov06_0233CAB8 +ov06_0233CAB8: @ 0x0233CAB8 + ldr r1, _0233CAC4 @ =0x0233EEE0 + str r0, [r1, #4] + bx lr + .align 2, 0 +_0233CAC4: .4byte 0x0233EEE0 + arm_func_end ov06_0233CAB8 + + arm_func_start ov06_0233CAC8 +ov06_0233CAC8: @ 0x0233CAC8 + ldr r0, _0233CAD4 @ =0x0233EEE0 + ldr r0, [r0, #4] + bx lr + .align 2, 0 +_0233CAD4: .4byte 0x0233EEE0 + arm_func_end ov06_0233CAC8 + + arm_func_start ov06_0233CAD8 +ov06_0233CAD8: @ 0x0233CAD8 + push {r3, lr} + mov r0, #4 + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233CB0C @ =0x0233EEC0 + mov r1, #4 + str r0, [r2] + bl FUN_02003250 + ldr r0, _0233CB0C @ =0x0233EEC0 + mov r1, #0 + ldr r0, [r0] + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233CB0C: .4byte 0x0233EEC0 + arm_func_end ov06_0233CAD8 + + arm_func_start ov06_0233CB10 +ov06_0233CB10: @ 0x0233CB10 + push {r3, lr} + ldr r0, _0233CB38 @ =0x0233EEC0 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0233CB38 @ =0x0233EEC0 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233CB38: .4byte 0x0233EEC0 + arm_func_end ov06_0233CB10 + + arm_func_start ov06_0233CB3C +ov06_0233CB3C: @ 0x0233CB3C + push {r3, r4, lr} + sub sp, sp, #4 + ldr r0, _0233CD3C @ =0x0233EEC0 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, #5 + addls pc, pc, r0, lsl #2 + b _0233CD30 +_0233CB5C: @ jump table + b _0233CB74 @ case 0 + b _0233CBA8 @ case 1 + b _0233CC1C @ case 2 + b _0233CCA0 @ case 3 + b _0233CCB4 @ case 4 + b _0233CCD4 @ case 5 +_0233CB74: + mov r0, #6 + bl FUN_02337614 + str r0, [sp] + mov r0, #0 + ldr r2, _0233CD40 @ =0x0233ED1C + ldr r3, _0233CD44 @ =0x000037A9 + mov r1, r0 + bl ov06_0233CD54 + ldr r0, _0233CD3C @ =0x0233EEC0 + mov r1, #1 + ldr r0, [r0] + str r1, [r0] + b _0233CD30 +_0233CBA8: + bl ov06_0233CD94 + mov r4, r0 + bl ov06_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #6 + bl FUN_02337624 + cmp r4, #0x10 + ldreq r0, _0233CD3C @ =0x0233EEC0 + moveq r1, #4 + ldreq r0, [r0] + streq r1, [r0] + beq _0233CD30 + sub r0, r4, #0x11 + cmp r0, #1 + bhi _0233CD30 + mov r0, #7 + bl FUN_02337614 + str r0, [sp] + mov r0, #0 + ldr r2, _0233CD48 @ =0x0233ED34 + ldr r3, _0233CD4C @ =0x000037AC + mov r1, r0 + bl ov06_0233CD54 + ldr r0, _0233CD3C @ =0x0233EEC0 + mov r1, #2 + ldr r0, [r0] + str r1, [r0] + b _0233CD30 +_0233CC1C: + bl ov06_0233CD94 + mov r4, r0 + bl ov06_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #7 + bl FUN_02337624 + cmp r4, #0x10 + bne _0233CC60 + ldr r1, _0233CD50 @ =0x000037AF + mov r0, #0x1c + bl ov06_0233CDC8 + ldr r0, _0233CD3C @ =0x0233EEC0 + mov r1, #3 + ldr r0, [r0] + str r1, [r0] + b _0233CD30 +_0233CC60: + sub r0, r4, #0x11 + cmp r0, #1 + bhi _0233CD30 + mov r0, #6 + bl FUN_02337614 + str r0, [sp] + mov r0, #0 + ldr r2, _0233CD40 @ =0x0233ED1C + ldr r3, _0233CD44 @ =0x000037A9 + mov r1, r0 + bl ov06_0233CD54 + ldr r0, _0233CD3C @ =0x0233EEC0 + mov r1, #1 + ldr r0, [r0] + str r1, [r0] + b _0233CD30 +_0233CCA0: + bl ov06_0233CDE4 + cmp r0, #0x12 + bne _0233CD30 + mov r0, #1 + b _0233CD34 +_0233CCB4: + bl FUN_02046D20 + mov r0, #0x11 + bl FUN_020668B4 + ldr r0, _0233CD3C @ =0x0233EEC0 + mov r1, #5 + ldr r0, [r0] + str r1, [r0] + b _0233CD30 +_0233CCD4: + bl FUN_02066A44 + mvn r1, #0 + cmp r0, r1 + bne _0233CD1C + bl FUN_02067664 + mov r0, #6 + bl FUN_02337614 + str r0, [sp] + mov r0, #0 + ldr r2, _0233CD40 @ =0x0233ED1C + ldr r3, _0233CD44 @ =0x000037A9 + mov r1, r0 + bl ov06_0233CD54 + ldr r0, _0233CD3C @ =0x0233EEC0 + mov r1, #1 + ldr r0, [r0] + str r1, [r0] + b _0233CD30 +_0233CD1C: + cmp r0, #1 + bne _0233CD30 + bl FUN_02067664 + mov r0, #2 + b _0233CD34 +_0233CD30: + mov r0, #0 +_0233CD34: + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0233CD3C: .4byte 0x0233EEC0 +_0233CD40: .4byte 0x0233ED1C +_0233CD44: .4byte 0x000037A9 +_0233CD48: .4byte 0x0233ED34 +_0233CD4C: .4byte 0x000037AC +_0233CD50: .4byte 0x000037AF + arm_func_end ov06_0233CB3C + + arm_func_start ov06_0233CD54 +ov06_0233CD54: @ 0x0233CD54 + push {r3, lr} + ldrsb ip, [sp, #8] + str ip, [sp] + bl FUN_02046A9C + pop {r3, pc} + arm_func_end ov06_0233CD54 + + arm_func_start ov06_0233CD68 +ov06_0233CD68: @ 0x0233CD68 + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr ip, [sp, #0x10] + ldrh lr, [sp, #0x14] + str ip, [sp] + mov ip, #0 + str lr, [sp, #4] + str ip, [sp, #8] + bl FUN_02046A20 + add sp, sp, #0xc + ldm sp!, {pc} + arm_func_end ov06_0233CD68 + + arm_func_start ov06_0233CD94 +ov06_0233CD94: @ 0x0233CD94 + push {r3, lr} + bl FUN_02046B04 + mvn r1, #1 + cmp r0, r1 + moveq r0, #0x12 + popeq {r3, pc} + add r1, r1, #1 + cmp r0, r1 + moveq r0, #0 + pop {r3, pc} + arm_func_end ov06_0233CD94 + + arm_func_start ov06_02046BA0 +ov06_02046BA0: @ 0x0233CDBC + ldr ip, _0233CDC4 @ =FUN_02046BA0 + bx ip + .align 2, 0 +_0233CDC4: .4byte FUN_02046BA0 + arm_func_end ov06_02046BA0 + + arm_func_start ov06_0233CDC8 +ov06_0233CDC8: @ 0x0233CDC8 + ldr ip, _0233CDD4 @ =FUN_02046BE8 + mov r2, #0 + bx ip + .align 2, 0 +_0233CDD4: .4byte FUN_02046BE8 + arm_func_end ov06_0233CDC8 + + arm_func_start ov06_0233CDD8 +ov06_0233CDD8: @ 0x0233CDD8 + ldr ip, _0233CDE0 @ =FUN_02046BE8 + bx ip + .align 2, 0 +_0233CDE0: .4byte FUN_02046BE8 + arm_func_end ov06_0233CDD8 + + arm_func_start ov06_0233CDE4 +ov06_0233CDE4: @ 0x0233CDE4 + push {r3, lr} + bl FUN_02046C78 + cmp r0, #0 + movne r0, #0x12 + moveq r0, #0 + pop {r3, pc} + arm_func_end ov06_0233CDE4 + + arm_func_start ov06_0233CDFC +ov06_0233CDFC: @ 0x0233CDFC + push {r3, lr} + mov r0, #0x70 + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233CE30 @ =0x0233EEC4 + mov r1, #0x70 + str r0, [r2] + bl FUN_02003250 + ldr r0, _0233CE30 @ =0x0233EEC4 + mov r1, #0 + ldr r0, [r0] + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233CE30: .4byte 0x0233EEC4 + arm_func_end ov06_0233CDFC + + arm_func_start ov06_0233CE34 +ov06_0233CE34: @ 0x0233CE34 + push {r3, lr} + ldr r0, _0233CE5C @ =0x0233EEC4 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0233CE5C @ =0x0233EEC4 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233CE5C: .4byte 0x0233EEC4 + arm_func_end ov06_0233CE34 + + arm_func_start ov06_0233CE60 +ov06_0233CE60: @ 0x0233CE60 + push {r3, r4, r5, r6, r7, lr} + ldr r0, _0233D4CC @ =0x0233EEC4 + ldr r1, _0233D4D0 @ =0x00000401 + ldr r4, [r0] + ldr r2, [r4] + cmp r2, r1 + bgt _0233CEF0 + bge _0233D2E4 + sub r0, r1, #0xd7 + cmp r2, r0 + bgt _0233CED0 + subs r0, r2, #0x320 + addpl pc, pc, r0, lsl #2 + b _0233CEC4 +_0233CE98: @ jump table + b _0233CF78 @ case 0 + b _0233CFA4 @ case 1 + b _0233D4C4 @ case 2 + b _0233D004 @ case 3 + b _0233D298 @ case 4 + b _0233D4C4 @ case 5 + b _0233D4C4 @ case 6 + b _0233D4C4 @ case 7 + b _0233D4C4 @ case 8 + b _0233D4C4 @ case 9 + b _0233D3E0 @ case 10 +_0233CEC4: + cmp r2, #0 + beq _0233CF44 + b _0233D4C4 +_0233CED0: + sub r0, r1, #0xf + cmp r2, r0 + bgt _0233CEE4 + beq _0233D3F4 + b _0233D4C4 +_0233CEE4: + cmp r2, #0x400 + beq _0233D2C4 + b _0233D4C4 +_0233CEF0: + add r0, r1, #3 + cmp r2, r0 + bgt _0233CF24 + bge _0233D3CC + add r0, r1, #1 + cmp r2, r0 + bgt _0233CF14 + beq _0233D318 + b _0233D4C4 +_0233CF14: + add r0, r1, #2 + cmp r2, r0 + beq _0233D380 + b _0233D4C4 +_0233CF24: + cmp r2, #0x700 + bgt _0233CF34 + beq _0233D43C + b _0233D4C4 +_0233CF34: + add r0, r1, #0x300 + cmp r2, r0 + beq _0233D454 + b _0233D4C4 +_0233CF44: + add r0, r4, #0x44 + mov r1, #0x22 + bl FUN_02003250 + bl ov06_0233CAA8 + cmp r0, #0 + beq _0233D4C4 + bl ov06_0233CAA8 + cmp r0, #1 + ldreq r0, _0233D4CC @ =0x0233EEC4 + moveq r1, #0x320 + ldreq r0, [r0] + streq r1, [r0] + b _0233D4C4 +_0233CF78: + mov r2, #0 + mov r3, r2 + add r1, r4, #0x44 + mov r0, #6 + bl FUN_020367F0 + ldr r0, _0233D4CC @ =0x0233EEC4 + ldr r1, _0233D4D4 @ =0x00000321 + ldr r0, [r0] + str r1, [r0] + bl FUN_02046D20 + b _0233D4C4 +_0233CFA4: + bl FUN_02036CD4 + ldr r1, _0233D4CC @ =0x0233EEC4 + ldr r2, [r1] + str r0, [r2, #0x40] + ldr r1, [r1] + ldr r0, [r1, #0x40] + cmp r0, #3 + bne _0233CFF4 + bl FUN_0203755C + ldr r2, _0233D4CC @ =0x0233EEC4 + mov r1, r0 + ldr r0, [r2] + mov r2, #0x22 + add r0, r0, #0x44 + bl FUN_020032D4 + ldr r0, _0233D4CC @ =0x0233EEC4 + ldr r1, _0233D4D8 @ =0x00000323 + ldr r0, [r0] + str r1, [r0] + b _0233D4C4 +_0233CFF4: + cmp r0, #2 + ldreq r0, _0233D4D8 @ =0x00000323 + streq r0, [r1] + b _0233D4C4 +_0233D004: + bl FUN_02037468 + cmp r0, #1 + bne _0233D4C4 + ldr r0, _0233D4CC @ =0x0233EEC4 + ldr r0, [r0] + ldr r0, [r0, #0x40] + cmp r0, #3 + bne _0233D290 + bl ov06_0233CAA8 + ldr r0, _0233D4CC @ =0x0233EEC4 + ldr r4, [r0] + add r0, r4, #0x44 + add r1, r4, #0x20 + bl FUN_0204DD80 + cmp r0, #0 + moveq r4, #2 + beq _0233D110 + add r0, r4, #0x20 + bl FUN_0205E238 + cmp r0, #0 + beq _0233D070 + mov r0, #2 + bl FUN_0204C94C + cmp r0, #0 + movne r4, #5 + moveq r4, #1 + b _0233D110 +_0233D070: + add r0, r4, #0x20 + bl FUN_0205C854 + cmp r0, #0 + moveq r4, #3 + beq _0233D110 + ldrsh r0, [r4, #0x34] + mov r1, #1 + bl FUN_02062DDC + cmp r0, #0 + moveq r4, #3 + beq _0233D110 + ldrb r0, [r4, #0x36] + cmp r0, #4 + addls pc, pc, r0, lsl #2 + b _0233D0D8 +_0233D0AC: @ jump table + b _0233D0D8 @ case 0 + b _0233D0C0 @ case 1 + b _0233D0C0 @ case 2 + b _0233D0C0 @ case 3 + b _0233D0C0 @ case 4 +_0233D0C0: + ldrsh r0, [r4, #0x38] + mov r1, #1 + bl FUN_02062DDC + cmp r0, #0 + moveq r4, #3 + beq _0233D110 +_0233D0D8: + add r0, r4, #0x20 + bl FUN_0205EC98 + cmp r0, #0 + movne r4, #4 + bne _0233D110 + add r0, r4, #0x20 + bl FUN_0205FA38 + cmp r0, #0 + movne r4, #4 + bne _0233D110 + bl FUN_0205ED84 + cmp r0, #8 + movge r4, #6 + movlt r4, #0 +_0233D110: + ldr r0, _0233D4DC @ =0x0233EDCC + bl FUN_0200C1FC + ldr r6, _0233D4E0 @ =0x0233EDD0 + ldr r5, _0233D4CC @ =0x0233EEC4 + mov r7, #0 +_0233D124: + ldr r1, [r5] + mov r0, r6 + add r1, r1, r7 + ldrb r1, [r1, #0x44] + bl FUN_0200C1FC + add r7, r7, #1 + cmp r7, #0x22 + blt _0233D124 + ldr r0, _0233D4DC @ =0x0233EDCC + bl FUN_0200C1FC + ldr r0, _0233D4CC @ =0x0233EEC4 + cmp r4, #7 + ldr r1, [r0] + str r4, [r1, #0x6c] + addls pc, pc, r4, lsl #2 + b _0233D4C4 +_0233D164: @ jump table + b _0233D184 @ case 0 + b _0233D1CC @ case 1 + b _0233D20C @ case 2 + b _0233D20C @ case 3 + b _0233D240 @ case 4 + b _0233D260 @ case 5 + b _0233D280 @ case 6 + b _0233D4C4 @ case 7 +_0233D184: + mov r0, #0x1c + add r1, r0, #0x3780 + bl ov06_0233CDC8 + ldr r0, _0233D4CC @ =0x0233EEC4 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x20 + bl FUN_02069800 + ldr r0, _0233D4CC @ =0x0233EEC4 + mov r2, #0x324 + ldr r1, [r0] + str r2, [r1] + ldr r0, [r0] + add r0, r0, #0x20 + bl FUN_0205F0B8 + bl FUN_0205F5A8 + bl FUN_0205F710 + b _0233D4C4 +_0233D1CC: + mov r0, #2 + mov r1, #1 + bl FUN_0204C978 + mov r0, #0x1c + add r1, r0, #0x3780 + bl ov06_0233CDC8 + ldr r0, _0233D4CC @ =0x0233EEC4 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x20 + bl FUN_02069800 + ldr r0, _0233D4CC @ =0x0233EEC4 + mov r1, #0x324 + ldr r0, [r0] + str r1, [r0] + b _0233D4C4 +_0233D20C: + mov r0, #5 + bl FUN_02337614 + str r0, [sp] + mov r0, #0 + ldr r2, _0233D4E4 @ =0x0233ED04 + ldr r3, _0233D4E8 @ =0x00003799 + mov r1, r0 + bl ov06_0233CD54 + ldr r0, _0233D4CC @ =0x0233EEC4 + ldr r1, _0233D4EC @ =0x000003F2 + ldr r0, [r0] + str r1, [r0] + b _0233D4C4 +_0233D240: + ldr r1, _0233D4F0 @ =0x000037A7 + mov r0, #0x1c + bl ov06_0233CDC8 + ldr r0, _0233D4CC @ =0x0233EEC4 + ldr r1, _0233D4F4 @ =0x0000032A + ldr r0, [r0] + str r1, [r0] + b _0233D4C4 +_0233D260: + ldr r1, _0233D4F8 @ =0x000037A8 + mov r0, #0x1c + bl ov06_0233CDC8 + ldr r0, _0233D4CC @ =0x0233EEC4 + ldr r1, _0233D4F4 @ =0x0000032A + ldr r0, [r0] + str r1, [r0] + b _0233D4C4 +_0233D280: + ldr r0, [r0] + mov r1, #0x700 + str r1, [r0] + b _0233D4C4 +_0233D290: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0233D298: + bl ov06_0233CDE4 + mov r4, r0 + bl FUN_020698B8 + cmp r4, #0x12 + bne _0233D4C4 + bl FUN_02069904 + ldr r0, _0233D4CC @ =0x0233EEC4 + mov r1, #0x400 + ldr r0, [r0] + str r1, [r0] + b _0233D4C4 +_0233D2C4: + ldr r1, _0233D4FC @ =0x0000023B + mov r0, #0 + bl ov06_0233CDC8 + ldr r0, _0233D4CC @ =0x0233EEC4 + ldr r1, _0233D4D0 @ =0x00000401 + ldr r0, [r0] + str r1, [r0] + b _0233D4C4 +_0233D2E4: + bl ov06_0233CDE4 + cmp r0, #0x12 + bne _0233D4C4 + mov r0, #0xe0 + mov r1, #0x88 + mov r2, #1 + bl FUN_02029F88 + ldr r0, _0233D4CC @ =0x0233EEC4 + ldr r1, _0233D500 @ =0x00000402 + ldr r0, [r0] + str r1, [r0] + bl FUN_02003B94 + b _0233D4C4 +_0233D318: + mov r0, #3 + bl FUN_02048F84 + mov r4, r0 + bl FUN_02003BC8 + bl FUN_02029FBC + cmp r4, #0 + bne _0233D354 + mov r0, #0x1c + mov r1, #0x23c + bl ov06_0233CDC8 + ldr r0, _0233D4CC @ =0x0233EEC4 + ldr r1, _0233D504 @ =0x00000403 + ldr r0, [r0] + str r1, [r0] + b _0233D4C4 +_0233D354: + cmp r4, #1 + moveq r0, #3 + popeq {r3, r4, r5, r6, r7, pc} + ldr r1, _0233D508 @ =0x00000239 + mov r0, #0x1c + bl ov06_0233CDC8 + ldr r0, _0233D4CC @ =0x0233EEC4 + ldr r1, _0233D50C @ =0x00000404 + ldr r0, [r0] + str r1, [r0] + b _0233D4C4 +_0233D380: + bl ov06_0233CDE4 + cmp r0, #0x12 + bne _0233D4C4 + ldr r0, _0233D4CC @ =0x0233EEC4 + ldr r0, [r0] + ldr r0, [r0, #0x6c] + cmp r0, #1 + mov r0, #0x1c + bne _0233D3B0 + ldr r1, _0233D510 @ =0x0000379E + bl ov06_0233CDC8 + b _0233D3B8 +_0233D3B0: + ldr r1, _0233D514 @ =0x0000379D + bl ov06_0233CDC8 +_0233D3B8: + ldr r0, _0233D4CC @ =0x0233EEC4 + ldr r1, _0233D4F4 @ =0x0000032A + ldr r0, [r0] + str r1, [r0] + b _0233D4C4 +_0233D3CC: + bl ov06_0233CDE4 + cmp r0, #0x12 + bne _0233D4C4 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0233D3E0: + bl ov06_0233CDE4 + cmp r0, #0x12 + bne _0233D4C4 + mov r0, #2 + pop {r3, r4, r5, r6, r7, pc} +_0233D3F4: + bl ov06_0233CD94 + mov r4, r0 + bl ov06_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #5 + bl FUN_02337624 + cmp r4, #0x10 + ldreq r0, _0233D4CC @ =0x0233EEC4 + moveq r1, #0x320 + ldreq r0, [r0] + streq r1, [r0] + beq _0233D4C4 + sub r0, r4, #0x11 + cmp r0, #1 + bhi _0233D4C4 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0233D43C: + bl ov06_0233CAD8 + ldr r0, _0233D4CC @ =0x0233EEC4 + ldr r1, _0233D518 @ =0x00000701 + ldr r0, [r0] + str r1, [r0] + b _0233D4C4 +_0233D454: + bl ov06_0233CB3C + cmp r0, #2 + bne _0233D4B0 + bl ov06_0233CB10 + ldr r0, _0233D4CC @ =0x0233EEC4 + ldr r0, [r0] + add r0, r0, #0x20 + bl FUN_0205F0B8 + bl FUN_0205F5A8 + bl FUN_0205F710 + mov r0, #0x1c + add r1, r0, #0x3780 + bl ov06_0233CDC8 + ldr r0, _0233D4CC @ =0x0233EEC4 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x20 + bl FUN_02069800 + ldr r0, _0233D4CC @ =0x0233EEC4 + mov r1, #0x324 + ldr r0, [r0] + str r1, [r0] + b _0233D4C4 +_0233D4B0: + cmp r0, #1 + bne _0233D4C4 + bl ov06_0233CB10 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0233D4C4: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0233D4CC: .4byte 0x0233EEC4 +_0233D4D0: .4byte 0x00000401 +_0233D4D4: .4byte 0x00000321 +_0233D4D8: .4byte 0x00000323 +_0233D4DC: .4byte 0x0233EDCC +_0233D4E0: .4byte 0x0233EDD0 +_0233D4E4: .4byte 0x0233ED04 +_0233D4E8: .4byte 0x00003799 +_0233D4EC: .4byte 0x000003F2 +_0233D4F0: .4byte 0x000037A7 +_0233D4F4: .4byte 0x0000032A +_0233D4F8: .4byte 0x000037A8 +_0233D4FC: .4byte 0x0000023B +_0233D500: .4byte 0x00000402 +_0233D504: .4byte 0x00000403 +_0233D508: .4byte 0x00000239 +_0233D50C: .4byte 0x00000404 +_0233D510: .4byte 0x0000379E +_0233D514: .4byte 0x0000379D +_0233D518: .4byte 0x00000701 + arm_func_end ov06_0233CE60 + + arm_func_start ov06_0233D51C +ov06_0233D51C: @ 0x0233D51C + push {r3, lr} + ldr r0, _0233D59C @ =0x000004B4 + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233D5A0 @ =0x0233EEEC + ldr r1, _0233D59C @ =0x000004B4 + str r0, [r2] + bl FUN_02003250 + mov r2, #0 + ldr r0, _0233D5A0 @ =0x0233EEEC + mov lr, r2 +_0233D548: + ldr r1, [r0] + add r1, r1, r2 + add r2, r2, #1 + strb lr, [r1, #0x10] + cmp r2, #4 + blt _0233D548 + ldr r0, _0233D5A0 @ =0x0233EEEC + mvn r3, #0 + ldr ip, [r0] + mov r1, #0xc + add r2, ip, #0x10 + str r2, [ip, #0x74] + ldr r2, [r0] + str lr, [r2, #0xc] + ldr r2, [r0] + strh r3, [r2, #0xb0] + ldr r0, [r0] + bl FUN_02003250 + bl FUN_02046D20 + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0233D59C: .4byte 0x000004B4 +_0233D5A0: .4byte 0x0233EEEC + arm_func_end ov06_0233D51C + + arm_func_start ov06_0233D5A4 +ov06_0233D5A4: @ 0x0233D5A4 + push {r4, lr} + sub sp, sp, #8 + ldr r0, _0233DC74 @ =0x0233EEEC + ldr r1, _0233DC78 @ =0x00003001 + ldr r3, [r0] + ldr r2, [r3, #0xc] + cmp r2, r1 + bgt _0233D630 + bge _0233D9D0 + sub r0, r1, #0x2000 + cmp r2, r0 + bgt _0233D608 + bge _0233D848 + cmp r2, #3 + bgt _0233D5FC + cmp r2, #0 + addge pc, pc, r2, lsl #2 + b _0233DC68 +_0233D5EC: @ jump table + b _0233D690 @ case 0 + b _0233D718 @ case 1 + b _0233D7D4 @ case 2 + b _0233D7F0 @ case 3 +_0233D5FC: + cmp r2, #0x1000 + beq _0233D80C + b _0233DC68 +_0233D608: + sub r0, r1, #0x1000 + cmp r2, r0 + bgt _0233D624 + bge _0233D918 + cmp r2, #0x2000 + beq _0233D8DC + b _0233DC68 +_0233D624: + cmp r2, #0x3000 + beq _0233D9B8 + b _0233DC68 +_0233D630: + add r0, r1, #0x2000 + cmp r2, r0 + bgt _0233D668 + bge _0233DB00 + add r0, r1, #0x1000 + cmp r2, r0 + bgt _0233D65C + bge _0233DA68 + cmp r2, #0x4000 + beq _0233DA54 + b _0233DC68 +_0233D65C: + cmp r2, #0x5000 + beq _0233DAEC + b _0233DC68 +_0233D668: + add r0, r1, #0x3000 + cmp r2, r0 + bgt _0233D684 + bge _0233DB9C + cmp r2, #0x6000 + beq _0233DB80 + b _0233DC68 +_0233D684: + cmp r2, r1, lsl #1 + beq _0233DBD4 + b _0233DC68 +_0233D690: + bl FUN_0232E94C + cmp r0, #0 + bne _0233DC68 + bl FUN_0232F3F4 + bl ov06_0233CA80 + bl FUN_0205ED84 + cmp r0, #0 + ldreq r0, _0233DC74 @ =0x0233EEEC + moveq r1, #3 + ldrne r0, _0233DC74 @ =0x0233EEEC + movne r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x10] + mov r0, #0 + bl FUN_02337614 + ldr r2, _0233DC7C @ =0x0233ED68 + ldr r1, _0233DC74 @ =0x0233EEEC + ldr r2, [r2, r0, lsl #3] + ldr r0, [r1] + ldr r3, _0233DC80 @ =0x0233ED64 + str r2, [r0, #0x14] + ldr r2, _0233DC84 @ =0x00003787 + str r3, [sp] + str r2, [sp, #4] + ldr r3, [r1] + mov r0, #0 + ldr r2, _0233DC88 @ =0x00000233 + mov r1, r0 + add r3, r3, #0x14 + bl ov06_0233CD68 + ldr r0, _0233DC74 @ =0x0233EEEC + mov r1, #1 + ldr r0, [r0] + str r1, [r0, #0xc] +_0233D718: + bl ov06_0233CD94 + mov r4, r0 + bl ov06_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0 + bl FUN_02337624 + cmp r4, #1 + bne _0233D758 + mov r0, #0 + bl ov06_0233CA98 + ldr r0, _0233DC74 @ =0x0233EEEC + mov r1, #0x1000 + ldr r0, [r0] + str r1, [r0, #0xc] + b _0233DC68 +_0233D758: + cmp r4, #2 + bne _0233D7BC + bl FUN_0204E210 + cmp r0, #1 + bne _0233D7A0 + bl FUN_0204FA5C + ldrb r0, [r0] + bl FUN_0205EE10 + cmp r0, #8 + blt _0233D7A0 + ldr r1, _0233DC8C @ =0x0000378A + mov r0, #0x1c + bl ov06_0233CDC8 + ldr r0, _0233DC74 @ =0x0233EEEC + mov r1, #2 + ldr r0, [r0] + str r1, [r0, #0xc] + b _0233DC68 +_0233D7A0: + mov r0, #1 + bl ov06_0233CA98 + ldr r0, _0233DC74 @ =0x0233EEEC + mov r1, #0x2000 + ldr r0, [r0] + str r1, [r0, #0xc] + b _0233DC68 +_0233D7BC: + cmp r4, #0x12 + ldreq r0, _0233DC74 @ =0x0233EEEC + moveq r1, #3 + ldreq r0, [r0] + streq r1, [r0, #0xc] + b _0233DC68 +_0233D7D4: + bl ov06_0233CDE4 + cmp r0, #0x12 + ldreq r0, _0233DC74 @ =0x0233EEEC + moveq r1, #0 + ldreq r0, [r0] + streq r1, [r0, #0xc] + b _0233DC68 +_0233D7F0: + bl FUN_0232E94C + cmp r0, #0 + bne _0233DC68 + mov r0, #0x12 + bl FUN_023310B8 + mov r0, #3 + b _0233DC6C +_0233D80C: + bl FUN_0232E94C + cmp r0, #0 + bne _0233DC68 + mov r0, #1 + bl FUN_02337614 + str r0, [sp] + mov r0, #0 + ldr r2, _0233DC90 @ =0x0233ED84 + ldr r3, _0233DC94 @ =0x0000378B + mov r1, r0 + bl ov06_0233CD54 + ldr r0, _0233DC74 @ =0x0233EEEC + ldr r1, _0233DC98 @ =0x00001001 + ldr r0, [r0] + str r1, [r0, #0xc] +_0233D848: + bl ov06_0233CD94 + mov r4, r0 + bl ov06_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #1 + bl FUN_02337624 + cmp r4, #0xd + bne _0233D894 + mov r0, #0 + bl ov06_0233CAB8 + ldr r1, _0233DC9C @ =0x0000378F + mov r0, #0x1c + bl ov06_0233CDC8 + ldr r0, _0233DC74 @ =0x0233EEEC + mov r1, #0x6000 + ldr r0, [r0] + str r1, [r0, #0xc] + b _0233DC68 +_0233D894: + cmp r4, #0xf + bne _0233D8C4 + mov r0, #1 + bl ov06_0233CAB8 + ldr r1, _0233DCA0 @ =0x00003790 + mov r0, #0x1c + bl ov06_0233CDC8 + ldr r0, _0233DC74 @ =0x0233EEEC + mov r1, #0x6000 + ldr r0, [r0] + str r1, [r0, #0xc] + b _0233DC68 +_0233D8C4: + cmp r4, #0x12 + ldreq r0, _0233DC74 @ =0x0233EEEC + moveq r1, #0 + ldreq r0, [r0] + streq r1, [r0, #0xc] + b _0233DC68 +_0233D8DC: + bl FUN_0232E94C + cmp r0, #0 + bne _0233DC68 + mov r0, #2 + bl FUN_02337614 + str r0, [sp] + mov r0, #0 + ldr r2, _0233DCA4 @ =0x0233EDA4 + ldr r3, _0233DCA8 @ =0x00003794 + mov r1, r0 + bl ov06_0233CD54 + ldr r0, _0233DC74 @ =0x0233EEEC + ldr r1, _0233DCAC @ =0x00002001 + ldr r0, [r0] + str r1, [r0, #0xc] +_0233D918: + bl ov06_0233CD94 + mov r4, r0 + bl ov06_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #2 + bl FUN_02337624 + cmp r4, #0xd + bne _0233D958 + mov r0, #0 + bl ov06_0233CAB8 + ldr r0, _0233DC74 @ =0x0233EEEC + mov r1, #0x3000 + ldr r0, [r0] + str r1, [r0, #0xc] + b _0233DC68 +_0233D958: + cmp r4, #0xe + bne _0233D97C + mov r0, #2 + arm_func_end ov06_0233D5A4 + + arm_func_start ov06_0233D964 +ov06_0233D964: @ 0x0233D964 + bl ov06_0233CAB8 + ldr r0, _0233DC74 @ =0x0233EEEC + mov r1, #0x4000 + ldr r0, [r0] + str r1, [r0, #0xc] + b _0233DC68 +_0233D97C: + cmp r4, #0xf + bne _0233D9A0 + mov r0, #1 + bl ov06_0233CAB8 + ldr r0, _0233DC74 @ =0x0233EEEC + mov r1, #0x5000 + ldr r0, [r0] + str r1, [r0, #0xc] + b _0233DC68 +_0233D9A0: + cmp r4, #0x12 + ldreq r0, _0233DC74 @ =0x0233EEEC + moveq r1, #0 + ldreq r0, [r0] + streq r1, [r0, #0xc] + b _0233DC68 +_0233D9B8: + ldrsh r0, [r3, #0xb0] + bl FUN_02069D40 + ldr r0, _0233DC74 @ =0x0233EEEC + ldr r1, _0233DC78 @ =0x00003001 + ldr r0, [r0] + str r1, [r0, #0xc] +_0233D9D0: + bl FUN_02003BFC + bl FUN_02069DC0 + cmp r0, #1 + bne _0233DA1C + bl FUN_02069D94 + bl ov06_0233CAA8 + cmp r0, #0 + ldreq r0, _0233DC74 @ =0x0233EEEC + moveq r1, #0x1000 + ldreq r0, [r0] + streq r1, [r0, #0xc] + beq _0233DC68 + bl ov06_0233CAA8 + cmp r0, #1 + ldreq r0, _0233DC74 @ =0x0233EEEC + moveq r1, #0x2000 + ldreq r0, [r0] + streq r1, [r0, #0xc] + b _0233DC68 +_0233DA1C: + cmp r0, #2 + bne _0233DA3C + bl FUN_02069D94 + ldr r0, _0233DC74 @ =0x0233EEEC + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #0xc] + b _0233DC68 +_0233DA3C: + cmp r0, #3 + bne _0233DC68 + bl FUN_02069D94 + bl FUN_0204A018 + mov r0, #3 + b _0233DC6C +_0233DA54: + bl ov06_0233DCF8 + ldr r0, _0233DC74 @ =0x0233EEEC + ldr r1, _0233DCB0 @ =0x00004001 + ldr r0, [r0] + str r1, [r0, #0xc] +_0233DA68: + bl FUN_02003BFC + bl ov06_0233DD7C + cmp r0, #1 + bne _0233DAB4 + bl ov06_0233DD40 + bl ov06_0233CAA8 + cmp r0, #0 + ldreq r0, _0233DC74 @ =0x0233EEEC + moveq r1, #0x1000 + ldreq r0, [r0] + streq r1, [r0, #0xc] + beq _0233DC68 + bl ov06_0233CAA8 + cmp r0, #1 + ldreq r0, _0233DC74 @ =0x0233EEEC + moveq r1, #0x2000 + ldreq r0, [r0] + streq r1, [r0, #0xc] + b _0233DC68 +_0233DAB4: + cmp r0, #2 + bne _0233DAD4 + bl ov06_0233DD40 + ldr r0, _0233DC74 @ =0x0233EEEC + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #0xc] + b _0233DC68 +_0233DAD4: + cmp r0, #3 + bne _0233DC68 + bl ov06_0233DD40 + bl FUN_0204A018 + mov r0, #3 + b _0233DC6C +_0233DAEC: + bl ov06_0233CDFC + ldr r0, _0233DC74 @ =0x0233EEEC + ldr r1, _0233DCB4 @ =0x00005001 + ldr r0, [r0] + str r1, [r0, #0xc] +_0233DB00: + bl ov06_0233CE60 + cmp r0, #1 + bne _0233DB48 + bl ov06_0233CE34 + bl ov06_0233CAA8 + cmp r0, #0 + ldreq r0, _0233DC74 @ =0x0233EEEC + moveq r1, #0x1000 + ldreq r0, [r0] + streq r1, [r0, #0xc] + beq _0233DC68 + bl ov06_0233CAA8 + cmp r0, #1 + ldreq r0, _0233DC74 @ =0x0233EEEC + moveq r1, #0x2000 + ldreq r0, [r0] + streq r1, [r0, #0xc] + b _0233DC68 +_0233DB48: + cmp r0, #2 + bne _0233DB68 + bl ov06_0233CE34 + ldr r0, _0233DC74 @ =0x0233EEEC + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #0xc] + b _0233DC68 +_0233DB68: + cmp r0, #3 + bne _0233DC68 + bl ov06_0233CE34 + bl FUN_0204A018 + mov r0, #3 + b _0233DC6C +_0233DB80: + bl ov06_0233CDE4 + cmp r0, #0x12 + ldreq r0, _0233DC74 @ =0x0233EEEC + ldreq r1, _0233DCB8 @ =0x00006001 + ldreq r0, [r0] + streq r1, [r0, #0xc] + b _0233DC68 +_0233DB9C: + bl FUN_02046D20 + bl ov06_0233CAC8 + cmp r0, #1 + bne _0233DBB8 + mov r0, #0x10 + bl FUN_020668B4 + b _0233DBC0 +_0233DBB8: + mov r0, #0xf + bl FUN_020668B4 +_0233DBC0: + ldr r0, _0233DC74 @ =0x0233EEEC + ldr r1, _0233DCBC @ =0x00006002 + ldr r0, [r0] + str r1, [r0, #0xc] + b _0233DC68 +_0233DBD4: + bl FUN_02066A44 + mvn r1, #0 + cmp r0, r1 + bne _0233DBFC + bl FUN_02067664 + ldr r0, _0233DC74 @ =0x0233EEEC + mov r1, #0x1000 + ldr r0, [r0] + str r1, [r0, #0xc] + b _0233DC68 +_0233DBFC: + cmp r0, #1 + bne _0233DC68 + bl FUN_020674CC + ldr r1, _0233DC74 @ =0x0233EEEC + ldr r1, [r1] + strh r0, [r1, #0xb0] + bl FUN_02067664 + bl ov06_0233CAC8 + cmp r0, #0 + ldreq r0, _0233DC74 @ =0x0233EEEC + moveq r1, #0x3000 + ldreq r0, [r0] + streq r1, [r0, #0xc] + beq _0233DC68 + bl ov06_0233CAC8 + cmp r0, #2 + ldreq r0, _0233DC74 @ =0x0233EEEC + moveq r1, #0x4000 + ldreq r0, [r0] + streq r1, [r0, #0xc] + beq _0233DC68 + bl ov06_0233CAC8 + cmp r0, #1 + ldreq r0, _0233DC74 @ =0x0233EEEC + moveq r1, #0x1000 + ldreq r0, [r0] + streq r1, [r0, #0xc] +_0233DC68: + mov r0, #1 +_0233DC6C: + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_0233DC74: .4byte 0x0233EEEC +_0233DC78: .4byte 0x00003001 +_0233DC7C: .4byte 0x0233ED68 +_0233DC80: .4byte 0x0233ED64 +_0233DC84: .4byte 0x00003787 +_0233DC88: .4byte 0x00000233 +_0233DC8C: .4byte 0x0000378A +_0233DC90: .4byte 0x0233ED84 +_0233DC94: .4byte 0x0000378B +_0233DC98: .4byte 0x00001001 +_0233DC9C: .4byte 0x0000378F +_0233DCA0: .4byte 0x00003790 +_0233DCA4: .4byte 0x0233EDA4 +_0233DCA8: .4byte 0x00003794 +_0233DCAC: .4byte 0x00002001 +_0233DCB0: .4byte 0x00004001 +_0233DCB4: .4byte 0x00005001 +_0233DCB8: .4byte 0x00006001 +_0233DCBC: .4byte 0x00006002 + arm_func_end ov06_0233D964 + + arm_func_start ov06_0233DCC0 +ov06_0233DCC0: @ 0x0233DCC0 + push {r3, lr} + ldr r0, _0233DCF4 @ =0x0233EEEC + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02046D20 + ldr r0, _0233DCF4 @ =0x0233EEEC + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0233DCF4 @ =0x0233EEEC + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233DCF4: .4byte 0x0233EEEC + arm_func_end ov06_0233DCC0 + + arm_func_start ov06_0233DCF8 +ov06_0233DCF8: @ 0x0233DCF8 + push {r3, lr} + mov r0, #0x228 + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233DD3C @ =0x0233EEC8 + mov r1, #0x228 + str r0, [r2] + bl FUN_02003250 + ldr r0, _0233DD3C @ =0x0233EEC8 + mov r2, #0 + ldr r1, [r0] + str r2, [r1] + ldr r1, [r0] + strb r2, [r1, #0x21c] + ldr r0, [r0] + strb r2, [r0, #0x224] + pop {r3, pc} + .align 2, 0 +_0233DD3C: .4byte 0x0233EEC8 + arm_func_end ov06_0233DCF8 + + arm_func_start ov06_0233DD40 +ov06_0233DD40: @ 0x0233DD40 + push {r3, lr} + ldr r0, _0233DD78 @ =0x0233EEC8 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + mov r0, #1 + bl FUN_022BCBAC + ldr r0, _0233DD78 @ =0x0233EEC8 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0233DD78 @ =0x0233EEC8 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233DD78: .4byte 0x0233EEC8 + arm_func_end ov06_0233DD40 + + arm_func_start ov06_0233DD7C +ov06_0233DD7C: @ 0x0233DD7C + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x40 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, _0233E8E4 @ =0x00004003 + ldr r3, [r0] + ldr r2, [r3] + cmp r2, r1 + bgt _0233DE28 + bge _0233E7DC + ldr r0, _0233E8E8 @ =0x00001005 + cmp r2, r0 + bgt _0233DDFC + sub r0, r0, #4 + subs r0, r2, r0 + addpl pc, pc, r0, lsl #2 + b _0233DDD0 +_0233DDBC: @ jump table + b _0233DEEC @ case 0 + b _0233DF44 @ case 1 + b _0233DF98 @ case 2 + b _0233E16C @ case 3 + b _0233E1C0 @ case 4 +_0233DDD0: + cmp r2, #1 + bgt _0233DDF0 + cmp r2, #0 + blt _0233E8D4 + beq _0233DE80 + cmp r2, #1 + beq _0233DEB8 + b _0233E8D4 +_0233DDF0: + cmp r2, #0x1000 + beq _0233DED4 + b _0233E8D4 +_0233DDFC: + sub r0, r1, #2 + cmp r2, r0 + bgt _0233DE18 + bge _0233E768 + cmp r2, #0x4000 + beq _0233E700 + b _0233E8D4 +_0233DE18: + sub r0, r1, #1 + cmp r2, r0 + beq _0233E734 + b _0233E8D4 +_0233DE28: + cmp r2, #0x6000 + bgt _0233DE54 + bge _0233E86C + add r0, r1, #1 + cmp r2, r0 + bgt _0233DE48 + beq _0233E844 + b _0233E8D4 +_0233DE48: + cmp r2, #0x5000 + beq _0233E1E4 + b _0233E8D4 +_0233DE54: + ldr r0, _0233E8EC @ =0x00006002 + cmp r2, r0 + bgt _0233DE74 + bge _0233E8A4 + sub r0, r0, #1 + cmp r2, r0 + beq _0233E890 + b _0233E8D4 +_0233DE74: + cmp r2, #0x8000 + beq _0233E858 + b _0233E8D4 +_0233DE80: + bl FUN_0204A1CC + bl FUN_022BCA80 + cmp r0, #3 + ldrne r0, _0233E8E0 @ =0x0233EEC8 + movne r1, #0x1000 + ldrne r0, [r0] + strne r1, [r0] + bne _0233E8D4 + bl FUN_02339888 + ldr r0, _0233E8E0 @ =0x0233EEC8 + mov r1, #1 + ldr r0, [r0] + str r1, [r0] + b _0233E8D4 +_0233DEB8: + bl FUN_023398A4 + cmp r0, #0 + ldrne r0, _0233E8E0 @ =0x0233EEC8 + movne r1, #0x1000 + ldrne r0, [r0] + strne r1, [r0] + b _0233E8D4 +_0233DED4: + bl FUN_02338A24 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, _0233E8F0 @ =0x00001001 + ldr r0, [r0] + str r1, [r0] + b _0233E8D4 +_0233DEEC: + bl FUN_02338EC4 + cmp r0, #1 + beq _0233DF2C + cmp r0, #4 + beq _0233DF0C + cmp r0, #8 + beq _0233DF2C + b _0233E8D4 +_0233DF0C: + ldr r1, _0233E8F4 @ =0x000037A1 + mov r0, #0 + bl ov06_0233CDC8 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, _0233E8F8 @ =0x00001002 + ldr r0, [r0] + str r1, [r0] + b _0233E8D4 +_0233DF2C: + bl FUN_02338B08 + ldr r0, _0233E8E0 @ =0x0233EEC8 + mov r1, #0x6000 + ldr r0, [r0] + str r1, [r0] + b _0233E8D4 +_0233DF44: + bl ov06_0233CDE4 + mov r4, r0 + bl FUN_02338EC4 + cmp r0, #5 + bne _0233DF74 + bl FUN_02046D20 + bl FUN_02338C34 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, _0233E8E8 @ =0x00001005 + ldr r0, [r0] + str r1, [r0] + b _0233E8D4 +_0233DF74: + cmp r4, #0x12 + bne _0233E8D4 + mov r0, #0 + bl FUN_02338E48 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, _0233E8FC @ =0x00001003 + ldr r0, [r0] + str r1, [r0] + b _0233E8D4 +_0233DF98: + bl FUN_02338EC4 + cmp r0, #4 + bne _0233E148 + bl FUN_02338E54 + mov r8, r0 + cmp r8, #0 + bgt _0233DFD4 + ldr r0, _0233E8E0 @ =0x0233EEC8 + mov r3, #0 + ldr r2, [r0] + mov r1, #0x5000 + str r3, [r2, #4] + ldr r0, [r0] + str r1, [r0] + b _0233E8D4 +_0233DFD4: + mov sl, #0 + mov sb, sl + mov r6, sl + mov r5, #0xff + ldr fp, _0233E900 @ =0x50443357 + ldr r4, _0233E8E0 @ =0x0233EEC8 + b _0233E0F4 +_0233DFF0: + mov r0, sb + add r1, sp, #8 + bl FUN_02338E68 + mov r7, r0 + ldr r0, [r7] + cmp r0, fp + beq _0233E018 + ldr r0, _0233E904 @ =0x0233EDD4 + bl FUN_0200C1FC + b _0233E0F0 +_0233E018: + ldr r1, [r7, #4] + ldr r0, _0233E908 @ =0x08261522 + cmp r1, r0 + beq _0233E034 + ldr r0, _0233E90C @ =0x0233EDFC + bl FUN_0200C1FC + b _0233E0F0 +_0233E034: + bl FUN_020205A0 + ldr r1, [r7, #0xc] + cmp r1, r0 + beq _0233E050 + ldr r0, _0233E910 @ =0x0233EE24 + bl FUN_0200C1FC + b _0233E0F0 +_0233E050: + add r0, r7, #0x20 + ldr r1, [sp, #8] + sub r1, r1, #0x20 + bl FUN_02004F80 + mov r2, r0 + ldr r1, [r7, #8] + cmp r1, r2 + beq _0233E07C + ldr r0, _0233E914 @ =0x0233EE4C + bl FUN_0200C1FC + b _0233E0F0 +_0233E07C: + ldr r2, [sp, #8] + add r1, r7, #0x20 + add r0, sp, #0x30 + bl FUN_02050974 + ldr r1, [r4] + add r0, sp, #0x30 + add r1, r1, #0x18 + add r7, r1, sl, lsl #5 + mov r1, r7 + mov r2, #0 + bl FUN_0205FD88 + add r0, sp, #0x30 + bl FUN_020509BC + mov r0, r7 + bl FUN_0205E238 + cmp r0, #0 + bne _0233E0EC + mov r0, r7 + bl FUN_0205D1F4 + cmp r0, #0 + bne _0233E0EC + ldr r0, _0233E918 @ =0x0233EE84 + bl FUN_0200C1FC + strb r6, [r7] + strb r5, [r7, #4] + strb r6, [r7, #5] + strb r6, [r7, #0x16] + b _0233E0F0 +_0233E0EC: + add sl, sl, #1 +_0233E0F0: + add sb, sb, #1 +_0233E0F4: + cmp sb, r8 + blt _0233DFF0 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, [r0] + str sl, [r1, #0x14] + ldr r2, [r0] + ldr r1, [r2, #0x14] + cmp r1, #0 + ble _0233E130 + mov r1, #2 + str r1, [r2, #4] + ldr r0, [r0] + mov r1, #0x5000 + str r1, [r0] + b _0233E8D4 +_0233E130: + mov r1, #0 + str r1, [r2, #4] + ldr r0, [r0] + mov r1, #0x5000 + str r1, [r0] + b _0233E8D4 +_0233E148: + cmp r0, #8 + cmpne r0, #6 + bne _0233E8D4 + bl FUN_02338B08 + ldr r0, _0233E8E0 @ =0x0233EEC8 + mov r1, #0x6000 + ldr r0, [r0] + str r1, [r0] + b _0233E8D4 +_0233E16C: + bl FUN_02338EC4 + cmp r0, #6 + bne _0233E1A0 + bl FUN_02338B08 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, [r0] + ldrb r0, [r1, #0x21c] + cmp r0, #0 + movne r0, #0x4000 + strne r0, [r1] + moveq r0, #0x6000 + streq r0, [r1] + b _0233E8D4 +_0233E1A0: + cmp r0, #8 + bne _0233E8D4 + bl FUN_02338B08 + ldr r0, _0233E8E0 @ =0x0233EEC8 + mov r1, #0x6000 + ldr r0, [r0] + str r1, [r0] + b _0233E8D4 +_0233E1C0: + bl FUN_02338EC4 + cmp r0, #0 + beq _0233E8D4 + bl FUN_02338B08 + ldr r0, _0233E8E0 @ =0x0233EEC8 + mov r1, #0x6000 + ldr r0, [r0] + str r1, [r0] + b _0233E8D4 +_0233E1E4: + ldr r0, [r3, #4] + cmp r0, #9 + addls pc, pc, r0, lsl #2 + b _0233E69C +_0233E1F4: @ jump table + b _0233E21C @ case 0 + b _0233E248 @ case 1 + b _0233E2D8 @ case 2 + b _0233E2F8 @ case 3 + b _0233E314 @ case 4 + b _0233E348 @ case 5 + b _0233E508 @ case 6 + b _0233E5A4 @ case 7 + b _0233E5E8 @ case 8 + b _0233E600 @ case 9 +_0233E21C: + ldr r1, _0233E91C @ =0x000037A2 + mov r0, #0x1c + bl ov06_0233CDC8 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r3, _0233E920 @ =0x00002A30 + ldr r2, [r0] + mov r1, #1 + str r3, [r2, #0x220] + ldr r0, [r0] + str r1, [r0, #4] + b _0233E69C +_0233E248: + add r1, sp, #4 + mov r0, #0 + bl FUN_020061EC + bl FUN_0204AE60 + cmp r0, #0 + moveq r0, #0 + beq _0233E27C + add r0, sp, #0xc + bl FUN_02006C1C + add r0, sp, #0xc + mov r1, #1 + mov r2, #0 + bl FUN_02006C8C +_0233E27C: + ldrh r1, [sp, #4] + cmp r1, #0 + cmpeq r0, #0 + ldrne r0, _0233E8E0 @ =0x0233EEC8 + ldrne r1, _0233E920 @ =0x00002A30 + ldrne r0, [r0] + strne r1, [r0, #0x220] + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, [r0] + ldr r0, [r1, #0x220] + cmp r0, #0 + subgt r0, r0, #1 + strgt r0, [r1, #0x220] + bl ov06_0233CDE4 + cmp r0, #0x12 + beq _0233E2D0 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r0, [r0] + ldr r0, [r0, #0x220] + cmp r0, #0 + bgt _0233E69C +_0233E2D0: + mov r4, #1 + b _0233E6A0 +_0233E2D8: + sub r1, r1, #0x860 + mov r0, #0x1c + bl ov06_0233CDC8 + ldr r0, _0233E8E0 @ =0x0233EEC8 + mov r1, #3 + ldr r0, [r0] + str r1, [r0, #4] + b _0233E69C +_0233E2F8: + bl ov06_0233CDE4 + cmp r0, #0x12 + ldreq r0, _0233E8E0 @ =0x0233EEC8 + moveq r1, #4 + ldreq r0, [r0] + streq r1, [r0, #4] + b _0233E69C +_0233E314: + bl FUN_02046D20 + ldr r1, _0233E8E0 @ =0x0233EEC8 + mov r0, #0x14 + ldr r1, [r1] + sub r3, r0, #0x15 + ldr r2, [r1, #0x14] + add r1, r1, #0x18 + bl FUN_02066990 + ldr r0, _0233E8E0 @ =0x0233EEC8 + mov r1, #5 + ldr r0, [r0] + str r1, [r0, #4] + b _0233E69C +_0233E348: + bl FUN_02066A44 + mvn r1, #0 + cmp r0, r1 + bne _0233E390 + bl FUN_02067664 + mov r0, #4 + bl FUN_02337614 + str r0, [sp] + mov r0, #0 + ldr r2, _0233E924 @ =0x0233ED4C + ldr r3, _0233E928 @ =0x000037A4 + mov r1, r0 + bl ov06_0233CD54 + ldr r0, _0233E8E0 @ =0x0233EEC8 + mov r1, #7 + ldr r0, [r0] + str r1, [r0, #4] + b _0233E69C +_0233E390: + cmp r0, #1 + bne _0233E69C + bl FUN_020674CC + ldr r1, _0233E8E0 @ =0x0233EEC8 + ldr r1, [r1] + str r0, [r1, #0x218] + bl FUN_02067664 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, [r0] + ldr r0, [r1, #0x218] + add r1, r1, #0x18 + add r0, r1, r0, lsl #5 + bl FUN_0205E238 + cmp r0, #0 + beq _0233E478 + mov r0, #2 + bl FUN_0204C94C + cmp r0, #0 + beq _0233E418 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, _0233E92C @ =0x000037A8 + ldr r2, [r0] + mov r3, #0 + mov r0, #0x1c + strb r3, [r2, #0x21c] + bl ov06_0233CDC8 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r3, _0233E920 @ =0x00002A30 + ldr r2, [r0] + mov r1, #6 + str r3, [r2, #0x220] + ldr r0, [r0] + str r1, [r0, #4] + b _0233E69C +_0233E418: + ldr r0, _0233E8E0 @ =0x0233EEC8 + mov r1, #1 + ldr r2, [r0] + mov r0, #2 + strb r1, [r2, #0x21c] + bl FUN_0204C978 + ldr r1, _0233E930 @ =0x000037A5 + mov r0, #0x1c + bl ov06_0233CDC8 + ldr r0, _0233E8E0 @ =0x0233EEC8 + mov r1, #0 + ldr r2, [r0] + ldr r0, [r2, #0x218] + add r2, r2, #0x18 + add r0, r2, r0, lsl #5 + bl FUN_02069800 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r3, _0233E920 @ =0x00002A30 + ldr r2, [r0] + mov r1, #6 + str r3, [r2, #0x220] + ldr r0, [r0] + str r1, [r0, #4] + b _0233E69C +_0233E478: + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, [r0] + ldr r0, [r1, #0x218] + add r1, r1, #0x18 + add r0, r1, r0, lsl #5 + bl FUN_0205F0B8 + cmp r0, #0 + ldrne r0, _0233E8E0 @ =0x0233EEC8 + movne r1, #8 + ldrne r0, [r0] + strne r1, [r0, #4] + bne _0233E69C + bl FUN_0205F5A8 + bl FUN_0205F710 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, _0233E930 @ =0x000037A5 + ldr r2, [r0] + mov r3, #1 + mov r0, #0x1c + strb r3, [r2, #0x21c] + bl ov06_0233CDC8 + ldr r0, _0233E8E0 @ =0x0233EEC8 + mov r1, #0 + ldr r2, [r0] + ldr r0, [r2, #0x218] + add r2, r2, #0x18 + add r0, r2, r0, lsl #5 + bl FUN_02069800 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r3, _0233E920 @ =0x00002A30 + ldr r2, [r0] + mov r1, #6 + str r3, [r2, #0x220] + ldr r0, [r0] + str r1, [r0, #4] + b _0233E69C +_0233E508: + add r1, sp, #4 + mov r0, #0 + bl FUN_020061EC + bl FUN_0204AE60 + cmp r0, #0 + moveq r0, #0 + beq _0233E53C + add r0, sp, #0xc + bl FUN_02006C1C + add r0, sp, #0xc + mov r1, #1 + mov r2, #0 + bl FUN_02006C8C +_0233E53C: + ldrh r1, [sp, #4] + cmp r1, #0 + cmpeq r0, #0 + ldrne r0, _0233E8E0 @ =0x0233EEC8 + ldrne r1, _0233E920 @ =0x00002A30 + ldrne r0, [r0] + strne r1, [r0, #0x220] + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, [r0] + ldr r0, [r1, #0x220] + cmp r0, #0 + subgt r0, r0, #1 + strgt r0, [r1, #0x220] + bl ov06_0233CDE4 + mov r4, r0 + bl FUN_020698B8 + cmp r4, #0x12 + beq _0233E598 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r0, [r0] + ldr r0, [r0, #0x220] + cmp r0, #0 + bgt _0233E69C +_0233E598: + bl FUN_02069904 + mov r4, #1 + b _0233E6A0 +_0233E5A4: + bl ov06_0233CD94 + mov r4, r0 + bl ov06_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #4 + bl FUN_02337624 + cmp r4, #0x10 + moveq r4, #1 + beq _0233E6A0 + sub r0, r4, #0x11 + cmp r0, #1 + ldrls r0, _0233E8E0 @ =0x0233EEC8 + movls r1, #4 + ldrls r0, [r0] + strls r1, [r0, #4] + b _0233E69C +_0233E5E8: + bl ov06_0233CAD8 + ldr r0, _0233E8E0 @ =0x0233EEC8 + mov r1, #9 + ldr r0, [r0] + str r1, [r0, #4] + b _0233E69C +_0233E600: + bl ov06_0233CB3C + cmp r0, #2 + bne _0233E688 + bl ov06_0233CB10 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, [r0] + ldr r0, [r1, #0x218] + add r1, r1, #0x18 + add r0, r1, r0, lsl #5 + bl FUN_0205F0B8 + bl FUN_0205F5A8 + bl FUN_0205F710 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, _0233E930 @ =0x000037A5 + ldr r2, [r0] + mov r3, #1 + mov r0, #0x1c + strb r3, [r2, #0x21c] + bl ov06_0233CDC8 + ldr r0, _0233E8E0 @ =0x0233EEC8 + mov r1, #0 + ldr r2, [r0] + ldr r0, [r2, #0x218] + add r2, r2, #0x18 + add r0, r2, r0, lsl #5 + bl FUN_02069800 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r3, _0233E920 @ =0x00002A30 + ldr r2, [r0] + mov r1, #6 + str r3, [r2, #0x220] + ldr r0, [r0] + str r1, [r0, #4] + b _0233E69C +_0233E688: + cmp r0, #1 + bne _0233E69C + bl ov06_0233CB10 + mov r4, #1 + b _0233E6A0 +_0233E69C: + mov r4, #0 +_0233E6A0: + bl FUN_02338EC4 + cmp r0, #5 + bne _0233E6D8 + bl FUN_02067664 + bl ov06_0233CB10 + bl FUN_02069904 + bl FUN_02046BB4 + bl FUN_02046D20 + bl FUN_02338C34 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, _0233E8E8 @ =0x00001005 + ldr r0, [r0] + str r1, [r0] + b _0233E8D4 +_0233E6D8: + cmp r4, #1 + bne _0233E8D4 + mov r0, #1 + mov r1, #0 + bl FUN_02338BEC + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, _0233E934 @ =0x00001004 + ldr r0, [r0] + str r1, [r0] + b _0233E8D4 +_0233E700: + bl FUN_022BD780 + ldr r1, _0233E938 @ =0x0000023B + mov r0, #0 + bl ov06_0233CDC8 + ldr r1, _0233E8E0 @ =0x0233EEC8 + ldr r3, _0233E93C @ =0x00004002 + ldr r2, [r1] + mov r0, #0 + str r3, [r2] + ldr r1, [r1] + strb r0, [r1, #0x224] + bl FUN_022BD264 + b _0233E8D4 +_0233E734: + bl ov06_0233CDE4 + cmp r0, #0x12 + bne _0233E8D4 + mov r0, #0xe0 + mov r1, #0x88 + mov r2, #1 + bl FUN_02029F88 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, _0233E940 @ =0x00004001 + ldr r0, [r0] + str r1, [r0] + bl FUN_02003B94 + b _0233E8D4 +_0233E768: + mov r0, #3 + bl FUN_02048F84 + mov r4, r0 + bl FUN_02003BC8 + bl FUN_02029FBC + cmp r4, #0 + bne _0233E7B0 + mov r0, #0x1c + mov r1, #0x23c + bl ov06_0233CDC8 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r3, _0233E8E4 @ =0x00004003 + ldr r2, [r0] + mov r1, #1 + str r3, [r2] + ldr r0, [r0] + strb r1, [r0, #0x224] + b _0233E8D4 +_0233E7B0: + cmp r4, #1 + moveq r0, #3 + beq _0233E8D8 + ldr r1, _0233E944 @ =0x00000239 + mov r0, #0x1c + bl ov06_0233CDC8 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, _0233E948 @ =0x00004004 + ldr r0, [r0] + str r1, [r0] + b _0233E8D4 +_0233E7DC: + bl ov06_0233CDE4 + cmp r0, #0x12 + bne _0233E8D4 + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, [r0] + ldr r0, [r1, #0x218] + add r1, r1, #0x18 + add r0, r1, r0, lsl #5 + bl FUN_0205E238 + cmp r0, #0 + mov r0, #0x1c + beq _0233E828 + ldr r1, _0233E94C @ =0x0000379E + bl ov06_0233CDC8 + ldr r0, _0233E8E0 @ =0x0233EEC8 + mov r1, #0x8000 + ldr r0, [r0] + str r1, [r0] + b _0233E8D4 +_0233E828: + ldr r1, _0233E950 @ =0x000037A6 + bl ov06_0233CDC8 + ldr r0, _0233E8E0 @ =0x0233EEC8 + mov r1, #0x8000 + ldr r0, [r0] + str r1, [r0] + b _0233E8D4 +_0233E844: + bl ov06_0233CDE4 + cmp r0, #0x12 + bne _0233E8D4 + mov r0, #2 + b _0233E8D8 +_0233E858: + bl ov06_0233CDE4 + cmp r0, #0x12 + bne _0233E8D4 + mov r0, #2 + b _0233E8D8 +_0233E86C: + bl FUN_022BD274 + cmp r0, #0 + ldrne r0, _0233E8E0 @ =0x0233EEC8 + ldrne r1, _0233E954 @ =0x00006001 + ldrne r0, [r0] + strne r1, [r0] + bne _0233E8D4 + mov r0, #1 + b _0233E8D8 +_0233E890: + bl FUN_0233769C + ldr r0, _0233E8E0 @ =0x0233EEC8 + ldr r1, _0233E8EC @ =0x00006002 + ldr r0, [r0] + str r1, [r0] +_0233E8A4: + bl FUN_02337718 + cmp r0, #1 + cmpne r0, #3 + bne _0233E8C0 + bl FUN_023376DC + mov r0, #1 + b _0233E8D8 +_0233E8C0: + cmp r0, #2 + bne _0233E8D4 + bl FUN_023376DC + mov r0, #3 + b _0233E8D8 +_0233E8D4: + mov r0, #0 +_0233E8D8: + add sp, sp, #0x40 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0233E8E0: .4byte 0x0233EEC8 +_0233E8E4: .4byte 0x00004003 +_0233E8E8: .4byte 0x00001005 +_0233E8EC: .4byte 0x00006002 +_0233E8F0: .4byte 0x00001001 +_0233E8F4: .4byte 0x000037A1 +_0233E8F8: .4byte 0x00001002 +_0233E8FC: .4byte 0x00001003 +_0233E900: .4byte 0x50443357 +_0233E904: .4byte 0x0233EDD4 +_0233E908: .4byte 0x08261522 +_0233E90C: .4byte 0x0233EDFC +_0233E910: .4byte 0x0233EE24 +_0233E914: .4byte 0x0233EE4C +_0233E918: .4byte 0x0233EE84 +_0233E91C: .4byte 0x000037A2 +_0233E920: .4byte 0x00002A30 +_0233E924: .4byte 0x0233ED4C +_0233E928: .4byte 0x000037A4 +_0233E92C: .4byte 0x000037A8 +_0233E930: .4byte 0x000037A5 +_0233E934: .4byte 0x00001004 +_0233E938: .4byte 0x0000023B +_0233E93C: .4byte 0x00004002 +_0233E940: .4byte 0x00004001 +_0233E944: .4byte 0x00000239 +_0233E948: .4byte 0x00004004 +_0233E94C: .4byte 0x0000379E +_0233E950: .4byte 0x000037A6 +_0233E954: .4byte 0x00006001 + arm_func_end ov06_0233DD7C + + arm_func_start ov06_0233E958 +ov06_0233E958: @ 0x0233E958 + push {r3, r4, r5, r6, r7, lr} + mov r0, #0x270 + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233EA18 @ =0x0233EEF0 + mov r1, #0x270 + str r0, [r2] + bl FUN_02003250 + mov r2, #0 + ldr r0, _0233EA18 @ =0x0233EEF0 + mov r4, r2 +_0233E984: + ldr r1, [r0] + add r1, r1, r2 + add r2, r2, #1 + strb r4, [r1, #4] + cmp r2, #4 + blt _0233E984 + ldr r0, _0233EA18 @ =0x0233EEF0 + mvn r1, #0 + ldr r3, [r0] + add r2, r3, #4 + str r2, [r3, #0x68] + ldr r3, [r0] + add r2, r3, #0x1c8 + add r2, r2, #0x1f + bic r2, r2, #0x1f + str r2, [r3, #0x1c4] + ldr r2, [r0] + str r4, [r2] + ldr r0, [r0] + strh r1, [r0, #0xa0] + bl FUN_0205B440 + ldr r4, _0233EA18 @ =0x0233EEF0 + mov r6, r0 + mov r7, #0 + mov r5, #0x20 +_0233E9E8: + ldr r0, [r4] + mov r2, r5 + add r0, r0, #0xa4 + add r0, r0, r7, lsl #5 + add r1, r6, r7, lsl #5 + bl FUN_020032D4 + add r7, r7, #1 + cmp r7, #9 + blt _0233E9E8 + bl FUN_02046D20 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0233EA18: .4byte 0x0233EEF0 + arm_func_end ov06_0233E958 +_0233EA1C: + .byte 0xF0, 0x4F, 0x2D, 0xE9 + .byte 0x24, 0xD0, 0x4D, 0xE2, 0x90, 0x02, 0x9F, 0xE5, 0x00, 0x60, 0x90, 0xE5, 0x00, 0x00, 0x96, 0xE5 + .byte 0x07, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x9C, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA + .byte 0x0B, 0x00, 0x00, 0xEA, 0x0F, 0x00, 0x00, 0xEA, 0x1C, 0x00, 0x00, 0xEA, 0x58, 0x00, 0x00, 0xEA + .byte 0x6B, 0x00, 0x00, 0xEA, 0x8C, 0x00, 0x00, 0xEA, 0x90, 0x00, 0x00, 0xEA, 0x5C, 0x12, 0x9F, 0xE5 + .byte 0x1C, 0x00, 0xA0, 0xE3, 0xD7, 0xF8, 0xFF, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x86, 0xE5 + .byte 0x8E, 0x00, 0x00, 0xEA, 0xDA, 0xF8, 0xFF, 0xEB, 0x12, 0x00, 0x50, 0xE3, 0x02, 0x00, 0xA0, 0x03 + .byte 0x00, 0x00, 0x86, 0x05, 0x89, 0x00, 0x00, 0xEA, 0xAF, 0xBF, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x86, 0x00, 0x00, 0x1A, 0x03, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x86, 0xE5, 0x9F, 0x20, 0xF4, 0xEB + .byte 0x14, 0x02, 0x9F, 0xE5, 0x09, 0x20, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x0A, 0x30, 0x42, 0xE2 + .byte 0xA4, 0x10, 0x80, 0xE2, 0x15, 0x00, 0xA0, 0xE3, 0xB4, 0x9F, 0xF4, 0xEB, 0x7B, 0x00, 0x00, 0xEA + .byte 0xDF, 0x9F, 0xF4, 0xEB, 0x00, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x03, 0x00, 0x00, 0x1A + .byte 0xE3, 0xA2, 0xF4, 0xEB, 0x07, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x86, 0xE5, 0x73, 0x00, 0x00, 0xEA + .byte 0x01, 0x00, 0x50, 0xE3, 0x71, 0x00, 0x00, 0x1A, 0x82, 0x4F, 0x86, 0xE2, 0x09, 0x5D, 0x86, 0xE2 + .byte 0x75, 0xA2, 0xF4, 0xEB, 0xB0, 0x0A, 0xC6, 0xE1, 0xD9, 0xA2, 0xF4, 0xEB, 0x04, 0x00, 0xA0, 0xE1 + .byte 0x38, 0x10, 0xA0, 0xE3, 0xD1, 0x11, 0xF3, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0x18, 0x10, 0xA0, 0xE3 + .byte 0xCE, 0x11, 0xF3, 0xEB, 0xF0, 0x0A, 0xD6, 0xE1, 0x18, 0x90, 0x84, 0xE2, 0x38, 0x80, 0xA0, 0xE3 + .byte 0x80, 0x02, 0x86, 0xE0, 0xA4, 0xA0, 0x80, 0xE2, 0x0F, 0x00, 0xBA, 0xE8, 0x0F, 0x00, 0xA9, 0xE8 + .byte 0x0F, 0x00, 0x9A, 0xE8, 0x0F, 0x00, 0x89, 0xE8, 0x58, 0x82, 0x86, 0xE5, 0x18, 0x70, 0xA0, 0xE3 + .byte 0x5C, 0x42, 0x86, 0xE5, 0x60, 0x72, 0x86, 0xE5, 0x74, 0xE1, 0x9F, 0xE5, 0x64, 0x52, 0x86, 0xE5 + .byte 0x00, 0xC0, 0xA0, 0xE3, 0x68, 0xE2, 0x86, 0xE5, 0x6C, 0xC2, 0xC6, 0xE5, 0xC4, 0x01, 0x96, 0xE5 + .byte 0x09, 0xB0, 0xA0, 0xE3, 0x00, 0xB0, 0xC0, 0xE5, 0xC4, 0x01, 0x96, 0xE5, 0x01, 0xC0, 0xC0, 0xE5 + .byte 0x12, 0x00, 0xA0, 0xE3, 0x08, 0x02, 0xC6, 0xE5, 0x11, 0x00, 0xA0, 0xE3, 0x40, 0x02, 0xC6, 0xE5 + .byte 0x86, 0x86, 0xF3, 0xEB, 0x02, 0x00, 0xC5, 0xE5, 0xD2, 0x10, 0xD5, 0xE1, 0x04, 0x00, 0x84, 0xE2 + .byte 0x02, 0x10, 0xC4, 0xE5, 0xDD, 0x47, 0xF4, 0xEB, 0x04, 0x00, 0x84, 0xE2, 0x34, 0x10, 0xA0, 0xE3 + .byte 0xE5, 0xE3, 0xFF, 0xEB, 0x03, 0x00, 0xC4, 0xE5, 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x86, 0xE5 + .byte 0x3E, 0x00, 0x00, 0xEA, 0x00, 0x30, 0xA0, 0xE3, 0x96, 0x0F, 0x86, 0xE2, 0x01, 0x40, 0xA0, 0xE3 + .byte 0x04, 0x00, 0x8D, 0xE5, 0x00, 0x40, 0x8D, 0xE5, 0x10, 0x30, 0x8D, 0xE5, 0x14, 0x30, 0xCD, 0xE5 + .byte 0xC4, 0x21, 0x96, 0xE5, 0x20, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE2, 0x18, 0x20, 0x8D, 0xE5 + .byte 0xBC, 0x11, 0xCD, 0xE1, 0x1E, 0x30, 0xCD, 0xE5, 0x20, 0x40, 0x8D, 0xE5, 0xEB, 0xE3, 0xFF, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE1, 0x47, 0xE4, 0xFF, 0xEB, 0x05, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x86, 0xE5 + .byte 0x2A, 0x00, 0x00, 0xEA, 0x80, 0xE4, 0xFF, 0xEB, 0x00, 0x40, 0xB0, 0xE1, 0x27, 0x00, 0x00, 0x0A + .byte 0x0F, 0xE4, 0xFF, 0xEB, 0x0E, 0x00, 0x54, 0xE3, 0x04, 0xF1, 0x8F, 0x90, 0x23, 0x00, 0x00, 0xEA + .byte 0x22, 0x00, 0x00, 0xEA, 0x0F, 0x00, 0x00, 0xEA, 0x20, 0x00, 0x00, 0xEA, 0x1F, 0x00, 0x00, 0xEA + .byte 0x09, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00, 0xEA, 0x0F, 0x00, 0x00, 0xEA + .byte 0x0E, 0x00, 0x00, 0xEA, 0x0D, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x00, 0xEA + .byte 0x0A, 0x00, 0x00, 0xEA, 0x09, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x00, 0xEA, 0x04, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x86, 0xE5, 0x11, 0x00, 0x00, 0xEA, 0x58, 0x10, 0x9F, 0xE5, 0x1C, 0x00, 0xA0, 0xE3 + .byte 0x54, 0xF8, 0xFF, 0xEB, 0x06, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x86, 0xE5, 0x0B, 0x00, 0x00, 0xEA + .byte 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x86, 0xE5, 0x08, 0x00, 0x00, 0xEA, 0x54, 0xF8, 0xFF, 0xEB + .byte 0x12, 0x00, 0x50, 0xE3, 0x07, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x86, 0x05, 0x03, 0x00, 0x00, 0xEA + .byte 0x12, 0x00, 0xA0, 0xE3, 0x03, 0xC9, 0xFF, 0xEB, 0x03, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA + .byte 0x01, 0x00, 0xA0, 0xE3, 0x24, 0xD0, 0x8D, 0xE2, 0xF0, 0x8F, 0xBD, 0xE8, 0xF0, 0xEE, 0x33, 0x02 + .byte 0x19, 0x3F, 0x00, 0x00, 0x68, 0x7B, 0x33, 0x02, 0x1A, 0x3F, 0x00, 0x00 + + arm_func_start ov06_0233ECCC +ov06_0233ECCC: @ 0x0233ECCC + push {r3, lr} + ldr r0, _0233ED00 @ =0x0233EEF0 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02046D20 + ldr r0, _0233ED00 @ =0x0233EEF0 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0233ED00 @ =0x0233EEF0 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233ED00: .4byte 0x0233EEF0 + arm_func_end ov06_0233ECCC + @ 0x0233ED04 diff --git a/asm/overlay_07.s b/asm/overlay_07.s index d44e00ac..28ffed47 100644 --- a/asm/overlay_07.s +++ b/asm/overlay_07.s @@ -3,3 +3,5644 @@ .include "global.inc" .text + + arm_func_start ov07_0233CA80 +ov07_0233CA80: @ 0x0233CA80 + push {r3, lr} + mov r0, #0x14 + mov r1, #8 + bl FUN_02001170 + ldr r1, _0233CAC4 @ =0x02341B80 + mov r2, #0 + str r0, [r1] + str r2, [r0] + ldr r0, [r1] + str r2, [r0, #4] + arm_func_end ov07_0233CA80 + + arm_func_start ov07_0233CAA8 +ov07_0233CAA8: @ 0x0233CAA8 + ldr r0, [r1] + strb r2, [r0, #8] + ldr r0, [r1] + str r2, [r0, #0xc] + ldr r0, [r1] + strb r2, [r0, #0x10] + pop {r3, pc} + .align 2, 0 +_0233CAC4: .4byte 0x02341B80 + arm_func_end ov07_0233CAA8 + + arm_func_start ov07_0233CAC8 +ov07_0233CAC8: @ 0x0233CAC8 + ldr r1, _0233CAE4 @ =0x02341B80 + mov r2, #1 + ldr r3, [r1] + str r0, [r3, #0xc] + arm_func_end ov07_0233CAC8 + + arm_func_start ov07_0233CAD8 +ov07_0233CAD8: @ 0x0233CAD8 + ldr r0, [r1] + strb r2, [r0, #0x10] + bx lr + .align 2, 0 +_0233CAE4: .4byte 0x02341B80 + arm_func_end ov07_0233CAD8 + + arm_func_start ov07_0233CAE8 +ov07_0233CAE8: @ 0x0233CAE8 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sb, #0 + mov fp, #4 + mov sl, #2 + mov r7, #5 + mov r6, #3 + mov r8, #1 + ldr r4, _0233CCEC @ =0x02341B80 + b _0233CCDC +_0233CB0C: + ldr r1, [r4] + arm_func_end ov07_0233CAE8 + + arm_func_start ov07_0233CB10 +ov07_0233CB10: @ 0x0233CB10 + mov sb, #1 + ldr r0, [r1] + cmp r0, #5 + addls pc, pc, r0, lsl #2 + b _0233CCDC +_0233CB24: @ jump table + b ov07_0233CB3C @ case 0 + b _0233CB4C @ case 1 + b _0233CBD0 @ case 2 + b _0233CBE8 @ case 3 + b _0233CC54 @ case 4 + b _0233CCB8 @ case 5 + arm_func_end ov07_0233CB10 +ov07_0233CB3C: + bl FUN_02338A24 + ldr r0, [r4] + str r8, [r0] + b _0233CCDC +_0233CB4C: + bl FUN_02338EC4 + cmp r0, #1 + beq _0233CB6C + cmp r0, #4 + beq _0233CB84 + cmp r0, #8 + beq _0233CBB0 + b _0233CCDC +_0233CB6C: + ldr r0, [r4] + mov sb, #0 + str r7, [r0] + ldr r0, [r4] + str r6, [r0, #4] + b _0233CCDC +_0233CB84: + ldr r1, [r4] + ldrb r0, [r1, #0x10] + cmp r0, #0 + strne sl, [r1] + bne _0233CCDC + mov r0, sb + mov r1, #0 + bl FUN_02338C28 + ldr r0, [r4] + str fp, [r0] + b _0233CCDC +_0233CBB0: + ldr r1, [r4] + mov r0, #5 + str r0, [r1] + ldr r1, [r4] + mov r0, #4 + mov sb, #0 + str r0, [r1, #4] + b _0233CCDC +_0233CBD0: + ldr r1, [r1, #0xc] + mov r0, #0 + bl FUN_02338C4C + ldr r1, [r4] + mov r0, #3 + str r0, [r1] +_0233CBE8: + bl FUN_02338EC4 + cmp r0, #4 + bne _0233CC3C + mov r0, #0 + bl FUN_02338E1C + mov r5, r0 + mov r0, #1 + mov r1, #0 + bl FUN_02338C28 + ldr r2, [r4] + mov r1, #4 + mov r0, r5 + str r1, [r2] + bl FUN_0232C578 + cmp r0, #0 + ldr r1, [r4] + moveq r0, #1 + streq r0, [r1, #4] + movne r0, #2 + strne r0, [r1, #4] + b _0233CCDC +_0233CC3C: + cmp r0, #8 + cmpne r0, #6 + ldreq r1, [r4] + moveq r0, #4 + streq r0, [r1] + b _0233CCDC +_0233CC54: + bl FUN_02338EC4 + cmp r0, #6 + bne _0233CC88 + ldr r1, [r4] + mov r0, #5 + str r0, [r1] + ldr r1, [r4] + ldr r0, [r1, #4] + cmp r0, #0 + moveq r0, sb + streq r0, [r1, #4] + mov sb, #0 + b _0233CCDC +_0233CC88: + cmp r0, #8 + bne _0233CCDC + ldr r1, [r4] + mov r0, #5 + str r0, [r1] + ldr r1, [r4] + mov sb, #0 + ldr r0, [r1, #4] + cmp r0, #0 + moveq r0, #4 + streq r0, [r1, #4] + b _0233CCDC +_0233CCB8: + bl FUN_02338EB0 + ldr r1, _0233CCEC @ =0x02341B80 + ldr r1, [r1] + strb r0, [r1, #8] + bl FUN_02338B08 + ldr r0, _0233CCEC @ =0x02341B80 + ldr r0, [r0] + ldr r0, [r0, #4] + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0233CCDC: + cmp sb, #0 + beq _0233CB0C + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0233CCEC: .4byte 0x02341B80 + + arm_func_start ov07_0233CCF0 +ov07_0233CCF0: @ 0x0233CCF0 + ldr r0, _0233CD00 @ =0x02341B80 + ldr r0, [r0] + ldrb r0, [r0, #8] + bx lr + .align 2, 0 +_0233CD00: .4byte 0x02341B80 + arm_func_end ov07_0233CCF0 + + arm_func_start ov07_0233CD04 +ov07_0233CD04: @ 0x0233CD04 + push {r3, lr} + ldr r0, _0233CD2C @ =0x02341B80 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0233CD2C @ =0x02341B80 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233CD2C: .4byte 0x02341B80 + arm_func_end ov07_0233CD04 + + arm_func_start ov07_0233CD30 +ov07_0233CD30: @ 0x0233CD30 + push {r3, lr} + mov r0, #4 + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233CD64 @ =0x02341B60 + mov r1, #4 + str r0, [r2] + bl FUN_02003250 + ldr r0, _0233CD64 @ =0x02341B60 + mov r1, #0 + ldr r0, [r0] + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233CD64: .4byte 0x02341B60 + arm_func_end ov07_0233CD30 + + arm_func_start ov07_0233CD68 +ov07_0233CD68: @ 0x0233CD68 + push {r3, r4, lr} + sub sp, sp, #4 + ldr r0, _0233CF4C @ =0x02341B60 + ldr r1, _0233CF50 @ =0x00001001 + ldr r0, [r0] + ldr r2, [r0] + cmp r2, r1 + bgt _0233CDB8 + bge _0233CE8C + cmp r2, #1 + bgt _0233CDAC + cmp r2, #0 + blt _0233CF38 + beq _0233CDE0 + cmp r2, #1 + beq _0233CE14 + b _0233CF38 +_0233CDAC: + cmp r2, #0x1000 + beq _0233CE78 + b _0233CF38 +_0233CDB8: + add r0, r1, #0x1000 + cmp r2, r0 + bgt _0233CDD4 + bge _0233CEE0 + arm_func_end ov07_0233CD68 + + arm_func_start ov07_0233CDC8 +ov07_0233CDC8: @ 0x0233CDC8 + cmp r2, #0x2000 + beq _0233CEC8 + b _0233CF38 +_0233CDD4: + add r0, r1, #0xe000 + arm_func_end ov07_0233CDC8 + + arm_func_start ov07_0233CDD8 +ov07_0233CDD8: @ 0x0233CDD8 + cmp r2, r0 + b _0233CF38 +_0233CDE0: + mov r0, #5 + arm_func_end ov07_0233CDD8 + + arm_func_start ov07_0233CDE4 +ov07_0233CDE4: @ 0x0233CDE4 + bl FUN_02337928 + str r0, [sp] + mov r0, #0 + ldr r2, _0233CF54 @ =0x023419FC + ldr r3, _0233CF58 @ =0x000036F6 + mov r1, r0 + bl ov07_0233F638 + ldr r0, _0233CF4C @ =0x02341B60 + mov r1, #1 + ldr r0, [r0] + str r1, [r0] + b _0233CF40 +_0233CE14: + bl ov07_0233F678 + mov r4, r0 + bl ov07_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #5 + bl FUN_02337938 + cmp r4, #8 + ldreq r0, _0233CF4C @ =0x02341B60 + moveq r1, #0x1000 + ldreq r0, [r0] + streq r1, [r0] + beq _0233CF40 + cmp r4, #9 + ldreq r0, _0233CF4C @ =0x02341B60 + moveq r1, #0x2000 + ldreq r0, [r0] + streq r1, [r0] + beq _0233CF40 + cmp r4, #0x15 + ldreq r0, _0233CF4C @ =0x02341B60 + ldreq r1, _0233CF5C @ =0x0000F001 + ldreq r0, [r0] + streq r1, [r0] + b _0233CF40 +_0233CE78: + bl ov07_0233E9C8 + ldr r0, _0233CF4C @ =0x02341B60 + ldr r1, _0233CF50 @ =0x00001001 + ldr r0, [r0] + str r1, [r0] +_0233CE8C: + bl FUN_02003BFC + bl ov07_0233EAF4 + cmp r0, #1 + bne _0233CEB4 + bl ov07_0233F60C + ldr r0, _0233CF4C @ =0x02341B60 + mov r1, #0 + ldr r0, [r0] + str r1, [r0] + b _0233CF40 +_0233CEB4: + cmp r0, #2 + bne _0233CF40 + bl ov07_0233F60C + mov r0, #2 + b _0233CF44 +_0233CEC8: + rsb r0, r1, #0x1000 + bl ov07_0233DD58 + ldr r0, _0233CF4C @ =0x02341B60 + ldr r1, _0233CF60 @ =0x00002001 + ldr r0, [r0] + str r1, [r0] +_0233CEE0: + bl ov07_0233DE60 + cmp r0, #1 + bne _0233CF04 + bl ov07_0233E514 + ldr r0, _0233CF4C @ =0x02341B60 + mov r1, #0 + ldr r0, [r0] + str r1, [r0] + b _0233CF40 +_0233CF04: + cmp r0, #2 + bne _0233CF24 + bl ov07_0233E514 + ldr r0, _0233CF4C @ =0x02341B60 + ldr r1, _0233CF5C @ =0x0000F001 + ldr r0, [r0] + str r1, [r0] + b _0233CF40 +_0233CF24: + cmp r0, #3 + bne _0233CF40 + bl ov07_0233E514 + mov r0, #2 + b _0233CF44 +_0233CF38: + mov r0, #1 + b _0233CF44 +_0233CF40: + mov r0, #0 +_0233CF44: + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0233CF4C: .4byte 0x02341B60 +_0233CF50: .4byte 0x00001001 +_0233CF54: .4byte 0x023419FC +_0233CF58: .4byte 0x000036F6 +_0233CF5C: .4byte 0x0000F001 +_0233CF60: .4byte 0x00002001 + arm_func_end ov07_0233CDE4 + + arm_func_start ov07_0233CF64 +ov07_0233CF64: @ 0x0233CF64 + push {r3, lr} + ldr r0, _0233CF8C @ =0x02341B60 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0233CF8C @ =0x02341B60 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233CF8C: .4byte 0x02341B60 + arm_func_end ov07_0233CF64 + + arm_func_start ov07_0233CF90 +ov07_0233CF90: @ 0x0233CF90 + push {r4, lr} + mov r0, #0x30c + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233CFEC @ =0x02341B64 + mov r4, r0 + mov r1, #0x30c + str r4, [r2] + bl FUN_02003250 + mvn r0, #1 + strb r0, [r4, #4] + mov r0, #0 + str r0, [r4] + mov r0, #2 + bl FUN_02337928 + str r0, [r4, #0x1cc] + mov r0, #0 + strb r0, [r4, #0x308] + strb r0, [r4, #0x309] + str r0, [r4, #0x268] + add r0, r4, #0x304 + str r0, [r4, #0x2cc] + pop {r4, pc} + .align 2, 0 +_0233CFEC: .4byte 0x02341B64 + arm_func_end ov07_0233CF90 + + arm_func_start ov07_0233CFF0 +ov07_0233CFF0: @ 0x0233CFF0 + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0xc + ldr r0, _0233D8D4 @ =0x02341B64 + ldr r3, _0233D8D8 @ =0x00005001 + ldr r6, [r0] + ldr r0, [r6] + cmp r0, r3 + bgt _0233D0B0 + bge _0233D64C + cmp r0, #0x3000 + bgt _0233D074 + bge _0233D358 + cmp r0, #0x1000 + bgt _0233D04C + bge _0233D17C + cmp r0, #1 + bgt _0233D8C0 + cmp r0, #0 + blt _0233D8C0 + beq _0233D150 + cmp r0, #1 + beq _0233D168 + b _0233D8C0 +_0233D04C: + ldr r2, _0233D8DC @ =0x00001002 + cmp r0, r2 + bgt _0233D8C0 + sub r1, r2, #1 + cmp r0, r1 + blt _0233D8C0 + beq _0233D18C + cmp r0, r2 + beq _0233D244 + b _0233D8C0 +_0233D074: + cmp r0, #0x4000 + bgt _0233D090 + bge _0233D50C + sub r1, r3, #0x2000 + cmp r0, r1 + beq _0233D3F8 + b _0233D8C0 +_0233D090: + sub r1, r3, #0x1000 + cmp r0, r1 + bgt _0233D0A4 + beq _0233D528 + b _0233D8C0 +_0233D0A4: + cmp r0, #0x5000 + beq _0233D56C + b _0233D8C0 +_0233D0B0: + cmp r0, #0x7000 + bgt _0233D110 + bge _0233D800 + cmp r0, #0x6000 + bgt _0233D100 + bge _0233D750 + add r1, r3, #3 + cmp r0, r1 + bgt _0233D8C0 + add r1, r3, #1 + cmp r0, r1 + blt _0233D8C0 + beq _0233D660 + add r1, r3, #2 + cmp r0, r1 + beq _0233D6F8 + add r1, r3, #3 + cmp r0, r1 + beq _0233D728 + b _0233D8C0 +_0233D100: + add r1, r3, #0x1000 + cmp r0, r1 + beq _0233D7EC + b _0233D8C0 +_0233D110: + ldr r2, _0233D8E0 @ =0x00007002 + cmp r0, r2 + bgt _0233D130 + bge _0233D854 + sub r1, r2, #1 + cmp r0, r1 + beq _0233D828 + b _0233D8C0 +_0233D130: + add r1, r2, #1 + cmp r0, r1 + bgt _0233D144 + beq _0233D8AC + b _0233D8C0 +_0233D144: + add r1, r3, #0xa000 + cmp r0, r1 + b _0233D8C0 +_0233D150: + ldr r1, _0233D8E4 @ =0x00003714 + mov r2, #1 + mov r0, #0x1c + str r2, [r6] + bl ov07_0233F6AC + b _0233D8C8 +_0233D168: + bl ov07_0233F6C8 + cmp r0, #0x15 + moveq r0, #0x1000 + streq r0, [r6] + b _0233D8C8 +_0233D17C: + bl FUN_02046D20 + ldr r0, _0233D8E8 @ =0x00001001 + str r0, [r6] + b _0233D8C8 +_0233D18C: + ldrsb r0, [r6, #4] + rsb r1, r2, #0x1000 + cmp r0, r1 + bne _0233D234 + mov r7, #0 + mov r5, r7 + mov r4, r7 +_0233D1A8: + lsl r0, r7, #0x10 + lsr r0, r0, #0x10 + bl FUN_022BD0A0 + cmp r0, #0 + addne r0, r6, r5, lsl #2 + strhne r7, [r0, #0xc] + add r7, r7, #1 + strbne r4, [r0, #0xe] + addne r5, r5, #1 + cmp r7, #0x10 + blt _0233D1A8 + str r5, [r6, #8] + ldr r0, [r6, #0x1cc] + mov r2, #0x10 + str r0, [r6, #0x1d0] + ldr r1, _0233D8EC @ =0x00003715 + str r2, [r6, #0x1dc] + add r0, r6, #0x100 + strh r1, [r0, #0xd8] + str r2, [r6, #0x1dc] + mov r1, #0xd + ldr r0, _0233D8F0 @ =ov07_0233DAA8 + str r1, [r6, #0x1d4] + str r0, [sp] + ldr r0, [r6, #8] + mov r2, #8 + str r0, [sp, #4] + ldr r0, _0233D8F4 @ =0x02341AAC + ldr r1, _0233D8F8 @ =0x00441C37 + ldr r3, _0233D8FC @ =ov07_0233D9DC + str r2, [sp, #8] + add r2, r6, #0x1d0 + bl FUN_0202C3A8 + strb r0, [r6, #4] + b _0233D238 +_0233D234: + bl FUN_0202C620 +_0233D238: + ldr r0, _0233D8DC @ =0x00001002 + str r0, [r6] + b _0233D8C8 +_0233D244: + ldrsb r0, [r6, #4] + bl FUN_0202C748 + mov r1, r0 + lsl r1, r1, #0x18 + str r0, [r6, #0x1cc] + mov r0, #2 + asr r1, r1, #0x18 + bl FUN_02337938 + ldrsb r0, [r6, #4] + bl FUN_0202C728 + cmp r0, #0 + bne _0233D8C8 + ldrsb r0, [r6, #4] + bl FUN_0202C75C + ldr r1, _0233D8D4 @ =0x02341B64 + mov r4, r0 + ldr r5, [r1] + mvn r1, #1 + ldrsb r0, [r5, #4] + cmp r0, r1 + beq _0233D2AC + bl FUN_0202836C + ldrsb r0, [r5, #4] + bl FUN_0202C70C + mvn r0, #1 + strb r0, [r5, #4] +_0233D2AC: + cmp r4, #0 + bge _0233D2D0 + ldrb r0, [r6, #0x308] + cmp r0, #0 + movne r0, #0x7000 + strne r0, [r6] + ldreq r0, _0233D900 @ =0x0000F001 + streq r0, [r6] + b _0233D8C8 +_0233D2D0: + bl ov07_0233D9A0 + cmp r0, #1 + ble _0233D304 + mov r0, #0 + mov r4, #1 + ldr r2, _0233D904 @ =0x02341994 + ldr r3, _0233D908 @ =0x0000371F + mov r1, r0 + str r4, [sp] + bl ov07_0233F638 + mov r0, #0x5000 + str r0, [r6] + b _0233D8C8 +_0233D304: + bl ov07_0233D9A0 + cmp r0, #1 + bne _0233D33C + mov r1, #0 + b _0233D32C +_0233D318: + add r0, r6, r1, lsl #2 + ldrb r0, [r0, #0xe] + cmp r0, #0 + strne r1, [r6, #0x1cc] + add r1, r1, #1 +_0233D32C: + ldr r0, [r6, #8] + cmp r1, r0 + blt _0233D318 + b _0233D34C +_0233D33C: + str r4, [r6, #0x1cc] + add r0, r6, r4, lsl #2 + mov r1, #1 + strb r1, [r0, #0xe] +_0233D34C: + mov r0, #0x3000 + str r0, [r6] + b _0233D8C8 +_0233D358: + ldr r1, _0233D90C @ =0x02341ABC + ldr r2, _0233D910 @ =ov07_0233DB50 + add r0, r6, #0x268 + bl FUN_0204707C + mov r2, #0 + mov r1, r2 +_0233D370: + add r0, r6, r2 + add r2, r2, #1 + strb r1, [r0, #0x304] + cmp r2, #4 + blt _0233D370 + bl FUN_022BD5C8 + cmp r0, #0 + beq _0233D3A8 + ldr r0, [r6, #0x1cc] + add r0, r6, r0, lsl #2 + ldrh r0, [r0, #0xc] + bl FUN_022BD2C0 + cmp r0, #0 + bne _0233D3B0 +_0233D3A8: + mov r0, #3 + strb r0, [r6, #0x306] +_0233D3B0: + mov r0, #0 + bl FUN_02337928 + ldr r1, _0233D914 @ =0x02341A20 + ldr r2, _0233D918 @ =0x02341A1C + ldr r1, [r1, r0, lsl #3] + mov r0, #0 + str r1, [r6, #0x26c] + ldr r1, _0233D91C @ =0x0000371A + str r2, [sp] + str r1, [sp, #4] + ldr r2, _0233D920 @ =0x00000233 + mov r1, r0 + add r3, r6, #0x26c + str r0, [sp, #8] + bl ov07_0233F64C + ldr r0, _0233D924 @ =0x00003001 + str r0, [r6] + b _0233D8C8 +_0233D3F8: + bl ov07_0233F678 + mov r4, r0 + bl ov07_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0 + bl FUN_02337938 + ldr r0, [r6, #0x268] + cmp r0, #0 + beq _0233D424 + bl FUN_020470D0 +_0233D424: + cmp r4, #0xa + bne _0233D448 + ldr r0, _0233D8D4 @ =0x02341B64 + ldr r0, [r0] + add r0, r0, #0x268 + bl FUN_02047150 + mov r0, #0x4000 + str r0, [r6] + b _0233D8C8 +_0233D448: + cmp r4, #0xb + bne _0233D488 + ldr r0, _0233D8D4 @ =0x02341B64 + ldr r0, [r0] + add r0, r0, #0x268 + bl FUN_02047150 + mov r0, #0 + mov r4, #1 + ldr r2, _0233D928 @ =0x02341964 + ldr r3, _0233D92C @ =0x00003722 + mov r1, r0 + str r4, [sp] + bl ov07_0233F638 + mov r0, #0x5000 + str r0, [r6] + b _0233D8C8 +_0233D488: + cmp r4, #0xc + bne _0233D4E8 + ldr r0, _0233D8D4 @ =0x02341B64 + ldr r0, [r0] + add r0, r0, #0x268 + bl FUN_02047150 + ldr r0, [r6, #0x1cc] + add r0, r6, r0, lsl #2 + ldrh r0, [r0, #0xc] + bl FUN_022BD284 + cmp r0, #0 + ldrne r4, _0233D930 @ =0x0000372C + mov r0, #1 + ldreq r4, _0233D934 @ =0x0000372A + bl FUN_02337928 + str r0, [sp] + ldr r2, _0233D938 @ =0x02341934 + mov r3, r4 + mov r0, #0 + mov r1, #8 + bl ov07_0233F638 + mov r0, #0x6000 + str r0, [r6] + b _0233D8C8 +_0233D4E8: + cmp r4, #0x15 + bne _0233D8C8 + ldr r0, _0233D8D4 @ =0x02341B64 + ldr r0, [r0] + add r0, r0, #0x268 + bl FUN_02047150 + mov r0, #0x1000 + str r0, [r6] + b _0233D8C8 +_0233D50C: + ldr r0, [r6, #0x1cc] + add r0, r6, r0, lsl #2 + ldrh r0, [r0, #0xc] + bl ov07_0233DD58 + ldr r0, _0233D93C @ =0x00004001 + str r0, [r6] + b _0233D8C8 +_0233D528: + bl ov07_0233DE60 + sub r1, r0, #1 + cmp r1, #1 + bhi _0233D558 + bl ov07_0233E540 + cmp r0, #0 + movne r0, #1 + strbne r0, [r6, #0x308] + bl ov07_0233E514 + mov r0, #0x1000 + str r0, [r6] + b _0233D8C8 +_0233D558: + cmp r0, #3 + bne _0233D8C8 + bl ov07_0233E514 + mov r0, #2 + b _0233D8CC +_0233D56C: + bl ov07_0233F678 + cmp r0, #1 + bne _0233D638 + mov r4, #0 + mov r5, r4 + add sb, r6, #0x58 + add r8, r6, #0x4c + mov r7, #0x18 +_0233D58C: + mul r2, r5, r7 + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + add r1, sb, r2 + add r2, r8, r2 + bl FUN_022BCF14 + add r5, r5, #1 + cmp r5, #0x10 + blt _0233D58C + mov r5, #0 + mov r7, #1 + b _0233D5F0 +_0233D5BC: + add r1, r6, r5, lsl #2 + ldrb r0, [r1, #0xe] + cmp r0, #0 + beq _0233D5EC + ldrh r8, [r1, #0xc] + mov r0, r8 + bl FUN_022BD2C0 + cmp r0, #0 + lsl r0, r8, #0x10 + lsr r0, r0, #0x10 + movne r4, r7 + bl FUN_022BD3B4 +_0233D5EC: + add r5, r5, #1 +_0233D5F0: + ldr r0, [r6, #8] + cmp r5, r0 + blt _0233D5BC + cmp r4, #0 + beq _0233D620 + bl ov07_0233CA80 + ldr r2, _0233D8D8 @ =0x00005001 + ldr r1, _0233D940 @ =0x00003727 + mov r0, #0x1c + str r2, [r6] + bl ov07_0233F6AC + b _0233D8C8 +_0233D620: + ldr r1, _0233D944 @ =0x00003725 + mov r0, #0x1c + bl ov07_0233F6AC + ldr r0, _0233D948 @ =0x00005003 + str r0, [r6] + b _0233D8C8 +_0233D638: + cmp r0, #2 + cmpne r0, #0x15 + moveq r0, #0x1000 + streq r0, [r6] + b _0233D8C8 +_0233D64C: + bl ov07_0233F6C8 + cmp r0, #0x15 + ldreq r0, _0233D94C @ =0x00005002 + streq r0, [r6] + b _0233D8C8 +_0233D660: + bl ov07_0233CAE8 + cmp r0, #0 + beq _0233D8C8 + cmp r0, #1 + bne _0233D6A0 + bl ov07_0233CCF0 + cmp r0, #0 + beq _0233D6A0 + ldr r1, _0233D944 @ =0x00003725 + mov r0, #0x1c + bl ov07_0233F6AC + ldr r1, _0233D950 @ =0x00005004 + mov r0, #1 + str r1, [r6] + strb r0, [r6, #0x309] + b _0233D6F0 +_0233D6A0: + mov r8, #0 + add r7, r6, #0x58 + add r5, r6, #0x4c + mov r4, #0x18 +_0233D6B0: + mul r2, r8, r4 + lsl r0, r8, #0x10 + lsr r0, r0, #0x10 + add r1, r7, r2 + add r2, r5, r2 + bl FUN_022BCF6C + add r8, r8, #1 + cmp r8, #0x10 + blt _0233D6B0 + ldr r1, _0233D954 @ =0x00003726 + mov r0, #0x1c + bl ov07_0233F6AC + ldr r1, _0233D950 @ =0x00005004 + mov r0, #0 + str r1, [r6] + strb r0, [r6, #0x309] +_0233D6F0: + bl ov07_0233CD04 + b _0233D8C8 +_0233D6F8: + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _0233D8C8 + mov r0, #1 + strb r0, [r6, #0x308] + bl FUN_022BD2F4 + cmp r0, #0 + movne r0, #0x1000 + strne r0, [r6] + moveq r0, #0x7000 + streq r0, [r6] + b _0233D8C8 +_0233D728: + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _0233D8C8 + ldrb r0, [r6, #0x309] + cmp r0, #0 + moveq r0, #0x1000 + streq r0, [r6] + movne r0, #0x7000 + strne r0, [r6] + b _0233D8C8 +_0233D750: + bl ov07_0233F678 + mov r4, r0 + bl ov07_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #1 + bl FUN_02337938 + cmp r4, #1 + bne _0233D7D8 + ldr r0, [r6, #0x1cc] + add r0, r6, r0, lsl #2 + ldrh r0, [r0, #0xc] + bl FUN_022BD284 + cmp r0, #0 + ldr r0, [r6, #0x1cc] + beq _0233D7A8 + add r0, r6, r0, lsl #2 + ldrh r0, [r0, #0xc] + mov r1, #0 + bl FUN_022BD2A4 + ldr r1, _0233D958 @ =0x0000372D + b _0233D7BC +_0233D7A8: + add r0, r6, r0, lsl #2 + ldrh r0, [r0, #0xc] + mov r1, #1 + bl FUN_022BD2A4 + ldr r1, _0233D95C @ =0x0000372B +_0233D7BC: + mov r2, #1 + mov r0, #0x1c + strb r2, [r6, #0x308] + bl ov07_0233F6AC + ldr r0, _0233D960 @ =0x00006001 + str r0, [r6] + b _0233D8C8 +_0233D7D8: + cmp r4, #2 + cmpne r4, #0x15 + moveq r0, #0x1000 + streq r0, [r6] + b _0233D8C8 +_0233D7EC: + bl ov07_0233F6C8 + cmp r0, #0x15 + moveq r0, #0x1000 + streq r0, [r6] + b _0233D8C8 +_0233D800: + bl FUN_022BD780 + ldr r1, _0233D964 @ =0x0000023B + mov r0, #0 + bl ov07_0233F6AC + ldr r1, _0233D968 @ =0x00007001 + mov r0, #0 + str r1, [r6] + strb r0, [r6, #0x309] + strb r0, [r6, #0x308] + b _0233D8C8 +_0233D828: + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _0233D8C8 + mov r0, #0xe0 + mov r1, #0x88 + mov r2, #1 + bl FUN_02029F88 + ldr r0, _0233D8E0 @ =0x00007002 + str r0, [r6] + bl FUN_02003B94 + b _0233D8C8 +_0233D854: + mov r0, #3 + bl FUN_02048F84 + mov r4, r0 + bl FUN_02003BC8 + bl FUN_02029FBC + cmp r4, #0 + bne _0233D888 + mov r0, #0x1c + mov r1, #0x23c + bl ov07_0233F6AC + ldr r0, _0233D96C @ =0x00007003 + str r0, [r6] + b _0233D8C8 +_0233D888: + cmp r4, #1 + moveq r0, #2 + beq _0233D8CC + ldr r1, _0233D970 @ =0x00000239 + mov r0, #0x1c + bl ov07_0233F6AC + ldr r0, _0233D96C @ =0x00007003 + str r0, [r6] + b _0233D8C8 +_0233D8AC: + bl ov07_0233F6C8 + cmp r0, #0x15 + ldreq r0, _0233D900 @ =0x0000F001 + streq r0, [r6] + b _0233D8C8 +_0233D8C0: + mov r0, #1 + b _0233D8CC +_0233D8C8: + mov r0, #0 +_0233D8CC: + add sp, sp, #0xc + pop {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0233D8D4: .4byte 0x02341B64 +_0233D8D8: .4byte 0x00005001 +_0233D8DC: .4byte 0x00001002 +_0233D8E0: .4byte 0x00007002 +_0233D8E4: .4byte 0x00003714 +_0233D8E8: .4byte 0x00001001 +_0233D8EC: .4byte 0x00003715 +_0233D8F0: .4byte ov07_0233DAA8 +_0233D8F4: .4byte 0x02341AAC +_0233D8F8: .4byte 0x00441C37 +_0233D8FC: .4byte ov07_0233D9DC +_0233D900: .4byte 0x0000F001 +_0233D904: .4byte 0x02341994 +_0233D908: .4byte 0x0000371F +_0233D90C: .4byte 0x02341ABC +_0233D910: .4byte ov07_0233DB50 +_0233D914: .4byte 0x02341A20 +_0233D918: .4byte 0x02341A1C +_0233D91C: .4byte 0x0000371A +_0233D920: .4byte 0x00000233 +_0233D924: .4byte 0x00003001 +_0233D928: .4byte 0x02341964 +_0233D92C: .4byte 0x00003722 +_0233D930: .4byte 0x0000372C +_0233D934: .4byte 0x0000372A +_0233D938: .4byte 0x02341934 +_0233D93C: .4byte 0x00004001 +_0233D940: .4byte 0x00003727 +_0233D944: .4byte 0x00003725 +_0233D948: .4byte 0x00005003 +_0233D94C: .4byte 0x00005002 +_0233D950: .4byte 0x00005004 +_0233D954: .4byte 0x00003726 +_0233D958: .4byte 0x0000372D +_0233D95C: .4byte 0x0000372B +_0233D960: .4byte 0x00006001 + arm_func_end ov07_0233CFF0 +_0233D964: .4byte 0x0000023B +_0233D968: .4byte 0x00007001 +_0233D96C: .4byte 0x00007003 +_0233D970: .4byte 0x00000239 + + arm_func_start ov07_0233D974 +ov07_0233D974: @ 0x0233D974 + push {r3, lr} + ldr r0, _0233D99C @ =0x02341B64 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0233D99C @ =0x02341B64 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233D99C: .4byte 0x02341B64 + arm_func_end ov07_0233D974 + + arm_func_start ov07_0233D9A0 +ov07_0233D9A0: @ 0x0233D9A0 + ldr r0, _0233D9D8 @ =0x02341B64 + mov ip, #0 + ldr r2, [r0] + mov r0, ip + ldr r3, [r2, #8] + b _0233D9CC +_0233D9B8: + add r1, r2, ip, lsl #2 + ldrb r1, [r1, #0xe] + add ip, ip, #1 + cmp r1, #0 + addne r0, r0, #1 +_0233D9CC: + cmp ip, r3 + blt _0233D9B8 + bx lr + .align 2, 0 +_0233D9D8: .4byte 0x02341B64 + arm_func_end ov07_0233D9A0 + + arm_func_start ov07_0233D9DC +ov07_0233D9DC: @ 0x0233D9DC + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x154 + ldr r3, _0233DA9C @ =0x02341B64 + lsl r6, r1, #2 + ldr r3, [r3] + mov r5, r0 + add r7, r3, #0xc + ldrh r0, [r7, r6] + mov r4, r2 + add r8, r7, r1, lsl #2 + bl FUN_022BD108 + add r0, sp, #4 + bl FUN_02023690 + add r0, sp, #0x54 + mov r1, #0x16 + bl FUN_02003250 + ldrh r0, [r7, r6] + bl FUN_022BD0D4 + mov r1, r0 + add r0, sp, #0x54 + mov r2, #0xa + bl FUN_020251F4 + add r1, sp, #0x54 + str r1, [sp, #0x3c] + add r0, sp, #4 + str r0, [sp] + ldr r2, _0233DAA0 @ =0x00003716 + mov r0, r5 + mov r1, #0x100 + mov r3, #0 + bl FUN_020235B8 + ldr r1, _0233DAA4 @ =0x02341ACC + mov r0, r5 + bl FUN_020897AC + ldrh r1, [r7, r6] + add r0, sp, #0x54 + bl ov07_0233DC48 + mov r0, r5 + add r1, sp, #0x54 + bl FUN_020897AC + ldrb r0, [r8, #2] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + str r0, [r4] + mov r0, r5 + add sp, sp, #0x154 + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0233DA9C: .4byte 0x02341B64 +_0233DAA0: .4byte 0x00003716 +_0233DAA4: .4byte 0x02341ACC + arm_func_end ov07_0233D9DC + + arm_func_start ov07_0233DAA8 +ov07_0233DAA8: @ 0x0233DAA8 + push {r4, r5, r6, lr} + ldr r1, _0233DB4C @ =0x02341B64 + mov r6, r0 + ldr r4, [r1] + ldrsb r0, [r4, #4] + bl FUN_0202C748 + mov r5, r0 + tst r6, #0x400 + beq _0233DB44 + mov r0, #6 + bl FUN_02017CCC + add r2, r4, r5, lsl #2 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _0233DB2C + mov r1, #0 + strb r1, [r2, #0xe] + mov r2, #1 + b _0233DB0C +_0233DAF4: + add r0, r4, r1, lsl #2 + ldrb r0, [r0, #0xe] + cmp r0, #0 + movne r2, #0 + bne _0233DB14 + add r1, r1, #1 +_0233DB0C: + cmp r1, #0x10 + blt _0233DAF4 +_0233DB14: + cmp r2, #0 + beq _0233DB3C + ldrsb r0, [r4, #4] + mov r1, #0 + bl FUN_0202D07C + b _0233DB3C +_0233DB2C: + mov r1, #1 + strb r1, [r2, #0xe] + ldrsb r0, [r4, #4] + bl FUN_0202D07C +_0233DB3C: + mov r0, #1 + pop {r4, r5, r6, pc} +_0233DB44: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_0233DB4C: .4byte 0x02341B64 + arm_func_end ov07_0233DAA8 + + arm_func_start ov07_0233DB50 +ov07_0233DB50: @ 0x0233DB50 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x54 + ldr r1, _0233DC3C @ =0x02341B64 + mov r4, r0 + ldr r1, [r1] + ldr r0, [r1, #0x1cc] + add r8, r1, #0xc + lsl r7, r0, #2 + ldrh r0, [r8, r7] + bl FUN_022BD108 + mov r0, #0x100 + mov r1, #0xf + bl FUN_02001170 + mov r6, r0 + mov r0, #0x100 + mov r1, #0xf + bl FUN_02001170 + mov r5, r0 + add r0, sp, #4 + bl FUN_02023690 + mov r0, r6 + mov r1, #0x16 + bl FUN_02003250 + ldrh r0, [r8, r7] + bl FUN_022BD0D4 + mov r1, r0 + mov r0, r6 + mov r2, #0xa + bl FUN_020251F4 + str r6, [sp, #0x3c] + add r1, sp, #4 + str r1, [sp] + ldr r2, _0233DC40 @ =0x00003716 + mov r0, r5 + mov r1, #0x100 + mov r3, #0 + bl FUN_020235B8 + ldr r1, _0233DC44 @ =0x02341ACC + mov r0, r5 + bl FUN_020897AC + ldrh r1, [r8, r7] + mov r0, r6 + bl ov07_0233DC48 + mov r0, r5 + mov r1, r6 + bl FUN_020897AC + mov r0, r4 + mov r1, #4 + mov r2, #2 + mov r3, r5 + bl FUN_02026214 + mov r0, r6 + bl FUN_02001188 + mov r0, r5 + bl FUN_02001188 + mov r0, r4 + bl FUN_02027AF0 + add sp, sp, #0x54 + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0233DC3C: .4byte 0x02341B64 +_0233DC40: .4byte 0x00003716 +_0233DC44: .4byte 0x02341ACC + arm_func_end ov07_0233DB50 + + arm_func_start ov07_0233DC48 +ov07_0233DC48: @ 0x0233DC48 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0x54 + mov r6, r1 + mov r7, r0 + mov r0, r6 + bl FUN_022BD108 + mov r4, r0 + add r0, sp, #4 + mov r5, r1 + bl FUN_02023690 + mov r0, r6 + bl FUN_022BD2C0 + cmp r0, #0 + beq _0233DCB0 + mov r0, r6 + bl FUN_022BD284 + cmp r0, #0 + beq _0233DCA0 + ldr r1, _0233DD44 @ =0x00003719 + mov r0, r7 + bl FUN_020258B8 + b _0233DD3C +_0233DCA0: + ldr r1, _0233DD48 @ =0x00003718 + mov r0, r7 + bl FUN_020258B8 + b _0233DD3C +_0233DCB0: + mov r3, #0 + cmp r5, #0 + cmpeq r4, #0 + strbeq r3, [r7] + beq _0233DD3C + ldr r2, _0233DD4C @ =0x00002710 + mov r0, r4 + mov r1, r5 + bl FUN_0208FE48 + str r0, [sp, #0x30] + ldr r2, _0233DD4C @ =0x00002710 + mov r0, r4 + mov r1, r5 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _0233DD4C @ =0x00002710 + mov r3, #0 + bl FUN_0208FE48 + str r0, [sp, #0x2c] + ldr r2, _0233DD50 @ =0x05F5E100 + mov r0, r4 + mov r1, r5 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _0233DD4C @ =0x00002710 + mov r3, #0 + bl FUN_0208FE48 + str r0, [sp, #0x28] + add r2, sp, #4 + str r2, [sp] + ldr r2, _0233DD54 @ =0x00003717 + mov r0, r7 + mov r1, #0x100 + mov r3, #0 + bl FUN_020235B8 +_0233DD3C: + add sp, sp, #0x54 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0233DD44: .4byte 0x00003719 +_0233DD48: .4byte 0x00003718 +_0233DD4C: .4byte 0x00002710 +_0233DD50: .4byte 0x05F5E100 +_0233DD54: .4byte 0x00003717 + arm_func_end ov07_0233DC48 + + arm_func_start ov07_0233DD58 +ov07_0233DD58: @ 0x0233DD58 + push {r4, lr} + mov r4, r0 + mov r0, #0x58 + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233DE58 @ =0x02341B68 + mov r1, #0x58 + str r0, [r2] + bl FUN_02003250 + ldr r0, _0233DE58 @ =0x02341B68 + mov lr, #0 + ldr r1, [r0] + ldr r3, _0233DE5C @ =0xD4A51000 + str lr, [r1] + ldr r1, [r0] + mov r2, #0xe8 + str r4, [r1, #4] + ldr ip, [r0] + mov r1, #1 + str r3, [ip, #0x34] + str r2, [ip, #0x38] + strb lr, [ip, #0x54] + ldr r0, [r0] + cmp r4, #0 + strb r1, [r0, #0x55] + poplt {r4, pc} + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl FUN_022BD108 + cmp r1, #0 + cmpeq r0, #0 + mov r2, #0 + beq _0233DE10 + ldr r3, _0233DE58 @ =0x02341B68 + lsl r2, r4, #0x10 + ldr r3, [r3] + str r0, [r3, #0x34] + lsr r0, r2, #0x10 + str r1, [r3, #0x38] + bl FUN_022BD2C0 + cmp r0, #0 + ldrne r0, _0233DE58 @ =0x02341B68 + movne r1, #0 + ldrne r0, [r0] + strbne r1, [r0, #0x55] + b _0233DE1C +_0233DE10: + ldr r0, _0233DE58 @ =0x02341B68 + ldr r0, [r0] + strb r2, [r0, #0x55] +_0233DE1C: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl FUN_022BD0D4 + ldr r2, _0233DE58 @ =0x02341B68 + mov r1, r0 + ldr r0, [r2] + mov r2, #0xa + add r0, r0, #8 + bl FUN_020032D4 + ldr r0, _0233DE58 @ =0x02341B68 + ldr r1, [r0] + add r0, r1, #0x1c + add r1, r1, #8 + bl FUN_02025100 + pop {r4, pc} + .align 2, 0 +_0233DE58: .4byte 0x02341B68 +_0233DE5C: .4byte 0xD4A51000 + arm_func_end ov07_0233DD58 + + arm_func_start ov07_0233DE60 +ov07_0233DE60: @ 0x0233DE60 + push {r4, r5, lr} + sub sp, sp, #0x254 + ldr r0, _0233E4A8 @ =0x02341B68 + ldr r3, _0233E4AC @ =0x00002004 + ldr r4, [r0] + ldr r0, [r4] + cmp r0, r3 + bgt _0233DEFC + bge _0233E294 + cmp r0, #0x2000 + bgt _0233DECC + bge _0233E1C0 + cmp r0, #0 + bgt _0233DEA0 + beq _0233DF84 + b _0233E49C +_0233DEA0: + sub r1, r0, #0x1000 + cmp r1, #6 + addls pc, pc, r1, lsl #2 + b _0233E49C +_0233DEB0: @ jump table + b _0233DFE4 @ case 0 + b _0233E49C @ case 1 + b _0233E000 @ case 2 + b _0233E03C @ case 3 + b _0233E124 @ case 4 + b _0233E15C @ case 5 + b _0233E1A4 @ case 6 +_0233DECC: + ldr r1, _0233E4B0 @ =0x00002002 + cmp r0, r1 + bgt _0233DEEC + bge _0233E220 + sub r1, r1, #1 + cmp r0, r1 + beq _0233E1E0 + b _0233E49C +_0233DEEC: + add r1, r1, #1 + cmp r0, r1 + beq _0233E26C + b _0233E49C +_0233DEFC: + ldr r2, _0233E4B4 @ =0x00003002 + cmp r0, r2 + bgt _0233DF54 + bge _0233E40C + cmp r0, #0x3000 + bgt _0233DF44 + bge _0233E3C4 + add r1, r3, #2 + cmp r0, r1 + bgt _0233E49C + add r1, r3, #1 + cmp r0, r1 + blt _0233E49C + beq _0233E2C8 + add r1, r3, #2 + cmp r0, r1 + beq _0233E39C + b _0233E49C +_0233DF44: + sub r1, r2, #1 + cmp r0, r1 + beq _0233E3E0 + b _0233E49C +_0233DF54: + ldr r1, _0233E4B8 @ =0x0000F001 + cmp r0, r1 + bgt _0233DF74 + bge _0233E478 + add r1, r2, #1 + cmp r0, r1 + beq _0233E464 + b _0233E49C +_0233DF74: + add r1, r1, #1 + cmp r0, r1 + beq _0233E48C + b _0233E49C +_0233DF84: + ldr r0, [r4, #4] + cmp r0, #0 + bge _0233DFC4 + bl FUN_022BD398 + cmp r0, #0 + beq _0233DFAC + bl FUN_02046D20 + mov r0, #0x1000 + str r0, [r4] + b _0233E49C +_0233DFAC: + ldr r1, _0233E4BC @ =0x00003704 + mov r0, #0x1c + bl ov07_0233F6AC + ldr r0, _0233E4C0 @ =0x0000F002 + str r0, [r4] + b _0233E49C +_0233DFC4: + bl FUN_02046D20 + ldrb r0, [r4, #0x55] + cmp r0, #0 + movne r0, #0x1000 + strne r0, [r4] + moveq r0, #0x2000 + streq r0, [r4] + b _0233E49C +_0233DFE4: + ldr r1, [r4, #0x34] + ldr r2, [r4, #0x38] + mov r0, #0 + bl FUN_0233580C + ldr r0, _0233E4C4 @ =0x00001002 + str r0, [r4] + b _0233E49C +_0233E000: + bl FUN_02336014 + cmp r0, #2 + bne _0233E028 + bl FUN_023370AC + str r0, [r4, #0x34] + str r1, [r4, #0x38] + bl FUN_02335FA8 + ldr r0, _0233E4C8 @ =0x00001003 + str r0, [r4] + b _0233E49C +_0233E028: + cmp r0, #1 + bne _0233E49C + bl FUN_02335FA8 + mov r0, #1 + b _0233E4A0 +_0233E03C: + ldr r1, [r4, #0x34] + ldr r2, [r4, #0x38] + add r0, r4, #0x48 + bl FUN_022BD43C + cmp r0, #0 + bne _0233E06C + ldr r1, _0233E4CC @ =0x00003705 + mov r0, #0x1c + bl ov07_0233F6AC + ldr r0, _0233E4D0 @ =0x00001004 + str r0, [r4] + b _0233E49C +_0233E06C: + mov r1, #0 + mov r2, r1 + add r0, r4, #0x48 + bl FUN_022BCDBC + cmp r0, #2 + bne _0233E0D0 + add r0, r4, #0x48 + bl FUN_022BD02C + ldr r1, [r4, #4] + cmp r1, #0 + blt _0233E0B8 + cmp r0, r1 + bne _0233E0B8 + ldr r1, _0233E4D4 @ =0x00003708 + mov r0, #0x1c + bl ov07_0233F6AC + ldr r0, _0233E4D8 @ =0x00001006 + str r0, [r4] + b _0233E49C +_0233E0B8: + ldr r1, _0233E4DC @ =0x00003706 + mov r0, #0x1c + bl ov07_0233F6AC + ldr r0, _0233E4D0 @ =0x00001004 + str r0, [r4] + b _0233E49C +_0233E0D0: + cmp r0, #1 + bne _0233E0F0 + ldr r1, _0233E4E0 @ =0x00003707 + mov r0, #0x1c + bl ov07_0233F6AC + ldr r0, _0233E4D0 @ =0x00001004 + str r0, [r4] + b _0233E49C +_0233E0F0: + cmp r0, #4 + mov r0, #0x1c + bne _0233E110 + ldr r1, _0233E4CC @ =0x00003705 + bl ov07_0233F6AC + ldr r0, _0233E4D0 @ =0x00001004 + str r0, [r4] + b _0233E49C +_0233E110: + ldr r1, _0233E4D4 @ =0x00003708 + bl ov07_0233F6AC + ldr r0, _0233E4D8 @ =0x00001006 + str r0, [r4] + b _0233E49C +_0233E124: + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _0233E49C + mov r0, #4 + bl FUN_02337928 + str r0, [sp] + mov r0, #0 + ldr r2, _0233E4E4 @ =0x023418BC + ldr r3, _0233E4E8 @ =0x00003709 + mov r1, r0 + bl ov07_0233F638 + ldr r0, _0233E4EC @ =0x00001005 + str r0, [r4] + b _0233E49C +_0233E15C: + bl ov07_0233F678 + mov r5, r0 + bl ov07_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #4 + bl FUN_02337938 + cmp r5, #1 + bne _0233E190 + bl FUN_02046D20 + mov r0, #0x1000 + str r0, [r4] + b _0233E49C +_0233E190: + cmp r5, #2 + cmpne r5, #0x15 + bne _0233E49C + mov r0, #1 + b _0233E4A0 +_0233E1A4: + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _0233E49C + bl FUN_02046D20 + mov r0, #0x2000 + str r0, [r4] + b _0233E49C +_0233E1C0: + add r1, r4, #8 + add r3, r4, #0x1c + mov r0, #1 + mov r2, #0 + bl FUN_020367F0 + ldr r0, _0233E4F0 @ =0x00002001 + str r0, [r4] + b _0233E49C +_0233E1E0: + bl FUN_02036CD4 + str r0, [r4, #0x30] + cmp r0, #3 + bne _0233E210 + bl FUN_0203755C + mov r1, r0 + add r0, r4, #8 + mov r2, #0x14 + bl FUN_020032D4 + ldr r0, _0233E4B0 @ =0x00002002 + str r0, [r4] + b _0233E49C +_0233E210: + cmp r0, #2 + ldreq r0, _0233E4B0 @ =0x00002002 + streq r0, [r4] + b _0233E49C +_0233E220: + bl FUN_02037468 + cmp r0, #0 + beq _0233E49C + ldr r0, [r4, #0x30] + cmp r0, #3 + ldreq r0, _0233E4F4 @ =0x00002003 + streq r0, [r4] + beq _0233E49C + cmp r0, #2 + bne _0233E49C + ldrb r0, [r4, #0x55] + cmp r0, #0 + beq _0233E264 + bl FUN_02046D20 + mov r0, #0x1000 + str r0, [r4] + b _0233E49C +_0233E264: + mov r0, #1 + b _0233E4A0 +_0233E26C: + add r0, sp, #0x154 + add r1, r4, #8 + mov r2, #0xa + bl FUN_020251F4 + add r0, sp, #0x154 + bl FUN_0203909C + bl FUN_02039304 + ldr r0, _0233E4AC @ =0x00002004 + str r0, [r4] + b _0233E49C +_0233E294: + bl FUN_0203931C + cmp r0, #0 + ldreq r1, _0233E4F8 @ =0x00002005 + moveq r0, #0 + streq r1, [r4] + strbeq r0, [r4, #0x56] + beq _0233E49C + cmp r0, #1 + ldreq r1, _0233E4F8 @ =0x00002005 + moveq r0, #1 + streq r1, [r4] + strbeq r0, [r4, #0x56] + b _0233E49C +_0233E2C8: + bl FUN_02039218 + cmp r0, #0 + beq _0233E49C + ldrb r0, [r4, #0x56] + cmp r0, #0 + beq _0233E2F0 + bl FUN_02046D20 + mov r0, #0x2000 + str r0, [r4] + b _0233E49C +_0233E2F0: + add r0, r4, #0x3c + add r1, r4, #8 + mov r2, #0xa + bl FUN_020032D4 + ldr r1, [r4, #4] + cmp r1, #0 + blt _0233E33C + ldrb r0, [r4, #0x55] + cmp r0, #0 + lsl r0, r1, #0x10 + lsr r0, r0, #0x10 + beq _0233E330 + add r1, r4, #0x48 + add r2, r4, #0x3c + bl FUN_022BCF6C + b _0233E34C +_0233E330: + add r1, r4, #0x3c + bl FUN_022BCFD0 + b _0233E34C +_0233E33C: + add r0, r4, #0x48 + add r1, r4, #0x3c + mov r2, #1 + bl FUN_022BCDBC +_0233E34C: + mov r1, #1 + add r0, sp, #0x104 + strb r1, [r4, #0x54] + bl FUN_02023690 + add r0, sp, #4 + mov r1, #0x16 + bl FUN_02003250 + add r0, sp, #4 + add r1, r4, #8 + mov r2, #0xa + bl FUN_020251F4 + add r3, sp, #4 + ldr r1, _0233E4FC @ =0x0000370C + add r2, sp, #0x104 + mov r0, #0x1c + str r3, [sp, #0x13c] + bl ov07_02046BE8 + ldr r0, _0233E500 @ =0x00002006 + str r0, [r4] + b _0233E49C +_0233E39C: + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _0233E49C + ldr r0, [r4, #4] + cmp r0, #0 + movge r0, #1 + bge _0233E4A0 + mov r0, #0x3000 + str r0, [r4] + b _0233E49C +_0233E3C4: + bl FUN_022BD780 + ldr r1, _0233E504 @ =0x0000023B + mov r0, #0 + bl ov07_0233F6AC + ldr r0, _0233E508 @ =0x00003001 + str r0, [r4] + b _0233E49C +_0233E3E0: + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _0233E49C + mov r0, #0xe0 + mov r1, #0x88 + mov r2, #1 + bl FUN_02029F88 + ldr r0, _0233E4B4 @ =0x00003002 + str r0, [r4] + bl FUN_02003B94 + b _0233E49C +_0233E40C: + mov r0, #3 + bl FUN_02048F84 + mov r5, r0 + bl FUN_02003BC8 + bl FUN_02029FBC + cmp r5, #0 + bne _0233E440 + mov r0, #0x1c + mov r1, #0x23c + bl ov07_0233F6AC + ldr r0, _0233E50C @ =0x00003003 + str r0, [r4] + b _0233E49C +_0233E440: + cmp r5, #1 + moveq r0, #3 + beq _0233E4A0 + ldr r1, _0233E510 @ =0x00000239 + mov r0, #0x1c + bl ov07_0233F6AC + ldr r0, _0233E50C @ =0x00003003 + str r0, [r4] + b _0233E49C +_0233E464: + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _0233E49C + mov r0, #1 + b _0233E4A0 +_0233E478: + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _0233E49C + mov r0, #1 + b _0233E4A0 +_0233E48C: + bl ov07_0233F6C8 + cmp r0, #0x15 + moveq r0, #2 + beq _0233E4A0 +_0233E49C: + mov r0, #0 +_0233E4A0: + add sp, sp, #0x254 + pop {r4, r5, pc} + .align 2, 0 +_0233E4A8: .4byte 0x02341B68 +_0233E4AC: .4byte 0x00002004 +_0233E4B0: .4byte 0x00002002 +_0233E4B4: .4byte 0x00003002 +_0233E4B8: .4byte 0x0000F001 +_0233E4BC: .4byte 0x00003704 +_0233E4C0: .4byte 0x0000F002 +_0233E4C4: .4byte 0x00001002 +_0233E4C8: .4byte 0x00001003 +_0233E4CC: .4byte 0x00003705 +_0233E4D0: .4byte 0x00001004 +_0233E4D4: .4byte 0x00003708 +_0233E4D8: .4byte 0x00001006 +_0233E4DC: .4byte 0x00003706 +_0233E4E0: .4byte 0x00003707 +_0233E4E4: .4byte 0x023418BC +_0233E4E8: .4byte 0x00003709 +_0233E4EC: .4byte 0x00001005 +_0233E4F0: .4byte 0x00002001 +_0233E4F4: .4byte 0x00002003 +_0233E4F8: .4byte 0x00002005 +_0233E4FC: .4byte 0x0000370C +_0233E500: .4byte 0x00002006 +_0233E504: .4byte 0x0000023B +_0233E508: .4byte 0x00003001 +_0233E50C: .4byte 0x00003003 +_0233E510: .4byte 0x00000239 + arm_func_end ov07_0233DE60 + + arm_func_start ov07_0233E514 +ov07_0233E514: @ 0x0233E514 + push {r3, lr} + ldr r0, _0233E53C @ =0x02341B68 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0233E53C @ =0x02341B68 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233E53C: .4byte 0x02341B68 + arm_func_end ov07_0233E514 + + arm_func_start ov07_0233E540 +ov07_0233E540: @ 0x0233E540 + ldr r0, _0233E550 @ =0x02341B68 + ldr r0, [r0] + ldrb r0, [r0, #0x54] + bx lr + .align 2, 0 +_0233E550: .4byte 0x02341B68 + arm_func_end ov07_0233E540 + + arm_func_start ov07_0233E554 +ov07_0233E554: @ 0x0233E554 + push {r3, lr} + mov r0, #4 + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233E588 @ =0x02341B6C + mov r1, #4 + str r0, [r2] + bl FUN_02003250 + ldr r0, _0233E588 @ =0x02341B6C + mov r1, #0 + ldr r0, [r0] + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233E588: .4byte 0x02341B6C + arm_func_end ov07_0233E554 + + arm_func_start ov07_0233E58C +ov07_0233E58C: @ 0x0233E58C + push {r3, lr} + ldr r0, _0233E5C4 @ =0x02341B6C + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + mov r0, #1 + bl FUN_022BCBAC + ldr r0, _0233E5C4 @ =0x02341B6C + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0233E5C4 @ =0x02341B6C + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233E5C4: .4byte 0x02341B6C + arm_func_end ov07_0233E58C + + arm_func_start ov07_0233E5C8 +ov07_0233E5C8: @ 0x0233E5C8 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0xa4 + ldr r0, _0233E9A8 @ =0x02341B6C + ldr r4, [r0] + ldr r0, [r4] + cmp r0, #0xc + addls pc, pc, r0, lsl #2 + b _0233E99C +_0233E5E8: @ jump table + b _0233E61C @ case 0 + b _0233E644 @ case 1 + b _0233E658 @ case 2 + b _0233E750 @ case 3 + b _0233E764 @ case 4 + b _0233E7A4 @ case 5 + b _0233E7B4 @ case 6 + b _0233E874 @ case 7 + b _0233E8BC @ case 8 + b _0233E904 @ case 9 + b _0233E944 @ case 10 + b _0233E954 @ case 11 + b _0233E984 @ case 12 +_0233E61C: + bl FUN_0204A1CC + bl FUN_022BCA80 + cmp r0, #3 + movne r0, #2 + strne r0, [r4] + bne _0233E99C + bl FUN_02339888 + mov r0, #1 + str r0, [r4] + b _0233E99C +_0233E644: + bl FUN_023398A4 + cmp r0, #0 + movne r0, #2 + strne r0, [r4] + b _0233E99C +_0233E658: + bl FUN_022BCCAC + cmp r0, #0 + bne _0233E690 + mov r0, #3 + bl FUN_02337928 + str r0, [sp] + mov r0, #0 + ldr r2, _0233E9AC @ =0x0234191C + ldr r3, _0233E9B0 @ =0x0000370D + mov r1, r0 + bl ov07_0233F638 + mov r0, #4 + str r0, [r4] + b _0233E99C +_0233E690: + bl FUN_022BCCF4 + cmp r0, #0 + bne _0233E6C8 + mov r0, #3 + bl FUN_02337928 + str r0, [sp] + ldr r2, _0233E9B4 @ =0x0234197C + ldr r3, _0233E9B8 @ =0x00003710 + mov r0, #0 + mov r1, #8 + bl ov07_0233F638 + mov r0, #4 + str r0, [r4] + b _0233E99C +_0233E6C8: + add r0, sp, #0x54 + bl FUN_02023690 + bl FUN_022BCDA4 + ldr r2, _0233E9BC @ =0x00002710 + mov r3, #0 + mov r5, r0 + mov r6, r1 + bl FUN_0208FE48 + str r0, [sp, #0x80] + ldr r2, _0233E9BC @ =0x00002710 + mov r0, r5 + mov r1, r6 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _0233E9BC @ =0x00002710 + mov r3, #0 + bl FUN_0208FE48 + str r0, [sp, #0x7c] + ldr r2, _0233E9C0 @ =0x05F5E100 + mov r1, r6 + mov r0, r5 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _0233E9BC @ =0x00002710 + mov r3, #0 + bl FUN_0208FE48 + str r0, [sp, #0x78] + ldr r1, _0233E9C4 @ =0x00003713 + mov r0, #0x1c + add r2, sp, #0x54 + bl ov07_02046BE8 + mov r0, #3 + str r0, [r4] + b _0233E99C +_0233E750: + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _0233E99C + mov r0, #2 + b _0233E9A0 +_0233E764: + bl ov07_0233F678 + mov r5, r0 + bl ov07_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #3 + bl FUN_02337938 + cmp r5, #1 + moveq r0, #5 + streq r0, [r4] + beq _0233E99C + cmp r5, #2 + cmpne r5, #0x15 + bne _0233E99C + mov r0, #2 + b _0233E9A0 +_0233E7A4: + bl FUN_02338A24 + mov r0, #6 + str r0, [r4] + b _0233E99C +_0233E7B4: + bl FUN_02338EC4 + cmp r0, #1 + beq _0233E7D4 + cmp r0, #4 + beq _0233E7E0 + cmp r0, #8 + beq _0233E868 + b _0233E99C +_0233E7D4: + bl FUN_02338B08 + mov r0, #2 + b _0233E9A0 +_0233E7E0: + add r0, sp, #4 + bl FUN_02023690 + bl FUN_022BCDA4 + ldr r2, _0233E9BC @ =0x00002710 + mov r3, #0 + mov r5, r0 + mov r6, r1 + bl FUN_0208FE48 + str r0, [sp, #0x30] + ldr r2, _0233E9BC @ =0x00002710 + mov r0, r5 + mov r1, r6 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _0233E9BC @ =0x00002710 + mov r3, #0 + bl FUN_0208FE48 + str r0, [sp, #0x2c] + ldr r2, _0233E9C0 @ =0x05F5E100 + mov r1, r6 + mov r0, r5 + mov r3, #0 + bl FUN_0208FE3C + ldr r2, _0233E9BC @ =0x00002710 + mov r3, #0 + bl FUN_0208FE48 + str r0, [sp, #0x28] + ldr r1, _0233E9C4 @ =0x00003713 + mov r0, #0x1c + add r2, sp, #4 + bl ov07_02046BE8 + mov r0, #7 + str r0, [r4] + b _0233E99C +_0233E868: + bl FUN_02338B08 + mov r0, #2 + b _0233E9A0 +_0233E874: + bl FUN_02338EC4 + mov r5, r0 + bl ov07_0233F6C8 + cmp r5, #5 + bne _0233E89C + bl FUN_02046D20 + bl FUN_02338C34 + mov r0, #0xc + str r0, [r4] + b _0233E99C +_0233E89C: + cmp r0, #0x15 + bne _0233E99C + mov r0, #1 + mov r1, #0 + bl FUN_02338C28 + mov r0, #9 + str r0, [r4] + b _0233E99C +_0233E8BC: + bl FUN_02338EC4 + mov r5, r0 + bl ov07_0233F6C8 + cmp r5, #5 + bne _0233E8E4 + bl FUN_02046D20 + bl FUN_02338C34 + mov r0, #0xc + str r0, [r4] + b _0233E99C +_0233E8E4: + cmp r0, #0x15 + bne _0233E99C + mov r0, #1 + mov r1, #0 + bl FUN_02338C28 + mov r0, #9 + str r0, [r4] + b _0233E99C +_0233E904: + bl FUN_02338EC4 + cmp r0, #6 + bne _0233E930 + bl FUN_02338B08 + bl FUN_022BD274 + cmp r0, #0 + movne r0, #0xa + strne r0, [r4] + bne _0233E99C + mov r0, #2 + b _0233E9A0 +_0233E930: + cmp r0, #8 + bne _0233E99C + bl FUN_02338B08 + mov r0, #2 + b _0233E9A0 +_0233E944: + bl FUN_0233769C + mov r0, #0xb + str r0, [r4] + b _0233E99C +_0233E954: + bl FUN_02337718 + cmp r0, #1 + cmpne r0, #3 + bne _0233E970 + bl FUN_023376DC + mov r0, #2 + b _0233E9A0 +_0233E970: + cmp r0, #2 + bne _0233E99C + bl FUN_023376DC + mov r0, #2 + b _0233E9A0 +_0233E984: + bl FUN_02338EC4 + cmp r0, #0 + beq _0233E99C + bl FUN_02338B08 + mov r0, #2 + b _0233E9A0 +_0233E99C: + mov r0, #0 +_0233E9A0: + add sp, sp, #0xa4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0233E9A8: .4byte 0x02341B6C +_0233E9AC: .4byte 0x0234191C +_0233E9B0: .4byte 0x0000370D +_0233E9B4: .4byte 0x0234197C +_0233E9B8: .4byte 0x00003710 +_0233E9BC: .4byte 0x00002710 +_0233E9C0: .4byte 0x05F5E100 +_0233E9C4: .4byte 0x00003713 + arm_func_end ov07_0233E5C8 + + arm_func_start ov07_0233E9C8 +ov07_0233E9C8: @ 0x0233E9C8 + push {r3, lr} + mov r0, #0xd8 + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233EA20 @ =0x02341B70 + mov r1, #0xd8 + str r0, [r2] + bl FUN_02003250 + ldr r0, _0233EA20 @ =0x02341B70 + mov r3, #0 + ldr r1, [r0] + mov r2, #1 + str r3, [r1] + ldr r1, [r0] + strb r2, [r1, #0xd4] + ldr r1, [r0] + str r3, [r1, #4] + ldr r1, [r0] + add r0, r1, #0xb3 + bic r0, r0, #0x1f + str r0, [r1, #0x90] + pop {r3, pc} + .align 2, 0 +_0233EA20: .4byte 0x02341B70 + arm_func_end ov07_0233E9C8 + + arm_func_start ov07_0233EA24 +ov07_0233EA24: @ 0x0233EA24 + push {r4, lr} + mov r4, r0 + add r0, r4, #4 + mov r1, #0xc + bl FUN_02337B3C + ldrb r1, [r4, #3] + cmp r0, r1 + movne r0, #3 + popne {r4, pc} + ldrb r0, [r4] + cmp r0, #0xc + movne r0, #2 + moveq r0, #1 + pop {r4, pc} + arm_func_end ov07_0233EA24 +_0233EA5C: + .byte 0x0C, 0x00, 0x9F, 0xE5 + .byte 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x8E, 0x10, 0xC0, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x70, 0x1B, 0x34, 0x02, 0x10, 0x40, 0x2D, 0xE9, 0x00, 0x00, 0xD1, 0xE5, 0x01, 0x00, 0x50, 0xE3 + .byte 0x03, 0x00, 0x00, 0x1A, 0x88, 0xE4, 0xFF, 0xEB, 0x5C, 0x00, 0x9F, 0xE5, 0x01, 0x30, 0xA0, 0xE3 + .byte 0x0F, 0x00, 0x00, 0xEA, 0x50, 0x00, 0x9F, 0xE5, 0x10, 0x10, 0xA0, 0xE3, 0x00, 0x40, 0x90, 0xE5 + .byte 0x1C, 0x00, 0x84, 0xE2, 0xE9, 0x11, 0xF3, 0xEB, 0x0C, 0x00, 0xA0, 0xE3, 0x1C, 0x00, 0xC4, 0xE5 + .byte 0xBA, 0x86, 0xF3, 0xEB, 0x1E, 0x00, 0xC4, 0xE5, 0x20, 0x00, 0x84, 0xE2, 0x0C, 0x10, 0xA0, 0xE3 + .byte 0x1D, 0xE4, 0xFF, 0xEB, 0x1F, 0x00, 0xC4, 0xE5, 0x77, 0xE4, 0xFF, 0xEB, 0x18, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x10, 0x10, 0x9F, 0xE5, 0x8D, 0x30, 0xC2, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x10, 0x80, 0xBD, 0xE8, 0x70, 0x1B, 0x34, 0x02 + .byte 0x02, 0x10, 0x00, 0x00 + + arm_func_start ov07_0233EAF4 +ov07_0233EAF4: @ 0x0233EAF4 + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x2d4 + ldr r0, _0233F590 @ =0x02341B70 + ldr r2, _0233F594 @ =0x0000E001 + ldr r4, [r0] + ldr r0, [r4] + cmp r0, r2 + bgt _0233EB7C + bge _0233F468 + cmp r0, #0x1000 + bgt _0233EB44 + bge _0233ECB0 + cmp r0, #1 + bgt _0233F57C + cmp r0, #0 + blt _0233F57C + beq _0233EBE8 + cmp r0, #1 + beq _0233EC1C + b _0233F57C +_0233EB44: + ldr r1, _0233F598 @ =0x00001005 + cmp r0, r1 + bgt _0233EB70 + sub r1, r1, #3 + subs r1, r0, r1 + addpl pc, pc, r1, lsl #2 + b _0233F57C +_0233EB60: @ jump table + b _0233EE48 @ case 0 + b _0233F0C8 @ case 1 + b _0233F1F4 @ case 2 + b _0233F34C @ case 3 +_0233EB70: + cmp r0, #0xe000 + beq _0233F3F0 + b _0233F57C +_0233EB7C: + add r1, r2, #4 + cmp r0, r1 + bgt _0233EBCC + add r1, r2, #3 + cmp r0, r1 + blt _0233EBA8 + beq _0233F4DC + add r1, r2, #4 + cmp r0, r1 + beq _0233F544 + b _0233F57C +_0233EBA8: + add r1, r2, #1 + cmp r0, r1 + bgt _0233EBBC + beq _0233F484 + b _0233F57C +_0233EBBC: + add r1, r2, #2 + cmp r0, r1 + beq _0233F4A8 + b _0233F57C +_0233EBCC: + cmp r0, #0xf000 + bgt _0233EBDC + beq _0233F560 + b _0233F57C +_0233EBDC: + add r1, r2, #0x1000 + cmp r0, r1 + b _0233F57C +_0233EBE8: + mov r0, #0x15 + bl FUN_02337928 + str r0, [sp] + mov r0, #0 + ldr r2, _0233F59C @ =0x023419DC + ldr r3, _0233F5A0 @ =0x000036E9 + mov r1, r0 + bl ov07_0233F638 + ldr r0, _0233F590 @ =0x02341B70 + mov r1, #1 + ldr r0, [r0] + str r1, [r0] + b _0233F584 +_0233EC1C: + bl ov07_0233F678 + mov r4, r0 + bl ov07_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x15 + bl FUN_02337938 + cmp r4, #0xd + bne _0233EC68 + ldr r0, _0233F590 @ =0x02341B70 + mov r3, #0x1000 + ldr r1, [r0] + mov r2, #0 + str r3, [r1] + ldr r1, [r0] + str r2, [r1, #8] + ldr r0, [r0] + strb r2, [r0, #0x8c] + b _0233F584 +_0233EC68: + cmp r4, #0xe + bne _0233EC98 + ldr r0, _0233F590 @ =0x02341B70 + mov r3, #0x1000 + ldr r1, [r0] + mov r2, #1 + str r3, [r1] + ldr r1, [r0] + str r2, [r1, #8] + ldr r0, [r0] + strb r2, [r0, #0x8c] + b _0233F584 +_0233EC98: + cmp r4, #0x15 + ldreq r0, _0233F590 @ =0x02341B70 + ldreq r1, _0233F5A4 @ =0x0000F001 + ldreq r0, [r0] + streq r1, [r0] + b _0233F584 +_0233ECB0: + add r5, r4, #0x1c + mov r0, r5 + add r6, r4, #0xc + mov r1, #0x10 + add r7, r4, #0x44 + add r8, r4, #0x2c + bl FUN_02003250 + mov r0, r6 + mov r1, #0x10 + bl FUN_02003250 + mov r0, r7 + mov r1, #0x18 + bl FUN_02003250 + mov r0, r8 + mov r1, #0x18 + bl FUN_02003250 + ldr r0, _0233F590 @ =0x02341B70 + mov sb, #0 + ldr r1, [r0] + mov r2, #0xc + ldr r3, [r1, #0x90] + mov r1, #0x11 + strb sb, [r3] + ldr r0, [r0] + ldr r0, [r0, #0x90] + strb sb, [r0, #1] + strb r2, [r4, #0x1c] + strb r1, [r4, #0x44] + bl FUN_020205A0 + strb r0, [r7, #2] + ldrsb r1, [r7, #2] + add r0, r7, #4 + strb r1, [r5, #2] + bl FUN_02050B10 + add r0, r5, #4 + bl FUN_022BCD4C + add r0, r7, #4 + mov r1, #0x14 + bl FUN_02337B3C + strb r0, [r7, #3] + add r0, r5, #4 + mov r1, #0xc + bl FUN_02337B3C + strb r0, [r5, #3] + mov r2, #0x18 + ldr r0, _0233F590 @ =0x02341B70 + ldr sb, _0233F5A8 @ =0x02337B68 + ldr r1, [r0] + mov lr, #1 + str r2, [r1, #0x5c] + ldr r1, [r0] + mov ip, #0x10 + str r7, [r1, #0x60] + ldr r1, [r0] + ldr r4, _0233F5AC @ =ov07_0233EA24 + str r2, [r1, #0x64] + ldr r2, [r0] + mov r1, #0 + str r8, [r2, #0x68] + ldr r3, [r0] + mov r2, #2 + str sb, [r3, #0x6c] + ldr r3, [r0] + strb lr, [r3, #0x70] + ldr r3, [r0] + str ip, [r3, #0x74] + ldr r3, [r0] + str r5, [r3, #0x78] + ldr r3, [r0] + str ip, [r3, #0x7c] + ldr r3, [r0] + str r6, [r3, #0x80] + ldr r3, [r0] + str r4, [r3, #0x84] + ldr r3, [r0] + strb r1, [r3, #0x88] + str r2, [sp, #0x90] + ldr r4, [r0] + add r0, sp, #0x90 + add r2, r4, #0x74 + add r3, r4, #0x5c + str r2, [sp, #0x98] + str r3, [sp, #0x94] + ldr r3, [r4, #8] + mov r2, #0x20 + str r3, [sp, #0xa0] + ldrb r3, [r4, #0x8c] + strb r3, [sp, #0xa4] + ldr r3, [r4, #0x90] + str r3, [sp, #0xa8] + strh r2, [sp, #0xac] + strb r1, [sp, #0xae] + str r1, [sp, #0xb0] + bl FUN_02337BA0 + ldr r0, _0233F590 @ =0x02341B70 + ldr r3, _0233F5B0 @ =0x00001002 + ldr r2, [r0] + mov r1, #0 + str r3, [r2] + ldr r0, [r0] + strb r1, [r0, #0x8e] + b _0233F584 +_0233EE48: + ldrb r0, [r4, #0x8c] + cmp r0, #0 + mov r0, #1 + beq _0233EE64 + ldr r1, _0233F5B4 @ =0x0233EA5C + bl FUN_0232B5D0 + b _0233EE6C +_0233EE64: + ldr r1, _0233F5B8 @ =0x0233EA74 + bl FUN_0232B5D0 +_0233EE6C: + bl FUN_02337E0C + mov r4, r0 + cmp r4, #0xf + bne _0233EEF8 + ldr r0, _0233F590 @ =0x02341B70 + ldr r1, [r0] + ldrb r0, [r1, #0x8c] + cmp r0, #0 + ldrne r0, _0233F5BC @ =0x00001003 + strne r0, [r1] + bne _0233F584 + add r0, sp, #0x284 + bl FUN_02023690 + add r0, sp, #0x63 + mov r1, #0x2a + bl FUN_02003250 + ldr r1, _0233F590 @ =0x02341B70 + add r0, sp, #0x63 + ldr r1, [r1] + mov r2, #0xa + add r1, r1, #0x30 + bl FUN_020251F4 + add r3, sp, #0x63 + ldr r1, _0233F5C0 @ =0x000036F7 + add r2, sp, #0x284 + mov r0, #0 + str r3, [sp, #0x2bc] + bl ov07_02046BE8 + mov r0, #0 + bl FUN_02337D00 + ldr r0, _0233F590 @ =0x02341B70 + ldr r1, _0233F598 @ =0x00001005 + ldr r0, [r0] + str r1, [r0] + b _0233F584 +_0233EEF8: + cmp r4, #0 + beq _0233F584 + bl FUN_02337C54 + cmp r4, #0xe + addls pc, pc, r4, lsl #2 + b _0233F584 +_0233EF10: @ jump table + b _0233F584 @ case 0 + b _0233F0B4 @ case 1 + b _0233F584 @ case 2 + b _0233F584 @ case 3 + b _0233EF4C @ case 4 + b _0233F0B4 @ case 5 + b _0233F0B4 @ case 6 + b _0233F0B4 @ case 7 + b _0233F0B4 @ case 8 + b _0233F0B4 @ case 9 + b _0233F0B4 @ case 10 + b _0233F0B4 @ case 11 + b _0233F0B4 @ case 12 + b _0233F0B4 @ case 13 + b _0233F0B4 @ case 14 +_0233EF4C: + ldr r0, _0233F590 @ =0x02341B70 + ldr r1, [r0] + ldrb r0, [r1, #0x8d] + cmp r0, #0 + bne _0233EF98 + ldrb r0, [r1, #0x8c] + cmp r0, #0 + mov r0, #0x1c + beq _0233EF7C + mov r1, #0x3700 + bl ov07_0233F6AC + b _0233EF84 +_0233EF7C: + ldr r1, _0233F5C4 @ =0x000036FF + bl ov07_0233F6AC +_0233EF84: + ldr r0, _0233F590 @ =0x02341B70 + mov r1, #0xf000 + ldr r0, [r0] + str r1, [r0] + b _0233F584 +_0233EF98: + add r0, r1, #0x10 + add r1, r1, #0x30 + mov r2, #0 + bl FUN_022BCDBC + cmp r0, #2 + bne _0233EFD0 + ldr r1, _0233F5C8 @ =0x00003701 + mov r0, #0x1c + bl ov07_0233F6AC + ldr r0, _0233F590 @ =0x02341B70 + mov r1, #0xf000 + ldr r0, [r0] + str r1, [r0] + b _0233F584 +_0233EFD0: + cmp r0, #3 + bne _0233EFF8 + ldr r1, _0233F5CC @ =0x00003702 + mov r0, #0x1c + bl ov07_0233F6AC + ldr r0, _0233F590 @ =0x02341B70 + mov r1, #0xf000 + ldr r0, [r0] + str r1, [r0] + b _0233F584 +_0233EFF8: + cmp r0, #0 + bne _0233F094 + add r0, sp, #0x234 + bl FUN_02023690 + add r0, sp, #0x39 + mov r1, #0x2a + bl FUN_02003250 + ldr r1, _0233F590 @ =0x02341B70 + add r0, sp, #0x39 + ldr r1, [r1] + mov r2, #0xa + add r1, r1, #0x30 + bl FUN_020251F4 + add r1, sp, #0x39 + str r1, [sp, #0x26c] + add r0, sp, #0x19c + mov r1, #0x98 + bl FUN_02003250 + mov r0, #0x14 + bl FUN_02337928 + ldr r2, _0233F5D0 @ =0x023419C8 + ldr r1, _0233F5D4 @ =0x023419C4 + ldr r2, [r2, r0, lsl #3] + ldr r0, _0233F5D8 @ =0x000036FD + str r2, [sp, #0x19c] + str r1, [sp] + str r0, [sp, #4] + add r1, sp, #0x234 + mov r0, #0 + str r1, [sp, #8] + mov r1, r0 + mov r2, #0x13 + add r3, sp, #0x19c + bl ov07_0233F64C + ldr r0, _0233F590 @ =0x02341B70 + mov r1, #0xe000 + ldr r0, [r0] + str r1, [r0] + b _0233F584 +_0233F094: + ldr r1, _0233F5DC @ =0x00003703 + mov r0, #0x1c + bl ov07_0233F6AC + ldr r0, _0233F590 @ =0x02341B70 + mov r1, #0xf000 + ldr r0, [r0] + str r1, [r0] + b _0233F584 +_0233F0B4: + ldr r0, _0233F590 @ =0x02341B70 + mov r1, #0 + ldr r0, [r0] + str r1, [r0] + b _0233F584 +_0233F0C8: + bl FUN_02337C90 + cmp r0, #0 + bne _0233F180 + ldr r0, _0233F590 @ =0x02341B70 + ldr r0, [r0] + ldrb r0, [r0, #0x8e] + cmp r0, #0 + beq _0233F180 + add r0, sp, #0x14c + bl FUN_02023690 + add r0, sp, #0xf + mov r1, #0x2a + bl FUN_02003250 + ldr r1, _0233F590 @ =0x02341B70 + add r0, sp, #0xf + ldr r1, [r1] + mov r2, #0x14 + add r1, r1, #0x30 + bl FUN_020251F4 + add r1, sp, #0xf + str r1, [sp, #0x184] + add r0, sp, #0xb4 + mov r1, #0x98 + bl FUN_02003250 + mov r0, #0x13 + bl FUN_02337928 + ldr r2, _0233F5E0 @ =0x023418D8 + ldr r1, _0233F5E4 @ =0x023418D4 + ldr r2, [r2, r0, lsl #3] + ldr r0, _0233F5E8 @ =0x000036F8 + str r2, [sp, #0xb4] + str r1, [sp] + str r0, [sp, #4] + add r1, sp, #0x14c + mov r0, #0 + str r1, [sp, #8] + mov r1, r0 + mov r2, #0x31 + add r3, sp, #0xb4 + bl ov07_0233F64C + mov r0, #0 + bl FUN_02337D00 + ldr r0, _0233F590 @ =0x02341B70 + ldr r1, _0233F5EC @ =0x00001004 + ldr r0, [r0] + str r1, [r0] +_0233F180: + bl FUN_02337E0C + movs r4, r0 + cmpne r4, #0xf + beq _0233F584 + bl FUN_02337C54 + cmp r4, #0xf + addls pc, pc, r4, lsl #2 + b _0233F584 +_0233F1A0: @ jump table + b _0233F584 @ case 0 + b _0233F1E0 @ case 1 + b _0233F584 @ case 2 + b _0233F584 @ case 3 + b _0233F584 @ case 4 + b _0233F1E0 @ case 5 + b _0233F1E0 @ case 6 + b _0233F1E0 @ case 7 + b _0233F1E0 @ case 8 + b _0233F1E0 @ case 9 + b _0233F1E0 @ case 10 + b _0233F1E0 @ case 11 + b _0233F1E0 @ case 12 + b _0233F1E0 @ case 13 + b _0233F1E0 @ case 14 + b _0233F584 @ case 15 +_0233F1E0: + ldr r0, _0233F590 @ =0x02341B70 + mov r1, #0 + ldr r0, [r0] + str r1, [r0] + b _0233F584 +_0233F1F4: + bl FUN_02337C90 + cmp r0, #0 + bne _0233F2D8 + bl ov07_0233F678 + mov r4, r0 + bl ov07_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x13 + bl FUN_02337938 + cmp r4, #1 + bne _0233F25C + ldr r1, _0233F590 @ =0x02341B70 + mov r0, #1 + ldr r3, [r1] + strb r0, [sp, #0xe] + add r2, sp, #0xe + mov r1, r0 + strb r0, [r3, #0x8d] + bl FUN_0232B540 + bl FUN_02337CAC + ldr r0, _0233F590 @ =0x02341B70 + ldr r1, _0233F5B0 @ =0x00001002 + ldr r0, [r0] + str r1, [r0] + b _0233F2D8 +_0233F25C: + cmp r4, #2 + cmpne r4, #0x15 + bne _0233F2D8 + ldr r0, _0233F590 @ =0x02341B70 + mov r2, #0 + ldr r4, [r0] + mov r1, #0x10 + add r0, r4, #0x1c + strb r2, [sp, #0xd] + bl FUN_02003250 + mov r0, #0xc + strb r0, [r4, #0x1c] + bl FUN_020205A0 + strb r0, [r4, #0x1e] + add r0, r4, #0x20 + mov r1, #0xc + bl FUN_02337B3C + strb r0, [r4, #0x1f] + ldr r1, _0233F590 @ =0x02341B70 + mov r0, #1 + ldr r3, [r1] + mov r4, #0 + add r2, sp, #0xd + mov r1, r0 + strb r4, [r3, #0x8d] + bl FUN_0232B540 + bl FUN_02337CAC + ldr r0, _0233F590 @ =0x02341B70 + ldr r1, _0233F5B0 @ =0x00001002 + ldr r0, [r0] + str r1, [r0] +_0233F2D8: + bl FUN_02337E0C + movs r4, r0 + cmpne r4, #0xf + beq _0233F584 + bl FUN_02337C54 + cmp r4, #0xf + addls pc, pc, r4, lsl #2 + b _0233F584 +_0233F2F8: @ jump table + b _0233F584 @ case 0 + b _0233F338 @ case 1 + b _0233F584 @ case 2 + b _0233F584 @ case 3 + b _0233F584 @ case 4 + b _0233F338 @ case 5 + b _0233F338 @ case 6 + b _0233F338 @ case 7 + b _0233F338 @ case 8 + b _0233F338 @ case 9 + b _0233F338 @ case 10 + b _0233F338 @ case 11 + b _0233F338 @ case 12 + b _0233F338 @ case 13 + b _0233F338 @ case 14 + b _0233F584 @ case 15 +_0233F338: + ldr r0, _0233F590 @ =0x02341B70 + mov r1, #0 + ldr r0, [r0] + str r1, [r0] + b _0233F584 +_0233F34C: + bl FUN_02337C90 + cmp r0, #0 + bne _0233F380 + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _0233F380 + mov r0, #1 + add r2, sp, #0xc + mov r1, r0 + strb r0, [sp, #0xc] + bl FUN_0232B540 + cmp r0, #0 + beq _0233F584 +_0233F380: + bl FUN_02337E0C + movs r4, r0 + cmpne r4, #0xf + beq _0233F584 + bl FUN_02337C54 + cmp r4, #0xe + addls pc, pc, r4, lsl #2 + b _0233F584 +_0233F3A0: @ jump table + b _0233F584 @ case 0 + b _0233F3DC @ case 1 + b _0233F584 @ case 2 + b _0233F584 @ case 3 + b _0233F584 @ case 4 + b _0233F3DC @ case 5 + b _0233F3DC @ case 6 + b _0233F3DC @ case 7 + b _0233F3DC @ case 8 + b _0233F3DC @ case 9 + b _0233F3DC @ case 10 + b _0233F3DC @ case 11 + b _0233F3DC @ case 12 + b _0233F3DC @ case 13 + b _0233F3DC @ case 14 +_0233F3DC: + ldr r0, _0233F590 @ =0x02341B70 + mov r1, #0 + ldr r0, [r0] + str r1, [r0] + b _0233F584 +_0233F3F0: + bl ov07_0233F678 + mov r4, r0 + bl ov07_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x14 + bl FUN_02337938 + cmp r4, #0xf + bne _0233F44C + ldr r0, _0233F590 @ =0x02341B70 + mov r2, #1 + ldr r1, [r0] + add r0, r1, #0x10 + add r1, r1, #0x30 + bl FUN_022BCDBC + ldr r1, _0233F5F0 @ =0x000036FE + mov r0, #0x1c + bl ov07_0233F6AC + ldr r0, _0233F590 @ =0x02341B70 + ldr r1, _0233F594 @ =0x0000E001 + ldr r0, [r0] + str r1, [r0] + b _0233F584 +_0233F44C: + cmp r4, #0x15 + cmpne r4, #0x10 + ldreq r0, _0233F590 @ =0x02341B70 + ldreq r1, _0233F5A4 @ =0x0000F001 + ldreq r0, [r0] + streq r1, [r0] + b _0233F584 +_0233F468: + bl ov07_0233F6C8 + cmp r0, #0x15 + ldreq r0, _0233F590 @ =0x02341B70 + ldreq r1, _0233F5F4 @ =0x0000E002 + ldreq r0, [r0] + streq r1, [r0] + b _0233F584 +_0233F484: + bl FUN_022BD780 + ldr r1, _0233F5F8 @ =0x0000023B + mov r0, #0 + bl ov07_0233F6AC + ldr r0, _0233F590 @ =0x02341B70 + ldr r1, _0233F5FC @ =0x0000E003 + ldr r0, [r0] + str r1, [r0] + b _0233F584 +_0233F4A8: + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _0233F584 + mov r0, #0xe0 + mov r1, #0x88 + mov r2, #1 + bl FUN_02029F88 + ldr r0, _0233F590 @ =0x02341B70 + ldr r1, _0233F600 @ =0x0000E004 + ldr r0, [r0] + str r1, [r0] + bl FUN_02003B94 + b _0233F584 +_0233F4DC: + mov r0, #3 + bl FUN_02048F84 + mov r4, r0 + bl FUN_02003BC8 + bl FUN_02029FBC + cmp r4, #0 + bne _0233F518 + mov r0, #0x1c + mov r1, #0x23c + bl ov07_0233F6AC + ldr r0, _0233F590 @ =0x02341B70 + ldr r1, _0233F604 @ =0x0000E005 + ldr r0, [r0] + str r1, [r0] + b _0233F584 +_0233F518: + cmp r4, #1 + moveq r0, #2 + beq _0233F588 + ldr r1, _0233F608 @ =0x00000239 + mov r0, #0x1c + bl ov07_0233F6AC + ldr r0, _0233F590 @ =0x02341B70 + ldr r1, _0233F604 @ =0x0000E005 + ldr r0, [r0] + str r1, [r0] + b _0233F584 +_0233F544: + bl ov07_0233F6C8 + cmp r0, #0x15 + ldreq r0, _0233F590 @ =0x02341B70 + ldreq r1, _0233F5A4 @ =0x0000F001 + ldreq r0, [r0] + streq r1, [r0] + b _0233F584 +_0233F560: + bl ov07_0233F6C8 + cmp r0, #0x15 + ldreq r0, _0233F590 @ =0x02341B70 + moveq r1, #0 + ldreq r0, [r0] + streq r1, [r0] + b _0233F584 +_0233F57C: + mov r0, #1 + b _0233F588 +_0233F584: + mov r0, #0 +_0233F588: + add sp, sp, #0x2d4 + pop {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0233F590: .4byte 0x02341B70 +_0233F594: .4byte 0x0000E001 +_0233F598: .4byte 0x00001005 +_0233F59C: .4byte 0x023419DC +_0233F5A0: .4byte 0x000036E9 +_0233F5A4: .4byte 0x0000F001 +_0233F5A8: .4byte 0x02337B68 +_0233F5AC: .4byte ov07_0233EA24 +_0233F5B0: .4byte 0x00001002 +_0233F5B4: .4byte 0x0233EA5C +_0233F5B8: .4byte 0x0233EA74 +_0233F5BC: .4byte 0x00001003 +_0233F5C0: .4byte 0x000036F7 +_0233F5C4: .4byte 0x000036FF +_0233F5C8: .4byte 0x00003701 +_0233F5CC: .4byte 0x00003702 +_0233F5D0: .4byte 0x023419C8 +_0233F5D4: .4byte 0x023419C4 +_0233F5D8: .4byte 0x000036FD +_0233F5DC: .4byte 0x00003703 +_0233F5E0: .4byte 0x023418D8 +_0233F5E4: .4byte 0x023418D4 +_0233F5E8: .4byte 0x000036F8 +_0233F5EC: .4byte 0x00001004 +_0233F5F0: .4byte 0x000036FE +_0233F5F4: .4byte 0x0000E002 +_0233F5F8: .4byte 0x0000023B +_0233F5FC: .4byte 0x0000E003 +_0233F600: .4byte 0x0000E004 +_0233F604: .4byte 0x0000E005 +_0233F608: .4byte 0x00000239 + arm_func_end ov07_0233EAF4 + + arm_func_start ov07_0233F60C +ov07_0233F60C: @ 0x0233F60C + push {r3, lr} + ldr r0, _0233F634 @ =0x02341B70 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0233F634 @ =0x02341B70 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233F634: .4byte 0x02341B70 + arm_func_end ov07_0233F60C + + arm_func_start ov07_0233F638 +ov07_0233F638: @ 0x0233F638 + push {r3, lr} + ldrsb ip, [sp, #8] + str ip, [sp] + bl FUN_02046A9C + pop {r3, pc} + arm_func_end ov07_0233F638 + + arm_func_start ov07_0233F64C +ov07_0233F64C: @ 0x0233F64C + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr ip, [sp, #0x10] + ldrh lr, [sp, #0x14] + str ip, [sp] + ldr ip, [sp, #0x18] + str lr, [sp, #4] + str ip, [sp, #8] + bl FUN_02046A20 + add sp, sp, #0xc + ldm sp!, {pc} + arm_func_end ov07_0233F64C + + arm_func_start ov07_0233F678 +ov07_0233F678: @ 0x0233F678 + push {r3, lr} + bl FUN_02046B04 + mvn r1, #1 + cmp r0, r1 + moveq r0, #0x15 + popeq {r3, pc} + add r1, r1, #1 + cmp r0, r1 + moveq r0, #0 + pop {r3, pc} + arm_func_end ov07_0233F678 + + arm_func_start ov07_02046BA0 +ov07_02046BA0: @ 0x0233F6A0 + ldr ip, _0233F6A8 @ =FUN_02046BA0 + bx ip + .align 2, 0 +_0233F6A8: .4byte FUN_02046BA0 + arm_func_end ov07_02046BA0 + + arm_func_start ov07_0233F6AC +ov07_0233F6AC: @ 0x0233F6AC + ldr ip, _0233F6B8 @ =FUN_02046BE8 + mov r2, #0 + bx ip + .align 2, 0 +_0233F6B8: .4byte FUN_02046BE8 + arm_func_end ov07_0233F6AC + + arm_func_start ov07_02046BE8 +ov07_02046BE8: @ 0x0233F6BC + ldr ip, _0233F6C4 @ =FUN_02046BE8 + bx ip + .align 2, 0 +_0233F6C4: .4byte FUN_02046BE8 + arm_func_end ov07_02046BE8 + + arm_func_start ov07_0233F6C8 +ov07_0233F6C8: @ 0x0233F6C8 + push {r3, lr} + bl FUN_02046C78 + cmp r0, #0 + movne r0, #0x15 + moveq r0, #0 + pop {r3, pc} + arm_func_end ov07_0233F6C8 + + arm_func_start ov07_0233F6E0 +ov07_0233F6E0: @ 0x0233F6E0 + push {r3, lr} + mov r0, #0xa4 + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233F750 @ =0x02341B74 + mov r1, #0xa4 + str r0, [r2] + bl FUN_02003250 + mov r2, #0 + ldr r0, _0233F750 @ =0x02341B74 + mov ip, r2 +_0233F70C: + ldr r1, [r0] + add r1, r1, r2 + add r2, r2, #1 + strb ip, [r1, #4] + cmp r2, #6 + blt _0233F70C + ldr r1, _0233F750 @ =0x02341B74 + ldr r0, _0233F754 @ =0x02341B84 + ldr r3, [r1] + add r2, r3, #4 + str r2, [r3, #0x6c] + ldr r1, [r1] + str ip, [r1] + str ip, [r0] + bl FUN_02046D20 + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0233F750: .4byte 0x02341B74 +_0233F754: .4byte 0x02341B84 + arm_func_end ov07_0233F6E0 + + arm_func_start ov07_0233F758 +ov07_0233F758: @ 0x0233F758 + push {r3, r4, lr} + sub sp, sp, #0xc + ldr ip, _0233FC9C @ =0x02341B74 + ldr r3, _0233FCA0 @ =0x00003001 + ldr r0, [ip] + ldr r0, [r0] + cmp r0, r3 + bgt _0233F7F8 + bge _0233FADC + ldr r2, _0233FCA4 @ =0x00001002 + cmp r0, r2 + bgt _0233F7D0 + sub r1, r2, #1 + cmp r0, r1 + blt _0233F7A4 + beq _0233F990 + cmp r0, r2 + beq _0233FA3C + b _0233FC90 +_0233F7A4: + cmp r0, #1 + bgt _0233F7C4 + cmp r0, #0 + blt _0233FC90 + beq _0233F85C + cmp r0, #1 + beq _0233F8A4 + b _0233FC90 +_0233F7C4: + cmp r0, #0x1000 + beq _0233F8C0 + b _0233FC90 +_0233F7D0: + sub r1, r3, #0x1000 + cmp r0, r1 + bgt _0233F7EC + bge _0233FA7C + cmp r0, #0x2000 + beq _0233FA58 + b _0233FC90 +_0233F7EC: + cmp r0, #0x3000 + beq _0233FAB8 + b _0233FC90 +_0233F7F8: + add r1, r3, #0x2000 + cmp r0, r1 + bgt _0233F830 + bge _0233FC1C + add r1, r3, #0x1000 + cmp r0, r1 + bgt _0233F824 + bge _0233FB3C + cmp r0, #0x4000 + beq _0233FB18 + b _0233FC90 +_0233F824: + cmp r0, #0x5000 + beq _0233FBC8 + b _0233FC90 +_0233F830: + cmp r0, #0x6000 + bgt _0233F84C + bge _0233FB64 + ldr r1, _0233FCA8 @ =0x00005002 + cmp r0, r1 + beq _0233FC7C + b _0233FC90 +_0233F84C: + add r1, r3, #0x3000 + cmp r0, r1 + beq _0233FB88 + b _0233FC90 +_0233F85C: + bl FUN_0232E94C + cmp r0, #0 + bne _0233FC90 + bl FUN_0232F3F4 + bl FUN_0204A1CC + bl FUN_022BCA80 + cmp r0, #3 + ldrne r0, _0233FC9C @ =0x02341B74 + movne r1, #0x1000 + ldrne r0, [r0] + strne r1, [r0] + bne _0233FC90 + bl FUN_02339888 + ldr r0, _0233FC9C @ =0x02341B74 + mov r1, #1 + ldr r0, [r0] + str r1, [r0] + b _0233FC90 +_0233F8A4: + bl FUN_023398A4 + cmp r0, #0 + ldrne r0, _0233FC9C @ =0x02341B74 + movne r1, #0x1000 + ldrne r0, [r0] + strne r1, [r0] + b _0233FC90 +_0233F8C0: + mov r2, #0 + mov r1, r2 +_0233F8C8: + ldr r0, [ip] + add r0, r0, r2 + add r2, r2, #1 + strb r1, [r0, #4] + cmp r2, #6 + blt _0233F8C8 + bl FUN_02048480 + cmp r0, #0 + beq _0233F908 + bl FUN_022BD2F4 + cmp r0, #0 + ldreq r0, _0233FC9C @ =0x02341B74 + moveq r1, #3 + ldreq r0, [r0] + strbeq r1, [r0, #5] + b _0233F930 +_0233F908: + ldr r0, _0233FC9C @ =0x02341B74 + mov r2, #3 + ldr r1, [r0] + strb r2, [r1, #4] + ldr r1, [r0] + strb r2, [r1, #5] + ldr r1, [r0] + strb r2, [r1, #6] + ldr r0, [r0] + strb r2, [r0, #7] +_0233F930: + bl FUN_02046D20 + mov r0, #0x11 + bl FUN_02337928 + ldr r2, _0233FCAC @ =0x02341A78 + ldr r1, _0233FC9C @ =0x02341B74 + ldr r4, [r2, r0, lsl #3] + ldr r2, [r1] + mov r0, #0 + ldr r3, _0233FCB0 @ =0x02341A74 + str r4, [r2, #0xc] + ldr r2, _0233FCB4 @ =0x000036E9 + str r3, [sp] + str r2, [sp, #4] + str r0, [sp, #8] + ldr r3, [r1] + ldr r2, _0233FCB8 @ =0x00000233 + mov r1, r0 + add r3, r3, #0xc + bl ov07_0233F64C + ldr r0, _0233FC9C @ =0x02341B74 + ldr r1, _0233FCBC @ =0x00001001 + ldr r0, [r0] + str r1, [r0] + b _0233FC90 +_0233F990: + bl ov07_0233F678 + mov r4, r0 + bl ov07_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x11 + bl FUN_02337938 + cmp r4, #3 + ldreq r0, _0233FC9C @ =0x02341B74 + moveq r1, #0x2000 + ldreq r0, [r0] + streq r1, [r0] + beq _0233FC90 + cmp r4, #4 + ldreq r0, _0233FC9C @ =0x02341B74 + moveq r1, #0x3000 + ldreq r0, [r0] + streq r1, [r0] + beq _0233FC90 + cmp r4, #5 + ldreq r0, _0233FC9C @ =0x02341B74 + moveq r1, #0x4000 + ldreq r0, [r0] + streq r1, [r0] + beq _0233FC90 + cmp r4, #7 + ldreq r0, _0233FC9C @ =0x02341B74 + moveq r1, #0x5000 + ldreq r0, [r0] + streq r1, [r0] + beq _0233FC90 + cmp r4, #0x15 + ldreq r0, _0233FC9C @ =0x02341B74 + ldreq r1, _0233FCA4 @ =0x00001002 + ldreq r0, [r0] + streq r1, [r0] + beq _0233FC90 + cmp r4, #6 + ldreq r0, _0233FC9C @ =0x02341B74 + moveq r1, #0x6000 + ldreq r0, [r0] + streq r1, [r0] + b _0233FC90 +_0233FA3C: + bl FUN_0232E94C + cmp r0, #0 + bne _0233FC90 + mov r0, #0x10 + bl FUN_023310B8 + mov r0, #3 + b _0233FC94 +_0233FA58: + bl FUN_0232E94C + cmp r0, #0 + bne _0233FC90 + bl ov07_0233CD30 + ldr r0, _0233FC9C @ =0x02341B74 + ldr r1, _0233FCC0 @ =0x00002001 + ldr r0, [r0] + str r1, [r0] + b _0233FC90 +_0233FA7C: + bl ov07_0233CD68 + cmp r0, #1 + bne _0233FAA0 + bl ov07_0233CF64 + ldr r0, _0233FC9C @ =0x02341B74 + mov r1, #0x1000 + ldr r0, [r0] + str r1, [r0] + b _0233FC90 +_0233FAA0: + cmp r0, #2 + bne _0233FC90 + bl ov07_0233CF64 + bl FUN_0204A018 + mov r0, #3 + b _0233FC94 +_0233FAB8: + bl FUN_0232E94C + cmp r0, #0 + bne _0233FC90 + bl ov07_0233CF90 + ldr r0, _0233FC9C @ =0x02341B74 + ldr r1, _0233FCA0 @ =0x00003001 + ldr r0, [r0] + str r1, [r0] + b _0233FC90 +_0233FADC: + bl ov07_0233CFF0 + cmp r0, #1 + bne _0233FB00 + bl ov07_0233D974 + ldr r0, _0233FC9C @ =0x02341B74 + mov r1, #0x1000 + ldr r0, [r0] + str r1, [r0] + b _0233FC90 +_0233FB00: + cmp r0, #2 + bne _0233FC90 + bl ov07_0233D974 + bl FUN_0204A018 + mov r0, #3 + b _0233FC94 +_0233FB18: + bl FUN_0232E94C + cmp r0, #0 + bne _0233FC90 + bl ov07_0233E554 + ldr r0, _0233FC9C @ =0x02341B74 + ldr r1, _0233FCC4 @ =0x00004001 + ldr r0, [r0] + str r1, [r0] + b _0233FC90 +_0233FB3C: + bl FUN_02003BFC + bl ov07_0233E5C8 + cmp r0, #2 + bne _0233FC90 + bl ov07_0233E58C + ldr r0, _0233FC9C @ =0x02341B74 + mov r1, #0x1000 + ldr r0, [r0] + str r1, [r0] + b _0233FC90 +_0233FB64: + bl FUN_0232E94C + cmp r0, #0 + bne _0233FC90 + bl ov07_0233FD18 + ldr r0, _0233FC9C @ =0x02341B74 + ldr r1, _0233FCC8 @ =0x00006001 + ldr r0, [r0] + str r1, [r0] + b _0233FC90 +_0233FB88: + bl FUN_02003BFC + bl ov07_0233FDF8 + cmp r0, #2 + bne _0233FBB0 + bl ov07_0233FDCC + ldr r0, _0233FC9C @ =0x02341B74 + mov r1, #0x1000 + ldr r0, [r0] + str r1, [r0] + b _0233FC90 +_0233FBB0: + cmp r0, #3 + bne _0233FC90 + bl ov07_0233FDCC + bl FUN_0204A018 + mov r0, #3 + b _0233FC94 +_0233FBC8: + bl FUN_0232E94C + cmp r0, #0 + bne _0233FC90 + bl FUN_0232C0CC + mov r0, #0xe0 + mov r1, #0xa0 + mov r2, #1 + bl FUN_0232C148 + mov r0, #0x12 + bl FUN_02337928 + str r0, [sp] + mov r0, #0 + ldr r2, _0233FCCC @ =0x023419AC + mov r1, r0 + ldr r3, _0233FCD0 @ =0x000036EF + bl ov07_0233F638 + ldr r0, _0233FC9C @ =0x02341B74 + ldr r1, _0233FCD4 @ =0x00005001 + ldr r0, [r0] + str r1, [r0] + b _0233FC90 +_0233FC1C: + bl ov07_0233F678 + mov r4, r0 + bl ov07_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x12 + bl FUN_02337938 + cmp r4, #1 + bne _0233FC58 + bl FUN_02046D20 + ldr r0, _0233FC9C @ =0x02341B74 + ldr r1, _0233FCA8 @ =0x00005002 + ldr r0, [r0] + str r1, [r0] + b _0233FC90 +_0233FC58: + cmp r4, #2 + cmpne r4, #0x15 + bne _0233FC90 + bl FUN_0232C10C + ldr r0, _0233FC9C @ =0x02341B74 + mov r1, #0x1000 + ldr r0, [r0] + str r1, [r0] + b _0233FC90 +_0233FC7C: + mov r0, #0x15 + bl FUN_022BE4A8 + bl FUN_0232C10C + mov r0, #4 + b _0233FC94 +_0233FC90: + mov r0, #1 +_0233FC94: + add sp, sp, #0xc + pop {r3, r4, pc} + .align 2, 0 +_0233FC9C: .4byte 0x02341B74 +_0233FCA0: .4byte 0x00003001 +_0233FCA4: .4byte 0x00001002 +_0233FCA8: .4byte 0x00005002 +_0233FCAC: .4byte 0x02341A78 +_0233FCB0: .4byte 0x02341A74 +_0233FCB4: .4byte 0x000036E9 +_0233FCB8: .4byte 0x00000233 +_0233FCBC: .4byte 0x00001001 +_0233FCC0: .4byte 0x00002001 +_0233FCC4: .4byte 0x00004001 +_0233FCC8: .4byte 0x00006001 +_0233FCCC: .4byte 0x023419AC +_0233FCD0: .4byte 0x000036EF +_0233FCD4: .4byte 0x00005001 + arm_func_end ov07_0233F758 + + arm_func_start ov07_0233FCD8 +ov07_0233FCD8: @ 0x0233FCD8 + push {r3, lr} + ldr r0, _0233FD14 @ =0x02341B74 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + mov r0, #1 + bl FUN_022BCBAC + bl FUN_02046D20 + ldr r0, _0233FD14 @ =0x02341B74 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0233FD14 @ =0x02341B74 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233FD14: .4byte 0x02341B74 + arm_func_end ov07_0233FCD8 + + arm_func_start ov07_0233FD18 +ov07_0233FD18: @ 0x0233FD18 + push {r3, lr} + ldr r0, _0233FDC0 @ =0x0000046C + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233FDC4 @ =0x02341B78 + ldr r1, _0233FDC0 @ =0x0000046C + str r0, [r2] + bl FUN_02003250 + ldr r2, _0233FDC4 @ =0x02341B78 + mov r0, #0 + ldr r1, [r2] + sub r3, r0, #2 + str r0, [r1] + ldr r1, [r2] + ldr lr, _0233FDC8 @ =0x0000374A + strb r3, [r1, #0x2b8] + ldr r1, [r2] + mov ip, #0x10 + strb r3, [r1, #0x469] + ldr r1, [r2] + mov r3, #0xd + add r1, r1, #0x200 + strh lr, [r1, #0xec] + ldr r1, [r2] + str ip, [r1, #0x2f0] + ldr r1, [r2] + str r3, [r1, #0x2e8] + ldr r1, [r2] + str r0, [r1, #0x2e4] + ldr r3, [r2] + add r1, r3, #0x14 + add r1, r1, #0x400 + str r1, [r3, #0x3dc] + ldr r3, [r2] + add r1, r3, #0xaf + bic r1, r1, #0x1f + str r1, [r3, #0x2b0] + ldr r1, [r2] + strb r0, [r1, #0x419] + ldr r1, [r2] + strb r0, [r1, #0x468] + pop {r3, pc} + .align 2, 0 +_0233FDC0: .4byte 0x0000046C +_0233FDC4: .4byte 0x02341B78 +_0233FDC8: .4byte 0x0000374A + arm_func_end ov07_0233FD18 + + arm_func_start ov07_0233FDCC +ov07_0233FDCC: @ 0x0233FDCC + push {r3, lr} + ldr r0, _0233FDF4 @ =0x02341B78 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0233FDF4 @ =0x02341B78 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233FDF4: .4byte 0x02341B78 + arm_func_end ov07_0233FDCC + + arm_func_start ov07_0233FDF8 +ov07_0233FDF8: @ 0x0233FDF8 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x2cc + sub sp, sp, #0x400 + ldr r0, _02340D64 @ =0x02341B78 + ldr r4, [r0] + ldr r0, [r4] + cmp r0, #0x36 + addls pc, pc, r0, lsl #2 + b _023414B4 +_0233FE1C: @ jump table + b _0233FEF8 @ case 0 + b _02340004 @ case 1 + b _0234017C @ case 2 + b _023401E0 @ case 3 + b _023401F0 @ case 4 + b _0234020C @ case 5 + b _02340220 @ case 6 + b _02340288 @ case 7 + b _023402B4 @ case 8 + b _023402D0 @ case 9 + b _023402FC @ case 10 + b _02340358 @ case 11 + b _023404A4 @ case 12 + b _02340518 @ case 13 + b _0234052C @ case 14 + b _0234053C @ case 15 + b _023405D0 @ case 16 + b _023405F8 @ case 17 + b _02340620 @ case 18 + b _023406E4 @ case 19 + b _023407A0 @ case 20 + b _02340880 @ case 21 + b _023408E0 @ case 22 + b _023408FC @ case 23 + b _023409B0 @ case 24 + b _02340A74 @ case 25 + b _02340B04 @ case 26 + b _02340B84 @ case 27 + b _02340BE4 @ case 28 + b _02340C44 @ case 29 + b _02340CC4 @ case 30 + b _02340D00 @ case 31 + b _02340D28 @ case 32 + b _02340D50 @ case 33 + b _02340DD0 @ case 34 + b _02340E78 @ case 35 + b _02340EC8 @ case 36 + b _02340F28 @ case 37 + b _02340F6C @ case 38 + b _02340FFC @ case 39 + b _02341140 @ case 40 + b _023411DC @ case 41 + b _02341234 @ case 42 + b _0234126C @ case 43 + b _023412BC @ case 44 + b _023412F8 @ case 45 + b _0234130C @ case 46 + b _02341368 @ case 47 + b _02341390 @ case 48 + b _023413BC @ case 49 + b _023413E8 @ case 50 + b _02341450 @ case 51 + b _02341464 @ case 52 + b _02341478 @ case 53 + b _02341484 @ case 54 +_0233FEF8: + ldr r1, _02340D68 @ =0xD4A51000 + add r0, r4, #0x20 + str r1, [r4, #0xc] + mov r2, #0xe8 + mov r1, #0x36 + str r2, [r4, #0x10] + bl FUN_02003250 + bl FUN_022BD5EC + mov r2, #0 + add r3, r4, #0x20 + mov r1, r2 + b _0233FF3C +_0233FF28: + cmp r5, #0 + moveq r5, r1 + strb r5, [r3], #1 + add r0, r0, #1 + add r2, r2, #1 +_0233FF3C: + ldrsb r5, [r0] + cmp r5, #0 + beq _0233FF50 + cmp r2, #0x36 + blt _0233FF28 +_0233FF50: + cmp r2, #0x36 + movlt r0, #0 + strblt r0, [r3] + add r0, r4, #0x56 + mov r1, #0x36 + bl FUN_02003250 + bl FUN_022BD6E0 + strb r0, [r4, #0x2b4] + bl FUN_022BD6F4 + strb r0, [r4, #0x2b5] + bl FUN_022BD708 + strb r0, [r4, #0x2b6] + bl FUN_022BD71C + mov r2, #0 + strb r0, [r4, #0x2b7] + mov r1, r2 +_0233FF90: + add r0, r4, r2 + add r2, r2, #1 + strb r1, [r0, #0x414] + cmp r2, #5 + blt _0233FF90 + bl FUN_022BD5C8 + cmp r0, #0 + moveq r0, #3 + strbeq r0, [r4, #0x414] + strbeq r0, [r4, #0x416] + strbeq r0, [r4, #0x417] + mov r0, #6 + bl FUN_02337928 + ldr r1, _02340D6C @ =0x02341A48 + ldr r2, _02340D70 @ =0x02341A44 + ldr r1, [r1, r0, lsl #3] + mov r0, #0 + str r1, [r4, #0x37c] + str r2, [sp] + ldr r1, _02340D74 @ =0x0000372E + ldr r2, _02340D78 @ =0x00000233 + str r1, [sp, #4] + mov r1, r0 + add r3, r4, #0x37c + str r0, [sp, #8] + bl ov07_0233F64C + mov r0, #1 + str r0, [r4] + b _023414B4 +_02340004: + bl ov07_0233F678 + mov r5, r0 + bl ov07_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #6 + bl FUN_02337938 + cmp r5, #0x11 + bne _023400B4 + bl FUN_022BD5C8 + cmp r0, #0 + beq _0234009C + bl FUN_022BD600 + cmp r0, #0 + beq _02340054 + mov r0, #1 + bl ov07_023414FC + mov r0, #2 + str r0, [r4] + b _023414B4 +_02340054: + add r0, sp, #0x600 + add r0, r0, #0x7c + bl FUN_02023690 + add r0, sp, #0x500 + add r0, r0, #0x7c + add r1, r4, #0x20 + bl ov07_02341660 + add r3, sp, #0x500 + add r2, sp, #0x600 + add r3, r3, #0x7c + ldr r1, _02340D7C @ =0x00003734 + add r2, r2, #0x7c + mov r0, #0x1c + str r3, [sp, #0x6b4] + bl ov07_02046BE8 + mov r0, #3 + str r0, [r4] + b _023414B4 +_0234009C: + ldr r1, _02340D80 @ =0x00003733 + mov r0, #0x1c + bl ov07_0233F6AC + mov r0, #5 + str r0, [r4] + b _023414B4 +_023400B4: + cmp r5, #0x12 + bne _02340120 + mov r2, #0 + add r0, r4, #0x20 + mov r1, #0x36 + str r2, [r4, #0x8c] + bl FUN_02003250 + bl FUN_022BD5C8 + cmp r0, #0 + beq _02340108 + mov r0, #9 + bl FUN_02337928 + str r0, [sp] + mov r0, #0 + ldr r2, _02340D84 @ =0x0234194C + ldr r3, _02340D88 @ =0x00003735 + mov r1, r0 + bl ov07_0233F638 + mov r0, #6 + str r0, [r4] + b _023414B4 +_02340108: + ldr r1, _02340D8C @ =0x00003737 + mov r0, #0x1c + bl ov07_0233F6AC + mov r0, #8 + str r0, [r4] + b _023414B4 +_02340120: + cmp r5, #0x13 + bne _02340138 + bl FUN_02046D20 + mov r0, #0x26 + str r0, [r4] + b _023414B4 +_02340138: + cmp r5, #0x14 + bne _02340168 + mov r0, #0 + mov r5, #1 + ldr r2, _02340D90 @ =0x023418EC + ldr r3, _02340D94 @ =0x00003753 + mov r1, r0 + str r5, [sp] + bl ov07_0233F638 + mov r0, #0x2b + str r0, [r4] + b _023414B4 +_02340168: + cmp r5, #2 + cmpne r5, #0x15 + bne _023414B4 + mov r0, #2 + b _023414B8 +_0234017C: + bl ov07_0234151C + cmp r0, #1 + bne _023401D0 + add r0, sp, #0x500 + add r0, r0, #0x2c + bl FUN_02023690 + add r0, sp, #0x400 + add r0, r0, #0x2c + add r1, r4, #0x20 + bl ov07_02341660 + add r3, sp, #0x400 + add r2, sp, #0x500 + add r3, r3, #0x2c + ldr r1, _02340D7C @ =0x00003734 + add r2, r2, #0x2c + mov r0, #0x1c + str r3, [sp, #0x564] + bl ov07_02046BE8 + mov r0, #3 + str r0, [r4] + b _023414B4 +_023401D0: + cmp r0, #2 + moveq r0, #0 + streq r0, [r4] + b _023414B4 +_023401E0: + mov r0, #0 + bl ov07_02341738 + mov r0, #4 + str r0, [r4] +_023401F0: + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _023414B4 + bl ov07_023417A8 + mov r0, #0 + str r0, [r4] + b _023414B4 +_0234020C: + bl ov07_0233F6C8 + cmp r0, #0x15 + moveq r0, #0 + streq r0, [r4] + b _023414B4 +_02340220: + bl ov07_0233F678 + mov r5, r0 + bl ov07_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #9 + bl FUN_02337938 + cmp r5, #1 + bne _02340274 + bl FUN_022BD600 + cmp r0, #0 + beq _02340264 + mov r0, #1 + bl ov07_023414FC + mov r0, #7 + str r0, [r4] + b _023414B4 +_02340264: + bl FUN_02046D20 + mov r0, #9 + str r0, [r4] + b _023414B4 +_02340274: + cmp r5, #2 + cmpne r5, #0x15 + moveq r0, #0 + streq r0, [r4] + b _023414B4 +_02340288: + bl ov07_0234151C + cmp r0, #1 + bne _023402A4 + bl FUN_02046D20 + mov r0, #9 + str r0, [r4] + b _023414B4 +_023402A4: + cmp r0, #2 + moveq r0, #0 + streq r0, [r4] + b _023414B4 +_023402B4: + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _023414B4 + bl FUN_02046D20 + mov r0, #9 + str r0, [r4] + b _023414B4 +_023402D0: + ldr r2, [r4, #0x8c] + add r1, r4, #0x20 + mov r0, #0x36 + mla r1, r2, r0, r1 + mov r2, #0 + mov r3, r2 + mov r0, #8 + bl FUN_020367F0 + mov r0, #0xa + str r0, [r4] + b _023414B4 +_023402FC: + bl FUN_02036CD4 + cmp r0, #3 + bne _02340330 + bl FUN_0203755C + ldr r3, [r4, #0x8c] + add r5, r4, #0x20 + mov r2, #0x36 + mov r1, r0 + mla r0, r3, r2, r5 + bl FUN_020032D4 + mov r0, #0xb + str r0, [r4] + b _023414B4 +_02340330: + cmp r0, #2 + bne _023414B4 + ldr r1, [r4, #0x8c] + mov r0, #0x36 + mla r0, r1, r0, r4 + mov r1, #0 + strb r1, [r0, #0x20] + mov r0, #0xb + str r0, [r4] + b _023414B4 +_02340358: + bl FUN_02037468 + cmp r0, #1 + bne _023414B4 + ldr r1, [r4, #0x8c] + mov r0, #0x36 + mla r0, r1, r0, r4 + ldrb r0, [r0, #0x20] + cmp r0, #0 + beq _02340498 + cmp r1, #0 + bne _023403A8 + ldr r1, _02340D98 @ =0x00003738 + mov r0, #0x1c + bl ov07_0233F6AC + mov r0, #8 + str r0, [r4] + ldr r0, [r4, #0x8c] + add r0, r0, #1 + str r0, [r4, #0x8c] + b _023414B4 +_023403A8: + mov r1, #0 + b _023403CC +_023403B0: + cmp r2, #0 + beq _023403C4 + add r1, r1, #1 + cmp r1, #0x36 + blt _023403CC +_023403C4: + mov r0, #0 + b _023403E8 +_023403CC: + add r0, r4, r1 + ldrb r2, [r0, #0x20] + ldrb r0, [r0, #0x56] + cmp r2, r0 + beq _023403B0 + mvnlo r0, #0 + movhs r0, #1 +_023403E8: + cmp r0, #0 + bne _0234046C + add r0, sp, #0x3dc + bl FUN_02023690 + add r0, sp, #0x2dc + add r1, r4, #0x20 + bl ov07_02341660 + add r2, sp, #0x2dc + add r0, sp, #0x244 + mov r1, #0x98 + str r2, [sp, #0x414] + bl FUN_02003250 + mov r0, #7 + bl FUN_02337928 + ldr r2, _02340D9C @ =0x023418F0 + ldr r1, _02340D90 @ =0x023418EC + ldr r2, [r2, r0, lsl #3] + ldr r0, _02340DA0 @ =0x00003739 + str r2, [sp, #0x244] + str r1, [sp] + str r0, [sp, #4] + add r1, sp, #0x3dc + str r1, [sp, #8] + mov r0, #0 + mov r1, #8 + mov r2, #0x13 + add r3, sp, #0x244 + bl ov07_0233F64C + mov r0, #0xc + str r0, [r4] + mov r0, #0 + bl ov07_02341738 + b _023414B4 +_0234046C: + mov r2, #0 + add r0, r4, #0x56 + mov r1, #0x36 + str r2, [r4, #0x8c] + bl FUN_02003250 + ldr r1, _02340DA4 @ =0x0000373A + mov r0, #0x1c + bl ov07_0233F6AC + mov r0, #8 + str r0, [r4] + b _023414B4 +_02340498: + mov r0, #0 + str r0, [r4] + b _023414B4 +_023404A4: + bl ov07_0233F678 + mov r5, r0 + bl ov07_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #7 + bl FUN_02337938 + cmp r5, #1 + bne _023404E4 + bl ov07_023417A8 + ldr r1, _02340DA8 @ =0x0000373B + mov r0, #0x1c + bl ov07_0233F6AC + mov r0, #0xd + str r0, [r4] + b _023414B4 +_023404E4: + cmp r5, #2 + cmpne r5, #0x15 + bne _023414B4 + bl ov07_023417A8 + mov r2, #0 + add r0, r4, #0x56 + mov r1, #0x36 + str r2, [r4, #0x8c] + bl FUN_02003250 + bl FUN_02046D20 + mov r0, #9 + str r0, [r4] + b _023414B4 +_02340518: + bl ov07_0233F6C8 + cmp r0, #0x15 + moveq r0, #0xe + streq r0, [r4] + b _023414B4 +_0234052C: + bl FUN_02338A24 + mov r0, #0xf + str r0, [r4] + b _023414B4 +_0234053C: + bl FUN_02003BFC + bl FUN_02338EC4 + cmp r0, #1 + beq _023405B4 + cmp r0, #4 + beq _02340560 + cmp r0, #8 + beq _023405B4 + b _023414B4 +_02340560: + bl FUN_022BD6C0 + mov r0, #0 + str r0, [r4, #0x14] + str r0, [r4, #0x18] + bl FUN_022BD5EC + add r1, r4, #0x20 + mov r2, #0x36 + bl ov07_02341614 + ldr r5, [r4, #0x2b0] + bl FUN_0205BD78 + mov r2, r0 + mov r0, r5 + mov r1, #1 + bl FUN_0232C5C8 + strh r0, [r4, #0x1e] + mov r0, #0 + ldr r1, [r4, #0x2b0] + bl FUN_02338C4C + mov r0, #0x12 + str r0, [r4] + b _023414B4 +_023405B4: + bl FUN_02338B08 + ldr r1, _02340DAC @ =0x0000373C + mov r0, #0x1c + bl ov07_0233F6AC + mov r0, #0x11 + str r0, [r4] + b _023414B4 +_023405D0: + bl FUN_02338EC4 + cmp r0, #0 + beq _023414B4 + bl FUN_02338B08 + ldr r1, _02340DAC @ =0x0000373C + mov r0, #0x1c + bl ov07_0233F6AC + mov r0, #0x11 + str r0, [r4] + b _023414B4 +_023405F8: + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _023414B4 + bl FUN_022BD274 + cmp r0, #0 + movne r0, #0x35 + strne r0, [r4] + moveq r0, #0 + streq r0, [r4] + b _023414B4 +_02340620: + bl FUN_02338EC4 + cmp r0, #4 + bne _023406A0 + mov r0, #0 + bl FUN_02338E1C + bl FUN_0232C8B4 + cmp r0, #1 + bne _0234066C + mov r0, #0xa + bl FUN_02337928 + str r0, [sp] + ldr r2, _02340DB0 @ =0x02341904 + ldr r3, _02340DB4 @ =0x0000373D + mov r0, #0 + mov r1, #8 + bl ov07_0233F638 + mov r0, #0x13 + str r0, [r4] + b _023414B4 +_0234066C: + bl FUN_022BD6C0 + mov r0, #0 + str r0, [r4, #0x14] + str r0, [r4, #0x18] + bl FUN_022BD5EC + mov r1, #0x36 + bl FUN_02003250 + mov r0, #1 + mov r1, #0 + bl FUN_02338BEC + mov r0, #0x10 + str r0, [r4] + b _023414B4 +_023406A0: + cmp r0, #8 + cmpne r0, #6 + bne _023414B4 + bl FUN_02338B08 + bl FUN_022BD6C0 + mov r0, #0 + str r0, [r4, #0x14] + str r0, [r4, #0x18] + bl FUN_022BD5EC + mov r1, #0x36 + bl FUN_02003250 + ldr r1, _02340DAC @ =0x0000373C + mov r0, #0x1c + bl ov07_0233F6AC + mov r0, #0x11 + str r0, [r4] + b _023414B4 +_023406E4: + bl FUN_02339988 + bl FUN_02338EC4 + mov r6, r0 + bl ov07_0233F678 + mov r5, r0 + bl ov07_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0xa + bl FUN_02337938 + cmp r6, #5 + bne _02340748 + bl FUN_022BD6C0 + mov r0, #0 + str r0, [r4, #0x14] + str r0, [r4, #0x18] + bl FUN_022BD5EC + mov r1, #0x36 + bl FUN_02003250 + bl FUN_02046BB4 + bl FUN_02046D20 + bl FUN_02338C34 + mov r0, #0x10 + str r0, [r4] + b _023414B4 +_02340748: + cmp r5, #1 + bne _02340768 + ldr r1, _02340DB8 @ =0x00003741 + mov r0, #0x1c + bl ov07_0233F6AC + mov r0, #0x15 + str r0, [r4] + b _023414B4 +_02340768: + cmp r5, #2 + cmpne r5, #0x15 + bne _023414B4 + mov r0, #0xb + bl FUN_02337928 + str r0, [sp] + mov r0, #0 + ldr r2, _02340D90 @ =0x023418EC + mov r1, r0 + mov r3, #0x3740 + bl ov07_0233F638 + mov r0, #0x14 + str r0, [r4] + b _023414B4 +_023407A0: + bl FUN_02339988 + bl FUN_02338EC4 + mov r6, r0 + bl ov07_0233F678 + mov r5, r0 + bl ov07_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0xb + bl FUN_02337938 + cmp r6, #5 + bne _02340804 + bl FUN_022BD6C0 + mov r0, #0 + str r0, [r4, #0x14] + str r0, [r4, #0x18] + bl FUN_022BD5EC + mov r1, #0x36 + bl FUN_02003250 + bl FUN_02046BB4 + bl FUN_02046D20 + bl FUN_02338C34 + mov r0, #0x10 + str r0, [r4] + b _023414B4 +_02340804: + cmp r5, #1 + bne _02340848 + mov r0, #0 + strb r0, [r4, #0x1c] + bl FUN_022BD6C0 + mov r0, #0 + str r0, [r4, #0x14] + str r0, [r4, #0x18] + bl FUN_022BD5EC + mov r1, #0x36 + bl FUN_02003250 + mov r0, #1 + mov r1, #0 + bl FUN_02338BEC + mov r0, #0x1d + str r0, [r4] + b _023414B4 +_02340848: + cmp r5, #2 + cmpne r5, #0x15 + bne _023414B4 + mov r0, #0xa + bl FUN_02337928 + str r0, [sp] + ldr r2, _02340DB0 @ =0x02341904 + ldr r3, _02340DB4 @ =0x0000373D + mov r0, #0 + mov r1, #8 + bl ov07_0233F638 + mov r0, #0x13 + str r0, [r4] + b _023414B4 +_02340880: + bl FUN_02339988 + bl FUN_02338EC4 + mov r5, r0 + bl ov07_0233F6C8 + cmp r5, #5 + bne _023408C8 + bl FUN_022BD6C0 + mov r0, #0 + str r0, [r4, #0x14] + str r0, [r4, #0x18] + bl FUN_022BD5EC + mov r1, #0x36 + bl FUN_02003250 + bl FUN_02046D20 + bl FUN_02338C34 + mov r0, #0x10 + str r0, [r4] + b _023414B4 +_023408C8: + cmp r0, #0x15 + bne _023414B4 + bl FUN_02046D20 + mov r0, #0x16 + str r0, [r4] + b _023414B4 +_023408E0: + ldrsh r3, [r4, #0x1e] + ldr r1, [r4, #0x14] + ldr r2, [r4, #0x18] + mov r0, #4 + bl FUN_02335848 + mov r0, #0x17 + str r0, [r4] +_023408FC: + bl FUN_02339988 + bl FUN_02338EC4 + mov r5, r0 + bl FUN_02336014 + cmp r5, #5 + bne _02340948 + bl FUN_02335FA8 + bl FUN_022BD6C0 + mov r0, #0 + str r0, [r4, #0x14] + str r0, [r4, #0x18] + bl FUN_022BD5EC + mov r1, #0x36 + bl FUN_02003250 + bl FUN_02046D20 + bl FUN_02338C34 + mov r0, #0x10 + str r0, [r4] + b _023414B4 +_02340948: + cmp r0, #2 + bne _02340978 + bl FUN_023370AC + str r0, [r4, #0x14] + str r1, [r4, #0x18] + bl FUN_02335FA8 + ldr r1, _02340DBC @ =0x00003742 + mov r0, #0 + bl ov07_0233F6AC + mov r0, #0x19 + str r0, [r4] + b _023414B4 +_02340978: + cmp r0, #1 + bne _023414B4 + bl FUN_02335FA8 + mov r0, #0xc + bl FUN_02337928 + str r0, [sp] + mov r0, #0 + ldr r2, _02340D90 @ =0x023418EC + mov r1, r0 + mov r3, #0x3740 + bl ov07_0233F638 + mov r0, #0x18 + str r0, [r4] + b _023414B4 +_023409B0: + bl FUN_02339988 + bl FUN_02338EC4 + mov r6, r0 + bl ov07_0233F678 + mov r5, r0 + bl ov07_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0xc + bl FUN_02337938 + cmp r6, #5 + bne _02340A14 + bl FUN_022BD6C0 + mov r0, #0 + str r0, [r4, #0x14] + str r0, [r4, #0x18] + bl FUN_022BD5EC + mov r1, #0x36 + bl FUN_02003250 + bl FUN_02046BB4 + bl FUN_02046D20 + bl FUN_02338C34 + mov r0, #0x10 + str r0, [r4] + b _023414B4 +_02340A14: + cmp r5, #1 + bne _02340A58 + mov r0, #0 + strb r0, [r4, #0x1c] + bl FUN_022BD6C0 + mov r0, #0 + str r0, [r4, #0x14] + str r0, [r4, #0x18] + bl FUN_022BD5EC + mov r1, #0x36 + bl FUN_02003250 + mov r0, #1 + mov r1, #0 + bl FUN_02338BEC + mov r0, #0x1d + str r0, [r4] + b _023414B4 +_02340A58: + cmp r5, #2 + cmpne r5, #0x15 + bne _023414B4 + bl FUN_02046D20 + mov r0, #0x16 + str r0, [r4] + b _023414B4 +_02340A74: + bl FUN_02339988 + bl FUN_02338EC4 + mov r5, r0 + bl ov07_0233F6C8 + cmp r5, #5 + bne _02340ABC + bl FUN_022BD6C0 + mov r0, #0 + str r0, [r4, #0x14] + str r0, [r4, #0x18] + bl FUN_022BD5EC + mov r1, #0x36 + bl FUN_02003250 + bl FUN_02046D20 + bl FUN_02338C34 + mov r0, #0x10 + str r0, [r4] + b _023414B4 +_02340ABC: + cmp r0, #0x15 + bne _023414B4 + ldr r0, [r4, #0x14] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_022BD6A8 + ldr r5, [r4, #0x2b0] + bl FUN_0205BD78 + mov r2, r0 + mov r0, r5 + mov r1, #1 + bl FUN_0232C5C8 + ldr r1, [r4, #0x2b0] + mov r0, #0 + bl FUN_02338C4C + mov r0, #0x1a + str r0, [r4] + b _023414B4 +_02340B04: + bl FUN_02338EC4 + cmp r0, #4 + bne _02340B40 + mov r0, #0 + bl FUN_02338E1C + bl FUN_0232C8B4 + cmp r0, #0 + mov r0, #0x1c + streq r0, [r4] + beq _023414B4 + ldr r1, _02340DC0 @ =0x00003743 + bl ov07_0233F6AC + mov r0, #0x1b + str r0, [r4] + b _023414B4 +_02340B40: + cmp r0, #8 + cmpne r0, #6 + bne _023414B4 + bl FUN_02338B08 + bl FUN_022BD6C0 + mov r0, #0 + str r0, [r4, #0x14] + str r0, [r4, #0x18] + bl FUN_022BD5EC + mov r1, #0x36 + bl FUN_02003250 + ldr r1, _02340DAC @ =0x0000373C + mov r0, #0x1c + bl ov07_0233F6AC + mov r0, #0x11 + str r0, [r4] + b _023414B4 +_02340B84: + bl FUN_02339988 + bl FUN_02338EC4 + mov r5, r0 + bl ov07_0233F6C8 + cmp r5, #5 + bne _02340BCC + bl FUN_022BD6C0 + mov r0, #0 + str r0, [r4, #0x14] + str r0, [r4, #0x18] + bl FUN_022BD5EC + mov r1, #0x36 + bl FUN_02003250 + bl FUN_02046D20 + bl FUN_02338C34 + mov r0, #0x10 + str r0, [r4] + b _023414B4 +_02340BCC: + cmp r0, #0x15 + bne _023414B4 + bl FUN_02046D20 + mov r0, #0x16 + str r0, [r4] + b _023414B4 +_02340BE4: + bl FUN_02339988 + bl FUN_02338EC4 + cmp r0, #5 + bne _02340C28 + bl ov07_023417A8 + bl FUN_022BD6C0 + mov r0, #0 + str r0, [r4, #0x14] + str r0, [r4, #0x18] + bl FUN_022BD5EC + mov r1, #0x36 + bl FUN_02003250 + bl FUN_02046D20 + bl FUN_02338C34 + mov r0, #0x10 + str r0, [r4] + b _023414B4 +_02340C28: + mov r0, #1 + mov r1, #0 + strb r0, [r4, #0x1c] + bl FUN_02338BEC + mov r0, #0x1d + str r0, [r4] + b _023414B4 +_02340C44: + bl FUN_02338EC4 + cmp r0, #6 + bne _02340C84 + bl FUN_02338B08 + ldrb r0, [r4, #0x1c] + cmp r0, #0 + movne r0, #0x1e + strne r0, [r4] + bne _023414B4 + bl FUN_022BD274 + cmp r0, #0 + movne r0, #0x35 + strne r0, [r4] + moveq r0, #0 + streq r0, [r4] + b _023414B4 +_02340C84: + cmp r0, #8 + bne _023414B4 + bl FUN_02338B08 + bl FUN_022BD6C0 + mov r0, #0 + str r0, [r4, #0x14] + str r0, [r4, #0x18] + bl FUN_022BD5EC + mov r1, #0x36 + bl FUN_02003250 + ldr r1, _02340DAC @ =0x0000373C + mov r0, #0x1c + bl ov07_0233F6AC + mov r0, #0x11 + str r0, [r4] + b _023414B4 +_02340CC4: + add r0, sp, #0x1f4 + bl FUN_02023690 + add r0, sp, #0xf4 + add r1, r4, #0x20 + bl ov07_02341660 + add r3, sp, #0xf4 + ldr r1, _02340DC4 @ =0x00003744 + add r2, sp, #0x1f4 + mov r0, #0x1c + str r3, [sp, #0x22c] + bl ov07_02046BE8 + mov r1, #0x1f + mov r0, #1 + str r1, [r4] + bl ov07_02341738 +_02340D00: + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _023414B4 + bl ov07_023417A8 + ldr r1, _02340DC8 @ =0x00003745 + mov r0, #0x1c + bl ov07_0233F6AC + mov r0, #0x20 + str r0, [r4] + b _023414B4 +_02340D28: + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _023414B4 + ldr r1, _02340D68 @ =0xD4A51000 + mov r0, #0xe8 + str r1, [r4, #0xc] + str r0, [r4, #0x10] + mov r0, #0x21 + str r0, [r4] + b _023414B4 +_02340D50: + mov r0, #0 + bl ov07_023414FC + mov r0, #0x22 + str r0, [r4] + b _023414B4 + .align 2, 0 +_02340D64: .4byte 0x02341B78 +_02340D68: .4byte 0xD4A51000 +_02340D6C: .4byte 0x02341A48 +_02340D70: .4byte 0x02341A44 +_02340D74: .4byte 0x0000372E +_02340D78: .4byte 0x00000233 +_02340D7C: .4byte 0x00003734 +_02340D80: .4byte 0x00003733 +_02340D84: .4byte 0x0234194C +_02340D88: .4byte 0x00003735 +_02340D8C: .4byte 0x00003737 +_02340D90: .4byte 0x023418EC +_02340D94: .4byte 0x00003753 +_02340D98: .4byte 0x00003738 +_02340D9C: .4byte 0x023418F0 +_02340DA0: .4byte 0x00003739 +_02340DA4: .4byte 0x0000373A +_02340DA8: .4byte 0x0000373B +_02340DAC: .4byte 0x0000373C +_02340DB0: .4byte 0x02341904 +_02340DB4: .4byte 0x0000373D +_02340DB8: .4byte 0x00003741 +_02340DBC: .4byte 0x00003742 +_02340DC0: .4byte 0x00003743 +_02340DC4: .4byte 0x00003744 +_02340DC8: .4byte 0x00003745 +_02340DCC: .4byte 0x00003747 +_02340DD0: + bl ov07_0234151C + cmp r0, #1 + bne _02340E44 + add r0, sp, #0xa4 + bl FUN_02023690 + ldr r2, [r4, #0xc] + add r0, sp, #0xc + mov r1, #0x98 + str r2, [sp, #0xc8] + bl FUN_02003250 + mov r0, #8 + bl FUN_02337928 + ldr r2, _02340D9C @ =0x023418F0 + ldr r1, _02340D90 @ =0x023418EC + ldr r2, [r2, r0, lsl #3] + ldr r0, _02340DCC @ =0x00003747 + str r2, [sp, #0xc] + str r1, [sp] + str r0, [sp, #4] + add r1, sp, #0xa4 + mov r0, #0 + str r1, [sp, #8] + mov r1, r0 + mov r2, #0x13 + add r3, sp, #0xc + bl ov07_0233F64C + mov r0, #0x23 + str r0, [r4] + b _023414B4 +_02340E44: + cmp r0, #2 + bne _023414B4 + mov r0, #0xd + bl FUN_02337928 + str r0, [sp] + mov r0, #0 + ldr r2, _02340D90 @ =0x023418EC + ldr r3, _023414C4 @ =0x00003746 + mov r1, r0 + bl ov07_0233F638 + mov r0, #0x24 + str r0, [r4] + b _023414B4 +_02340E78: + bl ov07_0233F678 + mov r5, r0 + bl ov07_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #8 + bl FUN_02337938 + cmp r5, #1 + bne _02340EB4 + ldr r1, _023414C8 @ =0x00003749 + mov r0, #0x1c + bl ov07_0233F6AC + mov r0, #0x25 + str r0, [r4] + b _023414B4 +_02340EB4: + cmp r5, #2 + cmpne r5, #0x15 + moveq r0, #0x21 + streq r0, [r4] + b _023414B4 +_02340EC8: + bl ov07_0233F678 + mov r5, r0 + bl ov07_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0xd + bl FUN_02337938 + cmp r5, #1 + bne _02340F14 + ldr r0, _023414CC @ =0x00003FFF + ldr r1, _023414C8 @ =0x00003749 + str r0, [r4, #0xc] + mov r2, #0 + mov r0, #0x1c + str r2, [r4, #0x10] + bl ov07_0233F6AC + mov r0, #0x25 + str r0, [r4] + b _023414B4 +_02340F14: + cmp r5, #2 + cmpne r5, #0x15 + moveq r0, #0x21 + streq r0, [r4] + b _023414B4 +_02340F28: + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _023414B4 + bl FUN_022BD5EC + mov r1, #0x36 + bl FUN_02003250 + bl FUN_022BD5EC + add r1, r4, #0x20 + mov r2, #0x36 + bl ov07_02341614 + ldr r0, [r4, #0xc] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_022BD648 + mov r0, #0x30 + str r0, [r4] + b _023414B4 +_02340F6C: + ldrb r0, [r4, #0x2b4] + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + str r0, [r4, #0x2bc] + ldrb r0, [r4, #0x2b5] + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + str r0, [r4, #0x2c0] + ldrb r0, [r4, #0x2b6] + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + str r0, [r4, #0x2c4] + ldrb r0, [r4, #0x2b7] + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + str r0, [r4, #0x2c8] + mov r0, #0x10 + bl FUN_02337928 + str r0, [r4, #0x2e4] + mov r0, #3 + str r0, [sp] + add r2, r4, #0x2bc + str r2, [sp, #4] + ldr r0, _023414D0 @ =0x02341B10 + ldr r1, _023414D4 @ =0x00441C33 + ldr r3, _023414D8 @ =0x02341B20 + add r2, r4, #0x2e4 + bl FUN_0202D1F0 + strb r0, [r4, #0x2b8] + mov r0, #0x27 + str r0, [r4] + b _023414B4 +_02340FFC: + add r0, r4, #0x200 + ldrsb r0, [r0, #0xb8] + bl FUN_0202D59C + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x10 + bl FUN_02337938 + add r0, r4, #0x200 + ldrsb r0, [r0, #0xb8] + bl FUN_0202D55C + cmp r0, #0 + bne _023410A0 + add r0, r4, #0x200 + ldrsb r0, [r0, #0xb8] + bl FUN_0202D5E4 + cmp r0, #0 + beq _02341098 + ldr r0, [r4, #0x2bc] + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + strb r0, [r4, #0x2b4] + ldr r0, [r4, #0x2c0] + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + strb r0, [r4, #0x2b5] + ldr r0, [r4, #0x2c4] + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + strb r0, [r4, #0x2b6] + ldr r0, [r4, #0x2c8] + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + strb r0, [r4, #0x2b7] + mov r0, #1 + b _023410A4 +_02341098: + mov r0, #2 + b _023410A4 +_023410A0: + mov r0, #0 +_023410A4: + cmp r0, #1 + bne _02341128 + bl ov07_023416FC + bl FUN_022BD6E0 + ldrb r1, [r4, #0x2b4] + cmp r1, r0 + bne _023410F0 + bl FUN_022BD6F4 + ldrb r1, [r4, #0x2b5] + cmp r1, r0 + bne _023410F0 + bl FUN_022BD708 + ldrb r1, [r4, #0x2b6] + cmp r1, r0 + bne _023410F0 + bl FUN_022BD71C + ldrb r1, [r4, #0x2b7] + cmp r1, r0 + beq _0234111C +_023410F0: + mov r0, #0xe + bl FUN_02337928 + str r0, [sp] + mov r0, #0 + ldr r2, _02340D90 @ =0x023418EC + ldr r3, _023414DC @ =0x00003750 + mov r1, r0 + bl ov07_0233F638 + mov r0, #0x28 + str r0, [r4] + b _023414B4 +_0234111C: + mov r0, #0 + str r0, [r4] + b _023414B4 +_02341128: + cmp r0, #2 + bne _023414B4 + bl ov07_023416FC + mov r0, #0 + str r0, [r4] + b _023414B4 +_02341140: + bl ov07_0233F678 + mov r5, r0 + bl ov07_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0xe + bl FUN_02337938 + cmp r5, #1 + bne _023411C0 + ldrb r0, [r4, #0x2b7] + cmp r0, #0 + beq _023411A8 + bl FUN_022BD71C + cmp r0, #0 + bne _023411A8 + mov r0, #0xf + bl FUN_02337928 + str r0, [sp] + mov r0, #0 + ldr r2, _02340D90 @ =0x023418EC + ldr r3, _023414E0 @ =0x00003751 + mov r1, r0 + bl ov07_0233F638 + mov r0, #0x29 + str r0, [r4] + b _023414B4 +_023411A8: + ldr r1, _023414E4 @ =0x00003752 + mov r0, #0x1c + bl ov07_0233F6AC + mov r0, #0x2a + str r0, [r4] + b _023414B4 +_023411C0: + cmp r5, #2 + cmpne r5, #0x15 + bne _023414B4 + bl FUN_02046D20 + mov r0, #0x26 + str r0, [r4] + b _023414B4 +_023411DC: + bl ov07_0233F678 + mov r5, r0 + bl ov07_02046BA0 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0xf + bl FUN_02337938 + cmp r5, #1 + bne _02341218 + ldr r1, _023414E4 @ =0x00003752 + mov r0, #0x1c + bl ov07_0233F6AC + mov r0, #0x2a + str r0, [r4] + b _023414B4 +_02341218: + cmp r5, #2 + cmpne r5, #0x15 + bne _023414B4 + bl FUN_02046D20 + mov r0, #0x26 + str r0, [r4] + b _023414B4 +_02341234: + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _023414B4 + ldrb r0, [r4, #0x2b4] + bl FUN_022BD730 + ldrb r0, [r4, #0x2b5] + bl FUN_022BD744 + ldrb r0, [r4, #0x2b6] + bl FUN_022BD758 + ldrb r0, [r4, #0x2b7] + bl FUN_022BD76C + mov r0, #0x30 + str r0, [r4] + b _023414B4 +_0234126C: + bl ov07_0233F678 + cmp r0, #1 + bne _023412A8 + ldr r0, _02340D64 @ =0x02341B78 + mov r2, #0 + ldr r1, [r0] + strb r2, [r1, #0x468] + ldr r0, [r0] + add r0, r0, #0x1a + add r0, r0, #0x400 + bl FUN_022BD578 + bl FUN_022BD4EC + mov r0, #0x2c + str r0, [r4] + b _023414B4 +_023412A8: + cmp r0, #2 + cmpne r0, #0x15 + moveq r0, #0 + streq r0, [r4] + b _023414B4 +_023412BC: + bl ov07_0233CA80 + ldr r5, [r4, #0x2b0] + bl FUN_0205BD78 + mov r2, r0 + mov r0, r5 + mov r1, #1 + bl FUN_0232C5C8 + ldr r0, [r4, #0x2b0] + bl ov07_0233CAC8 + ldr r1, _023414E8 @ =0x00003754 + mov r0, #0x1c + bl ov07_0233F6AC + mov r0, #0x2d + str r0, [r4] + b _023414B4 +_023412F8: + bl ov07_0233F6C8 + cmp r0, #0x15 + moveq r0, #0x2e + streq r0, [r4] + b _023414B4 +_0234130C: + bl ov07_0233CAE8 + movs r5, r0 + beq _023414B4 + bl ov07_0233CD04 + cmp r5, #1 + bne _0234133C + ldr r1, _023414EC @ =0x00003755 + mov r2, #1 + mov r0, #0x1c + strb r2, [r4, #0x468] + bl ov07_0233F6AC + b _0234135C +_0234133C: + ldr r0, _02340D64 @ =0x02341B78 + ldr r0, [r0] + add r0, r0, #0x1a + add r0, r0, #0x400 + bl FUN_022BD5A0 + ldr r1, _023414F0 @ =0x00003756 + mov r0, #0x1c + bl ov07_0233F6AC +_0234135C: + mov r0, #0x2f + str r0, [r4] + b _023414B4 +_02341368: + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _023414B4 + ldrb r0, [r4, #0x468] + cmp r0, #0 + movne r0, #0x30 + strne r0, [r4] + moveq r0, #0 + streq r0, [r4] + b _023414B4 +_02341390: + bl FUN_022BD780 + ldr r1, _023414F4 @ =0x0000023B + mov r0, #0 + bl ov07_0233F6AC + mov r1, #0x31 + ldr r0, _02340D64 @ =0x02341B78 + str r1, [r4] + ldr r1, [r0] + mov r0, #0 + strb r0, [r1, #0x419] + bl FUN_022BD264 +_023413BC: + bl ov07_0233F6C8 + cmp r0, #0x15 + bne _023414B4 + mov r0, #0xe0 + mov r1, #0x88 + mov r2, #1 + bl FUN_02029F88 + mov r0, #0x32 + str r0, [r4] + bl FUN_02003B94 + b _023414B4 +_023413E8: + mov r0, #3 + bl FUN_02048F84 + mov r5, r0 + bl FUN_02003BC8 + bl FUN_02029FBC + cmp r5, #0 + bne _0234142C + mov r0, #0x1c + mov r1, #0x23c + bl ov07_0233F6AC + ldr r0, _02340D64 @ =0x02341B78 + mov r2, #1 + ldr r1, [r0] + mov r0, #0x33 + strb r2, [r1, #0x419] + str r0, [r4] + b _023414B4 +_0234142C: + cmp r5, #1 + moveq r0, #3 + beq _023414B8 + ldr r1, _023414F8 @ =0x00000239 + mov r0, #0x1c + bl ov07_0233F6AC + mov r0, #0x34 + str r0, [r4] + b _023414B4 +_02341450: + bl ov07_0233F6C8 + cmp r0, #0x15 + moveq r0, #0 + streq r0, [r4] + b _023414B4 +_02341464: + bl ov07_0233F6C8 + cmp r0, #0x15 + moveq r0, #0 + streq r0, [r4] + b _023414B4 +_02341478: + bl FUN_0233769C + mov r0, #0x36 + str r0, [r4] +_02341484: + bl FUN_02337718 + cmp r0, #1 + cmpne r0, #3 + bne _023414A0 + bl FUN_023376DC + mov r0, #2 + b _023414B8 +_023414A0: + cmp r0, #2 + bne _023414B4 + bl FUN_023376DC + mov r0, #3 + b _023414B8 +_023414B4: + mov r0, #0 +_023414B8: + add sp, sp, #0x2cc + add sp, sp, #0x400 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_023414C4: .4byte 0x00003746 +_023414C8: .4byte 0x00003749 +_023414CC: .4byte 0x00003FFF +_023414D0: .4byte 0x02341B10 +_023414D4: .4byte 0x00441C33 +_023414D8: .4byte 0x02341B20 +_023414DC: .4byte 0x00003750 +_023414E0: .4byte 0x00003751 +_023414E4: .4byte 0x00003752 +_023414E8: .4byte 0x00003754 +_023414EC: .4byte 0x00003755 +_023414F0: .4byte 0x00003756 +_023414F4: .4byte 0x0000023B +_023414F8: .4byte 0x00000239 + arm_func_end ov07_0233FDF8 + + arm_func_start ov07_023414FC +ov07_023414FC: @ 0x023414FC + ldr r1, _02341518 @ =0x02341B78 + mov r3, #0 + ldr r2, [r1] + str r3, [r2, #4] + ldr r1, [r1] + strb r0, [r1, #8] + bx lr + .align 2, 0 +_02341518: .4byte 0x02341B78 + arm_func_end ov07_023414FC + + arm_func_start ov07_0234151C +ov07_0234151C: @ 0x0234151C + push {r4, lr} + ldr r0, _02341600 @ =0x02341B78 + ldr r4, [r0] + ldr r0, [r4, #4] + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _023415F8 +_02341538: @ jump table + b _02341548 @ case 0 + b _02341558 @ case 1 + b _02341574 @ case 2 + b _023415E8 @ case 3 +_02341548: + bl FUN_02046D20 + mov r0, #1 + str r0, [r4, #4] + b _023415F8 +_02341558: + ldr r1, [r4, #0xc] + ldr r2, [r4, #0x10] + mov r0, #3 + bl FUN_0233580C + mov r0, #2 + str r0, [r4, #4] + b _023415F8 +_02341574: + bl FUN_02336014 + cmp r0, #2 + bne _023415D4 + bl FUN_023370AC + str r0, [r4, #0xc] + str r1, [r4, #0x10] + bl FUN_02335FA8 + ldrb r0, [r4, #8] + cmp r0, #0 + beq _023415B4 + bl FUN_022BD630 + ldr r1, [r4, #0x10] + ldr r2, [r4, #0xc] + cmp r1, r0, asr #31 + cmpeq r2, r0 + bne _023415BC +_023415B4: + mov r0, #1 + pop {r4, pc} +_023415BC: + ldr r1, _02341604 @ =0x00003748 + mov r0, #0x1c + bl ov07_0233F6AC + mov r0, #3 + str r0, [r4, #4] + b _023415F8 +_023415D4: + cmp r0, #1 + bne _023415F8 + bl FUN_02335FA8 + mov r0, #2 + pop {r4, pc} +_023415E8: + bl ov07_0233F6C8 + cmp r0, #0x15 + moveq r0, #0 + streq r0, [r4, #4] +_023415F8: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_02341600: .4byte 0x02341B78 +_02341604: .4byte 0x00003748 + arm_func_end ov07_0234151C + + arm_func_start ov07_02341608 +ov07_02341608: @ 0x02341608 + cmp r0, #0 + moveq r0, #0 + bx lr + arm_func_end ov07_02341608 + + arm_func_start ov07_02341614 +ov07_02341614: @ 0x02341614 + push {r3, r4, r5, r6, r7, lr} + mov r7, r0 + mov r6, r1 + mov r5, r2 + mov r4, #0 + b _0234163C +_0234162C: + bl ov07_02341608 + strb r0, [r7], #1 + add r6, r6, #1 + add r4, r4, #1 +_0234163C: + ldrb r0, [r6] + cmp r0, #0 + beq _02341650 + cmp r4, r5 + blt _0234162C +_02341650: + cmp r4, r5 + movlt r0, #0 + strblt r0, [r7] + pop {r3, r4, r5, r6, r7, pc} + arm_func_end ov07_02341614 + + arm_func_start ov07_02341660 +ov07_02341660: @ 0x02341660 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov r8, #0 + mov sl, r0 + mov sb, r1 + mov r7, r8 + mov r6, #0xa + mov r5, #0x5b + mov r4, #0x43 + mov fp, #0x4e + b _023416E4 +_02341688: + ldrb r0, [sb, r7] + add r7, r7, #1 + bl ov07_02341608 + strb r0, [sl, r8] + cmp r7, #0x36 + add r8, r8, #1 + bge _023416F0 + mov r0, r7 + mov r1, #0x1b + bl FUN_0208FEA4 + cmp r1, #0 + bne _023416E4 + strb r6, [sl, r8] + add r0, r8, #1 + strb r5, [sl, r0] + add r0, r8, #2 + strb r4, [sl, r0] + add r0, r8, #3 + add r1, r8, #4 + strb fp, [sl, r0] + mov r0, #0x5d + strb r0, [sl, r1] + add r8, r8, #5 +_023416E4: + ldrb r0, [sb, r7] + cmp r0, #0 + bne _02341688 +_023416F0: + mov r0, #0 + strb r0, [sl, r8] + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov07_02341660 + + arm_func_start ov07_023416FC +ov07_023416FC: @ 0x023416FC + push {r3, lr} + ldr r0, _02341734 @ =0x02341B78 + mvn r1, #1 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0xb8] + cmp r0, r1 + popeq {r3, pc} + bl FUN_0202D530 + ldr r0, _02341734 @ =0x02341B78 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x2b8] + pop {r3, pc} + .align 2, 0 +_02341734: .4byte 0x02341B78 + arm_func_end ov07_023416FC + + arm_func_start ov07_02341738 +ov07_02341738: @ 0x02341738 + push {r3, lr} + ldr r1, _02341798 @ =0x02341B78 + mvn r2, #1 + ldr r1, [r1] + add r1, r1, #0x400 + ldrsb r1, [r1, #0x69] + cmp r1, r2 + popne {r3, pc} + cmp r0, #0 + beq _0234177C + ldr r0, _0234179C @ =0x02341B00 + ldr r1, _023417A0 @ =ov07_02341800 + bl FUN_0202F8C4 + ldr r1, _02341798 @ =0x02341B78 + ldr r1, [r1] + strb r0, [r1, #0x469] + pop {r3, pc} +_0234177C: + ldr r0, _023417A4 @ =0x02341AF0 + ldr r1, _023417A0 @ =ov07_02341800 + bl FUN_0202F8C4 + ldr r1, _02341798 @ =0x02341B78 + ldr r1, [r1] + strb r0, [r1, #0x469] + pop {r3, pc} + .align 2, 0 +_02341798: .4byte 0x02341B78 +_0234179C: .4byte 0x02341B00 +_023417A0: .4byte ov07_02341800 +_023417A4: .4byte 0x02341AF0 + arm_func_end ov07_02341738 + + arm_func_start ov07_023417A8 +ov07_023417A8: @ 0x023417A8 + push {r3, lr} + ldr r0, _023417FC @ =0x02341B78 + mvn r1, #1 + ldr r0, [r0] + add r0, r0, #0x400 + ldrsb r0, [r0, #0x69] + cmp r0, r1 + moveq r0, #0 + popeq {r3, pc} + bl FUN_0202F954 + ldr r0, _023417FC @ =0x02341B78 + ldr r0, [r0] + add r0, r0, #0x400 + ldrsb r0, [r0, #0x69] + bl FUN_0202F8FC + ldr r0, _023417FC @ =0x02341B78 + mvn r2, #1 + ldr r1, [r0] + mov r0, #1 + strb r2, [r1, #0x469] + pop {r3, pc} + .align 2, 0 +_023417FC: .4byte 0x02341B78 + arm_func_end ov07_023417A8 + + arm_func_start ov07_02341800 +ov07_02341800: @ 0x02341800 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x108 + mov sl, r0 + bl FUN_02027B1C + mov r7, #0 + ldr fp, _023418B8 @ =0x02341B78 + mov r8, r7 + mov r4, #0x17 + add r6, sp, #8 +_02341824: + mov r0, r6 + mov r1, #0x100 + bl FUN_02003250 + ldr r1, [fp] + mov r0, r6 + add r1, r1, #0x20 + mov r2, #0x12 + add r1, r1, r7 + bl FUN_020251F4 + mov r0, #0xd + mul r5, r8, r0 + str r6, [sp, #4] + mov sb, #0 + b _02341888 +_0234185C: + add r0, sp, #4 + bl FUN_0202065C + mov r1, #0xd + mul r1, sb, r1 + mov r3, r0 + mov r0, sl + add r1, r1, #4 + add r2, r5, #2 + str r4, [sp] + bl FUN_020264F8 + add sb, sb, #1 +_02341888: + ldr r0, [sp, #4] + ldrb r0, [r0] + cmp r0, #0 + bne _0234185C + add r8, r8, #1 + cmp r8, #3 + add r7, r7, #0x12 + blt _02341824 + mov r0, sl + bl FUN_02027AF0 + add sp, sp, #0x108 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_023418B8: .4byte 0x02341B78 + arm_func_end ov07_02341800 + @ 0x023418BC diff --git a/asm/overlay_08.s b/asm/overlay_08.s index 6de472ba..45493d11 100644 --- a/asm/overlay_08.s +++ b/asm/overlay_08.s @@ -3,3 +3,2380 @@ .include "global.inc" .text + + arm_func_start ov08_0233CA80 +ov08_0233CA80: @ 0x0233CA80 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + mov r0, #0x10 + mov r1, #0 + bl FUN_02001170 + ldr r1, _0233CAFC @ =0x0233EC20 + mov r3, #0 + str r0, [r1] + str r3, [r0] + arm_func_end ov08_0233CA80 + + arm_func_start ov08_0233CAA8 +ov08_0233CAA8: @ 0x0233CAA8 + ldr r0, [r1] + mov r2, #1 + str r3, [r0, #4] + ldr r0, [r1] + strh r5, [r0, #8] + ldr r0, [r1] + strh r4, [r0, #0xa] + ldr r0, [r1] + strb r3, [r0, #0xd] + ldr r0, [r1] + strb r2, [r0, #0xd] + bl ov08_02003B94 + arm_func_end ov08_0233CAA8 + + arm_func_start ov08_0233CAD8 +ov08_0233CAD8: @ 0x0233CAD8 + ldr r0, _0233CAFC @ =0x0233EC20 + ldr r1, [r0] + ldrh r0, [r1, #8] + ldrh r1, [r1, #0xa] + add r0, r0, #1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl ov08_0233CF04 + pop {r3, r4, r5, pc} + .align 2, 0 +_0233CAFC: .4byte 0x0233EC20 + arm_func_end ov08_0233CAD8 + + arm_func_start ov08_0233CB00 +ov08_0233CB00: @ 0x0233CB00 + ldr r0, _0233CB34 @ =0x0233EC20 + mov ip, #0 + ldr r1, [r0] + mov r3, #1 + arm_func_end ov08_0233CB00 + + arm_func_start ov08_0233CB10 +ov08_0233CB10: @ 0x0233CB10 + str ip, [r1] + ldr r2, [r0] + mov r1, #3 + str ip, [r2, #4] + ldr r2, [r0] + strb r3, [r2, #0xd] + ldr r0, [r0] + str r1, [r0] + bx lr + .align 2, 0 +_0233CB34: .4byte 0x0233EC20 + arm_func_end ov08_0233CB10 + + arm_func_start ov08_0233CB38 +ov08_0233CB38: @ 0x0233CB38 + push {r3, r4, r5, r6, r7, r8, sb, lr} + arm_func_end ov08_0233CB38 + + arm_func_start ov08_0233CB3C +ov08_0233CB3C: @ 0x0233CB3C + ldr r0, _0233CCEC @ =0x0233EC20 + ldr r5, [r0] + ldr r0, [r5] + cmp r0, #4 + blt _0233CB68 + cmp r0, #8 + bgt _0233CB68 + bl ov08_0233CDF8 + cmp r0, #0 + movne r0, #9 + strne r0, [r5] +_0233CB68: + ldr r0, [r5] + cmp r0, #0xb + addls pc, pc, r0, lsl #2 + b _0233CCE4 +_0233CB78: @ jump table + b _0233CBA8 @ case 0 + b _0233CBB4 @ case 1 + b _0233CC10 @ case 2 + b _0233CC18 @ case 3 + b _0233CC38 @ case 4 + b _0233CC54 @ case 5 + b _0233CC74 @ case 6 + b _0233CC90 @ case 7 + b _0233CCB0 @ case 8 + b _0233CCC4 @ case 9 + b _0233CCCC @ case 10 + b _0233CCD4 @ case 11 +_0233CBA8: + mov r0, #1 + str r0, [r5] + b _0233CCE4 +_0233CBB4: + bl ov08_0233D0E4 + cmp r0, #1 + bne _0233CCE4 + bl ov08_0233D178 + ldr r8, _0233CCF0 @ =0x000004ED + ldr sb, _0233CCF4 @ =0x0233E9A4 + mov r4, #0 + sub r7, r8, #1 + mov r6, #0x44 +_0233CBD8: + mul r1, r4, r6 + str r8, [sp] + add r0, sb, r1 + ldrh r2, [sb, r1] + ldr r1, [r0, #4] + mov r3, r7 + add r0, r0, #8 + bl ov08_0233D1F8 + add r4, r4, #1 + cmp r4, #3 + blt _0233CBD8 + mov r0, #3 + str r0, [r5] + b _0233CCE4 +_0233CC10: + mov r0, #3 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_0233CC18: + bl ov08_0233D630 + ldrh r1, [r5, #8] + cmp r1, r0 + bne _0233CCE4 + mov r0, #4 + str r0, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_0233CC38: + bl ov08_0233D760 + mov r4, r0 + bl ov08_0233D840 + cmp r4, r0 + moveq r0, #5 + streq r0, [r5] + b _0233CCE4 +_0233CC54: + bl ov08_0233D6E8 + bl ov08_0233D6C0 + mov r4, r0 + bl ov08_0233D840 + cmp r4, r0 + moveq r0, #6 + streq r0, [r5] + b _0233CCE4 +_0233CC74: + bl ov08_0233D818 + mov r4, r0 + bl ov08_0233D840 + cmp r4, r0 + moveq r0, #7 + streq r0, [r5] + b _0233CCE4 +_0233CC90: + bl ov08_0233D66C + bl ov08_0233D644 + mov r4, r0 + bl ov08_0233D840 + cmp r4, r0 + moveq r0, #0xa + streq r0, [r5] + b _0233CCE4 +_0233CCB0: + bl ov08_0233CDF8 + cmp r0, #0 + movne r0, #9 + strne r0, [r5] + b _0233CCE4 +_0233CCC4: + mov r0, #2 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_0233CCCC: + mov r0, #4 + pop {r3, r4, r5, r6, r7, r8, sb, pc} +_0233CCD4: + bl ov08_0233CD3C + cmp r0, #0 + movne r0, #5 + popne {r3, r4, r5, r6, r7, r8, sb, pc} +_0233CCE4: + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0233CCEC: .4byte 0x0233EC20 +_0233CCF0: .4byte 0x000004ED +_0233CCF4: .4byte 0x0233E9A4 + arm_func_end ov08_0233CB3C + + arm_func_start ov08_0233CCF8 +ov08_0233CCF8: @ 0x0233CCF8 + push {r3, lr} + bl ov08_0233D854 + ldr r0, _0233CD14 @ =0x0233EC20 + mov r1, #8 + ldr r0, [r0] + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233CD14: .4byte 0x0233EC20 + arm_func_end ov08_0233CCF8 + + arm_func_start ov08_0233CD18 +ov08_0233CD18: @ 0x0233CD18 + ldr r0, _0233CD38 @ =0x0233EC20 + ldr r1, [r0] + cmp r1, #0 + moveq r0, #1 + movne r0, #0xb + strne r0, [r1] + movne r0, #0 + bx lr + .align 2, 0 +_0233CD38: .4byte 0x0233EC20 + arm_func_end ov08_0233CD18 + + arm_func_start ov08_0233CD3C +ov08_0233CD3C: @ 0x0233CD3C + push {r3, lr} + ldr r0, _0233CDA0 @ =0x0233EC20 + ldr r0, [r0] + cmp r0, #0 + moveq r0, #1 + popeq {r3, pc} + ldr r0, [r0, #4] + cmp r0, #0 + bne _0233CD98 + bl ov08_0233D408 + cmp r0, #0 + beq _0233CD98 + bl ov08_0233D5B4 + ldr r0, _0233CDA0 @ =0x0233EC20 + mov r3, #0 + ldr r2, [r0] + mov r1, #1 + strb r3, [r2, #0xd] + ldr r0, [r0] + str r1, [r0, #4] + bl ov08_02003BC8 + mov r0, #1 + pop {r3, pc} +_0233CD98: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0233CDA0: .4byte 0x0233EC20 + arm_func_end ov08_0233CD3C + + arm_func_start ov08_0233CDA4 +ov08_0233CDA4: @ 0x0233CDA4 + ldr r0, _0233CDC4 @ =0x0233EC20 + ldr r0, [r0] + cmp r0, #0 + ldrbne r0, [r0, #0xd] + cmpne r0, #0 + moveq r0, #0 + movne r0, #1 + bx lr + .align 2, 0 +_0233CDC4: .4byte 0x0233EC20 + arm_func_end ov08_0233CDA4 + + arm_func_start ov08_0233CDC8 +ov08_0233CDC8: @ 0x0233CDC8 + push {r3, lr} + ldr r0, _0233CDF4 @ =0x0233EC20 + ldr r0, [r0] + cmp r0, #0 + arm_func_end ov08_0233CDC8 + + arm_func_start ov08_0233CDD8 +ov08_0233CDD8: @ 0x0233CDD8 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0233CDF4 @ =0x0233EC20 + arm_func_end ov08_0233CDD8 + + arm_func_start ov08_0233CDE4 +ov08_0233CDE4: @ 0x0233CDE4 + mov r1, #0 + str r1, [r0] + bl ov08_02003BC8 + pop {r3, pc} + .align 2, 0 +_0233CDF4: .4byte 0x0233EC20 + arm_func_end ov08_0233CDE4 + + arm_func_start ov08_0233CDF8 +ov08_0233CDF8: @ 0x0233CDF8 + push {r3, lr} + bl ov08_0233D760 + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + and r0, r0, #0xff + pop {r3, pc} + arm_func_end ov08_0233CDF8 + + arm_func_start ov08_0233CE14 +ov08_0233CE14: @ 0x0233CE14 + push {r3, lr} + ldr r0, _0233CE68 @ =0x0233EC24 + ldrb r1, [r0] + cmp r1, #0 + popne {r3, pc} + mov r1, #1 + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bl FUN_0232C0CC + bl FUN_0232C2E4 + mov r0, #0xe0 + mov r1, #0xa0 + mov r2, #0 + bl FUN_0232C148 + mov r0, #0xec + mov r1, #0x1c + mov r2, #7 + mov r3, #6 + bl FUN_0232C3AC + pop {r3, pc} + .align 2, 0 +_0233CE68: .4byte 0x0233EC24 + arm_func_end ov08_0233CE14 + + arm_func_start ov08_0233CE6C +ov08_0233CE6C: @ 0x0233CE6C + ldr r1, _0233CE78 @ =0x0233EC24 + strb r0, [r1, #1] + bx lr + .align 2, 0 +_0233CE78: .4byte 0x0233EC24 + arm_func_end ov08_0233CE6C + + arm_func_start ov08_0233CE7C +ov08_0233CE7C: @ 0x0233CE7C + push {r3, lr} + ldr r0, _0233CECC @ =0x0233EC24 + ldrb r1, [r0] + cmp r1, #0 + ldrbne r0, [r0, #1] + cmpne r0, #0 + popeq {r3, pc} + bl ov08_0233D954 + cmp r0, #0 + moveq r0, #0 + beq _0233CEAC + bl FUN_0232B380 +_0233CEAC: + add r0, r0, #2 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0232C1D8 + mov r0, #0 + mov r1, r0 + bl FUN_0232C454 + pop {r3, pc} + .align 2, 0 +_0233CECC: .4byte 0x0233EC24 + arm_func_end ov08_0233CE7C + + arm_func_start ov08_0233CED0 +ov08_0233CED0: @ 0x0233CED0 + push {r3, lr} + ldr r0, _0233CF00 @ =0x0233EC24 + ldrb r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_0232C10C + bl FUN_0232C370 + ldr r0, _0233CF00 @ =0x0233EC24 + mov r1, #0 + strb r1, [r0] + strb r1, [r0, #1] + pop {r3, pc} + .align 2, 0 +_0233CF00: .4byte 0x0233EC24 + arm_func_end ov08_0233CED0 + + arm_func_start ov08_0233CF04 +ov08_0233CF04: @ 0x0233CF04 + push {r3, r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x54 + mov r8, r0 + mov r7, r1 + ldr r0, _0233D0DC @ =0x00000D18 + mov r1, #0 + bl FUN_02001170 + ldr r2, _0233D0E0 @ =0x0233EC28 + ldr r1, _0233D0DC @ =0x00000D18 + str r0, [r2, #4] + bl FUN_02003250 + ldr sl, _0233D0E0 @ =0x0233EC28 + mov r6, #0 + ldr r0, [sl, #4] + mov r2, #1 + strh r6, [r0, #0xa] + ldr r0, [sl, #4] + rsb r1, r2, #0x10000 + strh r6, [r0, #0xc] + ldr r0, [sl, #4] + mov r5, #0x3c + strh r6, [r0, #0x10] + ldr r0, [sl, #4] + mov r4, r6 + strb r2, [r0, #0x2c] + ldr r0, [sl, #4] + strb r6, [r0, #0x2d] + ldr r0, [sl, #4] + strb r6, [r0, #0x2e] + ldr r0, [sl, #4] + strh r6, [r0, #0x30] + ldr r0, [sl, #4] + strh r1, [r0, #0x32] + strb r6, [sl] +_0233CF8C: + ldr r0, [sl, #4] + add sb, r6, r6, lsl #4 + add r0, r0, #0x54 + mov r1, r5 + add r0, r0, sb, lsl #6 + bl FUN_02003250 + ldr r0, [sl, #4] + add r6, r6, #1 + add r0, r0, sb, lsl #6 + str r4, [r0, #0x90] + cmp r6, #3 + blt _0233CF8C + add r0, sp, #0 + bl FUN_0207BA08 + ldr r0, _0233D0E0 @ =0x0233EC28 + ldrb r1, [sp, #1] + ldr r4, [r0, #4] + ldrh r3, [sp, #0x1a] + ldrb r2, [r4, #0x14] + and r1, r1, #0xf + add r0, sp, #4 + bic r2, r2, #0xf + orr r1, r2, r1 + strb r1, [r4, #0x14] + strb r3, [r4, #0x15] + add r1, r4, #0x16 + lsl r2, r3, #1 + bl FUN_0207C4C8 + ldrb r1, [r4, #0x14] + ldr r0, _0233D0E0 @ =0x0233EC28 + mov r3, #0 + bic r1, r1, #0xf0 + strb r1, [r4, #0x14] + ldr r2, [r0, #4] + mov r1, #0x1e + strh r3, [r2, #0xa] + ldr r2, [r0, #4] + strh r3, [r2, #0xc] + ldr r2, [r0, #4] + strh r3, [r2, #0xe] + ldr r2, [r0, #4] + strb r3, [r2, #0x12] + ldr r0, [r0, #4] + add r0, r0, #0x34 + bl FUN_02003250 + ldr r1, _0233D0E0 @ =0x0233EC28 + mov r3, #0 + ldr r2, [r1, #4] + mov r0, #1 + strh r3, [r2, #0x10] + ldr r2, [r1, #4] + strb r3, [r2, #0x2d] + ldr r2, [r1, #4] + strb r3, [r2, #0x2e] + ldr r2, [r1, #4] + strh r7, [r2, #0x2a] + ldr r2, [r1, #4] + str r3, [r2, #4] + ldr r2, [r1, #4] + strh r8, [r2, #0xa] + ldr r2, [r1, #4] + ldrsh r1, [r2, #0xa] + sub r1, r1, #1 + strh r1, [r2, #0xc] + bl FUN_0232C0A0 + bl ov08_0233DC78 + bl ov08_0233DFF8 + ldr r0, _0233D0E0 @ =0x0233EC28 + mov r3, #0 + ldr r2, [r0, #4] + mov r1, #1 + strb r3, [r2, #0xd14] + strb r1, [r0, #2] + strb r3, [r0, #1] + strb r3, [r0] + ldr r2, [r0, #4] + rsb r1, r1, #0x10000 + strb r3, [r2] + strb r3, [r2, #1] + strb r3, [r2, #2] + ldr r0, [r0, #4] + strh r1, [r0, #0x32] + add sp, sp, #0x54 + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0233D0DC: .4byte 0x00000D18 +_0233D0E0: .4byte 0x0233EC28 + arm_func_end ov08_0233CF04 + + arm_func_start ov08_0233D0E4 +ov08_0233D0E4: @ 0x0233D0E4 + push {r4, lr} + ldr r0, _0233D174 @ =0x0233EC28 + ldr r4, [r0, #4] + bl ov08_0233DC88 + cmp r0, #9 + addls pc, pc, r0, lsl #2 + b _0233D168 +_0233D100: @ jump table + b _0233D168 @ case 0 + b _0233D128 @ case 1 + b _0233D168 @ case 2 + b _0233D16C @ case 3 + b _0233D168 @ case 4 + b _0233D168 @ case 5 + b _0233D168 @ case 6 + b _0233D140 @ case 7 + b _0233D168 @ case 8 + b _0233D158 @ case 9 +_0233D128: + ldr r0, _0233D174 @ =0x0233EC28 + mov r1, #1 + ldr r0, [r0, #4] + strb r1, [r0, #0xd14] + bl ov08_0233DC98 + b _0233D16C +_0233D140: + bl ov08_0233DEC8 + ldr r1, _0233D174 @ =0x0233EC28 + ldr r1, [r1, #4] + strh r0, [r1, #0x32] + mov r0, #1 + pop {r4, pc} +_0233D158: + bl ov08_0233E16C + mov r0, #1 + strb r0, [r4] + b _0233D16C +_0233D168: + bl FUN_0207BC20 +_0233D16C: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_0233D174: .4byte 0x0233EC28 + arm_func_end ov08_0233D0E4 + + arm_func_start ov08_0233D178 +ov08_0233D178: @ 0x0233D178 + push {r3, lr} + mov r0, #1 + bl FUN_0232C0A0 + mov r2, #2 + ldr r1, _0233D1EC @ =0x0233EC28 + str r2, [sp] + ldr r1, [r1, #4] + mov r2, r0 + ldrh r3, [r1, #0x2a] + ldr r0, _0233D1F0 @ =0x0233EC80 + add r1, r1, #0x14 + bl FUN_022C6EFC + ldr r1, _0233D1EC @ =0x0233EC28 + mov r0, #0x100 + ldr r1, [r1, #4] + ldrh r1, [r1, #0xa] + bl FUN_022C7150 + ldr r0, _0233D1F4 @ =ov08_0233D964 + bl FUN_022C3270 + ldr r0, _0233D1EC @ =0x0233EC28 + ldr r0, [r0, #4] + ldrh r0, [r0, #0x32] + bl FUN_022C74A0 + ldr r0, _0233D1EC @ =0x0233EC28 + mov r1, #1 + strb r1, [r0, #1] + mov r1, #0 + strb r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233D1EC: .4byte 0x0233EC28 +_0233D1F0: .4byte 0x0233EC80 +_0233D1F4: .4byte ov08_0233D964 + arm_func_end ov08_0233D178 + + arm_func_start ov08_0233D1F8 +ov08_0233D1F8: @ 0x0233D1F8 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0xa0 + ldr r5, _0233D400 @ =0x0233EC28 + mov r7, #0 + str r3, [sp, #4] + mov sb, r1 + mov sl, r0 + mov fp, r2 + mov r4, r7 + ldr r1, [r5, #4] + b _0233D23C +_0233D224: + add r0, r4, r4, lsl #4 + add r0, r1, r0, lsl #6 + ldr r0, [r0, #0x90] + cmp r0, #0 + beq _0233D244 + add r4, r4, #1 +_0233D23C: + cmp r4, #3 + blt _0233D224 +_0233D244: + cmp r4, #3 + moveq r0, #0 + beq _0233D3F8 + bl FUN_02025888 + mov r6, r0 + bl FUN_02025888 + ldr r1, _0233D400 @ =0x0233EC28 + mov r5, r0 + ldr r1, [r1, #4] + add r4, r4, r4, lsl #4 + add r1, r1, #0x54 + add r0, sp, #8 + add r8, r1, r4, lsl #6 + bl FUN_02023690 + ldr r0, [sb, #4] + add r1, sp, #8 + str r0, [sp, #0x2c] + str r1, [sp] + mov r2, fp + mov r0, r6 + mov r1, #0x100 + mov r3, #0x400 + bl FUN_020235B8 + mov r1, r6 + add r0, r8, #0x40 + bl FUN_020255D8 + ldr r2, [sp, #4] + add r1, sp, #8 + str r1, [sp] + mov r0, r5 + mov r1, #0x100 + mov r3, #0x400 + bl FUN_020235B8 + add r0, r8, #0x240 + mov r1, r5 + bl FUN_020255D8 + ldrh r2, [sp, #0xc8] + mov r6, r0 + cmp r2, #0 + beq _0233D310 + mov r0, #0xa + strh r0, [r6] + add sb, sp, #8 + mov r0, r5 + mov r1, #0x100 + mov r3, #0x400 + str sb, [sp] + bl FUN_020235B8 + mov r1, r5 + add r0, r6, #2 + bl FUN_020255D8 +_0233D310: + mov r6, r8 + mov r5, #3 +_0233D318: + ldm sl!, {r0, r1, r2, r3} + stm r6!, {r0, r1, r2, r3} + subs r5, r5, #1 + bne _0233D318 + ldm sl, {r0, r1, r2} + stm r6, {r0, r1, r2} + mov r0, #1 + bl FUN_0232C0A0 + str r0, [r8, #0x14] + ldr r0, _0233D400 @ =0x0233EC28 + add r2, r8, #0x40 + ldr r0, [r0, #4] + add r1, r8, #0x240 + ldrsh r3, [r0, #0xa] + add r0, sp, #0x58 + strb r3, [r8, #0x18] + str r2, [r8, #4] + str r1, [r8, #8] + bl FUN_0207F3E4 + ldr r1, [r8] + add r0, sp, #0x58 + bl FUN_0207F6C4 + cmp r0, #0 + beq _0233D3D4 + ldr r0, _0233D404 @ =0x00020100 + mov r1, #0 + bl FUN_02001170 + movs r5, r0 + beq _0233D3D4 + ldr r2, _0233D404 @ =0x00020100 + add r0, sp, #0x58 + mov r1, r5 + bl FUN_022C4718 + cmp r0, #0 + bne _0233D3B0 + mov r0, r5 + bl FUN_02001188 + b _0233D3D4 +_0233D3B0: + mov r0, r8 + mov r1, r5 + bl FUN_022C4C08 + cmp r0, #0 + ldrne r0, _0233D400 @ =0x0233EC28 + movne r7, #1 + ldrne r0, [r0, #4] + addne r0, r0, r4, lsl #6 + strne r5, [r0, #0x90] +_0233D3D4: + ldr r0, [sp, #0x64] + tst r0, #0x10 + movne r0, #1 + moveq r0, #0 + cmp r0, #0 + beq _0233D3F4 + add r0, sp, #0x58 + bl FUN_0207F70C +_0233D3F4: + mov r0, r7 +_0233D3F8: + add sp, sp, #0xa0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0233D400: .4byte 0x0233EC28 +_0233D404: .4byte 0x00020100 + arm_func_end ov08_0233D1F8 + + arm_func_start ov08_0233D408 +ov08_0233D408: @ 0x0233D408 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + ldr r4, _0233D5A4 @ =0x0233EC28 + ldr r0, [r4, #4] + cmp r0, #0 + ldrbne r0, [r4, #2] + cmpne r0, #0 + moveq r0, #1 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov sb, #0 + mov r7, #2 + mov r8, sb + mov r6, #1 + mov sl, sb + mov fp, #3 + mov r5, r7 + b _0233D594 +_0233D448: + ldr r1, [r4, #4] + mov sb, #1 + ldr r0, [r1, #4] + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _0233D594 +_0233D460: @ jump table + b _0233D470 @ case 0 + b _0233D4E0 @ case 1 + b _0233D4F4 @ case 2 + b _0233D58C @ case 3 +_0233D470: + ldrb r0, [r4, #1] + cmp r0, #0 + beq _0233D488 + ldrb r0, [r4] + cmp r0, #0 + beq _0233D490 +_0233D488: + mov r0, #1 + b _0233D4A0 +_0233D490: + strb r8, [r4] + bl FUN_022C759C + mov r0, #0 + strb r0, [r4, #1] +_0233D4A0: + cmp r0, #1 + bne _0233D4D0 + ldr r0, _0233D5A8 @ =0x0233EA70 + bl FUN_0200C1FC + ldr r0, [r4, #4] + ldrb r0, [r0, #0xd14] + cmp r0, #0 + beq _0233D4C4 + bl ov08_0233E16C +_0233D4C4: + ldr r0, [r4, #4] + str r7, [r0, #4] + b _0233D4D8 +_0233D4D0: + ldr r0, [r4, #4] + str r6, [r0, #4] +_0233D4D8: + mov sb, #0 + b _0233D594 +_0233D4E0: + ldrb r0, [r4] + cmp r0, #0 + strne r5, [r1, #4] + movne sb, #0 + b _0233D594 +_0233D4F4: + ldrb r0, [r4, #2] + cmp r0, #0 + moveq r0, sb + beq _0233D578 + bl ov08_0233DC88 + cmp r0, #9 + addls pc, pc, r0, lsl #2 + b _0233D570 +_0233D514: @ jump table + b _0233D55C @ case 0 + b _0233D53C @ case 1 + b _0233D570 @ case 2 + b _0233D574 @ case 3 + b _0233D570 @ case 4 + b _0233D570 @ case 5 + b _0233D570 @ case 6 + b _0233D54C @ case 7 + b _0233D570 @ case 8 + b _0233D568 @ case 9 +_0233D53C: + ldr r0, _0233D5AC @ =0x0233EA94 + bl FUN_0200C1FC + bl ov08_0233E1D8 + b _0233D574 +_0233D54C: + ldr r0, _0233D5B0 @ =0x0233EAA4 + bl FUN_0200C1FC + bl ov08_0233E16C + b _0233D574 +_0233D55C: + strb sl, [r4, #2] + mov r0, sb + b _0233D578 +_0233D568: + bl ov08_0233E16C + b _0233D574 +_0233D570: + bl FUN_0207BC20 +_0233D574: + mov r0, #0 +_0233D578: + cmp r0, #0 + ldrne r0, [r4, #4] + movne sb, #0 + strne fp, [r0, #4] + b _0233D594 +_0233D58C: + mov r0, sb + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0233D594: + cmp sb, #0 + beq _0233D448 + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0233D5A4: .4byte 0x0233EC28 +_0233D5A8: .4byte 0x0233EA70 +_0233D5AC: .4byte 0x0233EA94 +_0233D5B0: .4byte 0x0233EAA4 + arm_func_end ov08_0233D408 + + arm_func_start ov08_0233D5B4 +ov08_0233D5B4: @ 0x0233D5B4 + push {r3, r4, r5, r6, r7, lr} + ldr r6, _0233D62C @ =0x0233EC28 + ldr r0, [r6, #4] + cmp r0, #0 + beq _0233D61C + mov r4, #0 + mov r7, r4 +_0233D5D0: + ldr r0, [r6, #4] + add r5, r4, r4, lsl #4 + add r0, r0, r5, lsl #6 + ldr r0, [r0, #0x90] + cmp r0, #0 + beq _0233D5F8 + bl FUN_02001188 + ldr r0, [r6, #4] + add r0, r0, r5, lsl #6 + str r7, [r0, #0x90] +_0233D5F8: + add r4, r4, #1 + cmp r4, #3 + blt _0233D5D0 + ldr r0, _0233D62C @ =0x0233EC28 + ldr r0, [r0, #4] + bl FUN_02001188 + ldr r0, _0233D62C @ =0x0233EC28 + mov r1, #0 + str r1, [r0, #4] +_0233D61C: + ldr r0, _0233D62C @ =0x0233EC28 + mov r1, #0 + strb r1, [r0] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0233D62C: .4byte 0x0233EC28 + arm_func_end ov08_0233D5B4 + + arm_func_start ov08_0233D630 +ov08_0233D630: @ 0x0233D630 + ldr r0, _0233D640 @ =0x0233EC28 + ldr r0, [r0, #4] + ldrsh r0, [r0, #0x10] + bx lr + .align 2, 0 +_0233D640: .4byte 0x0233EC28 + arm_func_end ov08_0233D630 + + arm_func_start ov08_0233D644 +ov08_0233D644: @ 0x0233D644 + ldr r1, _0233D668 @ =0x0233EC28 + mov r0, #0 + ldr r1, [r1, #4] + ldrb r1, [r1, #0x12] + tst r1, #8 + addne r0, r0, #1 + lslne r0, r0, #0x10 + asrne r0, r0, #0x10 + bx lr + .align 2, 0 +_0233D668: .4byte 0x0233EC28 + arm_func_end ov08_0233D644 + + arm_func_start ov08_0233D66C +ov08_0233D66C: @ 0x0233D66C + push {r3, lr} + ldr r0, _0233D6BC @ =0x0233EC28 + ldr r0, [r0, #4] + ldrh r0, [r0, #0xe] + cmp r0, #0 + beq _0233D6B4 + bl FUN_022C3298 + cmp r0, #7 + bne _0233D6B4 + ldr r0, _0233D6BC @ =0x0233EC28 + mov r1, #3 + ldr r3, [r0, #4] + ldrb r2, [r3, #0x12] + orr r2, r2, #8 + strb r2, [r3, #0x12] + ldr r0, [r0, #4] + ldrh r0, [r0, #0xe] + bl FUN_022C33BC +_0233D6B4: + bl ov08_0233D644 + pop {r3, pc} + .align 2, 0 +_0233D6BC: .4byte 0x0233EC28 + arm_func_end ov08_0233D66C + + arm_func_start ov08_0233D6C0 +ov08_0233D6C0: @ 0x0233D6C0 + ldr r1, _0233D6E4 @ =0x0233EC28 + mov r0, #0 + ldr r1, [r1, #4] + ldrb r1, [r1, #0x12] + tst r1, #2 + addne r0, r0, #1 + lslne r0, r0, #0x10 + asrne r0, r0, #0x10 + bx lr + .align 2, 0 +_0233D6E4: .4byte 0x0233EC28 + arm_func_end ov08_0233D6C0 + + arm_func_start ov08_0233D6E8 +ov08_0233D6E8: @ 0x0233D6E8 + push {r3, lr} + ldr r0, _0233D738 @ =0x0233EC28 + ldr r0, [r0, #4] + ldrh r0, [r0, #0xe] + cmp r0, #0 + beq _0233D730 + bl FUN_022C3298 + cmp r0, #0xe + bne _0233D730 + ldr r0, _0233D738 @ =0x0233EC28 + mov r1, #2 + ldr r3, [r0, #4] + ldrb r2, [r3, #0x12] + orr r2, r2, #2 + strb r2, [r3, #0x12] + ldr r0, [r0, #4] + ldrh r0, [r0, #0xe] + bl FUN_022C33BC +_0233D730: + bl ov08_0233D6C0 + pop {r3, pc} + .align 2, 0 +_0233D738: .4byte 0x0233EC28 + arm_func_end ov08_0233D6E8 + + arm_func_start ov08_02003B5C +ov08_02003B5C: @ 0x0233D73C + ldr ip, _0233D744 @ =FUN_02003B5C + bx ip + .align 2, 0 +_0233D744: .4byte FUN_02003B5C + arm_func_end ov08_02003B5C + + arm_func_start ov08_02003B94 +ov08_02003B94: @ 0x0233D748 + ldr ip, _0233D750 @ =FUN_02003B94 + bx ip + .align 2, 0 +_0233D750: .4byte FUN_02003B94 + arm_func_end ov08_02003B94 + + arm_func_start ov08_02003BC8 +ov08_02003BC8: @ 0x0233D754 + ldr ip, _0233D75C @ =FUN_02003BC8 + bx ip + .align 2, 0 +_0233D75C: .4byte FUN_02003BC8 + arm_func_end ov08_02003BC8 + + arm_func_start ov08_0233D760 +ov08_0233D760: @ 0x0233D760 + ldr r1, _0233D784 @ =0x0233EC28 + mov r0, #0 + ldr r1, [r1, #4] + ldrb r1, [r1, #0x12] + tst r1, #1 + addne r0, r0, #1 + lslne r0, r0, #0x10 + asrne r0, r0, #0x10 + bx lr + .align 2, 0 +_0233D784: .4byte 0x0233EC28 + arm_func_end ov08_0233D760 + + arm_func_start ov08_0233D788 +ov08_0233D788: @ 0x0233D788 + push {r3, lr} + ldr r0, _0233D814 @ =0x0233EC28 + ldr r0, [r0, #4] + ldrh r0, [r0, #0xe] + cmp r0, #0 + beq _0233D80C + bl FUN_022C3298 + cmp r0, #0xa + bne _0233D80C + ldr r0, _0233D814 @ =0x0233EC28 + mov r1, #1 + ldr r3, [r0, #4] + ldrb r2, [r3, #0x12] + orr r2, r2, #1 + strb r2, [r3, #0x12] + ldr r0, [r0, #4] + ldrh r0, [r0, #0xe] + bl FUN_022C33BC + ldr r0, _0233D814 @ =0x0233EC28 + ldr r0, [r0, #4] + ldrh r0, [r0, #0xe] + bl FUN_022C32E4 + cmp r0, #0 + beq _0233D7FC + ldr r1, _0233D814 @ =0x0233EC28 + mov r2, #0x16 + ldr r1, [r1, #4] + add r1, r1, #0x34 + bl FUN_0207C4C8 +_0233D7FC: + ldr r0, _0233D814 @ =0x0233EC28 + ldr r1, [r0, #4] + ldrh r0, [r1, #0xe] + strh r0, [r1, #0x50] +_0233D80C: + bl ov08_0233D760 + pop {r3, pc} + .align 2, 0 +_0233D814: .4byte 0x0233EC28 + arm_func_end ov08_0233D788 + + arm_func_start ov08_0233D818 +ov08_0233D818: @ 0x0233D818 + ldr r1, _0233D83C @ =0x0233EC28 + mov r0, #0 + ldr r1, [r1, #4] + ldrb r1, [r1, #0x12] + tst r1, #4 + addne r0, r0, #1 + lslne r0, r0, #0x10 + asrne r0, r0, #0x10 + bx lr + .align 2, 0 +_0233D83C: .4byte 0x0233EC28 + arm_func_end ov08_0233D818 + + arm_func_start ov08_0233D840 +ov08_0233D840: @ 0x0233D840 + ldr r0, _0233D850 @ =0x0233EC28 + ldr r0, [r0, #4] + ldrsh r0, [r0, #0xc] + bx lr + .align 2, 0 +_0233D850: .4byte 0x0233EC28 + arm_func_end ov08_0233D840 + + arm_func_start ov08_0233D854 +ov08_0233D854: @ 0x0233D854 + push {r4, lr} + ldr r0, _0233D890 @ =0x0233EC28 + mov r4, #0 + ldr r0, [r0, #4] + ldrh r0, [r0, #0xe] + cmp r0, #0 + beq _0233D888 + bl FUN_022C75D8 + ldr r0, _0233D890 @ =0x0233EC28 + ldr r0, [r0, #4] + ldrh r0, [r0, #0xe] + bl ov08_0233D894 + add r4, r4, #1 +_0233D888: + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_0233D890: .4byte 0x0233EC28 + arm_func_end ov08_0233D854 + + arm_func_start ov08_0233D894 +ov08_0233D894: @ 0x0233D894 + push {r3, lr} + ldr r1, _0233D908 @ =0x0233EC28 + mov ip, #0 + ldr lr, [r1, #4] + ldrh r3, [lr, #0xc] + b _0233D8F8 +_0233D8AC: + add r2, lr, ip, lsl #1 + ldrh r1, [r2, #0xe] + cmp r0, r1 + bne _0233D8EC + ldr r1, _0233D908 @ =0x0233EC28 + mov r3, #0 + strh r3, [r2, #0xe] + ldr r2, [r1, #4] + mov r0, #1 + add r2, r2, ip + strb r3, [r2, #0x12] + ldr r2, [r1, #4] + ldrsh r1, [r2, #0x10] + sub r1, r1, #1 + strh r1, [r2, #0x10] + pop {r3, pc} +_0233D8EC: + add r1, ip, #1 + lsl r1, r1, #0x10 + lsr ip, r1, #0x10 +_0233D8F8: + cmp ip, r3 + blo _0233D8AC + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0233D908: .4byte 0x0233EC28 + arm_func_end ov08_0233D894 + + arm_func_start ov08_0233D90C +ov08_0233D90C: @ 0x0233D90C + ldr r2, _0233D950 @ =0x0233EC28 + ldr r3, [r2, #4] + add r2, r3, r1, lsl #1 + ldrh r2, [r2, #0xe] + cmp r2, #0 + moveq r0, #0 + bxeq lr + mov r2, #0x1e + mla r2, r1, r2, r3 + add r3, r2, #0x34 + mov r2, #0xb +_0233D938: + ldrh r1, [r3], #2 + subs r2, r2, #1 + strh r1, [r0], #2 + bne _0233D938 + mov r0, #1 + bx lr + .align 2, 0 +_0233D950: .4byte 0x0233EC28 + arm_func_end ov08_0233D90C + + arm_func_start ov08_0233D954 +ov08_0233D954: @ 0x0233D954 + ldr r0, _0233D960 @ =0x0233EC28 + ldrb r0, [r0, #2] + bx lr + .align 2, 0 +_0233D960: .4byte 0x0233EC28 + arm_func_end ov08_0233D954 + + arm_func_start ov08_0233D964 +ov08_0233D964: @ 0x0233D964 + push {r4, lr} + cmp r1, #0xc + mov r4, r0 + ldreq r0, _0233DB5C @ =0x0233EC28 + moveq r1, #1 + strbeq r1, [r0] + popeq {r4, pc} + ldr r3, _0233DB5C @ =0x0233EC28 + ldr ip, [r3, #4] + cmp ip, #0 + popeq {r4, pc} + strh r1, [ip, #0x30] + cmp r1, #0xe + addls pc, pc, r1, lsl #2 + pop {r4, pc} +_0233D9A0: @ jump table + pop {r4, pc} @ case 0 + pop {r4, pc} @ case 1 + pop {r4, pc} @ case 2 + b _0233D9DC @ case 3 + pop {r4, pc} @ case 4 + pop {r4, pc} @ case 5 + pop {r4, pc} @ case 6 + b _0233D9E4 @ case 7 + pop {r4, pc} @ case 8 + pop {r4, pc} @ case 9 + b _0233DA60 @ case 10 + b _0233DB2C @ case 11 + b _0233DB34 @ case 12 + pop {r4, pc} @ case 13 + b _0233DB40 @ case 14 +_0233D9DC: + bl ov08_0233D894 + pop {r4, pc} +_0233D9E4: + ldr r1, [r3, #4] + mov r2, #0 + b _0233DA1C +_0233D9F0: + add r0, r1, r2, lsl #1 + ldrh r0, [r0, #0xe] + cmp r4, r0 + addeq r1, r1, #0x12 + ldrbeq r0, [r1, r2] + orreq r0, r0, #4 + strbeq r0, [r1, r2] + beq _0233DA24 + add r0, r2, #1 + lsl r0, r0, #0x10 + asr r2, r0, #0x10 +_0233DA1C: + cmp r2, #1 + blt _0233D9F0 +_0233DA24: + ldr r0, _0233DB5C @ =0x0233EC28 + ldr r0, [r0, #4] + ldrb r0, [r0, #0x2e] + cmp r0, #0 + popeq {r4, pc} + mov r0, r4 + mov r1, #3 + bl FUN_022C33BC + ldr r0, _0233DB5C @ =0x0233EC28 + ldr r0, [r0, #4] + add r1, r0, #0x12 + ldrb r0, [r1, r4] + orr r0, r0, #8 + strb r0, [r1, r4] + pop {r4, pc} +_0233DA60: + ldr ip, [r3, #4] + mov lr, #0 + ldrh r3, [ip, #0xc] + b _0233DAF0 +_0233DA70: + add r1, ip, lr, lsl #1 + ldrh r0, [r1, #0xe] + cmp r0, #0 + bne _0233DAE4 + mov r0, #0x1e + mul ip, lr, r0 + strh r4, [r1, #0xe] + ldr r1, _0233DB5C @ =0x0233EC28 + ldrb r3, [r2, #0xa] + ldr lr, [r1, #4] + mov r0, #1 + add lr, lr, #0x4a + strb r3, [lr, ip] + ldrb r3, [r2, #0xb] + add ip, lr, ip + strb r3, [ip, #1] + ldrb r3, [r2, #0xc] + strb r3, [ip, #2] + ldrb r3, [r2, #0xd] + strb r3, [ip, #3] + ldrb r3, [r2, #0xe] + strb r3, [ip, #4] + ldrb r2, [r2, #0xf] + strb r2, [ip, #5] + ldr r2, [r1, #4] + ldrsh r1, [r2, #0x10] + add r1, r1, #1 + strh r1, [r2, #0x10] + b _0233DAFC +_0233DAE4: + add r0, lr, #1 + lsl r0, r0, #0x10 + lsr lr, r0, #0x10 +_0233DAF0: + cmp lr, r3 + blo _0233DA70 + mov r0, #0 +_0233DAFC: + cmp r0, #0 + bne _0233DB10 + mov r0, r4 + bl FUN_022C75D8 + pop {r4, pc} +_0233DB10: + ldr r0, _0233DB5C @ =0x0233EC28 + ldr r0, [r0, #4] + ldrb r0, [r0, #0x2c] + cmp r0, #0 + popeq {r4, pc} + bl ov08_0233D788 + pop {r4, pc} +_0233DB2C: + bl FUN_022C75D8 + pop {r4, pc} +_0233DB34: + mov r0, #1 + strb r0, [r3] + pop {r4, pc} +_0233DB40: + ldr r1, [r3, #4] + ldrb r1, [r1, #0x2d] + cmp r1, #0 + popeq {r4, pc} + mov r1, #2 + bl FUN_022C33BC + pop {r4, pc} + .align 2, 0 +_0233DB5C: .4byte 0x0233EC28 + arm_func_end ov08_0233D964 + + arm_func_start ov08_0233DB60 +ov08_0233DB60: @ 0x0233DB60 + push {r3, r4, r5, lr} + ldr r1, _0233DBD0 @ =0x0233EC30 + mov r5, r0 + ldr r2, [r1, #0x24] + ldr r4, [r1, #0xc] + cmp r2, #0 + beq _0233DB8C + ldr r1, _0233DBD4 @ =0x0233EC58 + ldr r0, _0233DBD8 @ =0x0233EBA4 + ldr r1, [r1, r4, lsl #2] + blx r2 +_0233DB8C: + ldr r0, _0233DBD0 @ =0x0233EC30 + str r5, [r0, #0xc] + ldr r2, [r0, #0x24] + cmp r2, #0 + beq _0233DBB0 + ldr r1, _0233DBD4 @ =0x0233EC58 + ldr r0, _0233DBDC @ =0x0233EBAC + ldr r1, [r1, r5, lsl #2] + blx r2 +_0233DBB0: + ldr r0, _0233DBD0 @ =0x0233EC30 + ldr r2, [r0, #0x10] + cmp r2, #0 + popeq {r3, r4, r5, pc} + ldr r0, [r0, #0xc] + mov r1, r4 + blx r2 + pop {r3, r4, r5, pc} + .align 2, 0 +_0233DBD0: .4byte 0x0233EC30 +_0233DBD4: .4byte 0x0233EC58 +_0233DBD8: .4byte 0x0233EBA4 +_0233DBDC: .4byte 0x0233EBAC + arm_func_end ov08_0233DB60 + + arm_func_start ov08_0233DBE0 +ov08_0233DBE0: @ 0x0233DBE0 + ldr r1, _0233DBFC @ =0x0233EC30 + ldr r1, [r1, #0xc] + sub r1, r1, #9 + cmp r1, #1 + ldrhi r1, _0233DC00 @ =0x0234AC80 + strhi r0, [r1, #0x20] + bx lr + .align 2, 0 +_0233DBFC: .4byte 0x0233EC30 +_0233DC00: .4byte 0x0234AC80 + arm_func_end ov08_0233DBE0 + + arm_func_start ov08_0233DC04 +ov08_0233DC04: @ 0x0233DC04 + push {r4, lr} + mov r4, r0 + ldrh r1, [r4, #2] + cmp r1, #0 + beq _0233DC2C + mov r0, #9 + bl ov08_0233DB60 + ldrh r0, [r4, #2] + bl ov08_0233DBE0 + pop {r4, pc} +_0233DC2C: + ldr r1, _0233DC4C @ =0x0233EC30 + ldr r1, [r1, #0x20] + cmp r1, #0 + beq _0233DC40 + blx r1 +_0233DC40: + mov r0, #1 + bl ov08_0233DB60 + pop {r4, pc} + .align 2, 0 +_0233DC4C: .4byte 0x0233EC30 + arm_func_end ov08_0233DC04 + + arm_func_start ov08_0233DC50 +ov08_0233DC50: @ 0x0233DC50 + push {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + beq _0233DC6C + mov r0, #0xa + bl ov08_0233DB60 + pop {r3, pc} +_0233DC6C: + mov r0, #0 + bl ov08_0233DB60 + pop {r3, pc} + arm_func_end ov08_0233DC50 + + arm_func_start ov08_0233DC78 +ov08_0233DC78: @ 0x0233DC78 + ldr r1, _0233DC84 @ =0x0234AD00 + str r0, [r1, #8] + bx lr + .align 2, 0 +_0233DC84: .4byte 0x0234AD00 + arm_func_end ov08_0233DC78 + + arm_func_start ov08_0233DC88 +ov08_0233DC88: @ 0x0233DC88 + ldr r0, _0233DC94 @ =0x0233EC30 + ldr r0, [r0, #0xc] + bx lr + .align 2, 0 +_0233DC94: .4byte 0x0233EC30 + arm_func_end ov08_0233DC88 + + arm_func_start ov08_0233DC98 +ov08_0233DC98: @ 0x0233DC98 + push {r3, lr} + sub sp, sp, #8 + add r0, sp, #0 + bl FUN_0207B9EC + ldr r1, _0233DD44 @ =0x027FFC3C + ldrh r0, [sp] + ldr r2, [r1] + ldrh r1, [sp, #2] + add r0, r0, r2 + ldrh r2, [sp, #4] + add r1, r1, r0 + ldr r0, _0233DD48 @ =0x00010DCD + add r1, r2, r1 + mul r0, r1, r0 + add r0, r0, #0x39 + ldr r1, _0233DD4C @ =0x0234AC80 + add r0, r0, #0x3000 + str r0, [r1, #0x14] + mov r0, #0 + strh r0, [r1, #0xc] + mov r2, #0x65 + mov r0, #3 + strh r2, [r1, #8] + bl ov08_0233DB60 + mov r0, #1 + bl ov08_0233DD50 + cmp r0, #0x18 + bne _0233DD20 + mov r0, #0x18 + bl ov08_0233DBE0 + mov r0, #9 + bl ov08_0233DB60 + mov r0, #0 + b _0233DD3C +_0233DD20: + cmp r0, #2 + moveq r0, #1 + beq _0233DD3C + bl ov08_0233DBE0 + mov r0, #9 + bl ov08_0233DB60 + mov r0, #0 +_0233DD3C: + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_0233DD44: .4byte 0x027FFC3C +_0233DD48: .4byte 0x00010DCD +_0233DD4C: .4byte 0x0234AC80 + arm_func_end ov08_0233DC98 + + arm_func_start ov08_0233DD50 +ov08_0233DD50: @ 0x0233DD50 + push {r3, r4, lr} + sub sp, sp, #4 + mov r4, r0 + bl FUN_022BF640 + cmp r0, #0x8000 + bne _0233DD80 + mov r0, #3 + bl ov08_0233DBE0 + mov r0, #9 + bl ov08_0233DB60 + mov r0, #3 + b _0233DDF0 +_0233DD80: + cmp r0, #0 + bne _0233DDA0 + mov r0, #0x16 + bl ov08_0233DBE0 + mov r0, #9 + bl ov08_0233DB60 + mov r0, #0x18 + b _0233DDF0 +_0233DDA0: + mov r2, #1 + b _0233DDC0 +_0233DDA8: + add r1, r4, #1 + lsl r1, r1, #0x10 + lsr r4, r1, #0x10 + cmp r4, #0x10 + movhi r0, #0x18 + bhi _0233DDF0 +_0233DDC0: + sub r1, r4, #1 + tst r0, r2, lsl r1 + beq _0233DDA8 + ldr r0, _0233DDF8 @ =ov08_0233DDFC + mov ip, #0x1e + mov r3, r4 + mov r1, #3 + mov r2, #0x11 + str ip, [sp] + bl FUN_022C1610 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 +_0233DDF0: + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0233DDF8: .4byte ov08_0233DDFC + arm_func_end ov08_0233DD50 + + arm_func_start ov08_0233DDFC +ov08_0233DDFC: @ 0x0233DDFC + push {r4, lr} + mov r4, r0 + ldrh r0, [r4, #2] + cmp r0, #0 + beq _0233DE20 + bl ov08_0233DBE0 + mov r0, #9 + bl ov08_0233DB60 + pop {r4, pc} +_0233DE20: + ldr r0, _0233DEBC @ =0x0233EC30 + ldr r3, [r0, #0x24] + cmp r3, #0 + beq _0233DE40 + ldrh r1, [r4, #8] + ldrh r2, [r4, #0xa] + ldr r0, _0233DEC0 @ =0x0233EBB0 + blx r3 +_0233DE40: + ldr r0, _0233DEC4 @ =0x0234AC80 + ldrh r3, [r4, #0xa] + ldrh r1, [r0, #8] + ldrh ip, [r4, #8] + cmp r1, r3 + bls _0233DE70 + sub r1, ip, #1 + mov r2, #1 + lsl r1, r2, r1 + strh r3, [r0, #8] + strh r1, [r0, #2] + b _0233DE84 +_0233DE70: + ldrheq r3, [r0, #2] + subeq r1, ip, #1 + moveq r2, #1 + orreq r1, r3, r2, lsl r1 + strheq r1, [r0, #2] +_0233DE84: + add r0, ip, #1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl ov08_0233DD50 + cmp r0, #0x18 + bne _0233DEA8 + mov r0, #7 + bl ov08_0233DB60 + pop {r4, pc} +_0233DEA8: + cmp r0, #2 + popeq {r4, pc} + mov r0, #9 + bl ov08_0233DB60 + pop {r4, pc} + .align 2, 0 +_0233DEBC: .4byte 0x0233EC30 +_0233DEC0: .4byte 0x0233EBB0 +_0233DEC4: .4byte 0x0234AC80 + arm_func_end ov08_0233DDFC + + arm_func_start ov08_0233DEC8 +ov08_0233DEC8: @ 0x0233DEC8 + push {r3, lr} + ldr r0, _0233DFE8 @ =0x0233EC30 + ldr r0, [r0, #0xc] + cmp r0, #7 + beq _0233DEE0 + bl FUN_0207BC20 +_0233DEE0: + mov r0, #1 + bl ov08_0233DB60 + mov r3, #0 + ldr r1, _0233DFEC @ =0x0234AC80 + mov r0, r3 + ldrh r1, [r1, #2] + mov lr, r3 + mov ip, #1 +_0233DF00: + tst r1, ip, lsl lr + beq _0233DF20 + add r3, lr, #1 + add r2, r0, #1 + lsl r0, r3, #0x10 + lsl r2, r2, #0x10 + asr r3, r0, #0x10 + lsr r0, r2, #0x10 +_0233DF20: + add r2, lr, #1 + lsl r2, r2, #0x10 + asr lr, r2, #0x10 + cmp lr, #0x10 + blt _0233DF00 + cmp r0, #1 + bls _0233DFB8 + ldr ip, _0233DFEC @ =0x0234AC80 + ldr r3, _0233DFF0 @ =0x00010DCD + ldr lr, [ip, #0x14] + mov r2, #0 + mul r3, lr, r3 + add r3, r3, #0x39 + add lr, r3, #0x3000 + and r3, lr, #0xff + mul r3, r0, r3 + lsl r0, r3, #8 + str lr, [ip, #0x14] + lsr r3, r0, #0x10 + b _0233DFAC +_0233DF70: + tst r1, #1 + beq _0233DF98 + cmp r3, #0 + addeq r0, r2, #1 + lsleq r0, r0, #0x10 + asreq r3, r0, #0x10 + beq _0233DFB8 + sub r0, r3, #1 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 +_0233DF98: + add r2, r2, #1 + lsl r0, r1, #0xf + lsl r2, r2, #0x10 + lsr r1, r0, #0x10 + asr r2, r2, #0x10 +_0233DFAC: + cmp r2, #0x10 + blt _0233DF70 + mov r3, #0 +_0233DFB8: + ldr r0, _0233DFE8 @ =0x0233EC30 + ldr r1, _0233DFEC @ =0x0234AC80 + ldr r2, [r0, #0x24] + strh r3, [r1, #0xc] + cmp r2, #0 + beq _0233DFDC + ldrh r1, [r1, #0xc] + ldr r0, _0233DFF4 @ =0x0233EBCC + blx r2 +_0233DFDC: + ldr r0, _0233DFEC @ =0x0234AC80 + ldrh r0, [r0, #0xc] + pop {r3, pc} + .align 2, 0 +_0233DFE8: .4byte 0x0233EC30 +_0233DFEC: .4byte 0x0234AC80 +_0233DFF0: .4byte 0x00010DCD +_0233DFF4: .4byte 0x0233EBCC + arm_func_end ov08_0233DEC8 + + arm_func_start ov08_0233DFF8 +ov08_0233DFF8: @ 0x0233DFF8 + push {r3, lr} + ldr r0, _0233E0D4 @ =0x0233EC30 + ldrh r1, [r0] + cmp r1, #0 + movne r0, #0 + popne {r3, pc} + ldr r1, [r0, #0x18] + mov r2, #1 + cmp r1, #0 + ldreq r1, _0233E0D8 @ =0x0233E0F8 + ldr r3, _0233E0DC @ =0x0234AD00 + streq r1, [r0, #0x18] + ldr r0, _0233E0E0 @ =0x0234AC80 + mov r1, #0 + str r1, [r0, #0x10] + str r1, [r0, #0x24] + str r1, [r0, #0x18] + strh r1, [r0, #4] + strh r2, [r0] + str r1, [r0, #0x20] + str r1, [r3] + ldr r0, _0233E0E4 @ =0x0234AE00 + mov r2, #0x400 + strh r1, [r3, #4] + bl FUN_0207C40C + ldr r0, _0233E0E8 @ =0x0234AD40 + mov r1, #0 + mov r2, #0xc0 + bl FUN_0207C40C + ldr r0, _0233E0EC @ =0x0234ACD4 + mov r1, #0 + mov r2, #0x18 + bl FUN_0207C40C + ldr r1, _0233E0E0 @ =0x0234AC80 + mov r2, #0 + mov r0, #3 + str r2, [r1, #0x28] + bl ov08_0233DB60 + ldr r0, _0233E0F0 @ =0x0234BA20 + ldr r1, _0233E0F4 @ =ov08_0233E118 + mov r2, #2 + bl FUN_022BFB14 + cmp r0, #2 + moveq r0, #1 + beq _0233E0BC + bl ov08_0233DBE0 + mov r0, #0xa + bl ov08_0233DB60 + mov r0, #0 +_0233E0BC: + cmp r0, #0 + moveq r0, #0 + ldrne r1, _0233E0D4 @ =0x0233EC30 + movne r0, #1 + strhne r0, [r1] + pop {r3, pc} + .align 2, 0 +_0233E0D4: .4byte 0x0233EC30 +_0233E0D8: .4byte 0x0233E0F8 +_0233E0DC: .4byte 0x0234AD00 +_0233E0E0: .4byte 0x0234AC80 +_0233E0E4: .4byte 0x0234AE00 +_0233E0E8: .4byte 0x0234AD40 +_0233E0EC: .4byte 0x0234ACD4 +_0233E0F0: .4byte 0x0234BA20 +_0233E0F4: .4byte ov08_0233E118 + arm_func_end ov08_0233DFF8 +_0233E0F8: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xB2, 0x00, 0xD0, 0xE1 + .byte 0x08, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18, 0x09, 0x00, 0xA0, 0xE3, 0x93, 0xFE, 0xFF, 0xEB + .byte 0xC2, 0xF6, 0xF4, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov08_0233E118 +ov08_0233E118: @ 0x0233E118 + push {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + beq _0233E138 + bl ov08_0233DBE0 + mov r0, #0xa + bl ov08_0233DB60 + pop {r3, pc} +_0233E138: + ldr r0, _0233E168 @ =0x0233EC30 + ldr r0, [r0, #0x18] + bl FUN_022BF2C4 + cmp r0, #0 + beq _0233E15C + bl ov08_0233DBE0 + mov r0, #0xa + bl ov08_0233DB60 + pop {r3, pc} +_0233E15C: + mov r0, #1 + bl ov08_0233DB60 + pop {r3, pc} + .align 2, 0 +_0233E168: .4byte 0x0233EC30 + arm_func_end ov08_0233E118 + + arm_func_start ov08_0233E16C +ov08_0233E16C: @ 0x0233E16C + push {r3, lr} + ldr r0, _0233E1CC @ =0x0233EC30 + ldr r0, [r0, #0xc] + cmp r0, #5 + bne _0233E194 + ldr r0, _0233E1D0 @ =0x0234B200 + bl FUN_022C0A64 + cmp r0, #0 + beq _0233E194 + bl ov08_0233DBE0 +_0233E194: + mov r0, #3 + bl ov08_0233DB60 + ldr r0, _0233E1D4 @ =ov08_0233DC04 + bl FUN_022BFB9C + cmp r0, #2 + moveq r0, #1 + beq _0233E1B8 + bl ov08_0233DBE0 + mov r0, #0 +_0233E1B8: + cmp r0, #0 + popne {r3, pc} + mov r0, #0xa + bl ov08_0233DB60 + pop {r3, pc} + .align 2, 0 +_0233E1CC: .4byte 0x0233EC30 +_0233E1D0: .4byte 0x0234B200 +_0233E1D4: .4byte ov08_0233DC04 + arm_func_end ov08_0233E16C + + arm_func_start ov08_0233E1D8 +ov08_0233E1D8: @ 0x0233E1D8 + push {r3, lr} + ldr r0, _0233E228 @ =0x0233EC30 + ldr r0, [r0, #0xc] + cmp r0, #1 + beq _0233E1F0 + bl FUN_0207BC20 +_0233E1F0: + mov r0, #3 + bl ov08_0233DB60 + ldr r0, _0233E22C @ =ov08_0233DC50 + bl FUN_022BFBD4 + cmp r0, #2 + ldreq r0, _0233E228 @ =0x0233EC30 + moveq r1, #0 + strheq r1, [r0] + moveq r0, #1 + popeq {r3, pc} + mov r0, #9 + bl ov08_0233DB60 + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0233E228: .4byte 0x0233EC30 +_0233E22C: .4byte ov08_0233DC50 + arm_func_end ov08_0233E1D8 + + arm_func_start ov08_0233E230 +ov08_0233E230: @ 0x0233E230 + push {r3, lr} + mov r0, #0xec + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233E2B8 @ =0x0234C920 + mov r1, #0xec + str r0, [r2] + bl FUN_02003250 + mov r2, #0 + ldr r0, _0233E2B8 @ =0x0234C920 + mov r3, r2 +_0233E25C: + ldr r1, [r0] + add r1, r1, r2 + add r2, r2, #1 + strb r3, [r1, #4] + cmp r2, #4 + blt _0233E25C + ldr r0, _0233E2B8 @ =0x0234C920 + ldr r2, [r0] + add r1, r2, #4 + str r1, [r2, #0x68] + ldr r1, [r0] + str r3, [r1] + ldr r1, [r0] + strb r3, [r1, #0xe0] + ldr r1, [r0] + strb r3, [r1, #0xe1] + ldr r1, [r0] + str r3, [r1, #0xe4] + ldr r0, [r0] + str r3, [r0, #0xe8] + bl FUN_02046D20 + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0233E2B8: .4byte 0x0234C920 + arm_func_end ov08_0233E230 + + arm_func_start ov08_0233E2BC +ov08_0233E2BC: @ 0x0233E2BC + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0xc4 + ldr r0, _0233E7C8 @ =0x0234C920 + mov r6, #0 + ldr r5, [r0] + ldr r0, _0233E7CC @ =0x000004E2 + mov r7, r6 + sub r0, r0, #1 + str r0, [sp, #8] + ldr r0, _0233E7CC @ =0x000004E2 + mov sb, r6 + sub r0, r0, #4 + str r0, [sp, #4] + ldr r0, _0233E7CC @ =0x000004E2 + add r4, r5, #0xa0 + rsb sl, r0, #0x4e0 + mvn fp, #2 + b _0233E7B4 +_0233E304: + mov sb, #1 + mov r8, #0 + bl ov08_02003B5C + cmp r0, #0 + movne r7, sb + bl ov08_0233CDA4 + cmp r0, #0 + beq _0233E354 + bl ov08_0233CB38 + mov r6, r0 + cmp r7, #0 + beq _0233E398 + mov r8, #1 + bl FUN_02003BEC + cmp r0, #0 + beq _0233E398 + mov r0, r5 + mov r1, #0xb + bl ov08_0233E844 + b _0233E398 +_0233E354: + ldr r0, [r5] + sub r0, r0, #4 + cmp r0, #1 + bhi _0233E398 + bl ov08_02003B5C + cmp r0, #0 + bne _0233E37C + bl ov08_0233E874 + cmp r0, #0 + beq _0233E398 +_0233E37C: + bl ov08_02003BC8 + bl FUN_02003BEC + cmp r0, #0 + beq _0233E398 + mov r0, r5 + mov r1, #0xc + bl ov08_0233E844 +_0233E398: + bl FUN_02003BFC + bl ov08_0233CE7C + ldr r0, [r5] + cmp r0, #0xf + addls pc, pc, r0, lsl #2 + b _0233E7B4 +_0233E3B0: @ jump table + b _0233E3F0 @ case 0 + b _0233E418 @ case 1 + b _0233E434 @ case 2 + b _0233E45C @ case 3 + b _0233E490 @ case 4 + b _0233E4C8 @ case 5 + b _0233E4E8 @ case 6 + b _0233E518 @ case 7 + b _0233E544 @ case 8 + b _0233E638 @ case 9 + b _0233E674 @ case 10 + b _0233E710 @ case 11 + b _0233E74C @ case 12 + b _0233E780 @ case 13 + b _0233E6F8 @ case 14 + b _0233E79C @ case 15 +_0233E3F0: + bl ov08_0233CE14 + ldr r1, _0233E7CC @ =0x000004E2 + mov r0, #0x1c + add r1, r1, #3 + mov r2, #0 + bl FUN_02046BE8 + mov r0, r5 + mov r1, #1 + bl ov08_0233E844 + b _0233E7B4 +_0233E418: + bl FUN_02046C78 + cmp r0, #0 + beq _0233E7B4 + mov r0, r5 + mov r1, #2 + bl ov08_0233E844 + b _0233E7B4 +_0233E434: + mov r0, #0 + ldr r2, _0233E7D0 @ =0x0233EBE4 + ldr r3, [sp, #4] + mov r1, r0 + str r0, [sp] + bl FUN_02046A9C + mov r0, r5 + mov r1, #3 + bl ov08_0233E844 + b _0233E7B4 +_0233E45C: + bl FUN_02046B04 + cmp r0, sl + bne _0233E478 + mov r0, r5 + mov r1, #0xf + bl ov08_0233E844 + b _0233E7B4 +_0233E478: + cmp r0, fp + bne _0233E7B4 + mov r0, r5 + mov r1, #4 + bl ov08_0233E844 + b _0233E7B4 +_0233E490: + bl ov08_02003B94 + mov r0, #1 + bl ov08_0233CE6C + mov r0, #0 + mov r1, #0x4e0 + mov r2, r0 + bl FUN_02046BE8 + mov r0, r5 + mov r1, #5 + bl ov08_0233E844 + bl FUN_020037A4 + add r0, r0, #0x1e + str r0, [r5, #0xe8] + b _0233E7B4 +_0233E4C8: + bl FUN_020037A4 + ldr r1, [r5, #0xe8] + cmp r0, r1 + ble _0233E7B4 + mov r0, r5 + mov r1, #6 + bl ov08_0233E844 + b _0233E7B4 +_0233E4E8: + bl FUN_0200224C + ldr r1, _0233E7D4 @ =0x00003FFF + and r0, r0, r1 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + mov r0, #1 + bl ov08_0233CA80 + mov r0, r5 + mov r1, #8 + bl ov08_0233E844 + mov sb, #0 + b _0233E7B4 +_0233E518: + mov r0, #0 + mov r1, #0x4e0 + mov r2, r0 + bl FUN_02046BE8 + mov r0, #0 + strb r0, [r5, #0xe1] + mov r0, r5 + mov r1, #8 + bl ov08_0233E844 + mov sb, #0 + b _0233E7B4 +_0233E544: + bl FUN_02046C78 + bl ov08_0233E874 + cmp r0, #0 + cmpeq r8, #0 + beq _0233E5A0 + ldrb r0, [r5, #0xe1] + cmp r0, #0 + beq _0233E568 + bl ov08_0233CCF8 +_0233E568: + cmp r7, #0 + bne _0233E57C + ldrb r0, [r5, #0xe1] + cmp r0, #0 + bne _0233E58C +_0233E57C: + mov r0, r5 + mov r1, #0xb + bl ov08_0233E844 + b _0233E7B4 +_0233E58C: + ldr r1, _0233E7CC @ =0x000004E2 + mov r0, r5 + mov r2, #0 + bl ov08_0233E810 + b _0233E7B4 +_0233E5A0: + cmp r6, #1 + bne _0233E5F4 + add r0, sp, #0xc + mov r1, #0 + bl ov08_0233D90C + add r0, sp, #0x74 + bl FUN_02023690 + mov r0, r4 + add r1, sp, #0xe + mov r2, #0xa + str r4, [sp, #0xac] + bl FUN_020256FC + mov r1, #0 + strb r1, [r0] + mov r0, r1 + ldr r1, [sp, #8] + add r2, sp, #0x74 + bl FUN_02046BE8 + mov r0, #1 + strb r0, [r5, #0xe1] + b _0233E7B4 +_0233E5F4: + cmp r6, #4 + bne _0233E618 + bl FUN_020037A4 + add r0, r0, #0x78 + str r0, [r5, #0xe4] + mov r0, r5 + mov r1, #9 + bl ov08_0233E844 + b _0233E7B4 +_0233E618: + cmp r6, #2 + bne _0233E7B4 + ldr r1, _0233E7CC @ =0x000004E2 + mov r0, r5 + add r1, r1, #2 + mov r2, #0 + bl ov08_0233E810 + b _0233E7B4 +_0233E638: + bl FUN_020037A4 + ldr r1, _0233E7C8 @ =0x0234C920 + ldr r1, [r1] + ldr r1, [r1, #0xe4] + cmp r0, r1 + ble _0233E7B4 + add r0, sp, #0x24 + bl FUN_02023690 + ldr r1, _0233E7CC @ =0x000004E2 + mov r0, r5 + add r1, r1, #1 + add r2, sp, #0x24 + str r4, [sp, #0x5c] + bl ov08_0233E810 + b _0233E7B4 +_0233E674: + ldr r0, _0233E7C8 @ =0x0234C920 + mov r8, #0 + ldr r0, [r0] + ldr r0, [r0, #0xe8] + cmp r0, #0 + bne _0233E69C + bl FUN_02046C78 + cmp r0, #0 + movne r8, #1 + b _0233E6B8 +_0233E69C: + bl FUN_02046C78 + bl FUN_020037A4 + ldr r1, _0233E7C8 @ =0x0234C920 + ldr r1, [r1] + ldr r1, [r1, #0xe8] + cmp r0, r1 + movgt r8, #1 +_0233E6B8: + cmp r8, #0 + beq _0233E7B4 + ldrb r0, [r5, #0xe0] + cmp r0, #0 + beq _0233E6E8 + bl ov08_0233CB00 + mov r0, #0 + strb r0, [r5, #0xe0] + mov r0, r5 + mov r1, #7 + bl ov08_0233E844 + b _0233E7B4 +_0233E6E8: + mov r0, r5 + mov r1, #0xe + bl ov08_0233E844 + b _0233E7B4 +_0233E6F8: + cmp r6, #5 + bne _0233E7B4 + mov r0, r5 + mov r1, #0xf + bl ov08_0233E844 + b _0233E7B4 +_0233E710: + cmp r6, #5 + bne _0233E7B4 + bl ov08_0233CED0 + mov r0, #0 + str r0, [r5, #0xe8] + bl FUN_02046D20 + ldr r1, _0233E7CC @ =0x000004E2 + mov r0, #0x1c + mov r2, #0 + bl FUN_02046BE8 + mov r0, r5 + mov r1, #0xd + bl ov08_0233E844 + mov sb, #0 + b _0233E7B4 +_0233E74C: + bl ov08_0233CED0 + mov r0, #0 + str r0, [r5, #0xe8] + bl FUN_02046D20 + ldr r1, _0233E7CC @ =0x000004E2 + mov r0, #0x1c + mov r2, #0 + bl FUN_02046BE8 + mov r0, r5 + mov r1, #0xd + bl ov08_0233E844 + mov sb, #0 + b _0233E7B4 +_0233E780: + bl FUN_02046C78 + cmp r0, #0 + beq _0233E7B4 + mov r0, r5 + mov r1, #0xf + bl ov08_0233E844 + b _0233E7B4 +_0233E79C: + bl ov08_0233CED0 + bl ov08_0233CDC8 + mov r0, #0x18 + bl FUN_023310B8 + mov r0, #3 + b _0233E7C0 +_0233E7B4: + cmp sb, #0 + beq _0233E304 + mov r0, #1 +_0233E7C0: + add sp, sp, #0xc4 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0233E7C8: .4byte 0x0234C920 +_0233E7CC: .4byte 0x000004E2 +_0233E7D0: .4byte 0x0233EBE4 +_0233E7D4: .4byte 0x00003FFF + arm_func_end ov08_0233E2BC + + arm_func_start ov08_0233E7D8 +ov08_0233E7D8: @ 0x0233E7D8 + push {r3, lr} + ldr r0, _0233E80C @ =0x0234C920 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02046D20 + ldr r0, _0233E80C @ =0x0234C920 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0233E80C @ =0x0234C920 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0233E80C: .4byte 0x0234C920 + arm_func_end ov08_0233E7D8 + + arm_func_start ov08_0233E810 +ov08_0233E810: @ 0x0233E810 + push {r4, lr} + mov r4, r0 + mov r0, #0 + bl FUN_02046BE8 + mov r0, #1 + strb r0, [r4, #0xe0] + bl FUN_020037A4 + add r2, r0, #0x78 + mov r0, r4 + mov r1, #0xa + str r2, [r4, #0xe8] + bl ov08_0233E844 + pop {r4, pc} + arm_func_end ov08_0233E810 + + arm_func_start ov08_0233E844 +ov08_0233E844: @ 0x0233E844 + push {r3, r4, r5, lr} + mov r5, r0 + ldr r0, _0233E870 @ =0x0233EBFC + mov r4, r1 + bl FUN_0200C1FC + cmp r4, #0xb + str r4, [r5] + cmpne r4, #0xe + popne {r3, r4, r5, pc} + bl ov08_0233CD18 + pop {r3, r4, r5, pc} + .align 2, 0 +_0233E870: .4byte 0x0233EBFC + arm_func_end ov08_0233E844 + + arm_func_start ov08_0233E874 +ov08_0233E874: @ 0x0233E874 + push {r3, lr} + add r1, sp, #0 + mov r0, #0 + bl FUN_0200625C + ldrh r0, [sp] + cmp r0, #2 + beq _0233E89C + bl FUN_020467F0 + cmp r0, #0 + beq _0233E8A4 +_0233E89C: + mov r0, #1 + pop {r3, pc} +_0233E8A4: + mov r0, #0 + pop {r3, pc} + arm_func_end ov08_0233E874 + @ 0x0233E8AC diff --git a/asm/overlay_09.s b/asm/overlay_09.s index 6ffad7e0..10ac8b86 100644 --- a/asm/overlay_09.s +++ b/asm/overlay_09.s @@ -3,3 +3,2459 @@ .include "global.inc" .text + + arm_func_start ov09_0233CA80 +ov09_0233CA80: @ 0x0233CA80 + push {r3, r4, r5, r6, r7, r8, sb, lr} + bl FUN_02003BAC + bl FUN_02017B70 + mov r0, #0x314 + mov r1, #8 + bl FUN_02001170 + ldr r2, _0233CBB8 @ =0x0233F7E0 + mov r1, #0 + str r0, [r2] + str r1, [r0, #0x3c] + arm_func_end ov09_0233CA80 + + arm_func_start ov09_0233CAA8 +ov09_0233CAA8: @ 0x0233CAA8 + ldr r0, [r2] + sub r3, r1, #2 + strb r3, [r0] + ldr r0, [r2] + ldr r7, _0233CBBC @ =0x0233F61C + strb r3, [r0, #1] + ldr r0, [r2] + strb r3, [r0, #2] + ldr r0, [r2] + strb r3, [r0, #3] + ldr r0, [r2] + strb r3, [r0, #4] + arm_func_end ov09_0233CAA8 + + arm_func_start ov09_0233CAD8 +ov09_0233CAD8: @ 0x0233CAD8 + ldr r0, [r2] + ldr r3, _0233CBC0 @ =0x0233F664 + add r6, r0, #0x4c + add r8, r0, #0x284 + mov r2, r1 +_0233CAEC: + lsl r4, r1, #1 + add r0, r1, #0xfe + add r5, r0, #0x400 + ldrh r0, [r3, r4] + strh r5, [r6] + add r1, r1, #1 + strh r0, [r6, #2] + cmp r1, #0x8d + strb r2, [r8], #1 + arm_func_end ov09_0233CAD8 + + arm_func_start ov09_0233CB10 +ov09_0233CB10: @ 0x0233CB10 + add r6, r6, #4 + blt _0233CAEC + strh r2, [r6] + strh r2, [r6, #2] + ldr r6, _0233CBC4 @ =0x000004FD + mov r5, #0 + mov r4, #1 + ldr sb, _0233CBB8 @ =0x0233F7E0 + mvn r8, #0 + b _0233CB90 +_0233CB38: + ldr r0, [r7] + arm_func_end ov09_0233CB10 + + arm_func_start ov09_0233CB3C +ov09_0233CB3C: @ 0x0233CB3C + bl FUN_0204CA1C + cmp r0, #0 + bne _0233CB8C + ldr r2, [sb] + ldmib r7, {r0, r1} + add r3, r2, #0x4c + add r2, r2, #0x284 + cmp r0, r1 + add r3, r3, r0, lsl #2 + add r2, r2, r0 + bgt _0233CB8C + b _0233CB80 +_0233CB6C: + strh r6, [r3] + strh r5, [r3, #2] + strb r4, [r2], #1 + add r0, r0, #1 + add r3, r3, #4 +_0233CB80: + ldr r1, [r7, #8] + cmp r0, r1 + ble _0233CB6C +_0233CB8C: + add r7, r7, #0xc +_0233CB90: + ldr r0, [r7] + cmp r0, r8 + bne _0233CB38 + ldr r0, _0233CBB8 @ =0x0233F7E0 + ldr r1, [r0] + add r0, r1, #8 + add r1, r1, #0x4c + bl ov09_0233D964 + mov r0, #1 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0233CBB8: .4byte 0x0233F7E0 +_0233CBBC: .4byte 0x0233F61C +_0233CBC0: .4byte 0x0233F664 +_0233CBC4: .4byte 0x000004FD + arm_func_end ov09_0233CB3C + + arm_func_start ov09_0233CBC8 +ov09_0233CBC8: @ 0x0233CBC8 + push {r3, lr} + ldr r0, _0233CBF4 @ =0x0233F7E0 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0233CBF4 @ =0x0233F7E0 + mov r1, #0 + str r1, [r0] + bl FUN_02003BC8 + pop {r3, pc} + .align 2, 0 +_0233CBF4: .4byte 0x0233F7E0 + arm_func_end ov09_0233CBC8 +_0233CBF8: + .byte 0x38, 0x40, 0x2D, 0xE9, 0x18, 0xD0, 0x4D, 0xE2 + .byte 0x01, 0xDA, 0x4D, 0xE2, 0x1C, 0x0D, 0x9F, 0xE5, 0x00, 0x30, 0x90, 0xE5, 0x3C, 0x00, 0x93, 0xE5 + .byte 0x0D, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x3E, 0x03, 0x00, 0xEA, 0x0C, 0x00, 0x00, 0xEA + .byte 0x1C, 0x00, 0x00, 0xEA, 0x34, 0x00, 0x00, 0xEA, 0x41, 0x00, 0x00, 0xEA, 0x91, 0x00, 0x00, 0xEA + .byte 0xDC, 0x00, 0x00, 0xEA, 0xEF, 0x00, 0x00, 0xEA, 0x22, 0x01, 0x00, 0xEA, 0x8F, 0x01, 0x00, 0xEA + .byte 0x49, 0x02, 0x00, 0xEA, 0x5C, 0x02, 0x00, 0xEA, 0xC8, 0x02, 0x00, 0xEA, 0xD6, 0x02, 0x00, 0xEA + .byte 0x27, 0x03, 0x00, 0xEA, 0x3C, 0xC7, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x2D, 0x03, 0x00, 0x1A + .byte 0x86, 0x06, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x2A, 0x03, 0x00, 0x1A, 0x1E, 0x00, 0xA0, 0xE3 + .byte 0x54, 0x06, 0xFE, 0xEB, 0x61, 0xD0, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x00, 0x1A + .byte 0x49, 0xC8, 0xFF, 0xEB, 0x9C, 0x0C, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x3C, 0x10, 0x80, 0xE5, 0x1F, 0x03, 0x00, 0xEA, 0x2B, 0xC7, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x1C, 0x03, 0x00, 0x1A, 0x75, 0x06, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x19, 0x03, 0x00, 0x1A + .byte 0x00, 0x10, 0xA0, 0xE3, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0x68, 0x0C, 0x9F, 0xE5 + .byte 0x01, 0x20, 0xA0, 0xE1, 0x01, 0x30, 0xA0, 0xE1, 0x04, 0x10, 0x8D, 0xE5, 0xE3, 0x54, 0xF4, 0xEB + .byte 0x1E, 0x00, 0xA0, 0xE3, 0x28, 0x06, 0xFE, 0xEB, 0x48, 0xD0, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x00, 0x00, 0x00, 0x1A, 0x49, 0xCD, 0xFF, 0xEB, 0x38, 0x0C, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x3C, 0x10, 0x80, 0xE5, 0x06, 0x03, 0x00, 0xEA, 0x12, 0xC7, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x03, 0x03, 0x00, 0x1A, 0x5C, 0x06, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x00, 0x03, 0x00, 0x1A, 0x0C, 0x0C, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x3C, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x48, 0x10, 0x80, 0xE5 + .byte 0xF8, 0x02, 0x00, 0xEA, 0xD2, 0x00, 0xD3, 0xE1, 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1 + .byte 0x0A, 0x00, 0x00, 0x0A, 0xEC, 0x07, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xF1, 0x02, 0x00, 0x1A + .byte 0xD0, 0x0B, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0xBD, 0x07, 0x00, 0xEB + .byte 0xC0, 0x0B, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x02, 0x10, 0xC0, 0xE5 + .byte 0xB0, 0x0B, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD3, 0x00, 0xD0, 0xE1 + .byte 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x0A, 0xFC, 0xC8, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0xE0, 0x02, 0x00, 0x1A, 0x8C, 0x0B, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD3, 0x00, 0xD0, 0xE1 + .byte 0xE8, 0xC8, 0xF3, 0xEB, 0x7C, 0x0B, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x03, 0x10, 0xC0, 0xE5, 0x6C, 0x0B, 0x9F, 0xE5, 0x00, 0x50, 0x90, 0xE5, 0x48, 0x00, 0x95, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x40, 0xC2 + + arm_func_start ov09_0233CDC8 +ov09_0233CDC8: @ 0x0233CDC8 + strgt r0, [r5, #0x48] + bgt _0233D918 + add r3, sp, #0xf00 + ldr r4, _0233D930 @ =0x000004EF + arm_func_end ov09_0233CDC8 + + arm_func_start ov09_0233CDD8 +ov09_0233CDD8: @ 0x0233CDD8 + add r3, r3, #8 + strh r4, [r3, #0x80] + add ip, r5, #0x284 + arm_func_end ov09_0233CDD8 + + arm_func_start ov09_0233CDE4 +ov09_0233CDE4: @ 0x0233CDE4 + mov lr, #0x10 + str ip, [sp, #0xfe0] + ldr r0, _0233D934 @ =0x0233F58C + ldr r1, _0233D938 @ =0x00401A13 + add r2, sp, #0xf80 + str lr, [sp, #0xf8c] + mov ip, #6 + add r3, r5, #8 + str ip, [sp] + bl ov09_0233E030 + ldr r1, _0233D928 @ =0x0233F7E0 + ldr r2, [r1] + strb r0, [r2] + ldr r1, [r1] + ldrb r0, [r1, #0x1c] + cmp r0, #0 + mvneq r0, #0 + streq r0, [r1, #0x14] + ldr r0, _0233D93C @ =0x0233F59C + bl FUN_0202F0B0 + ldr r3, _0233D928 @ =0x0233F7E0 + ldr r1, _0233D940 @ =0x00000404 + ldr ip, [r3] + add r2, r1, #0xed + strb r0, [ip, #1] + ldr r0, [r3] + mov r3, #0 + ldrsb r0, [r0, #1] + bl FUN_0202F1B4 + ldr r0, _0233D928 @ =0x0233F7E0 + mov r3, #0 + ldr r2, [r0] + mov r1, #4 + strb r3, [r2, #0x44] + ldr r0, [r0] + str r1, [r0, #0x3c] + b _0233D918 +_0233CE78: + .byte 0x44, 0x00, 0xD3, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x30, 0x00, 0x93, 0xE5, 0x0B, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x50, 0xE3, 0x14, 0x00, 0x00, 0xCA + .byte 0xA8, 0x1A, 0x9F, 0xE5, 0xD1, 0x00, 0xD3, 0xE1, 0xED, 0x20, 0x81, 0xE2, 0x00, 0x30, 0xA0, 0xE3 + .byte 0xC3, 0xC8, 0xF3, 0xEB, 0x7C, 0x0A, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x44, 0x10, 0xC0, 0xE5, 0x0A, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0xDA + .byte 0x78, 0x1A, 0x9F, 0xE5, 0xD1, 0x00, 0xD3, 0xE1, 0xEE, 0x20, 0x81, 0xE2, 0x00, 0x30, 0xA0, 0xE3 + .byte 0xB7, 0xC8, 0xF3, 0xEB, 0x4C, 0x0A, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x44, 0x10, 0xC0, 0xE5, 0x3C, 0x0A, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1 + .byte 0x23, 0x05, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x1B, 0x00, 0x00, 0x1A, 0x24, 0x0A, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0x25, 0x05, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x11, 0x00, 0x00, 0xBA, 0x0C, 0x0A, 0x9F, 0xE5, 0x00, 0x30, 0x90, 0xE5, 0x10, 0x20, 0x93, 0xE5 + .byte 0x14, 0x10, 0x93, 0xE5, 0x02, 0x00, 0x51, 0xE1, 0x03, 0x00, 0x00, 0x0A, 0x14, 0x20, 0x83, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x80, 0xE2, 0xAE, 0x02, 0x00, 0xEB, 0xE4, 0x09, 0x9F, 0xE5 + .byte 0x07, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x0A, 0x10, 0xA0, 0xE3, 0x3C, 0x30, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x48, 0x10, 0x80, 0xE5, 0x03, 0x00, 0x00, 0xEA, 0xC4, 0x09, 0x9F, 0xE5 + .byte 0x0B, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x3C, 0x10, 0x80, 0xE5, 0xB4, 0x09, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x1D, 0x00, 0xD1, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x65, 0x02, 0x00, 0x0A + .byte 0xD0, 0x00, 0xD1, 0xE1, 0xDF, 0x04, 0x00, 0xEB, 0x98, 0x09, 0x9F, 0xE5, 0x05, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x90, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x3C, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x48, 0x10, 0x80, 0xE5, 0x5B, 0x02, 0x00, 0xEA, 0x48, 0x00, 0x93, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x01, 0x00, 0x40, 0xC2, 0x48, 0x00, 0x83, 0xC5, 0x56, 0x02, 0x00, 0xCA, 0x80, 0xC9, 0x9F, 0xE5 + .byte 0x0E, 0x2C, 0x8D, 0xE2, 0x7C, 0x09, 0x9F, 0xE5, 0xE8, 0x20, 0x82, 0xE2, 0x08, 0x30, 0x83, 0xE2 + .byte 0x13, 0x10, 0xA0, 0xE3, 0x00, 0xC0, 0x8D, 0xE5, 0x8C, 0x08, 0x00, 0xEB, 0x44, 0x19, 0x9F, 0xE5 + .byte 0x06, 0x20, 0xA0, 0xE3, 0x00, 0x30, 0x91, 0xE5, 0x04, 0x00, 0xC3, 0xE5, 0x00, 0x00, 0x91, 0xE5 + .byte 0x3C, 0x20, 0x80, 0xE5, 0x47, 0x02, 0x00, 0xEA, 0xD4, 0x00, 0xD3, 0xE1, 0xF6, 0x08, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x11, 0x00, 0x00, 0x1A, 0x18, 0x09, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x10, 0x90, 0xE5, 0x04, 0x20, 0xA0, 0xE3, 0x1D, 0x30, 0xC1, 0xE5, 0x00, 0x10, 0x90, 0xE5 + .byte 0x3C, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD4, 0x00, 0xD0, 0xE1, 0xE3, 0x08, 0x00, 0xEB + .byte 0xF0, 0x08, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x04, 0x20, 0xC1, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0xA1, 0x04, 0x00, 0xEB, 0x31, 0x02, 0x00, 0xEA + .byte 0xD0, 0x08, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x44, 0x00, 0xD2, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x30, 0x00, 0x92, 0xE5, 0x0B, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x50, 0xE3, 0x29, 0x02, 0x00, 0xCA + .byte 0xC8, 0x18, 0x9F, 0xE5, 0xD1, 0x00, 0xD2, 0xE1, 0xED, 0x20, 0x81, 0xE2, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x4B, 0xC8, 0xF3, 0xEB, 0x9C, 0x08, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x44, 0x10, 0xC0, 0xE5, 0x1F, 0x02, 0x00, 0xEA, 0x00, 0x00, 0x50, 0xE3, 0x1D, 0x02, 0x00, 0xDA + .byte 0x98, 0x18, 0x9F, 0xE5, 0xD1, 0x00, 0xD2, 0xE1, 0xEE, 0x20, 0x81, 0xE2, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x3F, 0xC8, 0xF3, 0xEB, 0x6C, 0x08, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x44, 0x10, 0xC0, 0xE5, 0x13, 0x02, 0x00, 0xEA, 0xD0, 0x00, 0xD3, 0xE1, 0x01, 0x10, 0xE0, 0xE3 + .byte 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x0A, 0xA9, 0x04, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x0C, 0x02, 0x00, 0x1A, 0x3C, 0x08, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1 + .byte 0x95, 0x04, 0x00, 0xEB, 0x2C, 0x08, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x00, 0x10, 0xC0, 0xE5, 0x1C, 0x08, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD1, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x0A, 0x17, 0xC8, 0xF3, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0xFB, 0x01, 0x00, 0x1A, 0xF8, 0x07, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD1, 0x00, 0xD0, 0xE1, 0x03, 0xC8, 0xF3, 0xEB, 0xE8, 0x07, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x01, 0x10, 0xC0, 0xE5, 0xD8, 0x07, 0x9F, 0xE5, 0x00, 0x30, 0x90, 0xE5 + .byte 0x48, 0x00, 0x93, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x40, 0xC2, 0x48, 0x00, 0x83, 0xC5 + .byte 0xEC, 0x01, 0x00, 0xCA, 0x00, 0x00, 0xA0, 0xE3, 0xDC, 0x17, 0x9F, 0xE5, 0x50, 0x0E, 0x8D, 0xE5 + .byte 0x00, 0x10, 0x8D, 0xE5, 0xD4, 0xC7, 0x9F, 0xE5, 0xD4, 0x17, 0x9F, 0xE5, 0xE5, 0x2E, 0x8D, 0xE2 + .byte 0x08, 0x30, 0x83, 0xE2, 0x04, 0xC0, 0x8D, 0xE5, 0xE2, 0x05, 0x00, 0xEB, 0x94, 0x17, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x91, 0xE5, 0x02, 0x00, 0xC1, 0xE5, 0x00, 0x00, 0xA0, 0xE3, 0xC3, 0xC7, 0xF3, 0xEB + .byte 0x80, 0x17, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5, 0x03, 0x00, 0xC2, 0xE5, 0x00, 0x30, 0x91, 0xE5 + .byte 0x88, 0x00, 0x8D, 0xE2, 0x14, 0x20, 0x93, 0xE5, 0x40, 0x20, 0x83, 0xE5, 0x00, 0x20, 0x91, 0xE5 + .byte 0x40, 0x10, 0x92, 0xE5, 0x01, 0x11, 0x82, 0xE0, 0xBC, 0x14, 0xD1, 0xE1, 0xB9, 0xA1, 0xF3, 0xEB + .byte 0x0E, 0x0C, 0x8D, 0xE2, 0x2D, 0x99, 0xF3, 0xEB, 0x48, 0x07, 0x9F, 0xE5, 0x88, 0x30, 0x8D, 0xE2 + .byte 0x00, 0xE0, 0x90, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x40, 0xC0, 0x9E, 0xE5, 0x4C, 0x17, 0x9F, 0xE5 + .byte 0x38, 0x3E, 0x8D, 0xE5, 0x01, 0x30, 0x8C, 0xE2, 0x24, 0x3E, 0x8D, 0xE5, 0x38, 0x20, 0x8E, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0xF6, 0x20, 0x81, 0xE2, 0xD3, 0x00, 0xD0, 0xE1, 0x0E, 0x3C, 0x8D, 0xE2 + .byte 0xE7, 0xC7, 0xF3, 0xEB, 0x0E, 0x1C, 0x8D, 0xE2, 0x00, 0x10, 0x8D, 0xE5, 0x34, 0x27, 0x9F, 0xE5 + .byte 0x34, 0x37, 0x9F, 0xE5, 0x0A, 0x0C, 0x8D, 0xE2, 0x01, 0x1C, 0xA0, 0xE3, 0xE1, 0x98, 0xF3, 0xEB + .byte 0x0A, 0x0C, 0x8D, 0xE2, 0x03, 0x00, 0x00, 0xEA, 0x5D, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x80, 0x02 + .byte 0x03, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x80, 0xE2, 0x00, 0x10, 0xD0, 0xE5, 0x00, 0x00, 0x51, 0xE3 + .byte 0xF8, 0xFF, 0xFF, 0x1A, 0xD3, 0xA4, 0xF3, 0xEB, 0xC8, 0x16, 0x9F, 0xE5, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x00, 0xC0, 0x91, 0xE5, 0x08, 0x20, 0xA0, 0xE3, 0x38, 0x00, 0x8C, 0xE5, 0x00, 0x00, 0x91, 0xE5 + .byte 0x44, 0x30, 0xC0, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x3C, 0x20, 0x80, 0xE5, 0xA5, 0x01, 0x00, 0xEA + .byte 0xD2, 0x00, 0xD3, 0xE1, 0x9C, 0x06, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x55, 0x00, 0x00, 0x1A + .byte 0x90, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x9E, 0x06, 0x00, 0xEB + .byte 0x07, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x46, 0x00, 0x00, 0xEA, 0x45, 0x00, 0x00, 0xEA + .byte 0x44, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x00, 0xEA, 0x14, 0x00, 0x00, 0xEA + .byte 0x1C, 0x00, 0x00, 0xEA, 0x24, 0x00, 0x00, 0xEA, 0x35, 0x00, 0x00, 0xEA, 0x54, 0x06, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x80, 0xE2, 0xC6, 0x01, 0x00, 0xEB, 0x44, 0x06, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x4C, 0x06, 0x00, 0xEB, 0x89, 0x01, 0x00, 0xEA + .byte 0x30, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x80, 0xE2, 0xD2, 0x01, 0x00, 0xEB + .byte 0x20, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x43, 0x06, 0x00, 0xEB + .byte 0x80, 0x01, 0x00, 0xEA, 0x0C, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x80, 0xE2 + .byte 0xD2, 0x01, 0x00, 0xEB, 0xFC, 0x05, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1 + .byte 0x3A, 0x06, 0x00, 0xEB, 0x77, 0x01, 0x00, 0xEA, 0xE8, 0x05, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x08, 0x00, 0x80, 0xE2, 0xE1, 0x01, 0x00, 0xEB, 0xD8, 0x05, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD2, 0x00, 0xD0, 0xE1, 0x31, 0x06, 0x00, 0xEB, 0x6E, 0x01, 0x00, 0xEA, 0xC4, 0x05, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x80, 0xE2, 0xF9, 0x01, 0x00, 0xEB, 0xB4, 0x05, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x90, 0xE5, 0x1D, 0x10, 0xD2, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x05, 0x00, 0x00, 0x0A + .byte 0x09, 0x10, 0xA0, 0xE3, 0x3C, 0x10, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0xA0, 0xE3 + .byte 0x48, 0x10, 0x80, 0xE5, 0x5F, 0x01, 0x00, 0xEA, 0xD2, 0x00, 0xD2, 0xE1, 0x1F, 0x06, 0x00, 0xEB + .byte 0x5C, 0x01, 0x00, 0xEA, 0x7C, 0x05, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x80, 0xE2 + .byte 0xED, 0x01, 0x00, 0xEB, 0x6C, 0x05, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1 + .byte 0x16, 0x06, 0x00, 0xEB, 0x53, 0x01, 0x00, 0xEA, 0x58, 0x05, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x90, 0xE5, 0x0A, 0x10, 0xA0, 0xE3, 0x3C, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x48, 0x10, 0x80, 0xE5, 0x4B, 0x01, 0x00, 0xEA, 0x38, 0x05, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5 + .byte 0x1D, 0x10, 0xD2, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x09, 0x00, 0x00, 0x0A, 0xD2, 0x00, 0xD2, 0xE1 + .byte 0x24, 0x06, 0x00, 0xEB, 0x1C, 0x05, 0x9F, 0xE5, 0x09, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x3C, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x48, 0x10, 0x80, 0xE5 + .byte 0x3C, 0x01, 0x00, 0xEA, 0x44, 0x10, 0xD2, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x30, 0x10, 0x92, 0xE5 + .byte 0x07, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x51, 0xE3, 0x15, 0x00, 0x00, 0xCA, 0x00, 0x10, 0xE0, 0xE3 + .byte 0x40, 0x10, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x44, 0x10, 0xC0, 0xE5 + .byte 0x0F, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x51, 0xE3, 0x0D, 0x00, 0x00, 0xDA, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x38, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x14, 0x9F, 0xE5, 0xD3, 0x00, 0xD0, 0xE1 + .byte 0xF7, 0x20, 0x81, 0xE2, 0x4E, 0xC7, 0xF3, 0xEB, 0xA8, 0x04, 0x9F, 0xE5, 0x00, 0x30, 0xE0, 0xE3 + .byte 0x00, 0x20, 0x90, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x40, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x44, 0x10, 0xC0, 0xE5, 0x8C, 0x04, 0x9F, 0xE5, 0x00, 0x30, 0x90, 0xE5, 0x44, 0x10, 0xD3, 0xE5 + .byte 0x00, 0x00, 0x51, 0xE3, 0x1B, 0x01, 0x00, 0x1A, 0x14, 0x20, 0x93, 0xE5, 0x40, 0x10, 0x93, 0xE5 + .byte 0x02, 0x00, 0x51, 0xE1, 0x17, 0x01, 0x00, 0x0A, 0x40, 0x20, 0x83, 0xE5, 0x00, 0x20, 0x90, 0xE5 + .byte 0x48, 0x00, 0x8D, 0xE2, 0x40, 0x10, 0x92, 0xE5, 0x01, 0x11, 0x82, 0xE0, 0xBC, 0x14, 0xD1, 0xE1 + .byte 0xF8, 0xA0, 0xF3, 0xEB, 0x9B, 0x0E, 0x8D, 0xE2, 0x6C, 0x98, 0xF3, 0xEB, 0x44, 0x04, 0x9F, 0xE5 + .byte 0x48, 0x30, 0x8D, 0xE2, 0x00, 0xE0, 0x90, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x40, 0xC0, 0x9E, 0xE5 + .byte 0x48, 0x14, 0x9F, 0xE5, 0xE8, 0x39, 0x8D, 0xE5, 0x01, 0x30, 0x8C, 0xE2, 0xD4, 0x39, 0x8D, 0xE5 + .byte 0x38, 0x20, 0x8E, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x9B, 0x3E, 0x8D, 0xE2, 0xD3, 0x00, 0xD0, 0xE1 + .byte 0xF6, 0x20, 0x81, 0xE2, 0x26, 0xC7, 0xF3, 0xEB, 0x9B, 0x1E, 0x8D, 0xE2, 0x00, 0x10, 0x8D, 0xE5 + .byte 0x30, 0x24, 0x9F, 0xE5, 0x30, 0x34, 0x9F, 0xE5, 0x5B, 0x0E, 0x8D, 0xE2, 0x01, 0x1C, 0xA0, 0xE3 + .byte 0x20, 0x98, 0xF3, 0xEB, 0x5B, 0x0E, 0x8D, 0xE2, 0x03, 0x00, 0x00, 0xEA, 0x5D, 0x00, 0x51, 0xE3 + .byte 0x01, 0x00, 0x80, 0x02, 0x03, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x80, 0xE2, 0x00, 0x10, 0xD0, 0xE5 + .byte 0x00, 0x00, 0x51, 0xE3, 0xF8, 0xFF, 0xFF, 0x1A, 0x12, 0xA4, 0xF3, 0xEB, 0xC4, 0x13, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x91, 0xE5, 0x38, 0x00, 0x81, 0xE5, 0xEA, 0x00, 0x00, 0xEA, 0x48, 0x00, 0x93, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x40, 0xC2, 0x48, 0x00, 0x83, 0xC5, 0xE5, 0x00, 0x00, 0xCA + .byte 0xBC, 0xC3, 0x9F, 0xE5, 0x05, 0x2C, 0x8D, 0xE2, 0xD0, 0x03, 0x9F, 0xE5, 0x18, 0x20, 0x82, 0xE2 + .byte 0x08, 0x30, 0x83, 0xE2, 0x13, 0x10, 0xA0, 0xE3, 0x00, 0xC0, 0x8D, 0xE5, 0x1B, 0x07, 0x00, 0xEB + .byte 0x80, 0x13, 0x9F, 0xE5, 0x0A, 0x20, 0xA0, 0xE3, 0x00, 0x30, 0x91, 0xE5, 0x04, 0x00, 0xC3, 0xE5 + .byte 0x00, 0x00, 0x91, 0xE5, 0x3C, 0x20, 0x80, 0xE5, 0xD6, 0x00, 0x00, 0xEA, 0xD4, 0x00, 0xD3, 0xE1 + .byte 0x85, 0x07, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x11, 0x00, 0x00, 0x1A, 0x54, 0x03, 0x9F, 0xE5 + .byte 0x00, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x08, 0x20, 0xA0, 0xE3, 0x1D, 0x30, 0xC1, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x3C, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD4, 0x00, 0xD0, 0xE1 + .byte 0x72, 0x07, 0x00, 0xEB, 0x2C, 0x03, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5 + .byte 0x04, 0x20, 0xC1, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x83, 0x05, 0x00, 0xEB + .byte 0xC0, 0x00, 0x00, 0xEA, 0x0C, 0x03, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x44, 0x10, 0xD2, 0xE5 + .byte 0x00, 0x00, 0x51, 0xE3, 0x30, 0x10, 0x92, 0xE5, 0x07, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x51, 0xE3 + .byte 0x15, 0x00, 0x00, 0xCA, 0x00, 0x10, 0xE0, 0xE3, 0x40, 0x10, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x44, 0x10, 0xC0, 0xE5, 0x0F, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x51, 0xE3 + .byte 0x0D, 0x00, 0x00, 0xDA, 0x00, 0x30, 0xA0, 0xE3, 0x38, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD8, 0x12, 0x9F, 0xE5, 0xD3, 0x00, 0xD0, 0xE1, 0xF7, 0x20, 0x81, 0xE2, 0xD0, 0xC6, 0xF3, 0xEB + .byte 0xB0, 0x02, 0x9F, 0xE5, 0x00, 0x30, 0xE0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x01, 0x10, 0xA0, 0xE3 + .byte 0x40, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x44, 0x10, 0xC0, 0xE5, 0x94, 0x02, 0x9F, 0xE5 + .byte 0x00, 0x30, 0x90, 0xE5, 0x44, 0x10, 0xD3, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0x9D, 0x00, 0x00, 0x1A + .byte 0x14, 0x20, 0x93, 0xE5, 0x40, 0x10, 0x93, 0xE5, 0x02, 0x00, 0x51, 0xE1, 0x99, 0x00, 0x00, 0x0A + .byte 0x40, 0x20, 0x83, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x08, 0x00, 0x8D, 0xE2, 0x40, 0x10, 0x92, 0xE5 + .byte 0x01, 0x11, 0x82, 0xE0, 0xBC, 0x14, 0xD1, 0xE1, 0x7A, 0xA0, 0xF3, 0xEB, 0x01, 0x0B, 0x8D, 0xE2 + .byte 0xC8, 0x00, 0x80, 0xE2, 0xED, 0x97, 0xF3, 0xEB, 0x48, 0x02, 0x9F, 0xE5, 0x08, 0x30, 0x8D, 0xE2 + .byte 0x00, 0xE0, 0x90, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x40, 0xC0, 0x9E, 0xE5, 0x4C, 0x12, 0x9F, 0xE5 + .byte 0x00, 0x35, 0x8D, 0xE5, 0x01, 0x30, 0x8C, 0xE2, 0xEC, 0x34, 0x8D, 0xE5, 0x38, 0x20, 0x8E, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x01, 0x3B, 0x8D, 0xE2, 0xD3, 0x00, 0xD0, 0xE1, 0xC8, 0x30, 0x83, 0xE2 + .byte 0xF6, 0x20, 0x81, 0xE2, 0xA6, 0xC6, 0xF3, 0xEB, 0x01, 0x1B, 0x8D, 0xE2, 0xC8, 0x10, 0x81, 0xE2 + .byte 0x00, 0x10, 0x8D, 0xE5, 0x2C, 0x22, 0x9F, 0xE5, 0x2C, 0x32, 0x9F, 0xE5, 0xC8, 0x00, 0x8D, 0xE2 + .byte 0x01, 0x1C, 0xA0, 0xE3, 0x9F, 0x97, 0xF3, 0xEB, 0xC8, 0x00, 0x8D, 0xE2, 0x03, 0x00, 0x00, 0xEA + .byte 0x5D, 0x00, 0x51, 0xE3, 0x01, 0x00, 0x80, 0x02, 0x03, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x80, 0xE2 + .byte 0x00, 0x10, 0xD0, 0xE5, 0x00, 0x00, 0x51, 0xE3, 0xF8, 0xFF, 0xFF, 0x1A, 0x91, 0xA3, 0xF3, 0xEB + .byte 0xC0, 0x11, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x38, 0x00, 0x81, 0xE5, 0x69, 0x00, 0x00, 0xEA + .byte 0x75, 0xC4, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x66, 0x00, 0x00, 0x1A, 0xBF, 0x03, 0xFE, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x63, 0x00, 0x00, 0x1A, 0x1E, 0x00, 0xA0, 0xE3, 0x8D, 0x03, 0xFE, 0xEB + .byte 0x85, 0xC5, 0xFF, 0xEB, 0xF5, 0x68, 0xF3, 0xEB, 0x88, 0x01, 0x9F, 0xE5, 0x0C, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x3C, 0x10, 0x80, 0xE5, 0x5A, 0x00, 0x00, 0xEA, 0x66, 0xC4, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x57, 0x00, 0x00, 0x1A, 0xB0, 0x03, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x54, 0x00, 0x00, 0x1A, 0x5C, 0x01, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD0, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x0A, 0xE8, 0x02, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x4B, 0x00, 0x00, 0x1A, 0x38, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD0, 0x00, 0xD0, 0xE1, 0xD4, 0x02, 0x00, 0xEB, 0x28, 0x01, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0xC0, 0xE5, 0x18, 0x01, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x0A + .byte 0x56, 0xC6, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x3A, 0x00, 0x00, 0x1A, 0xF4, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x00, 0xD0, 0xE1, 0x42, 0xC6, 0xF3, 0xEB, 0xE4, 0x00, 0x9F, 0xE5 + .byte 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x10, 0xC0, 0xE5, 0xD4, 0x00, 0x9F, 0xE5 + .byte 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1 + .byte 0x0A, 0x00, 0x00, 0x0A, 0x24, 0x05, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x29, 0x00, 0x00, 0x1A + .byte 0xB0, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x00, 0xD0, 0xE1, 0xF5, 0x04, 0x00, 0xEB + .byte 0xA0, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x02, 0x10, 0xC0, 0xE5 + .byte 0x90, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD3, 0x00, 0xD0, 0xE1 + .byte 0x01, 0x00, 0x50, 0xE1, 0x0A, 0x00, 0x00, 0x0A, 0x34, 0xC6, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x18, 0x00, 0x00, 0x1A, 0x6C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD3, 0x00, 0xD0, 0xE1 + .byte 0x20, 0xC6, 0xF3, 0xEB, 0x5C, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x03, 0x10, 0xC0, 0xE5, 0xFD, 0x03, 0xFE, 0xEB, 0x1E, 0x00, 0xA0, 0xE3, 0x26, 0x03, 0xFE, 0xEB + .byte 0x40, 0x00, 0x9F, 0xE5, 0x0D, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x3C, 0x10, 0x80, 0xE5 + .byte 0x08, 0x00, 0x00, 0xEA, 0x61, 0x03, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x1A + .byte 0x02, 0x00, 0xA0, 0xE3, 0x93, 0x68, 0xF3, 0xEB, 0x14, 0x00, 0xA0, 0xE3, 0xE9, 0xCD, 0xFF, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA +_0233D918: + mov r0, #1 + add sp, sp, #0x18 + add sp, sp, #0x1000 + pop {r3, r4, r5, pc} + .align 2, 0 +_0233D928: .4byte 0x0233F7E0 +_0233D92C: + .byte 0x80, 0xF7, 0x33, 0x02 +_0233D930: .4byte 0x000004EF +_0233D934: .4byte 0x0233F58C +_0233D938: .4byte 0x00401A13 +_0233D93C: .4byte 0x0233F59C +_0233D940: .4byte 0x00000404 + arm_func_end ov09_0233CDE4 +_0233D944: + .byte 0xFC, 0x04, 0x00, 0x00, 0x6C, 0xF5, 0x33, 0x02, 0xAC, 0xF5, 0x33, 0x02 + .byte 0xE4, 0xF5, 0x33, 0x02, 0x33, 0x00, 0x40, 0x00, 0xFA, 0x04, 0x00, 0x00, 0x02, 0xC4, 0x00, 0x00 + .byte 0x7C, 0xF5, 0x33, 0x02 + + arm_func_start ov09_0233D964 +ov09_0233D964: @ 0x0233D964 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + str r4, [r5] + mvn r2, #0 + str r2, [r5, #8] + str r2, [r5, #0xc] + mov r1, #0 + strh r1, [r5, #0x10] + strh r1, [r5, #0x12] + strb r1, [r5, #0x14] + strb r1, [r5, #0x15] + strb r1, [r5, #0x16] + str r2, [r5, #0x20] + str r2, [r5, #0x24] + bl ov09_0233D9DC + cmp r4, #0 + beq _0233D9D0 + mov r1, #0 + b _0233D9BC +_0233D9B4: + add r4, r4, #4 + add r1, r1, #1 +_0233D9BC: + ldrh r0, [r4] + cmp r0, #0 + bne _0233D9B4 + str r1, [r5, #4] + pop {r3, r4, r5, pc} +_0233D9D0: + mov r0, #0 + str r0, [r5, #4] + pop {r3, r4, r5, pc} + arm_func_end ov09_0233D964 + + arm_func_start ov09_0233D9DC +ov09_0233D9DC: @ 0x0233D9DC + mov r1, #0 + str r1, [r0, #0x18] + str r1, [r0, #0x1c] + str r1, [r0, #0x2c] + str r1, [r0, #0x28] + str r1, [r0, #0x30] + bx lr + arm_func_end ov09_0233D9DC + + arm_func_start ov09_0233D9F8 +ov09_0233D9F8: @ 0x0233D9F8 + push {r4, lr} + mov r4, r0 + ldr r1, [r4, #0xc] + mvn r0, #0 + cmp r1, r0 + ldreq r0, [r4, #8] + streq r0, [r4, #0xc] + ldr r1, [r4] + ldr r0, [r4, #0xc] + add r0, r1, r0, lsl #2 + ldrh r0, [r0, #2] + cmp r0, #0 + popeq {r4, pc} + bl FUN_02017B58 + mov r1, #1 + mov r0, #0 + strb r1, [r4, #0x14] + str r0, [r4, #0x20] + sub r0, r0, #1 + str r0, [r4, #0x24] + pop {r4, pc} + arm_func_end ov09_0233D9F8 + + arm_func_start ov09_0233DA4C +ov09_0233DA4C: @ 0x0233DA4C + push {r4, lr} + mov r4, r0 + bl FUN_02017B70 + mov r0, #0 + strb r0, [r4, #0x14] + sub r0, r0, #1 + str r0, [r4, #0x20] + str r0, [r4, #0x24] + pop {r4, pc} + arm_func_end ov09_0233DA4C + + arm_func_start ov09_0233DA70 +ov09_0233DA70: @ 0x0233DA70 + push {r3, lr} + ldr r3, [r0, #0xc] + mvn r1, #0 + cmp r3, r1 + popeq {r3, pc} + mov r2, #0 +_0233DA88: + ldr r1, [r0, #4] + sub r1, r1, #1 + cmp r3, r1 + strge r2, [r0, #0xc] + ldrlt r1, [r0, #0xc] + addlt r1, r1, #1 + strlt r1, [r0, #0xc] + ldr r3, [r0, #0xc] + ldr r1, [r0] + add r1, r1, r3, lsl #2 + ldrh r1, [r1, #2] + cmp r1, #0 + beq _0233DA88 + ldrb r1, [r0, #0x14] + cmp r1, #0 + popeq {r3, pc} + bl ov09_0233D9F8 + pop {r3, pc} + arm_func_end ov09_0233DA70 + + arm_func_start ov09_0233DAD0 +ov09_0233DAD0: @ 0x0233DAD0 + push {r4, lr} + mov r4, r0 + ldr r2, [r4, #0xc] + mvn r1, #0 + cmp r2, r1 + popeq {r4, pc} + ldrb r1, [r4, #0x14] + cmp r1, #0 + beq _0233DB10 + ldr r1, [r4, #0x20] + cmp r1, #0xb4 + ble _0233DB10 + bl ov09_0233DA4C + mov r0, r4 + bl ov09_0233D9F8 + pop {r4, pc} +_0233DB10: + cmp r2, #0 + ldrle r0, [r4, #4] + ldrgt r0, [r4, #0xc] + sub r0, r0, #1 + str r0, [r4, #0xc] + ldr r2, [r4, #0xc] + ldr r0, [r4] + add r0, r0, r2, lsl #2 + ldrh r0, [r0, #2] + cmp r0, #0 + beq _0233DB10 + ldrb r0, [r4, #0x14] + cmp r0, #0 + popeq {r4, pc} + mov r0, r4 + bl ov09_0233D9F8 + pop {r4, pc} + arm_func_end ov09_0233DAD0 + + arm_func_start ov09_0233DB54 +ov09_0233DB54: @ 0x0233DB54 + ldrb r1, [r0, #0x15] + cmp r1, #0 + moveq r1, #1 + movne r1, #0 + strb r1, [r0, #0x15] + bx lr + arm_func_end ov09_0233DB54 + + arm_func_start ov09_0233DB6C +ov09_0233DB6C: @ 0x0233DB6C + ldrb r1, [r0, #0x16] + cmp r1, #0 + moveq r1, #1 + movne r1, #0 + strb r1, [r0, #0x16] + bx lr + arm_func_end ov09_0233DB6C + + arm_func_start ov09_0233DB84 +ov09_0233DB84: @ 0x0233DB84 + mov r1, #0x78 + str r1, [r0, #0x28] + bx lr + arm_func_end ov09_0233DB84 + + arm_func_start ov09_0233DB90 +ov09_0233DB90: @ 0x0233DB90 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #4 + movs r6, r3 + ldrbne r4, [r6] + mov r8, r0 + movne r0, #0 + strbne r0, [r6] + ldr r5, [sp, #0x20] + mov r0, #0 + strb r0, [r5] + ldr r0, [r8, #0x18] + moveq r4, #1 + cmp r0, #0 + subgt r0, r0, #1 + strgt r0, [r8, #0x18] + ldr r0, [r8, #0x1c] + mov r7, r1 + cmp r0, #0 + subgt r0, r0, #1 + strgt r0, [r8, #0x1c] + add r1, sp, #0 + mov r0, #0 + bl FUN_0200625C + bl FUN_02003B5C + cmp r0, #0 + ldrhne r0, [sp] + andne r0, r0, #0x300 + strhne r0, [sp] + ldrb r0, [r8, #0x14] + cmp r0, #0 + beq _0233DCF0 + ldr r0, [r8, #0x20] + ldr r2, [r8] + ldr r1, [r8, #0xc] + add r0, r0, #1 + str r0, [r8, #0x20] + ldr r0, [r8, #0x24] + add r1, r2, r1, lsl #2 + cmp r0, #0 + blt _0233DCBC + sub r0, r0, #1 + str r0, [r8, #0x24] + ldrb r0, [r8, #0x16] + cmp r0, #0 + beq _0233DC74 + ldrh r0, [r1, #2] + bl FUN_02017B18 + cmp r0, #0 + movne r0, #0 + strne r0, [r8, #0x24] + bne _0233DCF0 + ldr r0, [r8, #0x24] + cmp r0, #0 + bgt _0233DCF0 + mov r0, r8 + bl ov09_0233D9F8 + b _0233DCF0 +_0233DC74: + ldr r0, [r8, #0x24] + cmp r0, #0x12c + bgt _0233DCF0 + bne _0233DC90 + mov r0, #0x12c + bl FUN_02017B7C + b _0233DCF0 +_0233DC90: + cmp r0, #0 + bgt _0233DCF0 + mov r0, r8 + bl ov09_0233DA4C + mov r0, r8 + bl ov09_0233DA70 + mov r0, r8 + bl ov09_0233D9F8 + mov r0, #1 + strb r0, [r5] + b _0233DCF0 +_0233DCBC: + ldrh r0, [r1, #2] + bl FUN_02017B18 + cmp r0, #0 + moveq r0, #0x3c + streq r0, [r8, #0x24] + beq _0233DCF0 + bl FUN_02017B0C + cmp r0, #0 + beq _0233DCF0 + ldrb r0, [r8, #0x16] + cmp r0, #0 + moveq r0, #0x258 + streq r0, [r8, #0x24] +_0233DCF0: + ldrh r0, [sp] + tst r0, #8 + beq _0233DD1C + mov r0, r7 + mov r1, #0 + bl FUN_02032960 + ldrb r0, [r8, #0x15] + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + strb r0, [r8, #0x15] +_0233DD1C: + ldrb r0, [r8, #0x15] + cmp r0, #0 + beq _0233DD70 + ldr r0, [r8, #0x28] + cmp r0, #0 + subgt r0, r0, #1 + strgt r0, [r8, #0x28] + ldrh r1, [sp] + ldr r0, _0233DEE8 @ =0x00000F04 + tst r1, r0 + beq _0233DD68 + bl FUN_02003B5C + cmp r0, #0 + bne _0233DD60 + mov r0, r7 + mov r1, #2 + bl FUN_02032960 +_0233DD60: + mov r0, #0x78 + str r0, [r8, #0x28] +_0233DD68: + mov r0, #0 + b _0233DEE0 +_0233DD70: + mov r1, #0 + str r1, [r8, #0x28] + ldrh r0, [sp] + tst r0, #4 + beq _0233DDA0 + mov r0, r7 + bl FUN_02032960 + ldrb r0, [r8, #0x16] + cmp r0, #0 + moveq r0, #1 + movne r0, #0 + strb r0, [r8, #0x16] +_0233DDA0: + ldr r0, [r8, #0x2c] + cmp r0, #0 + subgt r0, r0, #1 + strgt r0, [r8, #0x2c] + bgt _0233DEDC + ldrh r0, [sp] + tst r0, #0x400 + beq _0233DE0C + cmp r4, #0 + mov r0, r7 + beq _0233DDF0 + mov r1, #0 + bl FUN_02032960 + cmp r6, #0 + movne r0, #1 + strbne r0, [r6] + bne _0233DDF8 + mov r0, r8 + bl ov09_0233D9F8 + b _0233DDF8 +_0233DDF0: + mov r1, #2 + bl FUN_02032960 +_0233DDF8: + mov r0, #4 + str r0, [r8, #0x2c] + mov r0, #1 + strb r0, [r5] + b _0233DEDC +_0233DE0C: + tst r0, #0x800 + beq _0233DE48 + mov r0, r7 + mov r1, #0 + bl FUN_02032960 + mov r1, #4 + mov r0, r8 + str r1, [r8, #0x2c] + bl ov09_0233DA4C + cmp r6, #0 + mvnne r0, #0 + strne r0, [r8, #0xc] + mov r0, #1 + strb r0, [r5] + b _0233DEDC +_0233DE48: + tst r0, #0x200 + beq _0233DE94 + mov r0, #4 + str r0, [r8, #0x2c] + ldr r1, [r8, #0xc] + sub r0, r0, #5 + cmp r1, r0 + mov r0, r7 + bne _0233DE78 + mov r1, #2 + bl FUN_02032960 + b _0233DEDC +_0233DE78: + mov r1, #0 + bl FUN_02032960 + mov r0, r8 + bl ov09_0233DAD0 + mov r0, #1 + strb r0, [r5] + b _0233DEDC +_0233DE94: + tst r0, #0x100 + beq _0233DEDC + mov r0, #4 + str r0, [r8, #0x2c] + ldr r1, [r8, #0xc] + sub r0, r0, #5 + cmp r1, r0 + mov r0, r7 + bne _0233DEC4 + mov r1, #2 + bl FUN_02032960 + b _0233DEDC +_0233DEC4: + mov r1, #0 + bl FUN_02032960 + mov r0, r8 + bl ov09_0233DA70 + mov r0, #1 + strb r0, [r5] +_0233DEDC: + mov r0, #0 +_0233DEE0: + add sp, sp, #4 + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0233DEE8: .4byte 0x00000F04 + arm_func_end ov09_0233DB90 + + arm_func_start ov09_0233DEEC +ov09_0233DEEC: @ 0x0233DEEC + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x10 + mov r4, #0 + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, r3 + bl FUN_02003B5C + cmp r0, #0 + movne r0, r4 + bne _0233E028 + ldr r1, [r7, #8] + ldr r0, [r7] + add lr, r1, #0x8a + str r0, [sp] + ldr r0, [r7] + add r3, lr, #0x10 + add ip, r0, #0xe + add r2, sp, #0 + mov r0, r5 + mov r1, #2 + str ip, [sp, #4] + str lr, [sp, #8] + str r3, [sp, #0xc] + bl FUN_02006C8C + cmp r0, #0 + beq _0233DF84 + mov r1, #4 + str r1, [r8, #0x18] + mov r1, r4 + mov r0, r7 + mov r4, #1 + bl FUN_02032960 + ldrb r0, [r8, #0x15] + cmp r0, #0 + moveq r0, r4 + movne r0, #0 + strb r0, [r8, #0x15] +_0233DF84: + ldr r0, [r7] + ldr r1, [r7, #8] + add r0, r0, #1 + str r0, [sp] + add lr, r1, #0x9e + ldr r0, [r7] + add r3, lr, #0x10 + add ip, r0, #0xf + add r2, sp, #0 + mov r0, r5 + mov r1, #2 + str ip, [sp, #4] + str lr, [sp, #8] + str r3, [sp, #0xc] + bl FUN_02006C8C + cmp r0, #0 + beq _0233E00C + mov r0, #4 + str r0, [r8, #0x1c] + ldrb r0, [r8, #0x15] + mov r4, #1 + cmp r0, #0 + mov r0, r7 + beq _0233DFF0 + mov r1, #2 + bl FUN_02032960 + b _0233E00C +_0233DFF0: + mov r1, #0 + bl FUN_02032960 + ldrb r0, [r8, #0x16] + cmp r0, #0 + moveq r0, r4 + movne r0, #0 + strb r0, [r8, #0x16] +_0233E00C: + cmp r6, #0 + beq _0233E024 + mov r0, r7 + mov r1, r6 + bl FUN_020320C8 + mov r4, #1 +_0233E024: + mov r0, r4 +_0233E028: + add sp, sp, #0x10 + pop {r4, r5, r6, r7, r8, pc} + arm_func_end ov09_0233DEEC + + arm_func_start ov09_0233E030 +ov09_0233E030: @ 0x0233E030 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x34 + mov sl, r3 + ldr r6, [sl] + str r1, [sp, #8] + mov r8, r2 + mov sb, r0 + mov r1, r6 + mov r2, #0 + b _0233E060 +_0233E058: + add r1, r1, #4 + add r2, r2, #1 +_0233E060: + ldrh r0, [r1] + cmp r0, #0 + bne _0233E058 + add r0, r2, #1 + add r0, r0, r0, lsl #6 + lsl r0, r0, #2 + mov r1, #8 + bl FUN_02001170 + mov fp, r0 + mov r5, fp + mov r4, #0 + mov r7, #0x100 + b _0233E0B8 +_0233E094: + ldr r3, _0233E2C8 @ =0x0000C402 + mov r0, r5 + mov r1, r7 + str r4, [sp] + bl FUN_020235B8 + ldrh r0, [r6, #2] + add r6, r6, #4 + str r0, [r5, #0x100] + add r5, r5, #0x104 +_0233E0B8: + ldrh r2, [r6] + cmp r2, #0 + bne _0233E094 + mov r0, #0 + strb r0, [r5] + ldrh r2, [r6, #2] + ldr r1, [sp, #0x58] + mov r0, #0x1ac + str r2, [r5, #0x100] + str r1, [sp, #0x10] + mov r1, #8 + bl FUN_02001170 + mov r7, r0 + ldr r5, [sl, #0xc] + mov r4, #0 + str r4, [sp, #0xc] + mov r0, sl + mov r6, fp + str sl, [r7, #4] + bl ov09_0233D9DC + ldr r0, [sp, #8] + cmp sb, #0 + orr sl, r0, #0x20 + addne ip, sp, #0x14 + ldmne sb, {r0, r1, r2, r3} + stmne ip, {r0, r1, r2, r3} + ldrne r0, _0233E2CC @ =ov09_0233E3DC + orr sl, sl, #0x8000 + strne r0, [sp, #0x14] + bne _0233E144 + ldr r0, _0233E2D0 @ =0x0233F794 + add sb, sp, #0x14 + ldm r0, {r0, r1, r2, r3} + stm sb, {r0, r1, r2, r3} + orr sl, sl, #0x300000 +_0233E144: + ldrb r0, [sp, #0x1a] + str r7, [sp, #0x20] + cmp r0, #0 + bne _0233E194 + mov sb, #0 + b _0233E170 +_0233E15C: + mov r0, r6 + bl FUN_020265A8 + cmp r0, sb + movgt sb, r0 + add r6, r6, #0x104 +_0233E170: + mov r0, r6 + bl FUN_0202A66C + cmp r0, #0 + beq _0233E15C + mov r0, sl + mov r1, r8 + add r2, sb, #0x10 + bl FUN_02031A5C + strb r0, [sp, #0x1a] +_0233E194: + mov r6, fp + b _0233E1B8 +_0233E19C: + ldr r0, [sp, #0xc] + add r6, r6, #0x104 + cmp r0, r5 + moveq r4, r0 + ldr r0, [sp, #0xc] + add r0, r0, #1 + str r0, [sp, #0xc] +_0233E1B8: + mov r0, r6 + bl FUN_0202A66C + cmp r0, #0 + beq _0233E19C + ldr r0, [sp, #0x10] + add r2, sp, #0xc + cmp r0, #0 + ldrle r0, [sp, #0xc] + add r3, sp, #0x10 + strle r0, [sp, #0x10] + ldrb r0, [sp, #0x1b] + cmp r0, #0 + mov r0, sl + bne _0233E200 + mov r1, r8 + bl FUN_02031AA4 + strb r0, [sp, #0x1b] + b _0233E208 +_0233E200: + mov r1, r8 + bl FUN_02031AA4 +_0233E208: + tst sl, #0x200000 + ldrbne r1, [sp, #0x18] + ldrbne r0, [sp, #0x1a] + subne r0, r1, r0 + strbne r0, [sp, #0x18] + tst sl, #0x100000 + ldrbne r1, [sp, #0x19] + ldrbne r0, [sp, #0x1b] + subne r0, r1, r0 + strbne r0, [sp, #0x19] + ldr r0, _0233E2CC @ =ov09_0233E3DC + cmp r8, #0 + str r0, [r7] + str sl, [r7, #0x100] + beq _0233E264 + add r6, r7, #0x104 + mov r5, #9 +_0233E24C: + ldm r8!, {r0, r1, r2, r3} + stm r6!, {r0, r1, r2, r3} + subs r5, r5, #1 + bne _0233E24C + ldm r8, {r0, r1} + stm r6, {r0, r1} +_0233E264: + str r4, [r7, #0x104] + str fp, [r7, #0x19c] + mov r2, #0 + str r2, [r7, #0x1a0] + strb r2, [r7, #0x1a4] + strb r2, [r7, #0x1a5] + add r0, sp, #0x14 + mov r1, #3 + strb r2, [sp, #0x1c] + bl FUN_02027648 + add r1, sp, #0x24 + mov r5, r0 + bl FUN_02028284 + ldr r0, [sp, #0xc] + add r3, sp, #0x24 + str r0, [sp] + ldr r4, [sp, #0x10] + mov r1, sl + add r0, r7, #8 + add r2, r7, #0x104 + str r4, [sp, #4] + bl FUN_02031AF8 + mov r0, r5 + add sp, sp, #0x34 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0233E2C8: .4byte 0x0000C402 +_0233E2CC: .4byte ov09_0233E3DC +_0233E2D0: .4byte 0x0233F794 + arm_func_end ov09_0233E030 + + arm_func_start ov09_0233E2D4 +ov09_0233E2D4: @ 0x0233E2D4 + push {r3, lr} + bl FUN_0202833C + mov r1, #1 + str r1, [r0, #0x1a0] + mov r1, #0 + strb r1, [r0, #0x1a4] + strb r1, [r0, #0x1a5] + ldr r1, [r0, #0x100] + bic r1, r1, #0x800000 + str r1, [r0, #0x100] + add r0, r0, #8 + bl FUN_02032984 + pop {r3, pc} + arm_func_end ov09_0233E2D4 + + arm_func_start ov09_0233E308 +ov09_0233E308: @ 0x0233E308 + push {r3, r4, r5, lr} + mov r5, r0 + bl FUN_0202833C + mov r4, r0 + mov r0, #1 + mov r2, #0 + strb r0, [r4, #0x1a4] + mov r0, r5 + sub r1, r2, #4 + strb r2, [r4, #0x1a5] + bl FUN_0202830C + mov r0, r5 + add r1, r4, #8 + bl FUN_02028948 + mov r0, #5 + str r0, [r4, #0x1a0] + pop {r3, r4, r5, pc} + arm_func_end ov09_0233E308 + + arm_func_start ov09_0233E34C +ov09_0233E34C: @ 0x0233E34C + push {r3, r4, r5, lr} + mov r5, r0 + bl FUN_0202833C + mov r4, r0 + mov r0, #0 + mov r1, r0 + bl FUN_02330E38 + ldr r0, [r4, #0x19c] + bl FUN_02001188 + mov r0, r4 + bl FUN_02001188 + mov r0, r5 + bl FUN_02028194 + pop {r3, r4, r5, pc} + arm_func_end ov09_0233E34C + + arm_func_start ov09_0233E384 +ov09_0233E384: @ 0x0233E384 + push {r3, lr} + bl FUN_0202833C + ldr r0, [r0, #0x1a0] + cmp r0, #7 + cmpne r0, #8 + movne r0, #1 + moveq r0, #0 + pop {r3, pc} + arm_func_end ov09_0233E384 + + arm_func_start ov09_0233E3A4 +ov09_0233E3A4: @ 0x0233E3A4 + push {r3, lr} + bl FUN_0202833C + ldrb r1, [r0, #0x1a4] + cmp r1, #0 + beq _0233E3D4 + ldrb r1, [r0, #0x1a5] + cmp r1, #0 + mvnne r0, #0 + popne {r3, pc} + add r0, r0, #8 + bl FUN_02032578 + pop {r3, pc} +_0233E3D4: + mov r0, #0 + pop {r3, pc} + arm_func_end ov09_0233E3A4 + + arm_func_start ov09_0233E3DC +ov09_0233E3DC: @ 0x0233E3DC + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x34 + mov r6, r0 + ldr r4, [r6, #0xc] + ldr r0, [r4, #0x1a0] + cmp r0, #6 + addls pc, pc, r0, lsl #2 + b _0233E7E8 +_0233E3FC: @ jump table + b _0233E418 @ case 0 + b _0233E430 @ case 1 + b _0233E444 @ case 2 + b _0233E44C @ case 3 + b _0233E4AC @ case 4 + b _0233E76C @ case 5 + b _0233E7B0 @ case 6 +_0233E418: + ldrsb r0, [r6, #0x10] + bl FUN_0202810C + cmp r0, #0 + beq _0233E7E8 + mov r0, #2 + str r0, [r4, #0x1a0] +_0233E430: + ldr r0, [r4, #0x1a0] + cmp r0, #1 + moveq r0, #2 + streq r0, [r4, #0x1a0] + beq _0233E7E8 +_0233E444: + mov r0, #3 + str r0, [r4, #0x1a0] +_0233E44C: + mov r0, r6 + bl ov09_0233E7F4 + ldr r0, [r4, #0x100] + tst r0, #0x800000 + beq _0233E488 + mov r0, #8 + str r0, [r4, #0x1a0] + mov r1, #1 + mov r0, #0 + strb r1, [r4, #0x1a4] + strb r0, [r4, #0x1a5] + str r0, [r4, #0x1a8] + sub r0, r0, #4 + str r0, [r6, #0xb8] + b _0233E7E8 +_0233E488: + mov r1, #4 + mov r0, #0 + str r1, [r4, #0x1a0] + strb r0, [r4, #0x1a4] + strb r0, [r4, #0x1a5] + str r0, [r4, #0x1a8] + sub r0, r0, #1 + str r0, [r6, #0xb8] + b _0233E7E8 +_0233E4AC: + bl FUN_02003B5C + cmp r0, #0 + moveq r3, #1 + movne r3, #0 + add r1, sp, #0xc + add r2, sp, #0x10 + add r0, r4, #8 + and r3, r3, #0xff + bl FUN_02031C98 + ldr r1, [sp, #0xc] + mov r5, r0 + cmp r1, #0 + bne _0233E52C + ldr r0, [r4, #0x100] + tst r0, #1 + beq _0233E52C + mov r3, #0 + ldr r2, _0233E7F0 @ =0x00000408 + add r1, sp, #0x10 + str r3, [sp] + mov ip, #1 + add r0, r4, #8 + str ip, [sp, #4] + bl FUN_02032160 + movs r1, r0 + bmi _0233E52C + add r0, r4, #8 + bl FUN_02032684 + ldr r0, [sp, #0xc] + mov r5, #1 + orr r0, r0, #1 + str r0, [sp, #0xc] +_0233E52C: + ldr r0, [sp, #0xc] + cmp r0, #0 + bne _0233E54C + add r1, sp, #0xc + add r2, sp, #0x10 + add r0, r4, #8 + bl FUN_02033758 + orr r5, r5, r0 +_0233E54C: + ldr r2, [sp, #0xc] + cmp r2, #0 + bne _0233E56C + ldr r0, [r4, #4] + add r3, sp, #0x10 + add r1, r4, #8 + bl ov09_0233DEEC + orr r5, r5, r0 +_0233E56C: + add r0, r4, #8 + bl FUN_02032578 + mov r2, r0 + ldr r1, [sp, #0xc] + add r0, r4, #8 + mov r3, #0 + bl FUN_020323F8 + orrs r0, r5, r0 + beq _0233E598 + mov r0, r6 + bl ov09_0233E7F4 +_0233E598: + add r0, r4, #8 + bl FUN_02032578 + ldr r1, [r4, #4] + str r0, [r1, #8] + ldr r0, [sp, #0xc] + tst r0, #1 + beq _0233E63C + ldr r0, [r4, #4] + ldrb r1, [r0, #0x15] + cmp r1, #0 + beq _0233E5D8 + bl ov09_0233DB84 + add r0, r4, #8 + mov r1, #2 + bl FUN_02032960 + b _0233E750 +_0233E5D8: + add r0, r4, #8 + bl FUN_02032474 + cmp r0, #0 + beq _0233E62C + ldr r0, [r4, #0x100] + tst r0, #0x80000000 + bne _0233E600 + add r0, r4, #8 + mov r1, #0 + bl FUN_02032960 +_0233E600: + mov r1, #1 + mov r0, #0 + strb r1, [r4, #0x1a4] + strb r0, [r4, #0x1a5] + ldr r1, [sp, #0xc] + sub r0, r0, #4 + str r1, [r4, #0x1a8] + str r0, [r6, #0xb8] + mov r0, #5 + str r0, [r4, #0x1a0] + b _0233E750 +_0233E62C: + add r0, r4, #8 + mov r1, #2 + bl FUN_02032960 + b _0233E750 +_0233E63C: + tst r0, #2 + beq _0233E69C + ldr r0, [r4, #4] + ldrb r1, [r0, #0x15] + cmp r1, #0 + beq _0233E668 + bl ov09_0233DB84 + add r0, r4, #8 + mov r1, #2 + bl FUN_02032960 + b _0233E750 +_0233E668: + add r0, r4, #8 + mov r1, #1 + bl FUN_02032960 + mov r0, #1 + strb r0, [r4, #0x1a4] + strb r0, [r4, #0x1a5] + ldr r1, [sp, #0xc] + sub r0, r0, #6 + str r1, [r4, #0x1a8] + str r0, [r6, #0xb8] + mov r0, #5 + str r0, [r4, #0x1a0] + b _0233E750 +_0233E69C: + add r0, r4, #8 + bl FUN_02032474 + add r1, sp, #8 + strb r0, [sp, #9] + str r1, [sp] + ldr r0, [r4, #4] + ldr r2, [sp, #0xc] + add r3, sp, #9 + add r1, r4, #8 + bl ov09_0233DB90 + cmp r0, #0 + beq _0233E6F8 + mov r1, #1 + mov r0, #0 + strb r1, [r4, #0x1a4] + strb r0, [r4, #0x1a5] + ldr r1, [sp, #0xc] + sub r0, r0, #4 + str r1, [r4, #0x1a8] + str r0, [r6, #0xb8] + mov r0, #5 + str r0, [r4, #0x1a0] + b _0233E73C +_0233E6F8: + ldrb r0, [sp, #9] + cmp r0, #0 + beq _0233E73C + ldr r1, [r4, #4] + add r0, r4, #8 + ldr r1, [r1, #8] + bl FUN_02032684 + mov r1, #1 + mov r0, #0 + strb r1, [r4, #0x1a4] + strb r0, [r4, #0x1a5] + ldr r1, [sp, #0xc] + sub r0, r0, #4 + str r1, [r4, #0x1a8] + str r0, [r6, #0xb8] + mov r0, #5 + str r0, [r4, #0x1a0] +_0233E73C: + ldrb r0, [sp, #8] + cmp r0, #0 + beq _0233E750 + mov r0, r6 + bl ov09_0233E7F4 +_0233E750: + ldrsb r0, [r6, #0x10] + add r1, r4, #8 + bl FUN_02028948 + ldr r1, [r4, #4] + mov r0, #2 + bl FUN_02330E38 + b _0233E7E8 +_0233E76C: + add r0, r4, #8 + bl FUN_02032070 + cmp r0, #0 + bne _0233E7E8 + ldrb r0, [r4, #0x1a5] + cmp r0, #0 + bne _0233E7A8 + ldr r0, [r4, #0x100] + tst r0, #0x400000 + beq _0233E7A8 + mov r0, r6 + bl ov09_0233E7F4 + mov r0, #8 + str r0, [r4, #0x1a0] + b _0233E7E8 +_0233E7A8: + mov r0, #6 + str r0, [r4, #0x1a0] +_0233E7B0: + mov r0, #0 + mov r1, r0 + bl FUN_02330E38 + ldrsb r0, [r6, #0x10] + bl FUN_0202812C + cmp r0, #0 + beq _0233E7E8 + ldrb r0, [r4, #0x1a5] + cmp r0, #0 + mvnne r0, #4 + mvneq r0, #3 + str r0, [r6, #0xb8] + mov r0, #7 + str r0, [r4, #0x1a0] +_0233E7E8: + add sp, sp, #0x34 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0233E7F0: .4byte 0x00000408 + arm_func_end ov09_0233E3DC + + arm_func_start ov09_0233E7F4 +ov09_0233E7F4: @ 0x0233E7F4 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x154 + mov sl, r0 + ldr r4, [sl, #0xc] + add r0, r4, #8 + bl FUN_02032568 + mov r5, r0 + add r0, r4, #8 + bl FUN_02032594 + ldr r2, [r4, #0x100] + mov fp, r0 + tst r2, #0x200 + ldrne r0, [r4, #0x164] + ldr r3, [r4, #0x19c] + addne sb, r0, r5 + add r1, r5, r5, lsl #6 + ldrsb r0, [sl, #0x10] + add r6, r3, r1, lsl #2 + moveq sb, #0 + bl FUN_02027B1C + add r0, sp, #0x104 + bl FUN_02023690 + cmp fp, #0 + mov r7, #0 + ble _0233E8EC + b _0233E8E4 +_0233E85C: + ldr r0, [r4, #4] + mov r8, #0x44 + ldr r0, [r0, #0xc] + cmp r0, r5 + moveq r8, #0x45 + beq _0233E88C + cmp sb, #0 + beq _0233E88C + ldrb r0, [sb] + add sb, sb, #1 + tst r0, #2 + movne r8, #0x42 +_0233E88C: + add r0, r5, #1 + str r0, [sp, #0x128] + str r6, [sp, #0x13c] + add r0, sp, #0x104 + str r0, [sp] + ldr r3, _0233E914 @ =0x0000C402 + add r0, sp, #4 + mov r1, #0x100 + mov r2, #0x4f0 + bl FUN_020235B8 + add r0, r4, #8 + mov r1, r7 + bl FUN_020328D8 + str r8, [sp] + mov r2, r0 + ldrsb r0, [sl, #0x10] + mov r1, #0xd + add r3, sp, #4 + bl FUN_020263C8 + add r7, r7, #1 + add r5, r5, #1 + add r6, r6, #0x104 +_0233E8E4: + cmp r7, fp + blt _0233E85C +_0233E8EC: + ldrsb r1, [sl, #0x10] + add r0, r4, #8 + bl FUN_0202A03C + ldrsb r0, [sl, #0x10] + bl FUN_02027AF0 + ldr r1, [r4, #4] + mov r0, #2 + bl FUN_02330E38 + add sp, sp, #0x154 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0233E914: .4byte 0x0000C402 + arm_func_end ov09_0233E7F4 + + arm_func_start ov09_0233E918 +ov09_0233E918: @ 0x0233E918 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x3c + mov sl, r1 + mov sb, r2 + str r0, [sp, #8] + str r3, [sp, #0xc] + ldr r1, [sp, #0x60] + mov r2, #0 + b _0233E944 +_0233E93C: + add r1, r1, #8 + add r2, r2, #1 +_0233E944: + ldrh r0, [r1] + cmp r0, #0 + bne _0233E93C + add r0, r2, #1 + add r0, r0, r0, lsl #6 + lsl r4, r0, #2 + mov r0, r4 + mov r1, #8 + bl FUN_02001170 + str r0, [sp, #0x14] + mov r0, r4 + mov r1, #8 + bl FUN_02001170 + str r0, [sp, #0x10] + ldr r5, [sp, #0x14] + mov r6, r0 + ldr r7, [sp, #0x60] + ldr r4, [sp, #0x64] + b _0233E9C4 +_0233E990: + mov r0, r5 + bl FUN_020258B8 + ldr r1, [r7, #4] + mov r0, r6 + str r1, [r5, #0x100] + ldrh r1, [r4] + add r7, r7, #8 + add r5, r5, #0x104 + bl FUN_020258B8 + ldr r0, [r4, #4] + add r4, r4, #8 + str r0, [r6, #0x100] + add r6, r6, #0x104 +_0233E9C4: + ldrh r1, [r7] + cmp r1, #0 + bne _0233E990 + mov r0, #0 + strb r0, [r5] + strb r0, [r6] + ldr r1, [r7, #4] + mov r0, #0x1b4 + str r1, [r5, #0x100] + ldr r2, [r4, #4] + mov r1, #8 + str r2, [r6, #0x100] + bl FUN_02001170 + mov r7, r0 + tst sl, #0x20 + ldrne r8, [sb] + ldr r0, [sp, #0xc] + mov fp, #0 + str fp, [sp, #0x18] + mov r1, r0 + ldr r6, [sp, #0x14] + ldr r5, [sp, #0x10] + moveq r8, #0 + str r1, [r7, #4] + bl ov09_0233D9DC + ldr r0, [sp, #8] + add r4, sp, #0x1c + cmp r0, #0 + ldreq r0, _0233EC18 @ =0x0233F7A4 + orreq sl, sl, #0x300000 + ldmeq r0, {r0, r1, r2, r3} + stmeq r4, {r0, r1, r2, r3} + ldmne r0, {r0, r1, r2, r3} + stmne r4, {r0, r1, r2, r3} + ldrne r0, _0233EC1C @ =ov09_0233ED84 + str r7, [sp, #0x28] + strne r0, [sp, #0x1c] + ldrb r0, [sp, #0x22] + cmp r0, #0 + bne _0233EACC + mov r4, #0 + b _0233EA80 +_0233EA6C: + mov r0, r6 + bl FUN_020265A8 + cmp r0, r4 + movgt r4, r0 + add r6, r6, #0x104 +_0233EA80: + mov r0, r6 + bl FUN_0202A66C + cmp r0, #0 + beq _0233EA6C + b _0233EAA8 +_0233EA94: + mov r0, r5 + bl FUN_020265A8 + cmp r0, r4 + movgt r4, r0 + add r5, r5, #0x104 +_0233EAA8: + mov r0, r5 + bl FUN_0202A66C + cmp r0, #0 + beq _0233EA94 + mov r0, sl + mov r1, sb + add r2, r4, #0x10 + bl FUN_02031A5C + strb r0, [sp, #0x22] +_0233EACC: + ldr r4, [sp, #0x14] + ldr r5, [sp, #0x10] + and r6, sl, #0x20 + b _0233EB14 +_0233EADC: + cmp r6, #0 + beq _0233EB00 + ldr r0, [r4, #0x100] + cmp r0, r8 + ldreq fp, [sp, #0x18] + beq _0233EB00 + ldr r0, [r5, #0x100] + cmp r0, r8 + ldreq fp, [sp, #0x18] +_0233EB00: + ldr r0, [sp, #0x18] + add r4, r4, #0x104 + add r0, r0, #1 + str r0, [sp, #0x18] + add r5, r5, #0x104 +_0233EB14: + mov r0, r4 + bl FUN_0202A66C + cmp r0, #0 + beq _0233EADC + ldrb r0, [sp, #0x23] + cmp r0, #0 + bne _0233EB48 + add r2, sp, #0x18 + mov r0, sl + mov r1, sb + mov r3, r2 + bl FUN_02031AA4 + strb r0, [sp, #0x23] +_0233EB48: + tst sl, #0x200000 + ldrbne r1, [sp, #0x20] + ldrbne r0, [sp, #0x22] + subne r0, r1, r0 + strbne r0, [sp, #0x20] + tst sl, #0x100000 + ldrbne r1, [sp, #0x21] + ldrbne r0, [sp, #0x23] + subne r0, r1, r0 + strbne r0, [sp, #0x21] + ldr r0, _0233EC1C @ =ov09_0233ED84 + cmp sb, #0 + str r0, [r7] + str sl, [r7, #0x100] + beq _0233EBA4 + add r5, r7, #0x104 + mov r4, #9 +_0233EB8C: + ldm sb!, {r0, r1, r2, r3} + stm r5!, {r0, r1, r2, r3} + subs r4, r4, #1 + bne _0233EB8C + ldm sb, {r0, r1} + stm r5, {r0, r1} +_0233EBA4: + ldr r0, [sp, #0x14] + str fp, [r7, #0x104] + str r0, [r7, #0x19c] + ldr r0, [sp, #0x10] + mov r2, #0 + str r0, [r7, #0x1a0] + str r2, [r7, #0x1a4] + strb r2, [r7, #0x1a8] + strb r2, [r7, #0x1a9] + str r2, [r7, #0x1ac] + strb r2, [r7, #0x1b0] + add r0, sp, #0x1c + mov r1, #3 + strb r2, [sp, #0x24] + bl FUN_02027648 + add r1, sp, #0x2c + mov r5, r0 + bl FUN_02028284 + ldr r4, [sp, #0x18] + add r3, sp, #0x2c + str r4, [sp] + mov r1, sl + add r0, r7, #8 + add r2, r7, #0x104 + str r4, [sp, #4] + bl FUN_02031AF8 + mov r0, r5 + add sp, sp, #0x3c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0233EC18: .4byte 0x0233F7A4 +_0233EC1C: .4byte ov09_0233ED84 + arm_func_end ov09_0233E918 + + arm_func_start ov09_0233EC20 +ov09_0233EC20: @ 0x0233EC20 + push {r3, lr} + bl FUN_0202833C + mov r1, #1 + str r1, [r0, #0x1a4] + mov r1, #0 + strb r1, [r0, #0x1a8] + strb r1, [r0, #0x1a9] + str r1, [r0, #0x1ac] + ldr r1, [r0, #0x100] + bic r1, r1, #0x800000 + str r1, [r0, #0x100] + add r0, r0, #8 + bl FUN_02032984 + pop {r3, pc} + arm_func_end ov09_0233EC20 + + arm_func_start ov09_0233EC58 +ov09_0233EC58: @ 0x0233EC58 + push {r3, r4, r5, lr} + mov r5, r0 + bl FUN_0202833C + mov r4, r0 + mov r0, #0 + mov r1, r0 + bl FUN_02330E38 + ldr r0, [r4, #0x19c] + bl FUN_02001188 + ldr r0, [r4, #0x1a0] + bl FUN_02001188 + mov r0, r4 + bl FUN_02001188 + mov r0, r5 + bl FUN_02028194 + pop {r3, r4, r5, pc} + arm_func_end ov09_0233EC58 + + arm_func_start ov09_0233EC98 +ov09_0233EC98: @ 0x0233EC98 + push {r3, r4, r5, lr} + mov r5, r0 + bl FUN_0202833C + mov r4, r0 + ldr r0, [r4, #0x1a4] + cmp r0, #3 + cmpne r0, #4 + cmpne r0, #8 + movne r0, #0 + popne {r3, r4, r5, pc} + mov r0, #1 + mov r2, #0 + strb r0, [r4, #0x1a8] + strb r2, [r4, #0x1a9] + mov r0, r5 + sub r1, r2, #4 + str r2, [r4, #0x1ac] + bl FUN_0202830C + mov r0, r5 + add r1, r4, #8 + bl FUN_02028948 + mov r0, #5 + str r0, [r4, #0x1a4] + mov r0, #1 + pop {r3, r4, r5, pc} + arm_func_end ov09_0233EC98 + + arm_func_start ov09_0233ECFC +ov09_0233ECFC: @ 0x0233ECFC + push {r3, lr} + bl FUN_0202833C + ldr r0, [r0, #0x1a4] + cmp r0, #7 + cmpne r0, #8 + movne r0, #1 + moveq r0, #0 + pop {r3, pc} + arm_func_end ov09_0233ECFC + + arm_func_start ov09_0233ED1C +ov09_0233ED1C: @ 0x0233ED1C + push {r4, lr} + bl FUN_0202833C + ldrb r1, [r0, #0x1a8] + cmp r1, #0 + beq _0233ED7C + ldr r1, [r0, #4] + ldrb r1, [r1, #0x14] + cmp r1, #0 + ldrne r4, [r0, #0x1a0] + ldrb r1, [r0, #0x1a9] + ldreq r4, [r0, #0x19c] + add r0, r0, #8 + cmp r1, #0 + beq _0233ED68 + bl FUN_0203258C + add r0, r0, r0, lsl #6 + add r0, r4, r0, lsl #2 + ldr r0, [r0, #0x100] + pop {r4, pc} +_0233ED68: + bl FUN_02032578 + add r0, r0, r0, lsl #6 + add r0, r4, r0, lsl #2 + ldr r0, [r0, #0x100] + pop {r4, pc} +_0233ED7C: + mov r0, #0 + pop {r4, pc} + arm_func_end ov09_0233ED1C + + arm_func_start ov09_0233ED84 +ov09_0233ED84: @ 0x0233ED84 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x34 + mov r6, r0 + ldr r4, [r6, #0xc] + ldr r0, [r4, #0x1a4] + cmp r0, #6 + addls pc, pc, r0, lsl #2 + b _0233F12C +_0233EDA4: @ jump table + b _0233EDC0 @ case 0 + b _0233EDD8 @ case 1 + b _0233EDEC @ case 2 + b _0233EE4C @ case 3 + b _0233F094 @ case 4 + b _0233F0A4 @ case 5 + b _0233F0F4 @ case 6 +_0233EDC0: + ldrsb r0, [r6, #0x10] + bl FUN_0202810C + cmp r0, #0 + beq _0233F12C + mov r0, #2 + str r0, [r4, #0x1a4] +_0233EDD8: + ldr r0, [r4, #0x1a4] + cmp r0, #1 + moveq r0, #2 + streq r0, [r4, #0x1a4] + beq _0233F12C +_0233EDEC: + mov r0, r6 + bl ov09_0233F138 + ldr r0, [r4, #0x100] + tst r0, #0x800000 + beq _0233EE28 + mov r0, #8 + str r0, [r4, #0x1a4] + mov r1, #1 + mov r0, #0 + strb r1, [r4, #0x1a8] + strb r0, [r4, #0x1a9] + str r0, [r4, #0x1ac] + sub r0, r0, #4 + str r0, [r6, #0xb8] + b _0233F12C +_0233EE28: + mov r1, #3 + mov r0, #0 + str r1, [r4, #0x1a4] + strb r0, [r4, #0x1a8] + strb r0, [r4, #0x1a9] + str r0, [r4, #0x1ac] + sub r0, r0, #1 + str r0, [r6, #0xb8] + b _0233F12C +_0233EE4C: + bl FUN_02003B5C + cmp r0, #0 + moveq r3, #1 + movne r3, #0 + add r1, sp, #0xc + add r2, sp, #0x10 + add r0, r4, #8 + and r3, r3, #0xff + bl FUN_02031C98 + ldr r1, [sp, #0xc] + mov r5, r0 + cmp r1, #0 + bne _0233EECC + ldr r0, [r4, #0x100] + tst r0, #1 + beq _0233EECC + mov r3, #0 + ldr r2, _0233F134 @ =0x00000408 + add r1, sp, #0x10 + str r3, [sp] + mov ip, #1 + add r0, r4, #8 + str ip, [sp, #4] + bl FUN_02032160 + movs r1, r0 + bmi _0233EECC + add r0, r4, #8 + bl FUN_02032684 + ldr r0, [sp, #0xc] + mov r5, #1 + orr r0, r0, #1 + str r0, [sp, #0xc] +_0233EECC: + ldr r0, [sp, #0xc] + cmp r0, #0 + bne _0233EEEC + add r1, sp, #0xc + add r2, sp, #0x10 + add r0, r4, #8 + bl FUN_02033758 + orr r5, r5, r0 +_0233EEEC: + add r0, r4, #8 + bl FUN_02032578 + mov r2, r0 + ldr r1, [sp, #0xc] + add r0, r4, #8 + mov r3, #0 + bl FUN_020323F8 + orrs r0, r5, r0 + beq _0233EF18 + mov r0, r6 + bl ov09_0233F138 +_0233EF18: + ldr r2, [sp, #0xc] + tst r2, #1 + beq _0233EFBC + add r0, r4, #8 + bl FUN_02032578 + ldr r2, [r4, #4] + ldrb r1, [r2, #0x15] + cmp r1, #0 + cmpne r0, #3 + beq _0233EF58 + mov r0, r2 + bl ov09_0233DB84 + add r0, r4, #8 + mov r1, #2 + bl FUN_02032960 + b _0233F078 +_0233EF58: + add r0, r4, #8 + bl FUN_02032474 + cmp r0, #0 + beq _0233EFAC + ldr r0, [r4, #0x100] + tst r0, #0x80000000 + bne _0233EF80 + add r0, r4, #8 + mov r1, #0 + bl FUN_02032960 +_0233EF80: + mov r1, #1 + mov r0, #0 + strb r1, [r4, #0x1a8] + strb r0, [r4, #0x1a9] + ldr r1, [sp, #0xc] + sub r0, r0, #4 + str r1, [r4, #0x1ac] + str r0, [r6, #0xb8] + mov r0, #4 + str r0, [r4, #0x1a4] + b _0233F078 +_0233EFAC: + add r0, r4, #8 + mov r1, #2 + bl FUN_02032960 + b _0233F078 +_0233EFBC: + tst r2, #2 + beq _0233F01C + ldr r0, [r4, #4] + ldrb r1, [r0, #0x15] + cmp r1, #0 + beq _0233EFE8 + bl ov09_0233DB84 + add r0, r4, #8 + mov r1, #2 + bl FUN_02032960 + b _0233F078 +_0233EFE8: + add r0, r4, #8 + mov r1, #1 + bl FUN_02032960 + mov r0, #1 + strb r0, [r4, #0x1a8] + strb r0, [r4, #0x1a9] + ldr r1, [sp, #0xc] + sub r0, r0, #6 + str r1, [r4, #0x1ac] + str r0, [r6, #0xb8] + mov r0, #4 + str r0, [r4, #0x1a4] + b _0233F078 +_0233F01C: + add r0, sp, #8 + str r0, [sp] + ldr r0, [r4, #4] + add r1, r4, #8 + mov r3, #0 + bl ov09_0233DB90 + cmp r0, #0 + beq _0233F064 + mov r1, #1 + mov r0, #0 + strb r1, [r4, #0x1a8] + strb r0, [r4, #0x1a9] + ldr r1, [sp, #0xc] + sub r0, r0, #4 + str r1, [r4, #0x1ac] + str r0, [r6, #0xb8] + mov r0, #4 + str r0, [r4, #0x1a4] +_0233F064: + ldrb r0, [sp, #8] + cmp r0, #0 + beq _0233F078 + mov r0, r6 + bl ov09_0233F138 +_0233F078: + ldrsb r0, [r6, #0x10] + add r1, r4, #8 + bl FUN_02028948 + ldr r1, [r4, #4] + mov r0, #3 + bl FUN_02330E38 + b _0233F12C +_0233F094: + add r0, r4, #8 + bl FUN_02032070 + cmp r0, #0 + bne _0233F12C +_0233F0A4: + ldrb r0, [r4, #0x1a9] + cmp r0, #0 + bne _0233F0D8 + ldr r0, [r4, #0x100] + tst r0, #0x400000 + beq _0233F0EC + mov r0, r6 + bl ov09_0233F138 + mvn r0, #3 + str r0, [r6, #0xb8] + mov r0, #8 + str r0, [r4, #0x1a4] + b _0233F12C +_0233F0D8: + ldrb r0, [r4, #0x1b0] + cmp r0, #0 + movne r0, #8 + strne r0, [r4, #0x1a4] + bne _0233F12C +_0233F0EC: + mov r0, #6 + str r0, [r4, #0x1a4] +_0233F0F4: + mov r0, #0 + mov r1, r0 + bl FUN_02330E38 + ldrsb r0, [r6, #0x10] + bl FUN_0202812C + cmp r0, #0 + beq _0233F12C + ldrb r0, [r4, #0x1a9] + cmp r0, #0 + mvnne r0, #4 + mvneq r0, #3 + str r0, [r6, #0xb8] + mov r0, #7 + str r0, [r4, #0x1a4] +_0233F12C: + add sp, sp, #0x34 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0233F134: .4byte 0x00000408 + arm_func_end ov09_0233ED84 + + arm_func_start ov09_0233F138 +ov09_0233F138: @ 0x0233F138 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sl, r0 + ldr r4, [sl, #0xc] + mov r7, #0 + ldr r0, [r4, #0x100] + ldr r5, [r4, #0x19c] + tst r0, #0x200 + ldrne r8, [r4, #0x164] + ldrsb r0, [sl, #0x10] + ldr r6, [r4, #0x1a0] + moveq r8, #0 + bl FUN_02027B1C + b _0233F1DC +_0233F16C: + mov r1, #0 + cmp r8, #0 + beq _0233F188 + ldrb r0, [r8] + add r8, r8, #1 + tst r0, #2 + movne r1, #1 +_0233F188: + ldr r0, [r4, #4] + ldrb r0, [r0, #0x14] + cmp r0, #0 + movne fp, r6 + moveq fp, r5 + cmp r1, #0 + movne sb, #0x42 + moveq sb, #0x44 + mov r1, r7 + add r0, r4, #8 + bl FUN_020328D8 + and r1, sb, #0xff + str r1, [sp] + mov r2, r0 + ldrsb r0, [sl, #0x10] + mov r3, fp + mov r1, #0xd + bl FUN_020263C8 + add r7, r7, #1 + add r5, r5, #0x104 + add r6, r6, #0x104 +_0233F1DC: + mov r0, r5 + bl FUN_0202A66C + cmp r0, #0 + beq _0233F16C + ldrsb r1, [sl, #0x10] + add r0, r4, #8 + bl FUN_0202A03C + ldrsb r0, [sl, #0x10] + bl FUN_02027AF0 + ldr r1, [r4, #4] + mov r0, #3 + bl FUN_02330E38 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov09_0233F138 + + arm_func_start ov09_0233F210 +ov09_0233F210: @ 0x0233F210 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x28 + mov r7, r0 + mov r6, r1 + mov r0, #0x2b0 + mov r1, #8 + mov r5, r2 + mov r8, r3 + bl FUN_02001170 + mov r4, r0 + ldrh r1, [sp, #0x40] + str r8, [r4, #4] + add r0, r4, #0x100 + strh r1, [r0, #0xa0] + mov r1, #0 + str r1, [sp] + ldrh r2, [r0, #0xa0] + ldr r3, _0233F3B4 @ =0x0000C402 + add r0, r4, #0x1a8 + mov r1, #0x100 + bl FUN_020235B8 + add r0, r4, #0x1a8 + bl FUN_020265A8 + cmp r7, #0 + mov ip, r0 + ldreq r0, _0233F3B8 @ =0x0233F7B4 + str ip, [r4, #0x1a4] + addeq r7, sp, #0x18 + ldmeq r0, {r0, r1, r2, r3} + stmeq r7, {r0, r1, r2, r3} + addne lr, sp, #0x18 + ldmne r7, {r0, r1, r2, r3} + stmne lr, {r0, r1, r2, r3} + ldrne r0, _0233F3BC @ =ov09_0233F3FC + str r4, [sp, #0x24] + strne r0, [sp, #0x18] + ldrb r0, [sp, #0x1e] + cmp r0, #0 + addeq r1, ip, #7 + asreq r0, r1, #2 + addeq r0, r1, r0, lsr #29 + asreq r0, r0, #3 + strbeq r0, [sp, #0x1e] + ldrb r0, [sp, #0x1f] + cmp r0, #0 + moveq r0, #2 + strbeq r0, [sp, #0x1f] + tst r6, #0x200000 + ldrbne r1, [sp, #0x1c] + ldrbne r0, [sp, #0x1e] + subne r0, r1, r0 + strbne r0, [sp, #0x1c] + tst r6, #0x100000 + ldrbne r1, [sp, #0x1d] + ldrbne r0, [sp, #0x1f] + subne r0, r1, r0 + strbne r0, [sp, #0x1d] + ldrb r1, [sp, #0x1e] + ldr r0, [r4, #0x1a4] + rsb r0, r0, r1, lsl #3 + add r0, r0, r0, lsr #31 + asr r0, r0, #1 + str r0, [r4, #0x2ac] + ldrb r0, [sp, #0x1f] + lsl r0, r0, #3 + sub r0, r0, #0xc + add r0, r0, r0, lsr #31 + asr r0, r0, #1 + str r0, [r4, #0x2a8] + ldr r0, [r4, #0x2ac] + cmp r0, #0 + movlt r0, #0 + strlt r0, [r4, #0x2ac] + ldr r0, _0233F3BC @ =ov09_0233F3FC + cmp r5, #0 + str r0, [r4] + str r6, [r4, #0x100] + beq _0233F368 + add ip, r4, #0x104 + mov r7, #9 +_0233F350: + ldm r5!, {r0, r1, r2, r3} + stm ip!, {r0, r1, r2, r3} + subs r7, r7, #1 + bne _0233F350 + ldm r5, {r0, r1} + stm ip, {r0, r1} +_0233F368: + mov r2, #0 + add r0, sp, #0x18 + mov r1, #3 + str r2, [r4, #0x19c] + bl FUN_02027648 + add r1, sp, #8 + mov r7, r0 + bl FUN_02028284 + mov r5, #1 + str r5, [sp] + add r3, sp, #8 + mov r1, r6 + add r0, r4, #8 + add r2, r4, #0x104 + str r5, [sp, #4] + bl FUN_02031AF8 + mov r0, r7 + add sp, sp, #0x28 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0233F3B4: .4byte 0x0000C402 +_0233F3B8: .4byte 0x0233F7B4 +_0233F3BC: .4byte ov09_0233F3FC + arm_func_end ov09_0233F210 + + arm_func_start ov09_0233F3C0 +ov09_0233F3C0: @ 0x0233F3C0 + push {r4, lr} + mov r4, r0 + bl FUN_0202833C + bl FUN_02001188 + mov r0, r4 + bl FUN_02028194 + pop {r4, pc} + arm_func_end ov09_0233F3C0 + + arm_func_start ov09_0233F3DC +ov09_0233F3DC: @ 0x0233F3DC + push {r3, lr} + bl FUN_0202833C + ldr r0, [r0, #0x19c] + cmp r0, #4 + movne r0, #1 + moveq r0, #0 + and r0, r0, #0xff + pop {r3, pc} + arm_func_end ov09_0233F3DC + + arm_func_start ov09_0233F3FC +ov09_0233F3FC: @ 0x0233F3FC + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x2c + mov r5, r0 + ldr r4, [r5, #0xc] + ldr r0, [r4, #0x19c] + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _0233F564 +_0233F41C: @ jump table + b _0233F42C @ case 0 + b _0233F444 @ case 1 + b _0233F48C @ case 2 + b _0233F548 @ case 3 +_0233F42C: + ldrsb r0, [r5, #0x10] + bl FUN_0202810C + cmp r0, #0 + beq _0233F564 + mov r0, #1 + str r0, [r4, #0x19c] +_0233F444: + ldrsb r0, [r5, #0x10] + ldr r6, [r5, #0xc] + bl FUN_02027B1C + ldrsb r0, [r5, #0x10] + ldr r1, [r6, #0x2ac] + ldr r2, [r6, #0x2a8] + add r3, r6, #0x1a8 + bl FUN_02026214 + ldrsb r0, [r5, #0x10] + bl FUN_02027AF0 + ldr r1, [r6, #4] + mov r0, #1 + bl FUN_02330E38 + mov r0, #2 + str r0, [r4, #0x19c] + sub r0, r0, #3 + str r0, [r5, #0xb8] + b _0233F564 +_0233F48C: + bl FUN_02003B5C + cmp r0, #0 + movne r5, #0 + bne _0233F4AC + ldr r1, [r4, #0x100] + add r0, sp, #8 + bl FUN_02031914 + mov r5, r0 +_0233F4AC: + tst r5, #0xf3 + beq _0233F4CC + ldr r0, [r4, #4] + bl ov09_0233DB84 + ldr r0, [r4, #0x100] + mov r1, #2 + bl FUN_02031A3C + b _0233F538 +_0233F4CC: + tst r5, #0x100 + beq _0233F4EC + ldr r0, [r4, #0x100] + mov r1, #0 + bl FUN_02031A3C + mov r0, #3 + str r0, [r4, #0x19c] + b _0233F538 +_0233F4EC: + add r0, sp, #8 + mov r1, #2 + mov r2, #0 + bl FUN_02006C8C + cmp r0, #0 + beq _0233F51C + ldr r0, [r4, #0x100] + mov r1, #2 + bl FUN_02031A3C + ldr r0, [r4, #4] + bl ov09_0233DB84 + b _0233F538 +_0233F51C: + add r0, sp, #4 + str r0, [sp] + ldr r0, [r4, #4] + mov r2, r5 + add r1, r4, #8 + mov r3, #0 + bl ov09_0233DB90 +_0233F538: + ldr r1, [r4, #4] + mov r0, #1 + bl FUN_02330E38 + b _0233F564 +_0233F548: + ldrsb r0, [r5, #0x10] + bl FUN_0202812C + cmp r0, #0 + mvnne r0, #4 + strne r0, [r5, #0xb8] + movne r0, #4 + strne r0, [r4, #0x19c] +_0233F564: + add sp, sp, #0x2c + pop {r3, r4, r5, r6, pc} + arm_func_end ov09_0233F3FC + @ 0x0233F56C diff --git a/asm/overlay_13.s b/asm/overlay_13.s index 65a53299..ab422697 100644 --- a/asm/overlay_13.s +++ b/asm/overlay_13.s @@ -3,3 +3,2525 @@ .include "global.inc" .text + + arm_func_start EntryOverlay13 +EntryOverlay13: @ 0x0238A140 + push {r3, lr} + bl FUN_0201F2E4 + ldr r0, _0238A184 @ =0x00000428 + mov r1, #8 + bl FUN_02001170 + ldr r1, _0238A188 @ =0x0238CEA0 + mov r3, #0 + str r0, [r1] + strb r3, [r0] + ldr r2, [r1] + ldr r0, _0238A18C @ =0x0238C024 + str r3, [r2, #0x20] + ldr r1, [r1] + sub r2, r3, #2 + strb r2, [r1, #6] + bl FUN_020348E4 + pop {r3, pc} + .align 2, 0 +_0238A184: .4byte 0x00000428 +_0238A188: .4byte 0x0238CEA0 +_0238A18C: .4byte 0x0238C024 + arm_func_end EntryOverlay13 + + arm_func_start ExitOverlay13 +ExitOverlay13: @ 0x0238A190 + push {r3, lr} + ldr r0, _0238A1C4 @ =0x0238CEA0 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_0201F2E4 + ldr r0, _0238A1C4 @ =0x0238CEA0 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0238A1C4 @ =0x0238CEA0 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0238A1C4: .4byte 0x0238CEA0 + arm_func_end ExitOverlay13 + + arm_func_start Overlay13SwitchFunctionNa238A1C8 +Overlay13SwitchFunctionNa238A1C8: @ 0x0238A1C8 + push {r3, lr} + ldr r0, _0238A570 @ =0x0238CEA0 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0x13 + addls pc, pc, r0, lsl #2 + b _0238A568 +_0238A1E4: @ jump table + b _0238A234 @ case 0 + b _0238A24C @ case 1 + b _0238A280 @ case 2 + b _0238A384 @ case 3 + b _0238A45C @ case 4 + b _0238A4C4 @ case 5 + b _0238A4F4 @ case 6 + b _0238A418 @ case 7 + b _0238A3B8 @ case 8 + b _0238A3E8 @ case 9 + b _0238A568 @ case 10 + b _0238A568 @ case 11 + b _0238A524 @ case 12 + b _0238A550 @ case 13 + b _0238A2E8 @ case 14 + b _0238A2B4 @ case 15 + b _0238A490 @ case 16 + b _0238A31C @ case 17 + b _0238A350 @ case 18 + b _0238A558 @ case 19 +_0238A234: + bl FUN_022E6E68 + ldr r0, _0238A570 @ =0x0238CEA0 + mov r1, #0xd + ldr r0, [r0] + strb r1, [r0] + b _0238A568 +_0238A24C: + bl FUN_022E6EC8 + cmp r0, #0 + beq _0238A568 + mov r0, #1 + bl FUN_022E6E8C + ldr r0, _0238A570 @ =0x0238CEA0 + mov r3, #0xc + ldr r2, [r0] + mov r1, #0xd + strb r3, [r2] + ldr r0, [r0] + strb r1, [r0, #1] + b _0238A568 +_0238A280: + bl FUN_022E6EC8 + cmp r0, #0 + beq _0238A568 + mov r0, #0x19 + bl FUN_022E6E8C + ldr r0, _0238A570 @ =0x0238CEA0 + mov r3, #0xc + ldr r2, [r0] + mov r1, #0xd + strb r3, [r2] + ldr r0, [r0] + strb r1, [r0, #1] + b _0238A568 +_0238A2B4: + bl FUN_022E6EC8 + cmp r0, #0 + beq _0238A568 + mov r0, #0x1d + bl FUN_022E6E8C + ldr r0, _0238A570 @ =0x0238CEA0 + mov r3, #0xc + ldr r2, [r0] + mov r1, #0xd + strb r3, [r2] + ldr r0, [r0] + strb r1, [r0, #1] + b _0238A568 +_0238A2E8: + bl FUN_022E6EC8 + cmp r0, #0 + beq _0238A568 + mov r0, #0x1c + bl FUN_022E6E8C + ldr r0, _0238A570 @ =0x0238CEA0 + mov r3, #0xc + ldr r2, [r0] + mov r1, #0xd + strb r3, [r2] + ldr r0, [r0] + strb r1, [r0, #1] + b _0238A568 +_0238A31C: + bl FUN_022E6EC8 + cmp r0, #0 + beq _0238A568 + mov r0, #0x1f + bl FUN_022E6E8C + ldr r0, _0238A570 @ =0x0238CEA0 + mov r3, #0xc + ldr r2, [r0] + mov r1, #0xd + strb r3, [r2] + ldr r0, [r0] + strb r1, [r0, #1] + b _0238A568 +_0238A350: + bl FUN_022E6EC8 + cmp r0, #0 + beq _0238A568 + mov r0, #0x20 + bl FUN_022E6E8C + ldr r0, _0238A570 @ =0x0238CEA0 + mov r3, #0xc + ldr r2, [r0] + mov r1, #0xd + strb r3, [r2] + ldr r0, [r0] + strb r1, [r0, #1] + b _0238A568 +_0238A384: + bl FUN_022E6EC8 + cmp r0, #0 + beq _0238A568 + mov r0, #0x18 + bl FUN_022E6E8C + ldr r0, _0238A570 @ =0x0238CEA0 + mov r3, #0xc + ldr r2, [r0] + mov r1, #0xd + strb r3, [r2] + ldr r0, [r0] + strb r1, [r0, #1] + b _0238A568 +_0238A3B8: + bl FUN_022E6EC8 + cmp r0, #0 + beq _0238A3E8 + mov r0, #0x15 + bl FUN_022E6E8C + ldr r0, _0238A570 @ =0x0238CEA0 + mov r3, #0xc + ldr r2, [r0] + mov r1, #0xd + strb r3, [r2] + ldr r0, [r0] + strb r1, [r0, #1] +_0238A3E8: + bl FUN_022E6EC8 + cmp r0, #0 + beq _0238A418 + mov r0, #0x16 + bl FUN_022E6E8C + ldr r0, _0238A570 @ =0x0238CEA0 + mov r3, #0xc + ldr r2, [r0] + mov r1, #0xd + strb r3, [r2] + ldr r0, [r0] + strb r1, [r0, #1] +_0238A418: + bl FUN_022E6EC8 + cmp r0, #0 + beq _0238A568 + ldr r0, _0238A570 @ =0x0238CEA0 + ldr r0, [r0] + add r0, r0, #0x400 + ldrh r0, [r0, #0x26] + add r0, r0, #5 + bl FUN_022E6E8C + ldr r0, _0238A570 @ =0x0238CEA0 + mov r3, #0xc + ldr r2, [r0] + mov r1, #0xd + strb r3, [r2] + ldr r0, [r0] + strb r1, [r0, #1] + b _0238A568 +_0238A45C: + bl FUN_022E6EC8 + cmp r0, #0 + beq _0238A568 + arm_func_end Overlay13SwitchFunctionNa238A1C8 + + arm_func_start ov13_0238A468 +ov13_0238A468: @ 0x0238A468 + mov r0, #2 + bl FUN_022E6E8C + ldr r0, _0238A570 @ =0x0238CEA0 + mov r3, #0xc + ldr r2, [r0] + mov r1, #0xd + strb r3, [r2] + ldr r0, [r0] + strb r1, [r0, #1] + b _0238A568 +_0238A490: + bl FUN_022E6EC8 + cmp r0, #0 + beq _0238A568 + mov r0, #0x1e + bl FUN_022E6E8C + ldr r0, _0238A570 @ =0x0238CEA0 + mov r3, #0xc + ldr r2, [r0] + mov r1, #0xd + strb r3, [r2] + ldr r0, [r0] + strb r1, [r0, #1] + b _0238A568 +_0238A4C4: + bl FUN_022E6EC8 + cmp r0, #0 + beq _0238A4F4 + mov r0, #3 + bl FUN_022E6E8C + ldr r0, _0238A570 @ =0x0238CEA0 + mov r3, #0xc + ldr r2, [r0] + mov r1, #0xd + strb r3, [r2] + ldr r0, [r0] + strb r1, [r0, #1] +_0238A4F4: + bl FUN_022E6EC8 + cmp r0, #0 + beq _0238A524 + mov r0, #4 + bl FUN_022E6E8C + ldr r0, _0238A570 @ =0x0238CEA0 + mov r3, #0xc + ldr r2, [r0] + mov r1, #0xd + strb r3, [r2] + ldr r0, [r0] + strb r1, [r0, #1] +_0238A524: + bl FUN_022E6EC8 + cmp r0, #0 + beq _0238A568 + ldr r0, _0238A570 @ =0x0238CEA0 + mov r1, #0xd + ldr r3, [r0] + ldrb r2, [r3, #1] + strb r2, [r3] + ldr r0, [r0] + strb r1, [r0, #1] + b _0238A568 +_0238A550: + bl Overlay13SwitchFunctionNa238A574 + b _0238A568 +_0238A558: + mvn r0, #0 + bl FUN_022E6E8C + mov r0, #4 + pop {r3, pc} +_0238A568: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0238A570: .4byte 0x0238CEA0 + arm_func_end ov13_0238A468 + + arm_func_start Overlay13SwitchFunctionNa238A574 +Overlay13SwitchFunctionNa238A574: @ 0x0238A574 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x178 + add r0, sp, #0xb0 + bl FUN_02006C1C + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + add r0, r0, #0x3b4 + bl FUN_0204D79C + ldr r2, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r2] + ldr r1, [r0, #0x20] + cmp r1, #0x41 + addls pc, pc, r1, lsl #2 + b _0238BD74 +_0238A5AC: @ jump table + b _0238A6B4 @ case 0 + b _0238A73C @ case 1 + b _0238A79C @ case 2 + b _0238A8B8 @ case 3 + b _0238AA00 @ case 4 + b _0238AA28 @ case 5 + b _0238AA6C @ case 6 + b _0238AC2C @ case 7 + b _0238AEF4 @ case 8 + b _0238B038 @ case 9 + b _0238B4C0 @ case 10 + b _0238B0A8 @ case 11 + b _0238B0C4 @ case 12 + b _0238B4C0 @ case 13 + b _0238AE90 @ case 14 + b _0238B5A4 @ case 15 + b _0238AF38 @ case 16 + b _0238B100 @ case 17 + b _0238B558 @ case 18 + b _0238AE90 @ case 19 + b _0238AF44 @ case 20 + b _0238B13C @ case 21 + b _0238B4C0 @ case 22 + b _0238AE90 @ case 23 + b _0238B608 @ case 24 + b _0238B63C @ case 25 + b _0238AF80 @ case 26 + b _0238B178 @ case 27 + b _0238B488 @ case 28 + b _0238AE80 @ case 29 + b _0238AFA0 @ case 30 + b _0238B1B4 @ case 31 + b _0238B488 @ case 32 + b _0238AE78 @ case 33 + b _0238AFF8 @ case 34 + b _0238BD74 @ case 35 + b _0238ACC0 @ case 36 + b _0238AD00 @ case 37 + b _0238ADD4 @ case 38 + b _0238AEA8 @ case 39 + b _0238B670 @ case 40 + b _0238B410 @ case 41 + b _0238B6AC @ case 42 + b _0238B410 @ case 43 + b _0238B878 @ case 44 + b _0238BA70 @ case 45 + b _0238BCA8 @ case 46 + b _0238B6E8 @ case 47 + b _0238B230 @ case 48 + b _0238B2A4 @ case 49 + b _0238B2FC @ case 50 + b _0238B32C @ case 51 + b _0238B360 @ case 52 + b _0238B3D4 @ case 53 + b _0238B744 @ case 54 + b _0238ADF8 @ case 55 + b _0238AE20 @ case 56 + b _0238AE68 @ case 57 + b _0238BCC8 @ case 58 + b _0238B774 @ case 59 + b _0238B7C0 @ case 60 + b _0238AFBC @ case 61 + b _0238B204 @ case 62 + b _0238B438 @ case 63 + b _0238BCFC @ case 64 + b _0238BD1C @ case 65 +_0238A6B4: + mov r0, #0x64 + bl FUN_02002274 + cmp r0, #0x4b + blt _0238A6E0 + add r0, sp, #0x14 + bl FUN_0204A198 + ldrb r1, [sp, #0x19] + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + and r1, r1, #0xf + b _0238A6F4 +_0238A6E0: + add r0, sp, #0xd4 + bl FUN_02004F74 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldrb r1, [sp, #0xd5] + ldr r0, [r0] +_0238A6F4: + add r0, r0, #0x400 + strh r1, [r0, #0x26] + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r3, #0xe + ldr r1, [r0] + mov r2, #0 + strb r3, [r1] + ldr r1, [r0] + str r2, [r1, #0x24] + ldr r1, [r0] + strb r2, [r1, #0x5e] + ldr r1, [r0] + strb r2, [r1, #0x5f] + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238A73C: + ldr r0, _0238B4FC @ =0x0238C064 + bl FUN_0202F0B0 + ldr r1, _0238B4F8 @ =0x0238CEA0 + mov r3, #2 + ldr r4, [r1] + mov r2, #0xa + strb r0, [r4, #2] + ldr r0, [r1] + add r1, sp, #0x1c + ldrsb r0, [r0, #2] + str r3, [sp, #0x1c] + str r2, [sp, #0x20] + ldm r1, {r1, r2} + bl FUN_02028770 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r1, #8 + ldr r0, [r0] + add r2, r1, #0x6c0 + ldrsb r0, [r0, #2] + mov r3, #0 + bl FUN_0202F1B4 + mov r0, #2 + bl WaitForNextStep + b _0238BD74 +_0238A79C: + mov r1, #0x10 + strb r1, [r0] + ldr r0, [r2] + ldrsb r0, [r0, #2] + bl FUN_0202836C + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #2] + bl FUN_0202F148 + ldr r1, _0238B4F8 @ =0x0238CEA0 + ldr r0, _0238B500 @ =0x0238C034 + ldr r1, [r1] + mvn r2, #1 + strb r2, [r1, #2] + bl FUN_0202F0B0 + ldr r1, _0238B4F8 @ =0x0238CEA0 + mov r3, #0 + ldr r2, [r1] + mov sb, r3 + strb r0, [r2, #2] + ldr r2, [r1] + ldr r0, [r2, #0x20] + add r0, r0, #1 + str r0, [r2, #0x20] + add r0, sp, #0x24 +_0238A800: + ldr r2, [r1] + add r2, r2, r3 + strb sb, [r2, #0x34] + strb sb, [r0, r3] + add r3, r3, #1 + cmp r3, #0x10 + blt _0238A800 + ldr sl, _0238B4F8 @ =0x0238CEA0 + mov r5, #1 + mov r4, #4 + mov r8, #0x10 + add r6, sp, #0x24 +_0238A830: + mov r0, r8 + bl FUN_02002274 + mov r7, r0 + ldrsb r0, [r6, r7] + cmp r0, #0 + bne _0238A830 + mov r0, r4 + strb r5, [r6, r7] + bl FUN_02002274 + ldr r1, [sl] + add r2, r0, r7, lsl #2 + add r0, r1, sb + add sb, sb, #1 + strb r2, [r0, #0x55] + cmp sb, #8 + blt _0238A830 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r3, #0x41 + ldr r1, [r0] + mov r2, #0x40 + strb r3, [r1, #0x54] + ldr r1, [r0] + mov r0, #0xb + strb r2, [r1, #0x5d] + bl FUN_0200C110 + cmp r0, #0 + beq _0238BD74 + ldr r0, _0238B504 @ =0x0238C054 + ldr r1, _0238B508 @ =ov13_0238BE6C + bl FUN_0202F8C4 + ldr r1, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r1] + strb r0, [r1, #6] + b _0238BD74 +_0238A8B8: + ldrsb r0, [r0, #2] + mov r3, #2 + mov r2, #0x11 + add r1, sp, #0x1c + str r3, [sp, #0x1c] + str r2, [sp, #0x20] + ldm r1, {r1, r2} + bl FUN_02028770 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r3, _0238B50C @ =0x0238CF24 + ldr r7, [r0] + mov r2, #0 + ldr r4, [r7, #0x24] + ldr r1, _0238B510 @ =0x0238C1AC + add r4, r7, r4 + ldrb r4, [r4, #0x54] + lsl r4, r4, #1 + ldrh r5, [r3, r4] + ldrh r6, [r1, r4] + str r2, [r7, #0x14] + ldr r3, [r0] + mov r1, r6 + ldr r2, [r3, #0x14] + and r8, r5, #0xff + str r2, [r3, #0x18] + ldr r3, [r0] + ldr r2, [r3, #0x18] + str r2, [r3, #0x1c] + ldr r0, [r0] + add r0, r0, #0x6c + bl FUN_020258B8 + asr r0, r5, #8 + ldr r4, _0238B4F8 @ =0x0238CEA0 + and r1, r0, #0xff + ldr r2, [r4] + mov r7, #0 + strh r6, [r2, #0x60] + ldr r2, [r4] + ldr r5, _0238B514 @ =0x0238CECC + add r0, r2, #0x6c + str r0, [r2, #8] + ldr r0, _0238B518 @ =0x0238C230 + add r6, r0, r1, lsl #1 + b _0238A9A4 +_0238A968: + lsl r0, r7, #1 + ldrh sb, [r0, r6] + ldr r0, [r4] + add r0, r0, #0x26c + mov r1, sb + add r0, r0, r7, lsl #6 + bl FUN_020258B8 + ldr r2, [r4] + lsl r1, r7, #3 + add r0, r2, #0x26c + strh sb, [r5, r1] + add r1, r0, r7, lsl #6 + add r0, r2, r7, lsl #2 + str r1, [r0, #0xc] + add r7, r7, #1 +_0238A9A4: + cmp r7, r8 + bne _0238A968 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, _0238B514 @ =0x0238CECC + lsl r2, r8, #3 + mov r3, #0 + ldr r0, [r0] + strh r3, [r1, r2] + ldrsb r0, [r0, #2] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r1, #4 + ldr r2, [r0] + mov r3, #0 + ldrsb r0, [r2, #2] + ldrh r2, [r2, #0x60] + bl FUN_0202F1B4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238AA00: + ldrsb r0, [r0, #2] + bl FUN_0202F180 + cmp r0, #0 + bne _0238BD74 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238AA28: + add r4, r0, #0xc + ldr r0, _0238B51C @ =0x0238CEAC + ldr r1, _0238B520 @ =0x00300011 + ldr r3, _0238B514 @ =0x0238CECC + str r4, [r2, #0x18] + mov r4, #0xa + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238B4F8 @ =0x0238CEA0 + ldr r2, [r1] + strb r0, [r2, #3] + ldr r1, [r1] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238AA6C: + ldrsb r0, [r0, #3] + bl FUN_0202B4F0 + cmp r0, #0 + bne _0238BD74 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #3] + bl FUN_0202B57C + ldr r3, _0238B4F8 @ =0x0238CEA0 + ldr r2, [r3] + ldr r1, [r2, #0x24] + cmp r1, #9 + bne _0238AB74 + strb r0, [r2, #0x5f] + ldr r0, [r3] + ldrb r0, [r0, #0x5e] + cmp r0, #0 + bne _0238AAF4 + mov r4, #0 + ldr r2, _0238B524 @ =0x0238C01C + b _0238AAEC +_0238AAC0: + ldr r1, [r3] + ldrb r0, [r1, #0x5f] + add r0, r2, r0, lsl #2 + ldrb r0, [r4, r0] + cmp r0, #0x10 + beq _0238AAF4 + add r1, r1, r0 + ldrb r0, [r1, #0x34] + add r4, r4, #1 + add r0, r0, #4 + strb r0, [r1, #0x34] +_0238AAEC: + cmp r4, #4 + bne _0238AAC0 +_0238AAF4: + mov r4, #0 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r3, r4 + mov r2, r4 +_0238AB04: + ldr r1, [r0] + add r1, r1, r3 + strb r2, [r1, #0x44] + ldr r1, [r0] + add r1, r1, r3 + ldrb r1, [r1, #0x34] + add r3, r3, #1 + cmp r4, r1 + movlt r4, r1 + cmp r3, #0x10 + blt _0238AB04 + ldr r6, _0238B4F8 @ =0x0238CEA0 + mov r5, #0 + mov r7, #0x14 +_0238AB3C: + ldr r0, [r6] + add r0, r0, r5 + ldrb r0, [r0, #0x34] + cmp r4, r0 + bne _0238AB64 + mov r0, r7 + bl FUN_02002274 + ldr r1, [r6] + add r1, r1, r5 + strb r0, [r1, #0x44] +_0238AB64: + add r5, r5, #1 + cmp r5, #0x10 + blt _0238AB3C + b _0238ABF8 +_0238AB74: + cmp r1, #0 + bne _0238ABA4 + strb r0, [r2, #0x5e] + ldr r0, [r3] + mov r1, #0x6f + ldrb r0, [r0, #0x5e] + cmp r0, #0 + moveq r2, #1 + movne r2, #0 + mov r0, #0 + bl FUN_0204B820 + b _0238ABF8 +_0238ABA4: + add r1, r2, r1 + ldrb r2, [r1, #0x54] + ldr r1, _0238B50C @ =0x0238CF24 + ldr r5, _0238B528 @ =0x0238C390 + lsl r2, r2, #1 + ldrh r2, [r1, r2] + mov r1, #0 + and r4, r2, #0xff00 + asr r2, r4, #7 + add r2, r4, r2, lsr #24 + add r0, r0, r2, asr #8 + add r5, r5, r0, lsl #4 +_0238ABD4: + ldr r2, [r3] + ldrb r0, [r5, r1] + add r4, r2, r1 + ldrb r2, [r4, #0x34] + add r1, r1, #1 + cmp r1, #0x10 + add r0, r2, r0 + strb r0, [r4, #0x34] + blt _0238ABD4 +_0238ABF8: + ldr r0, _0238B4F8 @ =0x0238CEA0 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #6] + cmp r0, r1 + beq _0238AC14 + bl ov13_0238BE6C +_0238AC14: + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238AC2C: + ldrsb r0, [r0, #2] + bl FUN_02027B1C + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #3] + bl FUN_0202B4C4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mvn r1, #1 + ldr r2, [r0] + strb r1, [r2, #3] + ldr r3, [r0] + ldr r2, [r3, #0x24] + add r2, r2, #1 + str r2, [r3, #0x24] + ldr r4, [r0] + ldr r2, [r4, #0x24] + cmp r2, #0xa + bne _0238ACB4 + ldr r2, [r4, #0x20] + mov r3, #4 + add r2, r2, #1 + str r2, [r4, #0x20] + ldr r2, [r0] + str r3, [r2, #0x30] + ldr r0, [r0] + ldrsb r0, [r0, #6] + cmp r0, r1 + beq _0238BD74 + bl FUN_0202F8FC + ldr r0, _0238B4F8 @ =0x0238CEA0 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #6] + b _0238BD74 +_0238ACB4: + mov r0, #3 + str r0, [r4, #0x20] + b _0238BD74 +_0238ACC0: + ldrsb r0, [r0, #2] + bl FUN_0202F3A4 + bl GetPersonality + ldr r1, _0238B4F8 @ =0x0238CEA0 + add r0, r0, r0, lsl #1 + ldr r3, [r1] + lsl r2, r0, #1 + ldr r1, _0238B52C @ =0x0238C14C + ldrsb r0, [r3, #2] + ldrh r2, [r1, r2] + mov r1, #8 + mov r3, #0 + bl FUN_0202F1B4 + mov r0, #0x25 + bl WaitForNextStep + b _0238BD74 +_0238AD00: + mov r0, #0 + mov r1, #3 + mov r2, #1 + bl FUN_0202F5AC + ldr r1, _0238B4F8 @ =0x0238CEA0 + ldr r2, [r1] + strb r0, [r2, #5] + ldr r4, [r1] + bl GetPersonality + mov r3, r0 + ldrb r2, [r4, #0x5f] + ldr r1, _0238B530 @ =0x0238C0B8 + add r0, r4, #0x3b4 + add r2, r2, r3, lsl #1 + lsl r2, r2, #1 + ldrsh r1, [r1, r2] + bl FUN_0204D7D4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r1, #1 + ldr r0, [r0] + add r0, r0, #0x3b4 + bl FUN_0204D7F4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r1, #4 + ldr r0, [r0] + add r0, r0, #0x3b4 + bl FUN_0204D804 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldrsb r0, [r1, #5] + add r1, r1, #0x3b4 + bl FUN_0202F690 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #2] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r4, [r0] + bl GetPersonality + add r0, r0, r0, lsl #1 + add r3, r0, #1 + ldrsb r0, [r4, #2] + ldrb r4, [r4, #0x5f] + ldr r2, _0238B52C @ =0x0238C14C + mov r1, #0x18 + add r3, r4, r3 + lsl r3, r3, #1 + ldrh r2, [r2, r3] + mov r3, #0 + bl FUN_0202F1B4 + mov r0, #0x26 + bl WaitForNextStep + b _0238BD74 +_0238ADD4: + ldrsb r0, [r0, #2] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #5] + bl FUN_0202F6DC + mov r0, #0x27 + bl WaitForNextStep + b _0238BD74 +_0238ADF8: + ldrsb r0, [r0, #2] + arm_func_end Overlay13SwitchFunctionNa238A574 + + arm_func_start ov13_0238ADFC +ov13_0238ADFC: @ 0x0238ADFC + bl FUN_0202F2C4 + mov r0, #0xb4 + bl FUN_02017B7C + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238AE20: + ldrsb r0, [r0, #2] + bl FUN_0202836C + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #2] + bl FUN_0202F148 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mvn r3, #1 + ldr r2, [r0] + mov r1, #0xf + strb r3, [r2, #2] + ldr r3, [r0] + ldr r2, [r3, #0x20] + add r2, r2, #1 + str r2, [r3, #0x20] + ldr r0, [r0] + strb r1, [r0] + b _0238BD74 +_0238AE68: + mov r1, #0x13 + strb r1, [r0] + bl FUN_0230D71C + b _0238BD74 +_0238AE78: + mov r1, #4 + strb r1, [r0] +_0238AE80: + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_0202F2C4 +_0238AE90: + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238AEA8: + ldrsb r0, [r0, #2] + bl FUN_0202F2C4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #5] + bl FUN_0202F6DC + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #5] + bl FUN_0202F650 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mvn r2, #1 + ldr r1, [r0] + strb r2, [r1, #5] + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238AEF4: + ldrsb r0, [r0, #2] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #2] + bl FUN_0202F2C4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r3, [r0] + ldr r2, [r3, #0x30] + sub r1, r2, #1 + str r1, [r3, #0x30] + cmp r2, #0 + ldreq r1, [r0] + ldreq r0, [r1, #0x20] + addeq r0, r0, #1 + streq r0, [r1, #0x20] + b _0238BD74 +_0238AF38: + add r1, r1, #1 + str r1, [r0, #0x20] + b _0238BD74 +_0238AF44: + ldr r0, _0238B534 @ =0x00002208 + bl FUN_02017CB4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r2, #3 + ldr r1, [r0] + strb r2, [r1] + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_0202F2C4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238AF80: + ldrsb r0, [r0, #4] + bl FUN_0202F2C4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238AFA0: + mov r1, #7 + strb r1, [r0] + ldr r1, [r2] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238AFBC: + ldr r0, _0238B534 @ =0x00002208 + bl FUN_02017CB4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r2, #2 + ldr r1, [r0] + strb r2, [r1] + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_0202F2C4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238AFF8: + ldrsb r0, [r0, #4] + bl FUN_0202F148 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #2] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r2, _0238B538 @ =0x000005CC + ldr r0, [r0] + mov r1, #8 + ldrsb r0, [r0, #2] + mov r3, #0 + bl FUN_0202F1B4 + mov r0, #0x24 + bl WaitForNextStep + b _0238BD74 +_0238B038: + ldrb r1, [r0, #0x5f] + ldr r0, _0238B53C @ =0x0238C010 + ldrb r0, [r0, r1] + bl FUN_02027A80 + ldr r0, _0238B540 @ =0x0238C044 + bl FUN_0202F0B0 + ldr r1, _0238B4F8 @ =0x0238CEA0 + ldr r2, [r1] + strb r0, [r2, #4] + ldr r0, [r1] + ldrsb r0, [r0, #4] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r2, _0238B544 @ =0x000006AD + ldr r0, [r0] + mov r1, #8 + ldrsb r0, [r0, #4] + mov r3, #0 + bl FUN_0202F1B4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r2, #0x11 + ldr r1, [r0] + strb r2, [r1] + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238B0A8: + mov r1, #0x12 + strb r1, [r0] + ldr r1, [r2] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238B0C4: + ldrsb r0, [r0, #4] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r2, _0238B548 @ =0x000006AE + ldr r0, [r0] + mov r1, #8 + ldrsb r0, [r0, #4] + mov r3, #0 + bl FUN_0202F1B4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238B100: + ldrsb r0, [r0, #4] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r2, _0238B54C @ =0x000006AF + ldr r0, [r0] + mov r1, #8 + ldrsb r0, [r0, #4] + mov r3, #0 + bl FUN_0202F1B4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238B13C: + ldrsb r0, [r0, #4] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r1, #8 + ldr r0, [r0] + mov r2, #0x6b0 + ldrsb r0, [r0, #4] + mov r3, #0 + bl FUN_0202F1B4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238B178: + ldrsb r0, [r0, #4] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r2, _0238B550 @ =0x000006B1 + ldr r0, [r0] + mov r1, #0x18 + ldrsb r0, [r0, #4] + mov r3, #0 + bl FUN_0202F1B4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238B1B4: + ldrsb r0, [r0, #4] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r1, #8 + ldr r4, [r0] + mov r3, #0 + add r0, r4, #0x400 + ldrh r2, [r0, #0x26] + ldrsb r0, [r4, #4] + add r2, r2, #0xb2 + add r2, r2, #0x600 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + bl FUN_0202F1B4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238B204: + ldrsb r0, [r0, #4] + ldr r2, _0238B554 @ =0x000006C9 + mov r1, #0x218 + mov r3, #0 + bl FUN_0202F1B4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238B230: + add r0, r0, #0x400 + ldrsh r1, [r0, #0x24] + add r0, sp, #0x70 + bl FUN_02052394 + ldr r0, _0238B4F8 @ =0x0238CEA0 + add r1, sp, #0x70 + ldr r0, [r0] + add r0, r0, #0x3e4 + bl FUN_02025230 + ldr r0, _0238B4F8 @ =0x0238CEA0 + add r1, sp, #0x70 + ldr r0, [r0] + add r0, r0, #4 + add r0, r0, #0x400 + bl FUN_02025230 + ldr r1, _0238B4F8 @ =0x0238CEA0 + mov r0, #3 + ldr r3, [r1] + mov r2, #0 + add r1, r3, #0x3e4 + add r3, r3, #4 + add r3, r3, #0x400 + bl FUN_020367F0 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238B2A4: + bl FUN_02036CD4 + cmp r0, #3 + bne _0238BD74 + bl FUN_0203755C + ldr r1, _0238B4F8 @ =0x0238CEA0 + mov r4, r0 + ldr r0, [r1] + mov r1, r4 + add r0, r0, #0x3c4 + mov r2, #0x10 + bl FUN_020251F4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r1, r4 + ldr r0, [r0] + add r0, r0, #0x3e4 + bl FUN_02025100 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238B2FC: + bl FUN_02037468 + cmp r0, #0 + beq _0238BD74 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r2, [r0] + ldr r1, [r2, #0x20] + add r1, r1, #1 + str r1, [r2, #0x20] + ldr r0, [r0] + add r0, r0, #0x3c4 + bl FUN_0203909C + b _0238BD74 +_0238B32C: + bl FUN_0203931C + cmp r0, #0 + ldreq r0, _0238B4F8 @ =0x0238CEA0 + moveq r1, #0x34 + ldreq r0, [r0] + streq r1, [r0, #0x20] + beq _0238BD74 + cmp r0, #1 + ldreq r0, _0238B4F8 @ =0x0238CEA0 + moveq r1, #0x35 + ldreq r0, [r0] + streq r1, [r0, #0x20] + b _0238BD74 +_0238B360: + bl FUN_02039218 + cmp r0, #0 + beq _0238BD74 + add r0, sp, #0x34 + bl FUN_02048764 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r4, [r0] + bl GetPersonality + ldrb r3, [r4, #0x5f] + ldr r1, _0238B530 @ =0x0238C0B8 + add r2, r4, #0x400 + add r0, r3, r0, lsl #1 + lsl r0, r0, #1 + ldrsh r3, [r1, r0] + add r0, sp, #0x4c + add r1, r4, #0x3e4 + strh r3, [sp, #0x34] + ldrsh r3, [r2, #0x24] + strh r3, [sp, #0x36] + ldrh r2, [r2, #0x26] + str r2, [sp, #0x60] + bl FUN_02025100 + add r0, sp, #0x34 + bl FUN_02048794 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r1, #0x36 + ldr r0, [r0] + str r1, [r0, #0x20] + b _0238BD74 +_0238B3D4: + bl FUN_02039218 + cmp r0, #0 + beq _0238BD74 + ldr r1, _0238B4F8 @ =0x0238CEA0 + mov r3, #0x31 + ldr r2, [r1] + mov r0, #3 + str r3, [r2, #0x20] + ldr r1, [r1] + mov r2, #0 + add r3, r1, #4 + add r1, r1, #0x3e4 + add r3, r3, #0x400 + bl FUN_020367F0 + b _0238BD74 +_0238B410: + ldrsb r0, [r0, #2] + bl FUN_0202F180 + cmp r0, #0 + bne _0238BD74 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238B438: + ldrsb r0, [r0, #4] + bl FUN_0202F180 + cmp r0, #0 + bne _0238BD74 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_0202F2C4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r3, #0xc + ldr r2, [r0] + mov r1, #1 + str r3, [r2, #0x20] + ldr r0, [r0] + strb r1, [r0] + b _0238BD74 +_0238B488: + ldrsb r0, [r0, #4] + bl FUN_0202F180 + cmp r0, #0 + bne _0238BD74 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238B4C0: + ldrsb r0, [r0, #4] + bl FUN_0202F180 + cmp r0, #0 + bne _0238BD74 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 + .align 2, 0 +_0238B4F8: .4byte 0x0238CEA0 +_0238B4FC: .4byte 0x0238C064 +_0238B500: .4byte 0x0238C034 +_0238B504: .4byte 0x0238C054 +_0238B508: .4byte ov13_0238BE6C +_0238B50C: .4byte 0x0238CF24 +_0238B510: .4byte 0x0238C1AC +_0238B514: .4byte 0x0238CECC +_0238B518: .4byte 0x0238C230 +_0238B51C: .4byte 0x0238CEAC +_0238B520: .4byte 0x00300011 +_0238B524: .4byte 0x0238C01C +_0238B528: .4byte 0x0238C390 +_0238B52C: .4byte 0x0238C14C +_0238B530: .4byte 0x0238C0B8 +_0238B534: .4byte 0x00002208 +_0238B538: .4byte 0x000005CC +_0238B53C: .4byte 0x0238C010 +_0238B540: .4byte 0x0238C044 +_0238B544: .4byte 0x000006AD +_0238B548: .4byte 0x000006AE +_0238B54C: .4byte 0x000006AF +_0238B550: .4byte 0x000006B1 +_0238B554: .4byte 0x000006C9 +_0238B558: + ldrh r1, [sp, #0xb0] + tst r1, #1 + moveq r1, #0x3d + streq r1, [r0, #0x20] + beq _0238BD74 + ldrsb r0, [r0, #4] + bl FUN_0202F180 + cmp r0, #0 + bne _0238BD74 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238B5A4: + add r1, sp, #8 + mov r0, #0 + bl FUN_0200625C + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r2, #0x3c + ldr r0, [r0] + add r1, sp, #0xc + str r2, [r0, #0x28] + mov r0, #0 + bl FUN_022EB3C8 + ldrh r0, [sp, #0xb0] + tst r0, #1 + beq _0238BD74 + ldr r1, _0238B4F8 @ =0x0238CEA0 + mov r3, #5 + ldr r2, [r1] + ldr r0, _0238B534 @ =0x00002208 + strb r3, [r2] + ldr r3, [r1] + mov r1, #0x100 + ldr r2, [r3, #0x20] + add r2, r2, #1 + str r2, [r3, #0x20] + bl FUN_02017C74 + b _0238BD74 +_0238B608: + ldr r1, [r0, #0x28] + cmp r1, #0 + subne r1, r1, #1 + strne r1, [r0, #0x28] + ldrh r0, [sp, #0xb0] + tst r0, #1 + bne _0238BD74 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238B63C: + ldr r1, [r0, #0x28] + cmp r1, #0 + subne r1, r1, #1 + strne r1, [r0, #0x28] + bne _0238BD74 + ldrsb r0, [r0, #4] + bl FUN_0202F2C4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238B670: + ldrsb r0, [r0, #2] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r2, _0238BD7C @ =0x000006C2 + ldr r0, [r0] + mov r1, #8 + ldrsb r0, [r0, #2] + mov r3, #0 + bl FUN_0202F1B4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238B6AC: + ldrsb r0, [r0, #2] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r2, _0238BD80 @ =0x000006C3 + ldr r0, [r0] + mov r1, #4 + ldrsb r0, [r0, #2] + mov r3, #0 + bl FUN_0202F1B4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238B6E8: + add r0, sp, #0x128 + bl FUN_02023690 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r0, #4] + add r0, r1, r0, lsl #1 + add r0, r0, #0x300 + ldrsh r0, [r0, #0x74] + str r0, [sp, #0x128] + ldrsb r0, [r1, #2] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r1, #4 + ldr r0, [r0] + add r3, sp, #0x128 + ldrsb r0, [r0, #2] + add r2, r1, #0x6c0 + bl FUN_0202F1B4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r1, #0x3b + ldr r0, [r0] + str r1, [r0, #0x20] + b _0238BD74 +_0238B744: + ldrsb r0, [r0, #2] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r2, _0238BD84 @ =0x000006C5 + ldr r0, [r0] + mov r1, #8 + ldrsb r0, [r0, #2] + mov r3, #0 + bl FUN_0202F1B4 + mov r0, #0x37 + bl WaitForNextStep + b _0238BD74 +_0238B774: + ldrsb r0, [r0, #2] + bl FUN_0202F180 + cmp r0, #0 + bne _0238BD74 + ldr r0, _0238B51C @ =0x0238CEAC + mov r4, #2 + ldr r1, _0238BD88 @ =0x00300013 + ldr r3, _0238BD8C @ =0x0238C074 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238B4F8 @ =0x0238CEA0 + ldr r2, [r1] + strb r0, [r2, #3] + ldr r1, [r1] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238B7C0: + ldrsb r0, [r0, #3] + bl FUN_0202B57C + cmp r0, #1 + beq _0238B7DC + cmp r0, #2 + beq _0238B848 + b _0238BD74 +_0238B7DC: + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #2] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #2] + bl FUN_0202F2C4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #3] + bl FUN_0202B4C4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mvn r2, #1 + ldr r1, [r0] + strb r2, [r1, #3] + ldr r0, [r0] + ldrsb r0, [r0, #5] + bl FUN_0202F650 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mvn r3, #1 + ldr r2, [r0] + mov r1, #0x30 + strb r3, [r2, #5] + ldr r0, [r0] + str r1, [r0, #0x20] + b _0238BD74 +_0238B848: + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #3] + bl FUN_0202B4C4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mvn r3, #1 + ldr r2, [r0] + mov r1, #0x2a + strb r3, [r2, #3] + ldr r0, [r0] + str r1, [r0, #0x20] + b _0238BD74 +_0238B878: + mov r0, #0x1f + str r0, [r2, #8] + bl GetPersonality + ldr r1, _0238B4F8 @ =0x0238CEA0 + ldr r2, _0238B530 @ =0x0238C0B8 + ldr r1, [r1] + ldrb r1, [r1, #0x5f] + add r0, r1, r0, lsl #1 + lsl r0, r0, #1 + ldrsh r4, [r2, r0] + mov r0, r4 + bl FUN_02054760 + cmp r0, #2 + bne _0238B8BC + mov r0, r4 + bl FUN_02054BE0 + mov r4, r0 +_0238B8BC: + ldr r1, _0238B4F8 @ =0x0238CEA0 + mov r0, r4 + ldr r2, [r1] + mov r1, #0 + str r1, [r2, #0x370] + bl FUN_02052A04 + ldr r2, _0238BD90 @ =0x0238C0F8 + mov r1, #1 + ldr sb, [r2, r0, lsl #2] + mov r0, r4 + bl FUN_02052A04 + ldr r1, _0238BD90 @ =0x0238C0F8 + ldr r1, [r1, r0, lsl #2] + mov r0, #0x15 + orr sb, sb, r1 + bl FUN_02002274 + ldr fp, _0238BD94 @ =0x0238C08C + ldr r5, _0238BD90 @ =0x0238C0F8 + ldr r4, _0238B4F8 @ =0x0238CEA0 + mov r6, r0 + mov r7, #0 +_0238B910: + mov r1, #0x15 + add r0, r6, r7 + bl FUN_0208FEA4 + lsl r0, r1, #1 + ldrsh sl, [fp, r0] + mov r1, #0 + mov r0, sl + bl FUN_02052A04 + ldr r8, [r5, r0, lsl #2] + mov r0, sl + mov r1, #1 + bl FUN_02052A04 + ldr r0, [r5, r0, lsl #2] + orr r0, r8, r0 + tst sb, r0 + bne _0238B970 + ldr r2, [r4] + ldr r1, [r2, #0x370] + add r0, r1, #1 + str r0, [r2, #0x370] + ldr r0, [r4] + add r0, r0, r1, lsl #1 + add r0, r0, #0x300 + strh sl, [r0, #0x74] +_0238B970: + add r7, r7, #1 + cmp r7, #0x15 + blt _0238B910 + ldr r1, _0238B4F8 @ =0x0238CEA0 + ldr r0, _0238BD98 @ =0x0238CEBC + ldr r2, [r1] + ldr r1, _0238BD9C @ =0x00001011 + ldr r2, [r2, #0x370] + ldr r3, _0238BDA0 @ =GetOptionStringFromID + str r2, [sp] + mov r4, #6 + mov r2, #0 + str r4, [sp, #4] + bl FUN_0202BA20 + ldr r2, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r2] + strb r0, [r1, #3] + ldr r4, [r2] + mov r0, #0 + ldr r3, [r4, #0x20] + sub r1, r0, #2 + add r3, r3, #1 + str r3, [r4, #0x20] + str r0, [r2, #4] + str r0, [r2, #8] + ldr r2, [r2] + ldrsb r2, [r2, #5] + cmp r2, r1 + bne _0238B9FC + mov r1, #3 + mov r2, #1 + bl FUN_0202F5AC + ldr r1, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r1] + strb r0, [r1, #5] +_0238B9FC: + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r2, [r0] + ldr r1, [r0, #4] + add r0, r2, #0x3b4 + add r1, r2, r1, lsl #1 + add r1, r1, #0x300 + ldrsh r1, [r1, #0x74] + bl FUN_0204D7D4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x3b4 + bl FUN_0204D7F4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r1, #4 + ldr r0, [r0] + add r0, r0, #0x3b4 + bl FUN_0204D804 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, _0238BDA4 @ =0x0238C014 + ldr r0, [r0] + add r0, r0, #0x3b4 + bl FUN_0204D848 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldrsb r0, [r1, #5] + add r1, r1, #0x3b4 + bl FUN_0202F690 + b _0238BD74 +_0238BA70: + ldrsb r0, [r0, #3] + ldr r4, [r2, #4] + bl FUN_0202BCFC + cmp r4, r0 + beq _0238BB10 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r1, #0 + str r1, [r0, #8] + ldr r0, [r0] + ldrsb r0, [r0, #3] + bl FUN_0202BCFC + ldr r1, _0238B4F8 @ =0x0238CEA0 + str r0, [r1, #4] + ldr r2, [r1] + add r0, r2, r0, lsl #1 + add r0, r0, #0x300 + ldrsh r1, [r0, #0x74] + add r0, r2, #0x3b4 + bl FUN_0204D7D4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x3b4 + bl FUN_0204D7F4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r1, #4 + ldr r0, [r0] + add r0, r0, #0x3b4 + bl FUN_0204D804 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, _0238BDA4 @ =0x0238C014 + ldr r0, [r0] + add r0, r0, #0x3b4 + bl FUN_0204D848 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldrsb r0, [r1, #5] + add r1, r1, #0x3b4 + bl FUN_0202F690 + b _0238BB98 +_0238BB10: + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0, #8] + cmp r1, #0x20 + addne r1, r1, #1 + strne r1, [r0, #8] + bne _0238BB98 + mov r1, #0xff + str r1, [r0, #8] + ldr r2, [r0] + add r0, r2, r4, lsl #1 + add r0, r0, #0x300 + ldrsh r1, [r0, #0x74] + add r0, r2, #0x3b4 + bl FUN_0204D7D4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r1, #1 + ldr r0, [r0] + add r0, r0, #0x3b4 + bl FUN_0204D7F4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r1, #4 + ldr r0, [r0] + add r0, r0, #0x3b4 + bl FUN_0204D804 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, _0238BDA4 @ =0x0238C014 + ldr r0, [r0] + add r0, r0, #0x3b4 + bl FUN_0204D848 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldrsb r0, [r1, #5] + add r1, r1, #0x3b4 + bl FUN_0202F690 +_0238BB98: + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #3] + bl FUN_0202BCDC + cmp r0, #0 + bne _0238BD74 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r4, [r0] + ldrsb r0, [r4, #3] + bl FUN_0202BD10 + add r0, r4, r0, lsl #1 + add r0, r0, #0x300 + ldrsh r2, [r0, #0x74] + add r0, r4, #0x400 + ldr r1, _0238B4F8 @ =0x0238CEA0 + strh r2, [r0, #0x24] + ldr r0, [r1] + ldrsb r0, [r0, #2] + bl FUN_0202F3A4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #2] + bl FUN_02027B1C + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #2] + bl FUN_0202F2C4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r2, [r0] + ldr r1, [r0, #4] + add r0, r2, #0x3b4 + add r1, r2, r1, lsl #1 + add r1, r1, #0x300 + ldrsh r1, [r1, #0x74] + bl FUN_0204D7D4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r1, #1 + ldr r0, [r0] + add r0, r0, #0x3b4 + bl FUN_0204D7F4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r1, #4 + ldr r0, [r0] + add r0, r0, #0x3b4 + bl FUN_0204D804 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, _0238BDA4 @ =0x0238C014 + ldr r0, [r0] + add r0, r0, #0x3b4 + bl FUN_0204D848 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldrsb r0, [r1, #5] + add r1, r1, #0x3b4 + bl FUN_0202F690 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #3] + bl FUN_0202BC44 + mvn r2, #1 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + strb r2, [r1, #3] + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238BCA8: + ldrsb r0, [r0, #2] + bl FUN_0202836C + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238BCC8: + ldrsb r0, [r0, #2] + bl FUN_0202F180 + cmp r0, #0 + bne _0238BD74 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #2] + bl FUN_02027B1C + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x30] + str r0, [r1, #0x20] + b _0238BD74 +_0238BCFC: + mov r0, #1 + bl FUN_023039D4 + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r1, [r0] + ldr r0, [r1, #0x20] + add r0, r0, #1 + str r0, [r1, #0x20] + b _0238BD74 +_0238BD1C: + bl FUN_02303D80 + mvn r1, #0 + cmp r0, r1 + bne _0238BD74 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mov r2, #0x39 + ldr r1, [r0] + str r2, [r1, #0x20] + ldr r0, [r0] + ldrsb r0, [r0, #2] + bl FUN_0202836C + ldr r0, _0238B4F8 @ =0x0238CEA0 + ldr r0, [r0] + ldrsb r0, [r0, #2] + bl FUN_0202F148 + ldr r0, _0238B4F8 @ =0x0238CEA0 + mvn r3, #1 + ldr r2, [r0] + mov r1, #2 + strb r3, [r2, #2] + ldr r0, [r0] + strb r1, [r0] +_0238BD74: + add sp, sp, #0x178 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0238BD7C: .4byte 0x000006C2 +_0238BD80: .4byte 0x000006C3 +_0238BD84: .4byte 0x000006C5 +_0238BD88: .4byte 0x00300013 +_0238BD8C: .4byte 0x0238C074 +_0238BD90: .4byte 0x0238C0F8 +_0238BD94: .4byte 0x0238C08C +_0238BD98: .4byte 0x0238CEBC +_0238BD9C: .4byte 0x00001011 +_0238BDA0: .4byte GetOptionStringFromID +_0238BDA4: .4byte 0x0238C014 + arm_func_end ov13_0238ADFC + + arm_func_start GetPersonality +GetPersonality: @ 0x0238BDA8 + push {r3, lr} + ldr r0, _0238BDEC @ =0x0238CEA0 + mov ip, #0 + ldr lr, [r0] + mov r0, ip + mov r3, ip +_0238BDC0: + add r1, lr, r3 + ldrb r2, [r1, #0x34] + ldrb r1, [r1, #0x44] + add r1, r2, r1 + cmp ip, r1 + movlt r0, r3 + add r3, r3, #1 + movlt ip, r1 + cmp r3, #0x10 + blt _0238BDC0 + pop {r3, pc} + .align 2, 0 +_0238BDEC: .4byte 0x0238CEA0 + arm_func_end GetPersonality + + arm_func_start GetOptionStringFromID +GetOptionStringFromID: @ 0x0238BDF0 + push {r3, r4, lr} + sub sp, sp, #0x54 + ldr r2, _0238BE40 @ =0x0238CEA0 + add ip, sp, #4 + ldr r3, [r2] + ldr r2, _0238BE44 @ =0x0238CE70 + add r1, r3, r1, lsl #1 + add r1, r1, #0x300 + ldrsh r4, [r1, #0x74] + ldr r3, _0238BE48 @ =0x0000C402 + mov r1, #0x400 + orr lr, r4, #0x10000 + str r4, [sp, #4] + str lr, [sp, #0x14] + mov r4, r0 + str ip, [sp] + bl FUN_020223F0 + mov r0, r4 + add sp, sp, #0x54 + pop {r3, r4, pc} + .align 2, 0 +_0238BE40: .4byte 0x0238CEA0 +_0238BE44: .4byte 0x0238CE70 +_0238BE48: .4byte 0x0000C402 + arm_func_end GetOptionStringFromID + + arm_func_start WaitForNextStep +WaitForNextStep: @ 0x0238BE4C + ldr r1, _0238BE68 @ =0x0238CEA0 + mov r3, #0x3a + ldr r2, [r1] + str r3, [r2, #0x20] + ldr r1, [r1] + str r0, [r1, #0x30] + bx lr + .align 2, 0 +_0238BE68: .4byte 0x0238CEA0 + arm_func_end WaitForNextStep + + arm_func_start ov13_0238BE6C +ov13_0238BE6C: @ 0x0238BE6C + push {r4, r5, lr} + sub sp, sp, #0x54 + sub sp, sp, #0x400 + mov r4, r0 + add r0, sp, #4 + bl FUN_02023690 + mov r0, r4 + bl FUN_02027B1C + ldr r0, _0238BFFC @ =0x0238CEA0 + ldr r2, _0238C000 @ =0x000006CA + ldr lr, [r0] + add r5, sp, #4 + ldrb r3, [lr, #0x34] + add r0, sp, #0x54 + mov r1, #0x400 + str r3, [sp, #0x28] + ldrb ip, [lr, #0x35] + ldr r3, _0238C004 @ =0x0000C402 + str ip, [sp, #0x2c] + ldrb ip, [lr, #0x36] + str ip, [sp, #0x30] + ldrb ip, [lr, #0x37] + str ip, [sp, #0x34] + str r5, [sp] + bl FUN_020235B8 + mov r0, r4 + mov r1, #4 + mov r2, #0 + add r3, sp, #0x54 + bl FUN_02026214 + ldr r0, _0238BFFC @ =0x0238CEA0 + ldr r2, _0238C008 @ =0x000006CB + ldr lr, [r0] + add r0, sp, #0x54 + ldrb r3, [lr, #0x38] + mov r1, #0x400 + str r3, [sp, #0x28] + ldrb ip, [lr, #0x39] + ldr r3, _0238C004 @ =0x0000C402 + str ip, [sp, #0x2c] + ldrb ip, [lr, #0x3a] + str ip, [sp, #0x30] + ldrb ip, [lr, #0x3b] + str ip, [sp, #0x34] + str r5, [sp] + bl FUN_020235B8 + mov r0, r4 + mov r1, #4 + mov r2, #0xc + add r3, sp, #0x54 + bl FUN_02026214 + mov r1, #0x400 + ldr r0, _0238BFFC @ =0x0238CEA0 + mov ip, r5 + ldr r5, [r0] + add r0, sp, #0x54 + ldrb r3, [r5, #0x3c] + add r2, r1, #0x2cc + str r3, [sp, #0x28] + ldrb lr, [r5, #0x3d] + ldr r3, _0238C004 @ =0x0000C402 + str lr, [sp, #0x2c] + ldrb lr, [r5, #0x3e] + str lr, [sp, #0x30] + ldrb lr, [r5, #0x3f] + str lr, [sp, #0x34] + str ip, [sp] + bl FUN_020235B8 + mov r0, r4 + mov r1, #4 + mov r2, #0x18 + add r3, sp, #0x54 + bl FUN_02026214 + ldr r0, _0238BFFC @ =0x0238CEA0 + ldr r3, _0238C004 @ =0x0000C402 + ldr r2, [r0] + add ip, sp, #4 + ldrb r0, [r2, #0x40] + str r0, [sp, #0x28] + ldrb r0, [r2, #0x41] + str r0, [sp, #0x2c] + ldrb r1, [r2, #0x42] + add r0, sp, #0x54 + str r1, [sp, #0x30] + ldrb r1, [r2, #0x43] + ldr r2, _0238C00C @ =0x000006CD + str r1, [sp, #0x34] + mov r1, #0x400 + str ip, [sp] + bl FUN_020235B8 + add r3, sp, #0x54 + mov r0, r4 + mov r1, #4 + mov r2, #0x24 + bl FUN_02026214 + mov r0, r4 + bl FUN_02027AF0 + add sp, sp, #0x54 + add sp, sp, #0x400 + pop {r4, r5, pc} + .align 2, 0 +_0238BFFC: .4byte 0x0238CEA0 +_0238C000: .4byte 0x000006CA +_0238C004: .4byte 0x0000C402 +_0238C008: .4byte 0x000006CB +_0238C00C: .4byte 0x000006CD + arm_func_end ov13_0238BE6C +_0238C010: + .byte 0x00, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0x0A, 0x10 + .byte 0x03, 0x0A, 0x10, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xA1, 0x38, 0x02 + .byte 0xC8, 0xA1, 0x38, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x11, 0x1C, 0x05, 0x00, 0xFD, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x11, 0x1C, 0x05, 0x01, 0xFD, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x1E, 0x06, 0x01, 0xFD, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x11, 0x1C, 0x05, 0x00, 0xFA, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0xC6, 0x06, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xC7, 0x06, 0x00, 0x00 + .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00 + .byte 0x07, 0x00, 0x19, 0x00, 0xF0, 0x02, 0x9B, 0x00, 0x9E, 0x00, 0x18, 0x01, 0x73, 0x03, 0x1E, 0x01 + .byte 0xA6, 0x01, 0xA9, 0x01, 0xAC, 0x01, 0xDD, 0x02, 0xB6, 0x01, 0xE9, 0x01, 0x02, 0x01, 0x7D, 0x02 + .byte 0xA0, 0x03, 0x34, 0x00, 0xE8, 0x01, 0x00, 0x00, 0x1B, 0x01, 0x70, 0x03, 0x04, 0x00, 0x59, 0x02 + .byte 0x19, 0x00, 0x5C, 0x02, 0x9E, 0x00, 0xDD, 0x02, 0xAC, 0x01, 0x01, 0x04, 0xA9, 0x01, 0xA0, 0x03 + .byte 0x9B, 0x00, 0xFE, 0x03, 0xB6, 0x01, 0x71, 0x02, 0xE9, 0x01, 0xF6, 0x02, 0x98, 0x00, 0xF3, 0x02 + .byte 0x02, 0x01, 0x7D, 0x02, 0x01, 0x00, 0x76, 0x03, 0x07, 0x00, 0x04, 0x04, 0x18, 0x01, 0xF0, 0x02 + .byte 0x1E, 0x01, 0x73, 0x03, 0xA6, 0x01, 0x5F, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 + .byte 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 + .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 + .byte 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 + .byte 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x7D, 0x06, 0x7E, 0x06 + .byte 0x7F, 0x06, 0x80, 0x06, 0x81, 0x06, 0x82, 0x06, 0x83, 0x06, 0x84, 0x06, 0x85, 0x06, 0x86, 0x06 + .byte 0x87, 0x06, 0x88, 0x06, 0x89, 0x06, 0x8A, 0x06, 0x8B, 0x06, 0x8C, 0x06, 0x8D, 0x06, 0x8E, 0x06 + .byte 0x8F, 0x06, 0x90, 0x06, 0x91, 0x06, 0x92, 0x06, 0x93, 0x06, 0x94, 0x06, 0x95, 0x06, 0x96, 0x06 + .byte 0x97, 0x06, 0x98, 0x06, 0x99, 0x06, 0x9A, 0x06, 0x9B, 0x06, 0x9C, 0x06, 0x9D, 0x06, 0x9E, 0x06 + .byte 0x9F, 0x06, 0xA0, 0x06, 0xA1, 0x06, 0xA2, 0x06, 0xA3, 0x06, 0xA4, 0x06, 0xA5, 0x06, 0xA6, 0x06 + .byte 0xA7, 0x06, 0xA8, 0x06, 0xA9, 0x06, 0xAA, 0x06, 0xAB, 0x06, 0xAC, 0x06, 0x8B, 0x05, 0x8C, 0x05 + .byte 0x8D, 0x05, 0x8E, 0x05, 0x8F, 0x05, 0x90, 0x05, 0x91, 0x05, 0x92, 0x05, 0x93, 0x05, 0x94, 0x05 + .byte 0x95, 0x05, 0x96, 0x05, 0x97, 0x05, 0x98, 0x05, 0x99, 0x05, 0x9A, 0x05, 0x9B, 0x05, 0x9C, 0x05 + .byte 0x9D, 0x05, 0x9E, 0x05, 0x9F, 0x05, 0xA0, 0x05, 0xA1, 0x05, 0xA2, 0x05, 0xA3, 0x05, 0xA4, 0x05 + .byte 0xA5, 0x05, 0xA6, 0x05, 0xA7, 0x05, 0xA8, 0x05, 0xA9, 0x05, 0xAA, 0x05, 0xAB, 0x05, 0xAC, 0x05 + .byte 0xAD, 0x05, 0xAE, 0x05, 0xAF, 0x05, 0xB0, 0x05, 0xB1, 0x05, 0xB2, 0x05, 0xB3, 0x05, 0xB4, 0x05 + .byte 0xB5, 0x05, 0xB6, 0x05, 0xB7, 0x05, 0xB8, 0x05, 0xB9, 0x05, 0xBA, 0x05, 0xBB, 0x05, 0xBC, 0x05 + .byte 0xBD, 0x05, 0xBE, 0x05, 0xBF, 0x05, 0xC0, 0x05, 0xC1, 0x05, 0xC2, 0x05, 0xC3, 0x05, 0xC4, 0x05 + .byte 0xC5, 0x05, 0xC6, 0x05, 0xC7, 0x05, 0xC8, 0x05, 0xC9, 0x05, 0xCA, 0x05, 0xCB, 0x05, 0xCD, 0x05 + .byte 0xCE, 0x05, 0xCF, 0x05, 0xD0, 0x05, 0xD1, 0x05, 0xD2, 0x05, 0xD3, 0x05, 0xD4, 0x05, 0xD5, 0x05 + .byte 0xD6, 0x05, 0xD7, 0x05, 0xD8, 0x05, 0xD9, 0x05, 0xDA, 0x05, 0xDB, 0x05, 0xDC, 0x05, 0xDD, 0x05 + .byte 0xDE, 0x05, 0xDF, 0x05, 0xE0, 0x05, 0xE1, 0x05, 0xE2, 0x05, 0xE3, 0x05, 0xE4, 0x05, 0xE5, 0x05 + .byte 0xE6, 0x05, 0xE7, 0x05, 0xE8, 0x05, 0xE9, 0x05, 0xEA, 0x05, 0xEB, 0x05, 0xEC, 0x05, 0xED, 0x05 + .byte 0xEE, 0x05, 0xEF, 0x05, 0xF0, 0x05, 0xF1, 0x05, 0xF2, 0x05, 0xF3, 0x05, 0xF4, 0x05, 0xF5, 0x05 + .byte 0xF6, 0x05, 0xF7, 0x05, 0xF8, 0x05, 0xF9, 0x05, 0xFA, 0x05, 0xFB, 0x05, 0xFC, 0x05, 0xFD, 0x05 + .byte 0xFE, 0x05, 0xFF, 0x05, 0x00, 0x06, 0x01, 0x06, 0x02, 0x06, 0x03, 0x06, 0x04, 0x06, 0x05, 0x06 + .byte 0x06, 0x06, 0x07, 0x06, 0x08, 0x06, 0x09, 0x06, 0x0A, 0x06, 0x0B, 0x06, 0x0C, 0x06, 0x0D, 0x06 + .byte 0x0E, 0x06, 0x0F, 0x06, 0x10, 0x06, 0x11, 0x06, 0x12, 0x06, 0x13, 0x06, 0x14, 0x06, 0x15, 0x06 + .byte 0x16, 0x06, 0x17, 0x06, 0x18, 0x06, 0x19, 0x06, 0x1A, 0x06, 0x1B, 0x06, 0x1C, 0x06, 0x1D, 0x06 + .byte 0x1E, 0x06, 0x1F, 0x06, 0x20, 0x06, 0x21, 0x06, 0x22, 0x06, 0x23, 0x06, 0x24, 0x06, 0x25, 0x06 + .byte 0x26, 0x06, 0x27, 0x06, 0x28, 0x06, 0x29, 0x06, 0x2A, 0x06, 0x2B, 0x06, 0x2C, 0x06, 0x2D, 0x06 + .byte 0x2E, 0x06, 0x2F, 0x06, 0x30, 0x06, 0x31, 0x06, 0x32, 0x06, 0x33, 0x06, 0x34, 0x06, 0x35, 0x06 + .byte 0x36, 0x06, 0x37, 0x06, 0x38, 0x06, 0x39, 0x06, 0x3A, 0x06, 0x3B, 0x06, 0x3C, 0x06, 0x3D, 0x06 + .byte 0x3E, 0x06, 0x3F, 0x06, 0x40, 0x06, 0x41, 0x06, 0x42, 0x06, 0x43, 0x06, 0x44, 0x06, 0x45, 0x06 + .byte 0x46, 0x06, 0x47, 0x06, 0x48, 0x06, 0x49, 0x06, 0x4A, 0x06, 0x4B, 0x06, 0x4C, 0x06, 0x4D, 0x06 + .byte 0x4E, 0x06, 0x4F, 0x06, 0x50, 0x06, 0x51, 0x06, 0x52, 0x06, 0x53, 0x06, 0x54, 0x06, 0x55, 0x06 + .byte 0x56, 0x06, 0x57, 0x06, 0x58, 0x06, 0x59, 0x06, 0x5A, 0x06, 0x5B, 0x06, 0x5C, 0x06, 0x5D, 0x06 + .byte 0x5E, 0x06, 0x5F, 0x06, 0x60, 0x06, 0x61, 0x06, 0x62, 0x06, 0x63, 0x06, 0x64, 0x06, 0x65, 0x06 + .byte 0x66, 0x06, 0x67, 0x06, 0x68, 0x06, 0x69, 0x06, 0x6A, 0x06, 0x6B, 0x06, 0x6C, 0x06, 0x6D, 0x06 + .byte 0x6E, 0x06, 0x6F, 0x06, 0x70, 0x06, 0x71, 0x06, 0x72, 0x06, 0x73, 0x06, 0x74, 0x06, 0x75, 0x06 + .byte 0x76, 0x06, 0x77, 0x06, 0x78, 0x06, 0x79, 0x06, 0x7A, 0x06, 0x7B, 0x06, 0x7C, 0x06, 0x00, 0x00 + .byte 0x04, 0x00, 0x02, 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 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x04 + .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x04, 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 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00 + .byte 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04 + .byte 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04 + .byte 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x04, 0x00, 0x04, 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, 0x02, 0x00, 0x00 + .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 + .byte 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04 + .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00 + .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x04, 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, 0x04, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00 + .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x04 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00 + .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x04 + .byte 0x04, 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, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04 + .byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 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, 0x04, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 + .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x04, 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, 0x02, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04 + .byte 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + arm_func_start ov13_0238CC94 +ov13_0238CC94: @ 0x0238CC94 + andeq r0, r0, r0 + andeq r0, r0, r4 + andeq r0, r0, r0, lsl #8 + andeq r0, r4, r0 + andeq r0, r0, r0 + arm_func_end ov13_0238CC94 + + arm_func_start ov13_0238CCA8 +ov13_0238CCA8: @ 0x0238CCA8 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + streq r0, [r0], #-0 + andeq r0, r0, r0 + arm_func_end ov13_0238CCA8 + + arm_func_start ov13_0238CCBC +ov13_0238CCBC: @ 0x0238CCBC + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0, lsl #8 + andeq r0, r0, r0 + andeq r0, r2, r0 + arm_func_end ov13_0238CCBC + + arm_func_start ov13_0238CCD8 +ov13_0238CCD8: @ 0x0238CCD8 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0, lsl #8 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + arm_func_end ov13_0238CCD8 + + arm_func_start ov13_0238CCF0 +ov13_0238CCF0: @ 0x0238CCF0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r4, r0 + streq r0, [r0], #-0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r2, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0, lsl #8 + andeq r0, r0, r2 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r4, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r4, #0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0, lsl #4 + andeq r0, r0, r0 + andeq r0, r0, r0 + streq r0, [r0], #-0 + andeq r0, r4, r0 + andeq r0, r0, r2 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r4, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + streq r0, [r0], #-0 + andeq r0, r0, r0 + andeq r0, r0, #0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r2, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + streq r0, [r0], #-0 + streq r0, [r0], #-0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r4 + andeq r0, r4, r0 + andeq r0, r0, r0 + andeq r0, r2, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r2, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + streq r0, [r0], #-0 + andeq r0, r0, r0 + andeq r0, r0, r4, lsl #8 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r2 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + streq r0, [r0], #-0 + andeq r0, r0, r0 + andeq r0, r1, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r1, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + mcrvs p7, #3, r6, c5, c11, #2 + blo _0402640C + cmpmi fp, #48, #26 + svcpl #0x4d554c + blo _0389E3D4 + blpl FUN_03ADAF54 + strbtvs r6, [lr], #-0x96b + subseq r3, sp, sl, lsr r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, lr, lsl pc + andeq pc, r0, r0, lsl #30 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, fp, r2, lsl #4 + andeq pc, r0, r0, lsl #30 + andeq r0, r0, r0 + strheq r0, [r0], -sb + andeq r0, r0, r0 + strheq r0, [r0], -r7 + andeq r0, r0, r1 + strheq r0, [r0], -r5 + andeq r0, r0, r2 + ldrdeq r0, r1, [r0], -r7 + andeq r0, r0, r3 + strheq r0, [r0], -sb + andeq r0, r0, r4 + strheq r0, [r0], -r7 + andeq r0, r0, r5 + strheq r0, [r0], -r5 + andeq r0, r0, r6 + ldrdeq r0, r1, [r0], -r7 + andeq r0, r0, r7 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + andeq r0, r0, r0 + movweq r0, #0x3003 + beq _0244E740 + svceq #0x30d02 + strne r1, [r3], #-0x202 + bne _02452B48 + mrshs r1, apsr + strhs r2, [r3], -r2, lsl #8 + @ 0x0238CF40 diff --git a/asm/overlay_14.s b/asm/overlay_14.s index 1b88731b..14fb0fc1 100644 --- a/asm/overlay_14.s +++ b/asm/overlay_14.s @@ -3,3 +3,4086 @@ .include "global.inc" .text + + arm_func_start SentrySetupState +SentrySetupState: @ 0x0238A140 + push {r4, r5, r6, r7, r8, sb, sl, lr} + mov r4, r0 + ldr r0, _0238A504 @ =0x000038D4 + mov r1, #8 + bl FUN_02001170 + ldr r1, _0238A508 @ =0x0238DB80 + str r0, [r1] + add r0, r0, #0xa4 + bl FUN_02023690 + ldr r0, _0238A508 @ =0x0238DB80 + mov r5, #0 + ldr r1, [r0] + sub r3, r5, #1 + str r5, [r1, #0x104] + ldr r7, [r0] + mov r2, #2 + ldr r6, [r7, #0x108] + mov r1, #1 + str r6, [r7, #0x110] + ldr r6, [r0] + str r5, [r6, #0x10c] + ldr r6, [r0] + str r3, [r6, #0x114] + ldr r6, [r0] + str r5, [r6, #0x118] + ldr r6, [r0] + add r6, r6, #0x3000 + str r5, [r6, #0x88c] + ldr r6, [r0] + add r6, r6, #0x3000 + str r5, [r6, #0x890] + ldr r6, [r0] + add r6, r6, #0x3000 + strb r5, [r6, #0x530] + ldr r6, [r0] + add r6, r6, #0x3000 + str r2, [r6, #0x534] + ldr r6, [r0] + add r6, r6, #0x3000 + str r5, [r6, #0x538] + ldr r6, [r0] + add r6, r6, #0x3000 + str r5, [r6, #0x53c] + ldr r6, [r0] + add r6, r6, #0x3000 + str r5, [r6, #0x540] + ldr r6, [r0] + add r6, r6, #0x3000 + str r3, [r6, #0x564] + ldr r6, [r0] + add r6, r6, #0x3000 + str r3, [r6, #0x568] + ldr r3, [r0] + add r3, r3, #0x3000 + str r5, [r3, #0x56c] + ldr r3, [r0] + add r3, r3, #0x3000 + strb r5, [r3, #0x870] + ldr r3, [r0] + add r3, r3, #0x3000 + str r5, [r3, #0x884] + ldr r3, [r0] + add r3, r3, #0x3000 + str r5, [r3, #0x88c] + ldr r3, [r0] + add r3, r3, #0x3000 + str r2, [r3, #0x898] + ldr r2, [r0] + add r2, r2, #0x3000 + strb r1, [r2, #0x89c] + mov r2, r1 +_0238A25C: + ldr r1, [r0] + add r1, r1, r5, lsl #2 + add r1, r1, #0x3000 + str r2, [r1, #0x544] + ldr r1, [r0] + add r1, r1, r5, lsl #2 + add r1, r1, #0x3000 + add r5, r5, #1 + str r2, [r1, #0x554] + cmp r5, #4 + blt _0238A25C + ldr r2, _0238A508 @ =0x0238DB80 + mov r0, #0 + ldr r1, [r2] + mov r3, #0x60 + add r1, r1, #0x3000 + strb r0, [r1, #0x871] + ldr r1, [r2] + add r1, r1, #0x3000 + str r0, [r1, #0x874] + ldr r1, [r2] + add r1, r1, #0x3000 + str r3, [r1, #0x8b0] + mvn r3, #0 +_0238A2BC: + ldr r1, [r2] + add r1, r1, r0, lsl #2 + add r1, r1, #0x3000 + add r0, r0, #1 + str r3, [r1, #0x8b8] + cmp r0, #6 + blt _0238A2BC + bl FUN_02055650 + ldr r1, _0238A508 @ =0x0238DB80 + ldr r1, [r1] + add r1, r1, #0x3800 + strh r0, [r1, #0xd0] + bl FUN_0205567C + ldr r3, _0238A508 @ =0x0238DB80 + mvn r1, #1 + ldr r2, [r3] + add r2, r2, #0x3800 + strh r0, [r2, #0xd2] + ldr r2, [r3] + mov r0, #0 + str r4, [r2, #0x11c] + ldr r2, [r3] + strb r1, [r2] + ldr r2, [r3] + strb r1, [r2, #1] + ldr r2, [r3] + strb r1, [r2, #2] + ldr r2, [r3] + strb r1, [r2, #3] + ldr r2, [r3] + strb r1, [r2, #4] + ldr r2, [r3] + strb r1, [r2, #5] + ldr r2, [r3] + strb r1, [r2, #6] + ldr r2, [r3] + strb r1, [r2, #7] + ldr r2, [r3] + strb r1, [r2, #8] + ldr r2, [r3] + strb r1, [r2, #9] + ldr r2, [r3] + strb r1, [r2, #0xa] + ldr r2, [r3] + strb r1, [r2, #0xb] + bl ov14_0238AC04 + ldr r0, _0238A508 @ =0x0238DB80 + mov r1, #0xad + ldr r0, [r0] + mov r2, #0x8100000 + add r0, r0, #0x120 + bl FUN_022F6E60 + ldr r0, _0238A508 @ =0x0238DB80 + ldr r2, _0238A50C @ =0x88080000 + ldr r0, [r0] + mov r1, #0xcd + add r0, r0, #0x1e4 + bl FUN_022F6E60 + ldr r0, _0238A508 @ =0x0238DB80 + ldr r1, [r0] + add r0, r1, #0x2a8 + add r1, r1, #0x1e4 + bl FUN_022F6F08 + ldr r0, _0238A508 @ =0x0238DB80 + mov r1, #0x800 + ldr r0, [r0] + mov r2, #0 + add r0, r0, #0x2a8 + bl FUN_022F52E8 + mov sb, #0 + ldr r5, _0238A510 @ =0xC8100000 + ldr r4, _0238A508 @ =0x0238DB80 + mov r7, #0x800 + mov r6, sb + mov sl, #0xc4 +_0238A3E8: + mul r8, sb, sl + ldr r1, [r4] + add r0, r1, #0x36c + add r0, r0, r8 + add r1, r1, #0x1e4 + bl FUN_022F6F08 + ldr r0, [r4] + mov r1, r7 + add r0, r0, #0x36c + mov r2, r6 + add r0, r0, r8 + bl FUN_022F52E8 + ldr r1, [r4] + add r0, r1, #0x3ac + add r0, r0, #0xc00 + add r0, r0, r8 + add r1, r1, #0x1e4 + bl FUN_022F6F08 + ldr r0, [r4] + mov r1, r5 + add r0, r0, #0x3ac + add r0, r0, #0xc00 + add r0, r0, r8 + bl FUN_022F495C + ldr r1, [r4] + add r0, r1, #0x3ec + add r0, r0, #0x1800 + add r0, r0, r8 + add r1, r1, #0x1e4 + bl FUN_022F6F08 + ldr r0, [r4] + mov r1, r5 + arm_func_end SentrySetupState + + arm_func_start ov14_0238A468 +ov14_0238A468: @ 0x0238A468 + add r0, r0, #0x3ec + add r0, r0, #0x1800 + add r0, r0, r8 + bl FUN_022F495C + add sb, sb, #1 + cmp sb, #0x10 + blt _0238A3E8 + ldr r8, _0238A510 @ =0xC8100000 + ldr r7, _0238A508 @ =0x0238DB80 + mov r5, #0 + mov r6, #0xc4 +_0238A494: + mul r4, r5, r6 + ldr r1, [r7] + add r0, r1, #0x2c + add r0, r0, #0x2800 + add r0, r0, r4 + add r1, r1, #0x1e4 + bl FUN_022F6F08 + ldr r0, [r7] + mov r1, r8 + add r0, r0, #0x2c + add r0, r0, #0x2800 + add r0, r0, r4 + bl FUN_022F495C + add r5, r5, #1 + cmp r5, #2 + blt _0238A494 + ldr r0, _0238A508 @ =0x0238DB80 + ldr r2, [r0] + ldr r0, [r2, #0x11c] + cmp r0, #2 + mov r0, #4 + streq r0, [r2, #0x108] + beq _0238A4FC + mov r1, #6 + str r1, [r2, #0x108] + bl FUN_02017B58 +_0238A4FC: + mov r0, #1 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0238A504: .4byte 0x000038D4 +_0238A508: .4byte 0x0238DB80 +_0238A50C: .4byte 0x88080000 +_0238A510: .4byte 0xC8100000 + arm_func_end ov14_0238A468 + + arm_func_start ov14_0238A514 +ov14_0238A514: @ 0x0238A514 + push {r3, lr} + ldr r0, _0238A6AC @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #2 + bne _0238A540 + ldrsb r0, [r1, #1] + mvn r1, #1 + cmp r0, r1 + beq _0238A540 + bl FUN_0202F334 +_0238A540: + ldr r0, _0238A6AC @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #1 + bne _0238A568 + ldrsb r0, [r1] + mvn r1, #1 + cmp r0, r1 + beq _0238A568 + bl FUN_0202BC60 +_0238A568: + ldr r0, _0238A6AC @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #4 + bne _0238A590 + ldrsb r0, [r1, #2] + mvn r1, #1 + cmp r0, r1 + beq _0238A590 + bl FUN_0202F6DC +_0238A590: + ldr r0, _0238A6AC @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #8 + bne _0238A5B8 + ldrsb r0, [r1, #3] + mvn r1, #1 + cmp r0, r1 + beq _0238A5B8 + bl FUN_0202F954 +_0238A5B8: + ldr r0, _0238A6AC @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x10 + bne _0238A5E0 + ldrsb r0, [r1, #4] + mvn r1, #1 + cmp r0, r1 + beq _0238A5E0 + bl FUN_0202F954 +_0238A5E0: + ldr r0, _0238A6AC @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x20 + bne _0238A608 + ldrsb r0, [r1, #5] + mvn r1, #1 + cmp r0, r1 + beq _0238A608 + bl FUN_0202F954 +_0238A608: + ldr r0, _0238A6AC @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x40 + bne _0238A630 + ldrsb r0, [r1, #6] + mvn r1, #1 + cmp r0, r1 + beq _0238A630 + bl FUN_0202F6DC +_0238A630: + ldr r0, _0238A6AC @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x80 + bne _0238A658 + ldrsb r0, [r1, #7] + mvn r1, #1 + cmp r0, r1 + beq _0238A658 + bl FUN_0202F6DC +_0238A658: + ldr r0, _0238A6AC @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x100 + bne _0238A680 + ldrsb r0, [r1, #8] + mvn r1, #1 + cmp r0, r1 + beq _0238A680 + bl FUN_0202F6DC +_0238A680: + ldr r0, _0238A6AC @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x200 + popne {r3, pc} + ldrsb r0, [r1, #9] + mvn r1, #1 + cmp r0, r1 + popeq {r3, pc} + bl FUN_0202F6DC + pop {r3, pc} + .align 2, 0 +_0238A6AC: .4byte 0x0238DB80 + arm_func_end ov14_0238A514 + + arm_func_start ov14_0238A6B0 +ov14_0238A6B0: @ 0x0238A6B0 + push {r3, lr} + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #2 + bne _0238A71C + ldrsb r0, [r1, #1] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A710 + bl FUN_0202F180 + cmp r0, #0 + movne r2, #0 + bne _0238A710 + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #1] + bl FUN_0202F148 + ldr r0, _0238AB9C @ =0x0238DB80 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #1] +_0238A710: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A71C: + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #1 + bne _0238A784 + ldrsb r0, [r1] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A778 + bl FUN_0202BCBC + cmp r0, #0 + movne r2, #0 + bne _0238A778 + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0] + bl FUN_0202BC44 + ldr r0, _0238AB9C @ =0x0238DB80 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0] +_0238A778: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A784: + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #4 + bne _0238A7EC + ldrsb r0, [r1, #2] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A7E0 + bl FUN_0202F66C + cmp r0, #0 + movne r2, #0 + bne _0238A7E0 + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #2] + bl FUN_0202F650 + ldr r0, _0238AB9C @ =0x0238DB80 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #2] +_0238A7E0: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A7EC: + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #8 + bne _0238A854 + ldrsb r0, [r1, #3] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A848 + bl FUN_0202FB9C + cmp r0, #0 + movne r2, #0 + bne _0238A848 + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #3] + bl FUN_0202F8FC + ldr r0, _0238AB9C @ =0x0238DB80 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #3] +_0238A848: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A854: + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x10 + bne _0238A8BC + ldrsb r0, [r1, #4] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A8B0 + bl FUN_0202FB9C + cmp r0, #0 + movne r2, #0 + bne _0238A8B0 + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_0202F8FC + ldr r0, _0238AB9C @ =0x0238DB80 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #4] +_0238A8B0: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A8BC: + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x20 + bne _0238A924 + ldrsb r0, [r1, #5] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A918 + bl FUN_0202FB9C + cmp r0, #0 + movne r2, #0 + bne _0238A918 + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #5] + bl FUN_0202F8FC + ldr r0, _0238AB9C @ =0x0238DB80 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #5] +_0238A918: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A924: + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x40 + bne _0238A98C + ldrsb r0, [r1, #6] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A980 + bl FUN_0202F66C + cmp r0, #0 + movne r2, #0 + bne _0238A980 + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #6] + bl FUN_0202F650 + ldr r0, _0238AB9C @ =0x0238DB80 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #6] +_0238A980: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A98C: + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x80 + bne _0238A9F4 + ldrsb r0, [r1, #7] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A9E8 + bl FUN_0202F66C + cmp r0, #0 + movne r2, #0 + bne _0238A9E8 + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #7] + bl FUN_0202F650 + ldr r0, _0238AB9C @ =0x0238DB80 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #7] +_0238A9E8: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A9F4: + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x100 + bne _0238AA5C + ldrsb r0, [r1, #8] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238AA50 + bl FUN_0202F66C + cmp r0, #0 + movne r2, #0 + bne _0238AA50 + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #8] + bl FUN_0202F650 + ldr r0, _0238AB9C @ =0x0238DB80 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #8] +_0238AA50: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238AA5C: + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x200 + bne _0238AAC4 + ldrsb r0, [r1, #9] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238AAB8 + bl FUN_0202F66C + cmp r0, #0 + movne r2, #0 + bne _0238AAB8 + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #9] + bl FUN_0202F650 + ldr r0, _0238AB9C @ =0x0238DB80 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #9] +_0238AAB8: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238AAC4: + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x40000000 + bne _0238AB2C + ldrsb r0, [r1, #0xa] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238AB20 + bl FUN_0202B4F0 + cmp r0, #0 + movne r2, #0 + bne _0238AB20 + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #0xa] + bl FUN_0202B4C4 + ldr r0, _0238AB9C @ =0x0238DB80 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #0xa] +_0238AB20: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238AB2C: + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x80000000 + bne _0238AB94 + ldrsb r0, [r1, #0xb] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238AB88 + bl FUN_0202B4F0 + cmp r0, #0 + movne r2, #0 + bne _0238AB88 + ldr r0, _0238AB9C @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #0xb] + bl FUN_0202B4C4 + ldr r0, _0238AB9C @ =0x0238DB80 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #0xb] +_0238AB88: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238AB94: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0238AB9C: .4byte 0x0238DB80 + arm_func_end ov14_0238A6B0 + + arm_func_start ov14_0238ABA0 +ov14_0238ABA0: @ 0x0238ABA0 + push {r4, r5, lr} + sub sp, sp, #0x54 + mov r4, r1 + lsl r1, r4, #0x10 + mov r5, r0 + asr r0, r1, #0x10 + bl FUN_020504A4 + add r1, r4, #0x6e0 + lsl r1, r1, #0x10 + str r0, [sp, #0x28] + lsr r0, r1, #0x10 + bl FUN_020258C4 + str r0, [sp, #0x3c] + add r0, sp, #4 + str r0, [sp] + ldr r2, _0238ABFC @ =0x0238DAE8 + ldr r3, _0238AC00 @ =0x0000C402 + mov r0, r5 + mov r1, #0x400 + bl FUN_020223F0 + mov r0, r5 + add sp, sp, #0x54 + pop {r4, r5, pc} + .align 2, 0 +_0238ABFC: .4byte 0x0238DAE8 +_0238AC00: .4byte 0x0000C402 + arm_func_end ov14_0238ABA0 + + arm_func_start ov14_0238AC04 +ov14_0238AC04: @ 0x0238AC04 + push {r3, lr} + rsb ip, r0, #0x10 + mov r3, #1 + ldr r0, _0238AC3C @ =0x0238DB84 + mov r1, r3 + mov r2, #2 +_0238AC1C: + cmp r3, ip + movge lr, r2 + movlt lr, r1 + strb lr, [r0, r3] + add r3, r3, #1 + cmp r3, #0x10 + blt _0238AC1C + pop {r3, pc} + .align 2, 0 +_0238AC3C: .4byte 0x0238DB84 + arm_func_end ov14_0238AC04 + + arm_func_start ov14_0238AC40 +ov14_0238AC40: @ 0x0238AC40 + push {r3, lr} + ldr r1, _0238ACE4 @ =0x0238DB80 + ldr ip, [r1] + add r0, ip, #0x3000 + ldr r2, [r0, #0x880] + ldr r3, [r0, #0x888] + lsl r0, r2, #2 + add r0, r0, #0xf7 + add r0, r0, #0x600 + add r0, r3, r0 + str r0, [ip, #0x114] + ldr r0, [r1] + ldrsb r0, [r0, #1] + bl FUN_0202F3A4 + ldr r0, _0238ACE4 @ =0x0238DB80 + ldr r1, _0238ACE8 @ =0x00000408 + ldr r3, [r0] + ldr r2, [r3, #0x114] + ldrsb r0, [r3, #1] + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + add r3, r3, #0xa4 + bl FUN_0202F1B4 + ldr r0, _0238ACE4 @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #1] + bl FUN_0202F3A4 + ldr r1, _0238ACE4 @ =0x0238DB80 + ldr r0, [r1] + add r0, r0, #0x3000 + ldr r2, [r0, #0x888] + add r2, r2, #1 + str r2, [r0, #0x888] + ldr r0, [r1] + add r2, r0, #0x3000 + ldr r0, [r2, #0x888] + lsr r1, r0, #0x1f + rsb r0, r1, r0, lsl #30 + add r0, r1, r0, ror #30 + str r0, [r2, #0x888] + pop {r3, pc} + .align 2, 0 +_0238ACE4: .4byte 0x0238DB80 +_0238ACE8: .4byte 0x00000408 + arm_func_end ov14_0238AC40 +_0238ACEC: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x08, 0x80, 0xBD, 0x08, 0x95, 0x73, 0xF2, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov14_0238AD04 +ov14_0238AD04: @ 0x0238AD04 + push {r4, lr} + sub sp, sp, #0x18 + mov r4, r0 + mvn r1, #1 + cmp r4, r1 + beq _0238ADF0 + bl FUN_02027B58 + ldr r0, _0238ADF8 @ =0x0238DB80 + ldr r1, [r0] + ldrsb r0, [r1, #4] + cmp r4, r0 + bne _0238AD84 + add r0, r1, #0x3800 + ldrsh r1, [r0, #0xa2] + add r0, sp, #0 + bl FUN_02052394 + mov r1, #2 + add r3, sp, #0 + mov r0, r4 + sub r2, r1, #3 + bl FUN_02026214 + ldr r1, _0238ADF8 @ =0x0238DB80 + add r0, sp, #0 + ldr r1, [r1] + add r1, r1, #0x3800 + ldrsh r1, [r1, #0xa4] + bl FUN_02052394 + mov r1, #0x7a + mov r0, r4 + sub r2, r1, #0x7b + add r3, sp, #0 + bl FUN_02026214 +_0238AD84: + ldr r0, _0238ADF8 @ =0x0238DB80 + ldr r1, [r0] + ldrsb r0, [r1, #5] + cmp r4, r0 + bne _0238ADE8 + add r0, r1, #0x3800 + ldrsh r1, [r0, #0xa6] + add r0, sp, #0 + bl FUN_02052394 + mov r1, #2 + add r3, sp, #0 + mov r0, r4 + sub r2, r1, #3 + bl FUN_02026214 + ldr r1, _0238ADF8 @ =0x0238DB80 + add r0, sp, #0 + ldr r1, [r1] + add r1, r1, #0x3800 + ldrsh r1, [r1, #0xa8] + bl FUN_02052394 + mov r1, #0x7a + mov r0, r4 + sub r2, r1, #0x7b + add r3, sp, #0 + bl FUN_02026214 +_0238ADE8: + mov r0, r4 + bl FUN_02027AF0 +_0238ADF0: + add sp, sp, #0x18 + pop {r4, pc} + .align 2, 0 +_0238ADF8: .4byte 0x0238DB80 + arm_func_end ov14_0238AD04 + + arm_func_start SentryUpdateDisplay +SentryUpdateDisplay: @ 0x0238ADFC + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x6c + ldr r1, _0238B690 @ =0x0238D970 + ldr r0, _0238B694 @ =0x0238DB80 + ldr r2, [r1, #0x14] + ldr r1, [r1, #0x10] + ldr r4, [r0] + str r1, [sp, #0x14] + str r2, [sp, #0x18] + cmp r4, #0 + ldrne r0, [r4, #0x11c] + cmpne r0, #2 + beq _0238B688 + add r0, r4, #0x3000 + ldrb r1, [r0, #0x870] + cmp r1, #0 + beq _0238AECC + ldr r0, [r0, #0x874] + mov r1, #0x3c + bl FUN_0208FEA4 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + cmp r0, #9 + blt _0238AECC + add r0, r4, #0x3000 + ldr r1, [r0, #0x540] + mov r5, #0 + cmp r1, #2 + moveq r1, #3 + ldr r4, _0238B698 @ =0x0238DA40 + ldr r7, _0238B694 @ =0x0238DB80 + streq r1, [r0, #0x540] + add sb, sp, #0x14 + mov r8, r5 + mov r6, #0xc4 +_0238AE88: + ldr r0, [r7] + add r1, r4, r5, lsl #3 + add r0, r0, #0x278 + add r0, r0, #0x2800 + mla r0, r5, r6, r0 + ldr r2, [r4, r5, lsl #3] + ldr r1, [r1, #4] + add sl, r2, #0x2200 + add r3, r1, #0x1600 + mov r1, sb + mov r2, r8 + str sl, [sp, #0x14] + str r3, [sp, #0x18] + bl FUN_022F6F14 + add r5, r5, #1 + cmp r5, #4 + blt _0238AE88 +_0238AECC: + ldr r7, _0238B694 @ =0x0238DB80 + ldr r0, [r7] + add r0, r0, #0x3000 + ldrb r0, [r0, #0x870] + cmp r0, #0 + beq _0238AFDC + ldr r0, _0238B69C @ =0x00000806 + mov r4, #0xc4 + ldr r8, _0238B698 @ =0x0238DA40 + mov sl, #0 + sub sb, r0, #2 + mov r5, r4 + mov r6, r4 + mov fp, r4 +_0238AF04: + ldr r0, [r7] + add r0, r0, sl, lsl #2 + add r0, r0, #0x3000 + ldr r2, [r0, #0x544] + ldr r1, [r0, #0x554] + cmp r2, r1 + beq _0238AFA0 + str r1, [r0, #0x544] + ldr r1, [r7] + add r0, r1, sl, lsl #2 + add r0, r0, #0x3000 + ldr r0, [r0, #0x544] + cmp r0, #2 + beq _0238AF50 + cmp r0, #3 + beq _0238AF6C + cmp r0, #4 + beq _0238AF88 + b _0238AFA0 +_0238AF50: + add r0, r1, #0x188 + add r0, r0, #0x2c00 + mla r0, sl, r6, r0 + mov r1, sb + mov r2, #0 + bl FUN_022F52E8 + b _0238AFA0 +_0238AF6C: + add r0, r1, #0x188 + add r0, r0, #0x2c00 + mla r0, sl, r5, r0 + ldr r1, _0238B6A0 @ =0x00001005 + mov r2, #0 + bl FUN_022F52E8 + b _0238AFA0 +_0238AF88: + add r0, r1, #0x188 + add r0, r0, #0x2c00 + mla r0, sl, r4, r0 + ldr r1, _0238B69C @ =0x00000806 + mov r2, #0 + bl FUN_022F52E8 +_0238AFA0: + ldr r1, [r7] + add r0, r1, sl, lsl #2 + add r0, r0, #0x3000 + ldr r0, [r0, #0x544] + cmp r0, #1 + ble _0238AFD0 + add r0, r1, #0x188 + add r0, r0, #0x2c00 + mla r0, sl, fp, r0 + add r1, r8, sl, lsl #3 + mov r2, #0 + bl FUN_022F6F14 +_0238AFD0: + add sl, sl, #1 + cmp sl, #4 + blt _0238AF04 +_0238AFDC: + ldr r0, _0238B694 @ =0x0238DB80 + ldr r2, [r0] + add r0, r2, #0x3000 + ldrb r1, [r0, #0x870] + cmp r1, #0 + beq _0238B038 + mov r1, #0x8000 + str r1, [sp, #0x14] + ldr r1, [r0, #0x8b0] + add r0, r2, #0x3a8 + lsl r3, r1, #8 + add r1, sp, #0x14 + add r0, r0, #0x3000 + mov r2, #0 + str r3, [sp, #0x18] + bl FUN_022F7064 + ldr r0, _0238B694 @ =0x0238DB80 + add r1, sp, #0x14 + ldr r0, [r0] + mov r2, #0 + add r0, r0, #0x6c + add r0, r0, #0x3400 + bl FUN_022F6F14 +_0238B038: + ldr r0, _0238B694 @ =0x0238DB80 + ldr r2, [r0] + add r0, r2, #0x3000 + ldrb r1, [r0, #0x870] + cmp r1, #0 + beq _0238B1DC + ldr r1, [r0, #0x538] + cmp r1, #0 + beq _0238B1A8 + cmp r1, #3 + beq _0238B078 + cmp r1, #4 + beq _0238B0EC + cmp r1, #5 + beq _0238B128 + b _0238B164 +_0238B078: + ldr r0, [r0, #0x534] + cmp r0, #4 + bne _0238B098 + add r0, r2, #0x1b4 + add r0, r0, #0x2800 + bl FUN_022F4990 + cmp r0, #0 + bne _0238B1A8 +_0238B098: + ldr r0, _0238B694 @ =0x0238DB80 + ldr r1, [r0] + add r0, r1, #0x3000 + ldr r0, [r0, #0x534] + cmp r0, #3 + beq _0238B0C4 + add r0, r1, #0x1b4 + ldr r1, _0238B6A4 @ =0x00000801 + add r0, r0, #0x2800 + mov r2, #0 + bl FUN_022F52E8 +_0238B0C4: + ldr r1, _0238B694 @ =0x0238DB80 + mov r2, #0 + ldr r0, [r1] + add r0, r0, #0x3000 + ldr r3, [r0, #0x538] + str r3, [r0, #0x534] + ldr r0, [r1] + add r0, r0, #0x3000 + str r2, [r0, #0x538] + b _0238B1A8 +_0238B0EC: + add r0, r2, #0x1b4 + ldr r1, _0238B6A8 @ =0x00001002 + add r0, r0, #0x2800 + mov r2, #0 + bl FUN_022F52E8 + ldr r1, _0238B694 @ =0x0238DB80 + mov r2, #0 + ldr r0, [r1] + add r0, r0, #0x3000 + ldr r3, [r0, #0x538] + str r3, [r0, #0x534] + ldr r0, [r1] + add r0, r0, #0x3000 + str r2, [r0, #0x538] + b _0238B1A8 +_0238B128: + add r0, r2, #0x1b4 + ldr r1, _0238B6AC @ =0x00000802 + add r0, r0, #0x2800 + mov r2, #0 + bl FUN_022F52E8 + ldr r1, _0238B694 @ =0x0238DB80 + mov r2, #0 + ldr r0, [r1] + add r0, r0, #0x3000 + ldr r3, [r0, #0x538] + str r3, [r0, #0x534] + ldr r0, [r1] + add r0, r0, #0x3000 + str r2, [r0, #0x538] + b _0238B1A8 +_0238B164: + ldr r0, [r0, #0x534] + cmp r0, r1 + beq _0238B184 + add r0, r2, #0x1b4 + add r0, r0, #0x2800 + mov r1, #0x800 + mov r2, #0 + bl FUN_022F52E8 +_0238B184: + ldr r1, _0238B694 @ =0x0238DB80 + mov r2, #0 + ldr r0, [r1] + add r0, r0, #0x3000 + ldr r3, [r0, #0x538] + str r3, [r0, #0x534] + ldr r0, [r1] + add r0, r0, #0x3000 + str r2, [r0, #0x538] +_0238B1A8: + ldr r0, _0238B694 @ =0x0238DB80 + ldr r3, [r0] + add r0, r3, #0x3000 + ldr r1, [r0, #0x534] + cmp r1, #1 + beq _0238B1DC + ldr r1, [r0, #0x878] + ldr r2, _0238B698 @ =0x0238DA40 + add r0, r3, #0x1b4 + add r0, r0, #0x2800 + add r1, r2, r1, lsl #3 + mov r2, #0 + bl FUN_022F6F14 +_0238B1DC: + mov sl, #0 + ldr r8, _0238B6B0 @ =0x0238DB84 + ldr r7, _0238B6B4 @ =0x0238DA60 + ldr r5, _0238B694 @ =0x0238DB80 + mov fp, sl + mov r6, #0xa000 + mov r4, #0xc4 +_0238B1F8: + mul sb, sl, r4 + ldrsb r0, [r8, sl] + ldr r1, [r5] + mov r2, fp + add r0, r0, #0x800 + add r3, r1, #0x36c + lsl r1, r0, #0x10 + add r0, r3, sb + asr r1, r1, #0x10 + bl FUN_022F52E8 + lsl r0, sl, #1 + ldrsh r1, [r7, r0] + ldr r0, [r5] + mov r2, #0 + lsl r1, r1, #8 + add r0, r0, #0x36c + str r1, [sp, #0x14] + add r0, r0, sb + add r1, sp, #0x14 + str r6, [sp, #0x18] + bl FUN_022F6F14 + add sl, sl, #1 + cmp sl, #0x10 + blt _0238B1F8 + ldr r1, _0238B694 @ =0x0238DB80 + ldr r0, [r1] + add r0, r0, #0x3000 + ldr r3, [r0, #0x884] + ldr r2, [r0, #0x564] + cmp r3, r2 + beq _0238B2E4 + str r3, [r0, #0x564] + ldr r2, [r1] + mov r1, #6 + add r0, r2, #0x3000 + ldr r0, [r0, #0x564] + ldr r3, _0238B6B8 @ =0x0000C402 + add r0, r0, #1 + str r0, [sp, #0x40] + cmp r0, #6 + add r0, r2, #0x570 + ldr r2, _0238B6BC @ =0x0238DB0C + str r1, [sp, #0x44] + strgt r1, [sp, #0x40] + add r4, sp, #0x1c + add r0, r0, #0x3000 + mov r1, #0x400 + str r4, [sp] + bl FUN_020223F0 + mov r1, r4 + str r1, [sp] + ldr r0, _0238B694 @ =0x0238DB80 + ldr r2, _0238B6C0 @ =0x0238DB18 + ldr r0, [r0] + ldr r3, _0238B6B8 @ =0x0000C402 + add r0, r0, #0x670 + add r0, r0, #0x3000 + mov r1, #0x400 + bl FUN_020223F0 +_0238B2E4: + ldr r0, _0238B694 @ =0x0238DB80 + ldr r1, [r0] + add r0, r1, #0x3000 + ldr r0, [r0, #0x564] + cmp r0, #0 + blt _0238B374 + add r0, r1, #0x3ac + add r4, r0, #0xc00 + add r0, r1, #0x570 + mov r3, #0x3a + str r4, [sp, #0x10] + str r3, [sp, #0xc] + mov r4, #1 + add r1, sp, #0x10 + add r2, sp, #0xc + add r0, r0, #0x3000 + mov r3, #0x16 + str r4, [sp] + bl ov14_0238D828 + mov r4, #0 + ldr r0, _0238B6C4 @ =0x0238DB24 + add r1, sp, #0x10 + add r2, sp, #0xc + mov r3, #0x16 + str r4, [sp] + bl ov14_0238D828 + mov r1, #1 + str r1, [sp] + ldr r0, _0238B694 @ =0x0238DB80 + add r1, sp, #0x10 + ldr r0, [r0] + add r2, sp, #0xc + add r0, r0, #0x670 + add r0, r0, #0x3000 + mov r3, #0x16 + bl ov14_0238D828 +_0238B374: + ldr r1, _0238B694 @ =0x0238DB80 + ldr r0, [r1] + add r0, r0, #0x3000 + ldr r3, [r0, #0x88c] + ldr r2, [r0, #0x568] + cmp r3, r2 + beq _0238B3C4 + str r3, [r0, #0x568] + ldr r2, [r1] + ldr r3, _0238B6B8 @ =0x0000C402 + add r0, r2, #0x3000 + ldr r1, [r0, #0x568] + add r0, r2, #0x770 + str r1, [sp, #0x40] + add r4, sp, #0x1c + ldr r2, _0238B6BC @ =0x0238DB0C + add r0, r0, #0x3000 + mov r1, #0x400 + str r4, [sp] + bl FUN_020223F0 +_0238B3C4: + ldr r0, _0238B694 @ =0x0238DB80 + ldr r1, [r0] + add r0, r1, #0x3000 + ldr r0, [r0, #0x568] + cmp r0, #0 + blt _0238B42C + add r0, r1, #0x3ec + add r4, r0, #0x1800 + add r0, r1, #0x770 + mov r3, #0xa8 + str r4, [sp, #8] + str r3, [sp, #4] + mov r4, #8 + add r1, sp, #8 + add r2, sp, #4 + add r0, r0, #0x3000 + mov r3, #0x18 + str r4, [sp] + bl ov14_0238D828 + mov r4, #0 + ldr r0, _0238B6C8 @ =0x0238DB28 + add r1, sp, #8 + add r2, sp, #4 + mov r3, #0x18 + str r4, [sp] + bl ov14_0238D828 +_0238B42C: + ldr r4, _0238B694 @ =0x0238DB80 + ldr r0, [r4] + add r0, r0, #0x3000 + ldr r8, [r0, #0x56c] + ldr r7, [r0, #0x898] + cmp r7, r8 + beq _0238B4E4 + cmp r7, r8 + mov r5, #0 + ble _0238B494 + mov r6, #0x304 + mov r7, #0xc4 + b _0238B47C +_0238B460: + add r0, r1, #0x2c + add r0, r0, #0x2800 + mla r0, r8, r7, r0 + mov r1, r6 + mov r2, r5 + bl FUN_022F52E8 + add r8, r8, #1 +_0238B47C: + ldr r1, [r4] + add r0, r1, #0x3000 + ldr r0, [r0, #0x898] + cmp r8, r0 + blt _0238B460 + b _0238B4D0 +_0238B494: + ldr r6, _0238B6CC @ =0x00001004 + mov r8, #0xc4 + b _0238B4BC +_0238B4A0: + add r0, r1, #0x2c + add r0, r0, #0x2800 + mla r0, r7, r8, r0 + mov r1, r6 + mov r2, r5 + bl FUN_022F52E8 + add r7, r7, #1 +_0238B4BC: + ldr r1, [r4] + add r0, r1, #0x3000 + ldr r0, [r0, #0x56c] + cmp r7, r0 + blt _0238B4A0 +_0238B4D0: + ldr r0, _0238B694 @ =0x0238DB80 + ldr r0, [r0] + add r0, r0, #0x3000 + ldr r1, [r0, #0x898] + str r1, [r0, #0x56c] +_0238B4E4: + mov r0, #0x2600 + mov r4, #0 + ldr r6, _0238B694 @ =0x0238DB80 + str r0, [sp, #0x18] + add r8, sp, #0x14 + mov r7, r4 + mov r5, #0xc4 +_0238B500: + ldr r0, [r6] + lsl r1, r4, #4 + add r0, r0, #0x2c + add r0, r0, #0x2800 + mla r0, r4, r5, r0 + add r1, r1, #0xd6 + lsl r3, r1, #8 + mov r1, r8 + mov r2, r7 + str r3, [sp, #0x14] + bl FUN_022F6F14 + add r4, r4, #1 + cmp r4, #2 + blt _0238B500 + ldr r6, _0238B694 @ =0x0238DB80 + ldr r0, [r6] + add r0, r0, #0x3000 + ldrb r1, [r0, #0x870] + cmp r1, #0 + beq _0238B688 + ldr r2, [r0, #0x53c] + ldr r1, [r0, #0x540] + cmp r2, r1 + beq _0238B5BC + mov r4, #0 + ldr r8, _0238B6D0 @ =0x00001003 + str r1, [r0, #0x53c] + mov r7, r4 + mov r5, #0xc4 +_0238B574: + ldr r0, [r6] + mov r1, r8 + add r0, r0, #0x98 + add r0, r0, #0x3000 + mla r0, r4, r5, r0 + mov r2, r7 + bl FUN_022F52E8 + add r4, r4, #1 + cmp r4, #4 + blt _0238B574 + ldr r0, _0238B694 @ =0x0238DB80 + ldr r0, [r0] + add r0, r0, #0x3000 + ldr r0, [r0, #0x53c] + cmp r0, #3 + bne _0238B5BC + ldr r0, _0238B6D4 @ =0x00002C05 + bl FUN_02017C80 +_0238B5BC: + ldr r6, _0238B694 @ =0x0238DB80 + ldr r0, [r6] + add r0, r0, #0x3000 + ldr r0, [r0, #0x53c] + cmp r0, #1 + ble _0238B688 + mov sl, #0 + mov r4, #0xc4 + ldr sb, _0238B698 @ =0x0238DA40 + add r8, sp, #0x14 + mov fp, sl + mov r7, sl + mov r5, r4 +_0238B5F0: + ldr r1, [r6] + add r0, r1, #0x3000 + ldr r0, [r0, #0x53c] + cmp r0, #2 + beq _0238B610 + cmp r0, #3 + beq _0238B648 + b _0238B67C +_0238B610: + add r0, r1, #0x98 + add r0, r0, #0x3000 + mla r0, sl, r5, r0 + add r1, sb, sl, lsl #3 + ldr r2, [sb, sl, lsl #3] + ldr r1, [r1, #4] + sub r3, r2, #0x1600 + sub ip, r1, #0x600 + mov r1, r8 + mov r2, r7 + str r3, [sp, #0x14] + str ip, [sp, #0x18] + bl FUN_022F6F14 + b _0238B67C +_0238B648: + add r0, r1, #0x98 + add r0, r0, #0x3000 + mla r0, sl, r4, r0 + add r1, sb, sl, lsl #3 + ldr r2, [sb, sl, lsl #3] + ldr r1, [r1, #4] + add r3, r2, #0x2200 + add ip, r1, #0xe00 + mov r1, r8 + mov r2, fp + str r3, [sp, #0x14] + str ip, [sp, #0x18] + bl FUN_022F6F14 +_0238B67C: + add sl, sl, #1 + cmp sl, #4 + blt _0238B5F0 +_0238B688: + add sp, sp, #0x6c + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0238B690: .4byte 0x0238D970 +_0238B694: .4byte 0x0238DB80 +_0238B698: .4byte 0x0238DA40 +_0238B69C: .4byte 0x00000806 +_0238B6A0: .4byte 0x00001005 +_0238B6A4: .4byte 0x00000801 +_0238B6A8: .4byte 0x00001002 +_0238B6AC: .4byte 0x00000802 +_0238B6B0: .4byte 0x0238DB84 +_0238B6B4: .4byte 0x0238DA60 +_0238B6B8: .4byte 0x0000C402 +_0238B6BC: .4byte 0x0238DB0C +_0238B6C0: .4byte 0x0238DB18 +_0238B6C4: .4byte 0x0238DB24 +_0238B6C8: .4byte 0x0238DB28 +_0238B6CC: .4byte 0x00001004 +_0238B6D0: .4byte 0x00001003 +_0238B6D4: .4byte 0x00002C05 + arm_func_end SentryUpdateDisplay + + arm_func_start SentrySetExitingState +SentrySetExitingState: @ 0x0238B6D8 + push {r3, lr} + ldr r0, _0238B704 @ =0x0238DB80 + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #0x118] + bl ov14_0238A514 + ldr r0, _0238B704 @ =0x0238DB80 + mov r1, #1 + ldr r0, [r0] + str r1, [r0, #0x104] + pop {r3, pc} + .align 2, 0 +_0238B704: .4byte 0x0238DB80 + arm_func_end SentrySetExitingState + + arm_func_start ov14_0238B708 +ov14_0238B708: @ 0x0238B708 + push {r3, r4, r5, r6, r7, lr} + ldr r0, _0238B7F8 @ =0x0238DB80 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + add r0, r0, #0x2a8 + bl FUN_022F6EFC + ldr r7, _0238B7F8 @ =0x0238DB80 + mov r4, #0 + mov r6, #0xc4 +_0238B730: + mul r5, r4, r6 + ldr r0, [r7] + add r0, r0, #0x36c + add r0, r0, r5 + bl FUN_022F6EFC + ldr r0, [r7] + add r0, r0, #0x3ac + add r0, r0, #0xc00 + add r0, r0, r5 + bl FUN_022F6EFC + ldr r0, [r7] + add r0, r0, #0x3ec + add r0, r0, #0x1800 + add r0, r0, r5 + bl FUN_022F6EFC + add r4, r4, #1 + cmp r4, #0x10 + blt _0238B730 + ldr r5, _0238B7F8 @ =0x0238DB80 + mov r6, #0 + mov r4, #0xc4 +_0238B784: + ldr r0, [r5] + add r0, r0, #0x2c + add r0, r0, #0x2800 + mla r0, r6, r4, r0 + bl FUN_022F6EFC + add r6, r6, #1 + cmp r6, #2 + blt _0238B784 + ldr r0, _0238B7F8 @ =0x0238DB80 + ldr r0, [r0] + add r0, r0, #0x120 + bl FUN_022F6EFC + ldr r0, _0238B7F8 @ =0x0238DB80 + ldr r0, [r0] + add r0, r0, #0x1e4 + bl FUN_022F6EFC + ldr r0, _0238B7F8 @ =0x0238DB80 + ldr r0, [r0] + ldr r0, [r0, #0x11c] + cmp r0, #2 + beq _0238B7DC + bl FUN_02017B70 +_0238B7DC: + ldr r0, _0238B7F8 @ =0x0238DB80 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0238B7F8 @ =0x0238DB80 + mov r1, #0 + str r1, [r0] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0238B7F8: .4byte 0x0238DB80 + arm_func_end ov14_0238B708 + + arm_func_start SentryRunState +SentryRunState: @ 0x0238B7FC + push {r3, r4, r5, lr} + sub sp, sp, #8 + ldr r0, _0238C12C @ =0x0238DB80 + ldr r2, [r0] + ldr r1, [r2, #0x104] + cmp r1, #3 + addls pc, pc, r1, lsl #2 + b _0238C120 +_0238B81C: @ jump table + b _0238B82C @ case 0 + b _0238C0E0 @ case 1 + b _0238C0FC @ case 2 + b _0238C120 @ case 3 +_0238B82C: + ldr r1, [r2, #0x10c] + cmp r1, #3 + addls pc, pc, r1, lsl #2 + b _0238C0D8 +_0238B83C: @ jump table + b _0238B84C @ case 0 + b _0238B8BC @ case 1 + b _0238C090 @ case 2 + b _0238B84C @ case 3 +_0238B84C: + mov r1, #0 + str r1, [r2, #0x10c] + ldr r1, [r0] + ldr r0, _0238C130 @ =0x0238DB94 + ldr r1, [r1, #0x108] + ldr r0, [r0, r1, lsl #2] + blx r0 + ldr r0, _0238C12C @ =0x0238DB80 + ldr r3, [r0] + ldr r1, [r3, #0x108] + ldr r2, [r3, #0x110] + cmp r1, r2 + beq _0238C0D8 + ldr r1, [r3, #0x10c] + cmp r1, #3 + bne _0238B8A4 + str r2, [r3, #0x108] + ldr r1, [r0] + ldr r0, _0238C130 @ =0x0238DB94 + ldr r1, [r1, #0x108] + ldr r0, [r0, r1, lsl #2] + blx r0 +_0238B8A4: + bl ov14_0238A514 + ldr r0, _0238C12C @ =0x0238DB80 + mov r1, #1 + ldr r0, [r0] + str r1, [r0, #0x10c] + b _0238C0D8 +_0238B8BC: + bl ov14_0238A6B0 + cmp r0, #0 + beq _0238C0D8 + ldr r1, _0238C12C @ =0x0238DB80 + ldr r3, [r1] + ldr r0, [r3, #0x118] + tst r0, #1 + beq _0238B96C + ldrsb r2, [r3] + mvn r0, #1 + cmp r2, r0 + bne _0238B96C + mov r2, #0 + str r2, [r3, #0xc] + ldr r2, [r1] + add r0, r0, #0x6e0 + strh r0, [r2, #0x14] + ldr r0, [r1] + mov r2, #0x10 + str r2, [r0, #0x18] + ldr r2, [r1] + mov r4, #5 + ldr r0, [r2, #0x11c] + ldr r1, _0238C134 @ =0x04080800 + cmp r0, #2 + str r4, [sp] + beq _0238B94C + ldr r0, _0238C138 @ =0x0238D9C8 + ldr r3, _0238C13C @ =ov14_0238ABA0 + add r2, r2, #0xc + str r4, [sp, #4] + bl FUN_0202BA20 + ldr r1, _0238C12C @ =0x0238DB80 + ldr r1, [r1] + strb r0, [r1] + b _0238B96C +_0238B94C: + ldr r0, _0238C140 @ =0x0238D9D8 + ldr r3, _0238C13C @ =ov14_0238ABA0 + add r2, r2, #0xc + str r4, [sp, #4] + bl FUN_0202BA20 + ldr r1, _0238C12C @ =0x0238DB80 + ldr r1, [r1] + strb r0, [r1] +_0238B96C: + ldr r0, _0238C12C @ =0x0238DB80 + ldr r3, [r0] + ldr r1, [r3, #0x118] + tst r1, #2 + beq _0238BDA4 + ldr r5, [r3, #0x114] + mov r2, #0x32 + str r2, [r3, #0xf0] + ldr r1, [r0] + sub r0, r2, #0x34 + ldrsb r1, [r1, #1] + ldr r4, _0238C144 @ =0x00003018 + cmp r1, r0 + bne _0238B9B8 + ldr r0, _0238C148 @ =0x0238D9B8 + bl FUN_0202F0B0 + ldr r1, _0238C12C @ =0x0238DB80 + ldr r1, [r1] + strb r0, [r1, #1] +_0238B9B8: + ldr r0, _0238C12C @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #1] + bl FUN_0202F3A4 + ldr r2, _0238C12C @ =0x0238DB80 + ldr r0, [r2] + ldr r1, [r0, #0x108] + cmp r1, #0x21 + addls pc, pc, r1, lsl #2 + b _0238BD6C +_0238B9E0: @ jump table + b _0238BD6C @ case 0 + b _0238BD6C @ case 1 + b _0238BD6C @ case 2 + b _0238BD6C @ case 3 + b _0238BA68 @ case 4 + b _0238BA68 @ case 5 + b _0238BA7C @ case 6 + b _0238BA7C @ case 7 + b _0238BA90 @ case 8 + b _0238BD6C @ case 9 + b _0238BA90 @ case 10 + b _0238BD6C @ case 11 + b _0238BAA4 @ case 12 + b _0238BAA4 @ case 13 + b _0238BD6C @ case 14 + b _0238BD6C @ case 15 + b _0238BAC0 @ case 16 + b _0238BAC0 @ case 17 + b _0238BADC @ case 18 + b _0238BADC @ case 19 + b _0238BAF0 @ case 20 + b _0238BD6C @ case 21 + b _0238BD6C @ case 22 + b _0238BB60 @ case 23 + b _0238BD6C @ case 24 + b _0238BBE0 @ case 25 + b _0238BD6C @ case 26 + b _0238BD6C @ case 27 + b _0238BC50 @ case 28 + b _0238BD6C @ case 29 + b _0238BC88 @ case 30 + b _0238BD6C @ case 31 + b _0238BCFC @ case 32 + b _0238BD6C @ case 33 +_0238BA68: + ldr r1, _0238C14C @ =0x00000142 + ldr r5, _0238C150 @ =0x000006D9 + str r1, [r0, #0xf0] + ldr r4, _0238C144 @ =0x00003018 + b _0238BD6C +_0238BA7C: + ldr r1, _0238C14C @ =0x00000142 + ldr r5, _0238C154 @ =0x000006D8 + str r1, [r0, #0xf0] + add r4, r5, #0x2940 + b _0238BD6C +_0238BA90: + ldr r1, _0238C14C @ =0x00000142 + ldr r5, _0238C158 @ =0x000006DA + str r1, [r0, #0xf0] + ldr r4, _0238C144 @ =0x00003018 + b _0238BD6C +_0238BAA4: + add r1, r0, #0x3800 + ldrsh r1, [r1, #0xd2] + ldr r5, _0238C15C @ =0x000006DB + ldr r4, _0238C160 @ =0x00003028 + orr r1, r1, #0x20000 + str r1, [r0, #0xf0] + b _0238BD6C +_0238BAC0: + add r1, r0, #0x3800 + ldrsh r1, [r1, #0xd2] + ldr r5, _0238C164 @ =0x000006EB + ldr r4, _0238C160 @ =0x00003028 + orr r1, r1, #0x20000 + str r1, [r0, #0xf0] + b _0238BD6C +_0238BADC: + ldr r1, _0238C14C @ =0x00000142 + ldr r5, _0238C168 @ =0x000006DC + str r1, [r0, #0xf0] + ldr r4, _0238C160 @ =0x00003028 + b _0238BD6C +_0238BAF0: + add r1, r0, #0x3000 + ldr r1, [r1, #0x8ac] + cmp r1, #0 + beq _0238BB0C + cmp r1, #1 + beq _0238BB38 + b _0238BB58 +_0238BB0C: + add r1, r0, #0x3800 + ldrsh r1, [r1, #0xd0] + ldr r5, _0238C16C @ =0x000006EE + orr r1, r1, #0x20000 + str r1, [r0, #0xf0] + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r1, [r0, #0x8ac] + add r1, r1, #1 + str r1, [r0, #0x8ac] + b _0238BB58 +_0238BB38: + ldr r1, _0238C14C @ =0x00000142 + ldr r5, _0238C170 @ =0x000006EF + str r1, [r0, #0xf0] + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r1, [r0, #0x8ac] + add r1, r1, #1 + str r1, [r0, #0x8ac] +_0238BB58: + ldr r4, _0238C160 @ =0x00003028 + b _0238BD6C +_0238BB60: + add r1, r0, #0x3000 + ldr r1, [r1, #0x8ac] + cmp r1, #0 + beq _0238BB7C + cmp r1, #1 + beq _0238BBAC + b _0238BBD8 +_0238BB7C: + ldr r3, _0238C14C @ =0x00000142 + ldr r1, _0238C174 @ =0x00002311 + str r3, [r0, #0xf0] + ldr r0, [r2] + ldr r5, _0238C178 @ =0x000006F1 + str r1, [r0, #0xc8] + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r1, [r0, #0x8ac] + add r1, r1, #1 + str r1, [r0, #0x8ac] + b _0238BBD8 +_0238BBAC: + ldr r5, _0238C17C @ =0x000006F2 + ldr r1, _0238C180 @ =0x00002C07 + sub r3, r5, #0x5b0 + str r3, [r0, #0xf0] + ldr r0, [r2] + str r1, [r0, #0xc8] + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r1, [r0, #0x8ac] + add r1, r1, #1 + str r1, [r0, #0x8ac] +_0238BBD8: + ldr r4, _0238C160 @ =0x00003028 + b _0238BD6C +_0238BBE0: + add r1, r0, #0x3000 + ldr r1, [r1, #0x8ac] + cmp r1, #0 + beq _0238BBFC + cmp r1, #1 + beq _0238BC28 + b _0238BC48 +_0238BBFC: + add r1, r0, #0x3800 + ldrsh r1, [r1, #0xd0] + ldr r5, _0238C184 @ =0x000006EC + orr r1, r1, #0x20000 + str r1, [r0, #0xf0] + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r1, [r0, #0x8ac] + add r1, r1, #1 + str r1, [r0, #0x8ac] + b _0238BC48 +_0238BC28: + ldr r1, _0238C14C @ =0x00000142 + ldr r5, _0238C188 @ =0x000006ED + str r1, [r0, #0xf0] + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r1, [r0, #0x8ac] + add r1, r1, #1 + str r1, [r0, #0x8ac] +_0238BC48: + ldr r4, _0238C160 @ =0x00003028 + b _0238BD6C +_0238BC50: + add r1, r0, #0x3000 + ldr r1, [r1, #0x8ac] + cmp r1, #0 + bne _0238BC80 + ldr r1, _0238C14C @ =0x00000142 + mov r5, #0x6f0 + str r1, [r0, #0xf0] + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r1, [r0, #0x8ac] + add r1, r1, #1 + str r1, [r0, #0x8ac] +_0238BC80: + ldr r4, _0238C160 @ =0x00003028 + b _0238BD6C +_0238BC88: + add r1, r0, #0x3000 + ldr r1, [r1, #0x8ac] + cmp r1, #0 + beq _0238BCA4 + cmp r1, #1 + beq _0238BCD4 + b _0238BCF4 +_0238BCA4: + mov r1, #0x32 + str r1, [r0, #0xf0] + ldr r0, [r2] + ldr r1, _0238C18C @ =0x00002C09 + ldr r5, _0238C190 @ =0x000006F3 + str r1, [r0, #0xc8] + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r1, [r0, #0x8ac] + add r1, r1, #1 + str r1, [r0, #0x8ac] + b _0238BCF4 +_0238BCD4: + ldr r1, _0238C14C @ =0x00000142 + ldr r5, _0238C194 @ =0x000006F4 + str r1, [r0, #0xf0] + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r1, [r0, #0x8ac] + add r1, r1, #1 + str r1, [r0, #0x8ac] +_0238BCF4: + ldr r4, _0238C144 @ =0x00003018 + b _0238BD6C +_0238BCFC: + add r1, r0, #0x3000 + ldr r1, [r1, #0x8ac] + cmp r1, #0 + beq _0238BD18 + cmp r1, #1 + beq _0238BD48 + b _0238BD68 +_0238BD18: + ldr r3, _0238C198 @ =0x000001E3 + ldr r1, _0238C18C @ =0x00002C09 + str r3, [r0, #0xf0] + ldr r0, [r2] + ldr r5, _0238C19C @ =0x000006F5 + str r1, [r0, #0xc8] + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r1, [r0, #0x8ac] + add r1, r1, #1 + str r1, [r0, #0x8ac] + b _0238BD68 +_0238BD48: + ldr r1, _0238C14C @ =0x00000142 + ldr r5, _0238C1A0 @ =0x000006F6 + str r1, [r0, #0xf0] + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r1, [r0, #0x8ac] + add r1, r1, #1 + str r1, [r0, #0x8ac] +_0238BD68: + ldr r4, _0238C144 @ =0x00003018 +_0238BD6C: + ldr r0, _0238C12C @ =0x0238DB80 + ldr r2, [r0] + ldr r1, [r2, #0x114] + cmp r1, r5 + beq _0238BDA4 + str r5, [r2, #0x114] + ldr r3, [r0] + mov r1, r4 + ldr r2, [r3, #0x114] + ldrsb r0, [r3, #1] + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + add r3, r3, #0xa4 + bl FUN_0202F1B4 +_0238BDA4: + ldr r0, _0238C12C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #4 + beq _0238BE30 + ldrsb r1, [r1, #2] + mvn r0, #1 + cmp r1, r0 + bne _0238BE30 + mov r0, #0 + mov r1, #3 + mov r2, #1 + bl FUN_0202F5AC + ldr r2, _0238C12C @ =0x0238DB80 + mov r1, #0x32 + ldr r3, [r2] + strb r0, [r3, #2] + ldr r0, [r2] + add r0, r0, #0xf4 + bl FUN_0204D7D4 + ldr r0, _0238C12C @ =0x0238DB80 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0xf4 + bl FUN_0204D804 + ldr r0, _0238C12C @ =0x0238DB80 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0xf4 + bl FUN_0204D7F4 + ldr r0, _0238C12C @ =0x0238DB80 + ldr r1, [r0] + ldrsb r0, [r1, #2] + add r1, r1, #0xf4 + bl FUN_0202F690 +_0238BE30: + ldr r0, _0238C12C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #8 + beq _0238BE6C + ldrsb r1, [r1, #3] + mvn r0, #1 + cmp r1, r0 + bne _0238BE6C + ldr r0, _0238C1A4 @ =0x0238D9F8 + ldr r1, _0238C1A8 @ =0x0238ACEC + bl FUN_0202F8C4 + ldr r1, _0238C12C @ =0x0238DB80 + ldr r1, [r1] + strb r0, [r1, #3] +_0238BE6C: + ldr r0, _0238C12C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x10 + beq _0238BEA8 + ldrsb r1, [r1, #4] + mvn r0, #1 + cmp r1, r0 + bne _0238BEA8 + ldr r0, _0238C1AC @ =0x0238D988 + ldr r1, _0238C1B0 @ =ov14_0238AD04 + bl FUN_0202F8C4 + ldr r1, _0238C12C @ =0x0238DB80 + ldr r1, [r1] + strb r0, [r1, #4] +_0238BEA8: + ldr r0, _0238C12C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x20 + beq _0238BEE4 + ldrsb r1, [r1, #5] + mvn r0, #1 + cmp r1, r0 + bne _0238BEE4 + ldr r0, _0238C1B4 @ =0x0238D998 + ldr r1, _0238C1B0 @ =ov14_0238AD04 + bl FUN_0202F8C4 + ldr r1, _0238C12C @ =0x0238DB80 + ldr r1, [r1] + strb r0, [r1, #5] +_0238BEE4: + ldr r0, _0238C12C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x40 + beq _0238BF24 + ldrsb r1, [r1, #6] + mvn r0, #1 + cmp r1, r0 + bne _0238BF24 + mov r0, #0 + mov r2, r0 + mov r1, #3 + bl FUN_0202F5AC + ldr r1, _0238C12C @ =0x0238DB80 + ldr r1, [r1] + strb r0, [r1, #6] +_0238BF24: + ldr r0, _0238C12C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x80 + beq _0238BF64 + ldrsb r1, [r1, #7] + mvn r0, #1 + cmp r1, r0 + bne _0238BF64 + mov r0, #0 + mov r2, r0 + mov r1, #4 + bl FUN_0202F5AC + ldr r1, _0238C12C @ =0x0238DB80 + ldr r1, [r1] + strb r0, [r1, #7] +_0238BF64: + ldr r0, _0238C12C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x100 + beq _0238BFA4 + ldrsb r1, [r1, #8] + mvn r0, #1 + cmp r1, r0 + bne _0238BFA4 + mov r0, #0 + mov r2, r0 + mov r1, #5 + bl FUN_0202F5AC + ldr r1, _0238C12C @ =0x0238DB80 + ldr r1, [r1] + strb r0, [r1, #8] +_0238BFA4: + ldr r0, _0238C12C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x200 + beq _0238BFE4 + ldrsb r1, [r1, #9] + mvn r0, #1 + cmp r1, r0 + bne _0238BFE4 + mov r0, #0 + mov r2, r0 + mov r1, #6 + bl FUN_0202F5AC + ldr r1, _0238C12C @ =0x0238DB80 + ldr r1, [r1] + strb r0, [r1, #9] +_0238BFE4: + ldr r0, _0238C12C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x40000000 + beq _0238C030 + ldrsb r1, [r1, #0xa] + mvn r0, #1 + cmp r1, r0 + bne _0238C030 + ldr r0, _0238C1B8 @ =0x0238D9A8 + mov r4, #8 + ldr r3, _0238C1BC @ =0x0238DAA0 + mov r1, #0x13 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238C12C @ =0x0238DB80 + ldr r1, [r1] + strb r0, [r1, #0xa] +_0238C030: + ldr r0, _0238C12C @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x118] + tst r0, #0x80000000 + beq _0238C07C + ldrsb r1, [r1, #0xb] + mvn r0, #1 + cmp r1, r0 + bne _0238C07C + ldr r0, _0238C1C0 @ =0x0238D9E8 + mov r4, #2 + ldr r3, _0238C1C4 @ =0x0238DA08 + mov r1, #0x13 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238C12C @ =0x0238DB80 + ldr r1, [r1] + strb r0, [r1, #0xb] +_0238C07C: + ldr r0, _0238C12C @ =0x0238DB80 + mov r1, #2 + ldr r0, [r0] + str r1, [r0, #0x10c] + b _0238C0D8 +_0238C090: + ldr r0, [r2, #0x118] + tst r0, #2 + beq _0238C0B0 + ldrsb r0, [r2, #1] + bl FUN_0202F180 + cmp r0, #0 + movne r0, #0 + bne _0238C0B4 +_0238C0B0: + mov r0, #1 +_0238C0B4: + cmp r0, #0 + beq _0238C0D8 + ldr r0, _0238C12C @ =0x0238DB80 + mov r2, #0 + ldr r1, [r0] + str r2, [r1, #0x10c] + ldr r1, [r0] + ldr r0, [r1, #0x110] + str r0, [r1, #0x108] +_0238C0D8: + mov r0, #1 + b _0238C124 +_0238C0E0: + bl ov14_0238A6B0 + cmp r0, #0 + ldrne r0, _0238C12C @ =0x0238DB80 + movne r1, #2 + ldrne r0, [r0] + strne r1, [r0, #0x104] + b _0238C120 +_0238C0FC: + mov r1, #3 + str r1, [r2, #0x104] + ldr r0, [r0] + add r0, r0, #0x3000 + ldr r0, [r0, #0x890] + bl FUN_022E6E8C + bl ov14_0238B708 + mov r0, #4 + b _0238C124 +_0238C120: + mov r0, #1 +_0238C124: + add sp, sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0238C12C: .4byte 0x0238DB80 +_0238C130: .4byte 0x0238DB94 +_0238C134: .4byte 0x04080800 +_0238C138: .4byte 0x0238D9C8 +_0238C13C: .4byte ov14_0238ABA0 +_0238C140: .4byte 0x0238D9D8 +_0238C144: .4byte 0x00003018 +_0238C148: .4byte 0x0238D9B8 +_0238C14C: .4byte 0x00000142 +_0238C150: .4byte 0x000006D9 +_0238C154: .4byte 0x000006D8 +_0238C158: .4byte 0x000006DA +_0238C15C: .4byte 0x000006DB +_0238C160: .4byte 0x00003028 +_0238C164: .4byte 0x000006EB +_0238C168: .4byte 0x000006DC +_0238C16C: .4byte 0x000006EE +_0238C170: .4byte 0x000006EF +_0238C174: .4byte 0x00002311 +_0238C178: .4byte 0x000006F1 +_0238C17C: .4byte 0x000006F2 +_0238C180: .4byte 0x00002C07 +_0238C184: .4byte 0x000006EC +_0238C188: .4byte 0x000006ED +_0238C18C: .4byte 0x00002C09 +_0238C190: .4byte 0x000006F3 +_0238C194: .4byte 0x000006F4 +_0238C198: .4byte 0x000001E3 +_0238C19C: .4byte 0x000006F5 +_0238C1A0: .4byte 0x000006F6 +_0238C1A4: .4byte 0x0238D9F8 +_0238C1A8: .4byte 0x0238ACEC +_0238C1AC: .4byte 0x0238D988 +_0238C1B0: .4byte ov14_0238AD04 +_0238C1B4: .4byte 0x0238D998 +_0238C1B8: .4byte 0x0238D9A8 +_0238C1BC: .4byte 0x0238DAA0 +_0238C1C0: .4byte 0x0238D9E8 +_0238C1C4: .4byte 0x0238DA08 + arm_func_end SentryRunState + + arm_func_start SentrySetStateIntermediate +SentrySetStateIntermediate: @ 0x0238C1C8 + ldr r1, _0238C1E4 @ =0x0238DB80 + mov r3, #3 + ldr r2, [r1] + str r3, [r2, #0x10c] + ldr r1, [r1] + str r0, [r1, #0x110] + bx lr + .align 2, 0 +_0238C1E4: .4byte 0x0238DB80 + arm_func_end SentrySetStateIntermediate + + arm_func_start SentryState0 +SentryState0: @ 0x0238C1E8 + ldr r0, _0238C208 @ =0x0238DB80 + mov r3, #0x80000000 + ldr r2, [r0] + mov r1, #1 + str r3, [r2, #0x118] + ldr r0, [r0] + str r1, [r0, #0x110] + bx lr + .align 2, 0 +_0238C208: .4byte 0x0238DB80 + arm_func_end SentryState0 + + arm_func_start SentryState1 +SentryState1: @ 0x0238C20C + push {r3, lr} + ldr r0, _0238C260 @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #0xb] + bl FUN_0202B4F0 + cmp r0, #0 + popne {r3, pc} + ldr r0, _0238C260 @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #0xb] + bl FUN_0202B57C + cmp r0, #8 + beq _0238C248 + cmp r0, #9 + beq _0238C254 +_0238C248: + mov r0, #2 + bl SentrySetStateIntermediate + pop {r3, pc} +_0238C254: + mov r0, #6 + bl SentrySetStateIntermediate + pop {r3, pc} + .align 2, 0 +_0238C260: .4byte 0x0238DB80 + arm_func_end SentryState1 + + arm_func_start SentryState2 +SentryState2: @ 0x0238C264 + ldr r0, _0238C284 @ =0x0238DB80 + mov r3, #0x40000000 + ldr r2, [r0] + mov r1, #3 + str r3, [r2, #0x118] + ldr r0, [r0] + str r1, [r0, #0x110] + bx lr + .align 2, 0 +_0238C284: .4byte 0x0238DB80 + arm_func_end SentryState2 + + arm_func_start SentryState3 +SentryState3: @ 0x0238C288 + push {r3, lr} + ldr r0, _0238C3AC @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #0xa] + bl FUN_0202B4F0 + cmp r0, #0 + popne {r3, pc} + ldr r0, _0238C3AC @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #0xa] + bl FUN_0202B57C + add r0, r0, #1 + cmp r0, #8 + addls pc, pc, r0, lsl #2 + b _0238C3A4 +_0238C2C4: @ jump table + b _0238C3A4 @ case 0 + b _0238C2E8 @ case 1 + b _0238C300 @ case 2 + b _0238C318 @ case 3 + b _0238C330 @ case 4 + b _0238C348 @ case 5 + b _0238C360 @ case 6 + b _0238C378 @ case 7 + b _0238C390 @ case 8 +_0238C2E8: + ldr r0, _0238C3AC @ =0x0238DB80 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x3000 + str r1, [r0, #0x890] + b _0238C3A4 +_0238C300: + ldr r0, _0238C3AC @ =0x0238DB80 + mov r1, #1 + ldr r0, [r0] + add r0, r0, #0x3000 + str r1, [r0, #0x890] + b _0238C3A4 +_0238C318: + ldr r0, _0238C3AC @ =0x0238DB80 + mov r1, #2 + ldr r0, [r0] + add r0, r0, #0x3000 + str r1, [r0, #0x890] + b _0238C3A4 +_0238C330: + ldr r0, _0238C3AC @ =0x0238DB80 + mov r1, #3 + ldr r0, [r0] + add r0, r0, #0x3000 + str r1, [r0, #0x890] + b _0238C3A4 +_0238C348: + ldr r0, _0238C3AC @ =0x0238DB80 + mov r1, #4 + ldr r0, [r0] + add r0, r0, #0x3000 + str r1, [r0, #0x890] + b _0238C3A4 +_0238C360: + ldr r0, _0238C3AC @ =0x0238DB80 + mov r1, #5 + ldr r0, [r0] + add r0, r0, #0x3000 + str r1, [r0, #0x890] + b _0238C3A4 +_0238C378: + ldr r0, _0238C3AC @ =0x0238DB80 + mov r1, #6 + ldr r0, [r0] + add r0, r0, #0x3000 + str r1, [r0, #0x890] + b _0238C3A4 +_0238C390: + ldr r0, _0238C3AC @ =0x0238DB80 + mov r1, #7 + ldr r0, [r0] + add r0, r0, #0x3000 + str r1, [r0, #0x890] +_0238C3A4: + bl SentrySetExitingState + pop {r3, pc} + .align 2, 0 +_0238C3AC: .4byte 0x0238DB80 + arm_func_end SentryState3 + + arm_func_start SentryState4 +SentryState4: @ 0x0238C3B0 + ldr r0, _0238C3D0 @ =0x0238DB80 + mov r3, #3 + ldr r2, [r0] + mov r1, #5 + str r3, [r2, #0x118] + ldr r0, [r0] + str r1, [r0, #0x110] + bx lr + .align 2, 0 +_0238C3D0: .4byte 0x0238DB80 + arm_func_end SentryState4 + + arm_func_start SentrySetExitingState +SentrySetExitingState: @ 0x0238C3D4 + ldr ip, _0238C3DC @ =SentrySetExitingState + bx ip + .align 2, 0 +_0238C3DC: .4byte SentrySetExitingState + arm_func_end SentrySetExitingState + + arm_func_start SentryState6 +SentryState6: @ 0x0238C3E0 + ldr r0, _0238C400 @ =0x0238DB80 + mov r3, #3 + ldr r2, [r0] + mov r1, #7 + str r3, [r2, #0x118] + ldr r0, [r0] + str r1, [r0, #0x110] + bx lr + .align 2, 0 +_0238C400: .4byte 0x0238DB80 + arm_func_end SentryState6 + + arm_func_start SentryState7 +SentryState7: @ 0x0238C404 + ldr r0, _0238C418 @ =0x0238DB80 + mov r1, #8 + ldr r0, [r0] + str r1, [r0, #0x110] + bx lr + .align 2, 0 +_0238C418: .4byte 0x0238DB80 + arm_func_end SentryState7 + + arm_func_start SentryState8 +SentryState8: @ 0x0238C41C + ldr r0, _0238C43C @ =0x0238DB80 + mov r3, #3 + ldr r2, [r0] + mov r1, #9 + str r3, [r2, #0x118] + ldr r0, [r0] + str r1, [r0, #0x110] + bx lr + .align 2, 0 +_0238C43C: .4byte 0x0238DB80 + arm_func_end SentryState8 + + arm_func_start SentryState9 +SentryState9: @ 0x0238C440 + ldr r0, _0238C460 @ =0x0238DB80 + mov r3, #2 + ldr r2, [r0] + mov r1, #0xc + str r3, [r2, #0x118] + ldr r0, [r0] + str r1, [r0, #0x110] + bx lr + .align 2, 0 +_0238C460: .4byte 0x0238DB80 + arm_func_end SentryState9 + + arm_func_start SentryStateA +SentryStateA: @ 0x0238C464 + ldr r0, _0238C478 @ =0x0238DB80 + mov r1, #0xb + ldr r0, [r0] + str r1, [r0, #0x110] + bx lr + .align 2, 0 +_0238C478: .4byte 0x0238DB80 + arm_func_end SentryStateA + + arm_func_start SentryStateB +SentryStateB: @ 0x0238C47C + ldr r0, _0238C490 @ =0x0238DB80 + mov r1, #0xc + ldr r0, [r0] + str r1, [r0, #0x110] + bx lr + .align 2, 0 +_0238C490: .4byte 0x0238DB80 + arm_func_end SentryStateB + + arm_func_start SentryStateGenerateChoices +SentryStateGenerateChoices: @ 0x0238C494 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x20 + ldr r0, _0238CA54 @ =0x0238DB80 + ldr r1, _0238CA58 @ =0x000003FA + ldr r0, [r0] + str r1, [r0, #0x118] + bl FUN_02055770 + mov r6, r0 + bl FUN_02055798 + ldr r2, _0238CA54 @ =0x0238DB80 + mov r5, r0 + ldr r1, [r2] + mov r0, #0 + add r1, r1, #0x3000 + str r0, [r1, #0x878] + ldr r1, [r2] + ldr r3, _0238CA5C @ =0x000005DC + add r2, r1, #0x3000 + mov r1, #4 + str r3, [r2, #0x894] + bl FUN_0200228C + ldr r2, _0238CA54 @ =0x0238DB80 + ldr r1, [r2] + add r1, r1, #0x3000 + str r0, [r1, #0x888] + ldr r1, [r2] + mov r0, #0 + add r1, r1, #0x3000 + strb r0, [r1, #0x89d] + ldr r1, [r2] + add r1, r1, #0x3000 + strb r0, [r1, #0x89e] + ldr r1, [r2] + add r1, r1, #0x3000 + strb r0, [r1, #0x89f] + ldr r1, [r2] + add r1, r1, #0x3000 + strb r0, [r1, #0x8a0] + ldr r1, [r2] + add r1, r1, #0x3000 + strb r0, [r1, #0x871] + ldr r1, [r2] + add r1, r1, #0x3000 + str r0, [r1, #0x874] + bl ov14_0238AC04 + mov r0, #0 + mov r1, #4 + bl FUN_0200228C + ldr r1, _0238CA54 @ =0x0238DB80 + ldr r1, [r1] + add r1, r1, #0x3000 + str r0, [r1, #0x87c] +_0238C564: + mov r0, #0 + mov r1, #0x65 + bl FUN_0200228C + ldr r2, _0238CA54 @ =0x0238DB80 + ldr r3, _0238CA60 @ =0x020A1BB0 + ldr r1, [r2] + add r1, r1, #0x3000 + str r0, [r1, #0x880] + ldr r4, [r2] + add r0, r4, #0x3000 + ldr r1, [r0, #0x880] + ldr r0, [r0, #0x87c] + lsl r1, r1, #1 + add r0, r4, r0, lsl #1 + ldrsh r1, [r3, r1] + add r0, r0, #0x3800 + strh r1, [r0, #0xa2] + ldrsh r0, [r6, #4] + ldr r4, [r2] + bl FUN_02054BE0 + add r1, r4, #0x3000 + ldr r1, [r1, #0x87c] + add r1, r4, r1, lsl #1 + add r1, r1, #0x3800 + ldrsh r1, [r1, #0xa2] + cmp r1, r0 + beq _0238C564 + ldr r1, _0238CA54 @ =0x0238DB80 + ldrsh r0, [r5, #4] + ldr r2, [r1] + add r1, r2, #0x3000 + ldr r1, [r1, #0x87c] + add r1, r2, r1, lsl #1 + add r1, r1, #0x3800 + ldrsh r4, [r1, #0xa2] + bl FUN_02054BE0 + cmp r4, r0 + ldrne r0, _0238CA64 @ =0x00000119 + cmpne r4, r0 + beq _0238C564 + ldr r0, _0238CA54 @ =0x0238DB80 + mov r8, #0 + ldr r4, [r0] + add r2, r4, #0x3000 + ldr r0, [r2, #0x884] + b _0238C640 +_0238C61C: + add r1, r4, r8, lsl #2 + add r1, r1, #0x3000 + ldr r3, [r2, #0x880] + ldr r1, [r1, #0x8b8] + cmp r3, r1 + beq _0238C648 + add r1, r8, #1 + lsl r1, r1, #0x10 + asr r8, r1, #0x10 +_0238C640: + cmp r8, r0 + blt _0238C61C +_0238C648: + cmp r8, r0 + blt _0238C564 + ldr r1, _0238CA54 @ =0x0238DB80 + mov sb, #0 + ldr r2, [r1] + add r1, r2, #0x3000 + add r0, r2, r0, lsl #2 + ldr r1, [r1, #0x880] + add r0, r0, #0x3000 + str r1, [r0, #0x8b8] +_0238C670: + ldr sl, _0238CA54 @ =0x0238DB80 + ldr r0, [sl] + add r0, r0, #0x3000 + ldr r0, [r0, #0x87c] + cmp sb, r0 + beq _0238C72C + ldr r4, _0238CA60 @ =0x020A1BB0 + ldr fp, _0238CA64 @ =0x00000119 +_0238C690: + mov r0, #0 + mov r1, #0x65 + bl FUN_0200228C + lsl r0, r0, #1 + ldrsh r8, [r4, r0] + ldrsh r0, [r6, #4] + bl FUN_02054BE0 + cmp r8, r0 + beq _0238C690 + ldrsh r0, [r5, #4] + bl FUN_02054BE0 + cmp r8, r0 + cmpne r8, fp + beq _0238C690 + ldr r1, [sl] + add r0, r1, #0x3000 + ldr r0, [r0, #0x87c] + add r0, r1, r0, lsl #1 + add r0, r0, #0x3800 + ldrsh r0, [r0, #0xa2] + cmp r8, r0 + beq _0238C690 + mov r0, #0 + b _0238C710 +_0238C6F0: + add r2, r1, r0, lsl #1 + add r2, r2, #0x3800 + ldrsh r2, [r2, #0xa2] + cmp r8, r2 + beq _0238C718 + add r0, r0, #1 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 +_0238C710: + cmp r0, sb + blt _0238C6F0 +_0238C718: + cmp r0, sb + blt _0238C690 + add r0, r1, sb, lsl #1 + add r0, r0, #0x3800 + strh r8, [r0, #0xa2] +_0238C72C: + add r0, sb, #1 + lsl r0, r0, #0x10 + asr sb, r0, #0x10 + cmp sb, #4 + blt _0238C670 + ldr r0, _0238CA68 @ =0x0238DB2C + bl FUN_0200C1FC + ldr r1, _0238CA54 @ =0x0238DB80 + ldr r0, _0238CA6C @ =0x0238DB44 + ldr r1, [r1] + add r1, r1, #0x3000 + ldr r1, [r1, #0x880] + bl FUN_0200C1FC + ldr r1, _0238CA54 @ =0x0238DB80 + ldr r0, _0238CA70 @ =0x0238DB58 + ldr r1, [r1] + add r1, r1, #0x3000 + ldr r1, [r1, #0x87c] + bl FUN_0200C1FC + ldr r0, _0238CA54 @ =0x0238DB80 + ldr r2, _0238CA74 @ =0x880A0000 + ldr r3, [r0] + add r0, r3, #0x3000 + ldr r1, [r0, #0x880] + add r0, r3, #0x3a8 + add r1, r1, #1 + lsl r1, r1, #0x10 + add r0, r0, #0x3000 + asr r1, r1, #0x10 + bl FUN_022F6FE0 + ldr r0, _0238CA54 @ =0x0238DB80 + ldr r1, _0238CA78 @ =0x00001001 + ldr r0, [r0] + mov r2, #0 + add r0, r0, #0x3a8 + add r0, r0, #0x3000 + bl FUN_022F52E8 + ldr r0, _0238CA54 @ =0x0238DB80 + ldr r1, [r0] + add r0, r1, #0x6c + add r0, r0, #0x3400 + add r1, r1, #0x1e4 + bl FUN_022F6F08 + ldr r0, _0238CA54 @ =0x0238DB80 + ldr r1, _0238CA7C @ =0x00001003 + ldr r0, [r0] + mov r2, #0 + add r0, r0, #0x6c + add r0, r0, #0x3400 + bl FUN_022F52E8 + ldr r1, _0238CA54 @ =0x0238DB80 + mov r2, #0x60 + ldr r0, [r1] + add r0, r0, #0x3000 + str r2, [r0, #0x8b0] + ldr r1, [r1] + add r0, r1, #0x1b4 + add r0, r0, #0x2800 + add r1, r1, #0x120 + bl FUN_022F6F08 + ldr r0, _0238CA54 @ =0x0238DB80 + ldr r1, _0238CA80 @ =0x48140000 + ldr r0, [r0] + add r0, r0, #0x1b4 + add r0, r0, #0x2800 + bl FUN_022F495C + ldr r0, _0238CA54 @ =0x0238DB80 + mov r1, #0x800 + ldr r0, [r0] + mov r2, #0 + add r0, r0, #0x1b4 + add r0, r0, #0x2800 + bl FUN_022F52E8 + ldr r4, _0238CA54 @ =0x0238DB80 + mov sb, #0 + ldr r0, [r4] + ldr r1, _0238CA84 @ =0x0238D970 + add r0, r0, #0x3000 + str sb, [r0, #0x53c] + ldr r0, [r4] + mov fp, #1 + add r0, r0, #0x3000 + str sb, [r0, #0x540] + ldr r6, [r1] + ldr r5, [r1, #4] + str r6, [sp] + str r5, [sp, #4] + mvn sl, #1 +_0238C88C: + mov r0, #0xc4 + mul r8, sb, r0 + ldr r1, [r4] + ldr r2, _0238CA88 @ =0x08120000 + add r0, r1, #0x278 + add r1, r1, sb, lsl #1 + add r1, r1, #0x3800 + add r0, r0, #0x2800 + ldrsh r1, [r1, #0xa2] + add r0, r0, r8 + bl FUN_022F5BBC + ldr r0, [r4] + ldr r1, _0238CA8C @ =0x00000807 + add r0, r0, #0x278 + add r0, r0, #0x2800 + add r0, r0, r8 + mov r2, #7 + bl FUN_022F52E8 + ldr r1, [r4] + add r0, r1, #0x188 + add r0, r0, #0x2c00 + add r0, r0, r8 + add r1, r1, #0x120 + bl FUN_022F6F08 + ldr r0, [r4] + ldr r1, _0238CA80 @ =0x48140000 + add r0, r0, #0x188 + add r0, r0, #0x2c00 + add r0, r0, r8 + bl FUN_022F495C + ldr r0, [r4] + add r0, r0, sb, lsl #2 + add r0, r0, #0x3000 + str fp, [r0, #0x544] + ldr r0, [r4] + add r0, r0, sb, lsl #2 + add r0, r0, #0x3000 + str fp, [r0, #0x554] + ldr r1, [r4] + add r0, r1, #0x98 + add r0, r0, #0x3000 + add r0, r0, r8 + add r1, r1, #0x120 + bl FUN_022F6F08 + cmp sb, #3 + addls pc, pc, sb, lsl #2 + b _0238C984 +_0238C948: @ jump table + b _0238C958 @ case 0 + b _0238C964 @ case 1 + b _0238C970 @ case 2 + b _0238C97C @ case 3 +_0238C958: + ldr r0, [r4] + ldrsb r7, [r0, #6] + b _0238C984 +_0238C964: + ldr r0, [r4] + ldrsb r7, [r0, #7] + b _0238C984 +_0238C970: + ldr r0, [r4] + ldrsb r7, [r0, #8] + b _0238C984 +_0238C97C: + ldr r0, [r4] + ldrsb r7, [r0, #9] +_0238C984: + cmp r7, sl + beq _0238C9C0 + add r0, sp, #0x10 + str r6, [sp, #8] + str r5, [sp, #0xc] + bl FUN_0204D79C + add r0, sp, #0x10 + mov r1, #3 + bl FUN_0204D804 + add r0, sp, #0x10 + add r1, sp, #8 + bl FUN_0204D848 + mov r0, r7 + add r1, sp, #0x10 + bl FUN_0202F690 +_0238C9C0: + add r0, sb, #1 + lsl r0, r0, #0x10 + asr sb, r0, #0x10 + cmp sb, #4 + blt _0238C88C + ldr r0, _0238CA54 @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl ov14_0238AD04 + ldr r0, _0238CA54 @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #5] + bl ov14_0238AD04 + ldr r0, _0238CA54 @ =0x0238DB80 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #3] + cmp r0, r1 + beq _0238CA10 + bl FUN_02027B58 +_0238CA10: + ldr r1, _0238CA54 @ =0x0238DB80 + ldr r0, _0238CA90 @ =0x00002C04 + ldr r1, [r1] + mov r2, #1 + add r1, r1, #0x3000 + strb r2, [r1, #0x870] + bl FUN_02017C80 + ldr r1, _0238CA54 @ =0x0238DB80 + mov r3, #2 + ldr r0, [r1] + mov r2, #0xd + add r0, r0, #0x3000 + str r3, [r0, #0x538] + ldr r0, [r1] + str r2, [r0, #0x110] + add sp, sp, #0x20 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0238CA54: .4byte 0x0238DB80 +_0238CA58: .4byte 0x000003FA +_0238CA5C: .4byte 0x000005DC +_0238CA60: .4byte 0x020A1BB0 +_0238CA64: .4byte 0x00000119 +_0238CA68: .4byte 0x0238DB2C +_0238CA6C: .4byte 0x0238DB44 +_0238CA70: .4byte 0x0238DB58 +_0238CA74: .4byte 0x880A0000 +_0238CA78: .4byte 0x00001001 +_0238CA7C: .4byte 0x00001003 +_0238CA80: .4byte 0x48140000 +_0238CA84: .4byte 0x0238D970 +_0238CA88: .4byte 0x08120000 +_0238CA8C: .4byte 0x00000807 +_0238CA90: .4byte 0x00002C04 + arm_func_end SentryStateGenerateChoices + + arm_func_start SentryStateGetUserChoice +SentryStateGetUserChoice: @ 0x0238CA94 + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x38 + ldr r2, _0238CFA4 @ =0x0238DB80 + mov r1, #0x3c + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r3, [r0, #0x874] + add r3, r3, #1 + str r3, [r0, #0x874] + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r3, [r0, #0x894] + sub r3, r3, #1 + str r3, [r0, #0x894] + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r0, [r0, #0x874] + bl FUN_0208FEA4 + lsl r0, r0, #0x10 + asr r8, r0, #0x10 + lsr r1, r8, #0x1f + rsb r0, r1, r8, lsl #28 + add r0, r1, r0, ror #28 + bl ov14_0238AC04 + ldr r0, _0238CFA4 @ =0x0238DB80 + mov r1, #0x3c + ldr r4, [r0] + add r0, r4, #0x3000 + ldr r0, [r0, #0x874] + bl FUN_0208FEA4 + cmp r0, #0x10 + bge _0238CDE0 + mov r4, #0 + add r1, sp, #2 + mov r0, r4 + bl FUN_020063F4 + add r1, sp, #0 + mov r0, r4 + bl FUN_0200625C + bl FUN_0204AE60 + cmp r0, #0 + beq _0238CBCC + add r0, sp, #4 + bl FUN_02006C1C + ldrh r0, [sp, #4] + tst r0, #2 + beq _0238CBCC + ldr r2, [sp, #8] + ldr r3, [sp, #0xc] + mov r1, r4 + ldr r0, _0238CFA8 @ =0x0238DA20 + b _0238CBC4 +_0238CB64: + ldr r6, [r0, r1, lsl #3] + sub r5, r6, #0x38 + cmp r2, r5 + blt _0238CBB8 + add r5, r6, #0x40 + cmp r2, r5 + bgt _0238CBB8 + add r5, r0, r1, lsl #3 + ldr r6, [r5, #4] + sub r5, r6, #0x20 + cmp r3, r5 + blt _0238CBB8 + add r5, r6, #0x28 + cmp r3, r5 + bgt _0238CBB8 + ldr r0, _0238CFA4 @ =0x0238DB80 + mov r4, #1 + ldr r0, [r0] + add r0, r0, #0x3000 + str r1, [r0, #0x878] + b _0238CBCC +_0238CBB8: + add r1, r1, #1 + lsl r1, r1, #0x10 + asr r1, r1, #0x10 +_0238CBC4: + cmp r1, #4 + blt _0238CB64 +_0238CBCC: + cmp r4, #0 + bne _0238CBEC + ldrh r0, [sp] + tst r0, #1 + movne r0, #0 + strhne r0, [sp, #2] + strhne r0, [sp] + movne r4, #1 +_0238CBEC: + cmp r4, #0 + beq _0238CCCC + ldr r1, _0238CFA4 @ =0x0238DB80 + ldr r0, _0238CFAC @ =0x00003F02 + ldr r1, [r1] + mov r2, #0 + add r1, r1, #0x3000 + str r2, [r1, #0x8ac] + bl FUN_02017C80 + ldr r2, _0238CFA4 @ =0x0238DB80 + ldr r1, [r2] + add r0, r1, #0x3000 + ldr r0, [r0, #0x878] + add r0, r1, r0, lsl #1 + add r0, r0, #0x3800 + ldrsh r0, [r0, #0xa2] + str r0, [r1, #0xa4] + ldr r4, [r2] + add r1, r4, #0x3000 + ldr r3, [r1, #0x878] + ldr r0, [r1, #0x87c] + cmp r3, r0 + bne _0238CC5C + mov r2, #5 + mov r0, #0x19 + str r2, [r1, #0x538] + bl SentrySetStateIntermediate + b _0238CCE0 +_0238CC5C: + add r0, r4, r3, lsl #2 + add r0, r0, #0x3000 + ldr r0, [r0, #0x554] + cmp r0, #3 + bne _0238CC7C + ldr r0, _0238CFB0 @ =0x00003F03 + bl FUN_02017C80 + b _0238CCE0 +_0238CC7C: + ldr r0, [r1, #0x898] + cmp r0, #0 + ble _0238CCB8 + mov r0, #4 + str r0, [r1, #0x538] + ldr r3, [r2] + arm_func_end SentryStateGetUserChoice + + arm_func_start ov14_0238CC94 +ov14_0238CC94: @ 0x0238CC94 + mov r2, #3 + add r0, r3, #0x3000 + ldr r1, [r0, #0x878] + mov r0, #0x10 + add r1, r3, r1, lsl #2 + arm_func_end ov14_0238CC94 + + arm_func_start ov14_0238CCA8 +ov14_0238CCA8: @ 0x0238CCA8 + add r1, r1, #0x3000 + str r2, [r1, #0x554] + bl SentrySetStateIntermediate + b _0238CCE0 +_0238CCB8: + mov r2, #5 + arm_func_end ov14_0238CCA8 + + arm_func_start ov14_0238CCBC +ov14_0238CCBC: @ 0x0238CCBC + mov r0, #0x14 + str r2, [r1, #0x538] + bl SentrySetStateIntermediate + b _0238CCE0 +_0238CCCC: + ldr r0, _0238CFA4 @ =0x0238DB80 + mov r1, #3 + ldr r0, [r0] + arm_func_end ov14_0238CCBC + + arm_func_start ov14_0238CCD8 +ov14_0238CCD8: @ 0x0238CCD8 + add r0, r0, #0x3000 + str r1, [r0, #0x538] +_0238CCE0: + ldrh r0, [sp, #2] + tst r0, #0xf0 + beq _0238CCF4 + ldr r0, _0238CFB4 @ =0x00003F01 + arm_func_end ov14_0238CCD8 + + arm_func_start ov14_0238CCF0 +ov14_0238CCF0: @ 0x0238CCF0 + bl FUN_02017C80 +_0238CCF4: + ldr r0, _0238CFA4 @ =0x0238DB80 + ldr r0, [r0] + add r0, r0, #0x3000 + ldr r1, [r0, #0x878] + cmp r1, #3 + addls pc, pc, r1, lsl #2 + b _0238CF14 +_0238CD10: @ jump table + b _0238CD20 @ case 0 + b _0238CD50 @ case 1 + b _0238CD80 @ case 2 + b _0238CDB0 @ case 3 +_0238CD20: + ldrh r2, [sp, #2] + tst r2, #0x80 + movne r1, #2 + strne r1, [r0, #0x878] + tst r2, #0x10 + beq _0238CF14 + ldr r0, _0238CFA4 @ =0x0238DB80 + mov r1, #1 + ldr r0, [r0] + add r0, r0, #0x3000 + str r1, [r0, #0x878] + b _0238CF14 +_0238CD50: + ldrh r2, [sp, #2] + tst r2, #0x80 + movne r1, #3 + strne r1, [r0, #0x878] + tst r2, #0x20 + beq _0238CF14 + ldr r0, _0238CFA4 @ =0x0238DB80 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x3000 + str r1, [r0, #0x878] + b _0238CF14 +_0238CD80: + ldrh r2, [sp, #2] + tst r2, #0x40 + movne r1, #0 + strne r1, [r0, #0x878] + tst r2, #0x10 + beq _0238CF14 + ldr r0, _0238CFA4 @ =0x0238DB80 + mov r1, #3 + ldr r0, [r0] + add r0, r0, #0x3000 + str r1, [r0, #0x878] + b _0238CF14 +_0238CDB0: + ldrh r2, [sp, #2] + tst r2, #0x40 + movne r1, #1 + strne r1, [r0, #0x878] + tst r2, #0x20 + beq _0238CF14 + ldr r0, _0238CFA4 @ =0x0238DB80 + mov r1, #2 + ldr r0, [r0] + add r0, r0, #0x3000 + str r1, [r0, #0x878] + b _0238CF14 +_0238CDE0: + add r0, r4, #0x3000 + mov r2, #1 + ldr r1, _0238CFA4 @ =0x0238DB80 + strb r2, [r0, #0x871] + ldr r0, [r1] + mov r2, #2 + add r1, r0, #0x3000 + mov r0, #0x12 + str r2, [r1, #0x538] + bl SentrySetStateIntermediate + b _0238CF14 +_0238CE0C: + ldr r4, _0238CFA4 @ =0x0238DB80 + ldr r0, [r4] + add r0, r0, #0x3000 + ldrb r1, [r0, #0x89d] + cmp r1, #0 + bne _0238CF1C + mov r1, #1 + strb r1, [r0, #0x89d] + ldr r0, [r4] + mov sb, #0 + mov r1, #2 + add r0, r0, #0x3000 + ldr r6, _0238CFB8 @ =0x0238D96C + ldr r5, _0238CFBC @ =0x0238DA80 + str r1, [r0, #0x540] + add r7, sp, #0x28 + mov sl, sb +_0238CE50: + mov r0, r7 + bl FUN_0204D79C + ldr r1, [r4] + mov r0, r7 + add r1, r1, sb, lsl #1 + add r1, r1, #0x3800 + ldrsh r1, [r1, #0xa2] + bl FUN_0204D7D4 + ldrb r1, [r6, sb] + mov r0, r7 + bl FUN_0204D804 + mov r0, r7 + add r1, r5, sb, lsl #3 + bl FUN_0204D848 + mov r0, r7 + mov r1, sl + bl FUN_0204D7F4 + cmp sb, #3 + addls pc, pc, sb, lsl #2 + b _0238CEFC +_0238CEA0: @ jump table + b _0238CEB0 @ case 0 + b _0238CEC4 @ case 1 + b _0238CED8 @ case 2 + b _0238CEEC @ case 3 +_0238CEB0: + ldr r0, [r4] + mov r1, r7 + ldrsb r0, [r0, #6] + bl FUN_0202F690 + b _0238CEFC +_0238CEC4: + ldr r0, [r4] + mov r1, r7 + ldrsb r0, [r0, #7] + bl FUN_0202F690 + b _0238CEFC +_0238CED8: + ldr r0, [r4] + mov r1, r7 + ldrsb r0, [r0, #8] + bl FUN_0202F690 + b _0238CEFC +_0238CEEC: + ldr r0, [r4] + mov r1, r7 + ldrsb r0, [r0, #9] + bl FUN_0202F690 +_0238CEFC: + add r0, sb, #1 + lsl r0, r0, #0x10 + asr sb, r0, #0x10 + cmp sb, #4 + blt _0238CE50 + b _0238CF1C +_0238CF14: + cmp r8, #2 + bge _0238CE0C +_0238CF1C: + cmp r8, #5 + blt _0238CF5C + ldr r0, _0238CFA4 @ =0x0238DB80 + ldr r0, [r0] + add r0, r0, #0x3000 + ldrb r0, [r0, #0x89e] + cmp r0, #0 + bne _0238CF5C + bl ov14_0238AC40 + ldr r0, _0238CFC0 @ =0x00002C06 + bl FUN_02017C80 + ldr r0, _0238CFA4 @ =0x0238DB80 + mov r1, #1 + ldr r0, [r0] + add r0, r0, #0x3000 + strb r1, [r0, #0x89e] +_0238CF5C: + cmp r8, #0xb + blt _0238CF9C + ldr r0, _0238CFA4 @ =0x0238DB80 + ldr r0, [r0] + add r0, r0, #0x3000 + ldrb r0, [r0, #0x89f] + cmp r0, #0 + bne _0238CF9C + bl ov14_0238AC40 + ldr r0, _0238CFC0 @ =0x00002C06 + bl FUN_02017C80 + ldr r0, _0238CFA4 @ =0x0238DB80 + mov r1, #1 + ldr r0, [r0] + add r0, r0, #0x3000 + strb r1, [r0, #0x89f] +_0238CF9C: + add sp, sp, #0x38 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0238CFA4: .4byte 0x0238DB80 +_0238CFA8: .4byte 0x0238DA20 +_0238CFAC: .4byte 0x00003F02 +_0238CFB0: .4byte 0x00003F03 +_0238CFB4: .4byte 0x00003F01 +_0238CFB8: .4byte 0x0238D96C +_0238CFBC: .4byte 0x0238DA80 +_0238CFC0: .4byte 0x00002C06 + arm_func_end ov14_0238CCF0 + + arm_func_start SentryStateFinalizeRound +SentryStateFinalizeRound: @ 0x0238CFC4 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x20 + ldr r2, _0238D2FC @ =0x0238DB80 + mov r0, #0 + ldr r1, [r2] + add r1, r1, #0x3000 + ldrb r4, [r1, #0x870] + strb r0, [r1, #0x870] + ldr r1, [r2] + add r1, r1, #0x3000 + ldr r3, [r1, #0x884] + add r3, r3, #1 + str r3, [r1, #0x884] + ldr r1, [r2] + add r1, r1, #0x3000 + str r0, [r1, #0x874] + ldr r1, [r2] + add r1, r1, #0x3000 + strb r0, [r1, #0x871] + bl ov14_0238AC04 + cmp r4, #0 + beq _0238D078 + ldr r0, _0238D2FC @ =0x0238DB80 + ldr r0, [r0] + add r0, r0, #0x3a8 + add r0, r0, #0x3000 + bl FUN_022F7058 + ldr r0, _0238D2FC @ =0x0238DB80 + ldr r0, [r0] + add r0, r0, #0x6c + add r0, r0, #0x3400 + bl FUN_022F6EFC + ldr r1, _0238D2FC @ =0x0238DB80 + mov r3, #1 + ldr r0, [r1] + mov r2, #0 + add r0, r0, #0x3000 + str r3, [r0, #0x534] + ldr r0, [r1] + add r0, r0, #0x3000 + str r2, [r0, #0x538] + ldr r0, [r1] + add r0, r0, #0x1b4 + add r0, r0, #0x2800 + bl FUN_022F6EFC +_0238D078: + ldr r0, _0238D300 @ =0x0238D970 + ldr r4, _0238D2FC @ =0x0238DB80 + ldr r6, [r0, #8] + ldr r5, [r0, #0xc] + mov r7, #0 + str r6, [sp] + str r5, [sp, #4] + mvn sl, #1 + mov fp, #0xc4 +_0238D09C: + ldr r0, [r4] + smulbb sb, r7, fp + add r0, r0, #0x278 + add r0, r0, #0x2800 + add r0, r0, sb + bl FUN_022F6EFC + ldr r0, [r4] + add r0, r0, #0x188 + add r0, r0, #0x2c00 + add r0, r0, sb + bl FUN_022F6EFC + ldr r0, [r4] + add r0, r0, #0x98 + add r0, r0, #0x3000 + add r0, r0, sb + bl FUN_022F6EFC + cmp r7, #3 + addls pc, pc, r7, lsl #2 + b _0238D124 +_0238D0E8: @ jump table + b _0238D0F8 @ case 0 + b _0238D104 @ case 1 + b _0238D110 @ case 2 + b _0238D11C @ case 3 +_0238D0F8: + ldr r0, [r4] + ldrsb r8, [r0, #6] + b _0238D124 +_0238D104: + ldr r0, [r4] + ldrsb r8, [r0, #7] + b _0238D124 +_0238D110: + ldr r0, [r4] + ldrsb r8, [r0, #8] + b _0238D124 +_0238D11C: + ldr r0, [r4] + ldrsb r8, [r0, #9] +_0238D124: + cmp r8, sl + beq _0238D160 + add r0, sp, #0x10 + str r6, [sp, #8] + str r5, [sp, #0xc] + bl FUN_0204D79C + add r0, sp, #0x10 + mov r1, #3 + bl FUN_0204D804 + add r0, sp, #0x10 + add r1, sp, #8 + bl FUN_0204D848 + mov r0, r8 + add r1, sp, #0x10 + bl FUN_0202F690 +_0238D160: + add r0, r7, #1 + lsl r0, r0, #0x10 + asr r7, r0, #0x10 + cmp r7, #4 + blt _0238D09C + ldr r0, _0238D2FC @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_02027B58 + ldr r0, _0238D2FC @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_02027AF0 + ldr r0, _0238D2FC @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #5] + bl FUN_02027B58 + ldr r0, _0238D2FC @ =0x0238DB80 + ldr r0, [r0] + ldrsb r0, [r0, #5] + bl FUN_02027AF0 + ldr r1, _0238D2FC @ =0x0238DB80 + ldr r3, [r1] + add r0, r3, #0x3000 + ldr r2, [r0, #0x884] + cmp r2, #6 + movlt r0, #0xf + strlt r0, [r3, #0x110] + blt _0238D2F4 + mov r2, #0 + str r2, [r0, #0x8ac] + ldr r0, [r1] + add r0, r0, #0x3000 + ldr r0, [r0, #0x88c] + bl FUN_020504BC + cmp r0, #0 + beq _0238D25C + ldr r1, _0238D2FC @ =0x0238DB80 + mov r2, #0 + ldr r0, [r1] + add r0, r0, #0x3000 + str r2, [r0, #0x890] + ldr r0, [r1] + add r0, r0, #0x3000 + ldr r1, [r0, #0x88c] + cmp r1, #0xfa0 + movgt r1, #1 + strgt r1, [r0, #0x890] + ldr r0, _0238D2FC @ =0x0238DB80 + ldr r1, _0238D304 @ =0x00001B58 + ldr r0, [r0] + add r0, r0, #0x3000 + ldr r2, [r0, #0x88c] + cmp r2, r1 + movgt r1, #2 + strgt r1, [r0, #0x890] + ldr r0, _0238D2FC @ =0x0238DB80 + ldr r0, [r0] + add r0, r0, #0x3000 + ldrb r1, [r0, #0x89c] + cmp r1, #0 + movne r1, #3 + b _0238D2C0 +_0238D25C: + ldr r1, _0238D2FC @ =0x0238DB80 + mov r2, #4 + ldr r0, [r1] + add r0, r0, #0x3000 + str r2, [r0, #0x890] + ldr r0, [r1] + add r0, r0, #0x3000 + ldr r1, [r0, #0x88c] + cmp r1, #0xfa0 + movgt r1, #5 + strgt r1, [r0, #0x890] + ldr r0, _0238D2FC @ =0x0238DB80 + ldr r1, _0238D304 @ =0x00001B58 + ldr r0, [r0] + add r0, r0, #0x3000 + ldr r2, [r0, #0x88c] + cmp r2, r1 + movgt r1, #6 + strgt r1, [r0, #0x890] + ldr r0, _0238D2FC @ =0x0238DB80 + ldr r0, [r0] + add r0, r0, #0x3000 + ldrb r1, [r0, #0x89c] + cmp r1, #0 + movne r1, #7 +_0238D2C0: + strne r1, [r0, #0x890] + ldr r0, _0238D2FC @ =0x0238DB80 + ldr r1, [r0] + ldr r0, [r1, #0x11c] + cmp r0, #0 + beq _0238D2EC + cmp r0, #1 + bne _0238D2EC + mov r0, #0x1e + str r0, [r1, #0x110] + b _0238D2F4 +_0238D2EC: + mov r0, #0x20 + str r0, [r1, #0x110] +_0238D2F4: + add sp, sp, #0x20 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0238D2FC: .4byte 0x0238DB80 +_0238D300: .4byte 0x0238D970 +_0238D304: .4byte 0x00001B58 + arm_func_end SentryStateFinalizeRound + + arm_func_start SentryStateF +SentryStateF: @ 0x0238D308 + ldr r0, _0238D31C @ =0x0238DB80 + mov r1, #0xa + ldr r0, [r0] + str r1, [r0, #0x110] + bx lr + .align 2, 0 +_0238D31C: .4byte 0x0238DB80 + arm_func_end SentryStateF + + arm_func_start SentryState10 +SentryState10: @ 0x0238D320 + push {r3, lr} + ldr r2, _0238D390 @ =0x0238DB80 + mvn r1, #1 + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r3, [r0, #0x898] + sub r3, r3, #1 + str r3, [r0, #0x898] + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r3, [r0, #0x894] + sub r3, r3, #0xfa + str r3, [r0, #0x894] + ldr r0, [r2] + ldrsb r0, [r0, #3] + cmp r0, r1 + beq _0238D368 + bl FUN_02027B58 +_0238D368: + ldr r0, _0238D394 @ =0x00002C08 + bl FUN_02017C80 + ldr r0, _0238D390 @ =0x0238DB80 + mvn r3, #0 + ldr r2, [r0] + mov r1, #0x11 + str r3, [r2, #0x114] + ldr r0, [r0] + str r1, [r0, #0x110] + pop {r3, pc} + .align 2, 0 +_0238D390: .4byte 0x0238DB80 +_0238D394: .4byte 0x00002C08 + arm_func_end SentryState10 + + arm_func_start SentryState11 +SentryState11: @ 0x0238D398 + ldr r0, _0238D3AC @ =0x0238DB80 + mov r1, #0xd + ldr r0, [r0] + str r1, [r0, #0x110] + bx lr + .align 2, 0 +_0238D3AC: .4byte 0x0238DB80 + arm_func_end SentryState11 + + arm_func_start SentryState12 +SentryState12: @ 0x0238D3B0 + ldr r1, _0238D3E0 @ =0x0238DB80 + mov r2, #0 + ldr r0, [r1] + ldr r3, _0238D3E4 @ =0x00002311 + add r0, r0, #0x3000 + strb r2, [r0, #0x89c] + ldr r0, [r1] + mov r2, #0x13 + str r3, [r0, #0xc8] + ldr r0, [r1] + str r2, [r0, #0x110] + bx lr + .align 2, 0 +_0238D3E0: .4byte 0x0238DB80 +_0238D3E4: .4byte 0x00002311 + arm_func_end SentryState12 + + arm_func_start SentryState13 +SentryState13: @ 0x0238D3E8 + ldr r1, _0238D40C @ =0x0238DB80 + mov r3, #1 + ldr r0, [r1] + mov r2, #0x17 + add r0, r0, #0x3000 + str r3, [r0, #0x8ac] + ldr r0, [r1] + str r2, [r0, #0x110] + bx lr + .align 2, 0 +_0238D40C: .4byte 0x0238DB80 + arm_func_end SentryState13 + + arm_func_start SentryState14 +SentryState14: @ 0x0238D410 + ldr r0, _0238D424 @ =0x0238DB80 + mov r1, #0x15 + ldr r0, [r0] + str r1, [r0, #0x110] + bx lr + .align 2, 0 +_0238D424: .4byte 0x0238DB80 + arm_func_end SentryState14 + + arm_func_start SentryState15 +SentryState15: @ 0x0238D428 + push {r3, lr} + ldr r0, _0238D464 @ =0x0238DB80 + ldr r0, [r0] + add r0, r0, #0x3000 + ldr r0, [r0, #0x8ac] + cmp r0, #2 + bge _0238D450 + mov r0, #0x14 + bl SentrySetStateIntermediate + pop {r3, pc} +_0238D450: + mov r0, #0x304 + bl FUN_02017C80 + mov r0, #0x16 + bl SentrySetStateIntermediate + pop {r3, pc} + .align 2, 0 +_0238D464: .4byte 0x0238DB80 + arm_func_end SentryState15 + + arm_func_start SentryState16 +SentryState16: @ 0x0238D468 + push {r3, lr} + ldr r2, _0238D4BC @ =0x0238DB80 + mvn r1, #0x3f + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r3, [r0, #0x8b0] + sub r3, r3, #4 + str r3, [r0, #0x8b0] + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r3, [r0, #0x8b0] + cmp r3, r1 + popge {r3, pc} + mov r3, #0 + strb r3, [r0, #0x89c] + ldr r1, [r2] + mov r0, #0x17 + add r1, r1, #0x3000 + str r3, [r1, #0x8ac] + bl SentrySetStateIntermediate + pop {r3, pc} + .align 2, 0 +_0238D4BC: .4byte 0x0238DB80 + arm_func_end SentryState16 + + arm_func_start SentryState17 +SentryState17: @ 0x0238D4C0 + ldr r1, _0238D534 @ =0x0238DB80 + mov r3, #4 + ldr r2, [r1] + add r0, r2, #0x3000 + ldr r0, [r0, #0x87c] + add r0, r2, r0, lsl #1 + add r0, r0, #0x3800 + ldrsh r0, [r0, #0xa2] + str r0, [r2, #0xa4] + ldr r2, [r1] + add r0, r2, #0x3000 + ldrb r1, [r0, #0x871] + cmp r1, #0 + ldreq r0, [r0, #0x878] + moveq r1, #3 + addeq r0, r2, r0, lsl #2 + addeq r0, r0, #0x3000 + streq r1, [r0, #0x554] + ldr r1, _0238D534 @ =0x0238DB80 + mov r2, #0x18 + ldr ip, [r1] + add r0, ip, #0x3000 + ldr r0, [r0, #0x87c] + add r0, ip, r0, lsl #2 + add r0, r0, #0x3000 + str r3, [r0, #0x554] + ldr r0, [r1] + str r2, [r0, #0x110] + bx lr + .align 2, 0 +_0238D534: .4byte 0x0238DB80 + arm_func_end SentryState17 + + arm_func_start SentryState18 +SentryState18: @ 0x0238D538 + push {r3, lr} + ldr r0, _0238D56C @ =0x0238DB80 + ldr r0, [r0] + add r0, r0, #0x3000 + ldr r0, [r0, #0x8ac] + cmp r0, #2 + bge _0238D560 + mov r0, #0x17 + bl SentrySetStateIntermediate + pop {r3, pc} +_0238D560: + mov r0, #0xe + bl SentrySetStateIntermediate + pop {r3, pc} + .align 2, 0 +_0238D56C: .4byte 0x0238DB80 + arm_func_end SentryState18 + + arm_func_start SentryState19 +SentryState19: @ 0x0238D570 + ldr r0, _0238D584 @ =0x0238DB80 + mov r1, #0x1a + ldr r0, [r0] + str r1, [r0, #0x110] + bx lr + .align 2, 0 +_0238D584: .4byte 0x0238DB80 + arm_func_end SentryState19 + + arm_func_start SentryState1A +SentryState1A: @ 0x0238D588 + push {r3, lr} + ldr r0, _0238D5C4 @ =0x0238DB80 + ldr r0, [r0] + add r0, r0, #0x3000 + ldr r0, [r0, #0x8ac] + cmp r0, #2 + bge _0238D5B0 + mov r0, #0x19 + bl SentrySetStateIntermediate + pop {r3, pc} +_0238D5B0: + mov r0, #0x304 + bl FUN_02017C80 + mov r0, #0x1b + bl SentrySetStateIntermediate + pop {r3, pc} + .align 2, 0 +_0238D5C4: .4byte 0x0238DB80 + arm_func_end SentryState1A + + arm_func_start SentryStateFinalizePoints +SentryStateFinalizePoints: @ 0x0238D5C8 + push {r3, lr} + ldr r2, _0238D654 @ =0x0238DB80 + mvn r1, #0x3f + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r3, [r0, #0x8b0] + sub r3, r3, #4 + str r3, [r0, #0x8b0] + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r3, [r0, #0x8b0] + cmp r3, r1 + popge {r3, pc} + ldr r3, [r0, #0x88c] + ldr r1, [r0, #0x894] + add r1, r3, r1 + str r1, [r0, #0x88c] + ldr r0, [r2] + add r0, r0, #0x3000 + ldr r1, [r0, #0x884] + cmp r1, #5 + bne _0238D634 + ldrb r1, [r0, #0x89c] + cmp r1, #0 + ldrne r1, [r0, #0x88c] + addne r1, r1, #0x7d0 + strne r1, [r0, #0x88c] +_0238D634: + ldr r0, _0238D654 @ =0x0238DB80 + mov r2, #0 + ldr r1, [r0] + mov r0, #0x1c + add r1, r1, #0x3000 + str r2, [r1, #0x8ac] + bl SentrySetStateIntermediate + pop {r3, pc} + .align 2, 0 +_0238D654: .4byte 0x0238DB80 + arm_func_end SentryStateFinalizePoints + + arm_func_start SentryState1C +SentryState1C: @ 0x0238D658 + ldr r1, _0238D694 @ =0x0238DB80 + ldr r2, _0238D698 @ =0x00002310 + ldr r0, [r1] + mov r3, #2 + str r2, [r0, #0xc8] + ldr ip, [r1] + mov r2, #0x1d + add r0, ip, #0x3000 + ldr r0, [r0, #0x878] + add r0, ip, r0, lsl #2 + add r0, r0, #0x3000 + str r3, [r0, #0x554] + ldr r0, [r1] + str r2, [r0, #0x110] + bx lr + .align 2, 0 +_0238D694: .4byte 0x0238DB80 +_0238D698: .4byte 0x00002310 + arm_func_end SentryState1C + + arm_func_start SentryState1D +SentryState1D: @ 0x0238D69C + push {r3, lr} + ldr r0, _0238D6FC @ =0x0238DB80 + ldr r1, [r0] + add r0, r1, #0x3000 + ldr r0, [r0, #0x8ac] + cmp r0, #1 + bne _0238D6CC + ldrsb r0, [r1, #3] + mvn r1, #1 + cmp r0, r1 + beq _0238D6CC + bl FUN_02027B58 +_0238D6CC: + ldr r0, _0238D6FC @ =0x0238DB80 + ldr r0, [r0] + add r0, r0, #0x3000 + ldr r0, [r0, #0x8ac] + cmp r0, #1 + bge _0238D6F0 + mov r0, #0x1c + bl SentrySetStateIntermediate + pop {r3, pc} +_0238D6F0: + mov r0, #0xe + bl SentrySetStateIntermediate + pop {r3, pc} + .align 2, 0 +_0238D6FC: .4byte 0x0238DB80 + arm_func_end SentryState1D + + arm_func_start SentryState1E +SentryState1E: @ 0x0238D700 + ldr r0, _0238D714 @ =0x0238DB80 + mov r1, #0x1f + ldr r0, [r0] + str r1, [r0, #0x110] + bx lr + .align 2, 0 +_0238D714: .4byte 0x0238DB80 + arm_func_end SentryState1E + + arm_func_start SentryState1F +SentryState1F: @ 0x0238D718 + push {r3, lr} + ldr r0, _0238D790 @ =0x0238DB80 + ldr r0, [r0] + add r0, r0, #0x3000 + ldr r1, [r0, #0x8ac] + cmp r1, #2 + bge _0238D754 + mov r0, #0x1e + bl SentrySetStateIntermediate + ldr r0, _0238D790 @ =0x0238DB80 + mov r1, #0x1e + ldr r0, [r0] + add r0, r0, #0x3000 + str r1, [r0, #0x8b4] + pop {r3, pc} +_0238D754: + ldr r0, [r0, #0x8b4] + cmp r0, #0x1e + bne _0238D768 + mov r0, #0x1e + bl FUN_02017B7C +_0238D768: + ldr r0, _0238D790 @ =0x0238DB80 + ldr r0, [r0] + add r0, r0, #0x3000 + ldr r1, [r0, #0x8b4] + cmp r1, #0 + subgt r1, r1, #1 + strgt r1, [r0, #0x8b4] + popgt {r3, pc} + bl SentrySetExitingState + pop {r3, pc} + .align 2, 0 +_0238D790: .4byte 0x0238DB80 + arm_func_end SentryState1F + + arm_func_start SentryState20 +SentryState20: @ 0x0238D794 + ldr r0, _0238D7A8 @ =0x0238DB80 + mov r1, #0x21 + ldr r0, [r0] + str r1, [r0, #0x110] + bx lr + .align 2, 0 +_0238D7A8: .4byte 0x0238DB80 + arm_func_end SentryState20 + + arm_func_start SentryState21 +SentryState21: @ 0x0238D7AC + push {r3, lr} + ldr r0, _0238D824 @ =0x0238DB80 + ldr r0, [r0] + add r0, r0, #0x3000 + ldr r1, [r0, #0x8ac] + cmp r1, #2 + bge _0238D7E8 + mov r0, #0x20 + bl SentrySetStateIntermediate + ldr r0, _0238D824 @ =0x0238DB80 + mov r1, #0x1e + ldr r0, [r0] + add r0, r0, #0x3000 + str r1, [r0, #0x8b4] + pop {r3, pc} +_0238D7E8: + ldr r0, [r0, #0x8b4] + cmp r0, #0x1e + bne _0238D7FC + mov r0, #0x1e + bl FUN_02017B7C +_0238D7FC: + ldr r0, _0238D824 @ =0x0238DB80 + ldr r0, [r0] + add r0, r0, #0x3000 + ldr r1, [r0, #0x8b4] + cmp r1, #0 + subgt r1, r1, #1 + strgt r1, [r0, #0x8b4] + popgt {r3, pc} + bl SentrySetExitingState + pop {r3, pc} + .align 2, 0 +_0238D824: .4byte 0x0238DB80 + arm_func_end SentryState21 + + arm_func_start ov14_0238D828 +ov14_0238D828: @ 0x0238D828 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #8 + mov sb, r1 + mov sl, r0 + mov r8, r2 + mov r4, r3 + ldr r7, [sb] + bl FUN_02089678 + ldr r2, [sp, #0x30] + mov r6, #0 + cmp r0, r2 + ldrlt r1, [r8] + sublt r0, r2, r0 + addlt r0, r1, r0, lsl #3 + strlt r0, [r8] + lsl r0, r4, #8 + str r0, [sp, #4] + add r5, sp, #0 + ldr fp, _0238D968 @ =0x0000080F + mov r4, r6 + b _0238D950 +_0238D87C: + ldrb r1, [sl], #1 + ldr r0, [r8] + lsl r0, r0, #8 + str r0, [sp] + cmp r1, #0x30 + blo _0238D8DC + cmp r1, #0x39 + bhi _0238D8DC + sub r0, r1, #0x2b + orr r0, r0, #0x800 + lsl r0, r0, #0x10 + asr r1, r0, #0x10 + ldr r2, [r8] + mov r0, r7 + add r2, r2, #8 + str r2, [r8] + mov r2, r6 + bl FUN_022F52E8 + mov r0, r7 + mov r1, r5 + mov r2, r4 + bl FUN_022F6F14 + add r7, r7, #0xc4 + b _0238D950 +_0238D8DC: + cmp r1, #0x2f + bne _0238D918 + ldr r1, [r8] + mov r0, r7 + add r1, r1, #8 + str r1, [r8] + mov r1, fp + mov r2, #0 + bl FUN_022F52E8 + mov r0, r7 + mov r1, r5 + mov r2, #0 + bl FUN_022F6F14 + add r7, r7, #0xc4 + b _0238D950 +_0238D918: + cmp r1, #0x50 + bne _0238D950 + ldr r1, [r8] + mov r0, r7 + add r1, r1, #8 + str r1, [r8] + mov r1, #0x810 + mov r2, #0 + bl FUN_022F52E8 + mov r0, r7 + mov r1, r5 + mov r2, #0 + bl FUN_022F6F14 + add r7, r7, #0xc4 +_0238D950: + ldrb r0, [sl] + cmp r0, #0 + bne _0238D87C + str r7, [sb] + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0238D968: .4byte 0x0000080F + arm_func_end ov14_0238D828 + @ 0x0238D96C diff --git a/asm/overlay_15.s b/asm/overlay_15.s index 491a0d09..9c946924 100644 --- a/asm/overlay_15.s +++ b/asm/overlay_15.s @@ -3,3 +3,986 @@ .include "global.inc" .text + + arm_func_start ov15_0238A140 +ov15_0238A140: @ 0x0238A140 + push {r3, lr} + mov r0, #0xec + mov r1, #8 + bl FUN_02001170 + ldr r1, _0238A228 @ =0x0238B180 + str r0, [r1] + add r0, r0, #0x88 + bl FUN_02023690 + mov r0, #0 + bl FUN_0202F0B0 + ldr r2, _0238A228 @ =0x0238B180 + mov r1, #3 + ldr r3, [r2] + mov r2, #1 + strb r0, [r3, #0x80] + mov r0, #0 + bl FUN_0202F5AC + ldr r2, _0238A228 @ =0x0238B180 + mvn r3, #1 + ldr r1, [r2] + mov ip, #0 + strb r0, [r1, #0x81] + ldr r0, [r2] + ldr r1, _0238A22C @ =0x00000183 + strb r3, [r0, #0x68] + ldr r0, [r2] + ldr r3, _0238A230 @ =0x0000270F + str ip, [r0, #0x10] + ldr r0, [r2] + str r1, [r0, #0x88] + ldr r0, [r2] + str r3, [r0, #0xac] + ldr r0, [r2] + str r1, [r0, #0xd4] + ldr r0, [r2] + str ip, [r0] + ldr r0, [r2] + add r0, r0, #0xdc + bl FUN_0204D7D4 + ldr r0, _0238A228 @ =0x0238B180 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0xdc + bl FUN_0204D804 + ldr r0, _0238A228 @ =0x0238B180 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0xdc + bl FUN_0204D7F4 + ldr r0, _0238A228 @ =0x0238B180 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xdc + bl FUN_0202F690 + mov r0, #0 + bl ov15_0238A4E8 + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0238A228: .4byte 0x0238B180 +_0238A22C: .4byte 0x00000183 +_0238A230: .4byte 0x0000270F + arm_func_end ov15_0238A140 + + arm_func_start ov15_0238A234 +ov15_0238A234: @ 0x0238A234 + push {r4, lr} + ldr r0, _0238A4DC @ =0x0238B180 + ldr r1, [r0] + ldr r0, [r1, #4] + cmp r0, #0xc + addls pc, pc, r0, lsl #2 + b _0238A4B4 +_0238A250: @ jump table + b _0238A4B4 @ case 0 + b _0238A284 @ case 1 + b _0238A2A8 @ case 2 + b _0238A4B4 @ case 3 + b _0238A4B4 @ case 4 + b _0238A4B4 @ case 5 + b _0238A4AC @ case 6 + b _0238A4B4 @ case 7 + b _0238A35C @ case 8 + b _0238A4B4 @ case 9 + b _0238A4B4 @ case 10 + b _0238A400 @ case 11 + b _0238A4B4 @ case 12 +_0238A284: + ldrsb r0, [r1, #0x80] + bl FUN_0202F180 + cmp r0, #0 + bne _0238A4D4 + ldr r0, _0238A4DC @ =0x0238B180 + ldr r0, [r0] + ldr r0, [r0, #8] + bl ov15_0238A4E8 + b _0238A4D4 +_0238A2A8: + ldrsb r0, [r1, #0x83] + bl FUN_0202B57C + ldr r1, _0238A4DC @ =0x0238B180 + mov r4, r0 + ldr r0, [r1] + ldrsb r0, [r0, #0x80] + bl FUN_0202F180 + cmp r0, #0 + bne _0238A4D4 + cmp r4, #4 + addls pc, pc, r4, lsl #2 + b _0238A4D4 +_0238A2D8: @ jump table + b _0238A4D4 @ case 0 + b _0238A340 @ case 1 + b _0238A2EC @ case 2 + b _0238A308 @ case 3 + b _0238A324 @ case 4 +_0238A2EC: + ldr r0, _0238A4DC @ =0x0238B180 + mov r2, #7 + ldr r1, [r0] + mov r0, #0xd + str r2, [r1, #8] + bl ov15_0238A4E8 + b _0238A4D4 +_0238A308: + ldr r0, _0238A4DC @ =0x0238B180 + mov r2, #0xa + ldr r1, [r0] + mov r0, #0xd + str r2, [r1, #8] + bl ov15_0238A4E8 + b _0238A4D4 +_0238A324: + ldr r0, _0238A4DC @ =0x0238B180 + mov r2, #3 + ldr r1, [r0] + mov r0, #0xd + str r2, [r1, #8] + bl ov15_0238A4E8 + b _0238A4D4 +_0238A340: + ldr r0, _0238A4DC @ =0x0238B180 + mov r2, #4 + ldr r1, [r0] + mov r0, #0xd + str r2, [r1, #8] + bl ov15_0238A4E8 + b _0238A4D4 +_0238A35C: + add r0, r1, #0x54 + bl FUN_020396E4 + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _0238A4D4 +_0238A370: @ jump table + b _0238A4D4 @ case 0 + b _0238A380 @ case 1 + b _0238A3E4 @ case 2 + b _0238A3A0 @ case 3 +_0238A380: + ldr r0, _0238A4DC @ =0x0238B180 + mov r2, #1 + ldr r1, [r0] + strb r2, [r1, #0xd8] + ldr r0, [r0] + ldrsb r0, [r0, #0x68] + bl FUN_0203083C + b _0238A4D4 +_0238A3A0: + ldr r0, _0238A4DC @ =0x0238B180 + ldr r2, [r0] + ldr r1, [r2, #0x54] + str r1, [r2, #0xc] + ldr r0, [r0] + ldr r0, [r0, #0xc] + bl FUN_02010758 + ldr r0, _0238A4DC @ =0x0238B180 + ldr r0, [r0] + ldr r0, [r0, #0xc] + rsb r0, r0, #0 + bl FUN_0200ED58 + ldr r0, _0238A4E0 @ =0x00001308 + bl FUN_02017C80 + mov r0, #9 + bl ov15_0238A4E8 + b _0238A4D4 +_0238A3E4: + ldr r0, _0238A4DC @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x80] + bl FUN_0202F3A4 + mov r0, #5 + bl ov15_0238A4E8 + b _0238A4D4 +_0238A400: + add r0, r1, #0x54 + bl FUN_020396E4 + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _0238A4D4 +_0238A414: @ jump table + b _0238A4D4 @ case 0 + b _0238A424 @ case 1 + b _0238A488 @ case 2 + b _0238A444 @ case 3 +_0238A424: + ldr r0, _0238A4DC @ =0x0238B180 + mov r2, #0 + ldr r1, [r0] + strb r2, [r1, #0xd8] + ldr r0, [r0] + ldrsb r0, [r0, #0x68] + bl FUN_0203083C + b _0238A4D4 +_0238A444: + ldr r0, _0238A4DC @ =0x0238B180 + ldr r2, [r0] + ldr r1, [r2, #0x54] + str r1, [r2, #0xc] + ldr r0, [r0] + ldr r0, [r0, #0xc] + rsb r0, r0, #0 + bl FUN_02010758 + ldr r0, _0238A4DC @ =0x0238B180 + arm_func_end ov15_0238A234 + + arm_func_start ov15_0238A468 +ov15_0238A468: @ 0x0238A468 + ldr r0, [r0] + ldr r0, [r0, #0xc] + bl FUN_0200ED58 + ldr r0, _0238A4E0 @ =0x00001308 + bl FUN_02017C80 + mov r0, #0xc + bl ov15_0238A4E8 + b _0238A4D4 +_0238A488: + ldr r0, _0238A4E4 @ =0x0238B0CC + bl FUN_0200C1FC + ldr r0, _0238A4DC @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x80] + bl FUN_0202F3A4 + mov r0, #5 + bl ov15_0238A4E8 + b _0238A4D4 +_0238A4AC: + mov r0, #3 + pop {r4, pc} +_0238A4B4: + ldrsb r0, [r1, #0x80] + bl FUN_0202F180 + cmp r0, #0 + bne _0238A4D4 + ldr r0, _0238A4DC @ =0x0238B180 + ldr r0, [r0] + ldr r0, [r0, #8] + bl ov15_0238A4E8 +_0238A4D4: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_0238A4DC: .4byte 0x0238B180 +_0238A4E0: .4byte 0x00001308 +_0238A4E4: .4byte 0x0238B0CC + arm_func_end ov15_0238A468 + + arm_func_start ov15_0238A4E8 +ov15_0238A4E8: @ 0x0238A4E8 + push {r3, lr} + sub sp, sp, #8 + ldr r1, _0238AD10 @ =0x0238B180 + ldr r2, [r1] + str r0, [r2, #4] + ldr r3, [r1] + ldr r0, [r3, #4] + cmp r0, #0xd + addls pc, pc, r0, lsl #2 + b _0238AD08 +_0238A510: @ jump table + b _0238A548 @ case 0 + b _0238A56C @ case 1 + b _0238A634 @ case 2 + b _0238A68C @ case 3 + b _0238A708 @ case 4 + b _0238A7AC @ case 5 + b _0238AD08 @ case 6 + b _0238A820 @ case 7 + b _0238A914 @ case 8 + b _0238AA08 @ case 9 + b _0238AA88 @ case 10 + b _0238AB94 @ case 11 + b _0238AC80 @ case 12 + b _0238AD00 @ case 13 +_0238A548: + mov r2, #1 + str r2, [r3, #8] + ldr r3, [r1] + ldr r1, _0238AD14 @ =0x00003008 + ldrsb r0, [r3, #0x80] + add r2, r2, #0x374 + add r3, r3, #0x88 + bl FUN_0202F1B4 + b _0238AD08 +_0238A56C: + ldrsb r1, [r3, #0x68] + mvn r0, #1 + cmp r1, r0 + beq _0238A5CC + tst r1, #0x80 + beq _0238A5CC + ldr r0, _0238AD18 @ =0x0238B0D4 + and r1, r1, #0x1f + strb r1, [r3, #0x68] + bl FUN_0200C1FC + ldr r0, _0238AD10 @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x68] + bl FUN_020308A0 + ldr r0, _0238AD10 @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x82] + bl FUN_0202F8FC + ldr r0, _0238AD10 @ =0x0238B180 + mvn r2, #1 + ldr r1, [r0] + strb r2, [r1, #0x82] + ldr r0, [r0] + strb r2, [r0, #0x68] +_0238A5CC: + ldr r0, _0238AD10 @ =0x0238B180 + mov r1, #2 + ldr r0, [r0] + str r1, [r0, #8] + bl FUN_0201070C + cmp r0, #0 + bne _0238A608 + ldr r0, _0238AD10 @ =0x0238B180 + ldr r1, _0238AD14 @ =0x00003008 + ldr r3, [r0] + ldr r2, _0238AD1C @ =0x00000376 + ldrsb r0, [r3, #0x80] + add r3, r3, #0x88 + bl FUN_0202F1B4 + b _0238AD08 +_0238A608: + bl FUN_0201070C + ldr r3, _0238AD10 @ =0x0238B180 + ldr r1, _0238AD14 @ =0x00003008 + ldr ip, [r3] + ldr r2, _0238AD20 @ =0x00000377 + str r0, [ip, #0xac] + ldr r3, [r3] + ldrsb r0, [r3, #0x80] + add r3, r3, #0x88 + bl FUN_0202F1B4 + b _0238AD08 +_0238A634: + ldr r0, _0238AD24 @ =0x0238B08C + ldr r1, _0238AD28 @ =ov15_0238ADC4 + bl FUN_0202F8C4 + ldr r1, _0238AD10 @ =0x0238B180 + ldr r2, [r1] + strb r0, [r2, #0x82] + ldr r0, [r1] + ldrsb r0, [r0, #0x80] + bl FUN_0202F3A4 + ldr r0, _0238AD2C @ =0x0238B0E0 + bl FUN_0200C1FC + mov r1, #4 + ldr r0, _0238AD30 @ =0x0238B0AC + str r1, [sp] + ldr r1, _0238AD34 @ =0x00300013 + mov r2, #0 + ldr r3, _0238AD38 @ =0x0238B054 + bl FUN_0202B0EC + ldr r1, _0238AD10 @ =0x0238B180 + ldr r1, [r1] + strb r0, [r1, #0x83] + b _0238AD08 +_0238A68C: + ldr r0, _0238AD3C @ =0x0238B0E8 + bl FUN_0200C1FC + ldr r0, _0238AD10 @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x83] + bl FUN_0202B4C4 + ldr r0, _0238AD10 @ =0x0238B180 + mvn r2, #1 + ldr r1, [r0] + strb r2, [r1, #0x83] + ldr r0, [r0] + ldrsb r0, [r0, #0x82] + bl FUN_0202F954 + ldr r0, _0238AD10 @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x82] + bl FUN_0202F8FC + mvn r3, #1 + ldr r0, _0238AD10 @ =0x0238B180 + mov ip, #1 + ldr r2, [r0] + ldr r1, _0238AD14 @ =0x00003008 + strb r3, [r2, #0x82] + ldr r3, [r0] + mov r2, #0x378 + str ip, [r3, #8] + ldr r3, [r0] + ldrsb r0, [r3, #0x80] + add r3, r3, #0x88 + bl FUN_0202F1B4 + b _0238AD08 +_0238A708: + ldr r0, _0238AD3C @ =0x0238B0E8 + mov r1, #6 + str r1, [r3, #8] + bl FUN_0200C1FC + ldr r0, _0238AD10 @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x83] + bl FUN_0202B4C4 + ldr r0, _0238AD10 @ =0x0238B180 + mvn r2, #1 + ldr r1, [r0] + strb r2, [r1, #0x83] + ldr r0, [r0] + ldrsb r0, [r0, #0x82] + bl FUN_0202F954 + ldr r0, _0238AD10 @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x82] + bl FUN_0202F8FC + ldr r0, _0238AD10 @ =0x0238B180 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x82] + bl FUN_0201070C + cmp r0, #0 + ldr r1, _0238AD40 @ =0x00003018 + bne _0238A790 + ldr r0, _0238AD10 @ =0x0238B180 + ldr r2, _0238AD44 @ =0x00000379 + ldr r3, [r0] + ldrsb r0, [r3, #0x80] + add r3, r3, #0x88 + bl FUN_0202F1B4 + b _0238AD08 +_0238A790: + ldr r0, _0238AD10 @ =0x0238B180 + ldr r2, _0238AD48 @ =0x0000037A + ldr r3, [r0] + ldrsb r0, [r3, #0x80] + add r3, r3, #0x88 + bl FUN_0202F1B4 + b _0238AD08 +_0238A7AC: + ldr r0, _0238AD4C @ =0x0238B0F4 + bl FUN_0200C1FC + ldr r0, _0238AD10 @ =0x0238B180 + mov r2, #1 + ldr r1, [r0] + str r2, [r1, #8] + ldr r0, [r0] + ldrsb r0, [r0, #0x68] + bl FUN_0203088C + ldr r0, _0238AD10 @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x82] + bl FUN_0202F954 + ldr r0, _0238AD10 @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x68] + bl FUN_020288DC + ldr r0, _0238AD10 @ =0x0238B180 + ldr r1, _0238AD14 @ =0x00003008 + ldr ip, [r0] + ldr r2, _0238AD50 @ =0x0000037B + ldrsb r3, [ip, #0x68] + orr r3, r3, #0x80 + strb r3, [ip, #0x68] + ldr r3, [r0] + ldrsb r0, [r3, #0x80] + add r3, r3, #0x88 + bl FUN_0202F1B4 + b _0238AD08 +_0238A820: + ldr r0, _0238AD3C @ =0x0238B0E8 + bl FUN_0200C1FC + ldr r0, _0238AD10 @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x83] + bl FUN_0202B4C4 + ldr r0, _0238AD10 @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x82] + bl FUN_0202F954 + ldr r0, _0238AD10 @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x82] + bl FUN_0202F8FC + ldr r0, _0238AD10 @ =0x0238B180 + mvn r2, #1 + ldr r1, [r0] + strb r2, [r1, #0x82] + ldr r0, [r0] + strb r2, [r0, #0x83] + bl FUN_0200ECFC + cmp r0, #0 + bne _0238A8AC + ldr r0, _0238AD10 @ =0x0238B180 + ldr r1, _0238AD14 @ =0x00003008 + ldr r3, [r0] + mov r2, #0x37c + ldrsb r0, [r3, #0x80] + add r3, r3, #0x88 + bl FUN_0202F1B4 + ldr r0, _0238AD10 @ =0x0238B180 + mov r1, #1 + ldr r0, [r0] + str r1, [r0, #8] + b _0238AD08 +_0238A8AC: + bl FUN_0201070C + ldr r1, _0238AD54 @ =0x0098967F + cmp r0, r1 + blt _0238A8E8 + ldr r0, _0238AD10 @ =0x0238B180 + mov ip, #1 + ldr r2, [r0] + ldr r1, _0238AD14 @ =0x00003008 + str ip, [r2, #8] + ldr r3, [r0] + add r2, ip, #0x37c + ldrsb r0, [r3, #0x80] + add r3, r3, #0x88 + bl FUN_0202F1B4 + b _0238AD08 +_0238A8E8: + ldr r0, _0238AD10 @ =0x0238B180 + mov ip, #8 + ldr r1, [r0] + ldr r2, _0238AD58 @ =0x0000037E + str ip, [r1, #8] + ldr r3, [r0] + add r1, ip, #0x3000 + ldrsb r0, [r3, #0x80] + add r3, r3, #0x88 + bl FUN_0202F1B4 + b _0238AD08 +_0238A914: + ldrsb r0, [r3, #0x80] + bl FUN_0202F3A4 + bl FUN_0201070C + ldr r2, _0238AD10 @ =0x0238B180 + ldr r1, _0238AD54 @ =0x0098967F + ldr r2, [r2] + sub r0, r1, r0 + str r0, [r2, #0x60] + bl FUN_0200ECFC + ldr r1, _0238AD10 @ =0x0238B180 + ldr r1, [r1] + ldr r1, [r1, #0x60] + cmp r1, r0 + ble _0238A95C + bl FUN_0200ECFC + ldr r1, _0238AD10 @ =0x0238B180 + ldr r1, [r1] + str r0, [r1, #0x60] +_0238A95C: + ldr r1, _0238AD10 @ =0x0238B180 + mov r3, #1 + ldr r2, [r1] + mov lr, #5 + ldr r0, [r2, #0x60] + mov ip, #0x50 + str r0, [r2, #0x58] + ldr r2, [r1] + ldr r0, _0238AD5C @ =0x0238B10C + str r3, [r2, #0x5c] + ldr r3, [r1] + mov r2, #0x12 + str lr, [r3, #0x64] + ldr r3, [r1] + str ip, [r3, #0x74] + ldr r1, [r1] + str r2, [r1, #0x78] + bl FUN_0200C1FC + ldr r0, _0238AD24 @ =0x0238B08C + ldr r1, _0238AD28 @ =ov15_0238ADC4 + bl FUN_0202F8C4 + ldr r1, _0238AD10 @ =0x0238B180 + mov r2, #0 + ldr r3, [r1] + ldr r1, _0238AD60 @ =0x00001017 + strb r0, [r3, #0x82] + str r2, [sp] + ldr r0, _0238AD64 @ =0x0238B09C + ldr r3, _0238AD68 @ =0x0238AE6C + str r2, [sp, #4] + bl FUN_020305B4 + ldr r1, _0238AD10 @ =0x0238B180 + ldr r2, [r1] + strb r0, [r2, #0x68] + ldr r0, [r1] + add r0, r0, #0x54 + bl FUN_020395CC + ldr r1, _0238AD10 @ =0x0238B180 + mov r0, #1 + ldr r1, [r1] + strb r0, [r1, #0xd8] + bl ov15_0238AD78 + b _0238AD08 +_0238AA08: + ldrsb r0, [r3, #0x80] + bl FUN_0202F3A4 + ldr r0, _0238AD10 @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x82] + bl FUN_0202F954 + ldr r0, _0238AD10 @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x68] + bl FUN_0203088C + ldr r0, _0238AD10 @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x68] + bl FUN_020288DC + ldr r0, _0238AD10 @ =0x0238B180 + mov ip, #1 + ldr lr, [r0] + ldr r1, _0238AD14 @ =0x00003008 + ldrsb r3, [lr, #0x68] + rsb r2, ip, #0x380 + orr r3, r3, #0x80 + strb r3, [lr, #0x68] + ldr r3, [r0] + str ip, [r3, #8] + ldr ip, [r0] + ldr r3, [ip, #0xc] + str r3, [ip, #0xac] + ldr r3, [r0] + ldrsb r0, [r3, #0x80] + add r3, r3, #0x88 + bl FUN_0202F1B4 + b _0238AD08 +_0238AA88: + ldr r0, _0238AD3C @ =0x0238B0E8 + bl FUN_0200C1FC + ldr r0, _0238AD10 @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x83] + bl FUN_0202B4C4 + ldr r0, _0238AD10 @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x82] + bl FUN_0202F954 + ldr r0, _0238AD10 @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x82] + bl FUN_0202F8FC + ldr r0, _0238AD10 @ =0x0238B180 + mvn r2, #1 + ldr r1, [r0] + strb r2, [r1, #0x82] + ldr r1, [r0] + strb r2, [r1, #0x83] + ldr r0, [r0] + ldrsb r0, [r0, #0x80] + bl FUN_0202F3A4 + bl FUN_0200ECFC + ldr r1, _0238AD6C @ =0x0001869F + cmp r0, r1 + blt _0238AB20 + ldr r0, _0238AD10 @ =0x0238B180 + mov r3, #1 + ldr r2, [r0] + ldr r1, _0238AD14 @ =0x00003008 + str r3, [r2, #8] + ldr r3, [r0] + mov r2, #0x380 + ldrsb r0, [r3, #0x80] + add r3, r3, #0x88 + bl FUN_0202F1B4 + b _0238AD08 +_0238AB20: + bl FUN_0201070C + cmp r0, #0 + bne _0238AB58 + ldr r0, _0238AD10 @ =0x0238B180 + mov ip, #1 + ldr r2, [r0] + ldr r1, _0238AD14 @ =0x00003008 + str ip, [r2, #8] + ldr r3, [r0] + add r2, ip, #0x380 + ldrsb r0, [r3, #0x80] + add r3, r3, #0x88 + bl FUN_0202F1B4 + b _0238AD08 +_0238AB58: + ldr r0, _0238AD10 @ =0x0238B180 + mov r1, #0xb + ldr r0, [r0] + str r1, [r0, #8] + bl FUN_0201070C + ldr r3, _0238AD10 @ =0x0238B180 + ldr r1, _0238AD14 @ =0x00003008 + ldr ip, [r3] + ldr r2, _0238AD70 @ =0x00000382 + str r0, [ip, #0xac] + ldr r3, [r3] + ldrsb r0, [r3, #0x80] + add r3, r3, #0x88 + bl FUN_0202F1B4 + b _0238AD08 +_0238AB94: + bl FUN_0200ECFC + ldr r2, _0238AD10 @ =0x0238B180 + ldr r1, _0238AD6C @ =0x0001869F + ldr r2, [r2] + sub r0, r1, r0 + str r0, [r2, #0x60] + bl FUN_0201070C + ldr r1, _0238AD10 @ =0x0238B180 + ldr r1, [r1] + ldr r1, [r1, #0x60] + cmp r1, r0 + ble _0238ABD4 + bl FUN_0201070C + ldr r1, _0238AD10 @ =0x0238B180 + ldr r1, [r1] + str r0, [r1, #0x60] +_0238ABD4: + ldr r1, _0238AD10 @ =0x0238B180 + mov r3, #1 + ldr r2, [r1] + mov lr, #5 + ldr r0, [r2, #0x60] + mov ip, #0x50 + str r0, [r2, #0x58] + ldr r2, [r1] + ldr r0, _0238AD74 @ =0x0238B114 + str r3, [r2, #0x5c] + ldr r3, [r1] + mov r2, #0x12 + str lr, [r3, #0x64] + ldr r3, [r1] + str ip, [r3, #0x74] + ldr r1, [r1] + str r2, [r1, #0x78] + bl FUN_0200C1FC + ldr r0, _0238AD24 @ =0x0238B08C + ldr r1, _0238AD28 @ =ov15_0238ADC4 + bl FUN_0202F8C4 + ldr r1, _0238AD10 @ =0x0238B180 + mov r2, #0 + ldr r3, [r1] + ldr r1, _0238AD60 @ =0x00001017 + strb r0, [r3, #0x82] + str r2, [sp] + ldr r0, _0238AD64 @ =0x0238B09C + ldr r3, _0238AD68 @ =0x0238AE6C + str r2, [sp, #4] + bl FUN_020305B4 + ldr r1, _0238AD10 @ =0x0238B180 + ldr r2, [r1] + strb r0, [r2, #0x68] + ldr r0, [r1] + add r0, r0, #0x54 + bl FUN_020395CC + ldr r1, _0238AD10 @ =0x0238B180 + mov r0, #0 + ldr r1, [r1] + strb r0, [r1, #0xd8] + bl ov15_0238AD78 + b _0238AD08 +_0238AC80: + ldrsb r0, [r3, #0x80] + bl FUN_0202F3A4 + ldr r0, _0238AD10 @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x82] + bl FUN_0202F954 + ldr r0, _0238AD10 @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x68] + bl FUN_0203088C + ldr r0, _0238AD10 @ =0x0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x68] + bl FUN_020288DC + ldr r0, _0238AD10 @ =0x0238B180 + mov ip, #1 + ldr lr, [r0] + ldr r1, _0238AD14 @ =0x00003008 + ldrsb r3, [lr, #0x68] + rsb r2, ip, #0x384 + orr r3, r3, #0x80 + strb r3, [lr, #0x68] + ldr r3, [r0] + str ip, [r3, #8] + ldr ip, [r0] + ldr r3, [ip, #0xc] + str r3, [ip, #0xac] + ldr r3, [r0] + ldrsb r0, [r3, #0x80] + add r3, r3, #0x88 + bl FUN_0202F1B4 + b _0238AD08 +_0238AD00: + ldrsb r0, [r3, #0x82] + bl FUN_0202F954 +_0238AD08: + add sp, sp, #8 + pop {r3, pc} + .align 2, 0 +_0238AD10: .4byte 0x0238B180 +_0238AD14: .4byte 0x00003008 +_0238AD18: .4byte 0x0238B0D4 +_0238AD1C: .4byte 0x00000376 +_0238AD20: .4byte 0x00000377 +_0238AD24: .4byte 0x0238B08C +_0238AD28: .4byte ov15_0238ADC4 +_0238AD2C: .4byte 0x0238B0E0 +_0238AD30: .4byte 0x0238B0AC +_0238AD34: .4byte 0x00300013 +_0238AD38: .4byte 0x0238B054 +_0238AD3C: .4byte 0x0238B0E8 +_0238AD40: .4byte 0x00003018 +_0238AD44: .4byte 0x00000379 +_0238AD48: .4byte 0x0000037A +_0238AD4C: .4byte 0x0238B0F4 +_0238AD50: .4byte 0x0000037B +_0238AD54: .4byte 0x0098967F +_0238AD58: .4byte 0x0000037E +_0238AD5C: .4byte 0x0238B10C +_0238AD60: .4byte 0x00001017 +_0238AD64: .4byte 0x0238B09C +_0238AD68: .4byte 0x0238AE6C +_0238AD6C: .4byte 0x0001869F +_0238AD70: .4byte 0x00000382 +_0238AD74: .4byte 0x0238B114 + arm_func_end ov15_0238A4E8 + + arm_func_start ov15_0238AD78 +ov15_0238AD78: @ 0x0238AD78 + push {r3, lr} + cmp r0, #0 + movne r0, #0x384 + ldr r1, _0238ADBC @ =0x0238B180 + ldreq r0, _0238ADC0 @ =0x00000385 + ldr r1, [r1] + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + ldrsb r0, [r1, #0x68] + mov r1, #2 + mov r2, #0 + bl FUN_02026268 + ldr r0, _0238ADBC @ =0x0238B180 + ldr r0, [r0] + add r0, r0, #0x54 + bl FUN_02039B0C + pop {r3, pc} + .align 2, 0 +_0238ADBC: .4byte 0x0238B180 +_0238ADC0: .4byte 0x00000385 + arm_func_end ov15_0238AD78 + + arm_func_start ov15_0238ADC4 +ov15_0238ADC4: @ 0x0238ADC4 + push {r3, r4, lr} + sub sp, sp, #0x54 + sub sp, sp, #0x400 + mov r4, r0 + bl FUN_02027B1C + bl FUN_0200ECFC + add ip, sp, #0x400 + str r0, [sp, #0x428] + add ip, ip, #4 + ldr r2, _0238AE64 @ =0x00000373 + ldr r3, _0238AE68 @ =0x0000C402 + add r0, sp, #4 + mov r1, #0x100 + str ip, [sp] + arm_func_end ov15_0238ADC4 + + arm_func_start ov15_0238ADFC +ov15_0238ADFC: @ 0x0238ADFC + bl FUN_020235B8 + add r3, sp, #4 + mov r0, r4 + mov r1, #8 + mov r2, #6 + bl FUN_02026214 + bl FUN_0201070C + add r1, sp, #0x400 + str r0, [sp, #0x428] + add r1, r1, #4 + str r1, [sp] + ldr r3, _0238AE68 @ =0x0000C402 + add r0, sp, #4 + mov r1, #0x100 + mov r2, #0x374 + bl FUN_020235B8 + mov r0, r4 + mov r1, #0x74 + mov r2, #6 + add r3, sp, #4 + bl FUN_02026214 + mov r0, r4 + bl FUN_02027AF0 + add sp, sp, #0x54 + add sp, sp, #0x400 + pop {r3, r4, pc} + .align 2, 0 +_0238AE64: .4byte 0x00000373 +_0238AE68: .4byte 0x0000C402 + arm_func_end ov15_0238ADFC +_0238AE6C: + .byte 0x0C, 0x00, 0x9F, 0xE5 + .byte 0x0C, 0xC0, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD8, 0x00, 0xD0, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0x80, 0xB1, 0x38, 0x02, 0x78, 0xAD, 0x38, 0x02, 0x08, 0x40, 0x2D, 0xE9, 0xAB, 0xFC, 0xFF, 0xEB + .byte 0x01, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov15_0238AE98 +ov15_0238AE98: @ 0x0238AE98 + push {r3, lr} + ldr r0, _0238AF40 @ =0x0238B180 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + ldrsb r1, [r0, #0x80] + mvn r0, #1 + cmp r1, r0 + beq _0238AEC4 + ldr r0, _0238AF44 @ =0x0238B11C + bl FUN_0200C1FC +_0238AEC4: + ldr r1, _0238AF40 @ =0x0238B180 + mvn r0, #1 + ldr r1, [r1] + ldrsb r1, [r1, #0x82] + cmp r1, r0 + beq _0238AEE4 + ldr r0, _0238AF48 @ =0x0238B12C + bl FUN_0200C1FC +_0238AEE4: + ldr r1, _0238AF40 @ =0x0238B180 + mvn r0, #1 + ldr r1, [r1] + ldrsb r1, [r1, #0x83] + cmp r1, r0 + beq _0238AF04 + ldr r0, _0238AF4C @ =0x0238B13C + bl FUN_0200C1FC +_0238AF04: + ldr r1, _0238AF40 @ =0x0238B180 + mvn r0, #1 + ldr r1, [r1] + ldrsb r1, [r1, #0x84] + cmp r1, r0 + beq _0238AF24 + ldr r0, _0238AF50 @ =0x0238B150 + bl FUN_0200C1FC +_0238AF24: + ldr r0, _0238AF40 @ =0x0238B180 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0238AF40 @ =0x0238B180 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0238AF40: .4byte 0x0238B180 +_0238AF44: .4byte 0x0238B11C +_0238AF48: .4byte 0x0238B12C +_0238AF4C: .4byte 0x0238B13C +_0238AF50: .4byte 0x0238B150 + arm_func_end ov15_0238AE98 + @ 0x0238AF54 diff --git a/asm/overlay_16.s b/asm/overlay_16.s index 7bc0c83b..95adca78 100644 --- a/asm/overlay_16.s +++ b/asm/overlay_16.s @@ -3,3 +3,2591 @@ .include "global.inc" .text + + arm_func_start ov16_0238A140 +ov16_0238A140: @ 0x0238A140 + push {r3, r4, r5, lr} + sub sp, sp, #0x128 + ldr r1, _0238B0CC @ =0x0238CE40 + ldr r2, [r1] + str r0, [r2, #0x70] + ldr r0, [r1] + ldr r2, [r0, #0x70] + cmp r2, #0x2c + addls pc, pc, r2, lsl #2 + b _0238B0C4 +_0238A168: @ jump table + b _0238A21C @ case 0 + b _0238A274 @ case 1 + b _0238A2D8 @ case 2 + b _0238A344 @ case 3 + b _0238A370 @ case 4 + b _0238B0C4 @ case 5 + b _0238A318 @ case 6 + b _0238A928 @ case 7 + b _0238A95C @ case 8 + b _0238A9C4 @ case 9 + b _0238AEA0 @ case 10 + b _0238AE3C @ case 11 + b _0238AE6C @ case 12 + b _0238A640 @ case 13 + b _0238A614 @ case 14 + b _0238AE74 @ case 15 + b _0238A574 @ case 16 + b _0238A5D8 @ case 17 + b _0238A480 @ case 18 + b _0238A50C @ case 19 + b _0238A440 @ case 20 + b _0238B0C4 @ case 21 + b _0238A730 @ case 22 + b _0238A850 @ case 23 + b _0238B0C4 @ case 24 + b _0238B0C4 @ case 25 + b _0238A668 @ case 26 + b _0238A6F4 @ case 27 + b _0238A9F4 @ case 28 + b _0238AA58 @ case 29 + b _0238AA94 @ case 30 + b _0238AAD8 @ case 31 + b _0238AFF8 @ case 32 + b _0238AED8 @ case 33 + b _0238AF98 @ case 34 + b _0238AFD0 @ case 35 + b _0238B0C4 @ case 36 + b _0238AFEC @ case 37 + b _0238B0C4 @ case 38 + b _0238B038 @ case 39 + b _0238B0C4 @ case 40 + b _0238B0C4 @ case 41 + b _0238B0C4 @ case 42 + b _0238B0C4 @ case 43 + b _0238A424 @ case 44 +_0238A21C: + bl ov16_0238CBD0 + cmp r0, #0 + bne _0238A240 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r1, #0xf + ldr r0, [r0] + str r1, [r0, #0x70] + bl ov16_0238B148 + b _0238B0C4 +_0238A240: + ldr r0, _0238B0CC @ =0x0238CE40 + mov r1, #6 + ldr r0, [r0] + str r1, [r0, #0x74] + bl ov16_0238CB98 + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r2, _0238B0D0 @ =0x00000431 + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238B0C4 +_0238A274: + bl ov16_0238CBD0 + cmp r0, #0 + bne _0238A298 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r1, #0xf + ldr r0, [r0] + str r1, [r0, #0x70] + bl ov16_0238B148 + b _0238B0C4 +_0238A298: + bl ov16_0238CB98 + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl FUN_0202F3A4 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r3, #6 + ldr r1, [r0] + ldr r2, _0238B0D4 @ =0x00000432 + str r3, [r1, #0x74] + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238B0C4 +_0238A2D8: + bl ov16_0238CB98 + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl FUN_0202F3A4 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r3, #1 + ldr r1, [r0] + add r2, r3, #0x440 + str r3, [r1, #0x74] + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238B0C4 +_0238A318: + ldr r0, _0238B0D8 @ =0x0238CDE4 + mov r4, #3 + ldr r1, _0238B0DC @ =0x00300011 + ldr r3, _0238B0E0 @ =0x0238CD40 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238B0CC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0xc3] + b _0238B0C4 +_0238A344: + mov r1, #1 + str r1, [r0, #0x74] + bl ov16_0238CB98 + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r2, _0238B0E4 @ =0x00000442 + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238B0C4 +_0238A370: + mov r1, #5 + str r1, [r0, #0x74] + bl ov16_0238CB98 + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r0, [r0] + ldr r0, [r0, #0x88] + cmp r0, #0 + ble _0238A394 + bl FUN_020572EC +_0238A394: + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r2, [r0] + ldr r1, [r2, #0x88] + cmp r1, #1 + ble _0238A3DC + mov r1, #4 + str r1, [r2, #0x74] + ldr r1, [r0] + ldr r2, _0238B0E8 @ =0x00000449 + ldrsb r0, [r1, #0xc1] + add r3, r1, #0xe8 + mov r1, #0x18 + bl FUN_0202F1B4 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #0x88] + b _0238B0C4 +_0238A3DC: + bl ov16_0238CBD0 + cmp r0, #0 + mov r1, #0x18 + bne _0238A408 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r2, #0x440 + ldr r3, [r0] + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238B0C4 +_0238A408: + ldr r0, _0238B0CC @ =0x0238CE40 + add r2, r1, #0x430 + ldr r3, [r0] + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238B0C4 +_0238A424: + mov r2, #5 + str r2, [r0, #0xd8] + ldr r0, [r1] + mov r1, #1 + str r1, [r0, #0x70] + bl ov16_0238B148 + b _0238B0C4 +_0238A440: + bl ov16_0238CB98 + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl FUN_0202F3A4 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r3, #0x27 + ldr r1, [r0] + rsb r2, r3, #0x460 + str r3, [r1, #0x74] + arm_func_end ov16_0238A140 + + arm_func_start ov16_0238A468 +ov16_0238A468: @ 0x0238A468 + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238B0C4 +_0238A480: + bl ov16_0238CB98 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r2, #0xa + ldr r0, [r0] + ldr r1, [r0, #0x3c] + add r0, r0, #0x138 + add r1, r1, #0x3a + bl FUN_020251F4 + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r2, [r0] + add r1, r2, #0x138 + str r1, [r2, #0x120] + ldr r2, [r0] + ldr r1, [r2, #0x3c] + ldrsh r1, [r1, #4] + str r1, [r2, #0xe8] + ldr r2, [r0] + ldr r1, [r2, #0x40] + add r1, r2, r1, lsl #1 + ldrsh r1, [r1, #0xc] + str r1, [r2, #0xec] + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl FUN_0202F3A4 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r1, #8 + mov r4, #0x13 + ldr r3, [r0] + add r2, r1, #0x430 + str r4, [r3, #0x74] + ldr r3, [r0] + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238B0C4 +_0238A50C: + ldr r2, [r0, #0x40] + mov r1, #0 + add r0, r0, r2, lsl #1 + ldrsh r0, [r0, #0xc] + bl FUN_02055148 + cmp r0, #0 + ldrne r0, _0238B0CC @ =0x0238CE40 + movne r1, #0x1a + ldreq r0, _0238B0CC @ =0x0238CE40 + moveq r1, #0x1c + ldr r0, [r0] + mov r4, #2 + str r1, [r0, #0x74] + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r3, _0238B0EC @ =0x0238CD08 + ldr r1, [r0] + ldr r0, _0238B0D8 @ =0x0238CDE4 + str r4, [r1, #0x78] + ldr r1, _0238B0F0 @ =0x00300013 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238B0CC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0xc3] + b _0238B0C4 +_0238A574: + bl ov16_0238CB98 + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r2, [r0] + ldrsh r1, [r2, #0x44] + orr r1, r1, #0x20000 + str r1, [r2, #0xe8] + ldr r2, [r0] + ldr r1, [r2, #0x40] + add r1, r2, r1, lsl #1 + ldrsh r1, [r1, #0xc] + str r1, [r2, #0xec] + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl FUN_0202F3A4 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r3, #0x11 + ldr r1, [r0] + ldr r2, _0238B0F4 @ =0x00000434 + str r3, [r1, #0x74] + ldr r3, [r0] + mov r1, #8 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238B0C4 +_0238A5D8: + mov r2, #0x1c + str r2, [r0, #0x74] + ldr r0, [r1] + mov r4, #2 + str r4, [r0, #0x78] + ldr r0, _0238B0D8 @ =0x0238CDE4 + ldr r1, _0238B0F0 @ =0x00300013 + ldr r3, _0238B0EC @ =0x0238CD08 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238B0CC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0xc3] + b _0238B0C4 +_0238A614: + ldr r0, _0238B0F8 @ =0x0238CDD4 + mov r4, #3 + ldr r3, _0238B0FC @ =0x0238CD20 + mov r1, #0x13 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238B0CC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0xc3] + b _0238B0C4 +_0238A640: + ldr r1, [r0, #0x3c] + add r0, sp, #0x18 + bl FUN_0205B008 + add r0, sp, #0x18 + mov r1, #3 + bl FUN_0203F150 + ldr r1, _0238B0CC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0xc4] + b _0238B0C4 +_0238A668: + bl ov16_0238CB98 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r2, #0xa + ldr r0, [r0] + ldr r1, [r0, #0x3c] + add r0, r0, #0x138 + add r1, r1, #0x3a + bl FUN_020251F4 + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r2, [r0] + add r1, r2, #0x138 + str r1, [r2, #0x120] + ldr r2, [r0] + ldr r1, [r2, #0x3c] + ldrsh r1, [r1, #4] + str r1, [r2, #0xe8] + ldr r2, [r0] + ldr r1, [r2, #0x40] + add r1, r2, r1, lsl #1 + ldrsh r1, [r1, #0xc] + str r1, [r2, #0xec] + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl FUN_0202F3A4 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r4, #0x1b + ldr r2, [r0] + mov r1, #8 + str r4, [r2, #0x74] + ldr r3, [r0] + add r2, r4, #0x420 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238B0C4 +_0238A6F4: + mov r2, #0x1c + str r2, [r0, #0x74] + ldr r0, [r1] + mov r4, #2 + str r4, [r0, #0x78] + ldr r0, _0238B0D8 @ =0x0238CDE4 + ldr r1, _0238B0F0 @ =0x00300013 + ldr r3, _0238B0EC @ =0x0238CD08 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238B0CC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0xc3] + b _0238B0C4 +_0238A730: + mov r2, #0 + str r2, [r0, #0x40] + ldr r3, [r1] + ldr r0, _0238B100 @ =0x00000125 + ldr r1, [r3, #0x3c] + ldrsh r1, [r1, #4] + cmp r1, r0 + addne r0, r0, #0x258 + cmpne r1, r0 + moveq r0, #0 + beq _0238A7DC + mov r1, r2 +_0238A760: + add r0, r3, r1, lsl #1 + ldrsh r0, [r0, #0xc] + add r1, r1, #1 + cmp r0, #0 + addne r2, r2, #1 + cmp r1, #8 + blt _0238A760 + cmp r2, #1 + bne _0238A7D8 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r3, #0 +_0238A78C: + ldr r2, [r0] + add r1, r2, r3, lsl #1 + ldrsh r1, [r1, #0xc] + cmp r1, #0 + beq _0238A7C4 + strh r1, [r2, #0xc] + ldr r2, [r0] + add r1, r2, r3, lsl #1 + ldrsh r1, [r1, #0x1c] + strh r1, [r2, #0x1c] + ldr r2, [r0] + add r1, r2, r3, lsl #1 + ldrsh r1, [r1, #0x2c] + strh r1, [r2, #0x2c] +_0238A7C4: + add r3, r3, #1 + cmp r3, #8 + blt _0238A78C + mov r0, #1 + b _0238A7DC +_0238A7D8: + mov r0, #2 +_0238A7DC: + cmp r0, #0 + beq _0238A7F0 + cmp r0, #1 + beq _0238A820 + b _0238A838 +_0238A7F0: + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r1, [r0] + ldrsh r0, [r1, #0xc] + cmp r0, #0 + moveq r0, #1 + streq r0, [r1, #0x40] + ldr r0, _0238B0CC @ =0x0238CE40 + mov r1, #0x10 + ldr r0, [r0] + str r1, [r0, #0x70] + bl ov16_0238B148 + b _0238B0C4 +_0238A820: + ldr r0, _0238B0CC @ =0x0238CE40 + mov r1, #0x17 + ldr r0, [r0] + str r1, [r0, #0x70] + bl ov16_0238B148 + b _0238B0C4 +_0238A838: + ldr r0, _0238B0CC @ =0x0238CE40 + mov r1, #0x14 + ldr r0, [r0] + str r1, [r0, #0x70] + bl ov16_0238B148 + b _0238B0C4 +_0238A850: + ldrsh r2, [r0, #0x44] + orr r2, r2, #0x20000 + str r2, [r0, #0xe8] + ldr r2, [r1] + ldr r0, [r2, #0x40] + add r0, r2, r0, lsl #1 + ldrsh r0, [r0, #0xc] + str r0, [r2, #0xec] + ldr r2, [r1] + ldr r0, [r2, #0x40] + add r0, r2, r0, lsl #1 + ldrsh r0, [r0, #0x1c] + str r0, [r2, #0xf8] + ldr r2, [r1] + ldr r0, [r2, #0x40] + add r0, r2, r0, lsl #1 + ldrsh r0, [r0, #0x2c] + str r0, [r2, #0xfc] + ldr r1, [r1] + ldr r0, [r1, #0xf8] + cmp r0, #0 + ldreq r0, [r1, #0xfc] + streq r0, [r1, #0xf8] + ldr r0, _0238B0CC @ =0x0238CE40 + mov r1, #0 + ldr r3, [r0] + ldr r2, [r3, #0x40] + add r0, r3, r2, lsl #1 + ldrsh r0, [r0, #0x1c] + cmp r0, #0 + add r0, r3, r2, lsl #1 + ldrsh r0, [r0, #0x2c] + addne r1, r1, #1 + cmp r0, #0 + addne r1, r1, #1 + cmp r1, #0 + beq _0238A8F8 + cmp r1, #1 + beq _0238A908 + cmp r1, #2 + beq _0238A918 + b _0238B0C4 +_0238A8F8: + mov r0, #0x12 + str r0, [r3, #0x70] + bl ov16_0238B148 + b _0238B0C4 +_0238A908: + mov r0, #7 + str r0, [r3, #0x70] + bl ov16_0238B148 + b _0238B0C4 +_0238A918: + mov r0, #9 + str r0, [r3, #0x70] + bl ov16_0238B148 + b _0238B0C4 +_0238A928: + bl ov16_0238CAE8 + bl ov16_0238CB98 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r3, #8 + ldr r1, [r0] + ldr r2, _0238B104 @ =0x0000043E + str r3, [r1, #0x74] + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238B0C4 +_0238A95C: + ldr r2, [r0, #0x40] + mov r1, #0 + add r0, r0, r2, lsl #1 + ldrsh r0, [r0, #0xc] + bl FUN_02055148 + cmp r0, #0 + ldrne r0, _0238B0CC @ =0x0238CE40 + movne r1, #0x1a + ldreq r0, _0238B0CC @ =0x0238CE40 + moveq r1, #0x1c + ldr r0, [r0] + mov r4, #2 + str r1, [r0, #0x74] + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r3, _0238B0EC @ =0x0238CD08 + ldr r1, [r0] + ldr r0, _0238B0D8 @ =0x0238CDE4 + str r4, [r1, #0x78] + ldr r1, _0238B0F0 @ =0x00300013 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238B0CC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0xc3] + b _0238B0C4 +_0238A9C4: + bl ov16_0238CB98 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r3, #8 + ldr r1, [r0] + ldr r2, _0238B108 @ =0x0000043A + str r3, [r1, #0x74] + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238B0C4 +_0238A9F4: + ldrsb r0, [r0, #0xc1] + bl FUN_0202F2C4 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r3, #0x14 + ldr r1, [r0] + mov r2, #3 + str r3, [r1, #0xe4] + ldr r1, [r0] + mov r3, #0 + str r2, [r1, #0xd8] + ldr r4, [r0] + mov r1, #0x1d + ldr r2, [r4, #0x3c] + ldrsh r2, [r2, #4] + strh r2, [r4, #0xdc] + ldr r4, [r0] + ldr r2, [r4, #0x40] + add r2, r4, r2, lsl #1 + ldrsh r2, [r2, #0xc] + strh r2, [r4, #0xde] + ldr r2, [r0] + str r3, [r2, #0xe0] + ldr r0, [r0] + str r1, [r0, #0x74] + b _0238B0C4 +_0238AA58: + ldrsh r3, [r0, #0x44] + mov r2, #0x1e + orr r3, r3, #0x20000 + str r3, [r0, #0xe8] + ldr r0, [r1] + str r2, [r0, #0x74] + bl ov16_0238CB98 + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r2, _0238B10C @ =0x0000043C + ldr r3, [r0] + mov r1, #8 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238B0C4 +_0238AA94: + mov r1, #0x1f + str r1, [r0, #0x74] + bl ov16_0238CB98 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r2, #3 + ldr r1, [r0] + ldr r3, _0238B110 @ =0x0000140F + str r2, [r1, #0xe0] + ldr r1, [r0] + rsb r2, r2, #0x440 + str r3, [r1, #0x10c] + ldr r3, [r0] + mov r1, #8 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238B0C4 +_0238AAD8: + bl ov16_0238CB98 + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r2, [r0] + ldr r1, [r2, #0x3c] + ldrsh r1, [r1, #4] + str r1, [r2, #0xe8] + ldr r0, [r0] + ldr r0, [r0, #0x3c] + bl FUN_02056070 + ldr r1, _0238B0CC @ =0x0238CE40 + mov r2, #1 + ldr r3, [r1] + strb r0, [r3, #0x46] + ldr r0, [r1] + strb r2, [r0] + bl FUN_0204FCDC + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r1, [r0] + ldr r0, [r1, #0x40] + add r0, r1, r0, lsl #1 + ldrsh r0, [r0, #0xc] + bl FUN_0204FDFC + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r0, [r0] + ldrsh r0, [r0, #0x44] + bl FUN_02056410 + cmp r0, #0 + beq _0238AB84 + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r0, [r0] + ldrsh r0, [r0, #0x44] + bl FUN_020564B0 + ldr r1, _0238B0CC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0x8c] + bl FUN_02056AB0 + cmp r0, #0 + ldr r0, _0238B0CC @ =0x0238CE40 + movne r1, #2 + ldr r0, [r0] + moveq r1, #1 + str r1, [r0, #0x88] + b _0238AB9C +_0238AB84: + ldr r0, _0238B0CC @ =0x0238CE40 + mov r2, #0 + ldr r1, [r0] + strb r2, [r1, #0x8c] + ldr r0, [r0] + str r2, [r0, #0x88] +_0238AB9C: + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r2, [r0] + ldr r1, [r2, #0x40] + add r0, r2, #0x44 + add r1, r2, r1, lsl #1 + ldrsh r1, [r1, #0xc] + bl FUN_0205A288 + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r0, [r0] + ldrsh r0, [r0, #0x44] + bl ov16_0238CC64 + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r0, [r0] + ldrb r0, [r0, #0x8c] + cmp r0, #0 + beq _0238ABF4 + bl FUN_02056880 + bl FUN_0205638C + ldr r1, _0238B0CC @ =0x0238CE40 + ldr r1, [r1] + ldrsh r1, [r1, #0x44] + strh r1, [r0, #8] +_0238ABF4: + ldr r1, _0238B0CC @ =0x0238CE40 + ldr r0, _0238B114 @ =0x020A18C4 + ldr r3, [r1] + ldrsh r2, [r0] + ldr r4, [r3, #0x3c] + ldr r0, _0238B118 @ =0x000003E7 + ldrsh r3, [r4, #0xa] + add r2, r3, r2 + strh r2, [r4, #0xa] + ldr r1, [r1] + ldr r3, _0238B11C @ =0x020A18D0 + ldr r2, [r1, #0x3c] + ldrsh r1, [r2, #0xa] + cmp r1, r0 + strhgt r0, [r2, #0xa] + ldr r1, _0238B0CC @ =0x0238CE40 + ldr r0, _0238B120 @ =0x020A18E4 + ldr r1, [r1] + ldrsh r5, [r0] + ldr r1, [r1, #0x3c] + ldrsh r2, [r0, #2] + ldrb ip, [r1, #0xc] + ldrb r4, [r1, #0xd] + ldrb lr, [r1, #0xf] + add r0, ip, r5 + add r2, r4, r2 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + ldrsh ip, [r3, #2] + cmp r0, #0xff + ldrb r5, [r1, #0xe] + ldrsh r4, [r3] + movgt r0, #0xff + strb r0, [r1, #0xc] + add r3, r5, r4 + lsl r2, r2, #0x10 + asr r4, r2, #0x10 + ldr r2, _0238B0CC @ =0x0238CE40 + cmp r4, #0xff + ldr r1, [r2] + lsl r3, r3, #0x10 + add ip, lr, ip + lsl ip, ip, #0x10 + ldr r1, [r1, #0x3c] + movgt r4, #0xff + strb r4, [r1, #0xd] + ldr r1, [r2] + asr r3, r3, #0x10 + cmp r3, #0xff + ldr r1, [r1, #0x3c] + movgt r3, #0xff + strb r3, [r1, #0xe] + ldr r1, [r2] + asr r5, ip, #0x10 + cmp r5, #0xff + ldr r1, [r1, #0x3c] + movgt r5, #0xff + strb r5, [r1, #0xf] + mov r0, #0 + ldr r1, [r2] + strh r0, [sp, #0xa] + ldr r0, [r1, #0x40] + add r0, r1, r0, lsl #1 + ldrsh r0, [r0, #0x1c] + strh r0, [sp, #0xc] + bl FUN_0200F26C + mov r4, r0 + mvn r1, #0 + cmp r4, r1 + beq _0238AD2C + bl FUN_0200F348 + ldrb r0, [r0, #1] + cmp r0, #0 + beq _0238AD20 + bl FUN_020582E0 +_0238AD20: + mov r0, r4 + bl FUN_0200F390 + b _0238AD40 +_0238AD2C: + ldrsh r0, [sp, #0xc] + cmp r0, #0 + beq _0238AD40 + add r0, sp, #8 + bl FUN_02010260 +_0238AD40: + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r1, [r0] + ldr r0, [r1, #0x40] + add r0, r1, r0, lsl #1 + ldrsh r0, [r0, #0x2c] + strh r0, [sp, #0xc] + bl FUN_0200F26C + mov r4, r0 + mvn r1, #0 + cmp r4, r1 + beq _0238AD8C + bl FUN_0200F348 + ldrb r0, [r0, #1] + cmp r0, #0 + beq _0238AD80 + bl FUN_020582E0 +_0238AD80: + mov r0, r4 + bl FUN_0200F390 + b _0238ADA0 +_0238AD8C: + ldrsh r0, [sp, #0xc] + cmp r0, #0 + beq _0238ADA0 + add r0, sp, #8 + bl FUN_02010260 +_0238ADA0: + ldr r0, _0238B124 @ =0x00003F01 + bl FUN_02017CB4 + mov r0, #8 + bl FUN_02017C50 + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r1, [r0] + ldrb r0, [r1, #0x46] + cmp r0, #0 + moveq r0, #4 + streq r0, [r1, #0x74] + beq _0238AE1C + ldr r1, [r1, #0x3c] + add r0, sp, #0xe + ldrsh r1, [r1, #4] + bl FUN_02052394 + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r0, [r0] + ldr r0, [r0, #0x3c] + ldrsh r0, [r0, #4] + bl FUN_020526C8 + ldr r2, _0238B0CC @ =0x0238CE40 + mov r1, r0 + ldr r0, [r2] + arm_func_end ov16_0238A468 + + arm_func_start ov16_0238ADFC +ov16_0238ADFC: @ 0x0238ADFC + mov r2, #0xa + ldr r0, [r0, #0x3c] + add r0, r0, #0x3a + bl FUN_02025314 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r1, #0x21 + ldr r0, [r0] + str r1, [r0, #0x74] +_0238AE1C: + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r2, _0238B128 @ =0x0000043F + ldr r3, [r0] + mov r1, #8 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238B0C4 +_0238AE3C: + ldrsb r0, [r0, #0xc1] + bl FUN_0202F148 + ldr r0, _0238B0CC @ =0x0238CE40 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0xc1] + bl FUN_020556A8 + bl FUN_0203C7E4 + mov r0, #5 + mov r1, #0 + bl FUN_02039C3C + b _0238B0C4 +_0238AE6C: + bl FUN_0203A638 + b _0238B0C4 +_0238AE74: + mov r1, #5 + str r1, [r0, #0x74] + bl ov16_0238CB98 + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r2, _0238B12C @ =0x0000042D + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238B0C4 +_0238AEA0: + mov r2, #0xb + str r2, [r0, #0x74] + ldr r0, [r1] + mov r1, #0x29 + str r1, [r0, #0x70] + bl ov16_0238CB98 + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r2, _0238B130 @ =0x00000433 + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238B0C4 +_0238AED8: + bl FUN_02310BDC + ldr r0, _0238B0CC @ =0x0238CE40 + mov r1, #0x20 + ldr r0, [r0] + str r1, [r0, #0x74] + bl ov16_0238CB98 + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r2, _0238B134 @ =0x00000447 + ldr r3, [r0] + mov r1, #8 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + ldr r1, _0238B0CC @ =0x0238CE40 + mvn r0, #1 + ldr r1, [r1] + ldrsb r1, [r1, #0xc2] + cmp r1, r0 + bne _0238B0C4 + mov r0, #0 + mov r1, #3 + mov r2, #1 + bl FUN_0202F5AC + ldr r1, _0238B0CC @ =0x0238CE40 + ldr r2, [r1] + strb r0, [r2, #0xc2] + ldr r2, [r1] + ldr r1, [r2, #0x40] + add r0, r2, #0xc8 + add r1, r2, r1, lsl #1 + ldrsh r1, [r1, #0xc] + bl FUN_0204D7D4 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r1, #4 + ldr r0, [r0] + add r0, r0, #0xc8 + bl FUN_0204D804 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0xc8 + bl FUN_0204D7F4 + ldr r0, _0238B0CC @ =0x0238CE40 + ldr r1, [r0] + ldrsb r0, [r1, #0xc2] + add r1, r1, #0xc8 + bl FUN_0202F690 + b _0238B0C4 +_0238AF98: + ldrsb r0, [r0, #0xc1] + bl FUN_0202F148 + ldr r1, _0238B0CC @ =0x0238CE40 + mvn r3, #1 + ldr r2, [r1] + mov r0, #2 + strb r3, [r2, #0xc1] + ldr r3, [r1] + mov r2, #0 + ldr r1, [r3, #0x3c] + add r3, r3, #0xb1 + add r1, r1, #0x3a + bl FUN_020367F0 + b _0238B0C4 +_0238AFD0: + ldr r1, [r0, #0x3c] + add r3, r0, #0xb1 + add r1, r1, #0x3a + mov r0, #2 + mov r2, #0 + bl FUN_020367F0 + b _0238B0C4 +_0238AFEC: + add r0, r0, #0x8d + bl FUN_0203909C + b _0238B0C4 +_0238AFF8: + mov r2, #0x22 + str r2, [r0, #0x74] + ldr r2, [r1] + mov ip, #4 + ldr r0, _0238B0D8 @ =0x0238CDE4 + ldr r1, _0238B0DC @ =0x00300011 + ldr r3, _0238B0EC @ =0x0238CD08 + str ip, [r2, #0x78] + mov ip, #2 + mov r2, #0 + str ip, [sp] + bl FUN_0202B0EC + ldr r1, _0238B0CC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0xc3] + b _0238B0C4 +_0238B038: + mov ip, #0 + mov r3, ip +_0238B040: + ldr r2, [r1] + add r0, r2, r3, lsl #1 + ldrsh r0, [r0, #0xc] + cmp r0, #0 + addne r0, r2, ip, lsl #2 + strne r3, [r0, #0x50] + add r3, r3, #1 + addne ip, ip, #1 + cmp r3, #8 + blt _0238B040 + cmp ip, #2 + bge _0238B088 + ldr r0, _0238B0CC @ =0x0238CE40 + mov r1, #0x17 + ldr r0, [r0] + str r1, [r0, #0x70] + bl ov16_0238B148 + b _0238B0C4 +_0238B088: + ldr r1, _0238B138 @ =0x00000446 + mov r0, #0xf + strh r1, [sp, #0x98] + str r0, [sp, #0x9c] + str ip, [sp] + mov ip, #4 + ldr r0, _0238B13C @ =0x0238CDC4 + ldr r1, _0238B140 @ =0x00009813 + ldr r3, _0238B144 @ =ov16_0238CB30 + add r2, sp, #0x90 + str ip, [sp, #4] + bl FUN_0202BA20 + ldr r1, _0238B0CC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0xc3] +_0238B0C4: + add sp, sp, #0x128 + pop {r3, r4, r5, pc} + .align 2, 0 +_0238B0CC: .4byte 0x0238CE40 +_0238B0D0: .4byte 0x00000431 +_0238B0D4: .4byte 0x00000432 +_0238B0D8: .4byte 0x0238CDE4 +_0238B0DC: .4byte 0x00300011 +_0238B0E0: .4byte 0x0238CD40 +_0238B0E4: .4byte 0x00000442 +_0238B0E8: .4byte 0x00000449 +_0238B0EC: .4byte 0x0238CD08 +_0238B0F0: .4byte 0x00300013 +_0238B0F4: .4byte 0x00000434 +_0238B0F8: .4byte 0x0238CDD4 +_0238B0FC: .4byte 0x0238CD20 +_0238B100: .4byte 0x00000125 +_0238B104: .4byte 0x0000043E +_0238B108: .4byte 0x0000043A +_0238B10C: .4byte 0x0000043C +_0238B110: .4byte 0x0000140F +_0238B114: .4byte 0x020A18C4 +_0238B118: .4byte 0x000003E7 +_0238B11C: .4byte 0x020A18D0 +_0238B120: .4byte 0x020A18E4 +_0238B124: .4byte 0x00003F01 +_0238B128: .4byte 0x0000043F +_0238B12C: .4byte 0x0000042D +_0238B130: .4byte 0x00000433 +_0238B134: .4byte 0x00000447 +_0238B138: .4byte 0x00000446 +_0238B13C: .4byte 0x0238CDC4 +_0238B140: .4byte 0x00009813 +_0238B144: .4byte ov16_0238CB30 + arm_func_end ov16_0238ADFC + + arm_func_start ov16_0238B148 +ov16_0238B148: @ 0x0238B148 + push {r3, r4, r5, lr} + sub sp, sp, #0x128 + ldr r1, _0238C0CC @ =0x0238CE40 + ldr r0, [r1] + ldr r2, [r0, #0x70] + cmp r2, #0x2c + addls pc, pc, r2, lsl #2 + b _0238C0C4 +_0238B168: @ jump table + b _0238B21C @ case 0 + b _0238B274 @ case 1 + b _0238B2D8 @ case 2 + b _0238B344 @ case 3 + b _0238B370 @ case 4 + b _0238C0C4 @ case 5 + b _0238B318 @ case 6 + b _0238B928 @ case 7 + b _0238B95C @ case 8 + b _0238B9C4 @ case 9 + b _0238BEA0 @ case 10 + b _0238BE3C @ case 11 + b _0238BE6C @ case 12 + b _0238B640 @ case 13 + b _0238B614 @ case 14 + b _0238BE74 @ case 15 + b _0238B574 @ case 16 + b _0238B5D8 @ case 17 + b _0238B480 @ case 18 + b _0238B50C @ case 19 + b _0238B440 @ case 20 + b _0238C0C4 @ case 21 + b _0238B730 @ case 22 + b _0238B850 @ case 23 + b _0238C0C4 @ case 24 + b _0238C0C4 @ case 25 + b _0238B668 @ case 26 + b _0238B6F4 @ case 27 + b _0238B9F4 @ case 28 + b _0238BA58 @ case 29 + b _0238BA94 @ case 30 + b _0238BAD8 @ case 31 + b _0238BFF8 @ case 32 + b _0238BED8 @ case 33 + b _0238BF98 @ case 34 + b _0238BFD0 @ case 35 + b _0238C0C4 @ case 36 + b _0238BFEC @ case 37 + b _0238C0C4 @ case 38 + b _0238C038 @ case 39 + b _0238C0C4 @ case 40 + b _0238C0C4 @ case 41 + b _0238C0C4 @ case 42 + b _0238C0C4 @ case 43 + b _0238B424 @ case 44 +_0238B21C: + bl ov16_0238CBD0 + cmp r0, #0 + bne _0238B240 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r1, #0xf + ldr r0, [r0] + str r1, [r0, #0x70] + bl ov16_0238B148 + b _0238C0C4 +_0238B240: + ldr r0, _0238C0CC @ =0x0238CE40 + mov r1, #6 + ldr r0, [r0] + str r1, [r0, #0x74] + bl ov16_0238CB98 + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r2, _0238C0D0 @ =0x00000431 + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238C0C4 +_0238B274: + bl ov16_0238CBD0 + cmp r0, #0 + bne _0238B298 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r1, #0xf + ldr r0, [r0] + str r1, [r0, #0x70] + bl ov16_0238B148 + b _0238C0C4 +_0238B298: + bl ov16_0238CB98 + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl FUN_0202F3A4 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r3, #6 + ldr r1, [r0] + ldr r2, _0238C0D4 @ =0x00000432 + str r3, [r1, #0x74] + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238C0C4 +_0238B2D8: + bl ov16_0238CB98 + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl FUN_0202F3A4 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r3, #1 + ldr r1, [r0] + add r2, r3, #0x440 + str r3, [r1, #0x74] + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238C0C4 +_0238B318: + ldr r0, _0238C0D8 @ =0x0238CDE4 + mov r4, #3 + ldr r1, _0238C0DC @ =0x00300011 + ldr r3, _0238C0E0 @ =0x0238CD40 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238C0CC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0xc3] + b _0238C0C4 +_0238B344: + mov r1, #1 + str r1, [r0, #0x74] + bl ov16_0238CB98 + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r2, _0238C0E4 @ =0x00000442 + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238C0C4 +_0238B370: + mov r1, #5 + str r1, [r0, #0x74] + bl ov16_0238CB98 + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r0, [r0] + ldr r0, [r0, #0x88] + cmp r0, #0 + ble _0238B394 + bl FUN_020572EC +_0238B394: + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r2, [r0] + ldr r1, [r2, #0x88] + cmp r1, #1 + ble _0238B3DC + mov r1, #4 + str r1, [r2, #0x74] + ldr r1, [r0] + ldr r2, _0238C0E8 @ =0x00000449 + ldrsb r0, [r1, #0xc1] + add r3, r1, #0xe8 + mov r1, #0x18 + bl FUN_0202F1B4 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #0x88] + b _0238C0C4 +_0238B3DC: + bl ov16_0238CBD0 + cmp r0, #0 + mov r1, #0x18 + bne _0238B408 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r2, #0x440 + ldr r3, [r0] + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238C0C4 +_0238B408: + ldr r0, _0238C0CC @ =0x0238CE40 + add r2, r1, #0x430 + ldr r3, [r0] + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238C0C4 +_0238B424: + mov r2, #5 + str r2, [r0, #0xd8] + ldr r0, [r1] + mov r1, #1 + str r1, [r0, #0x70] + bl ov16_0238B148 + b _0238C0C4 +_0238B440: + bl ov16_0238CB98 + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl FUN_0202F3A4 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r3, #0x27 + ldr r1, [r0] + rsb r2, r3, #0x460 + str r3, [r1, #0x74] + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238C0C4 +_0238B480: + bl ov16_0238CB98 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r2, #0xa + ldr r0, [r0] + ldr r1, [r0, #0x3c] + add r0, r0, #0x138 + add r1, r1, #0x3a + bl FUN_020251F4 + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r2, [r0] + add r1, r2, #0x138 + str r1, [r2, #0x120] + ldr r2, [r0] + ldr r1, [r2, #0x3c] + ldrsh r1, [r1, #4] + str r1, [r2, #0xe8] + ldr r2, [r0] + ldr r1, [r2, #0x40] + add r1, r2, r1, lsl #1 + ldrsh r1, [r1, #0xc] + str r1, [r2, #0xec] + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl FUN_0202F3A4 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r1, #8 + mov r4, #0x13 + ldr r3, [r0] + add r2, r1, #0x430 + str r4, [r3, #0x74] + ldr r3, [r0] + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238C0C4 +_0238B50C: + ldr r2, [r0, #0x40] + mov r1, #0 + add r0, r0, r2, lsl #1 + ldrsh r0, [r0, #0xc] + bl FUN_02055148 + cmp r0, #0 + ldrne r0, _0238C0CC @ =0x0238CE40 + movne r1, #0x1a + ldreq r0, _0238C0CC @ =0x0238CE40 + moveq r1, #0x1c + ldr r0, [r0] + mov r4, #2 + str r1, [r0, #0x74] + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r3, _0238C0EC @ =0x0238CD08 + ldr r1, [r0] + ldr r0, _0238C0D8 @ =0x0238CDE4 + str r4, [r1, #0x78] + ldr r1, _0238C0F0 @ =0x00300013 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238C0CC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0xc3] + b _0238C0C4 +_0238B574: + bl ov16_0238CB98 + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r2, [r0] + ldrsh r1, [r2, #0x44] + orr r1, r1, #0x20000 + str r1, [r2, #0xe8] + ldr r2, [r0] + ldr r1, [r2, #0x40] + add r1, r2, r1, lsl #1 + ldrsh r1, [r1, #0xc] + str r1, [r2, #0xec] + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl FUN_0202F3A4 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r3, #0x11 + ldr r1, [r0] + ldr r2, _0238C0F4 @ =0x00000434 + str r3, [r1, #0x74] + ldr r3, [r0] + mov r1, #8 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238C0C4 +_0238B5D8: + mov r2, #0x1c + str r2, [r0, #0x74] + ldr r0, [r1] + mov r4, #2 + str r4, [r0, #0x78] + ldr r0, _0238C0D8 @ =0x0238CDE4 + ldr r1, _0238C0F0 @ =0x00300013 + ldr r3, _0238C0EC @ =0x0238CD08 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238C0CC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0xc3] + b _0238C0C4 +_0238B614: + ldr r0, _0238C0F8 @ =0x0238CDD4 + mov r4, #3 + ldr r3, _0238C0FC @ =0x0238CD20 + mov r1, #0x13 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238C0CC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0xc3] + b _0238C0C4 +_0238B640: + ldr r1, [r0, #0x3c] + add r0, sp, #0xb0 + bl FUN_0205B008 + add r0, sp, #0xb0 + mov r1, #3 + bl FUN_0203F150 + ldr r1, _0238C0CC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0xc4] + b _0238C0C4 +_0238B668: + bl ov16_0238CB98 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r2, #0xa + ldr r0, [r0] + ldr r1, [r0, #0x3c] + add r0, r0, #0x138 + add r1, r1, #0x3a + bl FUN_020251F4 + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r2, [r0] + add r1, r2, #0x138 + str r1, [r2, #0x120] + ldr r2, [r0] + ldr r1, [r2, #0x3c] + ldrsh r1, [r1, #4] + str r1, [r2, #0xe8] + ldr r2, [r0] + ldr r1, [r2, #0x40] + add r1, r2, r1, lsl #1 + ldrsh r1, [r1, #0xc] + str r1, [r2, #0xec] + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl FUN_0202F3A4 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r4, #0x1b + ldr r2, [r0] + mov r1, #8 + str r4, [r2, #0x74] + ldr r3, [r0] + add r2, r4, #0x420 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238C0C4 +_0238B6F4: + mov r2, #0x1c + str r2, [r0, #0x74] + ldr r0, [r1] + mov r4, #2 + str r4, [r0, #0x78] + ldr r0, _0238C0D8 @ =0x0238CDE4 + ldr r1, _0238C0F0 @ =0x00300013 + ldr r3, _0238C0EC @ =0x0238CD08 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238C0CC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0xc3] + b _0238C0C4 +_0238B730: + mov r2, #0 + str r2, [r0, #0x40] + ldr r3, [r1] + ldr r0, _0238C100 @ =0x00000125 + ldr r1, [r3, #0x3c] + ldrsh r1, [r1, #4] + cmp r1, r0 + addne r0, r0, #0x258 + cmpne r1, r0 + moveq r0, #0 + beq _0238B7DC + mov r1, r2 +_0238B760: + add r0, r3, r1, lsl #1 + ldrsh r0, [r0, #0xc] + add r1, r1, #1 + cmp r0, #0 + addne r2, r2, #1 + cmp r1, #8 + blt _0238B760 + cmp r2, #1 + bne _0238B7D8 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r3, #0 +_0238B78C: + ldr r2, [r0] + add r1, r2, r3, lsl #1 + ldrsh r1, [r1, #0xc] + cmp r1, #0 + beq _0238B7C4 + strh r1, [r2, #0xc] + ldr r2, [r0] + add r1, r2, r3, lsl #1 + ldrsh r1, [r1, #0x1c] + strh r1, [r2, #0x1c] + ldr r2, [r0] + add r1, r2, r3, lsl #1 + ldrsh r1, [r1, #0x2c] + strh r1, [r2, #0x2c] +_0238B7C4: + add r3, r3, #1 + cmp r3, #8 + blt _0238B78C + mov r0, #1 + b _0238B7DC +_0238B7D8: + mov r0, #2 +_0238B7DC: + cmp r0, #0 + beq _0238B7F0 + cmp r0, #1 + beq _0238B820 + b _0238B838 +_0238B7F0: + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r1, [r0] + ldrsh r0, [r1, #0xc] + cmp r0, #0 + moveq r0, #1 + streq r0, [r1, #0x40] + ldr r0, _0238C0CC @ =0x0238CE40 + mov r1, #0x10 + ldr r0, [r0] + str r1, [r0, #0x70] + bl ov16_0238B148 + b _0238C0C4 +_0238B820: + ldr r0, _0238C0CC @ =0x0238CE40 + mov r1, #0x17 + ldr r0, [r0] + str r1, [r0, #0x70] + bl ov16_0238B148 + b _0238C0C4 +_0238B838: + ldr r0, _0238C0CC @ =0x0238CE40 + mov r1, #0x14 + ldr r0, [r0] + str r1, [r0, #0x70] + bl ov16_0238B148 + b _0238C0C4 +_0238B850: + ldrsh r2, [r0, #0x44] + orr r2, r2, #0x20000 + str r2, [r0, #0xe8] + ldr r2, [r1] + ldr r0, [r2, #0x40] + add r0, r2, r0, lsl #1 + ldrsh r0, [r0, #0xc] + str r0, [r2, #0xec] + ldr r2, [r1] + ldr r0, [r2, #0x40] + add r0, r2, r0, lsl #1 + ldrsh r0, [r0, #0x1c] + str r0, [r2, #0xf8] + ldr r2, [r1] + ldr r0, [r2, #0x40] + add r0, r2, r0, lsl #1 + ldrsh r0, [r0, #0x2c] + str r0, [r2, #0xfc] + ldr r1, [r1] + ldr r0, [r1, #0xf8] + cmp r0, #0 + ldreq r0, [r1, #0xfc] + streq r0, [r1, #0xf8] + ldr r0, _0238C0CC @ =0x0238CE40 + mov r1, #0 + ldr r3, [r0] + ldr r2, [r3, #0x40] + add r0, r3, r2, lsl #1 + ldrsh r0, [r0, #0x1c] + cmp r0, #0 + add r0, r3, r2, lsl #1 + ldrsh r0, [r0, #0x2c] + addne r1, r1, #1 + cmp r0, #0 + addne r1, r1, #1 + cmp r1, #0 + beq _0238B8F8 + cmp r1, #1 + beq _0238B908 + cmp r1, #2 + beq _0238B918 + b _0238C0C4 +_0238B8F8: + mov r0, #0x12 + str r0, [r3, #0x70] + bl ov16_0238B148 + b _0238C0C4 +_0238B908: + mov r0, #7 + str r0, [r3, #0x70] + bl ov16_0238B148 + b _0238C0C4 +_0238B918: + mov r0, #9 + str r0, [r3, #0x70] + bl ov16_0238B148 + b _0238C0C4 +_0238B928: + bl ov16_0238CAE8 + bl ov16_0238CB98 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r3, #8 + ldr r1, [r0] + ldr r2, _0238C104 @ =0x0000043E + str r3, [r1, #0x74] + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238C0C4 +_0238B95C: + ldr r2, [r0, #0x40] + mov r1, #0 + add r0, r0, r2, lsl #1 + ldrsh r0, [r0, #0xc] + bl FUN_02055148 + cmp r0, #0 + ldrne r0, _0238C0CC @ =0x0238CE40 + movne r1, #0x1a + ldreq r0, _0238C0CC @ =0x0238CE40 + moveq r1, #0x1c + ldr r0, [r0] + mov r4, #2 + str r1, [r0, #0x74] + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r3, _0238C0EC @ =0x0238CD08 + ldr r1, [r0] + ldr r0, _0238C0D8 @ =0x0238CDE4 + str r4, [r1, #0x78] + ldr r1, _0238C0F0 @ =0x00300013 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238C0CC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0xc3] + b _0238C0C4 +_0238B9C4: + bl ov16_0238CB98 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r3, #8 + ldr r1, [r0] + ldr r2, _0238C108 @ =0x0000043A + str r3, [r1, #0x74] + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238C0C4 +_0238B9F4: + ldrsb r0, [r0, #0xc1] + bl FUN_0202F2C4 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r3, #0x14 + ldr r1, [r0] + mov r2, #3 + str r3, [r1, #0xe4] + ldr r1, [r0] + mov r3, #0 + str r2, [r1, #0xd8] + ldr r4, [r0] + mov r1, #0x1d + ldr r2, [r4, #0x3c] + ldrsh r2, [r2, #4] + strh r2, [r4, #0xdc] + ldr r4, [r0] + ldr r2, [r4, #0x40] + add r2, r4, r2, lsl #1 + ldrsh r2, [r2, #0xc] + strh r2, [r4, #0xde] + ldr r2, [r0] + str r3, [r2, #0xe0] + ldr r0, [r0] + str r1, [r0, #0x74] + b _0238C0C4 +_0238BA58: + ldrsh r3, [r0, #0x44] + mov r2, #0x1e + orr r3, r3, #0x20000 + str r3, [r0, #0xe8] + ldr r0, [r1] + str r2, [r0, #0x74] + bl ov16_0238CB98 + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r2, _0238C10C @ =0x0000043C + ldr r3, [r0] + mov r1, #8 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238C0C4 +_0238BA94: + mov r1, #0x1f + str r1, [r0, #0x74] + bl ov16_0238CB98 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r2, #3 + ldr r1, [r0] + ldr r3, _0238C110 @ =0x0000140F + str r2, [r1, #0xe0] + ldr r1, [r0] + rsb r2, r2, #0x440 + str r3, [r1, #0x10c] + ldr r3, [r0] + mov r1, #8 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238C0C4 +_0238BAD8: + bl ov16_0238CB98 + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r2, [r0] + ldr r1, [r2, #0x3c] + ldrsh r1, [r1, #4] + str r1, [r2, #0xe8] + ldr r0, [r0] + ldr r0, [r0, #0x3c] + bl FUN_02056070 + ldr r1, _0238C0CC @ =0x0238CE40 + mov r2, #1 + ldr r3, [r1] + strb r0, [r3, #0x46] + ldr r0, [r1] + strb r2, [r0] + bl FUN_0204FCDC + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r1, [r0] + ldr r0, [r1, #0x40] + add r0, r1, r0, lsl #1 + ldrsh r0, [r0, #0xc] + bl FUN_0204FDFC + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r0, [r0] + ldrsh r0, [r0, #0x44] + bl FUN_02056410 + cmp r0, #0 + beq _0238BB84 + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r0, [r0] + ldrsh r0, [r0, #0x44] + bl FUN_020564B0 + ldr r1, _0238C0CC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0x8c] + bl FUN_02056AB0 + cmp r0, #0 + ldr r0, _0238C0CC @ =0x0238CE40 + movne r1, #2 + ldr r0, [r0] + moveq r1, #1 + str r1, [r0, #0x88] + b _0238BB9C +_0238BB84: + ldr r0, _0238C0CC @ =0x0238CE40 + mov r2, #0 + ldr r1, [r0] + strb r2, [r1, #0x8c] + ldr r0, [r0] + str r2, [r0, #0x88] +_0238BB9C: + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r2, [r0] + ldr r1, [r2, #0x40] + add r0, r2, #0x44 + add r1, r2, r1, lsl #1 + ldrsh r1, [r1, #0xc] + bl FUN_0205A288 + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r0, [r0] + ldrsh r0, [r0, #0x44] + bl ov16_0238CC64 + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r0, [r0] + ldrb r0, [r0, #0x8c] + cmp r0, #0 + beq _0238BBF4 + bl FUN_02056880 + bl FUN_0205638C + ldr r1, _0238C0CC @ =0x0238CE40 + ldr r1, [r1] + ldrsh r1, [r1, #0x44] + strh r1, [r0, #8] +_0238BBF4: + ldr r1, _0238C0CC @ =0x0238CE40 + ldr r0, _0238C114 @ =0x020A18C4 + ldr r3, [r1] + ldrsh r2, [r0] + ldr r4, [r3, #0x3c] + ldr r0, _0238C118 @ =0x000003E7 + ldrsh r3, [r4, #0xa] + add r2, r3, r2 + strh r2, [r4, #0xa] + ldr r1, [r1] + ldr r3, _0238C11C @ =0x020A18D0 + ldr r2, [r1, #0x3c] + ldrsh r1, [r2, #0xa] + cmp r1, r0 + strhgt r0, [r2, #0xa] + ldr r1, _0238C0CC @ =0x0238CE40 + ldr r0, _0238C120 @ =0x020A18E4 + ldr r1, [r1] + ldrsh r5, [r0] + ldr r1, [r1, #0x3c] + ldrsh r2, [r0, #2] + ldrb ip, [r1, #0xc] + ldrb r4, [r1, #0xd] + ldrb lr, [r1, #0xf] + add r0, ip, r5 + add r2, r4, r2 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + ldrsh ip, [r3, #2] + cmp r0, #0xff + ldrb r5, [r1, #0xe] + ldrsh r4, [r3] + movgt r0, #0xff + strb r0, [r1, #0xc] + add r3, r5, r4 + lsl r2, r2, #0x10 + asr r4, r2, #0x10 + ldr r2, _0238C0CC @ =0x0238CE40 + cmp r4, #0xff + ldr r1, [r2] + lsl r3, r3, #0x10 + add ip, lr, ip + lsl ip, ip, #0x10 + ldr r1, [r1, #0x3c] + movgt r4, #0xff + strb r4, [r1, #0xd] + ldr r1, [r2] + asr r3, r3, #0x10 + cmp r3, #0xff + ldr r1, [r1, #0x3c] + movgt r3, #0xff + strb r3, [r1, #0xe] + ldr r1, [r2] + asr r5, ip, #0x10 + cmp r5, #0xff + ldr r1, [r1, #0x3c] + movgt r5, #0xff + strb r5, [r1, #0xf] + mov r0, #0 + ldr r1, [r2] + strh r0, [sp, #0xa] + ldr r0, [r1, #0x40] + add r0, r1, r0, lsl #1 + ldrsh r0, [r0, #0x1c] + strh r0, [sp, #0xc] + bl FUN_0200F26C + mov r4, r0 + mvn r1, #0 + cmp r4, r1 + beq _0238BD2C + bl FUN_0200F348 + ldrb r0, [r0, #1] + cmp r0, #0 + beq _0238BD20 + bl FUN_020582E0 +_0238BD20: + mov r0, r4 + bl FUN_0200F390 + b _0238BD40 +_0238BD2C: + ldrsh r0, [sp, #0xc] + cmp r0, #0 + beq _0238BD40 + add r0, sp, #8 + bl FUN_02010260 +_0238BD40: + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r1, [r0] + ldr r0, [r1, #0x40] + add r0, r1, r0, lsl #1 + ldrsh r0, [r0, #0x2c] + strh r0, [sp, #0xc] + bl FUN_0200F26C + mov r4, r0 + mvn r1, #0 + cmp r4, r1 + beq _0238BD8C + bl FUN_0200F348 + ldrb r0, [r0, #1] + cmp r0, #0 + beq _0238BD80 + bl FUN_020582E0 +_0238BD80: + mov r0, r4 + bl FUN_0200F390 + b _0238BDA0 +_0238BD8C: + ldrsh r0, [sp, #0xc] + cmp r0, #0 + beq _0238BDA0 + add r0, sp, #8 + bl FUN_02010260 +_0238BDA0: + ldr r0, _0238C124 @ =0x00003F01 + bl FUN_02017CB4 + mov r0, #8 + bl FUN_02017C50 + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r1, [r0] + ldrb r0, [r1, #0x46] + cmp r0, #0 + moveq r0, #4 + streq r0, [r1, #0x74] + beq _0238BE1C + ldr r1, [r1, #0x3c] + add r0, sp, #0xe + ldrsh r1, [r1, #4] + bl FUN_02052394 + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r0, [r0] + ldr r0, [r0, #0x3c] + ldrsh r0, [r0, #4] + bl FUN_020526C8 + ldr r2, _0238C0CC @ =0x0238CE40 + mov r1, r0 + ldr r0, [r2] + mov r2, #0xa + ldr r0, [r0, #0x3c] + add r0, r0, #0x3a + bl FUN_02025314 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r1, #0x21 + ldr r0, [r0] + str r1, [r0, #0x74] +_0238BE1C: + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r2, _0238C128 @ =0x0000043F + ldr r3, [r0] + mov r1, #8 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238C0C4 +_0238BE3C: + ldrsb r0, [r0, #0xc1] + bl FUN_0202F148 + ldr r0, _0238C0CC @ =0x0238CE40 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0xc1] + bl FUN_020556A8 + bl FUN_0203C7E4 + mov r0, #5 + mov r1, #0 + bl FUN_02039C3C + b _0238C0C4 +_0238BE6C: + bl FUN_0203A638 + b _0238C0C4 +_0238BE74: + mov r1, #5 + str r1, [r0, #0x74] + bl ov16_0238CB98 + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r2, _0238C12C @ =0x0000042D + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238C0C4 +_0238BEA0: + mov r2, #0xb + str r2, [r0, #0x74] + ldr r0, [r1] + mov r1, #0x29 + str r1, [r0, #0x70] + bl ov16_0238CB98 + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r2, _0238C130 @ =0x00000433 + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + b _0238C0C4 +_0238BED8: + bl FUN_02310BDC + ldr r0, _0238C0CC @ =0x0238CE40 + mov r1, #0x20 + ldr r0, [r0] + str r1, [r0, #0x74] + bl ov16_0238CB98 + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r2, _0238C134 @ =0x00000447 + ldr r3, [r0] + mov r1, #8 + ldrsb r0, [r3, #0xc1] + add r3, r3, #0xe8 + bl FUN_0202F1B4 + ldr r1, _0238C0CC @ =0x0238CE40 + mvn r0, #1 + ldr r1, [r1] + ldrsb r1, [r1, #0xc2] + cmp r1, r0 + bne _0238C0C4 + mov r0, #0 + mov r1, #3 + mov r2, #1 + bl FUN_0202F5AC + ldr r1, _0238C0CC @ =0x0238CE40 + ldr r2, [r1] + strb r0, [r2, #0xc2] + ldr r2, [r1] + ldr r1, [r2, #0x40] + add r0, r2, #0xc8 + add r1, r2, r1, lsl #1 + ldrsh r1, [r1, #0xc] + bl FUN_0204D7D4 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r1, #4 + ldr r0, [r0] + add r0, r0, #0xc8 + bl FUN_0204D804 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0xc8 + bl FUN_0204D7F4 + ldr r0, _0238C0CC @ =0x0238CE40 + ldr r1, [r0] + ldrsb r0, [r1, #0xc2] + add r1, r1, #0xc8 + bl FUN_0202F690 + b _0238C0C4 +_0238BF98: + ldrsb r0, [r0, #0xc1] + bl FUN_0202F148 + ldr r1, _0238C0CC @ =0x0238CE40 + mvn r3, #1 + ldr r2, [r1] + mov r0, #2 + strb r3, [r2, #0xc1] + ldr r3, [r1] + mov r2, #0 + ldr r1, [r3, #0x3c] + add r3, r3, #0xb1 + add r1, r1, #0x3a + bl FUN_020367F0 + b _0238C0C4 +_0238BFD0: + ldr r1, [r0, #0x3c] + add r3, r0, #0xb1 + add r1, r1, #0x3a + mov r0, #2 + mov r2, #0 + bl FUN_020367F0 + b _0238C0C4 +_0238BFEC: + add r0, r0, #0x8d + bl FUN_0203909C + b _0238C0C4 +_0238BFF8: + mov r2, #0x22 + str r2, [r0, #0x74] + ldr r2, [r1] + mov ip, #4 + ldr r0, _0238C0D8 @ =0x0238CDE4 + ldr r1, _0238C0DC @ =0x00300011 + ldr r3, _0238C0EC @ =0x0238CD08 + str ip, [r2, #0x78] + mov ip, #2 + mov r2, #0 + str ip, [sp] + bl FUN_0202B0EC + ldr r1, _0238C0CC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0xc3] + b _0238C0C4 +_0238C038: + mov ip, #0 + mov r3, ip +_0238C040: + ldr r2, [r1] + add r0, r2, r3, lsl #1 + ldrsh r0, [r0, #0xc] + cmp r0, #0 + addne r0, r2, ip, lsl #2 + strne r3, [r0, #0x50] + add r3, r3, #1 + addne ip, ip, #1 + cmp r3, #8 + blt _0238C040 + cmp ip, #2 + bge _0238C088 + ldr r0, _0238C0CC @ =0x0238CE40 + mov r1, #0x17 + ldr r0, [r0] + str r1, [r0, #0x70] + bl ov16_0238B148 + b _0238C0C4 +_0238C088: + ldr r1, _0238C138 @ =0x00000446 + mov r0, #0xf + strh r1, [sp, #0x20] + str r0, [sp, #0x24] + str ip, [sp] + mov ip, #4 + ldr r0, _0238C13C @ =0x0238CDC4 + ldr r1, _0238C140 @ =0x00009813 + ldr r3, _0238C144 @ =ov16_0238CB30 + add r2, sp, #0x18 + str ip, [sp, #4] + bl FUN_0202BA20 + ldr r1, _0238C0CC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0xc3] +_0238C0C4: + add sp, sp, #0x128 + pop {r3, r4, r5, pc} + .align 2, 0 +_0238C0CC: .4byte 0x0238CE40 +_0238C0D0: .4byte 0x00000431 +_0238C0D4: .4byte 0x00000432 +_0238C0D8: .4byte 0x0238CDE4 +_0238C0DC: .4byte 0x00300011 +_0238C0E0: .4byte 0x0238CD40 +_0238C0E4: .4byte 0x00000442 +_0238C0E8: .4byte 0x00000449 +_0238C0EC: .4byte 0x0238CD08 +_0238C0F0: .4byte 0x00300013 +_0238C0F4: .4byte 0x00000434 +_0238C0F8: .4byte 0x0238CDD4 +_0238C0FC: .4byte 0x0238CD20 +_0238C100: .4byte 0x00000125 +_0238C104: .4byte 0x0000043E +_0238C108: .4byte 0x0000043A +_0238C10C: .4byte 0x0000043C +_0238C110: .4byte 0x0000140F +_0238C114: .4byte 0x020A18C4 +_0238C118: .4byte 0x000003E7 +_0238C11C: .4byte 0x020A18D0 +_0238C120: .4byte 0x020A18E4 +_0238C124: .4byte 0x00003F01 +_0238C128: .4byte 0x0000043F +_0238C12C: .4byte 0x0000042D +_0238C130: .4byte 0x00000433 +_0238C134: .4byte 0x00000447 +_0238C138: .4byte 0x00000446 +_0238C13C: .4byte 0x0238CDC4 +_0238C140: .4byte 0x00009813 +_0238C144: .4byte ov16_0238CB30 + arm_func_end ov16_0238B148 + + arm_func_start ov16_0238C148 +ov16_0238C148: @ 0x0238C148 + push {r3, lr} + ldr r0, _0238C1C8 @ =0x0238CE40 + ldr r0, [r0] + cmp r0, #0 + bne _0238C170 + mov r0, #0x150 + mov r1, #8 + bl FUN_02001170 + ldr r1, _0238C1C8 @ =0x0238CE40 + str r0, [r1] +_0238C170: + ldr r0, _0238C1C8 @ =0x0238CE40 + ldr r0, [r0] + add r0, r0, #0xe8 + bl FUN_02023690 + ldr r1, _0238C1C8 @ =0x0238CE40 + mov r0, #0 + ldr r2, [r1] + sub r3, r0, #2 + str r0, [r2, #0x134] + ldr r2, [r1] + str r0, [r2, #0xe8] + ldr r2, [r1] + str r0, [r2, #0xd8] + ldr r2, [r1] + strb r3, [r2, #0xc1] + ldr r2, [r1] + strb r3, [r2, #0xc2] + ldr r1, [r1] + strb r3, [r1, #0xc3] + bl ov16_0238A140 + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0238C1C8: .4byte 0x0238CE40 + arm_func_end ov16_0238C148 + + arm_func_start ov16_0238C1CC +ov16_0238C1CC: @ 0x0238C1CC + push {r3, lr} + ldr r0, _0238C1F4 @ =0x0238CE40 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0238C1F4 @ =0x0238CE40 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0238C1F4: .4byte 0x0238CE40 + arm_func_end ov16_0238C1CC +_0238C1F8: + .byte 0x18, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0xD4, 0x08, 0x9F, 0xE5, 0x00, 0x30, 0x90, 0xE5, 0xD8, 0x10, 0x93, 0xE5, 0x07, 0x00, 0x51, 0xE3 + .byte 0x01, 0xF1, 0x8F, 0x90, 0x2D, 0x02, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x00, 0xEA + .byte 0x06, 0x02, 0x00, 0xEA, 0x0C, 0x02, 0x00, 0xEA, 0x15, 0x02, 0x00, 0xEA, 0x1E, 0x02, 0x00, 0xEA + .byte 0xED, 0x01, 0x00, 0xEA, 0xFD, 0x01, 0x00, 0xEA, 0x0A, 0x6B, 0xFD, 0xEB, 0x98, 0x08, 0x9F, 0xE5 + .byte 0x02, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD8, 0x10, 0x80, 0xE5, 0x1F, 0x02, 0x00, 0xEA + .byte 0x70, 0x10, 0x93, 0xE5, 0x29, 0x00, 0x51, 0xE3, 0x01, 0xF1, 0x8F, 0x90, 0xC2, 0x01, 0x00, 0xEA + .byte 0xC1, 0x01, 0x00, 0xEA, 0xC0, 0x01, 0x00, 0xEA, 0xBF, 0x01, 0x00, 0xEA, 0xBE, 0x01, 0x00, 0xEA + .byte 0xBD, 0x01, 0x00, 0xEA, 0x7E, 0x01, 0x00, 0xEA, 0x22, 0x00, 0x00, 0xEA, 0xBA, 0x01, 0x00, 0xEA + .byte 0x02, 0x01, 0x00, 0xEA, 0xB8, 0x01, 0x00, 0xEA, 0xB7, 0x01, 0x00, 0xEA, 0x3B, 0x00, 0x00, 0xEA + .byte 0x3A, 0x00, 0x00, 0xEA, 0xDE, 0x00, 0x00, 0xEA, 0xB3, 0x00, 0x00, 0xEA, 0xB2, 0x01, 0x00, 0xEA + .byte 0xB1, 0x01, 0x00, 0xEA, 0xF9, 0x00, 0x00, 0xEA, 0xAF, 0x01, 0x00, 0xEA, 0xF7, 0x00, 0x00, 0xEA + .byte 0xAD, 0x01, 0x00, 0xEA, 0xAC, 0x01, 0x00, 0xEA, 0xAB, 0x01, 0x00, 0xEA, 0xAA, 0x01, 0x00, 0xEA + .byte 0x77, 0x00, 0x00, 0xEA, 0x94, 0x00, 0x00, 0xEA, 0xA7, 0x01, 0x00, 0xEA, 0xEF, 0x00, 0x00, 0xEA + .byte 0xE5, 0x00, 0x00, 0xEA, 0xA4, 0x01, 0x00, 0xEA, 0xA3, 0x01, 0x00, 0xEA, 0xA2, 0x01, 0x00, 0xEA + .byte 0xEA, 0x00, 0x00, 0xEA, 0xA0, 0x01, 0x00, 0xEA, 0x20, 0x01, 0x00, 0xEA, 0x1F, 0x01, 0x00, 0xEA + .byte 0x38, 0x01, 0x00, 0xEA, 0x3D, 0x01, 0x00, 0xEA, 0x55, 0x01, 0x00, 0xEA, 0x6E, 0x01, 0x00, 0xEA + .byte 0x99, 0x01, 0x00, 0xEA, 0x5C, 0x01, 0x00, 0xEA, 0xD3, 0x0C, 0xD3, 0xE1, 0x9A, 0x7C, 0xF2, 0xEB + .byte 0x01, 0x00, 0x50, 0xE3, 0xC0, 0x17, 0x9F, 0x15, 0x00, 0x10, 0x91, 0x15, 0x7C, 0x00, 0x81, 0x15 + .byte 0x01, 0x00, 0x50, 0xE3, 0x11, 0x00, 0x00, 0x0A, 0x02, 0x00, 0x50, 0xE3, 0x0B, 0x00, 0x00, 0x0A + .byte 0x03, 0x00, 0x50, 0xE3, 0x9D, 0x01, 0x00, 0x1A, 0xEA, 0x01, 0x00, 0xEB, 0x23, 0x02, 0x00, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0x0F, 0x00, 0xA0, 0xE3, 0x7B, 0xF7, 0xFF, 0xEB + .byte 0x96, 0x01, 0x00, 0xEA, 0x0A, 0x00, 0xA0, 0xE3, 0x78, 0xF7, 0xFF, 0xEB, 0x93, 0x01, 0x00, 0xEA + .byte 0xE0, 0x01, 0x00, 0xEB, 0x03, 0x00, 0xA0, 0xE3, 0x74, 0xF7, 0xFF, 0xEB, 0x8F, 0x01, 0x00, 0xEA + .byte 0xDC, 0x01, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x70, 0xF7, 0xFF, 0xEB, 0x8B, 0x01, 0x00, 0xEA + .byte 0x97, 0xC1, 0xF2, 0xEB, 0x87, 0xB8, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x1D, 0x00, 0x00, 0x0A + .byte 0x95, 0xB9, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x84, 0x01, 0x00, 0x0A, 0x00, 0x10, 0x8D, 0xE2 + .byte 0x00, 0x00, 0xA0, 0xE3, 0xAC, 0xE7, 0xF1, 0xEB, 0xB0, 0x00, 0xDD, 0xE1, 0x08, 0x00, 0x10, 0xE3 + .byte 0x7E, 0x01, 0x00, 0x0A, 0xBD, 0xB9, 0xF2, 0xEB, 0x1C, 0x17, 0x9F, 0xE5, 0x00, 0x08, 0xA0, 0xE1 + .byte 0x00, 0x10, 0x91, 0xE5, 0x40, 0x08, 0xA0, 0xE1, 0xB4, 0x04, 0xC1, 0xE1, 0x24, 0x02, 0x00, 0xEB + .byte 0x08, 0x07, 0x9F, 0xE5, 0x01, 0x1C, 0xA0, 0xE3, 0x25, 0x2E, 0xF2, 0xEB, 0x83, 0xB8, 0xF2, 0xEB + .byte 0xF4, 0x06, 0x9F, 0xE5, 0x0A, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x0D, 0x20, 0xA0, 0xE3 + .byte 0x78, 0x30, 0x81, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x19, 0x00, 0xA0, 0xE3, 0x74, 0x20, 0x81, 0xE5 + .byte 0x4E, 0xF7, 0xFF, 0xEB, 0x69, 0x01, 0x00, 0xEA, 0x84, 0xB9, 0xF2, 0xEB, 0x00, 0x10, 0xE0, 0xE3 + .byte 0x01, 0x00, 0x50, 0xE1, 0x0B, 0x00, 0x00, 0x1A, 0x3F, 0xB8, 0xF2, 0xEB, 0x14, 0xC1, 0xF2, 0xEB + .byte 0xB4, 0x06, 0x9F, 0xE5, 0x0A, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x02, 0x20, 0xA0, 0xE3 + .byte 0x78, 0x30, 0x81, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x18, 0x00, 0xA0, 0xE3, 0x74, 0x20, 0x81, 0xE5 + .byte 0x3E, 0xF7, 0xFF, 0xEB, 0x59, 0x01, 0x00, 0xEA, 0x8C, 0x16, 0x9F, 0xE5, 0x00, 0x08, 0xA0, 0xE1 + .byte 0x00, 0x10, 0x91, 0xE5, 0x40, 0x08, 0xA0, 0xE1, 0xB4, 0x04, 0xC1, 0xE1, 0x00, 0x02, 0x00, 0xEB + .byte 0x79, 0xD7, 0xF1, 0xEB, 0x64, 0x10, 0xA0, 0xE3, 0x8D, 0x0E, 0xF4, 0xEB, 0x68, 0x06, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x90, 0xE5, 0x06, 0x10, 0xC2, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x3C, 0x00, 0x91, 0xE5 + .byte 0x02, 0x10, 0x81, 0xE2, 0xA3, 0x35, 0xF3, 0xEB, 0x4C, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xF4, 0x04, 0xD0, 0xE1, 0xF2, 0x01, 0x00, 0xEB, 0x0E, 0x00, 0xA0, 0xE3, 0x27, 0xF7, 0xFF, 0xEB + .byte 0x42, 0x01, 0x00, 0xEA, 0x4E, 0xC1, 0xF2, 0xEB, 0x2C, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x78, 0x00, 0x90, 0xE5, 0x05, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x1A, 0x16, 0xB8, 0xF2, 0xEB + .byte 0xEB, 0xC0, 0xF2, 0xEB, 0x10, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x78, 0x00, 0x90, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0x1A, 0x00, 0xC1, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x02, 0x00, 0x00, 0x0A, 0xF8, 0x05, 0x9F, 0xE5, 0x43, 0xFF, 0xF1, 0xEB, 0x2F, 0x01, 0x00, 0xEA + .byte 0x12, 0xC1, 0xF2, 0xEB, 0xE0, 0x05, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x74, 0x00, 0x90, 0xE5 + .byte 0x0E, 0xF7, 0xFF, 0xEB, 0xD0, 0x05, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x78, 0x00, 0x91, 0xE5 + .byte 0x01, 0x00, 0x40, 0xE2, 0x78, 0x00, 0x81, 0xE5, 0x24, 0x01, 0x00, 0xEA, 0x30, 0xC1, 0xF2, 0xEB + .byte 0xB4, 0x05, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x78, 0x00, 0x90, 0xE5, 0x05, 0x00, 0x50, 0xE3 + .byte 0x00, 0x00, 0x00, 0x1A, 0x37, 0xB8, 0xF2, 0xEB, 0x9C, 0x05, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5 + .byte 0x78, 0x00, 0x91, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x1A, 0x74, 0x00, 0x91, 0xE5 + .byte 0xFA, 0xF6, 0xFF, 0xEB, 0x80, 0x05, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x78, 0x00, 0x91, 0xE5 + .byte 0x01, 0x00, 0x40, 0xE2, 0x78, 0x00, 0x81, 0xE5, 0x10, 0x01, 0x00, 0xEA, 0xD3, 0x0C, 0xD3, 0xE1 + .byte 0x01, 0x7C, 0xF2, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0x19, 0xC1, 0xF2, 0xEB, 0x01, 0x00, 0x54, 0xE3 + .byte 0x1C, 0x00, 0x00, 0x0A, 0x03, 0x00, 0x54, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x54, 0xE3 + .byte 0x0D, 0x00, 0x00, 0x0A, 0x05, 0x01, 0x00, 0xEA, 0x52, 0x01, 0x00, 0xEB, 0xDE, 0xB7, 0xF2, 0xEB + .byte 0xB3, 0xC0, 0xF2, 0xEB, 0x30, 0x05, 0x9F, 0xE5, 0x0A, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5 + .byte 0x16, 0x20, 0xA0, 0xE3, 0x78, 0x30, 0x81, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x18, 0x00, 0xA0, 0xE3 + .byte 0x74, 0x20, 0x81, 0xE5, 0xDD, 0xF6, 0xFF, 0xEB, 0xF8, 0x00, 0x00, 0xEA, 0x45, 0x01, 0x00, 0xEB + .byte 0x04, 0x05, 0x9F, 0xE5, 0x0A, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x0D, 0x20, 0xA0, 0xE3 + .byte 0x78, 0x30, 0x81, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x19, 0x00, 0xA0, 0xE3, 0x74, 0x20, 0x81, 0xE5 + .byte 0xD2, 0xF6, 0xFF, 0xEB, 0xED, 0x00, 0x00, 0xEA, 0x3A, 0x01, 0x00, 0xEB, 0xD8, 0x04, 0x9F, 0xE5 + .byte 0x0B, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x70, 0x10, 0x80, 0xE5, 0x09, 0xB8, 0xF2, 0xEB + .byte 0xE6, 0x00, 0x00, 0xEA, 0x5F, 0xCB, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0xE3, 0x00, 0x00, 0x1A + .byte 0xB4, 0x04, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD4, 0x0C, 0xD0, 0xE1, 0x4E, 0x6F, 0xF2, 0xEB + .byte 0xD6, 0xCC, 0xF2, 0xEB, 0xA0, 0x04, 0x9F, 0xE5, 0x01, 0x30, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5 + .byte 0x03, 0x20, 0xA0, 0xE3, 0xC4, 0x30, 0xC1, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x0C, 0x30, 0xA0, 0xE3 + .byte 0xE4, 0x20, 0x81, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x1C, 0x10, 0xA0, 0xE3, 0x74, 0x30, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x70, 0x10, 0x80, 0xE5, 0xD0, 0x00, 0x00, 0xEA, 0xE4, 0x20, 0x93, 0xE5 + .byte 0x01, 0x10, 0x42, 0xE2, 0xE4, 0x10, 0x83, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0xCB, 0x00, 0x00, 0x1A + .byte 0x00, 0x00, 0x90, 0xE5, 0x74, 0x00, 0x90, 0xE5, 0xAC, 0xF6, 0xFF, 0xEB, 0xC7, 0x00, 0x00, 0xEA + .byte 0xD3, 0x0C, 0xD3, 0xE1, 0x95, 0x7B, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xC3, 0x00, 0x00, 0x1A + .byte 0x34, 0x04, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD3, 0x0C, 0xD0, 0xE1, 0xB2, 0x7B, 0xF2, 0xEB + .byte 0x24, 0x14, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5, 0x01, 0x10, 0xE0, 0xE3 + .byte 0xD2, 0x0C, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x04, 0x00, 0x00, 0x0A, 0xDF, 0x8B, 0xF2, 0xEB + .byte 0x04, 0x04, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xC2, 0x10, 0xC0, 0xE5 + .byte 0x01, 0x00, 0x54, 0xE3, 0x11, 0x00, 0x00, 0x0A, 0x06, 0x00, 0x54, 0xE3, 0x02, 0x00, 0x00, 0x0A + .byte 0x07, 0x00, 0x54, 0xE3, 0x0D, 0x00, 0x00, 0x0A, 0xAC, 0x00, 0x00, 0xEA, 0xF9, 0x00, 0x00, 0xEB + .byte 0xD4, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x0C, 0xD0, 0xE1, 0xEC, 0x8A, 0xF2, 0xEB + .byte 0xC4, 0x03, 0x9F, 0xE5, 0x0A, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x1C, 0x10, 0xA0, 0xE3 + .byte 0xE4, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x70, 0x10, 0x80, 0xE5, 0x9F, 0x00, 0x00, 0xEA + .byte 0xEC, 0x00, 0x00, 0xEB, 0xA0, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x0C, 0xD0, 0xE1 + .byte 0xDF, 0x8A, 0xF2, 0xEB, 0x90, 0x03, 0x9F, 0xE5, 0x0A, 0x30, 0xA0, 0xE3, 0x00, 0x40, 0x90, 0xE5 + .byte 0x1C, 0x10, 0xA0, 0xE3, 0x78, 0x20, 0x94, 0xE5, 0x74, 0x20, 0x84, 0xE5, 0x00, 0x20, 0x90, 0xE5 + .byte 0xE4, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x70, 0x10, 0x80, 0xE5, 0x8F, 0x00, 0x00, 0xEA + .byte 0x57, 0xA9, 0xF2, 0xEB, 0x03, 0x00, 0x50, 0xE3, 0x8C, 0x00, 0x00, 0x1A, 0x76, 0xAB, 0xF2, 0xEB + .byte 0x54, 0x13, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5, 0x04, 0x10, 0xA0, 0xE1 + .byte 0x8D, 0x00, 0x80, 0xE2, 0x10, 0x20, 0xA0, 0xE3, 0x95, 0x62, 0xF2, 0xEB, 0x38, 0x03, 0x9F, 0xE5 + .byte 0x04, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0x90, 0xE5, 0xA1, 0x00, 0x80, 0xE2, 0x53, 0x62, 0xF2, 0xEB + .byte 0x24, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x3C, 0x00, 0x90, 0xE5, 0x2B, 0x26, 0xF3, 0xEB + .byte 0x14, 0x13, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x46, 0x00, 0xC1, 0xE5, 0x24, 0x00, 0xA0, 0xE3 + .byte 0x5A, 0xF6, 0xFF, 0xEB, 0x75, 0x00, 0x00, 0xEA, 0x22, 0xAB, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x72, 0x00, 0x00, 0x0A, 0x25, 0x00, 0xA0, 0xE3, 0x54, 0xF6, 0xFF, 0xEB, 0x6F, 0x00, 0x00, 0xEA + .byte 0xC9, 0xB2, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x00, 0x1A, 0xD8, 0x02, 0x9F, 0xE5 + .byte 0x04, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x0A, 0x20, 0xA0, 0xE3, 0x78, 0x30, 0x81, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x3C, 0x00, 0x91, 0xE5, 0xA1, 0x10, 0x81, 0xE2, 0x3A, 0x00, 0x80, 0xE2 + .byte 0x3D, 0x62, 0xF2, 0xEB, 0x26, 0x00, 0xA0, 0xE3, 0x44, 0xF6, 0xFF, 0xEB, 0x5F, 0x00, 0x00, 0xEA + .byte 0x01, 0x00, 0x50, 0xE3, 0x5D, 0x00, 0x00, 0x1A, 0x9C, 0x02, 0x9F, 0xE5, 0x23, 0x20, 0xA0, 0xE3 + .byte 0x00, 0x10, 0x90, 0xE5, 0x26, 0x00, 0xA0, 0xE3, 0x78, 0x20, 0x81, 0xE5, 0x3B, 0xF6, 0xFF, 0xEB + .byte 0x56, 0x00, 0x00, 0xEA, 0x6F, 0xB2, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x53, 0x00, 0x00, 0x0A + .byte 0x74, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x78, 0x00, 0x90, 0xE5, 0x33, 0xF6, 0xFF, 0xEB + .byte 0x4E, 0x00, 0x00, 0xEA, 0x03, 0x00, 0xA0, 0xE3, 0x4D, 0x00, 0x00, 0xEA, 0xD1, 0x0C, 0xD3, 0xE1 + .byte 0x3E, 0x8A, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x48, 0x00, 0x00, 0x1A, 0x48, 0x02, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x0C, 0xD0, 0xE1, 0xC1, 0x8A, 0xF2, 0xEB, 0x38, 0x02, 0x9F, 0xE5 + .byte 0x2B, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x70, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD1, 0x0C, 0xD0, 0xE1, 0x82, 0x8A, 0xF2, 0xEB, 0x3C, 0x00, 0x00, 0xEA, 0xD3, 0x0C, 0xD3, 0xE1 + .byte 0x05, 0x7D, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x38, 0x00, 0x00, 0x1A, 0x08, 0x02, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0xD3, 0x0C, 0xD0, 0xE1, 0x0C, 0x7D, 0xF2, 0xEB, 0x00, 0x40, 0xA0, 0xE1 + .byte 0x00, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x54, 0xE1, 0x0A, 0x00, 0x00, 0x1A, 0xE8, 0x01, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0xD3, 0x0C, 0xD0, 0xE1, 0xD1, 0x7C, 0xF2, 0xEB, 0xD8, 0x01, 0x9F, 0xE5 + .byte 0x01, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x02, 0x00, 0xA0, 0xE3, 0xC3, 0x20, 0xC1, 0xE5 + .byte 0x0A, 0xF6, 0xFF, 0xEB, 0x25, 0x00, 0x00, 0xEA, 0xBC, 0x01, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5 + .byte 0x04, 0x11, 0x82, 0xE0, 0x50, 0x10, 0x91, 0xE5, 0x40, 0x10, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD3, 0x0C, 0xD0, 0xE1, 0xC2, 0x7C, 0xF2, 0xEB, 0x9C, 0x11, 0x9F, 0xE5, 0x01, 0x30, 0xE0, 0xE3 + .byte 0x00, 0x20, 0x91, 0xE5, 0x17, 0x00, 0xA0, 0xE3, 0xC3, 0x30, 0xC2, 0xE5, 0x00, 0x20, 0x91, 0xE5 + .byte 0x04, 0x11, 0x82, 0xE0, 0x50, 0x10, 0x91, 0xE5, 0x81, 0x10, 0x82, 0xE0, 0xFC, 0x10, 0xD1, 0xE1 + .byte 0xBA, 0x10, 0xC2, 0xE1, 0xF5, 0xF5, 0xFF, 0xEB, 0x10, 0x00, 0x00, 0xEA, 0x2B, 0x02, 0xFE, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x0D, 0x00, 0x00, 0x1A, 0x5C, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD1, 0x0C, 0xD0, 0xE1, 0xFD, 0x89, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x1A + .byte 0x44, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x0C, 0xD0, 0xE1, 0x80, 0x8A, 0xF2, 0xEB + .byte 0x34, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x74, 0x00, 0x90, 0xE5, 0xE3, 0xF5, 0xFF, 0xEB + .byte 0x00, 0x00, 0xA0, 0xE3, 0x03, 0x00, 0x50, 0xE3, 0x44, 0x00, 0x00, 0x1A, 0x18, 0x01, 0x9F, 0xE5 + .byte 0x06, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0xD8, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD1, 0x0C, 0xD0, 0xE1, 0x64, 0x6E, 0xF2, 0xEB, 0xFC, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD1, 0x0C, 0xD0, 0xE1, 0x36, 0x8A, 0xF2, 0xEB, 0x38, 0x00, 0x00, 0xEA, 0x07, 0x10, 0xA0, 0xE3 + .byte 0xD8, 0x10, 0x83, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x0C, 0xD0, 0xE1, 0xD1, 0x89, 0xF2, 0xEB + .byte 0xD4, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x0C, 0xD0, 0xE1 + .byte 0x01, 0x00, 0x50, 0xE1, 0x2D, 0x00, 0x00, 0x0A, 0x0C, 0x8B, 0xF2, 0xEB, 0xB8, 0x00, 0x9F, 0xE5 + .byte 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xC2, 0x10, 0xC0, 0xE5, 0x27, 0x00, 0x00, 0xEA + .byte 0x00, 0x00, 0xE0, 0xE3, 0x14, 0x69, 0xFD, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x24, 0x00, 0x00, 0xEA + .byte 0x20, 0x69, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x8C, 0x00, 0x9F, 0x15, 0x01, 0x10, 0xA0, 0x13 + .byte 0x00, 0x00, 0x90, 0x15, 0xD8, 0x10, 0x80, 0x15, 0x1C, 0x00, 0x00, 0xEA, 0x19, 0x69, 0xFD, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x19, 0x00, 0x00, 0x0A, 0x03, 0x00, 0xA0, 0xE3, 0x06, 0x69, 0xFD, 0xEB + .byte 0x64, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD8, 0x10, 0x80, 0xE5 + .byte 0x12, 0x00, 0x00, 0xEA, 0x0F, 0x69, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0F, 0x00, 0x00, 0x0A + .byte 0x01, 0x00, 0xA0, 0xE3, 0xFC, 0x68, 0xFD, 0xEB, 0x3C, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0xD8, 0x10, 0x80, 0xE5, 0x08, 0x00, 0x00, 0xEA, 0x05, 0x69, 0xFD, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x04, 0x00, 0xA0, 0xE3, 0xF2, 0x68, 0xFD, 0xEB + .byte 0x14, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD8, 0x10, 0x80, 0xE5 + .byte 0x01, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0x18, 0x80, 0xBD, 0xE8, 0x40, 0xCE, 0x38, 0x02 + .byte 0x02, 0x3F, 0x00, 0x00, 0x04, 0xCE, 0x38, 0x02 + + arm_func_start ov16_0238CAE8 +ov16_0238CAE8: @ 0x0238CAE8 + push {r3, lr} + ldr r0, _0238CB2C @ =0x0238CE40 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #0xc3] + cmp r0, r1 + popeq {r3, pc} + bl FUN_0202836C + ldr r0, _0238CB2C @ =0x0238CE40 + ldr r0, [r0] + ldrsb r0, [r0, #0xc3] + bl FUN_0202B4C4 + ldr r0, _0238CB2C @ =0x0238CE40 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0xc3] + pop {r3, pc} + .align 2, 0 +_0238CB2C: .4byte 0x0238CE40 + arm_func_end ov16_0238CAE8 + + arm_func_start ov16_0238CB30 +ov16_0238CB30: @ 0x0238CB30 + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x54 + ldr r2, _0238CB8C @ =0x0238CE40 + ldr r3, _0238CB90 @ =0x0000C402 + ldr r6, [r2] + ldr r2, _0238CB94 @ =0x0238CE28 + add r5, r6, r1, lsl #2 + ldr r1, [r5, #0x50] + add ip, sp, #4 + add r1, r6, r1, lsl #1 + ldrsh lr, [r1, #0xc] + mov r1, #0x400 + mov r4, r0 + str lr, [sp, #4] + ldr lr, [r5, #0x50] + add lr, r6, lr, lsl #1 + ldrsh lr, [lr, #0xc] + str lr, [sp, #0x28] + str ip, [sp] + bl FUN_020223F0 + mov r0, r4 + add sp, sp, #0x54 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0238CB8C: .4byte 0x0238CE40 +_0238CB90: .4byte 0x0000C402 +_0238CB94: .4byte 0x0238CE28 + arm_func_end ov16_0238CB30 + + arm_func_start ov16_0238CB98 +ov16_0238CB98: @ 0x0238CB98 + push {r3, lr} + ldr r1, _0238CBCC @ =0x0238CE40 + mvn r0, #1 + ldr r1, [r1] + ldrsb r1, [r1, #0xc1] + cmp r1, r0 + popne {r3, pc} + mov r0, #0 + bl FUN_0202F0B0 + ldr r1, _0238CBCC @ =0x0238CE40 + ldr r1, [r1] + strb r0, [r1, #0xc1] + pop {r3, pc} + .align 2, 0 +_0238CBCC: .4byte 0x0238CE40 + arm_func_end ov16_0238CB98 + + arm_func_start ov16_0238CBD0 +ov16_0238CBD0: @ 0x0238CBD0 + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x3c + bl FUN_02059B08 + ldr r1, _0238CC5C @ =0x020B0A48 + mov r6, #0 + ldr r8, [r1] + ldr sb, _0238CC60 @ =0x0000022B + mov r5, r0 + mov r7, r6 + add r4, sp, #0 +_0238CBF8: + lsl r0, r7, #0x10 + asr r0, r0, #0x10 + bl FUN_02055390 + cmp r0, #0 + beq _0238CC40 + cmp r5, #0 + bne _0238CC28 + lsl r0, r7, #0x10 + asr r0, r0, #0x10 + bl FUN_02055528 + cmp r0, #0 + bne _0238CC40 +_0238CC28: + mov r0, r8 + mov r1, r4 + bl FUN_02059B18 + ldrsh r0, [sp, #8] + cmp r0, #0 + addne r6, r6, #1 +_0238CC40: + add r7, r7, #1 + cmp r7, sb + add r8, r8, #0x44 + blt _0238CBF8 + mov r0, r6 + add sp, sp, #0x3c + pop {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0238CC5C: .4byte 0x020B0A48 +_0238CC60: .4byte 0x0000022B + arm_func_end ov16_0238CBD0 + + arm_func_start ov16_0238CC64 +ov16_0238CC64: @ 0x0238CC64 + push {r3, lr} + bl FUN_020555A8 + ldr r1, _0238CC90 @ =0x0238CE40 + ldr r2, [r1] + str r0, [r2, #0x3c] + ldr r0, [r1] + ldr r1, [r0, #0x3c] + add r0, r0, #0xb1 + add r1, r1, #0x3a + bl FUN_02025100 + pop {r3, pc} + .align 2, 0 +_0238CC90: .4byte 0x0238CE40 + arm_func_end ov16_0238CC64 + + arm_func_start ov16_0238CC94 +ov16_0238CC94: @ 0x0238CC94 + ldr r0, _0238CCA4 @ =0x0238CE40 + ldr r0, [r0] + ldrsh r0, [r0, #0xdc] + bx lr + .align 2, 0 +_0238CCA4: .4byte 0x0238CE40 + arm_func_end ov16_0238CC94 + + arm_func_start ov16_0238CCA8 +ov16_0238CCA8: @ 0x0238CCA8 + ldr r0, _0238CCB8 @ =0x0238CE40 + ldr r0, [r0] + ldrsh r0, [r0, #0xde] + bx lr + .align 2, 0 +_0238CCB8: .4byte 0x0238CE40 + arm_func_end ov16_0238CCA8 + + arm_func_start ov16_0238CCBC +ov16_0238CCBC: @ 0x0238CCBC + ldr r0, _0238CCD4 @ =0x0238CE40 + ldr r0, [r0] + cmp r0, #0 + moveq r0, #0 + ldrne r0, [r0, #0xe0] + bx lr + .align 2, 0 +_0238CCD4: .4byte 0x0238CE40 + arm_func_end ov16_0238CCBC + + arm_func_start ov16_0238CCD8 +ov16_0238CCD8: @ 0x0238CCD8 + ldr r0, _0238CCEC @ =0x0238CE40 + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #0xe0] + bx lr + .align 2, 0 +_0238CCEC: .4byte 0x0238CE40 + arm_func_end ov16_0238CCD8 + + arm_func_start ov16_0238CCF0 +ov16_0238CCF0: @ 0x0238CCF0 + ldr r0, _0238CD04 @ =0x0238CE40 + mov r1, #4 + ldr r0, [r0] + str r1, [r0, #0xd8] + bx lr + .align 2, 0 +_0238CD04: .4byte 0x0238CE40 + arm_func_end ov16_0238CCF0 + @ 0x0238CD08 diff --git a/asm/overlay_17.s b/asm/overlay_17.s index 5726cb72..2eeaf02d 100644 --- a/asm/overlay_17.s +++ b/asm/overlay_17.s @@ -3,3 +3,1292 @@ .include "global.inc" .text + + arm_func_start ov17_0238A140 +ov17_0238A140: @ 0x0238A140 + push {r3, r4, r5, lr} + bl FUN_0203C760 + mov r0, #0x26c + mov r1, #8 + bl FUN_02001170 + ldr r1, _0238A270 @ =0x0238BE00 + mov r2, #1 + str r0, [r1] + strb r2, [r0, #9] + ldr r0, [r1] + add r0, r0, #0xc + bl FUN_02023690 + ldr lr, _0238A270 @ =0x0238BE00 + mov r2, #0 + ldr r0, [lr] + mov r4, #2 + str r2, [r0, #0x6c] + ldr r0, [lr] + sub r1, r2, #1 + str r2, [r0, #0x70] + ldr r5, [lr] + ldr ip, _0238A274 @ =0x0238A08C + ldr r3, [r5, #0x70] + sub r0, r4, #4 + str r3, [r5, #0x78] + ldr r3, [lr] + str r2, [r3, #0x74] + ldr r3, [lr] + strh r2, [r3, #0x7c] + ldr r3, [lr] + strh r2, [r3, #0x7e] + ldr r3, [lr] + add r3, r3, #0x200 + strh r1, [r3, #0x58] + ldr r3, [lr] + str r2, [r3, #0x80] + ldr r3, [lr] + add r3, r3, #0x200 + strh r4, [r3, #0x5a] + ldr r3, [lr] + add r3, r3, #0x200 + strh r4, [r3, #0x5c] + ldr r3, [lr] + str r2, [r3, #0x264] + ldr r2, [lr] + add r2, r2, #0x200 + strh r1, [r2, #0x68] + ldr r2, [ip] + ldr r1, [lr] + str r2, [r1, #0x260] + ldr r1, [lr] + strb r0, [r1] + ldr r1, [lr] + strb r0, [r1, #1] + ldr r1, [lr] + strb r0, [r1, #2] + ldr r1, [lr] + strb r0, [r1, #3] + ldr r1, [lr] + strb r0, [r1, #4] + ldr r1, [lr] + strb r0, [r1, #5] + ldr r1, [lr] + strb r0, [r1, #6] + ldr r1, [lr] + strb r0, [r1, #7] + ldr r1, [lr] + strb r0, [r1, #8] + ldr r0, [lr] + add r0, r0, #0x84 + bl FUN_02034A38 + ldr r1, _0238A270 @ =0x0238BE00 + ldr r1, [r1] + str r0, [r1, #0x80] + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_0238A270: .4byte 0x0238BE00 +_0238A274: .4byte 0x0238A08C + arm_func_end ov17_0238A140 + + arm_func_start ov17_0238A278 +ov17_0238A278: @ 0x0238A278 + push {r3, lr} + ldr r0, _0238A360 @ =0x0238BE00 + ldr r1, [r0] + ldrh r0, [r1, #0x7e] + tst r0, #1 + bne _0238A2A4 + ldrsb r0, [r1] + mvn r1, #1 + cmp r0, r1 + beq _0238A2A4 + bl FUN_0202F334 +_0238A2A4: + ldr r0, _0238A360 @ =0x0238BE00 + ldr r1, [r0] + ldrh r0, [r1, #0x7e] + tst r0, #2 + bne _0238A2CC + ldrsb r0, [r1, #1] + mvn r1, #1 + cmp r0, r1 + beq _0238A2CC + bl FUN_0202F6DC +_0238A2CC: + ldr r0, _0238A360 @ =0x0238BE00 + ldr r0, [r0] + ldrh r0, [r0, #0x7e] + tst r0, #0x20 + bne _0238A2E4 + bl FUN_0203A618 +_0238A2E4: + ldr r0, _0238A360 @ =0x0238BE00 + ldr r1, [r0] + ldrh r0, [r1, #0x7e] + tst r0, #0x40 + bne _0238A30C + ldrsb r0, [r1, #5] + mvn r1, #1 + cmp r0, r1 + beq _0238A30C + bl FUN_0203088C +_0238A30C: + ldr r0, _0238A360 @ =0x0238BE00 + ldr r1, [r0] + ldrh r0, [r1, #0x7e] + tst r0, #0x80 + bne _0238A334 + ldrsb r0, [r1, #6] + mvn r1, #1 + cmp r0, r1 + beq _0238A334 + bl FUN_0203088C +_0238A334: + ldr r0, _0238A360 @ =0x0238BE00 + ldr r1, [r0] + ldrh r0, [r1, #0x7e] + tst r0, #0x100 + popne {r3, pc} + ldrsb r0, [r1, #7] + mvn r1, #1 + cmp r0, r1 + popeq {r3, pc} + bl FUN_0202E6B0 + pop {r3, pc} + .align 2, 0 +_0238A360: .4byte 0x0238BE00 + arm_func_end ov17_0238A278 + + arm_func_start ov17_0238A364 +ov17_0238A364: @ 0x0238A364 + push {r3, lr} + ldr r0, _0238A718 @ =0x0238BE00 + ldr r1, [r0] + ldrh r0, [r1, #0x7e] + tst r0, #1 + bne _0238A3D0 + ldrsb r0, [r1] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A3C4 + bl FUN_0202F180 + cmp r0, #0 + movne r2, #0 + bne _0238A3C4 + ldr r0, _0238A718 @ =0x0238BE00 + ldr r0, [r0] + ldrsb r0, [r0] + bl FUN_0202F148 + ldr r0, _0238A718 @ =0x0238BE00 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0] +_0238A3C4: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A3D0: + ldr r0, _0238A718 @ =0x0238BE00 + ldr r1, [r0] + ldrh r0, [r1, #0x7e] + tst r0, #2 + bne _0238A438 + ldrsb r0, [r1, #1] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A42C + bl FUN_0202F66C + cmp r0, #0 + movne r2, #0 + bne _0238A42C + ldr r0, _0238A718 @ =0x0238BE00 + ldr r0, [r0] + ldrsb r0, [r0, #1] + bl FUN_0202F650 + ldr r0, _0238A718 @ =0x0238BE00 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #1] +_0238A42C: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A438: + ldr r0, _0238A718 @ =0x0238BE00 + ldr r1, [r0] + ldrh r0, [r1, #0x7e] + tst r0, #4 + bne _0238A4A0 + ldrsb r0, [r1, #2] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A494 + bl FUN_0202B4F0 + cmp r0, #0 + arm_func_end ov17_0238A364 + + arm_func_start ov17_0238A468 +ov17_0238A468: @ 0x0238A468 + movne r2, #0 + bne _0238A494 + ldr r0, _0238A718 @ =0x0238BE00 + ldr r0, [r0] + ldrsb r0, [r0, #2] + bl FUN_0202B4C4 + ldr r0, _0238A718 @ =0x0238BE00 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #2] +_0238A494: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A4A0: + ldr r0, _0238A718 @ =0x0238BE00 + ldr r1, [r0] + ldrh r0, [r1, #0x7e] + tst r0, #0x10 + bne _0238A508 + ldrsb r0, [r1, #3] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A4FC + bl FUN_0202B4F0 + cmp r0, #0 + movne r2, #0 + bne _0238A4FC + ldr r0, _0238A718 @ =0x0238BE00 + ldr r0, [r0] + ldrsb r0, [r0, #3] + bl FUN_0202B4C4 + ldr r0, _0238A718 @ =0x0238BE00 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #3] +_0238A4FC: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A508: + ldr r0, _0238A718 @ =0x0238BE00 + ldr r0, [r0] + ldrh r0, [r0, #0x7e] + tst r0, #0x20 + bne _0238A540 + bl FUN_0203A9B8 + cmp r0, #0 + movne r0, #0 + bne _0238A534 + bl FUN_0203A51C + mov r0, #1 +_0238A534: + cmp r0, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A540: + ldr r0, _0238A718 @ =0x0238BE00 + ldr r1, [r0] + ldrh r0, [r1, #0x7e] + tst r0, #8 + bne _0238A5A8 + ldrsb r0, [r1, #4] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A59C + bl FUN_0202B4F0 + cmp r0, #0 + movne r2, #0 + bne _0238A59C + ldr r0, _0238A718 @ =0x0238BE00 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_0202B4C4 + ldr r0, _0238A718 @ =0x0238BE00 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #4] +_0238A59C: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A5A8: + ldr r0, _0238A718 @ =0x0238BE00 + ldr r3, [r0] + ldrh r2, [r3, #0x7e] + tst r2, #0x40 + bne _0238A5DC + ldrsb r1, [r3, #5] + mvn r0, #1 + cmp r1, r0 + moveq r0, #1 + movne r0, #0 + tst r0, #0xff + moveq r0, #0 + popeq {r3, pc} +_0238A5DC: + tst r2, #0x80 + bne _0238A63C + ldrsb r0, [r3, #6] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A630 + bl FUN_020308C4 + cmp r0, #0 + movne r2, #0 + bne _0238A630 + ldr r0, _0238A718 @ =0x0238BE00 + ldr r0, [r0] + ldrsb r0, [r0, #6] + bl FUN_020308A0 + bl FUN_020407C0 + ldr r0, _0238A718 @ =0x0238BE00 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #6] +_0238A630: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A63C: + ldr r0, _0238A718 @ =0x0238BE00 + ldr r1, [r0] + ldrh r0, [r1, #0x7e] + tst r0, #0x100 + bne _0238A6A8 + ldrsb r0, [r1, #7] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A69C + bl FUN_0202E6E4 + cmp r0, #0 + movne r2, #0 + bne _0238A69C + ldr r0, _0238A718 @ =0x0238BE00 + ldr r0, [r0] + ldrsb r0, [r0, #7] + bl FUN_0202E6C8 + bl FUN_02041A00 + ldr r0, _0238A718 @ =0x0238BE00 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #7] +_0238A69C: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A6A8: + ldr r0, _0238A718 @ =0x0238BE00 + ldr r1, [r0] + ldrh r0, [r1, #0x7e] + tst r0, #0x200 + bne _0238A710 + ldrsb r0, [r1, #8] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A704 + bl FUN_0202B4F0 + cmp r0, #0 + movne r2, #0 + bne _0238A704 + ldr r0, _0238A718 @ =0x0238BE00 + ldr r0, [r0] + ldrsb r0, [r0, #8] + bl FUN_0202B4C4 + ldr r0, _0238A718 @ =0x0238BE00 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #8] +_0238A704: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A710: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0238A718: .4byte 0x0238BE00 + arm_func_end ov17_0238A468 + + arm_func_start ov17_0238A71C +ov17_0238A71C: @ 0x0238A71C + push {r3, lr} + ldr r0, _0238A750 @ =0x0238BE00 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_0203C760 + ldr r0, _0238A750 @ =0x0238BE00 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0238A750 @ =0x0238BE00 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0238A750: .4byte 0x0238BE00 + arm_func_end ov17_0238A71C +_0238A754: + .byte 0xF0, 0x43, 0x2D, 0xE9, 0x49, 0xDF, 0x4D, 0xE2, 0xA0, 0xC8, 0xF2, 0xEB + .byte 0x34, 0x08, 0x9F, 0xE5, 0x00, 0x40, 0x90, 0xE5, 0x6C, 0x10, 0x94, 0xE5, 0x03, 0x00, 0x51, 0xE3 + .byte 0x01, 0xF1, 0x8F, 0x90, 0x05, 0x02, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA, 0xE5, 0x01, 0x00, 0xEA + .byte 0xF1, 0x01, 0x00, 0xEA, 0x01, 0x02, 0x00, 0xEA, 0x10, 0x78, 0x9F, 0xE5, 0x04, 0x60, 0x8D, 0xE2 + .byte 0x0A, 0x50, 0xA0, 0xE3, 0x0F, 0x00, 0xB7, 0xE8, 0x0F, 0x00, 0xA6, 0xE8, 0x01, 0x50, 0x55, 0xE2 + .byte 0xFB, 0xFF, 0xFF, 0x1A, 0x03, 0x00, 0x97, 0xE8, 0x03, 0x00, 0x86, 0xE8, 0x74, 0x00, 0x94, 0xE5 + .byte 0x03, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0xD4, 0x01, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA + .byte 0x1E, 0x00, 0x00, 0xEA, 0xBF, 0x01, 0x00, 0xEA, 0xFF, 0xFF, 0xFF, 0xEA, 0xC8, 0x07, 0x9F, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x74, 0x10, 0x84, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x04, 0x00, 0x8D, 0xE2 + .byte 0x70, 0x10, 0x91, 0xE5, 0x01, 0x01, 0x90, 0xE7, 0x30, 0xFF, 0x2F, 0xE1, 0xA8, 0x07, 0x9F, 0xE5 + .byte 0x00, 0x30, 0x90, 0xE5, 0x70, 0x10, 0x93, 0xE5, 0x78, 0x20, 0x93, 0xE5, 0x02, 0x00, 0x51, 0xE1 + .byte 0xC2, 0x01, 0x00, 0x0A, 0x74, 0x10, 0x93, 0xE5, 0x03, 0x00, 0x51, 0xE3, 0x05, 0x00, 0x00, 0x1A + .byte 0x70, 0x20, 0x83, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x04, 0x00, 0x8D, 0xE2, 0x70, 0x10, 0x91, 0xE5 + .byte 0x01, 0x01, 0x90, 0xE7, 0x30, 0xFF, 0x2F, 0xE1, 0x92, 0xFE, 0xFF, 0xEB, 0x68, 0x07, 0x9F, 0xE5 + .byte 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x74, 0x10, 0x80, 0xE5, 0xB3, 0x01, 0x00, 0xEA + .byte 0xC7, 0xFE, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xB0, 0x01, 0x00, 0x0A, 0x48, 0x07, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x90, 0xE5, 0xBE, 0x07, 0xD2, 0xE1, 0x01, 0x00, 0x10, 0xE3, 0x73, 0x00, 0x00, 0x0A + .byte 0xD0, 0x10, 0xD2, 0xE1, 0x01, 0x00, 0xE0, 0xE3, 0xBC, 0x57, 0xD2, 0xE1, 0x00, 0x00, 0x51, 0xE1 + .byte 0x2C, 0x47, 0x9F, 0xE5, 0x07, 0x00, 0x00, 0x1A, 0x28, 0x07, 0x9F, 0xE5, 0x0B, 0x92, 0xF2, 0xEB + .byte 0x14, 0x17, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x30, 0x91, 0xE5, 0x00, 0x00, 0xC3, 0xE5 + .byte 0x00, 0x00, 0x91, 0xE5, 0xBC, 0x27, 0xC0, 0xE1, 0xFC, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD0, 0x00, 0xD0, 0xE1, 0xBE, 0x92, 0xF2, 0xEB, 0xEC, 0x06, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5 + .byte 0x70, 0x00, 0x91, 0xE5, 0x29, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x4D, 0x00, 0x00, 0xEA + .byte 0x28, 0x00, 0x00, 0xEA, 0x4B, 0x00, 0x00, 0xEA, 0x4A, 0x00, 0x00, 0xEA, 0x49, 0x00, 0x00, 0xEA + .byte 0x35, 0x00, 0x00, 0xEA, 0x34, 0x00, 0x00, 0xEA, 0x27, 0x00, 0x00, 0xEA, 0x26, 0x00, 0x00, 0xEA + .byte 0x28, 0x00, 0x00, 0xEA, 0x2A, 0x00, 0x00, 0xEA, 0x29, 0x00, 0x00, 0xEA, 0x2B, 0x00, 0x00, 0xEA + .byte 0x40, 0x00, 0x00, 0xEA, 0x3F, 0x00, 0x00, 0xEA, 0x3E, 0x00, 0x00, 0xEA, 0x3D, 0x00, 0x00, 0xEA + .byte 0x2C, 0x00, 0x00, 0xEA, 0x2B, 0x00, 0x00, 0xEA, 0x2A, 0x00, 0x00, 0xEA, 0x2C, 0x00, 0x00, 0xEA + .byte 0x2B, 0x00, 0x00, 0xEA, 0x2D, 0x00, 0x00, 0xEA, 0x2C, 0x00, 0x00, 0xEA, 0x2B, 0x00, 0x00, 0xEA + .byte 0x2D, 0x00, 0x00, 0xEA, 0x2C, 0x00, 0x00, 0xEA, 0x2B, 0x00, 0x00, 0xEA, 0x2C, 0x00, 0x00, 0xEA + .byte 0x2B, 0x00, 0x00, 0xEA, 0x2A, 0x00, 0x00, 0xEA, 0x2E, 0x00, 0x00, 0xEA, 0x2D, 0x00, 0x00, 0xEA + .byte 0x2C, 0x00, 0x00, 0xEA, 0x2B, 0x00, 0x00, 0xEA, 0x2A, 0x00, 0x00, 0xEA, 0x29, 0x00, 0x00, 0xEA + .byte 0x28, 0x00, 0x00, 0xEA, 0x27, 0x00, 0x00, 0xEA, 0x26, 0x00, 0x00, 0xEA, 0x25, 0x00, 0x00, 0xEA + .byte 0x22, 0x00, 0x00, 0xEA, 0x21, 0x00, 0x00, 0xEA, 0x09, 0x00, 0xD1, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x34, 0x56, 0x9F, 0x15, 0x34, 0x56, 0x9F, 0x05, 0x1E, 0x00, 0x00, 0xEA, 0x30, 0x56, 0x9F, 0xE5 + .byte 0x30, 0x46, 0x9F, 0xE5, 0x1B, 0x00, 0x00, 0xEA, 0x2C, 0x56, 0x9F, 0xE5, 0x24, 0x46, 0x9F, 0xE5 + .byte 0x18, 0x00, 0x00, 0xEA, 0x24, 0x56, 0x9F, 0xE5, 0x18, 0x46, 0x9F, 0xE5, 0x15, 0x00, 0x00, 0xEA + .byte 0x1C, 0x56, 0x9F, 0xE5, 0xD1, 0x4D, 0x65, 0xE2, 0x12, 0x00, 0x00, 0xEA, 0x14, 0x56, 0x9F, 0xE5 + .byte 0x00, 0x46, 0x9F, 0xE5, 0x0F, 0x00, 0x00, 0xEA, 0x42, 0x5E, 0xA0, 0xE3, 0xF4, 0x45, 0x9F, 0xE5 + .byte 0x0C, 0x00, 0x00, 0xEA, 0x00, 0x56, 0x9F, 0xE5, 0xE8, 0x45, 0x9F, 0xE5, 0x09, 0x00, 0x00, 0xEA + .byte 0xF8, 0x55, 0x9F, 0xE5, 0xDC, 0x45, 0x9F, 0xE5, 0x06, 0x00, 0x00, 0xEA, 0xF0, 0x55, 0x9F, 0xE5 + .byte 0x04, 0x00, 0x00, 0xEA, 0xEC, 0x55, 0x9F, 0xE5, 0xC8, 0x45, 0x9F, 0xE5, 0x01, 0x00, 0x00, 0xEA + .byte 0xE4, 0x55, 0x9F, 0xE5, 0xBC, 0x45, 0x9F, 0xE5, 0xBC, 0x07, 0xD1, 0xE1, 0x05, 0x00, 0x50, 0xE1 + .byte 0x0A, 0x00, 0x00, 0x0A, 0x90, 0x05, 0x9F, 0xE5, 0xBC, 0x57, 0xC1, 0xE1, 0x00, 0x20, 0x90, 0xE5 + .byte 0xC8, 0x35, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE1, 0x58, 0x30, 0x82, 0xE5, 0x00, 0x30, 0x90, 0xE5 + .byte 0xD0, 0x00, 0xD3, 0xE1, 0xBC, 0x27, 0xD3, 0xE1, 0x0C, 0x30, 0x83, 0xE2, 0xE0, 0x91, 0xF2, 0xEB + .byte 0x64, 0x05, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0xBE, 0x07, 0xD1, 0xE1, 0x02, 0x00, 0x10, 0xE3 + .byte 0x1D, 0x00, 0x00, 0x0A, 0xD1, 0x10, 0xD1, 0xE1, 0x01, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x51, 0xE1 + .byte 0x19, 0x00, 0x00, 0x1A, 0x00, 0x00, 0xA0, 0xE3, 0x03, 0x10, 0xA0, 0xE3, 0x01, 0x20, 0xA0, 0xE3 + .byte 0xD1, 0x92, 0xF2, 0xEB, 0x30, 0x25, 0x9F, 0xE5, 0x70, 0x15, 0x9F, 0xE5, 0x00, 0x30, 0x92, 0xE5 + .byte 0x01, 0x00, 0xC3, 0xE5, 0x00, 0x00, 0x92, 0xE5, 0x5C, 0x00, 0x80, 0xE2, 0x54, 0x0B, 0xF3, 0xEB + .byte 0x14, 0x05, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x5C, 0x00, 0x80, 0xE2 + .byte 0x5B, 0x0B, 0xF3, 0xEB, 0x00, 0x05, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x5C, 0x00, 0x80, 0xE2, 0x52, 0x0B, 0xF3, 0xEB, 0xEC, 0x04, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5 + .byte 0xD1, 0x00, 0xD1, 0xE1, 0x5C, 0x10, 0x81, 0xE2, 0xF4, 0x92, 0xF2, 0xEB, 0xD8, 0x04, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0xBE, 0x07, 0xD1, 0xE1, 0x04, 0x00, 0x10, 0xE3, 0x0C, 0x00, 0x00, 0x0A + .byte 0xD2, 0x10, 0xD1, 0xE1, 0x01, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x51, 0xE1, 0x08, 0x00, 0x00, 0x1A + .byte 0xFC, 0x04, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0xF8, 0x14, 0x9F, 0xE5, 0xF8, 0x34, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x8D, 0xE5, 0x7C, 0x81, 0xF2, 0xEB, 0x9C, 0x14, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 + .byte 0x02, 0x00, 0xC1, 0xE5, 0x90, 0x14, 0x9F, 0xE5, 0x00, 0x30, 0x91, 0xE5, 0xBE, 0x07, 0xD3, 0xE1 + .byte 0x10, 0x00, 0x10, 0xE3, 0x10, 0x00, 0x00, 0x0A, 0xD3, 0x20, 0xD3, 0xE1, 0x01, 0x00, 0xE0, 0xE3 + .byte 0x00, 0x00, 0x52, 0xE1, 0x0C, 0x00, 0x00, 0x1A, 0x01, 0x00, 0xA0, 0xE3, 0xB4, 0x01, 0x83, 0xE5 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0x00, 0x20, 0x91, 0xE5, 0xAC, 0x04, 0x9F, 0xE5 + .byte 0xAC, 0x14, 0x9F, 0xE5, 0xAC, 0x34, 0x9F, 0xE5, 0x6D, 0x2F, 0x82, 0xE2, 0x66, 0x81, 0xF2, 0xEB + .byte 0x44, 0x14, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x03, 0x00, 0xC1, 0xE5, 0x38, 0x04, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0xBE, 0x07, 0xD0, 0xE1, 0x20, 0x00, 0x10, 0xE3, 0x08, 0x00, 0x00, 0x0A + .byte 0x88, 0xBF, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x1A, 0x18, 0x14, 0x9F, 0xE5 + .byte 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x10, 0x91, 0xE5, 0x5A, 0x10, 0x81, 0xE2, 0x02, 0x1C, 0x81, 0xE2 + .byte 0x29, 0xBC, 0xF2, 0xEB, 0x00, 0x04, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0xBE, 0x07, 0xD2, 0xE1 + .byte 0x08, 0x00, 0x10, 0xE3, 0x79, 0x00, 0x00, 0x0A, 0xD4, 0x10, 0xD2, 0xE1, 0x01, 0x00, 0xE0, 0xE3 + .byte 0x00, 0x00, 0x51, 0xE1, 0x75, 0x00, 0x00, 0x1A, 0x02, 0x0C, 0x82, 0xE2, 0xF8, 0x65, 0xD0, 0xE1 + .byte 0x06, 0x00, 0xA0, 0xE1, 0x77, 0x2A, 0xF3, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0x06, 0x00, 0xA0, 0xE1 + .byte 0x36, 0x2E, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x1C, 0x74, 0x9F, 0x15, 0x42, 0x00, 0x00, 0x1A + .byte 0x06, 0x00, 0xA0, 0xE1, 0x4F, 0x2A, 0xF3, 0xEB, 0x00, 0x80, 0xA0, 0xE1, 0x06, 0x00, 0xA0, 0xE1 + .byte 0x06, 0x2E, 0xF3, 0xEB, 0x00, 0x70, 0xA0, 0xE1, 0x00, 0x50, 0xA0, 0xE3, 0xEF, 0x00, 0xF3, 0xEB + .byte 0x04, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0xEC, 0x00, 0xF3, 0xEB, 0x05, 0x00, 0x50, 0xE3 + .byte 0x01, 0x00, 0x00, 0x1A, 0x01, 0x50, 0xA0, 0xE3, 0x02, 0x00, 0x00, 0xEA, 0xF4, 0x00, 0xD4, 0xE1 + .byte 0x85, 0x0F, 0x50, 0xE3, 0x01, 0x50, 0xA0, 0x03, 0x14, 0x00, 0xA0, 0xE3, 0x98, 0x07, 0xF3, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x12, 0x00, 0x00, 0x0A, 0xE0, 0x00, 0xF3, 0xEB, 0x03, 0x00, 0x50, 0xE3 + .byte 0x0F, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x58, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x57, 0xE3 + .byte 0xA8, 0x73, 0x9F, 0x15, 0xA8, 0x73, 0x9F, 0x05, 0x23, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x55, 0xE3 + .byte 0x03, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x57, 0xE3, 0x90, 0x73, 0x9F, 0x15, 0x90, 0x73, 0x9F, 0x05 + .byte 0x1D, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x57, 0xE3, 0x88, 0x73, 0x9F, 0x15, 0x88, 0x73, 0x9F, 0x05 + .byte 0x19, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x58, 0xE3, 0x0E, 0x00, 0x00, 0x0A, 0xCB, 0x00, 0xF3, 0xEB + .byte 0x04, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0xC8, 0x00, 0xF3, 0xEB, 0x05, 0x00, 0x50, 0xE3 + .byte 0x06, 0x00, 0x00, 0x1A, 0x74, 0x2A, 0xF3, 0xEB, 0x00, 0x00, 0x56, 0xE1, 0x03, 0x00, 0x00, 0x1A + .byte 0x00, 0x00, 0x57, 0xE3, 0x54, 0x73, 0x9F, 0x15, 0x44, 0x73, 0x9F, 0x05, 0x0A, 0x00, 0x00, 0xEA + .byte 0x34, 0x73, 0x9F, 0xE5, 0x08, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x55, 0xE3, 0x03, 0x00, 0x00, 0x0A + .byte 0x00, 0x00, 0x57, 0xE3, 0x34, 0x73, 0x9F, 0x15, 0x24, 0x73, 0x9F, 0x05, 0x02, 0x00, 0x00, 0xEA + .byte 0x00, 0x00, 0x57, 0xE3, 0x28, 0x73, 0x9F, 0x15, 0x1C, 0x73, 0x9F, 0x05, 0x00, 0x80, 0xA0, 0xE3 + .byte 0x08, 0x40, 0xA0, 0xE1, 0x03, 0x50, 0xA0, 0xE3, 0x9C, 0x92, 0x9F, 0xE5, 0x12, 0x00, 0x00, 0xEA + .byte 0x88, 0x11, 0xA0, 0xE1, 0xB1, 0x00, 0x97, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x10, 0x00, 0x00, 0x0A + .byte 0x01, 0x00, 0x87, 0xE0, 0x04, 0x00, 0x90, 0xE5, 0x06, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x1A + .byte 0x06, 0x00, 0xA0, 0xE1, 0x8D, 0x30, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0x99, 0x05 + .byte 0x08, 0x00, 0x80, 0x00, 0x4C, 0x52, 0xC0, 0x05, 0x02, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x99, 0xE5 + .byte 0x08, 0x00, 0x80, 0xE0, 0x4C, 0x42, 0xC0, 0xE5, 0x01, 0x80, 0x88, 0xE2, 0x0C, 0x00, 0x58, 0xE3 + .byte 0xEA, 0xFF, 0xFF, 0xBA, 0x40, 0x12, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x40, 0x91, 0xE5 + .byte 0xB0, 0x02, 0x9F, 0xE5, 0x93, 0x3F, 0x84, 0xE2, 0x7C, 0x31, 0x84, 0xE5, 0x00, 0x20, 0x8D, 0xE5 + .byte 0x00, 0x20, 0x91, 0xE5, 0xA0, 0x12, 0x9F, 0xE5, 0x07, 0x30, 0xA0, 0xE1, 0x47, 0x2F, 0x82, 0xE2 + .byte 0xD9, 0x80, 0xF2, 0xEB, 0x10, 0x12, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x04, 0x00, 0xC1, 0xE5 + .byte 0x04, 0x02, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0xBE, 0x07, 0xD2, 0xE1, 0x40, 0x00, 0x10, 0xE3 + .byte 0x0D, 0x00, 0x00, 0x0A, 0xD5, 0x10, 0xD2, 0xE1, 0x01, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x51, 0xE1 + .byte 0x09, 0x00, 0x00, 0x1A, 0x02, 0x0C, 0x82, 0xE2, 0xF8, 0x15, 0xD0, 0xE1, 0xAC, 0x00, 0x8D, 0xE2 + .byte 0x98, 0x40, 0xF3, 0xEB, 0xAC, 0x00, 0x8D, 0xE2, 0x03, 0x10, 0xA0, 0xE3, 0xDF, 0xD0, 0xF2, 0xEB + .byte 0xC4, 0x11, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x05, 0x00, 0xC1, 0xE5, 0xB8, 0x01, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0xBE, 0x07, 0xD1, 0xE1, 0x80, 0x00, 0x10, 0xE3, 0x0C, 0x00, 0x00, 0x0A + .byte 0xD6, 0x10, 0xD1, 0xE1, 0x01, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x51, 0xE1 + + arm_func_start ov17_0238ADFC +ov17_0238ADFC: @ 0x0238ADFC + bne _0238AE20 + mov r1, #0 + mov r2, r1 + mov r0, #8 + bl FUN_0204018C + ldr r1, _0238AF9C @ =0x0238BE00 + ldr r1, [r1] + strb r0, [r1, #6] + b _0238AE24 +_0238AE20: + bl FUN_02041178 +_0238AE24: + ldr r0, _0238AF9C @ =0x0238BE00 + ldr r3, [r0] + ldrh r0, [r3, #0x7e] + tst r0, #0x100 + beq _0238AE6C + ldrsb r1, [r3, #5] + mvn r0, #1 + cmp r1, r0 + bne _0238AE6C + add r0, r3, #0x200 + ldrsh r2, [r0, #0x68] + ldr r0, [r3, #0x264] + mov r1, #4 + mov r3, #1 + bl FUN_020417A8 + ldr r1, _0238AF9C @ =0x0238BE00 + ldr r1, [r1] + strb r0, [r1, #7] +_0238AE6C: + ldr r0, _0238AF9C @ =0x0238BE00 + ldr r1, [r0] + ldrh r0, [r1, #0x7e] + tst r0, #0x200 + beq _0238AEB4 + ldrsb r1, [r1, #8] + mvn r0, #1 + cmp r1, r0 + bne _0238AEB4 + ldr r0, _0238B020 @ =0x0238BB74 + mov r2, #0 + ldr r3, _0238B024 @ =0x0238BB9C + mov r1, #0x13 + str r2, [sp] + bl FUN_0202B0EC + ldr r1, _0238AF9C @ =0x0238BE00 + ldr r1, [r1] + strb r0, [r1, #8] +_0238AEB4: + ldr r0, _0238AF9C @ =0x0238BE00 + mov r1, #2 + ldr r0, [r0] + str r1, [r0, #0x74] + b _0238AF10 +_0238AEC8: + .byte 0xBE, 0x07, 0xD4, 0xE1, 0x01, 0x00, 0x10, 0xE3 + .byte 0x04, 0x00, 0x00, 0x0A, 0xD0, 0x00, 0xD4, 0xE1, 0xA8, 0x90, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x00, 0x00, 0xA0, 0x13, 0x00, 0x00, 0x00, 0x1A, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x50, 0xE3 + .byte 0x06, 0x00, 0x00, 0x0A, 0xA0, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5 + .byte 0x74, 0x20, 0x81, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x78, 0x00, 0x91, 0xE5, 0x70, 0x00, 0x81, 0xE5 +_0238AF10: + mov r0, #1 + b _0238AF94 +_0238AF18: + .byte 0x55, 0xC6, 0xF2, 0xEB, 0x10, 0xFD, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x19, 0x00, 0x00, 0x0A, 0x6C, 0xC6, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x16, 0x00, 0x00, 0x1A, 0x81, 0xC6, 0xF2, 0xEB, 0x5C, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x6C, 0x10, 0x80, 0xE5, 0x10, 0x00, 0x00, 0xEA, 0x03, 0x10, 0xA0, 0xE3 + .byte 0x6C, 0x10, 0x84, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x60, 0x02, 0x91, 0xE5, 0x02, 0x00, 0x50, 0xE3 + .byte 0x07, 0x00, 0x00, 0x1A, 0x80, 0x00, 0x91, 0xE5, 0x01, 0x0C, 0x10, 0xE3, 0x05, 0x00, 0x00, 0x0A + .byte 0x0C, 0x01, 0x91, 0xE5, 0x08, 0x21, 0x91, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x32, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0x00, 0x00, 0xEA, 0xB7, 0x6F, 0xFD, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA + .byte 0x01, 0x00, 0xA0, 0xE3 +_0238AF94: + add sp, sp, #0x124 + pop {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0238AF9C: .4byte 0x0238BE00 +_0238AFA0: + .byte 0x44, 0xBD, 0x38, 0x02, 0x08, 0x30, 0x00, 0x00, 0x64, 0xBB, 0x38, 0x02, 0x1E, 0x04, 0x00, 0x00 + .byte 0x1F, 0x04, 0x00, 0x00, 0x25, 0x04, 0x00, 0x00, 0x18, 0x30, 0x00, 0x00, 0x26, 0x04, 0x00, 0x00 + .byte 0x27, 0x04, 0x00, 0x00, 0x28, 0x04, 0x00, 0x00, 0x29, 0x04, 0x00, 0x00, 0x22, 0x04, 0x00, 0x00 + .byte 0x21, 0x04, 0x00, 0x00, 0x23, 0x04, 0x00, 0x00, 0x24, 0x04, 0x00, 0x00, 0x2A, 0x04, 0x00, 0x00 + .byte 0x86, 0x01, 0x00, 0x00, 0x34, 0xBB, 0x38, 0x02, 0x13, 0x00, 0x30, 0x00, 0xB4, 0xBB, 0x38, 0x02 + .byte 0x54, 0xBB, 0x38, 0x02, 0x33, 0x00, 0x30, 0x00, 0x84, 0xBB, 0x38, 0x02, 0xD4, 0xBB, 0x38, 0x02 + .byte 0xCC, 0xBC, 0x38, 0x02, 0x2C, 0xBC, 0x38, 0x02, 0x04, 0xBD, 0x38, 0x02, 0x94, 0xBC, 0x38, 0x02 + .byte 0xFC, 0xBB, 0x38, 0x02, 0x5C, 0xBC, 0x38, 0x02, 0x44, 0xBB, 0x38, 0x02, 0x13, 0x02, 0x00, 0x00 +_0238B020: .4byte 0x0238BB74 +_0238B024: .4byte 0x0238BB9C + arm_func_end ov17_0238ADFC + + arm_func_start ov17_0238B028 +ov17_0238B028: @ 0x0238B028 + ldr r1, _0238B044 @ =0x0238BE00 + mov r3, #3 + ldr r2, [r1] + str r3, [r2, #0x74] + ldr r1, [r1] + str r0, [r1, #0x78] + bx lr + .align 2, 0 +_0238B044: .4byte 0x0238BE00 + arm_func_end ov17_0238B028 +_0238B048: + .byte 0x24, 0x00, 0x9F, 0xE5, 0x03, 0x20, 0xA0, 0xE3 + .byte 0x00, 0x10, 0x90, 0xE5, 0x1C, 0x30, 0x9F, 0xE5, 0xBE, 0x27, 0xC1, 0xE1, 0x00, 0x20, 0x90, 0xE5 + .byte 0x01, 0x10, 0xA0, 0xE3, 0x0C, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x78, 0x10, 0x80, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xBE, 0x38, 0x02, 0x86, 0x01, 0x00, 0x00 + + arm_func_start ov17_0238B07C +ov17_0238B07C: @ 0x0238B07C + push {r3, lr} + ldr r0, _0238B0B0 @ =0x0238BE00 + ldr r0, [r0] + ldrb r0, [r0, #9] + cmp r0, #0 + beq _0238B09C + bl FUN_020556A8 + bl FUN_0203C7E4 +_0238B09C: + ldr r0, _0238B0B0 @ =0x0238BE00 + mov r1, #2 + ldr r0, [r0] + str r1, [r0, #0x78] + pop {r3, pc} + .align 2, 0 +_0238B0B0: .4byte 0x0238BE00 + arm_func_end ov17_0238B07C + + arm_func_start ov17_0238B0B4 +ov17_0238B0B4: @ 0x0238B0B4 + push {r3, lr} + ldr r0, _0238B108 @ =0x0238BE00 + ldr r0, [r0] + ldrb r0, [r0, #9] + cmp r0, #0 + beq _0238B0E8 + bl FUN_0203C910 + cmp r0, #0 + popeq {r3, pc} + ldr r0, _0238B108 @ =0x0238BE00 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #9] +_0238B0E8: + ldr r0, _0238B108 @ =0x0238BE00 + mov r3, #7 + ldr r2, [r0] + mov r1, #3 + strh r3, [r2, #0x7e] + ldr r0, [r0] + str r1, [r0, #0x78] + pop {r3, pc} + .align 2, 0 +_0238B108: .4byte 0x0238BE00 + arm_func_end ov17_0238B0B4 + + arm_func_start ov17_0238B10C +ov17_0238B10C: @ 0x0238B10C + push {r3, lr} + ldr r0, _0238B190 @ =0x0238BE00 + ldr r0, [r0] + ldrsb r0, [r0, #2] + bl FUN_0202B4F0 + cmp r0, #0 + popne {r3, pc} + ldr r0, _0238B190 @ =0x0238BE00 + ldr r0, [r0] + ldrsb r0, [r0, #2] + bl FUN_0202B57C + cmp r0, #2 + beq _0238B150 + cmp r0, #3 + beq _0238B15C + cmp r0, #4 + b _0238B184 +_0238B150: + mov r0, #0xc + bl ov17_0238B028 + pop {r3, pc} +_0238B15C: + bl FUN_0204AFC0 + cmp r0, #4 + cmpne r0, #5 + bne _0238B178 + mov r0, #9 + bl ov17_0238B028 + pop {r3, pc} +_0238B178: + mov r0, #6 + bl ov17_0238B028 + pop {r3, pc} +_0238B184: + mov r0, #4 + bl ov17_0238B028 + pop {r3, pc} + .align 2, 0 +_0238B190: .4byte 0x0238BE00 + arm_func_end ov17_0238B10C +_0238B194: + .byte 0x18, 0x00, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x05, 0x10, 0xA0, 0xE3, 0xBE, 0x37, 0xC2, 0xE1, 0x00, 0x00, 0x90, 0xE5, 0x78, 0x10, 0x80, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xBE, 0x38, 0x02 + + arm_func_start ov17_0238B1B8 +ov17_0238B1B8: @ 0x0238B1B8 + push {r3, lr} + ldr r0, _0238B1E4 @ =0x0238BE00 + mov r1, #0 + ldr r0, [r0] + strh r1, [r0, #0x7e] + bl ov17_0238A278 + ldr r0, _0238B1E4 @ =0x0238BE00 + mov r1, #1 + ldr r0, [r0] + str r1, [r0, #0x6c] + pop {r3, pc} + .align 2, 0 +_0238B1E4: .4byte 0x0238BE00 + arm_func_end ov17_0238B1B8 +_0238B1E8: + .byte 0x18, 0x00, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x90, 0xE5, 0x07, 0x10, 0xA0, 0xE3, 0xBE, 0x37, 0xC2, 0xE1, 0x00, 0x00, 0x90, 0xE5 + .byte 0x78, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xBE, 0x38, 0x02, 0x0C, 0x00, 0x9F, 0xE5 + .byte 0x08, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x78, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0xBE, 0x38, 0x02, 0x0C, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x78, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xBE, 0x38, 0x02, 0x18, 0x00, 0x9F, 0xE5 + .byte 0x03, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x0A, 0x10, 0xA0, 0xE3, 0xBE, 0x37, 0xC2, 0xE1 + .byte 0x00, 0x00, 0x90, 0xE5, 0x78, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xBE, 0x38, 0x02 + .byte 0x0C, 0x00, 0x9F, 0xE5, 0x0B, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x78, 0x10, 0x80, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xBE, 0x38, 0x02, 0x0C, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x78, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xBE, 0x38, 0x02 + .byte 0x18, 0x00, 0x9F, 0xE5, 0x20, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x0D, 0x10, 0xA0, 0xE3 + .byte 0xBE, 0x37, 0xC2, 0xE1, 0x00, 0x00, 0x90, 0xE5, 0x78, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0xBE, 0x38, 0x02 + + arm_func_start ov17_0238B2B4 +ov17_0238B2B4: @ 0x0238B2B4 + push {r3, lr} + bl FUN_0203A5A8 + cmp r0, #0 + beq _0238B31C + bl FUN_0203A9EC + cmp r0, #0 + popeq {r3, pc} + add r1, sp, #0 + mov r0, #0 + bl FUN_0200625C + ldrh r0, [sp] + tst r0, #8 + popeq {r3, pc} + mov r0, #0 + bl FUN_02017CCC + bl FUN_0203AAB0 + ldr r1, _0238B368 @ =0x0238BE00 + ldr r1, [r1] + add r1, r1, #0x200 + strh r0, [r1, #0x58] + bl FUN_0203A5F0 + ldr r0, _0238B368 @ =0x0238BE00 + mov r1, #0x1e + ldr r0, [r0] + str r1, [r0, #0x78] + pop {r3, pc} +_0238B31C: + bl FUN_0203AA20 + mvn r1, #0 + cmp r0, r1 + bne _0238B33C + bl FUN_0203A51C + mov r0, #0 + bl ov17_0238B028 + pop {r3, pc} +_0238B33C: + ldr r2, _0238B368 @ =0x0238BE00 + ldr r1, [r2] + add r1, r1, #0x200 + strh r0, [r1, #0x58] + ldr r0, [r2] + add r0, r0, #0x200 + ldrsh r0, [r0, #0x58] + bl FUN_0203FA64 + mov r0, #0xe + bl ov17_0238B028 + pop {r3, pc} + .align 2, 0 +_0238B368: .4byte 0x0238BE00 + arm_func_end ov17_0238B2B4 +_0238B36C: + .byte 0x18, 0x00, 0x9F, 0xE5 + .byte 0x28, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x0F, 0x10, 0xA0, 0xE3, 0xBE, 0x37, 0xC2, 0xE1 + .byte 0x00, 0x00, 0x90, 0xE5, 0x78, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xBE, 0x38, 0x02 + + arm_func_start ov17_0238B390 +ov17_0238B390: @ 0x0238B390 + push {r4, r5, r6, r7, r8, sb, sl, lr} + ldr r0, _0238B4CC @ =0x0238BE00 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_0202B4F0 + cmp r0, #0 + popne {r4, r5, r6, r7, r8, sb, sl, pc} + ldr r0, _0238B4CC @ =0x0238BE00 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_0202B57C + sub r0, r0, #5 + cmp r0, #7 + addls pc, pc, r0, lsl #2 + b _0238B4BC +_0238B3CC: @ jump table + b _0238B3EC @ case 0 + b _0238B3F8 @ case 1 + b _0238B46C @ case 2 + b _0238B478 @ case 3 + b _0238B484 @ case 4 + b _0238B490 @ case 5 + b _0238B49C @ case 6 + b _0238B4BC @ case 7 +_0238B3EC: + mov r0, #0x10 + bl ov17_0238B028 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_0238B3F8: + mov sl, #0 + ldr r6, _0238B4CC @ =0x0238BE00 + ldr r4, _0238B4D0 @ =0x0000022B + ldr r7, _0238B4D4 @ =0x020B0A48 + mov r8, sl + mov sb, #1 + mov r5, #0x44 +_0238B414: + smulbb r0, sl, r5 + ldr r1, [r7] + ldrb r0, [r1, r0] + tst r0, #1 + movne r0, sb + moveq r0, r8 + tst r0, #0xff + ldrne r0, [r6] + addne r0, r0, #0x200 + ldrshne r0, [r0, #0x58] + cmpne r0, sl + beq _0238B44C + mov r0, sl + bl FUN_02056410 +_0238B44C: + add r0, sl, #1 + lsl r0, r0, #0x10 + cmp r4, r0, asr #16 + asr sl, r0, #0x10 + bgt _0238B414 + mov r0, #0x13 + bl ov17_0238B028 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_0238B46C: + mov r0, #0x15 + bl ov17_0238B028 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_0238B478: + mov r0, #0x18 + bl ov17_0238B028 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_0238B484: + mov r0, #0x1e + bl ov17_0238B028 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_0238B490: + mov r0, #0x20 + bl ov17_0238B028 + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_0238B49C: + ldr r0, _0238B4CC @ =0x0238BE00 + mov r3, #0 + ldr r2, [r0] + mov r1, #0x22 + strh r3, [r2, #0x7e] + ldr r0, [r0] + str r1, [r0, #0x78] + pop {r4, r5, r6, r7, r8, sb, sl, pc} +_0238B4BC: + bl FUN_0203A638 + mov r0, #0xc + bl ov17_0238B028 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0238B4CC: .4byte 0x0238BE00 +_0238B4D0: .4byte 0x0000022B +_0238B4D4: .4byte 0x020B0A48 + arm_func_end ov17_0238B390 +_0238B4D8: + .byte 0x2C, 0x10, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x91, 0xE5, 0x11, 0x20, 0xA0, 0xE3, 0xBE, 0x37, 0xC0, 0xE1, 0x00, 0x30, 0x91, 0xE5 + .byte 0x02, 0x0C, 0x83, 0xE2, 0xF8, 0x05, 0xD0, 0xE1, 0x02, 0x08, 0x80, 0xE3, 0x0C, 0x00, 0x83, 0xE5 + .byte 0x00, 0x00, 0x91, 0xE5, 0x78, 0x20, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xBE, 0x38, 0x02 + .byte 0x08, 0x40, 0x2D, 0xE9, 0x05, 0x00, 0xA0, 0xE3, 0xCC, 0x31, 0xF2, 0xEB, 0x0C, 0x00, 0x9F, 0xE5 + .byte 0x12, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x78, 0x10, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x00, 0xBE, 0x38, 0x02 + + arm_func_start ov17_0238B534 +ov17_0238B534: @ 0x0238B534 + push {r3, lr} + mov r0, #5 + bl FUN_02017C10 + cmp r0, #0 + popne {r3, pc} + ldr r0, _0238B578 @ =0x0238BE00 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsh r0, [r0, #0x58] + bl FUN_02056754 + bl FUN_02057444 + bl FUN_022DC504 + ldr r0, _0238B578 @ =0x0238BE00 + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #0x78] + pop {r3, pc} + .align 2, 0 +_0238B578: .4byte 0x0238BE00 + arm_func_end ov17_0238B534 + + arm_func_start ov17_0238B57C +ov17_0238B57C: @ 0x0238B57C + push {r3, lr} + ldr r1, _0238B5D8 @ =0x0238BE00 + mov r3, #3 + ldr r0, [r1] + add r2, r3, #0x1400 + strh r3, [r0, #0x7e] + ldr r3, [r1] + add r0, r3, #0x200 + ldrsh r0, [r0, #0x58] + orr r0, r0, #0x20000 + str r0, [r3, #0xc] + ldr r0, [r1] + str r2, [r0, #0x30] + ldr r0, [r1] + add r0, r0, #0x200 + ldrsh r0, [r0, #0x58] + bl FUN_02056554 + bl FUN_02057444 + ldr r0, _0238B5D8 @ =0x0238BE00 + mov r1, #0x14 + ldr r0, [r0] + str r1, [r0, #0x78] + pop {r3, pc} + .align 2, 0 +_0238B5D8: .4byte 0x0238BE00 + arm_func_end ov17_0238B57C +_0238B5DC: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0xC7, 0x43, 0xFD, 0xEB, 0x0C, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x78, 0x10, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x00, 0xBE, 0x38, 0x02 + + arm_func_start ov17_0238B5FC +ov17_0238B5FC: @ 0x0238B5FC + push {r3, lr} + ldr r1, _0238B684 @ =0x0238BE00 + mov r3, #3 + ldr r2, [r1] + mov r0, #7 + strh r3, [r2, #0x7e] + ldr r2, [r1] + add r1, r2, #0x200 + ldrsh r1, [r1, #0x58] + orr r1, r1, #0x20000 + str r1, [r2, #0xc] + bl FUN_02017C10 + cmp r0, #0 + popne {r3, pc} + ldr r0, _0238B684 @ =0x0238BE00 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsh r0, [r0, #0x58] + bl FUN_020563BC + mvn r1, #0 + cmp r0, r1 + beq _0238B670 + bl FUN_02058138 + ldr r0, _0238B684 @ =0x0238BE00 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsh r0, [r0, #0x58] + bl FUN_020566C4 + bl FUN_02057444 +_0238B670: + ldr r0, _0238B684 @ =0x0238BE00 + mov r1, #0x16 + ldr r0, [r0] + str r1, [r0, #0x78] + pop {r3, pc} + .align 2, 0 +_0238B684: .4byte 0x0238BE00 + arm_func_end ov17_0238B5FC +_0238B688: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x07, 0x00, 0xA0, 0xE3 + .byte 0x6E, 0x31, 0xF2, 0xEB, 0x0C, 0x00, 0x9F, 0xE5, 0x17, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x78, 0x10, 0x80, 0xE5, 0x08, 0x80, 0xBD, 0xE8, 0x00, 0xBE, 0x38, 0x02 + + arm_func_start ov17_0238B6AC +ov17_0238B6AC: @ 0x0238B6AC + push {r3, lr} + mov r0, #7 + bl FUN_02017C10 + cmp r0, #0 + popne {r3, pc} + ldr r0, _0238B6D8 @ =0x0238BE00 + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #0x78] + bl FUN_022DC504 + pop {r3, pc} + .align 2, 0 +_0238B6D8: .4byte 0x0238BE00 + arm_func_end ov17_0238B6AC +_0238B6DC: + .byte 0x2C, 0x10, 0x9F, 0xE5 + .byte 0x03, 0x30, 0xA0, 0xE3, 0x00, 0x00, 0x91, 0xE5, 0x19, 0x20, 0xA0, 0xE3, 0xBE, 0x37, 0xC0, 0xE1 + .byte 0x00, 0x30, 0x91, 0xE5, 0x02, 0x0C, 0x83, 0xE2, 0xF8, 0x05, 0xD0, 0xE1, 0x02, 0x08, 0x80, 0xE3 + .byte 0x0C, 0x00, 0x83, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x78, 0x20, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x00, 0xBE, 0x38, 0x02, 0x18, 0x00, 0x9F, 0xE5, 0x13, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x1A, 0x10, 0xA0, 0xE3, 0xBE, 0x37, 0xC2, 0xE1, 0x00, 0x00, 0x90, 0xE5, 0x78, 0x10, 0x80, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xBE, 0x38, 0x02 + + arm_func_start ov17_0238B738 +ov17_0238B738: @ 0x0238B738 + push {r3, lr} + ldr r0, _0238B7A4 @ =0x0238BE00 + ldr r0, [r0] + ldrsb r0, [r0, #3] + bl FUN_0202B4F0 + cmp r0, #0 + popne {r3, pc} + ldr r0, _0238B7A4 @ =0x0238BE00 + ldr r0, [r0] + ldrsb r0, [r0, #3] + bl FUN_0202B57C + cmp r0, #0 + beq _0238B780 + cmp r0, #1 + popne {r3, pc} + mov r0, #0 + bl ov17_0238B028 + pop {r3, pc} +_0238B780: + ldr r1, _0238B7A4 @ =0x0238BE00 + mov r0, #0x1b + ldr r2, [r1] + add r1, r2, #0x200 + ldrsh r1, [r1, #0x58] + orr r1, r1, #0x20000 + str r1, [r2, #0xc] + bl ov17_0238B028 + pop {r3, pc} + .align 2, 0 +_0238B7A4: .4byte 0x0238BE00 + arm_func_end ov17_0238B738 +_0238B7A8: + .byte 0x18, 0x00, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x90, 0xE5, 0x1C, 0x10, 0xA0, 0xE3, 0xBE, 0x37, 0xC2, 0xE1, 0x00, 0x00, 0x90, 0xE5 + .byte 0x78, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xBE, 0x38, 0x02 + + arm_func_start ov17_0238B7CC +ov17_0238B7CC: @ 0x0238B7CC + push {r3, lr} + ldr r1, _0238B850 @ =0x0238BE00 + mov r0, #3 + ldr r1, [r1] + strh r0, [r1, #0x7e] + bl FUN_02017C50 + ldr r0, _0238B850 @ =0x0238BE00 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsh r0, [r0, #0x58] + bl FUN_020563BC + mvn r1, #0 + cmp r0, r1 + beq _0238B81C + bl FUN_02058138 + ldr r0, _0238B850 @ =0x0238BE00 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsh r0, [r0, #0x58] + bl FUN_020566C4 +_0238B81C: + ldr r0, _0238B850 @ =0x0238BE00 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsh r0, [r0, #0x58] + bl FUN_02055B20 + bl FUN_0203C9C4 + bl FUN_0203AF0C + bl FUN_02057180 + ldr r0, _0238B850 @ =0x0238BE00 + mov r1, #0x1d + ldr r0, [r0] + str r1, [r0, #0x78] + pop {r3, pc} + .align 2, 0 +_0238B850: .4byte 0x0238BE00 + arm_func_end ov17_0238B7CC +_0238B854: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x03, 0x00, 0xA0, 0xE3, 0xEB, 0x30, 0xF2, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x9F, 0x05, 0x00, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x90, 0x05 + .byte 0x78, 0x10, 0x80, 0x05, 0x08, 0x80, 0xBD, 0xE8, 0x00, 0xBE, 0x38, 0x02, 0x18, 0x00, 0x9F, 0xE5 + .byte 0x40, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x1F, 0x10, 0xA0, 0xE3, 0xBE, 0x37, 0xC2, 0xE1 + .byte 0x00, 0x00, 0x90, 0xE5, 0x78, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xBE, 0x38, 0x02 + + arm_func_start ov17_0238B8A0 +ov17_0238B8A0: @ 0x0238B8A0 + push {r3, lr} + bl FUN_0203F398 + cmp r0, #1 + popne {r3, pc} + bl FUN_0203F990 + ldr r0, _0238B8D0 @ =0x0238BE00 + mvn r2, #1 + ldr r1, [r0] + mov r0, #0xc + strb r2, [r1, #5] + bl ov17_0238B028 + pop {r3, pc} + .align 2, 0 +_0238B8D0: .4byte 0x0238BE00 + arm_func_end ov17_0238B8A0 +_0238B8D4: + .byte 0x18, 0x00, 0x9F, 0xE5, 0x80, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x21, 0x10, 0xA0, 0xE3, 0xBE, 0x37, 0xC2, 0xE1, 0x00, 0x00, 0x90, 0xE5, 0x78, 0x10, 0x80, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xBE, 0x38, 0x02 + + arm_func_start ov17_0238B8F8 +ov17_0238B8F8: @ 0x0238B8F8 + push {r4, lr} + bl FUN_020407EC + movs r4, r0 + beq _0238B91C + ldr r0, _0238B95C @ =0x0238BE00 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsh r0, [r0, #0x58] + bl FUN_0203FD80 +_0238B91C: + cmp r4, #1 + beq _0238B944 + cmp r4, #2 + beq _0238B938 + cmp r4, #7 + beq _0238B950 + pop {r4, pc} +_0238B938: + mov r0, #0x24 + bl ov17_0238B028 + pop {r4, pc} +_0238B944: + mov r0, #0xc + bl ov17_0238B028 + pop {r4, pc} +_0238B950: + mov r0, #0x26 + bl ov17_0238B028 + pop {r4, pc} + .align 2, 0 +_0238B95C: .4byte 0x0238BE00 + arm_func_end ov17_0238B8F8 + + arm_func_start ov17_0238B960 +ov17_0238B960: @ 0x0238B960 + push {r3, lr} + ldr r1, _0238B9AC @ =0x0238BE00 + ldr r0, _0238B9B0 @ =0x020B0A48 + ldr r2, [r1] + ldr r1, [r0] + add r0, r2, #0x200 + ldrsh r2, [r0, #0x58] + mov r0, #0x44 + mov r3, #0 + smlabb r1, r2, r0, r1 + ldrsh r0, [r1, #4] + ldrsh r2, [r1, #8] + add r1, r1, #0x14 + bl FUN_02041A40 + ldr r0, _0238B9AC @ =0x0238BE00 + mov r1, #0x23 + ldr r0, [r0] + str r1, [r0, #0x78] + pop {r3, pc} + .align 2, 0 +_0238B9AC: .4byte 0x0238BE00 +_0238B9B0: .4byte 0x020B0A48 + arm_func_end ov17_0238B960 +_0238B9B4: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x6F, 0xD8, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3 + .byte 0x08, 0x80, 0xBD, 0x18, 0xCA, 0xD9, 0xF2, 0xEB, 0x47, 0x2E, 0xF3, 0xEB, 0x0C, 0x00, 0xA0, 0xE3 + .byte 0x94, 0xFD, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x18, 0x00, 0x9F, 0xE5, 0x0A, 0x3D, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x90, 0xE5, 0x25, 0x10, 0xA0, 0xE3, 0xBE, 0x37, 0xC2, 0xE1, 0x00, 0x00, 0x90, 0xE5 + .byte 0x78, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x00, 0xBE, 0x38, 0x02 + + arm_func_start ov17_0238B9FC +ov17_0238B9FC: @ 0x0238B9FC + push {r4, lr} + ldr r0, _0238BA7C @ =0x0238BE00 + mov r4, #0 + ldr r0, [r0] + ldrsb r0, [r0, #8] + bl FUN_0202B4F0 + cmp r0, #0 + popne {r4, pc} + ldr r0, _0238BA7C @ =0x0238BE00 + ldr r0, [r0] + ldrsb r0, [r0, #8] + bl FUN_0202B57C + cmp r0, #3 + beq _0238BA3C + cmp r0, #4 + b _0238BA48 +_0238BA3C: + mov r0, #0x26 + bl ov17_0238B028 + b _0238BA4C +_0238BA48: + mov r4, #1 +_0238BA4C: + cmp r4, #0 + popeq {r4, pc} + ldr r0, _0238BA7C @ =0x0238BE00 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #6] + cmp r0, r1 + beq _0238BA70 + bl FUN_020307EC +_0238BA70: + mov r0, #0x20 + bl ov17_0238B028 + pop {r4, pc} + .align 2, 0 +_0238BA7C: .4byte 0x0238BE00 + arm_func_end ov17_0238B9FC + @ 0x0238BA80 diff --git a/asm/overlay_18.s b/asm/overlay_18.s index 9d1ef823..fd36d4aa 100644 --- a/asm/overlay_18.s +++ b/asm/overlay_18.s @@ -3,3 +3,2511 @@ .include "global.inc" .text + + arm_func_start ov18_0238A140 +ov18_0238A140: @ 0x0238A140 + push {r3, lr} + mov r0, #0x3c4 + mov r1, #8 + bl FUN_02001170 + ldr r1, _0238A298 @ =0x0238D620 + mov r2, #1 + str r0, [r1] + strb r2, [r0, #0x10] + ldr r0, [r1] + add r0, r0, #0x14 + bl FUN_02023690 + ldr r3, _0238A298 @ =0x0238D620 + mov r1, #0 + ldr r2, [r3] + sub r0, r1, #1 + str r1, [r2, #0x74] + ldr r2, [r3] + mov ip, #2 + str r1, [r2, #0x78] + ldr lr, [r3] + ldr r2, [lr, #0x78] + str r2, [lr, #0x80] + ldr r2, [r3] + str r1, [r2, #0x7c] + ldr r2, [r3] + str r0, [r2, #0x84] + ldr r2, [r3] + str r1, [r2, #0x88] + ldr r2, [r3] + add r2, r2, #0x300 + strh r0, [r2, #0x8c] + ldr r2, [r3] + add r2, r2, #0x300 + strh ip, [r2, #0x88] + ldr r2, [r3] + add r2, r2, #0x300 + strh ip, [r2, #0x8a] + ldr r2, [r3] + str r1, [r2, #0x3a0] + ldr r2, [r3] + add r2, r2, #0x300 + strh r0, [r2, #0xa4] + ldr r0, [r3] + strh r1, [r0, #0x8c] + bl FUN_020573A0 + bl FUN_02041400 + ldr r1, _0238A29C @ =0x0238A090 + ldr r0, _0238A298 @ =0x0238D620 + ldr r3, [r1] + ldr r2, [r0] + mvn r1, #1 + str r3, [r2, #0x390] + ldr r2, [r0] + strb r1, [r2] + ldr r2, [r0] + strb r1, [r2, #1] + ldr r2, [r0] + strb r1, [r2, #2] + ldr r2, [r0] + strb r1, [r2, #3] + ldr r2, [r0] + strb r1, [r2, #4] + ldr r2, [r0] + strb r1, [r2, #5] + ldr r2, [r0] + strb r1, [r2, #6] + ldr r2, [r0] + strb r1, [r2, #7] + ldr r2, [r0] + strb r1, [r2, #8] + ldr r2, [r0] + strb r1, [r2, #9] + ldr r2, [r0] + strb r1, [r2, #0xa] + ldr r2, [r0] + strb r1, [r2, #0xb] + ldr r2, [r0] + strb r1, [r2, #0xc] + ldr r2, [r0] + strb r1, [r2, #0xd] + ldr r2, [r0] + strb r1, [r2, #0xe] + ldr r2, [r0] + mov r0, #1 + strb r1, [r2, #0xf] + pop {r3, pc} + .align 2, 0 +_0238A298: .4byte 0x0238D620 +_0238A29C: .4byte 0x0238A090 + arm_func_end ov18_0238A140 + + arm_func_start ov18_0238A2A0 +ov18_0238A2A0: @ 0x0238A2A0 + push {r3, lr} + ldr r0, _0238A428 @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #1 + bne _0238A2CC + ldrsb r0, [r1] + mvn r1, #1 + cmp r0, r1 + beq _0238A2CC + bl FUN_0202F334 +_0238A2CC: + ldr r0, _0238A428 @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #2 + bne _0238A2F4 + ldrsb r0, [r1, #1] + mvn r1, #1 + cmp r0, r1 + beq _0238A2F4 + bl FUN_0202F6DC +_0238A2F4: + ldr r0, _0238A428 @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #4 + bne _0238A31C + ldrsb r0, [r1, #2] + mvn r1, #1 + cmp r0, r1 + beq _0238A31C + bl FUN_0202F954 +_0238A31C: + ldr r0, _0238A428 @ =0x0238D620 + ldr r0, [r0] + ldr r0, [r0, #0x88] + tst r0, #0x80 + bne _0238A334 + bl FUN_0203A618 +_0238A334: + ldr r0, _0238A428 @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #0x100 + bne _0238A35C + ldrsb r0, [r1, #7] + mvn r1, #1 + cmp r0, r1 + beq _0238A35C + bl FUN_0203088C +_0238A35C: + ldr r0, _0238A428 @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #0x200 + bne _0238A384 + ldrsb r0, [r1, #8] + mvn r1, #1 + cmp r0, r1 + beq _0238A384 + bl FUN_0203088C +_0238A384: + ldr r0, _0238A428 @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #0x400 + bne _0238A3AC + ldrsb r0, [r1, #9] + mvn r1, #1 + cmp r0, r1 + beq _0238A3AC + bl FUN_0202E6B0 +_0238A3AC: + ldr r0, _0238A428 @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #0x1000 + bne _0238A3D4 + ldrsb r0, [r1, #0xb] + mvn r1, #1 + cmp r0, r1 + beq _0238A3D4 + bl FUN_0202BC60 +_0238A3D4: + ldr r0, _0238A428 @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #0x4000 + bne _0238A3FC + ldrsb r0, [r1, #0xd] + mvn r1, #1 + cmp r0, r1 + beq _0238A3FC + bl FUN_0203088C +_0238A3FC: + ldr r0, _0238A428 @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #0x10000 + popne {r3, pc} + ldrsb r0, [r1, #0xf] + mvn r1, #1 + cmp r0, r1 + popeq {r3, pc} + bl FUN_0202F334 + pop {r3, pc} + .align 2, 0 +_0238A428: .4byte 0x0238D620 + arm_func_end ov18_0238A2A0 + + arm_func_start ov18_0238A42C +ov18_0238A42C: @ 0x0238A42C + push {r3, lr} + ldr r0, _0238AABC @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #1 + bne _0238A498 + ldrsb r0, [r1] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A48C + bl FUN_0202F180 + cmp r0, #0 + movne r2, #0 + bne _0238A48C + arm_func_end ov18_0238A42C + + arm_func_start ov18_0238A468 +ov18_0238A468: @ 0x0238A468 + ldr r0, _0238AABC @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0] + bl FUN_0202F148 + ldr r0, _0238AABC @ =0x0238D620 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0] +_0238A48C: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A498: + ldr r0, _0238AABC @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #2 + bne _0238A500 + ldrsb r0, [r1, #1] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A4F4 + bl FUN_0202F66C + cmp r0, #0 + movne r2, #0 + bne _0238A4F4 + ldr r0, _0238AABC @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #1] + bl FUN_0202F650 + ldr r0, _0238AABC @ =0x0238D620 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #1] +_0238A4F4: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A500: + ldr r0, _0238AABC @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #4 + bne _0238A568 + ldrsb r0, [r1, #2] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A55C + bl FUN_0202FB9C + cmp r0, #0 + movne r2, #0 + bne _0238A55C + ldr r0, _0238AABC @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #2] + bl FUN_0202F8FC + ldr r0, _0238AABC @ =0x0238D620 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #2] +_0238A55C: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A568: + ldr r0, _0238AABC @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #8 + bne _0238A5D0 + ldrsb r0, [r1, #3] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A5C4 + bl FUN_0202B4F0 + cmp r0, #0 + movne r2, #0 + bne _0238A5C4 + ldr r0, _0238AABC @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #3] + bl FUN_0202B4C4 + ldr r0, _0238AABC @ =0x0238D620 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #3] +_0238A5C4: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A5D0: + ldr r0, _0238AABC @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #0x20 + bne _0238A638 + ldrsb r0, [r1, #4] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A62C + bl FUN_0202B4F0 + cmp r0, #0 + movne r2, #0 + bne _0238A62C + ldr r0, _0238AABC @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_0202B4C4 + ldr r0, _0238AABC @ =0x0238D620 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #4] +_0238A62C: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A638: + ldr r0, _0238AABC @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #0x10 + bne _0238A6A0 + ldrsb r0, [r1, #5] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A694 + bl FUN_0202B4F0 + cmp r0, #0 + movne r2, #0 + bne _0238A694 + ldr r0, _0238AABC @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #5] + bl FUN_0202B4C4 + ldr r0, _0238AABC @ =0x0238D620 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #5] +_0238A694: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A6A0: + ldr r0, _0238AABC @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #0x40 + bne _0238A708 + ldrsb r0, [r1, #6] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A6FC + bl FUN_0202B4F0 + cmp r0, #0 + movne r2, #0 + bne _0238A6FC + ldr r0, _0238AABC @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #6] + bl FUN_0202B4C4 + ldr r0, _0238AABC @ =0x0238D620 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #6] +_0238A6FC: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A708: + ldr r0, _0238AABC @ =0x0238D620 + ldr r0, [r0] + ldr r0, [r0, #0x88] + tst r0, #0x80 + bne _0238A740 + bl FUN_0203A9B8 + cmp r0, #0 + movne r0, #0 + bne _0238A734 + bl FUN_0203A51C + mov r0, #1 +_0238A734: + cmp r0, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A740: + ldr r0, _0238AABC @ =0x0238D620 + ldr r3, [r0] + ldr r2, [r3, #0x88] + tst r2, #0x100 + bne _0238A774 + ldrsb r1, [r3, #7] + mvn r0, #1 + cmp r1, r0 + moveq r0, #1 + movne r0, #0 + tst r0, #0xff + moveq r0, #0 + popeq {r3, pc} +_0238A774: + tst r2, #0x200 + bne _0238A7D4 + ldrsb r0, [r3, #8] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A7C8 + bl FUN_020308C4 + cmp r0, #0 + movne r2, #0 + bne _0238A7C8 + ldr r0, _0238AABC @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #8] + bl FUN_020308A0 + bl FUN_020407C0 + ldr r0, _0238AABC @ =0x0238D620 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #8] +_0238A7C8: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A7D4: + ldr r0, _0238AABC @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #0x400 + bne _0238A840 + ldrsb r0, [r1, #9] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A834 + bl FUN_0202E6E4 + cmp r0, #0 + movne r2, #0 + bne _0238A834 + ldr r0, _0238AABC @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #9] + bl FUN_0202E6C8 + bl FUN_02041A00 + ldr r0, _0238AABC @ =0x0238D620 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #9] +_0238A834: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A840: + ldr r0, _0238AABC @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #0x800 + bne _0238A8A8 + ldrsb r0, [r1, #0xa] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A89C + bl FUN_0202B4F0 + cmp r0, #0 + movne r2, #0 + bne _0238A89C + ldr r0, _0238AABC @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #0xa] + bl FUN_0202B4C4 + ldr r0, _0238AABC @ =0x0238D620 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #0xa] +_0238A89C: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A8A8: + ldr r0, _0238AABC @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #0x1000 + bne _0238A910 + ldrsb r0, [r1, #0xb] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A904 + bl FUN_0202BCBC + cmp r0, #0 + movne r2, #0 + bne _0238A904 + ldr r0, _0238AABC @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #0xb] + bl FUN_0202BC44 + ldr r0, _0238AABC @ =0x0238D620 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #0xb] +_0238A904: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A910: + ldr r0, _0238AABC @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #0x2000 + bne _0238A978 + ldrsb r0, [r1, #0xc] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A96C + bl FUN_0202B4F0 + cmp r0, #0 + movne r2, #0 + bne _0238A96C + ldr r0, _0238AABC @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #0xc] + bl FUN_0202B4C4 + ldr r0, _0238AABC @ =0x0238D620 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #0xc] +_0238A96C: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A978: + ldr r0, _0238AABC @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #0x4000 + bne _0238A9E4 + ldrsb r0, [r1, #0xd] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238A9D8 + bl FUN_020308C4 + cmp r0, #0 + movne r2, #0 + bne _0238A9D8 + ldr r0, _0238AABC @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #0xd] + bl FUN_020308A0 + bl FUN_020407C0 + ldr r0, _0238AABC @ =0x0238D620 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #0xd] +_0238A9D8: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238A9E4: + ldr r0, _0238AABC @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #0x8000 + bne _0238AA4C + ldrsb r0, [r1, #0xe] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238AA40 + bl FUN_0202B4F0 + cmp r0, #0 + movne r2, #0 + bne _0238AA40 + ldr r0, _0238AABC @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #0xe] + bl FUN_0202B4C4 + ldr r0, _0238AABC @ =0x0238D620 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #0xe] +_0238AA40: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238AA4C: + ldr r0, _0238AABC @ =0x0238D620 + ldr r1, [r0] + ldr r0, [r1, #0x88] + tst r0, #0x10000 + bne _0238AAB4 + ldrsb r0, [r1, #0xf] + mvn r1, #1 + cmp r0, r1 + moveq r2, #1 + beq _0238AAA8 + bl FUN_0202F180 + cmp r0, #0 + movne r2, #0 + bne _0238AAA8 + ldr r0, _0238AABC @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #0xf] + bl FUN_0202F148 + ldr r0, _0238AABC @ =0x0238D620 + mvn r1, #1 + ldr r0, [r0] + mov r2, #1 + strb r1, [r0, #0xf] +_0238AAA8: + cmp r2, #0 + moveq r0, #0 + popeq {r3, pc} +_0238AAB4: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0238AABC: .4byte 0x0238D620 + arm_func_end ov18_0238A468 + + arm_func_start ov18_0238AAC0 +ov18_0238AAC0: @ 0x0238AAC0 + push {r0, r1, r2, r3} + push {r3, lr} + add r2, sp, #0xc + bic r2, r2, #3 + ldr r1, [sp, #0xc] + add r2, r2, #4 + bl FUN_02089544 + pop {r3, lr} + add sp, sp, #0x10 + bx lr + arm_func_end ov18_0238AAC0 + + arm_func_start ov18_0238AAE8 +ov18_0238AAE8: @ 0x0238AAE8 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sl, r0 + mov r0, r2 + mov sb, r1 + mov r8, r3 + ldr r7, [sp, #0x28] + mov r6, #0 + bl FUN_02013884 + mov r5, r0 + mov r4, #1 + ldr fp, _0238ABAC @ =0x0000021F + b _0238AB98 +_0238AB18: + mov r0, r5 + add r1, sp, #0 + bl FUN_0205384C + ldrb r1, [r0] + add r5, r0, #1 + cmp r1, r8 + bgt _0238ABA4 + ldrsh r0, [sb] + cmp r0, fp + bge _0238AB98 + ldrh r0, [sp] + mov r1, r7 + bl FUN_02053880 + cmp r0, #0 + beq _0238AB98 + ldrh r1, [sp] + lsr r2, r1, #0x1f + lsr r0, r1, #5 + rsb r1, r2, r1, lsl #27 + ldr r3, [sl, r0, lsl #2] + add ip, r2, r1, ror #27 + tst r3, r4, lsl ip + bne _0238AB98 + mov r2, r3 + orr r2, r2, r4, lsl ip + str r2, [sl, r0, lsl #2] + add r1, r6, #1 + lsl r0, r1, #0x10 + ldrsh r2, [sb] + asr r6, r0, #0x10 + add r0, r2, #1 + strh r0, [sb] +_0238AB98: + ldrb r0, [r5] + cmp r0, #0 + bne _0238AB18 +_0238ABA4: + mov r0, r6 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0238ABAC: .4byte 0x0000021F + arm_func_end ov18_0238AAE8 + + arm_func_start ov18_0238ABB0 +ov18_0238ABB0: @ 0x0238ABB0 + push {r3, r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x58 + ldr r2, _0238ACDC @ =0x020B0A48 + mov r1, #0x44 + ldr r2, [r2] + mov r3, #0 + smlabb r6, r0, r1, r2 + mov r0, r3 + add r2, sp, #0x14 +_0238ABD4: + add r1, r3, #1 + lsl r1, r1, #0x10 + str r0, [r2, r3, lsl #2] + asr r3, r1, #0x10 + cmp r3, #0x11 + blt _0238ABD4 + add r8, sp, #0x14 + mov r4, #1 + mov r3, #6 +_0238ABF8: + mla r2, r0, r3, r6 + ldrb r1, [r2, #0x22] + tst r1, #1 + beq _0238AC28 + ldrh r1, [r2, #0x24] + lsr r7, r1, #5 + lsr r2, r1, #0x1f + rsb r1, r2, r1, lsl #27 + ldr r5, [r8, r7, lsl #2] + add r1, r2, r1, ror #27 + orr r1, r5, r4, lsl r1 + str r1, [r8, r7, lsl #2] +_0238AC28: + add r0, r0, #1 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + cmp r0, #4 + blt _0238ABF8 + mov r0, #0 + strh r0, [sp, #4] + ldrsh r1, [r6, #4] + cmp r1, #0 + beq _0238ACD4 + add r1, sp, #6 + mov r0, r6 + bl FUN_02053DD0 + mov r8, r0 + mov r7, #0 + add r5, sp, #0x14 + add r4, sp, #4 + add sb, sp, #6 + b _0238AC9C +_0238AC74: + ldrsh r2, [r6, #8] + lsl r1, r7, #2 + add r0, sb, r7, lsl #2 + str r2, [sp] + ldrsh r2, [sb, r1] + ldrb r3, [r0, #2] + mov r0, r5 + mov r1, r4 + bl ov18_0238AAE8 + add r7, r7, #1 +_0238AC9C: + cmp r7, r8 + blt _0238AC74 + ldrsh r0, [r6, #4] + ldr r2, _0238ACE0 @ =0x00000216 + cmp r0, r2 + bne _0238ACD0 + ldrsh r3, [r6, #8] + add r0, sp, #0x14 + add r1, sp, #4 + str r3, [sp] + ldrb r3, [r6, #1] + add r2, r2, #1 + bl ov18_0238AAE8 +_0238ACD0: + ldrsh r0, [sp, #4] +_0238ACD4: + add sp, sp, #0x58 + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0238ACDC: .4byte 0x020B0A48 +_0238ACE0: .4byte 0x00000216 + arm_func_end ov18_0238ABB0 + + arm_func_start ov18_0238ACE4 +ov18_0238ACE4: @ 0x0238ACE4 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + mov sl, r0 + mov r0, r2 + mov sb, r1 + mov r8, r3 + ldr r7, [sp, #0x28] + ldr r6, [sp, #0x2c] + bl FUN_02013884 + mov r5, r0 + mov r4, #1 + ldr fp, _0238ADA4 @ =0x0000021F + b _0238AD90 +_0238AD14: + mov r0, r5 + add r1, sp, #0 + bl FUN_0205384C + ldrb r1, [r0] + add r5, r0, #1 + cmp r1, r8 + bgt _0238AD9C + ldrsh r0, [sb] + cmp r0, fp + bge _0238AD90 + ldrh r0, [sp] + mov r1, r7 + bl FUN_02053880 + cmp r0, #0 + beq _0238AD90 + ldrh r0, [sp] + lsr r3, r0, #0x1f + lsr r1, r0, #5 + rsb r2, r3, r0, lsl #27 + ldr ip, [sl, r1, lsl #2] + add r3, r3, r2, ror #27 + tst ip, r4, lsl r3 + bne _0238AD90 + mov r2, ip + orr r2, r2, r4, lsl r3 + str r2, [sl, r1, lsl #2] + ldrsh r1, [sb] + cmp r6, r1 + popeq {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, r1, #1 + strh r0, [sb] +_0238AD90: + ldrb r0, [r5] + cmp r0, #0 + bne _0238AD14 +_0238AD9C: + mov r0, #0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0238ADA4: .4byte 0x0000021F + arm_func_end ov18_0238ACE4 + + arm_func_start ov18_0238ADA8 +ov18_0238ADA8: @ 0x0238ADA8 + push {r3, r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x5c + ldr r3, _0238AEE8 @ =0x020B0A48 + mov r2, #0x44 + ldr r3, [r3] + mov r4, r1 + smlabb r8, r0, r2, r3 + mov r3, #0 + mov r1, r3 + add r2, sp, #0x18 +_0238ADD0: + add r0, r3, #1 + lsl r0, r0, #0x10 + str r1, [r2, r3, lsl #2] + asr r3, r0, #0x10 + cmp r3, #0x11 + blt _0238ADD0 + add r0, sp, #0x18 + mov r6, #1 + mov r5, #6 +_0238ADF4: + mla r3, r1, r5, r8 + ldrb r2, [r3, #0x22] + arm_func_end ov18_0238ADA8 + + arm_func_start ov18_0238ADFC +ov18_0238ADFC: @ 0x0238ADFC + tst r2, #1 + beq _0238AE24 + ldrh r2, [r3, #0x24] + lsr sb, r2, #5 + lsr r3, r2, #0x1f + rsb r2, r3, r2, lsl #27 + ldr r7, [r0, sb, lsl #2] + add r2, r3, r2, ror #27 + orr r2, r7, r6, lsl r2 + str r2, [r0, sb, lsl #2] +_0238AE24: + add r1, r1, #1 + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + cmp r1, #4 + blt _0238ADF4 + mov r0, #0 + strh r0, [sp, #8] + ldrsh r1, [r8, #4] + cmp r1, #0 + beq _0238AEE0 + add r1, sp, #0xa + mov r0, r8 + bl FUN_02053DD0 + mov sl, r0 + mov sb, #0 + add r7, sp, #0x18 + add r6, sp, #8 + add r5, sp, #0xa + b _0238AEA0 +_0238AE70: + ldrsh r2, [r8, #8] + lsl r1, sb, #2 + add r0, r5, sb, lsl #2 + stm sp, {r2, r4} + ldrsh r2, [r5, r1] + ldrb r3, [r0, #2] + mov r0, r7 + mov r1, r6 + bl ov18_0238ACE4 + cmp r0, #0 + bne _0238AEE0 + add sb, sb, #1 +_0238AEA0: + cmp sb, sl + blt _0238AE70 + ldrsh r0, [r8, #4] + ldr r2, _0238AEEC @ =0x00000216 + cmp r0, r2 + bne _0238AEDC + ldrsh r3, [r8, #8] + add r0, sp, #0x18 + add r1, sp, #8 + stm sp, {r3, r4} + ldrb r3, [r8, #1] + add r2, r2, #1 + bl ov18_0238ACE4 + cmp r0, #0 + bne _0238AEE0 +_0238AEDC: + mov r0, #0 +_0238AEE0: + add sp, sp, #0x5c + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0238AEE8: .4byte 0x020B0A48 +_0238AEEC: .4byte 0x00000216 + arm_func_end ov18_0238ADFC + + arm_func_start ov18_0238AEF0 +ov18_0238AEF0: @ 0x0238AEF0 + push {r4, lr} + ldr r2, _0238AF34 @ =0x0238D620 + lsl r1, r1, #0x10 + ldr r2, [r2] + mov r4, r0 + add r0, r2, #0x300 + ldrsh r0, [r0, #0x8c] + asr r1, r1, #0x10 + bl ov18_0238ADA8 + bl FUN_02013454 + mov r3, r0 + ldr r1, _0238AF38 @ =0x0238D5F8 + mov r0, r4 + mov r2, #0x4d + bl ov18_0238AAC0 + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_0238AF34: .4byte 0x0238D620 +_0238AF38: .4byte 0x0238D5F8 + arm_func_end ov18_0238AEF0 + + arm_func_start ov18_0238AF3C +ov18_0238AF3C: @ 0x0238AF3C + push {r3, r4, lr} + sub sp, sp, #0x54 + sub sp, sp, #0x400 + mov r4, r0 + bl FUN_02027B1C + bl FUN_0200ECFC + str r0, [sp, #0x428] + bl FUN_02041414 + cmp r0, #0 + ldrne r0, [sp, #0x428] + add ip, sp, #0x400 + subne r0, r0, #0x1f4 + strne r0, [sp, #0x428] + add ip, ip, #4 + ldr r2, _0238AFC8 @ =0x0238D608 + ldr r3, _0238AFCC @ =0x0000C402 + add r0, sp, #4 + mov r1, #0x100 + str ip, [sp] + bl FUN_020223F0 + ldr r3, _0238AFD0 @ =0x00000225 + mov r0, r4 + mov r1, #4 + mov r2, #2 + bl FUN_02026268 + add r3, sp, #4 + mov r0, r4 + mov r1, #0x16 + mov r2, #0x10 + bl FUN_02026214 + mov r0, r4 + bl FUN_02027AF0 + add sp, sp, #0x54 + add sp, sp, #0x400 + pop {r3, r4, pc} + .align 2, 0 +_0238AFC8: .4byte 0x0238D608 +_0238AFCC: .4byte 0x0000C402 +_0238AFD0: .4byte 0x00000225 + arm_func_end ov18_0238AF3C + + arm_func_start ov18_0238AFD4 +ov18_0238AFD4: @ 0x0238AFD4 + push {r3, lr} + ldr r0, _0238B018 @ =0x0238D620 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0238B018 @ =0x0238D620 + mov r1, #0 + str r1, [r0] + bl FUN_02041414 + cmp r0, #0 + beq _0238B010 + mov r0, #0x1f4 + rsb r0, r0, #0 + bl FUN_0200ED58 +_0238B010: + bl FUN_020572EC + pop {r3, pc} + .align 2, 0 +_0238B018: .4byte 0x0238D620 + arm_func_end ov18_0238AFD4 +_0238B01C: + .byte 0x78, 0x40, 0x2D, 0xE9 + .byte 0x85, 0xDF, 0x4D, 0xE2, 0x14, 0x0D, 0x9F, 0xE5, 0x00, 0x40, 0x90, 0xE5, 0x74, 0x00, 0x94, 0xE5 + .byte 0x03, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x3D, 0x03, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA + .byte 0x2E, 0x03, 0x00, 0xEA, 0x34, 0x03, 0x00, 0xEA, 0x39, 0x03, 0x00, 0xEA, 0xF0, 0xCC, 0x9F, 0xE5 + .byte 0x1C, 0x60, 0x8D, 0xE2, 0x13, 0x50, 0xA0, 0xE3, 0x0F, 0x00, 0xBC, 0xE8, 0x0F, 0x00, 0xA6, 0xE8 + .byte 0x01, 0x50, 0x55, 0xE2, 0xFB, 0xFF, 0xFF, 0x1A, 0x7C, 0x00, 0x94, 0xE5, 0x03, 0x00, 0x50, 0xE3 + .byte 0x00, 0xF1, 0x8F, 0x90, 0x1F, 0x03, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA, 0x1E, 0x00, 0x00, 0xEA + .byte 0x00, 0x03, 0x00, 0xEA, 0xFF, 0xFF, 0xFF, 0xEA, 0xB0, 0x0C, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3 + .byte 0x7C, 0x10, 0x84, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x1C, 0x00, 0x8D, 0xE2, 0x78, 0x10, 0x91, 0xE5 + .byte 0x01, 0x01, 0x90, 0xE7, 0x30, 0xFF, 0x2F, 0xE1, 0x90, 0x0C, 0x9F, 0xE5, 0x00, 0x30, 0x90, 0xE5 + .byte 0x78, 0x10, 0x93, 0xE5, 0x80, 0x20, 0x93, 0xE5, 0x02, 0x00, 0x51, 0xE1, 0x0D, 0x03, 0x00, 0x0A + .byte 0x7C, 0x10, 0x93, 0xE5, 0x03, 0x00, 0x51, 0xE3, 0x05, 0x00, 0x00, 0x1A, 0x78, 0x20, 0x83, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x1C, 0x00, 0x8D, 0xE2, 0x78, 0x10, 0x91, 0xE5, 0x01, 0x01, 0x90, 0xE7 + .byte 0x30, 0xFF, 0x2F, 0xE1, 0x6D, 0xFC, 0xFF, 0xEB, 0x50, 0x0C, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x7C, 0x10, 0x80, 0xE5, 0xFE, 0x02, 0x00, 0xEA, 0xCA, 0xFC, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0xFB, 0x02, 0x00, 0x0A, 0x30, 0x0C, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5 + .byte 0x88, 0x00, 0x91, 0xE5, 0x01, 0x00, 0x10, 0xE3, 0xE1, 0x00, 0x00, 0x0A, 0xD0, 0x10, 0xD1, 0xE1 + .byte 0x01, 0x00, 0xE0, 0xE3, 0x1C, 0x4C, 0x9F, 0xE5, 0x00, 0x00, 0x51, 0xE1, 0x07, 0x00, 0x00, 0x1A + .byte 0x14, 0x0C, 0x9F, 0xE5, 0xDD, 0x8F, 0xF2, 0xEB, 0x00, 0x1C, 0x9F, 0xE5, 0x00, 0x20, 0xE0, 0xE3 + .byte 0x00, 0x30, 0x91, 0xE5, 0x00, 0x00, 0xC3, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x84, 0x20, 0x80, 0xE5 + .byte 0xE8, 0x0B, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x00, 0xD0, 0xE1, 0x90, 0x90, 0xF2, 0xEB + .byte 0xD8, 0x0B, 0x9F, 0xE5, 0x7F, 0x1F, 0xA0, 0xE3, 0x00, 0x30, 0x90, 0xE5, 0x84, 0x20, 0x93, 0xE5 + .byte 0x60, 0x10, 0x83, 0xE5, 0x00, 0x30, 0x90, 0xE5, 0x02, 0x08, 0xA0, 0xE1, 0x78, 0x10, 0x93, 0xE5 + .byte 0x20, 0x08, 0xA0, 0xE1, 0x48, 0x00, 0x51, 0xE3, 0x07, 0x00, 0x00, 0xCA, 0x0D, 0x00, 0x00, 0xAA + .byte 0x2D, 0x00, 0x51, 0xE3, 0x12, 0x00, 0x00, 0xCA, 0x2C, 0x00, 0x51, 0xE3, 0x10, 0x00, 0x00, 0xBA + .byte 0x2D, 0x00, 0x51, 0x13, 0x07, 0x00, 0x00, 0x0A, 0x0D, 0x00, 0x00, 0xEA, 0x4B, 0x00, 0x51, 0xE3 + .byte 0x0B, 0x00, 0x00, 0xCA, 0x49, 0x00, 0x51, 0xE3, 0x09, 0x00, 0x00, 0xBA, 0x4A, 0x00, 0x51, 0x13 + .byte 0x4B, 0x00, 0x51, 0x13, 0x06, 0x00, 0x00, 0x1A, 0x70, 0x1B, 0x9F, 0xE5, 0x00, 0x20, 0x91, 0xE5 + .byte 0x03, 0x1C, 0x82, 0xE2, 0xFC, 0x18, 0xD1, 0xE1, 0x02, 0x18, 0x81, 0xE3, 0x14, 0x10, 0x82, 0xE5 + .byte 0x01, 0x00, 0x00, 0xEA, 0x7F, 0x1F, 0xA0, 0xE3, 0x14, 0x10, 0x83, 0xE5, 0x4C, 0x1B, 0x9F, 0xE5 + .byte 0x00, 0x30, 0x91, 0xE5, 0x78, 0x20, 0x93, 0xE5, 0x4B, 0x00, 0x52, 0xE3, 0x02, 0xF1, 0x8F, 0x90 + .byte 0x98, 0x00, 0x00, 0xEA, 0x4A, 0x00, 0x00, 0xEA, 0x96, 0x00, 0x00, 0xEA, 0x95, 0x00, 0x00, 0xEA + .byte 0x52, 0x00, 0x00, 0xEA, 0x51, 0x00, 0x00, 0xEA, 0x53, 0x00, 0x00, 0xEA, 0x91, 0x00, 0x00, 0xEA + .byte 0x90, 0x00, 0x00, 0xEA, 0x52, 0x00, 0x00, 0xEA, 0x51, 0x00, 0x00, 0xEA, 0x53, 0x00, 0x00, 0xEA + .byte 0x52, 0x00, 0x00, 0xEA, 0x54, 0x00, 0x00, 0xEA, 0x53, 0x00, 0x00, 0xEA, 0x55, 0x00, 0x00, 0xEA + .byte 0x54, 0x00, 0x00, 0xEA, 0x87, 0x00, 0x00, 0xEA, 0x86, 0x00, 0x00, 0xEA, 0x85, 0x00, 0x00, 0xEA + .byte 0x59, 0x00, 0x00, 0xEA, 0x58, 0x00, 0x00, 0xEA, 0x82, 0x00, 0x00, 0xEA, 0x81, 0x00, 0x00, 0xEA + .byte 0x80, 0x00, 0x00, 0xEA, 0x7F, 0x00, 0x00, 0xEA, 0x4D, 0x00, 0x00, 0xEA, 0x4C, 0x00, 0x00, 0xEA + .byte 0x7C, 0x00, 0x00, 0xEA, 0x7B, 0x00, 0x00, 0xEA, 0x7A, 0x00, 0x00, 0xEA, 0x79, 0x00, 0x00, 0xEA + .byte 0x78, 0x00, 0x00, 0xEA, 0x77, 0x00, 0x00, 0xEA, 0x76, 0x00, 0x00, 0xEA, 0x4D, 0x00, 0x00, 0xEA + .byte 0x4C, 0x00, 0x00, 0xEA, 0x4E, 0x00, 0x00, 0xEA, 0x72, 0x00, 0x00, 0xEA, 0x71, 0x00, 0x00, 0xEA + .byte 0x4D, 0x00, 0x00, 0xEA, 0x6F, 0x00, 0x00, 0xEA, 0x6E, 0x00, 0x00, 0xEA, 0x4C, 0x00, 0x00, 0xEA + .byte 0x4B, 0x00, 0x00, 0xEA, 0x4D, 0x00, 0x00, 0xEA, 0x4C, 0x00, 0x00, 0xEA, 0x69, 0x00, 0x00, 0xEA + .byte 0x4D, 0x00, 0x00, 0xEA, 0x4C, 0x00, 0x00, 0xEA, 0x4E, 0x00, 0x00, 0xEA, 0x4D, 0x00, 0x00, 0xEA + .byte 0x4F, 0x00, 0x00, 0xEA, 0x63, 0x00, 0x00, 0xEA, 0x62, 0x00, 0x00, 0xEA, 0x61, 0x00, 0x00, 0xEA + .byte 0x60, 0x00, 0x00, 0xEA, 0x5F, 0x00, 0x00, 0xEA, 0x5E, 0x00, 0x00, 0xEA, 0x4B, 0x00, 0x00, 0xEA + .byte 0x4A, 0x00, 0x00, 0xEA, 0x5B, 0x00, 0x00, 0xEA, 0x5A, 0x00, 0x00, 0xEA, 0x59, 0x00, 0x00, 0xEA + .byte 0x58, 0x00, 0x00, 0xEA, 0x57, 0x00, 0x00, 0xEA, 0x56, 0x00, 0x00, 0xEA, 0x48, 0x00, 0x00, 0xEA + .byte 0x54, 0x00, 0x00, 0xEA, 0x53, 0x00, 0x00, 0xEA, 0x47, 0x00, 0x00, 0xEA, 0x51, 0x00, 0x00, 0xEA + .byte 0x50, 0x00, 0x00, 0xEA, 0x46, 0x00, 0x00, 0xEA, 0x45, 0x00, 0x00, 0xEA, 0x49, 0x00, 0x00, 0xEA + .byte 0x48, 0x00, 0x00, 0xEA, 0x10, 0x00, 0xD3, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x0C, 0x0A, 0x9F, 0x05 + .byte 0x48, 0x00, 0x00, 0x0A, 0x7D, 0x0F, 0xA0, 0xE3, 0x38, 0x00, 0x83, 0xE5, 0x00, 0x00, 0x91, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x10, 0x10, 0xC0, 0xE5, 0xF4, 0x09, 0x9F, 0xE5, 0x41, 0x00, 0x00, 0xEA + .byte 0x41, 0x0E, 0xA0, 0xE3, 0xEC, 0x49, 0x9F, 0xE5, 0x3E, 0x00, 0x00, 0xEA, 0xE8, 0x09, 0x9F, 0xE5 + .byte 0x3C, 0x00, 0x00, 0xEA, 0xE4, 0x09, 0x9F, 0xE5, 0xD8, 0x49, 0x9F, 0xE5, 0x39, 0x00, 0x00, 0xEA + .byte 0xDC, 0x09, 0x9F, 0xE5, 0xCC, 0x49, 0x9F, 0xE5, 0x36, 0x00, 0x00, 0xEA, 0xD4, 0x09, 0x9F, 0xE5 + .byte 0xC0, 0x49, 0x9F, 0xE5, 0x33, 0x00, 0x00, 0xEA, 0xCC, 0x09, 0x9F, 0xE5, 0xB4, 0x49, 0x9F, 0xE5 + .byte 0x30, 0x00, 0x00, 0xEA, 0x54, 0x0E, 0xF2, 0xEB, 0x7D, 0x0F, 0x50, 0xE3, 0xBC, 0x09, 0x9F, 0xB5 + .byte 0xBC, 0x49, 0x9F, 0xE5, 0xBC, 0x09, 0x9F, 0xA5, 0x2A, 0x00, 0x00, 0xEA, 0xB8, 0x09, 0x9F, 0xE5 + .byte 0x90, 0x49, 0x9F, 0xE5, 0x27, 0x00, 0x00, 0xEA, 0xB0, 0x09, 0x9F, 0xE5, 0x84, 0x49, 0x9F, 0xE5 + .byte 0x24, 0x00, 0x00, 0xEA, 0xA8, 0x09, 0x9F, 0xE5, 0x22, 0x00, 0x00, 0xEA, 0xA4, 0x09, 0x9F, 0xE5 + .byte 0x20, 0x00, 0x00, 0xEA, 0x88, 0x09, 0x9F, 0xE5, 0x68, 0x49, 0x9F, 0xE5, 0x1D, 0x00, 0x00, 0xEA + .byte 0x94, 0x09, 0x9F, 0xE5, 0x5C, 0x49, 0x9F, 0xE5, 0x1A, 0x00, 0x00, 0xEA, 0xFF, 0x0F, 0xA0, 0xE3 + .byte 0x50, 0x49, 0x9F, 0xE5, 0x17, 0x00, 0x00, 0xEA, 0x80, 0x09, 0x9F, 0xE5, 0x44, 0x49, 0x9F, 0xE5 + .byte 0x14, 0x00, 0x00, 0xEA, 0x78, 0x09, 0x9F, 0xE5, 0x38, 0x49, 0x9F, 0xE5, 0x11, 0x00, 0x00, 0xEA + .byte 0x70, 0x19, 0x9F, 0xE5, 0x70, 0x09, 0x9F, 0xE5, 0x38, 0x10, 0x83, 0xE5, 0x24, 0x49, 0x9F, 0xE5 + .byte 0x0C, 0x00, 0x00, 0xEA, 0x64, 0x09, 0x9F, 0xE5, 0x0A, 0x00, 0x00, 0xEA, 0x60, 0x09, 0x9F, 0xE5 + .byte 0x08, 0x00, 0x00, 0xEA, 0x4C, 0x19, 0x9F, 0xE5, 0x58, 0x09, 0x9F, 0xE5, 0x38, 0x10, 0x83, 0xE5 + .byte 0x00, 0x49, 0x9F, 0xE5, 0x03, 0x00, 0x00, 0xEA, 0x38, 0x19, 0x9F, 0xE5, 0x48, 0x09, 0x9F, 0xE5 + .byte 0xF0, 0x48, 0x9F, 0xE5, 0x38, 0x10, 0x83, 0xE5, 0xD0, 0x18, 0x9F, 0xE5, 0x00, 0x08, 0xA0, 0xE1 + .byte 0x00, 0x30, 0x91, 0xE5, 0x20, 0x58, 0xA0, 0xE1, 0x84, 0x20, 0x93, 0xE5, 0x20, 0x08, 0x52, 0xE1 + .byte 0x07, 0x00, 0x00, 0x0A, 0x84, 0x50, 0x83, 0xE5, 0x00, 0x30, 0x91, 0xE5, 0x04, 0x10, 0xA0, 0xE1 + .byte 0x84, 0x20, 0x93, 0xE5, 0xD4, 0x01, 0xD3, 0xE0, 0x02, 0x28, 0xA0, 0xE1, 0x22, 0x28, 0xA0, 0xE1 + .byte 0x43, 0x8F, 0xF2, 0xEB, 0x94, 0x08, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x88, 0x00, 0x91, 0xE5 + .byte 0x02, 0x00, 0x10, 0xE3, 0x1D, 0x00, 0x00, 0x0A, 0xD1, 0x10, 0xD1, 0xE1, 0x01, 0x00, 0xE0, 0xE3 + .byte 0x00, 0x00, 0x51, 0xE1, 0x19, 0x00, 0x00, 0x1A, 0x00, 0x00, 0xA0, 0xE3, 0x03, 0x10, 0xA0, 0xE3 + .byte 0x01, 0x20, 0xA0, 0xE3, 0x34, 0x90, 0xF2, 0xEB, 0x60, 0x28, 0x9F, 0xE5, 0x7F, 0x1F, 0xA0, 0xE3 + .byte 0x00, 0x30, 0x92, 0xE5, 0x01, 0x00, 0xC3, 0xE5, 0x00, 0x00, 0x92, 0xE5, 0x64, 0x00, 0x80, 0xE2 + .byte 0xB7, 0x08, 0xF3, 0xEB, 0x44, 0x08, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x64, 0x00, 0x80, 0xE2, 0xBE, 0x08, 0xF3, 0xEB, 0x30, 0x08, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x64, 0x00, 0x80, 0xE2, 0xB5, 0x08, 0xF3, 0xEB, 0x1C, 0x08, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0xD1, 0x00, 0xD1, 0xE1, 0x64, 0x10, 0x81, 0xE2, 0x57, 0x90, 0xF2, 0xEB + .byte 0x08, 0x08, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x88, 0x00, 0x91, 0xE5, 0x04, 0x00, 0x10, 0xE3 + .byte 0x09, 0x00, 0x00, 0x0A, 0xD2, 0x10, 0xD1, 0xE1, 0x01, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x51, 0xE1 + .byte 0x05, 0x00, 0x00, 0x1A, 0x54, 0x08, 0x9F, 0xE5, 0x54, 0x18, 0x9F, 0xE5, 0xD8, 0x90, 0xF2, 0xEB + .byte 0xD8, 0x17, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x02, 0x00, 0xC1, 0xE5, 0xCC, 0x07, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x88, 0x00, 0x91, 0xE5, 0x08, 0x00, 0x10, 0xE3, 0x0D, 0x00, 0x00, 0x0A + .byte 0xD3, 0x10, 0xD1, 0xE1, 0x01, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x51, 0xE1, 0x09, 0x00, 0x00, 0x1A + .byte 0x20, 0x08, 0x9F, 0xE5, 0x03, 0x40, 0xA0, 0xE3, 0x1C, 0x18, 0x9F, 0xE5, 0x1C, 0x38, 0x9F, 0xE5 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x40, 0x8D, 0xE5, 0xCF, 0x7E, 0xF2, 0xEB, 0x8C, 0x17, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x91, 0xE5, 0x03, 0x00, 0xC1, 0xE5, 0x80, 0x07, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5 + .byte 0x88, 0x00, 0x91, 0xE5, 0x20, 0x00, 0x10, 0xE3, 0x0D, 0x00, 0x00, 0x0A, 0xD4, 0x10, 0xD1, 0xE1 + .byte 0x01, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x51, 0xE1, 0x09, 0x00, 0x00, 0x1A, 0xE0, 0x07, 0x9F, 0xE5 + .byte 0x04, 0x40, 0xA0, 0xE3, 0xD0, 0x17, 0x9F, 0xE5, 0xD8, 0x37, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3 + .byte 0x00, 0x40, 0x8D, 0xE5, 0xBC, 0x7E, 0xF2, 0xEB, 0x40, 0x17, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 + .byte 0x04, 0x00, 0xC1, 0xE5, 0x34, 0x17, 0x9F, 0xE5, 0x00, 0x30, 0x91, 0xE5, 0x88, 0x00, 0x93, 0xE5 + .byte 0x40, 0x00, 0x10, 0xE3, 0x10, 0x00, 0x00, 0x0A, 0xD6, 0x20, 0xD3, 0xE1, 0x01, 0x00, 0xE0, 0xE3 + .byte 0x00, 0x00, 0x52, 0xE1, 0x0C, 0x00, 0x00, 0x1A, 0x01, 0x00, 0xA0, 0xE3, 0x90, 0x00, 0x83, 0xE5 + .byte 0x02, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x8D, 0xE5, 0x00, 0x20, 0x91, 0xE5, 0x88, 0x07, 0x9F, 0xE5 + .byte 0x88, 0x17, 0x9F, 0xE5, 0x88, 0x37, 0x9F, 0xE5, 0x90, 0x20, 0x82, 0xE2, 0xA6, 0x7E, 0xF2, 0xEB + .byte 0xE8, 0x16, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x06, 0x00, 0xC1, 0xE5, 0xDC, 0x06, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x88, 0x00, 0x91, 0xE5, 0x10, 0x00, 0x10, 0xE3, 0x0D, 0x00, 0x00, 0x0A + .byte 0xD5, 0x10, 0xD1, 0xE1, 0x01, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x51, 0xE1, 0x09, 0x00, 0x00, 0x1A + .byte 0x50, 0x07, 0x9F, 0xE5, 0x05, 0x40, 0xA0, 0xE3, 0x4C, 0x37, 0x9F, 0xE5, 0x13, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x40, 0x8D, 0xE5, 0x93, 0x7E, 0xF2, 0xEB, 0x9C, 0x16, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x91, 0xE5, 0x05, 0x00, 0xC1, 0xE5, 0x90, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x88, 0x00, 0x90, 0xE5, 0x80, 0x00, 0x10, 0xE3, 0x0E, 0x00, 0x00, 0x0A, 0xB5, 0xBC, 0xF2, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x0B, 0x00, 0x00, 0x1A, 0x70, 0x26, 0x9F, 0xE5, 0x02, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x10, 0x92, 0xE5, 0x06, 0x00, 0xA0, 0xE3, 0x03, 0x1C, 0x81, 0xE2, 0xB8, 0x38, 0xC1, 0xE1 + .byte 0x00, 0x10, 0x92, 0xE5, 0x03, 0x1C, 0x81, 0xE2, 0xBA, 0x38, 0xC1, 0xE1, 0x00, 0x10, 0x92, 0xE5 + .byte 0xE2, 0x1F, 0x81, 0xE2, 0x4C, 0xB9, 0xF2, 0xEB, 0x40, 0x06, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5 + .byte 0x88, 0x00, 0x92, 0xE5, 0x01, 0x0C, 0x10, 0xE3, 0x0D, 0x00, 0x00, 0x0A, 0xD7, 0x10, 0xD2, 0xE1 + .byte 0x01, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x51, 0xE1, 0x09, 0x00, 0x00, 0x1A, 0x03, 0x0C, 0x82, 0xE2 + .byte 0xFC, 0x18, 0xD0, 0xE1, 0x67, 0x0F, 0x8D, 0xE2, 0x3E, 0x3E, 0xF3, 0xEB, 0x67, 0x0F, 0x8D, 0xE2 + .byte 0x03, 0x10, 0xA0, 0xE3, 0x85, 0xCE, 0xF2, 0xEB, 0x00, 0x16, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 + .byte 0x07, 0x00, 0xC1, 0xE5, 0xF4, 0x05, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x88, 0x00, 0x91, 0xE5 + .byte 0x02, 0x0C, 0x10, 0xE3, 0x15, 0x00, 0x00, 0x0A, 0xD8, 0x10, 0xD1, 0xE1, 0x01, 0x00, 0xE0, 0xE3 + .byte 0x00, 0x00, 0x51, 0xE1, 0x10, 0x00, 0x00, 0x1A, 0x63, 0x0D, 0xF2, 0xEB, 0x00, 0x10, 0xA0, 0xE3 + .byte 0x7D, 0x0F, 0x50, 0xE3, 0x01, 0x20, 0xA0, 0xE1, 0x05, 0x00, 0x00, 0xAA, 0x04, 0x00, 0xA0, 0xE3 + .byte 0x81, 0xD2, 0xF2, 0xEB, 0xB4, 0x15, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x08, 0x00, 0xC1, 0xE5 + .byte 0x06, 0x00, 0x00, 0xEA, 0x05, 0x00, 0xA0, 0xE3, 0x7B, 0xD2, 0xF2, 0xEB, 0x9C, 0x15, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x91, 0xE5, 0x08, 0x00, 0xC1, 0xE5, 0x00, 0x00, 0x00, 0xEA, 0x71, 0xD6, 0xF2, 0xEB + .byte 0x88, 0x05, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x88, 0x00, 0x92, 0xE5, 0x01, 0x0B, 0x10, 0xE3 + .byte 0x16, 0x00, 0x00, 0x0A, 0xD7, 0x10, 0xD2, 0xE1, 0x01, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x51, 0xE1 + .byte 0x12, 0x00, 0x00, 0x1A, 0xA0, 0x03, 0x92, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x1A + .byte 0xA6, 0x00, 0x82, 0xE2, 0x03, 0x0C, 0x80, 0xE2, 0x01, 0x10, 0xA0, 0xE3, 0x1B, 0xD8, 0xF2, 0xEB + .byte 0x48, 0x15, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x09, 0x00, 0xC1, 0xE5, 0x07, 0x00, 0x00, 0xEA + .byte 0x03, 0x1C, 0x82, 0xE2, 0xF4, 0x2A, 0xD1, 0xE1, 0x04, 0x10, 0xA0, 0xE3, 0x01, 0x30, 0xA0, 0xE3 + .byte 0xE4, 0xD7, 0xF2, 0xEB, 0x24, 0x15, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x09, 0x00, 0xC1, 0xE5 + .byte 0x18, 0x05, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x88, 0x00, 0x91, 0xE5, 0x02, 0x0B, 0x10, 0xE3 + .byte 0x53, 0x00, 0x00, 0x0A, 0xDA, 0x10, 0xD1, 0xE1, 0x01, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x51, 0xE1 + .byte 0x4F, 0x00, 0x00, 0x1A, 0x12, 0xD6, 0xF2, 0xEB, 0xF0, 0x14, 0x9F, 0xE5, 0x00, 0x60, 0xA0, 0xE1 + .byte 0x00, 0x00, 0x91, 0xE5, 0x03, 0x0C, 0x80, 0xE2, 0xFC, 0x08, 0xD0, 0xE1, 0x13, 0x2B, 0xF3, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0xCE, 0xD5, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x68, 0x45, 0x9F, 0x15, 0x68, 0x45, 0x9F, 0x05, 0x00, 0x00, 0x00, 0xEA, 0x64, 0x45, 0x9F, 0xE5 + .byte 0xB8, 0x04, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x02, 0x10, 0xA0, 0xE1 + .byte 0xE5, 0x5F, 0x80, 0xE2, 0x01, 0x00, 0x82, 0xE2, 0x00, 0x08, 0xA0, 0xE1, 0x02, 0x10, 0xC5, 0xE7 + .byte 0x40, 0x28, 0xA0, 0xE1, 0x08, 0x00, 0x52, 0xE3, 0xF9, 0xFF, 0xFF, 0xBA, 0x06, 0x00, 0xA0, 0xE1 + .byte 0x37, 0xD6, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0xA0, 0x03, 0x01, 0x00, 0xC5, 0x05 + .byte 0x06, 0x00, 0xA0, 0xE1, 0xA6, 0xD6, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0xA0, 0x03 + .byte 0x02, 0x00, 0xC5, 0x05, 0x00, 0x00, 0x56, 0xE3, 0x03, 0x00, 0xA0, 0xD3, 0x03, 0x00, 0xC5, 0xD5 + .byte 0x14, 0xD1, 0xF2, 0xEB, 0x01, 0x10, 0x86, 0xE2, 0x01, 0x18, 0xA0, 0xE1, 0x00, 0x60, 0xA0, 0xE3 + .byte 0x41, 0xC8, 0xA0, 0xE1, 0x06, 0x20, 0xA0, 0xE1, 0x01, 0x30, 0xA0, 0xE3, 0x0C, 0x00, 0x00, 0xEA + .byte 0x8C, 0x11, 0xD0, 0xE7, 0x01, 0x00, 0x11, 0xE3, 0x03, 0x10, 0xA0, 0x11, 0x02, 0x10, 0xA0, 0x01 + .byte 0xFF, 0x00, 0x11, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x8C, 0x11, 0xD0, 0xE7, 0x02, 0x00, 0x11, 0xE3 + .byte 0x01, 0x60, 0xA0, 0x03, 0x04, 0x00, 0x00, 0x0A, 0x01, 0x10, 0x8C, 0xE2, 0x01, 0x18, 0xA0, 0xE1 + .byte 0x41, 0xC8, 0xA0, 0xE1, 0x04, 0x00, 0x5C, 0xE3, 0xF0, 0xFF, 0xFF, 0xBA, 0xFC, 0x13, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x56, 0xE3, 0x03, 0x00, 0xA0, 0x03, 0x04, 0x00, 0xC5, 0x05, 0x00, 0x50, 0x91, 0xE5 + .byte 0x08, 0x20, 0xA0, 0xE3, 0xE5, 0x3F, 0x85, 0xE2, 0x88, 0x31, 0x85, 0xE5, 0x00, 0x20, 0x8D, 0xE5 + .byte 0x00, 0x20, 0x91, 0xE5, 0x80, 0x04, 0x9F, 0xE5, 0x80, 0x14, 0x9F, 0xE5, 0x04, 0x30, 0xA0, 0xE1 + .byte 0x4A, 0x2F, 0x82, 0xE2, 0xDC, 0x7D, 0xF2, 0xEB, 0xC0, 0x13, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 + .byte 0x0A, 0x00, 0xC1, 0xE5, 0xB4, 0x03, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x88, 0x00, 0x92, 0xE5 + .byte 0x01, 0x0A, 0x10, 0xE3, 0x35, 0x00, 0x00, 0x0A, 0xDB, 0x10, 0xD2, 0xE1, 0x01, 0x00, 0xE0, 0xE3 + .byte 0x00, 0x00, 0x51, 0xE1, 0x31, 0x00, 0x00, 0x1A, 0x03, 0x0C, 0x82, 0xE2, 0x40, 0x14, 0x9F, 0xE5 + .byte 0xFC, 0x28, 0xD0, 0xE1, 0x00, 0x10, 0x91, 0xE5, 0x44, 0x00, 0xA0, 0xE3, 0x82, 0x10, 0x01, 0xE1 + .byte 0x08, 0x00, 0x8D, 0xE2, 0x3A, 0x10, 0x81, 0xE2, 0x0A, 0x20, 0xA0, 0xE3, 0x08, 0x66, 0xF2, 0xEB + .byte 0x68, 0x03, 0x9F, 0xE5, 0x1C, 0x14, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x30, 0x8D, 0xE2 + .byte 0xAE, 0x00, 0x80, 0xE2, 0x03, 0x0C, 0x80, 0xE2, 0x46, 0x20, 0xA0, 0xE3, 0x33, 0xFC, 0xFF, 0xEB + .byte 0x48, 0x13, 0x9F, 0xE5, 0x00, 0x34, 0x9F, 0xE5, 0x00, 0x40, 0x91, 0xE5, 0x10, 0x20, 0xA0, 0xE3 + .byte 0xFC, 0x08, 0xD4, 0xE1, 0xC0, 0x01, 0x84, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x01, 0x0C, 0x80, 0xE2 + .byte 0xB8, 0x3C, 0xC0, 0xE1, 0x00, 0x00, 0x91, 0xE5, 0xCC, 0x21, 0x80, 0xE5, 0x00, 0x20, 0x91, 0xE5 + .byte 0xAE, 0x00, 0x82, 0xE2, 0x03, 0x0C, 0x80, 0xE2, 0x08, 0x02, 0x82, 0xE5, 0x00, 0x00, 0x91, 0xE5 + .byte 0x03, 0x0C, 0x80, 0xE2, 0xFC, 0x08, 0xD0, 0xE1, 0x5C, 0xFC, 0xFF, 0xEB, 0x00, 0x00, 0x8D, 0xE5 + .byte 0x08, 0x10, 0xA0, 0xE3, 0xF4, 0x02, 0x9F, 0xE5, 0x04, 0x10, 0x8D, 0xE5, 0x00, 0x10, 0x90, 0xE5 + .byte 0xA8, 0x03, 0x9F, 0xE5, 0x07, 0x2D, 0x81, 0xE2, 0xA4, 0x13, 0x9F, 0xE5, 0xA4, 0x33, 0x9F, 0xE5 + .byte 0xEE, 0x7F, 0xF2, 0xEB, 0xD4, 0x12, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x0B, 0x00, 0xC1, 0xE5 + .byte 0xC8, 0x12, 0x9F, 0xE5, 0x00, 0x30, 0x91, 0xE5, 0x88, 0x00, 0x93, 0xE5, 0x02, 0x0A, 0x10, 0xE3 + .byte 0x10, 0x00, 0x00, 0x0A, 0xDC, 0x20, 0xD3, 0xE1, 0x01, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x52, 0xE1 + .byte 0x0C, 0x00, 0x00, 0x1A, 0x01, 0x00, 0xA0, 0xE3, 0x58, 0x02, 0x83, 0xE5, 0x03, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x8D, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x5C, 0x03, 0x9F, 0xE5, 0x5C, 0x33, 0x9F, 0xE5 + .byte 0x96, 0x2F, 0x81, 0xE2, 0x33, 0x10, 0xA0, 0xE3, 0x8B, 0x7D, 0xF2, 0xEB, 0x7C, 0x12, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x91, 0xE5, 0x0C, 0x00, 0xC1, 0xE5, 0x70, 0x02, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5 + .byte 0x88, 0x00, 0x91, 0xE5, 0x01, 0x09, 0x10, 0xE3, 0x0C, 0x00, 0x00, 0x0A, 0xDD, 0x10, 0xD1, 0xE1 + .byte 0x01, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x51, 0xE1, 0x07, 0x00, 0x00, 0x1A, 0x00, 0x10, 0xA0, 0xE3 + .byte 0x01, 0x20, 0xA0, 0xE1, 0x06, 0x00, 0xA0, 0xE3, 0xA3, 0xD1, 0xF2, 0xEB, 0x3C, 0x12, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x91, 0xE5, 0x0D, 0x00, 0xC1, 0xE5, 0x00, 0x00, 0x00, 0xEA, 0x99, 0xD5, 0xF2, 0xEB + .byte 0x28, 0x12, 0x9F, 0xE5, 0x00, 0x30, 0x91, 0xE5, 0x88, 0x00, 0x93, 0xE5, 0x02, 0x09, 0x10, 0xE3 + .byte 0x21, 0x00, 0x00, 0x0A, 0xDE, 0x20, 0xD3, 0xE1, 0x01, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x52, 0xE1 + .byte 0x1D, 0x00, 0x00, 0x1A, 0x00, 0x20, 0xA0, 0xE3, 0x9C, 0x23, 0xC3, 0xE5, 0x00, 0x00, 0x91, 0xE5 + .byte 0x9D, 0x23, 0xC0, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x9E, 0x23, 0xC0, 0xE5, 0x50, 0xD5, 0xF2, 0xEB + .byte 0x04, 0x00, 0x50, 0xE3, 0xE4, 0x01, 0x9F, 0xA5, 0x03, 0x10, 0xA0, 0xA3, 0x00, 0x00, 0x90, 0xA5 + .byte 0x01, 0x30, 0xA0, 0xE3, 0x9C, 0x13, 0xC0, 0xA5, 0xD0, 0x11, 0x9F, 0xE5, 0x03, 0x40, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x91, 0xE5, 0xE7, 0x0F, 0x82, 0xE2, 0x50, 0x03, 0x82, 0xE5, 0x00, 0x20, 0x91, 0xE5 + .byte 0x8C, 0x02, 0x9F, 0xE5, 0xF0, 0x32, 0x82, 0xE5, 0x00, 0x40, 0x8D, 0xE5, 0x00, 0x20, 0x91, 0xE5 + .byte 0x80, 0x32, 0x9F, 0xE5, 0x23, 0x1E, 0x84, 0xE2, 0x2F, 0x2E, 0x82, 0xE2, 0x52, 0x7D, 0xF2, 0xEB + .byte 0x98, 0x11, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x0E, 0x00, 0xC1, 0xE5, 0x8C, 0x01, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x88, 0x00, 0x91, 0xE5, 0x01, 0x08, 0x10, 0xE3, 0x2C, 0x00, 0x00, 0x0A + .byte 0xDF, 0x10, 0xD1, 0xE1, 0x01, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x51, 0xE1, 0x07, 0x00, 0x00, 0x1A + .byte 0x44, 0x02, 0x9F, 0xE5, 0x35, 0x8D, 0xF2, 0xEB, 0x60, 0x11, 0x9F, 0xE5, 0x00, 0x20, 0xE0, 0xE3 + .byte 0x00, 0x30, 0x91, 0xE5, 0x0F, 0x00, 0xC3, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x84, 0x20, 0x80, 0xE5 + .byte 0x48, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xDF, 0x00, 0xD0, 0xE1, 0xE8, 0x8D, 0xF2, 0xEB + .byte 0x38, 0x01, 0x9F, 0xE5, 0x00, 0x30, 0x90, 0xE5, 0x78, 0x00, 0x93, 0xE5, 0x12, 0x00, 0x50, 0xE3 + .byte 0x05, 0x00, 0x00, 0xCA, 0x10, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0xBA, 0x11, 0x00, 0x50, 0x13 + .byte 0x12, 0x00, 0x50, 0x13, 0x02, 0x00, 0x00, 0x0A, 0x06, 0x00, 0x00, 0xEA, 0x3C, 0x00, 0x50, 0xE3 + .byte 0x04, 0x00, 0x00, 0xEA, 0x7F, 0x0F, 0xA0, 0xE3, 0x98, 0x01, 0x8D, 0xE5, 0xDC, 0x21, 0x9F, 0xE5 + .byte 0xDC, 0x11, 0x9F, 0xE5, 0x01, 0x00, 0x00, 0xEA, 0x01, 0x2B, 0xA0, 0xE3, 0x08, 0x10, 0x82, 0xE2 + .byte 0x84, 0x00, 0x93, 0xE5, 0x02, 0x00, 0x50, 0xE1, 0x05, 0x00, 0x00, 0x0A, 0xDC, 0x00, 0x9F, 0xE5 + .byte 0x84, 0x20, 0x83, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x53, 0x3F, 0x8D, 0xE2, 0xDF, 0x00, 0xD0, 0xE1 + .byte 0x4F, 0x8D, 0xF2, 0xEB, 0xC4, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x7C, 0x10, 0x80, 0xE5, 0x1B, 0x00, 0x00, 0xEA, 0x88, 0x00, 0x94, 0xE5, 0x01, 0x00, 0x10, 0xE3 + .byte 0x04, 0x00, 0x00, 0x0A, 0xD0, 0x00, 0xD4, 0xE1, 0x38, 0x8D, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x00, 0x00, 0xA0, 0x13, 0x0A, 0x00, 0x00, 0x1A, 0x90, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5 + .byte 0x88, 0x00, 0x91, 0xE5, 0x01, 0x08, 0x10, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0xDF, 0x00, 0xD1, 0xE1 + .byte 0x2E, 0x8D, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x00, 0x00, 0xA0, 0x13, 0x00, 0x00, 0x00, 0x1A + .byte 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x5C, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x7C, 0x20, 0x81, 0xE5, 0x00, 0x10, 0x90, 0xE5 + .byte 0x80, 0x00, 0x91, 0xE5, 0x78, 0x00, 0x81, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x0D, 0x00, 0x00, 0xEA + .byte 0xC9, 0xF9, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x30, 0x00, 0x9F, 0x15, 0x02, 0x10, 0xA0, 0x13 + .byte 0x00, 0x00, 0x90, 0x15, 0x74, 0x10, 0x80, 0x15, 0x05, 0x00, 0x00, 0xEA, 0x03, 0x00, 0xA0, 0xE3 + .byte 0x74, 0x00, 0x84, 0xE5, 0x4F, 0x6C, 0xFD, 0xEB, 0xA9, 0xFC, 0xFF, 0xEB, 0x04, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0x85, 0xDF, 0x8D, 0xE2, 0x78, 0x80, 0xBD, 0xE8 + .byte 0x20, 0xD6, 0x38, 0x02, 0xC8, 0xD4, 0x38, 0x02, 0x08, 0x30, 0x00, 0x00, 0x10, 0xD3, 0x38, 0x02 + .byte 0xFB, 0x03, 0x00, 0x00, 0xF9, 0x03, 0x00, 0x00, 0x18, 0x30, 0x00, 0x00, 0x0B, 0x04, 0x00, 0x00 + .byte 0x0C, 0x04, 0x00, 0x00, 0x0D, 0x04, 0x00, 0x00, 0x0E, 0x04, 0x00, 0x00, 0x0F, 0x04, 0x00, 0x00 + .byte 0xCC, 0x3F, 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0xCD, 0x3F, 0x00, 0x00, 0x05, 0x04, 0x00, 0x00 + .byte 0x06, 0x04, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x00 + .byte 0xFD, 0x03, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x1B, 0x13, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00 + .byte 0x01, 0x04, 0x00, 0x00, 0x03, 0x04, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00 + .byte 0x70, 0xD2, 0x38, 0x02, 0x3C, 0xAF, 0x38, 0x02, 0xF0, 0xD2, 0x38, 0x02, 0x13, 0x00, 0x30, 0x00 + .byte 0x78, 0xD3, 0x38, 0x02, 0xD0, 0xD2, 0x38, 0x02, 0x98, 0xD3, 0x38, 0x02, 0x80, 0xD2, 0x38, 0x02 + .byte 0x33, 0x00, 0x30, 0x00, 0x20, 0xD3, 0x38, 0x02, 0xE0, 0xD2, 0x38, 0x02, 0xC0, 0xD3, 0x38, 0x02 + .byte 0x38, 0xD4, 0x38, 0x02, 0xF0, 0xD3, 0x38, 0x02, 0x80, 0xD4, 0x38, 0x02, 0xB0, 0xD2, 0x38, 0x02 + .byte 0x13, 0x02, 0x00, 0x80, 0x48, 0x0A, 0x0B, 0x02, 0xF8, 0xD5, 0x38, 0x02, 0x3E, 0x0A, 0x00, 0x00 + .byte 0xC0, 0xD2, 0x38, 0x02, 0x33, 0x18, 0x40, 0x00, 0xF0, 0xAE, 0x38, 0x02, 0xA0, 0xD2, 0x38, 0x02 + .byte 0x38, 0xD3, 0x38, 0x02, 0x90, 0xD2, 0x38, 0x02, 0x58, 0xD3, 0x38, 0x02, 0x00, 0xD3, 0x38, 0x02 + .byte 0xFA, 0x03, 0x00, 0x00, 0x08, 0x34, 0x00, 0x00 + + arm_func_start ov18_0238BE28 +ov18_0238BE28: @ 0x0238BE28 + ldr r1, _0238BE44 @ =0x0238D620 + mov r3, #3 + ldr r2, [r1] + str r3, [r2, #0x7c] + ldr r1, [r1] + str r0, [r1, #0x80] + bx lr + .align 2, 0 +_0238BE44: .4byte 0x0238D620 + arm_func_end ov18_0238BE28 +_0238BE48: + .byte 0x18, 0x00, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x90, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02, 0x18, 0x00, 0x9F, 0xE5 + .byte 0x0F, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x02, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02 + + arm_func_start ov18_0238BE90 +ov18_0238BE90: @ 0x0238BE90 + push {r3, lr} + ldr r0, _0238BF08 @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #3] + bl FUN_0202B4F0 + cmp r0, #0 + popne {r3, pc} + ldr r0, _0238BF08 @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #3] + bl FUN_0202B57C + cmp r0, #6 + addls pc, pc, r0, lsl #2 + b _0238BEFC +_0238BEC8: @ jump table + b _0238BEFC @ case 0 + b _0238BEFC @ case 1 + b _0238BEFC @ case 2 + b _0238BEE4 @ case 3 + b _0238BEF0 @ case 4 + b _0238BEFC @ case 5 + b _0238BEFC @ case 6 +_0238BEE4: + mov r0, #0x11 + bl ov18_0238BE28 + pop {r3, pc} +_0238BEF0: + mov r0, #5 + bl ov18_0238BE28 + pop {r3, pc} +_0238BEFC: + mov r0, #3 + bl ov18_0238BE28 + pop {r3, pc} + .align 2, 0 +_0238BF08: .4byte 0x0238D620 + arm_func_end ov18_0238BE90 +_0238BF0C: + .byte 0x18, 0x00, 0x9F, 0xE5 + .byte 0x03, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x04, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02 + + arm_func_start ov18_0238BF30 +ov18_0238BF30: @ 0x0238BF30 + push {r3, lr} + ldr r0, _0238BF5C @ =0x0238D620 + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #0x88] + bl ov18_0238A2A0 + ldr r0, _0238BF5C @ =0x0238D620 + mov r1, #1 + ldr r0, [r0] + str r1, [r0, #0x74] + pop {r3, pc} + .align 2, 0 +_0238BF5C: .4byte 0x0238D620 + arm_func_end ov18_0238BF30 +_0238BF60: + .byte 0x18, 0x00, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x06, 0x10, 0xA0, 0xE3 + .byte 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x20, 0xD6, 0x38, 0x02, 0x18, 0x00, 0x9F, 0xE5, 0x23, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x07, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02 + + arm_func_start ov18_0238BFA8 +ov18_0238BFA8: @ 0x0238BFA8 + push {r3, lr} + ldr r0, _0238C038 @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_0202B4F0 + cmp r0, #0 + popne {r3, pc} + ldr r0, _0238C038 @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_0202B57C + cmp r0, #8 + bgt _0238BFFC + cmp r0, #2 + blt _0238C02C + beq _0238C02C + cmp r0, #7 + beq _0238C008 + cmp r0, #8 + beq _0238C014 + b _0238C02C +_0238BFFC: + cmp r0, #0xd + beq _0238C020 + b _0238C02C +_0238C008: + mov r0, #8 + bl ov18_0238BE28 + pop {r3, pc} +_0238C014: + mov r0, #0xa + bl ov18_0238BE28 + pop {r3, pc} +_0238C020: + mov r0, #0xe + bl ov18_0238BE28 + pop {r3, pc} +_0238C02C: + mov r0, #0 + bl ov18_0238BE28 + pop {r3, pc} + .align 2, 0 +_0238C038: .4byte 0x0238D620 + arm_func_end ov18_0238BFA8 +_0238C03C: + .byte 0x18, 0x00, 0x9F, 0xE5 + .byte 0x03, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x09, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02 + .byte 0x0C, 0x00, 0x9F, 0xE5, 0x05, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02, 0x18, 0x00, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x90, 0xE5, 0x0C, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02, 0x18, 0x00, 0x9F, 0xE5 + .byte 0x03, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x0D, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02 + .byte 0x0C, 0x00, 0x9F, 0xE5, 0x05, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02, 0x18, 0x00, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x90, 0xE5, 0x0F, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02, 0x0C, 0x00, 0x9F, 0xE5 + .byte 0x05, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x20, 0xD6, 0x38, 0x02, 0x18, 0x00, 0x9F, 0xE5, 0x18, 0x30, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5 + .byte 0x11, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02, 0x02, 0x00, 0x01, 0x00, 0x18, 0x00, 0x9F, 0xE5 + .byte 0x18, 0x30, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x12, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02 + .byte 0x80, 0x00, 0x01, 0x00 + + arm_func_start ov18_0238C164 +ov18_0238C164: @ 0x0238C164 + push {r3, lr} + bl FUN_0203A5A8 + cmp r0, #0 + beq _0238C1CC + bl FUN_0203A9EC + cmp r0, #0 + popeq {r3, pc} + add r1, sp, #0 + mov r0, #0 + bl FUN_0200625C + ldrh r0, [sp] + tst r0, #8 + popeq {r3, pc} + mov r0, #0 + bl FUN_02017CCC + bl FUN_0203AAB0 + ldr r1, _0238C218 @ =0x0238D620 + ldr r1, [r1] + add r1, r1, #0x300 + strh r0, [r1, #0x8c] + bl FUN_0203A5F0 + ldr r0, _0238C218 @ =0x0238D620 + mov r1, #0x17 + ldr r0, [r0] + str r1, [r0, #0x80] + pop {r3, pc} +_0238C1CC: + bl FUN_0203AA20 + mvn r1, #0 + cmp r0, r1 + bne _0238C1EC + bl FUN_0203A51C + mov r0, #0 + bl ov18_0238BE28 + pop {r3, pc} +_0238C1EC: + ldr r2, _0238C218 @ =0x0238D620 + ldr r1, [r2] + add r1, r1, #0x300 + strh r0, [r1, #0x8c] + ldr r0, [r2] + add r0, r0, #0x300 + ldrsh r0, [r0, #0x8c] + bl FUN_0203FA64 + mov r0, #0x15 + bl ov18_0238BE28 + pop {r3, pc} + .align 2, 0 +_0238C218: .4byte 0x0238D620 + arm_func_end ov18_0238C164 +_0238C21C: + .byte 0x18, 0x00, 0x9F, 0xE5 + .byte 0x03, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x14, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02 + .byte 0x0C, 0x00, 0x9F, 0xE5, 0x11, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02, 0x18, 0x00, 0x9F, 0xE5, 0x90, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x90, 0xE5, 0x16, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02 + + arm_func_start ov18_0238C27C +ov18_0238C27C: @ 0x0238C27C + push {r3, lr} + ldr r0, _0238C33C @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #5] + bl FUN_0202B4F0 + cmp r0, #0 + popne {r3, pc} + ldr r0, _0238C33C @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #5] + bl FUN_0202B57C + sub r0, r0, #5 + cmp r0, #0xb + addls pc, pc, r0, lsl #2 + b _0238C2F4 +_0238C2B8: @ jump table + b _0238C32C @ case 0 + b _0238C32C @ case 1 + b _0238C2F4 @ case 2 + b _0238C2F4 @ case 3 + b _0238C2F4 @ case 4 + b _0238C2F4 @ case 5 + b _0238C2F4 @ case 6 + b _0238C2F4 @ case 7 + b _0238C320 @ case 8 + b _0238C2F4 @ case 9 + b _0238C2E8 @ case 10 + b _0238C300 @ case 11 +_0238C2E8: + mov r0, #0x17 + bl ov18_0238BE28 + pop {r3, pc} +_0238C2F4: + mov r0, #0x19 + bl ov18_0238BE28 + pop {r3, pc} +_0238C300: + ldr r0, _0238C33C @ =0x0238D620 + mov r3, #0 + ldr r2, [r0] + mov r1, #0x1b + str r3, [r2, #0x88] + ldr r0, [r0] + str r1, [r0, #0x80] + pop {r3, pc} +_0238C320: + mov r0, #0x2e + bl ov18_0238BE28 + pop {r3, pc} +_0238C32C: + bl FUN_0203A638 + mov r0, #0x11 + bl ov18_0238BE28 + pop {r3, pc} + .align 2, 0 +_0238C33C: .4byte 0x0238D620 + arm_func_end ov18_0238C27C +_0238C340: + .byte 0x18, 0x00, 0x9F, 0xE5, 0x01, 0x3C, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x18, 0x10, 0xA0, 0xE3 + .byte 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x20, 0xD6, 0x38, 0x02 + + arm_func_start ov18_0238C364 +ov18_0238C364: @ 0x0238C364 + push {r3, lr} + bl FUN_0203F398 + cmp r0, #1 + popne {r3, pc} + bl FUN_0203F990 + ldr r0, _0238C394 @ =0x0238D620 + mvn r2, #1 + ldr r1, [r0] + mov r0, #0x11 + strb r2, [r1, #7] + bl ov18_0238BE28 + pop {r3, pc} + .align 2, 0 +_0238C394: .4byte 0x0238D620 + arm_func_end ov18_0238C364 +_0238C398: + .byte 0x18, 0x00, 0x9F, 0xE5, 0x18, 0x30, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x90, 0xE5, 0x1A, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02, 0x01, 0x02, 0x00, 0x00 + + arm_func_start ov18_0238C3C0 +ov18_0238C3C0: @ 0x0238C3C0 + push {r4, lr} + bl FUN_020407EC + movs r4, r0 + beq _0238C3E4 + ldr r0, _0238C424 @ =0x0238D620 + ldr r0, [r0] + add r0, r0, #0x300 + ldrsh r0, [r0, #0x8c] + bl FUN_0203FD80 +_0238C3E4: + cmp r4, #1 + beq _0238C40C + cmp r4, #2 + beq _0238C400 + cmp r4, #7 + beq _0238C418 + pop {r4, pc} +_0238C400: + mov r0, #0x1f + bl ov18_0238BE28 + pop {r4, pc} +_0238C40C: + mov r0, #0x11 + bl ov18_0238BE28 + pop {r4, pc} +_0238C418: + mov r0, #0x1d + bl ov18_0238BE28 + pop {r4, pc} + .align 2, 0 +_0238C424: .4byte 0x0238D620 + arm_func_end ov18_0238C3C0 + + arm_func_start ov18_0238C428 +ov18_0238C428: @ 0x0238C428 + push {r3, lr} + ldr r1, _0238C474 @ =0x0238D620 + ldr r0, _0238C478 @ =0x020B0A48 + ldr r2, [r1] + ldr r1, [r0] + add r0, r2, #0x300 + ldrsh r2, [r0, #0x8c] + mov r0, #0x44 + mov r3, #0 + smlabb r1, r2, r0, r1 + ldrsh r0, [r1, #4] + ldrsh r2, [r1, #8] + add r1, r1, #0x14 + bl FUN_02041A40 + ldr r0, _0238C474 @ =0x0238D620 + mov r1, #0x1c + ldr r0, [r0] + str r1, [r0, #0x80] + pop {r3, pc} + .align 2, 0 +_0238C474: .4byte 0x0238D620 +_0238C478: .4byte 0x020B0A48 + arm_func_end ov18_0238C428 +_0238C47C: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0xBD, 0xD5, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x18, 0x18, 0xD7, 0xF2, 0xEB + .byte 0x95, 0x2B, 0xF3, 0xEB, 0x11, 0x00, 0xA0, 0xE3, 0x62, 0xFE, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov18_0238C4A0 +ov18_0238C4A0: @ 0x0238C4A0 + push {r3, lr} + bl FUN_0203FD38 + ldr r1, _0238C4E4 @ =0x0238D620 + ldr r1, [r1] + str r0, [r1, #0x3a0] + bl FUN_02041094 + ldr r2, _0238C4E4 @ =0x0238D620 + mov ip, #0x400 + ldr r1, [r2] + mov r3, #0x1e + add r1, r1, #0x300 + strh r0, [r1, #0xa4] + ldr r0, [r2] + str ip, [r0, #0x88] + ldr r0, [r2] + str r3, [r0, #0x80] + pop {r3, pc} + .align 2, 0 +_0238C4E4: .4byte 0x0238D620 + arm_func_end ov18_0238C4A0 +_0238C4E8: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x49, 0xD5, 0xF2, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x08, 0x19, 0x00, 0xA0, 0xE3, 0x49, 0xFE, 0xFF, 0xEB + .byte 0x08, 0x80, 0xBD, 0xE8, 0x18, 0x00, 0x9F, 0xE5, 0x0A, 0x3C, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x20, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02 + + arm_func_start ov18_0238C528 +ov18_0238C528: @ 0x0238C528 + push {r3, r4, r5, lr} + ldr r0, _0238C714 @ =0x0238D620 + mov r4, #0 + ldr r0, [r0] + ldrsb r0, [r0, #0xa] + bl FUN_0202B4F0 + cmp r0, #0 + popne {r3, r4, r5, pc} + bl FUN_02041094 + ldr r1, _0238C714 @ =0x0238D620 + mov r5, r0 + ldr r0, [r1] + ldrsb r0, [r0, #0xa] + bl FUN_0202B57C + sub r1, r0, #4 + cmp r1, #0xe + addls pc, pc, r1, lsl #2 + b _0238C6D0 +_0238C570: @ jump table + b _0238C6BC @ case 0 + b _0238C6D0 @ case 1 + b _0238C6D0 @ case 2 + b _0238C5AC @ case 3 + b _0238C5C8 @ case 4 + b _0238C638 @ case 5 + b _0238C6A8 @ case 6 + b _0238C5AC @ case 7 + b _0238C5AC @ case 8 + b _0238C6D0 @ case 9 + b _0238C6D0 @ case 10 + b _0238C6D0 @ case 11 + b _0238C6D0 @ case 12 + b _0238C670 @ case 13 + b _0238C68C @ case 14 +_0238C5AC: + ldr r0, _0238C718 @ =0x00003F07 + mov r1, #0x100 + bl FUN_02017C74 + mov r0, r5 + mov r4, #1 + bl FUN_02041000 + b _0238C6E4 +_0238C5C8: + mov r4, #1 + bl FUN_0200ECFC + cmp r0, #0x1f4 + bge _0238C5EC + mov r0, #0 + bl FUN_02017CCC + mov r0, #0x13 + bl ov18_0238BE28 + pop {r3, r4, r5, pc} +_0238C5EC: + mov r0, r5 + bl FUN_02041194 + cmp r0, #0 + beq _0238C62C + bl FUN_02041414 + cmp r0, #0 + bne _0238C614 + ldr r0, _0238C71C @ =0x00001308 + bl FUN_02017C80 + b _0238C620 +_0238C614: + ldr r0, _0238C718 @ =0x00003F07 + mov r1, #0x100 + bl FUN_02017C74 +_0238C620: + mov r0, r5 + bl FUN_020412B0 + b _0238C6E4 +_0238C62C: + mov r0, #2 + bl FUN_02017CCC + b _0238C6E4 +_0238C638: + mov r0, r5 + mov r4, #1 + bl FUN_02041364 + cmp r0, #0 + beq _0238C664 + ldr r0, _0238C718 @ =0x00003F07 + mov r1, #0x100 + bl FUN_02017C74 + mov r0, r5 + bl FUN_02041394 + b _0238C6E4 +_0238C664: + mov r0, #2 + bl FUN_02017CCC + b _0238C6E4 +_0238C670: + mov r0, r4 + bl FUN_02017CCC + mov r0, r5 + bl FUN_020416BC + bl FUN_020410A4 + mov r4, #1 + b _0238C6E4 +_0238C68C: + mov r0, r4 + bl FUN_02017CCC + mov r0, r5 + bl FUN_020416DC + bl FUN_020410A4 + mov r4, #1 + b _0238C6E4 +_0238C6A8: + ldr r0, _0238C718 @ =0x00003F07 + bl FUN_02017C80 + mov r0, #0x21 + bl ov18_0238BE28 + b _0238C6E4 +_0238C6BC: + mov r0, r4 + bl FUN_02017CCC + mov r0, #0x1d + bl ov18_0238BE28 + b _0238C6E4 +_0238C6D0: + cmp r0, #6 + beq _0238C6E0 + mov r0, #1 + bl FUN_02017CCC +_0238C6E0: + mov r4, #1 +_0238C6E4: + cmp r4, #0 + popeq {r3, r4, r5, pc} + ldr r0, _0238C714 @ =0x0238D620 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #8] + cmp r0, r1 + beq _0238C708 + bl FUN_020307EC +_0238C708: + mov r0, #0x19 + bl ov18_0238BE28 + pop {r3, r4, r5, pc} + .align 2, 0 +_0238C714: .4byte 0x0238D620 +_0238C718: .4byte 0x00003F07 +_0238C71C: .4byte 0x00001308 + arm_func_end ov18_0238C528 + + arm_func_start ov18_0238C720 +ov18_0238C720: @ 0x0238C720 + push {r4, lr} + bl FUN_02041094 + mov r4, r0 + bl FUN_02041154 + ldr r1, _0238C788 @ =0x0238D620 + cmp r4, #0 + ldr r1, [r1] + str r0, [r1, #0x24] + bne _0238C760 + mov r0, r4 + bl FUN_02041424 + cmp r0, #0 + bne _0238C760 + mov r0, #0x22 + bl ov18_0238BE28 + pop {r4, pc} +_0238C760: + mov r0, r4 + bl FUN_02041364 + cmp r0, #0 + beq _0238C77C + mov r0, #0x24 + bl ov18_0238BE28 + pop {r4, pc} +_0238C77C: + mov r0, #0x27 + bl ov18_0238BE28 + pop {r4, pc} + .align 2, 0 +_0238C788: .4byte 0x0238D620 + arm_func_end ov18_0238C720 +_0238C78C: + .byte 0x18, 0x00, 0x9F, 0xE5 + .byte 0x03, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x23, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02 + .byte 0x04, 0xC0, 0x9F, 0xE5, 0x19, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x28, 0xBE, 0x38, 0x02 + .byte 0x18, 0x00, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x25, 0x10, 0xA0, 0xE3 + .byte 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x20, 0xD6, 0x38, 0x02, 0x18, 0x00, 0x9F, 0xE5, 0x43, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x26, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02 + + arm_func_start ov18_0238C808 +ov18_0238C808: @ 0x0238C808 + push {r4, lr} + ldr r0, _0238C884 @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #6] + bl FUN_0202B4F0 + cmp r0, #0 + popne {r4, pc} + bl FUN_02041094 + ldr r1, _0238C884 @ =0x0238D620 + mov r4, r0 + ldr r0, [r1] + ldrsb r0, [r0, #6] + bl FUN_0202B57C + cmp r0, #0 + beq _0238C850 + cmp r0, #1 + beq _0238C878 + pop {r4, pc} +_0238C850: + mov r0, r4 + bl FUN_02041484 + ldr r0, _0238C884 @ =0x0238D620 + ldr r0, [r0] + add r0, r0, #0x300 + ldrsh r0, [r0, #0x8c] + bl FUN_0203FD80 + mov r0, #0x2a + bl ov18_0238BE28 + pop {r4, pc} +_0238C878: + mov r0, #0x19 + bl ov18_0238BE28 + pop {r4, pc} + .align 2, 0 +_0238C884: .4byte 0x0238D620 + arm_func_end ov18_0238C808 +_0238C888: + .byte 0x18, 0x00, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x90, 0xE5, 0x28, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02, 0x18, 0x00, 0x9F, 0xE5 + .byte 0x43, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x29, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02 + + arm_func_start ov18_0238C8D0 +ov18_0238C8D0: @ 0x0238C8D0 + push {r4, lr} + ldr r0, _0238C94C @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #6] + bl FUN_0202B4F0 + cmp r0, #0 + popne {r4, pc} + bl FUN_02041094 + ldr r1, _0238C94C @ =0x0238D620 + mov r4, r0 + ldr r0, [r1] + ldrsb r0, [r0, #6] + bl FUN_0202B57C + cmp r0, #0 + beq _0238C918 + cmp r0, #1 + beq _0238C940 + pop {r4, pc} +_0238C918: + mov r0, r4 + bl FUN_02041484 + ldr r0, _0238C94C @ =0x0238D620 + ldr r0, [r0] + add r0, r0, #0x300 + ldrsh r0, [r0, #0x8c] + bl FUN_0203FD80 + mov r0, #0x2c + bl ov18_0238BE28 + pop {r4, pc} +_0238C940: + mov r0, #0x19 + bl ov18_0238BE28 + pop {r4, pc} + .align 2, 0 +_0238C94C: .4byte 0x0238D620 + arm_func_end ov18_0238C8D0 +_0238C950: + .byte 0x18, 0x00, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x2B, 0x10, 0xA0, 0xE3 + .byte 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x20, 0xD6, 0x38, 0x02, 0x04, 0xC0, 0x9F, 0xE5, 0x19, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1 + .byte 0x28, 0xBE, 0x38, 0x02, 0x18, 0x00, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x2D, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02, 0x04, 0xC0, 0x9F, 0xE5, 0x19, 0x00, 0xA0, 0xE3 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x28, 0xBE, 0x38, 0x02 + + arm_func_start ov18_0238C9B8 +ov18_0238C9B8: @ 0x0238C9B8 + push {r3, lr} + bl FUN_0204159C + cmp r0, #0 + ldreq r0, _0238CA14 @ =0x0238D620 + moveq r1, #0x2f + ldreq r0, [r0] + streq r1, [r0, #0x80] + popeq {r3, pc} + ldr r0, _0238CA14 @ =0x0238D620 + ldr r0, [r0] + add r0, r0, #0x300 + ldrsh r0, [r0, #0x8c] + bl ov18_0238ABB0 + cmp r0, #0 + ldrle r0, _0238CA14 @ =0x0238D620 + movle r1, #0x31 + ldrle r0, [r0] + strle r1, [r0, #0x80] + ldrgt r0, _0238CA14 @ =0x0238D620 + movgt r1, #0x33 + ldrgt r0, [r0] + strgt r1, [r0, #0x80] + pop {r3, pc} + .align 2, 0 +_0238CA14: .4byte 0x0238D620 + arm_func_end ov18_0238C9B8 +_0238CA18: + .byte 0x18, 0x00, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x90, 0xE5, 0x30, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02, 0x04, 0xC0, 0x9F, 0xE5 + .byte 0x11, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x28, 0xBE, 0x38, 0x02, 0x18, 0x00, 0x9F, 0xE5 + .byte 0x03, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x32, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02 + .byte 0x04, 0xC0, 0x9F, 0xE5, 0x11, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x28, 0xBE, 0x38, 0x02 + .byte 0x24, 0x00, 0x9F, 0xE5, 0x03, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x00, 0x30, 0xA0, 0xE3 + .byte 0x88, 0x20, 0x81, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x34, 0x10, 0xA0, 0xE3, 0xBC, 0x38, 0xC2, 0xE1 + .byte 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02 + .byte 0x18, 0x00, 0x9F, 0xE5, 0x01, 0x3A, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x35, 0x10, 0xA0, 0xE3 + .byte 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x20, 0xD6, 0x38, 0x02 + + arm_func_start ov18_0238CAD4 +ov18_0238CAD4: @ 0x0238CAD4 + push {r3, r4, lr} + sub sp, sp, #4 + add r1, sp, #0 + mov r0, #0 + bl FUN_0200625C + ldr r0, _0238CBD8 @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #0xb] + bl FUN_0202BCFC + ldr r1, _0238CBD8 @ =0x0238D620 + ldr r2, [r1] + strh r0, [r2, #0x8c] + ldrh r0, [sp] + tst r0, #8 + beq _0238CB8C + ldr r1, [r1] + ldrsb r0, [r1, #0xb] + ldrsh r4, [r1, #0x8c] + bl FUN_0202C1E4 + ldr r0, _0238CBD8 @ =0x0238D620 + mov r1, r4 + ldr r0, [r0] + add r0, r0, #0x300 + ldrsh r0, [r0, #0x8c] + bl ov18_0238ADA8 + ldr r2, _0238CBD8 @ =0x0238D620 + mov lr, #0 + ldr r1, [r2] + mov ip, #1 + str lr, [r1, #0x3a0] + ldr r1, [r2] + mov r3, #0x38 + add r1, r1, #0x300 + strh r0, [r1, #0xaa] + ldr r0, [r2] + strb ip, [r0, #0x3a6] + ldr r0, [r2] + add r0, r0, #0x300 + strh lr, [r0, #0xa8] + ldr r0, [r2] + strb ip, [r0, #0x3ac] + ldr r0, [r2] + strb lr, [r0, #0x3ad] + ldr r0, [r2] + str r3, [r0, #0x80] + b _0238CBD0 +_0238CB8C: + ldr r0, [r1] + ldrsb r0, [r0, #0xb] + bl FUN_0202BCBC + cmp r0, #0 + bne _0238CBD0 + ldr r0, _0238CBD8 @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #0xb] + bl FUN_0202BD10 + mvn r1, #0 + cmp r0, r1 + bne _0238CBC8 + mov r0, #0x11 + bl ov18_0238BE28 + b _0238CBD0 +_0238CBC8: + mov r0, #0x36 + bl ov18_0238BE28 +_0238CBD0: + add sp, sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0238CBD8: .4byte 0x0238D620 + arm_func_end ov18_0238CAD4 +_0238CBDC: + .byte 0x18, 0x00, 0x9F, 0xE5 + .byte 0x03, 0x3A, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x37, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02 + + arm_func_start ov18_0238CC00 +ov18_0238CC00: @ 0x0238CC00 + push {r4, lr} + ldr r0, _0238CD84 @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #0xb] + bl FUN_0202BD10 + ldr r1, _0238CD84 @ =0x0238D620 + mov r4, r0 + ldr r0, [r1] + ldrsb r0, [r0, #0xc] + bl FUN_0202B4F0 + cmp r0, #0 + popne {r4, pc} + ldr r0, _0238CD84 @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #0xc] + bl FUN_0202B57C + sub r0, r0, #4 + cmp r0, #9 + addls pc, pc, r0, lsl #2 + b _0238CD5C +_0238CC50: @ jump table + b ov18_0238CCF0 @ case 0 + b _0238CD5C @ case 1 + b _0238CD5C @ case 2 + b _0238CD5C @ case 3 + b _0238CD5C @ case 4 + b _0238CD5C @ case 5 + b _0238CD5C @ case 6 + b _0238CD5C @ case 7 + b _0238CD5C @ case 8 + b _0238CC78 @ case 9 +_0238CC78: + ldr r1, _0238CD84 @ =0x0238D620 + lsl r0, r4, #0x10 + ldr r2, [r1] + asr r1, r0, #0x10 + add r0, r2, #0x300 + ldrsh r0, [r0, #0x8c] + bl ov18_0238ADA8 + arm_func_end ov18_0238CC00 + + arm_func_start ov18_0238CC94 +ov18_0238CC94: @ 0x0238CC94 + ldr r1, _0238CD84 @ =0x0238D620 + mov r4, r0 + ldr r0, [r1] + str r4, [r0, #0x24] + bl FUN_020415BC + arm_func_end ov18_0238CC94 + + arm_func_start ov18_0238CCA8 +ov18_0238CCA8: @ 0x0238CCA8 + cmp r0, #0 + mov r0, r4 + beq _0238CCCC + bl FUN_0203FD14 + ldr r0, _0238CD84 @ =0x0238D620 + arm_func_end ov18_0238CCA8 + + arm_func_start ov18_0238CCBC +ov18_0238CCBC: @ 0x0238CCBC + mov r1, #0x3c + ldr r0, [r0] + str r1, [r0, #0x80] + pop {r4, pc} +_0238CCCC: + bl FUN_02041614 + ldr r0, _0238CD84 @ =0x0238D620 + ldr r0, [r0] + arm_func_end ov18_0238CCBC + + arm_func_start ov18_0238CCD8 +ov18_0238CCD8: @ 0x0238CCD8 + add r0, r0, #0x300 + ldrsh r0, [r0, #0x8c] + bl FUN_0203FD80 + mov r0, #0x3a + bl ov18_0238BE28 + pop {r4, pc} + arm_func_end ov18_0238CCD8 +ov18_0238CCF0: + ldr r1, _0238CD84 @ =0x0238D620 + lsl r0, r4, #0x10 + ldr r2, [r1] + asr r1, r0, #0x10 + add r0, r2, #0x300 + ldrsh r0, [r0, #0x8c] + bl ov18_0238ADA8 + ldr r2, _0238CD84 @ =0x0238D620 + mov r4, #0 + ldr r1, [r2] + mov r3, #1 + str r4, [r1, #0x3a0] + ldr r1, [r2] + add r1, r1, #0x300 + strh r0, [r1, #0xaa] + ldr r1, [r2] + mov r0, #0x38 + strb r3, [r1, #0x3a6] + ldr r1, [r2] + add r1, r1, #0x300 + strh r4, [r1, #0xa8] + ldr r1, [r2] + strb r3, [r1, #0x3ac] + ldr r1, [r2] + strb r4, [r1, #0x3ad] + bl ov18_0238BE28 + pop {r4, pc} +_0238CD5C: + ldr r0, _0238CD84 @ =0x0238D620 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #0xb] + cmp r0, r1 + beq _0238CD78 + bl FUN_0202BBF0 +_0238CD78: + mov r0, #0x34 + bl ov18_0238BE28 + pop {r4, pc} + .align 2, 0 +_0238CD84: .4byte 0x0238D620 +_0238CD88: + .byte 0x18, 0x00, 0x9F, 0xE5, 0x01, 0x3B, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x90, 0xE5, 0x39, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02, 0x08, 0x40, 0x2D, 0xE9 + .byte 0x18, 0xD3, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x80, 0xBD, 0x08, 0x34, 0x00, 0xA0, 0xE3 + .byte 0x18, 0xFC, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8, 0x18, 0x00, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x90, 0xE5, 0x3B, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02, 0x04, 0xC0, 0x9F, 0xE5 + .byte 0x11, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x28, 0xBE, 0x38, 0x02, 0x18, 0x00, 0x9F, 0xE5 + .byte 0x05, 0x39, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x3D, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02 + + arm_func_start ov18_0238CE20 +ov18_0238CE20: @ 0x0238CE20 + push {r4, lr} + bl FUN_020407EC + movs r4, r0 + beq _0238CE44 + ldr r0, _0238CE84 @ =0x0238D620 + ldr r0, [r0] + add r0, r0, #0x300 + ldrsh r0, [r0, #0x8c] + bl FUN_0203FD80 +_0238CE44: + cmp r4, #1 + beq _0238CE6C + cmp r4, #2 + beq _0238CE60 + cmp r4, #7 + beq _0238CE78 + pop {r4, pc} +_0238CE60: + mov r0, #0x3e + bl ov18_0238BE28 + pop {r4, pc} +_0238CE6C: + mov r0, #0x11 + bl ov18_0238BE28 + pop {r4, pc} +_0238CE78: + mov r0, #0x40 + bl ov18_0238BE28 + pop {r4, pc} + .align 2, 0 +_0238CE84: .4byte 0x0238D620 + arm_func_end ov18_0238CE20 + + arm_func_start ov18_0238CE88 +ov18_0238CE88: @ 0x0238CE88 + push {r3, lr} + ldr r0, _0238CED4 @ =0x0238D620 + mov r1, #0xc000 + ldr r0, [r0] + str r1, [r0, #0x88] + bl FUN_02041094 + bl FUN_02041154 + ldr r1, _0238CED4 @ =0x0238D620 + ldr r1, [r1] + str r0, [r1, #0x24] + mov r0, #4 + bl FUN_02041154 + ldr r1, _0238CED4 @ =0x0238D620 + mov r2, #0x3f + ldr r3, [r1] + str r0, [r3, #0x28] + ldr r0, [r1] + str r2, [r0, #0x80] + pop {r3, pc} + .align 2, 0 +_0238CED4: .4byte 0x0238D620 + arm_func_end ov18_0238CE88 + + arm_func_start ov18_0238CED8 +ov18_0238CED8: @ 0x0238CED8 + push {r3, lr} + bl FUN_02041094 + ldr r0, _0238CF94 @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #0xe] + bl FUN_0202B4F0 + cmp r0, #0 + popne {r3, pc} + bl FUN_0203FD38 + ldr r0, _0238CF94 @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #0xe] + bl FUN_0202B57C + sub r0, r0, #4 + cmp r0, #6 + addls pc, pc, r0, lsl #2 + b _0238CF6C +_0238CF1C: @ jump table + b _0238CF60 @ case 0 + b _0238CF6C @ case 1 + b _0238CF6C @ case 2 + b _0238CF6C @ case 3 + b _0238CF6C @ case 4 + b _0238CF6C @ case 5 + b _0238CF38 @ case 6 +_0238CF38: + bl FUN_02041094 + bl FUN_02041364 + cmp r0, #0 + beq _0238CF54 + mov r0, #0x42 + bl ov18_0238BE28 + pop {r3, pc} +_0238CF54: + mov r0, #0x45 + bl ov18_0238BE28 + pop {r3, pc} +_0238CF60: + mov r0, #0x40 + bl ov18_0238BE28 + pop {r3, pc} +_0238CF6C: + ldr r0, _0238CF94 @ =0x0238D620 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #0xb] + cmp r0, r1 + beq _0238CF88 + bl FUN_0202BBF0 +_0238CF88: + mov r0, #0x3c + bl ov18_0238BE28 + pop {r3, pc} + .align 2, 0 +_0238CF94: .4byte 0x0238D620 + arm_func_end ov18_0238CED8 + + arm_func_start ov18_0238CF98 +ov18_0238CF98: @ 0x0238CF98 + push {r4, lr} + bl FUN_0203FD38 + mov r4, r0 + bl FUN_02041094 + cmp r0, #4 + blt _0238CFF0 + bl FUN_0203FD2C + ldr r2, _0238D030 @ =0x0238D620 + mov r1, r0 + ldr r0, [r2] + mov r2, #8 + add r0, r0, #0xa6 + add r0, r0, #0x300 + bl FUN_0208729C + ldr r0, _0238D030 @ =0x0238D620 + mov r2, #0 + ldr r1, [r0] + str r2, [r1, #0x3a0] + ldr r0, [r0] + add r0, r0, #0x300 + strh r2, [r0, #0xa4] + b _0238D010 +_0238CFF0: + ldr r0, _0238D030 @ =0x0238D620 + ldr r0, [r0] + str r4, [r0, #0x3a0] + bl FUN_02041094 + ldr r1, _0238D030 @ =0x0238D620 + ldr r1, [r1] + add r1, r1, #0x300 + strh r0, [r1, #0xa4] +_0238D010: + ldr r0, _0238D030 @ =0x0238D620 + mov r3, #0x400 + ldr r2, [r0] + mov r1, #0x41 + str r3, [r2, #0x88] + ldr r0, [r0] + str r1, [r0, #0x80] + pop {r4, pc} + .align 2, 0 +_0238D030: .4byte 0x0238D620 + arm_func_end ov18_0238CF98 +_0238D034: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x76, 0xD2, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x08, 0x80, 0xBD, 0x08, 0x3C, 0x00, 0xA0, 0xE3, 0x76, 0xFB, 0xFF, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x18, 0x00, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x43, 0x10, 0xA0, 0xE3 + .byte 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x20, 0xD6, 0x38, 0x02, 0x18, 0x00, 0x9F, 0xE5, 0x43, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x44, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02 + + arm_func_start ov18_0238D098 +ov18_0238D098: @ 0x0238D098 + push {r4, lr} + ldr r0, _0238D128 @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #6] + bl FUN_0202B4F0 + cmp r0, #0 + popne {r4, pc} + bl FUN_02041094 + ldr r1, _0238D128 @ =0x0238D620 + mov r4, r0 + ldr r0, [r1] + ldrsb r0, [r0, #6] + bl FUN_0202B57C + cmp r0, #0 + beq _0238D0E0 + cmp r0, #1 + beq _0238D11C + pop {r4, pc} +_0238D0E0: + mov r0, r4 + bl FUN_02041484 + bl FUN_0203FD2C + ldrh r0, [r0, #4] + bl FUN_02041614 + ldr r0, _0238D128 @ =0x0238D620 + ldr r0, [r0] + add r0, r0, #0x300 + ldrsh r0, [r0, #0x8c] + bl FUN_0203FD80 + ldr r0, _0238D128 @ =0x0238D620 + mov r1, #0x48 + ldr r0, [r0] + str r1, [r0, #0x80] + pop {r4, pc} +_0238D11C: + mov r0, #0x3c + bl ov18_0238BE28 + pop {r4, pc} + .align 2, 0 +_0238D128: .4byte 0x0238D620 + arm_func_end ov18_0238D098 +_0238D12C: + .byte 0x18, 0x00, 0x9F, 0xE5 + .byte 0x03, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x46, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1, 0x20, 0xD6, 0x38, 0x02 + .byte 0x18, 0x00, 0x9F, 0xE5, 0x43, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x47, 0x10, 0xA0, 0xE3 + .byte 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x20, 0xD6, 0x38, 0x02 + + arm_func_start ov18_0238D174 +ov18_0238D174: @ 0x0238D174 + push {r4, lr} + ldr r0, _0238D204 @ =0x0238D620 + ldr r0, [r0] + ldrsb r0, [r0, #6] + bl FUN_0202B4F0 + cmp r0, #0 + popne {r4, pc} + bl FUN_02041094 + ldr r1, _0238D204 @ =0x0238D620 + mov r4, r0 + ldr r0, [r1] + ldrsb r0, [r0, #6] + bl FUN_0202B57C + cmp r0, #0 + beq _0238D1BC + cmp r0, #1 + beq _0238D1F8 + pop {r4, pc} +_0238D1BC: + mov r0, r4 + bl FUN_02041484 + bl FUN_0203FD2C + ldrh r0, [r0, #4] + bl FUN_02041614 + ldr r0, _0238D204 @ =0x0238D620 + ldr r0, [r0] + add r0, r0, #0x300 + ldrsh r0, [r0, #0x8c] + bl FUN_0203FD80 + ldr r0, _0238D204 @ =0x0238D620 + mov r1, #0x4a + ldr r0, [r0] + str r1, [r0, #0x80] + pop {r4, pc} +_0238D1F8: + mov r0, #0x3c + bl ov18_0238BE28 + pop {r4, pc} + .align 2, 0 +_0238D204: .4byte 0x0238D620 + arm_func_end ov18_0238D174 + @ 0x0238D208 diff --git a/asm/overlay_19.s b/asm/overlay_19.s index 55b04dde..e9cb9be5 100644 --- a/asm/overlay_19.s +++ b/asm/overlay_19.s @@ -3,3 +3,3856 @@ .include "global.inc" .text + + arm_func_start GetBarItem +GetBarItem: @ 0x0238A140 + push {r3, lr} + mov lr, #0 + ldr r3, _0238A17C @ =0x0238DBCC + mov r1, #0x16 + b _0238A16C +_0238A154: + mul ip, lr, r1 + ldrsh r2, [r3, ip] + cmp r0, r2 + addeq r0, r3, ip + popeq {r3, pc} + add lr, lr, #1 +_0238A16C: + cmp lr, #0x42 + blo _0238A154 + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0238A17C: .4byte 0x0238DBCC + arm_func_end GetBarItem + + arm_func_start ov19_0238A180 +ov19_0238A180: @ 0x0238A180 + mov r2, #2 + str r2, [r0] + mov r0, #5 + str r0, [r1] + bx lr + arm_func_end ov19_0238A180 + + arm_func_start ov19_0238A194 +ov19_0238A194: @ 0x0238A194 + mov r2, #1 + str r2, [r0] + mov r0, #3 + str r0, [r1] + bx lr + arm_func_end ov19_0238A194 + + arm_func_start ov19_0238A1A8 +ov19_0238A1A8: @ 0x0238A1A8 + push {r3, lr} + bl GetBarItem + add r0, r0, #0xe + pop {r3, pc} + arm_func_end ov19_0238A1A8 + + arm_func_start ov19_0238A1B8 +ov19_0238A1B8: @ 0x0238A1B8 + ldr r0, _0238A1C0 @ =0x0238DAE0 + bx lr + .align 2, 0 +_0238A1C0: .4byte 0x0238DAE0 + arm_func_end ov19_0238A1B8 + + arm_func_start GetRecruitableMonsterAll +GetRecruitableMonsterAll: @ 0x0238A1C4 + push {r4, r5, r6, lr} + mov r0, #0x430 + mov r1, #0xf + bl FUN_02001170 + mov r5, r0 + mov r4, #0 + mov r6, #1 +_0238A1E0: + lsl r0, r6, #0x10 + asr r0, r0, #0x10 + bl FUN_02062A58 + cmp r0, #0 + beq _0238A210 + lsl r0, r6, #0x10 + asr r0, r0, #0x10 + bl FUN_020527C4 + cmp r0, #1 + lsleq r0, r4, #1 + strheq r6, [r5, r0] + addeq r4, r4, #1 +_0238A210: + add r6, r6, #1 + cmp r6, #0x218 + blt _0238A1E0 + cmp r4, #0 + ble _0238A260 + mov r0, r4 + bl FUN_02002274 + lsl r1, r0, #1 + ldrsh r4, [r5, r1] + mov r0, #2 + bl FUN_02002274 + cmp r0, #1 + mov r0, r4 + bne _0238A254 + bl FUN_02054BE0 + mov r4, r0 + b _0238A264 +_0238A254: + bl FUN_02054BA4 + mov r4, r0 + b _0238A264 +_0238A260: + mov r4, #0 +_0238A264: + mov r0, r5 + bl FUN_02001188 + mov r0, r4 + pop {r4, r5, r6, pc} + arm_func_end GetRecruitableMonsterAll + + arm_func_start GetRecruitableMonsterList +GetRecruitableMonsterList: @ 0x0238A274 + push {r4, r5, r6, r7, r8, lr} + mov r0, #0xd8 + mov r1, #0xf + bl FUN_02001170 + mov r6, #0 + ldr r4, _0238A318 @ =0x0238DAF4 + mov r5, r0 + mov r7, r6 +_0238A294: + lsl r0, r7, #1 + ldrsh r8, [r4, r0] + mov r0, r8 + bl FUN_02062A58 + cmp r0, #0 + lslne r0, r6, #1 + add r7, r7, #1 + strhne r8, [r5, r0] + addne r6, r6, #1 + cmp r7, #0x6c + blt _0238A294 + cmp r6, #0 + ble _0238A304 + mov r0, r6 + bl FUN_02002274 + lsl r1, r0, #1 + ldrsh r4, [r5, r1] + mov r0, #2 + bl FUN_02002274 + cmp r0, #1 + mov r0, r4 + bne _0238A2F8 + bl FUN_02054BE0 + mov r4, r0 + b _0238A308 +_0238A2F8: + bl FUN_02054BA4 + mov r4, r0 + b _0238A308 +_0238A304: + mov r4, #0 +_0238A308: + mov r0, r5 + bl FUN_02001188 + mov r0, r4 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0238A318: .4byte 0x0238DAF4 + arm_func_end GetRecruitableMonsterList + + arm_func_start GetRecruitableMonsterListRestricted +GetRecruitableMonsterListRestricted: @ 0x0238A31C + push {r4, r5, r6, r7, r8, lr} + mov r0, #0xd8 + mov r1, #0xf + bl FUN_02001170 + mov r6, #0 + ldr r4, _0238A3D0 @ =0x0238DAF4 + mov r5, r0 + mov r7, r6 +_0238A33C: + lsl r0, r7, #1 + ldrsh r8, [r4, r0] + mov r0, r8 + bl FUN_02062A58 + cmp r0, #0 + beq _0238A36C + mov r0, r8 + bl FUN_020527C4 + cmp r0, #1 + lsleq r0, r6, #1 + strheq r8, [r5, r0] + addeq r6, r6, #1 +_0238A36C: + add r7, r7, #1 + cmp r7, #0x6c + blt _0238A33C + cmp r6, #0 + ble _0238A3BC + mov r0, r6 + bl FUN_02002274 + lsl r1, r0, #1 + ldrsh r4, [r5, r1] + mov r0, #2 + bl FUN_02002274 + cmp r0, #1 + mov r0, r4 + bne _0238A3B0 + bl FUN_02054BE0 + mov r4, r0 + b _0238A3C0 +_0238A3B0: + bl FUN_02054BA4 + mov r4, r0 + b _0238A3C0 +_0238A3BC: + mov r4, #0 +_0238A3C0: + mov r0, r5 + bl FUN_02001188 + mov r0, r4 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0238A3D0: .4byte 0x0238DAF4 + arm_func_end GetRecruitableMonsterListRestricted + + arm_func_start ov19_0238A3D4 +ov19_0238A3D4: @ 0x0238A3D4 + cmp r0, #0 + ldrne r1, _0238A3E8 @ =0x0238DAE8 + strne r1, [r0] + mov r0, #6 + bx lr + .align 2, 0 +_0238A3E8: .4byte 0x0238DAE8 + arm_func_end ov19_0238A3D4 + + arm_func_start ov19_0238A3EC +ov19_0238A3EC: @ 0x0238A3EC + push {r4, r5, r6, r7, r8, lr} + mov r8, r0 + bl FUN_0204CB94 + mov r6, #0 + ldr r5, _0238A464 @ =0x0238DAE8 + mov r4, r0 + mov r7, r6 +_0238A408: + ldrb r0, [r5, r7, lsl #1] + bl FUN_0206A714 + bl FUN_0204CF9C + cmp r0, #0 + bne _0238A450 + add r0, r5, r7, lsl #1 + ldrb r0, [r0, #1] + lsl r1, r7, #1 + cmp r0, r4 + bhi _0238A450 + ldrb r0, [r5, r1] + bl FUN_0204D2F8 + cmp r0, #0 + bne _0238A450 + cmp r8, #0 + ldrbne r0, [r5, r7, lsl #1] + strbne r0, [r8, r6] + add r6, r6, #1 +_0238A450: + add r7, r7, #1 + cmp r7, #6 + blt _0238A408 + mov r0, r6 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0238A464: .4byte 0x0238DAE8 + arm_func_end ov19_0238A3EC + + arm_func_start ov19_0238A468 +ov19_0238A468: @ 0x0238A468 + push {r3, lr} + ldr r0, _0238A4A0 @ =0x02324DB0 + ldr r0, [r0] + cmp r0, #0 + ldrsbne r0, [r0, #0xc] + mvnne r1, #1 + cmpne r0, r1 + popeq {r3, pc} + bl FUN_0202F650 + ldr r0, _0238A4A0 @ =0x02324DB0 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0xc] + pop {r3, pc} + .align 2, 0 +_0238A4A0: .4byte 0x02324DB0 + arm_func_end ov19_0238A468 + + arm_func_start ov19_0238A4A4 +ov19_0238A4A4: @ 0x0238A4A4 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x308 + sub sp, sp, #0x800 + ldr r0, _0238B424 @ =0x02324DB0 + ldr r8, [r0] + ldr r0, [r8, #4] + cmp r0, #0x40 + addls pc, pc, r0, lsl #2 + b _0238C598 +_0238A4C8: @ jump table + b _0238A5CC @ case 0 + b _0238A5E8 @ case 1 + b _0238A624 @ case 2 + b _0238A604 @ case 3 + b _0238A664 @ case 4 + b _0238C50C @ case 5 + b _0238C50C @ case 6 + b _0238C50C @ case 7 + b _0238A7D8 @ case 8 + b _0238A838 @ case 9 + b _0238A970 @ case 10 + b _0238AA08 @ case 11 + b _0238AAA8 @ case 12 + b _0238C50C @ case 13 + b _0238AAD4 @ case 14 + b _0238AB00 @ case 15 + b _0238ABC0 @ case 16 + b _0238ACCC @ case 17 + b _0238AD0C @ case 18 + b _0238AD50 @ case 19 + b _0238AD90 @ case 20 + b _0238ADE4 @ case 21 + b _0238AE20 @ case 22 + b _0238AE74 @ case 23 + b _0238AEA8 @ case 24 + b _0238AEC8 @ case 25 + b _0238C50C @ case 26 + b _0238B01C @ case 27 + b _0238B040 @ case 28 + b _0238B320 @ case 29 + b _0238B34C @ case 30 + b _0238B3B4 @ case 31 + b _0238B4A4 @ case 32 + b _0238B4F8 @ case 33 + b _0238B528 @ case 34 + b _0238B5D8 @ case 35 + b _0238B6E0 @ case 36 + b _0238B6C8 @ case 37 + b _0238BDEC @ case 38 + b _0238BE08 @ case 39 + b _0238BE34 @ case 40 + b _0238BE50 @ case 41 + b _0238BE68 @ case 42 + b _0238BEE0 @ case 43 + b _0238BF44 @ case 44 + b _0238BF64 @ case 45 + b _0238BFA4 @ case 46 + b _0238BFBC @ case 47 + b _0238C004 @ case 48 + b _0238C07C @ case 49 + b _0238C0FC @ case 50 + b _0238C1BC @ case 51 + b _0238C244 @ case 52 + b _0238C2A0 @ case 53 + b _0238C2E4 @ case 54 + b _0238C348 @ case 55 + b _0238C380 @ case 56 + b _0238C598 @ case 57 + b _0238C3AC @ case 58 + b _0238C410 @ case 59 + b _0238C43C @ case 60 + b _0238C46C @ case 61 + b _0238C570 @ case 62 + b _0238C50C @ case 63 + b _0238C480 @ case 64 +_0238A5CC: + mvn r0, #0 + mov r1, #0 + bl FUN_022E8124 + bl FUN_02311D6C + mov r0, #1 + str r0, [r8, #4] + b _0238C598 +_0238A5E8: + bl FUN_0230D220 + cmp r0, #0 + ldreq r1, [r8, #8] + mvneq r0, #0 + streq r1, [r8, #4] + streq r0, [r8, #8] + b _0238C598 +_0238A604: + add r0, r8, #0x100 + ldrsh r1, [r0] + add r1, r1, #1 + strh r1, [r0] + ldrsh r0, [r0] + cmp r0, #0xa + blt _0238C598 + bl FUN_02057AC4 +_0238A624: + bl ov19_0238D450 + ldr r0, [r8, #4] + ldr r4, _0238B428 @ =0x0001012E + cmp r0, #2 + ldreq r0, _0238B42C @ =0x0000458B + ldr r2, _0238B430 @ =0x0238E250 + ldrne r0, _0238B434 @ =0x0000458C + lsl r1, r0, #0x10 + mov r0, #0 + lsr r3, r1, #0x10 + mov r1, #0x3000 + stm sp, {r0, r4} + bl ov19_0238D3A0 + mov r0, #4 + str r0, [r8, #4] + b _0238C598 +_0238A664: + bl ov19_0238D418 + cmp r0, #1 + bne _0238A740 + bl FUN_0200ED84 + mov sb, #0 + mov r7, #1 + mov sl, r0 + mov r6, sb + mov r4, sb + mov r5, r7 + b _0238A6D8 +_0238A690: + lsl r0, sb, #0x10 + asr r0, r0, #0x10 + bl FUN_0200F348 + ldrb r1, [r0] + tst r1, #1 + movne r1, r7 + moveq r1, r6 + tst r1, #0xff + beq _0238A6D4 + ldrsh r0, [r0, #4] + bl GetBarItem + cmp r0, #0 + movne r0, r5 + moveq r0, r4 + tst r0, #0xff + movne r0, #1 + bne _0238A6E4 +_0238A6D4: + add sb, sb, #1 +_0238A6D8: + cmp sb, sl + blt _0238A690 + mov r0, #0 +_0238A6E4: + cmp r0, #0 + movne r4, #7 + movne r5, #8 + ldrne r6, _0238B438 @ =0x00004590 + bne _0238A710 + add r0, r8, #0x100 + mov r1, #0xa + ldr r6, _0238B43C @ =0x0000458F + strh r1, [r0] + mov r4, #6 + mov r5, #3 +_0238A710: + add r0, sp, #0xa00 + add r0, r0, #0xb8 + bl FUN_02023690 + ldr r3, _0238B428 @ =0x0001012E + add r2, sp, #0xa00 + ldr r0, _0238B440 @ =0x0000301C + add r2, r2, #0xb8 + mov r1, r6 + str r3, [sp, #0xb04] + bl FUN_02046BE8 + stmib r8, {r4, r5} + b _0238C598 +_0238A740: + cmp r0, #2 + bne _0238A790 + add r0, sp, #0xa00 + add r0, r0, #0x68 + bl FUN_02023690 + ldr r3, _0238B428 @ =0x0001012E + add r2, sp, #0xa00 + ldr r0, _0238B440 @ =0x0000301C + ldr r1, _0238B444 @ =0x0000458D + add r2, r2, #0x68 + str r3, [sp, #0xab4] + bl FUN_02046BE8 + add r0, r8, #0x100 + mov r1, #0xa + strh r1, [r0] + mov r0, #5 + str r0, [r8, #4] + mov r0, #3 + str r0, [r8, #8] + b _0238C598 +_0238A790: + sub r0, r0, #9 + cmp r0, #1 + bhi _0238C598 + add r0, sp, #0xa00 + add r0, r0, #0x18 + bl FUN_02023690 + ldr r3, _0238B428 @ =0x0001012E + add r2, sp, #0xa00 + ldr r0, _0238B440 @ =0x0000301C + ldr r1, _0238B448 @ =0x0000458E + add r2, r2, #0x18 + str r3, [sp, #0xa64] + bl FUN_02046BE8 + mov r0, #0x3f + str r0, [r8, #4] + sub r0, r0, #0x40 + str r0, [r8, #8] + b _0238C598 +_0238A7D8: + bl ov19_0238D47C + bl FUN_02046D20 + bl ov19_0238C5A8 + ldr r1, _0238B424 @ =0x02324DB0 + mvn r0, #1 + ldr r4, [r1] + ldrsb r1, [r4, #0x20] + cmp r1, r0 + bne _0238A82C + ldr r1, _0238B44C @ =ov19_0238D4A4 + add r0, r4, #0x5c + str r1, [sp] + str r0, [sp, #4] + mov r1, #0 + str r1, [sp, #8] + ldr r2, _0238B450 @ =0x0238E360 + ldr r0, [r4, #0x64] + ldrsh r2, [r2] + add r3, r4, #0x23 + bl FUN_022BD474 + strb r0, [r4, #0x20] +_0238A82C: + mov r0, #9 + str r0, [r8, #4] + b _0238C598 +_0238A838: + add r1, sp, #0x18 + mov r0, #0 + bl FUN_0200625C + ldrsb r0, [r8, #0x20] + bl FUN_022BCE58 + mov r4, r0 + ldrsb r0, [r8, #0x20] + bl FUN_022BCDA8 + ldrh r2, [sp, #0x18] + ldr r1, _0238B450 @ =0x0238E360 + strh r0, [r1] + tst r2, #4 + bne _0238A878 + tst r2, #0x800 + cmpeq r4, #0 + beq _0238A8B0 +_0238A878: + cmp r4, #0 + bne _0238A888 + mov r0, #5 + bl FUN_02017CCC +_0238A888: + bl FUN_0200FC24 + mov r0, #0 + str r0, [r8, #0x58] + bl ov19_0238C5A8 + ldrsb r0, [r8, #0x20] + ldr r1, [r8, #0x64] + bl FUN_022BCC60 + ldrsb r0, [r8, #0x20] + bl FUN_022BCCB0 + b _0238C598 +_0238A8B0: + ldrsb r0, [r8, #0x20] + bl FUN_022BCD68 + cmp r0, #0 + bne _0238A934 + ldrsb r0, [r8, #0x20] + bl FUN_022BCDBC + cmp r0, #0 + blt _0238A910 + ldr r1, _0238B450 @ =0x0238E360 + str r0, [r8, #0x58] + ldrsh r2, [r1, #2] + mov r1, #0 + ldr r0, _0238B454 @ =0x0238E1D8 + lsl r2, r2, #0x18 + asr r4, r2, #0x18 + ldr r2, _0238B458 @ =0x0238E270 + mov r3, r1 + str r4, [sp] + mov r4, #0x70000 + str r4, [sp, #4] + bl ov19_0238D3A0 + mov r0, #0xa + str r0, [r8, #4] + b _0238C598 +_0238A910: + ldrsb r0, [r8, #0x20] + bl FUN_022BCD10 + bl ov19_0238D4E4 + add r0, r8, #0x100 + mov r1, #0xa + strh r1, [r0] + mov r0, #3 + str r0, [r8, #4] + b _0238C598 +_0238A934: + ldrh r0, [sp, #0x18] + tst r0, #8 + beq _0238C598 + ldr r0, _0238B45C @ =0x00003F02 + mov r1, #0x100 + bl FUN_02017C74 + ldrsb r0, [r8, #0x20] + bl FUN_022BCDA8 + str r0, [r8, #0x58] + ldrsb r0, [r8, #0x20] + bl FUN_022BCDF4 + bl ov19_0238D4E4 + mov r0, #0xb + str r0, [r8, #4] + b _0238C598 +_0238A970: + bl ov19_0238D418 + mov r4, r0 + bl FUN_02046BA0 + ldr r1, _0238B450 @ =0x0238E360 + sub r2, r4, #9 + strh r0, [r1, #2] + cmp r2, #1 + bhi _0238A9A4 + ldrsb r0, [r8, #0x20] + bl FUN_022BCC7C + mov r0, #9 + str r0, [r8, #4] + b _0238C598 +_0238A9A4: + cmp r4, #3 + bne _0238A9F0 + add r0, sp, #0x900 + add r0, r0, #0xc8 + bl FUN_02023690 + ldr r0, _0238B428 @ =0x0001012E + str r0, [sp, #0xa14] + bl ov19_0238D4E4 + add r2, sp, #0x900 + ldr r0, _0238B440 @ =0x0000301C + ldr r1, _0238B460 @ =0x00004594 + add r2, r2, #0xc8 + bl FUN_02046BE8 + bl ov19_0238D450 + mov r0, #0xd + str r0, [r8, #4] + mov r0, #0xe + str r0, [r8, #8] + b _0238C598 +_0238A9F0: + cmp r4, #2 + bne _0238C598 + bl ov19_0238D4E4 + mov r0, #0xb + str r0, [r8, #4] + b _0238C598 +_0238AA08: + ldr r0, [r8, #0x58] + add r0, r8, r0, lsl #1 + ldrsh r0, [r0, #0x68] + bl FUN_0200F348 + mov r4, r0 + ldrb r0, [r4] + tst r0, #1 + movne r0, #1 + moveq r0, #0 + tst r0, #0xff + ldrshne r5, [r4, #4] + add r0, sp, #0x900 + add r0, r0, #0x78 + moveq r5, #0 + bl FUN_02023690 + str r5, [sp, #0x988] + ldrh r1, [r4, #2] + add r0, r5, #0xd1 + add r0, r0, #0x2900 + str r1, [sp, #0x99c] + ldrh r1, [r4, #2] + mov r2, #0 + add r4, sp, #0x900 + add r1, r1, #0xbc + lsl r0, r0, #0x10 + str r1, [sp, #0x990] + add r4, r4, #0x78 + str r2, [sp, #0x9a4] + str r4, [sp] + lsr r0, r0, #0x10 + str r0, [sp, #4] + ldr r0, _0238B464 @ =0x0238E1E8 + ldr r1, _0238B468 @ =0x00001013 + ldr r3, _0238B46C @ =0x000008E4 + str r4, [sp, #8] + bl FUN_0202E3CC + strb r0, [r8, #0x21] + mov r0, #0xc + str r0, [r8, #4] + b _0238C598 +_0238AAA8: + ldrsb r0, [r8, #0x21] + bl FUN_0202E6E4 + cmp r0, #0 + bne _0238C598 + ldrsb r0, [r8, #0x21] + bl FUN_0202E6C8 + mvn r0, #1 + strb r0, [r8, #0x21] + mov r0, #8 + str r0, [r8, #4] + b _0238C598 +_0238AAD4: + bl ov19_0238D47C + bl FUN_02046D20 + bl FUN_0203A998 + cmp r0, #0 + bne _0238AAF4 + mov r0, #0xb + mov r1, #0 + bl FUN_02039C2C +_0238AAF4: + mov r0, #0xf + str r0, [r8, #4] + b _0238C598 +_0238AB00: + bl FUN_0203A5A8 + cmp r0, #0 + beq _0238AB54 + bl FUN_0203A9EC + cmp r0, #0 + beq _0238C598 + add r1, sp, #0x16 + mov r0, #0 + bl FUN_0200625C + ldrh r0, [sp, #0x16] + tst r0, #8 + beq _0238C598 + mov r0, #0 + bl FUN_02017CCC + bl FUN_0203AAB0 + str r0, [r8, #0xd4] + bl FUN_0203A5F0 + bl FUN_0203A51C + mov r0, #0x11 + str r0, [r8, #4] + b _0238C598 +_0238AB54: + bl FUN_0203AA20 + mvn r1, #0 + cmp r0, r1 + beq _0238ABA4 + ldr r1, _0238B450 @ =0x0238E360 + str r0, [r8, #0xd4] + ldrsh r2, [r1, #4] + mov r1, #0 + ldr r0, _0238B470 @ =0x0238E1F8 + lsl r2, r2, #0x18 + asr r4, r2, #0x18 + ldr r2, _0238B474 @ =0x0238E290 + mov r3, r1 + str r4, [sp] + mov r4, #0x70000 + str r4, [sp, #4] + bl ov19_0238D3A0 + mov r0, #0x10 + str r0, [r8, #4] + b _0238C598 +_0238ABA4: + bl FUN_0203A51C + add r0, r8, #0x100 + mov r1, #0xa + strh r1, [r0] + mov r0, #3 + str r0, [r8, #4] + b _0238C598 +_0238ABC0: + bl ov19_0238D418 + mov r4, r0 + bl FUN_02046BA0 + ldr r1, _0238B450 @ =0x0238E360 + sub r2, r4, #9 + strh r0, [r1, #4] + cmp r2, #1 + bhi _0238ABF0 + bl FUN_0203A638 + mov r0, #0xf + str r0, [r8, #4] + b _0238C598 +_0238ABF0: + cmp r4, #4 + bne _0238AC84 + add r0, sp, #0x890 + mov r1, #0x98 + bl FUN_02003250 + ldr r0, [r8, #0x58] + add r0, r8, r0, lsl #1 + ldrsh r0, [r0, #0x68] + bl FUN_0200F348 + mov r4, r0 + add r0, sp, #0x900 + add r0, r0, #0x28 + bl FUN_02023690 + ldr r1, [r8, #0xd4] + ldr r0, _0238B428 @ =0x0001012E + orr r1, r1, #0x20000 + str r1, [sp, #0x928] + ldrsh r1, [r4, #4] + str r1, [sp, #0x938] + str r0, [sp, #0x974] + bl FUN_0203A51C + bl ov19_0238D450 + ldr r1, _0238B478 @ =0x0238E208 + ldr r0, _0238B47C @ =0x0000459A + str r1, [sp] + add r1, sp, #0x900 + str r0, [sp, #4] + add r1, r1, #0x28 + str r1, [sp, #8] + mov r0, #0 + mov r1, #0x3000 + mov r2, #0x33 + add r3, sp, #0x890 + bl FUN_02046A20 + mov r0, #0x19 + str r0, [r8, #4] + b _0238C598 +_0238AC84: + cmp r4, #5 + bne _0238AC9C + bl FUN_0203A51C + mov r0, #0x11 + str r0, [r8, #4] + b _0238C598 +_0238AC9C: + cmp r4, #6 + bne _0238ACB4 + bl FUN_0203A51C + mov r0, #0x13 + str r0, [r8, #4] + b _0238C598 +_0238ACB4: + cmp r4, #7 + bne _0238C598 + bl FUN_0203A51C + mov r0, #0x17 + str r0, [r8, #4] + b _0238C598 +_0238ACCC: + ldrsb r1, [r8, #0x22] + mvn r0, #1 + cmp r1, r0 + bne _0238AD00 + ldr r1, [r8, #0xd4] + add r0, sp, #0x280 + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + bl FUN_0205B028 + add r0, sp, #0x280 + mov r1, #3 + bl FUN_0203F150 + strb r0, [r8, #0x22] +_0238AD00: + mov r0, #0x12 + str r0, [r8, #4] + b _0238C598 +_0238AD0C: + bl FUN_0203F398 + cmp r0, #1 + bne _0238C598 + ldr r1, _0238B424 @ =0x02324DB0 + mvn r0, #1 + ldr r1, [r1] + ldrsb r1, [r1, #0x22] + cmp r1, r0 + beq _0238AD44 + bl FUN_0203F990 + ldr r0, _0238B424 @ =0x02324DB0 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x22] +_0238AD44: + mov r0, #0xe + str r0, [r8, #4] + b _0238C598 +_0238AD50: + ldrsb r1, [r8, #0x20] + mvn r0, #1 + cmp r1, r0 + bne _0238AD84 + ldr r0, [r8, #0xd4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_0203FA64 + mov r1, #0 + mov r2, r1 + mov r0, #9 + bl FUN_0204018C + strb r0, [r8, #0x20] +_0238AD84: + mov r0, #0x14 + str r0, [r8, #4] + b _0238C598 +_0238AD90: + bl FUN_020407EC + cmp r0, #1 + bne _0238ADAC + bl ov19_0238D51C + mov r0, #0xe + str r0, [r8, #4] + b _0238C598 +_0238ADAC: + cmp r0, #2 + cmpne r0, #7 + bne _0238C598 + bl FUN_0203FD38 + mov r1, r0 + add r0, r8, #0xda + mov r2, #0x20 + bl FUN_020032D4 + bl FUN_02041094 + strh r0, [r8, #0xd8] + bl ov19_0238D51C + mov r0, #0x15 + str r0, [r8, #4] + b _0238C598 +_0238ADE4: + ldrsb r1, [r8, #0x22] + mvn r0, #1 + cmp r1, r0 + bne _0238AE14 + ldrsh r2, [r8, #0xd8] + add r0, r8, #0xda + arm_func_end ov19_0238A4A4 + + arm_func_start ov19_0238ADFC +ov19_0238ADFC: @ 0x0238ADFC + mov r1, #4 + mov r3, #1 + bl FUN_020417A8 + ldr r1, _0238B424 @ =0x02324DB0 + ldr r1, [r1] + strb r0, [r1, #0x22] +_0238AE14: + mov r0, #0x16 + str r0, [r8, #4] + b _0238C598 +_0238AE20: + bl FUN_02041A18 + cmp r0, #1 + bne _0238C598 + ldr r1, _0238B424 @ =0x02324DB0 + mvn r0, #1 + ldr r1, [r1] + ldrsb r1, [r1, #0x22] + cmp r1, r0 + beq _0238AE68 + bl FUN_02041A00 + ldr r0, _0238B424 @ =0x02324DB0 + ldr r0, [r0] + ldrsb r0, [r0, #0x22] + bl FUN_0202E6C8 + ldr r0, _0238B424 @ =0x02324DB0 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x22] +_0238AE68: + mov r0, #0x13 + str r0, [r8, #4] + b _0238C598 +_0238AE74: + ldr r0, [r8, #0xd4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_020555A8 + mov r1, r0 + ldrsh r0, [r1, #4] + ldrsh r2, [r1, #8] + add r1, r1, #0x14 + mov r3, #0 + bl FUN_02041A40 + mov r0, #0x18 + str r0, [r8, #4] + b _0238C598 +_0238AEA8: + bl FUN_02041B7C + cmp r0, #1 + bne _0238C598 + bl FUN_020420F4 + bl FUN_020572EC + mov r0, #0xe + str r0, [r8, #4] + b _0238C598 +_0238AEC8: + bl ov19_0238D418 + sub r1, r0, #9 + cmp r1, #1 + bhi _0238AF0C + add r0, sp, #0x840 + bl FUN_02023690 + ldr r3, _0238B428 @ =0x0001012E + ldr r0, _0238B440 @ =0x0000301C + ldr r1, _0238B480 @ =0x0000459D + add r2, sp, #0x840 + str r3, [sp, #0x88c] + bl FUN_02046BE8 + mov r0, #0x1a + str r0, [r8, #4] + mov r0, #8 + str r0, [r8, #8] + b _0238C598 +_0238AF0C: + cmp r0, #8 + bne _0238C598 + ldr r0, [r8, #0x58] + add r0, r8, r0, lsl #1 + ldrsh r0, [r0, #0x68] + bl FUN_0200F348 + ldrh r1, [r0] + strh r1, [r8, #0xcc] + ldrh r1, [r0, #2] + strh r1, [r8, #0xce] + ldrh r0, [r0, #4] + strh r0, [r8, #0xd0] + ldr r0, [r8, #0x58] + add r0, r8, r0, lsl #1 + ldrsh r0, [r0, #0x68] + bl FUN_0200F390 + add r0, sp, #0x2c + add r1, r8, #0xcc + bl FUN_0200D0A0 + add r1, sp, #0x2c + mov r0, #0 + bl FUN_02065CB4 + ldr r0, [r8, #0xd4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_02055528 + cmp r0, #0 + beq _0238AFB8 + bl ov19_0238D47C + bl FUN_02046D20 + mov r0, #0x3d + str r0, [r8, #4] + mov r0, #0x1c + str r0, [r8, #8] + ldr r0, [r8, #0xd4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_02055410 + cmp r0, #0 + movne r0, #5 + moveq r0, #6 + str r0, [r8] + b _0238C598 +_0238AFB8: + bl ov19_0238C640 + add r0, sp, #0x7f0 + bl FUN_02023690 + ldr r1, [r8, #0xd4] + ldr r0, _0238B428 @ =0x0001012E + orr r2, r1, #0x20000 + ldr r1, _0238B484 @ =0x0000101C + str r2, [sp, #0x7f0] + str r0, [sp, #0x83c] + add r0, r8, #0x100 + strh r1, [r0, #0xc8] + add r4, sp, #0x7f0 + add r3, r1, #0x2000 + ldr r2, _0238B488 @ =0x0000459E + add r0, r8, #0x1cc + mov r1, #0x400 + str r4, [sp] + bl FUN_020235B8 + mov r0, #3 + str r0, [r8, #0x1c4] + mov r0, #0x1b + str r0, [r8, #4] + mov r0, #0xc + str r0, [r8] + b _0238C598 +_0238B01C: + bl ov19_0238D47C + bl FUN_02046D20 + mov r0, #0x3d + str r0, [r8, #4] + mov r0, #0x1c + str r0, [r8, #8] + mov r0, #7 + str r0, [r8] + b _0238C598 +_0238B040: + mov r0, #0xc + bl FUN_02002274 + ldr r1, _0238B424 @ =0x02324DB0 + ldr r2, [r1] + strh r0, [r2, #0xfa] + ldr r0, [r1] + ldrsh r0, [r0, #0xd0] + bl ov19_0238A1A8 + mov r6, r0 + bl ov19_0238A1B8 + ldr r1, _0238B424 @ =0x02324DB0 + mov r7, r0 + mov r0, #0 + ldr r4, [r1] + mov r2, r0 +_0238B07C: + lsl r1, r2, #1 + ldrh r1, [r6, r1] + add r2, r2, #1 + cmp r2, #4 + add r0, r0, r1 + blt _0238B07C + mov r5, #3 + bl FUN_02002274 + mov r2, #0 + mov r3, r2 + b _0238B0C4 +_0238B0A8: + lsl r1, r3, #1 + ldrh r1, [r6, r1] + add r2, r2, r1 + cmp r2, r0 + movhi r5, r3 + bhi _0238B0CC + add r3, r3, #1 +_0238B0C4: + cmp r3, #3 + blt _0238B0A8 +_0238B0CC: + cmp r5, #3 + addls pc, pc, r5, lsl #2 + b _0238B0E8 +_0238B0D8: @ jump table + b _0238B0E8 @ case 0 + b _0238B0F0 @ case 1 + b _0238B100 @ case 2 + b _0238B0F8 @ case 3 +_0238B0E8: + mov r5, #0 + b _0238B204 +_0238B0F0: + mov r5, #1 + b _0238B204 +_0238B0F8: + mov r5, #2 + b _0238B204 +_0238B100: + mov r0, #0 + mov r2, r0 +_0238B108: + lsl r1, r2, #1 + ldrh r1, [r7, r1] + add r2, r2, #1 + cmp r2, #4 + add r0, r0, r1 + blt _0238B108 + mov r6, #3 + bl FUN_02002274 + mov r3, #0 + mov r2, r3 + b _0238B150 +_0238B134: + lsl r1, r2, #1 + ldrh r1, [r7, r1] + add r3, r3, r1 + cmp r3, r0 + movhi r6, r2 + bhi _0238B158 + add r2, r2, #1 +_0238B150: + cmp r2, #3 + blt _0238B134 +_0238B158: + cmp r6, #0 + mov r5, #6 + beq _0238B178 + cmp r6, #1 + beq _0238B1C4 + cmp r6, #2 + beq _0238B1F4 + b _0238B204 +_0238B178: + bl FUN_0201077C + cmp r0, #0 + bne _0238B204 + mov r0, #0x1e + bl FUN_0204CA94 + cmp r0, #0 + beq _0238B204 + bl GetRecruitableMonsterAll + add r1, r4, #0x100 + strh r0, [r1, #4] + bl GetRecruitableMonsterList + add r1, r4, #0x100 + strh r0, [r1, #6] + ldrsh r0, [r1, #4] + cmp r0, #0 + ldrshne r0, [r1, #6] + cmpne r0, #0 + movne r5, #3 + b _0238B204 +_0238B1C4: + mov r0, #0 + bl FUN_02055964 + mvn r1, #0 + cmp r0, r1 + beq _0238B204 + bl GetRecruitableMonsterListRestricted + add r1, r4, #0x100 + strh r0, [r1, #4] + ldrsh r0, [r1, #4] + cmp r0, #0 + movne r5, #4 + b _0238B204 +_0238B1F4: + mov r0, #0 + bl ov19_0238A3EC + cmp r0, #0 + movne r5, #5 +_0238B204: + str r5, [r4, #0xfc] + ldr r0, [r8, #0xfc] + cmp r0, #6 + addls pc, pc, r0, lsl #2 + b _0238C598 +_0238B218: @ jump table + b _0238B234 @ case 0 + b _0238B250 @ case 1 + b _0238B234 @ case 2 + b _0238B234 @ case 3 + b _0238B234 @ case 4 + b _0238B234 @ case 5 + b _0238B2B8 @ case 6 +_0238B234: + bl FUN_02046D20 + add r0, r8, #0x100 + mov r1, #0 + strh r1, [r0] + mov r0, #0x22 + str r0, [r8, #4] + b _0238C598 +_0238B250: + bl ov19_0238C640 + add r0, sp, #0x7a0 + bl FUN_02023690 + ldr r2, _0238B428 @ =0x0001012E + add r0, r8, #0x10 + mov r1, #0xc + str r2, [sp, #0x7ec] + bl FUN_0204D7F4 + bl ov19_0238D450 + mov r0, #4 + ldr r1, _0238B484 @ =0x0000101C + str r0, [r8, #0x1c4] + add r0, r8, #0x100 + strh r1, [r0, #0xc8] + add r3, r1, #0x2000 + add r1, sp, #0x7a0 + str r1, [sp] + ldr r2, _0238B48C @ =0x000045B1 + add r0, r8, #0x1cc + mov r1, #0x400 + bl FUN_020235B8 + mov r0, #0x1d + str r0, [r8, #4] + mov r0, #0xc + str r0, [r8] + b _0238C598 +_0238B2B8: + bl ov19_0238C640 + add r0, sp, #0x750 + bl FUN_02023690 + ldr r2, _0238B428 @ =0x0001012E + add r0, r8, #0x10 + mov r1, #0xc + str r2, [sp, #0x79c] + bl FUN_0204D7F4 + bl ov19_0238D450 + mov r0, #5 + ldr r1, _0238B484 @ =0x0000101C + str r0, [r8, #0x1c4] + add r0, r8, #0x100 + strh r1, [r0, #0xc8] + add r3, r1, #0x2000 + add r1, sp, #0x750 + str r1, [sp] + ldr r2, _0238B490 @ =0x000045BC + add r0, r8, #0x1cc + mov r1, #0x400 + bl FUN_020235B8 + mov r0, #0x1e + str r0, [r8, #4] + mov r0, #0xc + str r0, [r8] + b _0238C598 +_0238B320: + bl ov19_0238D47C + bl FUN_02046D20 + add r0, r8, #0x10 + mov r1, #0 + bl FUN_0204D7F4 + add r0, r8, #0x100 + mov r1, #0 + strh r1, [r0] + mov r0, #0x22 + str r0, [r8, #4] + b _0238C598 +_0238B34C: + bl ov19_0238C640 + add r0, sp, #0x700 + bl FUN_02023690 + ldr r2, _0238B428 @ =0x0001012E + add r0, r8, #0x10 + mov r1, #7 + str r2, [sp, #0x74c] + bl FUN_0204D7F4 + bl ov19_0238D450 + mov r0, #6 + ldr r1, _0238B484 @ =0x0000101C + str r0, [r8, #0x1c4] + add r0, r8, #0x100 + strh r1, [r0, #0xc8] + add r3, r1, #0x2000 + add r1, sp, #0x700 + str r1, [sp] + ldr r2, _0238B494 @ =0x000045BD + add r0, r8, #0x1cc + mov r1, #0x400 + bl FUN_020235B8 + mov r0, #0x1f + str r0, [r8, #4] + mov r0, #0xc + str r0, [r8] + b _0238C598 +_0238B3B4: + bl ov19_0238C640 + bl ov19_0238D47C + add r0, r8, #0x10 + mov r1, #0 + bl FUN_0204D7F4 + add r0, sp, #0x6b0 + bl FUN_02023690 + ldr r1, [r8, #0xd4] + ldr r0, _0238B498 @ =0x00001311 + orr r1, r1, #0x20000 + str r1, [sp, #0x6b0] + str r0, [sp, #0x6d4] + mov r3, #0x1c + add r0, r8, #0x100 + strh r3, [r0, #0xc8] + add r1, sp, #0x6b0 + str r1, [sp] + ldr r2, _0238B49C @ =0x000045BE + add r0, r8, #0x1cc + mov r1, #0x400 + bl FUN_020235B8 + mov r0, #7 + str r0, [r8, #0x1c4] + mov r0, #0x20 + str r0, [r8, #4] + mov r0, #0xc + str r0, [r8] + b _0238C598 + .align 2, 0 +_0238B424: .4byte 0x02324DB0 +_0238B428: .4byte 0x0001012E +_0238B42C: .4byte 0x0000458B +_0238B430: .4byte 0x0238E250 +_0238B434: .4byte 0x0000458C +_0238B438: .4byte 0x00004590 +_0238B43C: .4byte 0x0000458F +_0238B440: .4byte 0x0000301C +_0238B444: .4byte 0x0000458D +_0238B448: .4byte 0x0000458E +_0238B44C: .4byte ov19_0238D4A4 +_0238B450: .4byte 0x0238E360 +_0238B454: .4byte 0x0238E1D8 +_0238B458: .4byte 0x0238E270 +_0238B45C: .4byte 0x00003F02 +_0238B460: .4byte 0x00004594 +_0238B464: .4byte 0x0238E1E8 +_0238B468: .4byte 0x00001013 +_0238B46C: .4byte 0x000008E4 +_0238B470: .4byte 0x0238E1F8 +_0238B474: .4byte 0x0238E290 +_0238B478: .4byte 0x0238E208 +_0238B47C: .4byte 0x0000459A +_0238B480: .4byte 0x0000459D +_0238B484: .4byte 0x0000101C +_0238B488: .4byte 0x0000459E +_0238B48C: .4byte 0x000045B1 +_0238B490: .4byte 0x000045BC +_0238B494: .4byte 0x000045BD +_0238B498: .4byte 0x00001311 +_0238B49C: .4byte 0x000045BE +_0238B4A0: .4byte 0x000045BF +_0238B4A4: + add r0, sp, #0x660 + bl FUN_02023690 + ldr r1, [r8, #0xd4] + add r0, r8, #0x100 + orr r1, r1, #0x20000 + str r1, [sp, #0x660] + mov r3, #0x1c + strh r3, [r0, #0xc8] + add r4, sp, #0x660 + ldr r2, _0238B4A0 @ =0x000045BF + add r0, r8, #0x1cc + mov r1, #0x400 + str r4, [sp] + bl FUN_020235B8 + mov r0, #8 + str r0, [r8, #0x1c4] + mov r0, #0x21 + str r0, [r8, #4] + mov r0, #0xc + str r0, [r8] + b _0238C598 +_0238B4F8: + add r0, sp, #0x610 + bl FUN_02023690 + ldr r0, [r8, #0xd4] + ldr r1, _0238C488 @ =0x000045C0 + orr r3, r0, #0x20000 + add r2, sp, #0x610 + mov r0, #0x1c + str r3, [sp, #0x610] + bl FUN_02046BE8 + mov r0, #0x25 + str r0, [r8, #4] + b _0238C598 +_0238B528: + add r0, r8, #0x100 + ldrsh r1, [r0] + add r1, r1, #1 + strh r1, [r0] + ldrsh r0, [r0] + cmp r0, #0xa + ble _0238C598 + mov r0, #0x100 + mov r1, #0xf + bl FUN_02001170 + mov r4, r0 + add r0, sp, #0x230 + bl FUN_02023690 + ldr r0, _0238B424 @ =0x02324DB0 + add r3, sp, #0x230 + ldr r6, [r0] + ldr r2, _0238C48C @ =0x0238E238 + ldrsh r5, [r6, #0xd0] + mov r0, r4 + mov r1, #0x100 + str r5, [sp, #0x240] + str r3, [sp] + ldrh r5, [r6, #0xfa] + mov r3, #0 + lsl r5, r5, #1 + ldrh r2, [r2, r5] + bl FUN_020235B8 + add r0, sp, #0x5c0 + bl FUN_02023690 + ldr r1, [r8, #0xd4] + ldr r0, _0238B498 @ =0x00001311 + orr r1, r1, #0x20000 + str r1, [sp, #0x5c0] + str r0, [sp, #0x5e4] + ldr r1, _0238C490 @ =0x000045B2 + mov r0, #0x1c + add r2, sp, #0x5c0 + str r4, [sp, #0x5f8] + bl FUN_02046BE8 + mov r0, r4 + bl FUN_02001188 + mov r0, #0x23 + str r0, [r8, #4] + b _0238C598 +_0238B5D8: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #0xa + moveq r0, #0 + cmp r0, #0xa + bne _0238C598 + mov r0, #3 + bl FUN_02002274 + mov r4, r0 + bl ov19_0238C640 + ldr r0, [r8, #0xfc] + cmp r0, #6 + addls pc, pc, r0, lsl #2 + b _0238B668 +_0238B610: @ jump table + b _0238B62C @ case 0 + b _0238B63C @ case 1 + b _0238B64C @ case 2 + b _0238B62C @ case 3 + b _0238B62C @ case 4 + b _0238B62C @ case 5 + b _0238B668 @ case 6 +_0238B62C: + ldr r0, _0238C494 @ =0x0238E18A + lsl r1, r4, #1 + ldrh r5, [r0, r1] + b _0238B668 +_0238B63C: + ldr r0, _0238C498 @ =0x0238E17E + lsl r1, r4, #1 + ldrh r5, [r0, r1] + b _0238B668 +_0238B64C: + ldr r0, _0238C49C @ =0x0238E190 + lsl r1, r4, #1 + ldrh r5, [r0, r1] + ldr r0, _0238C4A0 @ =0x000045B9 + cmp r5, r0 + moveq r0, #0xc + streq r0, [r8, #0x1c4] +_0238B668: + ldr r0, [r8, #0x1c4] + cmp r0, #0 + bne _0238B690 + mov r1, r5 + mov r0, #0x1c + mov r2, #0 + bl FUN_02046BE8 + mov r0, #0x25 + str r0, [r8, #4] + b _0238C598 +_0238B690: + add r0, r8, #0x100 + mov r3, #0x1c + mov r2, r5 + strh r3, [r0, #0xc8] + mov r4, #0 + add r0, r8, #0x1cc + mov r1, #0x400 + str r4, [sp] + bl FUN_020235B8 + mov r0, #0x24 + str r0, [r8, #4] + mov r0, #0xc + str r0, [r8] + b _0238C598 +_0238B6C8: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #0xa + moveq r0, #0 + cmp r0, #0xa + bne _0238C598 +_0238B6E0: + ldr r0, [r8, #0xfc] + cmp r0, #6 + addls pc, pc, r0, lsl #2 + b _0238C598 +_0238B6F0: @ jump table + b _0238B70C @ case 0 + b _0238B70C @ case 1 + b _0238BD48 @ case 2 + b _0238B70C @ case 3 + b _0238B70C @ case 4 + b _0238B70C @ case 5 + b _0238B70C @ case 6 +_0238B70C: + ldr r0, _0238B424 @ =0x02324DB0 + ldr r5, [r0] + ldr r0, [r5, #0xd4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_020555A8 + mov r1, #0 + str r1, [sp, #0x24] + mov r4, r0 + bl ov19_0238C640 + ldrsh r1, [r5, #0xd0] + cmp r1, #0x67 + bgt _0238B7A8 + subs r0, r1, #0x58 + addpl pc, pc, r0, lsl #2 + b _0238B78C +_0238B74C: @ jump table + b _0238B7FC @ case 0 + b _0238B904 @ case 1 + b _0238BA3C @ case 2 + b _0238BA3C @ case 3 + b _0238BA3C @ case 4 + b _0238B938 @ case 5 + b _0238BA3C @ case 6 + b _0238BA3C @ case 7 + b _0238BA3C @ case 8 + b _0238BA3C @ case 9 + b _0238BA3C @ case 10 + b _0238BA3C @ case 11 + b _0238B96C @ case 12 + b _0238B990 @ case 13 + b _0238B9B4 @ case 14 + b _0238B9D8 @ case 15 +_0238B78C: + cmp r1, #0x47 + bgt _0238B79C + beq _0238B7C4 + b _0238BA3C +_0238B79C: + cmp r1, #0x4d + beq _0238B7E0 + b _0238BA3C +_0238B7A8: + cmp r1, #0x6c + bgt _0238B7B8 + beq _0238B9F0 + b _0238BA3C +_0238B7B8: + cmp r1, #0x89 + beq _0238BA14 + b _0238BA3C +_0238B7C4: + add r1, sp, #0x24 + mov r0, r4 + bl FUN_02011580 + ldr r1, [sp, #0x24] + bl ov19_0238C80C + mov r5, r0 + b _0238BCE8 +_0238B7E0: + add r1, sp, #0x24 + mov r0, r4 + bl FUN_020115BC + ldr r1, [sp, #0x24] + bl ov19_0238C80C + mov r5, r0 + b _0238BCE8 +_0238B7FC: + add r1, sp, #0x14 + add r2, sp, #0x24 + mov r0, r4 + bl FUN_020115F8 + ldr r2, _0238B424 @ =0x02324DB0 + mov r7, r0 + ldrh sb, [sp, #0x14] + mov r0, #0x100 + mov r1, #0xf + ldr r6, [sp, #0x24] + ldr r4, [r2] + bl FUN_02001170 + mov r5, r0 + add r0, sp, #0x88 + bl FUN_02023690 + cmp r7, #0 + str sb, [sp, #0x98] + str r5, [sp, #0xc0] + cmpeq r6, #0 + bne _0238B85C + mov r0, r5 + bl FUN_02001188 + mov r5, #0 + b _0238BCE8 +_0238B85C: + mov r0, #1 + str r0, [r4, #0x1c4] + cmp r7, #0 + bne _0238B8BC + cmp r6, #0 + beq _0238B8BC + add r0, r4, #0x100 + mov r1, #0x1c + cmp r6, #1 + strh r1, [r0, #0xc8] + ldrne r0, _0238C4A4 @ =0x000045D6 + add r6, sp, #0x88 + ldreq r0, _0238C4A8 @ =0x000045D7 + mov r3, #0x1c + lsl r1, r0, #0x10 + lsr r2, r1, #0x10 + add r0, r4, #0x1cc + mov r1, #0x400 + str r6, [sp] + bl FUN_020235B8 + mov r0, r5 + bl FUN_02001188 + mov r5, #2 + b _0238BCE8 +_0238B8BC: + add r0, r4, #0x100 + mov r1, #0x1c + strh r1, [r0, #0xc8] + cmp r7, #1 + ldrne r0, _0238C4AC @ =0x000045D4 + add r6, sp, #0x88 + ldreq r0, _0238C4B0 @ =0x000045D5 + mov r3, #0x1c + lsl r1, r0, #0x10 + lsr r2, r1, #0x10 + add r0, r4, #0x1cc + mov r1, #0x400 + str r6, [sp] + bl FUN_020235B8 + mov r0, r5 + bl FUN_02001188 + mov r5, #1 + b _0238BCE8 +_0238B904: + mov r0, r4 + bl FUN_0230AD7C + cmp r0, #0 + beq _0238B924 + mov r0, #1 + bl ov19_0238CB2C + mov r5, #4 + b _0238BCE8 +_0238B924: + mov r0, r4 + mov r1, #1 + bl FUN_0230A31C + mov r5, #3 + b _0238BCE8 +_0238B938: + mov r0, r4 + bl FUN_0230AD7C + cmp r0, #0 + beq _0238B958 + mov r0, #5 + bl ov19_0238CB2C + mov r5, #4 + b _0238BCE8 +_0238B958: + mov r0, r4 + mov r1, #5 + bl FUN_0230A31C + mov r5, #3 + b _0238BCE8 +_0238B96C: + ldr r5, [sp, #0x24] + add r1, sp, #0x24 + mov r0, r4 + bl FUN_0201170C + mov r1, r5 + mov r2, #2 + bl ov19_0238C900 + mov r5, r0 + b _0238BCE8 +_0238B990: + ldr r5, [sp, #0x24] + add r1, sp, #0x24 + mov r0, r4 + bl FUN_02011748 + mov r1, r5 + mov r2, #3 + bl ov19_0238C900 + mov r5, r0 + b _0238BCE8 +_0238B9B4: + ldr r5, [sp, #0x24] + add r1, sp, #0x24 + mov r0, r4 + bl FUN_02011784 + mov r1, r5 + mov r2, #4 + bl ov19_0238C900 + mov r5, r0 + b _0238BCE8 +_0238B9D8: + add r1, sp, #0x24 + mov r0, r4 + bl FUN_020117FC + bl ov19_0238C9F0 + mov r5, r0 + b _0238BCE8 +_0238B9F0: + ldr r5, [sp, #0x24] + add r1, sp, #0x24 + mov r0, r4 + bl FUN_020117C0 + mov r1, r5 + mov r2, #5 + bl ov19_0238C900 + mov r5, r0 + b _0238BCE8 +_0238BA14: + mov r0, r4 + bl FUN_02011830 + cmp r0, #0 + beq _0238BA3C + add r1, sp, #0x24 + mov r0, r4 + bl FUN_02011850 + bl ov19_0238C9F0 + mov r5, r0 + b _0238BCE8 +_0238BA3C: + ldrsh r0, [r5, #0xd0] + bl FUN_0200CBF4 + cmp r0, #0 + beq _0238BCE4 + ldr r0, _0238B424 @ =0x02324DB0 + ldr sb, [r0] + ldr r0, [sb, #0xd4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_020555A8 + mov r4, r0 + ldr r0, _0238C4B4 @ =0x0000068A + mov r1, #0xf + bl FUN_02001170 + mov r5, r0 + add r0, r5, #0x500 + str r0, [sp, #0x10] + add r0, r5, #0x45 + add r6, r0, #0x600 + ldrsh r2, [r4, #0xa] + add r1, sp, #0x114 + ldrb r3, [r4, #0xc] + strh r2, [r1, #0x64] + ldrsh r2, [r4, #8] + ldrb r0, [r4, #0xd] + ldrb fp, [r4, #0xe] + strh r2, [r1, #0x66] + strh r3, [r1, #0x68] + strh r0, [r1, #0x6a] + add sl, r5, #0x600 + ldrb r3, [r4, #0xf] + strh fp, [r1, #0x6c] + mov r0, sl + strh r3, [r1, #0x6e] + ldrsh r1, [r4, #4] + bl FUN_02058D04 + str r0, [sp, #0xc] + ldrsh r1, [sb, #0xd0] + mov r0, r4 + mov r2, #0 + add r3, sp, #0x28 + bl FUN_02011528 + add r0, sp, #0x114 + ldrsh fp, [r4, #0xa] + ldrsh r3, [r0, #0x64] + ldrsh r2, [r4, #8] + ldrsh r1, [r0, #0x66] + sub r3, fp, r3 + ldrb lr, [r4, #0xc] + strh r3, [r0, #0x64] + sub r1, r2, r1 + strh r1, [r0, #0x66] + ldrsh ip, [r0, #0x68] + ldrb r3, [r4, #0xd] + ldrsh r1, [r0, #0x6a] + sub fp, lr, ip + ldrb lr, [r4, #0xe] + sub r1, r3, r1 + strh fp, [r0, #0x68] + strh r1, [r0, #0x6a] + ldrsh ip, [r0, #0x6c] + ldrb r3, [r4, #0xf] + ldrsh r1, [r0, #0x6e] + sub fp, lr, ip + strh fp, [r0, #0x6c] + sub r1, r3, r1 + strh r1, [r0, #0x6e] + ldrsh r1, [r4, #4] + mov r0, r6 + bl FUN_02058D04 + mov fp, r0 + mov r0, #0 + strb r0, [r5] + ldrsh r0, [sp, #0x28] + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _0238BB9C +_0238BB70: @ jump table + b _0238BB80 @ case 0 + b _0238BB88 @ case 1 + b _0238BB90 @ case 2 + b _0238BB98 @ case 3 +_0238BB80: + ldr r7, _0238C4B8 @ =0x000045E3 + b _0238BB9C +_0238BB88: + ldr r7, _0238C4BC @ =0x000045E4 + b _0238BB9C +_0238BB90: + ldr r7, _0238C4C0 @ =0x000045E5 + b _0238BB9C +_0238BB98: + ldr r7, _0238C4C4 @ =0x000045E6 +_0238BB9C: + add r0, sp, #0xd8 + bl FUN_02023690 + ldr r0, _0238B424 @ =0x02324DB0 + mov r2, r7 + ldr r1, [r0] + add r3, sp, #0xd8 + ldr r7, [r1, #0xd4] + add r0, r5, #0x400 + orr r7, r7, #0x20000 + str r7, [sp, #0xd8] + str r3, [sp] + mov r1, #0x400 + mov r3, #0x1c + bl FUN_020235B8 + mov r0, r5 + add r1, r5, #0x400 + bl FUN_020897AC + add r0, sp, #0x114 + ldrsh r0, [r0, #0x66] + cmp r0, #0 + beq _0238BC0C + stm sp, {sl, fp} + ldr r3, [sp, #0xc] + mov r0, r5 + mov r2, r4 + add r1, r5, #0x400 + str r6, [sp, #8] + bl ov19_0238CBC0 +_0238BC0C: + add r0, sp, #0x128 + bl FUN_02023690 + ldr r0, [sb, #0xd4] + ldr r4, _0238C4C8 @ =0x0238E1CC + orr r0, r0, #0x20000 + str r0, [sp, #0x128] + ldr r0, [sp, #0x10] + mov r7, #2 + str r0, [sp, #0x160] + add fp, sp, #0x128 + add r6, sp, #0x178 +_0238BC38: + lsl r0, r7, #1 + ldrsh sl, [r6, r0] + cmp sl, #0 + beq _0238BC8C + ldr r1, _0238C4CC @ =0x0238E2C0 + mov r0, r5 + bl FUN_020897AC + lsl r1, r7, #1 + ldrh r1, [r4, r1] + ldr r0, [sp, #0x10] + str sl, [sp, #0x14c] + bl FUN_020258B8 + ldr r2, _0238C4D0 @ =0x000045E7 + add r0, r5, #0x400 + mov r1, #0x100 + mov r3, #0 + str fp, [sp] + bl FUN_020235B8 + mov r0, r5 + add r1, r5, #0x400 + bl FUN_020897AC +_0238BC8C: + add r7, r7, #1 + cmp r7, #6 + blt _0238BC38 + add r0, sp, #0x128 + bl FUN_02023690 + mov r0, #4 + str r0, [sp, #0x14c] + add r0, sb, #0x100 + mov r3, #0x1c + strh r3, [r0, #0xc8] + add r4, sp, #0x128 + mov r2, r5 + add r0, sb, #0x1cc + mov r1, #0x400 + str r4, [sp] + bl FUN_020223F0 + mov r1, #1 + mov r0, r5 + str r1, [sb, #0x1c4] + bl FUN_02001188 + mov r5, #1 + b _0238BCE8 +_0238BCE4: + mov r5, #0 +_0238BCE8: + str r5, [r8, #0x108] + cmp r5, #0 + bne _0238BD2C + add r0, sp, #0x570 + bl FUN_02023690 + ldr r1, [r8, #0xd4] + add r0, r8, #0x100 + orr r1, r1, #0x20000 + str r1, [sp, #0x570] + mov r3, #0x1c + strh r3, [r0, #0xc8] + add r4, sp, #0x570 + ldr r2, _0238C4D4 @ =0x000045C1 + add r0, r8, #0x1cc + mov r1, #0x400 + str r4, [sp] + bl FUN_020235B8 +_0238BD2C: + cmp r5, #3 + moveq r0, #0x29 + movne r0, #0x26 + str r0, [r8, #4] + mov r0, #0xc + str r0, [r8] + b _0238C598 +_0238BD48: + mov r3, #0 + mov r2, r3 +_0238BD50: + add r0, r8, r3, lsl #1 + add r0, r0, #0x100 + strh r2, [r0, #0xc] + add r1, r8, r3 + strh r2, [r0, #0x18] + add r3, r3, #1 + strb r2, [r1, #0x124] + cmp r3, #6 + blt _0238BD50 + add r0, sp, #0x1c + add r1, sp, #0x20 + bl ov19_0238A194 + mov r0, #5 + bl FUN_02002274 + mov r4, r0 + ldr r1, [sp, #0x20] + cmp r4, #1 + ldr r0, [sp, #0x1c] + addge r4, r4, #1 + add r1, r1, #1 + bl FUN_0200228C + add r1, r8, r4, lsl #1 + rsb r3, r0, #0 + add r2, r1, #0x100 + add r0, r8, #0x10c + mov r1, #0 + strh r3, [r2, #0xc] + bl ov19_0238CCEC + cmp r0, #0 + bne _0238BDD0 + bl ov19_0238D310 + b _0238C598 +_0238BDD0: + add r0, r8, #0x10c + bl ov19_0238CEC0 + mov r0, #0x28 + str r0, [r8, #4] + mov r0, #0xc + str r0, [r8] + b _0238C598 +_0238BDEC: + add r0, r8, #0x100 + mov r1, #0 + strh r1, [r0] + mov r0, #3 + str r0, [r8, #4] + bl ov19_0238D0D8 + b _0238C598 +_0238BE08: + ldr r1, [r8, #8] + mvn r0, #0 + cmp r1, r0 + bne _0238BE28 + bl ov19_0238D47C + bl FUN_02046D20 + mov r0, #3 + b _0238C59C +_0238BE28: + str r1, [r8, #4] + str r0, [r8, #8] + b _0238C598 +_0238BE34: + add r0, r8, #0x100 + mov r1, #0 + strh r1, [r0] + mov r0, #3 + str r0, [r8, #4] + bl ov19_0238D0D8 + b _0238C598 +_0238BE50: + bl FUN_0230A390 + cmp r0, #0 + beq _0238C598 + bl FUN_0230AD50 + bl ov19_0238D0D8 + b _0238C598 +_0238BE68: + add r0, r8, #0x100 + ldrsh r1, [r0] + add r1, r1, #1 + strh r1, [r0] + ldrsh r0, [r0] + cmp r0, #0xa + ble _0238C598 + bl ov19_0238C640 + add r0, sp, #0x520 + bl FUN_02023690 + ldr r1, _0238B428 @ =0x0001012E + mov r0, #9 + str r1, [sp, #0x56c] + str r0, [r8, #0x1c4] + bl ov19_0238D450 + ldr r1, _0238B484 @ =0x0000101C + add r0, r8, #0x100 + strh r1, [r0, #0xc8] + add r3, r1, #0x2000 + add r1, sp, #0x520 + str r1, [sp] + ldr r2, _0238C4D8 @ =0x000045D9 + add r0, r8, #0x1cc + mov r1, #0x400 + bl FUN_020235B8 + mov r0, #0x2b + str r0, [r8, #4] + mov r0, #0xc + str r0, [r8] + b _0238C598 +_0238BEE0: + add r0, r8, #0x100 + ldrsh r0, [r0, #4] + mov r1, #0 + mov r2, r1 + mov r3, r1 + bl FUN_02065BAC + bl ov19_0238D47C + bl FUN_02046D20 + mov r0, #0x3d + str r0, [r8, #4] + mov r0, #0x2c + str r0, [r8, #8] + ldr r0, [r8, #0xd4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_02055528 + cmp r0, #0 + movne r0, #0x10 + strne r0, [r8] + bne _0238C598 + bl ov19_0238D47C + bl FUN_02046D20 + mov r0, #0x11 + str r0, [r8] + b _0238C598 +_0238BF44: + bl ov19_0238C640 + mov r0, #0xa + str r0, [r8, #0x1c4] + mov r0, #0x2d + str r0, [r8, #4] + mov r0, #0xc + str r0, [r8] + b _0238C598 +_0238BF64: + add r0, sp, #0x5c + bl FUN_0206351C + mov r0, #1 + strb r0, [sp, #0x7e] + add r0, r8, #0x100 + ldrsh r4, [r0, #6] + mov r1, #0 + mov r3, #5 + add r0, sp, #0x5c + mov r2, r1 + strh r4, [sp, #0x80] + strb r3, [sp, #0x5e] + bl FUN_0203D438 + mov r0, #0x2e + str r0, [r8, #4] + b _0238C598 +_0238BFA4: + bl FUN_0203D538 + cmp r0, #0 + beq _0238C598 + bl FUN_0203EFD4 + bl ov19_0238D310 + b _0238C598 +_0238BFBC: + add r0, r8, #0x100 + ldrsh r1, [r0] + add r1, r1, #1 + strh r1, [r0] + ldrsh r0, [r0] + cmp r0, #0xa + ble _0238C598 + add r0, sp, #0x4d0 + bl FUN_02023690 + mov r3, #0x60000 + ldr r0, _0238B440 @ =0x0000301C + ldr r1, _0238C4DC @ =0x000045DA + add r2, sp, #0x4d0 + str r3, [sp, #0x51c] + bl FUN_02046BE8 + mov r0, #0x30 + str r0, [r8, #4] + b _0238C598 +_0238C004: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #0xa + moveq r0, #0 + cmp r0, #0xa + bne _0238C598 + bl FUN_02046D20 + mov r0, #0 + add r1, r8, #0x100 + ldrsh r1, [r1, #4] + mov r2, r0 + mov r3, r0 + bl FUN_02065BAC + mov r0, #0x3d + str r0, [r8, #4] + mov r0, #0x31 + str r0, [r8, #8] + ldr r0, [r8, #0xd4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_02055528 + cmp r0, #0 + movne r0, #0x12 + strne r0, [r8] + bne _0238C598 + bl ov19_0238D47C + bl FUN_02046D20 + mov r0, #0x13 + str r0, [r8] + b _0238C598 +_0238C07C: + add r0, sp, #0x480 + bl FUN_02023690 + add r1, r8, #0x100 + ldrsh r2, [r1, #4] + add r0, r8, #0x10 + str r2, [sp, #0x4cc] + ldrsh r1, [r1, #4] + bl FUN_0204D7D4 + add r0, r8, #0x10 + mov r1, #0x13 + bl FUN_0204D804 + ldr r0, [r8, #0xd4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_02055528 + cmp r0, #0 + beq _0238C0D0 + ldr r1, _0238C4E0 @ =0x0238E1BC + add r0, r8, #0x10 + bl FUN_0204D848 + b _0238C0DC +_0238C0D0: + ldr r1, _0238C4E4 @ =0x0238E1C4 + add r0, r8, #0x10 + bl FUN_0204D848 +_0238C0DC: + ldr r0, _0238B440 @ =0x0000301C + ldr r1, _0238C4E8 @ =0x000045DB + add r2, sp, #0x480 + bl FUN_02046BE8 + bl ov19_0238D450 + mov r0, #0x32 + str r0, [r8, #4] + b _0238C598 +_0238C0FC: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #0xa + moveq r0, #0 + cmp r0, #0xa + bne _0238C598 + add r0, sp, #0x3e8 + mov r1, #0x98 + bl FUN_02003250 + add r0, sp, #0x398 + bl FUN_02023690 + add r1, r8, #0x100 + ldrsh r2, [r1, #4] + add r0, r8, #0x10 + str r2, [sp, #0x3e4] + ldrsh r1, [r1, #4] + bl FUN_0204D7D4 + add r0, r8, #0x10 + mov r1, #0x13 + bl FUN_0204D804 + ldr r0, [r8, #0xd4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_02055528 + cmp r0, #0 + beq _0238C174 + ldr r1, _0238C4EC @ =0x0238E1A4 + add r0, r8, #0x10 + bl FUN_0204D848 + b _0238C180 +_0238C174: + ldr r1, _0238C4F0 @ =0x0238E1AC + add r0, r8, #0x10 + bl FUN_0204D848 +_0238C180: + bl ov19_0238D450 + ldr r1, _0238C4F4 @ =0x0238E220 + ldr r0, _0238C4F8 @ =0x000045DC + str r1, [sp] + str r0, [sp, #4] + add r4, sp, #0x398 + add r3, sp, #0x3e8 + mov r0, #0 + mov r1, #0x3000 + mov r2, #0x31 + str r4, [sp, #8] + bl FUN_02046A20 + mov r0, #0x33 + str r0, [r8, #4] + b _0238C598 +_0238C1BC: + bl ov19_0238D418 + cmp r0, #8 + bne _0238C200 + bl ov19_0238D47C + bl FUN_02046D20 + ldr r1, _0238C4FC @ =0x0238E1B4 + add r0, r8, #0x10 + bl FUN_0204D848 + add r0, r8, #0x10 + mov r1, #0 + bl FUN_0204D804 + add r0, r8, #0x100 + mov r1, #0 + strh r1, [r0] + mov r0, #0x36 + str r0, [r8, #4] + b _0238C598 +_0238C200: + sub r0, r0, #9 + cmp r0, #1 + bhi _0238C598 + bl ov19_0238D47C + bl FUN_02046D20 + add r0, r8, #0x10 + mov r1, #0 + bl FUN_0204D804 + ldr r1, _0238C4FC @ =0x0238E1B4 + add r0, r8, #0x10 + bl FUN_0204D848 + add r0, r8, #0x100 + mov r1, #0 + strh r1, [r0] + mov r0, #0x34 + str r0, [r8, #4] + b _0238C598 +_0238C244: + add r0, r8, #0x100 + ldrsh r1, [r0] + add r1, r1, #1 + strh r1, [r0] + ldrsh r0, [r0] + cmp r0, #0xa + ble _0238C598 + bl ov19_0238D47C + ldr r1, _0238C500 @ =0x00000163 + add r0, r8, #0x10 + bl FUN_0204D7D4 + add r0, sp, #0x348 + bl FUN_02023690 + add r0, r8, #0x100 + ldrsh r3, [r0, #4] + ldr r1, _0238C504 @ =0x000045DF + add r2, sp, #0x348 + mov r0, #0x1c + str r3, [sp, #0x348] + bl FUN_02046BE8 + mov r0, #0x35 + str r0, [r8, #4] + b _0238C598 +_0238C2A0: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #0xa + moveq r0, #0 + cmp r0, #0xa + bne _0238C598 + bl FUN_02046D20 + add r0, r8, #0x100 + mov r1, #0 + strh r1, [r0] + mov r0, #0x3d + str r0, [r8, #4] + mov r0, #3 + str r0, [r8, #8] + mov r0, #0x14 + str r0, [r8] + b _0238C598 +_0238C2E4: + add r0, r8, #0x100 + ldrsh r1, [r0] + add r1, r1, #1 + strh r1, [r0] + ldrsh r0, [r0] + cmp r0, #0xa + ble _0238C598 + bl ov19_0238D47C + ldr r1, _0238C500 @ =0x00000163 + add r0, r8, #0x10 + bl FUN_0204D7D4 + add r0, sp, #0x30 + bl FUN_0206351C + mov r0, #6 + strb r0, [sp, #0x32] + add r0, r8, #0x100 + ldrsh r3, [r0, #4] + mov r1, #0 + add r0, sp, #0x30 + mov r2, r1 + strh r3, [sp, #0x54] + bl FUN_0203D438 + mov r0, #0x37 + str r0, [r8, #4] + b _0238C598 +_0238C348: + bl FUN_0203D538 + cmp r0, #0 + beq _0238C598 + bl FUN_0203EFD4 + add r0, r8, #0x100 + mov r1, #0 + strh r1, [r0] + mov r0, #0x3d + str r0, [r8, #4] + mov r0, #0x38 + str r0, [r8, #8] + mov r0, #0x14 + str r0, [r8] + b _0238C598 +_0238C380: + bl FUN_0230D220 + cmp r0, #0 + bne _0238C598 + bl FUN_02311D6C + add r0, r8, #0x100 + mov r1, #0 + strh r1, [r0] + mov r0, #1 + str r0, [r8, #4] + mov r0, #3 + str r0, [r8, #8] +_0238C3AC: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #0xa + moveq r0, #0 + cmp r0, #0xa + bne _0238C598 + bl ov19_0238C640 + add r0, sp, #0x2f8 + bl FUN_02023690 + add r0, r8, #0x100 + mov r3, #0x1c + strh r3, [r0, #0xc8] + add r4, sp, #0x2f8 + ldr r2, _0238C508 @ =0x000045E1 + add r0, r8, #0x1cc + mov r1, #0x400 + str r4, [sp] + bl FUN_020235B8 + mov r0, #0xb + str r0, [r8, #0x1c4] + mov r0, #0x3b + str r0, [r8, #4] + mov r0, #0xc + str r0, [r8] + b _0238C598 +_0238C410: + bl FUN_02046D20 + add r0, r8, #0x100 + mov r1, #0 + strh r1, [r0] + mov r0, #0x3d + str r0, [r8, #4] + mov r0, #0x3c + str r0, [r8, #8] + mov r0, #0x15 + str r0, [r8] + b _0238C598 +_0238C43C: + bl FUN_0230D220 + cmp r0, #0 + bne _0238C598 + bl FUN_02311D6C + add r0, r8, #0x100 + mov r1, #0 + strh r1, [r0] + mov r0, #1 + str r0, [r8, #4] + mov r0, #3 + str r0, [r8, #8] + b _0238C598 +_0238C46C: + ldr r1, [r8, #8] + mvn r0, #0 + str r1, [r8, #4] + str r0, [r8, #8] + b _0238C598 +_0238C480: + bl ov19_0238D310 + b _0238C598 + .align 2, 0 +_0238C488: .4byte 0x000045C0 +_0238C48C: .4byte 0x0238E238 +_0238C490: .4byte 0x000045B2 +_0238C494: .4byte 0x0238E18A +_0238C498: .4byte 0x0238E17E +_0238C49C: .4byte 0x0238E190 +_0238C4A0: .4byte 0x000045B9 +_0238C4A4: .4byte 0x000045D6 +_0238C4A8: .4byte 0x000045D7 +_0238C4AC: .4byte 0x000045D4 +_0238C4B0: .4byte 0x000045D5 +_0238C4B4: .4byte 0x0000068A +_0238C4B8: .4byte 0x000045E3 +_0238C4BC: .4byte 0x000045E4 +_0238C4C0: .4byte 0x000045E5 +_0238C4C4: .4byte 0x000045E6 +_0238C4C8: .4byte 0x0238E1CC +_0238C4CC: .4byte 0x0238E2C0 +_0238C4D0: .4byte 0x000045E7 +_0238C4D4: .4byte 0x000045C1 +_0238C4D8: .4byte 0x000045D9 +_0238C4DC: .4byte 0x000045DA +_0238C4E0: .4byte 0x0238E1BC +_0238C4E4: .4byte 0x0238E1C4 +_0238C4E8: .4byte 0x000045DB +_0238C4EC: .4byte 0x0238E1A4 +_0238C4F0: .4byte 0x0238E1AC +_0238C4F4: .4byte 0x0238E220 +_0238C4F8: .4byte 0x000045DC +_0238C4FC: .4byte 0x0238E1B4 +_0238C500: .4byte 0x00000163 +_0238C504: .4byte 0x000045DF +_0238C508: .4byte 0x000045E1 +_0238C50C: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #0xa + moveq r0, #0 + cmp r0, #0xa + bne _0238C598 + ldr r1, [r8, #8] + mvn r0, #0 + cmp r1, r0 + bne _0238C544 + bl ov19_0238D47C + bl FUN_02046D20 + mov r0, #3 + b _0238C59C +_0238C544: + cmp r1, #8 + cmpne r1, #0xe + bne _0238C558 + bl ov19_0238D47C + bl FUN_02046D20 +_0238C558: + mov r0, #0x3e + str r0, [r8, #4] + add r0, r8, #0x100 + mov r1, #0 + strh r1, [r0] + b _0238C598 +_0238C570: + add r0, r8, #0x100 + ldrsh r1, [r0] + add r1, r1, #1 + strh r1, [r0] + ldrsh r0, [r0] + cmp r0, #0xa + ldrge r1, [r8, #8] + mvnge r0, #0 + strge r1, [r8, #4] + strge r0, [r8, #8] +_0238C598: + mov r0, #0 +_0238C59C: + add sp, sp, #0x308 + add sp, sp, #0x800 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov19_0238ADFC + + arm_func_start ov19_0238C5A8 +ov19_0238C5A8: @ 0x0238C5A8 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + bl FUN_0200ED84 + mov sb, #0 + mov r7, #1 + mov r8, r0 + mov sl, sb + mov r6, sb + mov fp, sb + mov r5, r7 + ldr r4, _0238C63C @ =0x02324DB0 + b _0238C624 +_0238C5D4: + lsl r0, sl, #0x10 + asr r0, r0, #0x10 + bl FUN_0200F348 + ldrb r1, [r0] + tst r1, #1 + movne r1, r7 + moveq r1, r6 + tst r1, #0xff + beq _0238C620 + ldrsh r0, [r0, #4] + bl GetBarItem + cmp r0, #0 + movne r0, r5 + moveq r0, fp + tst r0, #0xff + ldrne r0, [r4] + addne r0, r0, sb, lsl #1 + strhne sl, [r0, #0x68] + addne sb, sb, #1 +_0238C620: + add sl, sl, #1 +_0238C624: + cmp sl, r8 + blt _0238C5D4 + ldr r0, _0238C63C @ =0x02324DB0 + ldr r0, [r0] + str sb, [r0, #0x64] + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0238C63C: .4byte 0x02324DB0 + arm_func_end ov19_0238C5A8 + + arm_func_start ov19_0238C640 +ov19_0238C640: @ 0x0238C640 + ldr r0, _0238C66C @ =0x02324DB0 + mov r2, #0x1c + ldr r3, [r0] + mov r1, #0 + add r0, r3, #0x100 + strh r2, [r0, #0xc8] + strh r2, [r0, #0xca] + strb r1, [r3, #0x1cc] + strb r1, [r3, #0x5cc] + str r1, [r3, #0x1c4] + bx lr + .align 2, 0 +_0238C66C: .4byte 0x02324DB0 + arm_func_end ov19_0238C640 + + arm_func_start ov19_0238C670 +ov19_0238C670: @ 0x0238C670 + push {r3, r4, r5, lr} + sub sp, sp, #0x50 + ldr r1, _0238C6C0 @ =0x02324DB0 + add r0, sp, #0 + ldr r4, [r1] + mov r5, #0 + bl FUN_02023690 + add r0, r4, #0x1cc + bl FUN_0202A66C + cmp r0, #0 + bne _0238C6B4 + add r0, r4, #0x100 + ldrh r0, [r0, #0xc8] + add r2, sp, #0 + add r1, r4, #0x1cc + bl FUN_02046C30 + mov r5, #1 +_0238C6B4: + mov r0, r5 + add sp, sp, #0x50 + pop {r3, r4, r5, pc} + .align 2, 0 +_0238C6C0: .4byte 0x02324DB0 + arm_func_end ov19_0238C670 + + arm_func_start ov19_0238C6C4 +ov19_0238C6C4: @ 0x0238C6C4 + push {r4, lr} + sub sp, sp, #8 + ldr r1, _0238C7AC @ =0x02324DB0 + mov r0, #0 + ldr r4, [r1] + ldr r1, [r4, #0x1c4] + cmp r1, #0 + beq _0238C7A4 + ldr r0, [r4, #0xd4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_02055410 + cmp r0, #0 + movne r0, #1 + bne _0238C79C + ldr r0, [r4, #0xd4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_02055474 + cmp r0, #0 + movne r0, #0xd + bne _0238C79C + ldr r1, [r4, #0xd4] + add r0, sp, #0 + lsl r1, r1, #0x10 + asr r4, r1, #0x10 + bl FUN_02056E04 + mov r3, #0 + add r2, sp, #0 + b _0238C750 +_0238C73C: + lsl r1, r3, #1 + ldrsh r1, [r2, r1] + cmp r4, r1 + beq _0238C75C + add r3, r3, #1 +_0238C750: + cmp r3, r0 + blt _0238C73C + mvn r3, #0 +_0238C75C: + cmp r3, #3 + addls pc, pc, r3, lsl #2 + b _0238C798 +_0238C768: @ jump table + b _0238C778 @ case 0 + b _0238C780 @ case 1 + b _0238C788 @ case 2 + b _0238C790 @ case 3 +_0238C778: + mov r0, #0x16 + b _0238C79C +_0238C780: + mov r0, #0x17 + b _0238C79C +_0238C788: + mov r0, #0x18 + b _0238C79C +_0238C790: + mov r0, #0x19 + b _0238C79C +_0238C798: + mvn r0, #0 +_0238C79C: + bl FUN_02065B70 + mov r0, #1 +_0238C7A4: + add sp, sp, #8 + pop {r4, pc} + .align 2, 0 +_0238C7AC: .4byte 0x02324DB0 + arm_func_end ov19_0238C6C4 + + arm_func_start ov19_0238C7B0 +ov19_0238C7B0: @ 0x0238C7B0 + push {r3, r4, r5, lr} + sub sp, sp, #0x50 + ldr r1, _0238C808 @ =0x02324DB0 + add r0, sp, #0 + ldr r4, [r1] + mov r5, #0 + bl FUN_02023690 + add r0, r4, #0x1cc + add r0, r0, #0x400 + bl FUN_0202A66C + cmp r0, #0 + bne _0238C7FC + add r0, r4, #0x100 + ldrh r0, [r0, #0xca] + add r1, r4, #0x1cc + add r2, sp, #0 + add r1, r1, #0x400 + bl FUN_02046C30 + mov r5, #1 +_0238C7FC: + mov r0, r5 + add sp, sp, #0x50 + pop {r3, r4, r5, pc} + .align 2, 0 +_0238C808: .4byte 0x02324DB0 + arm_func_end ov19_0238C7B0 + + arm_func_start ov19_0238C80C +ov19_0238C80C: @ 0x0238C80C + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x54 + ldr r2, _0238C8F4 @ =0x02324DB0 + mov r8, r0 + ldr r6, [r2] + mov r7, r1 + ldr r0, [r6, #0xd4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_020555A8 + mov r5, r0 + mov r0, #0x100 + mov r1, #0xf + bl FUN_02001170 + mov r4, r0 + add r0, sp, #4 + bl FUN_02023690 + ldr r0, _0238C8F4 @ =0x02324DB0 + ldr r0, [r0] + ldr r0, [r0, #0xd4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_020564B0 + mov r2, r0 + mov r1, r5 + mov r0, r4 + bl FUN_02056094 + str r4, [sp, #0x3c] + mov r0, #1 + cmp r8, #0 + str r0, [r6, #0x1c4] + mov r3, #0x1c + add r5, sp, #4 + bne _0238C8C0 + str r7, [sp, #0x28] + add r0, r6, #0x100 + strh r3, [r0, #0xc8] + ldr r2, _0238C8F8 @ =0x000045E9 + add r0, r6, #0x1cc + mov r1, #0x400 + str r5, [sp] + bl FUN_020235B8 + mov r0, r4 + bl FUN_02001188 + b _0238C8E8 +_0238C8C0: + str r8, [sp, #0x28] + add r0, r6, #0x100 + strh r3, [r0, #0xc8] + ldr r2, _0238C8FC @ =0x000045E8 + add r0, r6, #0x1cc + mov r1, #0x400 + str r5, [sp] + bl FUN_020235B8 + mov r0, r4 + bl FUN_02001188 +_0238C8E8: + mov r0, #1 + add sp, sp, #0x54 + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0238C8F4: .4byte 0x02324DB0 +_0238C8F8: .4byte 0x000045E9 +_0238C8FC: .4byte 0x000045E8 + arm_func_end ov19_0238C80C + + arm_func_start ov19_0238C900 +ov19_0238C900: @ 0x0238C900 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x54 + ldr r3, _0238C9E0 @ =0x02324DB0 + mov r8, r0 + ldr r5, [r3] + mov r7, r1 + ldr r0, [r5, #0xd4] + mov r6, r2 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_020555A8 + mov r0, #0x100 + mov r1, #0xf + bl FUN_02001170 + mov r4, r0 + add r0, sp, #4 + bl FUN_02023690 + ldr r0, _0238C9E4 @ =0x0238E1CC + lsl r1, r6, #1 + ldrh r1, [r0, r1] + mov r0, r4 + bl FUN_020258B8 + ldr r0, _0238C9E0 @ =0x02324DB0 + cmp r8, #0 + ldr r0, [r0] + moveq r6, #1 + ldr r0, [r0, #0xd4] + movne r6, #0 + orr r0, r0, #0x20000 + cmp r6, #0 + moveq r7, r8 + str r0, [sp, #4] + str r7, [sp, #0x28] + str r4, [sp, #0x3c] + add r0, r5, #0x100 + mov r1, #0x1c + strh r1, [r0, #0xc8] + cmp r6, #0 + ldrne r0, _0238C9E8 @ =0x000045EB + add r7, sp, #4 + ldreq r0, _0238C9EC @ =0x000045EA + mov r3, #0x1c + lsl r1, r0, #0x10 + lsr r2, r1, #0x10 + add r0, r5, #0x1cc + mov r1, #0x400 + str r7, [sp] + bl FUN_020235B8 + mov r0, r4 + bl FUN_02001188 + mov r0, #1 + str r0, [r5, #0x1c4] + cmp r6, #0 + movne r0, #2 + add sp, sp, #0x54 + pop {r3, r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0238C9E0: .4byte 0x02324DB0 +_0238C9E4: .4byte 0x0238E1CC +_0238C9E8: .4byte 0x000045EB +_0238C9EC: .4byte 0x000045EA + arm_func_end ov19_0238C900 + + arm_func_start ov19_0238C9F0 +ov19_0238C9F0: @ 0x0238C9F0 + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x5c + ldr r1, _0238CB20 @ =0x02324DB0 + mov sb, r0 + ldr r8, [r1] + ldr r0, [r8, #0xd4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_020555A8 + mov r4, r0 + ldr r0, _0238CB24 @ =0x0000068A + mov r1, #0xf + bl FUN_02001170 + mov r5, r0 + add r0, r5, #0x45 + add r7, r0, #0x600 + mov r0, #0 + strb r0, [r5] + add r0, sp, #0xc + add r6, r5, #0x600 + bl FUN_02023690 + add r1, sp, #0xc + str r1, [sp] + ldr r2, _0238CB28 @ =0x000045D8 + add r0, r5, #0x400 + mov r1, #0x100 + mov r3, #0 + bl FUN_020235B8 + mov r0, r5 + add r1, r5, #0x400 + bl FUN_020897AC + cmp sb, #0 + beq _0238CABC + ldrsh r2, [r4, #8] + ldrsh r1, [r4, #4] + mov r0, r6 + sub r2, r2, sb + bl FUN_02058D04 + mov sb, r0 + ldrsh r1, [r4, #4] + ldrsh r2, [r4, #8] + mov r0, r7 + bl FUN_02058D04 + str r6, [sp] + str r0, [sp, #4] + mov r0, r5 + str r7, [sp, #8] + mov r2, r4 + mov r3, sb + add r1, r5, #0x400 + bl ov19_0238CBC0 +_0238CABC: + add r0, sp, #0xc + bl FUN_02023690 + ldr r0, _0238CB20 @ =0x02324DB0 + mov r1, #4 + ldr r0, [r0] + str r1, [sp, #0x30] + ldr r1, [r0, #0xd4] + add r0, r8, #0x100 + orr r1, r1, #0x20000 + str r1, [sp, #0xc] + mov r3, #0x1c + strh r3, [r0, #0xc8] + add r4, sp, #0xc + mov r2, r5 + add r0, r8, #0x1cc + mov r1, #0x400 + str r4, [sp] + bl FUN_020223F0 + mov r1, #1 + mov r0, r5 + str r1, [r8, #0x1c4] + bl FUN_02001188 + mov r0, #1 + add sp, sp, #0x5c + pop {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0238CB20: .4byte 0x02324DB0 +_0238CB24: .4byte 0x0000068A +_0238CB28: .4byte 0x000045D8 + arm_func_end ov19_0238C9F0 + + arm_func_start ov19_0238CB2C +ov19_0238CB2C: @ 0x0238CB2C + push {r3, r4, r5, r6, lr} + sub sp, sp, #0x54 + ldr r1, _0238CBB8 @ =0x02324DB0 + mov r6, r0 + ldr r5, [r1] + ldr r0, [r5, #0xd4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_020555A8 + mov r4, r0 + mov r0, #1 + bl FUN_02017C50 + add r0, sp, #4 + bl FUN_02023690 + ldr r0, _0238CBB8 @ =0x02324DB0 + mov ip, #0x204 + ldr r0, [r0] + mov r3, #0x1c + ldr r0, [r0, #0xd4] + add r1, r5, #0x100 + orr r0, r0, #0x20000 + str r0, [sp, #4] + ldrb r4, [r4, #1] + add r2, sp, #4 + add r0, r5, #0x1cc + add r4, r4, r6 + str r4, [sp, #0x28] + str ip, [sp, #0x2c] + strh r3, [r1, #0xc8] + str r2, [sp] + ldr r2, _0238CBBC @ =0x000045EC + mov r1, #0x400 + bl FUN_020235B8 + add sp, sp, #0x54 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0238CBB8: .4byte 0x02324DB0 +_0238CBBC: .4byte 0x000045EC + arm_func_end ov19_0238CB2C + + arm_func_start ov19_0238CBC0 +ov19_0238CBC0: @ 0x0238CBC0 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x5c + ldr r4, _0238CCDC @ =0x02324DB0 + mov sl, r0 + ldr r4, [r4] + mov r0, #0 + ldr r8, [sp, #0x80] + ldr r7, [sp, #0x84] + ldr r6, [sp, #0x88] + mov sb, r1 + mov fp, r2 + str r3, [sp, #4] + mov r5, #1 + str r0, [sp, #8] +_0238CBF8: + mov r1, #0 + mov r2, r1 + mov r3, r1 + b _0238CC1C +_0238CC08: + ldrb r0, [r8, r3] + cmp r5, r0 + moveq r1, #1 + beq _0238CC28 + add r3, r3, #1 +_0238CC1C: + ldr r0, [sp, #4] + cmp r3, r0 + blt _0238CC08 +_0238CC28: + mov r3, #0 + b _0238CC44 +_0238CC30: + ldrb r0, [r6, r3] + cmp r5, r0 + moveq r2, #1 + beq _0238CC4C + add r3, r3, #1 +_0238CC44: + cmp r3, r7 + blt _0238CC30 +_0238CC4C: + cmp r1, r2 + beq _0238CCC4 + add r0, sp, #0xc + bl FUN_02023690 + ldr r1, _0238CCE0 @ =0x0238E2C0 + mov r0, sl + bl FUN_020897AC + ldr r1, [r4, #0xd4] + mov r0, sl + orr r1, r1, #0x20000 + str r1, [sp, #0xc] + ldr r1, _0238CCE4 @ =0x0238E2C4 + str r5, [sp, #0x1c] + bl FUN_020897AC + add r0, sp, #0xc + str r0, [sp] + mov r0, #1 + str r0, [sp, #8] + arm_func_end ov19_0238CBC0 + + arm_func_start ov19_0238CC94 +ov19_0238CC94: @ 0x0238CC94 + ldr r2, _0238CCE8 @ =0x000045E2 + mov r0, sb + mov r1, #0x100 + mov r3, #0 + bl FUN_020235B8 + arm_func_end ov19_0238CC94 + + arm_func_start ov19_0238CCA8 +ov19_0238CCA8: @ 0x0238CCA8 + mov r0, sl + mov r1, sb + bl FUN_020897AC + add r0, fp, #0x14 + and r1, r5, #0xff + arm_func_end ov19_0238CCA8 + + arm_func_start ov19_0238CCBC +ov19_0238CCBC: @ 0x0238CCBC + bl FUN_02058DF4 + add r5, r5, #1 +_0238CCC4: + add r5, r5, #1 + cmp r5, #0x45 + blt _0238CBF8 + ldr r0, [sp, #8] + add sp, sp, #0x5c + arm_func_end ov19_0238CCBC + + arm_func_start ov19_0238CCD8 +ov19_0238CCD8: @ 0x0238CCD8 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0238CCDC: .4byte 0x02324DB0 +_0238CCE0: .4byte 0x0238E2C0 +_0238CCE4: .4byte 0x0238E2C4 +_0238CCE8: .4byte 0x000045E2 + arm_func_end ov19_0238CCD8 + + arm_func_start ov19_0238CCEC +ov19_0238CCEC: @ 0x0238CCEC + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + arm_func_end ov19_0238CCEC + + arm_func_start ov19_0238CCF0 +ov19_0238CCF0: @ 0x0238CCF0 + ldr r2, _0238CEBC @ =0x02324DB0 + mov r5, r0 + ldr r0, [r2] + mov r4, r1 + ldr r0, [r0, #0xd4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_020555A8 + mov r6, r0 + mov r0, #0 + mov sb, r0 + str r4, [r5, #0x20] + mov fp, r0 + b _0238CEB0 +_0238CD28: + lsl r1, sb, #1 + ldrsh r7, [r5, r1] + cmp r7, #0 + beq _0238CE9C + cmp sb, #5 + addls pc, pc, sb, lsl #2 + b _0238CE74 +_0238CD44: @ jump table + b _0238CD5C @ case 0 + b _0238CD84 @ case 1 + b _0238CDD4 @ case 2 + b _0238CDFC @ case 3 + b _0238CE24 @ case 4 + b _0238CE4C @ case 5 +_0238CD5C: + mov r1, r7 + add r0, r6, #0xa + ldrsh r8, [r6, #0xa] + bl FUN_02054FB8 + movs sl, r0 + ldrshne r0, [r6, #0xa] + subne r0, r0, r8 + lslne r0, r0, #0x10 + asrne r7, r0, #0x10 + b _0238CE78 +_0238CD84: + ldrsh r8, [r6, #8] + ldrsh r1, [r6, #4] + add r0, r5, #0x2c + mov r2, r8 + bl FUN_02058D04 + str r0, [r5, #0x24] + mov r1, r7 + add r0, r6, #8 + bl FUN_02055054 + movs sl, r0 + ldrshne r0, [r6, #8] + ldrsh r1, [r6, #4] + ldrsh r2, [r6, #8] + subne r0, r0, r8 + lslne r0, r0, #0x10 + asrne r7, r0, #0x10 + add r0, r5, #0x71 + bl FUN_02058D04 + str r0, [r5, #0x28] + b _0238CE78 +_0238CDD4: + mov r1, r7 + add r0, r6, #0xc + ldrb r8, [r6, #0xc] + bl FUN_02054FEC + movs sl, r0 + ldrbne r0, [r6, #0xc] + subne r0, r0, r8 + lslne r0, r0, #0x10 + asrne r7, r0, #0x10 + b _0238CE78 +_0238CDFC: + mov r1, r7 + add r0, r6, #0xd + ldrb r8, [r6, #0xd] + bl FUN_02054FEC + movs sl, r0 + ldrbne r0, [r6, #0xd] + subne r0, r0, r8 + lslne r0, r0, #0x10 + asrne r7, r0, #0x10 + b _0238CE78 +_0238CE24: + mov r1, r7 + add r0, r6, #0xe + ldrb r8, [r6, #0xe] + bl FUN_02055020 + movs sl, r0 + ldrbne r0, [r6, #0xe] + subne r0, r0, r8 + lslne r0, r0, #0x10 + asrne r7, r0, #0x10 + b _0238CE78 +_0238CE4C: + mov r1, r7 + add r0, r6, #0xf + ldrb r8, [r6, #0xf] + bl FUN_02055020 + movs sl, r0 + ldrbne r0, [r6, #0xf] + subne r0, r0, r8 + lslne r0, r0, #0x10 + asrne r7, r0, #0x10 + b _0238CE78 +_0238CE74: + mov sl, #0 +_0238CE78: + add r0, r5, sb, lsl #1 + strh r7, [r0, #0xc] + add r0, r5, sb + strb sl, [r0, #0x18] + cmp r4, #1 + movne r0, #1 + popne {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + mov r0, #1 + b _0238CEAC +_0238CE9C: + add r1, r5, r1 + strh fp, [r1, #0xc] + add r1, r5, sb + strb fp, [r1, #0x18] +_0238CEAC: + add sb, sb, #1 +_0238CEB0: + cmp sb, #6 + blt _0238CD28 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0238CEBC: .4byte 0x02324DB0 + arm_func_end ov19_0238CCF0 + + arm_func_start ov19_0238CEC0 +ov19_0238CEC0: @ 0x0238CEC0 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x70 + ldr r1, _0238D0BC @ =0x02324DB0 + mov sl, r0 + ldr sb, [r1] + ldr r0, [sb, #0xd4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_020555A8 + str r0, [sp, #0x10] + ldr r0, _0238D0C0 @ =0x0000068A + mov r1, #0xf + bl FUN_02001170 + mov r4, r0 + add r0, r4, #0x500 + str r0, [sp, #0xc] + mov r7, #0 + bl ov19_0238C640 + add r0, sp, #0x20 + bl FUN_02023690 + ldr r0, [sb, #0xd4] + mov r8, r7 + orr r0, r0, #0x20000 + str r0, [sp, #0x20] + add r0, sl, #0x2c + str r0, [sp, #0x14] + add r0, sl, #0x71 + str r0, [sp, #0x18] + add r0, sb, #0x100 + add fp, sb, #0x1cc + str r0, [sp, #0x1c] +_0238CF3C: + add r0, sl, r8, lsl #1 + ldrsh r5, [r0, #0xc] + add r0, sl, r8 + ldrb r6, [r0, #0x18] + cmp r5, #0 + beq _0238D0A0 + cmp r7, #0 + bne _0238CF84 + add r0, sp, #0x20 + str r0, [sp] + ldr r2, [sl, #0x20] + add r0, fp, #0x400 + lsl r7, r2, #1 + ldr r2, _0238D0C4 @ =0x0238E178 + mov r1, #0x100 + ldrh r2, [r2, r7] + mov r3, #0 + bl FUN_020235B8 +_0238CF84: + add r0, fp, #0x400 + bl FUN_02020868 + mov r7, r0 + ldr r1, _0238D0C8 @ =0x0238E1CC + lsl r2, r8, #1 + ldrh r1, [r1, r2] + ldr r0, [sp, #0xc] + bl FUN_020258B8 + ldr r0, [sp, #0xc] + str r0, [sp, #0x58] + mov r0, r5 + bl FUN_0208655C + str r0, [sp, #0x44] + cmp r8, #1 + ldreq r0, [sl, #0x20] + lsleq r1, r0, #1 + ldreq r0, _0238D0CC @ =0x0238E196 + ldrheq r2, [r0, r1] + beq _0238CFF0 + ldr r0, [sl, #0x20] + cmp r6, #0 + lsleq r1, r0, #1 + ldreq r0, _0238D0D0 @ =0x0238E19C + ldrheq r2, [r0, r1] + lslne r1, r0, #1 + ldrne r0, _0238D0D4 @ =0x0238E184 + ldrhne r2, [r0, r1] +_0238CFF0: + add r0, sp, #0x20 + str r0, [sp] + mov r0, r4 + mov r1, #0x100 + mov r3, #0 + bl FUN_020235B8 + cmp r8, #1 + bne _0238D04C + cmp r5, #0 + ble _0238D04C + cmp r6, #0 + beq _0238D04C + ldr r0, [sp, #0x14] + ldr r2, [sp, #0x10] + str r0, [sp] + ldr r1, [sl, #0x28] + mov r0, r4 + str r1, [sp, #4] + ldr r1, [sp, #0x18] + str r1, [sp, #8] + ldr r3, [sl, #0x24] + add r1, r4, #0x400 + bl ov19_0238CBC0 +_0238D04C: + add r0, sp, #0x20 + bl FUN_02023690 + mov r0, #4 + str r0, [sp, #0x44] + mov r0, #0xa + strb r0, [r7], #1 + ldr r0, [sp, #0x1c] + mov r1, #0x1c + strh r1, [r0, #0xca] + add r0, sp, #0x20 + str r0, [sp] + mov r0, r7 + mov r1, #0x400 + mov r2, r4 + mov r3, #0x1c + bl FUN_020223F0 + cmp r5, #0 + movgt r0, #1 + strgt r0, [sb, #0x1c4] + movle r0, #2 + strle r0, [sb, #0x1c4] +_0238D0A0: + add r8, r8, #1 + cmp r8, #6 + blt _0238CF3C + mov r0, r4 + bl FUN_02001188 + add sp, sp, #0x70 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0238D0BC: .4byte 0x02324DB0 +_0238D0C0: .4byte 0x0000068A +_0238D0C4: .4byte 0x0238E178 +_0238D0C8: .4byte 0x0238E1CC +_0238D0CC: .4byte 0x0238E196 +_0238D0D0: .4byte 0x0238E19C +_0238D0D4: .4byte 0x0238E184 + arm_func_end ov19_0238CEC0 + + arm_func_start ov19_0238D0D8 +ov19_0238D0D8: @ 0x0238D0D8 + push {r3, r4, r5, lr} + sub sp, sp, #0xc0 + ldr r0, _0238D308 @ =0x02324DB0 + ldr r4, [r0] + bl ov19_0238C640 + ldr r0, [r4, #0xfc] + cmp r0, #6 + addls pc, pc, r0, lsl #2 + b _0238D300 +_0238D0FC: @ jump table + b _0238D118 @ case 0 + b _0238D120 @ case 1 + b _0238D118 @ case 2 + b _0238D274 @ case 3 + b _0238D290 @ case 4 + b _0238D2AC @ case 5 + b _0238D1D0 @ case 6 +_0238D118: + bl ov19_0238D310 + b _0238D300 +_0238D120: + ldr r0, _0238D308 @ =0x02324DB0 + ldr r0, [r0] + ldrsh r0, [r0, #0xd0] + bl GetBarItem + mov ip, #0 + mov r5, ip + add r3, sp, #8 +_0238D13C: + lsl r1, ip, #1 + strh r5, [r3, r1] + add r2, r3, ip, lsl #1 + add r1, r3, ip + strh r5, [r2, #0xc] + add ip, ip, #1 + strb r5, [r1, #0x18] + cmp ip, #6 + blt _0238D13C + ldrsh r2, [r0, #2] + mov r1, #1 + strh r2, [sp, #8] + ldrsh r2, [r0, #4] + strh r2, [sp, #0xa] + ldrsh r2, [r0, #6] + strh r2, [sp, #0xc] + ldrsh r2, [r0, #8] + strh r2, [sp, #0xe] + ldrsh r2, [r0, #0xa] + strh r2, [sp, #0x10] + ldrsh r2, [r0, #0xc] + mov r0, r3 + strh r2, [sp, #0x12] + bl ov19_0238CCEC + cmp r0, #0 + bne _0238D1AC + bl ov19_0238D310 + b _0238D300 +_0238D1AC: + add r0, sp, #8 + bl ov19_0238CEC0 + mov r0, #0x27 + str r0, [r4, #4] + mov r0, #0x40 + str r0, [r4, #8] + mov r0, #0xc + str r0, [r4] + b _0238D300 +_0238D1D0: + mov r5, #0 + mov r3, r5 + add r2, sp, #8 +_0238D1DC: + lsl r0, r5, #1 + strh r3, [r2, r0] + add r1, r2, r5, lsl #1 + add r0, r2, r5 + strh r3, [r1, #0xc] + add r5, r5, #1 + strb r3, [r0, #0x18] + cmp r5, #6 + blt _0238D1DC + add r0, sp, #0 + add r1, sp, #4 + bl ov19_0238A180 + mov r0, #6 + bl FUN_02002274 + ldr r1, [sp, #4] + mov r5, r0 + ldr r0, [sp] + add r1, r1, #1 + bl FUN_0200228C + add r1, sp, #8 + lsl r2, r5, #1 + strh r0, [r1, r2] + mov r0, r1 + mov r1, #2 + bl ov19_0238CCEC + cmp r0, #0 + bne _0238D250 + bl ov19_0238D310 + b _0238D300 +_0238D250: + add r0, sp, #8 + bl ov19_0238CEC0 + mov r0, #0x27 + str r0, [r4, #4] + mov r0, #0x40 + str r0, [r4, #8] + mov r0, #0xc + str r0, [r4] + b _0238D300 +_0238D274: + bl FUN_02046D20 + add r0, r4, #0x100 + mov r1, #0 + strh r1, [r0] + mov r0, #0x2a + str r0, [r4, #4] + b _0238D300 +_0238D290: + bl FUN_02046D20 + add r0, r4, #0x100 + mov r1, #0 + strh r1, [r0] + mov r0, #0x2f + str r0, [r4, #4] + b _0238D300 +_0238D2AC: + mov r0, #0 + bl ov19_0238A3D4 + mov r1, #0xf + bl FUN_02001170 + mov r5, r0 + bl ov19_0238A3EC + bl FUN_02002274 + ldrb r1, [r5, r0] + mov r0, r5 + strb r1, [r4, #0x102] + bl FUN_02001188 + ldrb r0, [r4, #0x102] + bl FUN_0206A714 + mov r1, #3 + bl FUN_0204D018 + mov r0, #0x1c + ldr r1, _0238D30C @ =0x000045E0 + mov r2, #0 + bl FUN_02046BE8 + mov r0, #0x3a + str r0, [r4, #4] +_0238D300: + add sp, sp, #0xc0 + pop {r3, r4, r5, pc} + .align 2, 0 +_0238D308: .4byte 0x02324DB0 +_0238D30C: .4byte 0x000045E0 + arm_func_end ov19_0238D0D8 + + arm_func_start ov19_0238D310 +ov19_0238D310: @ 0x0238D310 + push {r4, lr} + ldr r0, _0238D384 @ =0x02324DB0 + ldr r4, [r0] + bl ov19_0238D47C + bl FUN_02046D20 + add r0, r4, #0x100 + mov r1, #0 + strh r1, [r0] + mov r0, #0x3d + str r0, [r4, #4] + mov r0, #3 + str r0, [r4, #8] + ldr r0, [r4, #0xd4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_02055528 + cmp r0, #0 + beq _0238D378 + ldr r0, [r4, #0xd4] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_02055410 + cmp r0, #0 + movne r0, #9 + moveq r0, #0xa + b _0238D37C +_0238D378: + mov r0, #8 +_0238D37C: + str r0, [r4] + pop {r4, pc} + .align 2, 0 +_0238D384: .4byte 0x02324DB0 + arm_func_end ov19_0238D310 + + arm_func_start ov19_0238D388 +ov19_0238D388: @ 0x0238D388 + push {r3, lr} + bl FUN_02046C78 + cmp r0, #0 + movne r0, #0xa + moveq r0, #0 + pop {r3, pc} + arm_func_end ov19_0238D388 + + arm_func_start ov19_0238D3A0 +ov19_0238D3A0: @ 0x0238D3A0 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0xf4 + mov r7, r0 + mov r6, r1 + add r0, sp, #0x5c + mov r1, #0x98 + mov r5, r2 + mov r4, r3 + bl FUN_02003250 + add r0, sp, #0xf8 + ldrsb r0, [r0, #0x10] + cmp r0, #0 + addge r0, r5, r0, lsl #3 + ldrge r1, [r0, #4] + add r0, sp, #0xc + movlt r1, #0 + str r1, [sp, #0x5c] + bl FUN_02023690 + ldr r0, [sp, #0x10c] + add ip, sp, #0xc + str r0, [sp, #0x58] + str r5, [sp] + add r3, sp, #0x5c + mov r0, r7 + mov r1, r6 + mov r2, #0x33 + stmib sp, {r4, ip} + bl FUN_02046A20 + add sp, sp, #0xf4 + pop {r4, r5, r6, r7, pc} + arm_func_end ov19_0238D3A0 + + arm_func_start ov19_0238D418 +ov19_0238D418: @ 0x0238D418 + push {r3, lr} + bl FUN_02046B04 + mvn r2, #0 + cmp r0, r2 + moveq r0, #0 + popeq {r3, pc} + sub r1, r2, #1 + cmp r0, r1 + moveq r0, #0xa + popeq {r3, pc} + sub r1, r2, #2 + cmp r0, r1 + moveq r0, #0xa + pop {r3, pc} + arm_func_end ov19_0238D418 + + arm_func_start ov19_0238D450 +ov19_0238D450: @ 0x0238D450 + push {r3, lr} + ldr r0, _0238D478 @ =0x02324DB0 + mvn r1, #1 + ldr r2, [r0] + ldrsb r0, [r2, #0xc] + cmp r0, r1 + popeq {r3, pc} + add r1, r2, #0x10 + bl FUN_0202F690 + pop {r3, pc} + .align 2, 0 +_0238D478: .4byte 0x02324DB0 + arm_func_end ov19_0238D450 + + arm_func_start ov19_0238D47C +ov19_0238D47C: @ 0x0238D47C + push {r3, lr} + ldr r0, _0238D4A0 @ =0x02324DB0 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #0xc] + cmp r0, r1 + popeq {r3, pc} + bl FUN_0202F6DC + pop {r3, pc} + .align 2, 0 +_0238D4A0: .4byte 0x02324DB0 + arm_func_end ov19_0238D47C + + arm_func_start ov19_0238D4A4 +ov19_0238D4A4: @ 0x0238D4A4 + push {r4, lr} + ldr ip, _0238D4E0 @ =0x02324DB0 + mov r3, r2 + ldr r2, [ip] + mov lr, #0 + add r2, r2, r1 + strb lr, [r2, #0x23] + ldr ip, [ip] + mov r2, #1 + add r1, ip, r1, lsl #1 + ldrsh r1, [r1, #0x68] + mov r4, r0 + bl FUN_022BD394 + mov r0, r4 + pop {r4, pc} + .align 2, 0 +_0238D4E0: .4byte 0x02324DB0 + arm_func_end ov19_0238D4A4 + + arm_func_start ov19_0238D4E4 +ov19_0238D4E4: @ 0x0238D4E4 + push {r3, lr} + ldr r0, _0238D518 @ =0x02324DB0 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #0x20] + cmp r0, r1 + popeq {r3, pc} + bl FUN_022BCCF4 + ldr r0, _0238D518 @ =0x02324DB0 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x20] + pop {r3, pc} + .align 2, 0 +_0238D518: .4byte 0x02324DB0 + arm_func_end ov19_0238D4E4 + + arm_func_start ov19_0238D51C +ov19_0238D51C: @ 0x0238D51C + push {r3, lr} + ldr r1, _0238D568 @ =0x02324DB0 + mvn r0, #1 + ldr r2, [r1] + ldrsb r1, [r2, #0x20] + cmp r1, r0 + popeq {r3, pc} + ldr r0, [r2, #0xd4] + bl FUN_0203FD80 + bl FUN_020407C0 + ldr r0, _0238D568 @ =0x02324DB0 + ldr r0, [r0] + ldrsb r0, [r0, #0x20] + bl FUN_020308A0 + ldr r0, _0238D568 @ =0x02324DB0 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x20] + pop {r3, pc} + .align 2, 0 +_0238D568: .4byte 0x02324DB0 + arm_func_end ov19_0238D51C + + arm_func_start ov19_0238D56C +ov19_0238D56C: @ 0x0238D56C + push {r4, lr} + ldr r0, _0238D5F0 @ =0x00000A68 + mov r1, #8 + bl FUN_02001170 + mov r4, r0 + ldr r1, _0238D5F4 @ =0x02324DB0 + add r0, r4, #0x9d0 + str r4, [r1] + bl FUN_02034A38 + str r0, [r4, #0x9cc] + mvn r2, #1 + strb r2, [r4, #0xc] + strb r2, [r4, #0x20] + strb r2, [r4, #0x21] + ldr r1, _0238D5F8 @ =0x00000163 + add r0, r4, #0x10 + strb r2, [r4, #0x22] + bl FUN_0204D7D4 + add r0, r4, #0x10 + mov r1, #0 + bl FUN_0204D804 + add r0, r4, #0x10 + mov r1, #0 + bl FUN_0204D7F4 + add r0, r4, #0x5c + bl FUN_020580C4 + mov r0, #0 + str r0, [r4] + sub r0, r0, #1 + str r0, [r4, #4] + str r0, [r4, #8] + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_0238D5F0: .4byte 0x00000A68 +_0238D5F4: .4byte 0x02324DB0 +_0238D5F8: .4byte 0x00000163 + arm_func_end ov19_0238D56C + + arm_func_start ov19_0238D5FC +ov19_0238D5FC: @ 0x0238D5FC + push {r4, lr} + ldr r1, _0238D684 @ =0x02324DB0 + mov r0, #0 + ldr r4, [r1] + mov r1, #3 + mov r2, #1 + bl FUN_0202F5AC + strb r0, [r4, #0xc] + mvn r2, #1 + strb r2, [r4, #0x20] + strb r2, [r4, #0x21] + ldr r1, _0238D688 @ =0x00000163 + add r0, r4, #0x10 + strb r2, [r4, #0x22] + bl FUN_0204D7D4 + add r0, r4, #0x10 + mov r1, #0 + bl FUN_0204D804 + add r0, r4, #0x10 + mov r1, #0 + bl FUN_0204D7F4 + add r0, r4, #0x5c + bl FUN_020580C4 + ldr r0, [r4] + cmp r0, #0 + bne _0238D67C + mov r0, #1 + str r0, [r4] + mov r0, #0 + str r0, [r4, #4] + mov r0, #2 + str r0, [r4, #8] +_0238D67C: + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_0238D684: .4byte 0x02324DB0 +_0238D688: .4byte 0x00000163 + arm_func_end ov19_0238D5FC + @ 0x0238D68C diff --git a/asm/overlay_20.s b/asm/overlay_20.s index d51310fb..7e294767 100644 --- a/asm/overlay_20.s +++ b/asm/overlay_20.s @@ -3,3 +3,3198 @@ .include "global.inc" .text + + arm_func_start ov20_0238A140 +ov20_0238A140: @ 0x0238A140 + ldr ip, _0238A14C @ =ov20_0238B294 + mov r0, #0 + bx ip + .align 2, 0 +_0238A14C: .4byte ov20_0238B294 + arm_func_end ov20_0238A140 +_0238A150: + .byte 0x04, 0xC0, 0x9F, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1, 0x94, 0xB2, 0x38, 0x02 + + arm_func_start ov20_0238A160 +ov20_0238A160: @ 0x0238A160 + push {r3, lr} + ldr r0, _0238A1AC @ =0x0238D120 + ldr r1, [r0] + cmp r1, #0 + beq _0238A1A4 + ldr r0, [r1, #0x9c] + cmp r0, #0 + beq _0238A188 + add r0, r1, #0x9c + bl FUN_020125CC +_0238A188: + bl FUN_02046D20 + ldr r0, _0238A1AC @ =0x0238D120 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0238A1AC @ =0x0238D120 + mov r1, #0 + str r1, [r0] +_0238A1A4: + bl FUN_020017EC + pop {r3, pc} + .align 2, 0 +_0238A1AC: .4byte 0x0238D120 +_0238A1B0: + .byte 0xF8, 0x4F, 0x2D, 0xE9, 0xB0, 0xD0, 0x4D, 0xE2, 0x84, 0x0F, 0x9F, 0xE5, 0x00, 0x80, 0x90, 0xE5 + .byte 0x00, 0x00, 0x98, 0xE5, 0x08, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x2D, 0x04, 0x00, 0xEA + .byte 0x07, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x00, 0xEA, 0xD0, 0x03, 0x00, 0xEA + .byte 0xD2, 0x03, 0x00, 0xEA, 0xE2, 0x03, 0x00, 0xEA, 0xED, 0x03, 0x00, 0xEA, 0xF5, 0x03, 0x00, 0xEA + .byte 0x1A, 0x04, 0x00, 0xEA, 0x02, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x88, 0xE5, 0x19, 0x73, 0xFD, 0xEB + .byte 0x20, 0x04, 0x00, 0xEA, 0x02, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x88, 0xE5, 0x1D, 0x04, 0x00, 0xEA + .byte 0x2C, 0x73, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0xAF, 0x0A, 0xFE, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x17, 0x04, 0x00, 0x0A, 0x14, 0xAF, 0x9F, 0xE5, 0x00, 0x90, 0x9A, 0xE5 + .byte 0x04, 0x00, 0x99, 0xE5, 0x09, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0xAE, 0x03, 0x00, 0xEA + .byte 0x08, 0x00, 0x00, 0xEA, 0x0E, 0x00, 0x00, 0xEA, 0x12, 0x00, 0x00, 0xEA, 0x14, 0x00, 0x00, 0xEA + .byte 0x13, 0x00, 0x00, 0xEA, 0x5A, 0x00, 0x00, 0xEA, 0x86, 0x03, 0x00, 0xEA, 0x8E, 0x03, 0x00, 0xEA + .byte 0x94, 0x03, 0x00, 0xEA, 0xA0, 0x03, 0x00, 0xEA, 0xEC, 0x0B, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0xA1, 0x03, 0x00, 0x1A, 0x28, 0x0D, 0xFE, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x89, 0xE5 + .byte 0x9D, 0x03, 0x00, 0xEA, 0xE5, 0x0B, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0xA0, 0x03 + .byte 0x04, 0x00, 0x89, 0x05, 0x98, 0x03, 0x00, 0xEA, 0x03, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x89, 0xE5 + .byte 0x95, 0x03, 0x00, 0xEA, 0x04, 0x00, 0x50, 0xE3, 0x01, 0x10, 0xA0, 0x03, 0x00, 0x10, 0xA0, 0x13 + .byte 0x0C, 0x00, 0x99, 0xE5, 0xFF, 0x40, 0x01, 0xE2, 0x00, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A + .byte 0x01, 0x00, 0x50, 0xE3, 0x14, 0x00, 0x00, 0x0A, 0x02, 0x00, 0x50, 0xE3, 0x20, 0x00, 0x00, 0x0A + .byte 0x89, 0x03, 0x00, 0xEA, 0x00, 0x10, 0xA0, 0xE3, 0x09, 0x00, 0xA0, 0xE1, 0xB0, 0x10, 0xC9, 0xE5 + .byte 0x70, 0x04, 0x00, 0xEB, 0x00, 0x00, 0x54, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x54, 0x1E, 0x9F, 0xE5 + .byte 0x54, 0x2E, 0x9F, 0xE5, 0x09, 0x00, 0xA0, 0xE1, 0x27, 0x04, 0x00, 0xEB, 0x03, 0x00, 0x00, 0xEA + .byte 0x48, 0x1E, 0x9F, 0xE5, 0x40, 0x2E, 0x9F, 0xE5, 0x09, 0x00, 0xA0, 0xE1, 0x22, 0x04, 0x00, 0xEB + .byte 0x02, 0x00, 0xA0, 0xE3, 0x0C, 0x00, 0x89, 0xE5, 0x77, 0x03, 0x00, 0xEA, 0x00, 0x00, 0x54, 0xE3 + .byte 0x04, 0x00, 0x00, 0x0A, 0x1C, 0x1E, 0x9F, 0xE5, 0x1C, 0x2E, 0x9F, 0xE5, 0x09, 0x00, 0xA0, 0xE1 + .byte 0x19, 0x04, 0x00, 0xEB, 0x03, 0x00, 0x00, 0xEA, 0x10, 0x1E, 0x9F, 0xE5, 0x08, 0x2E, 0x9F, 0xE5 + .byte 0x09, 0x00, 0xA0, 0xE1, 0x14, 0x04, 0x00, 0xEB, 0x02, 0x00, 0xA0, 0xE3, 0x0C, 0x00, 0x89, 0xE5 + .byte 0x69, 0x03, 0x00, 0xEA, 0xEA, 0xF1, 0xF2, 0xEB, 0x00, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1 + .byte 0x65, 0x03, 0x00, 0x0A, 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0xA0, 0x03, 0x04, 0x00, 0x89, 0x05 + .byte 0x00, 0x00, 0xA0, 0x03, 0x0C, 0x00, 0x89, 0x05, 0x5F, 0x03, 0x00, 0x0A, 0x01, 0x00, 0x50, 0xE3 + .byte 0x05, 0x00, 0x00, 0x1A, 0x00, 0x10, 0xA0, 0xE3, 0xB8, 0x1A, 0xC9, 0xE1, 0x06, 0x00, 0xA0, 0xE3 + .byte 0x04, 0x00, 0x89, 0xE5, 0x0C, 0x10, 0x89, 0xE5, 0x57, 0x03, 0x00, 0xEA, 0x02, 0x00, 0x50, 0xE3 + .byte 0x07, 0x00, 0xA0, 0x03, 0x04, 0x00, 0x89, 0x05, 0x00, 0x00, 0xA0, 0x03, 0x0C, 0x00, 0x89, 0x05 + .byte 0x08, 0x00, 0xA0, 0x13, 0x04, 0x00, 0x89, 0x15, 0x00, 0x00, 0xA0, 0x13, 0x0C, 0x00, 0x89, 0x15 + .byte 0x4D, 0x03, 0x00, 0xEA, 0x88, 0x6D, 0x9F, 0xE5, 0x00, 0x70, 0xA0, 0xE3, 0x01, 0xB0, 0x46, 0xE2 + .byte 0x00, 0x40, 0xE0, 0xE3, 0x24, 0x03, 0x00, 0xEA +_0238A3D8: + ldr r0, [sb, #0xc] + mov r7, #1 + cmp r0, #0x3f + addls pc, pc, r0, lsl #2 + b _0238B05C +_0238A3EC: @ jump table + b _0238A4EC @ case 0 + b _0238A4EC @ case 1 + b _0238A590 @ case 2 + b _0238A620 @ case 3 + b _0238A630 @ case 4 + b _0238A644 @ case 5 + b _0238A654 @ case 6 + b _0238A668 @ case 7 + b _0238A678 @ case 8 + b _0238A68C @ case 9 + b _0238A6C8 @ case 10 + b _0238A890 @ case 11 + b _0238A8BC @ case 12 + b _0238A8FC @ case 13 + b _0238A90C @ case 14 + b _0238A924 @ case 15 + b _0238A948 @ case 16 + b _0238A95C @ case 17 + b _0238A96C @ case 18 + b _0238A980 @ case 19 + b _0238A990 @ case 20 + b _0238A9A4 @ case 21 + b _0238A9BC @ case 22 + b _0238A9D4 @ case 23 + b _0238B05C @ case 24 + b _0238B05C @ case 25 + b _0238B05C @ case 26 + b _0238AAB4 @ case 27 + b _0238AAEC @ case 28 + b _0238AB70 @ case 29 + b _0238AB80 @ case 30 + b ov20_0238AB14 @ case 31 + b _0238ABA8 @ case 32 + b _0238ABC4 @ case 33 + b _0238ABD4 @ case 34 + b _0238ABEC @ case 35 + b _0238AC34 @ case 36 + b _0238AC84 @ case 37 + b _0238AC98 @ case 38 + b _0238ACB0 @ case 39 + b _0238ACC0 @ case 40 + b _0238AD14 @ case 41 + b _0238AD24 @ case 42 + b _0238AD78 @ case 43 + b _0238ADC8 @ case 44 + b _0238ADDC @ case 45 + b _0238AE08 @ case 46 + b _0238AE20 @ case 47 + b _0238AE44 @ case 48 + b _0238AE58 @ case 49 + b _0238AE70 @ case 50 + b _0238AEA4 @ case 51 + b _0238AEB4 @ case 52 + b _0238AECC @ case 53 + b _0238AEE8 @ case 54 + b _0238AF68 @ case 55 + b _0238AF80 @ case 56 + b _0238AFAC @ case 57 + b _0238AFD0 @ case 58 + b _0238AFE8 @ case 59 + b _0238B00C @ case 60 + b _0238B01C @ case 61 + b _0238B034 @ case 62 + b _0238B048 @ case 63 +_0238A4EC: + bl FUN_02011EE8 + cmp r0, #0 + bne _0238A538 + ldrb r0, [sb, #0xb0] + cmp r0, #0 + beq _0238A520 + ldr r2, _0238B158 @ =0x0238CF84 + mov r0, sb + add r1, r6, #2 + bl ov20_0238B39C + mov r0, #2 + str r0, [sb, #0xc] + b _0238A584 +_0238A520: + mov r0, #0 + str r0, [sb, #0x80] + mov r0, #7 + str r0, [sb, #0xc] + mov r7, #0 + b _0238A584 +_0238A538: + ldr r0, [sb, #0xc] + cmp r0, #0 + bne _0238A558 + ldr r2, _0238B15C @ =0x0238CFCC + mov r0, sb + mov r1, fp + bl ov20_0238B39C + b _0238A57C +_0238A558: + ldrb r0, [sb, #0xb0] + ldr r2, _0238B15C @ =0x0238CFCC + cmp r0, #0 + addne r0, r6, #1 + moveq r0, r6 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + mov r0, sb + bl ov20_0238B39C +_0238A57C: + mov r0, #2 + str r0, [sb, #0xc] +_0238A584: + mov r0, #0 + strb r0, [sb, #0xb0] + b _0238B05C +_0238A590: + bl FUN_02046B04 + cmp r0, r4 + beq _0238B05C + cmp r0, #4 + bne _0238A5E8 + mov r0, #2 + str r0, [sb, #0x80] + bl FUN_02011EE8 + cmp r0, #0 + moveq r0, #3 + streq r0, [sb, #0xc] + beq _0238B0FC + bl FUN_0201227C + cmp r0, #0 + moveq r0, r7 + movne r0, #0 + tst r0, #0xff + movne r0, #5 + strne r0, [sb, #0xc] + moveq r0, #7 + streq r0, [sb, #0xc] + b _0238B0FC +_0238A5E8: + cmp r0, #5 + moveq r0, r7 + streq r0, [sb, #0x80] + moveq r0, #7 + streq r0, [sb, #0xc] + beq _0238B0FC + cmp r0, #6 + moveq r0, #0 + streq r0, [sb, #0x80] + moveq r0, #7 + streq r0, [sb, #0xc] + movne r0, #0x3f + strne r0, [sb, #0xc] + b _0238B0FC +_0238A620: + add r0, r6, #7 + bl ov20_0238B340 + mov r0, #4 + str r0, [sb, #0xc] +_0238A630: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #0x3f + strne r0, [sb, #0xc] + b _0238B05C +_0238A644: + add r0, r6, #8 + bl ov20_0238B340 + mov r0, #6 + str r0, [sb, #0xc] +_0238A654: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #7 + strne r0, [sb, #0xc] + b _0238B05C +_0238A668: + add r0, r6, #9 + bl ov20_0238B340 + mov r0, #8 + str r0, [sb, #0xc] +_0238A678: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #9 + strne r0, [sb, #0xc] + b _0238B05C +_0238A68C: + mov r0, #0 + str r0, [sb, #0x14] + bl FUN_02046D20 + ldrsb r0, [sb, #0x18] + bl FUN_0202F6DC + mov r0, #0 + strb r0, [sb, #0xa4] + ldr r0, [sb, #0x9c] + cmp r0, #0 + beq _0238A6BC + add r0, sb, #0x9c + bl FUN_020125CC +_0238A6BC: + mov r0, #0xa + str r0, [sb, #0xc] + b _0238B05C +_0238A6C8: + ldr r0, [sb, #0x14] + cmp r0, #0xc + bgt _0238A718 + cmp r0, #0xb + blt _0238A6EC + beq _0238A7A0 + cmp r0, #0xc + beq _0238A7FC + b _0238A83C +_0238A6EC: + cmp r0, #1 + bgt _0238A70C + cmp r0, #0 + blt _0238A83C + beq _0238A73C + cmp r0, #1 + beq _0238A754 + b _0238A83C +_0238A70C: + cmp r0, #0xa + beq _0238A768 + b _0238A83C +_0238A718: + cmp r0, #0x15 + bgt _0238A730 + bge _0238A820 + cmp r0, #0x14 + beq _0238A80C + b _0238A83C +_0238A730: + cmp r0, #0xff + beq _0238A834 + b _0238A83C +_0238A73C: + ldr r0, _0238B160 @ =0x0238CF7C + bl FUN_0230DB58 + ldr r0, [sb, #0x14] + add r0, r0, #1 + str r0, [sb, #0x14] + b _0238A83C +_0238A754: + bl FUN_0230D220 + cmp r0, #0 + moveq r0, #0xa + streq r0, [sb, #0x14] + b _0238A83C +_0238A768: + add r0, sb, #0x84 + mov r1, #0x18 + bl FUN_02003250 + bl FUN_02011F48 + mov r5, r0 + bl FUN_02011F30 + mov r2, r0 + ldr r0, [sb, #0x80] + mov r1, r5 + bl ov20_0238BB60 + ldr r0, [sb, #0x14] + add r0, r0, #1 + str r0, [sb, #0x14] + b _0238A83C +_0238A7A0: + bl ov20_0238BD90 + cmp r0, #0 + beq _0238A83C + bl ov20_0238C1F0 + cmp r0, #0 + bne _0238A7CC + add r0, sb, #0x84 + bl ov20_0238C204 + mov r0, #2 + str r0, [sb, #0xa0] + b _0238A7EC +_0238A7CC: + cmp r0, #3 + movne r0, r7 + strne r0, [sb, #0xa0] + bne _0238A7EC + add r0, sb, #0x84 + bl ov20_0238C204 + mov r0, #3 + str r0, [sb, #0xa0] +_0238A7EC: + ldr r0, [sb, #0x14] + add r0, r0, #1 + str r0, [sb, #0x14] + b _0238A83C +_0238A7FC: + bl ov20_0238C230 + mov r0, #0x14 + str r0, [sb, #0x14] + b _0238A83C +_0238A80C: + bl FUN_0230D71C + ldr r0, [sb, #0x14] + add r0, r0, #1 + str r0, [sb, #0x14] + b _0238A83C +_0238A820: + bl FUN_0230D220 + cmp r0, #0 + moveq r0, #0xff + streq r0, [sb, #0x14] + b _0238A83C +_0238A834: + mov r0, r7 + b _0238A840 +_0238A83C: + mov r0, #0 +_0238A840: + cmp r0, #0 + beq _0238B05C + ldr r0, [sb, #0xa0] + cmp r0, #2 + moveq r0, #0xb + streq r0, [sb, #0xc] + beq _0238B05C + cmp r0, #3 + moveq r0, #0xf + streq r0, [sb, #0xc] + beq _0238B05C + cmp r0, #1 + bne _0238B05C + bl FUN_02011EE8 + cmp r0, #0 + moveq r0, #0x3f + streq r0, [sb, #0xc] + movne r0, #1 + strne r0, [sb, #0xc] + b _0238B05C +_0238A890: + add r0, sb, #0x30 + bl FUN_02023690 + ldr r1, [sb, #0x84] + ldr r2, _0238B164 @ =0x0238CF9C + ldrsh r3, [r1] + mov r0, sb + add r1, r6, #0xa + str r3, [sb, #0x40] + bl ov20_0238B39C + mov r0, #0xc + str r0, [sb, #0xc] +_0238A8BC: + bl FUN_02046B04 + cmp r0, r4 + beq _0238B05C + cmp r0, #8 + bne _0238A8F0 + add r0, sb, #0x84 + bl FUN_02011EC4 + cmp r0, #0 + movne r0, #0x13 + strne r0, [sb, #0xc] + moveq r0, #0x1f + streq r0, [sb, #0xc] + b _0238B05C +_0238A8F0: + mov r0, #0xd + str r0, [sb, #0xc] + b _0238B05C +_0238A8FC: + add r0, r6, #0xb + bl ov20_0238B340 + mov r0, #0xe + str r0, [sb, #0xc] +_0238A90C: + bl FUN_02046C78 + cmp r0, #0 + beq _0238B05C + mov r0, #9 + str r0, [sb, #0xc] + b _0238B0FC +_0238A924: + add r0, sb, #0x30 + bl FUN_02023690 + ldr r1, [sb, #0x84] + mov r0, #0x4600 + ldrsh r1, [r1] + str r1, [sb, #0x40] + bl ov20_0238B340 + mov r0, #0x10 + str r0, [sb, #0xc] +_0238A948: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #9 + strne r0, [sb, #0xc] + b _0238B05C +_0238A95C: + add r0, r6, #0xe + bl ov20_0238B340 + mov r0, #0x12 + str r0, [sb, #0xc] +_0238A96C: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #1 + strne r0, [sb, #0xc] + b _0238B05C +_0238A980: + add r0, r6, #0xd + bl ov20_0238B340 + mov r0, #0x14 + str r0, [sb, #0xc] +_0238A990: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #0x15 + strne r0, [sb, #0xc] + b _0238B05C +_0238A9A4: + mov r0, sb + mov r1, #0 + bl ov20_0238B410 + mov r0, #0x17 + str r0, [sb, #0xc] + b _0238B05C +_0238A9BC: + mov r0, sb + mov r1, r7 + bl ov20_0238B410 + mov r0, #0x17 + str r0, [sb, #0xc] + b _0238B05C +_0238A9D4: + ldr r0, [sb, #0x14] + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _0238AA84 +_0238A9E4: @ jump table + b _0238A9F4 @ case 0 + b _0238AA28 @ case 1 + b _0238AA68 @ case 2 + b _0238AA7C @ case 3 +_0238A9F4: + add r0, sb, #0x84 + bl FUN_02011DF0 + mov r5, r0 + add r0, sb, #0x84 + bl FUN_02011E24 + mov r1, r0 + mov r0, r5 + ldrb r2, [sb, #0xa6] + bl ov20_0238C2E0 + ldr r0, [sb, #0x14] + add r0, r0, #1 + str r0, [sb, #0x14] + b _0238AA84 +_0238AA28: + bl ov20_0238C50C + cmp r0, #0 + beq _0238AA84 + bl ov20_0238CA0C + cmp r0, #0 + movne r0, r7 + strne r0, [sb, #0xa0] + bne _0238AA58 + mov r0, #2 + str r0, [sb, #0xa0] + bl ov20_0238CA20 + str r0, [sb, #0x9c] +_0238AA58: + ldr r0, [sb, #0x14] + add r0, r0, #1 + str r0, [sb, #0x14] + b _0238AA84 +_0238AA68: + bl ov20_0238CA3C + ldr r0, [sb, #0x14] + add r0, r0, #1 + str r0, [sb, #0x14] + b _0238AA84 +_0238AA7C: + mov r0, r7 + b _0238AA88 +_0238AA84: + mov r0, #0 +_0238AA88: + cmp r0, #0 + beq _0238B05C + ldr r0, [sb, #0xa0] + cmp r0, #2 + moveq r0, #0x1b + streq r0, [sb, #0xc] + beq _0238B05C + cmp r0, #1 + moveq r0, #0x11 + streq r0, [sb, #0xc] + b _0238B05C +_0238AAB4: + add r0, sb, #0x30 + bl FUN_02023690 + ldr r1, [sb, #0x84] + add r0, sb, #0x84 + ldrsh r1, [r1] + str r1, [sb, #0x40] + bl FUN_02011E24 + str r0, [sb, #0x58] + ldr r2, _0238B164 @ =0x0238CF9C + mov r0, sb + add r1, r6, #0xf + bl ov20_0238B39C + mov r0, #0x1c + str r0, [sb, #0xc] +_0238AAEC: + bl FUN_02046B04 + cmp r0, r4 + beq _0238B05C + cmp r0, #8 + moveq r0, #0x1f + streq r0, [sb, #0xc] + movne r0, #0x1d + moveq r7, #0 + strne r0, [sb, #0xc] + b _0238B05C + arm_func_end ov20_0238A160 +ov20_0238AB14: + ldr r0, [sb, #0x80] + cmp r0, #2 + bne _0238AB24 + bl FUN_02011F14 +_0238AB24: + mov r0, #1 + strb r0, [sb, #0xb0] + bl FUN_02011F60 + ldr r1, [sb, #0x9c] + add r0, sb, #0x84 + cmp r1, #0 + beq _0238AB48 + bl FUN_02012874 + b _0238AB4C +_0238AB48: + bl FUN_0201271C +_0238AB4C: + add r0, sb, #0x84 + bl FUN_02011DFC + cmp r0, #0 + movne r0, #0x2f + strne r0, [sb, #0xc] + moveq r0, #0x20 + streq r0, [sb, #0xc] + moveq r7, #0 + b _0238B05C +_0238AB70: + add r0, r6, #0x10 + bl ov20_0238B340 + mov r0, #0x1e + str r0, [sb, #0xc] +_0238AB80: + bl FUN_02046C78 + cmp r0, #0 + beq _0238B05C + ldr r0, [sb, #0x9c] + cmp r0, #0 + movne r0, #0x16 + strne r0, [sb, #0xc] + moveq r0, #9 + streq r0, [sb, #0xc] + b _0238B05C +_0238ABA8: + bl FUN_0200EDC0 + cmp r0, #0 + movne r0, #0x27 + strne r0, [sb, #0xc] + moveq r0, #0x21 + streq r0, [sb, #0xc] + b _0238B05C +_0238ABC4: + add r0, r6, #0x19 + bl ov20_0238B340 + mov r0, #0x22 + str r0, [sb, #0xc] +_0238ABD4: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #0x23 + strne r0, [sb, #0xc] + movne r7, #0 + b _0238B05C +_0238ABEC: + ldr r1, [sb, #0x84] + add r0, sp, #0x10 + ldrsh r1, [r1] + mov r2, #0 + bl FUN_0200CF58 + add r0, sp, #0x10 + bl FUN_0200F874 + bl FUN_02046D20 + ldrsb r0, [sb, #0x18] + bl FUN_0202F6DC + mov r0, #0 + strb r0, [sb, #0xa4] + bl FUN_020037A4 + add r0, r0, #0xa + str r0, [sb, #0xac] + mov r0, #0x24 + str r0, [sb, #0xc] + b _0238B05C +_0238AC34: + bl FUN_020037A4 + ldr r1, [sb, #0xac] + cmp r0, r1 + bls _0238B05C + ldr r0, [sb, #0x84] + ldr r1, [sl] + ldrsh r2, [r0] + add r0, r6, #0x1a + str r2, [r1, #0x40] + bl FUN_020258C4 + ldr r2, [sl] + mov r1, r0 + mov r0, #0x1c + add r2, r2, #0x30 + bl FUN_02046C30 + mov r0, #0x25 + str r0, [sb, #0xc] + mov r0, #4 + bl FUN_02017C50 + b _0238B05C +_0238AC84: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #0x26 + strne r0, [sb, #0xc] + b _0238B05C +_0238AC98: + mov r0, #4 + bl FUN_02017C10 + cmp r0, #0 + moveq r0, #0x36 + streq r0, [sb, #0xc] + b _0238B05C +_0238ACB0: + add r0, r6, #0x16 + bl ov20_0238B340 + mov r0, #0x28 + str r0, [sb, #0xc] +_0238ACC0: + bl FUN_02046C78 + cmp r0, #0 + beq _0238B05C + ldr r1, [sb, #0x84] + add r0, sp, #0xa + ldrsh r1, [r1] + mov r2, #0 + bl FUN_0200CF58 + add r0, sp, #0xa + bl FUN_020103AC + mov r0, #0x2b + str r0, [sb, #0xc] + bl FUN_02046D20 + ldrsb r0, [sb, #0x18] + bl FUN_0202F6DC + mov r0, #0 + strb r0, [sb, #0xa4] + bl FUN_020037A4 + add r0, r0, #0xa + str r0, [sb, #0xac] + b _0238B05C +_0238AD14: + add r0, r6, #0x17 + bl ov20_0238B340 + mov r0, #0x2a + str r0, [sb, #0xc] +_0238AD24: + bl FUN_02046C78 + cmp r0, #0 + beq _0238B05C + ldr r1, [sb, #0x84] + add r0, sp, #4 + ldrsh r1, [r1] + mov r2, #0 + bl FUN_0200CF58 + add r0, sp, #4 + bl FUN_020103AC + mov r0, #0x2b + str r0, [sb, #0xc] + bl FUN_02046D20 + ldrsb r0, [sb, #0x18] + bl FUN_0202F6DC + mov r0, #0 + strb r0, [sb, #0xa4] + bl FUN_020037A4 + add r0, r0, #0xa + str r0, [sb, #0xac] + b _0238B05C +_0238AD78: + bl FUN_020037A4 + ldr r1, [sb, #0xac] + cmp r0, r1 + bls _0238B05C + ldr r0, [sb, #0x84] + ldr r1, [sl] + ldrsh r2, [r0] + add r0, r6, #0x18 + str r2, [r1, #0x40] + bl FUN_020258C4 + ldr r2, [sl] + mov r1, r0 + mov r0, #0x1c + add r2, r2, #0x30 + bl FUN_02046C30 + mov r0, #0x2c + str r0, [sb, #0xc] + mov r0, #4 + bl FUN_02017C50 + b _0238B05C +_0238ADC8: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #0x2d + strne r0, [sb, #0xc] + b _0238B05C +_0238ADDC: + mov r0, #4 + bl FUN_02017C10 + cmp r0, #0 + bne _0238B05C + mov r0, #0x2e + str r0, [sb, #0xc] + bl FUN_02046D20 + bl FUN_020037A4 + + arm_func_start ov20_0238ADFC +ov20_0238ADFC: @ 0x0238ADFC + add r0, r0, #0xa + str r0, [sb, #0xac] + b _0238B05C +_0238AE08: + bl FUN_020037A4 + ldr r1, [sb, #0xac] + cmp r0, r1 + movhi r0, #0x36 + strhi r0, [sb, #0xc] + b _0238B05C +_0238AE20: + add r0, sb, #0x30 + bl FUN_02023690 + ldr r1, [sb, #0x84] + add r0, r6, #0x11 + ldrsh r1, [r1] + str r1, [sb, #0x40] + bl ov20_0238B340 + mov r0, #0x30 + str r0, [sb, #0xc] +_0238AE44: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #0x31 + strne r0, [sb, #0xc] + b _0238B05C +_0238AE58: + ldr r2, _0238B168 @ =0x0238CFB4 + mov r0, sb + add r1, r6, #0x12 + bl ov20_0238B39C + mov r0, #0x32 + str r0, [sb, #0xc] +_0238AE70: + bl FUN_02046B04 + cmp r0, r4 + beq _0238B05C + cmp r0, #8 + movne r0, #0x33 + strne r0, [sb, #0xc] + bne _0238B05C + add r0, sb, #0x84 + bl FUN_02011DF0 + strh r0, [sb, #0xa8] + mov r0, #0x3e + str r0, [sb, #0xc] + b _0238B05C +_0238AEA4: + add r0, r6, #0x15 + bl ov20_0238B340 + mov r0, #0x34 + str r0, [sb, #0xc] +_0238AEB4: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #0x35 + strne r0, [sb, #0xc] + movne r7, #0 + b _0238B05C +_0238AECC: + bl FUN_0200EDC0 + cmp r0, #0 + movne r0, #0x29 + strne r0, [sb, #0xc] + moveq r0, #0x23 + streq r0, [sb, #0xc] + b _0238B05C +_0238AEE8: + bl FUN_0200224C + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x64 + bl FUN_0208FEA4 + lsl r5, r1, #0x10 + add r0, sb, #0x84 + bl FUN_02011E18 + cmp r0, r5, lsr #16 + movls r0, #0 + bls _0238AF50 + bl FUN_02011F48 + bl FUN_02011D9C + mov r5, r0 + str r5, [sp] + bl FUN_0200224C + ldr r1, [r5, #4] + bl FUN_0208FEA4 + ldr r2, [r5] + mov r0, #0x18 + mla r0, r1, r0, r2 + bl FUN_02011DF0 + strh r0, [sb, #0xa8] + add r0, sp, #0 + bl FUN_02011DB8 + mov r0, r7 +_0238AF50: + cmp r0, #0 + movne r0, #0x37 + moveq r0, #1 + str r0, [sb, #0xc] + mov r7, #0 + b _0238B05C +_0238AF68: + ldrsh r1, [sb, #0xa8] + add r0, r6, #0x1b + str r1, [sb, #0x40] + bl ov20_0238B340 + mov r0, #0x38 + str r0, [sb, #0xc] +_0238AF80: + bl FUN_02046C78 + cmp r0, #0 + beq _0238B05C + ldr r2, _0238B168 @ =0x0238CFB4 + mov r0, sb + add r1, r6, #0x1c + bl ov20_0238B39C + mov r0, #0x39 + str r0, [sb, #0xc] + mov r7, #0 + b _0238B05C +_0238AFAC: + bl FUN_02046B04 + cmp r0, r4 + beq _0238B05C + cmp r0, #8 + moveq r0, #0x3e + streq r0, [sb, #0xc] + movne r0, #0x3a + strne r0, [sb, #0xc] + b _0238B05C +_0238AFD0: + ldr r2, _0238B168 @ =0x0238CFB4 + mov r0, sb + add r1, r6, #0x1d + bl ov20_0238B39C + mov r0, #0x3b + str r0, [sb, #0xc] +_0238AFE8: + bl FUN_02046B04 + cmp r0, r4 + beq _0238B05C + cmp r0, #8 + moveq r0, #0x3e + streq r0, [sb, #0xc] + movne r0, #0x3c + strne r0, [sb, #0xc] + b _0238B05C +_0238B00C: + add r0, r6, #0x1e + bl ov20_0238B340 + mov r0, #0x3d + str r0, [sb, #0xc] +_0238B01C: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #1 + strne r0, [sb, #0xc] + movne r7, #0 + b _0238B05C +_0238B034: + mov r0, #6 + str r0, [sb, #4] + mov r0, #0 + str r0, [sb, #0xc] + b _0238B0FC +_0238B048: + mov r0, #4 + str r0, [sb, #4] + mov r0, #0 + str r0, [sb, #0xc] + b _0238B0FC +_0238B05C: + ldr r0, [sb, #0xc] + sub r0, r0, #0x3e + cmp r0, #1 + movls r7, #0 + cmp r7, #0 + beq _0238A3D8 + b _0238B0FC +_0238B078: + .byte 0xD8, 0x01, 0xD9, 0xE1, 0x96, 0x91, 0xF2, 0xEB + .byte 0x00, 0x10, 0xA0, 0xE3, 0x09, 0x00, 0xA0, 0xE1, 0xA4, 0x10, 0xC9, 0xE5, 0x1F, 0x01, 0x00, 0xEB + .byte 0x22, 0xEF, 0xF2, 0xEB, 0x01, 0x10, 0xA0, 0xE3, 0x18, 0x00, 0x00, 0xEA, 0xC8, 0x10, 0x9F, 0xE5 + .byte 0x09, 0x00, 0xA0, 0xE1, 0xE9, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x04, 0x00, 0xA0, 0x13 + .byte 0x04, 0x00, 0x89, 0x15, 0x10, 0x00, 0x00, 0xEA, 0xB0, 0x10, 0x9F, 0xE5, 0x09, 0x00, 0xA0, 0xE1 + .byte 0xE2, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0B, 0x00, 0x00, 0x0A, 0x09, 0x00, 0xA0, 0xE3 + .byte 0x04, 0x00, 0x89, 0xE5, 0xD8, 0x01, 0xD9, 0xE1, 0x7F, 0x91, 0xF2, 0xEB, 0x00, 0x00, 0xA0, 0xE3 + .byte 0xA4, 0x00, 0xC9, 0xE5, 0x0D, 0xEF, 0xF2, 0xEB, 0x03, 0x00, 0x00, 0xEA, 0x4B, 0x08, 0xFE, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x00, 0x0A +_0238B0FC: + mov r1, #0 + sub r0, r1, #1 + cmp r0, #1 + bhi _0238B288 + cmp r1, #1 + moveq r0, #7 + streq r0, [r8] + movne r0, #3 + strne r0, [r8] + b _0238B288 +_0238B124: + .byte 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x88, 0xE5, 0x55, 0x00, 0x00, 0xEA + .byte 0x08, 0x00, 0xA0, 0xE1, 0xF5, 0x00, 0x00, 0xEB, 0x05, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x88, 0xE5 + .byte 0x50, 0x00, 0x00, 0xEA, 0x20, 0xD1, 0x38, 0x02, 0xEE, 0x45, 0x00, 0x00, 0xEC, 0xCF, 0x38, 0x02 + .byte 0xED, 0x45, 0x00, 0x00, 0xF4, 0x45, 0x00, 0x00 +_0238B158: .4byte 0x0238CF84 +_0238B15C: .4byte 0x0238CFCC +_0238B160: .4byte 0x0238CF7C +_0238B164: .4byte 0x0238CF9C +_0238B168: .4byte 0x0238CFB4 +_0238B16C: + .byte 0x13, 0x46, 0x00, 0x00 + .byte 0x14, 0x46, 0x00, 0x00, 0x18, 0x00, 0x8D, 0xE2, 0xDC, 0x06, 0xFE, 0xEB, 0x01, 0x0C, 0x10, 0xE3 + .byte 0x04, 0x00, 0x00, 0x0A, 0xA0, 0x00, 0x9D, 0xE5, 0x9C, 0x20, 0x9D, 0xE5, 0x00, 0x10, 0xA0, 0xE3 + .byte 0x32, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x00, 0xEA, 0x32, 0x6F, 0xFD, 0xEB, 0x04, 0x00, 0xA0, 0xE3 + .byte 0x39, 0x00, 0x00, 0xEA, 0x47, 0x6F, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A + .byte 0xCA, 0x06, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x32, 0x00, 0x00, 0x0A, 0x02, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x88, 0xE5, 0x2F, 0x00, 0x00, 0xEA, 0x3E, 0x6F, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x02, 0x00, 0x00, 0x1A, 0xC1, 0x06, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x29, 0x00, 0x00, 0x0A + .byte 0xF8, 0x0A, 0xD8, 0xE1, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0x05, 0x00, 0xA0, 0xE3 + .byte 0x25, 0x6F, 0xFD, 0xEB, 0x12, 0x00, 0x00, 0xEA, 0xA9, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A + .byte 0x01, 0x00, 0xA0, 0xE3, 0x20, 0x6F, 0xFD, 0xEB, 0x0D, 0x00, 0x00, 0xEA, 0xAA, 0x00, 0x50, 0xE3 + .byte 0x02, 0x00, 0x00, 0x1A, 0x02, 0x00, 0xA0, 0xE3, 0x1B, 0x6F, 0xFD, 0xEB, 0x08, 0x00, 0x00, 0xEA + .byte 0xAB, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0x03, 0x00, 0xA0, 0xE3, 0x16, 0x6F, 0xFD, 0xEB + .byte 0x03, 0x00, 0x00, 0xEA, 0xAC, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x1A, 0x04, 0x00, 0xA0, 0xE3 + .byte 0x11, 0x6F, 0xFD, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x88, 0xE5, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x0C, 0x00, 0x88, 0xE5, 0x06, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x88, 0xE5, 0x09, 0x00, 0x00, 0xEA + .byte 0x18, 0x6F, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0x9B, 0x06, 0xFE, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0x04, 0x00, 0xA0, 0xE3, 0x02, 0x6F, 0xFD, 0xEB + .byte 0x06, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x88, 0xE5 +_0238B288: + mov r0, #1 + add sp, sp, #0xb0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + arm_func_end ov20_0238ADFC + + arm_func_start ov20_0238B294 +ov20_0238B294: @ 0x0238B294 + push {r4, lr} + ldr r1, _0238B33C @ =0x0238D120 + mov r4, r0 + ldr r0, [r1] + cmp r0, #0 + bne _0238B2C8 + mov r0, #0xb4 + mov r1, #8 + bl FUN_02001170 + ldr r2, _0238B33C @ =0x0238D120 + mov r1, #0xb4 + str r0, [r2] + bl FUN_02003250 +_0238B2C8: + ldr r0, _0238B33C @ =0x0238D120 + mov r1, #0 + ldr r2, [r0] + mvn r0, #1 + strb r0, [r2, #0x18] + strb r0, [r2, #0x2c] + strb r0, [r2, #0x2d] + strb r0, [r2, #0x2e] + str r1, [r2] + str r1, [r2, #4] + str r1, [r2, #0xc] + str r1, [r2, #0x10] + sub r0, r1, #1 + str r0, [r2, #8] + str r1, [r2, #0x14] + strb r1, [r2, #0xa4] + str r1, [r2, #0x9c] + strh r1, [r2, #0xa8] + strb r1, [r2, #0xb0] + cmp r4, #0 + strb r4, [r2, #0xa5] + movne r0, #1 + strne r0, [r2] + movne r0, #4 + strne r0, [r2, #4] + strne r1, [r2, #0xc] + bl FUN_020017EC + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_0238B33C: .4byte 0x0238D120 + arm_func_end ov20_0238B294 + + arm_func_start ov20_0238B340 +ov20_0238B340: @ 0x0238B340 + push {r4, lr} + ldr r1, _0238B394 @ =0x0238D120 + mov r4, r0 + ldr r0, [r1] + ldrb r1, [r0, #0xa4] + cmp r1, #0 + bne _0238B360 + bl ov20_0238B4A8 +_0238B360: + ldr r1, _0238B394 @ =0x0238D120 + mov r0, r4 + ldr r1, [r1] + mov r2, #0x188 + str r2, [r1, #0x7c] + bl FUN_020258C4 + ldr r2, _0238B394 @ =0x0238D120 + mov r1, r0 + ldr r2, [r2] + ldr r0, _0238B398 @ =0x0000301C + add r2, r2, #0x30 + bl FUN_02046C30 + pop {r4, pc} + .align 2, 0 +_0238B394: .4byte 0x0238D120 +_0238B398: .4byte 0x0000301C + arm_func_end ov20_0238B340 + + arm_func_start ov20_0238B39C +ov20_0238B39C: @ 0x0238B39C + push {r4, r5, lr} + sub sp, sp, #0xa4 + ldrb r3, [r0, #0xa4] + mov r5, r1 + mov r4, r2 + cmp r3, #0 + bne _0238B3BC + bl ov20_0238B4A8 +_0238B3BC: + ldr r1, _0238B40C @ =0x0238D120 + add r0, sp, #0xc + ldr r2, [r1] + mov r3, #0x188 + mov r1, #0x98 + str r3, [r2, #0x7c] + bl FUN_02003250 + mov r0, #0 + str r0, [sp, #0xc] + ldr r1, _0238B40C @ =0x0238D120 + stm sp, {r4, r5} + ldr r1, [r1] + add r3, sp, #0xc + add ip, r1, #0x30 + mov r1, #0x3000 + mov r2, #0x33 + str ip, [sp, #8] + bl FUN_02046A20 + add sp, sp, #0xa4 + pop {r4, r5, pc} + .align 2, 0 +_0238B40C: .4byte 0x0238D120 + arm_func_end ov20_0238B39C + + arm_func_start ov20_0238B410 +ov20_0238B410: @ 0x0238B410 + push {r4, lr} + mov r4, r0 + mov r0, #0 + str r0, [r4, #0x14] + strb r1, [r4, #0xa6] + ldrsb r0, [r4, #0x18] + bl FUN_0202F6DC + mov r0, #0 + strb r0, [r4, #0xa4] + bl FUN_02046D20 + ldr r0, [r4, #0x9c] + cmp r0, #0 + popeq {r4, pc} + add r0, r4, #0x9c + bl FUN_020125CC + pop {r4, pc} + arm_func_end ov20_0238B410 + + arm_func_start ov20_0238B450 +ov20_0238B450: @ 0x0238B450 + push {r4, lr} + mov r4, r0 + ldr r0, [r4, #0x10] + cmp r0, #0 + beq _0238B470 + cmp r0, #1 + beq _0238B488 + b _0238B4A0 +_0238B470: + mov r0, r1 + bl ov20_0238B340 + ldr r0, [r4, #0x10] + add r0, r0, #1 + str r0, [r4, #0x10] + b _0238B4A0 +_0238B488: + bl FUN_02046C78 + cmp r0, #0 + movne r0, #0 + strne r0, [r4, #0x10] + movne r0, #1 + popne {r4, pc} +_0238B4A0: + mov r0, #0 + pop {r4, pc} + arm_func_end ov20_0238B450 + + arm_func_start ov20_0238B4A8 +ov20_0238B4A8: @ 0x0238B4A8 + push {r4, lr} + mov r4, r0 + ldrsb r1, [r4, #0x18] + mvn r0, #1 + cmp r1, r0 + bne _0238B4D4 + mov r0, #0 + mov r1, #3 + mov r2, #1 + bl FUN_0202F5AC + strb r0, [r4, #0x18] +_0238B4D4: + add r0, r4, #0x1c + mov r1, #0x188 + bl FUN_0204D7D4 + add r0, r4, #0x1c + mov r1, #0 + bl FUN_0204D804 + add r0, r4, #0x1c + mov r1, #0 + bl FUN_0204D7F4 + ldrsb r0, [r4, #0x18] + add r1, r4, #0x1c + bl FUN_0202F690 + mov r0, #1 + strb r0, [r4, #0xa4] + pop {r4, pc} + arm_func_end ov20_0238B4A8 + + arm_func_start ov20_0238B510 +ov20_0238B510: @ 0x0238B510 + push {r4, lr} + mov r4, r0 + ldrsb r0, [r4, #0x18] + mvn r1, #1 + cmp r0, r1 + popeq {r4, pc} + bl FUN_0202F650 + mvn r0, #1 + strb r0, [r4, #0x18] + mov r0, #0 + strb r0, [r4, #0xa4] + pop {r4, pc} + arm_func_end ov20_0238B510 + + arm_func_start ov20_0238B540 +ov20_0238B540: @ 0x0238B540 + push {r4, lr} + mov r4, r0 + mov r0, #0x84 + mov r1, #8 + bl FUN_02001170 + ldr r1, _0238B5A8 @ =0x0238D124 + mov r2, #0 + str r0, [r1] + mvn r1, #1 + strb r1, [r0, #0x14] + strb r1, [r0, #0x15] + strb r1, [r0, #0x16] + str r2, [r0] + str r2, [r0, #4] + str r2, [r0, #0xc] + str r2, [r0, #0x10] + sub r1, r2, #1 + str r1, [r0, #8] + strb r2, [r0, #0x68] + add ip, r0, #0x6c + ldm r4!, {r0, r1, r2, r3} + stm ip!, {r0, r1, r2, r3} + ldm r4, {r0, r1} + stm ip, {r0, r1} + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_0238B5A8: .4byte 0x0238D124 + arm_func_end ov20_0238B540 + + arm_func_start ov20_0238B5AC +ov20_0238B5AC: @ 0x0238B5AC + push {r3, lr} + ldr r0, _0238B658 @ =0x0238D124 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + ldrsb r0, [r0, #0x14] + mvn r1, #1 + cmp r0, r1 + beq _0238B5E4 + bl FUN_0202F8FC + ldr r0, _0238B658 @ =0x0238D124 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x14] +_0238B5E4: + ldr r0, _0238B658 @ =0x0238D124 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #0x15] + cmp r0, r1 + beq _0238B610 + bl FUN_0202F8FC + ldr r0, _0238B658 @ =0x0238D124 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x15] +_0238B610: + ldr r0, _0238B658 @ =0x0238D124 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #0x16] + cmp r0, r1 + beq _0238B63C + bl FUN_0202F8FC + ldr r0, _0238B658 @ =0x0238D124 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x16] +_0238B63C: + ldr r0, _0238B658 @ =0x0238D124 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0238B658 @ =0x0238D124 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0238B658: .4byte 0x0238D124 + arm_func_end ov20_0238B5AC + + arm_func_start ov20_0238B65C +ov20_0238B65C: @ 0x0238B65C + push {r4, lr} + ldr r0, _0238B7E4 @ =0x0238D124 + ldr r4, [r0] + cmp r4, #0 + moveq r0, #0 + popeq {r4, pc} + ldr r0, [r4] + cmp r0, #7 + addls pc, pc, r0, lsl #2 + b _0238B7DC +_0238B684: @ jump table + b _0238B6A4 @ case 0 + b _0238B6B0 @ case 1 + b _0238B79C @ case 2 + b _0238B7A8 @ case 3 + b _0238B7B4 @ case 4 + b _0238B7BC @ case 5 + b _0238B7C8 @ case 6 + b _0238B7D4 @ case 7 +_0238B6A4: + mov r0, #1 + str r0, [r4] + b _0238B7DC +_0238B6B0: + ldr r0, [r4, #4] + cmp r0, #7 + addls pc, pc, r0, lsl #2 + b _0238B788 +_0238B6C0: @ jump table + b _0238B788 @ case 0 + b _0238B6E0 @ case 1 + b _0238B6E0 @ case 2 + b _0238B6E0 @ case 3 + b _0238B788 @ case 4 + b _0238B780 @ case 5 + b _0238B780 @ case 6 + b _0238B780 @ case 7 +_0238B6E0: + ldrsb r1, [r4, #0x14] + mvn r0, #1 + cmp r1, r0 + bne _0238B70C + ldr r0, _0238B7E8 @ =0x0238D038 + ldr r1, _0238B7EC @ =ov20_0238B8CC + mov r2, r4 + bl FUN_0202F8DC + ldr r1, _0238B7E4 @ =0x0238D124 + ldr r1, [r1] + strb r0, [r1, #0x14] +_0238B70C: + ldr r1, _0238B7E4 @ =0x0238D124 + mvn r0, #1 + ldr r1, [r1] + ldrsb r1, [r1, #0x15] + cmp r1, r0 + bne _0238B740 + ldr r0, _0238B7F0 @ =0x0238D028 + ldr r1, _0238B7F4 @ =ov20_0238BA40 + mov r2, r4 + bl FUN_0202F8DC + ldr r1, _0238B7E4 @ =0x0238D124 + ldr r1, [r1] + strb r0, [r1, #0x15] +_0238B740: + ldr r1, _0238B7E4 @ =0x0238D124 + mvn r0, #1 + ldr r1, [r1] + ldrsb r1, [r1, #0x16] + cmp r1, r0 + bne _0238B774 + ldr r0, _0238B7F8 @ =0x0238D048 + ldr r1, _0238B7FC @ =ov20_0238BAB4 + mov r2, r4 + bl FUN_0202F8DC + ldr r1, _0238B7E4 @ =0x0238D124 + ldr r1, [r1] + strb r0, [r1, #0x16] +_0238B774: + mov r0, #0 + str r0, [r4, #4] + b _0238B788 +_0238B780: + mov r0, #3 + b _0238B78C +_0238B788: + mov r0, #0 +_0238B78C: + cmp r0, #3 + moveq r0, #2 + streq r0, [r4] + b _0238B7DC +_0238B79C: + mov r0, #3 + str r0, [r4] + b _0238B7DC +_0238B7A8: + mov r0, #4 + str r0, [r4] + b _0238B7DC +_0238B7B4: + mov r0, #4 + pop {r4, pc} +_0238B7BC: + mov r0, #1 + str r0, [r4] + b _0238B7DC +_0238B7C8: + mov r0, #5 + str r0, [r4] + b _0238B7DC +_0238B7D4: + mov r0, #5 + str r0, [r4] +_0238B7DC: + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_0238B7E4: .4byte 0x0238D124 +_0238B7E8: .4byte 0x0238D038 +_0238B7EC: .4byte ov20_0238B8CC +_0238B7F0: .4byte 0x0238D028 +_0238B7F4: .4byte ov20_0238BA40 +_0238B7F8: .4byte 0x0238D048 +_0238B7FC: .4byte ov20_0238BAB4 + arm_func_end ov20_0238B65C + + arm_func_start ov20_0238B800 +ov20_0238B800: @ 0x0238B800 + ldr r0, _0238B820 @ =0x0238D124 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, #4 + moveq r0, #1 + movne r0, #0 + and r0, r0, #0xff + bx lr + .align 2, 0 +_0238B820: .4byte 0x0238D124 + arm_func_end ov20_0238B800 + + arm_func_start ov20_0238B824 +ov20_0238B824: @ 0x0238B824 + push {r3, r4, r5, lr} + movs r4, r1 + mov r5, r0 + beq _0238B888 + ldr r0, _0238B8C8 @ =0x0238D124 + ldr r1, [r0] + ldrb r0, [r1, #0x68] + cmp r0, #0 + beq _0238B87C + ldrsb r0, [r1, #0x14] + mvn r1, #1 + cmp r0, r1 + beq _0238B85C + bl FUN_0202F9B8 +_0238B85C: + ldr r0, _0238B8C8 @ =0x0238D124 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #0x15] + cmp r0, r1 + beq _0238B898 + bl FUN_0202F9B8 + b _0238B898 +_0238B87C: + mov r0, #1 + str r0, [r1, #4] + b _0238B898 +_0238B888: + ldr r0, _0238B8C8 @ =0x0238D124 + mov r1, #5 + ldr r0, [r0] + str r1, [r0, #4] +_0238B898: + ldr r0, _0238B8C8 @ =0x0238D124 + cmp r5, #0 + ldr r1, [r0] + strb r4, [r1, #0x68] + popeq {r3, r4, r5, pc} + ldr r4, [r0] + ldm r5!, {r0, r1, r2, r3} + add r4, r4, #0x6c + stm r4!, {r0, r1, r2, r3} + ldm r5, {r0, r1} + stm r4, {r0, r1} + pop {r3, r4, r5, pc} + .align 2, 0 +_0238B8C8: .4byte 0x0238D124 + arm_func_end ov20_0238B824 + + arm_func_start ov20_0238B8CC +ov20_0238B8CC: @ 0x0238B8CC + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x154 + ldr r1, _0238BA30 @ =0x0238D124 + mov sl, r0 + ldr r1, [r1] + mov r8, #0 + add r7, r1, #0x6c + ldr r4, [r1, #0x6c] + bl FUN_02027B1C + add r0, sp, #4 + bl FUN_02023690 + ldr r0, _0238BA34 @ =0x00004618 + bl FUN_020258C4 + mov r3, r0 + mov r0, sl + mov r1, #8 + mov r2, r8 + bl FUN_02026214 + mov r0, #0x17 + str r0, [sp] + mov r0, sl + mov r1, #8 + mov r2, #0x10 + mov r3, #0xd0 + bl FUN_02025D50 + ldr fp, _0238BA38 @ =0x0000461C + add r6, r4, #0x14 + add r8, r8, #0x18 + mov sb, #0 + sub r4, fp, #2 + sub r5, fp, #1 + b _0238BA14 +_0238B94C: + lsl r0, sb, #2 + ldrsh r1, [r6, r0] + ldr r0, _0238BA3C @ =0x00000578 + add r2, r6, sb, lsl #2 + cmp r1, r0 + mov r3, #0x400 + bne _0238B9B0 + ldrsh r2, [r2, #2] + add r0, r7, sb, lsl #1 + str r2, [sp, #0x2c] + ldrsh r1, [r0, #4] + ldrsh r0, [r0, #0xc] + add r0, r1, r0 + cmp r2, r0 + str r0, [sp, #0x30] + addgt r0, fp, #1 + movle r0, fp + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + add r0, sp, #4 + str r0, [sp] + add r0, sp, #0x54 + mov r1, #0x100 + bl FUN_020235B8 + b _0238B9F8 +_0238B9B0: + str r1, [sp, #0x14] + ldrsh r2, [r2, #2] + add r0, r7, sb, lsl #1 + str r2, [sp, #0x2c] + ldrsh r1, [r0, #4] + ldrsh r0, [r0, #0xc] + add r0, r1, r0 + cmp r2, r0 + str r0, [sp, #0x30] + movgt r0, r5 + movle r0, r4 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + add r0, sp, #4 + str r0, [sp] + add r0, sp, #0x54 + mov r1, #0x100 + bl FUN_020235B8 +_0238B9F8: + mov r0, sl + mov r1, #8 + mov r2, r8 + add r3, sp, #0x54 + bl FUN_02026214 + add r8, r8, #0xc + add sb, sb, #1 +_0238BA14: + ldrsh r0, [r7, #0x14] + cmp sb, r0 + blt _0238B94C + mov r0, sl + bl FUN_02027AF0 + add sp, sp, #0x154 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0238BA30: .4byte 0x0238D124 +_0238BA34: .4byte 0x00004618 +_0238BA38: .4byte 0x0000461C +_0238BA3C: .4byte 0x00000578 + arm_func_end ov20_0238B8CC + + arm_func_start ov20_0238BA40 +ov20_0238BA40: @ 0x0238BA40 + push {r4, r5, lr} + sub sp, sp, #0x154 + ldr r1, _0238BAAC @ =0x0238D124 + mov r5, r0 + ldr r1, [r1] + ldr r4, [r1, #0x6c] + bl FUN_02027B1C + add r0, sp, #4 + bl FUN_02023690 + ldrsh r1, [r4] + ldr r2, _0238BAB0 @ =0x00004617 + add ip, sp, #4 + str r1, [sp, #0x14] + add r0, sp, #0x54 + mov r1, #0x100 + mov r3, #0x400 + str ip, [sp] + bl FUN_020235B8 + add r3, sp, #0x54 + mov r0, r5 + mov r1, #8 + mov r2, #2 + bl FUN_02026214 + mov r0, r5 + bl FUN_02027AF0 + add sp, sp, #0x154 + pop {r4, r5, pc} + .align 2, 0 +_0238BAAC: .4byte 0x0238D124 +_0238BAB0: .4byte 0x00004617 + arm_func_end ov20_0238BA40 + + arm_func_start ov20_0238BAB4 +ov20_0238BAB4: @ 0x0238BAB4 + push {r3, r4, lr} + sub sp, sp, #0x154 + mov r4, r0 + bl FUN_02027B1C + add r0, sp, #4 + bl FUN_02023690 + add ip, sp, #4 + ldr r2, _0238BB58 @ =0x0000461E + add r0, sp, #0x54 + mov r1, #0x100 + mov r3, #0x400 + str ip, [sp] + bl FUN_020235B8 + add r3, sp, #0x54 + mov r0, r4 + mov r1, #8 + mov r2, #0 + bl FUN_02026214 + mov r0, #0x17 + str r0, [sp] + mov r0, r4 + mov r1, #8 + mov r2, #0x10 + mov r3, #0xd0 + bl FUN_02025D50 + add r1, sp, #4 + str r1, [sp] + ldr r2, _0238BB5C @ =0x0000461F + add r0, sp, #0x54 + mov r1, #0x100 + mov r3, #0x400 + bl FUN_020235B8 + mov r0, r4 + mov r1, #8 + mov r2, #0x18 + add r3, sp, #0x54 + bl FUN_02026214 + mov r0, r4 + bl FUN_02027AF0 + add sp, sp, #0x154 + pop {r3, r4, pc} + .align 2, 0 +_0238BB58: .4byte 0x0000461E +_0238BB5C: .4byte 0x0000461F + arm_func_end ov20_0238BAB4 + + arm_func_start ov20_0238BB60 +ov20_0238BB60: @ 0x0238BB60 + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #8 + mov r5, r0 + bl FUN_02011CF4 + mov r4, r0 + mov r0, #0x340 + mov r1, #8 + bl FUN_02001170 + ldr r1, _0238BD80 @ =0x0238D128 + mvn r6, #1 + str r0, [r1] + strb r6, [r0, #4] + ldr r0, [r1] + add r2, r6, #1 + strb r6, [r0, #5] + ldr r0, [r1] + mov r3, #0 + strb r6, [r0, #6] + ldr r0, [r1] + cmp r5, #1 + str r2, [r0, #0xc] + ldr r0, [r1] + str r3, [r0, #8] + ldr r0, [r1] + str r3, [r0, #0x10] + ldr r2, [r1] + ldr r0, [r2, #0x10] + str r0, [r2, #0x14] + ldr r0, [r1] + str r3, [r0] + ldr r0, [r1] + strb r3, [r0, #0x18] + ldr r0, [r1] + str r4, [r0, #0x334] + ldr r2, [r1] + ldr r0, [r2, #0x334] + ldr r0, [r0] + str r0, [r2, #0x338] + ldreq r0, [r1] + ldreq r1, _0238BD84 @ =0x00004622 + strheq r1, [r0, #0x24] + beq _0238BC20 + cmp r5, #2 + ldr r0, [r1] + ldreq r1, _0238BD88 @ =0x00004621 + strheq r1, [r0, #0x24] + ldrne r1, _0238BD8C @ =0x00004620 + strhne r1, [r0, #0x24] +_0238BC20: + ldr r0, _0238BD80 @ =0x0238D128 + mov r2, #0x10 + ldr r1, [r0] + mov r3, #0xd + str r2, [r1, #0x28] + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #0x20] + ldr r1, [r0] + mov r0, #0x14 + str r2, [r1, #0x90] + bl FUN_02029EC8 + ldr r2, _0238BD80 @ =0x0238D128 + mov r1, #8 + ldr r3, [r2] + str r0, [r3, #0x1c] + ldr r0, [r2] + ldr r0, [r0, #0x334] + ldr r0, [r0, #4] + add r0, r0, #1 + add r0, r0, r0, lsl #6 + lsl r0, r0, #2 + bl FUN_02001170 + mov r7, #0 + ldr sl, _0238BD80 @ =0x0238D128 + add r6, sp, #0 + ldr r1, [sl] + mov r5, r7 + str r0, [r1, #0x33c] + mov r4, r7 + mov r8, #0x18 + b _0238BCEC +_0238BCA0: + mul r1, r7, r8 + ldr r2, [r2] + mov r0, r6 + ldr r1, [r2, r1] + mov r2, r5 + ldrsh r1, [r1] + bl FUN_0200CF58 + ldr r0, [sl] + add sb, r7, r7, lsl #6 + ldr r0, [r0, #0x33c] + mov r1, r6 + mov r2, r4 + add r0, r0, sb, lsl #2 + bl FUN_0200D670 + ldr r0, [sl] + ldr r0, [r0, #0x33c] + add r0, r0, sb, lsl #2 + str r7, [r0, #0x100] + add r7, r7, #1 +_0238BCEC: + ldr r1, [sl] + ldr r2, [r1, #0x334] + ldr r0, [r2, #4] + cmp r7, r0 + blt _0238BCA0 + ldr r2, [r1, #0x33c] + mov r3, #0 + add r0, r7, r7, lsl #6 + ldr r1, _0238BD80 @ =0x0238D128 + strb r3, [r2, r0, lsl #2] + ldr r2, [r1] + sub r4, r3, #1 + ldr r3, [r2, #0x33c] + mov r2, #0xa + add r0, r3, r0, lsl #2 + str r4, [r0, #0x100] + ldr r0, [r1] + ldr r1, [r0, #0x334] + add r0, r0, #0xb4 + ldr r1, [r1, #4] + bl FUN_020327CC + ldr r0, _0238BD80 @ =0x0238D128 + mov r3, #0 + ldr r1, [r0] + sub r2, r3, #1 + str r3, [r1, #0x1c] + ldr r3, [r0] + ldr r1, [r3, #0x178] + str r1, [r3, #0x174] + ldr r1, [r0] + str r2, [r1, #0x330] + ldr r0, [r0] + ldr r0, [r0, #0x338] + bl ov20_0238B540 + mov r0, #1 + add sp, sp, #8 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0238BD80: .4byte 0x0238D128 +_0238BD84: .4byte 0x00004622 +_0238BD88: .4byte 0x00004621 +_0238BD8C: .4byte 0x00004620 + arm_func_end ov20_0238BB60 + + arm_func_start ov20_0238BD90 +ov20_0238BD90: @ 0x0238BD90 + push {r4, r5, lr} + sub sp, sp, #0x5c + ldr r1, _0238C1D0 @ =0x0238D128 + ldr r4, [r1] + ldr r0, [r4] + cmp r0, #0xb + addls pc, pc, r0, lsl #2 + b _0238C1C0 +_0238BDB0: @ jump table + b _0238BDE0 @ case 0 + b _0238BE74 @ case 1 + b _0238C1C0 @ case 2 + b _0238BFA8 @ case 3 + b _0238BFDC @ case 4 + b _0238C07C @ case 5 + b _0238C108 @ case 6 + b _0238C1C0 @ case 7 + b _0238C148 @ case 8 + b _0238C150 @ case 9 + b _0238C1B0 @ case 10 + b _0238C1B0 @ case 11 +_0238BDE0: + ldrsb r2, [r4, #4] + mvn r0, #1 + cmp r2, r0 + bne _0238BE24 + ldr r0, [r4, #8] + mov r2, #8 + str r0, [r4, #0x1c] + ldr r4, [r1] + ldr r0, _0238C1D4 @ =0x0238D068 + str r2, [sp] + ldr r3, [r4, #0x33c] + ldr r1, _0238C1D8 @ =0x00441C33 + add r2, r4, #0x1c + bl FUN_0202B1AC + ldr r1, _0238C1D0 @ =0x0238D128 + ldr r1, [r1] + strb r0, [r1, #4] +_0238BE24: + ldr r2, _0238C1D0 @ =0x0238D128 + mov r0, #0x18 + ldr r4, [r2] + mov r1, #1 + ldr r3, [r4, #8] + str r3, [r4, #0xc] + ldr r5, [r2] + ldr r4, [r5, #0x334] + ldr r3, [r5, #8] + ldr r4, [r4] + mla r0, r3, r0, r4 + str r0, [r5, #0x338] + ldr r0, [r2] + ldr r0, [r0, #0x338] + bl ov20_0238B824 + ldr r0, _0238C1D0 @ =0x0238D128 + mov r1, #1 + ldr r0, [r0] + str r1, [r0] + b _0238C1C0 +_0238BE74: + ldrsb r0, [r4, #4] + bl FUN_0202B4F0 + cmp r0, #0 + bne _0238BEDC + ldr r0, _0238C1D0 @ =0x0238D128 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_0202B57C + mvn r1, #0 + cmp r0, r1 + bne _0238BEC0 + ldr r0, _0238C1D0 @ =0x0238D128 + mov r3, #2 + ldr r2, [r0] + mov r1, #8 + str r3, [r2, #0x330] + ldr r0, [r0] + str r1, [r0] + b _0238C1C0 +_0238BEC0: + ldr r1, _0238C1D0 @ =0x0238D128 + mov r2, #3 + ldr r3, [r1] + str r0, [r3, #8] + ldr r0, [r1] + str r2, [r0] + b _0238C1C0 +_0238BEDC: + ldr r0, _0238C1D0 @ =0x0238D128 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_0202B530 + ldr r1, _0238C1D0 @ =0x0238D128 + mov r5, r0 + ldr r0, [r1] + ldrsb r0, [r0, #4] + bl FUN_0202B544 + ldr r1, _0238C1D0 @ =0x0238D128 + mov r4, r0 + ldr r0, [r1] + ldrsb r0, [r0, #4] + bl FUN_0202B568 + ldr r2, _0238C1D0 @ =0x0238D128 + mla r1, r4, r0, r5 + ldr r0, [r2] + str r1, [r0, #8] + ldr r3, [r2] + ldr r1, [r3, #8] + ldr r0, [r3, #0xc] + cmp r0, r1 + beq _0238BF68 + str r1, [r3, #0xc] + ldr ip, [r2] + mov r0, #0x18 + ldr r1, [ip, #0x334] + ldr r3, [ip, #8] + ldr r4, [r1] + mov r1, #1 + mla r0, r3, r0, r4 + str r0, [ip, #0x338] + ldr r0, [r2] + ldr r0, [r0, #0x338] + bl ov20_0238B824 +_0238BF68: + ldr r0, _0238C1D0 @ =0x0238D128 + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_0202B558 + tst r0, #0x100 + beq _0238C1C0 + mov r0, #0 + bl FUN_02017CCC + ldr r0, _0238C1D0 @ =0x0238D128 + ldr r0, [r0] + bl ov20_0238C288 + ldr r0, _0238C1D0 @ =0x0238D128 + mov r1, #5 + ldr r0, [r0] + str r1, [r0] + b _0238C1C0 +_0238BFA8: + ldr r0, _0238C1DC @ =0x0238D078 + mov ip, #3 + ldr r3, _0238C1E0 @ =0x0238D088 + mov r1, #0x13 + mov r2, #0 + str ip, [sp] + bl FUN_0202B0EC + ldr r1, _0238C1D0 @ =0x0238D128 + strb r0, [r4, #5] + ldr r0, [r1] + mov r1, #4 + str r1, [r0] + b _0238C1C0 +_0238BFDC: + ldrsb r0, [r4, #5] + bl FUN_0202B4F0 + cmp r0, #0 + bne _0238C1C0 + ldr r0, _0238C1D0 @ =0x0238D128 + ldr r0, [r0] + ldrsb r0, [r0, #5] + bl FUN_0202B57C + ldr r2, _0238C1D0 @ =0x0238D128 + mvn r1, #0 + ldr r3, [r2] + str r0, [r3, #0x330] + ldr r0, [r2] + ldr r2, [r0, #0x330] + cmp r2, r1 + cmpne r2, #2 + bne _0238C048 + ldrsb r0, [r0, #4] + bl FUN_0202B490 + ldr r0, _0238C1D0 @ =0x0238D128 + ldr r0, [r0] + bl ov20_0238C2B8 + ldr r0, _0238C1D0 @ =0x0238D128 + mov r1, #1 + ldr r0, [r0] + str r1, [r0] + b _0238C1C0 +_0238C048: + cmp r2, #1 + movne r1, #9 + strne r1, [r0] + bne _0238C1C0 + bl ov20_0238C2B8 + ldr r0, _0238C1D0 @ =0x0238D128 + ldr r0, [r0] + bl ov20_0238C288 + ldr r0, _0238C1D0 @ =0x0238D128 + mov r1, #5 + ldr r0, [r0] + str r1, [r0] + b _0238C1C0 +_0238C07C: + mov r0, r4 + bl ov20_0238C2B8 + ldr r0, _0238C1D0 @ =0x0238D128 + ldr r0, [r0] + bl ov20_0238C288 + ldr r1, _0238C1D0 @ =0x0238D128 + add r0, sp, #0xc + ldr r1, [r1] + ldr r1, [r1, #0x338] + ldr r1, [r1] + ldrsh r4, [r1] + bl FUN_02023690 + mov r2, #0 + add r0, r4, #0xd1 + add r0, r0, #0x2900 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + str r4, [sp, #0x1c] + str r2, [sp, #0x30] + str r2, [sp, #0x24] + str r2, [sp, #0x38] + add r3, sp, #0xc + str r3, [sp] + stmib sp, {r1, r3} + ldr r0, _0238C1E4 @ =0x0238D058 + ldr r1, _0238C1E8 @ =0x00001013 + ldr r3, _0238C1EC @ =0x000008E4 + bl FUN_0202E3CC + ldr r1, _0238C1D0 @ =0x0238D128 + mov r2, #6 + ldr r3, [r1] + strb r0, [r3, #6] + ldr r0, [r1] + str r2, [r0] + b _0238C1C0 +_0238C108: + ldrsb r0, [r4, #6] + bl FUN_0202E6E4 + cmp r0, #0 + bne _0238C1C0 + ldr r0, _0238C1D0 @ =0x0238D128 + ldr r0, [r0] + ldrsb r0, [r0, #6] + bl FUN_0202E6C8 + ldr r0, _0238C1D0 @ =0x0238D128 + mvn r3, #1 + ldr r2, [r0] + mov r1, #0 + strb r3, [r2, #6] + ldr r0, [r0] + str r1, [r0] + b _0238C1C0 +_0238C148: + mov r0, #8 + str r0, [r4] +_0238C150: + ldr r0, _0238C1D0 @ =0x0238D128 + ldr r4, [r0] + ldr r0, [r4, #0x330] + cmp r0, #0 + bne _0238C178 + ldr r0, [r4, #0x338] + bl FUN_02011E68 + cmp r0, #0 + moveq r0, #3 + streq r0, [r4, #0x330] +_0238C178: + mov r0, #0 + mov r1, r0 + bl ov20_0238B824 + ldr r0, _0238C1D0 @ =0x0238D128 + ldr r0, [r0] + bl ov20_0238C2B8 + ldr r0, _0238C1D0 @ =0x0238D128 + ldr r0, [r0] + bl ov20_0238C288 + ldr r0, _0238C1D0 @ =0x0238D128 + mov r1, #0xa + ldr r0, [r0] + str r1, [r0] + b _0238C1C0 +_0238C1B0: + bl ov20_0238B800 + cmp r0, #0 + movne r0, #1 + bne _0238C1C8 +_0238C1C0: + bl ov20_0238B65C + mov r0, #0 +_0238C1C8: + add sp, sp, #0x5c + pop {r4, r5, pc} + .align 2, 0 +_0238C1D0: .4byte 0x0238D128 +_0238C1D4: .4byte 0x0238D068 +_0238C1D8: .4byte 0x00441C33 +_0238C1DC: .4byte 0x0238D078 +_0238C1E0: .4byte 0x0238D088 +_0238C1E4: .4byte 0x0238D058 +_0238C1E8: .4byte 0x00001013 +_0238C1EC: .4byte 0x000008E4 + arm_func_end ov20_0238BD90 + + arm_func_start ov20_0238C1F0 +ov20_0238C1F0: @ 0x0238C1F0 + ldr r0, _0238C200 @ =0x0238D128 + ldr r0, [r0] + ldr r0, [r0, #0x330] + bx lr + .align 2, 0 +_0238C200: .4byte 0x0238D128 + arm_func_end ov20_0238C1F0 + + arm_func_start ov20_0238C204 +ov20_0238C204: @ 0x0238C204 + push {r3, lr} + ldr r1, _0238C22C @ =0x0238D128 + mov lr, r0 + ldr r0, [r1] + ldr ip, [r0, #0x338] + ldm ip!, {r0, r1, r2, r3} + stm lr!, {r0, r1, r2, r3} + ldm ip, {r0, r1} + stm lr, {r0, r1} + pop {r3, pc} + .align 2, 0 +_0238C22C: .4byte 0x0238D128 + arm_func_end ov20_0238C204 + + arm_func_start ov20_0238C230 +ov20_0238C230: @ 0x0238C230 + push {r3, lr} + ldr r0, _0238C284 @ =0x0238D128 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl ov20_0238B5AC + ldr r0, _0238C284 @ =0x0238D128 + ldr r0, [r0] + add r0, r0, #0x334 + bl FUN_02011DB8 + ldr r0, _0238C284 @ =0x0238D128 + ldr r0, [r0] + ldr r0, [r0, #0x33c] + bl FUN_02001188 + ldr r0, _0238C284 @ =0x0238D128 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0238C284 @ =0x0238D128 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0238C284: .4byte 0x0238D128 + arm_func_end ov20_0238C230 + + arm_func_start ov20_0238C288 +ov20_0238C288: @ 0x0238C288 + push {r4, lr} + mov r4, r0 + ldrsb r0, [r4, #4] + mvn r1, #1 + cmp r0, r1 + popeq {r4, pc} + bl FUN_0202B4C4 + mvn r0, #1 + strb r0, [r4, #4] + mov r0, #0 + strb r0, [r4, #0x18] + pop {r4, pc} + arm_func_end ov20_0238C288 + + arm_func_start ov20_0238C2B8 +ov20_0238C2B8: @ 0x0238C2B8 + push {r4, lr} + mov r4, r0 + ldrsb r0, [r4, #5] + mvn r1, #1 + cmp r0, r1 + popeq {r4, pc} + bl FUN_0202B4C4 + mvn r0, #1 + strb r0, [r4, #5] + pop {r4, pc} + arm_func_end ov20_0238C2B8 + + arm_func_start ov20_0238C2E0 +ov20_0238C2E0: @ 0x0238C2E0 + push {r4, r5, r6, lr} + mov r6, r1 + mov r5, r2 + bl FUN_0200CE74 + bl FUN_02012294 + mov r4, r0 + mov r0, #0x1cc + mov r1, #8 + bl FUN_02001170 + ldr r2, _0238C4D8 @ =0x0238D12C + mov r1, #8 + str r0, [r2] + str r6, [r0, #0x1bc] + ldr r0, [r4, #4] + bl FUN_02001170 + ldr r2, _0238C4D8 @ =0x0238D12C + mov r1, #0 + ldr r3, [r2] + mov r6, #3 + str r0, [r3, #0x1b0] + mov r3, r1 + b _0238C360 +_0238C338: + ldr r0, [r4] + add r0, r0, r1, lsl #3 + ldrb r0, [r0, #7] + cmp r0, #0 + ldr r0, [r2] + ldrne r0, [r0, #0x1b0] + strbne r6, [r0, r1] + ldreq r0, [r0, #0x1b0] + strbeq r3, [r0, r1] + add r1, r1, #1 +_0238C360: + ldr r0, [r4, #4] + cmp r1, r0 + blt _0238C338 + cmp r5, #0 + mov r3, #0 + beq _0238C3A4 + ldr r2, _0238C4DC @ =0x0238D140 + b _0238C394 +_0238C380: + ldr r0, [r4] + ldrb r1, [r2, r3] + add r0, r0, r3, lsl #3 + add r3, r3, #1 + strb r1, [r0, #6] +_0238C394: + ldr r0, [r4, #4] + cmp r3, r0 + blt _0238C380 + b _0238C3C0 +_0238C3A4: + ldr r1, _0238C4DC @ =0x0238D140 + ldr r0, _0238C4E0 @ =0x0000041A + mov r2, r3 +_0238C3B0: + strb r2, [r1, r3] + add r3, r3, #1 + cmp r3, r0 + blt _0238C3B0 +_0238C3C0: + ldr r2, _0238C4D8 @ =0x0238D12C + mov r1, #0 + ldr r0, [r2] + mvn r3, #1 + strb r3, [r0, #4] + ldr r0, [r2] + sub r6, r1, #1 + strb r3, [r0, #5] + ldr r0, [r2] + ldr lr, _0238C4E4 @ =0x0000032F + strb r3, [r0, #6] + ldr r0, [r2] + mov ip, #0x10 + strb r3, [r0, #7] + ldr r0, [r2] + mov r5, #0xd + strb r3, [r0, #8] + ldr r3, [r2] + mov r0, #0x14 + strb r1, [r3, #0x1c] + ldr r3, [r2] + str r6, [r3, #0x10] + ldr r3, [r2] + str r1, [r3, #0xc] + ldr r3, [r2] + str r1, [r3, #0x14] + ldr r6, [r2] + ldr r3, [r6, #0x14] + str r3, [r6, #0x18] + ldr r3, [r2] + str r1, [r3] + ldr r3, [r2] + strh lr, [r3, #0x28] + ldr r3, [r2] + str ip, [r3, #0x2c] + ldr r3, [r2] + str r5, [r3, #0x24] + ldr r2, [r2] + str r1, [r2, #0x94] + bl FUN_02029EC8 + ldr r1, _0238C4D8 @ =0x0238D12C + ldr r2, [r1] + str r0, [r2, #0x20] + mov r0, #0 + ldr r5, [r1] + mov r1, r0 + ldr r3, [r5, #0x1b0] + mov r2, r0 + str r3, [r5, #0x80] + bl ov20_0238C4E8 + ldr r0, _0238C4D8 @ =0x0238D12C + ldr r1, [r4, #4] + ldr r0, [r0] + mov r2, #0xa + add r0, r0, #0xb8 + bl FUN_020327CC + ldr r1, _0238C4D8 @ =0x0238D12C + mov r2, #0 + ldr r0, [r1] + sub r3, r2, #1 + str r2, [r0, #0x20] + ldr r5, [r1] + mov r0, #1 + ldr r2, [r5, #0x17c] + str r2, [r5, #0x178] + ldr r2, [r1] + str r3, [r2, #0x1b4] + ldr r1, [r1] + str r4, [r1, #0x1b8] + pop {r4, r5, r6, pc} + .align 2, 0 +_0238C4D8: .4byte 0x0238D12C +_0238C4DC: .4byte 0x0238D140 +_0238C4E0: .4byte 0x0000041A +_0238C4E4: .4byte 0x0000032F + arm_func_end ov20_0238C2E0 + + arm_func_start ov20_0238C4E8 +ov20_0238C4E8: @ 0x0238C4E8 + ldr r3, _0238C508 @ =0x0238D12C + ldr ip, [r3] + str r0, [ip, #0x1c0] + ldr r0, [r3] + str r1, [r0, #0x1c4] + ldr r0, [r3] + str r2, [r0, #0x1c8] + bx lr + .align 2, 0 +_0238C508: .4byte 0x0238D12C + arm_func_end ov20_0238C4E8 + + arm_func_start ov20_0238C50C +ov20_0238C50C: @ 0x0238C50C + push {r4, r5, lr} + sub sp, sp, #0x5c + ldr r0, _0238C9C8 @ =0x0238D12C + ldr r4, [r0] + ldr r1, [r4] + cmp r1, #0xc + addls pc, pc, r1, lsl #2 + b _0238C9BC +_0238C52C: @ jump table + b _0238C560 @ case 0 + b _0238C650 @ case 1 + b _0238C9BC @ case 2 + b _0238C798 @ case 3 + b _0238C7B0 @ case 4 + b _0238C7E4 @ case 5 + b _0238C860 @ case 6 + b _0238C928 @ case 7 + b _0238C9BC @ case 8 + b _0238C968 @ case 9 + b _0238C970 @ case 10 + b _0238C9B4 @ case 11 + b _0238C9B4 @ case 12 +_0238C560: + ldrsb r1, [r4, #4] + mvn r0, #1 + cmp r1, r0 + bne _0238C5CC + ldr r1, [r4, #0xc] + ldr r0, _0238C9CC @ =ov20_0238CD20 + str r1, [r4, #0x20] + str r0, [sp] + ldr r0, [r4, #0x188] + mov r2, #8 + str r0, [sp, #4] + ldr r0, _0238C9D0 @ =0x0238D0E8 + ldr r1, _0238C9D4 @ =0x00441E37 + ldr r3, _0238C9D8 @ =ov20_0238CC14 + str r2, [sp, #8] + add r2, r4, #0x20 + bl FUN_0202C3A8 + strb r0, [r4, #4] + ldrsb r0, [r4, #4] + mov r1, #1 + bl FUN_0202C794 + ldrsb r0, [r4, #4] + ldr r1, _0238C9DC @ =ov20_0238CE3C + bl FUN_0202C7BC + ldrsb r0, [r4, #4] + ldr r1, _0238C9E0 @ =ov20_0238CCC0 + bl FUN_0202C7A8 +_0238C5CC: + ldrsb r1, [r4, #7] + mvn r0, #1 + cmp r1, r0 + bne _0238C5F0 + ldr r0, _0238C9E4 @ =0x0238D0B8 + ldr r1, _0238C9E8 @ =ov20_0238CE9C + mov r2, r4 + bl FUN_0202F8DC + strb r0, [r4, #7] +_0238C5F0: + ldrsb r1, [r4, #8] + mvn r0, #1 + cmp r1, r0 + bne _0238C614 + ldr r0, _0238C9EC @ =0x0238D0A8 + ldr r1, _0238C9F0 @ =ov20_0238CF20 + mov r2, r4 + bl FUN_0202F8DC + strb r0, [r4, #8] +_0238C614: + ldr r0, _0238C9C8 @ =0x0238D12C + ldr r2, [r0] + ldr r1, [r2, #0xc] + str r1, [r2, #0x10] + ldr r0, [r0] + ldr r1, [r0, #0x1c0] + cmp r1, #0 + beq _0238C63C + mov r0, #0 + blx r1 +_0238C63C: + ldr r0, _0238C9C8 @ =0x0238D12C + mov r1, #1 + ldr r0, [r0] + str r1, [r0] + b _0238C9BC +_0238C650: + ldrsb r0, [r4, #4] + bl FUN_0202C728 + cmp r0, #0 + bne _0238C724 + ldr r0, _0238C9C8 @ =0x0238D12C + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_0202C75C + mov r4, r0 + mvn r0, #0 + cmp r4, r0 + bne _0238C6B4 + ldr r0, _0238C9C8 @ =0x0238D12C + ldr r0, [r0] + bl ov20_0238CB28 + cmp r0, #0 + ldreq r0, _0238C9C8 @ =0x0238D12C + moveq r1, #2 + ldreq r0, [r0] + streq r1, [r0, #0x1b4] + ldr r0, _0238C9C8 @ =0x0238D12C + mov r1, #9 + ldr r0, [r0] + str r1, [r0] + b _0238C9BC +_0238C6B4: + ldr r0, _0238C9C8 @ =0x0238D12C + ldr r5, [r0] + mov r0, r5 + bl ov20_0238CAE0 + ldr r1, [r5, #0x1bc] + cmp r1, r0 + bne _0238C6E8 + ldr r0, _0238C9C8 @ =0x0238D12C + str r4, [r5, #0xc] + ldr r0, [r0] + mov r1, #3 + str r1, [r0] + b _0238C9BC +_0238C6E8: + ldr r0, [r5, #0x1b8] + ldr r0, [r0] + add r0, r0, r4, lsl #3 + ldrb r0, [r0, #7] + cmp r0, #0 + bne _0238C718 + ldr r0, _0238C9C8 @ =0x0238D12C + str r4, [r5, #0xc] + ldr r0, [r0] + mov r1, #4 + str r1, [r0] + b _0238C9BC +_0238C718: + ldrsb r0, [r5, #4] + bl FUN_0202C620 + b _0238C9BC +_0238C724: + ldr r0, _0238C9C8 @ =0x0238D12C + ldr r0, [r0] + ldrsb r0, [r0, #4] + bl FUN_0202C748 + ldr r1, _0238C9C8 @ =0x0238D12C + ldr r2, [r1] + str r0, [r2, #0xc] + ldr r3, [r1] + ldr r2, [r3, #0xc] + ldr r0, [r3, #0x10] + cmp r0, r2 + strne r2, [r3, #0x10] + ldrne r0, [r1] + ldrne r1, [r0, #0x1c4] + cmpne r1, #0 + beq _0238C76C + mov r0, #0 + blx r1 +_0238C76C: + ldr r0, _0238C9C8 @ =0x0238D12C + ldr r0, [r0] + ldrb r1, [r0, #0x1c] + cmp r1, #0 + beq _0238C9BC + bl ov20_0238CB84 + ldr r0, _0238C9C8 @ =0x0238D12C + mov r1, #6 + ldr r0, [r0] + str r1, [r0] + b _0238C9BC +_0238C798: + mov r1, #0 + str r1, [r4, #0x1b4] + ldr r0, [r0] + mov r1, #0xa + str r1, [r0] + b _0238C9BC +_0238C7B0: + ldr r0, _0238C9F4 @ =0x0238D0D8 + mov r5, #3 + ldr r3, _0238C9F8 @ =0x0238D0F8 + mov r1, #0x13 + mov r2, #0 + str r5, [sp] + bl FUN_0202B0EC + ldr r1, _0238C9C8 @ =0x0238D12C + strb r0, [r4, #5] + ldr r0, [r1] + mov r1, #5 + str r1, [r0] + b _0238C9BC +_0238C7E4: + ldrsb r0, [r4, #5] + bl FUN_0202B4F0 + cmp r0, #0 + bne _0238C9BC + ldr r0, _0238C9C8 @ =0x0238D12C + ldr r0, [r0] + ldrsb r0, [r0, #5] + bl FUN_0202B57C + ldr r1, _0238C9C8 @ =0x0238D12C + ldr r2, [r1] + str r0, [r2, #0x1b4] + ldr r0, [r1] + bl ov20_0238CBEC + ldr r0, _0238C9C8 @ =0x0238D12C + ldr r0, [r0] + ldr r1, [r0, #0x1b4] + cmp r1, #1 + bne _0238C844 + bl ov20_0238CB84 + ldr r0, _0238C9C8 @ =0x0238D12C + mov r1, #6 + ldr r0, [r0] + str r1, [r0] + b _0238C9BC +_0238C844: + ldrsb r0, [r0, #4] + bl FUN_0202C620 + ldr r0, _0238C9C8 @ =0x0238D12C + mov r1, #1 + ldr r0, [r0] + str r1, [r0] + b _0238C9BC +_0238C860: + ldr r1, [r4, #0x1b8] + ldr r0, [r4, #0xc] + ldr r1, [r1] + add r0, r1, r0, lsl #3 + bl FUN_020124D8 + ldr r1, _0238C9C8 @ =0x0238D12C + mov r4, r0 + ldr r0, [r1] + ldr r1, [r0, #0x1b8] + ldr r0, [r0, #0xc] + ldr r1, [r1] + add r0, r1, r0, lsl #3 + bl FUN_02012518 + ldr r1, _0238C9C8 @ =0x0238D12C + mov r5, r0 + ldr r0, [r1] + bl ov20_0238CBEC + ldr r0, _0238C9C8 @ =0x0238D12C + ldr r0, [r0] + bl ov20_0238CB84 + add r0, sp, #0xc + bl FUN_02023690 + ldr r0, _0238C9FC @ =0x0000FFFF + mov r1, #0 + cmp r5, r0 + add r0, r4, #0xd1 + str r1, [sp, #0x30] + addne r1, r5, #0xbc + add r0, r0, #0x2900 + mov r2, #0 + str r4, [sp, #0x1c] + lsl r0, r0, #0x10 + str r1, [sp, #0x24] + add r4, sp, #0xc + str r2, [sp, #0x38] + str r4, [sp] + lsr r0, r0, #0x10 + str r0, [sp, #4] + ldr r0, _0238CA00 @ =0x0238D0C8 + ldr r1, _0238CA04 @ =0x00001013 + ldr r3, _0238CA08 @ =0x000008E4 + str r4, [sp, #8] + bl FUN_0202E3CC + ldr r1, _0238C9C8 @ =0x0238D12C + mov r2, #7 + ldr r3, [r1] + strb r0, [r3, #6] + ldr r0, [r1] + str r2, [r0] + b _0238C9BC +_0238C928: + ldrsb r0, [r4, #6] + bl FUN_0202E6E4 + cmp r0, #0 + bne _0238C9BC + ldr r0, _0238C9C8 @ =0x0238D12C + ldr r0, [r0] + ldrsb r0, [r0, #6] + bl FUN_0202E6C8 + ldr r0, _0238C9C8 @ =0x0238D12C + mvn r3, #1 + ldr r2, [r0] + mov r1, #0 + strb r3, [r2, #6] + ldr r0, [r0] + str r1, [r0] + b _0238C9BC +_0238C968: + mov r0, #9 + str r0, [r4] +_0238C970: + ldr r0, _0238C9C8 @ =0x0238D12C + ldr r0, [r0] + ldr r0, [r0, #0x1c8] + cmp r0, #0 + beq _0238C988 + blx r0 +_0238C988: + ldr r0, _0238C9C8 @ =0x0238D12C + ldr r0, [r0] + bl ov20_0238CBEC + ldr r0, _0238C9C8 @ =0x0238D12C + ldr r0, [r0] + bl ov20_0238CB84 + ldr r0, _0238C9C8 @ =0x0238D12C + mov r1, #0xb + ldr r0, [r0] + str r1, [r0] + b _0238C9BC +_0238C9B4: + mov r0, #1 + b _0238C9C0 +_0238C9BC: + mov r0, #0 +_0238C9C0: + add sp, sp, #0x5c + pop {r4, r5, pc} + .align 2, 0 +_0238C9C8: .4byte 0x0238D12C +_0238C9CC: .4byte ov20_0238CD20 +_0238C9D0: .4byte 0x0238D0E8 +_0238C9D4: .4byte 0x00441E37 +_0238C9D8: .4byte ov20_0238CC14 +_0238C9DC: .4byte ov20_0238CE3C +_0238C9E0: .4byte ov20_0238CCC0 +_0238C9E4: .4byte 0x0238D0B8 +_0238C9E8: .4byte ov20_0238CE9C +_0238C9EC: .4byte 0x0238D0A8 +_0238C9F0: .4byte ov20_0238CF20 +_0238C9F4: .4byte 0x0238D0D8 +_0238C9F8: .4byte 0x0238D0F8 +_0238C9FC: .4byte 0x0000FFFF +_0238CA00: .4byte 0x0238D0C8 +_0238CA04: .4byte 0x00001013 +_0238CA08: .4byte 0x000008E4 + arm_func_end ov20_0238C50C + + arm_func_start ov20_0238CA0C +ov20_0238CA0C: @ 0x0238CA0C + ldr r0, _0238CA1C @ =0x0238D12C + ldr r0, [r0] + ldr r0, [r0, #0x1b4] + bx lr + .align 2, 0 +_0238CA1C: .4byte 0x0238D12C + arm_func_end ov20_0238CA0C + + arm_func_start ov20_0238CA20 +ov20_0238CA20: @ 0x0238CA20 + ldr r0, _0238CA34 @ =0x0238D12C + ldr ip, _0238CA38 @ =FUN_0201255C + ldr r0, [r0] + ldr r0, [r0, #0x1b8] + bx ip + .align 2, 0 +_0238CA34: .4byte 0x0238D12C +_0238CA38: .4byte FUN_0201255C + arm_func_end ov20_0238CA20 + + arm_func_start ov20_0238CA3C +ov20_0238CA3C: @ 0x0238CA3C + push {r3, lr} + ldr r0, _0238CAD4 @ =0x0238D12C + ldr ip, [r0] + cmp ip, #0 + popeq {r3, pc} + ldr r2, [ip, #0x1b8] + mov r3, #0 + ldr r1, _0238CAD8 @ =0x0238D140 + b _0238CA74 +_0238CA60: + ldr r0, [r2] + add r0, r0, r3, lsl #3 + ldrb r0, [r0, #6] + strb r0, [r1, r3] + add r3, r3, #1 +_0238CA74: + ldr r0, [r2, #4] + cmp r3, r0 + blt _0238CA60 + mov r2, #0 + ldr r1, _0238CAD8 @ =0x0238D140 + ldr r0, _0238CADC @ =0x0000041A + b _0238CA98 +_0238CA90: + strb r2, [r1, r3] + add r3, r3, #1 +_0238CA98: + cmp r3, r0 + blt _0238CA90 + add r0, ip, #0x1b8 + bl FUN_020125CC + ldr r0, _0238CAD4 @ =0x0238D12C + ldr r0, [r0] + ldr r0, [r0, #0x1b0] + bl FUN_02001188 + ldr r0, _0238CAD4 @ =0x0238D12C + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0238CAD4 @ =0x0238D12C + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0238CAD4: .4byte 0x0238D12C +_0238CAD8: .4byte 0x0238D140 +_0238CADC: .4byte 0x0000041A + arm_func_end ov20_0238CA3C + + arm_func_start ov20_0238CAE0 +ov20_0238CAE0: @ 0x0238CAE0 + ldr r1, _0238CB24 @ =0x0238D12C + ldr r2, [r0, #0x1b8] + ldr r1, [r1] + mov r0, #0 + mov ip, r0 + ldr r3, [r1, #0x1b8] + ldr r2, [r2, #4] + b _0238CB18 +_0238CB00: + ldr r1, [r3] + add r1, r1, ip, lsl #3 + ldrb r1, [r1, #6] + add ip, ip, #1 + cmp r1, #0 + addne r0, r0, #1 +_0238CB18: + cmp ip, r2 + blt _0238CB00 + bx lr + .align 2, 0 +_0238CB24: .4byte 0x0238D12C + arm_func_end ov20_0238CAE0 + + arm_func_start ov20_0238CB28 +ov20_0238CB28: @ 0x0238CB28 + push {r3, r4, r5, lr} + ldr r1, _0238CB80 @ =0x0238D12C + mov r5, #0 + ldr r1, [r1] + mov r4, r5 + ldr lr, [r1, #0x1b8] + mov r3, r5 + mov r2, #1 + b _0238CB68 +_0238CB4C: + ldr r1, [lr] + add ip, r1, r4, lsl #3 + ldrb r1, [ip, #6] + add r4, r4, #1 + cmp r1, #0 + movne r5, r2 + strbne r3, [ip, #6] +_0238CB68: + ldr r1, [r0, #0x1b8] + ldr r1, [r1, #4] + cmp r4, r1 + blt _0238CB4C + mov r0, r5 + pop {r3, r4, r5, pc} + .align 2, 0 +_0238CB80: .4byte 0x0238D12C + arm_func_end ov20_0238CB28 + + arm_func_start ov20_0238CB84 +ov20_0238CB84: @ 0x0238CB84 + push {r4, lr} + mov r4, r0 + ldrsb r0, [r4, #4] + mvn r1, #1 + cmp r0, r1 + beq _0238CBB0 + bl FUN_0202C70C + mvn r0, #1 + strb r0, [r4, #4] + mov r0, #0 + strb r0, [r4, #0x1c] +_0238CBB0: + ldrsb r0, [r4, #7] + mvn r1, #1 + cmp r0, r1 + beq _0238CBCC + bl FUN_0202F8FC + mvn r0, #1 + strb r0, [r4, #7] +_0238CBCC: + ldrsb r0, [r4, #8] + mvn r1, #1 + cmp r0, r1 + popeq {r4, pc} + bl FUN_0202F8FC + mvn r0, #1 + strb r0, [r4, #8] + pop {r4, pc} + arm_func_end ov20_0238CB84 + + arm_func_start ov20_0238CBEC +ov20_0238CBEC: @ 0x0238CBEC + push {r4, lr} + mov r4, r0 + ldrsb r0, [r4, #5] + mvn r1, #1 + cmp r0, r1 + popeq {r4, pc} + bl FUN_0202B4C4 + mvn r0, #1 + strb r0, [r4, #5] + pop {r4, pc} + arm_func_end ov20_0238CBEC + + arm_func_start ov20_0238CC14 +ov20_0238CC14: @ 0x0238CC14 + push {r4, r5, r6, lr} + sub sp, sp, #8 + ldr r3, _0238CCBC @ =0x0238D12C + mov r5, r0 + ldr r0, [r3] + mov r4, r2 + ldr r0, [r0, #0x1b8] + ldr r2, [r0] + ldr r0, [r2, r1, lsl #3] + add r6, r2, r1, lsl #3 + cmp r0, #0 + bne _0238CC60 + ldrsh r0, [r6, #4] + bl FUN_0200F348 + mov r1, r0 + mov r0, r5 + mov r2, #0 + bl FUN_0200D670 + b _0238CC9C +_0238CC60: + cmp r0, #1 + bne _0238CC94 + ldrsh r0, [r6, #4] + bl FUN_02010044 + mov r1, r0 + add r0, sp, #0 + mov r2, #0 + bl FUN_0200CF58 + add r1, sp, #0 + mov r0, r5 + mov r2, #0 + bl FUN_0200D670 + b _0238CC9C + arm_func_end ov20_0238CC14 +_0238CC94: + mov r0, #0 + b _0238CCB4 +_0238CC9C: + ldrb r0, [r6, #6] + cmp r0, #0 + movne r0, #1 + + arm_func_start ov20_0238CCA8 +ov20_0238CCA8: @ 0x0238CCA8 + moveq r0, #0 + str r0, [r4] + mov r0, r5 +_0238CCB4: + add sp, sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 + arm_func_end ov20_0238CCA8 +_0238CCBC: .4byte 0x0238D12C + + arm_func_start ov20_0238CCC0 +ov20_0238CCC0: @ 0x0238CCC0 + push {r4, lr} + ldr r1, _0238CD1C @ =0x0238D12C + mov r4, r0 + ldr r0, [r1] + bl ov20_0238CAE0 + cmp r0, #0 + arm_func_end ov20_0238CCC0 + + arm_func_start ov20_0238CCD8 +ov20_0238CCD8: @ 0x0238CCD8 + movle r0, #0 + pople {r4, pc} + ldr r0, _0238CD1C @ =0x0238D12C + ldr r0, [r0] + bl ov20_0238CB28 + ldr r0, _0238CD1C @ =0x0238D12C + arm_func_end ov20_0238CCD8 + + arm_func_start ov20_0238CCF0 +ov20_0238CCF0: @ 0x0238CCF0 + ldr r0, [r0] + ldrsb r0, [r0, #7] + bl FUN_0202F9B8 + ldr r0, _0238CD1C @ =0x0238D12C + ldr r0, [r0] + ldrsb r0, [r0, #8] + bl FUN_0202F9B8 + mov r0, r4 + bl FUN_0202C7E4 + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_0238CD1C: .4byte 0x0238D12C + arm_func_end ov20_0238CCF0 + + arm_func_start ov20_0238CD20 +ov20_0238CD20: @ 0x0238CD20 + push {r3, r4, r5, lr} + ldr r1, _0238CE38 @ =0x0238D12C + mov r4, #0 + ldr r2, [r1] + tst r0, #0x400 + strb r4, [r2, #0x1c] + beq _0238CDDC + ldr r0, [r1] + ldrsb r0, [r0, #4] + bl FUN_0202D0EC + ldr r1, _0238CE38 @ =0x0238D12C + ldr r2, [r1] + ldr r1, [r2, #0x1b8] + ldr r1, [r1] + add r5, r1, r0, lsl #3 + ldrb r0, [r5, #7] + cmp r0, #0 + bne _0238CDFC + ldrb r0, [r5, #6] + cmp r0, #0 + bne _0238CD94 + mov r0, r2 + bl ov20_0238CAE0 + ldr r1, _0238CE38 @ =0x0238D12C + ldr r1, [r1] + ldr r1, [r1, #0x1bc] + cmp r0, r1 + movlt r4, #1 + b _0238CD98 +_0238CD94: + mov r4, #1 +_0238CD98: + cmp r4, #0 + beq _0238CDD0 + ldrb r0, [r5, #6] + cmp r0, #0 + moveq r1, #1 + movne r1, #0 + ldr r0, _0238CE38 @ =0x0238D12C + strb r1, [r5, #6] + ldr r0, [r0] + ldrsb r0, [r0, #7] + bl FUN_0202F9B8 + mov r0, #6 + bl FUN_02017CCC + b _0238CDFC +_0238CDD0: + mov r0, #2 + bl FUN_02017CCC + b _0238CDFC +_0238CDDC: + tst r0, #0x100 + beq _0238CDFC + mov r0, r4 + bl FUN_02017CCC + ldr r0, _0238CE38 @ =0x0238D12C + mov r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x1c] +_0238CDFC: + ldr r0, _0238CE38 @ =0x0238D12C + ldr r5, [r0] + mov r0, r5 + bl ov20_0238CAE0 + ldr r1, [r5, #0x1bc] + cmp r1, r0 + ldrsb r0, [r5, #4] + bne _0238CE28 + mov r1, #1 + bl FUN_0202D16C + b _0238CE30 +_0238CE28: + mov r1, #0 + bl FUN_0202D16C +_0238CE30: + mov r0, r4 + pop {r3, r4, r5, pc} + .align 2, 0 +_0238CE38: .4byte 0x0238D12C + arm_func_end ov20_0238CD20 + + arm_func_start ov20_0238CE3C +ov20_0238CE3C: @ 0x0238CE3C + push {r3, lr} + ldr lr, _0238CE90 @ =0x0238D12C + mov ip, r0 + ldr r0, [lr] + ldr r0, [r0, #0x1b8] + ldr r0, [r0] + ldr r0, [r0, r2, lsl #3] + cmp r0, #0 + ldreq r0, _0238CE94 @ =0x0000032F + ldrne r0, _0238CE98 @ =0x00004623 + cmp r3, #0 + strh r0, [r1, #0x1c] + ble _0238CE80 + ldr r0, [r1, #0xbc] + cmp r0, r3 + subge r0, r3, #1 + strge r0, [r1, #0xbc] +_0238CE80: + mov r0, r1 + mov r1, ip + bl FUN_0202A03C + pop {r3, pc} + .align 2, 0 +_0238CE90: .4byte 0x0238D12C +_0238CE94: .4byte 0x0000032F +_0238CE98: .4byte 0x00004623 + arm_func_end ov20_0238CE3C + + arm_func_start ov20_0238CE9C +ov20_0238CE9C: @ 0x0238CE9C + push {r4, r5, lr} + sub sp, sp, #0x154 + mov r5, r0 + mov r0, r1 + bl ov20_0238CAE0 + mov r4, r0 + mov r0, r5 + bl FUN_02027B1C + add r0, sp, #4 + bl FUN_02023690 + ldr r0, _0238CF18 @ =0x0238D12C + str r4, [sp, #0x2c] + ldr r1, [r0] + add r2, sp, #4 + ldr r3, [r1, #0x1bc] + add r0, sp, #0x54 + str r3, [sp, #0x30] + str r2, [sp] + ldr r2, _0238CF1C @ =0x00004627 + mov r1, #0x100 + mov r3, #0x400 + bl FUN_020235B8 + mov r1, #2 + mov r0, r5 + mov r2, r1 + add r3, sp, #0x54 + bl FUN_02026214 + mov r0, r5 + bl FUN_02027AF0 + add sp, sp, #0x154 + pop {r4, r5, pc} + .align 2, 0 +_0238CF18: .4byte 0x0238D12C +_0238CF1C: .4byte 0x00004627 + arm_func_end ov20_0238CE9C + + arm_func_start ov20_0238CF20 +ov20_0238CF20: @ 0x0238CF20 + push {r3, r4, lr} + sub sp, sp, #0x154 + mov r4, r0 + bl FUN_02027B1C + add r0, sp, #4 + bl FUN_02023690 + add ip, sp, #4 + ldr r2, _0238CF78 @ =0x00004628 + add r0, sp, #0x54 + mov r1, #0x100 + mov r3, #0x400 + str ip, [sp] + bl FUN_020235B8 + mov r1, #2 + mov r0, r4 + mov r2, r1 + add r3, sp, #0x54 + bl FUN_02026214 + mov r0, r4 + bl FUN_02027AF0 + add sp, sp, #0x154 + pop {r3, r4, pc} + .align 2, 0 +_0238CF78: .4byte 0x00004628 + arm_func_end ov20_0238CF20 + @ 0x0238CF7C diff --git a/asm/overlay_21.s b/asm/overlay_21.s index 96cbb199..52576977 100644 --- a/asm/overlay_21.s +++ b/asm/overlay_21.s @@ -3,3 +3,1971 @@ .include "global.inc" .text + + arm_func_start ov21_0238A140 +ov21_0238A140: @ 0x0238A140 + push {r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0x180 + ldr r4, _0238B08C @ =0x0238CF40 + ldr r1, [r4] + str r0, [r1] + ldr r0, [r4] + ldr r1, [r0] + cmp r1, #0x42 + addls pc, pc, r1, lsl #2 + b _0238B7B8 +_0238A168: @ jump table + b _0238A274 @ case 0 + b _0238A378 @ case 1 + b _0238A3E0 @ case 2 + b _0238A594 @ case 3 + b _0238A844 @ case 4 + b _0238A668 @ case 5 + b _0238A6DC @ case 6 + b _0238A750 @ case 7 + b _0238A7D0 @ case 8 + b _0238A854 @ case 9 + b _0238A8D4 @ case 10 + b _0238A950 @ case 11 + b _0238A98C @ case 12 + b _0238A9A8 @ case 13 + b _0238A9E8 @ case 14 + b _0238AA1C @ case 15 + b _0238AAC0 @ case 16 + b _0238AF50 @ case 17 + b _0238AC38 @ case 18 + b _0238AC7C @ case 19 + b _0238ACC0 @ case 20 + b _0238AEF4 @ case 21 + b _0238AE94 @ case 22 + b _0238AE08 @ case 23 + b _0238AD64 @ case 24 + b _0238AD04 @ case 25 + b _0238B7B8 @ case 26 + b _0238A32C @ case 27 + b _0238B7B8 @ case 28 + b _0238B7B8 @ case 29 + b _0238ABDC @ case 30 + b _0238B7B8 @ case 31 + b _0238A4EC @ case 32 + b _0238A44C @ case 33 + b _0238A478 @ case 34 + b _0238A520 @ case 35 + b _0238B204 @ case 36 + b _0238B228 @ case 37 + b _0238B260 @ case 38 + b _0238B7B8 @ case 39 + b _0238B28C @ case 40 + b _0238B7B8 @ case 41 + b _0238B2BC @ case 42 + b _0238B7B8 @ case 43 + b _0238B2EC @ case 44 + b _0238B7B8 @ case 45 + b _0238B318 @ case 46 + b _0238B7B8 @ case 47 + b _0238B344 @ case 48 + b _0238B3B8 @ case 49 + b _0238B7B8 @ case 50 + b _0238B408 @ case 51 + b _0238B434 @ case 52 + b _0238B4CC @ case 53 + b _0238B538 @ case 54 + b _0238B5A4 @ case 55 + b _0238A5FC @ case 56 + b _0238B5D0 @ case 57 + b _0238B640 @ case 58 + b _0238B684 @ case 59 + b _0238B7B8 @ case 60 + b _0238B7B8 @ case 61 + b _0238B6F8 @ case 62 + b _0238B724 @ case 63 + b _0238B68C @ case 64 + b _0238B7B8 @ case 65 + b _0238B7B8 @ case 66 +_0238A274: + ldr r0, _0238B090 @ =0x0238CBB8 + bl FUN_0200C1FC + mov r0, r4 + ldr r1, [r0] + mov r2, #0x96 + mov r0, #0 + str r2, [r1, #0x54] + bl FUN_0202F0B0 + mov r3, r4 + ldr r4, [r3] + ldr r1, _0238B094 @ =0x00003008 + strb r0, [r4, #0x80] + ldr r3, [r3] + ldr r2, _0238B098 @ =0x000003B2 + ldrsb r0, [r3, #0x80] + add r3, r3, #0x30 + bl FUN_0202F1B4 + mov r0, #0 + mov r1, #3 + mov r2, #1 + bl FUN_0202F5AC + ldr r2, _0238B08C @ =0x0238CF40 + ldr r1, _0238B09C @ =0x000001EF + ldr r3, [r2] + strb r0, [r3, #0x81] + ldr r0, [r2] + add r0, r0, #0xc8 + bl FUN_0204D7D4 + ldr r0, _0238B08C @ =0x0238CF40 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0xc8 + bl FUN_0204D804 + ldr r0, _0238B08C @ =0x0238CF40 + ldr r1, [r0] + add r0, r1, #0xc8 + ldr r1, [r1, #0x28] + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + ldr r0, _0238B08C @ =0x0238CF40 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + b _0238B7B8 +_0238A32C: + ldr r0, _0238B0A0 @ =0x0238CBD4 + bl FUN_0200C1FC + ldr r0, _0238B0A4 @ =0x0238CA28 + ldr r1, _0238B0A8 @ =ov21_0238C9A4 + bl FUN_0202F8C4 + mov r2, r4 + ldr r2, [r2] + ldr r1, _0238B0AC @ =0x00300013 + strb r0, [r2, #0x84] + mov r4, #4 + ldr r3, _0238B0B0 @ =0x0238CAA8 + ldr r0, _0238B0B4 @ =0x0238CB68 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238B08C @ =0x0238CF40 + ldr r1, [r1] + strb r0, [r1, #0x83] + b _0238B7B8 +_0238A378: + ldr r0, _0238B0B8 @ =0x0238CBF8 + bl FUN_0200C1FC + bl ov21_0238C920 + mov r0, r4 + ldr r1, [r0] + mov r2, #0 + str r2, [r1, #0x28] + ldr r0, [r0] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + mov r0, r4 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + mov r0, r4 + ldr r3, [r0] + ldr r1, _0238B094 @ =0x00003008 + ldrsb r0, [r3, #0x80] + ldr r2, _0238B0BC @ =0x000003B3 + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238A3E0: + bl ov21_0238C920 + mov r0, r4 + ldr r1, [r0] + mov r3, #0x21 + str r3, [r1, #4] + ldr r1, [r0] + mov r2, #0 + str r2, [r1, #0x28] + ldr r0, [r0] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + mov r0, r4 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + mov r0, r4 + ldr r3, [r0] + ldr r1, _0238B094 @ =0x00003008 + ldrsb r0, [r3, #0x80] + mov r2, #0x3d0 + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238A44C: + ldr r0, _0238B0C0 @ =0x0238CB88 + mov r4, #3 + ldr r1, _0238B0AC @ =0x00300013 + ldr r3, _0238B0C4 @ =0x0238CA68 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + arm_func_end ov21_0238A140 + + arm_func_start ov21_0238A468 +ov21_0238A468: @ 0x0238A468 + ldr r1, _0238B08C @ =0x0238CF40 + ldr r1, [r1] + strb r0, [r1, #0x83] + b _0238B7B8 +_0238A478: + ldr r0, _0238B0C8 @ =0x0238CC18 + bl FUN_0200C1FC + bl ov21_0238C920 + mov r0, r4 + ldr r1, [r0] + mov r3, #0x20 + str r3, [r1, #4] + ldr r1, [r0] + mov r2, #0 + str r2, [r1, #0x28] + ldr r0, [r0] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + mov r0, r4 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + mov r0, r4 + ldr r3, [r0] + ldr r1, _0238B0CC @ =0x00003018 + ldrsb r0, [r3, #0x80] + ldr r2, _0238B0D0 @ =0x000003C5 + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238A4EC: + ldr r0, _0238B0C8 @ =0x0238CC18 + bl FUN_0200C1FC + mov r0, r4 + ldr r2, [r0] + mov r4, #2 + str r4, [r2, #4] + ldr r3, [r0] + ldr r1, _0238B0CC @ =0x00003018 + ldrsb r0, [r3, #0x80] + add r2, r4, #0x3c4 + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238A520: + ldr r0, _0238B0C8 @ =0x0238CC18 + bl FUN_0200C1FC + bl ov21_0238C920 + mov r0, r4 + ldr r1, [r0] + mov r3, #2 + str r3, [r1, #4] + ldr r1, [r0] + mov r2, #0 + str r2, [r1, #0x28] + ldr r0, [r0] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + mov r0, r4 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + mov r0, r4 + ldr r3, [r0] + ldr r1, _0238B0CC @ =0x00003018 + ldrsb r0, [r3, #0x80] + ldr r2, _0238B0D4 @ =0x000003C7 + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238A594: + ldr r0, _0238B0D8 @ =0x0238CC3C + bl FUN_0200C1FC + bl ov21_0238C920 + mov r0, r4 + ldr r1, [r0] + mov r2, #4 + str r2, [r1, #4] + ldr r0, [r0] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + mov r0, r4 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + mov r0, r4 + ldr r3, [r0] + ldr r1, _0238B0CC @ =0x00003018 + ldrsb r0, [r3, #0x80] + mov r2, #0x3c8 + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238A5FC: + bl ov21_0238C920 + mov r0, r4 + ldr r1, [r0] + mov r3, #1 + str r3, [r1, #4] + ldr r1, [r0] + mov r2, #0 + str r2, [r1, #0x28] + ldr r0, [r0] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + mov r0, r4 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + mov r0, r4 + ldr r3, [r0] + ldr r1, _0238B0CC @ =0x00003018 + ldrsb r0, [r3, #0x80] + ldr r2, _0238B0DC @ =0x000003B7 + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238A668: + ldr r0, _0238B0E0 @ =0x0238CC5C + bl FUN_0200C1FC + bl ov21_0238C920 + mov r0, r4 + ldr r1, [r0] + mov r3, #1 + str r3, [r1, #4] + ldr r1, [r0] + mov r2, #0 + str r2, [r1, #0x28] + ldr r0, [r0] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + mov r0, r4 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + mov r0, r4 + ldr r3, [r0] + ldr r1, _0238B0CC @ =0x00003018 + ldrsb r0, [r3, #0x80] + ldr r2, _0238B0E4 @ =0x000003B6 + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238A6DC: + ldr r0, _0238B0E8 @ =0x0238CC7C + bl FUN_0200C1FC + bl ov21_0238C920 + mov r0, r4 + ldr r1, [r0] + mov r3, #1 + str r3, [r1, #4] + ldr r1, [r0] + mov r2, #0 + str r2, [r1, #0x28] + ldr r0, [r0] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + mov r0, r4 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + mov r0, r4 + ldr r3, [r0] + ldr r1, _0238B0CC @ =0x00003018 + ldrsb r0, [r3, #0x80] + mov r2, #0x3b4 + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238A750: + ldr r0, _0238B0EC @ =0x0238CC9C + bl FUN_0200C1FC + bl ov21_0238C920 + mov r0, r4 + ldr r1, [r0] + mov r2, #0x96 + str r2, [r1, #0x54] + ldr r1, [r0] + mov r3, #1 + str r3, [r1, #4] + ldr r1, [r0] + mov r2, #0 + str r2, [r1, #0x28] + ldr r0, [r0] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + mov r0, r4 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + mov r0, r4 + ldr r3, [r0] + ldr r1, _0238B0CC @ =0x00003018 + ldrsb r0, [r3, #0x80] + ldr r2, _0238B0F0 @ =0x000003B5 + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238A7D0: + ldr r0, _0238B0F4 @ =0x0238CCC0 + bl FUN_0200C1FC + bl ov21_0238C920 + mov r0, r4 + ldr r1, [r0] + mov r3, #0xd + str r3, [r1, #4] + ldr r1, [r0] + mov r2, #0 + str r2, [r1, #0x28] + ldr r0, [r0] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + mov r0, r4 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + mov r0, r4 + ldr r3, [r0] + ldr r1, _0238B0CC @ =0x00003018 + ldrsb r0, [r3, #0x80] + mov r2, #0x3c4 + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238A844: + ldr r0, _0238B0F8 @ =0x0238CCE4 + bl FUN_0200C1FC + bl FUN_022DC504 + b _0238B7B8 +_0238A854: + ldr r0, _0238B0FC @ =0x0238CD00 + bl FUN_0200C1FC + bl ov21_0238C920 + mov r0, r4 + ldr r1, [r0] + mov r2, #0xb + str r2, [r1, #4] + ldr r1, [r0] + mov r3, #0x1a + str r3, [r1] + ldr r1, [r0] + mov r2, #0 + str r2, [r1, #0x28] + ldr r0, [r0] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + mov r0, r4 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + mov r0, r4 + ldr r3, [r0] + ldr r1, _0238B0CC @ =0x00003018 + ldrsb r0, [r3, #0x80] + mov r2, #0x3b8 + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238A8D4: + ldr r0, _0238B100 @ =0x0238CD24 + bl FUN_0200C1FC + mov r0, r4 + ldr r1, [r0] + mov r2, #0xd + str r2, [r1, #4] + ldr r1, [r0] + mov r3, #0x1a + str r3, [r1] + ldr r1, [r0] + mov r2, #0 + str r2, [r1, #0x28] + ldr r0, [r0] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + mov r0, r4 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + mov r0, r4 + ldr r3, [r0] + ldr r1, _0238B094 @ =0x00003008 + ldrsb r0, [r3, #0x80] + ldr r2, _0238B104 @ =0x000003C2 + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238A950: + ldr r0, _0238B108 @ =0x0238CD44 + bl FUN_0200C1FC + mov r0, r4 + ldr r0, [r0] + ldrsb r0, [r0, #0x80] + bl FUN_0202F3A4 + mov r0, r4 + ldr r0, [r0] + ldrsb r0, [r0, #0x80] + bl FUN_0202F2C4 + mov r0, r4 + ldr r0, [r0] + ldrsb r0, [r0, #0x81] + bl FUN_0202F6DC + b _0238B7B8 +_0238A98C: + ldr r0, _0238B10C @ =0x0238CD68 + bl FUN_0200C1FC + bl FUN_0230C910 + mov r0, #0 + mov r1, r0 + bl FUN_0230B20C + b _0238B7B8 +_0238A9A8: + ldr r0, _0238B110 @ =0x0238CD8C + bl FUN_0200C1FC + mov r0, r4 + ldr r0, [r0] + ldrsb r0, [r0, #0x80] + bl FUN_0202F3A4 + mov r0, r4 + ldr r0, [r0] + ldrsb r0, [r0, #0x80] + bl FUN_0202F2C4 + mov r0, r4 + ldr r0, [r0] + ldrsb r0, [r0, #0x81] + bl FUN_0202F6DC + bl FUN_0230BB98 + b _0238B7B8 +_0238A9E8: + ldr r0, _0238B114 @ =0x0238CDB4 + bl FUN_0200C1FC + mov r4, #3 + ldr r0, _0238B118 @ =0x0238CB78 + ldr r1, _0238B11C @ =0x00400013 + ldr r3, _0238B120 @ =0x0238CA88 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238B08C @ =0x0238CF40 + ldr r1, [r1] + strb r0, [r1, #0x83] + b _0238B7B8 +_0238AA1C: + ldr r0, _0238B124 @ =0x0238CDDC + bl FUN_0200C1FC + mov r0, r4 + ldr r5, [r0] + ldr r2, _0238B128 @ =0x0238CE00 + ldrsh r4, [r5, #0xe] + ldr r3, _0238B12C @ =0x0000C402 + mov r1, #0x400 + str r4, [r5, #0x40] + ldr r5, [r0] + ldrh r4, [r5, #0x10] + str r4, [r5, #0x54] + ldr r0, [r0] + add r4, r0, #0x30 + add r0, r0, #0x86 + str r4, [sp] + bl FUN_020223F0 + add r0, sp, #0x18 + bl FUN_02023690 + ldr r0, _0238B08C @ =0x0238CF40 + add r1, sp, #0x18 + ldr r3, [r0] + ldr r0, _0238B130 @ =0x0238CB98 + add r2, r3, #0x86 + str r2, [sp, #0x50] + str r1, [sp] + ldrsh r2, [r3, #0xe] + add r3, r3, #0x30 + ldr r1, _0238B134 @ =0x00001013 + add r2, r2, #0xd1 + add r2, r2, #0x2900 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + stmib sp, {r2, r3} + ldr r3, _0238B138 @ =0x0000033E + mov r2, #0 + bl FUN_0202E3CC + ldr r1, _0238B08C @ =0x0238CF40 + ldr r1, [r1] + strb r0, [r1, #0x85] + b _0238B7B8 +_0238AAC0: + ldr r0, _0238B13C @ =0x0238CE0C + bl FUN_0200C1FC + mov r0, r4 + ldr r1, [r0] + mov r3, #0x96 + str r3, [r1, #0x54] + ldr r1, [r0] + mov r2, #0 + str r2, [r1, #0x28] + ldr r0, [r0] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + mov r0, r4 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + mov r0, r4 + ldr r1, [r0] + mov r3, #0x1c + str r3, [r1] + ldr r1, [r0] + mov r2, #0x1e + str r2, [r1, #4] + ldr r0, [r0] + ldrsh r0, [r0, #0xe] + bl ov21_0238B7E0 + mov r1, r4 + ldr r4, [r1] + add r3, r0, #1 + add r2, r0, #2 + str r0, [r4, #0x44] + ldr r0, [r1] + str r3, [r0, #0x48] + ldr r0, [r1] + str r2, [r0, #0x4c] + ldr r2, [r1] + ldrh r0, [r2, #0xd8] + str r0, [r2, #0x58] + ldr r3, [r1] + ldrh r0, [r3, #0xd8] + cmp r0, #0 + beq _0238AB90 + ldrsb r0, [r3, #0x80] + ldr r1, _0238B094 @ =0x00003008 + ldr r2, _0238B140 @ =0x000003BD + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238AB90: + ldrsh r0, [r3, #0xe] + bl FUN_0230C068 + cmp r0, #3 + ldr r1, _0238B094 @ =0x00003008 + bne _0238ABC0 + ldr r0, _0238B08C @ =0x0238CF40 + mov r2, #0x3bc + ldr r3, [r0] + ldrsb r0, [r3, #0x80] + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238ABC0: + ldr r0, _0238B08C @ =0x0238CF40 + ldr r2, _0238B144 @ =0x000003BB + ldr r3, [r0] + ldrsb r0, [r3, #0x80] + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238ABDC: + ldr r0, _0238B148 @ =0x0238CE34 + bl FUN_0200C1FC + mov r1, r4 + ldr r2, [r1] + mov r3, #0x96 + ldr r0, _0238B0A4 @ =0x0238CA28 + ldr r1, _0238B0A8 @ =ov21_0238C9A4 + str r3, [r2, #0x54] + bl FUN_0202F8C4 + mov r2, r4 + ldr r2, [r2] + ldr r1, _0238B0AC @ =0x00300013 + strb r0, [r2, #0x84] + mov r4, #2 + ldr r3, _0238B14C @ =0x0238CA38 + ldr r0, _0238B0C0 @ =0x0238CB88 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238B08C @ =0x0238CF40 + ldr r1, [r1] + strb r0, [r1, #0x83] + b _0238B7B8 +_0238AC38: + ldr r0, _0238B150 @ =0x0238CE4C + bl FUN_0200C1FC + mov r0, r4 + ldr r1, [r0] + mov r3, #6 + str r3, [r1, #0x2c] + ldr r1, [r0] + mov r2, #0x15 + str r2, [r1, #4] + ldr r0, [r0] + ldrsb r0, [r0, #0x80] + bl FUN_0202F2C4 + mov r0, r4 + ldr r0, [r0] + ldrsb r0, [r0, #0x81] + bl FUN_0202F6DC + b _0238B7B8 +_0238AC7C: + ldr r0, _0238B154 @ =0x0238CE78 + bl FUN_0200C1FC + mov r0, r4 + ldr r1, [r0] + mov r3, #7 + str r3, [r1, #0x2c] + ldr r1, [r0] + mov r2, #0x16 + str r2, [r1, #4] + ldr r0, [r0] + ldrsb r0, [r0, #0x80] + bl FUN_0202F2C4 + mov r0, r4 + ldr r0, [r0] + ldrsb r0, [r0, #0x81] + bl FUN_0202F6DC + b _0238B7B8 +_0238ACC0: + ldr r0, _0238B158 @ =0x0238CEA4 + bl FUN_0200C1FC + mov r0, r4 + ldr r1, [r0] + mov r3, #8 + str r3, [r1, #0x2c] + ldr r1, [r0] + mov r2, #0x17 + str r2, [r1, #4] + ldr r0, [r0] + ldrsb r0, [r0, #0x80] + bl FUN_0202F2C4 + mov r0, r4 + ldr r0, [r0] + ldrsb r0, [r0, #0x81] + bl FUN_0202F6DC + b _0238B7B8 +_0238AD04: + mov r1, #1 + str r1, [r0, #4] + ldr r2, [r4] + ldr r1, _0238B0CC @ =0x00003018 + ldrsb r0, [r2, #0x80] + add r3, r2, #0x30 + mov r2, #0x3c4 + bl FUN_0202F1B4 + mov r0, r4 + ldr r1, [r0] + mov r2, #0 + str r2, [r1, #0x28] + ldr r0, [r0] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + mov r0, r4 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + b _0238B7B8 +_0238AD64: + ldrsh r0, [r0, #0xe] + bl FUN_0230C068 + cmp r0, #3 + mov r0, r4 + bne _0238ADB0 + ldr r1, [r0] + mov r3, #9 + str r3, [r1, #0x58] + rsb r2, r3, #0x3cc + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0x80] + add r3, r3, #0x30 + bl FUN_0202F1B4 + mov r0, r4 + ldr r0, [r0] + ldrsb r0, [r0, #0x81] + bl FUN_0202F6DC + b _0238ADE4 +_0238ADB0: + ldr r1, [r0] + mov r3, #4 + str r3, [r1, #0x58] + ldr r3, [r0] + ldr r2, _0238B15C @ =0x000003C1 + ldrsb r0, [r3, #0x80] + mov r1, #0x18 + add r3, r3, #0x30 + bl FUN_0202F1B4 + mov r0, r4 + ldr r0, [r0] + ldrsb r0, [r0, #0x81] + bl FUN_0202F6DC +_0238ADE4: + ldr r0, _0238B08C @ =0x0238CF40 + ldr r1, [r0] + ldrb r0, [r1, #0xc] + cmp r0, #0 + movne r0, #0x19 + strne r0, [r1, #4] + arm_func_end ov21_0238A468 + + arm_func_start ov21_0238ADFC +ov21_0238ADFC: @ 0x0238ADFC + moveq r0, #1 + streq r0, [r1, #4] + b _0238B7B8 +_0238AE08: + mov r1, #0x18 + str r1, [r0, #4] + ldr r0, [r4] + ldrsh r0, [r0, #0xe] + bl FUN_0230C068 + cmp r0, #3 + mov r0, r4 + ldr r1, _0238B0CC @ =0x00003018 + ldr r3, [r0] + bne _0238AE44 + ldrsb r0, [r3, #0x80] + ldr r2, _0238B104 @ =0x000003C2 + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238AE54 +_0238AE44: + ldrsb r0, [r3, #0x80] + mov r2, #0x3c0 + add r3, r3, #0x30 + bl FUN_0202F1B4 +_0238AE54: + ldr r0, _0238B08C @ =0x0238CF40 + mov r2, #0 + ldr r1, [r0] + str r2, [r1, #0x28] + ldr r0, [r0] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + ldr r0, _0238B08C @ =0x0238CF40 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + b _0238B7B8 +_0238AE94: + mov r1, #0x14 + str r1, [r0, #4] + ldr r3, [r4] + ldr r1, _0238B0CC @ =0x00003018 + ldrsb r0, [r3, #0x80] + ldr r2, _0238B160 @ =0x000003BA + add r3, r3, #0x30 + bl FUN_0202F1B4 + mov r0, r4 + ldr r1, [r0] + mov r2, #0 + str r2, [r1, #0x28] + ldr r0, [r0] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + mov r0, r4 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + b _0238B7B8 +_0238AEF4: + ldr r0, _0238B164 @ =0x0238CED0 + bl FUN_0200C1FC + mov r0, r4 + mov r2, #0x13 + ldr r1, [r0] + add r3, r2, #0x1dc + str r2, [r1, #4] + ldr r1, [r0] + ldr r4, _0238B168 @ =0x00001311 + str r3, [r1, #0x30] + ldr r3, [r0] + add r2, r2, #0x3ac + str r4, [r3, #0x54] + ldr r3, [r0] + mov r1, #8 + ldrsb r0, [r3, #0x80] + add r3, r3, #0x30 + bl FUN_0202F1B4 + ldr r0, _0238B08C @ =0x0238CF40 + ldr r0, [r0] + ldrsb r0, [r0, #0x81] + bl FUN_0202F6DC + b _0238B7B8 +_0238AF50: + ldr r0, _0238B16C @ =0x0238CEF8 + bl FUN_0200C1FC + mvn r0, #0x95 + bl FUN_0200ED58 + ldr r1, [r4] + ldrh r0, [r1, #0xd8] + cmp r0, #0 + beq _0238AFE8 + mov r5, #0 + b _0238AF88 +_0238AF78: + add r0, r1, r5, lsl #1 + ldrsh r0, [r0, #0xdc] + bl FUN_0200F404 + add r5, r5, #1 +_0238AF88: + ldr r1, [r4] + ldrh r0, [r1, #0xda] + cmp r5, r0 + blt _0238AF78 + mov r5, #0 + ldr r4, _0238B08C @ =0x0238CF40 + b _0238AFB8 +_0238AFA4: + add r0, r1, r5, lsl #1 + add r0, r0, #0x100 + ldrsh r0, [r0, #0x42] + bl FUN_020101A0 + add r5, r5, #1 +_0238AFB8: + ldr r1, [r4] + add r0, r1, #0x100 + ldrh r0, [r0, #0x40] + cmp r5, r0 + blt _0238AFA4 + bl FUN_0200F370 + bl FUN_0201007C + ldr r0, _0238B08C @ =0x0238CF40 + ldr r0, [r0] + ldrsh r0, [r0, #0xe] + bl FUN_02013150 + b _0238B064 +_0238AFE8: + ldrsh r0, [r1, #0xe] + bl FUN_0230C068 + cmp r0, #3 + moveq r5, #3 + mov r4, #0 + movne r5, #2 + add r8, sp, #0x12 + mov sl, r4 + mov sb, #1 + add r7, sp, #0xc + ldr r6, _0238B08C @ =0x0238CF40 + b _0238B05C +_0238B018: + ldr r0, [r6] + ldrsh r0, [r0, #0xe] + bl ov21_0238B7E0 + add r2, r4, r0 + mov r0, r8 + mov r1, r7 + strh r2, [sp, #0x10] + strh sl, [sp, #0xe] + strb sb, [sp, #0xc] + bl FUN_0200D0A0 + mov r0, r8 + bl FUN_0200F4D4 + cmp r0, #0 + bne _0238B058 + mov r0, r8 + bl FUN_020101E4 +_0238B058: + add r4, r4, #1 +_0238B05C: + cmp r4, r5 + blt _0238B018 +_0238B064: + bl FUN_0200EDC0 + cmp r0, #0 + beq _0238B170 + ldr r0, _0238B08C @ =0x0238CF40 + ldr r0, [r0] + add r0, r0, #0xe + bl FUN_0201031C + ldr r0, _0238B08C @ =0x0238CF40 + mov r1, #1 + b _0238B188 + .align 2, 0 +_0238B08C: .4byte 0x0238CF40 +_0238B090: .4byte 0x0238CBB8 +_0238B094: .4byte 0x00003008 +_0238B098: .4byte 0x000003B2 +_0238B09C: .4byte 0x000001EF +_0238B0A0: .4byte 0x0238CBD4 +_0238B0A4: .4byte 0x0238CA28 +_0238B0A8: .4byte ov21_0238C9A4 +_0238B0AC: .4byte 0x00300013 +_0238B0B0: .4byte 0x0238CAA8 +_0238B0B4: .4byte 0x0238CB68 +_0238B0B8: .4byte 0x0238CBF8 +_0238B0BC: .4byte 0x000003B3 +_0238B0C0: .4byte 0x0238CB88 +_0238B0C4: .4byte 0x0238CA68 +_0238B0C8: .4byte 0x0238CC18 +_0238B0CC: .4byte 0x00003018 +_0238B0D0: .4byte 0x000003C5 +_0238B0D4: .4byte 0x000003C7 +_0238B0D8: .4byte 0x0238CC3C +_0238B0DC: .4byte 0x000003B7 +_0238B0E0: .4byte 0x0238CC5C +_0238B0E4: .4byte 0x000003B6 +_0238B0E8: .4byte 0x0238CC7C +_0238B0EC: .4byte 0x0238CC9C +_0238B0F0: .4byte 0x000003B5 +_0238B0F4: .4byte 0x0238CCC0 +_0238B0F8: .4byte 0x0238CCE4 +_0238B0FC: .4byte 0x0238CD00 +_0238B100: .4byte 0x0238CD24 +_0238B104: .4byte 0x000003C2 +_0238B108: .4byte 0x0238CD44 +_0238B10C: .4byte 0x0238CD68 +_0238B110: .4byte 0x0238CD8C +_0238B114: .4byte 0x0238CDB4 +_0238B118: .4byte 0x0238CB78 +_0238B11C: .4byte 0x00400013 +_0238B120: .4byte 0x0238CA88 +_0238B124: .4byte 0x0238CDDC +_0238B128: .4byte 0x0238CE00 +_0238B12C: .4byte 0x0000C402 +_0238B130: .4byte 0x0238CB98 +_0238B134: .4byte 0x00001013 +_0238B138: .4byte 0x0000033E +_0238B13C: .4byte 0x0238CE0C +_0238B140: .4byte 0x000003BD +_0238B144: .4byte 0x000003BB +_0238B148: .4byte 0x0238CE34 +_0238B14C: .4byte 0x0238CA38 +_0238B150: .4byte 0x0238CE4C +_0238B154: .4byte 0x0238CE78 +_0238B158: .4byte 0x0238CEA4 +_0238B15C: .4byte 0x000003C1 +_0238B160: .4byte 0x000003BA +_0238B164: .4byte 0x0238CED0 +_0238B168: .4byte 0x00001311 +_0238B16C: .4byte 0x0238CEF8 +_0238B170: + ldr r0, _0238B08C @ =0x0238CF40 + ldr r0, [r0] + add r0, r0, #0xe + bl FUN_0200F84C + ldr r0, _0238B08C @ =0x0238CF40 + mov r1, #0 +_0238B188: + ldr r0, [r0] + mov r2, #0x12 + strb r1, [r0, #0xc] + ldr r0, _0238B08C @ =0x0238CF40 + ldr r1, [r0] + str r2, [r1, #4] + ldr r2, [r0] + ldrsh r1, [r2, #0xe] + str r1, [r2, #0x44] + ldr r2, [r0] + ldrh r1, [r2, #0x10] + str r1, [r2, #0x58] + ldr r0, [r0] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + ldr r0, _0238B08C @ =0x0238CF40 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + ldr r0, _0238B08C @ =0x0238CF40 + ldr r1, _0238B0CC @ =0x00003018 + ldr r3, [r0] + ldr r2, _0238B7C0 @ =0x000003BE + ldrsb r0, [r3, #0x80] + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238B204: + mov r1, #0x25 + str r1, [r0, #4] + ldr r3, [r4] + ldr r1, _0238B0CC @ =0x00003018 + ldrsb r0, [r3, #0x80] + ldr r2, _0238B7C4 @ =0x000003CA + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238B228: + ldrsb r0, [r0, #0x80] + bl FUN_0202F3A4 + mov r0, r4 + ldr r0, [r0] + ldrsb r0, [r0, #0x80] + bl FUN_0202F2C4 + mov r0, r4 + ldr r0, [r0] + ldrsb r0, [r0, #0x81] + bl FUN_0202F6DC + mov r0, #0xc + mov r1, #0 + bl FUN_02039C2C + b _0238B7B8 +_0238B260: + ldr r0, _0238B7C8 @ =0x0238CBA8 + mov r4, #5 + ldr r3, _0238B7CC @ =0x0238CAD0 + mov r1, #0x13 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238B08C @ =0x0238CF40 + ldr r1, [r1] + strb r0, [r1, #0x83] + b _0238B7B8 +_0238B28C: + ldr r1, [r0, #0x914] + add r0, sp, #0x68 + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + bl FUN_0205B028 + add r0, sp, #0x68 + mov r1, #3 + bl FUN_0203F150 + mov r1, r4 + ldr r1, [r1] + strb r0, [r1, #0x85] + b _0238B7B8 +_0238B2BC: + ldr r0, [r0, #0x914] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_0203FA64 + mov r1, #0 + mov r2, r1 + mov r0, #9 + bl FUN_0204018C + mov r1, r4 + ldr r1, [r1] + strb r0, [r1, #0x82] + b _0238B7B8 +_0238B2EC: + add r1, r0, #0x900 + ldrsh r2, [r1, #0x18] + add r0, r0, #0x1a + add r0, r0, #0x900 + mov r1, #4 + mov r3, #1 + bl FUN_020417A8 + mov r1, r4 + ldr r1, [r1] + strb r0, [r1, #0x85] + b _0238B7B8 +_0238B318: + ldr r0, [r0, #0x914] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_020555A8 + mov r1, r0 + ldrsh r0, [r1, #4] + ldrsh r2, [r1, #8] + add r1, r1, #0x14 + mov r3, #0 + bl FUN_02041A40 + b _0238B7B8 +_0238B344: + mov r1, #0x31 + str r1, [r0, #4] + ldr r2, [r4] + mov r1, #0 + ldr r0, [r2, #0x914] + orr r0, r0, #0x20000 + str r0, [r2, #0x30] + ldr r0, [r4] + str r1, [r0, #0x28] + ldr r0, [r4] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + mov r0, r4 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + mov r0, r4 + ldr r3, [r0] + ldr r1, _0238B0CC @ =0x00003018 + ldrsb r0, [r3, #0x80] + ldr r2, _0238B7D0 @ =0x000003CB + add r3, r3, #0x30 + bl FUN_0202F1B4 + bl FUN_0230C910 + b _0238B7B8 +_0238B3B8: + ldrsb r0, [r0, #0x80] + bl FUN_0202F3A4 + mov r0, r4 + ldr r0, [r0] + ldrsb r0, [r0, #0x80] + bl FUN_0202F2C4 + mov r0, r4 + ldr r0, [r0] + ldrsb r0, [r0, #0x81] + bl FUN_0202F6DC + mov r0, r4 + ldr r0, [r0] + ldr r0, [r0, #0x914] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + bl FUN_020555A8 + ldrsh r1, [r0, #4] + mov r0, #2 + bl FUN_0230B20C + b _0238B7B8 +_0238B408: + ldr r0, _0238B118 @ =0x0238CB78 + mov r4, #2 + ldr r3, _0238B7D4 @ =0x0238CA50 + mov r1, #0x13 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238B08C @ =0x0238CF40 + ldr r1, [r1] + strb r0, [r1, #0x83] + b _0238B7B8 +_0238B434: + ldrsh r1, [r0, #0xe] + ldr r2, _0238B128 @ =0x0238CE00 + ldr r3, _0238B12C @ =0x0000C402 + str r1, [r0, #0x40] + ldr r5, [r4] + mov r1, #0x400 + ldrh r0, [r5, #0x10] + str r0, [r5, #0x54] + ldr r0, [r4] + add r4, r0, #0x30 + add r0, r0, #0x86 + str r4, [sp] + bl FUN_020223F0 + add r0, sp, #0xe0 + bl FUN_02023690 + ldr r0, _0238B08C @ =0x0238CF40 + add r1, sp, #0xe0 + ldr r4, [r0] + ldr r0, _0238B130 @ =0x0238CB98 + add r2, r4, #0x86 + str r2, [sp, #0x118] + str r1, [sp] + ldrsh r2, [r4, #0xe] + ldr r1, _0238B134 @ =0x00001013 + ldr r3, _0238B138 @ =0x0000033E + add r2, r2, #0xd1 + add r2, r2, #0x2900 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + str r2, [sp, #4] + add r4, r4, #0x30 + mov r2, #0 + str r4, [sp, #8] + bl FUN_0202E3CC + ldr r1, _0238B08C @ =0x0238CF40 + ldr r1, [r1] + strb r0, [r1, #0x85] + b _0238B7B8 +_0238B4CC: + bl ov21_0238C920 + mov r0, r4 + ldr r1, [r0] + mov r3, #0x36 + str r3, [r1, #4] + ldr r1, [r0] + mov r2, #0 + str r2, [r1, #0x28] + ldr r0, [r0] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + mov r0, r4 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + mov r0, r4 + ldr r3, [r0] + ldr r1, _0238B0CC @ =0x00003018 + ldrsb r0, [r3, #0x80] + ldr r2, _0238B7D8 @ =0x000003B9 + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238B538: + bl ov21_0238C920 + mov r0, r4 + ldr r1, [r0] + mov r3, #0x37 + str r3, [r1, #4] + ldr r1, [r0] + mov r2, #0 + str r2, [r1, #0x28] + ldr r0, [r0] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + mov r0, r4 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + mov r0, r4 + ldr r3, [r0] + ldr r1, _0238B094 @ =0x00003008 + ldrsb r0, [r3, #0x80] + mov r2, #0x3cc + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238B5A4: + ldr r0, _0238B0C0 @ =0x0238CB88 + mov r4, #2 + ldr r1, _0238B0AC @ =0x00300013 + ldr r3, _0238B14C @ =0x0238CA38 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238B08C @ =0x0238CF40 + ldr r1, [r1] + strb r0, [r1, #0x83] + b _0238B7B8 +_0238B5D0: + mov r1, #0x3a + str r1, [r0, #4] + ldr r2, [r4] + mov r1, #0 + ldr r0, [r2, #0x914] + orr r0, r0, #0x20000 + str r0, [r2, #0x30] + ldr r0, [r4] + str r1, [r0, #0x28] + ldr r0, [r4] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + mov r0, r4 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + mov r0, r4 + ldr r3, [r0] + ldr r1, _0238B0CC @ =0x00003018 + ldrsb r0, [r3, #0x80] + ldr r2, _0238B7DC @ =0x000003C9 + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238B640: + ldrsb r0, [r0, #0x80] + bl FUN_0202F3A4 + mov r0, r4 + ldr r0, [r0] + ldrsb r0, [r0, #0x80] + bl FUN_0202F2C4 + mov r0, r4 + ldr r0, [r0] + ldrsb r0, [r0, #0x81] + bl FUN_0202F6DC + bl FUN_0230C910 + mov r1, r4 + ldr r1, [r1] + mov r0, #3 + ldrh r1, [r1, #0xd8] + bl FUN_0230B20C + b _0238B7B8 +_0238B684: + bl FUN_0230BB98 + b _0238B7B8 +_0238B68C: + bl ov21_0238C920 + mov r0, r4 + ldr r1, [r0] + mov r3, #1 + str r3, [r1, #4] + ldr r1, [r0] + mov r2, #0 + str r2, [r1, #0x28] + ldr r0, [r0] + ldr r1, [r0, #0x28] + add r0, r0, #0xc8 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + mov r0, r4 + ldr r1, [r0] + ldrsb r0, [r1, #0x81] + add r1, r1, #0xc8 + bl FUN_0202F690 + mov r0, r4 + ldr r3, [r0] + ldr r1, _0238B0CC @ =0x00003018 + ldrsb r0, [r3, #0x80] + ldr r2, _0238B7D8 @ =0x000003B9 + add r3, r3, #0x30 + bl FUN_0202F1B4 + b _0238B7B8 +_0238B6F8: + ldr r0, _0238B118 @ =0x0238CB78 + mov r4, #2 + ldr r3, _0238B7D4 @ =0x0238CA50 + mov r1, #0x13 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238B08C @ =0x0238CF40 + ldr r1, [r1] + strb r0, [r1, #0x83] + b _0238B7B8 +_0238B724: + ldrsh r1, [r0, #0x18] + ldr r2, _0238B128 @ =0x0238CE00 + ldr r3, _0238B12C @ =0x0000C402 + str r1, [r0, #0x40] + ldr r5, [r4] + mov r1, #0x400 + ldrh r0, [r5, #0x1a] + str r0, [r5, #0x54] + ldr r0, [r4] + add r4, r0, #0x30 + add r0, r0, #0x86 + str r4, [sp] + bl FUN_020223F0 + add r0, sp, #0x130 + bl FUN_02023690 + ldr r0, _0238B08C @ =0x0238CF40 + add r1, sp, #0x130 + ldr r4, [r0] + ldr r0, _0238B130 @ =0x0238CB98 + add r2, r4, #0x86 + str r2, [sp, #0x168] + str r1, [sp] + ldrsh r2, [r4, #0x18] + ldr r1, _0238B134 @ =0x00001013 + ldr r3, _0238B138 @ =0x0000033E + add r2, r2, #0xd1 + add r2, r2, #0x2900 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + str r2, [sp, #4] + add r4, r4, #0x30 + mov r2, #0 + str r4, [sp, #8] + bl FUN_0202E3CC + ldr r1, _0238B08C @ =0x0238CF40 + ldr r1, [r1] + strb r0, [r1, #0x85] +_0238B7B8: + add sp, sp, #0x180 + pop {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0238B7C0: .4byte 0x000003BE +_0238B7C4: .4byte 0x000003CA +_0238B7C8: .4byte 0x0238CBA8 +_0238B7CC: .4byte 0x0238CAD0 +_0238B7D0: .4byte 0x000003CB +_0238B7D4: .4byte 0x0238CA50 +_0238B7D8: .4byte 0x000003B9 +_0238B7DC: .4byte 0x000003C9 + arm_func_end ov21_0238ADFC + + arm_func_start ov21_0238B7E0 +ov21_0238B7E0: @ 0x0238B7E0 + cmp r0, #0x1bc + blt _0238B7F8 + ldr r1, _0238B834 @ =0x000001C3 + cmp r0, r1 + ldrle r0, _0238B838 @ =0x000002FE + bxle lr +_0238B7F8: + cmp r0, #0x1c4 + blt _0238B810 + ldr r1, _0238B83C @ =0x000001C7 + cmp r0, r1 + ldrle r0, _0238B840 @ =0x00000336 + bxle lr +_0238B810: + ldr r1, _0238B844 @ =0xFFFFFE06 + add r1, r0, r1 + asr r0, r1, #1 + add r0, r1, r0, lsr #30 + asr r0, r0, #2 + lsl r0, r0, #2 + add r0, r0, #0xfa + add r0, r0, #0x100 + bx lr + .align 2, 0 +_0238B834: .4byte 0x000001C3 +_0238B838: .4byte 0x000002FE +_0238B83C: .4byte 0x000001C7 +_0238B840: .4byte 0x00000336 +_0238B844: .4byte 0xFFFFFE06 + arm_func_end ov21_0238B7E0 + + arm_func_start ov21_0238B848 +ov21_0238B848: @ 0x0238B848 + push {r3, lr} + ldr r0, _0238B8F0 @ =0x0000093C + mov r1, #6 + bl FUN_02001170 + ldr r1, _0238B8F4 @ =0x0238CF40 + mov r3, #0 + str r0, [r1] + str r3, [r0, #0x1c] + ldr r0, [r1] + sub r2, r3, #2 + str r3, [r0, #0x20] + ldr r0, [r1] + str r3, [r0, #0x24] + ldr r0, [r1] + strb r2, [r0, #0x84] + ldr r0, [r1] + strb r2, [r0, #0x82] + ldr r0, [r1] + strb r2, [r0, #0x83] + ldr r0, [r1] + str r3, [r0, #0x2c] + ldr r0, [r1] + add r0, r0, #0x30 + bl FUN_02023690 + ldr r0, _0238B8F4 @ =0x0238CF40 + ldr r3, _0238B8F8 @ =0x000001EF + ldr r2, [r0] + mov r1, #0 + str r3, [r2, #0x7c] + ldr r2, [r0] + str r3, [r2, #0x30] + ldr r0, [r0] + str r1, [r0, #8] + bl FUN_0230C910 + ldr r0, _0238B8F4 @ =0x0238CF40 + mov r2, #0 + ldr r1, [r0] + mov r0, #0x41 + str r2, [r1, #0x28] + bl ov21_0238A140 + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0238B8F0: .4byte 0x0000093C +_0238B8F4: .4byte 0x0238CF40 +_0238B8F8: .4byte 0x000001EF + arm_func_end ov21_0238B848 + + arm_func_start ov21_0238B8FC +ov21_0238B8FC: @ 0x0238B8FC + push {r3, lr} + ldr r0, _0238B924 @ =0x0238CF40 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0238B924 @ =0x0238CF40 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0238B924: .4byte 0x0238CF40 + arm_func_end ov21_0238B8FC +_0238B928: + .byte 0x00, 0x40, 0x2D, 0xE9, 0x0C, 0xD0, 0x4D, 0xE2 + .byte 0x98, 0x0F, 0x9F, 0xE5, 0x00, 0x30, 0x90, 0xE5, 0x2C, 0x10, 0x93, 0xE5, 0x08, 0x00, 0x51, 0xE3 + .byte 0x01, 0xF1, 0x8F, 0x90, 0xF2, 0x03, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00, 0xEA + .byte 0xB6, 0x03, 0x00, 0xEA, 0xEA, 0x03, 0x00, 0xEA, 0xE2, 0x03, 0x00, 0xEA, 0xEC, 0x03, 0x00, 0xEA + .byte 0xBC, 0x03, 0x00, 0xEA, 0xC5, 0x03, 0x00, 0xEA, 0xCE, 0x03, 0x00, 0xEA, 0x04, 0x00, 0xA0, 0xE3 + .byte 0x2C, 0x00, 0x83, 0xE5, 0x3B, 0x6D, 0xFD, 0xEB, 0xE5, 0x03, 0x00, 0xEA, 0x00, 0x20, 0x93, 0xE5 + .byte 0x43, 0x00, 0x52, 0xE3, 0x02, 0xF1, 0x8F, 0x90, 0x89, 0x03, 0x00, 0xEA, 0x42, 0x00, 0x00, 0xEA + .byte 0x41, 0x00, 0x00, 0xEA, 0x86, 0x03, 0x00, 0xEA, 0x85, 0x03, 0x00, 0xEA, 0x19, 0x01, 0x00, 0xEA + .byte 0x83, 0x03, 0x00, 0xEA, 0x82, 0x03, 0x00, 0xEA, 0x81, 0x03, 0x00, 0xEA, 0x80, 0x03, 0x00, 0xEA + .byte 0x7F, 0x03, 0x00, 0xEA, 0x7E, 0x03, 0x00, 0xEA, 0x42, 0x00, 0x00, 0xEA, 0x48, 0x00, 0x00, 0xEA + .byte 0x47, 0x00, 0x00, 0xEA, 0x77, 0x00, 0x00, 0xEA, 0xDC, 0x00, 0x00, 0xEA, 0xEA, 0x00, 0x00, 0xEA + .byte 0x77, 0x03, 0x00, 0xEA, 0x73, 0x03, 0x00, 0xEA, 0x72, 0x03, 0x00, 0xEA, 0x71, 0x03, 0x00, 0xEA + .byte 0x73, 0x03, 0x00, 0xEA, 0x72, 0x03, 0x00, 0xEA, 0x71, 0x03, 0x00, 0xEA, 0x70, 0x03, 0x00, 0xEA + .byte 0x6F, 0x03, 0x00, 0xEA, 0x05, 0x01, 0x00, 0xEA, 0x18, 0x01, 0x00, 0xEA, 0x6C, 0x03, 0x00, 0xEA + .byte 0x6B, 0x03, 0x00, 0xEA, 0xDC, 0x00, 0x00, 0xEA, 0x3E, 0x01, 0x00, 0xEA, 0x68, 0x03, 0x00, 0xEA + .byte 0x6A, 0x02, 0x00, 0xEA, 0x66, 0x03, 0x00, 0xEA, 0x65, 0x03, 0x00, 0xEA, 0x64, 0x03, 0x00, 0xEA + .byte 0x56, 0x01, 0x00, 0xEA, 0x82, 0x01, 0x00, 0xEA, 0xED, 0x02, 0x00, 0xEA, 0xBC, 0x01, 0x00, 0xEA + .byte 0xEB, 0x02, 0x00, 0xEA, 0xC5, 0x01, 0x00, 0xEA, 0xE9, 0x02, 0x00, 0xEA, 0xE5, 0x01, 0x00, 0xEA + .byte 0xE7, 0x02, 0x00, 0xEA, 0xEE, 0x01, 0x00, 0xEA, 0xE5, 0x02, 0x00, 0xEA, 0x58, 0x03, 0x00, 0xEA + .byte 0xF6, 0x01, 0x00, 0xEA, 0xE2, 0x02, 0x00, 0xEA, 0x22, 0x02, 0x00, 0xEA, 0x37, 0x02, 0x00, 0xEA + .byte 0x53, 0x03, 0x00, 0xEA, 0x52, 0x03, 0x00, 0xEA, 0x43, 0x02, 0x00, 0xEA, 0x50, 0x03, 0x00, 0xEA + .byte 0x4F, 0x03, 0x00, 0xEA, 0x6C, 0x02, 0x00, 0xEA, 0x6B, 0x02, 0x00, 0xEA, 0xD8, 0x02, 0x00, 0xEA + .byte 0xD7, 0x02, 0x00, 0xEA, 0xB1, 0x02, 0x00, 0xEA, 0xC6, 0x02, 0x00, 0xEA, 0x48, 0x03, 0x00, 0xEA + .byte 0x23, 0x03, 0x00, 0xEA, 0x3B, 0x03, 0x00, 0xEA, 0xD1, 0x02, 0x00, 0xEA, 0xD0, 0x08, 0xD3, 0xE1 + .byte 0xB6, 0x8D, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x4D, 0x03, 0x00, 0x1A, 0x1B, 0x00, 0xA0, 0xE3 + .byte 0xA2, 0xF9, 0xFF, 0xEB, 0x14, 0x0E, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x08, 0xD0, 0xE1 + .byte 0x37, 0x8E, 0xF2, 0xEB, 0x46, 0x03, 0x00, 0xEA, 0xD4, 0x05, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x43, 0x03, 0x00, 0x1A, 0x54, 0x14, 0xFE, 0xEB, 0x0C, 0x00, 0xA0, 0xE3, 0x97, 0xF9, 0xFF, 0xEB + .byte 0x3F, 0x03, 0x00, 0xEA, 0xDE, 0xFF, 0xFD, 0xEB, 0x02, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A + .byte 0x03, 0x00, 0x50, 0xE3, 0x0B, 0x00, 0x00, 0x0A, 0x11, 0x00, 0x00, 0xEA, 0xCC, 0x0D, 0x9F, 0xE5 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x1F, 0x30, 0xA0, 0xE3, 0x08, 0x20, 0x81, 0xE5 + .byte 0x00, 0x20, 0x90, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x04, 0x10, 0x80, 0xE5, 0x2E, 0x03, 0x00, 0xEA, 0xA0, 0x0D, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x0E, 0x00, 0x80, 0xE2, 0x61, 0xFF, 0xFD, 0xEB, 0x0E, 0x00, 0xA0, 0xE3, 0x7F, 0xF9, 0xFF, 0xEB + .byte 0x27, 0x03, 0x00, 0xEA, 0x77, 0x00, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x24, 0x03, 0x00, 0x0A + .byte 0x00, 0x10, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xBF, 0xE9, 0xF1, 0xEB, 0xB0, 0x00, 0xDD, 0xE1 + .byte 0x08, 0x00, 0x10, 0xE3, 0x1E, 0x03, 0x00, 0x0A, 0x64, 0x0D, 0x9F, 0xE5, 0x01, 0x1C, 0xA0, 0xE3 + .byte 0x3F, 0x30, 0xF2, 0xEB, 0x54, 0x0D, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x0E, 0x00, 0x80, 0xE2 + .byte 0x4E, 0xFF, 0xFD, 0xEB, 0x65, 0x03, 0x00, 0xEB, 0x40, 0x0D, 0x9F, 0xE5, 0x0F, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x90, 0xE5, 0x43, 0x10, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x00, 0x10, 0x80, 0xE5, 0x0E, 0x03, 0x00, 0xEA, 0xD3, 0x08, 0xD3, 0xE1, 0x72, 0x7E, 0xF2, 0xEB + .byte 0x01, 0x00, 0x50, 0xE3, 0x5A, 0x00, 0x00, 0x0A, 0x06, 0x00, 0x50, 0xE3, 0x4F, 0x00, 0x00, 0x0A + .byte 0x07, 0x00, 0x50, 0xE3, 0x06, 0x03, 0x00, 0x1A, 0x4B, 0x0C, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x0A, 0x00, 0x00, 0x1A, 0xF4, 0x0C, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5 + .byte 0x1F, 0x30, 0xA0, 0xE3, 0x08, 0x20, 0x81, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x06, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0xF8, 0x02, 0x00, 0xEA + .byte 0x3D, 0x0C, 0xF2, 0xEB, 0x96, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0xAA, 0xBC, 0x0C, 0x9F, 0xE5 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x1F, 0x30, 0xA0, 0xE3, 0x08, 0x20, 0x81, 0xE5 + .byte 0x00, 0x20, 0x90, 0xE5, 0x07, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x04, 0x10, 0x80, 0xE5, 0xEA, 0x02, 0x00, 0xEA, 0x35, 0xFF, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x0C, 0x00, 0x00, 0x1A, 0x84, 0x0C, 0x9F, 0xE5, 0x00, 0xC0, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5 + .byte 0x1F, 0x30, 0xA0, 0xE3, 0xB8, 0xCD, 0xC1, 0xE1, 0x00, 0x20, 0x90, 0xE5, 0x10, 0x10, 0xA0, 0xE3 + .byte 0x08, 0xC0, 0x82, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x04, 0x10, 0x80, 0xE5, 0xDA, 0x02, 0x00, 0xEA, 0x04, 0x00, 0x8D, 0xE2, 0x02, 0x10, 0x8D, 0xE2 + .byte 0xF2, 0x00, 0xFE, 0xEB, 0x33, 0xFF, 0xFD, 0xEB, 0xB4, 0x20, 0xDD, 0xE1, 0xB2, 0x10, 0xDD, 0xE1 + .byte 0x01, 0x10, 0x82, 0xE0, 0x00, 0x00, 0x51, 0xE1, 0x0A, 0x00, 0x00, 0xAA, 0x2C, 0x0C, 0x9F, 0xE5 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x1F, 0x30, 0xA0, 0xE3, 0x08, 0x20, 0x81, 0xE5 + .byte 0x00, 0x20, 0x90, 0xE5, 0x05, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x04, 0x10, 0x80, 0xE5, 0xC6, 0x02, 0x00, 0xEA, 0x22, 0xFF, 0xFD, 0xEB, 0xFC, 0x1B, 0x9F, 0xE5 + .byte 0x00, 0xC0, 0xA0, 0xE3, 0x00, 0x20, 0x91, 0xE5, 0x1F, 0x30, 0xA0, 0xE3, 0xB8, 0x0D, 0xC2, 0xE1 + .byte 0x00, 0x00, 0x91, 0xE5, 0x39, 0x20, 0xA0, 0xE3, 0x08, 0xC0, 0x80, 0xE5, 0x00, 0x00, 0x91, 0xE5 + .byte 0x00, 0x30, 0x80, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x04, 0x20, 0x80, 0xE5, 0xB8, 0x02, 0x00, 0xEA + .byte 0x06, 0x03, 0x00, 0xEB, 0xC4, 0x0B, 0x9F, 0xE5, 0x0F, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x43, 0x10, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5 + .byte 0xAF, 0x02, 0x00, 0xEA, 0xFD, 0x02, 0x00, 0xEB, 0xF2, 0xFF, 0xFD, 0xEB, 0x9C, 0x0B, 0x9F, 0xE5 + .byte 0x0D, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0xA8, 0x02, 0x00, 0xEA + .byte 0xD5, 0x08, 0xD3, 0xE1, 0x66, 0x8A, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xA4, 0x02, 0x00, 0x1A + .byte 0x78, 0x0B, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD5, 0x08, 0xD0, 0xE1, 0x59, 0x8A, 0xF2, 0xEB + .byte 0x68, 0x0B, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x0D, 0x00, 0xA0, 0xE3 + .byte 0x85, 0x20, 0xC1, 0xE5, 0xF1, 0xF8, 0xFF, 0xEB, 0x99, 0x02, 0x00, 0xEA, 0xD3, 0x08, 0xD3, 0xE1 + .byte 0xFD, 0x7D, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x50, 0xE3 + .byte 0x02, 0x00, 0x00, 0x0A, 0x05, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x90, 0x02, 0x00, 0xEA + .byte 0xDE, 0x02, 0x00, 0xEB, 0x11, 0x00, 0xA0, 0xE3, 0xE4, 0xF8, 0xFF, 0xEB, 0x24, 0x0B, 0x9F, 0xE5 + .byte 0xB2, 0x2F, 0xF2, 0xEB, 0x8A, 0x02, 0x00, 0xEA, 0xD8, 0x02, 0x00, 0xEB, 0x0C, 0x0B, 0x9F, 0xE5 + .byte 0x1A, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x0B, 0x20, 0xA0, 0xE3, 0x00, 0x30, 0x81, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x04, 0x20, 0x81, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0xD1, 0x08, 0xD1, 0xE1 + .byte 0xC8, 0x10, 0x81, 0xE2, 0x29, 0x8E, 0xF2, 0xEB, 0xE0, 0x0A, 0x9F, 0xE5, 0xE8, 0x1A, 0x9F, 0xE5 + .byte 0x00, 0x30, 0x90, 0xE5, 0xE4, 0x2A, 0x9F, 0xE5, 0xD0, 0x08, 0xD3, 0xE1, 0x30, 0x30, 0x83, 0xE2 + .byte 0xEB, 0x8C, 0xF2, 0xEB, 0x76, 0x02, 0x00, 0xEA, 0x03, 0x00, 0xA0, 0xE3, 0x75, 0x02, 0x00, 0xEA + .byte 0xD0, 0x08, 0xD3, 0xE1, 0xD9, 0x8C, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x70, 0x02, 0x00, 0x1A + .byte 0xA8, 0x0A, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x08, 0xD0, 0xE1, 0x5C, 0x8D, 0xF2, 0xEB + .byte 0x98, 0x0A, 0x9F, 0xE5, 0x44, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x00, 0x20, 0x81, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x08, 0xD0, 0xE1, 0x1D, 0x8D, 0xF2, 0xEB, 0x7C, 0x0A, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x08, 0xD0, 0xE1, 0x1F, 0x8E, 0xF2, 0xEB, 0x60, 0x02, 0x00, 0xEA + .byte 0xD3, 0x08, 0xD3, 0xE1, 0xC4, 0x7D, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x5C, 0x1A, 0x9F, 0x15 + .byte 0x00, 0x10, 0x91, 0x15, 0x1C, 0x00, 0x81, 0x15, 0x08, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90 + .byte 0x57, 0x02, 0x00, 0xEA, 0x56, 0x02, 0x00, 0xEA, 0x1A, 0x00, 0x00, 0xEA, 0x54, 0x02, 0x00, 0xEA + .byte 0x53, 0x02, 0x00, 0xEA, 0x52, 0x02, 0x00, 0xEA, 0x51, 0x02, 0x00, 0xEA, 0x11, 0x00, 0x00, 0xEA + .byte 0x00, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x00, 0xEA, 0x34, 0x0A, 0x9F, 0xE5, 0xD2, 0x00, 0xF2, 0xEB + .byte 0x9A, 0x02, 0x00, 0xEB, 0xF6, 0xFD, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A + .byte 0x38, 0x00, 0xA0, 0xE3, 0x9D, 0xF8, 0xFF, 0xEB, 0x45, 0x02, 0x00, 0xEA, 0x09, 0x00, 0xA0, 0xE3 + .byte 0x9A, 0xF8, 0xFF, 0xEB, 0x42, 0x02, 0x00, 0xEA, 0x90, 0x02, 0x00, 0xEB, 0x24, 0x00, 0xA0, 0xE3 + .byte 0x96, 0xF8, 0xFF, 0xEB, 0x3E, 0x02, 0x00, 0xEA, 0x8C, 0x02, 0x00, 0xEB, 0x02, 0x00, 0xA0, 0xE3 + .byte 0x92, 0xF8, 0xFF, 0xEB, 0x3A, 0x02, 0x00, 0xEA, 0x88, 0x02, 0x00, 0xEB, 0x03, 0x00, 0xA0, 0xE3 + .byte 0x8E, 0xF8, 0xFF, 0xEB, 0x36, 0x02, 0x00, 0xEA, 0x08, 0x00, 0x93, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x02, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x00, 0x0A, 0x30, 0x02, 0x00, 0xEA + .byte 0xBE, 0x04, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x2D, 0x02, 0x00, 0x1A, 0x9C, 0x09, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x08, 0x00, 0x91, 0xE5, 0x01, 0x00, 0x80, 0xE2, 0x08, 0x00, 0x81, 0xE5 + .byte 0x79, 0x06, 0xFE, 0xEB, 0x75, 0x02, 0x00, 0xEB, 0x9B, 0xFE, 0xFD, 0xEB, 0x24, 0x02, 0x00, 0xEA + .byte 0xB2, 0x04, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x21, 0x02, 0x00, 0x1A, 0x6C, 0x09, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x74, 0xF8, 0xFF, 0xEB, 0x5C, 0x09, 0x9F, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x10, 0x80, 0xE5, 0x18, 0x02, 0x00, 0xEA + .byte 0x88, 0xB9, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x17, 0x00, 0x00, 0x0A, 0x96, 0xBA, 0xF2, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x12, 0x02, 0x00, 0x0A, 0x06, 0x10, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3 + .byte 0xAD, 0xE8, 0xF1, 0xEB, 0xB6, 0x00, 0xDD, 0xE1, 0x08, 0x00, 0x10, 0xE3, 0x0C, 0x02, 0x00, 0x0A + .byte 0x00, 0x00, 0xA0, 0xE3, 0x44, 0x2F, 0xF2, 0xEB, 0xBC, 0xBA, 0xF2, 0xEB, 0x0C, 0x19, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x91, 0xE5, 0x14, 0x09, 0x81, 0xE5, 0x88, 0xB9, 0xF2, 0xEB, 0xFC, 0x08, 0x9F, 0xE5 + .byte 0x27, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x28, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0xFD, 0x01, 0x00, 0xEA, 0x8B, 0xBA, 0xF2, 0xEB + .byte 0x00, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x05, 0x00, 0x00, 0x0A, 0xCC, 0x18, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x91, 0xE5, 0x14, 0x09, 0x81, 0xE5, 0x26, 0x00, 0xA0, 0xE3, 0x4B, 0xF8, 0xFF, 0xEB + .byte 0xF3, 0x01, 0x00, 0xEA, 0xB4, 0x08, 0x9F, 0xE5, 0x27, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5 + .byte 0xEB, 0x01, 0x00, 0xEA, 0xD3, 0x08, 0xD3, 0xE1, 0x4F, 0x7D, 0xF2, 0xEB, 0x0B, 0x00, 0x50, 0xE3 + .byte 0x00, 0xF1, 0x8F, 0x90, 0xE6, 0x01, 0x00, 0xEA, 0xE5, 0x01, 0x00, 0xEA, 0x2D, 0x00, 0x00, 0xEA + .byte 0xE3, 0x01, 0x00, 0xEA, 0xE2, 0x01, 0x00, 0xEA, 0xE1, 0x01, 0x00, 0xEA, 0xE0, 0x01, 0x00, 0xEA + .byte 0xDF, 0x01, 0x00, 0xEA, 0xDE, 0x01, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00, 0xEA + .byte 0x12, 0x00, 0x00, 0xEA, 0x1A, 0x00, 0x00, 0xEA, 0x28, 0x02, 0x00, 0xEB, 0x4C, 0x08, 0x9F, 0xE5 + .byte 0x27, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x30, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0xD1, 0x01, 0x00, 0xEA, 0x1F, 0x02, 0x00, 0xEB + .byte 0x28, 0x08, 0x9F, 0xE5, 0x27, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x28, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0xC8, 0x01, 0x00, 0xEA + .byte 0x16, 0x02, 0x00, 0xEB, 0x04, 0x08, 0x9F, 0xE5, 0x27, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x2A, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5 + .byte 0xBF, 0x01, 0x00, 0xEA, 0x0D, 0x02, 0x00, 0xEB, 0xE0, 0x07, 0x9F, 0xE5, 0x27, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x90, 0xE5, 0x2E, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x04, 0x10, 0x80, 0xE5, 0xB6, 0x01, 0x00, 0xEA, 0x04, 0x02, 0x00, 0xEB, 0xBC, 0x07, 0x9F, 0xE5 + .byte 0x25, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x45, 0xB9, 0xF2, 0xEB + .byte 0xAF, 0x01, 0x00, 0xEA, 0x9B, 0xCC, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0xAC, 0x01, 0x00, 0x1A + .byte 0x98, 0x07, 0x9F, 0xE5, 0x29, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x25, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0xA4, 0x01, 0x00, 0xEA + .byte 0xA5, 0xD1, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x1A, 0x6C, 0x07, 0x9F, 0xE5 + .byte 0x2B, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x25, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x99, 0x01, 0x00, 0xEA, 0x02, 0x00, 0x50, 0xE3 + .byte 0x07, 0x00, 0x50, 0x13, 0x96, 0x01, 0x00, 0x1A, 0xEA, 0xCE, 0xF2, 0xEB, 0x3C, 0x27, 0x9F, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0x92, 0xE5, 0x20, 0x20, 0xA0, 0xE3, 0x1A, 0x00, 0x80, 0xE2 + .byte 0x09, 0x0C, 0x80, 0xE2, 0x4A, 0xDC, 0xF1, 0xEB, 0xB9, 0xD3, 0xF2, 0xEB, 0x1C, 0x27, 0x9F, 0xE5 + .byte 0x2B, 0xC0, 0xA0, 0xE3, 0x00, 0x10, 0x92, 0xE5, 0x2C, 0x30, 0xA0, 0xE3, 0x09, 0x1C, 0x81, 0xE2 + .byte 0xB8, 0x01, 0xC1, 0xE1, 0x00, 0x00, 0x92, 0xE5, 0x00, 0xC0, 0x80, 0xE5, 0x00, 0x00, 0x92, 0xE5 + .byte 0x04, 0x30, 0x80, 0xE5, 0x82, 0x01, 0x00, 0xEA, 0x0E, 0xD6, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3 + .byte 0x7F, 0x01, 0x00, 0x1A, 0xE4, 0x06, 0x9F, 0xE5, 0x2D, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x2A, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5 + .byte 0x77, 0x01, 0x00, 0xEA, 0x5C, 0xD6, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x74, 0x01, 0x00, 0x1A + .byte 0xB8, 0x06, 0x9F, 0xE5, 0x2F, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x25, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x6C, 0x01, 0x00, 0xEA + .byte 0x0B, 0xFE, 0xFD, 0xEB, 0x02, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x03, 0x00, 0x50, 0xE3 + .byte 0x08, 0x00, 0x00, 0x0A, 0x0E, 0x00, 0x00, 0xEA, 0x80, 0x06, 0x9F, 0xE5, 0x32, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x90, 0xE5, 0x35, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x04, 0x10, 0x80, 0xE5, 0x5E, 0x01, 0x00, 0xEA, 0x60, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x0E, 0x00, 0x80, 0xE2, 0x91, 0xFD, 0xFD, 0xEB, 0x33, 0x00, 0xA0, 0xE3, 0xAF, 0xF7, 0xFF, 0xEB + .byte 0x57, 0x01, 0x00, 0xEA, 0xA7, 0xFE, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x54, 0x01, 0x00, 0x0A + .byte 0x08, 0x10, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xEF, 0xE7, 0xF1, 0xEB, 0xB8, 0x00, 0xDD, 0xE1 + .byte 0x08, 0x00, 0x10, 0xE3, 0x4E, 0x01, 0x00, 0x0A, 0x24, 0x06, 0x9F, 0xE5, 0x01, 0x1C, 0xA0, 0xE3 + .byte 0x6F, 0x2E, 0xF2, 0xEB, 0x14, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x0E, 0x00, 0x80, 0xE2 + .byte 0x7E, 0xFD, 0xFD, 0xEB, 0x95, 0x01, 0x00, 0xEB, 0x00, 0x06, 0x9F, 0xE5, 0x34, 0x30, 0xA0, 0xE3 + .byte 0x00, 0x20, 0x90, 0xE5, 0x32, 0x10, 0xA0, 0xE3, 0x04, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x00, 0x10, 0x80, 0xE5, 0x3E, 0x01, 0x00, 0xEA, 0xD3, 0x08, 0xD3, 0xE1, 0xA2, 0x7C, 0xF2, 0xEB + .byte 0x01, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0x0A, 0x06, 0x00, 0x50, 0xE3, 0x38, 0x01, 0x00, 0x1A + .byte 0x86, 0x01, 0x00, 0xEB, 0xC4, 0x05, 0x9F, 0xE5, 0x32, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x34, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5 + .byte 0x2F, 0x01, 0x00, 0xEA, 0x7D, 0x01, 0x00, 0xEB, 0xA0, 0x05, 0x9F, 0xE5, 0x31, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x6E, 0xFE, 0xFD, 0xEB, 0x28, 0x01, 0x00, 0xEA + .byte 0xD5, 0x08, 0xD3, 0xE1, 0xE6, 0x88, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x24, 0x01, 0x00, 0x1A + .byte 0x78, 0x05, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD5, 0x08, 0xD0, 0xE1, 0xD9, 0x88, 0xF2, 0xEB + .byte 0x68, 0x05, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x31, 0x00, 0xA0, 0xE3 + .byte 0x85, 0x20, 0xC1, 0xE5, 0x71, 0xF7, 0xFF, 0xEB, 0x19, 0x01, 0x00, 0xEA, 0xD3, 0x08, 0xD3, 0xE1 + .byte 0x7D, 0x7C, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x0A, 0x04, 0x00, 0x50, 0xE3 + .byte 0x02, 0x00, 0x00, 0x0A, 0x05, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x10, 0x01, 0x00, 0xEA + .byte 0x5E, 0x01, 0x00, 0xEB, 0x24, 0x00, 0xA0, 0xE3, 0x64, 0xF7, 0xFF, 0xEB, 0x0C, 0x01, 0x00, 0xEA + .byte 0x5A, 0x01, 0x00, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x60, 0xF7, 0xFF, 0xEB, 0x08, 0x01, 0x00, 0xEA + .byte 0xD3, 0x08, 0xD3, 0xE1, 0x6C, 0x7C, 0xF2, 0xEB, 0x0C, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0xCA + .byte 0x09, 0x00, 0x00, 0xAA, 0x05, 0x00, 0x50, 0xE3, 0x01, 0x01, 0x00, 0xCA, 0x01, 0x00, 0x50, 0xE3 + .byte 0xFF, 0x00, 0x00, 0xBA, 0x05, 0x00, 0x50, 0x13, 0x0B, 0x00, 0x00, 0x0A, 0xFC, 0x00, 0x00, 0xEA + .byte 0x0D, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0xF9, 0x00, 0x00, 0xEA, 0x47, 0x01, 0x00, 0xEB + .byte 0x22, 0x00, 0xA0, 0xE3, 0x4D, 0xF7, 0xFF, 0xEB, 0xF5, 0x00, 0x00, 0xEA, 0x43, 0x01, 0x00, 0xEB + .byte 0x23, 0x00, 0xA0, 0xE3, 0x49, 0xF7, 0xFF, 0xEB, 0xF1, 0x00, 0x00, 0xEA, 0x3F, 0x01, 0x00, 0xEB + .byte 0x01, 0x00, 0xA0, 0xE3, 0x45, 0xF7, 0xFF, 0xEB, 0xED, 0x00, 0x00, 0xEA, 0x8C, 0xFD, 0xFD, 0xEB + .byte 0x02, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x03, 0x00, 0x50, 0xE3, 0x08, 0x00, 0x00, 0x0A + .byte 0x29, 0x00, 0x00, 0xEA, 0x84, 0x04, 0x9F, 0xE5, 0x3C, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x40, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5 + .byte 0xDF, 0x00, 0x00, 0xEA, 0x02, 0xFD, 0xFD, 0xEB, 0x60, 0x14, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 + .byte 0xB8, 0x1D, 0xD1, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x08, 0x00, 0x00, 0xAA, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x11, 0x2E, 0xF2, 0xEB, 0x44, 0x04, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x18, 0x00, 0x80, 0xE2 + .byte 0x0A, 0xFD, 0xFD, 0xEB, 0x3E, 0x00, 0xA0, 0xE3, 0x28, 0xF7, 0xFF, 0xEB, 0xD0, 0x00, 0x00, 0xEA + .byte 0xCF, 0x00, 0x00, 0x1A, 0x00, 0x00, 0xA0, 0xE3, 0x07, 0x2E, 0xF2, 0xEB, 0x1C, 0x04, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x90, 0xE5, 0x42, 0x30, 0x82, 0xE2, 0xDA, 0x00, 0x82, 0xE2, 0xDC, 0x10, 0x82, 0xE2 + .byte 0x05, 0x2D, 0x82, 0xE2, 0x01, 0x3C, 0x83, 0xE2, 0x12, 0xFF, 0xFD, 0xEB, 0xFC, 0x03, 0x9F, 0xE5 + .byte 0x3C, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x10, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0xBD, 0x00, 0x00, 0xEA, 0x0D, 0xFE, 0xFD, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0xBA, 0x00, 0x00, 0x0A, 0x0A, 0x10, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x55, 0xE7, 0xF1, 0xEB, 0xBA, 0x00, 0xDD, 0xE1, 0x08, 0x00, 0x10, 0xE3, 0xB4, 0x00, 0x00, 0x0A + .byte 0xBC, 0x03, 0x9F, 0xE5, 0x01, 0x1C, 0xA0, 0xE3, 0xD5, 0x2D, 0xF2, 0xEB, 0xAC, 0x03, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x18, 0x00, 0x80, 0xE2, 0xE4, 0xFC, 0xFD, 0xEB, 0xFB, 0x00, 0x00, 0xEB + .byte 0x98, 0x03, 0x9F, 0xE5, 0x3F, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x3D, 0x10, 0xA0, 0xE3 + .byte 0x04, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0xA4, 0x00, 0x00, 0xEA + .byte 0xD3, 0x08, 0xD3, 0xE1, 0x08, 0x7C, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0x0A + .byte 0x06, 0x00, 0x50, 0xE3, 0x9E, 0x00, 0x00, 0x1A, 0xEC, 0x00, 0x00, 0xEB, 0x5C, 0x03, 0x9F, 0xE5 + .byte 0x3D, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x3F, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x95, 0x00, 0x00, 0xEA, 0xE3, 0x00, 0x00, 0xEB + .byte 0x38, 0x03, 0x9F, 0xE5, 0x3A, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5 + .byte 0xD4, 0xFD, 0xFD, 0xEB, 0x8E, 0x00, 0x00, 0xEA, 0xD5, 0x08, 0xD3, 0xE1, 0x4C, 0x88, 0xF2, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x8A, 0x00, 0x00, 0x1A, 0x10, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD5, 0x08, 0xD0, 0xE1, 0x3F, 0x88, 0xF2, 0xEB, 0x00, 0x03, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3 + .byte 0x00, 0x10, 0x90, 0xE5, 0x3B, 0x00, 0xA0, 0xE3, 0x85, 0x20, 0xC1, 0xE5, 0xD7, 0xF6, 0xFF, 0xEB + .byte 0x7F, 0x00, 0x00, 0xEA, 0x08, 0x10, 0x93, 0xE5, 0x01, 0x10, 0x81, 0xE2, 0x08, 0x10, 0x83, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x08, 0x00, 0x91, 0xE5, 0x01, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A + .byte 0x03, 0x00, 0x50, 0xE3, 0x3F, 0x00, 0x00, 0x0A, 0x75, 0x00, 0x00, 0xEA, 0x3C, 0x00, 0x52, 0xE3 + .byte 0x10, 0x00, 0x00, 0xCA, 0x37, 0x00, 0x00, 0xAA, 0x27, 0x00, 0x42, 0xE2, 0x0B, 0x00, 0x50, 0xE3 + .byte 0x00, 0xF1, 0x8F, 0x90, 0x6E, 0x00, 0x00, 0xEA, 0x11, 0x00, 0x00, 0xEA, 0x6C, 0x00, 0x00, 0xEA + .byte 0x11, 0x00, 0x00, 0xEA, 0x6A, 0x00, 0x00, 0xEA, 0x15, 0x00, 0x00, 0xEA, 0x68, 0x00, 0x00, 0xEA + .byte 0x1F, 0x00, 0x00, 0xEA, 0x66, 0x00, 0x00, 0xEA, 0x27, 0x00, 0x00, 0xEA, 0x64, 0x00, 0x00, 0xEA + .byte 0x63, 0x00, 0x00, 0xEA, 0x27, 0x00, 0x00, 0xEA, 0x3D, 0x00, 0x52, 0xE3, 0x01, 0x00, 0x00, 0xCA + .byte 0x26, 0x00, 0x00, 0x0A, 0x5E, 0x00, 0x00, 0xEA, 0x43, 0x00, 0x52, 0xE3, 0x23, 0x00, 0x00, 0x0A + .byte 0x5B, 0x00, 0x00, 0xEA, 0xA8, 0xB7, 0xF2, 0xEB, 0x59, 0x00, 0x00, 0xEA, 0xC3, 0xCC, 0xF2, 0xEB + .byte 0x48, 0x02, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x85, 0x10, 0xC0, 0xE5 + .byte 0x53, 0x00, 0x00, 0xEA, 0x14, 0x09, 0x91, 0xE5, 0xB8, 0xCD, 0xF2, 0xEB, 0x47, 0xD0, 0xF2, 0xEB + .byte 0x28, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x08, 0xD0, 0xE1, 0x7B, 0x90, 0xF2, 0xEB + .byte 0x18, 0x02, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x82, 0x10, 0xC0, 0xE5 + .byte 0x47, 0x00, 0x00, 0xEA, 0xCD, 0xD4, 0xF2, 0xEB, 0x00, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD5, 0x08, 0xD0, 0xE1, 0xFB, 0x87, 0xF2, 0xEB, 0xF0, 0x01, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x85, 0x10, 0xC0, 0xE5, 0x3D, 0x00, 0x00, 0xEA, 0x80, 0xD6, 0xF2, 0xEB + .byte 0xFD, 0x2A, 0xF3, 0xEB, 0x3A, 0x00, 0x00, 0xEA, 0xAF, 0xFC, 0xFD, 0xEB, 0x38, 0x00, 0x00, 0xEA + .byte 0x05, 0xFD, 0xFD, 0xEB, 0x36, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x91, 0xE5, 0x8B, 0xF6, 0xFF, 0xEB + .byte 0xB8, 0x01, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x10, 0x80, 0xE5 + .byte 0x2F, 0x00, 0x00, 0xEA, 0xBD, 0x02, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x2C, 0x00, 0x00, 0x1A + .byte 0x98, 0x01, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x08, 0x10, 0x92, 0xE5, 0x01, 0x10, 0x81, 0xE2 + .byte 0x08, 0x10, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0x90, 0xE5, 0x01, 0x00, 0x50, 0xE3 + .byte 0x23, 0x00, 0x00, 0x1A, 0x42, 0x00, 0xA0, 0xE3, 0x78, 0xF6, 0xFF, 0xEB, 0x00, 0x00, 0xE0, 0xE3 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x6E, 0x6E, 0xFD, 0xEB, 0x6F, 0x04, 0xFE, 0xEB, 0x5C, 0x01, 0x9F, 0xE5 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x04, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x08, 0x20, 0x80, 0xE5, 0x16, 0x00, 0x00, 0xEA, 0xA4, 0x02, 0xFE, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x13, 0x00, 0x00, 0x1A, 0x34, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x00, 0x90, 0xE5 + .byte 0x66, 0xF6, 0xFF, 0xEB, 0x0E, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x93, 0xE5, 0x63, 0xF6, 0xFF, 0xEB + .byte 0x0B, 0x00, 0x00, 0xEA, 0xD0, 0x08, 0xD3, 0xE1, 0x70, 0x8A, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x07, 0x00, 0x00, 0x1A, 0x04, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x08, 0xD0, 0xE1 + .byte 0xF3, 0x8A, 0xF2, 0xEB, 0xF4, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x00, 0x90, 0xE5 + .byte 0x56, 0xF6, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x03, 0x00, 0x50, 0xE3, 0x48, 0x00, 0x00, 0x1A + .byte 0xD8, 0x00, 0x9F, 0xE5, 0x02, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x2C, 0x20, 0x81, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x08, 0xD0, 0xE1, 0xAD, 0x8A, 0xF2, 0xEB, 0xBC, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x08, 0xD0, 0xE1, 0xAF, 0x8B, 0xF2, 0xEB, 0xAC, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x08, 0xD0, 0xE1, 0xCF, 0x6E, 0xF2, 0xEB, 0x38, 0x00, 0x00, 0xEA + .byte 0x03, 0x10, 0xA0, 0xE3, 0x2C, 0x10, 0x83, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x08, 0xD0, 0xE1 + .byte 0x40, 0x8A, 0xF2, 0xEB, 0x84, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x08, 0xD0, 0xE1 + .byte 0x7E, 0x8B, 0xF2, 0xEB, 0x2E, 0x00, 0x00, 0xEA, 0x9A, 0x69, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x2B, 0x00, 0x00, 0x0A, 0x01, 0x00, 0xA0, 0xE3, 0x87, 0x69, 0xFD, 0xEB, 0x5C, 0x00, 0x9F, 0xE5 + .byte 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x2C, 0x10, 0x80, 0xE5, 0x24, 0x00, 0x00, 0xEA + .byte 0x90, 0x69, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x21, 0x00, 0x00, 0x0A, 0x02, 0x00, 0xA0, 0xE3 + .byte 0x7D, 0x69, 0xFD, 0xEB, 0x34, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x2C, 0x10, 0x80, 0xE5, 0x1A, 0x00, 0x00, 0xEA, 0x86, 0x69, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x17, 0x00, 0x00, 0x0A, 0x03, 0x00, 0xA0, 0xE3, 0x73, 0x69, 0xFD, 0xEB, 0x0C, 0x00, 0x9F, 0xE5 + .byte 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x2C, 0x10, 0x80, 0xE5, 0x10, 0x00, 0x00, 0xEA + .byte 0x40, 0xCF, 0x38, 0x02, 0x02, 0x3F, 0x00, 0x00, 0x08, 0x13, 0x00, 0x00, 0x18, 0x30, 0x00, 0x00 + .byte 0xB9, 0x03, 0x00, 0x00, 0x1C, 0xCF, 0x38, 0x02, 0x76, 0x69, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x28, 0x00, 0x1F, 0x15, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x00, 0x90, 0x15, 0x2C, 0x10, 0x80, 0x15 + .byte 0x03, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xE0, 0xE3, 0x5F, 0x69, 0xFD, 0xEB, 0x04, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0x0C, 0xD0, 0x8D, 0xE2, 0x00, 0x80, 0xBD, 0xE8 + + arm_func_start ov21_0238C920 +ov21_0238C920: @ 0x0238C920 + push {r3, lr} + ldr r0, _0238C9A0 @ =0x0238CF40 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #0x84] + cmp r0, r1 + beq _0238C960 + bl FUN_0202836C + ldr r0, _0238C9A0 @ =0x0238CF40 + ldr r0, [r0] + ldrsb r0, [r0, #0x84] + bl FUN_0202F8FC + ldr r0, _0238C9A0 @ =0x0238CF40 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x84] +_0238C960: + ldr r0, _0238C9A0 @ =0x0238CF40 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #0x83] + cmp r0, r1 + popeq {r3, pc} + bl FUN_0202836C + ldr r0, _0238C9A0 @ =0x0238CF40 + ldr r0, [r0] + ldrsb r0, [r0, #0x83] + bl FUN_0202B4C4 + ldr r0, _0238C9A0 @ =0x0238CF40 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x83] + pop {r3, pc} + .align 2, 0 +_0238C9A0: .4byte 0x0238CF40 + arm_func_end ov21_0238C920 + + arm_func_start ov21_0238C9A4 +ov21_0238C9A4: @ 0x0238C9A4 + push {r3, r4, lr} + sub sp, sp, #0x54 + sub sp, sp, #0x400 + mov r4, r0 + bl FUN_02027B1C + bl FUN_0200ECFC + add ip, sp, #0x400 + str r0, [sp, #0x428] + add ip, ip, #4 + ldr r2, _0238CA1C @ =0x0238CF24 + ldr r3, _0238CA20 @ =0x0000C402 + add r0, sp, #4 + mov r1, #0x100 + str ip, [sp] + bl FUN_020223F0 + ldr r3, _0238CA24 @ =0x00000225 + mov r0, r4 + mov r1, #4 + mov r2, #2 + bl FUN_02026268 + mov r0, r4 + mov r1, #0x16 + mov r2, #0x10 + add r3, sp, #4 + bl FUN_02026214 + mov r0, r4 + bl FUN_02027AF0 + add sp, sp, #0x54 + add sp, sp, #0x400 + pop {r3, r4, pc} + .align 2, 0 +_0238CA1C: .4byte 0x0238CF24 +_0238CA20: .4byte 0x0000C402 +_0238CA24: .4byte 0x00000225 + arm_func_end ov21_0238C9A4 + @ 0x0238CA28 diff --git a/asm/overlay_22.s b/asm/overlay_22.s index cdd7950a..de7797d3 100644 --- a/asm/overlay_22.s +++ b/asm/overlay_22.s @@ -3,3 +3,4136 @@ .include "global.inc" .text + + arm_func_start ov22_0238A140 +ov22_0238A140: @ 0x0238A140 + push {r3, lr} + bl ov22_0238A320 + bl ov22_0238A150 + pop {r3, pc} + arm_func_end ov22_0238A140 + + arm_func_start ov22_0238A150 +ov22_0238A150: @ 0x0238A150 + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr r0, _0238A210 @ =0x0238EC60 + ldr r2, _0238A214 @ =0x0000032D + ldr r1, [r0, #4] + mov r3, #0x10 + strh r2, [r1, #8] + ldr r1, [r0, #4] + mov r2, #0xd + str r3, [r1, #0xc] + ldr r1, [r0, #4] + mov r0, #0x12 + str r2, [r1, #4] + bl FUN_02029EC8 + ldr r2, _0238A210 @ =0x0238EC60 + ldr r1, _0238A218 @ =ov22_0238A67C + ldr ip, [r2, #4] + mov r3, #8 + str r0, [ip] + str r1, [sp] + ldr r1, [r2, #4] + ldr r0, _0238A21C @ =0x0238E81C + ldr ip, [r1, #0x9c] + ldr r1, _0238A220 @ =0x00401C33 + str ip, [sp, #4] + str r3, [sp, #8] + ldr r2, [r2, #4] + ldr r3, _0238A224 @ =0x0238A640 + bl FUN_0202C3A8 + ldr r2, _0238A210 @ =0x0238EC60 + mov r1, #0x76 + ldr r3, [r2, #4] + strb r0, [r3, #0x98] + ldr r0, [r2, #4] + ldrsb r0, [r0, #0x98] + bl FUN_0202C5F4 + ldr r0, _0238A210 @ =0x0238EC60 + ldr r1, _0238A228 @ =0x0238A774 + ldr r0, [r0, #4] + ldrsb r0, [r0, #0x98] + bl FUN_0202C7D0 + mov r0, #0 + bl FUN_0204440C + ldr r0, _0238A210 @ =0x0238EC60 + ldr r0, [r0, #4] + ldrsb r0, [r0, #0x98] + add sp, sp, #0xc + ldm sp!, {pc} + .align 2, 0 +_0238A210: .4byte 0x0238EC60 +_0238A214: .4byte 0x0000032D +_0238A218: .4byte ov22_0238A67C +_0238A21C: .4byte 0x0238E81C +_0238A220: .4byte 0x00401C33 +_0238A224: .4byte 0x0238A640 +_0238A228: .4byte 0x0238A774 + arm_func_end ov22_0238A150 + + arm_func_start ov22_0238A22C +ov22_0238A22C: @ 0x0238A22C + bx lr + arm_func_end ov22_0238A22C + + arm_func_start ov22_0238A230 +ov22_0238A230: @ 0x0238A230 + push {r3, lr} + ldr r0, _0238A2A8 @ =0x0238EC60 + ldr r0, [r0, #4] + cmp r0, #0 + moveq r0, #0 + popeq {r3, pc} + ldrsb r0, [r0, #0x98] + bl FUN_0202C728 + cmp r0, #0 + bne _0238A284 + ldr r0, _0238A2A8 @ =0x0238EC60 + ldr r0, [r0, #4] + ldrsb r0, [r0, #0x98] + bl FUN_0202C75C + mvn r1, #0 + cmp r0, r1 + ldrne r1, _0238A2A8 @ =0x0238EC60 + moveq r0, #2 + strhne r0, [r1] + movne r0, #3 + pop {r3, pc} +_0238A284: + ldr r0, _0238A2A8 @ =0x0238EC60 + ldr r0, [r0, #4] + ldrsb r0, [r0, #0x98] + bl FUN_0202C748 + and r1, r0, #0xff + mov r0, #0x12 + bl FUN_02029ED8 + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0238A2A8: .4byte 0x0238EC60 + arm_func_end ov22_0238A230 + + arm_func_start ov22_0238A2AC +ov22_0238A2AC: @ 0x0238A2AC + ldr r0, _0238A2BC @ =0x0238EC60 + ldrsh r0, [r0] + and r0, r0, #0xff + bx lr + .align 2, 0 +_0238A2BC: .4byte 0x0238EC60 + arm_func_end ov22_0238A2AC + + arm_func_start ov22_0238A2C0 +ov22_0238A2C0: @ 0x0238A2C0 + push {r3, lr} + mov r0, #0x398 + mov r1, #8 + bl FUN_02001170 + ldr r1, _0238A2F0 @ =0x0238EC60 + str r0, [r1, #4] + bl ov22_0238A320 + ldr r0, _0238A2F0 @ =0x0238EC60 + mvn r1, #1 + ldr r0, [r0, #4] + strb r1, [r0, #0x98] + pop {r3, pc} + .align 2, 0 +_0238A2F0: .4byte 0x0238EC60 + arm_func_end ov22_0238A2C0 + + arm_func_start ov22_0238A2F4 +ov22_0238A2F4: @ 0x0238A2F4 + push {r3, lr} + ldr r0, _0238A31C @ =0x0238EC60 + ldr r0, [r0, #4] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0238A31C @ =0x0238EC60 + mov r1, #0 + str r1, [r0, #4] + pop {r3, pc} + .align 2, 0 +_0238A31C: .4byte 0x0238EC60 + arm_func_end ov22_0238A2F4 + + arm_func_start ov22_0238A320 +ov22_0238A320: @ 0x0238A320 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x64 + mov r3, #0 + ldr r0, _0238A4C0 @ =0x0238EC60 + mov r2, r3 +_0238A334: + ldr r1, [r0, #4] + add r1, r1, r3 + add r3, r3, #1 + strb r2, [r1, #0x390] + cmp r3, #8 + blt _0238A334 + bl FUN_02010830 + mov sl, #0 + ldr r4, _0238A4C0 @ =0x0238EC60 + mov r8, #3 + ldr r1, [r4, #4] + mov r7, #1 + str r0, [r1, #0x9c] + mov r6, sl + mov r5, #0x6a + mov fp, sl + b _0238A488 +_0238A378: + and r0, sl, #0xff + bl FUN_02010898 + ldrsh r1, [r0] + strh r1, [sp, #4] + ldrh r1, [r0, #2] + add r0, sp, #0 + strh r1, [sp, #2] + strb r8, [sp] + str r7, [sp, #8] + strb r6, [sp, #0xc] + strh r5, [sp, #0xe] + strb r7, [sp, #0x10] + bl FUN_0200D160 + ldr r1, [r4, #4] + add r1, r1, sl, lsl #2 + str r0, [r1, #0x370] + bl FUN_0200ECFC + ldr r1, [r4, #4] + add r2, sp, #8 + add r1, r1, sl, lsl #2 + ldr r1, [r1, #0x370] + cmp r1, r0 + add r0, sp, #0x14 + add r1, sp, #0 + bgt _0238A40C + bl FUN_0200D670 + mov r0, #0x50 + mul sb, sl, r0 + ldr r0, [r4, #4] + add r1, sp, #0x14 + add r0, r0, #0xe8 + add r0, r0, sb + bl FUN_02089694 + ldr r0, [r4, #4] + add r0, r0, sl + strb fp, [r0, #0x368] + b _0238A464 +_0238A40C: + bl FUN_0200D65C + mov r0, #0x50 + mul sb, sl, r0 + ldr r0, [r4, #4] + ldr r1, _0238A4C4 @ =0x0238E82C + add r0, r0, #0xe8 + add r0, r0, sb + bl FUN_02089694 + ldr r0, [r4, #4] + add r1, sp, #0x14 + add r0, r0, #0xe8 + add r0, r0, sb + bl FUN_020897AC + ldr r0, [r4, #4] + ldr r1, _0238A4C8 @ =0x0238E834 + add r0, r0, #0xe8 + add r0, r0, sb + bl FUN_020897AC + ldr r0, [r4, #4] + add r1, r0, sl + mov r0, #0 + strb r0, [r1, #0x368] +_0238A464: + ldr r2, [r4, #4] + arm_func_end ov22_0238A320 + + arm_func_start ov22_0238A468 +ov22_0238A468: @ 0x0238A468 + add r0, r2, #0xe8 + add r1, r0, sb + add r0, r2, sl, lsl #3 + str r1, [r0, #0xa0] + ldr r0, [r4, #4] + add r0, r0, sl, lsl #3 + str sl, [r0, #0xa4] + add sl, sl, #1 +_0238A488: + ldr r1, [r4, #4] + ldr r0, [r1, #0x9c] + cmp sl, r0 + blt _0238A378 + mov r2, #0 + add r1, r1, sl, lsl #3 + ldr r0, _0238A4C0 @ =0x0238EC60 + str r2, [r1, #0xa0] + ldr r0, [r0, #4] + sub r1, r2, #1 + add r0, r0, sl, lsl #3 + str r1, [r0, #0xa4] + add sp, sp, #0x64 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0238A4C0: .4byte 0x0238EC60 +_0238A4C4: .4byte 0x0238E82C +_0238A4C8: .4byte 0x0238E834 + arm_func_end ov22_0238A468 + + arm_func_start ov22_0238A4CC +ov22_0238A4CC: @ 0x0238A4CC + ldr r1, _0238A504 @ =0x0238EC60 + mov r0, #0 + ldr r3, [r1, #4] + mov r2, r0 + ldr ip, [r3, #0x9c] + b _0238A4F8 +_0238A4E4: + add r1, r3, r2 + ldrb r1, [r1, #0x390] + add r2, r2, #1 + cmp r1, #0 + addne r0, r0, #1 +_0238A4F8: + cmp r2, ip + blt _0238A4E4 + bx lr + .align 2, 0 +_0238A504: .4byte 0x0238EC60 + arm_func_end ov22_0238A4CC + + arm_func_start ov22_0238A508 +ov22_0238A508: @ 0x0238A508 + ldr r1, _0238A540 @ =0x0238EC60 + mov r0, #0 + ldr r2, [r1, #4] + ldr r3, [r2, #0x9c] + b _0238A530 +_0238A51C: + add r1, r2, r0 + ldrb r1, [r1, #0x390] + cmp r1, #0 + bxne lr + add r0, r0, #1 +_0238A530: + cmp r0, r3 + blt _0238A51C + mvn r0, #0 + bx lr + .align 2, 0 +_0238A540: .4byte 0x0238EC60 + arm_func_end ov22_0238A508 + + arm_func_start ov22_0238A544 +ov22_0238A544: @ 0x0238A544 + ldr r1, _0238A584 @ =0x0238EC60 + mov r0, #0 + ldr r3, [r1, #4] + mov r2, r0 + ldr ip, [r3, #0x9c] + b _0238A578 +_0238A55C: + add r1, r3, r2 + ldrb r1, [r1, #0x390] + cmp r1, #0 + addne r1, r3, r2, lsl #2 + ldrne r1, [r1, #0x370] + add r2, r2, #1 + addne r0, r0, r1 +_0238A578: + cmp r2, ip + blt _0238A55C + bx lr + .align 2, 0 +_0238A584: .4byte 0x0238EC60 + arm_func_end ov22_0238A544 + + arm_func_start ov22_0238A588 +ov22_0238A588: @ 0x0238A588 + push {r4, lr} + mov r4, r0 + and r0, r4, #0xff + bl FUN_02010898 + bl FUN_0200F84C + and r0, r4, #0xff + bl FUN_0201086C + ldr r0, _0238A5C8 @ =0x0238EC60 + ldr r0, [r0, #4] + add r0, r0, r4, lsl #2 + ldr r0, [r0, #0x370] + rsb r0, r0, #0 + bl FUN_0200ED58 + bl FUN_020108B4 + bl ov22_0238A320 + pop {r4, pc} + .align 2, 0 +_0238A5C8: .4byte 0x0238EC60 + arm_func_end ov22_0238A588 + + arm_func_start ov22_0238A5CC +ov22_0238A5CC: @ 0x0238A5CC + push {r4, r5, r6, lr} + mov r4, #0 + mov r5, r4 + ldr r6, _0238A63C @ =0x0238EC60 + b _0238A618 +_0238A5E0: + add r0, r1, r5 + ldrb r0, [r0, #0x390] + cmp r0, #0 + beq _0238A614 + and r0, r5, #0xff + bl FUN_02010898 + bl FUN_0200F84C + ldr r1, [r6, #4] + and r0, r5, #0xff + add r1, r1, r5, lsl #2 + ldr r1, [r1, #0x370] + add r4, r4, r1 + bl FUN_0201086C +_0238A614: + add r5, r5, #1 +_0238A618: + ldr r1, [r6, #4] + ldr r0, [r1, #0x9c] + cmp r5, r0 + blt _0238A5E0 + rsb r0, r4, #0 + bl FUN_0200ED58 + bl FUN_020108B4 + bl ov22_0238A320 + pop {r4, r5, r6, pc} + .align 2, 0 +_0238A63C: .4byte 0x0238EC60 + arm_func_end ov22_0238A5CC +_0238A640: + .byte 0x30, 0x00, 0x9F, 0xE5, 0x04, 0x00, 0x90, 0xE5, 0x01, 0x00, 0x80, 0xE0, 0x90, 0x03, 0xD0, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x82, 0xE5 + .byte 0x10, 0x20, 0x9F, 0xE5, 0x50, 0x00, 0xA0, 0xE3, 0x04, 0x20, 0x92, 0xE5, 0xE8, 0x20, 0x82, 0xE2 + .byte 0x91, 0x20, 0x20, 0xE0, 0x1E, 0xFF, 0x2F, 0xE1, 0x60, 0xEC, 0x38, 0x02 + + arm_func_start ov22_0238A67C +ov22_0238A67C: @ 0x0238A67C + push {r3, r4, r5, r6, r7, lr} + tst r0, #0x400 + mov r4, #0 + beq _0238A730 + ldr r0, _0238A770 @ =0x0238EC60 + ldr r0, [r0, #4] + ldrsb r0, [r0, #0x98] + bl FUN_0202C748 + ldr r1, _0238A770 @ =0x0238EC60 + mov r5, r0 + ldr r0, [r1, #4] + add r2, r0, #0x390 + ldrb r0, [r2, r5] + cmp r0, #0 + beq _0238A6D0 + mov r1, r4 + mov r0, #6 + strb r1, [r2, r5] + bl FUN_02017CCC + mov r4, #1 + b _0238A730 +_0238A6D0: + bl FUN_0200ED84 + mov r7, r0 + bl ov22_0238A4CC + mov r6, r0 + bl FUN_0200EDFC + add r0, r6, r0 + cmp r0, r7 + blt _0238A6F8 + cmp r6, #0 + bne _0238A728 +_0238A6F8: + ldr r0, _0238A770 @ =0x0238EC60 + ldr r0, [r0, #4] + add r2, r0, r5 + ldrb r0, [r2, #0x368] + cmp r0, #0 + bne _0238A728 + mov r1, #1 + mov r0, #6 + strb r1, [r2, #0x390] + bl FUN_02017CCC + mov r4, #1 + b _0238A730 +_0238A728: + mov r0, #2 + bl FUN_02017CCC +_0238A730: + bl ov22_0238A4CC + cmp r0, #0 + ble _0238A754 + ldr r0, _0238A770 @ =0x0238EC60 + mov r1, #1 + ldr r0, [r0, #4] + ldrsb r0, [r0, #0x98] + bl FUN_0202D16C + b _0238A768 +_0238A754: + ldr r0, _0238A770 @ =0x0238EC60 + mov r1, #0 + ldr r0, [r0, #4] + ldrsb r0, [r0, #0x98] + bl FUN_0202D16C +_0238A768: + mov r0, r4 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0238A770: .4byte 0x0238EC60 + arm_func_end ov22_0238A67C +_0238A774: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xFF, 0x00, 0x00, 0xE2, 0x45, 0x18, 0xF2, 0xEB + .byte 0xF0, 0x00, 0xD0, 0xE1, 0x49, 0xE7, 0xF2, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov22_0238A78C +ov22_0238A78C: @ 0x0238A78C + push {r3, lr} + bl ov22_0238A96C + bl ov22_0238A79C + pop {r3, pc} + arm_func_end ov22_0238A78C + + arm_func_start ov22_0238A79C +ov22_0238A79C: @ 0x0238A79C + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr r0, _0238A85C @ =0x0238EC68 + ldr r2, _0238A860 @ =0x0000032E + ldr r1, [r0, #4] + mov r3, #0x10 + strh r2, [r1, #8] + ldr r1, [r0, #4] + mov r2, #0xd + str r3, [r1, #0xc] + ldr r1, [r0, #4] + mov r0, #0x13 + str r2, [r1, #4] + bl FUN_02029EC8 + ldr r2, _0238A85C @ =0x0238EC68 + ldr r1, _0238A864 @ =ov22_0238ACC8 + ldr ip, [r2, #4] + mov r3, #8 + str r0, [ip] + str r1, [sp] + ldr r1, [r2, #4] + ldr r0, _0238A868 @ =0x0238E83C + ldr ip, [r1, #0x9c] + ldr r1, _0238A86C @ =0x00401C33 + str ip, [sp, #4] + str r3, [sp, #8] + ldr r2, [r2, #4] + ldr r3, _0238A870 @ =0x0238AC8C + bl FUN_0202C3A8 + ldr r2, _0238A85C @ =0x0238EC68 + mov r1, #0x76 + ldr r3, [r2, #4] + strb r0, [r3, #0x98] + ldr r0, [r2, #4] + ldrsb r0, [r0, #0x98] + bl FUN_0202C5F4 + ldr r0, _0238A85C @ =0x0238EC68 + ldr r1, _0238A874 @ =0x0238ADC0 + ldr r0, [r0, #4] + ldrsb r0, [r0, #0x98] + bl FUN_0202C7D0 + mov r0, #0 + bl FUN_0204440C + ldr r0, _0238A85C @ =0x0238EC68 + ldr r0, [r0, #4] + ldrsb r0, [r0, #0x98] + add sp, sp, #0xc + ldm sp!, {pc} + .align 2, 0 +_0238A85C: .4byte 0x0238EC68 +_0238A860: .4byte 0x0000032E +_0238A864: .4byte ov22_0238ACC8 +_0238A868: .4byte 0x0238E83C +_0238A86C: .4byte 0x00401C33 +_0238A870: .4byte 0x0238AC8C +_0238A874: .4byte 0x0238ADC0 + arm_func_end ov22_0238A79C + + arm_func_start ov22_0238A878 +ov22_0238A878: @ 0x0238A878 + bx lr + arm_func_end ov22_0238A878 + + arm_func_start ov22_0238A87C +ov22_0238A87C: @ 0x0238A87C + push {r3, lr} + ldr r0, _0238A8F4 @ =0x0238EC68 + ldr r0, [r0, #4] + cmp r0, #0 + moveq r0, #0 + popeq {r3, pc} + ldrsb r0, [r0, #0x98] + bl FUN_0202C728 + cmp r0, #0 + bne _0238A8D0 + ldr r0, _0238A8F4 @ =0x0238EC68 + ldr r0, [r0, #4] + ldrsb r0, [r0, #0x98] + bl FUN_0202C75C + mvn r1, #0 + cmp r0, r1 + ldrne r1, _0238A8F4 @ =0x0238EC68 + moveq r0, #2 + strhne r0, [r1] + movne r0, #3 + pop {r3, pc} +_0238A8D0: + ldr r0, _0238A8F4 @ =0x0238EC68 + ldr r0, [r0, #4] + ldrsb r0, [r0, #0x98] + bl FUN_0202C748 + and r1, r0, #0xff + mov r0, #0x13 + bl FUN_02029ED8 + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0238A8F4: .4byte 0x0238EC68 + arm_func_end ov22_0238A87C + + arm_func_start ov22_0238A8F8 +ov22_0238A8F8: @ 0x0238A8F8 + ldr r0, _0238A908 @ =0x0238EC68 + ldrsh r0, [r0] + and r0, r0, #0xff + bx lr + .align 2, 0 +_0238A908: .4byte 0x0238EC68 + arm_func_end ov22_0238A8F8 + + arm_func_start ov22_0238A90C +ov22_0238A90C: @ 0x0238A90C + push {r3, lr} + mov r0, #0x234 + mov r1, #8 + bl FUN_02001170 + ldr r1, _0238A93C @ =0x0238EC68 + str r0, [r1, #4] + bl ov22_0238A96C + ldr r0, _0238A93C @ =0x0238EC68 + mvn r1, #1 + ldr r0, [r0, #4] + strb r1, [r0, #0x98] + pop {r3, pc} + .align 2, 0 +_0238A93C: .4byte 0x0238EC68 + arm_func_end ov22_0238A90C + + arm_func_start ov22_0238A940 +ov22_0238A940: @ 0x0238A940 + push {r3, lr} + ldr r0, _0238A968 @ =0x0238EC68 + ldr r0, [r0, #4] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0238A968 @ =0x0238EC68 + mov r1, #0 + str r1, [r0, #4] + pop {r3, pc} + .align 2, 0 +_0238A968: .4byte 0x0238EC68 + arm_func_end ov22_0238A940 + + arm_func_start ov22_0238A96C +ov22_0238A96C: @ 0x0238A96C + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x64 + mov r3, #0 + ldr r0, _0238AB0C @ =0x0238EC68 + mov r2, r3 +_0238A980: + ldr r1, [r0, #4] + add r1, r1, r3 + add r3, r3, #1 + strb r2, [r1, #0x230] + cmp r3, #4 + blt _0238A980 + bl FUN_02010B3C + mov sl, #0 + ldr r4, _0238AB0C @ =0x0238EC68 + mov r8, #3 + ldr r1, [r4, #4] + mov r7, #1 + str r0, [r1, #0x9c] + mov r6, sl + mov r5, #0x6a + mov fp, sl + b _0238AAD4 +_0238A9C4: + and r0, sl, #0xff + bl FUN_02010BA4 + ldrsh r1, [r0] + strh r1, [sp, #4] + ldrh r1, [r0, #2] + add r0, sp, #0 + strh r1, [sp, #2] + strb r8, [sp] + str r7, [sp, #8] + strb r6, [sp, #0xc] + strh r5, [sp, #0xe] + strb r7, [sp, #0x10] + bl FUN_0200D160 + ldr r1, [r4, #4] + add r1, r1, sl, lsl #2 + str r0, [r1, #0x210] + bl FUN_0200ECFC + ldr r1, [r4, #4] + add r2, sp, #8 + add r1, r1, sl, lsl #2 + ldr r1, [r1, #0x210] + cmp r1, r0 + add r0, sp, #0x14 + add r1, sp, #0 + bgt _0238AA58 + bl FUN_0200D670 + mov r0, #0x50 + mul sb, sl, r0 + ldr r0, [r4, #4] + add r1, sp, #0x14 + add r0, r0, #0xc8 + add r0, r0, sb + bl FUN_02089694 + ldr r0, [r4, #4] + add r0, r0, sl + strb fp, [r0, #0x208] + b _0238AAB0 +_0238AA58: + bl FUN_0200D65C + mov r0, #0x50 + mul sb, sl, r0 + ldr r0, [r4, #4] + ldr r1, _0238AB10 @ =0x0238E84C + add r0, r0, #0xc8 + add r0, r0, sb + bl FUN_02089694 + ldr r0, [r4, #4] + add r1, sp, #0x14 + add r0, r0, #0xc8 + add r0, r0, sb + bl FUN_020897AC + ldr r0, [r4, #4] + ldr r1, _0238AB14 @ =0x0238E854 + add r0, r0, #0xc8 + add r0, r0, sb + bl FUN_020897AC + ldr r0, [r4, #4] + add r1, r0, sl + mov r0, #0 + strb r0, [r1, #0x208] +_0238AAB0: + ldr r2, [r4, #4] + add r0, r2, #0xc8 + add r1, r0, sb + add r0, r2, sl, lsl #3 + str r1, [r0, #0xa0] + ldr r0, [r4, #4] + add r0, r0, sl, lsl #3 + str sl, [r0, #0xa4] + add sl, sl, #1 +_0238AAD4: + ldr r1, [r4, #4] + ldr r0, [r1, #0x9c] + cmp sl, r0 + blt _0238A9C4 + mov r2, #0 + add r1, r1, sl, lsl #3 + ldr r0, _0238AB0C @ =0x0238EC68 + str r2, [r1, #0xa0] + ldr r0, [r0, #4] + sub r1, r2, #1 + add r0, r0, sl, lsl #3 + str r1, [r0, #0xa4] + add sp, sp, #0x64 + pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0238AB0C: .4byte 0x0238EC68 +_0238AB10: .4byte 0x0238E84C +_0238AB14: .4byte 0x0238E854 + arm_func_end ov22_0238A96C + + arm_func_start ov22_0238AB18 +ov22_0238AB18: @ 0x0238AB18 + ldr r1, _0238AB50 @ =0x0238EC68 + mov r0, #0 + ldr r3, [r1, #4] + mov r2, r0 + ldr ip, [r3, #0x9c] + b _0238AB44 +_0238AB30: + add r1, r3, r2 + ldrb r1, [r1, #0x230] + add r2, r2, #1 + cmp r1, #0 + addne r0, r0, #1 +_0238AB44: + cmp r2, ip + blt _0238AB30 + bx lr + .align 2, 0 +_0238AB50: .4byte 0x0238EC68 + arm_func_end ov22_0238AB18 + + arm_func_start ov22_0238AB54 +ov22_0238AB54: @ 0x0238AB54 + ldr r1, _0238AB8C @ =0x0238EC68 + mov r0, #0 + ldr r2, [r1, #4] + ldr r3, [r2, #0x9c] + b _0238AB7C +_0238AB68: + add r1, r2, r0 + ldrb r1, [r1, #0x230] + cmp r1, #0 + bxne lr + add r0, r0, #1 +_0238AB7C: + cmp r0, r3 + blt _0238AB68 + mvn r0, #0 + bx lr + .align 2, 0 +_0238AB8C: .4byte 0x0238EC68 + arm_func_end ov22_0238AB54 + + arm_func_start ov22_0238AB90 +ov22_0238AB90: @ 0x0238AB90 + ldr r1, _0238ABD0 @ =0x0238EC68 + mov r0, #0 + ldr r3, [r1, #4] + mov r2, r0 + ldr ip, [r3, #0x9c] + b _0238ABC4 +_0238ABA8: + add r1, r3, r2 + ldrb r1, [r1, #0x230] + cmp r1, #0 + addne r1, r3, r2, lsl #2 + ldrne r1, [r1, #0x210] + add r2, r2, #1 + addne r0, r0, r1 +_0238ABC4: + cmp r2, ip + blt _0238ABA8 + bx lr + .align 2, 0 +_0238ABD0: .4byte 0x0238EC68 + arm_func_end ov22_0238AB90 + + arm_func_start ov22_0238ABD4 +ov22_0238ABD4: @ 0x0238ABD4 + push {r4, lr} + mov r4, r0 + and r0, r4, #0xff + bl FUN_02010BA4 + bl FUN_0200F84C + and r0, r4, #0xff + bl FUN_02010B78 + ldr r0, _0238AC14 @ =0x0238EC68 + ldr r0, [r0, #4] + add r0, r0, r4, lsl #2 + ldr r0, [r0, #0x210] + rsb r0, r0, #0 + bl FUN_0200ED58 + bl FUN_02010BC0 + bl ov22_0238A96C + pop {r4, pc} + .align 2, 0 +_0238AC14: .4byte 0x0238EC68 + arm_func_end ov22_0238ABD4 + + arm_func_start ov22_0238AC18 +ov22_0238AC18: @ 0x0238AC18 + push {r4, r5, r6, lr} + mov r4, #0 + mov r5, r4 + ldr r6, _0238AC88 @ =0x0238EC68 + b _0238AC64 +_0238AC2C: + add r0, r1, r5 + ldrb r0, [r0, #0x230] + cmp r0, #0 + beq _0238AC60 + and r0, r5, #0xff + bl FUN_02010BA4 + bl FUN_0200F84C + ldr r1, [r6, #4] + and r0, r5, #0xff + add r1, r1, r5, lsl #2 + ldr r1, [r1, #0x210] + add r4, r4, r1 + bl FUN_02010B78 +_0238AC60: + add r5, r5, #1 +_0238AC64: + ldr r1, [r6, #4] + ldr r0, [r1, #0x9c] + cmp r5, r0 + blt _0238AC2C + rsb r0, r4, #0 + bl FUN_0200ED58 + bl FUN_02010BC0 + bl ov22_0238A96C + pop {r4, r5, r6, pc} + .align 2, 0 +_0238AC88: .4byte 0x0238EC68 + arm_func_end ov22_0238AC18 +_0238AC8C: + .byte 0x30, 0x00, 0x9F, 0xE5 + .byte 0x04, 0x00, 0x90, 0xE5, 0x01, 0x00, 0x80, 0xE0, 0x30, 0x02, 0xD0, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x01, 0x00, 0xA0, 0x13, 0x00, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x82, 0xE5, 0x10, 0x20, 0x9F, 0xE5 + .byte 0x50, 0x00, 0xA0, 0xE3, 0x04, 0x20, 0x92, 0xE5, 0xC8, 0x20, 0x82, 0xE2, 0x91, 0x20, 0x20, 0xE0 + .byte 0x1E, 0xFF, 0x2F, 0xE1, 0x68, 0xEC, 0x38, 0x02 + + arm_func_start ov22_0238ACC8 +ov22_0238ACC8: @ 0x0238ACC8 + push {r3, r4, r5, r6, r7, lr} + tst r0, #0x400 + mov r4, #0 + beq _0238AD7C + ldr r0, _0238ADBC @ =0x0238EC68 + ldr r0, [r0, #4] + ldrsb r0, [r0, #0x98] + bl FUN_0202C748 + ldr r1, _0238ADBC @ =0x0238EC68 + mov r5, r0 + ldr r0, [r1, #4] + add r2, r0, #0x230 + ldrb r0, [r2, r5] + cmp r0, #0 + beq _0238AD1C + mov r1, r4 + mov r0, #6 + strb r1, [r2, r5] + bl FUN_02017CCC + mov r4, #1 + b _0238AD7C +_0238AD1C: + bl FUN_0200ED84 + mov r7, r0 + bl ov22_0238AB18 + mov r6, r0 + bl FUN_0200EDFC + add r0, r6, r0 + cmp r0, r7 + blt _0238AD44 + cmp r6, #0 + bne _0238AD74 +_0238AD44: + ldr r0, _0238ADBC @ =0x0238EC68 + ldr r0, [r0, #4] + add r2, r0, r5 + ldrb r0, [r2, #0x208] + cmp r0, #0 + bne _0238AD74 + mov r1, #1 + mov r0, #6 + strb r1, [r2, #0x230] + bl FUN_02017CCC + mov r4, #1 + b _0238AD7C +_0238AD74: + mov r0, #2 + bl FUN_02017CCC +_0238AD7C: + bl ov22_0238AB18 + cmp r0, #0 + ble _0238ADA0 + ldr r0, _0238ADBC @ =0x0238EC68 + mov r1, #1 + ldr r0, [r0, #4] + ldrsb r0, [r0, #0x98] + bl FUN_0202D16C + b _0238ADB4 +_0238ADA0: + ldr r0, _0238ADBC @ =0x0238EC68 + mov r1, #0 + ldr r0, [r0, #4] + ldrsb r0, [r0, #0x98] + bl FUN_0202D16C +_0238ADB4: + mov r0, r4 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0238ADBC: .4byte 0x0238EC68 + arm_func_end ov22_0238ACC8 +_0238ADC0: + .byte 0x08, 0x40, 0x2D, 0xE9, 0xFF, 0x00, 0x00, 0xE2, 0x75, 0x17, 0xF2, 0xEB, 0xF0, 0x00, 0xD0, 0xE1 + .byte 0xB6, 0xE5, 0xF2, 0xEB, 0x08, 0x80, 0xBD, 0xE8 + + arm_func_start ov22_0238ADD8 +ov22_0238ADD8: @ 0x0238ADD8 + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0xac + ldr r1, _0238BD60 @ =0x0238EC70 + ldr r2, [r1] + str r0, [r2, #0x10] + ldr r2, [r1] + ldr r0, [r2, #0x10] + cmp r0, #0x30 + addls pc, pc, r0, lsl #2 + arm_func_end ov22_0238ADD8 + + arm_func_start ov22_0238ADFC +ov22_0238ADFC: @ 0x0238ADFC + b _0238C16C +_0238AE00: @ jump table + b _0238AEC4 @ case 0 + b _0238AF18 @ case 1 + b _0238AFB0 @ case 2 + b _0238B000 @ case 3 + b _0238B3C4 @ case 4 + b _0238B050 @ case 5 + b _0238B0A0 @ case 6 + b _0238B0F0 @ case 7 + b _0238B13C @ case 8 + b _0238B188 @ case 9 + b _0238B1D4 @ case 10 + b _0238B220 @ case 11 + b _0238B26C @ case 12 + b _0238B2BC @ case 13 + b _0238B30C @ case 14 + b _0238B374 @ case 15 + b _0238B3E0 @ case 16 + b _0238B43C @ case 17 + b _0238B748 @ case 18 + b _0238B498 @ case 19 + b _0238B510 @ case 20 + b _0238B594 @ case 21 + b _0238B680 @ case 22 + b _0238B5DC @ case 23 + b _0238BA48 @ case 24 + b _0238BC40 @ case 25 + b _0238C038 @ case 26 + b _0238C0A0 @ case 27 + b _0238B7D8 @ case 28 + b _0238B834 @ case 29 + b _0238BB58 @ case 30 + b _0238B890 @ case 31 + b _0238B8F0 @ case 32 + b _0238B958 @ case 33 + b _0238BA7C @ case 34 + b _0238B98C @ case 35 + b _0238BA14 @ case 36 + b _0238BEA4 @ case 37 + b _0238C06C @ case 38 + b _0238C110 @ case 39 + b _0238BBD8 @ case 40 + b _0238BFB4 @ case 41 + b _0238BFE8 @ case 42 + b _0238C16C @ case 43 + b _0238AF70 @ case 44 + b _0238C16C @ case 45 + b _0238C16C @ case 46 + b _0238C16C @ case 47 + b _0238AFA4 @ case 48 +_0238AEC4: + ldr r0, _0238BD64 @ =0x0238E9D0 + bl FUN_0200C1FC + ldr r0, _0238BD60 @ =0x0238EC70 + mov r1, #1 + ldr r0, [r0] + strb r1, [r0, #9] + bl FUN_02042AF8 + bl ov22_0238D554 + mov r0, #0 + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238BD68 @ =0x00003008 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BD6C @ =0x0238E8F0 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238C16C +_0238AF18: + ldr r0, _0238BD70 @ =0x0238E9D8 + bl FUN_0200C1FC + bl FUN_02042AF8 + bl ov22_0238E7E4 + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r1, _0238BD74 @ =0x0000017F + ldr r0, [r0] + str r1, [r0, #0x50] + bl ov22_0238D554 + mov r0, #0 + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238BD68 @ =0x00003008 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BD78 @ =0x0238E8F2 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238C16C +_0238AF70: + ldr r0, _0238BD7C @ =0x0238E9E4 + bl FUN_0200C1FC + mov r4, #5 + ldr r0, _0238BD80 @ =0x0238E980 + ldr r1, _0238BD84 @ =0x00300013 + ldr r3, _0238BD88 @ =0x0238E8C0 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238BD60 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4c] + b _0238C16C +_0238AFA4: + mov r0, #0 + str r0, [r2, #0xc] + b _0238C16C +_0238AFB0: + ldr r0, _0238BD8C @ =0x0238E9F4 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #1 + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238BD90 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BD94 @ =0x0238E91E + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238C16C +_0238B000: + ldr r0, _0238BD98 @ =0x0238EA04 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #4 + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238BD90 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BD9C @ =0x0238E8F4 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238C16C +_0238B050: + ldr r0, _0238BDA0 @ =0x0238EA10 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #1 + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238BD90 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BDA4 @ =0x0238E90A + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238C16C +_0238B0A0: + ldr r0, _0238BDA8 @ =0x0238EA1C + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x11 + ldr r1, [r0] + mov r0, #1 + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238BD90 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BDAC @ =0x0238E90C + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238C16C +_0238B0F0: + ldr r0, _0238BDB0 @ =0x0238EA28 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r1, _0238BD60 @ =0x0238EC70 + mov r0, #1 + ldr r1, [r1] + str r0, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238BD90 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BDB4 @ =0x0238E90E + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238C16C +_0238B13C: + ldr r0, _0238BDB8 @ =0x0238EA34 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r1, _0238BD60 @ =0x0238EC70 + mov r0, #1 + ldr r1, [r1] + str r0, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238BD90 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BDBC @ =0x0238E91C + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238C16C +_0238B188: + ldr r0, _0238BDC0 @ =0x0238EA40 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r1, _0238BD60 @ =0x0238EC70 + mov r0, #1 + ldr r1, [r1] + str r0, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238BD90 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BDC4 @ =0x0238E910 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238C16C +_0238B1D4: + ldr r0, _0238BDC8 @ =0x0238EA4C + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r1, _0238BD60 @ =0x0238EC70 + mov r0, #1 + ldr r1, [r1] + str r0, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238BD90 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BDCC @ =0x0238E912 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238C16C +_0238B220: + ldr r0, _0238BDD0 @ =0x0238EA58 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r1, _0238BD60 @ =0x0238EC70 + mov r0, #1 + ldr r1, [r1] + str r0, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238BD90 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BDD4 @ =0x0238E914 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238C16C +_0238B26C: + ldr r0, _0238BDD8 @ =0x0238EA64 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #1 + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238BD90 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BDDC @ =0x0238E916 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238C16C +_0238B2BC: + ldr r0, _0238BDE0 @ =0x0238EA70 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x11 + ldr r1, [r0] + mov r0, #1 + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238BD90 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BDE4 @ =0x0238E918 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238C16C +_0238B30C: + ldr r0, _0238BDE8 @ =0x0238EA7C + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r1, _0238BD60 @ =0x0238EC70 + mov r2, #0x1d + ldr r4, [r1] + mov r0, #1 + ldrsh r3, [r4, #0x30] + str r3, [r4, #0x64] + ldr r4, [r1] + ldrh r3, [r4, #0x2e] + str r3, [r4, #0x78] + ldr r1, [r1] + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238BD90 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BDEC @ =0x0238E91A + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238C16C +_0238B374: + ldr r0, _0238BDF0 @ =0x0238EA88 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x1d + ldr r1, [r0] + mov r0, #1 + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238BD90 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BDBC @ =0x0238E91C + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238C16C +_0238B3C4: + ldrb r0, [r2, #8] + cmp r0, #0 + beq _0238B3D8 + bl ov22_0238A22C + b _0238C16C +_0238B3D8: + bl ov22_0238A878 + b _0238C16C +_0238B3E0: + ldr r0, _0238BDF4 @ =0x0238EA94 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r3, #0x13 + ldr r1, [r0] + mov r2, #0x2e + str r3, [r1, #0x14] + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x10] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238BD90 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BDF8 @ =0x0238E8F6 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238C16C +_0238B43C: + ldr r0, _0238BDFC @ =0x0238EAA8 + bl FUN_0200C1FC + ldr r0, _0238BD60 @ =0x0238EC70 + mov r3, #0x14 + ldr r1, [r0] + mov r2, #0x2e + str r3, [r1, #0x14] + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x10] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r1, #0x30 + ldr r4, [r0] + ldr r2, _0238BE00 @ =0x0238E8F8 + ldr r3, [r4] + ldrsb r0, [r4, #0x48] + mul r1, r3, r1 + ldrh r2, [r2, r1] + ldr r1, _0238BD90 @ =0x00003018 + add r3, r4, #0x50 + bl FUN_0202F1B4 + b _0238C16C +_0238B498: + ldr r0, _0238BE04 @ =0x0238EAB8 + bl FUN_0200C1FC + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x48] + bl FUN_0202F3A4 + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x48] + bl FUN_0202F2C4 + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x49] + bl FUN_0202F6DC + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + beq _0238B4EC + bl ov22_0238A140 + b _0238B4F0 +_0238B4EC: + bl ov22_0238A78C +_0238B4F0: + ldr r1, _0238BD60 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4a] + mov r0, #0 + bl FUN_0204426C + mov r0, #0 + bl FUN_02044568 + b _0238C16C +_0238B510: + ldr r0, _0238BE08 @ =0x0238EAC8 + bl FUN_0200C1FC + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r2, _0238BD74 @ =0x0000017F + ldr r1, [r0] + str r2, [r1, #0x9c] + ldr r0, [r0] + ldrsb r0, [r0, #0x48] + bl FUN_0202F3A4 + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x48] + bl FUN_0202F2C4 + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x49] + bl FUN_0202F6DC + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + beq _0238B570 + bl ov22_0238A150 + b _0238B574 +_0238B570: + bl ov22_0238A79C +_0238B574: + ldr r1, _0238BD60 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4a] + mov r0, #0 + bl FUN_0204426C + mov r0, #0 + bl FUN_02044568 + b _0238C16C +_0238B594: + ldr r0, _0238BE0C @ =0x0238EAD8 + bl FUN_0200C1FC + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r3, _0238BE10 @ =0x0238E8A0 + ldr r0, [r0] + mov r4, #3 + ldrb r0, [r0, #8] + mov r1, #0x13 + mov r2, #0 + cmp r0, #0 + ldrne r0, _0238BE14 @ =0x0238E990 + str r4, [sp] + ldreq r0, _0238BE18 @ =0x0238E9C0 + bl FUN_0202B0EC + ldr r1, _0238BD60 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4c] + b _0238C16C +_0238B5DC: + ldr r0, _0238BE1C @ =0x0238EAE8 + bl FUN_0200C1FC + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r2, _0238BE20 @ =0x0238E85C + ldr r1, [r0] + add r0, r1, #0xe0 + add r1, r1, #0x2c + bl FUN_0200D670 + ldr r1, _0238BD60 @ =0x0238EC70 + mov r0, #0 + ldr r3, [r1] + add r2, r3, #0xe0 + str r2, [r3, #0x88] + ldr r3, [r1] + ldrsh r2, [r3, #0x30] + str r2, [r3, #0x64] + ldr r3, [r1] + ldrh r2, [r3, #0x2e] + str r2, [r3, #0x78] + ldr r2, [r1] + ldr r1, [r2, #0x1c] + str r1, [r2, #0x74] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238BD68 @ =0x00003008 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BE24 @ =0x0238E8FA + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r3, #0x2f + ldr r2, [r0] + mov r1, #0x18 + str r3, [r2, #0x10] + ldr r0, [r0] + str r1, [r0, #0x14] + b _0238C16C +_0238B680: + ldrsh r1, [r2, #0x30] + ldrh r2, [r2, #0x2e] + ldr r0, _0238BE28 @ =0x0238EAF8 + bl FUN_0200C1FC + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r0, [r0] + add r0, r0, #0x50 + bl FUN_02023690 + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r2, _0238BE2C @ =0x0238EB14 + ldr r5, [r0] + ldr r3, _0238BE30 @ =0x0000C402 + ldrh r4, [r5, #0x2e] + mov r1, #0x400 + str r4, [r5, #0x50] + ldr r5, [r0] + ldrsh r4, [r5, #0x30] + str r4, [r5, #0x60] + ldr r5, [r0] + ldrh r4, [r5, #0x2e] + str r4, [r5, #0x74] + ldr r0, [r0] + add r4, r0, #0x50 + add r0, r0, #0xa0 + str r4, [sp] + bl FUN_020223F0 + add r0, sp, #0xc + bl FUN_02023690 + ldr r0, _0238BD60 @ =0x0238EC70 + add r1, sp, #0xc + ldr r3, [r0] + ldr r0, _0238BE34 @ =0x0238E9B0 + add r2, r3, #0xa0 + str r2, [sp, #0x44] + str r1, [sp] + ldrsh r2, [r3, #0x30] + add r3, r3, #0x50 + ldr r1, _0238BE38 @ =0x00001013 + add r2, r2, #0xd1 + add r2, r2, #0x2900 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + stmib sp, {r2, r3} + ldr r3, _0238BE3C @ =0x0000033E + mov r2, #0 + bl FUN_0202E3CC + ldr r1, _0238BD60 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4d] + b _0238C16C +_0238B748: + ldr r0, _0238BE40 @ =0x0238EB20 + bl FUN_0200C1FC + bl ov22_0238D528 + cmp r0, #0 + bne _0238B790 + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + beq _0238B778 + bl ov22_0238A22C + b _0238B77C +_0238B778: + bl ov22_0238A878 +_0238B77C: + ldr r0, _0238BD60 @ =0x0238EC70 + mov r1, #0xc + ldr r0, [r0] + str r1, [r0, #0x14] + b _0238B7A0 +_0238B790: + ldr r0, _0238BD60 @ =0x0238EC70 + mov r1, #0x11 + ldr r0, [r0] + str r1, [r0, #0x14] +_0238B7A0: + mov r0, #0 + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r1, #0x30 + ldr r4, [r0] + ldr r2, _0238BE44 @ =0x0238E8FE + ldr r3, [r4] + ldrsb r0, [r4, #0x48] + mul r1, r3, r1 + ldrh r2, [r2, r1] + ldr r1, _0238BD90 @ =0x00003018 + add r3, r4, #0x50 + bl FUN_0202F1B4 + b _0238C16C +_0238B7D8: + ldr r0, _0238BE48 @ =0x0238EB30 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r3, #0x1f + ldr r1, [r0] + mov r2, #0x2e + str r3, [r1, #0x14] + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x10] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238BD90 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BE4C @ =0x0238E900 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238C16C +_0238B834: + ldr r0, _0238BE50 @ =0x0238EB40 + bl FUN_0200C1FC + ldr r0, _0238BD60 @ =0x0238EC70 + mov r3, #0x20 + ldr r1, [r0] + mov r2, #0x2e + str r3, [r1, #0x14] + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x10] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r1, #0x30 + ldr r4, [r0] + ldr r2, _0238BE54 @ =0x0238E902 + ldr r3, [r4] + ldrsb r0, [r4, #0x48] + mul r1, r3, r1 + ldrh r2, [r2, r1] + ldr r1, _0238BD90 @ =0x00003018 + add r3, r4, #0x50 + bl FUN_0202F1B4 + b _0238C16C +_0238B890: + ldr r0, _0238BE58 @ =0x0238EB50 + bl FUN_0200C1FC + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x48] + bl FUN_0202F3A4 + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x48] + bl FUN_0202F2C4 + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x49] + bl FUN_0202F6DC + bl FUN_02042730 + mov r0, #4 + mov r1, #0 + mov r2, #8 + mov r3, #1 + bl FUN_02042258 + ldr r1, _0238BD60 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4b] + b _0238C16C +_0238B8F0: + ldr r0, _0238BE5C @ =0x0238EB60 + bl FUN_0200C1FC + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r2, _0238BD74 @ =0x0000017F + ldr r1, [r0] + str r2, [r1, #0x9c] + ldr r0, [r0] + ldrsb r0, [r0, #0x48] + bl FUN_0202F3A4 + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x48] + bl FUN_0202F2C4 + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x49] + bl FUN_0202F6DC + mov r0, #4 + mov r1, #0 + mov r2, #8 + mov r3, #1 + bl FUN_02042258 + ldr r1, _0238BD60 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4b] + b _0238C16C +_0238B958: + ldr r0, _0238BE60 @ =0x0238EB70 + bl FUN_0200C1FC + mov r4, #3 + ldr r0, _0238BE14 @ =0x0238E990 + ldr r3, _0238BE64 @ =0x0238E880 + mov r1, #0x13 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238BD60 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4c] + b _0238C16C +_0238B98C: + ldr r0, _0238BE68 @ =0x0238EB80 + bl FUN_0200C1FC + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r2, _0238BE20 @ =0x0238E85C + ldr r1, [r0] + add r0, r1, #0xe0 + add r1, r1, #0x2c + bl FUN_0200D670 + ldr r1, _0238BD60 @ =0x0238EC70 + mov r4, #0x2f + ldr r3, [r1] + mov r2, #0x24 + add r0, r3, #0xe0 + str r0, [r3, #0x88] + ldr r5, [r1] + mov r0, #0 + ldr r3, [r5, #0x1c] + str r3, [r5, #0x74] + ldr r3, [r1] + str r4, [r3, #0x10] + ldr r1, [r1] + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238BD68 @ =0x00003008 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BE6C @ =0x0238E904 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238C16C +_0238BA14: + ldr r0, _0238BE70 @ =0x0238EB90 + bl FUN_0200C1FC + mov r4, #2 + ldr r0, _0238BE74 @ =0x0238E9A0 + ldr r1, _0238BD84 @ =0x00300013 + ldr r3, _0238BE78 @ =0x0238E868 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238BD60 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4c] + b _0238C16C +_0238BA48: + ldr r0, _0238BE7C @ =0x0238EBA4 + bl FUN_0200C1FC + mov r4, #2 + ldr r0, _0238BE74 @ =0x0238E9A0 + ldr r1, _0238BD84 @ =0x00300013 + ldr r3, _0238BE78 @ =0x0238E868 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238BD60 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4c] + b _0238C16C +_0238BA7C: + ldr r0, _0238BE80 @ =0x0238EBB8 + bl FUN_0200C1FC + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r0, [r0] + add r0, r0, #0x50 + bl FUN_02023690 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r5, #0 + ldr r6, [r0] + ldr r2, _0238BE2C @ =0x0238EB14 + ldrh r4, [r6, #0x2e] + ldr r3, _0238BE30 @ =0x0000C402 + mov r1, #0x400 + str r4, [r6, #0x50] + ldr r6, [r0] + ldrsh r4, [r6, #0x30] + str r4, [r6, #0x60] + ldr r6, [r0] + ldrh r4, [r6, #0x2e] + str r4, [r6, #0x74] + ldr r6, [r0] + ldrh r4, [r6, #0x2e] + add r4, r4, #0xbc + str r4, [r6, #0x68] + ldr r4, [r0] + str r5, [r4, #0x7c] + ldr r0, [r0] + add r4, r0, #0x50 + add r0, r0, #0xa0 + str r4, [sp] + bl FUN_020223F0 + add r0, sp, #0x5c + bl FUN_02023690 + ldr r0, _0238BD60 @ =0x0238EC70 + add r1, sp, #0x5c + ldr r3, [r0] + ldr r0, _0238BE34 @ =0x0238E9B0 + add r2, r3, #0xa0 + str r2, [sp, #0x94] + str r1, [sp] + ldrsh r2, [r3, #0x30] + add r3, r3, #0x50 + ldr r1, _0238BE38 @ =0x00001013 + add r2, r2, #0xd1 + add r2, r2, #0x2900 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + stmib sp, {r2, r3} + ldr r3, _0238BE3C @ =0x0000033E + mov r2, r5 + bl FUN_0202E3CC + ldr r1, _0238BD60 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4d] + b _0238C16C +_0238BB58: + ldr r0, _0238BE84 @ =0x0238EBC8 + bl FUN_0200C1FC + bl FUN_0200EDFC + cmp r0, #0 + beq _0238BB7C + bl FUN_0200ECFC + ldr r1, _0238BE88 @ =0x0001869F + cmp r0, r1 + blt _0238BB90 +_0238BB7C: + ldr r0, _0238BD60 @ =0x0238EC70 + mov r1, #1 + ldr r0, [r0] + str r1, [r0, #0x14] + b _0238BBA0 +_0238BB90: + ldr r0, _0238BD60 @ =0x0238EC70 + mov r1, #0x1d + ldr r0, [r0] + str r1, [r0, #0x14] +_0238BBA0: + mov r0, #0 + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r1, #0x30 + ldr r4, [r0] + ldr r2, _0238BE8C @ =0x0238E908 + ldr r3, [r4] + ldrsb r0, [r4, #0x48] + mul r1, r3, r1 + ldrh r2, [r2, r1] + ldr r1, _0238BD90 @ =0x00003018 + add r3, r4, #0x50 + bl FUN_0202F1B4 + b _0238C16C +_0238BBD8: + ldr r0, _0238BE90 @ =0x0238EBD8 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r1, _0238BD60 @ =0x0238EC70 + mov r0, #0 + ldr r2, [r1] + ldr r1, [r2, #0x28] + str r1, [r2, #0x74] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x2f + ldr r1, [r0] + mov r3, #0x29 + str r2, [r1, #0x10] + ldr r2, [r0] + ldr r1, _0238BD68 @ =0x00003008 + str r3, [r2, #0x14] + ldr r3, [r0] + mov r2, #0x30 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BE94 @ =0x0238E906 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238C16C +_0238BC40: + ldr r0, _0238BE98 @ =0x0238EBE4 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + beq _0238BC7C + bl ov22_0238A4CC + ldr r1, _0238BD60 @ =0x0238EC70 + ldr r1, [r1] + str r0, [r1, #0x20] + bl ov22_0238A544 + ldr r1, _0238BD60 @ =0x0238EC70 + b _0238BC94 +_0238BC7C: + bl ov22_0238AB18 + ldr r1, _0238BD60 @ =0x0238EC70 + ldr r1, [r1] + str r0, [r1, #0x20] + bl ov22_0238AB90 + ldr r1, _0238BD60 @ =0x0238EC70 +_0238BC94: + ldr r1, [r1] + str r0, [r1, #0x28] + bl FUN_0200ECFC + cmp r0, #0 + bne _0238BCCC + ldr r0, _0238BD60 @ =0x0238EC70 + mov r3, #6 + ldr r2, [r0] + mov r1, #0x30 + str r3, [r2, #0x14] + ldr r0, [r0] + str r1, [r0, #0x10] + bl ov22_0238C184 + b _0238C16C +_0238BCCC: + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r5, [r0] + ldr r4, [r5, #0x28] + bl FUN_0200ECFC + cmp r4, r0 + ble _0238BD04 + mov r1, #0xd + ldr r0, _0238BD60 @ =0x0238EC70 + str r1, [r5, #0x14] + ldr r0, [r0] + mov r1, #0x30 + str r1, [r0, #0x10] + bl ov22_0238C184 + b _0238C16C +_0238BD04: + ldr r1, _0238BD60 @ =0x0238EC70 + mov r0, #0 + ldr r1, [r1] + str r4, [r1, #0x74] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x2f + ldr r1, [r0] + mov r3, #0x1a + str r2, [r1, #0x10] + ldr r2, [r0] + mov r1, #0x30 + str r3, [r2, #0x14] + ldr r4, [r0] + ldr r2, _0238BE9C @ =0x0238E8FC + ldr r3, [r4] + ldrsb r0, [r4, #0x48] + mul r1, r3, r1 + ldrh r2, [r2, r1] + ldr r1, _0238BD68 @ =0x00003008 + add r3, r4, #0x50 + bl FUN_0202F1B4 + b _0238C16C + .align 2, 0 +_0238BD60: .4byte 0x0238EC70 +_0238BD64: .4byte 0x0238E9D0 +_0238BD68: .4byte 0x00003008 +_0238BD6C: .4byte 0x0238E8F0 +_0238BD70: .4byte 0x0238E9D8 +_0238BD74: .4byte 0x0000017F +_0238BD78: .4byte 0x0238E8F2 +_0238BD7C: .4byte 0x0238E9E4 +_0238BD80: .4byte 0x0238E980 +_0238BD84: .4byte 0x00300013 +_0238BD88: .4byte 0x0238E8C0 +_0238BD8C: .4byte 0x0238E9F4 +_0238BD90: .4byte 0x00003018 +_0238BD94: .4byte 0x0238E91E +_0238BD98: .4byte 0x0238EA04 +_0238BD9C: .4byte 0x0238E8F4 +_0238BDA0: .4byte 0x0238EA10 +_0238BDA4: .4byte 0x0238E90A +_0238BDA8: .4byte 0x0238EA1C +_0238BDAC: .4byte 0x0238E90C +_0238BDB0: .4byte 0x0238EA28 +_0238BDB4: .4byte 0x0238E90E +_0238BDB8: .4byte 0x0238EA34 +_0238BDBC: .4byte 0x0238E91C +_0238BDC0: .4byte 0x0238EA40 +_0238BDC4: .4byte 0x0238E910 +_0238BDC8: .4byte 0x0238EA4C +_0238BDCC: .4byte 0x0238E912 +_0238BDD0: .4byte 0x0238EA58 +_0238BDD4: .4byte 0x0238E914 +_0238BDD8: .4byte 0x0238EA64 +_0238BDDC: .4byte 0x0238E916 +_0238BDE0: .4byte 0x0238EA70 +_0238BDE4: .4byte 0x0238E918 +_0238BDE8: .4byte 0x0238EA7C +_0238BDEC: .4byte 0x0238E91A +_0238BDF0: .4byte 0x0238EA88 +_0238BDF4: .4byte 0x0238EA94 +_0238BDF8: .4byte 0x0238E8F6 +_0238BDFC: .4byte 0x0238EAA8 +_0238BE00: .4byte 0x0238E8F8 +_0238BE04: .4byte 0x0238EAB8 +_0238BE08: .4byte 0x0238EAC8 +_0238BE0C: .4byte 0x0238EAD8 +_0238BE10: .4byte 0x0238E8A0 +_0238BE14: .4byte 0x0238E990 +_0238BE18: .4byte 0x0238E9C0 +_0238BE1C: .4byte 0x0238EAE8 +_0238BE20: .4byte 0x0238E85C +_0238BE24: .4byte 0x0238E8FA +_0238BE28: .4byte 0x0238EAF8 +_0238BE2C: .4byte 0x0238EB14 +_0238BE30: .4byte 0x0000C402 +_0238BE34: .4byte 0x0238E9B0 +_0238BE38: .4byte 0x00001013 +_0238BE3C: .4byte 0x0000033E +_0238BE40: .4byte 0x0238EB20 +_0238BE44: .4byte 0x0238E8FE +_0238BE48: .4byte 0x0238EB30 +_0238BE4C: .4byte 0x0238E900 +_0238BE50: .4byte 0x0238EB40 +_0238BE54: .4byte 0x0238E902 +_0238BE58: .4byte 0x0238EB50 +_0238BE5C: .4byte 0x0238EB60 +_0238BE60: .4byte 0x0238EB70 +_0238BE64: .4byte 0x0238E880 +_0238BE68: .4byte 0x0238EB80 +_0238BE6C: .4byte 0x0238E904 +_0238BE70: .4byte 0x0238EB90 +_0238BE74: .4byte 0x0238E9A0 +_0238BE78: .4byte 0x0238E868 +_0238BE7C: .4byte 0x0238EBA4 +_0238BE80: .4byte 0x0238EBB8 +_0238BE84: .4byte 0x0238EBC8 +_0238BE88: .4byte 0x0001869F +_0238BE8C: .4byte 0x0238E908 +_0238BE90: .4byte 0x0238EBD8 +_0238BE94: .4byte 0x0238E906 +_0238BE98: .4byte 0x0238EBE4 +_0238BE9C: .4byte 0x0238E8FC +_0238BEA0: .4byte 0x0238EBF0 +_0238BEA4: + ldr r0, _0238BEA0 @ =0x0238EBF0 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r8, _0238BD60 @ =0x0238EC70 + mov r6, #0 + ldr r0, [r8] + mov r4, r6 + str r6, [r0, #0x24] + ldr r0, [r8] + mov r5, #1 + str r6, [r0, #0x28] + mov r7, #6 +_0238BED4: + ldr r0, [r8] + mul r1, r6, r7 + ldr r0, [r0, #0x44] + ldr r2, [r0, #0x384] + ldrb r0, [r2, r1] + add sb, r2, r1 + tst r0, #1 + movne r0, r5 + moveq r0, r4 + tst r0, #0xff + beq _0238BF48 + ldrsh r0, [sb, #4] + bl FUN_0200CCE0 + cmp r0, #0 + beq _0238BF48 + mov r0, r6 + bl FUN_02042B84 + cmp r0, #0 + beq _0238BF48 + mov r0, sb + bl FUN_0200D1A8 + ldr r2, [r8] + ldr r1, [r2, #0x28] + add r0, r1, r0 + str r0, [r2, #0x28] + ldr r1, [r8] + ldr r0, [r1, #0x24] + add r0, r0, #1 + str r0, [r1, #0x24] +_0238BF48: + add r6, r6, #1 + cmp r6, #0x32 + blt _0238BED4 + ldr r1, _0238BD60 @ =0x0238EC70 + mov r0, #0 + ldr r2, [r1] + ldr r1, [r2, #0x28] + str r1, [r2, #0x74] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x2f + ldr r1, [r0] + mov r3, #0x26 + str r2, [r1, #0x10] + ldr r2, [r0] + mov r1, #0x30 + str r3, [r2, #0x14] + ldr r4, [r0] + ldr r2, _0238BE94 @ =0x0238E906 + ldr r3, [r4] + ldrsb r0, [r4, #0x48] + mul r1, r3, r1 + ldrh r2, [r2, r1] + ldr r1, _0238BD68 @ =0x00003008 + add r3, r4, #0x50 + bl FUN_0202F1B4 + b _0238C16C +_0238BFB4: + ldr r0, _0238C174 @ =0x0238EC00 + bl FUN_0200C1FC + mov r4, #2 + ldr r0, _0238BE74 @ =0x0238E9A0 + ldr r1, _0238BD84 @ =0x00300013 + ldr r3, _0238BE78 @ =0x0238E868 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238BD60 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4c] + b _0238C16C +_0238BFE8: + ldr r0, _0238C178 @ =0x0238EC10 + bl FUN_0200C1FC + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #1 + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r1, #0x30 + ldr r4, [r0] + ldr r2, _0238BE8C @ =0x0238E908 + ldr r3, [r4] + ldrsb r0, [r4, #0x48] + mul r1, r3, r1 + ldrh r2, [r2, r1] + ldr r1, _0238BD90 @ =0x00003018 + add r3, r4, #0x50 + bl FUN_0202F1B4 + b _0238C16C +_0238C038: + ldr r0, _0238C174 @ =0x0238EC00 + bl FUN_0200C1FC + mov r4, #2 + ldr r0, _0238BE74 @ =0x0238E9A0 + ldr r1, _0238BD84 @ =0x00300013 + ldr r3, _0238BE78 @ =0x0238E868 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238BD60 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4c] + b _0238C16C +_0238C06C: + ldr r0, _0238C174 @ =0x0238EC00 + bl FUN_0200C1FC + mov r4, #2 + ldr r0, _0238BE74 @ =0x0238E9A0 + ldr r1, _0238BD84 @ =0x00300013 + ldr r3, _0238BE78 @ =0x0238E868 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238BD60 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4c] + b _0238C16C +_0238C0A0: + ldr r0, _0238C17C @ =0x0238EC24 + bl FUN_0200C1FC + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x48] + bl FUN_0202F3A4 + bl ov22_0238D528 + cmp r0, #0 + ldreq r0, _0238BD60 @ =0x0238EC70 + moveq r1, #0xc + ldrne r0, _0238BD60 @ =0x0238EC70 + movne r1, #1 + ldr r0, [r0] + str r1, [r0, #0x14] + mov r0, #0 + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r1, #0x30 + ldr r4, [r0] + ldr r2, _0238BE44 @ =0x0238E8FE + ldr r3, [r4] + ldrsb r0, [r4, #0x48] + mul r1, r3, r1 + ldrh r2, [r2, r1] + ldr r1, _0238BD90 @ =0x00003018 + add r3, r4, #0x50 + bl FUN_0202F1B4 + b _0238C16C +_0238C110: + ldr r0, _0238C180 @ =0x0238EC38 + bl FUN_0200C1FC + ldr r0, _0238BD60 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x48] + bl FUN_0202F3A4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #1 + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238BD60 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238BD90 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238BE8C @ =0x0238E908 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + bl FUN_02042AF8 +_0238C16C: + add sp, sp, #0xac + pop {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0238C174: .4byte 0x0238EC00 +_0238C178: .4byte 0x0238EC10 +_0238C17C: .4byte 0x0238EC24 +_0238C180: .4byte 0x0238EC38 + arm_func_end ov22_0238ADFC + + arm_func_start ov22_0238C184 +ov22_0238C184: @ 0x0238C184 + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0xac + ldr r0, _0238D104 @ =0x0238EC70 + ldr r2, [r0] + ldr r0, [r2, #0x10] + cmp r0, #0x30 + addls pc, pc, r0, lsl #2 + b _0238D510 +_0238C1A4: @ jump table + b _0238C268 @ case 0 + b _0238C2BC @ case 1 + b _0238C354 @ case 2 + b _0238C3A4 @ case 3 + b _0238C768 @ case 4 + b _0238C3F4 @ case 5 + b _0238C444 @ case 6 + b _0238C494 @ case 7 + b _0238C4E0 @ case 8 + b _0238C52C @ case 9 + b _0238C578 @ case 10 + b _0238C5C4 @ case 11 + b _0238C610 @ case 12 + b _0238C660 @ case 13 + b _0238C6B0 @ case 14 + b _0238C718 @ case 15 + b _0238C784 @ case 16 + b _0238C7E0 @ case 17 + b _0238CAEC @ case 18 + b _0238C83C @ case 19 + b _0238C8B4 @ case 20 + b _0238C938 @ case 21 + b _0238CA24 @ case 22 + b _0238C980 @ case 23 + b _0238CDEC @ case 24 + b _0238CFE4 @ case 25 + b _0238D3DC @ case 26 + b _0238D444 @ case 27 + b _0238CB7C @ case 28 + b _0238CBD8 @ case 29 + b _0238CEFC @ case 30 + b _0238CC34 @ case 31 + b ov22_0238CC94 @ case 32 + b _0238CCFC @ case 33 + b _0238CE20 @ case 34 + b _0238CD30 @ case 35 + b _0238CDB8 @ case 36 + b _0238D248 @ case 37 + b _0238D410 @ case 38 + b _0238D4B4 @ case 39 + b _0238CF7C @ case 40 + b _0238D358 @ case 41 + b _0238D38C @ case 42 + b _0238D510 @ case 43 + b _0238C314 @ case 44 + b _0238D510 @ case 45 + b _0238D510 @ case 46 + b _0238D510 @ case 47 + b _0238C348 @ case 48 +_0238C268: + ldr r0, _0238D108 @ =0x0238E9D0 + bl FUN_0200C1FC + ldr r0, _0238D104 @ =0x0238EC70 + mov r1, #1 + ldr r0, [r0] + strb r1, [r0, #9] + bl FUN_02042AF8 + bl ov22_0238D554 + mov r0, #0 + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238D10C @ =0x00003008 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D110 @ =0x0238E8F0 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238D510 +_0238C2BC: + ldr r0, _0238D114 @ =0x0238E9D8 + bl FUN_0200C1FC + bl FUN_02042AF8 + bl ov22_0238E7E4 + ldr r0, _0238D104 @ =0x0238EC70 + ldr r1, _0238D118 @ =0x0000017F + ldr r0, [r0] + str r1, [r0, #0x50] + bl ov22_0238D554 + mov r0, #0 + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238D10C @ =0x00003008 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D11C @ =0x0238E8F2 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238D510 +_0238C314: + ldr r0, _0238D120 @ =0x0238E9E4 + bl FUN_0200C1FC + mov r4, #5 + ldr r0, _0238D124 @ =0x0238E980 + ldr r1, _0238D128 @ =0x00300013 + ldr r3, _0238D12C @ =0x0238E8C0 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238D104 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4c] + b _0238D510 +_0238C348: + mov r0, #0 + str r0, [r2, #0xc] + b _0238D510 +_0238C354: + ldr r0, _0238D130 @ =0x0238E9F4 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #1 + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238D134 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D138 @ =0x0238E91E + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238D510 +_0238C3A4: + ldr r0, _0238D13C @ =0x0238EA04 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #4 + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238D134 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D140 @ =0x0238E8F4 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238D510 +_0238C3F4: + ldr r0, _0238D144 @ =0x0238EA10 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #1 + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238D134 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D148 @ =0x0238E90A + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238D510 +_0238C444: + ldr r0, _0238D14C @ =0x0238EA1C + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x11 + ldr r1, [r0] + mov r0, #1 + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238D134 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D150 @ =0x0238E90C + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238D510 +_0238C494: + ldr r0, _0238D154 @ =0x0238EA28 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r1, _0238D104 @ =0x0238EC70 + mov r0, #1 + ldr r1, [r1] + str r0, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238D134 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D158 @ =0x0238E90E + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238D510 +_0238C4E0: + ldr r0, _0238D15C @ =0x0238EA34 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r1, _0238D104 @ =0x0238EC70 + mov r0, #1 + ldr r1, [r1] + str r0, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238D134 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D160 @ =0x0238E91C + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238D510 +_0238C52C: + ldr r0, _0238D164 @ =0x0238EA40 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r1, _0238D104 @ =0x0238EC70 + mov r0, #1 + ldr r1, [r1] + str r0, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238D134 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D168 @ =0x0238E910 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238D510 +_0238C578: + ldr r0, _0238D16C @ =0x0238EA4C + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r1, _0238D104 @ =0x0238EC70 + mov r0, #1 + ldr r1, [r1] + str r0, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238D134 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D170 @ =0x0238E912 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238D510 +_0238C5C4: + ldr r0, _0238D174 @ =0x0238EA58 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r1, _0238D104 @ =0x0238EC70 + mov r0, #1 + ldr r1, [r1] + str r0, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238D134 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D178 @ =0x0238E914 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238D510 +_0238C610: + ldr r0, _0238D17C @ =0x0238EA64 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #1 + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238D134 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D180 @ =0x0238E916 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238D510 +_0238C660: + ldr r0, _0238D184 @ =0x0238EA70 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x11 + ldr r1, [r0] + mov r0, #1 + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238D134 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D188 @ =0x0238E918 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238D510 +_0238C6B0: + ldr r0, _0238D18C @ =0x0238EA7C + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r1, _0238D104 @ =0x0238EC70 + mov r2, #0x1d + ldr r4, [r1] + mov r0, #1 + ldrsh r3, [r4, #0x30] + str r3, [r4, #0x64] + ldr r4, [r1] + ldrh r3, [r4, #0x2e] + str r3, [r4, #0x78] + ldr r1, [r1] + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238D134 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D190 @ =0x0238E91A + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238D510 +_0238C718: + ldr r0, _0238D194 @ =0x0238EA88 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x1d + ldr r1, [r0] + mov r0, #1 + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238D134 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D160 @ =0x0238E91C + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238D510 +_0238C768: + ldrb r0, [r2, #8] + cmp r0, #0 + beq _0238C77C + bl ov22_0238A22C + b _0238D510 +_0238C77C: + bl ov22_0238A878 + b _0238D510 +_0238C784: + ldr r0, _0238D198 @ =0x0238EA94 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r3, #0x13 + ldr r1, [r0] + mov r2, #0x2e + str r3, [r1, #0x14] + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x10] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238D134 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D19C @ =0x0238E8F6 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238D510 +_0238C7E0: + ldr r0, _0238D1A0 @ =0x0238EAA8 + bl FUN_0200C1FC + ldr r0, _0238D104 @ =0x0238EC70 + mov r3, #0x14 + ldr r1, [r0] + mov r2, #0x2e + str r3, [r1, #0x14] + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x10] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r1, #0x30 + ldr r4, [r0] + ldr r2, _0238D1A4 @ =0x0238E8F8 + ldr r3, [r4] + ldrsb r0, [r4, #0x48] + mul r1, r3, r1 + ldrh r2, [r2, r1] + ldr r1, _0238D134 @ =0x00003018 + add r3, r4, #0x50 + bl FUN_0202F1B4 + b _0238D510 +_0238C83C: + ldr r0, _0238D1A8 @ =0x0238EAB8 + bl FUN_0200C1FC + ldr r0, _0238D104 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x48] + bl FUN_0202F3A4 + ldr r0, _0238D104 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x48] + bl FUN_0202F2C4 + ldr r0, _0238D104 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x49] + bl FUN_0202F6DC + ldr r0, _0238D104 @ =0x0238EC70 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + beq _0238C890 + bl ov22_0238A140 + b _0238C894 +_0238C890: + bl ov22_0238A78C +_0238C894: + ldr r1, _0238D104 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4a] + mov r0, #0 + bl FUN_0204426C + mov r0, #0 + bl FUN_02044568 + b _0238D510 +_0238C8B4: + ldr r0, _0238D1AC @ =0x0238EAC8 + bl FUN_0200C1FC + ldr r0, _0238D104 @ =0x0238EC70 + ldr r2, _0238D118 @ =0x0000017F + ldr r1, [r0] + str r2, [r1, #0x9c] + ldr r0, [r0] + ldrsb r0, [r0, #0x48] + bl FUN_0202F3A4 + ldr r0, _0238D104 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x48] + bl FUN_0202F2C4 + ldr r0, _0238D104 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x49] + bl FUN_0202F6DC + ldr r0, _0238D104 @ =0x0238EC70 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + beq _0238C914 + bl ov22_0238A150 + b _0238C918 +_0238C914: + bl ov22_0238A79C +_0238C918: + ldr r1, _0238D104 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4a] + mov r0, #0 + bl FUN_0204426C + mov r0, #0 + bl FUN_02044568 + b _0238D510 +_0238C938: + ldr r0, _0238D1B0 @ =0x0238EAD8 + bl FUN_0200C1FC + ldr r0, _0238D104 @ =0x0238EC70 + ldr r3, _0238D1B4 @ =0x0238E8A0 + ldr r0, [r0] + mov r4, #3 + ldrb r0, [r0, #8] + mov r1, #0x13 + mov r2, #0 + cmp r0, #0 + ldrne r0, _0238D1B8 @ =0x0238E990 + str r4, [sp] + ldreq r0, _0238D1BC @ =0x0238E9C0 + bl FUN_0202B0EC + ldr r1, _0238D104 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4c] + b _0238D510 +_0238C980: + ldr r0, _0238D1C0 @ =0x0238EAE8 + bl FUN_0200C1FC + ldr r0, _0238D104 @ =0x0238EC70 + ldr r2, _0238D1C4 @ =0x0238E85C + ldr r1, [r0] + add r0, r1, #0xe0 + add r1, r1, #0x2c + bl FUN_0200D670 + ldr r1, _0238D104 @ =0x0238EC70 + mov r0, #0 + ldr r3, [r1] + add r2, r3, #0xe0 + str r2, [r3, #0x88] + ldr r3, [r1] + ldrsh r2, [r3, #0x30] + str r2, [r3, #0x64] + ldr r3, [r1] + ldrh r2, [r3, #0x2e] + str r2, [r3, #0x78] + ldr r2, [r1] + ldr r1, [r2, #0x1c] + str r1, [r2, #0x74] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238D10C @ =0x00003008 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D1C8 @ =0x0238E8FA + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r3, #0x2f + ldr r2, [r0] + mov r1, #0x18 + str r3, [r2, #0x10] + ldr r0, [r0] + str r1, [r0, #0x14] + b _0238D510 +_0238CA24: + ldrsh r1, [r2, #0x30] + ldrh r2, [r2, #0x2e] + ldr r0, _0238D1CC @ =0x0238EAF8 + bl FUN_0200C1FC + ldr r0, _0238D104 @ =0x0238EC70 + ldr r0, [r0] + add r0, r0, #0x50 + bl FUN_02023690 + ldr r0, _0238D104 @ =0x0238EC70 + ldr r2, _0238D1D0 @ =0x0238EB14 + ldr r5, [r0] + ldr r3, _0238D1D4 @ =0x0000C402 + ldrh r4, [r5, #0x2e] + mov r1, #0x400 + str r4, [r5, #0x50] + ldr r5, [r0] + ldrsh r4, [r5, #0x30] + str r4, [r5, #0x60] + ldr r5, [r0] + ldrh r4, [r5, #0x2e] + str r4, [r5, #0x74] + ldr r0, [r0] + add r4, r0, #0x50 + add r0, r0, #0xa0 + str r4, [sp] + bl FUN_020223F0 + add r0, sp, #0x5c + bl FUN_02023690 + ldr r0, _0238D104 @ =0x0238EC70 + add r1, sp, #0x5c + ldr r3, [r0] + ldr r0, _0238D1D8 @ =0x0238E9B0 + add r2, r3, #0xa0 + str r2, [sp, #0x94] + str r1, [sp] + ldrsh r2, [r3, #0x30] + add r3, r3, #0x50 + ldr r1, _0238D1DC @ =0x00001013 + add r2, r2, #0xd1 + add r2, r2, #0x2900 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + stmib sp, {r2, r3} + ldr r3, _0238D1E0 @ =0x0000033E + mov r2, #0 + bl FUN_0202E3CC + ldr r1, _0238D104 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4d] + b _0238D510 +_0238CAEC: + ldr r0, _0238D1E4 @ =0x0238EB20 + bl FUN_0200C1FC + bl ov22_0238D528 + cmp r0, #0 + bne _0238CB34 + ldr r0, _0238D104 @ =0x0238EC70 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + beq _0238CB1C + bl ov22_0238A22C + b _0238CB20 +_0238CB1C: + bl ov22_0238A878 +_0238CB20: + ldr r0, _0238D104 @ =0x0238EC70 + mov r1, #0xc + ldr r0, [r0] + str r1, [r0, #0x14] + b _0238CB44 +_0238CB34: + ldr r0, _0238D104 @ =0x0238EC70 + mov r1, #0x11 + ldr r0, [r0] + str r1, [r0, #0x14] +_0238CB44: + mov r0, #0 + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r1, #0x30 + ldr r4, [r0] + ldr r2, _0238D1E8 @ =0x0238E8FE + ldr r3, [r4] + ldrsb r0, [r4, #0x48] + mul r1, r3, r1 + ldrh r2, [r2, r1] + ldr r1, _0238D134 @ =0x00003018 + add r3, r4, #0x50 + bl FUN_0202F1B4 + b _0238D510 +_0238CB7C: + ldr r0, _0238D1EC @ =0x0238EB30 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r3, #0x1f + ldr r1, [r0] + mov r2, #0x2e + str r3, [r1, #0x14] + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x10] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238D134 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D1F0 @ =0x0238E900 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238D510 +_0238CBD8: + ldr r0, _0238D1F4 @ =0x0238EB40 + bl FUN_0200C1FC + ldr r0, _0238D104 @ =0x0238EC70 + mov r3, #0x20 + ldr r1, [r0] + mov r2, #0x2e + str r3, [r1, #0x14] + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x10] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r1, #0x30 + ldr r4, [r0] + ldr r2, _0238D1F8 @ =0x0238E902 + ldr r3, [r4] + ldrsb r0, [r4, #0x48] + mul r1, r3, r1 + ldrh r2, [r2, r1] + ldr r1, _0238D134 @ =0x00003018 + add r3, r4, #0x50 + bl FUN_0202F1B4 + b _0238D510 +_0238CC34: + ldr r0, _0238D1FC @ =0x0238EB50 + bl FUN_0200C1FC + ldr r0, _0238D104 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x48] + bl FUN_0202F3A4 + ldr r0, _0238D104 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x48] + bl FUN_0202F2C4 + ldr r0, _0238D104 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x49] + bl FUN_0202F6DC + bl FUN_02042730 + mov r0, #4 + mov r1, #0 + mov r2, #8 + mov r3, #1 + bl FUN_02042258 + ldr r1, _0238D104 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4b] + b _0238D510 + arm_func_end ov22_0238C184 +ov22_0238CC94: + ldr r0, _0238D200 @ =0x0238EB60 + bl FUN_0200C1FC + ldr r0, _0238D104 @ =0x0238EC70 + ldr r2, _0238D118 @ =0x0000017F + ldr r1, [r0] + + arm_func_start ov22_0238CCA8 +ov22_0238CCA8: @ 0x0238CCA8 + str r2, [r1, #0x9c] + ldr r0, [r0] + ldrsb r0, [r0, #0x48] + bl FUN_0202F3A4 + ldr r0, _0238D104 @ =0x0238EC70 + arm_func_end ov22_0238CCA8 + + arm_func_start ov22_0238CCBC +ov22_0238CCBC: @ 0x0238CCBC + ldr r0, [r0] + ldrsb r0, [r0, #0x48] + bl FUN_0202F2C4 + ldr r0, _0238D104 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x49] + bl FUN_0202F6DC + arm_func_end ov22_0238CCBC + + arm_func_start ov22_0238CCD8 +ov22_0238CCD8: @ 0x0238CCD8 + mov r0, #4 + mov r1, #0 + mov r2, #8 + mov r3, #1 + bl FUN_02042258 + ldr r1, _0238D104 @ =0x0238EC70 + arm_func_end ov22_0238CCD8 + + arm_func_start ov22_0238CCF0 +ov22_0238CCF0: @ 0x0238CCF0 + ldr r1, [r1] + strb r0, [r1, #0x4b] + b _0238D510 +_0238CCFC: + ldr r0, _0238D204 @ =0x0238EB70 + bl FUN_0200C1FC + mov r4, #3 + ldr r0, _0238D1B8 @ =0x0238E990 + ldr r3, _0238D208 @ =0x0238E880 + mov r1, #0x13 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238D104 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4c] + b _0238D510 +_0238CD30: + ldr r0, _0238D20C @ =0x0238EB80 + bl FUN_0200C1FC + ldr r0, _0238D104 @ =0x0238EC70 + ldr r2, _0238D1C4 @ =0x0238E85C + ldr r1, [r0] + add r0, r1, #0xe0 + add r1, r1, #0x2c + bl FUN_0200D670 + ldr r1, _0238D104 @ =0x0238EC70 + mov r4, #0x2f + ldr r3, [r1] + mov r2, #0x24 + add r0, r3, #0xe0 + str r0, [r3, #0x88] + ldr r5, [r1] + mov r0, #0 + ldr r3, [r5, #0x1c] + str r3, [r5, #0x74] + ldr r3, [r1] + str r4, [r3, #0x10] + ldr r1, [r1] + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238D10C @ =0x00003008 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D210 @ =0x0238E904 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238D510 +_0238CDB8: + ldr r0, _0238D214 @ =0x0238EB90 + bl FUN_0200C1FC + mov r4, #2 + ldr r0, _0238D218 @ =0x0238E9A0 + ldr r1, _0238D128 @ =0x00300013 + ldr r3, _0238D21C @ =0x0238E868 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238D104 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4c] + b _0238D510 +_0238CDEC: + ldr r0, _0238D220 @ =0x0238EBA4 + bl FUN_0200C1FC + mov r4, #2 + ldr r0, _0238D218 @ =0x0238E9A0 + ldr r1, _0238D128 @ =0x00300013 + ldr r3, _0238D21C @ =0x0238E868 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238D104 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4c] + b _0238D510 +_0238CE20: + ldr r0, _0238D224 @ =0x0238EBB8 + bl FUN_0200C1FC + ldr r0, _0238D104 @ =0x0238EC70 + ldr r0, [r0] + add r0, r0, #0x50 + bl FUN_02023690 + ldr r0, _0238D104 @ =0x0238EC70 + mov r5, #0 + ldr r6, [r0] + ldr r2, _0238D1D0 @ =0x0238EB14 + ldrh r4, [r6, #0x2e] + ldr r3, _0238D1D4 @ =0x0000C402 + mov r1, #0x400 + str r4, [r6, #0x50] + ldr r6, [r0] + ldrsh r4, [r6, #0x30] + str r4, [r6, #0x60] + ldr r6, [r0] + ldrh r4, [r6, #0x2e] + str r4, [r6, #0x74] + ldr r6, [r0] + ldrh r4, [r6, #0x2e] + add r4, r4, #0xbc + str r4, [r6, #0x68] + ldr r4, [r0] + str r5, [r4, #0x7c] + ldr r0, [r0] + add r4, r0, #0x50 + add r0, r0, #0xa0 + str r4, [sp] + bl FUN_020223F0 + add r0, sp, #0xc + bl FUN_02023690 + ldr r0, _0238D104 @ =0x0238EC70 + add r1, sp, #0xc + ldr r3, [r0] + ldr r0, _0238D1D8 @ =0x0238E9B0 + add r2, r3, #0xa0 + str r2, [sp, #0x44] + str r1, [sp] + ldrsh r2, [r3, #0x30] + add r3, r3, #0x50 + ldr r1, _0238D1DC @ =0x00001013 + add r2, r2, #0xd1 + add r2, r2, #0x2900 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + stmib sp, {r2, r3} + ldr r3, _0238D1E0 @ =0x0000033E + mov r2, r5 + bl FUN_0202E3CC + ldr r1, _0238D104 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4d] + b _0238D510 +_0238CEFC: + ldr r0, _0238D228 @ =0x0238EBC8 + bl FUN_0200C1FC + bl FUN_0200EDFC + cmp r0, #0 + beq _0238CF20 + bl FUN_0200ECFC + ldr r1, _0238D22C @ =0x0001869F + cmp r0, r1 + blt _0238CF34 +_0238CF20: + ldr r0, _0238D104 @ =0x0238EC70 + mov r1, #1 + ldr r0, [r0] + str r1, [r0, #0x14] + b _0238CF44 +_0238CF34: + ldr r0, _0238D104 @ =0x0238EC70 + mov r1, #0x1d + ldr r0, [r0] + str r1, [r0, #0x14] +_0238CF44: + mov r0, #0 + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r1, #0x30 + ldr r4, [r0] + ldr r2, _0238D230 @ =0x0238E908 + ldr r3, [r4] + ldrsb r0, [r4, #0x48] + mul r1, r3, r1 + ldrh r2, [r2, r1] + ldr r1, _0238D134 @ =0x00003018 + add r3, r4, #0x50 + bl FUN_0202F1B4 + b _0238D510 +_0238CF7C: + ldr r0, _0238D234 @ =0x0238EBD8 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r1, _0238D104 @ =0x0238EC70 + mov r0, #0 + ldr r2, [r1] + ldr r1, [r2, #0x28] + str r1, [r2, #0x74] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x2f + ldr r1, [r0] + mov r3, #0x29 + str r2, [r1, #0x10] + ldr r2, [r0] + ldr r1, _0238D10C @ =0x00003008 + str r3, [r2, #0x14] + ldr r3, [r0] + mov r2, #0x30 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D238 @ =0x0238E906 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + b _0238D510 +_0238CFE4: + ldr r0, _0238D23C @ =0x0238EBE4 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r0, _0238D104 @ =0x0238EC70 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + beq _0238D020 + bl ov22_0238A4CC + ldr r1, _0238D104 @ =0x0238EC70 + ldr r1, [r1] + str r0, [r1, #0x20] + bl ov22_0238A544 + ldr r1, _0238D104 @ =0x0238EC70 + b _0238D038 +_0238D020: + bl ov22_0238AB18 + ldr r1, _0238D104 @ =0x0238EC70 + ldr r1, [r1] + str r0, [r1, #0x20] + bl ov22_0238AB90 + ldr r1, _0238D104 @ =0x0238EC70 +_0238D038: + ldr r1, [r1] + str r0, [r1, #0x28] + bl FUN_0200ECFC + cmp r0, #0 + bne _0238D070 + ldr r0, _0238D104 @ =0x0238EC70 + mov r3, #6 + ldr r2, [r0] + mov r1, #0x30 + str r3, [r2, #0x14] + ldr r0, [r0] + str r1, [r0, #0x10] + bl ov22_0238C184 + b _0238D510 +_0238D070: + ldr r0, _0238D104 @ =0x0238EC70 + ldr r5, [r0] + ldr r4, [r5, #0x28] + bl FUN_0200ECFC + cmp r4, r0 + ble _0238D0A8 + mov r1, #0xd + ldr r0, _0238D104 @ =0x0238EC70 + str r1, [r5, #0x14] + ldr r0, [r0] + mov r1, #0x30 + str r1, [r0, #0x10] + bl ov22_0238C184 + b _0238D510 +_0238D0A8: + ldr r1, _0238D104 @ =0x0238EC70 + mov r0, #0 + ldr r1, [r1] + str r4, [r1, #0x74] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x2f + ldr r1, [r0] + mov r3, #0x1a + str r2, [r1, #0x10] + ldr r2, [r0] + mov r1, #0x30 + str r3, [r2, #0x14] + ldr r4, [r0] + ldr r2, _0238D240 @ =0x0238E8FC + ldr r3, [r4] + ldrsb r0, [r4, #0x48] + mul r1, r3, r1 + ldrh r2, [r2, r1] + ldr r1, _0238D10C @ =0x00003008 + add r3, r4, #0x50 + bl FUN_0202F1B4 + b _0238D510 + .align 2, 0 +_0238D104: .4byte 0x0238EC70 +_0238D108: .4byte 0x0238E9D0 +_0238D10C: .4byte 0x00003008 +_0238D110: .4byte 0x0238E8F0 +_0238D114: .4byte 0x0238E9D8 +_0238D118: .4byte 0x0000017F +_0238D11C: .4byte 0x0238E8F2 +_0238D120: .4byte 0x0238E9E4 +_0238D124: .4byte 0x0238E980 +_0238D128: .4byte 0x00300013 +_0238D12C: .4byte 0x0238E8C0 +_0238D130: .4byte 0x0238E9F4 +_0238D134: .4byte 0x00003018 +_0238D138: .4byte 0x0238E91E +_0238D13C: .4byte 0x0238EA04 +_0238D140: .4byte 0x0238E8F4 +_0238D144: .4byte 0x0238EA10 +_0238D148: .4byte 0x0238E90A +_0238D14C: .4byte 0x0238EA1C +_0238D150: .4byte 0x0238E90C +_0238D154: .4byte 0x0238EA28 +_0238D158: .4byte 0x0238E90E +_0238D15C: .4byte 0x0238EA34 +_0238D160: .4byte 0x0238E91C +_0238D164: .4byte 0x0238EA40 +_0238D168: .4byte 0x0238E910 +_0238D16C: .4byte 0x0238EA4C +_0238D170: .4byte 0x0238E912 +_0238D174: .4byte 0x0238EA58 +_0238D178: .4byte 0x0238E914 +_0238D17C: .4byte 0x0238EA64 +_0238D180: .4byte 0x0238E916 +_0238D184: .4byte 0x0238EA70 +_0238D188: .4byte 0x0238E918 +_0238D18C: .4byte 0x0238EA7C +_0238D190: .4byte 0x0238E91A +_0238D194: .4byte 0x0238EA88 +_0238D198: .4byte 0x0238EA94 +_0238D19C: .4byte 0x0238E8F6 +_0238D1A0: .4byte 0x0238EAA8 +_0238D1A4: .4byte 0x0238E8F8 +_0238D1A8: .4byte 0x0238EAB8 +_0238D1AC: .4byte 0x0238EAC8 +_0238D1B0: .4byte 0x0238EAD8 +_0238D1B4: .4byte 0x0238E8A0 +_0238D1B8: .4byte 0x0238E990 +_0238D1BC: .4byte 0x0238E9C0 +_0238D1C0: .4byte 0x0238EAE8 +_0238D1C4: .4byte 0x0238E85C +_0238D1C8: .4byte 0x0238E8FA +_0238D1CC: .4byte 0x0238EAF8 +_0238D1D0: .4byte 0x0238EB14 +_0238D1D4: .4byte 0x0000C402 +_0238D1D8: .4byte 0x0238E9B0 +_0238D1DC: .4byte 0x00001013 +_0238D1E0: .4byte 0x0000033E +_0238D1E4: .4byte 0x0238EB20 +_0238D1E8: .4byte 0x0238E8FE +_0238D1EC: .4byte 0x0238EB30 +_0238D1F0: .4byte 0x0238E900 +_0238D1F4: .4byte 0x0238EB40 +_0238D1F8: .4byte 0x0238E902 +_0238D1FC: .4byte 0x0238EB50 +_0238D200: .4byte 0x0238EB60 +_0238D204: .4byte 0x0238EB70 +_0238D208: .4byte 0x0238E880 +_0238D20C: .4byte 0x0238EB80 +_0238D210: .4byte 0x0238E904 +_0238D214: .4byte 0x0238EB90 +_0238D218: .4byte 0x0238E9A0 +_0238D21C: .4byte 0x0238E868 +_0238D220: .4byte 0x0238EBA4 +_0238D224: .4byte 0x0238EBB8 +_0238D228: .4byte 0x0238EBC8 +_0238D22C: .4byte 0x0001869F +_0238D230: .4byte 0x0238E908 +_0238D234: .4byte 0x0238EBD8 +_0238D238: .4byte 0x0238E906 +_0238D23C: .4byte 0x0238EBE4 +_0238D240: .4byte 0x0238E8FC +_0238D244: .4byte 0x0238EBF0 +_0238D248: + ldr r0, _0238D244 @ =0x0238EBF0 + bl FUN_0200C1FC + bl ov22_0238E7E4 + ldr r8, _0238D104 @ =0x0238EC70 + mov r6, #0 + ldr r0, [r8] + mov r4, r6 + str r6, [r0, #0x24] + ldr r0, [r8] + mov r5, #1 + str r6, [r0, #0x28] + mov r7, #6 +_0238D278: + ldr r0, [r8] + mul r1, r6, r7 + ldr r0, [r0, #0x44] + ldr r2, [r0, #0x384] + ldrb r0, [r2, r1] + add sb, r2, r1 + tst r0, #1 + movne r0, r5 + moveq r0, r4 + tst r0, #0xff + beq _0238D2EC + ldrsh r0, [sb, #4] + bl FUN_0200CCE0 + cmp r0, #0 + beq _0238D2EC + mov r0, r6 + bl FUN_02042B84 + cmp r0, #0 + beq _0238D2EC + mov r0, sb + bl FUN_0200D1A8 + ldr r2, [r8] + ldr r1, [r2, #0x28] + add r0, r1, r0 + str r0, [r2, #0x28] + ldr r1, [r8] + ldr r0, [r1, #0x24] + add r0, r0, #1 + str r0, [r1, #0x24] +_0238D2EC: + add r6, r6, #1 + cmp r6, #0x32 + blt _0238D278 + ldr r1, _0238D104 @ =0x0238EC70 + mov r0, #0 + ldr r2, [r1] + ldr r1, [r2, #0x28] + str r1, [r2, #0x74] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x2f + ldr r1, [r0] + mov r3, #0x26 + str r2, [r1, #0x10] + ldr r2, [r0] + mov r1, #0x30 + str r3, [r2, #0x14] + ldr r4, [r0] + ldr r2, _0238D238 @ =0x0238E906 + ldr r3, [r4] + ldrsb r0, [r4, #0x48] + mul r1, r3, r1 + ldrh r2, [r2, r1] + ldr r1, _0238D10C @ =0x00003008 + add r3, r4, #0x50 + bl FUN_0202F1B4 + b _0238D510 +_0238D358: + ldr r0, _0238D518 @ =0x0238EC00 + bl FUN_0200C1FC + mov r4, #2 + ldr r0, _0238D218 @ =0x0238E9A0 + ldr r1, _0238D128 @ =0x00300013 + ldr r3, _0238D21C @ =0x0238E868 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238D104 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4c] + b _0238D510 +_0238D38C: + ldr r0, _0238D51C @ =0x0238EC10 + bl FUN_0200C1FC + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #1 + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r1, #0x30 + ldr r4, [r0] + ldr r2, _0238D230 @ =0x0238E908 + ldr r3, [r4] + ldrsb r0, [r4, #0x48] + mul r1, r3, r1 + ldrh r2, [r2, r1] + ldr r1, _0238D134 @ =0x00003018 + add r3, r4, #0x50 + bl FUN_0202F1B4 + b _0238D510 +_0238D3DC: + ldr r0, _0238D518 @ =0x0238EC00 + bl FUN_0200C1FC + mov r4, #2 + ldr r0, _0238D218 @ =0x0238E9A0 + ldr r1, _0238D128 @ =0x00300013 + ldr r3, _0238D21C @ =0x0238E868 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238D104 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4c] + b _0238D510 +_0238D410: + ldr r0, _0238D518 @ =0x0238EC00 + bl FUN_0200C1FC + mov r4, #2 + ldr r0, _0238D218 @ =0x0238E9A0 + ldr r1, _0238D128 @ =0x00300013 + ldr r3, _0238D21C @ =0x0238E868 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238D104 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x4c] + b _0238D510 +_0238D444: + ldr r0, _0238D520 @ =0x0238EC24 + bl FUN_0200C1FC + ldr r0, _0238D104 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x48] + bl FUN_0202F3A4 + bl ov22_0238D528 + cmp r0, #0 + ldreq r0, _0238D104 @ =0x0238EC70 + moveq r1, #0xc + ldrne r0, _0238D104 @ =0x0238EC70 + movne r1, #1 + ldr r0, [r0] + str r1, [r0, #0x14] + mov r0, #0 + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r1, #0x30 + ldr r4, [r0] + ldr r2, _0238D1E8 @ =0x0238E8FE + ldr r3, [r4] + ldrsb r0, [r4, #0x48] + mul r1, r3, r1 + ldrh r2, [r2, r1] + ldr r1, _0238D134 @ =0x00003018 + add r3, r4, #0x50 + bl FUN_0202F1B4 + b _0238D510 +_0238D4B4: + ldr r0, _0238D524 @ =0x0238EC38 + bl FUN_0200C1FC + ldr r0, _0238D104 @ =0x0238EC70 + ldr r0, [r0] + ldrsb r0, [r0, #0x48] + bl FUN_0202F3A4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #1 + ldr r1, [r0] + mov r0, #0 + str r2, [r1, #0x14] + bl ov22_0238D5F4 + ldr r0, _0238D104 @ =0x0238EC70 + mov r2, #0x30 + ldr r3, [r0] + ldr r1, _0238D134 @ =0x00003018 + ldrsb r0, [r3, #0x48] + ldr r4, [r3], #0x50 + mul r5, r4, r2 + ldr r2, _0238D230 @ =0x0238E908 + ldrh r2, [r2, r5] + bl FUN_0202F1B4 + bl FUN_02042AF8 +_0238D510: + add sp, sp, #0xac + pop {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0238D518: .4byte 0x0238EC00 +_0238D51C: .4byte 0x0238EC10 +_0238D520: .4byte 0x0238EC24 +_0238D524: .4byte 0x0238EC38 + arm_func_end ov22_0238CCF0 + + arm_func_start ov22_0238D528 +ov22_0238D528: @ 0x0238D528 + push {r3, lr} + ldr r0, _0238D550 @ =0x0238EC70 + ldr r0, [r0] + ldrb r0, [r0, #8] + cmp r0, #0 + beq _0238D548 + bl FUN_02010830 + pop {r3, pc} +_0238D548: + bl FUN_02010B3C + pop {r3, pc} + .align 2, 0 +_0238D550: .4byte 0x0238EC70 + arm_func_end ov22_0238D528 + + arm_func_start ov22_0238D554 +ov22_0238D554: @ 0x0238D554 + push {r3, r4, r5, r6, r7, r8, sb, lr} + ldr r8, _0238D5F0 @ =0x0238EC70 + mov r6, #0 + ldr r0, [r8] + mov r4, r6 + str r6, [r0, #0x24] + ldr r0, [r8] + mov r5, #1 + str r6, [r0, #0x28] + mov r7, #6 +_0238D57C: + ldr r0, [r8] + mul r1, r6, r7 + ldr r0, [r0, #0x44] + ldr r2, [r0, #0x384] + ldrb r0, [r2, r1] + add sb, r2, r1 + tst r0, #1 + movne r0, r5 + moveq r0, r4 + tst r0, #0xff + beq _0238D5E0 + ldrsh r0, [sb, #4] + bl FUN_0200CCE0 + cmp r0, #0 + beq _0238D5E0 + mov r0, sb + bl FUN_0200D1A8 + ldr r2, [r8] + ldr r1, [r2, #0x28] + add r0, r1, r0 + str r0, [r2, #0x28] + ldr r1, [r8] + ldr r0, [r1, #0x24] + add r0, r0, #1 + str r0, [r1, #0x24] +_0238D5E0: + add r6, r6, #1 + cmp r6, #0x32 + blt _0238D57C + pop {r3, r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_0238D5F0: .4byte 0x0238EC70 + arm_func_end ov22_0238D554 + + arm_func_start ov22_0238D5F4 +ov22_0238D5F4: @ 0x0238D5F4 + push {r3, lr} + ldr r2, _0238D63C @ =0x0238EC70 + mov r1, #0 + ldr r3, [r2] + ldrb r2, [r3, #8] + cmp r2, #0 + beq _0238D614 + b _0238D614 +_0238D614: + cmp r0, #1 + moveq r1, #3 + add r0, r3, #0x1e0 + bl FUN_0204D7F4 + ldr r0, _0238D63C @ =0x0238EC70 + ldr r1, [r0] + ldrsb r0, [r1, #0x49] + add r1, r1, #0x1e0 + bl FUN_0202F690 + pop {r3, pc} + .align 2, 0 +_0238D63C: .4byte 0x0238EC70 + arm_func_end ov22_0238D5F4 + + arm_func_start ov22_0238D640 +ov22_0238D640: @ 0x0238D640 + push {r4, lr} + ldr r2, _0238D7A0 @ =0x0238A130 + mov r0, #0x1f0 + mov r1, #8 + ldr r4, [r2] + bl FUN_02001170 + ldr r1, _0238D7A4 @ =0x0238EC70 + str r0, [r1] + add r0, r0, #0x50 + bl FUN_02023690 + mov r0, #0 + bl FUN_0202F0B0 + ldr r2, _0238D7A4 @ =0x0238EC70 + mov r1, #3 + ldr r3, [r2] + mov r2, #1 + strb r0, [r3, #0x48] + mov r0, #0 + bl FUN_0202F5AC + ldr r1, _0238D7A4 @ =0x0238EC70 + ldr r1, [r1] + strb r0, [r1, #0x49] + bl FUN_02042B98 + ldr r2, _0238D7A4 @ =0x0238EC70 + mov r1, #0 + ldr r0, [r2] + sub ip, r1, #2 + str r1, [r0, #0x38] + ldr r3, [r2] + ldr r0, _0238D7A8 @ =0x020AF6B8 + str r1, [r3, #0x3c] + ldr lr, [r2] + ldr r3, _0238D7AC @ =0x0000017F + str r1, [lr, #0x40] + ldr lr, [r2] + str r4, [lr] + ldr r4, [r2] + str r1, [r4, #4] + ldr r4, [r2] + strb ip, [r4, #0x4a] + ldr r4, [r2] + strb ip, [r4, #0x4b] + ldr r4, [r2] + strb ip, [r4, #0x4c] + ldr r4, [r0] + ldr r0, [r2] + str r4, [r0, #0x44] + ldr r0, [r2] + str r3, [r0, #0x9c] + ldr r2, [r2] + ldr r0, [r2] + cmp r0, #0 + beq _0238D720 + cmp r0, #1 + beq _0238D740 + b _0238D758 +_0238D720: + mov r0, #1 + strb r0, [r2, #8] + bl ov22_0238A2C0 + ldr r0, _0238D7A4 @ =0x0238EC70 + ldr r1, _0238D7AC @ =0x0000017F + ldr r0, [r0] + str r1, [r0, #0x50] + b _0238D758 +_0238D740: + strb r1, [r2, #8] + bl ov22_0238A90C + ldr r0, _0238D7A4 @ =0x0238EC70 + mov r1, #0x180 + ldr r0, [r0] + str r1, [r0, #0x50] +_0238D758: + ldr r0, _0238D7A4 @ =0x0238EC70 + ldr r0, [r0] + add r0, r0, #0x1e0 + bl FUN_0204D7D4 + ldr r0, _0238D7A4 @ =0x0238EC70 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x1e0 + bl FUN_0204D804 + ldr r0, _0238D7A4 @ =0x0238EC70 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x1e0 + bl FUN_0204D7F4 + mov r0, #0 + bl ov22_0238ADD8 + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_0238D7A0: .4byte 0x0238A130 +_0238D7A4: .4byte 0x0238EC70 +_0238D7A8: .4byte 0x020AF6B8 +_0238D7AC: .4byte 0x0000017F + arm_func_end ov22_0238D640 + + arm_func_start ov22_0238D7B0 +ov22_0238D7B0: @ 0x0238D7B0 + push {r3, lr} + ldr r0, _0238D7FC @ =0x0238EC70 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + ldrb r0, [r0, #8] + cmp r0, #0 + beq _0238D7D8 + bl ov22_0238A2F4 + b _0238D7DC +_0238D7D8: + bl ov22_0238A940 +_0238D7DC: + bl FUN_02042BBC + ldr r0, _0238D7FC @ =0x0238EC70 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0238D7FC @ =0x0238EC70 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0238D7FC: .4byte 0x0238EC70 + arm_func_end ov22_0238D7B0 +_0238D800: + .byte 0xF8, 0x40, 0x2D, 0xE9, 0x88, 0x0F, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x04, 0x10, 0x92, 0xE5 + .byte 0x03, 0x00, 0x51, 0xE3, 0x01, 0xF1, 0x8F, 0x90, 0xEF, 0x03, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA + .byte 0x04, 0x00, 0x00, 0xEA, 0xC9, 0x03, 0x00, 0xEA, 0xDE, 0x03, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x04, 0x00, 0x82, 0xE5, 0xE8, 0x03, 0x00, 0xEA, 0x10, 0x10, 0x92, 0xE5, 0x30, 0x00, 0x51, 0xE3 + .byte 0x01, 0xF1, 0x8F, 0x90, 0xAE, 0x03, 0x00, 0xEA, 0x2F, 0x00, 0x00, 0xEA, 0x2E, 0x00, 0x00, 0xEA + .byte 0xAB, 0x03, 0x00, 0xEA, 0xAA, 0x03, 0x00, 0xEA, 0x5F, 0x03, 0x00, 0xEA, 0xA8, 0x03, 0x00, 0xEA + .byte 0xA7, 0x03, 0x00, 0xEA, 0xA6, 0x03, 0x00, 0xEA, 0xA5, 0x03, 0x00, 0xEA, 0xA4, 0x03, 0x00, 0xEA + .byte 0xA3, 0x03, 0x00, 0xEA, 0xA2, 0x03, 0x00, 0xEA, 0xA1, 0x03, 0x00, 0xEA, 0xA0, 0x03, 0x00, 0xEA + .byte 0x9F, 0x03, 0x00, 0xEA, 0x9E, 0x03, 0x00, 0xEA, 0x9D, 0x03, 0x00, 0xEA, 0x9C, 0x03, 0x00, 0xEA + .byte 0x9B, 0x03, 0x00, 0xEA, 0x87, 0x00, 0x00, 0xEA, 0x86, 0x00, 0x00, 0xEA, 0xBF, 0x01, 0x00, 0xEA + .byte 0x2F, 0x03, 0x00, 0xEA, 0x2E, 0x02, 0x00, 0xEA, 0x2D, 0x02, 0x00, 0xEA, 0x94, 0x03, 0x00, 0xEA + .byte 0xB9, 0x02, 0x00, 0xEA, 0x92, 0x03, 0x00, 0xEA, 0x91, 0x03, 0x00, 0xEA, 0x90, 0x03, 0x00, 0xEA + .byte 0x8F, 0x03, 0x00, 0xEA, 0x4B, 0x01, 0x00, 0xEA, 0x4A, 0x01, 0x00, 0xEA, 0xEA, 0x01, 0x00, 0xEA + .byte 0x32, 0x03, 0x00, 0xEA, 0x45, 0x02, 0x00, 0xEA, 0x44, 0x02, 0x00, 0xEA, 0x88, 0x03, 0x00, 0xEA + .byte 0xCC, 0x02, 0x00, 0xEA, 0x86, 0x03, 0x00, 0xEA, 0x85, 0x03, 0x00, 0xEA, 0x63, 0x02, 0x00, 0xEA + .byte 0x83, 0x03, 0x00, 0xEA, 0x7F, 0x03, 0x00, 0xEA, 0x0E, 0x00, 0x00, 0xEA, 0x80, 0x03, 0x00, 0xEA + .byte 0x38, 0x03, 0x00, 0xEA, 0x7E, 0x03, 0x00, 0xEA, 0x4A, 0x03, 0x00, 0xEA, 0xD8, 0x04, 0xD2, 0xE1 + .byte 0x1A, 0x86, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x85, 0x03, 0x00, 0x1A, 0x2C, 0x00, 0xA0, 0xE3 + .byte 0x2C, 0xF5, 0xFF, 0xEB, 0x68, 0x0E, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD8, 0x04, 0xD0, 0xE1 + .byte 0x9B, 0x86, 0xF2, 0xEB, 0x7E, 0x03, 0x00, 0xEA, 0xDC, 0x04, 0xD2, 0xE1, 0x0E, 0x77, 0xF2, 0xEB + .byte 0x01, 0x00, 0x50, 0xE3, 0x48, 0x1E, 0x9F, 0x15, 0x00, 0x10, 0x91, 0x15, 0x38, 0x00, 0x81, 0x15 + .byte 0x07, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x75, 0x03, 0x00, 0xEA, 0x74, 0x03, 0x00, 0xEA + .byte 0x4D, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x10, 0x00, 0x00, 0xEA, 0x2B, 0x00, 0x00, 0xEA + .byte 0x6F, 0x03, 0x00, 0xEA, 0x6E, 0x03, 0x00, 0xEA, 0x44, 0x00, 0x00, 0xEA, 0x10, 0x0E, 0x9F, 0xE5 + .byte 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x09, 0x10, 0xC0, 0xE5, 0xE5, 0xFE, 0xFF, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0x05, 0x00, 0xA0, 0xE3, 0x0D, 0xF5, 0xFF, 0xEB + .byte 0x63, 0x03, 0x00, 0xEA, 0x10, 0x00, 0xA0, 0xE3, 0x0A, 0xF5, 0xFF, 0xEB, 0x60, 0x03, 0x00, 0xEA + .byte 0xDC, 0x0D, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x09, 0x10, 0xC0, 0xE5 + .byte 0x0D, 0x05, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0x0A, 0x00, 0xA0, 0xE3 + .byte 0x00, 0xF5, 0xFF, 0xEB, 0x56, 0x03, 0x00, 0xEA, 0xB4, 0x0D, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x24, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0x09, 0x00, 0xA0, 0xE3 + .byte 0xF8, 0xF4, 0xFF, 0xEB, 0x4E, 0x03, 0x00, 0xEA, 0xBF, 0x04, 0xF2, 0xEB, 0x94, 0x1D, 0x9F, 0xE5 + .byte 0x01, 0x00, 0x50, 0xE1, 0x02, 0x00, 0x00, 0xBA, 0x07, 0x00, 0xA0, 0xE3, 0xF1, 0xF4, 0xFF, 0xEB + .byte 0x47, 0x03, 0x00, 0xEA, 0x1C, 0x00, 0xA0, 0xE3, 0xEE, 0xF4, 0xFF, 0xEB, 0x44, 0x03, 0x00, 0xEA + .byte 0x6C, 0x0D, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x09, 0x10, 0xC0, 0xE5 + .byte 0xF1, 0x04, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0x0A, 0x00, 0xA0, 0xE3 + .byte 0xE4, 0xF4, 0xFF, 0xEB, 0x3A, 0x03, 0x00, 0xEA, 0x44, 0x0D, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x24, 0x00, 0x90, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0x09, 0x00, 0xA0, 0xE3 + .byte 0xDC, 0xF4, 0xFF, 0xEB, 0x32, 0x03, 0x00, 0xEA, 0xA3, 0x04, 0xF2, 0xEB, 0x24, 0x1D, 0x9F, 0xE5 + .byte 0x01, 0x00, 0x50, 0xE1, 0x02, 0x00, 0x00, 0xDA, 0x07, 0x00, 0xA0, 0xE3, 0xD5, 0xF4, 0xFF, 0xEB + .byte 0x2B, 0x03, 0x00, 0xEA, 0x28, 0x00, 0xA0, 0xE3, 0xD2, 0xF4, 0xFF, 0xEB, 0x28, 0x03, 0x00, 0xEA + .byte 0x02, 0x00, 0xA0, 0xE3, 0xCF, 0xF4, 0xFF, 0xEB, 0x25, 0x03, 0x00, 0xEA, 0xF0, 0x0C, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0xDC, 0x04, 0xD0, 0xE1, 0x2F, 0x6A, 0xF2, 0xEB, 0x03, 0x00, 0xA0, 0xE3 + .byte 0xC8, 0xF4, 0xFF, 0xEB, 0x1E, 0x03, 0x00, 0xEA, 0x08, 0x00, 0xD2, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x01, 0x00, 0x00, 0x0A, 0xD9, 0xF1, 0xFF, 0xEB, 0x00, 0x00, 0x00, 0xEA, 0x6A, 0xF3, 0xFF, 0xEB + .byte 0x04, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x95, 0x00, 0x00, 0xEA, 0x94, 0x00, 0x00, 0xEA + .byte 0x13, 0x03, 0x00, 0xEA, 0x82, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x00, 0xEA, 0x58, 0x00, 0x00, 0xEA + .byte 0x9C, 0x0C, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0xD0, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x29, 0x00, 0x00, 0x0A, 0x70, 0xF2, 0xFF, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0xDA + .byte 0x7C, 0x0C, 0x9F, 0xE5, 0x19, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x30, 0x00, 0xA0, 0xE3 + .byte 0x14, 0x20, 0x81, 0xE5, 0xAB, 0xF4, 0xFF, 0xEB, 0x01, 0x03, 0x00, 0xEA, 0x02, 0x00, 0x00, 0x1A + .byte 0x74, 0xF2, 0xFF, 0xEB, 0x58, 0x1C, 0x9F, 0xE5, 0x01, 0x00, 0x00, 0xEA, 0xDA, 0xF1, 0xFF, 0xEB + .byte 0x4C, 0x1C, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x32, 0x00, 0xC1, 0xE5, 0x40, 0x0C, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x32, 0x00, 0xD0, 0xE5, 0x4E, 0x0B, 0xF2, 0xEB, 0x30, 0x1C, 0x9F, 0xE5 + .byte 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5, 0xF0, 0x10, 0xD4, 0xE1, 0x2C, 0x00, 0x80, 0xE2 + .byte 0x00, 0x20, 0xA0, 0xE3, 0xF7, 0xFC, 0xF1, 0xEB, 0x14, 0x0C, 0x9F, 0xE5, 0xB2, 0x20, 0xD4, 0xE1 + .byte 0x00, 0x10, 0x90, 0xE5, 0xBE, 0x22, 0xC1, 0xE1, 0x00, 0x00, 0x90, 0xE5, 0x2C, 0x00, 0x80, 0xE2 + .byte 0x72, 0xFD, 0xF1, 0xEB, 0xF8, 0x1B, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x1C, 0x00, 0x81, 0xE5 + .byte 0x15, 0x00, 0xA0, 0xE3, 0x8B, 0xF4, 0xFF, 0xEB, 0xE1, 0x02, 0x00, 0xEA, 0xD9, 0xF3, 0xFF, 0xEB + .byte 0x01, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0xDA, 0xD4, 0x0B, 0x9F, 0xE5, 0x19, 0x20, 0xA0, 0xE3 + .byte 0x00, 0x10, 0x90, 0xE5, 0x30, 0x00, 0xA0, 0xE3, 0x14, 0x20, 0x81, 0xE5, 0x81, 0xF4, 0xFF, 0xEB + .byte 0xD7, 0x02, 0x00, 0xEA, 0x02, 0x00, 0x00, 0x1A, 0xDD, 0xF3, 0xFF, 0xEB, 0xB0, 0x1B, 0x9F, 0xE5 + .byte 0x01, 0x00, 0x00, 0xEA, 0x43, 0xF3, 0xFF, 0xEB, 0xA4, 0x1B, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 + .byte 0x33, 0x00, 0xC1, 0xE5, 0x98, 0x0B, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x33, 0x00, 0xD0, 0xE5 + .byte 0xE7, 0x0B, 0xF2, 0xEB, 0x88, 0x1B, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5 + .byte 0xF0, 0x10, 0xD4, 0xE1, 0x2C, 0x00, 0x80, 0xE2, 0x00, 0x20, 0xA0, 0xE3, 0xCD, 0xFC, 0xF1, 0xEB + .byte 0x6C, 0x0B, 0x9F, 0xE5, 0xB2, 0x20, 0xD4, 0xE1, 0x00, 0x10, 0x90, 0xE5, 0xBE, 0x22, 0xC1, 0xE1 + .byte 0x00, 0x00, 0x90, 0xE5, 0x2C, 0x00, 0x80, 0xE2, 0x48, 0xFD, 0xF1, 0xEB, 0x50, 0x1B, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x91, 0xE5, 0x1C, 0x00, 0x81, 0xE5, 0x15, 0x00, 0xA0, 0xE3, 0x61, 0xF4, 0xFF, 0xEB + .byte 0xB7, 0x02, 0x00, 0xEA, 0x38, 0x0B, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0xD0, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x0A, 0x8F, 0xF1, 0xFF, 0xEB, 0x20, 0x1B, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x91, 0xE5, 0x32, 0x00, 0xC2, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x32, 0x00, 0xD0, 0xE5 + .byte 0x04, 0x0B, 0xF2, 0xEB, 0x06, 0x00, 0x00, 0xEA, 0x1A, 0xF3, 0xFF, 0xEB, 0x00, 0x1B, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x91, 0xE5, 0x33, 0x00, 0xC2, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x33, 0x00, 0xD0, 0xE5 + .byte 0xBF, 0x0B, 0xF2, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0xE4, 0x0A, 0x9F, 0xE5, 0xF0, 0x10, 0xD4, 0xE1 + .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x2C, 0x00, 0x80, 0xE2, 0xA5, 0xFC, 0xF1, 0xEB + .byte 0xCC, 0x0A, 0x9F, 0xE5, 0xB2, 0x20, 0xD4, 0xE1, 0x00, 0x10, 0x90, 0xE5, 0xBE, 0x22, 0xC1, 0xE1 + .byte 0x00, 0x00, 0x90, 0xE5, 0x2C, 0x00, 0x80, 0xE2, 0x20, 0xFD, 0xF1, 0xEB, 0xB0, 0x1A, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x91, 0xE5, 0x1C, 0x00, 0x81, 0xE5, 0x16, 0x00, 0xA0, 0xE3, 0x39, 0xF4, 0xFF, 0xEB + .byte 0x8F, 0x02, 0x00, 0xEA, 0x98, 0x0A, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0xD0, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x0A, 0x47, 0xF1, 0xFF, 0xEB, 0x00, 0x00, 0x00, 0xEA + .byte 0xD8, 0xF2, 0xFF, 0xEB, 0xB2, 0x02, 0x00, 0xEB, 0x74, 0x0A, 0x9F, 0xE5, 0x01, 0x20, 0xA0, 0xE3 + .byte 0x00, 0x10, 0x90, 0xE5, 0x30, 0x00, 0xA0, 0xE3, 0x14, 0x20, 0x81, 0xE5, 0x29, 0xF4, 0xFF, 0xEB + .byte 0x7F, 0x02, 0x00, 0xEA, 0x58, 0x0A, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xDA, 0x04, 0xD0, 0xE1 + .byte 0xF3, 0x7C, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x79, 0x02, 0x00, 0x0A, 0x00, 0x10, 0x8D, 0xE2 + .byte 0x00, 0x00, 0xA0, 0xE3, 0x40, 0xE1, 0xF1, 0xEB, 0xB0, 0x00, 0xDD, 0xE1, 0x08, 0x00, 0x10, 0xE3 + .byte 0x73, 0x02, 0x00, 0x0A, 0x30, 0x0A, 0x9F, 0xE5, 0x01, 0x1C, 0xA0, 0xE3, 0xC0, 0x27, 0xF2, 0xEB + .byte 0x1C, 0x0A, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x08, 0x00, 0xD1, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0xDA, 0x04, 0xD1, 0xE1, 0x07, 0x00, 0x00, 0x0A, 0x6E, 0x7A, 0xF2, 0xEB, 0x00, 0x1A, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x91, 0xE5, 0x32, 0x00, 0xC2, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x32, 0x00, 0xD0, 0xE5 + .byte 0xBC, 0x0A, 0xF2, 0xEB, 0x06, 0x00, 0x00, 0xEA, 0x66, 0x7A, 0xF2, 0xEB, 0xE0, 0x19, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x91, 0xE5, 0x33, 0x00, 0xC2, 0xE5, 0x00, 0x00, 0x91, 0xE5, 0x33, 0x00, 0xD0, 0xE5 + .byte 0x77, 0x0B, 0xF2, 0xEB, 0xC8, 0x29, 0x9F, 0xE5, 0xF0, 0x10, 0xD0, 0xE1, 0x00, 0x00, 0x92, 0xE5 + .byte 0x00, 0x20, 0xA0, 0xE3, 0x2C, 0x00, 0x80, 0xE2, 0x5E, 0xFC, 0xF1, 0xEB, 0xB0, 0x09, 0x9F, 0xE5 + .byte 0x16, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x30, 0x00, 0xA0, 0xE3, 0x14, 0x20, 0x81, 0xE5 + .byte 0xF8, 0xF3, 0xFF, 0xEB, 0x4E, 0x02, 0x00, 0xEA, 0x2D, 0xD2, 0xF2, 0xEB, 0x03, 0x00, 0x50, 0xE3 + .byte 0x00, 0xF1, 0x8F, 0x90, 0x3E, 0x00, 0x00, 0xEA, 0x3D, 0x00, 0x00, 0xEA, 0x48, 0x02, 0x00, 0xEA + .byte 0x2E, 0x00, 0x00, 0xEA, 0xFF, 0xFF, 0xFF, 0xEA, 0x40, 0xD3, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3 + .byte 0x0C, 0x00, 0x00, 0xDA, 0x6E, 0x02, 0x00, 0xEB, 0x0D, 0xD2, 0xF2, 0xEB, 0x60, 0x09, 0x9F, 0xE5 + .byte 0x01, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x30, 0x00, 0xA0, 0xE3, 0x4B, 0x20, 0xC1, 0xE5 + .byte 0xE4, 0xF3, 0xFF, 0xEB, 0x48, 0x09, 0x9F, 0xE5, 0x25, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x14, 0x10, 0x80, 0xE5, 0x36, 0x02, 0x00, 0xEA, 0x02, 0x00, 0x00, 0x1A, 0x3B, 0xD3, 0xF2, 0xEB + .byte 0x2C, 0x19, 0x9F, 0xE5, 0x01, 0x00, 0x00, 0xEA, 0x1B, 0xD3, 0xF2, 0xEB, 0x20, 0x19, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x91, 0xE5, 0x34, 0x00, 0x81, 0xE5, 0x14, 0x19, 0x9F, 0xE5, 0x06, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x40, 0x91, 0xE5, 0x34, 0x10, 0x94, 0xE5, 0x44, 0x30, 0x94, 0xE5, 0x91, 0x00, 0x02, 0xE0 + .byte 0x84, 0x33, 0x93, 0xE5, 0x2C, 0x00, 0x84, 0xE2, 0xB2, 0x10, 0x93, 0xE1, 0x02, 0x20, 0x83, 0xE0 + .byte 0xBC, 0x12, 0xC4, 0xE1, 0xB2, 0x10, 0xD2, 0xE1, 0xBE, 0x12, 0xC4, 0xE1, 0xB4, 0x10, 0xD2, 0xE1 + .byte 0xB0, 0x13, 0xC4, 0xE1, 0xBB, 0xFC, 0xF1, 0xEB, 0xD4, 0x18, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5 + .byte 0x1C, 0x00, 0x81, 0xE5, 0x21, 0x00, 0xA0, 0xE3, 0xC2, 0xF3, 0xFF, 0xEB, 0x18, 0x02, 0x00, 0xEA + .byte 0x43, 0x02, 0x00, 0xEB, 0xE2, 0xD1, 0xF2, 0xEB, 0xB4, 0x08, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3 + .byte 0x00, 0x10, 0x90, 0xE5, 0x30, 0x00, 0xA0, 0xE3, 0x4B, 0x20, 0xC1, 0xE5, 0xB9, 0xF3, 0xFF, 0xEB + .byte 0x9C, 0x08, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x14, 0x10, 0x80, 0xE5 + .byte 0x0B, 0x02, 0x00, 0xEA, 0xE8, 0xD2, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x08, 0x02, 0x00, 0x0A + .byte 0x02, 0x10, 0x8D, 0xE2, 0x00, 0x00, 0xA0, 0xE3, 0xCF, 0xE0, 0xF1, 0xEB, 0xB2, 0x00, 0xDD, 0xE1 + .byte 0x08, 0x00, 0x10, 0xE3, 0x02, 0x02, 0x00, 0x0A, 0x00, 0x00, 0xA0, 0xE3, 0x66, 0x27, 0xF2, 0xEB + .byte 0xE9, 0xD2, 0xF2, 0xEB, 0x58, 0x28, 0x9F, 0xE5, 0x06, 0x10, 0xA0, 0xE3, 0x00, 0x30, 0x92, 0xE5 + .byte 0x34, 0x00, 0x83, 0xE5, 0x00, 0x30, 0x92, 0xE5, 0x34, 0x00, 0x93, 0xE5, 0x44, 0x20, 0x93, 0xE5 + .byte 0x90, 0x01, 0x01, 0xE0, 0x84, 0x23, 0x92, 0xE5, 0xB1, 0x00, 0x92, 0xE1, 0x01, 0x10, 0x82, 0xE0 + .byte 0xBC, 0x02, 0xC3, 0xE1, 0xB2, 0x00, 0xD1, 0xE1, 0xBE, 0x02, 0xC3, 0xE1, 0xB4, 0x00, 0xD1, 0xE1 + .byte 0xB0, 0x03, 0xC3, 0xE1, 0xBA, 0xD1, 0xF2, 0xEB, 0x14, 0x08, 0x9F, 0xE5, 0x01, 0x30, 0xE0, 0xE3 + .byte 0x00, 0x10, 0x90, 0xE5, 0x22, 0x20, 0xA0, 0xE3, 0x4B, 0x30, 0xC1, 0xE5, 0x00, 0x10, 0x90, 0xE5 + .byte 0x30, 0x00, 0xA0, 0xE3, 0x14, 0x20, 0x81, 0xE5, 0x8E, 0xF3, 0xFF, 0xEB, 0xE4, 0x01, 0x00, 0xEA + .byte 0xDC, 0x04, 0xD2, 0xE1, 0x74, 0x75, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x29, 0x00, 0x00, 0x0A + .byte 0x02, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x07, 0x00, 0x50, 0xE3, 0x1D, 0x00, 0x00, 0x0A + .byte 0xDB, 0x01, 0x00, 0xEA, 0x06, 0x02, 0x00, 0xEB, 0x4B, 0x03, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0xBC, 0x07, 0x9F, 0x05, 0x06, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x90, 0x05, 0x14, 0x10, 0x80, 0x05 + .byte 0x11, 0x00, 0x00, 0x0A, 0xA8, 0x07, 0x9F, 0xE5, 0x00, 0x40, 0x90, 0xE5, 0x42, 0x03, 0xF2, 0xEB + .byte 0x1C, 0x10, 0x94, 0xE5, 0x00, 0x00, 0x51, 0xE1, 0x0D, 0x00, 0xA0, 0xC3, 0x14, 0x00, 0x84, 0xC5 + .byte 0x09, 0x00, 0x00, 0xCA, 0x6D, 0x03, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x80, 0x07, 0x9F, 0x15 + .byte 0x0B, 0x10, 0xA0, 0x13, 0x00, 0x00, 0x90, 0x15, 0x14, 0x10, 0x80, 0x15, 0x70, 0x07, 0x9F, 0x05 + .byte 0x17, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x90, 0x05, 0x14, 0x10, 0x80, 0x05, 0x30, 0x00, 0xA0, 0xE3 + .byte 0x68, 0xF3, 0xFF, 0xEB, 0xBE, 0x01, 0x00, 0xEA, 0xE9, 0x01, 0x00, 0xEB, 0x50, 0x07, 0x9F, 0xE5 + .byte 0x16, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x30, 0x00, 0xA0, 0xE3, 0x14, 0x20, 0x81, 0xE5 + .byte 0x60, 0xF3, 0xFF, 0xEB, 0xB6, 0x01, 0x00, 0xEA, 0xE1, 0x01, 0x00, 0xEB, 0x30, 0x07, 0x9F, 0xE5 + .byte 0x14, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x10, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xDA, 0x04, 0xD0, 0xE1, 0x69, 0x79, 0xF2, 0xEB, 0xAD, 0x01, 0x00, 0xEA, 0xDC, 0x04, 0xD2, 0xE1 + .byte 0x3D, 0x75, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x2E, 0x00, 0x00, 0x0A, 0x03, 0x00, 0x50, 0xE3 + .byte 0x02, 0x00, 0x00, 0x0A, 0x07, 0x00, 0x50, 0xE3, 0x1E, 0x00, 0x00, 0x0A, 0xA4, 0x01, 0x00, 0xEA + .byte 0xEC, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xF0, 0x03, 0xD0, 0xE1, 0x0B, 0xFB, 0xF1, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0xD8, 0x06, 0x9F, 0x05, 0x0E, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x90, 0x05 + .byte 0x14, 0x10, 0x80, 0x05, 0x0A, 0x00, 0x00, 0x0A, 0xC4, 0x06, 0x9F, 0xE5, 0x00, 0x40, 0x90, 0xE5 + .byte 0x09, 0x03, 0xF2, 0xEB, 0x1C, 0x20, 0x94, 0xE5, 0xB8, 0x16, 0x9F, 0xE5, 0x00, 0x00, 0x82, 0xE0 + .byte 0x01, 0x00, 0x50, 0xE1, 0x0F, 0x00, 0xA0, 0xC3, 0x14, 0x00, 0x84, 0xC5, 0x23, 0x00, 0xA0, 0xD3 + .byte 0x14, 0x00, 0x84, 0xD5, 0xBA, 0x01, 0x00, 0xEB, 0x59, 0xD1, 0xF2, 0xEB, 0x90, 0x06, 0x9F, 0xE5 + .byte 0x01, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x30, 0x00, 0xA0, 0xE3, 0x4B, 0x20, 0xC1, 0xE5 + .byte 0x30, 0xF3, 0xFF, 0xEB, 0x86, 0x01, 0x00, 0xEA, 0xB1, 0x01, 0x00, 0xEB, 0x50, 0xD1, 0xF2, 0xEB + .byte 0x6C, 0x06, 0x9F, 0xE5, 0x01, 0x30, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x22, 0x20, 0xA0, 0xE3 + .byte 0x4B, 0x30, 0xC1, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x30, 0x00, 0xA0, 0xE3, 0x14, 0x20, 0x81, 0xE5 + .byte 0x24, 0xF3, 0xFF, 0xEB, 0x7A, 0x01, 0x00, 0xEA, 0xA5, 0x01, 0x00, 0xEB, 0x7C, 0xD1, 0xF2, 0xEB + .byte 0x3C, 0x06, 0x9F, 0xE5, 0x20, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x10, 0x10, 0x80, 0xE5 + .byte 0x73, 0x01, 0x00, 0xEA, 0xD8, 0x04, 0xD2, 0xE1, 0x04, 0x84, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x6F, 0x01, 0x00, 0x1A, 0x18, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xDC, 0x04, 0xD0, 0xE1 + .byte 0xFD, 0x74, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x14, 0x00, 0x00, 0x0A, 0x05, 0x00, 0x50, 0xE3 + .byte 0x02, 0x00, 0x00, 0x0A, 0x06, 0x00, 0x50, 0xE3, 0x10, 0x00, 0x00, 0x0A, 0x64, 0x01, 0x00, 0xEA + .byte 0xEC, 0x05, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x08, 0x00, 0xD1, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x02, 0x00, 0x00, 0x0A, 0x32, 0x00, 0xD1, 0xE5, 0xF2, 0xF0, 0xFF, 0xEB, 0x01, 0x00, 0x00, 0xEA + .byte 0x33, 0x00, 0xD1, 0xE5, 0x82, 0xF2, 0xFF, 0xEB, 0xD0, 0x05, 0x9F, 0xE5, 0xAB, 0x26, 0xF2, 0xEB + .byte 0x83, 0x01, 0x00, 0xEB, 0x12, 0x00, 0xA0, 0xE3, 0xFE, 0xF2, 0xFF, 0xEB, 0x54, 0x01, 0x00, 0xEA + .byte 0x7F, 0x01, 0x00, 0xEB, 0x11, 0x00, 0xA0, 0xE3, 0xFA, 0xF2, 0xFF, 0xEB, 0x50, 0x01, 0x00, 0xEA + .byte 0xD8, 0x04, 0xD2, 0xE1, 0xE1, 0x83, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x4C, 0x01, 0x00, 0x1A + .byte 0x8C, 0x05, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xDC, 0x04, 0xD0, 0xE1, 0xDA, 0x74, 0xF2, 0xEB + .byte 0x01, 0x00, 0x50, 0xE3, 0x15, 0x00, 0x00, 0x0A, 0x05, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A + .byte 0x06, 0x00, 0x50, 0xE3, 0x11, 0x00, 0x00, 0x0A, 0x41, 0x01, 0x00, 0xEA, 0x60, 0x05, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x1C, 0x00, 0x90, 0xE5, 0xC6, 0x02, 0xF2, 0xEB, 0x50, 0x05, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x34, 0x00, 0x90, 0xE5, 0x00, 0x08, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1 + .byte 0x30, 0x05, 0xF2, 0xEB, 0x27, 0xD2, 0xF2, 0xEB, 0x40, 0x05, 0x9F, 0xE5, 0x87, 0x26, 0xF2, 0xEB + .byte 0x5F, 0x01, 0x00, 0xEB, 0x1E, 0x00, 0xA0, 0xE3, 0xDA, 0xF2, 0xFF, 0xEB, 0x30, 0x01, 0x00, 0xEA + .byte 0x5B, 0x01, 0x00, 0xEB, 0x1D, 0x00, 0xA0, 0xE3, 0xD6, 0xF2, 0xFF, 0xEB, 0x2C, 0x01, 0x00, 0xEA + .byte 0xDC, 0x04, 0xD2, 0xE1, 0xBC, 0x74, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x3E, 0x00, 0x00, 0x0A + .byte 0x05, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x06, 0x00, 0x50, 0xE3, 0x3A, 0x00, 0x00, 0x0A + .byte 0x23, 0x01, 0x00, 0xEA, 0xE8, 0x04, 0x9F, 0xE5, 0x00, 0x40, 0x90, 0xE5, 0x92, 0x02, 0xF2, 0xEB + .byte 0x28, 0x20, 0x94, 0xE5, 0xDC, 0x14, 0x9F, 0xE5, 0x00, 0x00, 0x82, 0xE0, 0x01, 0x00, 0x50, 0xE1 + .byte 0x04, 0x00, 0x00, 0xDA, 0x08, 0x10, 0xA0, 0xE3, 0x30, 0x00, 0xA0, 0xE3, 0x14, 0x10, 0x84, 0xE5 + .byte 0xC0, 0xF2, 0xFF, 0xEB, 0x16, 0x01, 0x00, 0xEA, 0xC0, 0x04, 0x9F, 0xE5, 0x67, 0x26, 0xF2, 0xEB + .byte 0xAC, 0x04, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x28, 0x00, 0x90, 0xE5, 0x99, 0x02, 0xF2, 0xEB + .byte 0x00, 0x40, 0xA0, 0xE3, 0x04, 0x50, 0xA0, 0xE1, 0x01, 0x60, 0xA0, 0xE3, 0x04, 0x08, 0xA0, 0xE1 + .byte 0x40, 0x08, 0xA0, 0xE1, 0x0F, 0x04, 0xF2, 0xEB, 0x00, 0x70, 0xA0, 0xE1, 0x00, 0x00, 0xD7, 0xE5 + .byte 0x01, 0x00, 0x10, 0xE3, 0x06, 0x00, 0xA0, 0x11, 0x05, 0x00, 0xA0, 0x01, 0xFF, 0x00, 0x10, 0xE3 + .byte 0x10, 0x00, 0x00, 0x0A, 0xF4, 0x00, 0xD7, 0xE1, 0x6C, 0xFA, 0xF1, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x0C, 0x00, 0x00, 0x0A, 0x01, 0x00, 0xD7, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x0A + .byte 0xE6, 0x27, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x04, 0x08, 0xA0, 0xE1 + .byte 0x40, 0x08, 0xA0, 0xE1, 0x2A, 0x04, 0xF2, 0xEB, 0x02, 0x00, 0x00, 0xEA, 0x04, 0x08, 0xA0, 0xE1 + .byte 0x40, 0x08, 0xA0, 0xE1, 0x26, 0x04, 0xF2, 0xEB, 0x01, 0x40, 0x84, 0xE2, 0x32, 0x00, 0x54, 0xE3 + .byte 0xE1, 0xFF, 0xFF, 0xBA, 0xFD, 0x03, 0xF2, 0xEB, 0xDE, 0xD1, 0xF2, 0xEB, 0x18, 0x01, 0x00, 0xEB + .byte 0x2A, 0x00, 0xA0, 0xE3, 0x93, 0xF2, 0xFF, 0xEB, 0xE9, 0x00, 0x00, 0xEA, 0x14, 0x01, 0x00, 0xEB + .byte 0x01, 0x00, 0xA0, 0xE3, 0x8F, 0xF2, 0xFF, 0xEB, 0xE5, 0x00, 0x00, 0xEA, 0xDC, 0x04, 0xD2, 0xE1 + .byte 0x75, 0x74, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0x12, 0x00, 0x00, 0x0A, 0x05, 0x00, 0x50, 0xE3 + .byte 0x02, 0x00, 0x00, 0x0A, 0x06, 0x00, 0x50, 0xE3, 0x0E, 0x00, 0x00, 0x0A, 0xDC, 0x00, 0x00, 0xEA + .byte 0xCC, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x08, 0x00, 0xD0, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x01, 0x00, 0x00, 0x0A, 0x7C, 0xF0, 0xFF, 0xEB, 0x00, 0x00, 0x00, 0xEA, 0x0D, 0xF2, 0xFF, 0xEB + .byte 0xB8, 0x03, 0x9F, 0xE5, 0x25, 0x26, 0xF2, 0xEB, 0xFD, 0x00, 0x00, 0xEB, 0x1B, 0x00, 0xA0, 0xE3 + .byte 0x78, 0xF2, 0xFF, 0xEB, 0xCE, 0x00, 0x00, 0xEA, 0x94, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD8, 0x04, 0xD0, 0xE1, 0xE6, 0x83, 0xF2, 0xEB, 0xF5, 0x00, 0x00, 0xEB, 0x11, 0x00, 0xA0, 0xE3 + .byte 0x70, 0xF2, 0xFF, 0xEB, 0xC6, 0x00, 0x00, 0xEA, 0xDC, 0x04, 0xD2, 0xE1, 0x56, 0x74, 0xF2, 0xEB + .byte 0x01, 0x00, 0x50, 0xE3, 0x46, 0x00, 0x00, 0x0A, 0x05, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x0A + .byte 0x06, 0x00, 0x50, 0xE3, 0x42, 0x00, 0x00, 0x0A, 0xBD, 0x00, 0x00, 0xEA, 0x2E, 0x02, 0xF2, 0xEB + .byte 0x4C, 0x23, 0x9F, 0xE5, 0x4C, 0x13, 0x9F, 0xE5, 0x00, 0x20, 0x92, 0xE5, 0x28, 0x20, 0x92, 0xE5 + .byte 0x00, 0x00, 0x82, 0xE0, 0x01, 0x00, 0x50, 0xE1, 0x08, 0x00, 0x00, 0xDA, 0xA5, 0xD1, 0xF2, 0xEB + .byte 0xDF, 0x00, 0x00, 0xEB, 0x28, 0x03, 0x9F, 0xE5, 0x08, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5 + .byte 0x30, 0x00, 0xA0, 0xE3, 0x14, 0x20, 0x81, 0xE5, 0x56, 0xF2, 0xFF, 0xEB, 0xAC, 0x00, 0x00, 0xEA + .byte 0x18, 0x03, 0x9F, 0xE5, 0xFD, 0x25, 0xF2, 0xEB, 0x04, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x28, 0x00, 0x90, 0xE5, 0x2F, 0x02, 0xF2, 0xEB, 0x00, 0x40, 0xA0, 0xE3, 0x04, 0x50, 0xA0, 0xE1 + .byte 0x01, 0x60, 0xA0, 0xE3, 0x04, 0x08, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1, 0xA5, 0x03, 0xF2, 0xEB + .byte 0x00, 0x70, 0xA0, 0xE1, 0x00, 0x00, 0xD7, 0xE5, 0x01, 0x00, 0x10, 0xE3, 0x06, 0x00, 0xA0, 0x11 + .byte 0x05, 0x00, 0xA0, 0x01, 0xFF, 0x00, 0x10, 0xE3, 0x14, 0x00, 0x00, 0x0A, 0xF4, 0x00, 0xD7, 0xE1 + .byte 0x02, 0xFA, 0xF1, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x10, 0x00, 0x00, 0x0A, 0x04, 0x00, 0xA0, 0xE1 + .byte 0xA7, 0xD1, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x00, 0x0A, 0x01, 0x00, 0xD7, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x78, 0x27, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x06, 0x00, 0x00, 0x0A, 0x04, 0x08, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1, 0xBC, 0x03, 0xF2, 0xEB + .byte 0x02, 0x00, 0x00, 0xEA, 0x04, 0x08, 0xA0, 0xE1, 0x40, 0x08, 0xA0, 0xE1, 0xB8, 0x03, 0xF2, 0xEB + .byte 0x01, 0x40, 0x84, 0xE2, 0x32, 0x00, 0x54, 0xE3, 0xDD, 0xFF, 0xFF, 0xBA, 0x8F, 0x03, 0xF2, 0xEB + .byte 0x70, 0xD1, 0xF2, 0xEB, 0xAA, 0x00, 0x00, 0xEB, 0x27, 0x00, 0xA0, 0xE3, 0x25, 0xF2, 0xFF, 0xEB + .byte 0x7B, 0x00, 0x00, 0xEA, 0x48, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD8, 0x04, 0xD0, 0xE1 + .byte 0x93, 0x83, 0xF2, 0xEB, 0xA2, 0x00, 0x00, 0xEB, 0x1D, 0x00, 0xA0, 0xE3, 0x1D, 0xF2, 0xFF, 0xEB + .byte 0x73, 0x00, 0x00, 0xEA, 0xDD, 0x04, 0xD2, 0xE1, 0x5D, 0x80, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x6F, 0x00, 0x00, 0x1A, 0x18, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xDD, 0x04, 0xD0, 0xE1 + .byte 0x50, 0x80, 0xF2, 0xEB, 0x08, 0x02, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5 + .byte 0x14, 0x00, 0xA0, 0xE3, 0x4D, 0x20, 0xC1, 0xE5, 0x0E, 0xF2, 0xFF, 0xEB, 0x64, 0x00, 0x00, 0xEA + .byte 0xDD, 0x04, 0xD2, 0xE1, 0x4E, 0x80, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x60, 0x00, 0x00, 0x1A + .byte 0xDC, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xDD, 0x04, 0xD0, 0xE1, 0x41, 0x80, 0xF2, 0xEB + .byte 0xCC, 0x01, 0x9F, 0xE5, 0x01, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x20, 0x00, 0xA0, 0xE3 + .byte 0x4D, 0x20, 0xC1, 0xE5, 0xFF, 0xF1, 0xFF, 0xEB, 0x55, 0x00, 0x00, 0xEA, 0xC8, 0x37, 0xFD, 0xEB + .byte 0x03, 0x00, 0xA0, 0xE3, 0x53, 0x00, 0x00, 0xEA, 0xD8, 0x04, 0xD2, 0xE1, 0xE3, 0x82, 0xF2, 0xEB + .byte 0x00, 0x00, 0x50, 0xE3, 0x4E, 0x00, 0x00, 0x1A, 0x94, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0xD8, 0x04, 0xD0, 0xE1, 0x66, 0x83, 0xF2, 0xEB, 0x84, 0x01, 0x9F, 0xE5, 0x10, 0x20, 0xA0, 0xE3 + .byte 0x00, 0x10, 0x90, 0xE5, 0x10, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD8, 0x04, 0xD0, 0xE1 + .byte 0x27, 0x83, 0xF2, 0xEB, 0x68, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD9, 0x04, 0xD0, 0xE1 + .byte 0x29, 0x84, 0xF2, 0xEB, 0x3E, 0x00, 0x00, 0xEA, 0x0C, 0x10, 0x92, 0xE5, 0x01, 0x10, 0x81, 0xE2 + .byte 0x0C, 0x10, 0x82, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x0C, 0x00, 0x91, 0xE5, 0x01, 0x00, 0x50, 0xE3 + .byte 0x02, 0x00, 0x00, 0x0A, 0x03, 0x00, 0x50, 0xE3, 0x1B, 0x00, 0x00, 0x0A, 0x34, 0x00, 0x00, 0xEA + .byte 0x08, 0x00, 0xD1, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0xDA, 0x04, 0xD1, 0xE1, 0x01, 0x10, 0xE0, 0xE3 + .byte 0x0A, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x50, 0xE1, 0x04, 0x00, 0x00, 0x0A, 0x22, 0x78, 0xF2, 0xEB + .byte 0x0C, 0x01, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x4A, 0x10, 0xC0, 0xE5 + .byte 0x77, 0xD7, 0xF2, 0xEB, 0x0C, 0xD7, 0xF2, 0xEB, 0xCA, 0xD7, 0xF2, 0xEB, 0x24, 0x00, 0x00, 0xEA + .byte 0x01, 0x00, 0x50, 0xE1, 0x04, 0x00, 0x00, 0x0A, 0x17, 0x78, 0xF2, 0xEB, 0xE0, 0x00, 0x9F, 0xE5 + .byte 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x4A, 0x10, 0xC0, 0xE5, 0x6C, 0xD7, 0xF2, 0xEB + .byte 0x01, 0xD7, 0xF2, 0xEB, 0xBF, 0xD7, 0xF2, 0xEB, 0x19, 0x00, 0x00, 0xEA, 0xD0, 0x00, 0x9F, 0xE5 + .byte 0xC9, 0xF6, 0xF1, 0xEB, 0xB8, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x14, 0x00, 0x90, 0xE5 + .byte 0xBC, 0xF1, 0xFF, 0xEB, 0xA8, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x0C, 0x10, 0x80, 0xE5, 0x0E, 0x00, 0x00, 0xEA, 0x20, 0x00, 0xA0, 0xE3, 0x10, 0x00, 0x82, 0xE5 + .byte 0x0B, 0x00, 0x00, 0xEA, 0xD8, 0x04, 0xD2, 0xE1, 0x9C, 0x82, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x07, 0x00, 0x00, 0x1A, 0x78, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD8, 0x04, 0xD0, 0xE1 + .byte 0x1F, 0x83, 0xF2, 0xEB, 0x68, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x14, 0x00, 0x90, 0xE5 + .byte 0xA8, 0xF1, 0xFF, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x03, 0x00, 0x50, 0xE3, 0x50, 0x00, 0x9F, 0x05 + .byte 0x02, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x90, 0x05, 0x04, 0x10, 0x80, 0x05, 0x22, 0x00, 0x00, 0xEA + .byte 0xD8, 0x04, 0xD2, 0xE1, 0x89, 0x82, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x1E, 0x00, 0x00, 0x1A + .byte 0x2C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD9, 0x04, 0xD0, 0xE1, 0xDA, 0x83, 0xF2, 0xEB + .byte 0x1C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD8, 0x04, 0xD0, 0xE1, 0xD0, 0x82, 0xF2, 0xEB + .byte 0x0C, 0x00, 0x9F, 0xE5, 0x03, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5 + .byte 0x11, 0x00, 0x00, 0xEA, 0x70, 0xEC, 0x38, 0x02, 0x9F, 0x86, 0x01, 0x00, 0x02, 0x3F, 0x00, 0x00 + .byte 0x08, 0x13, 0x00, 0x00, 0x4C, 0xEC, 0x38, 0x02, 0xD8, 0x04, 0xD2, 0xE1, 0xEE, 0x66, 0xF2, 0xEB + .byte 0x24, 0x00, 0x1F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD9, 0x04, 0xD0, 0xE1, 0xA3, 0x83, 0xF2, 0xEB + .byte 0x34, 0x00, 0x1F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD8, 0x04, 0xD0, 0xE1, 0x5D, 0x82, 0xF2, 0xEB + .byte 0xA4, 0x61, 0xFD, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0xF8, 0x80, 0xBD, 0xE8, 0x01, 0x00, 0xA0, 0xE3 + .byte 0xF8, 0x80, 0xBD, 0xE8 + + arm_func_start ov22_0238E7E4 +ov22_0238E7E4: @ 0x0238E7E4 + push {r3, lr} + ldr r0, _0238E818 @ =0x0238EC70 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #0x4c] + cmp r0, r1 + popeq {r3, pc} + bl FUN_0202B4C4 + ldr r0, _0238E818 @ =0x0238EC70 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x4c] + pop {r3, pc} + .align 2, 0 +_0238E818: .4byte 0x0238EC70 + arm_func_end ov22_0238E7E4 + @ 0x0238E81C diff --git a/asm/overlay_24.s b/asm/overlay_24.s index 54e2aca3..3d6ec7d3 100644 --- a/asm/overlay_24.s +++ b/asm/overlay_24.s @@ -3,3 +3,2399 @@ .include "global.inc" .text + + arm_func_start ov24_0238A140 +ov24_0238A140: @ 0x0238A140 + push {r3, lr} + ldr r0, _0238A60C @ =0x0238C600 + ldr r2, [r0] + ldr r1, [r2] + cmp r1, #0x26 + addls pc, pc, r1, lsl #2 + b _0238A5B8 +_0238A15C: @ jump table + b _0238A1F8 @ case 0 + b _0238A1F8 @ case 1 + b _0238A5B8 @ case 2 + b _0238A5B8 @ case 3 + b _0238A2B4 @ case 4 + b _0238A5B8 @ case 5 + b _0238A5B8 @ case 6 + b _0238A5B8 @ case 7 + b _0238A5B8 @ case 8 + b _0238A5B8 @ case 9 + b _0238A5B8 @ case 10 + b _0238A5B8 @ case 11 + b _0238A5B8 @ case 12 + b _0238A5B8 @ case 13 + b _0238A26C @ case 14 + b _0238A5B8 @ case 15 + b _0238A5B8 @ case 16 + b _0238A5B8 @ case 17 + b _0238A5B8 @ case 18 + b _0238A5B8 @ case 19 + b _0238A22C @ case 20 + b _0238A5B8 @ case 21 + b _0238A5B8 @ case 22 + b _0238A518 @ case 23 + b _0238A55C @ case 24 + b _0238A2C0 @ case 25 + b _0238A334 @ case 26 + b _0238A5B8 @ case 27 + b _0238A5B8 @ case 28 + b _0238A26C @ case 29 + b _0238A4A8 @ case 30 + b _0238A5B8 @ case 31 + b _0238A3DC @ case 32 + b _0238A3DC @ case 33 + b _0238A43C @ case 34 + b _0238A488 @ case 35 + b _0238A424 @ case 36 + b _0238A5B8 @ case 37 + b _0238A598 @ case 38 +_0238A1F8: + add r0, r2, #0x200 + ldrsb r0, [r0, #0x8c] + bl FUN_0202F180 + cmp r0, #0 + bne _0238A604 + mov r0, #0x1a + bl ov24_0238A610 + ldr r0, _0238A60C @ =0x0238C600 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8c] + bl FUN_0202F3A4 + b _0238A604 +_0238A22C: + bl FUN_02306C9C + cmp r0, #3 + beq _0238A250 + cmp r0, #4 + bne _0238A604 + bl FUN_02306C64 + mov r0, #0x11 + bl ov24_0238A610 + b _0238A604 +_0238A250: + bl FUN_02306C64 + ldr r1, _0238A60C @ =0x0238C600 + ldr r1, [r1] + str r0, [r1, #0x1e8] + mov r0, #0x26 + bl ov24_0238A610 + b _0238A604 +_0238A26C: + add r0, r2, #0x200 + ldrsb r0, [r0, #0x8f] + bl FUN_0202B57C + cmp r0, #1 + beq _0238A2A4 + cmp r0, #4 + beq _0238A294 + cmp r0, #5 + beq _0238A2A4 + b _0238A604 +_0238A294: + bl ov24_0238C47C + mov r0, #0x13 + bl ov24_0238A610 + b _0238A604 +_0238A2A4: + bl ov24_0238C47C + mov r0, #0x11 + bl ov24_0238A610 + b _0238A604 +_0238A2B4: + bl FUN_022DC504 + mov r0, #3 + pop {r3, pc} +_0238A2C0: + bl FUN_0230D220 + cmp r0, #0 + bne _0238A604 + ldr r0, _0238A60C @ =0x0238C600 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8c] + bl FUN_0202F180 + cmp r0, #0 + bne _0238A604 + ldr r0, _0238A60C @ =0x0238C600 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8c] + bl FUN_0202F3A4 + ldr r0, _0238A60C @ =0x0238C600 + mov r2, #0x27 + ldr r1, [r0] + str r2, [r1] + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8c] + bl FUN_0202F2C4 + ldr r0, _0238A60C @ =0x0238C600 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8d] + bl FUN_0202F6DC + b _0238A604 +_0238A334: + add r0, r2, #0x200 + ldrsb r0, [r0, #0x8f] + bl FUN_0202B57C + cmp r0, #1 + ldrne r1, _0238A60C @ =0x0238C600 + ldrne r1, [r1] + strne r0, [r1, #0x1c] + cmp r0, #1 + beq _0238A3CC + cmp r0, #6 + beq _0238A3BC + cmp r0, #7 + bne _0238A604 + bl ov24_0238C47C + bl FUN_020107DC + cmp r0, #0 + beq _0238A38C + cmp r0, #1 + beq _0238A398 + cmp r0, #2 + beq _0238A3A4 + b _0238A3B0 +_0238A38C: + mov r0, #9 + bl ov24_0238A610 + b _0238A604 +_0238A398: + mov r0, #7 + bl ov24_0238A610 + b _0238A604 +_0238A3A4: + mov r0, #6 + bl ov24_0238A610 + b _0238A604 +_0238A3B0: + mov r0, #5 + bl ov24_0238A610 + b _0238A604 +_0238A3BC: + bl ov24_0238C47C + mov r0, #2 + bl ov24_0238A610 + b _0238A604 +_0238A3CC: + bl ov24_0238C47C + mov r0, #3 + bl ov24_0238A610 + b _0238A604 +_0238A3DC: + bl FUN_02036CD4 + cmp r0, #3 + bne _0238A604 + bl FUN_0203755C + ldr r2, _0238A60C @ =0x0238C600 + mov r1, r0 + ldr r0, [r2] + add r0, r0, #0x42 + bl FUN_02025100 + ldr r0, _0238A60C @ =0x0238C600 + mov r2, #0x10 + ldr r1, [r0] + add r0, r1, #0x22 + add r1, r1, #0x42 + bl FUN_020251F4 + mov r0, #0x24 + bl ov24_0238A610 + b _0238A604 +_0238A424: + bl FUN_02037468 + cmp r0, #0 + beq _0238A604 + mov r0, #0x22 + bl ov24_0238A610 + b _0238A604 +_0238A43C: + bl FUN_0203931C + cmp r0, #0 + bne _0238A464 + ldr r0, _0238A60C @ =0x0238C600 + mov r2, #0x10 + ldr r1, [r0] + mov r0, #0x23 + str r2, [r1, #4] + bl ov24_0238A610 + b _0238A604 +_0238A464: + cmp r0, #1 + arm_func_end ov24_0238A140 + + arm_func_start ov24_0238A468 +ov24_0238A468: @ 0x0238A468 + bne _0238A604 + ldr r0, _0238A60C @ =0x0238C600 + mov r2, #0x21 + ldr r1, [r0] + mov r0, #0x23 + str r2, [r1, #4] + bl ov24_0238A610 + b _0238A604 +_0238A488: + bl FUN_02039218 + cmp r0, #0 + beq _0238A604 + ldr r0, _0238A60C @ =0x0238C600 + ldr r0, [r0] + ldr r0, [r0, #4] + bl ov24_0238A610 + b _0238A604 +_0238A4A8: + ldr r1, [r2, #0xc] + add r1, r1, #1 + str r1, [r2, #0xc] + ldr r1, [r0] + ldr r0, [r1, #0xc] + cmp r0, #1 + beq _0238A4D8 + cmp r0, #2 + beq _0238A604 + cmp r0, #3 + beq _0238A4FC + b _0238A604 +_0238A4D8: + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8e] + bl FUN_0202836C + ldr r0, _0238A60C @ =0x0238C600 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8e] + bl FUN_0202C70C + b _0238A604 +_0238A4FC: + ldr r0, [r1, #8] + bl ov24_0238A610 + ldr r0, _0238A60C @ =0x0238C600 + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #0xc] + b _0238A604 +_0238A518: + add r0, r2, #0x200 + ldrsb r0, [r0, #0x8c] + bl FUN_0202F180 + cmp r0, #0 + bne _0238A604 + ldr r0, _0238A60C @ =0x0238C600 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8c] + bl FUN_0202F148 + ldr r0, _0238A60C @ =0x0238C600 + mvn r2, #1 + ldr r1, [r0] + mov r0, #0x18 + strb r2, [r1, #0x28c] + bl ov24_0238A610 + b _0238A604 +_0238A55C: + bl FUN_0203D538 + mvn r1, #0 + cmp r0, r1 + beq _0238A578 + cmp r0, #1 + beq _0238A588 + b _0238A604 +_0238A578: + bl FUN_0203EFD4 + mov r0, #4 + bl ov24_0238A610 + b _0238A604 +_0238A588: + bl FUN_0203EFD4 + mov r0, #4 + bl ov24_0238A610 + b _0238A604 +_0238A598: + ldr r1, [r2, #0xc] + sub r0, r1, #1 + str r0, [r2, #0xc] + cmp r1, #0 + bne _0238A604 + mov r0, #0x1f + bl ov24_0238A610 + b _0238A604 +_0238A5B8: + bl FUN_0230D220 + cmp r0, #0 + bne _0238A604 + ldr r0, _0238A60C @ =0x0238C600 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8c] + bl FUN_0202F180 + cmp r0, #0 + bne _0238A604 + ldr r0, _0238A60C @ =0x0238C600 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8c] + bl FUN_0202F3A4 + ldr r0, _0238A60C @ =0x0238C600 + ldr r0, [r0] + ldr r0, [r0, #8] + bl ov24_0238A610 +_0238A604: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0238A60C: .4byte 0x0238C600 + arm_func_end ov24_0238A468 + + arm_func_start ov24_0238A610 +ov24_0238A610: @ 0x0238A610 + push {r3, r4, lr} + sub sp, sp, #0x1c + ldr r1, _0238B384 @ =0x0238C600 + ldr r3, _0238B388 @ =0x0238C50A + ldr r1, [r1] + add r2, sp, #8 + str r0, [r1] + mov r1, #4 +_0238A630: + ldrh r0, [r3], #2 + subs r1, r1, #1 + strh r0, [r2], #2 + bne _0238A630 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, [r0] + ldr r2, [r1] + cmp r2, #0x26 + addls pc, pc, r2, lsl #2 + b _0238B37C +_0238A658: @ jump table + b _0238A6F4 @ case 0 + b _0238A82C @ case 1 + b _0238A890 @ case 2 + b _0238A900 @ case 3 + b _0238B37C @ case 4 + b _0238A964 @ case 5 + b _0238A9E0 @ case 6 + b _0238AA5C @ case 7 + b _0238AAD8 @ case 8 + b _0238AB50 @ case 9 + b _0238ACE0 @ case 10 + b _0238B37C @ case 11 + b _0238B37C @ case 12 + b _0238B37C @ case 13 + b _0238AC80 @ case 14 + b _0238B114 @ case 15 + b _0238B170 @ case 16 + b _0238ABE0 @ case 17 + b _0238ABF8 @ case 18 + b _0238AE60 @ case 19 + b _0238ADB8 @ case 20 + b _0238AF00 @ case 21 + b _0238AECC @ case 22 + b _0238B0A8 @ case 23 + b _0238B0CC @ case 24 + b _0238B37C @ case 25 + b _0238A800 @ case 26 + b _0238B37C @ case 27 + b _0238B37C @ case 28 + b _0238AD90 @ case 29 + b _0238B37C @ case 30 + b _0238B284 @ case 31 + b _0238B2D4 @ case 32 + b _0238B310 @ case 33 + b _0238B32C @ case 34 + b _0238B37C @ case 35 + b _0238B37C @ case 36 + b _0238B338 @ case 37 + b _0238B278 @ case 38 +_0238A6F4: + mov r0, #0 + strb r0, [r1, #0x1f0] + bl FUN_0202F0B0 + ldr r2, _0238B384 @ =0x0238C600 + mov r1, #3 + ldr r3, [r2] + mov r2, #1 + strb r0, [r3, #0x28c] + mov r0, #0 + bl FUN_0202F5AC + ldr r2, _0238B384 @ =0x0238C600 + mov r1, #0x71 + ldr r3, [r2] + strb r0, [r3, #0x28d] + ldr r0, [r2] + add r0, r0, #0x294 + bl FUN_0204D7D4 + ldr r0, _0238B384 @ =0x0238C600 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x294 + bl FUN_0204D804 + ldr r0, _0238B384 @ =0x0238C600 + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238B384 @ =0x0238C600 + ldr r3, [r0] + ldrb r0, [r3, #0x21] + cmp r0, #0 + bne _0238A7E4 + ldrb r0, [r3, #0x20] + ldr r1, _0238B38C @ =0x00003018 + cmp r0, #0 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + bne _0238A7B8 + ldr r2, _0238B390 @ =0x0000038A + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238A7C4 +_0238A7B8: + ldr r2, _0238B394 @ =0x0000038B + add r3, r3, #0x1f8 + bl FUN_0202F1B4 +_0238A7C4: + ldr r0, _0238B384 @ =0x0238C600 + mov r3, #4 + ldr r2, [r0] + mov r1, #0x19 + str r3, [r2, #8] + ldr r0, [r0] + str r1, [r0] + b _0238B37C +_0238A7E4: + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + ldr r1, _0238B398 @ =0x00003008 + ldr r2, _0238B39C @ =0x0000038F + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238B37C +_0238A800: + ldr r0, _0238B3A0 @ =0x0238C5C0 + mov r4, #4 + ldr r1, _0238B3A4 @ =0x00300013 + ldr r3, _0238B3A8 @ =0x0238C538 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238B384 @ =0x0238C600 + ldr r1, [r1] + strb r0, [r1, #0x28f] + b _0238B37C +_0238A82C: + bl ov24_0238C47C + ldr r0, _0238B384 @ =0x0238C600 + mov r2, #0 + ldr r1, [r0] + strb r2, [r1, #0x1f0] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, _0238B398 @ =0x00003008 + ldr r3, [r0] + ldr r2, _0238B39C @ =0x0000038F + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238B37C +_0238A890: + bl ov24_0238C47C + ldr r0, _0238B384 @ =0x0238C600 + mov r3, #1 + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #8] + ldr r1, [r0] + strb r2, [r1, #0x1f0] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, _0238B38C @ =0x00003018 + ldr r3, [r0] + ldr r2, _0238B3AC @ =0x00000391 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238B37C +_0238A900: + bl ov24_0238C47C + ldr r0, _0238B384 @ =0x0238C600 + mov r2, #4 + ldr r1, [r0] + str r2, [r1, #8] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, _0238B38C @ =0x00003018 + ldr r3, [r0] + mov r2, #0x390 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238B37C +_0238A964: + bl ov24_0238C47C + ldr r0, _0238B384 @ =0x0238C600 + ldr r2, _0238B3B0 @ =0x0000220F + ldr r1, [r0] + mov r3, #8 + str r2, [r1, #0x21c] + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #8] + ldr r1, [r0] + strb r2, [r1, #0x1f0] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, _0238B38C @ =0x00003018 + ldr r3, [r0] + ldr r2, _0238B3B4 @ =0x00000392 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238B37C +_0238A9E0: + bl ov24_0238C47C + ldr r0, _0238B384 @ =0x0238C600 + ldr r2, _0238B3B0 @ =0x0000220F + ldr r1, [r0] + mov r3, #8 + str r2, [r1, #0x21c] + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #8] + ldr r1, [r0] + strb r2, [r1, #0x1f0] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, _0238B38C @ =0x00003018 + ldr r3, [r0] + ldr r2, _0238B3B4 @ =0x00000392 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238B37C +_0238AA5C: + bl ov24_0238C47C + ldr r0, _0238B384 @ =0x0238C600 + ldr r2, _0238B3B0 @ =0x0000220F + ldr r1, [r0] + mov r3, #8 + str r2, [r1, #0x21c] + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #8] + ldr r1, [r0] + strb r2, [r1, #0x1f0] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, _0238B38C @ =0x00003018 + ldr r3, [r0] + ldr r2, _0238B3B4 @ =0x00000392 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238B37C +_0238AAD8: + ldr r0, _0238B3B0 @ =0x0000220F + bl FUN_02017CB4 + bl ov24_0238C47C + ldr r0, _0238B384 @ =0x0238C600 + mov r3, #1 + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #8] + ldr r1, [r0] + strb r2, [r1, #0x1f0] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, _0238B38C @ =0x00003018 + ldr r3, [r0] + mov r2, #0x398 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238B37C +_0238AB50: + bl ov24_0238C47C + ldr r0, _0238B384 @ =0x0238C600 + mov r2, #0xa + ldr r1, [r0] + mov r3, #0 + str r2, [r1, #8] + ldr r1, [r0] + ldr r2, _0238B3B0 @ =0x0000220F + strb r3, [r1, #0x1f0] + ldr r1, [r0] + str r2, [r1, #0x21c] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + bl FUN_0201077C + ldr r1, _0238B384 @ =0x0238C600 + ldr r1, [r1] + str r0, [r1, #0x1f8] + bl FUN_0204FD3C + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, _0238B38C @ =0x00003018 + ldr r3, [r0] + ldr r2, _0238B3B8 @ =0x00000393 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238B37C +_0238ABE0: + mov r2, #0x12 + str r2, [r1, #8] + ldr r0, [r0] + mov r1, #0x14 + str r1, [r0, #0x2a4] + b _0238B37C +_0238ABF8: + ldr r2, [r1, #0x2a4] + sub r2, r2, #1 + str r2, [r1, #0x2a4] + ldr r0, [r0] + ldr r0, [r0, #0x2a4] + cmp r0, #0 + bgt _0238B37C + mov r0, #3 + bl FUN_02017C10 + cmp r0, #0 + bne _0238AC2C + mov r0, #3 + bl FUN_02017C50 +_0238AC2C: + ldr r1, _0238B384 @ =0x0238C600 + mov r2, #4 + ldr r0, [r1] + mov r3, #0x1b + str r2, [r0, #8] + ldr r2, [r1] + mov r0, #0 + str r3, [r2] + ldr r2, [r1] + add r1, r2, #0x52 + str r1, [r2, #0x230] + bl FUN_02010794 + ldr r0, _0238B384 @ =0x0238C600 + ldr r2, _0238B3BC @ =0x00000397 + ldr r3, [r0] + mov r1, #0x1c + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238B37C +_0238AC80: + mov r2, #0x1b + str r2, [r1] + ldr r1, [r0] + mov r2, #0x1d + str r2, [r1, #8] + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8d] + bl FUN_0202F6DC + ldr r0, _0238B384 @ =0x0238C600 + ldr r2, _0238B3C0 @ =0x00000396 + ldr r4, [r0] + mov r1, #4 + add r3, r4, #0x66 + str r3, [r4, #0x230] + ldr r4, [r0] + ldrsh r3, [r4, #0x14] + str r3, [r4, #0x20c] + ldr r3, [r0] + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238B37C +_0238ACE0: + ldr r0, _0238B3B0 @ =0x0000220F + bl FUN_02017CB4 + ldr r0, _0238B384 @ =0x0238C600 + ldr r2, _0238B3C4 @ =0x00000715 + ldr r1, [r0] + mov r3, #5 + str r2, [r1, #0x21c] + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #0x220] + ldr r3, [r0] + add r1, r3, #0x52 + str r1, [r3, #0x230] + ldr r1, [r0] + strb r2, [r1, #0x1f0] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238B384 @ =0x0238C600 + mov r3, #0x1b + ldr r1, [r0] + mov r2, #0xe + str r3, [r1] + ldr r1, [r0] + str r2, [r1, #8] + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, _0238B38C @ =0x00003018 + ldr r4, [r0] + ldr r2, _0238B3C8 @ =0x00000395 + ldrsh r3, [r4, #0x14] + str r3, [r4, #0x20c] + ldr r3, [r0] + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238B37C +_0238AD90: + mov r0, #0 + ldr r3, _0238B3CC @ =0x0238C520 + mov r2, r0 + mov r1, #0x11 + str r0, [sp] + bl FUN_0202B0EC + ldr r1, _0238B384 @ =0x0238C600 + ldr r1, [r1] + strb r0, [r1, #0x28f] + b _0238B37C +_0238ADB8: + add r0, r1, #0x1bc + bl FUN_0206351C + ldr r0, _0238B384 @ =0x0238C600 + mov r1, #0x71 + ldr r0, [r0] + add r0, r0, #0x100 + strh r1, [r0, #0xbc] + bl FUN_0201077C + ldr r2, _0238B384 @ =0x0238C600 + mov r4, #6 + ldr r1, [r2] + mov r3, #0 + add r1, r1, #0x100 + strh r0, [r1, #0xe0] + ldr r0, [r2] + strb r4, [r0, #0x1be] + ldr r0, [r2] + arm_func_end ov24_0238A610 + + arm_func_start ov24_0238ADFC +ov24_0238ADFC: @ 0x0238ADFC + str r3, [r0, #0x1c4] + bl FUN_0201077C + mov r1, r0 + add r0, sp, #8 + mov r2, #1 + mov r3, #0 + bl FUN_02053B60 + bl FUN_0201077C + add r2, sp, #8 + mov r1, r0 + mov r0, #1 + str r2, [sp] + str r0, [sp, #4] + ldr r0, _0238B384 @ =0x0238C600 + ldr r3, _0238B3D0 @ =0x0238C508 + ldr r2, [r0] + add r0, r2, #0x248 + add r2, r2, #0x42 + bl FUN_02052F8C + ldr r0, _0238B384 @ =0x0238C600 + mov r1, #1 + ldr r0, [r0] + add r0, r0, #0x248 + bl FUN_023061E4 + b _0238B37C +_0238AE60: + mov r0, #0 + bl FUN_02055964 + mvn r1, #0 + cmp r0, r1 + bne _0238AEB4 + ldr r0, _0238B384 @ =0x0238C600 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8c] + bl FUN_0202F2C4 + ldr r0, _0238B384 @ =0x0238C600 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8d] + bl FUN_0202F6DC + ldr r0, _0238B384 @ =0x0238C600 + mov r1, #0x14 + ldr r0, [r0] + str r1, [r0] + bl ov24_0238B3F8 + b _0238B37C +_0238AEB4: + ldr r0, _0238B384 @ =0x0238C600 + mov r1, #0xf + ldr r0, [r0] + str r1, [r0] + bl ov24_0238B3F8 + b _0238B37C +_0238AECC: + mov r2, #0x17 + str r2, [r1, #8] + ldr r1, [r0] + mov r2, #0x1b + str r2, [r1] + ldr r3, [r0] + ldr r1, _0238B38C @ =0x00003018 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + ldr r2, _0238B3D4 @ =0x000003A2 + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238B37C +_0238AF00: + bl FUN_0200224C + mov r1, #0x64 + bl FUN_0208FEA4 + ldr r0, _0238B3D8 @ =0x020A1868 + ldrsh r0, [r0] + cmp r1, r0 + bge _0238B094 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, [r0] + ldrsh r0, [r1, #0x16] + cmp r0, #0 + moveq r0, #4 + streq r0, [r1] + beq _0238B37C + bl ov24_0238C4CC + bl FUN_0200EDC0 + cmp r0, #0 + beq _0238AFC0 + ldr r0, _0238B384 @ =0x0238C600 + mov r2, #0x16 + ldr r1, [r0] + mov r3, #0x1b + str r2, [r1, #8] + ldr r1, [r0] + mov r2, #0 + str r3, [r1] + ldr r1, [r0] + strb r2, [r1, #0x1f0] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, _0238B38C @ =0x00003018 + ldr r3, [r0] + ldr r2, _0238B3DC @ =0x000003A1 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238B37C +_0238AFC0: + ldr r0, _0238B384 @ =0x0238C600 + mov r2, #0 + ldr r1, [r0] + strb r2, [r1, #0x1f0] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, _0238B38C @ =0x00003018 + ldr r3, [r0] + ldr r2, _0238B3DC @ =0x000003A1 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + ldr r0, _0238B384 @ =0x0238C600 + mov r3, #0x25 + ldr r2, [r0] + mov r1, #0 + str r3, [r2, #8] + ldr r2, [r0] + add r0, sp, #0x10 + ldrsh r2, [r2, #0x16] + strh r2, [sp, #0x10] + strh r1, [sp, #0x12] + bl FUN_0200F84C + mov r0, #0 + strb r0, [sp, #0x14] + ldr r0, _0238B384 @ =0x0238C600 + ldrsh r2, [sp, #0x10] + ldrh r1, [sp, #0x12] + ldr r0, [r0] + strh r2, [sp, #0x18] + add r0, r0, #0x7a + strh r1, [sp, #0x16] + ldr r2, _0238B3E0 @ =0x0238C514 + add r1, sp, #0x14 + add r0, r0, #0x100 + bl FUN_0200D670 + ldr r0, _0238B384 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x7a + add r0, r0, #0x100 + str r0, [r1, #0x230] + b _0238B37C +_0238B094: + ldr r0, _0238B384 @ =0x0238C600 + mov r1, #4 + ldr r0, [r0] + str r1, [r0] + b _0238B37C +_0238B0A8: + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8c] + bl FUN_0202F2C4 + ldr r0, _0238B384 @ =0x0238C600 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8d] + bl FUN_0202F6DC + b _0238B37C +_0238B0CC: + add r0, r1, #0x1bc + bl FUN_0206351C + ldr r3, _0238B384 @ =0x0238C600 + mov r2, #1 + ldr r0, [r3] + mov r1, #0 + str r2, [r0, #0x1c8] + ldr r0, [r3] + mov r2, r1 + str r1, [r0, #0x1e4] + ldr r0, [r3] + ldrsh r4, [r0, #0x16] + add r0, r0, #0x100 + strh r4, [r0, #0xd0] + ldr r0, [r3] + add r0, r0, #0x1bc + bl FUN_0203D438 + b _0238B37C +_0238B114: + bl FUN_0201077C + mov r1, r0 + add r0, sp, #8 + mov r2, #1 + mov r3, #0 + bl FUN_02053B60 + bl FUN_0201077C + mov r2, #1 + str r2, [sp] + ldr r1, _0238B384 @ =0x0238C600 + ldr r2, _0238B3D0 @ =0x0238C508 + ldr r1, [r1] + add r3, sp, #8 + add r1, r1, #0x42 + bl FUN_02055DD0 + ldr r1, _0238B384 @ =0x0238C600 + mov r2, #0x26 + ldr r3, [r1] + str r0, [r3, #0x1e8] + ldr r0, [r1] + str r2, [r0] + bl ov24_0238B3F8 + b _0238B37C +_0238B170: + ldr r0, [r1, #0x1e8] + add r1, r1, #0x42 + add r0, r0, #0x3a + mov r2, #0xa + bl FUN_0202511C + ldr r2, _0238B384 @ =0x0238C600 + ldr r0, _0238B3E4 @ =0x020A18B8 + ldr r1, [r2] + ldrsh r3, [r0] + ldr lr, [r1, #0x1e8] + ldr r1, _0238B3E8 @ =0x020A18DC + ldrsh r4, [lr, #0xa] + ldr r0, _0238B3EC @ =0x020A18E0 + ldrsh ip, [r1] + add r3, r4, r3 + strh r3, [lr, #0xa] + ldr r4, [r2] + ldrsh r3, [r1, #2] + ldr r4, [r4, #0x1e8] + ldrsh r1, [r0] + ldrb lr, [r4, #0xc] + ldrsh r0, [r0, #2] + add ip, lr, ip + strb ip, [r4, #0xc] + ldr ip, [r2] + ldr lr, [ip, #0x1e8] + ldrb ip, [lr, #0xd] + add r3, ip, r3 + strb r3, [lr, #0xd] + ldr r3, [r2] + ldr ip, [r3, #0x1e8] + ldrb r3, [ip, #0xe] + add r1, r3, r1 + strb r1, [ip, #0xe] + ldr r1, [r2] + ldr r2, [r1, #0x1e8] + ldrb r1, [r2, #0xf] + add r0, r1, r0 + strb r0, [r2, #0xf] + bl FUN_0201077C + bl FUN_0204FDFC + ldr r1, _0238B384 @ =0x0238C600 + mov r0, #0 + ldr r2, [r1] + add r1, r2, #0x22 + str r1, [r2, #0x230] + bl FUN_02010794 + mov r3, #0x15 + ldr r0, _0238B384 @ =0x0238C600 + mov r1, #0x1b + ldr r2, [r0] + str r3, [r2, #8] + ldr r0, [r0] + str r1, [r0] + bl ov24_0238C4CC + mov r0, #5 + bl FUN_02017C50 + ldr r0, _0238B384 @ =0x0238C600 + mov r1, #0x1c + ldr r3, [r0] + ldr r2, _0238B3F0 @ =0x00000399 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238B37C +_0238B278: + mov r0, #0xa + str r0, [r1, #0xc] + b _0238B37C +_0238B284: + mov r0, #0x20 + str r0, [r1, #8] + bl FUN_02310BDC + ldr r0, _0238B384 @ =0x0238C600 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8d] + bl FUN_0202F6DC + ldr r0, _0238B384 @ =0x0238C600 + ldr r2, _0238B3F4 @ =0x000003A3 + ldr ip, [r0] + mov r1, #0x1c + add r3, ip, #0x66 + str r3, [ip, #0x230] + ldr r3, [r0] + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238B37C +_0238B2D4: + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8c] + bl FUN_0202F148 + ldr r1, _0238B384 @ =0x0238C600 + mvn r3, #1 + ldr r2, [r1] + mov r0, #2 + strb r3, [r2, #0x28c] + ldr r1, [r1] + mov r2, #0 + add r3, r1, #0x66 + add r1, r1, #0x42 + add r3, r3, #0x100 + bl FUN_020367F0 + b _0238B37C +_0238B310: + add r0, r1, #0x66 + add r1, r1, #0x42 + add r3, r0, #0x100 + mov r0, #2 + mov r2, #0 + bl FUN_020367F0 + b _0238B37C +_0238B32C: + add r0, r1, #0x22 + bl FUN_0203909C + b _0238B37C +_0238B338: + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + bl FUN_0202F6DC + mov r0, #4 + bl FUN_02017C50 + ldr r0, _0238B384 @ =0x0238C600 + mov r1, #0x18 + ldr r3, [r0] + mov r2, #0x274 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + ldr r0, _0238B384 @ =0x0238C600 + mov r1, #4 + ldr r0, [r0] + str r1, [r0, #8] +_0238B37C: + add sp, sp, #0x1c + pop {r3, r4, pc} + .align 2, 0 +_0238B384: .4byte 0x0238C600 +_0238B388: .4byte 0x0238C50A +_0238B38C: .4byte 0x00003018 +_0238B390: .4byte 0x0000038A +_0238B394: .4byte 0x0000038B +_0238B398: .4byte 0x00003008 +_0238B39C: .4byte 0x0000038F +_0238B3A0: .4byte 0x0238C5C0 +_0238B3A4: .4byte 0x00300013 +_0238B3A8: .4byte 0x0238C538 +_0238B3AC: .4byte 0x00000391 +_0238B3B0: .4byte 0x0000220F +_0238B3B4: .4byte 0x00000392 +_0238B3B8: .4byte 0x00000393 +_0238B3BC: .4byte 0x00000397 +_0238B3C0: .4byte 0x00000396 +_0238B3C4: .4byte 0x00000715 +_0238B3C8: .4byte 0x00000395 +_0238B3CC: .4byte 0x0238C520 +_0238B3D0: .4byte 0x0238C508 +_0238B3D4: .4byte 0x000003A2 +_0238B3D8: .4byte 0x020A1868 +_0238B3DC: .4byte 0x000003A1 +_0238B3E0: .4byte 0x0238C514 +_0238B3E4: .4byte 0x020A18B8 +_0238B3E8: .4byte 0x020A18DC +_0238B3EC: .4byte 0x020A18E0 +_0238B3F0: .4byte 0x00000399 +_0238B3F4: .4byte 0x000003A3 + arm_func_end ov24_0238ADFC + + arm_func_start ov24_0238B3F8 +ov24_0238B3F8: @ 0x0238B3F8 + push {r3, r4, lr} + sub sp, sp, #0x1c + ldr r3, _0238C160 @ =0x0238C50A + add r2, sp, #0x12 + mov r1, #4 +_0238B40C: + ldrh r0, [r3], #2 + subs r1, r1, #1 + strh r0, [r2], #2 + bne _0238B40C + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, [r0] + ldr r2, [r1] + cmp r2, #0x26 + addls pc, pc, r2, lsl #2 + b _0238C158 +_0238B434: @ jump table + b _0238B4D0 @ case 0 + b _0238B608 @ case 1 + b _0238B66C @ case 2 + b _0238B6DC @ case 3 + b _0238C158 @ case 4 + b _0238B740 @ case 5 + b _0238B7BC @ case 6 + b _0238B838 @ case 7 + b _0238B8B4 @ case 8 + b _0238B92C @ case 9 + b _0238BABC @ case 10 + b _0238C158 @ case 11 + b _0238C158 @ case 12 + b _0238C158 @ case 13 + b _0238BA5C @ case 14 + b _0238BEF0 @ case 15 + b _0238BF4C @ case 16 + b _0238B9BC @ case 17 + b _0238B9D4 @ case 18 + b _0238BC3C @ case 19 + b _0238BB94 @ case 20 + b _0238BCDC @ case 21 + b _0238BCA8 @ case 22 + b _0238BE84 @ case 23 + b _0238BEA8 @ case 24 + b _0238C158 @ case 25 + b _0238B5DC @ case 26 + b _0238C158 @ case 27 + b _0238C158 @ case 28 + b _0238BB6C @ case 29 + b _0238C158 @ case 30 + b _0238C060 @ case 31 + b _0238C0B0 @ case 32 + b _0238C0EC @ case 33 + b _0238C108 @ case 34 + b _0238C158 @ case 35 + b _0238C158 @ case 36 + b _0238C114 @ case 37 + b _0238C054 @ case 38 +_0238B4D0: + mov r0, #0 + strb r0, [r1, #0x1f0] + bl FUN_0202F0B0 + ldr r2, _0238C164 @ =0x0238C600 + mov r1, #3 + ldr r3, [r2] + mov r2, #1 + strb r0, [r3, #0x28c] + mov r0, #0 + bl FUN_0202F5AC + ldr r2, _0238C164 @ =0x0238C600 + mov r1, #0x71 + ldr r3, [r2] + strb r0, [r3, #0x28d] + ldr r0, [r2] + add r0, r0, #0x294 + bl FUN_0204D7D4 + ldr r0, _0238C164 @ =0x0238C600 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x294 + bl FUN_0204D804 + ldr r0, _0238C164 @ =0x0238C600 + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238C164 @ =0x0238C600 + ldr r3, [r0] + ldrb r0, [r3, #0x21] + cmp r0, #0 + bne _0238B5C0 + ldrb r0, [r3, #0x20] + ldr r1, _0238C168 @ =0x00003018 + cmp r0, #0 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + bne _0238B594 + ldr r2, _0238C16C @ =0x0000038A + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238B5A0 +_0238B594: + ldr r2, _0238C170 @ =0x0000038B + add r3, r3, #0x1f8 + bl FUN_0202F1B4 +_0238B5A0: + ldr r0, _0238C164 @ =0x0238C600 + mov r3, #4 + ldr r2, [r0] + mov r1, #0x19 + str r3, [r2, #8] + ldr r0, [r0] + str r1, [r0] + b _0238C158 +_0238B5C0: + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + ldr r1, _0238C174 @ =0x00003008 + ldr r2, _0238C178 @ =0x0000038F + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238C158 +_0238B5DC: + ldr r0, _0238C17C @ =0x0238C5C0 + mov r4, #4 + ldr r1, _0238C180 @ =0x00300013 + ldr r3, _0238C184 @ =0x0238C538 + mov r2, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238C164 @ =0x0238C600 + ldr r1, [r1] + strb r0, [r1, #0x28f] + b _0238C158 +_0238B608: + bl ov24_0238C47C + ldr r0, _0238C164 @ =0x0238C600 + mov r2, #0 + ldr r1, [r0] + strb r2, [r1, #0x1f0] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, _0238C174 @ =0x00003008 + ldr r3, [r0] + ldr r2, _0238C178 @ =0x0000038F + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238C158 +_0238B66C: + bl ov24_0238C47C + ldr r0, _0238C164 @ =0x0238C600 + mov r3, #1 + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #8] + ldr r1, [r0] + strb r2, [r1, #0x1f0] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, _0238C168 @ =0x00003018 + ldr r3, [r0] + ldr r2, _0238C188 @ =0x00000391 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238C158 +_0238B6DC: + bl ov24_0238C47C + ldr r0, _0238C164 @ =0x0238C600 + mov r2, #4 + ldr r1, [r0] + str r2, [r1, #8] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, _0238C168 @ =0x00003018 + ldr r3, [r0] + mov r2, #0x390 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238C158 +_0238B740: + bl ov24_0238C47C + ldr r0, _0238C164 @ =0x0238C600 + ldr r2, _0238C18C @ =0x0000220F + ldr r1, [r0] + mov r3, #8 + str r2, [r1, #0x21c] + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #8] + ldr r1, [r0] + strb r2, [r1, #0x1f0] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, _0238C168 @ =0x00003018 + ldr r3, [r0] + ldr r2, _0238C190 @ =0x00000392 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238C158 +_0238B7BC: + bl ov24_0238C47C + ldr r0, _0238C164 @ =0x0238C600 + ldr r2, _0238C18C @ =0x0000220F + ldr r1, [r0] + mov r3, #8 + str r2, [r1, #0x21c] + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #8] + ldr r1, [r0] + strb r2, [r1, #0x1f0] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, _0238C168 @ =0x00003018 + ldr r3, [r0] + ldr r2, _0238C190 @ =0x00000392 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238C158 +_0238B838: + bl ov24_0238C47C + ldr r0, _0238C164 @ =0x0238C600 + ldr r2, _0238C18C @ =0x0000220F + ldr r1, [r0] + mov r3, #8 + str r2, [r1, #0x21c] + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #8] + ldr r1, [r0] + strb r2, [r1, #0x1f0] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, _0238C168 @ =0x00003018 + ldr r3, [r0] + ldr r2, _0238C190 @ =0x00000392 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238C158 +_0238B8B4: + ldr r0, _0238C18C @ =0x0000220F + bl FUN_02017CB4 + bl ov24_0238C47C + ldr r0, _0238C164 @ =0x0238C600 + mov r3, #1 + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #8] + ldr r1, [r0] + strb r2, [r1, #0x1f0] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, _0238C168 @ =0x00003018 + ldr r3, [r0] + mov r2, #0x398 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238C158 +_0238B92C: + bl ov24_0238C47C + ldr r0, _0238C164 @ =0x0238C600 + mov r2, #0xa + ldr r1, [r0] + mov r3, #0 + str r2, [r1, #8] + ldr r1, [r0] + ldr r2, _0238C18C @ =0x0000220F + strb r3, [r1, #0x1f0] + ldr r1, [r0] + str r2, [r1, #0x21c] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + bl FUN_0201077C + ldr r1, _0238C164 @ =0x0238C600 + ldr r1, [r1] + str r0, [r1, #0x1f8] + bl FUN_0204FD3C + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, _0238C168 @ =0x00003018 + ldr r3, [r0] + ldr r2, _0238C194 @ =0x00000393 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238C158 +_0238B9BC: + mov r2, #0x12 + str r2, [r1, #8] + ldr r0, [r0] + mov r1, #0x14 + str r1, [r0, #0x2a4] + b _0238C158 +_0238B9D4: + ldr r2, [r1, #0x2a4] + sub r2, r2, #1 + str r2, [r1, #0x2a4] + ldr r0, [r0] + ldr r0, [r0, #0x2a4] + cmp r0, #0 + bgt _0238C158 + mov r0, #3 + bl FUN_02017C10 + cmp r0, #0 + bne _0238BA08 + mov r0, #3 + bl FUN_02017C50 +_0238BA08: + ldr r1, _0238C164 @ =0x0238C600 + mov r2, #4 + ldr r0, [r1] + mov r3, #0x1b + str r2, [r0, #8] + ldr r2, [r1] + mov r0, #0 + str r3, [r2] + ldr r2, [r1] + add r1, r2, #0x52 + str r1, [r2, #0x230] + bl FUN_02010794 + ldr r0, _0238C164 @ =0x0238C600 + ldr r2, _0238C198 @ =0x00000397 + ldr r3, [r0] + mov r1, #0x1c + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238C158 +_0238BA5C: + mov r2, #0x1b + str r2, [r1] + ldr r1, [r0] + mov r2, #0x1d + str r2, [r1, #8] + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8d] + bl FUN_0202F6DC + ldr r0, _0238C164 @ =0x0238C600 + ldr r2, _0238C19C @ =0x00000396 + ldr r4, [r0] + mov r1, #4 + add r3, r4, #0x66 + str r3, [r4, #0x230] + ldr r4, [r0] + ldrsh r3, [r4, #0x14] + str r3, [r4, #0x20c] + ldr r3, [r0] + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238C158 +_0238BABC: + ldr r0, _0238C18C @ =0x0000220F + bl FUN_02017CB4 + ldr r0, _0238C164 @ =0x0238C600 + ldr r2, _0238C1A0 @ =0x00000715 + ldr r1, [r0] + mov r3, #5 + str r2, [r1, #0x21c] + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #0x220] + ldr r3, [r0] + add r1, r3, #0x52 + str r1, [r3, #0x230] + ldr r1, [r0] + strb r2, [r1, #0x1f0] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238C164 @ =0x0238C600 + mov r3, #0x1b + ldr r1, [r0] + mov r2, #0xe + str r3, [r1] + ldr r1, [r0] + str r2, [r1, #8] + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, _0238C168 @ =0x00003018 + ldr r4, [r0] + ldr r2, _0238C1A4 @ =0x00000395 + ldrsh r3, [r4, #0x14] + str r3, [r4, #0x20c] + ldr r3, [r0] + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238C158 +_0238BB6C: + mov r0, #0 + ldr r3, _0238C1A8 @ =0x0238C520 + mov r2, r0 + mov r1, #0x11 + str r0, [sp] + bl FUN_0202B0EC + ldr r1, _0238C164 @ =0x0238C600 + ldr r1, [r1] + strb r0, [r1, #0x28f] + b _0238C158 +_0238BB94: + add r0, r1, #0x1bc + bl FUN_0206351C + ldr r0, _0238C164 @ =0x0238C600 + mov r1, #0x71 + ldr r0, [r0] + add r0, r0, #0x100 + strh r1, [r0, #0xbc] + bl FUN_0201077C + ldr r2, _0238C164 @ =0x0238C600 + mov r4, #6 + ldr r1, [r2] + mov r3, #0 + add r1, r1, #0x100 + strh r0, [r1, #0xe0] + ldr r0, [r2] + strb r4, [r0, #0x1be] + ldr r0, [r2] + str r3, [r0, #0x1c4] + bl FUN_0201077C + mov r1, r0 + add r0, sp, #0x12 + mov r2, #1 + mov r3, #0 + bl FUN_02053B60 + bl FUN_0201077C + add r2, sp, #0x12 + mov r1, r0 + mov r0, #1 + str r2, [sp] + str r0, [sp, #4] + ldr r0, _0238C164 @ =0x0238C600 + ldr r3, _0238C1AC @ =0x0238C508 + ldr r2, [r0] + add r0, r2, #0x248 + add r2, r2, #0x42 + bl FUN_02052F8C + ldr r0, _0238C164 @ =0x0238C600 + mov r1, #1 + ldr r0, [r0] + add r0, r0, #0x248 + bl FUN_023061E4 + b _0238C158 +_0238BC3C: + mov r0, #0 + bl FUN_02055964 + mvn r1, #0 + cmp r0, r1 + bne _0238BC90 + ldr r0, _0238C164 @ =0x0238C600 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8c] + bl FUN_0202F2C4 + ldr r0, _0238C164 @ =0x0238C600 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8d] + bl FUN_0202F6DC + ldr r0, _0238C164 @ =0x0238C600 + mov r1, #0x14 + ldr r0, [r0] + str r1, [r0] + bl ov24_0238B3F8 + b _0238C158 +_0238BC90: + ldr r0, _0238C164 @ =0x0238C600 + mov r1, #0xf + ldr r0, [r0] + str r1, [r0] + bl ov24_0238B3F8 + b _0238C158 +_0238BCA8: + mov r2, #0x17 + str r2, [r1, #8] + ldr r1, [r0] + mov r2, #0x1b + str r2, [r1] + ldr r3, [r0] + ldr r1, _0238C168 @ =0x00003018 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + ldr r2, _0238C1B0 @ =0x000003A2 + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238C158 +_0238BCDC: + bl FUN_0200224C + mov r1, #0x64 + bl FUN_0208FEA4 + ldr r0, _0238C1B4 @ =0x020A1868 + ldrsh r0, [r0] + cmp r1, r0 + bge _0238BE70 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, [r0] + ldrsh r0, [r1, #0x16] + cmp r0, #0 + moveq r0, #4 + streq r0, [r1] + beq _0238C158 + bl ov24_0238C4CC + bl FUN_0200EDC0 + cmp r0, #0 + beq _0238BD9C + ldr r0, _0238C164 @ =0x0238C600 + mov r2, #0x16 + ldr r1, [r0] + mov r3, #0x1b + str r2, [r1, #8] + ldr r1, [r0] + mov r2, #0 + str r3, [r1] + ldr r1, [r0] + strb r2, [r1, #0x1f0] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, _0238C168 @ =0x00003018 + ldr r3, [r0] + ldr r2, _0238C1B8 @ =0x000003A1 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238C158 +_0238BD9C: + ldr r0, _0238C164 @ =0x0238C600 + mov r2, #0 + ldr r1, [r0] + strb r2, [r1, #0x1f0] + ldr r2, [r0] + add r0, r2, #0x100 + ldrsb r1, [r0, #0xf0] + add r0, r2, #0x294 + bl FUN_0204D7F4 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + add r1, r1, #0x294 + bl FUN_0202F690 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, _0238C168 @ =0x00003018 + ldr r3, [r0] + ldr r2, _0238C1B8 @ =0x000003A1 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + ldr r0, _0238C164 @ =0x0238C600 + mov r3, #0x25 + ldr r2, [r0] + mov r1, #0 + str r3, [r2, #8] + ldr r2, [r0] + add r0, sp, #0xe + ldrsh r2, [r2, #0x16] + strh r2, [sp, #0xe] + strh r1, [sp, #0x10] + bl FUN_0200F84C + mov r0, #0 + strb r0, [sp, #8] + ldr r0, _0238C164 @ =0x0238C600 + ldrsh r2, [sp, #0xe] + ldrh r1, [sp, #0x10] + ldr r0, [r0] + strh r2, [sp, #0xc] + add r0, r0, #0x7a + strh r1, [sp, #0xa] + ldr r2, _0238C1BC @ =0x0238C514 + add r1, sp, #8 + add r0, r0, #0x100 + bl FUN_0200D670 + ldr r0, _0238C164 @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x7a + add r0, r0, #0x100 + str r0, [r1, #0x230] + b _0238C158 +_0238BE70: + ldr r0, _0238C164 @ =0x0238C600 + mov r1, #4 + ldr r0, [r0] + str r1, [r0] + b _0238C158 +_0238BE84: + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8c] + bl FUN_0202F2C4 + ldr r0, _0238C164 @ =0x0238C600 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8d] + bl FUN_0202F6DC + b _0238C158 +_0238BEA8: + add r0, r1, #0x1bc + bl FUN_0206351C + ldr r3, _0238C164 @ =0x0238C600 + mov r2, #1 + ldr r0, [r3] + mov r1, #0 + str r2, [r0, #0x1c8] + ldr r0, [r3] + mov r2, r1 + str r1, [r0, #0x1e4] + ldr r0, [r3] + ldrsh r4, [r0, #0x16] + add r0, r0, #0x100 + strh r4, [r0, #0xd0] + ldr r0, [r3] + add r0, r0, #0x1bc + bl FUN_0203D438 + b _0238C158 +_0238BEF0: + bl FUN_0201077C + mov r1, r0 + add r0, sp, #0x12 + mov r2, #1 + mov r3, #0 + bl FUN_02053B60 + bl FUN_0201077C + mov r2, #1 + str r2, [sp] + ldr r1, _0238C164 @ =0x0238C600 + ldr r2, _0238C1AC @ =0x0238C508 + ldr r1, [r1] + add r3, sp, #0x12 + add r1, r1, #0x42 + bl FUN_02055DD0 + ldr r1, _0238C164 @ =0x0238C600 + mov r2, #0x26 + ldr r3, [r1] + str r0, [r3, #0x1e8] + ldr r0, [r1] + str r2, [r0] + bl ov24_0238B3F8 + b _0238C158 +_0238BF4C: + ldr r0, [r1, #0x1e8] + add r1, r1, #0x42 + add r0, r0, #0x3a + mov r2, #0xa + bl FUN_0202511C + ldr r2, _0238C164 @ =0x0238C600 + ldr r0, _0238C1C0 @ =0x020A18B8 + ldr r1, [r2] + ldrsh r3, [r0] + ldr lr, [r1, #0x1e8] + ldr r1, _0238C1C4 @ =0x020A18DC + ldrsh r4, [lr, #0xa] + ldr r0, _0238C1C8 @ =0x020A18E0 + ldrsh ip, [r1] + add r3, r4, r3 + strh r3, [lr, #0xa] + ldr r4, [r2] + ldrsh r3, [r1, #2] + ldr r4, [r4, #0x1e8] + ldrsh r1, [r0] + ldrb lr, [r4, #0xc] + ldrsh r0, [r0, #2] + add ip, lr, ip + strb ip, [r4, #0xc] + ldr ip, [r2] + ldr lr, [ip, #0x1e8] + ldrb ip, [lr, #0xd] + add r3, ip, r3 + strb r3, [lr, #0xd] + ldr r3, [r2] + ldr ip, [r3, #0x1e8] + ldrb r3, [ip, #0xe] + add r1, r3, r1 + strb r1, [ip, #0xe] + ldr r1, [r2] + ldr r2, [r1, #0x1e8] + ldrb r1, [r2, #0xf] + add r0, r1, r0 + strb r0, [r2, #0xf] + bl FUN_0201077C + bl FUN_0204FDFC + ldr r1, _0238C164 @ =0x0238C600 + mov r0, #0 + ldr r2, [r1] + add r1, r2, #0x22 + str r1, [r2, #0x230] + bl FUN_02010794 + mov r3, #0x15 + ldr r0, _0238C164 @ =0x0238C600 + mov r1, #0x1b + ldr r2, [r0] + str r3, [r2, #8] + ldr r0, [r0] + str r1, [r0] + bl ov24_0238C4CC + mov r0, #5 + bl FUN_02017C50 + ldr r0, _0238C164 @ =0x0238C600 + mov r1, #0x1c + ldr r3, [r0] + ldr r2, _0238C1CC @ =0x00000399 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238C158 +_0238C054: + mov r0, #0xa + str r0, [r1, #0xc] + b _0238C158 +_0238C060: + mov r0, #0x20 + str r0, [r1, #8] + bl FUN_02310BDC + ldr r0, _0238C164 @ =0x0238C600 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8d] + bl FUN_0202F6DC + ldr r0, _0238C164 @ =0x0238C600 + ldr r2, _0238C1D0 @ =0x000003A3 + ldr ip, [r0] + mov r1, #0x1c + add r3, ip, #0x66 + str r3, [ip, #0x230] + ldr r3, [r0] + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + b _0238C158 +_0238C0B0: + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8c] + bl FUN_0202F148 + ldr r1, _0238C164 @ =0x0238C600 + mvn r3, #1 + ldr r2, [r1] + mov r0, #2 + strb r3, [r2, #0x28c] + ldr r1, [r1] + mov r2, #0 + add r3, r1, #0x66 + add r1, r1, #0x42 + add r3, r3, #0x100 + bl FUN_020367F0 + b _0238C158 +_0238C0EC: + add r0, r1, #0x66 + add r1, r1, #0x42 + add r3, r0, #0x100 + mov r0, #2 + mov r2, #0 + bl FUN_020367F0 + b _0238C158 +_0238C108: + add r0, r1, #0x22 + bl FUN_0203909C + b _0238C158 +_0238C114: + add r0, r1, #0x200 + ldrsb r0, [r0, #0x8d] + bl FUN_0202F6DC + mov r0, #4 + bl FUN_02017C50 + ldr r0, _0238C164 @ =0x0238C600 + mov r1, #0x18 + ldr r3, [r0] + mov r2, #0x274 + add r0, r3, #0x200 + ldrsb r0, [r0, #0x8c] + add r3, r3, #0x1f8 + bl FUN_0202F1B4 + ldr r0, _0238C164 @ =0x0238C600 + mov r1, #4 + ldr r0, [r0] + str r1, [r0, #8] +_0238C158: + add sp, sp, #0x1c + pop {r3, r4, pc} + .align 2, 0 +_0238C160: .4byte 0x0238C50A +_0238C164: .4byte 0x0238C600 +_0238C168: .4byte 0x00003018 +_0238C16C: .4byte 0x0000038A +_0238C170: .4byte 0x0000038B +_0238C174: .4byte 0x00003008 +_0238C178: .4byte 0x0000038F +_0238C17C: .4byte 0x0238C5C0 +_0238C180: .4byte 0x00300013 +_0238C184: .4byte 0x0238C538 +_0238C188: .4byte 0x00000391 +_0238C18C: .4byte 0x0000220F +_0238C190: .4byte 0x00000392 +_0238C194: .4byte 0x00000393 +_0238C198: .4byte 0x00000397 +_0238C19C: .4byte 0x00000396 +_0238C1A0: .4byte 0x00000715 +_0238C1A4: .4byte 0x00000395 +_0238C1A8: .4byte 0x0238C520 +_0238C1AC: .4byte 0x0238C508 +_0238C1B0: .4byte 0x000003A2 +_0238C1B4: .4byte 0x020A1868 +_0238C1B8: .4byte 0x000003A1 +_0238C1BC: .4byte 0x0238C514 +_0238C1C0: .4byte 0x020A18B8 +_0238C1C4: .4byte 0x020A18DC +_0238C1C8: .4byte 0x020A18E0 +_0238C1CC: .4byte 0x00000399 +_0238C1D0: .4byte 0x000003A3 + arm_func_end ov24_0238B3F8 + + arm_func_start ov24_0238C1D4 +ov24_0238C1D4: @ 0x0238C1D4 + push {r3, lr} + mov r0, #0x2a8 + mov r1, #6 + bl FUN_02001170 + ldr r1, _0238C33C @ =0x0238C600 + mov r3, #0 + str r0, [r1] + str r3, [r0, #0x1c] + ldr r0, [r1] + sub r2, r3, #2 + str r3, [r0, #0x1f4] + ldr r0, [r1] + strb r2, [r0, #0x28c] + ldr r0, [r1] + strb r2, [r0, #0x28d] + bl FUN_0201077C + ldr r2, _0238C33C @ =0x0238C600 + mov r1, r0 + ldr r0, [r2] + add r0, r0, #0x52 + bl FUN_02052394 + ldr r0, _0238C33C @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x66 + add r0, r0, #0x100 + add r1, r1, #0x52 + bl FUN_02025230 + ldr r0, _0238C33C @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x22 + add r1, r1, #0x52 + bl FUN_02089694 + ldr r0, _0238C33C @ =0x0238C600 + ldr r1, [r0] + add r0, r1, #0x42 + add r1, r1, #0x66 + add r1, r1, #0x100 + bl FUN_02025100 + bl FUN_0201077C + mov r1, r0 + ldr r0, _0238C33C @ =0x0238C600 + mov r2, #0x4e + ldr r0, [r0] + add r0, r0, #0x66 + bl FUN_02052440 + ldr r0, _0238C33C @ =0x0238C600 + ldr r0, [r0] + add r0, r0, #0x1f8 + bl FUN_02023690 + mov r3, #0x71 + ldr r0, _0238C33C @ =0x0238C600 + mov r2, #0 + ldr r1, [r0] + str r3, [r1, #0x244] + ldr r1, [r0] + str r3, [r1, #0x1f8] + ldr r1, [r0] + str r2, [r1, #0xc] + ldr r0, [r0] + str r2, [r0, #0x2a4] + bl FUN_0201077C + cmp r0, #0 + bne _0238C2FC + mov r0, #8 + bl FUN_0204FBFC + ldr r1, _0238C33C @ =0x0238C600 + mov r2, #0 + ldr r3, [r1] + strb r0, [r3, #0x20] + ldr r1, [r1] + mov r0, #1 + strb r2, [r1, #0x21] + bl FUN_020107C4 + b _0238C32C +_0238C2FC: + bl FUN_020107AC + ldr r1, _0238C33C @ =0x0238C600 + mov r2, #1 + ldr r3, [r1] + strb r0, [r3, #0x20] + ldr r0, [r1] + strb r2, [r0, #0x21] + bl FUN_0201077C + bl FUN_0200EB90 + ldr r1, _0238C33C @ =0x0238C600 + ldr r1, [r1] + strh r0, [r1, #0x16] +_0238C32C: + mov r0, #0 + bl ov24_0238A610 + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0238C33C: .4byte 0x0238C600 + arm_func_end ov24_0238C1D4 + + arm_func_start ov24_0238C340 +ov24_0238C340: @ 0x0238C340 + push {r3, lr} + ldr r0, _0238C368 @ =0x0238C600 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0238C368 @ =0x0238C600 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0238C368: .4byte 0x0238C600 + arm_func_end ov24_0238C340 +_0238C36C: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0x00, 0x01, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0xF4, 0x11, 0x92, 0xE5, 0x03, 0x00, 0x51, 0xE3 + .byte 0x01, 0xF1, 0x8F, 0x90, 0x39, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA + .byte 0x1C, 0x00, 0x00, 0xEA, 0x32, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0xF4, 0x01, 0x82, 0xE5 + .byte 0x32, 0x00, 0x00, 0xEA, 0x65, 0xF7, 0xFF, 0xEB, 0x03, 0x00, 0x50, 0xE3, 0x2F, 0x00, 0x00, 0x1A + .byte 0xC0, 0x00, 0x9F, 0xE5, 0x02, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x04, 0x10, 0x43, 0xE2 + .byte 0xF4, 0x31, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x02, 0x0C, 0x80, 0xE2, 0xDC, 0x08, 0xD0, 0xE1 + .byte 0x01, 0x00, 0x50, 0xE1, 0x05, 0x00, 0x00, 0x0A, 0xB9, 0x8B, 0xF2, 0xEB, 0x94, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x02, 0x0C, 0x80, 0xE2, 0xDC, 0x08, 0xD0, 0xE1, 0xDE, 0x6F, 0xF2, 0xEB + .byte 0x80, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x02, 0x0C, 0x80, 0xE2, 0xDD, 0x08, 0xD0, 0xE1 + .byte 0xB5, 0x8C, 0xF2, 0xEB, 0x19, 0x00, 0x00, 0xEA, 0x03, 0x10, 0xA0, 0xE3, 0xF4, 0x11, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x05, 0x10, 0x41, 0xE2, 0x02, 0x0C, 0x80, 0xE2, 0xDC, 0x08, 0xD0, 0xE1 + .byte 0x01, 0x00, 0x50, 0xE1, 0x04, 0x00, 0x00, 0x0A, 0x46, 0x8B, 0xF2, 0xEB, 0x44, 0x00, 0x9F, 0xE5 + .byte 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x8C, 0x12, 0xC0, 0xE5, 0x34, 0x00, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x02, 0x0C, 0x80, 0xE2, 0xDD, 0x08, 0xD0, 0xE1, 0x7F, 0x8C, 0xF2, 0xEB + .byte 0x20, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x8D, 0x12, 0xC0, 0xE5 + .byte 0x02, 0x00, 0x00, 0xEA, 0x7F, 0x6A, 0xFD, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8 + .byte 0x01, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8, 0x00, 0xC6, 0x38, 0x02 + + arm_func_start ov24_0238C47C +ov24_0238C47C: @ 0x0238C47C + push {r3, lr} + ldr r0, _0238C4C8 @ =0x0238C600 + mvn r1, #1 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8f] + cmp r0, r1 + popeq {r3, pc} + bl FUN_0202836C + ldr r0, _0238C4C8 @ =0x0238C600 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8f] + bl FUN_0202B4C4 + ldr r0, _0238C4C8 @ =0x0238C600 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x28f] + pop {r3, pc} + .align 2, 0 +_0238C4C8: .4byte 0x0238C600 + arm_func_end ov24_0238C47C + + arm_func_start ov24_0238C4CC +ov24_0238C4CC: @ 0x0238C4CC + push {r3, lr} + ldr r0, _0238C504 @ =0x0238C600 + mvn r1, #1 + ldr r0, [r0] + add r0, r0, #0x200 + ldrsb r0, [r0, #0x8c] + cmp r0, r1 + popne {r3, pc} + mov r0, #0 + bl FUN_0202F0B0 + ldr r1, _0238C504 @ =0x0238C600 + ldr r1, [r1] + strb r0, [r1, #0x28c] + pop {r3, pc} + .align 2, 0 +_0238C504: .4byte 0x0238C600 + arm_func_end ov24_0238C4CC + @ 0x0238C508 diff --git a/asm/overlay_25.s b/asm/overlay_25.s index b604c9fe..a540551e 100644 --- a/asm/overlay_25.s +++ b/asm/overlay_25.s @@ -3,3 +3,1267 @@ .include "global.inc" .text + + arm_func_start ov25_0238A140 +ov25_0238A140: @ 0x0238A140 + push {r3, lr} + ldr r0, _0238A67C @ =0x0238B5E0 + ldr r2, [r0] + ldr r1, [r2] + cmp r1, #0x1f + addls pc, pc, r1, lsl #2 + b _0238A63C +_0238A15C: @ jump table + b _0238A1DC @ case 0 + b _0238A1DC @ case 1 + b _0238A63C @ case 2 + b _0238A63C @ case 3 + b _0238A3FC @ case 4 + b _0238A63C @ case 5 + b _0238A63C @ case 6 + b _0238A63C @ case 7 + b _0238A63C @ case 8 + b _0238A63C @ case 9 + b _0238A63C @ case 10 + b _0238A63C @ case 11 + b _0238A210 @ case 12 + b _0238A210 @ case 13 + b _0238A2C4 @ case 14 + b _0238A350 @ case 15 + b _0238A394 @ case 16 + b _0238A63C @ case 17 + b _0238A63C @ case 18 + b _0238A5C0 @ case 19 + b _0238A5F8 @ case 20 + b _0238A63C @ case 21 + b _0238A63C @ case 22 + b _0238A63C @ case 23 + b _0238A63C @ case 24 + b _0238A404 @ case 25 + b _0238A464 @ case 26 + b _0238A63C @ case 27 + b _0238A63C @ case 28 + b _0238A394 @ case 29 + b _0238A4F8 @ case 30 + b _0238A56C @ case 31 +_0238A1DC: + add r0, r2, #0x100 + ldrsb r0, [r0, #0x38] + bl FUN_0202F180 + cmp r0, #0 + bne _0238A674 + mov r0, #0x1a + bl ov25_0238A694 + ldr r0, _0238A67C @ =0x0238B5E0 + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x38] + bl FUN_0202F3A4 + b _0238A674 +_0238A210: + bl FUN_0230BA64 + cmp r0, #2 + beq _0238A228 + cmp r0, #3 + beq _0238A248 + b _0238A260 +_0238A228: + ldr r0, _0238A67C @ =0x0238B5E0 + mov r3, #0x1f + ldr r2, [r0] + mov r1, #1 + str r3, [r2] + ldr r0, [r0] + str r1, [r0, #4] + b _0238A674 +_0238A248: + ldr r0, _0238A67C @ =0x0238B5E0 + ldr r0, [r0] + add r0, r0, #0xc + bl FUN_0230B8C0 + mov r0, #0xe + bl ov25_0238A694 +_0238A260: + bl FUN_0230BD28 + cmp r0, #0 + beq _0238A674 + add r1, sp, #0 + mov r0, #0 + bl FUN_0200625C + ldrh r0, [sp] + tst r0, #8 + beq _0238A674 + ldr r0, _0238A680 @ =0x00003F02 + mov r1, #0x100 + bl FUN_02017C74 + ldr r0, _0238A67C @ =0x0238B5E0 + ldr r0, [r0] + add r0, r0, #0xc + bl FUN_0230B8C0 + bl ov25_0238B380 + ldr r0, _0238A67C @ =0x0238B5E0 + mov r3, #0xf + ldr r2, [r0] + mov r1, #0x1f + str r3, [r2, #4] + ldr r0, [r0] + str r1, [r0] + b _0238A674 +_0238A2C4: + add r0, r2, #0x100 + ldrsb r0, [r0, #0x3a] + bl FUN_0202B57C + cmp r0, #1 + beq _0238A334 + cmp r0, #6 + beq _0238A310 + cmp r0, #7 + bne _0238A674 + ldr r0, _0238A67C @ =0x0238B5E0 + mov r1, #0x10 + ldr r0, [r0] + str r1, [r0, #4] + bl ov25_0238B380 + ldr r0, _0238A67C @ =0x0238B5E0 + mov r1, #0x1f + ldr r0, [r0] + str r1, [r0] + b _0238A674 +_0238A310: + bl ov25_0238B380 + ldr r0, _0238A67C @ =0x0238B5E0 + mov r3, #0xf + ldr r2, [r0] + mov r1, #0x1f + str r3, [r2, #4] + ldr r0, [r0] + str r1, [r0] + b _0238A674 +_0238A334: + bl ov25_0238B380 + ldr r0, _0238A67C @ =0x0238B5E0 + mov r1, #0xd + ldr r0, [r0] + str r1, [r0] + bl FUN_0230BCF8 + b _0238A674 +_0238A350: + add r0, r2, #0x100 + ldrsb r0, [r0, #0x3b] + bl FUN_0202E6E4 + cmp r0, #0 + bne _0238A674 + ldr r0, _0238A67C @ =0x0238B5E0 + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x3b] + bl FUN_0202E6C8 + ldr r0, _0238A67C @ =0x0238B5E0 + mvn r2, #1 + ldr r1, [r0] + mov r0, #0xd + strb r2, [r1, #0x13b] + bl ov25_0238A694 + b _0238A674 +_0238A394: + add r0, r2, #0x100 + ldrsb r0, [r0, #0x3a] + bl FUN_0202B57C + cmp r0, #1 + beq _0238A3EC + cmp r0, #4 + beq _0238A3BC + cmp r0, #5 + beq _0238A3EC + b _0238A674 +_0238A3BC: + bl ov25_0238B380 + bl FUN_0200ECFC + cmp r0, #0x96 + bge _0238A3D8 + mov r0, #9 + bl ov25_0238A694 + b _0238A674 +_0238A3D8: + mov r0, #0x11 + bl ov25_0238A694 + ldr r0, _0238A684 @ =0x00001308 + bl FUN_02017C80 + b _0238A674 +_0238A3EC: + bl ov25_0238B380 + mov r0, #0x12 + bl ov25_0238A694 + b _0238A674 +_0238A3FC: + mov r0, #3 + pop {r3, pc} +_0238A404: + add r0, r2, #0x100 + ldrsb r0, [r0, #0x38] + bl FUN_0202F180 + cmp r0, #0 + bne _0238A674 + ldr r0, _0238A67C @ =0x0238B5E0 + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x38] + bl FUN_0202F3A4 + ldr r0, _0238A67C @ =0x0238B5E0 + mov r2, #0x20 + ldr r1, [r0] + str r2, [r1] + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x38] + bl FUN_0202F2C4 + ldr r0, _0238A67C @ =0x0238B5E0 + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x39] + bl FUN_0202F6DC + b _0238A674 +_0238A464: + add r0, r2, #0x100 + arm_func_end ov25_0238A140 + + arm_func_start ov25_0238A468 +ov25_0238A468: @ 0x0238A468 + ldrsb r0, [r0, #0x3a] + bl FUN_0202B57C + cmp r0, #1 + ldrne r1, _0238A67C @ =0x0238B5E0 + ldrne r1, [r1] + strne r0, [r1, #0x14] + cmp r0, #1 + beq _0238A4E8 + cmp r0, #6 + beq _0238A4D8 + cmp r0, #7 + bne _0238A674 + bl ov25_0238B380 + bl FUN_0200EDFC + cmp r0, #0 + bne _0238A4B4 + mov r0, #5 + bl ov25_0238A694 + b _0238A674 +_0238A4B4: + bl FUN_0230B724 + cmp r0, #0 + bne _0238A4CC + mov r0, #6 + bl ov25_0238A694 + b _0238A674 +_0238A4CC: + mov r0, #0xa + bl ov25_0238A694 + b _0238A674 +_0238A4D8: + bl ov25_0238B380 + mov r0, #2 + bl ov25_0238A694 + b _0238A674 +_0238A4E8: + bl ov25_0238B380 + mov r0, #3 + bl ov25_0238A694 + b _0238A674 +_0238A4F8: + ldr r1, [r2, #8] + add r1, r1, #1 + str r1, [r2, #8] + ldr r1, [r0] + ldr r0, [r1, #8] + cmp r0, #1 + beq _0238A528 + cmp r0, #2 + beq _0238A674 + cmp r0, #3 + beq _0238A550 + b _0238A674 +_0238A528: + add r0, r1, #0x100 + ldrsb r0, [r0, #0x3c] + bl FUN_0202836C + ldr r0, _0238A67C @ =0x0238B5E0 + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x3c] + bl FUN_0202F918 + bl FUN_0230B9BC + b _0238A674 +_0238A550: + ldr r0, [r1, #4] + bl ov25_0238A694 + ldr r0, _0238A67C @ =0x0238B5E0 + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #8] + b _0238A674 +_0238A56C: + ldr r1, [r2, #8] + add r1, r1, #1 + str r1, [r2, #8] + ldr r1, [r0] + ldr r0, [r1, #8] + cmp r0, #1 + beq _0238A59C + cmp r0, #2 + beq _0238A674 + cmp r0, #3 + beq _0238A5A4 + b _0238A674 +_0238A59C: + bl FUN_0230B9BC + b _0238A674 +_0238A5A4: + ldr r0, [r1, #4] + bl ov25_0238A694 + ldr r0, _0238A67C @ =0x0238B5E0 + mov r1, #0 + ldr r0, [r0] + str r1, [r0, #8] + b _0238A674 +_0238A5C0: + mov r1, #0x14 + str r1, [r2, #4] + ldr r3, [r0] + ldr r1, _0238A688 @ =0x00003008 + add r0, r3, #0x100 + ldrsb r0, [r0, #0x38] + ldr r2, _0238A68C @ =0x000003E2 + add r3, r3, #0x28 + bl FUN_0202F1B4 + ldr r0, _0238A67C @ =0x0238B5E0 + mov r1, #0x1b + ldr r0, [r0] + str r1, [r0] + b _0238A674 +_0238A5F8: + mov r1, #4 + str r1, [r2, #0x50] + ldr r1, [r0] + mov r2, #1 + str r2, [r1, #4] + ldr r3, [r0] + ldr r1, _0238A690 @ =0x00003018 + add r0, r3, #0x100 + ldrsb r0, [r0, #0x38] + rsb r2, r2, #0x3e4 + add r3, r3, #0x28 + bl FUN_0202F1B4 + ldr r0, _0238A67C @ =0x0238B5E0 + mov r1, #0x1b + ldr r0, [r0] + str r1, [r0] + b _0238A674 +_0238A63C: + add r0, r2, #0x100 + ldrsb r0, [r0, #0x38] + bl FUN_0202F180 + cmp r0, #0 + bne _0238A674 + ldr r0, _0238A67C @ =0x0238B5E0 + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x38] + bl FUN_0202F3A4 + ldr r0, _0238A67C @ =0x0238B5E0 + ldr r0, [r0] + ldr r0, [r0, #4] + bl ov25_0238A694 +_0238A674: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0238A67C: .4byte 0x0238B5E0 +_0238A680: .4byte 0x00003F02 +_0238A684: .4byte 0x00001308 +_0238A688: .4byte 0x00003008 +_0238A68C: .4byte 0x000003E2 +_0238A690: .4byte 0x00003018 + arm_func_end ov25_0238A468 + + arm_func_start ov25_0238A694 +ov25_0238A694: @ 0x0238A694 + push {r3, lr} + sub sp, sp, #0x68 + ldr ip, _0238B0D0 @ =0x0238B5E0 + ldr r1, [ip] + str r0, [r1] + ldr r1, [ip] + ldr r0, [r1] + cmp r0, #0x1d + addls pc, pc, r0, lsl #2 + b _0238B0C8 +_0238A6BC: @ jump table + b _0238A734 @ case 0 + b _0238A828 @ case 1 + b _0238A890 @ case 2 + b _0238A904 @ case 3 + b _0238B0C8 @ case 4 + b _0238A96C @ case 5 + b _0238A9E0 @ case 6 + b _0238AA54 @ case 7 + b _0238AAC8 @ case 8 + b _0238AB3C @ case 9 + b _0238ABBC @ case 10 + b _0238AC1C @ case 11 + b _0238AD04 @ case 12 + b _0238AD48 @ case 13 + b _0238AD8C @ case 14 + b _0238ADC0 @ case 15 + b _0238AE64 @ case 16 + b _0238AF64 @ case 17 + b _0238AC90 @ case 18 + b _0238AF34 @ case 19 + b _0238AF40 @ case 20 + b _0238AF4C @ case 21 + b _0238B0C8 @ case 22 + b _0238B0C8 @ case 23 + b _0238B0C8 @ case 24 + b _0238B0C8 @ case 25 + b _0238A7E4 @ case 26 + b _0238B0C8 @ case 27 + b _0238B0C8 @ case 28 + b _0238AEF0 @ case 29 +_0238A734: + mov r2, #0x96 + mov r0, #0 + str r2, [r1, #0x4c] + bl FUN_0202F0B0 + ldr r3, _0238B0D0 @ =0x0238B5E0 + ldr r1, _0238B0D4 @ =0x00003008 + ldr ip, [r3] + ldr r2, _0238B0D8 @ =0x000003D7 + strb r0, [ip, #0x138] + ldr r3, [r3] + add r0, r3, #0x100 + ldrsb r0, [r0, #0x38] + add r3, r3, #0x28 + bl FUN_0202F1B4 + mov r0, #0 + mov r1, #3 + mov r2, #1 + bl FUN_0202F5AC + ldr r2, _0238B0D0 @ =0x0238B5E0 + mov r1, #0xb2 + ldr r3, [r2] + strb r0, [r3, #0x139] + ldr r0, [r2] + add r0, r0, #0x140 + bl FUN_0204D7D4 + ldr r0, _0238B0D0 @ =0x0238B5E0 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x140 + bl FUN_0204D804 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, [r0] + add r0, r1, #0x140 + ldr r1, [r1, #0x20] + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, [r0] + add r0, r1, #0x100 + ldrsb r0, [r0, #0x39] + add r1, r1, #0x140 + bl FUN_0202F690 + b _0238B0C8 +_0238A7E4: + ldr r0, _0238B0DC @ =0x0238B4A4 + ldr r1, _0238B0E0 @ =ov25_0238B414 + bl FUN_0202F8C4 + ldr r2, _0238B0D0 @ =0x0238B5E0 + ldr r1, _0238B0E4 @ =0x00300013 + ldr r2, [r2] + ldr r3, _0238B0E8 @ =0x0238B4CC + strb r0, [r2, #0x13d] + mov ip, #4 + ldr r0, _0238B0EC @ =0x0238B564 + mov r2, #0 + str ip, [sp] + bl FUN_0202B0EC + ldr r1, _0238B0D0 @ =0x0238B5E0 + ldr r1, [r1] + strb r0, [r1, #0x13a] + b _0238B0C8 +_0238A828: + bl ov25_0238B380 + ldr r0, _0238B0D0 @ =0x0238B5E0 + mov r2, #0 + ldr r1, [r0] + str r2, [r1, #0x20] + ldr r0, [r0] + ldr r1, [r0, #0x20] + add r0, r0, #0x140 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, [r0] + add r0, r1, #0x100 + ldrsb r0, [r0, #0x39] + add r1, r1, #0x140 + bl FUN_0202F690 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, _0238B0D4 @ =0x00003008 + ldr r3, [r0] + ldr r2, _0238B0F0 @ =0x000003DD + add r0, r3, #0x100 + ldrsb r0, [r0, #0x38] + add r3, r3, #0x28 + bl FUN_0202F1B4 + b _0238B0C8 +_0238A890: + bl ov25_0238B380 + ldr r0, _0238B0D0 @ =0x0238B5E0 + mov r3, #1 + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #4] + ldr r1, [r0] + str r2, [r1, #0x20] + ldr r0, [r0] + ldr r1, [r0, #0x20] + add r0, r0, #0x140 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, [r0] + add r0, r1, #0x100 + ldrsb r0, [r0, #0x39] + add r1, r1, #0x140 + bl FUN_0202F690 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, _0238B0F4 @ =0x00003018 + ldr r3, [r0] + mov r2, #0x3e4 + add r0, r3, #0x100 + ldrsb r0, [r0, #0x38] + add r3, r3, #0x28 + bl FUN_0202F1B4 + b _0238B0C8 +_0238A904: + bl ov25_0238B380 + ldr r0, _0238B0D0 @ =0x0238B5E0 + mov r2, #4 + ldr r1, [r0] + str r2, [r1, #4] + ldr r0, [r0] + ldr r1, [r0, #0x20] + add r0, r0, #0x140 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, [r0] + add r0, r1, #0x100 + ldrsb r0, [r0, #0x39] + add r1, r1, #0x140 + bl FUN_0202F690 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, _0238B0F4 @ =0x00003018 + ldr r3, [r0] + ldr r2, _0238B0F8 @ =0x000003E5 + add r0, r3, #0x100 + ldrsb r0, [r0, #0x38] + add r3, r3, #0x28 + bl FUN_0202F1B4 + b _0238B0C8 +_0238A96C: + bl ov25_0238B380 + ldr r0, _0238B0D0 @ =0x0238B5E0 + mov r3, #1 + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #4] + ldr r1, [r0] + str r2, [r1, #0x20] + ldr r0, [r0] + ldr r1, [r0, #0x20] + add r0, r0, #0x140 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, [r0] + add r0, r1, #0x100 + ldrsb r0, [r0, #0x39] + add r1, r1, #0x140 + bl FUN_0202F690 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, _0238B0F4 @ =0x00003018 + ldr r3, [r0] + mov r2, #0x3d8 + add r0, r3, #0x100 + ldrsb r0, [r0, #0x38] + add r3, r3, #0x28 + bl FUN_0202F1B4 + b _0238B0C8 +_0238A9E0: + bl ov25_0238B380 + ldr r0, _0238B0D0 @ =0x0238B5E0 + mov r3, #1 + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #4] + ldr r1, [r0] + str r2, [r1, #0x20] + ldr r0, [r0] + ldr r1, [r0, #0x20] + add r0, r0, #0x140 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, [r0] + add r0, r1, #0x100 + ldrsb r0, [r0, #0x39] + add r1, r1, #0x140 + bl FUN_0202F690 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, _0238B0F4 @ =0x00003018 + ldr r3, [r0] + ldr r2, _0238B0FC @ =0x000003D9 + add r0, r3, #0x100 + ldrsb r0, [r0, #0x38] + add r3, r3, #0x28 + bl FUN_0202F1B4 + b _0238B0C8 +_0238AA54: + bl ov25_0238B380 + ldr r0, _0238B0D0 @ =0x0238B5E0 + mov r3, #1 + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #4] + ldr r1, [r0] + str r2, [r1, #0x20] + ldr r0, [r0] + ldr r1, [r0, #0x20] + add r0, r0, #0x140 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, [r0] + add r0, r1, #0x100 + ldrsb r0, [r0, #0x39] + add r1, r1, #0x140 + bl FUN_0202F690 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, _0238B0F4 @ =0x00003018 + ldr r3, [r0] + ldr r2, _0238B0FC @ =0x000003D9 + add r0, r3, #0x100 + ldrsb r0, [r0, #0x38] + add r3, r3, #0x28 + bl FUN_0202F1B4 + b _0238B0C8 +_0238AAC8: + bl ov25_0238B380 + ldr r0, _0238B0D0 @ =0x0238B5E0 + mov r3, #1 + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #4] + ldr r1, [r0] + str r2, [r1, #0x20] + ldr r0, [r0] + ldr r1, [r0, #0x20] + add r0, r0, #0x140 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, [r0] + add r0, r1, #0x100 + ldrsb r0, [r0, #0x39] + add r1, r1, #0x140 + bl FUN_0202F690 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, _0238B0F4 @ =0x00003018 + ldr r3, [r0] + mov r2, #0x3e0 + add r0, r3, #0x100 + ldrsb r0, [r0, #0x38] + add r3, r3, #0x28 + bl FUN_0202F1B4 + b _0238B0C8 +_0238AB3C: + bl ov25_0238B380 + ldr r0, _0238B0D0 @ =0x0238B5E0 + mov r2, #0x96 + ldr r1, [r0] + mov r3, #1 + str r2, [r1, #0x4c] + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #4] + ldr r1, [r0] + str r2, [r1, #0x20] + ldr r0, [r0] + ldr r1, [r0, #0x20] + add r0, r0, #0x140 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, [r0] + add r0, r1, #0x100 + ldrsb r0, [r0, #0x39] + add r1, r1, #0x140 + bl FUN_0202F690 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, _0238B0F4 @ =0x00003018 + ldr r3, [r0] + mov r2, #0x3e0 + add r0, r3, #0x100 + ldrsb r0, [r0, #0x38] + add r3, r3, #0x28 + bl FUN_0202F1B4 + b _0238B0C8 +_0238ABBC: + bl ov25_0238B380 + ldr r0, _0238B0D0 @ =0x0238B5E0 + mov r2, #0xc + ldr r1, [r0] + mov r3, #0x19 + str r2, [r1, #4] + ldr r1, [r0] + mov r2, #0 + str r3, [r1] + ldr r1, [r0] + str r2, [r1, #0x20] + ldr r0, [r0] + ldr r1, [r0, #0x20] + add r0, r0, #0x140 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, [r0] + add r0, r1, #0x100 + ldrsb r0, [r0, #0x39] + add r1, r1, #0x140 + bl FUN_0202F690 + b _0238B0C8 +_0238AC1C: + mov r0, #0xd + str r0, [r1, #4] + ldr r0, [ip] + mov r1, #0x19 + str r1, [r0] + ldr r0, [ip] + mov r1, #0 + str r1, [r0, #0x20] + ldr r0, [ip] + ldr r1, [r0, #0x20] + add r0, r0, #0x140 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, [r0] + add r0, r1, #0x100 + ldrsb r0, [r0, #0x39] + add r1, r1, #0x140 + bl FUN_0202F690 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, _0238B0D4 @ =0x00003008 + ldr r3, [r0] + ldr r2, _0238B0F0 @ =0x000003DD + add r0, r3, #0x100 + ldrsb r0, [r0, #0x38] + add r3, r3, #0x28 + bl FUN_0202F1B4 + b _0238B0C8 +_0238AC90: + mov r0, #0xd + str r0, [r1, #4] + ldr r0, [ip] + mov r1, #0x1b + str r1, [r0] + ldr r0, [ip] + mov r1, #0 + str r1, [r0, #0x20] + ldr r0, [ip] + ldr r1, [r0, #0x20] + add r0, r0, #0x140 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, [r0] + add r0, r1, #0x100 + ldrsb r0, [r0, #0x39] + add r1, r1, #0x140 + bl FUN_0202F690 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, _0238B0F4 @ =0x00003018 + ldr r3, [r0] + ldr r2, _0238B100 @ =0x000003DF + add r0, r3, #0x100 + ldrsb r0, [r0, #0x38] + add r3, r3, #0x28 + bl FUN_0202F1B4 + b _0238B0C8 +_0238AD04: + add r0, r1, #0x100 + ldrsb r0, [r0, #0x38] + bl FUN_0202F3A4 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x38] + bl FUN_0202F2C4 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x39] + bl FUN_0202F6DC + mov r0, #1 + mov r1, #0 + bl FUN_0230B20C + b _0238B0C8 +_0238AD48: + add r0, r1, #0x100 + ldrsb r0, [r0, #0x38] + bl FUN_0202F3A4 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x38] + bl FUN_0202F2C4 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x39] + bl FUN_0202F6DC + mov r0, #1 + mov r1, #0 + bl FUN_0230B20C + b _0238B0C8 +_0238AD8C: + mov r2, #0x96 + ldr r0, _0238B104 @ =0x0238B574 + ldr r3, _0238B108 @ =0x0238B4EC + str r2, [r1, #0x4c] + mov ip, #3 + mov r1, #0x13 + mov r2, #0 + str ip, [sp] + bl FUN_0202B0EC + ldr r1, _0238B0D0 @ =0x0238B5E0 + ldr r1, [r1] + strb r0, [r1, #0x13a] + b _0238B0C8 +_0238ADC0: + ldrh r0, [r1, #0xe] + ldr r2, _0238B10C @ =0x0238B5A4 + ldr r3, _0238B110 @ =0x0000C402 + str r0, [r1, #0x28] + ldr lr, [ip] + mov r1, #0x400 + ldrsh r0, [lr, #0xc] + str r0, [lr, #0x38] + ldr lr, [ip] + ldrh r0, [lr, #0xe] + str r0, [lr, #0x4c] + ldr r0, [ip] + add ip, r0, #0x28 + add r0, r0, #0x78 + str ip, [sp] + arm_func_end ov25_0238A694 + + arm_func_start ov25_0238ADFC +ov25_0238ADFC: @ 0x0238ADFC + bl FUN_020223F0 + add r0, sp, #0x18 + bl FUN_02023690 + ldr r0, _0238B0D0 @ =0x0238B5E0 + add r1, sp, #0x18 + ldr ip, [r0] + ldr r0, _0238B114 @ =0x0238B594 + add r2, ip, #0x78 + str r2, [sp, #0x50] + str r1, [sp] + ldrsh r2, [ip, #0xc] + ldr r1, _0238B118 @ =0x00001013 + ldr r3, _0238B11C @ =0x0000033E + add r2, r2, #0xd1 + add r2, r2, #0x2900 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + str r2, [sp, #4] + add ip, ip, #0x28 + mov r2, #0 + str ip, [sp, #8] + bl FUN_0202E3CC + ldr r1, _0238B0D0 @ =0x0238B5E0 + ldr r1, [r1] + strb r0, [r1, #0x13b] + b _0238B0C8 +_0238AE64: + mov r0, #0 + str r0, [r1, #0x20] + ldr r0, [ip] + ldr r1, [r0, #0x20] + add r0, r0, #0x140 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + ldr r0, _0238B0D0 @ =0x0238B5E0 + mov r3, #0x1b + ldr r1, [r0] + mov r2, #0x1d + str r3, [r1] + ldr r1, [r0] + str r2, [r1, #4] + ldr r1, [r0] + add r0, r1, #0x100 + ldrsb r0, [r0, #0x39] + add r1, r1, #0x140 + bl FUN_0202F690 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, _0238B0D4 @ =0x00003008 + ldr ip, [r0] + mov r2, #0x3dc + ldrsh r3, [ip, #0xc] + str r3, [ip, #0x3c] + ldr ip, [r0] + ldrh r3, [ip, #0xe] + str r3, [ip, #0x50] + ldr r3, [r0] + add r0, r3, #0x100 + ldrsb r0, [r0, #0x38] + add r3, r3, #0x28 + bl FUN_0202F1B4 + b _0238B0C8 +_0238AEF0: + ldr r0, _0238B0DC @ =0x0238B4A4 + ldr r1, _0238B0E0 @ =ov25_0238B414 + bl FUN_0202F8C4 + ldr r1, _0238B0D0 @ =0x0238B5E0 + ldr r3, _0238B120 @ =0x0238B4B4 + ldr r1, [r1] + mov ip, #2 + strb r0, [r1, #0x13d] + ldr r0, _0238B124 @ =0x0238B584 + mov r1, #0x80000013 + mov r2, #0 + str ip, [sp] + bl FUN_0202B0EC + ldr r1, _0238B0D0 @ =0x0238B5E0 + ldr r1, [r1] + strb r0, [r1, #0x13a] + b _0238B0C8 +_0238AF34: + mov r0, #7 + str r0, [r1, #0x24] + b _0238B0C8 +_0238AF40: + mov r0, #8 + str r0, [r1, #0x24] + b _0238B0C8 +_0238AF4C: + mov r0, #8 + str r0, [r1, #0x24] + ldr r0, [ip] + mov r1, #1 + str r1, [r0, #4] + b _0238B0C8 +_0238AF64: + mvn r0, #0x95 + bl FUN_0200ED58 + ldr r1, _0238B0D0 @ =0x0238B5E0 + add r0, sp, #0x12 + ldr ip, [r1] + add r1, sp, #0xc + ldrsh r3, [ip, #0xc] + mov r2, #1 + strh r3, [sp, #0x10] + ldrh r3, [ip, #0xe] + strh r3, [sp, #0xe] + strb r2, [sp, #0xc] + bl FUN_0200D0A0 + add r0, sp, #0x12 + bl FUN_0200F4D4 + ldr r0, _0238B0D0 @ =0x0238B5E0 + mov r1, #0 + ldr r0, [r0] + ldrh r0, [r0, #0xe] + strh r0, [sp, #0x10] + ldrsh r0, [sp, #0x10] + strh r1, [sp, #0xe] + bl FUN_0200CB10 + cmp r0, #0 + movne r0, #0xa + strhne r0, [sp, #0xe] + bne _0238B00C + ldrsh r0, [sp, #0x10] + cmp r0, #0xbb + moveq r0, #0x55 + strheq r0, [sp, #0x10] + ldrsh r1, [sp, #0x10] + cmp r1, #0x16c + blt _0238AFFC + ldr r0, _0238B128 @ =0x0000018F + cmp r1, r0 + movle r0, #0x55 + strhle r0, [sp, #0x10] +_0238AFFC: + ldrsh r0, [sp, #0x10] + cmp r0, #0xb7 + moveq r0, #0x55 + strheq r0, [sp, #0x10] +_0238B00C: + mov r1, #1 + add r0, sp, #0xc + strb r1, [sp, #0xc] + bl FUN_0200F874 + bl FUN_022DC504 + ldr r0, _0238B0D0 @ =0x0238B5E0 + mov r2, #0x13 + ldr r1, [r0] + mov r3, #6 + str r2, [r1, #4] + ldr r2, [r0] + add r1, sp, #0xc + str r3, [r2, #0x24] + ldr r0, [r0] + ldr r2, _0238B12C @ =0x0238B498 + add r0, r0, #0xb8 + bl FUN_0200D670 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r2, [r0] + add r1, r2, #0xb8 + str r1, [r2, #0x60] + ldrsh r2, [sp, #0x10] + ldr r1, [r0] + str r2, [r1, #0x3c] + ldr r2, [r0] + ldrh r1, [r2, #0xe] + str r1, [r2, #0x50] + ldr r0, [r0] + ldr r1, [r0, #0x20] + add r0, r0, #0x140 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + bl FUN_0204D7F4 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, [r0] + add r0, r1, #0x100 + ldrsb r0, [r0, #0x39] + add r1, r1, #0x140 + bl FUN_0202F690 + ldr r0, _0238B0D0 @ =0x0238B5E0 + ldr r1, _0238B0F4 @ =0x00003018 + ldr r3, [r0] + ldr r2, _0238B130 @ =0x000003E1 + add r0, r3, #0x100 + ldrsb r0, [r0, #0x38] + add r3, r3, #0x28 + bl FUN_0202F1B4 +_0238B0C8: + add sp, sp, #0x68 + pop {r3, pc} + .align 2, 0 +_0238B0D0: .4byte 0x0238B5E0 +_0238B0D4: .4byte 0x00003008 +_0238B0D8: .4byte 0x000003D7 +_0238B0DC: .4byte 0x0238B4A4 +_0238B0E0: .4byte ov25_0238B414 +_0238B0E4: .4byte 0x00300013 +_0238B0E8: .4byte 0x0238B4CC +_0238B0EC: .4byte 0x0238B564 +_0238B0F0: .4byte 0x000003DD +_0238B0F4: .4byte 0x00003018 +_0238B0F8: .4byte 0x000003E5 +_0238B0FC: .4byte 0x000003D9 +_0238B100: .4byte 0x000003DF +_0238B104: .4byte 0x0238B574 +_0238B108: .4byte 0x0238B4EC +_0238B10C: .4byte 0x0238B5A4 +_0238B110: .4byte 0x0000C402 +_0238B114: .4byte 0x0238B594 +_0238B118: .4byte 0x00001013 +_0238B11C: .4byte 0x0000033E +_0238B120: .4byte 0x0238B4B4 +_0238B124: .4byte 0x0238B584 +_0238B128: .4byte 0x0000018F +_0238B12C: .4byte 0x0238B498 +_0238B130: .4byte 0x000003E1 + arm_func_end ov25_0238ADFC + + arm_func_start ov25_0238B134 +ov25_0238B134: @ 0x0238B134 + push {r3, lr} + mov r0, #0x150 + mov r1, #6 + bl FUN_02001170 + ldr r1, _0238B1C8 @ =0x0238B5E0 + mov r3, #0 + str r0, [r1] + str r3, [r0, #0x14] + ldr r0, [r1] + sub r2, r3, #2 + str r3, [r0, #0x18] + ldr r0, [r1] + str r3, [r0, #0x1c] + ldr r0, [r1] + strb r2, [r0, #0x13d] + ldr r0, [r1] + str r3, [r0, #0x24] + ldr r0, [r1] + add r0, r0, #0x28 + bl FUN_02023690 + ldr r0, _0238B1C8 @ =0x0238B5E0 + mov r3, #0xb2 + ldr r2, [r0] + mov r1, #0 + str r3, [r2, #0x74] + ldr r2, [r0] + str r3, [r2, #0x28] + ldr r0, [r0] + str r1, [r0, #8] + bl FUN_0230C910 + ldr r1, _0238B1C8 @ =0x0238B5E0 + mov r0, #0 + ldr r1, [r1] + str r0, [r1, #0x20] + bl ov25_0238A694 + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0238B1C8: .4byte 0x0238B5E0 + arm_func_end ov25_0238B134 + + arm_func_start ov25_0238B1CC +ov25_0238B1CC: @ 0x0238B1CC + push {r3, lr} + ldr r0, _0238B1F4 @ =0x0238B5E0 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0238B1F4 @ =0x0238B5E0 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0238B1F4: .4byte 0x0238B5E0 + arm_func_end ov25_0238B1CC +_0238B1F8: + .byte 0x08, 0x40, 0x2D, 0xE9, 0x78, 0x01, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x90, 0xE5, 0x24, 0x10, 0x92, 0xE5, 0x08, 0x00, 0x51, 0xE3, 0x01, 0xF1, 0x8F, 0x90 + .byte 0x57, 0x00, 0x00, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00, 0xEA, 0x3D, 0x00, 0x00, 0xEA + .byte 0x4F, 0x00, 0x00, 0xEA, 0x47, 0x00, 0x00, 0xEA, 0x51, 0x00, 0x00, 0xEA, 0x1B, 0x00, 0x00, 0xEA + .byte 0x24, 0x00, 0x00, 0xEA, 0x2D, 0x00, 0x00, 0xEA, 0x04, 0x00, 0xA0, 0xE3, 0x24, 0x00, 0x82, 0xE5 + .byte 0x08, 0x6F, 0xFD, 0xEB, 0x4A, 0x00, 0x00, 0xEA, 0xBC, 0xFB, 0xFF, 0xEB, 0x03, 0x00, 0x50, 0xE3 + .byte 0x47, 0x00, 0x00, 0x1A, 0x20, 0x01, 0x9F, 0xE5, 0x02, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5 + .byte 0x24, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x0C, 0x80, 0xE2, 0xD8, 0x03, 0xD0, 0xE1 + .byte 0x13, 0x90, 0xF2, 0xEB, 0x00, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x0C, 0x80, 0xE2 + .byte 0xD9, 0x03, 0xD0, 0xE1, 0x14, 0x91, 0xF2, 0xEB, 0xEC, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x01, 0x0C, 0x80, 0xE2, 0xD8, 0x03, 0xD0, 0xE1, 0x33, 0x74, 0xF2, 0xEB, 0x34, 0x00, 0x00, 0xEA + .byte 0x08, 0x6F, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x31, 0x00, 0x00, 0x0A, 0x01, 0x00, 0xA0, 0xE3 + .byte 0xF5, 0x6E, 0xFD, 0xEB, 0xC0, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x24, 0x10, 0x80, 0xE5, 0x2A, 0x00, 0x00, 0xEA, 0xFE, 0x6E, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x27, 0x00, 0x00, 0x0A, 0x02, 0x00, 0xA0, 0xE3, 0xEB, 0x6E, 0xFD, 0xEB, 0x98, 0x00, 0x9F, 0xE5 + .byte 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x24, 0x10, 0x80, 0xE5, 0x20, 0x00, 0x00, 0xEA + .byte 0xF4, 0x6E, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x1D, 0x00, 0x00, 0x0A, 0x03, 0x00, 0xA0, 0xE3 + .byte 0xE1, 0x6E, 0xFD, 0xEB, 0x70, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x24, 0x10, 0x80, 0xE5, 0x16, 0x00, 0x00, 0xEA, 0x03, 0x10, 0xA0, 0xE3, 0x24, 0x10, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x01, 0x0C, 0x80, 0xE2, 0xD8, 0x03, 0xD0, 0xE1, 0x85, 0x8F, 0xF2, 0xEB + .byte 0x44, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x01, 0x0C, 0x80, 0xE2, 0xD9, 0x03, 0xD0, 0xE1 + .byte 0xC2, 0x90, 0xF2, 0xEB, 0x0A, 0x00, 0x00, 0xEA, 0xDE, 0x6E, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x24, 0x00, 0x9F, 0x15, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x00, 0x90, 0x15, 0x24, 0x10, 0x80, 0x15 + .byte 0x03, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xE0, 0xE3, 0xC7, 0x6E, 0xFD, 0xEB, 0x04, 0x00, 0xA0, 0xE3 + .byte 0x08, 0x80, 0xBD, 0xE8, 0x01, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8, 0xE0, 0xB5, 0x38, 0x02 + + arm_func_start ov25_0238B380 +ov25_0238B380: @ 0x0238B380 + push {r3, lr} + ldr r0, _0238B410 @ =0x0238B5E0 + mvn r1, #1 + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x3a] + cmp r0, r1 + beq _0238B3C8 + bl FUN_0202836C + ldr r0, _0238B410 @ =0x0238B5E0 + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x3a] + bl FUN_0202B4C4 + ldr r0, _0238B410 @ =0x0238B5E0 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x13a] +_0238B3C8: + ldr r0, _0238B410 @ =0x0238B5E0 + mvn r1, #1 + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x3d] + cmp r0, r1 + popeq {r3, pc} + bl FUN_0202836C + ldr r0, _0238B410 @ =0x0238B5E0 + ldr r0, [r0] + add r0, r0, #0x100 + ldrsb r0, [r0, #0x3d] + bl FUN_0202F8FC + ldr r0, _0238B410 @ =0x0238B5E0 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x13d] + pop {r3, pc} + .align 2, 0 +_0238B410: .4byte 0x0238B5E0 + arm_func_end ov25_0238B380 + + arm_func_start ov25_0238B414 +ov25_0238B414: @ 0x0238B414 + push {r3, r4, lr} + sub sp, sp, #0x54 + sub sp, sp, #0x400 + mov r4, r0 + bl FUN_02027B1C + bl FUN_0200ECFC + add ip, sp, #0x400 + str r0, [sp, #0x428] + add ip, ip, #4 + ldr r2, _0238B48C @ =0x0238B5B0 + ldr r3, _0238B490 @ =0x0000C402 + add r0, sp, #4 + mov r1, #0x100 + str ip, [sp] + bl FUN_020223F0 + ldr r3, _0238B494 @ =0x00000225 + mov r0, r4 + mov r1, #4 + mov r2, #2 + bl FUN_02026268 + mov r1, #0x10 + mov r0, r4 + mov r2, r1 + add r3, sp, #4 + bl FUN_02026214 + mov r0, r4 + bl FUN_02027AF0 + add sp, sp, #0x54 + add sp, sp, #0x400 + pop {r3, r4, pc} + .align 2, 0 +_0238B48C: .4byte 0x0238B5B0 +_0238B490: .4byte 0x0000C402 +_0238B494: .4byte 0x00000225 + arm_func_end ov25_0238B414 + @ 0x0238B498 diff --git a/asm/overlay_26.s b/asm/overlay_26.s index aaf885b5..130cdec4 100644 --- a/asm/overlay_26.s +++ b/asm/overlay_26.s @@ -3,3 +3,671 @@ .include "global.inc" .text + + arm_func_start ov26_0238A140 +ov26_0238A140: @ 0x0238A140 + push {r3, r4, r5, lr} + sub sp, sp, #0x10 + add r0, sp, #0 + bl FUN_0204F158 + cmp r0, #0 + moveq r0, #0 + beq _0238A528 + add r1, sp, #0xc + add r2, sp, #8 + mov r0, #2 + bl FUN_0204C5DC + ldr r0, [sp, #8] + lsl r0, r0, #0x18 + asr r0, r0, #0x18 + bl FUN_0205F0D8 + mov r5, r0 + ldrb r2, [sp] + add r0, sp, #2 + mov r1, r5 + bl FUN_0205F118 + cmp r0, #0 + bne _0238A1A8 + mvn r0, #0 + bl FUN_022E6E8C + mov r0, #0 + b _0238A528 +_0238A1A8: + mov r0, #0x9c + mov r1, #8 + bl FUN_02001170 + ldr r1, _0238A530 @ =0x0238AF60 + mov r4, #0 + str r0, [r1] + str r4, [r0] + ldr r3, [sp, #8] + ldr r2, [r1] + mov r0, r4 + strb r3, [r2, #0x8c] + ldr r2, [r1] + mov r1, #0x68 + str r5, [r2, #0x90] + ldrb r2, [r5, #1] + bl FUN_0204B820 + ldrb r2, [r5, #2] + mov r0, r4 + mov r1, #0x69 + bl FUN_0204B820 + ldr r0, _0238A530 @ =0x0238AF60 + ldr r0, [r0] + ldr r0, [r0, #0x90] + bl FUN_0205F9D4 + ldr r0, _0238A530 @ =0x0238AF60 + ldr r0, [r0] + add r0, r0, #8 + bl FUN_02023690 + ldr r0, _0238A530 @ =0x0238AF60 + mov r2, r4 + ldr r3, [r0] + ldr r1, [r3, #0x90] + ldrsh r1, [r1, #0xe] + str r1, [r3, #8] + ldr r3, [r0] + ldr r1, [r3, #0x90] + ldrsh r1, [r1, #0x10] + str r1, [r3, #0xc] + ldr r3, [r0] + ldr r1, [r3, #0x90] + ldrsh r1, [r1, #0x14] + str r1, [r3, #0x18] + ldr r1, [r0] + str r2, [r1, #0x2c] + ldr r0, [r0] + add r0, r0, #0x60 + bl FUN_0206351C + ldr r0, _0238A530 @ =0x0238AF60 + ldr r1, [r0] + ldr r0, [r1, #0x90] + add r1, r1, #0x60 + bl FUN_02062E5C + ldr r0, _0238A530 @ =0x0238AF60 + mov r3, #2 + ldr r1, [r0] + mov r2, r4 + str r3, [r1, #0x5c] + ldr r1, [r0] + str r2, [r1, #0x98] + ldrsh r1, [sp, #4] + cmp r1, #0 + ldrne r0, [r0] + ldrne r0, [r0, #0x90] + ldrbne r0, [r0, #1] + cmpne r0, #0xa + beq _0238A2B8 + ldrsh r0, [sp, #4] + bl FUN_0204D368 +_0238A2B8: + ldrsh r0, [sp, #6] + cmp r0, #0 + beq _0238A2CC + ldrsh r0, [sp, #6] + bl FUN_0204D368 +_0238A2CC: + ldr r0, _0238A530 @ =0x0238AF60 + ldr r1, [r0] + ldr r2, [r1, #0x90] + ldrb r2, [r2, #1] + cmp r2, #0xc + addls pc, pc, r2, lsl #2 + b _0238A504 +_0238A2E8: @ jump table + b _0238A31C @ case 0 + b _0238A328 @ case 1 + b _0238A334 @ case 2 + b _0238A340 @ case 3 + b _0238A504 @ case 4 + b _0238A504 @ case 5 + b _0238A34C @ case 6 + b _0238A358 @ case 7 + b _0238A364 @ case 8 + b _0238A370 @ case 9 + b _0238A37C @ case 10 + b _0238A3A0 @ case 11 + b _0238A4C4 @ case 12 +_0238A31C: + ldr r0, _0238A534 @ =0x0238AE92 + str r0, [r1, #0x94] + b _0238A50C +_0238A328: + ldr r0, _0238A538 @ =0x0238AE86 + str r0, [r1, #0x94] + b _0238A50C +_0238A334: + ldr r0, _0238A53C @ =0x0238AE7A + str r0, [r1, #0x94] + b _0238A50C +_0238A340: + ldr r0, _0238A540 @ =0x0238AE6E + str r0, [r1, #0x94] + b _0238A50C +_0238A34C: + ldr r0, _0238A544 @ =0x0238AE56 + str r0, [r1, #0x94] + b _0238A50C +_0238A358: + ldr r0, _0238A548 @ =0x0238AE62 + str r0, [r1, #0x94] + b _0238A50C +_0238A364: + ldr r0, _0238A54C @ =0x0238AE4A + str r0, [r1, #0x94] + b _0238A50C +_0238A370: + ldr r0, _0238A550 @ =0x0238AE3E + str r0, [r1, #0x94] + b _0238A50C +_0238A37C: + mov r2, #3 + str r2, [r1, #0x5c] + ldr r1, [r0] + mov r2, #0x1f8 + strh r2, [r1, #0x60] + ldr r0, [r0] + ldr r1, _0238A554 @ =0x0238AE32 + str r1, [r0, #0x94] + b _0238A50C +_0238A3A0: + mov r2, #4 + str r2, [r1, #0x5c] + ldr r2, [r0] + ldr r1, [r2, #0x90] + ldrb r1, [r1, #2] + str r1, [r2, #0x98] + ldr r0, [r0] + ldr r0, [r0, #0x98] + and r0, r0, #0xff + bl FUN_02050420 + ldr r0, _0238A530 @ =0x0238AF60 + ldr r2, [r0] + ldr r1, [r2, #0x98] + cmp r1, #0 + ldreq r0, _0238A558 @ =0x0238AE9E + streq r0, [r2, #0x94] + beq _0238A50C + ldr r4, [r2, #0x88] + ldr r1, _0238A55C @ =0x0238AE20 + str r1, [r2, #0x94] + ldr r0, [r0] + add r0, r0, #0x60 + bl FUN_0206351C + ldr r0, _0238A530 @ =0x0238AF60 + ldr r2, [r0] + ldr r1, [r2, #0x90] + ldrsh r1, [r1, #0xe] + strh r1, [r2, #0x60] + ldr r1, [r0] + str r4, [r1, #0x88] + ldr r2, [r0] + ldr r1, [r2, #0x90] + ldrb r0, [r1, #1] + cmp r0, #0xb + bne _0238A458 + ldrb r0, [r1, #2] + add r0, r0, #0xff + and r0, r0, #0xff + cmp r0, #4 + bhi _0238A458 + add r0, r1, #4 + bl FUN_0204F8A8 + ldr r1, _0238A530 @ =0x0238AF60 + ldr r1, [r1] + str r0, [r1, #0x64] + b _0238A460 +_0238A458: + mov r0, #1 + str r0, [r2, #0x64] +_0238A460: + ldr r0, _0238A530 @ =0x0238AF60 + mov r1, #0 + arm_func_end ov26_0238A140 + + arm_func_start ov26_0238A468 +ov26_0238A468: @ 0x0238A468 + ldr r0, [r0] + ldr r0, [r0, #0x90] + ldrsh r0, [r0, #0xe] + bl FUN_02055148 + cmp r0, #0 + beq _0238A4A0 + ldr r0, _0238A530 @ =0x0238AF60 + mov r3, #0 + ldr r2, [r0] + mov r1, #0x3e8 + strb r3, [r2, #0x62] + ldr r0, [r0] + str r1, [r0, #0x68] + b _0238A50C +_0238A4A0: + ldr r0, _0238A530 @ =0x0238AF60 + mov r1, #6 + ldr r3, [r0] + ldr r2, [r3, #0x90] + ldrsh r2, [r2, #0xe] + strh r2, [r3, #0x84] + ldr r0, [r0] + strb r1, [r0, #0x62] + b _0238A50C +_0238A4C4: + add r0, r1, #0x60 + ldr r4, [r1, #0x88] + bl FUN_0206351C + ldr r0, _0238A530 @ =0x0238AF60 + ldr r2, _0238A560 @ =0x000001E3 + ldr r1, [r0] + mov r3, #0 + strh r2, [r1, #0x60] + ldr r2, [r0] + ldr r1, _0238A55C @ =0x0238AE20 + strb r3, [r2, #0x62] + ldr r2, [r0] + str r4, [r2, #0x88] + ldr r0, [r0] + str r1, [r0, #0x94] + b _0238A50C +_0238A504: + ldr r0, _0238A564 @ =0x0238AE26 + str r0, [r1, #0x94] +_0238A50C: + ldr r1, _0238A530 @ =0x0238AF60 + mvn r3, #1 + ldr r2, [r1] + mov r0, #1 + strb r3, [r2, #4] + ldr r1, [r1] + strb r3, [r1, #5] +_0238A528: + add sp, sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_0238A530: .4byte 0x0238AF60 +_0238A534: .4byte 0x0238AE92 +_0238A538: .4byte 0x0238AE86 +_0238A53C: .4byte 0x0238AE7A +_0238A540: .4byte 0x0238AE6E +_0238A544: .4byte 0x0238AE56 +_0238A548: .4byte 0x0238AE62 +_0238A54C: .4byte 0x0238AE4A +_0238A550: .4byte 0x0238AE3E +_0238A554: .4byte 0x0238AE32 +_0238A558: .4byte 0x0238AE9E +_0238A55C: .4byte 0x0238AE20 +_0238A560: .4byte 0x000001E3 +_0238A564: .4byte 0x0238AE26 + arm_func_end ov26_0238A468 + + arm_func_start ov26_0238A568 +ov26_0238A568: @ 0x0238A568 + push {r3, lr} + ldr r0, _0238A59C @ =0x0238AF60 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl ov26_0238A90C + ldr r0, _0238A59C @ =0x0238AF60 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _0238A59C @ =0x0238AF60 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0238A59C: .4byte 0x0238AF60 + arm_func_end ov26_0238A568 +_0238A5A0: + .byte 0xF8, 0x40, 0x2D, 0xE9, 0x10, 0xD0, 0x4D, 0xE2, 0x48, 0x03, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5 + .byte 0x00, 0x00, 0x91, 0xE5, 0x07, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0xCA, 0x00, 0x00, 0xEA + .byte 0x11, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA, 0x95, 0x00, 0x00, 0xEA, 0xA4, 0x00, 0x00, 0xEA + .byte 0xAA, 0x00, 0x00, 0xEA, 0xB3, 0x00, 0x00, 0xEA, 0xB9, 0x00, 0x00, 0xEA, 0xBE, 0x00, 0x00, 0xEA + .byte 0xD4, 0x00, 0xD1, 0xE1, 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1, 0x02, 0x00, 0x00, 0x0A + .byte 0xE2, 0x92, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xBB, 0x00, 0x00, 0x1A, 0xF4, 0x02, 0x9F, 0xE5 + .byte 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0xE4, 0x12, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x91, 0xE5, 0x94, 0x70, 0x92, 0xE5, 0x06, 0x00, 0x87, 0xE2, 0x94, 0x00, 0x82, 0xE5 + .byte 0xB4, 0x40, 0xD7, 0xE1, 0x00, 0x00, 0x54, 0xE3, 0x00, 0x00, 0xA0, 0x03, 0x72, 0x00, 0x00, 0x0A + .byte 0xC4, 0x02, 0x9F, 0xE5, 0x01, 0x60, 0xA0, 0xE3, 0x00, 0x00, 0x54, 0xE1, 0x00, 0x00, 0x91, 0x05 + .byte 0x98, 0x00, 0x90, 0x05, 0x00, 0x00, 0x84, 0x00, 0x00, 0x08, 0xA0, 0x01, 0x20, 0x48, 0xA0, 0x01 + .byte 0xD0, 0x00, 0xD7, 0xE1, 0x05, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x35, 0x00, 0x00, 0xEA + .byte 0x04, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x00, 0xEA, 0x12, 0x00, 0x00, 0xEA, 0x19, 0x00, 0x00, 0xEA + .byte 0x21, 0x00, 0x00, 0xEA, 0x29, 0x00, 0x00, 0xEA, 0x78, 0x02, 0x9F, 0xE5, 0x7C, 0x22, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x3C, 0x00, 0xA0, 0xE3, 0x54, 0x20, 0x81, 0xE5, 0xB8, 0x6C, 0xF3, 0xEB + .byte 0x00, 0x50, 0xA0, 0xE1, 0x2C, 0x00, 0x00, 0xEA, 0x58, 0x02, 0x9F, 0xE5, 0x60, 0x22, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x3D, 0x00, 0xA0, 0xE3, 0x54, 0x20, 0x81, 0xE5, 0xB0, 0x6C, 0xF3, 0xEB + .byte 0x00, 0x50, 0xA0, 0xE1, 0x24, 0x00, 0x00, 0xEA, 0x38, 0x02, 0x9F, 0xE5, 0x44, 0x22, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x90, 0xE5, 0x3F, 0x00, 0xA0, 0xE3, 0x54, 0x20, 0x81, 0xE5, 0xA8, 0x6C, 0xF3, 0xEB + .byte 0x00, 0x50, 0xA0, 0xE1, 0x1C, 0x00, 0x00, 0xEA, 0x18, 0x02, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5 + .byte 0x90, 0x10, 0x92, 0xE5, 0xFE, 0x10, 0xD1, 0xE1, 0x54, 0x10, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x90, 0x00, 0x90, 0xE5, 0xFE, 0x50, 0xD0, 0xE1, 0x13, 0x00, 0x00, 0xEA, 0xF4, 0x01, 0x9F, 0xE5 + .byte 0x00, 0x20, 0x90, 0xE5, 0x90, 0x10, 0x92, 0xE5, 0xF0, 0x11, 0xD1, 0xE1, 0x54, 0x10, 0x82, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x90, 0x00, 0x90, 0xE5, 0xF0, 0x51, 0xD0, 0xE1, 0x0A, 0x00, 0x00, 0xEA + .byte 0xD0, 0x01, 0x9F, 0xE5, 0x06, 0x18, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x60, 0xA0, 0xE3 + .byte 0x54, 0x10, 0x80, 0xE5, 0x04, 0x00, 0x00, 0xEA, 0xB8, 0x01, 0x9F, 0xE5, 0x07, 0x18, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x60, 0xA0, 0xE3, 0x54, 0x10, 0x80, 0xE5, 0x00, 0x00, 0x56, 0xE3 + .byte 0x16, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x8D, 0xE2, 0x0F, 0x0C, 0xF3, 0xEB, 0x00, 0x00, 0x8D, 0xE2 + .byte 0x05, 0x10, 0xA0, 0xE1, 0x1A, 0x0C, 0xF3, 0xEB, 0x88, 0x11, 0x9F, 0xE5, 0x01, 0x00, 0xE0, 0xE3 + .byte 0x00, 0x10, 0x91, 0xE5, 0xD5, 0x10, 0xD1, 0xE1, 0x00, 0x00, 0x51, 0xE1, 0x06, 0x00, 0x00, 0x1A + .byte 0x00, 0x00, 0xA0, 0xE3, 0x03, 0x10, 0xA0, 0xE3, 0x01, 0x20, 0xA0, 0xE3, 0x86, 0x93, 0xF2, 0xEB + .byte 0x60, 0x11, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x05, 0x00, 0xC1, 0xE5, 0x54, 0x01, 0x9F, 0xE5 + .byte 0x00, 0x10, 0x8D, 0xE2, 0x00, 0x00, 0x90, 0xE5, 0xD5, 0x00, 0xD0, 0xE1, 0xB7, 0x93, 0xF2, 0xEB + .byte 0x40, 0x11, 0x9F, 0xE5, 0x01, 0x00, 0xE0, 0xE3, 0x00, 0x10, 0x91, 0xE5, 0xD4, 0x10, 0xD1, 0xE1 + .byte 0x00, 0x00, 0x51, 0xE1, 0x04, 0x00, 0x00, 0x1A, 0x00, 0x00, 0xA0, 0xE3, 0x37, 0x92, 0xF2, 0xEB + .byte 0x20, 0x11, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x04, 0x00, 0xC1, 0xE5, 0x14, 0x01, 0x9F, 0xE5 + .byte 0xB2, 0x10, 0xD7, 0xE1, 0x00, 0x30, 0x90, 0xE5, 0x04, 0x20, 0xA0, 0xE1, 0xD4, 0x00, 0xD3, 0xE1 + .byte 0x08, 0x30, 0x83, 0xE2, 0x6E, 0x92, 0xF2, 0xEB, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x50, 0xE3 + .byte 0xF0, 0x00, 0x9F, 0x15, 0x01, 0x10, 0xA0, 0x13, 0x00, 0x00, 0x90, 0x15, 0x00, 0x10, 0x80, 0x15 + .byte 0xE0, 0x00, 0x9F, 0x05, 0x02, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x90, 0x05, 0x00, 0x10, 0x80, 0x05 + .byte 0x31, 0x00, 0x00, 0xEA, 0xD4, 0x00, 0xD1, 0xE1, 0x01, 0x10, 0xE0, 0xE3, 0x01, 0x00, 0x50, 0xE1 + .byte 0x02, 0x00, 0x00, 0x0A, 0x51, 0x92, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x2A, 0x00, 0x00, 0x1A + .byte 0x31, 0x00, 0x00, 0xEB, 0xAC, 0x00, 0x9F, 0xE5, 0x0A, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5 + .byte 0x03, 0x10, 0xA0, 0xE3, 0x58, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5 + .byte 0x21, 0x00, 0x00, 0xEA, 0x58, 0x00, 0x91, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x40, 0xC2 + .byte 0x58, 0x00, 0x81, 0xC5, 0x1C, 0x00, 0x00, 0xCA, 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x81, 0xE5 + .byte 0x70, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x5C, 0x10, 0x90, 0xE5 + .byte 0x60, 0x00, 0x80, 0xE2, 0xE7, 0xCA, 0xF2, 0xEB, 0x58, 0x00, 0x9F, 0xE5, 0x05, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x22, 0xCB, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3 + .byte 0x40, 0x00, 0x9F, 0x05, 0x06, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x90, 0x05, 0x00, 0x10, 0x80, 0x05 + .byte 0x09, 0x00, 0x00, 0xEA, 0xC2, 0xD1, 0xF2, 0xEB, 0x28, 0x00, 0x9F, 0xE5, 0x07, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x03, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x69, 0x71, 0xFD, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x10, 0xD0, 0x8D, 0xE2, 0xF8, 0x80, 0xBD, 0xE8, 0x60, 0xAF, 0x38, 0x02, 0x6D, 0x02, 0x00, 0x00 + .byte 0x3C, 0x00, 0x01, 0x00, 0x3D, 0x00, 0x01, 0x00, 0x3F, 0x00, 0x01, 0x00 + + arm_func_start ov26_0238A90C +ov26_0238A90C: @ 0x0238A90C + push {r3, lr} + ldr r0, _0238A96C @ =0x0238AF60 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #4] + cmp r0, r1 + beq _0238A93C + bl FUN_0202F148 + ldr r0, _0238A96C @ =0x0238AF60 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #4] +_0238A93C: + ldr r0, _0238A96C @ =0x0238AF60 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #5] + cmp r0, r1 + popeq {r3, pc} + bl FUN_0202F650 + ldr r0, _0238A96C @ =0x0238AF60 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #5] + pop {r3, pc} + .align 2, 0 +_0238A96C: .4byte 0x0238AF60 + arm_func_end ov26_0238A90C + + arm_func_start ov26_0238A970 +ov26_0238A970: @ 0x0238A970 + push {r3, lr} + mov r0, #8 + mov r1, r0 + bl FUN_02001170 + ldr r1, _0238A998 @ =0x0238AF64 + mov r2, #0 + str r0, [r1] + str r2, [r0, #4] + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0238A998: .4byte 0x0238AF64 + arm_func_end ov26_0238A970 + + arm_func_start ov26_0238A99C +ov26_0238A99C: @ 0x0238A99C + push {r3, lr} + ldr r0, _0238A9C4 @ =0x0238AF64 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0238A9C4 @ =0x0238AF64 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0238A9C4: .4byte 0x0238AF64 + arm_func_end ov26_0238A99C + + arm_func_start ov26_0238A9C8 +ov26_0238A9C8: @ 0x0238A9C8 + push {r4, lr} + ldr r0, _0238AA64 @ =0x0238AF64 + ldr r0, [r0] + ldr r0, [r0, #4] + cmp r0, #0 + bne _0238AA5C + bl FUN_0205633C + cmp r0, #0 + beq _0238A9FC + mov r0, #1 + bl FUN_022E6E8C + mov r0, #4 + pop {r4, pc} +_0238A9FC: + bl FUN_0204AFC0 + cmp r0, #4 + bne _0238AA10 + bl FUN_0204E780 + b _0238AA14 +_0238AA10: + bl FUN_0204E770 +_0238AA14: + mov r4, r0 + mov r0, r4 + bl FUN_02051340 + bl FUN_0200F7DC + mov r0, r4 + bl FUN_02051358 + cmp r0, #0 + bne _0238AA3C + mov r0, #0 + bl FUN_0200ED1C +_0238AA3C: + mov r0, r4 + bl FUN_020577BC + mov r0, #1 + bl FUN_02056318 + mov r0, #1 + bl FUN_022E6E8C + mov r0, #4 + pop {r4, pc} +_0238AA5C: + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_0238AA64: .4byte 0x0238AF64 + arm_func_end ov26_0238A9C8 + + arm_func_start ov26_0238AA68 +ov26_0238AA68: @ 0x0238AA68 + push {r3, lr} + mov r0, #8 + mov r1, r0 + bl FUN_02001170 + ldr r1, _0238AA90 @ =0x0238AF68 + mov r2, #0 + str r0, [r1] + str r2, [r0, #4] + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0238AA90: .4byte 0x0238AF68 + arm_func_end ov26_0238AA68 + + arm_func_start ov26_0238AA94 +ov26_0238AA94: @ 0x0238AA94 + push {r3, lr} + ldr r0, _0238AABC @ =0x0238AF68 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0238AABC @ =0x0238AF68 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0238AABC: .4byte 0x0238AF68 + arm_func_end ov26_0238AA94 +_0238AAC0: + .byte 0x18, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x34, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x04, 0x00, 0x90, 0xE5, 0x03, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x45, 0x00, 0x00, 0xEA + .byte 0x02, 0x00, 0x00, 0xEA, 0x32, 0x00, 0x00, 0xEA, 0x36, 0x00, 0x00, 0xEA, 0x3E, 0x00, 0x00, 0xEA + .byte 0x11, 0x2E, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0xD9, 0x70, 0xFD, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE3, 0x3C, 0x00, 0x00, 0xEA, 0x2C, 0x01, 0xF3, 0xEB, 0x00, 0x00, 0x8D, 0xE2 + .byte 0xA7, 0x11, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0x0A, 0xD0, 0x00, 0xDD, 0xE1 + .byte 0x15, 0x43, 0xF3, 0xEB, 0x04, 0x40, 0xD0, 0xE5, 0x01, 0x00, 0x00, 0xEA, 0x5B, 0x11, 0xF3, 0xEB + .byte 0x00, 0x40, 0xA0, 0xE1, 0x25, 0x01, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x15, 0x00, 0x00, 0x0A + .byte 0x00, 0x00, 0xA0, 0xE3, 0x2B, 0x10, 0xA0, 0xE3, 0x67, 0x02, 0xF3, 0xEB, 0x00, 0x10, 0xA0, 0xE1 + .byte 0x08, 0x00, 0x41, 0xE2, 0x01, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x8A, 0xA4, 0x00, 0x9F, 0xE5 + .byte 0xA5, 0x05, 0xF2, 0xEB, 0xEB, 0x09, 0xF3, 0xEB, 0x2E, 0x14, 0xF3, 0xEB, 0x09, 0x00, 0x00, 0xEA + .byte 0x0A, 0x00, 0x41, 0xE2, 0x01, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x8A, 0x88, 0x00, 0x9F, 0xE5 + .byte 0x9D, 0x05, 0xF2, 0xEB, 0xE3, 0x09, 0xF3, 0xEB, 0xC8, 0x15, 0xF3, 0xEB, 0x01, 0x00, 0x00, 0xEA + .byte 0x78, 0x00, 0x9F, 0xE5, 0x98, 0x05, 0xF2, 0xEB, 0x04, 0x00, 0xA0, 0xE1, 0x0F, 0x37, 0xF3, 0xEB + .byte 0x5C, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5 + .byte 0x10, 0x00, 0x00, 0xEA, 0x6C, 0xCA, 0xFC, 0xEB, 0x44, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x77, 0xCA, 0xFC, 0xEB, 0x01, 0x00, 0x50, 0xE3 + .byte 0x08, 0x00, 0x00, 0x0A, 0xCF, 0xCA, 0xFC, 0xEB, 0x24, 0x00, 0x9F, 0xE5, 0x03, 0x10, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x90, 0xE5, 0x04, 0x10, 0x80, 0xE5, 0x02, 0x00, 0x00, 0xEA, 0x9D, 0x70, 0xFD, 0xEB + .byte 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2 + .byte 0x18, 0x80, 0xBD, 0xE8, 0x68, 0xAF, 0x38, 0x02, 0xAC, 0xAE, 0x38, 0x02, 0xE4, 0xAE, 0x38, 0x02 + .byte 0x18, 0xAF, 0x38, 0x02 + + arm_func_start ov26_0238AC14 +ov26_0238AC14: @ 0x0238AC14 + push {r3, lr} + mov r0, #8 + mov r1, r0 + bl FUN_02001170 + ldr r1, _0238AC3C @ =0x0238AF6C + mov r2, #0 + str r0, [r1] + str r2, [r0, #4] + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0238AC3C: .4byte 0x0238AF6C + arm_func_end ov26_0238AC14 + + arm_func_start ov26_0238AC40 +ov26_0238AC40: @ 0x0238AC40 + push {r3, lr} + ldr r0, _0238AC68 @ =0x0238AF6C + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0238AC68 @ =0x0238AF6C + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0238AC68: .4byte 0x0238AF6C + arm_func_end ov26_0238AC40 + + arm_func_start ov26_0238AC6C +ov26_0238AC6C: @ 0x0238AC6C + push {r3, lr} + ldr r0, _0238ACD4 @ =0x0238AF6C + ldr r0, [r0] + ldr r0, [r0, #4] + cmp r0, #0 + beq _0238AC90 + cmp r0, #1 + beq _0238ACC0 + b _0238ACCC +_0238AC90: + bl FUN_0205633C + cmp r0, #0 + bne _0238ACA8 + bl FUN_0230CDE0 + mov r0, #4 + pop {r3, pc} +_0238ACA8: + bl FUN_020587C8 + ldr r0, _0238ACD4 @ =0x0238AF6C + mov r1, #1 + ldr r0, [r0] + str r1, [r0, #4] + b _0238ACCC +_0238ACC0: + bl FUN_022E6E68 + mov r0, #4 + pop {r3, pc} +_0238ACCC: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0238ACD4: .4byte 0x0238AF6C + arm_func_end ov26_0238AC6C + + arm_func_start ov26_0238ACD8 +ov26_0238ACD8: @ 0x0238ACD8 + push {r3, lr} + mov r0, #8 + mov r1, r0 + bl FUN_02001170 + ldr r1, _0238AD0C @ =0x0238AF70 + mov r2, #0 + str r0, [r1] + str r2, [r0] + ldr r0, [r1] + mov r1, #5 + strh r1, [r0, #4] + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0238AD0C: .4byte 0x0238AF70 + arm_func_end ov26_0238ACD8 + + arm_func_start ov26_0238AD10 +ov26_0238AD10: @ 0x0238AD10 + push {r3, lr} + ldr r0, _0238AD38 @ =0x0238AF70 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0238AD38 @ =0x0238AF70 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0238AD38: .4byte 0x0238AF70 + arm_func_end ov26_0238AD10 +_0238AD3C: + .byte 0x08, 0x40, 0x2D, 0xE9 + .byte 0xE8, 0xD0, 0x4D, 0xE2, 0xD0, 0x00, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x00, 0x10, 0x92, 0xE5 + .byte 0x03, 0x00, 0x51, 0xE3, 0x01, 0xF1, 0x8F, 0x90, 0x28, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA + .byte 0x10, 0x00, 0x00, 0xEA, 0x1E, 0x00, 0x00, 0xEA, 0x24, 0x00, 0x00, 0xEA, 0x00, 0x00, 0x8D, 0xE2 + .byte 0x33, 0x11, 0xF3, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x9C, 0x00, 0x9F, 0x05, 0x03, 0x10, 0xA0, 0x03 + .byte 0x00, 0x00, 0x90, 0x05, 0x00, 0x10, 0x80, 0x05, 0x20, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x8D, 0xE2 + .byte 0x40, 0xEE, 0xF2, 0xEB, 0x80, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x00, 0x10, 0x80, 0xE5, 0x19, 0x00, 0x00, 0xEA, 0xF4, 0x10, 0xD2, 0xE1, 0x01, 0x10, 0x41, 0xE2 + .byte 0xB4, 0x10, 0xC2, 0xE1, 0x00, 0x10, 0x90, 0xE5, 0xF4, 0x00, 0xD1, 0xE1, 0x00, 0x00, 0x50, 0xE3 + .byte 0x12, 0x00, 0x00, 0xCA, 0x00, 0x00, 0xA0, 0xE3, 0xB4, 0x00, 0xC1, 0xE1, 0x5B, 0xEE, 0xF2, 0xEB + .byte 0x44, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5 + .byte 0x0A, 0x00, 0x00, 0xEA, 0x64, 0xEE, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x28, 0x00, 0x9F, 0x05 + .byte 0x03, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x90, 0x05, 0x00, 0x10, 0x80, 0x05 + + arm_func_start ov26_0238ADFC +ov26_0238ADFC: @ 0x0238ADFC + b _0238AE10 +_0238AE00: + .byte 0x15, 0xEE, 0xF2, 0xEB, 0x17, 0x70, 0xFD, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA +_0238AE10: + mov r0, #1 + add sp, sp, #0xe8 + pop {r3, pc} + arm_func_end ov26_0238ADFC + @ 0x0238AE1C diff --git a/asm/overlay_27.s b/asm/overlay_27.s index 00af3650..dc91d2b5 100644 --- a/asm/overlay_27.s +++ b/asm/overlay_27.s @@ -3,3 +3,1785 @@ .include "global.inc" .text + + arm_func_start ov27_0238A140 +ov27_0238A140: @ 0x0238A140 + push {r4, r5, r6, r7, lr} + sub sp, sp, #0xc + ldr r0, _0238A37C @ =0x02324DB8 + ldr r1, [r0] + cmp r1, #0 + ldrne r0, _0238A380 @ =0x0238CE80 + strne r1, [r0] + bne _0238A370 + ldr r0, _0238A384 @ =0x000008D4 + mov r1, #8 + bl FUN_02001170 + ldr r3, _0238A380 @ =0x0238CE80 + ldr r2, _0238A37C @ =0x02324DB8 + add r1, r0, #0x3c + str r0, [r3] + str r0, [r2] + add r0, r1, #0x800 + bl FUN_02034A38 + ldr r1, _0238A380 @ =0x0238CE80 + mov r3, #0 + ldr r4, [r1] + sub r2, r3, #2 + str r0, [r4, #0x838] + ldr r0, [r1] + str r3, [r0] + ldr r0, [r1] + str r3, [r0, #4] + ldr r0, [r1] + strb r2, [r0, #8] + ldr r0, [r1] + strb r2, [r0, #9] + bl ov27_0238A8EC + bl FUN_0200ECFC + ldr r1, _0238A380 @ =0x0238CE80 + ldr r1, [r1] + str r0, [r1, #0xc] + bl FUN_0201070C + ldr r1, _0238A380 @ =0x0238CE80 + ldr r2, [r1] + str r0, [r2, #0x10] + ldr r0, [r1] + ldr r0, [r0, #0xc] + bl FUN_02010758 + bl FUN_0201070C + ldr r1, _0238A380 @ =0x0238CE80 + ldr r2, [r1] + str r0, [r2, #0x14] + ldr r3, [r1] + ldr r2, [r3, #0x14] + ldr r0, [r3, #0x10] + sub r0, r2, r0 + str r0, [r3, #0x18] + ldr r0, [r1] + ldr r0, [r0, #0x18] + rsb r0, r0, #0 + bl FUN_0200ED58 + bl FUN_0200EDFC + ldr r1, _0238A380 @ =0x0238CE80 + ldr r1, [r1] + str r0, [r1, #0x1c] + bl FUN_0200FD48 + ldr r1, _0238A380 @ =0x0238CE80 + ldr r1, [r1] + str r0, [r1, #0x20] + bl FUN_0200FD78 + ldr r7, _0238A380 @ =0x0238CE80 + mov r6, #0 + ldr r1, [r7] + str r0, [r1, #0x24] + ldr r0, [r7] + str r6, [r0, #0x28] + ldr r0, [r7] + ldr r5, [r0, #0x1c] + cmp r5, #0 + ble _0238A2C0 + add r4, sp, #6 + b _0238A2B8 +_0238A274: + lsl r0, r6, #0x10 + mov r1, r4 + asr r0, r0, #0x10 + bl FUN_0200F2E0 + cmp r0, #0 + beq _0238A2B4 + ldrsh r0, [sp, #0xa] + bl FUN_0200CCA8 + cmp r0, #0 + ldreq r1, [r7] + sub r5, r5, #1 + ldreq r0, [r1, #0x28] + addeq r0, r0, #1 + streq r0, [r1, #0x28] + cmp r5, #0 + ble _0238A2C0 +_0238A2B4: + add r6, r6, #1 +_0238A2B8: + cmp r6, #0x3e8 + blt _0238A274 +_0238A2C0: + ldr r0, _0238A380 @ =0x0238CE80 + ldr r3, [r0] + ldr r4, [r3, #0x1c] + ldr r0, [r3, #0x28] + ldr r2, [r3, #0x20] + ldr r1, [r3, #0x24] + sub r0, r4, r0 + sub r1, r2, r1 + cmp r1, r0 + blt _0238A368 + cmp r4, #0 + ble _0238A354 + mov r6, #0 + add r5, sp, #0 + b _0238A348 +_0238A2FC: + lsl r0, r6, #0x10 + mov r1, r5 + asr r0, r0, #0x10 + bl FUN_0200F2E0 + cmp r0, #0 + beq _0238A344 + ldrsh r0, [sp, #4] + bl FUN_0200CCA8 + cmp r0, #0 + beq _0238A338 + lsl r0, r6, #0x10 + asr r0, r0, #0x10 + bl FUN_0200F404 + mov r0, r5 + bl FUN_020103AC +_0238A338: + sub r4, r4, #1 + cmp r4, #0 + ble _0238A350 +_0238A344: + add r6, r6, #1 +_0238A348: + cmp r6, #0x3e8 + blt _0238A2FC +_0238A350: + bl FUN_0200F370 +_0238A354: + ldr r0, _0238A380 @ =0x0238CE80 + mov r1, #0 + ldr r0, [r0] + strb r1, [r0, #0x2c] + b _0238A370 +_0238A368: + mov r0, #1 + strb r0, [r3, #0x2c] +_0238A370: + mov r0, #1 + add sp, sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0238A37C: .4byte 0x02324DB8 +_0238A380: .4byte 0x0238CE80 +_0238A384: .4byte 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_0238A468 +ov27_0238A468: @ 0x0238A468 + add r0, r0, #0x38 + bl FUN_020235B8 + ldr r0, _0238A8DC @ =0x0238CE80 + mov r3, #4 + ldr r2, [r0] + mov r1, #1 + str r3, [r2] + ldr r0, [r0] + 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 +_0238A8D0: + mov r0, #1 + add sp, sp, #0x18c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0238A8DC: .4byte 0x0238CE80 + arm_func_end ov27_0238A468 +_0238A8E0: + .byte 0x08, 0x04, 0x00, 0x00, 0x18, 0x06, 0x00, 0x00, 0xB8, 0x4D, 0x32, 0x02 + + arm_func_start ov27_0238A8EC +ov27_0238A8EC: @ 0x0238A8EC + ldr r0, _0238A924 @ =0x0238CE80 + mov r3, #8 + ldr r1, [r0] + mov r2, #0 + strh r3, [r1, #0x34] + ldr r1, [r0] + strh r3, [r1, #0x36] + ldr r1, [r0] + strb r2, [r1, #0x38] + ldr r1, [r0] + strb r2, [r1, #0x438] + ldr r0, [r0] + str r2, [r0, #0x30] + bx lr + .align 2, 0 +_0238A924: .4byte 0x0238CE80 + arm_func_end ov27_0238A8EC + + arm_func_start ov27_0238A928 +ov27_0238A928: @ 0x0238A928 + push {r3, lr} + ldr r0, _0238A95C @ =0x0238CE80 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #8] + cmp r0, r1 + beq _0238A954 + bl FUN_0202F180 + cmp r0, #0 + movne r0, #1 + popne {r3, pc} +_0238A954: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_0238A95C: .4byte 0x0238CE80 + arm_func_end ov27_0238A928 + + arm_func_start ov27_0238A960 +ov27_0238A960: @ 0x0238A960 + push {r3, lr} + ldr r1, _0238A994 @ =0x0238CE80 + mvn r0, #1 + ldr r1, [r1] + ldrsb r1, [r1, #8] + cmp r1, r0 + popne {r3, pc} + mov r0, #0 + bl FUN_0202F0B0 + ldr r1, _0238A994 @ =0x0238CE80 + ldr r1, [r1] + strb r0, [r1, #8] + pop {r3, pc} + .align 2, 0 +_0238A994: .4byte 0x0238CE80 + arm_func_end ov27_0238A960 + + arm_func_start ov27_0238A998 +ov27_0238A998: @ 0x0238A998 + push {r3, r4, lr} + sub sp, sp, #0x30c + ldr r1, _0238B920 @ =0x0238CE84 + ldr r2, [r1] + str r0, [r2] + ldr r2, [r1] + ldr r0, [r2] + cmp r0, #0x2d + addls pc, pc, r0, lsl #2 + b _0238BA74 +_0238A9C0: @ jump table + b _0238AA78 @ case 0 + b _0238AB60 @ case 1 + b _0238ABAC @ case 2 + b _0238ABFC @ case 3 + b _0238AE50 @ case 4 + b _0238AC4C @ case 5 + b _0238AC9C @ case 6 + b _0238ACEC @ case 7 + b _0238AD3C @ case 8 + b _0238AD8C @ case 9 + b _0238AE00 @ case 10 + b _0238AE5C @ case 11 + b _0238AEAC @ case 12 + b _0238AEF8 @ case 13 + b _0238AF48 @ case 14 + b _0238AF94 @ case 15 + b _0238B014 @ case 16 + b _0238B050 @ case 17 + b _0238B134 @ case 18 + b _0238B1B0 @ case 19 + b _0238B294 @ case 20 + b _0238B34C @ case 21 + b _0238B3C4 @ case 22 + b _0238B418 @ case 23 + b _0238B468 @ case 24 + b _0238B4C0 @ case 25 + b _0238B508 @ case 26 + b _0238B53C @ case 27 + b _0238B578 @ case 28 + b _0238B628 @ case 29 + b _0238B6DC @ case 30 + b _0238B78C @ case 31 + b _0238B820 @ case 32 + b _0238BA74 @ case 33 + b _0238AAE0 @ case 34 + b _0238BA74 @ case 35 + b _0238B758 @ case 36 + b _0238B6A8 @ case 37 + b _0238B260 @ case 38 + b _0238B22C @ case 39 + b _0238B890 @ case 40 + b _0238B8EC @ case 41 + b _0238BA2C @ case 42 + b _0238BA74 @ case 43 + b _0238BA74 @ case 44 + b _0238B4A0 @ case 45 +_0238AA78: + mov r1, #1 + mov r0, #0 + strb r1, [r2, #0x80] + bl FUN_0202F0B0 + ldr r2, _0238B920 @ =0x0238CE84 + mov r1, #0x73 + ldr r3, [r2] + strb r0, [r3, #0x8d] + ldr r0, [r2] + str r1, [r0, #0x94] + ldr r0, [r2] + add r0, r0, #0x1a4 + bl FUN_0204D7D4 + ldr r0, _0238B920 @ =0x0238CE84 + mov r1, #0 + ldr r0, [r0] + add r0, r0, #0x1a4 + bl FUN_0204D804 + ldr r0, _0238B920 @ =0x0238CE84 + ldr r2, _0238B924 @ =0x000004BE + ldr r3, [r0] + mov r1, #8 + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + b _0238BA74 +_0238AAE0: + ldr r0, _0238B928 @ =0x0238CA8C + bl FUN_0200C1FC + ldr r1, _0238B920 @ =0x0238CE84 + mov r3, #0 + ldr r4, [r1] + mov r0, #1 + add r2, r4, #0x88 + str r2, [sp, #0x6c] + strb r3, [r4, #0x88] + ldr r2, [r1] + strb r3, [r2, #0x89] + ldr r2, [r1] + strb r3, [r2, #0x8a] + ldr r1, [r1] + strb r3, [r1, #0x8b] + bl FUN_02043320 + cmp r0, #0 + ldrne r0, _0238B920 @ =0x0238CE84 + movne r1, #3 + ldrne r0, [r0] + ldr r3, _0238B92C @ =0x0238C9B4 + strbne r1, [r0, #0x89] + mov r4, #4 + ldr r1, _0238B930 @ =0x00000211 + add r2, sp, #0xc + mov r0, #0 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238B920 @ =0x0238CE84 + ldr r1, [r1] + strb r0, [r1, #0x91] + b _0238BA74 +_0238AB60: + ldr r0, _0238B934 @ =0x0238CAA4 + bl FUN_0200C1FC + bl FUN_02042AF8 + bl FUN_020434D4 + bl ov27_0238C900 + mov r3, #0 + ldr r0, _0238B920 @ =0x0238CE84 + mov r4, #0x73 + ldr r2, [r0] + mov r1, #8 + strb r3, [r2, #0x80] + ldr r3, [r0] + ldr r2, _0238B924 @ =0x000004BE + str r4, [r3, #0x94] + ldr r3, [r0] + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + b _0238BA74 +_0238ABAC: + ldr r0, _0238B938 @ =0x0238CAB8 + bl FUN_0200C1FC + bl ov27_0238C900 + ldr r0, _0238B920 @ =0x0238CE84 + mov r3, #1 + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #4] + ldr r1, [r0] + mov r3, #0x73 + strb r2, [r1, #0x80] + ldr r2, [r0] + mov r1, #0x18 + str r3, [r2, #0x94] + ldr r3, [r0] + add r2, r1, #0x4c0 + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + b _0238BA74 +_0238ABFC: + ldr r0, _0238B93C @ =0x0238CAD0 + bl FUN_0200C1FC + bl ov27_0238C900 + ldr r0, _0238B920 @ =0x0238CE84 + mov r3, #4 + ldr r1, [r0] + mov r2, #1 + str r3, [r1, #4] + ldr r1, [r0] + mov r3, #0x73 + strb r2, [r1, #0x80] + ldr r2, [r0] + ldr r1, _0238B940 @ =0x00000418 + str r3, [r2, #0x94] + ldr r3, [r0] + add r2, r1, #0xa5 + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + b _0238BA74 +_0238AC4C: + ldr r0, _0238B944 @ =0x0238CAE4 + bl FUN_0200C1FC + bl ov27_0238C900 + ldr r0, _0238B920 @ =0x0238CE84 + mov r2, #1 + ldr r1, [r0] + mov r3, #0x73 + str r2, [r1, #4] + ldr r1, [r0] + mov r2, #0 + strb r2, [r1, #0x80] + ldr r1, [r0] + rsb r2, r3, #0x398 + str r3, [r1, #0x94] + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + b _0238BA74 +_0238AC9C: + ldr r0, _0238B948 @ =0x0238CAFC + bl FUN_0200C1FC + bl ov27_0238C900 + ldr r0, _0238B920 @ =0x0238CE84 + mov r3, #1 + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #4] + ldr r1, [r0] + mov r3, #0x73 + strb r2, [r1, #0x80] + ldr r1, [r0] + ldr r2, _0238B94C @ =0x00000326 + str r3, [r1, #0x94] + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + b _0238BA74 +_0238ACEC: + ldr r0, _0238B950 @ =0x0238CB14 + bl FUN_0200C1FC + bl ov27_0238C900 + ldr r0, _0238B920 @ =0x0238CE84 + mov r3, #1 + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #4] + ldr r1, [r0] + mov r3, #0x73 + strb r2, [r1, #0x80] + ldr r1, [r0] + ldr r2, _0238B954 @ =0x000004D7 + str r3, [r1, #0x94] + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + b _0238BA74 +_0238AD3C: + ldr r0, _0238B958 @ =0x0238CB30 + bl FUN_0200C1FC + bl ov27_0238C900 + ldr r0, _0238B920 @ =0x0238CE84 + mov r3, #1 + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #4] + ldr r1, [r0] + mov r3, #0x73 + strb r2, [r1, #0x80] + ldr r2, [r0] + ldr r1, _0238B940 @ =0x00000418 + str r3, [r2, #0x94] + ldr r3, [r0] + add r2, r1, #0xab + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + b _0238BA74 +_0238AD8C: + ldr r0, _0238B95C @ =0x0238CB4C + bl FUN_0200C1FC + bl ov27_0238C900 + ldr r0, _0238B920 @ =0x0238CE84 + mov r3, #0xe + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #4] + ldr r1, [r0] + mov r3, #0x73 + strb r2, [r1, #0x80] + ldr r1, [r0] + ldr r2, _0238B960 @ =0x0238C950 + str r3, [r1, #0x94] + ldr r1, [r0] + add r0, r1, #0x124 + add r1, r1, #0x10 + bl FUN_0200D670 + ldr r0, _0238B920 @ =0x0238CE84 + ldr r2, _0238B964 @ =0x000004CA + ldr r4, [r0] + mov r1, #0x18 + add r3, r4, #0x124 + str r3, [r4, #0xcc] + ldr r3, [r0] + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + arm_func_end ov27_0238A998 + + arm_func_start ov27_0238ADFC +ov27_0238ADFC: @ 0x0238ADFC + b _0238BA74 +_0238AE00: + ldr r0, _0238B968 @ =0x0238CB64 + bl FUN_0200C1FC + bl ov27_0238C900 + ldr r0, _0238B920 @ =0x0238CE84 + mov r2, #0xe + ldr r1, [r0] + mov r3, #0x73 + str r2, [r1, #4] + ldr r1, [r0] + mov r2, #0 + strb r2, [r1, #0x80] + ldr r1, [r0] + rsb r2, r3, #0x39c + str r3, [r1, #0x94] + ldr r3, [r0] + mov r1, #0x18 + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + b _0238BA74 +_0238AE50: + ldr r0, _0238B96C @ =0x0238CB7C + bl FUN_0200C1FC + b _0238BA74 +_0238AE5C: + ldr r0, _0238B970 @ =0x0238CB8C + bl FUN_0200C1FC + bl ov27_0238C900 + ldr r0, _0238B920 @ =0x0238CE84 + mov r3, #0xd + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #4] + ldr r1, [r0] + mov r3, #0x73 + strb r2, [r1, #0x80] + ldr r2, [r0] + ldr r1, _0238B940 @ =0x00000418 + str r3, [r2, #0x94] + ldr r3, [r0] + add r2, r1, #0xac + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + b _0238BA74 +_0238AEAC: + ldr r0, _0238B974 @ =0x0238CBA4 + bl FUN_0200C1FC + ldr r0, _0238B920 @ =0x0238CE84 + mov r3, #0xe + ldr r1, [r0] + mov r2, #0 + str r3, [r1, #4] + ldr r1, [r0] + mov r3, #0x73 + strb r2, [r1, #0x80] + ldr r2, [r0] + ldr r1, _0238B940 @ =0x00000418 + str r3, [r2, #0x94] + ldr r3, [r0] + add r2, r1, #0xb5 + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + b _0238BA74 +_0238AEF8: + ldr r0, _0238B978 @ =0x0238CBBC + bl FUN_0200C1FC + ldr r0, _0238B920 @ =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x8d] + bl FUN_0202F3A4 + ldr r0, _0238B920 @ =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x8d] + bl FUN_0202F2C4 + bl FUN_02042730 + mov r0, #3 + mov r1, #0 + mov r2, #8 + mov r3, #1 + bl FUN_02042258 + ldr r1, _0238B920 @ =0x0238CE84 + ldr r1, [r1] + strb r0, [r1, #0x8f] + b _0238BA74 +_0238AF48: + ldr r0, _0238B97C @ =0x0238CBD4 + bl FUN_0200C1FC + ldr r0, _0238B920 @ =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x8d] + bl FUN_0202F3A4 + ldr r0, _0238B920 @ =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x8d] + bl FUN_0202F2C4 + mov r0, #3 + mov r1, #0 + mov r2, #8 + mov r3, #1 + bl FUN_02042258 + ldr r1, _0238B920 @ =0x0238CE84 + ldr r1, [r1] + strb r0, [r1, #0x8f] + b _0238BA74 +_0238AF94: + ldr r0, _0238B980 @ =0x0238CBF0 + bl FUN_0200C1FC + ldr r0, _0238B920 @ =0x0238CE84 + ldr r1, [r0] + add r0, r1, #0x88 + str r0, [sp, #0x104] + ldrsh r0, [r1, #0x14] + bl FUN_0200CCA8 + cmp r0, #0 + ldrne r0, _0238B920 @ =0x0238CE84 + movne r1, #0 + ldreq r0, _0238B920 @ =0x0238CE84 + moveq r1, #3 + ldr r0, [r0] + mov r2, #0 + strb r1, [r0, #0x88] + ldr r0, _0238B920 @ =0x0238CE84 + mov r4, #3 + ldr r1, [r0] + ldr r3, _0238B984 @ =0x0238C994 + strb r2, [r1, #0x89] + ldr r1, [r0] + ldr r0, _0238B988 @ =0x0238CA4C + strb r2, [r1, #0x8a] + add r2, sp, #0xa4 + add r1, r4, #0x210 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238B920 @ =0x0238CE84 + ldr r1, [r1] + strb r0, [r1, #0x91] + b _0238BA74 +_0238B014: + ldr r0, _0238B98C @ =0x0238CC0C + bl FUN_0200C1FC + ldr r0, _0238B990 @ =0x0238C94C + mov r4, #3 + str r0, [sp, #0x19c] + ldr r0, _0238B988 @ =0x0238CA4C + ldr r3, _0238B984 @ =0x0238C994 + add r2, sp, #0x13c + add r1, r4, #0x210 + str r4, [sp] + bl FUN_0202B0EC + ldr r1, _0238B920 @ =0x0238CE84 + ldr r1, [r1] + strb r0, [r1, #0x91] + b _0238BA74 +_0238B050: + ldr r0, _0238B994 @ =0x0238CC28 + bl FUN_0200C1FC + ldr r1, _0238B920 @ =0x0238CE84 + ldr r0, _0238B998 @ =0x0238CC40 + ldr r2, [r1] + ldrsh r1, [r2, #0x14] + ldrh r2, [r2, #0x12] + bl FUN_0200C1FC + ldr r0, _0238B920 @ =0x0238CE84 + mov lr, #0 + ldr ip, [r0] + ldr r2, _0238B99C @ =0x0238CC50 + ldrh r4, [ip, #0x12] + ldr r3, _0238B9A0 @ =0x0000C402 + mov r1, #0x400 + str r4, [ip, #0x94] + ldr ip, [r0] + ldrsh r4, [ip, #0x14] + str r4, [ip, #0xa4] + ldr ip, [r0] + ldrh r4, [ip, #0x12] + str r4, [ip, #0xb8] + ldr r4, [r0] + ldrh ip, [r4, #0x12] + add ip, ip, #0xbc + str ip, [r4, #0xac] + ldr ip, [r0] + str lr, [ip, #0xc0] + ldr r0, [r0] + add ip, r0, #0x94 + add r0, r0, #0xe4 + str ip, [sp] + bl FUN_020223F0 + add r0, sp, #0x1d4 + bl FUN_02023690 + ldr r0, _0238B920 @ =0x0238CE84 + add r1, sp, #0x1d4 + ldr r3, [r0] + ldr r0, _0238B9A4 @ =0x0238CA6C + add r2, r3, #0xe4 + str r2, [sp, #0x20c] + str r1, [sp] + ldrsh r2, [r3, #0x14] + add r3, r3, #0x94 + ldr r1, _0238B9A8 @ =0x00001013 + add r2, r2, #0xd1 + add r2, r2, #0x2900 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + stmib sp, {r2, r3} + ldr r3, _0238B9AC @ =0x00000315 + mov r2, #0 + bl FUN_0202E3CC + ldr r1, _0238B920 @ =0x0238CE84 + ldr r1, [r1] + strb r0, [r1, #0x92] + b _0238BA74 +_0238B134: + ldr r0, _0238B9B0 @ =0x0238CC5C + bl FUN_0200C1FC + ldr r0, _0238B920 @ =0x0238CE84 + mov r3, #0 + ldr r1, [r0] + mov r2, #0x23 + strb r3, [r1, #0x80] + ldr r1, [r0] + mov r3, #0x27 + str r2, [r1] + ldr r1, [r0] + ldr r2, _0238B960 @ =0x0238C950 + str r3, [r1, #4] + ldr r1, [r0] + add r0, r1, #0x124 + add r1, r1, #0x10 + bl FUN_0200D670 + ldr r0, _0238B920 @ =0x0238CE84 + mov ip, #0x73 + ldr r3, [r0] + ldr r2, _0238B9B4 @ =0x000004C9 + add r1, r3, #0x124 + str r1, [r3, #0xcc] + ldr r3, [r0] + mov r1, #8 + str ip, [r3, #0x94] + ldr r3, [r0] + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + b _0238BA74 +_0238B1B0: + ldr r0, _0238B9B8 @ =0x0238CC78 + bl FUN_0200C1FC + ldr r0, _0238B920 @ =0x0238CE84 + mov r3, #0 + ldr r1, [r0] + mov r2, #0x23 + strb r3, [r1, #0x80] + ldr r1, [r0] + mov r3, #0x26 + str r2, [r1] + ldr r1, [r0] + ldr r2, _0238B960 @ =0x0238C950 + str r3, [r1, #4] + ldr r1, [r0] + add r0, r1, #0x124 + add r1, r1, #0x10 + bl FUN_0200D670 + ldr r0, _0238B920 @ =0x0238CE84 + mov ip, #0x73 + ldr r3, [r0] + mov r1, #8 + add r2, r3, #0x124 + str r2, [r3, #0xcc] + ldr r3, [r0] + add r2, r1, #0x4c0 + str ip, [r3, #0x94] + ldr r3, [r0] + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + b _0238BA74 +_0238B22C: + ldr r0, _0238B9BC @ =0x0238CC94 + bl FUN_0200C1FC + mov ip, #2 + ldr r0, _0238B9C0 @ =0x0238CA5C + ldr r1, _0238B9C4 @ =0x00300013 + ldr r3, _0238B9C8 @ =0x0238C95C + mov r2, #0 + str ip, [sp] + bl FUN_0202B0EC + ldr r1, _0238B920 @ =0x0238CE84 + ldr r1, [r1] + strb r0, [r1, #0x91] + b _0238BA74 +_0238B260: + ldr r0, _0238B9CC @ =0x0238CCAC + bl FUN_0200C1FC + mov ip, #2 + ldr r0, _0238B9C0 @ =0x0238CA5C + ldr r1, _0238B9C4 @ =0x00300013 + ldr r3, _0238B9C8 @ =0x0238C95C + mov r2, #0 + str ip, [sp] + bl FUN_0202B0EC + ldr r1, _0238B920 @ =0x0238CE84 + ldr r1, [r1] + strb r0, [r1, #0x91] + b _0238BA74 +_0238B294: + ldr r0, _0238B9D0 @ =0x0238CCC0 + bl FUN_0200C1FC + bl FUN_022DC504 + bl FUN_0200EDFC + cmp r0, #0 + ldreq r0, _0238B920 @ =0x0238CE84 + moveq r1, #3 + ldreq r0, [r0] + streq r1, [r0, #4] + beq _0238B2E8 + mov r0, #0 + bl FUN_02043380 + cmp r0, #0 + ldrne r0, _0238B920 @ =0x0238CE84 + movne r1, #1 + ldrne r0, [r0] + strne r1, [r0, #4] + ldreq r0, _0238B920 @ =0x0238CE84 + moveq r1, #0xc + ldreq r0, [r0] + streq r1, [r0, #4] +_0238B2E8: + bl FUN_02042AF8 + bl FUN_020434D4 + ldr r0, _0238B920 @ =0x0238CE84 + mov r3, #1 + ldr r1, [r0] + ldr r2, _0238B960 @ =0x0238C950 + strb r3, [r1, #0x80] + ldr r1, [r0] + add r0, r1, #0x124 + add r1, r1, #0x10 + bl FUN_0200D670 + ldr r0, _0238B920 @ =0x0238CE84 + ldr r1, _0238B940 @ =0x00000418 + ldr r3, [r0] + mov ip, #0x73 + add r2, r3, #0x124 + str r2, [r3, #0xcc] + ldr r3, [r0] + add r2, r1, #0xb3 + str ip, [r3, #0x94] + ldr r3, [r0] + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + b _0238BA74 +_0238B34C: + ldr r0, _0238B9D4 @ =0x0238CCDC + bl FUN_0200C1FC + bl FUN_022DC504 + bl FUN_0200EDFC + cmp r0, #0 + ldreq r0, _0238B920 @ =0x0238CE84 + moveq r1, #3 + beq _0238B37C + mov r0, #0 + bl FUN_02043380 + ldr r0, _0238B920 @ =0x0238CE84 + mov r1, #1 +_0238B37C: + ldr r0, [r0] + str r1, [r0, #4] + bl FUN_02042AF8 + bl FUN_020434D4 + ldr r0, _0238B920 @ =0x0238CE84 + mov r2, #1 + ldr r1, [r0] + mov r3, #0x73 + strb r2, [r1, #0x80] + ldr r2, [r0] + ldr r1, _0238B940 @ =0x00000418 + str r3, [r2, #0x94] + ldr r3, [r0] + add r2, r1, #0xb4 + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + b _0238BA74 +_0238B3C4: + ldr r0, _0238B9D8 @ =0x0238CCF8 + bl FUN_0200C1FC + bl FUN_02043218 + bl ov27_0238C900 + ldr r0, _0238B920 @ =0x0238CE84 + mov r2, #0x18 + ldr r1, [r0] + mov r3, #0 + str r2, [r1, #4] + add r1, r2, #0x400 + ldr r2, [r0] + mov ip, #0x73 + strb r3, [r2, #0x80] + ldr r3, [r0] + ldr r2, _0238B9DC @ =0x000004CE + str ip, [r3, #0x94] + ldr r3, [r0] + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + b _0238BA74 +_0238B418: + ldr r0, _0238B9E0 @ =0x0238CD10 + bl FUN_0200C1FC + bl ov27_0238C900 + ldr r0, _0238B920 @ =0x0238CE84 + mov ip, #0x18 + ldr r1, [r0] + mov r2, #0 + str ip, [r1, #4] + ldr r1, [r0] + mov r3, #0x73 + strb r2, [r1, #0x80] + ldr r1, [r0] + ldr r2, _0238B9E4 @ =0x000004D6 + str r3, [r1, #0x94] + ldr r3, [r0] + add r1, ip, #0x400 + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + b _0238BA74 +_0238B468: + ldr r0, _0238B9E8 @ =0x0238CD28 + bl FUN_0200C1FC + ldr r0, _0238B920 @ =0x0238CE84 + mov r2, #0x2d + ldr r1, [r0] + str r2, [r1, #4] + ldr r0, [r0] + ldrsb r0, [r0, #0x8d] + bl FUN_0202F3A4 + ldr r0, _0238B920 @ =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x8d] + bl FUN_0202F2C4 + b _0238BA74 +_0238B4A0: + mov r0, #4 + mov r1, #0 + mov r2, #8 + bl FUN_02042CF0 + ldr r1, _0238B920 @ =0x0238CE84 + ldr r1, [r1] + strb r0, [r1, #0x90] + b _0238BA74 +_0238B4C0: + ldr r0, _0238B9EC @ =0x0238CD40 + bl FUN_0200C1FC + ldr r0, _0238B920 @ =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x8d] + bl FUN_0202F3A4 + ldr r0, _0238B920 @ =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x8d] + bl FUN_0202F2C4 + mov r0, #4 + mov r1, #0 + mov r2, #8 + bl FUN_02042CF0 + ldr r1, _0238B920 @ =0x0238CE84 + ldr r1, [r1] + strb r0, [r1, #0x90] + b _0238BA74 +_0238B508: + ldr r0, _0238B9F0 @ =0x0238CD5C + bl FUN_0200C1FC + mov ip, #3 + ldr r0, _0238B988 @ =0x0238CA4C + ldr r3, _0238B9F4 @ =0x0238C974 + mov r1, #0x13 + mov r2, #0 + str ip, [sp] + bl FUN_0202B0EC + ldr r1, _0238B920 @ =0x0238CE84 + ldr r1, [r1] + strb r0, [r1, #0x91] + b _0238BA74 +_0238B53C: + ldr r0, _0238B9F0 @ =0x0238CD5C + bl FUN_0200C1FC + ldr r0, _0238B9F8 @ =0x0238C948 + mov ip, #3 + str r0, [sp, #0x284] + ldr r0, _0238B988 @ =0x0238CA4C + ldr r3, _0238B9F4 @ =0x0238C974 + add r2, sp, #0x224 + add r1, ip, #0x210 + str ip, [sp] + bl FUN_0202B0EC + ldr r1, _0238B920 @ =0x0238CE84 + ldr r1, [r1] + strb r0, [r1, #0x91] + b _0238BA74 +_0238B578: + ldr r0, _0238B9FC @ =0x0238CD78 + bl FUN_0200C1FC + ldr r0, _0238B920 @ =0x0238CE84 + ldr r2, _0238B99C @ =0x0238CC50 + ldr lr, [r0] + ldr r3, _0238B9A0 @ =0x0000C402 + ldrh ip, [lr, #0x12] + mov r1, #0x400 + str ip, [lr, #0x94] + ldr lr, [r0] + ldrsh ip, [lr, #0x14] + str ip, [lr, #0xa4] + ldr lr, [r0] + ldrh ip, [lr, #0x12] + str ip, [lr, #0xb8] + ldr r0, [r0] + add ip, r0, #0x94 + add r0, r0, #0xe4 + str ip, [sp] + bl FUN_020223F0 + add r0, sp, #0x2bc + bl FUN_02023690 + ldr r0, _0238B920 @ =0x0238CE84 + add r1, sp, #0x2bc + ldr r3, [r0] + ldr r0, _0238B9A4 @ =0x0238CA6C + add r2, r3, #0xe4 + str r2, [sp, #0x2f4] + str r1, [sp] + ldrsh r2, [r3, #0x14] + add r3, r3, #0x94 + ldr r1, _0238B9A8 @ =0x00001013 + add r2, r2, #0xd1 + add r2, r2, #0x2900 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + stmib sp, {r2, r3} + ldr r3, _0238B9AC @ =0x00000315 + mov r2, #0 + bl FUN_0202E3CC + ldr r1, _0238B920 @ =0x0238CE84 + ldr r1, [r1] + strb r0, [r1, #0x92] + b _0238BA74 +_0238B628: + ldr r0, _0238BA00 @ =0x0238CD90 + bl FUN_0200C1FC + ldr r0, _0238B920 @ =0x0238CE84 + mov r3, #0 + ldr r1, [r0] + ldr r2, _0238B960 @ =0x0238C950 + strb r3, [r1, #0x80] + ldr r1, [r0] + add r0, r1, #0x124 + add r1, r1, #0x10 + bl FUN_0200D670 + ldr r0, _0238B920 @ =0x0238CE84 + mov ip, #0x73 + ldr r3, [r0] + add r2, ip, #0x460 + add r1, r3, #0x124 + str r1, [r3, #0xcc] + ldr r3, [r0] + mov r1, #8 + str ip, [r3, #0x94] + ldr r3, [r0] + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + ldr r0, _0238B920 @ =0x0238CE84 + mov r3, #0x23 + ldr r2, [r0] + mov r1, #0x25 + str r3, [r2] + ldr r0, [r0] + str r1, [r0, #4] + b _0238BA74 +_0238B6A8: + ldr r0, _0238BA04 @ =0x0238CDAC + bl FUN_0200C1FC + mov ip, #2 + ldr r0, _0238B9C0 @ =0x0238CA5C + ldr r1, _0238B9C4 @ =0x00300013 + ldr r3, _0238B9C8 @ =0x0238C95C + mov r2, #0 + str ip, [sp] + bl FUN_0202B0EC + ldr r1, _0238B920 @ =0x0238CE84 + ldr r1, [r1] + strb r0, [r1, #0x91] + b _0238BA74 +_0238B6DC: + ldr r0, _0238BA08 @ =0x0238CDC4 + bl FUN_0200C1FC + ldr r0, _0238B920 @ =0x0238CE84 + mov r3, #0 + ldr r1, [r0] + mov r2, #0x23 + strb r3, [r1, #0x80] + ldr r1, [r0] + mov r3, #0x24 + str r2, [r1] + ldr r1, [r0] + ldr r2, _0238B960 @ =0x0238C950 + str r3, [r1, #4] + ldr r1, [r0] + add r0, r1, #0x124 + add r1, r1, #0x10 + bl FUN_0200D670 + ldr r0, _0238B920 @ =0x0238CE84 + mov ip, #0x73 + ldr r3, [r0] + ldr r2, _0238BA0C @ =0x000004D2 + add r1, r3, #0x124 + str r1, [r3, #0xcc] + ldr r3, [r0] + mov r1, #8 + str ip, [r3, #0x94] + ldr r3, [r0] + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + b _0238BA74 +_0238B758: + ldr r0, _0238BA10 @ =0x0238CDE0 + bl FUN_0200C1FC + mov ip, #2 + ldr r0, _0238B9C0 @ =0x0238CA5C + ldr r1, _0238B9C4 @ =0x00300013 + ldr r3, _0238B9C8 @ =0x0238C95C + mov r2, #0 + str ip, [sp] + bl FUN_0202B0EC + ldr r1, _0238B920 @ =0x0238CE84 + ldr r1, [r1] + strb r0, [r1, #0x91] + b _0238BA74 +_0238B78C: + ldr r0, _0238BA14 @ =0x0238CDF4 + bl FUN_0200C1FC + bl FUN_022DC504 + mov r0, #1 + bl FUN_02043320 + cmp r0, #0 + ldrne r0, _0238B920 @ =0x0238CE84 + movne r1, #1 + ldreq r0, _0238B920 @ =0x0238CE84 + moveq r1, #0x17 + ldr r0, [r0] + str r1, [r0, #4] + bl FUN_02042AF8 + bl FUN_020434D4 + ldr r0, _0238B920 @ =0x0238CE84 + mov r3, #1 + ldr r1, [r0] + ldr r2, _0238B960 @ =0x0238C950 + strb r3, [r1, #0x80] + ldr r1, [r0] + add r0, r1, #0x124 + add r1, r1, #0x10 + bl FUN_0200D670 + ldr r0, _0238B920 @ =0x0238CE84 + mov ip, #0x73 + ldr r3, [r0] + ldr r1, _0238B940 @ =0x00000418 + add r2, r3, #0x124 + str r2, [r3, #0xcc] + ldr r3, [r0] + add r2, r1, #0xbc + str ip, [r3, #0x94] + ldr r3, [r0] + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + b _0238BA74 +_0238B820: + ldr r0, _0238BA18 @ =0x0238CE10 + bl FUN_0200C1FC + bl FUN_022DC504 + mov r0, #1 + bl FUN_02043320 + cmp r0, #0 + ldrne r0, _0238B920 @ =0x0238CE84 + movne r1, #1 + ldreq r0, _0238B920 @ =0x0238CE84 + moveq r1, #0x17 + ldr r0, [r0] + str r1, [r0, #4] + bl FUN_02042AF8 + bl FUN_020434D4 + ldr r0, _0238B920 @ =0x0238CE84 + mov r2, #1 + ldr r1, [r0] + mov r3, #0x73 + strb r2, [r1, #0x80] + ldr r2, [r0] + ldr r1, _0238B940 @ =0x00000418 + str r3, [r2, #0x94] + ldr r3, [r0] + add r2, r1, #0xbd + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + b _0238BA74 +_0238B890: + ldr r0, _0238BA1C @ =0x0238CE2C + bl FUN_0200C1FC + ldr r0, _0238B920 @ =0x0238CE84 + mov r2, #0 + ldr r1, [r0] + mov r3, #0x73 + strb r2, [r1, #0x80] + ldr r1, [r0] + ldr r2, _0238BA20 @ =0x000004D9 + str r3, [r1, #0x94] + ldr r3, [r0] + mov r1, #8 + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 + ldr r0, _0238B920 @ =0x0238CE84 + mov r3, #0x23 + ldr r2, [r0] + mov r1, #0x29 + str r3, [r2] + ldr r0, [r0] + str r1, [r0, #4] + b _0238BA74 +_0238B8EC: + ldr r0, _0238BA24 @ =0x0238CE44 + bl FUN_0200C1FC + mov ip, #2 + ldr r0, _0238B9C0 @ =0x0238CA5C + ldr r1, _0238B9C4 @ =0x00300013 + ldr r3, _0238B9C8 @ =0x0238C95C + mov r2, #0 + str ip, [sp] + bl FUN_0202B0EC + ldr r1, _0238B920 @ =0x0238CE84 + ldr r1, [r1] + strb r0, [r1, #0x91] + b _0238BA74 + .align 2, 0 +_0238B920: .4byte 0x0238CE84 +_0238B924: .4byte 0x000004BE +_0238B928: .4byte 0x0238CA8C +_0238B92C: .4byte 0x0238C9B4 +_0238B930: .4byte 0x00000211 +_0238B934: .4byte 0x0238CAA4 +_0238B938: .4byte 0x0238CAB8 +_0238B93C: .4byte 0x0238CAD0 +_0238B940: .4byte 0x00000418 +_0238B944: .4byte 0x0238CAE4 +_0238B948: .4byte 0x0238CAFC +_0238B94C: .4byte 0x00000326 +_0238B950: .4byte 0x0238CB14 +_0238B954: .4byte 0x000004D7 +_0238B958: .4byte 0x0238CB30 +_0238B95C: .4byte 0x0238CB4C +_0238B960: .4byte 0x0238C950 +_0238B964: .4byte 0x000004CA +_0238B968: .4byte 0x0238CB64 +_0238B96C: .4byte 0x0238CB7C +_0238B970: .4byte 0x0238CB8C +_0238B974: .4byte 0x0238CBA4 +_0238B978: .4byte 0x0238CBBC +_0238B97C: .4byte 0x0238CBD4 +_0238B980: .4byte 0x0238CBF0 +_0238B984: .4byte 0x0238C994 +_0238B988: .4byte 0x0238CA4C +_0238B98C: .4byte 0x0238CC0C +_0238B990: .4byte 0x0238C94C +_0238B994: .4byte 0x0238CC28 +_0238B998: .4byte 0x0238CC40 +_0238B99C: .4byte 0x0238CC50 +_0238B9A0: .4byte 0x0000C402 +_0238B9A4: .4byte 0x0238CA6C +_0238B9A8: .4byte 0x00001013 +_0238B9AC: .4byte 0x00000315 +_0238B9B0: .4byte 0x0238CC5C +_0238B9B4: .4byte 0x000004C9 +_0238B9B8: .4byte 0x0238CC78 +_0238B9BC: .4byte 0x0238CC94 +_0238B9C0: .4byte 0x0238CA5C +_0238B9C4: .4byte 0x00300013 +_0238B9C8: .4byte 0x0238C95C +_0238B9CC: .4byte 0x0238CCAC +_0238B9D0: .4byte 0x0238CCC0 +_0238B9D4: .4byte 0x0238CCDC +_0238B9D8: .4byte 0x0238CCF8 +_0238B9DC: .4byte 0x000004CE +_0238B9E0: .4byte 0x0238CD10 +_0238B9E4: .4byte 0x000004D6 +_0238B9E8: .4byte 0x0238CD28 +_0238B9EC: .4byte 0x0238CD40 +_0238B9F0: .4byte 0x0238CD5C +_0238B9F4: .4byte 0x0238C974 +_0238B9F8: .4byte 0x0238C948 +_0238B9FC: .4byte 0x0238CD78 +_0238BA00: .4byte 0x0238CD90 +_0238BA04: .4byte 0x0238CDAC +_0238BA08: .4byte 0x0238CDC4 +_0238BA0C: .4byte 0x000004D2 +_0238BA10: .4byte 0x0238CDE0 +_0238BA14: .4byte 0x0238CDF4 +_0238BA18: .4byte 0x0238CE10 +_0238BA1C: .4byte 0x0238CE2C +_0238BA20: .4byte 0x000004D9 +_0238BA24: .4byte 0x0238CE44 +_0238BA28: .4byte 0x0238CE58 +_0238BA2C: + ldr r0, _0238BA28 @ =0x0238CE58 + bl FUN_0200C1FC + ldr r0, _0238B920 @ =0x0238CE84 + mov r3, #3 + ldr r1, [r0] + mov r2, #1 + str r3, [r1, #4] + ldr r1, [r0] + mov r3, #0x73 + strb r2, [r1, #0x80] + ldr r2, [r0] + ldr r1, _0238B940 @ =0x00000418 + str r3, [r2, #0x94] + ldr r3, [r0] + add r2, r1, #0xc4 + ldrsb r0, [r3, #0x8d] + add r3, r3, #0x94 + bl FUN_0202F1B4 +_0238BA74: + add sp, sp, #0x30c + pop {r3, r4, pc} + arm_func_end ov27_0238ADFC + + arm_func_start ov27_0238BA7C +ov27_0238BA7C: @ 0x0238BA7C + push {r3, lr} + bl FUN_02044094 + bl FUN_020440DC + bl FUN_02042B98 + mov r0, #0x250 + mov r1, #8 + bl FUN_02001170 + ldr r1, _0238BB50 @ =0x0238CE84 + str r0, [r1] + add r0, r0, #0x1b8 + bl FUN_02034A38 + ldr r1, _0238BB50 @ =0x0238CE84 + mov r2, #0 + ldr r3, [r1] + str r0, [r3, #0x1b4] + ldr r0, [r1] + str r2, [r0, #0x20] + ldr r0, [r1] + str r2, [r0, #0x24] + ldr r0, [r1] + str r2, [r0, #0x28] + ldr r0, [r1] + str r2, [r0, #0x84] + ldr r0, [r1] + add r0, r0, #0x94 + bl FUN_02023690 + ldr r1, _0238BB50 @ =0x0238CE84 + mov r2, #0x73 + ldr r0, [r1] + mov r3, #0 + str r2, [r0, #0xe0] + ldr r0, [r1] + str r2, [r0, #0x94] + ldr r0, [r1] + str r3, [r0, #8] + mov r0, r3 +_0238BB0C: + ldr r2, [r1] + add r2, r2, r3 + add r3, r3, #1 + strb r0, [r2, #0x88] + cmp r3, #5 + blt _0238BB0C + ldr r1, _0238BB50 @ =0x0238CE84 + mvn r3, #1 + ldr r2, [r1] + strb r3, [r2, #0x8f] + ldr r2, [r1] + strb r3, [r2, #0x90] + ldr r1, [r1] + strb r0, [r1, #0x80] + bl ov27_0238A998 + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_0238BB50: .4byte 0x0238CE84 + arm_func_end ov27_0238BA7C + + arm_func_start ov27_0238BB54 +ov27_0238BB54: @ 0x0238BB54 + push {r3, lr} + ldr r0, _0238BB7C @ =0x0238CE84 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0238BB7C @ =0x0238CE84 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0238BB7C: .4byte 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_0238C900 +ov27_0238C900: @ 0x0238C900 + push {r3, lr} + ldr r0, _0238C944 @ =0x0238CE84 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #0x91] + cmp r0, r1 + popeq {r3, pc} + bl FUN_0202836C + ldr r0, _0238C944 @ =0x0238CE84 + ldr r0, [r0] + ldrsb r0, [r0, #0x91] + bl FUN_0202B4C4 + ldr r0, _0238C944 @ =0x0238CE84 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0x91] + pop {r3, pc} + .align 2, 0 +_0238C944: .4byte 0x0238CE84 + arm_func_end ov27_0238C900 + @ 0x0238C948 diff --git a/asm/overlay_28.s b/asm/overlay_28.s index ce0736ae..c0bff1eb 100644 --- a/asm/overlay_28.s +++ b/asm/overlay_28.s @@ -3,3 +3,543 @@ .include "global.inc" .text + + arm_func_start ov28_0238A140 +ov28_0238A140: @ 0x0238A140 + mov r2, #0 + str r2, [r0] + str r2, [r0, #0x10] + str r1, [r0, #0xc] + str r2, [r0, #4] + sub r2, r2, #1 + ldr r1, _0238A17C @ =0x0238ADA0 + str r2, [r0, #8] + ldr r2, [r1] + mov r1, #0xc + mul r3, r2, r1 + ldr r1, _0238A180 @ =0x0238AD28 + ldr r1, [r1, r3] + strh r1, [r0, #0x18] + bx lr + .align 2, 0 +_0238A17C: .4byte 0x0238ADA0 +_0238A180: .4byte 0x0238AD28 + arm_func_end ov28_0238A140 + + arm_func_start ov28_0238A184 +ov28_0238A184: @ 0x0238A184 + push {r3, r4, r5, lr} + sub sp, sp, #0x10 + mov r5, r0 + ldr r0, [r5] + cmp r0, #4 + addls pc, pc, r0, lsl #2 + b _0238A448 +_0238A1A0: @ jump table + b _0238A1B4 @ case 0 + b _0238A2A4 @ case 1 + b _0238A338 @ case 2 + b _0238A398 @ case 3 + b _0238A41C @ case 4 +_0238A1B4: + ldr r0, _0238A454 @ =0x0238ADA0 + ldr r1, _0238A458 @ =0x0238AD80 + ldr r2, [r0] + mov r0, #0xc + mul r3, r2, r0 + ldr r0, _0238A45C @ =0x0238AD24 + ldr r4, [r1] + ldr r1, [r0, r3] + ldrh r2, [r5, #0x18] + add r0, r4, #0x58 + add r3, r0, #0x800 + sub r1, r2, r1 + add r0, r5, #0x1a + add r1, r3, r1, lsl #6 + bl FUN_02089694 + ldr r0, [r5, #4] + mov r2, #0 + asr r3, r0, #0x10 + lsr r1, r3, #0x1f + rsb r0, r1, r3, lsl #24 + str r3, [r5, #8] + add r0, r1, r0, ror #24 + add r0, r0, #0xc0 + lsr r1, r0, #0x1f + rsb r0, r1, r0, lsl #24 + add r4, r1, r0, ror #24 + asr r0, r4, #2 + add r0, r4, r0, lsr #29 + asr r0, r0, #3 + str r2, [sp] + str r0, [sp, #4] + ldr r0, [r5, #0xc] + add r1, sp, #0 + and r0, r0, #0xff + mov r2, #0x20 + mov r3, #2 + bl FUN_02028EE8 + add r1, r5, #0x1a + b _0238A260 +_0238A250: + ldrb r0, [r1], #1 + cmp r0, #0x20 + movne r0, #0 + bne _0238A270 +_0238A260: + ldrb r0, [r1] + cmp r0, #0 + bne _0238A250 + mov r0, #1 +_0238A270: + cmp r0, #0 + bne _0238A290 + ldr r0, [r5, #0xc] + mov r2, r4 + and r0, r0, #0xff + add r3, r5, #0x1a + mov r1, #0x10 + bl ov28_0238ABD4 +_0238A290: + ldrh r1, [r5, #0x18] + mov r0, #1 + add r1, r1, #1 + strh r1, [r5, #0x18] + str r0, [r5] +_0238A2A4: + mvn r0, #3 + str r0, [sp, #8] + ldr r0, [r5, #4] + add r1, sp, #8 + asr r0, r0, #0x10 + str r0, [sp, #0xc] + ldr r0, [r5, #0xc] + and r0, r0, #0xff + bl FUN_02028F88 + ldr r2, _0238A454 @ =0x0238ADA0 + ldr r0, _0238A460 @ =0x0238AD0C + ldr r1, [r2] + ldr r3, [r5, #4] + ldr r0, [r0, r1, lsl #2] + add r4, r3, r0 + asr r3, r4, #0x10 + lsr r1, r3, #0x1f + rsb r0, r1, r3, lsl #28 + str r4, [r5, #4] + adds r0, r1, r0, ror #28 + bne _0238A448 + ldr r0, [r5, #8] + cmp r0, r3 + beq _0238A448 + ldr r1, [r2] + mov r0, #0xc + mul r2, r1, r0 + ldr r0, _0238A464 @ =0x0238AD2C + ldrh r1, [r5, #0x18] + ldr r0, [r0, r2] + cmp r1, r0 + mov r0, #0 + strgt r0, [r5, #0x14] + movgt r0, #3 + strgt r0, [r5] + strle r0, [r5] + b _0238A448 +_0238A338: + ldr r0, [r5, #4] + mov r2, #0 + asr r3, r0, #0x10 + lsr r1, r3, #0x1f + rsb r0, r1, r3, lsl #24 + add r0, r1, r0, ror #24 + add r0, r0, #0xc0 + lsr r1, r0, #0x1f + rsb r0, r1, r0, lsl #24 + add r1, r1, r0, ror #24 + asr r0, r1, #2 + add r0, r1, r0, lsr #29 + str r3, [r5, #8] + asr r0, r0, #3 + str r2, [sp] + str r0, [sp, #4] + ldr r0, [r5, #0xc] + add r1, sp, #0 + and r0, r0, #0xff + mov r2, #0x20 + mov r3, #2 + bl FUN_02028EE8 + mov r0, #3 + str r0, [r5] +_0238A398: + mvn r0, #3 + str r0, [sp, #8] + ldr r0, [r5, #4] + add r1, sp, #8 + asr r0, r0, #0x10 + str r0, [sp, #0xc] + ldr r0, [r5, #0xc] + and r0, r0, #0xff + bl FUN_02028F88 + ldr r0, _0238A454 @ =0x0238ADA0 + ldr r1, _0238A460 @ =0x0238AD0C + ldr r0, [r0] + ldr r2, [r5, #4] + ldr r0, [r1, r0, lsl #2] + add r3, r2, r0 + asr r2, r3, #0x10 + lsr r1, r2, #0x1f + rsb r0, r1, r2, lsl #28 + str r3, [r5, #4] + adds r0, r1, r0, ror #28 + bne _0238A448 + ldr r0, [r5, #8] + cmp r0, r2 + beq _0238A448 + ldr r0, [r5, #0x14] + add r0, r0, #1 + str r0, [r5, #0x14] + cmp r0, #0xc + movge r0, #4 + strge r0, [r5] + movlt r0, #2 + strlt r0, [r5] + b _0238A448 +_0238A41C: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + ldr r0, [r5, #0xc] + add r1, sp, #0 + and r0, r0, #0xff + mov r2, #0x20 + mov r3, #0x18 + bl FUN_02028EE8 + mov r0, #0 + b _0238A44C +_0238A448: + mov r0, #1 +_0238A44C: + add sp, sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_0238A454: .4byte 0x0238ADA0 +_0238A458: .4byte 0x0238AD80 +_0238A45C: .4byte 0x0238AD24 +_0238A460: .4byte 0x0238AD0C +_0238A464: .4byte 0x0238AD2C + arm_func_end ov28_0238A184 + + arm_func_start ov28_0238A468 +ov28_0238A468: @ 0x0238A468 + push {r4, lr} + mov r4, r0 + ldr r0, _0238A488 @ =0x0238ACFC + bl FUN_020348E4 + cmp r0, #0 + ldrne r0, _0238A48C @ =0x0238ADA0 + strne r4, [r0] + pop {r4, pc} + .align 2, 0 +_0238A488: .4byte 0x0238ACFC +_0238A48C: .4byte 0x0238ADA0 + arm_func_end ov28_0238A468 + + arm_func_start ov28_0238A490 +ov28_0238A490: @ 0x0238A490 + push {r3, r4, r5, r6, r7, lr} + ldr r0, _0238A578 @ =0x00003618 + mov r1, #8 + bl FUN_02001170 + ldr r1, _0238A57C @ =0x0238AD80 + cmp r0, #0 + str r0, [r1] + moveq r0, #0 + popeq {r3, r4, r5, r6, r7, pc} + add r0, r0, #0x20 + mov r1, #0 + bl ov28_0238A140 + ldr r0, _0238A57C @ =0x0238AD80 + mov r1, #1 + ldr r0, [r0] + add r0, r0, #0x3c + add r0, r0, #0x400 + bl ov28_0238A140 + ldr r0, _0238A57C @ =0x0238AD80 + mov r3, #0 + mvn r2, #1 +_0238A4E4: + ldr r1, [r0] + add r1, r1, r3 + add r3, r3, #1 + strb r2, [r1, #9] + cmp r3, #0x14 + blt _0238A4E4 + ldr r1, _0238A580 @ =0x0238ADA0 + mov r0, #0xc + ldr r2, [r1] + ldr r1, _0238A584 @ =0x0238AD24 + mul r3, r2, r0 + ldr r6, [r1, r3] + ldr r0, _0238A588 @ =0x0238AD2C + mov r4, r6 + ldr r5, [r0, r3] + ldr r7, _0238A57C @ =0x0238AD80 + b _0238A54C +_0238A528: + ldr r0, [r7] + lsl r1, r4, #0x10 + add r0, r0, #0x58 + add r2, r0, #0x800 + sub r0, r4, r6 + add r0, r2, r0, lsl #6 + lsr r1, r1, #0x10 + bl FUN_020258B8 + add r4, r4, #1 +_0238A54C: + cmp r4, r5 + ble _0238A528 + ldr r0, _0238A57C @ =0x0238AD80 + mov r3, #5 + ldr r1, [r0] + mov r2, #0 + str r3, [r1] + ldr r1, [r0] + mov r0, #1 + strb r2, [r1, #8] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0238A578: .4byte 0x00003618 +_0238A57C: .4byte 0x0238AD80 +_0238A580: .4byte 0x0238ADA0 +_0238A584: .4byte 0x0238AD24 +_0238A588: .4byte 0x0238AD2C + arm_func_end ov28_0238A490 + + arm_func_start ov28_0238A58C +ov28_0238A58C: @ 0x0238A58C + push {r3, lr} + mov r0, #0 + bl ov28_0238AB5C + bl FUN_02025C14 + bl FUN_02027170 + bl FUN_02027228 + ldr r0, _0238A5C8 @ =0x0238AD80 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _0238A5C8 @ =0x0238AD80 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0238A5C8: .4byte 0x0238AD80 + arm_func_end ov28_0238A58C +_0238A5CC: + .byte 0xF0, 0x41, 0x2D, 0xE9 + .byte 0x18, 0xD0, 0x4D, 0xE2, 0x74, 0x65, 0x9F, 0xE5, 0x00, 0x10, 0x96, 0xE5, 0x00, 0x00, 0x91, 0xE5 + .byte 0x06, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x55, 0x01, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA + .byte 0x31, 0x00, 0x00, 0xEA, 0x33, 0x00, 0x00, 0xEA, 0x28, 0x00, 0x00, 0xEA, 0x1D, 0x00, 0x00, 0xEA + .byte 0x2E, 0x01, 0x00, 0xEA, 0x21, 0x01, 0x00, 0xEA, 0x2E, 0x72, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x4B, 0x01, 0x00, 0x0A, 0x38, 0x05, 0x9F, 0xE5, 0x06, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0x90, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x1A, 0x00, 0x20, 0x91, 0xE5, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x58, 0x20, 0x82, 0xE2, 0x02, 0x3B, 0x82, 0xE2, 0x10, 0x10, 0xA0, 0xE3, 0x68, 0x20, 0xA0, 0xE3 + .byte 0x63, 0x01, 0x00, 0xEB, 0x06, 0x00, 0x00, 0xEA, 0x00, 0x20, 0x91, 0xE5, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x58, 0x20, 0x82, 0xE2, 0x02, 0x3B, 0x82, 0xE2, 0x10, 0x10, 0xA0, 0xE3, 0x60, 0x20, 0xA0, 0xE3 + .byte 0x5B, 0x01, 0x00, 0xEB, 0xE4, 0x04, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x00, 0x10, 0x80, 0xE5, 0x32, 0x01, 0x00, 0xEA, 0x12, 0x72, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x2F, 0x01, 0x00, 0x0A, 0x01, 0x00, 0xA0, 0xE3, 0xFF, 0x71, 0xFD, 0xEB, 0x06, 0x00, 0xA0, 0xE1 + .byte 0x00, 0x00, 0x90, 0xE5, 0x03, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x28, 0x01, 0x00, 0xEA + .byte 0x08, 0x72, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0xA0, 0x11, 0x00, 0x00, 0x90, 0x15 + .byte 0x01, 0x10, 0xA0, 0x13, 0x00, 0x10, 0x80, 0x15, 0x21, 0x01, 0x00, 0xEA, 0x02, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x00, 0x81, 0xE5, 0x1E, 0x01, 0x00, 0xEA, 0x00, 0x40, 0xA0, 0xE3, 0x01, 0x70, 0xE0, 0xE3 + .byte 0x00, 0x00, 0x96, 0xE5, 0x04, 0x00, 0x80, 0xE0, 0xD9, 0x80, 0xD0, 0xE1, 0x07, 0x00, 0x58, 0xE1 + .byte 0x0C, 0x00, 0x00, 0x0A, 0x08, 0x00, 0xA0, 0xE1, 0x19, 0x77, 0xF2, 0xEB, 0x02, 0x00, 0x50, 0xE3 + .byte 0x08, 0x00, 0x00, 0x1A, 0x08, 0x00, 0xA0, 0xE1, 0x28, 0x7A, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3 + .byte 0x04, 0x00, 0x00, 0x1A, 0x08, 0x00, 0xA0, 0xE1, 0xC7, 0x76, 0xF2, 0xEB, 0x00, 0x00, 0x96, 0xE5 + .byte 0x04, 0x00, 0x80, 0xE0, 0x09, 0x70, 0xC0, 0xE5, 0x01, 0x40, 0x84, 0xE2, 0x14, 0x00, 0x54, 0xE3 + .byte 0xEA, 0xFF, 0xFF, 0xBA, 0x28, 0x04, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x00, 0x00, 0x52, 0xE3 + .byte 0x47, 0x00, 0x00, 0x1A, 0x14, 0x04, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x20, 0x00, 0x80, 0xE2 + .byte 0x8F, 0xFE, 0xFF, 0xEB, 0x04, 0x14, 0x9F, 0xE5, 0x00, 0x50, 0xA0, 0xE1, 0x00, 0x10, 0x91, 0xE5 + .byte 0x24, 0x00, 0x91, 0xE5, 0x40, 0x08, 0xA0, 0xE1, 0xC0, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0xBA + .byte 0x3C, 0x00, 0x81, 0xE2, 0x01, 0x0B, 0x80, 0xE2, 0x85, 0xFE, 0xFF, 0xEB, 0x00, 0x50, 0x85, 0xE1 + .byte 0xB4, 0x00, 0x00, 0xEA, 0x3C, 0x40, 0x81, 0xE2, 0x10, 0x04, 0x94, 0xE5, 0x00, 0x00, 0x50, 0xE3 + .byte 0x02, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x50, 0xE3, 0x21, 0x00, 0x00, 0x0A, 0xAD, 0x00, 0x00, 0xEA + .byte 0x03, 0x00, 0xE0, 0xE3, 0x10, 0x00, 0x8D, 0xE5, 0x04, 0x04, 0x94, 0xE5, 0x10, 0x10, 0x8D, 0xE2 + .byte 0x40, 0x08, 0xA0, 0xE1, 0x14, 0x00, 0x8D, 0xE5, 0x0C, 0x04, 0x94, 0xE5, 0xFF, 0x00, 0x00, 0xE2 + .byte 0xF4, 0x79, 0xF2, 0xEB, 0x98, 0x03, 0x9F, 0xE5, 0x98, 0x13, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 + .byte 0x04, 0x24, 0x94, 0xE5, 0x00, 0x01, 0x91, 0xE7, 0x00, 0x00, 0x82, 0xE0, 0x04, 0x04, 0x84, 0xE5 + .byte 0x14, 0x00, 0x9D, 0xE5, 0x88, 0x00, 0x50, 0xE3, 0x9A, 0x00, 0x00, 0xDA, 0x0C, 0x04, 0x94, 0xE5 + .byte 0x20, 0x20, 0xA0, 0xE3, 0x10, 0x10, 0x8D, 0xE2, 0x02, 0x30, 0xA0, 0xE1, 0xFF, 0x00, 0x00, 0xE2 + .byte 0xBC, 0x79, 0xF2, 0xEB, 0x0C, 0x04, 0x94, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0xFF, 0x00, 0x00, 0xE2 + .byte 0x95, 0x76, 0xF2, 0xEB, 0x10, 0x04, 0x94, 0xE5, 0x01, 0x00, 0x80, 0xE2, 0x10, 0x04, 0x84, 0xE5 + .byte 0x8C, 0x00, 0x00, 0xEA, 0x0C, 0x14, 0x94, 0xE5, 0x01, 0x0B, 0x84, 0xE2, 0xFF, 0x10, 0x01, 0xE2 + .byte 0x46, 0xFE, 0xFF, 0xEB, 0x03, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0xA0, 0xE3, 0x10, 0x10, 0x8D, 0xE5 + .byte 0x14, 0x00, 0x8D, 0xE5, 0x0C, 0x04, 0x94, 0xE5, 0x10, 0x10, 0x8D, 0xE2, 0xFF, 0x00, 0x00, 0xE2 + .byte 0xD0, 0x79, 0xF2, 0xEB, 0x10, 0x04, 0x94, 0xE5, 0x01, 0x00, 0x80, 0xE2, 0x10, 0x04, 0x84, 0xE5 + .byte 0x7C, 0x00, 0x00, 0xEA, 0xF4, 0x02, 0x9F, 0xE5, 0x00, 0x40, 0x90, 0xE5, 0x24, 0x00, 0x94, 0xE5 + .byte 0x40, 0x08, 0xA0, 0xE1, 0x08, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0xBA, 0x20, 0x00, 0x84, 0xE2 + .byte 0x43, 0xFE, 0xFF, 0xEB, 0x00, 0x50, 0xA0, 0xE1, 0x29, 0x00, 0x00, 0xEA, 0x30, 0x00, 0x94, 0xE5 + .byte 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x50, 0xE3, 0xC4, 0x02, 0x9F, 0x05 + .byte 0x24, 0x10, 0x94, 0x05, 0x02, 0x01, 0x90, 0x07, 0x00, 0x00, 0x81, 0x00, 0x24, 0x00, 0x84, 0x05 + .byte 0x1F, 0x00, 0x00, 0xEA, 0x03, 0x00, 0xE0, 0xE3, 0x08, 0x00, 0x8D, 0xE5, 0x24, 0x00, 0x94, 0xE5 + .byte 0x08, 0x10, 0x8D, 0xE2, 0x40, 0x08, 0xA0, 0xE1, 0x0C, 0x00, 0x8D, 0xE5, 0x2C, 0x00, 0x94, 0xE5 + .byte 0xFF, 0x00, 0x00, 0xE2, 0xAF, 0x79, 0xF2, 0xEB, 0x84, 0x02, 0x9F, 0xE5, 0x84, 0x12, 0x9F, 0xE5 + .byte 0x00, 0x00, 0x90, 0xE5, 0x24, 0x20, 0x94, 0xE5, 0x00, 0x01, 0x91, 0xE7, 0x00, 0x00, 0x82, 0xE0 + .byte 0x24, 0x00, 0x84, 0xE5, 0x0C, 0x00, 0x9D, 0xE5, 0x88, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x00, 0xDA + .byte 0x2C, 0x00, 0x94, 0xE5, 0x20, 0x20, 0xA0, 0xE3, 0x08, 0x10, 0x8D, 0xE2, 0x02, 0x30, 0xA0, 0xE1 + .byte 0xFF, 0x00, 0x00, 0xE2, 0x77, 0x79, 0xF2, 0xEB, 0x2C, 0x00, 0x94, 0xE5, 0x01, 0x10, 0xA0, 0xE3 + .byte 0xFF, 0x00, 0x00, 0xE2, 0x50, 0x76, 0xF2, 0xEB, 0x30, 0x00, 0x94, 0xE5, 0x01, 0x00, 0x80, 0xE2 + .byte 0x30, 0x00, 0x84, 0xE5, 0x24, 0x02, 0x9F, 0xE5, 0x00, 0x40, 0x90, 0xE5, 0x24, 0x00, 0x94, 0xE5 + .byte 0x40, 0x08, 0xA0, 0xE1, 0x60, 0x00, 0x50, 0xE3, 0x42, 0x00, 0x00, 0xBA, 0x40, 0x04, 0x94, 0xE5 + .byte 0x40, 0x08, 0xA0, 0xE1, 0x68, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0xBA, 0x3C, 0x00, 0x84, 0xE2 + .byte 0x01, 0x0B, 0x80, 0xE2, 0x0A, 0xFE, 0xFF, 0xEB, 0x00, 0x50, 0x85, 0xE1, 0x39, 0x00, 0x00, 0xEA + .byte 0x4C, 0x04, 0x94, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x50, 0xE3 + .byte 0x0C, 0x00, 0x00, 0x0A, 0x02, 0x00, 0x50, 0xE3, 0x2B, 0x00, 0x00, 0x0A, 0x31, 0x00, 0x00, 0xEA + .byte 0x58, 0x00, 0x84, 0xE2, 0x10, 0x10, 0xA0, 0xE3, 0x50, 0x20, 0x41, 0xE2, 0x02, 0x3B, 0x80, 0xE2 + .byte 0x01, 0x00, 0xA0, 0xE3, 0x8E, 0x00, 0x00, 0xEB, 0x4C, 0x04, 0x94, 0xE5, 0x01, 0x00, 0x80, 0xE2 + .byte 0x4C, 0x04, 0x84, 0xE5, 0x27, 0x00, 0x00, 0xEA, 0x03, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x8D, 0xE5 + .byte 0x40, 0x04, 0x94, 0xE5, 0x00, 0x10, 0x8D, 0xE2, 0x40, 0x08, 0xA0, 0xE1, 0x04, 0x00, 0x8D, 0xE5 + .byte 0x48, 0x04, 0x94, 0xE5, 0xFF, 0x00, 0x00, 0xE2, 0x6E, 0x79, 0xF2, 0xEB, 0x80, 0x01, 0x9F, 0xE5 + .byte 0x80, 0x11, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x40, 0x24, 0x94, 0xE5, 0x00, 0x01, 0x91, 0xE7 + .byte 0x00, 0x00, 0x82, 0xE0, 0x40, 0x04, 0x84, 0xE5, 0x04, 0x00, 0x9D, 0xE5, 0xD0, 0x00, 0x50, 0xE3 + .byte 0x14, 0x00, 0x00, 0xDA, 0x48, 0x04, 0x94, 0xE5, 0x20, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x8D, 0xE2 + .byte 0x02, 0x30, 0xA0, 0xE1, 0xFF, 0x00, 0x00, 0xE2, 0x36, 0x79, 0xF2, 0xEB, 0x48, 0x04, 0x94, 0xE5 + .byte 0x01, 0x10, 0xA0, 0xE3, 0xFF, 0x00, 0x00, 0xE2, 0x0F, 0x76, 0xF2, 0xEB, 0x4C, 0x04, 0x94, 0xE5 + .byte 0x01, 0x00, 0x80, 0xE2, 0x4C, 0x04, 0x84, 0xE5, 0x06, 0x00, 0x00, 0xEA, 0x20, 0x01, 0x9F, 0xE5 + .byte 0x20, 0x11, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x40, 0x24, 0x94, 0xE5, 0x00, 0x01, 0x91, 0xE7 + .byte 0x00, 0x00, 0x82, 0xE0, 0x40, 0x04, 0x84, 0xE5, 0x00, 0x01, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5 + .byte 0x08, 0x00, 0xD2, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x1A, 0x20, 0x00, 0x92, 0xE5 + .byte 0x03, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0xBA, 0x01, 0x10, 0xA0, 0xE3, 0x02, 0x00, 0xA0, 0xE3 + .byte 0x08, 0x10, 0xC2, 0xE5, 0x04, 0x71, 0xFD, 0xEB, 0x00, 0x00, 0x55, 0xE3, 0xCC, 0x00, 0x9F, 0x05 + .byte 0x06, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x90, 0x05, 0x00, 0x10, 0x80, 0x05, 0x2C, 0x00, 0x00, 0xEA + .byte 0x00, 0x00, 0xA0, 0xE3, 0x01, 0x10, 0xA0, 0xE3, 0xEF, 0x75, 0xF2, 0xEB, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x00, 0x10, 0xA0, 0xE1, 0xEC, 0x75, 0xF2, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x33, 0x6C, 0xF2, 0xEB + .byte 0x00, 0x00, 0xA0, 0xE3, 0xF4, 0x70, 0xFD, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x21, 0x00, 0x00, 0xEA + .byte 0x03, 0x00, 0xE0, 0xE3, 0x24, 0x00, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0xEE, 0x70, 0xFD, 0xEB + .byte 0x7C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x05, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90 + .byte 0x11, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA + .byte 0x07, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x00, 0xEA, 0x09, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3 + .byte 0x0A, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0x08, 0x00, 0x00, 0xEA, 0x02, 0x00, 0xA0, 0xE3 + .byte 0x06, 0x00, 0x00, 0xEA, 0x03, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x00, 0xEA, 0x04, 0x00, 0xA0, 0xE3 + .byte 0x02, 0x00, 0x00, 0xEA, 0x05, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xE0, 0xE3 + .byte 0x16, 0x6C, 0xF2, 0xEB, 0x14, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5 + .byte 0x00, 0x10, 0x80, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x18, 0xD0, 0x8D, 0xE2, 0xF0, 0x81, 0xBD, 0xE8 + .byte 0x80, 0xAD, 0x38, 0x02, 0xA0, 0xAD, 0x38, 0x02, 0x0C, 0xAD, 0x38, 0x02 + + arm_func_start ov28_0238AB5C +ov28_0238AB5C: @ 0x0238AB5C + push {r4, lr} + sub sp, sp, #8 + mov r2, #0x20 + mov r4, r0 + mov r0, #0 + add r1, sp, #0 + mov r3, r2 + str r0, [sp] + str r0, [sp, #4] + bl FUN_02028EE8 + mov r2, #0x20 + add r1, sp, #0 + mov r3, r2 + mov r0, #1 + bl FUN_02028EE8 + add r1, sp, #0 + mov r0, #0 + str r4, [sp] + bl FUN_02028F88 + add r1, sp, #0 + mov r0, #1 + bl FUN_02028F88 + mov r0, #0 + mov r1, #1 + bl FUN_0202825C + mov r0, #1 + mov r1, r0 + bl FUN_0202825C + add sp, sp, #8 + pop {r4, pc} + arm_func_end ov28_0238AB5C + + arm_func_start ov28_0238ABD4 +ov28_0238ABD4: @ 0x0238ABD4 + push {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x10 + mov r5, r1 + asr r1, r5, #2 + mov r7, #0 + mov r6, r0 + add r1, r5, r1, lsr #29 + asr r1, r1, #3 + asr r4, r2, #2 + add r4, r2, r4, lsr #29 + asr lr, r4, #3 + lsr r8, r2, #0x1f + sub r0, r7, #5 + rsb r2, r8, r2, lsl #29 + and ip, r1, #0xff + strb r0, [sp, #9] + rsb ip, ip, #0x1d + str r7, [sp] + str r7, [sp, #0xc] + adds r8, r8, r2, ror #29 + ldr r0, _0238ACF8 @ =0x0238AD80 + movne r7, #1 + strb r1, [sp, #4] + add r1, r7, #2 + ldr r2, [r0] + mov r4, r3 + strb r6, [sp, #8] + strb lr, [sp, #5] + strb ip, [sp, #6] + strb r1, [sp, #7] + mov r7, #0 + mvn r0, #1 + b _0238AC6C +_0238AC58: + add r1, r2, r7 + ldrsb r1, [r1, #9] + cmp r1, r0 + beq _0238AC74 + add r7, r7, #1 +_0238AC6C: + cmp r7, #0x14 + blt _0238AC58 +_0238AC74: + mov r0, r6 + bl FUN_02028270 + ldrb r2, [sp, #6] + ldrb r1, [sp, #7] + mla r0, r2, r1, r0 + cmp r0, #0x300 + blt _0238AC9C + mov r0, r6 + mov r1, #1 + bl FUN_0202825C +_0238AC9C: + add r0, sp, #0 + mov r1, #3 + bl FUN_020276C0 + ldr r1, _0238ACF8 @ =0x0238AD80 + ldr r2, [r1] + add r2, r2, r7 + strb r0, [r2, #9] + ldr r0, [r1] + add r0, r0, r7 + ldrsb r0, [r0, #9] + bl FUN_0202810C + ldr r0, _0238ACF8 @ =0x0238AD80 + lsr r6, r5, #0x1f + ldr r0, [r0] + rsb r1, r6, r5, lsl #29 + add r0, r0, r7 + ldrsb r0, [r0, #9] + mov r2, r8 + mov r3, r4 + add r1, r6, r1, ror #29 + bl FUN_02026214 + add sp, sp, #0x10 + pop {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_0238ACF8: .4byte 0x0238AD80 + arm_func_end ov28_0238ABD4 + @ 0x0238ACFC diff --git a/asm/overlay_30.s b/asm/overlay_30.s index 8c0dd857..ca57182c 100644 --- a/asm/overlay_30.s +++ b/asm/overlay_30.s @@ -3,3 +3,4008 @@ .include "global.inc" .text + + arm_func_start ov30_02382820 +ov30_02382820: @ 0x02382820 + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r0, #0x10 + mov r1, #5 + mov r4, r2 + bl FUN_02001170 + ldr r1, _02382870 @ =0x023860A0 + mov r2, #0 + str r0, [r1] + str r6, [r0, #4] + ldr r0, [r1] + str r5, [r0, #8] + ldr r0, [r1] + strb r2, [r0, #0xc] + ldr r0, [r1] + strb r4, [r0, #0xd] + ldr r0, [r1] + str r2, [r0] + pop {r4, r5, r6, pc} + .align 2, 0 +_02382870: .4byte 0x023860A0 + arm_func_end ov30_02382820 + + arm_func_start ov30_02382874 +ov30_02382874: @ 0x02382874 + push {r3, lr} + ldr r0, _02382974 @ =0x023860A0 + ldr r1, [r0] + ldr r0, [r1] + cmp r0, #3 + addls pc, pc, r0, lsl #2 + b _0238296C +_02382890: @ jump table + b _023828A0 @ case 0 + b _02382948 @ case 1 + b _0238296C @ case 2 + b _02382964 @ case 3 +_023828A0: + ldmib r1, {r0, r1} + bl FUN_02049628 + cmp r0, #0 + bne _023828D4 + ldr r2, _02382974 @ =0x023860A0 + ldr r1, _02382978 @ =0x21061522 + ldr r3, [r2] + ldr r2, [r3, #8] + ldr r3, [r3, #4] + sub r2, r2, #4 + ldr r2, [r3, r2] + cmp r2, r1 + movne r0, #4 +_023828D4: + cmp r0, #0 + bne _023828FC + ldr r0, _02382974 @ =0x023860A0 + mov r3, #1 + ldr r2, [r0] + mov r1, #3 + strb r3, [r2, #0xc] + ldr r0, [r0] + str r1, [r0] + b _0238296C +_023828FC: + cmp r0, #1 + mov r2, #0 + bne _02382928 + ldr r0, _0238297C @ =0x0000040C + ldr r1, _02382980 @ =0x00000247 + bl FUN_02034EB4 + ldr r0, _02382974 @ =0x023860A0 + mov r1, #2 + ldr r0, [r0] + str r1, [r0] + b _0238296C +_02382928: + ldr r0, _02382984 @ =0x0000061C + ldr r1, _02382988 @ =0x0000024D + bl FUN_02034EB4 + ldr r0, _02382974 @ =0x023860A0 + mov r1, #1 + ldr r0, [r0] + str r1, [r0] + b _0238296C +_02382948: + bl FUN_02034DA8 + cmp r0, #0 + ldreq r0, _02382974 @ =0x023860A0 + moveq r1, #3 + ldreq r0, [r0] + streq r1, [r0] + b _0238296C +_02382964: + mov r0, #0 + pop {r3, pc} +_0238296C: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_02382974: .4byte 0x023860A0 +_02382978: .4byte 0x21061522 +_0238297C: .4byte 0x0000040C +_02382980: .4byte 0x00000247 +_02382984: .4byte 0x0000061C +_02382988: .4byte 0x0000024D + arm_func_end ov30_02382874 + + arm_func_start ov30_0238298C +ov30_0238298C: @ 0x0238298C + ldr r0, _0238299C @ =0x023860A0 + ldr r0, [r0] + ldrb r0, [r0, #0xc] + bx lr + .align 2, 0 +_0238299C: .4byte 0x023860A0 + arm_func_end ov30_0238298C + + arm_func_start ov30_023829A0 +ov30_023829A0: @ 0x023829A0 + push {r3, lr} + ldr r0, _023829C8 @ =0x023860A0 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02001188 + ldr r0, _023829C8 @ =0x023860A0 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_023829C8: .4byte 0x023860A0 + arm_func_end ov30_023829A0 + + arm_func_start ov30_023829CC +ov30_023829CC: @ 0x023829CC + push {r4, r5, r6, lr} + mov r6, r0 + mov r5, r1 + mov r0, #0x14 + mov r1, #5 + mov r4, r2 + bl FUN_02001170 + ldr r1, _02382A2C @ =0x023860A4 + ldr r3, _02382A30 @ =0x21061522 + str r0, [r1] + str r6, [r0, #4] + ldr r0, [r1] + mov r2, #0 + str r5, [r0, #8] + ldr r0, [r1] + strb r4, [r0, #0xc] + ldr ip, [r1] + ldr r0, [ip, #8] + ldr ip, [ip, #4] + sub r0, r0, #4 + str r3, [ip, r0] + ldr r0, [r1] + str r2, [r0] + pop {r4, r5, r6, pc} + .align 2, 0 +_02382A2C: .4byte 0x023860A4 +_02382A30: .4byte 0x21061522 + arm_func_end ov30_023829CC + + arm_func_start ov30_02382A34 +ov30_02382A34: @ 0x02382A34 + push {r3, lr} + ldr r0, _02382C0C @ =0x023860A4 + ldr r1, [r0] + ldr r0, [r1] + cmp r0, #5 + addls pc, pc, r0, lsl #2 + b _02382C04 +_02382A50: @ jump table + b _02382A68 @ case 0 + b _02382AA4 @ case 1 + b _02382AFC @ case 2 + b _02382BD4 @ case 3 + b _02382C04 @ case 4 + b _02382BF0 @ case 5 +_02382A68: + ldrb r0, [r1, #0xc] + mov r2, #0 + cmp r0, #0 + ldr r0, _02382C10 @ =0x00000408 + beq _02382A88 + ldr r1, _02382C14 @ =0x00000241 + bl FUN_02034EB4 + b _02382A90 +_02382A88: + ldr r1, _02382C18 @ =0x00000242 + bl FUN_02034EB4 +_02382A90: + ldr r0, _02382C0C @ =0x023860A4 + mov r1, #1 + ldr r0, [r0] + str r1, [r0] + b _02382C04 +_02382AA4: + bl FUN_02034DA8 + cmp r0, #0 + bne _02382C04 + mov r0, #0xe0 + mov r1, #0x88 + mov r2, #1 + bl FUN_02029F88 + bl FUN_02003B94 + ldr r0, _02382C1C @ =0x000F1209 + bl FUN_02048DC4 + ldr r0, _02382C0C @ =0x023860A4 + ldr r1, [r0] + ldmib r1, {r0, r1} + bl FUN_02049248 + ldr r1, _02382C0C @ =0x023860A4 + mov r2, #2 + ldr r3, [r1] + str r0, [r3, #0x10] + ldr r1, [r1] + mov r0, #1 + str r2, [r1] + pop {r3, pc} +_02382AFC: + ldr r0, [r1, #0x10] + cmp r0, #0 + bne _02382B40 + mov r0, #2 + bl FUN_02048F84 + ldr r1, _02382C0C @ =0x023860A4 + ldr r2, [r1] + str r0, [r2, #0x10] + ldr r0, [r1] + ldr r0, [r0, #0x10] + cmp r0, #0 + bne _02382B40 + ldr r0, _02382C20 @ =0x000F1207 + bl FUN_02048DC4 + ldr r1, _02382C0C @ =0x023860A4 + ldr r1, [r1] + str r0, [r1, #0x10] +_02382B40: + bl FUN_02003BC8 + bl FUN_02029FBC + ldr r0, _02382C0C @ =0x023860A4 + ldr r0, [r0] + ldr r0, [r0, #0x10] + cmp r0, #0 + beq _02382B68 + cmp r0, #1 + beq _02382B8C + b _02382BB0 +_02382B68: + ldr r0, _02382C24 @ =0x0000041C + mov r1, #0x244 + mov r2, #0 + bl FUN_02034EB4 + ldr r0, _02382C0C @ =0x023860A4 + mov r1, #3 + ldr r0, [r0] + str r1, [r0] + b _02382C04 +_02382B8C: + ldr r0, _02382C28 @ =0x0000040C + mov r1, #0x238 + mov r2, #0 + bl FUN_02034EB4 + ldr r0, _02382C0C @ =0x023860A4 + mov r1, #4 + ldr r0, [r0] + str r1, [r0] + b _02382C04 +_02382BB0: + ldr r0, _02382C24 @ =0x0000041C + ldr r1, _02382C2C @ =0x00000239 + mov r2, #0 + bl FUN_02034EB4 + ldr r0, _02382C0C @ =0x023860A4 + mov r1, #3 + ldr r0, [r0] + str r1, [r0] + b _02382C04 +_02382BD4: + bl FUN_02034DA8 + cmp r0, #0 + ldreq r0, _02382C0C @ =0x023860A4 + moveq r1, #5 + ldreq r0, [r0] + streq r1, [r0] + b _02382C04 +_02382BF0: + ldr r0, [r1, #0x10] + cmp r0, #0 + moveq r0, #2 + movne r0, #3 + pop {r3, pc} +_02382C04: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_02382C0C: .4byte 0x023860A4 +_02382C10: .4byte 0x00000408 +_02382C14: .4byte 0x00000241 +_02382C18: .4byte 0x00000242 +_02382C1C: .4byte 0x000F1209 +_02382C20: .4byte 0x000F1207 +_02382C24: .4byte 0x0000041C +_02382C28: .4byte 0x0000040C +_02382C2C: .4byte 0x00000239 + arm_func_end ov30_02382A34 + + arm_func_start ov30_02382C30 +ov30_02382C30: @ 0x02382C30 + push {r3, lr} + ldr r0, _02382C64 @ =0x023860A4 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + bl FUN_02034D0C + ldr r0, _02382C64 @ =0x023860A4 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _02382C64 @ =0x023860A4 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_02382C64: .4byte 0x023860A4 + arm_func_end ov30_02382C30 + + arm_func_start ov30_02382C68 +ov30_02382C68: @ 0x02382C68 + push {r3, r4, r5, r6, r7, lr} + arm_func_end ov30_02382C68 + + arm_func_start WriteQuicksaveData +WriteQuicksaveData: @ 0x02382C6C + sub sp, sp, #0x10 + mov r3, r0 + mov r2, r1 + add r0, sp, #4 + mov r1, r3 + bl FUN_02385C3C + mov r3, #0 + add r0, sp, #4 + add r1, sp, #0 + mov r2, #4 + str r3, [sp] + bl ov30_02385C80 + ldr r1, _02382D6C @ =0x02386080 + add r0, sp, #4 + bl ov30_02385CE0 + ldr r1, _02382D70 @ =0x02353538 + add r0, sp, #4 + ldr r1, [r1] + mov r2, #0xac + add r1, r1, #0x348 + add r1, r1, #0x400 + bl ov30_02385C80 + ldr r1, _02382D6C @ =0x02386080 + add r0, sp, #4 + bl ov30_02385CE0 + ldr r2, _02382D70 @ =0x02353538 + ldr r1, _02382D74 @ =0x0002C9E6 + ldr r2, [r2] + add r0, sp, #4 + ldrsh r1, [r2, r1] + bl ov30_02385D34 + ldr r5, _02382D70 @ =0x02353538 + ldr r4, _02382D78 @ =0x0002C9EA + mov r7, #0 + add r6, sp, #4 +_02382CF8: + ldr r1, [r5] + mov r0, r6 + add r1, r1, r7, lsl #1 + ldrh r1, [r1, r4] + bl ov30_02385D14 + add r7, r7, #1 + cmp r7, #0x10 + blt _02382CF8 + add r0, sp, #4 + bl ov30_02383C70 + add r0, sp, #4 + bl ov30_0238409C + add r0, sp, #4 + bl ov30_02384208 + add r0, sp, #4 + bl FUN_02382D80 + add r0, sp, #4 + bl FUN_02382E94 + add r0, sp, #4 + bl FUN_02382FB8 + add r0, sp, #4 + bl FUN_02383084 + ldr r1, _02382D7C @ =0x0238608C + add r0, sp, #4 + bl ov30_02385CE0 + add r0, sp, #4 + bl ov30_02385CDC + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02382D6C: .4byte 0x02386080 +_02382D70: .4byte 0x02353538 +_02382D74: .4byte 0x0002C9E6 +_02382D78: .4byte 0x0002C9EA +_02382D7C: .4byte 0x0238608C + arm_func_end WriteQuicksaveData + + arm_func_start FUN_02382D80 +FUN_02382D80: @ 0x02382D80 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #8 + mov r2, #0 + mov sl, r0 + mov r1, r2 + add r0, sp, #0 +_02382D98: + strb r1, [r0, r2] + add r2, r2, #1 + cmp r2, #5 + blt _02382D98 + ldr r1, _02382E8C @ =0x02386080 + mov r0, sl + bl ov30_02385CE0 + mov sb, #0 + mov r5, #1 + ldr r4, _02382E90 @ =0x02353538 + mov fp, r5 + mov r7, sb +_02382DC8: + ldr r0, [r4] + mov r1, r7 + add r0, r0, sb, lsl #2 + add r0, r0, #0x12000 + ldr r8, [r0, #0xbc8] + cmp r8, #0 + beq _02382E60 + ldr r0, [r8] + cmp r0, #3 + bne _02382E60 + mov r0, r8 + bl FUN_022E1610 + mov r6, r0 + mov r0, sl + mov r1, r6 + mov r2, r5 + arm_func_end FUN_02382D80 + + arm_func_start ov30_02382E08 +ov30_02382E08: @ 0x02382E08 + bl ov30_02385C80 + mov r0, sl + add r1, r6, #1 + mov r2, fp + arm_func_end ov30_02382E08 + + arm_func_start ov30_02382E18 +ov30_02382E18: @ 0x02382E18 + bl ov30_02385C80 + mov r0, sl + add r1, r6, #2 + mov r2, #2 + bl ov30_02385C80 + add r1, r6, #4 + mov r0, sl + mov r2, #2 + bl ov30_02385C80 + mov r0, sl + add r1, r8, #4 + mov r2, #1 + bl ov30_02385C80 + add r1, r8, #6 + mov r0, sl + mov r2, #1 + bl ov30_02385C80 + mov r1, #1 +_02382E60: + cmp r1, #0 + bne _02382E78 + mov r0, sl + add r1, sp, #0 + mov r2, #8 + bl ov30_02385C80 +_02382E78: + add sb, sb, #1 + cmp sb, #0x40 + blt _02382DC8 + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02382E8C: .4byte 0x02386080 +_02382E90: .4byte 0x02353538 + arm_func_end ov30_02382E18 + + arm_func_start FUN_02382E94 +FUN_02382E94: @ 0x02382E94 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #8 + mov sl, r0 + mov r2, #0 + mov r1, #0xff + add r0, sp, #0 +_02382EAC: + strb r1, [r0, r2] + add r2, r2, #1 + cmp r2, #7 + blt _02382EAC + ldr r1, _02382FB0 @ =0x02386080 + mov r0, sl + bl ov30_02385CE0 + mov sb, #0 + mov r5, #1 + ldr r4, _02382FB4 @ =0x02353538 + mov fp, r5 + mov r7, sb +_02382EDC: + ldr r0, [r4] + mov r1, r7 + add r0, r0, sb, lsl #2 + add r0, r0, #0x12000 + ldr r8, [r0, #0xcc8] + cmp r8, #0 + beq _02382F84 + ldr r0, [r8] + cmp r0, #2 + bne _02382F84 + mov r0, r8 + bl FUN_022E1608 + mov r6, r0 + mov r0, sl + mov r1, r6 + mov r2, r5 + bl ov30_02385C80 + mov r0, sl + add r1, r6, #1 + mov r2, fp + bl ov30_02385C80 + mov r0, sl + add r1, r6, #2 + mov r2, #1 + bl ov30_02385C80 + add r1, r6, #3 + mov r0, sl + mov r2, #1 + bl ov30_02385C80 + mov r0, sl + add r1, r8, #0x20 + mov r2, #1 + bl ov30_02385C80 + mov r0, sl + add r1, r8, #4 + mov r2, #1 + bl ov30_02385C80 + add r1, r8, #6 + mov r0, sl + mov r2, #1 + bl ov30_02385C80 + mov r1, #1 +_02382F84: + cmp r1, #0 + bne _02382F9C + mov r0, sl + add r1, sp, #0 + mov r2, #7 + bl ov30_02385C80 +_02382F9C: + add sb, sb, #1 + cmp sb, #0x40 + blt _02382EDC + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02382FB0: .4byte 0x02386080 +_02382FB4: .4byte 0x02353538 + arm_func_end FUN_02382E94 + + arm_func_start FUN_02382FB8 +FUN_02382FB8: @ 0x02382FB8 + push {r3, r4, r5, lr} + ldr r2, _0238307C @ =0x02353538 + ldr r1, _02383080 @ =0x02386080 + ldr r2, [r2] + mov r5, r0 + add r2, r2, #0x2c + add r4, r2, #0x19800 + bl ov30_02385CE0 + cmp r4, #0 + popeq {r3, r4, r5, pc} + ldr r0, [r4] + mov r2, #1 + cmp r0, #5 + bne _02383034 + add r1, sp, #1 + mov r0, r5 + strb r2, [sp, #1] + bl ov30_02385C80 + mov r0, r5 + add r1, r4, #0x20 + mov r2, #1 + bl ov30_02385C80 + mov r0, r5 + add r1, r4, #4 + mov r2, #1 + bl ov30_02385C80 + mov r0, r5 + add r1, r4, #6 + mov r2, #1 + bl ov30_02385C80 + pop {r3, r4, r5, pc} +_02383034: + mov r3, #0 + add r1, sp, #0 + mov r0, r5 + strb r3, [sp] + bl ov30_02385C80 + add r1, sp, #0 + mov r0, r5 + mov r2, #1 + bl ov30_02385C80 + add r1, sp, #0 + mov r0, r5 + mov r2, #1 + bl ov30_02385C80 + add r1, sp, #0 + mov r0, r5 + mov r2, #1 + bl ov30_02385C80 + pop {r3, r4, r5, pc} + .align 2, 0 +_0238307C: .4byte 0x02353538 +_02383080: .4byte 0x02386080 + arm_func_end FUN_02382FB8 + + arm_func_start FUN_02383084 +FUN_02383084: @ 0x02383084 + push {r4, r5, r6, lr} + ldr r1, _023831E0 @ =0x02386080 + mov r4, r0 + bl ov30_02385CE0 + ldr r1, _023831E4 @ =0x02353538 + mov r0, r4 + ldr r1, [r1] + add r1, r1, #0x3000 + ldr r1, [r1, #0xe2c] + bl FUN_02385D74 + ldr r1, _023831E4 @ =0x02353538 + mov r0, r4 + ldr r1, [r1] + add r1, r1, #0x3000 + ldr r1, [r1, #0xe30] + bl FUN_02385D74 + ldr r1, _023831E4 @ =0x02353538 + mov r0, r4 + ldr r1, [r1] + add r1, r1, #0x3000 + ldrb r1, [r1, #0xe34] + bl ov30_02385DD4 + ldr r1, _023831E4 @ =0x02353538 + mov r0, r4 + ldr r1, [r1] + add r1, r1, #0x3000 + ldrb r1, [r1, #0xe35] + bl ov30_02385DD4 + ldr r1, _023831E4 @ =0x02353538 + mov r0, r4 + ldr r1, [r1] + add r1, r1, #0x3000 + ldrb r1, [r1, #0xe36] + bl ov30_02385DD4 + ldr r1, _023831E4 @ =0x02353538 + mov r0, r4 + ldr r1, [r1] + add r1, r1, #0x3000 + ldrb r1, [r1, #0xe37] + bl ov30_02385DD4 + ldr r1, _023831E4 @ =0x02353538 + mov r0, r4 + ldr r1, [r1] + add r1, r1, #0x3000 + ldrb r1, [r1, #0xe38] + bl ov30_02385DD4 + ldr r1, _023831E4 @ =0x02353538 + mov r0, r4 + ldr r1, [r1] + add r1, r1, #0x3000 + ldrb r1, [r1, #0xe39] + bl ov30_02385DD4 + ldr r1, _023831E4 @ =0x02353538 + mov r0, r4 + ldr r1, [r1] + add r1, r1, #0x3000 + ldrb r1, [r1, #0xe3c] + bl ov30_02385DD4 + ldr r1, _023831E4 @ =0x02353538 + mov r0, r4 + ldr r1, [r1] + add r1, r1, #0x3e00 + ldrh r1, [r1, #0x3a] + bl ov30_02385D14 + ldr r5, _023831E4 @ =0x02353538 + mov r6, #0 +_0238318C: + ldr r1, [r5] + mov r0, r4 + add r1, r1, r6, lsl #2 + add r1, r1, #0x12000 + ldr r1, [r1, #0xb28] + bl FUN_023831E8 + add r6, r6, #1 + cmp r6, #4 + blt _0238318C + ldr r5, _023831E4 @ =0x02353538 + mov r6, #0 +_023831B8: + ldr r1, [r5] + mov r0, r4 + add r1, r1, r6, lsl #2 + add r1, r1, #0x12000 + ldr r1, [r1, #0xb38] + bl FUN_023831E8 + add r6, r6, #1 + cmp r6, #0x10 + blt _023831B8 + pop {r4, r5, r6, pc} + .align 2, 0 +_023831E0: .4byte 0x02386080 +_023831E4: .4byte 0x02353538 + arm_func_end FUN_02383084 + + arm_func_start FUN_023831E8 +FUN_023831E8: @ 0x023831E8 + push {r3, r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x25c + mov r4, r1 + mov r3, #0 + mov r2, #1 + mov r8, r0 + mov r1, #0xaa + str r3, [sp, #0x18] + str r2, [sp, #0x14] + bl ov30_02385D54 + mov r0, r8 + mov r1, #0x55 + bl ov30_02385D54 + cmp r4, #0 + moveq r0, #0 + beq _0238323C + ldr r0, [r4] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + and r0, r0, #0xff +_0238323C: + cmp r0, #0 + beq _0238329C + add r1, sp, #0x14 + mov r0, r8 + mov r2, #1 + ldr r6, [r4, #0xb4] + bl ov30_02385C80 + mov r0, r8 + add r1, r4, #4 + mov r2, #1 + bl ov30_02385C80 + mov r0, r8 + add r1, r4, #6 + mov r2, #1 + bl ov30_02385C80 + mov r0, r8 + add r1, r4, #0x20 + mov r2, #1 + bl ov30_02385C80 + add r1, r4, #0x26 + mov r0, r8 + mov r2, #2 + bl ov30_02385C80 + b _02383300 +_0238329C: + add r0, sp, #0x1c + mov r1, #0 + mov r2, #0x240 + bl FUN_02087308 + add r1, sp, #0x18 + mov r0, r8 + mov r2, #1 + add r6, sp, #0x1c + bl ov30_02385C80 + add r1, sp, #0x18 + mov r0, r8 + mov r2, #1 + bl ov30_02385C80 + add r1, sp, #0x18 + mov r0, r8 + mov r2, #1 + bl ov30_02385C80 + mov r0, r8 + add r1, sp, #0x18 + mov r2, #1 + bl ov30_02385C80 + mov r0, r8 + add r1, sp, #0x18 + mov r2, #2 + bl ov30_02385C80 +_02383300: + ldrh r1, [r6] + mov r0, r8 + bl ov30_02385D14 + ldrsh r2, [r6, #4] + add r1, sp, #0xc + mov r0, r8 + strh r2, [sp, #0xc] + mov r2, #2 + bl ov30_02385C80 + ldrsh r2, [r6, #2] + add r1, sp, #0xa + mov r0, r8 + strh r2, [sp, #0xa] + mov r2, #2 + bl ov30_02385C80 + ldrb r1, [r6, #6] + mov r0, r8 + bl ov30_02385DD4 + ldrb r1, [r6, #7] + mov r0, r8 + bl ov30_02385DD4 + ldrb r1, [r6, #8] + mov r0, r8 + bl ov30_02385DD4 + ldrb r1, [r6, #9] + mov r0, r8 + bl ov30_02385D54 + ldrb r1, [r6, #0xa] + mov r0, r8 + bl ov30_02385D54 + ldrsh r1, [r6, #0xc] + mov r0, r8 + and r1, r1, #0xff + bl ov30_02385D54 + ldrb r1, [r6, #0x48] + mov r0, r8 + bl ov30_02385D54 + ldrb r1, [r6, #0x49] + mov r0, r8 + bl ov30_02385D54 + ldrsh r1, [r6, #0xe] + mov r0, r8 + bl ov30_02385D34 + ldrsh r1, [r6, #0x10] + mov r0, r8 + bl ov30_02385D34 + ldrsh r1, [r6, #0x12] + mov r0, r8 + bl ov30_02385D34 + ldrsh r1, [r6, #0x16] + mov r0, r8 + bl ov30_02385D34 + ldrsh r1, [r6, #0x14] + mov r0, r8 + arm_func_end FUN_023831E8 + + arm_func_start ov30_023833D8 +ov30_023833D8: @ 0x023833D8 + bl ov30_02385D34 + ldrb r1, [r6, #0x1a] + mov r0, r8 + bl ov30_02385D54 + ldrb r1, [r6, #0x1b] + mov r0, r8 + bl ov30_02385D54 + ldrb r1, [r6, #0x1c] + mov r0, r8 + bl ov30_02385D54 + ldrb r1, [r6, #0x1d] + mov r0, r8 + bl ov30_02385D54 + ldr r1, [r6, #0x20] + mov r0, r8 + bl FUN_02385D74 + ldrsh r1, [r6, #0x24] + mov r0, r8 + bl ov30_02385D34 + ldrsh r1, [r6, #0x26] + mov r0, r8 + bl ov30_02385D34 + ldrsh r1, [r6, #0x28] + arm_func_end ov30_023833D8 + + arm_func_start ov30_02383434 +ov30_02383434: @ 0x02383434 + mov r0, r8 + bl ov30_02385D34 + ldrsh r1, [r6, #0x2a] + mov r0, r8 + bl ov30_02385D34 + ldrsh r1, [r6, #0x2c] + mov r0, r8 + bl ov30_02385D34 + ldrsh r1, [r6, #0x2e] + mov r0, r8 + bl ov30_02385D34 + ldrsh r1, [r6, #0x30] + mov r0, r8 + bl ov30_02385D34 + ldr r1, [r6, #0x34] + mov r0, r8 + bl FUN_02385DB4 + ldr r1, [r6, #0x38] + mov r0, r8 + bl FUN_02385DB4 + ldr r1, [r6, #0x3c] + mov r0, r8 + bl FUN_02385DB4 + ldr r1, [r6, #0x40] + mov r0, r8 + bl FUN_02385DB4 + mov r0, r8 + add r1, r6, #0x4c + mov r2, #1 + bl ov30_02385C80 + mov r0, r8 + add r1, r6, #0x5a + mov r2, #1 + bl ov30_02385C80 + mov r0, r8 + add r1, r6, #0x5c + mov r2, #1 + bl ov30_02385C80 + ldrb r2, [r6, #0x5e] + mov r0, r8 + add r1, sp, #7 + strb r2, [sp, #7] + mov r2, #1 + bl ov30_02385C80 + ldrb r2, [r6, #0x5f] + mov r0, r8 + add r1, sp, #6 + strb r2, [sp, #6] + mov r2, #1 + bl ov30_02385C80 + ldrb r2, [r6, #0x60] + mov r0, r8 + add r1, sp, #5 + strb r2, [sp, #5] + mov r2, #1 + bl ov30_02385C80 + ldrb r2, [r6, #0x61] + mov r0, r8 + add r1, sp, #4 + strb r2, [sp, #4] + mov r2, #1 + bl ov30_02385C80 + mov r0, r8 + add r1, r6, #0x62 + bl ov30_02384268 + ldrsh r2, [r6, #0x68] + mov r0, r8 + add r1, sp, #8 + strh r2, [sp, #8] + mov r2, #2 + bl ov30_02385C80 + mov r5, #0 + add r4, r6, #0x6a +_02383558: + mov r0, r8 + add r1, r4, r5, lsl #2 + bl ov30_02385DF8 + add r5, r5, #1 + cmp r5, #4 + blt _02383558 + mov r0, r8 + add r1, r6, #0x7c + mov r2, #1 + bl ov30_02385C80 + ldrb r1, [r6, #0x7d] + mov r0, r8 + bl ov30_02385DD4 + ldrb r1, [r6, #0x7e] + mov r0, r8 + bl ov30_02385DD4 + ldrb r1, [r6, #0x7f] + mov r0, r8 + bl ov30_02385DD4 + ldrh r1, [r6, #0x80] + mov r0, r8 + bl ov30_02385D14 + mov r0, r8 + add r1, r6, #0x8c + bl ov30_02385DF8 + mov r0, r8 + add r1, r6, #0x90 + mov r2, #0x45 + bl ov30_02385C80 + mov r0, r8 + add r1, r6, #0x9c + mov r2, #0x45 + bl ov30_02385C80 + ldrb r2, [r6, #0xa8] + mov r0, r8 + add r1, sp, #3 + strb r2, [sp, #3] + mov r2, #1 + bl ov30_02385C80 + ldrsh r1, [r6, #0x44] + mov r0, r8 + bl ov30_02385D34 + ldrb r2, [r6, #0x46] + mov r0, r8 + add r1, sp, #2 + strb r2, [sp, #2] + mov r2, #1 + bl ov30_02385C80 + ldr r1, [r6, #0xb0] + mov r0, r8 + bl FUN_02385D74 + ldr r1, [r6, #0xb4] + mov r0, r8 + bl FUN_02385D74 + ldr r1, [r6, #0xb8] + mov r0, r8 + bl FUN_02385D74 + mov r0, r8 + add r1, r6, #0xbd + mov r2, #1 + bl ov30_02385C80 + ldrb r1, [r6, #0xbe] + mov r0, r8 + bl ov30_02385D54 + mov r0, r8 + add r1, r6, #0xbf + mov r2, #1 + bl ov30_02385C80 + ldrb r1, [r6, #0xc0] + mov r0, r8 + bl ov30_02385D54 + ldrb r1, [r6, #0xc1] + mov r0, r8 + arm_func_end ov30_02383434 + + arm_func_start ov30_0238367C +ov30_0238367C: @ 0x0238367C + bl ov30_02385D54 + ldrb r1, [r6, #0xc2] + mov r0, r8 + bl ov30_02385D54 + mov r0, r8 + add r1, r6, #0xc4 + mov r2, #1 + bl ov30_02385C80 + ldrb r1, [r6, #0xcc] + mov r0, r8 + bl ov30_02385D54 + ldrb r1, [r6, #0xcd] + mov r0, r8 + bl ov30_02385D54 + ldr r1, [r6, #0xc8] + mov r0, r8 + bl FUN_02385D74 + mov r0, r8 + add r1, r6, #0xd0 + mov r2, #1 + bl ov30_02385C80 + mov r0, r8 + ldrb r1, [r6, #0xd1] + bl ov30_02385D54 + mov r0, r8 + add r1, r6, #0xd2 + mov r2, #1 + bl ov30_02385C80 + mov r0, r8 + ldrb r1, [r6, #0xd3] + bl ov30_02385D54 + mov r0, r8 + ldrb r1, [r6, #0xd4] + bl ov30_02385D54 + mov r0, r8 + add r1, r6, #0xd5 + mov r2, #1 + bl ov30_02385C80 + mov r0, r8 + ldrb r1, [r6, #0xd6] + bl ov30_02385D54 + mov r0, r8 + ldrb r1, [r6, #0xd7] + bl ov30_02385D54 + mov r0, r8 + add r1, r6, #0xd8 + mov r2, #1 + bl ov30_02385C80 + mov r0, r8 + ldrb r1, [r6, #0xd9] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0xda] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0xdb] + bl ov30_02385D54 + mov r0, r8 + ldrb r1, [r6, #0xdc] + bl ov30_02385D54 + mov r0, r8 + add r1, r6, #0xe0 + mov r2, #1 + bl ov30_02385C80 + mov r0, r8 + ldr r1, [r6, #0xe4] + bl FUN_02385D74 + mov r0, r8 + ldrb r1, [r6, #0xe8] + bl ov30_02385D54 + mov r0, r8 + ldrb r1, [r6, #0xe9] + bl ov30_02385D54 + mov r0, r8 + ldrb r1, [r6, #0xea] + bl ov30_02385D54 + mov r0, r8 + add r1, r6, #0xec + mov r2, #1 + bl ov30_02385C80 + mov r0, r8 + ldrb r1, [r6, #0xed] + bl ov30_02385D54 + mov r0, r8 + add r1, r6, #0xee + mov r2, #1 + bl ov30_02385C80 + mov r0, r8 + add r1, r6, #0xef + mov r2, #1 + bl ov30_02385C80 + ldrb r1, [r6, #0xf0] + mov r0, r8 + bl ov30_02385D54 + mov r0, r8 + add r1, r6, #0xf1 + mov r2, #1 + bl ov30_02385C80 + mov r0, r8 + ldrb r1, [r6, #0xf2] + bl ov30_02385D54 + mov r0, r8 + add r1, r6, #0xf3 + mov r2, #1 + bl ov30_02385C80 + mov r0, r8 + ldrb r1, [r6, #0xf4] + bl ov30_02385D54 + mov r0, r8 + add r1, r6, #0xf5 + mov r2, #1 + bl ov30_02385C80 + mov r0, r8 + ldrb r1, [r6, #0xf6] + bl ov30_02385D54 + mov r0, r8 + add r1, r6, #0xf7 + mov r2, #1 + bl ov30_02385C80 + mov r0, r8 + ldrb r1, [r6, #0xf8] + bl ov30_02385D54 + mov r0, r8 + ldrb r1, [r6, #0xf9] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0xfa] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0xfb] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0xfc] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0x103] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0xfd] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0x108] + bl ov30_02385D54 + mov r0, r8 + ldrb r1, [r6, #0xfe] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0xff] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0x100] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0x104] + arm_func_end ov30_0238367C + + arm_func_start ov30_023838E4 +ov30_023838E4: @ 0x023838E4 + bl ov30_02385D54 + mov r0, r8 + ldrb r1, [r6, #0x105] + bl ov30_02385D54 + ldrb r1, [r6, #0x109] + mov r0, r8 + bl ov30_02385DD4 + ldrb r1, [r6, #0x106] + mov r0, r8 + bl ov30_02385D54 + ldrb r1, [r6, #0x107] + mov r0, r8 + bl ov30_02385D54 + ldrb r1, [r6, #0x10a] + mov r0, r8 + bl ov30_02385D54 + ldrb r2, [r6, #0x10b] + mov r0, r8 + add r1, sp, #1 + strb r2, [sp, #1] + mov r2, #1 + bl ov30_02385C80 + ldrb r2, [r6, #0x10c] + mov r0, r8 + add r1, sp, #0 + strb r2, [sp] + mov r2, #1 + bl ov30_02385C80 + ldr r1, [r6, #0x110] + mov r0, r8 + str r1, [sp, #0x10] + add r1, sp, #0x10 + mov r2, #4 + bl ov30_02385C80 + mov r0, r8 + add r1, r6, #0x114 + mov r2, #5 + bl FUN_02385EB8 + add r1, r6, #0x19 + mov r0, r8 + add r1, r1, #0x100 + mov r2, #5 + bl FUN_02385EB8 + ldrb r1, [r6, #0x11e] + mov r0, r8 + bl ov30_02385D54 + ldrb r1, [r6, #0x11f] + mov r0, r8 + bl ov30_02385D54 + ldr r1, [r6, #0x120] + mov r0, r8 + and r1, r1, #0xff + bl ov30_02385D54 + mov r7, #0 + add r5, r6, #0x124 + mov r4, #2 +_023839C4: + add r0, r6, r7, lsl #3 + ldrb r1, [r0, #0x124] + mov r0, r8 + bl ov30_02385D54 + add r0, r6, r7, lsl #3 + add r0, r0, #0x100 + ldrh r1, [r0, #0x26] + mov r0, r8 + and r1, r1, #0xff + bl ov30_02385D54 + add r1, r5, r7, lsl #3 + mov r0, r8 + mov r2, r4 + add r1, r1, #4 + bl ov30_02385C80 + add r0, r6, r7, lsl #3 + ldrb r1, [r0, #0x12a] + mov r0, r8 + bl ov30_02385D54 + mov r0, r8 + add r1, r6, r7, lsl #3 + ldrb r1, [r1, #0x12b] + bl ov30_02385D54 + add r7, r7, #1 + cmp r7, #4 + blt _023839C4 + ldrb r1, [r6, #0x144] + mov r0, r8 + bl ov30_02385D54 + add r0, r6, #0x100 + ldrsh r1, [r0, #0x46] + mov r0, r8 + bl ov30_02385D34 + add r0, r6, #0x100 + ldrsh r1, [r0, #0x48] + mov r0, r8 + bl ov30_02385D34 + add r0, r6, #0x100 + ldrsh r1, [r0, #0x4a] + mov r0, r8 + bl ov30_02385D34 + add r0, r6, #0x100 + ldrsh r1, [r0, #0x4c] + mov r0, r8 + bl ov30_02385D34 + ldrb r1, [r6, #0x14e] + mov r0, r8 + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0x14f] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0x151] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0x150] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0x152] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0x153] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0x154] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0x155] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0x156] + bl ov30_02385DD4 + mov r0, r8 + add r1, r6, #0x100 + ldrh r1, [r1, #0x58] + bl ov30_02385D14 + mov r0, r8 + add r1, r6, #0x100 + ldrh r1, [r1, #0x5a] + bl ov30_02385D14 + mov r0, r8 + ldrb r1, [r6, #0x15c] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0x15d] + bl ov30_02385D54 + mov r0, r8 + ldrb r1, [r6, #0x15e] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0x15f] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0x160] + bl ov30_02385DD4 + mov r0, r8 + ldrb r1, [r6, #0x177] + bl ov30_02385D54 + mov r0, r8 + ldrb r1, [r6, #0x178] + bl ov30_02385D54 + mov r0, r8 + ldrb r1, [r6, #0x179] + bl ov30_02385D54 + mov r0, r8 + ldrb r1, [r6, #0x17a] + bl ov30_02385D54 + mov r0, r8 + ldrb r1, [r6, #0x17b] + bl ov30_02385D54 + ldrb r1, [r6, #0x17c] + mov r0, r8 + bl ov30_02385D54 + add r1, r6, #0x7e + mov r0, r8 + add r1, r1, #0x100 + bl ov30_02385DF8 + ldr r1, [r6, #0x188] + mov r0, r8 + bl FUN_02385DB4 + add r0, r6, #0x100 + ldrh r1, [r0, #0x92] + mov r0, r8 + bl ov30_02385D14 + ldr r1, [r6, #0x18c] + mov r0, r8 + bl FUN_02385D94 + add r0, r6, #0x100 + ldrh r1, [r0, #0x90] + mov r0, r8 + bl ov30_02385D14 + add r1, r6, #0x200 + ldrsh r1, [r1, #0x10] + mov r0, r8 + bl ov30_02385D34 + add r1, r6, #0x200 + ldrsh r1, [r1, #0x12] + mov r0, r8 + bl ov30_02385D34 + ldr r1, [r6, #0x214] + mov r0, r8 + bl FUN_02385D74 + ldrb r1, [r6, #0xbc] + mov r0, r8 + bl ov30_02385D54 + ldrb r1, [r6, #0x166] + mov r0, r8 + bl ov30_02385D54 + ldrb r1, [r6, #0x167] + mov r0, r8 + bl ov30_02385D54 + add r1, r6, #0x100 + ldrsh r1, [r1, #0x68] + mov r0, r8 + bl ov30_02385D34 + ldrsh r1, [r6, #0xac] + mov r0, r8 + bl ov30_02385D34 + ldrb r1, [r6, #0x16a] + mov r0, r8 + bl ov30_02385D54 + mov r4, #0 +_02383C4C: + add r0, r6, r4 + ldrb r1, [r0, #0x16b] + mov r0, r8 + bl ov30_02385D54 + add r4, r4, #1 + cmp r4, #5 + blt _02383C4C + add sp, sp, #0x25c + pop {r3, r4, r5, r6, r7, r8, pc} + arm_func_end ov30_023838E4 + + arm_func_start ov30_02383C70 +ov30_02383C70: @ 0x02383C70 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + ldr r1, _02384090 @ =0x02386080 + mov sl, r0 + bl ov30_02385CE0 + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0x4000 + ldrb r1, [r1, #0xc4] + bl ov30_02385DD4 + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0x4000 + ldrb r1, [r1, #0xc5] + bl ov30_02385DD4 + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0x4000 + ldrb r1, [r1, #0xc6] + bl ov30_02385DD4 + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0x4000 + ldrb r1, [r1, #0xc7] + bl ov30_02385DD4 + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0x4000 + ldrb r1, [r1, #0xc8] + bl ov30_02385DD4 + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0x4000 + ldrb r1, [r1, #0xc9] + bl ov30_02385D54 + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0x4000 + ldrb r1, [r1, #0xca] + bl ov30_02385D54 + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0x4000 + ldr r1, [r1, #0xcc] + and r1, r1, #0xff + bl ov30_02385D54 + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0x4000 + ldr r1, [r1, #0xd0] + and r1, r1, #0xff + bl ov30_02385D54 + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0x4000 + ldrsh r1, [r1, #0xd4] + bl ov30_02385D34 + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0x4000 + ldrsh r1, [r1, #0xd6] + bl ov30_02385D34 + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0x4000 + ldrsh r1, [r1, #0xd8] + bl ov30_02385D34 + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0x4000 + ldrb r1, [r1, #0xda] + bl ov30_02385D34 + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0x4000 + ldrsh r1, [r1, #0xde] + bl ov30_02385D34 + mov r8, #0 + ldr r6, _02384094 @ =0x02353538 + mov fp, r8 + mov r4, #0x14 + mov r5, #0x460 +_02383DEC: + mul sb, r8, r5 + mov r7, fp +_02383DF4: + ldr r1, [r6] + mov r0, sl + add r1, r1, #0xe0 + add r1, r1, #0x4000 + add r1, r1, sb + mla r1, r7, r4, r1 + bl ov30_023842B0 + add r7, r7, #1 + cmp r7, #0x38 + blt _02383DF4 + add r8, r8, #1 + cmp r8, #0x20 + blt _02383DEC + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0xce0 + add r1, r1, #0xc000 + bl ov30_02385DF8 + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0xe4 + add r1, r1, #0xcc00 + bl ov30_02385DF8 + ldr r0, _02384094 @ =0x02353538 + mvn r1, #0 + ldr r0, [r0] + add r0, r0, #0xcc00 + ldrh r2, [r0, #0xe8] + strh r2, [sp] + ldrh r2, [r0, #0xea] + ldrsh r0, [sp] + strh r2, [sp, #2] + cmp r0, r1 + moveq r0, #0xff + strheq r0, [sp] + ldrsh r1, [sp, #2] + mvn r0, #0 + cmp r1, r0 + moveq r0, #0xff + strheq r0, [sp, #2] + add r1, sp, #0 + mov r0, sl + bl ov30_02385DF8 + ldr r4, _02384094 @ =0x02353538 + mov r5, #0 +_02383EB0: + ldr r1, [r4] + mov r0, sl + add r1, r1, #0xec + add r1, r1, #0xcc00 + add r1, r1, r5, lsl #2 + bl ov30_02385E20 + add r5, r5, #1 + cmp r5, #8 + blt _02383EB0 + ldr r4, _02384094 @ =0x02353538 + mov r5, #0 +_02383EDC: + ldr r1, [r4] + mov r0, sl + add r1, r1, r5 + add r1, r1, #0xc000 + ldrb r1, [r1, #0xd0c] + bl ov30_02385D54 + add r5, r5, #1 + cmp r5, #8 + blt _02383EDC + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0x114 + add r1, r1, #0xcc00 + bl ov30_02385E48 + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0x124 + add r1, r1, #0xcc00 + bl ov30_02385E48 + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0x134 + add r1, r1, #0xcc00 + bl ov30_02385E90 + mov r8, #0 + ldr r6, _02384094 @ =0x02353538 + mov fp, r8 + mov r4, #0x14 + mov r5, #0xa0 +_02383F5C: + mul r7, r8, r5 + mov sb, fp +_02383F64: + ldr r1, [r6] + mov r0, sl + add r1, r1, #0xd60 + add r1, r1, #0xc000 + add r1, r1, r7 + mla r1, sb, r4, r1 + bl ov30_023842B0 + ldr r1, [r6] + mov r0, sl + add r1, r1, r8, lsl #4 + add r1, r1, sb, lsl #1 + add r1, r1, #0xd200 + ldrsh r1, [r1, #0x60] + bl ov30_02385D34 + add sb, sb, #1 + cmp sb, #8 + blt _02383F64 + add r8, r8, #1 + cmp r8, #8 + blt _02383F5C + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + mov r2, #1 + add r1, r1, #0x138 + add r4, r1, #0xcc00 + mov r1, r4 + bl ov30_02385C80 + mov r0, sl + add r1, r4, #1 + mov r2, #1 + bl ov30_02385C80 + mov r5, #0 +_02383FE8: + add r0, r4, r5, lsl #1 + ldrh r1, [r0, #2] + mov r0, sl + bl ov30_02385D14 + add r0, r4, r5, lsl #1 + ldrh r1, [r0, #0x12] + mov r0, sl + bl ov30_02385D14 + add r5, r5, #1 + cmp r5, #8 + blt _02383FE8 + ldrb r1, [r4, #0x22] + mov r0, sl + bl ov30_02385D54 + ldrb r1, [r4, #0x23] + mov r0, sl + bl ov30_02385D54 + ldrb r1, [r4, #0x24] + mov r0, sl + bl ov30_02385D54 + ldrb r1, [r4, #0x25] + mov r0, sl + bl ov30_02385DD4 + ldr r1, _02384094 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + mov r2, #1 + add r1, r1, #0x2fc + add r4, r1, #0x12800 + mov r1, r4 + bl ov30_02385C80 + add r1, r4, #1 + mov r0, sl + mov r2, #1 + bl ov30_02385C80 + mov r0, sl + ldr r2, _02384094 @ =0x02353538 + ldr r1, _02384098 @ =0x00012AFE + ldr r2, [r2] + ldrsh r1, [r2, r1] + bl ov30_02385D34 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02384090: .4byte 0x02386080 +_02384094: .4byte 0x02353538 +_02384098: .4byte 0x00012AFE + arm_func_end ov30_02383C70 + + arm_func_start ov30_0238409C +ov30_0238409C: @ 0x0238409C + push {r4, lr} + ldr r1, _02384200 @ =0x02386080 + mov r4, r0 + bl ov30_02385CE0 + ldr r1, _02384204 @ =0x02353538 + mov r0, r4 + ldr r1, [r1] + add r1, r1, #0x1a000 + ldrb r1, [r1, #0x23c] + bl ov30_02385D54 + ldr r1, _02384204 @ =0x02353538 + mov r0, r4 + ldr r1, [r1] + add r1, r1, #0x1a000 + ldrb r1, [r1, #0x23d] + bl ov30_02385D54 + ldr r1, _02384204 @ =0x02353538 + mov r0, r4 + ldr r1, [r1] + add r1, r1, #0x1a000 + ldrb r1, [r1, #0x23e] + bl ov30_02385DD4 + ldr r1, _02384204 @ =0x02353538 + mov r0, r4 + ldr r1, [r1] + add r1, r1, #0x1a000 + ldrb r1, [r1, #0x23f] + bl ov30_02385DD4 + ldr r1, _02384204 @ =0x02353538 + mov r0, r4 + ldr r1, [r1] + add r1, r1, #0x1a000 + ldrb r1, [r1, #0x240] + bl ov30_02385DD4 + ldr r1, _02384204 @ =0x02353538 + mov r0, r4 + ldr r1, [r1] + add r1, r1, #0x1a000 + ldrb r1, [r1, #0x242] + bl ov30_02385DD4 + mov r0, r4 + ldr r1, _02384204 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + ldrb r1, [r1, #0x24f] + bl ov30_02385DD4 + mov r0, r4 + ldr r1, _02384204 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + ldrb r1, [r1, #0x243] + bl ov30_02385DD4 + mov r0, r4 + ldr r1, _02384204 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + ldrb r1, [r1, #0x24e] + bl ov30_02385DD4 + mov r0, r4 + ldr r1, _02384204 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + ldrb r1, [r1, #0x250] + bl ov30_02385DD4 + mov r0, r4 + ldr r1, _02384204 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + ldrb r1, [r1, #0x244] + bl ov30_02385DD4 + mov r0, r4 + ldr r1, _02384204 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + ldrb r1, [r1, #0x245] + bl ov30_02385DD4 + mov r0, r4 + ldr r1, _02384204 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + ldrb r1, [r1, #0x246] + bl ov30_02385DD4 + mov r0, r4 + ldr r1, _02384204 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + ldrb r1, [r1, #0x248] + bl ov30_02385DD4 + pop {r4, pc} + .align 2, 0 +_02384200: .4byte 0x02386080 +_02384204: .4byte 0x02353538 + arm_func_end ov30_0238409C + + arm_func_start ov30_02384208 +ov30_02384208: @ 0x02384208 + push {r4, lr} + ldr r2, _02384258 @ =0x02353538 + ldr r1, _0238425C @ =0x0002CB02 + ldr r2, [r2] + mov r4, r0 + ldrsh r1, [r2, r1] + bl ov30_02385D34 + ldr r0, _02384258 @ =0x02353538 + ldr r1, _02384260 @ =0x0002CB04 + ldr r2, [r0] + mov r0, r4 + ldrsh r1, [r2, r1] + bl ov30_02385D34 + ldr r0, _02384258 @ =0x02353538 + ldr r1, _02384264 @ =0x0002CB06 + ldr r2, [r0] + mov r0, r4 + ldrsh r1, [r2, r1] + bl ov30_02385D34 + pop {r4, pc} + .align 2, 0 +_02384258: .4byte 0x02353538 +_0238425C: .4byte 0x0002CB02 +_02384260: .4byte 0x0002CB04 +_02384264: .4byte 0x0002CB06 + arm_func_end ov30_02384208 + + arm_func_start ov30_02384268 +ov30_02384268: @ 0x02384268 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + mov r2, #1 + bl ov30_02385C80 + mov r0, r5 + add r1, r4, #1 + mov r2, #1 + bl ov30_02385C80 + mov r0, r5 + add r1, r4, #2 + mov r2, #2 + bl ov30_02385C80 + mov r0, r5 + add r1, r4, #4 + mov r2, #2 + bl ov30_02385C80 + pop {r3, r4, r5, pc} + arm_func_end ov30_02384268 + + arm_func_start ov30_023842B0 +ov30_023842B0: @ 0x023842B0 + push {r3, r4, r5, lr} + mov r4, r1 + ldrh r1, [r4] + mov r5, r0 + bl ov30_02385D14 + ldrh r1, [r4, #2] + mov r0, r5 + bl ov30_02385D14 + mov r0, r5 + add r1, r4, #7 + mov r2, #1 + bl ov30_02385C80 + mov r0, r5 + add r1, r4, #6 + mov r2, #1 + bl ov30_02385C80 + pop {r3, r4, r5, pc} + arm_func_end ov30_023842B0 + + arm_func_start ov30_023842F4 +ov30_023842F4: @ 0x023842F4 + push {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x10 + mov r3, r0 + mov r2, r1 + add r0, sp, #4 + mov r1, r3 + bl ov30_02385C8C + add r0, sp, #4 + add r1, sp, #0 + mov r2, #4 + bl ov30_02385CD0 + ldr r1, _023843F0 @ =0x02386080 + add r0, sp, #4 + bl ov30_02385CF0 + ldr r1, _023843F4 @ =0x02353538 + add r0, sp, #4 + ldr r1, [r1] + mov r2, #0xac + add r1, r1, #0x348 + add r1, r1, #0x400 + bl ov30_02385CD0 + ldr r1, _023843F0 @ =0x02386080 + add r0, sp, #4 + bl ov30_02385CF0 + add r0, sp, #4 + bl ov30_02385EDC + ldr r6, _023843F4 @ =0x02353538 + ldr r1, _023843F8 @ =0x0002C9E6 + ldr r2, [r6] + mov r4, #0 + strh r0, [r2, r1] + add r5, r1, #4 + add r7, sp, #4 +_02384378: + mov r0, r7 + bl ov30_02385EC4 + ldr r1, [r6] + add r1, r1, r4, lsl #1 + add r4, r4, #1 + strh r0, [r1, r5] + cmp r4, #0x10 + blt _02384378 + add r0, sp, #4 + bl ov30_02384400 + add r0, sp, #4 + bl ov30_023848A0 + add r0, sp, #4 + bl ov30_02384A20 + add r0, sp, #4 + bl ov30_02384A94 + add r0, sp, #4 + bl ov30_02384B84 + add r0, sp, #4 + bl ov30_02384C6C + add r0, sp, #4 + bl ov30_02384CD4 + ldr r1, _023843FC @ =0x0238608C + add r0, sp, #4 + bl ov30_02385CF0 + add r0, sp, #4 + bl ov30_02385CDC + bl FUN_022FB920 + add sp, sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_023843F0: .4byte 0x02386080 +_023843F4: .4byte 0x02353538 +_023843F8: .4byte 0x0002C9E6 +_023843FC: .4byte 0x0238608C + arm_func_end ov30_023842F4 + + arm_func_start ov30_02384400 +ov30_02384400: @ 0x02384400 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + ldr r1, _02384830 @ =0x02386080 + mov sl, r0 + bl ov30_02385CF0 + mov r0, sl + bl ov30_02385F54 + ldr r1, _02384834 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x4000 + strb r0, [r1, #0xc4] + mov r0, sl + bl ov30_02385F54 + ldr r1, _02384834 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x4000 + strb r0, [r1, #0xc5] + mov r0, sl + bl ov30_02385F54 + ldr r1, _02384834 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x4000 + strb r0, [r1, #0xc6] + mov r0, sl + bl ov30_02385F54 + ldr r1, _02384834 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x4000 + strb r0, [r1, #0xc7] + mov r0, sl + bl ov30_02385F54 + ldr r1, _02384834 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x4000 + strb r0, [r1, #0xc8] + mov r0, sl + bl ov30_02385EF4 + ldr r1, _02384834 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x4000 + strb r0, [r1, #0xc9] + mov r0, sl + bl ov30_02385EF4 + ldr r1, _02384834 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x4000 + strb r0, [r1, #0xca] + mov r0, sl + bl ov30_02385EF4 + ldr r1, _02384834 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x4000 + str r0, [r1, #0xcc] + mov r0, sl + bl ov30_02385EF4 + ldr r1, _02384834 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x4000 + str r0, [r1, #0xd0] + mov r0, sl + bl ov30_02385EDC + ldr r1, _02384834 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x4000 + strh r0, [r1, #0xd4] + mov r0, sl + bl ov30_02385EDC + ldr r1, _02384834 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x4000 + strh r0, [r1, #0xd6] + mov r0, sl + bl ov30_02385EDC + ldr r1, _02384834 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x4000 + strh r0, [r1, #0xd8] + mov r0, sl + bl ov30_02385EDC + ldr r1, _02384834 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x4000 + strb r0, [r1, #0xda] + mov r0, sl + bl ov30_02385EDC + ldr r6, _02384834 @ =0x02353538 + mov r8, #0 + ldr r1, [r6] + mov fp, r8 + add r1, r1, #0x4000 + strh r0, [r1, #0xde] + mov r4, #0x14 + mov r5, #0x460 +_02384570: + mul sb, r8, r5 + mov r7, fp +_02384578: + ldr r1, [r6] + mov r0, sl + add r1, r1, #0xe0 + add r1, r1, #0x4000 + add r1, r1, sb + mla r1, r7, r4, r1 + bl ov30_0238483C + add r7, r7, #1 + cmp r7, #0x38 + blt _02384578 + add r8, r8, #1 + cmp r8, #0x20 + blt _02384570 + ldr r1, _02384834 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0xce0 + add r1, r1, #0xc000 + bl ov30_02385F7C + ldr r1, _02384834 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0xe4 + add r1, r1, #0xcc00 + bl ov30_02385F7C + ldr r1, _02384834 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0xe8 + add r1, r1, #0xcc00 + bl ov30_02385F7C + ldr r0, _02384834 @ =0x02353538 + ldr r4, _02384834 @ =0x02353538 + ldr r0, [r0] + mov r5, #0 + add r0, r0, #0xcc00 + ldrsh r1, [r0, #0xe8] + cmp r1, #0xff + mvneq r1, #0 + strheq r1, [r0, #0xe8] + ldr r0, _02384834 @ =0x02353538 + ldr r0, [r0] + add r0, r0, #0xcc00 + ldrsh r1, [r0, #0xea] + cmp r1, #0xff + mvneq r1, #0 + strheq r1, [r0, #0xea] +_02384634: + ldr r1, [r4] + mov r0, sl + add r1, r1, #0xec + add r1, r1, #0xcc00 + add r1, r1, r5, lsl #2 + bl ov30_02385FB0 + add r5, r5, #1 + cmp r5, #8 + blt _02384634 + ldr r4, _02384834 @ =0x02353538 + mov r5, #0 +_02384660: + mov r0, sl + bl ov30_02385EF4 + ldr r1, [r4] + add r1, r1, r5 + add r1, r1, #0xc000 + add r5, r5, #1 + strb r0, [r1, #0xd0c] + cmp r5, #8 + blt _02384660 + ldr r1, _02384834 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0x114 + add r1, r1, #0xcc00 + bl ov30_02385FE4 + ldr r1, _02384834 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0x124 + add r1, r1, #0xcc00 + bl ov30_02385FE4 + ldr r1, _02384834 @ =0x02353538 + mov r0, sl + ldr r1, [r1] + add r1, r1, #0x134 + add r1, r1, #0xcc00 + bl ov30_02386040 + mov r8, #0 + ldr r6, _02384834 @ =0x02353538 + mov fp, r8 + mov r4, #0x14 + mov r5, #0xa0 +_023846E0: + mul r7, r8, r5 + mov sb, fp +_023846E8: + ldr r1, [r6] + mov r0, sl + add r1, r1, #0xd60 + add r1, r1, #0xc000 + add r1, r1, r7 + mla r1, sb, r4, r1 + bl ov30_0238483C + mov r0, sl + bl ov30_02385EDC + ldr r1, [r6] + add r1, r1, r8, lsl #4 + add r1, r1, sb, lsl #1 + add r1, r1, #0xd200 + add sb, sb, #1 + strh r0, [r1, #0x60] + cmp sb, #8 + blt _023846E8 + add r8, r8, #1 + cmp r8, #8 + blt _023846E0 + ldr r0, _02384834 @ =0x02353538 + mov r1, #0 + ldr r0, [r0] + mov r2, #0x26 + add r0, r0, #0x138 + add r4, r0, #0xcc00 + mov r0, r4 + bl FUN_02087308 + mov r0, sl + mov r1, r4 + mov r2, #1 + bl ov30_02385CD0 + mov r0, sl + add r1, r4, #1 + mov r2, #1 + bl ov30_02385CD0 + mov r5, #0 +_0238477C: + mov r0, sl + bl ov30_02385EC4 + add r1, r4, r5, lsl #1 + strh r0, [r1, #2] + mov r0, sl + bl ov30_02385EC4 + add r1, r4, r5, lsl #1 + add r5, r5, #1 + strh r0, [r1, #0x12] + cmp r5, #8 + blt _0238477C + mov r0, sl + bl ov30_02385EF4 + strb r0, [r4, #0x22] + mov r0, sl + bl ov30_02385EF4 + strb r0, [r4, #0x23] + mov r0, sl + bl ov30_02385EF4 + strb r0, [r4, #0x24] + mov r0, sl + bl ov30_02385F54 + strb r0, [r4, #0x25] + ldr r0, _02384834 @ =0x02353538 + mov r1, #2 + ldr r0, [r0] + add r0, r0, #0x2fc + add r4, r0, #0x12800 + mov r0, r4 + bl FUN_02003250 + mov r0, sl + mov r1, r4 + mov r2, #1 + bl ov30_02385CD0 + add r1, r4, #1 + mov r0, sl + mov r2, #1 + bl ov30_02385CD0 + mov r0, sl + bl ov30_02385EDC + ldr r2, _02384834 @ =0x02353538 + ldr r1, _02384838 @ =0x00012AFE + ldr r2, [r2] + strh r0, [r2, r1] + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02384830: .4byte 0x02386080 +_02384834: .4byte 0x02353538 +_02384838: .4byte 0x00012AFE + arm_func_end ov30_02384400 + + arm_func_start ov30_0238483C +ov30_0238483C: @ 0x0238483C + push {r3, r4, r5, lr} + mov r4, r1 + mov r5, r0 + mov r0, r4 + mov r1, #0 + mov r2, #0x14 + bl FUN_02087308 + mov r0, r5 + bl ov30_02385EC4 + strh r0, [r4] + mov r0, r5 + bl ov30_02385EC4 + strh r0, [r4, #2] + mov r0, r5 + add r1, r4, #7 + mov r2, #1 + bl ov30_02385CD0 + mov r0, r5 + add r1, r4, #6 + mov r2, #1 + bl ov30_02385CD0 + mov r0, #0 + str r0, [r4, #0xc] + str r0, [r4, #0x10] + pop {r3, r4, r5, pc} + arm_func_end ov30_0238483C + + arm_func_start ov30_023848A0 +ov30_023848A0: @ 0x023848A0 + push {r4, lr} + ldr r1, _02384A18 @ =0x02386080 + mov r4, r0 + bl ov30_02385CF0 + ldr r1, _02384A1C @ =0x02353538 + mov r0, r4 + ldr r1, [r1] + mov r2, #0 + add r1, r1, #0x1a000 + str r2, [r1, #0x22c] + bl ov30_02385EF4 + ldr r1, _02384A1C @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + strb r0, [r1, #0x23c] + mov r0, r4 + bl ov30_02385EF4 + ldr r1, _02384A1C @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + strb r0, [r1, #0x23d] + mov r0, r4 + bl ov30_02385F54 + ldr r1, _02384A1C @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + strb r0, [r1, #0x23e] + mov r0, r4 + bl ov30_02385F54 + ldr r1, _02384A1C @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + strb r0, [r1, #0x23f] + mov r0, r4 + bl ov30_02385F54 + ldr r1, _02384A1C @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + strb r0, [r1, #0x240] + mov r0, r4 + bl ov30_02385F54 + ldr r1, _02384A1C @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + strb r0, [r1, #0x242] + mov r0, r4 + bl ov30_02385F54 + ldr r1, _02384A1C @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + strb r0, [r1, #0x24f] + mov r0, r4 + bl ov30_02385F54 + ldr r1, _02384A1C @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + strb r0, [r1, #0x243] + mov r0, r4 + bl ov30_02385F54 + ldr r1, _02384A1C @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + strb r0, [r1, #0x24e] + mov r0, r4 + bl ov30_02385F54 + ldr r1, _02384A1C @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + strb r0, [r1, #0x250] + mov r0, r4 + bl ov30_02385F54 + ldr r1, _02384A1C @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + strb r0, [r1, #0x244] + mov r0, r4 + bl ov30_02385F54 + ldr r1, _02384A1C @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + strb r0, [r1, #0x245] + mov r0, r4 + bl ov30_02385F54 + ldr r1, _02384A1C @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + strb r0, [r1, #0x246] + mov r0, r4 + bl ov30_02385F54 + ldr r1, _02384A1C @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x1a000 + strb r0, [r1, #0x248] + pop {r4, pc} + .align 2, 0 +_02384A18: .4byte 0x02386080 +_02384A1C: .4byte 0x02353538 + arm_func_end ov30_023848A0 + + arm_func_start ov30_02384A20 +ov30_02384A20: @ 0x02384A20 + push {r4, lr} + mov r4, r0 + bl ov30_02385EDC + ldr r2, _02384A80 @ =0x02353538 + ldr r1, _02384A84 @ =0x0002CB02 + ldr r2, [r2] + strh r0, [r2, r1] + mov r0, r4 + bl ov30_02385EDC + ldr r2, _02384A80 @ =0x02353538 + ldr r1, _02384A88 @ =0x0002CB04 + ldr r2, [r2] + strh r0, [r2, r1] + mov r0, r4 + bl ov30_02385EDC + ldr r2, _02384A80 @ =0x02353538 + ldr r1, _02384A8C @ =0x0002CB06 + ldr ip, [r2] + ldr r3, _02384A90 @ =0x000003E7 + strh r0, [ip, r1] + ldr r2, [r2] + sub r0, r1, #2 + strh r3, [r2, r0] + pop {r4, pc} + .align 2, 0 +_02384A80: .4byte 0x02353538 +_02384A84: .4byte 0x0002CB02 +_02384A88: .4byte 0x0002CB04 +_02384A8C: .4byte 0x0002CB06 +_02384A90: .4byte 0x000003E7 + arm_func_end ov30_02384A20 + + arm_func_start ov30_02384A94 +ov30_02384A94: @ 0x02384A94 + push {r3, r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #0xc + mov r7, r0 + bl FUN_02344B1C + ldr r1, _02384B20 @ =0x02386080 + mov r0, r7 + bl ov30_02385CF0 + mov r6, #0 + mov sb, r6 + mov sl, #1 + add r4, sp, #0 + add r5, sp, #4 + mov r8, r6 +_02384AC8: + mov r0, r7 + mov r1, r5 + bl ov30_02384B24 + mov r0, r7 + mov r1, r4 + bl ov30_02385F7C + ldrb r0, [sp, #4] + tst r0, #1 + movne r0, sl + moveq r0, sb + tst r0, #0xff + beq _02384B08 + mov r0, r4 + mov r1, r5 + mov r2, r8 + bl FUN_02345538 +_02384B08: + add r6, r6, #1 + cmp r6, #0x40 + blt _02384AC8 + bl FUN_02344B30 + add sp, sp, #0xc + pop {r3, r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_02384B20: .4byte 0x02386080 + arm_func_end ov30_02384A94 + + arm_func_start ov30_02384B24 +ov30_02384B24: @ 0x02384B24 + push {r3, r4, r5, lr} + mov r4, r1 + mov r5, r0 + mov r0, r4 + mov r1, #0 + mov r2, #6 + bl FUN_02087308 + mov r0, r5 + mov r1, r4 + mov r2, #1 + bl ov30_02385CD0 + mov r0, r5 + add r1, r4, #1 + mov r2, #1 + bl ov30_02385CD0 + mov r0, r5 + add r1, r4, #2 + mov r2, #2 + bl ov30_02385CD0 + mov r0, r5 + add r1, r4, #4 + mov r2, #2 + bl ov30_02385CD0 + pop {r3, r4, r5, pc} + arm_func_end ov30_02384B24 + + arm_func_start ov30_02384B84 +ov30_02384B84: @ 0x02384B84 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #8 + ldr r1, _02384C68 @ =0x02386080 + mov sl, r0 + bl ov30_02385CF0 + mov sb, #0 + mov r8, #6 + mov r7, sb + add r6, sp, #3 + mov fp, #1 +_02384BAC: + mov r0, sl + mov r1, r6 + mov r2, fp + strb r8, [sp, #3] + strb r7, [sp, #2] + strb r7, [sp, #1] + bl ov30_02385CD0 + mov r0, sl + add r1, sp, #2 + mov r2, #1 + bl ov30_02385CD0 + mov r0, sl + add r1, sp, #1 + mov r2, #1 + bl ov30_02385CD0 + mov r0, sl + add r1, sp, #0 + mov r2, #1 + bl ov30_02385CD0 + mov r0, sl + bl ov30_02385F54 + mov r5, r0 + mov r0, sl + add r1, sp, #4 + bl ov30_02385F7C + ldrb r0, [sp, #3] + cmp r0, #0xff + beq _02384C54 + ldrsh r0, [sp, #4] + ldrsh r1, [sp, #6] + bl FUN_02336164 + mov r4, r0 + ldrb r0, [sp, #3] + ldrb r2, [sp, #2] + add r1, sp, #4 + mov r3, #0 + bl FUN_022E2260 + movs r1, r0 + beq _02384C54 + mov r0, r4 + mov r2, r5 + bl FUN_022ED858 +_02384C54: + add sb, sb, #1 + cmp sb, #0x40 + blt _02384BAC + add sp, sp, #8 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02384C68: .4byte 0x02386080 + arm_func_end ov30_02384B84 + + arm_func_start ov30_02384C6C +ov30_02384C6C: @ 0x02384C6C + push {r3, r4, r5, r6, lr} + sub sp, sp, #4 + ldr r1, _02384CCC @ =0x02386080 + mov r6, r0 + bl ov30_02385CF0 + mov r0, r6 + bl ov30_02385F54 + mov r5, r0 + mov r0, r6 + bl ov30_02385F54 + mov r4, r0 + add r1, sp, #0 + mov r0, r6 + bl ov30_02385F7C + cmp r5, #0 + beq _02384CC4 + add r0, sp, #0 + bl FUN_02338768 + ldr r0, _02384CD0 @ =0x02353538 + ldr r0, [r0] + add r0, r0, #0x19000 + strb r4, [r0, #0x84c] +_02384CC4: + add sp, sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_02384CCC: .4byte 0x02386080 +_02384CD0: .4byte 0x02353538 + arm_func_end ov30_02384C6C + + arm_func_start ov30_02384CD4 +ov30_02384CD4: @ 0x02384CD4 + push {r4, r5, r6, lr} + ldr r1, _02384E20 @ =0x02386080 + mov r4, r0 + bl ov30_02385CF0 + mov r0, r4 + bl ov30_02385F0C + ldr r1, _02384E24 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x3000 + str r0, [r1, #0xe2c] + mov r0, r4 + bl ov30_02385F0C + ldr r1, _02384E24 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x3000 + str r0, [r1, #0xe30] + mov r0, r4 + bl ov30_02385F54 + ldr r1, _02384E24 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x3000 + strb r0, [r1, #0xe34] + mov r0, r4 + bl ov30_02385F54 + ldr r1, _02384E24 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x3000 + strb r0, [r1, #0xe35] + mov r0, r4 + bl ov30_02385F54 + ldr r1, _02384E24 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x3000 + strb r0, [r1, #0xe36] + mov r0, r4 + bl ov30_02385F54 + ldr r1, _02384E24 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x3000 + strb r0, [r1, #0xe37] + mov r0, r4 + bl ov30_02385F54 + ldr r1, _02384E24 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x3000 + strb r0, [r1, #0xe38] + mov r0, r4 + bl ov30_02385F54 + ldr r1, _02384E24 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x3000 + strb r0, [r1, #0xe39] + mov r0, r4 + bl ov30_02385F54 + ldr r1, _02384E24 @ =0x02353538 + ldr r1, [r1] + add r1, r1, #0x3000 + strb r0, [r1, #0xe3c] + mov r0, r4 + bl ov30_02385EC4 + ldr r1, _02384E24 @ =0x02353538 + mov r6, #0 + ldr r1, [r1] + mov r5, #1 + add r1, r1, #0x3e00 + strh r0, [r1, #0x3a] +_02384DDC: + mov r0, r4 + mov r1, r5 + mov r2, r6 + bl ov30_02384E28 + add r6, r6, #1 + cmp r6, #4 + blt _02384DDC + mov r6, #0 + mov r5, r6 +_02384E00: + mov r0, r4 + mov r1, r5 + mov r2, r6 + bl ov30_02384E28 + add r6, r6, #1 + cmp r6, #0x10 + blt _02384E00 + pop {r4, r5, r6, pc} + .align 2, 0 +_02384E20: .4byte 0x02386080 +_02384E24: .4byte 0x02353538 + arm_func_end ov30_02384CD4 + + arm_func_start ov30_02384E28 +ov30_02384E28: @ 0x02384E28 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x258 + mov sl, r0 + mov sb, r1 + mov r8, r2 + add r0, sp, #0x18 + mov r1, #0 + mov r2, #0x240 + bl FUN_02087308 + mov r0, sl + bl ov30_02385EF4 + mov r0, sl + bl ov30_02385EF4 + mov r0, sl + bl ov30_02385EF4 + mov fp, r0 + mov r0, sl + add r1, sp, #0x14 + bl ov30_02385F7C + mov r0, sl + bl ov30_02385F54 + mov r5, r0 + mov r0, sl + bl ov30_02385EC4 + mov r6, r0 + ldr r1, _023859D8 @ =0x0235355C + mov r2, #0 + mov r0, sl + str r2, [r1] + bl ov30_02385EC4 + strh r0, [sp, #0x18] + add r0, sp, #0xe + mov r1, #0 + mov r2, #2 + bl FUN_02087308 + mov r0, sl + add r1, sp, #0xe + mov r2, #2 + bl ov30_02385CD0 + ldrsh r2, [sp, #0xe] + add r0, sp, #0xc + mov r1, #0 + strh r2, [sp, #0x1c] + mov r2, #2 + bl FUN_02087308 + mov r0, sl + add r1, sp, #0xc + mov r2, #2 + bl ov30_02385CD0 + ldrsh r1, [sp, #0xc] + mov r0, sl + strh r1, [sp, #0x1a] + bl ov30_02385F54 + strb r0, [sp, #0x1e] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x1f] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x20] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x21] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x22] + mov r0, sl + bl ov30_02385EF4 + strh r0, [sp, #0x24] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x60] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x61] + mov r0, sl + bl ov30_02385EDC + strh r0, [sp, #0x26] + mov r0, sl + bl ov30_02385EDC + strh r0, [sp, #0x28] + mov r0, sl + bl ov30_02385EDC + strh r0, [sp, #0x2a] + mov r0, sl + bl ov30_02385EDC + strh r0, [sp, #0x2e] + mov r0, sl + bl ov30_02385EDC + strh r0, [sp, #0x2c] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x32] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x33] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x34] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x35] + mov r0, sl + bl ov30_02385F0C + str r0, [sp, #0x38] + mov r0, sl + bl ov30_02385EDC + strh r0, [sp, #0x3c] + mov r0, sl + bl ov30_02385EDC + strh r0, [sp, #0x3e] + mov r0, sl + bl ov30_02385EDC + strh r0, [sp, #0x40] + mov r0, sl + bl ov30_02385EDC + strh r0, [sp, #0x42] + mov r0, sl + bl ov30_02385EDC + strh r0, [sp, #0x44] + mov r0, sl + bl ov30_02385EDC + strh r0, [sp, #0x46] + mov r0, sl + bl ov30_02385EDC + strh r0, [sp, #0x48] + mov r0, sl + bl ov30_02385F3C + str r0, [sp, #0x4c] + mov r0, sl + bl ov30_02385F3C + str r0, [sp, #0x50] + mov r0, sl + bl ov30_02385F3C + str r0, [sp, #0x54] + mov r0, sl + bl ov30_02385F3C + str r0, [sp, #0x58] + mov r0, #0 + strh r0, [sp, #0x62] + mov r0, sl + add r1, sp, #0x64 + mov r2, #1 + bl ov30_02385CD0 + mov r0, #7 + strb r0, [sp, #0x65] + mov r0, sl + add r1, sp, #0x72 + bl ov30_02385F7C + add r0, sp, #8 + mov r1, #0 + mov r2, #1 + bl FUN_02087308 + mov r0, sl + add r1, sp, #8 + mov r2, #1 + bl ov30_02385CD0 + ldrb r2, [sp, #8] + add r0, sp, #7 + mov r1, #0 + strb r2, [sp, #0x76] + mov r2, #1 + bl FUN_02087308 + mov r0, sl + add r1, sp, #7 + mov r2, #1 + bl ov30_02385CD0 + ldrb r2, [sp, #7] + add r0, sp, #6 + mov r1, #0 + strb r2, [sp, #0x77] + mov r2, #1 + bl FUN_02087308 + mov r0, sl + add r1, sp, #6 + mov r2, #1 + bl ov30_02385CD0 + ldrb r2, [sp, #6] + add r0, sp, #5 + mov r1, #0 + strb r2, [sp, #0x78] + mov r2, #1 + bl FUN_02087308 + mov r0, sl + add r1, sp, #5 + mov r2, #1 + bl ov30_02385CD0 + ldrb r2, [sp, #5] + mov r0, sl + add r1, sp, #0x7a + strb r2, [sp, #0x79] + bl ov30_02384B24 + add r0, sp, #0xa + mov r1, #0 + mov r2, #2 + bl FUN_02087308 + add r1, sp, #0xa + mov r0, sl + mov r2, #2 + bl ov30_02385CD0 + ldrsh r0, [sp, #0xa] + mov r4, #0 + add r7, sp, #0x82 + strh r0, [sp, #0x80] +_02385158: + mov r0, sl + add r1, r7, r4, lsl #2 + bl ov30_02385F7C + add r4, r4, #1 + cmp r4, #4 + blt _02385158 + add r1, sp, #0x94 + mov r0, sl + mov r2, #1 + bl ov30_02385CD0 + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x95] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x96] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x97] + mov r0, sl + bl ov30_02385EC4 + strh r0, [sp, #0x98] + mov r0, #0 + str r0, [sp, #0x9c] + str r0, [sp, #0xa0] + mov r0, sl + arm_func_end ov30_02384E28 + + arm_func_start ov30_023851C0 +ov30_023851C0: @ 0x023851C0 + add r1, sp, #0xa4 + bl ov30_02385F7C + mov r0, sl + add r1, sp, #0xa8 + mov r2, #0x45 + bl ov30_02385CD0 + mov r0, sl + add r1, sp, #0xb4 + mov r2, #0x45 + bl ov30_02385CD0 + add r0, sp, #4 + mov r1, #0 + mov r2, #1 + bl FUN_02087308 + mov r0, sl + add r1, sp, #4 + mov r2, #1 + bl ov30_02385CD0 + ldrb r1, [sp, #4] + mov r0, sl + strb r1, [sp, #0xc0] + bl ov30_02385EDC + strh r0, [sp, #0x5c] + add r0, sp, #3 + mov r1, #0 + mov r2, #1 + bl FUN_02087308 + mov r0, sl + add r1, sp, #3 + mov r2, #1 + bl ov30_02385CD0 + ldrb r1, [sp, #3] + mov r0, sl + strb r1, [sp, #0x5e] + bl ov30_02385F0C + str r0, [sp, #0xc8] + mov r0, sl + bl ov30_02385F0C + str r0, [sp, #0xcc] + mov r0, sl + bl ov30_02385F0C + str r0, [sp, #0xd0] + mov r0, sl + add r1, sp, #0xd5 + mov r2, #1 + bl ov30_02385CD0 + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0xd6] + add r1, sp, #0xd7 + mov r0, sl + mov r2, #1 + bl ov30_02385CD0 + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0xd8] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0xd9] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0xda] + mov r0, sl + add r1, sp, #0xdc + mov r2, #1 + bl ov30_02385CD0 + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0xe4] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0xe5] + mov r0, sl + bl ov30_02385F0C + str r0, [sp, #0xe0] + mov r0, sl + add r1, sp, #0xe8 + mov r2, #1 + bl ov30_02385CD0 + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0xe9] + mov r0, sl + add r1, sp, #0xea + mov r2, #1 + bl ov30_02385CD0 + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0xeb] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0xec] + mov r0, sl + add r1, sp, #0xed + mov r2, #1 + bl ov30_02385CD0 + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0xee] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0xef] + mov r0, sl + add r1, sp, #0xf0 + mov r2, #1 + bl ov30_02385CD0 + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0xf1] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0xf2] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0xf3] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0xf4] + mov r0, sl + add r1, sp, #0xf8 + mov r2, #1 + bl ov30_02385CD0 + mov r0, sl + bl ov30_02385F0C + str r0, [sp, #0xfc] + mov r0, sl + bl ov30_02385EF4 + arm_func_end ov30_023851C0 + + arm_func_start ov30_023853BC +ov30_023853BC: @ 0x023853BC + strb r0, [sp, #0x100] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x101] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x102] + mov r0, sl + add r1, sp, #0x104 + arm_func_end ov30_023853BC + + arm_func_start ov30_023853E0 +ov30_023853E0: @ 0x023853E0 + mov r2, #1 + bl ov30_02385CD0 + mov r0, sl + bl ov30_02385EF4 + add r1, sp, #0x100 + strb r0, [sp, #0x105] + mov r0, sl + add r1, r1, #6 + mov r2, #1 + bl ov30_02385CD0 + add r1, sp, #0x100 + mov r0, sl + add r1, r1, #7 + mov r2, #1 + bl ov30_02385CD0 + mov r0, sl + bl ov30_02385EF4 + add r1, sp, #0x100 + strb r0, [sp, #0x108] + mov r0, sl + add r1, r1, #9 + mov r2, #1 + bl ov30_02385CD0 + mov r0, sl + bl ov30_02385EF4 + add r1, sp, #0x100 + strb r0, [sp, #0x10a] + mov r0, sl + add r1, r1, #0xb + mov r2, #1 + bl ov30_02385CD0 + mov r0, sl + bl ov30_02385EF4 + add r1, sp, #0x100 + strb r0, [sp, #0x10c] + mov r0, sl + add r1, r1, #0xd + mov r2, #1 + bl ov30_02385CD0 + mov r0, sl + bl ov30_02385EF4 + add r1, sp, #0x100 + strb r0, [sp, #0x10e] + add r1, r1, #0xf + mov r0, sl + mov r2, #1 + bl ov30_02385CD0 + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x110] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x111] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x112] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x113] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x114] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x11b] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x115] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x120] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x116] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x117] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x118] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x11c] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x11d] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x121] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x11e] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x11f] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x122] + add r0, sp, #2 + mov r1, #0 + mov r2, #1 + bl FUN_02087308 + mov r0, sl + add r1, sp, #2 + mov r2, #1 + bl ov30_02385CD0 + ldrb r3, [sp, #2] + add r0, sp, #1 + mov r1, #0 + mov r2, #1 + strb r3, [sp, #0x123] + bl FUN_02087308 + add r1, sp, #1 + mov r0, sl + mov r2, #1 + bl ov30_02385CD0 + ldrb r2, [sp, #1] + add r0, sp, #0x10 + mov r1, #0 + strb r2, [sp, #0x124] + mov r2, #4 + bl FUN_02087308 + mov r0, sl + add r1, sp, #0x10 + mov r2, #4 + bl ov30_02385CD0 + ldr r1, [sp, #0x10] + mov r0, sl + str r1, [sp, #0x128] + add r1, sp, #0x12c + mov r2, #5 + bl ov30_02385CD0 + add r1, sp, #0x100 + mov r0, sl + add r1, r1, #0x31 + mov r2, #5 + bl ov30_02385CD0 + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x136] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x137] + mov r0, sl + bl ov30_02385EF4 + str r0, [sp, #0x138] + mov r7, #0 + add r4, sp, #0x18 +_02385630: + mov r0, sl + bl ov30_02385EF4 + add r1, r4, r7, lsl #3 + strb r0, [r1, #0x124] + mov r0, sl + bl ov30_02385EF4 + add r1, r4, r7, lsl #3 + add r1, r1, #0x100 + strh r0, [r1, #0x26] + add r1, sp, #0x13c + add r1, r1, r7, lsl #3 + mov r0, sl + add r1, r1, #4 + mov r2, #2 + bl ov30_02385CD0 + mov r0, sl + bl ov30_02385EF4 + add r1, r4, r7, lsl #3 + strb r0, [r1, #0x12a] + mov r0, sl + bl ov30_02385EF4 + add r1, r4, r7, lsl #3 + add r7, r7, #1 + strb r0, [r1, #0x12b] + cmp r7, #4 + blt _02385630 + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x15c] + mov r0, sl + bl ov30_02385EDC + add r1, sp, #0x100 + strh r0, [r1, #0x5e] + mov r0, sl + bl ov30_02385EDC + add r1, sp, #0x100 + strh r0, [r1, #0x60] + mov r0, sl + bl ov30_02385EDC + add r1, sp, #0x100 + strh r0, [r1, #0x62] + mov r0, sl + bl ov30_02385EDC + add r1, sp, #0x100 + strh r0, [r1, #0x64] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x166] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x167] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x169] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x168] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x16a] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x16b] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x16c] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x16d] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x16e] + mov r0, sl + bl ov30_02385EC4 + add r1, sp, #0x100 + strh r0, [r1, #0x70] + mov r0, sl + bl ov30_02385EC4 + add r1, sp, #0x100 + strh r0, [r1, #0x72] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x174] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x175] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x176] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x177] + mov r0, sl + bl ov30_02385F54 + strb r0, [sp, #0x178] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x18f] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x190] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x191] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x192] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x193] + mov r0, sl + bl ov30_02385EF4 + add r1, sp, #0x100 + strb r0, [sp, #0x194] + mov r0, sl + add r1, r1, #0x96 + bl ov30_02385F7C + mov r0, sl + bl ov30_02385F3C + str r0, [sp, #0x1a0] + mov r0, sl + bl ov30_02385EC4 + add r1, sp, #0x100 + strh r0, [r1, #0xaa] + mov r0, sl + bl ov30_02385F24 + str r0, [sp, #0x1a4] + mov r0, sl + bl ov30_02385EC4 + add r1, sp, #0x100 + strh r0, [r1, #0xa8] + mov r0, sl + bl ov30_02385EDC + add r1, sp, #0x200 + strh r0, [r1, #0x28] + mov r0, sl + bl ov30_02385EDC + add r1, sp, #0x200 + strh r0, [r1, #0x2a] + mov r0, sl + bl ov30_02385F0C + str r0, [sp, #0x22c] + add r0, sp, #0 + mov r1, #0 + mov r2, #1 + bl FUN_02087308 + mov r0, sl + add r1, sp, #0 + mov r2, #1 + bl ov30_02385CD0 + ldrb r1, [sp] + mov r0, sl + strb r1, [sp, #0xd4] + bl ov30_02385EF4 + strb r0, [sp, #0x17e] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x17f] + mov r0, sl + bl ov30_02385EDC + add r1, sp, #0x100 + strh r0, [r1, #0x80] + mov r0, sl + bl ov30_02385EDC + strh r0, [sp, #0xc4] + mov r0, sl + bl ov30_02385EF4 + strb r0, [sp, #0x182] + mov r4, #0 + add r7, sp, #0x18 +_023858D8: + mov r0, sl + bl ov30_02385EF4 + add r1, r7, r4 + add r4, r4, #1 + strb r0, [r1, #0x16b] + cmp r4, #5 + blt _023858D8 + ldr r0, _023859D8 @ =0x0235355C + mov r1, #0 + str r1, [r0] + cmp fp, #0 + beq _023859D0 + cmp sb, #0 + beq _02385924 + ldrsh r0, [sp, #0x1a] + ldrsh r1, [sp, #0x1c] + mov r2, r8 + bl ov30_023859DC + b _02385934 +_02385924: + ldrsh r0, [sp, #0x1a] + ldrsh r1, [sp, #0x1c] + mov r2, r8 + bl ov30_02385B10 +_02385934: + mov r7, r0 + cmp r7, #0 + beq _023859D0 + ldrsh r0, [sp, #0x14] + ldrsh r1, [sp, #0x16] + ldr r4, [r7, #0xb4] + bl FUN_02336164 + ldrh r1, [sp, #0x14] + add sl, sp, #0x18 + mov sb, r4 + strh r1, [r7, #8] + ldrh r1, [sp, #0x16] + mov r8, #0x24 + strh r1, [r7, #0xa] + ldrh r1, [sp, #0x14] + strh r1, [r7, #4] + ldrh r1, [sp, #0x16] + strh r1, [r7, #6] + str r7, [r0, #0xc] + strb r5, [r7, #0x20] + strh r6, [r7, #0x26] +_02385988: + ldm sl!, {r0, r1, r2, r3} + stm sb!, {r0, r1, r2, r3} + subs r8, r8, #1 + bne _02385988 + ldr r0, _023859D8 @ =0x0235355C + mov r1, #0 + str r1, [r0] + ldrb r0, [r4, #7] + cmp r0, #0 + beq _023859BC + ldrsh r0, [r7, #4] + ldrsh r1, [r7, #6] + bl FUN_02338F24 +_023859BC: + mov r0, r7 + bl FUN_023021F0 + mov r0, r7 + mov r1, #0 + bl FUN_022E1A40 +_023859D0: + add sp, sp, #0x258 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_023859D8: .4byte 0x0235355C + arm_func_end ov30_023853E0 + + arm_func_start ov30_023859DC +ov30_023859DC: @ 0x023859DC + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0xc + mov sb, r0 + mov r8, r1 + mov r0, #1 + mov r7, r2 + bl FUN_022DEA10 + mov r5, r0 + mov r0, r8 + bl FUN_022F7388 + mov r4, r0 + add r0, sp, #8 + add r1, sp, #4 + mov r2, r8 + mov r3, r4 + str r5, [sp] + bl FUN_022E1C84 + cmp r0, #0 + moveq r0, #0 + beq _02385B04 + ldr r2, _02385B0C @ =0x02353538 + mov r1, #1 + ldr r0, [r2] + add r3, r7, r7, lsl #3 + add r0, r0, r7, lsl #2 + add r0, r0, #0x12000 + ldr r6, [r0, #0xb28] + mov r0, #0 + str r1, [r6] + strb r7, [r6, #0x24] + ldr r2, [r2] + mov r7, #7 + add r2, r2, #0x3f4 + add r2, r2, #0x400 + add r2, r2, r3, lsl #6 + str r2, [r6, #0xb4] + strh sb, [r2, #2] + ldr r3, [r6, #0xb4] + mov r2, #0xff + strh r8, [r3, #4] + ldr r3, [r6, #0xb4] + strb r0, [r3, #6] + ldr r3, [r6, #0xb4] + strb r0, [r3, #8] + strh r4, [r6, #0xa8] + ldr r3, [sp, #8] + add r3, r3, #0x1a + strh r3, [r6, #0xac] + strb r7, [r6, #0xae] + strb r0, [r6, #0xb0] + strb r2, [r6, #0xaf] + strb r1, [r6, #0xb1] + strb r1, [r6, #0xb3] + str r0, [r6, #0x1c] + bl FUN_022E2978 + ldr r1, [sp, #8] + ldr r0, [r6, #0xb4] + strb r1, [r0, #0x17a] + ldr r1, [sp, #4] + ldr r0, [r6, #0xb4] + strb r1, [r0, #0x17b] + ldr r0, [sp, #8] + ldr r1, [sp, #4] + lsl r0, r0, #0x10 + lsl r1, r1, #0x10 + lsr r0, r0, #0x10 + lsr r1, r1, #0x10 + bl FUN_022E1AF4 + and r0, r5, #0xff + strb r5, [r6, #0xaa] + bl FUN_022DE9F8 + mov r1, #0 + mov r0, r6 + strb r1, [r6, #0x28] +_02385B04: + add sp, sp, #0xc + pop {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_02385B0C: .4byte 0x02353538 + arm_func_end ov30_023859DC + + arm_func_start ov30_02385B10 +ov30_02385B10: @ 0x02385B10 + push {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0xc + mov sb, r0 + mov r8, r1 + mov r0, #2 + mov r7, r2 + bl FUN_022DEA10 + mov r5, r0 + mov r0, r8 + bl FUN_022F7388 + mov r4, r0 + add r0, sp, #8 + add r1, sp, #4 + mov r2, r8 + mov r3, r4 + str r5, [sp] + bl FUN_022E2018 + cmp r0, #0 + mov r0, #0 + beq _02385C30 + ldr ip, _02385C38 @ =0x02353538 + mov r1, #1 + ldr r2, [ip] + add r3, r7, r7, lsl #3 + add r2, r2, r7, lsl #2 + add r2, r2, #0x12000 + ldr r6, [r2, #0xb38] + str r1, [r6] + strb r7, [r6, #0x24] + strb r0, [r6, #0x22] + ldr r2, [ip] + mov r7, #7 + add r2, r2, #0xf4 + add r2, r2, #0x1000 + add r2, r2, r3, lsl #6 + str r2, [r6, #0xb4] + strh sb, [r2, #2] + ldr r3, [r6, #0xb4] + mov r2, #0xff + strh r8, [r3, #4] + ldr r3, [r6, #0xb4] + strb r1, [r3, #6] + strh r4, [r6, #0xa8] + ldr r3, [sp, #8] + add r3, r3, #0x62 + strh r3, [r6, #0xac] + strb r7, [r6, #0xae] + strb r0, [r6, #0xb0] + strb r2, [r6, #0xaf] + strb r1, [r6, #0xb1] + strb r1, [r6, #0xb3] + str r0, [r6, #0x1c] + ldr r1, [sp, #8] + ldr r0, [r6, #0xb4] + strb r1, [r0, #0x17a] + ldr r1, [sp, #4] + ldr r0, [r6, #0xb4] + strb r1, [r0, #0x17b] + ldr r0, [sp, #8] + ldr r1, [sp, #4] + lsl r0, r0, #0x10 + lsl r1, r1, #0x10 + lsr r0, r0, #0x10 + lsr r1, r1, #0x10 + bl FUN_022E1EC4 + bl FUN_022E2978 + and r0, r5, #0xff + strb r5, [r6, #0xaa] + bl FUN_022DE9F8 + mov r1, #0 + mov r0, r6 + strb r1, [r6, #0x28] +_02385C30: + add sp, sp, #0xc + pop {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_02385C38: .4byte 0x02353538 + arm_func_end ov30_02385B10 + + arm_func_start FUN_02385C3C +FUN_02385C3C: @ 0x02385C3C + str r1, [r0] + mov r3, #0 + str r3, [r0, #8] + add r1, r1, r2 + str r1, [r0, #4] + bx lr + arm_func_end FUN_02385C3C + + arm_func_start ov30_02385C80 +ov30_02385C80: @ 0x02385C54 + b _02385C80 +_02385C58: + ldrb ip, [r1], #1 + ldr r3, [r0] + sub r2, r2, #1 + strb ip, [r3] + ldr r3, [r0] + add r3, r3, #1 + str r3, [r0] + ldr r3, [r0, #8] + add r3, r3, #1 + str r3, [r0, #8] + arm_func_end ov30_02385C80 +_02385C80: + cmp r2, #0 + bne _02385C58 + bx lr + + arm_func_start ov30_02385C8C +ov30_02385C8C: @ 0x02385C8C + str r1, [r0] + mov r3, #0 + str r3, [r0, #8] + add r1, r1, r2 + str r1, [r0, #4] + bx lr + arm_func_end ov30_02385C8C + + arm_func_start ov30_02385CD0 +ov30_02385CD0: @ 0x02385CA4 + b _02385CD0 +_02385CA8: + ldr r3, [r0] + sub r2, r2, #1 + ldrb r3, [r3] + strb r3, [r1], #1 + ldr r3, [r0] + add r3, r3, #1 + str r3, [r0] + ldr r3, [r0, #8] + add r3, r3, #1 + str r3, [r0, #8] + arm_func_end ov30_02385CD0 +_02385CD0: + cmp r2, #0 + bne _02385CA8 + bx lr + + arm_func_start ov30_02385CDC +ov30_02385CDC: @ 0x02385CDC + bx lr + arm_func_end ov30_02385CDC + + arm_func_start ov30_02385CE0 +ov30_02385CE0: @ 0x02385CE0 + ldr ip, _02385CEC @ =ov30_02385C80 + mov r2, #8 + bx ip + .align 2, 0 +_02385CEC: .4byte ov30_02385C80 + arm_func_end ov30_02385CE0 + + arm_func_start ov30_02385CF0 +ov30_02385CF0: @ 0x02385CF0 + stmdb sp!, {lr} + sub sp, sp, #0xc + add r1, sp, #0 + mov r2, #8 + bl ov30_02385CD0 + mov r0, #0 + strb r0, [sp, #8] + add sp, sp, #0xc + ldm sp!, {pc} + arm_func_end ov30_02385CF0 + + arm_func_start ov30_02385D14 +ov30_02385D14: @ 0x02385D14 + push {r0, r1, r2, r3} + push {r3, lr} + add r1, sp, #0xc + mov r2, #2 + bl ov30_02385C80 + pop {r3, lr} + add sp, sp, #0x10 + bx lr + arm_func_end ov30_02385D14 + + arm_func_start ov30_02385D34 +ov30_02385D34: @ 0x02385D34 + push {r0, r1, r2, r3} + push {r3, lr} + add r1, sp, #0xc + mov r2, #2 + bl ov30_02385C80 + pop {r3, lr} + add sp, sp, #0x10 + bx lr + arm_func_end ov30_02385D34 + + arm_func_start ov30_02385D54 +ov30_02385D54: @ 0x02385D54 + push {r0, r1, r2, r3} + push {r3, lr} + add r1, sp, #0xc + mov r2, #1 + bl ov30_02385C80 + pop {r3, lr} + add sp, sp, #0x10 + bx lr + arm_func_end ov30_02385D54 + + arm_func_start FUN_02385D74 +FUN_02385D74: @ 0x02385D74 + push {r0, r1, r2, r3} + push {r3, lr} + add r1, sp, #0xc + mov r2, #4 + bl ov30_02385C80 + pop {r3, lr} + add sp, sp, #0x10 + bx lr + arm_func_end FUN_02385D74 + + arm_func_start FUN_02385D94 +FUN_02385D94: @ 0x02385D94 + push {r0, r1, r2, r3} + push {r3, lr} + add r1, sp, #0xc + mov r2, #4 + bl ov30_02385C80 + pop {r3, lr} + add sp, sp, #0x10 + bx lr + arm_func_end FUN_02385D94 + + arm_func_start FUN_02385DB4 +FUN_02385DB4: @ 0x02385DB4 + push {r0, r1, r2, r3} + push {r3, lr} + add r1, sp, #0xc + mov r2, #4 + bl ov30_02385C80 + pop {r3, lr} + add sp, sp, #0x10 + bx lr + arm_func_end FUN_02385DB4 + + arm_func_start ov30_02385DD4 +ov30_02385DD4: @ 0x02385DD4 + push {r3, lr} + cmp r1, #0 + movne r3, #0xff + moveq r3, #0 + add r1, sp, #0 + mov r2, #1 + strb r3, [sp] + bl ov30_02385C80 + pop {r3, pc} + arm_func_end ov30_02385DD4 + + arm_func_start ov30_02385DF8 +ov30_02385DF8: @ 0x02385DF8 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + mov r2, #1 + bl ov30_02385C80 + mov r0, r5 + add r1, r4, #2 + mov r2, #1 + bl ov30_02385C80 + pop {r3, r4, r5, pc} + arm_func_end ov30_02385DF8 + + arm_func_start ov30_02385E20 +ov30_02385E20: @ 0x02385E20 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + mov r2, #2 + bl ov30_02385C80 + mov r0, r5 + add r1, r4, #2 + mov r2, #2 + bl ov30_02385C80 + pop {r3, r4, r5, pc} + arm_func_end ov30_02385E20 + + arm_func_start ov30_02385E48 +ov30_02385E48: @ 0x02385E48 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + mov r2, #1 + bl ov30_02385C80 + mov r0, r5 + add r1, r4, #4 + mov r2, #1 + bl ov30_02385C80 + mov r0, r5 + add r1, r4, #8 + mov r2, #1 + bl ov30_02385C80 + mov r0, r5 + add r1, r4, #0xc + mov r2, #1 + bl ov30_02385C80 + pop {r3, r4, r5, pc} + arm_func_end ov30_02385E48 + + arm_func_start ov30_02385E90 +ov30_02385E90: @ 0x02385E90 + push {r3, r4, r5, lr} + mov r5, r0 + mov r4, r1 + mov r2, #1 + bl ov30_02385C80 + mov r0, r5 + add r1, r4, #2 + mov r2, #1 + bl ov30_02385C80 + pop {r3, r4, r5, pc} + arm_func_end ov30_02385E90 + + arm_func_start FUN_02385EB8 +FUN_02385EB8: @ 0x02385EB8 + ldr ip, _02385EC0 @ =ov30_02385C80 + bx ip + .align 2, 0 +_02385EC0: .4byte ov30_02385C80 + arm_func_end FUN_02385EB8 + + arm_func_start ov30_02385EC4 +ov30_02385EC4: @ 0x02385EC4 + push {r3, lr} + add r1, sp, #0 + mov r2, #2 + bl ov30_02385CD0 + ldrh r0, [sp] + pop {r3, pc} + arm_func_end ov30_02385EC4 + + arm_func_start ov30_02385EDC +ov30_02385EDC: @ 0x02385EDC + push {r3, lr} + add r1, sp, #0 + mov r2, #2 + bl ov30_02385CD0 + ldrsh r0, [sp] + pop {r3, pc} + arm_func_end ov30_02385EDC + + arm_func_start ov30_02385EF4 +ov30_02385EF4: @ 0x02385EF4 + push {r3, lr} + add r1, sp, #0 + mov r2, #1 + bl ov30_02385CD0 + ldrb r0, [sp] + pop {r3, pc} + arm_func_end ov30_02385EF4 + + arm_func_start ov30_02385F0C +ov30_02385F0C: @ 0x02385F0C + push {r3, lr} + add r1, sp, #0 + mov r2, #4 + bl ov30_02385CD0 + ldr r0, [sp] + pop {r3, pc} + arm_func_end ov30_02385F0C + + arm_func_start ov30_02385F24 +ov30_02385F24: @ 0x02385F24 + push {r3, lr} + add r1, sp, #0 + mov r2, #4 + bl ov30_02385CD0 + ldr r0, [sp] + pop {r3, pc} + arm_func_end ov30_02385F24 + + arm_func_start ov30_02385F3C +ov30_02385F3C: @ 0x02385F3C + push {r3, lr} + add r1, sp, #0 + mov r2, #4 + bl ov30_02385CD0 + ldr r0, [sp] + pop {r3, pc} + arm_func_end ov30_02385F3C + + arm_func_start ov30_02385F54 +ov30_02385F54: @ 0x02385F54 + push {r3, lr} + add r1, sp, #0 + mov r2, #1 + bl ov30_02385CD0 + ldrb r0, [sp] + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + and r0, r0, #0xff + pop {r3, pc} + arm_func_end ov30_02385F54 + + arm_func_start ov30_02385F7C +ov30_02385F7C: @ 0x02385F7C + push {r3, r4, r5, lr} + mov r4, r1 + mov r3, #0 + strh r3, [r4] + mov r5, r0 + mov r2, #1 + strh r3, [r4, #2] + bl ov30_02385CD0 + mov r0, r5 + add r1, r4, #2 + mov r2, #1 + bl ov30_02385CD0 + pop {r3, r4, r5, pc} + arm_func_end ov30_02385F7C + + arm_func_start ov30_02385FB0 +ov30_02385FB0: @ 0x02385FB0 + push {r3, r4, r5, lr} + mov r4, r1 + mov r3, #0 + strh r3, [r4] + mov r5, r0 + mov r2, #2 + strh r3, [r4, #2] + bl ov30_02385CD0 + mov r0, r5 + add r1, r4, #2 + mov r2, #2 + bl ov30_02385CD0 + arm_func_end ov30_02385FB0 + + arm_func_start ov30_02385FE0 +ov30_02385FE0: @ 0x02385FE0 + pop {r3, r4, r5, pc} + arm_func_end ov30_02385FE0 + + arm_func_start ov30_02385FE4 +ov30_02385FE4: @ 0x02385FE4 + push {r3, r4, r5, lr} + mov r4, r1 + mov r3, #0 + str r3, [r4] + str r3, [r4, #4] + str r3, [r4, #8] + mov r5, r0 + mov r2, #1 + str r3, [r4, #0xc] + bl ov30_02385CD0 + mov r0, r5 + add r1, r4, #4 + mov r2, #1 + bl ov30_02385CD0 + mov r0, r5 + add r1, r4, #8 + mov r2, #1 + bl ov30_02385CD0 + mov r0, r5 + add r1, r4, #0xc + mov r2, #1 + bl ov30_02385CD0 + pop {r3, r4, r5, pc} + arm_func_end ov30_02385FE4 + + arm_func_start ov30_02386040 +ov30_02386040: @ 0x02386040 + push {r3, r4, r5, lr} + mov r4, r1 + mov r3, #0 + strh r3, [r4] + mov r5, r0 + mov r2, #1 + strh r3, [r4, #2] + bl ov30_02385CD0 + mov r0, r5 + add r1, r4, #2 + mov r2, #1 + bl ov30_02385CD0 + pop {r3, r4, r5, pc} + arm_func_end ov30_02386040 + + arm_func_start ov30_02385CD0 +ov30_02385CD0: @ 0x02386074 + ldr ip, _0238607C @ =ov30_02385CD0 + bx ip + .align 2, 0 +_0238607C: .4byte ov30_02385CD0 + arm_func_end ov30_02385CD0 + @ 0x02386080 diff --git a/asm/overlay_34.s b/asm/overlay_34.s index 6dbc4b93..e22c624c 100644 --- a/asm/overlay_34.s +++ b/asm/overlay_34.s @@ -3,3 +3,1074 @@ .include "global.inc" .text + + arm_func_start ExplorersOfSkyMain +ExplorersOfSkyMain: @ 0x022DC240 + push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0xa0 + ldr r3, _022DC598 @ =0x022DC738 + ldr r1, _022DC59C @ =0x022DD0A0 + mov r2, #0 + str r3, [sp, #0x8c] + str r2, [sp, #0x90] + str r0, [r1, #8] + str r2, [r1, #0xc] + str r2, [r1] + str r2, [r1, #4] + bl FUN_02028E2C + bl FUN_02017A68 + bl FUN_02017B70 + ldr r0, _022DC59C @ =0x022DD0A0 + ldr r0, [r0, #8] + cmp r0, #3 + beq _022DC28C + bl FUN_020519D0 +_022DC28C: + bl FUN_0201DC90 + bl ov34_022DC748 + ldr r1, _022DC5A0 @ =0x022DD080 + mov r2, #1 + ldr r0, _022DC5A4 @ =ov34_022DC5B0 + strb r2, [r1] + bl FUN_0200383C + ldr r0, _022DC59C @ =0x022DD0A0 + ldr r1, [r0, #8] + cmp r1, #0xd + addls pc, pc, r1, lsl #2 + b _022DC404 +_022DC2BC: @ jump table + b _022DC404 @ case 0 + b _022DC2F4 @ case 1 + b _022DC2F4 @ case 2 + b _022DC300 @ case 3 + b _022DC314 @ case 4 + b _022DC324 @ case 5 + b _022DC340 @ case 6 + b _022DC35C @ case 7 + b _022DC378 @ case 8 + b _022DC394 @ case 9 + b _022DC3B0 @ case 10 + b _022DC3CC @ case 11 + b _022DC3DC @ case 12 + b _022DC3F8 @ case 13 +_022DC2F4: + mov r1, #1 + str r1, [r0] + b _022DC404 +_022DC300: + mov r1, #1 + str r1, [r0] + mov r1, #0x78 + str r1, [r0, #4] + b _022DC404 +_022DC314: + mov r0, #0 + bl ov34_022DC86C + bl FUN_0204A0E8 + b _022DC404 +_022DC324: + mov r0, #0 + bl ov34_022DC86C + add r2, sp, #8 + mov r0, #1 + mov r1, #0x100 + bl FUN_0204964C + b _022DC404 +_022DC340: + mov r0, #0 + bl ov34_022DC86C + add r2, sp, #8 + mov r0, #0 + mov r1, #0x100 + bl FUN_0204964C + b _022DC404 +_022DC35C: + mov r0, #0 + bl ov34_022DC86C + add r2, sp, #8 + mov r0, #8 + mov r1, #0x100 + bl FUN_0204964C + b _022DC404 +_022DC378: + mov r0, #0 + bl ov34_022DC86C + add r2, sp, #8 + mov r0, #9 + mov r1, #0x100 + bl FUN_0204964C + b _022DC404 +_022DC394: + mov r0, #0 + bl ov34_022DC86C + add r2, sp, #8 + mov r0, #0xa + mov r1, #0x100 + bl FUN_0204964C + b _022DC404 +_022DC3B0: + mov r0, #0 + bl ov34_022DC86C + add r2, sp, #8 + mov r0, #0xb + mov r1, #0x100 + bl FUN_0204964C + b _022DC404 +_022DC3CC: + mov r0, #0 + bl ov34_022DC86C + bl ov34_022DCBCC + b _022DC404 +_022DC3DC: + mov r0, #0 + bl ov34_022DC86C + add r2, sp, #8 + mov r0, #1 + mov r1, #0x100 + bl FUN_0204964C + b _022DC404 +_022DC3F8: + mov r0, #0 + bl ov34_022DC86C + bl ov34_022DCDCC +_022DC404: + mov r8, #1 + mov fp, #2 + ldr r5, _022DC59C @ =0x022DD0A0 + ldr r4, _022DC5A0 @ =0x022DD080 + mov r7, r8 + mov r6, r8 + mov sb, fp + mov sl, #0 +_022DC424: + bl FUN_020038E8 + ldr r0, [r5, #0xc] + cmp r0, #0 + beq _022DC478 + ldr r0, [r5, #8] + cmp r0, #1 + beq _022DC560 + bl ov34_022DC98C + cmp r0, #0 + bne _022DC54C + bl ov34_022DC9B8 + cmp r0, #0 + bne _022DC54C + ldr r0, [r5, #0xc] + cmp r0, #1 + bne _022DC560 + ldr r0, [r5, #8] + cmp r0, #2 + beq _022DC560 + str sl, [r5, #0xc] + b _022DC54C +_022DC478: + ldr r0, [r5] + cmp r0, #0 + beq _022DC54C + ldr r0, [r5, #8] + cmp r0, #1 + bne _022DC4A0 + ldrb r0, [r4] + cmp r0, #0 + streq sb, [r5, #0xc] + b _022DC54C +_022DC4A0: + cmp r0, #2 + bne _022DC508 + ldrb r0, [r4] + cmp r0, #0 + bne _022DC54C + mov r1, #0 + str r8, [sp] + ldr r0, _022DC5A8 @ =0x022DCFF4 + str r8, [sp, #4] + mov r2, r1 + mov r3, r1 + bl FUN_02052060 + mov r1, #0 + str r7, [sp] + mov r0, #0 + str r0, [sp, #4] + ldr r0, _022DC5AC @ =0x022DD004 + mov r2, r1 + mov r3, r1 + bl FUN_02052060 + mov r0, #0x1e + bl ov34_022DC958 + mov r0, #0x1e + bl ov34_022DC86C + str r6, [r5, #0xc] + b _022DC54C +_022DC508: + cmp r0, #3 + bne _022DC53C + ldr r0, [r5, #4] + cmp r0, #0 + subgt r0, r0, #1 + strgt r0, [r5, #4] + bgt _022DC54C + mov r0, #0x1e + bl ov34_022DC970 + mov r0, #0x1e + bl ov34_022DC908 + str fp, [r5, #0xc] + b _022DC54C +_022DC53C: + mov r0, #0 + bl ov34_022DC8B8 + mov r0, #2 + str r0, [r5, #0xc] +_022DC54C: + bl FUN_02006E14 + bl FUN_020039E4 + bl FUN_02034A80 + bl FUN_02028848 + b _022DC424 +_022DC560: + bl ov34_022DC778 + mov r0, #0 + bl FUN_0200383C + bl FUN_0201DCD0 + ldr r0, _022DC59C @ =0x022DD0A0 + ldr r0, [r0, #8] + cmp r0, #3 + beq _022DC584 + bl FUN_02051B44 +_022DC584: + bl FUN_02034710 + ldr r0, _022DC59C @ =0x022DD0A0 + ldr r0, [r0] + add sp, sp, #0xa0 + pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022DC598: .4byte 0x022DC738 +_022DC59C: .4byte 0x022DD0A0 +_022DC5A0: .4byte 0x022DD080 +_022DC5A4: .4byte ov34_022DC5B0 +_022DC5A8: .4byte 0x022DCFF4 +_022DC5AC: .4byte 0x022DD004 + arm_func_end ExplorersOfSkyMain + + arm_func_start ov34_022DC5B0 +ov34_022DC5B0: @ 0x022DC5B0 + push {r4, lr} + bl FUN_0201BF64 + bl FUN_02028E40 + bl FUN_020038D8 + cmp r0, #0 + beq _022DC5D0 + bl ov34_022DC9CC + bl FUN_02003990 +_022DC5D0: + bl ov34_022DCA70 + bl FUN_0201DD48 + bl FUN_0201F464 + ldr r0, _022DC710 @ =0x022DD080 + ldrb r0, [r0] + cmp r0, #0 + bne _022DC5F0 + bl FUN_0201DDFC +_022DC5F0: + bl FUN_02008F84 + bl FUN_0201BE28 + bl FUN_02017A80 + bl FUN_02003A40 + ldr r1, _022DC710 @ =0x022DD080 + mov r4, r0 + ldrb r0, [r1] + cmp r0, #0 + ldrne r0, _022DC714 @ =0x022DD0A0 + ldrne r0, [r0, #8] + cmpne r0, #1 + beq _022DC6C4 + cmp r0, #2 + bne _022DC64C + mov r0, #0 + mov r1, #0x100 + bl FUN_02008F3C + mov r0, #1 + mov r1, #0x100 + bl FUN_02008F3C + mov r0, #0 + bl FUN_02008ED0 + b _022DC6C4 +_022DC64C: + cmp r0, #3 + mov r0, #0 + bne _022DC678 + mov r1, r0 + bl FUN_02008F3C + mov r0, #1 + mov r1, #0 + bl FUN_02008F3C + mov r0, #0 + bl FUN_02008ED0 + b _022DC6C4 +_022DC678: + sub r1, r0, #0x100 + bl FUN_02008F3C + mov r0, #1 + mvn r1, #0xff + bl FUN_02008F3C + mov r0, #0 + bl FUN_02008ED0 + mov r0, #0 + mov r1, #2 + bl FUN_02008F64 + mov r0, #0 + mov r1, #3 + bl FUN_02008F64 + mov r0, #1 + mov r1, #2 + bl FUN_02008F64 + mov r0, #1 + mov r1, #3 + bl FUN_02008F64 +_022DC6C4: + bl FUN_02008F88 + mov r0, r4 + bl FUN_02028A64 + bl FUN_0201BE5C + bl FUN_0201BE84 + bl FUN_020778D0 + bl FUN_0201DE10 + bl FUN_02028E88 + ldr r0, _022DC714 @ =0x022DD0A0 + ldr r0, [r0, #8] + cmp r0, #3 + beq _022DC6F8 + bl FUN_02051C24 +_022DC6F8: + bl FUN_0201BF4C + ldr r1, _022DC710 @ =0x022DD080 + mov r2, #0 + mov r0, r4 + strb r2, [r1] + pop {r4, pc} + .align 2, 0 +_022DC710: .4byte 0x022DD080 +_022DC714: .4byte 0x022DD0A0 + arm_func_end ov34_022DC5B0 + + arm_func_start ov34_022DC718 +ov34_022DC718: @ 0x022DC718 + ldr r1, _022DC734 @ =0x022DD0A0 + ldr r2, [r1] + cmp r2, #0 + streq r0, [r1] + moveq r0, #1 + movne r0, #0 + bx lr + .align 2, 0 +_022DC734: .4byte 0x022DD0A0 + arm_func_end ov34_022DC718 +_022DC738: + .byte 0x04, 0xC0, 0x9F, 0xE5, 0x01, 0x00, 0xA0, 0xE3 + .byte 0x1C, 0xFF, 0x2F, 0xE1, 0x18, 0xC7, 0x2D, 0x02 + + arm_func_start ov34_022DC748 +ov34_022DC748: @ 0x022DC748 + push {r3, lr} + ldr r0, _022DC770 @ =0x022DD104 + mov r1, #1 + bl FUN_0200B894 + ldr r0, _022DC774 @ =0x022DD0C0 + mov r1, #1 + bl FUN_0200B894 + bl ov34_022DC798 + bl ov34_022DC810 + pop {r3, pc} + .align 2, 0 +_022DC770: .4byte 0x022DD104 +_022DC774: .4byte 0x022DD0C0 + arm_func_end ov34_022DC748 + + arm_func_start ov34_022DC778 +ov34_022DC778: @ 0x022DC778 + push {r3, lr} + ldr r0, _022DC790 @ =0x022DD104 + bl FUN_0200B8B8 + ldr r0, _022DC794 @ =0x022DD0C0 + bl FUN_0200B8B8 + pop {r3, pc} + .align 2, 0 +_022DC790: .4byte 0x022DD104 +_022DC794: .4byte 0x022DD0C0 + arm_func_end ov34_022DC778 + + arm_func_start ov34_022DC798 +ov34_022DC798: @ 0x022DC798 + push {r3, lr} + ldr r1, _022DC808 @ =0x022DD0B0 + mov r0, #0 + strb r0, [r1] + str r0, [r1, #0xc] + str r0, [r1, #8] + mov r2, #1 + strb r2, [r1, #1] + bl FUN_02008F4C + cmp r0, #0x100 + bne _022DC7D4 + ldr r0, _022DC80C @ =0x022DD104 + mov r1, #2 + bl FUN_0200B8D4 + pop {r3, pc} +_022DC7D4: + mov r0, #0 + bl FUN_02008F4C + mvn r1, #0xff + cmp r0, r1 + bne _022DC7F8 + ldr r0, _022DC80C @ =0x022DD104 + mov r1, #1 + bl FUN_0200B8D4 + pop {r3, pc} +_022DC7F8: + ldr r0, _022DC80C @ =0x022DD104 + mov r1, #0 + bl FUN_0200B8D4 + pop {r3, pc} + .align 2, 0 +_022DC808: .4byte 0x022DD0B0 +_022DC80C: .4byte 0x022DD104 + arm_func_end ov34_022DC798 + + arm_func_start ov34_022DC810 +ov34_022DC810: @ 0x022DC810 + push {r3, lr} + mov r0, #1 + bl FUN_02008F4C + cmp r0, #0x100 + bne _022DC834 + ldr r0, _022DC868 @ =0x022DD0C0 + mov r1, #2 + bl FUN_0200B8D4 + pop {r3, pc} +_022DC834: + mov r0, #1 + bl FUN_02008F4C + mvn r1, #0xff + cmp r0, r1 + bne _022DC858 + ldr r0, _022DC868 @ =0x022DD0C0 + mov r1, #1 + bl FUN_0200B8D4 + pop {r3, pc} +_022DC858: + ldr r0, _022DC868 @ =0x022DD0C0 + mov r1, #0 + bl FUN_0200B8D4 + pop {r3, pc} + .align 2, 0 +_022DC868: .4byte 0x022DD0C0 + arm_func_end ov34_022DC810 + + arm_func_start ov34_022DC86C +ov34_022DC86C: @ 0x022DC86C + push {r4, lr} + mov r4, r0 + mov r0, #2 + bl FUN_02002878 + cmp r0, #0 + ldreq r0, _022DC8B0 @ =0x022DD0B0 + moveq r1, #1 + streq r1, [r0, #8] + streq r4, [r0, #4] + beq _022DC8A8 + ldr r0, _022DC8B4 @ =0x022DD104 + mov r1, r4 + bl FUN_0200BB60 + ldr r0, _022DC8B0 @ =0x022DD0B0 + mov r1, #1 +_022DC8A8: + strb r1, [r0, #1] + pop {r4, pc} + .align 2, 0 +_022DC8B0: .4byte 0x022DD0B0 +_022DC8B4: .4byte 0x022DD104 + arm_func_end ov34_022DC86C + + arm_func_start ov34_022DC8B8 +ov34_022DC8B8: @ 0x022DC8B8 + push {r4, lr} + mov r4, r0 + mov r0, #2 + bl FUN_02002878 + cmp r0, #0 + ldreq r0, _022DC900 @ =0x022DD0B0 + moveq r1, #2 + streq r1, [r0, #8] + streq r4, [r0, #4] + beq _022DC8F4 + ldr r0, _022DC904 @ =0x022DD104 + mov r2, r4 + mov r1, #1 + bl FUN_0200BB74 + ldr r0, _022DC900 @ =0x022DD0B0 +_022DC8F4: + mov r1, #1 + strb r1, [r0, #1] + pop {r4, pc} + .align 2, 0 +_022DC900: .4byte 0x022DD0B0 +_022DC904: .4byte 0x022DD104 + arm_func_end ov34_022DC8B8 + + arm_func_start ov34_022DC908 +ov34_022DC908: @ 0x022DC908 + push {r4, lr} + mov r4, r0 + mov r0, #2 + bl FUN_02002878 + cmp r0, #0 + ldreq r0, _022DC950 @ =0x022DD0B0 + moveq r1, #3 + streq r1, [r0, #8] + streq r4, [r0, #4] + beq _022DC944 + ldr r0, _022DC954 @ =0x022DD104 + mov r2, r4 + mov r1, #2 + bl FUN_0200BB74 + ldr r0, _022DC950 @ =0x022DD0B0 +_022DC944: + mov r1, #1 + strb r1, [r0, #1] + pop {r4, pc} + .align 2, 0 +_022DC950: .4byte 0x022DD0B0 +_022DC954: .4byte 0x022DD104 + arm_func_end ov34_022DC908 + + arm_func_start ov34_022DC958 +ov34_022DC958: @ 0x022DC958 + ldr ip, _022DC968 @ =FUN_0200BB60 + mov r1, r0 + ldr r0, _022DC96C @ =0x022DD0C0 + bx ip + .align 2, 0 +_022DC968: .4byte FUN_0200BB60 +_022DC96C: .4byte 0x022DD0C0 + arm_func_end ov34_022DC958 + + arm_func_start ov34_022DC970 +ov34_022DC970: @ 0x022DC970 + ldr ip, _022DC984 @ =FUN_0200BB74 + mov r2, r0 + ldr r0, _022DC988 @ =0x022DD0C0 + mov r1, #2 + bx ip + .align 2, 0 +_022DC984: .4byte FUN_0200BB74 +_022DC988: .4byte 0x022DD0C0 + arm_func_end ov34_022DC970 + + arm_func_start ov34_022DC98C +ov34_022DC98C: @ 0x022DC98C + push {r3, lr} + ldr r0, _022DC9B0 @ =0x022DD0B0 + ldrb r0, [r0] + cmp r0, #0 + movne r0, #1 + popne {r3, pc} + ldr r0, _022DC9B4 @ =0x022DD104 + bl FUN_0200BD14 + pop {r3, pc} + .align 2, 0 +_022DC9B0: .4byte 0x022DD0B0 +_022DC9B4: .4byte 0x022DD104 + arm_func_end ov34_022DC98C + + arm_func_start ov34_022DC9B8 +ov34_022DC9B8: @ 0x022DC9B8 + ldr ip, _022DC9C4 @ =FUN_0200BD14 + ldr r0, _022DC9C8 @ =0x022DD0C0 + bx ip + .align 2, 0 +_022DC9C4: .4byte FUN_0200BD14 +_022DC9C8: .4byte 0x022DD0C0 + arm_func_end ov34_022DC9B8 + + arm_func_start ov34_022DC9CC +ov34_022DC9CC: @ 0x022DC9CC + push {r3, lr} + ldr r0, _022DCA68 @ =0x022DD0B0 + ldr r1, [r0, #8] + cmp r1, #0 + beq _022DCA48 + cmp r1, #1 + beq _022DC9FC + cmp r1, #2 + beq _022DCA0C + cmp r1, #3 + beq _022DCA20 + b _022DCA30 +_022DC9FC: + ldr r1, [r0, #4] + ldr r0, _022DCA6C @ =0x022DD104 + bl FUN_0200BB60 + b _022DCA30 +_022DCA0C: + ldr r2, [r0, #4] + ldr r0, _022DCA6C @ =0x022DD104 + mov r1, #1 + bl FUN_0200BB74 + b _022DCA30 +_022DCA20: + ldr r2, [r0, #4] + ldr r0, _022DCA6C @ =0x022DD104 + mov r1, #2 + bl FUN_0200BB74 +_022DCA30: + ldr r0, _022DCA68 @ =0x022DD0B0 + mov r1, #0 + str r1, [r0, #8] + mov r1, #1 + strb r1, [r0, #1] + pop {r3, pc} +_022DCA48: + ldr r0, _022DCA6C @ =0x022DD104 + ldr r0, [r0, #4] + cmp r0, #0 + movne r1, #1 + ldr r0, _022DCA68 @ =0x022DD0B0 + moveq r1, #0 + strb r1, [r0, #1] + pop {r3, pc} + .align 2, 0 +_022DCA68: .4byte 0x022DD0B0 +_022DCA6C: .4byte 0x022DD104 + arm_func_end ov34_022DC9CC + + arm_func_start ov34_022DCA70 +ov34_022DCA70: @ 0x022DCA70 + push {r4, lr} + ldr r0, _022DCB58 @ =0x022DD0B0 + mov r4, #1 + ldrb r0, [r0] + cmp r0, #0 + beq _022DCB2C + ldr r0, _022DCB5C @ =0x022DD104 + bl FUN_0200BD2C + cmp r0, #0 + bne _022DCAB4 + ldr r1, _022DCB58 @ =0x022DD0B0 + ldr r0, _022DCB5C @ =0x022DD104 + ldr r2, [r1, #0xc] + mov r1, r4 + bl FUN_0200BB74 + mov r4, #0 + b _022DCAC4 +_022DCAB4: + ldr r0, _022DCB5C @ =0x022DD104 + bl FUN_0200BC54 + cmp r0, #0 + movne r4, #0 +_022DCAC4: + ldr r0, _022DCB5C @ =0x022DD104 + ldrsh r0, [r0, #0x14] + bl ov34_022DCB64 + ldr r0, _022DCB60 @ =0x022DD0C0 + bl FUN_0200BD2C + cmp r0, #0 + bne _022DCAFC + ldr r1, _022DCB58 @ =0x022DD0B0 + ldr r0, _022DCB60 @ =0x022DD0C0 + ldr r2, [r1, #0xc] + mov r1, #1 + bl FUN_0200BB74 + mov r4, #0 + b _022DCB0C +_022DCAFC: + ldr r0, _022DCB60 @ =0x022DD0C0 + bl FUN_0200BC54 + cmp r0, #0 + movne r4, #0 +_022DCB0C: + ldr r0, _022DCB60 @ =0x022DD0C0 + ldrsh r0, [r0, #0x14] + bl ov34_022DCB98 + cmp r4, #0 + ldrne r0, _022DCB58 @ =0x022DD0B0 + movne r1, #0 + strbne r1, [r0] + pop {r4, pc} +_022DCB2C: + ldr r0, _022DCB5C @ =0x022DD104 + bl FUN_0200BC54 + ldr r0, _022DCB5C @ =0x022DD104 + ldrsh r0, [r0, #0x14] + bl ov34_022DCB64 + ldr r0, _022DCB60 @ =0x022DD0C0 + bl FUN_0200BC54 + ldr r0, _022DCB60 @ =0x022DD0C0 + ldrsh r0, [r0, #0x14] + bl ov34_022DCB98 + pop {r4, pc} + .align 2, 0 +_022DCB58: .4byte 0x022DD0B0 +_022DCB5C: .4byte 0x022DD104 +_022DCB60: .4byte 0x022DD0C0 + arm_func_end ov34_022DCA70 + + arm_func_start ov34_022DCB64 +ov34_022DCB64: @ 0x022DCB64 + push {r4, lr} + mov r4, r0 + mov r0, #1 + bl FUN_0200C110 + cmp r0, #0 + mov r0, #0 + beq _022DCB8C + mov r1, r0 + bl FUN_02008F3C + pop {r4, pc} +_022DCB8C: + mov r1, r4 + bl FUN_02008F3C + pop {r4, pc} + arm_func_end ov34_022DCB64 + + arm_func_start ov34_022DCB98 +ov34_022DCB98: @ 0x022DCB98 + push {r4, lr} + mov r4, r0 + mov r0, #1 + bl FUN_0200C110 + cmp r0, #0 + mov r0, #1 + beq _022DCBC0 + mov r1, #0 + bl FUN_02008F3C + pop {r4, pc} +_022DCBC0: + mov r1, r4 + bl FUN_02008F3C + pop {r4, pc} + arm_func_end ov34_022DCB98 + + arm_func_start ov34_022DCBCC +ov34_022DCBCC: @ 0x022DCBCC + push {r3, lr} + ldr r0, _022DCBEC @ =0x022DD014 + bl FUN_020348E4 + cmp r0, #0 + ldrne r0, _022DCBF0 @ =0x022DD084 + movne r1, #0 + strne r1, [r0, #4] + pop {r3, pc} + .align 2, 0 +_022DCBEC: .4byte 0x022DD014 +_022DCBF0: .4byte 0x022DD084 + arm_func_end ov34_022DCBCC + + arm_func_start ov34_022DCBF4 +ov34_022DCBF4: @ 0x022DCBF4 + push {r3, lr} + sub sp, sp, #0x98 + mov r0, #8 + mov r1, r0 + bl FUN_02001170 + ldr r1, _022DCC84 @ =0x022DD084 + mov ip, #1 + str r0, [r1] + ldr r3, _022DCC88 @ =0x022DD024 + add r2, sp, #0 + mov r0, #0 + mov r1, #0x31 + str ip, [sp] + bl FUN_0202A5CC + ldr r1, _022DCC84 @ =0x022DD084 + ldr r1, [r1] + strb r0, [r1] + mov r0, #0 + bl FUN_0202F0B0 + ldr r3, _022DCC84 @ =0x022DD084 + ldr r1, _022DCC8C @ =0x00000408 + ldr ip, [r3] + ldr r2, _022DCC90 @ =0x00000255 + strb r0, [ip, #1] + ldr r0, [r3] + mov r3, #0 + ldrsb r0, [r0, #1] + bl FUN_0202F1B4 + ldr r1, _022DCC84 @ =0x022DD084 + mov r3, #0 + ldr r2, [r1] + mov r0, #1 + str r3, [r2, #4] + str r3, [r1, #4] + add sp, sp, #0x98 + pop {r3, pc} + .align 2, 0 +_022DCC84: .4byte 0x022DD084 +_022DCC88: .4byte 0x022DD024 +_022DCC8C: .4byte 0x00000408 +_022DCC90: .4byte 0x00000255 + arm_func_end ov34_022DCBF4 + + arm_func_start ov34_022DCC94 +ov34_022DCC94: @ 0x022DCC94 + push {r3, lr} + ldr r0, _022DCCDC @ =0x022DD084 + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + ldrsb r0, [r0] + bl FUN_0202AABC + ldr r0, _022DCCDC @ =0x022DD084 + ldr r0, [r0] + ldrsb r0, [r0, #1] + bl FUN_0202F148 + ldr r0, _022DCCDC @ =0x022DD084 + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _022DCCDC @ =0x022DD084 + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_022DCCDC: .4byte 0x022DD084 + arm_func_end ov34_022DCC94 + + arm_func_start ov34_022DCCE0 +ov34_022DCCE0: @ 0x022DCCE0 + push {r3, lr} + ldr r0, _022DCDC8 @ =0x022DD084 + ldr r2, [r0] + ldr r1, [r2, #4] + cmp r1, #0 + beq _022DCD0C + cmp r1, #1 + beq _022DCD54 + cmp r1, #2 + beq _022DCD8C + b _022DCDC0 +_022DCD0C: + ldrsb r0, [r2] + bl FUN_0202AB60 + cmp r0, #0 + bne _022DCDC0 + ldr r0, _022DCDC8 @ =0x022DD084 + ldr r0, [r0] + ldrsb r0, [r0] + bl FUN_0202ABB0 + ldr r1, _022DCDC8 @ =0x022DD084 + str r0, [r1, #4] + ldr r0, [r1] + ldrsb r0, [r0, #1] + bl FUN_0202F334 + ldr r0, _022DCDC8 @ =0x022DD084 + mov r1, #1 + ldr r0, [r0] + str r1, [r0, #4] + b _022DCDC0 +_022DCD54: + ldrsb r0, [r2] + bl FUN_0202AB40 + cmp r0, #0 + bne _022DCDC0 + ldr r0, _022DCDC8 @ =0x022DD084 + ldr r0, [r0] + ldrsb r0, [r0, #1] + bl FUN_0202F180 + cmp r0, #0 + ldreq r0, _022DCDC8 @ =0x022DD084 + moveq r1, #2 + ldreq r0, [r0] + streq r1, [r0, #4] + b _022DCDC0 +_022DCD8C: + mov r1, #3 + str r1, [r2, #4] + ldr r0, [r0, #4] + cmp r0, #2 + bne _022DCDA8 + mov r0, #2 + b _022DCDAC +_022DCDA8: + mov r0, #1 +_022DCDAC: + cmp r0, #0 + beq _022DCDB8 + bl ov34_022DC718 +_022DCDB8: + mov r0, #4 + pop {r3, pc} +_022DCDC0: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_022DCDC8: .4byte 0x022DD084 + arm_func_end ov34_022DCCE0 + + arm_func_start ov34_022DCDCC +ov34_022DCDCC: @ 0x022DCDCC + push {r3, lr} + ldr r0, _022DCDEC @ =0x022DD03C + bl FUN_020348E4 + cmp r0, #0 + ldrne r0, _022DCDF0 @ =0x022DD08C + movne r1, #0 + strne r1, [r0, #4] + pop {r3, pc} + .align 2, 0 +_022DCDEC: .4byte 0x022DD03C +_022DCDF0: .4byte 0x022DD08C + arm_func_end ov34_022DCDCC + + arm_func_start ov34_022DCDF4 +ov34_022DCDF4: @ 0x022DCDF4 + push {r3, lr} + sub sp, sp, #0x98 + mov r0, #8 + mov r1, r0 + bl FUN_02001170 + ldr r1, _022DCE7C @ =0x022DD08C + ldr r3, _022DCE80 @ =0x022DD04C + str r0, [r1] + add r2, sp, #0 + mov r0, #0 + mov r1, #0x11 + bl FUN_0202A5CC + ldr r1, _022DCE7C @ =0x022DD08C + ldr r1, [r1] + strb r0, [r1] + mov r0, #0 + bl FUN_0202F0B0 + ldr r3, _022DCE7C @ =0x022DD08C + ldr r1, _022DCE84 @ =0x00000408 + ldr ip, [r3] + ldr r2, _022DCE88 @ =0x00003D1C + strb r0, [ip, #1] + ldr r0, [r3] + mov r3, #0 + ldrsb r0, [r0, #1] + bl FUN_0202F1B4 + ldr r1, _022DCE7C @ =0x022DD08C + mov r3, #0 + ldr r2, [r1] + mov r0, #1 + str r3, [r2, #4] + str r3, [r1, #4] + add sp, sp, #0x98 + pop {r3, pc} + .align 2, 0 +_022DCE7C: .4byte 0x022DD08C +_022DCE80: .4byte 0x022DD04C +_022DCE84: .4byte 0x00000408 +_022DCE88: .4byte 0x00003D1C + arm_func_end ov34_022DCDF4 + + arm_func_start ov34_022DCE8C +ov34_022DCE8C: @ 0x022DCE8C + push {r3, lr} + ldr r0, _022DCED4 @ =0x022DD08C + ldr r0, [r0] + cmp r0, #0 + popeq {r3, pc} + ldrsb r0, [r0] + bl FUN_0202AABC + ldr r0, _022DCED4 @ =0x022DD08C + ldr r0, [r0] + ldrsb r0, [r0, #1] + bl FUN_0202F148 + ldr r0, _022DCED4 @ =0x022DD08C + ldr r0, [r0] + bl FUN_02001188 + ldr r0, _022DCED4 @ =0x022DD08C + mov r1, #0 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_022DCED4: .4byte 0x022DD08C + arm_func_end ov34_022DCE8C + + arm_func_start ov34_022DCED8 +ov34_022DCED8: @ 0x022DCED8 + push {r3, lr} + ldr r0, _022DCFF0 @ =0x022DD08C + ldr r3, [r0] + ldr r1, [r3, #4] + cmp r1, #0 + beq _022DCF04 + cmp r1, #1 + beq _022DCF4C + cmp r1, #2 + beq _022DCF84 + b _022DCFE8 +_022DCF04: + ldrsb r0, [r3] + bl FUN_0202AB60 + cmp r0, #0 + bne _022DCFE8 + ldr r0, _022DCFF0 @ =0x022DD08C + ldr r0, [r0] + ldrsb r0, [r0] + bl FUN_0202ABB0 + ldr r1, _022DCFF0 @ =0x022DD08C + str r0, [r1, #4] + ldr r0, [r1] + ldrsb r0, [r0, #1] + bl FUN_0202F334 + ldr r0, _022DCFF0 @ =0x022DD08C + mov r1, #1 + ldr r0, [r0] + str r1, [r0, #4] + b _022DCFE8 +_022DCF4C: + ldrsb r0, [r3] + bl FUN_0202AB40 + cmp r0, #0 + bne _022DCFE8 + ldr r0, _022DCFF0 @ =0x022DD08C + ldr r0, [r0] + ldrsb r0, [r0, #1] + bl FUN_0202F180 + cmp r0, #0 + ldreq r0, _022DCFF0 @ =0x022DD08C + moveq r1, #2 + ldreq r0, [r0] + streq r1, [r0, #4] + b _022DCFE8 +_022DCF84: + mov r2, #3 + str r2, [r3, #4] + ldr r1, [r0, #4] + mov r0, #0 + cmp r1, #5 + addls pc, pc, r1, lsl #2 + b _022DCFD4 +_022DCFA0: @ jump table + b _022DCFD4 @ case 0 + b _022DCFD4 @ case 1 + b _022DCFB8 @ case 2 + b _022DCFC0 @ case 3 + b _022DCFC8 @ case 4 + b _022DCFD0 @ case 5 +_022DCFB8: + mov r0, r2 + b _022DCFD4 +_022DCFC0: + mov r0, #4 + b _022DCFD4 +_022DCFC8: + mov r0, #5 + b _022DCFD4 +_022DCFD0: + mov r0, #6 +_022DCFD4: + cmp r0, #0 + beq _022DCFE0 + bl ov34_022DC718 +_022DCFE0: + mov r0, #4 + pop {r3, pc} +_022DCFE8: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_022DCFF0: .4byte 0x022DD08C + arm_func_end ov34_022DCED8 + @ 0x022DCFF4 diff --git a/main.lsf b/main.lsf index b9a0ae9a..a9859a8e 100644 --- a/main.lsf +++ b/main.lsf @@ -106,47 +106,47 @@ Overlay OVY_0 } Overlay OVY_1 { - After main + After OVY_0 Object asm/overlay_01.o } Overlay OVY_2 { - After main + After OVY_0 Object asm/overlay_02.o } Overlay OVY_3 { - After main + After OVY_1 Object asm/overlay_03.o } Overlay OVY_4 { - After main + After OVY_1 Object asm/overlay_04.o } Overlay OVY_5 { - After main + After OVY_1 Object asm/overlay_05.o } Overlay OVY_6 { - After main + After OVY_1 Object asm/overlay_06.o } Overlay OVY_7 { - After main + After OVY_1 Object asm/overlay_07.o } Overlay OVY_8 { - After main + After OVY_1 Object asm/overlay_08.o } Overlay OVY_9 { - After main + After OVY_1 Object asm/overlay_09.o } Overlay OVY_10 @@ -156,119 +156,119 @@ Overlay OVY_10 } Overlay OVY_11 { - After main + After OVY_10 Object asm/overlay_11.o } Overlay OVY_12 { - After main + After OVY_11 } Overlay OVY_13 { - After main + After OVY_11 Object asm/overlay_13.o } Overlay OVY_14 { - After main + After OVY_11 Object asm/overlay_14.o } Overlay OVY_15 { - After main + After OVY_11 Object asm/overlay_15.o } Overlay OVY_16 { - After main + After OVY_11 Object asm/overlay_16.o } Overlay OVY_17 { - After main + After OVY_11 Object asm/overlay_17.o } Overlay OVY_18 { - After main + After OVY_11 Object asm/overlay_18.o } Overlay OVY_19 { - After main + After OVY_11 Object asm/overlay_19.o } Overlay OVY_20 { - After main + After OVY_11 Object asm/overlay_21.o } Overlay OVY_21 { - After main + After OVY_11 Object asm/overlay_21.o } Overlay OVY_22 { - After main + After OVY_11 Object asm/overlay_22.o } Overlay OVY_23 { - After main + After OVY_11 Object asm/overlay_23.o } Overlay OVY_24 { - After main + After OVY_11 Object asm/overlay_24.o } Overlay OVY_25 { - After main + After OVY_11 Object asm/overlay_25.o } Overlay OVY_26 { - After main + After OVY_11 Object asm/overlay_26.o } Overlay OVY_27 { - After main + After OVY_11 Object asm/overlay_27.o } Overlay OVY_28 { - After main + After OVY_11 Object asm/overlay_28.o } Overlay OVY_29 { - After main + After OVY_10 Object asm/overlay_29.o } Overlay OVY_30 { - After main + After OVY_29 Object asm/overlay_30.o } Overlay OVY_31 { - After main + After OVY_29 Object asm/overlay_31.o } Overlay OVY_32 { - After main + After OVY_29 } Overlay OVY_33 { - After main + After OVY_29 } Overlay OVY_34 { - After main + After OVY_10 Object asm/overlay_34.o } Overlay OVY_35